summaryrefslogtreecommitdiffstats
path: root/hacks/glx
diff options
context:
space:
mode:
authorSimon Rettberg2018-10-16 10:08:48 +0200
committerSimon Rettberg2018-10-16 10:08:48 +0200
commitd3a98cf6cbc3bd0b9efc570f58e8812c03931c18 (patch)
treecbddf8e50f35a9c6e878a5bfe3c6d625d99e12ba /hacks/glx
downloadxscreensaver-d3a98cf6cbc3bd0b9efc570f58e8812c03931c18.tar.gz
xscreensaver-d3a98cf6cbc3bd0b9efc570f58e8812c03931c18.tar.xz
xscreensaver-d3a98cf6cbc3bd0b9efc570f58e8812c03931c18.zip
Original 5.40
Diffstat (limited to 'hacks/glx')
-rw-r--r--hacks/glx/Makefile.in3473
-rw-r--r--hacks/glx/README10
-rw-r--r--hacks/glx/antinspect.c704
-rw-r--r--hacks/glx/antinspect.man56
-rw-r--r--hacks/glx/antmaze.c1613
-rw-r--r--hacks/glx/antmaze.man52
-rw-r--r--hacks/glx/ants.h45
-rw-r--r--hacks/glx/antspotlight.c799
-rw-r--r--hacks/glx/antspotlight.man56
-rw-r--r--hacks/glx/atlantis.c577
-rw-r--r--hacks/glx/atlantis.h133
-rw-r--r--hacks/glx/atlantis.man78
-rw-r--r--hacks/glx/atunnel.c317
-rw-r--r--hacks/glx/atunnel.man83
-rw-r--r--hacks/glx/b_draw.c239
-rw-r--r--hacks/glx/b_lockglue.c240
-rw-r--r--hacks/glx/b_sphere.c219
-rw-r--r--hacks/glx/blinkbox.c608
-rw-r--r--hacks/glx/blinkbox.man73
-rw-r--r--hacks/glx/blocktube.c457
-rw-r--r--hacks/glx/blocktube.man73
-rw-r--r--hacks/glx/boing.c658
-rw-r--r--hacks/glx/boing.man105
-rw-r--r--hacks/glx/bouncingcow.c519
-rw-r--r--hacks/glx/bouncingcow.man73
-rw-r--r--hacks/glx/boxed.c1370
-rw-r--r--hacks/glx/boxed.h4116
-rw-r--r--hacks/glx/boxed.man56
-rw-r--r--hacks/glx/bubble3d.c281
-rw-r--r--hacks/glx/bubble3d.h100
-rw-r--r--hacks/glx/bubble3d.man62
-rw-r--r--hacks/glx/buildlwo.c96
-rw-r--r--hacks/glx/buildlwo.h43
-rw-r--r--hacks/glx/cage.c480
-rw-r--r--hacks/glx/cage.man61
-rw-r--r--hacks/glx/carousel.c941
-rw-r--r--hacks/glx/carousel.man109
-rw-r--r--hacks/glx/chessgames.h343
-rw-r--r--hacks/glx/chessmodels.c1738
-rw-r--r--hacks/glx/chessmodels.h44
-rw-r--r--hacks/glx/circuit.c2094
-rw-r--r--hacks/glx/circuit.man72
-rw-r--r--hacks/glx/cityflow.c545
-rw-r--r--hacks/glx/cityflow.man77
-rw-r--r--hacks/glx/companion.c592
-rw-r--r--hacks/glx/companion_disc.c9593
-rw-r--r--hacks/glx/companion_heart.c653
-rw-r--r--hacks/glx/companion_quad.c389
-rw-r--r--hacks/glx/companioncube.man85
-rw-r--r--hacks/glx/cow_face.c341
-rw-r--r--hacks/glx/cow_hide.c13055
-rw-r--r--hacks/glx/cow_hoofs.c1037
-rw-r--r--hacks/glx/cow_horns.c1025
-rw-r--r--hacks/glx/cow_tail.c464
-rw-r--r--hacks/glx/cow_udder.c1520
-rw-r--r--hacks/glx/crackberg.c1468
-rw-r--r--hacks/glx/crackberg.man123
-rw-r--r--hacks/glx/crumbler.c875
-rw-r--r--hacks/glx/crumbler.man77
-rw-r--r--hacks/glx/cube21.c941
-rw-r--r--hacks/glx/cube21.man147
-rw-r--r--hacks/glx/cubenetic.c598
-rw-r--r--hacks/glx/cubenetic.man89
-rw-r--r--hacks/glx/cubestack.c462
-rw-r--r--hacks/glx/cubestack.man72
-rw-r--r--hacks/glx/cubestorm.c469
-rw-r--r--hacks/glx/cubestorm.man77
-rw-r--r--hacks/glx/cubetwist.c595
-rw-r--r--hacks/glx/cubetwist.man80
-rw-r--r--hacks/glx/cubicgrid.c269
-rw-r--r--hacks/glx/cubicgrid.man83
-rw-r--r--hacks/glx/curlicue.h261
-rw-r--r--hacks/glx/dangerball.c364
-rw-r--r--hacks/glx/dangerball.man72
-rw-r--r--hacks/glx/discoball.c707
-rw-r--r--hacks/glx/discoball.man72
-rw-r--r--hacks/glx/dnalogo.c3639
-rw-r--r--hacks/glx/dnapizza.h122
-rw-r--r--hacks/glx/dolphin.c2061
-rw-r--r--hacks/glx/dropshadow.c181
-rw-r--r--hacks/glx/dropshadow.h40
-rwxr-xr-xhacks/glx/dxf2gl.pl729
-rw-r--r--hacks/glx/dymaxionmap-coords.c685
-rw-r--r--hacks/glx/dymaxionmap-coords.h6
-rw-r--r--hacks/glx/dymaxionmap.c1654
-rw-r--r--hacks/glx/dymaxionmap.man117
-rw-r--r--hacks/glx/e_textures.h1478
-rw-r--r--hacks/glx/endgame.c971
-rw-r--r--hacks/glx/endgame.man72
-rw-r--r--hacks/glx/energystream.c534
-rw-r--r--hacks/glx/energystream.man56
-rw-r--r--hacks/glx/engine.c1006
-rw-r--r--hacks/glx/engine.man80
-rw-r--r--hacks/glx/erase-gl.c38
-rw-r--r--hacks/glx/esper.c2412
-rw-r--r--hacks/glx/esper.man68
-rw-r--r--hacks/glx/extrusion-helix2.c47
-rw-r--r--hacks/glx/extrusion-helix3.c46
-rw-r--r--hacks/glx/extrusion-helix4.c63
-rw-r--r--hacks/glx/extrusion-joinoffset.c148
-rw-r--r--hacks/glx/extrusion-screw.c114
-rw-r--r--hacks/glx/extrusion-taper.c218
-rw-r--r--hacks/glx/extrusion-twistoid.c215
-rw-r--r--hacks/glx/extrusion.c556
-rw-r--r--hacks/glx/extrusion.h55
-rw-r--r--hacks/glx/extrusion.man71
-rw-r--r--hacks/glx/flipflop.c859
-rw-r--r--hacks/glx/flipflop.man95
-rw-r--r--hacks/glx/flipscreen3d.c518
-rw-r--r--hacks/glx/flipscreen3d.man61
-rw-r--r--hacks/glx/fliptext.c1001
-rw-r--r--hacks/glx/fliptext.man114
-rw-r--r--hacks/glx/flurry-smoke.c1441
-rw-r--r--hacks/glx/flurry-spark.c285
-rw-r--r--hacks/glx/flurry-star.c106
-rw-r--r--hacks/glx/flurry-texture.c224
-rw-r--r--hacks/glx/flurry.c549
-rw-r--r--hacks/glx/flurry.h299
-rw-r--r--hacks/glx/flurry.man73
-rw-r--r--hacks/glx/flyingtoasters.c868
-rw-r--r--hacks/glx/flyingtoasters.man86
-rw-r--r--hacks/glx/fps-gl.c98
-rw-r--r--hacks/glx/gears.c938
-rw-r--r--hacks/glx/gears.man79
-rw-r--r--hacks/glx/geodesic.c816
-rw-r--r--hacks/glx/geodesic.man79
-rw-r--r--hacks/glx/geodesicgears.c1803
-rw-r--r--hacks/glx/geodesicgears.man78
-rw-r--r--hacks/glx/gflux.c803
-rw-r--r--hacks/glx/gflux.man111
-rw-r--r--hacks/glx/glblur.c610
-rw-r--r--hacks/glx/glblur.man76
-rw-r--r--hacks/glx/glcells.c1388
-rw-r--r--hacks/glx/glcells.man97
-rw-r--r--hacks/glx/gleidescope.c1624
-rw-r--r--hacks/glx/gleidescope.man77
-rw-r--r--hacks/glx/glforestfire.c1097
-rw-r--r--hacks/glx/glforestfire.man130
-rw-r--r--hacks/glx/glhanoi.c2086
-rw-r--r--hacks/glx/glhanoi.man83
-rw-r--r--hacks/glx/glknots.c445
-rw-r--r--hacks/glx/glknots.man81
-rw-r--r--hacks/glx/gllist.c127
-rw-r--r--hacks/glx/gllist.h44
-rw-r--r--hacks/glx/glmatrix.c1068
-rw-r--r--hacks/glx/glmatrix.man116
-rw-r--r--hacks/glx/glplanet.c847
-rw-r--r--hacks/glx/glplanet.man75
-rw-r--r--hacks/glx/glschool.c216
-rw-r--r--hacks/glx/glschool.h17
-rw-r--r--hacks/glx/glschool.man126
-rw-r--r--hacks/glx/glschool_alg.c364
-rw-r--r--hacks/glx/glschool_alg.h126
-rw-r--r--hacks/glx/glschool_gl.c274
-rw-r--r--hacks/glx/glschool_gl.h51
-rw-r--r--hacks/glx/glslideshow.c1222
-rw-r--r--hacks/glx/glslideshow.man131
-rw-r--r--hacks/glx/glsnake.c2694
-rw-r--r--hacks/glx/glsnake.man98
-rw-r--r--hacks/glx/gltext.c660
-rw-r--r--hacks/glx/gltext.man152
-rw-r--r--hacks/glx/gltrackball.c337
-rw-r--r--hacks/glx/gltrackball.h72
-rw-r--r--hacks/glx/glut_mroman.h2456
-rw-r--r--hacks/glx/glut_roman.h2455
-rw-r--r--hacks/glx/glut_stroke.c66
-rw-r--r--hacks/glx/glut_swidth.c77
-rw-r--r--hacks/glx/glutstroke.h47
-rw-r--r--hacks/glx/grab-ximage.c813
-rw-r--r--hacks/glx/grab-ximage.h76
-rw-r--r--hacks/glx/hexstrut.c509
-rw-r--r--hacks/glx/hexstrut.man77
-rw-r--r--hacks/glx/hilbert.c1144
-rw-r--r--hacks/glx/hilbert.man103
-rw-r--r--hacks/glx/hydrostat.c809
-rw-r--r--hacks/glx/hydrostat.man103
-rw-r--r--hacks/glx/hypertorus.c1016
-rw-r--r--hacks/glx/hypertorus.man188
-rw-r--r--hacks/glx/hypnowheel.c322
-rw-r--r--hacks/glx/hypnowheel.man80
-rw-r--r--hacks/glx/involute.c998
-rw-r--r--hacks/glx/involute.h78
-rw-r--r--hacks/glx/jigglypuff.c1076
-rw-r--r--hacks/glx/jigglypuff.man121
-rw-r--r--hacks/glx/jigsaw.c1509
-rw-r--r--hacks/glx/jigsaw.man90
-rw-r--r--hacks/glx/juggler3d.c3022
-rw-r--r--hacks/glx/juggler3d.man183
-rw-r--r--hacks/glx/kaleidocycle.c574
-rw-r--r--hacks/glx/kaleidocycle.man96
-rw-r--r--hacks/glx/klein.c2099
-rw-r--r--hacks/glx/klein.man308
-rw-r--r--hacks/glx/lament.c1786
-rw-r--r--hacks/glx/lament.dxf163404
-rw-r--r--hacks/glx/lament.man68
-rw-r--r--hacks/glx/lament_model.c16258
-rw-r--r--hacks/glx/lavalite.c1539
-rw-r--r--hacks/glx/lavalite.man160
-rw-r--r--hacks/glx/lockward.c970
-rw-r--r--hacks/glx/lockward.man79
-rw-r--r--hacks/glx/marching.c645
-rw-r--r--hacks/glx/marching.h48
-rwxr-xr-xhacks/glx/maze3d.c1955
-rwxr-xr-xhacks/glx/maze3d.man116
-rw-r--r--hacks/glx/menger.c562
-rw-r--r--hacks/glx/menger.man78
-rw-r--r--hacks/glx/mirrorblob.c1841
-rw-r--r--hacks/glx/mirrorblob.man107
-rw-r--r--hacks/glx/moebius.c788
-rw-r--r--hacks/glx/moebius.man65
-rw-r--r--hacks/glx/moebiusgears.c437
-rw-r--r--hacks/glx/moebiusgears.man86
-rw-r--r--hacks/glx/molecule.c1682
-rw-r--r--hacks/glx/molecule.man160
-rwxr-xr-xhacks/glx/molecules.sh23
-rw-r--r--hacks/glx/morph3d.c837
-rw-r--r--hacks/glx/morph3d.man57
-rw-r--r--hacks/glx/noof.c519
-rw-r--r--hacks/glx/noof.man52
-rw-r--r--hacks/glx/normals.c52
-rw-r--r--hacks/glx/normals.h48
-rw-r--r--hacks/glx/peepers.c1455
-rw-r--r--hacks/glx/peepers.man80
-rw-r--r--hacks/glx/photopile.c833
-rw-r--r--hacks/glx/photopile.man113
-rw-r--r--hacks/glx/pinion.c1470
-rw-r--r--hacks/glx/pinion.man82
-rw-r--r--hacks/glx/pipeobjs.c3262
-rw-r--r--hacks/glx/pipes.c1220
-rw-r--r--hacks/glx/pipes.man85
-rw-r--r--hacks/glx/polyhedra-gl.c683
-rw-r--r--hacks/glx/polyhedra.c2457
-rw-r--r--hacks/glx/polyhedra.h52
-rw-r--r--hacks/glx/polyhedra.man124
-rw-r--r--hacks/glx/polytopes.c3189
-rw-r--r--hacks/glx/polytopes.man207
-rw-r--r--hacks/glx/projectiveplane.c1550
-rw-r--r--hacks/glx/projectiveplane.man400
-rw-r--r--hacks/glx/providence.c799
-rw-r--r--hacks/glx/providence.man66
-rw-r--r--hacks/glx/pulsar.c515
-rw-r--r--hacks/glx/pulsar.man102
-rw-r--r--hacks/glx/quasicrystal.c478
-rw-r--r--hacks/glx/quasicrystal.man83
-rw-r--r--hacks/glx/queens.c610
-rw-r--r--hacks/glx/queens.man66
-rw-r--r--hacks/glx/quickhull.c1368
-rw-r--r--hacks/glx/quickhull.h56
-rw-r--r--hacks/glx/raverhoop.c767
-rw-r--r--hacks/glx/raverhoop.man83
-rw-r--r--hacks/glx/razzledazzle.c725
-rw-r--r--hacks/glx/razzledazzle.man76
-rw-r--r--hacks/glx/robot-wireframe.c154
-rw-r--r--hacks/glx/robot-wireframe.dxf1160
-rw-r--r--hacks/glx/robot.c18539
-rw-r--r--hacks/glx/robot.dxf185616
-rw-r--r--hacks/glx/romanboy.c1552
-rw-r--r--hacks/glx/romanboy.man390
-rw-r--r--hacks/glx/rotator.c274
-rw-r--r--hacks/glx/rotator.h60
-rw-r--r--hacks/glx/rubik.c2140
-rw-r--r--hacks/glx/rubik.man69
-rw-r--r--hacks/glx/rubikblocks.c633
-rw-r--r--hacks/glx/rubikblocks.man117
-rw-r--r--hacks/glx/s1_1.c1733
-rw-r--r--hacks/glx/s1_2.c1733
-rw-r--r--hacks/glx/s1_3.c1733
-rw-r--r--hacks/glx/s1_4.c1733
-rw-r--r--hacks/glx/s1_5.c1733
-rw-r--r--hacks/glx/s1_6.c1733
-rw-r--r--hacks/glx/s1_b.c505
-rw-r--r--hacks/glx/sballs.c823
-rw-r--r--hacks/glx/sballs.man125
-rw-r--r--hacks/glx/seccam.c1388
-rw-r--r--hacks/glx/seccam.dxf13606
-rw-r--r--hacks/glx/shark.c1395
-rw-r--r--hacks/glx/ships.c4976
-rw-r--r--hacks/glx/ships.dxf49148
-rw-r--r--hacks/glx/sierpinski3d.c581
-rw-r--r--hacks/glx/sierpinski3d.man67
-rw-r--r--hacks/glx/skytentacles.c1103
-rw-r--r--hacks/glx/skytentacles.man102
-rw-r--r--hacks/glx/sonar-icmp.c1703
-rw-r--r--hacks/glx/sonar-sim.c112
-rw-r--r--hacks/glx/sonar.c1258
-rw-r--r--hacks/glx/sonar.h71
-rw-r--r--hacks/glx/sonar.man169
-rw-r--r--hacks/glx/sphere.c155
-rw-r--r--hacks/glx/sphere.h24
-rw-r--r--hacks/glx/spheremonics.c882
-rw-r--r--hacks/glx/spheremonics.man92
-rw-r--r--hacks/glx/splitflap.c1408
-rw-r--r--hacks/glx/splitflap.dxf1658
-rw-r--r--hacks/glx/splitflap.man98
-rw-r--r--hacks/glx/splitflap_obj.c200
-rw-r--r--hacks/glx/splodesic.c640
-rw-r--r--hacks/glx/splodesic.man69
-rw-r--r--hacks/glx/sproingies.c906
-rw-r--r--hacks/glx/sproingies.h43
-rw-r--r--hacks/glx/sproingies.man68
-rw-r--r--hacks/glx/sproingiewrap.c231
-rw-r--r--hacks/glx/stairs.c589
-rw-r--r--hacks/glx/stairs.man56
-rw-r--r--hacks/glx/starwars.c1075
-rw-r--r--hacks/glx/starwars.h363
-rw-r--r--hacks/glx/starwars.man181
-rw-r--r--hacks/glx/starwars.txt415
-rw-r--r--hacks/glx/stonerview-move.c147
-rw-r--r--hacks/glx/stonerview-move.h32
-rw-r--r--hacks/glx/stonerview-osc.c341
-rw-r--r--hacks/glx/stonerview-osc.h175
-rw-r--r--hacks/glx/stonerview-view.c134
-rw-r--r--hacks/glx/stonerview.c154
-rw-r--r--hacks/glx/stonerview.h59
-rw-r--r--hacks/glx/stonerview.man53
-rw-r--r--hacks/glx/superquadrics.c807
-rw-r--r--hacks/glx/superquadrics.man70
-rw-r--r--hacks/glx/surfaces.c648
-rw-r--r--hacks/glx/surfaces.man127
-rw-r--r--hacks/glx/swim.c232
-rw-r--r--hacks/glx/tangram.c1067
-rw-r--r--hacks/glx/tangram.man67
-rw-r--r--hacks/glx/tangram_shapes.c240
-rw-r--r--hacks/glx/tangram_shapes.h15
-rw-r--r--hacks/glx/teapot.c285
-rw-r--r--hacks/glx/teapot.h7
-rw-r--r--hacks/glx/teapot2.h6330
-rw-r--r--hacks/glx/texfont.c961
-rw-r--r--hacks/glx/texfont.h72
-rw-r--r--hacks/glx/timetunnel.c1240
-rw-r--r--hacks/glx/timetunnel.man105
-rw-r--r--hacks/glx/toast.c190
-rw-r--r--hacks/glx/toast.dxf1814
-rw-r--r--hacks/glx/toast2.c214
-rw-r--r--hacks/glx/toast2.dxf2054
-rw-r--r--hacks/glx/toaster.c376
-rw-r--r--hacks/glx/toaster.dxf3674
-rw-r--r--hacks/glx/toaster_base.c130
-rw-r--r--hacks/glx/toaster_base.dxf1214
-rw-r--r--hacks/glx/toaster_handle.c64
-rw-r--r--hacks/glx/toaster_handle.dxf554
-rw-r--r--hacks/glx/toaster_handle2.c40
-rw-r--r--hacks/glx/toaster_handle2.dxf314
-rw-r--r--hacks/glx/toaster_jet.c178
-rw-r--r--hacks/glx/toaster_jet.dxf1694
-rw-r--r--hacks/glx/toaster_knob.c76
-rw-r--r--hacks/glx/toaster_knob.dxf674
-rw-r--r--hacks/glx/toaster_slots.c106
-rw-r--r--hacks/glx/toaster_slots.dxf974
-rw-r--r--hacks/glx/toaster_wing.c43
-rw-r--r--hacks/glx/toaster_wing.dxf344
-rw-r--r--hacks/glx/topblock.c883
-rw-r--r--hacks/glx/topblock.h45
-rw-r--r--hacks/glx/topblock.man170
-rw-r--r--hacks/glx/trackball.c331
-rw-r--r--hacks/glx/trackball.h82
-rw-r--r--hacks/glx/tronbit.c536
-rw-r--r--hacks/glx/tronbit.man79
-rw-r--r--hacks/glx/tronbit_idle1.c247
-rw-r--r--hacks/glx/tronbit_idle2.c175
-rw-r--r--hacks/glx/tronbit_no.c1087
-rw-r--r--hacks/glx/tronbit_yes.c31
-rw-r--r--hacks/glx/tube.c403
-rw-r--r--hacks/glx/tube.h32
-rw-r--r--hacks/glx/tunnel_draw.c512
-rw-r--r--hacks/glx/tunnel_draw.h11
-rw-r--r--hacks/glx/unicrud.c961
-rw-r--r--hacks/glx/unicrud.man74
-rw-r--r--hacks/glx/unknownpleasures.c486
-rw-r--r--hacks/glx/unknownpleasures.man74
-rw-r--r--hacks/glx/vigilance.c1150
-rw-r--r--hacks/glx/vigilance.man57
-rw-r--r--hacks/glx/voronoi.c543
-rw-r--r--hacks/glx/voronoi.man88
-rwxr-xr-xhacks/glx/vrml2gl.pl361
-rwxr-xr-xhacks/glx/wfront2gl.pl361
-rw-r--r--hacks/glx/whale.c1887
-rw-r--r--hacks/glx/winduprobot.c2483
-rw-r--r--hacks/glx/winduprobot.man85
-rw-r--r--hacks/glx/xlock-gl-utils.c230
-rw-r--r--hacks/glx/xscreensaver-gl-helper.c74
-rw-r--r--hacks/glx/xscreensaver-gl-helper.man33
-rw-r--r--hacks/glx/zalgo.txt30
383 files changed, 693076 insertions, 0 deletions
diff --git a/hacks/glx/Makefile.in b/hacks/glx/Makefile.in
new file mode 100644
index 0000000..e3fa617
--- /dev/null
+++ b/hacks/glx/Makefile.in
@@ -0,0 +1,3473 @@
+# hacks/glx/Makefile.in --- xscreensaver, Copyright (c) 1999-2018
+# by Jamie Zawinski.
+# the `../../configure' script generates `hacks/glx/Makefile' from this file.
+
+@SET_MAKE@
+.SUFFIXES:
+.SUFFIXES: .c .o
+
+srcdir = @srcdir@
+VPATH = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ..
+
+install_prefix =
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+datarootdir = @datarootdir@
+datadir = @datadir@
+mandir = @mandir@
+libexecdir = @libexecdir@
+mansuffix = 6
+manNdir = $(mandir)/man$(mansuffix)
+
+HACKDIR = @HACKDIR@
+HACK_CONF_DIR = @HACK_CONF_DIR@
+
+CC = @CC@
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+DEFS = -DSTANDALONE -DUSE_GL @DEFS@
+LIBS = @LIBS@
+PERL = @PERL@
+
+DEPEND = @DEPEND@
+DEPEND_FLAGS = @DEPEND_FLAGS@
+DEPEND_DEFINES = @DEPEND_DEFINES@
+
+SHELL = /bin/sh
+INSTALL = @INSTALL@
+SUID_FLAGS = -o root -m 4755
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SETUID = @INSTALL_SETUID@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_DIRS = @INSTALL_DIRS@
+
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+XMU_LIBS = @XMU_LIBS@
+XFT_LIBS = @XFT_LIBS@
+
+# Note: see comment in ../../driver/Makefile.in for explanation of X_LIBS, etc.
+#
+HACK_PRE = $(LIBS) $(X_LIBS)
+HACK_POST = $(X_PRE_LIBS) $(XFT_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS) -lm
+HACK_POST2 = @GL_LIBS@ @HACK_LIBS@ $(HACK_POST)
+HACK_LIBS = $(HACK_PRE) @ANIM_LIBS@ $(HACK_POST2)
+PNG_LIBS = $(HACK_PRE) @PNG_LIBS@ $(HACK_POST2)
+GLE_LIBS = $(HACK_PRE) @GLE_LIBS@ @PNG_LIBS@ $(HACK_POST2)
+TEXT_LIBS = @PTY_LIBS@
+
+HACK_SRC = $(srcdir)/..
+HACK_BIN = ..
+UTILS_SRC = $(HACK_SRC)/../utils
+JWXYZ_SRC = $(HACK_SRC)/../jwxyz
+UTILS_BIN = $(HACK_BIN)/../utils
+JWXYZ_BIN = $(HACK_BIN)/../jwxyz
+
+INCLUDES_1 = -I. -I$(srcdir) -I$(UTILS_SRC) -I$(JWXYZ_SRC) -I$(HACK_SRC) -I$(HACK_BIN) -I../..
+INCLUDES = $(INCLUDES_1) @INCLUDES@
+
+UTILDIR_OBJS = $(UTILS_BIN)/colors.o $(UTILS_BIN)/grabclient.o \
+ $(UTILS_BIN)/hsv.o $(UTILS_BIN)/resources.o \
+ $(UTILS_BIN)/usleep.o $(UTILS_BIN)/visual.o \
+ $(UTILS_BIN)/xmu.o $(UTILS_BIN)/xft.o \
+ $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/logo.o \
+ $(UTILS_BIN)/visual-gl.o \
+ $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/xshm.o \
+ $(UTILS_BIN)/textclient.o $(UTILS_BIN)/async_netdb.o \
+ $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o \
+ $(UTILS_BIN)/spline.o $(UTILS_BIN)/pow2.o \
+ $(UTILS_SRC)/font-retry.c
+JWXYZ_OBJS = $(JWXYZ_BIN)/jwzgles.o
+HACKDIR_OBJS = $(HACK_BIN)/screenhack.o $(HACK_BIN)/xlockmore.o \
+ $(HACK_BIN)/fps.o $(HACK_BIN)/ximage-loader.o
+PNG = $(HACK_BIN)/ximage-loader.o
+
+SRCS = xscreensaver-gl-helper.c normals.c erase-gl.c fps-gl.c \
+ atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \
+ buildlwo.c cage.c dolphin.c gears.c lament.c lament_model.c \
+ moebius.c morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c \
+ s1_3.c s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
+ sproingiewrap.c stairs.c superquadrics.c swim.c whale.c \
+ xlock-gl-utils.c glplanet.c pulsar.c \
+ extrusion.c extrusion-helix2.c extrusion-helix3.c \
+ extrusion-helix4.c extrusion-joinoffset.c extrusion-screw.c \
+ extrusion-taper.c extrusion-twistoid.c sierpinski3d.c \
+ gflux.c stonerview.c stonerview-move.c stonerview-osc.c \
+ stonerview-view.c starwars.c glut_stroke.c glut_swidth.c \
+ gltext.c molecule.c dangerball.c sphere.c tube.c circuit.c \
+ menger.c engine.c flipscreen3d.c dnalogo.c \
+ grab-ximage.c glsnake.c boxed.c glforestfire.c sballs.c \
+ cubenetic.c spheremonics.c marching.c lavalite.c rotator.c \
+ trackball.c gltrackball.c queens.c endgame.c chessmodels.c \
+ glblur.c gllist.c flurry.c flurry-smoke.c flurry-spark.c \
+ flurry-star.c flurry-texture.c atunnel.c tunnel_draw.c \
+ flyingtoasters.c toaster.c toaster_base.c toaster_handle.c \
+ toaster_handle2.c toaster_jet.c toaster_knob.c \
+ toaster_slots.c toaster_wing.c toast.c toast2.c \
+ bouncingcow.c cow_face.c cow_hide.c cow_hoofs.c cow_horns.c \
+ cow_tail.c cow_udder.c glslideshow.c jigglypuff.c klein.c \
+ hypertorus.c glmatrix.c cubestorm.c glknots.c blocktube.c \
+ flipflop.c antspotlight.c polytopes.c gleidescope.c \
+ mirrorblob.c blinkbox.c noof.c polyhedra.c polyhedra-gl.c \
+ antinspect.c providence.c pinion.c involute.c boing.c \
+ texfont.c carousel.c fliptext.c antmaze.c tangram.c \
+ tangram_shapes.c crackberg.c glhanoi.c cube21.c \
+ timetunnel.c juggler3d.c topblock.c glschool.c \
+ glschool_gl.c glschool_alg.c glcells.c voronoi.c \
+ moebiusgears.c lockward.c cubicgrid.c hypnowheel.c \
+ skytentacles.c teapot.c sonar.c sonar-sim.c sonar-icmp.c \
+ jigsaw.c photopile.c dropshadow.c rubikblocks.c surfaces.c \
+ hilbert.c companion.c companion_quad.c companion_disc.c \
+ companion_heart.c tronbit.c tronbit_idle1.c tronbit_idle2.c \
+ tronbit_no.c tronbit_yes.c kaleidocycle.c \
+ quasicrystal.c unknownpleasures.c geodesic.c geodesicgears.c \
+ projectiveplane.c winduprobot.c robot.c robot-wireframe.c \
+ cityflow.c romanboy.c splitflap.c splitflap_obj.c \
+ dymaxionmap.c dymaxionmap-coords.c unicrud.c energystream.c \
+ raverhoop.c hydrostat.c discoball.c cubetwist.c cubestack.c \
+ splodesic.c hexstrut.c vigilance.c seccam.c esper.c \
+ razzledazzle.c ships.c peepers.c crumbler.c quickhull.c \
+ maze3d.c
+
+OBJS = xscreensaver-gl-helper.o normals.o erase-gl.o fps-gl.o \
+ atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
+ buildlwo.o cage.o dolphin.o gears.o lament.o lament_model.o \
+ moebius.o morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o \
+ s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
+ sproingiewrap.o stairs.o superquadrics.o swim.o whale.o \
+ xlock-gl-utils.o glplanet.o pulsar.o \
+ extrusion.o extrusion-helix2.o extrusion-helix3.o \
+ extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
+ extrusion-taper.o extrusion-twistoid.o sierpinski3d.o \
+ gflux.o stonerview.o stonerview-move.o stonerview-osc.o \
+ stonerview-view.o starwars.o glut_stroke.o glut_swidth.o \
+ gltext.o molecule.o dangerball.o sphere.o tube.o circuit.o \
+ menger.o engine.o flipscreen3d.o dnalogo.o \
+ grab-ximage.o glsnake.o boxed.o glforestfire.o sballs.o \
+ cubenetic.o spheremonics.o marching.o lavalite.o rotator.o \
+ trackball.o gltrackball.o queens.o endgame.o chessmodels.o \
+ glblur.o gllist.o flurry.o flurry-smoke.o flurry-spark.o \
+ flurry-star.o flurry-texture.o atunnel.o tunnel_draw.o \
+ flyingtoasters.o toaster.o toaster_base.o toaster_handle.o \
+ toaster_handle2.o toaster_jet.o toaster_knob.o \
+ toaster_slots.o toaster_wing.o toast.o toast2.o \
+ bouncingcow.o cow_face.o cow_hide.o cow_hoofs.o cow_horns.o \
+ cow_tail.o cow_udder.o glslideshow.o jigglypuff.o klein.o \
+ hypertorus.o glmatrix.o cubestorm.o glknots.o blocktube.o \
+ flipflop.o antspotlight.o polytopes.o gleidescope.o \
+ mirrorblob.o blinkbox.o noof.o polyhedra.o polyhedra-gl.o \
+ antinspect.o providence.o pinion.o involute.o boing.o \
+ texfont.o carousel.o fliptext.o antmaze.o tangram.o \
+ tangram_shapes.o crackberg.o glhanoi.o cube21.o \
+ timetunnel.o juggler3d.o topblock.o glschool.o \
+ glschool_gl.o glschool_alg.o glcells.o voronoi.o \
+ moebiusgears.o lockward.o cubicgrid.o hypnowheel.o \
+ skytentacles.o teapot.o sonar.o sonar-sim.o sonar-icmp.o \
+ jigsaw.o photopile.o dropshadow.o rubikblocks.o surfaces.o \
+ hilbert.o companion.o companion_quad.o companion_disc.o \
+ companion_heart.o tronbit.o tronbit_idle1.o tronbit_idle2.o \
+ tronbit_no.o tronbit_yes.o kaleidocycle.o \
+ quasicrystal.o unknownpleasures.o geodesic.o geodesicgears.o \
+ projectiveplane.o winduprobot.o robot.o robot-wireframe.o \
+ cityflow.o romanboy.o splitflap.o splitflap_obj.o \
+ dymaxionmap.o dymaxionmap-coords.o unicrud.o energystream.o \
+ raverhoop.o hydrostat.o discoball.o cubetwist.o cubestack.o \
+ splodesic.o hexstrut.o vigilance.o seccam.o esper.o \
+ razzledazzle.o ships.o peepers.o crumbler.o quickhull.o \
+ maze3d.o
+
+GL_EXES = cage gears moebius pipes sproingies stairs superquadrics \
+ morph3d rubik atlantis lament bubble3d glplanet pulsar \
+ sierpinski3d gflux stonerview starwars gltext molecule \
+ dangerball circuit menger engine flipscreen3d glsnake boxed \
+ sballs cubenetic spheremonics lavalite queens \
+ endgame glblur flurry atunnel flyingtoasters bouncingcow \
+ glslideshow jigglypuff klein hypertorus glmatrix cubestorm \
+ glknots blocktube flipflop antspotlight polytopes \
+ gleidescope mirrorblob blinkbox noof polyhedra \
+ antinspect providence pinion boing carousel fliptext \
+ antmaze tangram crackberg glhanoi cube21 timetunnel \
+ juggler3d topblock glschool glcells voronoi moebiusgears \
+ lockward cubicgrid hypnowheel skytentacles jigsaw photopile \
+ rubikblocks surfaces hilbert companioncube tronbit \
+ kaleidocycle quasicrystal unknownpleasures geodesic \
+ geodesicgears projectiveplane winduprobot cityflow romanboy \
+ splitflap dymaxionmap unicrud energystream raverhoop \
+ hydrostat discoball cubetwist cubestack splodesic \
+ hexstrut vigilance esper razzledazzle peepers crumbler \
+ maze3d
+GLE_EXES = extrusion
+SUID_EXES = sonar
+GL_UTIL_EXES = xscreensaver-gl-helper
+JWZGLES_OBJS = @JWZGLES_OBJS@
+HACK_EXES_1 = @GL_EXES@ @GLE_EXES@
+HACK_EXES = $(HACK_EXES_1) @SUID_EXES@
+XSHM_OBJS = $(UTILS_BIN)/xshm.o
+GRAB_OBJS = $(UTILS_BIN)/grabclient.o grab-ximage.o $(XSHM_OBJS)
+ANIM_OBJS = recanim-gl.o
+ANIM_LIBS = @PNG_LIBS@
+EXES = @GL_UTIL_EXES@ $(HACK_EXES)
+
+RETIRED_EXES = @RETIRED_GL_EXES@
+RETIRED_GL_EXES = glforestfire
+
+FPS_OBJS = texfont.o $(HACK_BIN)/fps.o fps-gl.o @XFT_OBJS@
+HACK_OBJS = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o @ANIM_OBJS@ \
+ $(HACK_BIN)/xlockmore.o xlock-gl-utils.o erase-gl.o \
+ ${FPS_OBJS} $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
+ $(UTILS_BIN)/visual-gl.o $(UTILS_BIN)/usleep.o \
+ $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/hsv.o \
+ $(UTILS_BIN)/colors.o $(UTILS_BIN)/async_netdb.o \
+ $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o \
+ $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/pow2.o \
+ $(UTILS_BIN)/font-retry-xft.o
+
+HDRS = atlantis.h bubble3d.h buildlwo.h e_textures.h \
+ grab-ximage.h tube.h sphere.h boxed.h \
+ stonerview.h stonerview-move.h stonerview-osc.h \
+ glutstroke.h glut_roman.h glut_mroman.h marching.h \
+ rotator.h trackball.h gltrackball.h chessmodels.h \
+ chessgames.h gllist.h flurry.h tunnel_draw.h ants.h \
+ polyhedra.h normals.h texfont.h tangram_shapes.h \
+ sproingies.h extrusion.h glschool.h glschool_gl.h \
+ glschool_alg.h topblock.h involute.h teapot.h sonar.h \
+ dropshadow.h starwars.h teapot2.h dnapizza.h curlicue.h \
+ quickhull.h dymaxionmap-coords.h
+GL_MEN = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
+ cubenetic.man dangerball.man engine.man extrusion.man \
+ flipscreen3d.man gears.man gflux.man \
+ glplanet.man glsnake.man gltext.man lament.man lavalite.man \
+ menger.man moebius.man molecule.man morph3d.man pipes.man \
+ pulsar.man queens.man rubik.man sballs.man sierpinski3d.man \
+ spheremonics.man sproingies.man stairs.man starwars.man \
+ stonerview.man superquadrics.man xscreensaver-gl-helper.man \
+ endgame.man flurry.man glblur.man atunnel.man \
+ flyingtoasters.man bouncingcow.man glslideshow.man \
+ jigglypuff.man klein.man hypertorus.man glmatrix.man \
+ cubestorm.man glknots.man blocktube.man flipflop.man \
+ antspotlight.man polytopes.man gleidescope.man \
+ mirrorblob.man blinkbox.man noof.man polyhedra.man \
+ antinspect.man providence.man pinion.man boing.man \
+ carousel.man fliptext.man antmaze.man tangram.man \
+ crackberg.man glhanoi.man cube21.man timetunnel.man \
+ juggler3d.man topblock.man glschool.man glcells.man \
+ voronoi.man moebiusgears.man lockward.man cubicgrid.man \
+ hypnowheel.man skytentacles.man sonar.man jigsaw.man \
+ photopile.man rubikblocks.man surfaces.man hilbert.man \
+ companioncube.man tronbit.man kaleidocycle.man \
+ quasicrystal.man unknownpleasures.man geodesic.man \
+ geodesicgears.man projectiveplane.man winduprobot.man \
+ cityflow.man romanboy.man splitflap.man dymaxionmap.man \
+ unicrud.man energystream.man raverhoop.man hydrostat.man \
+ discoball.man cubetwist.man cubestack.man splodesic.man \
+ hexstrut.man vigilance.man esper.man razzledazzle.man \
+ peepers.man crumbler.man maze3d.man
+MEN = @GL_MEN@
+RETIRED_MEN = glforestfire.man
+EXTRAS = README Makefile.in dxf2gl.pl vrml2gl.pl wfront2gl.pl \
+ molecules.sh starwars.txt zalgo.txt *.dxf
+
+TARFILES = $(SRCS) $(HDRS) $(GL_MEN) $(RETIRED_MEN) $(EXTRAS)
+
+
+default: all
+all: $(EXES) $(RETIRED_EXES)
+
+install: install-program install-xml install-man
+uninstall: uninstall-program uninstall-xml uninstall-man
+
+install-strip:
+ $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
+
+# the hacks, in $HACKDIR
+install-program:: $(EXES)
+ @exes="$(HACK_EXES_1)" ; \
+ idir="$(install_prefix)$(HACKDIR)" ; \
+ if [ "$$exes" != "" ]; then \
+ if [ ! -d $$idir ]; then \
+ $(INSTALL_DIRS) $$idir ; \
+ fi ; \
+ for program in $$exes; do \
+ echo $(INSTALL_PROGRAM) $$program $$idir/$$program ; \
+ $(INSTALL_PROGRAM) $$program $$idir/$$program ; \
+ done ; \
+ \
+ exes="$(SUID_EXES)" ; \
+ if [ @SETUID_HACKS@ = yes ]; then \
+ sinst="$(INSTALL_SETUID)" ; \
+ else \
+ sinst="$(INSTALL_PROGRAM)" ; \
+ fi ; \
+ for program in $$exes; do \
+ echo $$sinst $$program $$idir/$$program ; \
+ if $$sinst $$program $$idir/$$program ; then \
+ true ; \
+ elif [ @SETUID_HACKS@ = yes ]; then \
+ echo $(INSTALL_PROGRAM) $$program $$idir/$$program ; \
+ if $(INSTALL_PROGRAM) $$program $$idir/$$program ; then\
+ echo "" ; \
+ echo "WARNING: unable to install $$program setuid:" \
+ "installed non-setuid instead." ; \
+ echo "" ; \
+ else \
+ exit 1 ; \
+ fi ; \
+ else \
+ exit 1 ; \
+ fi ; \
+ done ; \
+ fi
+
+
+# the xscreensaver-gl-helper program, in $bindir
+install-program:: $(EXES)
+ @exes="@GL_UTIL_EXES@" ; \
+ idir="$(install_prefix)$(bindir)" ; \
+ if [ "$$exes" != "" ]; then \
+ if [ ! -d $$idir ]; then \
+ $(INSTALL_DIRS) $$idir ; \
+ fi ; \
+ for program in $$exes; do \
+ echo $(INSTALL_PROGRAM) $$program $$idir/$$program ; \
+ $(INSTALL_PROGRAM) $$program $$idir/$$program ; \
+ done ; \
+ fi
+
+# When installing man pages, we install "foo.man" as "foo.N" and update
+# the .TH line in the installed file with one like
+#
+# .TH XScreenSaver N "V.VV (DD-MMM-YYYY)" "X Version 11"
+#
+# where N is the manual section suffix.
+#
+install-man: $(MEN)
+ @men="$(MEN)" ; \
+ U=$(UTILS_SRC)/version.h ; \
+ V=`sed -n 's/.*xscreensaver \([0-9]\.[^)]*)\).*/\1/p' < $$U` ; \
+ T=/tmp/xs$$$$.$(mansuffix) ; \
+ TH=".TH XScreenSaver $(mansuffix) \"$$V\" \"X Version 11\"" ; \
+ echo "installing man pages: $$TH" ; \
+ \
+ if [ ! -d $(install_prefix)$(manNdir) ]; then \
+ $(INSTALL_DIRS) $(install_prefix)$(manNdir) ; \
+ fi ; \
+ \
+ for man in $$men; do \
+ instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ; \
+ manbase=`echo $$man | sed 's/\.man$$//'` ; \
+ TH=".TH $$manbase $(mansuffix) \"$$V\" \"X Version 11\" \"XScreenSaver manual\"" ; \
+ sed -e "s/^\.TH.*/$$TH/" \
+ -e 's@(MANSUFFIX)@($(mansuffix))@g' \
+ < $(srcdir)/$$man > $$T ; \
+ echo $(INSTALL_DATA) $(srcdir)/$$man \
+ $(install_prefix)$(manNdir)/$$instname ; \
+ $(INSTALL_DATA) $$T \
+ $(install_prefix)$(manNdir)/$$instname ; \
+ done ; \
+ rm -f $$T
+
+install-xml:
+ @dest=$(install_prefix)$(HACK_CONF_DIR) ; \
+ if [ ! -d $$dest ]; then \
+ $(INSTALL_DIRS) $$dest ; \
+ fi ; \
+ src=$(srcdir)/../config ; \
+ for file in $(EXES) $(SCRIPTS) ; do \
+ if [ -f $$src/$$file.xml ]; then \
+ echo $(INSTALL_DATA) $$src/$$file.xml $$dest/$$file.xml ; \
+ $(INSTALL_DATA) $$src/$$file.xml $$dest/$$file.xml ; \
+ fi ; \
+ done
+
+# the hacks, in $HACKDIR
+uninstall-program::
+ @exes="$(HACK_EXES) $(RETIRED_EXES)" ; \
+ idir="$(install_prefix)$(HACKDIR)" ; \
+ for program in $$exes; do \
+ echo rm -f $$idir/$$program ; \
+ rm -f $$idir/$$program ; \
+ done
+
+# the xscreensaver-gl-helper program, in $bindir
+uninstall-program::
+ @exes="$(GL_UTIL_EXES)" ; \
+ idir="$(install_prefix)$(bindir)" ; \
+ for program in $$exes; do \
+ echo rm -f $$idir/$$program ; \
+ rm -f $$idir/$$program ; \
+ done
+
+uninstall-man:
+ @men="$(MEN) $(RETIRED_MEN)" ; \
+ for man in $$men; do \
+ instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ; \
+ echo rm -f $(install_prefix)$(manNdir)/$$instname* ; \
+ rm -f $(install_prefix)$(manNdir)/$$instname* ; \
+ done
+
+uninstall-xml:
+ @dest=$(install_prefix)$(HACK_CONF_DIR) ; \
+ for file in $(EXES) $(RETIRED_EXES) $(SCRIPTS) ; do \
+ echo rm -f $$dest/$$file.xml ; \
+ rm -f $$dest/$$file.xml ; \
+ done
+
+clean::
+ -rm -f *.o a.out core $(EXES) $(RETIRED_EXES) molecules.h
+
+distclean: clean
+ -rm -f Makefile TAGS *~ "#"*
+
+# Adds all current dependencies to Makefile
+depend:
+ $(DEPEND) -s '# DO NOT DELETE: updated by make depend' \
+ $(DEPEND_FLAGS) -- \
+ $(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \
+ $(SRCS)
+
+# Adds some dependencies to Makefile.in -- not totally accurate, but pretty
+# close. This excludes dependencies on files in /usr/include, etc. It tries
+# to include only dependencies on files which are themselves a part of this
+# package.
+distdepend:: molecules.h
+ @echo updating dependencies in `pwd`/Makefile.in... ; \
+ $(DEPEND) -w 0 -f - \
+ -s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \
+ $(INCLUDES_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \
+ $(SRCS) 2>/dev/null | \
+ sort -d | \
+ ( \
+ awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
+ sed -e '/^#.*/d' \
+ -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d' \
+ -e 's@\.\./\.\./utils@$$(UTILS_SRC)@g' \
+ -e 's@\.\./\.\./jwxyz@$$(JWXYZ_SRC)@g' \
+ -e 's@\.\./glx/@@g' \
+ -e 's@ \.\./@ $$(HACK_SRC)/@g' \
+ -e 's@ \([^$$]\)@ $$(srcdir)/\1@g' \
+ -e 's@ $$(srcdir)/\(.*config.h\)@ \1@g' \
+ -e 's@ $$(HACK_SRC)/\(.*config.h\)@ ../\1@g' \
+ -e 's@ $$(srcdir)/\(.*molecules.h\)@ \1@g' ; \
+ echo '' \
+ ) > /tmp/distdepend.$$$$ && \
+ mv /tmp/distdepend.$$$$ Makefile.in
+
+
+TAGS: tags
+tags:
+ find $(srcdir) -name '*.[chly]' -print | xargs etags -a
+
+echo_tarfiles:
+ @echo $(TARFILES)
+
+check_men:
+ @badmen="" ; \
+ for exe in $(EXES); do \
+ if ! [ -f $(srcdir)/$$exe.man ]; then \
+ badmen="$$badmen $$exe" ; \
+ fi ; \
+ done ; \
+ if [ -n "$$badmen" ]; then \
+ echo "" ; \
+ echo "Warning: The following programs have no manuals:" ; \
+ echo "" ; \
+ for m in $$badmen ; do \
+ echo " $$m" ; \
+ done ; \
+ fi
+
+validate_xml:
+ @echo "Validating XML..." ; \
+ cd $(HACK_SRC) ; ./check-configs.pl $(GL_EXES) $(GLE_EXES) $(SUID_EXES)
+
+distdepend:: check_men validate_xml
+
+
+
+# Rules for noticing when the objects from the utils and hacks
+# directories are out of date with respect to their sources, and going
+# and building them according to the rules in their own Makefile...
+#
+$(UTILS_BIN)/colors.o: $(UTILS_SRC)/colors.c
+$(UTILS_BIN)/grabclient.o: $(UTILS_SRC)/grabclient.c
+$(UTILS_BIN)/hsv.o: $(UTILS_SRC)/hsv.c
+$(UTILS_BIN)/resources.o: $(UTILS_SRC)/resources.c
+$(UTILS_BIN)/usleep.o: $(UTILS_SRC)/usleep.c
+$(UTILS_BIN)/visual.o: $(UTILS_SRC)/visual.c
+$(UTILS_BIN)/xmu.o: $(UTILS_SRC)/xmu.c
+$(UTILS_BIN)/xft.o: $(UTILS_SRC)/xft.c
+$(UTILS_BIN)/utf8wc.o: $(UTILS_SRC)/utf8wc.c
+$(UTILS_BIN)/logo.o: $(UTILS_SRC)/logo.c
+$(UTILS_BIN)/visual-gl.o: $(UTILS_SRC)/visual-gl.c
+$(UTILS_BIN)/yarandom.o: $(UTILS_SRC)/yarandom.c
+$(UTILS_BIN)/xshm.o: $(UTILS_SRC)/xshm.c
+$(UTILS_BIN)/textclient.o: $(UTILS_SRC)/textclient.c
+$(UTILS_BIN)/async_netdb.o: $(UTILS_SRC)/async_netdb.c
+$(UTILS_BIN)/aligned_malloc.o: $(UTILS_SRC)/aligned_malloc.c
+$(UTILS_BIN)/thread_util.o: $(UTILS_SRC)/thread_util.c
+$(UTILS_BIN)/spline.o: $(UTILS_SRC)/spline.c
+$(UTILS_BIN)/pow2.o: $(UTILS_SRC)/pow2.c
+$(UTILS_BIN)/font-retry-xft.o: $(UTILS_SRC)/font-retry.c
+$(HACK_BIN)/screenhack.o: $(HACK_SRC)/screenhack.c
+$(HACK_BIN)/xlockmore.o: $(HACK_SRC)/xlockmore.c
+$(HACK_BIN)/fps.o: $(HACK_SRC)/fps.c
+
+$(UTILDIR_OBJS):
+ cd $(UTILS_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(JWXYZ_OBJS):
+ cd $(JWXYZ_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(HACKDIR_OBJS):
+ cd $(HACK_BIN) ; $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+
+
+# How we build object files in this directory.
+.c.o:
+ $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $<
+
+# Make sure the images have been packaged. This is the first one hit:
+../images/gen/wood_png.h:
+ cd ../images && $(MAKE)
+
+# How to build the "xscreensaver-gl-helper" program, that lets the daemon
+# know which visual is the right one for GL programs.
+#
+HELPER_OBJS = xscreensaver-gl-helper.o $(UTILS_BIN)/visual-gl.o \
+ $(UTILS_BIN)/visual.o $(UTILS_BIN)/resources.o
+xscreensaver-gl-helper: $(HELPER_OBJS)
+ $(CC) $(LDFLAGS) -o $@ $(HELPER_OBJS) $(LIBS) $(X_LIBS) $(HACK_POST2)
+
+
+# These hacks use a slightly-differently-compiled variant of recanim.c.
+# This is how to make the the other .o file from it.
+#
+XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS)
+recanim-gl.o: $(HACK_SRC)/recanim.c
+ $(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/recanim.c
+
+CC_HACK = $(CC) $(LDFLAGS)
+
+
+TRACK_OBJS=rotator.o trackball.o gltrackball.o
+HACK_TRACK_OBJS=$(HACK_OBJS) $(TRACK_OBJS)
+HACK_GRAB_OBJS=$(HACK_OBJS) $(GRAB_OBJS)
+HACK_TRACK_GRAB_OBJS=$(HACK_TRACK_OBJS) $(GRAB_OBJS)
+TEXT=$(UTILS_BIN)/textclient.o
+
+ATLANTIS_OBJS = $(HACK_OBJS) dolphin.o shark.o swim.o whale.o $(PNG)
+atlantis: atlantis.o $(ATLANTIS_OBJS)
+ $(CC_HACK) -o $@ $@.o $(ATLANTIS_OBJS) $(PNG_LIBS)
+
+ATUNNEL_OBJS = $(HACK_OBJS) tunnel_draw.o $(PNG)
+atunnel: atunnel.o $(ATUNNEL_OBJS)
+ $(CC_HACK) -o $@ $@.o $(ATUNNEL_OBJS) $(PNG_LIBS)
+
+cage: cage.o $(PNG) $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_OBJS) $(PNG_LIBS)
+
+FLURRY_OBJS_1 = flurry-smoke.o flurry-spark.o flurry-star.o flurry-texture.o
+FLURRY_OBJS = $(FLURRY_OBJS_1) $(HACK_OBJS)
+
+flurry: flurry.o $(FLURRY_OBJS)
+ $(CC_HACK) -o $@ $@.o $(FLURRY_OBJS) $(HACK_LIBS) -lm
+
+GEARS_OBJS_1=normals.o involute.o
+GEARS_OBJS=$(GEARS_OBJS_1) $(HACK_TRACK_OBJS)
+gears: gears.o tube.o $(GEARS_OBJS)
+ $(CC_HACK) -o $@ $@.o tube.o $(GEARS_OBJS) $(HACK_LIBS)
+
+MOEBIUS_OBJS=sphere.o tube.o $(PNG) $(HACK_TRACK_OBJS)
+moebius: moebius.o $(MOEBIUS_OBJS)
+ $(CC_HACK) -o $@ $@.o $(MOEBIUS_OBJS) $(HACK_LIBS) $(PNG_LIBS)
+
+PIPE_OBJS=pipeobjs.o buildlwo.o sphere.o teapot.o normals.o
+pipes: pipes.o $(PIPE_OBJS) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PIPE_OBJS) $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+superquadrics: superquadrics.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+morph3d: morph3d.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+rubik: rubik.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+stairs: stairs.o sphere.o $(PNG) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o sphere.o $(PNG) $(HACK_TRACK_OBJS) \
+ $(HACK_LIBS) $(PNG_LIBS)
+
+SPROINGIES = sproingiewrap.o gllist.o \
+ s1_1.o s1_2.o s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o
+sproingies: sproingies.o $(HACK_OBJS) $(SPROINGIES)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SPROINGIES) $(HACK_LIBS)
+
+LAMENTOBJS = gllist.o lament_model.o $(HACK_TRACK_OBJS) $(PNG) normals.o
+lament: lament.o $(LAMENTOBJS)
+ $(CC_HACK) -o $@ $@.o $(LAMENTOBJS) $(PNG_LIBS)
+
+lament_dxf::
+ ./dxf2gl.pl --smooth --layers lament.dxf lament_model.c
+
+
+B3D_OBJS = b_sphere.o b_draw.o b_lockglue.o $(HACK_OBJS)
+bubble3d: bubble3d.o $(B3D_OBJS)
+ $(CC_HACK) -o $@ $@.o $(B3D_OBJS) $(HACK_LIBS)
+
+PLANET_OBJS=sphere.o $(PNG) $(HACK_TRACK_OBJS)
+glplanet: glplanet.o $(PLANET_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PLANET_OBJS) $(PNG_LIBS)
+
+DYMAXIOBJS=dymaxionmap-coords.o normals.o $(PLANET_OBJS)
+dymaxionmap: dymaxionmap.o $(DYMAXIOBJS)
+ $(CC_HACK) -o $@ $@.o $(DYMAXIOBJS) $(PNG_LIBS)
+
+pulsar: pulsar.o $(HACK_OBJS) $(PNG)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(PNG) $(PNG_LIBS)
+
+EXTRUSION_OBJS=extrusion.o extrusion-helix2.o extrusion-helix3.o \
+ extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
+ extrusion-taper.o extrusion-twistoid.o $(PNG) \
+ $(HACK_TRACK_OBJS)
+extrusion: $(EXTRUSION_OBJS)
+ $(CC_HACK) -o $@ $(EXTRUSION_OBJS) $(GLE_LIBS)
+
+sierpinski3d: sierpinski3d.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+gflux: gflux.o $(HACK_TRACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
+
+SW_OBJS=starwars.o glut_stroke.o glut_swidth.o $(TEXT) $(HACK_OBJS)
+starwars: $(SW_OBJS)
+ $(CC_HACK) -o $@ $(SW_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
+
+GLT_OBJS=gltext.o glut_stroke.o glut_swidth.o tube.o sphere.o \
+ $(TEXT) $(HACK_TRACK_OBJS)
+gltext: $(GLT_OBJS)
+ $(CC_HACK) -o $@ $(GLT_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
+
+DB_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
+dangerball: dangerball.o $(DB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(DB_OBJS) $(HACK_LIBS)
+
+circuit: circuit.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+menger: menger.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+engine: engine.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+flipscreen3d: flipscreen3d.o $(HACK_TRACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
+
+glsnake: glsnake.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+boxed: boxed.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+glforestfire: glforestfire.o $(PNG) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_TRACK_OBJS) $(PNG_LIBS)
+
+sballs: sballs.o $(PNG) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_TRACK_OBJS) $(PNG_LIBS)
+
+cubenetic: cubenetic.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+spheremonics: spheremonics.o normals.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+LL_OBJS=marching.o $(PNG) normals.o $(HACK_TRACK_OBJS)
+lavalite: lavalite.o $(LL_OBJS)
+ $(CC_HACK) -o $@ $@.o $(LL_OBJS) $(PNG_LIBS)
+
+queens: queens.o chessmodels.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o chessmodels.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+endgame: endgame.o chessmodels.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o chessmodels.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+glblur: glblur.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+TOAST_OBJS=\
+ toaster.o toaster_base.o toaster_handle.o toaster_handle2.o \
+ toaster_jet.o toaster_knob.o toaster_slots.o toaster_wing.o \
+ toast.o toast2.o \
+ flyingtoasters.o gllist.o $(PNG) $(HACK_TRACK_OBJS)
+flyingtoasters: $(TOAST_OBJS)
+ $(CC_HACK) -o $@ $(TOAST_OBJS) $(PNG_LIBS)
+
+toaster_dxf::
+ @set -e ; \
+ for f in \
+ toaster.dxf \
+ toaster_base.dxf \
+ toaster_handle.dxf \
+ toaster_handle2.dxf \
+ toaster_jet.dxf \
+ toaster_knob.dxf \
+ toaster_slots.dxf \
+ toaster_wing.dxf \
+ toast.dxf \
+ toast2.dxf \
+ ; do \
+ f2=`echo $$f | sed 's/dxf$$/c/'` ; \
+ ./dxf2gl.pl --normalize --smooth $$f $$f2 ; \
+ done ; \
+
+COW_OBJS=\
+ cow_face.o cow_hide.o cow_hoofs.o cow_horns.o cow_tail.o cow_udder.o \
+ bouncingcow.o gllist.o $(PNG) $(HACK_TRACK_OBJS)
+bouncingcow: $(COW_OBJS)
+ $(CC_HACK) -o $@ $(COW_OBJS) $(PNG_LIBS)
+
+ROBO_OBJS=\
+ robot.o robot-wireframe.o gllist.o $(PNG) sphere.o \
+ winduprobot.o $(GEARS_OBJS_1) $(TEXT) $(HACK_TRACK_OBJS)
+winduprobot: $(ROBO_OBJS)
+ $(CC_HACK) -o $@ $(ROBO_OBJS) $(PNG_LIBS) $(TEXT_LIBS)
+
+winduprobot_dxf::
+ ./dxf2gl.pl --smooth --layers robot.dxf robot.c
+ ./dxf2gl.pl --wireframe robot-wireframe.dxf robot-wireframe.c
+
+CAM_OBJS=seccam.o gllist.o vigilance.o $(HACK_TRACK_OBJS)
+vigilance: $(CAM_OBJS)
+ $(CC_HACK) -o $@ $(CAM_OBJS) $(HACK_LIBS)
+
+seccam_dxf::
+ ./dxf2gl.pl --smooth --layers seccam.dxf seccam.c
+
+glslideshow: glslideshow.o $(HACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_GRAB_OBJS) $(HACK_LIBS)
+
+jigglypuff: jigglypuff.o $(PNG) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_TRACK_OBJS) $(PNG_LIBS)
+
+klein: klein.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+surfaces: surfaces.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+hypertorus: hypertorus.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+projectiveplane: projectiveplane.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+romanboy: romanboy.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+glmatrix: glmatrix.o $(PNG) $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_OBJS) $(PNG_LIBS)
+
+cubestorm: cubestorm.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+glknots: glknots.o tube.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+blocktube: blocktube.o $(PNG) $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_OBJS) $(PNG_LIBS)
+
+flipflop: flipflop.o $(HACK_TRACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
+
+antspotlight: antspotlight.o sphere.o $(HACK_TRACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o sphere.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
+
+polytopes: polytopes.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+STONER_OBJS=stonerview-move.o stonerview-osc.o stonerview-view.o
+stonerview: stonerview.o $(STONER_OBJS) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(STONER_OBJS) $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+molecules.h:
+ @echo "building molecules.h from $(HACK_SRC)/images/molecules/*.pdb"; \
+ UTILS_SRC="$(UTILS_SRC)" \
+ $(srcdir)/molecules.sh molecules.h $(HACK_SRC)/images/molecules/*.pdb
+
+MOLECULE_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
+molecule.o: molecules.h
+molecule: molecule.o $(MOLECULE_OBJS)
+ $(CC_HACK) -o $@ $@.o $(MOLECULE_OBJS) $(HACK_LIBS)
+
+gleidescope: gleidescope.o $(PNG) $(HACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_GRAB_OBJS) $(PNG_LIBS)
+
+mirrorblob: mirrorblob.o $(HACK_TRACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(PNG_LIBS)
+
+blinkbox: blinkbox.o sphere.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o sphere.o $(HACK_OBJS) $(HACK_LIBS)
+
+noof: noof.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+PH_OBJS=polyhedra-gl.o normals.o teapot.o $(HACK_TRACK_OBJS)
+polyhedra: polyhedra.o $(PH_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PH_OBJS) $(HACK_LIBS)
+
+antinspect: antinspect.o sphere.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+providence: providence.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+pinion: pinion.o $(GEARS_OBJS)
+ $(CC_HACK) -o $@ $@.o $(GEARS_OBJS) $(HACK_LIBS)
+
+moebiusgears: moebiusgears.o $(GEARS_OBJS)
+ $(CC_HACK) -o $@ $@.o $(GEARS_OBJS) $(HACK_LIBS)
+
+boing: boing.o normals.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+carousel: carousel.o $(HACK_TRACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
+
+fliptext: fliptext.o $(TEXT) $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(TEXT) $(HACK_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
+
+antmaze: antmaze.o sphere.o tube.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o sphere.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+TANGRAM_OBJS=tangram_shapes.o $(HACK_OBJS)
+tangram: tangram.o $(TANGRAM_OBJS)
+ $(CC_HACK) -o $@ $@.o $(TANGRAM_OBJS) $(HACK_LIBS)
+
+crackberg: crackberg.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+glhanoi: glhanoi.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+cube21: cube21.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+TIMETUNNEL_OBJS = $(PNG) $(HACK_TRACK_OBJS)
+timetunnel: timetunnel.o $(TIMETUNNEL_OBJS)
+ $(CC_HACK) -o $@ $@.o $(TIMETUNNEL_OBJS) $(PNG_LIBS)
+
+JUGG_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
+juggler3d: juggler3d.o $(JUGG_OBJS)
+ $(CC_HACK) -o $@ $@.o $(JUGG_OBJS) $(HACK_LIBS)
+
+dnalogo: dnalogo.o tube.o sphere.o normals.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o tube.o sphere.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+topblock: topblock.o sphere.o tube.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o sphere.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+SCHOOL_OBJS=glschool.o glschool_alg.o glschool_gl.o \
+ sphere.o tube.o normals.o $(HACK_OBJS)
+glschool: $(SCHOOL_OBJS)
+ $(CC_HACK) -o $@ $(SCHOOL_OBJS) $(HACK_LIBS)
+
+glcells: glcells.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+voronoi: voronoi.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+lockward: lockward.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+
+cubicgrid: cubicgrid.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+hypnowheel: hypnowheel.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+TENTACLE_OBJS=normals.o $(PNG) $(HACK_TRACK_OBJS)
+skytentacles: skytentacles.o $(TENTACLE_OBJS)
+ $(CC_HACK) -o $@ $@.o $(TENTACLE_OBJS) $(PNG_LIBS)
+
+SONAR_OBJS=sonar-sim.o sonar-icmp.o $(HACK_TRACK_OBJS)
+sonar: sonar.o $(SONAR_OBJS)
+ $(CC_HACK) -o $@ $@.o $(SONAR_OBJS) $(HACK_LIBS)
+
+JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o $(HACK_TRACK_GRAB_OBJS)
+jigsaw: jigsaw.o $(JIGSAW_OBJS)
+ $(CC_HACK) -o $@ $@.o $(JIGSAW_OBJS) $(HACK_LIBS)
+
+PHOTOPILE_OBJS=dropshadow.o $(HACK_GRAB_OBJS)
+photopile: photopile.o $(PHOTOPILE_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PHOTOPILE_OBJS) $(HACK_LIBS)
+
+rubikblocks: rubikblocks.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+HILB_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
+hilbert: hilbert.o $(HILB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HILB_OBJS) $(HACK_LIBS)
+
+CCUBE_OBJS=companion.o companion_quad.o companion_disc.o companion_heart.o \
+ gllist.o $(HACK_TRACK_OBJS)
+companioncube: $(CCUBE_OBJS)
+ $(CC_HACK) -o $@ $(CCUBE_OBJS) $(HACK_LIBS)
+
+TBIT_OBJS=tronbit.o tronbit_idle1.o tronbit_idle2.o tronbit_no.o tronbit_yes.o\
+ gllist.o $(HACK_TRACK_OBJS)
+tronbit: $(TBIT_OBJS)
+ $(CC_HACK) -o $@ $(TBIT_OBJS) $(HACK_LIBS)
+
+KALEIDOCYCLE_OBJS=kaleidocycle.o normals.o $(HACK_TRACK_OBJS)
+kaleidocycle: $(KALEIDOCYCLE_OBJS)
+ $(CC_HACK) -o $@ $(KALEIDOCYCLE_OBJS) $(HACK_LIBS)
+
+quasicrystal: quasicrystal.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+unknownpleasures: unknownpleasures.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+geodesic: geodesic.o normals.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+geodesicgears: geodesicgears.o $(GEARS_OBJS)
+ $(CC_HACK) -o $@ $@.o $(GEARS_OBJS) $(HACK_LIBS)
+
+cityflow: cityflow.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+splitflap_dxf::
+ ./dxf2gl.pl --normalize --smooth --layers splitflap.dxf splitflap_obj.c
+
+FLAP_OBJS=splitflap_obj.o gllist.o splitflap.o $(TEXT) $(HACK_TRACK_OBJS)
+splitflap: $(FLAP_OBJS)
+ $(CC_HACK) -o $@ $(FLAP_OBJS) $(PNG_LIBS) $(TEXT_LIBS)
+
+unicrud: unicrud.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+ES_OBJS=$(PNG) $(HACK_TRACK_OBJS)
+energystream: energystream.o $(ES_OBJS)
+ $(CC_HACK) -o $@ $@.o $(ES_OBJS) $(PNG_LIBS) $(HACK_LIBS)
+
+raverhoop: raverhoop.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+HSTAT_OBJS=sphere.o normals.o $(HACK_TRACK_OBJS)
+hydrostat: hydrostat.o $(HSTAT_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HSTAT_OBJS) $(HACK_LIBS)
+
+discoball: discoball.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+cubetwist: cubetwist.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+cubestack: cubestack.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+splodesic: splodesic.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+hexstrut: hexstrut.o normals.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+esper: esper.o $(HACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_GRAB_OBJS) $(HACK_LIBS)
+
+ships_dxf::
+ ./dxf2gl.pl --normalize --layers ships.dxf ships.c
+
+DAZ_OBJS=ships.o gllist.o $(HACK_TRACK_OBJS)
+razzledazzle: razzledazzle.o $(DAZ_OBJS)
+ $(CC_HACK) -o $@ $@.o $(DAZ_OBJS) $(HACK_LIBS)
+
+peepers: peepers.o normals.o $(PNG) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o normals.o $(PNG) $(PNG_LIBS) $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+crumbler: crumbler.o quickhull.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o quickhull.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+maze3d: maze3d.o $(PNG) $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(PNG) $(PNG_LIBS) $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
+##############################################################################
+#
+# DO NOT DELETE: updated by make distdepend
+
+antinspect.o: ../../config.h
+antinspect.o: $(HACK_SRC)/fps.h
+antinspect.o: $(srcdir)/gltrackball.h
+antinspect.o: $(HACK_SRC)/recanim.h
+antinspect.o: $(HACK_SRC)/screenhackI.h
+antinspect.o: $(srcdir)/sphere.h
+antinspect.o: $(UTILS_SRC)/colors.h
+antinspect.o: $(UTILS_SRC)/erase.h
+antinspect.o: $(UTILS_SRC)/font-retry.h
+antinspect.o: $(UTILS_SRC)/grabscreen.h
+antinspect.o: $(UTILS_SRC)/hsv.h
+antinspect.o: $(UTILS_SRC)/resources.h
+antinspect.o: $(UTILS_SRC)/usleep.h
+antinspect.o: $(UTILS_SRC)/visual.h
+antinspect.o: $(UTILS_SRC)/yarandom.h
+antinspect.o: $(HACK_SRC)/xlockmoreI.h
+antinspect.o: $(HACK_SRC)/xlockmore.h
+antmaze.o: $(srcdir)/ants.h
+antmaze.o: ../../config.h
+antmaze.o: $(HACK_SRC)/fps.h
+antmaze.o: $(srcdir)/gltrackball.h
+antmaze.o: $(HACK_SRC)/recanim.h
+antmaze.o: $(srcdir)/rotator.h
+antmaze.o: $(HACK_SRC)/screenhackI.h
+antmaze.o: $(srcdir)/sphere.h
+antmaze.o: $(srcdir)/tube.h
+antmaze.o: $(UTILS_SRC)/colors.h
+antmaze.o: $(UTILS_SRC)/erase.h
+antmaze.o: $(UTILS_SRC)/font-retry.h
+antmaze.o: $(UTILS_SRC)/grabscreen.h
+antmaze.o: $(UTILS_SRC)/hsv.h
+antmaze.o: $(UTILS_SRC)/resources.h
+antmaze.o: $(UTILS_SRC)/usleep.h
+antmaze.o: $(UTILS_SRC)/visual.h
+antmaze.o: $(UTILS_SRC)/yarandom.h
+antmaze.o: $(HACK_SRC)/xlockmoreI.h
+antmaze.o: $(HACK_SRC)/xlockmore.h
+antspotlight.o: $(srcdir)/ants.h
+antspotlight.o: ../../config.h
+antspotlight.o: $(HACK_SRC)/fps.h
+antspotlight.o: $(srcdir)/gltrackball.h
+antspotlight.o: $(srcdir)/grab-ximage.h
+antspotlight.o: $(HACK_SRC)/recanim.h
+antspotlight.o: $(srcdir)/rotator.h
+antspotlight.o: $(HACK_SRC)/screenhackI.h
+antspotlight.o: $(srcdir)/sphere.h
+antspotlight.o: $(srcdir)/tube.h
+antspotlight.o: $(UTILS_SRC)/colors.h
+antspotlight.o: $(UTILS_SRC)/erase.h
+antspotlight.o: $(UTILS_SRC)/font-retry.h
+antspotlight.o: $(UTILS_SRC)/grabscreen.h
+antspotlight.o: $(UTILS_SRC)/hsv.h
+antspotlight.o: $(UTILS_SRC)/resources.h
+antspotlight.o: $(UTILS_SRC)/usleep.h
+antspotlight.o: $(UTILS_SRC)/visual.h
+antspotlight.o: $(UTILS_SRC)/yarandom.h
+antspotlight.o: $(HACK_SRC)/xlockmoreI.h
+antspotlight.o: $(HACK_SRC)/xlockmore.h
+atlantis.o: $(srcdir)/atlantis.h
+atlantis.o: ../../config.h
+atlantis.o: $(HACK_SRC)/fps.h
+atlantis.o: $(HACK_SRC)/images/gen/sea-texture_png.h
+atlantis.o: $(HACK_SRC)/recanim.h
+atlantis.o: $(HACK_SRC)/screenhackI.h
+atlantis.o: $(UTILS_SRC)/colors.h
+atlantis.o: $(UTILS_SRC)/erase.h
+atlantis.o: $(UTILS_SRC)/font-retry.h
+atlantis.o: $(UTILS_SRC)/grabscreen.h
+atlantis.o: $(UTILS_SRC)/hsv.h
+atlantis.o: $(UTILS_SRC)/resources.h
+atlantis.o: $(UTILS_SRC)/usleep.h
+atlantis.o: $(UTILS_SRC)/visual.h
+atlantis.o: $(UTILS_SRC)/yarandom.h
+atlantis.o: $(HACK_SRC)/ximage-loader.h
+atlantis.o: $(HACK_SRC)/xlockmoreI.h
+atlantis.o: $(HACK_SRC)/xlockmore.h
+atunnel.o: ../../config.h
+atunnel.o: $(HACK_SRC)/fps.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel0_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel1_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel2_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel3_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel4_png.h
+atunnel.o: $(HACK_SRC)/images/gen/tunnel5_png.h
+atunnel.o: $(HACK_SRC)/recanim.h
+atunnel.o: $(HACK_SRC)/screenhackI.h
+atunnel.o: $(srcdir)/tunnel_draw.h
+atunnel.o: $(UTILS_SRC)/colors.h
+atunnel.o: $(UTILS_SRC)/erase.h
+atunnel.o: $(UTILS_SRC)/font-retry.h
+atunnel.o: $(UTILS_SRC)/grabscreen.h
+atunnel.o: $(UTILS_SRC)/hsv.h
+atunnel.o: $(UTILS_SRC)/resources.h
+atunnel.o: $(UTILS_SRC)/usleep.h
+atunnel.o: $(UTILS_SRC)/visual.h
+atunnel.o: $(UTILS_SRC)/yarandom.h
+atunnel.o: $(HACK_SRC)/ximage-loader.h
+atunnel.o: $(HACK_SRC)/xlockmoreI.h
+atunnel.o: $(HACK_SRC)/xlockmore.h
+b_draw.o: $(srcdir)/bubble3d.h
+b_draw.o: ../../config.h
+b_draw.o: $(HACK_SRC)/fps.h
+b_draw.o: $(HACK_SRC)/recanim.h
+b_draw.o: $(HACK_SRC)/screenhackI.h
+b_draw.o: $(UTILS_SRC)/colors.h
+b_draw.o: $(UTILS_SRC)/erase.h
+b_draw.o: $(UTILS_SRC)/font-retry.h
+b_draw.o: $(UTILS_SRC)/grabscreen.h
+b_draw.o: $(UTILS_SRC)/hsv.h
+b_draw.o: $(UTILS_SRC)/resources.h
+b_draw.o: $(UTILS_SRC)/usleep.h
+b_draw.o: $(UTILS_SRC)/visual.h
+b_draw.o: $(UTILS_SRC)/yarandom.h
+b_draw.o: $(HACK_SRC)/xlockmoreI.h
+blinkbox.o: ../../config.h
+blinkbox.o: $(HACK_SRC)/fps.h
+blinkbox.o: $(HACK_SRC)/recanim.h
+blinkbox.o: $(HACK_SRC)/screenhackI.h
+blinkbox.o: $(srcdir)/sphere.h
+blinkbox.o: $(UTILS_SRC)/colors.h
+blinkbox.o: $(UTILS_SRC)/erase.h
+blinkbox.o: $(UTILS_SRC)/font-retry.h
+blinkbox.o: $(UTILS_SRC)/grabscreen.h
+blinkbox.o: $(UTILS_SRC)/hsv.h
+blinkbox.o: $(UTILS_SRC)/resources.h
+blinkbox.o: $(UTILS_SRC)/usleep.h
+blinkbox.o: $(UTILS_SRC)/visual.h
+blinkbox.o: $(UTILS_SRC)/yarandom.h
+blinkbox.o: $(HACK_SRC)/xlockmoreI.h
+blinkbox.o: $(HACK_SRC)/xlockmore.h
+b_lockglue.o: $(srcdir)/bubble3d.h
+b_lockglue.o: ../../config.h
+b_lockglue.o: $(HACK_SRC)/fps.h
+b_lockglue.o: $(HACK_SRC)/recanim.h
+b_lockglue.o: $(HACK_SRC)/screenhackI.h
+b_lockglue.o: $(UTILS_SRC)/colors.h
+b_lockglue.o: $(UTILS_SRC)/erase.h
+b_lockglue.o: $(UTILS_SRC)/font-retry.h
+b_lockglue.o: $(UTILS_SRC)/grabscreen.h
+b_lockglue.o: $(UTILS_SRC)/hsv.h
+b_lockglue.o: $(UTILS_SRC)/resources.h
+b_lockglue.o: $(UTILS_SRC)/usleep.h
+b_lockglue.o: $(UTILS_SRC)/visual.h
+b_lockglue.o: $(UTILS_SRC)/yarandom.h
+b_lockglue.o: $(HACK_SRC)/xlockmoreI.h
+b_lockglue.o: $(HACK_SRC)/xlockmore.h
+blocktube.o: ../../config.h
+blocktube.o: $(HACK_SRC)/fps.h
+blocktube.o: $(HACK_SRC)/images/gen/blocktube_png.h
+blocktube.o: $(HACK_SRC)/recanim.h
+blocktube.o: $(HACK_SRC)/screenhackI.h
+blocktube.o: $(UTILS_SRC)/colors.h
+blocktube.o: $(UTILS_SRC)/erase.h
+blocktube.o: $(UTILS_SRC)/font-retry.h
+blocktube.o: $(UTILS_SRC)/grabscreen.h
+blocktube.o: $(UTILS_SRC)/hsv.h
+blocktube.o: $(UTILS_SRC)/resources.h
+blocktube.o: $(UTILS_SRC)/usleep.h
+blocktube.o: $(UTILS_SRC)/visual.h
+blocktube.o: $(UTILS_SRC)/yarandom.h
+blocktube.o: $(HACK_SRC)/ximage-loader.h
+blocktube.o: $(HACK_SRC)/xlockmoreI.h
+blocktube.o: $(HACK_SRC)/xlockmore.h
+boing.o: ../../config.h
+boing.o: $(HACK_SRC)/fps.h
+boing.o: $(srcdir)/gltrackball.h
+boing.o: $(HACK_SRC)/recanim.h
+boing.o: $(HACK_SRC)/screenhackI.h
+boing.o: $(UTILS_SRC)/colors.h
+boing.o: $(UTILS_SRC)/erase.h
+boing.o: $(UTILS_SRC)/font-retry.h
+boing.o: $(UTILS_SRC)/grabscreen.h
+boing.o: $(UTILS_SRC)/hsv.h
+boing.o: $(UTILS_SRC)/resources.h
+boing.o: $(UTILS_SRC)/usleep.h
+boing.o: $(UTILS_SRC)/visual.h
+boing.o: $(UTILS_SRC)/yarandom.h
+boing.o: $(HACK_SRC)/xlockmoreI.h
+boing.o: $(HACK_SRC)/xlockmore.h
+bouncingcow.o: ../../config.h
+bouncingcow.o: $(HACK_SRC)/fps.h
+bouncingcow.o: $(srcdir)/gllist.h
+bouncingcow.o: $(srcdir)/gltrackball.h
+bouncingcow.o: $(HACK_SRC)/recanim.h
+bouncingcow.o: $(srcdir)/rotator.h
+bouncingcow.o: $(HACK_SRC)/screenhackI.h
+bouncingcow.o: $(UTILS_SRC)/colors.h
+bouncingcow.o: $(UTILS_SRC)/erase.h
+bouncingcow.o: $(UTILS_SRC)/font-retry.h
+bouncingcow.o: $(UTILS_SRC)/grabscreen.h
+bouncingcow.o: $(UTILS_SRC)/hsv.h
+bouncingcow.o: $(UTILS_SRC)/resources.h
+bouncingcow.o: $(UTILS_SRC)/usleep.h
+bouncingcow.o: $(UTILS_SRC)/visual.h
+bouncingcow.o: $(UTILS_SRC)/yarandom.h
+bouncingcow.o: $(HACK_SRC)/ximage-loader.h
+bouncingcow.o: $(HACK_SRC)/xlockmoreI.h
+bouncingcow.o: $(HACK_SRC)/xlockmore.h
+boxed.o: $(srcdir)/boxed.h
+boxed.o: ../../config.h
+boxed.o: $(HACK_SRC)/fps.h
+boxed.o: $(HACK_SRC)/recanim.h
+boxed.o: $(HACK_SRC)/screenhackI.h
+boxed.o: $(UTILS_SRC)/colors.h
+boxed.o: $(UTILS_SRC)/erase.h
+boxed.o: $(UTILS_SRC)/font-retry.h
+boxed.o: $(UTILS_SRC)/grabscreen.h
+boxed.o: $(UTILS_SRC)/hsv.h
+boxed.o: $(UTILS_SRC)/resources.h
+boxed.o: $(UTILS_SRC)/usleep.h
+boxed.o: $(UTILS_SRC)/visual.h
+boxed.o: $(UTILS_SRC)/yarandom.h
+boxed.o: $(HACK_SRC)/xlockmoreI.h
+boxed.o: $(HACK_SRC)/xlockmore.h
+b_sphere.o: $(srcdir)/bubble3d.h
+b_sphere.o: ../../config.h
+b_sphere.o: $(HACK_SRC)/fps.h
+b_sphere.o: $(HACK_SRC)/recanim.h
+b_sphere.o: $(HACK_SRC)/screenhackI.h
+b_sphere.o: $(UTILS_SRC)/colors.h
+b_sphere.o: $(UTILS_SRC)/erase.h
+b_sphere.o: $(UTILS_SRC)/font-retry.h
+b_sphere.o: $(UTILS_SRC)/grabscreen.h
+b_sphere.o: $(UTILS_SRC)/hsv.h
+b_sphere.o: $(UTILS_SRC)/resources.h
+b_sphere.o: $(UTILS_SRC)/usleep.h
+b_sphere.o: $(UTILS_SRC)/visual.h
+b_sphere.o: $(UTILS_SRC)/yarandom.h
+b_sphere.o: $(HACK_SRC)/xlockmoreI.h
+bubble3d.o: $(srcdir)/bubble3d.h
+bubble3d.o: ../../config.h
+bubble3d.o: $(HACK_SRC)/fps.h
+bubble3d.o: $(HACK_SRC)/recanim.h
+bubble3d.o: $(HACK_SRC)/screenhackI.h
+bubble3d.o: $(UTILS_SRC)/colors.h
+bubble3d.o: $(UTILS_SRC)/erase.h
+bubble3d.o: $(UTILS_SRC)/font-retry.h
+bubble3d.o: $(UTILS_SRC)/grabscreen.h
+bubble3d.o: $(UTILS_SRC)/hsv.h
+bubble3d.o: $(UTILS_SRC)/resources.h
+bubble3d.o: $(UTILS_SRC)/usleep.h
+bubble3d.o: $(UTILS_SRC)/visual.h
+bubble3d.o: $(UTILS_SRC)/yarandom.h
+bubble3d.o: $(HACK_SRC)/xlockmoreI.h
+buildlwo.o: $(srcdir)/buildlwo.h
+buildlwo.o: ../../config.h
+cage.o: ../../config.h
+cage.o: $(HACK_SRC)/fps.h
+cage.o: $(HACK_SRC)/images/gen/wood_png.h
+cage.o: $(HACK_SRC)/recanim.h
+cage.o: $(HACK_SRC)/screenhackI.h
+cage.o: $(UTILS_SRC)/colors.h
+cage.o: $(UTILS_SRC)/erase.h
+cage.o: $(UTILS_SRC)/font-retry.h
+cage.o: $(UTILS_SRC)/grabscreen.h
+cage.o: $(UTILS_SRC)/hsv.h
+cage.o: $(UTILS_SRC)/resources.h
+cage.o: $(UTILS_SRC)/usleep.h
+cage.o: $(UTILS_SRC)/visual.h
+cage.o: $(UTILS_SRC)/yarandom.h
+cage.o: $(HACK_SRC)/ximage-loader.h
+cage.o: $(HACK_SRC)/xlockmoreI.h
+cage.o: $(HACK_SRC)/xlockmore.h
+carousel.o: ../../config.h
+carousel.o: $(HACK_SRC)/fps.h
+carousel.o: $(srcdir)/gltrackball.h
+carousel.o: $(srcdir)/grab-ximage.h
+carousel.o: $(HACK_SRC)/recanim.h
+carousel.o: $(srcdir)/rotator.h
+carousel.o: $(HACK_SRC)/screenhackI.h
+carousel.o: $(srcdir)/texfont.h
+carousel.o: $(UTILS_SRC)/colors.h
+carousel.o: $(UTILS_SRC)/erase.h
+carousel.o: $(UTILS_SRC)/font-retry.h
+carousel.o: $(UTILS_SRC)/grabscreen.h
+carousel.o: $(UTILS_SRC)/hsv.h
+carousel.o: $(UTILS_SRC)/resources.h
+carousel.o: $(UTILS_SRC)/usleep.h
+carousel.o: $(UTILS_SRC)/visual.h
+carousel.o: $(UTILS_SRC)/yarandom.h
+carousel.o: $(HACK_SRC)/xlockmoreI.h
+carousel.o: $(HACK_SRC)/xlockmore.h
+chessmodels.o: $(srcdir)/chessmodels.h
+chessmodels.o: ../../config.h
+circuit.o: ../../config.h
+circuit.o: $(HACK_SRC)/fps.h
+circuit.o: $(HACK_SRC)/recanim.h
+circuit.o: $(HACK_SRC)/screenhackI.h
+circuit.o: $(srcdir)/texfont.h
+circuit.o: $(UTILS_SRC)/colors.h
+circuit.o: $(UTILS_SRC)/erase.h
+circuit.o: $(UTILS_SRC)/font-retry.h
+circuit.o: $(UTILS_SRC)/grabscreen.h
+circuit.o: $(UTILS_SRC)/hsv.h
+circuit.o: $(UTILS_SRC)/resources.h
+circuit.o: $(UTILS_SRC)/usleep.h
+circuit.o: $(UTILS_SRC)/visual.h
+circuit.o: $(UTILS_SRC)/yarandom.h
+circuit.o: $(HACK_SRC)/xlockmoreI.h
+circuit.o: $(HACK_SRC)/xlockmore.h
+cityflow.o: ../../config.h
+cityflow.o: $(HACK_SRC)/fps.h
+cityflow.o: $(srcdir)/gltrackball.h
+cityflow.o: $(HACK_SRC)/recanim.h
+cityflow.o: $(HACK_SRC)/screenhackI.h
+cityflow.o: $(UTILS_SRC)/colors.h
+cityflow.o: $(UTILS_SRC)/erase.h
+cityflow.o: $(UTILS_SRC)/font-retry.h
+cityflow.o: $(UTILS_SRC)/grabscreen.h
+cityflow.o: $(UTILS_SRC)/hsv.h
+cityflow.o: $(UTILS_SRC)/resources.h
+cityflow.o: $(UTILS_SRC)/usleep.h
+cityflow.o: $(UTILS_SRC)/visual.h
+cityflow.o: $(UTILS_SRC)/yarandom.h
+cityflow.o: $(HACK_SRC)/xlockmoreI.h
+cityflow.o: $(HACK_SRC)/xlockmore.h
+companion_disc.o: ../../config.h
+companion_disc.o: $(srcdir)/gllist.h
+companion_heart.o: ../../config.h
+companion_heart.o: $(srcdir)/gllist.h
+companion.o: ../../config.h
+companion.o: $(HACK_SRC)/fps.h
+companion.o: $(srcdir)/gllist.h
+companion.o: $(srcdir)/gltrackball.h
+companion.o: $(HACK_SRC)/recanim.h
+companion.o: $(srcdir)/rotator.h
+companion.o: $(HACK_SRC)/screenhackI.h
+companion.o: $(UTILS_SRC)/colors.h
+companion.o: $(UTILS_SRC)/erase.h
+companion.o: $(UTILS_SRC)/font-retry.h
+companion.o: $(UTILS_SRC)/grabscreen.h
+companion.o: $(UTILS_SRC)/hsv.h
+companion.o: $(UTILS_SRC)/resources.h
+companion.o: $(UTILS_SRC)/usleep.h
+companion.o: $(UTILS_SRC)/visual.h
+companion.o: $(UTILS_SRC)/yarandom.h
+companion.o: $(HACK_SRC)/ximage-loader.h
+companion.o: $(HACK_SRC)/xlockmoreI.h
+companion.o: $(HACK_SRC)/xlockmore.h
+companion_quad.o: ../../config.h
+companion_quad.o: $(srcdir)/gllist.h
+cow_face.o: ../../config.h
+cow_face.o: $(srcdir)/gllist.h
+cow_hide.o: ../../config.h
+cow_hide.o: $(srcdir)/gllist.h
+cow_hoofs.o: ../../config.h
+cow_hoofs.o: $(srcdir)/gllist.h
+cow_horns.o: ../../config.h
+cow_horns.o: $(srcdir)/gllist.h
+cow_tail.o: ../../config.h
+cow_tail.o: $(srcdir)/gllist.h
+cow_udder.o: ../../config.h
+cow_udder.o: $(srcdir)/gllist.h
+crackberg.o: ../../config.h
+crackberg.o: $(HACK_SRC)/fps.h
+crackberg.o: $(HACK_SRC)/recanim.h
+crackberg.o: $(HACK_SRC)/screenhackI.h
+crackberg.o: $(UTILS_SRC)/colors.h
+crackberg.o: $(UTILS_SRC)/erase.h
+crackberg.o: $(UTILS_SRC)/font-retry.h
+crackberg.o: $(UTILS_SRC)/grabscreen.h
+crackberg.o: $(UTILS_SRC)/hsv.h
+crackberg.o: $(UTILS_SRC)/resources.h
+crackberg.o: $(UTILS_SRC)/usleep.h
+crackberg.o: $(UTILS_SRC)/visual.h
+crackberg.o: $(UTILS_SRC)/yarandom.h
+crackberg.o: $(HACK_SRC)/xlockmoreI.h
+crackberg.o: $(HACK_SRC)/xlockmore.h
+crumbler.o: ../../config.h
+crumbler.o: $(HACK_SRC)/fps.h
+crumbler.o: $(srcdir)/gltrackball.h
+crumbler.o: $(srcdir)/quickhull.h
+crumbler.o: $(HACK_SRC)/recanim.h
+crumbler.o: $(srcdir)/rotator.h
+crumbler.o: $(HACK_SRC)/screenhackI.h
+crumbler.o: $(UTILS_SRC)/colors.h
+crumbler.o: $(UTILS_SRC)/erase.h
+crumbler.o: $(UTILS_SRC)/font-retry.h
+crumbler.o: $(UTILS_SRC)/grabscreen.h
+crumbler.o: $(UTILS_SRC)/hsv.h
+crumbler.o: $(UTILS_SRC)/resources.h
+crumbler.o: $(UTILS_SRC)/usleep.h
+crumbler.o: $(UTILS_SRC)/visual.h
+crumbler.o: $(UTILS_SRC)/yarandom.h
+crumbler.o: $(HACK_SRC)/xlockmoreI.h
+crumbler.o: $(HACK_SRC)/xlockmore.h
+cube21.o: ../../config.h
+cube21.o: $(HACK_SRC)/fps.h
+cube21.o: $(srcdir)/gltrackball.h
+cube21.o: $(HACK_SRC)/recanim.h
+cube21.o: $(HACK_SRC)/screenhackI.h
+cube21.o: $(UTILS_SRC)/colors.h
+cube21.o: $(UTILS_SRC)/erase.h
+cube21.o: $(UTILS_SRC)/font-retry.h
+cube21.o: $(UTILS_SRC)/grabscreen.h
+cube21.o: $(UTILS_SRC)/hsv.h
+cube21.o: $(UTILS_SRC)/resources.h
+cube21.o: $(UTILS_SRC)/usleep.h
+cube21.o: $(UTILS_SRC)/visual.h
+cube21.o: $(UTILS_SRC)/yarandom.h
+cube21.o: $(HACK_SRC)/xlockmoreI.h
+cube21.o: $(HACK_SRC)/xlockmore.h
+cubenetic.o: ../../config.h
+cubenetic.o: $(HACK_SRC)/fps.h
+cubenetic.o: $(srcdir)/gltrackball.h
+cubenetic.o: $(HACK_SRC)/recanim.h
+cubenetic.o: $(srcdir)/rotator.h
+cubenetic.o: $(HACK_SRC)/screenhackI.h
+cubenetic.o: $(UTILS_SRC)/colors.h
+cubenetic.o: $(UTILS_SRC)/erase.h
+cubenetic.o: $(UTILS_SRC)/font-retry.h
+cubenetic.o: $(UTILS_SRC)/grabscreen.h
+cubenetic.o: $(UTILS_SRC)/hsv.h
+cubenetic.o: $(UTILS_SRC)/resources.h
+cubenetic.o: $(UTILS_SRC)/usleep.h
+cubenetic.o: $(UTILS_SRC)/visual.h
+cubenetic.o: $(UTILS_SRC)/yarandom.h
+cubenetic.o: $(HACK_SRC)/xlockmoreI.h
+cubenetic.o: $(HACK_SRC)/xlockmore.h
+cubestack.o: ../../config.h
+cubestack.o: $(HACK_SRC)/fps.h
+cubestack.o: $(srcdir)/gltrackball.h
+cubestack.o: $(HACK_SRC)/recanim.h
+cubestack.o: $(srcdir)/rotator.h
+cubestack.o: $(HACK_SRC)/screenhackI.h
+cubestack.o: $(UTILS_SRC)/colors.h
+cubestack.o: $(UTILS_SRC)/erase.h
+cubestack.o: $(UTILS_SRC)/font-retry.h
+cubestack.o: $(UTILS_SRC)/grabscreen.h
+cubestack.o: $(UTILS_SRC)/hsv.h
+cubestack.o: $(UTILS_SRC)/resources.h
+cubestack.o: $(UTILS_SRC)/usleep.h
+cubestack.o: $(UTILS_SRC)/visual.h
+cubestack.o: $(UTILS_SRC)/yarandom.h
+cubestack.o: $(HACK_SRC)/xlockmoreI.h
+cubestack.o: $(HACK_SRC)/xlockmore.h
+cubestorm.o: ../../config.h
+cubestorm.o: $(HACK_SRC)/fps.h
+cubestorm.o: $(srcdir)/gltrackball.h
+cubestorm.o: $(HACK_SRC)/recanim.h
+cubestorm.o: $(srcdir)/rotator.h
+cubestorm.o: $(HACK_SRC)/screenhackI.h
+cubestorm.o: $(UTILS_SRC)/colors.h
+cubestorm.o: $(UTILS_SRC)/erase.h
+cubestorm.o: $(UTILS_SRC)/font-retry.h
+cubestorm.o: $(UTILS_SRC)/grabscreen.h
+cubestorm.o: $(UTILS_SRC)/hsv.h
+cubestorm.o: $(UTILS_SRC)/resources.h
+cubestorm.o: $(UTILS_SRC)/usleep.h
+cubestorm.o: $(UTILS_SRC)/visual.h
+cubestorm.o: $(UTILS_SRC)/yarandom.h
+cubestorm.o: $(HACK_SRC)/xlockmoreI.h
+cubestorm.o: $(HACK_SRC)/xlockmore.h
+cubetwist.o: ../../config.h
+cubetwist.o: $(HACK_SRC)/fps.h
+cubetwist.o: $(srcdir)/gltrackball.h
+cubetwist.o: $(srcdir)/normals.h
+cubetwist.o: $(HACK_SRC)/recanim.h
+cubetwist.o: $(srcdir)/rotator.h
+cubetwist.o: $(HACK_SRC)/screenhackI.h
+cubetwist.o: $(UTILS_SRC)/colors.h
+cubetwist.o: $(UTILS_SRC)/erase.h
+cubetwist.o: $(UTILS_SRC)/font-retry.h
+cubetwist.o: $(UTILS_SRC)/grabscreen.h
+cubetwist.o: $(UTILS_SRC)/hsv.h
+cubetwist.o: $(UTILS_SRC)/resources.h
+cubetwist.o: $(UTILS_SRC)/usleep.h
+cubetwist.o: $(UTILS_SRC)/visual.h
+cubetwist.o: $(UTILS_SRC)/yarandom.h
+cubetwist.o: $(HACK_SRC)/xlockmoreI.h
+cubetwist.o: $(HACK_SRC)/xlockmore.h
+cubicgrid.o: ../../config.h
+cubicgrid.o: $(HACK_SRC)/fps.h
+cubicgrid.o: $(srcdir)/gltrackball.h
+cubicgrid.o: $(HACK_SRC)/recanim.h
+cubicgrid.o: $(srcdir)/rotator.h
+cubicgrid.o: $(HACK_SRC)/screenhackI.h
+cubicgrid.o: $(UTILS_SRC)/colors.h
+cubicgrid.o: $(UTILS_SRC)/erase.h
+cubicgrid.o: $(UTILS_SRC)/font-retry.h
+cubicgrid.o: $(UTILS_SRC)/grabscreen.h
+cubicgrid.o: $(UTILS_SRC)/hsv.h
+cubicgrid.o: $(UTILS_SRC)/resources.h
+cubicgrid.o: $(UTILS_SRC)/usleep.h
+cubicgrid.o: $(UTILS_SRC)/visual.h
+cubicgrid.o: $(UTILS_SRC)/yarandom.h
+cubicgrid.o: $(HACK_SRC)/xlockmoreI.h
+cubicgrid.o: $(HACK_SRC)/xlockmore.h
+dangerball.o: ../../config.h
+dangerball.o: $(HACK_SRC)/fps.h
+dangerball.o: $(srcdir)/gltrackball.h
+dangerball.o: $(HACK_SRC)/recanim.h
+dangerball.o: $(srcdir)/rotator.h
+dangerball.o: $(HACK_SRC)/screenhackI.h
+dangerball.o: $(srcdir)/sphere.h
+dangerball.o: $(srcdir)/tube.h
+dangerball.o: $(UTILS_SRC)/colors.h
+dangerball.o: $(UTILS_SRC)/erase.h
+dangerball.o: $(UTILS_SRC)/font-retry.h
+dangerball.o: $(UTILS_SRC)/grabscreen.h
+dangerball.o: $(UTILS_SRC)/hsv.h
+dangerball.o: $(UTILS_SRC)/resources.h
+dangerball.o: $(UTILS_SRC)/usleep.h
+dangerball.o: $(UTILS_SRC)/visual.h
+dangerball.o: $(UTILS_SRC)/yarandom.h
+dangerball.o: $(HACK_SRC)/xlockmoreI.h
+dangerball.o: $(HACK_SRC)/xlockmore.h
+discoball.o: ../../config.h
+discoball.o: $(HACK_SRC)/fps.h
+discoball.o: $(srcdir)/gltrackball.h
+discoball.o: $(srcdir)/normals.h
+discoball.o: $(HACK_SRC)/recanim.h
+discoball.o: $(srcdir)/rotator.h
+discoball.o: $(HACK_SRC)/screenhackI.h
+discoball.o: $(UTILS_SRC)/colors.h
+discoball.o: $(UTILS_SRC)/erase.h
+discoball.o: $(UTILS_SRC)/font-retry.h
+discoball.o: $(UTILS_SRC)/grabscreen.h
+discoball.o: $(UTILS_SRC)/hsv.h
+discoball.o: $(UTILS_SRC)/resources.h
+discoball.o: $(UTILS_SRC)/usleep.h
+discoball.o: $(UTILS_SRC)/visual.h
+discoball.o: $(UTILS_SRC)/yarandom.h
+discoball.o: $(HACK_SRC)/xlockmoreI.h
+discoball.o: $(HACK_SRC)/xlockmore.h
+dnalogo.o: ../../config.h
+dnalogo.o: $(HACK_SRC)/fps.h
+dnalogo.o: $(srcdir)/gltrackball.h
+dnalogo.o: $(srcdir)/normals.h
+dnalogo.o: $(HACK_SRC)/recanim.h
+dnalogo.o: $(srcdir)/rotator.h
+dnalogo.o: $(HACK_SRC)/screenhackI.h
+dnalogo.o: $(srcdir)/sphere.h
+dnalogo.o: $(srcdir)/texfont.h
+dnalogo.o: $(srcdir)/tube.h
+dnalogo.o: $(UTILS_SRC)/colors.h
+dnalogo.o: $(UTILS_SRC)/erase.h
+dnalogo.o: $(UTILS_SRC)/font-retry.h
+dnalogo.o: $(UTILS_SRC)/grabscreen.h
+dnalogo.o: $(UTILS_SRC)/hsv.h
+dnalogo.o: $(UTILS_SRC)/resources.h
+dnalogo.o: $(UTILS_SRC)/usleep.h
+dnalogo.o: $(UTILS_SRC)/utf8wc.h
+dnalogo.o: $(UTILS_SRC)/visual.h
+dnalogo.o: $(UTILS_SRC)/yarandom.h
+dnalogo.o: $(HACK_SRC)/xlockmoreI.h
+dnalogo.o: $(HACK_SRC)/xlockmore.h
+dolphin.o: $(srcdir)/atlantis.h
+dolphin.o: ../../config.h
+dolphin.o: $(HACK_SRC)/fps.h
+dolphin.o: $(HACK_SRC)/recanim.h
+dolphin.o: $(HACK_SRC)/screenhackI.h
+dolphin.o: $(UTILS_SRC)/colors.h
+dolphin.o: $(UTILS_SRC)/font-retry.h
+dolphin.o: $(UTILS_SRC)/grabscreen.h
+dolphin.o: $(UTILS_SRC)/hsv.h
+dolphin.o: $(UTILS_SRC)/resources.h
+dolphin.o: $(UTILS_SRC)/usleep.h
+dolphin.o: $(UTILS_SRC)/visual.h
+dolphin.o: $(UTILS_SRC)/yarandom.h
+dropshadow.o: ../../config.h
+dropshadow.o: $(srcdir)/dropshadow.h
+dropshadow.o: $(HACK_SRC)/fps.h
+dropshadow.o: $(HACK_SRC)/recanim.h
+dropshadow.o: $(HACK_SRC)/screenhackI.h
+dropshadow.o: $(UTILS_SRC)/colors.h
+dropshadow.o: $(UTILS_SRC)/erase.h
+dropshadow.o: $(UTILS_SRC)/font-retry.h
+dropshadow.o: $(UTILS_SRC)/grabscreen.h
+dropshadow.o: $(UTILS_SRC)/hsv.h
+dropshadow.o: $(UTILS_SRC)/resources.h
+dropshadow.o: $(UTILS_SRC)/usleep.h
+dropshadow.o: $(UTILS_SRC)/visual.h
+dropshadow.o: $(UTILS_SRC)/yarandom.h
+dropshadow.o: $(HACK_SRC)/xlockmoreI.h
+dymaxionmap-coords.o: ../../config.h
+dymaxionmap-coords.o: $(srcdir)/dymaxionmap-coords.h
+dymaxionmap.o: ../../config.h
+dymaxionmap.o: $(srcdir)/dymaxionmap-coords.h
+dymaxionmap.o: $(HACK_SRC)/fps.h
+dymaxionmap.o: $(srcdir)/gltrackball.h
+dymaxionmap.o: $(HACK_SRC)/images/gen/earth_flat_png.h
+dymaxionmap.o: $(HACK_SRC)/images/gen/earth_night_png.h
+dymaxionmap.o: $(HACK_SRC)/images/gen/earth_png.h
+dymaxionmap.o: $(HACK_SRC)/images/gen/ground_png.h
+dymaxionmap.o: $(srcdir)/normals.h
+dymaxionmap.o: $(HACK_SRC)/recanim.h
+dymaxionmap.o: $(srcdir)/rotator.h
+dymaxionmap.o: $(HACK_SRC)/screenhackI.h
+dymaxionmap.o: $(srcdir)/sphere.h
+dymaxionmap.o: $(srcdir)/texfont.h
+dymaxionmap.o: $(UTILS_SRC)/colors.h
+dymaxionmap.o: $(UTILS_SRC)/erase.h
+dymaxionmap.o: $(UTILS_SRC)/font-retry.h
+dymaxionmap.o: $(UTILS_SRC)/grabscreen.h
+dymaxionmap.o: $(UTILS_SRC)/hsv.h
+dymaxionmap.o: $(UTILS_SRC)/resources.h
+dymaxionmap.o: $(UTILS_SRC)/usleep.h
+dymaxionmap.o: $(UTILS_SRC)/visual.h
+dymaxionmap.o: $(UTILS_SRC)/yarandom.h
+dymaxionmap.o: $(HACK_SRC)/ximage-loader.h
+dymaxionmap.o: $(HACK_SRC)/xlockmoreI.h
+dymaxionmap.o: $(HACK_SRC)/xlockmore.h
+endgame.o: $(srcdir)/chessgames.h
+endgame.o: $(srcdir)/chessmodels.h
+endgame.o: ../../config.h
+endgame.o: $(HACK_SRC)/fps.h
+endgame.o: $(srcdir)/gltrackball.h
+endgame.o: $(HACK_SRC)/recanim.h
+endgame.o: $(HACK_SRC)/screenhackI.h
+endgame.o: $(UTILS_SRC)/colors.h
+endgame.o: $(UTILS_SRC)/erase.h
+endgame.o: $(UTILS_SRC)/font-retry.h
+endgame.o: $(UTILS_SRC)/grabscreen.h
+endgame.o: $(UTILS_SRC)/hsv.h
+endgame.o: $(UTILS_SRC)/resources.h
+endgame.o: $(UTILS_SRC)/usleep.h
+endgame.o: $(UTILS_SRC)/visual.h
+endgame.o: $(UTILS_SRC)/yarandom.h
+endgame.o: $(HACK_SRC)/xlockmoreI.h
+endgame.o: $(HACK_SRC)/xlockmore.h
+energystream.o: ../../config.h
+energystream.o: $(HACK_SRC)/fps.h
+energystream.o: $(srcdir)/gltrackball.h
+energystream.o: $(HACK_SRC)/recanim.h
+energystream.o: $(srcdir)/rotator.h
+energystream.o: $(HACK_SRC)/screenhackI.h
+energystream.o: $(UTILS_SRC)/colors.h
+energystream.o: $(UTILS_SRC)/erase.h
+energystream.o: $(UTILS_SRC)/font-retry.h
+energystream.o: $(UTILS_SRC)/grabscreen.h
+energystream.o: $(UTILS_SRC)/hsv.h
+energystream.o: $(UTILS_SRC)/resources.h
+energystream.o: $(UTILS_SRC)/usleep.h
+energystream.o: $(UTILS_SRC)/visual.h
+energystream.o: $(UTILS_SRC)/yarandom.h
+energystream.o: $(HACK_SRC)/xlockmoreI.h
+energystream.o: $(HACK_SRC)/xlockmore.h
+engine.o: ../../config.h
+engine.o: $(HACK_SRC)/fps.h
+engine.o: $(srcdir)/gltrackball.h
+engine.o: $(HACK_SRC)/recanim.h
+engine.o: $(srcdir)/rotator.h
+engine.o: $(HACK_SRC)/screenhackI.h
+engine.o: $(srcdir)/texfont.h
+engine.o: $(UTILS_SRC)/colors.h
+engine.o: $(UTILS_SRC)/erase.h
+engine.o: $(UTILS_SRC)/font-retry.h
+engine.o: $(UTILS_SRC)/grabscreen.h
+engine.o: $(UTILS_SRC)/hsv.h
+engine.o: $(UTILS_SRC)/resources.h
+engine.o: $(UTILS_SRC)/usleep.h
+engine.o: $(UTILS_SRC)/visual.h
+engine.o: $(UTILS_SRC)/yarandom.h
+engine.o: $(HACK_SRC)/xlockmoreI.h
+engine.o: $(HACK_SRC)/xlockmore.h
+erase-gl.o: ../../config.h
+erase-gl.o: $(UTILS_SRC)/erase.h
+erase-gl.o: $(UTILS_SRC)/utils.h
+esper.o: ../../config.h
+esper.o: $(HACK_SRC)/fps.h
+esper.o: $(srcdir)/grab-ximage.h
+esper.o: $(HACK_SRC)/recanim.h
+esper.o: $(HACK_SRC)/screenhackI.h
+esper.o: $(srcdir)/texfont.h
+esper.o: $(UTILS_SRC)/colors.h
+esper.o: $(UTILS_SRC)/erase.h
+esper.o: $(UTILS_SRC)/font-retry.h
+esper.o: $(UTILS_SRC)/grabscreen.h
+esper.o: $(UTILS_SRC)/hsv.h
+esper.o: $(UTILS_SRC)/resources.h
+esper.o: $(UTILS_SRC)/usleep.h
+esper.o: $(UTILS_SRC)/visual.h
+esper.o: $(UTILS_SRC)/xshm.h
+esper.o: $(UTILS_SRC)/yarandom.h
+esper.o: $(HACK_SRC)/xlockmoreI.h
+esper.o: $(HACK_SRC)/xlockmore.h
+extrusion-helix2.o: ../../config.h
+extrusion-helix2.o: $(srcdir)/extrusion.h
+extrusion-helix3.o: ../../config.h
+extrusion-helix3.o: $(srcdir)/extrusion.h
+extrusion-helix4.o: ../../config.h
+extrusion-helix4.o: $(srcdir)/extrusion.h
+extrusion-joinoffset.o: ../../config.h
+extrusion-joinoffset.o: $(srcdir)/extrusion.h
+extrusion.o: ../../config.h
+extrusion.o: $(srcdir)/extrusion.h
+extrusion.o: $(HACK_SRC)/fps.h
+extrusion.o: $(srcdir)/gltrackball.h
+extrusion.o: $(HACK_SRC)/recanim.h
+extrusion.o: $(srcdir)/rotator.h
+extrusion.o: $(HACK_SRC)/screenhackI.h
+extrusion.o: $(UTILS_SRC)/colors.h
+extrusion.o: $(UTILS_SRC)/erase.h
+extrusion.o: $(UTILS_SRC)/font-retry.h
+extrusion.o: $(UTILS_SRC)/grabscreen.h
+extrusion.o: $(UTILS_SRC)/hsv.h
+extrusion.o: $(UTILS_SRC)/resources.h
+extrusion.o: $(UTILS_SRC)/usleep.h
+extrusion.o: $(UTILS_SRC)/visual.h
+extrusion.o: $(UTILS_SRC)/yarandom.h
+extrusion.o: $(HACK_SRC)/ximage-loader.h
+extrusion.o: $(HACK_SRC)/xlockmoreI.h
+extrusion.o: $(HACK_SRC)/xlockmore.h
+extrusion-screw.o: ../../config.h
+extrusion-screw.o: $(srcdir)/extrusion.h
+extrusion-taper.o: ../../config.h
+extrusion-taper.o: $(srcdir)/extrusion.h
+extrusion-twistoid.o: ../../config.h
+extrusion-twistoid.o: $(srcdir)/extrusion.h
+flipflop.o: ../../config.h
+flipflop.o: $(HACK_SRC)/fps.h
+flipflop.o: $(srcdir)/gltrackball.h
+flipflop.o: $(srcdir)/grab-ximage.h
+flipflop.o: $(HACK_SRC)/recanim.h
+flipflop.o: $(HACK_SRC)/screenhackI.h
+flipflop.o: $(UTILS_SRC)/colors.h
+flipflop.o: $(UTILS_SRC)/erase.h
+flipflop.o: $(UTILS_SRC)/font-retry.h
+flipflop.o: $(UTILS_SRC)/grabscreen.h
+flipflop.o: $(UTILS_SRC)/hsv.h
+flipflop.o: $(UTILS_SRC)/resources.h
+flipflop.o: $(UTILS_SRC)/usleep.h
+flipflop.o: $(UTILS_SRC)/visual.h
+flipflop.o: $(UTILS_SRC)/yarandom.h
+flipflop.o: $(HACK_SRC)/xlockmoreI.h
+flipflop.o: $(HACK_SRC)/xlockmore.h
+flipscreen3d.o: ../../config.h
+flipscreen3d.o: $(HACK_SRC)/fps.h
+flipscreen3d.o: $(srcdir)/gltrackball.h
+flipscreen3d.o: $(srcdir)/grab-ximage.h
+flipscreen3d.o: $(HACK_SRC)/recanim.h
+flipscreen3d.o: $(HACK_SRC)/screenhackI.h
+flipscreen3d.o: $(UTILS_SRC)/colors.h
+flipscreen3d.o: $(UTILS_SRC)/erase.h
+flipscreen3d.o: $(UTILS_SRC)/font-retry.h
+flipscreen3d.o: $(UTILS_SRC)/grabscreen.h
+flipscreen3d.o: $(UTILS_SRC)/hsv.h
+flipscreen3d.o: $(UTILS_SRC)/resources.h
+flipscreen3d.o: $(UTILS_SRC)/usleep.h
+flipscreen3d.o: $(UTILS_SRC)/visual.h
+flipscreen3d.o: $(UTILS_SRC)/yarandom.h
+flipscreen3d.o: $(HACK_SRC)/xlockmoreI.h
+flipscreen3d.o: $(HACK_SRC)/xlockmore.h
+fliptext.o: ../../config.h
+fliptext.o: $(HACK_SRC)/fps.h
+fliptext.o: $(HACK_SRC)/recanim.h
+fliptext.o: $(HACK_SRC)/screenhackI.h
+fliptext.o: $(srcdir)/texfont.h
+fliptext.o: $(UTILS_SRC)/colors.h
+fliptext.o: $(UTILS_SRC)/erase.h
+fliptext.o: $(UTILS_SRC)/font-retry.h
+fliptext.o: $(UTILS_SRC)/grabscreen.h
+fliptext.o: $(UTILS_SRC)/hsv.h
+fliptext.o: $(UTILS_SRC)/resources.h
+fliptext.o: $(UTILS_SRC)/textclient.h
+fliptext.o: $(UTILS_SRC)/usleep.h
+fliptext.o: $(UTILS_SRC)/visual.h
+fliptext.o: $(UTILS_SRC)/yarandom.h
+fliptext.o: $(HACK_SRC)/xlockmoreI.h
+fliptext.o: $(HACK_SRC)/xlockmore.h
+flurry.o: ../../config.h
+flurry.o: $(srcdir)/flurry.h
+flurry.o: $(HACK_SRC)/fps.h
+flurry.o: $(srcdir)/gltrackball.h
+flurry.o: $(HACK_SRC)/recanim.h
+flurry.o: $(srcdir)/rotator.h
+flurry.o: $(HACK_SRC)/screenhackI.h
+flurry.o: $(UTILS_SRC)/colors.h
+flurry.o: $(UTILS_SRC)/erase.h
+flurry.o: $(UTILS_SRC)/font-retry.h
+flurry.o: $(UTILS_SRC)/grabscreen.h
+flurry.o: $(UTILS_SRC)/hsv.h
+flurry.o: $(UTILS_SRC)/resources.h
+flurry.o: $(UTILS_SRC)/usleep.h
+flurry.o: $(UTILS_SRC)/visual.h
+flurry.o: $(UTILS_SRC)/yarandom.h
+flurry.o: $(HACK_SRC)/xlockmoreI.h
+flurry.o: $(HACK_SRC)/xlockmore.h
+flurry-smoke.o: ../../config.h
+flurry-smoke.o: $(srcdir)/flurry.h
+flurry-smoke.o: $(srcdir)/gltrackball.h
+flurry-smoke.o: $(srcdir)/rotator.h
+flurry-smoke.o: $(UTILS_SRC)/yarandom.h
+flurry-spark.o: ../../config.h
+flurry-spark.o: $(srcdir)/flurry.h
+flurry-spark.o: $(srcdir)/gltrackball.h
+flurry-spark.o: $(srcdir)/rotator.h
+flurry-spark.o: $(UTILS_SRC)/yarandom.h
+flurry-star.o: ../../config.h
+flurry-star.o: $(srcdir)/flurry.h
+flurry-star.o: $(srcdir)/gltrackball.h
+flurry-star.o: $(srcdir)/rotator.h
+flurry-star.o: $(UTILS_SRC)/yarandom.h
+flurry-texture.o: ../../config.h
+flurry-texture.o: $(srcdir)/flurry.h
+flurry-texture.o: $(srcdir)/gltrackball.h
+flurry-texture.o: $(srcdir)/rotator.h
+flurry-texture.o: $(UTILS_SRC)/yarandom.h
+flyingtoasters.o: ../../config.h
+flyingtoasters.o: $(HACK_SRC)/fps.h
+flyingtoasters.o: $(srcdir)/gllist.h
+flyingtoasters.o: $(srcdir)/gltrackball.h
+flyingtoasters.o: $(HACK_SRC)/images/gen/chromesphere_png.h
+flyingtoasters.o: $(HACK_SRC)/images/gen/toast_png.h
+flyingtoasters.o: $(HACK_SRC)/recanim.h
+flyingtoasters.o: $(HACK_SRC)/screenhackI.h
+flyingtoasters.o: $(UTILS_SRC)/colors.h
+flyingtoasters.o: $(UTILS_SRC)/erase.h
+flyingtoasters.o: $(UTILS_SRC)/font-retry.h
+flyingtoasters.o: $(UTILS_SRC)/grabscreen.h
+flyingtoasters.o: $(UTILS_SRC)/hsv.h
+flyingtoasters.o: $(UTILS_SRC)/resources.h
+flyingtoasters.o: $(UTILS_SRC)/usleep.h
+flyingtoasters.o: $(UTILS_SRC)/visual.h
+flyingtoasters.o: $(UTILS_SRC)/yarandom.h
+flyingtoasters.o: $(HACK_SRC)/ximage-loader.h
+flyingtoasters.o: $(HACK_SRC)/xlockmoreI.h
+flyingtoasters.o: $(HACK_SRC)/xlockmore.h
+fps-gl.o: ../../config.h
+fps-gl.o: $(HACK_SRC)/fpsI.h
+fps-gl.o: $(HACK_SRC)/fps.h
+fps-gl.o: $(HACK_SRC)/recanim.h
+fps-gl.o: $(HACK_SRC)/screenhackI.h
+fps-gl.o: $(srcdir)/texfont.h
+fps-gl.o: $(UTILS_SRC)/colors.h
+fps-gl.o: $(UTILS_SRC)/erase.h
+fps-gl.o: $(UTILS_SRC)/font-retry.h
+fps-gl.o: $(UTILS_SRC)/grabscreen.h
+fps-gl.o: $(UTILS_SRC)/hsv.h
+fps-gl.o: $(UTILS_SRC)/resources.h
+fps-gl.o: $(UTILS_SRC)/usleep.h
+fps-gl.o: $(UTILS_SRC)/visual.h
+fps-gl.o: $(UTILS_SRC)/yarandom.h
+fps-gl.o: $(HACK_SRC)/xlockmoreI.h
+gears.o: ../../config.h
+gears.o: $(HACK_SRC)/fps.h
+gears.o: $(srcdir)/gltrackball.h
+gears.o: $(srcdir)/involute.h
+gears.o: $(srcdir)/normals.h
+gears.o: $(HACK_SRC)/recanim.h
+gears.o: $(srcdir)/rotator.h
+gears.o: $(HACK_SRC)/screenhackI.h
+gears.o: $(srcdir)/tube.h
+gears.o: $(UTILS_SRC)/colors.h
+gears.o: $(UTILS_SRC)/erase.h
+gears.o: $(UTILS_SRC)/font-retry.h
+gears.o: $(UTILS_SRC)/grabscreen.h
+gears.o: $(UTILS_SRC)/hsv.h
+gears.o: $(UTILS_SRC)/resources.h
+gears.o: $(UTILS_SRC)/usleep.h
+gears.o: $(UTILS_SRC)/visual.h
+gears.o: $(UTILS_SRC)/yarandom.h
+gears.o: $(HACK_SRC)/xlockmoreI.h
+gears.o: $(HACK_SRC)/xlockmore.h
+geodesicgears.o: ../../config.h
+geodesicgears.o: $(HACK_SRC)/fps.h
+geodesicgears.o: $(srcdir)/gllist.h
+geodesicgears.o: $(srcdir)/gltrackball.h
+geodesicgears.o: $(srcdir)/involute.h
+geodesicgears.o: $(srcdir)/normals.h
+geodesicgears.o: $(HACK_SRC)/recanim.h
+geodesicgears.o: $(srcdir)/rotator.h
+geodesicgears.o: $(HACK_SRC)/screenhackI.h
+geodesicgears.o: $(srcdir)/texfont.h
+geodesicgears.o: $(UTILS_SRC)/colors.h
+geodesicgears.o: $(UTILS_SRC)/erase.h
+geodesicgears.o: $(UTILS_SRC)/font-retry.h
+geodesicgears.o: $(UTILS_SRC)/grabscreen.h
+geodesicgears.o: $(UTILS_SRC)/hsv.h
+geodesicgears.o: $(UTILS_SRC)/resources.h
+geodesicgears.o: $(UTILS_SRC)/usleep.h
+geodesicgears.o: $(UTILS_SRC)/visual.h
+geodesicgears.o: $(UTILS_SRC)/yarandom.h
+geodesicgears.o: $(HACK_SRC)/xlockmoreI.h
+geodesicgears.o: $(HACK_SRC)/xlockmore.h
+geodesic.o: ../../config.h
+geodesic.o: $(HACK_SRC)/fps.h
+geodesic.o: $(srcdir)/gllist.h
+geodesic.o: $(srcdir)/gltrackball.h
+geodesic.o: $(srcdir)/normals.h
+geodesic.o: $(HACK_SRC)/recanim.h
+geodesic.o: $(srcdir)/rotator.h
+geodesic.o: $(HACK_SRC)/screenhackI.h
+geodesic.o: $(UTILS_SRC)/colors.h
+geodesic.o: $(UTILS_SRC)/erase.h
+geodesic.o: $(UTILS_SRC)/font-retry.h
+geodesic.o: $(UTILS_SRC)/grabscreen.h
+geodesic.o: $(UTILS_SRC)/hsv.h
+geodesic.o: $(UTILS_SRC)/resources.h
+geodesic.o: $(UTILS_SRC)/usleep.h
+geodesic.o: $(UTILS_SRC)/visual.h
+geodesic.o: $(UTILS_SRC)/yarandom.h
+geodesic.o: $(HACK_SRC)/xlockmoreI.h
+geodesic.o: $(HACK_SRC)/xlockmore.h
+gflux.o: ../../config.h
+gflux.o: $(HACK_SRC)/fps.h
+gflux.o: $(srcdir)/gltrackball.h
+gflux.o: $(srcdir)/grab-ximage.h
+gflux.o: $(HACK_SRC)/recanim.h
+gflux.o: $(HACK_SRC)/screenhackI.h
+gflux.o: $(UTILS_SRC)/colors.h
+gflux.o: $(UTILS_SRC)/erase.h
+gflux.o: $(UTILS_SRC)/font-retry.h
+gflux.o: $(UTILS_SRC)/grabscreen.h
+gflux.o: $(UTILS_SRC)/hsv.h
+gflux.o: $(UTILS_SRC)/resources.h
+gflux.o: $(UTILS_SRC)/usleep.h
+gflux.o: $(UTILS_SRC)/visual.h
+gflux.o: $(UTILS_SRC)/yarandom.h
+gflux.o: $(HACK_SRC)/xlockmoreI.h
+gflux.o: $(HACK_SRC)/xlockmore.h
+glblur.o: ../../config.h
+glblur.o: $(HACK_SRC)/fps.h
+glblur.o: $(srcdir)/gltrackball.h
+glblur.o: $(HACK_SRC)/recanim.h
+glblur.o: $(srcdir)/rotator.h
+glblur.o: $(HACK_SRC)/screenhackI.h
+glblur.o: $(UTILS_SRC)/colors.h
+glblur.o: $(UTILS_SRC)/erase.h
+glblur.o: $(UTILS_SRC)/font-retry.h
+glblur.o: $(UTILS_SRC)/grabscreen.h
+glblur.o: $(UTILS_SRC)/hsv.h
+glblur.o: $(UTILS_SRC)/resources.h
+glblur.o: $(UTILS_SRC)/usleep.h
+glblur.o: $(UTILS_SRC)/visual.h
+glblur.o: $(UTILS_SRC)/yarandom.h
+glblur.o: $(HACK_SRC)/xlockmoreI.h
+glblur.o: $(HACK_SRC)/xlockmore.h
+glcells.o: ../../config.h
+glcells.o: $(HACK_SRC)/fps.h
+glcells.o: $(HACK_SRC)/recanim.h
+glcells.o: $(HACK_SRC)/screenhackI.h
+glcells.o: $(UTILS_SRC)/colors.h
+glcells.o: $(UTILS_SRC)/erase.h
+glcells.o: $(UTILS_SRC)/font-retry.h
+glcells.o: $(UTILS_SRC)/grabscreen.h
+glcells.o: $(UTILS_SRC)/hsv.h
+glcells.o: $(UTILS_SRC)/resources.h
+glcells.o: $(UTILS_SRC)/usleep.h
+glcells.o: $(UTILS_SRC)/visual.h
+glcells.o: $(UTILS_SRC)/yarandom.h
+glcells.o: $(HACK_SRC)/xlockmoreI.h
+glcells.o: $(HACK_SRC)/xlockmore.h
+gleidescope.o: ../../config.h
+gleidescope.o: $(HACK_SRC)/fps.h
+gleidescope.o: $(srcdir)/grab-ximage.h
+gleidescope.o: $(HACK_SRC)/recanim.h
+gleidescope.o: $(HACK_SRC)/screenhackI.h
+gleidescope.o: $(UTILS_SRC)/colors.h
+gleidescope.o: $(UTILS_SRC)/erase.h
+gleidescope.o: $(UTILS_SRC)/font-retry.h
+gleidescope.o: $(UTILS_SRC)/grabscreen.h
+gleidescope.o: $(UTILS_SRC)/hsv.h
+gleidescope.o: $(UTILS_SRC)/resources.h
+gleidescope.o: $(UTILS_SRC)/usleep.h
+gleidescope.o: $(UTILS_SRC)/visual.h
+gleidescope.o: $(UTILS_SRC)/yarandom.h
+gleidescope.o: $(HACK_SRC)/ximage-loader.h
+gleidescope.o: $(HACK_SRC)/xlockmoreI.h
+gleidescope.o: $(HACK_SRC)/xlockmore.h
+glforestfire.o: ../../config.h
+glforestfire.o: $(HACK_SRC)/fps.h
+glforestfire.o: $(srcdir)/gltrackball.h
+glforestfire.o: $(HACK_SRC)/images/gen/ground_png.h
+glforestfire.o: $(HACK_SRC)/images/gen/tree_png.h
+glforestfire.o: $(HACK_SRC)/recanim.h
+glforestfire.o: $(HACK_SRC)/screenhackI.h
+glforestfire.o: $(UTILS_SRC)/colors.h
+glforestfire.o: $(UTILS_SRC)/erase.h
+glforestfire.o: $(UTILS_SRC)/font-retry.h
+glforestfire.o: $(UTILS_SRC)/grabscreen.h
+glforestfire.o: $(UTILS_SRC)/hsv.h
+glforestfire.o: $(UTILS_SRC)/resources.h
+glforestfire.o: $(UTILS_SRC)/usleep.h
+glforestfire.o: $(UTILS_SRC)/visual.h
+glforestfire.o: $(UTILS_SRC)/yarandom.h
+glforestfire.o: $(HACK_SRC)/ximage-loader.h
+glforestfire.o: $(HACK_SRC)/xlockmoreI.h
+glforestfire.o: $(HACK_SRC)/xlockmore.h
+glhanoi.o: ../../config.h
+glhanoi.o: $(HACK_SRC)/fps.h
+glhanoi.o: $(HACK_SRC)/recanim.h
+glhanoi.o: $(srcdir)/rotator.h
+glhanoi.o: $(HACK_SRC)/screenhackI.h
+glhanoi.o: $(UTILS_SRC)/colors.h
+glhanoi.o: $(UTILS_SRC)/erase.h
+glhanoi.o: $(UTILS_SRC)/font-retry.h
+glhanoi.o: $(UTILS_SRC)/grabscreen.h
+glhanoi.o: $(UTILS_SRC)/hsv.h
+glhanoi.o: $(UTILS_SRC)/resources.h
+glhanoi.o: $(UTILS_SRC)/usleep.h
+glhanoi.o: $(UTILS_SRC)/visual.h
+glhanoi.o: $(UTILS_SRC)/yarandom.h
+glhanoi.o: $(HACK_SRC)/xlockmoreI.h
+glhanoi.o: $(HACK_SRC)/xlockmore.h
+glknots.o: ../../config.h
+glknots.o: $(HACK_SRC)/fps.h
+glknots.o: $(srcdir)/gltrackball.h
+glknots.o: $(HACK_SRC)/recanim.h
+glknots.o: $(srcdir)/rotator.h
+glknots.o: $(HACK_SRC)/screenhackI.h
+glknots.o: $(srcdir)/tube.h
+glknots.o: $(UTILS_SRC)/colors.h
+glknots.o: $(UTILS_SRC)/erase.h
+glknots.o: $(UTILS_SRC)/font-retry.h
+glknots.o: $(UTILS_SRC)/grabscreen.h
+glknots.o: $(UTILS_SRC)/hsv.h
+glknots.o: $(UTILS_SRC)/resources.h
+glknots.o: $(UTILS_SRC)/usleep.h
+glknots.o: $(UTILS_SRC)/visual.h
+glknots.o: $(UTILS_SRC)/yarandom.h
+glknots.o: $(HACK_SRC)/xlockmoreI.h
+glknots.o: $(HACK_SRC)/xlockmore.h
+gllist.o: ../../config.h
+gllist.o: $(srcdir)/gllist.h
+glmatrix.o: ../../config.h
+glmatrix.o: $(HACK_SRC)/fps.h
+glmatrix.o: $(HACK_SRC)/images/gen/matrix3_png.h
+glmatrix.o: $(HACK_SRC)/recanim.h
+glmatrix.o: $(HACK_SRC)/screenhackI.h
+glmatrix.o: $(UTILS_SRC)/colors.h
+glmatrix.o: $(UTILS_SRC)/erase.h
+glmatrix.o: $(UTILS_SRC)/font-retry.h
+glmatrix.o: $(UTILS_SRC)/grabscreen.h
+glmatrix.o: $(UTILS_SRC)/hsv.h
+glmatrix.o: $(UTILS_SRC)/resources.h
+glmatrix.o: $(UTILS_SRC)/usleep.h
+glmatrix.o: $(UTILS_SRC)/visual.h
+glmatrix.o: $(UTILS_SRC)/yarandom.h
+glmatrix.o: $(HACK_SRC)/ximage-loader.h
+glmatrix.o: $(HACK_SRC)/xlockmoreI.h
+glmatrix.o: $(HACK_SRC)/xlockmore.h
+glplanet.o: ../../config.h
+glplanet.o: $(HACK_SRC)/fps.h
+glplanet.o: $(srcdir)/gltrackball.h
+glplanet.o: $(HACK_SRC)/images/gen/earth_night_png.h
+glplanet.o: $(HACK_SRC)/images/gen/earth_png.h
+glplanet.o: $(HACK_SRC)/recanim.h
+glplanet.o: $(srcdir)/rotator.h
+glplanet.o: $(HACK_SRC)/screenhackI.h
+glplanet.o: $(srcdir)/sphere.h
+glplanet.o: $(UTILS_SRC)/colors.h
+glplanet.o: $(UTILS_SRC)/erase.h
+glplanet.o: $(UTILS_SRC)/font-retry.h
+glplanet.o: $(UTILS_SRC)/grabscreen.h
+glplanet.o: $(UTILS_SRC)/hsv.h
+glplanet.o: $(UTILS_SRC)/resources.h
+glplanet.o: $(UTILS_SRC)/usleep.h
+glplanet.o: $(UTILS_SRC)/visual.h
+glplanet.o: $(UTILS_SRC)/yarandom.h
+glplanet.o: $(HACK_SRC)/ximage-loader.h
+glplanet.o: $(HACK_SRC)/xlockmoreI.h
+glplanet.o: $(HACK_SRC)/xlockmore.h
+glschool_alg.o: ../../config.h
+glschool_alg.o: $(srcdir)/glschool_alg.h
+glschool_alg.o: $(UTILS_SRC)/yarandom.h
+glschool_gl.o: ../../config.h
+glschool_gl.o: $(srcdir)/glschool_alg.h
+glschool_gl.o: $(srcdir)/glschool_gl.h
+glschool_gl.o: $(srcdir)/sphere.h
+glschool_gl.o: $(srcdir)/tube.h
+glschool.o: ../../config.h
+glschool.o: $(HACK_SRC)/fps.h
+glschool.o: $(srcdir)/glschool_alg.h
+glschool.o: $(srcdir)/glschool_gl.h
+glschool.o: $(srcdir)/glschool.h
+glschool.o: $(HACK_SRC)/recanim.h
+glschool.o: $(HACK_SRC)/screenhackI.h
+glschool.o: $(UTILS_SRC)/colors.h
+glschool.o: $(UTILS_SRC)/erase.h
+glschool.o: $(UTILS_SRC)/font-retry.h
+glschool.o: $(UTILS_SRC)/grabscreen.h
+glschool.o: $(UTILS_SRC)/hsv.h
+glschool.o: $(UTILS_SRC)/resources.h
+glschool.o: $(UTILS_SRC)/usleep.h
+glschool.o: $(UTILS_SRC)/visual.h
+glschool.o: $(UTILS_SRC)/yarandom.h
+glschool.o: $(HACK_SRC)/xlockmoreI.h
+glschool.o: $(HACK_SRC)/xlockmore.h
+glslideshow.o: ../../config.h
+glslideshow.o: $(HACK_SRC)/fps.h
+glslideshow.o: $(srcdir)/grab-ximage.h
+glslideshow.o: $(HACK_SRC)/recanim.h
+glslideshow.o: $(HACK_SRC)/screenhackI.h
+glslideshow.o: $(srcdir)/texfont.h
+glslideshow.o: $(UTILS_SRC)/colors.h
+glslideshow.o: $(UTILS_SRC)/erase.h
+glslideshow.o: $(UTILS_SRC)/font-retry.h
+glslideshow.o: $(UTILS_SRC)/grabscreen.h
+glslideshow.o: $(UTILS_SRC)/hsv.h
+glslideshow.o: $(UTILS_SRC)/resources.h
+glslideshow.o: $(UTILS_SRC)/usleep.h
+glslideshow.o: $(UTILS_SRC)/visual.h
+glslideshow.o: $(UTILS_SRC)/yarandom.h
+glslideshow.o: $(HACK_SRC)/xlockmoreI.h
+glslideshow.o: $(HACK_SRC)/xlockmore.h
+glsnake.o: ../../config.h
+glsnake.o: $(HACK_SRC)/fps.h
+glsnake.o: $(HACK_SRC)/recanim.h
+glsnake.o: $(HACK_SRC)/screenhackI.h
+glsnake.o: $(srcdir)/texfont.h
+glsnake.o: $(UTILS_SRC)/colors.h
+glsnake.o: $(UTILS_SRC)/erase.h
+glsnake.o: $(UTILS_SRC)/font-retry.h
+glsnake.o: $(UTILS_SRC)/grabscreen.h
+glsnake.o: $(UTILS_SRC)/hsv.h
+glsnake.o: $(UTILS_SRC)/resources.h
+glsnake.o: $(UTILS_SRC)/usleep.h
+glsnake.o: $(UTILS_SRC)/visual.h
+glsnake.o: $(UTILS_SRC)/yarandom.h
+glsnake.o: $(HACK_SRC)/xlockmoreI.h
+glsnake.o: $(HACK_SRC)/xlockmore.h
+gltext.o: ../../config.h
+gltext.o: $(HACK_SRC)/fps.h
+gltext.o: $(srcdir)/gltrackball.h
+gltext.o: $(srcdir)/glut_mroman.h
+gltext.o: $(srcdir)/glut_roman.h
+gltext.o: $(srcdir)/glutstroke.h
+gltext.o: $(HACK_SRC)/recanim.h
+gltext.o: $(srcdir)/rotator.h
+gltext.o: $(HACK_SRC)/screenhackI.h
+gltext.o: $(srcdir)/sphere.h
+gltext.o: $(srcdir)/tube.h
+gltext.o: $(UTILS_SRC)/colors.h
+gltext.o: $(UTILS_SRC)/erase.h
+gltext.o: $(UTILS_SRC)/font-retry.h
+gltext.o: $(UTILS_SRC)/grabscreen.h
+gltext.o: $(UTILS_SRC)/hsv.h
+gltext.o: $(UTILS_SRC)/resources.h
+gltext.o: $(UTILS_SRC)/textclient.h
+gltext.o: $(UTILS_SRC)/usleep.h
+gltext.o: $(UTILS_SRC)/utf8wc.h
+gltext.o: $(UTILS_SRC)/visual.h
+gltext.o: $(UTILS_SRC)/yarandom.h
+gltext.o: $(HACK_SRC)/xlockmoreI.h
+gltext.o: $(HACK_SRC)/xlockmore.h
+gltrackball.o: ../../config.h
+gltrackball.o: $(srcdir)/gltrackball.h
+gltrackball.o: $(srcdir)/trackball.h
+glut_stroke.o: ../../config.h
+glut_stroke.o: $(srcdir)/glutstroke.h
+glut_swidth.o: ../../config.h
+glut_swidth.o: $(srcdir)/glutstroke.h
+grab-ximage.o: ../../config.h
+grab-ximage.o: $(srcdir)/grab-ximage.h
+grab-ximage.o: $(UTILS_SRC)/grabscreen.h
+grab-ximage.o: $(UTILS_SRC)/pow2.h
+grab-ximage.o: $(UTILS_SRC)/visual.h
+grab-ximage.o: $(UTILS_SRC)/xshm.h
+hexstrut.o: ../../config.h
+hexstrut.o: $(HACK_SRC)/fps.h
+hexstrut.o: $(srcdir)/gltrackball.h
+hexstrut.o: $(srcdir)/normals.h
+hexstrut.o: $(HACK_SRC)/recanim.h
+hexstrut.o: $(srcdir)/rotator.h
+hexstrut.o: $(HACK_SRC)/screenhackI.h
+hexstrut.o: $(UTILS_SRC)/colors.h
+hexstrut.o: $(UTILS_SRC)/erase.h
+hexstrut.o: $(UTILS_SRC)/font-retry.h
+hexstrut.o: $(UTILS_SRC)/grabscreen.h
+hexstrut.o: $(UTILS_SRC)/hsv.h
+hexstrut.o: $(UTILS_SRC)/resources.h
+hexstrut.o: $(UTILS_SRC)/usleep.h
+hexstrut.o: $(UTILS_SRC)/visual.h
+hexstrut.o: $(UTILS_SRC)/yarandom.h
+hexstrut.o: $(HACK_SRC)/xlockmoreI.h
+hexstrut.o: $(HACK_SRC)/xlockmore.h
+hilbert.o: ../../config.h
+hilbert.o: $(HACK_SRC)/fps.h
+hilbert.o: $(srcdir)/gltrackball.h
+hilbert.o: $(HACK_SRC)/recanim.h
+hilbert.o: $(srcdir)/rotator.h
+hilbert.o: $(HACK_SRC)/screenhackI.h
+hilbert.o: $(srcdir)/sphere.h
+hilbert.o: $(srcdir)/tube.h
+hilbert.o: $(UTILS_SRC)/colors.h
+hilbert.o: $(UTILS_SRC)/erase.h
+hilbert.o: $(UTILS_SRC)/font-retry.h
+hilbert.o: $(UTILS_SRC)/grabscreen.h
+hilbert.o: $(UTILS_SRC)/hsv.h
+hilbert.o: $(UTILS_SRC)/resources.h
+hilbert.o: $(UTILS_SRC)/usleep.h
+hilbert.o: $(UTILS_SRC)/visual.h
+hilbert.o: $(UTILS_SRC)/yarandom.h
+hilbert.o: $(HACK_SRC)/xlockmoreI.h
+hilbert.o: $(HACK_SRC)/xlockmore.h
+hydrostat.o: ../../config.h
+hydrostat.o: $(HACK_SRC)/fps.h
+hydrostat.o: $(srcdir)/gltrackball.h
+hydrostat.o: $(srcdir)/normals.h
+hydrostat.o: $(HACK_SRC)/recanim.h
+hydrostat.o: $(HACK_SRC)/screenhackI.h
+hydrostat.o: $(srcdir)/sphere.h
+hydrostat.o: $(UTILS_SRC)/colors.h
+hydrostat.o: $(UTILS_SRC)/erase.h
+hydrostat.o: $(UTILS_SRC)/font-retry.h
+hydrostat.o: $(UTILS_SRC)/grabscreen.h
+hydrostat.o: $(UTILS_SRC)/hsv.h
+hydrostat.o: $(UTILS_SRC)/resources.h
+hydrostat.o: $(UTILS_SRC)/usleep.h
+hydrostat.o: $(UTILS_SRC)/visual.h
+hydrostat.o: $(UTILS_SRC)/yarandom.h
+hydrostat.o: $(HACK_SRC)/xlockmoreI.h
+hydrostat.o: $(HACK_SRC)/xlockmore.h
+hypertorus.o: ../../config.h
+hypertorus.o: $(HACK_SRC)/fps.h
+hypertorus.o: $(srcdir)/gltrackball.h
+hypertorus.o: $(HACK_SRC)/recanim.h
+hypertorus.o: $(HACK_SRC)/screenhackI.h
+hypertorus.o: $(UTILS_SRC)/colors.h
+hypertorus.o: $(UTILS_SRC)/erase.h
+hypertorus.o: $(UTILS_SRC)/font-retry.h
+hypertorus.o: $(UTILS_SRC)/grabscreen.h
+hypertorus.o: $(UTILS_SRC)/hsv.h
+hypertorus.o: $(UTILS_SRC)/resources.h
+hypertorus.o: $(UTILS_SRC)/usleep.h
+hypertorus.o: $(UTILS_SRC)/visual.h
+hypertorus.o: $(UTILS_SRC)/yarandom.h
+hypertorus.o: $(HACK_SRC)/xlockmoreI.h
+hypertorus.o: $(HACK_SRC)/xlockmore.h
+hypnowheel.o: ../../config.h
+hypnowheel.o: $(HACK_SRC)/fps.h
+hypnowheel.o: $(HACK_SRC)/recanim.h
+hypnowheel.o: $(srcdir)/rotator.h
+hypnowheel.o: $(HACK_SRC)/screenhackI.h
+hypnowheel.o: $(UTILS_SRC)/colors.h
+hypnowheel.o: $(UTILS_SRC)/erase.h
+hypnowheel.o: $(UTILS_SRC)/font-retry.h
+hypnowheel.o: $(UTILS_SRC)/grabscreen.h
+hypnowheel.o: $(UTILS_SRC)/hsv.h
+hypnowheel.o: $(UTILS_SRC)/resources.h
+hypnowheel.o: $(UTILS_SRC)/usleep.h
+hypnowheel.o: $(UTILS_SRC)/visual.h
+hypnowheel.o: $(UTILS_SRC)/yarandom.h
+hypnowheel.o: $(HACK_SRC)/xlockmoreI.h
+hypnowheel.o: $(HACK_SRC)/xlockmore.h
+involute.o: ../../config.h
+involute.o: $(HACK_SRC)/fps.h
+involute.o: $(srcdir)/involute.h
+involute.o: $(srcdir)/normals.h
+involute.o: $(HACK_SRC)/recanim.h
+involute.o: $(HACK_SRC)/screenhackI.h
+involute.o: $(UTILS_SRC)/colors.h
+involute.o: $(UTILS_SRC)/font-retry.h
+involute.o: $(UTILS_SRC)/grabscreen.h
+involute.o: $(UTILS_SRC)/hsv.h
+involute.o: $(UTILS_SRC)/resources.h
+involute.o: $(UTILS_SRC)/usleep.h
+involute.o: $(UTILS_SRC)/visual.h
+involute.o: $(UTILS_SRC)/yarandom.h
+jigglypuff.o: ../../config.h
+jigglypuff.o: $(HACK_SRC)/fps.h
+jigglypuff.o: $(srcdir)/gltrackball.h
+jigglypuff.o: $(HACK_SRC)/images/gen/jigglymap_png.h
+jigglypuff.o: $(HACK_SRC)/recanim.h
+jigglypuff.o: $(HACK_SRC)/screenhackI.h
+jigglypuff.o: $(UTILS_SRC)/colors.h
+jigglypuff.o: $(UTILS_SRC)/erase.h
+jigglypuff.o: $(UTILS_SRC)/font-retry.h
+jigglypuff.o: $(UTILS_SRC)/grabscreen.h
+jigglypuff.o: $(UTILS_SRC)/hsv.h
+jigglypuff.o: $(UTILS_SRC)/resources.h
+jigglypuff.o: $(UTILS_SRC)/usleep.h
+jigglypuff.o: $(UTILS_SRC)/visual.h
+jigglypuff.o: $(UTILS_SRC)/yarandom.h
+jigglypuff.o: $(HACK_SRC)/ximage-loader.h
+jigglypuff.o: $(HACK_SRC)/xlockmoreI.h
+jigglypuff.o: $(HACK_SRC)/xlockmore.h
+jigsaw.o: ../../config.h
+jigsaw.o: $(HACK_SRC)/fps.h
+jigsaw.o: $(srcdir)/gltrackball.h
+jigsaw.o: $(srcdir)/grab-ximage.h
+jigsaw.o: $(srcdir)/normals.h
+jigsaw.o: $(HACK_SRC)/recanim.h
+jigsaw.o: $(srcdir)/rotator.h
+jigsaw.o: $(HACK_SRC)/screenhackI.h
+jigsaw.o: $(srcdir)/texfont.h
+jigsaw.o: $(UTILS_SRC)/colors.h
+jigsaw.o: $(UTILS_SRC)/erase.h
+jigsaw.o: $(UTILS_SRC)/font-retry.h
+jigsaw.o: $(UTILS_SRC)/grabscreen.h
+jigsaw.o: $(UTILS_SRC)/hsv.h
+jigsaw.o: $(UTILS_SRC)/resources.h
+jigsaw.o: $(UTILS_SRC)/spline.h
+jigsaw.o: $(UTILS_SRC)/usleep.h
+jigsaw.o: $(UTILS_SRC)/visual.h
+jigsaw.o: $(UTILS_SRC)/yarandom.h
+jigsaw.o: $(HACK_SRC)/xlockmoreI.h
+jigsaw.o: $(HACK_SRC)/xlockmore.h
+juggler3d.o: ../../config.h
+juggler3d.o: $(HACK_SRC)/fps.h
+juggler3d.o: $(srcdir)/gltrackball.h
+juggler3d.o: $(HACK_SRC)/recanim.h
+juggler3d.o: $(srcdir)/rotator.h
+juggler3d.o: $(HACK_SRC)/screenhackI.h
+juggler3d.o: $(srcdir)/sphere.h
+juggler3d.o: $(srcdir)/texfont.h
+juggler3d.o: $(srcdir)/tube.h
+juggler3d.o: $(UTILS_SRC)/colors.h
+juggler3d.o: $(UTILS_SRC)/erase.h
+juggler3d.o: $(UTILS_SRC)/font-retry.h
+juggler3d.o: $(UTILS_SRC)/grabscreen.h
+juggler3d.o: $(UTILS_SRC)/hsv.h
+juggler3d.o: $(UTILS_SRC)/resources.h
+juggler3d.o: $(UTILS_SRC)/usleep.h
+juggler3d.o: $(UTILS_SRC)/visual.h
+juggler3d.o: $(UTILS_SRC)/yarandom.h
+juggler3d.o: $(HACK_SRC)/xlockmoreI.h
+juggler3d.o: $(HACK_SRC)/xlockmore.h
+kaleidocycle.o: ../../config.h
+kaleidocycle.o: $(HACK_SRC)/fps.h
+kaleidocycle.o: $(srcdir)/gltrackball.h
+kaleidocycle.o: $(srcdir)/normals.h
+kaleidocycle.o: $(HACK_SRC)/recanim.h
+kaleidocycle.o: $(srcdir)/rotator.h
+kaleidocycle.o: $(HACK_SRC)/screenhackI.h
+kaleidocycle.o: $(UTILS_SRC)/colors.h
+kaleidocycle.o: $(UTILS_SRC)/erase.h
+kaleidocycle.o: $(UTILS_SRC)/font-retry.h
+kaleidocycle.o: $(UTILS_SRC)/grabscreen.h
+kaleidocycle.o: $(UTILS_SRC)/hsv.h
+kaleidocycle.o: $(UTILS_SRC)/resources.h
+kaleidocycle.o: $(UTILS_SRC)/usleep.h
+kaleidocycle.o: $(UTILS_SRC)/visual.h
+kaleidocycle.o: $(UTILS_SRC)/yarandom.h
+kaleidocycle.o: $(HACK_SRC)/xlockmoreI.h
+kaleidocycle.o: $(HACK_SRC)/xlockmore.h
+klein.o: ../../config.h
+klein.o: $(srcdir)/curlicue.h
+klein.o: $(HACK_SRC)/fps.h
+klein.o: $(srcdir)/gltrackball.h
+klein.o: $(HACK_SRC)/recanim.h
+klein.o: $(HACK_SRC)/screenhackI.h
+klein.o: $(UTILS_SRC)/colors.h
+klein.o: $(UTILS_SRC)/erase.h
+klein.o: $(UTILS_SRC)/font-retry.h
+klein.o: $(UTILS_SRC)/grabscreen.h
+klein.o: $(UTILS_SRC)/hsv.h
+klein.o: $(UTILS_SRC)/resources.h
+klein.o: $(UTILS_SRC)/usleep.h
+klein.o: $(UTILS_SRC)/visual.h
+klein.o: $(UTILS_SRC)/yarandom.h
+klein.o: $(HACK_SRC)/xlockmoreI.h
+klein.o: $(HACK_SRC)/xlockmore.h
+lament_model.o: ../../config.h
+lament_model.o: $(srcdir)/gllist.h
+lament.o: ../../config.h
+lament.o: $(HACK_SRC)/fps.h
+lament.o: $(srcdir)/gllist.h
+lament.o: $(srcdir)/gltrackball.h
+lament.o: $(HACK_SRC)/images/gen/lament512_png.h
+lament.o: $(srcdir)/normals.h
+lament.o: $(HACK_SRC)/recanim.h
+lament.o: $(srcdir)/rotator.h
+lament.o: $(HACK_SRC)/screenhackI.h
+lament.o: $(UTILS_SRC)/colors.h
+lament.o: $(UTILS_SRC)/erase.h
+lament.o: $(UTILS_SRC)/font-retry.h
+lament.o: $(UTILS_SRC)/grabscreen.h
+lament.o: $(UTILS_SRC)/hsv.h
+lament.o: $(UTILS_SRC)/resources.h
+lament.o: $(UTILS_SRC)/usleep.h
+lament.o: $(UTILS_SRC)/visual.h
+lament.o: $(UTILS_SRC)/yarandom.h
+lament.o: $(HACK_SRC)/ximage-loader.h
+lament.o: $(HACK_SRC)/xlockmoreI.h
+lament.o: $(HACK_SRC)/xlockmore.h
+lavalite.o: ../../config.h
+lavalite.o: $(HACK_SRC)/fps.h
+lavalite.o: $(srcdir)/gltrackball.h
+lavalite.o: $(srcdir)/marching.h
+lavalite.o: $(HACK_SRC)/recanim.h
+lavalite.o: $(srcdir)/rotator.h
+lavalite.o: $(HACK_SRC)/screenhackI.h
+lavalite.o: $(UTILS_SRC)/colors.h
+lavalite.o: $(UTILS_SRC)/erase.h
+lavalite.o: $(UTILS_SRC)/font-retry.h
+lavalite.o: $(UTILS_SRC)/grabscreen.h
+lavalite.o: $(UTILS_SRC)/hsv.h
+lavalite.o: $(UTILS_SRC)/resources.h
+lavalite.o: $(UTILS_SRC)/usleep.h
+lavalite.o: $(UTILS_SRC)/visual.h
+lavalite.o: $(UTILS_SRC)/yarandom.h
+lavalite.o: $(HACK_SRC)/ximage-loader.h
+lavalite.o: $(HACK_SRC)/xlockmoreI.h
+lavalite.o: $(HACK_SRC)/xlockmore.h
+lockward.o: ../../config.h
+lockward.o: $(HACK_SRC)/fps.h
+lockward.o: $(HACK_SRC)/recanim.h
+lockward.o: $(HACK_SRC)/screenhackI.h
+lockward.o: $(UTILS_SRC)/colors.h
+lockward.o: $(UTILS_SRC)/erase.h
+lockward.o: $(UTILS_SRC)/font-retry.h
+lockward.o: $(UTILS_SRC)/grabscreen.h
+lockward.o: $(UTILS_SRC)/hsv.h
+lockward.o: $(UTILS_SRC)/resources.h
+lockward.o: $(UTILS_SRC)/usleep.h
+lockward.o: $(UTILS_SRC)/visual.h
+lockward.o: $(UTILS_SRC)/yarandom.h
+lockward.o: $(HACK_SRC)/xlockmoreI.h
+lockward.o: $(HACK_SRC)/xlockmore.h
+marching.o: ../../config.h
+marching.o: $(srcdir)/marching.h
+marching.o: $(srcdir)/normals.h
+maze3d.o: ../../config.h
+maze3d.o: $(HACK_SRC)/fps.h
+maze3d.o: $(HACK_SRC)/images/gen/bob_png.h
+maze3d.o: $(HACK_SRC)/images/gen/brick1_png.h
+maze3d.o: $(HACK_SRC)/images/gen/brick2_png.h
+maze3d.o: $(HACK_SRC)/images/gen/logo-32_png.h
+maze3d.o: $(HACK_SRC)/images/gen/start_png.h
+maze3d.o: $(HACK_SRC)/images/gen/wood2_png.h
+maze3d.o: $(HACK_SRC)/recanim.h
+maze3d.o: $(HACK_SRC)/screenhackI.h
+maze3d.o: $(UTILS_SRC)/colors.h
+maze3d.o: $(UTILS_SRC)/erase.h
+maze3d.o: $(UTILS_SRC)/font-retry.h
+maze3d.o: $(UTILS_SRC)/grabscreen.h
+maze3d.o: $(UTILS_SRC)/hsv.h
+maze3d.o: $(UTILS_SRC)/resources.h
+maze3d.o: $(UTILS_SRC)/usleep.h
+maze3d.o: $(UTILS_SRC)/visual.h
+maze3d.o: $(UTILS_SRC)/yarandom.h
+maze3d.o: $(HACK_SRC)/ximage-loader.h
+maze3d.o: $(HACK_SRC)/xlockmoreI.h
+maze3d.o: $(HACK_SRC)/xlockmore.h
+menger.o: ../../config.h
+menger.o: $(HACK_SRC)/fps.h
+menger.o: $(srcdir)/gltrackball.h
+menger.o: $(HACK_SRC)/recanim.h
+menger.o: $(srcdir)/rotator.h
+menger.o: $(HACK_SRC)/screenhackI.h
+menger.o: $(UTILS_SRC)/colors.h
+menger.o: $(UTILS_SRC)/erase.h
+menger.o: $(UTILS_SRC)/font-retry.h
+menger.o: $(UTILS_SRC)/grabscreen.h
+menger.o: $(UTILS_SRC)/hsv.h
+menger.o: $(UTILS_SRC)/resources.h
+menger.o: $(UTILS_SRC)/usleep.h
+menger.o: $(UTILS_SRC)/visual.h
+menger.o: $(UTILS_SRC)/yarandom.h
+menger.o: $(HACK_SRC)/xlockmoreI.h
+menger.o: $(HACK_SRC)/xlockmore.h
+mirrorblob.o: ../../config.h
+mirrorblob.o: $(HACK_SRC)/fps.h
+mirrorblob.o: $(srcdir)/gltrackball.h
+mirrorblob.o: $(srcdir)/grab-ximage.h
+mirrorblob.o: $(HACK_SRC)/recanim.h
+mirrorblob.o: $(HACK_SRC)/screenhackI.h
+mirrorblob.o: $(UTILS_SRC)/colors.h
+mirrorblob.o: $(UTILS_SRC)/erase.h
+mirrorblob.o: $(UTILS_SRC)/font-retry.h
+mirrorblob.o: $(UTILS_SRC)/grabscreen.h
+mirrorblob.o: $(UTILS_SRC)/hsv.h
+mirrorblob.o: $(UTILS_SRC)/resources.h
+mirrorblob.o: $(UTILS_SRC)/usleep.h
+mirrorblob.o: $(UTILS_SRC)/visual.h
+mirrorblob.o: $(UTILS_SRC)/yarandom.h
+mirrorblob.o: $(HACK_SRC)/xlockmoreI.h
+mirrorblob.o: $(HACK_SRC)/xlockmore.h
+moebiusgears.o: ../../config.h
+moebiusgears.o: $(HACK_SRC)/fps.h
+moebiusgears.o: $(srcdir)/gltrackball.h
+moebiusgears.o: $(srcdir)/involute.h
+moebiusgears.o: $(srcdir)/normals.h
+moebiusgears.o: $(HACK_SRC)/recanim.h
+moebiusgears.o: $(srcdir)/rotator.h
+moebiusgears.o: $(HACK_SRC)/screenhackI.h
+moebiusgears.o: $(UTILS_SRC)/colors.h
+moebiusgears.o: $(UTILS_SRC)/erase.h
+moebiusgears.o: $(UTILS_SRC)/font-retry.h
+moebiusgears.o: $(UTILS_SRC)/grabscreen.h
+moebiusgears.o: $(UTILS_SRC)/hsv.h
+moebiusgears.o: $(UTILS_SRC)/resources.h
+moebiusgears.o: $(UTILS_SRC)/usleep.h
+moebiusgears.o: $(UTILS_SRC)/visual.h
+moebiusgears.o: $(UTILS_SRC)/yarandom.h
+moebiusgears.o: $(HACK_SRC)/xlockmoreI.h
+moebiusgears.o: $(HACK_SRC)/xlockmore.h
+moebius.o: ../../config.h
+moebius.o: $(HACK_SRC)/fps.h
+moebius.o: $(srcdir)/gltrackball.h
+moebius.o: $(HACK_SRC)/recanim.h
+moebius.o: $(srcdir)/rotator.h
+moebius.o: $(HACK_SRC)/screenhackI.h
+moebius.o: $(srcdir)/sphere.h
+moebius.o: $(srcdir)/tube.h
+moebius.o: $(UTILS_SRC)/colors.h
+moebius.o: $(UTILS_SRC)/erase.h
+moebius.o: $(UTILS_SRC)/font-retry.h
+moebius.o: $(UTILS_SRC)/grabscreen.h
+moebius.o: $(UTILS_SRC)/hsv.h
+moebius.o: $(UTILS_SRC)/resources.h
+moebius.o: $(UTILS_SRC)/usleep.h
+moebius.o: $(UTILS_SRC)/visual.h
+moebius.o: $(UTILS_SRC)/yarandom.h
+moebius.o: $(HACK_SRC)/xlockmoreI.h
+moebius.o: $(HACK_SRC)/xlockmore.h
+molecule.o: ../../config.h
+molecule.o: $(HACK_SRC)/fps.h
+molecule.o: $(srcdir)/gltrackball.h
+molecule.o: molecules.h
+molecule.o: $(HACK_SRC)/recanim.h
+molecule.o: $(srcdir)/rotator.h
+molecule.o: $(HACK_SRC)/screenhackI.h
+molecule.o: $(srcdir)/sphere.h
+molecule.o: $(srcdir)/texfont.h
+molecule.o: $(srcdir)/tube.h
+molecule.o: $(UTILS_SRC)/colors.h
+molecule.o: $(UTILS_SRC)/erase.h
+molecule.o: $(UTILS_SRC)/font-retry.h
+molecule.o: $(UTILS_SRC)/grabscreen.h
+molecule.o: $(UTILS_SRC)/hsv.h
+molecule.o: $(UTILS_SRC)/resources.h
+molecule.o: $(UTILS_SRC)/usleep.h
+molecule.o: $(UTILS_SRC)/visual.h
+molecule.o: $(UTILS_SRC)/yarandom.h
+molecule.o: $(HACK_SRC)/xlockmoreI.h
+molecule.o: $(HACK_SRC)/xlockmore.h
+morph3d.o: ../../config.h
+morph3d.o: $(HACK_SRC)/fps.h
+morph3d.o: $(HACK_SRC)/recanim.h
+morph3d.o: $(HACK_SRC)/screenhackI.h
+morph3d.o: $(UTILS_SRC)/colors.h
+morph3d.o: $(UTILS_SRC)/erase.h
+morph3d.o: $(UTILS_SRC)/font-retry.h
+morph3d.o: $(UTILS_SRC)/grabscreen.h
+morph3d.o: $(UTILS_SRC)/hsv.h
+morph3d.o: $(UTILS_SRC)/resources.h
+morph3d.o: $(UTILS_SRC)/usleep.h
+morph3d.o: $(UTILS_SRC)/visual.h
+morph3d.o: $(UTILS_SRC)/yarandom.h
+morph3d.o: $(HACK_SRC)/xlockmoreI.h
+morph3d.o: $(HACK_SRC)/xlockmore.h
+noof.o: ../../config.h
+noof.o: $(HACK_SRC)/fps.h
+noof.o: $(HACK_SRC)/recanim.h
+noof.o: $(HACK_SRC)/screenhackI.h
+noof.o: $(UTILS_SRC)/colors.h
+noof.o: $(UTILS_SRC)/erase.h
+noof.o: $(UTILS_SRC)/font-retry.h
+noof.o: $(UTILS_SRC)/grabscreen.h
+noof.o: $(UTILS_SRC)/hsv.h
+noof.o: $(UTILS_SRC)/pow2.h
+noof.o: $(UTILS_SRC)/resources.h
+noof.o: $(UTILS_SRC)/usleep.h
+noof.o: $(UTILS_SRC)/visual.h
+noof.o: $(UTILS_SRC)/yarandom.h
+noof.o: $(HACK_SRC)/xlockmoreI.h
+noof.o: $(HACK_SRC)/xlockmore.h
+normals.o: ../../config.h
+normals.o: $(srcdir)/normals.h
+peepers.o: ../../config.h
+peepers.o: $(HACK_SRC)/fps.h
+peepers.o: $(srcdir)/gltrackball.h
+peepers.o: $(HACK_SRC)/images/gen/iris_png.h
+peepers.o: $(HACK_SRC)/images/gen/sclera_png.h
+peepers.o: $(srcdir)/normals.h
+peepers.o: $(HACK_SRC)/recanim.h
+peepers.o: $(srcdir)/rotator.h
+peepers.o: $(HACK_SRC)/screenhackI.h
+peepers.o: $(UTILS_SRC)/colors.h
+peepers.o: $(UTILS_SRC)/erase.h
+peepers.o: $(UTILS_SRC)/font-retry.h
+peepers.o: $(UTILS_SRC)/grabscreen.h
+peepers.o: $(UTILS_SRC)/hsv.h
+peepers.o: $(UTILS_SRC)/resources.h
+peepers.o: $(UTILS_SRC)/usleep.h
+peepers.o: $(UTILS_SRC)/visual.h
+peepers.o: $(UTILS_SRC)/yarandom.h
+peepers.o: $(HACK_SRC)/ximage-loader.h
+peepers.o: $(HACK_SRC)/xlockmoreI.h
+peepers.o: $(HACK_SRC)/xlockmore.h
+photopile.o: ../../config.h
+photopile.o: $(srcdir)/dropshadow.h
+photopile.o: $(HACK_SRC)/fps.h
+photopile.o: $(srcdir)/grab-ximage.h
+photopile.o: $(HACK_SRC)/recanim.h
+photopile.o: $(HACK_SRC)/screenhackI.h
+photopile.o: $(srcdir)/texfont.h
+photopile.o: $(UTILS_SRC)/colors.h
+photopile.o: $(UTILS_SRC)/erase.h
+photopile.o: $(UTILS_SRC)/font-retry.h
+photopile.o: $(UTILS_SRC)/grabscreen.h
+photopile.o: $(UTILS_SRC)/hsv.h
+photopile.o: $(UTILS_SRC)/resources.h
+photopile.o: $(UTILS_SRC)/usleep.h
+photopile.o: $(UTILS_SRC)/visual.h
+photopile.o: $(UTILS_SRC)/yarandom.h
+photopile.o: $(HACK_SRC)/xlockmoreI.h
+photopile.o: $(HACK_SRC)/xlockmore.h
+pinion.o: ../../config.h
+pinion.o: $(HACK_SRC)/fps.h
+pinion.o: $(srcdir)/gltrackball.h
+pinion.o: $(srcdir)/involute.h
+pinion.o: $(srcdir)/normals.h
+pinion.o: $(HACK_SRC)/recanim.h
+pinion.o: $(HACK_SRC)/screenhackI.h
+pinion.o: $(srcdir)/texfont.h
+pinion.o: $(UTILS_SRC)/colors.h
+pinion.o: $(UTILS_SRC)/erase.h
+pinion.o: $(UTILS_SRC)/font-retry.h
+pinion.o: $(UTILS_SRC)/grabscreen.h
+pinion.o: $(UTILS_SRC)/hsv.h
+pinion.o: $(UTILS_SRC)/resources.h
+pinion.o: $(UTILS_SRC)/usleep.h
+pinion.o: $(UTILS_SRC)/visual.h
+pinion.o: $(UTILS_SRC)/yarandom.h
+pinion.o: $(HACK_SRC)/xlockmoreI.h
+pinion.o: $(HACK_SRC)/xlockmore.h
+pipeobjs.o: $(srcdir)/buildlwo.h
+pipeobjs.o: ../../config.h
+pipes.o: $(srcdir)/buildlwo.h
+pipes.o: ../../config.h
+pipes.o: $(HACK_SRC)/fps.h
+pipes.o: $(srcdir)/gltrackball.h
+pipes.o: $(HACK_SRC)/recanim.h
+pipes.o: $(HACK_SRC)/screenhackI.h
+pipes.o: $(srcdir)/sphere.h
+pipes.o: $(srcdir)/teapot.h
+pipes.o: $(UTILS_SRC)/colors.h
+pipes.o: $(UTILS_SRC)/erase.h
+pipes.o: $(UTILS_SRC)/font-retry.h
+pipes.o: $(UTILS_SRC)/grabscreen.h
+pipes.o: $(UTILS_SRC)/hsv.h
+pipes.o: $(UTILS_SRC)/resources.h
+pipes.o: $(UTILS_SRC)/usleep.h
+pipes.o: $(UTILS_SRC)/visual.h
+pipes.o: $(UTILS_SRC)/yarandom.h
+pipes.o: $(HACK_SRC)/xlockmoreI.h
+pipes.o: $(HACK_SRC)/xlockmore.h
+polyhedra-gl.o: ../../config.h
+polyhedra-gl.o: $(HACK_SRC)/fps.h
+polyhedra-gl.o: $(srcdir)/gltrackball.h
+polyhedra-gl.o: $(srcdir)/normals.h
+polyhedra-gl.o: $(srcdir)/polyhedra.h
+polyhedra-gl.o: $(HACK_SRC)/recanim.h
+polyhedra-gl.o: $(srcdir)/rotator.h
+polyhedra-gl.o: $(HACK_SRC)/screenhackI.h
+polyhedra-gl.o: $(srcdir)/teapot.h
+polyhedra-gl.o: $(srcdir)/texfont.h
+polyhedra-gl.o: $(UTILS_SRC)/colors.h
+polyhedra-gl.o: $(UTILS_SRC)/erase.h
+polyhedra-gl.o: $(UTILS_SRC)/font-retry.h
+polyhedra-gl.o: $(UTILS_SRC)/grabscreen.h
+polyhedra-gl.o: $(UTILS_SRC)/hsv.h
+polyhedra-gl.o: $(UTILS_SRC)/resources.h
+polyhedra-gl.o: $(UTILS_SRC)/usleep.h
+polyhedra-gl.o: $(UTILS_SRC)/visual.h
+polyhedra-gl.o: $(UTILS_SRC)/yarandom.h
+polyhedra-gl.o: $(HACK_SRC)/xlockmoreI.h
+polyhedra-gl.o: $(HACK_SRC)/xlockmore.h
+polyhedra.o: ../../config.h
+polyhedra.o: $(srcdir)/polyhedra.h
+polytopes.o: ../../config.h
+polytopes.o: $(HACK_SRC)/fps.h
+polytopes.o: $(srcdir)/gltrackball.h
+polytopes.o: $(HACK_SRC)/recanim.h
+polytopes.o: $(HACK_SRC)/screenhackI.h
+polytopes.o: $(UTILS_SRC)/colors.h
+polytopes.o: $(UTILS_SRC)/erase.h
+polytopes.o: $(UTILS_SRC)/font-retry.h
+polytopes.o: $(UTILS_SRC)/grabscreen.h
+polytopes.o: $(UTILS_SRC)/hsv.h
+polytopes.o: $(UTILS_SRC)/resources.h
+polytopes.o: $(UTILS_SRC)/usleep.h
+polytopes.o: $(UTILS_SRC)/visual.h
+polytopes.o: $(UTILS_SRC)/yarandom.h
+polytopes.o: $(HACK_SRC)/xlockmoreI.h
+polytopes.o: $(HACK_SRC)/xlockmore.h
+projectiveplane.o: ../../config.h
+projectiveplane.o: $(srcdir)/curlicue.h
+projectiveplane.o: $(HACK_SRC)/fps.h
+projectiveplane.o: $(srcdir)/gltrackball.h
+projectiveplane.o: $(HACK_SRC)/recanim.h
+projectiveplane.o: $(HACK_SRC)/screenhackI.h
+projectiveplane.o: $(UTILS_SRC)/colors.h
+projectiveplane.o: $(UTILS_SRC)/erase.h
+projectiveplane.o: $(UTILS_SRC)/font-retry.h
+projectiveplane.o: $(UTILS_SRC)/grabscreen.h
+projectiveplane.o: $(UTILS_SRC)/hsv.h
+projectiveplane.o: $(UTILS_SRC)/resources.h
+projectiveplane.o: $(UTILS_SRC)/usleep.h
+projectiveplane.o: $(UTILS_SRC)/visual.h
+projectiveplane.o: $(UTILS_SRC)/yarandom.h
+projectiveplane.o: $(HACK_SRC)/xlockmoreI.h
+projectiveplane.o: $(HACK_SRC)/xlockmore.h
+providence.o: ../../config.h
+providence.o: $(HACK_SRC)/fps.h
+providence.o: $(srcdir)/gltrackball.h
+providence.o: $(HACK_SRC)/recanim.h
+providence.o: $(HACK_SRC)/screenhackI.h
+providence.o: $(UTILS_SRC)/colors.h
+providence.o: $(UTILS_SRC)/erase.h
+providence.o: $(UTILS_SRC)/font-retry.h
+providence.o: $(UTILS_SRC)/grabscreen.h
+providence.o: $(UTILS_SRC)/hsv.h
+providence.o: $(UTILS_SRC)/resources.h
+providence.o: $(UTILS_SRC)/usleep.h
+providence.o: $(UTILS_SRC)/visual.h
+providence.o: $(UTILS_SRC)/yarandom.h
+providence.o: $(HACK_SRC)/xlockmoreI.h
+providence.o: $(HACK_SRC)/xlockmore.h
+pulsar.o: ../../config.h
+pulsar.o: $(HACK_SRC)/fps.h
+pulsar.o: $(HACK_SRC)/recanim.h
+pulsar.o: $(HACK_SRC)/screenhackI.h
+pulsar.o: $(UTILS_SRC)/colors.h
+pulsar.o: $(UTILS_SRC)/erase.h
+pulsar.o: $(UTILS_SRC)/font-retry.h
+pulsar.o: $(UTILS_SRC)/grabscreen.h
+pulsar.o: $(UTILS_SRC)/hsv.h
+pulsar.o: $(UTILS_SRC)/resources.h
+pulsar.o: $(UTILS_SRC)/usleep.h
+pulsar.o: $(UTILS_SRC)/visual.h
+pulsar.o: $(UTILS_SRC)/yarandom.h
+pulsar.o: $(HACK_SRC)/ximage-loader.h
+pulsar.o: $(HACK_SRC)/xlockmoreI.h
+pulsar.o: $(HACK_SRC)/xlockmore.h
+quasicrystal.o: ../../config.h
+quasicrystal.o: $(HACK_SRC)/fps.h
+quasicrystal.o: $(HACK_SRC)/recanim.h
+quasicrystal.o: $(srcdir)/rotator.h
+quasicrystal.o: $(HACK_SRC)/screenhackI.h
+quasicrystal.o: $(UTILS_SRC)/colors.h
+quasicrystal.o: $(UTILS_SRC)/erase.h
+quasicrystal.o: $(UTILS_SRC)/font-retry.h
+quasicrystal.o: $(UTILS_SRC)/grabscreen.h
+quasicrystal.o: $(UTILS_SRC)/hsv.h
+quasicrystal.o: $(UTILS_SRC)/resources.h
+quasicrystal.o: $(UTILS_SRC)/usleep.h
+quasicrystal.o: $(UTILS_SRC)/visual.h
+quasicrystal.o: $(UTILS_SRC)/yarandom.h
+quasicrystal.o: $(HACK_SRC)/xlockmoreI.h
+quasicrystal.o: $(HACK_SRC)/xlockmore.h
+queens.o: $(srcdir)/chessmodels.h
+queens.o: ../../config.h
+queens.o: $(HACK_SRC)/fps.h
+queens.o: $(srcdir)/gltrackball.h
+queens.o: $(HACK_SRC)/recanim.h
+queens.o: $(HACK_SRC)/screenhackI.h
+queens.o: $(UTILS_SRC)/colors.h
+queens.o: $(UTILS_SRC)/erase.h
+queens.o: $(UTILS_SRC)/font-retry.h
+queens.o: $(UTILS_SRC)/grabscreen.h
+queens.o: $(UTILS_SRC)/hsv.h
+queens.o: $(UTILS_SRC)/resources.h
+queens.o: $(UTILS_SRC)/usleep.h
+queens.o: $(UTILS_SRC)/visual.h
+queens.o: $(UTILS_SRC)/yarandom.h
+queens.o: $(HACK_SRC)/xlockmoreI.h
+queens.o: $(HACK_SRC)/xlockmore.h
+quickhull.o: ../../config.h
+quickhull.o: $(HACK_SRC)/fps.h
+quickhull.o: $(srcdir)/quickhull.h
+quickhull.o: $(HACK_SRC)/recanim.h
+quickhull.o: $(HACK_SRC)/screenhackI.h
+quickhull.o: $(UTILS_SRC)/colors.h
+quickhull.o: $(UTILS_SRC)/font-retry.h
+quickhull.o: $(UTILS_SRC)/grabscreen.h
+quickhull.o: $(UTILS_SRC)/hsv.h
+quickhull.o: $(UTILS_SRC)/resources.h
+quickhull.o: $(UTILS_SRC)/usleep.h
+quickhull.o: $(UTILS_SRC)/visual.h
+quickhull.o: $(UTILS_SRC)/yarandom.h
+raverhoop.o: ../../config.h
+raverhoop.o: $(HACK_SRC)/fps.h
+raverhoop.o: $(srcdir)/gltrackball.h
+raverhoop.o: $(HACK_SRC)/recanim.h
+raverhoop.o: $(srcdir)/rotator.h
+raverhoop.o: $(HACK_SRC)/screenhackI.h
+raverhoop.o: $(UTILS_SRC)/colors.h
+raverhoop.o: $(UTILS_SRC)/erase.h
+raverhoop.o: $(UTILS_SRC)/font-retry.h
+raverhoop.o: $(UTILS_SRC)/grabscreen.h
+raverhoop.o: $(UTILS_SRC)/hsv.h
+raverhoop.o: $(UTILS_SRC)/resources.h
+raverhoop.o: $(UTILS_SRC)/usleep.h
+raverhoop.o: $(UTILS_SRC)/visual.h
+raverhoop.o: $(UTILS_SRC)/yarandom.h
+raverhoop.o: $(HACK_SRC)/xlockmoreI.h
+raverhoop.o: $(HACK_SRC)/xlockmore.h
+razzledazzle.o: ../../config.h
+razzledazzle.o: $(HACK_SRC)/fps.h
+razzledazzle.o: $(srcdir)/gllist.h
+razzledazzle.o: $(srcdir)/normals.h
+razzledazzle.o: $(HACK_SRC)/recanim.h
+razzledazzle.o: $(HACK_SRC)/screenhackI.h
+razzledazzle.o: $(UTILS_SRC)/colors.h
+razzledazzle.o: $(UTILS_SRC)/erase.h
+razzledazzle.o: $(UTILS_SRC)/font-retry.h
+razzledazzle.o: $(UTILS_SRC)/grabscreen.h
+razzledazzle.o: $(UTILS_SRC)/hsv.h
+razzledazzle.o: $(UTILS_SRC)/resources.h
+razzledazzle.o: $(UTILS_SRC)/usleep.h
+razzledazzle.o: $(UTILS_SRC)/visual.h
+razzledazzle.o: $(UTILS_SRC)/yarandom.h
+razzledazzle.o: $(HACK_SRC)/xlockmoreI.h
+razzledazzle.o: $(HACK_SRC)/xlockmore.h
+robot.o: ../../config.h
+robot.o: $(srcdir)/gllist.h
+robot-wireframe.o: ../../config.h
+robot-wireframe.o: $(srcdir)/gllist.h
+romanboy.o: ../../config.h
+romanboy.o: $(srcdir)/curlicue.h
+romanboy.o: $(HACK_SRC)/fps.h
+romanboy.o: $(srcdir)/gltrackball.h
+romanboy.o: $(HACK_SRC)/recanim.h
+romanboy.o: $(HACK_SRC)/screenhackI.h
+romanboy.o: $(UTILS_SRC)/colors.h
+romanboy.o: $(UTILS_SRC)/erase.h
+romanboy.o: $(UTILS_SRC)/font-retry.h
+romanboy.o: $(UTILS_SRC)/grabscreen.h
+romanboy.o: $(UTILS_SRC)/hsv.h
+romanboy.o: $(UTILS_SRC)/resources.h
+romanboy.o: $(UTILS_SRC)/usleep.h
+romanboy.o: $(UTILS_SRC)/visual.h
+romanboy.o: $(UTILS_SRC)/yarandom.h
+romanboy.o: $(HACK_SRC)/xlockmoreI.h
+romanboy.o: $(HACK_SRC)/xlockmore.h
+rotator.o: ../../config.h
+rotator.o: $(srcdir)/rotator.h
+rotator.o: $(UTILS_SRC)/yarandom.h
+rubikblocks.o: ../../config.h
+rubikblocks.o: $(HACK_SRC)/fps.h
+rubikblocks.o: $(srcdir)/gltrackball.h
+rubikblocks.o: $(HACK_SRC)/recanim.h
+rubikblocks.o: $(srcdir)/rotator.h
+rubikblocks.o: $(HACK_SRC)/screenhackI.h
+rubikblocks.o: $(UTILS_SRC)/colors.h
+rubikblocks.o: $(UTILS_SRC)/erase.h
+rubikblocks.o: $(UTILS_SRC)/font-retry.h
+rubikblocks.o: $(UTILS_SRC)/grabscreen.h
+rubikblocks.o: $(UTILS_SRC)/hsv.h
+rubikblocks.o: $(UTILS_SRC)/resources.h
+rubikblocks.o: $(UTILS_SRC)/usleep.h
+rubikblocks.o: $(UTILS_SRC)/visual.h
+rubikblocks.o: $(UTILS_SRC)/yarandom.h
+rubikblocks.o: $(HACK_SRC)/xlockmoreI.h
+rubikblocks.o: $(HACK_SRC)/xlockmore.h
+rubik.o: ../../config.h
+rubik.o: $(HACK_SRC)/fps.h
+rubik.o: $(srcdir)/gltrackball.h
+rubik.o: $(HACK_SRC)/recanim.h
+rubik.o: $(HACK_SRC)/screenhackI.h
+rubik.o: $(UTILS_SRC)/colors.h
+rubik.o: $(UTILS_SRC)/erase.h
+rubik.o: $(UTILS_SRC)/font-retry.h
+rubik.o: $(UTILS_SRC)/grabscreen.h
+rubik.o: $(UTILS_SRC)/hsv.h
+rubik.o: $(UTILS_SRC)/resources.h
+rubik.o: $(UTILS_SRC)/usleep.h
+rubik.o: $(UTILS_SRC)/visual.h
+rubik.o: $(UTILS_SRC)/yarandom.h
+rubik.o: $(HACK_SRC)/xlockmoreI.h
+rubik.o: $(HACK_SRC)/xlockmore.h
+s1_1.o: ../../config.h
+s1_1.o: $(srcdir)/gllist.h
+s1_2.o: ../../config.h
+s1_2.o: $(srcdir)/gllist.h
+s1_3.o: ../../config.h
+s1_3.o: $(srcdir)/gllist.h
+s1_4.o: ../../config.h
+s1_4.o: $(srcdir)/gllist.h
+s1_5.o: ../../config.h
+s1_5.o: $(srcdir)/gllist.h
+s1_6.o: ../../config.h
+s1_6.o: $(srcdir)/gllist.h
+s1_b.o: ../../config.h
+s1_b.o: $(srcdir)/gllist.h
+sballs.o: ../../config.h
+sballs.o: $(HACK_SRC)/fps.h
+sballs.o: $(srcdir)/gltrackball.h
+sballs.o: $(HACK_SRC)/images/gen/sball-bg_png.h
+sballs.o: $(HACK_SRC)/images/gen/sball_png.h
+sballs.o: $(HACK_SRC)/recanim.h
+sballs.o: $(HACK_SRC)/screenhackI.h
+sballs.o: $(UTILS_SRC)/colors.h
+sballs.o: $(UTILS_SRC)/erase.h
+sballs.o: $(UTILS_SRC)/font-retry.h
+sballs.o: $(UTILS_SRC)/grabscreen.h
+sballs.o: $(UTILS_SRC)/hsv.h
+sballs.o: $(UTILS_SRC)/resources.h
+sballs.o: $(UTILS_SRC)/usleep.h
+sballs.o: $(UTILS_SRC)/visual.h
+sballs.o: $(UTILS_SRC)/yarandom.h
+sballs.o: $(HACK_SRC)/ximage-loader.h
+sballs.o: $(HACK_SRC)/xlockmoreI.h
+sballs.o: $(HACK_SRC)/xlockmore.h
+seccam.o: ../../config.h
+seccam.o: $(srcdir)/gllist.h
+shark.o: $(srcdir)/atlantis.h
+shark.o: ../../config.h
+shark.o: $(HACK_SRC)/fps.h
+shark.o: $(HACK_SRC)/recanim.h
+shark.o: $(HACK_SRC)/screenhackI.h
+shark.o: $(UTILS_SRC)/colors.h
+shark.o: $(UTILS_SRC)/font-retry.h
+shark.o: $(UTILS_SRC)/grabscreen.h
+shark.o: $(UTILS_SRC)/hsv.h
+shark.o: $(UTILS_SRC)/resources.h
+shark.o: $(UTILS_SRC)/usleep.h
+shark.o: $(UTILS_SRC)/visual.h
+shark.o: $(UTILS_SRC)/yarandom.h
+ships.o: ../../config.h
+ships.o: $(srcdir)/gllist.h
+sierpinski3d.o: ../../config.h
+sierpinski3d.o: $(HACK_SRC)/fps.h
+sierpinski3d.o: $(srcdir)/gltrackball.h
+sierpinski3d.o: $(HACK_SRC)/recanim.h
+sierpinski3d.o: $(srcdir)/rotator.h
+sierpinski3d.o: $(HACK_SRC)/screenhackI.h
+sierpinski3d.o: $(UTILS_SRC)/colors.h
+sierpinski3d.o: $(UTILS_SRC)/erase.h
+sierpinski3d.o: $(UTILS_SRC)/font-retry.h
+sierpinski3d.o: $(UTILS_SRC)/grabscreen.h
+sierpinski3d.o: $(UTILS_SRC)/hsv.h
+sierpinski3d.o: $(UTILS_SRC)/resources.h
+sierpinski3d.o: $(UTILS_SRC)/usleep.h
+sierpinski3d.o: $(UTILS_SRC)/visual.h
+sierpinski3d.o: $(UTILS_SRC)/yarandom.h
+sierpinski3d.o: $(HACK_SRC)/xlockmoreI.h
+sierpinski3d.o: $(HACK_SRC)/xlockmore.h
+skytentacles.o: ../../config.h
+skytentacles.o: $(HACK_SRC)/fps.h
+skytentacles.o: $(srcdir)/gltrackball.h
+skytentacles.o: $(HACK_SRC)/images/gen/scales_png.h
+skytentacles.o: $(srcdir)/normals.h
+skytentacles.o: $(HACK_SRC)/recanim.h
+skytentacles.o: $(srcdir)/rotator.h
+skytentacles.o: $(HACK_SRC)/screenhackI.h
+skytentacles.o: $(UTILS_SRC)/colors.h
+skytentacles.o: $(UTILS_SRC)/erase.h
+skytentacles.o: $(UTILS_SRC)/font-retry.h
+skytentacles.o: $(UTILS_SRC)/grabscreen.h
+skytentacles.o: $(UTILS_SRC)/hsv.h
+skytentacles.o: $(UTILS_SRC)/resources.h
+skytentacles.o: $(UTILS_SRC)/usleep.h
+skytentacles.o: $(UTILS_SRC)/visual.h
+skytentacles.o: $(UTILS_SRC)/yarandom.h
+skytentacles.o: $(HACK_SRC)/ximage-loader.h
+skytentacles.o: $(HACK_SRC)/xlockmoreI.h
+skytentacles.o: $(HACK_SRC)/xlockmore.h
+sonar-icmp.o: ../../config.h
+sonar-icmp.o: $(HACK_SRC)/fps.h
+sonar-icmp.o: $(HACK_SRC)/recanim.h
+sonar-icmp.o: $(HACK_SRC)/screenhackI.h
+sonar-icmp.o: $(srcdir)/sonar.h
+sonar-icmp.o: $(UTILS_SRC)/aligned_malloc.h
+sonar-icmp.o: $(UTILS_SRC)/async_netdb.h
+sonar-icmp.o: $(UTILS_SRC)/colors.h
+sonar-icmp.o: $(UTILS_SRC)/font-retry.h
+sonar-icmp.o: $(UTILS_SRC)/grabscreen.h
+sonar-icmp.o: $(UTILS_SRC)/hsv.h
+sonar-icmp.o: $(UTILS_SRC)/resources.h
+sonar-icmp.o: $(UTILS_SRC)/thread_util.h
+sonar-icmp.o: $(UTILS_SRC)/usleep.h
+sonar-icmp.o: $(UTILS_SRC)/version.h
+sonar-icmp.o: $(UTILS_SRC)/visual.h
+sonar-icmp.o: $(UTILS_SRC)/yarandom.h
+sonar.o: ../../config.h
+sonar.o: $(HACK_SRC)/fps.h
+sonar.o: $(srcdir)/gltrackball.h
+sonar.o: $(HACK_SRC)/recanim.h
+sonar.o: $(srcdir)/rotator.h
+sonar.o: $(HACK_SRC)/screenhackI.h
+sonar.o: $(srcdir)/sonar.h
+sonar.o: $(srcdir)/texfont.h
+sonar.o: $(UTILS_SRC)/aligned_malloc.h
+sonar.o: $(UTILS_SRC)/colors.h
+sonar.o: $(UTILS_SRC)/erase.h
+sonar.o: $(UTILS_SRC)/font-retry.h
+sonar.o: $(UTILS_SRC)/grabscreen.h
+sonar.o: $(UTILS_SRC)/hsv.h
+sonar.o: $(UTILS_SRC)/resources.h
+sonar.o: $(UTILS_SRC)/thread_util.h
+sonar.o: $(UTILS_SRC)/usleep.h
+sonar.o: $(UTILS_SRC)/visual.h
+sonar.o: $(UTILS_SRC)/yarandom.h
+sonar.o: $(HACK_SRC)/xlockmoreI.h
+sonar.o: $(HACK_SRC)/xlockmore.h
+sonar-sim.o: ../../config.h
+sonar-sim.o: $(HACK_SRC)/fps.h
+sonar-sim.o: $(HACK_SRC)/recanim.h
+sonar-sim.o: $(HACK_SRC)/screenhackI.h
+sonar-sim.o: $(srcdir)/sonar.h
+sonar-sim.o: $(UTILS_SRC)/colors.h
+sonar-sim.o: $(UTILS_SRC)/font-retry.h
+sonar-sim.o: $(UTILS_SRC)/grabscreen.h
+sonar-sim.o: $(UTILS_SRC)/hsv.h
+sonar-sim.o: $(UTILS_SRC)/resources.h
+sonar-sim.o: $(UTILS_SRC)/usleep.h
+sonar-sim.o: $(UTILS_SRC)/visual.h
+sonar-sim.o: $(UTILS_SRC)/yarandom.h
+spheremonics.o: ../../config.h
+spheremonics.o: $(HACK_SRC)/fps.h
+spheremonics.o: $(srcdir)/gltrackball.h
+spheremonics.o: $(srcdir)/normals.h
+spheremonics.o: $(HACK_SRC)/recanim.h
+spheremonics.o: $(srcdir)/rotator.h
+spheremonics.o: $(HACK_SRC)/screenhackI.h
+spheremonics.o: $(srcdir)/texfont.h
+spheremonics.o: $(UTILS_SRC)/colors.h
+spheremonics.o: $(UTILS_SRC)/erase.h
+spheremonics.o: $(UTILS_SRC)/font-retry.h
+spheremonics.o: $(UTILS_SRC)/grabscreen.h
+spheremonics.o: $(UTILS_SRC)/hsv.h
+spheremonics.o: $(UTILS_SRC)/resources.h
+spheremonics.o: $(UTILS_SRC)/usleep.h
+spheremonics.o: $(UTILS_SRC)/visual.h
+spheremonics.o: $(UTILS_SRC)/yarandom.h
+spheremonics.o: $(HACK_SRC)/xlockmoreI.h
+spheremonics.o: $(HACK_SRC)/xlockmore.h
+sphere.o: ../../config.h
+sphere.o: $(srcdir)/sphere.h
+splitflap.o: ../../config.h
+splitflap.o: $(HACK_SRC)/fps.h
+splitflap.o: $(srcdir)/gllist.h
+splitflap.o: $(srcdir)/gltrackball.h
+splitflap.o: $(HACK_SRC)/recanim.h
+splitflap.o: $(srcdir)/rotator.h
+splitflap.o: $(HACK_SRC)/screenhackI.h
+splitflap.o: $(srcdir)/texfont.h
+splitflap.o: $(UTILS_SRC)/colors.h
+splitflap.o: $(UTILS_SRC)/erase.h
+splitflap.o: $(UTILS_SRC)/font-retry.h
+splitflap.o: $(UTILS_SRC)/grabscreen.h
+splitflap.o: $(UTILS_SRC)/hsv.h
+splitflap.o: $(UTILS_SRC)/resources.h
+splitflap.o: $(UTILS_SRC)/textclient.h
+splitflap.o: $(UTILS_SRC)/usleep.h
+splitflap.o: $(UTILS_SRC)/utf8wc.h
+splitflap.o: $(UTILS_SRC)/visual.h
+splitflap.o: $(UTILS_SRC)/yarandom.h
+splitflap.o: $(HACK_SRC)/ximage-loader.h
+splitflap.o: $(HACK_SRC)/xlockmoreI.h
+splitflap.o: $(HACK_SRC)/xlockmore.h
+splitflap_obj.o: ../../config.h
+splitflap_obj.o: $(srcdir)/gllist.h
+splodesic.o: ../../config.h
+splodesic.o: $(HACK_SRC)/fps.h
+splodesic.o: $(srcdir)/gltrackball.h
+splodesic.o: $(srcdir)/normals.h
+splodesic.o: $(HACK_SRC)/recanim.h
+splodesic.o: $(srcdir)/rotator.h
+splodesic.o: $(HACK_SRC)/screenhackI.h
+splodesic.o: $(UTILS_SRC)/colors.h
+splodesic.o: $(UTILS_SRC)/erase.h
+splodesic.o: $(UTILS_SRC)/font-retry.h
+splodesic.o: $(UTILS_SRC)/grabscreen.h
+splodesic.o: $(UTILS_SRC)/hsv.h
+splodesic.o: $(UTILS_SRC)/resources.h
+splodesic.o: $(UTILS_SRC)/usleep.h
+splodesic.o: $(UTILS_SRC)/visual.h
+splodesic.o: $(UTILS_SRC)/yarandom.h
+splodesic.o: $(HACK_SRC)/xlockmoreI.h
+splodesic.o: $(HACK_SRC)/xlockmore.h
+sproingies.o: ../../config.h
+sproingies.o: $(HACK_SRC)/fps.h
+sproingies.o: $(srcdir)/gllist.h
+sproingies.o: $(HACK_SRC)/recanim.h
+sproingies.o: $(HACK_SRC)/screenhackI.h
+sproingies.o: $(srcdir)/sproingies.h
+sproingies.o: $(UTILS_SRC)/colors.h
+sproingies.o: $(UTILS_SRC)/erase.h
+sproingies.o: $(UTILS_SRC)/font-retry.h
+sproingies.o: $(UTILS_SRC)/grabscreen.h
+sproingies.o: $(UTILS_SRC)/hsv.h
+sproingies.o: $(UTILS_SRC)/resources.h
+sproingies.o: $(UTILS_SRC)/usleep.h
+sproingies.o: $(UTILS_SRC)/visual.h
+sproingies.o: $(UTILS_SRC)/yarandom.h
+sproingies.o: $(HACK_SRC)/xlockmoreI.h
+sproingiewrap.o: ../../config.h
+sproingiewrap.o: $(HACK_SRC)/fps.h
+sproingiewrap.o: $(HACK_SRC)/recanim.h
+sproingiewrap.o: $(HACK_SRC)/screenhackI.h
+sproingiewrap.o: $(srcdir)/sproingies.h
+sproingiewrap.o: $(UTILS_SRC)/colors.h
+sproingiewrap.o: $(UTILS_SRC)/erase.h
+sproingiewrap.o: $(UTILS_SRC)/font-retry.h
+sproingiewrap.o: $(UTILS_SRC)/grabscreen.h
+sproingiewrap.o: $(UTILS_SRC)/hsv.h
+sproingiewrap.o: $(UTILS_SRC)/resources.h
+sproingiewrap.o: $(UTILS_SRC)/usleep.h
+sproingiewrap.o: $(UTILS_SRC)/visual.h
+sproingiewrap.o: $(UTILS_SRC)/yarandom.h
+sproingiewrap.o: $(HACK_SRC)/xlockmoreI.h
+sproingiewrap.o: $(HACK_SRC)/xlockmore.h
+stairs.o: ../../config.h
+stairs.o: $(HACK_SRC)/fps.h
+stairs.o: $(srcdir)/gltrackball.h
+stairs.o: $(HACK_SRC)/images/gen/wood_png.h
+stairs.o: $(HACK_SRC)/recanim.h
+stairs.o: $(HACK_SRC)/screenhackI.h
+stairs.o: $(srcdir)/sphere.h
+stairs.o: $(UTILS_SRC)/colors.h
+stairs.o: $(UTILS_SRC)/erase.h
+stairs.o: $(UTILS_SRC)/font-retry.h
+stairs.o: $(UTILS_SRC)/grabscreen.h
+stairs.o: $(UTILS_SRC)/hsv.h
+stairs.o: $(UTILS_SRC)/resources.h
+stairs.o: $(UTILS_SRC)/usleep.h
+stairs.o: $(UTILS_SRC)/visual.h
+stairs.o: $(UTILS_SRC)/yarandom.h
+stairs.o: $(HACK_SRC)/ximage-loader.h
+stairs.o: $(HACK_SRC)/xlockmoreI.h
+stairs.o: $(HACK_SRC)/xlockmore.h
+starwars.o: ../../config.h
+starwars.o: $(HACK_SRC)/fps.h
+starwars.o: $(srcdir)/glut_roman.h
+starwars.o: $(srcdir)/glutstroke.h
+starwars.o: $(HACK_SRC)/recanim.h
+starwars.o: $(HACK_SRC)/screenhackI.h
+starwars.o: $(srcdir)/starwars.h
+starwars.o: $(srcdir)/texfont.h
+starwars.o: $(UTILS_SRC)/colors.h
+starwars.o: $(UTILS_SRC)/erase.h
+starwars.o: $(UTILS_SRC)/font-retry.h
+starwars.o: $(UTILS_SRC)/grabscreen.h
+starwars.o: $(UTILS_SRC)/hsv.h
+starwars.o: $(UTILS_SRC)/resources.h
+starwars.o: $(UTILS_SRC)/textclient.h
+starwars.o: $(UTILS_SRC)/usleep.h
+starwars.o: $(UTILS_SRC)/utf8wc.h
+starwars.o: $(UTILS_SRC)/visual.h
+starwars.o: $(UTILS_SRC)/yarandom.h
+starwars.o: $(HACK_SRC)/xlockmoreI.h
+starwars.o: $(HACK_SRC)/xlockmore.h
+stonerview-move.o: ../../config.h
+stonerview-move.o: $(srcdir)/stonerview.h
+stonerview-move.o: $(srcdir)/stonerview-move.h
+stonerview-move.o: $(srcdir)/stonerview-osc.h
+stonerview-move.o: $(UTILS_SRC)/yarandom.h
+stonerview.o: ../../config.h
+stonerview.o: $(HACK_SRC)/fps.h
+stonerview.o: $(srcdir)/gltrackball.h
+stonerview.o: $(HACK_SRC)/recanim.h
+stonerview.o: $(HACK_SRC)/screenhackI.h
+stonerview.o: $(srcdir)/stonerview.h
+stonerview.o: $(srcdir)/stonerview-move.h
+stonerview.o: $(srcdir)/stonerview-osc.h
+stonerview.o: $(UTILS_SRC)/colors.h
+stonerview.o: $(UTILS_SRC)/erase.h
+stonerview.o: $(UTILS_SRC)/font-retry.h
+stonerview.o: $(UTILS_SRC)/grabscreen.h
+stonerview.o: $(UTILS_SRC)/hsv.h
+stonerview.o: $(UTILS_SRC)/resources.h
+stonerview.o: $(UTILS_SRC)/usleep.h
+stonerview.o: $(UTILS_SRC)/visual.h
+stonerview.o: $(UTILS_SRC)/yarandom.h
+stonerview.o: $(HACK_SRC)/xlockmoreI.h
+stonerview.o: $(HACK_SRC)/xlockmore.h
+stonerview-osc.o: ../../config.h
+stonerview-osc.o: $(srcdir)/stonerview.h
+stonerview-osc.o: $(srcdir)/stonerview-move.h
+stonerview-osc.o: $(srcdir)/stonerview-osc.h
+stonerview-osc.o: $(UTILS_SRC)/yarandom.h
+stonerview-view.o: ../../config.h
+stonerview-view.o: $(srcdir)/stonerview.h
+stonerview-view.o: $(srcdir)/stonerview-move.h
+stonerview-view.o: $(srcdir)/stonerview-osc.h
+superquadrics.o: ../../config.h
+superquadrics.o: $(HACK_SRC)/fps.h
+superquadrics.o: $(HACK_SRC)/recanim.h
+superquadrics.o: $(HACK_SRC)/screenhackI.h
+superquadrics.o: $(UTILS_SRC)/colors.h
+superquadrics.o: $(UTILS_SRC)/erase.h
+superquadrics.o: $(UTILS_SRC)/font-retry.h
+superquadrics.o: $(UTILS_SRC)/grabscreen.h
+superquadrics.o: $(UTILS_SRC)/hsv.h
+superquadrics.o: $(UTILS_SRC)/resources.h
+superquadrics.o: $(UTILS_SRC)/usleep.h
+superquadrics.o: $(UTILS_SRC)/visual.h
+superquadrics.o: $(UTILS_SRC)/yarandom.h
+superquadrics.o: $(HACK_SRC)/xlockmoreI.h
+superquadrics.o: $(HACK_SRC)/xlockmore.h
+surfaces.o: ../../config.h
+surfaces.o: $(HACK_SRC)/fps.h
+surfaces.o: $(srcdir)/gltrackball.h
+surfaces.o: $(HACK_SRC)/recanim.h
+surfaces.o: $(srcdir)/rotator.h
+surfaces.o: $(HACK_SRC)/screenhackI.h
+surfaces.o: $(UTILS_SRC)/colors.h
+surfaces.o: $(UTILS_SRC)/erase.h
+surfaces.o: $(UTILS_SRC)/font-retry.h
+surfaces.o: $(UTILS_SRC)/grabscreen.h
+surfaces.o: $(UTILS_SRC)/hsv.h
+surfaces.o: $(UTILS_SRC)/resources.h
+surfaces.o: $(UTILS_SRC)/usleep.h
+surfaces.o: $(UTILS_SRC)/visual.h
+surfaces.o: $(UTILS_SRC)/yarandom.h
+surfaces.o: $(HACK_SRC)/xlockmoreI.h
+surfaces.o: $(HACK_SRC)/xlockmore.h
+swim.o: $(srcdir)/atlantis.h
+swim.o: ../../config.h
+swim.o: $(HACK_SRC)/fps.h
+swim.o: $(HACK_SRC)/recanim.h
+swim.o: $(HACK_SRC)/screenhackI.h
+swim.o: $(UTILS_SRC)/colors.h
+swim.o: $(UTILS_SRC)/erase.h
+swim.o: $(UTILS_SRC)/font-retry.h
+swim.o: $(UTILS_SRC)/grabscreen.h
+swim.o: $(UTILS_SRC)/hsv.h
+swim.o: $(UTILS_SRC)/resources.h
+swim.o: $(UTILS_SRC)/usleep.h
+swim.o: $(UTILS_SRC)/visual.h
+swim.o: $(UTILS_SRC)/yarandom.h
+swim.o: $(HACK_SRC)/xlockmoreI.h
+tangram.o: ../../config.h
+tangram.o: $(HACK_SRC)/fps.h
+tangram.o: $(HACK_SRC)/recanim.h
+tangram.o: $(HACK_SRC)/screenhackI.h
+tangram.o: $(srcdir)/tangram_shapes.h
+tangram.o: $(srcdir)/texfont.h
+tangram.o: $(UTILS_SRC)/colors.h
+tangram.o: $(UTILS_SRC)/erase.h
+tangram.o: $(UTILS_SRC)/font-retry.h
+tangram.o: $(UTILS_SRC)/grabscreen.h
+tangram.o: $(UTILS_SRC)/hsv.h
+tangram.o: $(UTILS_SRC)/resources.h
+tangram.o: $(UTILS_SRC)/usleep.h
+tangram.o: $(UTILS_SRC)/visual.h
+tangram.o: $(UTILS_SRC)/yarandom.h
+tangram.o: $(HACK_SRC)/xlockmoreI.h
+tangram.o: $(HACK_SRC)/xlockmore.h
+tangram_shapes.o: ../../config.h
+tangram_shapes.o: $(srcdir)/tangram_shapes.h
+teapot.o: ../../config.h
+teapot.o: $(srcdir)/teapot.h
+texfont.o: ../../config.h
+texfont.o: $(HACK_SRC)/fps.h
+texfont.o: $(srcdir)/texfont.h
+texfont.o: $(UTILS_SRC)/pow2.h
+texfont.o: $(UTILS_SRC)/resources.h
+texfont.o: $(UTILS_SRC)/xft.h
+texfont.o: $(UTILS_SRC)/xshm.h
+timetunnel.o: ../../config.h
+timetunnel.o: $(HACK_SRC)/fps.h
+timetunnel.o: $(srcdir)/gltrackball.h
+timetunnel.o: $(HACK_SRC)/images/gen/logo-180_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/timetunnel0_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/timetunnel1_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/timetunnel2_png.h
+timetunnel.o: $(HACK_SRC)/images/gen/tunnelstar_png.h
+timetunnel.o: $(HACK_SRC)/recanim.h
+timetunnel.o: $(srcdir)/rotator.h
+timetunnel.o: $(HACK_SRC)/screenhackI.h
+timetunnel.o: $(UTILS_SRC)/colors.h
+timetunnel.o: $(UTILS_SRC)/erase.h
+timetunnel.o: $(UTILS_SRC)/font-retry.h
+timetunnel.o: $(UTILS_SRC)/grabscreen.h
+timetunnel.o: $(UTILS_SRC)/hsv.h
+timetunnel.o: $(UTILS_SRC)/resources.h
+timetunnel.o: $(UTILS_SRC)/usleep.h
+timetunnel.o: $(UTILS_SRC)/visual.h
+timetunnel.o: $(UTILS_SRC)/yarandom.h
+timetunnel.o: $(HACK_SRC)/ximage-loader.h
+timetunnel.o: $(HACK_SRC)/xlockmoreI.h
+timetunnel.o: $(HACK_SRC)/xlockmore.h
+toast2.o: ../../config.h
+toast2.o: $(srcdir)/gllist.h
+toaster_base.o: ../../config.h
+toaster_base.o: $(srcdir)/gllist.h
+toaster_handle2.o: ../../config.h
+toaster_handle2.o: $(srcdir)/gllist.h
+toaster_handle.o: ../../config.h
+toaster_handle.o: $(srcdir)/gllist.h
+toaster_jet.o: ../../config.h
+toaster_jet.o: $(srcdir)/gllist.h
+toaster_knob.o: ../../config.h
+toaster_knob.o: $(srcdir)/gllist.h
+toaster.o: ../../config.h
+toaster.o: $(srcdir)/gllist.h
+toaster_slots.o: ../../config.h
+toaster_slots.o: $(srcdir)/gllist.h
+toaster_wing.o: ../../config.h
+toaster_wing.o: $(srcdir)/gllist.h
+toast.o: ../../config.h
+toast.o: $(srcdir)/gllist.h
+topblock.o: ../../config.h
+topblock.o: $(HACK_SRC)/fps.h
+topblock.o: $(srcdir)/gltrackball.h
+topblock.o: $(HACK_SRC)/recanim.h
+topblock.o: $(HACK_SRC)/screenhackI.h
+topblock.o: $(srcdir)/sphere.h
+topblock.o: $(srcdir)/topblock.h
+topblock.o: $(srcdir)/tube.h
+topblock.o: $(UTILS_SRC)/colors.h
+topblock.o: $(UTILS_SRC)/erase.h
+topblock.o: $(UTILS_SRC)/font-retry.h
+topblock.o: $(UTILS_SRC)/grabscreen.h
+topblock.o: $(UTILS_SRC)/hsv.h
+topblock.o: $(UTILS_SRC)/resources.h
+topblock.o: $(UTILS_SRC)/usleep.h
+topblock.o: $(UTILS_SRC)/visual.h
+topblock.o: $(UTILS_SRC)/yarandom.h
+topblock.o: $(HACK_SRC)/xlockmoreI.h
+topblock.o: $(HACK_SRC)/xlockmore.h
+trackball.o: ../../config.h
+trackball.o: $(srcdir)/trackball.h
+tronbit_idle1.o: ../../config.h
+tronbit_idle1.o: $(srcdir)/gllist.h
+tronbit_idle2.o: ../../config.h
+tronbit_idle2.o: $(srcdir)/gllist.h
+tronbit_no.o: ../../config.h
+tronbit_no.o: $(srcdir)/gllist.h
+tronbit.o: ../../config.h
+tronbit.o: $(HACK_SRC)/fps.h
+tronbit.o: $(srcdir)/gllist.h
+tronbit.o: $(srcdir)/gltrackball.h
+tronbit.o: $(HACK_SRC)/recanim.h
+tronbit.o: $(srcdir)/rotator.h
+tronbit.o: $(HACK_SRC)/screenhackI.h
+tronbit.o: $(srcdir)/sphere.h
+tronbit.o: $(UTILS_SRC)/colors.h
+tronbit.o: $(UTILS_SRC)/erase.h
+tronbit.o: $(UTILS_SRC)/font-retry.h
+tronbit.o: $(UTILS_SRC)/grabscreen.h
+tronbit.o: $(UTILS_SRC)/hsv.h
+tronbit.o: $(UTILS_SRC)/resources.h
+tronbit.o: $(UTILS_SRC)/usleep.h
+tronbit.o: $(UTILS_SRC)/visual.h
+tronbit.o: $(UTILS_SRC)/yarandom.h
+tronbit.o: $(HACK_SRC)/xlockmoreI.h
+tronbit.o: $(HACK_SRC)/xlockmore.h
+tronbit_yes.o: ../../config.h
+tronbit_yes.o: $(srcdir)/gllist.h
+tube.o: ../../config.h
+tube.o: $(srcdir)/tube.h
+tunnel_draw.o: ../../config.h
+tunnel_draw.o: $(HACK_SRC)/fps.h
+tunnel_draw.o: $(HACK_SRC)/recanim.h
+tunnel_draw.o: $(HACK_SRC)/screenhackI.h
+tunnel_draw.o: $(srcdir)/tunnel_draw.h
+tunnel_draw.o: $(UTILS_SRC)/colors.h
+tunnel_draw.o: $(UTILS_SRC)/erase.h
+tunnel_draw.o: $(UTILS_SRC)/font-retry.h
+tunnel_draw.o: $(UTILS_SRC)/grabscreen.h
+tunnel_draw.o: $(UTILS_SRC)/hsv.h
+tunnel_draw.o: $(UTILS_SRC)/resources.h
+tunnel_draw.o: $(UTILS_SRC)/usleep.h
+tunnel_draw.o: $(UTILS_SRC)/visual.h
+tunnel_draw.o: $(UTILS_SRC)/yarandom.h
+tunnel_draw.o: $(HACK_SRC)/xlockmoreI.h
+unicrud.o: ../../config.h
+unicrud.o: $(HACK_SRC)/fps.h
+unicrud.o: $(srcdir)/gltrackball.h
+unicrud.o: $(HACK_SRC)/recanim.h
+unicrud.o: $(srcdir)/rotator.h
+unicrud.o: $(HACK_SRC)/screenhackI.h
+unicrud.o: $(srcdir)/texfont.h
+unicrud.o: $(UTILS_SRC)/colors.h
+unicrud.o: $(UTILS_SRC)/erase.h
+unicrud.o: $(UTILS_SRC)/font-retry.h
+unicrud.o: $(UTILS_SRC)/grabscreen.h
+unicrud.o: $(UTILS_SRC)/hsv.h
+unicrud.o: $(UTILS_SRC)/resources.h
+unicrud.o: $(UTILS_SRC)/usleep.h
+unicrud.o: $(UTILS_SRC)/utf8wc.h
+unicrud.o: $(UTILS_SRC)/visual.h
+unicrud.o: $(UTILS_SRC)/yarandom.h
+unicrud.o: $(HACK_SRC)/xlockmoreI.h
+unicrud.o: $(HACK_SRC)/xlockmore.h
+unknownpleasures.o: ../../config.h
+unknownpleasures.o: $(HACK_SRC)/fps.h
+unknownpleasures.o: $(srcdir)/gltrackball.h
+unknownpleasures.o: $(HACK_SRC)/recanim.h
+unknownpleasures.o: $(HACK_SRC)/screenhackI.h
+unknownpleasures.o: $(UTILS_SRC)/colors.h
+unknownpleasures.o: $(UTILS_SRC)/erase.h
+unknownpleasures.o: $(UTILS_SRC)/font-retry.h
+unknownpleasures.o: $(UTILS_SRC)/grabscreen.h
+unknownpleasures.o: $(UTILS_SRC)/hsv.h
+unknownpleasures.o: $(UTILS_SRC)/resources.h
+unknownpleasures.o: $(UTILS_SRC)/usleep.h
+unknownpleasures.o: $(UTILS_SRC)/visual.h
+unknownpleasures.o: $(UTILS_SRC)/yarandom.h
+unknownpleasures.o: $(HACK_SRC)/xlockmoreI.h
+unknownpleasures.o: $(HACK_SRC)/xlockmore.h
+vigilance.o: ../../config.h
+vigilance.o: $(HACK_SRC)/fps.h
+vigilance.o: $(srcdir)/gllist.h
+vigilance.o: $(srcdir)/gltrackball.h
+vigilance.o: $(srcdir)/normals.h
+vigilance.o: $(HACK_SRC)/recanim.h
+vigilance.o: $(HACK_SRC)/screenhackI.h
+vigilance.o: $(UTILS_SRC)/colors.h
+vigilance.o: $(UTILS_SRC)/erase.h
+vigilance.o: $(UTILS_SRC)/font-retry.h
+vigilance.o: $(UTILS_SRC)/grabscreen.h
+vigilance.o: $(UTILS_SRC)/hsv.h
+vigilance.o: $(UTILS_SRC)/resources.h
+vigilance.o: $(UTILS_SRC)/usleep.h
+vigilance.o: $(UTILS_SRC)/visual.h
+vigilance.o: $(UTILS_SRC)/yarandom.h
+vigilance.o: $(HACK_SRC)/ximage-loader.h
+vigilance.o: $(HACK_SRC)/xlockmoreI.h
+vigilance.o: $(HACK_SRC)/xlockmore.h
+voronoi.o: ../../config.h
+voronoi.o: $(HACK_SRC)/fps.h
+voronoi.o: $(HACK_SRC)/recanim.h
+voronoi.o: $(HACK_SRC)/screenhackI.h
+voronoi.o: $(UTILS_SRC)/colors.h
+voronoi.o: $(UTILS_SRC)/erase.h
+voronoi.o: $(UTILS_SRC)/font-retry.h
+voronoi.o: $(UTILS_SRC)/grabscreen.h
+voronoi.o: $(UTILS_SRC)/hsv.h
+voronoi.o: $(UTILS_SRC)/resources.h
+voronoi.o: $(UTILS_SRC)/usleep.h
+voronoi.o: $(UTILS_SRC)/visual.h
+voronoi.o: $(UTILS_SRC)/yarandom.h
+voronoi.o: $(HACK_SRC)/xlockmoreI.h
+voronoi.o: $(HACK_SRC)/xlockmore.h
+whale.o: $(srcdir)/atlantis.h
+whale.o: ../../config.h
+whale.o: $(HACK_SRC)/fps.h
+whale.o: $(HACK_SRC)/recanim.h
+whale.o: $(HACK_SRC)/screenhackI.h
+whale.o: $(UTILS_SRC)/colors.h
+whale.o: $(UTILS_SRC)/font-retry.h
+whale.o: $(UTILS_SRC)/grabscreen.h
+whale.o: $(UTILS_SRC)/hsv.h
+whale.o: $(UTILS_SRC)/resources.h
+whale.o: $(UTILS_SRC)/usleep.h
+whale.o: $(UTILS_SRC)/visual.h
+whale.o: $(UTILS_SRC)/yarandom.h
+winduprobot.o: ../../config.h
+winduprobot.o: $(HACK_SRC)/fps.h
+winduprobot.o: $(srcdir)/gllist.h
+winduprobot.o: $(srcdir)/gltrackball.h
+winduprobot.o: $(HACK_SRC)/images/gen/chromesphere_png.h
+winduprobot.o: $(srcdir)/involute.h
+winduprobot.o: $(HACK_SRC)/recanim.h
+winduprobot.o: $(HACK_SRC)/screenhackI.h
+winduprobot.o: $(srcdir)/sphere.h
+winduprobot.o: $(srcdir)/texfont.h
+winduprobot.o: $(UTILS_SRC)/colors.h
+winduprobot.o: $(UTILS_SRC)/erase.h
+winduprobot.o: $(UTILS_SRC)/font-retry.h
+winduprobot.o: $(UTILS_SRC)/grabscreen.h
+winduprobot.o: $(UTILS_SRC)/hsv.h
+winduprobot.o: $(UTILS_SRC)/resources.h
+winduprobot.o: $(UTILS_SRC)/textclient.h
+winduprobot.o: $(UTILS_SRC)/usleep.h
+winduprobot.o: $(UTILS_SRC)/visual.h
+winduprobot.o: $(UTILS_SRC)/yarandom.h
+winduprobot.o: $(HACK_SRC)/ximage-loader.h
+winduprobot.o: $(HACK_SRC)/xlockmoreI.h
+winduprobot.o: $(HACK_SRC)/xlockmore.h
+xlock-gl-utils.o: ../../config.h
+xlock-gl-utils.o: $(HACK_SRC)/fps.h
+xlock-gl-utils.o: $(HACK_SRC)/recanim.h
+xlock-gl-utils.o: $(HACK_SRC)/screenhackI.h
+xlock-gl-utils.o: $(srcdir)/texfont.h
+xlock-gl-utils.o: $(UTILS_SRC)/colors.h
+xlock-gl-utils.o: $(UTILS_SRC)/erase.h
+xlock-gl-utils.o: $(UTILS_SRC)/font-retry.h
+xlock-gl-utils.o: $(UTILS_SRC)/grabscreen.h
+xlock-gl-utils.o: $(UTILS_SRC)/hsv.h
+xlock-gl-utils.o: $(UTILS_SRC)/resources.h
+xlock-gl-utils.o: $(UTILS_SRC)/usleep.h
+xlock-gl-utils.o: $(UTILS_SRC)/visual.h
+xlock-gl-utils.o: $(UTILS_SRC)/yarandom.h
+xlock-gl-utils.o: $(HACK_SRC)/xlockmoreI.h
+xscreensaver-gl-helper.o: ../../config.h
+xscreensaver-gl-helper.o: $(UTILS_SRC)/utils.h
+xscreensaver-gl-helper.o: $(UTILS_SRC)/visual.h
+
diff --git a/hacks/glx/README b/hacks/glx/README
new file mode 100644
index 0000000..5142503
--- /dev/null
+++ b/hacks/glx/README
@@ -0,0 +1,10 @@
+
+This directory contains various graphics hacks that requre OpenGL. These are
+independent from the xscreensaver program (in the ../../driver/ directory)
+but some of them use the utility functions found in the ../../utils/ directory.
+
+If you have compilation problems, check the parameters in ../../config.h.
+
+If you're looking for a free implementation of the OpenGL library,
+check out <http://www.mesa3d.org/>. For general OpenGL info, see
+<http://www.opengl.org/>.
diff --git a/hacks/glx/antinspect.c b/hacks/glx/antinspect.c
new file mode 100644
index 0000000..ad3bef5
--- /dev/null
+++ b/hacks/glx/antinspect.c
@@ -0,0 +1,704 @@
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Copyright 2004 Blair Tennessy
+ * tennessy@cs.ubc.ca
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n"
+
+# define free_antinspect 0
+# define release_antinspect 0
+#include "xlockmore.h"
+#else
+#include "xlock.h"
+#endif
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "sphere.h"
+#include "gltrackball.h"
+
+#define DEF_SHADOWS "True"
+
+static int shadows;
+
+static XrmOptionDescRec opts[] = {
+ {"-shadows", ".antinspect.shadows", XrmoptionNoArg, "on"},
+ {"+shadows", ".antinspect.shadows", XrmoptionNoArg, "off"}
+};
+
+static argtype vars[] = {
+ {&shadows, "shadows", "Shadows", DEF_SHADOWS, t_Bool}
+};
+
+static OptionStruct desc[] = {
+ {"-/+shadows", "turn on/off ant shadows"}
+};
+
+ENTRYPOINT ModeSpecOpt antinspect_opts = {sizeof opts / sizeof opts[0],
+ opts,
+ sizeof vars / sizeof vars[0],
+ vars,
+ desc};
+
+#ifdef USE_MODULES
+ModStruct antinspect_description =
+ {"antinspect", "init_antinspect", "draw_antinspect", (char *) NULL,
+ "draw_antinspect", "change_antinspect", (char *) NULL, &antinspect_opts,
+ 1000, 1, 1, 1, 4, 1.0, "",
+ "draws some ants", 0, NULL};
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 0.4
+
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+#define ObjAntinspectStrip 0
+#define ObjAntBody 1
+#define MaxObj 2
+
+/*************************************************************************/
+
+typedef struct {
+ GLint WindH, WindW;
+ GLfloat step;
+ GLfloat ant_position;
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+ int linewidth;
+ float ant_step;
+
+} antinspectstruct;
+
+static const float front_shininess[] = {60.0};
+static const float front_specular[] = {0.7, 0.7, 0.7, 1.0};
+static const float ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const float diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static float position0[] = {0.0, 3.0, 0.0, 1.0};
+static const float position1[] = {-1.0, -3.0, 1.0, 0.0};
+static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const float lmodel_twoside[] = {GL_TRUE};
+
+static const float MaterialRed[] = {0.6, 0.0, 0.0, 1.0};
+static const float MaterialOrange[] = {1.0, 0.69, 0.00, 1.0};
+static const float MaterialGray[] = {0.2, 0.2, 0.2, 1.0};
+static const float MaterialBlack[] = {0.1, 0.1, 0.1, 0.4};
+static const float MaterialShadow[] = {0.3, 0.3, 0.3, 0.3};
+static const float MaterialGray5[] = {0.5, 0.5, 0.5, 0.3};
+static const float MaterialGray6[] = {0.6, 0.6, 0.6, 1.0};
+
+static antinspectstruct *antinspect = (antinspectstruct *) NULL;
+
+#define NUM_SCENES 2
+
+enum {X, Y, Z, W};
+enum {A, B, C, D};
+
+/* create a matrix that will project the desired shadow */
+static void shadowmatrix(GLfloat shadowMat[4][4],
+ const GLfloat groundplane[4],
+ const GLfloat lightpos[4])
+{
+ GLfloat dot;
+
+ /* find dot product between light position vector and ground plane normal */
+ dot = groundplane[X] * lightpos[X] +
+ groundplane[Y] * lightpos[Y] +
+ groundplane[Z] * lightpos[Z] +
+ groundplane[W] * lightpos[W];
+
+ shadowMat[0][0] = dot - lightpos[X] * groundplane[X];
+ shadowMat[1][0] = 0.f - lightpos[X] * groundplane[Y];
+ shadowMat[2][0] = 0.f - lightpos[X] * groundplane[Z];
+ shadowMat[3][0] = 0.f - lightpos[X] * groundplane[W];
+
+ shadowMat[X][1] = 0.f - lightpos[Y] * groundplane[X];
+ shadowMat[1][1] = dot - lightpos[Y] * groundplane[Y];
+ shadowMat[2][1] = 0.f - lightpos[Y] * groundplane[Z];
+ shadowMat[3][1] = 0.f - lightpos[Y] * groundplane[W];
+
+ shadowMat[X][2] = 0.f - lightpos[Z] * groundplane[X];
+ shadowMat[1][2] = 0.f - lightpos[Z] * groundplane[Y];
+ shadowMat[2][2] = dot - lightpos[Z] * groundplane[Z];
+ shadowMat[3][2] = 0.f - lightpos[Z] * groundplane[W];
+
+ shadowMat[X][3] = 0.f - lightpos[W] * groundplane[X];
+ shadowMat[1][3] = 0.f - lightpos[W] * groundplane[Y];
+ shadowMat[2][3] = 0.f - lightpos[W] * groundplane[Z];
+ shadowMat[3][3] = dot - lightpos[W] * groundplane[W];
+}
+
+static const GLfloat ground[4] = {0.0, 1.0, 0.0, -0.00001};
+
+/* simple filled sphere */
+static Bool mySphere(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluSphere(quadObj, radius, 16, 16);
+ gluDeleteQuadric(quadObj);
+#else
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (16, 16, False);
+ glPopMatrix();
+#endif
+ return True;
+}
+
+/* caged sphere */
+static Bool mySphere2(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_LINE);/*GLU_SILHOUETTE);*/
+ gluSphere(quadObj, radius, 16, 8);
+ gluDeleteQuadric(quadObj);
+#else
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (16, 8, True);
+ glPopMatrix();
+#endif
+
+ return True;
+}
+
+/* null cone */
+static Bool myCone2(float radius)
+{
+ return True;
+}
+
+/* draw an ant */
+static Bool draw_antinspect_ant(ModeInfo *mi, antinspectstruct * mp,
+ const float *Material, int mono,
+ Bool (*sphere)(float), Bool (*cone)(float))
+{
+ float cos1 = cos(mp->ant_step);
+ float cos2 = cos(mp->ant_step + 2 * Pi / 3);
+ float cos3 = cos(mp->ant_step + 4 * Pi / 3);
+ float sin1 = sin(mp->ant_step);
+ float sin2 = sin(mp->ant_step + 2 * Pi / 3);
+ float sin3 = sin(mp->ant_step + 4 * Pi / 3);
+
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray5);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, Material);
+ glEnable(GL_CULL_FACE);
+ glPushMatrix();
+ glScalef(1, 1.3, 1);
+ if (!((*sphere)(0.18)))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glTranslatef(0.00, 0.30, 0.00);
+ if (!((*sphere)(0.2)))
+ return False;
+
+ glTranslatef(-0.05, 0.17, 0.05);
+ glRotatef(-90, 1, 0, 0);
+ glRotatef(-25, 0, 1, 0);
+ if (!((*cone)(0.05)))
+ return False;
+ glTranslatef(0.00, 0.10, 0.00);
+ if (!((*cone)(0.05)))
+ return False;
+ glRotatef(25, 0, 1, 0);
+ glRotatef(90, 1, 0, 0);
+
+ glScalef(1, 1.3, 1);
+ glTranslatef(0.15, -0.65, 0.05);
+ if (!((*sphere)(0.25)))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glPopMatrix();
+ glDisable(GL_CULL_FACE);
+
+ glDisable(GL_LIGHTING);
+
+ /* ANTENNAS */
+ glBegin(GL_LINES);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, 0.40);
+ mi->polygon_count++;
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, -0.40);
+ mi->polygon_count++;
+ glEnd();
+ glBegin(GL_POINTS);
+ if (mono)
+ glColor3fv(MaterialGray6);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.40, 0.70, 0.40);
+ mi->polygon_count++;
+ glVertex3f(0.40, 0.70, -0.40);
+ mi->polygon_count++;
+ glEnd();
+
+ /* LEFT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos1, 0.15, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* LEFT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.00, 0.18);
+ glVertex3f(0.35 + 0.05 * cos2, 0.00, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+ mi->polygon_count++;
+ glEnd();
+ mi->polygon_count++;
+
+ /* LEFT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, -0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos3, -0.15, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin1, 0.15, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.00, -0.18);
+ glVertex3f(0.35 - 0.05 * sin2, 0.00, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, -0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin3, -0.15, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ glEnable(GL_LIGHTING);
+
+ return True;
+}
+
+/* only works with 3 right now */
+#define ANTCOUNT 3
+
+static const float MaterialBen[4] = {0.25, 0.30, 0.46, 1.0};
+
+static const float* antmaterial[ANTCOUNT] =
+ {MaterialRed, MaterialBen, MaterialOrange};
+static double antposition[ANTCOUNT] = {0.0, 120.0, 240.0};
+static const double antvelocity[ANTCOUNT] = {0.3, 0.3, 0.3};
+static const double antsphere[ANTCOUNT] = {1.2, 1.2, 1.2};
+
+/* permutations */
+static const double antorder[6][ANTCOUNT] = {{0, 1, 2},
+ {0, 2, 1},
+ {2, 0, 1},
+ {2, 1, 0},
+ {1, 2, 0},
+ {1, 0, 2}};
+
+/* draw the scene */
+static Bool draw_antinspect_strip(ModeInfo * mi)
+{
+ antinspectstruct *mp = &antinspect[MI_SCREEN(mi)];
+ int i, j;
+ int mono = MI_IS_MONO(mi);
+
+ int ro = (((int)antposition[1])/(360/(2*ANTCOUNT))) % (2*ANTCOUNT);
+
+ glEnable(GL_TEXTURE_2D);
+ position0[1] = 9.6;
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray5);
+ glRotatef(-30.0, 0.0, 1.0, 0.0);
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+
+ /* render ground plane */
+ glBegin(GL_TRIANGLES);
+ glColor4fv(MaterialShadow);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialBlack);
+ glNormal3f(0.0, 1.0, 0.0);
+
+ /* middle tri */
+ glVertex3f(0.0, 0.0, -1.0);
+ glVertex3f(-sqrt(3.0)/2.0, 0.0, 0.5);
+ glVertex3f(sqrt(3.0)/2.0, 0.0, 0.5);
+ mi->polygon_count++;
+ glEnd();
+
+ /* rotate */
+ for(i = 0; i < 3; ++i) {
+ glRotatef(120.0, 0.0, 1.0, 0.0);
+ glBegin(GL_TRIANGLES);
+ glVertex3f(0.0, 0.0, 1.0 + 3.0);
+ glVertex3f(sqrt(3.0)/2.0, 0.0, -0.5 + 3.0);
+ glVertex3f(-sqrt(3.0)/2.0, 0.0, -0.5 + 3.0);
+ mi->polygon_count++;
+ glEnd();
+ }
+
+ /* first render shadows -- no depth required */
+ if(shadows) {
+ GLfloat m[4][4];
+ shadowmatrix(m, ground, position0);
+
+ glColor4fv(MaterialShadow);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialShadow);
+
+ glDisable(GL_BLEND);
+ glDisable(GL_LIGHTING);
+
+ /* display ant shadow */
+ glPushMatrix();
+ glTranslatef(0.0, 0.001, 0.0);
+ glMultMatrixf(m[0]);
+
+ for(i = 0; i < ANTCOUNT; ++i) {
+
+ /* draw ant */
+ glPushMatrix();
+
+ /* center */
+ glRotatef(antposition[i], 0.0, 1.0, 0.0);
+ glTranslatef(2.4, 0.0, 0.0);
+ glTranslatef(0.0, antsphere[i], 0.0);
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+
+ /* orient ant */
+ glRotatef(10.0, 0.0, 1.0, 0.0);
+ glRotatef(40.0, 0.0, 0.0, 1.0);
+ glTranslatef(0.0, -0.8, 0.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ glRotatef(90.0, 0.0, 0.0, 1.0);
+
+ /* set colour */
+ glColor4fv(MaterialShadow);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialShadow);
+
+ if(antposition[i] > 360.0)
+ antposition[i] = 0.0;
+ draw_antinspect_ant(mi, mp, MaterialShadow, mono, mySphere2, myCone2);
+
+ glDisable(GL_BLEND);
+ glDisable(GL_LIGHTING);
+
+ /* draw sphere */
+ glRotatef(-20.0, 1.0, 0.0, 0.0);
+ glRotatef(-mp->ant_step*2, 0.0, 0.0, 1.0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialShadow);
+ mySphere2(1.2);
+
+ glPopMatrix();
+ }
+
+ glPopMatrix();
+ }
+
+ glEnable(GL_LIGHTING);
+
+ /* truants */
+ for(j = 0; j < ANTCOUNT; ++j) {
+ /* determine rendering order */
+ i = antorder[ro][j];
+
+ glPushMatrix();
+
+ /* center */
+ glRotatef(antposition[i], 0.0, 1.0, 0.0);
+ glTranslatef(2.4, 0.0, 0.0);
+ glTranslatef(0.0, antsphere[i], 0.0);
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+
+ /* draw ant */
+ glPushMatrix();
+ glRotatef(10.0, 0.0, 1.0, 0.0);
+ glRotatef(40.0, 0.0, 0.0, 1.0);
+ glTranslatef(0.0, -0.8, 0.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ glRotatef(90.0, 0.0, 0.0, 1.0);
+ if(antposition[i] > 360.0)
+ antposition[i] = 0.0;
+ glEnable(GL_BLEND);
+ draw_antinspect_ant(mi, mp, antmaterial[i], mono, mySphere2, myCone2);
+ glDisable(GL_BLEND);
+ glPopMatrix();
+
+ /* draw sphere */
+ glRotatef(-20.0, 1.0, 0.0, 0.0);
+ glRotatef(-mp->ant_step*2, 0.0, 0.0, 1.0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mono ? MaterialGray5 : antmaterial[i]);
+ mySphere2(1.2);
+ glEnable(GL_BLEND);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialBlack);
+ mySphere(1.16);
+ glDisable(GL_BLEND);
+
+ glPopMatrix();
+
+ /* finally, evolve */
+ antposition[i] += antvelocity[i];
+ }
+
+ /* but the step size is the same! */
+ mp->ant_step += 0.2;
+
+ mp->ant_position += 1;
+ return True;
+}
+
+ENTRYPOINT void reshape_antinspect(ModeInfo * mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+ antinspectstruct *mp = &antinspect[MI_SCREEN(mi)];
+ mp->linewidth = (width / 512) + 1;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, mp->WindW = (GLint) width, mp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ gluPerspective(45, 1/h, 7.0, 20.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLineWidth(mp->linewidth);
+ glPointSize(mp->linewidth);
+}
+
+static void pinit(void)
+{
+ glClearDepth(1.0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_NORMALIZE);
+ glFrontFace(GL_CCW);
+
+ /* antinspect */
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glDisable(GL_TEXTURE_2D);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+}
+
+ENTRYPOINT Bool antinspect_handle_event (ModeInfo *mi, XEvent *event)
+{
+ antinspectstruct *mp = &antinspect[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, mp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &mp->button_down_p))
+ return True;
+
+ return False;
+}
+
+ENTRYPOINT void init_antinspect(ModeInfo * mi)
+{
+ antinspectstruct *mp;
+
+ MI_INIT(mi, antinspect);
+ mp = &antinspect[MI_SCREEN(mi)];
+ mp->step = NRAND(90);
+ mp->ant_position = NRAND(90);
+ mp->trackball = gltrackball_init (False);
+
+ if ((mp->glx_context = init_GL(mi)) != NULL) {
+ reshape_antinspect(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ pinit();
+ }
+ else
+ MI_CLEARWINDOW(mi);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+}
+
+ENTRYPOINT void draw_antinspect(ModeInfo * mi)
+{
+ antinspectstruct *mp;
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if(!antinspect)
+ return;
+ mp = &antinspect[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+
+ if(!mp->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(mp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+ mi->polygon_count = 0;
+
+ /* position camera --- this works well, we can peer inside
+ the antbubble */
+ glTranslatef(0.0, 0.0, -10.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ glRotatef(o, 0, 0, 1);
+ }
+# endif
+
+ gltrackball_rotate(mp->trackball);
+ glRotatef((15.0/2.0 + 15.0*sin(mp->ant_step/100.0)), 1.0, 0.0, 0.0);
+ glRotatef(30.0, 1.0, 0.0, 0.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+
+ if (!draw_antinspect_strip(mi)) {
+ MI_ABORT(mi);
+ return;
+ }
+
+ glPopMatrix();
+
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+
+ glXSwapBuffers(display, window);
+
+ mp->step += 0.025;
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void change_antinspect(ModeInfo * mi)
+{
+ antinspectstruct *mp = &antinspect[MI_SCREEN(mi)];
+
+ if (!mp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(mp->glx_context));
+ pinit();
+}
+#endif /* !STANDALONE */
+
+
+XSCREENSAVER_MODULE ("AntInspect", antinspect)
diff --git a/hacks/glx/antinspect.man b/hacks/glx/antinspect.man
new file mode 100644
index 0000000..804d7a4
--- /dev/null
+++ b/hacks/glx/antinspect.man
@@ -0,0 +1,56 @@
+.TH XScreenSaver 1 "March 2004"
+.SH NAME
+antinspect \- ant model inspection screenhack
+.SH SYNOPSIS
+.B antinspect
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
+.SH DESCRIPTION
+The \fIantinspect\fP code displays three ant-powered balls churning in a
+circle.
+.SH OPTIONS
+.I antinspect
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-shadows
+Draw shadows on ground
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 2004 by Blair Tennessy. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Blair Tennessy <tennessy@cs.ubc.ca>, 15-March-2004.
+
diff --git a/hacks/glx/antmaze.c b/hacks/glx/antmaze.c
new file mode 100644
index 0000000..79b7e0b
--- /dev/null
+++ b/hacks/glx/antmaze.c
@@ -0,0 +1,1613 @@
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Copyright 2004 Blair Tennessy
+ * tennessy@cs.ubc.ca
+ */
+
+#if 0
+static const char sccsid[] = "@(#)antmaze.c 5.01 2001/03/01 xlockmore";
+#endif
+
+#ifdef STANDALONE
+# define MODE_antmaze
+# define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n"
+
+# define free_antmaze 0
+# define release_antmaze 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#ifdef MODE_antmaze
+
+
+#include "sphere.h"
+#include "tube.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+#define DEF_SOLIDANTMAZE "False"
+#define DEF_NOANTS "False"
+
+static int solidantmaze;
+static int noants;
+
+static XrmOptionDescRec opts[] =
+{
+ {"-solidantmaze", ".antmaze.solidantmaze", XrmoptionNoArg, "on"},
+ {"+solidantmaze", ".antmaze.solidantmaze", XrmoptionNoArg, "off"},
+ {"-noants", ".antmaze.noants", XrmoptionNoArg, "on"},
+ {"+noants", ".antmaze.noants", XrmoptionNoArg, "off"}
+};
+static argtype vars[] =
+{
+ {&solidantmaze, "solidantmaze", "Solidantmaze", DEF_SOLIDANTMAZE, t_Bool},
+ {&noants, "noants", "Noants", DEF_NOANTS, t_Bool}
+};
+
+static OptionStruct desc[] =
+{
+ {"-/+solidantmaze", "select between a SOLID or a NET Antmaze Strip"},
+ {"-/+noants", "turn on/off walking ants"}
+};
+
+ENTRYPOINT ModeSpecOpt antmaze_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+#ifdef USE_MODULES
+ModStruct antmaze_description =
+{"antmaze", "init_antmaze", "draw_antmaze", NULL,
+ "draw_antmaze", "change_antmaze", NULL, &antmaze_opts,
+ 1000, 1, 1, 1, 4, 1.0, "",
+ "draws some ants", 0, NULL};
+
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 0.4
+
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+#define ObjAntmazeStrip 0
+#define ObjAntBody 1
+#define MaxObj 2
+
+/*************************************************************************/
+
+#include "ants.h"
+
+#define ANTCOUNT 5
+#define PI 3.14157
+
+#define EPSILON 0.01
+#define BOARDSIZE 10
+#define BOARDCOUNT 2
+#define PARTS 20
+
+#define checkImageWidth 64
+#define checkImageHeight 64
+
+typedef struct {
+ GLint WindH, WindW;
+ GLfloat step;
+ GLfloat ant_position;
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int focus;
+ int currentboard;
+
+ double antdirection[ANTCOUNT];
+ double antposition[ANTCOUNT][3];
+ int anton[ANTCOUNT];
+
+ double antvelocity[ANTCOUNT];
+ double antsize[ANTCOUNT];
+ int bposition[ANTCOUNT][2];
+ int board[BOARDCOUNT][10][10];
+
+ int part[ANTCOUNT];
+ double antpath[ANTCOUNT][PARTS][2];
+ int antpathlength[ANTCOUNT];
+
+ GLubyte checkers[checkImageWidth][checkImageHeight][3];
+
+ GLuint checktexture, brushedtexture;
+ double elevator;
+
+ double ant_step;
+ double first_ant_step;
+ int started;
+ int introduced;
+ int entroducing;
+
+ double fadeout;
+ double fadeoutspeed;
+
+ int mag;
+
+} antmazestruct;
+
+static antmazestruct *antmaze = (antmazestruct *) NULL;
+
+
+static const GLfloat MaterialRed[] = {0.6, 0.0, 0.0, 1.0};
+/*static const GLfloat MaterialMagenta[] = {0.6, 0.2, 0.5, 1.0};*/
+static const GLfloat MaterialGray8[] = {0.8, 0.8, 0.8, 1.0};
+static const GLfloat MaterialGray35[] = {0.30, 0.30, 0.30, 1.0};
+static const GLfloat MaterialGray4[] = {0.40, 0.40, 0.40, 1.0};
+static const GLfloat MaterialOrange[] = {1.0, 0.69, 0.00, 1.0};
+static const GLfloat MaterialGreen[] = {0.1, 0.4, 0.2, 1.0};
+
+/* lighting variables */
+static const GLfloat front_shininess[] = {60.0};
+static const GLfloat front_specular[] = {0.8, 0.8, 0.8, 1.0};
+static const GLfloat ambient[] = {0.1, 0.1, 0.1, 1.0};
+/*static const GLfloat ambient2[] = {0.0, 0.0, 0.0, 0.0};*/
+static const GLfloat diffuse[] = {0.8, 0.8, 0.8, 1.0};
+static const GLfloat position0[] = {1.0, 5.0, 1.0, 1.0};
+static const GLfloat position1[] = {-1.0, -5.0, 1.0, 1.0};
+/*static const GLfloat lmodel_ambient[] = {0.8, 0.8, 0.8, 1.0};*/
+/*static const GLfloat lmodel_twoside[] = {GL_TRUE};*/
+/*static const GLfloat spotlight_ambient[] = { 0.0, 0.0, 0.0, 1.0 };*/
+/*static const GLfloat spotlight_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };*/
+
+#define NUM_SCENES 2
+
+/* filled sphere */
+static Bool mySphere(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluSphere(quadObj, radius, 16, 16);
+ gluDeleteQuadric(quadObj);
+#else
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (16, 16, False);
+ glPopMatrix();
+#endif
+ return True;
+}
+
+#if 0
+/* silhouette sphere */
+static Bool mySphere2(float radius)
+{
+ GLUquadricObj *quadObj;
+
+ if((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_SILHOUETTE);
+ gluSphere(quadObj, radius, 16, 8);
+ gluDeleteQuadric(quadObj);
+
+ return True;
+}
+#endif
+
+/* textured sphere */
+static Bool mySphereTex(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluQuadricTexture(quadObj, GL_TRUE);
+ gluQuadricNormals(quadObj, GLU_SMOOTH);
+ gluSphere(quadObj, radius, 32, 16);
+ gluDeleteQuadric(quadObj);
+#else
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (32, 16, False);
+ glPopMatrix();
+#endif
+
+ return True;
+}
+
+/* filled cone */
+static Bool myCone(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if ((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluCylinder(quadObj, radius, 0, radius * 2, 8, 1);
+ gluDeleteQuadric(quadObj);
+#else
+ cone (0, 0, 0,
+ 0, 0, radius * 2,
+ radius, 0,
+ 8, True, True, False);
+#endif
+ return True;
+}
+
+/* no cone */
+static Bool myCone2(float radius) { return True; }
+
+#define MATERIALS 4
+static const float *antmaterial[ANTCOUNT] =
+ {MaterialRed, MaterialGray35, MaterialGray4, MaterialOrange, MaterialGreen};
+
+static const float *materials[MATERIALS] =
+ {MaterialRed, MaterialGray35, MaterialGray4, MaterialOrange};
+
+
+static void makeCheckImage(antmazestruct *mp)
+{
+ int i, j;
+
+ for (i = 0; i < checkImageWidth; i++) {
+ for (j = 0; j < checkImageHeight; j++) {
+ if(((((i&0x8)==0)^((j&0x8)))==0)) {
+ int c = 102 + random()%32;
+ mp->checkers[i][j][0] = c;
+ mp->checkers[i][j][1] = c;
+ mp->checkers[i][j][2] = c;
+ }
+ else {
+ int c = 153 + random()%32;
+ mp->checkers[i][j][0] = c;/*153;*/
+ mp->checkers[i][j][1] = c;/*c;*//*0;*/
+ mp->checkers[i][j][2] = c;/*c;*//*0;*/
+ }
+ }
+ }
+
+ glGenTextures(1, &mp->checktexture);
+ glBindTexture(GL_TEXTURE_2D, mp->checktexture);
+
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth,
+ checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
+ &mp->checkers[0][0]);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+}
+
+static void makeBrushedImage(antmazestruct *mp)
+{
+ int i, j, c;
+
+ for(i = 0; i < checkImageWidth; ++i)
+ for(j = 0; j < checkImageHeight; ++j) {
+
+ c = 102+102*fabs(sin(2.0*i / Pi)*sin(2.0*j/Pi)) + random()%51;
+
+/* c = (i+j)%8==0 || (i+j+5)%8==0 ? 153 : 102; */
+
+ mp->checkers[i][j][0] = c;
+ mp->checkers[i][j][1] = c;
+ mp->checkers[i][j][2] = c;
+ }
+
+/* for (i = 0; i < checkImageWidth; i++) { */
+/* for (j = 0; j < checkImageHeight; j++) { */
+/* int c = 102 + pow((random()%1000)/1000.0, 4)*103; */
+/* checkers[i][j][0] = c; */
+/* checkers[i][j][1] = c; */
+/* checkers[i][j][2] = c; */
+/* } */
+/* } */
+
+/* /\* smooth *\/ */
+/* for (i = 0; i < checkImageWidth; i++) { */
+/* for (j = 0; j < checkImageHeight; j++) { */
+/* int a = checkers[(i+checkImageWidth+1)%checkImageWidth][j][0] + */
+/* 4*checkers[i][j][0] + checkers[(i+1)%checkImageWidth][j][0]; */
+/* a /= 6; */
+/* checkers[i][j][0] = a; */
+/* checkers[i][j][1] = a; */
+/* checkers[i][j][2] = a; */
+/* } */
+/* } */
+
+ glGenTextures(1, &mp->brushedtexture);
+ glBindTexture(GL_TEXTURE_2D, mp->brushedtexture);
+
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth,
+ checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
+ &mp->checkers[0][0]);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+}
+
+#if 0
+static void draw_wall(ModeInfo *mi, double x1, double z1, double x2, double z2)
+{
+ float x = fabs(x2 - x1)/2.0;
+
+ glBegin(GL_QUADS);
+
+ /* draw top */
+ glNormal3f(0.0, 1.0, 0.0);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(x1, 1.0, z1+0.25);
+ glTexCoord2f(x, 0.0);
+ glVertex3f(x2, 1.0, z2+0.25);
+ glTexCoord2f(x, 0.25);
+ glVertex3f(x2, 1.0, z2-0.25);
+ glTexCoord2f(0.0, 0.25);
+ glVertex3f(x1, 1.0, z1-0.25);
+ mi->polygon_count++;
+
+ /* draw sides */
+ glNormal3f(0.0, 0.0, 1.0);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(x1, 0.0, z1+0.25);
+ glTexCoord2f(x, 0.0);
+ glVertex3f(x2, 0.0, z2+0.25);
+ glTexCoord2f(x, 0.5);
+ glVertex3f(x2, 1.0, z2+0.25);
+ glTexCoord2f(0.0, 0.5);
+ glVertex3f(x1, 1.0, z1+0.25);
+ mi->polygon_count++;
+
+ glNormal3f(0.0, 0.0, -1.0);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(x1, 0.0, z1-0.25);
+ glTexCoord2f(x, 0.0);
+ glVertex3f(x2, 0.0, z2-0.25);
+ glTexCoord2f(x, 0.5);
+ glVertex3f(x2, 1.0, z2-0.25);
+ glTexCoord2f(0.0, 0.5);
+ glVertex3f(x1, 1.0, z1-0.25);
+ mi->polygon_count++;
+
+ /* draw ends */
+ glNormal3f(1.0, 0.0, 0.0);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(x2, 0.0, z2+0.25);
+ glTexCoord2f(0.25, 0.0);
+ glVertex3f(x2, 0.0, z2-0.25);
+ glTexCoord2f(0.25, 0.5);
+ glVertex3f(x2, 1.0, z2-0.25);
+ glTexCoord2f(0.0, 0.5);
+ glVertex3f(x2, 1.0, z2+0.25);
+ mi->polygon_count++;
+
+ glNormal3f(-1.0, 0.0, 0.0);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(x1, 0.0, z1-0.25);
+ glTexCoord2f(0.25, 0.0);
+ glVertex3f(x1, 0.0, z1+0.25);
+ glTexCoord2f(0.25, 0.5);
+ glVertex3f(x1, 1.0, z1+0.25);
+ glTexCoord2f(0.0, 0.5);
+ glVertex3f(x1, 1.0, z1-0.25);
+ mi->polygon_count++;
+
+ glEnd();
+}
+#endif
+
+static void draw_board(ModeInfo *mi, antmazestruct *mp)
+{
+
+ int i, j;
+ double h = 0.5;
+ double stf = 0.0625;
+
+ glBindTexture(GL_TEXTURE_2D, mp->checktexture);
+
+ glBegin(GL_QUADS);
+
+ for(i = 0; i < BOARDSIZE; ++i)
+ for(j = 0; j < BOARDSIZE; ++j) {
+ if(mp->board[mp->currentboard][j][i]) {
+
+/* /\* draw top *\/ */
+/* glNormal3f(0.0, 1.0, 0.0); */
+/* glTexCoord2f(0.0 + stf, 0.0 + stf); */
+/* glVertex3f(i-0.5, h, j+0.5); */
+/* glTexCoord2f(1.0 + stf, 0.0 + stf); */
+/* glVertex3f(i+0.5, h, j+0.5); */
+/* glTexCoord2f(1.0 + stf, 1.0 + stf); */
+/* glVertex3f(i+0.5, h, j-0.5); */
+/* glTexCoord2f(0.0 + stf, 1.0 + stf); */
+/* glVertex3f(i-0.5, h, j-0.5); */
+
+ /* draw top */
+ glNormal3f(0.0, 1.0, 0.0);
+ glTexCoord2f(0.0 + stf, 0.0 + stf);
+ glVertex3f(i-0.5, h, j+0.5);
+ glTexCoord2f(1.0 + stf, 0.0 + stf);
+ glVertex3f(i+0.5, h, j+0.5);
+ glTexCoord2f(1.0 + stf, 1.0 + stf);
+ glVertex3f(i+0.5, h, j-0.5);
+ glTexCoord2f(0.0 + stf, 1.0 + stf);
+ glVertex3f(i-0.5, h, j-0.5);
+ mi->polygon_count++;
+
+ /* draw south face */
+ if(j == 9 || !mp->board[mp->currentboard][j+1][i]) {
+ glNormal3f(0.0, 0.0, 1.0);
+ glTexCoord2f(0.0 + stf, 0.0 + stf);
+ glVertex3f(i-0.5, 0.0, j+0.5);
+ glTexCoord2f(1.0 + stf, 0.0 + stf);
+ glVertex3f(i+0.5, 0.0, j+0.5);
+ glTexCoord2f(1.0 + stf, h + stf);
+ glVertex3f(i+0.5, h, j+0.5);
+ glTexCoord2f(0.0 + stf, h + stf);
+ glVertex3f(i-0.5, h, j+0.5);
+ mi->polygon_count++;
+ }
+
+ /* draw north face */
+ if(j == 0 || !mp->board[mp->currentboard][j-1][i]) {
+ glNormal3f(0.0, 0.0, -1.0);
+ glTexCoord2f(0.0 + stf, 0.0 + stf);
+ glVertex3f(i+0.5, 0.0, j-0.5);
+ glTexCoord2f(1.0 + stf, 0.0 + stf);
+ glVertex3f(i-0.5, 0.0, j-0.5);
+ glTexCoord2f(1.0 + stf, h + stf);
+ glVertex3f(i-0.5, h, j-0.5);
+ glTexCoord2f(0.0 + stf, h + stf);
+ glVertex3f(i+0.5, h, j-0.5);
+ mi->polygon_count++;
+ }
+
+ /* draw east face */
+ if(i == 9 || !mp->board[mp->currentboard][j][i+1]) {
+ glNormal3f(1.0, 0.0, 0.0);
+ glTexCoord2f(0.0 + stf, 0.0 + stf);
+ glVertex3f(i+0.5, 0.0, j+0.5);
+ glTexCoord2f(1.0 + stf, 0.0 + stf);
+ glVertex3f(i+0.5, 0.0, j-0.5);
+ glTexCoord2f(1.0 + stf, h + stf);
+ glVertex3f(i+0.5, h, j-0.5);
+ glTexCoord2f(0.0 + stf, h + stf);
+ glVertex3f(i+0.5, h, j+0.5);
+ mi->polygon_count++;
+ }
+
+ /* draw west face */
+ if(i == 0 || !mp->board[mp->currentboard][j][i-1]) {
+ glNormal3f(-1.0, 0.0, 0.0);
+ glTexCoord2f(0.0 + stf, 0.0 + stf);
+ glVertex3f(i-0.5, 0.0, j-0.5);
+ glTexCoord2f(1.0 + stf, 0.0 + stf);
+ glVertex3f(i-0.5, 0.0, j+0.5);
+ glTexCoord2f(1.0 + stf, h + stf);
+ glVertex3f(i-0.5, h, j+0.5);
+ glTexCoord2f(0.0 + stf, h + stf);
+ glVertex3f(i-0.5, h, j-0.5);
+ mi->polygon_count++;
+ }
+ }
+ else {
+ double tx = 2.0;
+ glNormal3f(0.0, 1.0, 0.0);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(i-0.5, 0.0, j+0.5);
+ glTexCoord2f(tx, 0.0);
+ glVertex3f(i+0.5, 0.0, j+0.5);
+ glTexCoord2f(tx, tx);
+ glVertex3f(i+0.5, 0.0, j-0.5);
+ glTexCoord2f(0.0, tx);
+ glVertex3f(i-0.5, 0.0, j-0.5);
+ mi->polygon_count++;
+ }
+ }
+ glEnd();
+
+/* /\* draw elevator *\/ */
+/* glBindTexture(GL_TEXTURE_2D, brushedtexture); */
+
+/* glBegin(GL_QUADS); */
+
+/* glNormal3f(0.0, 1.0, 0.0); */
+
+/* if(pastfirst) { */
+/* /\* source *\/ */
+/* glTexCoord2f(0.0, 0.0); */
+/* glVertex3f(0.5, 0.0, BOARDSIZE - 0.5 + 0.2); */
+/* glTexCoord2f(1.0, 0.0); */
+/* glVertex3f(1.5, 0.0, BOARDSIZE - 0.5 + 0.2); */
+/* glTexCoord2f(1.0, 1.5); */
+/* glVertex3f(1.5, 0.0, BOARDSIZE + 1.0 + 0.2); */
+/* glTexCoord2f(0.0, 1.5); */
+/* glVertex3f(0.5, 0.0, BOARDSIZE + 1.0 + 0.2); */
+/* mi->polygon_count++; */
+/* } */
+
+/* /\* destination *\/ */
+/* glTexCoord2f(0.0, 0.0); */
+/* glVertex3f(BOARDSIZE - 2.5, elevator, -2.0 - 0.2); */
+/* glTexCoord2f(1.0, 0.0); */
+/* glVertex3f(BOARDSIZE - 1.5, elevator, -2.0 - 0.2); */
+/* glTexCoord2f(1.0, 1.5); */
+/* glVertex3f(BOARDSIZE - 1.5, elevator, -0.5 - 0.2); */
+/* glTexCoord2f(0.0, 1.5); */
+/* glVertex3f(BOARDSIZE - 2.5, elevator, -0.5 - 0.2); */
+/* mi->polygon_count++; */
+
+/* glEnd(); */
+
+/* for(i = 0; i < BOARDSIZE; ++i) */
+/* for(j = 0; j < BOARDSIZE; ++j) { */
+/* if(board[j][i]) { */
+
+/* /\* draw brushed boxtop *\/ */
+/* glNormal3f(0.0, 1.0, 0.0); */
+/* glTexCoord2f(0.0 + stf, 0.0 + stf); */
+/* glVertex3f(i-0.5 + stf, h+0.001, j+0.5 - stf); */
+/* glTexCoord2f(1.0 + stf, 0.0 + stf); */
+/* glVertex3f(i+0.5 - stf, h+0.001, j+0.5 - stf); */
+/* glTexCoord2f(1.0 + stf, 1.0 + stf); */
+/* glVertex3f(i+0.5 - stf, h+0.001, j-0.5 + stf); */
+/* glTexCoord2f(0.0 + stf, 1.0 + stf); */
+/* glVertex3f(i-0.5 + stf, h+0.001, j-0.5 + stf); */
+/* mi->polygon_count++; */
+/* } */
+/* } */
+
+/* glEnd(); */
+}
+
+static void build_board(antmazestruct *mp, int b)
+{
+ int i, j;
+
+ for(i = 0; i < BOARDSIZE; ++i)
+ for(j = 0; j < BOARDSIZE; ++j)
+ mp->board[b][i][j] = 1;
+
+/* for(i = 0; i < BOARDSIZE; ++i) { */
+/* board[0][i] = 1; */
+/* board[i][0] = 1; */
+/* board[BOARDSIZE-1][BOARDSIZE-i] = 1; */
+/* board[BOARDSIZE-i][BOARDSIZE-1] = 1; */
+/* } */
+
+/* board[0][BOARDSIZE-2] = 0; */
+/* board[BOARDSIZE-1][1] = 0; */
+
+
+ mp->board[b][BOARDSIZE-1][1] = 0;
+ mp->board[b][0][BOARDSIZE-2] = 0;
+
+ /* build the ant paths */
+ if(mp->currentboard == b) {
+ for(i = 0; i < ANTCOUNT; ++i) {
+ int sx = BOARDSIZE-2;
+ int sy = 1;
+
+ for(j = 0; ; ++j) {
+ mp->board[b][sx][sy] = 0;
+ mp->antpath[i][j][0] = sy - 5.0;
+ mp->antpath[i][j][1] = sx - 5.0;
+
+ if(random()%2) {
+ if(sx > 1)
+ sx -= 1;
+ else if(sy < BOARDSIZE-2)
+ sy += 1;
+ else
+ break;
+ }
+ else {
+ if(sy < BOARDSIZE-2)
+ sy += 1;
+ else if(sx > 1)
+ sx -= 1;
+ else
+ break;
+ }
+ }
+
+ ++j;
+ mp->antpath[i][j][0] = BOARDSIZE-7.0;
+ mp->antpath[i][j][1] = -7.0;
+ mp->antpathlength[i] = j;
+ }
+ }
+
+/* for(i = 0; i < 20; ++i) { */
+/* int x = 1 + random()%(BOARDSIZE-2); */
+/* int y = 1 + random()%(BOARDSIZE-2); */
+/* board[x][y] = 1; */
+/* } */
+}
+
+/* compute nearness */
+static int near(double a[2], double b[2])
+{
+ return fabs(a[0] - b[0]) < 0.5 && fabs(a[1] - b[1]) < 0.5;
+}
+
+static double sign(double d)
+{
+ return d < 0.0 ? -1.0 : 1.0;
+}
+
+static double min(double a, double b)
+{
+ return a < b ? a : b;
+}
+
+/* draw method for ant */
+static Bool draw_ant(ModeInfo *mi, antmazestruct *mp,
+ const float *Material, int mono, int shadow,
+ float ant_step, Bool (*sphere)(float), Bool (*cone)(float))
+{
+
+ float cos1 = cos(mp->ant_step);
+ float cos2 = cos(mp->ant_step + 2 * Pi / 3);
+ float cos3 = cos(mp->ant_step + 4 * Pi / 3);
+ float sin1 = sin(mp->ant_step);
+ float sin2 = sin(mp->ant_step + 2 * Pi / 3);
+ float sin3 = sin(mp->ant_step + 4 * Pi / 3);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mono ? MaterialGray5 : Material);
+
+/* glEnable(GL_CULL_FACE); */
+
+ glPushMatrix();
+ glScalef(1, 1.3, 1);
+ if(!((*sphere)(0.18)))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glTranslatef(0.00, 0.30, 0.00);
+ if(!((*sphere)(0.2)))
+ return False;
+
+ glTranslatef(-0.05, 0.17, 0.05);
+ glRotatef(-90, 1, 0, 0);
+ glRotatef(-25, 0, 1, 0);
+ if(!((*cone)(0.05)))
+ return False;
+ glTranslatef(0.00, 0.10, 0.00);
+ if(!((*cone)(0.05)))
+ return False;
+ glRotatef(25, 0, 1, 0);
+ glRotatef(90, 1, 0, 0);
+
+ glScalef(1, 1.3, 1);
+ glTranslatef(0.15, -0.65, 0.05);
+ if(!((*sphere)(0.25)))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glPopMatrix();
+
+/* glDisable(GL_CULL_FACE); */
+
+ glDisable(GL_LIGHTING);
+
+ /* ANTENNAS */
+ glBegin(GL_LINES);
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, 0.40);
+ mi->polygon_count++;
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, -0.40);
+ mi->polygon_count++;
+ glEnd();
+
+ if(!shadow) {
+ glBegin(GL_POINTS);
+ glColor3fv(mono ? MaterialGray6 : MaterialRed);
+ glVertex3f(0.40, 0.70, 0.40);
+ mi->polygon_count++;
+ glVertex3f(0.40, 0.70, -0.40);
+ mi->polygon_count++;
+ glEnd();
+ }
+
+ /* LEFT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos1, 0.15, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* LEFT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.00, 0.18);
+ glVertex3f(0.35 + 0.05 * cos2, 0.00, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* LEFT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, -0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos3, -0.15, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin1, 0.15, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.00, -0.18);
+ glVertex3f(0.35 - 0.05 * sin2, 0.00, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, -0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin3, -0.15, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ if(!shadow) {
+ glBegin(GL_POINTS);
+ glColor3fv(mono ? MaterialGray8 : MaterialGray35);
+ glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+ glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+ glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+ glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+ glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+ glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+ mi->polygon_count += 6;
+ glEnd();
+ }
+
+ glEnable(GL_LIGHTING);
+
+ return True;
+}
+
+static Bool draw_antmaze_strip(ModeInfo * mi)
+{
+ antmazestruct *mp = &antmaze[MI_SCREEN(mi)];
+ int i;
+ int mono = MI_IS_MONO(mi);
+
+/* glMatrixMode(GL_MODELVIEW); */
+/* glLoadIdentity(); */
+/* glPushMatrix(); */
+
+ glEnable(GL_LIGHTING);
+/* glDisable(GL_BLEND); */
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+
+ /* set light */
+/* double l1 = 1.0 - (elevator < 1.0 ? elevator : 2.0 - elevator); */
+/* GLfloat df[4] = {0.8*l1, 0.8*l1, 0.8*l1, 1.0}; */
+/* glLightfv(GL_LIGHT0, GL_DIFFUSE, df); */
+/* glLightfv(GL_LIGHT1, GL_DIFFUSE, df); */
+
+ /* draw board */
+ if(mp->elevator < 1.0) {
+ glEnable(GL_TEXTURE_2D);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray6);
+ glTranslatef(-(BOARDSIZE-1)/2.0, 0.0, -(BOARDSIZE-1)/2.0);
+ draw_board(mi, mp);
+ glTranslatef(BOARDSIZE/2.0, 0.0, BOARDSIZE/2.0);
+ glDisable(GL_TEXTURE_2D);
+ }
+
+ mp->introduced--;
+
+ glTranslatef(0.0, -0.1, 0.0);
+
+ for(i = 0; i < ANTCOUNT; ++i) {
+
+/* glLightfv(GL_LIGHT0, GL_DIFFUSE, df); */
+/* glLightfv(GL_LIGHT1, GL_DIFFUSE, df); */
+
+ if(!mp->anton[i]) { continue; }
+
+ /* determine location, move to goal */
+ glPushMatrix();
+ glTranslatef(0.0, 0.01, 0.0);
+ glTranslatef(mp->antposition[i][0], mp->antposition[i][2], mp->antposition[i][1]);
+/* glScalef(1.0, 0.01, 1.0); */
+ glScalef(0.6, 0.01, 0.6);
+ glRotatef(180.0 + mp->antdirection[i]*180.0/PI, 0.0, 1.0, 0.0);
+ glRotatef(90.0, 0.0, 0.0, 1.0);
+ glDisable(GL_LIGHTING);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glColor4fv(MaterialGrayB);
+
+ glScalef(mp->antsize[i], mp->antsize[i], mp->antsize[i]);
+
+ /* slow down first ant */
+ if(i == 0 && mp->part[i] == mp->antpathlength[i])
+ draw_ant(mi, mp, MaterialGrayB, mono, 1, mp->first_ant_step, mySphere, myCone);
+ else
+ draw_ant(mi, mp, MaterialGrayB, mono, 1, mp->ant_step, mySphere, myCone);
+
+ glPopMatrix();
+
+ glDisable(GL_BLEND);
+ glEnable(GL_LIGHTING);
+
+ glPushMatrix();
+/* glTranslatef(0.0, 0.18, 0.0); */
+ glTranslatef(0.0, 0.12, 0.0);
+ glTranslatef(mp->antposition[i][0], mp->antposition[i][2], mp->antposition[i][1]);
+ glRotatef(180.0 + mp->antdirection[i]*180.0/PI, 0.0, 1.0, 0.0);
+ glRotatef(90.0, 0.0, 0.0, 1.0);
+ glScalef(0.6, 0.6, 0.6);
+
+ glScalef(mp->antsize[i], mp->antsize[i], mp->antsize[i]);
+
+/* glEnable(GL_TEXTURE_2D); */
+/* glBindTexture(GL_TEXTURE_2D, brushedtexture); */
+
+/* glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialRed); */
+
+ /* slow down first ant */
+ if(i == 0 && mp->part[i] == mp->antpathlength[i] && mp->elevator > 0.0) {
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ draw_ant(mi, mp, antmaterial[i], mono, 1, mp->first_ant_step, mySphere, myCone);
+ }
+ else {
+/* glLightfv(GL_LIGHT0, GL_DIFFUSE, df); */
+/* glLightfv(GL_LIGHT1, GL_DIFFUSE, df); */
+
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, mp->brushedtexture);
+ draw_ant(mi, mp, antmaterial[i], mono, 1, mp->ant_step, mySphereTex, myCone);
+ glDisable(GL_TEXTURE_2D);
+ }
+
+
+/* draw_ant(mi, antmaterial[i], mono, 0, ant_step, mySphereTex, myCone); */
+/* glDisable(GL_TEXTURE_2D); */
+ glPopMatrix();
+ }
+
+/* glPopMatrix(); */
+
+/* /\* now draw overlay *\/ */
+/* glDisable(GL_LIGHTING); */
+/* glDisable(GL_BLEND); */
+
+/* /\* go to ortho mode *\/ */
+/* glMatrixMode(GL_PROJECTION); */
+/* glPushMatrix(); */
+/* glLoadIdentity(); */
+/* glOrtho(-4.0, 4.0, -3.0, 3.0, -100.0, 100.0); */
+
+/* /\* translate to corner *\/ */
+/* glTranslatef(4.0-1.2, 3.0-1.2, 0.0); */
+
+/* glDisable(GL_LIGHTING); */
+/* glEnable(GL_BLEND); */
+
+/* /\* draw the 2d board *\/ */
+/* glBegin(GL_QUADS); */
+/* { */
+/* int i, j; */
+/* double sz = 1.0; */
+/* for(i = 0; i < BOARDSIZE; ++i) */
+/* for(j = 0; j < BOARDSIZE; ++j) { */
+/* int par = board[i][j]; */
+/* glColor4f(par ? 0.4 : 0.6, */
+/* par ? 0.4 : 0.6, */
+/* par ? 0.4 : 0.6, */
+/* 0.5); */
+/* glNormal3f(0.0, 0.0, 1.0); */
+/* glVertex3f((sz*(i+1))/BOARDSIZE, (sz*(j+1))/BOARDSIZE, 0.0); */
+/* glVertex3f((sz*i)/BOARDSIZE, (sz*(j+1))/BOARDSIZE, 0.0); */
+/* glVertex3f((sz*i)/BOARDSIZE, (sz*j)/BOARDSIZE, 0.0); */
+/* glVertex3f((sz*(i+1))/BOARDSIZE, (sz*j)/BOARDSIZE, 0.0); */
+/* mi->polygon_count++; */
+/* } */
+/* } */
+/* glEnd(); */
+
+/* glPopMatrix(); */
+
+
+ /* but the step size is the same! */
+ mp->ant_step += 0.18;
+/* if(ant_step > 2*Pi) { */
+/* ant_step = 0.0; */
+/* } */
+
+ if(mp->ant_step > 5*Pi)
+ mp->started = 1;
+
+ mp->ant_position += 1;
+ return True;
+}
+#undef AntmazeDivisions
+#undef AntmazeTransversals
+
+ENTRYPOINT void reshape_antmaze(ModeInfo * mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int size = (width / 512) + 1;
+ antmazestruct *mp = &antmaze[MI_SCREEN(mi)];
+
+ glViewport(0, 0, mp->WindW = (GLint) width, mp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ gluPerspective(45, 1/h, 1, 25.0);
+
+ glMatrixMode(GL_MODELVIEW);
+/* glLineWidth(3.0); */
+ glLineWidth(size);
+ glPointSize(size);
+}
+
+static void update_ants(antmazestruct *mp)
+{
+ int i;
+ GLfloat df[4];
+ df[0] = df[1] = df[2] = 0.8*mp->fadeout;
+ df[3] = 1.0;
+
+ /* fade out */
+ if(mp->fadeoutspeed < -0.00001) {
+
+ if(mp->fadeout <= 0.0) {
+ /* switch boards: rebuild old board, increment current */
+ mp->currentboard = (mp->currentboard+1)%BOARDCOUNT;
+ build_board(mp, mp->currentboard);
+ mp->fadeoutspeed = 0.02;
+ }
+
+ mp->fadeout += mp->fadeoutspeed;
+
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, df);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, df);
+ }
+
+ /* fade in */
+ if(mp->fadeoutspeed > 0.0001) {
+ mp->fadeout += mp->fadeoutspeed;
+ if(mp->fadeout >= 1.0) {
+ mp->fadeout = 1.0;
+ mp->fadeoutspeed = 0.0;
+ mp->entroducing = 12;
+ }
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, df);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, df);
+ }
+
+ for(i = 0; i < ANTCOUNT; ++i) {
+
+ if(!mp->anton[i] && mp->elevator < 1.0) {
+
+ /* turn on ant */
+ if(mp->entroducing > 0 && mp->introduced <= 0 && random()%100 == 0) {
+ mp->anton[i] = 1;
+ mp->part[i] = 0;
+ mp->antsize[i] = 0.0;
+ mp->antposition[i][0] = -4.0;
+ mp->antposition[i][1] = 5.0;
+ mp->antdirection[i] = PI/2.0;
+ mp->bposition[i][0] = 0;
+ mp->bposition[i][1] = 8;
+ mp->introduced = 300;
+ mp->entroducing--;
+ }
+
+ continue;
+ }
+
+ if(mp->part[i] == 0 && mp->antsize[i] < 1.0) {
+ mp->antsize[i] += 0.02;
+ continue;
+ }
+
+ if(mp->part[i] > mp->antpathlength[i] && mp->antsize[i] > 0.0) {
+ mp->antsize[i] -= 0.02;
+ if(mp->antvelocity[i] > 0.0) {
+ mp->antvelocity[i] -= 0.02;
+ }
+ else { mp->antvelocity[i] = 0.0; }
+
+ continue;
+ }
+
+ if(mp->part[i] > mp->antpathlength[i] && mp->antsize[i] <= 0.0) {
+ mp->antvelocity[i] = 0.02;
+
+ /* if(i != 0) { */
+ antmaterial[i] = materials[random()%MATERIALS];
+ /* } */
+
+ mp->antdirection[i] = PI/2.0;
+ mp->bposition[i][0] = 0;
+ mp->bposition[i][1] = 8;
+ mp->part[i] = 0;
+
+ mp->antsize[i] = 0.0;
+
+ mp->anton[i] = 0;
+
+ mp->antposition[i][0] = -4.0;
+ mp->antposition[i][1] = 5.0;
+
+ /* /\* reset camera *\/ */
+ /* if(i == focus) { */
+ /* started = 0; */
+ /* ant_step = 0.0; */
+ /* } */
+
+ /* check for the end */
+ if(mp->entroducing <= 0) {
+ int ao = 0, z = 0;
+ for(z = 0; z < ANTCOUNT; ++z) {
+ if(mp->anton[z]) { ao = 1; break; }
+ }
+
+ if(ao == 0) {
+ mp->fadeoutspeed = -0.02;
+ }
+ }
+
+ }
+
+ /* near goal, bend path towards next step */
+ if(near(mp->antposition[i], mp->antpath[i][mp->part[i]])) {
+
+ ++mp->part[i];
+
+/* /\* special first ant *\/ */
+/* if(i == 0 && part[i] > antpathlength[i]) { */
+/* if(fir) */
+/* first_ant_step = ant_step; */
+
+/* antvelocity[i] = 0.0; */
+/* /\* antposition[i][2] += 0.025; *\/ */
+/* elevator += 0.025; */
+
+/* /\* set light *\/ */
+/* double l1 = 1.0 - (elevator < 1.0 ? elevator : 2.0 - elevator); */
+/* GLfloat df[4] = {0.8*l1, 0.8*l1, 0.8*l1, 1.0}; */
+/* glLightfv(GL_LIGHT0, GL_DIFFUSE, df); */
+/* glLightfv(GL_LIGHT1, GL_DIFFUSE, df); */
+
+/* /\* draw next board *\/ */
+/* if(elevator > 1.0) { */
+
+/* if(makenew == 1) { */
+/* int re; */
+
+/* /\* switch boards: rebuild old board, increment current *\/ */
+/* currentboard = (currentboard+1)%BOARDCOUNT; */
+/* build_board(currentboard); */
+
+/* for(re = 1; re < ANTCOUNT; ++re) { */
+/* anton[re] = 0; */
+/* antmaterial[re] = materials[random()%MATERIALS]; */
+/* } */
+
+/* makenew = 0; */
+
+/* } */
+
+/* /\* draw the other board *\/ */
+/* glEnable(GL_TEXTURE_2D); */
+/* glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray6); */
+
+/* glPushMatrix(); */
+/* glTranslatef(-(-(BOARDSIZE-3.5)+(BOARDSIZE-1)/2.0), 0.0, */
+/* -(2.4+BOARDSIZE+(BOARDSIZE-1)/2.0)); */
+/* draw_board(mi, mp); */
+/* glPopMatrix(); */
+/* glDisable(GL_TEXTURE_2D); */
+/* } */
+/* /\* reset *\/ */
+/* if(elevator > 2.0) { */
+/* antposition[i][0] = -4.0;/\*-= -(-(BOARDSIZE-3.5)+(BOARDSIZE-1)/2.0);*\//\*= -4.0;*\/ */
+/* antposition[i][1] = 5.5;/\*-(2.4+BOARDSIZE+(BOARDSIZE-1)/2.0);*\/ */
+/* /\* antposition[i][2] = 0.15; *\/ */
+/* antdirection[i] = PI/2.0; */
+/* bposition[i][0] = 0; */
+/* bposition[i][1] = 8; */
+/* part[i] = 0; */
+/* antvelocity[i] = 0.02; */
+/* fir = 0; */
+/* antmaterial[i] = MaterialRed; */
+
+/* makenew = 1; */
+
+/* elevator = 0.0; */
+/* introduced = 200; */
+/* } */
+/* else { */
+/* part[i]--; */
+/* } */
+/* } */
+
+ }
+
+ /* move toward goal, correct ant direction if required */
+ else {
+
+ /* difference */
+ double dx = mp->antpath[i][mp->part[i]][0] - mp->antposition[i][0];
+ double dz = - mp->antpath[i][mp->part[i]][1] + mp->antposition[i][1];
+ double theta, ideal;
+
+ if(dz > EPSILON)
+ theta = atan(dz/dx);
+ else
+ theta = dx > EPSILON ? 0.0 : PI;
+
+ ideal = theta - mp->antdirection[i];
+ if(ideal < -Pi/2.0)
+ ideal += Pi;
+
+ /* compute correction */
+ {
+ double dt = sign(ideal) * min(fabs(ideal), PI/90.0);
+ mp->antdirection[i] += dt;
+ if(mp->antdirection[i] > 2.0*PI)
+ mp->antdirection[i] = 0.0;
+ }
+ }
+
+ mp->antposition[i][0] += mp->antvelocity[i] * cos(mp->antdirection[i]);
+ mp->antposition[i][1] += mp->antvelocity[i] * sin(-mp->antdirection[i]);
+ }
+}
+
+static void pinit(antmazestruct *mp)
+{
+ glClearDepth(1.0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+
+ glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.05);
+ glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.001);
+ glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.1);
+
+ glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.05);
+ glLightf(GL_LIGHT1, GL_QUADRATIC_ATTENUATION, 0.001);
+ glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION, 0.1);
+
+
+/* glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); */
+/* glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); */
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_NORMALIZE);
+ glFrontFace(GL_CCW);
+ glCullFace(GL_BACK);
+
+ /* antmaze */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glDisable(GL_TEXTURE_2D);
+
+ /* setup textures */
+ makeCheckImage(mp);
+ makeBrushedImage(mp);
+
+ build_board(mp, 0);
+ build_board(mp, 1);
+
+/* makeCheckImage(); */
+/* glPixelStorei(GL_UNPACK_ALIGNMENT, 1); */
+/* glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth, */
+/* checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, checkers); */
+/* glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); */
+/* glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); */
+
+/* glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); */
+/* glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); */
+/* glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); */
+ glEnable(GL_TEXTURE_2D);
+
+/* glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess); */
+/* glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular); */
+}
+
+#define MAX_MAGNIFICATION 10
+#define max(a, b) a < b ? b : a
+#define min(a, b) a < b ? a : b
+
+ENTRYPOINT Bool antmaze_handle_event (ModeInfo *mi, XEvent *event)
+{
+ antmazestruct *mp = &antmaze[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, mp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &mp->button_down_p))
+ return True;
+
+ if (event->xany.type == ButtonPress)
+ {
+ switch(event->xbutton.button) {
+
+ case Button3:
+ mp->focus = (mp->focus + 1) % ANTCOUNT;
+ return True;
+
+ case Button4:
+ mp->mag = max(mp->mag-1, 1);
+ return True;
+
+ case Button5:
+ mp->mag = min(mp->mag+1, MAX_MAGNIFICATION);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+ENTRYPOINT void init_antmaze(ModeInfo * mi)
+{
+ double rot_speed = 0.3;
+ int i;
+
+ antmazestruct *mp;
+
+ MI_INIT(mi, antmaze);
+ mp = &antmaze[MI_SCREEN(mi)];
+ mp->step = NRAND(90);
+ mp->ant_position = NRAND(90);
+
+
+ mp->antdirection[0] = PI/2.0;
+ mp->antdirection[1] = PI/2.0;
+ mp->antdirection[2] = 0;
+ mp->antdirection[3] = PI/2.0;
+ mp->antdirection[4] = PI/2.0;
+
+ mp->antposition[0][0] = -4.0;
+ mp->antposition[0][1] = 5.0;
+ mp->antposition[0][1] = 0.15;
+
+ mp->antposition[1][0] = -4.0;
+ mp->antposition[1][1] = 3.0;
+ mp->antposition[1][1] = 0.15;
+
+ mp->antposition[2][0] = -1.0;
+ mp->antposition[2][1] = -2.0;
+ mp->antposition[2][1] = 0.15;
+
+ mp->antposition[3][0] = -3.9;
+ mp->antposition[3][1] = 6.0;
+ mp->antposition[3][1] = 0.15;
+
+ mp->antposition[4][0] = 2.0;
+ mp->antposition[4][1] = -2.0;
+ mp->antposition[4][1] = 0.15;
+
+
+
+ for (i = 0; i < ANTCOUNT; i++) {
+ mp->antvelocity[i] = 0.02;
+ mp->antsize[i] = 1.0;
+ mp->anton[i] = 0;
+ }
+
+ mp->bposition[0][0] = 0;
+ mp->bposition[0][1] = 8;
+
+ mp->bposition[1][0] = 9;
+ mp->bposition[1][1] = 1;
+
+ mp->bposition[2][0] = 1;
+ mp->bposition[2][1] = 1;
+
+ mp->bposition[3][0] = 4;
+ mp->bposition[3][1] = 8;
+
+ mp->bposition[4][0] = 2;
+ mp->bposition[4][1] = 1;
+
+ mp->part[0] = 0;
+ mp->part[1] = 1;
+ mp->part[2] = 5;
+ mp->part[3] = 1;
+ mp->part[4] = 3;
+
+ mp->introduced = 0;
+ mp->entroducing = 12;
+ mp->fadeout = 1.0;
+ mp->mag = 4.0;
+
+ mp->rot = make_rotator (rot_speed, rot_speed, rot_speed, 1, 0, True);
+ mp->trackball = gltrackball_init (False);
+
+ if ((mp->glx_context = init_GL(mi)) != NULL) {
+ reshape_antmaze(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ pinit(mp);
+ }
+ else
+ MI_CLEARWINDOW(mi);
+}
+
+static void
+device_rotate(ModeInfo *mi)
+{
+#if 0
+ GLfloat rot = current_device_rotation();
+ glRotatef(rot, 0, 0, 1);
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ glScalef (1/s, s, 1);
+ }
+#endif
+}
+
+
+ENTRYPOINT void draw_antmaze(ModeInfo * mi)
+{
+ double h = (GLfloat) MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+
+ antmazestruct *mp;
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if(!antmaze)
+ return;
+ mp = &antmaze[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+
+ if(!mp->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+ glXMakeCurrent(display, window, *(mp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* first panel */
+ glPushMatrix();
+/* h = ((GLfloat) MI_HEIGHT(mi)/2) / (3*(GLfloat)MI_WIDTH(mi)/4); */
+ glViewport(MI_WIDTH(mi)/32, MI_HEIGHT(mi)/8, (9*MI_WIDTH(mi))/16, 3*MI_HEIGHT(mi)/4);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+/* h = (3*MI_HEIGHT(mi)/4) / (3*MI_WIDTH(mi)/4); */
+ gluPerspective(45, 1/h, 1, 25.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ device_rotate(mi);
+
+ glPushMatrix();
+
+ /* follow focused ant */
+ glTranslatef(0.0, 0.0, -mp->mag - 5.0);
+ glRotatef(20.0+5.0*sin(mp->ant_step/40.0), 1.0, 0.0, 0.0);
+/* glTranslatef(0.0, */
+/* started ? -mag : -8.0 + 4.0*fabs(sin(ant_step/10.0)), */
+/* started ? -mag : -8.0 + 4.0*fabs(sin(ant_step/10.0))); */
+
+ gltrackball_rotate(mp->trackball);
+
+ glRotatef(mp->ant_step*0.6, 0.0, 1.0, 0.0);
+
+/* glRotatef(90.0, 0.0, 0.0, 1.0); */
+
+/* glTranslatef(-antposition[0][0]-0.5, 0.0, -antposition[focus][1]); */
+ /*-elevator*/
+
+ /* sync */
+ if(!draw_antmaze_strip(mi)) {
+ MI_ABORT(mi);
+ return;
+ }
+
+ glPopMatrix();
+ glPopMatrix();
+
+ h = (GLfloat) (3*MI_HEIGHT(mi)/8) / (GLfloat) (MI_WIDTH(mi)/2);
+
+ /* draw overhead */
+ glPushMatrix();
+ glViewport((17*MI_WIDTH(mi))/32, MI_HEIGHT(mi)/2, MI_WIDTH(mi)/2, 3*MI_HEIGHT(mi)/8);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ device_rotate(mi);
+ gluPerspective(45, 1/h, 1, 25.0);
+ glMatrixMode(GL_MODELVIEW);
+
+ /* twist scene */
+ glTranslatef(0.0, 0.0, -16.0);
+ glRotatef(60.0, 1.0, 0.0, 0.0);
+ glRotatef(-15.0 + mp->ant_step/10.0, 0.0, 1.0, 0.0);
+ gltrackball_rotate(mp->trackball);
+
+ /* sync */
+ if(!draw_antmaze_strip(mi)) {
+ MI_ABORT(mi);
+ return;
+ }
+
+ glPopMatrix();
+
+ /* draw ant display */
+ glPushMatrix();
+ glViewport((5*MI_WIDTH(mi))/8, MI_HEIGHT(mi)/8, (11*MI_WIDTH(mi))/32, 3*MI_HEIGHT(mi)/8);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ device_rotate(mi);
+ gluPerspective(45, 1/h, 1, 25.0);
+ glMatrixMode(GL_MODELVIEW);
+
+ /* twist scene */
+ glTranslatef(0.0, 0.0, -1.6);
+ glRotatef(30.0, 1.0, 0.0, 0.0);
+ glRotatef(mp->ant_step, 0.0, 1.0, 0.0);
+ glRotatef(90.0, 0.0, 0.0, 1.0);
+
+/* /\* draw ant shadow *\/ */
+/* glPushMatrix(); */
+/* glScalef(1.0, 0.01, 1.0); */
+/* glRotatef(90.0, 0.0, 0.0, 1.0); */
+/* glRotatef(90.0, 0.0, 1.0, 0.0); */
+/* glDisable(GL_LIGHTING); */
+/* glColor4fv(MaterialGray6); */
+
+/* /\* slow down first ant *\/ */
+/* draw_ant(MaterialGrayB, 0, 1, first_ant_step, mySphere, myCone); */
+/* glPopMatrix(); */
+
+ /* draw ant body */
+ glEnable(GL_TEXTURE_2D);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glBindTexture(GL_TEXTURE_2D, mp->brushedtexture);
+ draw_ant(mi, mp, MaterialGray35, 0, 1, mp->ant_step/2.0, mySphereTex, myCone2);
+ glDisable(GL_TEXTURE_2D);
+
+ glPopMatrix();
+
+/* /\* draw overlay *\/ */
+/* glPushMatrix(); */
+
+/* /\* go to ortho mode *\/ */
+/* glViewport(MI_WIDTH(mi)/2, MI_HEIGHT(mi)/8, MI_WIDTH(mi)/2, 3*MI_HEIGHT(mi)/8); */
+
+/* glMatrixMode(GL_PROJECTION); */
+/* glLoadIdentity(); */
+
+/* glPushMatrix (); */
+/* glOrtho(-4.0, 4.0, -3.0, 3.0, -100.0, 100.0); */
+
+/* glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGrayB); */
+/* glColor4fv(MaterialGrayB); */
+
+/* glDisable(GL_LIGHTING); */
+/* glEnable(GL_BLEND); */
+
+/* glBegin(GL_QUADS); */
+/* glNormal3f(0.0, 0.0, 1.0); */
+/* glVertex3f(4.0, 3.0, 0.0); */
+/* glVertex3f(2.0, 3.0, 0.0); */
+/* glVertex3f(2.0, -3.0, 0.0); */
+/* glVertex3f(4.0, -3.0, 0.0); */
+/* mi->polygon_count++; */
+/* glEnd(); */
+
+/* glEnable(GL_LIGHTING); */
+/* glDisable(GL_BLEND); */
+
+/* glPopMatrix(); */
+/* glPopMatrix(); */
+
+ if (MI_IS_FPS(mi)) {
+ glViewport(0, 0, MI_WIDTH(mi), MI_HEIGHT(mi));
+ do_fps (mi);
+ }
+ glFlush();
+
+ glXSwapBuffers(display, window);
+
+ update_ants(mp);
+
+ mp->step += 0.025;
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void change_antmaze(ModeInfo * mi)
+{
+ antmazestruct *mp = &antmaze[MI_SCREEN(mi)];
+
+ if (!mp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(mp->glx_context));
+ pinit();
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("AntMaze", antmaze)
+
+#endif
diff --git a/hacks/glx/antmaze.man b/hacks/glx/antmaze.man
new file mode 100644
index 0000000..4c4bec8
--- /dev/null
+++ b/hacks/glx/antmaze.man
@@ -0,0 +1,52 @@
+.TH XScreenSaver 1 "May 2005"
+.SH NAME
+antmaze \- ant maze walker
+.SH SYNOPSIS
+.B antmaze
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
+.SH DESCRIPTION
+The \fIantmaze\fP code displays ants finding their way through a maze.
+.SH OPTIONS
+.I antmaze
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 2005 by Blair Tennessy. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Blair Tennessy <tennessy@cs.ubc.ca>, 8-May-2005.
+
diff --git a/hacks/glx/ants.h b/hacks/glx/ants.h
new file mode 100644
index 0000000..d0bef7e
--- /dev/null
+++ b/hacks/glx/ants.h
@@ -0,0 +1,45 @@
+/* ants.h -- header file containing common ant parameters
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Copyright 2003 Blair Tennessy
+*/
+
+/* static const GLfloat MaterialRed[] = {0.6, 0.0, 0.0, 1.0}; */
+/*static const GLfloat MaterialPurple[] = {0.6, 0.2, 0.5, 1.0};*/
+/*static const GLfloat MaterialOrange[] = {1.0, 0.69, 0.00, 1.0};*/
+/*static const GLfloat MaterialGreen[] = {0.1, 0.5, 0.2, 0.2};*/
+/*static const GLfloat MaterialBlue[] = {0.4, 0.4, 0.8, 1.0};*/
+/*static const GLfloat MaterialCyan[] = {0.2, 0.5, 0.7, 1.0};*/
+/*static const GLfloat MaterialYellow[] = {0.7, 0.7, 0.0, 1.0};*/
+/* static const GLfloat MaterialMagenta[] = {0.6, 0.2, 0.5, 1.0}; */
+/*static const GLfloat MaterialWhite[] = {0.7, 0.7, 0.7, 1.0};*/
+static const GLfloat MaterialGray[] = {0.2, 0.2, 0.2, 1.0};
+static const GLfloat MaterialGrayB[] = {0.1, 0.1, 0.1, 0.5};
+/*static const GLfloat MaterialGray35[] = {0.30, 0.30, 0.30, 1.0};*/
+
+static const GLfloat MaterialGray5[] = {0.5, 0.5, 0.5, 1.0};
+static const GLfloat MaterialGray6[] = {0.6, 0.6, 0.6, 1.0};
+/* static const GLfloat MaterialGray8[] = {0.8, 0.8, 0.8, 1.0};*/
+
+typedef struct {
+
+ double position[3];
+ double goal[3];
+ double velocity;
+ double direction;
+ double step;
+
+ const GLfloat *material;
+
+} Ant;
diff --git a/hacks/glx/antspotlight.c b/hacks/glx/antspotlight.c
new file mode 100644
index 0000000..55bb80c
--- /dev/null
+++ b/hacks/glx/antspotlight.c
@@ -0,0 +1,799 @@
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Copyright 2003 Blair Tennessy
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*useSHM: True \n"
+
+# define free_antspotlight 0
+# define release_antspotlight 0
+#include "xlockmore.h"
+#else
+#include "xlock.h"
+#endif
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "sphere.h"
+#include "tube.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+ENTRYPOINT ModeSpecOpt antspotlight_opts = {
+ 0, NULL, 0, NULL, NULL
+};
+
+#ifdef USE_MODULES
+ModStruct antspotlight_description = {
+ "antspotlight", "init_antspotlight", "draw_antspotlight",
+ (char *) NULL, "draw_antspotlight", "change_antspotlight",
+ (char *) NULL, &antspotlight_opts, 1000, 1, 1, 1, 4, 1.0, "",
+ "draws an ant scoping the screen", 0, NULL
+};
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 0.4
+
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+#include "ants.h"
+#include "grab-ximage.h"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLfloat max_tx, max_ty;
+ int mono, wire, ticks;
+ GLuint screentexture;
+
+ Ant *ant;
+ double boardsize;
+ GLfloat spot_direction[3];
+ int mag;
+
+ Bool mipmap_p;
+ Bool waiting_for_image_p;
+
+} antspotlightstruct;
+
+static antspotlightstruct *antspotlight = (antspotlightstruct *) NULL;
+
+#define NUM_SCENES 2
+
+/* draw method for ant */
+static Bool draw_ant(ModeInfo *mi, antspotlightstruct *mp,
+ const GLfloat *Material, int mono, int shadow,
+ float ant_step, Bool (*sphere)(float), Bool (*cone)(float))
+{
+
+ float cos1 = cos(ant_step);
+ float cos2 = cos(ant_step + 2 * Pi / 3);
+ float cos3 = cos(ant_step + 4 * Pi / 3);
+ float sin1 = sin(ant_step);
+ float sin2 = sin(ant_step + 2 * Pi / 3);
+ float sin3 = sin(ant_step + 4 * Pi / 3);
+
+/* Apparently this is a performance killer on many systems...
+ glEnable(GL_POLYGON_SMOOTH);
+ */
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->mono ? MaterialGray5 : Material);
+ glEnable(GL_CULL_FACE);
+ glPushMatrix();
+ glScalef(1, 1.3, 1);
+ if(!((*sphere)(0.18)))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glTranslatef(0.00, 0.30, 0.00);
+ if(!((*sphere)(0.2)))
+ return False;
+
+ glTranslatef(-0.05, 0.17, 0.05);
+ glRotatef(-90, 1, 0, 0);
+ glRotatef(-25, 0, 1, 0);
+ if(!((*cone)(0.05)))
+ return False;
+ glTranslatef(0.00, 0.10, 0.00);
+ if(!((*cone)(0.05)))
+ return False;
+ glRotatef(25, 0, 1, 0);
+ glRotatef(90, 1, 0, 0);
+
+ glScalef(1, 1.3, 1);
+ glTranslatef(0.15, -0.65, 0.05);
+ if(!((*sphere)(0.25)))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glPopMatrix();
+ glDisable(GL_CULL_FACE);
+
+ glDisable(GL_LIGHTING);
+
+ /* ANTENNAS */
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glBegin(GL_LINES);
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, 0.40);
+ mi->polygon_count++;
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, -0.40);
+ mi->polygon_count++;
+ glEnd();
+
+ if(!shadow) {
+ glBegin(GL_POINTS);
+ glColor3fv(mp->mono ? MaterialGray6 : MaterialGray5);
+ glVertex3f(0.40, 0.70, 0.40);
+ mi->polygon_count++;
+ glVertex3f(0.40, 0.70, -0.40);
+ mi->polygon_count++;
+ glEnd();
+ }
+
+ /* LEFT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos1, 0.15, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* LEFT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.00, 0.18);
+ glVertex3f(0.35 + 0.05 * cos2, 0.00, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* LEFT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, -0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos3, -0.15, 0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin1, 0.15, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, 0.00, -0.18);
+ glVertex3f(0.35 - 0.05 * sin2, 0.00, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ /* RIGHT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ glColor3fv(mp->mono ? MaterialGray5 : Material);
+ glVertex3f(0.00, -0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin3, -0.15, -0.25);
+ mi->polygon_count++;
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+ mi->polygon_count++;
+ glEnd();
+
+ if(!shadow) {
+ glBegin(GL_POINTS);
+ glColor3fv(MaterialGray5);
+ glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+ glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+ glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+ glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+ glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+ glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+ mi->polygon_count += 6;
+ glEnd();
+ }
+
+ glEnable(GL_LIGHTING);
+
+ return True;
+}
+
+/* filled sphere */
+static Bool mySphere(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if((quadObj = gluNewQuadric()) == 0)
+ return False;
+
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluSphere(quadObj, radius, 16, 16);
+ gluDeleteQuadric(quadObj);
+#else
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (16, 16, False);
+ glPopMatrix();
+#endif
+ return True;
+}
+
+/* silhouette sphere */
+static Bool mySphere2(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_LINE);
+ gluSphere(quadObj, radius, 16, 8);
+ gluDeleteQuadric(quadObj);
+#else
+ /* #### no GLU_LINE */
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (16, 16, True);
+ glPopMatrix();
+#endif
+ return True;
+}
+
+/* no cone */
+static Bool myCone2(float radius) { return True; }
+
+static void draw_board(ModeInfo *mi, antspotlightstruct *mp)
+{
+ int i, j;
+ double cutoff = Pi/3.0;
+ double center[3];
+ double centertex[2];
+
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, mp->screentexture);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray6);
+
+ /* draw mesh */
+
+ /* center is roughly spotlight position */
+ center[0] = mp->ant->position[0];/* + cos(ant->direction); */
+ center[1] = 0.0;
+ center[2] = mp->ant->position[2];/* - 0.7*sin(ant->direction);*/
+
+ centertex[0] = (mp->boardsize/2.0+center[0]) * mp->max_tx / mp->boardsize;
+ centertex[1] = mp->max_ty - ((mp->boardsize/2.0+center[2]) * mp->max_ty / mp->boardsize);
+
+/* glPolygonMode(GL_FRONT, GL_LINE); */
+/* glDisable(GL_TEXTURE_2D); */
+
+ /*
+ the vertices determined here should correspond to the illuminated
+ board. ideally the code adapts vertex distribution to the
+ intensity and shape of the light.
+
+ i should be finding the intersection of the cone of light and
+ the board-plane.
+ */
+ for(i = -12; i < 12; ++i) {
+
+ double theta1, theta2;
+
+ glBegin(GL_TRIANGLE_STRIP);
+ glNormal3f(0.0, 1.0, 0.0);
+
+ glTexCoord2f(centertex[0], centertex[1]);
+ glVertex3f(center[0], 0.01, center[2]);
+
+ /* watch those constants */
+ theta1 = mp->ant->direction + i*(cutoff/8);
+ theta2 = mp->ant->direction + (i+1)*(cutoff/8);
+
+ for(j = 1; j <= 64; ++j) {
+ double point[3], tex[2];
+ /* double fj = pow(1.05, j) - 1.0;*/
+ double fj = j / 6.0;
+ point[0] = center[0] + fj*cos(theta1);
+ point[1] = 0.0;
+ point[2] = center[2] - fj*sin(theta1);
+
+ tex[0] = (mp->boardsize/2.0+point[0]) * mp->max_tx / mp->boardsize;
+ tex[1] = (mp->boardsize/2.0+point[2]) * mp->max_ty / mp->boardsize;
+
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f(point[0], point[1], point[2]);
+
+ point[0] = center[0] + fj*cos(theta2);
+ point[1] = 0.0;
+ point[2] = center[2] - fj*sin(theta2);
+
+ tex[0] = (mp->boardsize/2.0+point[0]) * mp->max_tx / mp->boardsize;
+ tex[1] = (mp->boardsize/2.0+point[2]) * mp->max_ty / mp->boardsize;
+
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f(point[0], point[1], point[2]);
+ mi->polygon_count++;
+ }
+
+ glEnd();
+ }
+
+ glDisable(GL_TEXTURE_2D);
+}
+
+/* return euclidean distance between two points */
+static double distance(double x[3], double y[3])
+{
+ double dx = x[0] - y[0];
+ double dz = x[2] - y[2];
+ return sqrt(dx*dx + dz*dz);
+}
+
+/* determine a new goal */
+static void find_goal(antspotlightstruct *mp)
+{
+ do {
+ mp->ant->goal[0] = random()%((int)(mp->boardsize+0.5)-2) - mp->boardsize/2.0 + 1.0;
+ mp->ant->goal[1] = 0.0;
+ mp->ant->goal[2] = random()%((int)(mp->boardsize+0.5)-2) - mp->boardsize/2.0 + 1.0;
+ }
+ while(distance(mp->ant->position, mp->ant->goal) < 2.0);
+}
+
+/* construct our ant */
+static void build_ant(antspotlightstruct *mp)
+{
+ mp->ant = (Ant *) malloc(sizeof (Ant));
+ mp->ant->position[0] = 0.0;
+ mp->ant->position[1] = 0.0;
+ mp->ant->position[2] = 0.0;
+ mp->ant->direction = 0.0;
+ mp->ant->velocity = 0.02;
+ mp->ant->material = MaterialGray5;
+ mp->ant->step = 0;
+ find_goal(mp);
+}
+
+#define EPSILON 0.01
+
+static double sign(double d)
+{
+ return d < 0.0 ? -1.0 : 1.0;
+}
+
+static double min(double a, double b)
+{
+ return a < b ? a : b;
+}
+
+/*
+static double max(double a, double b)
+{
+ return a > b ? a : b;
+}
+*/
+
+/* find a new goal and reset steps */
+static void reset_ant(antspotlightstruct *mp)
+{
+ find_goal(mp);
+}
+
+/* draw ant composed of skeleton and glass */
+static void show_ant(ModeInfo *mi, antspotlightstruct *mp)
+{
+
+ glPushMatrix();
+
+ /* move into position */
+ glTranslatef(mp->ant->position[0], 0.33, mp->ant->position[2]);
+ glRotatef(180.0 + mp->ant->direction*180.0/Pi, 0.0, 1.0, 0.0);
+ glRotatef(90.0, 0.0, 0.0, 1.0);
+
+ /* draw skeleton */
+ draw_ant(mi, mp, mp->ant->material, mp->mono, 0, mp->ant->step, mySphere2, myCone2);
+
+ /* draw glass */
+ if(!mp->wire && !mp->mono) {
+ glEnable(GL_BLEND);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGrayB);
+ glColor4fv(MaterialGrayB);
+ draw_ant(mi, mp, MaterialGrayB, mp->mono, 0, mp->ant->step, mySphere, myCone2);
+ glDisable(GL_BLEND);
+ }
+
+ glPopMatrix();
+}
+
+static void draw_antspotlight_strip(ModeInfo *mi)
+{
+ antspotlightstruct *mp = &antspotlight[MI_SCREEN(mi)];
+
+ /* compute spotlight position and direction */
+ GLfloat light1_position[4];
+
+ light1_position[0] = mp->ant->position[0] + 0.7*cos(mp->ant->direction);
+ light1_position[1] = 0.5;
+ light1_position[2] = mp->ant->position[2] - 0.7*sin(mp->ant->direction);
+ light1_position[3] = 1.0;
+
+ mp->spot_direction[0] = cos(mp->ant->direction);
+ mp->spot_direction[1] = -0.5;
+ mp->spot_direction[2] = -sin(mp->ant->direction);
+
+ glLightfv(GL_LIGHT2, GL_POSITION, light1_position);
+ glLightfv(GL_LIGHT2, GL_SPOT_DIRECTION, mp->spot_direction);
+
+ glEnable(GL_LIGHT2);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_LIGHT1);
+
+ /* draw board */
+ if(mp->wire)
+ ;
+ else
+ draw_board(mi, mp);
+
+ glDisable(GL_LIGHT2);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+
+ /* now modify ant */
+ show_ant(mi, mp);
+
+ /* near goal, bend path towards next step */
+ if(distance(mp->ant->position, mp->ant->goal) < 0.2) {
+ reset_ant(mp);
+ }
+
+ if(random()%100 == 0) {
+ reset_ant(mp);
+ }
+
+
+ /* move toward goal, correct ant direction if required */
+ else {
+
+ /* difference */
+ double dx = mp->ant->goal[0] - mp->ant->position[0];
+ double dz = -(mp->ant->goal[2] - mp->ant->position[2]);
+ double theta, ideal, dt;
+
+ if(fabs(dx) > EPSILON) {
+ theta = atan(dz/dx);
+ if(dx < 0.0)
+ theta += Pi;
+ }
+ else
+ theta = dz > 0.0 ? (1.0/2.0)*Pi : (3.0/2.0)*Pi;
+
+ if(theta < 0.0)
+ theta += 2*Pi;
+
+ ideal = theta - mp->ant->direction;
+ if(ideal > Pi)
+ ideal -= 2*Pi;
+
+ /* compute correction */
+ dt = sign(ideal) * min(fabs(ideal), Pi/100.0);
+ mp->ant->direction += dt;
+ while(mp->ant->direction < 0.0)
+ mp->ant->direction += 2*Pi;
+ while(mp->ant->direction > 2*Pi)
+ mp->ant->direction -= 2*Pi;
+ }
+
+ mp->ant->position[0] += mp->ant->velocity * cos(mp->ant->direction);
+ mp->ant->position[2] += mp->ant->velocity * sin(-mp->ant->direction);
+ mp->ant->step += 10*mp->ant->velocity;
+ while(mp->ant->step > 2*Pi)
+ mp->ant->step -= 2*Pi;
+}
+
+ENTRYPOINT void reshape_antspotlight(ModeInfo * mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+ int size = 2;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ gluPerspective(45, 1/h, 1.0, 25.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLineWidth(size);
+ glPointSize(size);
+}
+
+/* lighting variables */
+static const GLfloat front_shininess[] = {60.0};
+static const GLfloat front_specular[] = {0.8, 0.8, 0.8, 1.0};
+static const GLfloat ambient[] = {0.4, 0.4, 0.4, 1.0};
+/*static const GLfloat ambient2[] = {0.0, 0.0, 0.0, 0.0};*/
+static const GLfloat diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const GLfloat position0[] = {1.0, 5.0, 1.0, 0.0};
+static const GLfloat position1[] = {-1.0, -5.0, 1.0, 0.0};
+/*static const GLfloat lmodel_ambient[] = {0.8, 0.8, 0.8, 1.0};*/
+static const GLfloat lmodel_twoside[] = {GL_TRUE};
+static const GLfloat spotlight_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
+static const GLfloat spotlight_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
+
+static void pinit(void)
+{
+ glClearDepth(1.0);
+
+ /* setup twoside lighting */
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, spotlight_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+
+ /* setup spotlight */
+ glLightfv(GL_LIGHT2, GL_AMBIENT, spotlight_ambient);
+ glLightfv(GL_LIGHT2, GL_DIFFUSE, spotlight_diffuse);
+ glLightf(GL_LIGHT2, GL_CONSTANT_ATTENUATION, 0.1);
+ glLightf(GL_LIGHT2, GL_LINEAR_ATTENUATION, 0.05);
+ glLightf(GL_LIGHT2, GL_QUADRATIC_ATTENUATION, 0.0);
+ glLightf(GL_LIGHT2, GL_SPOT_CUTOFF, 60.0);
+ glLightf(GL_LIGHT2, GL_SPOT_EXPONENT, 3.0);
+
+ glEnable(GL_NORMALIZE);
+ glFrontFace(GL_CCW);
+ glCullFace(GL_BACK);
+
+ /* setup material properties */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glShadeModel(GL_SMOOTH);
+/* glShadeModel(GL_FLAT); */
+ glEnable(GL_DEPTH_TEST);
+}
+
+#define MAX_MAGNIFICATION 10
+#define max(a, b) a < b ? b : a
+#define min(a, b) a < b ? a : b
+
+/* event handling */
+ENTRYPOINT Bool antspotlight_handle_event(ModeInfo *mi, XEvent *event)
+{
+ antspotlightstruct *mp = &antspotlight[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, mp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &mp->button_down_p))
+ return True;
+
+ if (event->xany.type == ButtonPress)
+ {
+ switch(event->xbutton.button) {
+
+ case Button1:
+ mp->button_down_p = True;
+ gltrackball_start(mp->trackball,
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH (mi), MI_HEIGHT (mi));
+ return True;
+
+ case Button4:
+ mp->mag = max(mp->mag-1, 1);
+ return True;
+
+ case Button5:
+ mp->mag = min(mp->mag+1, MAX_MAGNIFICATION);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ antspotlightstruct *mp = (antspotlightstruct *) closure;
+
+ mp->max_tx = (GLfloat) image_width / texture_width;
+ mp->max_ty = (GLfloat) image_height / texture_height;
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ (mp->mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
+
+ mp->waiting_for_image_p = False;
+}
+
+
+/* get screenshot */
+static void get_snapshot(ModeInfo *modeinfo)
+{
+ antspotlightstruct *mp = &antspotlight[MI_SCREEN(modeinfo)];
+
+ if (MI_IS_WIREFRAME(modeinfo))
+ return;
+
+ mp->waiting_for_image_p = True;
+ mp->mipmap_p = True;
+ load_texture_async (modeinfo->xgwa.screen, modeinfo->window,
+ *mp->glx_context, 0, 0, mp->mipmap_p,
+ mp->screentexture, image_loaded_cb, mp);
+}
+
+
+ENTRYPOINT void init_antspotlight(ModeInfo *mi)
+{
+ double rot_speed = 0.3;
+
+ antspotlightstruct *mp;
+
+ MI_INIT(mi, antspotlight);
+ mp = &antspotlight[MI_SCREEN(mi)];
+ mp->rot = make_rotator (rot_speed, rot_speed, rot_speed, 1, 0, True);
+ mp->trackball = gltrackball_init (False);
+
+ if((mp->glx_context = init_GL(mi)) != NULL) {
+ reshape_antspotlight(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ pinit();
+ }
+ else
+ MI_CLEARWINDOW(mi);
+
+ glGenTextures(1, &mp->screentexture);
+ glBindTexture(GL_TEXTURE_2D, mp->screentexture);
+ get_snapshot(mi);
+
+ build_ant(mp);
+ mp->mono = MI_IS_MONO(mi);
+ mp->wire = MI_IS_WIREFRAME(mi);
+ mp->boardsize = 8.0;
+ mp->mag = 1;
+}
+
+ENTRYPOINT void draw_antspotlight(ModeInfo * mi)
+{
+ antspotlightstruct *mp;
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if(!antspotlight)
+ return;
+ mp = &antspotlight[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+
+ if(!mp->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+
+ /* Just keep running before the texture has come in. */
+ /* if (mp->waiting_for_image_p) return; */
+
+ glXMakeCurrent(display, window, *(mp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ /* position camera */
+
+ /* follow focused ant */
+ glTranslatef(0.0, 0.0, -6.0 - mp->mag);
+ glRotatef(35.0, 1.0, 0.0, 0.0);
+ gltrackball_rotate(mp->trackball);
+ glTranslatef(-mp->ant->position[0], mp->ant->position[1], -mp->ant->position[2]);
+
+ /* stable position */
+/* glTranslatef(0.0, 0.0, -10.0 - mag); */
+/* gltrackball_rotate(mp->trackball); */
+/* glRotatef(40.0, 1.0, 0.0, 0.0); */
+/* glRotatef(20.0, 0.0, 1.0, 0.0); */
+
+ draw_antspotlight_strip(mi);
+
+ ++mp->ticks;
+
+ glPopMatrix();
+
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+
+ glXSwapBuffers(display, window);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void change_antspotlight(ModeInfo * mi)
+{
+ antspotlightstruct *mp = &antspotlight[MI_SCREEN(mi)];
+
+ if (!mp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(mp->glx_context));
+ pinit();
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("AntSpotlight", antspotlight)
diff --git a/hacks/glx/antspotlight.man b/hacks/glx/antspotlight.man
new file mode 100644
index 0000000..c5f8ed7
--- /dev/null
+++ b/hacks/glx/antspotlight.man
@@ -0,0 +1,56 @@
+.TH XScreenSaver 1 "July 2003"
+.SH NAME
+antspotlight \- ant spotlight screenhack
+.SH SYNOPSIS
+.B antspotlight
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
+.SH DESCRIPTION
+The \fIantspotlight\fP code displays a single ant spotting out a screenshot.
+.SH OPTIONS
+.I antspotlight
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-delay \fImicroseconds\fP
+Per-frame delay.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Blair Tennessy. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Blair Tennessy <tennessb@unbc.ca>, 20-July-2003.
+
diff --git a/hacks/glx/atlantis.c b/hacks/glx/atlantis.c
new file mode 100644
index 0000000..04bde12
--- /dev/null
+++ b/hacks/glx/atlantis.c
@@ -0,0 +1,577 @@
+/* atlantis --- Shows moving 3D sea animals */
+
+#if 0
+static const char sccsid[] = "@(#)atlantis.c 5.08 2003/04/09 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 1998. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Mark J. Kilgard
+ * as a demo for openGL programming.
+ *
+ * Porting it to xlock was possible by comparing the original Mesa's morph3d
+ * demo with it's ported version to xlock, so thanks for Marcelo F. Vianna
+ * (look at morph3d.c) for his indirect help.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * My e-mail address is lassauge@users.sourceforge.net
+ *
+ * Eric Lassauge (May-13-1998)
+ *
+ * REVISION HISTORY:
+ *
+ * Jamie Zawinski, 2-Apr-01: - The fishies were inside out! The back faces
+ * were being drawn, not the front faces.
+ * - Added a texture to simulate light from the
+ * surface, like in the SGI version.
+ *
+ * David A. Bagley - 98/06/17 : Add whalespeed option. Global options to
+ * initialize local variables are now:
+ * XLock.atlantis.cycles: 100 ! SharkSpeed
+ * XLock.atlantis.batchcount: 4 ! SharkNum
+ * XLock.atlantis.whalespeed: 250 ! WhaleSpeed
+ * XLock.atlantis.size: 6000 ! SharkSize
+ * Add random direction for whales/dolphins
+ *
+ * E.Lassauge - 98/06/16: Use the following global options to initialize
+ * local variables :
+ * XLock.atlantis.delay: 100 ! SharkSpeed
+ * XLock.atlantis.batchcount: 4 ! SharkNum
+ * XLock.atlantis.cycles: 250 ! WhaleSpeed
+ * XLock.atlantis.size: 6000 ! SharkSize
+ * Add support for -/+ wireframe (t'was so easy to do!)
+ *
+ * TODO :
+ * - better handling of sizes and speeds
+ * - test standalone and module modes
+ * - purify it (!)
+ */
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/**
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+#define DEF_TEXTURE "True"
+#define DEF_GRADIENT "True"
+#define DEF_WHALESPEED "250"
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 25000 \n" \
+ "*count: 4 \n" \
+ "*showFPS: False \n" \
+ "*cycles: 100 \n" \
+ "*size: 6000 \n" \
+ "*wireframe: False \n"
+# define release_atlantis 0
+# define atlantis_handle_event xlockmore_no_events
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+# include "vis.h"
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#include "atlantis.h"
+
+
+static int whalespeed;
+static int do_texture;
+static int do_gradient;
+static XrmOptionDescRec opts[] =
+{
+ {"-whalespeed", ".atlantis.whalespeed", XrmoptionSepArg, 0},
+ {"-texture", ".atlantis.texture", XrmoptionNoArg, "true"},
+ {"+texture", ".atlantis.texture", XrmoptionNoArg, "false"},
+ {"-gradient", ".atlantis.gradient", XrmoptionNoArg, "true"},
+ {"+gradient", ".atlantis.gradient", XrmoptionNoArg, "false"},
+};
+
+static argtype vars[] =
+{
+ {&whalespeed, "whalespeed", "WhaleSpeed", DEF_WHALESPEED, t_Int},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_gradient, "gradient", "Gradient", DEF_GRADIENT, t_Bool},
+};
+
+static OptionStruct desc[] =
+{
+ {"-whalespeed num", "speed of whales and the dolphin"},
+ {"-texture", "whether to introduce water-like distortion"},
+ {"-gradient", "whether to introduce gradient-filled background"},
+};
+
+ENTRYPOINT ModeSpecOpt atlantis_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+#ifdef USE_MODULES
+ModStruct atlantis_description =
+{"atlantis", "init_atlantis", "draw_atlantis", NULL,
+ "refresh_atlantis", "change_atlantis", "free_atlantis", &atlantis_opts,
+ 1000, NUM_SHARKS, SHARKSPEED, SHARKSIZE, 64, 1.0, "",
+ "Shows moving sharks/whales/dolphin", 0, NULL};
+
+#endif
+
+static atlantisstruct *atlantis = NULL;
+
+#include "ximage-loader.h"
+
+#include "images/gen/sea-texture_png.h"
+
+
+static void
+parse_image_data(ModeInfo *mi)
+{
+ atlantisstruct *ap = &atlantis[MI_SCREEN(mi)];
+ ap->texture = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ sea_texture_png,
+ sizeof(sea_texture_png));
+}
+
+static void
+InitFishs(atlantisstruct * ap)
+{
+ int i;
+
+ for (i = 0; i < ap->num_sharks; i++) {
+ ap->sharks[i].x = 70000.0 + NRAND(ap->sharksize);
+ ap->sharks[i].y = NRAND(ap->sharksize);
+ ap->sharks[i].z = NRAND(ap->sharksize);
+ ap->sharks[i].psi = NRAND(360) - 180.0;
+ ap->sharks[i].v = 1.0;
+ }
+
+ /* Random whale direction */
+ ap->whaledir = LRAND() & 1;
+
+ ap->dolph.x = 30000.0;
+ ap->dolph.y = 0.0;
+ ap->dolph.z = (float) (ap->sharksize);
+ ap->dolph.psi = (ap->whaledir) ? 90.0 : -90.0;
+ ap->dolph.theta = 0.0;
+ ap->dolph.v = 6.0;
+
+ ap->momWhale.x = 70000.0;
+ ap->momWhale.y = 0.0;
+ ap->momWhale.z = 0.0;
+ ap->momWhale.psi = (ap->whaledir) ? 90.0 : -90.0;
+ ap->momWhale.theta = 0.0;
+ ap->momWhale.v = 3.0;
+
+ ap->babyWhale.x = 60000.0;
+ ap->babyWhale.y = -2000.0;
+ ap->babyWhale.z = -2000.0;
+ ap->babyWhale.psi = (ap->whaledir) ? 90.0 : -90.0;
+ ap->babyWhale.theta = 0.0;
+ ap->babyWhale.v = 3.0;
+}
+
+static void
+Init(ModeInfo *mi)
+{
+ atlantisstruct *ap = &atlantis[MI_SCREEN(mi)];
+
+ static const float ambient[] = {0.1, 0.1, 0.1, 1.0};
+ static const float diffuse[] = {1.0, 1.0, 1.0, 1.0};
+ static const float position[] = {0.0, 1.0, 0.0, 0.0};
+ static const float mat_shininess[] = {90.0};
+ static const float mat_specular[] = {0.8, 0.8, 0.8, 1.0};
+ static const float mat_diffuse[] = {0.46, 0.66, 0.795, 1.0};
+ static const float mat_ambient[] = {0.0, 0.1, 0.2, 1.0};
+ static const float lmodel_ambient[] = {0.4, 0.4, 0.4, 1.0};
+ static const float lmodel_localviewer[] = {0.0};
+
+ float fblue = 0.0, fgreen;
+
+ glFrontFace(GL_CCW);
+
+ if (ap->wire)
+ {
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_NORMALIZE);
+ }
+ else
+ {
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_NORMALIZE);
+ glShadeModel(GL_SMOOTH);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, lmodel_localviewer);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, mat_ambient);
+ }
+
+ if (ap->wire || !do_texture)
+ {
+ glDisable(GL_TEXTURE_2D);
+ }
+ else
+ {
+ GLfloat scale = 0.0005;
+
+ if (!ap->texture)
+ parse_image_data (mi);
+
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ ap->texture->width, ap->texture->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE,
+ ap->texture->data);
+ check_gl_error("texture");
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+# ifndef HAVE_JWZGLES
+ {
+ GLfloat s_plane[] = { 1, 0, 0, 0 };
+ GLfloat t_plane[] = { 0, 0, 1, 0 };
+ glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
+ glTexGeni (GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
+ glTexGenfv(GL_S, GL_EYE_PLANE, s_plane);
+ glTexGenfv(GL_T, GL_EYE_PLANE, t_plane);
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ }
+# endif
+ glEnable(GL_TEXTURE_2D);
+
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ glScalef(scale, scale, 1);
+ glMatrixMode(GL_MODELVIEW);
+ }
+
+ InitFishs(ap);
+
+ /* Add a little randomness */
+ fblue = ((float) (NRAND(30)) / 100.0) + 0.70;
+ fgreen = fblue * 0.56;
+ glClearColor(0.0, fgreen, fblue, 1.0);
+}
+
+ENTRYPOINT void
+reshape_atlantis(ModeInfo * mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ atlantisstruct *ap = &atlantis[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, ap->WinW = (GLint) width, ap->WinH = (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(400.0, 1/h, 1.0, 2000000.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+
+/* Fill the background with a gradient -- thanks to
+ Phil Carrig <pod@internode.on.net> for figuring out
+ how to do this more efficiently!
+ */
+static void
+clear_tank (atlantisstruct * ap)
+{
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (do_gradient && !ap->wire)
+ {
+ GLfloat top[4] = { 0.00, 0.40, 0.70, };
+ GLfloat bot[4] = { 0.00, 0.05, 0.18, };
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ {
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ {
+ glLoadIdentity();
+ /* glRotatef(current_device_rotation(), 0, 0, 1); */
+
+# ifndef HAVE_JWZGLES
+ glShadeModel (GL_SMOOTH);
+# endif
+ glDisable (GL_LIGHTING);
+ glBegin (GL_QUADS);
+ glColor3fv (bot);
+ glVertex3f (-1, -1, 1); glVertex3f ( 1, -1, 1);
+ glColor3fv (top);
+ glVertex3f ( 1, 1, 1); glVertex3f (-1, 1, 1);
+ glEnd();
+ glEnable (GL_LIGHTING);
+
+ /* Need to reset this because jwzgles conflates color and material */
+ glColor3f (0.0, 0.1, 0.2);
+ }
+ glPopMatrix();
+ }
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ glMatrixMode(GL_MODELVIEW);
+ }
+}
+
+
+static void
+Animate(atlantisstruct * ap)
+{
+ int i;
+
+ for (i = 0; i < ap->num_sharks; i++) {
+ SharkPilot(&(ap->sharks[i]), ap->sharkspeed);
+ SharkMiss(ap, i);
+ }
+ WhalePilot(&(ap->dolph), ap->whalespeed, ap->whaledir);
+ ap->dolph.phi++;
+ WhalePilot(&(ap->momWhale), ap->whalespeed, ap->whaledir);
+ ap->momWhale.phi++;
+ WhalePilot(&(ap->babyWhale), ap->whalespeed, ap->whaledir);
+ ap->babyWhale.phi++;
+}
+
+static void
+AllDisplay(atlantisstruct * ap)
+{
+ int i;
+
+ clear_tank(ap);
+
+ for (i = 0; i < ap->num_sharks; i++) {
+ glPushMatrix();
+ FishTransform(&(ap->sharks[i]));
+ DrawShark(&(ap->sharks[i]), ap->wire);
+ glPopMatrix();
+ }
+
+ glPushMatrix();
+ FishTransform(&(ap->dolph));
+ DrawDolphin(&(ap->dolph), ap->wire);
+ glPopMatrix();
+
+ glPushMatrix();
+ FishTransform(&(ap->momWhale));
+ DrawWhale(&(ap->momWhale), ap->wire);
+ glPopMatrix();
+
+ glPushMatrix();
+ FishTransform(&(ap->babyWhale));
+ glScalef(0.45, 0.45, 0.3);
+ DrawWhale(&(ap->babyWhale), ap->wire);
+ glPopMatrix();
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize atlantis. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void
+init_atlantis(ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+ atlantisstruct *ap;
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ MI_INIT(mi, atlantis);
+ ap = &atlantis[screen];
+ ap->num_sharks = MI_COUNT(mi);
+ if (ap->sharks == NULL) {
+ if ((ap->sharks = (fishRec *) calloc(ap->num_sharks,
+ sizeof (fishRec))) == NULL) {
+ /* free everything up to now */
+ (void) free((void *) atlantis);
+ atlantis = NULL;
+ return;
+ }
+ }
+ ap->sharkspeed = MI_CYCLES(mi); /* has influence on the "width"
+ of the movement */
+ ap->sharksize = MI_SIZE(mi); /* has influence on the "distance"
+ of the sharks */
+ ap->whalespeed = whalespeed;
+ ap->wire = MI_IS_WIREFRAME(mi);
+
+ if (MI_IS_DEBUG(mi)) {
+ (void) fprintf(stderr,
+ "%s:\n\tnum_sharks=%d\n\tsharkspeed=%.1f\n\tsharksize=%d\n\twhalespeed=%.1f\n\twireframe=%s\n",
+ MI_NAME(mi),
+ ap->num_sharks,
+ ap->sharkspeed,
+ ap->sharksize,
+ ap->whalespeed,
+ ap->wire ? "yes" : "no"
+ );
+ }
+ if ((ap->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_atlantis(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ Init(mi);
+ AllDisplay(ap);
+ glXSwapBuffers(display, window);
+
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void
+draw_atlantis(ModeInfo * mi)
+{
+ atlantisstruct *ap = &atlantis[MI_SCREEN(mi)];
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ MI_IS_DRAWN(mi) = True;
+
+ if (!ap->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(ap->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ AllDisplay(ap);
+ Animate(ap);
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glXSwapBuffers(display, window);
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ * The display is being taken away from us. Free up malloc'ed
+ * memory and X resources that we've alloc'ed.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void
+free_atlantis(ModeInfo * mi)
+{
+#if 0
+ atlantisstruct *ap = &atlantis[screen];
+
+ if (ap->sharks)
+ (void) free((void *) ap->sharks);
+#endif
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+refresh_atlantis(ModeInfo * mi)
+{
+}
+
+ENTRYPOINT void
+change_atlantis(ModeInfo * mi)
+{
+ atlantisstruct *ap = &atlantis[MI_SCREEN(mi)];
+
+ if (!ap->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(ap->glx_context));
+ Init(mi);
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("Atlantis", atlantis)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/atlantis.h b/hacks/glx/atlantis.h
new file mode 100644
index 0000000..3b24bfa
--- /dev/null
+++ b/hacks/glx/atlantis.h
@@ -0,0 +1,133 @@
+/* atlantis --- Shows moving 3D sea animals */
+
+/* Copyright (c) E. Lassauge, 1998. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Mark J. Kilgard
+ * as a demo for openGL programming.
+ *
+ * Porting it to xlock was possible by comparing the original Mesa's morph3d
+ * demo with it's ported version to xlock, so thanks for Marcelo F. Vianna
+ * (look at morph3d.c) for his indirect help.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * My e-mail address is lassauge@users.sourceforge.net
+ *
+ * Eric Lassauge (May-13-1998)
+ *
+ */
+
+/**
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifdef STANDALONE
+# include <math.h>
+# include "screenhackI.h"
+# ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+# include <GL/glx.h>
+# endif
+#else
+# include "xlock.h"
+#endif
+#ifdef HAVE_ANDROID
+#include <GLES/gl.h>
+#endif
+
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#define RAD 57.295
+#define RRAD 0.01745
+
+/* default values */
+#define NUM_SHARKS 4
+#define SHARKSPEED 100
+#define SHARKSIZE 6000
+
+typedef struct _fishRec {
+ float x, y, z, phi, theta, psi, v;
+ float xt, yt, zt;
+ float htail, vtail;
+ float dtheta;
+ int spurt, attack;
+ int sign;
+} fishRec;
+
+typedef struct {
+ GLint WinH, WinW;
+ GLXContext *glx_context;
+ int num_sharks;
+ float sharkspeed, whalespeed;
+ int sharksize;
+ int wire;
+ Bool whaledir;
+ fishRec *sharks;
+ fishRec momWhale;
+ fishRec babyWhale;
+ fishRec dolph;
+
+ XImage *texture; /* water distortion overlay bits */
+} atlantisstruct;
+
+extern void FishTransform(fishRec *);
+extern void WhalePilot(fishRec *, float, Bool);
+extern void SharkPilot(fishRec *, float);
+extern void SharkMiss(atlantisstruct *, int);
+extern void DrawWhale(fishRec *, int);
+extern void DrawShark(fishRec *, int);
+extern void DrawDolphin(fishRec *, int);
diff --git a/hacks/glx/atlantis.man b/hacks/glx/atlantis.man
new file mode 100644
index 0000000..0c2df5a
--- /dev/null
+++ b/hacks/glx/atlantis.man
@@ -0,0 +1,78 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+atlantis - draw swimming sharks, whales, and dolphins.
+.SH SYNOPSIS
+.B atlantis
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-whalespeed \fInumber\fP]
+[\-delay \fInumber\fP]
+[\-size \fInumber\fP]
+[\-count \fInumber\fP]
+[\-no-texture]
+[\-gradient]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+This is xfishtank writ large: a GL animation of a number of sharks,
+dolphins, and whales. The swimming motions are great.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-whalespeed \fInumber\fP
+Whale Speed. 0 - 1000. Default: 250.
+.TP 8
+.B \-cycles \fInumber\fP
+Shark Speed. Default: 100.
+.TP 8
+.B \-size \fInumber\fP
+Shark Proximity. 100 - 10000. Default: 6000.
+.TP 8
+.B \-count \fInumber\fP
+Number of Sharks. 0 - 20. Default: 4.
+.TP 8
+.B \-texture | \-no-texture
+Whether to show shimmering water.
+.TP 8
+.B \-gradient
+Whether to draw a gradient on the background, making it darker at the bottom.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Mark Kilgard. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Mark Kilgard.
+
diff --git a/hacks/glx/atunnel.c b/hacks/glx/atunnel.c
new file mode 100644
index 0000000..f21d04f
--- /dev/null
+++ b/hacks/glx/atunnel.c
@@ -0,0 +1,317 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* atunnel --- OpenGL Advanced Tunnel Screensaver */
+
+#if 0
+static const char sccsid[] = "@(#)atunnel.c 5.13 2004/05/25 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 2003-2004. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Roman Podobedov
+ * Email: romka@ut.ee
+ * WEB: http://romka.demonews.com
+ *
+ * Eric Lassauge (May-25-2004) <lassauge@users.sourceforge.net>
+ * http://lassauge.free.fr/linux.html
+ *
+ * REVISION HISTORY:
+ *
+ * E.Lassauge - 25-May-2004:
+ * - added more texture !
+ * E.Lassauge - 16-Mar-2002:
+ * - created based on the Roman demo.
+ * - deleted all external file stuff to use xpm textures and
+ * hardcoded path point values.
+ *
+ */
+
+#ifdef STANDALONE /* xscreensaver mode */
+#define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_atunnel 0
+# define atunnel_handle_event 0
+#define MODE_atunnel
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef MODE_atunnel /* whole file */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "tunnel_draw.h"
+
+#if defined( USE_XPM ) || defined( USE_XPMINC ) || defined(STANDALONE)
+/* USE_XPM & USE_XPMINC in xlock mode ; STANDALONE in xscreensaver mode */
+#include "ximage-loader.h"
+#define I_HAVE_XPM
+
+#include "images/gen/tunnel0_png.h"
+#include "images/gen/tunnel1_png.h"
+#include "images/gen/tunnel2_png.h"
+#include "images/gen/tunnel3_png.h"
+#include "images/gen/tunnel4_png.h"
+#include "images/gen/tunnel5_png.h"
+#endif /* HAVE_XPM */
+
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_LIGHT "True"
+#define DEF_WIRE "False"
+#define DEF_TEXTURE "True"
+
+static Bool do_light;
+static Bool do_wire;
+static Bool do_texture;
+
+static XrmOptionDescRec opts[] = {
+ {"-light", ".atunnel.light", XrmoptionNoArg, "true" },
+ {"+light", ".atunnel.light", XrmoptionNoArg, "false" },
+ {"-wireframe",".atunnel.wire", XrmoptionNoArg, "true" },
+ {"+wireframe",".atunnel.wire", XrmoptionNoArg, "false" },
+ {"-texture", ".atunnel.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".atunnel.texture", XrmoptionNoArg, "false" },
+};
+
+static argtype vars[] = {
+ {&do_light, "light", "Light", DEF_LIGHT, t_Bool},
+ {&do_wire, "wire", "Wire", DEF_WIRE, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+};
+
+static OptionStruct desc[] =
+{
+ {"-/+ light", "whether to do enable lighting (slower)"},
+ {"-/+ wire", "whether to do use wireframe instead of filled (faster)"},
+ {"-/+ texture", "whether to apply a texture (slower)"},
+};
+
+ENTRYPOINT ModeSpecOpt atunnel_opts = {countof(opts), opts, countof(vars), vars, desc};
+
+#ifdef USE_MODULES
+ModStruct atunnel_description =
+{"atunnel", "init_atunnel", "draw_atunnel", NULL,
+ "draw_atunnel", "init_atunnel", "free_atunnel", &atunnel_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "OpenGL advanced tunnel screensaver", 0, NULL};
+#endif
+
+/* structure for holding the screensaver data */
+typedef struct {
+ int screen_width, screen_height;
+ GLXContext *glx_context;
+ Window window;
+ struct tunnel_state *ts;
+ GLuint texture[MAX_TEXTURE]; /* texture id: GL world */
+} atunnelstruct;
+
+static atunnelstruct *Atunnel = NULL;
+
+/*=================== Load Texture =========================================*/
+static void LoadTexture(ModeInfo * mi,
+ const unsigned char *data, unsigned long size,
+ int t_num)
+{
+#if defined( I_HAVE_XPM )
+ atunnelstruct *sa = &Atunnel[MI_SCREEN(mi)];
+ XImage *teximage; /* Texture data */
+
+ if ((teximage = image_data_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+ data, size))
+ == None) {
+ (void) fprintf(stderr, "Error reading the texture.\n");
+ glDeleteTextures(1, &sa->texture[t_num]);
+ do_texture = False;
+#ifdef STANDALONE
+ exit(0);
+#else
+ return;
+#endif
+ }
+
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, sa->texture[t_num]);
+#endif /* HAVE_GLBINDTEXTURE */
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, teximage->width, teximage->height,
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, teximage->data);
+ check_gl_error("texture");
+
+ /* Texture parameters, LINEAR scaling for better texture quality */
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+ XDestroyImage(teximage);
+#else /* !I_HAVE_XPM */
+ do_texture = False;
+#endif /* !I_HAVE_XPM */
+}
+
+/*=================== Main Initialization ==================================*/
+static void Init(ModeInfo * mi)
+{
+ atunnelstruct *sa = &Atunnel[MI_SCREEN(mi)];
+ GLfloat light_ambient[] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat light_specular[] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat light_position[] = {0.0, 0.0, 1.0, 0.0};
+ GLfloat fogColor[4] = {0.8, 0.8, 0.8, 1.0};
+
+ if (do_texture)
+ {
+ glGenTextures(MAX_TEXTURE, sa->texture);
+ LoadTexture(mi, tunnel0_png, sizeof(tunnel0_png),0);
+ LoadTexture(mi, tunnel1_png, sizeof(tunnel1_png),1);
+ LoadTexture(mi, tunnel2_png, sizeof(tunnel2_png),2);
+ LoadTexture(mi, tunnel3_png, sizeof(tunnel3_png),3);
+ LoadTexture(mi, tunnel4_png, sizeof(tunnel4_png),4);
+ LoadTexture(mi, tunnel5_png, sizeof(tunnel5_png),5);
+ glEnable(GL_TEXTURE_2D);
+ }
+ sa->ts = atunnel_InitTunnel();
+
+ /* Set lighting parameters */
+ if (do_light)
+ {
+ glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
+ glLightfv(GL_LIGHT0, GL_POSITION, light_position);
+
+ /* Enable light 0 */
+ glEnable(GL_LIGHT0);
+ glDepthFunc(GL_LESS);
+
+ glEnable(GL_LIGHTING);
+ }
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ do_wire = 0;
+# endif
+
+ if (do_wire) {
+ glDisable(GL_NORMALIZE);
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_TEXTURE_2D);
+ glPolygonMode(GL_FRONT,GL_LINE);
+ glPolygonMode(GL_BACK,GL_LINE);
+ }
+ else
+ {
+ glEnable(GL_DEPTH_TEST);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+
+ /* Enable fog */
+ glFogi(GL_FOG_MODE, GL_EXP);
+ glFogfv(GL_FOG_COLOR, fogColor);
+ glFogf(GL_FOG_DENSITY, 0.3);
+ glEnable(GL_FOG);
+
+ /* Cull face */
+ glCullFace(GL_FRONT);
+ glEnable(GL_CULL_FACE);
+ }
+
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
+}
+
+
+/* Standard reshape function */
+ENTRYPOINT void
+reshape_atunnel(ModeInfo *mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 2) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-0.1*(1/h), 0.1*(1/h), -0.1, 0.1, 0.1, 10);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+/* draw the screensaver once */
+ENTRYPOINT void draw_atunnel(ModeInfo * mi)
+{
+ atunnelstruct *sa = &Atunnel[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!sa->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(sa->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glLoadIdentity();
+
+ atunnel_DrawTunnel(sa->ts, do_texture, do_light, sa->texture);
+ atunnel_SplashScreen(sa->ts, do_wire, do_texture, do_light);
+
+ glFlush();
+ /* manage framerate display */
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glXSwapBuffers(display, window);
+
+}
+
+
+/* xscreensaver initialization routine */
+ENTRYPOINT void init_atunnel(ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+ atunnelstruct *sa;
+
+ MI_INIT(mi, Atunnel);
+ sa = &Atunnel[screen];
+
+ sa->window = MI_WINDOW(mi);
+ if ((sa->glx_context = init_GL(mi)) != NULL) {
+ reshape_atunnel(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ Init(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+}
+
+/* all sorts of nice cleanup code should go here! */
+ENTRYPOINT void free_atunnel(ModeInfo * mi)
+{
+#if 0
+ atunnelstruct *sa = &Atunnel[MI_SCREEN(mi)];
+ FreeTunnel(sa->ts);
+#endif
+}
+
+XSCREENSAVER_MODULE ("Atunnel", atunnel)
+
+#endif
diff --git a/hacks/glx/atunnel.man b/hacks/glx/atunnel.man
new file mode 100644
index 0000000..dc19582
--- /dev/null
+++ b/hacks/glx/atunnel.man
@@ -0,0 +1,83 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "12-Feb-03" "X Version 11"
+.SH NAME
+atunnel - hypnotic GL tunnel journey
+.SH SYNOPSIS
+.B sballs
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-light] [\-no-light]
+[\-wire] [\-no-wire]
+[\-texture] [\-no-texture]
+[\-fps]
+.SH DESCRIPTION
+The \fIatunnel\fP program draws an animation of a journey in a GL tunnel.
+.SH OPTIONS
+.I sballs
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-texture
+Show a textured tunnel. This is the default.
+.TP 8
+.B \-no\-texture
+Disables texturing the animation.
+.TP 8
+.B \-wire
+Draw a wireframe rendition of the tunnel.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Eric Lassauge.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+
+The original code for this mode was written by
+Roman Podobedov <romka@ut.ee>
+and can be found at http://romka.demonews.com
+
+.SH AUTHOR
+Roman Podobedov <romka@ut.ee>
+Eric Lassauge <lassauge@users.sourceforge.net>
diff --git a/hacks/glx/b_draw.c b/hacks/glx/b_draw.c
new file mode 100644
index 0000000..977efbe
--- /dev/null
+++ b/hacks/glx/b_draw.c
@@ -0,0 +1,239 @@
+#if 0
+static const char sccsid[] = "@(#)b_draw.c 4.11 98/06/16 xlockmore";
+#endif
+
+/*-
+ * BUBBLE3D (C) 1998 Richard W.M. Jones.
+ * b_draw.c: This code creates new bubbles, manages them and controls
+ * them as they are drawn on the screen.
+ */
+
+#include "bubble3d.h"
+
+typedef struct draw_context {
+ /* The list of bubbles currently on the screen. */
+ void **bubble_list;
+ int nr_bubbles;
+
+ /* When was the last time we created a new bubble? */
+ int bubble_count;
+
+ glb_data *d;
+
+} draw_context;
+
+void *
+glb_draw_init(void)
+{
+ draw_context *c;
+
+ GLfloat mat_specular[] =
+ {1, 1, 1, 1};
+ GLfloat mat_emission[] =
+ {0, 0, 0, 1};
+ GLfloat mat_shininess[] =
+ {100};
+ GLfloat ambient[] =
+ {0.5, 0.5, 0.5, 1.0};
+ GLfloat light_position[][4] =
+ {
+ {0, -1, 0, 0},
+ {1, 1, 0, 0},
+ {-1, 0, 1, 0}};
+ GLfloat light_diffuse[][4] =
+ {
+ {1, 1, 1, 1},
+ {1, 1, 1, 1},
+ {1, 1, 1, 1}};
+ GLfloat light_specular[][4] =
+ {
+ {1, 1, 1, 1},
+ {1, 1, 1, 1},
+ {1, 1, 1, 1}};
+
+ /* Initialize the context. */
+ c = (struct draw_context *) malloc(sizeof (struct draw_context));
+
+ if (c == 0)
+ return 0;
+ c->bubble_list = 0;
+ c->nr_bubbles = 0;
+ c->bubble_count = glb_config.create_bubbles_every;
+
+ /* Do some GL initialization. */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, glb_config.bubble_colour);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, mat_emission);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);
+
+ if (glb_config.transparent_p)
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_LIGHT2);
+
+ if (glb_config.transparent_p)
+ glEnable(GL_BLEND);
+ else
+ glEnable(GL_DEPTH_TEST);
+
+ glEnable(GL_AUTO_NORMAL);
+ glEnable(GL_NORMALIZE);
+
+ if (glb_config.transparent_p)
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
+
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_POSITION, light_position[0]);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse[0]);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular[0]);
+ glLightfv(GL_LIGHT1, GL_POSITION, light_position[1]);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse[1]);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, light_specular[1]);
+ glLightfv(GL_LIGHT2, GL_POSITION, light_position[2]);
+ glLightfv(GL_LIGHT2, GL_DIFFUSE, light_diffuse[2]);
+ glLightfv(GL_LIGHT2, GL_SPECULAR, light_specular[2]);
+
+ c->d = glb_sphere_init();
+
+ return c;
+}
+
+static void
+delete_bubble(draw_context * c, int j)
+{
+ int i;
+
+ glb_bubble_delete(c->bubble_list[j]);
+
+ for (i = j; i < c->nr_bubbles - 1; ++i)
+ c->bubble_list[i] = c->bubble_list[i + 1];
+
+ c->nr_bubbles--;
+}
+
+void
+glb_draw_end(void *cc)
+{
+ draw_context *c = (draw_context *) cc;
+ int i;
+
+ for (i = 0; i < c->nr_bubbles; ++i) {
+ delete_bubble(c, i);
+ i--;
+ }
+
+ glb_sphere_end (c->d);
+
+ (void) free((void *) c->bubble_list);
+ (void) free((void *) c);
+}
+
+static int
+create_new_bubbles(draw_context * c)
+{
+ int n, i;
+ double r = glb_drand();
+ GLfloat size, speed, scale_incr, x, y, z;
+ void *b[4];
+ void **old_bubble_list;
+
+ /* How many bubbles to make? */
+ if (r < glb_config.p_bubble_group[0])
+ n = 1;
+ else if (r < glb_config.p_bubble_group[1])
+ n = 2;
+ else if (r < glb_config.p_bubble_group[2])
+ n = 3;
+ else
+ n = 4;
+
+ /* Initial position of top-most bubble in group. */
+ x = glb_drand() * 4 - 2;
+ y = glb_config.screen_bottom;
+ z = glb_drand() * 2 - 2;
+
+ /* What size? */
+ size = glb_config.min_size
+ + glb_drand() * (glb_config.max_size - glb_config.min_size);
+
+ /* What speed? */
+ speed = glb_config.min_speed
+ + glb_drand() * (glb_config.max_speed - glb_config.min_speed);
+
+ /* Work out the scaling increment. Bubbles should increase by scale_factor
+ * as they go from bottom to top of screen.
+ */
+ scale_incr = (size * glb_config.scale_factor - size)
+ / ((glb_config.screen_top - glb_config.screen_bottom) / speed);
+
+ /* Create the bubble(s). */
+ for (i = 0; i < n; ++i) {
+ if ((b[i] = glb_bubble_new(c->d, x, y, z, size, speed, scale_incr)) == 0) {
+ /* Out of memory - recover. */
+ i--;
+ while (i >= 0)
+ glb_bubble_delete(b[i]);
+ return 0;
+ }
+ /* Create the next bubble below the last bubble. */
+ y -= size * 3;
+ }
+
+ /* Add the bubbles to the list. */
+ c->nr_bubbles += n;
+ old_bubble_list = c->bubble_list;
+ if (c->bubble_list == 0) {
+ c->bubble_list = (void **) malloc(c->nr_bubbles * sizeof (void *));
+ } else {
+ c->bubble_list = (void **) realloc(c->bubble_list,
+ c->nr_bubbles * sizeof (void *));
+ }
+
+ if (c->bubble_list == 0) {
+ /* Out of memory - recover. */
+ for (i = 0; i < n; ++i)
+ glb_bubble_delete(b[i]);
+ c->bubble_list = old_bubble_list;
+ c->nr_bubbles -= n;
+ return 0;
+ }
+ for (i = 0; i < n; ++i)
+ c->bubble_list[c->nr_bubbles - i - 1] = b[i];
+
+ return 1;
+}
+
+void
+glb_draw_step(void *cc)
+{
+ draw_context *c = (draw_context *) cc;
+ int i;
+
+ /* Consider creating a new bubble or bubbles. */
+ if (c->nr_bubbles < glb_config.max_bubbles &&
+ c->bubble_count++ > glb_config.create_bubbles_every) {
+ if (create_new_bubbles(c))
+ c->bubble_count = 0;
+ }
+ /* Clear the display. */
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* XXX Draw the background here ... */
+
+ /* Draw all the bubbles on the display. */
+ for (i = 0; i < c->nr_bubbles; ++i) {
+ void *b = c->bubble_list[i];
+
+ glb_bubble_step(b);
+ glb_bubble_draw(c->d, b);
+
+ /* Has the bubble reached the top of the screen? */
+ if (glb_bubble_get_y(b) >= glb_config.screen_top) {
+ delete_bubble(c, i);
+ i--;
+ }
+ }
+}
diff --git a/hacks/glx/b_lockglue.c b/hacks/glx/b_lockglue.c
new file mode 100644
index 0000000..1bb1e67
--- /dev/null
+++ b/hacks/glx/b_lockglue.c
@@ -0,0 +1,240 @@
+#if 0
+static const char sccsid[] = "@(#)b_lockglue.c 4.11 98/06/16 xlockmore";
+#endif
+
+/*-
+ * BUBBLE3D (C) 1998 Richard W.M. Jones.
+ * b_lockglue.c: Glue to make this all work with xlockmore.
+ */
+
+#include "bubble3d.h"
+
+/* XXX This lot should eventually be made configurable using the
+ * options stuff below.
+ */
+struct glb_config glb_config =
+{
+ 0, /* transparent_p */
+#if GLB_SLOW_GL
+ 2, /* subdivision_depth */
+#else
+ 3, /* subdivision_depth */
+#endif
+ 5, /* nr_nudge_axes */
+ 0.01, /* nudge_angle_factor */
+ 0.20, /* nudge_factor */
+ 0.1, /* rotation_factor */
+ 8, /* create_bubbles_every */
+ 8, /* max_bubbles */
+ {0.7, 0.8, 0.9, 1.0}, /* p_bubble_group */
+ 0.5, /* max_size */
+ 0.1, /* min_size */
+ 0.03, /* max_speed */
+ 0.005, /* min_speed */
+ 1.5, /* scale_factor */
+ -4, /* screen_bottom */
+ 4, /* screen_top */
+ {0.0, 0.0, 0.7, 0.3} /* bubble_colour */
+};
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n"
+
+# define release_bubble3d 0
+# define bubble3d_handle_event xlockmore_no_events
+#include "xlockmore.h"
+#else
+#include "xlock.h"
+#include "vis.h"
+#endif
+
+#ifdef USE_GL
+
+
+#define DEF_TRANSPARENT "True"
+#define DEF_BUBBLECOLOR "random"
+
+static Bool transparent_p;
+static char *bubble_color_str;
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static XrmOptionDescRec opts[] = {
+ { "-transparent", ".transparent", XrmoptionNoArg, "True" },
+ { "+transparent", ".transparent", XrmoptionNoArg, "False" },
+ { "-color", ".bubblecolor", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&transparent_p, "transparent", "Transparent", DEF_TRANSPARENT, t_Bool},
+ {&bubble_color_str, "bubblecolor", "BubbleColor", DEF_BUBBLECOLOR, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt bubble3d_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct bubbles3d_description =
+{"bubbles3d",
+ "init_bubble3d",
+ "draw_bubble3d",
+ NULL,
+ "change_bubble3d",
+ "init_bubble3d",
+ "free_bubble3d",
+ &bubble3d_opts,
+ 1000, 1, 2, 1, 64, 1.0, "",
+ "Richard Jones's GL bubbles",
+ 0,
+ NULL
+};
+
+#endif /* USE_MODULES */
+
+struct context {
+ GLXContext *glx_context;
+ void *draw_context;
+};
+
+static struct context *contexts = 0;
+
+static void
+parse_color (ModeInfo *mi, const char *name, const char *s, GLfloat *a)
+{
+ XColor c;
+
+ if (! XParseColor (MI_DISPLAY(mi), MI_COLORMAP(mi), s, &c))
+ {
+ fprintf (stderr, "%s: can't parse %s color %s", progname, name, s);
+ exit (1);
+ }
+ a[0] = c.red / 65536.0;
+ a[1] = c.green / 65536.0;
+ a[2] = c.blue / 65536.0;
+}
+
+static void
+init_colors(ModeInfo *mi)
+{
+ if (strncasecmp(bubble_color_str, "auto", strlen("auto")) == 0) {
+ glb_config.bubble_colour[0] = ((float) (NRAND(100)) / 100.0);
+ glb_config.bubble_colour[1] = ((float) (NRAND(100)) / 100.0);
+ /* I keep more blue */
+ glb_config.bubble_colour[2] = ((float) (NRAND(50)) / 100.0) + 0.50;
+ } else if (strncasecmp(bubble_color_str, "random", strlen("random")) == 0) {
+ glb_config.bubble_colour[0] = -1.0;
+ } else {
+ parse_color(mi, "bubble", bubble_color_str, glb_config.bubble_colour);
+ }
+}
+
+static void
+init(struct context *c)
+{
+ glb_config.transparent_p = transparent_p;
+ glb_sphere_init();
+ c->draw_context = glb_draw_init();
+}
+
+ENTRYPOINT void
+reshape_bubble3d(ModeInfo *mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ h = height / (GLfloat) width;
+ }
+ glViewport(0, 0, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(45, 1/h, 3, 8);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0, 0, -5);
+}
+
+static void
+do_display(struct context *c)
+{
+ glb_draw_step(c->draw_context);
+}
+
+ENTRYPOINT void
+init_bubble3d(ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int screen = MI_SCREEN(mi);
+ struct context *c;
+
+ MI_INIT (mi, contexts);
+ c = &contexts[screen];
+ c->glx_context = init_GL(mi);
+ init_colors(mi);
+ if (c->glx_context != 0) {
+ init(c);
+ reshape_bubble3d(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ do_display(c);
+ glFinish();
+ glXSwapBuffers(display, window);
+ } else
+ MI_CLEARWINDOW(mi);
+}
+
+ENTRYPOINT void
+draw_bubble3d(ModeInfo * mi)
+{
+ struct context *c = &contexts[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ MI_IS_DRAWN(mi) = True;
+
+ if (!c->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(c->glx_context));
+
+ glb_config.polygon_count = 0;
+ glPushMatrix();
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ glRotatef(o, 0, 0, 1);
+ }
+# endif
+
+ do_display(c);
+ glPopMatrix();
+ mi->polygon_count = glb_config.polygon_count;
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_bubble3d(ModeInfo * mi)
+{
+ /* nothing */
+}
+#endif /* !STANDALONE */
+
+ENTRYPOINT void
+free_bubble3d(ModeInfo * mi)
+{
+ struct context *c = &contexts[MI_SCREEN(mi)];
+ if (c->draw_context)
+ glb_draw_end(c->draw_context);
+}
+
+XSCREENSAVER_MODULE ("Bubble3D", bubble3d)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/b_sphere.c b/hacks/glx/b_sphere.c
new file mode 100644
index 0000000..78be392
--- /dev/null
+++ b/hacks/glx/b_sphere.c
@@ -0,0 +1,219 @@
+#if 0
+static const char sccsid[] = "@(#)b_sphere.c 4.11 98/06/16 xlockmore";
+#endif
+
+/*-
+ * BUBBLE3D (C) 1998 Richard W.M. Jones.
+ * b_sphere.c: Create a list of vertices and triangles in a
+ * normalized sphere, which is then later used as the basic shape
+ * for all bubbles. This code is run once when the program starts
+ * up.
+ */
+
+#include "bubble3d.h"
+
+typedef glb_vertex vertex;
+typedef glb_triangle triangle;
+
+struct glb_data {
+
+ /* The list of vertices created. */
+ vertex *vertices;
+ int nr_vertices, nr_vertices_allocated;
+
+ /* The list of triangles created. */
+ triangle *triangles;
+ int nr_triangles, nr_triangles_allocated;
+};
+
+
+#define EPSILON GLB_VERTICES_EPSILON
+
+/* Should be taken care of already... but just in case */
+#if !defined( __GNUC__ ) && !defined(__cplusplus) && !defined(c_plusplus)
+#undef inline
+#define inline /* */
+#endif
+static inline int
+close_enough(const GLfloat * v1, const GLfloat * v2)
+{
+ return fabs((double) (v1[0] - v2[0])) <= EPSILON &&
+ fabs((double) (v1[1] - v2[1])) <= EPSILON &&
+ fabs((double) (v1[2] - v2[2])) <= EPSILON;
+}
+
+#define INCR(n) ((n == 0) ? (n = 1) : (n *= 2))
+#define INCR_ALLOCATION(a, n, t) (a = (t *) realloc (a, INCR (n) * sizeof (t)))
+
+static inline GLuint
+save_vertex(glb_data *d, const GLfloat * v)
+{
+ int i;
+
+ /* Inefficient, but we only do this a few times. Check to see if there's
+ * an existing vertex which is `close enough' to this one.
+ */
+ for (i = 0; i < d->nr_vertices; ++i)
+ if (close_enough(v, d->vertices[i]))
+ return i;
+
+ if (d->nr_vertices_allocated <= d->nr_vertices) {
+ if (d->vertices == 0) {
+ d->vertices = (vertex *) malloc(INCR(d->nr_vertices_allocated) * sizeof (vertex));
+ } else {
+ INCR_ALLOCATION(d->vertices, d->nr_vertices_allocated, vertex);
+ }
+ }
+ d->vertices[d->nr_vertices][0] = v[0];
+ d->vertices[d->nr_vertices][1] = v[1];
+ d->vertices[d->nr_vertices][2] = v[2];
+ return d->nr_vertices++;
+}
+
+static inline GLuint
+save_triangle(glb_data *d, GLuint v1, GLuint v2, GLuint v3)
+{
+ if (d->nr_triangles_allocated <= d->nr_triangles) {
+ if (d->triangles == 0) {
+ d->triangles = (triangle *) malloc(INCR(d->nr_triangles_allocated) * sizeof (triangle));
+ } else {
+ INCR_ALLOCATION(d->triangles, d->nr_triangles_allocated, triangle);
+ }
+ }
+ d->triangles[d->nr_triangles][0] = v1;
+ d->triangles[d->nr_triangles][1] = v2;
+ d->triangles[d->nr_triangles][2] = v3;
+ return d->nr_triangles++;
+}
+
+static inline void
+normalize(GLfloat v[3])
+{
+ GLfloat d = (GLfloat) sqrt((double) (v[0] * v[0] + v[1] * v[1] + v[2] * v[2]));
+
+ if (d != 0) {
+ v[0] /= d;
+ v[1] /= d;
+ v[2] /= d;
+ } else {
+ v[0] = v[1] = v[2] = 0;
+ }
+}
+
+static void
+subdivide(glb_data *d,
+ const GLfloat * v1, GLuint vi1,
+ const GLfloat * v2, GLuint vi2,
+ const GLfloat * v3, GLuint vi3,
+ int depth)
+{
+ int i;
+
+ if (depth == 0) {
+ save_triangle(d, vi1, vi2, vi3);
+ } else {
+ GLuint vi12, vi23, vi31;
+ GLfloat v12[3], v23[3], v31[3];
+
+ for (i = 0; i < 3; ++i) {
+ v12[i] = v1[i] + v2[i];
+ v23[i] = v2[i] + v3[i];
+ v31[i] = v3[i] + v1[i];
+ }
+ normalize(v12);
+ vi12 = save_vertex(d, v12);
+ normalize(v23);
+ vi23 = save_vertex(d, v23);
+ normalize(v31);
+ vi31 = save_vertex(d, v31);
+ subdivide(d, v1, vi1, v12, vi12, v31, vi31, depth - 1);
+ subdivide(d, v2, vi2, v23, vi23, v12, vi12, depth - 1);
+ subdivide(d, v3, vi3, v31, vi31, v23, vi23, depth - 1);
+ subdivide(d, v12, vi12, v23, vi23, v31, vi31, depth - 1);
+ }
+}
+
+#define ICO_X 0.525731112119133606
+#define ICO_Z 0.850650808352039932
+
+static const GLfloat vdata[12][3] =
+{
+ {-ICO_X, 0, ICO_Z},
+ {ICO_X, 0, ICO_Z},
+ {-ICO_X, 0, -ICO_Z},
+ {ICO_X, 0, -ICO_Z},
+ {0, ICO_Z, ICO_X},
+ {0, ICO_Z, -ICO_X},
+ {0, -ICO_Z, ICO_X},
+ {0, -ICO_Z, -ICO_X},
+ {ICO_Z, ICO_X, 0},
+ {-ICO_Z, ICO_X, 0},
+ {ICO_Z, -ICO_X, 0},
+ {-ICO_Z, -ICO_X, 0}
+};
+
+static const GLuint tindices[20][3] =
+{
+ {0, 4, 1},
+ {0, 9, 4},
+ {9, 5, 4},
+ {4, 5, 8},
+ {4, 8, 1},
+ {8, 10, 1},
+ {8, 3, 10},
+ {5, 3, 8},
+ {5, 2, 3},
+ {2, 7, 3},
+ {7, 10, 3},
+ {7, 6, 10},
+ {7, 11, 6},
+ {11, 0, 6},
+ {0, 1, 6},
+ {6, 1, 10},
+ {9, 0, 11},
+ {9, 11, 2},
+ {9, 2, 5},
+ {7, 2, 11}
+};
+
+/* Public interface: Create the sphere. */
+glb_data *
+glb_sphere_init(void)
+{
+ glb_data *d = (glb_data *) calloc (1, sizeof (*d));
+ int i;
+
+ for (i = 0; i < 20; ++i) {
+ subdivide(d, vdata[tindices[i][0]], save_vertex(d, vdata[tindices[i][0]]),
+ vdata[tindices[i][1]], save_vertex(d, vdata[tindices[i][1]]),
+ vdata[tindices[i][2]], save_vertex(d, vdata[tindices[i][2]]),
+ glb_config.subdivision_depth);
+ }
+
+ return d;
+}
+
+/* Return the vertices list. */
+glb_vertex *
+glb_sphere_get_vertices(glb_data *d, int *nr_vertices_ptr)
+{
+ *nr_vertices_ptr = d->nr_vertices;
+ return d->vertices;
+}
+
+/* Return the triangles list. */
+glb_triangle *
+glb_sphere_get_triangles(glb_data *d, int *nr_triangles_ptr)
+{
+ *nr_triangles_ptr = d->nr_triangles;
+ return d->triangles;
+}
+
+/* Free up memory. */
+void
+glb_sphere_end(glb_data *d)
+{
+ (void) free((void *) d->vertices);
+ (void) free((void *) d->triangles);
+ free (d);
+}
diff --git a/hacks/glx/blinkbox.c b/hacks/glx/blinkbox.c
new file mode 100644
index 0000000..f777371
--- /dev/null
+++ b/hacks/glx/blinkbox.c
@@ -0,0 +1,608 @@
+/* blinkbox, Copyright (c) 2003 Jeremy English <jenglish@myself.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* motion blur added March 2005 by John Boero <jlboero@cs.uwm.edu>
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_ball 0
+# define release_ball 0
+# define ball_handle_event xlockmore_no_events
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "sphere.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define MAX_COUNT 20
+#define ALPHA_AMT 0.05
+
+/* this should be between 1 and 8 */
+#define DEF_BOXSIZE "2"
+#define DEF_DISSOLVE "False"
+#define DEF_FADE "True"
+#define DEF_BLUR "True"
+
+
+typedef struct{
+ GLfloat x,y,z;
+} Tdpos;
+
+typedef struct{
+ int hit;
+ Tdpos pos;
+ int counter;
+ GLfloat color[3];
+ GLfloat rot[4];
+ int des_count;
+ int alpha_count;
+}Side;
+
+struct Bounding_box {
+ Tdpos top;
+ Tdpos bottom;
+};
+
+struct Ball {
+ GLfloat x;
+ GLfloat y;
+ GLfloat z;
+ int d;
+};
+
+struct bscale {
+ GLfloat wh; /*width Height*/
+ GLfloat d; /*depth*/
+};
+
+static const struct Bounding_box bbox = {{14,14,20},{-14,-14,-20}};
+
+typedef struct {
+ GLXContext *glx_context;
+
+ struct Ball ball;
+
+ struct bscale bscale;
+
+ Tdpos mo; /*motion*/
+ Tdpos moh; /*hold motion value*/
+
+ Tdpos bpos;
+
+ GLuint ballList;
+ GLuint boxList;
+ GLfloat des_amt;
+
+ /*sides*/
+ Side lside;/*Red*/
+ Side rside;/*Green*/
+ Side tside;/*Blue*/
+ Side bside;/*Orange*/
+ Side fside;/*Yellow*/
+ Side aside;/*Purple*/
+ Side *sp;
+
+} blinkboxstruct;
+
+static blinkboxstruct *blinkbox = (blinkboxstruct *) NULL;
+
+
+/* lights */
+static const float LightDiffuse[]= { 1.0f, 1.0f, 1.0f, 1.0f };
+static const float LightPosition[]= { 20.0f, 100.0f, 20.0f, 1.0f };
+
+static Bool do_dissolve;
+static Bool do_fade;
+static Bool do_blur;
+static float bscale_wh;
+
+static XrmOptionDescRec opts[] = {
+ { "-boxsize", ".boxsize", XrmoptionSepArg, 0 },
+ { "-dissolve", ".dissolve", XrmoptionNoArg, "True" },
+ { "+dissolve", ".dissolve", XrmoptionNoArg, "False" },
+ { "-fade", ".fade", XrmoptionNoArg, "True" },
+ { "+fade", ".fade", XrmoptionNoArg, "False" },
+ { "-blur", ".blur", XrmoptionNoArg, "True" },
+ { "+blur", ".blur", XrmoptionNoArg, "False" }
+
+};
+
+static argtype vars[] = {
+ {&bscale_wh, "boxsize", "Boxsize", DEF_BOXSIZE, t_Float},
+ {&do_dissolve, "dissolve", "Dissolve", DEF_DISSOLVE, t_Bool},
+ {&do_fade, "fade", "Fade", DEF_FADE, t_Bool},
+ {&do_blur, "blur", "Blur", DEF_BLUR, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt ball_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+static void
+swap(GLfloat *a, GLfloat *b)
+{
+ GLfloat t = *a;
+ *a = *b;
+ *b = t;
+}
+
+static float
+get_rand(void)
+{
+ GLfloat j = 1+(random() % 2);
+ return (j);
+}
+
+static void
+swap_mov(GLfloat *a, GLfloat *b)
+{
+ int j;
+ swap(a,b);
+ j = get_rand();
+ if (*a < 0)
+ *a = j * -1;
+ else
+ *a = j;
+}
+
+static void
+cp_b_pos(blinkboxstruct *bp, Tdpos *s_pos)
+{
+ s_pos->x = bp->ball.x;
+ s_pos->y = bp->ball.y;
+ s_pos->z = bp->ball.z;
+}
+
+static void
+hit_side(blinkboxstruct *bp)
+{
+ if ((bp->ball.x - bp->ball.d) <= bbox.bottom.x){
+ bp->lside.hit = 1;
+ bp->lside.counter = MAX_COUNT;
+ bp->lside.des_count = 1;
+ bp->lside.alpha_count = 0;
+ cp_b_pos(bp, &bp->lside.pos);
+ swap_mov(&bp->mo.x,&bp->moh.x);
+ }else
+ if ((bp->ball.x + bp->ball.d) >= bbox.top.x){
+ bp->rside.hit = 1;
+ bp->rside.counter = MAX_COUNT;
+ bp->rside.des_count = 1;
+ bp->rside.alpha_count = 0;
+ cp_b_pos(bp, &bp->rside.pos);
+ swap_mov(&bp->mo.x,&bp->moh.x);
+ }
+}
+
+static void
+hit_top_bottom(blinkboxstruct *bp)
+{
+ if ((bp->ball.y - bp->ball.d) <= bbox.bottom.y){
+ bp->bside.hit = 1;
+ bp->bside.counter = MAX_COUNT;
+ bp->bside.des_count = 1;
+ bp->bside.alpha_count = 0;
+ cp_b_pos(bp, &bp->bside.pos);
+ swap_mov(&bp->mo.y,&bp->moh.y);
+ }else
+ if ((bp->ball.y + bp->ball.d) >= bbox.top.y){
+ bp->tside.hit = 1;
+ bp->tside.counter = MAX_COUNT;
+ bp->tside.des_count = 1;
+ bp->tside.alpha_count = 0;
+ cp_b_pos(bp, &bp->tside.pos);
+ swap_mov(&bp->mo.y,&bp->moh.y);
+ }
+}
+
+static void
+hit_front_back(blinkboxstruct *bp)
+{
+ if ((bp->ball.z - bp->ball.d) <= bbox.bottom.z){
+ bp->aside.hit = 1;
+ bp->aside.counter = MAX_COUNT;
+ bp->aside.des_count = 1;
+ bp->aside.alpha_count = 0;
+ cp_b_pos(bp, &bp->aside.pos);
+ swap_mov(&bp->mo.z,&bp->moh.z);
+ }else
+ if((bp->ball.z + bp->ball.d) >= bbox.top.z){
+ bp->fside.hit = 1;
+ bp->fside.counter = MAX_COUNT;
+ bp->fside.des_count = 1;
+ bp->fside.alpha_count = 0;
+ cp_b_pos(bp, &bp->fside.pos);
+ swap_mov(&bp->mo.z,&bp->moh.z);
+ }
+}
+
+ENTRYPOINT void
+reshape_ball (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 40.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 2.0, 10.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+}
+
+static void
+unit_cube(int wire)
+{
+ glBegin((wire)?GL_LINE_LOOP:GL_QUADS);
+ glNormal3f( 0.0f, -1.0f, 0.0f);
+ glVertex3f(-1.0f, -1.0f, -1.0f);
+ glVertex3f( 1.0f, -1.0f, -1.0f);
+ glVertex3f( 1.0f, -1.0f, 1.0f);
+ glVertex3f(-1.0f, -1.0f, 1.0f);
+ glNormal3f( 0.0f, 0.0f, 1.0f);
+ glVertex3f(-1.0f, -1.0f, 1.0f);
+ glVertex3f( 1.0f, -1.0f, 1.0f);
+ glVertex3f( 1.0f, 1.0f, 1.0f);
+ glVertex3f(-1.0f, 1.0f, 1.0f);
+ glNormal3f( 0.0f, 0.0f, -1.0f);
+ glVertex3f(-1.0f, -1.0f, -1.0f);
+ glVertex3f(-1.0f, 1.0f, -1.0f);
+ glVertex3f( 1.0f, 1.0f, -1.0f);
+ glVertex3f( 1.0f, -1.0f, -1.0f);
+ glNormal3f( 1.0f, 0.0f, 0.0f);
+ glVertex3f( 1.0f, -1.0f, -1.0f);
+ glVertex3f( 1.0f, 1.0f, -1.0f);
+ glVertex3f( 1.0f, 1.0f, 1.0f);
+ glVertex3f( 1.0f, -1.0f, 1.0f);
+ glNormal3f( -1.0f, 0.0f, 0.0f);
+ glVertex3f(-1.0f, -1.0f, -1.0f);
+ glVertex3f(-1.0f, -1.0f, 1.0f);
+ glVertex3f(-1.0f, 1.0f, 1.0f);
+ glVertex3f(-1.0f, 1.0f, -1.0f);
+ glNormal3f( 1.0f, 1.0f, 0.0f);
+ glVertex3f(-1.0f, 1.0f, -1.0f);
+ glVertex3f(-1.0f, 1.0f, 1.0f);
+ glVertex3f( 1.0f, 1.0f, 1.0f);
+ glVertex3f( 1.0f, 1.0f, -1.0f);
+ glEnd();
+}
+
+ENTRYPOINT void
+init_ball (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ blinkboxstruct *bp;
+
+ MI_INIT (mi, blinkbox);
+ bp = &blinkbox[MI_SCREEN(mi)];
+
+ if ((bp->glx_context = init_GL(mi)) != NULL) {
+ reshape_ball(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ }
+ else
+ MI_CLEARWINDOW(mi);
+
+ bp->ball.d = 1;
+ bp->bscale.wh = bscale_wh;
+ bp->bscale.d = 0.25;
+
+ bp->mo.x = 1;
+ bp->mo.y = 1;
+ bp->mo.z = 1;
+
+ bp->moh.x = -1.0;
+ bp->moh.y = -1.5;
+ bp->moh.z = -1.5;
+
+ bp->bpos.x = 1;
+ bp->bpos.y = 1;
+ bp->bpos.z = 1;
+
+ bp->des_amt = 1;
+
+ bp->lside.counter = MAX_COUNT;
+ bp->rside.counter = MAX_COUNT;
+ bp->tside.counter = MAX_COUNT;
+ bp->bside.counter = MAX_COUNT;
+ bp->fside.counter = MAX_COUNT;
+ bp->aside.counter = MAX_COUNT;
+
+ bp->lside.color[0] = 1;
+ bp->rside.color[1] = 1;
+ bp->tside.color[2] = 1;
+
+ bp->bside.color[0] = 1;
+ bp->bside.color[1] = 0.5;
+
+ bp->fside.color[0] = 1;
+ bp->fside.color[1] = 1;
+
+ bp->aside.color[0] = 0.5;
+ bp->aside.color[2] = 1;
+
+ bp->lside.rot[0] = 90;
+ bp->rside.rot[0] = 90;
+ bp->tside.rot[0] = 90;
+ bp->bside.rot[0] = 90;
+ bp->fside.rot[0] = 90;
+ bp->aside.rot[0] = 90;
+
+ bp->lside.rot[2] = 1;
+ bp->rside.rot[2] = 1;
+ bp->tside.rot[1] = 1;
+ bp->bside.rot[1] = 1;
+ bp->fside.rot[3] = 1;
+ bp->aside.rot[3] = 1;
+
+ bp->lside.des_count = 1;
+ bp->rside.des_count = 1;
+ bp->tside.des_count = 1;
+ bp->bside.des_count = 1;
+ bp->fside.des_count = 1;
+ bp->aside.des_count = 1;
+
+ bp->lside.alpha_count = 1;
+ bp->rside.alpha_count = 1;
+ bp->tside.alpha_count = 1;
+ bp->bside.alpha_count = 1;
+ bp->fside.alpha_count = 1;
+ bp->aside.alpha_count = 1;
+
+
+#define SPHERE_SLICES 12 /* how densely to render spheres */
+#define SPHERE_STACKS 16
+
+ bp->sp = malloc(sizeof(*bp->sp));
+ if(bp->sp == NULL){
+ fprintf(stderr,"Could not allocate memory\n");
+ exit(1);
+ }
+ if( (bp->bscale.wh < 1) ||
+ (bp->bscale.wh > 8) ) {
+ fprintf(stderr,"Boxsize out of range. Using default\n");
+ bp->bscale.wh = 2;
+ }
+ if (do_dissolve){
+ bp->des_amt = bp->bscale.wh / MAX_COUNT;
+ }
+
+ reshape_ball(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ bp->ballList = glGenLists(1);
+ glNewList(bp->ballList, GL_COMPILE);
+ unit_sphere (SPHERE_STACKS, SPHERE_SLICES, wire);
+ glEndList ();
+
+ bp->boxList = glGenLists(1);
+ glNewList(bp->boxList, GL_COMPILE);
+ unit_cube(wire);
+ glEndList();
+
+ if (wire) return;
+
+ glEnable(GL_COLOR_MATERIAL);
+ glShadeModel(GL_SMOOTH);
+ glClearDepth(1.0f);
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_LIGHTING);
+ glClearDepth(1);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);
+ glEnable(GL_LIGHT1);
+ if (do_fade || do_blur) {
+ glEnable(GL_BLEND);
+ glDisable(GL_DEPTH_TEST);
+ }
+}
+
+static void
+CheckBoxPos(blinkboxstruct *bp,
+ GLfloat bot_x, GLfloat top_x, GLfloat bot_y, GLfloat top_y)
+{
+ /*Make sure it's inside of the bounding box*/
+ bp->bpos.x = ((bp->bpos.x - bp->bscale.wh) < bot_x) ? bot_x + bp->bscale.wh : bp->bpos.x;
+ bp->bpos.x = ((bp->bpos.x + bp->bscale.wh) > top_x) ? top_x - bp->bscale.wh : bp->bpos.x;
+ bp->bpos.y = ((bp->bpos.y - bp->bscale.wh) < bot_y) ? bot_y + bp->bscale.wh : bp->bpos.y;
+ bp->bpos.y = ((bp->bpos.y + bp->bscale.wh) > top_y) ? top_y - bp->bscale.wh : bp->bpos.y;
+}
+
+ENTRYPOINT void
+draw_ball (ModeInfo *mi)
+{
+ blinkboxstruct *bp = &blinkbox[MI_SCREEN(mi)];
+
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i = 0;
+
+ if (! bp->glx_context)
+ return;
+ mi->polygon_count = 0;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ hit_top_bottom(bp);
+ hit_front_back(bp);
+ hit_side(bp);
+
+ glRotated(0.25,0,0,1);
+ glRotated(0.25,0,1,0);
+ glRotated(0.25,1,0,0);
+
+
+ glPushMatrix();
+ glScalef(0.5,0.5,0.5);
+
+ glColor3f(1,1,1);
+ glPushMatrix();
+
+ if (!do_blur || MI_IS_WIREFRAME(mi)) {
+ glTranslatef(bp->ball.x += bp->mo.x,
+ bp->ball.y += bp->mo.y,
+ bp->ball.z += bp->mo.z);
+
+ glScalef(2,2,2);
+ glCallList(bp->ballList);
+ mi->polygon_count += SPHERE_SLICES*SPHERE_STACKS;
+
+ } else {
+
+# define blur_detail 24.0
+ float ball_alpha = 1 / blur_detail;
+
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ glTranslatef(bp->ball.x, bp->ball.y, bp->ball.z);
+
+ for (i = 0; i < blur_detail; ++i) {
+ glTranslatef(bp->mo.x / blur_detail,
+ bp->mo.y / blur_detail,
+ bp->mo.z / blur_detail);
+
+ /* comment the following line for quick but boring linear blur */
+ ball_alpha = sin((M_PI / blur_detail) * i) / blur_detail;
+
+ glColor4f(1, 1, 1, ball_alpha);
+
+ glScalef(2, 2, 2);
+ glCallList(bp->ballList);
+ mi->polygon_count += SPHERE_SLICES*SPHERE_STACKS;
+ glScalef(.5, .5, .5);
+ }
+ i = 0;
+
+ bp->ball.x += bp->mo.x;
+ bp->ball.y += bp->mo.y;
+ bp->ball.z += bp->mo.z;
+ }
+
+ glPopMatrix();
+
+ while(i < 6){
+ switch(i){
+ case 0:{
+ bp->sp = &bp->lside;
+ bp->bpos.x = bp->lside.pos.z*-1;
+ bp->bpos.y = bp->lside.pos.y;
+ bp->bpos.z = bbox.bottom.x - bp->bscale.d;
+ if (bp->sp->hit)
+ CheckBoxPos(bp, bbox.bottom.z,bbox.top.z,bbox.bottom.y,bbox.top.y);
+ break;
+ }
+ case 1:{
+ bp->sp = &bp->rside;
+ bp->bpos.x = bp->rside.pos.z*-1;
+ bp->bpos.y = bp->rside.pos.y;
+ bp->bpos.z = bbox.top.x + bp->bscale.d;
+ if (bp->sp->hit)
+ CheckBoxPos(bp, bbox.bottom.z,bbox.top.z,bbox.bottom.y,bbox.top.y);
+ break;
+ }
+ case 2:{
+ bp->sp = &bp->tside;
+ bp->bpos.x = bp->tside.pos.x;
+ bp->bpos.y = bp->tside.pos.z;
+ bp->bpos.z = bbox.bottom.y - bp->bscale.d;
+ if (bp->sp->hit)
+ CheckBoxPos(bp, bbox.bottom.x,bbox.top.x,bbox.bottom.z,bbox.top.z);
+ break;
+ }
+ case 3:{
+ bp->sp = &bp->bside;
+ bp->bpos.x = bp->bside.pos.x;
+ bp->bpos.y = bp->bside.pos.z;
+ bp->bpos.z = bbox.top.y + bp->bscale.d;
+ if (bp->sp->hit)
+ CheckBoxPos(bp, bbox.bottom.x,bbox.top.x,bbox.bottom.z,bbox.top.z);
+ break;
+ }
+ case 4:{
+ bp->sp = &bp->fside;
+ bp->bpos.x = bp->fside.pos.y;
+ bp->bpos.y = bp->fside.pos.x*-1;
+ bp->bpos.z = bbox.top.z + bp->bscale.d;
+ if (bp->sp->hit)
+ CheckBoxPos(bp, bbox.bottom.y,bbox.top.y,bbox.bottom.x,bbox.top.x);
+ break;
+ }
+ case 5:{
+ bp->sp = &bp->aside;
+ bp->bpos.x = bp->aside.pos.y;
+ bp->bpos.y = bp->aside.pos.x*-1;
+ bp->bpos.z = bbox.bottom.z + bp->bscale.d;
+ if (bp->sp->hit)
+ CheckBoxPos(bp, bbox.bottom.y,bbox.top.y,bbox.bottom.x,bbox.top.x);
+ break;
+ }
+ }
+ if(bp->sp->hit){
+ if(do_fade){
+ glColor4f(bp->sp->color[0],bp->sp->color[1],bp->sp->color[2],1-(ALPHA_AMT * bp->sp->alpha_count));
+ }else{
+ glColor3fv(bp->sp->color);
+ }
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ glPushMatrix();
+ glRotatef(bp->sp->rot[0],bp->sp->rot[1],bp->sp->rot[2],bp->sp->rot[3]);
+ glTranslatef(bp->bpos.x,bp->bpos.y,bp->bpos.z);
+ if (do_dissolve) {
+ glScalef(bp->bscale.wh-(bp->des_amt*bp->sp->des_count),bp->bscale.wh-(bp->des_amt*bp->sp->des_count),bp->bscale.d);
+ }else{
+ glScalef(bp->bscale.wh,bp->bscale.wh,bp->bscale.d);
+ }
+ glCallList(bp->boxList);
+ mi->polygon_count += 6;
+ glPopMatrix();
+ bp->sp->counter--;
+ bp->sp->des_count++;
+ bp->sp->alpha_count++;
+ if(!bp->sp->counter)
+ {
+ bp->sp->hit = 0;
+ }
+ }
+ i++;
+ }
+
+
+ glPopMatrix();
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(dpy, window);
+
+}
+
+XSCREENSAVER_MODULE_2 ("BlinkBox", blinkbox, ball)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/blinkbox.man b/hacks/glx/blinkbox.man
new file mode 100644
index 0000000..0dc2a3f
--- /dev/null
+++ b/hacks/glx/blinkbox.man
@@ -0,0 +1,73 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+blinkbox \- shows a ball inside a box.
+.SH SYNOPSIS
+.B blinkbox
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-wireframe]
+[\-boxsize \fInumber\fP]
+[\-dissolve]
+[\-fade]
+[\-no\-blur]
+[\-fps]
+.SH DESCRIPTION
+Shows a ball contained inside of a bounding box. Colored blocks blink in
+when the ball hits the edges.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-boxsize
+Sets the size of the colored boxes. Should be between 1 and 8. Default: 2
+.TP 8
+.B \-dissolve | \-no-dissolve
+Boxes shrink instead of just vanishing.
+.TP 8
+.B \-fade | \-no-fade
+Boxes fade to transparency instead of just vanishing.
+.TP 8
+.B \-blur | \-no-blur
+Enable or disable motion blur on the ball. Default: blurry.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Jeremy English. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jeremy English. Motion blur by John Boero.
diff --git a/hacks/glx/blocktube.c b/hacks/glx/blocktube.c
new file mode 100644
index 0000000..d4a402e
--- /dev/null
+++ b/hacks/glx/blocktube.c
@@ -0,0 +1,457 @@
+/* blocktube, Copyright (c) 2003 Lars Damerow <lars@oddment.org>
+ *
+ * Based on Jamie Zawinski's original dangerball code.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEBUG 1
+
+#define DEFAULTS "*delay: 40000 \n" \
+ "*wireframe: False \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_blocktube 0
+# define blocktube_handle_event xlockmore_no_events
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include <math.h>
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_HOLDTIME "1000"
+#define DEF_CHANGETIME "200"
+#define MAX_ENTITIES 1000
+#define DEF_TEXTURE "True"
+#define DEF_FOG "True"
+
+#if defined(USE_XPM) || defined(USE_XPMINC) || defined(STANDALONE)
+/* USE_XPM & USE_XPMINC in xlock mode ; HAVE_XPM in xscreensaver mode */
+#include "ximage-loader.h"
+#define I_HAVE_XPM
+
+#include "images/gen/blocktube_png.h"
+#endif /* HAVE_XPM */
+
+typedef struct {
+ int id, r, g, b;
+ GLfloat tVal;
+ int age;
+ int lifetime;
+ GLfloat position[3];
+ GLfloat angle;
+ GLfloat angularVelocity;
+} entity;
+
+typedef struct {
+ GLXContext *glx_context;
+ GLuint block_dlist;
+ int nextID;
+
+ entity entities[MAX_ENTITIES];
+ float targetR, targetG, targetB,
+ currentR, currentG, currentB,
+ deltaR, deltaG, deltaB;
+ int counter;
+ int changing;
+ GLfloat zoom;
+ GLfloat tilt;
+ GLuint envTexture;
+ XImage *texti;
+
+ GLfloat tunnelLength;
+ GLfloat tunnelWidth;
+ int polys;
+
+} blocktube_configuration;
+
+static blocktube_configuration *lps = NULL;
+
+static GLint holdtime;
+static GLint changetime;
+static int do_texture;
+static int do_fog;
+
+static XrmOptionDescRec opts[] = {
+ { "-holdtime", ".holdtime", XrmoptionSepArg, 0 },
+ { "-changetime", ".changetime", XrmoptionSepArg, 0 },
+ {"-texture", ".texture", XrmoptionNoArg, "True" },
+ {"+texture", ".texture", XrmoptionNoArg, "False" },
+ {"-fog", ".fog", XrmoptionNoArg, "True" },
+ {"+fog", ".fog", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&holdtime, "holdtime", "Hold Time", DEF_HOLDTIME, t_Int},
+ {&changetime, "changetime", "Change Time", DEF_CHANGETIME, \
+ t_Int},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_fog, "fog", "Fog", DEF_FOG, t_Bool},
+};
+
+static OptionStruct desc[] = {
+ {"-holdtime", "how long to stay on the same color"},
+ {"-changetime", "how long it takes to fade to a new color"},
+};
+
+ENTRYPOINT ModeSpecOpt blocktube_opts = {countof(opts), opts, countof(vars), vars, desc};
+
+#ifdef USE_MODULES
+ModStruct blocktube_description =
+ {"blocktube", "init_blocktube", "draw_blocktube", (char *)NULL,
+ "draw_blocktube", "init_blocktube", "free_blocktube", &blocktube_opts,
+ 40000, 30, 1, 1, 64, 1.0, "",
+ "A shifting tunnel of reflective blocks", 0, NULL};
+#endif /* USE_MODULES */
+
+#if defined( I_HAVE_XPM )
+static Bool LoadGLTextures(ModeInfo *mi)
+{
+ blocktube_configuration *lp = &lps[MI_SCREEN(mi)];
+ Bool status;
+
+ status = True;
+ glGenTextures(1, &lp->envTexture);
+ glBindTexture(GL_TEXTURE_2D, lp->envTexture);
+ lp->texti = image_data_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+ blocktube_png, sizeof(blocktube_png));
+ if (!lp->texti) {
+ status = False;
+ } else {
+ glPixelStorei(GL_UNPACK_ALIGNMENT,1);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, lp->texti->width, lp->texti->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, lp->texti->data);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+# ifndef HAVE_JWZGLES /* #### Sphere maps unimplemented */
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+# endif
+ }
+ return status;
+}
+#endif
+
+static void newTargetColor(blocktube_configuration *lp)
+{
+ int luminance = 0;
+
+ while (luminance <= 150) {
+ lp->targetR = random() % 256;
+ lp->targetG = random() % 256;
+ lp->targetB = random() % 256;
+ lp->deltaR = (lp->targetR - lp->currentR) / changetime;
+ lp->deltaG = (lp->targetG - lp->currentG) / changetime;
+ lp->deltaB = (lp->targetB - lp->currentB) / changetime;
+ luminance = 0.3 * lp->targetR + 0.59 * lp->targetG + 0.11 * lp->targetB;
+ }
+}
+
+static void randomize_entity (blocktube_configuration *lp, entity *ent)
+{
+ ent->id = lp->nextID++;
+ ent->tVal = 1 - ((float)random() / RAND_MAX / 1.5);
+ ent->age = 0;
+ ent->lifetime = 100;
+ ent->angle = random() % 360;
+ ent->angularVelocity = 0.5-((float)(random()) / RAND_MAX);
+ ent->position[0] = (float)(random()) / RAND_MAX + lp->tunnelWidth;
+ ent->position[1] = (float)(random()) / RAND_MAX * 2;
+ ent->position[2] = -(float)(random()) / RAND_MAX * lp->tunnelLength;
+}
+
+static void entityTick(blocktube_configuration *lp, entity *ent)
+{
+ ent->angle += ent->angularVelocity;
+ ent->position[2] += 0.1;
+ if (ent->position[2] > lp->zoom) {
+ ent->position[2] = -lp->tunnelLength + ((float)(random()) / RAND_MAX) * 20;
+ }
+ ent->age += 0.1;
+}
+
+static void tick(blocktube_configuration *lp)
+{
+ lp->counter--;
+ if (!lp->counter) {
+ if (!lp->changing) {
+ newTargetColor(lp);
+ lp->counter = changetime;
+ } else {
+ lp->counter = holdtime;
+ }
+ lp->changing = (!lp->changing);
+ } else {
+ if (lp->changing) {
+ lp->currentR += lp->deltaR;
+ lp->currentG += lp->deltaG;
+ lp->currentB += lp->deltaB;
+ }
+ }
+}
+
+static int cube_vertices(float x, float y, float z, int wire);
+
+ENTRYPOINT void reshape_blocktube (ModeInfo *mi, int width, int height);
+
+ENTRYPOINT void init_blocktube (ModeInfo *mi)
+{
+ int loop;
+ GLfloat fogColor[4] = {0,0,0,1};
+ blocktube_configuration *lp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT(mi, lps);
+
+ lp = &lps[MI_SCREEN(mi)];
+ lp->glx_context = init_GL(mi);
+
+ lp->zoom = 30;
+ lp->tilt = 4.5;
+ lp->tunnelLength = 200;
+ lp->tunnelWidth = 5;
+
+ if (wire) {
+ do_fog = False;
+ do_texture = False;
+ glLineWidth(2);
+ }
+
+ lp->block_dlist = glGenLists (1);
+ glNewList (lp->block_dlist, GL_COMPILE);
+ lp->polys = cube_vertices(0.15, 1.2, 5.25, wire);
+ glEndList ();
+
+#if defined( I_HAVE_XPM )
+ if (do_texture) {
+ if (!LoadGLTextures(mi)) {
+ fprintf(stderr, "%s: can't load textures!\n", progname);
+ exit(1);
+ }
+ glEnable(GL_TEXTURE_2D);
+ }
+#endif
+
+ /* kick on the fog machine */
+ if (do_fog) {
+ glEnable(GL_FOG);
+ glFogi(GL_FOG_MODE, GL_LINEAR);
+ glHint(GL_FOG_HINT, GL_NICEST);
+ glFogf(GL_FOG_START, 0);
+ glFogf(GL_FOG_END, lp->tunnelLength/1.8);
+ glFogfv(GL_FOG_COLOR, fogColor);
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
+ }
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glClearDepth(1.0f);
+
+ if (!do_texture && !wire) {
+ /* If there is no texture, the boxes don't show up without a light.
+ Though I don't understand why all the blocks come out gray.
+ */
+ GLfloat pos[4] = {0.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ }
+
+ lp->counter = holdtime;
+ lp->currentR = random() % 256;
+ lp->currentG = random() % 256;
+ lp->currentB = random() % 256;
+ newTargetColor(lp);
+ for (loop = 0; loop < MAX_ENTITIES; loop++)
+ {
+ randomize_entity(lp, &lp->entities[loop]);
+ }
+ reshape_blocktube(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glFlush();
+}
+
+ENTRYPOINT void free_blocktube (ModeInfo *mi)
+{
+ blocktube_configuration *lp = &lps[MI_SCREEN(mi)];
+# if defined ( I_HAVE_XPM )
+ if (lp->glx_context) {
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(lp->glx_context));
+
+ if (lp->envTexture)
+ glDeleteTextures(1, &lp->envTexture);
+ if (lp->texti)
+ XDestroyImage(lp->texti);
+ }
+# endif
+}
+
+ENTRYPOINT void reshape_blocktube (ModeInfo *mi, int width, int height)
+{
+ blocktube_configuration *lp = &lps[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(lp->glx_context));
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(45.0, 1/h, 1.0, 100.0);
+ glMatrixMode(GL_MODELVIEW);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+}
+
+static int cube_vertices(float x, float y, float z, int wire)
+{
+ int polygon_count = 0;
+ float x2, y2, z2, nv = 0.7;
+ x2 = x/2;
+ y2 = y/2;
+ z2 = z/2;
+
+ glFrontFace(GL_CW);
+
+ glNormal3f(0, 0, nv);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(0.0, 0.0); glVertex3f(-x2, y2, z2);
+ glTexCoord2f(1.0, 0.0); glVertex3f( x2, y2, z2);
+ glTexCoord2f(1.0, 1.0); glVertex3f( x2, -y2, z2);
+ glTexCoord2f(0.0, 1.0); glVertex3f(-x2, -y2, z2);
+ polygon_count++;
+ glEnd();
+
+ glNormal3f(0, 0, -nv);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(1.0, 0.0); glVertex3f(-x2, -y2, -z2);
+ glTexCoord2f(1.0, 1.0); glVertex3f( x2, -y2, -z2);
+ glTexCoord2f(0.0, 1.0); glVertex3f( x2, y2, -z2);
+ glTexCoord2f(0.0, 0.0); glVertex3f(-x2, y2, -z2);
+ polygon_count++;
+ glEnd();
+
+ glNormal3f(0, nv, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(0.0, 1.0); glVertex3f(-x2, y2, -z2);
+ glTexCoord2f(0.0, 0.0); glVertex3f( x2, y2, -z2);
+ glTexCoord2f(1.0, 0.0); glVertex3f( x2, y2, z2);
+ glTexCoord2f(1.0, 1.0); glVertex3f(-x2, y2, z2);
+ polygon_count++;
+ glEnd();
+
+ glNormal3f(0, -nv, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(1.0, 1.0); glVertex3f(-x2, -y2, -z2);
+ glTexCoord2f(0.0, 1.0); glVertex3f(-x2, -y2, z2);
+ glTexCoord2f(0.0, 0.0); glVertex3f( x2, -y2, z2);
+ glTexCoord2f(1.0, 0.0); glVertex3f( x2, -y2, -z2);
+ polygon_count++;
+ glEnd();
+
+ if (wire) return polygon_count;
+
+ glNormal3f(nv, 0, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(1.0, 0.0); glVertex3f( x2, -y2, -z2);
+ glTexCoord2f(1.0, 1.0); glVertex3f( x2, -y2, z2);
+ glTexCoord2f(0.0, 1.0); glVertex3f( x2, y2, z2);
+ glTexCoord2f(0.0, 0.0); glVertex3f( x2, y2, -z2);
+ polygon_count++;
+ glEnd();
+
+ glNormal3f(-nv, 0, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(0.0, 0.0); glVertex3f(-x2, -y2, -z2);
+ glTexCoord2f(1.0, 0.0); glVertex3f(-x2, y2, -z2);
+ glTexCoord2f(1.0, 1.0); glVertex3f(-x2, y2, z2);
+ glTexCoord2f(0.0, 1.0); glVertex3f(-x2, -y2, z2);
+ polygon_count++;
+ glEnd();
+
+ return polygon_count;
+}
+
+static void draw_block(ModeInfo *mi, entity *ent)
+{
+ blocktube_configuration *lp = &lps[MI_SCREEN(mi)];
+ glCallList (lp->block_dlist);
+ mi->polygon_count += lp->polys;
+}
+
+ENTRYPOINT void
+draw_blocktube (ModeInfo *mi)
+{
+ blocktube_configuration *lp = &lps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ entity *cEnt = NULL;
+ int loop = 0;
+
+ if (!lp->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(lp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (do_texture) {
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ glBindTexture(GL_TEXTURE_2D, lp->envTexture);
+ }
+
+ for (loop = 0; loop < MAX_ENTITIES; loop++) {
+ cEnt = &lp->entities[loop];
+
+ glLoadIdentity();
+ glTranslatef(0.0f, 0.0f, lp->zoom);
+ glRotatef(lp->tilt, 1.0f, 0.0f, 0.0f);
+ glRotatef(cEnt->angle, 0.0f, 0.0f, 1.0f);
+ glTranslatef(cEnt->position[0], cEnt->position[1], cEnt->position[2]);
+ glColor4ub((int)(lp->currentR * cEnt->tVal),
+ (int)(lp->currentG * cEnt->tVal),
+ (int)(lp->currentB * cEnt->tVal), 255);
+ draw_block(mi, cEnt);
+ entityTick(lp, cEnt);
+ }
+ tick(lp);
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("BlockTube", blocktube)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/blocktube.man b/hacks/glx/blocktube.man
new file mode 100644
index 0000000..5d016e0
--- /dev/null
+++ b/hacks/glx/blocktube.man
@@ -0,0 +1,73 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+blocktube - draws a swirling, falling tunnel of reflective slabs
+.SH SYNOPSIS
+.B blocktube
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-holdtime \fInumber\fP]
+[\-changetime \fInumber\fP]
+[\-no-texture]
+[\-no-fog]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Blocktube draws a swirling, falling tunnel of reflective slabs. They fade
+from hue to hue.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 40000 (0.04 seconds.).
+.TP 8
+.B \-holdtime \fInumber\fP
+How long to stay on the same color. Default: 1000 frames.
+.TP 8
+.B \-changetime \fInumber\fP
+How long it takes to fade to a new color. Default: 200 frames.
+.TP 8
+.B \-no-texture
+Draw solid blocks intstead of reflective blocks.
+.TP 8
+.B \-no-fog
+Do not make blocks in the distance be darker.
+.TP 8
+.B \-wireframe
+Only draw outlines.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Lars Damerow. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Lars Damerow <lars@oddment.org>
diff --git a/hacks/glx/boing.c b/hacks/glx/boing.c
new file mode 100644
index 0000000..55a05f3
--- /dev/null
+++ b/hacks/glx/boing.c
@@ -0,0 +1,658 @@
+/* boing, Copyright (c) 2005-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * A clone of the Amiga 1000 "Boing" demo. This was the first graphics demo
+ * for the Amiga, written by Dale Luck and RJ Mical during a break at the 1984
+ * Consumer Electronics Show (or so the legend goes.) The boing ball was
+ * briefly the official logo of Amiga Inc., until they were bought by
+ * Commodore later that year.
+ *
+ * With no arguments, this program looks a lot like the original Amiga demo.
+ * With "-smooth -lighting", it looks... less old.
+ *
+ * The amiga version made noise when the ball hit the walls. This version
+ * does not, obviously.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_boing 0
+# define release_boing 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_LIGHTING "False"
+#define DEF_SMOOTH "False"
+#define DEF_SCANLINES "True"
+#define DEF_SPEED "1.0"
+#define DEF_BALL_SIZE "0.5"
+#define DEF_ANGLE "15"
+#define DEF_MERIDIANS "16"
+#define DEF_PARALLELS "8"
+#define DEF_TILES "12"
+#define DEF_THICKNESS "0.05"
+
+#define DEF_BALL_COLOR1 "#CC1919"
+#define DEF_BALL_COLOR2 "#F2F2F2"
+#define DEF_GRID_COLOR "#991999"
+#define DEF_SHADOW_COLOR "#303030"
+#define DEF_BACKGROUND "#8C8C8C"
+
+typedef struct { GLfloat x, y, z; } XYZ;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLfloat speed;
+
+ GLuint ball_list;
+ double ball_x, ball_y, ball_z, ball_th;
+ double ball_dx, ball_dy, ball_dz, ball_dth;
+ double ball_ddx, ball_ddy, ball_ddz;
+
+ GLfloat ball_color1[4], ball_color2[4], grid_color[4];
+ GLfloat bg_color[4], shadow_color[4];
+ GLfloat lightpos[4];
+
+} boing_configuration;
+
+static boing_configuration *bps = NULL;
+
+static Bool spin;
+static Bool lighting_p;
+static Bool smooth_p;
+static Bool scanlines_p;
+static GLfloat speed;
+static int angle;
+static GLfloat ball_size;
+static unsigned int meridians;
+static unsigned int parallels;
+static unsigned int tiles;
+static GLfloat thickness;
+static char *ball_color1_str, *ball_color2_str, *grid_color_str,
+ *shadow_str, *bg_str;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-lighting", ".lighting", XrmoptionNoArg, "True" },
+ { "+lighting", ".lighting", XrmoptionNoArg, "False" },
+ { "-smooth", ".smooth", XrmoptionNoArg, "True" },
+ { "+smooth", ".smooth", XrmoptionNoArg, "False" },
+ { "-scanlines", ".scanlines", XrmoptionNoArg, "True" },
+ { "+scanlines", ".scanlines", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-angle", ".angle", XrmoptionSepArg, 0 },
+ { "-size", ".ballSize", XrmoptionSepArg, 0 },
+ { "-meridians", ".meridians", XrmoptionSepArg, 0 },
+ { "-parallels", ".parallels", XrmoptionSepArg, 0 },
+ { "-tiles", ".tiles", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-ball-color1",".ballColor1",XrmoptionSepArg, 0 },
+ { "-ball-color2",".ballColor2",XrmoptionSepArg, 0 },
+ { "-grid-color", ".gridColor", XrmoptionSepArg, 0 },
+ { "-shadow-color",".shadowColor",XrmoptionSepArg, 0 },
+ { "-background", ".boingBackground",XrmoptionSepArg, 0 },
+ { "-bg", ".boingBackground",XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&lighting_p,"lighting", "Lighting", DEF_LIGHTING, t_Bool},
+ {&smooth_p, "smooth", "Smooth", DEF_SMOOTH, t_Bool},
+ {&scanlines_p,"scanlines","Scanlines", DEF_SCANLINES, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&angle, "angle", "Angle", DEF_ANGLE, t_Int},
+ {&ball_size, "ballSize", "BallSize", DEF_BALL_SIZE, t_Float},
+ {&meridians, "meridians", "meridians", DEF_MERIDIANS, t_Int},
+ {&parallels, "parallels", "parallels", DEF_PARALLELS, t_Int},
+ {&tiles, "tiles", "Tiles", DEF_TILES, t_Int},
+ {&thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&ball_color1_str, "ballColor1", "BallColor1", DEF_BALL_COLOR1, t_String},
+ {&ball_color2_str, "ballColor2", "BallColor2", DEF_BALL_COLOR2, t_String},
+ {&grid_color_str, "gridColor", "GridColor", DEF_GRID_COLOR, t_String},
+ {&shadow_str, "shadowColor","ShadowColor",DEF_SHADOW_COLOR,t_String},
+ /* dammit, -background is too magic... */
+ {&bg_str, "boingBackground", "Background", DEF_BACKGROUND, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt boing_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+static void
+parse_color (ModeInfo *mi, const char *name, const char *s, GLfloat *a)
+{
+ XColor c;
+ a[3] = 1.0; /* alpha */
+
+ if (! XParseColor (MI_DISPLAY(mi), MI_COLORMAP(mi), s, &c))
+ {
+ fprintf (stderr, "%s: can't parse %s color %s", progname, name, s);
+ exit (1);
+ }
+ a[0] = c.red / 65536.0;
+ a[1] = c.green / 65536.0;
+ a[2] = c.blue / 65536.0;
+}
+
+
+static void
+draw_grid (ModeInfo *mi)
+{
+ boing_configuration *bp = &bps[MI_SCREEN(mi)];
+ int x, y;
+ GLfloat t2 = (GLfloat) tiles / 2;
+ GLfloat s = 1.0 / (tiles + thickness);
+ GLfloat z = 0;
+
+ GLfloat lw = MI_HEIGHT(mi) * 0.06 * thickness;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bp->grid_color);
+ glColor3fv (bp->grid_color);
+
+ glPushMatrix();
+ glScalef(s, s, s);
+ glTranslatef (-t2, -t2, 0);
+
+ glLineWidth (lw);
+ glBegin (GL_LINES);
+ for (y = 0; y <= tiles; y++)
+ {
+ glVertex3f (0, y, z);
+ glVertex3f (tiles, y, z);
+ /*mi->polygon_count++;*/
+ }
+ for (x = 0; x <= tiles; x++)
+ {
+ glVertex3f (x, tiles, z);
+ glVertex3f (x, 0, z);
+ /*mi->polygon_count++;*/
+ }
+
+ glEnd();
+ glPopMatrix();
+}
+
+
+static void
+draw_box (ModeInfo *mi)
+{
+ /* boing_configuration *bp = &bps[MI_SCREEN(mi)]; */
+ glPushMatrix();
+ glTranslatef (0, 0, -0.5);
+/* glFrontFace (GL_CCW);*/
+ draw_grid (mi);
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+ glTranslatef (0, 0, 0.5);
+/* glFrontFace (GL_CW);*/
+ draw_grid (mi);
+ glPopMatrix();
+}
+
+
+static void
+draw_ball (ModeInfo *mi)
+{
+ boing_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int x, y;
+ int xx = meridians;
+ int yy = parallels;
+ int scale = (smooth_p ? 5 : 1);
+
+ if (lighting_p && !wire)
+ glEnable (GL_LIGHTING);
+
+ if (parallels < 3)
+ scale *= 2;
+
+ xx *= scale;
+ yy *= scale;
+
+ glFrontFace (GL_CW);
+
+ glPushMatrix();
+ glTranslatef (bp->ball_x, bp->ball_y, bp->ball_z);
+ glScalef (ball_size, ball_size, ball_size);
+ glRotatef (-angle, 0, 0, 1);
+ glRotatef (bp->ball_th, 0, 1, 0);
+
+ for (y = 0; y < yy; y++)
+ {
+ GLfloat thy0 = y * (M_PI * 2) / (yy * 2) + M_PI_2;
+ GLfloat thy1 = (y+1) * (M_PI * 2) / (yy * 2) + M_PI_2;
+
+ for (x = 0; x < xx; x++)
+ {
+ GLfloat thx0 = x * (M_PI * 2) / xx;
+ GLfloat thx1 = (x+1) * (M_PI * 2) / xx;
+ XYZ p;
+ Bool bgp = ((x/scale) & 1) ^ ((y/scale) & 1);
+
+ if (wire && bgp) continue;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ (bgp ? bp->ball_color2 : bp->ball_color1));
+ glColor3fv (bgp ? bp->ball_color2 : bp->ball_color1);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+
+ if (!smooth_p)
+ {
+ p.x = cos((thy0+thy1)/2) * cos((thx0+thx1)/2);
+ p.y = sin((thy0+thy1)/2);
+ p.z = cos((thy0+thy1)/2) * sin((thx0+thx1)/2);
+ glNormal3f (-p.x, -p.y, -p.z);
+ }
+
+ p.x = cos(thy0) * cos(thx0) / 2;
+ p.y = sin(thy0) / 2;
+ p.z = cos(thy0) * sin(thx0) / 2;
+ if (smooth_p)
+ glNormal3f (-p.x, -p.y, -p.z);
+ glVertex3f (p.x, p.y, p.z);
+
+ p.x = cos(thy1) * cos(thx0) / 2;
+ p.y = sin(thy1) / 2;
+ p.z = cos(thy1) * sin(thx0) / 2;
+ if (smooth_p)
+ glNormal3f (-p.x, -p.y, -p.z);
+ glVertex3f (p.x, p.y, p.z);
+
+ p.x = cos(thy1) * cos(thx1) / 2;
+ p.y = sin(thy1) / 2;
+ p.z = cos(thy1) * sin(thx1) / 2;
+ if (smooth_p)
+ glNormal3f (-p.x, -p.y, -p.z);
+ glVertex3f (p.x, p.y, p.z);
+
+ p.x = cos(thy0) * cos(thx1) / 2;
+ p.y = sin(thy0) / 2;
+ p.z = cos(thy0) * sin(thx1) / 2;
+ if (smooth_p)
+ glNormal3f (-p.x, -p.y, -p.z);
+ glVertex3f (p.x, p.y, p.z);
+
+ glEnd ();
+ mi->polygon_count++;
+ }
+ }
+
+ glPopMatrix();
+
+ if (lighting_p && !wire)
+ glDisable(GL_LIGHTING);
+}
+
+
+static void
+draw_shadow (ModeInfo *mi)
+{
+ boing_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat xoff = 0.14;
+ GLfloat yoff = 0.07;
+ int y;
+ int yy = parallels;
+ int scale = (smooth_p ? 5 : 1);
+
+ if (lighting_p && !wire)
+ glEnable (GL_BLEND);
+
+ if (parallels < 3)
+ scale *= 2;
+
+ yy *= scale;
+
+ glPushMatrix();
+ glTranslatef (bp->ball_x + xoff, bp->ball_y + yoff, -0.49);
+ glScalef (ball_size, ball_size, ball_size);
+ glRotatef (-angle, 0, 0, 1);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bp->shadow_color);
+ glColor4fv (bp->shadow_color);
+
+ glFrontFace (GL_CCW);
+ glNormal3f (0, 0, 1);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+ if (!wire) glVertex3f (0, 0, 0);
+
+ for (y = 0; y < yy*2+1; y++)
+ {
+ GLfloat thy0 = y * (M_PI * 2) / (yy * 2) + M_PI_2;
+ glVertex3f (cos(thy0) / 2, sin(thy0) / 2, 0);
+ mi->polygon_count++;
+ }
+
+ glEnd ();
+
+ glPopMatrix();
+
+ if (lighting_p && !wire)
+ glDisable (GL_BLEND);
+}
+
+
+static void
+draw_scanlines (ModeInfo *mi)
+{
+ /* boing_configuration *bp = &bps[MI_SCREEN(mi)]; */
+ int wire = MI_IS_WIREFRAME(mi);
+ int w = MI_WIDTH(mi);
+ int h = MI_HEIGHT(mi);
+
+ if (h <= 300) return;
+
+ if (!wire)
+ {
+ glEnable (GL_BLEND);
+ glDisable (GL_DEPTH_TEST);
+ }
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ {
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ {
+ int lh, ls;
+ int y;
+ glLoadIdentity();
+ glOrtho (0, w, 0, h, -1, 1);
+
+ if (h > 500) lh = 4, ls = 4;
+ else if (h > 300) lh = 2, ls = 1;
+ else lh = 1, ls = 1;
+
+ if (lh == 1)
+ glDisable (GL_BLEND);
+
+ glLineWidth (lh);
+ glColor4f (0, 0, 0, 0.3);
+
+ glBegin(GL_LINES);
+ for (y = 0; y < h; y += lh + ls)
+ {
+ glVertex3f (0, y, 0);
+ glVertex3f (w, y, 0);
+ }
+ glEnd();
+ }
+ glPopMatrix();
+ }
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+
+ if (!wire)
+ {
+ glDisable (GL_BLEND);
+ glEnable (GL_DEPTH_TEST);
+ }
+}
+
+
+
+static void
+tick_physics (ModeInfo *mi)
+{
+ boing_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat s2 = ball_size / 2;
+ GLfloat max = 0.5 - s2;
+ GLfloat min = -max;
+
+ bp->ball_th += bp->ball_dth;
+ while (bp->ball_th > 360) bp->ball_th -= 360;
+ while (bp->ball_th < 0) bp->ball_th += 360;
+
+ bp->ball_dx += bp->ball_ddx;
+ bp->ball_x += bp->ball_dx;
+ if (bp->ball_x < min) bp->ball_x = min, bp->ball_dx = -bp->ball_dx,
+ bp->ball_dth = -bp->ball_dth,
+ bp->ball_dx += (frand(bp->speed/2) - bp->speed);
+ else if (bp->ball_x > max) bp->ball_x = max, bp->ball_dx = -bp->ball_dx,
+ bp->ball_dth = -bp->ball_dth,
+ bp->ball_dx += (frand(bp->speed/2) - bp->speed);
+
+ bp->ball_dy += bp->ball_ddy;
+ bp->ball_y += bp->ball_dy;
+ if (bp->ball_y < min) bp->ball_y = min, bp->ball_dy = -bp->ball_dy;
+ else if (bp->ball_y > max) bp->ball_y = max, bp->ball_dy = -bp->ball_dy;
+
+ bp->ball_dz += bp->ball_ddz;
+ bp->ball_z += bp->ball_dz;
+ if (bp->ball_z < min) bp->ball_z = min, bp->ball_dz = -bp->ball_dz;
+ else if (bp->ball_z > max) bp->ball_z = max, bp->ball_dz = -bp->ball_dz;
+}
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_boing (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ h *= 4.0 / 3.0; /* Back in the caveman days we couldn't even afford
+ square pixels! */
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 3/4;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ if (height > width)
+ {
+ GLfloat s = width / (GLfloat) height;
+ glScalef (s, s, s);
+ }
+
+ gluPerspective (8.0, 1/h, 1.0, 10.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt (0.0, 0.0, 8.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+boing_handle_event (ModeInfo *mi, XEvent *event)
+{
+ boing_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_boing (ModeInfo *mi)
+{
+ boing_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ if (tiles < 1) tiles = 1;
+
+ if (smooth_p)
+ {
+ if (meridians < 1) meridians = 1;
+ if (parallels < 1) parallels = 1;
+ }
+ else
+ {
+ if (meridians < 3) meridians = 3;
+ if (parallels < 2) parallels = 2;
+ }
+
+ if (meridians > 1 && meridians & 1) meridians++; /* odd numbers look bad */
+
+
+ if (thickness <= 0) thickness = 0.001;
+ else if (thickness > 1) thickness = 1;
+
+ reshape_boing (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ parse_color (mi, "ballColor1", ball_color1_str, bp->ball_color1);
+ parse_color (mi, "ballColor2", ball_color2_str, bp->ball_color2);
+ parse_color (mi, "gridColor", grid_color_str, bp->grid_color);
+ parse_color (mi, "shadowColor", shadow_str, bp->shadow_color);
+ parse_color (mi, "background", bg_str, bp->bg_color);
+
+ bp->shadow_color[3] = 0.9;
+
+ glClearColor (bp->bg_color[0], bp->bg_color[1], bp->bg_color[2], 1);
+
+ if (!wire)
+ {
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ }
+
+ bp->lightpos[0] = 0.5;
+ bp->lightpos[1] = 0.5;
+ bp->lightpos[2] = -1;
+ bp->lightpos[3] = 0;
+
+ if (lighting_p && !wire)
+ {
+ GLfloat amb[4] = {0, 0, 0, 1};
+ GLfloat dif[4] = {1, 1, 1, 1};
+ GLfloat spc[4] = {1, 1, 1, 1};
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ bp->speed = speed / 800.0;
+
+ bp->ball_dth = (spin ? -bp->speed * 7 * 360 : 0);
+
+ bp->ball_x = 0.5 - ((ball_size/2) + frand(1-ball_size));
+ bp->ball_y = 0.2;
+ bp->ball_dx = bp->speed * 6 + frand(bp->speed);
+ bp->ball_ddy = -bp->speed;
+
+ bp->ball_dz = bp->speed * 6 + frand(bp->speed);
+
+ bp->trackball = gltrackball_init (False);
+}
+
+
+ENTRYPOINT void
+draw_boing (ModeInfo *mi)
+{
+ boing_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ mi->polygon_count = 0;
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_NORMALIZE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (! bp->button_down_p)
+ tick_physics (mi);
+
+ glPushMatrix ();
+
+ {
+ double rot = current_device_rotation();
+ glRotatef(rot, 0, 0, 1);
+/*
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+ glScalef (1/s, s, 1);
+ }
+*/
+ }
+
+ gltrackball_rotate (bp->trackball);
+
+ glLightfv (GL_LIGHT0, GL_POSITION, bp->lightpos);
+
+ glDisable (GL_CULL_FACE);
+ glDisable (GL_DEPTH_TEST);
+
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+
+ draw_box (mi);
+ draw_shadow (mi);
+
+ glEnable (GL_CULL_FACE);
+ glEnable (GL_DEPTH_TEST);
+
+ draw_ball (mi);
+ if (scanlines_p)
+ draw_scanlines (mi);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Boing", boing)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/boing.man b/hacks/glx/boing.man
new file mode 100644
index 0000000..1f00d72
--- /dev/null
+++ b/hacks/glx/boing.man
@@ -0,0 +1,105 @@
+.TH XScreenSaver 1 "30-Oct-99" "X Version 11"
+.SH NAME
+boing - draws a bouncing ball like the ancient Amiga demo
+.SH SYNOPSIS
+.B boing
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fIusecs\fP]
+[\-smooth]
+[\-lighting]
+[\-scanlines]
+[\-speed]
+[\-no\-spin]
+[\-angle \fIdegrees\fP]
+[\-size \fIratio\fP]
+[\-parallels \fIn\fP]
+[\-meridians \fIn\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIboing\fP program draws a bouncing checkered ball on a grid.
+
+This is a clone of the first graphics demo for the Amiga 1000, which
+was written by Dale Luck and RJ Mical during a break at the 1984
+Consumer Electronics Show (or so the legend goes.) The boing ball was
+briefly the official logo of Amiga Inc., until they were bought by
+Commodore later that year.
+
+With no arguments, this program looks a lot like the original Amiga
+demo. With "-smooth -lighting", it looks... less old.
+.SH OPTIONS
+.I boing
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between frames of the animation, in microseconds: default 15000.
+.TP 8
+.B \-smooth
+Draw a smooth sphere instead of a faceted polyhedron.
+.TP 8
+.B \-lighting
+Do shaded lighting instead of flat colors.
+.TP 8
+.B \-scanlines
+If the window is large enough, draw horizontal lines to simulate the
+scanlines on a low resolution monitor.
+.TP 8
+.B \-speed \fIratio\fP
+Change the animation speed; 0.5 to go half as fast, 2.0 to go twice as fast.
+.TP 8
+.B \-no\-spin
+Don't rotate the ball.
+.TP 8
+.B \-angle \fIdegrees\fP
+The jaunty angle at which the ball sits. Default 15 degrees.
+.TP 8
+.B \-size \fIratio\fP
+How big the ball is; default 0.5 meaning about half the size of the window.
+.TP 8
+.B \-parallels \fIn\fP
+.B \-meridians \fIn\fP
+The pattern of rectangles on the ball. Default 8x16.
+.TP 8
+.B \-wireframe
+Look crummy.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR bsod (MANSUFFIX),
+.BR pong (MANSUFFIX),
+.BR xscreensaver (1),
+.BR X (1)
+.SH COPYRIGHT
+Copyright \(co 2005 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>, 19-Feb-2005.
diff --git a/hacks/glx/bouncingcow.c b/hacks/glx/bouncingcow.c
new file mode 100644
index 0000000..6f9b45d
--- /dev/null
+++ b/hacks/glx/bouncingcow.c
@@ -0,0 +1,519 @@
+/* bouncingcow, Copyright (c) 2003-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Boing, boing, boing. Cow, cow, cow.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 1 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_cow 0
+# define release_cow 0
+#define DEF_SPEED "1.0"
+#define DEF_TEXTURE "(none)"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+#include "xlockmore.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "ximage-loader.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+extern struct gllist
+ *cow_face, *cow_hide, *cow_hoofs, *cow_horns, *cow_tail, *cow_udder;
+
+static struct gllist **all_objs[] = {
+ &cow_face, &cow_hide, &cow_hoofs, &cow_horns, &cow_tail, &cow_udder
+};
+
+#define FACE 0
+#define HIDE 1
+#define HOOFS 2
+#define HORNS 3
+#define TAIL 4
+#define UDDER 5
+
+typedef struct {
+ GLfloat x, y, z;
+ GLfloat ix, iy, iz;
+ GLfloat dx, dy, dz;
+ GLfloat ddx, ddy, ddz;
+ rotator *rot;
+ Bool spinner_p;
+} floater;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLuint *dlists;
+ GLuint texture;
+
+ int nfloaters;
+ floater *floaters;
+
+} cow_configuration;
+
+static cow_configuration *bps = NULL;
+
+static GLfloat speed;
+static const char *do_texture;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ {"-texture", ".texture", XrmoptionSepArg, 0 },
+ {"+texture", ".texture", XrmoptionNoArg, "(none)" },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt cow_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+#define BOTTOM 28.0
+
+static void
+reset_floater (ModeInfo *mi, floater *f)
+{
+ cow_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ f->y = -BOTTOM;
+ f->x = f->ix;
+ f->z = f->iz;
+
+ /* Yes, I know I'm varying the force of gravity instead of varying the
+ launch velocity. That's intentional: empirical studies indicate
+ that it's way, way funnier that way. */
+
+ f->dy = 5.0;
+ f->dx = 0;
+ f->dz = 0;
+
+ /* -0.18 max -0.3 top -0.4 middle -0.6 bottom */
+ f->ddy = speed * (-0.6 + BELLRAND(0.45));
+ f->ddx = 0;
+ f->ddz = 0;
+
+ f->spinner_p = !(random() % (12 * bp->nfloaters));
+
+ if (! (random() % (30 * bp->nfloaters)))
+ {
+ f->dx = BELLRAND(1.8) * RANDSIGN();
+ f->dz = BELLRAND(1.8) * RANDSIGN();
+ }
+}
+
+
+static void
+tick_floater (ModeInfo *mi, floater *f)
+{
+ cow_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (bp->button_down_p) return;
+
+ f->dx += f->ddx;
+ f->dy += f->ddy;
+ f->dz += f->ddz;
+
+ f->x += f->dx * speed;
+ f->y += f->dy * speed;
+ f->z += f->dz * speed;
+
+ if (f->y < -BOTTOM ||
+ f->x < -BOTTOM*8 || f->x > BOTTOM*8 ||
+ f->z < -BOTTOM*8 || f->z > BOTTOM*8)
+ reset_floater (mi, f);
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_cow (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+cow_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cow_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+/* Textures
+ */
+
+static Bool
+load_texture (ModeInfo *mi, const char *filename)
+{
+ Display *dpy = mi->dpy;
+ Visual *visual = mi->xgwa.visual;
+ char buf[1024];
+ XImage *image;
+
+ if (MI_IS_WIREFRAME(mi))
+ return False;
+
+ if (!filename ||
+ !*filename ||
+ !strcasecmp (filename, "(none)"))
+ {
+ glDisable (GL_TEXTURE_2D);
+ return False;
+ }
+
+ image = file_to_ximage (dpy, visual, filename);
+ if (!image) return False;
+
+ clear_gl_error();
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ image->width, image->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, image->data);
+ sprintf (buf, "texture: %.100s (%dx%d)",
+ filename, image->width, image->height);
+ check_gl_error(buf);
+
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
+ glPixelStorei (GL_UNPACK_ROW_LENGTH, image->width);
+
+ return True;
+}
+
+
+ENTRYPOINT void
+init_cow (ModeInfo *mi)
+{
+ cow_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+ Bool tex_p = False;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_cow (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
+/* GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};*/
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ bp->trackball = gltrackball_init (False);
+
+ bp->dlists = (GLuint *) calloc (countof(all_objs)+1, sizeof(GLuint));
+ for (i = 0; i < countof(all_objs); i++)
+ bp->dlists[i] = glGenLists (1);
+
+ tex_p = load_texture (mi, do_texture);
+ if (tex_p)
+ glBindTexture (GL_TEXTURE_2D, bp->texture);
+
+ for (i = 0; i < countof(all_objs); i++)
+ {
+ GLfloat black[4] = {0, 0, 0, 1};
+ const struct gllist *gll = *all_objs[i];
+
+ glNewList (bp->dlists[i], GL_COMPILE);
+
+ glDisable (GL_TEXTURE_2D);
+
+ if (i == HIDE)
+ {
+ GLfloat color[4] = {0.63, 0.43, 0.36, 1.00};
+ if (tex_p)
+ {
+ /* if we have a texture, make the base color be white. */
+ color[0] = color[1] = color[2] = 1.0;
+
+ glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+ glTexGeni (GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ glEnable(GL_TEXTURE_2D);
+
+ /* approximately line it up with ../images/earth.png */
+ glMatrixMode (GL_TEXTURE);
+ glLoadIdentity();
+ glTranslatef (0.45, 0.58, 0);
+ glScalef (0.08, 0.16, 1);
+ glRotatef (-5, 0, 0, 1);
+ glMatrixMode (GL_MODELVIEW);
+ }
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, black);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 128);
+ }
+ else if (i == TAIL)
+ {
+ GLfloat color[4] = {0.63, 0.43, 0.36, 1.00};
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, black);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 128);
+ }
+ else if (i == UDDER)
+ {
+ GLfloat color[4] = {1.00, 0.53, 0.53, 1.00};
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, black);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 128);
+ }
+ else if (i == HOOFS || i == HORNS)
+ {
+ GLfloat color[4] = {0.20, 0.20, 0.20, 1.00};
+ GLfloat spec[4] = {0.30, 0.30, 0.30, 1.00};
+ GLfloat shiny = 8.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+ else if (i == FACE)
+ {
+ GLfloat color[4] = {0.10, 0.10, 0.10, 1.00};
+ GLfloat spec[4] = {0.10, 0.10, 0.10, 1.00};
+ GLfloat shiny = 8.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+ else
+ {
+ GLfloat color[4] = {1.00, 1.00, 1.00, 1.00};
+ GLfloat spec[4] = {1.00, 1.00, 1.00, 1.00};
+ GLfloat shiny = 128.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+
+ renderList (gll, wire);
+
+ glEndList ();
+ }
+
+ bp->nfloaters = MI_COUNT (mi);
+ bp->floaters = (floater *) calloc (bp->nfloaters, sizeof (floater));
+
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ f->rot = make_rotator (10.0, 0, 0,
+ 4, 0.05 * speed,
+ True);
+ if (bp->nfloaters == 2)
+ {
+ f->x = (i ? 6 : -6);
+ }
+ else if (i != 0)
+ {
+ double th = (i - 1) * M_PI*2 / (bp->nfloaters-1);
+ double r = 10;
+ f->x = r * cos(th);
+ f->z = r * sin(th);
+ }
+
+ f->ix = f->x;
+ f->iy = f->y;
+ f->iz = f->z;
+ reset_floater (mi, f);
+ }
+}
+
+
+static void
+draw_floater (ModeInfo *mi, floater *f)
+{
+ cow_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat n;
+ double x, y, z;
+
+ get_position (f->rot, &x, &y, &z, !bp->button_down_p);
+
+ glPushMatrix();
+ glTranslatef (f->x, f->y, f->z);
+
+ gltrackball_rotate (bp->trackball);
+
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ if (f->spinner_p)
+ {
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ n = 1.5;
+ if (bp->nfloaters > 99) n *= 0.05;
+ else if (bp->nfloaters > 25) n *= 0.18;
+ else if (bp->nfloaters > 9) n *= 0.3;
+ else if (bp->nfloaters > 1) n *= 0.7;
+ glScalef(n, n, n);
+
+ glCallList (bp->dlists[FACE]);
+ mi->polygon_count += (*all_objs[FACE])->points / 3;
+
+ glCallList (bp->dlists[HIDE]);
+ mi->polygon_count += (*all_objs[HIDE])->points / 3;
+
+ glCallList (bp->dlists[HOOFS]);
+ mi->polygon_count += (*all_objs[HOOFS])->points / 3;
+
+ glCallList (bp->dlists[HORNS]);
+ mi->polygon_count += (*all_objs[HORNS])->points / 3;
+
+ glCallList (bp->dlists[TAIL]);
+ mi->polygon_count += (*all_objs[TAIL])->points / 3;
+
+ glCallList (bp->dlists[UDDER]);
+ mi->polygon_count += (*all_objs[UDDER])->points / 3;
+
+ glPopMatrix();
+}
+
+
+
+ENTRYPOINT void
+draw_cow (ModeInfo *mi)
+{
+ cow_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ glRotatef(o, 0, 0, 1);
+ }
+# endif
+
+ glScalef (0.5, 0.5, 0.5);
+
+ mi->polygon_count = 0;
+
+# if 0
+ {
+ floater F;
+ F.x = F.y = F.z = 0;
+ F.dx = F.dy = F.dz = 0;
+ F.ddx = F.ddy = F.ddz = 0;
+ F.rot = make_rotator (0, 0, 0, 1, 0, False);
+ glScalef(2,2,2);
+ draw_floater (mi, &F);
+ }
+# else
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ /* "Don't kid yourself, Jimmy. If a cow ever got the chance,
+ he'd eat you and everyone you care about!"
+ -- Troy McClure in "Meat and You: Partners in Freedom"
+ */
+ floater *f = &bp->floaters[i];
+ draw_floater (mi, f);
+ tick_floater (mi, f);
+ }
+# endif
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("BouncingCow", bouncingcow, cow)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/bouncingcow.man b/hacks/glx/bouncingcow.man
new file mode 100644
index 0000000..516d1de
--- /dev/null
+++ b/hacks/glx/bouncingcow.man
@@ -0,0 +1,73 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+bouncingcow - a happy cow on a trampoline in 3D. Moo.
+.SH SYNOPSIS
+.B bouncingcow
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-texture \fIfilename\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+It's very silly.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+How fast the cow bounces. Larger for faster. Default: 1.0.
+.TP 8
+.B \-count \fInumber\fP
+How many cows! Default 1.
+.TP 8
+.B \-texture \fIfilename\fP
+An image file to paint on the cow's hide.
+
+Note that on most systems, GL textures must have dimensions that are a
+power of two.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Jamie Zawinski. Moo. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+Moo. No representations are made about the suitability of this
+software for any purpose. It is provided "as is" without express or
+implied warranty. Moo.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>
+
diff --git a/hacks/glx/boxed.c b/hacks/glx/boxed.c
new file mode 100644
index 0000000..136d468
--- /dev/null
+++ b/hacks/glx/boxed.c
@@ -0,0 +1,1370 @@
+/* boxed --- 3D bouncing balls that explode */
+
+#if 0
+static const char sccsid[] = "@(#)boxed.c 0.9 01/09/26 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ *
+ * 2001: Written by Sander van Grieken <mailsander@gmx.net>
+ * as an OpenGL screensaver for the xscreensaver package.
+ * Lots of hardcoded values still in place. Also, there are some
+ * copy/paste leftovers from the gears hack. opts don't work.
+ *
+ * 2005: opts work. added options -balls, -ballsize, -explosion
+ *
+ * 2006: opts work. added option -decay
+ *
+ * 2008: opts work. added option -momentum
+ *
+ */
+
+#include "boxed.h"
+
+/*
+**----------------------------------------------------------------------------
+** Defines
+**----------------------------------------------------------------------------
+*/
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 15000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n"
+
+# define release_boxed 0
+# define boxed_handle_event xlockmore_no_events
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+# define DEF_SPEED "0.5"
+# define DEF_BALLS "20"
+# define DEF_BALLSIZE "3.0"
+# define DEF_EXPLOSION "15.0"
+# define DEF_DECAY "0.07"
+# define DEF_MOMENTUM "0.6"
+
+#undef countof
+#define countof(x) (int)(sizeof((x))/sizeof((*x)))
+#undef rnd
+#define rnd() (frand(1.0))
+
+static GLfloat speed; /* jwz -- overall speed factor applied to all motion */
+static int cfg_balls;
+static GLfloat cfg_ballsize;
+static GLfloat cfg_explosion;
+static GLfloat cfg_decay;
+static GLfloat cfg_momentum;
+
+
+static XrmOptionDescRec opts[] = {
+ {"-speed", ".boxed.speed", XrmoptionSepArg, 0},
+ {"-balls", ".boxed.balls", XrmoptionSepArg, 0},
+ {"-ballsize", ".boxed.ballsize", XrmoptionSepArg, 0},
+ {"-explosion", ".boxed.explosion", XrmoptionSepArg, 0},
+ {"-decay", ".boxed.decay", XrmoptionSepArg, 0},
+ {"-momentum", ".boxed.momentum", XrmoptionSepArg, 0},
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&cfg_balls, "balls", "Balls", DEF_BALLS, t_Int},
+ {&cfg_ballsize, "ballsize", "Ball Size", DEF_BALLSIZE, t_Float},
+ {&cfg_explosion, "explosion", "Explosion", DEF_EXPLOSION, t_Float},
+ {&cfg_decay, "decay", "Explosion Decay", DEF_DECAY, t_Float},
+ {&cfg_momentum, "momentum", "Explosion Momentum", DEF_MOMENTUM, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt boxed_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+
+ModStruct boxed_description = {
+ "boxed", "init_boxed", "draw_boxed", NULL,
+ "draw_boxed", "init_boxed", "free_boxed", &boxed_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Shows GL's boxed balls", 0, NULL};
+
+#endif
+
+#define BOOL int
+#define TRUE 1
+#define FALSE 0
+
+/* camera */
+#define CAM_HEIGHT 80.0f
+#define CAMDISTANCE_MIN 35.0
+#define CAMDISTANCE_MAX 150.0
+#define CAMDISTANCE_SPEED 1.5
+#define LOOKAT_R 30.0
+
+/* rendering the sphere */
+#define MESH_SIZE 10
+#define SPHERE_VERTICES (2+MESH_SIZE*MESH_SIZE*2)
+#define SPHERE_INDICES ((MESH_SIZE*4 + MESH_SIZE*4*(MESH_SIZE-1))*3)
+
+/*
+**-----------------------------------------------------------------------------
+** Typedefs
+**-----------------------------------------------------------------------------
+*/
+
+typedef struct {
+ GLfloat x;
+ GLfloat y;
+ GLfloat z;
+} vectorf;
+
+typedef struct {
+ vectorf loc;
+ vectorf dir;
+ vectorf color;
+ float radius;
+ BOOL bounced;
+ int offside;
+ BOOL justcreated;
+} ball;
+
+typedef struct {
+ int num_balls;
+ float ballsize;
+ float explosion;
+ ball *balls;
+} ballman;
+
+typedef struct {
+ vectorf loc;
+ vectorf dir;
+ BOOL far;
+ int gone;
+} tri;
+
+typedef struct {
+ int num_tri;
+ int lifetime;
+ float scalefac;
+ float explosion;
+ float decay;
+ float momentum;
+ vectorf color;
+ tri *tris;
+ GLint *indices;
+ vectorf *normals;
+ vectorf *vertices;
+} triman;
+
+typedef struct {
+ int numballs;
+ float ballsize;
+ float explosion;
+ float decay;
+ float momentum;
+ BOOL textures;
+ BOOL transparent;
+ float camspeed;
+} boxed_config;
+
+
+typedef struct {
+ float cam_x_speed, cam_z_speed, cam_y_speed;
+ boxed_config config;
+ float tic;
+ float camtic;
+ vectorf spherev[SPHERE_VERTICES];
+ GLint spherei[SPHERE_INDICES];
+ ballman bman;
+ triman *tman;
+ GLXContext *glx_context;
+ GLuint listobjects;
+ GLuint gllists[3];
+ int list_polys[3];
+ Window window;
+ BOOL stop;
+ char *tex1;
+} boxedstruct;
+
+#define GLL_PATTERN 0
+#define GLL_BALL 1
+#define GLL_BOX 2
+
+/*
+**----------------------------------------------------------------------------
+** Local Variables
+**----------------------------------------------------------------------------
+*/
+
+static boxedstruct *boxed = NULL;
+
+
+/*
+**----------------------------------------------------------------------------
+** Functions
+**----------------------------------------------------------------------------
+*/
+
+/*
+ * Add 2 vectors
+ */
+static inline void addvectors(vectorf *dest, vectorf *s1, vectorf *s2)
+{
+ dest->x = s1->x + s2->x;
+ dest->y = s1->y + s2->y;
+ dest->z = s1->z + s2->z;
+}
+
+/*
+ * Sub 2 vectors
+ */
+static inline void subvectors(vectorf *dest, vectorf* s1, vectorf *s2)
+{
+ dest->x = s1->x - s2->x;
+ dest->y = s1->y - s2->y;
+ dest->z = s1->z - s2->z;
+}
+
+/*
+ * Multiply vector with scalar (scale vector)
+ */
+static inline void scalevector(vectorf *dest, vectorf *source, GLfloat sc)
+{
+ dest->x = source->x * sc;
+ dest->y = source->y * sc;
+ dest->z = source->z * sc;
+}
+
+/*
+ * Copy vector
+ */
+static inline void copyvector(vectorf *dest, vectorf* source)
+{
+ dest->x = source->x;
+ dest->y = source->y;
+ dest->z = source->z;
+}
+
+
+static inline GLfloat
+dotproduct(vectorf * v1, vectorf * v2)
+{
+ return v1->x * v2->x + v1->y * v2->y + v1->z * v2->z;
+}
+
+static inline GLfloat
+squaremagnitude(vectorf * v)
+{
+ return v->x * v->x + v->y * v->y + v->z * v->z;
+}
+
+static inline GLfloat
+squaremagnitudehorz(vectorf * v)
+{
+ return v->x * v->x + v->z * v->z;
+}
+
+
+
+/*
+ * Generate the Sphere data
+ *
+ * Input:
+ */
+
+static void generatesphere(boxedstruct *gp)
+{
+ float dj = M_PI/(MESH_SIZE+1.0f);
+ float di = M_PI/MESH_SIZE;
+ int v; /* vertex offset */
+ int ind; /* indices offset */
+ int i,j,si;
+ GLfloat r_y_plane, h_y_plane;
+ vectorf *spherev;
+ GLint *spherei;
+
+ /*
+ * generate the sphere data
+ * vertices 0 and 1 are the north and south poles
+ */
+
+ spherei = gp->spherei;
+ spherev = gp->spherev;
+
+ spherev[0].x = 0.0f; spherev[0].y =1.0f; spherev[0].z = 0.0f;
+ spherev[1].x = 0.0f; spherev[1].y =-1.0f; spherev[1].z = 0.0f;
+
+ for (j=0; j<MESH_SIZE; j++) {
+ r_y_plane = (float)sin((j+1) * dj);
+ h_y_plane = (float)cos((j+1) * dj);
+ for (i=0; i<MESH_SIZE*2; i++) {
+ si = 2+i+j*MESH_SIZE*2;
+ spherev[si].y = h_y_plane;
+ spherev[si].x = (float) sin(i * di) * r_y_plane;
+ spherev[si].z = (float) cos(i * di) * r_y_plane;
+ }
+ }
+
+ /* generate indices */
+ for (i=0; i<MESH_SIZE*2; i++) {
+ spherei[3*i] = 0;
+ spherei[3*i+1] = i+2;
+ spherei[3*i+2] = i+3;
+ if (i==MESH_SIZE*2-1)
+ spherei[3*i+2] = 2;
+ }
+
+ /* the middle strips */
+ for (j=0; j<MESH_SIZE-1; j++) {
+ v = 2+j*MESH_SIZE*2;
+ ind = 3*MESH_SIZE*2 + j*6*MESH_SIZE*2;
+ for (i=0; i<MESH_SIZE*2; i++) {
+ spherei[6*i+ind] = v+i;
+ spherei[6*i+2+ind] = v+i+1;
+ spherei[6*i+1+ind] = v+i+MESH_SIZE*2;
+
+ spherei[6*i+ind+3] = v+i+MESH_SIZE*2;
+ spherei[6*i+2+ind+3] = v+i+1;
+ spherei[6*i+1+ind+3] = v+i+MESH_SIZE*2+1;
+ if (i==MESH_SIZE*2-1) {
+ spherei[6*i+2+ind] = v+i+1-2*MESH_SIZE;
+ spherei[6*i+2+ind+3] = v+i+1-2*MESH_SIZE;
+ spherei[6*i+1+ind+3] = v+i+MESH_SIZE*2+1-2*MESH_SIZE;
+ }
+ }
+ }
+
+ v = SPHERE_VERTICES-MESH_SIZE*2;
+ ind = SPHERE_INDICES-3*MESH_SIZE*2;
+ for (i=0; i<MESH_SIZE*2; i++) {
+ spherei[3*i+ind] = 1;
+ spherei[3*i+1+ind] = v+i+1;
+ spherei[3*i+2+ind] = v+i;
+ if (i==MESH_SIZE*2-1)
+ spherei[3*i+1+ind] = v;
+ }
+}
+
+
+
+
+/*
+ * create fresh ball
+ */
+
+static void createball(ball *newball)
+{
+ float r=0.0f,g=0.0f,b=0.0f;
+ newball->loc.x = 5-10*rnd();
+ newball->loc.y = 35+20*rnd();
+ newball->loc.z = 5-10*rnd();
+ newball->dir.x = (0.5f-rnd()) * speed;
+ newball->dir.y = 0.0;
+ newball->dir.z = (0.5-rnd()) * speed;
+ newball->offside = 0;
+ newball->bounced = FALSE;
+ newball->radius = cfg_ballsize;
+ while (r+g+b < 1.8f ) {
+ newball->color.x = r=rnd();
+ newball->color.y = g=rnd();
+ newball->color.z = b=rnd();
+ }
+ newball->justcreated = TRUE;
+}
+
+/* Update position of each ball */
+
+static void updateballs(ballman *bman)
+{
+ register int b,j;
+ vectorf dvect,richting,relspeed,influence;
+ GLfloat squaredist;
+
+ for (b=0;b<bman->num_balls;b++) {
+
+ GLfloat gravity = 0.30f * speed;
+
+ /* apply gravity */
+ bman->balls[b].dir.y -= gravity;
+ /* apply movement */
+ addvectors(&bman->balls[b].loc,&bman->balls[b].loc,&bman->balls[b].dir);
+ /* boundary check */
+ if (bman->balls[b].loc.y < bman->balls[b].radius) { /* ball onder bodem? (bodem @ y=0) */
+ if ((bman->balls[b].loc.x < -95.0) ||
+ (bman->balls[b].loc.x > 95.0) ||
+ (bman->balls[b].loc.z < -95.0) ||
+ (bman->balls[b].loc.z > 95.0)) {
+ if (bman->balls[b].loc.y < -2000.0)
+ createball(&bman->balls[b]);
+ } else {
+ bman->balls[b].loc.y = bman->balls[b].radius + (bman->balls[b].radius - bman->balls[b].loc.y);
+ bman->balls[b].dir.y = -bman->balls[b].dir.y;
+ if (bman->balls[b].offside) {
+ bman->balls[b].bounced = TRUE; /* temporary disable painting ball */
+ scalevector(&bman->balls[b].dir,&bman->balls[b].dir,0.80f);
+ if (squaremagnitude(&bman->balls[b].dir) < 0.08f) {
+ createball(&bman->balls[b]);
+ }
+ if (squaremagnitudehorz(&bman->balls[b].dir) < 0.005f) {
+ createball(&bman->balls[b]);
+ }
+ }
+ }
+
+ }
+ if (!bman->balls[b].offside) {
+ if (bman->balls[b].loc.x - bman->balls[b].radius < -20.0f) { /* x ondergrens */
+ if (bman->balls[b].loc.y > 41+bman->balls[b].radius) bman->balls[b].offside=1;
+ else {
+ bman->balls[b].dir.x = -bman->balls[b].dir.x;
+ bman->balls[b].loc.x = -20.0f + bman->balls[b].radius;
+ }
+ }
+ if (bman->balls[b].loc.x + bman->balls[b].radius > 20.0f) { /* x bovengrens */
+ if (bman->balls[b].loc.y > 41+bman->balls[b].radius) bman->balls[b].offside=1;
+ else {
+ bman->balls[b].dir.x = -bman->balls[b].dir.x;
+ bman->balls[b].loc.x = 20.0f - bman->balls[b].radius;
+ }
+ }
+ if (bman->balls[b].loc.z - bman->balls[b].radius < -20.0f) { /* z ondergrens */
+ if (bman->balls[b].loc.y > 41+bman->balls[b].radius) bman->balls[b].offside=1;
+ else {
+ bman->balls[b].dir.z = -bman->balls[b].dir.z;
+ bman->balls[b].loc.z = -20.0f + bman->balls[b].radius;
+ }
+ }
+ if (bman->balls[b].loc.z + bman->balls[b].radius > 20.0f) { /* z bovengrens */
+ if (bman->balls[b].loc.y > 41+bman->balls[b].radius) bman->balls[b].offside=1;
+ else {
+ bman->balls[b].dir.z = -bman->balls[b].dir.z;
+ bman->balls[b].loc.z = 20.0f - bman->balls[b].radius;
+ }
+ }
+ } /* end if !offside */
+
+ /* check voor stuiteren */
+ for (j=b+1;j<bman->num_balls;j++) {
+ squaredist = (bman->balls[b].radius * bman->balls[b].radius) + (bman->balls[j].radius * bman->balls[j].radius);
+ subvectors(&dvect,&bman->balls[b].loc,&bman->balls[j].loc);
+ if ( squaremagnitude(&dvect) < squaredist ) { /* balls b and j touch */
+ subvectors(&richting,&bman->balls[j].loc,&bman->balls[b].loc);
+ subvectors(&relspeed,&bman->balls[b].dir,&bman->balls[j].dir);
+ /* calc mutual influence direction and magnitude */
+ scalevector(&influence,&richting,(dotproduct(&richting,&relspeed)/squaremagnitude(&richting)));
+
+ subvectors(&bman->balls[b].dir,&bman->balls[b].dir,&influence);
+ addvectors(&bman->balls[j].dir,&bman->balls[j].dir,&influence);
+ addvectors(&bman->balls[b].loc,&bman->balls[b].loc,&bman->balls[b].dir);
+ addvectors(&bman->balls[j].loc,&bman->balls[j].loc,&bman->balls[j].dir);
+
+ subvectors(&dvect,&bman->balls[b].loc,&bman->balls[j].loc);
+ while (squaremagnitude(&dvect) < squaredist) {
+ addvectors(&bman->balls[b].loc,&bman->balls[b].loc,&bman->balls[b].dir);
+ addvectors(&bman->balls[j].loc,&bman->balls[j].loc,&bman->balls[j].dir);
+ subvectors(&dvect,&bman->balls[b].loc,&bman->balls[j].loc);
+ }
+ }
+ } /* end for j */
+ } /* end for b */
+}
+
+
+/*
+* explode ball into triangles
+*/
+
+static void createtrisfromball(triman* tman, vectorf *spherev, GLint *spherei, int ind_num, ball *b)
+{
+ int pos;
+ float explosion;
+ float momentum;
+ float scale;
+ register int i;
+ vectorf avgdir,dvect,mvect;
+
+ tman->scalefac = b->radius;
+ copyvector(&tman->color,&b->color);
+ explosion = 1.0f + tman->explosion * 2.0 * rnd();
+ momentum = tman->momentum;
+
+ tman->num_tri = ind_num/3;
+
+ /* reserveer geheugen voor de poly's in een bal */
+
+ tman->tris = (tri *)malloc(tman->num_tri * sizeof(tri));
+ tman->vertices = (vectorf *)malloc(ind_num * sizeof(vectorf));
+ tman->normals = (vectorf *)malloc(ind_num/3 * sizeof(vectorf));
+
+ for (i=0; i<(tman->num_tri); i++) {
+ tman->tris[i].far = FALSE;
+ tman->tris[i].gone = 0;
+ pos = i * 3;
+ /* kopieer elke poly apart naar een tri structure */
+ copyvector(&tman->vertices[pos+0],&spherev[spherei[pos+0]]);
+ copyvector(&tman->vertices[pos+1],&spherev[spherei[pos+1]]);
+ copyvector(&tman->vertices[pos+2],&spherev[spherei[pos+2]]);
+ /* Calculate average direction of shrapnel */
+ addvectors(&avgdir,&tman->vertices[pos+0],&tman->vertices[pos+1]);
+ addvectors(&avgdir,&avgdir,&tman->vertices[pos+2]);
+ scalevector(&avgdir,&avgdir,0.33333);
+
+ /* should normalize first, NYI */
+ copyvector(&tman->normals[i],&avgdir);
+
+ /* copy de lokatie */
+ addvectors(&tman->tris[i].loc,&b->loc,&avgdir);
+ /* en translate alle triangles terug naar hun eigen oorsprong */
+ tman->vertices[pos+0].x -= avgdir.x;
+ tman->vertices[pos+0].y -= avgdir.y;
+ tman->vertices[pos+0].z -= avgdir.z;
+ tman->vertices[pos+1].x -= avgdir.x;
+ tman->vertices[pos+1].y -= avgdir.y;
+ tman->vertices[pos+1].z -= avgdir.z;
+ tman->vertices[pos+2].x -= avgdir.x;
+ tman->vertices[pos+2].y -= avgdir.y;
+ tman->vertices[pos+2].z -= avgdir.z;
+ /* alwaar opschaling plaatsvindt */
+ scale = b->radius * 2;
+ scalevector(&tman->vertices[pos+0],&tman->vertices[pos+0],scale);
+ scalevector(&tman->vertices[pos+1],&tman->vertices[pos+1],scale);
+ scalevector(&tman->vertices[pos+2],&tman->vertices[pos+2],scale);
+
+ tman->vertices[pos+0].x += avgdir.x;
+ tman->vertices[pos+0].y += avgdir.y;
+ tman->vertices[pos+0].z += avgdir.z;
+ tman->vertices[pos+1].x += avgdir.x;
+ tman->vertices[pos+1].y += avgdir.y;
+ tman->vertices[pos+1].z += avgdir.z;
+ tman->vertices[pos+2].x += avgdir.x;
+ tman->vertices[pos+2].y += avgdir.y;
+ tman->vertices[pos+2].z += avgdir.z;
+
+ /* bereken nieuwe richting */
+ scalevector(&tman->tris[i].dir,&avgdir,explosion);
+ dvect.x = (0.1f - 0.2f*rnd());
+ dvect.y = (0.15f - 0.3f*rnd());
+ dvect.z = (0.1f - 0.2f*rnd());
+ addvectors(&tman->tris[i].dir,&tman->tris[i].dir,&dvect);
+
+ /* add ball's momentum to each piece of the exploded ball */
+ mvect.x = b->dir.x * momentum;
+ mvect.y = 0;
+ mvect.z = b->dir.z * momentum;
+ addvectors(&tman->tris[i].dir,&tman->tris[i].dir,&mvect);
+ }
+}
+
+
+/*
+* update position of each tri
+*/
+
+static void updatetris(triman *t)
+{
+ int b;
+ GLfloat xd,zd;
+
+ for (b=0;b<t->num_tri;b++) {
+ /* the exploded triangles disappear over time */
+ if (rnd() < t->decay) {
+ if (t->tris[b].gone == 0)
+ t->tris[b].gone = 1;
+ }
+ /* apply gravity */
+ t->tris[b].dir.y -= (0.1f * speed);
+ /* apply movement */
+ addvectors(&t->tris[b].loc,&t->tris[b].loc,&t->tris[b].dir);
+ /* boundary check */
+ if (t->tris[b].far) continue;
+ if (t->tris[b].loc.y < 0) { /* onder bodem ? */
+ if ((t->tris[b].loc.x > -95.0f) &
+ (t->tris[b].loc.x < 95.0f) &
+ (t->tris[b].loc.z > -95.0f) &
+ (t->tris[b].loc.z < 95.0f)) { /* in veld */
+ t->tris[b].dir.y = -(t->tris[b].dir.y);
+ t->tris[b].loc.y = -t->tris[b].loc.y;
+ scalevector(&t->tris[b].dir,&t->tris[b].dir,0.80f); /* dampening */
+ }
+ else {
+ t->tris[b].far = TRUE;
+ continue;
+ }
+ }
+
+ if ((t->tris[b].loc.x > -21.0f) &
+ (t->tris[b].loc.x < 21.0f) &
+ (t->tris[b].loc.z > -21.0f) &
+ (t->tris[b].loc.z < 21.0f)) { /* in box? */
+
+ xd = zd = 999.0f; /* big */
+ if ((t->tris[b].loc.x > -21.0f) &
+ (t->tris[b].loc.x < 0)) {
+ xd = t->tris[b].loc.x + 21.0f;
+ }
+ if ((t->tris[b].loc.x < 21.0f) &
+ (t->tris[b].loc.x > 0)) {
+ xd = 21.0f - t->tris[b].loc.x;
+ }
+ if ((t->tris[b].loc.z > -21.0f) &
+ (t->tris[b].loc.z < 0)) {
+ zd = t->tris[b].loc.z + 21.0f;
+ }
+ if ((t->tris[b].loc.z < 21.0f) &
+ (t->tris[b].loc.z > 0)) {
+ zd = 21.0f - t->tris[b].loc.z;
+ }
+ if (xd < zd) {
+ /* bounce x */
+ if (t->tris[b].dir.x < 0)
+ t->tris[b].loc.x += (21.0f - t->tris[b].loc.x);
+ else
+ t->tris[b].loc.x += (-21.0f - t->tris[b].loc.x);
+ t->tris[b].dir.x = -t->tris[b].dir.x;
+ } else {
+ /* bounce z */
+ if (t->tris[b].dir.z < 0)
+ t->tris[b].loc.z += (21.0f - t->tris[b].loc.z);
+ else
+ t->tris[b].loc.z += (-21.0f - t->tris[b].loc.z);
+ t->tris[b].dir.z = -t->tris[b].dir.z;
+ }
+
+ }
+ } /* end for b */
+}
+
+
+/*
+ * free memory allocated by a tri manager
+ */
+static void freetris(triman *t)
+{
+ if (!t) return;
+ if (t->tris) free(t->tris);
+ if (t->vertices) free(t->vertices);
+ if (t->normals) free(t->normals);
+ t->tris = NULL;
+ t->vertices = NULL;
+ t->normals = NULL;
+ t->num_tri = 0;
+ t->lifetime = 0;
+}
+
+
+/*
+ *load defaults in config structure
+ */
+static void setdefaultconfig(boxed_config *config)
+{
+ cfg_balls = MAX(3,MIN(40,cfg_balls));
+ cfg_ballsize = MAX(1.0f,MIN(5.0f,cfg_ballsize));
+ cfg_explosion = MAX(0.0f,MIN(50.0f,cfg_explosion));
+ cfg_decay = MAX(0.02f,MIN(0.90f,cfg_decay));
+ cfg_momentum = MAX(0.0f,MIN(1.0f,cfg_momentum));
+
+ config->numballs = cfg_balls;
+ config->textures = TRUE;
+ config->transparent = FALSE;
+ config->explosion = cfg_explosion;
+ config->decay = cfg_decay;
+ config->momentum = cfg_momentum;
+ config->ballsize = cfg_ballsize;
+ config->camspeed = 35.0f;
+}
+
+
+/*
+ * draw bottom
+ */
+static int drawfilledbox(boxedstruct *boxed, int wire)
+{
+ /* draws texture filled box,
+ top is drawn using the entire texture,
+ the sides are drawn using the edge of the texture
+ */
+ int polys = 0;
+
+ /* front */
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(0,1);
+ glVertex3f(-1.0,1.0,1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(1.0,1.0,1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(1.0,-1.0,1.0);
+ glTexCoord2f(0,1);
+ glVertex3f(-1.0,-1.0,1.0);
+ polys++;
+ /* rear */
+ glTexCoord2f(0,1);
+ glVertex3f(1.0,1.0,-1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(-1.0,1.0,-1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(-1.0,-1.0,-1.0);
+ glTexCoord2f(0,1);
+ glVertex3f(1.0,-1.0,-1.0);
+ polys++;
+ /* left */
+ glTexCoord2f(1,1);
+ glVertex3f(-1.0,1.0,1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(-1.0,-1.0,1.0);
+ glTexCoord2f(0,1);
+ glVertex3f(-1.0,-1.0,-1.0);
+ glTexCoord2f(0,1);
+ glVertex3f(-1.0,1.0,-1.0);
+ polys++;
+ /* right */
+ glTexCoord2f(0,1);
+ glVertex3f(1.0,1.0,1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(1.0,1.0,-1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(1.0,-1.0,-1.0);
+ glTexCoord2f(0,1);
+ glVertex3f(1.0,-1.0,1.0);
+ polys++;
+ /* top */
+ glTexCoord2f(0.0,0.0);
+ glVertex3f(-1.0,1.0,1.0);
+ glTexCoord2f(0.0,1.0);
+ glVertex3f(-1.0,1.0,-1.0);
+ glTexCoord2f(1.0,1.0);
+ glVertex3f(1.0,1.0,-1.0);
+ glTexCoord2f(1.0,0.0);
+ glVertex3f(1.0,1.0,1.0);
+ polys++;
+ /* bottom */
+ glTexCoord2f(0,0);
+ glVertex3f(-1.0,-1.0,1.0);
+ glTexCoord2f(0,1);
+ glVertex3f(-1.0,-1.0,-1.0);
+ glTexCoord2f(1,1);
+ glVertex3f(1.0,-1.0,-1.0);
+ glTexCoord2f(1,0);
+ glVertex3f(1.0,-1.0,1.0);
+ polys++;
+ glEnd();
+
+ return polys;
+}
+
+
+/*
+ * Draw a box made of lines
+ */
+static int drawbox(boxedstruct *boxed)
+{
+ int polys = 0;
+ /* top */
+ glBegin(GL_LINE_STRIP);
+ glVertex3f(-1.0,1.0,1.0);
+ glVertex3f(-1.0,1.0,-1.0); polys++;
+ glVertex3f(1.0,1.0,-1.0); polys++;
+ glVertex3f(1.0,1.0,1.0); polys++;
+ glVertex3f(-1.0,1.0,1.0); polys++;
+ glEnd();
+ /* bottom */
+ glBegin(GL_LINE_STRIP);
+ glVertex3f(-1.0,-1.0,1.0);
+ glVertex3f(1.0,-1.0,1.0); polys++;
+ glVertex3f(1.0,-1.0,-1.0); polys++;
+ glVertex3f(-1.0,-1.0,-1.0); polys++;
+ glVertex3f(-1.0,-1.0,1.0); polys++;
+ glEnd();
+ /* connect top & bottom */
+ glBegin(GL_LINES);
+ glVertex3f(-1.0,1.0,1.0);
+ glVertex3f(-1.0,-1.0,1.0); polys++;
+ glVertex3f(1.0,1.0,1.0);
+ glVertex3f(1.0,-1.0,1.0); polys++;
+ glVertex3f(1.0,1.0,-1.0);
+ glVertex3f(1.0,-1.0,-1.0); polys++;
+ glVertex3f(-1.0,1.0,-1.0);
+ glVertex3f(-1.0,-1.0,-1.0); polys++;
+ glEnd();
+ return polys;
+}
+
+
+
+/*
+ * Draw ball
+ */
+static int drawball(boxedstruct *gp, ball *b, int wire)
+{
+ int polys = 0;
+ int i,pos,cnt;
+ GLint *spherei = gp->spherei;
+ vectorf *spherev = gp->spherev;
+ GLfloat col[3];
+
+ glPushMatrix();
+
+ glTranslatef(b->loc.x,b->loc.y,b->loc.z);
+ glScalef(b->radius,b->radius,b->radius);
+ glColor3f(b->color.x,b->color.y,b->color.z);
+ col[0] = b->color.x;
+ col[1] = b->color.y;
+ col[2] = b->color.z;
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, col);
+ col[0] *= 0.5;
+ col[1] *= 0.5;
+ col[2] *= 0.5;
+ glMaterialfv(GL_FRONT, GL_EMISSION,col);
+
+ if (!gp->gllists[GLL_BALL]) {
+ glNewList(gp->listobjects + GLL_BALL,GL_COMPILE);
+ glBegin(wire ? GL_LINES : GL_TRIANGLES);
+ cnt = SPHERE_INDICES/3;
+ for (i=0; i<cnt; i++) {
+ pos = i * 3;
+ glNormal3f(spherev[spherei[pos+0]].x,spherev[spherei[pos+0]].y,spherev[spherei[pos+0]].z);
+ glVertex3f(spherev[spherei[pos+0]].x,spherev[spherei[pos+0]].y,spherev[spherei[pos+0]].z);
+ glNormal3f(spherev[spherei[pos+1]].x,spherev[spherei[pos+1]].y,spherev[spherei[pos+1]].z);
+ gp->list_polys[GLL_BALL]++;
+ glVertex3f(spherev[spherei[pos+1]].x,spherev[spherei[pos+1]].y,spherev[spherei[pos+1]].z);
+ if (wire)
+ glVertex3f(spherev[spherei[pos+1]].x,spherev[spherei[pos+1]].y,spherev[spherei[pos+1]].z);
+ glNormal3f(spherev[spherei[pos+2]].x,spherev[spherei[pos+2]].y,spherev[spherei[pos+2]].z);
+ glVertex3f(spherev[spherei[pos+2]].x,spherev[spherei[pos+2]].y,spherev[spherei[pos+2]].z);
+ gp->list_polys[GLL_BALL]++;
+ }
+ glEnd();
+ glEndList();
+ gp->gllists[GLL_BALL] = 1;
+ } else {
+ glCallList(gp->listobjects + GLL_BALL);
+ polys += gp->list_polys[GLL_BALL];
+ }
+
+ glPopMatrix();
+ return polys;
+}
+
+
+/*
+ * Draw a single triangle
+ */
+static void drawtri(triman *t, int wire, int i)
+{
+ const vectorf *spherev = t->vertices + i*3;
+ const vectorf *loc = &t->tris[i].loc;
+
+ glNormal3f(t->normals[i].x,t->normals[i].y,t->normals[i].z);
+ glVertex3f(spherev[0].x+loc->x,spherev[0].y+loc->y,spherev[0].z+loc->z);
+ glVertex3f(spherev[1].x+loc->x,spherev[1].y+loc->y,spherev[1].z+loc->z);
+ if (wire)
+ glVertex3f(spherev[1].x+loc->x,spherev[1].y+loc->y,spherev[1].z+loc->z);
+ glVertex3f(spherev[2].x+loc->x,spherev[2].y+loc->y,spherev[2].z+loc->z);
+ if (wire) {
+ glVertex3f(spherev[2].x+loc->x,spherev[2].y+loc->y,spherev[2].z+loc->z);
+ glVertex3f(spherev[0].x+loc->x,spherev[0].y+loc->y,spherev[0].z+loc->z);
+ }
+}
+
+
+/*
+ * Draw all triangles in triman
+ */
+static int drawtriman(triman *t, int wire)
+{
+ int polys = 0;
+ int i;
+ GLfloat col[3];
+
+ glPushMatrix();
+ glColor3f(t->color.x,t->color.y,t->color.z);
+ col[0] = t->color.x;
+ col[1] = t->color.y;
+ col[2] = t->color.z;
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, col);
+ col[0] *= 0.3;
+ col[1] *= 0.3;
+ col[2] *= 0.3;
+ glMaterialfv(GL_FRONT, GL_EMISSION,col);
+ glBegin(wire ? GL_LINES : GL_TRIANGLES);
+
+ for (i=0; i<t->num_tri; i++) {
+ if (t->tris[i].gone > 3) { continue; }
+ if (t->tris[i].gone > 0) {
+ glColor3f(t->color.x,t->color.y,t->color.z);
+ col[0] = 1.0f;
+ col[1] = 1.0f;
+ col[2] = 1.0f;
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, col);
+ col[0] *= 0.8;
+ col[1] *= 0.8;
+ col[2] *= 0.8;
+ glMaterialfv(GL_FRONT, GL_EMISSION,col);
+
+ drawtri(t, wire, i);
+ polys++;
+
+ glColor3f(t->color.x,t->color.y,t->color.z);
+ col[0] = t->color.x;
+ col[1] = t->color.y;
+ col[2] = t->color.z;
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, col);
+ col[0] *= 0.3;
+ col[1] *= 0.3;
+ col[2] *= 0.3;
+ glMaterialfv(GL_FRONT, GL_EMISSION,col);
+
+ t->tris[i].gone++;
+ continue;
+ }
+
+ drawtri(t, wire, i);
+ polys++;
+ }
+ glEnd();
+ glPopMatrix();
+ return polys;
+}
+
+/*
+ * draw floor pattern
+ */
+static int drawpattern(boxedstruct *gp)
+{
+ int polys = 0;
+ if (!gp->gllists[GLL_PATTERN]) {
+ glNewList(gp->listobjects + GLL_PATTERN, GL_COMPILE);
+
+ glBegin(GL_LINE_STRIP);
+ glVertex3f(-25.0f, 0.0f, 35.0f);
+ glVertex3f(-15.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-5.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(5.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(15.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(25.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(35.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(35.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(25.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(25.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(35.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(35.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(25.0f, 0.0f, -35.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(15.0f, 0.0f,-35.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(5.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-5.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-15.0f, 0.0f,-35.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-25.0f, 0.0f,-35.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-35.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-35.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-25.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-25.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-35.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-35.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-25.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
+ glEnd();
+
+ glBegin(GL_LINE_STRIP);
+ glVertex3f(-5.0f, 0.0f, 15.0f);
+ glVertex3f(5.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(15.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(15.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(5.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-5.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-15.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-15.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+ glVertex3f(-5.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
+ glEnd();
+
+ glEndList();
+ gp->gllists[GLL_PATTERN] = 1;
+ } else {
+ glCallList(gp->listobjects + GLL_PATTERN);
+ polys += gp->list_polys[GLL_PATTERN];
+ }
+
+ return polys;
+}
+
+
+/*
+ * main rendering loop
+ */
+static void draw(ModeInfo * mi)
+{
+ boxedstruct *gp = &boxed[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME (mi);
+ vectorf v1,v2;
+ GLfloat r;
+ int dx, dz;
+ int i;
+
+ GLfloat dgray[4] = {0.3f, 0.3f, 0.3f, 1.0f};
+ GLfloat black[4] = {0.0f, 0.0f, 0.0f, 1.0f};
+ GLfloat lblue[4] = {0.4f,0.6f,1.0f };
+
+ GLfloat l0_ambient[] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat l0_specular[] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat l0_diffuse[] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat l0_position[] = {0.0, 0.0, 0.0, 1.0}; /* w != 0 -> positional light */
+ GLfloat l1_ambient[] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat l1_specular[] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat l1_diffuse[] = {0.5, 0.5, 0.5, 1.0};
+ GLfloat l1_position[] = {0.0, 1.0, 0.0, 0.0}; /* w = 0 -> directional light */
+
+ mi->polygon_count = 0;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ glRotatef(o, 0, 0, 1);
+ }
+# endif
+
+ gp->tic += 0.01f;
+ gp->camtic += 0.01f + 0.01f * sin(gp->tic * speed);
+
+ /* rotate camera around (0,0,0), looking at (0,0,0), up is (0,1,0) */
+ r = CAMDISTANCE_MIN + (CAMDISTANCE_MAX - CAMDISTANCE_MIN) + (CAMDISTANCE_MAX - CAMDISTANCE_MIN)*cos((gp->camtic/CAMDISTANCE_SPEED) * speed);
+ v1.x = r * sin((gp->camtic/gp->cam_x_speed) * speed);
+ v1.z = r * cos((gp->camtic/gp->cam_x_speed) * speed);
+ v1.y = CAM_HEIGHT * sin((gp->camtic/gp->cam_y_speed) * speed) + 1.02 * CAM_HEIGHT;
+
+ v2.x = LOOKAT_R * sin((gp->camtic/(gp->cam_x_speed * 5.0f)) * speed);
+ v2.z = LOOKAT_R * cos((gp->camtic/(gp->cam_x_speed * 5.0f)) * speed);
+ v2.y = (CAM_HEIGHT * sin((gp->camtic/gp->cam_y_speed) * speed) + 1.02 * CAM_HEIGHT)/10.0;
+
+ gluLookAt(v1.x,v1.y,v1.z,v2.x,v2.y,v2.x,0.0,1.0,0.0);
+
+ if (!wire) {
+ glLightfv(GL_LIGHT0, GL_AMBIENT, l0_ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, l0_diffuse);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, l0_specular);
+ glLightfv(GL_LIGHT0, GL_POSITION, l0_position);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, l1_ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, l1_diffuse);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, l1_specular);
+ glLightfv(GL_LIGHT1, GL_POSITION, l1_position);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+
+ glFrontFace(GL_CW);
+
+ glMaterialfv(GL_FRONT, GL_SPECULAR, black);
+ glMaterialfv(GL_FRONT, GL_EMISSION, lblue);
+ glMaterialfv(GL_FRONT,GL_AMBIENT,black);
+ glMaterialf(GL_FRONT, GL_SHININESS, 5.0);
+ }
+
+
+ /* draw ground grid */
+ /* glDisable(GL_DEPTH_TEST); */
+ glDisable(GL_LIGHTING);
+
+ glColor3f(0.1,0.1,0.6);
+ for (dx= -2; dx<3; dx++) {
+ for (dz= -2; dz<3; dz++) {
+ glPushMatrix();
+ glTranslatef(dx*30.0f, 0.0f, dz*30.0f);
+ drawpattern(gp);
+ glPopMatrix();
+ }
+ }
+
+ /* Set drawing mode for the boxes */
+ glEnable(GL_DEPTH_TEST);
+ if (!wire) glEnable(GL_TEXTURE_2D);
+ glPushMatrix();
+ glColor3f(1.0,1.0,1.0);
+ glScalef(20.0,0.25,20.0);
+ glTranslatef(0.0,2.0,0.0);
+ mi->polygon_count += drawfilledbox(gp, wire);
+ glPopMatrix();
+ glDisable(GL_TEXTURE_2D);
+
+ glPushMatrix();
+ glColor3f(0.2,0.5,0.2);
+ glScalef(20.0,20.0,0.25);
+ glTranslatef(0.0,1.0,81.0);
+ mi->polygon_count += drawbox(gp);
+ glPopMatrix();
+
+ glPushMatrix();
+ glColor3f(0.2,0.5,0.2);
+ glScalef(20.0,20.0,0.25);
+ glTranslatef(0.0,1.0,-81.0);
+ mi->polygon_count += drawbox(gp);
+ glPopMatrix();
+
+ glPushMatrix();
+ glColor3f(0.2,0.5,0.2);
+ glScalef(.25,20.0,20.0);
+ glTranslatef(-81.0,1.0,0.0);
+ mi->polygon_count += drawbox(gp);
+ glPopMatrix();
+
+ glPushMatrix();
+ glColor3f(0.2,0.5,0.2);
+ glScalef(.25,20.0,20.0);
+ glTranslatef(81.0,1.0,0.0);
+ mi->polygon_count += drawbox(gp);
+ glPopMatrix();
+
+ if (!wire) {
+ glEnable(GL_LIGHTING);
+
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, dgray);
+ glMaterialfv(GL_FRONT, GL_EMISSION, black); /* turn it off before painting the balls */
+ }
+
+ /* move the balls and shrapnel */
+ updateballs(&gp->bman);
+
+ glFrontFace(GL_CCW);
+ for (i=0;i<gp->bman.num_balls;i++) {
+ if (gp->bman.balls[i].justcreated) {
+ gp->bman.balls[i].justcreated = FALSE;
+ freetris(&gp->tman[i]);
+ }
+ if (gp->bman.balls[i].bounced) {
+ if (gp->tman[i].vertices == NULL) {
+ createtrisfromball(&gp->tman[i],gp->spherev,gp->spherei,SPHERE_INDICES,&gp->bman.balls[i]);
+ } else {
+ updatetris(&gp->tman[i]);
+ }
+ glDisable(GL_CULL_FACE);
+ mi->polygon_count += drawtriman(&gp->tman[i], wire);
+ if (!wire) glEnable(GL_CULL_FACE);
+ } else {
+ mi->polygon_count += drawball(gp, &gp->bman.balls[i], wire);
+ }
+ }
+
+ glFlush();
+}
+
+
+
+/*
+ * new window size or exposure
+ */
+ENTRYPOINT void reshape_boxed(ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(50.0,1/h,2.0,1000.0);
+ glMatrixMode (GL_MODELVIEW);
+
+ glLineWidth(1);
+ glPointSize(1);
+}
+
+
+static void
+pinit(ModeInfo * mi)
+{
+ boxedstruct *gp = &boxed[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME (mi);
+ ballman *bman;
+ int i,texpixels;
+ char *texpixeldata;
+ char *texpixeltarget;
+
+ glShadeModel(GL_SMOOTH);
+ glClearDepth(1.0);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* Load configuration */
+ setdefaultconfig(&gp->config);
+
+ /* give the decay parameter a better curve */
+ if (gp->config.decay <= 0.8182) { gp->config.decay = gp->config.decay / 3; }
+ else { gp->config.decay = (gp->config.decay - 0.75) * 4; }
+
+ bman = &gp->bman;
+
+ bman->balls = (ball *)malloc(gp->config.numballs * sizeof(ball));
+ bman->num_balls = gp->config.numballs;
+ bman->ballsize = gp->config.ballsize;
+ bman->explosion = gp->config.explosion;
+
+ gp->tman = (triman *)malloc(bman->num_balls * sizeof(triman));
+ memset(gp->tman,0,bman->num_balls * sizeof(triman));
+
+ for(i=0;i<bman->num_balls;i++) {
+ gp->tman[i].explosion = (float) (((int)gp->config.explosion) / 15.0f );
+ gp->tman[i].decay = gp->config.decay;
+ gp->tman[i].momentum = gp->config.momentum;
+ gp->tman[i].vertices = NULL;
+ gp->tman[i].normals = NULL;
+ gp->tman[i].tris = NULL;
+ createball(&bman->balls[i]);
+ bman->balls[i].loc.y *= rnd();
+ }
+
+ generatesphere(gp);
+
+ if (!wire) {
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+ }
+
+ /* define cam path */
+ gp->cam_x_speed = 1.0f/((float)gp->config.camspeed/50.0 + rnd()*((float)gp->config.camspeed/50.0));
+ gp->cam_z_speed = 1.0f/((float)gp->config.camspeed/50.0 + rnd()*((float)gp->config.camspeed/50.0));
+ gp->cam_y_speed = 1.0f/((float)gp->config.camspeed/250.0 + rnd()*((float)gp->config.camspeed/250.0));
+ if (rnd() < 0.5f) gp->cam_x_speed = -gp->cam_x_speed;
+ if (rnd() < 0.5f) gp->cam_z_speed = -gp->cam_z_speed;
+
+ /* define initial cam position */
+ gp->tic = gp->camtic = rnd() * 100.0f;
+
+ /* define tex1 (bottom plate) */
+ gp->tex1 = (char *)malloc(3*width*height*sizeof(GLuint));
+ texpixels = 256*256; /*width*height;*/
+ texpixeldata = header_data;
+ texpixeltarget = gp->tex1;
+ for (i=0; i < texpixels; i++) {
+ HEADER_PIXEL(texpixeldata,texpixeltarget);
+ texpixeltarget += 3;
+ }
+
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+ clear_gl_error();
+#if 0
+ i = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 256, 256,
+ GL_RGB, GL_UNSIGNED_BYTE, gp->tex1);
+ if (i)
+ {
+ const char *s = (char *) gluErrorString (i);
+ fprintf (stderr, "%s: error mipmapping texture: %s\n",
+ progname, (s ? s : "(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+#else
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0,
+ GL_RGB, GL_UNSIGNED_BYTE,
+ gp->tex1);
+ check_gl_error("texture");
+#endif
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+}
+
+
+
+ENTRYPOINT void
+init_boxed(ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+
+ /* Colormap cmap; */
+ /* Boolean rgba, doublebuffer, cmap_installed; */
+ boxedstruct *gp;
+
+ MI_INIT(mi, boxed);
+ gp = &boxed[screen];
+ gp->window = MI_WINDOW(mi);
+
+ if ((gp->glx_context = init_GL(mi)) != NULL) {
+ reshape_boxed(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ if (!glIsList(gp->listobjects)) {
+ gp->listobjects = glGenLists(3);
+ gp->gllists[0] = 0;
+ gp->gllists[1] = 0;
+ gp->gllists[2] = 0;
+ }
+ pinit(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+
+ENTRYPOINT void
+draw_boxed(ModeInfo * mi)
+{
+ boxedstruct *gp = &boxed[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!gp->glx_context)
+ return;
+
+ glDrawBuffer(GL_BACK);
+
+ glXMakeCurrent(display, window, *(gp->glx_context));
+ draw(mi);
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+ENTRYPOINT void
+free_boxed(ModeInfo * mi)
+{
+ boxedstruct *gp = &boxed[MI_SCREEN(mi)];
+ int i;
+
+ if (gp->glx_context) {
+ /* Display lists MUST be freed while their glXContext is current. */
+ glXMakeCurrent(MI_DISPLAY(mi), gp->window, *(gp->glx_context));
+
+ if (glIsList(gp->listobjects))
+ glDeleteLists(gp->listobjects, 3);
+
+ for (i=0;i<gp->bman.num_balls;i++) {
+ if (gp->bman.balls[i].bounced) freetris(&gp->tman[i]);
+ }
+ free (gp->bman.balls);
+ free (gp->tman);
+ free (gp->tex1);
+
+
+ }
+}
+
+
+XSCREENSAVER_MODULE ("Boxed", boxed)
+
+/*********************************************************/
+
+#endif
diff --git a/hacks/glx/boxed.h b/hacks/glx/boxed.h
new file mode 100644
index 0000000..fd9b5e1
--- /dev/null
+++ b/hacks/glx/boxed.h
@@ -0,0 +1,4116 @@
+/* GIMP header image file format (RGB-only): /home/shag/build/xscreensaver-3.33/hacks/glx/thebox.h */
+
+static unsigned int width = 256;
+static unsigned int height = 256;
+
+/* Call this macro repeatedly. After each use, the pixel data can be extracted */
+
+#define HEADER_PIXEL(data,pixel) \
+ pixel[0] = (((data[0] - 33) << 2) | ((data[1] - 33) >> 4)); \
+ pixel[1] = ((((data[1] - 33) & 0xF) << 4) | ((data[2] - 33) >> 2)); \
+ pixel[2] = ((((data[2] - 33) & 0x3) << 6) | ((data[3] - 33))); \
+ data += 4;
+
+# ifdef __GNUC__
+ __extension__ /* don't warn about "string length is greater than the length
+ ISO C89 compilers are required to support" when including
+ the following constant data... */
+# endif
+static char *header_data =
+ "!FY'\"&Q#!&M!!VM-!6Y(!&M##6Q&\"69%\"FU'!FE!!VM$!VI$!&M!!FM#!VU&!'!!"
+ "\"&M%#&M!\"6Q$\"')#!FY#\"FY%\"6Y\"\"&Y#\"6]$\"&U!\"G%!\"7%&!G)!!'-!!')!\"'=!"
+ "!G!##G5\"\"75$\"W9#!G5#!G9!!WA$#'=\"!GE#\"'A%#GI$!GI!#'A!!'E##GQ&%7Q#"
+ "#WU%#W=%\"W]#\"GY\"%WQ)%7Y\"\"H-!\"W]&\"8!$%8%#$8-&\"8%!#81%$85)#H!##H-&"
+ "$H1(#H)#\"X5#$XA%\"X9##H9#\"89#\"89!\"HA\"\"8A!\"8A!\"X=#$8E&#(I!\"8I&$HM!"
+ "#8I%\"8M!!HM#!HM!!HU!$(M($8Q)!H])!XQ!\"8Y!$(]'$(Y'$8Q(\"XY%#XQ#\"I!$"
+ "\"XY\"#Y)##)%#%(]%$Y!!#I%\"\")!%#Y!$#9%!#8]!#I%\"$)%$%HY%#HU\"$91($9-("
+ "$))$#95!%8]&!9-\"$X](\")!#!)%!%)-\"#9-$#)-&#I5\"$Y%!#)-)\"I-!#91!\"Y-\""
+ "\"(]\"$I-'#IA\"\"I-!#Y-&#)-##Y-##)1#!I-##)-#\"H]!#)5#\"Y-\"!)-!\"Y!&$)-!"
+ "#)1#\"Y%##(]!$9-)\"I)!#)1#$Y%'\"XY\"\"91#!)1!#I)\"$)%%%(]&#HY\"#(]!#I)\""
+ "&8]%!(]!\"Y!##H]%#X]!#)%##(Y&\"I)!$X]!#Y!#\"(Y\"\"HY!#Y%'\"8Y!%(]+#XQ&"
+ "\"8M#!XQ$\"Y%%\"8M!#XU!#HI\"$XQ$#XI&\"HI!#8A\"$8E\"#(5!#8A$$(A%\"8=#$(5("
+ "#X='$89##H=\"#(=!\"XA#\"(-#\"H1\"\"81!\"8-!!(5!\"X-##8!#\"H1%$(!&#X1&%X1$"
+ "#(%$\"G]\"!8%\"\"7M!\"7U!#'Y$\"7M!#7Y##GI$#WI%!'M#\"7A!\"GI\"!G9!!GI&!GE!"
+ "\"GE%!W=\"!'E#\"W!\"!G%%!W5&!G9!!W)\"\"'-#!7-'\"V]&!W1\"\"'%\"\"'%#\"&]\"!'1%"
+ "\"&Y##FQ%!&U!\"FU!\"&Q#!&I!!FU#!&Y!!6M\"!FM%!FI!!&M!!VM\"!VM\"!FI%\"6Q$"
+ "!&E#!VQ&!&E!\"FM!\"FM#!&Q!\"&I%#&I%\"&M*\"VM(!6U\"!6A\"!&I'!FM#!FM!\"6M\""
+ "!FE##FU%#V]$\"&Y#\"FY!\"F]%!F]!!V]\"!G1!\"7%\"#75(!G%!\"71$\"'-#\"'1!!G5&"
+ "!W5$!G=!\"7)\"\"G=%\"7M#\"GM'!WA\"!'A!#7A*\"7I!#7Q&#X!*$'I!#'I\"$'U(\"7U!"
+ "#7Y%!GY!#GY&\"7]!!H)!$H!+\"WY##X!'#X%'\"H1!\"()#\"H=\"\"X1(%X-(!H1!#X5!"
+ "\"H5\"$8-&%X5'\"8-!#X-'\"XE%#H=&#XA'#XA$\"XE#\"XE#\"H=!#HE%\"XI\"!HM##(I'"
+ "\"8A!#H=#\"H]!#(Q#\"8Q##(Y#!HE#\"HU!\"))%$(Y$#(Q#$H]&#X]!#X]#\"HU!!)%!"
+ "\"Y!\"#I!&$)%%$)%$#Y-#$XQ*#95!#9)!&9%($)1'!Y)!\"Y-\"#9)$%I%'#)-#\"I-!"
+ "$9)(!YA'&)-*!I%#!Y5!#Y)#%I-$$I5#\"Y1%#I)%#YA&$I1)#))#!Y5!#9-$#)1#"
+ "\"I1!\"I1!!)1$\"I-!#I1%\"Y!#\"H]!#I)%#9)!#))#$9)&#9-$$)='#Y1##I9\"!Y1$"
+ "$)-'#Y)##I-%#99$!)-!#)-&!)-'$Y-+!9-\"%9)#\"X]\"$))'\"9=#$Y)!#Y%#$Y%("
+ "!I%&#Y!##(]!$I!'#9!!%I)!!Y!\"$H]#\"9!##8I(#8]$$(Y'\"I-!$8U##(Q##8I$"
+ "$(U'!HU#$HU!#(Q!%(I)#H](#HU\"$(E(\"XM\"\"HI!\"XA#\"HE!\"(I%&(A(#HE%#XI!"
+ "#H9##8=!\"HA$$8=#!H1##(=!%(1&\"H1!#85%\"X1#\"8-!$(-#\"8-!\"X-\"\"X%#\"X%!"
+ "!H!#!H!!#8-%!'I!\"8%!\"GY%$7M)\"GM\"!'M!\"GU\"\"WU#\"WM!\"'I#\"8!!!75\"\"'I#"
+ "\"79+\"G5\"\"'5!!GA#\"'-\"#'=\"!G%!#')'\"'=,!W5$\"'-#\"G!#\"')#\"'%#\"6U#!W!\""
+ "\"6]#\"G!%#'!$!VU\"!&Q!\"&Q#\"6]$!FM!!&]##&Q'!&Q!!6M$!6M&!&I!!69\"!G!#"
+ "\"6I$!&E!!6Y\"!FI#!6M&!&M!!F='!&Q&!&M!!VE$!VI$\"&I'!6M\"\"&I#!FE!\"6E&"
+ "#&Y%\"W)(!VU\"\"G!)!FU!#V]&!G9!!79&\"G-\"\"7)$!G1!\"G-$!W5\"\"71$\"'5#\"'5!"
+ "!71\"\"'1\"!G9!!7A%\"'A#!G1&\"GI$\"'A!#7I%\"'E'#H!&\"WY#\"WM&$GU%\"']\"!GY!"
+ "!WY!$H!+#W]'\"8!!\"X!#\"'Y#\"W]!!H)##X1'#H-##(5##89\"#H-!\"81!\"89##H1&"
+ "%HE%\"8=!$(9%\"X9\"!X9!\"XA#\"HI$\"XE(#(I#$(Y*$8I(\"8I!#85!#XM!!HM!$8M&"
+ "#(Y##(Q!#XQ!#XY##8Q$#(Q#$9%%#HY%\"X]\"$H]&!H]!\"8Y!!Y5!$I!)'I!'$)!!"
+ "#9%!\"9!$%95#\"9%&#I1(#9)$\"9-#!Y%!\"Y!#\"))\"!HQ!\"I)!$91\"\"I-!#9!!$9))"
+ "!)-'\"I-!$I5##)9#\"I5$#8]!#Y)##)1##)1#\"I9!$I-##9=!\"YA%$9-%\")5%\"I)!"
+ "\"I5!$)-'$)1!\"9=#$Y5!\"Y)\"#Y5&!)A!\"Y-\"#I=!#91$#I%\"#)-#%I5!#)5##9)$"
+ "#)1&!9-\"#91$\"I1!\"I1$\"Y9\"#I)%!I-#!I-##)-#\"I-!\"Y5\"#I)\"!))$\"))\"!)%!"
+ "!X]!$)!(\"Y%#$9%\"#I%\"#I)\"$Y-'#I%#\"I!!#Y-##I%)!Y%!\"8]!#I-%#)%#$(Y'"
+ "$)%%#XY#\"I!!\"8]!#(U#\"HA$#HU\"&HQ)&(Q*\"HU!#8M$\"8M!#8Q$#8Q$$(E(\"8E#"
+ "#(A#\"HA!%85'#(=!%(=#\"H5\"#H9\"\"89!\"85!\"H-'!H5#\"8=!$85$\"8-!!X)!#'U$"
+ "\"8%!\"8!!$H!$#(1!\"(%#!GU#!WY!\"WU#\"7U!$GU#\"7Q!#GI$\"7M!\"7M#\"GI%\"GI\""
+ "#WE*\"'E#\"WA&#'A'\"'I\"!')!\"G9\"\"W5$#W-#\"'1#\"'-#!7-\"\"&Y%\"G5\"\"'!#!'%#"
+ "\"'%#\"F]'\"VY&!&Q!#&Y\"\"&U!\"&Q#!FQ!\"FQ%$VU*!&E!!FM%!VM&!VM$\"F9)\"&U)"
+ "!&M#!&Q!!&I!!&M!!6Q\"\"6]&!&A!!FQ#!VQ$!6=\"!6Y&!6M\"$6M&#FM)!FQ!\"&Q#"
+ "\"6M,\"6Y$#&]$\"V]*#FY)!F]!!G!!!&]!\"')\"!W)!\"7-&!G5!!'-!\"75#!G5!!G9!"
+ "\"'A#!G5!!GA#\"WA#\"GA)!'E!#'A\"#GU!#WM%#7M%\"7M!#WY'#7Y%\"7Y!\"GM\"#7]%"
+ "\"X)##']$\"8%!#8%$%(=&\"8%!\"8)$$X)#$()#$8%)\"8-!&X1(\"X=\"$H='$(=\"%H1&"
+ "!HE#\"X=#\"89!!X5'$8A##XI&\"8A&#(I!&(Y##HI(#(]#\"8M!#8Q$!HQ!\"HQ!$(Y'"
+ "\"XU\"#9!$$X](\"XM%#HU%\"XQ(#XU&\"8Y!#9-!#8Y$\"8Y!#I!\"\"9)#\"H]!\"8]!#8U!"
+ "$9%##X]!\"X]\"\"I%!$Y!*!I)##9-$$914\")1(#I-%#)-#!))$$)5$$Y1*#91$\"Y1%"
+ "$9=\"!Y9!\"9-#$9%)\"Y5\"&)-&$)5'\"Y%#\"I5!\"I='#)9##99$#)=##I9%\"YI!#)9#"
+ "#)9#%I9.\"II!#Y9#\")=\"\"I9!%)1($Y9$\")E\"#Y9#\"Y9\"!YA$$I9)\"I5!#95$\")5("
+ "$)1'#Y=##Y9&$I5##Y9&\")9\"#Y5##)9##9=$#9-$!Y9!$)A'\"Y-\"&9-+!)-!\"Y-\""
+ "\"I)!\"I-!#91'#))##9)$\"XY\"#9)$#9%!$H]#!I)#%I)!&I%&$9!%%I1!!X]!\"8]!"
+ "\"8]!\"I!\"$HU'!XY!\"XU\"#(Q##(U#%(U)$XE%#8I$!(U#\"8M#\"HU$#(Q!\"HM!#HU\""
+ "!XE$\"8M!\"85!!H9!\"XA\"#(=$\"X=##HI%$89##X5&\"89#!H=&#(1&\"85!\"(5\"#H-%"
+ "$(!&#H)%#(5#\"()#\"8)$!G]#\"']\"#W]'#8!##WY'$X!)#7U#\"WQ#\"7Q!\"WM##'Q!"
+ "\"7I!\"WI#\"G=\"$7E$#W5*\"'=#!G=!$75,#W='\"'5\"!79\"#71(!W%\"\"G%#\"')#\"'%#"
+ "#G%$\"7)$!'!!\"'!#\"G%\"\"&Y#!VU\"!6M\"!FQ!\"6]&!6=\"!F]#!VM$!&U#\"FQ#\"&E#"
+ "!&M#!VI$!VU*\"VU&!6M(!6Q\"\"FQ%#6M$!FQ#!FI#!VM&#6M(\"&M#\"&U#\"&M#!F]&"
+ "!FY(\"6Y$!7)\"#6U\"\"W)&!G!!\"G%##G)'!W)\"!'9!\"7-$#W5#\"'-#\"'9%!W-\"\"'=\""
+ "!'=!\"G9%#7Q##'E$\"GI#%'I'!GE#\"WQ!\"'Q\"\"WM##GY$#WY)\"7Y##8!%#X%!\"X%#"
+ "#H)$\"H%\"%(5!#'Y!$8))#7]%#H-#$81$\"H5\"#89$#(=!#85!$(5($H-$#XM&#89\""
+ "$(E%!(M!#89\"$HM'\"(E\"\"HM!!(I!\"8I!!(I$#8]$#(E#%(Q)$HQ)#XQ'$(U'#8A$"
+ "\"HI!#XY#\"8Y!#(]##9!!#8]$$)!(#Y%$$9%%$9%#%(]\"#9!!\"Y%##Y)##I-\"#8Y-"
+ "\"I1!$9-\"$)5'\"I1!#))#\"I1!!))!#9%$!I)#\"I1!%)5\"\"95##91!$)5$$I5)#95!"
+ "$9=%\"I1!\"YI\"\"I9!#99$\"I9!\"Y5\"#I=%$)9!$I=#$)='!YI!\"I9!%I='!)5!#Y9#"
+ "$I=#!)A$\"I=!#I=%#9=$\"YQ!#)=##)A#\"YA\"\"I5!#I=(#Y9&\"II!!IA#\"9=##Y5#"
+ "#)9#\"I1!\"IE!#Y9&\"YI\"#Y-&\"Y=\"\"I=!#I9%#)9##I9\"$Y1'&9A&#I1%\"I!'#)1#"
+ "\"91#\"Y1\"#Y1&$))$$I5#!I%(\"I!$\"I)!#))#$Y)!#I1\"#I%##8]$#(]!$8Y\"#Y-#"
+ "#HQ(\"XY\"\"I!!#(Y#\"Y1\"#8Y$$(Y(\"HU!\"XM\"#8U$%(I#\"XQ\"\"XY\"#(M!!HI&\"(I\""
+ "#HE#!HI!#HM(#8=$\"X=\"#XE'!(9&\"XE#$X=&#(A'\"81!\"H1!#8=$\"81$$81&#(-$"
+ "#H-%\"8%!#H))$H)\"\"8%!\"X%!#8)%\"']%#(!!\"7U!\"'E#\"WU#!GM!\"GQ\"\"7Q!#WI%"
+ "!WM$\"GA$\"WA!\"WE#!'A!\"'A#!7A\"#GA$!G5!\"G5$\"W5#!G5!!'1!\"W)$\"G5\"#&Y#"
+ "\"'%#\"'%#\"F]##6M!!F]!#6](!G!!\"FU#\"6I$!VQ\"\"FM)!&Q!!&Y!!FM#!&=#\"FM%"
+ "!6U\"!6M$!6M\"!FQ##&E%\"&M*!VM$!6Q\"\"6U(\"6M$\"6Q$\"6E\"!VM\"!FY#!VU$\"&]\""
+ "\"FI%!&U&\"'%#\"'!\"!W!\"!G!!\"W%#\"71$\"'-#\"7%$!G-!!F]!!G=!\"'-\"#GI#\"7A#"
+ "\"7=$!WI\"\"GU\"!GE#\"GU\"#'Q$\"7Y&!'Q#\"W=$#7Y%$GY#\"GY%!G]#\"H)\"\"H!\"\"(!\""
+ "\"7Y!$(%%\"8)$$H-%\"X-\"\"X%#$(-(#H1##81%\"85!#(A#\"89!#(9##H=%#(=!!H=#"
+ "\"XA%\"HE$#H=%!HI!$XQ+#(I#\"8E!#(Q#\"8M#\"XQ\"\"HI$#I%%%9%*#8Y$#(U#%)%\""
+ "\"X]%\"Y-\"\"8Y!\"I!!!Y!$#(U!\"I!!$))!!Y-!%I-+%9%&\"I)!\"I!!\"I-!$)-$#I1\""
+ "\"Y!%#)1#!91\"\"I-!#HY%\"I1!$Y-+#95!$I5&#Y=&#IA%\"I9!#Y9&#I=%\"I9!\"I9!"
+ "#9E#$)M&\"I=!!9=\"$I=#\"Y9%#Y5)$)A!$)=$#I=\"%99\"%II&#Y9##YA#$IA##Y9&"
+ "!)E!\"I5!#9A$$Y=!$9A$\"YM!#IA\"$YI&$IA%#I9\"$YA'#Y=#$)9$#9E!$9=%\"IE!"
+ "\"Y5\"\"I9!\"IQ!#I=%%9I%\"I=!#)M#\"99&!)=!#YE%#99'$I9#$Y5'#)9##)9##)1#"
+ "$I=#\")-%\"Y)\"!I1)'))'\"I-!\"I)!$9-%$)-!#H]%#9)!$I)#\"Y)\"#I!#\"I-!$)!$"
+ "#I%\"#8Y$$8U##(Q#!X]!\"X]%%H]-\"(Y\"\"H]!\"XQ\"#XQ$#(Q&%(Q)#(Q#!HQ!\"8U#"
+ "\"HQ!#XY&\"8Y!!HI&\"X=##(M#!(=!#8E%\"H9\"!H9#$()##8I$%(5&#()!#H9&!(-!"
+ "#8-%#H-%#H9##']$\"8)!\"(%##X%!\"81!!(!$$H)(!(!$\"GY)#WQ'#7U#\"7Y#!GY#"
+ "!'Q!\"WM#!'Q!\"W9#\"'E#!WE!\"GA%\"G=%\"'=#\"G9$!G1!!W5\"!7-\"#71(!W1'\"'%#"
+ "\"F]%!7%'\"&]#!6Y$\"W-&#&]'!FY!\"&Q#\"&M#\"FI%$VY%!6M*\"VM&!&M!!&M#!FM#"
+ "!&Q!!&U%!FM#!6M\"\"6M$!&I!\"&M%!&M!#&U%#&M'!7%$!FQ!\"VY&#&U%\"6Y&!W!$"
+ "!6M$!FY!!&]#\"'%%\"'1\"!G1#\"V]\"\"W1&\"W5(!G9!!G9!!79\"!'5#!'=!\"GA\"!GA#"
+ "!GE!#79\"\"WI!\"'I!#WE#\"GQ\"$'Q##7U#!GQ!\"X)\"\"7Y!\"'Y\"$'Y%!H!!\"8)!#(%$"
+ "$H-%\"(%#%(!$#X-'\"X%#\"H%!#X1$#(5#\"89#\"X9\"#XQ&\"X=#\"89!#X=!#(E#\"HE$"
+ "#HA##(E&#(M#\"XM%$(M!\"HI!$XM(#HQ%#HY%$H]&#)!#$9!+#H]\"%Y!#$(]$%I!+"
+ "\"8]!#9!!#9%!!Y)$#9-!#9-!\")%\"\"I!\"#9-$\"I-!\"I-!\"Y9\"&)9##8]!$91%#)1#"
+ "#9=$\"Y1\"#I9%#Y5##Y5&\"I5!$)='!Y1!#I1($9=(#)9#\"Y9\"\")=\"!YI!!Y=!!Y=!"
+ "#Y%$$YA&#YA\"%9E%#9=!#95!#YA##99!$)5$%Y9%$YA&%9I)$)E$%9E)#)5##9E$"
+ "#YM\"$IE%$YI$#9A!%)E!#9E!#9=!#Y=#$95%&)M\"$I5##I=!$)I$$YA&$IA%$9M!"
+ "#Y5##YA\"$9=\"#YI#$)A$#)A#$)5$&9A.$IA($)1$#9E#\"I=!!I9##)A#!95\"\"II!"
+ "\"99##Y1&!)9!\"Y!##Y=#$Y5.#))#\"(]\"\"I1!\"I5!\"9)#!Y-!$Y%*$))$\"I)$\"I)!"
+ "$)%!$I)##9!!#9!\"$HE!$(]$#8]$\"8Y!#(]##HY%\"8U#!HY!#XU&\"XU\"\"HY!\"89!"
+ "\"8M!#HI##XM'#XA&#8Q$\"XI\"!H5##(9#\"XA#!H5#$X=%\"H9%$X9#%(=#$X5&#(5&"
+ "$H1*%X%'#(-!$(-%#8)%#H-&\"8%!#()$$(!#\"8%!#X%!$']&\"WU#\"W]#\"7U!$'U#"
+ "\"WQ!!GU!#'I$!'I#\"GI\"!GM!\"'I#!'E#\"WM#!W)!#'9&!G9!#'5\"!G5#!')!!7%&"
+ "\"G-%\"W)&!79%\"')#\"7)$\"7-$#&]&\"&U!$6Y%!FQ!!W%!\"FY%!VM\"#6E\"!V]\"\"6M&"
+ "!FU#!&M#!&Q!\"6M(!6M\"!&=#!VM$\"VE(\"VM$!V]\"\"&Q#\"&U#!6U$!FM!!&Y##'%%"
+ "!G%!!W%!\"7%$!')#!')!\"G-%#'1&$'I!!G9#\"79+!75\"\"W9&\"71$\"W-&#'U\"\"7E#"
+ "!WM$!'E#!GU##7I#\"WM(!G]!\"7U!#'A\"\"X!#$7]*#X!'\"8!!\"WI##(!$#H%&!H!#"
+ "$8)$\"X)%#8-'#(5#!H5!!(=!%XE)\"89#!X9$\"H=!\"X=%#H5&\"HE!#(M#%8I'#HE#"
+ "$HY)%(E+\"8]!\"8M!#(Q#\"XY\"!HI&!8I\"$8Y&\"8I!\"HI'\"XU\"#HY%#(])#8Y$#I!#"
+ "#9!!#H]\"#I%\"\"Y-\"!))!$))!$9=%$9-)#I)\"#9-$\"I1'\"I1!%Y=(#))&$95\"#)5#"
+ "$I9)#)5)$I9)&91'\"I5!%Y=$!)='\"Y-\"$Y-!#95!%9=)$IA\"$9=%%)A(#9A!#91!"
+ "$)E#\"IA$#9E!#IE\"\"II!$9E$%)A%%)E$&IE.#)=#$)='$IA\"$)A!#9E!%IM&$)E$"
+ "$)Q#$9I\"$)=!$IA#&9I'#9I$$9I$#9I!$9M!%)A+#IE$\"IE!$IA%%9=\"$9=%$Y=$"
+ "$)I#!)E!#YQ##9E!#YE#&)A(!YA$%)A(#YA#&)A\"&9I&#IE\"$Y=!$9=(\"IA!\"Y1\""
+ "$9)\"!YA!#I9%#)%$#Y%#%95\"\"I)!$)5'\"I1!\"9%$\"I1$#Y)&#)-#$91(\"Y-%%)-%"
+ "\"8]!#99'#)%#%Y%,\"I-!$)!!#9-!#9!\"!Y!!$HY##(U#\"I!$#(Y##(Y#%(]%#XU#"
+ "#(Q#!XQ!#(Q##8I$#HQ%#8Q!#HQ\"\"XE#\"8I!#XE&\"XQ%#X9$\"XA0\"X5#$8-)!H9!"
+ "#(=!\"XE#\"X=#$(1#\"7]#!X1!#8%\"#H)$!(%!#H%&\"H!\"\"X%#$8-'\"H%\"\"7Y!$(!("
+ "\"GQ$\"7E!!H%!#WM'\"7M!#7M#!GI#!WY$\"GA#!WE!!GE!#7I(\"W=!\"G9%\"')(#71$"
+ "#G%\"!'%!\"'A'\"G1\"!G%#!'!!!G!#\"G1#!FU#!FY)#&U%!&U#!VY\"\"VQ$\"FQ%!FM*"
+ "!VM$\"FI'\"&Q#\"&M#$&M)\"6M$!VM$\"&M##&M!\"&U##VU,\"&U!\"&U#\"FU%\"&]#!FY&"
+ "#')%\"G)%!FY!$7-%\"')\"\"G1%!W1(!G5%\"G9$!'9!!G=!\"'=#!G1!!W=\"!GA!\"7I!"
+ "\"7M!$'M(\"7M!\"7I!#WQ%\"WY#$GY%$'U#!7Y\"#W]$\"X!#\"X%#$(%%\"8)!#()!!X-$"
+ "\"X-#&H9'\"H5'!H5!#H)&$8=##89$\"X9#\"X=#\"8A!%8A-#(9#\"HM!#XE##HA&\"(A\""
+ "\"8M!\"HA!!HI!#HQ%#HM&!XQ$$8U##XI#\"8Y!#XY##9%!#Y)&#HY%#9%!!X]$$9!&"
+ "$I%'#)%$%)9%$I!*$Y%!!)-!#Y1#$8](#)9#$I5,\"Y1%#I5%#95!\"I1$$95(%II&"
+ "$)A!\"I9!!)=!\"I=!\"Y5\"$9=%$IA#%9E\"#Y9#$9=+$)=$$)A$!Y=!$YI&#YA\"$Y=#"
+ "$IQ%%IE$&)I,$)I#%9I%#YM#\"II!#YI\"#)Q\"#9I!#YM\"$)I#%IQ)&)I,$9Y!%II#"
+ "#9M!#9M!%IA*%YA$%YQ!$)I#\"YM!#)=#\"IM!#9A!#YM#$9U$#IM\"%)I(%)M!#9E!"
+ "#)I&#)M##Y9#'YI*#II\"#9E!#Y=\"$)E#&9E#%YE+%YE+#9I!#9A!%IQ#%9A\"$)=!"
+ "#99!#Y1#!9=%#)9#%9=\"$)5!\"Y=\"\"Y=\"#I=%\"Y-\"!I%##)1#\"I1!%)=$#))&!(]#"
+ "\"Y1%!I-##9)$#Y-&$91(#Y))#Y)##H]\"$I)#%I!!$X]*#9)!\"X]\"!8U%$8Y\"$(Y$"
+ "\"8U!%HI%!XM!$(Q(\"8M##Y!'#(M&#(I'#(E$\"(U\"!(E!\"HE!!HI!$HA'!H=!\"8-!"
+ "$89#\"HA!#89%#(9#\"81!\"(1\"\"(-\"#(5#$8).$()(\"8%!#7U%\"8!!\"GY$\"7]!#GY&"
+ "\"GY\"\"WU##GQ&!GM#!GI#\"GM\"\"GI\"#7I%\"GE$!WA!\"'A%%'9#\"7=#$'A&\"'9#!W5\""
+ "\"79&!W-\"!G1!!W)!\"G)%!'%##G%\"\"&Y#!VY\"!&]!\"6Y$!FU!!VU\"\"&Q##6]#!FM%"
+ "!FQ!!6Q$!6M$!6Q\"!6E\"\"W!&\"VM$!&I!!VM\"\"VQ##FQ)\"6Y#!W%\"\"7!\"#7)##'!%"
+ "\"'%\"\"'1#\"G%##G-)\"71(\"W1!\"G-%\"79$!W9\"!G9!\"W=##7A#$'E(!'I!\"GU\"\"G=%"
+ "\"W=#\"7=$!GE(\"WU##'U$#'I!#8%%$W](%8)(#'Y&!(!!\"']#\"(-#%'Y$#H-##X-'"
+ "\"X9#\"(5\"#X=#\"8)(\"X=##X5'#X=!\"8=$\"8A!!HE!$XE%!HA!\"8I!$8I)$HE*#8M$"
+ "#8Q2#8Y$$XQ*$HU&\"HM!$(]'\"(U\"#(]#\"H]!\"8]!$Y!!#9%!\"I!!#)1#\"9%$$))%"
+ "#9-!#(]!#))#\"8Q!$9A(\"I5!$99($I-##)I##YE&!I1&$99(#IE$\"I9!$I9\"\"I5!"
+ "\"IQ!\"IE$#9=$#9A!%IE$!YA!$)-$$II%$IE&$YA&$IQ\"$)I!\"IM!#YI#\"II$#9A!"
+ "\"I9!#YM#%9M)#9I#\"II!#9I!#IM\"$I=##)Y#$9I!#IE\"#IM+#YU)#Y=##9Q!#9M!"
+ "#9M!#9I!\"9U#$)Q'%)U'%)Q*$)A!$YU#%9M)#9Q!%IE##9M!#9E$$IQ&$)M#%YE$"
+ "#)M%#IM!!YM$$II##YM#\"IU!$)E#%)A!$)Q$$)I'$II##9I!$IE#$9A!$II&$IE%"
+ "$9A%#YA##IE!$YE*#9=!!)A!#9A'#9=!\"I9!%99#\"95#\")1%\"I-!!Y5!#Y%'$I5)"
+ "$(Y'#91$#9)!$9-%!)!!\"95##9)!\"8Y&%9-#$)!%%)%&\"Y!\"#(]!#(]#\"9!#\"H]$"
+ "$(M%#8M$#(M#$(Q(!XQ!#(Q#\"8U!\"9!##8M$!(=!#8E%\"XI\"#(I##(='\"XA\"\"8=#"
+ "\"8A#!(=!$(9\"\"X=\"$(=\"$(1(\"X%#!8-(#H-&!H%%$8%$\"8-!\"W]#\"8%!#7Q&\"W]#"
+ "#7Y#\"WY!&'E$#7U##'Q$\"7M!\"WQ#\"'A!#7M%!WE\"!WQ\"\"79\"#G=$\"GA%\"G)!!W9\""
+ "\"GM$%7)'#'-&!'-!\"7!$!W-!\"'%#!FU!\"&U#!F]!!W!\"\"&U#\"&Q#!FU#\"FU!\"&I)"
+ "!FM!!6M\"!&]!!&=!!&M!#6M\"\"6]$$&Q'#6Y(!&U!\"&M#!F]!\"6Y#\"6Y$#'!'\"'1#"
+ "!G)!!')$!'-#\"G-%#G5'!G5#!GE!\"'=##G9\"\"W=%!GA%\"7A!!'M#\"WM!\"GA#\"GU\""
+ "$GY*\"7Y!\"WY!#7Q\"#8!%\"7]!#']!!WY&\"7U!\"7U!$(-%\"X!##H)#$(!*#H9&$X-\""
+ "#X-!#85\"#H)&\"X9#\"H5!#(='\"8E!!H9!$8A##(Q#$8M##XI&\"8=!!)!$#HI#!XQ!"
+ "$HU$\"(Y%\"XU\"!X]!#(U!$I1##I!&#)!&$))$#8]!$9%#'I%'\"I)$!I-##9)!$I9#"
+ "!Y)!!Y-!\"I1!\"I1!#))#$I5&\"I5!!I5#%I9#\"Y9%#)=&#Y9&\"II!\"I=!$I1&$YE#"
+ "$9I%')5*#9E!!YE!$IE&$IE%&YQ($IE#$YM#%)I/$9M!$YA$$IE##YM##YU\"%)U'"
+ "\"IM$$IQ)#II!%YM.#9Q!$)Y##IM!$IQ&$IU\"$)U##9Q!$IQ&#YQ##9Q!$)U#$)Q#"
+ "\"IU!$YQ##YQ#$9Q!\"II!$)M$')Q*$9I!$)M#$II%#YQ#'9I(#IU!$YY&\"Z!\"#9U!"
+ "#YQ#!YE!$)U#\"IU##9I!$YI$$9M$#9M!%IQ'$IM\"#YI#%)5!#9M!#II\"#YI#%9E)"
+ "#YE#\"IE!%9M)%9=*$99%#YI#\"YA\"$Y1!#Y=##99!#9=$\"9I&$9=%$Y5*#)9#\"Y=\""
+ "%9E)#)1#&)5##I1%$)5*%Y)\"$9-(#X]&!Y)!#(Y&#I!\"$I)'$))!$9!%#I%\"\"8]!"
+ "\"X]\"\"I%!$I!##(U&\"HU!#(U#!XY$#8U$#9!$\"8E!\"(Y.#XI'$(I!#(A!#(M!\"XE#"
+ "#(A##8=$%(=)\"X9##X9!$(1&#(5#\"89!#(1$$()%\"()%#8)%%8%#\"H!\"\"8!!$'Y%"
+ "#7]%$(-#\"7Y!#(%$#7U##WU\"#7M%#'E+\"GE\"\"GE\"!GE!\"'E#\"'9!$'=&\"'9\"#'9+"
+ "\"'E#\"W5#\"'1'\"71&!71$\"&U#\"'-!\"&Y#\"W%$\"G%!!F]!\"F]#!&]#!FU!\"&U#!6Q'"
+ "!VQ$!VM\"\"VQ*!&Q!\"6M$\"&U#\"&I!\"&U#!G!!\"&]'!V]\"\"W!&!G!!!71\"!')!!')!"
+ "\"'-\"\"'-!\"'-#!'!%\"W1##GI#!'5!!GI!!'E!\"G=%!WE)\"7=$#7I!!WM\"#'M$\"'M\""
+ "$7Y$\"GE#!X%$\"GY\"\"7]!\"8!!\"89!\"(!%#(%'\"H)\"\"8)#$X1&#X%$\"X1#\"(-($(1#"
+ "#X5!\"89##89%#85%!8=\"\"H5\"$HA!#8=$%8]#\"XE\"\"XI\"\"(I\"#XE!#(Q##HI%!HU!"
+ "\"HQ!\"8Y)!HM#\"8]!\"8U!\"X]\"$9%%%Y9!\"Y!\"$)%%$Y!'\"Y=\"$))!#Y-#$I-)\"I-!"
+ "$Y1*\"Y1\"\"95#$)1'\"I5$#95$#95$\"I9!#)9#\"I=!%)=(\"I9$#IE\"!Y-$#9A!#9I!"
+ "#I9\"#IE%\"I5!#)I#\"IM$$II&$9U$#)A#$IQ&&IM(%)M!%9E&#9Q!#YQ#$YQ'%)Q!"
+ "%9Q($YY#%9Y\"&)Q(&IM$%)Y'!YU$#YM#%)U($9U($9U$%9Q($9U!&YY%%)Y$$9U$"
+ "\"IU'\"9M#%YE!#)]#!YQ!$YM##I]!&Y]$#)Y&\"YU$$)Y##II\"#9Q!%IU&\"9Y##IY!"
+ "&9M-#YQ&$Y]&$YQ'$YQ##9Q!\"YQ!#9U!#9Q!\"YQ\"$IM&$)A-#YI\"#9Q!$II%#IM$"
+ "\")A%\"YM\"#9I!$Y=!$9E\"$)5$#YA#%)9%!YA!#9=!#9A!#99!#)A#%IY*\"I9!\"Y9\""
+ "!Y-!\"I9!&)=&!)1!!91+\"I1!#91$#I5\"#I-%$H]##9)!#))#\"I1!\"Y-\"$9%&\"I)!"
+ "$8U\"#(]#!(]!\"I%!#8U$\"8Y!#XU&#HE#$HQ&#HQ%#(Q##(M#$HI'#(I##(U##(E$"
+ "\"X=#$XA(\"8=##(9#\"(9%\"X5\"!H5#\"X5\"#89%#85$$(!(#8-*!G]#!X!$\"X%\"#8)%"
+ "\"X!#\"GY'!'U!\"7U!\"7U!!']#\"WQ#!WQ!$'U##7I!\"7E!!GE!#WA%\"'A*\"'A#!79\""
+ "\"75(\"W9#\"G5%!W5$!G=%\"7-$#')'!G)!#7)&!G-%$7!#\"&Q#\"7%$\"FY%#FU\"#FA#"
+ "!&M!!&M!!VI$#&M#\"FQ!!&M!!G%!!6U$!FU!\"&Y#\"&]#\"'!\"!F]!!G!!!W)\"#W!!"
+ "\"'-##'1&!'1!!G9!!G5!\"7A!!GI!\"7A$\"7Q#\"7A$\"W9!#7Q%\"7Q!#'U$$'Q&\"GQ\""
+ "!'M!\"7Y!\"7Y!\"7]$\"7]!\"'Y##'Y$!X%!\"X)&#8-%$(9(#8-%#H9#!(I$#85%#(E$"
+ "#89$#H=%!HA##(I#\"XA%#(A#$89!\"(I\"\"HI$!(I)\"Y!#$8Q(#HQ&&HM*#(Q#!HM!"
+ "$(Y!!Y!'#)!##X]&\"9)#$9)\"#XU#!Y%$!Y)!$)1'!X]'$91%\"I-!$Y1!\")-\"\"9%#"
+ "\")5\"$I1)#IE%#Y-&$I=)#)9#\"Y5%#Y9#\"IE$%)A%&91$#IA!#YE\"#9E!#)E##9M!"
+ "\"II!#)I#\"9E##IM\"$YE*\"9I#%YQ'#I]!$)U##9Q!#9I!#I]!#9U!%)Q$%IY)#Y=\""
+ "%IQ*%9Q($)Y#%I=#%)U'$)U#\"IY!$)Y##9U$#9U!%I]#'J!'$)Y#$9Y$$*%&$IY&"
+ "!YY!$)Q#$Z!##Z%)$I]%$YY##YY\"\"YM\"$IY&%YI!#IU\"\"IY!$)M$$9Y$\":!#'9]+"
+ "%9Y(&YU$#YI#')Q%$IU%$IU%$)U##J)!\"9E##9U#$J%%!YQ!$9E\"$IY\"$)I#\"9M#"
+ "\")I\"#9I!$YE&#9U!$9A$$I]\"#99!#YI##9E!#IE!#YA#\"IE!#9A!#Y9##I9\"!)5!"
+ "\")E%#)9##Y=&$)1'#)5##)5##))#\"I1!\"Y1\"%)I!\"I-$\"I-$$)%'#9)$\"Y%#$))$"
+ "$Y%%$I)##X]!'I%*&(]&%HY$#8Y$#(Q#\"HM$#8U$#(]&\"H]!\"(=\"#XQ##(I#\"8Y#"
+ "$(A(!(A!#8A$\"H%!#X='#H=##(9!#X=$#H5&\"X-#!(9!\"H)\"$H-*\"8!!\"8A!\"8%!"
+ "!H!#\"(!#!GY#\"W]!#WY$\"7U#\"7Q!\"WU#\"7Q!\"WM#\"G9\"\"WY##7]%\"'I#!7A$!'9!"
+ "\"'=##'I$\"75$!G5!!71\"\"'-#\"'-#!'!!\"7-$!G!!#'!%\"VU#\"&]#!FE!!F]!\"&U!"
+ "!&I!!FM#!VE&\"6Y&\"&Q#\"6=(\"'!#!F]!\"&]##'%'#6]$!W%$!7)%!G)!\"G-%\"W1#"
+ "\"'1##'5\"\"75$!'9!!G1%!G=!\"'1#$79%!GE!\"WQ#!7E\"%GU&!GE&\"'=!#X)'\"7U#"
+ "\"GQ\"#'Y$\"WQ#\"8!!\"W]#\"X1#\"(%*\"()*\"8%!#81%$X-+#H!!%(=)!85\"#H=%#(=!"
+ "#XI'#8A$!HA#\"X=\"\"8E!\"XQ\"$HM*\"XQ%\"8A!#H]\"\"8Q##XQ#\"XE#\"8U!\"8Y!\"Y-\""
+ "$H]&\"I-!#(Y!\")!##9)!#9%$\"9)&\")1\"#I)&$9)(\"Y1(#)9##))##91!!Y5!#I5\""
+ "\"I9!!Y9!\"I9!!Y=!\"II!#Y=##YA##Y9#$IA#&I=(&IE$%)E(#IA!'9E+%II##99!"
+ "!)Q!#9M!#9=!'9M'$)M$#YQ#%II#$)Q$#IM\"#J!!%YE!$)Y##IY!#IQ!$9Y$$I]&"
+ "&IY.$:)!%YM.%)M($Z!&\"Z!\"%9])$:!$$I]&$J%&%)]($:-#&)Y!$:!$#I]!$:)!"
+ "#I]!$9]$%IY*#J)!#J)!%YU!$IQ%#IY!&*!$%*-'!I]#$9U$#Y]\"#YU\"\")M%\"I]'"
+ "$)Y##Y]\"#IY!#9U!#9Y#\"YY!$9]$')Y\"$)Y#\"YQ!#9I!#9U!\"IE$%)M!#IY!$IQ&"
+ "#9Q!#)Y&#YQ#%)M($9Y$%9I%$9E%#YI#\"YM\"!9I\"#IA\"%9E\"#Y=\"$)A!\"9E&#91!"
+ "#9A!&9=&%Y=!\"I=!\"IE!#Y5##I9\"\"I9!#Y=\"#I-%\"Y-\"#91$#9%$!)5!!Y)!\"I)!"
+ "\"8U!$Y-(!Y%!$)!$\"I!!\"H]!!Y!!#XY!&HY)#)!##8U$#8Q$!(Q!#XI##HQ%#HY%"
+ "#8I$#8M(\"XI\"#XA!!8E\"#(A!#85%#X5'\"89&\"85#!(5#%(1$\"(1##H5&$8!)!(5!"
+ "#(%$#85\"\"8-!\"WQ#\"7Q!#GU$\"X%\"\"WU##WU%\"WY#$'M!#'Y$#WQ'\"WM#!G=!\"'A#"
+ "#'I'!W=\"#G1$\"79&!71\"!W%$!W1&!'-!#')\"!79\"!W%\"\"'5#!W)(#F]'\"&Y!!FU!"
+ "!7!%!FY#\"VI&!FU##&Q#!6U\"\"6Y#!F]!!F]!!6]\"\"&]\"!G%!\"'5\"#G-)!'9%\"'%#"
+ "\"G1#\"75,!W9\"!G1!!W5\"!W5\"!GQ!!GE!#7Q#\"'Q##8%*\"7U!\"WQ#\"WU#\"GY\"!WM)"
+ "\"W]#!G]!#()$\"'Q\"#(%&$(%(#H))\"(1\"\"H-!!X)!\"HA\"\"85!\"85!\"XA#\"X=##(E$"
+ "\"X=#!HA!\"8A!\"HE!\"(I%#HE%%8M'#HQ&#8M$#(U#!)!!$)%!#(I##XY&#(]#&)%*"
+ "#8]$#91!$Y%!$I!$$I%'$Y)(!Y%!#I-\"#I-%#)9##I%%#)-#%I9.#)9##)A&$I9#"
+ "\"I=!\"I9!!YE!!Y9!$YU'#9M!$IE##9=!!IA&#YM&$)I$%)E!%)A$$9A%$9M!%)Q$"
+ "%)M(%YQ$!YU!#YM)$YI*$)]&#9Q!#IY!#IU!$Y]&$9U!$)]#%*%'#IY!$IY\"#:!#"
+ "#Z!\"#Y]\"#I]!$Z!\"%)]$$9Y$$*%##J%!$Y]'$:!$%J)*&*%!$J%&&*!($9U($I]%"
+ "$:%$%*-'#YY\"#J%!$*!#$9Q!#J%!\"YQ!\"J%!$:-$#IY!%*1##J!!!*!!\"J!!$J!%"
+ "%)](#9]$#I]!$9U$%)Q!!YQ!#J)$$YM#$)Y#$9U$$IY\"%)Y!#9M!&)](#9I!$)U#"
+ "$9M!&)U$#)U##9Q#$*%##J%!\")M,$IU%$)M##YM&$YI&\")E\"\"II$$YE##YE#%)-("
+ "%)E$#IA!&9M&\"I1!\"YM\"\"I=!\"99#!)9*#9-!\"I1!#95!\"I9!#))##I)&#95$\"I)*"
+ "#(Y!!Y-!!)-!#I%##I%##I!#%)1(\"I)!$8]\"#8Q!#(U#!(U!!8U(!XQ!\"8Q!!HE#"
+ "\"8E!$HI$\"8I!\"XE(#XY#!XA!#H5&#(I##(5$!(9!#(5$$85&#H)#$X1#$8-&\"X-\""
+ "#85'!WQ'\"8!!\"X!#\"WY!#GY!\"X!#\"(%%#']$#'U'\"WM##WA'\"WM!!GQ%#'I$!GE#"
+ "$'A&\"7A$\"'=!!W%\"!G=!!WA!#W=%!G1!\"7%$!'E%!G)!!FY!!F]!\"6Y$!F]!\"6Q$"
+ "!&M'!FM!!FY!\"&U#\"&U#\"&Y\"!FU!!V]$!'!!#&]'!'%##7-#\"75&!G-!#7)#!G1!"
+ "#'5&!G-!\"GE#!WA!#7A(!GM!\"7I##GM&$'Y(\"WA!\"WQ%!GQ!!WQ$#7Y%!W]!\"7]!"
+ "!'U!#W]%\"X-##85%#()$\"85!\"(%#\"8!!#(1!$(9(!H-!\"89!\"X)#$(E'\"(=\"#XA'"
+ "\"8A#\"X=#\"HE!#XY#\"XM\"\"H9!#(I#\"(I%\"8U!#9!!#8I\"$XU$\"(]\"\"Y%##XI!%)))"
+ "#9)!$)-$$Y-$\"I-!\"Y%##)1##Y5##9=!\"I5!\"Y1\"!Y-$\")5\"$I1&#Y)&$9I%\"I9$"
+ "#)5##YI##99!#)E##IE\"#IE%!YI!$9A$#9E!$9M!\"YM\"#9U!$)A$#YQ##9A!#9U!"
+ "$9I$#)U#$9]!#II\"$99%#9]##J!!%9Q)&9Y\"$Y]'$9]$\"I]#$:!$%YI!#9U!#Z)\""
+ "\"9]\"$J!%$JA!#J!!#YY\"#Z!%$:!!\"Z%$\"YY$!Z-!$Z)##J-!$IY&#J!!%)]!%Y]'"
+ "$J!&$*%##J1!%*!#%J-%!*%!%)I%!*-$$I]\"#Y]\"#9U!$*-#\"J%!#J)!\"YY\"$*!#"
+ "$*!#$*%##J!!!YY!#J!!!YQ!$*%#$J!%$)]##J!$#J)!#)]#$)]#&:!&#IU!#YY\""
+ "%Z%+%9U\"$9U$#IU\"#IM%\"J%$#9Q#&II($9]'$9Q!$YM#$YU#$II%#9Q!#YE\"#9I!"
+ "$)=$$)A!$II&#)A&$YA$$IA\"\"I=!$YE&\"I1!#))##)9#\"))\"\"I5!\"Y-\"\"XY\"!Y-!"
+ "\"91##)-##))#\"Y-\"#)5##Y)##(Y!#9!!&Y!.\"X]\"\"I!!\"HY!#8]'$(Y'#XI'!8U%"
+ "#XQ&\"8Q!!H]!\"8Q!&(M!#H5#!HE!!8M%\"HA!#H9&\"H=\"#81%#X5'#(5!\"X-\"#8-\""
+ "$(-(\"8%!$(5&#H%&!H!#\"8!!$GY#$(!%#'U$\"WU#\"GA#\"GQ\"\"7M!#7M%\"7]!#7I%"
+ "!WU\"#'5'\"'E#!G=!\"'9\"#'9$\"'5#\"7-$#71%\"G5$\"'-!!G)!!G%!\"G%#\"FM#!FY!"
+ "\"'!##&Q$#&U'!FU!!&]!\"&Y\"!F]!!G!!\"'!#\"'-#!')#\"W)\"#7)#!G1#\"'1\"!G=!"
+ "!W9\"\"7M#\"'=#\"'Q#\"W=%#GM(\"GI#\"'E#\"WQ#!'Q!#'Q$!'E%\"7U!!'Y#\"W]#\"W]!"
+ "\"WU#!X%$\"8%!#X%'#81%%(-'#X1&\"81!$(5(%(=&#(=!\"H9!#(=##HA\"\"XQ\"%8=$"
+ "\"8E!!HM!\"8E!!89\"#(M#!XM!#(U##(Q#\"XU\"%8Y&%)!+!HY!#(E$$XU%%)!##Y1#"
+ "#)%#\"Y)\"\"X]\"!)1!#I5%$)9$\"Y1\"#Y9#!Y5!#YE%#Y5##I=%$9=%\"IM!#YQ)$)A#"
+ "#YE#%9Q)%9A\"!YA'#YI##YQ%$)U#$YA$#YM\"#YQ)%)=!'9M+$9Y!#9U!#IY!#)Y#"
+ "\"IM!!IY#%YU*#YY\"$*%'\"J!!#)]##I]!%9])#9Q!$*%#$Z!#$:!$'Z!%!J!##Z!\""
+ "#Z%&#J%!#Z%\"#J%!!Z%!%IM&$J1%#J!$\"J%!$*)#%:1!$J)\"#J1!$Z!\"#Z!\"$Z!#"
+ "#:1##I]!%Z)##J)!#Z)\"\"J!!%J)\"%Z-#$J%!#Z-\"$:-$#*5\"$:%$#J-!#I]!$*!'"
+ "%*%##J5!$:%$$:%$$*1#\"Z-!#)]##Z!\"$)]#$*%#$9U!$*5#$Z%&$)]#$)Y#$)]#"
+ "$I]%$)]#\"YU\"$9Y!$I]&%9Q(%*!!\"IQ!$IE%$9Q!%9Q($Z%#$9Q%%IQ##9I!#9I#"
+ "%II*#9=!$)I!$95%$9U!#Y5#$IA%%99##Y=#%9A#!9I)\"Y1\"$Y5*\"9M#\"I5!\")5%"
+ "#I5\"$I-'#)5#\"Y-\"#Y)&\"I%%%9!&$I)&#9!!#Y!#&(Q'\"I!!#HU%#8U$#(M##8M$"
+ "\"8Q!#8U$#XI'\"XM\"#(I#!HI!\"XA#\"XE\"!HE!#(A$#(I#\"XA#!(9'#X5&#81\"\"(1#"
+ "\"X1#!8-\"#H)%#H)%%'U\"!GI!#7Y\"\"G]\"\"W]#\"'Y%\"WU##7Q&!WE$\"7U#\"7E!$'M&"
+ "$7M&\"'M#\"'9\"!7A$#'5&\"G9\"\"71&\"W5+\"'1!!'-!\"G-\"!G-#!G)'\"'%!\"7%$#VY$"
+ "!&Q!\"W%#\"&U%\"F])!VU\"\"F]%!V]&$FU)!G%%#7)%!W1\"!G)!\"71#!G%'!W5\"\"G=#"
+ "\"G-$\"'E!!G9!\"'A#!WA\"\"'A!#GM$$'M!\"8%!#7Q(#GU&!GY!#'Y$!WU$\"7Q&$H!\""
+ "#(%$$X%#!X!!\"8)!!8-%#(5#\"89!!(5!\"X5##XI##(=#\"H=!#8A!$(=%\"XE#!(9#"
+ "\"XY%#(U##XM!\"X]\"$9!($(]!\"8M!\"HM!!HM#\")!##(]#\"I!!#Y%$$I!'!Y!!#I!%"
+ "\"I)!\"9-#$Y1!#I)\"\")=%$I1#\"Y5\"$)9!#95$%I-$#9A$#Y=#\"IE!$)I#\"I=!$9M$"
+ "\"Y=\"%)I%$9Q!#9Q!')I*\"YQ$\"9M&&)I\"#YQ\"\")Q\"$9I\"#I]!%)E$$YY#$)U#%)Y!"
+ "$)Y#%)I%#IY!$)]#%I]*$I]%$J%!$9]$#Z!\"#Y]\"#J)!$Z%&#Z%\"#Z)\"#YU\"%:)%"
+ "%*-#%:)($*-*#Z!\"#Z)\"$*)#!:)\"#J-!#Z-\"#Z-\"%*-'$:-!\"Z1!$:-!#Z1\"\"J-!"
+ "&*-'#*)\"%Z5-#J1!$:-#$:-!$*%##Z5\"$Z1&#J!!#J%!%Z-#!*-!\"*)%#Z1\"&:%%"
+ "%*)'!:-%#J)!&:5)!Z)!$Z%&#J)!#J!!%:%!#J%!#J=!#J%!$:!!#:5#$Z%&$:!$"
+ "$*%#$J!%#9U!#9]$$*!##IQ\"\"9I&$YU'%IY&#)A##IQ!$9]$%)U(#YM#&)]($)U#"
+ "#9U!%9=)\"I-!#YI#\"YQ\"$IE#!YE!#YI&\"9I#%YQ!#Y=#\")=\"\"Y=\"$)9!#)9#!)1!"
+ "#)-#$I9##I1%#)-##I-%#))#\"Y)\"\"I)!$9%%$I5&#I!%#(]##XQ'!Y%!!9-\"#X]&"
+ "\"XM\"#X]&$8I#%8M*#(M#\"HY!%(I#\"89#$8E&#(A#$(E$#H9#!H=+%HA##X1'$X5+"
+ "!H1#$(-%#GY#\"8)!#X-'\"8!!\"X!#\"7]!!G]!\"7Q!\"WU#\"GY\"\"7U$!'Q##7Q%%7I("
+ "!GM#\"WA#\"'Q\"\"7A##'9$\"7=!!GA!\"'9!\"'-!\"79$\"GA%\"71$\"6]$#&]\"#7!&\"&Y#"
+ "!FE!\"&M#!6Y\"#&Y#!F]!!F]!\"7!$!VQ\"!G!!#7)'\"'-#\"G1\"!'5$!G5#!G9!!WQ$"
+ "\"'=#\"GA##'9'\"GU\"\"GU$\"'I!!'M&\"'A!!WQ!#7U%\"W]##8!%!7U\"\"WU#\"X)#\"H-\""
+ "\"8!!!H-!\"(!##(5#\"X-##(5$#H5&\"HE!#(5&$HE*#8Q$#(I#\"8A!\"8E#!(A#$(U!"
+ "#HM&%(Q##(Q#\"8M##(U##(U#\"Y%#\"XE\"#XY&$))!#9%!#(U!!9)\"#XQ#$))$#9%$"
+ "\"I1!\"8]#$Y%'$)1$#95$#I5\"$I=&#Y9#\"IE!\"9A#%)M!$Y=#%)A(#9E!$9E%#9I!"
+ "!YE!#II!#9M!$YU&#9M!$IQ\"$)U#$IQ%%*!$$IY%$IQ&$:!!%)Y'\"IY$#Y]\"!9]&"
+ "!9U\"$9U!#J!!%:!$$J!&#Z!\"%:%!\"IY$&J%&$J))%*5#$*%##Z1\"%Z)'$Z1&\"Z)\""
+ "#Z%\"!:-)#J-!')]&$:%$#J%!!:1\"#Z)\"#J-!!Z-!'J1*$*)#$Z1&$:!!$Z-#&:1%"
+ "$J5!$:1##J5!\"*5\"%Z1&$:1!#J1!#J-$&:--$:1$#J!!&*-!\"J!!!Z-!%J-\"#Z)\""
+ "%:%!#J9!%J-\"#Z-\"#Z!\"$:%$#Z)\"#YY\"$I]\"$:1##J)!$:)!#Z%\"!*!!#Z%\"$)U'"
+ "$YU#%)Q$#Z!\"#Z%&$J%%$)]##Y]\"$9Y$$)M##:!#$*!#%)Y+&)I\"#I]!%*)$#Y=\""
+ "%)Q!$9Y$$)A#$*)#$)Q##YI##IQ%#YE#$)E$%9M%$YE'#YE\"#9-!\"IA!$95(#Y5#"
+ "$)9!!Y1!\"I9!\"Y1\"#)=#!Y=!#)-##)%$$))$%9%*$)!!#Y-##I!%#)%##(]#$8U\""
+ "&)%*#XQ!\"8Y!\"(Q%#I)%!H]!#XE&\"I!!#XE&\"8E!#89!#(I$#89%#(A##(9!#XA!"
+ "#(5!\"X)#\"81!\"X-#!H1!#H%(\"X)#$X5%\"H%!$'U#\"8!!!GY!!X%'\"GY\"$'U#\"7U!"
+ "#WI%\"7I!\"GI#\"'9#\"GE%!G9!\"G=%\"'5\"\"W9(!G1!\"G1%\"7-$#'-%#'!'#W)##'!'"
+ "!G)!!&Q!\"F]#\"&U!\"7!\"\"6](\"'!#!W)\"!G1!\"'!!!'5#!71\"\"'5!!G9!\"G9\"#'-'"
+ "#G))!'=!\"GA$\"7Q&#WE%\"WM#\"WQ##7E(\"WU!\"7U!#G]!!WQ$\"(!#\"H!!#(!$#G]!"
+ "\"8!!\"8M!\"X1#\"85+!X=&\"X=#\"X5\"$H9$\"XE\"\"XI\"#(5$#(E##XM$\"HI!$(I%#8M$"
+ "#8E$#)!#\"(I\"\"8Q#$(Y(!HY#\"HY$#X]##)!'$XU!$8]\"!Y)!#I%\"#I)%#)-#$)1!"
+ "#Y1##I5%$)5'\"I5$!9E\"#)5#\"Y-($)5!$9=\"#)M#\"9=#$YE&&9A-%YE!!IE)#9A!"
+ "#IM\"$9E\"#YA##YQ\"#YE#%YM$$)U#$)U#$9U!#IY!#YM%$:%$%Y]-#I]!%Y]#%YU("
+ "$)]#&*!!%:!!%:-(#J)!#I]!'*-!#Z9\"$:)$$J1%&J-'%J%&$9]!#J1!&*-+$*%#"
+ "#Z1%$:)$$:1##J1!$J1!\"Z1!$Z=&#:1##Z1\"%J1\"$J5%#J1!#J9!$:E##Z5\"%*5'"
+ "#J1!$*5\"%Z5&!:5\"#J5!#J5!#*9\"$:5#%*5##J-!!ZI!%:5(#J9!$Z1\"\"J1##Z-\""
+ "#J1!$Z1\"#J%!%*1##Z5\"\"J1!#Z-\"$:-!#J-!$*-'#Z5\"#Z-\"$*-#%:)!#I]!$Z%\""
+ "\"J)!#J-!$J5!&Z)+#:-#$J-\"\"J%!':-*$)]##YQ\"#J!!\"YY$$IY%$*!##9U!%IQ'"
+ "%9Q)#9Q!%I9!#YQ##IE(!YY$#9I!&)I,$9M!#YE\"!YI!#9E!%I1'&)E&#I=!#Y=#"
+ "!I9)#95$\")5\"%9-'#Y9#$9-%#)5#\"I-!#)-##))#!Y-$%)%)%I%!#I-\"\"I!!\"Y1%"
+ "\"XU\"\"HQ!$9!#\"HU!!8U\"#8U$#(U#\"XM\"!(E!#(I#$8E)#HE#\"HE!\"85!#H=\"\"X9#"
+ "!()!\"X5\"\"8)!!8-\"#H-#\"81!#8)%\"X%\"\"GY\"\"7]!\"8%##'Y$\"'Y#!W]!\"W]#\"WQ#"
+ "\"WQ##GQ!!GE#\"G=\"!7Y%\"GE%\"W=#\"'9\"#W1%!W9&\"G9%#'1&!W5\"\"7%\"#'!'\"G)%"
+ "!FI!!VY\"!G!!\"&Y!!W!$!G%!!G)!!'9#\"G-%\"G1#!W1\"!W5$!W9!\"'I!!G1!#79'"
+ "\"WA%\"'E##GI&#'A$\"7M!\"GQ\"#'Q$\"WU#\"WY##7],#(!$#X!!#8!\"#(!$\"8)!#(9!"
+ "\"8)!\"X-\"\"8-!\"(5%#X-$\"X-\"$HA$$H-$#8A%!8=\"\"(=(#HM)#8Q$\"X]\"#XU##(Q!"
+ "#(Q##(]##XY#\"8]!$XI%$(]'#H]%$X]$'9%/#I!#\"I)!\"I)!!95\"#9-!$)1'\"I5!"
+ "!Y9!#95$$9)%$99\"!Y1$\"YE\"$)I$$95\"$)A$$YA$$)E#&9E##9I$$9Q!#9M!%)E("
+ "#YQ\"&)Y,%)Q$$YY&$IU%%)I($IY%!YY!$IY(%I]*$IY)$I]\"$I]\"\"9Q#$*!#&*)!"
+ "%J%\"$:%$%J)\"$J)%%*5'%:%!#Z%\"#J)!#J5!$:-#!*-!#Z-\"$*5\"%:1)#JA!\"J1!"
+ "'J-'%J9\"#JA!#J9!$J)%$J5!#)]#%:5!$*A#%Z=#$J5!\"Z5!%J9)$JE%#JA!#J9!"
+ "$*=##*9\"\"Z%\"#Z9\"\"*1\"#J9!\"Z9!%*=#\"*1\"#JA!%:E(&*9+\"Z5!$:)!\"J%!%:1!"
+ "!:-\"#J1!!9Y%#J)!#Z5!#Z9!!Z!!#Z%\"$J1($*5##Z!\"\"Z1!!*-%%:)!#J-%!:-\""
+ "%Z5#%*)##J)!!Z)!#J-!#Z-\"#J%!$J%)#I]!#Z!\"':)&%J))$I]\"$Z!##9Y'$)Y#"
+ "#9M!#YM\"#9U!#I]!#IQ+$9M%#)Q\"%)Q!$)I##IE!$II##9Q!!IA)%IE$!)A!&)-#"
+ "#Y9#!)=!!)1$\"I-!!)1!#)-#\"Y5\"$Y5$\"Y1\"#)-#%)!\"#Y)&$Y%+$)9!\"I%!#9)!"
+ "\"I)!\"8Y!$(]$#8]!#(I$#8]$#HU%\"HQ!#(M!\"8M##HI%\"XE\"!HA!\"HE!#HE\"%8=%"
+ "\"85!!H=!!(5!#85\"$H1*#H-#$(-##81\"\"H!\"$H%(\"8)!#(!$\"7]!$H!*\"8!!\"7U!"
+ "#GM&#WU'#8%$!GI!\"GI\"\"'E!!7A\"\"GA.\"G-'\"'9\"\"G9\"$79$\"'=\"\"71$\"79#\"7!&"
+ "\"&Y!\"&Y#!&U!\"W!(\"&Y!\"'%#!'1!!W-!$'-(\"G)'\"G9$!79\"!W=\"\"7I$#'A%\"'A#"
+ "!GA!\"'9!#7I%\"7Q!\"GI#$GQ\"%'Y'$'Q!$7Y'\"GQ\"$7]$#W]%!H1!\"8%!#(%$\"(-\""
+ "#8-%#(5!\"X5#\"85!\"8=!\"X=##(9!\"XA#\"XE\"\"89!\"(I\"\"8A!#(I##HM%!XU$$(U%"
+ "\"8Q!$I!'#HU%#(U#\"I!!$(U'&)5&\"H]!$)!!!Y)!\"9-##I-%$9-+#9-!\"I-!!Y9$"
+ "#)5##99$$99%#)1##)A##9A!$IA&\")E\"%IE*#9M!$IU\"#YM#$YM&$YU'$9Q%#99!"
+ "$)Q$#9Q!$IE&%9U%#)Y\"%)U!%IY'!YM!$9]!$*!#%:)($*1#$*1#$*%#%:%(#J1!"
+ "$Z%##J)!#Z)&%:-!%YY$#Z-\"%:-!%*='!Z5!%*5'\":5\"%:5+(*9!#J5!#J)!#J1!"
+ "$*A&#JA!#J9!#Z9\"$JA!#Z5\"':1\"\"JI$$Z9\"!*9$$*M\"#ZA%\":E\"#ZA\"$J%&$J=%"
+ "$:=$&*E(#J=!\"Z=!#J9%\"Z=!&:=,#J9%$ZA\"\"ZU!#Z9\"%JM)\":5*$J9!%:=!$JA!"
+ "$J9!%:5(\":5\"!*%!%ZM\"#J5!$J5!#:5##J5!$Z5\"#Z-\"#J1!\"J1!!Z9!!*5!\"Z%!"
+ "#Z-\"#J1%\"Z-!#J-!#Z)\"&Z%!$IU\"$J)\"$J-!%*)'#Z%\"$J!&#*!&$)U#%9Y%#I]!"
+ "$)]#\"IY!!)Y!#9Q!$9]$%)U!%IQ##YE#$)E#$IM\"\"IM!#9M$$)9!$)E#\"9E#$IA#"
+ "#IA!#YE#$I=&#99$#9)$#)9)#I-(\"Y5\"%91&\"Y=+\"I-!\"I!!#9%%\"Y!#$Y%$#))#"
+ "$I)&\"H]!\"8]!$)%!!HQ!\"8Q!#(]##(Q#\"HQ!#(A!\"X=#\"8I!#HI%#8E%$(A($8A)"
+ "\"8A!\"X1#$H5*#(1$\"81!#81%#81\"\"H)%#H)##8%%$H%'#H!&#H!$#X%'\"GM\"\"WU!"
+ "#WQ'\"GQ\"\"WQ%#7E%!'Q#\"GI\"#7A%!'A!#'E'!G%!\"WM&\"'-\"\"W5%\"'1#\"'1'!W-!"
+ "\"'!#\"V]&\"G%\"!W)\"\"7)$\"7%(\"W-(\"71#!V]\"!G-#\"75(#W9\"#7=&\"7=$\"7A$!G9!"
+ "!GI!#7M%#WM'\"WU#\"WQ#\"7Y$#7Y%\"7Y!#'Q\"$WU&#8!%!H!!\"8)!#85%$8-!\"85!"
+ "\"81!\"X5\"\"85!!(9!#81\"\"XA#$H9%!HA&\"8E!$XI%#(I!#(M&!Y!$!HQ&\"(Q%!HE&"
+ "!HY!$8Y\"\"8]!\"Y%#$)1!#9%%#I!#\"I%!#))#\")-(#Y1##)1##)-#$I5#\"Y1\"\"Y%\""
+ "%)9(\"Y=\"#9M$$)A$#I=!#9A!#YE##IE$$YI'%99)#IE!$9E$#9Q$%)Q!$)I!$YI#"
+ "%YU*#J!!$)Y##9]$$IY&!YM!%YU#\"Y]$%Z5\"\"Z!%\"J!!&J)*#Z)\"#J1!#Z)\"$*)#"
+ "$Z1&#J)!#J-!\"*-\"\"J)!%*1#$:!!#*9\"$*5#&:9($J5!$:E#$J5!#Z)\"$*9##ZA!"
+ "#*=\"#ZE\"$J9!#J=!#JA!#JA!$Z=%#ZI\"%*9'%:=$$:9#$J=!$*A#$ZA&&Z5#&:E!"
+ "%*A'!:A\"$JE$$JI$$*A#(:9.%ZQ%$JQ!&*=($JA$&Z=.\"Z9!#J9!#Z=\"#Z=\"#Z9\""
+ "#Z=\"%ZE\"#JA!$J-\"$*=#%:=($*5\"#J=!#J1(#JE!#J=!#*9\"#Z5!$:5$#ZA!\"Z-!"
+ "$:9#\"J1!#:-##JE!#J1!#*-\"%J))%:)!$IQ&$J1\"%*1+%J!\"#J%$%:!\"$9Y$$IY%"
+ "\")Q\"$9]!$Z%\"#)Y-$)Y#$YM'$)]#$9Q$$IU\"#YQ#$)Q$\"J)!#9Q!#9A!$)I$$IA&"
+ "$I9#$9=%$I=#$)9$!I5#$9=%#9-$%)A\"\"I5!#Y5&%)1(#9)$\"I-!\"9-##H]\"\"I!!"
+ "#9)!#)-##I!\"#XY!%(M)#8Y!!8U\"#(]#\"9!#\"XQ\"%XE##8M$#(M##XM!!HI&$8=("
+ "!HA!\"X=#\"8=##(5#!(9$#H5&$(%(\"WY!#X-$#(-$\"X)#!H%!!H!!$'Y!\"8!!\"7Y!"
+ "#'E$\"WU!#']$#7I##WM\"\"7Q!\"WI#\"'E#\"7I)!G=(\"W9!\"G5%\"79&\"WI#\"')\"!G1!"
+ "!6]\"\"6]&\"'%#!7!\"#'))\"W-&#7%*\"'1!\"'5##W1*!W9!!W=!\"GA%\"'9\"\"GE\"!GM!"
+ "$'Y&\"WY#\"GI#$'M#\"7U!\"WY%$GM#\"'Y%#GY$\"WY#\"7]##X=$!(%!#()!\"81!#(1#"
+ "#H-##H5#!HA&\"8E!\"X=##(A##XE!%8E$!(E!\"XI\"!XI!#(I$\"HQ!#XU!#(I#%(Y\""
+ "!HU!#H]\"\"Y!##9-!\")!#&)%'#9)'!Y)$#9-!#9-!$9-%$Y=*#91$%I9$$95\"\"I9!"
+ "#9=$#Y=#%I9.$9E$\"IM!#YQ\"#YI##9=!$9M!#YM#%IQ*$YU##YI#$YY'$)U#$YY'"
+ "$)Y##YY\"#I]!#YE#&:!*\"J!$$Z!'$*%##J%!%J-\"$J-\"\"Z)%#*%#$J-%#*-\"$J-\""
+ "$*)#$:-#\"J1!#Z5\"$J9%#Z)\"%J5)#J5!#J9!&:9%#:5#\"*=\"%J1\"#J9!$JA!!:E\""
+ "$Z1&#Z=\"!Z%!#Z5\"$JE!&JA-#JA!\"ZI!#JA!#JA!$ZA\"$*=)#Z=\"%*I#$*Q\"%JE("
+ "!ZM$#ZI\"$ZI&\"ZE!#*A\"#ZQ!%ZE\"\"ZM!#ZI\"#*A\"#J=!$ZM!#ZA!#ZA!$JQ!$JQ%"
+ "#JA!#J=!$*A##ZA!#J5!&JE)#J=!$JA!#ZE\"#J1!#J9!$:!$%:E$#J9!\"Z9!#Z5!"
+ "#Z-\"!:%\"%:9!$J1\"\"Z1!$*!##Z-\"!:-%#Z-\"$:-!%Z-&&:))$:)$$:%$%*!($9]$"
+ "#)]\"&J!#%J!&$J-%$*)#$9Y!$9Y$%YM!$)U##YU\"\")Q\"!9M%#9M!$)]#%IA'#9M-"
+ "#YM\"\"9I#$YU#%)=(#9E!#Y=&\"9=##)A##9A!!9-\"#)5#\"I!!!91%\"I-!$9E%!Y)$"
+ "&)9\"#HQ\"#I!#$9!##)!##(M##9!*$(I'#I-%$(M%\"XU\"#(U&!(=!\"HQ!!8E%$(E%"
+ "!HM#!HI#\"X=\"\"X=\"\"(!##85%$8=##(=!#H-#!(9!\"H)\"\"X!!#(%$!X!$$H!%\"W]#"
+ "\"7U!\"WY!!GU!\"7Y!\"WU#!WE$\"'I!\"GE\"!GQ%\"G1$!GA!!'A$\"7M!!G)#\"W1(!G1!"
+ "\"'!%!6]%\"'%#!W)\"\"G5\"!G-#!W-!#75%#'5%\"G5%!W=$\"GA%\"'E#!'A$#'E$\"7]!"
+ "!GM#!W]\"#'E$\"WU##WY\"#W]'#7M#\"X%#$(%(#X1&!X)\"#H)#\"89!$H1'\"X)#!HA!"
+ "#(9$\"8=!$8=##8-%#H=%\"XE\"\"8E!#HI\"\"HI!$XM+$8Q)\"HI!#HU%#HU%$(Y'#I)%"
+ "\"I!!#I)\"#9)!\"I)!#9!!$9)+\"I1!#Y%$#Y)'#Y)#\"Y5\"#Y%'#Y5#\"I9!\")A%$9=!"
+ "$)E#$)I!\"9E#$)A#$)A!%IA*%YI!#9=!#IE\"#IY!!YU!$9M!$*!##YY\"#Z%\"#9Q!"
+ "\"IY!$YU#$:!$$*!##)U#\"Z%!%I]*$*)##J-!$J%!!J-#\"Z9!%JA%$9]!#Z!\"$J1!"
+ "#J1!#Z1\"&JE)%*9#%*I'#JA!$:9$!Z-!&J9\"#Z9\"#JI!#J=!$:E$#J5!\"ZA!#*A\""
+ "#ZA\"#ZQ!#JA!$:)$\"J1!#ZI\"#JE!$JE!$ZE&#JE!#JE$\"ZE!$JI$':E%$*I\"%:U'"
+ "$ZI&%*I#\"*Q\"#*]\"%:I$%*Q'$J=!#ZI\"#JM!%JE)$ZE\"#JE!\"ZE!$:Q##JA!\"ZI!"
+ "#*M\"#JE!$ZE\"%*M\"#J=!%:A(#JE!#*=\"&:E!$*=\"$:=##JA!#Z=\"%*9&#JE!#*9\""
+ "!Z9!!ZA!#J5!$Z-&\"ZE!&*)(\":1##J9!!:9\"%:1!#Z)\"$Z!\"#*-\"%:)!#J1!!YU!"
+ "#J%!#J%!\"J!!$Z!'$*%#%9U)$Y]&#9]##Y]\"#IY$\"IU#$IU%#IQ$#IU!#)Q#))U,"
+ "$9I\"%YI+$9A$\"I5!\"IA!#II!#9A!#)=##)A#\"YA\"\"I9!$9)(\"I5!\"Y1\"%Y=,!9-\""
+ "!Y9!#HQ%#91!#Y%##Y-&\"9%#$(U$#X]##X]&#(Q#!8Q\"$8Q\"\"HQ!\"XQ\"$XI+\"HM!"
+ "\"XE%\"89!!8E%\"X1#$8E&#H9&\"HI!\"(5\"#X1'#(=!!X-!\"8)!$85)\"H%!\"H!'!()!"
+ "$7M$\"W]##7U%#(%&\"WQ!$WQ+#GM&#'E$#GE&\"'A#!7A$\"GA#!GA!!75'\"G1)\"'E%"
+ "!G)!#G%\"#W%#\"71#!G-!\"71$\"W5#\"'5\"\"'I)\"'E#\"WA!!G5!!GM!\"'E!#7A!!GQ!"
+ "\"WU!\"GU\"\"7U#!7]$!GM%\"8!$\"GU\"\"X)%#X%$!H)#$89(#HE\"\"X5\"#85'\"X5#\"89!"
+ "\"(1##8I$\"XA\"\"(I%$8M#\"(A\"#HM##(M#!XM$#(A$\"8U!#95!#I%%!HY!\"X]\"#XY&"
+ "$HQ##I!\"'9%%#I%\"#9-!#91!!Y)!$)1'!I=##)5##95!%9A&#)5#$Y9'%9E\"\"I=!"
+ "\"YU$\"IE$#)9#$9U$#Y9##9Q'$IM&$IQ\"#9Q!#9U!%IY##9U!$)Y#\"IY!$Y]'#*!#"
+ "\"J%!$*!#%)]!$:!'(:%+\"Z)!#J)!#J)!$9Y!$J-%$J-!%J%\"$J5%#J1!$:5##J5!"
+ "\"Z9%\"ZE!&:9,$J5%$J=!!Z9!$*9\"\"ZE!$*9\"$:I$#ZA\"#ZI\"#ZA\"$ZE%$ZE&$*E\""
+ "%:E!#J=!!:E&\"Z=!\"ZI!#JI!$ZI%$:I##ZM!#JE!\"Z]$&:Y,#:A#$ZI!$JI!#JA!"
+ "#JE!$Z9&!ZA!!*Q!!ZI!%*9&#ZU!#ZQ!#:A##ZE!&*E($*9##:U\"#ZM!%:I'&JI!"
+ "$JE!':E1#:U#$*E\"'*U#\"Z5%#JM!$J=!#JE!#J=!#J=!\"Z=!$ZI\"#JA!#:=&\"Z-!"
+ "\"ZE!$*I\"#JE!#J5!#Z9!#Z9\"$J5%#Z5\"#J!!$JI$#J1!\"*1%#J-!#J-!$*-#!:-\""
+ "#J1!#J%!#J%!&:-)#J!!$*!##J!!$9Q!$I]&#Y]\"\"IY!%)Y!#)]#$)Y##9Q!$YQ#"
+ "$)U#$)I#$9A$#IU\"#YE\"$9I!#Y=#&)A,$)A$#)M#\"IE!\")=\"!Y)!%Y1+\"I)!\")9\""
+ "\"I-!#Y5&$)-$\"8U!#9!!#(Q!%91)!)!!$(]$\"(M\"#I!)\"HU$$HM*#(E$\"8]!!8M\""
+ "!XI!\"8Q!%8E'#8I$%XE#\"81!\"85!\"89$\"X)\"!(1!$X5%#85%!H9(\"H-\"#X%'!G]!"
+ "%']'#W]'!GU#$'Y(#7Q%\"7Q!\"'Q#\"7M!#'I%#7I%\"GA$\"GE%!W=$!G=#!'-#\"G5%"
+ "!W%\"!W%\"!7)\"!G)#\"W5%#'5$#G5&!'=!!G9!\"'=#!GI!\"'E##'A$\"'E!\"7U!#7A#"
+ "\"7Q!!GU!\"7Y!$GE#\"WY##GU&!G]!\"G]\"#(%$\"8)#$7])#(I$\"81!#8A\"#(A#$H9*"
+ "#X-'!H=!#8A%#85\"!HA!!8I\"$8Q(\"(M\"\"8Q!$HM)\"XU\"#XY#\"XY\"#(]#\"8]!$I)'"
+ "%Y!&#9%!\")!##))#\"I-!\"Y5\"$I)#\"I5!$I-&#)=##Y9&#IQ$$Y9$!YA!#9E!#YQ#"
+ "$IE&$)E$#IE\"#9U!#9M!&)Q(&9M.$)U#$IQ&$9Y$%)]!&9Y&%)]!$I]%%:!$%Z%*"
+ "$*)#$:1!#J1!#J)!&J-'\"I]!%J5%'Z-('*9%#J1!$:1#%:=!#Z=!\"J5##J9!#Z-\""
+ "\"*9\"#*5\"#ZE\"#*=\"%*9&%JA%&:A!#JI!#Z9!%:A!#JM!#ZE!%ZE*$ZE\"#ZE\"%*I#"
+ "#*I\"$:I#&:E$%JQ!':9\"#JM!$:E#%*M&#JM!#JA!%JI)#Z]!$J]$%*Q*$JM$#JA!"
+ "\"ZM!#ZM!(:M*#:M\"$:M$#:I#%JI!#ZY!#JM!#JM!'JI&#JM!$ZI&#ZE\"$JI$#JM!"
+ "#JM!#JI!$JI!#JE!%JY(%*E'$ZA\"%ZM*#JE!\"*A!\"*I\"%*A+#J=!&*9+$:A##ZA!"
+ "#:A##JE!':Q(#J1!%:E!#Z-\"$Z9&&*1!#Z9\"\"Z5!%J1-#J1!\"J)!#I]!#J%!$J-%"
+ "!Z5!#*!##J)!%Z9*\"9]&$*!'#Z%%$*!#%IY'$)Q$$IY%&IY$$IY%!Z!!#YQ##YQ#"
+ "\"II$$9M!$9M(#9Q!$IM%#YE\"!9Q\"%9E%#9A!&IE($)1!#9I#\"IE!#)9#$)='#)5#"
+ "$I9)\"Y1\"&9-*#Y%$#9%%\"I%!$9%##(Y!!)%$#(Y##XU'#Y!&\"8Y!\"8M!#8U$!HM!"
+ "$(M'\"XA#\"XU\"\"8I#\"8A!\"(5\"\"XI\"\"H9\"\"X=\"\"H)\"\"(1\"!X%'\"8-!$()(\"7]!#7Y\""
+ "#H)%$(%##H%##()$#G]!\"7Y!\"G]\"\"7Q!\"'Q#\"WI!#7Q'\"'E#\"G=%\"'A#\"G9\"!'1%"
+ "\"G-%\"'%#\"G-$!G-!\"G1$\"WM&!GE!!7A\"#'5$!WE!!WM!!7I\"\"7I!#GY!$'I)\"GA\""
+ "\"H%\"\"G]%\"W]#\"G]\"#GY##H!&%8%#\"8%!\"(-#$(9%\"81!\"X%\"#(9##X='\"8)!\"8=!"
+ "!8A\"$8A(\"81!#(I#\"(M\"#HM\"\"XU\"%8U*#8]!$8U%\"8Y#%I%+\"8]#\"HY$#9-!\"8]!"
+ "$)%%$Y)+#99$#Y)'#91!#)9#!Y5!#99$#9Q#$)M&\"I5$#9E!&)A%$Y=!#9A!$YM#"
+ "%)9(#9M!\"YI!$IU%#YQ#%*!#!YU$$)Y##IY!#IU\"#YQ#%)]'$*%#%9U)&*%!&J%#"
+ "#J%!$:%$$Z9\"$:%$(Z-&$:-##J1!#*1\"$J5!#Z9\"$J9!#ZE\"#J5!#Z9!$*=&!*=!"
+ "#J9!&*-+#JA!%:1(%JU!$JA!#Z=\"#JE!#JE!$*5##JI!#JE!#ZI!$JM%$*U\"#JM!"
+ "$:E$$JM!\"ZM!\"ZM!#J=!#ZQ!%JQ(#ZQ!#ZQ!$JQ!#ZQ!$ZI%#JM!$:U##ZY!!ZQ!"
+ "#JM!&:Q($JE%\"ZQ!&JU%\"*Q\"\":Q\"%*I#&*Q#!Z]!$:Q#%JQ)$+)\"$*Q)#ZU!\"*Q\""
+ "$:Q#%JM)$JM!$*U\"$[!&':M!%JQ!&ZM+%ZM&&:I%#ZE\"$J5!#ZY!%:E!\"Z=!\"ZE!"
+ "$*M\"$ZA%\"*A!%:A($*9\"#J9!!:=%#J-!#JE!%:9%#Z-\"$J5!$J=!#Z)\"#J=!\"Z)\""
+ "%*1''*9)#Z9!$:-$\"Z!\"\"Z)!$*%#!Z)!%:)($*!#%Z!'#J!!$IU%$YU'!Z%!#9U!"
+ "\"IU!%)Q'\"9Q##YQ##9I!#9M!$IA##IQ!$)E&!)E!#Y9##Y=#\"IM!\"I-!!I5&$Y5$"
+ "#9A!#9=*%I1$#)-##91!#91!$9!%#9!!#9!!!Y!!#8]!\"(U\"\"I!!#(Y#\"8I#\"XQ\""
+ "!(9$\"HI!\"XM\"#(I#\"HE$#(M##(=$!HE!#X1%#89%#(=!!()!$HA*#()'\"81!$(%&"
+ "\"X%!#']&\"8!!#8!$#GY$#'Y$!GU#\"GQ%\"7Q!#7M#$7I'\"'E\"!'Q#!7A%\"75#\"'E#"
+ "#')%!'-!#'5'\"W5&!G5&\"75$\"7=$\"'=#!GM!\"WE%\"'E#\"WE##7Y%\"GI#\"GQ\"#7Y#"
+ "\"X%##GY!\"7]!\"H%$$8%&#8%\"\"WY#\"H)!!X-!#H1&\"H1\"\"89!%89%\"85!\"HQ$#H=\""
+ "\"8E!!HE&$HI'\"XE#!(A!\"XE#\"HQ'\"8U!#XU&#8Y$#HI#\")!(%9%,$8]%#9%!!)-!"
+ "#))&!Y9!\"I-!$Y)(\"I!!$I5#\")5\"\"I9!!9I%$Y=!#I9\"$)I$#YE%&)E)$9I%#9I!"
+ "$IM%$*)##J!!%YQ'#*!&$IU%%9Y(%IY\"\"I]!#I]!#J%!$I]\"#J)!%:1($Z!&%:%!"
+ "%)]!#J-%%J-\"%:1(%*=+#J1!#Z)\"#Z5!$J9!#JA!#J5!#J5!#*5\"&*A+#ZA%%*A&"
+ "$Z-\"$Z9&#JA!$JI(%:E!#JE!#Z9!#ZI\"$JM!\"ZI!!*M!#JI!\"ZM!#ZU!\"*M\"%Z])"
+ "&:I!$JM!%JM!$*Q\"#JA!%*U\"#ZQ!!ZM!#Z]!#ZU!#ZU!\"ZU!**U)$*]&#ZY!\"[!!"
+ "%JQ!$[!!#ZU!#JI!%ZU)#JI!$J]!$ZQ%#ZU!#[)!'*U#$JI!$*]\"$Z]%%+)\"\"[!!"
+ "$JU!#JM!%*M\"%:Q$!*Q$%JQ!#ZU!#Z]!#:M##JM!#JM$&ZU\"$ZM\"!:Q\"#ZE!#JI!"
+ "%*I\"&:A,$J9!#JI!$Z=\"$*=#$JQ!\"ZA!#J5!#*=\"%Z1&#J9!$J9!#Z9%!*5!#J5!"
+ "#J%!#J=!#*9\"#JA!#J-!%*1'%Z)+#Z-\"\"J!!%:%(#:%##Y]\"$*!#!)]!%:%!%9Y,"
+ "#IU!#IU\"$)]#%9U%#9U!&IM$\"YM\"$9I$$YI&&Y9/#IE(#9A!$IA%%9=%\"I=!!I=#"
+ "\"I1!\"(]%$9-(#9A$#9)!\"I-!$))%#))#%I%$%)!%\"8]#$X]$\"Y%##)%##))##8Y$"
+ "$(]$%(M##8M$\"H-*!HQ!\"XI\"#(A##8A%%H=&#(E!\"8M#\"8=!\"X1\"\"X9#\"8)!\"8)!"
+ "\"X=%$()(\"X!#$8%)#']$\"H!!\"WQ#!'M!\"7Q!\"GM\"\"GY\"#7I%#7I%!W1\"!GE%!WA&"
+ "!G-!\"7=#\"G1$#'9'#'5\"\"'5#!W9&\"79#\"W1&$7E$\"GM\"#']$#WA#!GU##7Y#$8)&"
+ "$'Y#\"G]!\"W]##(!$\"(!#\"8)!\"H)!\"X-#\"X-#$(9%#(9!#H1!#X5&&(=%%(E##(A$"
+ "!HE#!XI$#(M!#8M!\"XE#$(Q!#(U#%8Q$#(Y!#(]##HU\"#XU&#(]!#I5\"\"I1!\"I5!"
+ "\"I)!#))##9-$$Y1'!)1$#I=%\"I9!#9A!%Y=(%)E!#)A#\"IE!$)E#\"IA!$9U!#YM\""
+ "%YM$#YM#$IU\"!9Q\"$)U#$*!#$:!!&)]$#Z!\"\"J%!\"Z%\"%Z%'%*%'$J-\"#Z!\"#J-!"
+ "!Z-!#*9\"'*1%#J1!#J5!$J5!!Z1!$Z9\"$:9##J=!$Z5\"#Z=!#J=!%:E!#JA!#Z=\""
+ "&:I,\"JM#\"ZE!$JM$!ZY!%*I\"$:Y#%ZQ&$ZM\"$*U\"#:Q##;%&#ZQ!#ZQ!$J]!$*Y\""
+ "%*I\"#:U#$JU$#*]\"%:U$$J]!#ZU!\"ZU%#[)!#[%!$*U\"$ZY%$*Y\"$*Y\"#[)!$JU$"
+ "$;%\"\"Z]!&[%\"\"JY#\"[!!$ZU%(J].#ZU!#*]\"%JY)\"*Y\"\"ZM!$ZY)\"ZQ!$ZY%$:Q#"
+ "#ZU!$JQ!#ZI!$+!\"$*U\"#JM!$*U\"\":]\"#*Q\"$*M\"!ZM!#ZQ!#:]\"%ZE*$JA%%ZU)"
+ "$:I#$*I\"$J9%(JI#\"*E!#ZA\"#JE!$JM!$*A\"\"JM#%JA)#ZA%#ZQ!\"*9!#:5##Z=\""
+ "\"Z5!&:5!#J9!$*%##J)!%J-\"%J5\"\"J%!%:-!$:1!$:)!#*%#%J!*$:!!#J%!&9Y&"
+ "%YY$$)Y#$)Y##IU!#YU\"#YQ#%9U%#9U!#9A!#YI##)M#$IU%$YI'$)A!$)=$#)5#"
+ "#I=!#9=$\"Y=\"!Y5$%Y5%\"9-##9!*\"H]!#Y9##)%##Y-#%Y1($)%%$(]'!HY!#(E!"
+ "#XU##8Q$\"8Q+#8M$#HQ\"#(I#\"HU$%(E#\"XA\"!(I!\"85!\"8=#\"H=!\"8=#\"8-!\"X%#"
+ "!H)!\"(!%#8%$#(!$\"8)!\"(%%#WY$!7U\"!GQ#$7M'\"7Q$\"GM%#7M&!GE!\"'9##GI$"
+ "\"7=$#'-'!W1!!79\"\"G1'\"7=#!WA$#7A##'A'#'E$\"WQ##'E'\"WQ&\"GU\"#GU!\"W]#"
+ "#']$!GU!#H!&$(%(#H)!$8%)\"X)##(A$#(1&#X9$\"(9\"$(=!$XA&#(I##(A$#XI!"
+ "!XI$#HI#\"8Y!\"8M##XQ&#(U##(U!\"XY\"#H]%$I)##9!!!8Y\"%I!(\"I)!\"I)!$Y1$"
+ "$H]#$)5'\"I1$#I1%$I9&#9I##I1%#IA%#)A##IA\"#9E!$)Y##)U\"\"IU!#YQ#$9Q!"
+ "#YE%$)U#$IQ\"$J!&#9Q!#9]'%:!\"\"IU!#J)!$J%)$*%#%9])$J)%&*-($Z-&\"J-!"
+ "#Z-\"'Z1)$J5!$J9!%*A#$J9!$J9!#J)!#J5$#J=!%:5(#JA!%J9\"%JE(#JM!#ZA!"
+ "#J9!&ZM\"\"ZI!%*Q\"#JE!#JM!&ZI\"$JQ$!K!#'+!#![!$$JU$#ZQ!#[%!#[)!#JI!"
+ "%:M(#[)!$[%%#[-!#ZY!#[!!$*Y\"$[)!$ZU%$J]$#Z]!\"*]!$:]*$[%!#[-!#ZQ!"
+ "\"ZM!$:M$%J]%&;!#$[%!#;!#&ZY.#JM!#*]\"';!,$*]\"#Z]$#Z]!\"+!\"#ZY!%Z]\""
+ "%ZU\"$*U\"'*Q+#*Q\"#JE!%K)(#*Y\"$J]!%*U'$JE$$JM!&J]!#ZQ!#J9!!ZY!$JQ$"
+ "%ZM\"$:M$\"JM$%ZE\"$:I$$:I$#J=!#J=!\"*E%$:E##JM!$JM!$*I\"#*A&#J1!$:=$"
+ "#*9\"#J9!\"J9#%:5!$JA$$J!\"%J1\"#Z-\"%J5)$:-!#J)!#J-!#Z%\"#J!!'*!0&J-\""
+ "#IU\"#J)%#IY+$IY%#YQ##J)!$9Y!#9Q!#9M!#)M#%YI(%I5!#YA#$9E(#9I!$)A#"
+ "#)A#!Y9!&99*%)5%!Y5$$Y-'\"I5!#)%#!Y1!\"I1!$9%&$(]$\"8Y!\"Y)\"\"8U##(I'"
+ "!8M($(U$#(=$\"HQ!$(E(\"8I#\"8I!#HE##(=$\"HE$\"8E!$X5,#8=%$H5\"\"8-!$(-#"
+ "#8-%!(-!\"(5'#X%'\"8!!\"8-!\"H!!\"WY!$'Y)#7]%\"7Q!\"7M!\"7M!\"7I##'E+!G=!"
+ "\"7)$\"G-$\"'1\"!'1$\"'5%#79!\"'I##'E'!7U\"$7E*\"WM##7Q#\"GY\"!7Q\"!GM!\"X!#"
+ "$H!'$X!)#(%!\"8-!\"8%!#85\"\"H1!\"81$\"(9\"$81!#(1!#8=$!HI!$8I&\"(E\"\"8I!"
+ "!HE!$8M&\"(Q\"\"XE\"#)!$\"X]\"$(Y!#H]%$(]*#H]\"#Y)#$))$#I-\"\"9-##I)&$)!("
+ "!)1$#)5#$95%!Y=!!Y=!\"I=!$YA&#IA\"$IA&#9A!#YI\"#YY\"%IQ'%)Q$#IU\"%)Y$"
+ "$YU'#IM\"#J!!\"I]$$Y]&$*!#$9]$!J%#$)Y#$:)!&*!(#Z-\"\"J!!\"Z9!$:%$$:5$"
+ "#J1!#J9!%J-\"#J=!#J9!\"J=##JE!#J5!%ZE)&:M(\"ZM!$ZM%#ZE\"$JQ(#ZI!#ZU!"
+ "%JM!&:A$&*=+%*M&&*I'$ZQ%#ZY!#[!!$JU!$+%\"$:U$#ZU!$ZM\"$:Y'#Z]!&*Y*"
+ "$Z]%$K%(\"ZY!!Z]!#;%#%K!)#*]!#Z]!%;)+#[!!#[%!$Z]%#[%!$*U\"$ZY%%;!'"
+ "&K%!!+!$$K!$#*Y%\"[!!\"[1!#[!!#+)&$:Y*$+-\"$+!\"#ZY!#[9!$;!##[!!#[)!"
+ "%K)$$ZU%\"*]!$JY!#ZU!%J],$:Y#![!!\"JQ$$*U\"':I%#ZU!\"ZU!%*I'%:]#%K!)"
+ "$ZQ%!ZU!$*Q\"&JY!%JQ$$*M\"#*M\"$JI!#JE!%*E'\"*Q!#JE!$*E\"$Z=\"\"*I\"\"ZA%"
+ "#J=$#J5!$:9##Z9\"$*1&#J1!$J5!\"J1!$*-##J=!\":-\"$:)!#*1\"$:!$$J5%$:)$"
+ "\"J!!#Z!&\"IU!$:%!#)M%&)Y%!IQ##YQ&$)Q$#)Q#$YU#\"IM$$YI&%Y1%#9E!%)5\""
+ "&)I\"!95\"#9=$#I5%#99$#)9##I9\"#Y9#!Y-!\"Y-\"$I-)#9%!#Y%$$9!&\"I1$\"8]!"
+ "\"(Y\"\"8Y!\"(]%\"HQ$#(]#!XU!#XI!#(I#\"8A!$XE\"\"8A!\"X=#%(1'\"X9\"#()!\"85!"
+ "\"89&!()#\"X!#\"G]\"\"X%#$WY!\"(%#!']!#X!\"#7Q#$'M##GQ&\"GM\"$'E!\"'E\"!W=\""
+ "!71'\"'%#!'=#!W5!\"G=\"!WQ\"!WE\"$'U($GI&\"GM'\"7M!#7M&\"GQ\"\"WY##7Q%!WY$"
+ "!(!#$8%$\"X%##(!$&(-+\"8-!$(A\"\"(%#\"HE$#85$\"X-#!HA!#8A$\"(5%#89$#8]$"
+ "\"8I!\"8A!!HQ!#(Q#\"XY\"$8M#\"X]\"\"I!!%Y!#%XY\"!Y!!#Y%&$))$#Y-&!Y1!\"91#"
+ "#9I$$I9&#)5&#Y5&#9=!#)=#!YE!\"II!#)A##9I!!YM!#9Q!%9Y%$9U$#)]##IM\""
+ "#)Y#&)Y!#Y]\"$YY&$)Q$%:%+!Z)!$J!%&*-!&J-\"$:-#&*-+$:1!$Z1&$Z5\"#*5%"
+ "%:1%#J9!#J=!#J=!#Z=\"#JA!$*A\"%*M&%*E\"&:Q,&*E$!*I$#JE!%*M*#JM!$:E#"
+ "!ZM!#Z]!$*M\"\"*Q!#ZU!$*M\"$:]##[!!$*I\"'JY*\"ZU$$*Y&#[%!&+)\"&:M!%:U$"
+ "$[!!#[!!$;%\"%[!)#;!\"$+!\"%[!&%[%)$[!&$[%!%+%&$K%$#[%!\"ZU!$+!\"$*U\""
+ "#[%)#[%!$;%\"$+)\"#[%!!ZY!$K%$$[%!$[1!%+%&#[%!$+%\"#ZU!$K1$#*]!$K%$"
+ "\";5&%;%'%JY!#[!!![!!&:]+#[!!#:]\"%;!$%ZY\"$[!&%*Y*%:Y#$*M\"%JY($K!$"
+ "&;)'&JU)&JQ%$*U\"$:M$$*M\"$:Q$$*M\"%*M&%JM!%*I'$:M'%JI!\"ZM!#ZA\"#JA!"
+ "#JA!#JA!$:=$$*9)%*='$J%&$Z-&$JI!#J9!#J1$$:1!#Z-\"%:-%!Z%!$Z)\"#J=!"
+ "%9]!#J%!#YQ##Z!(#9Q!#J1!$)]#$)]#$)U#$)Q$$IQ&\"IQ!#IQ\"#YE%#Y]\"&9=$"
+ "#9A!#9E!#I5\"%Y=,#YA\"\"Y9\"\"I5!\"I=!\")9%$)5'#Y%'$I%&#9%!$I%'#XU##(Q!"
+ "\"X]\"\"XI\"\"8Y##9!!#(E!\"HM!#XA#\"8I!\"8E#\"X=#!X=!\"8A!\"81!\"89!\"H9!#HM&"
+ "#']$#85%$X1#\"X)##(!'#8-%\"G]\"\"WY#&(%)#'Q$!GU!#7]%\"GE\"\"7Y!#7=%#'I\""
+ "$'5&#G1$!G=%!G=!!W1&\"'E#!WE\"\"GA\"\"WM#\"7=!\"'Q#\"8%!$GY*!G]%#W]'\"7]!"
+ "\"X)##8!\"!(%!$H1%#(1!\"81!\"X5%\"W]##8=$%(5#\"XE#\"H-$#8E%#(I#\"XU\"\"8Q!"
+ "\"HU!\"I!\"\"XU\"\"XE\"!X]$!XY$\"I!!$Y!'%I-!\"XY\"\"8Y!$)5!\"I)!$Y1*\"IA!#)1#"
+ "#)-#!YA!\"IE!$)-$$)I$$YE$#IE!\"9I##9Q'#)]##9I!#99!\"YU!#IY!#YU\"$)Y#"
+ "#Z!\"$)Y#%*%'\":!\"!Z!!$9Y!%Y]'#Z%\"$Z1&&*%(#J-!$:1!#J5!#JI!\":A#%*9'"
+ "#JE!%:=(%:=$$ZE&%*=&$J5!&:I,$:Q#%:M$#JI!#*E\"$JY!$*M\"#ZI!#Z]!$:I#"
+ "#ZQ!\"*Q\"%:Q$%*Q##[!!%ZY\"%*Y\"#ZQ!$+!\"$;!#$[!!$*]\"&:],%K!)%;!#\"[)!"
+ "&;)#![%!#[%!\"K!$#JY$$[)!\"+!\"&+%\"$[%!\"ZQ!$[)%\"K)#'[)\"$+1\"#[1!#[)!"
+ "\"Z]$#+)\"%;)+$+)!$+!\"$+)\"%+).#+!\"#;)\"$[)!#[%!#[)!%+-&$[%!![1!\"[%!"
+ "$+!\"$;)\"#Z]!#[%!#[%!#[1!$;)'#ZY!%K!!'K%,%Z])!*]!#JI!#Z]!#Z]!%:M'"
+ "$:]##+%!$JU!$:Q#&:Q$$ZU\"#ZE\"$JQ!$JQ($ZE%$ZM%#ZY!$JQ!#JI!#Z5\"&:E%"
+ "\"ZM!#JE!%*=*$*A#$Z=\"#Z=!#JE!#ZA\"#Z5!#*5\"&*1!!*5$%Z1#$Z9&#J-!\"J)!"
+ "#J1!#J-!#I]!$:!$#IU\"$Y]#$)U##IY!#IU!$:!!#9]$#)Y#\"I]!#9I$$)U##)9#"
+ "!YE!#YE\"#9A!#II\"!I1#\"I9!#)-#\"Y5\"\"IE!#Y!'#9-$!Y5!\"(Y($HY$#I%\"#I%\""
+ "!Y1!\"XM\"\"HY!#HM%\"8Y!!I%##XA$#(M!#8M$$8M\"#XE&\"XA\"#(A$#(A!!H9##H9#"
+ "$81)!H=!#(-!#(!$\"85!\"H)!\"W]#%8%%!7]\"\"7]#\"X!#!WQ$#WQ'\"WU#\"7]!#7I\""
+ "\"'=##79!#7=(\"'=%\"W=%\"75&\"7I!\"7M!#'Q$#WQ'\"7U!\"7U!#']$#7Y%!']!!X)$"
+ "!H)!#H)#$H-*!XA!#X-'!H5!#X!(!H9!!X1!#(I!\"HI'\"8=!\"HA!#8Q!\"8M!$(Q("
+ "%(U,#I!%#XY&#XU&#(]##9%!$9!&$X](#9%!\"I)!!)9!\"9%#!Y=!#)=&#Y-#\"I=!"
+ "#I9%\"I=$$9=%$Y9'$9E%$)E#$9I\"#9M!%)I!$IQ&&)]($)]##YY\"$IY&%9Y!$9U$"
+ "$Z!##9U$#I]!&*!!#Z1\"&J)*#Z1\"#J-$$*9\"#J1!$Z5\"#Z5\"#ZE\"#J9!#J5!%:=!"
+ "%*=##Z9\"$*A##ZE\"!ZI!!ZQ!#ZQ!#JI!#J=!\"ZU!!ZI$!ZQ!%*Q'':Q!\"ZU!':U%"
+ "!:U\"\"ZU!#ZY!#ZY!&*Y#%ZY\"(*](\";%\"%ZU)%K%!\"[!!\"[!!#[!!#[!!!:Q\"#*M\""
+ "$[)!$+-\"#K)$$K9#$[)!$;!#%+)\"$+-\"$+)\"&[-.\";-&\"+1%$+-\"%+!\"$K5$$;1#"
+ "$[-$&;-+$;-\"%[)!$+5\"%+9&$+-!$+1\"$+)\"$*Y\"$[)!#[I!%;-'$+)\"%+)&\"[1$"
+ "\"[!!$+1\"#K)#%[)%\"[5!#[!!#[!$#:]\"$*]\"$+)\"#JM!%[-&$JU!%K%!#JM!$+-&"
+ "\":]&$Z]!$J]!%:Y$\"ZY!#Z]!&ZU*%ZU\"#;%'$:I$#ZQ!$*M\"%:M$#ZY!$J]!#JM!"
+ "#ZU!#JM!$ZA%%ZA&$ZE)#:=##J9!%:=(%:=($J=!$J5!$JE%$J!%$Z1&#Z9\"$J%&"
+ "\":)#%JA)\":%#$*%#$:-#&*!!#Y]&%*%+$9Y!'YQ*#IU!$)U##)Q##IY!\"9Q##IQ!"
+ "#9Q!#YE%$IE#$YA!#)9##)A#\"IA!\"95##95$\"I5!#)5##)9##I5\"#I)&#Y-##Y!$"
+ "#9%$\"Y!#\"X]\"#8Y$#XY!!XU'#(Q#$XQ*$(Q!\"8I!#XM#$X=+\"(E\"$8A&$H=!\"85!"
+ "#85!\"X5##(1&!H%#\"(-#&()(#(%&\"X%\"\"']#\"8!!#'Y$#'Y$#7U\"\"WM#\"WQ&\"WE!"
+ "!79%\"'9!\"'E\"\"7I!#GM!\"W=(\"WM#$'Q!\"7Q!!GU!\"7Y!\"7Y!\"G]\"#7Q##W]'#GU#"
+ "#(!$#H)&\"(9\"\"X5##X5&#(5)%(=##8I%$8A&#XA'\"HE!\"8Q!!(=!\"8M#\"XM\"\"XM\""
+ "#HQ&\"Y%#\"I!$#(]##9-$#Y!$$I!&$))!#)1#$)A!#)1##Y1&!Y=!#)5##Y-##9=$"
+ "\"I=!#IA%')I\"$)E#!)U!$)I$$9M!$YM#!IQ#$YU&$IQ&$)U##II\"#Y]\"#9Q!%YU("
+ "#Z!\"!*%!$J)\"!Z1!\"J1!#J-!\"*1\"#J!$#J5!#J5!$*5#$J=!'*5(#J1!%Z9##JA!"
+ "%Z1#\"*A\"%JE(!:E\"#*I\"$JI%$*Y\"$*M\"!ZM!#JA!#Z]!#Z]!#ZQ!&*U*#ZU!$;!\""
+ "$*Y\"'JQ%$JY!#[%!#[)$#ZQ!%[!&#;!#%+!\"%Z]*#JY(&+%*%;!'#[=!&;)'#[-!"
+ "%JY%#[%!#[)!%+-&%K-$$+)!#[-!#ZY!#[-!$+-!#[-!$[-!%;E\"%+5!#[=!#+1!"
+ "#[1!\"K)#$+M!#[5!$+1\"#+1\"#[-!%K1($+1\"#[-!!;=\"$J]!'[1-%+1&%+-\"$;-&"
+ "$[5$#[%!$[)%\"[1!$K)$%;-\"&K)!&+)\"$+)!$[)%%[%&\"ZU!%:Y$#;%*$[!!%ZY\""
+ "\"Z]!%Z])'*]+$:Q#$:]#$:Q$#ZY!%;%'#*U\"$*Q\"#*Y\"#ZQ!$*Q\"$*Y\"\"ZM!!ZY!"
+ "%:I'!:I%#JI!'JA\"#JE$%:M$$*A\"!*9!#J9!#Z%&#Z5\"$J1%\"Z5+#J5$#Z-\"$:9#"
+ "#Z%\"%:1!#J9!#Z5\"\"J%!$J!\"$YY#&J!#$)]&$*%#$Y]&$9M!#IU$$9M%%YI!$)A#"
+ "$9M!#YE\"#YI\"$9E\"$)A#$)=!!YA!#9Q#$)=!\"I5$$91(#I1%\"Y1\"\"I-$\"I-!\"Y)\""
+ "\"Y)%#I-\"#)%#\"I-!#(Y##(A$$8Y%\"HU!\"8Q!!HM!#(9##(Y!\"8M!\"X=#\"81!\"8-!"
+ "#89%#X5$\"81!#()$$(9(\"7]!$X)&$8%)\"8%!\"WY%\"WI#\"WY#\"X-##WU!\"WU%\"WQ!"
+ "!W5\"\"W=*#'9$\"'A\"#'E$#G9$!GM!\"WQ##'I$#7U%#7Y%#H!$$(!+\"7]!\"W]#\"8!$"
+ "#()$$(-(#(5##(=!#H-%%H9,#85$\"H=\"#(A#\"H=!$(Q'\"8M!\"(M\"!(Q!!HQ#\"8Q!"
+ "#(Y#$(Q%!H]!\"8]!#9!!%I%'\"Y)\"$)%!#I)%\"I%!\"I-!\"99&\"I9$#99$#)I##Y=#"
+ "$)=$$)A#%)9($9Q!#YQ\"$9U$$)M##YQ#\"IU!#J%!%)E%#IY!$*!#$9]$&:)-!Z%!"
+ "$Z)#$*)&#*1\"%J-\"&*5,$:A#$ZI!$:5##J=!#J9!#JI!#Z5\"&:9!$J5!%JA)&:A!"
+ "#ZE!&JE)':I!!*A$$*M\"!*U!#JM!$*Q\"$:M#\":A\"$ZU\"#ZU!%[!&$*Y\"\"ZE!$J]!"
+ "#ZY!#Z]!#[%!$J]!\"K!'#[)!$+%\"#[%!%K%)#[)!#[-!$[5!$;-\"$+!\"#+-\"$;-\""
+ "!+)!&+1\"#;)\"&[1&#[1!\"[1!#[1!$;1\"%+9\"#K1$$[9!#[1!$+9\"#[1!&K5$\"[%!"
+ "$;A\"\";5&$;5\"$;5\"#[5!$K9#\";5\"%+5!$;-\"%+9&$[5!\"[1!#[1!$[-!$+1\"$+1\""
+ "#[1!$[%!$;9\"#[)!#[%!#[-!$[!!$;)\"'K-!#[5!$+)\"#[9!&K5,#[)!$+)&#+)\""
+ "$K9'\"ZQ$#ZY!![%!$JU!#Z]!#Z]!#[!!%*M'$*]\"#[%!$ZU%%*U&$JY!%*U'$:Q$"
+ "$*M\"\"ZM!#ZM!#JM!%ZI'%:I$&:E!%:A(%ZA\"$JE$!Z5!#JA!$*9#\"Z=!&*=+#J9!"
+ "$Z1\"$*-'#Z-\"$:-!#:)'$J)%#J%!$*%#$J%%&J%&$)]##9U!\"J%!#I]!#9U!#YQ%"
+ "$9I$%)A'%)I!#YI&$YA&#IA\"\"IA!\"9A&$91\"$)5'#Y5&\"I=!$Y1*!)-$#I!##))#"
+ "$9)%#8]'#H]\"%)!)\"I!!\"I!!%(U##(U#!(Y!#8M$\"XM\"#(I##(E#\"8=!\"H9\"\"8A#"
+ "!81\"#X=)$85)#HA+\"(5#\"8)$\"(%\"#(9!\"()\"\"8!!!X!!\"']#\"WU##WY\"\"(!%\"7Q#"
+ "#'A$!G9#\"'I!%WM+#GI'#'I%#'I&\"7E#\"'E!\"7Q$\"GQ\"#']$\"X%#\"X!#\"(%\"$()#"
+ "\"89##(1#$H9'#H1&#(9!!H=##HA&#8='\"8M!#81\"#8I%$XU+\"HQ!$HM!\"XU\"%(M#"
+ "#8U!\"9!$%9!*$))!$9!&\"I)!\"Y-($I-)#)1##I9+#I1\"#Y=\"%)Q*$)9'#YE#$)A!"
+ "#9M!#YE##9A!%)=$%)Q!#IQ!#9Q!$)Y##YI\"$)Y##9Q!%*!!$:!!#IY!&Z%$%:%!"
+ "$J)%$I]&#*)\"\"J)!$J5!#J1!#Z=!'*5%%J9)%:5!\":=\"&*=+#JA!#:A'#*A\"#JM!"
+ "\"ZE!$JQ$$:M$$JM(#ZM!#ZQ!#JQ$$*U\"\"Z]!$JU!'[-)%*Y&#Z]!#;5\"%*]&$[%%"
+ "$;-##ZU!$:U#$[)!#[)!$J]!#[)!$+5!%:]+%[))\"[1!#K5$$;)#$[-$%JY)&;)+"
+ "%[-)%+)&$+!\"$+1\"\"[%!$+9\"%;1+$+%&$[5!&[5!![1!$;)\"$+-\"#[=!%+=!%+)\""
+ "%[A%%+=%%;9\"%[9!#K5'$[-!%+9\"&;9\"%K9$$[9!'+1+'[1!&[1)%;5\"&[9!$[=$"
+ "#[5!\"[5!#[-!$[5$\";1\"#[-!#[-!$;1\"#+1\"\";-\"$K-(![-$#+-\"$[)!%K)(%Z]%"
+ "$[1$$[%!$*]\"#[%!%K!$%;-\"%K!)%K!$#Z]!$*]\"$*]\"#ZY!$ZY%$ZU%%*U\"$*U\""
+ "&:Q$#JM$&JE-$*M\"#ZI!\"ZM!#JI!%:E!#Z9\"%ZE\"#J=!\"JE$%J5)#J9!#Z5!#J1!"
+ "#*9\"%J5%#J1!#J-!\"J-!\"Z)%#J)!$:%!$*!##I]!%IQ)$)]&%I]&$:!!\")Y\"$)Q$"
+ "\"J!!#IY!#YM#\"YI\"!Y=!$Y9'#95!#)E##95!#95$\"I9!!IA#\"I9!\"91#!8]%#9%!"
+ "$I%)#I%#$HY&#(Q!!I%&#(U##XY##(Y##XU!\"HU!#XQ!!HQ!!HI!#HI&&H9*\"HA%"
+ "\"81$$(A(#(9##89%\"XE(!H=!\"X)##H!&#H))\"8%!\"X!#\"7]!!W]!\"WY#\"7U!#H!$"
+ "\"'E#%WI(!GM##'I$#GM$\"WQ&\"GQ\"#'I$!(!#%H1&\"7]!\"()##8%$#8)%\"85!$H9!"
+ "$X1(#XE!#(5$#X=!#H=#\"89!#8A!$(M'$HQ'\"8I!%HI&#8A%%HQ!!HU!%)!($HE!"
+ "\"H]!#Y)'!H]!\"Y%##))#$)-'#Y-##I)%\"9A#\"I=!\"I9!\"IA!\"I='%YE!$)M'\")E\""
+ "#YE#$IA%&9A&#9M!\"IU$#YQ\"%)U'$YY&#J5$$I]&$Z)&\")]\"\"J!!#*%#%J)\"$*)#"
+ "$*-##J)!%*%'\"J1!#*5\"#Z9\"$9]$%*='#ZI\"#Z5\"!:=\"$Z=)#JE!#*E\"#JI!#JI!"
+ "#ZE\"$K!$%*M'$:Q$$*Q\"!ZQ!$ZU\"\"Z]!!*U(#ZY!$;!#\";-\"$JY$#[!!%+!\"#[)!"
+ "$*Y\"#[!!\"+)%#[-!$+)\"#[-!#+)\"\"[-!#[!!$[)!$+1\"#[)!#[%!\";1\"%K=##+5\""
+ "$+9\"%;9''+5\"#[5!%+=\"#[9!$[9!%K9$%;=\"\"[9!$[9!$[9!%;-\"&;I&$[9!&[5*"
+ "%+=!'[E!'+1&$[A!%+5\"%+=%$[I!%+M!#[5!%;5#&[=!#[9!%;9\"$[1%$[9!%+1\""
+ "$[A!%+1!$[E!&[=)#[9!'[5&\"[5!&K1$%;%#%+9!$+-!\"[5!#[%!\";)\"$+9!&+-&"
+ "!;5)$+5\"$K-$$K!$%;%'#[!!$+-\"$[!!%J](%;!#$*Y\"#Z]!#[%!%JY!':U)#Z]!"
+ "\"ZU!#ZQ!#ZU!$*I\"#JM!#JM!$*M\"#JM!$ZI%%JI(\"ZE!$ZI\"$ZA&\"Z)!$J-)#J9!"
+ "#*9\"#J1!#:1'\"Z9!%ZE)#Z)\"&*)!#Z-\"%:5(%Z5#$9]$%9Y(%)U+$YM'$)Y##Z!&"
+ "#9Q!#)Y&#YQ)$IM%')M)#YQ##I9\"#YE\"'Y=#$Y=$\"I=!#)9##YE#\"I5!!)1!$Y1'"
+ "#)-##Y%'$I)##9%!\"Y%\"\"9%##8]$#(]##(I$#8U!#(Y!#8M!#(E$#8=%\"X=#!8E\""
+ "#(A#\"85#$(=(\"X=##85%\"X1##X-$!H1##X-'!8%\"!W]\"#8%(\"W]##7Y%\"WQ#!GU#"
+ "!7M%!WE\"\"7M!#WM'$WQ)$X%&\"7U!#'Q!\"G]$\"'I!\"GU\"\"8%&!(!$!H)!\"X-#\"8!!"
+ "!(%!!H9!#(1$\"H-\"\"H9!!HM!\"8M!\"8I!!8M\"$(E(#(Y!!HM!\"8U#\"HU!#(U#\"8]!"
+ "!Y%!#9-!$9-%$I%'#HY%\"I1!%)1(%91&#I5%\"I9!!99\"#I=%#9=!#9=!#YE#$YI'"
+ "$YY##9U!$)U#&IE+\")M\"$IU(#J%!$)U#%Z!+\"YY!#Z%\"$:%!%Z%'#Z%\"$J%%\":)\""
+ "$J5%\"*1\"!Z5!%Z9&$J9!$:-#$ZE\"$J=!%JA%#Z9\"$ZE%!ZI!!:E\"#JM!$:M##JM$"
+ "\"*M!#ZU!$:]##ZY!#ZU!$*Y\"#[!!#ZY!#:]\"%J]!&ZQ*#[!$%+!\"%[!\"#K%$#[1!"
+ "#[1!'+)+#ZY!#[)!$+-&$+-\"&;A&\"[1!%+9&$KE##[1!$+1\"#[=!$K=$#[5!%+M!"
+ "$[E!$[=!%[=!#[9!%[9%%[E!$[=!%[5%'KI$%[9%%;9\"![=!%;E\"%[=!\"[=!$[5!"
+ "%;5#%K1$&KA$$[A!#+1\"$[=!!+E!\"[9!&KA(&[=!%;I\"%+=\"![I!&K9((+1\"%[-%"
+ "$[A!$[=!'+9\"'+9&%KE$%+=\"&[5!#[9!%+5\"$[1!$+E!#[5!#+1%$K1(%[1!$;%#"
+ "#;!'%+)&#[-!\"K!#$+)\"\"[)!!*]!#ZQ!\"[%!$+)\"&+!+$JU!$J]$\";)&#ZY!(ZY+"
+ "\"ZY!%ZY\"&:Q$#ZY!&:M+$:Y##ZU!!ZM!#*=%#JE$$JI!$JA$\"Z=!\"*A\"&:A%%*='"
+ "$J-%&:5%$:9##J5!$*5\"$:=$%J-\"#J%$$Z)#$J!)$Z%#\"YY\"\"YY!#J!!\"IY!#9M!"
+ "$YQ##YU\"&)Y)$)M$%IM##YM##9I!$9M!#9I!#Y=\"#9A!#)1##99!\"I5!\"I5!\"Y1\""
+ "!)1!#I)\"#I!#\"Y%\"$9%#!(U!\"(Y%$(]'$8M#\"8M!$HU-#XQ#$(9'#HA\"\"HI!\"89!"
+ "#HM%\"HA\"\"8=!$(9'\"(9\"!H5!#H1&#85$$X-%\"X-##H-&#H-&\"7U!$W](!GQ!\"7Y!"
+ "#G1'#'E\"\"WQ#\"'M\"#7M%\"7U!#7E#$'Y(#(!$#8!$#(!&#7M#!X)\"#X)\"#H-!\"85!"
+ "%HE\"#(=$\"(5%$(A%$8A(%HA\"$(E'#(I!\"(M\"#(I#\"(M\"$)%'\"8U#$8Y)#(]#$(]'"
+ "#I!#$)%$!Y)!%9))\"9%#\"9-##)%$\"9A#\"I9!\"I-!$)5$$)E$#IA!$)E!#9Q!\")E\""
+ "#9M!#YM#$)U##IU\"$YY&$J%%#IY!#YY&#YY\"%J!##J%!#9U!!ZA!$J)\"&*-+#J1!"
+ "\"*5\"%J1)%:9($*9\"\":9#%J=\"$Z9\"#J1!%JA\"\"ZE!!ZA!$ZI&%J=%%JM!$ZM\"$*Q\""
+ "&ZQ*#ZQ!$ZA&#JI!#ZY!%:U(%*]&%Z]!$*Q\"(;!-$K!$$J]'$;%#\"Z]$\";)\"$+)-"
+ "%[5!$+-\"![-!$;-\"$+1!$K=#\";1\"\";1\"$[-%&;5'\"[5!%+9\"#+9!$[=!$[9!%[1!"
+ "$[=!)[=*&;A\"'[A!$[-!(+=\"%+M!%[=!$[=!'KE,#;A\"(+A&$;M\"%KA$\"[A!$[A!"
+ "%+A!&[A)%+E!%[A%$[=!%+9\"%KA$%+U!';1,&[=$#;E\"%K-$&+A!$[A!%K=$'+A*"
+ "\";5\"$+E!';=\"&[9!\"[A!&[=!%+I!#[9!%[=%&;E\"%+=\"&K1$&+=\"$;=\"'K-!%[5!"
+ "#K1#$[1$%;1'&K=,#+-\"$K-$\"[-!#[%!$*]\"$;%\"#[%!&+-&%+%\"$*U\"&J]!#+!\""
+ "$*U\"$JM!#*Y\"$;!\"$[%%$[!!%*Q'%JM%%JI((ZU/#JI!%*9&&JY%#:E#%:A!#JA!"
+ "!*5!%ZI*#J9!$J9!\"*5\"#J5!#J5!$:1$#J5!#J)!#Z%\"$*1\"$*-#&*!$#:)#\"J!!"
+ "')])$IQ\"')I\"\"YU%#9Q!$)9*$YM##II\"$Y=!#YA#&)=-#I5%\"Y=\"\"Y%#\"YE\"\"Y-\""
+ "\"Y5\"#)-#!91+!))'%9)&#9%!#9%!!)-$$I!&\"Y%%%)!)#(U!\"XQ%$(Q!#(U#$HI$"
+ "#89%\"XA##8A%#XE!$(5%\"H5\"\"(5#$H1$\"X1#\"H-'$8)!$8%)\"H!!\"8!!\"G]\"\"WY!"
+ "#GE)\"7M!\"8!!!H!!\"GE\"\"7]!\"WU#&'Y&\"G]!&(!,#X%\"#8%$#H%&#(-!!(9!!(9#"
+ "\"(%%\"89!\"85!$HE$\"HE$#HI&\"XM\"#(I$\"XY\"#(Q##XU&\"8A!&8Y(#(Y!\"Y%\"%I%'"
+ "&I%)#HU\"\"I)!$Y-!#I5%!Y5!#)5##))##)A#&91'$IE)#9=!$9E%#YE\"#9M!$IQ%"
+ "#YA#&)Q(#IQ\"#9U!$J!&$)Y#$YU*$Z%*%IU)$IY%$*%#\"Z)!\"J-!%J-\"#Z-\"%*1'"
+ "%Z)'%*5'%:A!#J5$!ZA!#JA!#JA!%:9$#ZM!'ZI'\"ZA!'*M'!*Y$'*Y,%:M$#ZU!"
+ "%JY!#ZU!#ZY!$+)!!ZQ!&JU%#Z]!$*Y\"#+%&$[%!\"[%!$JY!#[)!#ZQ!%+)\"#[9!"
+ "%[-&&;9+%+1\"$[9$#[1!&;5#%;5#&+5\"#;9\"%+)\"$[9!#K=#)K11%+M!![I!$[E!"
+ "%+9\"%KA$&;=&%[9!%;=\"%;A&%;M\"&;E'&[9)$[I!(+5\"$+U!'[A!&+E!';M/&;I\""
+ "![E!%+M!%;A\"$[A!%;A\"$[I!$[E!&[E%$[I!$[E$%KE#%;M\"$[I!![A!$;I&%+9\""
+ "$;E\"%;A\"#+A)'+E*&+9*$[A!&+A\"%;=\"&;A'$+=!%;='%+U!#[9!'+9\"%;I\"%[9!"
+ "!+1!#[1!$;=\"#[%!'+-\"%[-)&;-$$[1!#[-!#[%!%[1)%;-\"#[)!\"[)!$+)\"';-,"
+ "%[!\"#ZQ!&+)&$:Q$%*U'#ZQ!#ZY!#ZY!#ZQ!&JQ-$JI!$JM!#ZE\"#JI!!ZE!#Z=\""
+ "#ZQ!%:=(#:=#\"Z=%\"Z9!\"Z)\"#J5!$J1($Z5&&Z!$$*1#%:)!#J-$!*)!%:!(#YI&"
+ "$IM%#IY!\"I]!$IQ&#IU\"#9I!#IY!#J!!%)I$#IQ!\"9M##9A!!YM!!)9!#)1#$I5&"
+ "!95\"\"Y1\"#91!#)-#!))!!I!##9)!%)%&\"8M##8]$\"8I##HU\"#(M#\"Y%\"#XI#$(I$"
+ "#8=\"#8I$$HE*!(I!#(=$#X=$\"X%#\"H5\"\"X1#\"8-!!H%##H)!#7U%\"W]#\"7Q!\"(%%"
+ "%7A$$WM$\"7U!#H-!\"WI%#7Y#!()!#8!\"#7]##H!&$H-$!H1!#X-!\"8=!\"H1\"%H-$"
+ "#8=$\"8=!$X=+\"XI\"\"8I!\"8A!#(M#$HM#%HI%#(Y##HQ%\"8U!%XQ&#Y%&#9)!#I)\""
+ "#9%!#I-%#I%)#)1#\"I1!#)5##)9#\"9=#!)9!$)E!$9I%\"I9$%)I!#)I&%Y=+&99'"
+ "#I]!#YU\"#9M!$Z-&!YY!#J)!#J!!%Y]$#J%!#J)!$Z)&$:A#\":%##Z5\"\"Z%\"#Z=\""
+ "$*9\"\":1#$J=!%J9!#ZE\"#ZI!%*E'#J1!$JQ%$ZI\"#:M\"$*M\"$JI!$*I\"$*Q\"#ZU!"
+ "&JY,#ZI\"%K!$#Z]!$ZY\"%+%\"#[%!%[9$';%$#[-!$;)#%+)\"%[-&#K-$$+9\"$;1+"
+ "%K1('[9&$[5$%+5\"\";=\"$[=!%[)&\";5\"'+=*%KI#%[=!$[A!&KA(%;A\"&;U\"'+A\""
+ "%;5\"'KE($[E!%;A\"%;E\"%;E\"&;I&&[M)%+Y!$[E$%;E\"%+Y!);E($;I\"$[I!%;I\""
+ "$[I!$[E!#[E!%[I$&+I%%;M\"%;1\"$+U!%;E\"%KI#%[=$$+Q!$[9!%+I%$[E!%[I!"
+ "%[I$$[E!&KE(&KA(%+I&$;E\"%[A$$;A\"%+U!#[A!$[=!%;A\"&[=!&[=$%+1\"%[9%"
+ "&[9!$+9\"#+1\"%[5!#+-\"\"[9!$[=)$;1#\"[1!%;1'$ZU!%+!\"$;-\"#[%!%[%)\"[%!"
+ "#[-!$[-$$+%&$;%#!JU##*]\"&:Y$$*]\"#JY$\"*E\"$*Q\"\"Z=!\"JU$%J9\"$JM$$JA!"
+ "#ZQ!$*M\"!ZA!&:9!%J5\"#*!#$:=$%J1&!Z1!%Z%*%*='\"ZE!$J)%#J1!$J%%#*%#"
+ "':!\"%9]\"\"I]!$IU%#YM&#Y]\"$Y]##9Q!$)Q$\"9Q##IE\"#9E#$)E##IA!$)9*$9=%"
+ "#Y=##I1%#95$&Y1-\"Y1\"#9!\"#I!#$Y%!#Y!$#(]##(]#\"XY\"#8U$$8Q(\"I!!\"XM\""
+ "$(E(!(I$\"HE!!(E!\"X=(#8E%#85\"\"H1\"\"HA%\"X!!\"X%#!(-!#8)'#X!!#7Y%!']!"
+ "#GM$\"7E!!'U!!'U!#X%'\"7U!#H!$\"8%!#X%'#(-!\"X!##(-$!H1#\"8=#\"(-#%(9&"
+ "#8I$#X='\"XA&#XE!%HI%\"8I##8M$\"XQ\"$HM#!HU#%(M#%)!\"!H]!!)!$%9)&%9%*"
+ "\"8]!#)-#$)-'\")A%%I1$!YA$$)5!\"I5!%IA*$9U!$)=$%)E$#YI##YQ#$)I$$YY#"
+ "&)U!!)Q!#9U$&I]*$IY&$:!!$YY&$*%#%*!!\"Z)\"#Z-\"\"J--#J1!\"Z5!$J5!#Z=\""
+ "#J1!#J=!#J=!%:Q$#ZQ!$:I#&:=%$:E$$JM%%JQ$#ZQ!$JA%&JY,$*U\"$*Y\"&*]&"
+ "&JY!\"ZY!$K!$#[!!%*Y&(;5($;%\"%JY(%;1#$[-%#;-\"%K-(\";=\"#+1\"%+1!$;I\""
+ "&[5!\";9&$[5!%+1\"\"[5!&+=&%+A!%KE$$+E!&+A\"&;Q'&+9\"'[E!%;I\"$;E\"%;A\""
+ "'KE,&[M$%;I\"';A+$[I!&+Q%%KM#$+Q!$[U%%+M%$KQ#%[5)&[]$#[M$$+M!%+M!"
+ "$;M\"$[M$$+M!!+Y)#+Q!$+M!&;A/#[A!%+M%#+Q!\";]\"#[E!$+U%#[I!%+M!(,!)"
+ "%;I\"%[E!$[A!%;M\"%;Q&$[E!%+E)'[E)&;E'$[=!$+Q!%+M!%[A$$[A!$[9!%+=!"
+ "$KI#$;5&%[9$%+5\"$[9!&*Y'$[1!$;-#%+1!$+1\"%+1!$;-#$;%\"%+=&#ZU!%K1$"
+ "\"ZM!&;!,#ZY!';5#$:U#\"+%!$J]!&J]!&*U+$:U#!ZQ!':A%$*M\"\"*A\"#JE$$ZM%"
+ "#*I\"%ZI\"$ZI&!ZQ!#Z=!)*%'#Z9!#ZA!%Z5\"$*5\"#JE!#Z-\"%J-%!:-&#J!!$J%\""
+ "%*%'%*!$\"*!%!YU!#I]!$9U!#9U!%IQ&$9M%&9M#$)E!#9E!#9E!\")E\"\"Y=%!Y5!"
+ "$Y1*!)9!%95,$)1'#I-%%9-)#))&#Y%#$)!!#)5#%8]#!H]##XY#\"HU!\"HQ$#(U#"
+ "%X])!H1#\"8I#$8E#\"81!!(=!$(E(#X9'\"(A\"$81&#H1&$8-)\"X)#\"X%!\"X)##'Q$"
+ "#7M#\"'I!\"7U!#GY#\"GU\"\"WM#\"GU\"\"G]!\"H%\"\"H%'#7]%#8=%\"H5\"#(5#\"(1##89$"
+ "#8Q$\"8M!\"XE#!HM&!HI!!XQ!\"XM\"%HQ(!XU$#8Y$\"8Y!#Y%*#X]&$Y%!#I%#\"Y%%"
+ "#I-%\"I)!\"I1!!Y-$#)5#!Y9!\"IA$%)E'#Y=#$)A##9Q!#9E!#9I!%IY\"$IM\"%YY("
+ "\"YU\"\"J%!$9]'&I]#$*!#\")Q\"\"J)##I]!$*!1\"Z-%\"J1!$:1!#J-!#J1!%*9&#ZA\""
+ "%*9'$JE%$*A\"\"*Q\"#ZQ!\"ZE!%:I'$*E\"%:E$%JQ!$JI%#ZQ!&JY,#ZU!\"ZY!#ZU!"
+ "$J]!#[)%$JY!%+5\"$+%\"%+)\"$;5\"%;-#!+1$#[!!#[1!%+1&&;E\"%;5#\"[)!#[5!"
+ "&[)\"&K9$'+=*$[5!#[=!$[I!&;I\"%[A!%[=$&;I&&;E\"%[E$$;=&%+I%&+A&$+A%"
+ "%;M\"$[E$#;Q\"%+E!$;Q\"%;M&$KY#$+Q!\"+U!$+I!$+Q!$;M##[=!&[M%$+U!#;Q\""
+ "&;Y\"%+M%%;U'$<%\"$+Q!$+U!$+U%$+M!%;U&&+Q%$;I\"&[],$+]!&+=!$[U$$;U\""
+ "%+M%&+M!$KE#%[M1$;Q\"$KE##+I!'+=\"$KY'&[I$![A!&;A&#[A!#+I!%[E!$[A!"
+ "%KA$$;M\"%[9$%;A&%[E$$[9!%[=!$[A!%;=\"#[5!&K)($Z]%$[E$$[)!$;1#&+%'"
+ "';!$#Z]!!+%!$[)!#[-%&;!#$*Y&\"*U\"$:Y#&*Y\"#[!!$+!\"#ZE\"#*]\"$JE!\"ZM!"
+ "%:I'#ZA\"%*E'#JE$#JA!#Z=\"$J=!#*9\"%*9&#JE!$:5$%:-!%:-($*)#$J%\"$*)#"
+ "$:1!#J%$#IY!\"IY#$9Y!!9Y\"\"IE!$IY%#)M\"#II$$IM&!YU!'9E+#)A#$IA%#9A!"
+ "!I=&!Y9!\"Y5(#Y=&!)=$!Y)!#I9\"\"I)!$I%'$I1##I!#\"Y!##XY&#99$$HQ'\"XU\""
+ "\"8Q##(I##8M$#(A$#(E#\"H=!!H=!!X-)\"81!\"(9\"#(9&#8!$!8-\"\"H%'\"7U#\"7]!"
+ "#7Q#$7M%!'Q!\"8!!#']!#H)&#()$\"81!!(5!\"X)\"#G]!\"X-\"#(5$!H5%#85$$85&"
+ "#HA%\"8A!!(M!\"8I!$8M(#(M##8Q$!(U!#HY%!XY*#9)!\"8Y!#9!!$)%$#9)$\"IA!"
+ "$)-$#91$\"91#$IA)$Y1'!Y=!\"I=!\")=\"#)E#$9I\"!IE##IY!$YM##IY!#9Q!#Z!,"
+ "\"IE!$9Y!$J%\"$Z!#$:1!#Y]\"%:-(':%#\"J-!%*1#%Z1#\"J1!#J5!!Z9!#ZA!!ZM!"
+ "%:-!\":A\"#ZI\"\"ZI!#JA!$+)\"\"*Y!%ZQ\"!ZU!\":U\"#JM!$[!!#[%!#[!!#ZU!$+%\""
+ "%+!\"#;)\"(K%*%ZU\"#[!!$[-!$K-($[-!#+%\"#K9$!+5$#[%!'KI#%;I\"%[=(%+1\""
+ "%[I!$[A!$[A!\"[5!$[A!%+A!$+Q!$+M!$[E!$+M!&[I!#;I\"$KI#%+M!#+M!$+M!"
+ "$;M\"\"+U!$;M\"$KI'$+U!$;Y\"%+Q!$;E\"&[])%[U%%+U!\"[I$'+M!$KY#%+Q!&;I\""
+ "$;Y\"%[Y$*;I'%KQ#$[U%$+M!'+Q*%;U\"%KY#&[U%&;E\"([I!#K]#%K]#&KU#$[Q$"
+ "&[Q$$;M'$+Q!&;I+%;Q+\"[Q%%+M%\"[E!%+=&%+Q!%KM#%[I!#KE#![I!&[E)%[E!"
+ "#;E\"#;=&%;A\"&+9\"&;A\"'[=!%+I%$[9!$[9!&;9#%;1#![5!#[1!$[5(#*]\"$[%!"
+ "$J]$#[-!%+)&%[5%!+)$$ZY\"#ZU!$:]##[%!!:]*#ZY!#Z]!#ZU!\"ZY!\"ZQ!$*Q\""
+ "(JM.#JM!$JM!$ZA%#ZQ!&:I!$ZA&#J9!#Z9\"$:1!\"J-!#:1#$Z1\"#Z1\"%:-%!*-!"
+ "#J%!#J%!#J%!$)M$()]*!)U$$II##9U!$9U$%)Q$#YE#&IQ(\")I\"$IE%$9E$#Y=\""
+ "$9A$#9M$&9-.\"Y)\"#)-#\"I1!$)%!&9%.\"Y-%$)9$#H]%\"Y!#$))!\"8Y!#(Y#$(Q'"
+ "#HU%$8E##(Q#\"HM$$(E$\"H9\"\"XA\"!(=!\"X=#\"X5#$(!#\"8)!$8-#\"H%\"\"GU%\"7Y$"
+ "\"WU!!GQ%#8-%\"7Y$\"GI\"#G])#()!#8%$\"8!!!H-&#(1##85$!H9!$XM%\"X=#\"H9\""
+ "#XM!$HE*\"H5\"#(M)#XM!$8E&#(U##HU\"!(Y!#HU-#(]!\"9-##X]!$Y5*\"9A#\"9)#"
+ "$)1$#Y5##95$$IA&#)-#\"I9!#)I##9I!%YU#$)U#%II##9U!#9E!\")U%#I]!&*%$"
+ "#YU\"#9]##Z!&$*!##IY!%J1&#JA!&:-)%:1!$Z1\"\":5\"%:5!\"*5\"$J-%!Z5!#ZE!"
+ "$Z5&$JE$#*M\"#JI!$JI$$JM%#:Q\"$JQ%$ZU\"$JY$$*Y\"#[%!\"*]\"%[!&$;)\"\"K!#"
+ "!Z]!%+1&$[)%%K%!$+-\"%+-&$[1!%K)$&[5!$+9\"%[5!$[9!\"[9!$;=\"$[=!#;=\""
+ "%;M\"![9!$[A!%K5$%+M!'KI,$[I!%;E\"%[Q(#[M%$[I!\"KM'%;M&$KQ#&+M&(+Q%"
+ "\"+Q!$;I\"&KM#%+U!%+Y%&KU,%+U!%KU#%+Q!&[E%#+Q!%KY#\"+M!%+U!%+Y!%;]!"
+ "%;Y\"%[Y$\"KU#$;Y&%KY#%\\)($+Y!'KY+(+Y!%+]!%+Y!$+Y!%+Y!'<!&&+U%%<%\""
+ "%+M!'+U!(+U!&;Y'\"+U!$+Q!$+Q!%+]%&[E-$+]!\"+M!%;M\"$+M!#+U!$[A$(;I/"
+ "$[I!%;Y\"&KI,'+Q)$[=!&[A)'+A!'+A\"&[=!&[-!$[9!$;9\"%[9!#[9!%K9(\"K)$"
+ "$+1\"%;-'%[-!$[)!#:Y\"![!'$K%$%[-!';-/$[)!\"ZM!(K%&$JU!$:M$\"ZU!$:Q$"
+ "%ZM\"#ZQ!$:I$#JI!#*I\"#JA!$:E$$*A#\"Z5!$:A#$J9!%J5&%:9$#Y]\"#J1!$J-!"
+ "#J1!#Z)\"!Z%!%:)!#I]!\"Y]!$)U#$9U!\"IU$#YE#\")Q\"#YM#$9Q$$)I#$)E#%)I%"
+ "#IA\"$)=!!)=!$Y=+#Y-##9=!\"Y-(\"Y%\"$)-$\"I)'#H]\"#91!$)5!\"H]!#(Y!\"X]\""
+ "!H]!#XU!\"XM\"#(M#'8Q)\"HE!!(U##X=$#(5!#H9\"$(E%\"85!#85%!X-!\"8!!$8%)"
+ "$'U&\"7Y!!GY!\"8!!$X!)#G]$\"8-!\"H%\"!8-%!H)!$(1%\"H=!\"89!\"8-!#(I#\"8A!"
+ "$HA$#(E$$HM*$(=%$(Y'\"XQ%#XU!#(]#\"(I\"\"8U!#Y!#$)1$\"))(!8Y\"#)-#!Y5!"
+ "!I=#$I9#!)A!#Y=##YE#$I=&$)A'#YE##9I!$)M'$9M%%)Q!$YQ#!YU!$*%#$J!&"
+ "$Z-&#J%!#J!!#Z-\"$:1##J-!#J1!#J-!%J1)&Z5+%*=##JE!'*1,%ZE'&*A(#JE!"
+ "#JA!$JM!#ZQ!%JM%$JM!':M(!*I%$+5\"&*U#$ZY-!ZY!$*U\"$;%\"$;!\"%[!%#[-!"
+ "$[1!$;1\"#;-\"![1!\"[1$$[1!$[5!#[5!'+A&$[=!$[9!%;I\"$[1!%+9!$[I!&+E%"
+ "\"[E!$[I!%[E!$[9!&KI(&;Y&$+Q!'KQ,%KE'$;I\"%+Q!&KQ#%;I\"%[Q)%+U!'+U!"
+ "$+U!&+U!#[Q$#;U\"%,!!(+]!'+Y!#+U!%,%!'<!+%[U%%;]!%[Y$%[I!$;]\"%[]$"
+ "'K]#';]*\",-!$+U!(;]\"%L%#%+Q!'K]'&[U%#;Y\"&KU#%+]!%+Y!$<-\"$+I%\"+Y!"
+ "$+]!%+Y!&KY#%+Q!$KY#'+Y%$+U!%KU#&+U!!KQ#';Q\"\";Q\"$[Q%$KQ#%;M#&+M)"
+ "#+]!&[M$%[5$%[I!%;A\"%KE#%+]!';I'$[A!%K=$$[E!$+M!#[5!%K-(%+5\"#K5$"
+ "$K=#$+!&%+5!![%!$;1#%;-'#[)!![9!#[%!#[)!&JY-\"Z]!%Z]\"#JY$\"ZY!$*]\""
+ "$JU$%ZQ*#[!!$:M'&ZA+&ZM&$:M#\"ZE%#JA!$Z5\"#J9!#J5!$Z9&$Z5\"\"Z5!#Z9!"
+ "#J-!!:)\"$Z-)#J%$$:!$$YU#$)Y##9U'#IY!#J-!#IU%#Y]\"%)M(%)Q'#Y]\"#YE%"
+ "\"IU$\"IA!#I=%\"IA!%9=)#Y9##)-#%9%&\"9-#%9%'!)1!\"I-!#9-!$I-*#(]#$(I'"
+ "$(U%#(M#\"XQ\"\"8M!$(M+!XI!#HE\"#(5#\"8=#\"X1#\"XI\"$(5\"\"H1!#X1&\"8-!\"X=\""
+ "\"GY\"#(%'\"X!!!']!\"'I!\"']*\"8)!\"X-#!H-!\"H-\"\"X1&\"(9%!X9)#89%\"(E-#(Y#"
+ "#HQ%#(I#$HI'!XQ!$(I'\"H]!$HU#$)-$\"H]!#)%$$)%%!95\"#I)&#Y1&#Y1&#Y1&"
+ "\"IE!#99!#Y=&#Y=##I5%!I1##Y=##9I!%9M)#YI#$9E%$)]##YU%#IY%#)Y#%Y]+"
+ "%9]\"\"J%!#J-$\"I]!$Z5\"&Z1'$*1\"#J9!\"Z5!%:9(#*E\"#J=!#JM!#ZA\"$ZE\"#ZE\""
+ "#ZA\"#:Q#%*9##ZU%#:Q#%*Y&&:Y$#[%!$Z]%$*]\"%Z]*%;%##[)!!+)!#+-\"$+)\""
+ "\"[-!$+5\"#[1!#[1!$;=\"$K)$$[=!%[A$%[9%%[9$&K=$&+Q!%+M!$;=\"$+=%$[E!"
+ "&+E&%+I!&;I&'[M)%+M!%;M'&L!'%KQ'%KQ'$+Q!$[I!'+U%$KQ#%[U$%K]#&+]%"
+ "&;Y&&;Y\"%;Y\"&+Y!&+]!%+]!%+]!&+]!%,1!%;Y\"(+]!#;Y\"\"L)#%KY#$+]!%,%!"
+ "%,!!&[])$+Y!&;Y\"%,%!&L=&%<!!%,%!(,!.%L)\"&L!#&\\!(&<-!#;I\"*K],$;U&"
+ "%;Q\"%K]#%+]!*KY#%;Q\"$KU#%;Q\"$[I!%KY#&KY'%;U\"&\\!$%;Q\"%<%&%;Q'$+Q!"
+ "%+I)$;I\"&[E%%;M\"%;A\"&;E&#[E!%[A!%KQ#$[A!%+A!$;M#$+=!&;E'%+9\"&+9\""
+ "$[5!$K5$#[A!!+5!%K1(%*Y\"$[%!#ZY!$+)\"$[%%#[%!%ZY!%*M''+!/#[!$$*Y\""
+ "$ZU%'ZU'#JM!#ZI\"%*A'#ZI!&JM-#:E#$ZE\"#:A##ZM!%:9$#Z9!#Z)\"#Z9\"\"Z5!"
+ "$*=#\"Z5!#J-!$J9!#IY!$9Y$#IY!#)U\"!Z)!')M#&IY+#9U!#YQ##IM\"\"9A#%9I)"
+ "\"Y5%$YE#$YA'#9=$\"Y9\"\"I9!%Y-\"#91$$)%(!Y-!\"I!!#Y))#9%!$8U\"$8Q(#8]!"
+ "\"8Y!\"H]!#HM&$8E&$XY*\"HA\"#XE&\"XE\"\"XA#\"8=##(9)!H5!#H%&\"81!$H-*\"8-!"
+ "\"WY%\"WQ#\"W]#\"8!!#8%%#7U#\"H)\"%(-$#(-!#(5$#(1$$89&#H)&#(1!%(='!H9!"
+ "!XM'\"XM%\"XQ\"\"8I!\"HU!\"91,#(Y##XU)#I%#&95$%9)##H]\"\"I1!#Y1##Y1&#)5#"
+ "')M&%99)#)A&%9E)#9A!#YU\"!II#$9M%$IU%&9I&$YU#!9Y\"#YM#\"IY$%9]$!)Y!"
+ "#J-!#Y]\"#9M!#J-!&:5%$:=##*5\"$J5%\":9&$J9!$*=#$JA!#J-!#Z=!#[!!\"*U%"
+ "%ZM\"$JY$#JM'#ZQ!&ZM\"![!$#ZQ!%K!(\"[-!#Z]!$Z]%%+-\"$+%\"\"[)!!;)\"%+5\""
+ "$*Y\"%+1&$;1#$[!!&[5!(;A0$[5!#[=!%;I\"%;M#%+M!$+E!%[E$%[I$!;A\"%KI#"
+ "&[I!%+U!#KU#$+M!$;A\"$+]!%KM#&KU#%+U!&KU+(;U&&+U%%[M%&<!&&+]%%+Y!"
+ "%K]#'[])#;U&$+Y!%\\)##<!\"#<%\"%,!!&,1$&L-#&+Y!%L)\"&L1&$+M!&\\%(%,%!"
+ "#<)&&\\%$%L-\"'<!*&,%!%L!#'\\%$\",%!!<%\"$<%!%<%\"$<-!*<!&%L)\"%+Y!&+U!"
+ "#+Y!(L!'$\\)#!+]!$KY#%+U!%KY#(<)!%,)!&+M!$[U%%\\!#'+M!$[I!$[I!&[I!"
+ "$;M\"$;U&$;E\"%+M%#[I!%;I\"%;A\"&+I!&[E!%;E&%+5!';-,%[I!&+Q%%+M!'+=&"
+ "$[A!&+E&$+5\"\"[5!%+1\"&;1#$+-!%[-&%;)'&K)-$+%\"%+%&#ZY!$+!\"\"Z]!$ZY%"
+ "\"ZY!$:]#)ZU'$[!!&ZU*!ZI!$ZM\"$JM!!ZI!#ZE!$JA!%JA\"$:9##J9!\":1\"%J1)"
+ "%:5!&:%&#J%!$Z-&%J-\"#Z%\"\"J!!&*),!Z%!$IU%#9M!$IU\"%Y]+#9Q!#YM##YM#"
+ "$IE%#9E!#)I##YE#$)9'$9A+#I9%#91!!Y5!#))#$I9#\")%\"$)!!\"I)!$)!%#(]#"
+ "#XY#$9!#\"XM\"\"8M!#HM\"!HQ!\"(E\"\"8E!\"XA#\"X%!\"8E!#(=!!XA!\"H9\"$8)#$(9\""
+ "#GU(\"8!!\"8!!#(!'\"81#!GY!\"X5#$8=##81!#(5#%(9!\"X=\"$8=&#8A!#(E$\"XU\""
+ "$HI'\"8M!#HQ%\"I!!#XI&#XY&%(]%\"X]\"\"8]!$)-!%)%%\"Y!\"#I%&#9=!\"I1!$9=("
+ "$99%!Y5!\"I=!\"IA$#IY%$)I#$YM&$9I%%9M%$IU\"$)U##9U!%)Q($:1!#)U##J%!"
+ "#Z-\"$:5$$Z5\"$:%$#*1\"$JI%%:A$$*E\"#J5!#ZI!#JI!!ZA!%*M'#ZI!$:I#&:I("
+ "#ZQ!$*Y)#ZU!$*U\"!:]\"#[!!$K%$$;1##Z]!$[%!$[%!#K)##[)!$K9$$K9(%+9!"
+ "&;)'$+5!%;5\"%[=!$[9!%;5#$KQ#$[A!%[I!%K9$%+Q!%;I\"%+I!&;E\"'+A!!+M!"
+ "%+Q!$+Q!&;A+%;E\"&+Q!$KY#(;U!'KY#%+U%$<!!%+Y!&+Q!%;]\"#,%%%+]!%;]\""
+ "&+]!%<!!&,%!&L!')<)%&L%\"&+]!%,)!&,%!%\\!#&,5%%;]!%,%!%+]!#,)!%,)!"
+ "),))'L1&%L%#&L)\"%<1!&\\1#%,1!#;Y\"%L)\"&L%#$\\!$%\\)$!+]!%\\)$$+Q!%,-!"
+ "\"<!&%L5\"$<)\"%,!!(;U'%<!!&<!\"%,-!%\\!#&;U&&\\%($+Q!%KQ#%+Y!%+]!$[I("
+ "$;Q\"%;Y\"%;U\"$+Q!$+Q!\"+Q!$;I\"#[A!$[A!&+I&$[I!&KI#&;='%KA$$[A!&KE("
+ "&K9$(+=!$[9!#[9$%+-\"#[1!$[1!#[1!%;)'\"[-!\"[)!%;%'!Z]!$+-\"'K!!%+!-"
+ "!JU#&*U\"$*Y\"#Z]!$*U\"$*Q\"#JQ'%JM!#ZI!%*M'%ZE\"#Z=%#JE!$*=\"$*E\"$:=#"
+ "!*)!#Z5\"&*=$\"*=\"$:)$%:)!\"Z-%#J%!\"Y]\"$)]#!Y]!\"9U&#Y]\"$J)%\"YQ!$J!%"
+ "#9E!&9I&$9E$%)A$#IA!#)=##99$#I9\"#95'#95!!Y)!$I%##9%%#Y!##I!\"%8Y$"
+ "$(U(\"8E##(M##(M##XM'$XU'#(9'\"8Q!#(E#\"HA!#8=$\"8A!#X9/\"85!%7]+#(%$"
+ "$'Y)#GU&\"8!!\"8!!#81!\"H5\"\"7Y!\"(1\"\"85##(9!#X1'#X-'#(E##8A!!(E!\"8I#"
+ "\"8U#\"HU'#(U#$)!'\"XY%#(Y#!Y!$#Y!$#)%##9)$\"I)!#I5%$91%#Y9#\"I5!!Y9!"
+ "#)=#\"IA$')A&#Y=##YU\"%IQ#$YM&#IY!#IM(#YU&&YY!$)]#%)]($J%\"':%\"%Z)'"
+ "$*)'$:-#%I]##J5!\"*5\"%:5!$Z5&$J=!\"Z=!&*A#\"ZE!#JA$%JI)$*I\"&:U$#ZQ!"
+ "&JQ%\"[!!%JQ(\"*]\"$J]!'K!&$K%$#[!!%ZY!#K%$$[1!$+-!%[-!'[9!#[)!\"[9!"
+ "#[5!&+9&$+5%%+=\"%;=\"$[=!'+A&%[E$$;I\"&;M\"%+Q!$[E!%;I\"$+M!%+U!%+Q!"
+ "#KQ#$+Q!#;Y\")+U%%+Q!&+Y!';U+&;Y.%;]!(;]\"%,)!#,%!%,%!&,%!(\\%,'\\-,"
+ "'<!&$,)!&<%%$,%!&L)+$,)!%\\)#&L%'&,%!)\\!2$,)!%;Y\"$,%!%,1!%L-\"%\\-#"
+ "$L%#%,-!%,-%#+]!$,)!$\\-$%<9!%L-\"&,%!%L5\"%;Y\"%L5#'L)\"%L)##<%&%L)\""
+ "%,)!&,)%%,)!%;M#%L)'&;]\"$,1!)K]#%L!#&K]'%+]!$;]\"%;]!'[],&\\!$%;M\""
+ "%+]!$,!!';I\"%;U\"%;Q\"$;Q\"$KQ#$;Q\"$+M!$[E$%;I\"%[=!#[I!$[=!&;Q\"%+A!"
+ "%+9\"'+=!$;A\"$[5!#K9##;=\"%+1\"#[9!$+1%%[9)$+-\"$;-\"$+)\"#[%!%;%#&*]#"
+ "%K!)%ZY&#ZU!#[%!$:U$!K%#$ZU%$ZY%$JM%#*I\"\"*E!#:A#$JE$'*=(#J=!#J9!"
+ "#*5&$*-#$Z5&$:-$#Z-\"%*E*\"Z!!%:%!%*%'$*!#&)]%!)]!$9]!#9M#%)M$$9Q!"
+ "\"YM!\"YA%$)E$#Y-#%I=$#IA!#)A##I9%#I5\"#Y5&#Y9#\")-(#9)$$9)\"#Y1##(Y!"
+ "!Y)!#8]$#(Y#\"8Q!#XU##8E%\"XI\"#8A$#HE&!HA(\"8A#\"8E!#H9\"$H-!!X5$\"81!"
+ "!7U\"#(!$#H1(!H!#$()(#(-$\"81!!X5&#H1&#X9$\"XI\"#(A!\"HA!#XE!#XE$!HM#"
+ "\"HI!#HY($8Q#\"XY\"#H]%$H]#%I%-#99!\")!#$9))\"(]\"\"I1!!Y5!$95\"!I9#\"I=!"
+ "$)=!%9E\"#9E!#IU!%)Q$$IQ%$9Q!#9M!%IU*#J!!%J%*$9]!#*%\"%:%!'*1!%*)'"
+ "$*-#%J-&#J5!#J-!$J5!#J5!%*=#$ZE&$*A&#ZQ!$:I$&:M+#ZU!$:M#%*U\"%*A&"
+ "\"[!!':U!#ZU!#[!!$JQ!#ZY!#*Q\"%[-!![)$#[A!$K-$!Z]!$;9\"%K1(%;=&$[%!"
+ "%[E!![-!$[5!%;9\"&[E!%[=%$[E!%+E!%;I\"%;E\"%;I\"$+M!$+M!\"+U!$;Q\"&KU#"
+ "&KQ#'+Q!%;Y\"&L)#%;]!$+]!&;Q'$+Y!%,!!',!!&+]!#<%*'<-*',-%%<5!%+U!"
+ "\"<)\"%,!!&,1$'<5!(<-*%\\)$%L5#&<-!&<=!',-%&,%!(L!\"%\\-#%,-!',5$(<%!"
+ "',5$$L1'&\\1(&<=!',1)%<5!%<5!(,1-&L-\"%L-#%\\=#%\\9#%,)!(L)\"#,-!%,-!"
+ "'<9!%,)!%\\)$&,)%%,)!&L-\"%L1\"$\\%#&<%&\",5!%\\%#&\\!(%;]\"&L!'%+]!$\\)#"
+ "%KY#'+Y!)+U!%+Y!&+Y%%+U!%,)!#[I!$+Q!$KQ#$+E!$KM#%[5$![I!\"[E$#[9!"
+ "&+1&$;A\"$[A!\";E\"#K1$'[E-$[1!$[1!$+5!$+)\"#[1!#[-!$[)!$+)!#[9!#[)!"
+ "$[!!%+!\"&*]\"\"ZU!&J]%\"ZQ!#JA!%:Y$!ZM!%JM!\"ZM!\"ZI!%ZE\"#:E##ZE%%:=("
+ "#Z=!\"Z9!\"ZM!$*%##Z1\"#Z-\"#J)!$)]'%*%'#J%$$II%\"J-$!YQ(#IY!$9M(#9Q!"
+ "#9Q!#II\"$9M%\"II!\"I9$%YE($II)$99!$I-)\"95&$I-&#)-#!)!!$))$%9)&#I%#"
+ "$Y!$\"I%!\"8]!\"8U!%(Y%#(Q##(I$!XE'#(I##(E$\"X=\"\"X5#\"8M!#(9$\"85!#85$"
+ "\"()\"$GQ\"\"H%%#X-$#(-$#H-#\"(5\"#8M%\"85!#8I$$89##8A$$HE'$85##(='!XM$"
+ "#(M!\"HU!#(I!#9!$#8U$!Y)!#I%%%I1$\"I%!#95!#Y-&$)A'\"I5$\"IA!\"IE!%)9("
+ "#YE\"%9Q\"!YE$#9Q!&9M##YQ#$IQ%#YY\"#IY!$9]$#IY!$:!$%*%'#IU(\"*)\"#Z)\""
+ "$*-#$ZE&$ZI\"$Z9&#J9!$J=!$J=!#JA!%JQ!&*E+#JI!&ZM&$*Q\"#ZE!#*M\"$*Y\""
+ "$JI!#JQ$$+-\"$+-\"$K!$#[%!&;%+#+-\"#[)%#[-!$K%$'+)'\"[5!$[=!%[9$'[5!"
+ "%K=$#+5\"#;=\"$[1!#[I!&+E&&[M%%+I*%+I&\"[E!\"[E!\"[M$#+M!%+U!';Y\"&[U("
+ "&+Y!%;]\"%+Y!&+Y!%+M!(L9!$<!!&\\%#\"\\-$%\\%$&K]'&<!\"%<)!&<1!%\\=#%<%\""
+ "&<9!%,-!&L9&&<1%$LA\"%L-#$,1%&\\1(%L-/&L-\"%<5!$<1%(L9/&+U!$\\9#)<%!"
+ "*<-!&,5$',5)%,%!$,1!'L5'&<5!%L5\"&,5(&\\1(%\\1#%,%!&,9$%<1!\"L1#&<1!"
+ "&L-#$,-!'\\=\"%<1!%<A!%L1\"&L1'&<1!$<!\"&L)\"$<%\"),!%$,)!',%!\",!!(L!0"
+ "',!)&,!%&[M)'+Y)%K]#%[I$#;Y\"&+U!%[U%$+Q!);U&#[E!$[U$$+M!&;Y\"%[M$"
+ "&[A!$[A!'[E!$[I!(;5(%+=\"#[A!$[9!%;5'&K!%#[-!$K9$%;5\"$KA''+5\"\"K1#"
+ "#[5!$;)#$*Q\"!*]%#[)%$JU$!*Q!#:U#$:Q#$JM,#JM!#*M\"$*M\"%ZE\"%ZE&$:A("
+ "#Z=%$JA!$J9!$*9#$:9##Z-\"#J-$$Y]&%:-!#Z)\"$Z%&#J%!\"I]#!YY!$9Y!!9Q\""
+ "\"YM\"$9I$!II#!9I\"#)U)$)E#$9A$%9=##Y9&\"IA!$YA$#95!\"Y1\"#))#$9!(#9!!"
+ "#I%##Y)#$9!##8Y$$X]+#)%#\"8Y#$HI*\"8M!#XM&#(I#\"8A!!H-#$(A\"$(9\"#(%$"
+ "#8!##(%$\"H=!\"X-\"\"8-!#H5#$(5%#(9$\"X9\"#(M##8A%!XA$#(A!$(E\"!HI#\"HM!"
+ "$XQ!\"HU!\"HQ!#9-$\"X]\"#8]'#H]\"$Y9'!Y1!#I5%#91$%)-+\"I=*\"IA!#)M\"#9A!"
+ "#9E!#YE##9I!$)M$#IY(!YI!#9U!#I]!#Y]\"#9]$&*!,#J5!%*1'#J!!%*)$%*1+"
+ "#J1!#J5!#J5!%J9)#ZI\"$Z=%$:=##ZQ!'*E(!ZQ!%:E(#JI!$*]\"$JE$$JQ$%+%&"
+ "$JM$\"[%!&ZU&$:U'#[!!$JY$$[)!!+%!&;!/&[1)$;)#![5!&;9'$[5!'+A*%+=\""
+ "#K=$&+5&&+9&%;E\"&[E!(+Q!'KY'$[I!$[E$&KQ(%;U+$L!#';Q'$;U\"&KQ(%[M$"
+ "%,!!%,!!%;]\"(\\%(%K]#$,-!$L!#%,)!%\\%$%,)!'\\),$,)!%,%!(\\11%<%!$\\-$"
+ "$,1!&L9'%,1!&,1$&L5*%<9!%\\9#'<9!#,9!%L5\"$<E!#\\=($L5''\\5#*,%.%L1\""
+ "%<9!%,%!!,1!*,9-(\\9(%<!\"%<9!#\\5#%<1&#\\5#&\\)((,)-%,)!%,5%%<9!%<9!"
+ "$,5!%L=\"%<5!%<=!%,1!$,5!%,-!%L)\"%L-\"&,-$%,)!%L1'\"<-\"#,%!%\\%$(<-!"
+ "$\\%$%;]\"!,!!$\\1#&[]#'L!,#<%\"(,%)$+U!'+U%#[U$%[U($+M!&;M'#+A%$[M$"
+ "%;M\"$[I$$[=!&KQ#%[A%'[E)$;=\"%+9!%[9!%;A\"%[5$%K-$\"[1!#[)!$+-!'[9!"
+ "#ZM!\";%\"#Z]!$Z]%$+)!$:Y#\"[1!$*]\"$*U\"$*]\"$JA!&:M$#ZU!#JI!#JE$#JE!"
+ "%JA)#ZI!$J5!#J=!#Z5\"%*E'%:1!%J-*$J1\"%Z!'$Z)&\"J!+$:%$#IY$#9Q!%9]("
+ "\"IY##IQ\"#9M!#YM#$)M#%Y9\"\"I=!#Y=#!Y=!%)I($)-'\"Y-\"#Y1&!H]!!I)#\"I-!"
+ "#9%'#9-!%(I\"$H])#HY%#(U##(I!\"8Y!#(I#\"8A!#X9$$89)\"8I##H=\"\"X)#!H=!"
+ "\"X)#\"H-!\"H%\"\"X%##85!\"X9##H5&#85%\"XI($(A!!(=##(I'\"HE!#HM%#HQ%$HE'"
+ "$(U'#8Y$\"Y%\"\"X]%&9!($)!$\"I)!#9-$#8]$#Y9)#Y5#%9I&#)A#\"IE!#9A$%YI!"
+ "$)M$$9U(\"9Q#$II&#9U!#YY\"%)U(#9Y#&*!+\"YQ\"$)]##I]!%*)#%*-##Z1\"$J1\""
+ "%:5!#J-!#JI!#*=\"$J5%#J=!':=&\"Z=!&*I+#JE!#JI!$*Y\"#ZU!#ZY!%JU!$+!\""
+ "%:U+#[!!&Z]\"#[%!#;1\"%+)&#[-!$[1$%+=%%;%'*+1+$[=!$[9!%[E$%[5$&;M'"
+ "';E+%;E\"'+E&%+Q!%[=$$+M!\";A\"$;A\"$+Q!%KI#%;Y\"%<!\"%+Y!'[Y$%,!!%KU#"
+ "'<)!'L%+%\\!##<5!'L%+%,)!%,)!\"<%\"%K]#%L-#(L1&%,-!&,)!',5(',)%%<9!"
+ "%,)!&\\5#\",1!%<A!%<A!%<5!'L-\"%\\5#&<9!%,1!&<9%&L9\"%<9!%<9!'\\-##<5!"
+ "%<=!%<A!%L=\"%,A$&L9\"%<=!&<A!'<9!%<1&#\\9$%<5!%L9\"%<A!',I)%<5!&<5!"
+ "&,9$$,5!&\\9(&<-*%,5$&<5!#<1\"#\\1$*L5!*,-)'<1!&,)%%<)%'L1\"'<)!&[]$"
+ "&<!\"%,%!&L5''L%,#<%\"'+]!%;]!*,%*%,)!%\\%$&+Y%#<!\"%+U!&;Y&%[M)#;U\""
+ "%+E&$+U!$[I!%+Y!%[U$\"+M!([=&%KE$#[9!'+A\"%[5$%K1$#[5!#[1!$;-#$[)%"
+ "$+1!$[5%(+=\"%Z]\"$[!&\"[)!$;!#$*Y\"$*]\"\"ZM!#Z]!#ZQ!#:Q\"$ZA\"%*M&$JE("
+ "#ZA\"\"ZI!\"Z9!#:9##:=#$*1\"#Z5\"#J9!#J)!!ZA!#J-!$*)#$*!#\"J!!$:%$#)Y\""
+ "%)U!#Y]&$9M%\"IQ!\"II!\"I5$#IU!#9I!#9I!#I=\"\"YI!\"9=##I1(#95!#)1##Y=#"
+ "!Y)$$9%#\"8Y!\"8I!$(]!!(U!\"8U#\"8Q!$(Q'\"XQ\"#XM&#85%%(A&$(A\"!8=\"!H9&"
+ "!8!%\"H%!\"X1\"#H-%\"X5#$8=&#X5&\"X=#$(=!%8E$!XI!#8I%\"8Q!$(M\"#XI!\"(U%"
+ "!Y%!\"I!\"#(]!\"Y%#$Y)!!9)\"#I)&\"9-#$91(#)A&\"I5!#)9&!IA#!Y=!#9M#%9E)"
+ "#YA#%95##9Q!!)Q'!YU!%IU##IY!$J!%#Z!\"\"Z!!$J5%$J5!\":-##J)!$Z1&&Z5'"
+ "#J)!$Z9&\"*E\"!:A\"#JA!\"ZE$%ZI\"$ZI%#ZI\"#JM!#ZQ!$*Y\"!*E!$ZM\"$*]\"$*]\""
+ "%*]\"%J]!$*]\"#;%#%+)&#+-\"$+9&$K1$%;5&\";E\"$+9\"$[9!%K5$#[=!&+1\"%+5\""
+ "#;I\"$[E!\"[I$'[I!$;U\"$[Q%#[Q$%+Q%%;U\"&;M##;Y\"%<!\"$,!!&[]#%KY##,!!"
+ "',!!)L9%%L%#'<)!$[]$$<-\"%,%!#,-!%,-!\",5%'<1!%<1!'L9\"%L)\"&<9%),5-"
+ "$,5!&<5!'\\9(%<A!&<9*%<=!&\\9($<)!%<=!%<=!%L=\"$LA\"'\\=(%<E!#,)!&<E!"
+ "%<1!(<E$\",A!'\\A\"'\\=,'<=!(LI.%LE\"&<M!$,9%%L5\"&,=$&<5!%<=!',9$%<=!"
+ "#<9!$<1!$,9!&<I!%<9!'<1*%<5!%L5\"&\\-($L-#&L)\"\"L1#%<5!$,-!%<9!'\\-("
+ "%L1\"%,-!%L5\"&\\%(%KY#&<)&\",9!&L%''+])&+]%%;]\"%+Q!#+Y!$+Y!&+])#;Q\""
+ "$+U!&[]$$;M#%K=#&+5\"$[E!&[E!&[=%&[9!$+=!$[-!%+9\"%+1\")+5'%;5\"$[1!"
+ "#[-!#[),\"[%!#Z]!#[%!#[!!#[!!%JY(#Z]!$K%($ZU%%*Q\"&JQ!%JQ!#*]\"$J=!"
+ "$ZQ!!ZI!&JA\"#*=%\"*=!#J9!#J=!%:5!\"Z5!$J-%#J-$&*)!#Z!\"#Z!)%*%##I]!"
+ "$9M!&IQ##9U!#)M\"$9E$#9M!%IQ#$)E!$99\"$YA!#9=$\"I=!$91(#95!\"91#\"I5!"
+ "!I%#\"X]\"$9%#\"Y!#%I!$#I!&\"XQ\"\"XU\"!H=!\"8M!$(I!#(I##(=$\"XA\"!H=!#X=#"
+ "#H!&\"(1\"#()$\"85!\"8A#\"H5$!X9&!(A!!H9(\"XE##XE&#(I#\"85!\"XQ%$(U(#8I\""
+ "#I-\"\"I%!$)!'#8U!%)!#\"I9!!)1!!I%#\"I1!\"9-#&Y5#!YA!\"YE%#IA\"#IA!\"II$"
+ "$)E!\")E\"#YE#$IQ)%)U'&II+$IY%$*!#$YU&$*!#!*-!$J)!#J1!%*5#&*5$\":1)"
+ "\"Z5!$*=\"#Z=\"$JM%&*=(\":A\"$ZM\"%ZI*%*M\"%*Q\"$JU!#JI!#JE!$+-\"%J]!%+!\""
+ "#ZY!$[1!%[)%#;%\"$[-%&;5\"%;5&\";=\"$[9!%;5#%K-(%KI##[I!#;I\"%+M!%[E$"
+ "$[I!$[A!%+E!%;U&$+Y!'KQ#%+U!'+M!%<!\"%;]!&+]%%,!!&;]&$+]!%,%!&L%'"
+ "([]$%,)%$L!#'<)!%L-\"#,-!\",1!%,1!',-$&,1$(,A-)LA*%L5##,5!&<9!&L9\""
+ "$,9!'<)!%\\E#&\\=(%L9\"%L=\"&<9!!<=\"&LM&%LE\"&<A&%<A!%\\A#%<A&'<=!+<E."
+ "%LI!#,E!#,A!(LM/%<9!&,M$%L1\"',A($<E!&\\1,'<A*'LA&$,A!%LA\"%L='%,1!"
+ "$L=\"#,9!%,-!%L=\"&<=!\",9%%,9$$<I!#,9!(L9&&L5+'<=)$\\A#%,%!'L1\"(<%!"
+ "%L-\"&,)!$,!!%\\%#&\\)'&L)'',%!&<)%%<!!$L!#%+]!&,!%%,!!&;Y'%+Q!'+U%"
+ "&+M!'+A&$[Q%#[I!$[M$&+I&%;Q\"(+U)&KI(%+E!([E$!+-!&+=&&;9#(K)%#[5!"
+ "$K!(#[-!$;-\"#+1\"#ZY!$;%#&J],#[%!#[!!#*]\"\"ZY!$:Q#%;!'%:E$#JM$#ZM!"
+ "%*I\"$:1$%*1#$JA%#J=!$:=#$J9!$J5!\"Z=!$Z1&$J9!$*-#$:-!!J!#!IY&#IU\""
+ "#IY!$IY&$)U#!YU!%IM*!YE!#9A!'IA&$)U#$YA##Y=##Y1&#I1%\"Y5\"\"I1!\")E+"
+ "!Y-!#I)&#))#!)%$$9)%$H])$9!&#Y!&\"8Y!\"I!!#(M#!HI##HE\"\"8A!#(M!$8=&"
+ "#(1'%85+#(-!\"8-!$85&\"8=!\"X=#\"X9#$(9%#(E!#8I%#HU\"#HQ\"#(Q#\"8U!#(]&"
+ "#(U#!9%\"#9!!%)!)\"Y)\"$I5##Y-&$91(#IE!\"IE!#)9#!YA!$9A\"%IM*$)I!\"9I&"
+ "#9M!#)M\"$9Q$!IQ&$)]#$:-#\"IU!#Y]\"$*%##J)!$J%&$Z1&#*9\"#*1\"$:9#\":9\""
+ "\"ZE!%*=&&*E+#JE!#ZE\"$*M\"\"ZE!#ZI!&J])#ZU!$ZY\"#:U\"\"ZY!$*Y%&J]-%[%)"
+ "#ZY!$[%%$[)!%[-)$+5\"\"[-!$K5$%;-#%+9!$[5!&;A\"#[A!'+A*'[E!&KE,%KQ#"
+ "$+M!$+M!$;M\"#;I\"%[Y$&;U&%+]!\"K]#%+]!$+]!%;Y\"$+U!&K]##,9!%+]!%L!#"
+ "$<)\"&,)!),1$'\\-,&L!'\"\\1$%L1\"%<5!&L5'$L5\"$,5!%\\1(%\\5#'<E%&LA&&\\E#"
+ "(LM%&\\=(&\\Q\"%\\A,%LI\"%<A!%<A!'<A*$<I!'<=&'LE!%LE&&\\E#%LE\"&,I$%<E!"
+ "%<I!%LA\"&LA&&<E!',I#&\\E''LE!$,=!%\\I##LA#%L=\"%<I!'LE&&,E#%<I!'LA+"
+ "&,=$%<A!(\\E!(LA/'<=*$\\=#%<9!%LM!&\\='%<=!'<5!%\\9#%LE!&\\1#%<5!&,I$"
+ ")<)&%,1!$L1\"%,)!&<-&%,)!&<1*%L)\"'[](%,1!!,!!%+U!'+]!&<)%'\\!#&+Y!"
+ "$+Q!&[U(%+I!$+U!$KY'%+M!)+E*$[I!';I\"'+M!%+1\"&;A'%KA#$[E!&KI'&+A\""
+ "%;1#$[-!$+1\"#[%!#[)!%K%!#[%!%[%)$*Y\"%J],$JY$&JY)%ZI'$:U#$JM!%JQ!"
+ "$*Q\"&:M!$:E$#ZE\"%ZI*#J=!\"Z=!%:E($:-$#Z=!#:1#%:A$$:-!$:)!%*%'#J!!"
+ "$:1!#J!!#YY\"#IY!#YQ%&IQ'$)E$\"9I#$YE&$)E$$YA'#9A!\")9%\"Y9\"\"I1!#Y1#"
+ "#9-!\")-%\"I-!%(I&\"8]!#))#\"Y!&$XY$#(M##)%#\"HU!!XM$\"HE!\"HA\"#(I#\"8A#"
+ "$8!)#X5'\"X1##X5&$8A(\"X1##8E\"\"8E!#XE!\"8M!#(I$#H=&$H]'#H]%#X]#\"8Q!"
+ "#(]#$Y!!\"I%$#9!!#I%%#Y-&#I1%#I5%\"95#\"I9$#99!$)9$#YA\"&IQ(#9I!%)Q("
+ "$9Q$$:%$#I]!#9U!#Y]\"$I]%$:!$$Z1&#Y]\"%Z1*\"Z5!#:1#$J=!$Z=\"#Z5!#Z5!"
+ "!ZI(&*=$!ZQ!%ZA&#JI!$:Q#$ZM%$*]\"#ZU!$:I$$JY!&+%\"\"Z]!\"ZY!#ZU!$Z]%"
+ "%;%'$+-!$[A!$[1!![1!#[E!%+9\"$[1!%[A(&[A!'[I!$[M)'KM,\"[I!%+Q!&+Y!"
+ "\";E\"$KQ#$+Q!&[U(%;U\"#+Y!%+Y!%<!\"(<%%%+M!%,!!&+]!&L-#%;Y\"%<5%&<5!"
+ "',1)(<1%(\\-(%<9!$L)#%,1!!<5&%\\=#%<9!&<9!#,9!#,1!%<E!'\\9#(,A#%<A!"
+ "%,=%&\\A#\"<M\"&<I!$<E!#\\=##LE\"$LI\"%,Q#&\\9(',U(&LI&&LI&&\\E'%<I!$<Q!"
+ "%<9!&LM!%<M!'LI!&<]$&LI&%\\U\"%\\A#%,=%%LM\"%LI!%LM!%<9!%<M!%LE\"'<9!"
+ "%<I!%<A%'<M$(,I-&<5%&\\E\"%<I!#LE#&<1!(<5!(<1!$<E!#,=!$,9!&L9&%<5!"
+ "(<1!%,5$%,1!'<1!%<5!%,1!&,-%%\\)#%\\)#$\\)$%<%\"%<%!&\\)('+Y!)<)%&;Y\""
+ "&;Y'%;M\"&+U!%+U!\"[M%$+Q!#[A!&+M!&KE($[I!%;E\"%;=&$;=\"#[9!%;9#&+A\""
+ "'+-*%+5&#[1!#K5#!+-!$:]#$+)!'ZY\"%Z]\"%+%\"#Z]%#Z]!$Z]%$ZU!$JU!#JI!"
+ "$J9%#JM!$*E\"#ZA\"$*A\"#JA!#*A\"$:9#$J5%#J=!%*1'$*1##J-!#J-!#J%!%Z%#"
+ "!)]!#:)#$)]#$)]#$)U##Z)\"&IY##9A!%)=(#9A!#99!$IA%#Y=&\"I1!#)9#\")5\""
+ "#95!#I!%#I)(!I)#$9%&%9!##8]$\"8M!#(U##XI'$)!(!8M\"#(I!\"8U#\"HE!\"X=("
+ "\"8!!\"H=$#8%%\"X5#$X=+\"8=!#HA\"#XA##(E$\"XI\"\"8Y!$(U%\"8]!!HU!$8Y(%I%'"
+ "\"Y!#!9-\"#Y)#!)!!\"I!\"\"I1!#9-$!YA!#)5##Y=&#YA\"#9A'&)E)$)I#\"YM%#IM\""
+ "#9M!%YU(#YY\"%)E$#J!!$)U#$J)%#YY\"#Z)\"#J-!#:-#$:1##J1(#J9!!:9%$J9!"
+ "%*9*$JE!\"*9\"\"ZI%!:I\"%ZU)%:U#\"ZY!$*Y\"$;!#![-!#[!!$ZU!$;!#$[)!![9!"
+ "&K5(#[-!%[1*$+5\"$[5!%[9%%;E\"&+M!%[9!%KA#&;I&%;I\"%[U%&+M)%+Q%&+])"
+ "!+Q%%;M\"';Y*'KY+%KU#'L!,&+]!&,%!%\\!$$<%!%,1!%<!&%,-!%+Y!'<9%&<9%"
+ "&<1!$<-!'[])$,5!'<1!%L-#%<=!$<9%%<=!%<=!'<9!%<9!%<A!&LI&%\\9#\"<I\""
+ "%<M!'LQ!&,E#%LI\"&\\Y!%LE\"$\\I#(<E%$<E!',U#%<M!%<M!'\\Q+%LE\"%LE\"$<M!"
+ "$<E!&<M!&\\M0%LM\"',Q#%\\Q\"$LM\"&<I!%<Q!&LY&'\\M'#,I!&<U$&\\M\"'<Q$%<I!"
+ "%<I!%LI\"%L=\"%<A!%LE\"$<M!!<M\"'<M%(,A#%L5#&<M!&<A!%<A!%<A!%,-!%L=&"
+ "&<9%$L9\"'<-!&L5&'L)\"$,)!\"L1#&L-\"(,%%'<1!$,1!$,)!$+]!&,%!$;]\"%<%\""
+ "&<-!%<%\"%+]!$;Y\"%;Y\"&[U-#+Q!$[Q%&;M\"%[E$%+U!%[=!\";=\"#[A!$[=!#[E$"
+ "%;9\"%+A!&[9!&[1!#[1!$+1\"$[-$$+-\"$[%%$[!!%*]\"#Z]!#J]$#J]$%ZI*#Z]!"
+ "#*]\"%JE%$[-$&*I+#Z9\"#JI!#ZE!$J=!'ZA#&*E$$JA$&*-+#J1!$:-!#J%!!Z%!"
+ "#J%!$:%$#I]!$9Y$#IU\"\"IU!$YY'%)Q!#YI##YI%$IE%#)5#\"I=!\"I=!%95&\"Y5\""
+ "!YI!\"I1!#I!&#I%%\"9%##(Y#$(]'!(]!\"Y%\"#HI#$(Q'\"Y)\"#(M#\"8I!#XA&#HA("
+ "$(!&#(1&\"X5#\"XA\"#89$#(5$\"89!\"HE!#HI##(I##(U!\"XE\"$8U%!HY!\"Y%\"#I%("
+ "#9!!\"8Y!\"Y1\"\"I1!\"H]$#95$\"I5!\"I=!$IA&$I5&#9A!%)M(&)5,%9U($IU%!YU!"
+ "%YU(#9Y#%9Y!#Y]%#Z!\"$II##*%\"#J)!#*-\"!*1!\"J1!%Z5&\"ZE!$J9!$JQ%$*A&"
+ "#ZA!$*A##J5!#JE!&JM\"%*Q'$JU!#*Y!%:Y$#Z]!#[)!$[%!$;%\"\"K)$$+)\"#[5!"
+ "$+!\"#[1!&+9*'+=&%+5\"%+=!$[=!%[M%\"[A!%;E\"';E\"&[I)$KY#\"[9!$[Q$$+Q!"
+ "$KU#%;U*$[Y$&KY#&+]%%;U\"%+Y!%+]!$<%\"&\\)#&,)!%\\1#%,)!%L%'&,A$&L%'"
+ "(,5)%<5!%L-#%<9!$\\-$#\\1#%\\=#%<=!\"LI#!,A%%LA\"&<E!$,=!&<M!%LI\"$\\E#"
+ "&\\I+#LI#%<I!&<E!(,M,(<=)&\\U\"$LU!%LM\"&\\M\"$\\M''<E)%<E!%<Q!%<U!%<Q!"
+ "%<]!%\\U\"%LY!%<=!%LQ!&\\M#&LQ&%<M!%<Q!$LU!%\\Q\"(<M$$<U!%\\Q\"',Q('L]!"
+ "&,A$&,U#)<U#%\\A#&\\M\"$LI\"%\\I#%LA\"&<E!&,I$%LA\"&\\5#%<A!%LE!&<-&#<5\""
+ "&<)!%<9!%L5\"'L=+$<5!%<5!&<9!'\\1,&,!%%L=+%,)!$,!!$,)!&L!'%,%!%L!#"
+ "!,!!$[I!%;M\"%,-!\"K]#$+U!!;U\"$+U!$;U\"$+M!\"[Q$%+I!%+5!%KE$#;A\"&;I&"
+ "&+5\"$;9&'[1*%+5!#[5!&+-\"%[-!#[-!$+)\"$[)!#;%\"!ZM!\"[)!%K%!&ZY.%*M#"
+ "%JY)#ZQ!\"ZM!#*I\"$ZM%$ZE&#JE!#Z9\"#J-!%:A#%*1'#J5!$J-\"#J-!#*-\"\"J%!"
+ "$:!!$*%'$:-##Z!\"!IY'%Y]+&9M&$YM##9M!&YY!!YM$#)E#\"I9!%)=$#9I!\"Y9\""
+ "\"YA\"\"I-!#I1\"#I-%\"Y)\"$)1$#Y5#\"I!%#HI%\"I!!\"X]\"!XY!#XM#\"8M!!XM!#XA$"
+ "#(1#$81$#HA%#XA!\"8)!\"XM\"#H=##XM'\"8A!\"8Y!\"XQ(#XU#$8U\"\"I!!#8U$!Y!!"
+ "$)1$$))!#8]!\"I9!$YM#!)=!%95##9=$#9E#&9A#%I1$\"YI%'9U'#Y9#$)Y##YM\""
+ "$)U#$)Y##YQ#%YM$$Z!#%:%%$:)!%Z)#$*-#$Z1\"%Z5&$*5\"$J5!$ZI!#J9!#J9!"
+ "!ZE$\"ZI!$*5##ZQ!&*9##J]$#ZU!\"*]\"%JY$&JY!#[!!#[%!%+%\"!;1&#[-!#[%!"
+ "$+5\"\"[1!%[1!%+9!([I$'+=*&+Q!&K=(&[A)%KU#$+M!$+Q!$;A\"\";Y\"#;]\"!+U!"
+ "%;Y\"$L%#%+]!$[I!&,!-%+]!&KI($\\)$&[])&\\!-&,5($<-%%L5&%L1\"$,!!$\\9#"
+ "&,1$\",)!&L9!)\\=\"%<=!'LM*&<9%$<I!#,A!%<A!%<E!%<E!$\\I#'LM+%<I!%LE\""
+ "&<M!&\\I\"$LE'#,I!(LU*%<I!&\\I'%\\I'&LU!(,],#\\U#$<U!)<Q#%,U#%\\Y\"%\\Y#"
+ "%<U!(<U)%LY!!<U\"%]!\"$LU\"%M-!$\\U(&,M$%<Q!&M!!&,M#%<U!#,U!%<Q!%\\Q\""
+ "%<I!&LY!)LQ*\"<M\"'<I$),M'%<U!#\\I#$<I!%LI\"&\\I'$\\E#&L9&%<E!)\\=\"#,5!"
+ "',A#',A$%\\E#$,5!!,5!%<9!%<9!%<-!&,)!(\\5,%,1!',1%'L-&&K]'&L)\"%L!#"
+ "$\\%#%,)!(<5!&,!)&+])%[Q$%+]!%;U\"%KM'%+Q)\"+Q!\"+M!&+I%#;I&%+5\"%;E\""
+ "$[=$\"[9!%;5#&[E!%+)\"$K5$%;5&#[))%K-($;-'$;%#!;)\"#Z]!\":]*#ZU!#ZY!"
+ "%ZU&#ZU!%:M$\"ZY!$*A\"$JM!\":=\"$ZA\"%J9%\":E&#ZA\"#Z9\"#J5!$:1!&Z9($Z5\""
+ "$J-\"#:%#$J!%#J!$#)]##*!##YQ##9Q!$9Y$#9I!#9I!#YI%$IA&#IA\"!)=!\"I%!"
+ "\"I5!\"Y1\"#91$$Y-'!I!&!I!#&X]!$))!!HY!\"8U!#HU%#8U$\"XQ\"\"HI$#XE&#XA$"
+ "\"81#\"81!!HE&\"8=##89$\"X9#\"XM\"#(I#%HE+\"8E!#(U##8Q$!XY$#(]#$I%$$IA#"
+ "#I!#!))!#9!%\"I5$\")=\"#Y=#$9E\"\"9=#$9=\"%9A(%II&#)Q##9Q!%IE#$)M#\"J)$"
+ "%IY&#YI%$J)%#J!!$*5#%:)!%*)$%*-'%Z9\"#Z-)$:5#$JA$%Z=&$:='$:E#\"ZI!"
+ "$ZI&#ZE\"$:U$#JM!#ZQ!\"JQ*&:Y$#[5!#[%!%;!+\"[!$#ZY!#;)\"\"+-%%K-$\"[1!"
+ "%[5)%+1\"%[9)'+A&$[A!$;A\"%;=&%KE#%;E\"&;M'$+M!$,!!$;Q&&KQ'%;I\"%[I!"
+ "&+Q!%+]!$KY#'<-!#<!\"(L%0(<)*%,%!';Q'&<-!#;Y\"%\\5##\\5#%<5!%<9!&,9$"
+ "&<9%%<=!%,1!&<=&&\\A'%LA\"%LI!\",E!%<=!$\\E#$<I!#,I%$<E!&<M!%\\Q\"*<M)"
+ "%<Q!%LM!&<I%%\\=#&\\Q&&,U)%<]!%<I!%\\U\"',Q#%<I!%\\Y\"$<Y!$LQ\"%<]!#,Y)"
+ "(,],&]!!%<Y!%LM\")LY2%M%!&-!$%<]!&,Y#&<Q$%<U!'LQ!%\\Y#&\\U\"%<I!'L]!"
+ "&<U%%LU!$<Q!&\\Q&'\\Q\"'<Q)%\\]\"!,M!',E('LI*%<U!%<I%%LI\"%<Q!&LM&&<A%"
+ "%<A!'<A!%,-!$,=!%<U!$<E&%\\)##,9!',5(%<5!$\\5((,9(%<=!%L)\"&L-'$\\),"
+ "%<5!&<%&%\\!$%,!!&+Y!&[](*<-%$;Y\"%,!!&+U!$,!!&;U\"$+M!$[I!%;I\"%[5!"
+ "%K9$%+A!$[9!(+E.$[=$%[1!$;1\"#;5\"%+)&$[-$\"[-!#[1!%ZU\"\"[!!#Z]!#Z]!"
+ "$JM%%:M$&*E+#ZY!!ZU!#ZQ!$JE%$:E$\"*A!(J=#%:M$$:M$$J5!#JA!#J1$%:1!"
+ "$:-##J-!$Z)#$)Y##Z!\"#9A!#Z%&%IY*'YU&%YI!#9M!#9E!#IU!$I5&#99!$9=!"
+ "$9-%#95'!91%\"I9!#)-#\"I)!%9%&$)!!$(]*!(]#$HM'#XI#!(Q!#(E$$(M'\"HE!"
+ "$89)\"(5##(5$\"85!$8A&#8A$\"XE+!(M!\"HI!#HM##XU&!8Y%#(Y##XY/#(]!#9)!"
+ "\"8]!#I)\"\"Y5\"!)1!#95$#)M#\"I5!\"I=!\"IA!\"II!%9I\"%YI!#)E##J!!$)Y##IQ\""
+ "#J!!#J-!\"Z!%#J%!$9Y$%9]$#:1#$J1\"#J1!$J5!&:=!\":A#%:=($*A\"!JI#$ZA&"
+ "#*I\"%*U'#ZQ!$*M\"#[%!#ZY!$*Y\"$JU$%K!($[%!![%!%+%\"![-!$+)\"$+-\"&;1+"
+ "\"+1!%;=\"!+=!$[9!'KA$#[A!%;E\"$[I$$;I\"$+U!$[M$\"[A!%+U!$+U!$+Y!&KE("
+ "'L!\"%,!!%\\-#%\\-(&,%!'L-&%<5!%L9\"'L5!'\\-#$\\5#%L5#&,5$(\\5(&+]%%L=\""
+ "%L-#%<=!$<A!$\\I#'LE&(,I,&<A!'\\E#&<E!'LI!%\\5(%\\A#$,9!#,Q$&,Q#&LU!"
+ "$<Y!'<I$&LU&$L]\"%<]!%<]!$\\]#$LY\"&]!\"',]#%\\]\"&M!!\"<Y\"'<])$L]!&\\Q\""
+ "&<M!\",U!'L]!&,Q#(])!&M!!%<]!%\\Y\"']!&%<]!$=)!%<Y!%<U!(<U-$<Y!&,Y#"
+ "%M!!%\\M'%<U!%LM\"&,Y#&<U$%LY!%<M!),M-%,U$'\\]!'\\='%]!\"'\\A''LE+'<A%"
+ "),I,(\\I!$\\A##\\9#'<=)$,1!$L9&&<1%%<A!'LE!$\\5#%L5#&L-\"&<-%$,)!%L-\""
+ "%<)!&<1!%<%!%L)\"$[I!%,!!$K]#'KU0$K]+)KU-&;U\"#[I!%KQ'$+M!&;I\"%[E!"
+ "%+M!'+=!%[A!$[=!&+=\"$[9!$[=!&[5!%;9&#;=\"$;-\"%+)\"$[-!%;!$#[%!$J]!"
+ "\"ZY!$JY!$ZM\"#JI!$:Y'$ZM%\"ZE!\"ZE!#ZQ!$:=#$:=#%:=(#Z=!#J9!%J5!!*1!"
+ "#J1(\":-##J)!#:1#%:-%\"Z)\"$9Y$#I=!$9U!$YM'$IE&$9I$#9A!#9Q!\"IE!\"YA%"
+ "%9A(\"Y9\"\"Y5\"$Y1'\")%\"#9)$$X]'#Y-##9!\"$(Y(\"X]\"$9!%\"(U\"\"8U!\"8M!\"XE#"
+ "!(5$\"XI%%(=##H=&\"XE#\"XI\"!XI$!8U\"!(]!$XU%\"8]!#(Y&\"X]\"&)!$\"8U!#9)!"
+ "\"91#!I%##I1\"$)1$%)5%#)9##9='$)A#!YI!#9I!#YI\"$9M$$YQ#&)Q%#YQ#%)Y'"
+ "%IM#\"J%!%J-)\"J)!$J%\"#J1!\")U\"#J5$%J5\"#Z9\"#J5!#JI!\"JE'#ZI\"&*Q'&*E$"
+ "#ZI%#ZY!#ZQ!$+)!#ZY!$+)\"$*]\"$*]\"#[!!#Z]!#[)!#[-!$[-!$;1#&+5&&K)("
+ "&K5$$[9!&+=&&;A'&+E&(;A\"#[A!\"[E!$+M!$+M!$+Q!%+U!&+Y%';Q')<!*'L!\""
+ "%L)#'<-!#L%#%L-\"&,1$&<-!$<)\"%\\A'%<9!&L5\"&\\5('<9!$L-#&\\A($,=!%LA\""
+ "(\\A0$<A!!,E!#LQ'%\\M#%\\A#%<I!',E(%<M!&\\Q'%<I!&LM&(,Y,&,]#$<U!'<Q)"
+ "%\\U\"#,Y!%<]!%\\Y#%<Y%&\\]&#LU\"%M!!%\\U#%]!\"$]%\"&]5!%<Y%%,Y$']%+',]'"
+ "%])\"&\\]!']!'%M!!#,U!%M!!&<Q%&])'$M%&&M!!'=-(%<]!',]''LY!&]-'$<])"
+ "&=)$&L]&%<Y!%LY!&,Y#&,U(&<U%%<I!%LU&&\\Y'%LE\"$]-\"%LQ!)LM*$LM\"$<M!"
+ "%LI\"$<E!&\\I#%<A!&,M$%<A%%<A!%\\=#%<5!%<=!'L9+%\\9#%\\9#&\\-(',9)%,)!"
+ "&L-#%,-!%,!!'L%+&L%\"%,!!$+U!&<-*%K]#';]*(+])%+Q!';Q+%KY#$+M!#+Y!"
+ "%;I\"%;I\"%+M!$KA$$[A!#;=\"$;A\"%+-&![5!$+9!\"[-!\"K-#'K!1#ZY!$K!$#;!#"
+ "#[%!%ZQ*%JY!#ZU!#ZQ!#JI!#ZQ!%:U'$Z9\"$JE%#JA!$ZA%#Z=!$*5#(J-,\"J1!"
+ "%:1!#*5\"#Z)\"$:%$$*)#&*)%#Y]\"#9M!$*%#$)Y#&YQ\"$IE\"%)I($)A#&Y1)#9A!"
+ "\"95#!99\"$)5$!)1*#)1#!Y%$\"I%!#Y%#$I!'#9%%!HY!%)%+#XU&\"8Q!#HQ&\"(E("
+ "$85)!(5!$HA$$X5+$8E#$HI!\"8E!#HM&!XU'#(Y!\"HE$$X]$#Y!'#8Y!%9%&$9%#"
+ "#))#\"9-#\"I=!\"I5!#95$#I9%$)5$#IA\"$IA%$YA'&)Y$\"YU!$9M$\"Z!\"#IY!!Y]!"
+ "#J%!$*!#$9]$%:%%#J%!#J5!#J1!\":5\"!*1!%*1##ZA\"$JE$#JA!#*E\"#ZU!$:M$"
+ "$:]#$ZY\"&*I$#ZQ!\"*Y!$Z]%$J]$$;)\"#+)!$;-\"#Z]!$+-!\";1\"$K5$%+%\"$[1!"
+ "$[E!%;=\"'K=($[=!%+Q!%[I(&;I\"$+M!#+Q!$;U\"&[U$%[U%#,!!%K]#%,%!%,)!"
+ "),-$%,!!',9)$,!!&\\-(%,-)%,-!$,5!)L5!#,1!%<A!%<9!$<A!&<=&+,9(%LE\""
+ "&<I%%LE\"&<U%&<9!%<I!&,Q#%LI\"',5('\\Q'&,U#$LQ\"&,U#(\\U!%<Q!),Y0$<Q!"
+ "&,]##\\]#%<]!$<U!&LU!&M)!%\\Y#%M!!%<]!%\\]\"&M!!$=!%%M)!(M-$%M%!%]!\""
+ "%M%!(=%(%M%!&=%$(M-)(,U'%=%$%M-!&M!&&M%!%M!!%LU!'=!$%<U!(=!#$M!\""
+ "(-!'%<]!'=-(']%+$<]!&L]&%]!\"$LY!#=%!&<M%%\\U'%<U!%<U!'\\A#&,M$%<E!"
+ "%LM\"%LE\"#\\I#$,9!(LE+&\\A'%\\U\"$\\A#&<9%$,=!$,9!&\\A'&L9\"'L5\"%<5!$<-\""
+ "%L1#%\\)#%,)!'<)%$K]#$,!!%L-'#,!!%;I\"%+]!&+Y%'+Y%$[Q%$KQ#$;M\"%;M&"
+ "#+Y!$[I!$;I\"%[A!&+1\"%K5$&+9&'+5+%;5\"$[9!#[1!'+-\"#+-!%+-\"#[-!%;!$"
+ "'*]'%JY!!:Y&$;5\"#ZU!$JY!#ZQ!#J9!&:I($*9\"#*A\"&:9%#J5!'JE\"$J9%\":5\""
+ "#Z5%#Z)\"&*)!%:%!%:)(%*!(#Z!\"$)]#$*!##YU%!IU#$YE##YM#$)I!#9E!#I1\""
+ "#9=!#)=#$I5)\"91##IA!%I-(#))#!)!!%9-##I!#\"I)!\"I!!!(U'!(U!#(M#!HI+"
+ "\"X9\"%(=##H=&\"X=\"#XE##(M#$(M%\"HQ!$(M'!(A##(U!#HQ%\"Y)\"#Y%$$95\"#H]%"
+ "#)-#$)!('9M.!)E!$)9*\"I=!$)A#$)5!$)M#$9I%#YU\"#YQ##9Q!$9U!#YY\"$*!#"
+ "#J!!#*%#\"I]!\"J)!#J-!#:)#\"*1\"#Z5!%Z9*%JU!$:A#\"ZA!$*E\"#ZA%#J=!#JM!"
+ "%*U&\"*M\"$*]\"$*Y\"#K)#$;!\"&+1*%Z]!#+1\"#+=!![-!$+1\"$[5%#K9$%[9!%[=$"
+ "&K9,)[A!&[E%%[E!#+U!'[Q$%KM,#+M!#;M\"&,%!%+]!&K]'%K]#%,%!&,%!),1("
+ "%+Y!%+U!$<!!%<)!%<1&%,-!%<E!%<5!%,!!'<9!(L=!&<=!$L5\"&\\I\"#,9!$LE\""
+ "'<9%%<M!%L9\"),M#%LM!%,U$&LY!&<M%%\\U\"%LU!&<U$%<Y!&<Y$(M!%&,]#&-!#"
+ "*M!$%\\U\"%M%!%M%!&<M!$M!\"(=!-%M%!'-1\"--!*%<Y!%]%\"&M)%),]&']%!%M1!"
+ "&=-$(M9$&=)$%M1!%<Y!)]5$&]!'\"=5!&]5!%M%!(=-#%])\"'M)%$]1\"$LU\"'=%)"
+ "%--$&\\Y&%M!!&M!%'-!,&LY!%M!!&,]#$LY\"%M-!%\\Y\"%,]$$LU\"&<I!(,Q('\\Q!"
+ "\"\\E$%,Q#%LM\"#<M&%\\U\"'<5*&,E#)\\M!$<M!$\\A(&,9$#,5!%L=\"'L=&%LA\"%<5!"
+ "'<1*&\\=(&\\=(%+]!#,)!%+]!%L-\"',5)%,!!(\\-($+Y!&+Y%&+Y!%+]!$+U!',!."
+ "$+M!'+M*%KE#$;E\"%;A\"'[I$#K1#$[E!![I!$K1$%[5!$;1\"'+-\"\"[)!!K)#$[%!"
+ "%*]\"$+%\"\"ZA!#*Y\"#ZU!%:U'\"JQ##ZU!$JE!$JI$#JE!#JA!\"Z=!&:=%#J-!$:9$"
+ "#*1\"$:%!!:5\"$:%!#J%!(J-)&9Q#\"9]#%9Y($YE-!YU!#9Q$\"YQ\"$YI##YA##IE\""
+ "%YE'#)=##)9##)-#%95#\"Y-\"!Y-!\"Y%##9%$#9-!#)%$\"8]!\"8A!#(U#!XM!\"8U!"
+ "\"89$\"81$\"X9\"#XM&$8I&\"8I!\"8M!#(Q#\"HY!#I%\"!HQ&\"Y)\"#XU##I)\"#I)%!)9$"
+ "#I1%#91$\"I9!\"IA$\"Y1\"&YQ$#)9##YA#$YM&%)Q!$YQ'$)Y#$YU&$)Y#$9]'!)]!"
+ "'YU-#J%!$:)!$Z1&$:%$\"Z1!%:9(#Z9\"\"ZE!#:='\":E#$J9%#JM!$ZY%$JM(#ZQ!"
+ "$:U'&ZU.&*Y'#ZY!\"J]##+!\"#[%!&ZY\"#K)#'JU%&K1,%[1)&[5)'+5+%[=$#[-!"
+ "%KA$'[E!%+5\"%;]\"!+M%$+M%#+Q!%;U\"%+Q!%;Y.%,%!&;U+\",-!%,%!%,-!&L%\""
+ "&<-!%<-!%L1#%<9!#,)%(<A*&<1!',)%%<E!%\\=#(,=-$LA\"'LE!%<I!#,E!&\\Q\""
+ "&LI&&,M$%LM\"%\\Q\"*<5/'\\U,$\\Q#$<U%'\\Y+%<Y!%<Y!%<Y!&,]#%\\]&&\\Y\"%M!!"
+ "'<Y$&\\U\"&=%$$=%!%M%!%M%!$]%\"#M)\"'])!&M)!%M-!(])%*=!\"&]-'&]5&&]!'"
+ "%M-!'--\"#M)\"$M)&#==!#=%!&]9!%M!!!-%!%M!!%M1!&=)$(]!!$]%#'M1*%])\""
+ "%]%\"#-%$&-%$%M5!$=)!'=%(&,U)\"=!\"#=%!%M!!%<]!%<]!%\\Y\"%\\Y#%\\Y\"#<M!"
+ "%<Y!$<E!'<E*#,I!&\\A#%\\Y#&\\E\"%\\I#&,E##\\I(%,5)%LA\"%<9!&<A!#,9!%\\=#"
+ "%<%%&<5!%,1!',A(%,)!%<=!#<9&%L)\"%,%!%L%'$,!!';]\"+\\!(%L)\"!+U!$KU#"
+ "#+Q!$;E\"$+M!%;I\"&+E%);U\"&;A&&+5\"%[5$\"K9#&[!)&[A%%+-&$+-\"![9!(K)&"
+ "#[)!$ZU%#Z]!&Z]\"$*Y\"#ZU!$:U$$*U\"$:M##JI!%ZI\"#ZE\"#:A#$J=%%:9!\"Z5%"
+ "%Z5\"!Z-!$J-)$Z%\"\"Z)\"#Z%\"#J)!%)]'$*!##J%!\"J%+#J%!#YQ#$Y9!#II\"&)M%"
+ "#9A!#I5\"#I5%!)5!\"Y1\"\"YM!\"Y%%\")%\"$9)($Y!\"#9!!#9!!$9!\"\"HU!\"HU!#(Q!"
+ "\"89!$(=(#8A'\"HQ!\"XI\"\"8M#\"8M!#XQ##XQ&$8I(#(Y#!X]!!Y)!$)%$#))##I%\""
+ "%95,\"IA!#Y9#\"I9!#)=#$)A#$9E!#9I!#99!$IM%#9Q!%YU.')Y)#9U!$Z%##IY!"
+ "&*%$$J)\"#J)!#J-!&:5,%JI!%:E!%:9(#J=!$*Q%#ZU!\"*A\"#ZI!%ZM*%*Y&$J]$"
+ "#ZY!%+%&%:]##Z]!$[%!%K%$#[-!$K1$$;)#%;-#$;-\"$[9!%+A!&K9(%+1\"%;A\""
+ "&[9!%+=!$[M(([M%%+M!$+Q!(;I\"%[U$$+Y!#,!!%KY##,!%%+]!&\\%(&L%'%,-!"
+ "%,-!#<5\"%<9!#L5#(,9#&L1\"%L9\"&<E!$\\=#%\\=(%L=/%LI!&L=\"%<I!(LM*),M#"
+ "&\\I'&LQ!'LI!(\\Q0\"<M!%<U!#,Y!%LY!%<Y!(]!!&\\]&&M!!&\\]!(]!&%=%$&-)#"
+ "%M%!!-)!%<]!%M)!%M%!(-)'$=)%*=-''=9#&]1!#=-!*=-1%]-!'-1\"(-)\"\"]-$"
+ "%M5&']1*&=E$&=1$%=5$%]-!'-1'(=!$%M)!+-5%$=!!)--!'])!$=%!&M-!%]-\""
+ "&--(%M1!$])\"%M-&%M%&&-1#&-%#'])!%M!!&<]$(<]($M!\"$=%!%,U#%\\M#%<M!"
+ "%\\]\"',U(%<M!(LQ!%<]!(,Q,%<M!%<Y!%<A!%<A!',Q#%\\9#'<A!'\\A,%L1\"%<9!"
+ "'L=!$,A!%<5!%L-#&<%%(\\)#&<-&%\\)$&L)'&L%'%+Y!',!!%KU#$+Q!%;U\"#<!\""
+ "#[U(';Q\"$+M!$;Q\"%;I\"&;=#%;E\"%+A%#[=!%[A!![I!%[5!';5'$+1\"#[-!$K)("
+ "%+)&%;%##Z]!!;!\"#Z]!$JY$%:U#%:M(%:Y$$ZQ%$:M##J=!#ZE\"!ZA!%*=#%*9'"
+ "#*=\"\"J1!!:5\"$Z=\"#J)!$:-#!Z%!#IQ\"#I]$'9Y#!)M$$IY%#IY!#9U!$Y='%)Q$"
+ "$)U#$IA%\"I=!#)1#\"I9!\"Y9\"\"I%!!Y-!\"Y)\"$I)#$Y-!$Y!(#XU'$8Y%#8U$#8Q$"
+ "\"X5#\"HA\"\"(E(#XI$$HI*!XI$%(]\"$XY!#XY&\"XQ\"\"X]\"#H]\"#9%!#9)!\"Y9\"$9)%"
+ "#Y-##)5#\"Y9\"\"9A##)A##Y1#\"YE\"#YI##99!&9Q&#9U!%)U!\"J)#%Y]+$J!%#:-*"
+ "#YY\"#Z)\"\"Z5!%:1($:5#&*5($Z9\"#Z9!#*I\"$Z=%#JI!$JE$#*U\"$:I#$*Q\"#*U\""
+ "$*Y\"$*Y\"$[)%$;!#$J]!#[%!#[)!&+1\"$K9#%K=(%[5!%+9\"!;5\"%K=#$[A!#[A!"
+ "&[I!)+Q!'[E2#[=!%;]\"%+]!%L!#%;Y\"$+]!$L!#$,!!$,-!$<%\")L)+%<5!%L5\""
+ "%,-!#L-#&,5)$,A%%,-!%L-\"%<=!%<9%%\\A#%<E!&L]!%\\A#(LY)%LU&%<U!$<Q!"
+ "%LY!%,Q$&LU!%<E!&<Y%$<U!&L]%\"<Y!'-!'%,Y-']%0&]!\"']-!&=%$$])#'-)'"
+ "%]-\"'-%#&-)#(--+%M-!*]=$'=-)%M1!'-1'%M=!'-%\"&]1!$=5!$=-!*M1'%M)!"
+ "%]1\"'-9\"&]5+'=9('-5\"#M5!%]1\"&-!#'==(&M5%%]-\"&=%$%M-!%]1\"'-9\"&==$"
+ "%M-!%M9!%]-\"%]-\"&-)((\\Y/%M)!%=)$&M!!(=%(%]%\"&-!$&M!!%\\]\"',]'%]5\""
+ "%M%!&LU!']%!$<Q!%<Y!'LI+%<U!),M'%LI!&LM&#,Q%%<5!',9$%,1%$\\I'&\\='"
+ "%<=!&<A&&LI&#,1!'<5!#,1!%+]!#,-!%,%!'<-!',%*'+Y!%K]#%,%!%,!!'K]'"
+ "$+Y!%;Q*$[Q$%;Q&$[M$$[E!\"+M!%+5\"&+9*%;E\"%K=($[A!#[5!\";1\"$+)!&[1%"
+ "#[-!$K-$$;%\"#[)!![!!#Z]!'+!.%JU!#*Q\"#ZI\"#JM!$ZI\"$JE!\"ZA!$ZE\"%*5'"
+ "%J9%$:1!#J1!\"*1\"\"J-!\"J%!#J!!#Z%&$*%##IU\"#9A!#9U!!YU!#IU\"#YQ#%)E%"
+ "#IE!#9I!$)9$#I=\"#)9#!Y5!#91$#)-#\")1\"#Y)&#Y!#%)%)!HY#\"8M!!H]#\"HQ$"
+ "#X='\"8=!\"8E##8I(\"X]\"\"9%#\"XQ%#(Y#\"HY$!HU&#)!#$Y%!!)!!\"XY\"#9-!$)=!"
+ "%I5.#)=##9)!#Y1##9M!#YE#$YI$()I+\")M\"%9M\"$IQ&!YY!!Z!!$IY&#J%!$Z%&"
+ "#J)!%:%!#J-!#J=!%Z5##J9!#J=!#*=\"#ZA\"#*A\"%JI!$*I\"$JQ%$[1,\"ZU!#ZU!"
+ "$*Y\"$J]$$[!!#Z]!#[!!![)!#[1!\"[%!$K1$$K5+%;9\"$[5!%;A\"&;=&%+E&$[E!"
+ "%+Y!$[E!%;E\"%K]'&<-!%+Q!%,!!'KY+&KU#'<)%'+]!%+Y!$\\)$%,)!&KQ(%L1'"
+ "(<1.',5('L1\"&L9'&<=*(L=!%,9%%<E!!\\E$#,E%&LI&%<I!&<E%'LQ&#,Q!&<U$"
+ "%<U!&L]!*LY)%M!!%<Y!&M!&']!!*-)&'M%*&-%$)<]#&-!$(-),&])&#=%&&-%#"
+ "%M-!&-1#%]=!$=1!'=1$&MA$&=5$'-5'&=%-$-5$)-5!(]5%'-A\"']5!$M=!%M5!"
+ "&]5!&]1&&]9&%M-!&-1#'-!#&]5!$=5!%M9!\"-5!)=5'&=5$%M5&&M5%&=1$%M1!"
+ "%]1\"'-9'(]5.%]5!$=1!%=%$(-)\"#]%,'--#&])&)M-)'-!(%]!\"$=-!%M)!%]-\""
+ "\"<Q!#\\](%<]!&M!!',Q('<U$%<M!'\\I+%<Q!$\\Q#(\\U!%<M!$,A!#,Q$(L=!%<=!"
+ "&LE!&<=!%<=!%L=\"(L5/$\\A#&L%'&<1!&,-$%,)!$<!\"&,%%(,!!%,%!&+Q)#;Y\""
+ "'+Y%%KU#)+]*$KA$%+M!![I!%+M!%[A!$;A\"%;A\"%;I\"#[1!$[A!$+5\"$+1\"%;5\""
+ "%K-(#[-!\"[!!%[%!#JY$\"Z]!\"ZU!\"ZU$$ZE\"#ZQ!%:]'#ZE\"#ZA!#ZA!%*A&#Z=\""
+ "#ZE%$*-##Z5\"$:9$&*E(#Z-\"$J)\"$)]#%:!%#J%!%IY*$9]!%)U!#9]'#9Q!#YA#"
+ "$)I!$IE#$)Q$#9=!#)9##)=##)5#$9)(\"Y!\"\"9%##9!%$)1$$HY#\"I)!\"8Y##HY%"
+ "#XI!\"X-#$(Q(\"8I##(E##XQ&#HY%#HY%#9!!!Y%!#H]\"!I%#!)-!%9)'#)9#!Y5!"
+ "$)5$$)1$#)=#$)=$#Y-##9E!#YQ#%)Q!#9M!$YY'%)U!#YM#$I]%$*%##J!!!YU!"
+ "\"Z)\"&*-$#Z%\"#J5!$J5!$*1-$J-!#JE!#JE!#JE!$ZA\"%JQ!%ZQ\"$*Q\"\":U\"%*]&"
+ "$K!$$;!\"#+!\"#+!\"&+)+#;%#%[-)$[1%$+5!%+=\"%;-\"$[=!$[A!$[E!%+A%#KE#"
+ "%+I!'KM(![I!$+Q!';Y\"%;Y\"%,%!&<!\"(<1%&<)%&<%%$,-!%L-\"$,-!&<-!&,)%"
+ "%<9!$,)!'L9\"%L-\"$\\E#\"<M&%<A!%\\E#$LI&%<U!(,I,\"M-\"),U,$<Q!%<U!%<Q!"
+ "&-)#'<]#(LY%%<Q!%<Q!$<U!%\\Q#%<]!$=!!$=%!(M%)%M%!'M)%(M-.&--#&=1)"
+ "%M-!&M1%&M5%%M-!&-9\"%MA!$=5!%M5!&==$&]A!&M=$%M9!*]=$&]-&\"M=\"&M9$"
+ "%M9!!-1!(MA(%M5!%]9'(-9'%=A$'-='%-9$(==\"&M9$&]E%&]9!&M-!%M-!&L]!"
+ "%M5!&-5#&-9\"']1!%M1!'-1\"&M1%%<]!']-!%]-\"$=1!'<U)&])&&=%-%]%\"%M9!"
+ "(]!!&LU!&-%(!]!$(]!+%<Y!'<U)',U#%\\U#%<U!%<E!%\\U\"%<Y!#LA\"%<E!%<A!"
+ "%<=!'\\=('<=)%<A!$\\-#&<1!%\\A#&<-&%<A!%<)!%,-%%,)!&<)%&+Y!%+]!%<%\""
+ "%+U!%+Y!#[E!$KU#$+Q!%[U(%;9\"&;A\"%+=!\"[=!'K5$$+=!$[9$%;9\"%+5&#[=!"
+ "$[-$#[-!#K9#'*Y'$[)!#ZQ!#Z]!#Z]!#ZU!%ZE\"#ZU!$JU$$:Q$%JM!#ZA\"$JA!"
+ "#ZQ!#Z9\"#Z1\"#:5#%:9!\"J%!$:%$#I]!#J-!#J!!#:)#!YY!&9U##YY\"\"IU!#9E$"
+ "$)U##YE#%9=*#YA\"#I=\"#Y9&!Y9*\"I5!$YA#\"Y-\"\"I-!\"I%%&9!.$(]'#X]!\"8Q!"
+ "!X9!#(I!$XA+#8=$#8M%\"XQ\"$XA\"#8]$$HU)\"I!!$)1$\"Y-\"\"I1$$)1$!Y9!\"Y5\""
+ "!9E\"!YE!$IE\"%IA##YE##IA\"$)=$!YM!%)U(\"IU!$9U!%*)#%Y]#%:-!$*%##:)#"
+ "#J1!#*5\"#*1\"$:-$$*!#%:E!$ZA%$ZA\"%:E!#JM(&*A'%*I'$:=$$*Q\"$*U\"#ZU!"
+ "%Z]\"&+%\"$*Y\"#[1!#;1\"%+-\"%;='$K-($+5\"#[9$$+=%%+5\"\"[A!&[9!&+Q!%KE$"
+ "$;=\"$KI##KQ#%[U$%+]!#+]!'L%\"%+U!%\\)#$<)\"%,!!(\\)1'\\-,&<9%'LA&&<1%"
+ "&L9&&,1%&,9$'LE!),E#%<A!$LM\"%<I!%\\M#&,M##<I!%<Q!%<I!%\\Q\"%<Q!%\\]'"
+ "',Q($<U!\"-)!'-)\"\"=!&&-)#&-1'$=)!&]-!&M-%&]-&%])\"&M=$%M1!&=1$(MQ\""
+ "!-5!%]-!'-1'']9!$]=\"%]A!%M5!%-9#%M1!&=5$)M=-&=A$#M1\"(M=-&-=\"%MA!"
+ "%M5%(M=#&M=$%M5!&-=\"(=5''==#&-U\"'-=\"&M=%#M=\"'-A\"&M9$&M=%$M=!%]I!"
+ "$=5!)-9+%M=!(=1-&M1%&-5#%M1!%M5!%M1!'--\"&--#']%+%M%!$M)!%M)!$<U!"
+ "&]5!#,]$&M!!)<]-%<]!%M-%%<Y!%,U#&\\M'#L]\"(,M#'\\5#&LM&&<Q$'LE&%<I!"
+ "%<I%(LE+%<9!(\\A\"%\\I#&L9\"&<5!%\\1#&,-%%,1!$,=!%\\)$&<%!&;M\"'L%,&[Q)"
+ "$K]#%K]#%<%\"(K]'#;]\"\"KI#!+A!#[E!([5*$[E!$[A!#[=!%[9!'+9\"%[9$#+5\""
+ "$;-\"$+5\"$K)+#K)##[)!$[!!$*Y\"#Z]!$+%\"$*U\"$JM$#JM!#ZA\"#JI!'JM%%:5$"
+ "#ZQ!%*='#J=!$J=!$J1\"#J%!\"Z=!&*)%&*)!#9U#$*%#%IY\"%IY#$YU&&)Q%#YE#"
+ "!9Q\"%IQ#%YE!\"YI!#Y=##Y=##99$!YE!!Y!!%9-##)%&$Y)$$99%#I%\"\"XI\"#8Y!"
+ "%8Q$$HE*#8I$\"8Q!#HQ%!Y!)$(U$!H]!#HM&%I%!#9%!\"I)!$Y-*#95!$))!!Y5!"
+ "!Y9!#IQ$#Y=#%9U(\"IE!#YI\"%YQ!$IU%#Y]\"$)Y#&)U%!Y]($Z!'\"I]!#J)!#J%!"
+ "$Z-\"\"J1!#J-!$J9!%:9+%*1#$*Q\"$JE$$JE!#ZI\"$JM%\"ZM$\"+!\"$;!#\"*Y\"\"J]#"
+ "$*]\"$+9!\"[%!!+)!%[-&$K5#$[1!&*]\"$[1!&KA(%[A$'+=*%;M\"$[I$#+M!#+M!"
+ "%,%!%[M$%+]!%+Y!&+Y!);U\"#,!!&L%\"%+Q!'K]'%,1!&<1!(<5!%<5%%<1!&<-%"
+ "(LE!&<5!$,9!%L9\"&\\A'#LA#%<E!$\\A#&<I!'LQ!#LQ#%\\U\"'<Q$)M!.%<M!$\\]#"
+ "&<A!%M!!(=!-&]%'%M!!']5!&--#&M%!&=-$(-='%M-!#M-\"%M)!'-5\"$=1!%MA!"
+ "%]I!$M9!(=5'$=9!$M9!'-=\"%M=!&]5!'-9\"&-=#)MA-']=%'=E,%]A!&]Q!\"-5!"
+ "&]A%%MA!&]9&%MA!%MA!$MQ!'-A\"&-A##=Q!'MA$%MA!)]A3'-9\")-A/']5&%]E!"
+ "&-1#&]E!%M=!%M9!%M5!%]Q!%ME!\"MA\"&]5!%M9!'-1\"'M1*'LY*&--#(=-'&=)$"
+ "$]-\"$\\]#'--\"&,Y#']!!'<]$&-!$\"<Q+%M%!%\\Y##,Q!&,U,$,=!&LQ!&\\A'%,U#"
+ "&\\Y\"%LA\"&<A&%<E!%<A!%<=&(,9#&<9!%,=$%<1!'L5*%L-\"&L%\"'<)%(<%&%;]\""
+ "(+]%%,!!%KY#'KU#&+U%%+M!%+Q!%;M#(+M!&+I)$[I!&+A\"%K=#%+=!$[-!$+9*"
+ "$;1#%+1&#[-!$;)\"$[!!#[%!$K!$%*]\"(*U,$ZY%$JY$$ZU!$*M\"(*E)$*I\"#ZI\""
+ "#ZA%%:5!#Z9\"\"Z=$#J-!$J1(#Z-\"&Z9##Z)%$*1#\":%#$*%#$:-$$)Y#$*)#%YI!"
+ "$)A!\"Y9\"#9E!#IA%#YA#%)9+\"I-!\"I5!&Y1)%9)##)9#\"99#%9%$!Y!\"$HY'\"8]!"
+ "$8Q##XI'#8M$%HQ+#XQ&#8U!#8]$\"H]$#Y%##9%!\"Y%\"#))#$9-\"$I1&#)1#\"Y9%"
+ "$)=$%I5!\"IE!#IE\"$)]#(9M(#YI\"$IQ\"')Q'#9U!#I]!\"Z%%!*!!#J%!$:%!%*1'"
+ "$Z-&#J9!#J5%#Z5\"$JE%'*A(\"ZA!%ZM*$*I\"%ZU\"%JQ!#ZI\"#:U\"$:Y#'J]*#[%!"
+ "$JQ$%;1\"%ZU\"$+)\"#+)\"%K1$&K9$%[9!$[9!$[9!%K=#&+E%%[E$%+I%$+M!%+]%"
+ "%K]#%+U!&<!&(KQ0%;]\"%L!'',!)'+Y!',9$%L)\"&<-!&<5!&<-&%<9!%L5\"&\\5#"
+ "%L=\"%<I!'LE!&<E%%LE\"',M(&<M!',E('LQ&'\\Q\"'-!'%\\Y\"%<M!*-!''LU*&-%#"
+ "#,]!']!!%<]!'M1$%])\")-%!(-1,%M)!$=1!&M%%%M)!$MM!&==$%==$'=9#%M1!"
+ "$]9\"#=9!&M=$&]%'&ME$(-A!*-I*#=A!$MA!$M9!&=M$%]I!&=E$%]9!%MA!(-I!"
+ "$ME!&MI$%ME!%ME!'-I'&-],'-=\"$ME!$=9$%]I!%ME!&-A#*MI'$MI!#==!%M9!"
+ "'-I&\"]A##M9\"&M1*%MA!&-=#)=1\"&==$$M5&%]-\"']5&&--#(M1.&-9\")=11'M1)"
+ "(-1!&-)#(=%#%])\"&-!#'=!$&M!!%<]!(LU)%M)!%M!!%])\"(]%%'<Q)%<M!%L=\""
+ "',]'$\\M#%<M!%,1!%LA\"$,A!%<=!'L9\"%<5!%,)!#<-\"%<=!#<-!&\\%#%,-!#,%!"
+ "%<5!$,-!',!!$+Y!&<%%%+U!'+]%$+M!#[I!%+=\"&;A\"%+M!$[A!&K1$$[9!'+=\""
+ "$+1\"#[)!#[-!$;-#$+-!#+)\"#JM!#[-!#ZY!#JI!$*M\"$*Y\"%JA%%:M'#ZI\"$*E\""
+ "#ZE!#ZA!$JE%$:9$#Z5\"#*9\"$:)$$*5&#J!!#J%!#I]!$Z)&$*%#\"IU!$9U!$IU\""
+ "#9Q!#9M!$YQ#\"YA\"'9A'$Y='#9=!\"I5!\")9\"\"I!!%)1%\"Y5\"$)%$#Y%$$)1$#8Y$"
+ "#(E!#(I!!HI!#HQ)!Y!\"#HY%\"XY%#X]!\"8Y!\"H]!#9)!\"Y1\"$91\"!Y-'$)-!$I)*"
+ "#Y1#$9=%#YI##9I!&)U($9]$#YQ#\"IQ!#Y]&%YY'#YU%#J!$%Z)'!*%!#Y]\"#J9!"
+ "#J9!#*=\"$*9##Z9%#Z1\"\"ZA!%ZE\"':I)$JM$#JM!$*Q\"$*U\"%J]!$J]!$ZU%#[)!"
+ "#[-!$[5$#[5!$[5!#+)\"%+1\"%+=!![9!&[=!&[I)$[9!$[-!%[I$#[I!$;I\"\"[I!"
+ "'[U)%+Y!&;M\"&+]!%+Q!&KQ,&,%!%,%!%\\)'%L-\"%<5!%,1!&<I%&,5%&<9!%<9!"
+ "%LA\"%<M!\",E!'=!)%<9!%<M!&\\M\"%<]!+L5+%<Y!\",Q!'<I$$<Y!&,]#&=))%LY!"
+ "'=!)(M%.'=)(%]%\"$,]$']%*%]-\"&-9\"%M1!%])\"&=9$%MA%$=9!%M9!%M5&&-=#"
+ "(-=&$-9$'=A((]=$)=I!'-I!!-E!%ME!'MI)$=1!&MM$%]M!%M9!'=I((=Y!%ME!"
+ "%]I!(-I!%ME!%ME!&]E!$MM!$MQ!%]I!'=I('-I!)-Q*%]Q!'=E(%MA!%]M!%MA!"
+ "%]E!)=E!&-9\"$=1!'=A(&MA$+=91']1!'-5'']1&&M9%&-E\"&-I\"$]=\"(--,%<]!"
+ "'-1\"%M1!%]-\"#]!$'])!%M%!&]%'(-!''=!$%<]!%<]!%\\Q\"&LY!%<E!'=!$(,M,"
+ "'<M$)\\M&%LI\"&<M!&L=&&<=&#,)!%<E!&\\9#&,=$%<=!&L5\"%,1!%L-\"%,1!%\\%$"
+ "'<-%)+Y%&,!%#+Y!%[Q$&+Q!&+Q!%+Q!$KM##+M!$[I!%+M!$KA$\"[E!%[=!\"[9!"
+ "%[5!&[5!#[)!$[5!\"[%!%[)!$K)$\"[1!#*Y!$;)\"$ZY\"#JE!%K!$$ZM%$ZM!\"ZI!"
+ "%*I*#JA!#Z=\"$JI!#J-!#J9!#*-\"$:!!#Z-\"&*),\"J)$#J!!!YY$#9Q!$9M!#IQ\""
+ "!IQ)#99!#I=\"#IM\"%9A(!Y9$#)5#\"I9!#Y%$\"Y9\"\"91#\"Y-\"#)-#&9)!$95%#H]%"
+ "#(E!\"XM\"\"XQ\"!HE&\"8U#\"8]!\"XY\"%H]$$(]'#9!!%8]#\"I%!#)A&#)5#$)=!$IE&"
+ "#9=!%I5'$IE&%9M\"%)M$%)Q($)M$%)U'\"I]!%9])!Z%$$J%&$J%&$J)\"$*)#$*1\""
+ "#J9!&*5,%Z9*#JA!&:=!$JQ%\"ZE!#JA!&ZI#$JI%#ZM!'JY%#Z]!$;)\"$;!#&[%!"
+ "%+%\"\"+!\"#[5!#[-!#[1!$[5!$[9!&+=\"&[=)&[=-%[I$$+Q!#+U!$[Q%$+Q!&;U&"
+ "$+Q!%+Y!&L%#$[Y$%+]!%L%#$,)!'+]%%L-\"%,%!(L1&&<5!%L9\"$<5!%<A!&<A!"
+ "%<I!%\\Y#&\\I'%LE!%LM\"'LM+%=%$&LU&&LU!%LQ!%<U!%<Y!%\\]\"%<Y!%M%!%<]!"
+ "$<Y!%M)!)M-)'M-$$]5\"%M5!)=5\"&]5!%M1&$=5!']9+%M1!&]A&%]Q!,M=1%ME!"
+ ")-=%%]A!%]Q!%-Q#%MA!&-A#)-A!&]9!%]M!%]I!%]I!%]M!&]Q!'-U!%]M!&]M!"
+ "#=U!$MM!%ME*%]M!'MI)&]5!%]M!'=Q(%MA!&=M#'-M&%M=!%]I!%]I!%=I$&-U!"
+ "%M9!%ME!%M=!$MM!'M=)%MA!%M9!#]Q#'=E\"%M9!%MA!'=9(%]9!%]5\"&=-$%M-!"
+ "&]-!&]1!'=-)%M-!']1*&=%$#,]!%M%!(-%\"%M!!#=!!(--!'L]!&<Q$#,Y$%\\U\""
+ "%<]!$,I$%<E!&<I!#,I!%LA\"%<A!&<A!%<=!&<E!'\\A'%<9!'L%+%,1!',)%&,5$"
+ "%,)!&,%%%\\!#%,!!'+]%%K]##+Y%%+U!#+]!$+I!%KM+%[A%%KQ#%[A!%KA#(+=&"
+ "\"+5!#[5!#K-#\"[-!\"[-!$+)!#Z]!#[)!#+%!$*U\"$*Y\"#ZQ!#Z]!#JM!#ZE\"#ZQ!"
+ "'ZE($:E$%*A&\"Z=!#Z9\"#Z%\"%:5!$J5%\"*5%\"I]!&*%+#:-#\"IY!#YY\"$)Y##IM!"
+ "'IM,':%&$)E##IE(%IE$$I5#$9A\"!Y=!\"I9$$)9!!Y1$#)-##))##I%##9%!$I-'"
+ "\"81!#HM\"#(Q##(U#\"X]\"%9)#%XY&!(U!&I5\"\"I)!\"99&!I5##Y)'%YA!$99($9=("
+ "#9A!%)I%#YA\"#YE##IE!$)E!#YY\"#J%!#Y]%&*-%%:!!#J1!$:%!%:5!#J-!$:1!"
+ "#J!!\"*9!$J=!#Z9\"$JA$$ZQ\"%JI!$ZM\"#ZY,&:Q(%:U$$K%$#K%'%J]!%;)'!;%\""
+ "%[1!#K1#$[5!$+9\"'+I*\"+1!$K=#&+A&&[A$$[I!%[I!%;I\"\"[=!$[]$&[M)%<!!"
+ "%;Y\"&[I!'KY''+Y!&\\-(%<)!&,)!%<)%'L5*&\\9#%<%\"%L9\"(<%!%\\=#&<A%%LM!"
+ "%\\Y\"(,U,'\\I\"&,M#%\\Q\"%<=!%LM\"%-!$)\\Q!&L]!%]%\"']%!%]5\"&M%&%]%\"%M)!"
+ "&]1&&M-%%--$&--#%-1$&])'&=)$%]%\"&M9%#=I!%MA!']E*$]M\"&ME$']1!(-E!"
+ "#=E!%ME!%M1!&]M!%]I!']5!%]M!%]M!$=9!&-M\"%ME!$MQ!%]Q!'=]'%]M!%=Q$"
+ "(]Q.&-U!&==$&]I!%]M!%]Q!(-I+&]M!%]M!'-Y!%]Q!(-Q!*-I$#MM!%]Q!%]U!"
+ "&]M!%]I!%]U!%]I!%M=!%ME!&]M!%ME!$=9*)-A!&-A\"%]5\"%=E$&M=%%=A$%M9!"
+ "&=5$%]5!#=!!'-)\"\"-%!%M5!%]1\"&=%$(-),&=%$%M!!$=!!&,]#(<]-)\\Q!%<Q!"
+ "'<Q.#LM&&LQ!%\\Q\"$<M!%LI\"(LE!(<9.&\\='%<=!%<A!%L9\"'<)&\"L1#%L)#'<)&"
+ "'L9\"'\\),',%));M\"#;Q\"%;Y\"'+Y)',!!&;Q'&+Y!#[I!%[I!$;I&![E!#[A!%;I\""
+ "(+M&%+A%#[-!%K5(%[5!$;-&\"[)!#[1!#;%#$*]\"$Z]%!ZY!&:Y'#ZQ!$ZM%%JM%"
+ "$ZI%#*E\"#ZA!#JA!#ZA\"#J9$$:-#$*1#%*-'$*-#$*)#%J%*#)U#$)Y#%)]$#I]!"
+ "$9]$#IQ\"$Z!&#Y=##9=!$YA'$YI#\"I9!\"I5!$))$\"I1!$91(#)=#\"I5!$))$#Y)#"
+ "!(5)!HM!#8M$\"H]!\"I%!#XU&!9-\"!Y%!$I%##))#$)='$Y-$!)5$#I9%\"I9!$)-$"
+ "!YA!%YE+%YE%#9M!#9M!$9U$#9U!$)Y#!Z)!%:%+#:%#&*%,#J-!$*)'%:5$#J5!"
+ "%:9%%J9%#Z=\"#JM!\"JE*#J=!$ZI\"\"Z]!!ZQ!$JU!%*I##ZU!#ZQ!$+%\"#[-!%;)'"
+ "$K)'&+-\"$[1!&;)'%;1\"$;E\"%+=!%[I$&+A\"%;I\"&;I\"&+M!\"+Y!%+Q%&;U\"%KY#"
+ "%K]##KY#'L!#%\\1#%\\)$&+U!'\\5(#\\9$$,-!%,-!&<9%&<9!&LA&&,9)%<9!&<=%"
+ "&\\I\"%<E!$<I!&,Y#$\\Q#&LU&\",]!(\\U/#\\]#&\\E#%M!!%M!!&M%!%]!\"%M)!)=%'"
+ "&]1!$=)!%]A!']=+&=)$%M1!'M9$$MA!)]E()-=0'-=!#MI+#=A!&-A#&]E!%ME!"
+ "%ME!%M=!\"-I!%]A!&]M!'MM(\"-M!%]Q!#-M$'-Q&']E$%]Q!'-U&'-Y!'-U!&]Y%"
+ "\"-U!%]U!%]U!'-Y&%]]!&MU$%]Q!'MY)%]U!%]U!%]U!(=]!']Q.%]Q!%]U!#=M!"
+ "%ME!%]I!)=I''-I&%]I!(-I!(]E$%M9!%]M!&]Q!$MM*(-I!$MA!$M=!&]=&%M1!"
+ "%]=!$=1!(]5.&]5&%])\"'-)\"%M-!%]-!)<Y(#=9%%]!\"&L]%$=%!&L]!%M!!%<Y!"
+ "%,Y$'-!'*LQ)&<Q%$<I!)\\I!%<I!&,E$',A(%<A!%<A!%,)!&<9%$,=%!L5#\",-!"
+ "'<-%%,%!%,%!%+Q!&,!!%;]\"&L%'%;Y\"&KU#$KU#([=!$KM#&[Y,(;A''+E&$[A!"
+ "%+=!';-(&K9(&K9$$K5##K9(#[%!$;-+#[!!$K%$#[!!$J]!&ZU*$+!\"$JQ$%ZM\""
+ "$*Q\"#JI!%:E(&:E$$*9\"%Z9#%:A!\"Z5!$:1$$J-%#Z)\"$)]'%*)'#J!!%:)!\"YU\""
+ "#YM\"#9M!#IQ!#II\"%)Q($YE'#)A##I=%#II$#)9##95!\"I-!\"9-##I-%\"Y%\"#9)!"
+ "!HA##XQ&#XU)\"XU\"#HU%\"9!##I%#%I)'#Y)##9-$#9-$#9)$#IE!#9A$$I=&%IA*"
+ "#9M!$9M%$95%&IE$#9Q!#YU\"#IY!$)U##I]!$:!$!J1#\"9]##J-!$J)%#JA!!Z5!"
+ "%*5'&Z9'#JE!#J=!&:U$#JI!#JE!$JQ%\"Z]!#Z]!#[-!#Z]!$+5%$K)$\"[!!%K-$"
+ "#+)\"$+9!%[-!&+5\"$[5!%+-\"$KA'%;A\"!+A!#;I*&[]$%+U!&+Q!&;Y&%+U!&[M)"
+ "%[]$'<%.$L1\"&<)!%\\-#$<-\"&<5%%<5!&,5$%\\=#%<9!&,=$&<A%%,1!%<5!&<I!"
+ "&<M!&<9!(,Q#%<Q!\",U!(LU)&\\U\"&-)#%<]!%<Y!%M%!(=!$']!!)=!1'M-$$<]!"
+ "&-A#(--,%]1!*==+%M5!%]9!%M=!%]E!'=9()-A!\"-=!$=5!&-I'%MA!#=M!%]M!"
+ ")-M$%]I!&-U!&]M!$MM!%^!!%]M!&]U%%-Y\"&>%#&]A&$]Y!%]Y!'=U(&-U!$MY!"
+ "%]Y!'MY#%^!!%^%%%]]!%]Y!(-Y+%N)%%^!!&-Y!$MU!%]U!$>%%(-Q+%]U!$MU!"
+ "%]M!#MY!%]M!&]M!#=E!%]Q!(=I,%M=!&N!$%]Q!&]E!&]E!&=A$#MA!&-A\"'-=\""
+ "(=1(&M9%$=9!&]1!%]=!%M1!&=1$']-!'M)%%]9!&M)!'M%$%]%\"$=!!%<Y!&M!%"
+ "#LU\"%<Y!',Y('LQ&(<Q)%<Y!%<I!#LE\"(<E.%,E$)<=*%L=\"&<9%%,9$&\\-(&<-*"
+ "$<-!%L)#%<1!%<%!&L5+%+U!$,%!&[Y(%+Y%&KU#';M+![A!\"+M!%;=\"$KE#$+A!"
+ "&[1*&+=!%+=\"#K-$&;9'!+1,#[-!'+1/#[)!';%(%*]&#JI!#JY$#Z]!%JU!#ZU!"
+ "\"*I\"$JM%!:E\"$J=!#Z9\"#Z9\"#J9!$:)$#J-!#Z1\"%:-!#Z1\"%*1'\"IY!$J%&#9Y$"
+ "$YY##9U!$YQ#&9M-$)U#$)I!#Y=&\"Y=\"$9=(%)5%#)5##9)$#)-#$I))\"Y!\"#I!\""
+ "!HM##HQ(#(Y&!XY!%X]+#XY&#I!\"%X],\"Y!#\"I-$$)1$#91$\"9)#%)9(\"IA!$)=$"
+ "#YE\"$)=$#9Q!&9I#$IQ%$IU%%)Y$$*%#%*%'$*!##J-!%J-\"#Z-\"\"*1\"#J5!%Z1#"
+ "\"*9!#J=$#ZA\"$:E##J=!\"*M!$*M\"$JQ$#ZU!#ZY!#Z]!#ZY!$;!#%*]\"&[-.#K-#"
+ "%[1!&+1&%;5&%;A\"$[=!$[9!&;A&)+E&\"+Q!%;A\"\"[E$$+Q!%+U!%,)!&KA(&,!)"
+ "%\\!#%\\%$%,-!&,5)%L-\"'<=)',I)%\\5#%L5\"&<5!'<E%%L=\"%L5\"\"\\9#&LI&&<M!"
+ "%<]!%<Q!%<Q!&LM*%<U!(\\Y&%LM\"%=!$(])!%M-!%]%\"&M%&&=)$'=-(%M5!$M1&"
+ "$]%#$M-!&]9!'=5(\"-=!'-9\"&=I#&=A$%]E!&=E$*=E!%MM%%]Q!%]]!+=U$&]=!"
+ "%]Q!(-E!%]I!%]M!&M]$'-U!%]Q!%]Y!#]Y\"(=Y!%^%!'MY)%]I!(>!!%^%!%]]!"
+ "'-]!&]Q!&N!$&MU$&=]#%]M!%]]!(-]%$N%!%]]!(-Y+%]Y!%^%!)]Y(\"-Y!(-Q!"
+ "%]U+%]Y!%]]!&=Q#&-Q\"'-U!)-U%%]Q!&]M!*=M+&M=$'=A($ME!%]Q!&]E!#]E#"
+ "'-E!$MA!'==(*=5+(]=$$]5\"&-=#)-E+&]I!']-*%]5!\"M1\"&M1%(])/%M1!&-!#"
+ "%<]!%<Y!%]!\")L])&\\I'*LQ/%LM\"&<I!#,I!%<I!#<-!%<A!%<A!%<%\"(,9#'<9!"
+ "%LI\"%,-!\"<)\"$L-#%,%!',%!&L%'%K]#&+Y!%+Y!%+U!!+Q!$KQ##[I!'[]#%;E\""
+ "%[=!#[=!$[9%%[9!$+9!#[1!#[-!%[E!$[)!%K%!#:]#%K%$$:Q#$JY$#ZU!$JI$"
+ "#ZI!':U!$JM$!:E\"#J=!#ZA!%Z9*#J=!&ZA'#JA!#Z5\"$Z)&$*%#!Z%!#I]!$Z1*"
+ "$)Y##9Q$#9Y$%)]'#9A!$9E\"#YI#$)A$$Y='%9E&!Y9!%9=\"#)A#\"I%!#9)!%))%"
+ "!HI!$8I&!(U!#HI&$))*#9%!%I%(%I9.!I!%$I-)#)5#&9-$\"I1!#)=#$)A##9I'"
+ "$YE&$)I!\"YM!#9Q!$)]##YQ#$)Y##Y]\"#Z!%%:%(#J1!#Z9!\"J-!$:-!$:1!%:9("
+ "$J5!#JA!%ZA)$JE%$:E$\"ZM!#ZQ!$:U+\"ZM!$*]\"#[!!$K%'$;%#&[-%#[)!&K)-"
+ "![)!![5!%+5\"%;9#'+=\"%[9%)KQ#';U+([U$%+A!%[Q)%;M\"%+U!(+]%%+]!%+]!"
+ "%K]#%,%!&,1$%\\9#%,1!$,5!$<-\"&,5$%L5#%\\=#%\\A#$,A!%LI\"',Q#&LE&#,U%"
+ "%<I!%<I!'\\]&$<]!%\\Q\"%M!!&LU!&M!!&]-'&]!!%]5\"%--($]-\"%M5!$M1!%M1!"
+ "%M)*&=9$%]5!%M9!%M9!&MI$&M5$#=I!%]M!%]M!$M=!(=Y!&=U#']M$$MU!&=Q#"
+ "#=Q!\"-U!&]Q!#=Q!)MY!)-]/&-Y\"%]Q!%]Q!\"-Y!%^!!&=]('-]!&>%(%^-!(=Y!"
+ "&-]!$^!!'-M''>)''.!%$N!!'.!!'.!+&>%#&-Y\"&-]!%]]!#]]\"$N%!%^!!%^%!"
+ "%=Y$'-Y!%]M!%]Q!$M]!'-U&(>%!&]A!\"-Q!%=E$%]I!%ME!%M=!%=I$)=I!'-1'"
+ "%M9!%MA!%]-\"#=9!(M=$&]9&%]9!'-5'&]A!%]1\"%M%*(M-$'\\]&%])\"$=)!%<]!"
+ "%M5!'<E)&LY!'LU!%\\U\"(\\Q/&<M!%LM!%LI!%<A%%LI\"&<=&\",9!%<=!$L1\"&<5!"
+ "'LI*(,9##,)!$<)!%\\)$#L!'%,!!&<-&\"+Y!(;Y!%;Y\"$+Q!!+Q!%KY'$[I!&KI#"
+ "#+M!&[E!&;=&#[5!%;5\"&[=!%[1!!;%\"$+%\"%[)!#[-!$+)\"$+5&$;)\"%K%($*E\""
+ "$*U\"$;!#$:I#$:E$&*A'$J=!#J1!!Z9!$Z1&#Z1\"#Z5\"#J9!'J%$#Z)\"$IY%$9U$"
+ "#Y]\"%9U(&)U%\"IQ!#IM\"$)A$#9E!#IA\"#I=\"$)1'\"Y9+%)5+\"I5!\"I!!\")-\"!)!!"
+ "\"HQ!#(M!#(Y#&(])$8]\"\"))\"$)%(!I!%#I)%#Y=&#9-!!91%\"IA$!Y-!\"I1!%9E%"
+ "#YI#&9M\"$J%%#9A!#YQ\"%9U%\"9])#*!##J!!&J-'#Z%\"$:5$\"Z)\"#J5!\"*=\"#Z9\""
+ "#J=!&:A!%:E!$ZA\"#ZQ!#JM!#:Q\"#JA!#ZQ!#Z]!$+!\"$[!&$+%\"#[)!$;1#$+=!"
+ "$+1\"%[5!$[9!&+=!';U&%;5#$[=!%;M\"%;A'$;Y\"&+Q!';I\"*;]'%+U!%;Y\"\"+U!"
+ "&,%!',)$%,)!%,-!%L5\"'<5!#\\9$'\\5(%<A!',A$&<A!'LQ!%LM!%<M!(,M,%LY!"
+ "&,E(%<Y!%<Y!'\\A\"'<Y)%M!!$L]!%M!!&]-&'=%)&LU!$=1!']%!'--'']5!&=)$"
+ "(MU-%M)!&==$#=A!%M1!'=E(&==$%]U!$MM!#]Q#&=Q#&]Q%(-Q!%]]!%]U!'-U!"
+ "&=M$%]Y!$N!!%^!!&=]#&-]!$MY!%^%!(>)!!^!)%^)!&.!!'-]!&-U\"'N-\"%^!!"
+ "&.!!%^-!'.%!%]Y!$N)!'-Y!$N!!$N!!)]U)%]]!&]]%#>!!%^-!%^!!'^-$$MY!"
+ "%]Y!#=Y!%]Y!%^!!%]M!'.!!%]Y!%]Y!$M]!*MY!%]Q!%]Q!$=9!$MQ!&]E!&]I!"
+ "%]Y!&-=#'=E\"#]9#%M5!&=9$#=A!&=9)\"=9!)--!\"-)!#=)!#M%\"(M%$#=5!\"-)!"
+ "%=!$&M!%&M!!&\\Y'&LY&%,U#$,M)%<U!%<U!$<Q!&,I#%<E!+<=#%<A!%<I!%\\A#"
+ "&L5&$,5!#<)\"#\\1$)L)\"%,)%$\\1$#,)!(+Y!&KY'$<)\"$[Y$$;M\"%KQ#$;M'%;M#"
+ "%[1%&[9!$[A!$[-!%[-!$[5!\"[9!%+1&%[)&&+)+$K!'%:Q$$;!\"&*]#%*Y&&K!!"
+ "$JY!$:I$#JM!':E!#ZQ!%:A!\"ZE(%JE)#J9!#J9$#Z5\"#Z)\"&Z)##Z%\"!Z%!$:!("
+ "$J!%$)U##9U#&Y](#IE!$IA%%)I%$IE##)E##)1##Y9#\")5\"$I1)#)5##9-$$HY)"
+ "!HM!!(M!#I!(\"X]\"\"8U!#Y9&$))$#)%#\"IA!#Y1#\"Y=\"%IE-%)=!#9A!#Y=##Y5#"
+ "#9A!!YU!$YU#$9Y$#I]!$:!$%9])#J!!$*!##Z1\"$*)&#J!!#JE!$Z5\"#Z9\"!ZE!"
+ "%*A##Z=!$*E)#ZI\"'ZM+\"ZQ!%JY!&*Y'$JY$#Z]!$;!##[%!$[!!!+)!'+1+$+!\""
+ "%[1!\"[9!&+-\"%;=&%[A!&+E!&[E%\"+M!$[Q%$+U!#;U&$[Q(%<!\"%+]!%,!!%<!\""
+ "#<%\"&,!%%L5#%,)!#\\1#%<5!%<9!%L9\"%<=!%<A!*,=((,I)'<I%$LY\"&<M%&,U#"
+ "(<Q.$=!!$\\]#%L]!%]-!$L]\"%]5\"%M-!%<]!%M1!&]-+%M5&%M-!$M5!'-9\"&]A&"
+ "%M=!']9%#MA\"&MM$(=E(&-U!$MM!&]Q!$MM!%]M!$=Y%#=U!%]U!$]Q!%]Y!&-U!"
+ "'-Y&!-Q!&-]\"'-M&'.%%%]Y!&>!-%^!!(M]'%^!!%^%!!.-&%^)!%^%!#>%!&^%%"
+ "&.9!%^!!$N-%%^%!$N%!%.9\"$M]!%^!!'.%!%]]!%^%!%^%!'N%('.%&%]Y!$>1$"
+ "*^!!%]]!']])%.!(&-U!(=]!%^%!)>!*)-U*%]Q!%]M!&=U#%]Q!%^!!%]M!$MM!"
+ "%]I!%ME!'-=!']E$\"-E!'=A(&-E\")=9!%M-!&])&%M5!%M%!%]1\"(-1+%]!\"&=)$"
+ "'<Y)%M!!&=!$(LY%)<Y(&LU!&<U%%<Q!&,U#$<M!%<M!&,=$%L9\"&<A&&,1%%<E%"
+ "%L1#',1)%\\1#)<1*%L-#$,)!&\\%(#L%#%,!%$+]!%[I!$;U\"%<!!$[M%%+M!$[I!"
+ "$[I!\"[E!(K1$$[=!&+5&&[1&$;)#%[-)$[-%%K-(#[)!$[)!$Z]%#ZQ!!*Y!%JY!"
+ "%ZQ&%*Q#%:M$%JI!$:E$#JI!#ZA\"%ZE\"\"J9##Z=!$*9\"!J-'$Z-&&Z)$#J!!\"J%!"
+ "#I]!$9M$#)Q\"#YM#$)U##YM\"#II($)E'#9A!#9M!\"I=!$99(\"8]!\")!#%)-\"#I)\""
+ "#8Q$\"HQ$#(U#$8U#$8U#%)))#91$#9-$\"Y-(#)-##)9#!Y-!\"9A)#Y9##YE#$9I%"
+ "#IM!$)Y#$)Y#%)A'%J!#\"YU%$*)#\"IU!%:9($:)$#Z-\"#Z5\"\"J1!#JA!$:9$#J1!"
+ "$JA!#JA!$JI$#JM!$*Y\"#:I#!ZU!'ZY.'[%2$J]$$JU$$K%$$;-#%[5!\"[9!$[=!"
+ "%K=$%;%#$[=!$[9!&KA$%;Q\"%[E!'+A\"#;I\"'KU#%+Y%#+Q!'+Y)&\\)'%,%!'L)#"
+ "%<)!%<5!#;U\"%,1!%L5#&<9!%L=\"*,5)%\\A#(LM!&<E%%L9\"#LI\"%\\Y\"%LM\"%<U!"
+ "%<Y!%<Y!%]!\"%M!!(-!\"%])\")]1*&])&&M-%(-1,&M5%%M1*%M-!$MI!%M=!(==("
+ "&]=!%MA!&]E!%MA!&]M!&]I!(]Q)$]M\"(-I!)=U!(-U!$MQ!%]]!%MQ%(=Y!(^%."
+ "#>1!'-]!%^!+%]Y!%]Q!!.5!&>!#(>%!*^!!&.=!%^!!'.)!%^)!%^)!&>)\"%^!!"
+ "&.5!%^5&$^5!%^-!#>%!%^)!%^-!%^)!,N)**.%)'.%&%^!!#^)\"&.)&*.%#%]U&"
+ "&N!$\"-]!&>1\"%^)!%]Y!%]]!&.5!%]]!#MY+%MY%*-Y)%^%!&=Q(%]U!%]Q!%]I!"
+ "&-9\"%]M!&]A!&]E!\"-A!(-=!(]A)%]I!&-=\"*-I4&M5$%M5!&-E\"%\\]&']-!$]!'"
+ "'-)\"%]%\"$=!!&=!$)-!\"(\\Y!%<Y!%M!!&<M!%\\Q''<U)#,M!'LM+%L5\"',A(%<I!"
+ "%L5#%\\9#'<A%%L1\"&<1!%<=!&L-\"'<-*%\\!$%L-\"'+]))+U!$,!!'KU'$KU##[I!"
+ "$[I!&;M#%;I\"&KM'$[A!%[9!$;1##K5($+5!#[%!$*]\"#:]\"$;)\"';%$!*Y!#ZY!"
+ "\"ZY%#*]\"$JE%\"*Q\"$*Q\"#JE!\"Z=!$ZA&$J9!'*9!$:-!%:1!$Z)\"$:-!!Z%$#9U!"
+ "&Z!!$)]#\"J!!#9U##9U!$)M#!YE!\"IQ!#YE#$)A!\"Y=\"#)9##I5\"\"Y!#!Y!!#I-%"
+ "$(Q'#8Y$$(Y'\"HU!#XY##XU!\"Y!\"\"Y!#\"I1!#Y=&\"I9!\"YE\"#9E!#IA!$)M##9M!"
+ "#)Q#$9M!!YQ!#)U&!IQ#$*!#%:!(!Z%!\"J)!$:%!!:%%$:1!#Z5!#J5!$Z=\"#:A#"
+ "#JA!$JI!#JI!'*Q$%JQ!%[!\"$JU!$ZQ\"$*]\"%:]'%;%'%+5\"$K5$#+!\"$+1\"$;5\""
+ "$K9#%;=\"#[9!$[A!%+A!&KI'$[M$&+Q!&KQ#%,!!&;Q\"%;Y&$;]\"&<!\"$K]#&+Y!"
+ "&<)!%<A!(L1\"\",5!%,1!$<E!$L=\"'\\E\"&<E%&LQ!%LE\"'L]!%LQ!$<U)%<E!%<Y!"
+ "(L]$&=!$']!!%\\Q\"&]%!%M-!#M)\"&M!%&=%$'=5$&-5,'-5''ME)%]=!%-=#'-A'"
+ "(-=!&]E!&]Q!%]A!$MM!%ME!'=]'%]Q!&=Q(%]Y!)>!%&=]#'-Y!#=]!&M]$$N%!"
+ "%^!!%]]!'-Y!(>)!'^!)'.-!%^-!&N1#%]]!&>1\"%^)!)>-%'.!!%^1!&.9!$N-!"
+ "&.=!'>)'%^-!%^)!&.-!'-]!'>5&(=]!%^!!'>-!'>9!%^1!&N1$&N)#%^%!'>5!"
+ "$N)!(>%!%^%!'-Y!$N!!%^%!'.-!%]Y!'-]!%]]!'-Y!%]]!%]Q!&-U\"%^!!#]1#"
+ "(]I$%]M!\"-U!%MM%(-I!&]E!&]A!%MA!$MQ!&]=!%-5#%]=+&M5$(MA$&M-!\"M5\""
+ "'=%)$]5\"'M%*%M!!#\\](%LU!%]!\"&LM!$<E!#\\Q#%<A!%\\U#&<Y%$LE\"&<E%&L9\""
+ "'<=&%\\5(%<9!&L1&%,1!(\\-#%,5$%,)!&,!%%,)!%,%!)KQ(&+U%%;M\"$K9$%+U%"
+ "&;M+&KI$%;M#$[A!&;A'$;A\")K5)#K5$#[1!$[!!#[%%&+-\"&K%)#[!!![!!$J]$"
+ "$ZU!\"ZI!!:Q\"#ZU!#Z1%#ZI!#JA!&*A+#ZE\"#J9!$Z1&#J1!#J-!%*)$%Z%#$)Y#"
+ "%I])$)]#$9Y!#9U!\")Q\"#9M!$)M#$YI'#9U!#YA#%99&$I-#\"I9!\"I1!\"I5!\"I)!"
+ "$8U##(Q##I%&!HY!#9!!!I1#\"HY!!))!$)1'!)5!#)-#\"I=!$9=\"%)=$&IE!#YE#"
+ "#YM#()I.!IU#$YY'#Z!%!Z)!#Y]\"#I]!%:%(#J-!%*1#(*5!#J=!#Z9\"\"ZA!#JA!"
+ "#Z=\"#J=!![!!(ZI(#ZQ!%*Y&$:U#'[-&$+!\"#[!!#[%!$ZY\"$*Y\"$*]\"%;5'%[5!"
+ "%;9*&[=!%;A\"$[E!$[E!%+A!$KQ#&+Q!&[I(\"+Y!$;U\"%K]#',%!%L)#%+Y!%<5!"
+ "%\\5#%L1\"%<A!$\\9#%L-#%<5!'<A!&,M$%<M!%L=\"$LM\"%LU!&LM&$LU\"&<Y%$<M!"
+ "&L]&$\\I#%M)!(=%(%<Y!(-)'%]-!(=1')-9+%M=!#=9!&-9\"#=9!'-=!&]A!&ME$"
+ "$ME!$MM!&-A\"$MM!\"-Q!%]Q!%]U!%]Q!$MU!']Y$&N%$%^!!&-]'#>!!$N!!%^!!"
+ "%.%\"'^)$'-U!%^)!&.%!'.)!'.)!%^-!%]]!%^)!'.1!&^5%'^1)'>1!#>-!%^1!"
+ "&>1($N-!(.9*'.1!).1#)^9,&>%#(.1%(^--'>1'&^5*&.5!#>!!#N-!(^)#$N1!"
+ "(^-#'.)!\".!!#N)&&^)%'>9!'.!!'.)%%]]!(>%+%^!!&]]%'.!!'N%#&-U!$ME!"
+ "&=Q#$MQ!$MQ!&]Q%%]I!%]Q!&-=\"$MI!#=I!(-A!$]-\"&M9$$-1$&]1!)=-\"$]1#"
+ ")--&%M-!&=)$'M)$(\\Y!'-!,&=)$%\\Y#&=%$*<Y#%<M!',U#%<E!%L]!'LE!&\\A("
+ "&\\A($L9\"%<9!%,!!&,5$&\\9#&L9\"%<%!%,)!%,%!&<!&%+M!%+Y!&;]\"&KU#(+Q!"
+ "$[M(%;E\"!+]%%[I!'[A%%+=\"%+9!$+5\"![E!%K1$![-!$+5\"%+%\"$;)##[1!&:]+"
+ "$*U&&*]\"$:U$%JM)&:E!$*U\"#ZE\"%:=!\"*=%\"J1!&:5!\"J-!\"J1!%:9!$:)!%:)!"
+ "!Z!!$)]##Z%\"#IY!%IU#%YU#$II#%)Q'#Y9#\"9E#$Y=!\"I=!%I9*#Y5#&9A&#91!"
+ "!(I!\"8Y!$(]$#9!!$9-%#9)$!Y)!#9-$#)1##91!#9='!YA!#IA\"\"IE!%)I($II&"
+ "$)M$#9Q!#IY!%I]&#J!!\"Z!\"#IU%#Z)\"$J)%$:!$$*1#!Z5!$*1&(*9%#J-!$JA$"
+ "#ZA\"$:I##ZQ!$JQ!#ZU!#ZU!$*Y\"\"[!!&K!!#[%!$+)!\"[-!#[)!&;-$$[5!#[1!"
+ "#;I\"$[A!&[9!#[9!%+A!$[I$$KQ#$KQ#%;]!&,-%&L)'&+M!(L%,%;]\"$,)!(,%%"
+ "(,1$%,1!$,5!'<5%$L=''<1*&<A!$<E!%<9!&\\M\"*<Q-%<Q%&-!$#=%!%M%!),]\""
+ "%]-!&M!!$-)$&M)!#=)!%M1!&M-*'M)%'=5((-5')-90'-A\"%]A''-A'%]I!$MM!"
+ "%]I!%]M!%ME!'MY#&]Q!&-A#&-U!%^!*'-]!%]U!'M])&]]%%]Q!#>%!$]Y!&N%$"
+ "%^%!(>)!'.)!%^-!%^-!%^%!&.9!$N1!%^)!'.%!&N1$$^5!&>)\"'>5!%^-!&.5!"
+ "'^E#%]]!)^5&&.5!(N9!&.9!$^A!,^1*%^1!'.)&&>5\"&>1\"$^5!&>=\"&N)$%^1!"
+ "'>1!%^-!%^-%&.9!%^)!'.)!%>)$'^1$&^!%&>!#$N!!$N!!%]Y!#=]!$MY!&>!#"
+ "&]M%&-Y\"'-U&'=E((-Q%%]M!&-I\"&]E+'ME(%MA!%]5\"&MA$&=1)(=9#%]%'&-1#"
+ "%MA!&M-!%M%!&=5((M!%$<]!&M!!'L]!%<U!&<]$%<U!%LQ!%<M!%LE\"%\\Q#%<A!"
+ "%<A!%<=!#,5!'\\1##\\5#%<9!%L1#$\\%##,-!%\\%$&,!!%+Y!'[]-&+M!$[Q)%;U&"
+ "%+M%%+M!(KM('[M-$[A$$;Y\"'+I&%[E!$+9\"'[1%'+-'$+%\"$K)$%;%'$;%##ZY!"
+ "#JY$$*]\"&*U+&ZQ*#JE!%JI(#JE!#*A\"#JI!#Z=\"$:9##Z-\"!Z1!%Z-'$Z)\"$Z%*"
+ "$*1##J!!%I]#%J!\"&)U%$Y]#$9M%#9M!%YI$#YE\"#YA#%9=##9=!\"95&\"I5!#Y5&"
+ "\"8]!\"8]!#HY%!(U!%)1%$I!'\"I1!#I1\"#Y5##I9%\"95##Y=\"#9A!&9A#$)I##9M!"
+ "%IQ)#I]!%IU\"#YY\"\"I]!!J%#\"Z%\"#J)!$J-%$J5)#J1!':1\"$:9$$:=#!ZI(%ZE'"
+ "#ZQ!&ZM*#JM!&*U'$Z]%%*Q'\"Z]!'J]-\"[!!\"[1$!;)\"$+%\"#[1!!+5(%K=$%;-#"
+ "%K=$)K5*&+Q!%;U\"'KQ(\"[E!%;U&&\\!(%+Y!'+]%$[I!%\\!#%,%!%\\-(%<!\"%,-!"
+ "\",1!$,5!%\\=#!<9&&\\E($\\A#%<E!\"<I!(,A-%<M!%\\Q,%M!!%M%!%<Q!$,A!'-%\""
+ "%M!!%M)!&]9+$=%!&--'&]=&'M5)#=9!']9+$M1!&==$%ME!%MA!#M9\"(MA#%]I!"
+ "%]M!)-Y%$]U!%]Q!%]Q!%]U!%]Y!#=]!%]Y!*.-)'^!$&N-$%^-!$N)!%>-#'.)%"
+ "%^-!%^)!(>-!&.9!%^1!&.9!%^!!&.5!&N-#\">5!&>5-&.=!&.9!).9)&.9!&.9!"
+ "$^E!&.A!%.=\"&.9!%^1!&N9#&NA#'>9!&N-##N9!%^1!'^9)%^)!&.9!*NI$'.-!"
+ "'>5!%^-!(>)&&^-%%^-!%^-!(N9!&>%#%^1!(^)\"%]]!)=M,%^)!)=Y%%]]!&N!$"
+ "\"^!#%]M!%^%!%]M!'-U!%MA!(-M!(=I!%]M!(=U!%MA!\"-=*'M5$%==$%ME!%]5'"
+ "%M1!%M1!%M-!%=%$%M)!%=-$$-!)&M%%(,Y,%\\Y\"&LU!%<M!&\\M\"',Q($\\A#%\\E#"
+ "(LE&(LA!%<A!&LI+$,9!$,-!%L5#%,-!%L-\"%,-!%;]\"&,!%&K]'$;Y\"*,-$';U\""
+ "%+Q!'+Q*&KM#$[I!\"[I$#[M$%+5\"%;=\"&K5$$+9\"#[!!#+5\"#K)##+-!$+)\"$+!\""
+ "$JQ%':]$#Z]!\"ZQ!$:M*%*E\"#JI!%Z=&$ZA&$:='$:9$#JI!$:-!#J-!$J-%#J)!"
+ "#Z-\"%:%!$I]%\"YY!$IU%%:-!%IU#\"IM!%YI$%9M%\"9A#$95%\"Y9\"\"I1!\"Y9\"#)-#"
+ "#(Q#\"8]#$8Y\"\"9!$#I%\"$))$$95(\"I5!#9A$$Y9$#Y9&#9E!\"I=!$9E\"#YI&#)M#"
+ "#)U#\"IM!#IY!#I]!&*!!\"J%!#Z%\"$J)\"$Z-&!J1'%J1%&:9!#JI!(*I,\"ZA!$:=#"
+ "$JA$$JI!$:M#$*Q\"$JM!$J]!#:]#$K=#&[!\"%+-)&K),#[!!$[1$$[9%%[9!'K=$"
+ "%;A\"$[A!%+U!$[I!$+M!$+U!$KU#%+Y!$;]\"%<!\"%<)!%L-\"!,-!%+Y!',-%%<5!"
+ "$,5!%<=!%<9!\"<=\"&<-&%<Q!#LE\"%LI\"$,A!%\\Q\"&,I#&]!\"&]!\"&,](&LY&'=%$"
+ "$L]!']!!%]%\"%]-!%M)!&=E$(-=!%ME!%M-!&M=$&=E#&MA)'=U'(-E!!-A!%]M!"
+ "&]I!%]U!%]U!#=Q!\".!!)]U#%]Y!&MQ$'>!!&^-%)N%!%^-!)N%&&^-%$.!$(>-%"
+ "(^)($^!!%^1!'.%!\".-!&.5!$^5!&.I!(>-!&.5!&.9!&.5!&.=!%^)!&.=!&.=!"
+ "$^E!&.M!'.1!&.=!'.1%&.5!#N=!&.=!&.9!&.=!%N9$&.9!'>M&#NA!$^5&*.9\""
+ "&.9!(.9%(^-(%^-!%^1!&N-#$^5!'.-!+.A,&>)\"%^%!%^%!%]M!%^-!'N)('-U!"
+ "(=]!'MY-%^!!(MY\"%]Y!%]I!+-M#(-M+(=U&(-=!&]M!(MQ,&MA$'ME(']=/%M1!"
+ "'M5*(-1'']5&'--\"&M=$$=1!%M)!%])\"$<]!%<Y!&-!#&\\U'%LQ!&<M!%<I!$,=%"
+ "&LY!'LA&&<A%%<=!%<5!%L5\"%<1!&<1!\",)!%,)!$,-!$<-!&<!\"&+]!$<%\"$+U!"
+ "'KQ#!;I\"$[E!%;I\"'[A%$[=!%[A%%;9\"%+9!$[5!\";5\"%+A%$K%$$K!$#Z]!$*U\""
+ "%J])#ZY!$ZQ\"%JQ!$ZU\"#JI!\"JY+$JU!$J5!$Z9\"$:9$!ZA!\"*A\"$J1%#Z-\"&*)!"
+ "#J%!#I]!#J!!#J%!#YQ##9U!$)M'$)M#$)I!\"9M#$9E%')9*\"IA!#I)\"$Y9*%)-\""
+ "#HQ\"$Y%+#)-#%(]\"\"Y%\"!9=\"\"I1!#)!$#I5\"#9-'$)M&$YE&#YA##91!%)Y($9M$"
+ "%)Q'#Z%\"$9Y$\"Z%!$Z!#&:%%#Z)\"$:%$#Z!\"$:1$!Z1!%*=#%JA\"$*Q\"\"ZA!$*E'"
+ "#JI!\"ZU!$JU!$ZI!$*Y\"$J]$#*]\"#Z]!\"+!!([)&$[5!%+-&'+5\"&+-&%+1&%;M\""
+ "%[A!([A*!;=*$[I!%;I&$;U\"&;U'%+Q!#K]#'<)!'<!&#<!\"'\\),&L-\"%;Y\"!<-&"
+ "%<A!&,A$%<=!%<E!$<=!'\\Q,$LQ\"&\\M\"&LU&%<U!'LU!%<]!&LY&'-!(%<]!'M)*"
+ "&\\]&&=)$#=9!&M!%%]-!%M-!$-9$$M9&$-=$&]E!%]I!$ME!%M5!']E$(]I.%]M!"
+ "(-Q!#>!!%]Q!#=Q!%]Y!%]]!#>-!%^)!!>-\"$N)%#>)!(=Y!(>-!'>1&%^-!&N%$"
+ "'N9(&.9!%^1!&.=!&.5!&.9!)^Q&&>5\"(NA,)>=/&.=!&.5!$^=!$^A!&.A!(NA!"
+ "&.A!&.A!'N=\"\">A!&.=!&^A$&.U!&.=!(N5!'NI'&^A$%N=$&.A!(N=!%>-$$^9!"
+ "&.9!$^5!&.I!+N9*&.5!&>5\"&.5!$>1$%^)!%^-!%^-!(N!!$N%!%^%!%^%!&.!!"
+ "!.!%'=]\")M]!'-Y!%]U!$MU!&MQ$(-M!%]M!%]M!%]I!(]E.$MA!'M=$#=5!%MA!"
+ "&M=)#=5!%M1!%]5\"'M-*(-)\"&M%%$=1!(\\]!%\\]\"&,]#&L]!%<M!%\\Q\"&-!$%]%\""
+ "%LM\"%<E!'LA+%<=!'<=!%<=!%L5#%\\9#%<%\"&L5'#<=&$,%!%L!'%+Y!%;]\"%;U\""
+ "&KQ#%;M\"$;I\"$[Q$$[E!%;=\"%+Q!%+=\"&K5$$[5!#[5!$;1##+)\"$[1!#;%\"%:Y#"
+ "$J]'%;!'$JY!$J]$$*Y\"\":U&!:I\"&:E!$ZM%#JA!#ZA!#JE$\"*1%$Z-&&YY!%J-)"
+ "#YY\"#J-!$J!%#)]#$9U$#9U!\"YE\"$II&#YM\"#YI#%9M%\"IA!$95(#99$!9=\"$91("
+ "\"8]#\"8I!&)1-#HU\"!9)\"#9!$\"I1!!I9#\"IE!#I=%#IA\"!IA#&9E&&)I\"$IM\"#9Q!"
+ "#J!!$YU'$)Y#$9M!#J%!\":!##Z-\"$J5!#J%!#J5!$ZE&#J-!&JI!$ZA%#ZQ!#J9!"
+ "&ZM&$ZI%$:Q##JU'\"Z]!$*Y\"$+!\"%:]##K)$#+%!\"[-!#[-!%+5\");9(&;A'%[A$"
+ "$[E!%;=\"&[E!$;Y\"$+Q!&+U!#+U%(+I.%[]$%,)!&L%#$<%&&L1\"%L1+%<5!%L)\""
+ "'<5!%,9$%<=!%<=!%<E%#,I!%LI\"%\\I#&LQ!%\\U\"&\\U'$<Y!&<Y%%M!!&]!!&]%'"
+ "%-)($=)!&M-%)-)!(=5\"&-E\"&]9!)=A'%MA!%MA!&M9$%]M!&]I!(>!!#M]!(-Q!"
+ "(-U*&-Y\"%^)!(=]!$M]!%^!!)=U0&>!\"%^%!%^-!%^)!'M](%^-!(N1!(.-*%^1!"
+ ").9)'>9!'^9#'>5&(>%!(N=!'NM'&N9#*.A''NA''>A!'>9!(NM!&.E!&>E\"(^='"
+ "'>E&#^M'&.9!).E#*.M!&.Q!'>A!&.E!\">M!&.E!&.]!&>A!&.=!#^A\"&.A!&.E!"
+ "&.=!#>=%&>=\"&.9!(>1!&.=!&.5!'>9!&.5!(>1%&>-')N10%^%!&N)$&.)!#>1!"
+ ")>)%%>%#(-U!(=Y&$MQ!(=U'%^%!%]Q!$MM!&MQ$%M1&)=M!*-=$&]E!%M9*$]E\""
+ "%=9$#=A!%M9!$<]!%]-\"(=5-#=1!$=%!(M%$%LU!'--\"&]!!%LM\"%\\U\"%<A!%<M!"
+ "%LI\"&<M%'LE&&,9$(\\90&,)!$LE\"$,5!(<9%$,1!#,)!%\\5#%,!!%<!!%L)#%;M\""
+ "%;M\"&L!'%+Y!%;M'&[I($[A!%KM#$[-!$[A!&+9!$[5!\";-\"#[1!$[-!#[)!%K!!"
+ "#*]\"$*]\"#:Y\"$ZY\"#Z]!$*Q\"%*M##Z=\"$JA$%:A!':9&$*M&$J1\"#Z=)#*1\"&*5("
+ "$Z)&#*%##*!#%*-'$IY&$)Y#$YU'$)I##YM\"#YI##YI#&IA$')=##91!$)I#\"I1!"
+ "#XU&#I)\"#91!$Y%!#I)&%I-+#)1#!Y!!\"I9!\"I='$)A$#9E!%)E!$9I$\"IQ!$J!%"
+ "\"IU!$:)!$:!'%J%)#Z5\"$)Y##J)!\"Z%\"%*-$!:9\"\"Z9!#*9\"$JA!\"ZA!'*A$%JI!"
+ "$JQ!\"ZY!#ZY!\"JY$$;!\"$ZY\"#+%%$K-$$K)$#+%\"#[9!%[9!\"[I!'K5)&[5!$+A!"
+ "%;E&%[I!&[I$%;Q'&KU,%KI''+Y%%;]!)K]\"%L!#%<%\"&\\)#&,-$%<A!%<5!&<9!"
+ "%\\M'%<=!%,=(%,1!%LE\"(<M$$,A!'LQ!%<Q!&\\U\"&\\Y&%\\Y#&M%&%M%!$M%!%])\""
+ "%M)!'-%#'-5\"%]1\"%M5!%M9!&-=#%MA!&]A!%MA!%]Q!%ME!&]M!&=E$%]Q!%]U!"
+ "&MM$%]Y!%]]!%]]!(>!&%^!&%^%!%^)!'.)!%^1!$N%!*^!!'.1!%^1!$^=!%^1!"
+ "$^E!&.E&&.=!&.5!#NA!'>9!'>E!&.5!%>U\")NQ0%^A*&NQ\"'.I%(^M'(NI!'.=%"
+ "(>I+&.I&&.A!&.M!&^I)&.E!)^E!&.A!'>I,'>A!&.=!$^E!&.E!&>I!%.Q'(NI&"
+ "'>A!&.A!&.=!&.=!$^E&&.9!#^5\"'N9'#>-!%^)!$N1!%^-!&>!\"%^)!)N)&'.%!"
+ "$N!!'.)!%ME!$]M!$MY!)-Y)$M]!(=Y!%]Q!']Y))-A+$MQ!&]=!'ME)$ME!(-=!"
+ "$MA!*=9!%M9%#M9\"&M%!%]-\"%M)!%]=!&-%$']%!%-%$'=!)%\\]\"%<Q!(,Q(%<Q!"
+ "%M!&&<=%(\\E0%<A!\",A!%<=!%<9!'<-!%,1!%L5\"&,)!&\\)'%L%#%L!#&[Y$$+M!"
+ "%+]!(+I!&;Y+$+U!%+Q!%+Y!%+E!%;A\"$+5\"%+9\"#K=$\"[=$#[)!$[%%#;-\"$JY!"
+ "#:M#\"[%!#[)!#;%##JI!#ZQ!#ZI!$*Q\"$JM!$JY$$Z)&#J9!#JE!$Z1\"#J1!#J9!"
+ "$J9!$J%!#*%#!J!#!YQ!!YU!#Z%\"$9]$%IQ*#YI##IM\"#IE\"#9A$$Y5'#I9%#)))"
+ "$(]*#H]\"$(Y$#91$#(U##I%%\"I1!\"I5!#99$\"Y5(#IM!#YE#$)I#&9I'$)A##9Q#"
+ "#)Y##YY\"#YQ)$:-##*!\"#Z)\"#J1!#Z)\"\"J1!!*1%%J9)\"J%!%JI!#J9!%:M$!ZQ!"
+ "&:Q($ZE\"#ZU!$*Y\"%*]\"%*]\"&*Q'%+)\"#[)!%+9!\"[1!#[I!\";9\"%[9!'+=\"(;=0"
+ "$;E\"![I!'KM($[Q%$+Q!%+U!&+]%%+]!%<!\"%,!!%\\%(%L)\"&L1&&,1%%<=!%<=!"
+ "&,)!&<=&&<A!%<E!%LI!&\\M\"%LM!&<M!*,U'&LY!%<Q!!-%%%LY!&\\]&'-)\"#M1\""
+ "&]1!%M-!&=1$)-9!&]9&#=A!*-=+*]A('-='%M9!%]]!%]M!%]Q!&MY$%-Y#%]U!"
+ "'.!%(M]-'-Y!%^!!'-U!&.=!%^-!'.)!&.%!&^-%%^)!'>1'$^I!&.5!&.A!$>)$"
+ "(.5*&.=!&>E'&.A!&NA#'>E!'NA''>=!'^I\"(^A\"'.I%#NI!&.I!+^M#'NM'$^M!"
+ "%^M%*.A'&.M!'>M!&.I!&.M!&.M!&^I$\">M!'>E!'>I!&.M!&NI()^I,$^E!(^E'"
+ "&>E!#NI!\">E!)^A!'>E!%^1!&.=!&>5\"#N5!'>5!%N5$&.9!(.A*'^5)#^1'&.)!"
+ "'>-'%^1!$N%!'N!)'.!!$M]!&-Y'*MY&&]M%#ME\"%]I!%]I!%]I!%M=!'-Y&$MI!"
+ "&-=#'-5\"%M9!%M5!\"M=#']-*%]9&$=)!'-%#&M-%&\\Y&&L]&$\\]#$=!!&\\U&%<I!"
+ "%<M!&\\Q\"%<I!',E(%L=\"&<=&!,9!%<9!%,%!\"L1#&\\1(&L1'$<!!&<%%&;]!'[Y-"
+ "%;Q\"*[M%'KQ#$+U!!;=*%;I\"#[=!#;A\"$;=\"#;I\"';9\"%+9\"$[1!%+-&#[)!$*]%"
+ "%ZU)%[1!%:]##+)!#ZU!#JM!$ZI\"$*Q\"!*I!#JA!(*A%#J5!\"Z5!%JA\"$J5!#J-!"
+ "$*-#$I]&&*-($J!!#IY!%)]!$)M#$YQ#$IQ&$IM&$)I$#9A!\"I=$\"9=#\"YM!\"9)#"
+ "$H]##8Y!#(Y!\"I1!#9-$#91!#95$$)9!#9A!#Y9#\")E\"$9E%#9I!%9U!#9E!#J)!"
+ "#J1!$)Y##YQ\"&)Y!!J5&#J)!!*-!#Z9\"#J5!#J=!$Z1&$:=$#Z=\"&ZA+#JI!$*I&"
+ "#ZU!%*Y*#ZU!'+%.#:Y\"$:U$%+%&'J]%$+-!%;9&#[5!%[5!#[=!([=!\"[=!%;E\""
+ "%KU#%[I!$KE#$[I$$+Q!%+]!&;U'&KY'&,!!%,%!$;Y\"&L5'$L5\"&<-!%L%#&<1!"
+ "'<=!$LM\"$\\M#&,E#%<E!%\\M#%\\Q\"&L]!',U##,Y!&L]%\"-%!'L]!)=!-%M-!&M)!"
+ "']-!'-1\"'--\"&-9\")M=-%]9&#=A!!-U!&]5!&MQ$%]Y!&MQ$(=Y!&-]!$MY!%]Y!"
+ ")>!0&]Y%%^%!%>%#(>1!'>1,%^)!*N-%&.5!%^)!'.1!+.5'#^9\"&^9%$.A#'.=%"
+ "'>Q!&^A$&>=\"'.A&(>A+&.M!%.9\"&.=&&.M!#NM!&.I!&.Q!&.I&&.Q!$_)!\"^Q#"
+ ").Q-&?!!(NM!'>Q!&^I$'^U\"'>M!&.]!#^Q!'>U!).I.(N=!&.M!'>I&)^I!'>I!"
+ "&^I$(NA!)^A!&.M&&^9$'^9#&.A!&.I!$^=!'>5!'>5!'>9!%N-%&.5!&.5!&>1\""
+ "'>-&'-Y&#^)\"$^!&'.!!'.!&&-]\"&]=!'=Y'&-Y\"%]Q!&=M#%]Q!%ME!$MA!%ME!"
+ "%]M!%]E!&M9$%M9!(-E!'-1'&=1$%M-&'])!%M%!&M)!%])\"&L]!$=!!),]!%\\U\""
+ "%LM!%<M!%<I!&<E!&\\E'$\\Q#%<E!$,9!%,-!%,1!%,-!%L-##\\5$'<-*#+]!%<!\""
+ "%+]!%+Y!'L!\"'+M*#KU#%;U\"#;M\"\";E&%[A!(+=\"&[5!$[A!&;-'\"[=!#[%!%[!&"
+ "#ZU!\"ZY!$Z]!\"[!!#ZU!#ZQ!%ZU*%:A!%JI!%ZE\"#ZA%$*=\"#*9\"$J=%$J=%#J5!"
+ "#J)!\"Z5!\"Y]%!)]$$9]$&J!*#I]!&9M#!YU!#YM##YI\"$)E!%YE!%)E%%)),\"Y9\""
+ "\"I%!#X]#\"I%!\"I-!\"I%!\"IE$#)5#$)='!)=!#Y=##)1#$IE#\"YE\"%)I!\"IQ!$YQ#"
+ "\"IY!#I]!\"J!!#Z)\"#Z%\"#J%!#J-!$:1!#Z1\"\"Z9!#J=!#J=!$*E\"$JE!!*E($*M\""
+ "%*Q\"\"JY$![!!\"J]#%*]&$+%&#[)!*[)'#[1!&[5-#[5!&;E\"'[9!%+=\"%K=$&KA("
+ "$[I!%;M\"&+M%%;Y\"$;U\"(;E\"&,%%#K]#$[M%#,%%&,!%&\\9#%L1'%<5!'L9&$LA\""
+ "%L=\"%<A!%<A!(,U,%<Y!',I(#,Q!'<U-&,Y#&,M#'-)#$=-!$=%!%])\"%]-!%M-!"
+ "%=-*(M5)&-9\"*-A+%]1'$ME!%ME!%M9!%ME!&MQ$'-M'%ME!%]Q!#>%!%]Q!'M])"
+ "%^!!%]U!\"^!#$N1!'-]+$>)$'.-!'.1!&>1\"&.%!&^9%)^=!(.5$$^=!&.A!&.Q!"
+ "$^E!&.E!$^Q!&.Q!(^Q!'^I#&.A!(>M*$^M!'^E#+NY.\">U!'NM''>Q!(N]&(>U$"
+ "(>U%&.U&&.Y!'.]$(/)().I#(>Y*(^U'&.U!'>I!&.Q!(>U/&.Q!&.I!)^I!&.M!"
+ "&>I!$^A!*.M!#>=%&>I!&NM#$.A#*^E%'>9!(NA!'.=%&.9!(NA!&.=&&>-\"&N1$"
+ "(.1*#^-\"&.-!%]]!)>)*'^!)%^1!#>1!%]Q!%]Y!(-M!&]I!'-A!#=M!$MM!%M=!"
+ ",]E!']9+$MM!#M5\")-9!%M5!(]5$)--!'=-$&]-'%M)!%-9#%M)!&]!'%]%\"(LU%"
+ "'LU!&,U#$LM\"(<I)%<E!&<A%&<)%&<=!*<9)&,5$$,1!%,)!%K]##,%!%L-\"%,%!"
+ "([U-%[Y$&,!)'+Q!$KQ#$;I\"%KE'*;E'%[5!%KE$&[9!%+=\"\";1\"%[1)!;-)\"K)$"
+ "$;%#$K%$#[%!%+!\"$JU!#JQ$\"ZM!$*M\"'ZI##ZA!&*=+&Z9'#J=!#JA!&*5+%:=$"
+ "\"J-!#J-!#9U!$)]##J%!&)]($YY#%9Q%\"II$\"9A#$9I$#9=!%)I+\"IE!#9=$\"I=!"
+ "!(]!#9-!\"Y)\"\"I)!\"I-!\"9-#\")A\"\"IE!\"IA!\"IE!!9Q\"&9M\"$)Y#$9Q!$9Q$%YQ("
+ "#J!!\"J1!#Z!\"$J1!$IY\"#Z-\"%*-'\"*-\"#Z5!#ZA\"#J9!\"ZI!$*E\"#*I\"!Z](%*Y'"
+ "\"ZU$$JY!$+%\"$[)%\"*Y\"&+!'#+%\"&;)$#+1\"$[-$'[5&%;5\"&;='%KU#'+E&&[I!"
+ ")+I&%[M%%;U'&KU#&+Y!$;]\"%KU#%L)#%,!!%\\)#%,-!$,-!%<5!&,1%#<9\"'\\A\""
+ "&L=&$,9!%\\E#(,I-!,I!$LQ\"#\\U#&L]%',Y#&L]!$=%*&M%!%=%%%]-\"%M!!']%!"
+ "%]1!&==$(-1\"&-=\"&MA$#MA!%ME!'MI)%-Q#%ME!%]]!#=Q!$N!!)>%/%]]!*^%!"
+ "!-M!&.%!$N1!$^9&(>)!'>)'%^1!&.1!\"N1'(N9+$^9!(^1-(>5+&.A!'NE''.I%"
+ "&NE#&NI\"&^=$&.Q!&>Y!&>Y!&NQ\"*.Q'&^U)$^Y!'^]\"&^Y#'NM!'>=!&.U!'NY'"
+ "'NY!(^U!*.Y'&.U!&.Q!'^Y\"&.Y!%/!!+>U'!.U!'>E&&>Q!).U''.Q%&.E!$^M!"
+ "'>M!(^Q!&NI#(>M%'.Q%&.A!#^E\"&.A!$^5!)^Q&$^=!'>-&$^A!$N)!'>5!&^5%"
+ "&.5!%^1!).-$'.)%%^)!%^-!'N5(%^!!%-]#$MQ!'-Y!'-U!'-M&'-M!%ME!'-M'"
+ "%]A!%]I!&-M\"%MA!%M=!%M5&\"-1%&-=#%M-!'\\M'$=)!&<]$%M!!(,U#%<Y!(,U#"
+ "%<I!&LY!&\\E\"%LI!%<E!%,=%%<=!&L=!&<-%%L5\"&L5\"%L5\"&<E!%<!!&+]!%<!!"
+ "'+]!#+]!$[A!$K]#&;Q&&[M-\";I\"'[A!$[E!'+A&$[9!&+9\"$[1!$K)$$;1\"$+)!"
+ "#+)\"%[!)#[!!$*]\"$JY!%*M&#JE!%*U&#JM!$*Y&$JI!$:1$#J5!\"Z9!#Z5\"#*1\""
+ "$J-%$J-%#J-!!Z!!#YM#$)]#\"YY\"#)U##9U!&)](#9I#\"YE(\"I9!#IE\"!YA!!Y9$"
+ "!9!\"$I!&#))##)-&\")-\"#9-!#I9\"\")9\"#IA\"#Y=##IA\"&)I,$)I$$)Q$#9U!#9U$"
+ "#)Y\"$*!##J%!%:5!#Z)\"#J-!\"J1!$Z5\"$:9##Z9%$J=!\"Z=!#J=!#JI!&ZA##ZI!"
+ "#ZY!$ZU!$Z]%%*]*%*Y&$[%%%K-$$+)\"$+9!%K)$%[5$#[9!#;=\"#+=)%+M!#[E!"
+ "$KU#$,!!%+Y!%;Y\"%<%\"&;]\"&\\!(#L%#%L)#%<-!',-)'L1+#\\5#%L5\"'<9!%\\9#"
+ "%<I!$<I!%<I!(,I#'LY!'<U)&L]!%<Y!$<]!%M%!&]!\"%M%!$])#&-1#%]1\"&=)$"
+ "&-5#'M9)%M9!&]A!%M=!&-E,%ME!$MU!#=Q!)MU,&]E!&=U#(=Y!(=]!'^!))>!%"
+ "%^%!).1$'>)'%^-!&>!##N=!$^5!'>1&(.9*#NI!%N=$&.9!$^A!#N9!&>E!*NM4"
+ "&.A!&.Q!&.M!#^=\"$^Q!#NE!(^Q!)O%#$^Q!&^U#&.Y!'NY!'^Y\"&.Y!&.Y!*>]-"
+ "'_)(*.]!&.]!&.]!&?%!*?!(&.U!&?!!$^U!\"^Y#&.Y!*?!!&.U!&.]!&N]\"&.I&"
+ "&.]!&.Q!'>U!&.M!&.M!'>I&%.Q!'>A!&.I!&NI\"&>A!&.A!(NA!%^)!&.A!'N-\""
+ "#>-!$N%!%>-$&N-#%^%!&.5!%]]!%^!!$N!!']])%]Y!%]M!)-]%#=Q!%]]!&MY$"
+ "%-=($MI!$M9!&-A\"%]5\"&-A\"&-A#%M-!%]1\"'--#$]%\"%M%!'\\M\"%M)!$,Y$'L]%"
+ "%LU!&\\Q&%<Q!$\\M#%LI\"%LE\"%<=!&L=!%<M!%<9!&<5%&\\1#%\\%#'L5!&,!%%,%!"
+ "',!!$+Q!&[E(%+]!%+Q!#[I!)+M*(K9$&[A)%[=!$[I!%K=$'[5%$;=\"#+1\"$K1$"
+ "&K)!$K!$#[)!\"*]\"$+!&$*Y\"\"[!!$JU!$ZU)#JM$#ZQ!#JA!#J=!%:9%&*=(#Z%\""
+ "%J1&#*9%&*)(!*1$%:%($YY#$9Y$$)U##9Q!%9M%#9M!$Y='#YE#$YA&#)5##99$"
+ "\"I!\"$HQ'\"I=$#))#!I1&\"Y1\"!Y9$\"Y5\"#91!$)A$$)=$$9I%#II\"$IQ&%Z)'$Y]#"
+ "#9]'\"J!!%J!&#J)!#J5!$:%!#J5!$J9!#J9!#JE!$ZE&#:Q#$JE$#JE!!ZM!'*Q/"
+ "!*U!%JY!%*Q\"&K%!%+%\"#[!!$+)\"$+-!$K5#!+%!&;=\"$[=!&[I,$[A!&+E%%KI#"
+ "%+M!&;E&%;U\"$+U!%KY#%K]#%,%!$<)!$\\)#&\\5(&\\1(&L)#$,5!&\\1(&,I$'\\A,"
+ "%LE!(<M.&,I$%<U!&,Y#%<U!&L]&)--!'L]!%\\U#%M%!%M-!&M9*$]1\"']1*&M)%"
+ "$MA!'ME$$]9\"%MA!&ME$'-I!#MQ!&]M!'=Q\"&=I#%]U!%.%\"(>!!%]]!%^-!%]]!"
+ "(>!!$>)%%N5%'^-)'>1&!.9!$N1!'>9&(.=$&.I!&.=!%^A&&.I!&.E!&.E!&.E!"
+ "(NM,'>=&&NQ\"(>A+&?!!)^U,&.U!&?1!*^Y$$.Q#-_-+$^]!&?!!&.]!&.]!&.]!"
+ "&?!!$_!!'O-!&^Y#&?-!(_%!'O-!&?!!'^]'%^]%$_!!%N]$*.]!&.Y!&?!!&.Y!"
+ "(^U!$^U!(^Y!'NQ'*NQ##.Q)*.M!&.I&(.E)*NA0&.I!&.=!$^9!(^-\"%^1!&^9%"
+ "&.=!&.9!#N9!$N1!%.9\"+^)+%^)!&.%!%^!!&N-)'.!%&=]#$MQ!&-]!(-U!&=E$"
+ "'-A'%]I!(]A$%MA!&-=\"#=-!&-E\"$]9'']1*#=A!%]-\"%-1$#M%\"%<U!&--#&<Q%"
+ "'\\Q+'\\]&%<Q!#\\M#%<A!&<A&%LE\"$LA\"&LE&#L=#%,1!(,5(&,1$$L%#\"\\)$%+Q!"
+ "#[Y$'\\%,#<!\"&+M!$,!!\"[Q%$+Q!)+M!&[=)'[A%$+1\"%+=\"&+=\"!+5!$;1\"%;1\""
+ "#[1!#[)!#K1'#ZU!%*U&$Z]%#ZU!#ZQ!#JM!$:M$\"ZE!$:Q#%:5(#Z=!%:)!%JM)"
+ "#J9!#:-&#J)!#Z%\"$:!$$YY'$IM&%9Y)$9U!\")Q\"&IQ.#9=!#IQ!$9M$#9A!#I=%"
+ "$)%$$)!!\"I)!#)1#$)%!!)1'#I=%#Y9&$IA%$IE##Y9#\"IE!%IM#$YY#$9I$&9Q'"
+ "\"Y]$#)]\"$Y]'#J-!%JA)#J1$$Z5&$:1!#ZA\"%JA)!*M!%*E+'ZM+$JM!$JE%$*M\""
+ "#ZQ!#Z]!\"K!$&+)\"&ZY\"$K)$\"*Y\"#[5!#[1!$[)!%K=#%+5\"%[M)%+Q!%;I\"%;A\""
+ "$+M!$;I\"([M)$+Y!%K]#&;].%,%!&,%!&\\5($+]!#<5%%<9!%\\5#%<=!%<A!%,9)"
+ "%<=!%LI\"%<I!&<E!#,Q!%<U!'<Y)%LQ!&=-$\"-%!%M-!%M)!%]-!%M-!%M5!%M1!"
+ "%]5\"%==$$M=+&-E\"%]]!$M=!\"-U!'-Y!&MQ$&.!!'MY#%]]!%M]%%>!$'.1!&N-$"
+ "%^%!#^!\"&.5!$N1!)>5*&>E\"&.A!&.=!%^1!'.=%$^M!&NA#).I\"&.M!&.U!)^M1"
+ "'>Q+'>Q&(.U)&.M!&.Q!$_%!&>]!&.Y!&N]\"&.Y!'O!!&_!)&?!!(_!!&?-!#O1!"
+ "'_)(&O!\"'N]!'?%%&_9\"&O%\"&?!!&.]!&_!#%O!#$.Y#'/!*%_%$&.Q!'N]!&.]!"
+ ").]-+NU'*.U!&.Y&&.Y!%>Q#$^Y!&_!#'NI!'>I!&NI\")NA%&.E!'^)*(.A$(.=$"
+ "&.9!&N-#'>9!&^1%%^)!#>-!&>)\"\">!!%^)!%]]!%]]!%.!\"%]Y!(-U%(=Y!%]]!"
+ "%ME!%]I!+M5'%M9!#M9!(==\"&-5#%M5!&-9\"%]I!&]=!%M%!,M=&'LM!(]!!&\\]&"
+ "&<Y$%\\U\"%<E!$\\I'$<M!#,M!',I(&\\E\"$LA\"'L9\"%\\=#\",5!&,5%%<1!!L!#&\\%("
+ "(<%!%,!!$+Y!%+Y!#KU#%+Q!!;I\"$[I!%+M!([A*%KA#%+M!$[-!%[5!%;1'\"Z]$"
+ "$+-\"$JY!%;)#$;!#!*]!%Z]%%*U'$*U\"\"ZY!'*M$$*=##JE!$*A\"%:=(\"J9$#J1!"
+ "#J1!$J-%\"*1\"$:)!'*%-$Z!\"$:!$&Y],$)U#$)Q$$9M!%)I$#9I#$9A$$YE#$)A#"
+ "&)1#\"Y%#\"Y-\"\"I5!!Y9!\"I1!\"II!!9A\"#YA##YE#!YU!!YM!$)Q#&)Q%#)M#&IY'"
+ "#Z!\"$9Y!#J%$$*%##J5!$:!!\"ZE!#Z5\"$Z9\"#ZA!&:9!#ZI\"$:I$#ZI\"$ZM\"!:Q\""
+ "#*]!#ZU!#Z]!%*]\"$;%\"$+!\"#[1$%K9$$[5!%K9$#[9!%K=($[I!\";A\"%+U!$;M#"
+ "$+U!%[M$%,%!#;Y\"';M#%+]!#\\!$%\\)$%,%!'<9*\",=!%<5!%L5#&<1!(LA!&\\M'"
+ "$,A%&,M(%LM\"%\\Q#$\\U#%<]!%\\]\"'L]!%<]!%M!!$]-\"$M-!']-!&M1%&]1&&M9$"
+ "%M5!(]9.%ME!%M=!$MI!'-]&%]U!'-U!%]Q!#]M\"(=Y!*MY!'.!%&.)!%^!!#N%&"
+ "'.%!%^-!%^-!&^5%&.=!'>9!'^=(+NE4$.I#&.E&'^M\"'^=(!>I''>M&#^Q\"'NY!"
+ "&.Y!&.]!$_!!&.Y!&.]!'^U(&^Y#&NU\"'O!'!/!!&.]!&?!!%/-!(_)!&?%!*>Y3"
+ "&?%!&?%!$_)!'O)!*_%#%_%%&?)!'/)$&/9%&?)!'O1!'O)!&?!!&O!\"&?!!&^]#"
+ "%/-!&.]!'>Q!&.Q!'NY!*.U!*^M**.M2)?!('NE!#NE!&.I!$^A!'^E\"#NA!&N=#"
+ ")>=/'.=&$^9!'.!!#>1!%>-$'>-!&N%$$N)!%^-!$^%!%^!!%]Y!%]M!%]Q!%]Q!"
+ "'MM.%]M!&-I\"#=E!&]A%%M9!&-=\"$]9\"&-A\"(=1#\"M-#(])&&=9$%M%!'\\Y!%M%!"
+ "%\\]\"$L]\"%LQ!&LM&%,]#%<M!$<M!$\\E#%<A%$<E!&L1'%<5!%<%\"%,%!%\\%#$,!%"
+ "%,%!%+Y!(;U+%;M\"&+Y%%KY'#;Q\"$KI#%+I%%+M!&K=(&KU'#[9!&[9!&+)+%;1\""
+ "'+)'$+)!%;%#$;!\"#Z]($+!\"!*Y!$*U\"\"ZM%\"JQ##JI!%:E$#ZA\"$*A\"'*9$%:5%"
+ "#J9!\":-\"#J5!$J1%#J1!%*!$$:-'$9Y$$9U!$9]!$9Y!%9Q\"#YQ%#IE$$)I#\"IA!"
+ "#I%#\"9-##)-#%I)!$Y5'!Y9!%9A,#9E!#YI#$9E!$)E#!Y=!%YQ$$YU'$9I%$)Y#"
+ "!Y]!\"YY\"#*%\"#9U!$J)%%:-!#JA!#J-!&ZM+#:9#\"ZA!#ZA\"#ZE\"#ZE\"\"JQ$#JM!"
+ "#ZQ!![5!#[!!%+!*$[%%'[)&#[)!$+1\"%+5\"$K9#!;=&&[=!%;5#$;M\"&KI($;I\""
+ "$KU#(;U\"%+M!%+]%%KU#%+]!%<%\"$,)!%L-\"$,5!$,5!%<=!%L9\"%<E!\"<=\"#LE\""
+ "%<Q!%<M!%<Q!%]%\"(LU%%<Y!&\\U\"%M!!%M)!&M!%&])&%M)!(-A!&-9\"&]1!&-%$"
+ "&-=\"%]A!$=A$'-A\"&MI$(]M$%]M!$MU!(M]-&]I*'=M#'>!!'=U''^%)'.%!%^%!"
+ "%^-!'>)'%^-!(^)(&.)'&.=!&.5!\"N5\"\">I!$^A!$^I!$^E!&>A')NY$&.Q!+NU!"
+ "\">U!)>Y)%^A&).U-(_%!&.]!'/5$&.Q!$_%!&?)!&?%!&O-!&?!!#O-!&?)!$_)!"
+ "(_%!&_)#&?-!#O!!&?)!&?)!&?%!(/A!*?)!'O),(_)!(>Y*'_%((^U!#O%!+>Q!"
+ "(O!%(_%!%?%\"&.]!&.]!&?!!'.M%&>U!$^U!'NM'\">M!*NM)'>I!(^Q!&.E!-NA&"
+ "%>=(&.A!&.9!%N5%&>5\"%^1!$>-$%^)!%^-!'.!!#>)!,>!)&=]#$]Y!&=E#$MM!"
+ "(=Y&&=U#\"MU\"#=I!'-I&&]=!&-A\"(]A$%]5!%M5!%]5\"(--'&=)$\"-%!(LQ!%]!\""
+ "&LY!&<Y$%\\U#'\\U\"#,Q!%<M!(LI%%<E!(\\=(%,1!&<E!'<5!%L5\"%L1\"%<%!$,)!"
+ "'\\%,&KY##,!!%L%#(+Q!%+Y!$+Y!%[Q)%[E$$[E!$[A!&+=!%;-\"#[9!#[5!&[=%"
+ "#+-\"\"[)!%K)$%[)!&+!&$Z]%$K!$#*U\"#ZQ!![!!#ZM%\"*U\"!ZE!#ZE%#J=!!*9!"
+ "\"J5#(:1'\"Z%$#Z)\"%J)\"\"Z!!%9]%$:)!#)Y#$)Q'&IY.%9M\"#YE\"#IA!$)A$#Y5#"
+ "%9)&#))#\"Y-\"\"I!!\"Y=\"\"I9!#99$$)=$#9A!$)Q$$IQ%$IE&#IQ!#YQ\"#9Y#\"I]!"
+ "$:1$(:%.#J)!%Z1#\"*1\"#J%!#J1!%Z=##*=\"$*9#$:E#$JQ!#ZU!%JQ%$*M\"$ZQ!"
+ "%:Q$#ZU!#[!!![!!#[)!#[-!$+%\"#[9!$[5!%+9!%+=\"%;I\"%;E\"&[I$#;M##KM#"
+ "(;U&&K]+&[Y$%,!!&+U%',)%&,)%%,)!#,-!',1%)\\%-&<9!%<9!%<=!&,E#&,E("
+ "$LM\"%<M!&=)$&M%!'<U)&<Y$',Q(%M1&%]%\"'-1'$]5'&]5!(=5\"%]5\"$])#(==\""
+ "$]A\"%]I!'-Q&$M=!$MM!']M)\"-Y!&-U!%]U!(-Y%(N!!$MU!%^-!'.-!$N1!$N-!"
+ "&^1%)^5,&.5!&.9!&.=!\"^=(#N9!$^E&'>5&&.Q!&.Y!&.M!&.Q!+>A'$^Q!&.U!"
+ "(^Y!)^U,'>U!&?)!'N]'#N]!(_%!$_)!&NU\"&.]!'O)'&?%!&?5!&?1!'/9$%/5!"
+ "&_-#$^]!%/5!'_A''O-!&?1!'/1$'/5$*_1)+O-!&?-!%/-!'O)!&?)!)?5\")?%("
+ "$O!%*O!/&?%!&.]!'O!!%/!!$^Y!'>U!'.Y$'NY!(^Q!&.M!$^M!&>1\"&.E!+>M!"
+ "&>A\"&.9!&.9!&>=\"&.5!&.-!&.9!&N-)(.1*'.-!&>%\"&]]%%]Y!%]]!'>!')^!("
+ "(-M!%]Q!$]M!%]I!\"-E!#MA!'-1'%M=!%M9!%=-$&=1$(=1('=!)%]%\"%M%!'=%("
+ "']!!%LU!%M!!*<A-%LU!&,I#'<I)%<A!%<U!*<=)'L-\"&<E*%<5!&\\-(%,!!%L)\""
+ "%L)\"$,%%$,)!&<!&%KU#%,!!&[Q-$+M!%[Q%';I+%;E\"$[5!%KA#\"[5!%[5!&+1&"
+ "\"[)!%K9(%K-(![)!#[!!#;!\"'*Y'#ZU!$ZQ\"$:E'#J=!#ZI\"$J9!$*E\"#ZE\"\"Z=!"
+ "%:1$#:9'#J-!%J)&#Z%\"$:%$$*!#$I]\"%)Y!#IU$$9Q$#9A!#9I!$9A%#I=%$)=!"
+ "'(U)$Y)%$))'#)9##)E#\"99##9=$$)=$#YA#$II\"%9=)&)U,%9Y&&)U%!)Q!$I]%"
+ "\"Z-!&:%)\"J%'#J%!$:)$!Z1!\"Z9!$Z9&#J9!':I)$:E#$JA%%*M'%JQ!$ZY%\"Z]!"
+ "#Z]!#ZY!%+)\"%K!!\"[-!%+1&#[5!\"[5!)+5+$[E!%KA$%[A%'[A!'+E\"%;M'%+U!"
+ "$;Y\"%,%!%,%!%+]!#,!!&,!%(,%.&<-!&<-%$KY#%<5!&\\5#$,A!%LA\"%LA\"#\\Y#"
+ "%\\U\"%LI+!\\A$\"<U\"%<U!%LM!'M!*%M%!&,Y,#=)!%M1!&-A\"$M5!#M1'%]='%M9!"
+ "%M=!%]A!&]M!'=M(%]M!'-U&%]Q!'-Y!&-Y'&-Y!%^-!'^%$%^)!$^5!%^)!%>1#"
+ "&.5!&N5#&.9!'.I/&.A!&.=!%.I!&.E!%NI$#^M!&.E!'NU!&.Y!&^A$&.Y!#>Y%"
+ "'N]''^]!&.M!%O%#&?%!$O5$%/-!&?)!(_!!%/-!)/5-%/-!&?1!'O)!#O1!&?1!"
+ "$?1#*_-)&?-!&_1#(?))'_1!&O-\"*?1'&?!!*?5''O1!&?9!(O9$&?%!'?)%&?)!"
+ "'/)$#NY!&?5!&?!!&.U!,/)/'O%!'/!$&.Y!&.Q!&.M!(NQ&&.M!'O!!(.E)&^E)"
+ "&.=!&.A!&N=#&.=!'^5#&.5!(^1-%^1!$.-#$N)!&MU$&]]%%.!\")M]!%]]!(=],"
+ "#=Q!%MQ$%]Q!\"-Q!%ME!%MA!%ME!$M=!%M9!&-=\"%]=!$]=\"%]5!#=)!'])+#]%#"
+ "&M!%(]%!)\\Y!&LQ!%LM\"%\\Q\"$<E!%\\I#&LE&',A(&\\E(%\\9#&<A%&\\5#%<9!%,-!"
+ "%,-!'+]!&L!#%,!!%+Y!%+Y!&+U!&[Q)$;M\"%[E!(+=&'K=$'+=\"$[1!'[9!%+1*"
+ "$+9\"#[1!\"[)!#[%!%+!&%:A!#ZQ!$:Y#\"*]!&ZM##ZI%#ZQ!\"Z9!#JI!%:5!#J9$"
+ "!Z5!#J%!#J1!$J9%\"J)!#J!!$:)$$)]#\"IY!&)]$#YM#\"YM!!YI!$)A!#I9\"\"9I#"
+ "$H]&#I%%\"I-!!Y-!#)5#!)9!#)=&#9A!#YE)\"YA\"%)E'#)Q&$IQ%#9U!$Z!&#I]!"
+ "\"*!\"&:%&#J%!%J5)!Z=!%:5!%Z9*$:M#'*=%#J9!#ZA!%*I\"%*Y'$*Q\"#ZQ!$*]\""
+ "$ZY)\"*]!$[%!![!(\"[)!$+-!$+9%%[5$$[5!$;M\"%+=!%K1$$[E!&;I\"$;E\"!+]%"
+ "\"+U!%+M!(+]!#+]%%L%#&<%&$L1#)L-!#,%!'L5\"%<A!&<=&%<=!%<A!&\\A(%LE\""
+ "%<M!&<U$%<U!'<Q)$,Y)',](&<]$',]'%])\"*==&%M1!%M5!(=M,#M-\"&]=&'=I#"
+ "%]E&%ME!%]U!%]A!%M9!%]U!%]U!'.%%%^!!$N!!&-]\"&>%\"'.%&'N-('>1''.1!"
+ "%^)!)^9&&>9\"\">=!'>=!'>E!&.E!#^5\"&^Q#\">Y!'.Y%#NM!->Y*'^Y\"#NY!&.U!"
+ "$_%!&?!!%/5!&?1!#O)!&?)!&.Y!&/)&'_-(&?-!)/1!(?1$&_5\")/1!(/=\"(O5*"
+ "&O%\"&?A+%/1'%/5!&?9!&?5!)?5(&O)\"&?5!&?A!&?5!&?9!&?9!#O)!&?)!)/-!"
+ "&?)!)/)''/!$&?-!'NY!(_%!&?!!)/!-'>Q!$^Y&&.M!&?!!&.U!).A#'NM'(NI!"
+ "&.A!&.I!%N=$+>9((N5!'.A%&.5!%.-\"'.1%%^-!&>%#&=Y#%^%!*^!''-]!%]I!"
+ "%]Q!'>%'&-Q\"$MM!%]M!&M5%$=9!%]I!&-9\"&-E\"'=5(&-)#&-A\"%M5!&]5!%]-\""
+ "&-%#']%&%<Y!!,Y!),Q#$LY\"%LM\"&LY!'\\M\"*<%+&L9'&,I$%<9!&L)'$,-!&,-$"
+ "&,)!#L!#',!!%,!!&[])%;]\"&+Y%$[Q$%;I&%[M%%+E!%[=%&;A&&+=&&K=($;5\""
+ "%[!&#[)!%;)'#[%!$;!\"&;-$#Z]!\"ZU!$K!$!ZM!#ZU!$JI$&*U\"#JA!&J=*\"Z9!"
+ "$*1\"#JM!#Z5\"#J1!$J1%%9])%J!#\"YQ\"%J%*$Z)&$)Q#%)Q$$9U!$)A'#9E!%)A'"
+ "\"I%!\"Y%#!)-!\"I1!$9E!!Y9!$9A($IA%#Y1#$IE%\"YE\"\"YQ!$9U$$)Y##9U!$)]#"
+ "#J)!\"Z%\"$:-$%:-)%*)##J9!#ZA\"$*A\"$*A#$ZA\"#ZE\"%:I$%JM)%ZU!%:U##ZY!"
+ "(J]&![!$$[)!!+)!#[%!#[9!%;1\"%[1!%K%!$[=!$;E\"%KE#%;Q\"!;Y&#[I!%;M'"
+ "$+Q!%;Y\"%+Y!%+]!$\\)#$<)&%L)#$<%\"%L-\"#<5\"%,1!%,-!$<A!#,E!%<M&&<M%"
+ "(LU/&<M!%<Q!\"<Y!%M!!'-!('-!'%<Q!$])\"&M)!,-9$%M-!(]9$%]9''M=$&]A!"
+ "%]I!$ME!$MI!&-M\"\"-Q%%]U!#=Y!*-])%]Y!%^)!$N%!(>%&$^1!$N%!%^1!\">5!"
+ "\"N)\"&.5!&>9\"&.A!&.I!$^E!&.Q!&.Q!&.I!'NY!$^U!&^U$(^U!(^Y!(_)!&.]!"
+ "#NU!&N]\"&.]!&O1!%/5!&?-!*/!!&?=!%?1\"%/1!'O9&%_9*&?1!*?9!&?9!%/-!"
+ "&O1!%/=!)O9\"'/-$&O5!'_5'&_9\"&?E!&_M\"#OA!&_5#&?-!,_5&&?!!'O1!)_A*"
+ "&?5!(_-+'O)!&?)!%O)#'?-%&?!!%_!$\">]!&?)!&.Y!#NU!'>U!&.M!'>I&&.M!"
+ "&.I!'.E+&.A!&.A!&.9!&.A!$N1!#N=!'.1!%^-!'^))'.)!\"-Q!&>%#%]]!&.!!"
+ "$MU!\".%!'-A\"%]Q!%-M#']=%'-E''=A(%M=!&-9\"$]1\"%M5!(])/+M%3%M%!%]!\""
+ ")=='%]!\"\",M!%\\E##\\U#$\\E#%<M!&L]&%LI\"&LE!%<A!&\\A#%<9!$L=\"'L5&%L-\""
+ "&<A%%,)!&L1\"&+]%%L1\"&;U\"(+Y!';]!$+Q!%KI'$[I!'+=*%;A\"%;M\"%K1,%;5\""
+ "&+1&&+-.\"K)##+5!!:U\"%JY$#[!!%;!$#ZQ!&JM!%:M$#JI!\"Z=$$:M#$JQ!$*=#"
+ "#ZI\"&ZI\"#Z1&$:1'\"J1!#J)!$:!!#I]!$)Q##YY\"#Z!\"$)I##*!##9E!$9A%#9A!"
+ "#Y-#\"))\"\"91#\"I9!!YE!#Y9&#I5\"$95%$II#\")A\"#YU\"#:-&%YM(#)Y)\"I]!#Z)\""
+ "#J!!%*%##J5!#J-!$J-%\"Z9!$:=#$JM!#JA!&:=(&*M'&ZE'#*I\"$*M\"$:U$$[)!"
+ "$Z]%#:Q#%+%&#[-!#;-\"%;5#!;1\"#;9\"$[=!$+1\"$[I!%[E$#[A!$+Q!%KE'$<%!"
+ "$+U%&KU#&,!!)<!!\",)!&<)!%K]#&,!%&L-'&LI&%<9%(,I,'<A*(\\Q!),A(%<M!"
+ "%<Q!*,Q'%<E!),]\"%<M!(-!-%M!!#=9!)-9!%=-)'-1'&==(&]=!&-A\"*MI'&-I("
+ "%MA!&ME$&MQ$(-M+'-M'%^-!$MY!&-]!&.=!'-M&'.)!%^-!%^)!(.5*&.5!&.9!"
+ "$N-!&N5#&.I!&.=!$^9!'.I%%.M!&.Y!&.U!'>U!#NU!(>]$$_%!'?!%'.]/#O%!"
+ "&?-!&?)!&O)!#O1!\"?9!&?=!&O1(&?1!'?=%&_5\"&O=')/E!&?5!&?5!(/M!&?=!"
+ "%/=!&?A!'?=%&O=!'O=&&?=!&?9!)/A,&?=!)?=(%/9!&?9!&_9)(OA+'/1$&?)!"
+ "&?1!&?=!)/-!#O-!(?))%/-!$/%-&?%!&.U!#O)!#O!!(^]!&.I!'.Q*(.Q$&.U!"
+ "&.I!&.I!&>E!'.-%&.=!&.9!(N9!%^-!'NA!$>5)*N)%%]Y!'.-!(>%!)M]!%^!!"
+ "'MY#$]]&%]U!&=Q#%]M!$=E$\"-I!#=A!%]A!%M=!+M=!%]I!(-1+'-)\"'])+'--'"
+ "%]-!%M!&\"<]\"',Q#$\\I#'<=!$\\I#%LQ!\",I!%LI\"%\\A#%L=\"$,=!&<1!%L5'&LA\""
+ "%,!!%\\)##<1\"#+Y!&+]!'+Y!&L!'%[E!$[E!%+]%%;E\"%[E$'KE($[=!$[5!&[M-"
+ "#[1!%;5\"%+%\"$;5\"%[%%%;!$#[%!#[!!$:Q$#JI!\"JM##ZA\"%ZI*\"ZE!%*=&$JE("
+ "\"Z9!$J9!$J5!#J%!$*!##J1!%I]\"#J!!%:%(#)M#%9]%#9Q!$9M%#YM##IE\"#I=!"
+ "%I)(\"Y1\"%I5*%)-%&9A*$Y=#\"II!%IA##9A!#II!#YI#%9U%$)Y##IY!$:-#$IU\""
+ "$:5$#J-!$J1%#Z)\"#J-!#J%!\"Z9!#Z=\"\"ZA!%ZQ&%*Q'$ZM\"$:I$'ZU\"!:A\"#[!!"
+ "\"Z]!#[!!#[%!#[%!![9!$+=!$+5!%[9!&+M%%+A%&;A&![I!$[I!'+M!$K]#';U+"
+ "%KM#&+]!&\\%#$,%!%<9!$<)\"',5-%\\9#%LM\"'<5*&LA\"%\\A##,5!$LA\"$LA\"&\\Q&"
+ "%<E!&\\Y&%\\U##,]!&,]#%<Y!%<]!'-1\"(=1(%]5\"&M5$%M-!(=9,$MA&%M9!%]M!"
+ "%]I!%]Q!%]Q!%ME!'-U!%]Y!%^!!%^)!&]Y%'>)'%^%!%^!!%^1!\">-!(>%!\".1!"
+ "&^9$&.I!&NE#%^I%'>E&&.M!&>M!$^Q!%>]\"%>U((.Y)'O!!&.U!&.]!&?)!&?-!"
+ "&?-!#O)!&?)!$_!!)/%!)/E!&?5!%/9!#O=!&?9!&?E!&?=!&_E\"&?=!%/E!&_M("
+ "&_A\"&OE!'_A!'/U#&?5!'?E$(O9$)_A#&?9!&?A!&_A\"&?=!)?-.&?9!&?=!&?5!"
+ "&_%#'?5%&?1!(/1)&?1!'O)!&?)!&O%\"$.Y##/1$&.]!'>E!$^Y!&.U!)NU/\">]!"
+ "*.M!&.Q!&.I!&^I$&.M!(.A*(^-.&.A!'N5'&.=!&>%(&.-!\".%!%^!!&-]\")]]("
+ "$MY!']Y%&-U\"'-U!']M*%]I!&-I\"%ME!%ME!$]-\"%M=!#=5!%]5\"'M-.%]1\"&M%!"
+ "%]!\"'-!'%L]!%M%!'M!*$<U!&LQ&'\\I\"'\\I\"&<I!%<A!\",A!#,=!$\\A#%<=!%L5\""
+ "',-$%<%&%,%!&;Q/#,%!(;]\"&L!'%;]\"&KQ+$;M\"%+U!$;E*&[A$$[9!$+=&%+E!"
+ "$+1\"%+1\"#[9!%;)#%K)$#+!\"#ZY!#ZI\"%JQ)#ZU!$*A\"#ZI!#Z9\"#JE!!ZA!\"*E!"
+ "!*=!#J=!$:5$$:%$&J-&\"J-!#J%$$*!#$)]##)Y\"#YQ##IU!#9E!$)I#$IE&$I=\""
+ "!Y)!\"Y-\"#Y=&#)%)#Y9#!)=!&99*#IE%%)A'$9E\"%)Y!#J!!$)U#%)U$$J)\"#J!!"
+ "#IU\"#:)#$J1\"':1\"&:5!&:=,$*5\"$JA!\"ZA!#JE!%ZQ*$*M\"$*M\"$*E\"#ZY!#*U\""
+ "#*Y\"#ZU!#[%!%+%\"';5(#[5!$[5%%[=!&[=!$[5!&[I!%;E\"%+E!$KM#$+Q!%+U!"
+ "%+]!&+M&&\\%($<%\"%<!!%L)\"%L1\"#,1%%L-\"%L-\"%L9\"&L=!%,1!%LI!%\\M#%<M!"
+ "&<M!$<U&'=!$%<Y!&M%&%M)!'])&%\\Y#&-A\"']9+'=5#%=M$&-=#(M=)%MA!&-E\""
+ "%ME!!-E&%^!!%]U!%]M!&]U%!-]!%]]!%=Y)(=Y!%^-!'>A!'.)&&.5!$^9!&.9!"
+ "&.9!(^A!)^E!&.I!&.U!&.A!&^U#'.Y$#^I\"&?!!'NY!'.]%%/-!&?)!'O%''O)!"
+ "'O-!(_)!&?-!)?1))?5!'_9!&?E!)?I!&?=!#O1!&/E%'/A##OA!)?E'*OA!*_U("
+ "&OI')_A*'_E!)/9!#OA!(/A!+_E!'_I!)/A!*O=!'_A!&_=\"%/=!&?=!&?-!'/9$"
+ "#O9!'?5*%?5\",_1&&_1)'>Y&'/-$&O-!&.Y!&?)!$_%!'>]&$^M!$^]!&.U!+.Q,"
+ "&.U!(NI!)^I&&.Y!&.E!(.A)&.9!&.9!'>1&'N%\"%^1!$N)!%N-%'.%!\".1!'.!!"
+ "&=M$%^-!&]Q%'-]!%]U!#=E!(-M%&=E#$ME!)MA-(=I,%M9!'=9('=1-$=-!']5!"
+ "%-=#%M)!'-!(%<]!&LY&$<U!%\\Q\"%,U)$LM\"&\\U\"$<I!%LA\"%<=!&L9&#<!\"&,1%"
+ "&<1!$\\-(&L)'#<%\"&+]%%+Y!%[Y$%+U!#[E!%[E!#+9!#[I!%[=!%;=&%;=\"(+9\""
+ "&[5%$[9$#[-!$;=\"#[%!#[-!%K!!\"+!\"%JQ$&[%!%JY)$ZA&$*M\"#ZI\"#ZE\"$J5!"
+ "#J9!#*1\"#J=!$:1!#J5%!Z)!%IY&\"YQ\"%9],%:)%%IU\"$)Y#%9A\"\"II!$Y1'\"9E#"
+ "\"I-!#Y=&#)9#!Y9!$Y9'#YE#&YQ!#YE\"#95!#)I##)Q#!)Q$&9U-$IE%$*!&#Z%\""
+ "$:%$$J9%\"*%\"#*=\"$J5!#J9!$J=%!ZA!#JA!\"ZI!$:I'%JE!#ZQ!#[!!#ZU!$*Y&"
+ "&+!&#[%!#[)!&+5&%K%!$[1($[=!$+9\"%+5\"%KE#%KI#%;E\"&+M*!KU#&KQ#\";I\""
+ "%+U%%+]!&\\!(%,!!&,)!&L-\"&,1%%<9!&L5&&<9!$,=!&<=!&\\E,%LI\"%<M!+\\Y*"
+ "'<])*,U,%<I!%=%%$=!!&M%%%M1!#]!$&-1#(]9$$=1!(M5.)M9-\"-1!%]A&(=I!"
+ "#MM!%]Q!!=Y'*MU!&-Y!'-Y!%^!!(.%%'.)!$N-!%>-$&N=#'N5').5/*^A%(>5+"
+ "(^A-(^E-$>1*&.=!&^M$#^E\"&.Q!(NU&(N]+&NY'\"NU!*_!#&.]!&?-!&_)#&?-!"
+ "(_1,&O1!&?-!&?=!&?=!&O9!&?=+%?A!%/=!&?E!'_A!*_Y!'_A!*O=!*_E(&OI!"
+ "&_I\"+_=!'?I$&?E!%/]!&OI!'_I!&OU!)/E!&?A!*OE!'_E!-?I!#O=!'_A!'_A!"
+ "#O=!&O-\"&OQ!&/Q$)/5!&?=!&?)!&?E!%/)!%/%!$_!!&.]!&.]!&?%!(/)('>U!"
+ "(^Q!'_!(*>U\"&.M!&>E!)^E!(>A&'.5&'>=&'.I*(N5,&.5!%^%!$>)*%^)!'^%)"
+ "\".!!'.!!%^!!\"-U!&]M!%]Q!&=Q(#=I!$=9!%MA!$M=!$]9\"'-9\"%]M!$]1\"']-!"
+ "%M%!'M)$*-!!$L]\"&,Y(%-%$%\\U\"%\\Y\"%LM\"&<I%&\\I\"%\\A#$L=\"&<A%&LA&#L1#"
+ "%\\%#$,)!$<1%$,)!\"KY#&KI#&[I!%+U!$+Q!#+Q!&+M)&;I\"&;E\"&[I!%KQ#(;9#"
+ "%+5&$+1\"$+-!$;)#%+!\"!+-!$;%'\";!*$*Y\"#ZU!\"JQ$'*Q,!Z=!&:9%#JA!%:5$"
+ "#JI!$:1##*5\"!*1$#J-!!*5$$*%#$9]$#9U!$9Y$&)]!#9A!#91!#YA\"%YM+#9A!"
+ "!Y1!!)1!\"I-!&Y)&#Y9##IE$()=(%9=##)M&&YU!$9Q$#)U##J!!%)Y$$*%#$J9!"
+ "#YY\"#J1$$J-%#Z-\"%*1##J%!%J5)%*9&%JE!#J9!%*E\"#ZQ!$*Q\"#ZU!$:Y*%+)\""
+ "$JQ!#[!!#[-!$[1!%+1&#[I!(+5'&+5\"&+=**;=(%[I!$KE#&KU+)+M&)[I!$;Y&"
+ "&+Y!$+]!%;]!%,!!%,-!&,1%$,A!',1)%<5!%<A!&,=$#LE\"%LE\"',I)$L=\"&<M!"
+ "&LM&',Y#&,]#%]-\"']!!$M%!'-!'&M-!%M5!'M5)'-%-%M=!&-=\"\"M1\"$ME!(]I."
+ "%]I!%]M!\".!!(]M$(M]')MI(%]Y!&N)#(>!!&N5#%^-!%^)!#N=!$^E!&.A!&.I&"
+ "(NE&'^A('NM''^Y('^U(&.Q!(NA,'N]!&?-!'O!!&?1!&?-!&?1!&N]\"&_%#)/=!"
+ "&?5!!O9#$_%!&?9!%/9!)/5!&?=!%/Q!*OA!*/E%*/E+*OM!,_E+#OE!&OI!%O=#"
+ "&OM!'_Q!&OM!'_M'(_E+(/Q!&_=\"'OM%\"?E!'/M#&?E!'_I!)/9!)/E!'_I!'_I&"
+ "&_I\")/=,(?9)&_9\"\"OE!'_5'&O)!(/=(&?-!'_!!)O%#$_%!$_!&&N]\"&>]!&.U!"
+ "'NY!&.Q!&.M!$>Q$&.M!(NM!%^1!%^-!%^%!&N9#&>-\"'N1('^-#%^5&).-$%^!!"
+ "'-U!&]]%$MY!'=Y((=Y!%]U!!-I!%]I!!-E!'=U\"&]=!!]A$']5!%M5!'-%#\"--!"
+ "(])&&-%$%M!!&\\]&&-!($<Y!&LU!&<M!&,U#&<5%#<E!&,A(%\\=('<=!&<9!'<5!"
+ "#,5!$,)!(L1\"%<%\"%L%#%<%\"$[I!%+Q!%+U!$KQ#$;M#%[I!&KQ#%;1\"*K9%&+I&"
+ "#[9!![9!$[=,%K)$&;-'&:]+$[!!\"+!\"%*A&%*Q\"%JQ!\"*E\"#JE!%*E'$JE$#ZA%"
+ "$ZE%#J5%$:1!#Z-\"#J%!$:)!%*)'$:9$%:!$%I]\"#Z1\"#9M!%9M%$9M%%)I!&YE/"
+ "#I-%#Y)#&)A(#)-##)9#\"I=$\"99##)E#%IM&&)U($)=$$9U($IY\"#IY!#Z5!'Z!("
+ "#I]!#J-!!Z)!$:1!$:=#':1&#Z=\"$*A\"#JE!!ZI$&:Q,#ZM!$*I&#ZQ!$*]\"#Z]!"
+ "&K-)&+%\"%+)&\"ZU!#[E!$;)&$[9!%;1#&;=&%+U!%;I\"&KU#$KQ#'+Q!&[U($+U%"
+ "&,!!$,-!%,!!&\\)'&L)\"$<-!%<5!%L5\"%<=!%<A!%<=!%<E!&\\M+%\\M#%LU!$LU!"
+ "&LQ&%<U!)M-$%M!!']1&&=5$%M)!#]-'$=5!*=9+%M9!%]=!)-Y*%ME!&]I!%ME!"
+ "$]I\"*>!%$MQ!&MY$%]U!$MU!&-Q'-N%.&M]$'.-!$N1!&>5\")^9'&.9!)>5%&.M!"
+ "&.E!(.M)&.M!&.Q!&.U!&.U!$^M!(NI!'N]'(?!)&?%!&?%!'?)%&?-!'/-$+O1'"
+ "(?5#&?5!&?A!'O5!&?=!'/E#+OI%+_E!&_E(%/I!&OM!&OQ!&OI!&O]!)?M!&OQ!"
+ "&OI!%/E!&OU!!/Q!*OM''_U!&OU!&OQ!&OM!)OM\")OM((_I+&OI!'_E!'_A!\"?5!"
+ "*?E&&?9!&OM!&?=!'?9%!/5!&?%!&?)!&?-!&?E!#O)!'?-%'_-'&.]!(/)(&.Y!"
+ "'^U(&.Q!&.Q!'>M!(NE!&.I!&>-\"+NQ-\">I!(^='(.=$$^A!+>E!(>-&#>)!)>%+"
+ "#^!\"&-]!&>!\"'MQ#%]Q!&]M!%]M!%ME!)=I!$=9!%ME!&-9#$M=!&M)!%<])&M-!"
+ "%M)!&]5!',Q#%=%$%\\]\"%\\]\"(-!-'LI+&<M!'\\M&&<M%%<E!%\\5#'\\M+$L1'&<5!"
+ "&\\1#%L)\"'<)!'KU#$,%!%,!!%+]!%+U%&;U+$[I$';M\"%+I%([A%$[A!&;='#[5!"
+ "%;9&%;E&#[)!$+5\"#[-!$K!$\"[!!#*]!$:Y'&JY!$JQ$$JY!$JA!#JA!#ZE%%:A("
+ "':=%$J=!#J5!#J%!\"Z5!!*%$$J)%$:!$#J!!$I]%#Z)\"')U%$9Q!$IA##IU\"#YE#"
+ "\"9)#\"Y1\"!)%$#I-%#Y9#%Y9+%IA'!IA#!YI!#9Q!#IQ\"%:)+$YU'%I])$*%#$I]\""
+ "#J)!$*%#$:-$#Z5\"\":5&#Z5\"&*1$%ZA\"%JI%$:I$#ZU!$*Q\"$*U\"'*]#$;!##Z]!"
+ "$[!&\";%\"%+)\"![-!#[=!$[1!$[A(#[1!#[A!)KQ#%+=\"%;I\"%[I(\"[E!$KU#'+]%"
+ "&<!!%+Q!)\\%(#+Y!&\\9#(L1&%L9\"&<1!%\\9#'<=!%LA\"$,A!#LE\"&<]$%<Y!%<U)"
+ "',U(&,U($=!!&]!\"%M-%#=%!%]1!'M1)&-9\"&=5$$=5!%M9!%MA!&MI$(=I1%]I!"
+ "$MM!)=Y!%ME!#=Y!%]M!'.)%(>%!%^)!$^9!$N-!'^9#&.9!$^9!&.=!$^A!&.E!"
+ "&.M!&.U!$^M!&^Q#&.M!&?1&&.M!&N]\"&?!!&?!!&?)'&?)!'O%!'O-&&?%!,O9%"
+ "'O)!#O9!(_=%'OA&#OA!'_=!&OM!&?E!%/E!&OI!&OM!'?]$'_M!%_U#&_U\"&OI!"
+ "#_M!-/Y,&OM!&OY!'/U)&_U\"(OM$%_M#(?Q)&/U$'_Q!&OY!&OI!#_Q!%/=!*_A\""
+ "'_E!(/A\"$/Q\"&?=!&OE!&?9!&?9!'?-%%/1!&?5!,?A\"'O)&'O%!$_)!._!1&.Y!"
+ "#.U)&.Q!$^Q!&.Q!%^M%&.Q!&.A!&^=$&NM\"(N=!%^1!(>5&'.-*$]U''.-!&=]#"
+ "$N-!%]U!'-Y!%]Y!'-U!%^!!&-U\"%]M!%]I!']E$%]A!&M=$&M9%(]%*$M5!%M-!"
+ "(M1)%]-!&=-$&\\]!%<Q!%,Y$%LY!%LU!)<A2%\\Q\"\"<E\"&\\I\"&LA\"#<9\")L9!'L5\""
+ "&L1\"'<-%%,-!'<)!%<%!&<-!%K]##+M!&+]!$+M!%[M$';E\"%+=!\"+E!%+E!\"[=!"
+ "$[9$%[-!$+9\"$+9\"%+%&%;=&#+!!$K%$#JY(%ZY\"(Z]/%*Y\"&*M$\"ZI!$ZE\"$*A\""
+ "#Z5)(J5$#Z%\"\"J1$#J-!#J%!#J)!#J)!$J%&\"Z!$%)Y!#9U!#YM\"#YQ#\"YM\"$)E#"
+ "$I!&#9)$#Y=&\"Y5\"\"IM!$YI&#I5%%Y=$$9I$$IM)#9U'#9U!$YY'\":-##Y]\"$)]#"
+ "#J%!!Y]!\"J-!%:-!$Z5&#*9\"$JI!#JI$%:E+$ZQ\"#JA!%*I#$*U\"$*U\"$:Y'$;!#"
+ "$[!!#Z]!&:Y'%+5&%;1'$+1!$[I!%[=%&+A\"$[E!(+Y-#[=!#+M!%;I\"(KU#&+Y%"
+ "$+Q!(;U\"!\\)$#+]!$<-\"&\\1($,5!%L5''<)%',E(%\\A#&,E$&\\]\"%LM\"(LI/(<=."
+ "%\\U\"'LQ/%<U!$=!!&\\Y\"(])&%]-\"%=1$%M5!%M9!&]=+&]A!,M=,%M=!*MI,)MM\""
+ "'-U!%]U!'-Q'%]]!%^%!'=Y''>5!&N)$%^-!%^1!&>1\"&.9!'>9&'>A!&^Q#'>I!"
+ "%.I!&.M!&.E!+>U!&.E!&.U!(_!&&.U!'_!\"\"N]!$^]!#O%!'O1!&?1!'O1!)/5!"
+ "&?5!'_E!'_=!)?M!'_E!'_A!)_I*'_Q!&OI!%/E!'/9#+_Q&&?E!\"OM!&OU!)_Q#"
+ "!/]!&P-!&OY!&P)!(/]!)?I!'_Y!)/M,(/]!&OU!&OU!(_Q$&OY!(_U+'_M!(?=)"
+ "%/=!-/M&)/=!&OA!%?=!'O=&&OI!'O1!'O%!'/5$(O9*&?1!(/-)&?!!&?%!&.Q!"
+ "&.Q!'^Y'(NE!$^Q!&.M!%.Q!+^M)&NI#'NA'&.=!'>9!&^9$&^5%(>A+%^-!%^)!"
+ "$^%!%^!!%]]!&]U*&N)#&-U'%=I$'-U!%M9!*=A&#=A!&]A&(=9,'M5)&M5%'M5)"
+ "%]%\"%]!\")-1&'-%\"$<U!$\\]#%LY!%\\I#'<Q)$LQ\")<U2%LE!&L=!%LE\"-<5/&\\1#"
+ "$LA&&,-%)L-!%\\)$$,%!(K]'&;U&#<%\"%[U$(+Q&$;I\"&KM'%;I\"%+A%%;A\"#[9!"
+ "%+5\"%[5!&+1&\"[-!#;%#$+)!';)(#[!!%+)&&:E!#ZU!$JQ!!ZQ!\":M\"$:I$#JI!"
+ "$Z=\"#:=#$Z9\"$:1!%*!!#Z-\"%:1!$*%&&Z!(%Z%##IM\"#9M!\"9U)#YM\"$II%#I9\""
+ "$IA#$Y5*\"IE$!Y=!\"IA!%9-)#)A#\"II!#9I!$9M!#)E#$9Y!#IQ!%)Y($:)$$Z%*"
+ "%J))%:)(#Z5\"&J5-#Z9\"&*A(#J5!$JA%#J5!\"*M\"$JA!':Q!!ZM!%JY)$[-!%;!#"
+ "%;%'#[)$'K)-#[%!$+-!%K1$$[A!![=!&+A\"$[I!'KA(%+I%$+Y!#+U!%+U!$;M#"
+ "&+]%&K]#'<9%$<)!&\\-(%<9!$,5!%<5!&<=!$<E!$,A!&LE!'<I%#LQ\"%<Q!&-%$"
+ "&LY&(])**-%!%M!!&--#%])\"#=-!(M1.%]5\"&]E&$M=!&]A&%]Y!'MQ#$ME!&]M!"
+ "%]U!&-Y!!]Y$&N-#%]Y!#>!!'>9!'>5!'^-#'N1\"'>5+&NE#$^I!&.A!'>A&'^E#"
+ "&.I!#^E!%>M\"*NY\"(NA,&.U!'O!!$^]!&?%!&?%!'O)!&?9!&?1&'_A''O5!)?9!"
+ ")/=!'?=$)/A!*OM!&?5!#/I#(OI$)/E!)?M!&OI!$/U(&_U!&OU!'_Y!%_Y#'_U!"
+ "&OI!+?]*&P!!%/]!%0!!(/]!&O]!&_Y!'/]\"(OY*(/Q')?U!$/U\"#_M!\"_I\")OQ\""
+ "'_U!(?E)%/I!'_E!&OM!&?=!+OA7$_Q%*O=!'?-+(?1#&?1!$/1\"&?=!&?%!'O)!"
+ "(^M-&?!!#NU!&.U!&.]!(>I+'>U!(NI!&>I!&>E\"%^)!&.!!&.I!%^-!%^!!'.)!"
+ "(>!!'.%!$N1!%]Y!)-]*%]Y!']Q$%]Q!&]M!%]U!%ME!'-=\"%M=!&-5#%-5#&=12"
+ "(M)$%M)!$M-!(]%!%-!$&-%$%L]!'LQ!%<M!&\\Y!',I#',=(%<A!%<A!',9)$<Q&"
+ "$<5&%,1!&L-#\",)!&,)!&;U'%;M&%+U!';U\"&+Y%%+Q!#[E!%[E!%[E$&+A&&KE$"
+ "#K9$%+1&#+1\"#ZQ!#[5!\";%&$+%\"#[!!$K)$$JY$$*U\"#ZQ!#ZM!\"ZQ!#ZE\"\"ZE!"
+ "%:9(%:9!%:1!$*5\"#J1$#J1!#Z)\"%J%*\":!-!Y]!#J!!$YQ'#9Q!#IM$%YI$$9I!"
+ "\"I)!$Y-$#I5\"%)5(#)9#$9A$#Y5&#IM!#YE\"#YI#&IQ'$:%$$)Y#%*%'$Z!&$:%$"
+ "\"J%!#Z-\"\"*9!#Z1\"$:9#%:9!$Z=\"\"Z9!$JE!$ZM%#:M#%JQ!#Z]!\"JY$$J]!$;-\""
+ "#[!!\"[)!'+-\"#[)!%+1*%+9\"$[9!%+=\"%+I!&KE#&;I&!;I&$KM##+]!$[I!%[]$"
+ "%+Y!'+]%%<%\"%<!\"(,1$'L1\"'L5&',=#&<=%)<A-%LI!&LA\"&,A$&<M%),Q'']!!"
+ "%LY!#,]!#=-!&M!!&LY!)=9'#M1\"#M5\"&=-)&]9!$=5!&MA$&=E#%]I!#=I!#=Q!"
+ "%]Q!#-Y%$MY!%]Y!&.5!%^)!'.)*%^%!'>1&'^1)(N5!'>A!&>A\"%.I\"&.I!&.]!"
+ "(NI!%>I()NQ*(>I%$^Y!(_!,&/!&&.]!)/-(&?)!$_%!'/1$'^]!%/5!'O1!'O9&"
+ ")_A/)/A!-?1)+/E#&OI!&OM!$/Y!'OU%&_Q\"&P!!\"?U!#_]!'?Y$&OU!(/]!#_]!"
+ ")/],(_Y$'@!#%`1\"&P)!%0!!&P%!&O]!&OU!'/]/'/Y#&OU!&OY!&OU!'P!%(/]'"
+ "#_M!%/]!'_E!(/I!'_=!&?=!%/A!&?A!'O1!&?5!&?1!&?A!%/-!&?)!&?%!'>Q&"
+ "%NM$+N]'(NM!'>A!'>Q!'>M!&.E!&>Q!'>E&+^=+&.=!%N1$%N9$(>-!&N-#$^9!"
+ "&^)%'>!\"%^!!%]U!$MY!%]U!$MY!%]Q!%]Q!%]I!%ME!%]I!#]E#%M1*%M5!']-*"
+ "'-9'']-!'])+%M1!'=))'<Q)&,Y#$LU\"%<Q!%<Q!(<I$%LI!#,E!'L9!%<=!(L5&"
+ "%\\9(',1$&,=$%,)!&,1%&,!!&,%%#,!!&+Y!%<!\"&KQ(#+M!%[I!$[E!%;E\"&[Q$"
+ "$[9!%[5!%;5\"![1$$[-$$[!%%:Y$#K!$&:Y$$;!\"#ZI\"$JM%#JM!$:I'$ZE&$:E#"
+ "#ZA!$*5\"%*E'\"Z5!#J1%$*-#$J)%%Z%'#*!&$)]#&)Y$#IQ\"$IQ%$9M!&9M&!YI!"
+ "#Y-&\"Y1\"\"Y1%\"Y9\"%9A#$9A!%Y1(#YM#%9I%$)Q#!)U!$IQ)#YU\"#IY!$Z!'\"J!!"
+ "#J%!#J)!$J-%\"Z5!#J1!#J=!%:A!%JE%#:M#%ZI*$ZY\"#*Q\"%ZU\"%:Y'#JM!%+!\""
+ "%+1&%[)!$;=\"\"[1!#[9!&KE$&+9&';=#$KA'%+E!!+M!&;Q'$+M!$;U\"&+Y!\";U\""
+ "'L),!<%&%;]\"&,)!\",)!%L5\"%L1#$,5!!LE#%<5!%<E!&\\I'#LM#%<M!&<I!&LU!"
+ "&<Y%%\\U#%]%\"&]%'$LY\"(=-#&-1#&-9\"'-1\"%M9!&]=+%MA!%]A!$MI!&]A!%MA!"
+ "#>%!%]U!#MM!%]]!&-U!%^%!)N)1(>)!'.%!&.=!&.9!&.=!'>E!&>A!&.Q!$^I!"
+ "&NA##NY!,.]$&.M!&.U!&.U!&?)!$_%!'O)!&_1\"&?1!'O1!(/9(%?9\")/=!&?=!"
+ "&OI!'_E!*_E\"%/M!'OI%(_Q$'OM%&_U\")/U,&OU!&OY!&_]!&O]!&OY!)P-!(@!\""
+ ",@%!&OQ!(0!!'`!,-`1!(?]\"'_U!'0-\")@!!(O]))OU.&`%'&_Y!'@!$&_U!&/Q%"
+ "'_Q!&_M\"#_E!%/M!,/E!'_9!&?1!\"?1!%/9!&?9!&_5#)/1!&O)!&?-!$_)!&?%!"
+ "&O!\"&.Y!*?%!&.Q!&^U$\">Y!$^M!'^Q\"&>M!$^=!&>A!&.9!(NI!$^5!*.-.&.)'"
+ "%]Y!&^-%%^!!$M]!\".%!%]A!%]U!$MQ!%]M!&]I%%M5!%]I!'==#&-A\"%-=$(-A!"
+ "'-1'#M-\"$=%!$]%#&,]#%<]!%LQ!%\\Q\"&<Q$',U#%,=%$,=!),E($<I!%<=!$L=\""
+ "'<5.&<=%$,%!%<5!&,%!&<%&&+Y%%K]##+Y!'+Y!$;Q\"#[E!$KA$$[E!%;E\"&+M!"
+ "%;1\"#;-\"%+9\"\";-\"\"[!!$;-\"\"[!!'+%'$J]!\"ZQ!$:Q'$ZM\"$JA$!ZE!#J=!$ZM%"
+ "!*A$\"JA##J5!%*A'%9]($Z)&$J)\"#9Q!#Z!&$I]&#*!##9U!#*)&$)M#%9M%$II)"
+ "#9-$%I=-\"I5!\"Y%#\"9E##)=#$IE#$)Y#$9]!%)Q($Y]##YY\"#I]!#I]!#J!!$J-("
+ "%Z)*$:-!$Z1&#J9!#J5!%:9%$JA$#ZQ!%JU!$:A(%*E\"'*Q$$*U\"$;!\"\"ZY!$*]\""
+ "%;%'![-!#[-!!;1\"%;5\"';=#$[5)%[A!%+5\"$+Q!\";5\"$+M!#[A!%KY#%[]$%;U\""
+ "%,!%%<5!&\\%$&<-!%,1!%<9!'<-*(\\A0%L1#%<A!&\\E'&,I#%,Q$&-!#'<I%%L]!"
+ "%M-!\"LU#%]%\"$M!\"%M)!&L]&&]1!%M5!'=1(#]I\"(M=)#MY!$ME!%ME!'-M!%]U!"
+ "'-I'$MY!%-]#(>)!%]Y!'N-(#>)!'>5!$N1!'^-#'N9'&.9!%^1!&.E!#NU!&.M!"
+ "&NI#%>Q\"#NY!*.U!(^]1!/%!(?!$&?5!&_1\"&?1!&_1\"'_5'&?=!&?-!+_=!(?9)"
+ "'O-!'_A!*/M$%OE#(OM$(?M\"'_Y!)?Y!(@!\"&OU!-0-#%O]\")@-&(0)!*`)!,@-'"
+ ")`%)&P%!(0!!'_U!(@%!)P-!(/]!(0%!(OQ#,@!!)@!!&O]!&P1!&O]!%/Y!&OU'"
+ "%/]!&/Q%&OM!)?M'&OI!,?E/'_E!\"?Q!'_=!&?A!&O1!*O=-%?1\"%?!($_)!(/1)"
+ "&O!\"&.]!&.]!$^Y!&NU\",NQ!&.]!'N]!'>M!&.E!\">A!&.5!%^-!%^)!&.-!%^)!"
+ "%>1#$N)!&.%!&.)!'-Y!%]U!)=Y&%^!!&]A!$MI!']9%'-U!$MA!%M=%%M9!&M5%"
+ "'-9,&-A\"%]-!#=%!&,M#%M!!%<]!&,Y#',Y##LI\"%<I!'LI!%<9!%\\A#&\\=('<9%"
+ "#\\-(%L1#%<1!%,!!%,!!(L-\"%+U!$+]!$[Y($KY##[E!#+Y!%+M!&;M\"';I+%;M#"
+ "%;5#&[=)![A!#[1!#[-!$[)%#[%!&:]+$*]\"$ZY%#[%!$*Q\"$JM$#ZY!!ZA!#J9!"
+ "#ZA\"#Z5\"#Z9!$9]!$:=##J-!#J)!#Z!\"%)Y$$)]##IU$#YY\"$)U#$9I%#99!$)M$"
+ "$))$#I1%\"Y5\"!I1##)%$!YM!#II!$)Y##Z!\"!)I!$YY'#:)##I]!\"J!!$J)%#Z%\""
+ "\"IU!!Z)!$J1\"$Z5&%ZE\"$Z)&$:='$*Q&$:9$#JM!&ZQ&$:U#%*M&#;!&$;%\"$[%!"
+ "$K!$$+-\"#[5!$K)'$+5\"$[A!'+A*%+E!%KE$&+I!%[I$$[E!$;Q\"';Y+%;]\"'L)\""
+ "$K]'%+]!&+Y!%,-!'L-\"'\\5(%,1!$L9\"&LI&%<A!%<M!$\\E##,M!%<E!&,Y#'LU!"
+ "%]1\"%\\]&%<Q!&LM&'-)#\"-1!']-&(M)$%M9!&-=\"%]Q!%ME*&=I(&]M!'-Q&%]I!"
+ "%]I!%ME!&]]%%.!\")]]\"(>-!%^)!(>1+*^1%&>5\").93#NA!'^A(&.Y!$^I!)^E!"
+ "'NQ'%NY$*.Q!$^Y!&.]!(NQ&%?%\",O),'/-$&?!!&_5\"'_E!(?%*)/5!'_5'&?=!"
+ "&?E!(/9(&OI!)/Q&&OM!&_Y!(/Q-)_Y.)?]!&P!!(0!!,?Y4(09!'_I!(@!\"(09!"
+ "(0-!(0)!+0-!(@)!-`)!)@!!(0)!(P9\"(0-!)0%%)P)!(@!\"%0!!&OY!&O]!&OY!"
+ "(_Q+-OY!&OI!$?M#$OE$(/E!*OI!'?=%'_I&%OM\"&O9!#OA!&?1!(/=((/%#'_)!"
+ "$^Y!&.Q!&?%!$^U!'>U!&.Q!&NQ\"'>M!&.9!&^Q$$^A!&>=\"%.9\"&.5!&>5\"%^1!"
+ ",.%-&N1##>!!\".!!&-]'&-]!&]U%'-]!&-M\"&=I#'=I('=E\"&]A!%M=!&M9$%M-!"
+ "&]1!&]1+%M%!%M%!*-%&%M)!)-!,%<Y!%]-\"%,Q$%<M!\"<9\"\"<M\"%<=!&LA\"#\\9$"
+ "&<=!&,5$%,1!&L1\"&,)%%\\-#(L!\"%<%!#[Y$%+U!$[Q$&+M!(;I&&+I&%[E!$[A!"
+ "%[=!&+E%$+5!$+1\"#[-!#+)\"$[%%%;!'%:]#%JU)\"ZI!#[!!'*I$%JM!$*I\"&*Q*"
+ "#ZA!$JU!$*=\"#J5!#JE!#Z-)$*!#$YY#$*!##Z1&!*!!$9]$#I]!$YE'$9M$\"YE\""
+ "$)-'!I1##)E#\"I9!#I-\"#9A!\")E\"&)E,$9I$#YM##J%!\"J)!%Y]#%YQ*#J)!%*-'"
+ "$Z5&#J-!$J1%#J1!#J=!%*1#&:E$$JM!#J9!$JM!$*Q\"\"ZU!&JY!%J]%$J]!'J]%"
+ "#[)!#[%,#[1!#+-\"%;9#%[=$$[5!(;A0&KE#%+M!%+M!%+M!$;Q\"%+U!%;Y\"%;]\""
+ "%<)!'L!#&<)%'<-!%,-!&,E$$<%\"%<M!'L1'%<A!(,U($,A!&<M!&LY&'LU!$=%!"
+ "#M!\"'--#']!!%]%\"%M5!%]-\"&M-!&-9\"%]5\"$M=!%]I!%]M!%]E!%]Q!(=Q!&-U\""
+ "&-]\"%]Y!%]]!(>)!%^%!'N5(%^-!%^-!(>)!&.=!&^9%'^=#&.5!&NM\"&.=!&.U!"
+ "&.I!+>U!&^Q#&.]!#^]!&_)(&?)!$O1$'O)!&?1!'/=#'O5!(/5((?=#*OA!'_I!"
+ "(?I#%?I!)?I!'_Q!%/]!'_Q!%@%!(?M\"'P%$(/]!(0)!$0)!(0)!\"@!!)@!!(09!"
+ "(0-!/?Y)(@A!(0-!(0%!+@-),@-!)01%)@!!)P)!+@-/#`%!*?Y,'_Y!'?U$(_]+"
+ "&O]!)O].)?Y'\"?Q!&OI!&OI!'_Q!)?Q!&?A!&?=!&?-!&?-!%_5$&?1!&O-\"'_)!"
+ "&?5&&?!!&.]!&.I!\">]!$^Q!&.Q!&.M!'.=%'>U&&.=!$^=!\"N=\"&.9!%^-!&>5\""
+ "&.5!%>-$%^!!$N%!&]]%%]Q!$MY!(=U!!-Q!&]M!%ME!)-=!&]A!&]A&&-E\"$=A$"
+ "%M1!%M-!%]5\"$<]!$=%!%\\]\"%\\Q\"%LY!&\\]&'LI*%<M!%<E!%<5!'\\9#&LA\"%L=\""
+ "%<=!%,1!&L)#$,-!%,%!%;]\"&<!\"&+]!%+U!$[I!$[Q$&K-$&;Q&#[9!$[E!%+A!"
+ "#;=\"![=!#[=!&+5*#[)!!;-\"$K%$$*]\"#[1!!*]%\"*]\"#ZU!$*Q\"!ZI!$JQ!%:E("
+ "%*E'!Z1!$J=!$J5%#Z=\"#J-$#Z%\"!:!\"#IQ%$:)!$)Y#%IY&#9U!#IQ(#)I\"#9M!"
+ "$9A(#9)!#99!#I9%!Y1!$IA##IE!$)I#$)U##)M#$YU#')U&$)]#%I]*\"IY!%Z)'"
+ "#J-$%:1!!*9!$*1\"#J=!%:=!\"ZE!$:5$):I+&JI-\"ZQ$$+!\"\"ZY!\"ZY!#[%!#[!!"
+ "$[%!$+-\"';)'$+)\"$+1!%KI#\";9\"%;A\"#[A!\"[I!$+M!\";=*#;U\"%+U!%,!!&[M$"
+ "%<!\"&,%%#\\-#(,1($,-!&,5%%LA\"\",5!%<A!%LA\"%,-!&<E%&<I!#,Q!%<Y!),Q'"
+ "&<Y$&\\]\"%]%\"$=)!'-%\"'=-()M9(&M5$&M9$)-A!%M9!$N!!'-9'&]M!$MQ!%]]!"
+ "%]Q!%]Y!%^!!%>!$%^%!%^-!$N%!'.)!%^-!&.9!$^I!'NE!(>E%'>A&)^I!&.I!"
+ "&.U!&>I!'^Y'*.Y!&?!!'O!!$_)!&O)!(O5%'/-)*?5,&?9!'_=!*OI!!/A!)/A'"
+ "(?E#&OI!&OQ!(_9%!/U!%OY('`!&&P!!(0!!(`!$(0!!(@!!(05!(0-!-0)1&01$"
+ "#`1!\"@1!'01\"(01!(01!(/]!(P)\"*`%!&`-!*0-**P-,'0)\"(_U%(@%!+/]!)@!!"
+ "&O]!*/U+(/Y'%/U!&OQ!'_]&&?=!'_M!%/I!#_I!&_A\"&?9!&?5!&?1!&?1!#O-!"
+ "+_)(\"?%&$_!!'N]!&^U#'NU'&>I!&>M!#NI!&.E!$^E!&.A!'.A&)^9!)N1!#N9!"
+ "%^)!'.-!%^%!&.%!$N!!$M]!$]M\"%]U!'MI)(-E&%M5!%]M!&MA$&-=\"$=9!%]5\""
+ ")MA(']1/%M1!%M5!#M%\"&,]#%-!$&L]&$\\Q#$LA\"'<I$$<I!%<9!'LE!%\\A#%\\=#"
+ "$\\I#%,1!&<1%'<)!&,)!%,%!&,!!%+Y!%;Y\"&[U(#+I%$+Q!%+]%$+M!&;E'$[I!"
+ "$+=%(;%)$+5\"\"[5!&K-)$;)#&+%&$;!+$*]\"(J].'JY!#*M\"%JA%\"ZM!#ZI\"\"ZI!"
+ "#JI!$*Q\"$Z=&%J5&%*1#$*5#$Z-&'*))\"Z!!%*!($Y]&$IQ&#J!$%)Q$$)M#!YI!"
+ "!)1$#)9#\"Y9\"\"I9!#99!%YA%#Y5##YI\"#9U!$9Q(!)U!$9Q($)]#\"Y]\"&*%$#J!!"
+ "$*5##Z-\"%J5\"#J5!#Z1\"$:I$!Z=!%:I$#JA!$*M\"\"ZQ!!JE&#[-!#;%##+!!#[!!"
+ "$+%\"!;)\"%K)$%[1)([5!$[9$$[=!\"[-!%+=!%+Q!$KM##+M!$+Y!&[M%'+]!&<%%"
+ "%,!!%<!\"'<)&%L-\"%+])$L5\"%\\=##,A!&<E!$LE\"&<E!'LE!(LI+'LU!$\\M#%<]!"
+ "(,]#%M!!&<Y)(])!$=5!(-)'&-E\"'M-%&-=\"&M5$'M9$%]=!%=A$%]M!%]Q!(-Q!"
+ "'-Y!%]Y!%]]!&>)\"(^)(%^%%'^-#$^5!%^-!(>1!&.=!)^9''>A!&.I!&.M!%.Q!"
+ "*^U5'.Y$(^Y!#NY!%/%!)?!#(?-#&?-!%/1!&_1##/5$&?9!&?=!)/A!&?9!&OQ!"
+ "&?E!&OM!&?9!'/Y\"&OM!&OQ!+0!!*0)0#?]$&P%!'@1#&P-!(09!&`9!(01!)`-("
+ "&P1!)@A%'`-%#`5!%`5#&`5!%@%!)@A%+01!(0-!)P-!,@9&+0!!%@1!%@%!(0!!"
+ "%?]!(0!!*OY&&_U!&P!!&?A!)_I*&?E!'_=!)OA.(_5&&?5!&?%!&O1('_A!&N]\""
+ "*/!2\"?=!*>]''O%!&.Y!(/%('^Y\"#NQ!$N=%-.E0#NA!&>=\"(.%*&.A!&.9!'>5!"
+ "&^!%&N)#%^)!&.5!%]Y!$]Y!&]Y*&-U!(-Q%%]M!%]Q!&=A($MA!(]A/%]='(-9'"
+ "'-5'$]1\"%M-!%M1!(M%$&-%#&M!%'LY!&,U#%LQ!$<M!'\\Q\"%\\I#)<E$',=('\\=\""
+ "%\\5#$L5#$,-!%,-!%<1!%,%!%<%\"%;]\"'L%#%,!!%+U!!;Q\"$[M$%KI'$;I\"$[A!"
+ "$[A!$[)!%K-(#;-&\"+1!$;)#\"ZM(%JY)$[!%%K!!$JY!$*U\"$*U\"%ZQ\"%JU!!:A\""
+ "$ZA\"%J9!&*9+#Z5\"%*1##J-!%:9$%*)'#J%!#J!'%:-(&:!)$YM##IY$$)M#\"YQ\""
+ "\"Y=\"\"9%$!)9!#Y9&#Y=#$IA#\"YE\"$9M!\")E%$YM#\"I]!'YU)$:%!#J%!#Z%%\"9]\""
+ "%*%+$J9!#:1##J5%#J=!#J=!#ZA\"$*E\"#JA!#JI!%+)&$JI!%J]!%K!!$;!#$[!!"
+ "%[%%%K1(!+1!$[-!#[5!%;5\"$[A!'[A!$;M\"$;A\"#[M)(;Q+%+U!#;Y\"(+Y!'KU#"
+ "%;]\"%+]!%;U\"%+]!%,1!%<5!&L9!&\\E##,9!%<Q!%LI\"',M)'<U$%<Q!%<U!%\\Y\""
+ "%L]!']!&&,]#'-)'\"M5#,=%1(=5#)M1.#==!&]I!%MA!(=E!'-I'%-Y(%]Q!%]U!"
+ "'=Y''-]!&.!'&-Y\"%^)!%^-!!^-$'>5&&N5#&.9&!.=!(NA&)>A$&.E!&.Q!(NM!"
+ "'>Q!'.U%'^]\"&.U!'O!!(_%&&O-!'_-!&?9!#_9!\"?=!#_-!*_9))?I!)?E')?M'"
+ "&?E!'/U#&P!!-?E'(/]!\"_]((/]!+@)/)0%%(@)!(09!)@1&+`11&01$)P1!'P5$"
+ "+P90(05!&`9!'@A)(09!&`5!&`9!%P5!'05\"#`5!,P5!)01%&P-!(0%!)P)!(0%!"
+ "(0!!(0-&&OU!&OU!&OU!'_I!&_I\"\"?Q!%/U!'_A!#OA!&O=!&O9!%/5!'/1$)_)*"
+ ")/5!'^]\"#O!!'N]!'.]%'?%&*>E)&.Y!&.I!&NI\"&.=!\"^A#(N=!&.A!&.5!&^9$"
+ "&.5!&N1#(>)+).-)%^!!%^!!(-M+'=I(#]U#%]M!%=A$)-9+)=M!&-A\"(MI-!==\""
+ ")\\]%#=1!%M)!%LY!\"=!\"%,Y,',U#$L]\"%<U!'LU*&<Q%&<M!&,M$$<E!$<M!$L=#"
+ "',I#'\\5,'\\1#%L1\"%<5!&L%'%,%!%,!!'+M%#;M\"\"KU#$;Q\"'+U!(KI#%;A\"%[9!"
+ "$[=!%;9\"%;9&&[!.!+-!$K-$$[)!$;%##[1!#Z]!#JI!%ZU*\"J]##ZQ!#JI!#ZQ!"
+ "&ZI##:A#%*1'$JA$%*=##Z=!#J-!#Z-\"#J%!&:%)$J!%$9U!#9U!\"YQ!\"YI%\"9M#"
+ "#)1##91!#)=#!)9!$)=$\"IA!#YE#$9I%#9E!$)Q##IU!#IY!#J!!$9]$%J%\"$9]$"
+ "#J-!#J1!%Z1##ZE\"#J=!#Z5\"#*E\"&:E!!ZI!$ZY!\":Q\"%*U'\"ZY!#*]\"$[!&#[1!"
+ "$;)\"#[-!![9!%+)\"#K9#%[A$$[=!$[I!&+A&(;I&\"+M!#;M\"$+Q!%,!%%+]%%L)#"
+ "%,%!'\\%#%<%\"%,)!#L-##L5#%\\9#$,9!&LA\"%LM\"#,I!$\\M,#\\M((<Q.$<Q!%\\]\""
+ "%M!!(,],$M!\"&])&'])&\"==!%M-!+=-'(=A\"'=M\"$]9\"&-I\"*==&%]M!']Q)(-M!"
+ "$]Q\"'MU)'.!%%^!!%^!!$N-!%^1!&.5!&.9!(NE,,.I%(.A)'NE'&NE#(.M#&.I!"
+ ").U-&.Y!(_!!'>]&'O!'$^]!$_)!&?-!&?5!(/A('?E$&?=!'_=!(?I#&/E%&OI'"
+ "&OM!+/Y)\"OU''OY%)/Y&&O]!(0%!'P)$(0!!.@A/&P%!*0-#&P-!$`A$&`9!'01\""
+ "%@9!&`9!\"P-'&`5!(05!&`5!!0=!(`9#&`9!&`9!&`5!)`5((0-!&P!!(0)!'_U!"
+ ",/]!&O]!&_]!)?]'%/U!&OQ!'?I$&OI!'_E!'_E!%/9!&?=!&?9!(_)!&?-!&?%!"
+ "$^]!'/%$%/5!(^]!#NU!(NY&&.]!'O!!\">Q!&.]!&.A!&NA#&N=#&>=')^9!&.5!"
+ "(.5*%>-(&>-\"&.!!\"-]!(>!,$MY!&MU$%]U!&=M#&-Q\"'MA$$MI!'M=$&-E\"&-9\""
+ "%M-!*=1,$]1\"%=)%%]%''=%$$<]!(<U$%<Y!&<Y%',Q(%<Y!&L5&%\\E#%<9!&<1!"
+ "%<9!'\\-(&<5!%,1!%L)\"%[Y$\"<%\"',!%%;Y\"%L)#\"+U!$;Q\"#+Y!(KE(%;I\"$[=!"
+ "(+9.%;M\"&;)'#[5!#[-%#+-!%[)!#Z]!&[1!%+%\"\"ZM!%JY!&*Q'%:M'%*A&%:I("
+ "#ZE\"$*5\"$Z9\"#Z5\"\"J5#\"J1!#J)!\"J)!%:%(%)Y($9M$$)]#$IM%!YQ$#9Q!#YE#"
+ "#)5&\"Y)\"!Y5!$99%$9A%#YI##9A!')U\"#IY!#YQ#%)M$$)Y#$)Y#$*)#!Y]$'J)$"
+ "#J)!#J5!!Z)!#J1!#J=!#*Q\"!ZI!#*9\"%JI)$:Q$\"ZQ!$*I\"!:M\"%:]'#[%!#Z]!"
+ "%[)!\";)\"\";=\"$[%!#;5&%+1!%[E$'+A*\";5\"&[I($K]#&;U*%[U$#KY#\"<!\"%+U!"
+ "%<!\"&<-!%,-!'<1*%L5#%,-!&,=$%<9!%<M!%L=\"%\\E#%<Q!%\\I'%LU!%<U!$<]!"
+ "#]!$%<Y!%M%!'-)\"'=1#$=1!)]=)%]E!$]9\"(M=$'=E#&]E!%]M!%]Q!'MU)%]Y!"
+ "#=Y!'-]!&-],%^%!#>)!%^-!%^)!)>-%&.9!'.M%*.U!%^1!$^E!&.I!&.U!%.Q!"
+ "'>U!&>A!$?!#$^]&&?%!'?!&%NY#&?-!&?)'&?5!&?5!&?9!&?E!)/E!#`!!!/M!"
+ "(/Q('?M$&OU!'/Y#(/]!&OU!(0!!(`!$)0%%)_]))P5!(0)!'P1$'01\")P=!&`A!"
+ "(@=!(@A!+0A')`A!*@A*(PI!&`-!&`=')0=*'@1#(P5\"(@1!&P1!(0)!)@!!(P)\""
+ ")`%\"(_Y$%/U!(0!!'_U!&OM!$/U\"&OQ!&?A!'_=!&?A!&?9!'O5!(O5$&?-!&?1!"
+ "&O-!&?!!&.Y!%>]($_%!&?%!%NQ))>Q#(NM!&.M!$^9!'>I!$^A&(.=$(.9*%^%!"
+ "%^1!&>%#(^92&>1\"%^%!(>!!(-M0+-U#(>!!%M=!%]M!&=I#%-=#$]=\"$M=!%MA!"
+ "&-=\"'-A\"&-=#)M!.*-%!'-%\"'-!'\"<Q\"'\\]&%\\U\"*\\M!%LM\"'<I%#<A!!,A!%L9\""
+ "%<=!',=(%<=!'L%+%L-\"'<)!%L)#$<!\"'\\!-%+M!%[I!%+Q%$;M\"$[I$&;M'&;A\""
+ "%K=($[9!%+=\"#[=!%[1%$*Y\"$+5%%;!'$+!\"\"J]$&JU%$JU$#JM!$ZQ%%:I(\"*E\""
+ "#JA!\"Z=!\"Z=!$JA!#ZI!#J)!\"J)!#J)!$*)##Y]\"$I]&$)Y#$IQ,%IM&#YM#$I5&"
+ "#)1#\"I5!$I9#$IM)$91%\")E\"$9Q!#YQ#$*-#'9Q($YU&%IQ'!)]!$J!%$Y]##J)!"
+ "$Z5\"#Z1\"':I)#J9!$J9%$ZA\"#*5\"!*M!#JI!$*U\"#ZQ!%;)'#J]$&J]!#*Y\"':Y)"
+ "#[!!$;=\"$+=!%+-\"&K1$%;1#&;5'&+A&([I-$;I\"%+Q%%KI(%;U\"%[M%',!)#+Q!"
+ "$,)!'\\9'%,-!(<1*%L1#$,1!&<9%%<A!%<A!%\\9#%<I!$LQ\"%<U!%<U!&LY!&LU!"
+ "&=))%M%!&-1'%M)!%M)!$M1!&-A\"%M5!%]I!&-A\"'-E!%M9!(MU-%]]!(=Y&%-Y\""
+ "%]Q!#=M!%^!!&.5!%^1!(.1*&>5\"&.5!&.9!&.I!&.Q!&NI().U\"&>E!(N=!&.Y!"
+ ")O!*(N]+&^]#&.Y!\"?)!$_!!'O1&&?5!&O)!&?9!'_9!&O=!(OE$)?Q!%/M&&OM!"
+ "*OQ!&OU!(/Q!%/]!'?]#)/]%(0!!(09!-`9'*@1+(`5#'P1$)P1-%@=!(@=!(@=!"
+ "&`A!'`I%(@Q!(@E!*PM*)@E%&`A!)`Q!(@A!&`Y!&`=!'PA*(01!)`%)(01!(`=#"
+ "(0)!'_Y!#_Q!)/Y&#_I!(?]('_Y&&OM!#_M!(?M\"&?A!(_=&#/9)&?9!&?5!&?1&"
+ "'O-!%/-!&?%!'NY'&NY\"*?!!*>U\"'.U%$^E!&.I!(.E)'>A!&.A!$N1!(>9+(^-#"
+ "#N!!$N-!'.)!(>!!&^!%$M]!&=I#%]Y!%^!!$=U%%]M!%]I!*]Q!'=E(\"])$$=5!"
+ "&-9\"%]1!&LY!$M9!'M%%%=%%&=!$%M%!&M!%%<I!%<Q!%LM\"%LI\"%<U!%LI!'\\=("
+ ")L9!&<1%$<1!%L1#&<-&&<%%$,%!%+]!&+Y!#+Y!$KQ#%;]!#[A!%[E$%+M!$[1%"
+ "%;9\"'+1*'+E*#;A\"$;-\"\"[-!%K1$#[-!$+%\"%+)&#ZY!\"ZU!%*M'$*]\"&:M%$*A#"
+ "!*9!$:E#%*=&\"Z=!$:1##Z1\"#J-!#J)!#J%!#Z!\"$9]$&YY,%)Y!%IE'$IM\"#IE!"
+ "#)-##)9#\"I9$$I=#$)A$$I9&$IA#%)I!%IQ*$)Y'\"IE$%IY)%Y]$#J)!&*%!&*-$"
+ "#Z-\"%*-#$Z=\"$:=$$ZM\"#ZI\"#ZE%\"ZQ!$:I##*M,$JY!%*Q\"$JY!&:Y$$+!\"#[!!"
+ "$:]#([-.$+1!#[%!%KE(%[=!$;5\"&[-%#[E!%;I\"$+M!!+Q!&[U($+M!#K]##<!\""
+ "$,%!%,)!%,-!%,1!%<A!(<5/%L5#%\\9#$\\A#(<E)',I#$<M!&<Q$$<Y!%<Y!#\\U#"
+ "%M-!&-%$'M5*&M)!%])\"&-1#%]1!)M92$MM!%M9!&]E!%-Q('-Y!$MQ!%]Y!#=I!"
+ "'-Y!'.%%&.=!%^%!).).&.1!&^=$$^5!'N='%^1!).I\"&.I!&.=!$^M!$^U!(^U'"
+ ").Y!)^Y0(?-#*>]'&?5!(_)!'O)'&?!!%O-#&?9!(?9*%/E&)OE\"'_E!(?I\"'_=!"
+ "%/U!(`%*%/]!+`)%&P)!(0)!+P96,@)!+0-!(0--'P5$)`9.'05\",P=!(@=!(`I\""
+ "+@E')`A!&`Q!+@A!)0I$#0U#&`9!(@E!(@I!+01!&`9!&`A!#`5!+`%2(0-!(/]!"
+ "(0)!)P%!&P%!(/]!#_]!#`%!$?Q#&OI!&?A!'_E!*?9&(_I%&OA!'O5&*?5!'/1$"
+ "&?-!).U\"&?%!'/!$#N]!%NY.&.]&$^Q!'>Q&#NI!&.A!'>E!&>A!&^1%&.5!'>9!"
+ "%^%!%^-!$>)%%.)\").!%'^%*)M]!%]I!%-U#&]M!&]M%']I$&MQ$&]A&*-=%$]9\""
+ "%M9+(-%,$]1\"']%!&]-&#\\]#&\\Q\"$\\E#'\\Y+',U#&<Y$#LM#'L1&*<U##,9!)<A%"
+ ",LA*#,1!\",1!$<-\"%,1!';Y&%<%\"&,!!%;]!$;Y\"&[U$%+Y!!+M%$[I$%[M%%[A$"
+ "%+9\"(+A*$+9%&+=\"#[-!%[-&#+!\"\"[)!$[-%#Z](#:A#\"[)!#Z]!$ZM\"$*A\"%JQ!"
+ "$JE$&:A($JA!&:5%&Z9#$J%\"$:1!#Z%\"#J%!&9M&$)M$$)]##9U!$)M$&)M%$9U$"
+ "\"I1!\")5\"&)9\"\"I9!#)A)%YE$#9Q!$9E$$YM##Y]\"$YA'%Z%'$Y]#%:%$#Z%%\"J-!"
+ "!*9!!Z)!#Z5\"%:!,#J=!$K!$$JI$#ZQ!#J5!!*Q!#ZI\"$*Q\"$*]\"&JU!#ZY!%;9&"
+ "#[5!%K%$#+5!$;E\"#+A!%+A&&+A&$[I!%;E\"\";I\"$+M!$;I\"&KM'$KY'&,%!',!!"
+ "%,)!#,)!&,-$$L1\"&<5!'<5!#\\-,)<1!#<-!%LM\"(LA!',M-+<Q)&<Y%%LI\"%LI\""
+ "%]9!'M%%&])!'=-)&L]!%]1!%]M!#M5!']=+%]E!(-E!&-E\"']U)&]M!%]U!'.%!"
+ "%]]!&.!!(-Q!).%*'.)%&N=#&^A$#NE!(N5&&.9!&>A!&.E!'>A!&.M&'^U($^A!"
+ "$^U!&.]!$>]$&.Y!&?=!&?)!&O-!'O9&)/A&'O1!&?E!&?A!+?=+&_I\"&OM!#OE!"
+ "&P!!%_U)'O]%)P)'#`%!(0%!&P%!+@-\"&P1!#`1!,P5!(`1#(@=!(@A!+@]!(`A#"
+ "(@E!*PM$)`M!&`E!%@M&(@I!'P9*'0E((@E!*PE+&`9!*@9#%@A!,@-!(P-)(0-!"
+ "+P)1,@)!(0!!'_]&(/E!&OM!%_U)&_M\"&?A!'_Q&'_E!&_A\"&O=!'O=&#O5!%/5!"
+ "\"?9!#O!!)_%%*O-!(^U!$_!!&.Q!%>Q($^=!&.E!$^Y!(NE!&N-$&.A!&.I!'.5&"
+ "$N%!%^)!)>-*)>%0(-U+&N!$%^%!%^!!'=Q\"#]Q##=M!%]I!'=A#&M=%'-5'$=5!"
+ "%M5+%M1!&=-$$=-!%])\"$=5!'<])&])&%M!!$<U!&\\Q\"%\\U\"!LI#),M,%<Q!&L)\""
+ "%<9!&,)%(<5*$L=#&\\-,%<!\"&L%\"#,%!$+Q!%L1\"%+U!%[I!#[E!%;I\"%KI#%[A$"
+ "#K5'$[=!%[I$$+5\"$+9\"%*Q'#;)\"#[!!&K!,%Z]%$:Y#%ZU\"$*Q\"&ZQ\"#:I##ZE\""
+ "#ZQ!#Z9!$Z=&#ZA\"$J5!%J%&#Z-\"!*)$%:))#Z!\"%)]!#9]'%9U)%)Q$#9U!\"IM!"
+ "\")1%#95!$)9'\"I5!#9A!%IA&'YI&$)E!%)I!#II!#YQ#$9Y$#Z)\"#J%!$Z%##J)!"
+ "#J-%!Z1!$J1%!*1!#*5\"#ZA\"&:=%#JI!$*A&$:M$%ZQ\"&:U$%K!!$ZY%$;!\"(K1*"
+ "![)!&[5-'+1\"&[5!&[9!%[=!&[A)$[1!&+E%&[Q)#+Q!&+M!%+Y!%;Q\"&,)!);Y+"
+ "#,)!$\\)#%\\!#&,)%%<A!&<1!)<A)%<=!%\\9#$\\E#(LA+(L]%$<Q!%LU!$<Q)%<Y!"
+ "&]%'&-%#&M)!%M-!(]1%)]13#==!'=5(&-9#'=A##=E!$MI!%]M!#=M!'-U!%ME!"
+ "(.!%&N!)(N%,'.)!'.)!&>1\"*^-!$^5!&.I!&.=!&.9!*.I-#^I\"&.M!'>Q!).U\""
+ "&.]!'O!')/!-&.Q!'/9##O-!'O-!'O1&&.]!'_9!&?A!&?E!(?M\"&OM!$/Y\"%OQ\""
+ "&P-!%/9!%/Y&&_]!*@!$(0-!(0%!)P9!(01!&`9!(09&)`9(+P5*(09!)`I!(@I!"
+ "&`M!)`E!*0]!'@Y\",@M%(@I!%@M!(@A!#`9!(@Q!+@=/&`M!(`A#&`9!(@1!(0-!"
+ "*0)))@%&%/]!'_Q!+?Y#)OU!&OU!&OQ!&_M\"&OE!&OE!&?A!)/='$OE$*/1+)/9!"
+ "&?5!$O1%'/%$)/%!&?!!$^]!&?)!#O!!%.U!&.Q!$^E!).I.$^A!&N1#&N1$%N1$"
+ "&.%!$^I!&.)!&.9!'.%!'.!%%]Q!$MU!&-U!%]U!'=M\"'-Y!)-9&(-A!'=5##M9\""
+ "%])\"&M1%#=-!&]-!%M)!%]%\"%]!\"%M!!&\\Y!#<U!&LY!%<I!&,Y(&<E!%L9\"$,=!"
+ "$<=!'\\E,(L5/%<1&%<5!',))%;]\"%L)\"&[]$%KU#&KQ#$+Y!$[M$%[I!'+=\"&;Q\""
+ "'K=(%;I\"%;9\"%;9'&;9'$+5\"#[1!%K%)$K%$%Z]%$*]\"\"ZU!#ZQ!#Z]!#JE!$ZU%"
+ "!*E!$*A\"&*1'#ZA!$*-#$J1!\"J)!#J-%&*)+$J%%$9]!$)Y#\"Z)\"#9Q!\")M\"%)M!"
+ "!Y)!%Y5(!)9!\"I1!%IY-#9E$%)I%$9M%#9Q!#YM#$YU'\"IE!\")Y\"#J)!%Y]+#J)!"
+ "$:-#\"Z5!$:9#&*1!#ZI\"#ZA!#:E#$*U\"#JM!#ZQ!$:Q#!*]!$ZY%%J]!!+!!#;!\""
+ "&+-*%;-##;9\"!K5#'+=!%+9\"#[A$([9!#[E!&;I&';M\"$+M!%KM#%+Y!',9)%+Y!"
+ "$\\1($,%!$<-!&,-%%L5\"$<-\"&<M!)L=&&<I%%<A!',M)%<E!%<Q!%]%\"',I(%M!!"
+ "%LI\"',M)#]!'%-%$%M5!']9%%M5!&]5!&]9&$MQ*&-E\"&-U!$MU%%]U!&-Q\"%]Y!"
+ "%]M!'^1#%^%!#=]!%^)!(>)+(>A%&.5!%.A!'>5!'>9&#NA!*>I\"&.M!$^I!(^U!"
+ "(_%!&?!!)/!($_%+'O%'&?9!&_1\")/5!'?-%&?1!\"?=!&?9!'_E!'OM%&OM!&OQ!"
+ ")_Y\"&OY!&_]!&P)!(0!!*_Y!%@)!\"@-!(0-!%@5!&`9!&`I!,0E$)PI&&`A!(@E!"
+ "(@M!)0I$+0Q,(@]!&`Q!+`Q\"(@]!*@I)(@M!&09#&`M!+PM/(05!(P1)(01!(@-!"
+ ".P)$'_Y!(/]!&OQ!&OY!(?]/&OQ!&OQ!'_M!)_E/+_E,&?A!&?=!&?5!'O!!&_5#"
+ ")/-!'/)$(/%((_!!&O%\"&?!!'>Q!&.I!&^M)&.U!'>E&'>M!&.A!&.I!'NA'&>5\""
+ "(N1,'.-*(>-!*>%*,.%-%]Q!%^!!'=U\"'-U!(-U*(=Y!'=I()=E1$MA!'-=!&M9$"
+ "'M5$$]A\"&]1&&M-!&]-!'M%%\"-%!'-%''LY%),Q'#,M!&,I#%\\A#$LA\"&,I$&\\9("
+ "%L=\"%\\=#%<5!%,1!$,5!%+Q!%,)!%<!\"%;]\"&;M\"%;Q'#KE#$+U!%KU#';Q/\"[A!"
+ "%[E!#;9\"%;9+%+1&$[=!$+1\"$*]\"$+%&%;!#\"ZY!#ZY!$K)$#ZA\"#JQ$#JI!#ZU!"
+ "\"ZE!$*E\"%*5'\"*5!#Z=\"$J1%\"J1##Z-\"\"J-!$9Y$#Y]\"#9U!%:-)#YQ\"$Z!\"%Y=$"
+ "$))'&)9#\"I%!\"I5!$IM\"$I=#$IE\"$)I!#II$$IU%\"IU$#9Q!$*!#\"J)!$:%!#J%!"
+ "#Z-\"#Z)\"#J!!#J=!#ZA\"%J=)#JE!':I!\"Z=!%:Y'#ZM%%*Y&&;!+&;)##[%!$[1%"
+ "%K)(%+5\"#;)\"(;5#\"[=$$KM#%[A%#[5!&KA##[9!%;I&#+U!%\\!#%<!\"%KY##L)#"
+ "%,%!&+]))\\-(&<1!&LA\"',5)\",9!%\\A#'L1\"%LA\"%LI\"%<M!%LA\"),Q'%M%!%M!!"
+ "%M1!\",Y!&M)!$]-'%])\"$]9\"%M5!%=9)%M9!%MA!&=E#&-A#%]Q!%]Q!&MY$)MY1"
+ "&^%%'-Q''>9!%^)!'-]!%^!!&>1\"&.5!&N9#&>-\"#N=!&.=!%>=#(NQ,'^Q(#NU!"
+ "$.Y#$^]!&?!!&O)\")O!)(/)(&?-!%/9!&?=!&?9!&?5!$_5*+?5+&OI!*_M(*@!%"
+ "\"?U!&OY!&P)!&`-!/0!!)P%!(0%!&P-!(/]!(`=#(`9#%@=!(@I!(@E!,@U+&`U!"
+ "*0U!*`Q+(@Q!)0Y#)`Q!+@I!/`Q!(`E\"(@I!)@E%*PY*(P-\"&`9!%@9!(01!(`-$"
+ ")?]&(@)!(O]#&P-!&P%!&P%!&O]!&?U%&/E%'_M!'_E!&/A%#O9!*OA!)?=('O1!"
+ ")_-%%/1!'_1''?!&+O!!(/%\"%^I%\">Q!$^U!'>E!$^I!%.E\"'NA'$^=!&.=!#>1!"
+ "$^-!&^-%%^-!%^%!#>%!$N!!%]]!(>-!%]U!'-Q&(-M!%=I$'ME$(-=!'-5'$=-%"
+ "%M-!&=5$%M1!%])\"&M-!&=)$',U##,U!*\\Y*$<Y!&LQ!%LE\"$<I!%<E!#LE\"%<=&"
+ "$,5!!L9#%<1!$,9!&<)%%L)\"%;U\"%L)\")<%.'KY#%KU#$+Q!#[=!&[I!&[I!#[I!"
+ "#[=!$[=!&K9(#[5!#K1'$;-\"\"[)!#+%\"\";!&#[1!$Z]%#ZU!$JU!#JI!#ZU!%:A#"
+ "%*I'#:E#$*5##J%!#J=!#J1!#Z-\"#J9!\"J-!#J%!%9U\"$*%#\"9M#%IQ##YM##IE$"
+ "\"Y1\"\"II!#I1%\"I5!\"YE\"%)A(#)I#$IM&#II!%)Q!'YY%#IY!$YY##IY!$IQ&#Z)%"
+ "$J1%#Z9!%*9&#Z5%#J=!\"ZE!%:E$$JM!#JI!%:Q'#Z]!%JM!%:Y'$*]\"$[%!$;%\""
+ "'K))'+-\"%K1($+1!%+A!%[=!%+=\"$[E!$[=!(;E/\"[9!$+Y!#+U!&[I$&L)\"%<%\""
+ "#,%!&L-\"%,)!%\\A(&<9!&<9!#<5\"%L=\"#,E!#,I!'\\A'$<M!),M\"%\\U\"%\\Y##,Y!"
+ "$=!!%M%!'-1\")-9+%]-\")M5#$=9!'-9'%]I!(-=!%ME!&]A!'MM(&]Q%&]Q!!]U$"
+ "#-].#>!*'.-!&^5$(>)!$^1&(.1*'.-!&^5%'>A!&.A!'^E\"&.A!&.Q!'>U!'NU,"
+ "&.Y!&?!!(?!)&?)!%/1'#O)!#_1!\"?-!'/!$&?9!%/=!&?E!%/A!&OI!'OM%)OI)"
+ "#_U!'O]%)?]!$P%#(/]!(0-!(0)!(05!+01!&`5!,P9!%@5!&`A!(PI!*0I\"(@M!"
+ ")PQ&(@U!+@Y!+P]!(@]!)PY%-@]\")`M!)`E')`I!&`=!%@A!%@9!#`9!)01$(01!"
+ "(P)\")P%!(0!!(/]!+@!0&OY!&OU!*OM!#OE!)_Q)&OM!'_=!'/=#'_9!+O1!\"?1!"
+ "(>]*)?)()_-1'/9$&?%!&_!)&.Y!'?)%&NY\"&.M!)^E!$^I!'^=)(N5!'>=!&.=!"
+ "%N5%&.5!%^!!%N5%'.%!%^!!%]]!#-Y$)-=!'-M&#]M(&=E$&]E&&M=%'-E'%M9!"
+ "&M%&&M5*%M%!']-!%M)!%<U!&L]%&L]&%<]!$<Q!&\\M#%\\I#&\\I'&<E%$\\A#(LI!"
+ "&<9%$L9#%<5!%<5!%<=!$,5!#<%\"%,!!%[U$#+U!%+Q!(,!!$[I!&[E%$[E!#[E!"
+ "$[5!#;9\"&[5!#[9$&[1%';-/$;1&$J]!#[!!#:]##Z]!$J]!#Z]!$ZM\"%:I($JE%"
+ "$:E##Z=\"#JM!%*5#$:5##JI!%J-*#Y]\"$J-%\"J!##9M!&)U,%9A&!YQ!$II&#)1#"
+ "\"I5!\"95#$Y=$\"I)!#9A!#9E!$9=%\"YM\"$YU'$IQ%')U%$9Y!$9]$$*!##J%!#J5!"
+ "$Z9&#J9!#J5!#JI!#ZA!$*A\"&:E!$*Q\"#JI!%ZM\"%ZQ*'*U,%:U$\"[%!#ZY!%+)\""
+ "$;%##[5!$+1!\"[1!%[=%(K=(';A,&[E%&+E&'+I%$;M\"%KQ#$,!!$KY#%;Q\"&;]\""
+ "$,)!$<)\"%,)!'<9!$\\M#%L1#(,=-$<=&%<A!$L9\"%LM!#<=&#,M!%\\U#'LA!%L]*"
+ "&M!&%M%!%]5\"$=5!%M-!&-9#%M5!%]I!%M=!%=A$%]I!'=9(%]M!%]U!'.!!%]Y!"
+ "(M]-&]Q!%^!!'.)!&>1\"&>!\"%^-!(^M'(.9$'>A!'N='*N5+&.I!'NM''>Q!%^U%"
+ "+>Y-'O!!&O-\"%_!$(/%#(_!!'/1$(/1\"&?9!$?1#&OI!)_A#'_M!(_I%&OM!&P!!"
+ "(OY*&P-!%?]'*_]!(0)!%0!!,@)!)@5&%@-!(05!%@=!&`E!(09!(@E!'@I\")`A!"
+ "(@I!)`U!&`U!*@E)(@M!.@]!*`]+(@M!/P=!&`M!,`A!(@=!)P=!&`5!+05!)P-'"
+ "(P)\"*P%,*`!-&P!!&O]!&OY!%OU\"&?E!&OM!*OM!(_Q$./A%&OA!&?9!&?9!&?1!"
+ "&?1!&O)!*O)($_!!)?%.&>]!'NY!&>U'&.Q!&^Q$&.I!(.U##N=!$^=!&.A!(N1'"
+ "#NA!%^1!%^-!$MY!(=Y!%^!!%]]!%-Y\")=Q!(=M'%ME!)=I!&M=$%MA!&-=#(=9,"
+ "&]5&%]5!+])4*-1%%]-\")=%\"$=!!&\\Y!%<U!&-)#'LQ!(\\U!#,E!&,E#%<E!&<=!"
+ "#<=!$,5!$,5!'\\1#%L-#&,%%$<%\"&,!!&<!!%+Y!%+U!$;]\"%+1&#;A\"\"[E!(+=!"
+ "$;M\"$[=!&+9&&[%&$[1$\"[-!#[%!%K%$$*U\"#ZY!$*Y\"#ZQ!$:M$%:I$\"Z5!#ZE\""
+ "$JE!#ZA\"\"Z=!#Z9\"\"ZA!$J-%#Z-\"$:%$&J%+\"I]#$)Y#&9])#IM!#IY!'IY$#IE\""
+ "!Y!!\")9\"$)1'$)E$$9I%#YE\"%IE##YA\"#9U!$)Y#\"I]!%)Y$#:1#%Z1*$*%##J)!"
+ "$J)\"#J1!$J=!\"Z9!%:5!#J=!%*I\"':Q$!*M!#JE!%ZE*$:]#&[!*\"ZU!#Z]!'+1+"
+ "$[-!$+-!#+5!#[5!%K9(%;=\"&KA#%[A!$[1!%;I&%+Y!';E+#KY+%+U!$+]!&,!%"
+ "$<1!%K]#\"L-'$<-\"%<9!&<Q$%<=!%LE\"%<A!'LE&&<Q$&,M#%LM\"%<M!#,Y!&L]&"
+ "&M%!&=%$)])%&]-&&M-%%]5\"(=9,#=9%&]A!(-A+%M=!%^)!&=M#&-U!&>!#(=Y!"
+ "&MU%%]M!\">5!'>)!&^-%%^)!&.9!'.)!&.9!'^=#$^=!'>E&'>I!&.A!'.U*&N]\""
+ "%O!)&.]!%O-#+O%!&.Q!'O%!&_5\"&?-!(O5*%/-!&?=!&?9!#OE!&OM!&OM!)?Q'"
+ ")?Y!&OY!*@)+'?Y$&OY!&OQ!(/]!(P-\"&`5!&`5!%`)#&`A!(@A!(@I!&`E!(@I!"
+ "(@A!(@Q!*0U!)0M#(@E!)`M!&`Q!%@Q!(@E!)P5')0E$&`=!,@1-&`5!#`!!(@)("
+ "(0!!(0%!&OY!(P))%@)!&P!!&OM!&O]!\"_U\"%/A!(/M!&OA!%/=!'_9'*O5-%/1!"
+ "&?)!(_-&$_%!&?%!&.Y!&>Y!&?%!&?!!$^Q!)>M.#^M\"&.M!&.=!$^=!%N=$&.5!"
+ "&.9!'^%)(.-%%>1#%^!!)M]!%]Y!$M]!&]]%%]U!%]Y!'-A\"%ME!$ME!#=9!$=1!"
+ "%,]#&M5*']5!#,]!%M1!&-!$&=%$&,]#$<Y!'\\I+',]#%<Q!)<I$&<M!',=((\\=("
+ "%<9!%<=!%,-!&<9%%L5#\",)!#\\5#%<%!'K]+$+Y!&KQ($;I\"%+E)%+M!'[I$&KA("
+ "(+A&&;U\"$[9!$;5'$+1!$+-\"%K1$$[%%#[!!$+)\"#JM!%:U$$Z=\"$*U\"#ZA\"#JE!"
+ "#JE!%ZA\"$*=)%*A&#J=!$:)!#J-!#*5&$J%%%Z!*&9U'$9Y!#IU!#IQ!#YI#\"IM!"
+ "#)1#$)5'#)9#\"I!!#9A!#)=&$9I$$)M##9M!#9U!#J!!#YY\"\"9Y##IY!$Z1&#Z1\""
+ "#J-!$*1##*9\"#Z9!#*9\"#ZQ!%JE%#JM!%Z5##JE!\"ZU!#ZU!\"ZY!#JQ$$[!%\";%&"
+ "$[)!&[-!%[1!$+5%&KE$$[=!'KA,&;A&*;M,(;I\"$KU#!+Q!%+M!%+Y!$+Y!%KY#"
+ "%,%!$,)!%,1!%L1\"%,)!%<9!&,9$&<=&)<A)%<E%%<]!&,Q#'\\Q\"'\\]!'LY&&]!'"
+ "$M!\"%M%!'\\Y!%--(']1!$=1!'=9(%M5!$M=!%MA!&=A$(MI#%]M!&]Q!#=Q!%]U!"
+ "&>!\"$^)!*>!%%^)!&.=!'.-!'.-!'>E!'>=!%^1!&.=!'^I-'.I%'.Q%#NU!&.U!"
+ "&^Y#*.]1$_!!&O1!&.Y!(_%'&O-\")/-!&?5!!/5!&?A!'?9*'_E!%/I!&OM!)?Q-"
+ "'?M*&?E!&/M%%/Q!(0)!(`)$,@-!)P)!'P1$%`1\"&`9!&`I!(@=!(PA!+0I-(@E!"
+ ")`M!(@M!+@Q'(@Q!(PQ!(@Q!(@M!&`=!)PQ&#`9!$@9\"&`=!(09!%@5!&P1!\"`-\""
+ "(0%!(0%!(`%$&OY!&OM!&OU!*/U+&OQ!&O]!&?=!)?E(&?A!&?E!#/9#%O5#&?)!"
+ "'_-'%/-!&.Y!\"NY!$_!!,/%#%NY#&.U!#^Q!&.I!).A($^E!%.Q!(NA,&N9#'>=!"
+ "(^!)$N!!%^)!%^1!&-U!%]Y!%^!!%]U!'-Q'(MQ\"%]I!&]Q!%ME!%M=%&]A!*-=/"
+ "&=5$(M1.%]5\"&=-$%M)!%]%\"%<U!%\\Y#$LU\"&<Q%%\\U\"&LQ&%<I!%LE\"%<=!'<=)"
+ "&,5(%LA\"$L9\"&\\1#%\\-#$L)'%<%\"#<)\"&;]\"&+M%\"+]!$;Q\"#[M(%;E\"&[=!%[A$"
+ "(;U'%[=!$[9!%+9&\"[1!#[-!&;)#%+!\"#[!!$Z]%%JI!%*I#'ZQ+&:](#JI!#*I)"
+ "\"ZE!$:A($JA!$Z9\"$*5##Z5\"#Z-\"\"J%!#:)'\"J)!$9]$#9I!#I]!&9Q&#YM#&9I-"
+ "$99(#Y)#\"I9!#99!#)5&#9I!%YI+%)U$#IY!$J!%%*!!&:)\"$)Q$\"J-!$Z5)#*1\""
+ "&*-$#J=!#J5!!Z9!\"Z=!$JA!$JQ!$ZE\"#JI!#ZM!%[!%$*Y\"%ZY%&J]$#[%!#[%!"
+ "#[%!#ZY!$*]\"#[)!#K9$&;5#$[=!%KA#&KE,#;U\"$;I\"$[]$&KU'&+Y%&\\%#%\\%$"
+ "&<1!&,)!%,-!&\\=##LA\"'<=!%<A!$,=!%LA\"%LE\"&<U$#\\I#$<Y!%<U!&\\U&&M%&"
+ "%<U!#=%!%]1!#]%#$=-!'-5'&-1#&-A\"'-A'$ME!&]E!(-E!$MM*(-U!#=Y!%]Q!"
+ "%]U!'.!!$N)!#>-!$^5!%^%!'>-&$N-!'^5)%^=&'>9!$^E!#^I\"#NM!(NE!+^U4"
+ "*NI$(.Q#$>Y$&^Q##O!!(_-,&?-!#O-!%/-'&?A!&?=!#OE!'_I!'/I#'OU%%/A!"
+ "(/M(&OU!&OY!'_U!(0%!(P)\"(@)!-0)2)P9&(01!'`5%(@1'&`9!)P9!(@M!(@=!"
+ "(@U!)`I!*0M((`M\"*@I#(@E!&`E!)`E'#`M!,0A2+@1)'@5#&`A!)@!!)P1'(0-!"
+ "'`)&+/U\"&P!!'P-$)?]!*_M4'_M!&OM!'OE&)?M-(_9%&OA!'_9!%/1!&?)!)/A!"
+ "&?5!&?)!\"?)!#O%!#N]!&?!!&.Y!&^M$&.Q!'>M+&^E$'.E%&.9!'>=!&^9$$^5!"
+ "%^-!*^)!'>)!\"-]!&^5$'.!!(=]!'-Q&%]M!$MI!&]=!#=I!)-E+#]I\"'=E\"%M=!"
+ "$=9!(=9\"%]!\"%M%!']-!&M)!&]!\"%M!!'<]$(,Y#$<Q!'\\A#$LA\"$,A!%<=!&LI&"
+ "%,1!$<E!&<5%&L1\"#,1!%+]!&\\%#%+Y!$;]\"%+Y!%;I\"$+U%&;Y\"%[A%&;E&$[9!"
+ "%[-!%;A\"';A'&[-!#[5!$[%!\";%\"$[%!!ZY!#+!\"$*]\"%JM!%*Q&%JE!#JM!%*E'"
+ "&*9+'JM\"$J5!#Z9\"#J5!#J1!#Z%\"#IQ!#Z%\"$:!!#9M!%)]!%)Y'$)]#$9M!#9M!"
+ "#)1#\"I5!#YQ#&)A(#YI#%Y9%$YM'#YM)#Y=##IM!#)U0\"9]#$)U#!Y]!%:1($:!!"
+ "%JA\"#J1!$J=%#J9!#*E\"\"ZA!#JE!$*E\"%JQ!#ZM!%ZQ\"!JY##ZY!#Z]!!;%\"$+-\""
+ "#[5!%[-)#[A!$[5$$;=\"%;=*$[E$&[A!%+M!%;I\"$+M!&+Q%%+Q!#KU#([]-&,!."
+ "$\\!$%L)\"&<-!%,-!%<=!)<!!%<5!\"<M\"&<A%%<I!&<M!\"-!!&<Q%%\\Y''=%($<]!"
+ "%M5!'=)(!-!!&M)!(-1,$=1!%M9!%]1\"$==$%M=!&=U#$MM!&]M!#=E!'-U!&]]%"
+ "#=M!'=]!'.!!%]Y!'=Y\"&.5!)N-!'.)%&.9!&^=$(>A&&NM\"&NI\"$^Y!$^Q!&.U!"
+ "$NU%(^Y!'O%'&?!!#O%!&?)!'O5!*O-(+_9!%/1!%/I!#?A%)OA\"&/=%'?M$&_M\""
+ "&OU!&_Y!&P1!&`%!(/]!)@)&)P%!)0)%(0)!)P1!&`5!%@I!)`A!)`=')@5%(@E!"
+ "(@E!(PI!(@U!(@I!(@A'*0=)(01!(@E!'P5$(09!%@A!'09!&P1!(@1((P-\")01$"
+ "(0-!,@%!)P!'&O]!%OI\"&OU!,OQ*&OM!%/I!)?I'&?=&'_I!*O=3&O=!)/5!&_1#"
+ "$_)!(/)#%/1!'/!$&.Q!'NY!$^U!'>U!%^Q%&.M!(>M+'.A%&.I!'.9&'>9!$^=!"
+ "%^-!#N=!%]]!(>)!'-Y!(N!-%]]!%]Y!(=Y,*MQ,&MY$&-I\"$-A$&]I!&]5&%M9!"
+ "'M5*#]-#&M5$)\\Y!(=5''-)\"&=1.%<]!&\\Y+&LU!(,U(*-!!$\\I#)<E.%<U!%LA\""
+ "\",=!(L-!#L-'%,1%',1$)\\-#\";Y\"',!!%+Y!&;Q\"$+]!\"+Q!%;M&%;I\"&;E\"!K9#"
+ "%;A\"%K=$\"[=!%[5!#[5!%;1'';E+$+)!%+1!#Z]!!ZY!#ZU!#ZY!#JM!\":I#$Z=%"
+ "#ZY!$*A&%:=!%Z5'$J9%#J1!#J%!#*5\"$*%#!Z5!$:!'$)Y#%IU##)Q#$IM%#IY!"
+ "\"91#!Y5!!Y9'#9E!$IE%%IE##II!#9I!#IU!#YY\"$)U#$9Y!$J%%!J!#$IQ\"!Z)!"
+ "#:-#$J1!%Z5&%J9\"$J9!%ZA\"#Z=%\"ZI!#JE!$JE!$*Q\"$*U\"![!!$[!%\"ZQ!#+%\""
+ "$+)!#[5!#K1$#+-\"&+A\"%;1\"&+A\"&+=\"$[Q%&+I!';U'%[E)%;]\"%;Y'%K]#&,!!"
+ "\",)!&<%&'<1!%,-!%<5!&L5&$LA\"$\\1#%<A!&<E%&LE&'\\M&$<E!%LU!%\\Q#&M-%"
+ "%]-\"%<Y!%]%\"'M!*&=-$$-1$%M5!'M9$%MA!%]Q!(-M!&M])%MA!&=U-%]M!&N))"
+ "\".!!'MY#'>!\"%^%!%^)!%>-#'>5!&.5!%^-!(NA!'>9!'>I!%.I!&.M!'^U'&.Q!"
+ "'_!('.]*(^],$^U!(O-*&_=\"&O-\"&?1!#OA!(_1+)/A!&?9!#OA!'_I!&OU!&OY!"
+ "'_Q!&OM!#_Y!&P%!&OQ!)/Y%(0!!(01!'@1#(01!(P%\"%@-!'0=!%@=!(09!$@E\""
+ "&`5!(@E!(@E!*PE+(@A!)`M!(@=!(@A'\"@A!&`=!'@=#+05!)P-!(05!(0-!)@%&"
+ "&OU!/0!!)0%%%/]!&OU!&OU!(_U%#_]!)?I!)/A!*_5)&_Q\"'_9!&O5!'?5%&/-%"
+ "'O5!'?)%'O1!&?%!&.M!&.A!&.Q!#^Q!$^M!$^M!#NI!&>M!'>E!&.=!&>=\"(>Q%"
+ "&.)!%^)!%^%!'.-!%^!!'N%()M]!%]Y!%]Q!&-U!%MA!&]E!']5!%MA!'M-*)==!"
+ "%]1\"%M-!$]1\"%M%!#,Y!&-%#']-*(,Y,%M!!%\\U#%LM!#<M!%LE!%<A!%LA\")<=$"
+ "!L9#'L5'%<1!&L1&'L1+%,%!),)%&L!##\\)#%+M!&KU#$KQ#\"+M!$[I!$[I$$[9!"
+ "%+A!%[1%%[A)%+9\"![=!%[))#[)!%;%##Z]!$JY$$:Q#$:U#\":M\"$*M\"\"ZY!$*M\""
+ "#J=!$:I##:A##Z5\"\":5\"#J-!\"J-!#JA!!Z%!$*!#\"IU!#)U\"!YY!#)M##9M!$)=$"
+ "$)1$$)1'%9=%#I=\"#IA!#9=!#9A!#YI\"\"YM!#9A!\"II$#IQ!%:%$#Y]\"%J-&$:1!"
+ "$:%!#J=!'J1'$Z9\"#ZQ!$:1#%*M'&*E##ZM!$:9##ZY!&;!#%J]!#[!!$*]\"$[%)"
+ "&[%&$+%\"\";1\"$+A!'[-&$K=$$[1!%+9!$KE#$[I!#+M!$;Q\"'+M!#KU#&<!&%,)!"
+ "&<1!%\\)$$,-!'<!&#,!!'\\5($<-&$\\=#%<A!\",M!&<I!$\\=#(LQ!$<U!%LY&%-!$"
+ "(=!)$]-\"#=!!&,]#%=%*%M1!%]-\"%M5!&]A%$=9!&]A!'=A(#=E!%]Q!&MU$#=M!"
+ "&]Y%$N!!%]Y!$N%!(N5&&.9!&>1\"'N1()^91&.E!)>E$&.E!&.I!'>9!&.M!&.U!"
+ "$^E!&.Y!&.]!&?5!(?-)&?-!$_)!%/1!$?1#&?=!$_)!&?E!%_E$+OA%%/Q!'/Q#"
+ "(_Q%&OQ!'_U&&O]!(/]!(0!!&`)!(@%!)P)!)0-%)P5!&`5!(P5)'/Y\")PA&&`9!"
+ "&`=!(`A#(@9'#`A!(@=!(@A!(P=\"&`=!(09!#`9!)@9%(05!&`=!(05!(0%!+01!"
+ "(0%!)@!&&OY!&P-!&OU!(OQ*)?Q!*OM!)/I,'_5!%/9!(/=\"*?9!(/5(%/1!&?1!"
+ "&?A!#NQ!&.U!'O!'&.U!(.Y)$_!!$^I!%>A#$^I!'>E&&>E!&.A!$^5!&.1!$>-$"
+ "#>1!'.1!%N)*%^-!#=Y!%]]!$MU!'-U!\"MU''=U'&N-$#=I!)=5\"&-A(%]I!$]A\""
+ "&M)!%MA!%MA!%=)$%M)!%]!\"#=)!%<]!%<U)&<U%%<Q!',Q-'<Q)%<E!#,A!%LI\""
+ "&,9$%LI\"%L1\"'[]$$,-!'L),$L!#%<!!&;Y''L%,%+U%$KQ#%+M!%;A\"$[5%$KA$"
+ "$[-%$[E!#+1\"$+=!%+1&$K)$#[!!#[)!#Z]!#ZY!%*Y'$*U&!*Q!$*Q\"#JI!\"ZE!"
+ "&JA*#Z9\"$Z)&#Z9\"%J9\"%Z)#\":-#\"Z%\"#)M#$J-%%J!#%YY(#IU!&:%\"%9U%%9I)"
+ "#9=$\"X]\"\")9\"#Y=&#9A!$)A!#IE%#YI#\"IM!#9U!%)U($IY&'I](#Y]\"$J%&#J)!"
+ "#:-##JA!%Z5&#Z9!#Z1\"%J5\"#*9\"%*E'$ZU%$*M\"&[!*#ZQ!$*Y\"$*]\"#ZQ!$;-#"
+ "\";1\"&K9($K5$#[1!#+1!'K9$#+=!&+A\"'+E.$[I!$+Y!$+Q!%+M!&KY'%;]!%,!!"
+ "(+Y!&<-!%,%!$\\-$&,1%%<5!$L5\"%,=%&<M!$<=!%LA&(<M$&,]##,U!&LY!&-%$"
+ "']%!&-%$%<Y!%M1!$-9$)--!%M)!$=9$%M1&&]=&$ME!$MY!#=A!%]M!$MQ!%]Q!"
+ "#]Y\"%M])$MU!'^-#(>)!'N-\"%^1!$N1!&.9!'>=!&>=\"$^E!&>E\"&.]!&.M!$_!!"
+ "'>M!$.Y\"&.]!'NY!&?!!&?!!%?5\"#O-!&?=!&?5!$?=#)/=!&?A!'_A!)OI('_I'"
+ "*OM!%/Q!&?E!&_Y!(/]!%?]!(@!!'_Y!)P)!)0-%+P5*)@1&&P)!*P)2(P9\"*050"
+ "&`9!(P=\"%@9!&`9!&`A!(`9#&`E!(`5#&`9!!0A!(@-!&P1!)P%!)P-!%@%!(0%!"
+ "&P!!&O]!&OM!)_Y\")?U!&OU!%/M!#_M!)/E!*OI!'OE&'_=!(O9*%/5!$_)!#_-!"
+ "%/1!&_%(#O-!#O%!(/!(&^Q#$^Y!+NY'&^U$+NQ(&.=!#NI!&.9!&.=!&^E$&.-!"
+ "'>1!%^!!'.=&&-]!&.!!$N)!%]Q!'=I(%]Q!%]M!%]M&&]M+$MA!&-E\"$=1!&M9$"
+ "(-)'%])\"%M-!%M1!$])#&M!&&,]#%])\"'\\Y!%<U!(LM&%<E!&\\I'%LE\"(LA&&LA!"
+ "&,9$&,-$&<1!%L)#'\\),$,!)%,!%'+Y!&+M%%KU#%+U!\"[A(%+=&$[I!$[E!#;A\""
+ "$[I!';9(%+5\"&K=$%:]'([1\"$JY!\"[%!$+!\"%[!!$*]\"'ZQ/$JI$$ZM%\"ZI!%:E$"
+ "$*-##J=!\"Z5!%Z9*#Z9\"%:A(#J-!$Z%&$:!!#J!!%)]$&)I%$:%$\"YQ!$IQ&%YM("
+ "\"Y-\"%95&\"Y=\"\"YA\"#91!$Y9'$IE%%9M%$99%\"IM!%Y]+#*!\"#YU\"#J!!%J-%#J)!"
+ "$:-##*5\"$:%$#J5!$JM!#JA!$:E#$:M$$JI$#ZQ!#JM!#ZU!#ZY!#[)!'*Y'!;1\""
+ "$;-\"#[%!#[9!%+5&%;5\"%;9\"%[=%$[1!$[A!$[I!$;M\"$+M!%;U\"'KY+&+]%%,!!"
+ "%;M\"',!!&<!!%,-!*L!'%\\=#%<5!%<=!%<U!&\\Q\"%LI\"#LQ#&<Q)%\\U#(<U$#,U!"
+ "%]!\"'LY!&=)$&M%%)])*%M1!%M5!&-A\"#M=&(-A!$MI!(-E!%M=!%]I!&MQ$'MU-"
+ "']Y$'=Y-%^%!&^%*%^)!%^-!'>A!#NA!&N5#$^9!&.=!&.E!&>I!$^Q!&^M$\">Q!"
+ "'_%!'O%!(O!%#^E\"&?!!*?)!&?)!)/%((O)*&?9!&/1%%?1\"&OI!'_E!)/E!(OE$"
+ "&OM!#_Q!#_Y!&P!!%?U!&O]!)@!!'_Y!)P).&P1!&P1!(0-!)01$(05!'@-#%@=!"
+ "(09!#`9!&0E#&P1!&`9!(09!)P5!(`5#*`)!(P1\"+01!,`-)*P%%)P)!-`%!+0)("
+ "(0%!&P%!(OY*(O]#&OU!'_I'&O5(&?E!'_E!\"?9!'/E)&?=!(?A)&?9!)?5.$_-&"
+ "#O-!&?!!$_%!&.Y!\"NY\"$.Y\"*>M((.Q)&.I!&NI#&.M!'>E&#NI!)^A!%^1!#>-!"
+ "\".1!%^)!%N-%'N)#&^%%!]]$%]U!%]Y!&MQ$&=M#)]]\"#=E!%MA!%=A$']=%&-A\""
+ "&M-!%M=!%=!*'])!&M%&%M!!&<U%$<Y!\"<U!%\\U\"#LQ#!LI#'L5+&\\E\"%<E%(\\=\""
+ "$,9!%\\E((L1'&<1!$L)#%,-!&+]%%<!!(KU#%+Y!%;Y\"&KM+#[M%%[I!%;E\"%+A&"
+ "&+=!'K5(%;5#%;5##[1!#[-!#K)$$+-\"#[-!!*Q!#Z]!&*M+%*Q\"!ZM!!ZI!\"ZM!"
+ "\"Z9!$*=#%*5##*1&#Z5\"$*%##*5\"#YQ\"%I]#$:!!$)]#\"IY*#YM##IQ!$)M$\"I5!"
+ "#I5%$Y5*#I9(\"Y9\"$)9$\"YE%\"II!!YY$$)E$#9U!%IU&#)I#':%&$:-$$*%##J1!"
+ "\"*5\"#J1!\"J1!#Z9\"&:=,$JA!$:A#$*E'$JU$%:A!$:Q#&JU)%JY!(+%'%;!'$J]$"
+ "$+)\"\"[)!\"[1!![%!%[5!%+M!%+=\"&;=''[E$&+M%!;U\"$;Q\"$+M!&+]!&[]#&+]!"
+ "&L!'%<%!)<-%%<-%&<!!'L1\"$\\9('<9!$,A!&\\E'\",M!&,Y#(<=.%LQ&%<U!\",Y!"
+ "#L]\"&]!\"%<Y!'=-(&-%#%M1!&-=#%]M!%]I!&-=\"+MA&'-E''ME)%]M!%]Q!'MI("
+ "\".-!%^!!&]]%%^)!'N-\"%^1!%^1!%^A&#N5!&.E!'.A%\".1!&NI#&.I!&>E!&.Q!"
+ "'>Q&'>U!&?!!&.U!\"?!!)?!\"&?)!&?1!&?1!&?9!&?-!$O)$'_=!'_E!%?A!$/U("
+ "&_U!&O]!'_M!&OU!'/Y#'_Q!&O]!'0!\"(/]!(0!!(`-$(01!)/Y&&P%!,@1!(0-!"
+ "&`9!&`5!(0-'#0-#&P1!(P5)&@1%+P=0(01!)PE&(`-$*`)!*`)!&P%!(@1'*_Y!"
+ "%/]!&OU!'/]\"&OI!&OQ!\"?U!&?9!)?I!'?I$)/A!'_=!&_A\"\"?5!&^]#&?-!&.Y!"
+ "(/=.#O%!'O%!&_-#(.Y)&NU\"&.Q!$^M!&>Q!%NI$'>E!&.A!'>9!'^9#)>5%&.9!"
+ "$^A!$M]!#N)!\".%!'>!\"(M]'%^-!&MU$%^!!']M*%ME!#=E!%MA!&]=!%-=#%M9!"
+ "&]5!%]1\"%M1!(--+*M%$']!!*-%!(\\Y&%\\Y#'\\Q+%<I!&LU!%LI!'<E*$,=!%L5\""
+ "&<)&%<=!%,1!';U&$+]!&;]!(,%.%+]!%;]\"&+Y%%L)\"$[I$$[M$\"+U%%+=\"%;9\""
+ "%;M\"%+=\"%;9\"&+5&%[1!&[5!#[!!$+)!&+!+%*Y&\"ZY!%*A'$*Q\"':A%#ZI\"#J9!"
+ "$ZA\"#*=\"$J9!#J5!$J5!\"Z9!!*-!\"IY!#Z%\"#J!$#9U!$9Q%#YM#$IQ%'9M'$)I!"
+ "\"I-!\"95#$I5&&)5)$9A(#9I!#YM#$YA'#YM##YI#%)Y!!)Y!$Y]#%Z-#!*-$#J-!"
+ "$*1\"$:-!#J-%$J9!%:5!#Z=($:E#':E)$ZI)!ZM!#JM!$JY$\"JY##[)!#[!!![!$"
+ "&+)\"$;)#$+)!#[9!&JY!$[9!(;I&'[A!%[E!%;Q\"&KM($+]!%+Y!'[U$%+Y!%KY#"
+ "'<-!$\\!$%\\)##\\1$%,1!&<5!&<A&'\\9#$LA\"&<E%$\\Y#&LA&&<M!&LY!$<E!#,Y$"
+ "$L]!&M!!%M%!(=-(\"]%$%]1!%=I(\"-5!&-9#%M=!#]=(&]I%%]Y!%]U!%]I!%]U!"
+ "&=I#(>%!%]Y!#=]!$N%!&N1#%^-!&.1!$.9#)N%!&.=!%^=%'>E!$^I!$.U\"$^M!"
+ "'NU'$^U!'.Y%$^]!'O!!&O%\")/-!&O)\"'O-&#O5!'/!$(O9*$/9\"(O=**O=!)/E!"
+ "'?I$#_Y!&P!!%/Q!\"_U\"(/U'&`!!(/]!+05!(0%!'@)#)P)!*`%!)P1!(@-!&P1!"
+ ",@-!(P)#*@1++01!%@1!%`1)(0-!(01!(`-#(P5\"&OY!(01!(`%$(P-\")?U!&OQ!"
+ "&O]!&O]!&_U!&OQ!%/Q!&OM!)OA)*_M-(OA$&?E!%/9'&O-\"'O5!(O9$#O-!&?)!"
+ "$_%!&.Y!&?!!)?%('NE!'>A!$^U!&.M!&.E!(.I$'>E!&.Q!&.=!(>A+(>1!&.9!"
+ "*N-%%^-!&.%!\".-!%^!&%]Y!$MY!(]U#&>!#']E*&-I0%MA!%M-!'M5$&=9$%-9$"
+ ")]93%M-!%M%!$=%!&,]#%M!!%<Y!',Y#(<U-',Q#&LQ&%<I!#<E&$L=\"%\\A#$,5!"
+ "!,A!%<-!$<-!%<5!%,)!%\\)#%<!!%+]%#+U%&+U%%;U\"$KU#\"[I!&+Y%%KE#%+Q!"
+ "$;=\"&K9$$+5\"%+)\"#[-!#[)!$[)!#[!!$;!\"%:]$$*Q\"%ZQ*$*I\"#ZY!\"ZE!#Z9\""
+ "\"*A!%Z=#%*1'#J5!$:1'!*9!$Z)#$*-#$Z%\"#I]!\"I]!$IY\"#9I!#9Q!#IY!!YE!"
+ "#Y1#\"I1!\"I5!!)=!$I=#\"9A#$I=*$9I$#9M!&IQ.$9Y!$IQ%%J!)$Z!&#J%$$J-\""
+ "\"J)!#J-!!Z%!%:5!!:9\"#*9\"$:U$$ZE\"#JE!#ZQ!&JQ*#+)\"\"ZY!%+!&#[-!#[)!"
+ "#Z]!#+%!\"[-!%[5!$KE#$K=#%+5\"&[=!$[E!%;I\"&KM,'+M!!+Q%&;Y&%+Y!'[]$"
+ "$+]!&L-'%L)\"&\\-()L5+%<5!%<-!',9)%<E!&\\9(%<=!%\\I#%<M!(<Q$&LQ&&\\Y'"
+ "%<Y!&LQ!%\\U\"'M)*%M)!&]-&*-!!(=5,%M9!&]=!&]E!&]E!&=E##==!'-I&%]I!"
+ "'MY#%]Y!%]Y!#>!!'>%'&.)!'.-!'>)''-]&&.5!&N=#&.=!&.A!%^=&'NI''>M!"
+ "&.Q!&.I!&?!!&>Y!&?%!)O!$&?%!$_)!%?-\"%/1!&?9!&?5!'_M&(/=(&?A!)/E!"
+ ",?E\")_U\"*_Y!'OI%&_U!)?U!&?E!'?]#&OY!(0%!&OY!+01!,`)#)`-\"$`-%,@-!"
+ "&`5!)P)!&`=!+@5('`1,.@-6(@-!,0-&'@)#(0)!*P)%'_U!+O]$(0!!\"?Q!(P!)"
+ "!/E!'0!\"&OQ!&OU!%/M!%O]\"\"_E\"'OE&'?I$'?=$&?9!%/5!%O5#&O1!'O)&&.]!"
+ "&?%!(?!$(^]!&_!#%.Y!&.Y!'NQ'&.Y!#NE!&^A$&.A!$^=!(>A+&.9!&.9!#NA!"
+ "'.)!'.%&$N)!(=],&-Y!'-Y&&-]\"'=U(%]Q!%^!!%]I!&=I$\"]A#'-='%M9!%M-!"
+ "'=%(&-)#'=5$*-)!%M%!&=!$%,U)&<]$%LM&%\\Q#',M#$LI\"&,I#\"<1\"\"L=#'<=%"
+ "%<9!&<5!%\\1#%,%!%K]#%,%%%<)!%;]&#,!!%;U\"$+U!\"[I(\";=\"%[A%%[E!\";A\""
+ "%KA#$K=$%+1\"&+1*'+-/%[))$[-$#ZY!#J]$&JY!$*U\"#ZU!$*I&$ZA\"$K!$#J9!"
+ "\"ZA!%Z=#%Z9\"$J5%&:1!%:-(\"J!!#J%!%J-&#J!!%*%$%YY#$)M##YU\"#9A!&9I*"
+ "#Y-#\"I5!$)='\")%\"#9=!!IA##Y=#\"II$$9I$\"IQ!#)]&#IM%$9]$%:!$$Z-&#J%!"
+ "#*%\"#J-!%J5\"#J9!#JE!$*=\"#JI!#:M#$JM%\"ZQ!#[!!%:]'#*Y\"$[!)\"Z]!\"ZU!"
+ "![1!#K5#%K1$&+%'%K9($[=!%;A\"%K=#&[I!';I\"\"KQ#$+M!$+Q!'L!#$;Y\"%+U!"
+ "'[Q-%<%\"&,%)&L1&&\\1(&<5%#<1!%\\%,&<=!%\\A#%LI\"&,Q#&\\M\"%<I!%\\U\"'\\Q&"
+ "$L]\"%M!!&M%!'-)\"&])&%]%\"'=5(%M)!$]9\"%M=!%]A!)=E!%]I!&=Q(%]Q!'MU)"
+ "%]Q!&-Y')>%%%^%!$N%!%^)!'^-$&N1#&.)!&^5%&^%%&.=!'NM'(>E+'>I!&NI("
+ "(^Q!(>I%&.Y!&.Y!(^Y!'_!!&?!!'/))%^Y%'_A!#O1!&?=!&?=&&O=!(?=**/5+"
+ "(/E!#_M!&OE'&OQ!)?I!&OQ!'OM%&OU!&O]!%?]!)@%&*_Y!%@%!*`%!)P-!(0)!"
+ "*@1$(/]!\"@9!&P-!*`1&,@)!(0-!&P!!)P%!*`%!&/]$(/]!*@!%&_I\"(/]!#_Y'"
+ "\"?]!%/U!&OQ!*_Q(&_I\"%/I!'/E*(_A%&?A!&?=!&?9!'O5!&?1!)/-!(?-)\"?)!"
+ "'/%$*/!!&.U!&>]!&.Q!'NY'&>Q!'.M%&>Y!&.E!#NI!&.9!'>9!&.%!&.=!'>-!"
+ "%^-!'.%%'.%%$N!!%]Y!%]E!&MU$$MM!(-U*+-I)$MI!%ME!%ME!#=5!%-5$&-1#"
+ "&-=\"&M5%%=)%#=%!(-)\"%M!!'-!(%\\Q\"#LE\"&LQ&$<I!%<U!(\\A0'\\I&'<=&$L9&"
+ "(\\=,&<)*$,1!'<)!%L%'\"<1\"%\\%#%+Q!%+U!%;U\"$KY#)+M!$[I!%[I!%;U&%+A!"
+ "$+=&$;5\"\"[=!\"[!!#[!!&;-(%;%'#Z]!%:]'#ZY!$K%'$*Y\"&*Q'&JI*&*A(#:M#"
+ "$J5!#Z=!$:9#$J5!#Z)\"\"Z9!$*1\"%)]!#9U!#J%$%)]'\"9U#\"I]!$9Q!%9M%#I9\""
+ "#)1#$(]$\"Y5\"#YI#&91'#YA#$9Q!#9Q##YM#&9Q*%YU+$Y]#$)]##J%!#J!!%:1$"
+ "$Z)\"#*5\"\"J1!#J5!#J-!$*)#%ZA*$JE!'+!/%JA%$:E$!ZU!#ZU!&[!&$J]!$[-!"
+ "$K!$$+)\"#;9\"$;1\"#+5\"$[%!$[-!%;A\"'K9$#[A!$[E!$[Q%$;Q'&;U'%;Y\"&;]\""
+ "!+Y%%\\)#$<%!%\\%$&L1\"%,1!&L)#%<9!$,=!$<)\"%L=\"%\\I##,E!&<M!(\\U&&,Y#"
+ "$<U!*-%&%M!!']%+%M)!%M1!&=1$&M)!%M9!%]Q!*MA,%]I!%]Q!%]Q!$MM!%]I!"
+ ").!%%^%!%]]!#>!!%N%%\".%!&-U!'.!!&^1%&NE#&.9!'.=&&.A!&.E!)^E&(.Q$"
+ "+>M!'NQ!&.M!&NY\"&?!!#N]!&?!!'/-$(_)!'O-&%O1#+/%%&?5!#O=!$/E\"*OA!"
+ "'_A!(?U\"&?E!'_E!&OU!&OQ!%/U!#_M!$@!\"'_Y!&O]!\"@%&&`-!&P)&#_]!(0!!"
+ "(0%!(0%!(0!!&/U$&P1!*0%*(0!!)P%!(01!+/]((0%!&`!!(/]!&OY&%?]!!/]!"
+ "&OY!$OU$&_M\"&OQ!%/E!)/A!+/A#%O9#&_9)&?5!&?-!&?5!&/-&$_%!&O)(&?%!"
+ "(/!.&.Q!&.]!&>Y!&.]!&.Q!&.M!).I\"'>I!&.I!&.A!#N=!).=#$N1!#>)!&.=!"
+ "'>9!%^%!%^%!&]]%%]Q!%]U!#]]\"$MQ!$]E,#=U!&]A!$MQ!%ME!%M5!#-9$%M)!"
+ "%M1!$]9')M)2&=)$#=)!&<]$%<]!&,I#&<U$'LU!'L]!&<A%&\\E\"%<I!&<E%&<9!"
+ "%<5!%\\A#%,%!'<-!#L)#%,!!$+U!\"[M$$KY'%;U\"\"+Q!$KM#%+U!&+E&%;E\"$+1%"
+ "$[E!&+9*#[E!$;)#$+-)#[!!#[%!!+!$$*]\"#[%!$:M'#ZI!$ZM%!ZY!#JI!!ZU!"
+ "$:E##J5('*9)%J1\"$J1%&*-%#J!!%*)'$*%#%)Y''*1-\"J)##)Q%#9Q!$*!#$II%"
+ "#9)'\")5\"#Y=#\")=\"$9=%$Y='\"9M##YI&#IY!%I]&!YQ!#*!#\"IU$#YQ#&J!#$*-#"
+ "$J=!#Z-%$:)(#Z-\"$J9!$*M\"$:=#$Z5\"#JE!\"ZI!%:M+$*A\"%J]!#ZU!$Z]%#+!%"
+ "$*U\"\"[!!%;-'#+1\"$[I!&K1(&K9('[=!%+E!%;M\"%[I$$[I!&+U!&[U)$<%\"&,!!"
+ "%,!!(,)-$<)\"%<%\"#<)\"&,1%(<1*%<9!%<=!&<A%%,9%'LE!$LU\"'<Q)%<Q!$<M!"
+ "$=!!#<]!%M!!'=%$%M%!%M-%%])\"&=1$&]A!$M=+&=E$&-A#&=A$&]E!%]I!$MQ!"
+ "'.!%)=Y!&]M!(-]*%^!!&.)!'N-(&>!#&N-$%^-%\".%!&.=!&.5!%N=$&^=$&.E!"
+ "&.Q!&.Q!).]-'^U().Y!(^]!$^]!&?!!&?%!&?-!&_-#&O1!'O%!'_5''O-!%O-#"
+ "&_A\"*/U+&?E!&OI!'OE&&OQ!(/]!%/]!&_U!&OU!&OY!&OQ!&OY!*0!#)?]!&OY!"
+ ")`!))@!!)?]!(/]!)P%!%`%#)?]')@!!(_Y$&O]!,P!0*?Y1&_Y!&OY!&_Q!(/Y'"
+ "&OU!&OI!\"?I!&OQ!'_9''_9!&?E!%/=!&_1\"&_5#+?1%&^]#&?-!&?)!*?1!&?%!"
+ "'.]%'O%!'NY!*N]\"'.Y%&.M!(^Q!$.M##NE!&.A!'>A!#NE!&.5!&>E\"'^-#%^)!"
+ "%^1!%.1')M],%]]!#^!\"(=Y!&]M!%]I!%]M!$MI!&]E!)-Q*%M1!%M5!)-5&%]5!"
+ "#=1!$=-!'-1''])!'-!(%<]!%\\]\"&LU!%<Q!%]%\"%<=!$,9)$<M!%<A!$L=\"$,=!"
+ "#<-\"$,A!&<)&%L1\"%L)\"(<%/$<!\"%KY#%+Y!&+U!&+Q!#KU#&[E!$[E!&KA(#[=!"
+ "%+9\"'+=&$+5\"$;1\"%K1((+)'$;%#$+!\"\"ZY!$JY!#ZU!#ZQ!$*M\"\"*I!\":E\"$ZU%"
+ "#:E#$:M'#*=\"\"J1#\"J!$#J-!$:%!#Z)\"&Y]!')Q'$9M!$)U##IU\"\"IQ!\"IY!#YI#"
+ "\"Y=\"%95&\"I9!#Y9&$YQ#$)I!$9M!#YM#%IQ'%IU-$)M$!IU##IY!\"9]#$)]##J!!"
+ "$J)\"#Z1\"#Z1\"$:1#$Z9\"!*9$\"Z=!$:=##JI!$ZE\"%*I\"$*U\"%[)!#ZQ!!ZQ!&+!*"
+ "&[%&#[1!%[1)\"[=!\"+%!$[5!%;5\"%+=\"$;A\"%;I\"%KI');M+$+Q!#+U!%+Q!%<!\""
+ "',))*+Y%&,%!$\\)#%,-!%,-!%\\5#%L-#%<1&&<A%%<E!%<I!&\\M'%L5&&<M!#LY\""
+ "#<M!%\\]\"$LU\"#=)!%<U!\"-5!']9+%]1!%]A'%M1!&-=#$]5'#=I!&]Q!%-]#%]M!"
+ "'-M'%]U!%]]!%]Y!%^!%%>%#)^)!%.)\"$^9!%^1!%N5%&>E\"(NA!&.A!&.E!\"^E#"
+ "'>M!$^M!&.Q!'>M!*NU.\"_)\"*.]!(^U!,/%/'?)%'_-(%/=!&?5!'/9#&?9!&?9!"
+ "*OA!&?A!%/E!&?A!&OM!)OU.'OE%'?M$#_I!,?Q\"'_U!&P!!\"?Y!\"?Y!*/]#&O]!"
+ "(O]*(?](&P!!(0%!(0!!'@!#*OM!)P!!&O]!'P%$*OU2&OY!&OY!&OU!'@!##_Q!"
+ "*OQ&&OI!%OM\")/A!(/E!&_Q!#OA!'O5!'/A#*?)!&?-!&O-\"&>Y!&?%!&_1\"(/!("
+ "(_%!%.Q!'NY!&^M$(NQ+(>I*(NM!&NI#)^E!%^1!)N%!%^)!&.5!(>%!&>5''>-'"
+ ")=Y!'.)!%^!!&.%!'MU#$]M!%]U!%]U!&-I\"%]I!&-E\"'-A!$M=!%MA!&=5$'M=$"
+ "%]5\"&=-)$<]!%M9!%<Y!(,]\"$<Y!%M!!&<Q$%<M!%L9\"&<=&%<E!\"\\=$%<=!$,A!"
+ "'<5%%<5!%L!#%;Y\"&L%')<!%&;]\"$<)!%+U!$+U!$[Q$$KM#%;5\"%+9\"#KA#&[E!"
+ "#[9!'K=-%+1!#[1!&+%\"\"[)!#[-$\"[)!#+!\"$ZY%%+%&$ZQ!$JE!#*A%#JE!#Z=\""
+ "#JM$!JA'#J=!#ZA\"!:-\"#J%!#Z-\"\"J%!#J%!&YY(!Y]!\"YU%#YQ#!)E!\"YI($)I!"
+ "#99!\")%\"#95$\"I9!%9=&#9A$#YE#\")A\"#IQ\"%9M%#)Q\"&YQ$%:!!%I])$Z!'#Z%\""
+ "$:-#$*-&#J1!#J=!#J5!%J5)&:=,#*E%\"Z5!$*M\"%JU$&*U'%:U($+!\"\"ZY!%;)#"
+ "#[1!#[-!$+-!$[-!%+1\"&+5&%+=\"$[9!'+1\"%+A!$+I!$+M!'+Y!#+U!$,!!#+Y!"
+ "%+]!%[](!,-%&\\-(%\\%$%<)!%L5\"#<=\"%L=\"&<Q$%<]!%LE\"'LI*&\\M'%LE\"$\\U#"
+ "&LY!'<I)%<U!%]%\"%M)!'=9#%-%$&=-$&-E\"(-1!%M=!&-A\"$ME!(-I!']I*%]M!"
+ "&-M\"'-]!&-]!%]Y!&.!!%]Y!(>)!$N-!(>)%%^1!'>5!'>-'&.A!'>I!)^A!$^=!"
+ "&.Q!&.M!&.M!&?!!&.Q!&?%!&?!!#O!!&?!!'?1*#O-!&?)!#/5$)/5!'?1*&O9'"
+ "(_M0(/=\"&?A!)?E!)_9*'/I#&OI!&_M\"#_Q!(/]!*_U!'_Y!)?U-&P!!(0-'(/]!"
+ "'?Q$$?]\"&O]!'P)$(/]!'@!$+OU+&OY!&O]!'OQ%&O]!&OY!'_U!)?I!&OQ!(OM*"
+ "+/I)+OA+&?=!)?E('_E!%/=!&_=\"%_=$*/5%&?1!'?)%&?-!(O)0'O!!&?)!'.]$"
+ "&>]!&N]\"&^U#$^M!$^Q!&NE#'O!!*.E2&.Y!'>A!'N=,%^-!&.5!%^1!'.1!).)*"
+ "%.!\"(^-#']Y$%]]!%^%!'-U!%]Q!&=Q#&]A!'MI))-A+%=A$(==\"$=5!%]-\"%]1\""
+ "$=1!&-5#%-)(\"])$&M!%$L]\"%<U!%,U$$<M!(,Y\"$<A!)\\I+%LA\"#LI#%,-!%,-!"
+ "'<%&%,1!$<-!'\\-##<!*#,!!#,%!%,%!'+]!&[U(&+U%$[Q%%[I!&+U%$[5!%[I!"
+ "$+9\"$[A!&+1\"$[1!![%!$;)\"#[%!!Z]!#Z]!$JE($*Q\"$*Q\"%JM%$:M$%JE%#ZA!"
+ "#ZA!#JM!\"*1\"$JA$#ZI\"%:5!#Z%\"&J%#$I]\"$)]#%)]$$YY'#IY!!I]##9I!$IU%"
+ "\"I%!!)%'$)9!$)9!#9A$#)=#$9A!$9E!#II!$YM&#YM#$II#%IY'#IY!$)M#!*%!"
+ "#:%'#J-!#Z-\"%*1'&ZI'$J1%#J=!%*A&$*U\"#ZQ!\"*Q!#JI!#:U\"\"*Y\"$[!!$[!!"
+ "#[!%&[!&&K)!$K1$$;)#&;A'&[5!%[=!%+E!%[A!%[U$&+I)$+I)&+Y!%;U\"$[Y$"
+ "&[M)%;]\"),%%#,)!#,-!&<1!%<=!\",5!&<9%)<=2$,=!%<E!&<=!&,U#%\\Y\"&,I$"
+ "&LY!$=!!&=!$%M)!%<U!%M9!'-1'%=5$%M)!%M9!%]A!)]E)%ME%%]I!'-Q!%ME!"
+ "&=M#&=Q#']Y$'=]'(>%!(N!()N%!%^)!'N%.(.1*%^1!'>9!(NA!$^I!'>E&%>E#"
+ "$^I&(.M)&^Y#(NU&(NQ+#>I%*?1!&^]#&?!!&.]!&?1!&N]\"%/=!'?)%&?5!'O)'"
+ "&?5!*?9')/=!&?A!'_A!'_E!*O],&?=!'_Q!'_I!)/Q,&OI!%?Q!(0-!&OY!'/M#"
+ "!0!!)?U!,OY*&OU!'_Y!(_Q+(?Q\"$/U!%/U!&OY!&_I\"&OQ!&OQ!$OE$'_I&#_9!"
+ "%/=!'_I!'_M!-/A'&OA'(/A!&?9!&_5\"&?9!&?1!&?-!&?-!&.]!$_!!&O!\"$^Y!"
+ "$^]!'?%&&>Q'&^U$'.M%$^M!)>M#(NI!)^E&&.A!&.=!(N9&&.5!&.9!%^)!&N%$"
+ "&N1#%^!!&-]!&M])%]Y!(>!!+=U*%]I!#]I#%]I!%MA!'-A!&-=#$]9\"$M1!%M)!"
+ "&M)%$=1!&-%$%<Q!%M-!%M-!%\\Y##LU\"\"LU#%\\U#(\\I\"%<=&$<=!%<A!&<Q$%<A!"
+ "%<5!&L1&&<%!'<)!&,%!'[U%#;]&\"+Q!%+Y!\"+M!$[I$$[M%&+A&$[5!%[A$$[I!"
+ "&;5\"%;!'#[1!#[1!$;)#![1!#;%&$+!\"$JU!\"ZY!$K!$%*M\"$JM$!*E$$JA!%JM("
+ "#J=!#*9\"#*9\"$J5!#:1##J-!!J)#$*!##J!!$)]'$IU%$Z%\"#II(\")I\"#9Q!\"IE!"
+ "#9)!\"I-$#Y-&#YI%#YE&$99%\"YA%#9A!\"I=!#YE#%IM&&IU$$9Y!&9])$)Y#$J)!"
+ "\"J-!!*%!$Z-&$*9&%:-!#ZA\"#Z=!':A)$:A#%:5!#JI!#JI!#ZU!$*Y\"%*U&\"Z]!"
+ "#:]\"#[%!$+5\"$;-#&+1&#+5\"$[5!#[E!$[I$#[A!$[E!%[5!\"+M!$+Q!$+Q!',)%"
+ "%,%!%,%!&,%%%,!!&<)%%,)!&,1$#,-!#\\9(%L9\"$LE\"&<M)%<1!&,E(%\\]\"#,]!"
+ "&<U$',U#$=%!*<Y#%]!\"&M)!%M!!%M1!%M1!&==$&-=#%]I!%MA!%MA!%]M!%]M!"
+ "'-U!&-]!%]Q!)=Y&%]Q!'.!!%^!!%^)!%^1!\">-!&N-$'.)!'>9!(^=!$^5!'^A("
+ "'>A!&.E!$^Q!%>Y\"(^Q!'>U!&>Y!&.]!'O!!#_!!$_)!#O9!&O)!&?)!)O9#&?1!"
+ "&?9!&?5!%OM\"'/=#&?E!)/=!'_E!'_A!(O=$*OI!%?M!'?M$%/=!'?Y$&OQ!(/Q("
+ "(_U+&OU!&_U\"#OY%&OI'&?A!&_U!#`!&(_Q%&OQ!&OQ!&OM!&OI!'_I!%_I*)/E!"
+ "&?E!%OA#)?9!&?=!\"?Q!+/5*&?5!#O5!&?1!&?-!(?-/'O)&&?)!&?!!&?!!&.]!"
+ "'.]$(.U#&.Q!(^Q'&.M!&.I!&NI#&^U)&NI#&.=!$^9!'N9'&.5!%^-!&>-\"$N!!"
+ "+.)(&>!\"$N%!%]]!%]U!%]U!(-Q%&-Y\"%ME!\"]E#$MA!%]1\"(=9\"'M=$&=5$%]A!"
+ "'--#%M!!&-%$'<]$$\\U((LY*',Y#%\\Q\"*,U&%LM\"%<M!&,M#'<A!&L=\"$\\-#',9)"
+ "&<1!&KY'&,1$#,)!%+M!'<1!%,%!%+Y!&;U&$+Q!$;M\"%+I%%;M#&K-$&[I!'[=%"
+ "%[9!#[-!#[5!%K1$%J]!#[)!\"[!$$J]$$JQ%$ZU%%:Q$$JM$%*E'%JA)$JE!'*=("
+ "#J=!#ZA\"\"Z5!#JA!\"Z)!%:%(%Z)##J%!#J!!!Y]!#IY!%)U$\"9M)#9E!#9I!%)E$"
+ "#I-%#9%$$9A%\"I5*!I9&\"YA%$Y='$YI&#IA!\"YE\"$)Q$#IY!#IY!$*%#$*!#$:!$"
+ "\"J%!#J)!#J-!!Z1!$:)!#JE!#JI!#J9!%:Y#$*I\"%ZM*$ZI&#*E&$ZY\"$Z]%#ZQ!"
+ "#[!!#[)!%[)!#[-!$[-!#[1!%[9!)[E!#+Q!%;A\"%KQ#%+E!$;M\"$+]!'L%#%+]!"
+ "(+]%&L)'%,%!%L5#);]'\",%!%,1!$,)!&,5%%,A$%\\=#%<E!%<I!$,E%#,M!$<I!"
+ "(-%''LE&%<Y!$M!&%-%$&M)!$])\"%M5!$=9!&-5#'-9\"'=9(&ME)'=E\"%]I!$MI!"
+ "%]M!(-U%&]U*\"-Y!&]]%%]]!$MY!'>!!*.!$'.%!&N1$\"^)#)>9/&.9!$^=!&.A!"
+ "&^=$&^I$%N]#&N=#(^U!$^Y!'>M!&.Y!$^]!$_)!&_)#&O!\"&?)!$/!\"%/-!'_A!"
+ "(/5)#OA&'_9!'_=!'?=$#OA!(O9$&?=!'_E!*_E)&?9!&OQ!)?M!&?E!*/M+&OM'"
+ "%/I!'_Q!%/U!'OQ%'0%)&OQ!&_U\"(/E(&OU!&OY!&OM!\"_I\"(?I#'/E#'_E!'_E!"
+ ")/A&&?A!'?E$&?=!&?9!&?E!&?9!&/A%&?1!%/=!&?)!%/1!&>Q!$_!!&.]!'>M&"
+ "&^Y#&.U!&.Q!'O)!&.E!&.I!'NE!$^M!'^9)'^1#&.9!%.5\"%^1!(N-!%^)!%]]!"
+ ")=Q,%^!!&=]#&]Q!%]Q!\"=Q!%]M!(]I$(M9)$MA!%M=!&]=!%M9!%M)!&=1$%M)!"
+ "(-)\"'=-)\"M-\"),]\"%L]&#,Q!$<U!),Q($<M!&\\I+%<M!(,=-)<E3&<=!',9(&L-'"
+ "%L1#(\\-(&,)%&<-!',))$<!!%+]!%;Y\"$+U!#+Q!$KY#%;A\"'[E$&KA(%[=!&[9*"
+ "%+%\"\"[5!$[%%#[1!#[-!&+%+$[!&$*Y\"$JY$%*U&#:U#%ZQ*&:Y,$JI$$*=\"'*A#"
+ "$*M\"$J9!$J5!!*%$#J5$#Z)\"$)]##9Q!$)]#$IY%%9Y(%9M\"#YQ\"$IM%\"Y=%%YE!"
+ "%I)!\"I5!#I5\"#9A$\"9E##)E##95!&9M#!)Y!%9M%#IQ\"#YU\"$9Y!')]0%*%$$Y]&"
+ "#)]#$*)##:5#'J1.%:1(#J%!&:=!#JA!#ZE!#J1%!JA##*E\"\"JQ#$*U%$JY!$*]\""
+ "$*U\"$[5%$+5\"#;5\"%Z]\"$+-!$+5\"%;5\"%+E!$;E\"%[E!%;A\"$[I!$;Q\"%[U%&[Y)"
+ "&KY'%;]\"%\\!#%<%\"$<%!$\\)$&L)\"%<5!(<A%%\\=#%L1\"%\\9#!LE#%<I!%<I!$<Q!"
+ "%<]!%,Y-$=%!&-!((<U)'L]!%M)!(=-#$=)!$=5%'=5##==!&]A!(-=!(]E/&]E!"
+ "'=A(%]Q!$MU!%]U!$MY!&-]\"'N!($N%!(.%%%^-!%^)!%^1!%]Y!)>I/%^9&&.A!"
+ "&.A!&.E!*^Q+&.U!&.Q!&.M!$^=!&.Y!'.U%&.]!&_!#$_%!(?%*'O-!&?-''?%&"
+ "+?5+(O5*&?A!&?5!(/%(&?A!&?=!'?E$'_A!&/E%(/I!'_E'&OQ!)OE\"&_9.&OM!"
+ "&OM!&OI!&OM!%/U!&OQ!%OM)&_U\"%/M!'_I!$?I#&OU!&?E!%?E!&?A!'_E!)OM\""
+ "%/=!'_A!%/A&&?1!&?5!'O5!%/-!$_)!&?1!%_-$#O!!'/!$&?!!&?%!&.M!$_%!"
+ "\"_%#(.M)&.Q!'>M!'^E#'.Q%'>A!&>A\"&NA#&^=$&.A!&.5!(>-&&>)\"'>5!'.A&"
+ "%^!!%>%#&-Y!&]Y%(=I'%]I!%]I!*MI!%]I!&]E%%]5!%M=!'M5$&-1#%M1!&]5!"
+ "(=9'%M%&%M1!']!&%L]!%\\U\"%<Q!%<Q!&<Q%%<5!&,E#$<A!&<9%&,E-\",1!%,1!"
+ "%,1!'<)!',!)&\\!#(<)!%,!!%+Q!&,!)\"+U!'KQ'$[M$$[9!&;E\"%+M!(;='&K9("
+ "%+-\"!+1!$+1\"#+-\"#[)!$;%#\"[!!#:M#$ZU\"\"ZU!#ZQ!$*M\"#*I\"#ZE\"#ZI!%:I$"
+ "#*=\"$*5##*5\"#J1!%:%(#J%!$:1!%Z1#\")]%$IY&$)Y##9M!%9Y&#YM#%)E(%)E("
+ "!Y)$\"I-!$I9#\"I9!\"I9!$I%#$I=&#9A$#9I!%)M$$9Q!$:%!%)=%$9Y$\"J!!#Z!\""
+ "!:%&&*)(#J-!&:5)%*9##:9##*=\"!*1!\"ZA!$*A##JI!$JM%$*Q\"%JQ!&:I$!Z]!"
+ "\"[!!#[%!%+%&#K)$\"[-!\"[1!$[5!$[9!$[5%%;A\"%+M!$;E\"#[I$%[E!#[Q(&<!\""
+ "%+Y!%;]\"'<!*%,1!%,)!'<%%&L1&%,)!%<5!(<9%%<A!&\\I\"#<=\"'LM!&\\E#&M!%"
+ "&<Q$&<U$&,]#']-&$L]+$]%\"%<]!(--\"&])'&--#'--'&-9\"%M=!&MA$'-Q&&]Q!"
+ "%]Q!&]E!&]M*)=U!)=Y!%]Y!$N%!'.%!%^%!%^)!$^-!)N1!(>-%&.9!%^-!(N=!"
+ "&.A!&.Q!&^=$)^Y+&.M!%.E\"&.M!%>A#'.Y%'NY!'N]!'?!%&?%!)?%(&O)!'O-!"
+ "-_),*/1+&_=\"&?5!$?9#'_=!'_=!'_=!&?=!'OA&%OA#)?E'\"_E\",?E6)?I!)?U!"
+ "&/I0'_9!&OI!&OM!(/]!&OM!'_M&)/I,'_M!*O=!&OQ!*OE!#O1!&?A!&?A!&?1!"
+ "'_=!(_5&*?=&&?1!&?-!$/-\"&?-!'?9%&.]!&?%!)O%$#O!!(.U)&.]!&.U!$^U!"
+ "&.U!#NU!&.Q!&.E!'>9!$^M!(>A+&.=!(>A+&.9!'.E%%^1!$N!!'.)!(>)!%^%!"
+ "'.!!#-])#>-!&MU%$MQ!&=E$%-]#%]M!']E*(-A!'-='&]9!&=1$&]1!%]5\"$=-!"
+ "%]%\"(M9.!=5\"%<U!%=%)&\\U&&<=&(]!!%\\I#&\\Q\"&LE!%<A!&,=(%<5!%<5!'<9%"
+ "&,1%%,-!%,-!$,%!%+]!&<)&$,%!&[U)$KU##<%\"$+M!$KI#&;=#$;A\"#;I&$[A!"
+ "$+5\"%K5$#;-\"#[)%\"Z]!%[%%$[!!#Z]!&JY,$+%\"#ZQ!$JA$%:A##ZE\"$J9!#J=!"
+ "$*=\"#*1%\"Z=!$*1##J-!$:)!\"Z%\"#I]!$*%#&9Y)#YQ##9M#$9U!!)M$\"IE!$9E%"
+ "\"I)!&I-(#Y1##I9%\"Y-\"\"I5!\"IA!$)9!#9I!%)I!$)M$\"IE$#IU!#YY)#YY\"$J!\""
+ "\"*)%\"J)!$:1$$Z)&$:1'$J5!#J-!$JI$$*M\"\"ZE!#JI!#*Q\"%*Q'#;!#$JM$#Z]!"
+ "%+1\"&+!&$+%\"#[)!%;-'#K!$$+1\"$+9\"';9,%+I!&+I%$[E!%[A!$;I\"%;U&#+]!"
+ "%L%''KY+%,1!(<%/%,%!&,!!%L-\"&,-$%\\1#%<=!%<A!&L=&&LI!%<Y!&LQ&'\\Q+"
+ "&<I!%LQ&%M-!%<]!&\\]&&]%''L]!&])&(<Y-']1&&==$$=9!'==#&-=#(-=!%]I!"
+ "$]I\"&MM$)MM!#=]!'M](\"MY'$MY!%^!!%^)!%^)!'.)!'.-!%^1!'.1!'>9!%^)!"
+ "$^5!%.E\"&.A!'>A!(.Q#&^Q$&^U#'.Y%&^U#%NY#&.M!&.]!(>U*'O)&(.])&/)&"
+ ")O-#'O!!%O1#&?)!'O5!'?1%'_=!)/9!&_5#&?9!&?E!#O-!'_9!'_E!-/A&)/E!"
+ "'_E!(_U$'_I!'_E!&OM!*OE!(OE$'_=!'O1!+/A0&OI!&O9!&?=!%/-!(_9%&?9!"
+ "%/1!)_5$+/5$'O)!(?1$)/1-*_1\"'O%'&?!!$_)!*.]2'N]!'>Q&&.Q!(_)!&.Q!"
+ "&.M!&NQ\"(NI!'NE''>E&&NA#$^=!\"^=#&.9!\"NA\"'.1!'.)!%^1!'-]!$N%!%^%!"
+ "%]Y!%]U!\">!!%]Q!%]Q!%]Q!$MA!&]E!(-=!&]A%)-5!']9*&=5$%M)!%M!!$])\""
+ "%]1\"%\\]\")\\]!',Y#'<Y$'LU!',9('\\]+%<M!%L9\"'LE!&<A!&<-!'L=!%<1%%L=\""
+ "$<-\"%L%#%L)'$,%!#,!!';Y!&+M!&[I!%K]'\"+M!&[I!$[9!';M'';A+$[5!(;9#"
+ "$[1!\"[1!&[1*#[5$%+%\"'J])%[))%Z]%%JY!$*Y\"#ZY!!ZM!%JI%#JE!$JE%#Z=!"
+ "%*5#%*5'\"ZE!#J1!#J)!#J-!\"J!$$Y]#$)]#\")Q\"&)I%$YM#%9M,#IU!#IE\"&)E)"
+ "#9)!\"I)!\"Y9\"!Y5!#91!!)5!\"9A##IA\"#9A!$)I##YM##9U!$9]$\"Y]\"#I]!!)]$"
+ "#:9#$:)(\"J%!%Z1*%*%$$:5$%Z9\"#JA!#ZA\"':E!#JM!!ZY!$JQ$!ZU!%:U'#ZY!"
+ "!ZY!$K!$$+%\"$[)%$K9$\"[1!#[=$%+9!%[A$\"[)!&[A)&+E%$[I!$+M!%\\!$%;U\""
+ "%+]!&,!%&;Q\"%<!!&+]!%L1\"%+Y!(L1!)\\9\"&<=!%L=\"),E##,A!%LI\"%LI\"%<Y!"
+ "%\\M#%<Y!)M%)'LU!(,Y'%M!!&M%!%]-\"%L]!%M1!%M-&$MA!%M9!%]I!(]A*#=E!"
+ "%]I!$-Y##=M!(-Q!&^%%%N%%$]]!&>!\"%^)!%]U!'.)!&^-*'N)\"'.-!&.=!'N5("
+ "&.=!'.1%(NA!'N='&>A\"$^M!&.A!&.Q!&.Y!'^U(#NQ!&.]!#^]!'_1('O%!)_)0"
+ "$_)!&/1%&?-!'O1!&?5!\"?=!&/5*'?=$)?A!&?9!&?=!%/A!&O5!&?=!&?E!'OA&"
+ "%/M!&_A\"'?Q$&?A!#OA!&?=!%/A!)/A!'?=$\"?=!&?=!(?=)'/E#&O9!&?9!&?5!"
+ "&?5!%/A!&_1\"&?1!(O-*'?)%'?%%'O%!'_)!(O!+&?!!*N])'.]$$^U!&^U$&.]!"
+ "'>A!$^Q!&.=!&.E!'>I!'.I%&.9!&.I!$N1!&.1!'N1('>9!$M]!$N%!&>!\"(N!-"
+ "\"]Y#%]U!&>%#\"-Q!%]M!&-9#&]]%)-A&%MA!%]=!&-9\"&=9$%]5!(-E!&\\Y\"%<Y!"
+ "%]1!&M!&&,]#&,]#',](&LU!#,Q!'LU!%<I!'LI!$<9!$,=!(<5%'<9*',9$#,5!"
+ "&,%!%<%\"$,!!(<!+&\\!(#,%!%+U!%+U!$[=$$;M\"%;A\"'+A!$[E!'[=.%[=$$;5\""
+ "\"[5!'[1*$+)!#[%!$+)!#ZU!$*]\"!*U!#ZU!&ZI##ZY!%ZU)#JM!\"ZA!$:E$$:I$"
+ "%:9!\"ZA!&:1!#*50#Z1\"#Z-\"$*%#%)]'%J-\"#YY\"#9U!#I]!%9A##9I!%IE&#9E!"
+ "#))#\"I-!\"I-!#)1#\"I9!!)9!#9I!$9A$$)I#%9I&$YM#$)Q*$IU%$*!##J1!$:!$"
+ "#IY!#Y]\"%:)!$J-\"#J)$%J!&#JI!#J=!\"*I\"$Z=\"%JE(!ZQ!$JM!%:Q(%*U&$ZY\""
+ "*+%,#[-!&Z]\"$+%\"$+)\"\"[)!\"[1!%[E!$[9!&+=!$+9\"%[E$$[=!$+Y!$;Y\"'K]+"
+ "&;U'$;U\"&;]*#;]\"(;]!%,)!',-%%\\1#%<9!%\\=#'\\%,%<9!'\\A\"%<E!&,I#&,E$"
+ "&L]!'<Y)$,Q$']!!%<Y!&L]!$M!!%-)$&M-!&=)$'-9'$]5'%]9''MA)&MA$$]M\""
+ "%ME!%]I!%]Q!$MY!%^!!(]Y-&=Q#(M]\"%]Y%'^5#%^)!'>5!%^)!'.1!&N5(&.9!"
+ "'>9!(^=!'>=!&.E!&^A$&.E!(NE!&.M!&.U!&.U!$_%!'>M!&?!!(?!$&?!!(_%!"
+ "&?%!'/)$-/5!%/-!&?-!+?-+'_9!'?-%&?1!&?-!&_9\"'_A!&?5!&?-!!/)!+_=!"
+ "&_5#'_)((?=*&?=!(OA0'?A%(_=+*_=\"*/A1)/5!&?9!(?9*&?=!&_9\"#O1!'O5!"
+ "'?)%&?9!'/%$\"?-!&?%!\"?)!(?%)'O%!)?!(&.Y!(_!!&.]!'>A!$^Y!(>U%&.Y!"
+ "&^U#&.I!&.I!$>M)&.A!(>=&&>9\"'.-!&^1%'.1!'-]&$N1!%N5$(N5!%^!!%^!!"
+ "$N!!%]]!%]I!%]Y!%]M!'MQ$&=E#&]A!)-A+&MQ$%M9!#MA&&-9\"%M-!\"M!'%])\""
+ "%\\Y#$]1\"#=!!&,U#%<U!$\\U#%<Q!%<Q!%<5!&\\=(%LI&'\\=\"$,5!'\\9,'<5!#<1!"
+ "'\\-#%,)!%,)!*<%!%;U\"$\\!$%KQ'%+U!$+M!$+M!&[I!%KE$'[I!$[A!#[9!'K=$"
+ "\"[5!#[-!\"[=!$;%\"%+%&#ZU!%ZY&$*]\"&*I.&JM%$ZI\"#:M\"%*='#*E\"\":I)$J9!"
+ "!*9!\"Z)\"$*9##Z-\"\"J)!#I]!\"J!!$YY#$I]%$IY\"#9U!&Z!$#IU!\"IE!%)Q!$)1$"
+ "!Y%!$I1)#))#\"I%!#9-!#9E#%Y=$#Y=#$)E$#IM\"!YM!#YU\"%9U%%IY'$YY#$Y]&"
+ "#IQ\"#I]!\"J)!#Z-\"%:1(%J5)&*%!\"Z9!%JI!#J=!&*M+#JM!':M%$*U\"%ZU%#JM!"
+ "(;%$$;!\"&;!(#[1!$K!$#[)!%[1!#;5\"(K=$(;=\"\"[I!$[E!&KI#$;M\"$+M!#KQ#"
+ "$+U!';Y+%<!\"&;Y!&<5!%<1!%,1!&L9\"&,1%&L5\"%\\9#&<A!$L9\"&L9&$,A!%<E!"
+ "%<M!%<E!&LU&%<Y!&]%!&M!%'L]!%<U!%M%!']=+%]1!%M1!#-9$(-9+$]9\"#=A!"
+ "#=E!%]I&%]I!%]M!%]Y!(]U.(-U!'M])&>!\"&>)\"%^!!(>!!&.=!$N-!'>5!%^1!"
+ "&.M!'>9+&.=!'>=+$^E!%.Q!(^A2&NM\"(NM!&.Q!&.M!%/!!(^]!&.M!(>]*&.Y!"
+ "&.U!&?9!%/1!)/1!$_)!&?-!#^U!$_)!&_9\"'O1!&?5!)?5.&?-!&?A!#O9!'_E!"
+ "%/-!#O9!(?9#&?1!'_9!#O9!&_5\"(?A#%O9)'_1''_=!'?%&'_1'%/I!&?1!'/5$"
+ "&?-!)?-\"(?))'O)!&_%#'?-%)_!0&O%\"'N]!#O!!$_!!&>U!*^U*&?!!&NM#'^M("
+ "$^M!'^E(!.E!&.A!$^9!%N5%%^)%$N%!#>!!(>-!$N-!%^%!(.-*(N!!%^%!'-]!"
+ "%^!!%-U#%]Q!'-Q&&]M!&-I\"%ME!$MA!&-A\"%M9!'-9'#M5\"%M1!'])+%]-\"(--!"
+ ")=%\"'=!)%<]!$<M!%M%!&<U%%<M!&,M$%<I!%<E!&,M$+,I,'<-!(<9!&<)%%\\!#"
+ "%<5!$,-!(K]'%,)!%+Y!$[A!%;]!%+I!$;Q\"!+M%%KE#&KI($[A!&[=!'+=*%;5\""
+ "\"[5!#[-!$K)$$[)%#[%!\"[!!$:M$#ZY!%JQ!%*I#&JM)#JI!\"ZI!#JE!#J=!#Z=\""
+ "&J1#$J5!#J-!\"Z%\"$*)#\"*1!$I]%&*!$\"YE%%J!&\")Y%#9Q!$IA%#Y9#\")E%#YA&"
+ "$9%&#))#\"Y%&')1+&95!#)1##Y=##YA##YI\"#9I!#9A!%IQ)#9Q$$9U!#IY!\"*!\""
+ "\"J!'&Z%!#*=\"\":-#'J=&$J)\"#*9\"!Z9!#Z5\"%JM!&*E#$:E#%JM(#JM!#ZU!#ZY!"
+ "$+!\"$;)#%;%'$[-%$;%#\"[%!#+!\"#[=!%+9\"$[E!%K1$&[A!%;I\"%[I!!KM#$+Q!"
+ "%+M!%+Y!%L%#',!!%L!##,%!%,1!%\\-#&<9!%<5!$<9!$L=#$\\A#%<5!'\\I')<9)"
+ "%<M!%\\U#)<U2'<Y$%<Y!%M-!&M-!%M%!(-),&M-%%M1!&]1&&-)#!-9!(-=+'M9$"
+ "&=A$%MA!$ME!&MU$)=Q!$MU!&]Q!%]Y!'.!!(.!%#>%!%^%!$N%!%^-!(>)!&>1\""
+ "'>9!$^5!'^=((^=\"(N=!\">E!&.M!&.I!&.9!&.M!&.M!&>Q!#NU!+.Y1%NY)$^]!"
+ "$_!!'O)&#O)!\">]!'O1&&?-!#O)!&.Y!)/-!&?=!&?%!'_I!'O1!%/5!(O5$'O1!"
+ "&?1!'_5!*O5-%/A!&?5!%/5!'O5&%/5!'_9!'O5&%/-!&?1!$_5&&?1!%/9!&?%!"
+ ")/%(&?1!$_)!&?)!#N]!'/!$&.M!&?!!&.Q!'>]&$^Q!).Y!'>U!(.E$&.A!'>Q!"
+ "+>=\"&.A!&.=!&.A!'NI'&.9!&^9%&>)('.)!&N9#&.-!%^%!$N%!'>)!\"-]!'MM("
+ "'=U\"%]U!%]Q!\"-I!'MM(%]U!%ME!']=*$M=!%]5!$=-!&]9&'-1''M-$%M9!%M!!"
+ "%M-!']!+%L]!'<Q)$\\U#(\\I'\"\\M#$<I!%<5!'\\I\"%LE!%<=!(\\9\"%,)!\",%!%,-!"
+ "%,-%#<1\"%\\!((L%\"$K]#%<!\"%+U!%KQ#$+Q!&+=&![E!%+=\"%K=($[9!$[9!$KA#"
+ "$;1\"$+-\"#[)!%;%'$+!\"$Z]-![!!'JU%#ZU!&:Q($*A\"%J9&\"ZU!#JE!!ZE$&*9#"
+ "!Z5!$:%$$:-!$:1##J-!#Z)\"$9Y$%:-%#YQ#')]&#YE##)E#$IU%#IY!$)A$$9Q!"
+ "#I%\"\"Y)\"\"91#\"I-!\"Y9\"\"I9!!YA!#Y=#\"I5$$)Q#$)U#%)M($IE)$)Y##IQ\"$YQ'"
+ "$*!#$J)%!*1$&:1\"\"Z-!$:1!\"Z5!%*=&$:5##J=!#JE!%:Q(#ZU!\"Z=!$:Q$#*U\""
+ "%JQ!$JY!\"K)#%K!($+)&$[-!#[)%\"[A!%K9$%KA$$;I\"%KA$#[I$';I&&+M!$[I!"
+ "([Q)%+Q!&+Y!'K]#%[]$!L%#%<1!&<5!&<=%&<=!%L5\"',5$$\\9#'<A*&\\E\"%\\M#"
+ "&<M%$LA\"%<Q!%,U#'M!/',]'#,])#=%!$]%#%M)!\"--!%]1\"&]1&$]1#%M=!(=A'"
+ "(=I!&]E%%M9!(-M&%]M!%]M!%]U!)>%%)M]!$M]!&M]$!-]*%^%!&>-\"%.-\"&^5$"
+ "&N1#&.E!)>9*(>-!&.9!&.I!!>E\"&.=!&>I!'>I!(^Y!&.I!'NY'$^Y!(_!'&.Q!"
+ "$NU%$_!!&>U!$_!!$_)!%O)#'O-&#O)!&?-!&?-!&?-!&?9!'_1('/-)(_!!&?-!"
+ "'O1!%/5!'O-&&?-'%/-!'O5&\"O9!'_1!&_1#&?)!)/%(&?1!&O)\"'NY!'_-'&?%!"
+ "'_1(&?!!&?%!&?)!&O1!'N]!&.]!&.U!(?!)&>U!).Y!(>U*)^I!&NM\"'^U'+NI("
+ "$^E!(NA!(N=!&.9!$^9!&.9!&.5!&>1\"%^-!'>)'%]Q!%^1!'M])%^!!%.9\"#>!!"
+ "'-U!%ME!#]I\"&]M!)M9#'ME.&]A!%M1!\"-1!%M9!%]5\"'-1'%]5!&=)$#=)!&M%!"
+ "%M%!'-)'(,Y,&,Y#(,Q1#,I%%<M!#LE\"&<E%),A#%<9!%<5!&<A!%\\9#%[]$#<)\""
+ "%<)!$\\%$%<!!%+U!%+Y!&+]%$[I!#[A!$;M\"$[E!\";E\"#[A!$[5!#[9$$[9!$;-#"
+ "$+1&%+!&&+-\"\"[5!$ZU!#ZU!%*M'#ZQ!$:U$%JQ%$:Q$%*I#&*E$\"ZE!#J9!#J=!"
+ "#J1!#J-!$Z-*%*%#&:)%%:%(#J)!$9]!$9Y$$9U(%9Q($IM%\"I9!#9=!%)=%&9A#"
+ "#9)!$))!#)-#\"I1!!91\"#I9\"#IU!\"I=!#I=\"#9E$$YE'#IQ\"#YM%#9U!$:!$#Z!\""
+ "%J5)\"J1!#J!!#J5!#:)#%:)!%J9)#:=##Z=!#JA!\"ZA!%JI!\"ZQ!$:=#(:Q)$*U\""
+ "#[!!$[!!$[!%#[%$$+9\"\";5\"$+-\"%+)\"%K1$'K9)%[5!%+M!%[I!&KQ'$;A\"$;M#"
+ "$+Y!%+]!&;Y'$+]!%,!!)<1*%,)!%<)!'<)!%,1!%<5!),=2',5$#<=\"&<A&'\\Q'"
+ "%LA\"&LY!#,]!&LU!%-!$%\\]\"$<]!',]#&M%%&M1%$M-!%M5!']!!#==!'=5$%M1!"
+ "%M5!&-9#(=M!%ME!(]I$&]M!&MY$&]]%%^%!$M]!(N!''N!)).%*%^-!).1)%^%!"
+ "&>%\"&.5!#N5!$^E!&.=!!.9!&^A$'>I!&.=!&.M!&.U&&NM\"&.]!&?!!&.Q!&.]!"
+ "&.U!'>U!\"O%!$_!!$/%\"'O%!&O-\"&?-!\"?)!'_!('O!!'O)!&?1!+?!1&?-!$O5)"
+ "$_)!)/1!&?A!(?5/'O-!#O5!%/5!*?)!'O)!'>Q!*_-))/5!&?)!'?)%'O)''O%!"
+ "&?5!(^Q!&.Y!'^Y''>U!&?!!'>Q!,.Y5&.U!%^M**>Q\"&.M!#^M\"&.M!'N='&.I!"
+ "'.1!&NE##NE!&.9!&.5!$^9!%^1!$N!!$N-!(>!&'.%%$N)!%^!!*>!)'=Y\"%]U!"
+ "%]M!&-U!&-I\"\"MI+%]Q!%M1%(]9.$-Q$%M9!&]5&\"-)!%]1\"&]-'%<Y!#M)\")<Y("
+ "$<Q!%=!%']%*%<U!$<Y!),I#%<I!%LE\"$LE\")LE!&,=$%L9\"$,9!&<1!$,-!%L=\""
+ "\",-!#L!'#,%!&[U)&<!&&;]!$+U!$[I!$+M!%<!\"%;E\"%+=\"%;5#$[=!&+=!%+1&"
+ "!+-!#[%!$*Y\"%K1$$+!\")J]/%:Y##ZQ!&JU!$ZM!\"ZU!#ZI\"$:Q#$JA%#J9!$J9%"
+ "$J5!%Z%'#J)!#J-!!:%\"\"Z%!$IQ\"$:!$!IU##9U!#YQ#$YM&$9I(#YE#%)Y'#99!"
+ "%9!$%9))\"Y-\"!I1##95$\"I5!$IA##I5\"\"IM!$IE&#YQ##IU!%)U$$9Y!$9Y!$:!$"
+ "$Y]'$J%!$9Q!$:%!%:-!$:%!$:)$%JI,$*A&$:I#\"J1!$JE!#ZU!$JM%$JY$#JM!"
+ "$+%\"$;!#!;!\"$:Y#$;!#&;)$$+-\"$;1\"(+5\"&K1$$[=!&+E%$[A!\"KE#&[I!\"[I!"
+ "%\\%(#,!!'K]'([]$%,%!&KY'&L%\"&,)!!<)\"&\\1#%<5!',M)),=-&,9$%<E%$,E%"
+ "%<A!%L=\")LU$(\\U/%<U!'\\M'&\\]\"#M!\"&=-$&]!!'])*\"=9!%M5!#=1!%M9!(=9,"
+ "(=E'%M9!$ME!)MI(%]M!&-M\"&-M\"$=Q$%MQ$'MU))=U&#.!$'.%!'N%\"%^)!(.-%"
+ "%^)!%^-!&.5!'^M(&.M!(>9+!.9!&.9!&.E!&NE#+.E,&.E!&.M!&.Q!&>Q!&.Y!"
+ "&^U$$_!!&?)!&?)!&?-!&.U!$_!!&?!!&.Q!&.M!&^])'O-!&O)!'O9&'O)!'O)!"
+ "'O)!#NU&&?5!(_)!(?))&?!!&?1!&O1!&?=!&?%!(?-#&?%!&?%!'.]*)?)\"'?!&"
+ "'.Y$#O%!$_!!&?!!'.U%&.Y!$NI%&.Y!&.Y!$^Y!'>M!'>M!'^I#&>E'(NE&&.E!"
+ "$^A!'>=!&.E!&>E\"%^%!(>1%'>-&'.-!'>)'(>)&%]U!$.)#%^!!%]Y!'MM$'-]!"
+ "&-A\"'-I'%]Q!%]I!&=A$(-A!$]='&-9#(-A+)]E#&M%!&=)$%M)!%M%!',],%<]!"
+ "&M-!(<M)%LU!&LY!#,Q!%<=!#,E!%<Q!$,A!%<9*&L5\")<1*#LA\"%L5\"%<=!%L1\""
+ "%+])(\\!$$+U!';Q\"'+Y!'[M$$+Q!$+M!%;I\"&+E&&+A&%;A\"$[9$$[9!&+%\"#[5!"
+ "$[-!$[)!$[%!%+!*$+!\"#ZY!%K%!$*A#$*U\"$:I$#J9!#JA!\"ZA!#JM!\"Z=!$*9#"
+ "\"Z5!$:-!#J)%$J%\"#)Y##Y]\"%YU!$J!%$IU\"$9U$%9Y&#9I!#YI\"%)E%!YI!!YM!"
+ "&)9)$99(#9)!\"I-!\"I1!\"95&\"I=!!IA##YE##I=!'9I'$)M$$)Y'$YE$#IU!#IY!"
+ "#I]!\"J%!')]&#J)!#J%!#Z9\"$J5!$Z1&\"Z9!#*=\"#JE!\"ZI!#ZE\"%:Q(#ZQ!$[)!"
+ "#[!!$[!&#Z]!\"ZY!%;%'&+1*$[-)$[)!%;5&$[9!([9!\"[9!#[A!%+5\"%+M!$+M!"
+ "$+Q!);M,%[U$$+]!',!)$,!!$<!\"&\\-#%,-!%,!!$<%\"'<9!&LI&%<=!$,=!$,A!"
+ "#,=!'LQ!%LM!&,I$%\\U#&<Y%&]!!%<]!&M1%%<U!#=)!\"-5!#,Y!'M)*'-5'#==!"
+ "&==$&]1!%]M!$MI!\"]I$#=A!%]M!%]]!%]]!(M](\"-Y!'-]!%^)!'N%()N%!&>1\""
+ "'.-!%^=%&.5!#N5!#>)!%^)!'N1(&.A!&.9!&.M!#NE!&>E\"(^M!&.I!'>U!'.Q%"
+ "&>I!&.U!).U'(_%!'NY!\">Y!).Y'&?%!&?)!&N]\"&.Y!&O%\"\"?)!+/%+&?%!*O%."
+ "'O)''O)!\"_1\"+O!!&?)!%/-!&?%!)/-!'O1!&?-!)/%-%?%\"'^Y(%/-!&O)\"(_!!"
+ "(?!)\"O%!&.Y!'NY!'_!!&.Q!*.Q!&.U!'.E%&>M''NY!'^=('>E!$^E!&.I!%^)!"
+ "\">=!$^9!'>9!&.5!%^1!&^!%&>-\"(.9%#>!!'.!!+-]\"%]]!%]Y!(=]!'-Y!%ME!"
+ "%]M!%]Q!(]I)%M=!&]M!']5%&]=!$]9\"']9%%M1!%]1\"&M-%%]!\"%M%!%M!!%<]!"
+ ")-)0%\\Q\"$<U&%LM\"&<M%&<E%$\\E#%<9!&LM!&<A&&,9$'\\%-%<5!%L-\"%,-!%L)\""
+ "&KY#&;Q''+])&+Y%#+U!&+Y%$+=!$;]\"$[I!%;=\"%[A!%K=#\";9\"%+5!\"[5!#+1\""
+ "&;%#$+)\"$[!&&K)!$*Q\"$:Q$$*Y\"#ZQ!\"ZM!#*Y\"%JI!%*Q'#JM!#J9$$Z9&%*9&"
+ "#Z5\"#9U$$*)&$Z)&'J%#$*%#%*!#$IQ%#I]!#J%!#YQ#!YM!!YA!$)E#!YE$$YM#"
+ "$Y%%#Y!$!Y-$#I-%%I)%#)5##)5#$I=\"$YA!#9=!$YA&%)I(#9M!#9U!$IU\"%)U$"
+ "$9Y$$:!(#Z!\"#J)!$:)$$*-#%Z1#\"Z5!#J5!#J9!$J=!\"*=\"#ZU!#JM!#JM!%JQ("
+ "$ZU%$*]\"\"ZY!\"[!!%*Y'$;!\"#;-&%K5($KA$&;5#%K9$$;=\"%[=!%KA#%KU#%;I\""
+ "$;I\"%,!!%\\!$&,)!%K]#'+]%&+Y%&<=%%,)!%,-%*<1%'L%+$,=$%\\A##<)\"#LA#"
+ ")\\E0(LQ/'<M)&<Q$#LQ\"']!!$<Y!%<]!&-9\"%M%!%M%!&])'%M)!%M1!'-5'%M5!"
+ "%]9&&-=\"&=M$%]E!'=E\"(MI-(=E!(-I!$MQ!%^-!'.!%%]Y!)M]!&.5!(.!%#N9!"
+ "(.-%%^-!%^1!$N1!$^5!&.9!&.5!'N=\"'.=%)NA%'.M%'.1!'.I%&.I!&.M!'>A!"
+ "&.U!&.E!(?!)'>U&\">Q!&.U!'NY!&?%!%.M!*>]'&>Y!&.]!#O!!&?)!%O)#'.]$"
+ "&?!!'O)''O%!'O!!&_%#)^U,'^]!&?!!&/)&$.Y##NY!&O%\"%O%#\">Q!,.]*\"N]!"
+ "&?!!'/1$&.]!(_)!$.U\"$^Q!'>U&$^M!&.U!&.E!&^M$#NI!&.9!&.A!&.=!$^=!"
+ "#N9!$^9!&.5!'.-!*.))%^1!'>9!%^%!$>5$%.!\"$MY!$M]!$M]!%]U!(-Q!&]Q!"
+ "'-U!%M9!$ME!&=I(%MA!%]1!%]-\"%]1\"#\\](&M%*'--\"%]%\"']%*%]%\"&L]&%M!!"
+ "%M!!&<U$&,Q#$LQ\"&<I!'LI!#,E!$\\5#%<I!$,=!&L1'&<5!&<9%%;Y\"%,-!#,=!"
+ "&,)!%<!\"&+Y!%;Y\"&L%#\"[E!$;M\"%;A\"#[9!%+E!$K=#%K1$%[9!$+-\"$K)$$K%$"
+ ");-$#;-\"!+%!![!$#Z]!$+!\"#ZU!$JM!#ZY!$*Q\"#JI!#*Y\"#Z9\"!Z=$#J1!%:5$"
+ "#*1\"#Z1\"%Z-'$J-%$:!$$:!!$)Y'$)Y##YQ##9Q!%Y=$#YM#$9I$!YE!\"IA!\"I=!"
+ "#I!%#9!\"\"I)!\"I=!\"I=!#9E#%)5+#)Q#%Y=$#9E!$YE'#9I!$)I#%II#$Z!#$IM%"
+ "\"IQ!#YI#%*!#$J%&#Z!\"#IY!!Z5!#JA!$J-\"%*9'#J=!$*Q\"%JQ!!:A\"!:E%#JE!"
+ "$[)!%*Y'$J]!#[!!%:U(%JY)$;1\"#[-!#[1!#[1!$[E!%[=$%KE$&[E!$[A!'[I!"
+ "#+Q!#+Y!#+]!%+]!%+Y!%+]!$,)!&<)*$\\%$&<1!&,1%(L1+&<A!%<=!&<)!&<A!"
+ "&<I%'<I$)\\E'&,Q#$LY!%LY!%LY!(M).*,U\"&-%#%<Y!(<]-'-5\"&]5/&-1'%]5!"
+ "%M5!&=M(%M=!&]A%%]I!'=M#%]I!&]Q!%]Q!'-M&%MA!']M)%M])&N5#%]]!%N1$"
+ "%^)%'.)!%^1!%^)!'.!!)^5!%^1!&.E!'.A%&.9!(NI&&.=!$^E!&N9#&.I!(NI&"
+ "&.M!+^I#&.A!'NY!&.U!(.M)#NU!&>Y!&.Y!*.Y,&.]!&?!!'O!').].#NU!&.]!"
+ "#_!!'_!(&?1!(^Y''O%!(_!&&?!!&_!#&N]\"*.],'N]!&.Y!#N]!'.Q%&>Y!'.Y%"
+ "'>U!'>U!'NQ!&.Q!)>Y)&>A\"&.M!&.I!$^I!&.E!(^E-&.A!&>E!&N5#(>=%'.=%"
+ "'.%!&.5!$^E!$N1!%^-!%^)!%^%!$N%!$^!!$M]!%]]!']Y)'-U!&]]%%]U!%M5!"
+ "&-A#%]I!%ME!)]Q-$-=$%M=!'-9'%M5!&-1'&M5%&=9$&=-$(=%(&]!\"%M%&(,Y("
+ "(<Y)'<U)&,E$%<U!'LQ%%\\U\"%<E!&,5(%LA\"&<9%%L1\"%,1!%,-!%L)\"&<-!$,%!"
+ "(\\%(%KY#&;Y&'+Y!$[U$$[Y$&+M)'+E*$K=#'KE,$[9!&[=)&KE('[5*&+5&%K1("
+ "\"[9!#+5!#[)!%+!&#Z]!$*Q\"#ZU!!ZE!#JE!#Z=\"$JE!%*E'!*I$#Z1\"#JI!%:5!"
+ "#J1!#J)!#Z)\"!Z!!#IY!#I]!$)Y##Z!\"\"YQ%$YQ##9U!&)I\"$)E$#91!\"II!#)I#"
+ "#XU!\"I%!#Y!'!Y=!#9)$#Y5&#)-&\"I9!\"IA!$Y5'#IM\"\"Y]\"#9M##J%!%*!'#I]!"
+ "&9Y)#9]#$*%#%)Q!$*)#$)U'#J1!#J5!#J)!#Z=!#*A\"&:9(#*M\"\"Z=!%JU!\"ZI!"
+ "$*E&$+%\"#:Q\"$;%#$*U)#[%$$K)$$[9!#[9!&;1#%K1(%K9,#+5\"#[A$%;A\"'+Q*"
+ "![=!$+U!%[Y(%+Q!&+E%%K]#'L)\"%,)!(<1%&,)!&<1%&L-#%L-\"%,1!%L=\"&<E%"
+ "\"<I\"%LA\"%,1!(,Y#',Q(%\\U#%<]!#,U!$=!!',]#'M%%#=)!&-!#%M)!%M5!)-10"
+ "&-1#&=E#%]=!&-U\"%M=!%]M!)-9!&MI$%MA!'-U!&]]*%]Y!(N!'&M]$%N5%'>!\""
+ "(N),%^%!$N%!$^9!'N-\"$^5!*.=('>5!'.-!&>)\"&.=!&.A!)^Q,(NM!#N=!&.I!"
+ "#NA!'>=!&.U!&.A!(>M+'>E!(NU+'^U\"&>Q!'>U!(?!$&.Y!'O%!)>Y##NY!\"?-!"
+ "'O)&&>U!&.Y!$^]!&?%!&?!!#N]!'>]&(^Y!'^Y'&.U!(>U%&.U!'NY-+>M3'>I!"
+ "%>Y\"&.I&&^Q#\">I!&.Q!&.]!&.I!&.U!'NM!&.M!&.5!&.5!(>M+&.5!'>9!\">5!"
+ "&.5!&.=!%^-!$^9!'.)!'.)!$N%!%^%!(-Y*'-]!$ME!'-U&&]Y*%]]!']M$%M=!"
+ "(=I!#]E#'-A!&]I%&MA$&=-$%M5!$=%%%M9!\"--!%<Y%(]%!&L]!'-!#$M!\"&<Y%"
+ "&-)(&LA&&]%+$\\I#&<I!%L1#%<A!%<1%'<=!%<A!$,)!%,1!&<)!#\\1((\\)'%<%!"
+ "$+]!%<!!([Y$';E\"$;M#$+]!\"[A$&[E(#[-!$[E!%[E!\";=\"$[5!#[5!%;1\"#[1!"
+ "\";)\"#[!!$[1!&:U$%:U'%:]$%*Y'#*9&#JI!\"*]\"%:E$#JA(#*=\"#Z)\"&:9)$J9!"
+ "$J=!#Z-\"#J-!%J-\"&Z-'$:!!%:!%#I]!%9M)&II(%9I\"%)A'\"I9!$)A$#)M\"\"IA!"
+ "#Y)'#9%!\"I-!\"9)&\"I-!\"Y1\"#I1%#Y5&\"9=##99!%9E&#YI&!YQ!#9M!$J!%$*!#"
+ "#YY\"$9]$!:!\"$Z!#%:!!%:)!\":-\"$J1%%J5)#J)!%*M\"$:E$#JI!\"ZI!\"ZI!%JY%"
+ "\"[!!#ZU!\"ZY!$+!\"\"*]\"\";5\"$;)\"%K5(%;5\"#[A!'[1!%[5!#+M!%[=!$[E!%[E$"
+ "&[M%#+Y!$+Q!#+U!'KY'%;Q\"'L%'#,!!#;]\"%,1!(,!)%L9\"&\\-(%\\A#&LE&%L5\""
+ "&<E!&,I#'\\Q\"#,Q!',A#%\\Y\"\",Y!&M!%(=!$%<Q!%<]!$=!!&=)$'-='$]!#)=%\""
+ "%M)!%M5!&]5!$=9!&-A\"#=A!%]A!$=9!$MQ!&]M!%]Q!'-U!&-Y\"'-]&%^%!&]Y%"
+ "%]]!&=]#$MY!$MY!%^%!\".)%#>!!&.5!$N1!'.9&$^9!&.=!$N)!&.I!&.E!&.=!"
+ "&.M!&>1\"&>I!&.Q!!.M!'/!$(N=!'>U!&.]!'>Q&'>Q!&>]!#NM!&.Q!&NM#'^Y'"
+ "&.]!&.]!(^Y!(>Q*(NQ+(^Y!&O)!*NY#'>M!&>M!&.Q!&.M!&^U#*^Y*'>Q&&.A!"
+ "&.Q!&.Q!\">U!&.I!&^-%'.I%#^E!&.I!'>5!%^1!'.9&'>5!\">E!(>)&&N5#$^5!"
+ "&N)$&.=!&^-%'>9!&.5!#>%!).)*#>%!%^!!&^%%%]Y!'-U!&-Q\"$MQ!%]Q!%-=$"
+ "$ME!$M-!)-A&&-=\"%]9!&=A$%M!!)=A0&=-$%<Y!%<]!(-%\"#=!!'L]!%\\Q\"&<Y$"
+ "&\\U&$<I!%<I!&<M!%\\9#%LE\"'<=!)\\A+&<5!'<A!%L9\"%L1\"%;]!%\\-#%,%!%K]#"
+ "&;]!'+]!%;Y\"([U)$;I\"#;Y\"([I%#[I!%;E\"';A'&+=!$+)&%K9(#[1!%+)&\"[=!"
+ "$[)%$;-\"$+!\"#:]\"\";%)#*M\"!:U\"#JI!#ZQ!&*E(#:E#%JQ%%:9!$JE!$J5%#Z1\""
+ "#J-!$:5##J)!$J%\"&:-&#Y]\"\"II$#YU\"#9Q!!YM$%)M!!II#$9A%$)=$!II#\"Y9\""
+ "#9%$#I%##I!\"!))!$Y-!'95+%91)%I9'$95($9I$$YA'#9E!#YI##YM#$)U##Z-\""
+ "#YY&\"I]!%)Y$\"*%\"#J!!!J%*%*!!#Z-%#J9!#JM!\"J)!#Z=!#JE!#JE!&:=%$*M\""
+ "%JM%$;!\"$K-$#Z]!$*]\"$*U\"#[!!#[-!#[-!\"[5$%Z]%%[)&%+A!%+5\"%;A\"#KI#"
+ "&[E%$KM#'+U!%[Q$$KY#%+U!$[]$'+]!$,%!$<)\"%<%\"&L)'&,=$&\\5(&<1!$<1!"
+ "'\\A\"(LA!&\\E\"%<I!&,I#&<=!%LI!%LM\"#-%$&-!#%<]%'<Y-&-%$(])&'-)''=1("
+ "&=1$(=1#(=9\"(-9&$]5'']5%#=I!$=E$$]M\"%]M!%]U!&MM$)=U!%]U!'-Y!)N!&"
+ "'>!!%^%!#^5\"%^%!\".)!%^%!&^-%'>1'$N1!%N5%&N=#%^-!%^1!(NA!#NA!$^=!"
+ "&.5!&.A!'>E!&>E!'>I!&.M!&>I!&.M!'>M!(_)!)NQ%&.U!&^Q##NQ!&.U!&.Y!"
+ "'.Y%'.]$&.I!&.I!&.U!#O%!&.U!&_%#,>I&&.I!&.Q!&.Q!(.Q$&>Q!&.Q!)^Q&"
+ "#NM!(NI&&.=!(.M)#NI!&^Q#&NA#!N9#)^A!#N9!&>9\"%.9\")^=!'N)('N5(&.1!"
+ "&N-)&^-%%^)!%^%!%^!!$N!!+>%)&>!#*-Y$&-]\"'.!!\"-Q!%=M$%]M!%ME!']A*"
+ "&-9#%MA!&-A#%]5\"&]9!(=9'$=1!%]!'$])\"#=%!$<]!$M!\"(<Q)\",]!%M!!(,U,"
+ "#<]!#\\U#&<E!&<I%$<M!!,A!$L=#%L1\"$,9!%<1!'\\5($<-\"&\\%($,!%%,%!%+U!"
+ "%L!'%+Y!([Y-$+Y!%;M\"#KU#$;E\"&;Y!&+M%$K=$%[)!#[1!#[1!$;%\"%+)\"$K)$"
+ "&+)&&K!$#Z]!$*U\"#[%!#ZQ!$*Q\"!*M!#*E\"#JA!#ZE%&JA\"$:=$#J9!$JE%$*1\""
+ "#J!!\"9]#$Z!&$*%##IY!!*!$\"YY!$9]$%9Q\"$YY##IY!%)E$$YU)#9=!$9A(\"Y1%"
+ "#I-%$)%!#8U!#))##91$$I5&!Y5!\"I=!!)5!#YA#$YM#$9I%%YI($)I''9M+&IU."
+ "#IY!#9Y'#J%!%Z)##*!&#YU\"#J!!%Z1*#JA!%*9#!*9!$*M\"%JE%'ZM#%ZE\"$ZU\""
+ "#ZQ!%JI)#J]$\"ZY!%J]!&K%(&[)\"$K-$#+5\"%;)'#ZU!$[5!$K9'%[A!#[A$#[A!"
+ "%;M#%KI#$;M#!+Q!%<!!&+Y!\"[]$'[](#,)!%,)!$<%!%L-#$L1\"&\\1#%<9!$LA&"
+ "'\\Q'#,A)&<-!&<M!#,I!%LI\"%<I!%<A!',Q(%LU!&L]&$L]\"']%+%M%!%M)!)-1!"
+ "&M%&#=1!%M9!']9!)M=\"#=1!'-I'$MQ!'-U!&]I!&]I!\"=]&%M=!&MQ$(=Y''M])"
+ "%]Q!%^%!&N!$%^%!$N!!%^!!&.-!&.%&#>)!(^-.'>1&%^-!&.9!)^=!&.5!&.5!"
+ "$^I!$^A!'>A!#^E!&.Q!&.Q!)NU%'>I&$^I!&.M!%NM$%.M'&.M!'>Q!&.E!&.M!"
+ "'>Q!&^=$&^M)&.E!&>Q!&NQ\"$^Q!#NQ!&.Y!(NI!'>M+*.M!&.M!'NQ'%.Q!$^M!"
+ "\">E!'>I!(^E-(^I'&.I!'^=)&.A!$^=!&^=*%^-!&.9!&.5!'>5!*^5&$N)!%^-!"
+ "(.9*&MY$%^1!'N!#(MY(%]U!%]]!$MQ!%]Y!&MY$$MU!&-]!%]M!'-Y!%ME!$ME!"
+ "%MA!%M=!$M1*)=I!%]5!&])&&=9$']1!%M)!%]-!'=%)%\\U\"%M-!%<=!',I(&LU!"
+ "&\\Q\"%<U!%<M!%<A!'<=*&<=!&<-!&<E!&L9\"%,1!&<1!(,-$$<-\"%+U!&,!!(,!!"
+ "%+Y!\";Y\"%;M\"$[Q$#;M'#KE#$;M+&;=&%+5\"%+1!!+=$&+5*$+1!$+1\"#+5\"$[-!"
+ "$;-\"#ZY!$[!&!ZY!$*U\"$:U*%JY!#JA!\"ZM!$ZQ\"#JA!$JE!$*1\"#Z9\"$J5!#J1!"
+ "#J-!\"J-!#*)\"$*!*#Y])\"YY$#I]!#YU%#IQ!$)Q'$II)#YE#$IE&#Y-#\"I9!#YA\""
+ "\"8]!#HY\"#9-!\"I%!\")%\"#9-$\"I1!#)9#!Y9!!)E!#9A!%)I!%)A%$)M#!YQ!\"II!"
+ "#IU!%:)%(*!*$IY&!YY!\"IU!\"J)!&*),\"*1!&:5!%J9)#Z1\"$JA!#JI!#JI!%*E'"
+ "\"ZI!$:E$$*A\"#[%!#JI!![)!%;%'\"Z]!#ZU!%+=%$+1\"$;9\"%KI#$[1!\"[9!%+1\""
+ "$[=!\"[I!&;U\"$,!!&+U!'<)%%[I$&,%!#L!#%,)!%<A!%<)!&L)\"#<5!%,=%&L=&"
+ "'\\=\"%,-%$,A%(L=&$<I!%\\M#&\\I'%<U!&M%!#LU\"%<U!&L]&%M!!&]9!!]%$&])&"
+ "#]!''M1*%M5!%]-\"\"-9!&ME$%=E$%M=!&]Q%#MQ!'=9-(]M$$MY!*-Q$%=Q$&=M$"
+ "%]Y!%]]!%^!!(>!!$N%!'.-!&-]!&>!\"%>-#%>)$)>9%%^1!%.5\"#N9!&.=!&>A\""
+ "&.9!&.A,&NA#&>A\"'NI'&.9!&>Q!#NE!&NI\"'>I!'>I!#NE!)>I$&.Q!&.M!&>I'"
+ "&.]!)^I!(.M$(.I)&.M!)>M$&.A!'^Q\"&>Q!&.M!&NI\"&N5#&.I!(.I$&NI\"'.A%"
+ ").M3&.E!#>A%#NA!&>=\"%^-!*^A&)>9%&.9!'.-!#N1&$N1!&^5$%^)!%^-!\">)!"
+ "(N)'&.%!%^%!$N!!#=]!%^!!$MU!%]U!)=]%%]Q!%]E!$=9!&-A\"&]I%%MA!%M=!"
+ "&M9%']I$(-50&]5!'=5($-1$%M-!'-)#$M)!'M%%&M%&%]!\"%<]!%])\"&]5!$LQ\""
+ "$L=\"%LQ!&LE&%LE\"%<A!(<1!',I#'L5+'<5*%,1!&<9!&,)%%L)#%,%!%,%!&L%'"
+ "&+Y%&+]%%KU#$;U\"#+M!&+Y!%[E$#KA#%;5#%;E\"([9!&;5+%K1(%[)!#+)\"%+-\""
+ "$[%!$[!!\":]\"'ZY'$:I$#ZQ!#ZI\"#ZU!%*A'%*A#%*A'$ZM%#J9!$Z5\"!Z5!$J-%"
+ "$JA%%*%'\"Z%\"#J5!$9]!$IY&$)U#%)]'%)Y$$9M$%9I)#)I\"$YA!!Y9!#Y)##95$"
+ "\"Y!\"$)-'$9%#\"Y%\"#9)$\"Y-%%I%(#)9##9-$#99!$)=$$)E##YE\"$)M$$9I$$9Q!"
+ "&9U'%9U)#J)!#J)!$*%#$:%!#J5!#Z-\"!Z9!%:9!%J1\"#J=!\"Z5!#*A\"\"ZM!$JE%"
+ "\"JM#$*E&$*I&\"ZU!#[!!$JY$#[%!#Z]!\"[%!#[-!$[1!\";1\"&;9'%[=%$[5!%+=\""
+ "&K9(&[I!$[=!$+M!$+U!#KY'&,!!$+Q!$+Q!(L%'%<%\"&\\)#%,-!&,-$%,1!$,1!"
+ "&<9!$LA\"'LA&$\\=#$<Q!&\\Y!$<M!#,Q!)<Q)%\\U#$<U!\",]!',]'#]!#(M%*'M)$"
+ "&LY&%M-!$=1!&]5!(=5'&-=\"&]1!&-A##=A!$]E\"#=E!%]I!%]M!&=E#'-]!'.!!"
+ "%-Y\"%-M#&MU)']])'>!!$N%!%^%!%^-!(>%!#>!!%^)!&.5!%^)!'>A!%^%!'>A&"
+ "%.5\"&.=!&.A!(>I+&.=!&.=!'NA\"(NA!#NI!&^I)$^E!&^E$%.E!*>I\"&.Q!&>E\""
+ "&.U!&.I!&.I!&.Y!(^U!#>I%&.I!#.M)*NA*&.I!%^1!&.E!&.A!%NE$$^E!'NA\""
+ "&>E!*N9+&.=!(>E+%^=&'N='&.5!&>1\"&.=!&.5!$^9!'N1((>-!&.-!(>!,\".)!"
+ "%N%*&.%!#>-!$M]!%]]!%]]!%]Y!'-U!$MM!%]Q!&]M+$MI!%ME!%]I!%MA!%MA!"
+ "(=E\"%M9%&M1%'-5'%M-!&]1!%M!!%])''-%''=!$%M%!%<Q!',Y#&LM&\",E!%LQ&"
+ "&,M$(LA!%<I!&,I#&,=$%\\A#%\\9($\\)$'<=%#<1\"%L1\"&,)!',)%$<%\"%[]$%[U$"
+ "%;U\"%;M\"%;Q'%;Q\"%+Q!$[I!([I%';9,'K9$%[9!%+%\"%[E!\"[1!\"[-!%[-!$[!!"
+ "$+!\"%J])!*Y!\"ZY!#ZY!#[!!#JI$#JI$#JE!#*9\"#JE!!:Y)#J=!$:1'$J1\"&:--"
+ "#J)!$*%&#J-!$:!$%:)!!Z!(%9I\"$IY)$)M$#9E!$II%#YI##YA\"!Y=!#Y=&#))#"
+ "$Y!%\"(U\"$(Y$#9%!\"Y)\"#)-#\"I)!#)9#\"9=#\")1\"#YA\"$)5$#YE\"!)I!#IY!#J%!"
+ "#II\"#Z!%\"J!!%)Y(\"J)!$:%(#Z)%$Z1&%:1!$J5%$:)$&:9)#J=!!ZA!#*=\"!ZI!"
+ "#ZQ!#JE!%JQ)$*U\"\"JY$#ZY!#[!!#*]!$+5!$*]\"%KA#!+)$#[%!$;=\"%;A\"$[9!"
+ "$[A!%[=!&+I%#[E!$+Q!#;Q&%KM+)+])&;Q\"'K]'&<-!#L5#%,)!$L1\"%<A!$L-#"
+ "+\\),&L%\"&<A%%LA\"&\\E(#LE\"$<I!(,Y\"'LQ!&,Q#&<Q%$]%\"%<U!%<U!%]1\"%M%!"
+ "&])&*--!&--#'=1$%M9!\"M9#&]9+%=E)&]E%&=A$$ME!&]I!'=I\"#=U!)=U!%]Q!"
+ "$MY!%]U!'-Y&%]]!*>!%(N!\"%^)!%^1!(]]-%^!!(>%!%]]!'.1!%^-!&.)!&.5!"
+ "(.E)&N9#'>9!&.9!&.A!'>A!)N10'.=%&.U!&>E!'^E\"&.I!&>E\"&.M!'^5#&.I!"
+ "$^=!&.E!&NI#(NE!&.E!(.E*(NM!'N=!&.E!&.M!(^M-'>A!'>E,#NA!(.A$&N=#"
+ "(N=,(N=!(>=&&.=!(>1!&.5!'>A!&.5!%.1\"&.5!&.-!&.9!%]Y!%^-!%.-\"'.%!"
+ "(=]!&>!\"'-Y!%]Q!)=Q0(N-'(-M!'=Q\"'-E!&=I$%]E!'MI(%M=!'-9\"\"ME\"$]9\""
+ "&-9\"$=5!&M5%$=1!&-%#$M=!'=)(%]!'\"=)!'=!$\"]-$%M%!\"L]#&,]#'LQ&*,U!"
+ "%<I!%<U)%<5!&,E#!,9!$,1!(\\9\"&,%%'<1%%,-!%<%\"#L%#'<-!&K]'#,)!%+Q!"
+ "'KU(&L!'%+Q%$[M$%+]!#[5!$[A!&;9'%K=$$[E!$K=$#[9!$[-!%+)\"%K)$$+)!"
+ "#[!!&J]!#ZY!#Z=\"%:Q$#ZQ!%ZM\"&:I(#J=!#ZA!#J=!#Z-\"$*=&#J=!#J-!\"J-!"
+ "$:)!&J%#(*!*#9M!&:!,!J1##YI\"$)Q#$9Q!#IM$%9=*#I1\"#9=!!Y9!#)9##95$"
+ "#(]##(]#%)!%$9%%!HU!\"I-!!Y1!#)-#$91%#99!#9=!$IA#$)A#$)E#$YM#%YU*"
+ "$9Q%#9M!%)Q$#)Y\"#J%!#)I%%*1'\"Z%!$J1\"$J9%#Z1\"#J9!%Z9*$*A\"$ZE\"%JI!"
+ "%ZI\"#JM!%JY(&ZQ\"#ZY!#J]$\"ZU!%ZU&#[%!#+1\"#[%!$K1$#[5!$[-!%;9#$[=!"
+ "%+A!%;I\"&+E%&+E!%;]&&[Y,#+]!&+M!&,%%(K]'%,%!#,%!%L-\"&<!\"%,-!$<1%"
+ "%,%!%<5!&L=\"%L=\"&\\E\"$LM\"\",E!%LE\"'LQ!'LQ&&\\]\"%\\Y\"#,Y!%<]!&M!!&L]%"
+ "%M-!#=)!&M)!(=-('-1')-5&%M9!&]9!#=A!&-A\"(=9\"%]M!%]I!\"MI\"#=M!&=Y#"
+ "\"-M!&.%!%-M#%]Q!+=]$%]U!&-U\"%^%!%^)!%]Q!$N1!%^%!%^-!%^-!$^%!&N1#"
+ "&.9!%^-!$^9!(N9!'>A!(^).(N9!&.A!%>%#&.5!'>E&&.9!)>=$%N5%$^5!&.M!"
+ "%^A*&.A!&.=!&.=!&.A!\">=!&.=!'NA\"'>A!+>A(&^A$$^=!'^=($^E!&.=!%^9+"
+ "*>=#'.1!(>5+$^5!*.=('.-!%^-!%^1!%.1\"$>!%'>-&\".1!%^%!%^!!%.%\"$M]!"
+ "(.%%&=]#'.%!'=Y(%]M!&]Q!'-U!%]I!'MI)%]I!&=M$#=M!&-A#%]5!$==%#=A!"
+ "%M9!&-%$)]1*%]-\"%M5&%M%!(-)\"(=-('-%#&M!&%<E!%<Y!%\\U'%\\Q\"&<=%'LU%"
+ "&LQ!&<E!&\\E'&<9!&,1%#,)!%<9!&,1%'<9%'<5%&,-%$<)!\"+Y!(+Q!'[]$%[U%"
+ "&KI(!KQ'#[9!%KU#$[E!%KM#%;A\"$;A\"%[1!%;E\"(+-#%+1&$K5$%+A%#[!!#[-!"
+ "'*]'&+%\"$ZY%%ZU\"$ZU%\"Z9!$J9!!*I!%:I$$:A#$:1#$*A#&J-\"#Z1\"#Z-\"#Z-\""
+ "\"J%!\"IY!%J%&$*!#$*%#%IY\"&IA!#II!$)M#$)Y##I=!#)A#$)='#)9##)5#!Y1$"
+ "$HY&#HY\"#XU!$))%#Y5#\"I!!%(]&#I)(\"I9!#Y9&\"I=!$)5$$)M$$)A$#9I!%YI!"
+ "#9E!#*!\"$9]!%9U)#J!!#)]&$*!##Z-\"%J5)!*1%$Z5\"&*-%#ZA!#:E##ZA!$ZI!"
+ "#JA!$*M\"#:U##ZU%%:U'!*Y!#Z]!#[!!#[!!$J]!![-!%[1!![!!$+=!%;=\"%;9\""
+ "$[I!(+A!&+M!%KI#$+M%%+M%$[E!$[I!%K]#%;]!%L!#!,)!#L!#\",!!$\\1#%,1!"
+ "%<1!*<9$%<=!%LM\"%<A!!,E%)\\I&%LA\"&,M#&\\U'&,U#&,]#%LY&'<M$&]1&%M!!"
+ "&M-%%M%!$<]!&]1!&LY!%M5+%-=((-=!#M9\"&=-$'-A\"'-=\"#==!']9!'==(&=M$"
+ "(-M+%ME!%^)!%]U!+MU%%]]!'^!$%]]!%^)!)N!!)^)'(>)!(>%!%^-!(.-*&.-!"
+ "&.=!*.E'\">5!%^1!&N1#'.1!&.1!%^-!&>9\"&.A!&^=$'>E!&.9!(>A+$^M!(NA!"
+ "$^5!&.A!'>9!'>9!&.9!%^%!$N9&$^=!'>5!$^=!&.=!&.A!'.=%&.9!&.9!&^I$"
+ "#N5!&.5!%N1*%^1!$N-!'>)'\".-!&N-#&.E!(>)+&^)%%^%!&N%$%^!!&^!%%]]!"
+ "'-]&%]Y!&-Y!&-Y!'-U!(-Q!$MM!%]I!#=I!&]M!&M9%&ME$&M9%&]I%'-9'%]=!"
+ "%]5!$M=!)-1&%M-!&=!$#=!!%M%!%=!%%L]!'<]#$<U*&<M!%<U!#,Q!%<M!&LM!"
+ "\",M!\"<I!%<A!$,A!$,9!&,5%%,1!'<1*#\\=#%<!!'L-+%,!!&<%%%+]!';E&);M'"
+ "%[U%$;Y&'+M!&;I\"#[A!%[A-%[=$$[I!%+=!$+9!#KA'%+-\"%;1\"#[)!#;9\"$K!$"
+ "%ZY*'*Y##[%!%ZU&\"ZQ!$*Q\"&ZI'#ZE!!*U$$JA!#J=$#Z%\"#J-!$J-!$:-!#J)!"
+ "#J-!#J)!$IQ&#I]!#IY!$IQ&#9M!&)M\"$)M&#I=\"#)A#$I=##9=$\"Y=%$91(!Y9!"
+ "\"(U\"\"I!!!H]!%(]\"#I%\"\"Y-\"\"I5!\"I=!#Y9#\"Y9\"\")9%%I9#\"I9!$9Q%%)I!#9M!"
+ "$9I%%:))$Z%&#9I#'9U+#J!!#*-\"$)Y##Z%\"#J%!$J5!%J9)$Z-\"$J=!\":A\"\"ZE!"
+ "#ZI!$JE%$JM$#ZU!$*]\"#ZY!$[!!%K!)$*]\"$[!!$K!$![-!!*]!%;=&&+)\"';9+"
+ "%;=\"&[A$%+E%%KQ#%[I(&KM'(+Q.$+U!$;Y\"';U+#K]#%,!!%,%!$,)!%,1!%L-\""
+ "',-$&,-%$L=\"%L9\"&\\A#%<A!#LI\"\",]!#,A!%<M&!-!!%<Q!'<U)%<Y!&]5!%<M!"
+ "'<])(=-'&=)$&=-$&]1!%M9!%M9!']5!\"-=!*=5!%M=!'-I'&ME$%]M!&-9\"%=E$"
+ "(]U.%]M!#=Q!(=Y!&MQ$&]I!%]]!$MY!$M]%%]I!&.!!%>)#$=U%).%$'.-!&>)("
+ "%^)!%^)!&.9!$^9!)>9%'.-%'.)%$N5%#>1!(N9!(N5!&.E!&^9$&.=!'NI''>9!"
+ "'N5()>1*$^=!&>9\"#N5!%N9$&.5!(N9!,>A,'>5!&.9!&.A!(N5!#N5!\"^1#\".1!"
+ "&>5\"&.A!%^%!%N1$(NA!(^-#$^%!'^)*)N%&#M]!)>%*&.-!\"N!\"(MU-%]]!%]Q!"
+ "&-Y!%]U!%]U!%]Q!%]Q!$MI!&MU$\"-I!(MQ($MI!$MQ!&]Q%%=A$%]5\"'-9'&M=$"
+ "$-1$&M-!%]5\"&-%$(])!%M)!&-!(&LU!%<]!%<Y!%\\U#)LU/&LU&%<M!%LM\"',=("
+ "#<=!$<A*&<5!*<A-%<9!$\\A#$\\-$$,-!$,%!!,!!#+U!$<!\"&+]%%L!,(+Y!%[U$"
+ "%+Q%\"[I$&;I\"%+I!%+Q!&+A\"%+=\"%[5!%+1\"$[5%%K1$&+-\"$[)!$+)\"$+!\"#[!!"
+ "&J]-$JY!$J]!$JQ!#JQ($*M\"\"ZA!&:M,&*I##ZA%$J9!#Z%\"\"J1!'J5##Z)\"!J)&"
+ "#IY!%*!!$)]##9Q!$9E$#9U!$)U#\"9M##9E!%YI+!IA&#99!$)9$#)1#%)%&\")1%"
+ "\"8U!#(U!\"I!\"#Y1##Y%##Y-)\"I-!%9%#\"I-!\"YE\"%91&$I=\"#Y=#\"9E##YQ#$9Q!"
+ "#9M!%)U!#YU)#IY!$)Y##J!!#*5\"#IQ\"(J!,#:-##J!!$Z5&#Z=\"%:=!%:9!#ZQ!"
+ "$:E#%JI!$JM$$:M$#ZU!':U$&*Q'#:]#$;!#&+9*!;-&$[1%$[5$&;-(#[)!&+9&"
+ "#[=!$[A!\"[A!$[A!#[I(%+A!$;Y\"\"+I!%[U)%;Y\"%+]!$+Y!'\\!$&\\%$%,)!%,-!"
+ "',9$&<9*#L9#&<9%%<=!%<=!%LI!$\\E#&,M$&<I!(<M$$<Q!%<M!'LQ%%LM\"&\\]&"
+ "&M!!%M!!'-%#%M-!(-9&$=5!&M5%%M-!%M5!%]%\"%MA!!MA#&-=#(-=!%MA!%MA!"
+ "%]I!'MQ((-I&#=M!%]Q!%]U!'-U!(]Y##=Y!%]U!(=]!'.!!&>%\"&>%\"%^%!%.%\""
+ "\".!!%^1!$^9!(N9!'>1'#>)!&N1#'.9&'.1!&N1#*.93%^)!$N1!%^1!'.1*'>5!"
+ "%^1!&N-$&.5!&>I!#N1!&.5!&^9$&.A!&.5!&.5!(N-'&.5!'>1''.1!).1)'.1!"
+ "%^-!%^)!%.1\"(N5,&N5))N!!&.5!$N%!%^%!&>%#(]]-'M])%]]!%]]!&-Y!(]Q("
+ "&^%%%ME!(]I)$MY!'=]!'MA$%M1!%ME!(-A!%MA!&-9\"&-9\"'M1*%M9!%ME*$M5!"
+ "%M=!&]-&%<]!%M-!'=%)\"\\E$+-!+'LQ!#=!!%\\]\"&LU!#LQ#'<M%&,I#%<I!%<5!"
+ "%<I!%L=\"%<=!(,9)&<5%&,A$%<1!&,1%%<!\"%<%\"&,)%%L%''+]!&[Y$$[I!$KU'"
+ "&;Q+$;M\"%;I\"%[E!#+5%%[9%'[=*%+-\"(+A/#;1\"%K-$$+)!%+-&&[%&$+)\"$*]\""
+ "#*I)%JU!#ZQ!!ZQ!$JQ!#JI'$ZE)$JA%$J9!#Z1\"#Z)\"%Z5\"%*1'#Z-\"$:)(#Z!\""
+ "#J!!#J-!$9]$$YM'#9U!#IY!#)M\"#IM\"&9='%9A##I5\"$II##)M%#I5%\"I-!\"I1!"
+ "$8Y&&HI*\"H]!\"(]\"$)%$#9!%\"I-!$Y1$#I=%#))&#Y1##)=##IM!\")A%#YE##YI%"
+ "#9M!!9I\"#YM##J%!$)]#%)]'%9](#J)!$J!\"%*-'\"Z)\"$J%%'I]$%*9&\"J=##ZI!"
+ "\":E\"%*I'%:A$%Z9\"$ZA\"$JM!$JY!#Z]!$[!)%*Y*$J]$#[)!#K9$%[=$\"[E$%[9!"
+ "&[9!#[=!';9#$[E!#[9!'KU#%;M&\"[Q%%;M#%;Y\"(\\!$%,!!%<!\"%K]'&\\5-&,-$"
+ "$<-%%,)!&,9)%,1!'<E%*<1*%LM!%,5)%<E!$<M!&LM*%<M!%\\]\"$L]\"&\\U\"%\\Y#"
+ "%\\Y\"'-!(%<U!$M%!&-%$(]%*'M5)'-1'(M-$$=9!&-9\"&M9%&MU%(=M,&-A\"#=M!"
+ "%M=!$]I\"(-M&%MA!(-A!(MM('-Q&#=A!'-U&&=M$%-Y\"(=Y,'-Y!$MU!$N!!%^!!"
+ "%^%!'.)*).5$$N1!&>%#&>)\"&^5%%^-!&>-\"%^-!&N-#'^!$(>1!'^-#'.)!\".1!"
+ "%^1!'NA''^)*'>5!&.5!%^1!&N)#'.1!$N1%%^)!$^5!&.9!\">E!$N-!-N-(&.5!"
+ "%^1!#^)\"'.)&&N-$'.-%%^)!%^1!(N!'\"-]!!.%!%]Q!&-]!$MY!)MI,$MY!%^!!"
+ "&-]\"#MA!$MM!%]M!%]M!&-I\"%]M!&=I$$MU!'-A\"'M=)&-9\"%]E!&-1,'=)($=-!"
+ "'M-$&M!&%M)!%]5\"#=%!%<]!(=%$%M!!%<]!%\\U#&LU!&LM*'<9!%<I%$,A!%\\=#"
+ "%<A!',=#%<9!'L5&%<E!%;]\"%,1!&[]$'L5!&,!%'<%*%L%#&[Y)'+Y!%;Q\"%+]%"
+ "';U!%KU#%[E$#[E!%+A!%;E\"%[=$&;5\"$[5%$+1\"'K-!#+!!$K!$&;)'$J]$&JQ!"
+ "!ZM!&JY,$*Q\"#ZQ!#JI!%JI!#JE!%*A&$:9$$:-!$*5\"%*1'$J1(#J-!#*-\"#*%&"
+ "#YY\"!Z!!%*!!#9U##IU!&)](\"IM!%IQ)#9U!%Y=,#I=\"!)I!\"I=!\"I5!#IE%%)-("
+ "#8Y'$HY##HY\"#)%#$)!$#9%!\"Y)\"#9-!!Y1!\"Y)\"#IM!\"Y5\"\"95#$YA&%YQ$%Y9("
+ "#YI##9M!#IQ$\"YU%$)U*#Z-\"\"J!!#9Y$%J-\"#J1!\"Z9!%*1'#Z5!%*=#$J9%!ZA!"
+ "#J9!#ZE\"#ZI!#Z1\"#ZI\"#ZI!\"Z]!#Z]!#Z]!$+%\"%;%'$+)!#[)!#[-!%K9($+5!"
+ "&;-$%[=!$[E!%;M\"$[E!%[=!#[I!&+Q%$+Q!$;U\"%<%\"&K]'#,%%%\\!#%\\%#&,)!"
+ "&L1\"%,-!%,)!&L5'%L1\"(L=!$,=!#<9\"%L=\"$\\E($<I&),U\"%L]!%LM\"%<Q!$<Y!"
+ "$<U%\",]!#M!'$=!!(M=.%])\"%L]!&M)!%M)!$=1!%M5!$=%!$M!\"#-1$&=A$#]I\""
+ "%ME!%ME!)]Q(%ME!\"-I!#]E#'-M&%]Q!'=U'#=U!%]Y!&-Y!&]Q!\"-Y!&]]%$N)!"
+ "&>!\"%^!!%.)\"$>-$)>!%%^-!(>!!'.)!#^%\"'.%!%^1!'>=!(^%(%^)!%^-!$^%!"
+ "(N%,%^%!&>1\"%^1!&N)$&.9!(>-!%^)!$N1!&N)#*^1!).1$%^-!#>-!&.)!(>)%"
+ "%^%!,>9'(^%#'-Y!).%$$.%#%^!!(>!!&-Y!%]]!(=U!%]Y!&MY$$]U&%^)!'.!&"
+ "&=I($MI!%]M!$ME!#=U!&]E!%M=!$MA!$-=$']5!%M9!'=Q\"%]5\"%M-!%M1!$]9\""
+ "$])\"#=%!%<]!%<Q!%M!!$M%!&L]!'-!'%<Y%&<Q%'\\E#%<I!%\\A((\\E'%<E!%LA\""
+ "$<5!%<9!',=-$,%%%L1#&\\-(&<1!&[])%,%!&\\!$%,%!&+]%(+]%&+I!%+Q!#[I!"
+ "$+M!'[M%%+M!$KA#%+=\"&+U%&[A)%[-!$;=\"%;-'%+1&#[)!$+)\"%+!\"#ZQ!%JU!"
+ "!*Q!&JU!#JI!#ZM!#ZE!$*Q\"#:9##ZQ!%J=!$J9!#J5!\"Z%\"#Z5!#Z)\"$9]!#*%&"
+ "!9]\"$9]!$YU*%)Q'\"9=#$9U$#9M!%9I)$)E$#99$\"I=!#99$!)='\"95#\"Y-\"$Y-$"
+ "#HQ\"#(U##8Y$!)%!$Y!!#9%!\"I%$$)9!#I-\"#Y1&\"I5!#)1##))&$Y9'$)E#$YI$"
+ "$YA$#YI##YQ##IU\"&IQ*$*-#%Z%##I]!#J-!\"Z)%!Z-!#J1!#J5!'*-!!Z5!#J9!"
+ "$J9!$JU$$Z=\"#ZE!#JM!$ZU%\"ZU$$ZU%#Z]!$[5!%*Q\"$[%%#[-!$ZY%%K1(\"[5+"
+ "%[=%\"[5!%+9\"\"[9!%+U!%;E\"$[A!%+E%(K]'%+U!%+]!%+U!&[]#%+M!%\\%$%L)#"
+ "&L)'%,-!$\\!$$\\1#&L5&%<9!%<E!%L=\"#LE#%<E!*,E\"#<E!%<M!(,I#&LI+%<U!"
+ "#,M!%\\U#%<]!%-1$']!!&=)$&=-$$-)$%M5!\"=I!%=1$&M1%#M5\"#=M!*=5'']1!"
+ "(=5#%]A!%ME!&-A#%]I!$]I\"$MM!$MQ!&]Q!\"-Q!%]U!&N!$'-Y!&-Q\"%.)(%]]!"
+ "&-Y\"%^%!'=Y'%^!!#>!!%^)!(^%#'.%!$N)!%^-!%^)!'>-'%^-!&^)%$N-!&.5!"
+ "#>)!&.)'&.5!%^%!$N!!$N)!%^%!'^-$%^-!$N-!%^-!$N)!&N5(%]]!%]U!%^1!"
+ "%^)!'.%!'.!&*^!!'>!''.)!%]U!$]Q!&-Y!%M]%*.!)&]Y%'.%&%]Q!'-Q'%]I!"
+ "\"-I!#=E!%]A!$M=!$ME!%M9!%-A('M1)$-A$']9!*-5&%M5!#=)%\"-1!%--$%]%\""
+ "'=)$%]%\"$=-!',]'&LQ&&\\Q&%M-!%\\U#$,M)%LM\"&LQ!%LQ!%,A$%<Q!'\\E+\",E!"
+ "#<5\"%\\9#'L%,$<5!%L=\"%,5%%L5#&+]%%\\!#$;U''[]#%K]##;U\"%+U!#;M\"&+E*"
+ "%[I,%K1$#+M!&+A\"&;A&%+-\"$K5#$[5!#[%!!;-&$[!!#ZY!%;5&$;!#![%!$JU!"
+ "$JY$#:U##JA!%Z=&%:I$\"ZE!&ZE*#J=!%J=)$J1%%:9!$*1##J!!#Z%\"$J%!#*!#"
+ "$:!+$)Q#%)U$%)U(%9Q(\"IM$%)A$$9I%$)=$$)I!#I1(%YA+$I-##)-##Y=&$9I("
+ "$XU$!(U!#(Y#\"9!#$)-'#9!!#(U!#)-##I)\"$9-\"#Y-&\"Y9\"#I=%$I=&#9M!$IA#"
+ "\"II!$)=$$9Q!\"9I#$IU%!YY$$*!##J!$!)]!%:1!#Z-\"$:=##:9&$J9!#Z9\"\"J=#"
+ "#ZA\"#ZA!$ZI\"#JE!#JI!$J]!#*U\"'JU%#ZU!$[!!'+%'#[9!$+%\"$+)\"#[9$!;1\""
+ "&K1$%;5\"%+9!%[9!#;A\"%+M!%KI#%+Y!%+=\"#;Q\"#+U!%+Y!%+Y!$+U%\",)!&,!%"
+ "%,!%%L)\"$<-\"%L)\"\",1!)<5%%\\=#&<=%&\\9#'<5!#LE\"&<9!%<M!'LI!%\\Q\"%<]!"
+ "%\\Y#&LY!%<U!&M%%(\\Y&&]!'(]%!']%!(M9$$]1'&]-!%M1!$=1!&-9#%M9!$=5!"
+ "%M=!,-E(%M=!(-E!%]M!%]U!)=I!$MU!$MY!#=M!(=U'$]Q\"'=]'&M]$'-U!\"-Y!"
+ "%]M!%]U!%]]!%]]!'=]!\"-Y!*^!!%^!!!-Y!#>)!$N%!'.%!&>-\"%^%!%^%!%^%!"
+ "%^1!%^-!&^!%'N='%^%!#^)\"(^))$N%!&N)#'.!!(>)!+>%)'.)%(N5!%-]\"%^-!"
+ "(N!(&>!#'-]!%]Q!)M]2'.!%%]Q!&MY$(=Y!%=Y)$]M!'=I((-Q!+-M('=M#(-M!"
+ "%]U!\"MQ\"(]E/%ME!%MA!%MA!%M=!(MA.%M1!&]5!$--$&--#%M)!'=%$%]-''--#"
+ "%\\Y\"%-5#%M!!%M!!'<Y)#LY\"%<U!'<=%%<I!$LI\"%\\Q\"&<I%&,E$%LA\"%<=!$,=!"
+ "&,A$%L5\"#,1!$+]!%\\-#%\\)$&L5\"(,%)$;]\"%K]#&;]!%+Y!&+U%$KQ#$+M!%+M!"
+ "%[I$$;M\"(;M#&+=&&+5&&+9!$[5$$+1\"#[-!#[!!$+)&%[5!$[!!%*]\"$J]!%JY!"
+ "%ZY%$JU!#JM!#[!!%K!(#ZQ!$:A#$:5#!*=$&J=-$J=!#J5!#Z%\"#J1!#J)!%*!'"
+ "$Y]#$9Y(#I]!$IU%\"YQ$$)Q#%IA&#IE!#9M!#Y5#!9-%\"I1!\"Y5\"$9-(#9-!!Y!!"
+ "\"8Q##XI!#(Y&#(U!\"I%!#8M$$9%#\"I)$#99'#I1%!Y1!#I1\"$I9#$)5$#I9\"#YE\""
+ "$)Q##IM!#IE!$9U!\"IU!#J!!%IU'#J%!$YY##IU!&*)$$:-!#:-#!J=#\"J1!\"*5\""
+ "#Z9\"%ZA&'*E$$*A#!ZM!#ZQ!%:I(%JU!$*Q\"#Z]!%+-&$[!!\"[%!#[%!$;-'$+1!"
+ "#K5$$KA$&[9!$+E%%+E%\"[A!&[=$#[5$%;M\"#;Q\"!+I!%<!!&<)&&<%%$[]$%;E\""
+ ")L%'%\\)$%K]#%<%\"#\\)#'L9+&\\5,&\\1('LI*$<M!$<E!*\\E&$,I$%LI\"%<I!$LU!"
+ "&,]#$<Q!'LY*'\\Y+',]'%]!\"#=!!']%!%M%!$=1!%M-!%])\"']9%&]5!'=-((==("
+ "&=M$'M=$&-E\"&M5%&]=!(-I!%ME!&]I!%ME!'ME$$MM!&]M!$M]!%]Q!'-]!%]]!"
+ "$MQ&%]Y!'-Y&.]]0'-]!%]]!&.!!#.!%'.!%$MU!%]]!%]]!%]Y!%^!!\".!!'>!'"
+ "%^1!%]Q!%^%!&MY)%^%!$N%!%^%!%^)!(^!#(.!%%]U!)MU'&.)!(.%%%]Y!%]Y!"
+ "&=]#(=]!%]]!%]Y!$M]!%]U!$]]!&=U#&]Q!%]Q!%]U!&=M$$MU!%]M!'=A#$MI!"
+ "\"-Y!$MI!&]M!&]E!$ME!&MA$$=9!&-E\"%M1!'=1#&-5#&=)$*M1'%M)!%]!\"%--$"
+ "$M!\"'L]!'<]$$,]$%<]!&<U$%<M!%\\I'&\\I\"&,I$&LM&&,E#&<9%&<A%'\\=#&<-!"
+ "',A(%<A!',1)$,%!%<!\"&,)!%<!!%,-!%KY#%,!%'+Y%%+U!$+Q!%;I\"#+M!$+I!"
+ "#;I\"$[9!%+)\"#[=!$[9!&[5%$+-\"$+)\"$;-#!;)\"#+)\"#[!!%K!(%*]\"\"JY'%ZY\""
+ "$*U%\"ZQ!#:I##ZI\"%*]\"%JA!#J=!#J9!%*9'$:-$$Z5&#J=!$Z)\"#YY\"\"Z!!&I]+"
+ "#J)%$)]#$)U##9Q!#9I!%9M)$9I$#9A'#9E!\"IA!%)A'!)5!#Y9#\"99&\"Y)\"\"I)!"
+ "%(M\"\"8Q!#(M!#HY%!XI'#I!\"#I%\"#))&$I),$Y-$#))##Y1#$)5'#9I#$9U$#9A!"
+ "$II#$)E$$IM\"&9M*$)]#\"YY\"$)Y##9Q!$:5$'9Y#$Z5\"\"Z9!#Z%\"$*1\"#Z5\"&*5,"
+ "%Z-&$ZE%#JA!%*M\"$*M-#J=!$JQ$\"Z]!#ZU!$J]!#ZU!#+!\"$*]\"$+1\"\";%\"$K1$"
+ "#[1!$+5\"#+Q!&K=$%[=!\"[A!$[E!$[E!%;=\"\"+U!$;Q\"&\\!,%+U!'L!\"%,%!%;I\""
+ "%+Y!(,).$<-\"&<-&$\\-$\",5!%<9!&L%+&L9!'<E%\"<E\"&<9%%<=!&,E#&LI&&\\Y&"
+ "%LM\"(,Q#&<Y%(\\Q!%LY!$L]!%])\"%M!!%M%!$=)%%])\"%M-!(-=0'-)\"']1*&]9!"
+ "%]!\"&==$)-A!%ME!'=A($MA!#=A!#=5!(=I!%]I!%ME!#]M\"%]M!$MM!'=Q\"%]Y!"
+ "(>)!%]U!%]U!%]U!&-Y!&.!'%]]!%]U!$MU!'-Y!(=]!%^!!%]]!$M]!'N)#%>)$"
+ "'N!)#>!!'^-#'-]!&>!#%^!!%^)!'>!\"&^!%'>!''.!!%]]!%]M!%=]$)-]%#=]!"
+ "%^!!)]]-%]]!'-Y&(-Q!!-]%&=I#%]Q!%]Q!'=Q(&=I#(-Q!#=I!&=M#']M)&]E!"
+ "%MA!(-E!&]9!&-9#&]9!%]E!%]1\"&-9#$]1\"%]-!'M-*$MI!%M%!(-)!&M-!%M%!"
+ "%\\]\"(L]%$-!$$<U!$L]\"%<E!&<Q$%<Q!%LM\"'LM!%<5%&LI&&<9%(\\M&%\\=#%<5!"
+ "%<5!%\\1#%,1!(L-!$,-!%<!\"&+]%';]*%+Y!$[I!$+U!%+]!$+U!$+M)%+A!#[E!"
+ "$[I!&KE#&[A!$[=!$[)!%+=\"%+1\"#+1&\"JU$%;%'#[!!%:U##:Q#$*Y\"$JI%$*U\""
+ "#ZQ!#JE!\"Z5!$*A##J5!'*=%%:=$$Z)&#J1!\"*A!#I]!$Z-&$J!&%Z%'#J!!$IM%"
+ "%9Y\"%9Q%#IU\"\"IQ!#II%#)I\"#YE#!)A$\"9A#$)9$#)%#\"Y9\"%I1'\"I-!\"I)!#9!!"
+ "#8M%#HQ%%8U*#8E\"#)!##(U#!)!!\"I!!#9)!!)1!$)%!\"9-&#95$$9-%#9=$#YA#"
+ "$IE&$)I#\"YQ$#9M!#IY!%J!)$IY%%9I\"$*!#$*%##J%!#*)&!:1\"%:-!$Z5&$*5#"
+ "#J1!#Z5\"#ZI!\"Z]!$:M#'ZE(\"ZI!%ZU*%ZY)#ZY!%+%&'+%#$[!&#[)!!ZY!%[))"
+ "#[-!%+=%$;5\"';5(\"K=#&+1&%+1\"%[E!%+M!&;5\"#KM'$+Q!%+U!%KU#'KY#%+]!"
+ "&,%)$,%!&[]$&\\!$%L-\"$,-%#<5&(,%%%<9!&<9%&LA&$,A-%<=!%<9!&<A!%<A!"
+ "%M!!',Q((LQ!%M!!%<M!$\\Q'&L]&%]%\"',]#%M%!&M-!%-)($=%!%M5!$]1\"!-)!"
+ "&M%!'-5\"\"-9!$M9!)=E!&-A\"%]A!&]A!%ME!'=E(%]E!&=Y-&]9!(-Q!&MU%'MY)"
+ "#]Q#(MY(&M]$$-Q$%]U!%]U!'-U!%M=!%]Y!%]Y!'N!#%]Y!'-Q'']])(-]%'.%!"
+ "(N!!%]]!#=]!%]]!(-]%'>)!%^!!$]]!#=Q!%]]!'-Q!%]Y!$MY!&]Y%'.!!&=Y#"
+ "'-U!%]M!%]U!%=Y$%]Q!$]Q'%]M!'=Y'&-M,&-M\"%ME!%-I#']A%#=I!$MI/&ME$"
+ "&MA$#=A!(=5,&=E#'-9'&]E!'-5''-=!!=1\"(M1$&])&%M)!'M%%$=%!%M!!'--#"
+ "#,]!%<M!%<Y!%\\U\"&\\Q'%<M!(\\M!&LI&%<I!%LM\"&<=!&LA&&<=!%<=!%L5#(<5/"
+ "%L5#(,!!#<9\"$KY#%<-%%,!!$+]!&+U!!+M!';I\"#+M!$[Q$%+]!&+I%\"[=!$[A!"
+ "%;A\"&KE#&[-!%[-!$[5%#[5!#[-%%+)&!+%$#;9\"#*]%%Z]*$+%\"$*Y\"&JU)$JI!"
+ "#JM!$ZI!#JI!$JE!!ZA!#Z%\"$*=#&*1!\"J-!$J9!#J-!#J9!#J%!%J%)#Z!\"#I]!"
+ "$*!#&9U#$IQ%$)Y#')M.#YM##I9\"&)5#\"Y=\"#9=$$9=\"$Y1!\"I1!!Y9$#I)%&Y!'"
+ "\"8M#!HM#\"X]\"#HU%!8Y%\"H]!#9!'$)!!#)-##9%!#I-%#Y=&#)A#!)A!!YA!&IA'"
+ "#YE\"'YM-#95$!Y]!#IY!%YY+$)U#%)](#IU$$:!'#J-!#:9#%J-&%*1#$J5!\"Z5!"
+ "%:9!$Z5\"%:=(\"ZA!#JM!%JI!':E!$*E\"$+%\"%:U##JE!$;%#'+!/'+5\"&ZY\"&;%#"
+ "$+!\"#[1!#[%!';5'%[=!$[=!%+A!%K5$$[=!%KI##[=!%;M\"%+M!%[Y$!+I!(+Y*"
+ "%+]!&\\!$$\\)#%,%!%,)!%,1!$<I*%<%!&L5''L%'%<=!#<5\"'<I$'L5'$LM\"&LM&"
+ "%\\M'%<Q!(\\Q&$,Q$(\\Q,%<]!%M!!'-!''=%)%M!!&=-$&=1$'-1'(\\]!$M%!\"--!"
+ "%]1\"&M1%&M9%!]-$%M9!$=9!&-A#(-I!&]1!'==#&]E!&-I\"%MA!$MI!%]I!(=I'"
+ "&]M!']Y$&=Q((-Q!%]]!%]M!%]Q!%]U!$MY!&-Y!'-U!&MY$(M9.$MY!&-Y!(=Y!"
+ "&=Y#)-Y/&]Y%%-U#&M]$%^%!#.!%%]Y!%]Q!%^!!&MU$$MQ!&]Q!(-M!&-U\"%]U!"
+ "%]Y!%]U!%]M!'MM$%]M!&-M\"(=E')-=%'MM((-Q+&]M!%]I!%]U!$=9!%-=$#==!"
+ "'-=,&]9!)]9$)]5)&]=&&M9$$M1&$=%!&]9!&=-$&--#%M)!%M%!%<]!$<]!%\\]\""
+ "%LY!%\\]\"#<M!&,Y#(\\M&(\\Y!&LI&#LI#%LI\"$LA\"&,E#%LI\"&,=$&,5$%,A$%,1!"
+ "%<=!+,).%L)\"&L%\"#;Y\"$,!!'[Y-#+Y!&;Y\"%KU'&;U&$+M!$KM#$+9\"%[E!#;E\""
+ "%+I!%[A!$[5!%[1!%;-'$+5\"$;1\"$K1$#Z]!&K!$%K!$%:Y#$[!%$:M'#ZQ!$ZM\""
+ "#ZU!#JE!%*E'%JE%#JA!!:5\"\"Z9!$*1\"!J-##J1!%*)'!Z%(&Z).!Y]!#*%\"%)Q$"
+ "%9U%#YM##)Q#!IM#\"IM$$YE$$YI&#9E!#)-##9=$#95!#)1#\"Y%\"#Y1&\"Y%\"#Y%&"
+ "\"8U#\"XU\"#(U!\"8Q!\"HI'\"HY!\"I-$$9!&$)9$#XY&!)-$!Y%$!I5#\"I=$#99$$)=$"
+ "#II$%IE$$9I%#9Q!#YI#$)I!#YQ%$9U!#J!!%:!(#J%!$*%#$*1##J5!$*1\"#ZU!"
+ "#Z=\"#ZA!#:='#ZA\"#:=##JI!#J9%$:M#$JQ!&*U#$JY!!ZY!$+)!%+!&!*]$$+-\""
+ "$+)\"%[-&$[1%$+5!$[1!%[9!%+=!$[A!%KE$$+M!#;I\"#;A\"$+Q!$;Q\"%;Y\"%+U!"
+ "%;]\"',)$%,%!%<-!%,)!%<)!',-)%<1!)<5*&L9&),5)#<9\"%L-\"'LU!'<A!%\\Q\""
+ "%\\=#&,I$!,=!&,Q#&\\M\"%<U!'<U)(\\Y!%<U!&LQ&%M%!']!'&-%#$MA!$=%!&-)#"
+ "%M1!&M%!$=5!%M1!%M5!$-A$&M5%$MA!#=9!&==$%MA!%]M!%]1\"%-=$%ME!%-A("
+ "%MA!'.!!&-M\"'-I''MI)&=M#'MM((-Q!)-]%)=Q!&]Q!%]U!%]U!%]U!%MU%(MU\""
+ "%]Y!%]]!%]Q!%]U!#=U!%]U!%]U!%]U!$MU%%]U!%]Y!%M=!%-9$%]M!%]U!$MQ!"
+ "\"-M!%]I!*MQ0%]M!%MA!#=E!'-U!)=Q!%ME!%M1!%MA!$]U''M=$&M9%&-E\"'=A("
+ "%M9!&-=\"&]A!$-!)&=1$$]1\"'-)#%<Y!%M)!&=)$%M-!)-!'%M!!&-%#&=!$(L]$"
+ "%<]!%\\Y\"%\\I#!,Q!(\\E'%<=!&LE&'\\E\"'LM!\"<E\"&,=$%L5#'<9!%<A&&<-!&<1!"
+ "%L1\"$[U%$+]!%\\!#$,!!%K]'%K]#%+Y!$;Q\"\"+I%#+Q!%;M'&[U((+E*&+A\"$[=!"
+ "#[I!$[9!$[A!'+5*$JY!#[)!$+)\"![)!&+)\"$[%!'K-!$*]\"$*Y\"\"Z]$$JQ$$JQ!"
+ "\"ZM!$J=!#Z=\"$*A##J=!#*5\"%*9#$J5%\"J-!%J1%#J)!%J%\"#J)!$YY'%)]!%9Y)"
+ "#YU\"$IQ%$YQ##9M!#YM\"\"I=!#I=\"#91!%I1!$99(\"Y1\"!)A!#)9#\"I!!#9%!$)!$"
+ "\"XI\"#HQ%#XE#\"HU$#(Y##8]$\"(Y\"%Y!\"#I)\"#I%##I%#\"I%!\"I1!#I5\"$)9'#)=#"
+ "&9M&%)M!$9E$\"IM!!YM!#IQ\"#9M!!YM!&)Y($)]#$*%#%J%&#J)!\":5#!YY!'*9)"
+ "$J9!\"Z9!#Z5!%*A''ZA+#ZQ!\"ZI!$*M\"$JM$#ZQ!#ZU!&Z]%#Z]!#ZU!%+%&)+),"
+ "\"[)!#[-$$K1$$;1#$[5!(;9,&;9#&+5\"%;A&%KA#&+9&';A'$+M!$,!!'[I($+M!"
+ "%+Q!&+]!'+]%%<%\"&+Q!)<1!%L)\"%<-!&L-''L5'&<=!%L=\"'<9*&,5$$<M!#,A!"
+ "%<I!%<M!&<5!%\\E#%<M!%<Q!%<Y!&,Y#%L]!*<M#&\\Y\"#M!\"%M!!%M%!'-1''=)("
+ "$])\"'M-$$=9!'ME$#=-&%]9&&]1!(]5.'=9#&M9%%-=$#==!&-A\"']A%'-A!%MA!"
+ "$ME!%]I!%]U!%]I!%]I&(=E'%]M!%]Q!%]M!%]M!$MQ!&>!\"']Q$%]I!(-Q!#=Q%"
+ "$MM!%]Q!$MQ!&MU%&]Q!'-]!#=E!%]M!&]Q!(-Q%$MY!&MI$(=M!%]I!#=]!&]E%"
+ "%]Q!\"-U!*>!4'=I(&]Q!$MA!%]M!)=A+%]5\"(-E!&=M$&-1#(=9-%-5(%]9!'==("
+ "'=5#%]5\"%]1!*-1*%]%\"(]5$$=)!%]-\"#M%\"%M!!%M-!&L]!&LQ&(,],'-)'&LY!"
+ "'M%$%LE\"&\\Q'&<M!(,I,&,E#)<E.&<9%&\\Y&%<9!'<1*%<9!$,5!%,-!$<1%$,1%"
+ "%L!#(<5%%,%!$;Y\"&K]'%,%!&,!!#+U%'[Q%$[A$&+M!&KU'';I\"&;M\"%+A!%;E\""
+ "%+=\"$[E!%[A(%+5!#[1!#[A!#[5!#[9!$+)!(+!'#Z]!%JY!#[!!#JI!&JU!$*M*"
+ "\"ZE!#ZE\"#Z=\"\"*A\"#J=!\"Z9!&:9!#Z5\"#J-!&:)%\"9]&$:!$%J)\"\"I]!!YY*#9Y$"
+ "$)Q$#YI#\"9M#$II&!YI!\"II'%)M$#)1##I=(\"95#\"91#$)=$#I!#!9)\"#XY#$(U$"
+ "\"8I!\"8M!#(I#\"8U!$8U&!HU!#(]##(]!\"I-!%99)\"I%!#Y-&%))%\"I1!#99!\"I=!"
+ "#YE\"%IA#\"IM$#IQ!!YM!#I]!#YQ##9U!#IY!$9U$#YU\"#J!!#J%!$J1\"%:%%#J1!"
+ "%Z9*%:1!\"Z9!#J=!#ZQ!$*E\"#JI!%*I'$:U$\"ZM!!:U\"#[!!&*Y\"$;%##[!!%;-'"
+ "!+%!%+)&';)#\"[!!%[5)(K1!%+1\")+A&%;E\"$[=!'[I!$[E!$KA##KE#!+Q!$[U$"
+ "%[I!%+Y!%+Y!%<%\"&<=!%,%!%,)!$,)%%,-!$<1&$L1\"%\\5#%L)\"&,1%)L=!$LA\""
+ "%\\E(&,E#%LI\"#,M!$,Q-%LQ!'<Q$&\\U'',Q#(<Y-$,A!&<]$&,]#&-%#&-!#$M%!"
+ "*]%/(]%*'--'$-)$&]1!%M)!)=%\"#M9\"'=1.%MA!'-9'#=U!'--#%M5!'==(%MA!"
+ "(-='%-A,&=I('MM$%]M!%ME!(-M!%ME!%]I!%]I!&MI$\"-A!'=M\"&]M!'-I&%]M!"
+ "'=M#$MM!\"-I!(=M,&MM$%]Q!%ME!&-U!#-E$&M]$%]Q!(]M.$M]!%]I!&]E!']I%"
+ "$ME+&]M!%]I!$M9!&]A!$MA&#=1!%M9!$M9!(-A!'-='&--(%M5!%M1!)-5!&=9$"
+ "&M-!'M5$'-1'&])'%M1!&--#&=)$'-%\"&M%!%<]!',Y(%]!\"%\\Y#%]!\"$<Y!%LU!"
+ "#,U!%<M!%\\M#%<A!&LA\")<A)&,E$$,A$(L5!&<9%$<E!%LA\"$L9\"&,-%%,-!\",)%"
+ "%,)!'L%'\",)!%[M%&+]!%;U\"%KU#'KM'%+Y!%[Y(%;M''+M!\"[I!$[A!&+Q!$[5!"
+ "$+=!&[9)%;9&%+1&#[5!\"[)!%K!(\"[1!#[%!$*]%$*U\"\";%\"#ZY!\"ZQ!$JA!%ZM\""
+ "%:5!%:=$$*M\"#:9#\"Z9!%:5(#Z5\"#Z1\"\":1&$J)\"#J!!%*!$#Z!\"$:)$&J1*#9U!"
+ "%IU&#9Q!#9M!$9E$%YE!$)E#$I9&$YA*#I9\"\"I-!\"I1$\"9-#\"I-!%9%)#9%!\"HU!"
+ "!(E&$8I)\"(I\"$XY*\"8Q!#(Y#\"(Y\"!H]##XQ##9!'\"I)!#I5%\"I1!!9%%\")1\"%Y5."
+ "\"I=!#9A!%)A'#95!#IA%\"IU!#9E!$II&$)Y##IY!$Y]&\"IQ!$J)!#J)!&*-''*-)"
+ "#J9!$J=!\"J)!#ZA\"#J=!#JA!#Z=!#JI!%JQ!$:M$#Z=!$ZU\"%ZU&%*]\"$Z])#ZY!"
+ "#;%##[)!%J](%+!&$;=\"$K1$%[5!\"[1!#;=&&;=\"&+E&$[A!&KA($+M!%+I)'+Y-"
+ "&;U&%L!#%+U!%L)#%+M!%,!!$\\!(%L!,'<!&$<)\"$,1!%<5!&\\%#',9$%LA\"'<=!"
+ "%<A!&<=!',M(&LM&%\\Y\"(L]$&\\M'%LQ!%<U!'LM.&\\Y\"(,Y\"%<I!&,U#$=)!&]!'"
+ "&]%''-)'%M-!%M)!&]!'&--,(-1!(=9\"%]1\"%M1!%M=!%M9!)=5\"$=5!&]=!%]=!"
+ "%=9$(]5.%]I!'M=$%]5'*=9!&]E!*M=\"'=E\"(-E!%M9!#=Q!)]I(*-I*)-I0%]M!"
+ "%MA!&-E\"(-M!$MI!\"-A!%]I!'MI)&-Q\"'-I'%]M!%]Q!%]E!(-I!$=E*(M9.&]5!"
+ "%MA!(-E!&=A$%MA!&]I!(-E!(M1)&-Q\"%M=!%]5\"#=)!%M5!(-E!&-5#$=1*'=1("
+ "&]9!%M-!'-1\"&=%$&=%$']%&&=)$%<Y!$<]!$LY\"&-!$%,U#$<]!&LU!'LY&&LY!"
+ "%\\M#%<Q!%LI\"(LI!%<5!',I)#\\A#$<I!%L9\"$\\1(%<5!%<5!&<A!&<1!%\\%$%\\1#"
+ "%<%!%+Y!$L!#&KU'%+]!#KY'%+Y%$;Q\"$;E\"$;M#&;A'&+A\"&+E%$[A!'+=&&[A!"
+ "%;9\"$;=\"\"[-!$+-\"%;-#$K-$![%!!+!$#Z]!#[)!%K%!#Z]!$:I##ZQ!$ZM%\"ZI!"
+ "#*Q\"$JA!%Z=&$JI%'*=%#J1%$J5!#Z-\"#:-#$Z5\"$:%$$J!&%9]\"%9Y%\"IU#!)Y!"
+ "%9I\"#YM\"#9M!#IE!$)E##9A!#I5%#I=%#)1#\"Y1\"#I1%!Y-!$I!$%8]##)%'\"8Y!"
+ "#(A#\"XM%!HM##HQ&#HI%#HQ%\"8]!!Y!!\"I=!!Y)!$9)\"\"I-!#9-$#I-%#99$!Y9!"
+ "\"I1!$9=%#9A!#9E!$9M!#IM!%YQ$&)](#9U!$9Y!&Z)$$Z!&#*%#\"J%!\":)\"$:)!"
+ "#*5\"&:5)$*5##Z9\"#J=!!ZA!$:E'#JE!%:E!#JI!#ZQ!$*U\"$K)$#ZY!$K!$&K!!"
+ "#[!!$*Y\"$[)!%+5!$K5$\"[-$$K=#%[A%%+9\"%;=\"&+A\"'+Y!%+M!$;A\"$+I!'+U*"
+ "%+U!%,!!&KY#%+]!$,!!%,!!#L1#%,%!%,-!%,)!&,-$%LE\"%L)##,1!#,9!%\\9#"
+ "$\\M#$<A!'L=+&\\E\"&,I#(\\E!#LI#'L=+&]%!%,Q$%<U!%<U!&<Y)%]!\"'\\]&%\\]\""
+ "&-5#%M!!&-%##,]%'=)-$=)!%M-!$]1\"%M1!%M9!&=9$'ME)'-A\"(]5%%-9$%M-!"
+ "\"M9'&M=$'=9(&]=&&-=\"'-A'\"-A!$=M$%MA!$MA!(]E.%M9!&-M'%MA!%]Q!%]M!"
+ "#=E!'=Y\"'-E!$MI!%]I!%ME!\"-E!(-9'%]I!$]E\"%ME!&-M(#=E!%M=!'==(&M9$"
+ "'M9$$ME!%M=!%]=!$M=!'-E!#=A!%-9#%M5!(=9#&-=\"&-=\"%M)&$M5!'-1'$M)'"
+ "%]-\"%])\"%M5!%]-!(-%\"#=!&'M)$&L]!(,U'&\\U&%<Y!&LU**M%$&LQ!&<Q$&,Q#"
+ "!,Q!$<Y!%LE!&LY&'<9*%<9!%<=!&<1!%<5!&<=!&<1!&<1!%L-\"&,!!%,)!#+]!"
+ "%<%!%,!!$;]\"$+U!&;M#'+U*#[I!%+Q!$[Y$%KA#%K9$&+A&%KA$$[E!%;9#$[5!"
+ "\"[9!&[5!$K-$$[-!$;%#&ZY.#:Q#$*]\"$JY!#[!!#ZE!%:A!%ZQ%$JM!$ZI!#J5!"
+ "%:A($*A\"#J1!#Z9\"(*5&#J=!#Z-\"$JA!#J)!$J%\"#IU$#J)!#I]!$YY)$IY&\"YA%"
+ "#YQ\"$YI*$9I(#)E##9A$$Y='\"II!\"I5!\"9-##)!$\"I-!$Y1!%)%)$)-$#9!\"\"H]!"
+ "&XU$\"8E!\"(E\"#(M##XY&#(U#\"8U!$8Q&%8]*#8Y!#XY!\"I%!\"I1!!9-\"\"I1!\"II!"
+ "\"99#!Y9!()9%'IA-#9E!%)9(&9M&$)Q$$YY&$IU%#9U!#)]\"&*%$#J%!$Z!'!Z)!"
+ "#J%!#Z9!#J=!#J9!%Z9'#J=!#J=!#ZA\"\"ZI!\"ZI!$*M\"(*I%\"ZU$%JU!$*U\"%+!\""
+ "#;%\"#[%!\"*Y)%;-\"$+)\"#[1!![1!%+=!$[A!'[9!%;A\"'+A.$KI'\"+5!$[I!$KI#"
+ "%;Q&\"\\!$%;I\"%<%\"&,%!&+]!#,!!'L!'),)-%\\9#%\\!$'<-%%<1!%,1!%<5!$,=$"
+ "&<9%$,9!&<A!&<=%%<I!%LE!&<I%%LI!'LI*&LQ!%<M!'<U)$LQ\"%L]!&\\Q&%<]!"
+ "%L]&%M!!&,U($=%*'-%#%<]!$]1\"&M)!$=%!&M9$'])&'-5'%-1$%M=!%M1!%]-\""
+ "%]5\"$M=!&]1&%=I$&]I%%M=!%ME!&-9#%M5!\"M=\"%]=&&=E#$MA!%]=!#==!&]E!"
+ "&]A&#=M!%MA!&MQ$%M=!%]M!%]Q!$MA!#]Q(%MA!&=A$%-=$'-A'#]9##M9!&]9!"
+ "&]=!#==!&-=#']9!&]5&(=9\"&M1%)--1(-9&&M1%(M=#$-5$&]!\"&--#&])''-1\""
+ "'-)'(-%\"'=)$%<U!%M)!$=)!$]%\"(,]'#LM&',Q#%\\Q\"%\\]\"%<Q!%<M!%\\Q#%<M!"
+ "%<A!&<E!%LI\"%<A!&\\E(%<1!%L9\"%,=%!,5!$<-\"&,5$)<-%&,)!%<1!'\\=,$L!#"
+ "%,)!%,)!%+Y!(+]%&+I%%[I!#+U!%;I&%[I$%;A\"%;E\"%;M\"&[9!\"[E!$[9!%[5!"
+ "&[9!$+5\"\"[1!&+-\"#[%!\"[%!$;!##JI!#*U\"%*Y\"$ZY%#ZY!&:I!#JE!&*E(%JE)"
+ "$JE$#Z=\"!ZI!#J1!!Z%!#J5!$:-!#J-!#J1!#J%$&9]&%*1+#9U!$)Y#$9U$\"IE!"
+ "%YI!$9M$&IE'#99$$)I#!)5!!I1&#)5##I1\"%)9%#)-##)-#%HY$#9!!\"I!!!8]%"
+ "!HE##(M!#HI%!XM!!HQ!!HQ&\"8M!#HE&\"I%!$)!%#9-!#I)%#95!%9))\"I1$#)5#"
+ "#9=$#Y=#\")9\"#IA!\"YE%#YE##9U!%IQ)#9M!!YU!%J)&$YY#%J!#\"IQ'#Z!\"!Z)$"
+ "$*-#\"*9!#:1#$:5$$*9##J=!&:A!#JM!#ZE\"!*Y!\"ZI!$*M\"#ZQ!#:U\"&JY%%;)#"
+ "$*U\"$[!!#[!!%K)(#[)!$+-\"$+-\"#[5!%+1\"$[E!#[5!$[)!%[A!'+E*#[I!%;M\""
+ "$+M!$;Q\"$[5!%+U!&;U\"%+U!%+]!%L!#%\\%($<%\"%\\)#)\\!)&<1!%,1!&,9$%L5&"
+ "'L9+$\\A#$L=&%\\E#%L-#%L=\"(\\A'%<I!',=('<A!%LM!(LY$%\\U#%M%!*<]#%])\""
+ "&LY!%M)!%<]%&=)$&-)#$=)!)=%'&LY&&=9)%])\")M-#%]-\")--+#=1!%]1\"%]-\""
+ "'--\"&]1!%]5\"'=5(%<]!(M9)%M-&&=9$'MA$%]=!(==\"&]9!$=5!$M=!&]=&%MI%"
+ "&]A%%]=+(M=#%M9!$M=!(]=$%M=!(M=.$]9\"&-=#%]M!']5!%M=!%MA!'-Q&&-=\""
+ "&=5$$=9!$=9!']5!%]=&&]5!$=1!%]5\"%M5!$=9!+=-&&M)!%--$%M!!)-)0%M1!"
+ "'M)*&-%-%M%!(-!'#L]\"#,]!&LY!)LQ%&<=%'\\Y!%\\M'&<U$&,Y#&,M$&LQ!&LI&"
+ ")<9%%<E!%<=!)<A.%<=!%LA\"&,)!&<5!&<)!&L9'$,5!'L%'%L)\"$+Y!)<%!';]!"
+ "%,)!#,!!%,!!&[A!(+U%$+I!$,)!$+M!%[I!&[E(&[1&%+1\"%+=%%K!$%[)!%J]!"
+ "$;-#$;-\"#[)!#+!!#[%!#[-!#*]\"$ZU%%;!'#[!!#ZU!!ZE!\"*M\"$:M#$*=\"%ZA#"
+ "$*=##Z=\"$:1!\":5#\"Z-%%J1\"$J)\"#J-$#J)!\"Z%\"\"Z!$$IY\"$9Y$!YY!%*!'$9Q%"
+ "#9I!&)M%$)9!\"I=!%YM(\"I=!!)5$#I9%#Y1#%(Y%%9)#\"Y-%#9%!$H]&!(]!!XQ!"
+ "\"HA\"&8E%$8M&%HM+#HM##H]\"\"HY!$8Y%\"I!!\"8]!#)!##XY##(]##9-$\"I-!\"I-!"
+ "\"I5!\"Y5\"#II!%Y=,$Y9$\"IQ!&II!#YM#$)U#$9U$%)U!%)Y$$)]#$*%#$*)##J%!"
+ "$*)##Z-\"#J5!#ZM!$Z=&#J1!\"Z5!#Z=\"%:A##JE!%*M#\"JU#$*U%#JM!$JY$$:Y#"
+ "#Z]!#ZY!%+=!$ZY%#[)$#[1!%J]!#[=!#[=!%[=$#;1\"%KA$#[1!$[A!&KI''KE("
+ "$[E!%[M)$+Q!$KQ#$[U%'L%\"%[U$%[U$#\\!$%<!!%\\-##\\-#%\\)#%,9$(L1\"%,-!"
+ "%L9\"%<-!#<9\"%<A!%<9!%LA&&<A%&,M#$LA\"%L1#%LI\"(LI!&LQ&%\\Q\"\"\\M#'\\U!"
+ "%\\Y#&LY!&LQ*%<]!%<]!$=!!&M!!%M-!%M)!'-%\"&]1&&M!%&=)$$]-\"%]-!&]5!"
+ ")=1'']5%&--#&]-!*]5)$=5!'M1*&=1$$M%!%M5!']5+&-9\"']9+&=A$(=5(&]5!"
+ "(M-)&=1$%]I!$]5\"\"M=#'-9'&-A\"%M=!#==!'-9\"#]9#$=-!)]A$%M9!*MA\"(=)-"
+ "%]5\"&]-&&]Q!%]1\"%M1!)]=$%M)!$]%\"%M-!&M-!'--\"%,Y$%M)!'=)-'--\"&-%$"
+ "%M!!%]!\"%\\Q\"'LY%&<Q)',Y#&,Y#%\\U#',U#',Q#(LQ*',M)\"<M\"%<I!%<I!&<E!"
+ "%<A!%<Y!%\\=#%\\=#&,9$&\\-((\\5,%,1!'L-&#<-\"!,)!&\\)#&<!&%\\!#&,-$%+Q%"
+ "%[Y$%+Y!%+M!$+U!$+M!!;M\"#+=!$+M!%;M#&;Q'\"[A!$[5!$;A\"#[5!%+1\"';9\""
+ "#[)!#[-!$[)!$[%!#ZU!';!0&:]'$+!&%J])\":E\"#ZU!$JM!#JM!#ZU!&*E$#ZI!"
+ "$ZE)%JA%#JA!$J%!#J5!#Z-\"$:!!$Z%#&)],%*%*$9U$\"YY!\"IY!$)I#$9Q%%YE'"
+ "\"IM!$9E$$I9&$9A!$)='\"I9!$95%#I1\"#)1##I1\"\"Y%\"%Y%\"$8U\"$H]#\"9%##8U$"
+ "\"H=\"#8=%#XE$!HE!\"HM!#X]#\"8Q!!HM!!8E\"#(U##9!%\"I!\"\"Y)(\")1\"$)1!\"Y%#"
+ "!)=!&9=$\"I9$%)=(#)Q##9E!$9I%$YM'%9Q%$:!!#9M!$9Y$$9]!$IU%%J%)#Z%\""
+ "#J-!%:-!#Y]\"!Z-!$J5!%:A!#J1!$:1!#J=!$Z5\"$*Y\"$ZQ\"$JM!(:U%#[!!#JM!"
+ "#J]$&;!(#[1!#[%!$;%#&;)$\"+)!#K-$$+1\"%;A\"%+E!%K1$%+=\"%K9$$+A!$+M!"
+ "%;M\"%+M!%+M!$+Q!$[I!&;Y\"%+Q!%[](#+]!'\\)($,)!%,%!%\\%#%<)&*L%'&<5!"
+ "%\\5#%L5#',1$&<)%&,9$%LA\"',A(%<M!%<E!&<E!'<A!'\\I\"%<Q!'L=+\",I!%=!*"
+ "'\\M'*,Q,%\\U\"'<Q$',]'&=!$%M1!%<]!&]!'$=%!&-!#%]%\"&]1!&=)$']1%'=-$"
+ "(]-%&-)'&=1$%]1!%]1\"']9!\"-1!&M-!%M5!%M5!%MA!)M5(&=5.*==0&]9&%M1!"
+ "%M)!&M5$*]5.%MI%$=1!%M1!&]9!%M5!(=1'(]5*%]5\"'-5'\"M9\"&M5%'M-%%M9!"
+ "#=1!%M5!$]5\"%M1!&-1#&=-$%M-!&-)#&,]#'-%#(]9*$M!''\\Q+&,Q,%\\U#&\\]\""
+ ")<]-&M)%%\\Y\"$LY\"%<Y!)LU3%<Q%%\\Q\"%<Q!%<E!$<M!)<A$(,E-'LE&(<9%&<A%"
+ "%\\9#%<=!%L=\"%<9!'<1%&<1!%<=!&,1$'<1!%L)\"%<%\"&,%%&,!!&,%!%K]#&<-!"
+ "%;Y\"$KQ#%;]\"!;E\"(;Q\"#+I%&;E&%+5\"&+9&\"[E!$[=!$[9!$[A!#[5!#[1!%+)&"
+ "%K%!$K5#%+)\"%*]\"$+!\"%JY$&:U$$;%\"#ZY!$JQ%#JE!$JA!$JQ!%JE(#JA!#J=!"
+ "%Z5*!Z9!#J%!#J9!#J)%$J1%'Z)-$:1$$9]$#9Q#%I]&$:!!#YU\"$)I##II!$9]!"
+ "!IA##9I!#9I'%)=(%Y=(#Y9##)=#\"8]!\"Y%%$Y5*#I9%%9!#%I!(#)!#$(Y(#8Q!"
+ "#(-$#(E!\"X9(\"XE#\"HE!#HM%%XU&$(U!#XY)#X]&\"X]%#I%#$I)'$)%!#))#\"I5!"
+ "#I%#$)5'\"IA!!I=##9E!#IU!%IA#!YA!\"9M#&YY,$IY\"$J%%$9Y!&*-'$Z1&$9]$"
+ "$J%%#Z)\"$J)%#J5!%*9&$:1!$*9\"&J9*$J5!%:=!%:E(#ZI!$JQ$$JI!$:M#$ZU)"
+ "\"ZY!$:Y#\"*]%&+!*$[!!$*]\"%*Y\"$+)!%+%&#[1!#[5!%;9#%[1!'[=)#[9!'+A\""
+ "%+A!&[=!$[U$#KM'#+Q!$+U!$+M!%[Y$$,!!%,%!&,!!%,%!#,%!#<1\"$+]!&[]$"
+ "&<-!&;]\"%,1!(<9!%L9\"&L9!(,A##,1!%<A!'\\=#%<I!',I#(\\I!),M'%LY!\"LM#"
+ "$\\Q#)\\Q4%\\Y\"#LU\"\",Q!&<Y$(<]##LU\"%<]!%M-!&M!!%M)!$M%&#-%%%M%!$=-!"
+ "\"M)\"&=)$%M)!%]!\"%M5!$-5$%M5!#=1!'-1\"#=1!%M-!#=1!(-9+%M1%$=1!%M1!"
+ "#=1!(-1,(,Y(&-1#%-5$%M5!%M9!%=)%%]5\"%M9!%M1!)-9!%M9!%M9!*-1!'M1*"
+ "'M5$&=-$&M9$&=%$(M!.%M-!(-9+'-!(%L]!$=%!&=)$%M!!']!'&L]%%<U!$<]!"
+ "&]1!%\\U\"%M!!%LU&$LU\"%,Q)%,Q)\",Y!'LM!%<M!)<M)%\\I#&,M$#\\=#%LI!%<=!"
+ "(\\-#%<9!&<9!$<I!\"L5+%LE\"$<-!%<9!$,1!%L)\"%L!#%\\-#%+]%%KU#%,%!$,!!"
+ "'+U-%+U!&+M&&;M\"%+U%$[I!%[E$%K=#&;E\"$[=!&[9%#[9!&;5'$+1\"$+5!#[A!"
+ "#[5!#[%!%;-\"$+)!#Z]!&:Q($JY$%ZU\"$:Q$$*Q\"#JM!%ZM*$:Q##J1!#J=!\"ZA!"
+ "#Z9\"#J5!$IY\"%:1!$*)##I]!!:%\"%Z)##J!!$:)$$)Y#!IU&!9Q\"#IQ\"$IE&#99!"
+ "%9E\"\"IY!#9A!#I=%\"IA!#Y1)#)1&\"Y9\"$)%!\"I!!$9%%&Y%#\"XY\"!8U%\"HY$#XM&"
+ "\"8E!\"(E\"#8=%!XE!\"HI!%(M,!8U\"#H]\"!XM!$HY#$8M&#I!#%)%(#Y%$$I%&\"I9'"
+ "$95%$)5$\"I9!!))$#)A##9=!#9=!#Y9#\")I%$9M!#)Q#%)U'#9U!#I]!%9],\"J!!"
+ "$:%$\"Z%\"%:-($*5\"#Z5\"%:5!#J9!%JQ!#Z=\"#JA!$ZE%&*E#%ZI&%JM!$:M'$ZY\""
+ "#:Y#%+!\"&*U\"#*]!#[!!#ZY!&[1&$[)!$[%!!+1!%+=&$[9!$;5\"%;1\"![1!%[5!"
+ "%+Q!$[9!'[M%$;U\"$+E!&+Q!!+M%%;I\"#KM')+Y))+])%,)!%,!!%\\!$%,-!%L)\""
+ "%,)!%L5\"&\\1(#<1\"%<5!#,=!%L9\"$,9!%<E!&<A&&<A!%L5\"%<E!%<I!%<U!$<Y!"
+ "%LA\"%LQ!&,I#(LM/%<A!$LU\"&\\Y&*<]($LY!%L]!%<Y!&<]$%LI\"&LU!']%+'=%$"
+ "%]-\"%L]*'M%%$--$%-)($=!!&-%$&--#$=%!']-!%M-&'=-$$=-!(M-$%]-\"&--#"
+ "'--\"%M%!%M%!'-!#%M-!%M-!'-1'']-*(=--&M%!%M%!%]-\"&M%&%M-!%M!!&M)%"
+ "'M)%%M)!(-!\"%M-!%M!!$=!!%M)!'M-*&-%#&-!#%]%\"%<]!'=%)$<M!#L]\"%<Y!"
+ "%<U!'LY*&LU!%\\U\"%<U!$<U!%\\U\"']%!&LE&%<9!&LE&&<M%%\\9#*L9*$\\5#(LI%"
+ "&<9!%<9!'<1!%L-#%L-\"%<-!%,-!'L)#$,)!%L%#%\\!#$,-!&L%'$+U!'[M-%+M!"
+ "'+Q*$KQ#%+Q!$[I!'+U)%;=\"&;I\"&+A&#[=$&;E&%;9&%;1\"!;)\"$+)\"%+%&$Z]-"
+ "%+)\"%K%!$*Q*#Z]!$[1!#*]\"%ZI*$JQ!':Q!#JM!$:M##ZI\"$:U#$:E$#ZI\"#J=!"
+ "&*1$$J5%\"*1\"#ZA\"$J%(!Z)!$*)##J%!%9])$9Y!#Y]\"!IU##)Q#\"YE\"%9](\"YQ!"
+ "$9E%#9E$!Y5!!)=!#)9#\"Y5\"$Y-*#XU!\"I1!#H]\"#9)!#(U!\"8U#$(Y'\"8Q!#XQ#"
+ "\"H9!$X=(#(M#\"8I!\"HE$#(=&#XE##8Q'\"8I!\"8Y!#8]$$I-'&I!)\"I%%\"Y)\"\"Y-%"
+ "$)!'#91$#Y5&#Y5&#Y)##Y=\"$I5&\")5\"%I=#\"IU!#II%#YA\"$YU##J)!%J-\"%J!#"
+ "#J!!$:%$#J!!#J%!#J-!$J-%#J5(%*5#$*=#'JA\"#JA!$JA%&:E!#JI$#*M\"#ZQ!"
+ "$ZU\"#ZQ!!ZU!'J]!#+!\"\"+!\"%+!.%K)$%[9$#[-!%[1!$K1$&+A&$[%!$[=!'+A\""
+ "&[A)%;E&&KE$$[I!$+I!#KQ##;U\"$;U\"%+E%%+M!';Y*%+U!%\\)(#+]!%L-\"&<%&"
+ "'\\!-'<-!&<-%&\\1#'L-\"%<5!$L9\"%<5!&<5!%\\=#%L9\"%<1!$\\A#%LA\"%<=!#LA\""
+ "&\\I\"'LM+%<M!%<M!%\\Q\"&\\5(&<M!&<U%%M%!%<Y!$LY\"&L]&%L]!'L]*(=)-&]!!"
+ "%]!\"'=%)%M!!%M1!%]%\"%M%!&-%$%]-!(--\"%M-!&]1&&]1!$M)!%M)!'M%$&=1$"
+ "%M1!%M-!\"--!%])\"#--$%]-\"%M-!&M!*#M)\"&-)#(])*&-!$%M)!(,],\"--!'-%\""
+ "&M)!&--#*-)+&-%$&]!!%M1!%M)!%\\]\"%M)!&\\Y&'-1\"%\\]\"&LY&'<M)%<Y!$<Q!"
+ "&<U%%<E!%LI!&,U#'<Q)$<Q!%\\I#'<M%#<E!&\\I\"$,=!%<I!%<=!%<A!$LA\"#,9!"
+ "(L-&$\\5#(L-'%L1\"%,)!&,5%$,!!',!%%L1#&L%'&;]\"&;]\"%,)!%+Y!&[Y)$[I$"
+ "%+Q!%;M&';M\"&;M\"%;E\"(;I&$[E!&+9\"$[=!$[1!$+5\"%+9&\"[9!$;%##K1#!+5!"
+ "%+!\"$:Q#$*]\"#[!!%JY!%;)'$JU$#:E#$*Q\"$ZE&#JI!%:A$&*A#\"Z=!!ZE($*9\""
+ "#Z5\"#J5!$*1#':A!%J5)#Z%\"$*!##Z!\"$)]&%IY*%IE$&)]($)E##9M!#YI#%9M)"
+ "#IA\"#9M!!)=!()I'#Y5#\")1\"\"I)$$)A'\"I)!#I%#$)!%!))!\"9%##8U$\"HQ$\"XM\""
+ "!(=!\"81!#H=\"\"8E!#(E!\"XM\"\"(9*\"8Q!$H]#$H])#XQ$#Y!&#I%##Y)#$8]\"#9)!"
+ "\"I-!\"I1!\"Y)\"#95$#Y9#\"IA!#9E!%YM$\"9A#$)=!#YI#%)Y!#IY!!YY!$9]$\"I]#"
+ "$YQ##Z)\"%:1!\"Z)!#J-!%:1!!Z9!\"Z5!#J-!#JI!#ZA\"%ZM\"#JI$#JI!#*I\"#ZU!"
+ "$*Y\"&ZU*%*U'%ZU)!+!!#[-!%[!&$+%&$;%\"#[5!#[-!#[1!$[5%&[5!%K=#'[A!"
+ "&K=(%+A!%+9\"'KE('[I!%+E&#KM##[E!#[I!%;Y\"%+Y!$[Y$&KY'#\\!$%<!\"&L!#"
+ "&L%'%<9!%\\!$$,-!%L!'#,1!&<5%$L=\"%L1\"$<9!%L='',=#%<E!&,E##,E!&<E!"
+ "%<=!#LI\"%<E!+LM*%<M!(LM!$<E!%\\Q\"%\\U\"%<U!&LU!',Y(&\\Q\"&]5!)-1!(\\Y!"
+ "&,]#%]!\"&\\]\"&]!'\"M!#&M!&$<Y!%M)!'-)\"%M-!\"M%\"%\\Y\"%M%!%M1!$=5!'-)\""
+ "%]9&%M)!%=!$%M5!%M%!%]-\"%M-!(])%']!!%M%!(=%(&]-&%<]!#M%\"%]%\"\"])$"
+ "&]-&$=!!$\\]#%]1!%M)!%M!!&-%$%M)!%\\Y\"&M!!'-!-&LY&%LQ!&LU!%\\U\"'LQ%"
+ "$\\I#)\\Q&'LM*#,A!&\\Q'#\\Y#%<E!&L=\"%,Q$&<5%',A-%<=!\"<A\"&<=%)<1!(,9-"
+ "(LA!%,1!%,1!%,-!$<)\"%,%!'<%!$KY'';Y+&,!!'+Y!&<!\"%+Y!%\\5#$+Q!&KQ+"
+ "$+Q!#[E!%;I\"';M+%[A!#;I\"\"[9!#[=!&+A\"%;5#$+)\")[1*$+-\"#[-!$+1\"$Z]%"
+ "&+!*\"K!$#[!!#ZU!#Z]!$ZE\"':U)\"ZI!#JI!#J5!%*A#$:Q##JE!%:A#%:1)!J9'"
+ "$J)!$J9!#J-!\"J1!#:%##)]#%*!!#)]#$YY#$9Q(#Z%\"#IU!#9Q!%YQ+\"YU\"#)Q#"
+ "#9A$\"Y9\"!)A!\"I5'#I5%#91$\"Y)\"!Y1!%)!($9)%\"Y!\"#8M$$HU)#HQ\"\"8Q!\"8I#"
+ "\"85!\"8A!#(=#\"8=!!(E!\"89!!HI!\"XM%#8Q!\"8Y!!(Y$!I))\"8M!#I!%$I%*$))!"
+ "\"I9!#Y!$$)1'\"I5!$Y9!!Y9!%)=(\")Q\"$IQ%$YM#\"IM$$YI$#YM#$9]!$)Y#$I]&"
+ "%YM!'*1-$)Y#'*)%$J%&\"Z9!#Z-\"\"J)!#Z%\"$*9)#J5!':!'#J=$$Z=)#J-!#JM!"
+ "&*M+!Z=!#ZQ!&*Y#\"ZY!#Z]!&JY)$;!\"%+%&\"[%!#[!!#K-$%+1&%+5!$[5!'[E!"
+ "$[9!#[=!!+9!%;Q\"%[A!&;M'';A,#+I!#[9!'+Q*%[U%%;M\"%+Y!);Y+#K]#&<!\""
+ "',%%'<!+%+M!&L%\"',%*%L-\"%,1!%<1%'<1!(<5!$,9!%<)!&<9!%,1!%<A!$,9!"
+ "#,I!$<E!',A(\"\\I#),M\"%LM\"&<Q$'-!'%<=!&<Q$%<U!%<Y!$\\Q#',](%<I!%L]!"
+ "#,Q!$<]!']%!'L]*'\\]&%M!!%<M!']A%%<U!%M!!'-!#&=!$&LU!%]%\"%M!!%M)!"
+ "%=)%']!!%M%!(=!-&M%!&M%%&L]!$<U!$]%##-%$(-%\"+=5+#]%$&M)!%,U$']5+"
+ "%L]!(\\]!&L]%$<]!%M!!%\\]\"*,U'&,Q-%L]!&LU&)LQ*#,Y!%<M!&LQ!&<A&*<U)"
+ "'\\M+$L9\"&,I$'L]!%<A!&LI!(,Q((\\A\"%<A!%<%\"&,9$',=#%<M!'<1%%<5!&,-$"
+ "&,1%&,-)%,=$%<5!%<)!%;]!#,%!%,!!$+]!%<!\"%+Y!&[Y$%[U$&+Q!\"[E!$;=\""
+ "'+A\"%KQ#$+U!%;E\"%[A$&K=($[E!&[9!&[A!![A!#[1!$[)!%+%\"#[!$#[-!$K!$"
+ "\"J]#%JY!#ZU!$Z]%#*]!#ZI!#JE!%ZU%#JQ$#ZA!#ZA!#JA!\":=\"!Z9!$:1!#Z9\""
+ "$*1\"\"Z=!#Z%\"&J%##J%!#J!!%I]##J!!#YU\"$)U#$YU&#9Q!%IM&#YA#$9I%\"I=!"
+ "#9=!\"YA\"#Y9#$)!$%Y1(\"I5!\"Y%%#)1#$Y!'!Y!!%8]-$HU)\"8U!#(]#!(M#%(Q,"
+ "!H5!#(9$#X='\"X)&\"8=$\"HE$#8Q!\"8M&\"8A!\"8U!\"8U!#(Y##8]$#I!&#XY##I%#"
+ "\"I)!#(Q!#91!$))$#9)'\"Y5%!)=!$I9\"#99!#9E!#IM\"'9I+&*%$$IU%%)U$#)]#"
+ "$J!\"$:!$$:!$$Y]&#J-!$JA!!:1\"$:)$#*5\"\"Z9!%JI!#*U\"#JA!#J1!$:M$$*=&"
+ "#ZM!$*U\"#ZQ!#Z]!#ZY!&J]!$[!!$+!\"$+!&([1\"#[5!$[-!$K5#$K5$#[9!%;E\""
+ "%+9!$+9\"&[=$%KA#%KA#';=\"#[I!%KM('+M!$KQ'#;U\"%;U\"%+U!&;Y\"%,!!#[]$"
+ "%<!\"%,!!$<-\"'L)\"$<-\"$,1!!<)\"$,-!&L1'&,5$%<5!'<1*\",5!%,1!%<=!#,=!"
+ "$,9!&<M%(,],&<=&#,E!$<I!%\\Q\"',M#%<I!$LU+%,Q$&\\E(%<]!(LM/(LY$'\\U&"
+ "$<U!(,]1\"LY'#,Y!$<Y!%,]$%<])%M%!',]')<Y('=-($<]!$])\"%M!!\"M=\"!-!!"
+ "&=)$&LY&$=!!%]%\"$]!#(<Q-%]!'%]!\"%]-!\"M!'&-%$&\\Y&%<]!&M!%&<]$'\\]&"
+ "\"=!!%<Y!%<Y!'L]!%=!%%LY!%<Q!%<Y!%<U!#\\M#%LM\"%\\Q#(LU)&LM!(LM!'<Y)"
+ "&\\=#',M#&\\E'%LA\"$,=%$L=\"&<9%$L9\"%<=!%LM\"&<9!%<9!&L9&'<=!&\\1#%\\=#"
+ "&,-$$L-#%\\)#(,!!'<-*\"+Y!&+]%'L%+';]+&;Y&%[M%'KU##[Q%$+M!$K9#'[M$"
+ "%[M%&[E$%[E!$;=\"%K=$$[1!%+-\"$[)!$K5$#[)!$;=&#[1!%+)&#[%!#ZY!\"ZY%"
+ "#[%!#ZY!&:Y(#ZQ!$JQ!#ZQ!$*M\"%:E$#ZE\"$*E\"#*E\"#J=!#J9!#Z=%#Z5!$J1\""
+ "$*)##*%\"!Z)!&:-,$Z!&!Z!!#I]!$)U##I]!%9M)#9Q!$9U$$)U#$)Q#$YE*$I=&"
+ "$)I'#)1#!YA'#99$#I1%\"Y%##))#!I%(#(Y!#9!!#8]$#I!%#HE#\"XE\"\"(Y%\"XM\""
+ "\"(!\"\"8-!!(E##X='#H1!$XA($8I#$XQ$$(M\"#(E!\"XM-#I)%!HY!#8Q$\"Y!#$9!%"
+ "!))!#Y)'\"I%!$I1)\"I5!\"I=!\"I)!\"I1!#9M!%IE##YM\"\"IA!#9M!&II+#YM#%YU#"
+ "#I]!$9Y$!Y]!$)]#!Z%!#Z)\"!Z1!!:%\"#Z-\"#*5\"&*5#$*=#$JA$\"ZA!#:M\"$*Q\""
+ "\"ZU!\"ZI!#ZQ!$JI!%*I*$*Y\"!*M!$;!\"#[%!$+-!%;%'$K%$![5!#[-!#[1!$;5\""
+ "%;1#&K5($[=!';9(%;A\"%K=##;E.%[E$\"[I!$+M!#[M,&+Q%%+U!%+U!%<%!%\\!#"
+ "&\\%($,!!$,!!&<)&%L1\"&,%!$,5!%,-!%<1!'L1&&,1%%<5!',I(#\\5$#,5!%<A!"
+ "%<U!%<=!%<=!(LA!%LE\"#,I!$<I!%<Q!)<M$&<I%%LQ&%<Q!\"<=!%\\Q#',Q#%\\Y#"
+ "%\\Q\"'LU/\",U!%LU!%LU!%]!'&M!!'<]$#<Y!#,]!$L]\"(=%#%\\]\"%LE\"$]!#&<U%"
+ "%<]!&<]$(\\]/&,Y#$<U!#,]!%LU!#=!!%\\Y#(<]-&-1(%LU&%LE\"#,Y!%]!'%<U!"
+ "%<Y%&-!$&\\U\"$LM\"&LU!%<U!\"<U\"%\\Q#&<Q%&<Q%%<M!),Q'#,U!'\\I&$<I!(,I,"
+ "&\\E\"%LE\"&\\E,%\\A#'<E))\\A&'L9\"%<E!#<9\"%<A!%L9\"%L9\"%,A$%L1\"&<1%%;]!"
+ "%,)!#<%\"(<%!%,!!'L!,%L!#$KU#$+Y!%KU##[U$%KU#$;M#\"+Q!#[I!&+I%&;I&"
+ "%;E\"%+M!#KA#';9##[=!%;9#%;9\"%;9#\"[1!&+1&#[1!$+)\"%J])#[1!$[!%$*]\""
+ "%[)!$Z]%#ZQ!%*U\"\"ZE!!*M!#ZI\"!ZM!'ZA/$*A#$:5$#*I\"#J=!#J5!\"J1!#J-!"
+ "&J1*#J)!#Z1\"#Y]\"\"Z)\"%I]#!YY!$9Y$$I]%#IU\"#IY!$IU\"#IE\"#YA##YE##)5#"
+ "!I5&#)9#\"I5!#)1#\"I5$#9-!#9)!\"Y%\"#9!!#(]#\"I!!$XQ(#HU%\"HQ!\"XQ\"\"HI$"
+ "\"GY\"\"8)!\"HE!\"8=&#8=$#H=#\"XI\"!HI!#(M#\"8M!#8M$\"8U!#XU&\"I!!!9!\"#X]#"
+ "$I%)!Y)!\"I-!\"Y1\"\"Y-\"\"I5!$)=$#)A#\"Y9\"%9=%#YI&#9I!$)M##9I!%I]&#9M!"
+ "%9Y)$IQ%$Y]&#9Q!#Z!\"#J)!$:-!#J1!%*1#$:-#$I]\"$:)!$*5##J1%#JE!#*E\""
+ "#JE!#JI$$ZA\"&ZU\"#*I\"$*U\"$*Y\"$*]\"%*]&'[!&'+)+$[1$(K!2$K-($[1%%+1&"
+ "$+5\"&+5\"$[5!%K=$%KE#%[M$%[A$#[E!*KI($[I!#+Q!$+Q!%+Q%%KU#%KU#$+Y!"
+ "&[Y(#+]!'<)&(<!+$;]\"%\\%$'L5*$L)#%<1!&,-%&,-%&<1!$<5%&L%\"&<9%',9)"
+ "%<9!#\\=#$L9*$\\=#$LA\"*,A('<E%&\\E(%<M!$LI\"&]!\"%<A!%\\M#%\\U\"%<M!&LM&"
+ "&LQ!&LM!%<U!%<]!$<]!$<Y!&\\U\"&<E!%\\Q\"%\\U\"%<U!#\\]#%<]!&\\Y\"&LU&(\\]+"
+ "'\\Y!%\\U\"%<U!%,U#\",]!'\\U&%<Y!&<Q%$M!!(LY.%M!!%<Y!'\\Q''\\U\"%<U!&LU!"
+ "(<]-*\\U/)LM*%\\Q\"(,U(&LQ&#<Q!+,Q'%\\Q\"#,U!&,E#%LA\"%<E!&<I!(\\A\"%LE\""
+ "$<E!$,A!#,A!'LE/(\\=0&,1%(<=*&L1\"&<1!&\\5#%\\1#%,1!%<9!&<-!(<-!%K]#"
+ "%,)!'L%+&<-%%[Y$%;M\"&+]%'+]!&;Y\"#;M'&+U!$;A\"$;E\"&+A\"&;M\"&;I\"&+M!"
+ "$[A!%[A!%;)#%+)\"&[=!&[5!'K-!#[-!$*]\"#[-!$[-)#[1!!;%\"#[%!$J]!\"ZU!"
+ "$*Y\"\"*Q\"&*Q'$*U\"%*A'#*=\"&*A+%:Q$\":A#%J1\"\"Z=$#J5!#Z-\"\"J1!$:9##Z-\""
+ "#J%!\"*1\"\"J-!#J!!%Z!'$)Y#$)Y##IQ!$)M#&IM$#YI#%Y=$#9E!$YA'#Y9##Y5&"
+ "%)E(#I9\"%9-*\"I1!\"9-&#I1%#Y9#\")!\"\"I!\"#(Y#%8Y!\"HA\"\"HE!\"(Y%#(Q&$8I)"
+ "#X5!$X)#$89#\"H=\"!HE!\"XM\"\"8I#\"(I\"#(M##XM##(Q!$HU#\"8Y!!HY!\"I!!$8Y&"
+ "#)%#$(Y!#8]$\"9-&$I1##)1#\"I5!\"I9!#95$!YI!#9E!\"IE$$IE)%)Q!%)U(#9Y$"
+ "#IU\"#Z)\"#I]!$:%$#J!!#J1!$YY#$:5$#J)!':A%#J5!&:1)!Z9!#JA!#J9!#ZA%"
+ "$JA%!ZE!\"ZU!#JI!#JI!%ZI\"$:U$$JY!$:Y#$J]$&[!\"$+-!#ZY!\"[!!&K1$$;-#"
+ "#[-!%+-\");5(%[5!(+M%%KA$&+I!)+5\"'+A\"%;I\"&KM'$KA#$+M!$;]&$+Q!%;Q\""
+ "$+U!$+Y!'+U!&+]%&,!!&[U$$,)!$L1\"&,5%',))%,1!%\\-(&L9\"%<1!%,1!%L1'"
+ "%<5!&,9$'<9!$L9##<1\"%\\9#$<E!&<E!%<E&%LE!$,9!%<U!%\\I#(LM&'LU!(<I$"
+ "%<M!'LE!%LM\"%\\U\"&<M%%LI\"&,M$%<Q)%<E!%\\Q#%\\]\"%\\Q\"&\\Y!&\\M\"&\\]&&<U$"
+ "%LQ!$\\Q#&<Y$%<M!%\\Q\"%<Q!&<]$&\\U&#,Y!%<U!)-!\"&]!\"%LU!$<Q!'\\I\"'<Q)"
+ "%\\Q\"'<]#%,Q#),=-#LE\"&<M%%<I!(,I)&LI!\"\\M$%\\Q\"%<E!%<Q!&,M#&LA\"&\\A#"
+ "!LA#(\\A'%,1!&<=!$,1!(<5%'<5%'\\E\"%,1!(L1\"&<5!&\\)#%,-!%,))%,)!%,!!"
+ "%+Y!'L%\"%<!\"&<%%$+]!&+Q!$+U!&+Y%$KQ'$;Y\"$KQ#$KQ#%;M&$[I!#[E!%+M!"
+ "$+9\"'K-%$+=%$+9!$+9!#+9!$+1\"%;5'%+)&%;)'#[%!!;-&%;!'#Z]!$[!!%*]\""
+ "#ZU!$*Y%#JI!%JM!%:U'%JU!#JA!!:A\"#*A\"$Z=\"\"J1!$:E$#*E%$J1\"#Z-\"$Z)\""
+ "$Z)&$)Y#%J)&%)]($:!$!YY!#9U'#IU\"!YY!$IM\"%YA+$)M$$IM\"#9A!#)1##Y9#"
+ "!Y9!\"I1!#I9\"#Y-#\"Y9\"#I%#$(]$#HQ\"#9)!#8]!#XE'#(U##(Y#\"8Y#\"8Q!$(I'"
+ "\"81##H1&!H%#$X5##89\"\"X=\"\"HE!\"8E!\"XE\"#(M)\"XQ\"!HU!#(Q#&I)/\"8]!\"I)$"
+ "#9!!#I%\"\"Y%\"#)-#$)-$\"I5!#)9#\"Y9\"\"I9!!)9!#YE##9I!\"YI\"#9I$$9M$'9E$"
+ "#)U)!YQ!#IU!%*-#%*!!$*!#$:%$#Z)\"%J)\"\"Z%%%*!!\"Z5!%Z9*$Z9\"&:5!#ZQ!"
+ "'*M'#ZA!$JI$$*U\"\"ZM($:Y##ZU!#[!!$*Y\"$*U\"$JU!#[!!$;!\"%*]\"%JY!$[)!"
+ "#[)!$[!&![=!$[5!&[9!$[5!*+=+)[I*&KI(&KA$%[A!$[E!#[E!&+I*#[E!$KQ#"
+ "'+Q!%+U!%;Y\"%KY#$[I!%K]#%,!%&<%%%L-\"%,!!%<%\"%\\%$%,)!&<-!%,1!$,1!"
+ "(,)-$,-!%LA\"%,1!'<-%%\\=#(LA&(L9&#,=!$,A!&LA&(,M#&\\E(%<E!&,A$%<I!"
+ "'<I)'<I$'\\M!&<I!&<Y$*,M#&<M%$\\M#%<I!&<I%&,U#&<E%%<M!(,Q#%\\Q\"%\\Q\""
+ "%LE!&L]%%<U!%\\Y\"$<I!%M)!'\\U\"$<Y!%<U!%\\]\"$<Y!%]!\"$L]\"(,M#$\\M#%,I$"
+ "&<M!\",=!#LI#%\\I(%<I!%\\Q\"%<I!%\\E(%<E!%\\E#%<9!&<9!%L=\"&<=!%,=$%LA\""
+ "',M)%\\9##<=\"%<9!&<=&%<9!%<5!%<5!%L%#(L-\"'L=&%L5\"&,)%',%*'<%%(KU#"
+ "%<%\"%+Y!),-$'+]!%;]\"%+M!&+Q!#;]\"%;I&%<!\"$;I\"&;A&%;E\"&+9\")KA$&;A'"
+ "&[9)'+9*\"[9$&;9\"%;E\"$;)\"%K-$$K-$$[)!\"[)!$+1\"#ZY!#ZQ!$:Y#![!!%*U&"
+ "$:]##JE!#JI!&JQ!#JI!$JE!$:A#$:9##JA!&:9!#J1!$:5$#J=$#J-!&:5!%*!$"
+ "#J1!#Z!\"\"J!$#I]!#9U!#9]#%)U!$)M$#YI##II$#I]!$)E!$)9$!YA!\"I9!#)9#"
+ "$Y1$#I%\"#)-#\"I!!\"Y)\"&)%'!Y!!\"8]!!Y)!!Y!!#(U!#(Q#$(U%\"HY!\"8I!#X5&"
+ "#8-\"#81%\"X=#$(5&\"X)\"$8=&!(A!$85)!XY$!HI!$(M(#(Q#\"8Q##HU%\"XY\"$(Q%"
+ "\"X]%#(U!\"H]!\"9)&#9)!\"XY\"#9-$\"Y%\"!Y9!$)-'#YM\"#IA!&II($9M!#YE\"$IE,"
+ "#YQ#$)M$#9U!&)]!%IM*$9Q%$J%%$9U$\"J1$$Z)&$*9\"\"J-$#J-!#Z9\"$*=\"\"Z9!"
+ "$ZI)$JA%$J=%$:E$$*M\"#JE!#ZQ!#ZQ!$J]$#*Q\"$*Y\"#ZQ!#;!##+-\"$;!\"#+)\""
+ "![-!%+)&#;9\"$[1!%KA$%K1($[9!%[=!$[=!&[A!%[9!![E!%+A!&KI$$+Y!&[M-"
+ "$;Q&%+U!%[M%%+Y!#+]%&+Q!$;U\"$L!#&+]%'L%\"%\\%(%<!!%,)!$L)#%<=!%\\E'"
+ "%<5!'\\E'%<1!#,I!%,)!%\\=#%<9!\"\\=$$<-%%<=!(,%*%<A!%LA\"%\\=#&<E!&<E!"
+ "%L9\"%LM\"%LI\"&=!$%\\Q\"$LI&&LI&'<A)$LM\"%,Q$%<M!%LE\"%<Y!&<M!%<Q!%<M!"
+ "%\\Y\"%<Y!\"<M\"%<U!(\\E\"%LI&'LM!%<M!'LM!%<M!%\\=#$<U!#,9!&\\M\"%<I!$<I!"
+ "&LU&(,I#%<E!&LI&(<9!$,A!%\\A#&,E$',I)#\\)'%\\E#$,A!%\\9#&LE&'<=!%<=!"
+ "&L9+%<9!%<5!&\\5(%,1!&,))&<%&%<9!$+]!$,)!',%%%L)\"$,%!&,1$',))'L!\""
+ "&;]\"$;E&&K]+$[I!$;M\"'KQ#!;Q\"$+Y!&+U)%+=\"&;I&#[E!%[M)%;A\"\"[5!%+I&"
+ "(+=&%+9\"%[%)#[1!$[)!#[5!#K5$$+!\"#[%$$;%#%;-'&K5$$:]#!JY#\"Z]!%ZQ&"
+ "#JM!#JA!%:I$%ZI'$*E\"$:=##Z=%$JI%%*9'&:M!$:1!$JA$$J-%#J-!#J-!$J)%"
+ "\"J%!#)]\"#9U!#IY!$)U#\"I]!#YQ\"#9I#$YQ#$IE##9A!#YA#$)I#!)=$\"I)!!Y5!"
+ "#I-%\"I!%\"I-!\"Y!\"!Y%!$91\"#))&\"H]$\"8U!#(I#\"8Q!%(E&\"XE##HI%#8E%\"8A!"
+ "#(-$$(-#$(9%#89\"#(9$\"8)!#(=$#HE#\"X=#\"8U!\"HQ!$(M!\"XE\"!XU!\"8]&#X]&"
+ "#Y!&#I!\"$Y!'\"Y%\"\"95##)5&#91!#95$#9)$#9=$$I-#\"YA\"#YE#\"IU!$9I!$9U$"
+ "(YU'()Q+#9M!\"YY$#J%!!*!!\"YU\"#Z-&%J%\"#J!!$*!#\"J1!#J)!$Z5\"\"Z9!#J-!"
+ "#J=!#*A\"#*A&%JM!!ZI!$*Q&$:Q#\":Y\"$:U$#ZU!#[)!#Z]!$ZY%#Z]!$*]\"#[!!"
+ "#*]\"$+!\"$[5%#+1%$;1\"#[5!%K=$%;9\"'[=*$[=!&;E'%;U\"$[E!$[I!'[I-$<!\""
+ "';M\"$+Q!$KA$#;M&$+U!$[A!'+Y!&+]-\"+]!%+Y%$,!!%,)!$,%!%\\%#%,%!&<)!"
+ "%,-!'<-!&,!!%\\E#%,-!$L5\"$,9!%,1!%<5!&LM&\"\\A#$LA\"%<I!%<9!%<5!#LA\""
+ "$<1!$LE\"',E(%<E!%\\I#)\\M&%LI\"%LE!&\\A(%L=\"'\\5,%<E!%<A!&,I#)<I)$<I&"
+ "%\\A#&-!$%\\Q\"%LI\"&<I%'<M.%\\Q\"%LI\"#,I!%<M!#LI#&LE&',E#%LI!'\\9'&<E!"
+ "&,U#%<E!'<5!',9$&<A*&L=!'<A%\"<A\"&<A&&L=&$<1!(,9#%,-!%<9!',5-%<5!"
+ "',E#'<1!%<1!&,1%$L=\"%,1!)\\-#%+U!&+Q!%,!!%L5\"%,%!%<%!'L%,&+]!&;]+"
+ "%;M\"%+Y!$KQ#%+U!&;Y\"%[Q$$[A$$[]$%;I\"%[E!&[E!#[I!&;E&$[=!%+A&\"[9!"
+ "%[5!&+1*%+1\"![1!#[-!$+-\"#[!!%JY!%[-)$+%&$[!%$;)\"!ZY!&:I!%*Q*#ZU!"
+ "$JM!$*M\"%*I\"#ZQ!#JE!%*A'!*9!$Z%&&:=,#*5\"\"J1!!:9\"$I]\"%J-\"#I]!$*%#"
+ "$Z)&&)]%\"Y]!'Y])#YQ#&9U#()Q.%IQ#')=+#Y=#$)9!%)A($)I&#)9#!Y5!!H]!"
+ "\"Y1\"#I1%\"I-!#Y))#I%\"#I%#\"HU$#(M#\"(]\"%8U##XI'\"(M(\"8I!#(U!#(E!\"8=#"
+ "\"8)!\"H)!\"(-\"#H5#\"XA#\"89!\"8=#!(Y!$HI*#HE\"$XU*#X]&#(Q#$8Q(!XY!#(M#"
+ "\"8]!\"HU!#9!$$Y!$#))#\"Y1\"#)5##9-$\"I9!$95(!Y9$\"I9!%YA.%)A\"$)E#$9M!"
+ "!YY!')E-$)A$#IU!#9U!%9]($:!$$9]!#:1#$Z-\"#J)$\"Z-!$*-#%:=+#J5!#J5!"
+ "!Z=!#J=!%ZI*#JI!\"ZE!#ZI\"$JM$%ZE\"$JQ!$*U\"$*U\"$*Y\"$*]\"#Z]!#[%!$;!#"
+ "%+%&#[)!!;)&'[)&$[1$#;9\"#[9!'[=%%K9($[=!\"[=!'+A.$[I!%;E\"&;E\"%;]!"
+ "$[I!\";M\"$+M!$+Q!$+U!&+I%%,%!&\\-(%+]!%K]#'KY#%<%\"&<%%%[]$#L%#&L!'"
+ "$,1!$+U!%,)!%<=!$,1!$,1!&,%*#<5\"&<5%&<5!%\\9#$,=$&L9'%<9!(LA&&LE!"
+ "%<E!#LM\"$<E!&LA&#LA#%LA\"%LE\"%\\A(#,E!'LE!%\\M#$<E!%<A!%<9!&,E#&,I#"
+ "%<I!%<5!&<5!%<U!'LE!&LM!$<E!$LI\"%<A!'<Y$&,E$%,=('<M)'<E))<E)%<A!"
+ "%<A!$,A!&\\E'%<A!%LA\"%L)\"%L='$LI\"%<=!'<A*%<5!%<=!&,1$%L-\"$L1\"%L9\""
+ "&<5!(LA/%\\)$%,-!'<1*&,)%%L)\"%L1\"',%!$,-!%+Y!%,1!'[])%+]%';U\"%+U!"
+ "%L!#%+I!&;U\"#[M%)KI,$;A\"%+M!&K9($[A!$[E!'K5$#KE#%+=\"%+=\"%[-!%[9!"
+ "$;5\"$K5$#[1!![-!%+)\"$;)\"%[)!$[!!$K1$$*]\"#[-!#Z]!#ZQ!%JI!$*Q\"$JM("
+ "#ZI\"$ZI\"#:E'$JQ!$ZI%\"Z=!\"Z=!\"Z9($J%!#J1!$J%\"\"Z!\"#J)!$*)##J!!%9Y&"
+ "#)]#$Z!\"#IY!\":%\"\"IM!#IQ!#9M!$II)#9A!'9E$#Y=##I=\"\"Y9\"!Y9!\"I)!\"Y-\""
+ "\"I!\"\"91#$Y)$#9-!#(]##(]#$))'#95$#(U#$(M\"#HE%!8E\"$8E&\"XE#\"8A!#(A$"
+ "#(%$\"H)\"\"X)%%89$#H5&#(5!!H9!$(=!#XA!#XI!#(E$$(U$$8Q(!(U!#8U$#(U#"
+ "#(Y#\"I-!#9!$#Y1##9%!!Y1!#I1(\"Y5\"$I=#!I=##9=$\"I9$$IE%$)9$$)A!$II%"
+ "#IE\"$9Y$%9I)%*!(#9U!$*!'$)]#$:!$&Z5#$*%#$9]!\"Z9!#J1!#Z-\"$J9%#Z-\""
+ "#J9!$*5#$JE!#JE!#JE!#Z1\"&ZU*#JM!#*M\"%*E'#Z]!$;%##+!!%*M&#Z]!$;!#"
+ "$K!$$+%\"#[)!#+%!#[)!\"[1!$K9#%;-\"%;5'#[-!%[9!$[=!%;A\"$[1!%;A\"%KA#"
+ "(+I.';M+&+I!#[E!#[I!!+M%'[Q$);U\"%;Y\"'+I!&,%%&+]!(+Y-%,)!%[]$%L)\""
+ "%L!#'\\!$&L-\"%L)'&<1!&<1%&\\1(%LA\"&,5$%<5!'\\1#$<5%%L9\"$,1%%\\5#%<9!"
+ "\"\\E#%,=%$L9#%<=!'<=%%<9!%<M!&<9!&\\E\"#<A!%<E!(,M-&<I%'LM!%<A!(L=!"
+ "%\\9#&LE&#<=!$LA\"%<9!'<A!$LM\"'\\=\"(\\=\"%\\A#%\\A#%<9!&LE&'<=)%<A!%LA\""
+ "%,1!%LI!&<=!(LU)%L9\"%\\9#&<E%&,9$%\\=#%<5!#,9)$,=!'\\M\"%<1!&L%'&LE&"
+ "&,-)&<1!$+]!\"<)\"$,-!%L)\"$<-\"%L-\"$;]\"&K]#)[]#&+M!%+Y!$+Y!$+Y!%+A!"
+ "$,%!$KQ#\",)!%+M%$;=\"%+I!&+Q%'+E\"';E\"%;1\"%+A&%+5\"$[A!$[I!%;!$%;5#"
+ "\";1\"\"K1##K!$$;1\"\"[!!%+%\"$+!\"&*U+$Z]%$:Q#$JY$\"ZQ!%ZY!&JQ!#JM!$ZI\""
+ "%J9\"#JI!#Z=\"(JY*$JA!$*E\"$ZA\"\"J9'$JA!#J-!$Z9\"#J%!#J)!$)Y#$:!$%)]("
+ "#J!!#)]\"$)U#$)U##)U#()].%YY$&YQ,#9A!$)A#!YQ'!)5!#)1#\"IA!\"I-!$Y9'"
+ "$Y!!#I)%$Y%$\"I%!\"HQ$!X]!#HQ\"\"8U!$(U$#(M#\"8M!\"XU\"!8A\"$(A!$(5(#85\""
+ "\"8%$#(1##(1!\"X%##(9$%(5'\"85!#X=$\"H=\"\"H9!#(Q&\"XI\"\"(M\"\"(Q\"#(M#$8U)"
+ "$XY*\"8Y#\"I!!#(]!#9!!\"Y).$)5!\"Y!#\"I9!!Y5!\"I9!#)A&!9A%!)A!#IA\"$)M#"
+ "$YI&$IQ%#IQ\"&II(%Z!$#J!!#YY\"$IM&%*!$#Z%\"#9U!#J)!#)]#\"J-!#J1!$*9&"
+ "%J5%#:9#%:-!#JI!$JA$#JI!$:I##ZU!!*M!#JM!%JQ!$*U\"%JU!#Z]!![!!%;%'"
+ "\"[!!#Z]!&K),%+)\"$K)$#[)!#[1!%+A&$KM#&[5!$[5!&+I&(K=$%[9!%[I!$;E\""
+ "%KA$%+A!%+I!'+E\"$;U\"$+M!$+M!$+M!&;Q\"%;Y\"%+]!%\\!$%,!!(;]&%;]!%;]&"
+ "'L!#&,1$%,%!%+Q!$K]'%<)!$,%!',9($,1!$L1#$\\-$&L9'&<-!%,1!%<=!(<1*"
+ "$\\1#%L9'%<5!'<9%&<=&&,5$%L1\"$,-!&L9!&<A!$LE\"%<A!&\\1(%,=$$,=!\",A!"
+ "%<=!(LE!'\\=,&<=&%<A!&<E%$L9#(,=#%<=!%<=!%\\9('\\-#(<9%&,=)%,-!'<9*"
+ "'<-*%<9!%<9!&<5%$L9\"$,1!&,9(%\\9#(<5/'<9*(\\E&$L1\"'L=+&\\)(%,-!%L-\""
+ "$<)\"&L)\"%,!!&L!''<%*%<%\"&+Y%%,!!'<%%%<!\"#+]!%+Y!%+Y!#+Y!%K]##+E!"
+ "&;Y*$+Y!$[M%%+=\"&[=!%;E\"%+Q!%+=\"%+=\"%+=\"#[=!(;%(([=!%K5(%[=!$[-!"
+ "%+1&![-!#+-!$K%$%;%'#Z]!%;)'#ZY!$ZQ\"&*Y'#ZQ!%*I#$*M\"$JI!$ZU%#Z=!"
+ "$JE$%*M&#J-!#J1!&J=\"#J9!$*5##J1!$J-\"#Z-\"#I]!\"J1!$J!&#*!##Z!\"%*%'"
+ "\"IQ!\"IQ!$IY\"#J!!%)M!%9M%!)M!#9E!\")=%$)=!$I1##99'#)5#$Y9!#)1)#95!"
+ "#)%$#9)$\"I%!#9!!#X]##HY%#HY\"\"I!!!XQ$$(A!!8E\"#(I#\"8A!\"8I!\"X=\"#H=#"
+ "$(%(#']$\"X%#\"H)!#(1$\"81!!H5%#H5#\"8=!#XA'$HE!#8I%#89%$8M##XQ#%XY#"
+ "#8U$#(Y)#Y!&\"8Y!$8Y%$9!&$I!*\"I1$$I1)\"YA\"#9A!\"I5!#I9\"%)E($)=$#)M#"
+ "\"IE!#)Q\"#9M!#IU!$9M!!*!!$)]#&)U%#)U#$*!#$9Q!&*%,#J)!#Z)\"#Z-\"#J1!"
+ "#J=!$J=%\"Z9!%:=%$*A\"\"ZA!&JA\"%:I'#ZQ!&*U+\":E\"$:M$\"*U!$JU!#[!!%ZU\""
+ "'K!!%JY)!;%&#[!!$+)\"$+%\"%[-!\"+!\"$+5\"$+%&$+5\"&+1&(+9+%[=$#[A!#[A!"
+ "'[9.$[I!%KI#%+M!$+Q!\"[E!$+M!$+U!);M/$+U!%,!!%;E\"&[],%+Y!%+]!'+]%"
+ ")+])%\\)'';Y/%<%\"&L%#',%!)\\),%L%#%,!!%\\)$&L-'%\\)#%L-\")<1/%L=\"%L)\""
+ "'L1\"%\\)#%<A!$L5\"%\\1#%L1\"%<=!'<9!(<-%$,9!%<5!',9)%LA\"&\\=#\",9!$<=!"
+ "&L5\"%<=!'LA+%<=!&,=$%<A!)\\94%L5\"'\\A,(<9%&<=&%,1!%<9!$L9&%<=!%<5!"
+ "%<9!%<9!&L1'(<5!%\\I#&<=*$\\-$\",9!%\\!#%,1!&L%\"&<1!'L5\"%,%!&\\)(%,-!"
+ "$,%!$,%!&<-*#L%''<-*',!!&;]\"&K]#%\\!('L!'&<)!&;U&#+Q!%;M#$;]\"$;U\""
+ "%;U'%KM'%+=!&+A\"%+E&&;A+'+A\"&;E''[E$\"[A!$[A!%;9*$;E&%[1!$[5%%+-\""
+ "#+-\"$[)%$;1#&[1)#ZU!'JY!$JQ!#:U\"!ZY!\"ZY!#JA!%J=\"#JI!&:9!%JI)$ZI\""
+ "#Z5\"$JU$#Z9!$:I$!*)!'*9(#J-!#J5!#Z-\"$*)##J)!#J)$$9U!$:!$$Y]#!)]!"
+ "\"IQ!\"YY!$)Q#$YM#$)=!$IU%#9A!%9M\"!I5##9=$\"I=!#95$!Y5!$)9'!Y-!#)5#"
+ "#Y%'$(Q!$8Y%%(Y\"\"8]!\"X]\"\"8U#\"8I!#8Y$$8I#$H=$\"HA$#H5#!HI##(=#\"89!"
+ "#8!$\"H-\"!X)!\"X)#$H1+\"X1\"\"89!\"XA\"$X1\"#(E#!(A##XI!\"HI!#HI&#HQ&#XQ$"
+ "$8]%%9%-\"X]\"$H]#\"8]!#(]#&9)(#Y)&\"Y-\"\"I-!#91$!Y9!\"I9!#Y1&$Y=#\")I\""
+ "\"IA!$9E$$)M&$)M#$IQ)%IQ#%IU)$I]&%)U'$9]$#YQ\"\"J9'#J-!#*=\"#J-!$:5#"
+ "$J9!#J-!%J1\"\"ZE!%:1$#ZI%#J5!$JE!!ZA!$*=\"#JM!%:U$\"ZQ!!JU##JU+%*Y'"
+ "#ZU!$:]'\";)\"#;-\"$;%\"$J]$#[)!#+1\"#+-!#[5!#K1$'+1&%+9&$+=*%+=\"&[=!"
+ "(K=$#[A!$[A!$;I\"&+E%$+I!&KM($+Y!%+M!\"[I!#+E!$,)!%;Q\"%+Q!&KY'%KE#"
+ "$<%!%<!\"%+Y!&\\5#&<!\"%<!!'[],#,!!&,%%'<)!%,)!%\\!$%K]#%L-#$\\)#*,9-"
+ "&,!%%,1!%,1!%L-\"$,=!&<5!'\\1(%L9\"$+]!&,5$%\\5#%<5!&\\E\"%L)\"%<9!'LE!"
+ "%LI\"%<I!'<)!(\\5-%<=!&<9%$,9!%<5!$,1!*L9+$,5!%<9!%L9'$\\5#&,5$%L5\""
+ "%L1#%,-!%<1!$L1\"'L5\"$<1*$,5!&<-!$<-\"\",)!$,5!%,)!%<!\"%,)!%\\)#&,!%"
+ "(;Y&%,!!%<!!%<%%';Y+%<!\"\"+]!%+Y!&+U!%+Y!&+U!%[U$$+M!#<!\"$[M$\"[Y$"
+ "%;=*(+M*$[I!%+=!![Y$%KE##[5!%+9!$[9!&[1!%[-!(;1(%K5(%+1\"%K)$#[5!"
+ "#[-!#[)!$+)\"#Z]!#ZY!#ZY!$*Y\"$*M\"#*U%#ZU!$ZU%#Z=\"$:9#%*I'$JE$$:=#"
+ "$ZA&\"Z9!%*=&#J9!$Z5&#J5!#J1!#ZA\"$*5\"$:)!#J%!#Z%\"$*!#$)]#&:!\"&IU#"
+ "$IQ\"%IA*\"YU!$9M!$9I$!Y=!%YI+$Y='\"Y9\"\"9=##)=#\"I)!\"91##I5(#)1#$Y!!"
+ "$Y5'$9!%!I%#$X](\"8]!%(U(#XY&$(]$#X='\"8Q!!HM#!XA!#H=&%H=#\"H=$#XE#"
+ "\"8!!#X%'$()(\"X%#\"81#!(-!#H-##X5!#H5&\"8=!\"(-\"\"X=&#HE%\"XI\"\"8E!\"HQ!"
+ "#(Q#&(U$#8]$#HQ%\"I!!#9!!#I!##91!$Y-!\"Y=\"#Y-&!95($I9#\")9\"$)9$#9=!"
+ "#YA&%IA$#9A!#9M$$)M$#9Q$#9Q!%IU\"&IQ.$:!!!Y]$%:))$:%$!YY!#Z)\"#Z-\""
+ "#J5!$J1%#Z5\"#*5\"$JA$\"ZA!$Z=%#*A\"&ZA&%:E!%:E($:9##:M\"#ZQ!$[!!#*U\""
+ "$J]!$ZU%#[!!#ZQ!$;%*#[%!%+-&%+)\"$[1!![-!!;-\"%;1\"&+A&&[E(%;9\"%;='"
+ "$;=\"';1(#K=$)KI$\"[E!&;E\"&;5#%+M!$[A!#+M!#[I!$+Q!$[Q$%[U$%;Q\"&+U%"
+ "%,!%%;Y\"&L!#%+]!%,%!%<!\"$;Y\"%,)!&+]!#<%\"%L)\"%,!!%L-\"%,!!%L)\"#\\9#"
+ "%L-\"%L-#'L-&&L1'$,)!$L1\"%,1!%L5\"#<1\"'L-\"#L)+%L1\"&<-%%L5#&L1+!<!\""
+ "'L5!#\\5#&\\1($,5!&<9%',5$',5$%,1!'L1\"(,).&<1!(\\1#%L)\"#,1!&L5\"$,1!"
+ "'<=!%L5\"%<%\"%\\-#%,-!%\\-(%<)!#,=!%L)#&<5!&K]'%<%\"&L%\"!,9!&KY#',%!"
+ "%,!!',!)$;]\"&\\%(&+U!#+]!'K]+$+U!%+M!%+Q!%+U!&KE(#[E!%[M$&+A&%KI#"
+ "%KQ#$[E!&[A)'+1+%+M!&KA#%[A!%K=#&[A)%[1!$+5\"%+9\"$+-!$[9%#+1\"$+-\""
+ "$K!+$K%$$*Y\"#Z]!!ZQ!$Z]%$JY!\"ZU!!*]!#JE!$ZI\"%J=)&*I$$*A\"#JM!$ZA\""
+ "#JA!#ZI\"#Z1\"!:5\"%:-(%J1\"#J-!$*1#\"Y]\"$9]!%*!$\")]\"\")Y\"#Y]\"\")Y\"#9U!"
+ "%II*$YM&#9U!#II!#YI##9A!$IE%%YE$\"I=!!)A!\"I5$#95$%Y)&!I%#!))!#X]#"
+ "$)5!#9!!\"X]\"$(Y!%HY.#(U##8Q'$(M\"#(M#\"8I!\"8A!#(A$#H=#$(=%!XA$\"X1#"
+ "\"GY\"%(%$#GY!\"G]%\"H1!$8))\"X)#\"85!#81%$89#$(=!$XA+!(A!#XE&!HU#$HM)"
+ "$HY#!HM#!(U!$(Y!!X]!%I!!#9!!$I%$#)5&#9)!#)-##)-#$I5#\"II'$99%!I=&"
+ "$)A$#II!%)E(#IA\"$YE$#YE##IQ!#9U!$Z!'#YI\"#9I!\"Z%\"%*!!%:%(%Z%##J)!"
+ "%:-)#J1!#J1!$*M\"%:5!%*5##Z=\"$*5\"!ZU!#JE!#:=#$:I##ZE\"$+%\"$:U$$JM!"
+ "$JU!!ZU(%JU!$J]$#Z]!#ZU!%:]'$+-!$[1%\"[)!$;=\"#[)!![)'#;1\"#[5!%[1%"
+ "%K9$%;9\"%;1#$K='&;A'%[A!%;M\"%KI'';I\"%KU#&[E)#;M\"#+M!$;Q\"#+Y!&;U."
+ "%+Y!%;Y\"$+Y!%+Y!%+Y!%[]$'+Y!(<!+%,!!$L9#$L!'#L!'&+]!'<)!(,!%%,%!"
+ "%L%#&,)%#<)\"$L)#'<-*$<-!&,%!&<-%&+]!',-%&<-!&<-!%,-!%,!!$,1!&\\%("
+ "%,1%&<1!$,-!%\\1#'<5*&,1$',))#L5#%,-!%,)!&<1!&<=&%L-\"$,-!%L-#%<-!"
+ "%L-\"%,-!$L-''L1&%,1!&,!%%,)!%L)\"%\\%#%<%!&L!'%<%\"$\\%#&<-!*+])&+M%"
+ "\";]\"';Y*#,%!&+Y!%KU'%+U!(;U+%KU'$+Q!$;]\"$+U)%+M!$[I!%[E!&;I\"%;E\""
+ "%;5#$[A!%[M$';Q/$[=!#K9#%;9#%;5\"!KE#%+1\"'+1\"%[-)$[)%$[)!%+)\"$+%\""
+ "%+!&#[!%$J]!%ZY\"$JU!\"ZY!#ZU!$*U&$*Q&#*Q\"$JI%\"JI$#J9!#:E'%ZI*$*=#"
+ "#JI$#:-##J5!!*5($*1\"$:!$(*)\"\"*9\"!)]!$)]##:!##)]\"#Z)\"!YY$#IE\"#Z!\""
+ "$YQ#%II#$)I$#YI\"#9E!#YQ#%IE#$IA(\"I-!\"Y5\"%IM&#9-'\"I9!!Y)!#9)$#(]!"
+ "#Y)##(]#\"9%#$XY%#8Y!\"8]!#X]!\"8M!\"8M!#HQ%\"HU!\"XA\"\"H9!$81&\"85!%(A#"
+ "#']$$']##()$!H%!\"X)\"\"H%\"\"8-!\"X)#\"89!$(=%\"X9\"#(Q#$(A%%(E#\"XE\"#XE'"
+ "$XQ+%XQ)\"XU\"$)!!#(Q##I%&#I!#$I1##I%\"!I5)\"Y-\"$9-%!I5#!Y5$#Y5&$)-$"
+ "\"I9!#)A&#)1#$)E#$9M!#YM#$IM&#9M!$)I$$IU\"#)U#$)Y##J)!%*!(&Z%$%:1!"
+ "#:)##Z!\"$:)!$:1!#Z%&#J1!$:-!%JI!%J=)\"ZQ!#ZA!$*I\"%*I\"$JI!#ZU!#[!!"
+ "$*]\"#ZU!%ZY*!Z]!\"+!\"#Z]!%+%&#[!!$[%!#+%\"%+1\"&K)(#K-$#[9!&;)+![1!"
+ "#[5!';9,$[I!%K=#%[=!%[=%$[A!&;M'%+E!%[E!%;Y\"%+Y!&+M*&[M$#+M!&;I*"
+ "%KI'%K]##[I!%+Y!$[A!%+U!&KY'([]-%;]!$;]\"#,)!&<-%&,!!&L!'$;Y\"&;Y!"
+ "&;U&&;]!$<)!(<!+'<-!%[]$&L)\"$,)!&L)#$<-\"&,)!%+Y!%,1!%L-\"$,-!%L9\""
+ "%<5!%,!!(<!*&,-%'L1\"%,5%&\\-((<-!%\\-#&L%'&\\1#&,-$%L)#!K]'$+]!$,)!"
+ "%,%!(<)%'<1!%\\%$$K]#&;]\"%<)!%<-!&,!!$+Q!%,)!%,!!&;Y!%+]!%+]!$;U\""
+ "$KY#',!!%+U!\"+U!%+M!#L%'%;U&$+Q!$+Q!&;U&&+E!$[I!$[=$#;E\"$[=!$[E!"
+ "'[U$$;=\"%[A%%[9$%;5\"\"K9##[1!#K5#%+1\"%[9!$[-!#[)!#[)!#Z]!#JY$$*U\""
+ "$;!\"%;-+$J]!%ZY\"#*M\"%*Q\"#*]\"\"ZQ!$JI!$ZI\"#ZY!$*Y\"#JE!#JA!%JM!\"*=!"
+ "&Z=+!Z5!#:5#%Z1*%JA\"\":1#$J!(#Z%\"#I]!#YU\"\"*%\"$Z)#$II%#IU\"$J!!&)M!"
+ "#IM!#IE\"$YI'#9Q!\"I=!#)A##9E!#99$$IA#\"I=!!I-#$I5)\"I)!%9)$$I%&#(Y#"
+ "%I!(\"8]!\"HU!#(]#\"Y!%\"H]$#(I#\"H]!#8A$#(E!#8I%#(=#\"89!\"H9$\"8%!$HA'"
+ "\"7Y!\"WA!!(!#\"X!##H)&\"8)!!WU$\"81!#8-%\"X9##8%(#H=%#H5&!8I\"\"8E#\"8=#"
+ "\"XE%\"8Q##8U$\"8Q!$(]'#(Y#\"X]\"\"X]\"#I)%$I)#\")1\"\"I%!!Y)$$91(\"I1!$)I!"
+ "$Y9*#)=##9M!$)M$#Y9#\"9E#%)M!#YM#$)U##9Y'%II'%9Y%#*!\"$)]#$9Q%!*%!"
+ "#I]!!Z)!\"Z!\"$:-#\"J1!\"J1!$JA!#Z=\"$*=\"\"Z9!#:E##J1!$*E\"$*Q\"%*I\"$ZM\""
+ "!ZQ!#ZQ!$J]!$JU!\"ZY!%;)+$;!\"$+!\"$+%\"#[%!#+%\"$K)$$+5\"\"K-$#[5!%;-#"
+ "\";%\"$K5$$[1!%[E$&;5'&+-\"$[=!%[9%&[A$%[=%&+E!#KE#'+I*&;=&%;E\"$;I\""
+ "\"+I)#[I!$+Q!';Q'&+U%%+Q!%[]$&+U!%+Y!$;U\"&KY#&K]'#\\!$&K]'&K]'%;Y\""
+ "%,!!$\\!$$+]!&;]\"$<)\"(,%*&\\1(%L-#'\\%#&+U!&<1!&\\%(&,-$&,%!'<-!%,%!"
+ "',)%%,1!%,)!&,%!%,)!%[Q%%<)!%<5!(,=-&,5%#,)!&,%!%,%!&<%%$<%\"%,%!"
+ "%\\9#%L5#&+]!%\\!#%+Y!%;]\"$<%\"%L!'#,!!&;Q&%,!!%L5##+Y!%KY''+Y!%[U%"
+ "%+Q!&+Q)$+U!$+M!\";Y\"&KQ#$+M!#[=!&[Q)&+M!%+M!#[I$'+-\"%[A%#[A$$[1!"
+ "$[A!$[=!%K1$$+9%$[)!$K='%+A&![A$$[9!'K-!$[)!!Z]!%+9!\"[%!#K)#$;5\""
+ "$+)\"$K!$$*Y\"&+)\"$JM$$ZU%#JA!%:E+#JE!#JI!#JA!&:A!$J9!#Z5\"#Z=\"$J=!"
+ "\":5\"#J9!!Z1!%J5!#Z-\"%9U\"#J)!\"Z-%#*)\"#9Q!$J%&#YY\"#)U&$)U##IQ\"%)U!"
+ "#9M!%YI(#YE#$IA\"\"9A##9-$\"I5!#)5#\"I-!#9=$!I=&\"Y)\"#I%#$Y%'$HY&!H]&"
+ "\"H]!!XY$$HY'!8Q\"!(M!$(M%\"XI\"$(U$\"8E#\"X9%\"8E(#X=!\"H9$\"81&!X1'!H1#"
+ "\"7]!\"W]!\"W]#$(!#$(%($(%(\"H)!#X=$%X5!#(A#\"85!\"H9!$(A(\"89#\"(5#\"HE$"
+ "\"HI!#(U#\"8M!#(Y##HQ&\"8Y!\"8Y!#(I##Y9#%)-\"#Y%##I)%!9!(#95!$I1#\"I5!"
+ "$I9\"$Y9$\"IA!!Y1!#91!$)M#$)U#$9M!#IM%$Y]##)U\"$YU##9U!%)M($9]$#IU!"
+ "\"J!!%:%(#*%##Z9\"$J1\"$J-\"#Z=\"$J5!&*9#$:1#&:=!$:9#%*A&#JA!$:I$$:A#"
+ "$ZM\"!ZU!%*A&$*U\"#ZY!$*U\"#ZY!!ZY!#Z]!$+)\"%+)&!;%\"#;1&&+5\"$[1%#[)!"
+ "&+9&$K5$#[1!$[5!%[5%$[=$'[9*%+=\"$;=\"%+=\"%[A$\"[=!';E+'KI$$[E!%;I\""
+ "$[E!$+Q!!+I!$;I\"$;Q\"%KI(#+Q!#,)!%+]!%[U(#+U!%KY#&+Y!#[E!%+Y!)L!\""
+ "&[]#%;]!!K]''+Y!',%!%L%'%L)#&<-!%,!!%,!!(+Y!%<%!&\\-#&+Y%%<5!%,!!"
+ "$,%!%,-!&<%%%+Y!%,%!$<%!%,!!$K]#%<1!',%)$,%!%+]!'<%*%<%\"',!.&<)%"
+ "&<1!#,!!&+]%'<-*&[])$<!&%\\%#(+]%%;Q\"%+Q!%+Y!$\\!$%+Y!#+Y!'KU#&;Y'"
+ "$KY#$;U\"&+Q!#;M&#L!#%+M!%KA#%KE#$;M#&+5\"%[I!#[I!%[A%(K=$%+-\"$[=!"
+ "$[9!&;E&%+5\"$;A\"#K1#\"[1!%;-#$;-#%+!&#[1!$Z]%#[%!$:M##[%!$JU!&*]&"
+ "$ZY\"'Z]\"$ZM\"\":Q&$*]\"$*U\"$JM!#:A#$JQ%#J=!$:9$%:A(#J=!%J9%\"JA#\"J-!"
+ "#Z5\"$*5\"#Z1\"\"J%!#Z=\"$J%\"$J1%#J)!$Y]#$9Q!#Y]\"%Z%*#IE\"\"YM!$YQ#$)M#"
+ "#YQ#%IE$$9I%$YE##I=\"\"Y9\"\"I9!#I9%\"I=!$Y5$\"Y%#\"I-!%)1\"!)%!!)-!!H]!"
+ "\"8Y!\"8Y!\"8M!#8]$\"8]!\"8M&\"8Y!\"XE\"#(A$#(A!#(9!\"85!&89,#(5#\"H1!#89$"
+ "#H%&\"WY#!7]\"#X)!\"7]&!H%!\"8)!%(-*\"81!\"X1#\"H9\"\"X1#$X5##(E$\"XA#\"8Q#"
+ "\"8M##(I##HM#\"HQ!\"8Q#\"8U!%(Y\"!HU##HY%#XY#$I%$!Y)!\"Y%\"#I-\"$9))\"I5!"
+ "#9E##9A$\"YA(!Y1!#9A$$9E%\"II!\"9M##IM\"&)Y,#9]$%)Y+$)U#$J)%#I]!#Y]&"
+ "$9]$!*-!#Z%\"%Z)#\"ZA!$:-$%:-!#Z5\"\"J%!#J9!#JE!#JM!#JA!#Z=\"%Z5.*:I'"
+ "#ZI\"$ZM%#ZY!#ZE\"$:M+#ZU!%ZU)%ZY\"$*]%#Z]$#[)!%+!\"\"[%!%K%!&+!*%K%!"
+ "$:]##;-\"#[1!#[-!%[5!%[5!$[5!&[=)&;9'%+=\"$;)\"'+A!\";E\"'+)\"'+E\"&+M!"
+ "#[5$&;I&(;A#%;Q\"%[I$$[M$&+M!\";Q\"$L!#'[I!&+U%&;U'%KU#(+Q%%[M$%+Y!"
+ "&+Y%&+]%'[U)%+U!&K]'&+]!%+]!%+]!&[](%+]!&,!!%K]##,!!$L!#)<!+'<9%"
+ "'<!&#<!&$L1\"&,!!',%*%+]!%+]!)<%&&L%'&,%!&KY#%,!!&<-!%\\!$$[Y$\";Q\""
+ "%;]!&+]!%;Y\"\"K]#%+Y!%;Y\"%;Y&#[Y$%;]!$;U\"\"+Y!&;]\"%<!\"![=!$[U$%[Q("
+ "$;]\"&KM(#+Q!$[I!%KM#$[A!%[I!&KM#$;E\"&;I\"$[5('+A\"$[A!#[-!%;9#(+A&"
+ "\"[5!%+5&$;9\"#[1!$;)\"#;-\"$JY$$[%)#[)!$[)!'+%'&K%,#:Y\"%JU)$J]$$*]\""
+ "$*Y\"#ZU!#ZA\"$ZQ!#JI!&:E!!*Q!&:I%#J9!$*A#!*1!#*9\"$*9##:5##:)##Z9\""
+ "#*1\"\"9]\"!Z5!\"Z!\"$J%&%Z9##J!$$9]$&*%$%Z-#%9U%#9U!\"YY\"#9U!#9M!#9A!"
+ "#)E##9A!$99%#9A!#)A##9=$#9)!\"I1!!Y9'#9!!\"I%!#)%##Y!$$)-$#(]##)%#"
+ "#X]##HU%#8Y$#(Q##H=#!H]!\"XE#!H5##8M%\"8E!#H9#\"H=!\"89!#X-'\"X-#\"WY#"
+ "%'U*\"7U!\"X!##7]%\"H!'!H!!\"WY!\"X1#\"X-#$85$$8)$#H)##(9&\"H=\"%(=)#8E'"
+ "#X='#XI#$8M##(E$\"8U!!HM)\"Y!##(Y##)!#\"8])!I%##9%!\"I!!\"Y=\"$)5'$I1)"
+ "#Y5#\"Y1\"\"I=!\"I9!&9='\"Y=\"!IE&#IE%#YM#%YM$!9U)\")M(!YU!\"YQ\"&YQ%\"I]$"
+ "$9]$$Z)##J)!#J)!&*)!#*-&!Z1!%:9(&:5,%JA%$Z5&%*=&$:5##ZE!#J=!!ZM!"
+ "&:=!%:I(#:Q\"%ZM\"#ZQ!#ZA!$J]$#[%!$*U\"#[!!%:]$$[-!$K)$';%$%K-$&[%*"
+ "&+-\"![)!$K5$$[-!$;%#'+1&$[5!#[5!![=!'K9,#[1!%+9\"$[9!%;M#$[A!%[A%"
+ "%KI##[E!'KQ#'KA$$[E!$[E!#L!#$;M\"$+M!%+E!$KQ#%;Q'$,!!$+9\"&KU'%+Q!"
+ "%\\)#&+U!&KY+#+Y!%,!!(+Y*'KY,&;Y\"%+U!%L%#$+Y!#;Y\"%;]!#[]$';]*$;Q\""
+ "*+U%%+Y!%,%!&KQ#%+Q!&KU#$+Q!&,!%&K]'&,!!\";]\"%+]!%+]!'K]'%,)!%+]!"
+ "%+Y!&;Y\"&;Y&'+U*$;U'$KU#%K]#'KU'$[M$%+Q!#KQ#\"+]!$[M%#[A!$+M!'+M%"
+ "&+M!%+Q!$[Y$&+I!$[E!&[E!*;E'(+A&'K9$$[9!&;A\"%K=#!;A\"%;9'%+5\"%+I)"
+ "$+5\"%+1!#+!%!+-!\";-\"'J]%![-!#[%!$*Q\"%K%!$*]%!*]!%+%&#Z]!%*Y&$ZY\""
+ "%ZU\"#ZU%$:U$%:I$!ZM!#JM!#ZI\"$*=##JA!#JA!$Z=\"$*5\"#J9!$:%$#J%!#J-!"
+ "#J-!$J-\"%J-\"#J%!$)Q#\":%\"#J!'$Y])%*!!$9M$$9U!$*!##)Q#$9U$\"IM!#IE$"
+ "#YI#$I1##)A&#)5#\"Y=(!Y9!\"I1!%I5*\"I-!\"I)!#Y)'$)%!#(Y!\"Y!\"$)!(#(Q#"
+ "!HM!\"X]\"$8I#!H9#\"XI%\"XI\"#(Q#&HE*#(-$#X9*#H=##X1&!H!!#(%$\"X-\"\"X-\""
+ "\"GM\"\"'U#\"7Y!\"WY#\"W]#!7U%\"H%%\"G]!&85,!H1)#(1$\"H=\"#(5#\"8=!\"HE'!XA!"
+ "#HA\"!(U!$XA%\"8=!#8Q!\"8Q!#(U##(U!#(Q#\"8I#\"Y%\"#X]#$(]$&9!(\"I%!\"Y%\""
+ "$Y-$$91(\"X]\"#I5%%99##IA%#)9#%)E'!YA!$)I$$9Q%$IM&#YQ\"\"YU%$)U#&IY+"
+ "#:!##Z!\"$*!##*%#%J!)#*-&#J-!#Z-\"$J1%$:1$$J=!$Z9&#JE!\"ZI!#J9!#JA!"
+ "#ZA\"#JA!%ZI*#J=!%ZQ\"\"ZY!&JY!%ZQ\"#ZQ!$:Y#%*U'$J]$&Z]\"!Z]!&[!&#;)\""
+ "#ZY!%+!\"#[%!#K)#![)!%;!#$;-&%+1&#[5!#K)'&+5&&+9&(+%/$[=!&[1)$[=!"
+ "&KA(%[A!$KA##[9!&;E'#;E\"$[E!$[A!$+Y!&;Y&$+]!%;U'\"[I$$KU'$+]!#;U\""
+ "$K]#$;U\"%+M!%+U!';E'';Y!$+U!%+U!#,!!$;U\"#+U!%,%!$,!%&[Y$$+U!%[U("
+ "';Y+*+Y*\"<!\"$KY#%,!!%;Y\"%KY#%K]#%+Y!%;Y\"\"<!\"'+U!)+]!\"+]!&KU#\"[U$"
+ "&+U!&+]%(+U)'+]%$[I!$[I!&+M!$+Q!#[=!$+M!%[Q)\"[I$$KA$(+Q.$[I!%[U$"
+ "&KE#&KA($[5!\"[E!&[=)$[-!)+I/$[A!$[=!$+9\"'+9&$[9!#[5!%K9(%[)!#+1\""
+ "#K-$\"+-%%[%)#Z]!%[)!%;-##+-%$+-\"%:]'$[!!$*]\"\"ZU!#ZY!$*Y\"$*]\"%ZU%"
+ "$JQ!\"ZM!&*I.%*I\"%*M\"\"ZE!$:E$$*A\"#JA!#Z5\"!Z=!$*)#$*=#$Z5\"#Z-\"$Z-&"
+ "$*!#$Z)&#J%!$:!$$:!!%IY##)]&#IQ\"$:)$%:!%%IQ##YI%!IM#$9Q$%9I\"$9M%"
+ "&II!$I=&#)E&!Y9!$)5$\"I5'$Y1*!Y-!\"I)!!)1!#(Y!$9!%\"I!'#8]$#)%##Y!'"
+ "\"8Q!$8M(!(U!#HI&#(I!\"H9\"\"8=!#(E!#(=$\"89!\"X1\"$W]+!H9##8)%!X!$\"X%!"
+ "#7Q%$'Y(\"7U!$']##G]&#W]$\"X!#$X9\"#X)'\"(!##(1#$85)!H5!\"85!\"89#\"8=!"
+ "#8A$#(=##HI%\"(I\"\"XM\"#(I#\"8E!\"8U!!HY!#)!##8]'\"I1!#(U#\"I%!\")1%#Y)#"
+ "\"X]\"#9-$\"9)1\"95##Y5#$I=&$9=\"#YE\"&IE!$YE&#9I!#9I!#YM#\"YU$$)U##YQ\""
+ "#9U!':)*%Y]'%*!!$*%#%:!\"\"J)!#J-!&:A)#Z9\"#:1#%:1!$Z9\"#JE!%:A,#J9!"
+ "%:A!#ZA\"#JA!%JI!$*Q\"$:Q*#:Q\"&*M'&*Y+#ZQ!$:U$!*Y!$*Y\"#Z]!%+%\"#[%!"
+ "';!$#[)%$;)#$K5$&;)'#[1!%[-%$+-\"$[%!%[5!!+1$%;5&&;)$$[A!%+1\"'K9)"
+ "%[=$$[I!![U(#[5!&+A!';I'&+=\"&+A\"$[E!#[I!&;A\"%;E\"&+M!\"+]!$[M$%KM'"
+ "$+M!\"[E!\"KQ#&;]&!KI#%+Q!$+Q!#[E!$+U!&;U&%;I\"%KU#$[I$!+U!#[Y$%+]!"
+ "&;M#\";E\"%<!\"([](%;U\"'KM'\"+M!$K]#%;]!%+Y!%+Q!%KQ#$[I!);I+%;Q\"%+I%"
+ "$+U!#[I!$+Q!'+Y%$+Q!$+M!$;M\"%KM(%KE0!+M!\"[E!&+Q!#;E\"%+M!$;E\"%+A!"
+ "'KE,%;A\"$[A!%;A\"#[9!$+=!&+A\"&[1%([-&$;=\"%;1\"%K)$%;9&$+1\"$;5\"$+1!"
+ "$K-$$;-\"!+1$%+)&#[)!$;-&#[!!$+!\"%ZU&\"Z]!#:M##ZY!%JQ!$ZU%#ZQ!#ZQ!"
+ "$ZM%$JM!$JI%#ZI\"$JE!#JE$#JE$$:E##ZA\"&JI*$Z9\"$:5##*5&#J-!$J5!#J)!"
+ "'*)!#Z%\"#Z%\"$Z1&!YY!#YE#$9]$%YQ!#YM\"#YQ##)M\"#9Q!$9A$#II!#IA!$IA%"
+ "#IA!$99(#)5#\"I1!#Y9#\"Y%##))#\"I!!#9)!#I%\"#8Y!\"9)#\"X]\"#(M#\"8Y!\"8I!"
+ "$HY$$(E'#XM!%(A)\"8A#\"8A!#XE'\"8=!#(1##H!!\"89!#X1'#X5$#WM)\"H1\"#(5#"
+ "#GM$$'Y)\"GU\"\"'Q#\"7]!#W]$\"H%$#X!$#(-'\"8)!!H=!\"X-#\"(-#\"X5#$8E)$H=$"
+ "\"8)!$XE($(E(#(E#\"XA#\"H]!$XY%#8]$\"(I\"\"8U!#XU!!Y!!#9!!#9)!#I1%#))#"
+ "#Y-#$)1'\"II!#9)!\"II!#Y9#$)='!YY$%)I!&Y-&#YE\"$Y=!$)I#!)5!#IU\"$Y]*"
+ "#)Q&#9A!$IU%#I]!#J!$%:!%%:1$$Z)&#Z)\"%:A(!Z1!%J1\"#J5!$:9##J9!%J1\""
+ "#:-##ZA!%JE!&J=*#JI!$:I##JE!!*M!$*E\"#JM!#JQ$$:U##ZQ!$:Y##ZY!$*]\""
+ "#Z]!!ZU!#[!!&;E+$K!$\"[5!$[-!&+1\"![5!%[-!&[=%#[%!#[5!$+5\"%;)#%[E!"
+ "\"[=!(+=!\";=\"%[9%%+9\"%;U'$[A!&+E%'[5&#[A$$+E!%[E!%;A\"&KA##;E\"&[I$"
+ "$[I$#;]\"&+M%&+Q*$+Q!$[I$$KQ#$+M!$+]!&K]+&KQ'\"K]#$+Q!'+U.$KY#$KQ#"
+ "%KQ#&+Y!#KQ#$;]\"&+Q!$+Y!#+Q!$;Q\"&;M\"$;Q\"#[A!%[I$&+Q1$[I$$KM#$[5$"
+ "$[U%$+U!%[Q(#[I!$+Q!$;Y\"%+A%#[I!%;I.$[E!![=!\"[E!&;1(%+Q%%+9\"%+U!"
+ "#+I!'[A!$[A!&+=\"#[5!&[9!%K9$%+1\"#[9!\"[=!$K9$$+1!%K1$%+)\"%[)!#[1!"
+ "\"K-$$[%!#+%\"%[)&%:Y'!K!#&+1&#[%!$*M\"$JY$%ZY&%K!)$*Q\"$JU$%ZQ\"$JA$"
+ "%ZY&%JQ(#ZE%#*E\"$J5(#ZA!$*9&\"ZM!%:-%$J9($J1\"#J-!$J1!#Z-\"#J)%#J!!"
+ "\"J)!&*-+#J-!$*%##IY!#*%##)E##YY\"#YQ\"\"IM!\"IQ!%II##YM##IE\"%9Q(!Y5!"
+ "#9=$#YE)#95$\")5%\"I1!\"I)!\"Y)\"!HY!#I)\"#I%\"$(Y!#(]#\"8Y!\"8U#\"Y!#!HQ!"
+ "#XQ#\"8M!#HM%#(Q#\"XE\"#(A$!(9#\"89#\"X5#!H5#$8-!%())!(-##X%!\"8%!\"7]!"
+ "\"7I!\"WM##'Q'#X)'!X!\"\"X!#\"GY\"\"']%$(%(\"8!#\"8)!\"89!!(5#\"X-##(%$$85#"
+ "#(A##H=#\"XA#\"H=!\"8I!\"8U!\"HM!!HQ##XQ'#(U#\"8Y!!H]#!9!\"#Y!##Y9##9%%"
+ "!)%!%)-&#)9#%)1%#Y9#$)9!\"YI\"$9I$$)U##YI\"#YA##)M\"\"II$#)A##YI\"$YQ#"
+ "$9U!%)U!#Y]\"#Y]\"#)Y##J%!#J!!&:%-#J%!$*)&#Z%%%:-!%Z9\"#J9!$*5\"%*9&"
+ "#J1!$*A##J=!%:E!#JI!!*E!'ZI'#JI!%JI-\"JQ#%JQ!$:Q$$:U#%:U$#ZY!\"ZI!"
+ "%*]&#+)\"$:]#%+!\"'K)%&Z]*';%(#[9!#[)!%[-%#[-)%;)'$K5#%[!&$+1\"&[5*"
+ "#+9!([-&$[-!#[9$#[=!%[=!&;1'$[E!%;A\"%;A\"$[A!%+9\"&;I\"%;E\"$[E$\"[=$"
+ "#;9\"$+U!%;I\"&+I)&KM''+M%%;E\"$+M!$+M!\"+M!$+M!#+]!$+M!&;I\"\"+M!$+M!"
+ "%[M$%+E%%;=&#+U!$<%\"$;E\"%;E\"$;M\"%+E%#;M\"$+M!';I+$+M!$+M!$+M!&[A$"
+ "([I%'+U*&+M!\"[I!%+1\"%[I$%+1\"%+E!%+E!&;E'#K=#%KA#(;=##[I!#[A!$KE#"
+ "&KE$$+E!';1,\"[9!$[=!&K5($[)!$[5%%K1(&+=&\"K1#\"[)!$+-!%[-&&[)-$;)'"
+ "$J]!#+!\"!Z]!%K!!\";%\"'*]/%[))#JI!$;!#\"ZY!#ZY!%*Q'\"ZM!#Z=(#:M##ZI!"
+ "\"ZE%\"Z9%#ZI!$*9#$JA!$J9!#Z9!#Z5\"%*1#$*I&#J%!#J=!#Z)\"&:)\"\"Z%\"#:-#"
+ "%*!(#)Q#$)Y#\"Y]!$)I$#9Q!#9U!$IE#\"IA!%9I\"#IQ\"#Y5#%9M\"$9A%\"IA!$IE\""
+ "$Y5$\")1\"%9I)\")1\"#))#\"I-!!))!$Y%'$)5$#Y)##X]!\"8])\"I!$\"8M!#(I#%(U+"
+ "$XM$#HM%\"HI!\"HE!#(I'!(=!#89%$8A#\"89!!H5#\"X1##8-(\"81!\"8E#\"X%#\"X!#"
+ "\"'A\"%7U#$'Y)!GQ&$'U#!GY!\"W]#\"WQ!!(-!\"7]!#8%%#()$#H!$\"X-#!X1!#H9#"
+ "%X9'#(=#$X9(\"XI\"\"8M##(I#\"HI!#HM\"\"HA%\"HU!\"(]\"$HM)#8Q$#(]&#I!\"!)%!"
+ "$9%%#))##95!#I)&$95($95%\"Y9\"$95%#I=!$IA#&)5,!YA!\"95##9I!#IM!%)Q'"
+ "!YQ!#Z!\"%IU''9Y+#J!!#J!!#J!!\"I]##I]!%:)%\"Z-!$:-#\"J)!$Z5&#*9\"!Z=!"
+ "#J9!#J=!$J9!#Z=!\"Z=!#ZQ!#Z9\"\"*M!$*Q\"#ZQ!#ZI\"&:M!!ZQ$\"ZE!#JI!#ZY!"
+ "\"*Y\"\"JY$&*]'$+-\"$[!%$:U##[!!%[))#[%!#[9!%;)'\"[)!$;-##[E!%+1&&;1#"
+ "#[5!$;1\"$[5!%;5##[=!%+A!%[5$$;A\"%+E!$[5!%;=\"(K=$&[A)#;M#%;A\"\";Q\""
+ "'[E))+5+\"[E!$+E!&[-!&[E!&KM(#[E!(KE($[9!'[I!&+9&%[E!$[E!%KQ#&;M\""
+ "$[I!'+U*%+M*&;Q'#[E!&;M#$[I!%+Y!%KI#'+I*%;M\"#[Q$%;I\"$[I$$[I!$;E\""
+ "$[I!$;E\"(+I.$[I!%[I$#[E!$[I!'KA(%+E!$[A!$[E!$[=!%+=\"%;=\"![=!'+9\""
+ "$[9!%[1!#[1!%[5%\"K!$%[5$$+M!#[1!\"[1!\"K)#%+1&(+1'#[)!&;%,#[%!#[%!"
+ "\"[-!#+!\"\"ZQ!$ZY%#*Y,#:Y#%*I\"!*Q!$*Q\"#ZU!%*Q##ZU!#JQ$$*M\"#JI!#*Q\""
+ "\"*Q\"\":A\"#ZA\"$ZA%#Z=!\"Z=!&*9,$Z5&#J%!$J1%$:)$%*)'$*%#$Z)#$*)#\"Z-!"
+ "\"IQ$$Y]*#IY!\"J-$&9U-\")U%$9Q!%YM$#YY\"%)M$#YY\"$IE#$)A!#IA!\"Y=\"#Y5&"
+ "#)5##I5%#I1%#I!#\"H]!\"I%!#I%##Y)##(U!#X]##(]##(Q#\"HY!\"XQ\"\"XQ%#(E!"
+ "$8Q($(I$\"HE!#8A%!X9!\"XI\"#X5$\"89#\"X5\"\"81!#(-,!8-\"#(-!\"H5*#8!\"#7]#"
+ "#7A#\"G=\"\"GI#\"7M$\"WQ#\"7U!!7Y\"\"8)!\"W]#\"7Y#\"8%!\"89$\"H1!\"X%%#(5$!H9#"
+ "\"X9\"\"H9!#HA%\"XU\"#(A$#HE\"#(I#\"I)$#8I%#XI&$(U'\"8U!\"8U#!)!!!(I!#Y-#"
+ "#I%\"#HU\"!))!\"Y-\"#)1&\"Y%\"!Y5!$Y9$#)=#!)=$#YM##9=!\"YE\"%IQ#%)E%#YM\""
+ "$IA#\"IQ!$)U#$)U#\"YQ!\"9Y&$9]'$9]$$J!%%)](':!&#J)!#Z1\"$Z1\"!Z-!&:5!"
+ "#J1!%:5!#J9!\"Z=!$ZA%#JA!#Z1\"\"ZE!$JI$#ZI\"#JI!$*Q\"#JM!%*U'#*E\"#*U%"
+ "#ZY!#ZU!%J]!#:Y'#Z]!#Z]!$[5!$[!!$Z]!#[%!#[!!#ZY!#*U)#[-!%K)($K-$"
+ "$[1!$;1\"#[%!![1!$+5\"$;=\"%;)#%+=!$;=\"&K%,&+=\"&+1\"%+=%&;E\"$[=!%;A\""
+ "$[E!&;A'$[I!$[=!$[A!$[A!#[I!%[=!%+I!%+E!$[I!#;=\"$;E\"%KA$$;E\"$[E!"
+ "\"[I!$[E!$;9\"&+E&%KI##;M#$[A!%<!\"%KE$%;A&%;E\"%;E\"#[E!%[I$$[A!'[I("
+ "%;E\"&K5($+A)$+1!'[I$\"[A!%KA$$[1!&+=&%K5$&+=\"&;9'$[=!$[5!%;=\"'+5&"
+ "#[9!&[9!\"[)!%+-*%+1\"$;1\"$;-#$+-\"$K)'$+-!#+)\"$+%\"#[%!%K%$%[!)$[!!"
+ "$;%##Z]!#Z]!$*]\"%ZY&\"*U%#ZY!$:Q$#[-!#:U##ZQ!!*M!#ZI\"$:I#\"*A\"#ZE!"
+ "\"*I\"$ZA&#J=$#J=!#*9\"#J-!\"Z=!$Z-#!*1!!Z%!$*%*%Z!*$*%#$:-#$IQ&&*%!"
+ "%*!(!YI!$I]\"%YU$%IY&#IU\"$9M%$9M$$9I%$)E$$IE%$IA#$IA&#))##Y=&\"Y9\""
+ "#))##I1%$)1!\"I1!!)%'#Y%##I-\"%Y%\"#XY#!9!\"#(Y!#(U#%HU%!HE!#(U##(A!"
+ "!(5!#(A##(M#!(I!#(A!#(9!!H9#\"XM\"#85\"#(-$\"X%##H))\"H)!#8!%!WY!\"WU%"
+ "\"'E#\"'I!$WI!\"WQ#\"7Y!#7U#\"7U!\"7]$#W]'\"H!\"\"X!#!H%#!()!$(-\"\"8)!\"H5\""
+ "\"H5!#H9(#(9!\"H=!#8A$$8I)\"HE'\"8I#\"(U%#(]#%HQ($8](#8U'#(U#%Y)%\"8U!"
+ "#I!#$Y!%\"I-!!I!%\"I-!!)-'#)=##9!$#Y=##YI#$YE#&9A#$I1##9E!#II!&II$"
+ "#YM##Y=##)Q#&)Y!#)I#!YY!#YY\"#)]##J!!%J!&$J%&%*!'\"J)!$Z)&$*A\"\"J)!"
+ "#J1!$:-!!ZE!$J9%$:9#%JA)#J)!#ZE%!ZA$$J=!$J=%%*I#$ZI%%ZI\"#ZM%$JM!"
+ "#ZQ!#ZU!$+!\"$+%&$J]$%*Y&!*]!$;-\"#[!!$:Y'%*]&$[!%#ZU!#[%%%[1!#ZY!"
+ "%;!'$[9%#*]%![1!%K5(#[)!#;E\"&+%\"$[-$%;1'#[9$%K=#$K9$$[=!&J]!&K9("
+ "$[=$%[9!&KE$&[A$%[=$%[A$&[A!%;A\"$[9!&;E'%KE#%;1\"\"[A!#[A!'+A*\"+M!"
+ "$[=!$[E!&[I$%;E\"&;I&\"[)!%;Q\"%;A\"$[=!%;A\"%;E\"&;='$+A!%[=%%[=!%+Q!"
+ "$[I!'+=\"$[A!%+9\"$[=!&+A&(+=\"$K9#$+9\"(;1(%;)#'K9)%+5!$[5!$;1#%;5'"
+ "$+)\"#[5!#[-%#[-!![-$$[-!#[-!#K)##[),$J]$$;%\"#[!!#ZU!#+1-%[%&$+%\""
+ "$+%\"#JI!#JQ$\"*Y!!*]$#Z=\"'K!!$:Q$%JY$$JM!$*I\"$JA!\"JE'\"Z9!\":A\"#J=!"
+ "#J9!#Z=\"$*9\"#J9!%J%*#ZA!#:1#\"Z5!$Y]'!*%!\"J%!#Z)\"!:%\"!*!!&*%!$)U#"
+ "#YM#$*%#%)E'$9](#9Q!$YM'%9M)#9A!#IE!%IE#$)E!$IA&\"IA!\"YM\"#YA#!I)#"
+ "#I1%#91$\"I%!!)-!\"I1!$)!$#HY\"#)%$!(Q#!XU!\"HQ!$XM\"#(M#\"8U!#(M#\"(I\""
+ "#H9&\"HQ!\"XA#\"XA%$X1&#W]$\"H5\"\"X)##8-%\"7Y!#H)%$H5*#()$$8!$\"H%\"!H!#"
+ "!GA#\"WE!!WA$\"7Q!!GI!\"'Q\"#GU##W]$$'Y##H!#\"'U##(%'$(%#\"()##H)$$(1\""
+ "!H%!\"X5#$X)+\"85!\"H9!#(A$%(E&$HE'#HQ(\"HQ!$HU)$(Q'\"HU$#9!$\"8]#\")-\""
+ "%8U,#)%'%I%!#I%#\"Y-%$)-$#)1##)=&!I9##)5##)9#\"II!&)=&$9=%$IY\"$9A\""
+ "%II##YM##9U!$9M!&9Q#%:!($9Q!#IY!%:1(%)Y$$*!##J%!!*%!#Z1\"%Z)*\"ZA!"
+ "#J-!\"J1!$JA$%ZE\"$*5#$Z9\"\"Z=!%ZA#!ZM!#Z=\"'JE&#JI!!*I$!*=(#JI!(JY*"
+ "#ZQ!$*U\"$[!!#ZY!#ZU!#ZY!%ZU*!*E!#*]\"\"*M\"$*]\"%ZU)&+%\"\"ZY!$+-\"&;)'"
+ "\"[)!!;)\"#;)\"$K)$#K-$#[-!%+1&%[-!&[5-$+5\"$K=#\"[5!&+1&$[A!$K5#'KE("
+ "%;5\")+9+%[5!$+9\"#+-\"$;E\"%[=!#[A!%[A!%+=!%+=\"&+=&$[=!$[9!%[=!$[I!"
+ "&+A&%[I$%+M!%;A\"&KA($KA#$[I!&[9!$[=!%;E\"&+=\"%+=\"$+=)#[=!%K5$![E!"
+ "&K9$&+9&&;5'$KE+%+9!%;9\"#K=();A,$[9)$[)!$ZY%&+9\"$[5$$[E$%K-(%[1%"
+ "#[!!$[-!#+)%$[-!$K!(#[%!#[)!![9!';%$$+%\"$K%$$JU!$:U$%J]!#:M*$JY$"
+ "$J]!#+!%$:M#\"Z]!$ZU%$ZU\"%JE%#JM!!:I\"%*I\"$ZM)#JI!$ZA&#J5!$*E\"#J=!"
+ "#JE!&*=+#Z-\"$Z1\"#Z1\"'*),#J-!#J)!\"J%!#J)!#:%'$:%$!Z%!$J%%#I]!$9Y$"
+ "#IQ\"#9U$\"9Q##YM&#YI\"$)E$\"9I#$YE&$IE&$)A$$9I$$IA%#9A$#)9#%9-,\"9)&"
+ "#I)%\"I%!!Y!!\"I)!$9!#\"I%!%(Y\"\"8]!\"8Y!#(]##HQ%#(M##(]#\"(M\"$HI'$(E%"
+ "\"XE\"\"8A!!HE)#(9&#(5##85$\"H1!\"85!\"X-#\"8A#\"H%!$H%%\"7M!#G]!\"7Y!\"GA\""
+ "#'A)!G5!!'E%#GI'!GU!#'U$\"7Q!\"GU\"\"X%#$7Y)#WQ(\"8)!!H%%\"7Q!\"7]!\"X)#"
+ "#(1!\"8-!#XA!#(=$\"8=$\"H=!#XI&#(A$$(E$$HE!#(Y##8M!$XU'$)!$\"8I!$)%("
+ "$I-'\"I!!%(U&#9%!\"I)!#HY\"\"I%!$I1)\"I%!\"I)!$)A!!)=!#)=##Y=##99!#9I!"
+ "#YM%$)U#\"IY!%)M($)A$!YQ!%)Y($J%%#YM%#J%!%)]'$*!##J!!\"J%!$:)!#Z)\""
+ "#J)!\"Z1!$Z5\"%J-&%*=&#Z1\"\"Z5!':A!#Z=\"#J=!#JE!#ZU!%J5\"#JI!!*E!$:M#"
+ "$*Q\"\"ZI!\"JE'%ZQ-#ZU!%K!$#ZY!#ZQ!%JY!#ZY!#[!!%+!\"%Z]\"&+!\"$[!&#[!!"
+ "#+%\"#[%!$*]\"$K%$$;)\"#[!!%[-!%K-$#[)!#[-!%;5\"%[1%%;-'#[5!%;5&![1!"
+ "$;5\"\"[5$%+5\"&+E%$[5!$[9!%+9\"([)+%+9\"#[9!$K9$$[1!%[9%%K=$#[-!#;=\""
+ "$[=!&;9''KE#%+9\"';=#%;1#%+5\"%+1\"([A!%;5#$J]!$;5\"$+9\"$;A\"%[9%&;9\""
+ "$[1!%[9%&;1($[A!#[5!$K5$%[9%$K5#$;-'%+)\"%;!$$[A!#[-!&[-&&K-)!;5&"
+ "#[)!$[1%#[)!$K9$#[%!#[%!$[%!(JQ.$+!\"#[!!%JY!\"[%!\"*Y\"\"ZU!$;!\"#[!!"
+ "$JM%%:M'#ZE%\"ZI!#ZQ!$:M$$:M#$Z=%$:M$#ZE!\"JE$#Z9\"#JI!&Z9##J=!#J)!"
+ "$Z9\"#J1!#Z5\"\"J1!!Z1!#J5!$Z9&#Z1\"\"J)!\"9Y&$9]$#YU&$9]$$I]%$9Y$#IU("
+ "%9I\"\"9Q##YQ%$YM#%)U($9E$%II#%YA+#9A!#9=!$IA)%)5%#I5%\")5\"#Y=\"$)9'"
+ "\"Y-\"#Y)'\"9)#$I9\"$Y!!$X]!#)%#$(]$\"8Q##(]#\"(U(#8Q$\"XQ\"\"8E!#HE#$8E#"
+ "#(A#\"X=##X9!#8!##85%#H1&#8%\"\"89!\"X%\"#']!\"H)!!H)!!H!!$']%\"WQ#\"7U!"
+ "\"'I\"!WA\"#WA*\"WM#\"'I!\"7M!\"WI!$7U\"\"7]!#'Y$\"8)!\"G]$\"H!\"\"8%!\"8)!!X-!"
+ "#']$\"X)##(5$\"X5##8-%#(A$\"H=\"#(I##HE#$(M'$8I%\"8Q!#8I$#(M##HU\"\"I!!"
+ "$XY$\"HQ!!HY!#8]!%(](\"I1!\"I-!\"I)!#95!\"Y1\"#I%#!Y5$\"9A#\"YM!%I=*#YA\""
+ "%)I(%9Q)$)Q$$II&\"IM!#9Q!\")A\"$Y=#$)M$!YY!!)U!%I]&#J!!$Z!\"#Z!\"&*-$"
+ "&:)\"%:1(&Z-'#J)!#J1!$J5!\":)&$*5\"#Z=\"%*A'#J=!&J=\"$:9##Z1\"%JM!#ZA\""
+ "#JM!%JM!#ZE!&*]\"#*A\"$ZQ%$*Q\"\"ZY!'*U'$*M\"&*Y'\"ZY!$+!\"$J]$#[!!#[!!"
+ "%*]\"%ZY\"$[!&%JY!$[9!$+!\"$[1$#[1!$;%#$+)!#K)'#[!%#[-!#K-#';=\"\"K9'"
+ "$[1!![-(%[5!#K=#$[5$#[-!$+A!&+5\"$[5!&+5&'+E!&+1\"$[5!$[=!$+=!%;E\""
+ "&KE($[9!(+-\"&;E*$[E!%[9!$[9!%[-!%+9\"%[5$'K-!$;1#(:])';9#$[=)$K-$"
+ "$;1#$;M##[I!$+5!&[1!%;-\"$[5$$+1!%[1!$[1!$[-%%K!)#Z]!!+%!%+)\"$[)!"
+ "%[)!$K%$%K%$#+1\"%K!)%Z]%!+!!$[-!$J]$#+!\"(*]#%*E'%K!$#ZQ!\"ZY!#ZU!"
+ "#ZU!$*Q\"$:M##ZM!$JI!$:I$#ZI\"\"ZE$#ZE\"#ZU!#*I\"#ZA%$J1(&*9($JA$#J5!"
+ "#J5!$J1\"\"Z5!$*!#!Z%!#J%!#J!$$J!\"#Z!\"#IY!$9]$#J%!$)]##IY!$)]##9U!"
+ "#IU(#)E#!9M\"#9A!#9M!#YM\"\"YE%\"I5!#)=#$I=*\"I9!#91!\"I5!!Y%!#95$$)!\""
+ "$)-!$99\"#9%!$8U%!I!##(Y#\"8U!!XY$$(]*\"8Q!#HQ+\"XE\"#8E%#(E!$(E$\"(9\""
+ "\"8M!#(=!\"X9\"\"H5\"$85)\"81!\"H%\"\"X)%#H)#\"X%#$8!!$G]'!W]$#WM\"\"7U!\"7Y!"
+ "\"WM!\"'=#\"'I!#'M&#'I$\"7M!\"7U!\"WI#\"GU\"\"X!!#GY'\"G]\"!H!!\"8)!$8%$!()#"
+ "!H)!\"H-!$()\"\"81!\"81&\"89!\"H=!\"85!\"8A#\"X=%\"XA\"\"XE#\"(]%#8Y'#H=%\"8U!"
+ "%8Y#\"XY\"#8]$\"X]\"!I!##XU!\"9)#!)-!!Y1!\"9=#\"I5!!Y5!\"I9!#)5&#)-&#)9#"
+ "#YE&%I=##IM\"%IE*#IM!#9I!#9U!#IY!%IU&#)]##9U!$II&#9U!#Z%\"\":!&%)Q$"
+ "$)Y'%*)$%:)%#Z-\"$:%!$Z1&%*1#&:5%\":5#%J5%&*A'&J=\"&:5)$ZI%#JE$#JA!"
+ "$ZI%%:U##JM!$ZI&#ZY!$J]!$*Q\"\"*Y!&JE!$*U\"#ZY!#ZU!#ZU!#Z]%#ZY!$*M\""
+ "#[%!$ZU\"$JY$#ZY!#[!!&J])&;-'#[)!#Z]!\"JU##[-!$K1$$:Y##K)$$[-!\"[-!"
+ "$[5$$[9%%+-&![5!#[9!#[!!$[1!$+5\"#[9!%;1'#[=!#[-!$;9\"![5!$[1!#[9!"
+ "$+1\"$+5!$[5!$K5$$+5\"%;5\"%+=&#[9!$+5\"#[=!%K1(\";)\"&[1%$+1%#[)!%+1\""
+ "%+)&#[5!$+5%';1(#+1!#[)!%;='$;=\"%;%#%+%\"$+)\"$[!%$+9!#+)!$[9!#[!!"
+ "&+!+$[!!#[!!%JQ!#ZU!$[1!#;%#%*]\"$*Y\"#[-!$ZQ\"%*U&!*M%!ZM!%*Q#!*U!"
+ "#JA!$JI%%ZQ\"$ZI%#JI!$JE!$*E\"#J=!#ZI!%:A!&:A%#ZA!#Z9!$JI$'*-)%:5$"
+ "#J1!%*1'$J-\"$Z)&\"J-!$Z=\"!YY!&:%\"\"*!\"#)Y&\"9]#$*%#\"IU!#9E!')Q%$9Q%"
+ "#9Q!#9M!#9I!$IQ%#9=!%YA($I=&%IA'\"I=!!Y5!$)-'\"YA\"$)1$#I)%#)5&\"8]!"
+ "\"I)!%)1(#(]!#8U$\"Y!##(U!\"8Y!#8U$$HQ#\"HQ!$8M)!XI!\"8M!$8E)\"XA##85%"
+ "\"8=!%(9#\"H5\"#X1'$81$\"X-#\"8=!!'Y($H!(\"']\"#8!%!G]#!'I!\"WU#\"WQ#\"7Y#"
+ "#75%#75(!GE!!W=\"\"GQ$\"WI##GA'\"7M(\"7Q!!WU'#GY&#W]'\"G]$\"WU#!H5!$8%$"
+ "$(%##8%%$8-!!H9!%(=)#81%#H9#\"(1\"$HA)\"H=!#85$\"XI\"\"HI!\"XM\"\"Y)%$HQ'"
+ "$8U(\"Y!\"\"8Y!\"H]!\"H]!%I)$$9%#\"Y!#!Y)!&)9,\"I5$\"Y1\"$)-$!(]!#95$\"I5!"
+ "\"IE!$)A$#IA%%IM##IU\"#9I!&)I)$:!$!9M%$II\"%)U$!YY!\"J!!\"Y]$#)]\"#Z!\""
+ "$*)##Y]\"$J5!!:)\"$9]$\"Z5!!Z-!#*9\"#*I\"\"Z5!$J5!$*E&#Z9!&*='%ZI\"$Z9\""
+ "#JA!$J=!#JI!&:E!$:Q#$J=%$JQ!$JQ!#J=!$JQ%#*U\"#ZQ!\"ZU$%:Q(&Z]\"#ZQ!"
+ "$ZU%#ZY!#ZY!%Z]*&J]$#[)!#+!0#;)\"$+!\"$[%!\"[%!#[)!#[%%%+)\"$K5$'K!)"
+ "%;5'#+1%\"[-!%[1!#[-!$K!$!+-!#[1!&+-&#[-!#[-!$[-!%+-&$+-\"$K-$\"K-#"
+ "#Z]%#;)&$[-!#;1\"$[-!#K1##[1!)K1.$[5!$[9!$[1!#[1!%;)'#[%!$JU$%[M$"
+ "$;)\"$;1\"%+-&![9!\"*]\"&;)'$;)\"#[-!#[)!$[!!%[1!$[1!$[)!\"[%!&Z]\"%JY!"
+ "$Z]%#[)%$*]\"#[-!#Z]!$JY$#[%!!ZQ!#ZU!#[%$$ZU%&*M'\"ZY!'ZM'\"ZE!$:M$"
+ "%:M'!ZQ$$:I##J1!\"*E\"%*E'$:A##J1!#J=!%*='$J9%#Z1\"%:1!$J1!#*1\"$:9$"
+ "$Z=%&Z-'!:-\"$Z))$J!%&J1#%J!#!9Q\"$YY'\"J!$#YY\"%9M%#I]!$)I#%9Q\"#II\""
+ "$9U$$9I\"$)E#$)I#%)U'#9=!!I=&\"Y=\"\"I9!#99$#9-$!I1#\")=\"#I-%#9-!\"Y-\""
+ "$9-%$)!%$9%&\"8]!#8Y$!HY!#XU'!HQ##(Q##(M#%(I#\"(I\"$X5##(A#$XA&!(1!"
+ "\"89!#X1&\"8=##X1'#H1&$89+\"8-!!X%!$(%(!7M$#']$\"7Y!\"WY#\"7U!$8!)#GY'"
+ "$&]'!G=!\"G=#!WA\"\"GE#!'E!\"GI\"$G](\"GA\"\"7U!!H)!$'M#\"GI#\"GU\"#(!!#X%$"
+ "#X-!#())$H-$\"H%\"!X5$#89%%X5$\"89!#(=!\"(A\"\"(A\"\"XE%#(=!#8I!%(M&$8Q)"
+ "#8M$#(U!!I)#$HU&$8]%#9%%\"8]!\"9%#&I!&\"Y1\"#Y-&\"Y-\"!Y=!#99!#9E!!99\""
+ "\"99#\"Y=%!YA!\")A\"%YI!$)Q#(9U$#9M!#IY!\"IQ!%YQ!$9Y!$)U#\"Y]!%IY#$9Y!"
+ "$YY&#I]!!:%\"#J5!#J5!$J=!#*-\"$J9!\"J1!$*1#$Z5&$Z9\"!ZE!#J=!$J-\"$JA%"
+ "&:9!#*1\"#ZE\"#ZA\"%:E$$JA$#:Q#&JM\"'*Q'#JI!#[!!$[!!$JA%%*Q'$JU!#ZY!"
+ "#ZU!#ZY%\"Z]!#ZY!$JY($Z]%#Z]!%*Y'#ZY!&:],\"+!\"$;!\"$:Y##[%!#K%$#[%!"
+ "$;5\"%+%\"#[)!(;)(':]$#Z]!$+)!$;5&$+%\"$+5\"$+5\"#[!!\";5\"#[9!$+-\"$+-\""
+ "#Z]!%;-#$+%\"#[-!%K%!![1!#+-&&[).#[1$$[5!\"[)!$+1!$[9!![-!*+%,&+-\""
+ "#[)!$+)\"'+)\"\"[1!$K!(\"ZU$#[%!$K%$&+)+%+%\"%K!(!*]!$K!$\"Z]!#ZY!\"[%!"
+ "#Z]$!;%\"\"[!!%:Y$$JY!&K!!%*]\"#Z]!$:U#$JM!$JE!#*Q%%JQ$$*M\"$JE%#ZI!"
+ "#JA!'*=!#ZA\"#ZI!!Z=!\"ZE!#JA!#J=!%:9!!:9\"#*-\"&Z5.$:=#&ZA+$*1\"$J))"
+ "$*-#$*)#%9](%Z)*$*!*$J!%$*!'$Z!#\"J!!$YY#!)I!!)]!$)Q#$)U##IM$%)Y$"
+ "%I=+#YE#\"IE$#99!#YE#\"I=!%)M(\"I5!#95!!II#\"I1!#9-!#9%%\"HQ!$Y%'\")%\""
+ "#9!\"$)%'\"HU$#(Y#\"H]$\"XQ%#HI&!HQ&\"8M!#XA'#(I$$XE!!HA&\"XA#\"X=##X1&"
+ "\"85!\"85!\"(1\"%8--!(9!\"8)!\"X%#\"7]!!H!!\"7U!$GA&!8!\"#'Y$$'](\"WQ#\"7Y!"
+ "!'1!\"79!!'9#!WA\"#'A'!'M!\"WE*\"'A!#GM!!'U!\"WU##'Y\"\"WY-#X!(%(!$$GY#"
+ "\"X%##(-$$X)&\"X-#$(%(\"H)\"&8E\"\"(1\"#8A\"!(=!!HE&\"XA#\"XE##HE\"#X=!#X]&"
+ "&8U+!HU!$(]$#(I##(U#!Y%!#Y!'#8Q!#I%#$)-!!)1!$Y)!!)!!!Y1!#99!\"I-!"
+ "#)A#$IA#$Y5$$9A%#9E!#Y9##9E!#IE!#9I!&)A,#9Q!$)]#\"IM!#IU!$9I%$IY%"
+ "#J!$#YI#%Z)##YY&%J1&#J!!\"J-!#Z1\"#Z)\"#Z-\"$:-!#:--%:!!$*)##JA!\"ZA!"
+ "!*9!#*=\"%:=!%*A'#:A-%:=!#ZI\"!*E!#JI!#JA!#JE!$*U\"$*Q\"\"*M\"$*Q\"%:U'"
+ "$JM$%*U\"#Z]!'+!#%JI!$*Q\"$;)#%JY!'*Y$#Z]!#+)\"\"ZU!$+%\"#[!!%*]\"$*Q\""
+ "\":Y\"&ZU*$;1##[)!#[5!$;1\"$*U\"$;!\"\"[!!$K%'#[1!%;%'%K%$$[%%$*M\"%[1!"
+ "$K)$'*Y'$:U$\"+-!%[%%#+!\"$K)$$+-\"%K)(#;5\"#[)!$[5%$[1!%[%&#Z]!$*Y\""
+ "$[%!$[)!';!$%+%\"#[!%#[!!$[!&%;!'\"*Q!$+!&\"*]\"#ZY!#Z]!\"[!!$J]!\"ZU!"
+ "%JU!$:Y#$*U\"\"ZU!$*]\"\"ZY!$*Q\"$JQ!#*Q\"#ZM!%*M&$JA!!:I%$K!$\":M&#ZE\""
+ "#JE!#:A#$*I\"%JI(!Z=!#J=!\"ZA!#*9\"$Z9\"$J-%$:5#$:1#$:E$#J5!\"Z=!%9])"
+ "$:)$$*1#$)]##YY\"#*!#%)]'$Z%\"$9Y!#J!!#YU\"#J!!#IU\"#YM##)U#!YI$%)I("
+ "\"I]!$)E*$I9&$9=%\"I=!!YA!#9I!#)5##)-#$I1#\"X]%\"I-!#9-!%)%\"#I%\"#I!\""
+ "#9!\"!HY&!(]!\"8Y#\"XY\"#HY%$8Q&\"HY!$8I##(I#\"XI\"\"8A!\"HE!$H='$XA(#H9#"
+ "#X9!#(1&\"(-##(1#\"X5#!(!!#X)$!GY!\"G]%\"G]\"\"W]#\"7U!\"7I!\"WQ#\"7M!#'I!"
+ "!'1!!71$\"79!\"GA#!W9\"\"7A&!GE!$'A$\"GE%\"GA\"#'Q$#GA'\"WU#\"7]!!'Q&\"WY!"
+ "!H%#$()(#81!$H1*\"X-#\"81!\"H-!\"8)!$89)\"81!\"8=!#8A$$(E%#HE#\"8Q!!HI!"
+ "\"8M!\"8U!$(Q%%(Y&\"8U!!HY!#H]%!H]##9!\"#9%!#I%\"#9)!\"I1!!Y-!#))#%)9!"
+ "\"I5!#Y9&\"I9!$)E'#9E!$9A+\"IA!$)U#$)A##)M#$)M#$)I#$)E!%IQ#!Y]!%)U!"
+ "\"YQ%#J!!$)]#$*)##I]!$Z%&&:1\"$J%%#J)%#J9!#J-!$J5!!:1\"$*%#$:1##ZE!"
+ "%J9!%:9(#Z9!#Z=\"$JI!#J-!#JA!$*E\"\"ZE!#Z=\"!J1#!*E!#*I&&:Q$$:M$\"ZM!"
+ "%*U'':I!#ZQ!#Z]!\"Z]!\"ZM!#ZU!$:Q$#ZY!&:U$!+!$$JY$#ZU!$*]\"$JQ!#+%\""
+ "#:]\"&K!$#[%$#[!!%J]($+%\"#ZY!&JY,#K!$#[%!$;%#$+)\"%+%&\"[%!%[1!%;%'"
+ "%+%&&[%!$[-!\"[-!$;%##[)!#ZQ!$+%&#[%!%;%'#Z]!#[)%#[%!\"K-$%:Y$$;!\""
+ "#[9!$[!%#JM!$;%\"#[!!&;!#%ZY\"$Z])$:U'$K%$#Z]!%*Y\"&ZU'#K%$#ZQ!$ZU\""
+ "%:E($ZI&$*M\"$*Q\"$*M\"#*Q\"#JI!\"ZM!#ZQ!!*M!&:=!#*E\"#ZE\"%JM)!ZA!$*A\""
+ "#JA!#*A\"\"Z9(#J=!#Z1\"$*E\"\"Z9!#Z5!#Z5\"%*%#$:1!%J1)$*)'\"J)!#*1\"$J)%"
+ "$:1#%)U!#J!$$:!!&*-+$:)$$IU)\"IU!$)U##YM\"#IA!#YM#$9I$#9Q!#YI#%9I)"
+ "$IM\"#IA%&)A,#9=$\"I1!$9A%#)9#!I1##Y9##)5#!Y-!!Y-!#(Y!#H]\"$8Y%$(]$"
+ "\"8]!\"HY!\"8U#$8U(#8Y$#(M##XQ$%8I'#XI!#8I%#XA$\"X=##8E$#(=#$(E'\"H5\""
+ "\"XA#\"81+\"8-!%()!\"8%!#X-$#H!&\"X!#\"W]%#GY)\"WM!\"X%#\"WU#!WQ$!WE!\"GI#"
+ "\"79$$7-\"\"'1#\"79\"#'A$!GA!\"G9\"\"'I#\"GI#\"GI##7M%#7U#$(%(#7Q\"\"H!\"\"7]!"
+ "#'E!#X!$%']!$7]'\"X)#\"X5&\"X9##H1##X5&\"89!#(9#\"8M!$HE$\"X5#$8E)#HI\""
+ "$HI'\"HY*\"XI\"#8I%$(Q%$(]!#(U&#(Y#\"8]!%9!*#9%!#(]!\"I)!\"IE!#91$$Y)("
+ "#91!#9)!!95\"\")E(\"Y1\"!YE!#YA##Y9#$9A%#IM%%)I+#9Q!#9M!$YM##IY!%IU&"
+ "$IY&#IY!#Y]\"#YU\"#Y]\"!Z)!$Z%#$*)#%Z%'\":%##J-!%:-!#J)!#J-!#Z1\"$:1!"
+ "(*-*#Z)\"%JA!&J9\"#Z9\"#Z9\"%*=#$JI%!*A$$:Q$#ZQ!$JM$#JE!\"*I!$JI!#JE$"
+ "&:=!#JI!#J=!#JM$#*I\"$*Q\"&*Q'%*M#%*Y&\":]\"#ZQ!$:U##ZY!#ZY!$ZY!$ZU\""
+ "%*Y'\"[!!\"JY$#[!!$[%!\"J]##*Y!$*Q\"%+!&!K%#&J]!#[!!$ZY\"#+!\"!+!!#[!!"
+ "$[!)#[-!\"[1!$Z]!%;%'#Z]!\"K!$$J]'#[!!%;!'#[!!%:]'![5!$K!(#*]%\"[-!"
+ "$Z]%\"ZM!$:]#%+-)\";%&&Z]\"#;!\"\"ZY!%ZQ\"#[!!$*Y\"&*U'$:U$%ZU%$K)$\"ZY!"
+ "#ZA!#JU$\":Q\"$*M\"$ZM%$JY!#JM!%*I\"%*I*%:=$$JQ!#ZM!%:E$#JE!$JA!#J9!"
+ "#J-!#J1!#Z)\"%*5#$JA!#Z5\"#J)!$J9!$*1\"$:-##*-\"$*1\"$Z)&$J%%#J)!#J!!"
+ "$Z!##IY!#J!!#9Y#$)U#$Z!&$)U##IU\"#)I#%9Q(#9E!#9E!#9I!$9I%&IA$%YA("
+ "!)=!\"I9!!IQ#\"I9!$95\"!Y-$\"I-!!Y1!!)5!#91$#Y)#%I)($9-\"#I!##(]!%(Y\""
+ "%(Y%&(]-$HU$#(I!$H]#!HM!\"8I!#XE$\"XE\"#(A!#(E##(=!\"85!#X9'!H9!$H-%"
+ "!89\"\"X1%!GU!$8-)\"X)&#H-##'Y'#7](#7Y%$W]&\"7U&!7U\"!WI!\"WI!\"GE#\"7=$"
+ "#W9%!G)!\"'9#\"GE$\"G5\"!W=!\"WQ&#G-\"\"GA#\"GM\"$'Q##'I%#7]#$'Y&#WU$$'Y%"
+ "\"7Y!!H5#\"8!!#7]%\"H-!#H5&$89)\"8)$#X1'!XA!$(9\"#(=$%(1$\"HA$\"HA!\"XQ\""
+ "$(A%$HI##XM'#HQ\"%8U)#XM'#XU#\"8Y!%8Q'#H]%$(U$$8Y%#))#\"I!\"#X]&$)-'"
+ "!)1!#I)%!Y5!#95!#I9%$Y='#9I#%IE*%IA$&)E,#9I!%YM!%9I%$)M##9M!#YQ#"
+ "\"YQ\"$9U$')U*&9M#&)Y$#9U!%9])&*%$#J-!$*%#\":%\"#Z%\"':5)\"*=!'*1!#:1#"
+ "\"J1!\"*1\"'J9/#*5%#J9!#J5!#J=!$:=$#J=!!Z=!$*=\"\"ZE!#Z5!$ZA\"':I)$*5#"
+ "!ZA(#JI!#ZY!#ZQ!$ZA\"%*M\"#ZU!!JU'#JI!%:Y$#ZQ!#ZU!&JM)$*U\"#*U\"%ZI'"
+ "$JI%$JY!$[%!'JY%$ZY%#*Y\"\":I#%K%$$+!\"#[%!#ZU!$*]\"\"JY#$*]\"#:Y#$ZY\""
+ "!*]$$*]\"#ZY!#Z]!#ZY!$[%%$:]##Z]!#Z]!#[!!$:M$$K!$$J]!#Z]!#ZU!#:]#"
+ "#ZY!!:Q\"&:Q$$Z]%#ZY!%ZU-$ZU%$:Y#$JU$$JQ!&ZY\"%:]''JQ&#JM!%;!##ZQ!"
+ "#JA!$J=!#JI!\"Z9!#JI'$:Q##JE!#J9!%ZE)#JE!$*5\"#JA!#ZA\"%JE(!ZA!#Z1\""
+ "$J=%&:-\"#ZA\"#J5!!Z5!$*1#\"J1!#J-!\"J)!&*-%$*)#$Z=&#J9!#Y]\"$*!#$)Q$"
+ "$Y]&#J!!#9U!$I]&\"YU($9U*%II#$IQ%#9M!#9M#$)I$&YQ(&9E-!YE!#9I$#)M&"
+ "$I=*\"I9!#Y=#\"I=!!Y=!$I-#\"I-!&Y--#)!#$I)*#9!!#I%#$Y)'#(U!$91\"#HU\""
+ "\"HU!#XU&\"Y)+#XA$\"XM\"$8A#%(E&\"8I!$(E'\"8A!%8=$#H=&#(5!\"X%#\"(1#\"(5#"
+ "\"8)!\"WY!\"8-!\"H1'\"8%!#X!'#7M&\"7Y!\"7M!#'Y$#WU\"#'M$!WM!\"GA#\"WE#\"7A#"
+ "\"'-!!GA#\"'9#\"7!$\"WE!\"'9\"#'=%!GI!#'I&\"GE$\"GM\"\"WM#\"'I!\"WE##GY)\"7]!"
+ "#7Q%\"X!#\"H%\"#H!$#X%'\"8)!\"H%'\"X-\"!H5!\"8!##X5$$(9%\"X%##X=$\"HA\"#8I%"
+ "\"(Q%#(9#\"8I!!(Y&\"HQ!\"H]$\"8U!\"XU\"#XY!\"8Q!#(]##Y!$\"))%$)!$%I)'\"I-!"
+ "!Y-!!I9&#)5#!Y9!#)5#$99(!Y9!#I=\"!I=&$)9'')A.#9E!#II+$)I&$9Q%$9Q$"
+ "\"IQ$!)Y!#9U$$)Y##YY\"%)Q$$:)!&Y]$$)]#$:-##9U!#Z%\"$J%%#Z)\"#J)!%:-)"
+ "$Z-&#Z-\"#:1#\"J1'#JE!#J5!$*5\"#J9!#J=!%:=(#Z=\"#JA!#Z9!$*5##Z=%#JE!"
+ "\"ZA!\"ZM!%*M\"#ZI!#JE!&*Q'%*Q#%ZU&$*U\"$ZI%\"Z]!#ZQ!#ZU!%*Y\"!ZY!$:Q#"
+ "\"ZU!%ZU!$*U\"#Z]!#:Q'%JY)%*M'#JY$%:Y$$J]$%+!&#JM!$;%##Z]!$ZY%\"Z]!"
+ "$JY$#*Y\"$*Y\"$[!&%:U'$*U\"$ZY\"#[)!$JU$#Z]!#[)!$JY!\"JY'$*Y&%JU!%;!'"
+ "$K!$\"ZU!#ZU!\"ZI!%JY%\"[!!#*=\"%ZQ%$*Y\"#JI!%:U(#ZQ!#JE$$:M#$ZE\"$JM%"
+ "\"*E!$ZM!\"ZI!%*Q##ZE\"!ZY'#*I\"#JI!$:-##JA!$*A\"&JA*$J=!$*E\"$Z9\"$J9%"
+ "#J=!#:9#%J)\"#J!!!Z1!$:-!#Z)\"#Z1\"\"*)\"!Z!!%IY&$:%!\"J)$$:%$&J)#$9U$"
+ "$I])$J!($*%'$9]!#Y]&!99%$YQ'#YY\"$YI&%YI!$)=!#9E!$I1##I9\"$YI'\")=\""
+ "%9=#\"I1!#)5#$I%&#9)$#9%$!Y)!\"I1!#I)%#9%!!9!%$(Q!\"8]!\"8]!#X]&\"XU\""
+ "$8M&\"8Q!\"8Q!#XM!\"HA!#HI#$(E(#(=#!(A#\"H5!#(=$\"(-\"#H-)\"85!#81%\"X-%"
+ "\"X)#\"X)\"\"8%!\"H!'\"G]\"#8!%\"X!#\"H!\"\"7E!\"GM\"\"7M!\"7M!\"X!#\"'E#\"'A\"\"'A#"
+ "\"71\"\"'-#\"7=$\"7%&!G5!\"79$\"W9&!G=%\"GE%#7E(\"G1%\"WI!#WM'\"WM##'A%#'I\""
+ "#X!\"\"WY#\"7]!#(!$\"X!#\"8%!\"X!!\"8)!\"X=#\"8)!\"X9\"\"X9#\"8=!#(9#$(9'\"8I#"
+ "#8A$#(A#\"HA\"\"HI!#(A'#(=$\"8U##(U##HU\"\"HY!$(]*\"8Y!\"HY!%9!*#X]!\"Y)\""
+ "!Y)!#Y-#\"I9!\"Y-%#)-#$)E'$I5##99!#)=#\"YI!#9I!#II!#9=!#YE#\"IM!$II%"
+ "$99%$IE\"#IM\"$YM#\"I]!#IQ\"!)Y'%J%&#I]!#9]$#J!!$J)!#*%\"%*%'#YY\"#Z%\""
+ "#J)!#Z-\"#Z!\"$J-%$*5#$Z1&#J)!#:5#\"J1!#J5!!*1!$:5##J=!%ZE)$JA%#J=!"
+ "$:A#&:A%#:A#!*E$%ZE&$J=!%*M&#ZQ!#ZI\"$JE!%:Q$%ZI&&*M'$:Q#$JY$$JQ!"
+ "#ZU!\"ZQ!$*Q\"#ZU!#ZU!&:Q,$ZU\"(:Y)!ZY!#ZU!$*U\"$:U#$*U\"#ZY!#*Q%#ZQ!"
+ "$:U$!+%!%Z]!\"*]%$ZU)&JU!#ZY!(:I%\"K%#%ZY!%Z]*%ZY%$:Q##ZU!$:I$$ZU\""
+ "#*Q\"$ZQ\"%JQ!%*M&#JM!$*Y\"\"[%!'Z9$%ZU\"%*I\"&ZM.$JE$%*M&$:M#\"ZQ!$JU!"
+ "$ZU%#*A\"%:9!$*Q\"&JE!':A!\":A&$:=#%:=%'J=*#JA!$:5'%*9'\"Z9!&:-!#Z5\""
+ "#:9##J5!#J-!%:)!#J-!%*-##J!!!Z1!$9]!#:!#$J%%#J!$$Y]#%Z)#$9Y!$)U#"
+ "$IM&$*!#$)U#$YM'#9Q!$)Q##YQ\"&)I)$YI$#YE#!Y5!\"I5!!Y=!#I=%$Y=!\"Y=\""
+ "#I9\"%I9-%91,%91#\"I1!#I!%#))#%I-!!Y!\"$))$\"8U!$8I&\"8Y!\"8M##(U##8U$"
+ "!XQ$\"XQ\"#(I##(I!#8Q$!HA!\"8I!\"XA#$HM)$(9+\"H5!\"X=#\"8E&#X1$\"X-##8%%"
+ "$8))\"8%!#H%&\"X!#\"7]!$8!!\"WY!\"WU!%'A(\"7Q!\"7Y!\"GI#\"7I$#7M'$7E$!GA!"
+ "\"'9!\"7-$\"G)\"!W9($7%!!GM!!G9!!W5+\"')\"\"'1\"\"GE%#GA$\"'9#\"7U!#'Q$\"7Q!"
+ "#7]%\"WY#\"7]!\"X!#\"X!#$WI#!H-%#X%'#8!#\"8-!\"81!#(1'\"89#%8-*\"X5#$H1\""
+ "\"8E!#8=%!HA!\"XI\"#8A\"\"HU$\"8M!\"HQ!\"8Q#\"8Q##(Y##8U$\"8]!#9-!$9!&#I5\""
+ "#I%##))##I)%\"Y-%\"I1!#)1#\"I9!\"Y1\"\"9=##99!#)=#$Y=#'YE&!99%#99!%YI+"
+ "%IQ)$IM%$9E\"#YQ#%)Q$#9U!#YY\"#9I!$IU\"%YY$$)U'&9U&$)Y#%J!\"#Z-\"$9Q!"
+ "&*)!$J)%%*1'#Z-\"\"J-!#J-!#J1!%*1'#J)!#Z=\"#J5!$*=\"\"Z9!#:9#$*)##:=#"
+ "\"Z1!!*5!$*A\"':A)$J5%$J9!#ZQ!%:I$%ZE\"$:A##ZE!$JA%#JI!':U%%JI!#JM!"
+ "%ZM\"#ZE\"\"ZM!\"ZI!%Z]\"#Z]!$J]$\"ZQ!$*Q&$ZU!$ZQ!$:Q##ZQ!%*I#$:Q$#ZA!"
+ "&:Q(#ZU%#ZQ!%:U#&:Q($ZU%$:M#\"Z]!\"ZI!%+!&\"ZQ!$JQ%$JI!#JM!&:U$#ZQ!"
+ "&JU!%JE%%:I$\":Q\"\"JQ#$:U##ZA\"#ZU!$JA$$:E#$*A\"$ZU\"!*=!$Z1\"%*I#\":I#"
+ "$*I\"#ZI\"%:A$!:A\"\"Z9!#J=!!*=$#JI!#JA!#Z5!#Z5\"#*5\"$JA$&J5*%:5(%*E+"
+ "$:1!$*)#$:1!#Z-\"%:1$$:-#$9]!$)]#%)Y'#*!#\"YU\"#Y]\"$)]#$9Y!#YM\"#9I!"
+ "#YM#$I]($9U!$9]!#I]!%YM$#9I!$)Q$$)A##YA#$II%#99!#)9##99$#9A!\"I1!"
+ "\"I5!#I1%#91!\"9)#\"I-!!91(\"I!!!I9##9!!!Y!$#8]'#HY%$(]-#XU&%HU+%HQ%"
+ "#HY%#HM&\"XA#\"XA+\"XE##(I##HI%!X=$\"XA#\"XE\"\"H)!\"8-!\"X9\"!8-%\"H5\"\"X%%"
+ "!H!!!H!!\"7U$\"X!##7Q&\"H!\"\"7Q!!'I#\"7Y!\"WM!\"7=$\"'Y(!G=!!GA#\"GA$\"79$"
+ "!W)!\"7=#\"G)!\"'-#!W-$\"W5#\"75#\"'1#!G=!!W=!!'A%\"'E##7M%!7Y\"#7M%\"WM#"
+ "\"7E!\"GQ\"#W]$!WY\"#H!!#8!%$8!$\"8!!!H!!\"H!\"#H)##X-$\"H-!\"H5\"$X1%#(='"
+ "\"XI\"\"XM\"\"XA#$8E)#HE%!HQ!#(M##XE#%8M##XU!\"8U#%8Y!\"8Q!#HY%\"HY!$8Y\""
+ "#)%$#9)!\"I%!\"Y-\"#)-#\"Y%#$)='\"II$#)5#\"Y9\"\"Y9%$)='#Y=\"$)E##Y=&#9M!"
+ "$YE'#9E$#IQ!!9I(#)M#\"IU!#9U!\"YQ!$)M#%YM+$IM&%)Q$%J%*#I]!&*!!$:!!"
+ "#*!#&J%'#I]!$*)#\"J)!#J)!$J-%#Z-\"#J9!#J!!\"IY!$J5)&:5!#J5$&:9%%:9%"
+ "!*=!$*9#$*=#%*9#$Z=)$Z9\"$*A&%*=&#JE!$:A#\"ZA!#J9!$JE!#ZI\"!ZE!#:I'"
+ "%:=($JI!\"*I\"#*I\"$:I$$JM!%JM)%ZQ\"$:M#\"JM'$ZU%#J9!$JY$%ZI*%JI($JM!"
+ "%ZI*\"*E!#ZE%#JM!$J=%\"ZE!\"ZI!!:I\"#ZM!$*=\"&ZU-%ZQ*%:M(&:M!#ZU!$:I#"
+ "'Z]'%JU$#JI!#*I\"$J9%$Z=\"#ZI!$*I\"#*E\"$:I$$*I\"%JA%#*E\"#JA!#JA!\"ZA!"
+ "#JA$$*5&$Z=&%*='#J=!%*=&$*A\"#J9!!*9!%*5##Z5\"#J5!#J1!%ZA)%:1!#J)!"
+ "#J%!\"J)!$Z=\"$Z!#%*%'\"J%!\"Z)!$Z!#!J!#$*!#'I]$#II!$*!#$YA'%9Y%$9U!"
+ "%YM(#IE!$YM*#)I\"#YI\"!YI!$99%$9M$&I)(#9E!%)=\"$9A+#)=#$9A%#)1#\"I5!"
+ "\"I-!\"I-!\"))\"\"91#$)-'$)%$$9%##HY\"#)%#$8]%!HY!#(]!\"(]\"#HU%#(M#\"XE#"
+ "%XI/#XI!#(I$$(E'#(]!$8A)#H-%#X1%\"()#\"XA#!(9!\"X1#\"8-!\"()\"!H1!$(%("
+ "\"7Q(\"X!#\"X%#!H!!\"7U!#7Y\"\"7Q!\"GE\"\"7M!!'M&$GI%\"'E#\"'A#!G9!!W=\"!79\""
+ "!G!!#'!'\"')\"!G-!\"'-#\"'1\"\"G9\"!'5#\"'=#!W9\"\"GI$!G=*!GE!$']#\"7E$\"WI#"
+ "$7Q*\"7Q!#'M$#GY&\"WY#\"8!!\"X%(#8!%\"(!%!H%!#H)$\"8%!#(1$#(1##(9$!HE!"
+ "#H9#\"89!\"H9\"$(A%\"(A\"%(E&!XQ'$HM&!HQ!!XU$$8Q#!(Y#!)!!!8]%\"Y!%#8U'"
+ "#9!!$Y!$#Y)##Y)##9)$!)-!\"I1!!Y1!\"I-!#)I#%9%&!Y5$\"IE!#99$$)5$!9Q%"
+ "$9E\"$9A$$)=$&YI,%)9($)Y#%)A'\"9I#%)Q!$IU%$IQ\"#Z)\"#IY!$)Y#$I]&#9U!"
+ "#J!!$J-%$J!!#Z%\"$9U!#J)!$J1\"'J)$#J-!\"J-!#J=!$:1##Z1)#ZE%#J5!#J5%"
+ "\"J1!$JA!$*5\"%:)(#Z9\"$Z=&#*9\"#J=!\"ZQ$#JA!#JI!#J=!$:Q#$J=!$*E\"#JE!"
+ "&*E(#JA!#*E\"!ZQ!%:9($*I&#JI!#JE!!ZI!#ZU!$:E#\":I#$*M\"#JE!#ZI\"$JM!"
+ "#ZE\"#JM!$JA!%*I\"$JI%\"ZQ/&J=\"#ZE\"\"ZI!#JI!#JE!$*I\"%JM!#*E\"#*I\"#*I\""
+ "%*U\"$:Q$#JM!$:M#\"ZA$%*Q&#JE!%*A##JE!%JE-$ZA\"#JI!%:A$$ZA%#J1!!Z=!"
+ "#*A\"\"*9%#*1%#*-\"#Z1\"#*9\"#:)##:5#\"Z5!#*9&%J5)\"J1!$:-#\"*)\"\"J-!\"*%\""
+ "#Z)&$J1%#Z%\"%J-)\"J)!%J!\"#9Q!%)]!$*!#%)Y!#J)$#9U!!9U\"#YQ##9=$#IU\""
+ "#9M!#9M!!YM!#YA&!YE!\"IM!#YA#$)5$#Y=##9=$%I-'\"I5!$I5#\"IE!\"91&#91'"
+ "\"I!!\"I-!$8]\"#Y%&$)!!#91!#8]!$(Y($X]*\"XE#!XY!\"XQ\"!I!#!(Y!#HQ&#(M)"
+ "%H=.\"8I#!8Q%#HE&\"8A!#XA#\"H9\"\"(9%\"X5\"#(1&\"(1\"$X%%\"X-#\"()#\"7Q!\"X!#"
+ "$(!+\"'U#\"7Y$\"X)#!GU##WM'\"WQ#\"7Q##7I#\"WM#\"'A#!GA!\"WA%!G9!#'='\"')#"
+ "\"'!#!G1#\"W5%#'5$\"')!\"'1!\"'1'#'A'\"W5#!G9!!79\"!W5\"\"'A#\"'M#$'9)!GM!"
+ "\"7M!\"'Q##'U)#GY!\"7Y!#'Y$\"X%#\"8!!!7]%\"81!\"8!!!()!#(-'!(-!\"7]#\"X5#"
+ "#(9##(=##81\"\"81!#(A$#XE#!HQ!#HI%\"HI!#HM%\"HQ!!HU!\"8U!#(Q!\"8Y!\"8U#"
+ "\"8U!$9!%#I%#$9)%#9-!#9)!#9-!%8Y-$)1!#)1#$)A!#)9#\"I=!#Y9##YA##)=#"
+ "%)E!\"I=!$)A#')I\"$9Q%#II\"#IY!$)M$#)I##9Q!!IM#$)U#')U-\")Y\"$)Y#$9Y$"
+ "#J%!%)]'$*!#$9Y$#IY$#J%!$)]##Z%\"%:)%#J-!#J-!'*9!$J%&%:-%'*1!#Z1\""
+ "$Z-##Z-\"$J=%$*1#$*5##JA!$Z=&&*9$\"Z5!$Z=\"#Z5\"$Z=%#*A\"%*-'#JA!%ZA)"
+ "#ZA\"$ZA%$*I\"#Z9\"!ZE!!*I$#*M\"#JA!%*E\"!:5\"$JE(#Z5\"#*I\"$:E$%JM!%:E$"
+ "$:I#!:M%$JI!%JI!$JA!#JI!#ZQ!\"Z]!#J=!#ZU!$*=#$JI!#J=!#*=\"$JE%#*Q\""
+ "#JA!$JA!$JA$$:I##ZQ!#:E#$*=\"%JA!$*1##:Q##ZM%#ZA\"$JA%!ZE!#J9!\"*9\""
+ "#J1!\"Z9!&*-$#Z5\"#J9!%:5!$:1$#J-!%:1!\"J-!$:5$&*-%#Z1\"#J-!#J)!%J!&"
+ "$J%!#Z%%$J!&$YY#$J!\"%9U(\"Z!%%9Y%#J!!%)M!\"IU!$9U!#IM!&)Q,#)M\"#9Q!"
+ "\"IA!\"IM*%9U)\"YE\"#9I!$)A!#9A!$)9!%YA+#99$%IE##)5#\"I5!#)1#\"Y1\"!Y)!"
+ "$Y-(\"Y)\"$9%\"$)5!#H]\"\"I!!$H])#H]+&X]-\"8Y#\"XU\"\"XM\"\"8Q!!HI!#8M%#XM$"
+ "#XQ!#(A$!X5!\"89!\"8=!#X1&!H9&\"85!!H9!$X-##(-$#()!\"8!!\"8%!$8)$!G]!"
+ "$7Y$\"7Y!\"'E!!'M!\"7Q$$7Q$#'M$!GE!\"'M#\"75!!G=!#'I'\"'=%#'A'!W5\"\"'9%"
+ "\"&]!!FU#\"G%%\"'%#!'!##'-'!W5\"!G-!\"'5\"\"71$\"79$!G1!!'9%!W=!\"GE$\"'=!"
+ "!GI!#7E##7Q&\"GQ\"\"7U!!WY!#7Y%\"H)\"\"7]!\"8%!\"X%##H)#!H)!#85%#8=%\"H5!"
+ "\"85!#(=#\"(A%$XA\"\"8E!%(A!%(E)$HE'#8=$#(I$\"(I\"#9!!\"XM\"\"XU%#(U#\"XU("
+ "!XY$#8Y'\"8]!\"Y!\"%9%'$9)&$I)##))#$)-$#)1#&)-)!Y1'\"I-!!91\"#Y5&#)5#"
+ "#I=%%Y5(%)A%#Y5#$9M%$)E!$II&%)I(%)M('9M$#II!%)Q(\"YM!$)U#$YY&#9Q!"
+ "\"9]#!YY!#)]#'*!!%*!'#J!!%:)!%*%'#J)!#IY!&:)\"#J%!$:-!\"*-%#J-!$*)#"
+ "&Z-$#J1!#J1!#ZA!#*5%%J5%#J5!#Z5!#Z9\"%:9%#*A\"&*9+$:9$$ZE&#ZE\"#ZM!"
+ "$Z-&#J9!'J='#J=!$Z=\"#J=!%JM)$J=!#Z=!#JA!\"ZE!$*A#%*=#&:1)#J5!#JA!"
+ "$JA$$JI!$ZE\"#JE!\"ZE!&:=,#JE!'ZE+#Z=\"%ZM\"!ZA$$J1%!ZI$\"Z9!\"ZA!$ZM\""
+ "$JE!$ZE)#ZE!\"ZA!%*-'#JA!\"Z=!$J-%%*E#\"Z=!#J5%$*9##JA!&*9$$J9%#J5!"
+ "#9]#!:A\"#J9!\"J1!!Z%!\"ZA!#J-!\"Z)\"%Z9\"#J)!#J)!#Z)\"#J)!#J!!%:-!%*%'"
+ "\":!#$Z!#%*)'#9Q!&:!,$I]\"$Y]#\"IY!$)U##9U!#IE\"#IQ!%YM!!Y=!$9M(%)I("
+ "$)9$#IE!$II&$99\"$)E!#Y=#!)I'#Y)#!Y)!\"I9$#95$!)1!!)9!#9-!#)1##))#"
+ "#9)$#I%##9-!$HU'#)!#\"X]\"!H]##XQ#!H]&#(Y##XQ'\"XQ\"#HM#!(I##(=!\"8E!"
+ "%8E$$8A)\"89!\"X=#$X1#\"85!#X5$$H%(\"X1#\"8)!#()$\"H)\"!8!\"\"X%##7]\"$8%$"
+ "\"WY##WY'\"7Q!!GQ!\"WQ##7M%#7M%#'E$!GE#\"GA\"!WA\"\"W=(!'9!\"7I$\"71*#6]#"
+ "#V]&!VY$!W)\"#FY%\"G!%\"G)%#W1(!W%$\"W5#\"'1#\"W9$!G9!#'1$\"'A#!GA!\"'A#"
+ "#'E$#'=%!GM!$W]&#H%!\"7U!\"WU#!GY!$7]!!WU!\"7Y!\"X)#\"81!#H)!!(1&$']\""
+ "\"X1#$(-#\"X9#\"H=\"\"(='\"X=\"#HA\"#(A#\"XE\"\"8M!#H=&\"XM\"#(Q#$XQ!\"HQ!\"HU!"
+ "#)%#\"8Y##9%'$9!%#(Y!#9!!#9%!#I!\"\"I)!\"I9!#I-\"\"Y1%#)1#$Y5'#95$\"I5!"
+ "#)9##9E'#)A#$YI&#9I##Y=##YE#!YE!$)M#%)I(#9M!%)M!%9=%$)M##YQ\"$YE'"
+ "\"IQ!$YY#$9U!%)Y+#J1!#I]!#I]!#Z9\"!)]!#Z%\"#J)!$)Y#$:%!%:1%#J!!$:!!"
+ "%:-!'*))$:-$&J!'\"J1!$*1\"!*%$&:=%$J5!#J1!#J=!!*9!#J9!(:9&%Z1'#J9!"
+ "#ZI!#J9!\"*5\"#JA!$J9%#Z-\"$Z=&$:5$#JA!#ZE\"%*%##Z9\"$Z1&':A!\"Z9!%*Y'"
+ "$:Q##JA!\"ZA!$JA!#Z9!#JA!\":M\"#JE!#J9!#J9!&J=\"$:1!%J=)&*='#Z=\"$J=!"
+ "\"Z=$#Z=\"$JE!#J1!\"Z9!$J9%\"JA#$J9!#J5!%:)!$ZA%\"Z9!\"J5#%Z5*$Z5\"%:1)"
+ "#J1!$Z=&\"J1!\"*-!#Z)\"#J5!#J%!#J)!!*)!%Z)'!J!#\":!##I]!&)]$$I]&%Z!*"
+ "#Z%\"%)U'$IQ%%*!!%YU$$9Q%$)Q##IY!#9Q!#IE\"$Z%##II!#YM#\"YY\"#)U\"%Y9%"
+ "#I9\"$)1'\"I=!%YA+!)I!#)=#\"Y9\"\"I9!\")9\"\"I5!#)%#$Y1*$)--\"I-$\"I)!#))&"
+ "#(]!$(Y!%I!$!(U&\"HU!\"8Y!\"H]'#(U#\"Y-\"#X]##XM&\"XE\"#(I!#(E$\"XI\"\"X1#"
+ "\"HA!\"8E!\"8=!#89$#(5#\"H-%\"85&\"X9#\"X1#\"X)##(5$!(%!!X)$$(!#\"WY#\"7Y!"
+ "\"WU##7I%\"WQ#!'U!$'](#'Y$#'Q+\"'A,\"7E$$'9*!G=!\"7=$!'9!!'%!!G-!!G)!"
+ "!&]!#7!%\"VQ&!G!#!W-(\"&]%#'-&\"'-#\"'-#!W1$!'5!\"'=#\"'E%\"7E$!G=!!GI%"
+ "\"GA%#WY'\"'A!#'M!\"GQ\"#GE&#WQ%\"8!!#W]$!8%\"\"']%\"8!!\"8-!\"8)&\"X)\"\"(%#"
+ "\"XA&#H-##H9&\"X5\"#(5!$H=!\"X-\"\"XQ\"$8E##XU!#(I$\"8I!#HY%\"HQ!#8Y$#(Q#"
+ "$HU'#(Y##I!&#9-!$)!%#I!\"#X]##))#$)%!\"I)!#))#\"I!!\"X]\"#I1\"\"I1!#Y5&"
+ "!Y5!!Y9$#)5&!)=!\"I=!#YA#$I=&\"II!#9E!%9M%#YE##I9\"\"9I##II\"%)U$#YQ#"
+ "$9Q$$IM\"'9U#%)]'$Y]##9U!$9]$\"*!($I]%#Z)\"$9Q%#Y]\"%*5#&*%(%*!##J%!"
+ "%)]!\"J)!#*%&\"*-%#Z-\"#*9\"$J5!#Z-\"$J9%#J1!#:9&#J=!#J5!#J1!#ZE\"$Z5\""
+ "$*1##J5!$J=(#Z9!!*5!%*9##J9!!Z9!$J9!$Z5&&*9#%J)\"$Z9\"#J5!#*5\"$:=$"
+ "%*='#Z=\"#JA!#:9#$:M$#*A\"%JA)$JA!#J=!#J5!$*=\"$:=##ZA\"$*9#\"Z9!!Z=!"
+ "$J1%$*9#&J9)$*9\"%:=!%J)&#ZE!#J9!\"Z%\"$ZA\"$Z5&#Z5\"#J1!#J1!#Z1\"#Z1%"
+ "!:-\"$J1\"#J-!#J%!#J)!#J)!#J%!!9Y\"#J)!#J%!$Z%&#J!!$I]\"$)U##)]#$9]!"
+ "$I]%$*!##YQ\"#)Y\"\"YY!#I]!$IQ&#9U!$)Q#$)U#&IM(#9I!#IQ\"$YI&#9Q!#IA\""
+ "#)A##YA\"#II%$I=#!Y-!$Y9'\")=%\")5\"\"I=!$9A!%(]%$Y1!$I-&\"I%!#9%!$I%'"
+ "#I!&\"8Y!\"I)!\"H]*!HY#\"X]\"#HM&#XQ'#(U##HM#!HY!#(A#\"8Q!!HE&#HE(!(=#"
+ "!H=#\"8=!#85%\"85!\"85!#H)%#81%\"X1#\"X!!\"8)!\"H%!#8!'\"8=!#7]'\"X%##GY#"
+ "\"7]!\"GQ,\"7Q$\"GI#\"GA\"!GE#!G=!!'A!#WA%!'=#\"'9\"\"G9$#7E#!W-\"!G%!#'=$"
+ "\"G)#\"6U$!F]#!'1#\"6U$\"&]#!G)!\"7-$!G%!#G1\"#75#!G=!#G9!!W5\"#'=$!G9#"
+ "#'E'\"GI##'A$!GQ!$GI#!GE!\"GQ\"#WE\"!'Y!!W]!#(%$\"GU\"\"H!\"%(%*\"8%!\"89$"
+ "\"X!#!(5!$(1&$(5%#X)'#XE&\"81!\"XA&#HA#\"XE\"#(A$$8E)!XE'#(M##(M!#HQ&"
+ "!(Q$!(M#\"HU!#(U#$8Y\"#(]#\"8]!$)!$$H]&#9%!#Y9&!Y9!#)-##)-##I9%\"Y1\""
+ "#95$!)9!\"I5!\"I9!!Y9!\"Y=\"$I-&#I=\"#YA\"%9E\"&II(%II-%9A($II%\"IM!\"IA!"
+ "#)Q##IY!$)Q##IY!#I]!%YM$$IM\"%)]('9Y#$*!&%9Y%#I]!%:%%#J-!#IY!'*%("
+ "!:%\"%J))&*!!#J)!\":-\"!Z%!#J%!\"J1!#J-!\"J%!#Z5\"#ZA\"$*%#!:1%$:1$\"J-!"
+ "#J9!$JE%&*1$#J5!#*5\"\"Z5!$*5#$J5!$:5#%:5%#*5\"$:9$%*9#%:1!%:E$&*A+"
+ "#J9!\"*9\"#Z=!$J-\"$:M$#J9!\"ZA!&:5!#J-!%:9$#*1\"%*9##J1!%:5%$J%\"\"ZA!"
+ "$*=#%Z5*\":9*#J-!#ZQ!\"J-!#J1!\"J1!$:)!&*1!#J5!#JI!\"J)!$J9!#J-!$:%!"
+ "%J-%$*)#\"I]!$*-#$Z)\"$*%##Z-\"\"I]$$*!#\"IY!!Z%$#9U!!IU#\"I]!$)Y#$)]#"
+ "%*%'$I]%#9U!#)U%%IQ#$)U##9E!$9Q($)]##9U!$)1$%YI($)E!%IE&#YA##9A!"
+ "$91%#9=$%)I%'99/$Y5'$I1)#95$\"I)!!)-!\"I-!\"Y)%\"I1$$))'\"8U!#XY!$I!'"
+ "$(Q(#Y%$#(Y!#(I$#XQ#\"HU!!HU&#8U$$XM+#8M$#(M#\"XE\"!(E!\"85!!(A!#HI&"
+ "\"8=!\"X=\"$8-)\"X9\"\"H1\"\"8-!%X-,\"8)$!H5&$X%&#8!##']$\"H!!!X!\"$(!(\"WA#"
+ "#7Q'$7Q&\"WQ#\"W=!\"GQ\"!GE##GI!#G9)\"7=!!G=!\"WA!\"'1#\"G1$\"W%&#7-(!G%%"
+ "\"&Q!!VU\"#&Y%!&Y!#7!$\"G!%\"V]#\"7%$#G1)$'-+\"G=%\"'1\"!GA!!79\"\"GA'\"W9#"
+ "#'A$\"7=$!GE!#G-'#7A#\"7M!#WQ'\"WU##GU&$8!!\"GY\"%G]'\"8)!\"X!#\"X!#\"'U\""
+ "\"8-!#H-&\"X1\"\"X1#%(1,#85%\"89!#89%\"X=#\"XI\"!(A!\"89!#(9!#HQ%#XI&\"8M!"
+ "#(Y##)!##XQ'\"HI!!8=\"$Y)$#)%#\"8Q##HY%$Y!%\"Y%\"%I-!\"I1!!Y!!#I)%\"9-#"
+ "\")9\"#)1##)5#!YA!#99!%Y9$$)E&$9=(%9=#$9A$\")E%%)E$#9E!#YE##9Q!#YE#"
+ "#9M!$Y='#9Q!#IY!$9Y'$YY&$9U$#IU\"$YU'$YM&!IU#\"I]!#YY\"$Z)&\"IY!$)]#"
+ "#YQ\"%:-)$*!'!*%!!YY!$*)&\"J1!$J-!$:-!#J-!%*!!#*-\"$*-#!)]!!*)!#Z-\""
+ "$J9!#J!!#Z5\"#J1!#J1!&Z1'\"J1!#Z5\"$Z1&\"J1!%Z1*\"*=\"$*=#$J5!#*5\"$J5!"
+ "$:1!#J-$#Z5!$J5!\"Z5!#Z1\"#*-\"#J=!#J1!%*9&&*5($J5!$:5$#J5(#J)!&:1%"
+ "#Z5!%Z)#%*9#$J5%$:5#$Z=%$:%$#Z)\"#*)&#*9\"#*-\"#J-!$:)$#Z)\"#J9!$)]#"
+ "&*%!#Z%\"$:%!\"J%!$II&\"YY!$Z!&&)],\"Z5!$*!#$Y]##J-!#J)!$9Y$%IU#%I])"
+ "#J%!$Y]&$)E!#9M!$YM&#9M!#YM#!)I!$IM%#YE\"#IE\"#9E!%9A\"#I=!$I5#\"Y9\""
+ "#I=!%YM+%)9%\"Y5\"#)9&\"9-)#95!#Y1##I)%$Y)!!)-!$9!\"#8]!#H]\"\"9!$!Y!!"
+ "#9!!!(I!#(U#\"XU(#(Q#!HI#!8A\"\"HE$!(I!#HE&\"8=!\"HA!$8A)\"8=!\"X=#\"X9%"
+ "!(9)\"H1\"%H5&$81!$8%)#X)'#8)\"#']$$H%*\"X)#\"7]!#G]##'Y$#H)!\"WY##GY&"
+ "#GQ$\"7M!!7I'\"GI#!'E*!WA+$'A#!W5\"\"'I!\"G=%!75\"\"W=#\"'=\"!W-$!G-%\"7%$"
+ "\"FU%!FM!!6Y\"\"&Y#!VU&!'!!!F]!\"V](\"G)\"#7)#!G5%\"')%!'1!!W5$!'9##W=#"
+ "\"'=\"!G5!\"7A!#WE%\"WM#\"GE#\"7M!\"WM#\"GM\"\"WQ!!GY#\"WY#\"81!$8!!\"GU\"!X%\""
+ "#(%$#()!\"81!$(9'\"X-&\"H1\"#89$\"H5!%HM(#H=\"#8=%$H9*#8A$\"XE\"$8I&$(U'"
+ "#XM!#(=#\"HY!#(]##H]\"$(U$\"8Y##)!#\"9!##(]#&)!#\"(U\"#Y%$#))##91$!Y)$"
+ "#9)!\"I)!#95$\"Y5\"!)5!#Y9&$)1'%9A\"#)5#$YI&\")A%$)A##YI\"#9M!#)E##9=!"
+ "$)Y##YA#\"9]##YM\"$)Q$#YA#$*!#$YY#&:!,$9U$&)M%$9Q(#YU\"$Z%#$9U!\"Y]\""
+ "#Z%%\":)#$)Q'!Z%!%*%'&Z!/#*%\"%:%($*%##YY\"#I]!%Z1*$:-#&*1(\"Z5!%J-%"
+ "%:)!$:1!#J5!$*)##J!!&*-+$J5%'*-!#J!!$J9%#*1\"#J1!!Z9!$:-!%J1)\"I]!"
+ "#*1\"$:%!#J5!\"*)\"':-&#Z1\"#Z1%%:-!#J5!#Z1\"#J-!#J-!%J1%%:5$$J-%$Z5&"
+ "$:=#$:-!$JA!$Z1\"$J)%$J-\"$:1#$J)%#Z)%%:1!$J%\"!Z)!$:)$#I]!#J!'$)U#"
+ "$J1%%J!&#:!#$:!!%J%*$)Q$%J!)#Y]\"&9U\"$*%##9M&#)M#%:!$#9Q!#9I##9U!"
+ "$)E#&9I'#9Q'#YE#&YI%\"9M#$IU\"%)I$!YI!$9E%\"Y-\"$)I$%IA'\"Y1\"%))\"\"I9!"
+ "#9)!$)Q'\"Y5%#95!!I=#\")-%$Y9!#))#\"I1!#X]##Y%##I!\"%9!'#8Y$\"Y5\"#8Y$"
+ "#8]$!HU!#HU%#(Q#$HQ##XU##XM!\"8I!#8M$#XA&$(A\"#(Q#\"X5\"\"HE)\"X9#\"HI!"
+ "%(='$(-(\"H%\"\"H-!\"X-&#(!$\"X1\"#H)$\"8!!\"X!#\"WU#$'Y#!H%#\"7U&$'Q&#'E$"
+ "#GM$\"'I!!GI#\"'I!\"W9%\"'A#!75\"#'9$#G9$#W5(!G1!!G1!!G-!\"G%\"#F])\"G1%"
+ "\"6Y$!&I!!&Q#\"&Y#!6U$\"6M\"$&U\"\"7)$\"7)$#G='!W%\"\"W-&\"'1\"!G1!\"'A#\"75#"
+ "\"75$\"'-#\"'A##7A#\"WE#!GI#!WM\"\"7U(\"WY#\"GI\"%8!(\"W]##GY$#H!!\"7]!\"H!\""
+ "\"X9(\"G]\"\"H)\"#H)##(-!\"81!\"8)!#89%\"X9#%89'#8A$#(=$\"(E\"$8A)\"8U!#(M!"
+ "$8I#\"HI$\"XY\"#(Y##(Q!\"8Q!\"HI!#8Y!\"I)!#8]$#8]$\"I!!#9!\"$Y%($I1&#95!"
+ "#9)$$I1)$Y!!\"9)##Y1&\")1(\"I9!\")E\"#)9##I1\"$)9!$)9'%I9'#YA\"#99!#9A!"
+ "$9E%$YE'$)I$&)I%#YM##)U\"$9M$!)E!!IM##9Q!!YY!$9U$$Z)##)Q#$YY'%J%&"
+ "!YE!%)U!\"IY#$IQ\"#IY$%IY*$J1)$:1##J%!&Z-$%J!&%J%*#J%!$J%!#J!!\"J%!"
+ "#J)$#J%!#Y]\"#J-!&:)\"#:)##J)!%*)'$J9%%:-!$Z-&$*5\"\"Z%!\"*-\"\"J1!%Z5&"
+ "%Z-&\"J)!#*%#%:5%#J)!$:-##J1!$*-#'Z)(\"Z5!#Z%\"\"J-!#Z1\"#Z5\"#J-!#J5!"
+ "%J!##I]!#J1$$:)$%Z)##J)!%*-#$*1\"!:A\"$9]$$:9$$:%$$)Y##IU!$*)##J!!"
+ "#)U#&*%+$Y]'#Z%&%9U(\"9Y&#9Q!$YU#&9U-$)I!\")Y($IU%$)M$&IQ$#9M!#)=#"
+ "$)Q$!)1!#95!$)I#\"9I#$YA&$IE\"#9E!#9Q!#YA#%9=%#Y9##)9##I1\"$)1$\"I=!"
+ "#)5##91!#Y1#\"I-!#91$#Y)#$9%&\"I-!$9%#\"I5$#9!!\"Y!\"\"8]#\"H]!$(Y(\"(U%"
+ "!HM!$(I%#(U##XU#$(U(#(E$\"HI$\"89!\"8Q!\"(A\"\"XA#\"XA#\"XA#\"H1\"\"X1##H9&"
+ "\"(1#!H)##81\"\"X%##X1'\"G]\"\"']%\"X%!$7]!\"G]!\"X)\"#'Y$\"7Q!\"GE\"$'U#\"'M#"
+ "\"'E!#WI'\"'E!\"'Q#!W=\"!G=!!'=#!W=\"!W1!\"'5\"$'1&\"G-!#W)%#G))\"F]#\"&]'"
+ "\"6M&\"6M\"\"6Y&!VU\"\"G!%!FM!\"W!&\"6]&$7)#\"'%#!'5!!W)+!7)\"\"'=#!W1$!75$"
+ "!G9!\"'9\"#'A%#GI)!7Q\"!'I!#'U$\"'Q\"\"'I!\"GI\"$'I%$'U!#7Q\"$'Y(#7]\"\"GY\""
+ "$8!!#(!$\"8%!$X!##'Y$\"H!\"!(1!\"81!\"X5\"#X9!$H9'#H9&\"8=!#XA##XE*\"8E!"
+ "\"8I!#HI&#XE##HM%\"8M!\"XI\"\"HU!#XY#\"8U!#9!\"$H])#X]&\"8]!#9%!!XY!#I!#"
+ "#9%!$))!!Y)'$Y-$#95!\"9-#\"I1!#Y!&!)=$#I=%\"YI%!I5&$Y=*\"YE\"%91&#9E!"
+ "#YM#$IA&%9=#%YI$$)Q#!YA!%IE#\"YQ%$IE%$YY##)M#!YU!#YM#$IU%\"IU!%9M\""
+ "\")U(%IY#$9Q%&:!&$9Y!$IY&#IY!!Z)!$:%!%*!#\")]%\"J!!&9U##J!!$I]%!Z%!"
+ "$*%#%:%!%*%'\"9Y##Z%%$)U##J)!$*1\"#J)!#Y]\"%J!\"#J)!%*-$\"Z)\"%:))#J)!"
+ "#J!!&:)!#*)\"$:5##J%!!J)#\"*%\"#J1!\"J%!$:!$$:1##J)!$J!\"%Z5*&:-\"%*%'"
+ "!*%!#J%!$*%'&J%##Z!\"%*1#$*)##J!!#J!!#J!!$:%!$*!##J!!&9Y&$YY'#J%!"
+ "\"I]!!)Y$$)I$%9U%$)Y#\"YY\"$YQ#\"IU!%)U!$)I&#9Q!\"9Q##YM#$)Q##YM&#9M$"
+ "$YI$$9I$\"IA!%YE+#)A#$9=%&)E,#)M#$)=$#YA&!YE!\"I5!\"I=!\"I1$\"Y-\"\"I1!"
+ "#)!##I)%#)-#!I-#$9))!95\"%)-&$XQ(\"Y!##Y!'$H]##8]$!(M!$XQ$$8U##8E%"
+ "!(Y!#8Y$#(I#\"XQ\"\"8Q!#(I!\"XE#%8I!\"H=!#8A%#(9!\"X5##(-$#(9##(=!#(1$"
+ "#X1'%8E!\"8!!#()$#H%##H%&\"X)\"\"8!!#()!!X!$\"WU#$'Q!\"GI#\"WY#$7M)\"7M!"
+ "\"7A#\"'E!!79\"#'A'#W9'$79)!G5##'5\"\"'1#!75\"\"'-\"\"75$\"V]&\"'1\"\"G%%!W-\""
+ "#6I&!FU!!&E!!G!!!VU\"!VY\"!VY\"!FY#!G1!!G!!!W%$#7)'!VU\"\"G)%$'-$#71("
+ "\"GA'!G=#!GI!\"7A!#WY$!GA!$WE%!GI##'='\"7M!!'Q#\"7Q!\"7U!#WU%\"WY#\"G]\""
+ "#8%\"\"X%#\"7Y!#7U%#(1$!H)!\"H-\"$H-'\"H1!#(5!!H!!\"X5\"\"85!#(=#!89%!XA!"
+ "\"X9#\"HA$#(I$#HI%#(M#\"XM\"!XE)#8U$\"8Y!#(Y#\"XU\"#(U#$)%'#8Y'\"Y!#%(]\""
+ "$Y)'$Y%'#I)%#I)&#Y)&\"I-!$9=(%99&\"95#\"Y1\"\"I5!#)-#\"Y5\"#I9%\"Y9\"#)9#"
+ "!Y=!$)5$$)A$#IA\"%YQ*&)M,%IE##YI\"#9A!$YM#$YM'$YM'$9Y!#YU&\"IM!\"YY!"
+ "$)U#%II*#9Y'%)I$!)U$!Z!!$Z!\"\"IY!!Y]!!:!\"#9]'$9U$$Z-\"\"I]!$9Y($9]("
+ "':)1$Z!#$IY&#*!#!Y]!$J!\"$9]$$J%\"%9]!&YU!$Z!&$:%!$)]#%J%&#I]$$*%#"
+ "\":!\"#J%!!*%!$:%!%:!%$:%!&J).$:%$#Z%\"%YY+#J%$\":)##YQ\"#J%!#9U!#:%#"
+ "#J!!$Z!'#Z!\"%:%!$Y]'%:%!#Z!\"!Y]!$)]#&I]+$J-%$I]&#I]!$Z)##IU\"#9Q!"
+ "#YY\"$)]#$)U##9U!#IY!#9U!$YU#!YQ!#YI%%YU!%)Q$#YQ#\"IM!$YQ*$)E!$YI$"
+ "\"I=$%I9*#95!$Y1$#I=\"\"IA$!)=!\"95&!Y1!#I9%\"9=#\")5%#)9##95$%I1!#Y%&"
+ "!)-$#9%!#Y)&\"I5$#I%#!XY!#8U!\"(U\"$(Q'\"X]%\"8]!#8M$$I!)\"HQ!#(U#!XM$"
+ "\"XE\"#(M##(M&#(I#!(=!\"HQ!#HA%#8I$#(=#$(='$(9\"\"89#!H9#$85&$8=!!H-#"
+ "#X)'\"8-#$(9(#H%&\"8)!\"X!#\"G]%#WY%\"GY\"!GQ!\"7Y##'Y!\"GQ\"\"WM#\"WI!\"GI#"
+ "\"WA&!W5!\"'E#!W1!\"79!$W='#W5&\"G1$\"G)\"\"&Y#\"7)$!W%&#6U$\"G!#\"'%#\"'!*"
+ "!FM%\"6I\"!VM\"!FQ%!6U\"!&U#\"6Y$\"G)*!F]!!7%\"!G1#\"W%&!G!!\"G-#\"'5!!7%\""
+ "\"71\"\"G=%\"79#\"'9\"!'=##'='!GA!\"GM\"!'I#!WI!!'Q!\"GM%\"WQ#\"WM#!GI!\"7]!"
+ "\"G]$#'Y$$W])\"X-\"#(-$#X)'#']$\"8-!!(-!!85\"\"(1%\"85!$X1#\"8=!#81\"\"X5#"
+ "#(9#!XA!\"HE!$H=)\"(Y\"\"(5\"#8M%\"8M!#(U#$(U%#Y!$#(U#!HY#\"X]\"#8]$\"X]\""
+ "\"Y!#$XU'$95%#9!%\"Y!##(]&$9!##)9##I%##91!\"Y1\"#95$\"I5!#Y)#\")5%\"IA!"
+ "\"IA!$9M(#YU&%I=+#IA%$9=%#I=!#YE##9E!\"9A#$9]$#YE\"\"YQ(#Y=##9E!#9U!"
+ "(:%'#YM#&J--$Y]##9Q!%)E$#YU\"#9M!$YI&#IY!$9]'#)Y#&9Y&\"IQ!$9U!$Y]'"
+ "#I]!$*!*%I]&#)]#&I]##I]!!IQ##J%!#J!!#Y]\"$*1##YM#!J!'$9M!$:%$$J!%"
+ "$:5$\"IU!#J!!$*!#\"Z-%$:%!#*!##J!!$)U#$Z!&$Z%&#Z%&\"IQ!#I]!$Z!'$Z)#"
+ "#J5!#Y]%$IU\"$*!##IY!#J-!%)Y'%9M\"&:%&#I]!\"9M#$9Y!$YY&#IY!$9U!#Z!\""
+ "$)U#%YU##YQ##YE#$)Q$$9M%#IM$#9M!#9=!$)M$\"IE!!YM!#9I!$)E!$YA!#99!"
+ "!IA##YM#$)E!\"9=#\"I=!\"Y=\"\"YE\"\"Y)\"!Y1!$)5!$91%\"91#%)1(#Y-&\"I-!#I5%"
+ "\"8]!\"Y)\"\"Y%\"#I%\"%X]%$)%%#H]\"#HM&$(Y$\"8Q&#8Y$\"8U!\"8U#!HE#\"8Q!#8M%"
+ "#(M#!HU!#XI$$(I$#8E$\"XA\"\"8=!\"(=%$81$\"X9#!H1!\"H5\"#(9##(1$\"8-$\"81!"
+ "#H1#\"H%\"\"G]\"#8%%#H-&#(!$\"W]#!'U!\"G]!\"'E!$WM$$'U&#W=(\"GU\"#GQ!\"WE#"
+ "\"7=$!7A'!'9!!G-!!7-'!75$!W1!!')!\"'-#!W1\"#G%%#G!\"\"G%)!G!!\"FY%\"&]!"
+ "!&Q!!&Y#!VM$#6M%!FQ#\"6]#!FU##FY'!G!#!FQ#$'))!'%!!'!#!G%!!75$!G1!"
+ "\"W1$!W1!!'-!#GM)#'=%!GE!!GA!!'I#!GE!!GE%\"'I!#'E\"#7Q%%GQ'\"'U\"$GU+"
+ "!GY!\"'I\"\"8!!\"X!!!'U!\"8%##(!'#()$$()#$(-#\"X9\"\"(1\"\"X5\"\"X5#\"8A!\"85!"
+ "\"89!$81)\"8I!#8E%$HE'#(A#$8E##(M#$HM&$8Q#\"XU\"!(Y&\"8Y!#8U$\"8Q#\"I!\""
+ "$H])#)!##8]$$)%$#9%!#I%\"%I)(!Y1!!Y)!#Y)&!)5!\"I)!#Y-#\"I1!\"9=##Y5&"
+ "#95!#))##YE#\"9=##Y=#&)-##YQ\"$)1$!Y='#9=!#YE##YA#$YM'#9I!#9A!%)E!"
+ "\"IA!#IM!%)M(#YM#$IQ%$)Y##)Q#$IY%$9M$#J)!$)U#$IQ\"$)U##9Q##IY!%9I&"
+ "\"IY#$)Y#$9Y$$)Y#%YY'&)]!$Y]*$YY#!Z!!#9Y#$9]$#I]!#I]!#Z!&#Y]\"&:%&"
+ "$*!#$)U#$:)!\"Z)!#)]##9U!#YQ%\"YY!%9]%#I]!%Z%#$9]$%Y]#%)M$#J)!#J)!"
+ "&Y]!#9]$#IY!\"IY!$YY#$I]%%*%$%IU#%IQ#!Y]!!)U!$9U!$IQ%$9U$#YY\"&YY!"
+ "$YQ'#II\"#9I!#9M!$)I$&II!#IQ!$II#$)I$\"IE!#Y=#$IA##IA!$)E##Y-#(9Q+"
+ "%95)$I5&\"95#%I5.#I9%#)=#\"I!!\"I5'\"I1!\")-\"!)-!#91!#I!&\"I1!$9)(#)9#"
+ "\"I-!$9%#$I%&$(Y'\"Y%&\"XY\"\"H]!\"HY!\"H]!#HU%&HU)!HQ!#(I##(Q#!HI)\"8Q!"
+ "#(I&$8I##(A#\"H9!#(E#\"8A!!H%!#81%#X='$(%%\"85!\"X1##X1$$(-%#H5)!H1!"
+ "\"7Y!\"81!\"WY!\"H!$#8-\"#8!%$'U!!7I\"\"G]$\"7M!#'Y$#'A!#GM&\"WM#\"'9%\"WE%"
+ "\"'M\"!GA#\"W9##G5&\"'E#!GA!\"G1'\"75!!'%!#G)$!7-\"\"'!#!&]#\"&]!!6]\"#FY'"
+ "!FM#!6Y$!6M\"!G)!!&Q!!7%&!FU!\"&U#\"VY&\"&]#!FY#\"6]$\"')%!G!!\"W)&#75#"
+ "\"7%$\"7-&\"'1#!W=(\"WI!!G1!!GA!\"GA%#'=\"\"'=#\"'E!\"7A!\"WY!\"WM#\"X%##'U+"
+ "!GU%\"WY#\"WU#\"G]\"%H!,#8-\"#H)!$8!!$G]%%8)%%H-$#(-$\"X5\"\"X5##(-$#X5!"
+ "$(9\"$(=\"\"89!!H5##XE&\"8A!$XE+%(U&\"XM%\"8I#\"XM\"%)!,!HM##HM\"#(Y#$Y%'"
+ "#9)$#(5$#(U#!8Y\"$(Y$%8Y#&Y)$#I%#\"Y1(\"Y)\"#I)\"#)9#\"Y5\"$Y9!#I1%\"Y)\""
+ "#)5#\"I1$%99##)9##9=$#9-!\"9=#!Y=!#9=!\"9A#$)A*$IA##Y5#\"IQ!!YI!#YE\""
+ "$9I!$IA&$9Y!%9M\"$91%#9M!#YE\"#9U!#9Y#$IQ&#IQ\"#)U#&)Q%$YQ#%)]('YU&"
+ "\"IY!%)U'$J)%%IU)#IE%$9Y$$9Y$$)Y#%IY##9Q!#9Q!\"9Y##IY!$YY##YY)$YY&"
+ "$)Y#%9U)\"I]##9I!$9]!&)Y%#)Y#%)Q'#)Y&$I](#YU\"#IY!&IY$$)]##J!!#)Y#"
+ "$)U#(9]+&9U&$IY\"#9U!!)U!$YU&\"YU!&9U\"$9Q%#9I!$:%$$9Y$%9M%!YI!%IQ*"
+ "%II#$IQ\"#IM%')Q*&)Q($)I#!YQ$&I=!$)9$#YI\"#99!%9=%$)A$\"IA!$Y=$!)='"
+ "\"I9!#)9#\"99##)=##9)!\"I5!%I1(\"I-!#I)&\"Y1%#9%$#)-#\"9)#\"Y%#\"(]\"#I%#"
+ "%(])$XQ(#(Y!#9!$\"Y1\"\"Y!##XY##(Y#!HU!$Y%($8Q)$HY##(A!#(M#\"HA\"\"8M&"
+ "$(9(#HM&!HA&#XA'\"HA!#(=!\"(5#$(1#\"H5$\"85!\"X9%\"X-#\"X%#!X!\"\"X!#$X%+"
+ "\"H%!!(!!#']&\"W]!$7Y'#WY!\"'U\"\"GM\"#7Q%$WM&#'A$#7I#\"7E#\"'E!!WA$!W9\""
+ "!G=!\"79)\"79$\"75$!71\"\"'%#\"G!!\"W)&!V]\"\"G)%!G1!!7!\"\"FM!!&U#!FU%!VU\""
+ "\"FM%\"FM'!6M&\"&I%!FM#\"VU&!FQ)\"FU%!FU#\"6U$\"&Q!\"'!\"#&]'!G!%\"'%\"#79!"
+ "!G)!!G-%#G1)!G)!#79'\"71$#79%\"'I#\"WE!#W5'\"WE&\"'E\"#'Q$\"7M!\"GM'\"7Q$"
+ "#'U$$8))!GI#\"WM#\"GY\"\"H%!!GY!$H!(%(5'\"8%!\"H)\"\"(%'#8-%$81&#H1##H5&"
+ "$(1#\"H9'$H9!#8=%\"X=%#H9&$H1'#(I!\"(I\"#(I!#XY#\"8M##HQ%#8U$\"8U!#(U#"
+ "#(I#\"HY$\"HQ!\"HY!#(]!\"I!\"\"Y%&\"8U!&)5&#9-!$I%'$Y%$#))##)1#\"I1!$)5!"
+ "\"I1!#)5##)1##)A#\"Y5\"\"I9$$I-'&)90#)-##)1##9I#!YA!\"Y1\"#IE!$)9$\"9A#"
+ "#Y=#&)I,#9U!$)E!\"IM$\"II!%9A)#)A#$)M$&9I'$)E!#YM\"%)M$%IQ#$IU%#YQ#"
+ "#YQ\"!)A!$)A$$9Q!\"Z%!%)U($)U#\"IU!#IY!$Y]#$)]##)M##9I!\")U\"$9U$#YM#"
+ "%)U$%)Y'#)M#\")U\"$Y]'$)U#%IU'$9U$$I])%9U\"#9M!$9Q!$)]##)Q#%YU#$)U#"
+ "$*!&\"YU\"$9Y$$9Q%$IM&#YQ\"#IU!$YQ#$YM&$)M##9A!$9Q!%9Q%&)M)#9A!%)I!"
+ "$9Y!&IM$#)M#$9M!$9I$#)M#$)E$#91!#YA\"#IA!\"Y-\"\"9=##)5#\")5\"#)5#\"I9!"
+ "#)E#%9=-#I9\"#I=%#)I#\"Y9\"$I)*#I-%#Y1##Y-&\"Y-\"$Y!.#HY\"#91!$X]!#I!\""
+ "#9!!#8Q$#(]#$8]%#8]!$8M#\"8U&!)!$!HI!#HQ%#(M#\"XI\"!HA!\"XE#\"XE#$8E\""
+ "#8A$%8A$\"81!\"8=!#H9&#X9$\"(5\"#85%\"(5#\"(1\"\"X-#\"X1%$X)##(%$\"8!$\"G]$"
+ "\"(!#\"7]!\"WY#\"W]##(!$!GI%$GQ*\"'I\"#GM&$7A%#WE\"\"G=#\"7M)\"'A#!'A#\"'=#"
+ "\"G1-\"W=&!G=%\"'1\"!W1\"!')#\"G1$\"G%!\"7%!!FY#!W!\"#&]%!V]\"\"F]%\"&U#!'!!"
+ "!6]\"#&M$!6Y\"!6I\"\"6M$\"&M#\"&M#\"6U$\"F]+!FY!!FY&#'!'!F]!#&U%\"'%#!'1#"
+ "!G)'\"G)$\"'1#\"G)#\"'9#\"'1#!G=!!79\"!G1#\"'E#\"'A#\"7I##7A'\"WI#$'I#!'I!"
+ "$'Q!!G=!#X%!\"GQ\"#WQ\"\"W]##'Y$!']$\"'Y%#X%$\"X)#\"8)&#X)'$(!(!(%$\"X%\""
+ "\"XE\"\"X5##(5#\"X9#\"X9##HA#\"XA#\"X5\"\"XE#\"(M%\"XE\"$HM'\"XM\"!HY!\"8M##HU\""
+ "#(M!#(M#!HU!#(]##I%\"\"(](\"9!##H]%#Y%$$)!$#I%#$)-!$9)\"#)%##))#\"95&"
+ "$9)(\"I9!\"Y9\"\"IM'\"I1!\"I5!\"I5!#)5##)1#\"I9!#Y9&\"I-!\"I=!#9A$\")=\"$IQ&"
+ "#YA##9I$$)9!$9E%#YI#$9=%#9M!$)E#$YM#$9A%&)M\"$9M$#)M#$)U#!II&$YQ#"
+ "$YQ'$YU'#99!$9M!#IU!$)U##)M#$9Q$#9Q$%IY'#9M!$)E##9Q!#)Q#$)]#%9M)"
+ "'*!&!YE!#Y]\"%)E(#9Q!$9Q!&YQ/%YQ'$9Q$%9U)#9U!%*!!$IQ\"$YU&$YQ#$9E!"
+ "$YE'!IY##IY!$9A%$YM&$9I(#9M!$I])$)I#&IM+#Y9#$YE&#9I!$II)$II%#9A!"
+ "\"YE%$9E%$9E(%9E)%YE$&)E,$9A'#9A!%)=(#Y=#%IM##)A#\"IE!'95(#I=%#Y=&"
+ "\"I5!$)5$!Y9$#91$#)1#%)1+!Y1$\"Y-\"#9%$\"I)$&(]$!9%($9%##I%#$I%'#(]!"
+ "!XM$#X]&\"XQ\"&8M\"!(U&#8U'$HU)#(M##(]#%(M&!XM'\"HA!#(M#!(Q!\"XQ\"\"8A!"
+ "\"HA$\"XE##89%#(5!#()$#(A#!H-%#(1#\"81!$(-#!X)!\"()#\"X%#!H%#$X!$!WM\""
+ "#8!$#8!'#'Y$#7Y#!'M#\"WI!#']$\"WM##'M$\"'E\"#7M#!'I&\"GE$\"G=%\"'=#\"G9$"
+ "\"W5##7!#\"'1#\"79\"!'-!!G%#\"7!$!G1!\"W1&\"&]\"!VU\"!7!\"!FU#\"&]#!FU!\"&Y#"
+ "\"FM'!FM#!6U'!FM#!FU#!FQ#\"FQ%\"VM#!&Q#!FU#\"6E$\"6U!!'%!\"')#\"&]\"#')\""
+ "#'%'\"W9%\"G)%!7-\"$7-(\"'1\"\"75#!W1$\"G='!G5#\"7Q!!GE!#7E(\"GE\"!GI!#GI&"
+ "!'Q&#GM$#'Q$$']%\"7Q!#7U#\"8!!#'Y$!H!#$(!+#()!#W]%%(!(#()&\"H)\"!H-#"
+ "\"X-\"\"X1\"\"H5%\"XE#\"X9##H-%\"X=\"#(E$#8M$#H1##8I$#H9\"\"XI\"\"XY\"#HU%#HM#"
+ "#XQ!$HU&\"XQ\"#Y!'\"HU!\"I5!#Y-#$)!'\"XY\"#9%$\"Y!#%Y!)%(](#8]$\"I)!\"I-!"
+ "$)-'#I!%#99!\"Y9\"#9-$#91!\"I1!\"I1!\"I5!%)9!\"I)!$YA!\"I=!$I9&#I=!#I=!"
+ "#9I$%)-+&95'#95!#9A!$9A%#9A!$II##9E!&)E,&YI)#Y9#$YE'$9I$$YQ##YM#"
+ "&)Y!$YI#$9Y$%)M!!II&$IM%$)U#%9U)$)U#%IQ&#9M#$:!!#)M#\"IM!#)I#!YM!"
+ "$)U##IQ\"'IE)%IU&#9I!$9Q$#)U##YY\"$II#%IM##)M\"$9M$&IM!#9M##IM\"#IM!"
+ "#9I!#YM##9U#%)M($YI'%YI$#YE%$)M$#YI##)I##9M!&)E%#9A!$II##Y=\"#IY!"
+ "$II##9I!%YE!%)E!\"Y9%$)5!$9=(\"Y1%\"Y9%\"9=#$)9!\"I9$\"95#\"I9!!)!!#99$"
+ "#(]##I9%\"9-#$Y!!!Y%!$9-\"$I-#\"Y-\"$8]%$Y!!#9!!#X]#$8Y\"#(U!$Y!$!HQ!"
+ "$HY*\"XY\"$8U\"%HU($XQ$#HQ)#(U##(I!#8A$!HI!\"XI\"\"XQ\"%(M\"#(M##HE&%89!"
+ "\"8A#$(9%\"X1##X5$#X1&#(1$!H=#\"X-##(-!!X9$\"8)!\"X%#\"8%!#H!!\"X%#\"H!!"
+ "\"GY\"\"WY##7M%!GE!#'M$\"X!#\"G=)\"'=\"\"GE\"!GE!\"7E##W5%$'E##'A)#G1)!G9!"
+ "#G9(\"W9#!W1$#W-&!G-!!VY\"\"'%#\"W1!\"W!$!FY!!F]!\"'!)\"FY##&U%\"6Q&#F9'"
+ "";
diff --git a/hacks/glx/boxed.man b/hacks/glx/boxed.man
new file mode 100644
index 0000000..4233446
--- /dev/null
+++ b/hacks/glx/boxed.man
@@ -0,0 +1,56 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+boxed - draws a box full of 3D bouncing balls that explode.
+.SH SYNOPSIS
+.B boxed
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Draws a box full of 3D bouncing balls that explode.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Sander van Grieken. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Sander van Grieken.
diff --git a/hacks/glx/bubble3d.c b/hacks/glx/bubble3d.c
new file mode 100644
index 0000000..9cd2afc
--- /dev/null
+++ b/hacks/glx/bubble3d.c
@@ -0,0 +1,281 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* bubble3d.c - 3D bubbles */
+
+#if 0
+static const char sccsid[] = "@(#)bubble3d.c 4.11 98/06/16 xlockmore";
+#endif
+
+/*-
+ * BUBBLE3D (C) 1998 Richard W.M. Jones.
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ * 16-Jun-98: Written.
+ *
+ * bubble.c: This code is responsible for creating and managing
+ * bubbles over their lifetime.
+ * The bubbles may be drawn inside out.
+ */
+
+#include "bubble3d.h"
+
+typedef struct bubble {
+ GLfloat *contributions; /* List of contributions from each
+ * nudge to each vertex. This list has
+ * length nr_vertices * nr_nudge_axes.
+ */
+ GLfloat x, y, z; /* (x,y,z) location of the bubble. */
+ GLfloat scale; /* Scaling factor applied to bubble. */
+ GLfloat y_incr, scale_incr; /* Change in y and scale each frame. */
+ GLfloat rotx, roty, rotz; /* Current rotation. */
+ GLfloat rotx_incr, roty_incr, rotz_incr; /* Amount by which we increase
+ * rotation each step.
+ */
+ GLfloat *nudge_angle; /* Current angle (radians) of each
+ * nudge. This list has length nr_nudge_axes.
+ */
+ GLfloat *nudge_angle_incr; /* Amount by which we increase each nudge
+ * angle in each frame.
+ */
+ GLfloat color[4];
+} bubble;
+
+/* Should be taken care of already... but just in case */
+#if !defined( __GNUC__ ) && !defined(__cplusplus) && !defined(c_plusplus)
+#undef inline
+#define inline /* */
+#endif
+static inline void
+normalize(GLfloat v[3])
+{
+ GLfloat d = (GLfloat) sqrt((double) (v[0] * v[0] + v[1] * v[1] +
+ v[2] * v[2]));
+
+ if (d != 0) {
+ v[0] /= d;
+ v[1] /= d;
+ v[2] /= d;
+ } else {
+ v[0] = v[1] = v[2] = 0;
+ }
+}
+
+static inline GLfloat
+dotprod(GLfloat * v1, GLfloat * v2)
+{
+ return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
+}
+
+static inline GLfloat
+max(GLfloat a, GLfloat b)
+{
+ return a > b ? a : b;
+}
+
+/* Create a new bubble. */
+void *
+glb_bubble_new(glb_data *d, GLfloat x, GLfloat y, GLfloat z, GLfloat scale,
+ GLfloat y_incr, GLfloat scale_incr)
+{
+ int i, j;
+
+ /* GLfloat axes [glb_config.nr_nudge_axes][3]; */
+ GLfloat axes[5][3]; /* HARD CODED for SunCC */
+ int nr_vertices;
+ glb_vertex *vertices = glb_sphere_get_vertices(d, &nr_vertices);
+
+ bubble *b = (bubble *) malloc(sizeof *b);
+
+ if (b == 0)
+ return 0;
+
+ if (glb_config.bubble_colour[0] == -1.0) {
+ b->color[0] = ((float) (NRAND(100)) / 100.0);
+ b->color[1] = ((float) (NRAND(100)) / 100.0);
+ b->color[2] = ((float) (NRAND(100)) / 100.0);
+ } else {
+ b->color[0] = glb_config.bubble_colour[0];
+ b->color[1] = glb_config.bubble_colour[1];
+ b->color[2] = glb_config.bubble_colour[2];
+ }
+ b->color[3] = glb_config.bubble_colour[3];
+
+
+ b->contributions = (GLfloat *) malloc(sizeof (GLfloat) * nr_vertices *
+ glb_config.nr_nudge_axes);
+ if (b->contributions == 0) {
+ (void) free((void *) b);
+ return 0;
+ }
+ b->nudge_angle = (GLfloat *) malloc(sizeof (GLfloat) * glb_config.nr_nudge_axes);
+ if (b->nudge_angle == 0) {
+ (void) free((void *) b->contributions);
+ (void) free((void *) b);
+ return 0;
+ }
+ b->nudge_angle_incr = (GLfloat *) malloc(sizeof (GLfloat) * glb_config.nr_nudge_axes);
+ if (b->nudge_angle_incr == 0) {
+ (void) free((void *) b->nudge_angle);
+ (void) free((void *) b->contributions);
+ (void) free((void *) b);
+ return 0;
+ }
+ /* Initialize primitive elements. */
+ b->x = x;
+ b->y = y;
+ b->z = z;
+ b->scale = scale;
+ b->y_incr = y_incr;
+ b->scale_incr = scale_incr;
+ b->rotx = b->roty = b->rotz = 0;
+ b->rotx_incr = glb_drand() * glb_config.rotation_factor * 2
+ - glb_config.rotation_factor;
+ b->roty_incr = glb_drand() * glb_config.rotation_factor * 2
+ - glb_config.rotation_factor;
+ b->rotz_incr = glb_drand() * glb_config.rotation_factor * 2
+ - glb_config.rotation_factor;
+
+ /* Initialize the nudge angle arrays. */
+ for (i = 0; i < glb_config.nr_nudge_axes; ++i) {
+ b->nudge_angle[i] = 0;
+ b->nudge_angle_incr[i] = glb_drand() * glb_config.nudge_angle_factor;
+ }
+
+ /* Choose some random nudge axes. */
+ for (i = 0; i < glb_config.nr_nudge_axes; ++i) {
+ axes[i][0] = glb_drand() * 2 - 1;
+ axes[i][1] = glb_drand() * 2 - 1;
+ axes[i][2] = glb_drand() * 2 - 1;
+ normalize(axes[i]);
+ }
+
+ /* Calculate the contribution that each nudge axis has on each vertex. */
+ for (i = 0; i < nr_vertices; ++i)
+ for (j = 0; j < glb_config.nr_nudge_axes; ++j)
+ b->contributions[i * glb_config.nr_nudge_axes + j]
+ = max(0, dotprod(vertices[i], axes[j]));
+
+ return (void *) b;
+}
+
+/* Delete a bubble and free up all memory. */
+void
+glb_bubble_delete(void *bb)
+{
+ bubble *b = (bubble *) bb;
+
+ if (b != NULL) {
+ if (b->nudge_angle_incr) {
+ (void) free((void *) b->nudge_angle_incr);
+ b->nudge_angle_incr = NULL;
+ }
+ if (b->nudge_angle) {
+ (void) free((void *) b->nudge_angle);
+ b->nudge_angle = NULL;
+ }
+ if (b->contributions) {
+ (void) free((void *) b->contributions);
+ b->contributions = NULL;
+ }
+ (void) free((void *) b);
+ b = NULL;
+ }
+}
+
+/* Rotate and wobble a bubble by a single step. */
+void
+glb_bubble_step(void *bb)
+{
+ int i;
+ bubble *b = (bubble *) bb;
+
+ /* Update the rotation. */
+ b->rotx += b->rotx_incr;
+ b->roty += b->roty_incr;
+ b->rotz += b->rotz_incr;
+
+ /* Update the nudge angles. */
+ for (i = 0; i < glb_config.nr_nudge_axes; ++i)
+ b->nudge_angle[i] += b->nudge_angle_incr[i];
+
+ /* Move it upwards & outwards. */
+ b->y += b->y_incr;
+ b->scale += b->scale_incr;
+}
+
+/* Draw a bubble. */
+void
+glb_bubble_draw(glb_data *d, void *bb)
+{
+ int i, j;
+ bubble *b = (bubble *) bb;
+ int nr_vertices;
+ glb_vertex *vertices = glb_sphere_get_vertices(d, &nr_vertices);
+ int nr_triangles;
+ glb_triangle *triangles = glb_sphere_get_triangles(d, &nr_triangles);
+ glb_vertex *new_vertices;
+
+ new_vertices = (glb_vertex *) malloc(sizeof (glb_vertex) * nr_vertices);
+ /* Calculate the vertices of this bubble, factoring in each nudge axis. */
+ for (i = 0; i < nr_vertices; ++i) {
+ GLfloat s = 0;
+
+ for (j = 0; j < glb_config.nr_nudge_axes; ++j)
+ s += ((GLfloat) cos((double) (b->nudge_angle[j])) *
+ glb_config.nudge_factor - glb_config.nudge_factor / 2) *
+ b->contributions[i * glb_config.nr_nudge_axes + j];
+
+ new_vertices[i][0] = vertices[i][0] * (s + 1);
+ new_vertices[i][1] = vertices[i][1] * (s + 1);
+ new_vertices[i][2] = vertices[i][2] * (s + 1);
+ }
+
+ glPushMatrix();
+
+ /* Apply translation, rotation and scalings. */
+ glTranslatef(b->x, b->y, b->z);
+
+ glRotatef(b->rotx, 1, 0, 0);
+ glRotatef(b->roty, 0, 1, 0);
+ glRotatef(b->rotz, 0, 0, 1);
+
+ glScalef(b->scale, b->scale, b->scale);
+
+ /* Draw the bubble. */
+ glFrontFace(GL_CW);
+ glBegin(GL_TRIANGLES);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, b->color);
+
+ for (i = 0; i < nr_triangles; ++i) {
+ glNormal3fv(new_vertices[triangles[i][0]]);
+ glVertex3fv(new_vertices[triangles[i][0]]);
+ glNormal3fv(new_vertices[triangles[i][1]]);
+ glVertex3fv(new_vertices[triangles[i][1]]);
+ glNormal3fv(new_vertices[triangles[i][2]]);
+ glVertex3fv(new_vertices[triangles[i][2]]);
+ }
+ glEnd();
+ glPopMatrix();
+ (void) free((void *) new_vertices);
+ glb_config.polygon_count += nr_triangles;
+}
+
+/* Return y value. */
+GLfloat
+glb_bubble_get_y(void *bb)
+{
+ bubble *b = (bubble *) bb;
+
+ return b->y;
+}
diff --git a/hacks/glx/bubble3d.h b/hacks/glx/bubble3d.h
new file mode 100644
index 0000000..92ccbbd
--- /dev/null
+++ b/hacks/glx/bubble3d.h
@@ -0,0 +1,100 @@
+/* GLBUBBLES (C) 1998 Richard W.M. Jones. */
+
+#ifndef __bubbles3d_h__
+#define __bubbles3d_h__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifdef STANDALONE
+# include <math.h>
+# include "xlockmoreI.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#if !defined(HAVE_JWXYZ) && !defined(HAVE_JWZGLES)
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+/* Static configuration. */
+#define GLB_SLOW_GL 0 /* Set this if you have a slow GL
+ * implementation. If you have an accelerated
+ * graphics card, set this to 0.
+ */
+#define GLB_VERTICES_EPSILON 0.0005 /* How close are identical vertices? */
+
+/* Configuration structure. */
+struct glb_config {
+ int transparent_p; /* Whether to use alpha blending */
+
+ int subdivision_depth; /* Controls how many triangles are in
+ * each bubble. 2 and 3 are good values.
+ */
+ int nr_nudge_axes; /* Number of directions in which each
+ * bubble gets stretched. Values between
+ * 3 and 7 seem to produce good results.
+ */
+ GLfloat nudge_angle_factor; /* Max. amount of rotation in nudge angles.
+ * Controls the amount of `wobble' we see,
+ * and 0.3 seems to work well.
+ */
+ GLfloat nudge_factor; /* Max. displacement of any single nudge.
+ * Controls the amount of the wobble. Depends
+ * on NR_NUDGE_AXES, and must not exceed
+ * 1 / NR_NUDGE_AXES. 0.1 is good.
+ */
+ GLfloat rotation_factor; /* Max. amount by which bubbles rotate. */
+ int create_bubbles_every; /* How often to create new bubbles. */
+ int max_bubbles; /* Max. number of bubbles to create. */
+ double p_bubble_group[4]; /* Probabilities of creating 1, 2, 3, 4
+ * bubbles in a group. Cumulative.
+ */
+ GLfloat max_size; /* Max. size. */
+ GLfloat min_size; /* Min. size of bubbles. */
+ GLfloat max_speed; /* Max. speed. */
+ GLfloat min_speed; /* Min. speed of bubbles. */
+ GLfloat scale_factor; /* Factor by which bubbles scale from bottom
+ * of screen to top. 1.5 - 2.0 are OK.
+ */
+ GLfloat screen_bottom; /* Bottom of screen. */
+ GLfloat screen_top; /* Top of screen. */
+ GLfloat bubble_colour[4]; /* Colour of the bubbles. */
+
+ int polygon_count;
+};
+
+extern struct glb_config glb_config;
+
+#define glb_drand() ((double)LRAND() / (double)MAXRAND)
+
+/*-- From glb_sphere.c. --*/
+typedef struct glb_data glb_data;
+typedef GLfloat glb_vertex[3];
+typedef GLuint glb_triangle[3];
+extern glb_data * glb_sphere_init(void);
+extern glb_vertex *glb_sphere_get_vertices(glb_data *, int *nr_vertices);
+extern glb_triangle *glb_sphere_get_triangles(glb_data *, int *nr_triangles);
+extern void glb_sphere_end(glb_data *);
+
+/*-- From glb_bubble.c. --*/
+extern void *glb_bubble_new(glb_data *d,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat scale,
+ GLfloat y_incr, GLfloat scale_incr);
+extern void glb_bubble_delete(void *);
+extern void glb_bubble_step(void *);
+extern void glb_bubble_draw(glb_data *d, void *);
+extern GLfloat glb_bubble_get_y(void *);
+
+/*-- From glb_draw.c. --*/
+extern void *glb_draw_init(void);
+extern void glb_draw_step(void *);
+extern void glb_draw_end(void *);
+
+#endif /* __bubbles3d_h__ */
diff --git a/hacks/glx/bubble3d.man b/hacks/glx/bubble3d.man
new file mode 100644
index 0000000..f847e12
--- /dev/null
+++ b/hacks/glx/bubble3d.man
@@ -0,0 +1,62 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+bubble3d - 3d rising bubbles.
+.SH SYNOPSIS
+.B bubble3d
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-transparent]
+[\-color \fIcolor\fP]
+[\-fps]
+.SH DESCRIPTION
+Draws a stream of rising, undulating 3D bubbles, rising toward the top of
+the screen, with nice specular reflections.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-transparent
+Draw transparent bubbles instead of solid ones.
+.TP 8
+.B \-color \fIcolor\fP
+Draw bubbles of the specified color. "Random" means a different color
+for each bubble.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 15000 (0.015 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Richard Jones. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Richard Jones.
diff --git a/hacks/glx/buildlwo.c b/hacks/glx/buildlwo.c
new file mode 100644
index 0000000..c20c9e2
--- /dev/null
+++ b/hacks/glx/buildlwo.c
@@ -0,0 +1,96 @@
+
+#if 0
+static const char sccsid[] = "@(#)buildlwo.c 4.02 97/04/20 xlockmore";
+#endif
+
+/*-
+ * buildlwo.c: Lightwave Object Display List Builder for OpenGL
+ *
+ * This module can be called by any GL mode wishing to use
+ * objects created in NewTek's Lightwave 3D. The objects must
+ * first be converted to C source with my converter "lw2ogl".
+ * If other people are interested in this, I will put up a
+ * web page for it at http://www.netaxs.com/~emackey/lw2ogl/
+ *
+ * by Ed Mackey, 4/19/97
+ *
+ */
+
+#ifndef STANDALONE
+#include "xlock.h"
+#endif
+
+#ifdef USE_GL
+
+#include "buildlwo.h"
+
+GLuint
+BuildLWO(int wireframe, const struct lwo *object)
+{
+ GLuint dl_num;
+ const GLfloat *pnts, *normals, *grab;
+ const unsigned short int *pols;
+ GLfloat three[3];
+ int p, num_pnts = 0;
+
+ dl_num = glGenLists(1);
+ if (!dl_num)
+ return (0);
+
+ pnts = object->pnts;
+ normals = object->normals;
+ pols = object->pols;
+
+ glNewList(dl_num, GL_COMPILE);
+
+ if (!pols) {
+ num_pnts = object->num_pnts;
+ glBegin(GL_POINTS);
+ for (p = 0; p < num_pnts; ++p) {
+ three[0] = *(pnts++);
+ three[1] = *(pnts++);
+ three[2] = *(pnts++);
+ glVertex3fv(three);
+ }
+ glEnd();
+ } else
+ for (;;) {
+ if (num_pnts <= 0) {
+ num_pnts = *pols + 2;
+ if (num_pnts < 3)
+ break;
+ if (num_pnts == 3) {
+ glBegin(GL_POINTS);
+ } else if (num_pnts == 4) {
+ glBegin(GL_LINES);
+ } else {
+ three[0] = *(normals++);
+ three[1] = *(normals++);
+ three[2] = *(normals++);
+ glNormal3fv(three);
+ if (wireframe)
+ glBegin(GL_LINE_LOOP);
+ else
+ glBegin(GL_POLYGON);
+ }
+ } else if (num_pnts == 1) {
+ glEnd();
+ } else {
+ grab = pnts + ((int) (*pols) * 3);
+ three[0] = *(grab++);
+ three[1] = *(grab++);
+ three[2] = *(grab);
+ glVertex3fv(three);
+ }
+ --num_pnts;
+ ++pols;
+ }
+
+ glEndList();
+
+ return (dl_num);
+}
+
+#endif /* USE_GL */
+
+/* End of buildlwo.c */
diff --git a/hacks/glx/buildlwo.h b/hacks/glx/buildlwo.h
new file mode 100644
index 0000000..b7fbbd9
--- /dev/null
+++ b/hacks/glx/buildlwo.h
@@ -0,0 +1,43 @@
+/*-
+ * buildlwo.h: Header file for Lightwave Object Display List Builder
+ * for OpenGL
+ *
+ * by Ed Mackey, 4/19/97
+ *
+ */
+
+#ifndef __BUILD_LWO_H__
+#define __BUILD_LWO_H__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifdef STANDALONE
+# ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+# endif
+#endif
+
+#ifdef HAVE_ANDROID
+# include <GLES/gl.h>
+#endif
+
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+struct lwo {
+ int num_pnts;
+ const GLfloat *pnts;
+ const GLfloat *normals;
+ const unsigned short int *pols;
+ const GLfloat *smoothnormals;
+};
+
+GLuint BuildLWO(int wireframe, const struct lwo *object);
+
+#endif
+
+/* End of buildlwo.h */
diff --git a/hacks/glx/cage.c b/hacks/glx/cage.c
new file mode 100644
index 0000000..66f48aa
--- /dev/null
+++ b/hacks/glx/cage.c
@@ -0,0 +1,480 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* cage --- the Impossible Cage, an Escher like scene. */
+
+#if 0
+static const char sccsid[] = "@(#)cage.c 5.01 2001/03/01 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The RotateAroundU() routine was adapted from the book
+ * "Computer Graphics Principles and Practice
+ * Foley - vanDam - Feiner - Hughes
+ * Second Edition" Pag. 227, exercise 5.15.
+ *
+ * This mode shows some interesting scenes that are impossible OR very
+ * wierd to build in the real universe. Much of the scenes are inspirated
+ * on Mauritz Cornelis Escher's works which derivated the mode's name.
+ * M.C. Escher (1898-1972) was a dutch artist and many people prefer to
+ * say he was a mathematician.
+ *
+ * Thanks goes to Brian Paul for making it possible and inexpensive to use
+ * OpenGL at home.
+ *
+ * Since I'm not a native English speaker, my apologies for any grammatical
+ * mistakes.
+ *
+ * My e-mail address is
+ * mfvianna@centroin.com.br
+ *
+ * Marcelo F. Vianna (Jun-01-1997)
+ *
+ * Revision History:
+ * 05-Apr-2002: Removed all gllist uses (fix some bug with nvidia driver)
+ * 01-Mar-2001: Added FPS stuff E.Lassauge <lassauge@mail.dotcom.fr>
+ * 01-Nov-2000: Allocation checks
+ * 01-Jan-1998: Mode separated from escher and renamed
+ * 08-Jun-1997: New scene implemented: "Impossible Cage" based in a M.C.
+ * Escher's painting with the same name (quite similar). The
+ * first GL mode to use texture mapping.
+ * The "Impossible Cage" scene doesn't use DEPTH BUFFER, the
+ * wood planks are drawn consistently using GL_CULL_FACE, and
+ * the painter's algorithm is used to sort the planks.
+ * Marcelo F. Vianna.
+ * 07-Jun-1997: Speed ups in Moebius Strip using GL_CULL_FACE.
+ * Marcelo F. Vianna.
+ * 03-Jun-1997: Initial Release (Only one scene: "Moebius Strip")
+ * The Moebius Strip scene was inspirated in a M.C. Escher's
+ * painting named Moebius Strip II in wich ants walk across a
+ * Moebius Strip path, sometimes meeting each other and sometimes
+ * being in "opposite faces" (note that the moebius strip has
+ * only one face and one edge).
+ * Marcelo F. Vianna.
+ */
+
+/*-
+ * Texture mapping is only available on RGBA contexts, Mono and color index
+ * visuals DO NOT support texture mapping in OpenGL.
+ *
+ * BUT Mesa do implements RGBA contexts in pseudo color visuals, so texture
+ * mapping shuld work on PseudoColor, DirectColor, TrueColor using Mesa. Mono
+ * is not officially supported for both OpenGL and Mesa, but seems to not crash
+ * Mesa.
+ *
+ * In real OpenGL, PseudoColor DO NOT support texture map (as far as I know).
+ */
+
+#ifdef STANDALONE
+# define MODE_cage
+# define DEFAULTS "*delay: 25000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_cage 0
+# define release_cage 0
+# define cage_handle_event xlockmore_no_events
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef MODE_cage
+
+#if 0
+#include "e_textures.h"
+#else
+#include "ximage-loader.h"
+#include "images/gen/wood_png.h"
+#endif
+
+ENTRYPOINT ModeSpecOpt cage_opts =
+{0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL};
+
+#ifdef USE_MODULES
+ModStruct cage_description =
+{"cage", "init_cage", "draw_cage", NULL,
+ "draw_cage", "change_cage", (char *) NULL, &cage_opts,
+ 25000, 1, 1, 1, 1.0, 4, "",
+ "Shows the Impossible Cage, an Escher-like GL scene", 0, NULL};
+
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 0.4
+
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+#define ObjWoodPlank 0
+#define MaxObj 1
+
+/*************************************************************************/
+
+typedef struct {
+ GLint WindH, WindW;
+ GLfloat step;
+ GLXContext *glx_context;
+} cagestruct;
+
+static const float front_shininess[] = {60.0};
+static const float front_specular[] = {0.7, 0.7, 0.7, 1.0};
+static const float ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const float diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const float position0[] = {1.0, 1.0, 1.0, 0.0};
+static const float position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const float lmodel_twoside[] = {GL_TRUE};
+
+static const float MaterialWhite[] = {0.7, 0.7, 0.7, 1.0};
+
+static cagestruct *cage = (cagestruct *) NULL;
+
+#define PlankWidth 3.0
+#define PlankHeight 0.35
+#define PlankThickness 0.15
+
+static Bool
+draw_woodplank(ModeInfo *mi, cagestruct * cp, int wire)
+{
+ glBegin(wire ? GL_LINES : GL_QUADS);
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(0, 0);
+ glVertex3f(-PlankWidth, -PlankHeight, PlankThickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(PlankWidth, -PlankHeight, PlankThickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(PlankWidth, PlankHeight, PlankThickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-PlankWidth, PlankHeight, PlankThickness);
+ mi->polygon_count++;
+ glNormal3f(0, 0, -1);
+ glTexCoord2f(0, 0);
+ glVertex3f(-PlankWidth, PlankHeight, -PlankThickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(PlankWidth, PlankHeight, -PlankThickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(PlankWidth, -PlankHeight, -PlankThickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-PlankWidth, -PlankHeight, -PlankThickness);
+ mi->polygon_count++;
+ glNormal3f(0, 1, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(-PlankWidth, PlankHeight, PlankThickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(PlankWidth, PlankHeight, PlankThickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(PlankWidth, PlankHeight, -PlankThickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-PlankWidth, PlankHeight, -PlankThickness);
+ mi->polygon_count++;
+ glNormal3f(0, -1, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(-PlankWidth, -PlankHeight, -PlankThickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(PlankWidth, -PlankHeight, -PlankThickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(PlankWidth, -PlankHeight, PlankThickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-PlankWidth, -PlankHeight, PlankThickness);
+ mi->polygon_count++;
+ glNormal3f(1, 0, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(PlankWidth, -PlankHeight, PlankThickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(PlankWidth, -PlankHeight, -PlankThickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(PlankWidth, PlankHeight, -PlankThickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(PlankWidth, PlankHeight, PlankThickness);
+ mi->polygon_count++;
+ glNormal3f(-1, 0, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(-PlankWidth, PlankHeight, PlankThickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(-PlankWidth, PlankHeight, -PlankThickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(-PlankWidth, -PlankHeight, -PlankThickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-PlankWidth, -PlankHeight, PlankThickness);
+ mi->polygon_count++;
+ glEnd();
+
+ return True;
+}
+
+static Bool
+draw_impossiblecage(ModeInfo *mi, cagestruct * cp, int wire)
+{
+ glPushMatrix();
+ glRotatef(90, 0, 1, 0);
+ glTranslatef(0.0, PlankHeight - PlankWidth, -PlankThickness - PlankWidth);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(90, 0, 0, 1);
+ glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth - PlankThickness);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(90, 0, 1, 0);
+ glTranslatef(0.0, PlankWidth - PlankHeight, -PlankThickness - PlankWidth);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glTranslatef(0.0, PlankWidth - PlankHeight, 3 * PlankThickness - PlankWidth);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(90, 0, 0, 1);
+ glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth - PlankThickness);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth - 3 * PlankThickness);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glTranslatef(0.0, PlankHeight - PlankWidth, 3 * PlankThickness - PlankWidth);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(90, 0, 0, 1);
+ glTranslatef(0.0, PlankHeight - PlankWidth, PlankThickness - PlankWidth);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth - 3 * PlankThickness);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(90, 0, 1, 0);
+ glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth + PlankThickness);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(90, 0, 0, 1);
+ glTranslatef(0.0, PlankWidth - PlankHeight, PlankThickness - PlankWidth);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(90, 0, 1, 0);
+ glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth + PlankThickness);
+ if (!draw_woodplank(mi, cp, wire))
+ return False;
+ glPopMatrix();
+ return True;
+}
+
+static void
+reshape_cage(ModeInfo * mi, int width, int height)
+{
+ cagestruct *cp = &cage[MI_SCREEN(mi)];
+ int i;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ }
+
+ glViewport(0, y, cp->WindW = (GLint) width, cp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0);
+ glMatrixMode(GL_MODELVIEW);
+ i = width / 512 + 1;
+ glLineWidth(i);
+ glPointSize(i);
+}
+
+static void
+pinit(ModeInfo *mi)
+{
+ /* int status; */
+
+ if (MI_IS_WIREFRAME(mi))
+ return;
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_NORMALIZE);
+ glFrontFace(GL_CCW);
+ glCullFace(GL_BACK);
+
+ /* cage */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
+ glShadeModel(GL_FLAT);
+ glDisable(GL_DEPTH_TEST);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_CULL_FACE);
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+#if 0
+ clear_gl_error();
+ if (MI_IS_MONO(mi))
+ status = 0;
+ else
+ status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
+ WoodTextureWidth, WoodTextureHeight,
+ GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+ if (status)
+ {
+ const char *s = (char *) gluErrorString (status);
+ fprintf (stderr, "%s: error mipmapping texture: %s\n",
+ progname, (s ? s : "(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+#else
+ {
+ XImage *img = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ wood_png, sizeof(wood_png));
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ img->width, img->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, img->data);
+ check_gl_error("texture");
+ XDestroyImage (img);
+ }
+#endif
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+}
+
+ENTRYPOINT void
+init_cage (ModeInfo * mi)
+{
+ cagestruct *cp;
+
+ MI_INIT (mi, cage);
+ cp = &cage[MI_SCREEN(mi)];
+
+ cp->step = NRAND(90);
+ if ((cp->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_cage(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ pinit(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_cage (ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ cagestruct *cp;
+
+ if (cage == NULL)
+ return;
+ cp = &cage[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+ if (!cp->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+ glXMakeCurrent(display, window, *(cp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glTranslatef(0.0, 0.0, -10.0);
+
+ if (!MI_IS_ICONIC(mi)) {
+ glScalef(Scale4Window * cp->WindH / cp->WindW, Scale4Window, Scale4Window);
+ } else {
+ glScalef(Scale4Iconic * cp->WindH / cp->WindW, Scale4Iconic, Scale4Iconic);
+ }
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ if (o != 0 && o != 180 && o != -180) {
+ glScalef (1/h, h, 1/h); /* #### not quite right */
+ h = 1.7;
+ glScalef (h, h, h);
+ }
+ }
+# endif
+
+ /* cage */
+ glRotatef(cp->step * 100, 0, 0, 1);
+ glRotatef(25 + cos(cp->step * 5) * 6, 1, 0, 0);
+ glRotatef(204.5 - sin(cp->step * 5) * 8, 0, 1, 0);
+ if (!draw_impossiblecage(mi, cp, MI_IS_WIREFRAME(mi))) {
+ MI_ABORT(mi);
+ return;
+ }
+
+ glPopMatrix();
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+
+ glXSwapBuffers(display, window);
+
+ cp->step += 0.025;
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_cage (ModeInfo * mi)
+{
+ cagestruct *cp = &cage[MI_SCREEN(mi)];
+
+ if (!cp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cp->glx_context));
+ pinit(mi);
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("Cage", cage)
+
+#endif
diff --git a/hacks/glx/cage.man b/hacks/glx/cage.man
new file mode 100644
index 0000000..dc5595b
--- /dev/null
+++ b/hacks/glx/cage.man
@@ -0,0 +1,61 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+cage - Escher's impossible cage, for xscreensaver.
+.SH SYNOPSIS
+.B cage
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-mono]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+This draws Escher's "Impossible Cage", a 3d analog of a moebius strip,
+and rotates it in three dimensions.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 25000 (0.03 seconds.).
+.TP 8
+.B \-mono
+Render solid instead of textured.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of textured.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Marcelo Vianna. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Marcelo Vianna.
diff --git a/hacks/glx/carousel.c b/hacks/glx/carousel.c
new file mode 100644
index 0000000..863b1a5
--- /dev/null
+++ b/hacks/glx/carousel.c
@@ -0,0 +1,941 @@
+/* carousel, Copyright (c) 2005-2018 Jamie Zawinski <jwz@jwz.org>
+ * Loads a sequence of images and rotates them around.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Created: 21-Feb-2005
+ */
+
+#if defined(HAVE_COCOA) || defined(HAVE_ANDROID)
+# define DEF_FONT "OCR A Std 48, Lucida Console 48, Monaco 48"
+#elif 0 /* real X11, XQueryFont() */
+# define DEF_FONT "-*-helvetica-bold-r-normal-*-*-480-*-*-*-*-*-*"
+#else /* real X11, load_font_retry() */
+# define DEF_FONT "-*-ocr a std-medium-r-*-*-*-480-*-*-m-*-*-*"
+#endif
+
+#define DEF_TITLE_FONT "-*-helvetica-bold-r-normal-*-*-480-*-*-*-*-*-*"
+
+#define DEFAULTS "*count: 7 \n" \
+ "*delay: 10000 \n" \
+ "*wireframe: False \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*useSHM: True \n" \
+ "*font: " DEF_FONT "\n" \
+ "*titleFont: " DEF_TITLE_FONT "\n" \
+ "*desktopGrabber: xscreensaver-getimage -no-desktop %s\n" \
+ "*grabDesktopImages: False \n" \
+ "*chooseRandomImages: True \n"
+
+# define free_carousel 0
+# define release_carousel 0
+# include "xlockmore.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#ifdef USE_GL
+
+# define DEF_SPEED "1.0"
+# define DEF_DURATION "20"
+# define DEF_TITLES "True"
+# define DEF_ZOOM "True"
+# define DEF_TILT "XY"
+# define DEF_MIPMAP "True"
+# define DEF_DEBUG "False"
+
+#include "rotator.h"
+#include "gltrackball.h"
+#include "grab-ximage.h"
+#include "texfont.h"
+
+# ifndef HAVE_JWXYZ
+# include <X11/Intrinsic.h> /* for XrmDatabase in -debug mode */
+# endif
+
+/* Should be in <GL/glext.h> */
+# ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+# endif
+# ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
+typedef struct {
+ double x, y, w, h;
+} rect;
+
+typedef enum { EARLY, NORMAL, LOADING, OUT, IN, DEAD } fade_mode;
+static int fade_ticks = 60;
+
+typedef struct {
+ char *title; /* the filename of this image */
+ int w, h; /* size in pixels of the image */
+ int tw, th; /* size in pixels of the texture */
+ XRectangle geom; /* where in the image the bits are */
+ GLuint texid;
+} image;
+
+typedef struct {
+ ModeInfo *mi;
+ image current, loading;
+ GLfloat r, theta; /* radius and rotation on the tube */
+ rotator *rot; /* for zoomery */
+ Bool from_top_p; /* whether this image drops in or rises up */
+ time_t expires; /* when this image should be replaced */
+ fade_mode mode; /* in/out animation state */
+ int mode_tick;
+ Bool loaded_p; /* whether background load is done */
+} image_frame;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ GLfloat anisotropic;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ time_t button_down_time;
+
+ int nframes; /* how many frames are loaded */
+ int frames_size;
+ image_frame **frames; /* pointers to the frames */
+
+ Bool awaiting_first_images_p;
+ int loads_in_progress;
+
+ texture_font_data *texfont, *titlefont;
+
+ fade_mode mode;
+ int mode_tick;
+
+ int loading_sw, loading_sh;
+
+ time_t last_time, now;
+ int draw_tick;
+
+} carousel_state;
+
+static carousel_state *sss = NULL;
+
+
+/* Command-line arguments
+ */
+static GLfloat speed; /* animation speed scale factor */
+static int duration; /* reload images after this long */
+static Bool mipmap_p; /* Use mipmaps instead of single textures. */
+static Bool titles_p; /* Display image titles. */
+static Bool zoom_p; /* Throb the images in and out as they spin. */
+static char *tilt_str;
+static Bool tilt_x_p; /* Tilt axis towards the viewer */
+static Bool tilt_y_p; /* Tilt axis side to side */
+static Bool debug_p; /* Be loud and do weird things. */
+
+
+static XrmOptionDescRec opts[] = {
+ {"-zoom", ".zoom", XrmoptionNoArg, "True" },
+ {"-no-zoom", ".zoom", XrmoptionNoArg, "False" },
+ {"-tilt", ".tilt", XrmoptionSepArg, 0 },
+ {"-no-tilt", ".tilt", XrmoptionNoArg, "" },
+ {"-titles", ".titles", XrmoptionNoArg, "True" },
+ {"-no-titles", ".titles", XrmoptionNoArg, "False" },
+ {"-mipmaps", ".mipmap", XrmoptionNoArg, "True" },
+ {"-no-mipmaps", ".mipmap", XrmoptionNoArg, "False" },
+ {"-duration", ".duration", XrmoptionSepArg, 0 },
+ {"-debug", ".debug", XrmoptionNoArg, "True" },
+ {"-font", ".font", XrmoptionSepArg, 0 },
+ {"-speed", ".speed", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ { &mipmap_p, "mipmap", "Mipmap", DEF_MIPMAP, t_Bool},
+ { &debug_p, "debug", "Debug", DEF_DEBUG, t_Bool},
+ { &titles_p, "titles", "Titles", DEF_TITLES, t_Bool},
+ { &zoom_p, "zoom", "Zoom", DEF_ZOOM, t_Bool},
+ { &tilt_str, "tilt", "Tilt", DEF_TILT, t_String},
+ { &speed, "speed", "Speed", DEF_SPEED, t_Float},
+ { &duration, "duration", "Duration", DEF_DURATION, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt carousel_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Allocates a frame structure and stores it in the list.
+ */
+static image_frame *
+alloc_frame (ModeInfo *mi)
+{
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+ image_frame *frame = (image_frame *) calloc (1, sizeof (*frame));
+
+ frame->mi = mi;
+ frame->mode = EARLY;
+ frame->rot = make_rotator (0, 0, 0, 0, 0.04 * frand(1.0) * speed, False);
+
+ glGenTextures (1, &frame->current.texid);
+ glGenTextures (1, &frame->loading.texid);
+ if (frame->current.texid <= 0) abort();
+ if (frame->loading.texid <= 0) abort();
+
+ if (ss->frames_size <= ss->nframes)
+ {
+ ss->frames_size = (ss->frames_size * 1.2) + ss->nframes;
+ ss->frames = (image_frame **)
+ realloc (ss->frames, ss->frames_size * sizeof(*ss->frames));
+ if (! ss->frames)
+ {
+ fprintf (stderr, "%s: out of memory (%d images)\n",
+ progname, ss->frames_size);
+ exit (1);
+ }
+ }
+
+ ss->frames[ss->nframes++] = frame;
+
+ return frame;
+}
+
+
+static void image_loaded_cb (const char *filename, XRectangle *geom,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure);
+
+
+/* Load a new file into the given image struct.
+ */
+static void
+load_image (ModeInfo *mi, image_frame *frame)
+{
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (debug_p && !wire && frame->current.w != 0)
+ fprintf (stderr, "%s: dropped %4d x %-4d %4d x %-4d \"%s\"\n",
+ progname,
+ frame->current.geom.width,
+ frame->current.geom.height,
+ frame->current.tw, frame->current.th,
+ (frame->current.title ? frame->current.title : "(null)"));
+
+ switch (frame->mode)
+ {
+ case EARLY: break;
+ case NORMAL: frame->mode = LOADING; break;
+ default: abort();
+ }
+
+ ss->loads_in_progress++;
+
+ if (wire)
+ image_loaded_cb (0, 0, 0, 0, 0, 0, frame);
+ else
+ {
+ int w = (MI_WIDTH(mi) / 2) - 1;
+ int h = (MI_HEIGHT(mi) / 2) - 1;
+ if (w <= 10) w = 10;
+ if (h <= 10) h = 10;
+
+ if (w > h * 5) { /* tiny window: use 16:9 boxes */
+ h = w * 9/16;
+ }
+
+ load_texture_async (mi->xgwa.screen, mi->window, *ss->glx_context, w, h,
+ mipmap_p, frame->loading.texid,
+ image_loaded_cb, frame);
+ }
+}
+
+
+/* Callback that tells us that the texture has been loaded.
+ */
+static void
+image_loaded_cb (const char *filename, XRectangle *geom,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ image_frame *frame = (image_frame *) closure;
+ ModeInfo *mi = frame->mi;
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (wire)
+ {
+ frame->loading.w = MI_WIDTH (mi) * (0.5 + frand (1.0));
+ frame->loading.h = MI_HEIGHT (mi);
+ frame->loading.geom.width = frame->loading.w;
+ frame->loading.geom.height = frame->loading.h;
+ goto DONE;
+ }
+
+ if (image_width == 0 || image_height == 0)
+ exit (1);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR);
+
+ if (ss->anisotropic >= 1.0)
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT,
+ ss->anisotropic);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ frame->loading.w = image_width;
+ frame->loading.h = image_height;
+ frame->loading.tw = texture_width;
+ frame->loading.th = texture_height;
+ frame->loading.geom = *geom;
+
+ if (frame->loading.title)
+ free (frame->loading.title);
+ frame->loading.title = (filename ? strdup (filename) : 0);
+
+ /* xscreensaver-getimage returns paths relative to the image directory
+ now, so leave the sub-directory part in. Unless it's an absolute path.
+ */
+ if (frame->loading.title && frame->loading.title[0] == '/')
+ { /* strip filename to part after last /. */
+ char *s = strrchr (frame->loading.title, '/');
+ if (s) strcpy (frame->loading.title, s+1);
+ }
+
+ if (debug_p)
+ fprintf (stderr, "%s: loaded %4d x %-4d %4d x %-4d \"%s\"\n",
+ progname,
+ frame->loading.geom.width,
+ frame->loading.geom.height,
+ frame->loading.tw, frame->loading.th,
+ (frame->loading.title ? frame->loading.title : "(null)"));
+
+ DONE:
+
+ frame->loaded_p = True;
+
+ if (ss->loads_in_progress <= 0) abort();
+ ss->loads_in_progress--;
+
+ /* This image expires N seconds after it finished loading. */
+ frame->expires = time((time_t *) 0) + (duration * MI_COUNT(mi));
+
+ switch (frame->mode)
+ {
+ case EARLY: /* part of the initial batch of images */
+ {
+ image swap = frame->current;
+ frame->current = frame->loading;
+ frame->loading = swap;
+ }
+ break;
+ case LOADING: /* start dropping the old image out */
+ {
+ frame->mode = OUT;
+ frame->mode_tick = fade_ticks / speed;
+ frame->from_top_p = random() & 1;
+ }
+ break;
+ default:
+ abort();
+ }
+}
+
+
+static void loading_msg (ModeInfo *mi, int n);
+
+static Bool
+load_initial_images (ModeInfo *mi)
+{
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+ Bool all_loaded_p = True;
+ for (i = 0; i < ss->nframes; i++)
+ if (! ss->frames[i]->loaded_p)
+ all_loaded_p = False;
+
+ if (all_loaded_p)
+ {
+ if (ss->nframes < MI_COUNT (mi))
+ {
+ /* The frames currently on the list are fully loaded.
+ Start the next one loading. (We run the image loader
+ asynchronously, but we load them one at a time.)
+ */
+ load_image (mi, alloc_frame (mi));
+ }
+ else
+ {
+ /* The first batch of images are now all loaded!
+ Stagger the expire times so that they don't all drop out at once.
+ */
+ time_t now = time((time_t *) 0);
+ int i;
+
+ for (i = 0; i < ss->nframes; i++)
+ {
+ image_frame *frame = ss->frames[i];
+ frame->r = 1.0;
+ frame->theta = i * 360.0 / ss->nframes;
+ frame->expires = now + (duration * (i + 1));
+ frame->mode = NORMAL;
+ }
+
+ /* Instead of always going clockwise, shuffle the expire times
+ of the frames so that they drop out in a random order.
+ */
+ for (i = 0; i < ss->nframes; i++)
+ {
+ image_frame *frame1 = ss->frames[i];
+ image_frame *frame2 = ss->frames[random() % ss->nframes];
+ time_t swap = frame1->expires;
+ frame1->expires = frame2->expires;
+ frame2->expires = swap;
+ }
+
+ ss->awaiting_first_images_p = False;
+ }
+ }
+
+ loading_msg (mi, ss->nframes-1);
+
+ return !ss->awaiting_first_images_p;
+}
+
+
+ENTRYPOINT void
+reshape_carousel (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (60.0, 1/h, 1.0, 8.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 2.6,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+carousel_handle_event (ModeInfo *mi, XEvent *event)
+{
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ if (! ss->button_down_p)
+ ss->button_down_time = time((time_t *) 0);
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ if (ss->button_down_p)
+ {
+ /* Add the time the mouse was held to the expire times of all
+ frames, so that mouse-dragging doesn't count against
+ image expiration.
+ */
+ int secs = time((time_t *) 0) - ss->button_down_time;
+ int i;
+ for (i = 0; i < ss->nframes; i++)
+ ss->frames[i]->expires += secs;
+ }
+ }
+
+ if (gltrackball_event_handler (event, ss->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &ss->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ int i = random() % ss->nframes;
+ ss->frames[i]->expires = 0;
+ return True;
+ }
+
+ return False;
+}
+
+
+/* Kludge to add "-v" to invocation of "xscreensaver-getimage" in -debug mode
+ */
+static void
+hack_resources (Display *dpy)
+{
+# ifndef HAVE_JWXYZ
+ char *res = "desktopGrabber";
+ char *val = get_string_resource (dpy, res, "DesktopGrabber");
+ char buf1[255];
+ char buf2[255];
+ XrmValue value;
+ XrmDatabase db = XtDatabase (dpy);
+ sprintf (buf1, "%.100s.%.100s", progname, res);
+ sprintf (buf2, "%.200s -v", val);
+ value.addr = buf2;
+ value.size = strlen(buf2);
+ XrmPutResource (&db, buf1, "String", &value);
+# endif /* !HAVE_JWXYZ */
+}
+
+
+static void
+loading_msg (ModeInfo *mi, int n)
+{
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ char text[100];
+
+ if (wire) return;
+
+ if (n == 0)
+ sprintf (text, "Loading images...");
+ else
+ sprintf (text, "Loading images... (%d%%)",
+ (int) (n * 100 / MI_COUNT(mi)));
+
+ if (ss->loading_sw == 0)
+ {
+ /* only do this once, so that the string doesn't move. */
+ XCharStruct e;
+ texture_string_metrics (ss->titlefont, text, &e, 0, 0);
+ ss->loading_sw = e.width;
+ ss->loading_sh = e.ascent + e.descent;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+/*
+ {
+ double rot = current_device_rotation();
+ glRotatef(rot, 0, 0, 1);
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+ glScalef (s, 1/s, 1);
+ }
+ }
+*/
+
+# ifdef HAVE_MOBILE
+ if (MI_WIDTH(mi) < MI_HEIGHT(mi)) /* portrait orientation */
+ {
+ GLfloat s = (MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi));
+ glScalef (s, s, s);
+ glTranslatef(-s/2, 0, 0);
+ }
+# endif
+
+ glOrtho(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi), -1, 1);
+ glTranslatef ((MI_WIDTH(mi) - ss->loading_sw) / 2,
+ (MI_HEIGHT(mi) - ss->loading_sh) / 2,
+ 0);
+ glColor3f (1, 1, 0);
+ glEnable (GL_TEXTURE_2D);
+ glDisable (GL_DEPTH_TEST);
+ print_texture_string (ss->titlefont, text);
+ glEnable (GL_DEPTH_TEST);
+ glPopMatrix();
+
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ glMatrixMode(GL_MODELVIEW);
+
+ glFinish();
+ glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi));
+}
+
+
+ENTRYPOINT void
+init_carousel (ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ carousel_state *ss;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, sss);
+ ss = &sss[screen];
+
+ if ((ss->glx_context = init_GL(mi)) != NULL) {
+ reshape_carousel (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ if (!tilt_str || !*tilt_str)
+ ;
+ else if (!strcasecmp (tilt_str, "0"))
+ ;
+ else if (!strcasecmp (tilt_str, "X"))
+ tilt_x_p = 1;
+ else if (!strcasecmp (tilt_str, "Y"))
+ tilt_y_p = 1;
+ else if (!strcasecmp (tilt_str, "XY"))
+ tilt_x_p = tilt_y_p = 1;
+ else
+ {
+ fprintf (stderr, "%s: tilt must be 'X', 'Y', 'XY' or '', not '%s'\n",
+ progname, tilt_str);
+ exit (1);
+ }
+
+ {
+ double spin_speed = speed * 0.2; /* rotation of tube around axis */
+ double spin_accel = speed * 0.1;
+ double wander_speed = speed * 0.001; /* tilting of axis */
+
+ spin_speed *= 0.9 + frand(0.2);
+ wander_speed *= 0.9 + frand(0.2);
+
+ ss->rot = make_rotator (spin_speed, spin_speed, spin_speed,
+ spin_accel, wander_speed, True);
+
+ ss->trackball = gltrackball_init (False);
+ }
+
+ if (strstr ((char *) glGetString(GL_EXTENSIONS),
+ "GL_EXT_texture_filter_anisotropic"))
+ glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &ss->anisotropic);
+ else
+ ss->anisotropic = 0.0;
+
+ glDisable (GL_LIGHTING);
+ glEnable (GL_DEPTH_TEST);
+ glDisable (GL_CULL_FACE);
+
+ if (! wire)
+ {
+ glShadeModel (GL_SMOOTH);
+ glEnable (GL_LINE_SMOOTH);
+ /* This gives us a transparent diagonal slice through each image! */
+ /* glEnable (GL_POLYGON_SMOOTH); */
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_ALPHA_TEST);
+
+ glEnable (GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset (1.0, 1.0);
+
+ }
+
+ ss->texfont = load_texture_font (MI_DISPLAY(mi), "font");
+ ss->titlefont = load_texture_font (MI_DISPLAY(mi), "titleFont");
+
+ if (debug_p)
+ hack_resources (MI_DISPLAY (mi));
+
+ ss->nframes = 0;
+ ss->frames_size = 10;
+ ss->frames = (image_frame **)
+ calloc (1, ss->frames_size * sizeof(*ss->frames));
+
+ ss->mode = IN;
+ ss->mode_tick = fade_ticks / speed;
+
+ ss->awaiting_first_images_p = True;
+}
+
+
+static void
+draw_frame (ModeInfo *mi, image_frame *frame, time_t now, Bool body_p)
+{
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+
+ GLfloat texw = frame->current.geom.width / (GLfloat) frame->current.tw;
+ GLfloat texh = frame->current.geom.height / (GLfloat) frame->current.th;
+ GLfloat texx1 = frame->current.geom.x / (GLfloat) frame->current.tw;
+ GLfloat texy1 = frame->current.geom.y / (GLfloat) frame->current.th;
+ GLfloat texx2 = texx1 + texw;
+ GLfloat texy2 = texy1 + texh;
+ GLfloat aspect = ((GLfloat) frame->current.geom.height /
+ (GLfloat) frame->current.geom.width);
+
+ glBindTexture (GL_TEXTURE_2D, frame->current.texid);
+
+ glPushMatrix();
+
+ /* Position this image on the wheel.
+ */
+ glRotatef (frame->theta, 0, 1, 0);
+ glTranslatef (0, 0, frame->r);
+
+ /* Scale down the image so that all N frames fit on the wheel
+ without bumping in to each other.
+ */
+ {
+ GLfloat t, s;
+ switch (ss->nframes)
+ {
+ case 1: t = -1.0; s = 1.7; break;
+ case 2: t = -0.8; s = 1.6; break;
+ case 3: t = -0.4; s = 1.5; break;
+ case 4: t = -0.2; s = 1.3; break;
+ default: t = 0.0; s = 6.0 / ss->nframes; break;
+ }
+ glTranslatef (0, 0, t);
+ glScalef (s, s, s);
+ }
+
+ /* Center this image on the wheel plane.
+ */
+ glTranslatef (-0.5, -(aspect/2), 0);
+
+ /* Move as per the "zoom in and out" setting.
+ */
+ if (zoom_p)
+ {
+ double x, y, z;
+ /* Only use the Z component of the rotator for in/out position. */
+ get_position (frame->rot, &x, &y, &z, !ss->button_down_p);
+ glTranslatef (0, 0, z/2);
+ }
+
+ /* Compute the "drop in and out" state.
+ */
+ switch (frame->mode)
+ {
+ case EARLY:
+ abort();
+ break;
+ case NORMAL:
+ if (!ss->button_down_p &&
+ now >= frame->expires &&
+ ss->loads_in_progress == 0) /* only load one at a time */
+ load_image (mi, frame);
+ break;
+ case LOADING:
+ break;
+ case OUT:
+ if (--frame->mode_tick <= 0) {
+ image swap = frame->current;
+ frame->current = frame->loading;
+ frame->loading = swap;
+
+ frame->mode = IN;
+ frame->mode_tick = fade_ticks / speed;
+ }
+ break;
+ case IN:
+ if (--frame->mode_tick <= 0)
+ frame->mode = NORMAL;
+ break;
+ default:
+ abort();
+ }
+
+ /* Now translate for current in/out state.
+ */
+ if (frame->mode == OUT || frame->mode == IN)
+ {
+ GLfloat t = (frame->mode == OUT
+ ? frame->mode_tick / (fade_ticks / speed)
+ : (((fade_ticks / speed) - frame->mode_tick + 1) /
+ (fade_ticks / speed)));
+ t = 5 * (1 - t);
+ if (frame->from_top_p) t = -t;
+ glTranslatef (0, t, 0);
+ }
+
+ if (body_p) /* Draw the image quad. */
+ {
+ if (! wire)
+ {
+ glColor3f (1, 1, 1);
+ glNormal3f (0, 0, 1);
+ glEnable (GL_TEXTURE_2D);
+ glBegin (GL_QUADS);
+ glNormal3f (0, 0, 1);
+ glTexCoord2f (texx1, texy2); glVertex3f (0, 0, 0);
+ glTexCoord2f (texx2, texy2); glVertex3f (1, 0, 0);
+ glTexCoord2f (texx2, texy1); glVertex3f (1, aspect, 0);
+ glTexCoord2f (texx1, texy1); glVertex3f (0, aspect, 0);
+ glEnd();
+ }
+
+ /* Draw a box around it.
+ */
+ glLineWidth (2.0);
+ glColor3f (0.5, 0.5, 0.5);
+ glDisable (GL_TEXTURE_2D);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (1, 0, 0);
+ glVertex3f (1, aspect, 0);
+ glVertex3f (0, aspect, 0);
+ glEnd();
+
+ }
+ else /* Draw a title under the image. */
+ {
+ XCharStruct e;
+ int sw, sh;
+ GLfloat scale = 0.05;
+ char *title = frame->current.title ? frame->current.title : "(untitled)";
+ texture_string_metrics (ss->texfont, title, &e, 0, 0);
+ sw = e.width;
+ sh = e.ascent + e.descent;
+
+ glTranslatef (0, -scale, 0);
+
+ scale /= sh;
+ glScalef (scale, scale, scale);
+
+ glTranslatef (((1/scale) - sw) / 2, 0, 0);
+ glColor3f (1, 1, 1);
+
+ if (!wire)
+ {
+ glEnable (GL_TEXTURE_2D);
+ print_texture_string (ss->texfont, title);
+ }
+ else
+ {
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (sw, 0, 0);
+ glVertex3f (sw, sh, 0);
+ glVertex3f (0, sh, 0);
+ glEnd();
+ }
+ }
+
+ glPopMatrix();
+}
+
+
+ENTRYPOINT void
+draw_carousel (ModeInfo *mi)
+{
+ carousel_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+
+ if (!ss->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(ss->glx_context));
+
+ if (ss->awaiting_first_images_p)
+ if (!load_initial_images (mi))
+ return;
+
+ /* Only check the wall clock every 10 frames */
+ {
+ if (ss->now == 0 || ss->draw_tick++ > 10)
+ {
+ ss->now = time((time_t *) 0);
+ if (ss->last_time == 0) ss->last_time = ss->now;
+ ss->draw_tick = 0;
+ }
+ }
+
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+
+ /* Run the startup "un-shrink" animation.
+ */
+ switch (ss->mode)
+ {
+ case IN:
+ if (--ss->mode_tick <= 0)
+ {
+ ss->mode = NORMAL;
+ ss->last_time = time((time_t *) 0);
+ }
+ break;
+ case NORMAL:
+ break;
+ default:
+ abort();
+ }
+
+
+ /* Scale as per the startup "un-shrink" animation.
+ */
+ if (ss->mode != NORMAL)
+ {
+ GLfloat s = (ss->mode == OUT
+ ? ss->mode_tick / (fade_ticks / speed)
+ : (((fade_ticks / speed) - ss->mode_tick + 1) /
+ (fade_ticks / speed)));
+ glScalef (s, s, s);
+ }
+
+ /* Rotate and tilt as per the user, and the motion modeller.
+ */
+ {
+ double x, y, z;
+ gltrackball_rotate (ss->trackball);
+
+ /* Tilt the tube up or down by up to 30 degrees */
+ get_position (ss->rot, &x, &y, &z, !ss->button_down_p);
+ if (tilt_x_p)
+ glRotatef (15 - (x * 30), 1, 0, 0);
+ if (tilt_y_p)
+ glRotatef (7 - (y * 14), 0, 0, 1);
+
+ /* Only use the Y component of the rotator. */
+ get_rotation (ss->rot, &x, &y, &z, !ss->button_down_p);
+ glRotatef (y * 360, 0, 1, 0);
+ }
+
+ /* First draw each image, then draw the titles. GL insists that you
+ draw back-to-front in order to make alpha blending work properly,
+ so we need to draw all of the 100% opaque images before drawing
+ any of the not-100%-opaque titles.
+ */
+ for (i = 0; i < ss->nframes; i++)
+ draw_frame (mi, ss->frames[i], ss->now, True);
+ if (titles_p)
+ for (i = 0; i < ss->nframes; i++)
+ draw_frame (mi, ss->frames[i], ss->now, False);
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi));
+}
+
+XSCREENSAVER_MODULE ("Carousel", carousel)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/carousel.man b/hacks/glx/carousel.man
new file mode 100644
index 0000000..d5c9e43
--- /dev/null
+++ b/hacks/glx/carousel.man
@@ -0,0 +1,109 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+carousel - displays multiple images rotating in a circular formation
+.SH SYNOPSIS
+.B carousel
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fIint\fP]
+[\-zoom | \-no\-zoom]
+[\-tilt \fIXY\fP]
+[\-titles | \-no\-titles]
+[\-font \fIfont\fP]
+[\-speed \fIratio\fP]
+[\-duration \fIseconds\fP]
+[\-fps]
+[\-debug]
+[\-wireframe]
+.SH DESCRIPTION
+Loads several random images, and displays them flying in a circular
+formation. The circle changes speed and direction randomly, tilts on
+its axis, and the images move in and out.
+
+This program requires a good video card capable of supporting large
+textures.
+
+To specify the directory that images are loaded from, run
+.BR xscreensaver-demo (1)
+and click on the "Advanced" tab.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fIint\fP
+How many images to display. Default 7.
+.TP 8
+.B \-zoom \fB| \-no\-zoom\fP
+Whether the images should move in and out (toward and away from the
+axis of rotation). Default true.
+.TP 8
+.B \-tilt \fIXY\fP \fB| \-no\-tilt\fP
+Whether the axis of rotation should tilt, and how. \fB-tilt X\fP
+means that it will tilt toward and away from the viewer.
+\fB-tilt Y\fP means that it will tilt to the left and right of the
+screen. \fB-tilt XY\fP (the default) means it will do both.
+.TP 8
+.B \-titles \fB| \-no\-titles\fP
+Whether to display the file names of the images beneath them. Default: yes.
+.TP 8
+.B \-font \fIfont-name\fP
+The font to use for titles. Note that the size of the font affects
+the clarity of the characters, not their size (it is auto-scaled.)
+.TP 8
+.B \-duration \fIseconds\fP
+Every \fIduration\fP seconds, one of the images will be replaced
+with a new one. Default 20 seconds.
+.TP 8
+.B \-speed \fIratio\fP
+Speed up or slow down the animation. 0.5 means half as fast as the
+default; 2.0 means twice as fast.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-debug
+Prints debugging info to stderr.
+.TP 8
+.B \-wireframe
+Another debug mode.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver-demo (1)
+.BR xscreensaver-getimage (1)
+.BR xscreensaver (1)
+.BR glslideshow (MANSUFFIX)
+.BR photopile (MANSUFFIX)
+.SH COPYRIGHT
+Copyright \(co 2005 by Jamie Zawinski.
+
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/chessgames.h b/hacks/glx/chessgames.h
new file mode 100644
index 0000000..28f5c57
--- /dev/null
+++ b/hacks/glx/chessgames.h
@@ -0,0 +1,343 @@
+/*
+ * endgame -- plays through a chess game ending. enjoy.
+ *
+ * Copyright (C) 2002 Blair Tennessy (tennessy@cs.ubc.ca)
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __CHESSGAMES_H__
+#define __CHESSGAMES_H__
+
+/** structure for a chess game */
+typedef struct {
+
+ /** original board configuration */
+ int board[BOARDSIZE][BOARDSIZE];
+
+ /** total moves */
+ int movecount;
+
+ /**
+ moves in game. this is a slight hack: moves are encoded in
+ integer pairs (x,y). the first pair, _from_, determines the
+ piece to move. the second pair, _to_, determines where to move.
+
+ in case _to_ is held by another piece, that piece is taken.
+ (see drawTakePiece(), draw_chess())
+
+ in case the move promotes a pawn, we assume a queening.
+ (see drawMovingPiece())
+
+ what's lacking?
+ castling, en passant, under-promotions.
+ */
+ int moves[40][4];
+} ChessGame;
+
+#define GAMES 7
+static ChessGame games[GAMES] = {
+
+ /**
+ game 1:
+
+ E. N. Somov-Nasimovitsch
+ White to play and win.
+
+ "Zadachi I Etiudi"
+ 1928
+ */
+ {
+ {
+ { 0, 0, 0, 0, 0, BKING, 0, 0},
+ { BPAWN, 0, BPAWN, 0, BPAWN, 0, 0, 0},
+ { 0, 0, BPAWN, 0, BPAWN, 0, 0, KNIGHT},
+ { PAWN, 0, ROOK, 0, 0, 0, 0, 0},
+ { PAWN, 0, 0, 0, KING, PAWN, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { BPAWN, 0, 0, 0, 0, 0, 0, PAWN},
+ { BBISHOP,0, 0, 0, 0, 0, 0, 0},
+ },
+
+ 24,
+
+ {
+ {3, 2, 6, 2},
+ {7, 0, 6, 1},
+ {6, 2, 6, 6},
+ {0, 5, 0, 4},
+ {6, 6, 0, 6},
+ {0, 4, 1, 3},
+ {2, 7, 1, 5},
+ {2, 2, 3, 2},
+ {0, 6, 0, 3},
+ {1, 3, 2, 2},
+ {0, 3, 6, 3},
+ {3, 2, 4, 2}, /* pawn to bishop 5 */
+ {1, 5, 0, 3}, /* check */
+ {2, 2, 3, 2},
+ {0, 3, 2, 4}, /* takes pawn */
+ {3, 2, 2, 2},
+ {2, 4, 0, 3},
+ {2, 2, 3, 2},
+ {6, 3, 6, 1}, /* rook takes bishop */
+ {6, 0, 7, 0},
+ {6, 1, 3, 1},
+ {3, 2, 2, 3},
+ {3, 1, 3, 3},
+ {0, 0, 2, 3},
+ }
+ },
+
+ /**
+ game 2:
+
+ K. A. L. Kubbel
+ White to play and win.
+
+ "Chess in the USSR"
+ 1936
+ */
+ {
+ {
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, BPAWN},
+ { 0, 0, 0, 0, BPAWN, KING, 0, BKING},
+ { 0, 0, 0, 0, 0, ROOK, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0,BBISHOP, 0, 0, BROOK, 0, PAWN, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0,BISHOP, 0, 0},
+ },
+
+ 10,
+
+ {
+ {3, 5, 6, 5},
+ {5, 1, 7, 3},
+ {6, 5, 6, 7}, /* check */
+ {7, 3, 3, 7},
+ {7, 5, 6, 4},
+ {5, 4, 6, 4},
+ {5, 6, 4, 6}, /* ! */
+ {6, 4, 6, 7},
+ {4, 6, 3, 6},
+ {0, 0, 2, 7}
+ }
+ },
+
+ /**
+ game 3:
+
+ J. Hasek
+ White to play and win.
+
+ "Le Strategie"
+ 1929
+ */
+ {
+ {
+ { 0, 0, 0, KNIGHT, 0, 0, 0, KNIGHT},
+ { 0, KING, BPAWN, BPAWN, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, BKING, 0, 0, 0, 0, 0, 0},
+ { 0, PAWN, 0, 0, 0, BPAWN, 0, 0},
+ { PAWN, 0, PAWN, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ },
+
+ 11,
+
+ {
+ {0, 3, 2, 2},
+ {1, 3, 2, 2},
+ {0, 7, 2, 6},
+ {4, 5, 5, 5},
+ {2, 6, 3, 4},
+ {5, 5, 6, 5},
+ {3, 4, 5, 3}, /* ! */
+ {6, 5, 7, 5},
+ {5, 3, 6, 1},
+ {0, 0, 0, 0}, /* mull it over... */
+ {0, 0, 3, 1}
+ }
+ },
+
+ /**
+ game 4:
+
+ M.B. Newman
+ White to play and win.
+
+ "Chess Amateur"
+ 1913
+ */
+ {
+ {
+ { 0, 0, 0, 0, BQUEEN, 0, 0, 0},
+ {BKNIGHT, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, PAWN},
+ { BKING, 0, BISHOP, 0, KNIGHT, 0, 0, 0},
+ { PAWN, 0, 0, 0, KNIGHT, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { KING, 0, 0, 0, 0, 0, 0, 0},
+ },
+
+ 15,
+
+ {
+ {4, 2, 3, 1},
+ {0, 4, 3, 1}, /* queen wins bishop */
+ {4, 4, 5, 2},
+ {4, 0, 5, 0}, /* king takes pawn */
+ {5, 2, 3, 1}, /* knight takes queen, check */
+ {1, 0, 3, 1}, /* knight takes knight */
+ {3, 7, 2, 7}, /* pawn advances */
+ {3, 1, 2, 3},
+ {5, 4, 4, 2},
+ {2, 3, 4, 2},
+ {2, 7, 1, 7}, /* pawn advances */
+ {4, 2, 2, 3},
+ {1, 7, 0, 7},
+ {0, 0, 0, 0},
+ {0, 0, 5, 0}
+ }
+ },
+
+ /**
+ game 5:
+
+ V.A. Korolikov
+ White to play and win
+
+ First Prize - "Truda"
+ 1935
+ */
+ {
+ {
+ { 0, 0, BISHOP, 0, 0, 0, 0, 0},
+ { BPAWN, ROOK, 0, 0, 0, 0, 0, 0},
+ { 0, 0, BPAWN, PAWN, 0, BKING, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, KING, BBISHOP},
+ { 0, 0, 0, 0, BPAWN, 0, PAWN, 0},
+ { 0, 0, 0, 0, 0, BPAWN, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ },
+
+ 21,
+
+ {
+ {2, 3, 1, 3}, /* pawn to q7 */
+ {2, 5, 1, 4}, /* cover with king */
+ {1, 1, 0, 1},
+ {4, 7, 5, 6}, /* bishop takes pawn */
+ {0, 1, 0, 0}, /* r - r8 */
+ {6, 5, 7, 5}, /* queened */
+ {1, 3, 0, 3}, /* white pawn promoted */
+ {1, 4, 0, 3}, /* king takes queen */
+ {0, 2, 2, 0}, /* discovered check */
+ {5, 6, 0, 1}, /* pull back bishop */
+ {2, 0, 7, 5}, /* bishop takes queen */
+ {0, 3, 1, 2},
+ {7, 5, 2, 0}, /* save rook */
+ {5, 4, 6, 4},
+ {2, 0, 6, 4}, /* bishop takes pawn */
+ {1, 2, 1, 1}, /* king moves in */
+ {6, 4, 5, 5},
+ {1, 1, 0, 0},
+ {5, 5, 2, 2},
+ {0, 0, 0, 0},
+ {0, 0, 0, 0}
+ }
+ },
+
+ /**
+ game 6:
+
+ T.B. Gorgiev
+ White to play and win
+
+ First Prize - "64"
+ 1929
+ */
+ {
+ {
+ { 0, 0, 0, 0, 0, 0, KNIGHT, 0},
+ { BKNIGHT, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, BKING, BKNIGHT, 0, 0, 0},
+ { KING, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, KNIGHT, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, BISHOP, 0, 0, 0},
+ },
+
+ 13,
+
+ {
+ {3, 0, 2, 1}, /* king on move */
+ {1, 0, 0, 2}, /* check */
+ {2, 1, 1, 1},
+ {0, 2, 1, 4}, /* knight moves on */
+ {7, 4, 5, 6}, /* bishop puts king in check */
+ {2, 3, 1, 3}, /* king moves back */
+ {0, 6, 2, 5}, /* knight moves in, check */
+ {1, 3, 0, 3}, /* king moves back queen */
+ {5, 6, 1, 2}, /* bishop - b7 ch!! */
+ {2, 4, 1, 2}, /* black knight takes bishop */
+ {4, 6, 3, 4}, /* knight to k5 */
+ {0, 0, 0, 0}, /* mate */
+ {0, 0, 0, 0}
+ }
+ },
+
+ /**
+ game 7:
+
+ K. A. L. Kubbel
+ White to play and win
+
+ "Schachmatny Listok"
+ 1922
+ */
+ {
+ {
+ { 0, KNIGHT, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ { KING, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, BKING, 0, 0, 0, 0},
+ { 0, 0, 0, BPAWN, 0, 0, 0, BISHOP},
+ { BPAWN, 0, 0, 0, 0, 0, 0, 0},
+ { 0, 0, PAWN, PAWN, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, 0, 0},
+ },
+
+ 12,
+
+ {
+ {0, 1, 2, 2}, /* kt-b6 */
+ {3, 3, 2, 2}, /* k x kt */
+ {4, 7, 2, 5}, /* b-b6 */
+ {2, 2, 3, 3}, /* king back to original position */
+ {6, 3, 5, 3}, /* p-q3! */
+ {5, 0, 6, 0}, /* p-r7 */
+ {6, 2, 4, 2}, /* p-b4ch */
+ {3, 3, 3, 2}, /* king moves, black cannot capture in passing */
+ {2, 0, 1, 1}, /* k-kt7! */
+ {6, 0, 7, 0}, /* promo */
+ {2, 5, 1, 4}, /* mate */
+ {0, 0, 3, 2},
+ }
+ },
+};
+
+#endif /* __CHESSGAMES_H__ */
diff --git a/hacks/glx/chessmodels.c b/hacks/glx/chessmodels.c
new file mode 100644
index 0000000..7dd7eca
--- /dev/null
+++ b/hacks/glx/chessmodels.c
@@ -0,0 +1,1738 @@
+/*
+ * models for the xss chess screensavers
+ * hacked from:
+ *
+ * glChess - A 3D chess interface
+ *
+ * Copyright (C) 2006 John-Paul Gignac <jjgignac@users.sf.net>
+ *
+ * Copyright (C) 2002 Robert Ancell <bob27@users.sourceforge.net>
+ * Michael Duelli <duelli@users.sourceforge.net>
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* chessmodels.c: Contains the code for piece model creation */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include <math.h>
+#include <stdlib.h>
+
+#ifndef HAVE_JWXYZ
+# include <GL/glx.h>
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_ANDROID
+#include <GLES/gl.h>
+#define Bool int
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "chessmodels.h"
+
+/* End of Data */
+#define ENDOFDATA 65535
+
+/* Section headers */
+#define SPIN 65534
+#define VERTICES 65533
+#define QUADS 65532
+#define TRIANGLES 65531
+#define POLARQUADSTRIP 65530
+#define QUADSTRIP 65529
+
+/* Special spin-related commands */
+#define SEAM 65528
+#define PATTERN 65527
+#define STEPUP 65526
+#define STEPDOWN 65525
+#define SETBACKREF 65524
+#define BACKREF 65523
+
+static unsigned short classic_pawn_data[] = {
+ SPIN,16,
+ 350,0,SEAM,350,200,SEAM,250,300,SEAM,250,400,SEAM,150,600,SEAM,100,880,
+ SEAM,180,880,SEAM,100,920,SEAM,200,1160,SEAM,100,1340,0,1340,
+ ENDOFDATA
+};
+
+static unsigned short classic_rook_data[] = {
+ SPIN,16,
+ 380,0,SEAM,380,200,SEAM,260,500,SEAM,200,1020,SEAM,280,1020,SEAM,280,1360,SEAM,220,1360,SEAM,220,1300,0,1300,
+ ENDOFDATA
+};
+
+static unsigned short classic_knight_data[] = {
+ SPIN,16,
+ 410,0,SEAM,410,200,SEAM,200,360,SEAM,200,480,260,580,
+
+ VERTICES,
+ 260,580,260, -260,580,260, -260,580,-80, 260,580,-80, 80,1620,400,
+ 100,1680,340, -100,1680,340, -80,1620,400, 100,1680,340, 100,1680,300,
+ -100,1680,300, -100,1680,340, 100,1680,300, 50,1680,160, -50,1680,160,
+ -100,1680,300, 50,1680,160, 100,1680,20, -100,1680,20, -50,1680,160,
+ 100,1680,20, 100,1680,-20, -100,1680,-20, -100,1680,20, 100,1680,-20,
+ 40,1680,-110, -40,1680,-110, -100,1680,-20, 40,1680,-110,
+ 100,1680,-200, -100,1680,-200, -40,1680,-110, 100,1680,-200,
+ 100,1680,-440, -100,1680,-440, -100,1680,-200, -100,1680,-440,
+ 100,1680,-440, 100,1500,-440, -100,1500,-440, -100,1500,-440,
+ 100,1500,-440, 55,1480,-280, -55,1480,-280, -100,1680,300, -50,1680,160,
+ -100,1400,130, -120,1380,240, -50,1680,160, -80,1680,20, -120,1380,20,
+ -100,1400,130, -83,1660,20, -80,1680,20, -100,1680,-20, -100,1660,-38,
+ -120,1380,20, -88,1620,20, -100,1620,-74, -120,1360,-20, -120,1360,-20,
+ -100,1620,-74, -100,1580,-110, -60,1400,-140, -100,1680,-200,
+ -55,1480,-280, -60,1400,-140, -100,1580,-110, -100,1680,-200,
+ -100,1680,-440, -100,1500,-440, -55,1480,-280, 100,1680,300,
+ 120,1380,240, 100,1400,130, 50,1680,160, 50,1680,160, 100,1400,130,
+ 120,1380,20, 80,1680,20, 83,1660,20, 100,1660,-38, 100,1680,-20,
+ 80,1680,20, 120,1380,20, 120,1360,-20, 100,1620,-74, 88,1620,20,
+ 120,1360,-20, 60,1400,-140, 100,1580,-110, 100,1620,-74, 100,1680,-200,
+ 100,1580,-110, 60,1400,-140, 55,1480,-280, 100,1680,-200, 55,1480,-280,
+ 100,1500,-440, 100,1680,-440, 88,1620,20, 100,1620,-74, 80,1640,-56,
+ 61,1640,20, 61,1640,20, 80,1640,-56, 100,1660,-38, 83,1660,20,
+ -88,1620,20, -61,1640,20, -80,1640,-56, -100,1620,-74, -61,1640,20,
+ -83,1660,20, -100,1660,-38, -80,1640,-56, 35,1780,-80, 35,1780,-440,
+ -35,1780,-440, -35,1780,-80, 35,1780,-80, 35,1680,-80, 35,1680,-440,
+ 35,1780,-440, -35,1780,-80, -35,1780,-440, -35,1680,-440, -35,1680,-80,
+ 35,1780,-80, -35,1780,-80, -35,1680,-80, 35,1680,-80, 35,1780,-440,
+ 35,1680,-440, -35,1680,-440, -35,1780,-440, -100,1400,130, -120,1380,20,
+ 120,1380,20, 100,1400,130, -100,1400,130, 100,1400,130, 120,1380,240,
+ -120,1380,240, -260,580,-80, -55,1480,-280, 0,1500,-360, 0,780,-400,
+ 260,580,-80, 0,780,-400, 0,1500,-360, 55,1480,-280, -50,1380,40,
+ -200,880,400, 200,880,400, 50,1380,40, -200,880,400, -260,580,260,
+ 260,580,260, 200,880,400, -50,1380,40, -140,1220,-40, -260,580,260,
+ -200,880,400, -140,1220,-40, -114,1220,-222, -260,580,-80, -260,580,260,
+ -55,1480,-280, -114,1220,-222, -140,1220,-40, -60,1400,-140,
+ 50,1380,40, 200,880,400, 260,580,260, 140,1220,-40, 140,1220,-40,
+ 260,580,260, 260,580,-80, 114,1220,-222, 55,1480,-280, 60,1400,-140,
+ 140,1220,-40, 114,1220,-222, 260,580,-80, 144,580,-260, 0,780,-400,
+ 144,580,-260, -144,580,-260, 0,780,-400, -260,580,-80, 0,780,-400,
+ -144,580,-260, 0,1400,400, 80,1620,400, -80,1620,400, 0,1400,400,
+ -80,1620,400, -120,1380,240, -120,1380,240, -80,1620,400, -100,1680,340,
+ -120,1380,240, -100,1680,340, -100,1680,300, 0,1400,400, 120,1380,240,
+ 80,1620,400, 120,1380,240, 100,1680,340, 80,1620,400, 120,1380,240,
+ 100,1680,300, 100,1680,340, 0,1400,400, -120,1380,240, 120,1380,240,
+ -60,1400,-140, -140,1220,-40, -45,1380,-20, -45,1380,-20, -140,1220,-40,
+ -50,1380,40, 60,1400,-140, 45,1380,-20, 140,1220,-40, 45,1380,-20,
+ 50,1380,40, 140,1220,-40, 60,1400,-140, 120,1360,-20, 45,1380,-20,
+ 50,1380,40, 45,1380,-20, 120,1360,-20, 50,1380,40, 120,1360,-20,
+ 120,1380,20, -60,1400,-140, -45,1380,-20, -120,1360,-20, -50,1380,40,
+ -120,1360,-20, -45,1380,-20, -50,1380,40, -120,1380,20, -120,1360,-20,
+ 88,1620,20, 61,1640,20, 83,1660,20, 100,1620,-74, 100,1660,-38,
+ 80,1640,-56, -88,1620,20, -83,1660,20, -61,1640,20, -100,1620,-74,
+ -80,1640,-56, -100,1660,-38, -40,1680,-110, -100,1680,-200,
+ -100,1580,-110, -100,1680,-20, -40,1680,-110, -100,1580,-110,
+ 40,1680,-110, 100,1580,-110, 100,1680,-200, 100,1680,-20, 100,1580,-110,
+ 40,1680,-110,
+
+ QUADS, 0,1,2,3, 4,5,6,7, 8,9,10,11, 12,13,14,15, 16,17,18,19,
+ 20,21,22,23, 24,25,26,27, 28,29,30,31, 32,33,34,35, 36,37,38,39,
+ 40,41,42,43, 44,45,46,47, 48,49,50,51, 52,53,54,55, 56,57,58,59,
+ 60,61,62,63, 64,65,66,67, 68,69,70,71, 72,73,74,75, 76,77,78,79,
+ 80,81,82,83, 84,85,86,87, 88,89,90,91, 92,93,94,95, 96,97,98,99,
+ 100,101,102,103, 104,105,106,107, 108,109,110,111, 112,113,114,115,
+ 116,117,118,119, 120,121,122,123, 124,125,126,127, 128,129,130,131,
+ 132,133,134,135, 136,137,138,139, 140,141,142,143, 144,145,146,147,
+ 148,149,150,151, 152,153,154,155, 156,157,158,159, 160,161,162,163,
+ 164,165,166,167, 168,169,170,171, 172,173,174,175, 176,177,178,179,
+ 180,181,182,183,
+
+ TRIANGLES, 184,185,186, 187,188,189, 190,191,192, 193,194,195,
+ 196,197,198, 199,200,201, 202,203,204, 205,206,207, 208,209,210,
+ 211,212,213, 214,215,216, 217,218,219, 220,221,222, 223,224,225,
+ 226,227,228, 229,230,231, 232,233,234, 235,236,237, 238,239,240,
+ 241,242,243, 244,245,246, 247,248,249, 250,251,252, 253,254,255,
+ 256,257,258, 259,260,261, 262,263,264, 265,266,267, 268,269,270,
+
+ ENDOFDATA
+};
+
+static unsigned short classic_bishop_data[] = {
+ SPIN,16,
+ 400,0,SEAM,400,200,SEAM,250,300,SEAM,250,400,SEAM,150,700,SEAM,120,940,
+ SEAM,250,940,SEAM,170,1100,SEAM,170,1220,SEAM,220,1320,SEAM,220,1480,
+ SEAM,100,1600,SEAM,80,1700,SEAM,120,1770,SEAM,80,1840,0,1840,
+ ENDOFDATA
+};
+
+static unsigned short classic_queen_data[] = {
+ SPIN,16,
+ 480,0,SEAM,480,220,SEAM,340,400,SEAM,340,500,SEAM,180,800,SEAM,140,1180,
+ SEAM,290,1180,SEAM,180,1360,SEAM,180,1520,SEAM,200,1780,SEAM,270,1920,
+ SEAM,240,2000,SEAM,170,2000,SEAM,95,2080,SEAM,70,2080,SEAM,90,2140,
+ SEAM,70,2200,0,2200,
+ ENDOFDATA
+};
+
+static unsigned short classic_king_data[] = {
+ SPIN,16,
+ 500,0,SEAM,500,200,SEAM,350,300,SEAM,350,460,SEAM,200,760,SEAM,140,1260,
+ SEAM,300,1260,SEAM,200,1460,SEAM,200,1560,SEAM,280,1910,SEAM,160,1970,
+ SEAM,160,2010,0,2010,
+
+ VERTICES,
+ -30,2010,35, 30,2010,35, 30,2310,35, -30,2310,35, -90,2110,35,
+ -30,2110,35, -30,2210,35, -90,2210,35, 90,2110,35, 90,2210,35,
+ 30,2210,35, 30,2110,35, 30,2010,-35, -30,2010,-35, -30,2310,-35,
+ 30,2310,-35, -30,2110,-35, -90,2110,-35, -90,2210,-35, -30,2210,-35,
+ 30,2110,-35, 30,2210,-35, 90,2210,-35, 90,2110,-35, -90,2110,35,
+ -90,2210,35, -90,2210,-35, -90,2110,-35, -30,2010,35, -30,2110,35,
+ -30,2110,-35, -30,2010,-35, -30,2210,30, -30,2310,30, -30,2310,-30,
+ -30,2210,-30, 90,2110,-35, 90,2210,-35, 90,2210,35, 90,2110,35,
+ 30,2010,-35, 30,2110,-35, 30,2110,35, 30,2010,35, 30,2210,-35,
+ 30,2310,-35, 30,2310,35, 30,2210,35, -90,2210,-35, -90,2210,35,
+ -30,2210,35, -30,2210,-35, 30,2210,-35, 30,2210,35, 90,2210,35,
+ 90,2210,-35, -30,2310,-35, -30,2310,35, 30,2310,35, 30,2310,-35,
+
+ QUADS, 0,1,2,3, 4,5,6,7, 8,9,10,11, 12,13,14,15, 16,17,18,19,
+ 20,21,22,23, 24,25,26,27, 28,29,30,31, 32,33,34,35, 36,37,38,39,
+ 40,41,42,43, 44,45,46,47, 48,49,50,51, 52,53,54,55, 56,57,58,59,
+
+ ENDOFDATA
+};
+
+static unsigned short knight_data[] = {
+ VERTICES, SETBACKREF,0, 7910,8863,0, 7790,8863,1326, 7433,8863,2611,
+ 6850,8863,3817, 6059,8863,4907, 5084,8863,5847, 3955,8863,6611,
+ 2705,8863,7173, 1373,8863,7517, 0,8863,7633, -1373,8863,7517,
+ -2705,8863,7173, -3955,8863,6611, -5084,8863,5847, -6059,8863,4907,
+ -6850,8863,3817, -7433,8863,2611, -7790,8863,1326, -7910,8863,0,
+ -7790,8863,-1326, -7433,8863,-2611, -6850,8863,-3817,
+ -6059,8863,-4907, -5066,8863,-5896, -3955,8863,-6611,
+ -2705,8863,-7173, -1373,8863,-7517, 0,8863,-7633, 1373,8863,-7517,
+ 2705,8863,-7173, 3955,8863,-6611, 5066,8863,-5896, 6059,8863,-4907,
+ 6850,8863,-3817, 7433,8863,-2611, 7790,8863,-1326, -1183,11744,7939,
+ -1183,12003,7939, -1183,14019,6547, -1183,16307,5288,
+ -1183,16555,5281, -1183,20128,2191, -1134,20304,2131,
+ -1183,20516,2156, -1417,21874,1842, -1417,23109,2185,
+ -1417,23961,3121, -1417,24001,4252, 0,23917,5637, -1418,23893,5418,
+ -1151,23389,6664, -1151,23501,6906, -1151,23806,6987,
+ -1151,24102,6987, -1151,24209,7189, -1151,24371,7513,
+ -1151,24605,7715, -1151,24939,7674, -1313,25568,7149,
+ -1313,25695,7149, -1598,26707,7610, 0,26837,7841, 0,27354,8076,
+ -1598,27262,7839, -1598,27842,7723, 0,27919,7998, 0,28449,7606,
+ -1598,28309,7303, -1302,28414,6723, 0,28544,6980, 0,28540,6197,
+ -1187,28523,5990, -1304,28447,4204, -1158,28789,1627,
+ -561,28931,-1220, -357,29608,-1244, -357,30527,-1441,
+ -357,31249,-1837, -357,31511,-2627, -357,31511,-3484,
+ -357,31118,-4143, -357,30264,-4538, -436,29406,-5256, 0,29409,-5243,
+ -2207,29018,-6763, -914,28658,-6964, 0,26292,-7237, -1305,26324,-7143,
+ -806,23401,-6784, -812,20723,-6228, -796,16757,-6210,
+ -1559,24934,7435, -1566,24633,7460, -1531,24429,7334,
+ -1475,24293,7131, -1440,24203,7004, -1372,23935,7015,
+ -1364,23606,6868, -1389,23515,6705, -1687,28010,6952,
+ -1687,27926,7343, -1687,27629,7491, -1687,27324,7552,
+ -1687,27032,7432, -1687,26791,7148, -1642,27135,7165,
+ -1642,27254,7304, -1642,27397,7364, -1642,27546,7334,
+ -1642,27693,7261, -1642,27737,7088, -1611,10591,8159,
+ -888,9327,-8560, -4491,13292,1032, -3840,15084,786, -3412,17397,397,
+ -2937,20005,-35, -5108,11669,1240, -6344,10251,1395, -6345,10246,1248,
+ -5109,11664,1092, -2964,20022,-132, -3413,17393,250, -3841,15079,638,
+ -4491,13288,885, -3743,13207,-535, -3085,15092,-710, -2727,17642,-878,
+ -2569,20636,-797, -4348,11575,-324, -5584,10108,-169,
+ -5403,10079,-1732, -4167,11644,-1888, -2465,20842,-2651,
+ -2522,18130,-2392, -2905,15407,-2077, -3562,13227,-1951,
+ -3901,13568,-3294, -3243,15993,-3519, -2861,18863,-3735,
+ -2776,22447,-4309, -4486,11792,-3132, -5783,9930,-2931,
+ -5783,9930,-3054, -4486,11792,-3255, -2776,22438,-4430,
+ -2861,18863,-3858, -3243,15993,-3641, -3901,13568,-3417,
+ -6199,9466,4558, -5766,10642,5726, -5228,11829,6090, -4801,12891,6048,
+ -4155,14560,5246, -3546,16847,3719, -3334,17643,2937,
+ -2860,20062,1230, -4822,12054,7102, -5325,10909,7208,
+ -5732,9938,6026, -4026,14701,5522, -2852,20170,1447, -3319,17801,3175,
+ -3538,16955,3935, -4090,13256,1679, -2874,20073,676, -3706,15083,1464,
+ -3301,17348,1117, -5931,10206,1996, -4695,11624,1840,
+ -4445,11658,2844, -5681,10240,3000, -3074,17398,2202,
+ -3456,15117,2468, -3840,13290,2683, -4642,13358,4019,
+ -4257,15194,3908, -6017,10188,3746, -5237,11714,4039,
+ -5621,11218,5077, -5026,12862,5058, -5134,10861,-3154,
+ -4193,12680,-3336, -2832,20609,-4118, -3052,17428,-3750,
+ -3572,14780,-3529, -3579,14774,-3623, -3059,17422,-3843,
+ -2839,20596,-4211, -4200,12674,-3429, -5141,10855,-3248,
+ -3908,13562,-3510, -3250,15987,-3735, -2868,18857,-3952,
+ -4492,11786,-3348, -5789,9924,-3148, -4817,11321,-3298,
+ -5465,10389,-3198, -4054,13118,-3470, -4346,12230,-3389,
+ -2853,19681,-4056, -2825,21511,-4367, -3155,16705,-3789,
+ -2963,18140,-3897, -3744,14168,-3567, -3415,15381,-3679,
+ -845,13482,-6604, -945,10997,-7893, -981,11110,-7735,
+ -859,13469,-6526, -899,9307,-8439, -813,16486,-6146, -832,20681,-6100,
+ -826,23358,-6656, -882,10149,-8148, -913,12323,-7139,
+ -822,14910,-6353, -817,18235,-6210, -827,21937,-6382,
+ -846,21937,-6341, -841,14912,-6313, -931,12326,-7098,
+ -901,10152,-8107, -844,23359,-6615, -851,20681,-6059,
+ -831,16487,-6105, -919,9307,-8399, -869,13482,-6492, -999,11113,-7694,
+ -860,9726,-8255, -942,10578,-7958, -962,11715,-7413, -900,12896,-6796,
+ -863,14065,-6404, -818,15760,-6221, -828,17367,-6171,
+ -854,19800,-5994, -848,21309,-6200, -843,22566,-6482,
+ -3407,15409,-3785, -3736,14196,-3673, -2911,18365,-4048,
+ -3147,16733,-3895, -2726,21608,-4455, -2808,19905,-4191,
+ -4338,12259,-3495, -4046,13146,-3576, -5457,10418,-3304,
+ -4809,11349,-3404, -4484,11815,-3454, -2715,22288,-4534,
+ -2832,19035,-4066, -3242,16015,-3841, -3900,13590,-3616,
+ -5133,10883,-3354, -4171,12742,-3524, -2803,20773,-4339,
+ -3051,17450,-3949, -3571,14803,-3729, -4979,11072,-3368,
+ -5619,10185,-3279, -4119,12924,-3556, -4411,12037,-3475,
+ -2801,20363,-4269, -2721,21826,-4489, -3099,17092,-3922,
+ -2887,18618,-4038, -3653,14499,-3701, -3325,15712,-3813,
+ -3489,15106,-3757, -3818,13893,-3645, -3011,17758,-3971,
+ -3194,16374,-3868, -2755,21085,-4385, -2815,19494,-4139,
+ -4265,12481,-3515, -3973,13368,-3596, -5304,10595,-3318,
+ -4664,11477,-3407, -5441,10207,-3361, -5350,10338,-3375,
+ -5139,10672,-3428, -5058,10742,-3431, -4831,11101,-3457,
+ -4742,11228,-3470, -4516,11559,-3504, -4423,11693,-3518,
+ -4277,12079,-3558, -4232,12180,-3571, -4138,12522,-3597,
+ -4094,12603,-3609, -3979,12935,-3675, -3943,13043,-3671,
+ -3852,13383,-3699, -3813,13496,-3705, -3692,13947,-3767,
+ -3653,14073,-3790, -3506,14587,-3772, -3467,14685,-3777,
+ -3349,15192,-3888, -3308,15317,-3887, -3162,15800,-3957,
+ -3119,15954,-3961, -3009,16528,-3946, -3002,16637,-3937,
+ -2914,17260,-4014, -2909,17347,-4006, -2834,17893,-4049,
+ -2813,18060,-4060, -2760,18849,-4232, -2746,18968,-4242,
+ -850,22569,-6438, -855,21313,-6156, -861,19804,-5949,
+ -834,17371,-6127, -824,15765,-6176, -869,14070,-6360,
+ -906,12901,-6751, -968,11720,-7368, -948,10645,-7895, -865,9731,-8211,
+ -1006,11164,-7630, -875,13487,-6447, -926,9310,-8354,
+ -837,16490,-6061, -857,20684,-6015, -867,23379,-6515,
+ -907,10157,-8062, -937,12331,-7053, -847,14917,-6268,
+ -842,18236,-6111, -852,21941,-6297, -885,9891,-8156, -985,10905,-7724,
+ -947,11969,-7255, -885,13125,-6649, -858,14493,-6314,
+ -839,16049,-6111, -836,17735,-6083, -859,20244,-5982,
+ -891,21559,-6157, -848,22883,-6508, -851,22255,-6367,
+ -856,20999,-6085, -867,19042,-6000, -836,16930,-6094,
+ -835,15341,-6222, -880,13646,-6405, -916,12540,-6953,
+ -981,11337,-7564, -927,10370,-7988, -932,9518,-8285, -931,9583,-8174,
+ -863,9671,-8145, -892,9982,-8037, -903,10075,-7996, -952,10454,-7865,
+ -961,10550,-7832, -1008,10963,-7617, -1018,11105,-7567,
+ -996,11458,-7405, -992,11582,-7342, -972,12080,-7057,
+ -968,12210,-6984, -935,12620,-6792, -931,12759,-6714,
+ -914,13199,-6441, -910,13346,-6359, -915,13767,-6194,
+ -910,13941,-6175, -890,14633,-6107, -886,14783,-6091,
+ -864,15476,-6035, -859,15645,-6017, -870,16062,-5957,
+ -873,16231,-5936, -853,17048,-5965, -861,17185,-5974,
+ -879,17812,-5997, -885,17961,-5997, -851,18486,-6138,
+ -865,18526,-5933, -872,18761,-5875, -870,19337,-5971,
+ -864,19470,-5784, -937,19590,-5786, -833,19023,-6126,
+ -851,20344,-5894, -851,20576,-5912, -855,21086,-5973,
+ -854,21224,-6003, -871,21651,-6070, -852,21853,-6116,
+ -850,22332,-6224, -849,22490,-6259, -831,22924,-6338,
+ -834,23240,-6364, -2743,19661,-4287, -2740,19863,-4312,
+ -2723,20501,-4469, -2705,20711,-4503, -2661,21262,-4565,
+ -2658,21427,-4593, -2687,22088,-4631, -2695,22209,-4643,
+ -2774,23170,-4392, -2633,23103,-4527, -2681,22439,-4516,
+ -2656,22665,-4573, -2552,22727,-4653, -2534,23015,-4628,
+ -2607,23397,-4556, -2759,23681,-4398, -2740,24136,-4370,
+ -2610,24100,-4580, -2412,24481,-5089, -2671,24389,-4569,
+ -2397,24935,-5652, -2562,25022,-5528, -939,23708,-6566,
+ -1009,24359,-6776, -1095,24912,-6886, -1049,24117,-6493,
+ -990,23894,-6415, -2290,23837,-4814, -2312,23612,-4723,
+ -2183,24804,-5574, -2191,24632,-5391, -1156,24771,-6650,
+ -1154,24624,-6586, -1104,24526,-6656, -1281,9161,-8432,
+ -2524,9161,-8046, -3691,9161,-7572, -4745,9161,-6945,
+ -5662,9127,-6096, -3697,9192,-7581, -2531,9192,-8056,
+ -4753,9183,-6951, -5664,9161,-6101, -5664,9185,-6101,
+ -4753,9207,-6951, -2531,9216,-8055, -3697,9216,-7581,
+ -3684,9232,-7560, -2518,9232,-8034, -4740,9223,-6930,
+ -5651,9200,-6080, -2828,20259,1366, -2798,20256,1187, -2820,20237,692,
+ -2843,20292,-25, -2874,20473,735, -2975,20508,90, -2474,20772,-759,
+ -2660,20879,-691, -2471,21553,-1445, -2498,22175,-1940,
+ -2471,24346,-2830, -2556,22373,-1903, -2528,21595,-1351,
+ -2493,24314,-2936, -2576,22239,-2123, -2548,21461,-1571,
+ -2823,20635,1307, -2741,20503,1328, -1490,23972,5392,
+ -1489,24080,4226, -1489,24040,3095, -1489,23188,2159,
+ -1489,21953,1816, -2479,22156,182, -1515,23830,2117, -1605,24415,3131,
+ -1599,24460,4263, -1580,24357,5431, -1448,23885,6743,
+ -1252,24770,5442, -1271,24873,4274, -1277,24828,3142,
+ -1389,24618,2016, -1479,24733,1993, -1301,25010,3165,
+ -1295,25055,4297, -1391,24890,5460, -1512,25216,5507,
+ -1602,25353,4317, -1608,25308,3186, -1979,23458,-29, -1320,25312,1928,
+ -1495,25055,546, -2438,25790,-488, -1605,25585,5599, -1583,26793,6150,
+ -1850,26272,4298, -1578,27435,7117, -1658,27625,6884,
+ -1671,27398,6846, -1678,27176,6937, -1715,27784,6626,
+ -1744,27323,6551, -1753,26904,6776, -1884,28809,-1688,
+ -1555,28655,1620, -1658,28252,4204, -1581,28263,5997,
+ -1567,28312,6790, -1935,27827,4220, -1818,28249,1603,
+ -1570,27742,6195, -1532,27288,6120, -2038,27074,4245, -1418,28416,228,
+ -413,30264,-4539, -424,31094,-4152, -418,31478,-3497,
+ -410,31453,-2653, -410,31190,-1863, -410,30468,-1467,
+ -410,29550,-1270, -411,31041,-1902, -448,31253,-2696,
+ -449,31323,-3466, -425,31182,-3496, -411,31060,-2738,
+ -387,30899,-1932, -316,30806,-1957, -335,30952,-2766,
+ -353,31089,-3521, -322,31007,-3540, -303,30871,-2786,
+ -284,30725,-1976, -304,30630,-1993, -323,30776,-2802,
+ -342,30912,-3557, -396,30843,-3565, -378,30707,-2811,
+ -358,30561,-2001, -414,30477,-2013, -433,30623,-2822,
+ -452,30759,-3576, -474,30560,-3616, -456,30424,-2861,
+ -436,30278,-2052, -349,30194,-2077, -368,30340,-2886,
+ -386,30477,-3641, -309,30389,-3665, -291,30253,-2911,
+ -271,30107,-2102, -267,29996,-2124, -286,30142,-2933,
+ -305,30278,-3688, -376,30179,-3700, -357,30043,-2945,
+ -338,29897,-2136, -420,29789,-2150, -439,29935,-2959,
+ -458,30071,-3713, -500,29883,-3751, -463,29601,-2187,
+ -470,30974,-4049, -462,30153,-4391, -466,30563,-4220,
+ -410,30009,-1368, -725,29372,-3225, -677,29335,-5130,
+ -908,29205,-3300, -632,29533,-4803, -2587,28768,-3408,
+ -2730,28611,-3456, -2404,28568,-6916, -2413,28849,-6612,
+ -1904,26715,1801, -1394,25919,831, -2224,27270,-3994,
+ -2730,28438,-3011, -2587,28570,-2864, -2826,28152,-3163,
+ -2476,28668,-6523, -2476,28433,-6776, -2787,28338,-3507,
+ -2216,27658,-3972, -2207,27950,-5907, -2311,28216,-6128,
+ -2320,27876,-3971, -2311,28118,-6301, -2311,27845,-6252,
+ -2320,27703,-3749, -2320,27084,-3798, -2320,26986,-4070,
+ -2698,26705,-4014, -2557,26974,-3547, -2557,27739,-3485,
+ -2572,27738,-6362, -2436,28204,-6533, -2436,28421,-6303,
+ -2556,28092,-3822, -2431,28142,-6975, -2544,27863,-6726,
+ -2266,28229,-1686, -1939,28156,-1065, -2569,27943,-2270,
+ -2381,27545,-1682, -2799,27594,-3104, -2750,27866,-2738,
+ -2539,27578,-6309, -2720,26853,-3133, -2788,26461,-3776,
+ -1061,27543,-7078, -1780,27941,135, -1859,27747,-527, -1756,27784,691,
+ -1855,27001,736, -1950,26711,19, -1964,27006,-630, -2342,26955,-1898,
+ -2595,25515,-3113, -2147,27855,132, -2126,27722,601, -2213,27691,-428,
+ -2210,27061,639, -2290,26816,34, -2302,27065,-515, -2347,27680,100,
+ -2335,27602,376, -2386,27584,-229, -2385,27213,398, -2432,27069,42,
+ -2439,27215,-281, -2481,27452,103, -1786,24263,399, -2278,24851,-562,
+ -2372,25143,-1163, 7383,9172,0, 7270,9172,-1487, 6937,9172,-2929,
+ 6393,9172,-4281, 1282,9172,-8433, 0,9172,-8563, 1301,9439,8159,
+ 2371,9313,7844, 3857,9286,7355, 4477,9172,6559, 5704,9174,5179,
+ 6393,9172,4281, 6937,9172,2929, 7270,9172,1487, -7270,9172,-1487,
+ -6937,9172,-2929, -6393,9172,-4281, -1282,9172,-8433, 0,9339,8274,
+ -1301,9439,8159, -2371,9313,7844, -3857,9286,7355, -4477,9172,6559,
+ -5704,9174,5179, -6393,9172,4281, -6937,9172,2929, -7270,9172,1487,
+ -796,9467,8260, 0,9503,8356, 0,9667,8438, -796,9666,8325,
+ -807,10584,8327, -7383,9172,0, 796,9467,8260, 796,9666,8325,
+ 807,10584,8327, 0,10584,8457, 0,11744,8130, 1183,11744,7939,
+ 1183,12003,7939, 0,12003,8130, 0,14019,6737, 1183,14019,6547,
+ 1183,16307,5288, 0,16307,5479, 0,16555,5472, 1183,16555,5281,
+ 1183,20128,2191, 0,20128,2382, 0,20304,2322, 1134,20304,2131,
+ 1183,20516,2156, 0,20516,2346, 0,21898,2060, 1417,21874,1842,
+ 1417,23109,2185, 0,23133,2404, 0,23985,3339, 1417,23961,3121,
+ 1417,24001,4252, 0,24025,4470, 1418,23893,5418, 1151,23389,6664,
+ 0,23394,6882, 0,23506,7125, 1151,23501,6906, 1151,23806,6987,
+ 0,23811,7205, 0,24107,7205, 1151,24102,6987, 1151,24209,7189,
+ 0,24213,7407, 0,24376,7731, 1151,24371,7513, 1151,24605,7715,
+ 0,24610,7933, 0,24944,7892, 1151,24939,7674, 1313,25568,7149,
+ 0,25562,7367, 0,25689,7367, 1313,25695,7149, 1598,26707,7610,
+ 1598,27262,7839, 1598,27842,7723, 1598,28309,7303, 1302,28414,6723,
+ 1187,28523,5990, 1304,28447,4204, 0,28469,4435, 0,28654,1893,
+ 1158,28789,1627, 561,28931,-1220, 0,29310,-864, 0,29574,-1062,
+ 357,29608,-1244, 357,30527,-1441, 0,30496,-1259, 0,31221,-1655,
+ 357,31249,-1837, 357,31511,-2627, 0,31485,-2445, 0,31485,-3302,
+ 357,31511,-3484, 357,31118,-4143, 0,31089,-3961, 0,30233,-4356,
+ 357,30264,-4538, 436,29406,-5256, 0,29018,-6407, 2207,29018,-6763,
+ 914,28658,-6964, 0,28472,-7040, 1305,26324,-7143, 806,23401,-6784,
+ 0,23246,-6890, 0,20735,-6319, 812,20723,-6228, 796,16757,-6210,
+ 0,17171,-6133, 1559,24934,7435, 1566,24633,7460, 1531,24429,7334,
+ 1475,24293,7131, 1440,24203,7004, 1372,23935,7015, 1364,23606,6868,
+ 1389,23515,6705, 1687,28010,6952, 1687,27926,7343, 1687,27629,7491,
+ 1687,27324,7552, 1687,27032,7432, 1687,26791,7148, 1642,27135,7165,
+ 1642,27254,7304, 1642,27397,7364, 1642,27546,7334, 1642,27693,7261,
+ 1642,27737,7088, 1611,10591,8159, 888,9327,-8560, 4491,13292,1032,
+ 3840,15084,786, 3412,17397,397, 2937,20005,-35, 5108,11669,1240,
+ 6344,10251,1395, 6345,10246,1248, 5109,11664,1092, 2964,20022,-132,
+ 3413,17393,250, 3841,15079,638, 4491,13288,885, 3743,13207,-535,
+ 3085,15092,-710, 2727,17642,-878, 2569,20636,-797, 4348,11575,-324,
+ 5584,10108,-169, 5403,10079,-1732, 4167,11644,-1888,
+ 2465,20842,-2651, 2522,18130,-2392, 2905,15407,-2077,
+ 3562,13227,-1951, 3901,13568,-3294, 3243,15993,-3519,
+ 2861,18863,-3735, 2776,22447,-4309, 4486,11792,-3132, 5783,9930,-2931,
+ 5783,9930,-3054, 4486,11792,-3255, 2776,22438,-4430, 2861,18863,-3858,
+ 3243,15993,-3641, 3901,13568,-3417, 6199,9466,4558, 5766,10642,5726,
+ 5228,11829,6090, 4801,12891,6048, 4155,14560,5246, 3546,16847,3719,
+ 3334,17643,2937, 2860,20062,1230, 4822,12054,7102, 5325,10909,7208,
+ 5732,9938,6026, 4026,14701,5522, 2852,20170,1447, 3319,17801,3175,
+ 3538,16955,3935, 4090,13256,1679, 2874,20073,676, 3706,15083,1464,
+ 3301,17348,1117, 5931,10206,1996, 4695,11624,1840, 4445,11658,2844,
+ 5681,10240,3000, 3074,17398,2202, 3456,15117,2468, 3840,13290,2683,
+ 4642,13358,4019, 4257,15194,3908, 6017,10188,3746, 5237,11714,4039,
+ 5621,11218,5077, 5026,12862,5058, 5134,10861,-3154, 4193,12680,-3336,
+ 2832,20609,-4118, 3052,17428,-3750, 3572,14780,-3529,
+ 3579,14774,-3623, 3059,17422,-3843, 2839,20596,-4211,
+ 4200,12674,-3429, 5141,10855,-3248, 3908,13562,-3510,
+ 3250,15987,-3735, 2868,18857,-3952, 4492,11786,-3348, 5789,9924,-3148,
+ 4817,11321,-3298, 5465,10389,-3198, 4054,13118,-3470,
+ 4346,12230,-3389, 2853,19681,-4056, 2825,21511,-4367,
+ 3155,16705,-3789, 2963,18140,-3897, 3744,14168,-3567,
+ 3415,15381,-3679, 0,14037,-6616, 845,13482,-6604, 945,10997,-7893,
+ 0,11066,-7866, 981,11110,-7735, 859,13469,-6526, 899,9307,-8439,
+ 813,16486,-6146, 832,20681,-6100, 826,23358,-6656, 882,10149,-8148,
+ 913,12323,-7139, 822,14910,-6353, 817,18235,-6210, 827,21937,-6382,
+ 846,21937,-6341, 841,14912,-6313, 931,12326,-7098, 901,10152,-8107,
+ 844,23359,-6615, 851,20681,-6059, 831,16487,-6105, 919,9307,-8399,
+ 869,13482,-6492, 999,11113,-7694, 860,9726,-8255, 942,10578,-7958,
+ 962,11715,-7413, 900,12896,-6796, 863,14065,-6404, 818,15760,-6221,
+ 828,17367,-6171, 854,19800,-5994, 848,21309,-6200, 843,22566,-6482,
+ 3407,15409,-3785, 3736,14196,-3673, 2911,18365,-4048,
+ 3147,16733,-3895, 2726,21608,-4455, 2808,19905,-4191,
+ 4338,12259,-3495, 4046,13146,-3576, 5457,10418,-3304,
+ 4809,11349,-3404, 4484,11815,-3454, 2715,22288,-4534,
+ 2832,19035,-4066, 3242,16015,-3841, 3900,13590,-3616,
+ 5133,10883,-3354, 4171,12742,-3524, 2803,20773,-4339,
+ 3051,17450,-3949, 3571,14803,-3729, 4979,11072,-3368,
+ 5619,10185,-3279, 4119,12924,-3556, 4411,12037,-3475,
+ 2801,20363,-4269, 2721,21826,-4489, 3099,17092,-3922,
+ 2887,18618,-4038, 3653,14499,-3701, 3325,15712,-3813,
+ 3489,15106,-3757, 3818,13893,-3645, 3011,17758,-3971,
+ 3194,16374,-3868, 2755,21085,-4385, 2815,19494,-4139,
+ 4265,12481,-3515, 3973,13368,-3596, 5304,10595,-3318,
+ 4664,11477,-3407, 5441,10207,-3361, 5350,10338,-3375,
+ 5139,10672,-3428, 5058,10742,-3431, 4831,11101,-3457,
+ 4742,11228,-3470, 4516,11559,-3504, 4423,11693,-3518,
+ 4277,12079,-3558, 4232,12180,-3571, 4138,12522,-3597,
+ 4094,12603,-3609, 3979,12935,-3675, 3943,13043,-3671,
+ 3852,13383,-3699, 3813,13496,-3705, 3692,13947,-3767,
+ 3653,14073,-3790, 3506,14587,-3772, 3467,14685,-3777,
+ 3349,15192,-3888, 3308,15317,-3887, 3162,15800,-3957,
+ 3119,15954,-3961, 3009,16528,-3946, 3002,16637,-3937,
+ 2914,17260,-4014, 2909,17347,-4006, 2834,17893,-4049,
+ 2813,18060,-4060, 2760,18849,-4232, 2746,18968,-4242, 850,22569,-6438,
+ 855,21313,-6156, 860,19804,-5949, 834,17371,-6127, 824,15765,-6176,
+ 869,14070,-6360, 906,12901,-6751, 968,11720,-7368, 948,10645,-7895,
+ 865,9731,-8211, 1006,11164,-7630, 875,13487,-6447, 926,9310,-8354,
+ 837,16490,-6061, 857,20684,-6015, 867,23379,-6515, 907,10157,-8062,
+ 937,12331,-7053, 847,14917,-6268, 842,18236,-6111, 852,21941,-6297,
+ 885,9891,-8156, 985,10905,-7724, 947,11969,-7255, 885,13125,-6649,
+ 858,14493,-6314, 839,16049,-6111, 836,17735,-6083, 859,20244,-5982,
+ 891,21559,-6157, 848,22883,-6508, 851,22255,-6367, 856,20999,-6085,
+ 867,19042,-6000, 836,16930,-6094, 835,15341,-6222, 880,13646,-6405,
+ 916,12540,-6953, 981,11337,-7564, 927,10370,-7988, 932,9518,-8285,
+ 931,9583,-8174, 863,9671,-8145, 892,9982,-8037, 903,10075,-7996,
+ 952,10454,-7865, 961,10550,-7832, 1008,10963,-7617, 1018,11105,-7567,
+ 996,11458,-7405, 992,11582,-7342, 972,12080,-7057, 968,12210,-6984,
+ 935,12620,-6792, 931,12759,-6714, 914,13199,-6441, 910,13346,-6359,
+ 915,13767,-6194, 910,13941,-6175, 890,14633,-6107, 886,14783,-6091,
+ 864,15476,-6035, 859,15645,-6017, 870,16062,-5957, 873,16231,-5936,
+ 853,17048,-5965, 861,17185,-5974, 879,17812,-5997, 885,17961,-5997,
+ 851,18486,-6138, 865,18526,-5933, 872,18761,-5875, 870,19337,-5971,
+ 864,19470,-5784, 937,19590,-5786, 833,19023,-6126, 851,20344,-5894,
+ 851,20576,-5912, 855,21086,-5973, 854,21224,-6003, 871,21651,-6070,
+ 852,21853,-6116, 850,22332,-6224, 849,22490,-6259, 831,22924,-6338,
+ 834,23240,-6364, 2743,19661,-4287, 2740,19863,-4312, 2723,20501,-4469,
+ 2705,20711,-4503, 2661,21262,-4565, 2658,21427,-4593,
+ 2687,22088,-4631, 2695,22209,-4643, 2774,23170,-4392,
+ 2633,23103,-4527, 2681,22439,-4516, 2656,22665,-4573,
+ 2552,22727,-4653, 2534,23015,-4628, 2607,23397,-4556,
+ 2759,23681,-4398, 2740,24136,-4370, 2610,24100,-4580,
+ 2412,24481,-5089, 2671,24389,-4569, 2397,24935,-5652,
+ 2562,25022,-5528, 939,23708,-6566, 1009,24359,-6776, 1095,24912,-6886,
+ 1049,24117,-6493, 990,23894,-6415, 2290,23837,-4814, 2312,23612,-4723,
+ 2183,24804,-5574, 2191,24632,-5391, 1156,24771,-6650,
+ 1154,24624,-6586, 1104,24526,-6656, 0,9161,-8562, 1281,9161,-8432,
+ 2524,9161,-8046, 3691,9161,-7572, 4745,9161,-6945, 5662,9127,-6096,
+ 3697,9192,-7581, 2531,9192,-8056, 4753,9183,-6951, 5664,9161,-6101,
+ 5664,9185,-6101, 4753,9207,-6951, 2531,9216,-8055, 3697,9216,-7581,
+ 3684,9232,-7560, 2518,9232,-8034, 4740,9223,-6930, 5651,9200,-6080,
+ 2828,20259,1366, 2798,20256,1187, 2820,20237,692, 2843,20292,-25,
+ 2874,20473,735, 2975,20508,90, 2474,20772,-759, 2660,20879,-691,
+ 2471,21553,-1445, 2498,22175,-1940, 2471,24346,-2830,
+ 2556,22373,-1903, 2528,21595,-1351, 2493,24314,-2936,
+ 2576,22239,-2123, 2548,21461,-1571, 2823,20635,1307, 2741,20503,1328,
+ 1490,23972,5392, 1489,24080,4226, 1489,24040,3095, 1489,23188,2159,
+ 1489,21953,1816, 2479,22156,182, 1515,23830,2117, 1605,24415,3131,
+ 1599,24460,4263, 1580,24357,5431, 1448,23885,6743, 1252,24770,5442,
+ 1271,24873,4274, 1277,24828,3142, 1389,24618,2016, 1479,24733,1993,
+ 1301,25010,3165, 1295,25055,4297, 1391,24890,5460, 1512,25216,5507,
+ 1602,25353,4317, 1608,25308,3186, 1979,23458,-29, 1320,25312,1928,
+ 1495,25055,546, 2438,25790,-488, 1605,25585,5599, 1583,26793,6150,
+ 1850,26272,4298, 1578,27435,7117, 1658,27625,6884, 1671,27398,6846,
+ 1678,27176,6937, 1715,27784,6626, 1744,27323,6551, 1753,26904,6776,
+ 1884,28809,-1688, 1555,28655,1620, 1658,28252,4204, 1581,28263,5997,
+ 1567,28312,6790, 1935,27827,4220, 1818,28249,1603, 1570,27742,6195,
+ 1532,27288,6120, 2038,27074,4245, 1418,28416,228, 413,30264,-4539,
+ 424,31094,-4152, 418,31478,-3497, 410,31453,-2653, 410,31190,-1863,
+ 410,30468,-1467, 410,29550,-1270, 411,31041,-1902, 448,31253,-2696,
+ 449,31323,-3466, 425,31182,-3496, 411,31060,-2738, 387,30899,-1932,
+ 316,30806,-1957, 335,30952,-2766, 353,31089,-3521, 322,31007,-3540,
+ 303,30871,-2786, 284,30725,-1976, 304,30630,-1993, 323,30776,-2802,
+ 342,30912,-3557, 396,30843,-3565, 378,30707,-2811, 358,30561,-2001,
+ 414,30477,-2013, 433,30623,-2822, 452,30759,-3576, 474,30560,-3616,
+ 456,30424,-2861, 436,30278,-2052, 349,30194,-2077, 368,30340,-2886,
+ 386,30477,-3641, 309,30389,-3665, 291,30253,-2911, 271,30107,-2102,
+ 267,29996,-2124, 286,30142,-2933, 305,30278,-3688, 376,30179,-3700,
+ 357,30043,-2945, 338,29897,-2136, 420,29789,-2150, 439,29935,-2959,
+ 458,30071,-3713, 500,29883,-3751, 463,29601,-2187, 470,30974,-4049,
+ 462,30153,-4391, 466,30563,-4220, 410,30009,-1368, 725,29372,-3225,
+ 677,29335,-5130, 908,29205,-3300, 632,29533,-4803, 2587,28768,-3408,
+ 2730,28611,-3456, 2404,28568,-6916, 2413,28849,-6612,
+ 1904,26715,1801, 1394,25919,831, 2224,27270,-3994, 2730,28438,-3011,
+ 2587,28570,-2864, 2826,28152,-3163, 2476,28668,-6523,
+ 2476,28433,-6776, 2787,28338,-3507, 2216,27658,-3972,
+ 2207,27950,-5907, 2311,28216,-6128, 2320,27876,-3971,
+ 2311,28118,-6301, 2311,27845,-6252, 2320,27703,-3749,
+ 2320,27084,-3798, 2320,26986,-4070, 2698,26705,-4014,
+ 2557,26974,-3547, 2557,27739,-3485, 2572,27738,-6362,
+ 2436,28204,-6533, 2436,28421,-6303, 2556,28092,-3822,
+ 2431,28142,-6975, 2544,27863,-6726, 2266,28229,-1686,
+ 1939,28156,-1065, 2569,27943,-2270, 2381,27545,-1682,
+ 2799,27594,-3104, 2750,27866,-2738, 2539,27578,-6309,
+ 2720,26853,-3133, 2788,26461,-3776, 1061,27543,-7078, 1780,27941,135,
+ 1859,27747,-527, 1756,27784,691, 1855,27001,736, 1950,26711,19,
+ 1964,27006,-630, 2342,26955,-1898, 2595,25515,-3113, 2147,27855,132,
+ 2126,27722,601, 2213,27691,-428, 2210,27061,639, 2290,26816,34,
+ 2302,27065,-515, 2347,27680,100, 2335,27602,376, 2386,27584,-229,
+ 2385,27213,398, 2432,27069,42, 2439,27215,-281, 2481,27452,103,
+ 1786,24263,399, 2278,24851,-562, 2372,25143,-1163, -2567,23141,-2607,
+ -2513,23156,-2494, 2513,23156,-2494, 2567,23141,-2607,
+
+ TRIANGLES, 657,656,159, 100,506,99, 1003,900,995, 1048,1009,901,
+ 1051,901,1009, 1070,1073,1071, 1070,803,808, 1071,1077,1070,
+ 1072,1006,1073, 1072,808,915, 1073,808,1072, 1077,1071,1076,
+ 1078,1283,1127, 1081,1078,1079, 1081,1079,1080, 1083,1082,1086,
+ 1083,747,1274, 1084,888,1085, 1085,878,1086, 1085,1086,1095,
+ 1086,747,1083, 1093,1095,1086, 1094,1095,1093, 658,657,149,
+ 1101,637,32, 1103,638,1108, 1105,637,1101, 1106,637,1105,
+ 1108,638,1111, 111,36,158, 111,653,665, 111,665,36, 1110,858,1112,
+ 1111,988,1110, 1111,638,891, 1111,891,988, 1112,858,1113,
+ 1113,637,1106, 1117,779,784, 112,214,207, 112,651,210, 1124,1297,1154,
+ 1125,1123,1128, 1125,1302,1154, 1127,1077,1078, 1129,791,796,
+ 1130,1118,1137, 1136,1130,1137, 1137,1118,1119, 1137,1119,1121,
+ 1137,1121,1126, 1142,758,759, 1142,759,760, 1142,760,761,
+ 1147,1146,1154, 1150,755,756, 1150,756,757, 1154,1302,1124,
+ 1155,1147,1154, 1155,1297,1156, 1155,1154,1297, 1156,1240,1155,
+ 1156,1298,1157, 1157,1240,1156, 1157,1299,1273, 1157,1282,1281,
+ 1158,1151,1152, 1161,768,1164, 1162,773,1161, 1162,1161,1163,
+ 1163,1161,1164, 1165,1172,762, 1168,726,1178, 1168,1267,1266,
+ 1169,1178,725, 1171,1172,1165, 1171,720,1172, 1171,1165,1175,
+ 1178,1169,1174, 1178,1174,1278, 1179,1229,1228, 118,660,168,
+ 1180,1229,1179, 1185,726,1226, 1186,1183,1184, 1186,1184,1191,
+ 119,660,118, 1191,1184,1192, 1192,1184,1197, 1197,1184,1198,
+ 1198,1184,1203, 1203,1184,1204, 121,116,451, 1210,1209,1230,
+ 1215,1210,1230, 1216,1215,1230, 1221,1216,1230, 1222,1185,1226,
+ 1222,1221,1230, 1223,1222,1226, 1224,1223,1225, 1225,1223,1226,
+ 1226,726,1231, 1227,1188,1189, 1227,1189,1194, 1227,1194,1195,
+ 1227,1195,1200, 1227,1200,1201, 1227,1201,1206, 1228,1224,1225,
+ 1228,1225,1234, 1229,1207,1212, 1229,1212,1213, 1229,1213,1218,
+ 1229,1218,1219, 1229,1219,1224, 1229,1180,1227, 1229,1224,1228,
+ 1230,729,1185, 1230,1185,1222, 1231,1225,1226, 1232,1179,1234,
+ 1233,744,1232, 1234,1179,1228, 1234,1225,1231, 1235,744,1233,
+ 1237,744,1238, 1239,1155,1240, 1240,1157,1239, 1243,1168,1266,
+ 1248,1241,1249, 1250,1249,1252, 1252,1249,1253, 1254,1248,1251,
+ 1256,1241,1255, 1259,1244,1270, 1264,745,1237, 1265,1260,1272,
+ 1267,1168,1178, 1267,1178,1277, 1269,1282,1270, 1270,1282,1273,
+ 1271,1268,1269, 1271,1269,1270, 1273,1283,1274, 1274,1078,1081,
+ 1274,1081,1083, 1274,747,1275, 1275,745,1264, 1275,1264,1265,
+ 1275,1265,1272, 1275,1272,1274, 1276,1178,1278, 1277,1178,1276,
+ 1280,1157,1281, 1281,1269,1277, 1282,1157,1273, 1282,1269,1281,
+ 1283,1078,1274, 1292,1290,1296, 1295,1292,1296, 1296,1290,1291,
+ 1296,1291,1293, 1296,1293,1294, 1296,1294,1295, 1297,1298,1156,
+ 1297,1124,1298, 1298,1124,1299, 1299,1124,1273, 1299,1157,1298,
+ 660,659,168, 133,128,463, 137,182,141, 138,185,137, 139,184,138,
+ 140,183,139, 141,181,142, 141,182,144, 142,181,143, 143,649,142,
+ 143,197,195, 144,196,181, 144,199,194, 145,183,140, 145,201,183,
+ 145,140,405, 146,184,139, 146,139,183, 146,203,184, 147,185,138,
+ 147,138,184, 147,205,185, 148,198,182, 148,137,185, 149,657,159,
+ 150,149,159, 151,150,157, 152,151,157, 153,152,157, 157,150,158,
+ 157,38,160, 157,37,38, 158,150,159, 160,153,157, 160,39,163,
+ 160,38,39, 162,41,161, 163,39,40, 168,659,171, 172,155,156,
+ 176,153,154, 176,154,155, 177,658,149, 179,149,150, 179,150,151,
+ 180,152,153, 181,197,143, 181,141,144, 181,196,190, 182,199,144,
+ 182,137,148, 182,198,189, 183,200,146, 184,202,147, 185,204,148,
+ 186,204,185, 186,267,204, 186,185,205, 187,202,184, 187,265,202,
+ 187,184,203, 188,200,183, 188,263,200, 188,183,201, 189,275,199,
+ 189,261,255, 190,277,197, 190,259,254, 191,276,198, 191,148,204,
+ 192,205,147, 192,147,202, 192,268,205, 193,203,146, 193,146,200,
+ 193,266,203, 194,278,196, 194,262,249, 196,259,190, 196,144,194,
+ 196,278,248, 197,181,190, 197,260,195, 197,277,247, 198,261,189,
+ 198,148,191, 198,276,246, 199,182,189, 199,262,194, 199,275,245,
+ 200,274,193, 201,273,188, 202,272,192, 203,271,187, 204,270,191,
+ 205,269,186, 206,215,209, 206,216,90, 207,215,206, 207,214,208,
+ 208,231,215, 208,230,228, 209,233,216, 209,232,227, 210,229,214,
+ 210,651,226, 211,235,217, 211,234,225, 212,237,218, 212,236,224,
+ 212,386,236, 213,238,223, 213,421,88, 214,230,208, 214,112,210,
+ 214,229,222, 215,207,208, 215,232,209, 215,231,221, 216,206,209,
+ 216,234,211, 216,233,220, 217,90,211, 217,386,212, 218,89,212,
+ 218,238,213, 218,237,219, 219,342,238, 219,340,331, 220,346,234,
+ 220,336,329, 221,348,232, 221,334,328, 222,350,230, 222,332,327,
+ 223,341,326, 224,343,237, 224,339,325, 225,345,235, 225,337,324,
+ 226,351,229, 226,651,445, 227,347,233, 227,335,322, 228,349,231,
+ 228,333,321, 229,332,222, 229,210,226, 229,351,320, 230,214,222,
+ 230,333,228, 230,350,319, 231,334,221, 231,208,228, 231,349,318,
+ 232,215,221, 232,335,227, 232,348,317, 233,336,220, 233,209,227,
+ 233,347,316, 234,216,220, 234,337,225, 234,346,315, 235,211,225,
+ 235,345,314, 236,339,224, 236,383,313, 236,344,383, 237,340,219,
+ 237,212,224, 237,343,312, 238,218,219, 238,341,223, 238,342,311,
+ 239,269,205, 239,205,268, 240,270,204, 240,204,267, 241,271,203,
+ 241,203,266, 242,272,202, 242,202,265, 243,273,201, 243,201,264,
+ 244,274,200, 244,200,263, 250,145,407, 251,266,193, 251,193,274,
+ 252,268,192, 252,192,272, 253,191,270, 256,263,188, 256,188,273,
+ 257,265,187, 257,187,271, 258,267,186, 258,186,269, 259,196,248,
+ 22,650,435, 260,197,247, 261,198,246, 262,199,245, 21,650,22,
+ 275,189,255, 276,191,253, 277,190,254, 278,194,249, 323,226,445,
+ 330,217,235, 330,235,338, 332,229,320, 333,230,319, 334,231,318,
+ 335,232,317, 336,233,316, 337,234,315, 338,235,314, 339,236,313,
+ 664,653,661, 340,237,312, 341,238,311, 342,219,331, 343,224,325,
+ 344,236,386, 345,225,324, 346,220,329, 347,227,322, 348,221,328,
+ 349,228,321, 665,653,664, 350,222,327, 351,226,323, 380,217,330,
+ 405,408,145, 405,412,406, 406,408,405, 407,145,408, 408,341,407,
+ 411,406,412, 413,412,461, 414,413,416, 415,414,416, 416,413,608,
+ 418,87,421, 418,416,608, 419,223,326, 420,213,223, 420,223,419,
+ 421,417,418, 421,213,420, 421,430,428, 421,87,88, 428,430,429,
+ 430,421,420, 435,650,439, 439,650,440, 440,650,447, 442,651,437,
+ 444,195,323, 444,323,445, 445,651,442, 446,195,444, 447,650,195,
+ 447,195,446, 453,452,471, 455,453,471, 460,455,471, 461,617,413,
+ 462,457,459, 465,43,44, 471,452,464, 471,464,470, 486,485,492,
+ 488,458,1301, 488,631,458, 488,1301,459, 488,480,481, 488,481,489,
+ 489,574,490, 490,631,489, 490,574,491, 490,632,631, 491,632,490,
+ 495,105,106, 495,106,107, 495,107,108, 495,108,109, 495,109,110,
+ 495,110,496, 497,495,496, 498,105,495, 498,495,497, 499,506,505,
+ 505,68,71, 506,68,505, 506,67,68, 508,503,512, 509,499,505,
+ 512,74,502, 512,502,601, 513,563,514, 518,517,520, 518,564,76,
+ 519,75,564, 519,74,75, 523,522,561, 525,518,520, 526,518,525,
+ 528,523,561, 529,528,561, 531,518,526, 532,518,531, 534,529,561,
+ 535,534,561, 537,518,532, 538,518,537, 540,535,561, 546,541,563,
+ 547,546,563, 552,547,563, 553,552,563, 556,519,564, 558,553,563,
+ 559,557,558, 559,558,562, 560,74,519, 560,519,556, 560,556,557,
+ 560,557,559, 560,559,565, 561,514,563, 562,563,513, 562,558,563,
+ 562,513,568, 564,543,544, 564,544,549, 564,549,550, 564,550,555,
+ 564,555,556, 565,74,560, 565,559,568, 566,84,567, 567,84,569,
+ 568,559,562, 568,513,566, 571,85,598, 571,84,85, 572,84,571,
+ 573,491,574, 574,489,573, 583,575,582, 585,582,588, 586,583,584,
+ 587,583,586, 589,575,590, 598,85,609, 599,598,609, 653,111,654,
+ 600,601,502, 600,502,577, 603,602,605, 604,578,593, 604,616,603,
+ 604,603,605, 606,594,599, 606,599,609, 607,633,491, 607,616,604,
+ 607,491,616, 607,458,633, 608,87,418, 608,617,607, 608,606,609,
+ 608,413,617, 609,87,608, 609,86,87, 610,512,611, 611,512,601,
+ 611,603,615, 612,508,512, 612,512,610, 615,616,491, 615,491,614,
+ 615,603,616, 625,624,630, 627,625,630, 628,627,630, 629,628,630,
+ 630,624,626, 630,626,629, 631,488,489, 632,458,631, 632,491,633,
+ 633,458,632, 639,651,112, 641,774,640, 32,637,33, 667,640,668,
+ 668,640,669, 669,640,774, 67,506,100, 672,669,774, 676,673,820,
+ 677,676,823, 680,677,826, 688,685,1131, 712,711,754, 720,719,1172,
+ 721,720,1171, 725,1178,726, 729,726,1185, 729,1230,730, 73,512,503,
+ 730,1230,1184, 74,512,73, 743,82,83, 745,744,1237, 745,743,744,
+ 745,1275,746, 746,85,743, 746,743,745, 746,609,85, 746,1275,86,
+ 747,86,1275, 748,747,1086, 748,883,751, 748,1086,878, 751,882,752,
+ 752,881,870, 76,564,75, 762,1172,763, 763,1172,719, 769,768,1161,
+ 770,769,1161, 771,770,1161, 772,771,1161, 773,772,1161, 774,641,642,
+ 775,638,639, 781,647,782, 655,654,111, 800,848,801, 801,847,802,
+ 801,848,810, 802,846,803, 802,847,809, 803,846,808, 804,845,800,
+ 805,844,804, 805,636,806, 806,844,805, 806,860,844, 807,845,804,
+ 807,804,844, 807,862,845, 808,1073,1070, 809,863,846, 809,866,856,
+ 810,865,847, 810,868,855, 811,800,845, 811,867,848, 812,644,645,
+ 812,645,840, 813,812,842, 814,813,842, 816,815,843, 817,816,839,
+ 818,817,839, 819,818,835, 820,813,814, 820,814,815, 820,815,816,
+ 820,816,823, 821,672,774, 821,813,820, 822,642,643, 822,643,644,
+ 822,644,812, 822,812,813, 822,813,821, 823,676,820, 824,681,825,
+ 826,677,823, 83,742,743, 831,646,647, 831,647,781, 834,646,831,
+ 844,859,807, 845,861,811, 846,864,808, 846,802,809, 846,863,851,
+ 847,866,809, 847,801,810, 847,865,850, 848,868,810, 848,800,811,
+ 848,867,849, 849,934,868, 849,932,923, 85,84,743, 850,936,866,
+ 850,930,922, 851,938,864, 851,928,921, 852,861,845, 852,926,861,
+ 852,845,862, 853,859,844, 853,924,859, 853,844,860, 854,811,861,
+ 854,935,867, 855,937,865, 855,933,917, 856,939,863, 856,931,916,
+ 857,862,807, 857,807,859, 857,927,862, 858,637,1113, 858,860,806,
+ 858,925,860, 859,943,857, 86,609,746, 860,942,853, 861,941,854,
+ 862,940,852, 863,928,851, 863,809,856, 863,939,909, 864,846,851,
+ 864,938,908, 865,930,850, 865,810,855, 865,937,907, 866,847,850,
+ 866,931,856, 866,936,906, 867,932,849, 867,811,854, 867,935,905,
+ 868,848,849, 868,933,855, 868,934,904, 870,880,871, 871,879,775,
+ 873,879,871, 873,895,879, 873,871,880, 874,880,870, 874,897,880,
+ 874,870,881, 875,638,775, 875,775,879, 876,881,752, 876,899,881,
+ 876,752,882, 877,882,751, 877,1051,882, 877,751,883, 878,883,748,
+ 878,903,883, 879,894,875, 88,218,213, 880,896,873, 881,898,874,
+ 882,900,876, 883,902,877, 884,902,883, 884,1005,902, 884,883,903,
+ 885,898,881, 885,1001,898, 885,881,899, 886,896,880, 886,999,896,
+ 886,880,897, 887,894,879, 887,997,894, 887,879,895, 888,878,1085,
+ 888,903,878, 888,1006,903, 889,901,877, 889,1004,901, 889,877,902,
+ 89,217,212, 89,218,88, 890,899,876, 890,1002,899, 890,876,900,
+ 891,638,875, 891,875,894, 892,897,874, 892,1000,897, 892,874,898,
+ 893,895,873, 893,998,895, 893,873,896, 894,1016,891, 895,1015,887,
+ 896,1014,893, 897,1013,886, 898,1012,892, 899,1011,885, 656,655,159,
+ 90,216,211, 90,217,89, 900,1010,890, 900,882,995, 901,1051,877,
+ 902,1008,889, 903,1007,884, 91,57,58, 910,940,862, 910,862,927,
+ 911,941,861, 911,861,926, 912,942,860, 912,860,925, 913,943,859,
+ 913,859,924, 914,927,857, 914,857,943, 918,854,941, 919,924,853,
+ 919,853,942, 920,926,852, 920,852,940, 928,863,909, 929,864,908,
+ 93,92,484, 930,865,907, 931,866,906, 932,867,905, 933,868,904,
+ 934,849,923, 935,854,918, 936,850,922, 937,855,917, 938,851,921,
+ 939,856,916, 94,93,484, 96,95,476, 97,96,476, 976,903,1006,
+ 976,1007,903, 977,902,1005, 977,1008,902, 978,901,1004, 978,1048,901,
+ 979,900,1003, 979,1010,900, 98,97,476, 980,899,1002, 980,1011,899,
+ 981,898,1001, 981,1012,898, 982,897,1000, 982,1013,897, 983,1014,896,
+ 983,896,999, 984,1015,895, 984,895,998, 985,1016,894, 985,894,997,
+ 986,893,1014, 986,998,893, 987,892,1012, 987,1000,892, 988,891,1016,
+ 988,858,1110, 989,890,1010, 989,1002,890, 99,506,499, 990,889,1008,
+ 990,1004,889, 991,888,1084, 991,1006,888, 992,887,1015, 992,997,887,
+ 993,886,1013, 993,999,886, 994,885,1011, 994,1001,885, 995,882,1045,
+ 996,884,1007, 996,1005,884,
+
+ QUADS, 648,666,130,131, 648,649,20,19, 657,658,15,14,
+ 1000,987,1032,1031, 1001,994,1036,1035, 1002,989,1040,1039,
+ 1003,995,1044,1043, 1004,990,1053,1052, 1005,996,1057,1056,
+ 1006,991,1061,1060, 1007,976,1059,1058, 1008,977,1055,1054,
+ 1009,906,973,1047, 101,64,67,100, 1010,979,1042,1041,
+ 1011,980,1038,1037, 1012,981,1034,1033, 1013,982,1030,1029,
+ 1014,983,1026,1025, 1015,984,1022,1021, 1016,985,1018,1017,
+ 102,63,64,101, 103,60,63,102, 104,59,60,103, 1045,882,1051,1009,
+ 1045,1009,1047,1046, 1048,978,1050,1049, 105,104,103,106,
+ 106,103,102,107, 1061,991,1071,1075, 1062,939,1004,1052,
+ 1062,1052,1053,1063, 1063,909,939,1062, 1064,928,1008,1054,
+ 1064,1054,1055,1065, 1065,921,928,1064, 1066,938,1005,1056,
+ 1066,1056,1057,1067, 1067,908,938,1066, 1068,929,1007,1058,
+ 1068,1058,1059,1069, 1069,915,929,1068, 107,102,101,108,
+ 1071,991,1084,1076, 1072,915,976,1006, 1073,1006,1060,1074,
+ 1074,1060,1061,1075, 1075,1071,1073,1074, 1078,1077,1076,1079,
+ 108,101,100,109, 1080,1079,1085,1095, 1081,1080,1082,1083,
+ 1082,1080,1092,1091, 1084,1085,1087,1088, 1085,1079,1089,1087,
+ 1086,1082,1091,1093, 1088,1087,1089,1090, 1089,1079,1076,1090,
+ 109,100,99,110, 1090,1076,1084,1088, 1092,1080,1095,1094,
+ 1093,1091,1092,1094, 1096,27,26,431, 1097,638,1103,1098,
+ 658,659,16,15, 110,99,499,496, 1100,1099,1102,1104,
+ 1101,1100,1104,1105, 1102,1099,1098,1103, 1106,1105,1104,1107,
+ 1107,1104,1102,1109, 1109,1102,1103,1108, 1110,1109,1108,1111,
+ 1112,1107,1109,1110, 1113,1106,1107,1112, 1115,819,828,1116,
+ 1117,784,791,1120, 1118,1116,1117,1119, 1119,1117,1120,1121,
+ 1120,791,1129,1122, 1121,1120,1122,1126, 1122,1123,1125,1126,
+ 1126,1125,1154,1137, 1127,1124,1302,1303, 1128,1123,1122,1129,
+ 1128,803,1070,1303, 1129,796,803,1128, 113,114,123,124,
+ 1130,1115,1116,1118, 1131,1114,1115,1130, 1132,1133,1140,1141,
+ 1133,1134,1139,1140, 1134,1135,1138,1139, 1136,688,1131,1130,
+ 1138,1135,1136,1137, 1138,1137,1154,1146, 1139,1138,1146,1145,
+ 114,115,122,123, 1140,1139,1145,1144, 1141,1140,1144,1143,
+ 1142,761,1132,1141, 1143,758,1142,1141, 1143,1144,1149,1150,
+ 1144,1145,1148,1149, 1145,1146,1147,1148, 1148,1147,1155,1153,
+ 1149,1148,1153,1152, 115,116,121,122, 115,114,166,167,
+ 1150,757,758,1143, 1150,1149,1152,1151, 1151,754,755,1150,
+ 1158,712,754,1151, 1158,1152,1160,1159, 1160,1152,1153,1155,
+ 1160,1155,1239,1177, 1165,762,773,1162, 1165,1162,1163,1166,
+ 1166,1163,1164,1167, 1167,1159,1176,1166, 1169,1170,1173,1174,
+ 1173,1170,1171,1175, 1174,1173,1177,1239, 1175,1165,1166,1176,
+ 1176,1159,1160,1177, 1177,1173,1175,1176, 1182,1183,1186,1187,
+ 1187,1186,1191,1190, 1188,1181,1182,1187, 1189,1188,1187,1190,
+ 119,118,117,120, 1190,1191,1192,1193, 1193,1192,1197,1196,
+ 1194,1189,1190,1193, 1195,1194,1193,1196, 1196,1197,1198,1199,
+ 1199,1198,1203,1202, 659,660,17,16, 659,658,177,171, 120,117,113,124,
+ 1200,1195,1196,1199, 1201,1200,1199,1202, 1202,1203,1204,1205,
+ 1204,1184,1230,1209, 1205,1204,1209,1208, 1206,1201,1202,1205,
+ 1207,1206,1205,1208, 1208,1209,1210,1211, 1211,1210,1215,1214,
+ 1212,1207,1208,1211, 1213,1212,1211,1214, 1214,1215,1216,1217,
+ 1217,1216,1221,1220, 1218,1213,1214,1217, 1219,1218,1217,1220,
+ 122,121,128,127, 1220,1221,1222,1223, 1224,1219,1220,1223,
+ 1227,1180,1181,1188, 1227,1206,1207,1229, 123,122,127,126,
+ 1231,726,1168,1233, 1233,1168,1243,1235, 1234,1231,1233,1232,
+ 1236,1235,1243,1242, 1236,1242,1244,1247, 1237,1238,1245,1246,
+ 1238,744,1235,1236, 1239,1157,1280,1279, 124,123,126,125,
+ 1244,1242,1271,1270, 1245,1238,1236,1247, 1246,1245,1262,1261,
+ 1247,1244,1259,1263, 1249,1241,1256,1253, 125,126,135,136,
+ 1251,1248,1249,1250, 1251,1250,1262,1263, 1254,1251,1263,1259,
+ 1255,1241,1248,1254, 1257,1256,1255,1258, 1258,1255,1254,1259,
+ 126,127,134,135, 1260,1253,1256,1257, 1261,1252,1253,1260,
+ 1262,1250,1252,1261, 1262,1245,1247,1263, 1264,1237,1246,1265,
+ 1265,1246,1261,1260, 1268,1243,1266,1269, 1269,1266,1267,1277,
+ 127,128,133,134, 1271,1242,1243,1268, 1272,1260,1257,1274,
+ 1273,1258,1259,1270, 1273,1124,1127,1283, 1274,1257,1258,1273,
+ 1278,1174,1239,1279, 128,121,451,454, 1284,1276,1278,1285,
+ 1285,1278,1279,1287, 1286,1277,1276,1284, 1287,1279,1280,1288,
+ 1288,1280,1281,1289, 1289,1281,1277,1286, 129,120,124,125,
+ 1290,1284,1285,1291, 1291,1285,1287,1293, 1292,1286,1284,1290,
+ 1293,1287,1288,1294, 1294,1288,1289,1295, 1295,1289,1286,1292,
+ 660,666,18,17, 130,666,660,119, 130,119,120,129, 1301,458,461,1300,
+ 1301,1300,462,459, 1303,1070,1077,1127, 1303,1302,1125,1128,
+ 131,130,129,132, 132,129,125,136, 134,133,140,139, 135,134,139,138,
+ 136,135,138,137, 140,133,463,462, 141,132,136,137, 142,131,132,141,
+ 154,153,160,163, 158,36,37,157, 159,655,111,158, 161,156,155,162,
+ 161,41,42,448, 162,155,154,163, 163,40,41,162, 164,113,117,169,
+ 164,169,170,174, 165,116,115,167, 165,156,449,450, 166,114,113,164,
+ 167,166,173,172, 169,117,118,168, 170,169,168,171, 172,156,165,167,
+ 173,166,164,174, 174,170,178,175, 175,178,179,180, 176,155,172,173,
+ 176,173,174,175, 177,149,179,178, 178,170,171,177, 179,151,152,180,
+ 180,153,176,175, 649,648,131,142, 649,650,21,20, 201,145,250,264,
+ 206,90,753,869, 207,206,869,872, 263,256,400,399, 264,250,404,403,
+ 265,257,306,305, 266,251,310,309, 267,258,298,297, 268,252,302,301,
+ 269,239,300,299, 270,240,296,295, 271,241,308,307, 272,242,304,303,
+ 273,243,402,401, 274,244,398,397, 279,260,247,280, 280,247,320,353,
+ 281,277,254,282, 282,254,327,355, 283,259,248,284, 284,248,319,357,
+ 285,278,249,286, 286,249,321,359, 287,262,245,288, 288,245,318,361,
+ 289,275,255,290, 19,18,666,648, 290,255,328,363, 291,261,246,292,
+ 292,246,317,365, 293,276,253,294, 294,253,322,367, 296,240,316,369,
+ 298,258,329,371, 650,649,143,195, 300,239,315,373, 302,252,324,375,
+ 304,242,314,377, 306,257,330,379, 308,241,344,382, 661,653,652,662,
+ 310,251,313,385, 311,250,407,341, 312,256,273,340, 313,251,274,339,
+ 314,242,265,338, 315,239,268,337, 316,240,267,336, 317,246,276,335,
+ 318,245,275,334, 319,248,278,333, 662,667,668,663, 320,247,277,332,
+ 321,249,262,349, 322,253,270,347, 323,195,260,351, 324,252,272,345,
+ 325,244,263,343, 327,254,259,350, 328,255,261,348, 329,258,269,346,
+ 663,668,669,670, 330,257,271,380, 331,243,264,342, 332,277,281,354,
+ 333,278,285,358, 334,275,289,362, 335,276,293,366, 336,267,297,370,
+ 337,268,301,374, 338,265,305,378, 339,274,397,387, 664,661,662,663,
+ 340,273,401,391, 342,264,403,393, 343,263,399,389, 344,241,266,383,
+ 345,272,303,376, 346,269,299,372, 347,270,295,368, 348,261,291,364,
+ 349,262,287,360, 665,664,663,670, 350,259,283,356, 351,260,279,352,
+ 352,279,280,353, 353,320,351,352, 354,281,282,355, 355,327,332,354,
+ 356,283,284,357, 357,319,350,356, 358,285,286,359, 359,321,333,358,
+ 36,665,670,671, 360,287,288,361, 361,318,349,360, 362,289,290,363,
+ 363,328,334,362, 364,291,292,365, 365,317,348,364, 366,293,294,367,
+ 367,322,335,366, 368,295,296,369, 369,316,347,368, 37,36,671,674,
+ 370,297,298,371, 371,329,336,370, 372,299,300,373, 373,315,346,372,
+ 374,301,302,375, 375,324,337,374, 376,303,304,377, 377,314,345,376,
+ 378,305,306,379, 379,330,338,378, 38,37,674,675, 380,271,307,381,
+ 381,307,308,382, 382,344,380,381, 383,266,309,384, 384,309,310,385,
+ 385,313,383,384, 386,217,380,344, 388,325,339,387, 388,387,397,398,
+ 39,38,675,678, 390,312,343,389, 390,389,399,400, 392,331,340,391,
+ 392,391,401,402, 394,311,342,393, 394,393,403,404, 395,341,408,409,
+ 396,326,341,395, 396,395,409,410, 398,244,325,388, 40,39,678,679,
+ 400,256,312,390, 402,243,331,392, 404,250,311,394, 405,140,462,1300,
+ 406,326,396,410, 408,406,410,409, 41,40,679,682, 411,412,413,414,
+ 411,414,424,425, 412,405,1300,461, 417,415,416,418, 419,326,406,411,
+ 419,411,425,423, 42,41,682,683, 420,414,415,430, 422,420,419,423,
+ 424,414,420,422, 424,422,423,425, 426,417,421,428, 427,415,417,426,
+ 427,426,428,429, 43,42,683,686, 430,415,427,429, 431,651,639,1096,
+ 431,26,25,432, 432,25,24,433, 432,433,436,437, 433,24,23,434,
+ 434,23,22,435, 436,433,434,438, 436,438,441,443, 437,651,431,432,
+ 437,436,443,442, 438,434,435,439, 438,439,440,441, 44,43,686,687,
+ 441,440,447,446, 442,443,444,445, 443,441,446,444, 448,42,43,465,
+ 449,156,161,448, 449,448,465,464, 45,44,687,690, 450,449,464,452,
+ 451,116,165,450, 451,450,452,453, 454,451,453,455, 456,454,455,460,
+ 456,457,462,463, 459,457,456,460, 46,45,690,691, 461,458,607,617,
+ 463,128,454,456, 465,44,470,464, 466,98,476,475, 466,49,50,98,
+ 467,47,49,466, 468,46,47,467, 469,45,46,468, 47,46,691,694,
+ 470,44,45,469, 470,469,472,471, 472,469,468,473, 473,468,467,474,
+ 474,467,466,475, 476,95,477,475, 478,474,475,477, 479,473,474,478,
+ 48,695,696,697, 480,472,473,479, 481,480,479,482, 482,479,478,483,
+ 483,478,477,484, 486,483,484,485, 487,482,483,486, 487,486,494,489,
+ 488,459,460,471, 488,471,472,480, 489,481,482,487, 49,47,694,48,
+ 492,58,59,493, 493,59,104,501, 494,486,492,493, 494,493,510,511,
+ 497,496,499,500, 498,497,500,501, 652,640,667,662, 652,653,10,9,
+ 50,49,48,697, 500,499,509,510, 501,104,105,498, 502,74,565,567,
+ 504,72,73,503, 505,71,72,504, 505,504,507,509, 507,504,503,508,
+ 509,507,511,510, 51,50,697,698, 510,493,501,500, 511,507,508,573,
+ 513,81,82,566, 514,80,81,513, 515,79,80,514, 515,514,561,522,
+ 516,78,79,515, 516,515,522,521, 517,77,78,516, 518,76,77,517,
+ 52,51,698,701, 520,517,516,521, 521,522,523,524, 524,523,528,527,
+ 525,520,521,524, 526,525,524,527, 527,528,529,530, 53,52,701,702,
+ 530,529,534,533, 531,526,527,530, 532,531,530,533, 533,534,535,536,
+ 536,535,540,539, 537,532,533,536, 538,537,536,539, 539,540,541,542,
+ 54,53,702,705, 541,540,561,563, 542,541,546,545, 543,538,539,542,
+ 544,543,542,545, 545,546,547,548, 548,547,552,551, 549,544,545,548,
+ 55,54,705,706, 550,549,548,551, 551,552,553,554, 554,553,558,557,
+ 555,550,551,554, 556,555,554,557, 56,55,706,709, 564,518,538,543,
+ 566,82,743,84, 567,565,568,566, 569,84,572,570, 57,56,709,710,
+ 570,572,579,581, 573,489,494,511, 573,508,612,613, 577,502,567,569,
+ 577,569,570,576, 577,576,605,602, 578,576,570,581, 579,572,571,580,
+ 58,57,710,713, 580,571,598,599, 581,579,596,597, 582,575,589,588,
+ 583,582,585,584, 586,584,596,595, 587,586,595,594, 588,589,592,593,
+ 589,590,591,592, 59,58,713,714, 590,575,583,587, 590,587,594,591,
+ 591,594,606,608, 592,591,608,607, 593,578,581,597, 593,592,607,604,
+ 595,580,599,594, 596,579,580,595, 596,584,585,597, 597,585,588,593,
+ 653,654,11,10, 60,59,714,61, 600,577,602,603, 601,600,603,611,
+ 605,576,578,604, 61,716,717,62, 610,611,620,618, 611,615,623,620,
+ 612,610,618,619, 613,612,619,621, 614,491,573,613, 614,613,621,622,
+ 615,614,622,623, 618,620,626,624, 619,618,624,625, 62,717,718,65,
+ 620,623,629,626, 621,619,625,627, 622,621,627,628, 623,622,628,629,
+ 63,60,61,62, 639,638,1097,1096, 64,63,62,65, 647,634,793,782,
+ 1,647,646,2, 2,646,645,3, 65,718,719,66, 3,645,644,4, 4,644,643,5,
+ 5,643,642,6, 6,642,641,7, 7,641,640,8, 8,640,652,9, 28,27,1096,1097,
+ 29,28,1097,1098, 66,719,720,69, 30,29,1098,1099, 31,30,1099,1100,
+ 32,31,1100,1101, 33,637,636,34, 34,636,635,35, 35,635,634,0,
+ 0,634,647,1, 67,64,65,66, 670,669,672,671, 671,672,673,674,
+ 673,672,821,820, 674,673,676,675, 675,676,677,678, 678,677,680,679,
+ 679,680,681,682, 68,67,66,69, 681,680,826,825, 682,681,684,683,
+ 683,684,685,686, 684,681,824,1114, 685,684,1114,1131,
+ 686,685,688,687, 687,688,689,690, 689,688,1136,1135, 69,720,721,70,
+ 690,689,692,691, 691,692,693,694, 692,689,1135,1134,
+ 693,692,1134,1133, 694,693,695,48, 695,693,1133,1132,
+ 696,695,1132,761, 697,696,699,698, 698,699,700,701, 699,696,761,760,
+ 654,655,12,11, 70,721,722,723, 700,699,760,759, 701,700,703,702,
+ 702,703,704,705, 703,700,759,758, 704,703,758,757, 705,704,707,706,
+ 706,707,708,709, 707,704,757,756, 708,707,756,755, 709,708,711,710,
+ 71,68,69,70, 710,711,712,713, 711,708,755,754, 713,712,715,714,
+ 714,715,716,61, 715,712,1158,1159, 716,715,767,766, 717,716,766,765,
+ 718,717,765,764, 719,718,764,763, 72,71,70,723, 722,721,1171,1170,
+ 723,722,725,724, 724,725,726,727, 725,722,1170,1169, 727,726,729,728,
+ 728,729,730,731, 73,72,723,724, 731,730,733,732, 732,733,734,735,
+ 733,730,1184,1183, 734,733,1183,1182, 735,734,737,736,
+ 736,737,738,739, 737,734,1182,1181, 738,737,1181,1180,
+ 739,738,741,740, 74,73,724,727, 740,741,742,83, 741,738,1180,1179,
+ 742,741,1179,1232, 743,742,1232,744, 749,748,751,750, 75,74,727,728,
+ 750,751,752,753, 753,752,870,869, 76,75,728,731, 762,763,772,773,
+ 763,764,771,772, 764,765,770,771, 765,766,769,770, 766,767,768,769,
+ 767,715,1159,1167, 768,767,1167,1164, 77,76,731,732, 774,642,822,821,
+ 775,639,872,871, 776,780,783,787, 776,777,829,827, 778,779,828,830,
+ 78,77,732,735, 780,781,782,783, 780,776,827,832, 781,780,832,831,
+ 783,782,793,792, 784,779,778,785, 785,778,777,786, 786,777,776,787,
+ 787,783,792,788, 788,792,795,799, 789,786,787,788, 79,78,735,736,
+ 790,785,786,789, 791,784,785,790, 792,793,794,795, 793,634,635,794,
+ 794,635,636,805, 795,794,805,804, 796,791,790,797, 797,790,789,798,
+ 798,789,788,799, 799,795,804,800, 655,656,13,12, 80,79,736,739,
+ 801,798,799,800, 802,797,798,801, 803,796,797,802, 806,636,637,858,
+ 81,80,739,740, 815,814,842,843, 817,818,825,826, 818,819,824,825,
+ 82,81,740,83, 823,816,817,826, 824,819,1115,1114, 827,829,836,837,
+ 828,779,1117,1116, 828,819,835,830, 829,777,778,830, 831,832,833,834,
+ 833,832,827,837, 834,833,841,840, 835,818,839,836, 836,829,830,835,
+ 837,836,839,838, 839,816,843,838, 840,645,646,834, 841,833,837,838,
+ 842,812,840,841, 842,841,838,843, 86,747,748,749, 869,870,871,872,
+ 872,639,112,207, 88,87,86,749, 89,88,749,750, 656,657,14,13,
+ 90,89,750,753, 91,58,492,485, 910,927,952,953, 911,926,956,957,
+ 912,925,944,945, 913,924,948,949, 914,943,950,951, 915,808,864,929,
+ 918,941,958,959, 919,942,946,947, 92,91,485,484, 92,56,57,91,
+ 920,940,954,955, 924,919,992,1015, 925,858,988,1016, 926,920,993,1013,
+ 927,914,986,1014, 928,909,990,1008, 929,908,996,1007, 93,55,56,92,
+ 930,907,979,1003, 931,906,1009,1048, 932,905,981,1001,
+ 933,904,980,1002, 934,923,994,1011, 935,918,987,1012,
+ 936,922,995,1045, 937,917,989,1010, 938,921,977,1005,
+ 939,916,978,1004, 94,54,55,93, 940,910,983,999, 941,911,982,1000,
+ 942,912,985,997, 943,913,984,998, 944,925,1016,1017,
+ 945,944,1017,1018, 946,942,997,1019, 947,946,1019,1020,
+ 948,924,1015,1021, 949,948,1021,1022, 95,94,484,477, 95,53,54,94,
+ 950,943,998,1023, 951,950,1023,1024, 952,927,1014,1025,
+ 953,952,1025,1026, 954,940,999,1027, 955,954,1027,1028,
+ 956,926,1013,1029, 957,956,1029,1030, 958,941,1000,1031,
+ 959,958,1031,1032, 96,52,53,95, 960,935,1012,1033, 961,960,1033,1034,
+ 961,905,935,960, 962,932,1001,1035, 963,962,1035,1036,
+ 963,923,932,962, 964,934,1011,1037, 965,964,1037,1038,
+ 965,904,934,964, 966,933,1002,1039, 967,966,1039,1040,
+ 967,917,933,966, 968,937,1010,1041, 969,968,1041,1042,
+ 969,907,937,968, 97,51,52,96, 970,930,1003,1043, 971,970,1043,1044,
+ 971,922,930,970, 972,936,1045,1046, 973,972,1046,1047,
+ 973,906,936,972, 974,931,1048,1049, 975,974,1049,1050,
+ 975,916,931,974, 976,915,1069,1059, 977,921,1065,1055,
+ 978,916,975,1050, 979,907,969,1042, 98,50,51,97, 980,904,965,1038,
+ 981,905,961,1034, 982,911,957,1030, 983,910,953,1026,
+ 984,913,949,1022, 985,912,945,1018, 986,914,951,1024,
+ 987,918,959,1032, 989,917,967,1040, 990,909,1063,1053,
+ 992,919,947,1020, 993,920,955,1028, 994,923,963,1036,
+ 995,922,971,1044, 996,908,1067,1057, 997,992,1020,1019,
+ 998,986,1024,1023, 999,993,1028,1027,
+
+ /* The base of the knight */
+ SPIN,18,
+ 9510,0, 9510,756, SEAM, 9134,1129, 9447,1487,
+ 9447,1951, 9103,2371, STEPDOWN, 8211,3083,
+ 7167,4242, 6662,5664, 7040,7142, STEPUP, SEAM, 7935,8560,
+ STEPUP, BACKREF,0,
+
+ ENDOFDATA
+};
+
+static unsigned short bishop_data[] = {
+ VERTICES, SETBACKREF,0, 5233,26960,0, 5154,26960,909, 4918,26960,1790,
+ 4532,26960,2617, 4009,26960,3364, 3364,26960,4009, 2617,26960,4532,
+ 1790,26960,4918, 909,26960,5154, 0,26833,5233, -909,26960,5154,
+ -1790,26960,4918, -2617,26960,4532, -3364,26960,4009,
+ -4009,26960,3364, -4532,26960,2617, -4918,26960,1790,
+ -5154,26960,909, -5233,26960,0, -5154,26960,-909, -4918,26960,-1790,
+ -4532,26960,-2617, -4009,26960,-3364, -3364,26960,-4009,
+ -2617,26960,-4532, -1790,26960,-4918, -909,26960,-5154, 0,26833,-5233,
+ 909,26960,-5154, 1790,26960,-4918, 2617,26960,-4532, 3364,26960,-4009,
+ 4009,26960,-3364, 4532,26960,-2617, 4918,26960,-1790, 5154,26960,-909,
+ SETBACKREF,1, 3812,31178,0, 3765,31144,729, 3624,31040,1435,
+ 3395,30872,2153, 3084,30642,2820, 2701,30360,3389, 2076,29899,4102,
+ 1492,30015,4340, 845,30033,4442, 0,30044,4511, -657,30063,4443,
+ -1481,30081,4214, -2190,30081,3884, -2830,30081,3435,
+ -3383,30081,2883, -3831,30081,2242, -4162,30081,1534,
+ -4364,30081,779, -4432,30081,0, -4364,30081,-779, -4162,30081,-1534,
+ -3831,30081,-2242, -3383,30081,-2883, -2830,30081,-3435,
+ -2190,30081,-3884, -1481,30081,-4214, -657,30063,-4443, 0,30044,-4511,
+ 845,30033,-4442, 1492,30015,-4340, 2076,29899,-4102, 2701,30360,-3388,
+ 3084,30642,-2820, 3395,30872,-2153, 3624,31040,-1435, 3765,31144,-729,
+ 240,28546,-4957, 884,29021,-4784, 1490,29467,-4537, 2076,29899,-4102,
+ 2701,30360,-3388, 3084,30642,-2820, 3395,30872,-2153,
+ 3624,31040,-1435, 3765,31144,-729, 2177,28477,4637, 1021,27605,5037,
+ 1021,27605,-5042, 2170,28478,-4644, 0,26833,-5233, 0,26833,5233,
+ -3153,28619,-3758, 240,28546,4957, 884,29021,4784, 2076,29899,4102,
+ 2701,30360,3389, 3084,30642,2820, 3395,30872,2153, 3624,31040,1435,
+ 3765,31144,729, -719,28582,4883, 4863,28569,977, 4560,28569,1925,
+ 4064,28569,2815, 3465,28569,3723, 2622,28569,4448, 2621,28583,-4401,
+ 3473,28588,-3691, 4064,28569,-2815, 4560,28569,-1925, 4863,28569,-977,
+ 4965,28569,0, -1678,28619,4610, -3153,28619,3758, -2453,28619,4248,
+ -4248,28619,2453, -3758,28619,3153, -4831,28619,852, -4906,28619,0,
+ -4831,28619,-852, -4610,28619,-1678, -4248,28619,-2453,
+ -3758,28619,-3153, -1678,28619,-4610, -2453,28619,-4248,
+ -644,27895,5037, -644,27895,-5037, -4610,28619,1678, -719,28582,-4883,
+ 2170,28478,-4644, 1021,27605,-5042, 1021,27605,5037, 2177,28477,4637,
+ 0,26833,-5233, 0,26833,5233, -644,27895,-5037, -644,27895,5037,
+ -644,27895,5037, -644,27895,-5037, 1490,29467,-4537, 884,29021,-4784,
+ 240,28546,-4957, 240,28546,4957, 884,29021,4784, 3812,31178,0,
+ 4349,30116,-867, 4197,30001,-1705, 3948,29813,-2492, 3610,29558,-3203,
+ 3193,29244,-3817, 2711,28880,-4315, 4349,30116,-867, 4197,30001,-1705,
+ 3948,29813,-2492, 3610,29558,-3203, 3193,29244,-3817,
+ 2711,28880,-4315, 1608,28047,-4906, 1608,28047,4901, 2711,28880,4310,
+ 3193,29244,3812, 3610,29558,3198, 3948,29813,2487, 4197,30001,1701,
+ 4349,30116,862, 4401,30155,-176, 1490,29467,4537, 1490,29467,4537,
+ 4401,30155,-176, 4349,30116,862, 4197,30001,1701, 3948,29813,2487,
+ 3610,29558,3198, 3193,29244,3812, 2711,28880,4310, 1608,28047,4901,
+ 1608,28047,-4906,
+
+ TRIANGLES, 8,127,9, 7,128,154, 2,98,3, 121,96,10, 121,10,9, 121,138,96,
+ 122,27,26, 27,126,28, 66,135,65, 162,42,43, 165,164,141, 80,140,95,
+ 103,151,150, 102,125,152, 101,155,128, 100,157,156, 124,137,122,
+ 33,105,34, 29,153,125, 26,124,122,
+
+ QUADS, 22,118,87,23, 21,117,118,22, 20,116,117,21, 19,115,116,20,
+ 18,114,115,19, 17,113,114,18, 16,123,113,17, 15,111,123,16, 14,112,111,15,
+ 13,109,112,14, 12,110,109,13, 11,108,110,12, 7,154,127,8, 110,108,47,48,
+ 135,136,64,65, 136,137,63,64, 138,139,44,45, 139,162,43,44, 109,110,48,49,
+ 147,161,107,106, 166,165,141,142, 167,166,142,143, 168,167,143,144,
+ 169,168,144,145, 112,109,49,50, 170,169,145,146, 171,81,84,172,
+ 111,112,50,51, 72,88,133,134, 73,89,88,72, 74,163,89,73, 75,90,163,74,
+ 76,91,90,75, 77,92,91,76, 78,93,92,77, 79,94,93,78, 80,95,94,79,
+ 81,170,146,84, 82,171,172,83, 86,82,83,85, 130,129,131,132, 123,111,51,52,
+ 113,123,52,53, 114,113,53,54, 115,114,54,55, 116,115,55,56, 117,116,56,57,
+ 118,117,57,58, 87,118,58,59, 120,87,59,60, 119,120,60,61, 107,161,160,97,
+ 106,107,0,35, 105,148,147,106, 105,106,35,34, 104,149,148,105,
+ 104,105,33,32, 103,150,149,104, 103,104,32,31, 102,152,151,103,
+ 102,103,31,30, 101,128,7,6, 100,101,6,5, 100,156,155,101, 99,100,5,4,
+ 99,158,157,100, 98,99,4,3, 98,159,158,99, 97,98,2,1, 97,160,159,98,
+ 96,108,11,10, 96,138,45,46, 124,119,61,62, 47,108,96,46, 63,137,124,62,
+ 0,107,97,1, 29,125,102,30, 28,126,153,29, 25,119,124,26, 24,120,119,25,
+ 23,87,120,24,
+
+ /* Everything above the slit */
+ SPIN,18,
+ 8870,0,8870,731,SEAM,8519,1091,8811,1438,8811,1886,8626,2292,
+ STEPDOWN,6989,2980,5927,4133,5548,5735,
+ STEPUP,5388,7642,5228,7807,STEPDOWN,4427,8149,4057,8434,
+ 3493,9185,2816,13524,SEAM,2690,18532,5301,18690,
+ STEPUP,6810,19005,6861,19277,6804,19625,STEPDOWN,6502,19845,
+ SEAM,4305,20394,STEPUP,4796,20522,4924,20759,4778,20979,
+ STEPDOWN,SEAM,3727,21207,SEAM,3726,22181,STEPUP,SEAM,4546,22705,
+ SEAM,3846,23385,4718,24227,5226,25516,STEPUP,BACKREF,0,
+
+ /* Everything below the slit */
+ SPIN,36,
+ BACKREF,1,STEPDOWN,3548,31590,STEPDOWN,2724,32633,SEAM,1581,33500,
+ 2013,33901,STEPUP,2281,34500,2281,34936,STEPDOWN,1947,35372,
+ STEPDOWN,1233,35734,STEPDOWN,0,35891,
+
+ ENDOFDATA
+};
+
+static unsigned short king_data[] = {
+ SPIN,20,
+ 11378,0,11378,856,SEAM,10928,1152,
+ 11302,1684,11302,2209,11065,2684,
+ STEPDOWN,8964,3490,7603,4841,7116,6717,
+ STEPUP,6911,8950,6705,9144,STEPDOWN,5678,9545,5204,9878,
+ 4481,10758,3696,14808,SEAM,3065,26979,
+ 5813,27155,STEPUP,7145,27507,7424,27812,7352,28288,7131,28533,
+ 5477,28882,5397,29010,5406,29363,4903,29934,
+ STEPDOWN,SEAM,3944,30227,
+ SEAM,3974,31478,4703,31849,STEPUP,4832,32092,4756,32370,
+ SEAM,3975,32620,6899,39055,6877,39351,2833,39514,
+ 2786,39612,2786,39807,2734,39856,STEPDOWN,STEPDOWN,2590,39905,0,39969,
+ /* The cross */
+ SETBACKREF,0,
+ QUADSTRIP,-1613,39866,0,-1543,39866,702,-1651,40481,0,-1580,40590,702,
+ -1531,40917,0,-1465,41008,702,
+ QUADSTRIP,-1531,40917,0,-1465,41008,702,-2956,41104,0,-2829,41187,702,
+ -3075,41520,0,-2943,41585,702,-3075,43849,0,-2943,43805,702,
+ -2862,44347,0,-2739,44282,702,-1116,44636,0,-1068,44554,702,
+ QUADSTRIP,-1116,44636,0,-1068,44554,702,-1102,45692,0,-1054,45576,702,
+ -973,45829,0,-973,45747,702,973,45829,0,973,45747,702,1102,45692,0,
+ 1054,45576,702,1116,44636,0,1068,44554,702,
+ QUADSTRIP,1116,44636,0,1068,44554,702,2862,44347,0,2739,44282,702,
+ 3075,43849,0,2943,43805,702,3075,41520,0,2943,41585,702,2956,41104,0,
+ 2829,41187,702,1531,40917,0,1465,41008,702,
+ QUADSTRIP,1531,40917,0,1465,41008,702,1651,40481,0,1580,40590,702,
+ 1613,39866,0,1543,39866,702,
+ QUADSTRIP,-1543,39866,702,1543,39866,702,-1580,40590,702,
+ 1580,40590,702,-1465,41008,702,1465,41008,702,-2829,41187,702,
+ 2829,41187,702,-2943,41585,702,2943,41585,702,-2943,43805,702,
+ 2943,43805,702,-2739,44282,702,2739,44282,702,-1068,44554,702,
+ 1068,44554,702,-1054,45576,702,1054,45576,702,-973,45747,702,
+ 973,45747,702,
+ QUADSTRIP,-1543,39866,-702,BACKREF,0,0,-1580,40590,-702,BACKREF,0,2,
+ -1465,41008,-702,BACKREF,0,4,
+ QUADSTRIP,-1465,41008,-702,BACKREF,0,6,-2829,41187,-702,BACKREF,0,8,
+ -2943,41585,-702,BACKREF,0,10,-2943,43805,-702,BACKREF,0,12,
+ -2739,44282,-702,BACKREF,0,14,-1068,44554,-702,BACKREF,0,16,
+ QUADSTRIP,-1068,44554,-702,BACKREF,0,18,-1054,45576,-702,
+ BACKREF,0,20,-973,45747,-702,BACKREF,0,22,973,45747,-702,BACKREF,0,24,
+ 1054,45576,-702,BACKREF,0,26,1068,44554,-702,BACKREF,0,28,
+ QUADSTRIP,1068,44554,-702,BACKREF,0,30,2739,44282,-702,
+ BACKREF,0,32,2943,43805,-702,BACKREF,0,34,2943,41585,-702,BACKREF,0,36,
+ 2829,41187,-702,BACKREF,0,38,1465,41008,-702,BACKREF,0,40,
+ QUADSTRIP,1465,41008,-702,BACKREF,0,42,1580,40590,-702,
+ BACKREF,0,44,1543,39866,-702,BACKREF,0,46,
+ QUADSTRIP,1543,39866,-702,-1543,39866,-702,1580,40590,-702,
+ -1580,40590,-702,1465,41008,-702,-1465,41008,-702,2829,41187,-702,
+ -2829,41187,-702,2943,41585,-702,-2943,41585,-702,2943,43805,-702,
+ -2943,43805,-702,2739,44282,-702,-2739,44282,-702,1068,44554,-702,
+ -1068,44554,-702,1054,45576,-702,-1054,45576,-702,973,45747,-702,
+ -973,45747,-702,
+ ENDOFDATA
+};
+
+static unsigned short queen_data[] = {
+ SPIN,24,
+ 11092,0,11092,914,SEAM,10653,1284,
+ 11018,1798,11018,2358,10787,2866,
+ STEPDOWN,8739,3726,7412,5168,6937,7171,
+ STEPUP,6737,9556,6537,9762,STEPDOWN,5536,10191,5073,10546,
+ 4368,11485,3678,15137,SEAM,3259,26879,
+ 5966,27091,STEPUP,7332,27515,7619,27882,7545,28455,7317,28751,
+ 5654,29177,5538,29326,5542,29982,5377,30278,
+ STEPDOWN,SEAM,4194,30585,
+ SEAM,4226,31822,5002,32218,STEPUP,5139,32477,5058,32774,
+ SEAM,4227,33040,STEPDOWN,4421,34778,5042,36612,5874,38429,
+ STEPUP,SEAM,PATTERN,3,6018,39660,6018,39660,6804,39977,
+ SEAM,PATTERN,3,5015,41139,5015,41139,5673,41460,
+ SEAM,4349,40044,
+ STEPDOWN,SEAM,1381,41188,
+ 1396,42332,STEPDOWN,1082,43072,481,43476,0,43543,
+ ENDOFDATA
+};
+
+static unsigned short pawn_data[] = {
+ SPIN,16,
+ 7395,0,7395,609,
+ SEAM,7102,910,7345,1199,7345,1572,7191,1910,
+ STEPDOWN,5826,2484,4941,3446,4625,4781,
+ STEPUP,4492,6371,4358,6508,
+ STEPDOWN,3691,6794,2912,7657,2473,10091,
+ SEAM,2100,15344,
+ STEPUP,4518,15697,4695,15900,4649,16218,4509,16382,
+ STEPDOWN,SEAM,3150,16755,STEPUP,3858,17678,4303,18752,4455,19905,
+ 4303,21058,3858,22132,
+ STEPDOWN,3150,23055,2227,23763,STEPDOWN,1153,24208,0,24360,
+ ENDOFDATA
+};
+
+static unsigned short rook_data[] = {
+ SPIN,20,
+ 9374,0,9374,756,SEAM,9003,1062,9311,1487,
+ 9311,1951,9116,2371,8521,3083,6701,5807,SEAM,6009,7595,
+ 6167,7812,6138,8066,5926,8460,5216,12608,
+ SEAM,4883,21434,
+ SEAM,5140,21608,
+ SEAM,5176,22792,
+ SEAM,5953,23030,
+/* SEAM,PATTERN,5,6103,26819,6143,27971,6143,27971,6143,27971,6103,26819, */
+/* SEAM,PATTERN,5, 5020,26819,5053,27971,5053,27971,5053,27971, 5020,26819, */
+ SETBACKREF,0,
+ 6103,26819,
+
+ SETBACKREF,1,
+ SPIN,20,
+ 5020,26819,5020,26114,4906,25858,0,25666,
+
+ POLARQUADSTRIP,20,BACKREF,0,1,1,6143,27971,BACKREF,0,2,2,6143,27971,
+ BACKREF,0,3,3,6143,27971,BACKREF,0,4,4,6143,27971,
+ POLARQUADSTRIP,20,BACKREF,0,6,6,6143,27971,BACKREF,0,7,7,6143,27971,
+ BACKREF,0,8,8,6143,27971,BACKREF,0,9,9,6143,27971,
+ POLARQUADSTRIP,20,BACKREF,0,11,11,6143,27971,BACKREF,0,12,12,6143,27971,
+ BACKREF,0,13,13,6143,27971,BACKREF,0,14,14,6143,27971,
+ POLARQUADSTRIP,20,BACKREF,0,16,16,6143,27971,BACKREF,0,17,17,6143,27971,
+ BACKREF,0,18,18,6143,27971,BACKREF,0,19,19,6143,27971,
+
+ POLARQUADSTRIP,20,1,5053,27971,BACKREF,1,1,2,5053,27971,BACKREF,1,2,
+ 3,5053,27971,BACKREF,1,3,4,5053,27971,BACKREF,1,4,
+ POLARQUADSTRIP,20,6,5053,27971,BACKREF,1,6,7,5053,27971,BACKREF,1,7,
+ 8,5053,27971,BACKREF,1,8,9,5053,27971,BACKREF,1,9,
+ POLARQUADSTRIP,20,11,5053,27971,BACKREF,1,11,12,5053,27971,BACKREF,1,12,
+ 13,5053,27971,BACKREF,1,13,14,5053,27971,BACKREF,1,14,
+ POLARQUADSTRIP,20,16,5053,27971,BACKREF,1,16,17,5053,27971,BACKREF,1,17,
+ 18,5053,27971,BACKREF,1,18,19,5053,27971,BACKREF,1,19,
+
+ POLARQUADSTRIP,20,1,5020,26819,1,6103,26819,
+ 0,5020,26819,0,6103,26819,19,5020,26819,19,6103,26819,
+ POLARQUADSTRIP,20,6,5020,26819,6,6103,26819,
+ 5,5020,26819,5,6103,26819,4,5020,26819,4,6103,26819,
+ POLARQUADSTRIP,20,11,5020,26819,11,6103,26819,
+ 10,5020,26819,10,6103,26819,9,5020,26819,9,6103,26819,
+ POLARQUADSTRIP,20,16,5020,26819,16,6103,26819,
+ 15,5020,26819,15,6103,26819,14,5020,26819,14,6103,26819,
+
+ POLARQUADSTRIP,20,1,5053,27971,1,6143,27971,1,5020,26819,1,6103,26819,
+ POLARQUADSTRIP,20,4,5020,26819,4,6103,26819,4,5053,27971,4,6143,27971,
+ POLARQUADSTRIP,20,6,5053,27971,6,6143,27971,6,5020,26819,6,6103,26819,
+ POLARQUADSTRIP,20,9,5020,26819,9,6103,26819,9,5053,27971,9,6143,27971,
+ POLARQUADSTRIP,20,11,5053,27971,11,6143,27971,11,5020,26819,11,6103,26819,
+ POLARQUADSTRIP,20,14,5020,26819,14,6103,26819,14,5053,27971,14,6143,27971,
+ POLARQUADSTRIP,20,16,5053,27971,16,6143,27971,16,5020,26819,16,6103,26819,
+ POLARQUADSTRIP,20,19,5020,26819,19,6103,26819,19,5053,27971,19,6143,27971,
+
+ POLARQUADSTRIP,20,1,6143,27971,1,5053,27971,2,6143,27971,2,5053,27971,
+ 3,6143,27971,3,5053,27971,4,6143,27971,4,5053,27971,
+ POLARQUADSTRIP,20,6,6143,27971,6,5053,27971,7,6143,27971,7,5053,27971,
+ 8,6143,27971,8,5053,27971,9,6143,27971,9,5053,27971,
+ POLARQUADSTRIP,20,11,6143,27971,11,5053,27971,12,6143,27971,12,5053,27971,
+ 13,6143,27971,13,5053,27971,14,6143,27971,14,5053,27971,
+ POLARQUADSTRIP,20,16,6143,27971,16,5053,27971,17,6143,27971,17,5053,27971,
+ 18,6143,27971,18,5053,27971,19,6143,27971,19,5053,27971,
+
+ ENDOFDATA
+};
+
+static double piece_size;
+
+static int
+enumerate_ring_vertices( int steps, unsigned short *data, void *h,
+ void (*process_vertex)(void *h,double x,double y,double z))
+{
+ int patlen = 1,i;
+ unsigned short *pts = data;
+ double dtheta = M_PI * 2 / steps;
+
+ if( data[0] == PATTERN) {
+ patlen = data[1];
+ pts += 2;
+ }
+
+ if( pts[0] == 0) steps = 1;
+
+ for( i=0; i < steps; i++) {
+ double r = pts[(i % patlen)*2] * piece_size;
+ double y = pts[(i % patlen)*2+1] * piece_size;
+ double theta = dtheta * i;
+
+ process_vertex( h, r * cos(theta), y, r * sin(theta));
+ }
+
+ return pts + patlen * 2 - data;
+}
+
+static void
+enumerate_vertices( unsigned short *data, void *h,
+ void (*process_vertex)(void *h,double x,double y,double z))
+{
+ while(1) {
+ if( data[0] == SPIN) {
+ int steps;
+ steps = data[1];
+ data += 2;
+
+ while(data[0] <= SEAM) {
+ if( data[0] == SETBACKREF || data[0] == BACKREF) {
+ data += 2;
+ continue;
+ } else if( data[0] == STEPUP) {
+ steps *= 2;
+ data++;
+ continue;
+ } else if( data[0] == STEPDOWN) {
+ steps /= 2;
+ data++;
+ continue;
+ } else if( data[0] == SEAM) {
+ data ++;
+ /* Visit seam vertices twice */
+ enumerate_ring_vertices( steps, data,
+ h, process_vertex);
+ data += enumerate_ring_vertices( steps, data,
+ h, process_vertex);
+ } else {
+ data += enumerate_ring_vertices( steps, data,
+ h, process_vertex);
+ }
+ }
+ } else if( data[0] == POLARQUADSTRIP) {
+ int steps = data[1];
+ double dtheta;
+ data += 2;
+
+ dtheta = M_PI * 2 / steps;
+
+ while(data[0] <= SEAM) {
+ if( data[0] != BACKREF) {
+ double theta = dtheta * data[0];
+ double r = data[1] * piece_size;
+ double y = data[2] * piece_size;
+ process_vertex( h, r * cos(theta), y, r * sin(theta));
+ }
+ data += 3;
+ }
+ } else if( data[0] == QUADSTRIP || data[0] == VERTICES) {
+ data ++;
+
+ while(data[0] <= SEAM) {
+ if( data[0] == SETBACKREF) {
+ data += 2;
+ continue;
+ }
+
+ if( data[0] != BACKREF) {
+ double x = (signed short)data[0] * piece_size;
+ double y = data[1] * piece_size;
+ double z = (signed short)data[2] * piece_size;
+ process_vertex( h, x, y, z);
+ }
+ data += 3;
+ }
+ } else if( data[0] == QUADS || data[0] == TRIANGLES) {
+ data ++;
+ while( data[0] <= SEAM) data++;
+ } else {
+ break;
+ }
+ }
+}
+
+static void
+enumerate_ring_faces( int basevertex, int steps,
+ int prevbase, int prevsteps, void *h, int *count_ret,
+ void (*process_face)(void *h,int v1,int v2,int v3,int v4))
+{
+ int i,j;
+
+ if( steps == 1) {
+ for( i=0; i < prevsteps; i++) {
+ process_face( h,
+ basevertex,
+ prevbase + i,
+ prevbase + (i ? i-1 : prevsteps-1),
+ -1);
+ if (count_ret) (*count_ret)++;
+ }
+ } else if( steps == prevsteps) {
+ for( i=0; i < steps; i++) {
+ process_face( h,
+ basevertex + i,
+ prevbase + i,
+ prevbase + (i ? i-1 : steps-1),
+ basevertex + (i ? i-1 : steps-1));
+ if (count_ret) (*count_ret)++;
+ }
+ } else {
+ j = 0;
+ for( i=0;; i++) {
+ while( j < prevsteps && steps*(1+2*j) < prevsteps*(1+2*i)) {
+ process_face( h,
+ basevertex + (i%steps),
+ prevbase + ((j+1)%prevsteps),
+ prevbase + j,
+ -1);
+ if (count_ret) (*count_ret)++;
+ j++;
+ }
+ if( i == steps) break;
+ process_face( h,
+ basevertex + i,
+ basevertex + ((i+1)%steps),
+ prevbase + (j%prevsteps),
+ -1);
+ if (count_ret) (*count_ret)++;
+ }
+ }
+}
+
+static void
+enumerate_faces( unsigned short *data, void *h, int *count_ret,
+ void (*process_face)(void *h,int v1,int v2,int v3,int v4))
+{
+ int basevertex = 0, startofvertices = 0;
+ int backrefs[5];
+
+ while(1) {
+ if( data[0] == SPIN) {
+ int steps;
+ int prevsteps = -1,prevbase = 0;
+
+ steps = data[1];
+ data += 2;
+
+ while( data[0] <= SEAM) {
+ if( data[0] == SETBACKREF) {
+ backrefs[data[1]] = basevertex;
+ data += 2;
+ continue;
+ }
+
+ if( data[0] == STEPUP) {
+ steps *= 2;
+ data++;
+ continue;
+ } else if( data[0] == STEPDOWN) {
+ steps /= 2;
+ data++;
+ continue;
+ }
+
+ if( data[0] == BACKREF) {
+ if( prevsteps != -1) {
+ enumerate_ring_faces( backrefs[data[1]], steps,
+ prevbase, prevsteps, h,
+ count_ret, process_face);
+ }
+
+ prevbase = backrefs[data[1]];
+ data += 2;
+ } else {
+ int isseam = 0;
+ if( data[0] == SEAM) {
+ isseam = 1;
+ data++;
+ }
+
+ if( data[0] == PATTERN) {
+ data += 2 + data[1]*2;
+ } else {
+ if( data[0] == 0) steps = 1;
+ data += 2;
+ }
+
+ if( prevsteps != -1) {
+ enumerate_ring_faces( basevertex, steps,
+ prevbase, prevsteps, h,
+ count_ret, process_face);
+ }
+
+ if( isseam) basevertex += steps;
+ prevbase = basevertex;
+ basevertex += steps;
+ }
+
+ prevsteps = steps;
+ }
+ } else if( data[0] == POLARQUADSTRIP || data[0] == QUADSTRIP) {
+ int v0=-1,v1=0,v2,v3;
+ if( data[0] == POLARQUADSTRIP) data += 2;
+ else data ++;
+ while(data[0] <= SEAM) {
+ if( data[0] == BACKREF) {
+ v2 = backrefs[data[1]]+data[2];
+ } else {
+ v2 = basevertex;
+ basevertex++;
+ }
+ if( data[3] == BACKREF) {
+ v3 = backrefs[data[4]]+data[5];
+ } else {
+ v3 = basevertex;
+ basevertex++;
+ }
+ data += 6;
+ if( v0 != -1) {
+ process_face( h, v0, v1, v3, v2);
+ if (count_ret) (*count_ret)++;
+ }
+ v0 = v2;
+ v1 = v3;
+ }
+ } else if( data[0] == VERTICES) {
+ data ++;
+ startofvertices = basevertex;
+ while( data[0] <= SEAM) {
+ if( data[0] == SETBACKREF) {
+ backrefs[data[1]] = basevertex;
+ data += 2;
+ continue;
+ }
+ data += 3;
+ basevertex ++;
+ }
+ } else if( data[0] == QUADS) {
+ data ++;
+ while( data[0] <= SEAM) {
+ process_face( h,
+ data[0] + startofvertices,
+ data[1] + startofvertices,
+ data[2] + startofvertices,
+ data[3] + startofvertices);
+ if (count_ret) (*count_ret)++;
+ data += 4;
+ }
+ } else if( data[0] == TRIANGLES) {
+ data ++;
+ while( data[0] <= SEAM) {
+ process_face( h,
+ data[0] + startofvertices,
+ data[1] + startofvertices,
+ data[2] + startofvertices, -1);
+ if (count_ret) (*count_ret)++;
+ data += 3;
+ }
+ } else {
+ break;
+ }
+ }
+}
+
+static void
+normalize( float v[3]) {
+ float d = sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);
+
+ if( d == 0.0) {
+ /* The direction is undefined - normalize it anyway */
+ v[0] = 1.0;
+ v[1] = 0.0;
+ v[2] = 0.0;
+ return;
+ }
+
+ v[0] /= d;
+ v[1] /= d;
+ v[2] /= d;
+}
+
+static void
+normcrossprod( float v1[3], float v2[3], float out[3])
+{
+ out[0] = v1[1] * v2[2] - v1[2] * v2[1];
+ out[1] = v1[2] * v2[0] - v1[0] * v2[2];
+ out[2] = v1[0] * v2[1] - v1[1] * v2[0];
+ normalize( out);
+}
+
+#define vectordiff(v1,v2,out) \
+ ((out)[0] = (v1)[0] - (v2)[0], \
+ (out)[1] = (v1)[1] - (v2)[1], \
+ (out)[2] = (v1)[2] - (v2)[2])
+
+#define vectoradd(v1,v2) \
+ ((v1)[0] += (v2)[0], \
+ (v1)[1] += (v2)[1], \
+ (v1)[2] += (v2)[2])
+
+static int numverts;
+static float *vertices;
+static float *normals;
+
+static void
+count_vertex( void *dummy, double x, double y, double z)
+{
+ numverts++;
+}
+
+static void
+add_normal( void *dummy, int v1, int v2, int v3, int v4)
+{
+ float surfnormal[3],d1[3],d2[3];
+
+ if( v4 == -1) {
+ vectordiff( vertices + 3 * v2, vertices + 3 * v1, d1);
+ vectordiff( vertices + 3 * v3, vertices + 3 * v1, d2);
+ normcrossprod( d1, d2, surfnormal);
+ vectoradd( normals + 3 * v1, surfnormal);
+ vectoradd( normals + 3 * v2, surfnormal);
+ vectoradd( normals + 3 * v3, surfnormal);
+ } else {
+ vectordiff( vertices + 3 * v2, vertices + 3 * v1, d1);
+ vectordiff( vertices + 3 * v4, vertices + 3 * v1, d2);
+ normcrossprod( d1, d2, surfnormal);
+ vectoradd( normals + 3 * v1, surfnormal);
+ vectordiff( vertices + 3 * v3, vertices + 3 * v2, d1);
+ vectordiff( vertices + 3 * v1, vertices + 3 * v2, d2);
+ normcrossprod( d1, d2, surfnormal);
+ vectoradd( normals + 3 * v2, surfnormal);
+ vectordiff( vertices + 3 * v4, vertices + 3 * v3, d1);
+ vectordiff( vertices + 3 * v2, vertices + 3 * v3, d2);
+ normcrossprod( d1, d2, surfnormal);
+ vectoradd( normals + 3 * v3, surfnormal);
+ vectordiff( vertices + 3 * v1, vertices + 3 * v4, d1);
+ vectordiff( vertices + 3 * v3, vertices + 3 * v4, d2);
+ normcrossprod( d1, d2, surfnormal);
+ vectoradd( normals + 3 * v4, surfnormal);
+ }
+}
+
+static void
+collect_vertex( void *curvert, double x, double y, double z)
+{
+ (*(float**)curvert)[0] = x;
+ (*(float**)curvert)[1] = y;
+ (*(float**)curvert)[2] = z;
+ (*(float**)curvert) += 3;
+}
+
+static void
+draw_face( void *dummy, int v1, int v2, int v3, int v4)
+{
+ glBegin( v4 == -1 ? GL_TRIANGLES : GL_QUADS);
+ glNormal3f( normals[v1*3], normals[v1*3+1], normals[v1*3+2]);
+ glVertex3f( vertices[v1*3], vertices[v1*3+1], vertices[v1*3+2]);
+ glNormal3f( normals[v2*3], normals[v2*3+1], normals[v2*3+2]);
+ glVertex3f( vertices[v2*3], vertices[v2*3+1], vertices[v2*3+2]);
+ glNormal3f( normals[v3*3], normals[v3*3+1], normals[v3*3+2]);
+ glVertex3f( vertices[v3*3], vertices[v3*3+1], vertices[v3*3+2]);
+ if( v4 != -1) {
+ glNormal3f( normals[v4*3], normals[v4*3+1], normals[v4*3+2]);
+ glVertex3f( vertices[v4*3], vertices[v4*3+1], vertices[v4*3+2]);
+ }
+ glEnd();
+}
+
+static int
+draw_piece( unsigned short *piece_data)
+{
+ int i;
+ float *curvert;
+ int count = 0;
+
+ /* Count how many vertices this piece has */
+ enumerate_vertices( piece_data, NULL, count_vertex);
+
+ /* Allocate memory for the vertices and for the vertex normals */
+ vertices = malloc( sizeof(float) * 3 * numverts);
+ normals = malloc( sizeof(float) * 3 * numverts);
+ if( !vertices || !normals) exit(1);
+
+ /* Collect the vertex coordinates */
+ curvert = vertices;
+ enumerate_vertices( piece_data, &curvert, collect_vertex);
+
+ /* Zero out the normals */
+ for( i=0; i < numverts * 3; i++) {
+ normals[i] = 0.0;
+ }
+
+ /* Add up all the face normals at each vertex */
+ enumerate_faces( piece_data, NULL, NULL, add_normal);
+
+ /* Normalize the vertex normals */
+ for( i=0; i < numverts; i++) {
+ normalize( normals + i * 3);
+ }
+
+ /* Now draw the faces */
+ enumerate_faces( piece_data, NULL, &count, draw_face);
+
+ free( normals);
+ free( vertices);
+
+ if (count <= 1) abort();
+ return count;
+}
+
+void chessmodels_gen_lists( int classic, int poly_count[PIECES]) {
+
+ Bool queen_only_p = classic < 0;
+ if (classic < 0) classic = 0;
+
+ piece_size = classic ? 0.095 / 100 : 0.3 / 8192;
+
+ glGenLists (20); /* this is horrible! List numbers are hardcoded! */
+
+ glNewList(QUEEN, GL_COMPILE);
+ poly_count[QUEEN] = draw_piece( classic ? classic_queen_data : queen_data);
+ glEndList();
+
+ if (queen_only_p) return;
+
+ glNewList(KING, GL_COMPILE);
+ poly_count[KING] = draw_piece( classic ? classic_king_data : king_data);
+ glEndList();
+
+ glNewList(BISHOP, GL_COMPILE);
+ poly_count[BISHOP] = draw_piece( classic ? classic_bishop_data : bishop_data);
+ glEndList();
+
+ glNewList(KNIGHT, GL_COMPILE);
+ poly_count[KNIGHT] = draw_piece( classic ? classic_knight_data : knight_data);
+ glEndList();
+
+ glNewList(ROOK, GL_COMPILE);
+ poly_count[ROOK] = draw_piece( classic ? classic_rook_data : rook_data);
+ glEndList();
+
+ glNewList(PAWN, GL_COMPILE);
+ poly_count[PAWN] = draw_piece( classic ? classic_pawn_data : pawn_data);
+ glEndList();
+}
diff --git a/hacks/glx/chessmodels.h b/hacks/glx/chessmodels.h
new file mode 100644
index 0000000..6e41e22
--- /dev/null
+++ b/hacks/glx/chessmodels.h
@@ -0,0 +1,44 @@
+/*
+ * models for the xss chess screensavers
+ * hacked from:
+ *
+ * glChess - A 3D chess interface
+ *
+ * Copyright (C) 2006 John-Paul Gignac <jjgignac@users.sf.net>
+ *
+ * Copyright (C) 2002 Robert Ancell <bob27@users.sourceforge.net>
+ * Michael Duelli <duelli@users.sourceforge.net>
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* ugggggggly */
+#define PIECES 7
+#define NONE 0
+#define KING 1
+#define QUEEN 2
+#define BISHOP 3
+#define KNIGHT 4
+#define ROOK 5
+#define PAWN 6
+#define BKING 8
+#define BQUEEN 9
+#define BBISHOP 10
+#define BKNIGHT 11
+#define BROOK 12
+#define BPAWN 13
+
+extern void chessmodels_gen_lists( int classic, int poly_count[PIECES]);
+
diff --git a/hacks/glx/circuit.c b/hacks/glx/circuit.c
new file mode 100644
index 0000000..744e4b6
--- /dev/null
+++ b/hacks/glx/circuit.c
@@ -0,0 +1,2094 @@
+/*
+ * circuit - Random electronic components floating around
+ *
+ * version 1.4
+ *
+ * Since version 1.1: added to-220 transistor, added fuse
+ * Since version 1.2: random display digits, LED improvements (flickering)
+ * Since version 1.3: ICs look better, font textures, improved normals to
+ * eliminate segmenting on curved surfaces, speedups
+ * Since version 1.4: Added RCA connector, 3.5mm connector, slide switch,
+ * surface mount, to-92 markings. Fixed ~5min crash.
+ * Better LED illumination. Other minor changes.
+ *
+ * Copyright (C) 2001-2015 Ben Buxton (bb@cactii.net)
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* Written over a few days in a (successful) bid to learn GL coding
+ *
+ * -seven option is dedicated to all the Slarkeners
+ *
+ * This hack uses lookup tables for sin, cos and tan - it can do a lot
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+ "*componentFont: -*-courier-bold-r-normal-*-*-140-*-*-*-*-*-*"
+
+# define release_circuit 0
+# define circuit_handle_event xlockmore_no_events
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#define DEF_SPIN "True"
+#define DEF_SEVEN "False"
+#define DEF_PARTS "10"
+#define DEF_ROTATESPEED "1"
+#define DEF_LIGHT "True"
+
+/* lifted from lament.c */
+#define RAND(n) ((long) ((random() & 0x7fffffff) % ((long) (n))))
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+
+#ifdef USE_GL
+
+#include "texfont.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static int maxparts;
+static int rotatespeed;
+static int spin;
+static int uselight;
+static int seven;
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static XrmOptionDescRec opts[] = {
+ {"-parts", ".circuit.parts", XrmoptionSepArg, 0 },
+ {"-rotate-speed", ".circuit.rotatespeed", XrmoptionSepArg, 0 },
+ {"+spin", ".circuit.spin", XrmoptionNoArg, "false" },
+ {"-spin", ".circuit.spin", XrmoptionNoArg, "true" },
+ {"+light", ".circuit.light", XrmoptionNoArg, "false" },
+ {"-light", ".circuit.light", XrmoptionNoArg, "true" },
+ {"+seven", ".circuit.seven", XrmoptionNoArg, "false" },
+ {"-seven", ".circuit.seven", XrmoptionNoArg, "true" },
+};
+
+static argtype vars[] = {
+ {&maxparts, "parts", "Parts", DEF_PARTS, t_Int},
+ {&rotatespeed, "rotatespeed", "Rotatespeed", DEF_ROTATESPEED, t_Int},
+ {&spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&uselight, "light", "Light", DEF_LIGHT, t_Bool},
+ {&seven, "seven", "Seven", DEF_SEVEN, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt circuit_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct circuit_description =
+{"circuit", "init_circuit", "draw_circuit", NULL,
+ "draw_circuit", "init_circuit", "free_circuit", &circuit_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Flying electronic components", 0, NULL};
+
+#endif
+
+#define MAX_COMPONENTS 400
+#define MOVE_MULT 0.02
+
+static float f_rand(void)
+{
+ return ((float)RAND(10000)/(float)10000);
+}
+
+#define RAND_RANGE(min, max) ((min) + (max - min) * f_rand())
+
+/* Represents a band on a resistor/diode/etc */
+typedef struct {
+ float pos; /* relative position from start/previous band */
+ GLfloat r, g, b; /* colour of the band */
+ float len; /* length as a fraction of total length */
+} Band;
+
+typedef struct {
+ Band *b1, *b2, *b3, *b4; /* bands */
+ int b[4];
+} Resistor;
+
+typedef struct {
+ Band *band;
+ GLfloat r, g, b; /* body colour */
+} Diode;
+
+static const char * const transistortypes[] = {
+ "TIP2955",
+ "TIP32C",
+ "LM 350T",
+ "IRF730",
+ "ULN2577",
+ "7805T",
+ "7912T",
+ "TIP120",
+ "2N6401",
+ "BD239",
+ "2SC1590",
+ "MRF485",
+ "SC141D"
+};
+
+static const char * const to92types[] = {
+ "C\n548",
+ "C\n848",
+ "74\nL05",
+ "C\n858",
+ "BC\n212L",
+ "BC\n640",
+ "BC\n337",
+ "BC\n338",
+ "S817",
+ "78\nL12",
+ "TL\n431",
+ "LM\n35DZ",
+};
+
+static const char * const smctypes[] = {
+ "1M-",
+ "1K",
+ "1F",
+ "B10",
+ "S14",
+ "Q3",
+ "4A"
+};
+
+typedef struct {
+ int type; /* package type. 0 = to-92, 1 = to-220 */
+ const char *text;
+} Transistor;
+
+typedef struct {
+ GLfloat r,g,b; /* LED colour */
+ int light; /* are we the light source? */
+} LED;
+
+typedef struct {
+ int type; /* 0 = electro, 1 = ceramic */
+ float width; /* width of an electro/ceramic */
+ float length; /* length of an electro */
+} Capacitor;
+
+/* 3.5 mm plug */
+typedef struct {
+ int blah;
+} ThreeFive;
+
+/* slide switch */
+typedef struct {
+ int position;
+} Switch;
+
+typedef struct {
+ int pins;
+ const char *val;
+} ICTypes;
+
+static const ICTypes ictypes[] = {
+ {8, "NE 555"},
+ {8, "LM 386N"},
+ {8, "ADC0831"},
+ {8, "LM 383T"},
+ {8, "TL071"},
+ {8, "LM 311"},
+ {8, "LM393"},
+ {8, "LM 3909"},
+
+ {14, "LM 380N"},
+ {14, "NE 556"},
+ {14, "TL074"},
+ {14, "LM324"},
+ {14, "LM339"},
+ {14, "MC1488"},
+ {14, "MC1489"},
+ {14, "LM1877-9"},
+ {14, "4011"},
+ {14, "4017"},
+ {14, "4013"},
+ {14, "4024"},
+ {14, "4066"},
+
+ {16, "4076"},
+ {16, "4049"},
+ {16, "4094"},
+ {16, "4043"},
+ {16, "4510"},
+ {16, "4511"},
+ {16, "4035"},
+ {16, "RS232"},
+ {16, "MC1800"},
+ {16, "ULN2081"},
+ {16, "UDN2953"},
+
+ {24, "ISD1416P"},
+ {24, "4515"},
+ {24, "TMS6264L"},
+ {24, "MC146818"}
+};
+
+typedef struct {
+ int type; /* 0 = DIL, 1 = flat square */
+ int pins;
+ char text[100];
+} IC;
+
+/* 7 segment display */
+
+typedef struct {
+ int value; /* displayed number */
+} Disp;
+
+typedef struct {
+ GLfloat l, w;
+} Fuse;
+
+typedef struct {
+ GLfloat l, w;
+ int col;
+} RCA;
+
+typedef struct {
+ GLfloat x, y, z; /* current co-ordinates */
+ GLfloat dx, dy, dz; /* current direction */
+ GLfloat rotx, roty, rotz; /* rotation vector */
+ GLfloat drot; /* rotation velocity (degrees per frame) */
+ int norm; /* Normalize this component (for shine) */
+ int rdeg; /* current rotation degrees */
+ int angle; /* angle about the z axis */
+ int alpha; /* 0 if not a transparent component */
+ int type; /* 0 = resistor, 1 = diode, 2 = transistor, 3 = LED, 4 = cap, 5=IC,
+ 6 = 7 seg disp */
+ void * c; /* pointer to the component */
+} Component;
+
+/* standard colour codes */
+
+static const GLfloat colorcodes [12][3] = {
+ {0.0,0.0,0.0}, /* black 0 */
+ {0.49,0.25,0.08}, /* brown 1 */
+ {1.0,0.0,0.0}, /* red 2 */
+ {1.0,0.5,0.0}, /* orange 3 */
+ {1.0,1.0,0.0}, /* yellow 4 */
+ {0.0,1.0,0.0}, /* green 5 */
+ {0.0,0.5,1.0}, /* blue 6 */
+ {0.7,0.2,1.0}, /* violet 7 */
+ {0.5,0.5,0.5}, /* grey 8 */
+ {1.0,1.0,1.0}, /* white 9 */
+ {0.66,0.56,0.2}, /* gold 10 */
+ {0.8,0.8,0.8}, /* silver 11 */
+};
+
+/* base values for components - we can multiply by 0 - 1M */
+static const int values [9][2] = {
+ {1,0},
+ {2,2},
+ {3,3},
+ {4,7},
+ {5,6},
+ {6,8},
+ {7,5},
+ {8,2},
+ {9,1}
+};
+
+typedef struct {
+ GLXContext *glx_context;
+ Window window;
+
+ int XMAX, YMAX;
+ int win_w, win_h;
+
+ /* one lucky led gets to be a light source , unless -no-light*/
+ int light;
+ int lighton;
+
+ /* stores refs to textures */
+ int s_refs[50];
+
+ GLfloat viewer[3];
+ GLfloat lightpos[4];
+
+ float sin_table[720];
+ float cos_table[720];
+ float tan_table[720];
+
+ Component *components[MAX_COMPONENTS];
+ int band_list[12];
+ int band_list_polys[12];
+
+ GLfloat grid_col[3], grid_col2[3];
+
+ int display_i;
+ GLfloat rotate_angle;
+
+ texture_font_data *font;
+ char *font_strings[50]; /* max of 40 textures */
+ int font_w[50], font_h[50];
+ int font_init;
+
+ GLfloat draw_sx, draw_sy; /* bright spot co-ords */
+ int draw_sdir; /* 0 = left-right, 1 = right-left, 2 = up->dn, 3 = dn->up */
+ int draw_s; /* if spot is enabled */
+ float draw_ds; /* speed of spot */
+
+} Circuit;
+
+static Circuit *circuit = NULL;
+
+
+static int DrawResistor(Circuit *, Resistor *);
+static int DrawDiode(Circuit *, Diode *);
+static int DrawTransistor(Circuit *, Transistor *);
+static int DrawLED(Circuit *, LED *);
+static int DrawIC(Circuit *, IC *);
+static int DrawCapacitor(Circuit *, Capacitor *);
+static int DrawDisp(Circuit *, Disp *);
+static int DrawFuse(Circuit *, Fuse *);
+static int DrawRCA(Circuit *, RCA *);
+static int DrawThreeFive(Circuit *, ThreeFive *);
+static int DrawSwitch(Circuit *, Switch *);
+
+static void reorder(Component *[]);
+static int circle(Circuit *, float, int,int);
+static int bandedCylinder(Circuit *,
+ float, float , GLfloat, GLfloat , GLfloat,
+ Band **, int);
+static int Rect(GLfloat , GLfloat , GLfloat, GLfloat , GLfloat ,GLfloat);
+static int ICLeg(GLfloat, GLfloat, GLfloat, int);
+static int HoledRectangle(Circuit *ci,
+ GLfloat, GLfloat, GLfloat, GLfloat, int);
+static Resistor *NewResistor(void);
+static Diode *NewDiode(void);
+static Transistor *NewTransistor(ModeInfo *);
+static LED * NewLED(Circuit *);
+static Capacitor *NewCapacitor(Circuit *);
+static IC* NewIC(ModeInfo *);
+static Disp* NewDisp(Circuit *);
+static Fuse *NewFuse(Circuit *);
+static RCA *NewRCA(Circuit *);
+static ThreeFive *NewThreeFive(Circuit *);
+static Switch *NewSwitch(Circuit *);
+
+/* we use trig tables to speed things up - 200 calls to sin()
+ in one frame can be a bit harsh..
+*/
+
+static void make_tables(Circuit *ci)
+{
+int i;
+float f;
+
+ f = 360 / (M_PI * 2);
+ for (i = 0 ; i < 720 ; i++) {
+ ci->sin_table[i] = sin(i/f);
+ }
+ for (i = 0 ; i < 720 ; i++) {
+ ci->cos_table[i] = cos(i/f);
+ }
+ for (i = 0 ; i < 720 ; i++) {
+ ci->tan_table[i] = tan(i/f);
+ }
+}
+
+
+static int createCylinder (Circuit *ci,
+ float length, float radius, int endcaps, int half)
+{
+ int polys = 0;
+ int a; /* current angle around cylinder */
+ int angle, norm;
+ float z1, y1, z2, y2,ex;
+ int nsegs;
+
+ glPushMatrix();
+ nsegs = radius*MAX(ci->win_w, ci->win_h)/20;
+ nsegs = MAX(nsegs, 4);
+ if (nsegs % 2)
+ nsegs += 1;
+ angle = (half) ? (180 - 90/nsegs) : 374;
+ z1 = radius; y1 = 0;
+ glBegin(GL_QUADS);
+ for (a = 0 ; a <= angle ; a+= angle/nsegs) {
+ y2=radius*(float)ci->sin_table[(int)a];
+ z2=radius*(float)ci->cos_table[(int)a];
+ glNormal3f(0, y1, z1);
+ glVertex3f(0,y1,z1);
+ glVertex3f(length,y1,z1);
+ glNormal3f(0, y2, z2);
+ glVertex3f(length,y2,z2);
+ glVertex3f(0,y2,z2);
+ polys++;
+ z1=z2;
+ y1=y2;
+ }
+ glEnd();
+ if (half) {
+ glBegin(GL_POLYGON);
+ glNormal3f(0, 1, 0);
+ glVertex3f(0, 0, radius);
+ glVertex3f(length, 0, radius);
+ glVertex3f(length, 0, 0 - radius);
+ glVertex3f(0, 0, 0 - radius);
+ polys++;
+ glEnd();
+ }
+ if (endcaps) {
+ for(ex = 0 ; ex <= length ; ex += length) {
+ z1 = radius; y1 = 0;
+ norm = (ex == length) ? 1 : -1;
+ glBegin(GL_TRIANGLES);
+ glNormal3f(norm, 0, 0);
+ for (a = 0 ; a <= angle ; a+= angle/nsegs) {
+ y2=radius*(float)ci->sin_table[(int)a];
+ z2=radius*(float)ci->cos_table[(int)a];
+ glVertex3f(ex,0, 0);
+ glVertex3f(ex,y1,z1);
+ glVertex3f(ex,y2,z2);
+ polys++;
+ z1=z2;
+ y1=y2;
+ }
+ glEnd();
+ }
+ }
+ glPopMatrix();
+ return polys;
+}
+
+static int circle(Circuit *ci, float radius, int segments, int half)
+{
+ int polys = 0;
+ float x1 = 0, x2 = 0;
+ float y1 = 0, y2 = 0;
+ int i, t, s;
+
+ if (half) {
+ t = 270; s = 90;
+ x1 = radius, y1 = 0;
+ } else {
+ t = 360, s = 0;
+ }
+ glBegin(GL_TRIANGLES);
+ glNormal3f(1, 0, 0);
+ for(i=s;i<=t;i+=10)
+ {
+ float angle=i;
+ x2=radius*(float)ci->cos_table[(int)angle];
+ y2=radius*(float)ci->sin_table[(int)angle];
+ glVertex3f(0,0,0);
+ glVertex3f(0,y1,x1);
+ glVertex3f(0,y2,x2);
+ polys++;
+ x1=x2;
+ y1=y2;
+ }
+ glEnd();
+ return polys;
+}
+
+static int wire(Circuit *ci, float len)
+{
+ int polys = 0;
+ GLfloat col[] = {0.3, 0.3, 0.3, 1.0};
+ GLfloat spec[] = {0.9, 0.9, 0.9, 1.0};
+ GLfloat nospec[] = {0.4, 0.4, 0.4, 1.0};
+ GLfloat shin = 30;
+ int n;
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shin);
+ n = glIsEnabled(GL_NORMALIZE);
+ if (!n) glEnable(GL_NORMALIZE);
+ polys += createCylinder(ci, len, 0.05, 1, 0);
+ if (!n) glDisable(GL_NORMALIZE);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, nospec);
+ return polys;
+}
+
+static int sphere(Circuit *ci, GLfloat r, float stacks, float slices,
+ int startstack, int endstack, int startslice,
+ int endslice)
+{
+ int polys = 0;
+ GLfloat d, d1, dr, dr1, Dr, Dr1, D, D1, z1, z2, y1, y2, Y1, Z1, Y2, Z2;
+ int a, a1, b, b1, c0, c1;
+ GLfloat step, sstep;
+
+ step = 180/stacks;
+ sstep = 360/slices;
+ a1 = startstack * step;
+ b1 = startslice * sstep;
+ y1 = z1 = Y1 = Z1 = 0;
+ c0 = (endslice / slices) * 360;
+ c1 = (endstack/stacks)*180;
+ glBegin(GL_QUADS);
+ for (a = startstack * step ; a <= c1 ; a+= step) {
+ d=ci->sin_table[a];
+ d1=ci->sin_table[a1];
+ D=ci->cos_table[a];
+ D1=ci->cos_table[a1];
+ dr = d * r;
+ dr1 = d1 * r;
+ Dr = D * r;
+ Dr1 = D1 * r;
+ for (b = b1 ; b <= c0 ; b+= sstep) {
+ y2=dr*ci->sin_table[b];
+ z2=dr*ci->cos_table[b];
+ Y2=dr1*ci->sin_table[b];
+ Z2=dr1*ci->cos_table[b];
+ glNormal3f(Dr, y1, z1);
+ glVertex3f(Dr,y1,z1);
+ glNormal3f(Dr, y2, z2);
+ glVertex3f(Dr,y2,z2);
+ glNormal3f(Dr1, Y2, Z2);
+ glVertex3f(Dr1,Y2,Z2);
+ glNormal3f(Dr1, Y1, Z1);
+ glVertex3f(Dr1,Y1,Z1);
+ polys++;
+ z1=z2;
+ y1=y2;
+ Z1=Z2;
+ Y1=Y2;
+ }
+ a1 = a;
+ }
+ glEnd();
+ return polys;
+}
+
+static int DrawComponent(Circuit *ci, Component *c, unsigned long *polysP)
+{
+ int polys = *polysP;
+ int ret = 0; /* return 1 if component is freed */
+
+ glPushMatrix();
+ glTranslatef(c->x, c->y, c->z);
+ if (c->angle > 0) {
+ glRotatef(c->angle, c->rotx, c->roty, c->rotz);
+ }
+ if (spin) {
+ glRotatef(c->rdeg, c->rotx, c->roty, c->rotz);
+ c->rdeg += c->drot;
+ }
+
+ if (c->norm)
+ glEnable(GL_NORMALIZE);
+ else
+ glDisable(GL_NORMALIZE);
+
+ /* call object draw routine here */
+ if (c->type == 0) {
+ polys += DrawResistor(ci, c->c);
+ } else if (c->type == 1) {
+ polys += DrawDiode(ci, c->c);
+ } else if (c->type == 2) {
+ polys += DrawTransistor(ci, c->c);
+ } else if (c->type == 3) {
+ if (((LED *)c->c)->light && ci->light) {
+ GLfloat lp[] = {0.1, 0, 0, 1};
+ glEnable(GL_LIGHT1);
+ glLightfv(GL_LIGHT1, GL_POSITION, lp);
+ }
+ polys += DrawLED(ci, c->c);
+ } else if (c->type == 4) {
+ polys += DrawCapacitor(ci, c->c);
+ } else if (c->type == 5) {
+ polys += DrawIC(ci, c->c);
+ } else if (c->type == 6) {
+ polys += DrawDisp(ci, c->c);
+ } else if (c->type == 7) {
+ polys += DrawFuse(ci, c->c);
+ } else if (c->type == 8) {
+ polys += DrawRCA(ci, c->c);
+ } else if (c->type == 9) {
+ polys += DrawThreeFive(ci, c->c);
+ } else if (c->type == 10) {
+ polys += DrawSwitch(ci, c->c);
+ }
+ c->x += c->dx * MOVE_MULT;
+ c->y += c->dy * MOVE_MULT;
+ if (c->x > ci->XMAX/2 || c->x < 0 - ci->XMAX/2 ||
+ c->y > ci->YMAX/2 || c->y < 0 - ci->YMAX/2) {
+ if (c->type == 3 && ((LED *)c->c)->light && ci->light) {
+ glDisable(GL_LIGHT1);
+ ci->light = 0; ci->lighton = 0;
+ }
+ if (c->type == 1)
+ free(((Diode *)c->c)->band); /* remember to free diode band */
+ free(c->c);
+ ret = 1;
+ }
+
+ glPopMatrix();
+ glDisable(GL_NORMALIZE);
+ *polysP = polys;
+ return ret;
+}
+
+/* draw a resistor */
+
+static int DrawResistor(Circuit *ci, Resistor *r)
+{
+ int polys = 0;
+ int i;
+ GLfloat col[] = {0.74, 0.62, 0.46, 1.0};
+ GLfloat spec[] = {0.8, 0.8, 0.8, 1.0};
+ GLfloat shine = 30;
+
+ glTranslatef(-4, 0, 0);
+ polys += wire(ci, 3);
+ glTranslatef(3, 0, 0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shine);
+ polys += createCylinder(ci, 1.8, 0.4, 1, 0);
+ glPushMatrix();
+ for (i = 0 ; i < 4 ; i++) {
+ glTranslatef(0.35, 0, 0);
+ glCallList(ci->band_list[r->b[i]]);
+ polys += ci->band_list_polys[r->b[i]];
+ }
+ glPopMatrix();
+ glTranslatef(1.8, 0, 0);
+ polys += wire(ci, 3);
+ return polys;
+}
+
+static int DrawRCA(Circuit *ci, RCA *rca)
+{
+ int polys = 0;
+ GLfloat col[] = {0.6, 0.6, 0.6, 1.0}; /* metal */
+ GLfloat red[] = {1.0, 0.0, 0.0, 1.0}; /* red */
+ GLfloat white[] = {1.0, 1.0, 1.0, 1.0}; /* white */
+ GLfloat spec[] = {1, 1, 1, 1}; /* glass */
+
+ glPushMatrix();
+ glTranslatef(0.3, 0, 0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMateriali(GL_FRONT, GL_SHININESS, 40);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ polys += createCylinder(ci, 0.7, 0.45, 0, 0);
+ glTranslatef(0.4, 0, 0);
+ polys += createCylinder(ci, 0.9, 0.15, 1, 0);
+ glTranslatef(-1.9, 0, 0);
+ glMateriali(GL_FRONT, GL_SHININESS, 20);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, rca->col ? white : red);
+ polys += createCylinder(ci, 1.5, 0.6, 1, 0);
+ glTranslatef(-0.9, 0, 0);
+ polys += createCylinder(ci, 0.9, 0.25, 0, 0);
+ glTranslatef(0.1, 0, 0);
+ polys += createCylinder(ci, 0.2, 0.3, 0, 0);
+ glTranslatef(0.3, 0, 0);
+ polys += createCylinder(ci, 0.2, 0.3, 1, 0);
+ glTranslatef(0.3, 0, 0);
+ polys += createCylinder(ci, 0.2, 0.3, 1, 0);
+ glPopMatrix();
+ return polys;
+}
+
+static int DrawSwitch(Circuit *ci, Switch *f)
+{
+ int polys = 0;
+ GLfloat col[] = {0.6, 0.6, 0.6, 0}; /* metal */
+ GLfloat dark[] = {0.1, 0.1, 0.1, 1.0}; /* dark */
+ GLfloat brown[] = {0.69, 0.32, 0, 1.0}; /* brown */
+ GLfloat spec[] = {0.9, 0.9, 0.9, 1}; /* shiny */
+
+ glPushMatrix();
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_AMBIENT, dark);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMateriali(GL_FRONT, GL_SHININESS, 90);
+ polys += Rect(-0.25, 0, 0, 1.5, 0.5, 0.75);
+/* polys += Rect(-0.5, 0.5, 0, 2, 0.1, 0.75); */
+ glPushMatrix();
+ glRotatef(90, 1, 0, 0);
+ glTranslatef(-0.5, -0.4, -0.4);
+ polys += HoledRectangle(ci, 0.5, 0.75, 0.1, 0.15, 8);
+ glTranslatef(2, 0, 0);
+ polys += HoledRectangle(ci, 0.5, 0.75, 0.1, 0.15, 8);
+ glPopMatrix();
+ polys += Rect(0.1, -0.4, -0.25, 0.1, 0.4, 0.05);
+ polys += Rect(0.5, -0.4, -0.25, 0.1, 0.4, 0.05);
+ polys += Rect(0.9, -0.4, -0.25, 0.1, 0.4, 0.05);
+ polys += Rect(0.1, -0.4, -0.5, 0.1, 0.4, 0.05);
+ polys += Rect(0.5, -0.4, -0.5, 0.1, 0.4, 0.05);
+ polys += Rect(0.9, -0.4, -0.5, 0.1, 0.4, 0.05);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, dark);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ polys += Rect(0, 0.5, -0.1, 1, 0.05, 0.5);
+ polys += Rect(0, 0.6, -0.1, 0.5, 0.6, 0.5);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, brown);
+ polys += Rect(-0.2, -0.01, -0.1, 1.4, 0.1, 0.55);
+ glPopMatrix();
+ return polys;
+}
+
+
+static int DrawFuse(Circuit *ci, Fuse *f)
+{
+ int polys = 0;
+ GLfloat col[] = {0.5, 0.5, 0.5, 1.0}; /* endcaps */
+ GLfloat glass[] = {0.4, 0.4, 0.4, 0.3}; /* glass */
+ GLfloat spec[] = {1, 1, 1, 1}; /* glass */
+
+ glPushMatrix();
+ glTranslatef(-1.8, 0, 0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMateriali(GL_FRONT, GL_SHININESS, 40);
+ polys += createCylinder(ci, 0.8, 0.45, 1, 0);
+ glTranslatef(0.8, 0, 0);
+ glEnable(GL_BLEND);
+ glDepthMask(GL_FALSE);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, glass);
+ glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 40);
+ polys += createCylinder(ci, 2, 0.4, 0, 0);
+ polys += createCylinder(ci, 2, 0.3, 0, 0);
+ glDisable(GL_BLEND);
+ glDepthMask(GL_TRUE);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMateriali(GL_FRONT, GL_SHININESS, 40);
+ glBegin(GL_LINES);
+ glVertex3f(0, 0, 0);
+ glVertex3f(2, 0. ,0);
+ glEnd();
+ glTranslatef(2, 0, 0);
+ polys += createCylinder(ci, 0.8, 0.45, 1, 0);
+ glPopMatrix();
+ return polys;
+}
+
+
+static int DrawCapacitor(Circuit *ci, Capacitor *c)
+{
+ int polys = 0;
+ GLfloat col[] = {0, 0, 0, 0};
+ GLfloat spec[] = {0.8, 0.8, 0.8, 0};
+ GLfloat brown[] = {0.84, 0.5, 0};
+ GLfloat shine = 40;
+
+ glPushMatrix();
+ if (c->type) {
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, brown);
+ polys += sphere(ci, c->width, 15, 15, 0, 4 ,0, 15);
+ glTranslatef(1.35*c->width, 0, 0);
+ polys += sphere(ci, c->width, 15, 15, 11, 15, 0, 15);
+ glRotatef(90, 0, 0, 1);
+ glTranslatef(0, 0.7*c->width, 0.3*c->width);
+ polys += wire(ci, 3*c->width);
+ glTranslatef(0, 0, -0.6*c->width);
+ polys += wire(ci, 3*c->width);
+ } else {
+ glTranslatef(0-c->length*2, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, &shine);
+ glBegin(GL_POLYGON);
+ glVertex3f(0, 0.82*c->width, -0.1);
+ glVertex3f(3*c->length, 0.82*c->width, -0.1);
+ glVertex3f(3*c->length, 0.82*c->width, 0.1);
+ glVertex3f(0, 0.82*c->width, 0.1);
+ glEnd();
+ col[0] = 0.0;
+ col[1] = 0.2;
+ col[2] = 0.9;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
+ glEnable(GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset(1.0, 1.0);
+ polys += createCylinder(ci, 3.0*c->length, 0.8*c->width, 1, 0);
+ glDisable(GL_POLYGON_OFFSET_FILL);
+ col[0] = 0.7;
+ col[1] = 0.7;
+ col[2] = 0.7;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
+ polys += circle(ci, 0.6*c->width, 30, 0);
+ col[0] = 0;
+ col[1] = 0;
+ col[2] = 0;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
+ glTranslatef(3.0*c->length, 0.0, 0);
+ polys += circle(ci, 0.6*c->width, 30, 0);
+ glTranslatef(0, 0.4*c->width, 0);
+ polys += wire(ci, 3*c->length);
+ glTranslatef(0.0, -0.8*c->width, 0);
+ polys += wire(ci, 3.3*c->length);
+ }
+ glPopMatrix();
+ return polys;
+}
+
+static int DrawLED(Circuit *ci, LED *l)
+{
+ int polys = 0;
+ GLfloat col[] = {0, 0, 0, 0.6};
+ GLfloat black[] = {0, 0, 0, 0.6};
+
+ col[0] = l->r; col[1] = l->g; col[2] = l->b;
+ if (l->light && ci->light) {
+ GLfloat dir[] = {-1, 0, 0};
+ glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, dir);
+ if (!ci->lighton) {
+ glLightfv(GL_LIGHT1, GL_SPECULAR, col);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, black);
+ col[0] /= 1.5; col[1] /= 1.5; col[2] /= 1.5;
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, col);
+ glLighti(GL_LIGHT1, GL_SPOT_CUTOFF, (GLint) 90);
+ glLighti(GL_LIGHT1, GL_CONSTANT_ATTENUATION, (GLfloat)1);
+ glLighti(GL_LIGHT1, GL_LINEAR_ATTENUATION, (GLfloat)0);
+ glLighti(GL_LIGHT1, GL_QUADRATIC_ATTENUATION, (GLfloat)0);
+ glLighti(GL_LIGHT1, GL_SPOT_EXPONENT, (GLint) 20);
+ ci->lighton = 1;
+ }
+ }
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, col);
+ /* no transparency when LED is lit */
+ if (!l->light) {
+ glEnable(GL_BLEND);
+ glDepthMask(GL_FALSE);
+ glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);
+ }
+ glTranslatef(-0.9, 0, 0);
+ polys += createCylinder(ci, 1.2, 0.3, 0, 0);
+ if (l->light && ci->light) {
+ glDisable(GL_LIGHTING);
+ glColor3fv(col);
+ }
+ polys += sphere(ci, 0.3, 7, 7, 3, 7, 0, 7);
+ if (l->light && ci->light) {
+ glEnable(GL_LIGHTING);
+ } else {
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ }
+
+ glTranslatef(1.2, 0, 0);
+ polys += createCylinder(ci, 0.1, 0.38, 1, 0);
+ glTranslatef(-0.3, 0.15, 0);
+ polys += wire(ci, 3);
+ glTranslatef(0, -0.3, 0);
+ polys += wire(ci, 3.3);
+ if (random() % 50 == 25) {
+ if (l->light) {
+ l->light = 0; ci->light = 0; ci->lighton = 0;
+ glDisable(GL_LIGHT1);
+ } else if (!ci->light) {
+ l->light = 1;
+ ci->light = 1;
+ }
+ }
+ return polys;
+}
+
+
+static int DrawThreeFive(Circuit *ci, ThreeFive *d)
+{
+ int polys = 0;
+ GLfloat shine = 40;
+ GLfloat const dark[] = {0.3, 0.3, 0.3, 0};
+ GLfloat const light[] = {0.6, 0.6, 0.6, 0};
+ GLfloat const cream[] = {0.8, 0.8, 0.6, 0};
+ GLfloat const spec[] = {0.7, 0.7, 0.7, 0};
+
+ glPushMatrix();
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shine);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, cream);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+
+ glTranslatef(-2.0, 0, 0);
+ polys += createCylinder(ci, 0.7, 0.2, 0, 0);
+ glTranslatef(0.7, 0, 0);
+ polys += createCylinder(ci, 1.3, 0.4, 1, 0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, light);
+ glTranslatef(1.3, 0, 0);
+ polys += createCylinder(ci, 1.3, 0.2, 0, 0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, dark);
+ glTranslatef(0.65, 0, 0);
+ polys += createCylinder(ci, 0.15, 0.21, 0, 0);
+ glTranslatef(0.3, 0, 0);
+ polys += createCylinder(ci, 0.15, 0.21, 0, 0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, light);
+ glTranslatef(0.4, 0, 0);
+ polys += sphere(ci, 0.23, 7, 7, 0, 5, 0, 7);
+
+ glPopMatrix();
+ return polys;
+}
+
+static int DrawDiode(Circuit *ci, Diode *d)
+{
+ int polys = 0;
+ GLfloat shine = 40;
+ GLfloat col[] = {0.3, 0.3, 0.3, 0};
+ GLfloat spec[] = {0.7, 0.7, 0.7, 0};
+
+ glPushMatrix();
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shine);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glTranslatef(-4, 0, 0);
+ polys += wire(ci, 3);
+ glTranslatef(3, 0, 0);
+ polys += bandedCylinder(ci, 0.3, 1.5, d->r, d->g, d->b, &(d->band), 1);
+ glTranslatef(1.5, 0, 0);
+ polys += wire(ci, 3);
+ glPopMatrix();
+ return polys;
+}
+
+static int Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
+ GLfloat t)
+{
+ int polys = 0;
+ GLfloat yh;
+ GLfloat xw;
+ GLfloat zt;
+
+ yh = y+h; xw = x+w; zt = z - t;
+
+ glBegin(GL_QUADS); /* front */
+ glNormal3f(0, 0, 1);
+ glVertex3f(x, y, z);
+ glVertex3f(x, yh, z);
+ glVertex3f(xw, yh, z);
+ glVertex3f(xw, y, z);
+ polys++;
+ /* back */
+ glNormal3f(0, 0, -1);
+ glVertex3f(x, y, zt);
+ glVertex3f(x, yh, zt);
+ glVertex3f(xw, yh, zt);
+ glVertex3f(xw, y, zt);
+ polys++;
+ /* top */
+ glNormal3f(0, 1, 0);
+ glVertex3f(x, yh, z);
+ glVertex3f(x, yh, zt);
+ glVertex3f(xw, yh, zt);
+ glVertex3f(xw, yh, z);
+ polys++;
+ /* bottom */
+ glNormal3f(0, -1, 0);
+ glVertex3f(x, y, z);
+ glVertex3f(x, y, zt);
+ glVertex3f(xw, y, zt);
+ glVertex3f(xw, y, z);
+ polys++;
+ /* left */
+ glNormal3f(-1, 0, 0);
+ glVertex3f(x, y, z);
+ glVertex3f(x, y, zt);
+ glVertex3f(x, yh, zt);
+ glVertex3f(x, yh, z);
+ polys++;
+ /* right */
+ glNormal3f(1, 0, 0);
+ glVertex3f(xw, y, z);
+ glVertex3f(xw, y, zt);
+ glVertex3f(xw, yh, zt);
+ glVertex3f(xw, yh, z);
+ polys++;
+ glEnd();
+ return polys;
+}
+
+/* IC pins */
+
+static int ICLeg(GLfloat x, GLfloat y, GLfloat z, int dir)
+{
+ int polys = 0;
+ if (dir) {
+ polys += Rect(x-0.1, y, z, 0.1, 0.1, 0.02);
+ polys += Rect(x-0.1, y, z, 0.02, 0.1, 0.1);
+ polys += Rect(x-0.1, y+0.03, z-0.1, 0.02, 0.05, 0.3);
+ } else {
+ polys += Rect(x, y, z, 0.1, 0.1, 0.02);
+ polys += Rect(x+0.8*0.1, y, z, 0.02, 0.1, 0.1);
+ polys += Rect(x+0.8*0.1, y+0.03, z-0.1, 0.02, 0.05, 0.3);
+ }
+ return polys;
+}
+
+
+static int DrawIC(Circuit *ci, IC *c)
+{
+ int polys = 0;
+ GLfloat w, h, d;
+ int z;
+ GLfloat col[] = {0.1, 0.1, 0.1, 0};
+ GLfloat col2[] = {0.2, 0.2, 0.2, 0};
+ GLfloat spec[] = {0.6, 0.6, 0.6, 0};
+ GLfloat shine = 40;
+ GLfloat lspec[] = {0.6, 0.6, 0.6, 0};
+ GLfloat lcol[] = {0.4, 0.4, 0.4, 0};
+ GLfloat lshine = 40;
+
+ glPushMatrix();
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shine);
+ switch(c->pins) {
+ case 8:
+ w = 1.0; h = 1.5;
+ break;
+ case 14:
+ w = 1.0; h = 3;
+ break;
+ case 16:
+ w = 1.0; h = 3;
+ break;
+ case 24:
+ default:
+ w = 1.5; h = 3.5;
+ break;
+ }
+ w = w/2; h = h/2;
+ glEnable(GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset(1.0, 1.0);
+ glBegin(GL_QUADS);
+ glNormal3f(0, 0, 1);
+ glVertex3f(w, h, 0.1);
+ glVertex3f(w, -h, 0.1);
+ glVertex3f(-w, -h, 0.1);
+ glVertex3f(-w, h, 0.1);
+ polys++;
+ glNormal3f(0, 0, -1);
+ glVertex3f(w, h, -0.1);
+ glVertex3f(w, -h, -0.1);
+ glVertex3f(-w, -h, -0.1);
+ glVertex3f(-w, h, -0.1);
+ polys++;
+ glNormal3f(1, 0, 0);
+ glVertex3f(w, h, -0.1);
+ glVertex3f(w, -h, -0.1);
+ glVertex3f(w, -h, 0.1);
+ glVertex3f(w, h, 0.1);
+ polys++;
+ glNormal3f(0, -1, 0);
+ glVertex3f(w, -h, -0.1);
+ glVertex3f(w, -h, 0.1);
+ glVertex3f(-w, -h, 0.1);
+ glVertex3f(-w, -h, -0.1);
+ polys++;
+ glNormal3f(-1, 0, 0);
+ glVertex3f(-w, h, -0.1);
+ glVertex3f(-w, h, 0.1);
+ glVertex3f(-w, -h, 0.1);
+ glVertex3f(-w, -h, -0.1);
+ polys++;
+ glNormal3f(0, -1, 0);
+ glVertex3f(-w, h, -0.1);
+ glVertex3f(w, h, -0.1);
+ glVertex3f(w, h, 0.1);
+ glVertex3f(-w, h, 0.1);
+ polys++;
+ glEnd();
+ glDisable(GL_POLYGON_OFFSET_FILL);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+
+ {
+ GLfloat texfg[] = {0.7, 0.7, 0.7, 1.0};
+ GLfloat s = 0.015;
+ XCharStruct e;
+ texture_string_metrics (ci->font, c->text, &e, 0, 0);
+
+ glPushMatrix();
+ glTranslatef (0, 0, 0.1);
+ glRotatef (90, 0, 0, 1);
+ glScalef (s, s, s);
+ glTranslatef (-w/2, 0, 0);
+ glColor4fv (texfg);
+ print_texture_string (ci->font, c->text);
+ glPopMatrix();
+ }
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+ d = (h*2-0.1) / c->pins;
+ d*=2;
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, lcol);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, lspec);
+ glMaterialfv(GL_FRONT, GL_SHININESS, &lshine);
+ for (z = 0 ; z < c->pins/2 ; z++) {
+ polys += ICLeg(w, -h + z*d + d/2, 0, 0);
+ }
+ for (z = 0 ; z < c->pins/2 ; z++) {
+ polys += ICLeg(-w, -h + z*d + d/2, 0, 1);
+ }
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col2);
+ glTranslatef(-w+0.3, h-0.3, 0.1);
+ glRotatef(90, 0, 1, 0);
+ polys += circle(ci, 0.1, 7, 0);
+ glPopMatrix();
+ return polys;
+}
+
+static int DrawDisp(Circuit *ci, Disp *d)
+{
+ int polys = 0;
+ GLfloat col[] = {0.8, 0.8, 0.8, 1.0}; /* body colour */
+ GLfloat front[] = {0.2, 0.2, 0.2, 1.0}; /* front colour */
+ GLfloat on[] = {0.9, 0, 0, 1}; /* 'on' segment */
+ GLfloat off[] = {0.3, 0, 0, 1}; /* 'off' segment */
+ int i, j, k;
+ GLfloat x, y; /* for the pins */
+ GLfloat spec[] = {0.6, 0.6, 0.6, 0};
+ GLfloat lcol[] = {0.4, 0.4, 0.4, 0};
+ GLfloat shine = 40;
+ static const GLfloat vdata_h[6][2] = {
+ {0, 0},
+ {0.1, 0.1},
+ {0.9, 0.1},
+ {1, 0},
+ {0.9, -0.1},
+ {0.1, -0.1}
+ };
+ static const GLfloat vdata_v[6][2] = {
+ {0.27, 0},
+ {0.35, -0.1},
+ {0.2, -0.9},
+ {0.1, -1},
+ {0, -0.9},
+ {0.15, -0.15}
+ };
+
+ static const GLfloat seg_start[7][2] = {
+ {0.55, 2.26},
+ {1.35, 2.26},
+ {1.2, 1.27},
+ {0.25, 0.25},
+ {0.06, 1.25},
+ {0.25, 2.25},
+ {0.39, 1.24}
+ };
+
+ static const int nums[10][7] = {
+ {1, 1, 1, 1, 1, 1, 0}, /* 0 */
+ {0, 1, 1, 0, 0, 0, 0}, /* 1 */
+ {1, 1, 0, 1, 1, 0, 1}, /* 2 */
+ {1, 1, 1, 1, 0, 0, 1}, /* 3 */
+ {0, 1, 1, 0, 0, 1, 1}, /* 4 */
+ {1, 0, 1, 1, 0, 1, 1}, /* 5 */
+ {1, 0, 1, 1, 1, 1, 1}, /* 6 */
+ {1, 1, 1, 0, 0, 0, 0}, /* 7 */
+ {1, 1, 1, 1, 1, 1, 1}, /* 8 */
+ {1, 1, 1, 0, 0, 1, 1} /* 9 */
+ };
+
+ glTranslatef(-0.9, -1.8, 0);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ polys += Rect(0, 0, -0.01, 1.8, 2.6, 0.7);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, front);
+ glBegin(GL_QUADS);
+ glVertex2f(-0.05, -0.05);
+ glVertex2f(-0.05, 2.65);
+ glVertex2f(1.85, 2.65);
+ glVertex2f(1.85, -0.05);
+ polys++;
+ glEnd();
+ glDisable(GL_LIGHTING); /* lit segments dont need light */
+ if (!seven && (random() % 30) == 19) { /* randomly change value */
+ d->value = random() % 10;
+ }
+ for (j = 0 ; j < 7 ; j++) { /* draw the segments */
+ GLfloat xx[6], yy[6];
+ if (nums[d->value][j])
+ glColor3fv(on);
+ else
+ glColor3fv(off);
+ for (k = 0 ; k < 6 ; k++) {
+ if (j == 0 || j == 3 || j == 6) {
+ xx[k] = seg_start[j][0] + vdata_h[k][0];
+ yy[k] = seg_start[j][1] + vdata_h[k][1];
+ } else {
+ xx[k] = seg_start[j][0] + vdata_v[k][0];
+ yy[k] = seg_start[j][1] + vdata_v[k][1];
+ }
+ }
+ glBegin(GL_POLYGON);
+ for(i = 0 ; i < 6 ; i++) {
+ glVertex3f(xx[i], yy[i], 0.01);
+ }
+ polys++;
+ glEnd();
+ }
+ glColor3fv(on);
+ glPointSize(4);
+ glBegin(GL_POINTS);
+ glVertex3f(1.5, 0.2, 0.01);
+ polys++;
+ glEnd();
+ glEnable(GL_LIGHTING);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, lcol);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shine);
+ for (x = 0.35 ; x <= 1.5 ; x+= 1.15) {
+ for ( y = 0.2 ; y <= 2.4 ; y += 0.3) {
+ polys += ICLeg(x, y, -0.7, 1);
+ }
+ }
+ return polys;
+}
+
+static int HoledRectangle(Circuit *ci,
+ GLfloat w, GLfloat h, GLfloat d, GLfloat radius,
+ int p)
+{
+ int polys = 0;
+ int step, a;
+ GLfloat x1, y1, x2, y2;
+ GLfloat yr, yr1, xr, xr1, side, side1;
+ GLfloat nx, ny;
+
+ step = 360 / p;
+ x1 = radius; y1 = 0;
+ xr1 = w/2; yr1 = 0;
+ side = w/2;
+ side1 = h/2;
+ glBegin(GL_QUADS);
+ for (a = 0 ; a <= 360 ; a+= step) {
+ y2=radius*(float)ci->sin_table[(int)a];
+ x2=radius*(float)ci->cos_table[(int)a];
+
+ if (a < 45 || a > 315) {
+ xr = side;
+ yr = side1 * ci->tan_table[a];
+ nx = 1; ny = 0;
+ } else if (a <= 135 || a >= 225) {
+ xr = side/ci->tan_table[a];
+ if (a >= 225) {
+ yr = -side1;
+ xr = 0 - xr;
+ nx = 0; ny = -1;
+ } else {
+ yr = side1;
+ nx = 0; ny = 1;
+ }
+ } else {
+ xr = -side;
+ yr = -side1 * ci->tan_table[a];
+ nx = -1; ny = 0;
+ }
+
+ glNormal3f(-x1, -y1, 0); /* cylinder */
+ glVertex3f(x1,y1,0);
+ glVertex3f(x1,y1,-d);
+ glVertex3f(x2,y2,-d);
+ glVertex3f(x2,y2,0);
+ polys++;
+
+ glNormal3f(0, 0, 1); /* front face */
+ glVertex3f(x1,y1,0);
+ glVertex3f(xr1, yr1, 0);
+ glVertex3f(xr, yr, 0);
+ glVertex3f(x2, y2, 0);
+ polys++;
+
+ glNormal3f(nx, ny, 0); /* side */
+ glVertex3f(xr, yr, 0);
+ glVertex3f(xr, yr, -d);
+ glVertex3f(xr1, yr1, -d);
+ glVertex3f(xr1, yr1, 0);
+ polys++;
+
+ glNormal3f(0, 0, -1); /* back */
+ glVertex3f(xr, yr, -d);
+ glVertex3f(x2, y2, -d);
+ glVertex3f(x1, y1, -d);
+ glVertex3f(xr1, yr1, -d);
+ polys++;
+
+ x1=x2;
+ y1=y2;
+ xr1 = xr; yr1 = yr;
+ }
+ glEnd();
+ return polys;
+}
+
+static int DrawTransistor(Circuit *ci, Transistor *t)
+{
+ int polys = 0;
+ GLfloat col[] = {0.3, 0.3, 0.3, 1.0};
+ GLfloat spec[] = {0.9, 0.9, 0.9, 1.0};
+ GLfloat nospec[] = {0.4, 0.4, 0.4, 1.0};
+ GLfloat shin = 30;
+
+ glPushMatrix();
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shin);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ if (t->type == 1) { /* TO-92 style */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, col);
+ glRotatef(90, 0, 1, 0);
+ glRotatef(90, 0, 0, 1);
+ polys += createCylinder(ci, 1.0, 0.4, 1, 1);
+ polys += Rect(0, -0.2, 0.4, 1, 0.2, 0.8);
+/* Draw the markings */
+
+ {
+ GLfloat texfg[] = {0.7, 0.7, 0.7, 1.0};
+ GLfloat s = 0.015;
+ XCharStruct e;
+ int w;
+ texture_string_metrics (ci->font, t->text, &e, 0, 0);
+ w = e.width;
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+ glTranslatef (0.5, -0.05, 0.21);
+ glScalef (s, s, s);
+ glTranslatef (-w/2, 0, 0);
+ glColor4fv (texfg);
+ print_texture_string (ci->font, t->text);
+ glPopMatrix();
+ }
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+ glDepthMask(GL_TRUE);
+ glTranslatef(-2, 0, -0.2);
+ polys += wire(ci, 2);
+ glTranslatef(0, 0, 0.2);
+ polys += wire(ci, 2);
+ glTranslatef(0, 0, 0.2);
+ polys += wire(ci, 2);
+ } else if (t->type == 0) { /* TO-220 Style */
+ polys += Rect(0, 0, 0, 1.5, 1.5, 0.5);
+ {
+ GLfloat texfg[] = {0.7, 0.7, 0.7, 1.0};
+ GLfloat s = 0.015;
+ XCharStruct e;
+ int w;
+ texture_string_metrics (ci->font, t->text, &e, 0, 0);
+ w = e.width;
+ glPushMatrix();
+ glTranslatef (0.75, 0.75, 0.01);
+ glScalef (s, s, s);
+ glTranslatef (-w/2, 0, 0);
+ glColor4fv (texfg);
+ print_texture_string (ci->font, t->text);
+ glPopMatrix();
+ }
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+ glDepthMask(GL_TRUE);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shin);
+ polys += Rect(0, 0, -0.5, 1.5, 1.5, 0.30);
+ if (!glIsEnabled(GL_NORMALIZE)) glEnable(GL_NORMALIZE);
+ glTranslatef(0.75, 1.875, -0.55);
+ polys += HoledRectangle(ci, 1.5, 0.75, 0.25, 0.2, 8);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, nospec);
+ glTranslatef(-0.375, -1.875, 0);
+ glRotatef(90, 0, 0, -1);
+ polys += wire(ci, 2);
+ glTranslatef(0, 0.375, 0);
+ polys += wire(ci, 2);
+ glTranslatef(0, 0.375, 0);
+ polys += wire(ci, 2);
+ } else { /* SMC transistor */
+/* Draw the body */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, col);
+ glTranslatef(-0.5, -0.25, 0.1);
+ polys += Rect(0, 0, 0, 1, 0.5, 0.2);
+/* Draw the markings */
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+ glDepthMask(GL_FALSE);
+ glBegin (GL_QUADS);
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(0, 1);
+ glVertex3f(0.2, 0, 0.01);
+ glTexCoord2f(1, 1);
+ glVertex3f(0.8, 0, 0.01);
+ glTexCoord2f(1, 0);
+ glVertex3f(0.8, 0.5, 0.01);
+ glTexCoord2f(0, 0);
+ glVertex3f(0.2, 0.5, 0.01);
+ polys++;
+ glEnd();
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+ glDepthMask(GL_TRUE);
+/* Now draw the legs */
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_SHININESS, &shin);
+ polys += Rect(0.25, -0.1, -0.05, 0.1, 0.1, 0.2);
+ polys += Rect(0.75, -0.1, -0.05, 0.1, 0.1, 0.2);
+ polys += Rect(0.5, 0.5, -0.05, 0.1, 0.1, 0.2);
+ polys += Rect(0.25, -0.2, -0.2, 0.1, 0.15, 0.1);
+ polys += Rect(0.75, -0.2, -0.2, 0.1, 0.15, 0.1);
+ polys += Rect(0.5, 0.5, -0.2, 0.1, 0.15, 0.1);
+ }
+ glPopMatrix();
+ return polys;
+}
+
+static Component * NewComponent(ModeInfo *mi)
+{
+ Circuit *ci = &circuit[MI_SCREEN(mi)];
+ Component *c;
+ float rnd;
+
+ c = malloc(sizeof(Component));
+ c->angle = RAND_RANGE(0,360);
+ rnd = f_rand();
+ if (rnd < 0.25) { /* come from the top */
+ c->y = ci->YMAX/2;
+ c->x = RAND_RANGE(0, ci->XMAX) - ci->XMAX/2;
+ if (c->x > 0)
+ c->dx = 0 - RAND_RANGE(0.5, 2);
+ else
+ c->dx = RAND_RANGE(0.5, 2);
+ c->dy = 0 - RAND_RANGE(0.5, 2);
+ } else if (rnd < 0.5) { /* come from the bottom */
+ c->y = 0 - ci->YMAX/2;
+ c->x = RAND_RANGE(0, ci->XMAX) - ci->XMAX/2;
+ if (c->x > 0)
+ c->dx = 0 - RAND_RANGE(0.5, 2);
+ else
+ c->dx = RAND_RANGE(0.5, 2);
+ c->dy = RAND_RANGE(0.5, 2);
+ } else if (rnd < 0.75) { /* come from the left */
+ c->x = 0 - ci->XMAX/2;
+ c->y = RAND_RANGE(0, ci->YMAX) - ci->YMAX/2;
+ c->dx = RAND_RANGE(0.5, 2);
+ if (c->y > 0)
+ c->dy = 0 - RAND_RANGE(0.5, 2);
+ else
+ c->dy = RAND_RANGE(0.5, 2);
+ } else { /* come from the right */
+ c->x = ci->XMAX/2;
+ c->y = RAND_RANGE(0, ci->YMAX) - ci->YMAX/2;
+ c->dx = 0 - RAND_RANGE(0.5, 2);
+ if (c->y > 0)
+ c->dy = 0 - RAND_RANGE(0.5, 2);
+ else
+ c->dy = RAND_RANGE(0.5, 2);
+ }
+ c->z = RAND_RANGE(0, 7) - 9;
+ c->rotx = f_rand();
+ c->roty = f_rand();
+ c->rotz = f_rand();
+ c->drot = f_rand() * 3;
+ c->rdeg = 0;
+ c->dz = f_rand()*2 - 1;
+ c->norm = 0;
+ c->alpha = 0; /* explicitly set to 1 later */
+ rnd = random() % 11;
+ if (rnd < 1) {
+ c->c = NewResistor();
+ c->type = 0;
+ if (f_rand() < 0.4)
+ c->norm = 1; /* some resistors shine */
+ } else if (rnd < 2) {
+ c->c = NewDiode();
+ if (f_rand() < 0.4)
+ c->norm = 1; /* some diodes shine */
+ c->type = 1;
+ } else if (rnd < 3) {
+ c->c = NewTransistor(mi);
+ c->norm = 1;
+ c->type = 2;
+ } else if (rnd < 4) {
+ c->c = NewCapacitor(ci);
+ c->norm = 1;
+ c->type = 4;
+ } else if (rnd < 5) {
+ c->c = NewIC(mi);
+ c->type = 5;
+ c->norm = 1;
+ } else if (rnd < 6) {
+ c->c = NewLED(ci);
+ c->type = 3;
+ c->norm = 1;
+ c->alpha = 1;
+ } else if (rnd < 7) {
+ c->c = NewFuse(ci);
+ c->norm = 1;
+ c->type = 7;
+ c->alpha = 1;
+ } else if (rnd < 8) {
+ c->c = NewRCA(ci);
+ c->norm = 1;
+ c->type = 8;
+ } else if (rnd < 9) {
+ c->c = NewThreeFive(ci);
+ c->norm = 1;
+ c->type = 9;
+ } else if (rnd < 10) {
+ c->c = NewSwitch(ci);
+ c->norm = 1;
+ c->type = 10;
+ } else {
+ c->c = NewDisp(ci);
+ c->type = 6;
+ }
+ return c;
+}
+
+static Transistor *NewTransistor(ModeInfo *mi)
+{
+ Transistor *t;
+
+ t = malloc(sizeof(Transistor));
+ t->type = (random() % 3);
+ if (t->type == 0) {
+ t->text = transistortypes[random() % countof(transistortypes)];
+ } else if (t->type == 2) {
+ t->text = smctypes[random() % countof(smctypes)];
+ } else if (t->type == 1) {
+ t->text = to92types[random() % countof(to92types)];
+ }
+ return t;
+}
+
+static Capacitor *NewCapacitor(Circuit *ci)
+{
+ Capacitor *c;
+
+ c = malloc(sizeof(Capacitor));
+ c->type = (f_rand() < 0.5);
+ if (!c->type) {
+ c->length = RAND_RANGE(0.5, 1);
+ c->width = RAND_RANGE(0.5, 1);
+ } else {
+ c->width = RAND_RANGE(0.3, 1);
+ }
+ return c;
+}
+
+/* 7 segment display */
+
+static Disp *NewDisp(Circuit *ci)
+{
+ Disp *d;
+
+ d = malloc(sizeof(Disp));
+ if (seven)
+ d->value = 7;
+ else
+ d->value = RAND_RANGE(0, 10);
+ return d;
+}
+
+
+static IC *NewIC(ModeInfo *mi)
+{
+ IC *c;
+ int pins;
+ const char *val;
+ int types[countof(ictypes)], i, n = 0;
+
+ c = malloc(sizeof(IC));
+ c->type = 0;
+ switch((int)RAND_RANGE(0,4)) {
+ case 0:
+ pins = 8;
+ break;
+ case 1:
+ pins = 14;
+ break;
+ case 2:
+ pins = 16;
+ break;
+ case 3:
+ default:
+ pins = 24;
+ break;
+ }
+ for (i = 0 ; i < countof(ictypes) ; i++) {
+ if (ictypes[i].pins == pins) {
+ types[n] = i;
+ n++;
+ }
+ }
+
+ if (n > countof(types)) abort();
+ val = ictypes[types[random() % n]].val;
+ sprintf(c->text, "%s\n%02d%02d", val,
+ (int)RAND_RANGE(80, 100), (int)RAND_RANGE(1,53));
+ c->pins = pins;
+ return c;
+}
+
+static LED *NewLED(Circuit *ci)
+{
+ LED *l;
+ float r;
+
+ l = malloc(sizeof(LED));
+ r = f_rand();
+ l->light = 0;
+ if (!ci->light && (f_rand() < 0.4)) {
+ ci->light = 1;
+ l->light = 1;
+ }
+ if (r < 0.2) {
+ l->r = 0.9; l->g = 0; l->b = 0;
+ } else if (r < 0.4) {
+ l->r = 0.3; l->g = 0.9; l->b = 0;
+ } else if (r < 0.6) {
+ l->r = 0.8; l->g = 0.9; l->b = 0;
+ } else if (r < 0.8) {
+ l->r = 0.0; l->g = 0.2; l->b = 0.8;
+ } else {
+ l->r = 0.9, l->g = 0.55, l->b = 0;
+ }
+ return l;
+}
+
+static Fuse *NewFuse(Circuit *ci)
+{
+ Fuse *f;
+
+ f = malloc(sizeof(Fuse));
+ return f;
+}
+
+static RCA *NewRCA(Circuit *ci)
+{
+ RCA *r;
+
+ r = malloc(sizeof(RCA));
+ r->col = (random() % 10 < 5);
+ return r;
+}
+
+static ThreeFive *NewThreeFive(Circuit *ci)
+{
+ ThreeFive *r;
+
+ r = malloc(sizeof(ThreeFive));
+ return r;
+}
+
+static Switch *NewSwitch(Circuit *ci)
+{
+ Switch *s;
+
+ s = malloc(sizeof(Switch));
+ s->position = 0;
+ return s;
+}
+
+static Diode *NewDiode(void)
+{
+ Band *b;
+ Diode *ret;
+
+ ret = malloc(sizeof(Diode));
+ b = malloc(sizeof(Band));
+ b->pos = 0.8;
+ b->len = 0.1;
+ if (f_rand() < 0.5) {
+ b->r = 1;
+ b->g = 1;
+ b->b = 1;
+ ret->r = 0.7; ret->g = 0.1 ; ret->b = 0.1;
+ } else {
+ b->r = 1;
+ b->g = 1;
+ b->b = 1;
+ ret->r = 0.2; ret->g = 0.2 ; ret->b = 0.2;
+ }
+ ret->band = b;
+ return ret;
+}
+
+
+static Resistor * NewResistor(void)
+{
+ int v, m, t; /* value, multiplier, tolerance */
+ Resistor *ret;
+
+ v = RAND(9);
+ m = RAND(5);
+ t = (RAND(10) < 5) ? 10 : 11;
+ ret = malloc(sizeof(Resistor));
+
+ if (seven) {
+ ret->b[0] = ret->b[1] = ret->b[2] = 7;
+ } else {
+ ret->b[0] = values[v][0];
+ ret->b[1] = values[v][1];
+ ret->b[2] = m;
+ }
+ ret->b[3] = t;
+
+ return ret;
+}
+
+static void makebandlist(Circuit *ci)
+{
+ int i;
+ GLfloat col[] = {0,0,0,0};
+ GLfloat spec[] = {0.8,0.8,0.8,0};
+ GLfloat shine = 40;
+
+ for (i = 0 ; i < 12 ; i++) {
+ ci->band_list[i] = glGenLists(1);
+ glNewList(ci->band_list[i], GL_COMPILE);
+ col[0] = colorcodes[i][0];
+ col[1] = colorcodes[i][1];
+ col[2] = colorcodes[i][2];
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, &shine);
+ ci->band_list_polys[i] = createCylinder(ci, 0.1, 0.42, 0, 0);
+ glEndList();
+ }
+}
+
+
+static int bandedCylinder(Circuit *ci,
+ float radius, float l,
+ GLfloat r, GLfloat g, GLfloat bl,
+ Band **b, int nbands)
+{
+ int polys = 0;
+ int n; /* band number */
+ GLfloat col[] = {0,0,0,0};
+
+ col[0] = r; col[1] = g; col[2] = bl;
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ polys += createCylinder(ci, l, radius, 1, 0); /* body */
+ for (n = 0 ; n < nbands ; n++) {
+ glPushMatrix();
+ glTranslatef(b[n]->pos*l, 0, 0);
+ col[0] = b[n]->r; col[1] = b[n]->g; col[2] = b[n]->b;
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
+ polys += createCylinder(ci, b[n]->len*l, radius*1.05, 0, 0); /* band */
+ glPopMatrix();
+ }
+ return polys;
+}
+
+static int drawgrid(Circuit *ci)
+{
+ int polys = 0;
+ GLfloat x, y;
+ GLfloat col3[] = {0, 0.8, 0};
+
+ if (!ci->draw_s) {
+ if (f_rand() < ((rotatespeed > 0) ? 0.05 : 0.01)) {
+ ci->draw_sdir = RAND_RANGE(0, 4);
+ ci->draw_ds = RAND_RANGE(0.4, 0.8);
+ switch (ci->draw_sdir) {
+ case 0:
+ ci->draw_sx = -ci->XMAX/2;
+ ci->draw_sy = ((int)RAND_RANGE(0, ci->YMAX/2))*2 - ci->YMAX/2;
+ break;
+ case 1:
+ ci->draw_sx = ci->XMAX/2;
+ ci->draw_sy = ((int)RAND_RANGE(0, ci->YMAX/2))*2 - ci->YMAX/2;
+ break;
+ case 2:
+ ci->draw_sy = ci->YMAX/2;
+ ci->draw_sx = ((int)RAND_RANGE(0, ci->XMAX/2))*2 - ci->XMAX/2;
+ break;
+ case 3:
+ ci->draw_sy = -ci->YMAX/2;
+ ci->draw_sx = ((int)RAND_RANGE(0, ci->XMAX/2))*2 - ci->XMAX/2;
+ break;
+ }
+ ci->draw_s = 1;
+ }
+ } else if (rotatespeed <= 0) {
+ if (ci->grid_col[1] < 0.25) {
+ ci->grid_col[1] += 0.025; ci->grid_col[2] += 0.005;
+ ci->grid_col2[1] += 0.015 ; ci->grid_col2[2] += 0.005;
+ }
+ }
+
+ glDisable(GL_LIGHTING);
+ if (ci->draw_s) {
+ glColor3fv(col3);
+ glPushMatrix();
+ glTranslatef(ci->draw_sx, ci->draw_sy, -10);
+ polys += sphere(ci, 0.1, 10, 10, 0, 10, 0, 10);
+ if (ci->draw_sdir == 0)
+ glTranslatef(-ci->draw_ds, 0, 0);
+ if (ci->draw_sdir == 1)
+ glTranslatef(ci->draw_ds, 0, 0);
+ if (ci->draw_sdir == 2)
+ glTranslatef(0, ci->draw_ds, 0);
+ if (ci->draw_sdir == 3)
+ glTranslatef(0, -ci->draw_ds, 0);
+ polys += sphere(ci, 0.05, 10, 10, 0, 10, 0, 10);
+ glPopMatrix();
+ if (ci->draw_sdir == 0) {
+ ci->draw_sx += ci->draw_ds;
+ if (ci->draw_sx > ci->XMAX/2)
+ ci->draw_s = 0;
+ }
+ if (ci->draw_sdir == 1) {
+ ci->draw_sx -= ci->draw_ds;
+ if (ci->draw_sx < -ci->XMAX/2)
+ ci->draw_s = 0;
+ }
+ if (ci->draw_sdir == 2) {
+ ci->draw_sy -= ci->draw_ds;
+ if (ci->draw_sy < ci->YMAX/2)
+ ci->draw_s = 0;
+ }
+ if (ci->draw_sdir == 3) {
+ ci->draw_sy += ci->draw_ds;
+ if (ci->draw_sy > ci->YMAX/2)
+ ci->draw_s = 0;
+ }
+ } else if (rotatespeed <= 0) {
+ if (ci->grid_col[1] > 0) {
+ ci->grid_col[1] -= 0.0025; ci->grid_col[2] -= 0.0005;
+ ci->grid_col2[1] -= 0.0015 ; ci->grid_col2[2] -= 0.0005;
+ }
+ }
+ for (x = -ci->XMAX/2 ; x <= ci->XMAX/2 ; x+= 2) {
+ glColor3fv(ci->grid_col);
+ glBegin(GL_LINES);
+ glVertex3f(x, ci->YMAX/2, -10);
+ glVertex3f(x, -ci->YMAX/2, -10);
+ glColor3fv(ci->grid_col2);
+ glVertex3f(x-0.02, ci->YMAX/2, -10);
+ glVertex3f(x-0.02, -ci->YMAX/2, -10);
+ glVertex3f(x+0.02, ci->YMAX/2, -10);
+ glVertex3f(x+0.02, -ci->YMAX/2, -10);
+ glEnd();
+ }
+ for (y = -ci->YMAX/2 ; y <= ci->YMAX/2 ; y+= 2) {
+ glColor3fv(ci->grid_col);
+ glBegin(GL_LINES);
+ glVertex3f(-ci->XMAX/2, y, -10);
+ glVertex3f(ci->XMAX/2, y, -10);
+ glColor3fv(ci->grid_col2);
+ glVertex3f(-ci->XMAX/2, y-0.02, -10);
+ glVertex3f(ci->XMAX/2, y-0.02, -10);
+ glVertex3f(-ci->XMAX/2, y+0.02, -10);
+ glVertex3f(ci->XMAX/2, y+0.02, -10);
+ glEnd();
+ }
+ glEnable(GL_LIGHTING);
+ return polys;
+}
+
+static void display(ModeInfo *mi)
+{
+ Circuit *ci = &circuit[MI_SCREEN(mi)];
+ GLfloat light_sp[] = {0.8, 0.8, 0.8, 1.0};
+ GLfloat black[] = {0, 0, 0, 1.0};
+ int j;
+
+ mi->polygon_count = 0;
+
+ if (ci->display_i == 0) {
+ for (ci->display_i = 0 ; ci->display_i < maxparts ; ci->display_i++) {
+ ci->components[ci->display_i] = NULL;
+ }
+ }
+ glEnable(GL_LIGHTING);
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+ gluLookAt(ci->viewer[0], ci->viewer[1], ci->viewer[2],
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+ glPushMatrix();
+ glRotatef(ci->rotate_angle, 0, 0, 1);
+ ci->rotate_angle += 0.01 * (float)rotatespeed;
+ if (ci->rotate_angle >= 360) ci->rotate_angle = 0;
+
+ glLightfv(GL_LIGHT0, GL_POSITION, ci->lightpos);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, light_sp);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, light_sp);
+ glLighti(GL_LIGHT0, GL_CONSTANT_ATTENUATION, (GLfloat)1);
+ glLighti(GL_LIGHT0, GL_LINEAR_ATTENUATION, (GLfloat)0.5);
+ glLighti(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, (GLfloat)0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (h, h, h);
+ h = 2;
+ glScalef (h, h, h);
+ }
+# endif
+
+ mi->polygon_count += drawgrid(ci);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, light_sp);
+ if (f_rand() < 0.05) {
+ for (j = 0 ; j < maxparts ; j++) {
+ if (ci->components[j] == NULL) {
+ ci->components[j] = NewComponent(mi);
+ j = maxparts;
+ }
+ }
+ reorder(&ci->components[0]);
+ }
+ for (j = 0 ; j < maxparts ; j++) {
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, black);
+ glMaterialfv(GL_FRONT, GL_EMISSION, black);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, black);
+ if (ci->components[j] != NULL) {
+ if (DrawComponent(ci, ci->components[j], &mi->polygon_count)) {
+ free(ci->components[j]); ci->components[j] = NULL;
+ }
+ }
+ }
+ glPopMatrix();
+ glFlush();
+}
+
+/* ensure transparent components are at the end */
+static void reorder(Component *c[])
+{
+ int i, j, k;
+ Component *c1[MAX_COMPONENTS];
+ Component *c2[MAX_COMPONENTS];
+
+ j = 0;
+ for (i = 0 ; i < maxparts ; i++) { /* clear old matrix */
+ c1[i] = NULL;
+ c2[i] = NULL;
+ }
+ for (i = 0 ; i < maxparts ; i++) {
+ if (c[i] == NULL) continue;
+ if (c[i]->alpha) { /* transparent parts go to c1 */
+ c1[j] = c[i];
+ j++;
+ } else { /* opaque parts go to c2 */
+ c2[i] = c[i];
+ }
+ }
+ for (i = 0 ; i < maxparts ; i++) { /* clear old matrix */
+ c[i] = NULL;
+ }
+ k = 0;
+ for (i = 0 ; i < maxparts ; i++) { /* insert opaque part */
+ if (c2[i] != NULL) {
+ c[k] = c2[i];
+ k++;
+ }
+ }
+ for (i = 0 ; i < j ; i++) { /* insert transparent parts */
+ c[k] = c1[i];
+ k++;
+ }
+}
+
+ENTRYPOINT void reshape_circuit(ModeInfo *mi, int width, int height)
+{
+ Circuit *ci = &circuit[MI_SCREEN(mi)];
+ int y = 0;
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0,y,(GLint)width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0,1.0,-h,h,1.5,35.0);
+ glMatrixMode(GL_MODELVIEW);
+ ci->win_h = height;
+ ci->win_w = width;
+ ci->YMAX = ci->XMAX * h;
+}
+
+
+ENTRYPOINT void init_circuit(ModeInfo *mi)
+{
+int screen = MI_SCREEN(mi);
+Circuit *ci;
+
+ MI_INIT(mi, circuit);
+ ci = &circuit[screen];
+ ci->window = MI_WINDOW(mi);
+
+ ci->XMAX = ci->YMAX = 50;
+ ci->viewer[2] = 14;
+ ci->lightpos[0] = 7;
+ ci->lightpos[1] = 7;
+ ci->lightpos[2] = 15;
+ ci->lightpos[3] = 1;
+
+ ci->grid_col[1] = 0.25;
+ ci->grid_col[2] = 0.05;
+ ci->grid_col2[1] = 0.125;
+ ci->grid_col2[2] = 0.05;
+
+ ci->font = load_texture_font (MI_DISPLAY(mi), "componentFont");
+
+ if (maxparts >= MAX_COMPONENTS)
+ maxparts = MAX_COMPONENTS-1;
+
+ if ((ci->glx_context = init_GL(mi)) != NULL) {
+ reshape_circuit(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+ if (uselight == 0)
+ ci->light = 1;
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ make_tables(ci);
+ makebandlist(ci);
+
+}
+
+ENTRYPOINT void draw_circuit(ModeInfo *mi)
+{
+ Circuit *ci = &circuit[MI_SCREEN(mi)];
+ Window w = MI_WINDOW(mi);
+ Display *disp = MI_DISPLAY(mi);
+
+ if (!ci->glx_context)
+ return;
+
+ glXMakeCurrent(disp, w, *(ci->glx_context));
+
+ display(mi);
+
+ if(mi->fps_p) do_fps(mi);
+ glFinish();
+ glXSwapBuffers(disp, w);
+}
+
+ENTRYPOINT void free_circuit(ModeInfo *mi)
+{
+ Circuit *ci = &circuit[MI_SCREEN(mi)];
+ if (ci->font)
+ free_texture_font (ci->font);
+ FreeAllGL(mi);
+}
+
+XSCREENSAVER_MODULE ("Circuit", circuit)
+
+#endif
diff --git a/hacks/glx/circuit.man b/hacks/glx/circuit.man
new file mode 100644
index 0000000..794f97b
--- /dev/null
+++ b/hacks/glx/circuit.man
@@ -0,0 +1,72 @@
+.TH XScreenSaver 1 "5-May-2004" "X Version 11"
+.SH NAME
+circuit - animates a number of 3D electronic components.
+.SH SYNOPSIS
+.B circuit
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-parts \fInumber\fP]
+[\-no-spin]
+[\-rotate]
+[\-speed \fInumber\fP]
+[\-no-light]
+[\-fps]
+.SH DESCRIPTION
+Animates a number of 3D electronic components.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-parts \fInumber\fP
+Number of parts. Default: 10.
+.TP 8
+.B \-spin | \-no-spin
+Whether the objects should spin.
+.TP 8
+.B \-rotate | \-no-rotate
+Whether the scene should spin.
+.TP 8
+.B \-speed \fInumber\fP
+Rotation speed, 0 - 100. Default: 1.
+.TP 8
+.B \-light | \-no-light
+Whether to us lighting, or flat coloring.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Ben Buxton. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Ben Buxton.
diff --git a/hacks/glx/cityflow.c b/hacks/glx/cityflow.c
new file mode 100644
index 0000000..2b3bd4f
--- /dev/null
+++ b/hacks/glx/cityflow.c
@@ -0,0 +1,545 @@
+/* cityflow, Copyright (c) 2014-2017 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*count: 800 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_cube 0
+# define release_cube 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SKEW "12"
+
+#define DEF_WAVES "6"
+#define DEF_WAVE_SPEED "25"
+#define DEF_WAVE_RADIUS "256"
+static int texture_size = 512;
+
+typedef struct {
+ GLfloat x, y, z;
+ GLfloat w, h, d;
+ GLfloat cth, sth;
+} cube;
+
+typedef struct {
+ int x, y;
+ double xth, yth;
+} wave_src;
+
+typedef struct {
+ int nwaves;
+ int radius;
+ int speed;
+ wave_src *srcs;
+ int *heights;
+} waves;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+ GLuint cube_list;
+ int cube_polys;
+ int ncubes;
+ cube *cubes;
+ waves *waves;
+ GLfloat min_x, max_x, min_y, max_y;
+ int texture_width, texture_height;
+ int ncolors;
+ XColor *colors;
+
+} cube_configuration;
+
+static cube_configuration *ccs = NULL;
+
+static int wave_count;
+static int wave_speed;
+static int wave_radius;
+static int skew;
+
+static XrmOptionDescRec opts[] = {
+ {"-waves", ".waves", XrmoptionSepArg, 0 },
+ {"-wave-speed", ".waveSpeed", XrmoptionSepArg, 0 },
+ {"-wave-radius", ".waveRadius", XrmoptionSepArg, 0 },
+ {"-skew", ".skew", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&wave_count, "waves", "Waves", DEF_WAVES, t_Int},
+ {&wave_speed, "waveSpeed", "WaveSpeed", DEF_WAVE_SPEED, t_Int},
+ {&wave_radius,"waveRadius","WaveRadius", DEF_WAVE_RADIUS,t_Int},
+ {&skew, "skew", "Skew", DEF_SKEW,t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt cube_opts = {
+ countof(opts), opts, countof(vars), vars, NULL};
+
+
+ENTRYPOINT void
+reshape_cube (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 2) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ /* For this one it's really important to minimize the distance between
+ near and far. */
+ gluPerspective (30, 1/h, 10, 50);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+reset_colors (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ make_smooth_colormap (0, 0, 0,
+ cc->colors, &cc->ncolors,
+ False, 0, False);
+ if (! MI_IS_WIREFRAME(mi))
+ glClearColor (cc->colors[0].red / 65536.0,
+ cc->colors[0].green / 65536.0,
+ cc->colors[0].blue / 65536.0,
+ 1);
+}
+
+
+static void
+tweak_cubes (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < cc->ncubes; i++)
+ {
+ cube *cube = &cc->cubes[i];
+ cube->x += (frand(2)-1)*0.01;
+ cube->y += (frand(2)-1)*0.01;
+ cube->z += (frand(2)-1)*0.01;
+ }
+}
+
+
+ENTRYPOINT Bool
+cube_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+
+ /* Neutralize any vertical motion */
+ GLfloat rot = current_device_rotation();
+ Bool rotp = ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135));
+
+ if (event->xany.type == ButtonPress ||
+ event->xany.type == ButtonRelease)
+ {
+ if (rotp)
+ event->xbutton.x = MI_WIDTH(mi) / 2;
+ else
+ event->xbutton.y = MI_HEIGHT(mi) / 2;
+ }
+ else if (event->xany.type == MotionNotify)
+ {
+ if (rotp)
+ event->xmotion.x = MI_WIDTH(mi) / 2;
+ else
+ event->xmotion.y = MI_HEIGHT(mi) / 2;
+ }
+
+ if (gltrackball_event_handler (event, cc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &cc->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ reset_colors (mi);
+ tweak_cubes (mi);
+ gltrackball_reset (cc->trackball, 0, 0);
+ return True;
+ }
+
+ return False;
+}
+
+
+/* Waves.
+ Adapted from ../hacks/interference.c by Hannu Mallat.
+ */
+
+static void
+init_wave (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ waves *ww;
+ int i;
+ cc->waves = ww = (waves *) calloc (sizeof(*cc->waves), 1);
+ ww->nwaves = wave_count;
+ ww->radius = wave_radius;
+ ww->speed = wave_speed;
+ ww->heights = (int *) calloc (sizeof(*ww->heights), ww->radius);
+ ww->srcs = (wave_src *) calloc (sizeof(*ww->srcs), ww->nwaves);
+
+ for (i = 0; i < ww->radius; i++)
+ {
+ float max = (cc->ncolors * (ww->radius - i) / (float) ww->radius);
+ ww->heights[i] = ((max + max * cos(i / 50.0)) / 2.0);
+ }
+
+ for (i = 0; i < ww->nwaves; i++)
+ {
+ ww->srcs[i].xth = frand(2.0) * M_PI;
+ ww->srcs[i].yth = frand(2.0) * M_PI;
+ }
+
+ cc->texture_width = texture_size;
+ cc->texture_height = texture_size;
+}
+
+
+static int
+interference_point (cube_configuration *cc, int x, int y)
+{
+ /* Compute the effect of the waves on a pixel. */
+
+ waves *ww = cc->waves;
+ int result = 0;
+ int i;
+ for (i = 0; i < ww->nwaves; i++)
+ {
+ int dx = x - ww->srcs[i].x;
+ int dy = y - ww->srcs[i].y;
+ int dist = sqrt (dx*dx + dy*dy);
+ result += (dist >= ww->radius ? 0 : ww->heights[dist]);
+ }
+ result *= 0.4;
+ if (result > 255) result = 255;
+ return result;
+}
+
+
+static void
+interference (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ waves *ww = cc->waves;
+ int i;
+
+ /* Move the wave origins around
+ */
+ for (i = 0; i < ww->nwaves; i++)
+ {
+ ww->srcs[i].xth += (ww->speed / 1000.0);
+ if (ww->srcs[i].xth > 2*M_PI)
+ ww->srcs[i].xth -= 2*M_PI;
+ ww->srcs[i].yth += (ww->speed / 1000.0);
+ if (ww->srcs[i].yth > 2*M_PI)
+ ww->srcs[i].yth -= 2*M_PI;
+
+ ww->srcs[i].x = (cc->texture_width/2 +
+ (cos (ww->srcs[i].xth) *
+ cc->texture_width / 2));
+ ww->srcs[i].y = (cc->texture_height/2 +
+ (cos (ww->srcs[i].yth) *
+ cc->texture_height / 2));
+ }
+}
+
+
+/* qsort comparator for sorting cubes by y position */
+static int
+cmp_cubes (const void *aa, const void *bb)
+{
+ const cube *a = (cube *) aa;
+ const cube *b = (cube *) bb;
+ return ((int) (b->y * 10000) -
+ (int) (a->y * 10000));
+}
+
+
+ENTRYPOINT void
+init_cube (ModeInfo *mi)
+{
+ int i;
+ cube_configuration *cc;
+
+ MI_INIT (mi, ccs);
+
+ cc = &ccs[MI_SCREEN(mi)];
+
+ if ((cc->glx_context = init_GL(mi)) != NULL) {
+ reshape_cube (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ cc->trackball = gltrackball_init (False);
+
+ cc->ncolors = 256;
+ cc->colors = (XColor *) calloc(cc->ncolors, sizeof(XColor));
+
+ reset_colors (mi);
+ init_wave (mi);
+
+ cc->ncubes = MI_COUNT (mi);
+
+ if (cc->ncubes < 1) cc->ncubes = 1;
+
+ cc->cubes = (cube *) calloc (sizeof(cube), cc->ncubes);
+ for (i = 0; i < cc->ncubes; i++)
+ {
+ /* Set the size to roughly cover a 2x2 square on average. */
+ GLfloat scale = 1.8 / sqrt (cc->ncubes);
+ cube *cube = &cc->cubes[i];
+ double th = -(skew ? frand(skew) : 0) * M_PI / 180;
+
+ cube->x = (frand(1)-0.5);
+ cube->y = (frand(1)-0.5);
+
+ cube->z = frand(0.12);
+ cube->cth = cos(th);
+ cube->sth = sin(th);
+
+ cube->w = scale * (frand(1) + 0.2);
+ cube->d = scale * (frand(1) + 0.2);
+
+ if (cube->x < cc->min_x) cc->min_x = cube->x;
+ if (cube->y < cc->min_y) cc->min_y = cube->y;
+ if (cube->x > cc->max_x) cc->max_x = cube->x;
+ if (cube->y > cc->max_y) cc->max_y = cube->y;
+ }
+
+ /* Sorting by depth improves frame rate slightly. With 6000 polygons we get:
+ 3.9 FPS unsorted;
+ 3.1 FPS back to front;
+ 4.3 FPS front to back.
+ */
+ qsort (cc->cubes, cc->ncubes, sizeof(*cc->cubes), cmp_cubes);
+}
+
+
+static void
+animate_cubes (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < cc->ncubes; i++)
+ {
+ cube *cube = &cc->cubes[i];
+ GLfloat fx = (cube->x - cc->min_x) / (cc->max_x - cc->min_x);
+ GLfloat fy = (cube->y - cc->min_y) / (cc->max_y - cc->min_y);
+ int x = (int) (cc->texture_width * fx) % cc->texture_width;
+ int y = (int) (cc->texture_height * fy) % cc->texture_height;
+ unsigned char v = interference_point (cc, x, y);
+ cube->h = cube->z + (v / 256.0 / 2.5) + 0.1;
+ }
+}
+
+
+ENTRYPOINT void
+draw_cube (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!cc->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cc->glx_context));
+
+ interference (mi);
+ animate_cubes (mi);
+
+ glShadeModel(GL_FLAT);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+ /* glEnable (GL_POLYGON_OFFSET_FILL); */
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ gltrackball_rotate (cc->trackball);
+ glRotatef (-180, 1, 0, 0);
+
+ {
+ GLfloat s = 15;
+ glScalef (s, s, s);
+ }
+ glRotatef (-90, 1, 0, 0);
+
+ glTranslatef (-0.18, 0, -0.18);
+ glRotatef (37, 1, 0, 0);
+ glRotatef (20, 0, 0, 1);
+
+ glScalef (2.1, 2.1, 2.1);
+
+ /* Position lights after device rotation. */
+ if (!wire)
+ {
+ static const GLfloat pos[4] = {0.0, 0.25, -1.0, 0.0};
+ static const GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ static const GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ }
+
+ glBegin (wire ? GL_LINES : GL_QUADS);
+
+ for (i = 0; i < cc->ncubes; i++)
+ {
+ cube *cube = &cc->cubes[i];
+ GLfloat cth = cube->cth;
+ GLfloat sth = cube->sth;
+ GLfloat x = cth*cube->x + sth*cube->y;
+ GLfloat y = -sth*cube->x + cth*cube->y;
+ GLfloat w = cube->w/2;
+ GLfloat h = cube->h/2;
+ GLfloat d = cube->d/2;
+ GLfloat bottom = 5;
+
+ GLfloat xw = cth*w, xd = sth*d;
+ GLfloat yw = -sth*w, yd = cth*d;
+
+ GLfloat color[4];
+ int c = cube->h * cc->ncolors * 0.7;
+ c %= cc->ncolors;
+
+ color[0] = cc->colors[c].red / 65536.0;
+ color[1] = cc->colors[c].green / 65536.0;
+ color[2] = cc->colors[c].blue / 65536.0;
+ color[3] = 1.0;
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+
+ /* Putting this in a display list makes no performance difference. */
+
+ if (! wire)
+ {
+ glNormal3f (0, 0, -1); /* top */
+ glVertex3f (x+xw+xd, y+yw+yd, -h);
+ glVertex3f (x+xw-xd, y+yw-yd, -h);
+ glVertex3f (x-xw-xd, y-yw-yd, -h);
+ glVertex3f (x-xw+xd, y-yw+yd, -h);
+ mi->polygon_count++;
+
+ glNormal3f (sth, cth, 0); /* front */
+ glVertex3f (x+xw+xd, y+yw+yd, bottom);
+ glVertex3f (x+xw+xd, y+yw+yd, -h);
+ glVertex3f (x-xw+xd, y-yw+yd, -h);
+ glVertex3f (x-xw+xd, y-yw+yd, bottom);
+ mi->polygon_count++;
+
+ glNormal3f (cth, -sth, 0); /* right */
+ glVertex3f (x+xw-xd, y+yw-yd, -h);
+ glVertex3f (x+xw+xd, y+yw+yd, -h);
+ glVertex3f (x+xw+xd, y+yw+yd, bottom);
+ glVertex3f (x+xw-xd, y+yw-yd, bottom);
+ mi->polygon_count++;
+
+# if 0 /* Omitting these makes no performance difference. */
+
+ glNormal3f (-cth, sth, 0); /* left */
+ glVertex3f (x-xw+xd, y-yw+yd, -h);
+ glVertex3f (x-xw-xd, y-yw-yd, -h);
+ glVertex3f (x-xw-xd, y-yw-yd, bottom);
+ glVertex3f (x-xw+xd, y-yw+yd, bottom);
+ mi->polygon_count++;
+
+ glNormal3f (-sth, -cth, 0); /* back */
+ glVertex3f (x-xw-xd, y-yw-yd, bottom);
+ glVertex3f (x-xw-xd, y-yw-yd, -h);
+ glVertex3f (x+xw-xd, y+yw-yd, -h);
+ glVertex3f (x+xw-xd, y+yw-yd, bottom);
+ mi->polygon_count++;
+# endif
+ }
+ else
+ {
+ glNormal3f (0, 0, -1); /* top */
+ glVertex3f (x+xw+xd, y+yw+yd, -h);
+ glVertex3f (x+xw-xd, y+yw-yd, -h);
+
+ glVertex3f (x+xw-xd, y+yw-yd, -h);
+ glVertex3f (x-xw-xd, y-yw-yd, -h);
+
+ glVertex3f (x-xw-xd, y-yw-yd, -h);
+ glVertex3f (x-xw+xd, y-yw+yd, -h);
+
+ glVertex3f (x-xw+xd, y-yw+yd, -h);
+ glVertex3f (x+xw+xd, y+yw+yd, -h);
+ mi->polygon_count++;
+ }
+ }
+ glEnd();
+
+ glPolygonOffset (0, 0);
+
+# if 0
+ glDisable(GL_DEPTH_TEST); /* Outline the playfield */
+ glColor3f(1,1,1);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f (-0.5, -0.5, 0);
+ glVertex3f (-0.5, 0.5, 0);
+ glVertex3f ( 0.5, 0.5, 0);
+ glVertex3f ( 0.5, -0.5, 0);
+ glEnd();
+# endif
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+
+XSCREENSAVER_MODULE_2 ("Cityflow", cityflow, cube)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/cityflow.man b/hacks/glx/cityflow.man
new file mode 100644
index 0000000..eabcdc2
--- /dev/null
+++ b/hacks/glx/cityflow.man
@@ -0,0 +1,77 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+cityflow - waves of boxes.
+.SH SYNOPSIS
+.B cityflow
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-count \fInumber\fP]
+[\-wave-speed \fInumber\fP]
+[\-wave-radius \fInumber\fP]
+[\-waves \fInumber\fP]
+[\-skew \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Waves move across a sea of boxes. The city swells. The walls are closing
+in.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-count \fInumber\fP
+Boxes. 50 - 4000. Default: 800.
+.TP 8
+.B \-wave-speed \fInumber\fP
+Wave speed. 5 - 150. Default: 25.
+.TP 8
+.B \-wave-radius \fInumber\fP
+Wave overlap. 5 - 512. Default: 256.
+.TP 8
+.B \-waves \fInumber\fP
+Wave complexity. 1 - 20. Default: 6.
+.TP 8
+.B \-skew \fInumber\fP
+Skew. 0 - 45. Default: 12.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2012 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/companion.c b/hacks/glx/companion.c
new file mode 100644
index 0000000..3c004a5
--- /dev/null
+++ b/hacks/glx/companion.c
@@ -0,0 +1,592 @@
+/* companioncube, Copyright (c) 2011-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* The symptoms most commonly produced by Enrichment Center testing are
+ superstition, perceiving inanimate objects as alive, and hallucinations.
+ The Enrichment Center reminds you that the weighted companion cube will
+ never threaten to stab you and, in fact, cannot speak. In the event that
+ the Weighted Companion Cube does speak, the Enrichment Center urges you to
+ disregard its advice.
+ */
+
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*count: 3 \n" \
+ "*wireframe: False \n" \
+
+/* #define DEBUG */
+
+
+# define free_cube 0
+# define release_cube 0
+#define DEF_SPEED "1.0"
+#define DEF_SPIN "False"
+#define DEF_WANDER "False"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+#include "xlockmore.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "ximage-loader.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+extern const struct gllist *companion_quad, *companion_disc, *companion_heart;
+static const struct gllist * const *all_objs[] = {
+ &companion_quad, &companion_disc, &companion_heart
+};
+#define BASE_QUAD 0
+#define BASE_DISC 1
+#define BASE_HEART 2
+#define FULL_CUBE 3
+
+#define SPEED_SCALE 0.2
+
+typedef struct {
+ GLfloat x, y, z;
+ GLfloat ix, iy, iz;
+ GLfloat dx, dy, dz;
+ GLfloat ddx, ddy, ddz;
+ GLfloat zr;
+ rotator *rot;
+ Bool spinner_p;
+} floater;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLuint *dlists;
+ int cube_polys;
+
+ int nfloaters;
+ floater *floaters;
+
+} cube_configuration;
+
+static cube_configuration *bps = NULL;
+
+static GLfloat speed;
+static Bool do_spin;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt cube_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+#define BOTTOM 28.0
+
+static void
+reset_floater (ModeInfo *mi, floater *f)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ f->y = -BOTTOM;
+ f->x = f->ix;
+ f->z = f->iz;
+
+ /* Yes, I know I'm varying the force of gravity instead of varying the
+ launch velocity. That's intentional: empirical studies indicate
+ that it's way, way funnier that way. */
+
+ f->dy = 5.0;
+ f->dx = 0;
+ f->dz = 0;
+
+ /* -0.18 max -0.3 top -0.4 middle -0.6 bottom */
+ f->ddy = speed * SPEED_SCALE * (-0.6 + BELLRAND(0.45));
+ f->ddx = 0;
+ f->ddz = 0;
+
+ if (do_spin || do_wander)
+ f->spinner_p = 0;
+ else
+ f->spinner_p = !(random() % (3 * bp->nfloaters));
+
+ if (! (random() % (30 * bp->nfloaters)))
+ {
+ f->dx = BELLRAND(1.8) * RANDSIGN();
+ f->dz = BELLRAND(1.8) * RANDSIGN();
+ }
+
+ f->zr = frand(180);
+ if (do_spin || do_wander)
+ {
+ f->y = 0;
+ if (bp->nfloaters > 2)
+ f->y += frand(3.0) * RANDSIGN();
+ }
+}
+
+
+static void
+tick_floater (ModeInfo *mi, floater *f)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (bp->button_down_p) return;
+
+ if (do_spin || do_wander) return;
+
+ f->dx += f->ddx;
+ f->dy += f->ddy;
+ f->dz += f->ddz;
+
+ f->x += f->dx * speed * SPEED_SCALE;
+ f->y += f->dy * speed * SPEED_SCALE;
+ f->z += f->dz * speed * SPEED_SCALE;
+
+ if (f->y < -BOTTOM ||
+ f->x < -BOTTOM*8 || f->x > BOTTOM*8 ||
+ f->z < -BOTTOM*8 || f->z > BOTTOM*8)
+ reset_floater (mi, f);
+}
+
+
+
+
+
+static int
+build_corner (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat s;
+ const struct gllist *gll = *all_objs[BASE_QUAD];
+
+ glPushMatrix();
+ glTranslatef (-0.5, -0.5, -0.5);
+ s = 0.659;
+ glScalef (s, s, s);
+
+ glRotatef (180, 0, 1, 0);
+ glRotatef (180, 0, 0, 1);
+ glTranslatef (-0.12, -1.64, 0.12);
+ glCallList (bp->dlists[BASE_QUAD]);
+ glPopMatrix();
+
+ return gll->points / 3;
+}
+
+
+static int
+build_face (ModeInfo *mi)
+{
+ int polys = 0;
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat s;
+ const struct gllist *gll;
+
+ GLfloat base_color[4] = {0.53, 0.60, 0.66, 1.00};
+ GLfloat heart_color[4] = {0.92, 0.67, 1.00, 1.00};
+ GLfloat disc_color[4] = {0.75, 0.92, 1.00, 1.00};
+ GLfloat corner_color[4] = {0.75, 0.92, 1.00, 1.00};
+
+ if (!wire)
+ {
+ GLfloat w = 0.010;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, base_color);
+ glPushMatrix();
+ glNormal3f (0, 0, -1);
+ glTranslatef (-0.5, -0.5, -0.5);
+
+ glBegin(GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, 0.5-w, 0);
+ glVertex3f (0.5-w, 0.5-w, 0);
+ glVertex3f (0.5-w, 0, 0);
+
+ glVertex3f (0.5+w, 0, 0);
+ glVertex3f (0.5+w, 0.5-w, 0);
+ glVertex3f (1, 0.5-w, 0);
+ glVertex3f (1, 0, 0);
+
+ glVertex3f (0, 0.5+w, 0);
+ glVertex3f (0, 1, 0);
+ glVertex3f (0.5-w, 1, 0);
+ glVertex3f (0.5-w, 0.5+w, 0);
+
+ glVertex3f (0.5+w, 0.5+w, 0);
+ glVertex3f (0.5+w, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0.5+w, 0);
+ glEnd();
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, heart_color);
+
+ glNormal3f (0, -1, 0);
+ glBegin(GL_QUADS);
+ glVertex3f (0, 0.5+w, 0);
+ glVertex3f (1, 0.5+w, 0);
+ glVertex3f (1, 0.5+w, w);
+ glVertex3f (0, 0.5+w, w);
+ glEnd();
+
+ glNormal3f (0, 1, 0);
+ glBegin(GL_QUADS);
+ glVertex3f (0, 0.5-w, w);
+ glVertex3f (1, 0.5-w, w);
+ glVertex3f (1, 0.5-w, 0);
+ glVertex3f (0, 0.5-w, 0);
+ glEnd();
+
+ glNormal3f (-1, 0, 0);
+ glBegin(GL_QUADS);
+ glVertex3f (0.5+w, 0, w);
+ glVertex3f (0.5+w, 1, w);
+ glVertex3f (0.5+w, 1, 0);
+ glVertex3f (0.5+w, 0, 0);
+ glEnd();
+
+ glNormal3f (1, 0, 0);
+ glBegin(GL_QUADS);
+ glVertex3f (0.5-w, 0, 0);
+ glVertex3f (0.5-w, 1, 0);
+ glVertex3f (0.5-w, 1, w);
+ glVertex3f (0.5-w, 0, w);
+ glEnd();
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, heart_color);
+
+ glNormal3f (0, 0, -1);
+ glTranslatef (0, 0, w);
+ glBegin(GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glEnd();
+
+ glPopMatrix();
+ }
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, corner_color);
+
+ glPushMatrix();
+ polys += build_corner (mi); glRotatef (90, 0, 0, 1);
+ polys += build_corner (mi); glRotatef (90, 0, 0, 1);
+ polys += build_corner (mi); glRotatef (90, 0, 0, 1);
+ polys += build_corner (mi);
+
+ glRotatef (90, 0, 0, 1);
+ glTranslatef (0.585, -0.585, -0.5655);
+
+ s = 10.5;
+ glScalef (s, s, s);
+ glRotatef (180, 0, 1, 0);
+
+ if (! wire)
+ {
+ gll = *all_objs[BASE_HEART];
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, heart_color);
+ glCallList (bp->dlists[BASE_HEART]);
+ polys += gll->points / 3;
+ }
+
+ gll = *all_objs[BASE_DISC];
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, disc_color);
+ glCallList (bp->dlists[BASE_DISC]);
+ polys += gll->points / 3;
+
+ glPopMatrix();
+ return polys;
+}
+
+
+static int
+build_cube (ModeInfo *mi)
+{
+ int polys = 0;
+ glPushMatrix();
+ polys += build_face (mi); glRotatef (90, 0, 1, 0);
+ polys += build_face (mi); glRotatef (90, 0, 1, 0);
+ polys += build_face (mi); glRotatef (90, 0, 1, 0);
+ polys += build_face (mi); glRotatef (90, 1, 0, 0);
+ polys += build_face (mi); glRotatef (180,1, 0, 0);
+ polys += build_face (mi);
+ glPopMatrix();
+ return polys;
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_cube (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+cube_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_cube (ModeInfo *mi)
+{
+ cube_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_cube (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.7, 0.2, 0.4, 0.0};
+/* GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};*/
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ bp->trackball = gltrackball_init (False);
+
+ bp->dlists = (GLuint *) calloc (countof(all_objs)+2, sizeof(GLuint));
+ for (i = 0; i < countof(all_objs)+1; i++)
+ bp->dlists[i] = glGenLists (1);
+
+ for (i = 0; i < countof(all_objs); i++)
+ {
+ const struct gllist *gll = *all_objs[i];
+ glNewList (bp->dlists[i], GL_COMPILE);
+ renderList (gll, wire);
+ glEndList ();
+ }
+
+ glNewList (bp->dlists[i], GL_COMPILE);
+ bp->cube_polys = build_cube (mi);
+ glEndList ();
+
+
+ bp->nfloaters = MI_COUNT (mi);
+ bp->floaters = (floater *) calloc (bp->nfloaters, sizeof (floater));
+
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ double spin_speed = do_spin ? 0.7 : 10;
+ double wander_speed = do_wander ? 0.02 : 0.05 * speed * SPEED_SCALE;
+ double spin_accel = 0.5;
+ f->rot = make_rotator (spin_speed, spin_speed, spin_speed,
+ spin_accel,
+ wander_speed,
+ True);
+ if (bp->nfloaters == 2)
+ {
+ f->x = (i ? 2 : -2);
+ }
+ else if (i != 0)
+ {
+ double th = (i - 1) * M_PI*2 / (bp->nfloaters-1);
+ double r = 3;
+ f->x = r * cos(th);
+ f->z = r * sin(th);
+ }
+
+ f->ix = f->x;
+ f->iy = f->y;
+ f->iz = f->z;
+ reset_floater (mi, f);
+ }
+}
+
+
+static void
+draw_floater (ModeInfo *mi, floater *f)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat n;
+ double x, y, z;
+
+ get_position (f->rot, &x, &y, &z, !bp->button_down_p);
+
+ glPushMatrix();
+ glTranslatef (f->x, f->y, f->z);
+
+ if (do_wander)
+ glTranslatef (x, y, z);
+
+ if (do_spin)
+ get_rotation (f->rot, &x, &y, &z, !bp->button_down_p);
+
+ if (do_spin || f->spinner_p)
+ {
+ glRotatef (x * 360, 1, 0, 0);
+ glRotatef (y * 360, 0, 1, 0);
+ glRotatef (z * 360, 0, 0, 1);
+ }
+ else
+ {
+ glRotatef (f->zr * 360, 0, 1, 0);
+ }
+
+ n = 1.5;
+ if (bp->nfloaters > 99) n *= 0.05;
+ else if (bp->nfloaters > 25) n *= 0.18;
+ else if (bp->nfloaters > 9) n *= 0.3;
+ else if (bp->nfloaters > 1) n *= 0.7;
+
+ n *= 2;
+
+ if ((do_spin || do_wander) && bp->nfloaters > 1)
+ n *= 0.7;
+
+ glScalef(n, n, n);
+
+ glCallList (bp->dlists[FULL_CUBE]);
+ mi->polygon_count += bp->cube_polys;
+/* build_cube (mi);*/
+
+ glPopMatrix();
+}
+
+
+
+ENTRYPOINT void
+draw_cube (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ gltrackball_rotate (bp->trackball);
+
+ glScalef (2, 2, 2);
+
+ mi->polygon_count = 0;
+
+# if 0
+ {
+ floater F;
+ F.x = F.y = F.z = 0;
+ F.dx = F.dy = F.dz = 0;
+ F.ddx = F.ddy = F.ddz = 0;
+ F.rot = make_rotator (0, 0, 0, 1, 0, False);
+ glRotatef (45, 0, 1, 0);
+ draw_floater (mi, &F);
+ }
+# else
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ draw_floater (mi, f);
+ tick_floater (mi, f);
+ }
+# endif
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("CompanionCube", companioncube, cube)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/companion_disc.c b/hacks/glx/companion_disc.c
new file mode 100644
index 0000000..b2f1830
--- /dev/null
+++ b/hacks/glx/companion_disc.c
@@ -0,0 +1,9593 @@
+#include "gllist.h"
+static const float data[]={
+ -0.904813,-0.425773,0.005552,0.040192,0.048501,-0.006167,
+ -0.902569,-0.424717,0.070606,0.040194,0.048502,-0.006013,
+ -0.927456,-0.367206,0.070606,0.039761,0.049501,-0.006013,
+ -0.904813,-0.425773,0.005552,0.040192,0.048501,-0.006167,
+ -0.927456,-0.367206,0.070606,0.039761,0.049501,-0.006013,
+ -0.929762,-0.368119,0.005552,0.03976,0.049501,-0.006167,
+ -0.876293,-0.481746,0.005552,0.040687,0.04753,-0.006167,
+ -0.87412,-0.480551,0.070606,0.040688,0.047531,-0.006013,
+ -0.902569,-0.424717,0.070606,0.040194,0.048502,-0.006013,
+ -0.876293,-0.481746,0.005552,0.040687,0.04753,-0.006167,
+ -0.902569,-0.424717,0.070606,0.040194,0.048502,-0.006013,
+ -0.904813,-0.425773,0.005552,0.040192,0.048501,-0.006167,
+ -0.844315,-0.535819,0.005552,0.041241,0.046592,-0.006167,
+ -0.842221,-0.53449,0.070606,0.041243,0.046593,-0.006013,
+ -0.87412,-0.480551,0.070606,0.040688,0.047531,-0.006013,
+ -0.844315,-0.535819,0.005552,0.041241,0.046592,-0.006167,
+ -0.87412,-0.480551,0.070606,0.040688,0.047531,-0.006013,
+ -0.876293,-0.481746,0.005552,0.040687,0.04753,-0.006167,
+ -0.809005,-0.587776,0.005552,0.041854,0.045691,-0.006167,
+ -0.806998,-0.586318,0.070606,0.041855,0.045692,-0.006013,
+ -0.842221,-0.53449,0.070606,0.041243,0.046593,-0.006013,
+ -0.809005,-0.587776,0.005552,0.041854,0.045691,-0.006167,
+ -0.842221,-0.53449,0.070606,0.041243,0.046593,-0.006013,
+ -0.844315,-0.535819,0.005552,0.041241,0.046592,-0.006167,
+ -0.770501,-0.637414,0.005552,0.042522,0.04483,-0.006167,
+ -0.76859,-0.635833,0.070606,0.042523,0.044831,-0.006013,
+ -0.806998,-0.586318,0.070606,0.041855,0.045692,-0.006013,
+ -0.770501,-0.637414,0.005552,0.042522,0.04483,-0.006167,
+ -0.806998,-0.586318,0.070606,0.041855,0.045692,-0.006013,
+ -0.809005,-0.587776,0.005552,0.041854,0.045691,-0.006167,
+ -0.728957,-0.684537,0.005552,0.043242,0.044013,-0.006167,
+ -0.727149,-0.682839,0.070606,0.043243,0.044014,-0.006013,
+ -0.76859,-0.635833,0.070606,0.042523,0.044831,-0.006013,
+ -0.728957,-0.684537,0.005552,0.043242,0.044013,-0.006167,
+ -0.76859,-0.635833,0.070606,0.042523,0.044831,-0.006013,
+ -0.770501,-0.637414,0.005552,0.042522,0.04483,-0.006167,
+ -0.684537,-0.728957,0.005552,0.044013,0.043242,-0.006167,
+ -0.682839,-0.727149,0.070606,0.044014,0.043243,-0.006013,
+ -0.727149,-0.682839,0.070606,0.043243,0.044014,-0.006013,
+ -0.684537,-0.728957,0.005552,0.044013,0.043242,-0.006167,
+ -0.727149,-0.682839,0.070606,0.043243,0.044014,-0.006013,
+ -0.728957,-0.684537,0.005552,0.043242,0.044013,-0.006167,
+ -0.637414,-0.770501,0.005552,0.04483,0.042522,-0.006167,
+ -0.635833,-0.76859,0.070606,0.044831,0.042523,-0.006013,
+ -0.682839,-0.727149,0.070606,0.044014,0.043243,-0.006013,
+ -0.637414,-0.770501,0.005552,0.04483,0.042522,-0.006167,
+ -0.682839,-0.727149,0.070606,0.044014,0.043243,-0.006013,
+ -0.684537,-0.728957,0.005552,0.044013,0.043242,-0.006167,
+ -0.587776,-0.809005,0.005552,0.045691,0.041854,-0.006167,
+ -0.586318,-0.806998,0.070606,0.045692,0.041855,-0.006013,
+ -0.635833,-0.76859,0.070606,0.044831,0.042523,-0.006013,
+ -0.587776,-0.809005,0.005552,0.045691,0.041854,-0.006167,
+ -0.635833,-0.76859,0.070606,0.044831,0.042523,-0.006013,
+ -0.637414,-0.770501,0.005552,0.04483,0.042522,-0.006167,
+ -0.535819,-0.844315,0.005552,0.046592,0.041241,-0.006167,
+ -0.53449,-0.842221,0.070606,0.046593,0.041243,-0.006013,
+ -0.586318,-0.806998,0.070606,0.045692,0.041855,-0.006013,
+ -0.535819,-0.844315,0.005552,0.046592,0.041241,-0.006167,
+ -0.586318,-0.806998,0.070606,0.045692,0.041855,-0.006013,
+ -0.587776,-0.809005,0.005552,0.045691,0.041854,-0.006167,
+ -0.481746,-0.876293,0.005552,0.04753,0.040687,-0.006167,
+ -0.480551,-0.87412,0.070606,0.047531,0.040688,-0.006013,
+ -0.53449,-0.842221,0.070606,0.046593,0.041243,-0.006013,
+ -0.481746,-0.876293,0.005552,0.04753,0.040687,-0.006167,
+ -0.53449,-0.842221,0.070606,0.046593,0.041243,-0.006013,
+ -0.535819,-0.844315,0.005552,0.046592,0.041241,-0.006167,
+ -0.425773,-0.904813,0.005552,0.048501,0.040192,-0.006167,
+ -0.424717,-0.902569,0.070606,0.048502,0.040194,-0.006013,
+ -0.480551,-0.87412,0.070606,0.047531,0.040688,-0.006013,
+ -0.425773,-0.904813,0.005552,0.048501,0.040192,-0.006167,
+ -0.480551,-0.87412,0.070606,0.047531,0.040688,-0.006013,
+ -0.481746,-0.876293,0.005552,0.04753,0.040687,-0.006167,
+ -0.368119,-0.929762,0.005552,0.049501,0.03976,-0.006167,
+ -0.367206,-0.927456,0.070606,0.049501,0.039761,-0.006013,
+ -0.424717,-0.902569,0.070606,0.048502,0.040194,-0.006013,
+ -0.368119,-0.929762,0.005552,0.049501,0.03976,-0.006167,
+ -0.424717,-0.902569,0.070606,0.048502,0.040194,-0.006013,
+ -0.425773,-0.904813,0.005552,0.048501,0.040192,-0.006167,
+ -0.309012,-0.951042,0.005552,0.050526,0.03939,-0.006167,
+ -0.308246,-0.948683,0.070606,0.050526,0.039392,-0.006013,
+ -0.367206,-0.927456,0.070606,0.049501,0.039761,-0.006013,
+ -0.309012,-0.951042,0.005552,0.050526,0.03939,-0.006167,
+ -0.367206,-0.927456,0.070606,0.049501,0.039761,-0.006013,
+ -0.368119,-0.929762,0.005552,0.049501,0.03976,-0.006167,
+ -0.248686,-0.968568,0.005552,0.051572,0.039087,-0.006167,
+ -0.248069,-0.966166,0.070606,0.051572,0.039088,-0.006013,
+ -0.308246,-0.948683,0.070606,0.050526,0.039392,-0.006013,
+ -0.248686,-0.968568,0.005552,0.051572,0.039087,-0.006167,
+ -0.308246,-0.948683,0.070606,0.050526,0.039392,-0.006013,
+ -0.309012,-0.951042,0.005552,0.050526,0.03939,-0.006167,
+ -0.187378,-0.982272,0.005552,0.052635,0.038849,-0.006167,
+ -0.186914,-0.979836,0.070606,0.052636,0.03885,-0.006013,
+ -0.248069,-0.966166,0.070606,0.051572,0.039088,-0.006013,
+ -0.187378,-0.982272,0.005552,0.052635,0.038849,-0.006167,
+ -0.248069,-0.966166,0.070606,0.051572,0.039088,-0.006013,
+ -0.248686,-0.968568,0.005552,0.051572,0.039087,-0.006167,
+ -0.125331,-0.992099,0.005552,0.053712,0.038678,-0.006167,
+ -0.12502,-0.989639,0.070606,0.053712,0.03868,-0.006013,
+ -0.186914,-0.979836,0.070606,0.052636,0.03885,-0.006013,
+ -0.125331,-0.992099,0.005552,0.053712,0.038678,-0.006167,
+ -0.186914,-0.979836,0.070606,0.052636,0.03885,-0.006013,
+ -0.187378,-0.982272,0.005552,0.052635,0.038849,-0.006167,
+ -0.07324,-0.997287,0.007402,0.054796,0.038576,-0.006167,
+ -0.062634,-0.995536,0.070606,0.054796,0.038577,-0.006013,
+ -0.12502,-0.989639,0.070606,0.053712,0.03868,-0.006013,
+ -0.07324,-0.997287,0.007402,0.054796,0.038576,-0.006167,
+ -0.12502,-0.989639,0.070606,0.053712,0.03868,-0.006013,
+ -0.125331,-0.992099,0.005552,0.053712,0.038678,-0.006167,
+ 0,-0.999938,0.011104,0.055885,0.038542,-0.006167,
+ 0,-0.997504,0.070606,0.055885,0.038543,-0.006013,
+ -0.062634,-0.995536,0.070606,0.054796,0.038577,-0.006013,
+ 0,-0.999938,0.011104,0.055885,0.038542,-0.006167,
+ -0.062634,-0.995536,0.070606,0.054796,0.038577,-0.006013,
+ -0.07324,-0.997287,0.007402,0.054796,0.038576,-0.006167,
+ 0.07324,-0.997287,0.007402,0.056974,0.038576,-0.006167,
+ 0.062634,-0.995536,0.070606,0.056974,0.038577,-0.006013,
+ 0,-0.997504,0.070606,0.055885,0.038543,-0.006013,
+ 0.07324,-0.997287,0.007402,0.056974,0.038576,-0.006167,
+ 0,-0.997504,0.070606,0.055885,0.038543,-0.006013,
+ 0,-0.999938,0.011104,0.055885,0.038542,-0.006167,
+ 0.125331,-0.992099,0.005552,0.058059,0.038678,-0.006167,
+ 0.12502,-0.989639,0.070606,0.058059,0.03868,-0.006013,
+ 0.062634,-0.995536,0.070606,0.056974,0.038577,-0.006013,
+ 0.125331,-0.992099,0.005552,0.058059,0.038678,-0.006167,
+ 0.062634,-0.995536,0.070606,0.056974,0.038577,-0.006013,
+ 0.07324,-0.997287,0.007402,0.056974,0.038576,-0.006167,
+ 0.187378,-0.982272,0.005552,0.059135,0.038849,-0.006167,
+ 0.186914,-0.979836,0.070606,0.059135,0.03885,-0.006013,
+ 0.12502,-0.989639,0.070606,0.058059,0.03868,-0.006013,
+ 0.187378,-0.982272,0.005552,0.059135,0.038849,-0.006167,
+ 0.12502,-0.989639,0.070606,0.058059,0.03868,-0.006013,
+ 0.125331,-0.992099,0.005552,0.058059,0.038678,-0.006167,
+ 0.248686,-0.968568,0.005552,0.060198,0.039087,-0.006167,
+ 0.248069,-0.966166,0.070606,0.060198,0.039088,-0.006013,
+ 0.186914,-0.979836,0.070606,0.059135,0.03885,-0.006013,
+ 0.248686,-0.968568,0.005552,0.060198,0.039087,-0.006167,
+ 0.186914,-0.979836,0.070606,0.059135,0.03885,-0.006013,
+ 0.187378,-0.982272,0.005552,0.059135,0.038849,-0.006167,
+ 0.309012,-0.951042,0.005552,0.061245,0.03939,-0.006167,
+ 0.308246,-0.948683,0.070606,0.061244,0.039392,-0.006013,
+ 0.248069,-0.966166,0.070606,0.060198,0.039088,-0.006013,
+ 0.309012,-0.951042,0.005552,0.061245,0.03939,-0.006167,
+ 0.248069,-0.966166,0.070606,0.060198,0.039088,-0.006013,
+ 0.248686,-0.968568,0.005552,0.060198,0.039087,-0.006167,
+ 0.368119,-0.929762,0.005552,0.06227,0.03976,-0.006167,
+ 0.367206,-0.927456,0.070606,0.062269,0.039761,-0.006013,
+ 0.308246,-0.948683,0.070606,0.061244,0.039392,-0.006013,
+ 0.368119,-0.929762,0.005552,0.06227,0.03976,-0.006167,
+ 0.308246,-0.948683,0.070606,0.061244,0.039392,-0.006013,
+ 0.309012,-0.951042,0.005552,0.061245,0.03939,-0.006167,
+ 0.425773,-0.904813,0.005552,0.06327,0.040192,-0.006167,
+ 0.424717,-0.902569,0.070606,0.063269,0.040194,-0.006013,
+ 0.367206,-0.927456,0.070606,0.062269,0.039761,-0.006013,
+ 0.425773,-0.904813,0.005552,0.06327,0.040192,-0.006167,
+ 0.367206,-0.927456,0.070606,0.062269,0.039761,-0.006013,
+ 0.368119,-0.929762,0.005552,0.06227,0.03976,-0.006167,
+ 0.481746,-0.876293,0.005552,0.064241,0.040687,-0.006167,
+ 0.480551,-0.87412,0.070606,0.06424,0.040688,-0.006013,
+ 0.424717,-0.902569,0.070606,0.063269,0.040194,-0.006013,
+ 0.481746,-0.876293,0.005552,0.064241,0.040687,-0.006167,
+ 0.424717,-0.902569,0.070606,0.063269,0.040194,-0.006013,
+ 0.425773,-0.904813,0.005552,0.06327,0.040192,-0.006167,
+ 0.535819,-0.844315,0.005552,0.065178,0.041241,-0.006167,
+ 0.53449,-0.842221,0.070606,0.065178,0.041243,-0.006013,
+ 0.480551,-0.87412,0.070606,0.06424,0.040688,-0.006013,
+ 0.535819,-0.844315,0.005552,0.065178,0.041241,-0.006167,
+ 0.480551,-0.87412,0.070606,0.06424,0.040688,-0.006013,
+ 0.481746,-0.876293,0.005552,0.064241,0.040687,-0.006167,
+ 0.587776,-0.809005,0.005552,0.06608,0.041854,-0.006167,
+ 0.586318,-0.806998,0.070606,0.066079,0.041855,-0.006013,
+ 0.53449,-0.842221,0.070606,0.065178,0.041243,-0.006013,
+ 0.587776,-0.809005,0.005552,0.06608,0.041854,-0.006167,
+ 0.53449,-0.842221,0.070606,0.065178,0.041243,-0.006013,
+ 0.535819,-0.844315,0.005552,0.065178,0.041241,-0.006167,
+ 0.637414,-0.770501,0.005552,0.066941,0.042522,-0.006167,
+ 0.635833,-0.76859,0.070606,0.06694,0.042523,-0.006013,
+ 0.586318,-0.806998,0.070606,0.066079,0.041855,-0.006013,
+ 0.637414,-0.770501,0.005552,0.066941,0.042522,-0.006167,
+ 0.586318,-0.806998,0.070606,0.066079,0.041855,-0.006013,
+ 0.587776,-0.809005,0.005552,0.06608,0.041854,-0.006167,
+ 0.684537,-0.728957,0.005552,0.067758,0.043242,-0.006167,
+ 0.682839,-0.727149,0.070606,0.067757,0.043243,-0.006013,
+ 0.635833,-0.76859,0.070606,0.06694,0.042523,-0.006013,
+ 0.684537,-0.728957,0.005552,0.067758,0.043242,-0.006167,
+ 0.635833,-0.76859,0.070606,0.06694,0.042523,-0.006013,
+ 0.637414,-0.770501,0.005552,0.066941,0.042522,-0.006167,
+ 0.728957,-0.684537,0.005552,0.068528,0.044013,-0.006167,
+ 0.727149,-0.682839,0.070606,0.068527,0.044014,-0.006013,
+ 0.682839,-0.727149,0.070606,0.067757,0.043243,-0.006013,
+ 0.728957,-0.684537,0.005552,0.068528,0.044013,-0.006167,
+ 0.682839,-0.727149,0.070606,0.067757,0.043243,-0.006013,
+ 0.684537,-0.728957,0.005552,0.067758,0.043242,-0.006167,
+ 0.770501,-0.637414,0.005552,0.069249,0.04483,-0.006167,
+ 0.76859,-0.635833,0.070606,0.069247,0.044831,-0.006013,
+ 0.727149,-0.682839,0.070606,0.068527,0.044014,-0.006013,
+ 0.770501,-0.637414,0.005552,0.069249,0.04483,-0.006167,
+ 0.727149,-0.682839,0.070606,0.068527,0.044014,-0.006013,
+ 0.728957,-0.684537,0.005552,0.068528,0.044013,-0.006167,
+ 0.809005,-0.587776,0.005552,0.069917,0.045691,-0.006167,
+ 0.806998,-0.586318,0.070606,0.069915,0.045692,-0.006013,
+ 0.76859,-0.635833,0.070606,0.069247,0.044831,-0.006013,
+ 0.809005,-0.587776,0.005552,0.069917,0.045691,-0.006167,
+ 0.76859,-0.635833,0.070606,0.069247,0.044831,-0.006013,
+ 0.770501,-0.637414,0.005552,0.069249,0.04483,-0.006167,
+ 0.844315,-0.535819,0.005552,0.070529,0.046592,-0.006167,
+ 0.842221,-0.53449,0.070606,0.070528,0.046593,-0.006013,
+ 0.806998,-0.586318,0.070606,0.069915,0.045692,-0.006013,
+ 0.844315,-0.535819,0.005552,0.070529,0.046592,-0.006167,
+ 0.806998,-0.586318,0.070606,0.069915,0.045692,-0.006013,
+ 0.809005,-0.587776,0.005552,0.069917,0.045691,-0.006167,
+ 0.876293,-0.481746,0.005552,0.071084,0.04753,-0.006167,
+ 0.87412,-0.480551,0.070606,0.071082,0.047531,-0.006013,
+ 0.842221,-0.53449,0.070606,0.070528,0.046593,-0.006013,
+ 0.876293,-0.481746,0.005552,0.071084,0.04753,-0.006167,
+ 0.842221,-0.53449,0.070606,0.070528,0.046593,-0.006013,
+ 0.844315,-0.535819,0.005552,0.070529,0.046592,-0.006167,
+ 0.904813,-0.425773,0.005552,0.071578,0.048501,-0.006167,
+ 0.902569,-0.424717,0.070606,0.071577,0.048502,-0.006013,
+ 0.87412,-0.480551,0.070606,0.071082,0.047531,-0.006013,
+ 0.904813,-0.425773,0.005552,0.071578,0.048501,-0.006167,
+ 0.87412,-0.480551,0.070606,0.071082,0.047531,-0.006013,
+ 0.876293,-0.481746,0.005552,0.071084,0.04753,-0.006167,
+ 0.929762,-0.368119,0.005552,0.072011,0.049501,-0.006167,
+ 0.927456,-0.367206,0.070606,0.07201,0.049501,-0.006013,
+ 0.902569,-0.424717,0.070606,0.071577,0.048502,-0.006013,
+ 0.929762,-0.368119,0.005552,0.072011,0.049501,-0.006167,
+ 0.902569,-0.424717,0.070606,0.071577,0.048502,-0.006013,
+ 0.904813,-0.425773,0.005552,0.071578,0.048501,-0.006167,
+ 0.951042,-0.309012,0.005552,0.07238,0.050526,-0.006167,
+ 0.948683,-0.308246,0.070606,0.072379,0.050526,-0.006013,
+ 0.927456,-0.367206,0.070606,0.07201,0.049501,-0.006013,
+ 0.951042,-0.309012,0.005552,0.07238,0.050526,-0.006167,
+ 0.927456,-0.367206,0.070606,0.07201,0.049501,-0.006013,
+ 0.929762,-0.368119,0.005552,0.072011,0.049501,-0.006167,
+ 0.968568,-0.248686,0.005552,0.072684,0.051572,-0.006167,
+ 0.966166,-0.248069,0.070606,0.072682,0.051572,-0.006013,
+ 0.948683,-0.308246,0.070606,0.072379,0.050526,-0.006013,
+ 0.968568,-0.248686,0.005552,0.072684,0.051572,-0.006167,
+ 0.948683,-0.308246,0.070606,0.072379,0.050526,-0.006013,
+ 0.951042,-0.309012,0.005552,0.07238,0.050526,-0.006167,
+ 0.982272,-0.187378,0.005552,0.072922,0.052635,-0.006167,
+ 0.979836,-0.186914,0.070606,0.07292,0.052636,-0.006013,
+ 0.966166,-0.248069,0.070606,0.072682,0.051572,-0.006013,
+ 0.982272,-0.187378,0.005552,0.072922,0.052635,-0.006167,
+ 0.966166,-0.248069,0.070606,0.072682,0.051572,-0.006013,
+ 0.968568,-0.248686,0.005552,0.072684,0.051572,-0.006167,
+ 0.992099,-0.125331,0.005552,0.073092,0.053712,-0.006167,
+ 0.989639,-0.12502,0.070606,0.073091,0.053712,-0.006013,
+ 0.979836,-0.186914,0.070606,0.07292,0.052636,-0.006013,
+ 0.992099,-0.125331,0.005552,0.073092,0.053712,-0.006167,
+ 0.979836,-0.186914,0.070606,0.07292,0.052636,-0.006013,
+ 0.982272,-0.187378,0.005552,0.072922,0.052635,-0.006167,
+ 0.997287,-0.07324,0.007402,0.073195,0.054796,-0.006167,
+ 0.995536,-0.062634,0.070606,0.073193,0.054796,-0.006013,
+ 0.989639,-0.12502,0.070606,0.073091,0.053712,-0.006013,
+ 0.997287,-0.07324,0.007402,0.073195,0.054796,-0.006167,
+ 0.989639,-0.12502,0.070606,0.073091,0.053712,-0.006013,
+ 0.992099,-0.125331,0.005552,0.073092,0.053712,-0.006167,
+ 0.999938,0,0.011104,0.073229,0.055885,-0.006167,
+ 0.997504,0,0.070606,0.073227,0.055885,-0.006013,
+ 0.995536,-0.062634,0.070606,0.073193,0.054796,-0.006013,
+ 0.999938,0,0.011104,0.073229,0.055885,-0.006167,
+ 0.995536,-0.062634,0.070606,0.073193,0.054796,-0.006013,
+ 0.997287,-0.07324,0.007402,0.073195,0.054796,-0.006167,
+ 0.997287,0.07324,0.007402,0.073195,0.056974,-0.006167,
+ 0.995536,0.062634,0.070606,0.073193,0.056974,-0.006013,
+ 0.997504,0,0.070606,0.073227,0.055885,-0.006013,
+ 0.997287,0.07324,0.007402,0.073195,0.056974,-0.006167,
+ 0.997504,0,0.070606,0.073227,0.055885,-0.006013,
+ 0.999938,0,0.011104,0.073229,0.055885,-0.006167,
+ 0.992099,0.125331,0.005552,0.073092,0.058059,-0.006167,
+ 0.989639,0.12502,0.070606,0.073091,0.058059,-0.006013,
+ 0.995536,0.062634,0.070606,0.073193,0.056974,-0.006013,
+ 0.992099,0.125331,0.005552,0.073092,0.058059,-0.006167,
+ 0.995536,0.062634,0.070606,0.073193,0.056974,-0.006013,
+ 0.997287,0.07324,0.007402,0.073195,0.056974,-0.006167,
+ 0.982272,0.187378,0.005552,0.072922,0.059135,-0.006167,
+ 0.979836,0.186914,0.070606,0.07292,0.059135,-0.006013,
+ 0.989639,0.12502,0.070606,0.073091,0.058059,-0.006013,
+ 0.982272,0.187378,0.005552,0.072922,0.059135,-0.006167,
+ 0.989639,0.12502,0.070606,0.073091,0.058059,-0.006013,
+ 0.992099,0.125331,0.005552,0.073092,0.058059,-0.006167,
+ 0.968568,0.248686,0.005552,0.072684,0.060198,-0.006167,
+ 0.966166,0.248069,0.070606,0.072682,0.060198,-0.006013,
+ 0.979836,0.186914,0.070606,0.07292,0.059135,-0.006013,
+ 0.968568,0.248686,0.005552,0.072684,0.060198,-0.006167,
+ 0.979836,0.186914,0.070606,0.07292,0.059135,-0.006013,
+ 0.982272,0.187378,0.005552,0.072922,0.059135,-0.006167,
+ 0.951042,0.309012,0.005552,0.07238,0.061245,-0.006167,
+ 0.948683,0.308246,0.070606,0.072379,0.061244,-0.006013,
+ 0.966166,0.248069,0.070606,0.072682,0.060198,-0.006013,
+ 0.951042,0.309012,0.005552,0.07238,0.061245,-0.006167,
+ 0.966166,0.248069,0.070606,0.072682,0.060198,-0.006013,
+ 0.968568,0.248686,0.005552,0.072684,0.060198,-0.006167,
+ 0.929762,0.368119,0.005552,0.072011,0.06227,-0.006167,
+ 0.927456,0.367206,0.070606,0.07201,0.062269,-0.006013,
+ 0.948683,0.308246,0.070606,0.072379,0.061244,-0.006013,
+ 0.929762,0.368119,0.005552,0.072011,0.06227,-0.006167,
+ 0.948683,0.308246,0.070606,0.072379,0.061244,-0.006013,
+ 0.951042,0.309012,0.005552,0.07238,0.061245,-0.006167,
+ 0.904813,0.425773,0.005552,0.071578,0.06327,-0.006167,
+ 0.902569,0.424717,0.070606,0.071577,0.063269,-0.006013,
+ 0.927456,0.367206,0.070606,0.07201,0.062269,-0.006013,
+ 0.904813,0.425773,0.005552,0.071578,0.06327,-0.006167,
+ 0.927456,0.367206,0.070606,0.07201,0.062269,-0.006013,
+ 0.929762,0.368119,0.005552,0.072011,0.06227,-0.006167,
+ 0.876293,0.481746,0.005552,0.071084,0.064241,-0.006167,
+ 0.87412,0.480551,0.070606,0.071082,0.06424,-0.006013,
+ 0.902569,0.424717,0.070606,0.071577,0.063269,-0.006013,
+ 0.876293,0.481746,0.005552,0.071084,0.064241,-0.006167,
+ 0.902569,0.424717,0.070606,0.071577,0.063269,-0.006013,
+ 0.904813,0.425773,0.005552,0.071578,0.06327,-0.006167,
+ 0.844315,0.535819,0.005552,0.070529,0.065178,-0.006167,
+ 0.842221,0.53449,0.070606,0.070528,0.065178,-0.006013,
+ 0.87412,0.480551,0.070606,0.071082,0.06424,-0.006013,
+ 0.844315,0.535819,0.005552,0.070529,0.065178,-0.006167,
+ 0.87412,0.480551,0.070606,0.071082,0.06424,-0.006013,
+ 0.876293,0.481746,0.005552,0.071084,0.064241,-0.006167,
+ 0.809005,0.587776,0.005552,0.069917,0.06608,-0.006167,
+ 0.806998,0.586318,0.070606,0.069915,0.066079,-0.006013,
+ 0.842221,0.53449,0.070606,0.070528,0.065178,-0.006013,
+ 0.809005,0.587776,0.005552,0.069917,0.06608,-0.006167,
+ 0.842221,0.53449,0.070606,0.070528,0.065178,-0.006013,
+ 0.844315,0.535819,0.005552,0.070529,0.065178,-0.006167,
+ 0.770501,0.637414,0.005552,0.069249,0.066941,-0.006167,
+ 0.76859,0.635833,0.070606,0.069247,0.06694,-0.006013,
+ 0.806998,0.586318,0.070606,0.069915,0.066079,-0.006013,
+ 0.770501,0.637414,0.005552,0.069249,0.066941,-0.006167,
+ 0.806998,0.586318,0.070606,0.069915,0.066079,-0.006013,
+ 0.809005,0.587776,0.005552,0.069917,0.06608,-0.006167,
+ 0.728957,0.684537,0.005552,0.068528,0.067758,-0.006167,
+ 0.727149,0.682839,0.070606,0.068527,0.067757,-0.006013,
+ 0.76859,0.635833,0.070606,0.069247,0.06694,-0.006013,
+ 0.728957,0.684537,0.005552,0.068528,0.067758,-0.006167,
+ 0.76859,0.635833,0.070606,0.069247,0.06694,-0.006013,
+ 0.770501,0.637414,0.005552,0.069249,0.066941,-0.006167,
+ 0.684537,0.728957,0.005552,0.067758,0.068528,-0.006167,
+ 0.682839,0.727149,0.070606,0.067757,0.068527,-0.006013,
+ 0.727149,0.682839,0.070606,0.068527,0.067757,-0.006013,
+ 0.684537,0.728957,0.005552,0.067758,0.068528,-0.006167,
+ 0.727149,0.682839,0.070606,0.068527,0.067757,-0.006013,
+ 0.728957,0.684537,0.005552,0.068528,0.067758,-0.006167,
+ 0.637414,0.770501,0.005552,0.066941,0.069249,-0.006167,
+ 0.635833,0.76859,0.070606,0.06694,0.069247,-0.006013,
+ 0.682839,0.727149,0.070606,0.067757,0.068527,-0.006013,
+ 0.637414,0.770501,0.005552,0.066941,0.069249,-0.006167,
+ 0.682839,0.727149,0.070606,0.067757,0.068527,-0.006013,
+ 0.684537,0.728957,0.005552,0.067758,0.068528,-0.006167,
+ 0.587776,0.809005,0.005552,0.06608,0.069917,-0.006167,
+ 0.586318,0.806998,0.070606,0.066079,0.069915,-0.006013,
+ 0.635833,0.76859,0.070606,0.06694,0.069247,-0.006013,
+ 0.587776,0.809005,0.005552,0.06608,0.069917,-0.006167,
+ 0.635833,0.76859,0.070606,0.06694,0.069247,-0.006013,
+ 0.637414,0.770501,0.005552,0.066941,0.069249,-0.006167,
+ 0.535819,0.844315,0.005552,0.065178,0.070529,-0.006167,
+ 0.53449,0.842221,0.070606,0.065178,0.070528,-0.006013,
+ 0.586318,0.806998,0.070606,0.066079,0.069915,-0.006013,
+ 0.535819,0.844315,0.005552,0.065178,0.070529,-0.006167,
+ 0.586318,0.806998,0.070606,0.066079,0.069915,-0.006013,
+ 0.587776,0.809005,0.005552,0.06608,0.069917,-0.006167,
+ 0.481746,0.876293,0.005552,0.064241,0.071084,-0.006167,
+ 0.480551,0.87412,0.070606,0.06424,0.071082,-0.006013,
+ 0.53449,0.842221,0.070606,0.065178,0.070528,-0.006013,
+ 0.481746,0.876293,0.005552,0.064241,0.071084,-0.006167,
+ 0.53449,0.842221,0.070606,0.065178,0.070528,-0.006013,
+ 0.535819,0.844315,0.005552,0.065178,0.070529,-0.006167,
+ 0.425773,0.904813,0.005552,0.06327,0.071578,-0.006167,
+ 0.424717,0.902569,0.070606,0.063269,0.071577,-0.006013,
+ 0.480551,0.87412,0.070606,0.06424,0.071082,-0.006013,
+ 0.425773,0.904813,0.005552,0.06327,0.071578,-0.006167,
+ 0.480551,0.87412,0.070606,0.06424,0.071082,-0.006013,
+ 0.481746,0.876293,0.005552,0.064241,0.071084,-0.006167,
+ 0.368119,0.929762,0.005552,0.06227,0.072011,-0.006167,
+ 0.367206,0.927456,0.070606,0.062269,0.07201,-0.006013,
+ 0.424717,0.902569,0.070606,0.063269,0.071577,-0.006013,
+ 0.368119,0.929762,0.005552,0.06227,0.072011,-0.006167,
+ 0.424717,0.902569,0.070606,0.063269,0.071577,-0.006013,
+ 0.425773,0.904813,0.005552,0.06327,0.071578,-0.006167,
+ 0.309012,0.951042,0.005552,0.061245,0.07238,-0.006167,
+ 0.308246,0.948683,0.070606,0.061244,0.072379,-0.006013,
+ 0.367206,0.927456,0.070606,0.062269,0.07201,-0.006013,
+ 0.309012,0.951042,0.005552,0.061245,0.07238,-0.006167,
+ 0.367206,0.927456,0.070606,0.062269,0.07201,-0.006013,
+ 0.368119,0.929762,0.005552,0.06227,0.072011,-0.006167,
+ 0.248686,0.968568,0.005552,0.060198,0.072684,-0.006167,
+ 0.248069,0.966166,0.070606,0.060198,0.072682,-0.006013,
+ 0.308246,0.948683,0.070606,0.061244,0.072379,-0.006013,
+ 0.248686,0.968568,0.005552,0.060198,0.072684,-0.006167,
+ 0.308246,0.948683,0.070606,0.061244,0.072379,-0.006013,
+ 0.309012,0.951042,0.005552,0.061245,0.07238,-0.006167,
+ 0.187378,0.982272,0.005552,0.059135,0.072922,-0.006167,
+ 0.186914,0.979836,0.070606,0.059135,0.07292,-0.006013,
+ 0.248069,0.966166,0.070606,0.060198,0.072682,-0.006013,
+ 0.187378,0.982272,0.005552,0.059135,0.072922,-0.006167,
+ 0.248069,0.966166,0.070606,0.060198,0.072682,-0.006013,
+ 0.248686,0.968568,0.005552,0.060198,0.072684,-0.006167,
+ 0.125331,0.992099,0.005552,0.058059,0.073092,-0.006167,
+ 0.12502,0.989639,0.070606,0.058059,0.073091,-0.006013,
+ 0.186914,0.979836,0.070606,0.059135,0.07292,-0.006013,
+ 0.125331,0.992099,0.005552,0.058059,0.073092,-0.006167,
+ 0.186914,0.979836,0.070606,0.059135,0.07292,-0.006013,
+ 0.187378,0.982272,0.005552,0.059135,0.072922,-0.006167,
+ 0.07324,0.997287,0.007402,0.056974,0.073195,-0.006167,
+ 0.062634,0.995536,0.070606,0.056974,0.073193,-0.006013,
+ 0.12502,0.989639,0.070606,0.058059,0.073091,-0.006013,
+ 0.07324,0.997287,0.007402,0.056974,0.073195,-0.006167,
+ 0.12502,0.989639,0.070606,0.058059,0.073091,-0.006013,
+ 0.125331,0.992099,0.005552,0.058059,0.073092,-0.006167,
+ 0,0.999938,0.011104,0.055885,0.073229,-0.006167,
+ 0,0.997504,0.070606,0.055885,0.073227,-0.006013,
+ 0.062634,0.995536,0.070606,0.056974,0.073193,-0.006013,
+ 0,0.999938,0.011104,0.055885,0.073229,-0.006167,
+ 0.062634,0.995536,0.070606,0.056974,0.073193,-0.006013,
+ 0.07324,0.997287,0.007402,0.056974,0.073195,-0.006167,
+ -0.07324,0.997287,0.007402,0.054796,0.073195,-0.006167,
+ -0.062634,0.995536,0.070606,0.054796,0.073193,-0.006013,
+ 0,0.997504,0.070606,0.055885,0.073227,-0.006013,
+ -0.07324,0.997287,0.007402,0.054796,0.073195,-0.006167,
+ 0,0.997504,0.070606,0.055885,0.073227,-0.006013,
+ 0,0.999938,0.011104,0.055885,0.073229,-0.006167,
+ -0.125331,0.992099,0.005552,0.053712,0.073092,-0.006167,
+ -0.12502,0.989639,0.070606,0.053712,0.073091,-0.006013,
+ -0.062634,0.995536,0.070606,0.054796,0.073193,-0.006013,
+ -0.125331,0.992099,0.005552,0.053712,0.073092,-0.006167,
+ -0.062634,0.995536,0.070606,0.054796,0.073193,-0.006013,
+ -0.07324,0.997287,0.007402,0.054796,0.073195,-0.006167,
+ -0.187378,0.982272,0.005552,0.052635,0.072922,-0.006167,
+ -0.186914,0.979836,0.070606,0.052636,0.07292,-0.006013,
+ -0.12502,0.989639,0.070606,0.053712,0.073091,-0.006013,
+ -0.187378,0.982272,0.005552,0.052635,0.072922,-0.006167,
+ -0.12502,0.989639,0.070606,0.053712,0.073091,-0.006013,
+ -0.125331,0.992099,0.005552,0.053712,0.073092,-0.006167,
+ -0.248686,0.968568,0.005552,0.051572,0.072684,-0.006167,
+ -0.248069,0.966166,0.070606,0.051572,0.072682,-0.006013,
+ -0.186914,0.979836,0.070606,0.052636,0.07292,-0.006013,
+ -0.248686,0.968568,0.005552,0.051572,0.072684,-0.006167,
+ -0.186914,0.979836,0.070606,0.052636,0.07292,-0.006013,
+ -0.187378,0.982272,0.005552,0.052635,0.072922,-0.006167,
+ -0.309012,0.951042,0.005552,0.050526,0.07238,-0.006167,
+ -0.308246,0.948683,0.070606,0.050526,0.072379,-0.006013,
+ -0.248069,0.966166,0.070606,0.051572,0.072682,-0.006013,
+ -0.309012,0.951042,0.005552,0.050526,0.07238,-0.006167,
+ -0.248069,0.966166,0.070606,0.051572,0.072682,-0.006013,
+ -0.248686,0.968568,0.005552,0.051572,0.072684,-0.006167,
+ -0.368119,0.929762,0.005552,0.049501,0.072011,-0.006167,
+ -0.367206,0.927456,0.070606,0.049501,0.07201,-0.006013,
+ -0.308246,0.948683,0.070606,0.050526,0.072379,-0.006013,
+ -0.368119,0.929762,0.005552,0.049501,0.072011,-0.006167,
+ -0.308246,0.948683,0.070606,0.050526,0.072379,-0.006013,
+ -0.309012,0.951042,0.005552,0.050526,0.07238,-0.006167,
+ -0.425773,0.904813,0.005552,0.048501,0.071578,-0.006167,
+ -0.424717,0.902569,0.070606,0.048502,0.071577,-0.006013,
+ -0.367206,0.927456,0.070606,0.049501,0.07201,-0.006013,
+ -0.425773,0.904813,0.005552,0.048501,0.071578,-0.006167,
+ -0.367206,0.927456,0.070606,0.049501,0.07201,-0.006013,
+ -0.368119,0.929762,0.005552,0.049501,0.072011,-0.006167,
+ -0.481746,0.876293,0.005552,0.04753,0.071084,-0.006167,
+ -0.480551,0.87412,0.070606,0.047531,0.071082,-0.006013,
+ -0.424717,0.902569,0.070606,0.048502,0.071577,-0.006013,
+ -0.481746,0.876293,0.005552,0.04753,0.071084,-0.006167,
+ -0.424717,0.902569,0.070606,0.048502,0.071577,-0.006013,
+ -0.425773,0.904813,0.005552,0.048501,0.071578,-0.006167,
+ -0.535819,0.844315,0.005552,0.046592,0.070529,-0.006167,
+ -0.53449,0.842221,0.070606,0.046593,0.070528,-0.006013,
+ -0.480551,0.87412,0.070606,0.047531,0.071082,-0.006013,
+ -0.535819,0.844315,0.005552,0.046592,0.070529,-0.006167,
+ -0.480551,0.87412,0.070606,0.047531,0.071082,-0.006013,
+ -0.481746,0.876293,0.005552,0.04753,0.071084,-0.006167,
+ -0.587776,0.809005,0.005552,0.045691,0.069917,-0.006167,
+ -0.586318,0.806998,0.070606,0.045692,0.069915,-0.006013,
+ -0.53449,0.842221,0.070606,0.046593,0.070528,-0.006013,
+ -0.587776,0.809005,0.005552,0.045691,0.069917,-0.006167,
+ -0.53449,0.842221,0.070606,0.046593,0.070528,-0.006013,
+ -0.535819,0.844315,0.005552,0.046592,0.070529,-0.006167,
+ -0.637414,0.770501,0.005552,0.04483,0.069249,-0.006167,
+ -0.635833,0.76859,0.070606,0.044831,0.069247,-0.006013,
+ -0.586318,0.806998,0.070606,0.045692,0.069915,-0.006013,
+ -0.637414,0.770501,0.005552,0.04483,0.069249,-0.006167,
+ -0.586318,0.806998,0.070606,0.045692,0.069915,-0.006013,
+ -0.587776,0.809005,0.005552,0.045691,0.069917,-0.006167,
+ -0.684537,0.728957,0.005552,0.044013,0.068528,-0.006167,
+ -0.682839,0.727149,0.070606,0.044014,0.068527,-0.006013,
+ -0.635833,0.76859,0.070606,0.044831,0.069247,-0.006013,
+ -0.684537,0.728957,0.005552,0.044013,0.068528,-0.006167,
+ -0.635833,0.76859,0.070606,0.044831,0.069247,-0.006013,
+ -0.637414,0.770501,0.005552,0.04483,0.069249,-0.006167,
+ -0.728957,0.684537,0.005552,0.043242,0.067758,-0.006167,
+ -0.727149,0.682839,0.070606,0.043243,0.067757,-0.006013,
+ -0.682839,0.727149,0.070606,0.044014,0.068527,-0.006013,
+ -0.728957,0.684537,0.005552,0.043242,0.067758,-0.006167,
+ -0.682839,0.727149,0.070606,0.044014,0.068527,-0.006013,
+ -0.684537,0.728957,0.005552,0.044013,0.068528,-0.006167,
+ -0.770501,0.637414,0.005552,0.042522,0.066941,-0.006167,
+ -0.76859,0.635833,0.070606,0.042523,0.06694,-0.006013,
+ -0.727149,0.682839,0.070606,0.043243,0.067757,-0.006013,
+ -0.770501,0.637414,0.005552,0.042522,0.066941,-0.006167,
+ -0.727149,0.682839,0.070606,0.043243,0.067757,-0.006013,
+ -0.728957,0.684537,0.005552,0.043242,0.067758,-0.006167,
+ -0.809005,0.587776,0.005552,0.041854,0.06608,-0.006167,
+ -0.806998,0.586318,0.070606,0.041855,0.066079,-0.006013,
+ -0.76859,0.635833,0.070606,0.042523,0.06694,-0.006013,
+ -0.809005,0.587776,0.005552,0.041854,0.06608,-0.006167,
+ -0.76859,0.635833,0.070606,0.042523,0.06694,-0.006013,
+ -0.770501,0.637414,0.005552,0.042522,0.066941,-0.006167,
+ -0.844315,0.535819,0.005552,0.041241,0.065178,-0.006167,
+ -0.842221,0.53449,0.070606,0.041243,0.065178,-0.006013,
+ -0.806998,0.586318,0.070606,0.041855,0.066079,-0.006013,
+ -0.844315,0.535819,0.005552,0.041241,0.065178,-0.006167,
+ -0.806998,0.586318,0.070606,0.041855,0.066079,-0.006013,
+ -0.809005,0.587776,0.005552,0.041854,0.06608,-0.006167,
+ -0.876293,0.481746,0.005552,0.040687,0.064241,-0.006167,
+ -0.87412,0.480551,0.070606,0.040688,0.06424,-0.006013,
+ -0.842221,0.53449,0.070606,0.041243,0.065178,-0.006013,
+ -0.876293,0.481746,0.005552,0.040687,0.064241,-0.006167,
+ -0.842221,0.53449,0.070606,0.041243,0.065178,-0.006013,
+ -0.844315,0.535819,0.005552,0.041241,0.065178,-0.006167,
+ -0.904813,0.425773,0.005552,0.040192,0.06327,-0.006167,
+ -0.902569,0.424717,0.070606,0.040194,0.063269,-0.006013,
+ -0.87412,0.480551,0.070606,0.040688,0.06424,-0.006013,
+ -0.904813,0.425773,0.005552,0.040192,0.06327,-0.006167,
+ -0.87412,0.480551,0.070606,0.040688,0.06424,-0.006013,
+ -0.876293,0.481746,0.005552,0.040687,0.064241,-0.006167,
+ -0.929762,0.368119,0.005552,0.03976,0.06227,-0.006167,
+ -0.927456,0.367206,0.070606,0.039761,0.062269,-0.006013,
+ -0.902569,0.424717,0.070606,0.040194,0.063269,-0.006013,
+ -0.929762,0.368119,0.005552,0.03976,0.06227,-0.006167,
+ -0.902569,0.424717,0.070606,0.040194,0.063269,-0.006013,
+ -0.904813,0.425773,0.005552,0.040192,0.06327,-0.006167,
+ -0.951042,0.309012,0.005552,0.03939,0.061245,-0.006167,
+ -0.948683,0.308246,0.070606,0.039392,0.061244,-0.006013,
+ -0.927456,0.367206,0.070606,0.039761,0.062269,-0.006013,
+ -0.951042,0.309012,0.005552,0.03939,0.061245,-0.006167,
+ -0.927456,0.367206,0.070606,0.039761,0.062269,-0.006013,
+ -0.929762,0.368119,0.005552,0.03976,0.06227,-0.006167,
+ -0.968568,0.248686,0.005552,0.039087,0.060198,-0.006167,
+ -0.966166,0.248069,0.070606,0.039088,0.060198,-0.006013,
+ -0.948683,0.308246,0.070606,0.039392,0.061244,-0.006013,
+ -0.968568,0.248686,0.005552,0.039087,0.060198,-0.006167,
+ -0.948683,0.308246,0.070606,0.039392,0.061244,-0.006013,
+ -0.951042,0.309012,0.005552,0.03939,0.061245,-0.006167,
+ -0.982272,0.187378,0.005552,0.038849,0.059135,-0.006167,
+ -0.979836,0.186914,0.070606,0.03885,0.059135,-0.006013,
+ -0.966166,0.248069,0.070606,0.039088,0.060198,-0.006013,
+ -0.982272,0.187378,0.005552,0.038849,0.059135,-0.006167,
+ -0.966166,0.248069,0.070606,0.039088,0.060198,-0.006013,
+ -0.968568,0.248686,0.005552,0.039087,0.060198,-0.006167,
+ -0.992099,0.125331,0.005552,0.038678,0.058059,-0.006167,
+ -0.989639,0.12502,0.070606,0.03868,0.058059,-0.006013,
+ -0.979836,0.186914,0.070606,0.03885,0.059135,-0.006013,
+ -0.992099,0.125331,0.005552,0.038678,0.058059,-0.006167,
+ -0.979836,0.186914,0.070606,0.03885,0.059135,-0.006013,
+ -0.982272,0.187378,0.005552,0.038849,0.059135,-0.006167,
+ -0.997287,0.07324,0.007402,0.038576,0.056974,-0.006167,
+ -0.995536,0.062634,0.070606,0.038577,0.056974,-0.006013,
+ -0.989639,0.12502,0.070606,0.03868,0.058059,-0.006013,
+ -0.997287,0.07324,0.007402,0.038576,0.056974,-0.006167,
+ -0.989639,0.12502,0.070606,0.03868,0.058059,-0.006013,
+ -0.992099,0.125331,0.005552,0.038678,0.058059,-0.006167,
+ -0.999938,0,0.011104,0.038542,0.055885,-0.006167,
+ -0.997504,0,0.070606,0.038543,0.055885,-0.006013,
+ -0.995536,0.062634,0.070606,0.038577,0.056974,-0.006013,
+ -0.999938,0,0.011104,0.038542,0.055885,-0.006167,
+ -0.995536,0.062634,0.070606,0.038577,0.056974,-0.006013,
+ -0.997287,0.07324,0.007402,0.038576,0.056974,-0.006167,
+ -0.997287,-0.07324,0.007402,0.038576,0.054796,-0.006167,
+ -0.995536,-0.062634,0.070606,0.038577,0.054796,-0.006013,
+ -0.997504,0,0.070606,0.038543,0.055885,-0.006013,
+ -0.997287,-0.07324,0.007402,0.038576,0.054796,-0.006167,
+ -0.997504,0,0.070606,0.038543,0.055885,-0.006013,
+ -0.999938,0,0.011104,0.038542,0.055885,-0.006167,
+ -0.992099,-0.125331,0.005552,0.038678,0.053712,-0.006167,
+ -0.989639,-0.12502,0.070606,0.03868,0.053712,-0.006013,
+ -0.995536,-0.062634,0.070606,0.038577,0.054796,-0.006013,
+ -0.992099,-0.125331,0.005552,0.038678,0.053712,-0.006167,
+ -0.995536,-0.062634,0.070606,0.038577,0.054796,-0.006013,
+ -0.997287,-0.07324,0.007402,0.038576,0.054796,-0.006167,
+ -0.982272,-0.187378,0.005552,0.038849,0.052635,-0.006167,
+ -0.979836,-0.186914,0.070606,0.03885,0.052636,-0.006013,
+ -0.989639,-0.12502,0.070606,0.03868,0.053712,-0.006013,
+ -0.982272,-0.187378,0.005552,0.038849,0.052635,-0.006167,
+ -0.989639,-0.12502,0.070606,0.03868,0.053712,-0.006013,
+ -0.992099,-0.125331,0.005552,0.038678,0.053712,-0.006167,
+ -0.968568,-0.248686,0.005552,0.039087,0.051572,-0.006167,
+ -0.966166,-0.248069,0.070606,0.039088,0.051572,-0.006013,
+ -0.979836,-0.186914,0.070606,0.03885,0.052636,-0.006013,
+ -0.968568,-0.248686,0.005552,0.039087,0.051572,-0.006167,
+ -0.979836,-0.186914,0.070606,0.03885,0.052636,-0.006013,
+ -0.982272,-0.187378,0.005552,0.038849,0.052635,-0.006167,
+ -0.951042,-0.309012,0.005552,0.03939,0.050526,-0.006167,
+ -0.948683,-0.308246,0.070606,0.039392,0.050526,-0.006013,
+ -0.966166,-0.248069,0.070606,0.039088,0.051572,-0.006013,
+ -0.951042,-0.309012,0.005552,0.03939,0.050526,-0.006167,
+ -0.966166,-0.248069,0.070606,0.039088,0.051572,-0.006013,
+ -0.968568,-0.248686,0.005552,0.039087,0.051572,-0.006167,
+ -0.929762,-0.368119,0.005552,0.03976,0.049501,-0.006167,
+ -0.927456,-0.367206,0.070606,0.039761,0.049501,-0.006013,
+ -0.948683,-0.308246,0.070606,0.039392,0.050526,-0.006013,
+ -0.929762,-0.368119,0.005552,0.03976,0.049501,-0.006167,
+ -0.948683,-0.308246,0.070606,0.039392,0.050526,-0.006013,
+ -0.951042,-0.309012,0.005552,0.03939,0.050526,-0.006167,
+ -0.927456,-0.367206,0.070606,0.039761,0.049501,-0.006013,
+ -0.913082,-0.361515,0.18865,0.03978,0.049509,-0.005861,
+ -0.93398,-0.303468,0.18865,0.039411,0.050532,-0.005861,
+ -0.927456,-0.367206,0.070606,0.039761,0.049501,-0.006013,
+ -0.93398,-0.303468,0.18865,0.039411,0.050532,-0.005861,
+ -0.948683,-0.308246,0.070606,0.039392,0.050526,-0.006013,
+ -0.902569,-0.424717,0.070606,0.040194,0.048502,-0.006013,
+ -0.88858,-0.418134,0.18865,0.040212,0.04851,-0.005861,
+ -0.913082,-0.361515,0.18865,0.03978,0.049509,-0.005861,
+ -0.902569,-0.424717,0.070606,0.040194,0.048502,-0.006013,
+ -0.913082,-0.361515,0.18865,0.03978,0.049509,-0.005861,
+ -0.927456,-0.367206,0.070606,0.039761,0.049501,-0.006013,
+ -0.87412,-0.480551,0.070606,0.040688,0.047531,-0.006013,
+ -0.860572,-0.473103,0.18865,0.040706,0.04754,-0.005861,
+ -0.88858,-0.418134,0.18865,0.040212,0.04851,-0.005861,
+ -0.87412,-0.480551,0.070606,0.040688,0.047531,-0.006013,
+ -0.88858,-0.418134,0.18865,0.040212,0.04851,-0.005861,
+ -0.902569,-0.424717,0.070606,0.040194,0.048502,-0.006013,
+ -0.842221,-0.53449,0.070606,0.041243,0.046593,-0.006013,
+ -0.829167,-0.526206,0.18865,0.04126,0.046604,-0.005861,
+ -0.860572,-0.473103,0.18865,0.040706,0.04754,-0.005861,
+ -0.842221,-0.53449,0.070606,0.041243,0.046593,-0.006013,
+ -0.860572,-0.473103,0.18865,0.040706,0.04754,-0.005861,
+ -0.87412,-0.480551,0.070606,0.040688,0.047531,-0.006013,
+ -0.806998,-0.586318,0.070606,0.041855,0.045692,-0.006013,
+ -0.794491,-0.577231,0.18865,0.041871,0.045704,-0.005861,
+ -0.829167,-0.526206,0.18865,0.04126,0.046604,-0.005861,
+ -0.806998,-0.586318,0.070606,0.041855,0.045692,-0.006013,
+ -0.829167,-0.526206,0.18865,0.04126,0.046604,-0.005861,
+ -0.842221,-0.53449,0.070606,0.041243,0.046593,-0.006013,
+ -0.76859,-0.635833,0.070606,0.042523,0.044831,-0.006013,
+ -0.756678,-0.625979,0.18865,0.042538,0.044844,-0.005861,
+ -0.794491,-0.577231,0.18865,0.041871,0.045704,-0.005861,
+ -0.76859,-0.635833,0.070606,0.042523,0.044831,-0.006013,
+ -0.794491,-0.577231,0.18865,0.041871,0.045704,-0.005861,
+ -0.806998,-0.586318,0.070606,0.041855,0.045692,-0.006013,
+ -0.727149,-0.682839,0.070606,0.043243,0.044014,-0.006013,
+ -0.715879,-0.672256,0.18865,0.043258,0.044028,-0.005861,
+ -0.756678,-0.625979,0.18865,0.042538,0.044844,-0.005861,
+ -0.727149,-0.682839,0.070606,0.043243,0.044014,-0.006013,
+ -0.756678,-0.625979,0.18865,0.042538,0.044844,-0.005861,
+ -0.76859,-0.635833,0.070606,0.042523,0.044831,-0.006013,
+ -0.682839,-0.727149,0.070606,0.044014,0.043243,-0.006013,
+ -0.672256,-0.715879,0.18865,0.044028,0.043258,-0.005861,
+ -0.715879,-0.672256,0.18865,0.043258,0.044028,-0.005861,
+ -0.682839,-0.727149,0.070606,0.044014,0.043243,-0.006013,
+ -0.715879,-0.672256,0.18865,0.043258,0.044028,-0.005861,
+ -0.727149,-0.682839,0.070606,0.043243,0.044014,-0.006013,
+ -0.635833,-0.76859,0.070606,0.044831,0.042523,-0.006013,
+ -0.625979,-0.756678,0.18865,0.044844,0.042538,-0.005861,
+ -0.672256,-0.715879,0.18865,0.044028,0.043258,-0.005861,
+ -0.635833,-0.76859,0.070606,0.044831,0.042523,-0.006013,
+ -0.672256,-0.715879,0.18865,0.044028,0.043258,-0.005861,
+ -0.682839,-0.727149,0.070606,0.044014,0.043243,-0.006013,
+ -0.586318,-0.806998,0.070606,0.045692,0.041855,-0.006013,
+ -0.577231,-0.794491,0.18865,0.045704,0.041871,-0.005861,
+ -0.625979,-0.756678,0.18865,0.044844,0.042538,-0.005861,
+ -0.586318,-0.806998,0.070606,0.045692,0.041855,-0.006013,
+ -0.625979,-0.756678,0.18865,0.044844,0.042538,-0.005861,
+ -0.635833,-0.76859,0.070606,0.044831,0.042523,-0.006013,
+ -0.53449,-0.842221,0.070606,0.046593,0.041243,-0.006013,
+ -0.526206,-0.829167,0.18865,0.046604,0.04126,-0.005861,
+ -0.577231,-0.794491,0.18865,0.045704,0.041871,-0.005861,
+ -0.53449,-0.842221,0.070606,0.046593,0.041243,-0.006013,
+ -0.577231,-0.794491,0.18865,0.045704,0.041871,-0.005861,
+ -0.586318,-0.806998,0.070606,0.045692,0.041855,-0.006013,
+ -0.480551,-0.87412,0.070606,0.047531,0.040688,-0.006013,
+ -0.473103,-0.860572,0.18865,0.04754,0.040706,-0.005861,
+ -0.526206,-0.829167,0.18865,0.046604,0.04126,-0.005861,
+ -0.480551,-0.87412,0.070606,0.047531,0.040688,-0.006013,
+ -0.526206,-0.829167,0.18865,0.046604,0.04126,-0.005861,
+ -0.53449,-0.842221,0.070606,0.046593,0.041243,-0.006013,
+ -0.424717,-0.902569,0.070606,0.048502,0.040194,-0.006013,
+ -0.418134,-0.88858,0.18865,0.04851,0.040212,-0.005861,
+ -0.473103,-0.860572,0.18865,0.04754,0.040706,-0.005861,
+ -0.424717,-0.902569,0.070606,0.048502,0.040194,-0.006013,
+ -0.473103,-0.860572,0.18865,0.04754,0.040706,-0.005861,
+ -0.480551,-0.87412,0.070606,0.047531,0.040688,-0.006013,
+ -0.367206,-0.927456,0.070606,0.049501,0.039761,-0.006013,
+ -0.361515,-0.913082,0.18865,0.049509,0.03978,-0.005861,
+ -0.418134,-0.88858,0.18865,0.04851,0.040212,-0.005861,
+ -0.367206,-0.927456,0.070606,0.049501,0.039761,-0.006013,
+ -0.418134,-0.88858,0.18865,0.04851,0.040212,-0.005861,
+ -0.424717,-0.902569,0.070606,0.048502,0.040194,-0.006013,
+ -0.308246,-0.948683,0.070606,0.050526,0.039392,-0.006013,
+ -0.303468,-0.93398,0.18865,0.050532,0.039411,-0.005861,
+ -0.361515,-0.913082,0.18865,0.049509,0.03978,-0.005861,
+ -0.308246,-0.948683,0.070606,0.050526,0.039392,-0.006013,
+ -0.361515,-0.913082,0.18865,0.049509,0.03978,-0.005861,
+ -0.367206,-0.927456,0.070606,0.049501,0.039761,-0.006013,
+ -0.248069,-0.966166,0.070606,0.051572,0.039088,-0.006013,
+ -0.244224,-0.951192,0.18865,0.051578,0.039107,-0.005861,
+ -0.303468,-0.93398,0.18865,0.050532,0.039411,-0.005861,
+ -0.248069,-0.966166,0.070606,0.051572,0.039088,-0.006013,
+ -0.303468,-0.93398,0.18865,0.050532,0.039411,-0.005861,
+ -0.308246,-0.948683,0.070606,0.050526,0.039392,-0.006013,
+ -0.186914,-0.979836,0.070606,0.052636,0.03885,-0.006013,
+ -0.184017,-0.96465,0.18865,0.05264,0.03887,-0.005861,
+ -0.244224,-0.951192,0.18865,0.051578,0.039107,-0.005861,
+ -0.186914,-0.979836,0.070606,0.052636,0.03885,-0.006013,
+ -0.244224,-0.951192,0.18865,0.051578,0.039107,-0.005861,
+ -0.248069,-0.966166,0.070606,0.051572,0.039088,-0.006013,
+ -0.12502,-0.989639,0.070606,0.053712,0.03868,-0.006013,
+ -0.123083,-0.974301,0.18865,0.053714,0.0387,-0.005861,
+ -0.184017,-0.96465,0.18865,0.05264,0.03887,-0.005861,
+ -0.12502,-0.989639,0.070606,0.053712,0.03868,-0.006013,
+ -0.184017,-0.96465,0.18865,0.05264,0.03887,-0.005861,
+ -0.186914,-0.979836,0.070606,0.052636,0.03885,-0.006013,
+ -0.062634,-0.995536,0.070606,0.054796,0.038577,-0.006013,
+ -0.061663,-0.980106,0.18865,0.054798,0.038597,-0.005861,
+ -0.123083,-0.974301,0.18865,0.053714,0.0387,-0.005861,
+ -0.062634,-0.995536,0.070606,0.054796,0.038577,-0.006013,
+ -0.123083,-0.974301,0.18865,0.053714,0.0387,-0.005861,
+ -0.12502,-0.989639,0.070606,0.053712,0.03868,-0.006013,
+ 0,-0.997504,0.070606,0.055885,0.038543,-0.006013,
+ 0,-0.982044,0.18865,0.055885,0.038563,-0.005861,
+ -0.061663,-0.980106,0.18865,0.054798,0.038597,-0.005861,
+ 0,-0.997504,0.070606,0.055885,0.038543,-0.006013,
+ -0.061663,-0.980106,0.18865,0.054798,0.038597,-0.005861,
+ -0.062634,-0.995536,0.070606,0.054796,0.038577,-0.006013,
+ 0.062634,-0.995536,0.070606,0.056974,0.038577,-0.006013,
+ 0.061663,-0.980106,0.18865,0.056973,0.038597,-0.005861,
+ 0,-0.982044,0.18865,0.055885,0.038563,-0.005861,
+ 0.062634,-0.995536,0.070606,0.056974,0.038577,-0.006013,
+ 0,-0.982044,0.18865,0.055885,0.038563,-0.005861,
+ 0,-0.997504,0.070606,0.055885,0.038543,-0.006013,
+ 0.12502,-0.989639,0.070606,0.058059,0.03868,-0.006013,
+ 0.123083,-0.974301,0.18865,0.058056,0.0387,-0.005861,
+ 0.061663,-0.980106,0.18865,0.056973,0.038597,-0.005861,
+ 0.12502,-0.989639,0.070606,0.058059,0.03868,-0.006013,
+ 0.061663,-0.980106,0.18865,0.056973,0.038597,-0.005861,
+ 0.062634,-0.995536,0.070606,0.056974,0.038577,-0.006013,
+ 0.186914,-0.979836,0.070606,0.059135,0.03885,-0.006013,
+ 0.184017,-0.96465,0.18865,0.059131,0.03887,-0.005861,
+ 0.123083,-0.974301,0.18865,0.058056,0.0387,-0.005861,
+ 0.186914,-0.979836,0.070606,0.059135,0.03885,-0.006013,
+ 0.123083,-0.974301,0.18865,0.058056,0.0387,-0.005861,
+ 0.12502,-0.989639,0.070606,0.058059,0.03868,-0.006013,
+ 0.248069,-0.966166,0.070606,0.060198,0.039088,-0.006013,
+ 0.244224,-0.951192,0.18865,0.060193,0.039107,-0.005861,
+ 0.184017,-0.96465,0.18865,0.059131,0.03887,-0.005861,
+ 0.248069,-0.966166,0.070606,0.060198,0.039088,-0.006013,
+ 0.184017,-0.96465,0.18865,0.059131,0.03887,-0.005861,
+ 0.186914,-0.979836,0.070606,0.059135,0.03885,-0.006013,
+ 0.308246,-0.948683,0.070606,0.061244,0.039392,-0.006013,
+ 0.303468,-0.93398,0.18865,0.061238,0.039411,-0.005861,
+ 0.244224,-0.951192,0.18865,0.060193,0.039107,-0.005861,
+ 0.308246,-0.948683,0.070606,0.061244,0.039392,-0.006013,
+ 0.244224,-0.951192,0.18865,0.060193,0.039107,-0.005861,
+ 0.248069,-0.966166,0.070606,0.060198,0.039088,-0.006013,
+ 0.367206,-0.927456,0.070606,0.062269,0.039761,-0.006013,
+ 0.361515,-0.913082,0.18865,0.062262,0.03978,-0.005861,
+ 0.303468,-0.93398,0.18865,0.061238,0.039411,-0.005861,
+ 0.367206,-0.927456,0.070606,0.062269,0.039761,-0.006013,
+ 0.303468,-0.93398,0.18865,0.061238,0.039411,-0.005861,
+ 0.308246,-0.948683,0.070606,0.061244,0.039392,-0.006013,
+ 0.424717,-0.902569,0.070606,0.063269,0.040194,-0.006013,
+ 0.418134,-0.88858,0.18865,0.063261,0.040212,-0.005861,
+ 0.361515,-0.913082,0.18865,0.062262,0.03978,-0.005861,
+ 0.424717,-0.902569,0.070606,0.063269,0.040194,-0.006013,
+ 0.361515,-0.913082,0.18865,0.062262,0.03978,-0.005861,
+ 0.367206,-0.927456,0.070606,0.062269,0.039761,-0.006013,
+ 0.480551,-0.87412,0.070606,0.06424,0.040688,-0.006013,
+ 0.473103,-0.860572,0.18865,0.06423,0.040706,-0.005861,
+ 0.418134,-0.88858,0.18865,0.063261,0.040212,-0.005861,
+ 0.480551,-0.87412,0.070606,0.06424,0.040688,-0.006013,
+ 0.418134,-0.88858,0.18865,0.063261,0.040212,-0.005861,
+ 0.424717,-0.902569,0.070606,0.063269,0.040194,-0.006013,
+ 0.53449,-0.842221,0.070606,0.065178,0.041243,-0.006013,
+ 0.526206,-0.829167,0.18865,0.065167,0.04126,-0.005861,
+ 0.473103,-0.860572,0.18865,0.06423,0.040706,-0.005861,
+ 0.53449,-0.842221,0.070606,0.065178,0.041243,-0.006013,
+ 0.473103,-0.860572,0.18865,0.06423,0.040706,-0.005861,
+ 0.480551,-0.87412,0.070606,0.06424,0.040688,-0.006013,
+ 0.586318,-0.806998,0.070606,0.066079,0.041855,-0.006013,
+ 0.577231,-0.794491,0.18865,0.066067,0.041871,-0.005861,
+ 0.526206,-0.829167,0.18865,0.065167,0.04126,-0.005861,
+ 0.586318,-0.806998,0.070606,0.066079,0.041855,-0.006013,
+ 0.526206,-0.829167,0.18865,0.065167,0.04126,-0.005861,
+ 0.53449,-0.842221,0.070606,0.065178,0.041243,-0.006013,
+ 0.635833,-0.76859,0.070606,0.06694,0.042523,-0.006013,
+ 0.625979,-0.756678,0.18865,0.066927,0.042538,-0.005861,
+ 0.577231,-0.794491,0.18865,0.066067,0.041871,-0.005861,
+ 0.635833,-0.76859,0.070606,0.06694,0.042523,-0.006013,
+ 0.577231,-0.794491,0.18865,0.066067,0.041871,-0.005861,
+ 0.586318,-0.806998,0.070606,0.066079,0.041855,-0.006013,
+ 0.682839,-0.727149,0.070606,0.067757,0.043243,-0.006013,
+ 0.672256,-0.715879,0.18865,0.067743,0.043258,-0.005861,
+ 0.625979,-0.756678,0.18865,0.066927,0.042538,-0.005861,
+ 0.682839,-0.727149,0.070606,0.067757,0.043243,-0.006013,
+ 0.625979,-0.756678,0.18865,0.066927,0.042538,-0.005861,
+ 0.635833,-0.76859,0.070606,0.06694,0.042523,-0.006013,
+ 0.727149,-0.682839,0.070606,0.068527,0.044014,-0.006013,
+ 0.715879,-0.672256,0.18865,0.068512,0.044028,-0.005861,
+ 0.672256,-0.715879,0.18865,0.067743,0.043258,-0.005861,
+ 0.727149,-0.682839,0.070606,0.068527,0.044014,-0.006013,
+ 0.672256,-0.715879,0.18865,0.067743,0.043258,-0.005861,
+ 0.682839,-0.727149,0.070606,0.067757,0.043243,-0.006013,
+ 0.76859,-0.635833,0.070606,0.069247,0.044831,-0.006013,
+ 0.756678,-0.625979,0.18865,0.069232,0.044844,-0.005861,
+ 0.715879,-0.672256,0.18865,0.068512,0.044028,-0.005861,
+ 0.76859,-0.635833,0.070606,0.069247,0.044831,-0.006013,
+ 0.715879,-0.672256,0.18865,0.068512,0.044028,-0.005861,
+ 0.727149,-0.682839,0.070606,0.068527,0.044014,-0.006013,
+ 0.806998,-0.586318,0.070606,0.069915,0.045692,-0.006013,
+ 0.794491,-0.577231,0.18865,0.069899,0.045704,-0.005861,
+ 0.756678,-0.625979,0.18865,0.069232,0.044844,-0.005861,
+ 0.806998,-0.586318,0.070606,0.069915,0.045692,-0.006013,
+ 0.756678,-0.625979,0.18865,0.069232,0.044844,-0.005861,
+ 0.76859,-0.635833,0.070606,0.069247,0.044831,-0.006013,
+ 0.842221,-0.53449,0.070606,0.070528,0.046593,-0.006013,
+ 0.829167,-0.526206,0.18865,0.070511,0.046604,-0.005861,
+ 0.794491,-0.577231,0.18865,0.069899,0.045704,-0.005861,
+ 0.842221,-0.53449,0.070606,0.070528,0.046593,-0.006013,
+ 0.794491,-0.577231,0.18865,0.069899,0.045704,-0.005861,
+ 0.806998,-0.586318,0.070606,0.069915,0.045692,-0.006013,
+ 0.87412,-0.480551,0.070606,0.071082,0.047531,-0.006013,
+ 0.860572,-0.473103,0.18865,0.071065,0.04754,-0.005861,
+ 0.829167,-0.526206,0.18865,0.070511,0.046604,-0.005861,
+ 0.87412,-0.480551,0.070606,0.071082,0.047531,-0.006013,
+ 0.829167,-0.526206,0.18865,0.070511,0.046604,-0.005861,
+ 0.842221,-0.53449,0.070606,0.070528,0.046593,-0.006013,
+ 0.902569,-0.424717,0.070606,0.071577,0.048502,-0.006013,
+ 0.88858,-0.418134,0.18865,0.071559,0.04851,-0.005861,
+ 0.860572,-0.473103,0.18865,0.071065,0.04754,-0.005861,
+ 0.902569,-0.424717,0.070606,0.071577,0.048502,-0.006013,
+ 0.860572,-0.473103,0.18865,0.071065,0.04754,-0.005861,
+ 0.87412,-0.480551,0.070606,0.071082,0.047531,-0.006013,
+ 0.927456,-0.367206,0.070606,0.07201,0.049501,-0.006013,
+ 0.913082,-0.361515,0.18865,0.071991,0.049509,-0.005861,
+ 0.88858,-0.418134,0.18865,0.071559,0.04851,-0.005861,
+ 0.927456,-0.367206,0.070606,0.07201,0.049501,-0.006013,
+ 0.88858,-0.418134,0.18865,0.071559,0.04851,-0.005861,
+ 0.902569,-0.424717,0.070606,0.071577,0.048502,-0.006013,
+ 0.948683,-0.308246,0.070606,0.072379,0.050526,-0.006013,
+ 0.93398,-0.303468,0.18865,0.07236,0.050532,-0.005861,
+ 0.913082,-0.361515,0.18865,0.071991,0.049509,-0.005861,
+ 0.948683,-0.308246,0.070606,0.072379,0.050526,-0.006013,
+ 0.913082,-0.361515,0.18865,0.071991,0.049509,-0.005861,
+ 0.927456,-0.367206,0.070606,0.07201,0.049501,-0.006013,
+ 0.966166,-0.248069,0.070606,0.072682,0.051572,-0.006013,
+ 0.951192,-0.244224,0.18865,0.072663,0.051578,-0.005861,
+ 0.93398,-0.303468,0.18865,0.07236,0.050532,-0.005861,
+ 0.966166,-0.248069,0.070606,0.072682,0.051572,-0.006013,
+ 0.93398,-0.303468,0.18865,0.07236,0.050532,-0.005861,
+ 0.948683,-0.308246,0.070606,0.072379,0.050526,-0.006013,
+ 0.979836,-0.186914,0.070606,0.07292,0.052636,-0.006013,
+ 0.96465,-0.184017,0.18865,0.072901,0.05264,-0.005861,
+ 0.951192,-0.244224,0.18865,0.072663,0.051578,-0.005861,
+ 0.979836,-0.186914,0.070606,0.07292,0.052636,-0.006013,
+ 0.951192,-0.244224,0.18865,0.072663,0.051578,-0.005861,
+ 0.966166,-0.248069,0.070606,0.072682,0.051572,-0.006013,
+ 0.989639,-0.12502,0.070606,0.073091,0.053712,-0.006013,
+ 0.974301,-0.123083,0.18865,0.073071,0.053714,-0.005861,
+ 0.96465,-0.184017,0.18865,0.072901,0.05264,-0.005861,
+ 0.989639,-0.12502,0.070606,0.073091,0.053712,-0.006013,
+ 0.96465,-0.184017,0.18865,0.072901,0.05264,-0.005861,
+ 0.979836,-0.186914,0.070606,0.07292,0.052636,-0.006013,
+ 0.995536,-0.062634,0.070606,0.073193,0.054796,-0.006013,
+ 0.980106,-0.061663,0.18865,0.073173,0.054798,-0.005861,
+ 0.974301,-0.123083,0.18865,0.073071,0.053714,-0.005861,
+ 0.995536,-0.062634,0.070606,0.073193,0.054796,-0.006013,
+ 0.974301,-0.123083,0.18865,0.073071,0.053714,-0.005861,
+ 0.989639,-0.12502,0.070606,0.073091,0.053712,-0.006013,
+ 0.997504,0,0.070606,0.073227,0.055885,-0.006013,
+ 0.982044,0,0.18865,0.073207,0.055885,-0.005861,
+ 0.980106,-0.061663,0.18865,0.073173,0.054798,-0.005861,
+ 0.997504,0,0.070606,0.073227,0.055885,-0.006013,
+ 0.980106,-0.061663,0.18865,0.073173,0.054798,-0.005861,
+ 0.995536,-0.062634,0.070606,0.073193,0.054796,-0.006013,
+ 0.995536,0.062634,0.070606,0.073193,0.056974,-0.006013,
+ 0.980106,0.061663,0.18865,0.073173,0.056973,-0.005861,
+ 0.982044,0,0.18865,0.073207,0.055885,-0.005861,
+ 0.995536,0.062634,0.070606,0.073193,0.056974,-0.006013,
+ 0.982044,0,0.18865,0.073207,0.055885,-0.005861,
+ 0.997504,0,0.070606,0.073227,0.055885,-0.006013,
+ 0.989639,0.12502,0.070606,0.073091,0.058059,-0.006013,
+ 0.974301,0.123083,0.18865,0.073071,0.058056,-0.005861,
+ 0.980106,0.061663,0.18865,0.073173,0.056973,-0.005861,
+ 0.989639,0.12502,0.070606,0.073091,0.058059,-0.006013,
+ 0.980106,0.061663,0.18865,0.073173,0.056973,-0.005861,
+ 0.995536,0.062634,0.070606,0.073193,0.056974,-0.006013,
+ 0.979836,0.186914,0.070606,0.07292,0.059135,-0.006013,
+ 0.96465,0.184017,0.18865,0.072901,0.059131,-0.005861,
+ 0.974301,0.123083,0.18865,0.073071,0.058056,-0.005861,
+ 0.979836,0.186914,0.070606,0.07292,0.059135,-0.006013,
+ 0.974301,0.123083,0.18865,0.073071,0.058056,-0.005861,
+ 0.989639,0.12502,0.070606,0.073091,0.058059,-0.006013,
+ 0.966166,0.248069,0.070606,0.072682,0.060198,-0.006013,
+ 0.951192,0.244224,0.18865,0.072663,0.060193,-0.005861,
+ 0.96465,0.184017,0.18865,0.072901,0.059131,-0.005861,
+ 0.966166,0.248069,0.070606,0.072682,0.060198,-0.006013,
+ 0.96465,0.184017,0.18865,0.072901,0.059131,-0.005861,
+ 0.979836,0.186914,0.070606,0.07292,0.059135,-0.006013,
+ 0.948683,0.308246,0.070606,0.072379,0.061244,-0.006013,
+ 0.93398,0.303468,0.18865,0.07236,0.061238,-0.005861,
+ 0.951192,0.244224,0.18865,0.072663,0.060193,-0.005861,
+ 0.948683,0.308246,0.070606,0.072379,0.061244,-0.006013,
+ 0.951192,0.244224,0.18865,0.072663,0.060193,-0.005861,
+ 0.966166,0.248069,0.070606,0.072682,0.060198,-0.006013,
+ 0.927456,0.367206,0.070606,0.07201,0.062269,-0.006013,
+ 0.913082,0.361515,0.18865,0.071991,0.062262,-0.005861,
+ 0.93398,0.303468,0.18865,0.07236,0.061238,-0.005861,
+ 0.927456,0.367206,0.070606,0.07201,0.062269,-0.006013,
+ 0.93398,0.303468,0.18865,0.07236,0.061238,-0.005861,
+ 0.948683,0.308246,0.070606,0.072379,0.061244,-0.006013,
+ 0.902569,0.424717,0.070606,0.071577,0.063269,-0.006013,
+ 0.88858,0.418134,0.18865,0.071559,0.063261,-0.005861,
+ 0.913082,0.361515,0.18865,0.071991,0.062262,-0.005861,
+ 0.902569,0.424717,0.070606,0.071577,0.063269,-0.006013,
+ 0.913082,0.361515,0.18865,0.071991,0.062262,-0.005861,
+ 0.927456,0.367206,0.070606,0.07201,0.062269,-0.006013,
+ 0.87412,0.480551,0.070606,0.071082,0.06424,-0.006013,
+ 0.860572,0.473103,0.18865,0.071065,0.06423,-0.005861,
+ 0.88858,0.418134,0.18865,0.071559,0.063261,-0.005861,
+ 0.87412,0.480551,0.070606,0.071082,0.06424,-0.006013,
+ 0.88858,0.418134,0.18865,0.071559,0.063261,-0.005861,
+ 0.902569,0.424717,0.070606,0.071577,0.063269,-0.006013,
+ 0.842221,0.53449,0.070606,0.070528,0.065178,-0.006013,
+ 0.829167,0.526206,0.18865,0.070511,0.065167,-0.005861,
+ 0.860572,0.473103,0.18865,0.071065,0.06423,-0.005861,
+ 0.842221,0.53449,0.070606,0.070528,0.065178,-0.006013,
+ 0.860572,0.473103,0.18865,0.071065,0.06423,-0.005861,
+ 0.87412,0.480551,0.070606,0.071082,0.06424,-0.006013,
+ 0.806998,0.586318,0.070606,0.069915,0.066079,-0.006013,
+ 0.794491,0.577231,0.18865,0.069899,0.066067,-0.005861,
+ 0.829167,0.526206,0.18865,0.070511,0.065167,-0.005861,
+ 0.806998,0.586318,0.070606,0.069915,0.066079,-0.006013,
+ 0.829167,0.526206,0.18865,0.070511,0.065167,-0.005861,
+ 0.842221,0.53449,0.070606,0.070528,0.065178,-0.006013,
+ 0.76859,0.635833,0.070606,0.069247,0.06694,-0.006013,
+ 0.756678,0.625979,0.18865,0.069232,0.066927,-0.005861,
+ 0.794491,0.577231,0.18865,0.069899,0.066067,-0.005861,
+ 0.76859,0.635833,0.070606,0.069247,0.06694,-0.006013,
+ 0.794491,0.577231,0.18865,0.069899,0.066067,-0.005861,
+ 0.806998,0.586318,0.070606,0.069915,0.066079,-0.006013,
+ 0.727149,0.682839,0.070606,0.068527,0.067757,-0.006013,
+ 0.715879,0.672256,0.18865,0.068512,0.067743,-0.005861,
+ 0.756678,0.625979,0.18865,0.069232,0.066927,-0.005861,
+ 0.727149,0.682839,0.070606,0.068527,0.067757,-0.006013,
+ 0.756678,0.625979,0.18865,0.069232,0.066927,-0.005861,
+ 0.76859,0.635833,0.070606,0.069247,0.06694,-0.006013,
+ 0.682839,0.727149,0.070606,0.067757,0.068527,-0.006013,
+ 0.672256,0.715879,0.18865,0.067743,0.068512,-0.005861,
+ 0.715879,0.672256,0.18865,0.068512,0.067743,-0.005861,
+ 0.682839,0.727149,0.070606,0.067757,0.068527,-0.006013,
+ 0.715879,0.672256,0.18865,0.068512,0.067743,-0.005861,
+ 0.727149,0.682839,0.070606,0.068527,0.067757,-0.006013,
+ 0.635833,0.76859,0.070606,0.06694,0.069247,-0.006013,
+ 0.625979,0.756678,0.18865,0.066927,0.069232,-0.005861,
+ 0.672256,0.715879,0.18865,0.067743,0.068512,-0.005861,
+ 0.635833,0.76859,0.070606,0.06694,0.069247,-0.006013,
+ 0.672256,0.715879,0.18865,0.067743,0.068512,-0.005861,
+ 0.682839,0.727149,0.070606,0.067757,0.068527,-0.006013,
+ 0.586318,0.806998,0.070606,0.066079,0.069915,-0.006013,
+ 0.577231,0.794491,0.18865,0.066067,0.069899,-0.005861,
+ 0.625979,0.756678,0.18865,0.066927,0.069232,-0.005861,
+ 0.586318,0.806998,0.070606,0.066079,0.069915,-0.006013,
+ 0.625979,0.756678,0.18865,0.066927,0.069232,-0.005861,
+ 0.635833,0.76859,0.070606,0.06694,0.069247,-0.006013,
+ 0.53449,0.842221,0.070606,0.065178,0.070528,-0.006013,
+ 0.526206,0.829167,0.18865,0.065167,0.070511,-0.005861,
+ 0.577231,0.794491,0.18865,0.066067,0.069899,-0.005861,
+ 0.53449,0.842221,0.070606,0.065178,0.070528,-0.006013,
+ 0.577231,0.794491,0.18865,0.066067,0.069899,-0.005861,
+ 0.586318,0.806998,0.070606,0.066079,0.069915,-0.006013,
+ 0.480551,0.87412,0.070606,0.06424,0.071082,-0.006013,
+ 0.473103,0.860572,0.18865,0.06423,0.071065,-0.005861,
+ 0.526206,0.829167,0.18865,0.065167,0.070511,-0.005861,
+ 0.480551,0.87412,0.070606,0.06424,0.071082,-0.006013,
+ 0.526206,0.829167,0.18865,0.065167,0.070511,-0.005861,
+ 0.53449,0.842221,0.070606,0.065178,0.070528,-0.006013,
+ 0.424717,0.902569,0.070606,0.063269,0.071577,-0.006013,
+ 0.418134,0.88858,0.18865,0.063261,0.071559,-0.005861,
+ 0.473103,0.860572,0.18865,0.06423,0.071065,-0.005861,
+ 0.424717,0.902569,0.070606,0.063269,0.071577,-0.006013,
+ 0.473103,0.860572,0.18865,0.06423,0.071065,-0.005861,
+ 0.480551,0.87412,0.070606,0.06424,0.071082,-0.006013,
+ 0.367206,0.927456,0.070606,0.062269,0.07201,-0.006013,
+ 0.361515,0.913082,0.18865,0.062262,0.071991,-0.005861,
+ 0.418134,0.88858,0.18865,0.063261,0.071559,-0.005861,
+ 0.367206,0.927456,0.070606,0.062269,0.07201,-0.006013,
+ 0.418134,0.88858,0.18865,0.063261,0.071559,-0.005861,
+ 0.424717,0.902569,0.070606,0.063269,0.071577,-0.006013,
+ 0.308246,0.948683,0.070606,0.061244,0.072379,-0.006013,
+ 0.303468,0.93398,0.18865,0.061238,0.07236,-0.005861,
+ 0.361515,0.913082,0.18865,0.062262,0.071991,-0.005861,
+ 0.308246,0.948683,0.070606,0.061244,0.072379,-0.006013,
+ 0.361515,0.913082,0.18865,0.062262,0.071991,-0.005861,
+ 0.367206,0.927456,0.070606,0.062269,0.07201,-0.006013,
+ 0.248069,0.966166,0.070606,0.060198,0.072682,-0.006013,
+ 0.244224,0.951192,0.18865,0.060193,0.072663,-0.005861,
+ 0.303468,0.93398,0.18865,0.061238,0.07236,-0.005861,
+ 0.248069,0.966166,0.070606,0.060198,0.072682,-0.006013,
+ 0.303468,0.93398,0.18865,0.061238,0.07236,-0.005861,
+ 0.308246,0.948683,0.070606,0.061244,0.072379,-0.006013,
+ 0.186914,0.979836,0.070606,0.059135,0.07292,-0.006013,
+ 0.184017,0.96465,0.18865,0.059131,0.072901,-0.005861,
+ 0.244224,0.951192,0.18865,0.060193,0.072663,-0.005861,
+ 0.186914,0.979836,0.070606,0.059135,0.07292,-0.006013,
+ 0.244224,0.951192,0.18865,0.060193,0.072663,-0.005861,
+ 0.248069,0.966166,0.070606,0.060198,0.072682,-0.006013,
+ 0.12502,0.989639,0.070606,0.058059,0.073091,-0.006013,
+ 0.123083,0.974301,0.18865,0.058056,0.073071,-0.005861,
+ 0.184017,0.96465,0.18865,0.059131,0.072901,-0.005861,
+ 0.12502,0.989639,0.070606,0.058059,0.073091,-0.006013,
+ 0.184017,0.96465,0.18865,0.059131,0.072901,-0.005861,
+ 0.186914,0.979836,0.070606,0.059135,0.07292,-0.006013,
+ 0.062634,0.995536,0.070606,0.056974,0.073193,-0.006013,
+ 0.061663,0.980106,0.18865,0.056973,0.073173,-0.005861,
+ 0.123083,0.974301,0.18865,0.058056,0.073071,-0.005861,
+ 0.062634,0.995536,0.070606,0.056974,0.073193,-0.006013,
+ 0.123083,0.974301,0.18865,0.058056,0.073071,-0.005861,
+ 0.12502,0.989639,0.070606,0.058059,0.073091,-0.006013,
+ 0,0.997504,0.070606,0.055885,0.073227,-0.006013,
+ 0,0.982044,0.18865,0.055885,0.073207,-0.005861,
+ 0.061663,0.980106,0.18865,0.056973,0.073173,-0.005861,
+ 0,0.997504,0.070606,0.055885,0.073227,-0.006013,
+ 0.061663,0.980106,0.18865,0.056973,0.073173,-0.005861,
+ 0.062634,0.995536,0.070606,0.056974,0.073193,-0.006013,
+ -0.062634,0.995536,0.070606,0.054796,0.073193,-0.006013,
+ -0.061663,0.980106,0.18865,0.054798,0.073173,-0.005861,
+ 0,0.982044,0.18865,0.055885,0.073207,-0.005861,
+ -0.062634,0.995536,0.070606,0.054796,0.073193,-0.006013,
+ 0,0.982044,0.18865,0.055885,0.073207,-0.005861,
+ 0,0.997504,0.070606,0.055885,0.073227,-0.006013,
+ -0.12502,0.989639,0.070606,0.053712,0.073091,-0.006013,
+ -0.123083,0.974301,0.18865,0.053714,0.073071,-0.005861,
+ -0.061663,0.980106,0.18865,0.054798,0.073173,-0.005861,
+ -0.12502,0.989639,0.070606,0.053712,0.073091,-0.006013,
+ -0.061663,0.980106,0.18865,0.054798,0.073173,-0.005861,
+ -0.062634,0.995536,0.070606,0.054796,0.073193,-0.006013,
+ -0.186914,0.979836,0.070606,0.052636,0.07292,-0.006013,
+ -0.184017,0.96465,0.18865,0.05264,0.072901,-0.005861,
+ -0.123083,0.974301,0.18865,0.053714,0.073071,-0.005861,
+ -0.186914,0.979836,0.070606,0.052636,0.07292,-0.006013,
+ -0.123083,0.974301,0.18865,0.053714,0.073071,-0.005861,
+ -0.12502,0.989639,0.070606,0.053712,0.073091,-0.006013,
+ -0.248069,0.966166,0.070606,0.051572,0.072682,-0.006013,
+ -0.244224,0.951192,0.18865,0.051578,0.072663,-0.005861,
+ -0.184017,0.96465,0.18865,0.05264,0.072901,-0.005861,
+ -0.248069,0.966166,0.070606,0.051572,0.072682,-0.006013,
+ -0.184017,0.96465,0.18865,0.05264,0.072901,-0.005861,
+ -0.186914,0.979836,0.070606,0.052636,0.07292,-0.006013,
+ -0.308246,0.948683,0.070606,0.050526,0.072379,-0.006013,
+ -0.303468,0.93398,0.18865,0.050532,0.07236,-0.005861,
+ -0.244224,0.951192,0.18865,0.051578,0.072663,-0.005861,
+ -0.308246,0.948683,0.070606,0.050526,0.072379,-0.006013,
+ -0.244224,0.951192,0.18865,0.051578,0.072663,-0.005861,
+ -0.248069,0.966166,0.070606,0.051572,0.072682,-0.006013,
+ -0.367206,0.927456,0.070606,0.049501,0.07201,-0.006013,
+ -0.361515,0.913082,0.18865,0.049509,0.071991,-0.005861,
+ -0.303468,0.93398,0.18865,0.050532,0.07236,-0.005861,
+ -0.367206,0.927456,0.070606,0.049501,0.07201,-0.006013,
+ -0.303468,0.93398,0.18865,0.050532,0.07236,-0.005861,
+ -0.308246,0.948683,0.070606,0.050526,0.072379,-0.006013,
+ -0.424717,0.902569,0.070606,0.048502,0.071577,-0.006013,
+ -0.418134,0.88858,0.18865,0.04851,0.071559,-0.005861,
+ -0.361515,0.913082,0.18865,0.049509,0.071991,-0.005861,
+ -0.424717,0.902569,0.070606,0.048502,0.071577,-0.006013,
+ -0.361515,0.913082,0.18865,0.049509,0.071991,-0.005861,
+ -0.367206,0.927456,0.070606,0.049501,0.07201,-0.006013,
+ -0.480551,0.87412,0.070606,0.047531,0.071082,-0.006013,
+ -0.473103,0.860572,0.18865,0.04754,0.071065,-0.005861,
+ -0.418134,0.88858,0.18865,0.04851,0.071559,-0.005861,
+ -0.480551,0.87412,0.070606,0.047531,0.071082,-0.006013,
+ -0.418134,0.88858,0.18865,0.04851,0.071559,-0.005861,
+ -0.424717,0.902569,0.070606,0.048502,0.071577,-0.006013,
+ -0.53449,0.842221,0.070606,0.046593,0.070528,-0.006013,
+ -0.526206,0.829167,0.18865,0.046604,0.070511,-0.005861,
+ -0.473103,0.860572,0.18865,0.04754,0.071065,-0.005861,
+ -0.53449,0.842221,0.070606,0.046593,0.070528,-0.006013,
+ -0.473103,0.860572,0.18865,0.04754,0.071065,-0.005861,
+ -0.480551,0.87412,0.070606,0.047531,0.071082,-0.006013,
+ -0.586318,0.806998,0.070606,0.045692,0.069915,-0.006013,
+ -0.577231,0.794491,0.18865,0.045704,0.069899,-0.005861,
+ -0.526206,0.829167,0.18865,0.046604,0.070511,-0.005861,
+ -0.586318,0.806998,0.070606,0.045692,0.069915,-0.006013,
+ -0.526206,0.829167,0.18865,0.046604,0.070511,-0.005861,
+ -0.53449,0.842221,0.070606,0.046593,0.070528,-0.006013,
+ -0.635833,0.76859,0.070606,0.044831,0.069247,-0.006013,
+ -0.625979,0.756678,0.18865,0.044844,0.069232,-0.005861,
+ -0.577231,0.794491,0.18865,0.045704,0.069899,-0.005861,
+ -0.635833,0.76859,0.070606,0.044831,0.069247,-0.006013,
+ -0.577231,0.794491,0.18865,0.045704,0.069899,-0.005861,
+ -0.586318,0.806998,0.070606,0.045692,0.069915,-0.006013,
+ -0.682839,0.727149,0.070606,0.044014,0.068527,-0.006013,
+ -0.672256,0.715879,0.18865,0.044028,0.068512,-0.005861,
+ -0.625979,0.756678,0.18865,0.044844,0.069232,-0.005861,
+ -0.682839,0.727149,0.070606,0.044014,0.068527,-0.006013,
+ -0.625979,0.756678,0.18865,0.044844,0.069232,-0.005861,
+ -0.635833,0.76859,0.070606,0.044831,0.069247,-0.006013,
+ -0.727149,0.682839,0.070606,0.043243,0.067757,-0.006013,
+ -0.715879,0.672256,0.18865,0.043258,0.067743,-0.005861,
+ -0.672256,0.715879,0.18865,0.044028,0.068512,-0.005861,
+ -0.727149,0.682839,0.070606,0.043243,0.067757,-0.006013,
+ -0.672256,0.715879,0.18865,0.044028,0.068512,-0.005861,
+ -0.682839,0.727149,0.070606,0.044014,0.068527,-0.006013,
+ -0.76859,0.635833,0.070606,0.042523,0.06694,-0.006013,
+ -0.756678,0.625979,0.18865,0.042538,0.066927,-0.005861,
+ -0.715879,0.672256,0.18865,0.043258,0.067743,-0.005861,
+ -0.76859,0.635833,0.070606,0.042523,0.06694,-0.006013,
+ -0.715879,0.672256,0.18865,0.043258,0.067743,-0.005861,
+ -0.727149,0.682839,0.070606,0.043243,0.067757,-0.006013,
+ -0.806998,0.586318,0.070606,0.041855,0.066079,-0.006013,
+ -0.794491,0.577231,0.18865,0.041871,0.066067,-0.005861,
+ -0.756678,0.625979,0.18865,0.042538,0.066927,-0.005861,
+ -0.806998,0.586318,0.070606,0.041855,0.066079,-0.006013,
+ -0.756678,0.625979,0.18865,0.042538,0.066927,-0.005861,
+ -0.76859,0.635833,0.070606,0.042523,0.06694,-0.006013,
+ -0.842221,0.53449,0.070606,0.041243,0.065178,-0.006013,
+ -0.829167,0.526206,0.18865,0.04126,0.065167,-0.005861,
+ -0.794491,0.577231,0.18865,0.041871,0.066067,-0.005861,
+ -0.842221,0.53449,0.070606,0.041243,0.065178,-0.006013,
+ -0.794491,0.577231,0.18865,0.041871,0.066067,-0.005861,
+ -0.806998,0.586318,0.070606,0.041855,0.066079,-0.006013,
+ -0.87412,0.480551,0.070606,0.040688,0.06424,-0.006013,
+ -0.860572,0.473103,0.18865,0.040706,0.06423,-0.005861,
+ -0.829167,0.526206,0.18865,0.04126,0.065167,-0.005861,
+ -0.87412,0.480551,0.070606,0.040688,0.06424,-0.006013,
+ -0.829167,0.526206,0.18865,0.04126,0.065167,-0.005861,
+ -0.842221,0.53449,0.070606,0.041243,0.065178,-0.006013,
+ -0.902569,0.424717,0.070606,0.040194,0.063269,-0.006013,
+ -0.88858,0.418134,0.18865,0.040212,0.063261,-0.005861,
+ -0.860572,0.473103,0.18865,0.040706,0.06423,-0.005861,
+ -0.902569,0.424717,0.070606,0.040194,0.063269,-0.006013,
+ -0.860572,0.473103,0.18865,0.040706,0.06423,-0.005861,
+ -0.87412,0.480551,0.070606,0.040688,0.06424,-0.006013,
+ -0.927456,0.367206,0.070606,0.039761,0.062269,-0.006013,
+ -0.913082,0.361515,0.18865,0.03978,0.062262,-0.005861,
+ -0.88858,0.418134,0.18865,0.040212,0.063261,-0.005861,
+ -0.927456,0.367206,0.070606,0.039761,0.062269,-0.006013,
+ -0.88858,0.418134,0.18865,0.040212,0.063261,-0.005861,
+ -0.902569,0.424717,0.070606,0.040194,0.063269,-0.006013,
+ -0.948683,0.308246,0.070606,0.039392,0.061244,-0.006013,
+ -0.93398,0.303468,0.18865,0.039411,0.061238,-0.005861,
+ -0.913082,0.361515,0.18865,0.03978,0.062262,-0.005861,
+ -0.948683,0.308246,0.070606,0.039392,0.061244,-0.006013,
+ -0.913082,0.361515,0.18865,0.03978,0.062262,-0.005861,
+ -0.927456,0.367206,0.070606,0.039761,0.062269,-0.006013,
+ -0.966166,0.248069,0.070606,0.039088,0.060198,-0.006013,
+ -0.951192,0.244224,0.18865,0.039107,0.060193,-0.005861,
+ -0.93398,0.303468,0.18865,0.039411,0.061238,-0.005861,
+ -0.966166,0.248069,0.070606,0.039088,0.060198,-0.006013,
+ -0.93398,0.303468,0.18865,0.039411,0.061238,-0.005861,
+ -0.948683,0.308246,0.070606,0.039392,0.061244,-0.006013,
+ -0.979836,0.186914,0.070606,0.03885,0.059135,-0.006013,
+ -0.96465,0.184017,0.18865,0.03887,0.059131,-0.005861,
+ -0.951192,0.244224,0.18865,0.039107,0.060193,-0.005861,
+ -0.979836,0.186914,0.070606,0.03885,0.059135,-0.006013,
+ -0.951192,0.244224,0.18865,0.039107,0.060193,-0.005861,
+ -0.966166,0.248069,0.070606,0.039088,0.060198,-0.006013,
+ -0.989639,0.12502,0.070606,0.03868,0.058059,-0.006013,
+ -0.974301,0.123083,0.18865,0.0387,0.058056,-0.005861,
+ -0.96465,0.184017,0.18865,0.03887,0.059131,-0.005861,
+ -0.989639,0.12502,0.070606,0.03868,0.058059,-0.006013,
+ -0.96465,0.184017,0.18865,0.03887,0.059131,-0.005861,
+ -0.979836,0.186914,0.070606,0.03885,0.059135,-0.006013,
+ -0.995536,0.062634,0.070606,0.038577,0.056974,-0.006013,
+ -0.980106,0.061663,0.18865,0.038597,0.056973,-0.005861,
+ -0.974301,0.123083,0.18865,0.0387,0.058056,-0.005861,
+ -0.995536,0.062634,0.070606,0.038577,0.056974,-0.006013,
+ -0.974301,0.123083,0.18865,0.0387,0.058056,-0.005861,
+ -0.989639,0.12502,0.070606,0.03868,0.058059,-0.006013,
+ -0.997504,0,0.070606,0.038543,0.055885,-0.006013,
+ -0.982044,0,0.18865,0.038563,0.055885,-0.005861,
+ -0.980106,0.061663,0.18865,0.038597,0.056973,-0.005861,
+ -0.997504,0,0.070606,0.038543,0.055885,-0.006013,
+ -0.980106,0.061663,0.18865,0.038597,0.056973,-0.005861,
+ -0.995536,0.062634,0.070606,0.038577,0.056974,-0.006013,
+ -0.995536,-0.062634,0.070606,0.038577,0.054796,-0.006013,
+ -0.980106,-0.061663,0.18865,0.038597,0.054798,-0.005861,
+ -0.982044,0,0.18865,0.038563,0.055885,-0.005861,
+ -0.995536,-0.062634,0.070606,0.038577,0.054796,-0.006013,
+ -0.982044,0,0.18865,0.038563,0.055885,-0.005861,
+ -0.997504,0,0.070606,0.038543,0.055885,-0.006013,
+ -0.989639,-0.12502,0.070606,0.03868,0.053712,-0.006013,
+ -0.974301,-0.123083,0.18865,0.0387,0.053714,-0.005861,
+ -0.980106,-0.061663,0.18865,0.038597,0.054798,-0.005861,
+ -0.989639,-0.12502,0.070606,0.03868,0.053712,-0.006013,
+ -0.980106,-0.061663,0.18865,0.038597,0.054798,-0.005861,
+ -0.995536,-0.062634,0.070606,0.038577,0.054796,-0.006013,
+ -0.979836,-0.186914,0.070606,0.03885,0.052636,-0.006013,
+ -0.96465,-0.184017,0.18865,0.03887,0.05264,-0.005861,
+ -0.974301,-0.123083,0.18865,0.0387,0.053714,-0.005861,
+ -0.979836,-0.186914,0.070606,0.03885,0.052636,-0.006013,
+ -0.974301,-0.123083,0.18865,0.0387,0.053714,-0.005861,
+ -0.989639,-0.12502,0.070606,0.03868,0.053712,-0.006013,
+ -0.966166,-0.248069,0.070606,0.039088,0.051572,-0.006013,
+ -0.951192,-0.244224,0.18865,0.039107,0.051578,-0.005861,
+ -0.96465,-0.184017,0.18865,0.03887,0.05264,-0.005861,
+ -0.966166,-0.248069,0.070606,0.039088,0.051572,-0.006013,
+ -0.96465,-0.184017,0.18865,0.03887,0.05264,-0.005861,
+ -0.979836,-0.186914,0.070606,0.03885,0.052636,-0.006013,
+ -0.948683,-0.308246,0.070606,0.039392,0.050526,-0.006013,
+ -0.93398,-0.303468,0.18865,0.039411,0.050532,-0.005861,
+ -0.951192,-0.244224,0.18865,0.039107,0.051578,-0.005861,
+ -0.948683,-0.308246,0.070606,0.039392,0.050526,-0.006013,
+ -0.951192,-0.244224,0.18865,0.039107,0.051578,-0.005861,
+ -0.966166,-0.248069,0.070606,0.039088,0.051572,-0.006013,
+ -0.93398,-0.303468,0.18865,0.039411,0.050532,-0.005861,
+ -0.906039,-0.29439,0.304021,0.039447,0.050544,-0.005713,
+ -0.922736,-0.236918,0.304021,0.039144,0.051587,-0.005713,
+ -0.93398,-0.303468,0.18865,0.039411,0.050532,-0.005861,
+ -0.922736,-0.236918,0.304021,0.039144,0.051587,-0.005713,
+ -0.951192,-0.244224,0.18865,0.039107,0.051578,-0.005861,
+ -0.913082,-0.361515,0.18865,0.03978,0.049509,-0.005861,
+ -0.885766,-0.3507,0.304021,0.039815,0.049522,-0.005713,
+ -0.906039,-0.29439,0.304021,0.039447,0.050544,-0.005713,
+ -0.913082,-0.361515,0.18865,0.03978,0.049509,-0.005861,
+ -0.906039,-0.29439,0.304021,0.039447,0.050544,-0.005713,
+ -0.93398,-0.303468,0.18865,0.039411,0.050532,-0.005861,
+ -0.88858,-0.418134,0.18865,0.040212,0.04851,-0.005861,
+ -0.861997,-0.405625,0.304021,0.040246,0.048526,-0.005713,
+ -0.885766,-0.3507,0.304021,0.039815,0.049522,-0.005713,
+ -0.88858,-0.418134,0.18865,0.040212,0.04851,-0.005861,
+ -0.885766,-0.3507,0.304021,0.039815,0.049522,-0.005713,
+ -0.913082,-0.361515,0.18865,0.03978,0.049509,-0.005861,
+ -0.860572,-0.473103,0.18865,0.040706,0.04754,-0.005861,
+ -0.834827,-0.45895,0.304021,0.040739,0.047559,-0.005713,
+ -0.861997,-0.405625,0.304021,0.040246,0.048526,-0.005713,
+ -0.860572,-0.473103,0.18865,0.040706,0.04754,-0.005861,
+ -0.861997,-0.405625,0.304021,0.040246,0.048526,-0.005713,
+ -0.88858,-0.418134,0.18865,0.040212,0.04851,-0.005861,
+ -0.829167,-0.526206,0.18865,0.04126,0.046604,-0.005861,
+ -0.804362,-0.510464,0.304021,0.041292,0.046624,-0.005713,
+ -0.834827,-0.45895,0.304021,0.040739,0.047559,-0.005713,
+ -0.829167,-0.526206,0.18865,0.04126,0.046604,-0.005861,
+ -0.834827,-0.45895,0.304021,0.040739,0.047559,-0.005713,
+ -0.860572,-0.473103,0.18865,0.040706,0.04754,-0.005861,
+ -0.794491,-0.577231,0.18865,0.041871,0.045704,-0.005861,
+ -0.770723,-0.559963,0.304021,0.041902,0.045726,-0.005713,
+ -0.804362,-0.510464,0.304021,0.041292,0.046624,-0.005713,
+ -0.794491,-0.577231,0.18865,0.041871,0.045704,-0.005861,
+ -0.804362,-0.510464,0.304021,0.041292,0.046624,-0.005713,
+ -0.829167,-0.526206,0.18865,0.04126,0.046604,-0.005861,
+ -0.756678,-0.625979,0.18865,0.042538,0.044844,-0.005861,
+ -0.734041,-0.607252,0.304021,0.042568,0.044868,-0.005713,
+ -0.770723,-0.559963,0.304021,0.041902,0.045726,-0.005713,
+ -0.756678,-0.625979,0.18865,0.042538,0.044844,-0.005861,
+ -0.770723,-0.559963,0.304021,0.041902,0.045726,-0.005713,
+ -0.794491,-0.577231,0.18865,0.041871,0.045704,-0.005861,
+ -0.715879,-0.672256,0.18865,0.043258,0.044028,-0.005861,
+ -0.694463,-0.652144,0.304021,0.043286,0.044053,-0.005713,
+ -0.734041,-0.607252,0.304021,0.042568,0.044868,-0.005713,
+ -0.715879,-0.672256,0.18865,0.043258,0.044028,-0.005861,
+ -0.734041,-0.607252,0.304021,0.042568,0.044868,-0.005713,
+ -0.756678,-0.625979,0.18865,0.042538,0.044844,-0.005861,
+ -0.672256,-0.715879,0.18865,0.044028,0.043258,-0.005861,
+ -0.652144,-0.694463,0.304021,0.044053,0.043286,-0.005713,
+ -0.694463,-0.652144,0.304021,0.043286,0.044053,-0.005713,
+ -0.672256,-0.715879,0.18865,0.044028,0.043258,-0.005861,
+ -0.694463,-0.652144,0.304021,0.043286,0.044053,-0.005713,
+ -0.715879,-0.672256,0.18865,0.043258,0.044028,-0.005861,
+ -0.625979,-0.756678,0.18865,0.044844,0.042538,-0.005861,
+ -0.607252,-0.734041,0.304021,0.044868,0.042568,-0.005713,
+ -0.652144,-0.694463,0.304021,0.044053,0.043286,-0.005713,
+ -0.625979,-0.756678,0.18865,0.044844,0.042538,-0.005861,
+ -0.652144,-0.694463,0.304021,0.044053,0.043286,-0.005713,
+ -0.672256,-0.715879,0.18865,0.044028,0.043258,-0.005861,
+ -0.577231,-0.794491,0.18865,0.045704,0.041871,-0.005861,
+ -0.559963,-0.770723,0.304021,0.045726,0.041902,-0.005713,
+ -0.607252,-0.734041,0.304021,0.044868,0.042568,-0.005713,
+ -0.577231,-0.794491,0.18865,0.045704,0.041871,-0.005861,
+ -0.607252,-0.734041,0.304021,0.044868,0.042568,-0.005713,
+ -0.625979,-0.756678,0.18865,0.044844,0.042538,-0.005861,
+ -0.526206,-0.829167,0.18865,0.046604,0.04126,-0.005861,
+ -0.510464,-0.804362,0.304021,0.046624,0.041292,-0.005713,
+ -0.559963,-0.770723,0.304021,0.045726,0.041902,-0.005713,
+ -0.526206,-0.829167,0.18865,0.046604,0.04126,-0.005861,
+ -0.559963,-0.770723,0.304021,0.045726,0.041902,-0.005713,
+ -0.577231,-0.794491,0.18865,0.045704,0.041871,-0.005861,
+ -0.473103,-0.860572,0.18865,0.04754,0.040706,-0.005861,
+ -0.45895,-0.834827,0.304021,0.047559,0.040739,-0.005713,
+ -0.510464,-0.804362,0.304021,0.046624,0.041292,-0.005713,
+ -0.473103,-0.860572,0.18865,0.04754,0.040706,-0.005861,
+ -0.510464,-0.804362,0.304021,0.046624,0.041292,-0.005713,
+ -0.526206,-0.829167,0.18865,0.046604,0.04126,-0.005861,
+ -0.418134,-0.88858,0.18865,0.04851,0.040212,-0.005861,
+ -0.405625,-0.861997,0.304021,0.048526,0.040246,-0.005713,
+ -0.45895,-0.834827,0.304021,0.047559,0.040739,-0.005713,
+ -0.418134,-0.88858,0.18865,0.04851,0.040212,-0.005861,
+ -0.45895,-0.834827,0.304021,0.047559,0.040739,-0.005713,
+ -0.473103,-0.860572,0.18865,0.04754,0.040706,-0.005861,
+ -0.361515,-0.913082,0.18865,0.049509,0.03978,-0.005861,
+ -0.3507,-0.885766,0.304021,0.049522,0.039815,-0.005713,
+ -0.405625,-0.861997,0.304021,0.048526,0.040246,-0.005713,
+ -0.361515,-0.913082,0.18865,0.049509,0.03978,-0.005861,
+ -0.405625,-0.861997,0.304021,0.048526,0.040246,-0.005713,
+ -0.418134,-0.88858,0.18865,0.04851,0.040212,-0.005861,
+ -0.303468,-0.93398,0.18865,0.050532,0.039411,-0.005861,
+ -0.29439,-0.906039,0.304021,0.050544,0.039447,-0.005713,
+ -0.3507,-0.885766,0.304021,0.049522,0.039815,-0.005713,
+ -0.303468,-0.93398,0.18865,0.050532,0.039411,-0.005861,
+ -0.3507,-0.885766,0.304021,0.049522,0.039815,-0.005713,
+ -0.361515,-0.913082,0.18865,0.049509,0.03978,-0.005861,
+ -0.244224,-0.951192,0.18865,0.051578,0.039107,-0.005861,
+ -0.236918,-0.922736,0.304021,0.051587,0.039144,-0.005713,
+ -0.29439,-0.906039,0.304021,0.050544,0.039447,-0.005713,
+ -0.244224,-0.951192,0.18865,0.051578,0.039107,-0.005861,
+ -0.29439,-0.906039,0.304021,0.050544,0.039447,-0.005713,
+ -0.303468,-0.93398,0.18865,0.050532,0.039411,-0.005861,
+ -0.184017,-0.96465,0.18865,0.05264,0.03887,-0.005861,
+ -0.178512,-0.935791,0.304021,0.052646,0.038907,-0.005713,
+ -0.236918,-0.922736,0.304021,0.051587,0.039144,-0.005713,
+ -0.184017,-0.96465,0.18865,0.05264,0.03887,-0.005861,
+ -0.236918,-0.922736,0.304021,0.051587,0.039144,-0.005713,
+ -0.244224,-0.951192,0.18865,0.051578,0.039107,-0.005861,
+ -0.123083,-0.974301,0.18865,0.053714,0.0387,-0.005861,
+ -0.119401,-0.945153,0.304021,0.053719,0.038737,-0.005713,
+ -0.178512,-0.935791,0.304021,0.052646,0.038907,-0.005713,
+ -0.123083,-0.974301,0.18865,0.053714,0.0387,-0.005861,
+ -0.178512,-0.935791,0.304021,0.052646,0.038907,-0.005713,
+ -0.184017,-0.96465,0.18865,0.05264,0.03887,-0.005861,
+ -0.061663,-0.980106,0.18865,0.054798,0.038597,-0.005861,
+ -0.059818,-0.950786,0.304021,0.0548,0.038635,-0.005713,
+ -0.119401,-0.945153,0.304021,0.053719,0.038737,-0.005713,
+ -0.061663,-0.980106,0.18865,0.054798,0.038597,-0.005861,
+ -0.119401,-0.945153,0.304021,0.053719,0.038737,-0.005713,
+ -0.123083,-0.974301,0.18865,0.053714,0.0387,-0.005861,
+ 0,-0.982044,0.18865,0.055885,0.038563,-0.005861,
+ 0,-0.952665,0.304021,0.055885,0.038601,-0.005713,
+ -0.059818,-0.950786,0.304021,0.0548,0.038635,-0.005713,
+ 0,-0.982044,0.18865,0.055885,0.038563,-0.005861,
+ -0.059818,-0.950786,0.304021,0.0548,0.038635,-0.005713,
+ -0.061663,-0.980106,0.18865,0.054798,0.038597,-0.005861,
+ 0.061663,-0.980106,0.18865,0.056973,0.038597,-0.005861,
+ 0.059818,-0.950786,0.304021,0.056971,0.038635,-0.005713,
+ 0,-0.952665,0.304021,0.055885,0.038601,-0.005713,
+ 0.061663,-0.980106,0.18865,0.056973,0.038597,-0.005861,
+ 0,-0.952665,0.304021,0.055885,0.038601,-0.005713,
+ 0,-0.982044,0.18865,0.055885,0.038563,-0.005861,
+ 0.123083,-0.974301,0.18865,0.058056,0.0387,-0.005861,
+ 0.119401,-0.945153,0.304021,0.058052,0.038737,-0.005713,
+ 0.059818,-0.950786,0.304021,0.056971,0.038635,-0.005713,
+ 0.123083,-0.974301,0.18865,0.058056,0.0387,-0.005861,
+ 0.059818,-0.950786,0.304021,0.056971,0.038635,-0.005713,
+ 0.061663,-0.980106,0.18865,0.056973,0.038597,-0.005861,
+ 0.184017,-0.96465,0.18865,0.059131,0.03887,-0.005861,
+ 0.178512,-0.935791,0.304021,0.059124,0.038907,-0.005713,
+ 0.119401,-0.945153,0.304021,0.058052,0.038737,-0.005713,
+ 0.184017,-0.96465,0.18865,0.059131,0.03887,-0.005861,
+ 0.119401,-0.945153,0.304021,0.058052,0.038737,-0.005713,
+ 0.123083,-0.974301,0.18865,0.058056,0.0387,-0.005861,
+ 0.244224,-0.951192,0.18865,0.060193,0.039107,-0.005861,
+ 0.236918,-0.922736,0.304021,0.060184,0.039144,-0.005713,
+ 0.178512,-0.935791,0.304021,0.059124,0.038907,-0.005713,
+ 0.244224,-0.951192,0.18865,0.060193,0.039107,-0.005861,
+ 0.178512,-0.935791,0.304021,0.059124,0.038907,-0.005713,
+ 0.184017,-0.96465,0.18865,0.059131,0.03887,-0.005861,
+ 0.303468,-0.93398,0.18865,0.061238,0.039411,-0.005861,
+ 0.29439,-0.906039,0.304021,0.061226,0.039447,-0.005713,
+ 0.236918,-0.922736,0.304021,0.060184,0.039144,-0.005713,
+ 0.303468,-0.93398,0.18865,0.061238,0.039411,-0.005861,
+ 0.236918,-0.922736,0.304021,0.060184,0.039144,-0.005713,
+ 0.244224,-0.951192,0.18865,0.060193,0.039107,-0.005861,
+ 0.361515,-0.913082,0.18865,0.062262,0.03978,-0.005861,
+ 0.3507,-0.885766,0.304021,0.062248,0.039815,-0.005713,
+ 0.29439,-0.906039,0.304021,0.061226,0.039447,-0.005713,
+ 0.361515,-0.913082,0.18865,0.062262,0.03978,-0.005861,
+ 0.29439,-0.906039,0.304021,0.061226,0.039447,-0.005713,
+ 0.303468,-0.93398,0.18865,0.061238,0.039411,-0.005861,
+ 0.418134,-0.88858,0.18865,0.063261,0.040212,-0.005861,
+ 0.405625,-0.861997,0.304021,0.063245,0.040246,-0.005713,
+ 0.3507,-0.885766,0.304021,0.062248,0.039815,-0.005713,
+ 0.418134,-0.88858,0.18865,0.063261,0.040212,-0.005861,
+ 0.3507,-0.885766,0.304021,0.062248,0.039815,-0.005713,
+ 0.361515,-0.913082,0.18865,0.062262,0.03978,-0.005861,
+ 0.473103,-0.860572,0.18865,0.06423,0.040706,-0.005861,
+ 0.45895,-0.834827,0.304021,0.064212,0.040739,-0.005713,
+ 0.405625,-0.861997,0.304021,0.063245,0.040246,-0.005713,
+ 0.473103,-0.860572,0.18865,0.06423,0.040706,-0.005861,
+ 0.405625,-0.861997,0.304021,0.063245,0.040246,-0.005713,
+ 0.418134,-0.88858,0.18865,0.063261,0.040212,-0.005861,
+ 0.526206,-0.829167,0.18865,0.065167,0.04126,-0.005861,
+ 0.510464,-0.804362,0.304021,0.065147,0.041292,-0.005713,
+ 0.45895,-0.834827,0.304021,0.064212,0.040739,-0.005713,
+ 0.526206,-0.829167,0.18865,0.065167,0.04126,-0.005861,
+ 0.45895,-0.834827,0.304021,0.064212,0.040739,-0.005713,
+ 0.473103,-0.860572,0.18865,0.06423,0.040706,-0.005861,
+ 0.577231,-0.794491,0.18865,0.066067,0.041871,-0.005861,
+ 0.559963,-0.770723,0.304021,0.066045,0.041902,-0.005713,
+ 0.510464,-0.804362,0.304021,0.065147,0.041292,-0.005713,
+ 0.577231,-0.794491,0.18865,0.066067,0.041871,-0.005861,
+ 0.510464,-0.804362,0.304021,0.065147,0.041292,-0.005713,
+ 0.526206,-0.829167,0.18865,0.065167,0.04126,-0.005861,
+ 0.625979,-0.756678,0.18865,0.066927,0.042538,-0.005861,
+ 0.607252,-0.734041,0.304021,0.066903,0.042568,-0.005713,
+ 0.559963,-0.770723,0.304021,0.066045,0.041902,-0.005713,
+ 0.625979,-0.756678,0.18865,0.066927,0.042538,-0.005861,
+ 0.559963,-0.770723,0.304021,0.066045,0.041902,-0.005713,
+ 0.577231,-0.794491,0.18865,0.066067,0.041871,-0.005861,
+ 0.672256,-0.715879,0.18865,0.067743,0.043258,-0.005861,
+ 0.652144,-0.694463,0.304021,0.067717,0.043286,-0.005713,
+ 0.607252,-0.734041,0.304021,0.066903,0.042568,-0.005713,
+ 0.672256,-0.715879,0.18865,0.067743,0.043258,-0.005861,
+ 0.607252,-0.734041,0.304021,0.066903,0.042568,-0.005713,
+ 0.625979,-0.756678,0.18865,0.066927,0.042538,-0.005861,
+ 0.715879,-0.672256,0.18865,0.068512,0.044028,-0.005861,
+ 0.694463,-0.652144,0.304021,0.068485,0.044053,-0.005713,
+ 0.652144,-0.694463,0.304021,0.067717,0.043286,-0.005713,
+ 0.715879,-0.672256,0.18865,0.068512,0.044028,-0.005861,
+ 0.652144,-0.694463,0.304021,0.067717,0.043286,-0.005713,
+ 0.672256,-0.715879,0.18865,0.067743,0.043258,-0.005861,
+ 0.756678,-0.625979,0.18865,0.069232,0.044844,-0.005861,
+ 0.734041,-0.607252,0.304021,0.069203,0.044868,-0.005713,
+ 0.694463,-0.652144,0.304021,0.068485,0.044053,-0.005713,
+ 0.756678,-0.625979,0.18865,0.069232,0.044844,-0.005861,
+ 0.694463,-0.652144,0.304021,0.068485,0.044053,-0.005713,
+ 0.715879,-0.672256,0.18865,0.068512,0.044028,-0.005861,
+ 0.794491,-0.577231,0.18865,0.069899,0.045704,-0.005861,
+ 0.770723,-0.559963,0.304021,0.069869,0.045726,-0.005713,
+ 0.734041,-0.607252,0.304021,0.069203,0.044868,-0.005713,
+ 0.794491,-0.577231,0.18865,0.069899,0.045704,-0.005861,
+ 0.734041,-0.607252,0.304021,0.069203,0.044868,-0.005713,
+ 0.756678,-0.625979,0.18865,0.069232,0.044844,-0.005861,
+ 0.829167,-0.526206,0.18865,0.070511,0.046604,-0.005861,
+ 0.804362,-0.510464,0.304021,0.070479,0.046624,-0.005713,
+ 0.770723,-0.559963,0.304021,0.069869,0.045726,-0.005713,
+ 0.829167,-0.526206,0.18865,0.070511,0.046604,-0.005861,
+ 0.770723,-0.559963,0.304021,0.069869,0.045726,-0.005713,
+ 0.794491,-0.577231,0.18865,0.069899,0.045704,-0.005861,
+ 0.860572,-0.473103,0.18865,0.071065,0.04754,-0.005861,
+ 0.834827,-0.45895,0.304021,0.071032,0.047559,-0.005713,
+ 0.804362,-0.510464,0.304021,0.070479,0.046624,-0.005713,
+ 0.860572,-0.473103,0.18865,0.071065,0.04754,-0.005861,
+ 0.804362,-0.510464,0.304021,0.070479,0.046624,-0.005713,
+ 0.829167,-0.526206,0.18865,0.070511,0.046604,-0.005861,
+ 0.88858,-0.418134,0.18865,0.071559,0.04851,-0.005861,
+ 0.861997,-0.405625,0.304021,0.071525,0.048526,-0.005713,
+ 0.834827,-0.45895,0.304021,0.071032,0.047559,-0.005713,
+ 0.88858,-0.418134,0.18865,0.071559,0.04851,-0.005861,
+ 0.834827,-0.45895,0.304021,0.071032,0.047559,-0.005713,
+ 0.860572,-0.473103,0.18865,0.071065,0.04754,-0.005861,
+ 0.913082,-0.361515,0.18865,0.071991,0.049509,-0.005861,
+ 0.885766,-0.3507,0.304021,0.071956,0.049522,-0.005713,
+ 0.861997,-0.405625,0.304021,0.071525,0.048526,-0.005713,
+ 0.913082,-0.361515,0.18865,0.071991,0.049509,-0.005861,
+ 0.861997,-0.405625,0.304021,0.071525,0.048526,-0.005713,
+ 0.88858,-0.418134,0.18865,0.071559,0.04851,-0.005861,
+ 0.93398,-0.303468,0.18865,0.07236,0.050532,-0.005861,
+ 0.906039,-0.29439,0.304021,0.072324,0.050544,-0.005713,
+ 0.885766,-0.3507,0.304021,0.071956,0.049522,-0.005713,
+ 0.93398,-0.303468,0.18865,0.07236,0.050532,-0.005861,
+ 0.885766,-0.3507,0.304021,0.071956,0.049522,-0.005713,
+ 0.913082,-0.361515,0.18865,0.071991,0.049509,-0.005861,
+ 0.951192,-0.244224,0.18865,0.072663,0.051578,-0.005861,
+ 0.922736,-0.236918,0.304021,0.072627,0.051587,-0.005713,
+ 0.906039,-0.29439,0.304021,0.072324,0.050544,-0.005713,
+ 0.951192,-0.244224,0.18865,0.072663,0.051578,-0.005861,
+ 0.906039,-0.29439,0.304021,0.072324,0.050544,-0.005713,
+ 0.93398,-0.303468,0.18865,0.07236,0.050532,-0.005861,
+ 0.96465,-0.184017,0.18865,0.072901,0.05264,-0.005861,
+ 0.935791,-0.178512,0.304021,0.072863,0.052646,-0.005713,
+ 0.922736,-0.236918,0.304021,0.072627,0.051587,-0.005713,
+ 0.96465,-0.184017,0.18865,0.072901,0.05264,-0.005861,
+ 0.922736,-0.236918,0.304021,0.072627,0.051587,-0.005713,
+ 0.951192,-0.244224,0.18865,0.072663,0.051578,-0.005861,
+ 0.974301,-0.123083,0.18865,0.073071,0.053714,-0.005861,
+ 0.945153,-0.119401,0.304021,0.073033,0.053719,-0.005713,
+ 0.935791,-0.178512,0.304021,0.072863,0.052646,-0.005713,
+ 0.974301,-0.123083,0.18865,0.073071,0.053714,-0.005861,
+ 0.935791,-0.178512,0.304021,0.072863,0.052646,-0.005713,
+ 0.96465,-0.184017,0.18865,0.072901,0.05264,-0.005861,
+ 0.980106,-0.061663,0.18865,0.073173,0.054798,-0.005861,
+ 0.950786,-0.059818,0.304021,0.073135,0.0548,-0.005713,
+ 0.945153,-0.119401,0.304021,0.073033,0.053719,-0.005713,
+ 0.980106,-0.061663,0.18865,0.073173,0.054798,-0.005861,
+ 0.945153,-0.119401,0.304021,0.073033,0.053719,-0.005713,
+ 0.974301,-0.123083,0.18865,0.073071,0.053714,-0.005861,
+ 0.982044,0,0.18865,0.073207,0.055885,-0.005861,
+ 0.952665,0,0.304021,0.073169,0.055885,-0.005713,
+ 0.950786,-0.059818,0.304021,0.073135,0.0548,-0.005713,
+ 0.982044,0,0.18865,0.073207,0.055885,-0.005861,
+ 0.950786,-0.059818,0.304021,0.073135,0.0548,-0.005713,
+ 0.980106,-0.061663,0.18865,0.073173,0.054798,-0.005861,
+ 0.980106,0.061663,0.18865,0.073173,0.056973,-0.005861,
+ 0.950786,0.059818,0.304021,0.073135,0.056971,-0.005713,
+ 0.952665,0,0.304021,0.073169,0.055885,-0.005713,
+ 0.980106,0.061663,0.18865,0.073173,0.056973,-0.005861,
+ 0.952665,0,0.304021,0.073169,0.055885,-0.005713,
+ 0.982044,0,0.18865,0.073207,0.055885,-0.005861,
+ 0.974301,0.123083,0.18865,0.073071,0.058056,-0.005861,
+ 0.945153,0.119401,0.304021,0.073033,0.058052,-0.005713,
+ 0.950786,0.059818,0.304021,0.073135,0.056971,-0.005713,
+ 0.974301,0.123083,0.18865,0.073071,0.058056,-0.005861,
+ 0.950786,0.059818,0.304021,0.073135,0.056971,-0.005713,
+ 0.980106,0.061663,0.18865,0.073173,0.056973,-0.005861,
+ 0.96465,0.184017,0.18865,0.072901,0.059131,-0.005861,
+ 0.935791,0.178512,0.304021,0.072863,0.059124,-0.005713,
+ 0.945153,0.119401,0.304021,0.073033,0.058052,-0.005713,
+ 0.96465,0.184017,0.18865,0.072901,0.059131,-0.005861,
+ 0.945153,0.119401,0.304021,0.073033,0.058052,-0.005713,
+ 0.974301,0.123083,0.18865,0.073071,0.058056,-0.005861,
+ 0.951192,0.244224,0.18865,0.072663,0.060193,-0.005861,
+ 0.922736,0.236918,0.304021,0.072627,0.060184,-0.005713,
+ 0.935791,0.178512,0.304021,0.072863,0.059124,-0.005713,
+ 0.951192,0.244224,0.18865,0.072663,0.060193,-0.005861,
+ 0.935791,0.178512,0.304021,0.072863,0.059124,-0.005713,
+ 0.96465,0.184017,0.18865,0.072901,0.059131,-0.005861,
+ 0.93398,0.303468,0.18865,0.07236,0.061238,-0.005861,
+ 0.906039,0.29439,0.304021,0.072324,0.061226,-0.005713,
+ 0.922736,0.236918,0.304021,0.072627,0.060184,-0.005713,
+ 0.93398,0.303468,0.18865,0.07236,0.061238,-0.005861,
+ 0.922736,0.236918,0.304021,0.072627,0.060184,-0.005713,
+ 0.951192,0.244224,0.18865,0.072663,0.060193,-0.005861,
+ 0.913082,0.361515,0.18865,0.071991,0.062262,-0.005861,
+ 0.885766,0.3507,0.304021,0.071956,0.062248,-0.005713,
+ 0.906039,0.29439,0.304021,0.072324,0.061226,-0.005713,
+ 0.913082,0.361515,0.18865,0.071991,0.062262,-0.005861,
+ 0.906039,0.29439,0.304021,0.072324,0.061226,-0.005713,
+ 0.93398,0.303468,0.18865,0.07236,0.061238,-0.005861,
+ 0.88858,0.418134,0.18865,0.071559,0.063261,-0.005861,
+ 0.861997,0.405625,0.304021,0.071525,0.063245,-0.005713,
+ 0.885766,0.3507,0.304021,0.071956,0.062248,-0.005713,
+ 0.88858,0.418134,0.18865,0.071559,0.063261,-0.005861,
+ 0.885766,0.3507,0.304021,0.071956,0.062248,-0.005713,
+ 0.913082,0.361515,0.18865,0.071991,0.062262,-0.005861,
+ 0.860572,0.473103,0.18865,0.071065,0.06423,-0.005861,
+ 0.834827,0.45895,0.304021,0.071032,0.064212,-0.005713,
+ 0.861997,0.405625,0.304021,0.071525,0.063245,-0.005713,
+ 0.860572,0.473103,0.18865,0.071065,0.06423,-0.005861,
+ 0.861997,0.405625,0.304021,0.071525,0.063245,-0.005713,
+ 0.88858,0.418134,0.18865,0.071559,0.063261,-0.005861,
+ 0.829167,0.526206,0.18865,0.070511,0.065167,-0.005861,
+ 0.804362,0.510464,0.304021,0.070479,0.065147,-0.005713,
+ 0.834827,0.45895,0.304021,0.071032,0.064212,-0.005713,
+ 0.829167,0.526206,0.18865,0.070511,0.065167,-0.005861,
+ 0.834827,0.45895,0.304021,0.071032,0.064212,-0.005713,
+ 0.860572,0.473103,0.18865,0.071065,0.06423,-0.005861,
+ 0.794491,0.577231,0.18865,0.069899,0.066067,-0.005861,
+ 0.770723,0.559963,0.304021,0.069869,0.066045,-0.005713,
+ 0.804362,0.510464,0.304021,0.070479,0.065147,-0.005713,
+ 0.794491,0.577231,0.18865,0.069899,0.066067,-0.005861,
+ 0.804362,0.510464,0.304021,0.070479,0.065147,-0.005713,
+ 0.829167,0.526206,0.18865,0.070511,0.065167,-0.005861,
+ 0.756678,0.625979,0.18865,0.069232,0.066927,-0.005861,
+ 0.734041,0.607252,0.304021,0.069203,0.066903,-0.005713,
+ 0.770723,0.559963,0.304021,0.069869,0.066045,-0.005713,
+ 0.756678,0.625979,0.18865,0.069232,0.066927,-0.005861,
+ 0.770723,0.559963,0.304021,0.069869,0.066045,-0.005713,
+ 0.794491,0.577231,0.18865,0.069899,0.066067,-0.005861,
+ 0.715879,0.672256,0.18865,0.068512,0.067743,-0.005861,
+ 0.694463,0.652144,0.304021,0.068485,0.067717,-0.005713,
+ 0.734041,0.607252,0.304021,0.069203,0.066903,-0.005713,
+ 0.715879,0.672256,0.18865,0.068512,0.067743,-0.005861,
+ 0.734041,0.607252,0.304021,0.069203,0.066903,-0.005713,
+ 0.756678,0.625979,0.18865,0.069232,0.066927,-0.005861,
+ 0.672256,0.715879,0.18865,0.067743,0.068512,-0.005861,
+ 0.652144,0.694463,0.304021,0.067717,0.068485,-0.005713,
+ 0.694463,0.652144,0.304021,0.068485,0.067717,-0.005713,
+ 0.672256,0.715879,0.18865,0.067743,0.068512,-0.005861,
+ 0.694463,0.652144,0.304021,0.068485,0.067717,-0.005713,
+ 0.715879,0.672256,0.18865,0.068512,0.067743,-0.005861,
+ 0.625979,0.756678,0.18865,0.066927,0.069232,-0.005861,
+ 0.607252,0.734041,0.304021,0.066903,0.069203,-0.005713,
+ 0.652144,0.694463,0.304021,0.067717,0.068485,-0.005713,
+ 0.625979,0.756678,0.18865,0.066927,0.069232,-0.005861,
+ 0.652144,0.694463,0.304021,0.067717,0.068485,-0.005713,
+ 0.672256,0.715879,0.18865,0.067743,0.068512,-0.005861,
+ 0.577231,0.794491,0.18865,0.066067,0.069899,-0.005861,
+ 0.559963,0.770723,0.304021,0.066045,0.069869,-0.005713,
+ 0.607252,0.734041,0.304021,0.066903,0.069203,-0.005713,
+ 0.577231,0.794491,0.18865,0.066067,0.069899,-0.005861,
+ 0.607252,0.734041,0.304021,0.066903,0.069203,-0.005713,
+ 0.625979,0.756678,0.18865,0.066927,0.069232,-0.005861,
+ 0.526206,0.829167,0.18865,0.065167,0.070511,-0.005861,
+ 0.510464,0.804362,0.304021,0.065147,0.070479,-0.005713,
+ 0.559963,0.770723,0.304021,0.066045,0.069869,-0.005713,
+ 0.526206,0.829167,0.18865,0.065167,0.070511,-0.005861,
+ 0.559963,0.770723,0.304021,0.066045,0.069869,-0.005713,
+ 0.577231,0.794491,0.18865,0.066067,0.069899,-0.005861,
+ 0.473103,0.860572,0.18865,0.06423,0.071065,-0.005861,
+ 0.45895,0.834827,0.304021,0.064212,0.071032,-0.005713,
+ 0.510464,0.804362,0.304021,0.065147,0.070479,-0.005713,
+ 0.473103,0.860572,0.18865,0.06423,0.071065,-0.005861,
+ 0.510464,0.804362,0.304021,0.065147,0.070479,-0.005713,
+ 0.526206,0.829167,0.18865,0.065167,0.070511,-0.005861,
+ 0.418134,0.88858,0.18865,0.063261,0.071559,-0.005861,
+ 0.405625,0.861997,0.304021,0.063245,0.071525,-0.005713,
+ 0.45895,0.834827,0.304021,0.064212,0.071032,-0.005713,
+ 0.418134,0.88858,0.18865,0.063261,0.071559,-0.005861,
+ 0.45895,0.834827,0.304021,0.064212,0.071032,-0.005713,
+ 0.473103,0.860572,0.18865,0.06423,0.071065,-0.005861,
+ 0.361515,0.913082,0.18865,0.062262,0.071991,-0.005861,
+ 0.3507,0.885766,0.304021,0.062248,0.071956,-0.005713,
+ 0.405625,0.861997,0.304021,0.063245,0.071525,-0.005713,
+ 0.361515,0.913082,0.18865,0.062262,0.071991,-0.005861,
+ 0.405625,0.861997,0.304021,0.063245,0.071525,-0.005713,
+ 0.418134,0.88858,0.18865,0.063261,0.071559,-0.005861,
+ 0.303468,0.93398,0.18865,0.061238,0.07236,-0.005861,
+ 0.29439,0.906039,0.304021,0.061226,0.072324,-0.005713,
+ 0.3507,0.885766,0.304021,0.062248,0.071956,-0.005713,
+ 0.303468,0.93398,0.18865,0.061238,0.07236,-0.005861,
+ 0.3507,0.885766,0.304021,0.062248,0.071956,-0.005713,
+ 0.361515,0.913082,0.18865,0.062262,0.071991,-0.005861,
+ 0.244224,0.951192,0.18865,0.060193,0.072663,-0.005861,
+ 0.236918,0.922736,0.304021,0.060184,0.072627,-0.005713,
+ 0.29439,0.906039,0.304021,0.061226,0.072324,-0.005713,
+ 0.244224,0.951192,0.18865,0.060193,0.072663,-0.005861,
+ 0.29439,0.906039,0.304021,0.061226,0.072324,-0.005713,
+ 0.303468,0.93398,0.18865,0.061238,0.07236,-0.005861,
+ 0.184017,0.96465,0.18865,0.059131,0.072901,-0.005861,
+ 0.178512,0.935791,0.304021,0.059124,0.072863,-0.005713,
+ 0.236918,0.922736,0.304021,0.060184,0.072627,-0.005713,
+ 0.184017,0.96465,0.18865,0.059131,0.072901,-0.005861,
+ 0.236918,0.922736,0.304021,0.060184,0.072627,-0.005713,
+ 0.244224,0.951192,0.18865,0.060193,0.072663,-0.005861,
+ 0.123083,0.974301,0.18865,0.058056,0.073071,-0.005861,
+ 0.119401,0.945153,0.304021,0.058052,0.073033,-0.005713,
+ 0.178512,0.935791,0.304021,0.059124,0.072863,-0.005713,
+ 0.123083,0.974301,0.18865,0.058056,0.073071,-0.005861,
+ 0.178512,0.935791,0.304021,0.059124,0.072863,-0.005713,
+ 0.184017,0.96465,0.18865,0.059131,0.072901,-0.005861,
+ 0.061663,0.980106,0.18865,0.056973,0.073173,-0.005861,
+ 0.059818,0.950786,0.304021,0.056971,0.073135,-0.005713,
+ 0.119401,0.945153,0.304021,0.058052,0.073033,-0.005713,
+ 0.061663,0.980106,0.18865,0.056973,0.073173,-0.005861,
+ 0.119401,0.945153,0.304021,0.058052,0.073033,-0.005713,
+ 0.123083,0.974301,0.18865,0.058056,0.073071,-0.005861,
+ 0,0.982044,0.18865,0.055885,0.073207,-0.005861,
+ 0,0.952665,0.304021,0.055885,0.073169,-0.005713,
+ 0.059818,0.950786,0.304021,0.056971,0.073135,-0.005713,
+ 0,0.982044,0.18865,0.055885,0.073207,-0.005861,
+ 0.059818,0.950786,0.304021,0.056971,0.073135,-0.005713,
+ 0.061663,0.980106,0.18865,0.056973,0.073173,-0.005861,
+ -0.061663,0.980106,0.18865,0.054798,0.073173,-0.005861,
+ -0.059818,0.950786,0.304021,0.0548,0.073135,-0.005713,
+ 0,0.952665,0.304021,0.055885,0.073169,-0.005713,
+ -0.061663,0.980106,0.18865,0.054798,0.073173,-0.005861,
+ 0,0.952665,0.304021,0.055885,0.073169,-0.005713,
+ 0,0.982044,0.18865,0.055885,0.073207,-0.005861,
+ -0.123083,0.974301,0.18865,0.053714,0.073071,-0.005861,
+ -0.119401,0.945153,0.304021,0.053719,0.073033,-0.005713,
+ -0.059818,0.950786,0.304021,0.0548,0.073135,-0.005713,
+ -0.123083,0.974301,0.18865,0.053714,0.073071,-0.005861,
+ -0.059818,0.950786,0.304021,0.0548,0.073135,-0.005713,
+ -0.061663,0.980106,0.18865,0.054798,0.073173,-0.005861,
+ -0.184017,0.96465,0.18865,0.05264,0.072901,-0.005861,
+ -0.178512,0.935791,0.304021,0.052646,0.072863,-0.005713,
+ -0.119401,0.945153,0.304021,0.053719,0.073033,-0.005713,
+ -0.184017,0.96465,0.18865,0.05264,0.072901,-0.005861,
+ -0.119401,0.945153,0.304021,0.053719,0.073033,-0.005713,
+ -0.123083,0.974301,0.18865,0.053714,0.073071,-0.005861,
+ -0.244224,0.951192,0.18865,0.051578,0.072663,-0.005861,
+ -0.236918,0.922736,0.304021,0.051587,0.072627,-0.005713,
+ -0.178512,0.935791,0.304021,0.052646,0.072863,-0.005713,
+ -0.244224,0.951192,0.18865,0.051578,0.072663,-0.005861,
+ -0.178512,0.935791,0.304021,0.052646,0.072863,-0.005713,
+ -0.184017,0.96465,0.18865,0.05264,0.072901,-0.005861,
+ -0.303468,0.93398,0.18865,0.050532,0.07236,-0.005861,
+ -0.29439,0.906039,0.304021,0.050544,0.072324,-0.005713,
+ -0.236918,0.922736,0.304021,0.051587,0.072627,-0.005713,
+ -0.303468,0.93398,0.18865,0.050532,0.07236,-0.005861,
+ -0.236918,0.922736,0.304021,0.051587,0.072627,-0.005713,
+ -0.244224,0.951192,0.18865,0.051578,0.072663,-0.005861,
+ -0.361515,0.913082,0.18865,0.049509,0.071991,-0.005861,
+ -0.3507,0.885766,0.304021,0.049522,0.071956,-0.005713,
+ -0.29439,0.906039,0.304021,0.050544,0.072324,-0.005713,
+ -0.361515,0.913082,0.18865,0.049509,0.071991,-0.005861,
+ -0.29439,0.906039,0.304021,0.050544,0.072324,-0.005713,
+ -0.303468,0.93398,0.18865,0.050532,0.07236,-0.005861,
+ -0.418134,0.88858,0.18865,0.04851,0.071559,-0.005861,
+ -0.405625,0.861997,0.304021,0.048526,0.071525,-0.005713,
+ -0.3507,0.885766,0.304021,0.049522,0.071956,-0.005713,
+ -0.418134,0.88858,0.18865,0.04851,0.071559,-0.005861,
+ -0.3507,0.885766,0.304021,0.049522,0.071956,-0.005713,
+ -0.361515,0.913082,0.18865,0.049509,0.071991,-0.005861,
+ -0.473103,0.860572,0.18865,0.04754,0.071065,-0.005861,
+ -0.45895,0.834827,0.304021,0.047559,0.071032,-0.005713,
+ -0.405625,0.861997,0.304021,0.048526,0.071525,-0.005713,
+ -0.473103,0.860572,0.18865,0.04754,0.071065,-0.005861,
+ -0.405625,0.861997,0.304021,0.048526,0.071525,-0.005713,
+ -0.418134,0.88858,0.18865,0.04851,0.071559,-0.005861,
+ -0.526206,0.829167,0.18865,0.046604,0.070511,-0.005861,
+ -0.510464,0.804362,0.304021,0.046624,0.070479,-0.005713,
+ -0.45895,0.834827,0.304021,0.047559,0.071032,-0.005713,
+ -0.526206,0.829167,0.18865,0.046604,0.070511,-0.005861,
+ -0.45895,0.834827,0.304021,0.047559,0.071032,-0.005713,
+ -0.473103,0.860572,0.18865,0.04754,0.071065,-0.005861,
+ -0.577231,0.794491,0.18865,0.045704,0.069899,-0.005861,
+ -0.559963,0.770723,0.304021,0.045726,0.069869,-0.005713,
+ -0.510464,0.804362,0.304021,0.046624,0.070479,-0.005713,
+ -0.577231,0.794491,0.18865,0.045704,0.069899,-0.005861,
+ -0.510464,0.804362,0.304021,0.046624,0.070479,-0.005713,
+ -0.526206,0.829167,0.18865,0.046604,0.070511,-0.005861,
+ -0.625979,0.756678,0.18865,0.044844,0.069232,-0.005861,
+ -0.607252,0.734041,0.304021,0.044868,0.069203,-0.005713,
+ -0.559963,0.770723,0.304021,0.045726,0.069869,-0.005713,
+ -0.625979,0.756678,0.18865,0.044844,0.069232,-0.005861,
+ -0.559963,0.770723,0.304021,0.045726,0.069869,-0.005713,
+ -0.577231,0.794491,0.18865,0.045704,0.069899,-0.005861,
+ -0.672256,0.715879,0.18865,0.044028,0.068512,-0.005861,
+ -0.652144,0.694463,0.304021,0.044053,0.068485,-0.005713,
+ -0.607252,0.734041,0.304021,0.044868,0.069203,-0.005713,
+ -0.672256,0.715879,0.18865,0.044028,0.068512,-0.005861,
+ -0.607252,0.734041,0.304021,0.044868,0.069203,-0.005713,
+ -0.625979,0.756678,0.18865,0.044844,0.069232,-0.005861,
+ -0.715879,0.672256,0.18865,0.043258,0.067743,-0.005861,
+ -0.694463,0.652144,0.304021,0.043286,0.067717,-0.005713,
+ -0.652144,0.694463,0.304021,0.044053,0.068485,-0.005713,
+ -0.715879,0.672256,0.18865,0.043258,0.067743,-0.005861,
+ -0.652144,0.694463,0.304021,0.044053,0.068485,-0.005713,
+ -0.672256,0.715879,0.18865,0.044028,0.068512,-0.005861,
+ -0.756678,0.625979,0.18865,0.042538,0.066927,-0.005861,
+ -0.734041,0.607252,0.304021,0.042568,0.066903,-0.005713,
+ -0.694463,0.652144,0.304021,0.043286,0.067717,-0.005713,
+ -0.756678,0.625979,0.18865,0.042538,0.066927,-0.005861,
+ -0.694463,0.652144,0.304021,0.043286,0.067717,-0.005713,
+ -0.715879,0.672256,0.18865,0.043258,0.067743,-0.005861,
+ -0.794491,0.577231,0.18865,0.041871,0.066067,-0.005861,
+ -0.770723,0.559963,0.304021,0.041902,0.066045,-0.005713,
+ -0.734041,0.607252,0.304021,0.042568,0.066903,-0.005713,
+ -0.794491,0.577231,0.18865,0.041871,0.066067,-0.005861,
+ -0.734041,0.607252,0.304021,0.042568,0.066903,-0.005713,
+ -0.756678,0.625979,0.18865,0.042538,0.066927,-0.005861,
+ -0.829167,0.526206,0.18865,0.04126,0.065167,-0.005861,
+ -0.804362,0.510464,0.304021,0.041292,0.065147,-0.005713,
+ -0.770723,0.559963,0.304021,0.041902,0.066045,-0.005713,
+ -0.829167,0.526206,0.18865,0.04126,0.065167,-0.005861,
+ -0.770723,0.559963,0.304021,0.041902,0.066045,-0.005713,
+ -0.794491,0.577231,0.18865,0.041871,0.066067,-0.005861,
+ -0.860572,0.473103,0.18865,0.040706,0.06423,-0.005861,
+ -0.834827,0.45895,0.304021,0.040739,0.064212,-0.005713,
+ -0.804362,0.510464,0.304021,0.041292,0.065147,-0.005713,
+ -0.860572,0.473103,0.18865,0.040706,0.06423,-0.005861,
+ -0.804362,0.510464,0.304021,0.041292,0.065147,-0.005713,
+ -0.829167,0.526206,0.18865,0.04126,0.065167,-0.005861,
+ -0.88858,0.418134,0.18865,0.040212,0.063261,-0.005861,
+ -0.861997,0.405625,0.304021,0.040246,0.063245,-0.005713,
+ -0.834827,0.45895,0.304021,0.040739,0.064212,-0.005713,
+ -0.88858,0.418134,0.18865,0.040212,0.063261,-0.005861,
+ -0.834827,0.45895,0.304021,0.040739,0.064212,-0.005713,
+ -0.860572,0.473103,0.18865,0.040706,0.06423,-0.005861,
+ -0.913082,0.361515,0.18865,0.03978,0.062262,-0.005861,
+ -0.885766,0.3507,0.304021,0.039815,0.062248,-0.005713,
+ -0.861997,0.405625,0.304021,0.040246,0.063245,-0.005713,
+ -0.913082,0.361515,0.18865,0.03978,0.062262,-0.005861,
+ -0.861997,0.405625,0.304021,0.040246,0.063245,-0.005713,
+ -0.88858,0.418134,0.18865,0.040212,0.063261,-0.005861,
+ -0.93398,0.303468,0.18865,0.039411,0.061238,-0.005861,
+ -0.906039,0.29439,0.304021,0.039447,0.061226,-0.005713,
+ -0.885766,0.3507,0.304021,0.039815,0.062248,-0.005713,
+ -0.93398,0.303468,0.18865,0.039411,0.061238,-0.005861,
+ -0.885766,0.3507,0.304021,0.039815,0.062248,-0.005713,
+ -0.913082,0.361515,0.18865,0.03978,0.062262,-0.005861,
+ -0.951192,0.244224,0.18865,0.039107,0.060193,-0.005861,
+ -0.922736,0.236918,0.304021,0.039144,0.060184,-0.005713,
+ -0.906039,0.29439,0.304021,0.039447,0.061226,-0.005713,
+ -0.951192,0.244224,0.18865,0.039107,0.060193,-0.005861,
+ -0.906039,0.29439,0.304021,0.039447,0.061226,-0.005713,
+ -0.93398,0.303468,0.18865,0.039411,0.061238,-0.005861,
+ -0.96465,0.184017,0.18865,0.03887,0.059131,-0.005861,
+ -0.935791,0.178512,0.304021,0.038907,0.059124,-0.005713,
+ -0.922736,0.236918,0.304021,0.039144,0.060184,-0.005713,
+ -0.96465,0.184017,0.18865,0.03887,0.059131,-0.005861,
+ -0.922736,0.236918,0.304021,0.039144,0.060184,-0.005713,
+ -0.951192,0.244224,0.18865,0.039107,0.060193,-0.005861,
+ -0.974301,0.123083,0.18865,0.0387,0.058056,-0.005861,
+ -0.945153,0.119401,0.304021,0.038737,0.058052,-0.005713,
+ -0.935791,0.178512,0.304021,0.038907,0.059124,-0.005713,
+ -0.974301,0.123083,0.18865,0.0387,0.058056,-0.005861,
+ -0.935791,0.178512,0.304021,0.038907,0.059124,-0.005713,
+ -0.96465,0.184017,0.18865,0.03887,0.059131,-0.005861,
+ -0.980106,0.061663,0.18865,0.038597,0.056973,-0.005861,
+ -0.950786,0.059818,0.304021,0.038635,0.056971,-0.005713,
+ -0.945153,0.119401,0.304021,0.038737,0.058052,-0.005713,
+ -0.980106,0.061663,0.18865,0.038597,0.056973,-0.005861,
+ -0.945153,0.119401,0.304021,0.038737,0.058052,-0.005713,
+ -0.974301,0.123083,0.18865,0.0387,0.058056,-0.005861,
+ -0.982044,0,0.18865,0.038563,0.055885,-0.005861,
+ -0.952665,0,0.304021,0.038601,0.055885,-0.005713,
+ -0.950786,0.059818,0.304021,0.038635,0.056971,-0.005713,
+ -0.982044,0,0.18865,0.038563,0.055885,-0.005861,
+ -0.950786,0.059818,0.304021,0.038635,0.056971,-0.005713,
+ -0.980106,0.061663,0.18865,0.038597,0.056973,-0.005861,
+ -0.980106,-0.061663,0.18865,0.038597,0.054798,-0.005861,
+ -0.950786,-0.059818,0.304021,0.038635,0.0548,-0.005713,
+ -0.952665,0,0.304021,0.038601,0.055885,-0.005713,
+ -0.980106,-0.061663,0.18865,0.038597,0.054798,-0.005861,
+ -0.952665,0,0.304021,0.038601,0.055885,-0.005713,
+ -0.982044,0,0.18865,0.038563,0.055885,-0.005861,
+ -0.974301,-0.123083,0.18865,0.0387,0.053714,-0.005861,
+ -0.945153,-0.119401,0.304021,0.038737,0.053719,-0.005713,
+ -0.950786,-0.059818,0.304021,0.038635,0.0548,-0.005713,
+ -0.974301,-0.123083,0.18865,0.0387,0.053714,-0.005861,
+ -0.950786,-0.059818,0.304021,0.038635,0.0548,-0.005713,
+ -0.980106,-0.061663,0.18865,0.038597,0.054798,-0.005861,
+ -0.96465,-0.184017,0.18865,0.03887,0.05264,-0.005861,
+ -0.935791,-0.178512,0.304021,0.038907,0.052646,-0.005713,
+ -0.945153,-0.119401,0.304021,0.038737,0.053719,-0.005713,
+ -0.96465,-0.184017,0.18865,0.03887,0.05264,-0.005861,
+ -0.945153,-0.119401,0.304021,0.038737,0.053719,-0.005713,
+ -0.974301,-0.123083,0.18865,0.0387,0.053714,-0.005861,
+ -0.951192,-0.244224,0.18865,0.039107,0.051578,-0.005861,
+ -0.922736,-0.236918,0.304021,0.039144,0.051587,-0.005713,
+ -0.935791,-0.178512,0.304021,0.038907,0.052646,-0.005713,
+ -0.951192,-0.244224,0.18865,0.039107,0.051578,-0.005861,
+ -0.935791,-0.178512,0.304021,0.038907,0.052646,-0.005713,
+ -0.96465,-0.184017,0.18865,0.03887,0.05264,-0.005861,
+ -0.922736,-0.236918,0.304021,0.039144,0.051587,-0.005713,
+ -0.881202,-0.226254,0.415082,0.039198,0.051601,-0.00557,
+ -0.893669,-0.170477,0.415082,0.038961,0.052657,-0.00557,
+ -0.922736,-0.236918,0.304021,0.039144,0.051587,-0.005713,
+ -0.893669,-0.170477,0.415082,0.038961,0.052657,-0.00557,
+ -0.935791,-0.178512,0.304021,0.038907,0.052646,-0.005713,
+ -0.906039,-0.29439,0.304021,0.039447,0.050544,-0.005713,
+ -0.865256,-0.281139,0.415082,0.0395,0.050561,-0.00557,
+ -0.881202,-0.226254,0.415082,0.039198,0.051601,-0.00557,
+ -0.906039,-0.29439,0.304021,0.039447,0.050544,-0.005713,
+ -0.881202,-0.226254,0.415082,0.039198,0.051601,-0.00557,
+ -0.922736,-0.236918,0.304021,0.039144,0.051587,-0.005713,
+ -0.885766,-0.3507,0.304021,0.039815,0.049522,-0.005713,
+ -0.845896,-0.334914,0.415082,0.039866,0.049543,-0.00557,
+ -0.865256,-0.281139,0.415082,0.0395,0.050561,-0.00557,
+ -0.885766,-0.3507,0.304021,0.039815,0.049522,-0.005713,
+ -0.865256,-0.281139,0.415082,0.0395,0.050561,-0.00557,
+ -0.906039,-0.29439,0.304021,0.039447,0.050544,-0.005713,
+ -0.861997,-0.405625,0.304021,0.040246,0.048526,-0.005713,
+ -0.823197,-0.387367,0.415082,0.040296,0.048549,-0.00557,
+ -0.845896,-0.334914,0.415082,0.039866,0.049543,-0.00557,
+ -0.861997,-0.405625,0.304021,0.040246,0.048526,-0.005713,
+ -0.845896,-0.334914,0.415082,0.039866,0.049543,-0.00557,
+ -0.885766,-0.3507,0.304021,0.039815,0.049522,-0.005713,
+ -0.834827,-0.45895,0.304021,0.040739,0.047559,-0.005713,
+ -0.79725,-0.438292,0.415082,0.040787,0.047585,-0.00557,
+ -0.823197,-0.387367,0.415082,0.040296,0.048549,-0.00557,
+ -0.834827,-0.45895,0.304021,0.040739,0.047559,-0.005713,
+ -0.823197,-0.387367,0.415082,0.040296,0.048549,-0.00557,
+ -0.861997,-0.405625,0.304021,0.040246,0.048526,-0.005713,
+ -0.804362,-0.510464,0.304021,0.041292,0.046624,-0.005713,
+ -0.768156,-0.487487,0.415082,0.041338,0.046653,-0.00557,
+ -0.79725,-0.438292,0.415082,0.040787,0.047585,-0.00557,
+ -0.804362,-0.510464,0.304021,0.041292,0.046624,-0.005713,
+ -0.79725,-0.438292,0.415082,0.040787,0.047585,-0.00557,
+ -0.834827,-0.45895,0.304021,0.040739,0.047559,-0.005713,
+ -0.770723,-0.559963,0.304021,0.041902,0.045726,-0.005713,
+ -0.736031,-0.534758,0.415082,0.041947,0.045758,-0.00557,
+ -0.768156,-0.487487,0.415082,0.041338,0.046653,-0.00557,
+ -0.770723,-0.559963,0.304021,0.041902,0.045726,-0.005713,
+ -0.768156,-0.487487,0.415082,0.041338,0.046653,-0.00557,
+ -0.804362,-0.510464,0.304021,0.041292,0.046624,-0.005713,
+ -0.734041,-0.607252,0.304021,0.042568,0.044868,-0.005713,
+ -0.701001,-0.579918,0.415082,0.04261,0.044903,-0.00557,
+ -0.736031,-0.534758,0.415082,0.041947,0.045758,-0.00557,
+ -0.734041,-0.607252,0.304021,0.042568,0.044868,-0.005713,
+ -0.736031,-0.534758,0.415082,0.041947,0.045758,-0.00557,
+ -0.770723,-0.559963,0.304021,0.041902,0.045726,-0.005713,
+ -0.694463,-0.652144,0.304021,0.043286,0.044053,-0.005713,
+ -0.663204,-0.62279,0.415082,0.043326,0.044091,-0.00557,
+ -0.701001,-0.579918,0.415082,0.04261,0.044903,-0.00557,
+ -0.694463,-0.652144,0.304021,0.043286,0.044053,-0.005713,
+ -0.701001,-0.579918,0.415082,0.04261,0.044903,-0.00557,
+ -0.734041,-0.607252,0.304021,0.042568,0.044868,-0.005713,
+ -0.652144,-0.694463,0.304021,0.044053,0.043286,-0.005713,
+ -0.62279,-0.663204,0.415082,0.044091,0.043326,-0.00557,
+ -0.663204,-0.62279,0.415082,0.043326,0.044091,-0.00557,
+ -0.652144,-0.694463,0.304021,0.044053,0.043286,-0.005713,
+ -0.663204,-0.62279,0.415082,0.043326,0.044091,-0.00557,
+ -0.694463,-0.652144,0.304021,0.043286,0.044053,-0.005713,
+ -0.607252,-0.734041,0.304021,0.044868,0.042568,-0.005713,
+ -0.579918,-0.701001,0.415082,0.044903,0.04261,-0.00557,
+ -0.62279,-0.663204,0.415082,0.044091,0.043326,-0.00557,
+ -0.607252,-0.734041,0.304021,0.044868,0.042568,-0.005713,
+ -0.62279,-0.663204,0.415082,0.044091,0.043326,-0.00557,
+ -0.652144,-0.694463,0.304021,0.044053,0.043286,-0.005713,
+ -0.559963,-0.770723,0.304021,0.045726,0.041902,-0.005713,
+ -0.534758,-0.736031,0.415082,0.045758,0.041947,-0.00557,
+ -0.579918,-0.701001,0.415082,0.044903,0.04261,-0.00557,
+ -0.559963,-0.770723,0.304021,0.045726,0.041902,-0.005713,
+ -0.579918,-0.701001,0.415082,0.044903,0.04261,-0.00557,
+ -0.607252,-0.734041,0.304021,0.044868,0.042568,-0.005713,
+ -0.510464,-0.804362,0.304021,0.046624,0.041292,-0.005713,
+ -0.487487,-0.768156,0.415082,0.046653,0.041338,-0.00557,
+ -0.534758,-0.736031,0.415082,0.045758,0.041947,-0.00557,
+ -0.510464,-0.804362,0.304021,0.046624,0.041292,-0.005713,
+ -0.534758,-0.736031,0.415082,0.045758,0.041947,-0.00557,
+ -0.559963,-0.770723,0.304021,0.045726,0.041902,-0.005713,
+ -0.45895,-0.834827,0.304021,0.047559,0.040739,-0.005713,
+ -0.438292,-0.79725,0.415082,0.047585,0.040787,-0.00557,
+ -0.487487,-0.768156,0.415082,0.046653,0.041338,-0.00557,
+ -0.45895,-0.834827,0.304021,0.047559,0.040739,-0.005713,
+ -0.487487,-0.768156,0.415082,0.046653,0.041338,-0.00557,
+ -0.510464,-0.804362,0.304021,0.046624,0.041292,-0.005713,
+ -0.405625,-0.861997,0.304021,0.048526,0.040246,-0.005713,
+ -0.387367,-0.823197,0.415082,0.048549,0.040296,-0.00557,
+ -0.438292,-0.79725,0.415082,0.047585,0.040787,-0.00557,
+ -0.405625,-0.861997,0.304021,0.048526,0.040246,-0.005713,
+ -0.438292,-0.79725,0.415082,0.047585,0.040787,-0.00557,
+ -0.45895,-0.834827,0.304021,0.047559,0.040739,-0.005713,
+ -0.3507,-0.885766,0.304021,0.049522,0.039815,-0.005713,
+ -0.334914,-0.845896,0.415082,0.049543,0.039866,-0.00557,
+ -0.387367,-0.823197,0.415082,0.048549,0.040296,-0.00557,
+ -0.3507,-0.885766,0.304021,0.049522,0.039815,-0.005713,
+ -0.387367,-0.823197,0.415082,0.048549,0.040296,-0.00557,
+ -0.405625,-0.861997,0.304021,0.048526,0.040246,-0.005713,
+ -0.29439,-0.906039,0.304021,0.050544,0.039447,-0.005713,
+ -0.281139,-0.865256,0.415082,0.050561,0.0395,-0.00557,
+ -0.334914,-0.845896,0.415082,0.049543,0.039866,-0.00557,
+ -0.29439,-0.906039,0.304021,0.050544,0.039447,-0.005713,
+ -0.334914,-0.845896,0.415082,0.049543,0.039866,-0.00557,
+ -0.3507,-0.885766,0.304021,0.049522,0.039815,-0.005713,
+ -0.236918,-0.922736,0.304021,0.051587,0.039144,-0.005713,
+ -0.226254,-0.881202,0.415082,0.051601,0.039198,-0.00557,
+ -0.281139,-0.865256,0.415082,0.050561,0.0395,-0.00557,
+ -0.236918,-0.922736,0.304021,0.051587,0.039144,-0.005713,
+ -0.281139,-0.865256,0.415082,0.050561,0.0395,-0.00557,
+ -0.29439,-0.906039,0.304021,0.050544,0.039447,-0.005713,
+ -0.178512,-0.935791,0.304021,0.052646,0.038907,-0.005713,
+ -0.170477,-0.893669,0.415082,0.052657,0.038961,-0.00557,
+ -0.226254,-0.881202,0.415082,0.051601,0.039198,-0.00557,
+ -0.178512,-0.935791,0.304021,0.052646,0.038907,-0.005713,
+ -0.226254,-0.881202,0.415082,0.051601,0.039198,-0.00557,
+ -0.236918,-0.922736,0.304021,0.051587,0.039144,-0.005713,
+ -0.119401,-0.945153,0.304021,0.053719,0.038737,-0.005713,
+ -0.114026,-0.90261,0.415082,0.053726,0.038792,-0.00557,
+ -0.170477,-0.893669,0.415082,0.052657,0.038961,-0.00557,
+ -0.119401,-0.945153,0.304021,0.053719,0.038737,-0.005713,
+ -0.170477,-0.893669,0.415082,0.052657,0.038961,-0.00557,
+ -0.178512,-0.935791,0.304021,0.052646,0.038907,-0.005713,
+ -0.059818,-0.950786,0.304021,0.0548,0.038635,-0.005713,
+ -0.057126,-0.907989,0.415082,0.054803,0.03869,-0.00557,
+ -0.114026,-0.90261,0.415082,0.053726,0.038792,-0.00557,
+ -0.059818,-0.950786,0.304021,0.0548,0.038635,-0.005713,
+ -0.114026,-0.90261,0.415082,0.053726,0.038792,-0.00557,
+ -0.119401,-0.945153,0.304021,0.053719,0.038737,-0.005713,
+ 0,-0.952665,0.304021,0.055885,0.038601,-0.005713,
+ 0,-0.909784,0.415082,0.055885,0.038656,-0.00557,
+ -0.057126,-0.907989,0.415082,0.054803,0.03869,-0.00557,
+ 0,-0.952665,0.304021,0.055885,0.038601,-0.005713,
+ -0.057126,-0.907989,0.415082,0.054803,0.03869,-0.00557,
+ -0.059818,-0.950786,0.304021,0.0548,0.038635,-0.005713,
+ 0.059818,-0.950786,0.304021,0.056971,0.038635,-0.005713,
+ 0.057126,-0.907989,0.415082,0.056967,0.03869,-0.00557,
+ 0,-0.909784,0.415082,0.055885,0.038656,-0.00557,
+ 0.059818,-0.950786,0.304021,0.056971,0.038635,-0.005713,
+ 0,-0.909784,0.415082,0.055885,0.038656,-0.00557,
+ 0,-0.952665,0.304021,0.055885,0.038601,-0.005713,
+ 0.119401,-0.945153,0.304021,0.058052,0.038737,-0.005713,
+ 0.114026,-0.90261,0.415082,0.058045,0.038792,-0.00557,
+ 0.057126,-0.907989,0.415082,0.056967,0.03869,-0.00557,
+ 0.119401,-0.945153,0.304021,0.058052,0.038737,-0.005713,
+ 0.057126,-0.907989,0.415082,0.056967,0.03869,-0.00557,
+ 0.059818,-0.950786,0.304021,0.056971,0.038635,-0.005713,
+ 0.178512,-0.935791,0.304021,0.059124,0.038907,-0.005713,
+ 0.170477,-0.893669,0.415082,0.059114,0.038961,-0.00557,
+ 0.114026,-0.90261,0.415082,0.058045,0.038792,-0.00557,
+ 0.178512,-0.935791,0.304021,0.059124,0.038907,-0.005713,
+ 0.114026,-0.90261,0.415082,0.058045,0.038792,-0.00557,
+ 0.119401,-0.945153,0.304021,0.058052,0.038737,-0.005713,
+ 0.236918,-0.922736,0.304021,0.060184,0.039144,-0.005713,
+ 0.226254,-0.881202,0.415082,0.06017,0.039198,-0.00557,
+ 0.170477,-0.893669,0.415082,0.059114,0.038961,-0.00557,
+ 0.236918,-0.922736,0.304021,0.060184,0.039144,-0.005713,
+ 0.170477,-0.893669,0.415082,0.059114,0.038961,-0.00557,
+ 0.178512,-0.935791,0.304021,0.059124,0.038907,-0.005713,
+ 0.29439,-0.906039,0.304021,0.061226,0.039447,-0.005713,
+ 0.281139,-0.865256,0.415082,0.061209,0.0395,-0.00557,
+ 0.226254,-0.881202,0.415082,0.06017,0.039198,-0.00557,
+ 0.29439,-0.906039,0.304021,0.061226,0.039447,-0.005713,
+ 0.226254,-0.881202,0.415082,0.06017,0.039198,-0.00557,
+ 0.236918,-0.922736,0.304021,0.060184,0.039144,-0.005713,
+ 0.3507,-0.885766,0.304021,0.062248,0.039815,-0.005713,
+ 0.334914,-0.845896,0.415082,0.062228,0.039866,-0.00557,
+ 0.281139,-0.865256,0.415082,0.061209,0.0395,-0.00557,
+ 0.3507,-0.885766,0.304021,0.062248,0.039815,-0.005713,
+ 0.281139,-0.865256,0.415082,0.061209,0.0395,-0.00557,
+ 0.29439,-0.906039,0.304021,0.061226,0.039447,-0.005713,
+ 0.405625,-0.861997,0.304021,0.063245,0.040246,-0.005713,
+ 0.387367,-0.823197,0.415082,0.063221,0.040296,-0.00557,
+ 0.334914,-0.845896,0.415082,0.062228,0.039866,-0.00557,
+ 0.405625,-0.861997,0.304021,0.063245,0.040246,-0.005713,
+ 0.334914,-0.845896,0.415082,0.062228,0.039866,-0.00557,
+ 0.3507,-0.885766,0.304021,0.062248,0.039815,-0.005713,
+ 0.45895,-0.834827,0.304021,0.064212,0.040739,-0.005713,
+ 0.438292,-0.79725,0.415082,0.064185,0.040787,-0.00557,
+ 0.387367,-0.823197,0.415082,0.063221,0.040296,-0.00557,
+ 0.45895,-0.834827,0.304021,0.064212,0.040739,-0.005713,
+ 0.387367,-0.823197,0.415082,0.063221,0.040296,-0.00557,
+ 0.405625,-0.861997,0.304021,0.063245,0.040246,-0.005713,
+ 0.510464,-0.804362,0.304021,0.065147,0.041292,-0.005713,
+ 0.487487,-0.768156,0.415082,0.065117,0.041338,-0.00557,
+ 0.438292,-0.79725,0.415082,0.064185,0.040787,-0.00557,
+ 0.510464,-0.804362,0.304021,0.065147,0.041292,-0.005713,
+ 0.438292,-0.79725,0.415082,0.064185,0.040787,-0.00557,
+ 0.45895,-0.834827,0.304021,0.064212,0.040739,-0.005713,
+ 0.559963,-0.770723,0.304021,0.066045,0.041902,-0.005713,
+ 0.534758,-0.736031,0.415082,0.066012,0.041947,-0.00557,
+ 0.487487,-0.768156,0.415082,0.065117,0.041338,-0.00557,
+ 0.559963,-0.770723,0.304021,0.066045,0.041902,-0.005713,
+ 0.487487,-0.768156,0.415082,0.065117,0.041338,-0.00557,
+ 0.510464,-0.804362,0.304021,0.065147,0.041292,-0.005713,
+ 0.607252,-0.734041,0.304021,0.066903,0.042568,-0.005713,
+ 0.579918,-0.701001,0.415082,0.066868,0.04261,-0.00557,
+ 0.534758,-0.736031,0.415082,0.066012,0.041947,-0.00557,
+ 0.607252,-0.734041,0.304021,0.066903,0.042568,-0.005713,
+ 0.534758,-0.736031,0.415082,0.066012,0.041947,-0.00557,
+ 0.559963,-0.770723,0.304021,0.066045,0.041902,-0.005713,
+ 0.652144,-0.694463,0.304021,0.067717,0.043286,-0.005713,
+ 0.62279,-0.663204,0.415082,0.067679,0.043326,-0.00557,
+ 0.579918,-0.701001,0.415082,0.066868,0.04261,-0.00557,
+ 0.652144,-0.694463,0.304021,0.067717,0.043286,-0.005713,
+ 0.579918,-0.701001,0.415082,0.066868,0.04261,-0.00557,
+ 0.607252,-0.734041,0.304021,0.066903,0.042568,-0.005713,
+ 0.694463,-0.652144,0.304021,0.068485,0.044053,-0.005713,
+ 0.663204,-0.62279,0.415082,0.068445,0.044091,-0.00557,
+ 0.62279,-0.663204,0.415082,0.067679,0.043326,-0.00557,
+ 0.694463,-0.652144,0.304021,0.068485,0.044053,-0.005713,
+ 0.62279,-0.663204,0.415082,0.067679,0.043326,-0.00557,
+ 0.652144,-0.694463,0.304021,0.067717,0.043286,-0.005713,
+ 0.734041,-0.607252,0.304021,0.069203,0.044868,-0.005713,
+ 0.701001,-0.579918,0.415082,0.069161,0.044903,-0.00557,
+ 0.663204,-0.62279,0.415082,0.068445,0.044091,-0.00557,
+ 0.734041,-0.607252,0.304021,0.069203,0.044868,-0.005713,
+ 0.663204,-0.62279,0.415082,0.068445,0.044091,-0.00557,
+ 0.694463,-0.652144,0.304021,0.068485,0.044053,-0.005713,
+ 0.770723,-0.559963,0.304021,0.069869,0.045726,-0.005713,
+ 0.736031,-0.534758,0.415082,0.069824,0.045758,-0.00557,
+ 0.701001,-0.579918,0.415082,0.069161,0.044903,-0.00557,
+ 0.770723,-0.559963,0.304021,0.069869,0.045726,-0.005713,
+ 0.701001,-0.579918,0.415082,0.069161,0.044903,-0.00557,
+ 0.734041,-0.607252,0.304021,0.069203,0.044868,-0.005713,
+ 0.804362,-0.510464,0.304021,0.070479,0.046624,-0.005713,
+ 0.768156,-0.487487,0.415082,0.070432,0.046653,-0.00557,
+ 0.736031,-0.534758,0.415082,0.069824,0.045758,-0.00557,
+ 0.804362,-0.510464,0.304021,0.070479,0.046624,-0.005713,
+ 0.736031,-0.534758,0.415082,0.069824,0.045758,-0.00557,
+ 0.770723,-0.559963,0.304021,0.069869,0.045726,-0.005713,
+ 0.834827,-0.45895,0.304021,0.071032,0.047559,-0.005713,
+ 0.79725,-0.438292,0.415082,0.070983,0.047585,-0.00557,
+ 0.768156,-0.487487,0.415082,0.070432,0.046653,-0.00557,
+ 0.834827,-0.45895,0.304021,0.071032,0.047559,-0.005713,
+ 0.768156,-0.487487,0.415082,0.070432,0.046653,-0.00557,
+ 0.804362,-0.510464,0.304021,0.070479,0.046624,-0.005713,
+ 0.861997,-0.405625,0.304021,0.071525,0.048526,-0.005713,
+ 0.823197,-0.387367,0.415082,0.071475,0.048549,-0.00557,
+ 0.79725,-0.438292,0.415082,0.070983,0.047585,-0.00557,
+ 0.861997,-0.405625,0.304021,0.071525,0.048526,-0.005713,
+ 0.79725,-0.438292,0.415082,0.070983,0.047585,-0.00557,
+ 0.834827,-0.45895,0.304021,0.071032,0.047559,-0.005713,
+ 0.885766,-0.3507,0.304021,0.071956,0.049522,-0.005713,
+ 0.845896,-0.334914,0.415082,0.071905,0.049543,-0.00557,
+ 0.823197,-0.387367,0.415082,0.071475,0.048549,-0.00557,
+ 0.885766,-0.3507,0.304021,0.071956,0.049522,-0.005713,
+ 0.823197,-0.387367,0.415082,0.071475,0.048549,-0.00557,
+ 0.861997,-0.405625,0.304021,0.071525,0.048526,-0.005713,
+ 0.906039,-0.29439,0.304021,0.072324,0.050544,-0.005713,
+ 0.865256,-0.281139,0.415082,0.072271,0.050561,-0.00557,
+ 0.845896,-0.334914,0.415082,0.071905,0.049543,-0.00557,
+ 0.906039,-0.29439,0.304021,0.072324,0.050544,-0.005713,
+ 0.845896,-0.334914,0.415082,0.071905,0.049543,-0.00557,
+ 0.885766,-0.3507,0.304021,0.071956,0.049522,-0.005713,
+ 0.922736,-0.236918,0.304021,0.072627,0.051587,-0.005713,
+ 0.881202,-0.226254,0.415082,0.072573,0.051601,-0.00557,
+ 0.865256,-0.281139,0.415082,0.072271,0.050561,-0.00557,
+ 0.922736,-0.236918,0.304021,0.072627,0.051587,-0.005713,
+ 0.865256,-0.281139,0.415082,0.072271,0.050561,-0.00557,
+ 0.906039,-0.29439,0.304021,0.072324,0.050544,-0.005713,
+ 0.935791,-0.178512,0.304021,0.072863,0.052646,-0.005713,
+ 0.893669,-0.170477,0.415082,0.072809,0.052657,-0.00557,
+ 0.881202,-0.226254,0.415082,0.072573,0.051601,-0.00557,
+ 0.935791,-0.178512,0.304021,0.072863,0.052646,-0.005713,
+ 0.881202,-0.226254,0.415082,0.072573,0.051601,-0.00557,
+ 0.922736,-0.236918,0.304021,0.072627,0.051587,-0.005713,
+ 0.945153,-0.119401,0.304021,0.073033,0.053719,-0.005713,
+ 0.90261,-0.114026,0.415082,0.072978,0.053726,-0.00557,
+ 0.893669,-0.170477,0.415082,0.072809,0.052657,-0.00557,
+ 0.945153,-0.119401,0.304021,0.073033,0.053719,-0.005713,
+ 0.893669,-0.170477,0.415082,0.072809,0.052657,-0.00557,
+ 0.935791,-0.178512,0.304021,0.072863,0.052646,-0.005713,
+ 0.950786,-0.059818,0.304021,0.073135,0.0548,-0.005713,
+ 0.907989,-0.057126,0.415082,0.07308,0.054803,-0.00557,
+ 0.90261,-0.114026,0.415082,0.072978,0.053726,-0.00557,
+ 0.950786,-0.059818,0.304021,0.073135,0.0548,-0.005713,
+ 0.90261,-0.114026,0.415082,0.072978,0.053726,-0.00557,
+ 0.945153,-0.119401,0.304021,0.073033,0.053719,-0.005713,
+ 0.952665,0,0.304021,0.073169,0.055885,-0.005713,
+ 0.909784,0,0.415082,0.073114,0.055885,-0.00557,
+ 0.907989,-0.057126,0.415082,0.07308,0.054803,-0.00557,
+ 0.952665,0,0.304021,0.073169,0.055885,-0.005713,
+ 0.907989,-0.057126,0.415082,0.07308,0.054803,-0.00557,
+ 0.950786,-0.059818,0.304021,0.073135,0.0548,-0.005713,
+ 0.950786,0.059818,0.304021,0.073135,0.056971,-0.005713,
+ 0.907989,0.057126,0.415082,0.07308,0.056967,-0.00557,
+ 0.909784,0,0.415082,0.073114,0.055885,-0.00557,
+ 0.950786,0.059818,0.304021,0.073135,0.056971,-0.005713,
+ 0.909784,0,0.415082,0.073114,0.055885,-0.00557,
+ 0.952665,0,0.304021,0.073169,0.055885,-0.005713,
+ 0.945153,0.119401,0.304021,0.073033,0.058052,-0.005713,
+ 0.90261,0.114026,0.415082,0.072978,0.058045,-0.00557,
+ 0.907989,0.057126,0.415082,0.07308,0.056967,-0.00557,
+ 0.945153,0.119401,0.304021,0.073033,0.058052,-0.005713,
+ 0.907989,0.057126,0.415082,0.07308,0.056967,-0.00557,
+ 0.950786,0.059818,0.304021,0.073135,0.056971,-0.005713,
+ 0.935791,0.178512,0.304021,0.072863,0.059124,-0.005713,
+ 0.893669,0.170477,0.415082,0.072809,0.059114,-0.00557,
+ 0.90261,0.114026,0.415082,0.072978,0.058045,-0.00557,
+ 0.935791,0.178512,0.304021,0.072863,0.059124,-0.005713,
+ 0.90261,0.114026,0.415082,0.072978,0.058045,-0.00557,
+ 0.945153,0.119401,0.304021,0.073033,0.058052,-0.005713,
+ 0.922736,0.236918,0.304021,0.072627,0.060184,-0.005713,
+ 0.881202,0.226254,0.415082,0.072573,0.06017,-0.00557,
+ 0.893669,0.170477,0.415082,0.072809,0.059114,-0.00557,
+ 0.922736,0.236918,0.304021,0.072627,0.060184,-0.005713,
+ 0.893669,0.170477,0.415082,0.072809,0.059114,-0.00557,
+ 0.935791,0.178512,0.304021,0.072863,0.059124,-0.005713,
+ 0.906039,0.29439,0.304021,0.072324,0.061226,-0.005713,
+ 0.865256,0.281139,0.415082,0.072271,0.061209,-0.00557,
+ 0.881202,0.226254,0.415082,0.072573,0.06017,-0.00557,
+ 0.906039,0.29439,0.304021,0.072324,0.061226,-0.005713,
+ 0.881202,0.226254,0.415082,0.072573,0.06017,-0.00557,
+ 0.922736,0.236918,0.304021,0.072627,0.060184,-0.005713,
+ 0.885766,0.3507,0.304021,0.071956,0.062248,-0.005713,
+ 0.845896,0.334914,0.415082,0.071905,0.062228,-0.00557,
+ 0.865256,0.281139,0.415082,0.072271,0.061209,-0.00557,
+ 0.885766,0.3507,0.304021,0.071956,0.062248,-0.005713,
+ 0.865256,0.281139,0.415082,0.072271,0.061209,-0.00557,
+ 0.906039,0.29439,0.304021,0.072324,0.061226,-0.005713,
+ 0.861997,0.405625,0.304021,0.071525,0.063245,-0.005713,
+ 0.823197,0.387367,0.415082,0.071475,0.063221,-0.00557,
+ 0.845896,0.334914,0.415082,0.071905,0.062228,-0.00557,
+ 0.861997,0.405625,0.304021,0.071525,0.063245,-0.005713,
+ 0.845896,0.334914,0.415082,0.071905,0.062228,-0.00557,
+ 0.885766,0.3507,0.304021,0.071956,0.062248,-0.005713,
+ 0.834827,0.45895,0.304021,0.071032,0.064212,-0.005713,
+ 0.79725,0.438292,0.415082,0.070983,0.064185,-0.00557,
+ 0.823197,0.387367,0.415082,0.071475,0.063221,-0.00557,
+ 0.834827,0.45895,0.304021,0.071032,0.064212,-0.005713,
+ 0.823197,0.387367,0.415082,0.071475,0.063221,-0.00557,
+ 0.861997,0.405625,0.304021,0.071525,0.063245,-0.005713,
+ 0.804362,0.510464,0.304021,0.070479,0.065147,-0.005713,
+ 0.768156,0.487487,0.415082,0.070432,0.065117,-0.00557,
+ 0.79725,0.438292,0.415082,0.070983,0.064185,-0.00557,
+ 0.804362,0.510464,0.304021,0.070479,0.065147,-0.005713,
+ 0.79725,0.438292,0.415082,0.070983,0.064185,-0.00557,
+ 0.834827,0.45895,0.304021,0.071032,0.064212,-0.005713,
+ 0.770723,0.559963,0.304021,0.069869,0.066045,-0.005713,
+ 0.736031,0.534758,0.415082,0.069824,0.066012,-0.00557,
+ 0.768156,0.487487,0.415082,0.070432,0.065117,-0.00557,
+ 0.770723,0.559963,0.304021,0.069869,0.066045,-0.005713,
+ 0.768156,0.487487,0.415082,0.070432,0.065117,-0.00557,
+ 0.804362,0.510464,0.304021,0.070479,0.065147,-0.005713,
+ 0.734041,0.607252,0.304021,0.069203,0.066903,-0.005713,
+ 0.701001,0.579918,0.415082,0.069161,0.066868,-0.00557,
+ 0.736031,0.534758,0.415082,0.069824,0.066012,-0.00557,
+ 0.734041,0.607252,0.304021,0.069203,0.066903,-0.005713,
+ 0.736031,0.534758,0.415082,0.069824,0.066012,-0.00557,
+ 0.770723,0.559963,0.304021,0.069869,0.066045,-0.005713,
+ 0.694463,0.652144,0.304021,0.068485,0.067717,-0.005713,
+ 0.663204,0.62279,0.415082,0.068445,0.067679,-0.00557,
+ 0.701001,0.579918,0.415082,0.069161,0.066868,-0.00557,
+ 0.694463,0.652144,0.304021,0.068485,0.067717,-0.005713,
+ 0.701001,0.579918,0.415082,0.069161,0.066868,-0.00557,
+ 0.734041,0.607252,0.304021,0.069203,0.066903,-0.005713,
+ 0.652144,0.694463,0.304021,0.067717,0.068485,-0.005713,
+ 0.62279,0.663204,0.415082,0.067679,0.068445,-0.00557,
+ 0.663204,0.62279,0.415082,0.068445,0.067679,-0.00557,
+ 0.652144,0.694463,0.304021,0.067717,0.068485,-0.005713,
+ 0.663204,0.62279,0.415082,0.068445,0.067679,-0.00557,
+ 0.694463,0.652144,0.304021,0.068485,0.067717,-0.005713,
+ 0.607252,0.734041,0.304021,0.066903,0.069203,-0.005713,
+ 0.579918,0.701001,0.415082,0.066868,0.069161,-0.00557,
+ 0.62279,0.663204,0.415082,0.067679,0.068445,-0.00557,
+ 0.607252,0.734041,0.304021,0.066903,0.069203,-0.005713,
+ 0.62279,0.663204,0.415082,0.067679,0.068445,-0.00557,
+ 0.652144,0.694463,0.304021,0.067717,0.068485,-0.005713,
+ 0.559963,0.770723,0.304021,0.066045,0.069869,-0.005713,
+ 0.534758,0.736031,0.415082,0.066012,0.069824,-0.00557,
+ 0.579918,0.701001,0.415082,0.066868,0.069161,-0.00557,
+ 0.559963,0.770723,0.304021,0.066045,0.069869,-0.005713,
+ 0.579918,0.701001,0.415082,0.066868,0.069161,-0.00557,
+ 0.607252,0.734041,0.304021,0.066903,0.069203,-0.005713,
+ 0.510464,0.804362,0.304021,0.065147,0.070479,-0.005713,
+ 0.487487,0.768156,0.415082,0.065117,0.070432,-0.00557,
+ 0.534758,0.736031,0.415082,0.066012,0.069824,-0.00557,
+ 0.510464,0.804362,0.304021,0.065147,0.070479,-0.005713,
+ 0.534758,0.736031,0.415082,0.066012,0.069824,-0.00557,
+ 0.559963,0.770723,0.304021,0.066045,0.069869,-0.005713,
+ 0.45895,0.834827,0.304021,0.064212,0.071032,-0.005713,
+ 0.438292,0.79725,0.415082,0.064185,0.070983,-0.00557,
+ 0.487487,0.768156,0.415082,0.065117,0.070432,-0.00557,
+ 0.45895,0.834827,0.304021,0.064212,0.071032,-0.005713,
+ 0.487487,0.768156,0.415082,0.065117,0.070432,-0.00557,
+ 0.510464,0.804362,0.304021,0.065147,0.070479,-0.005713,
+ 0.405625,0.861997,0.304021,0.063245,0.071525,-0.005713,
+ 0.387367,0.823197,0.415082,0.063221,0.071475,-0.00557,
+ 0.438292,0.79725,0.415082,0.064185,0.070983,-0.00557,
+ 0.405625,0.861997,0.304021,0.063245,0.071525,-0.005713,
+ 0.438292,0.79725,0.415082,0.064185,0.070983,-0.00557,
+ 0.45895,0.834827,0.304021,0.064212,0.071032,-0.005713,
+ 0.3507,0.885766,0.304021,0.062248,0.071956,-0.005713,
+ 0.334914,0.845896,0.415082,0.062228,0.071905,-0.00557,
+ 0.387367,0.823197,0.415082,0.063221,0.071475,-0.00557,
+ 0.3507,0.885766,0.304021,0.062248,0.071956,-0.005713,
+ 0.387367,0.823197,0.415082,0.063221,0.071475,-0.00557,
+ 0.405625,0.861997,0.304021,0.063245,0.071525,-0.005713,
+ 0.29439,0.906039,0.304021,0.061226,0.072324,-0.005713,
+ 0.281139,0.865256,0.415082,0.061209,0.072271,-0.00557,
+ 0.334914,0.845896,0.415082,0.062228,0.071905,-0.00557,
+ 0.29439,0.906039,0.304021,0.061226,0.072324,-0.005713,
+ 0.334914,0.845896,0.415082,0.062228,0.071905,-0.00557,
+ 0.3507,0.885766,0.304021,0.062248,0.071956,-0.005713,
+ 0.236918,0.922736,0.304021,0.060184,0.072627,-0.005713,
+ 0.226254,0.881202,0.415082,0.06017,0.072573,-0.00557,
+ 0.281139,0.865256,0.415082,0.061209,0.072271,-0.00557,
+ 0.236918,0.922736,0.304021,0.060184,0.072627,-0.005713,
+ 0.281139,0.865256,0.415082,0.061209,0.072271,-0.00557,
+ 0.29439,0.906039,0.304021,0.061226,0.072324,-0.005713,
+ 0.178512,0.935791,0.304021,0.059124,0.072863,-0.005713,
+ 0.170477,0.893669,0.415082,0.059114,0.072809,-0.00557,
+ 0.226254,0.881202,0.415082,0.06017,0.072573,-0.00557,
+ 0.178512,0.935791,0.304021,0.059124,0.072863,-0.005713,
+ 0.226254,0.881202,0.415082,0.06017,0.072573,-0.00557,
+ 0.236918,0.922736,0.304021,0.060184,0.072627,-0.005713,
+ 0.119401,0.945153,0.304021,0.058052,0.073033,-0.005713,
+ 0.114026,0.90261,0.415082,0.058045,0.072978,-0.00557,
+ 0.170477,0.893669,0.415082,0.059114,0.072809,-0.00557,
+ 0.119401,0.945153,0.304021,0.058052,0.073033,-0.005713,
+ 0.170477,0.893669,0.415082,0.059114,0.072809,-0.00557,
+ 0.178512,0.935791,0.304021,0.059124,0.072863,-0.005713,
+ 0.059818,0.950786,0.304021,0.056971,0.073135,-0.005713,
+ 0.057126,0.907989,0.415082,0.056967,0.07308,-0.00557,
+ 0.114026,0.90261,0.415082,0.058045,0.072978,-0.00557,
+ 0.059818,0.950786,0.304021,0.056971,0.073135,-0.005713,
+ 0.114026,0.90261,0.415082,0.058045,0.072978,-0.00557,
+ 0.119401,0.945153,0.304021,0.058052,0.073033,-0.005713,
+ 0,0.952665,0.304021,0.055885,0.073169,-0.005713,
+ 0,0.909784,0.415082,0.055885,0.073114,-0.00557,
+ 0.057126,0.907989,0.415082,0.056967,0.07308,-0.00557,
+ 0,0.952665,0.304021,0.055885,0.073169,-0.005713,
+ 0.057126,0.907989,0.415082,0.056967,0.07308,-0.00557,
+ 0.059818,0.950786,0.304021,0.056971,0.073135,-0.005713,
+ -0.059818,0.950786,0.304021,0.0548,0.073135,-0.005713,
+ -0.057126,0.907989,0.415082,0.054803,0.07308,-0.00557,
+ 0,0.909784,0.415082,0.055885,0.073114,-0.00557,
+ -0.059818,0.950786,0.304021,0.0548,0.073135,-0.005713,
+ 0,0.909784,0.415082,0.055885,0.073114,-0.00557,
+ 0,0.952665,0.304021,0.055885,0.073169,-0.005713,
+ -0.119401,0.945153,0.304021,0.053719,0.073033,-0.005713,
+ -0.114026,0.90261,0.415082,0.053726,0.072978,-0.00557,
+ -0.057126,0.907989,0.415082,0.054803,0.07308,-0.00557,
+ -0.119401,0.945153,0.304021,0.053719,0.073033,-0.005713,
+ -0.057126,0.907989,0.415082,0.054803,0.07308,-0.00557,
+ -0.059818,0.950786,0.304021,0.0548,0.073135,-0.005713,
+ -0.178512,0.935791,0.304021,0.052646,0.072863,-0.005713,
+ -0.170477,0.893669,0.415082,0.052657,0.072809,-0.00557,
+ -0.114026,0.90261,0.415082,0.053726,0.072978,-0.00557,
+ -0.178512,0.935791,0.304021,0.052646,0.072863,-0.005713,
+ -0.114026,0.90261,0.415082,0.053726,0.072978,-0.00557,
+ -0.119401,0.945153,0.304021,0.053719,0.073033,-0.005713,
+ -0.236918,0.922736,0.304021,0.051587,0.072627,-0.005713,
+ -0.226254,0.881202,0.415082,0.051601,0.072573,-0.00557,
+ -0.170477,0.893669,0.415082,0.052657,0.072809,-0.00557,
+ -0.236918,0.922736,0.304021,0.051587,0.072627,-0.005713,
+ -0.170477,0.893669,0.415082,0.052657,0.072809,-0.00557,
+ -0.178512,0.935791,0.304021,0.052646,0.072863,-0.005713,
+ -0.29439,0.906039,0.304021,0.050544,0.072324,-0.005713,
+ -0.281139,0.865256,0.415082,0.050561,0.072271,-0.00557,
+ -0.226254,0.881202,0.415082,0.051601,0.072573,-0.00557,
+ -0.29439,0.906039,0.304021,0.050544,0.072324,-0.005713,
+ -0.226254,0.881202,0.415082,0.051601,0.072573,-0.00557,
+ -0.236918,0.922736,0.304021,0.051587,0.072627,-0.005713,
+ -0.3507,0.885766,0.304021,0.049522,0.071956,-0.005713,
+ -0.334914,0.845896,0.415082,0.049543,0.071905,-0.00557,
+ -0.281139,0.865256,0.415082,0.050561,0.072271,-0.00557,
+ -0.3507,0.885766,0.304021,0.049522,0.071956,-0.005713,
+ -0.281139,0.865256,0.415082,0.050561,0.072271,-0.00557,
+ -0.29439,0.906039,0.304021,0.050544,0.072324,-0.005713,
+ -0.405625,0.861997,0.304021,0.048526,0.071525,-0.005713,
+ -0.387367,0.823197,0.415082,0.048549,0.071475,-0.00557,
+ -0.334914,0.845896,0.415082,0.049543,0.071905,-0.00557,
+ -0.405625,0.861997,0.304021,0.048526,0.071525,-0.005713,
+ -0.334914,0.845896,0.415082,0.049543,0.071905,-0.00557,
+ -0.3507,0.885766,0.304021,0.049522,0.071956,-0.005713,
+ -0.45895,0.834827,0.304021,0.047559,0.071032,-0.005713,
+ -0.438292,0.79725,0.415082,0.047585,0.070983,-0.00557,
+ -0.387367,0.823197,0.415082,0.048549,0.071475,-0.00557,
+ -0.45895,0.834827,0.304021,0.047559,0.071032,-0.005713,
+ -0.387367,0.823197,0.415082,0.048549,0.071475,-0.00557,
+ -0.405625,0.861997,0.304021,0.048526,0.071525,-0.005713,
+ -0.510464,0.804362,0.304021,0.046624,0.070479,-0.005713,
+ -0.487487,0.768156,0.415082,0.046653,0.070432,-0.00557,
+ -0.438292,0.79725,0.415082,0.047585,0.070983,-0.00557,
+ -0.510464,0.804362,0.304021,0.046624,0.070479,-0.005713,
+ -0.438292,0.79725,0.415082,0.047585,0.070983,-0.00557,
+ -0.45895,0.834827,0.304021,0.047559,0.071032,-0.005713,
+ -0.559963,0.770723,0.304021,0.045726,0.069869,-0.005713,
+ -0.534758,0.736031,0.415082,0.045758,0.069824,-0.00557,
+ -0.487487,0.768156,0.415082,0.046653,0.070432,-0.00557,
+ -0.559963,0.770723,0.304021,0.045726,0.069869,-0.005713,
+ -0.487487,0.768156,0.415082,0.046653,0.070432,-0.00557,
+ -0.510464,0.804362,0.304021,0.046624,0.070479,-0.005713,
+ -0.607252,0.734041,0.304021,0.044868,0.069203,-0.005713,
+ -0.579918,0.701001,0.415082,0.044903,0.069161,-0.00557,
+ -0.534758,0.736031,0.415082,0.045758,0.069824,-0.00557,
+ -0.607252,0.734041,0.304021,0.044868,0.069203,-0.005713,
+ -0.534758,0.736031,0.415082,0.045758,0.069824,-0.00557,
+ -0.559963,0.770723,0.304021,0.045726,0.069869,-0.005713,
+ -0.652144,0.694463,0.304021,0.044053,0.068485,-0.005713,
+ -0.62279,0.663204,0.415082,0.044091,0.068445,-0.00557,
+ -0.579918,0.701001,0.415082,0.044903,0.069161,-0.00557,
+ -0.652144,0.694463,0.304021,0.044053,0.068485,-0.005713,
+ -0.579918,0.701001,0.415082,0.044903,0.069161,-0.00557,
+ -0.607252,0.734041,0.304021,0.044868,0.069203,-0.005713,
+ -0.694463,0.652144,0.304021,0.043286,0.067717,-0.005713,
+ -0.663204,0.62279,0.415082,0.043326,0.067679,-0.00557,
+ -0.62279,0.663204,0.415082,0.044091,0.068445,-0.00557,
+ -0.694463,0.652144,0.304021,0.043286,0.067717,-0.005713,
+ -0.62279,0.663204,0.415082,0.044091,0.068445,-0.00557,
+ -0.652144,0.694463,0.304021,0.044053,0.068485,-0.005713,
+ -0.734041,0.607252,0.304021,0.042568,0.066903,-0.005713,
+ -0.701001,0.579918,0.415082,0.04261,0.066868,-0.00557,
+ -0.663204,0.62279,0.415082,0.043326,0.067679,-0.00557,
+ -0.734041,0.607252,0.304021,0.042568,0.066903,-0.005713,
+ -0.663204,0.62279,0.415082,0.043326,0.067679,-0.00557,
+ -0.694463,0.652144,0.304021,0.043286,0.067717,-0.005713,
+ -0.770723,0.559963,0.304021,0.041902,0.066045,-0.005713,
+ -0.736031,0.534758,0.415082,0.041947,0.066012,-0.00557,
+ -0.701001,0.579918,0.415082,0.04261,0.066868,-0.00557,
+ -0.770723,0.559963,0.304021,0.041902,0.066045,-0.005713,
+ -0.701001,0.579918,0.415082,0.04261,0.066868,-0.00557,
+ -0.734041,0.607252,0.304021,0.042568,0.066903,-0.005713,
+ -0.804362,0.510464,0.304021,0.041292,0.065147,-0.005713,
+ -0.768156,0.487487,0.415082,0.041338,0.065117,-0.00557,
+ -0.736031,0.534758,0.415082,0.041947,0.066012,-0.00557,
+ -0.804362,0.510464,0.304021,0.041292,0.065147,-0.005713,
+ -0.736031,0.534758,0.415082,0.041947,0.066012,-0.00557,
+ -0.770723,0.559963,0.304021,0.041902,0.066045,-0.005713,
+ -0.834827,0.45895,0.304021,0.040739,0.064212,-0.005713,
+ -0.79725,0.438292,0.415082,0.040787,0.064185,-0.00557,
+ -0.768156,0.487487,0.415082,0.041338,0.065117,-0.00557,
+ -0.834827,0.45895,0.304021,0.040739,0.064212,-0.005713,
+ -0.768156,0.487487,0.415082,0.041338,0.065117,-0.00557,
+ -0.804362,0.510464,0.304021,0.041292,0.065147,-0.005713,
+ -0.861997,0.405625,0.304021,0.040246,0.063245,-0.005713,
+ -0.823197,0.387367,0.415082,0.040296,0.063221,-0.00557,
+ -0.79725,0.438292,0.415082,0.040787,0.064185,-0.00557,
+ -0.861997,0.405625,0.304021,0.040246,0.063245,-0.005713,
+ -0.79725,0.438292,0.415082,0.040787,0.064185,-0.00557,
+ -0.834827,0.45895,0.304021,0.040739,0.064212,-0.005713,
+ -0.885766,0.3507,0.304021,0.039815,0.062248,-0.005713,
+ -0.845896,0.334914,0.415082,0.039866,0.062228,-0.00557,
+ -0.823197,0.387367,0.415082,0.040296,0.063221,-0.00557,
+ -0.885766,0.3507,0.304021,0.039815,0.062248,-0.005713,
+ -0.823197,0.387367,0.415082,0.040296,0.063221,-0.00557,
+ -0.861997,0.405625,0.304021,0.040246,0.063245,-0.005713,
+ -0.906039,0.29439,0.304021,0.039447,0.061226,-0.005713,
+ -0.865256,0.281139,0.415082,0.0395,0.061209,-0.00557,
+ -0.845896,0.334914,0.415082,0.039866,0.062228,-0.00557,
+ -0.906039,0.29439,0.304021,0.039447,0.061226,-0.005713,
+ -0.845896,0.334914,0.415082,0.039866,0.062228,-0.00557,
+ -0.885766,0.3507,0.304021,0.039815,0.062248,-0.005713,
+ -0.922736,0.236918,0.304021,0.039144,0.060184,-0.005713,
+ -0.881202,0.226254,0.415082,0.039198,0.06017,-0.00557,
+ -0.865256,0.281139,0.415082,0.0395,0.061209,-0.00557,
+ -0.922736,0.236918,0.304021,0.039144,0.060184,-0.005713,
+ -0.865256,0.281139,0.415082,0.0395,0.061209,-0.00557,
+ -0.906039,0.29439,0.304021,0.039447,0.061226,-0.005713,
+ -0.935791,0.178512,0.304021,0.038907,0.059124,-0.005713,
+ -0.893669,0.170477,0.415082,0.038961,0.059114,-0.00557,
+ -0.881202,0.226254,0.415082,0.039198,0.06017,-0.00557,
+ -0.935791,0.178512,0.304021,0.038907,0.059124,-0.005713,
+ -0.881202,0.226254,0.415082,0.039198,0.06017,-0.00557,
+ -0.922736,0.236918,0.304021,0.039144,0.060184,-0.005713,
+ -0.945153,0.119401,0.304021,0.038737,0.058052,-0.005713,
+ -0.90261,0.114026,0.415082,0.038792,0.058045,-0.00557,
+ -0.893669,0.170477,0.415082,0.038961,0.059114,-0.00557,
+ -0.945153,0.119401,0.304021,0.038737,0.058052,-0.005713,
+ -0.893669,0.170477,0.415082,0.038961,0.059114,-0.00557,
+ -0.935791,0.178512,0.304021,0.038907,0.059124,-0.005713,
+ -0.950786,0.059818,0.304021,0.038635,0.056971,-0.005713,
+ -0.907989,0.057126,0.415082,0.03869,0.056967,-0.00557,
+ -0.90261,0.114026,0.415082,0.038792,0.058045,-0.00557,
+ -0.950786,0.059818,0.304021,0.038635,0.056971,-0.005713,
+ -0.90261,0.114026,0.415082,0.038792,0.058045,-0.00557,
+ -0.945153,0.119401,0.304021,0.038737,0.058052,-0.005713,
+ -0.952665,0,0.304021,0.038601,0.055885,-0.005713,
+ -0.909784,0,0.415082,0.038656,0.055885,-0.00557,
+ -0.907989,0.057126,0.415082,0.03869,0.056967,-0.00557,
+ -0.952665,0,0.304021,0.038601,0.055885,-0.005713,
+ -0.907989,0.057126,0.415082,0.03869,0.056967,-0.00557,
+ -0.950786,0.059818,0.304021,0.038635,0.056971,-0.005713,
+ -0.950786,-0.059818,0.304021,0.038635,0.0548,-0.005713,
+ -0.907989,-0.057126,0.415082,0.03869,0.054803,-0.00557,
+ -0.909784,0,0.415082,0.038656,0.055885,-0.00557,
+ -0.950786,-0.059818,0.304021,0.038635,0.0548,-0.005713,
+ -0.909784,0,0.415082,0.038656,0.055885,-0.00557,
+ -0.952665,0,0.304021,0.038601,0.055885,-0.005713,
+ -0.945153,-0.119401,0.304021,0.038737,0.053719,-0.005713,
+ -0.90261,-0.114026,0.415082,0.038792,0.053726,-0.00557,
+ -0.907989,-0.057126,0.415082,0.03869,0.054803,-0.00557,
+ -0.945153,-0.119401,0.304021,0.038737,0.053719,-0.005713,
+ -0.907989,-0.057126,0.415082,0.03869,0.054803,-0.00557,
+ -0.950786,-0.059818,0.304021,0.038635,0.0548,-0.005713,
+ -0.935791,-0.178512,0.304021,0.038907,0.052646,-0.005713,
+ -0.893669,-0.170477,0.415082,0.038961,0.052657,-0.00557,
+ -0.90261,-0.114026,0.415082,0.038792,0.053726,-0.00557,
+ -0.935791,-0.178512,0.304021,0.038907,0.052646,-0.005713,
+ -0.90261,-0.114026,0.415082,0.038792,0.053726,-0.00557,
+ -0.945153,-0.119401,0.304021,0.038737,0.053719,-0.005713,
+ -0.893669,-0.170477,0.415082,0.038961,0.052657,-0.00557,
+ -0.838881,-0.160025,0.52026,0.039032,0.05267,-0.005434,
+ -0.847274,-0.107036,0.52026,0.038863,0.053735,-0.005434,
+ -0.893669,-0.170477,0.415082,0.038961,0.052657,-0.00557,
+ -0.847274,-0.107036,0.52026,0.038863,0.053735,-0.005434,
+ -0.90261,-0.114026,0.415082,0.038792,0.053726,-0.00557,
+ -0.881202,-0.226254,0.415082,0.039198,0.051601,-0.00557,
+ -0.827178,-0.212383,0.52026,0.039267,0.051619,-0.005434,
+ -0.838881,-0.160025,0.52026,0.039032,0.05267,-0.005434,
+ -0.881202,-0.226254,0.415082,0.039198,0.051601,-0.00557,
+ -0.838881,-0.160025,0.52026,0.039032,0.05267,-0.005434,
+ -0.893669,-0.170477,0.415082,0.038961,0.052657,-0.00557,
+ -0.865256,-0.281139,0.415082,0.0395,0.050561,-0.00557,
+ -0.81221,-0.263903,0.52026,0.039568,0.050584,-0.005434,
+ -0.827178,-0.212383,0.52026,0.039267,0.051619,-0.005434,
+ -0.865256,-0.281139,0.415082,0.0395,0.050561,-0.00557,
+ -0.827178,-0.212383,0.52026,0.039267,0.051619,-0.005434,
+ -0.881202,-0.226254,0.415082,0.039198,0.051601,-0.00557,
+ -0.845896,-0.334914,0.415082,0.039866,0.049543,-0.00557,
+ -0.794037,-0.314381,0.52026,0.039933,0.049569,-0.005434,
+ -0.81221,-0.263903,0.52026,0.039568,0.050584,-0.005434,
+ -0.845896,-0.334914,0.415082,0.039866,0.049543,-0.00557,
+ -0.81221,-0.263903,0.52026,0.039568,0.050584,-0.005434,
+ -0.865256,-0.281139,0.415082,0.0395,0.050561,-0.00557,
+ -0.823197,-0.387367,0.415082,0.040296,0.048549,-0.00557,
+ -0.77273,-0.363619,0.52026,0.040361,0.04858,-0.005434,
+ -0.794037,-0.314381,0.52026,0.039933,0.049569,-0.005434,
+ -0.823197,-0.387367,0.415082,0.040296,0.048549,-0.00557,
+ -0.794037,-0.314381,0.52026,0.039933,0.049569,-0.005434,
+ -0.845896,-0.334914,0.415082,0.039866,0.049543,-0.00557,
+ -0.79725,-0.438292,0.415082,0.040787,0.047585,-0.00557,
+ -0.748373,-0.411421,0.52026,0.04085,0.04762,-0.005434,
+ -0.77273,-0.363619,0.52026,0.040361,0.04858,-0.005434,
+ -0.79725,-0.438292,0.415082,0.040787,0.047585,-0.00557,
+ -0.77273,-0.363619,0.52026,0.040361,0.04858,-0.005434,
+ -0.823197,-0.387367,0.415082,0.040296,0.048549,-0.00557,
+ -0.768156,-0.487487,0.415082,0.041338,0.046653,-0.00557,
+ -0.721063,-0.4576,0.52026,0.041399,0.046692,-0.005434,
+ -0.748373,-0.411421,0.52026,0.04085,0.04762,-0.005434,
+ -0.768156,-0.487487,0.415082,0.041338,0.046653,-0.00557,
+ -0.748373,-0.411421,0.52026,0.04085,0.04762,-0.005434,
+ -0.79725,-0.438292,0.415082,0.040787,0.047585,-0.00557,
+ -0.736031,-0.534758,0.415082,0.041947,0.045758,-0.00557,
+ -0.690907,-0.501973,0.52026,0.042005,0.045801,-0.005434,
+ -0.721063,-0.4576,0.52026,0.041399,0.046692,-0.005434,
+ -0.736031,-0.534758,0.415082,0.041947,0.045758,-0.00557,
+ -0.721063,-0.4576,0.52026,0.041399,0.046692,-0.005434,
+ -0.768156,-0.487487,0.415082,0.041338,0.046653,-0.00557,
+ -0.701001,-0.579918,0.415082,0.04261,0.044903,-0.00557,
+ -0.658024,-0.544365,0.52026,0.042666,0.044949,-0.005434,
+ -0.690907,-0.501973,0.52026,0.042005,0.045801,-0.005434,
+ -0.701001,-0.579918,0.415082,0.04261,0.044903,-0.00557,
+ -0.690907,-0.501973,0.52026,0.042005,0.045801,-0.005434,
+ -0.736031,-0.534758,0.415082,0.041947,0.045758,-0.00557,
+ -0.663204,-0.62279,0.415082,0.043326,0.044091,-0.00557,
+ -0.622545,-0.584609,0.52026,0.043378,0.04414,-0.005434,
+ -0.658024,-0.544365,0.52026,0.042666,0.044949,-0.005434,
+ -0.663204,-0.62279,0.415082,0.043326,0.044091,-0.00557,
+ -0.658024,-0.544365,0.52026,0.042666,0.044949,-0.005434,
+ -0.701001,-0.579918,0.415082,0.04261,0.044903,-0.00557,
+ -0.62279,-0.663204,0.415082,0.044091,0.043326,-0.00557,
+ -0.584609,-0.622545,0.52026,0.04414,0.043378,-0.005434,
+ -0.622545,-0.584609,0.52026,0.043378,0.04414,-0.005434,
+ -0.62279,-0.663204,0.415082,0.044091,0.043326,-0.00557,
+ -0.622545,-0.584609,0.52026,0.043378,0.04414,-0.005434,
+ -0.663204,-0.62279,0.415082,0.043326,0.044091,-0.00557,
+ -0.579918,-0.701001,0.415082,0.044903,0.04261,-0.00557,
+ -0.544365,-0.658024,0.52026,0.044949,0.042666,-0.005434,
+ -0.584609,-0.622545,0.52026,0.04414,0.043378,-0.005434,
+ -0.579918,-0.701001,0.415082,0.044903,0.04261,-0.00557,
+ -0.584609,-0.622545,0.52026,0.04414,0.043378,-0.005434,
+ -0.62279,-0.663204,0.415082,0.044091,0.043326,-0.00557,
+ -0.534758,-0.736031,0.415082,0.045758,0.041947,-0.00557,
+ -0.501973,-0.690907,0.52026,0.045801,0.042005,-0.005434,
+ -0.544365,-0.658024,0.52026,0.044949,0.042666,-0.005434,
+ -0.534758,-0.736031,0.415082,0.045758,0.041947,-0.00557,
+ -0.544365,-0.658024,0.52026,0.044949,0.042666,-0.005434,
+ -0.579918,-0.701001,0.415082,0.044903,0.04261,-0.00557,
+ -0.487487,-0.768156,0.415082,0.046653,0.041338,-0.00557,
+ -0.4576,-0.721063,0.52026,0.046692,0.041399,-0.005434,
+ -0.501973,-0.690907,0.52026,0.045801,0.042005,-0.005434,
+ -0.487487,-0.768156,0.415082,0.046653,0.041338,-0.00557,
+ -0.501973,-0.690907,0.52026,0.045801,0.042005,-0.005434,
+ -0.534758,-0.736031,0.415082,0.045758,0.041947,-0.00557,
+ -0.438292,-0.79725,0.415082,0.047585,0.040787,-0.00557,
+ -0.411421,-0.748373,0.52026,0.04762,0.04085,-0.005434,
+ -0.4576,-0.721063,0.52026,0.046692,0.041399,-0.005434,
+ -0.438292,-0.79725,0.415082,0.047585,0.040787,-0.00557,
+ -0.4576,-0.721063,0.52026,0.046692,0.041399,-0.005434,
+ -0.487487,-0.768156,0.415082,0.046653,0.041338,-0.00557,
+ -0.387367,-0.823197,0.415082,0.048549,0.040296,-0.00557,
+ -0.363619,-0.77273,0.52026,0.04858,0.040361,-0.005434,
+ -0.411421,-0.748373,0.52026,0.04762,0.04085,-0.005434,
+ -0.387367,-0.823197,0.415082,0.048549,0.040296,-0.00557,
+ -0.411421,-0.748373,0.52026,0.04762,0.04085,-0.005434,
+ -0.438292,-0.79725,0.415082,0.047585,0.040787,-0.00557,
+ -0.334914,-0.845896,0.415082,0.049543,0.039866,-0.00557,
+ -0.314381,-0.794037,0.52026,0.049569,0.039933,-0.005434,
+ -0.363619,-0.77273,0.52026,0.04858,0.040361,-0.005434,
+ -0.334914,-0.845896,0.415082,0.049543,0.039866,-0.00557,
+ -0.363619,-0.77273,0.52026,0.04858,0.040361,-0.005434,
+ -0.387367,-0.823197,0.415082,0.048549,0.040296,-0.00557,
+ -0.281139,-0.865256,0.415082,0.050561,0.0395,-0.00557,
+ -0.263903,-0.81221,0.52026,0.050584,0.039568,-0.005434,
+ -0.314381,-0.794037,0.52026,0.049569,0.039933,-0.005434,
+ -0.281139,-0.865256,0.415082,0.050561,0.0395,-0.00557,
+ -0.314381,-0.794037,0.52026,0.049569,0.039933,-0.005434,
+ -0.334914,-0.845896,0.415082,0.049543,0.039866,-0.00557,
+ -0.226254,-0.881202,0.415082,0.051601,0.039198,-0.00557,
+ -0.212383,-0.827178,0.52026,0.051619,0.039267,-0.005434,
+ -0.263903,-0.81221,0.52026,0.050584,0.039568,-0.005434,
+ -0.226254,-0.881202,0.415082,0.051601,0.039198,-0.00557,
+ -0.263903,-0.81221,0.52026,0.050584,0.039568,-0.005434,
+ -0.281139,-0.865256,0.415082,0.050561,0.0395,-0.00557,
+ -0.170477,-0.893669,0.415082,0.052657,0.038961,-0.00557,
+ -0.160025,-0.838881,0.52026,0.05267,0.039032,-0.005434,
+ -0.212383,-0.827178,0.52026,0.051619,0.039267,-0.005434,
+ -0.170477,-0.893669,0.415082,0.052657,0.038961,-0.00557,
+ -0.212383,-0.827178,0.52026,0.051619,0.039267,-0.005434,
+ -0.226254,-0.881202,0.415082,0.051601,0.039198,-0.00557,
+ -0.114026,-0.90261,0.415082,0.053726,0.038792,-0.00557,
+ -0.107036,-0.847274,0.52026,0.053735,0.038863,-0.005434,
+ -0.160025,-0.838881,0.52026,0.05267,0.039032,-0.005434,
+ -0.114026,-0.90261,0.415082,0.053726,0.038792,-0.00557,
+ -0.160025,-0.838881,0.52026,0.05267,0.039032,-0.005434,
+ -0.170477,-0.893669,0.415082,0.052657,0.038961,-0.00557,
+ -0.057126,-0.907989,0.415082,0.054803,0.03869,-0.00557,
+ -0.053624,-0.852323,0.52026,0.054808,0.038762,-0.005434,
+ -0.107036,-0.847274,0.52026,0.053735,0.038863,-0.005434,
+ -0.057126,-0.907989,0.415082,0.054803,0.03869,-0.00557,
+ -0.107036,-0.847274,0.52026,0.053735,0.038863,-0.005434,
+ -0.114026,-0.90261,0.415082,0.053726,0.038792,-0.00557,
+ 0,-0.909784,0.415082,0.055885,0.038656,-0.00557,
+ 0,-0.854008,0.52026,0.055885,0.038728,-0.005434,
+ -0.053624,-0.852323,0.52026,0.054808,0.038762,-0.005434,
+ 0,-0.909784,0.415082,0.055885,0.038656,-0.00557,
+ -0.053624,-0.852323,0.52026,0.054808,0.038762,-0.005434,
+ -0.057126,-0.907989,0.415082,0.054803,0.03869,-0.00557,
+ 0.057126,-0.907989,0.415082,0.056967,0.03869,-0.00557,
+ 0.053624,-0.852323,0.52026,0.056963,0.038762,-0.005434,
+ 0,-0.854008,0.52026,0.055885,0.038728,-0.005434,
+ 0.057126,-0.907989,0.415082,0.056967,0.03869,-0.00557,
+ 0,-0.854008,0.52026,0.055885,0.038728,-0.005434,
+ 0,-0.909784,0.415082,0.055885,0.038656,-0.00557,
+ 0.114026,-0.90261,0.415082,0.058045,0.038792,-0.00557,
+ 0.107036,-0.847274,0.52026,0.058036,0.038863,-0.005434,
+ 0.053624,-0.852323,0.52026,0.056963,0.038762,-0.005434,
+ 0.114026,-0.90261,0.415082,0.058045,0.038792,-0.00557,
+ 0.053624,-0.852323,0.52026,0.056963,0.038762,-0.005434,
+ 0.057126,-0.907989,0.415082,0.056967,0.03869,-0.00557,
+ 0.170477,-0.893669,0.415082,0.059114,0.038961,-0.00557,
+ 0.160025,-0.838881,0.52026,0.0591,0.039032,-0.005434,
+ 0.107036,-0.847274,0.52026,0.058036,0.038863,-0.005434,
+ 0.170477,-0.893669,0.415082,0.059114,0.038961,-0.00557,
+ 0.107036,-0.847274,0.52026,0.058036,0.038863,-0.005434,
+ 0.114026,-0.90261,0.415082,0.058045,0.038792,-0.00557,
+ 0.226254,-0.881202,0.415082,0.06017,0.039198,-0.00557,
+ 0.212383,-0.827178,0.52026,0.060152,0.039267,-0.005434,
+ 0.160025,-0.838881,0.52026,0.0591,0.039032,-0.005434,
+ 0.226254,-0.881202,0.415082,0.06017,0.039198,-0.00557,
+ 0.160025,-0.838881,0.52026,0.0591,0.039032,-0.005434,
+ 0.170477,-0.893669,0.415082,0.059114,0.038961,-0.00557,
+ 0.281139,-0.865256,0.415082,0.061209,0.0395,-0.00557,
+ 0.263903,-0.81221,0.52026,0.061187,0.039568,-0.005434,
+ 0.212383,-0.827178,0.52026,0.060152,0.039267,-0.005434,
+ 0.281139,-0.865256,0.415082,0.061209,0.0395,-0.00557,
+ 0.212383,-0.827178,0.52026,0.060152,0.039267,-0.005434,
+ 0.226254,-0.881202,0.415082,0.06017,0.039198,-0.00557,
+ 0.334914,-0.845896,0.415082,0.062228,0.039866,-0.00557,
+ 0.314381,-0.794037,0.52026,0.062201,0.039933,-0.005434,
+ 0.263903,-0.81221,0.52026,0.061187,0.039568,-0.005434,
+ 0.334914,-0.845896,0.415082,0.062228,0.039866,-0.00557,
+ 0.263903,-0.81221,0.52026,0.061187,0.039568,-0.005434,
+ 0.281139,-0.865256,0.415082,0.061209,0.0395,-0.00557,
+ 0.387367,-0.823197,0.415082,0.063221,0.040296,-0.00557,
+ 0.363619,-0.77273,0.52026,0.06319,0.040361,-0.005434,
+ 0.314381,-0.794037,0.52026,0.062201,0.039933,-0.005434,
+ 0.387367,-0.823197,0.415082,0.063221,0.040296,-0.00557,
+ 0.314381,-0.794037,0.52026,0.062201,0.039933,-0.005434,
+ 0.334914,-0.845896,0.415082,0.062228,0.039866,-0.00557,
+ 0.438292,-0.79725,0.415082,0.064185,0.040787,-0.00557,
+ 0.411421,-0.748373,0.52026,0.064151,0.04085,-0.005434,
+ 0.363619,-0.77273,0.52026,0.06319,0.040361,-0.005434,
+ 0.438292,-0.79725,0.415082,0.064185,0.040787,-0.00557,
+ 0.363619,-0.77273,0.52026,0.06319,0.040361,-0.005434,
+ 0.387367,-0.823197,0.415082,0.063221,0.040296,-0.00557,
+ 0.487487,-0.768156,0.415082,0.065117,0.041338,-0.00557,
+ 0.4576,-0.721063,0.52026,0.065079,0.041399,-0.005434,
+ 0.411421,-0.748373,0.52026,0.064151,0.04085,-0.005434,
+ 0.487487,-0.768156,0.415082,0.065117,0.041338,-0.00557,
+ 0.411421,-0.748373,0.52026,0.064151,0.04085,-0.005434,
+ 0.438292,-0.79725,0.415082,0.064185,0.040787,-0.00557,
+ 0.534758,-0.736031,0.415082,0.066012,0.041947,-0.00557,
+ 0.501973,-0.690907,0.52026,0.06597,0.042005,-0.005434,
+ 0.4576,-0.721063,0.52026,0.065079,0.041399,-0.005434,
+ 0.534758,-0.736031,0.415082,0.066012,0.041947,-0.00557,
+ 0.4576,-0.721063,0.52026,0.065079,0.041399,-0.005434,
+ 0.487487,-0.768156,0.415082,0.065117,0.041338,-0.00557,
+ 0.579918,-0.701001,0.415082,0.066868,0.04261,-0.00557,
+ 0.544365,-0.658024,0.52026,0.066822,0.042666,-0.005434,
+ 0.501973,-0.690907,0.52026,0.06597,0.042005,-0.005434,
+ 0.579918,-0.701001,0.415082,0.066868,0.04261,-0.00557,
+ 0.501973,-0.690907,0.52026,0.06597,0.042005,-0.005434,
+ 0.534758,-0.736031,0.415082,0.066012,0.041947,-0.00557,
+ 0.62279,-0.663204,0.415082,0.067679,0.043326,-0.00557,
+ 0.584609,-0.622545,0.52026,0.06763,0.043378,-0.005434,
+ 0.544365,-0.658024,0.52026,0.066822,0.042666,-0.005434,
+ 0.62279,-0.663204,0.415082,0.067679,0.043326,-0.00557,
+ 0.544365,-0.658024,0.52026,0.066822,0.042666,-0.005434,
+ 0.579918,-0.701001,0.415082,0.066868,0.04261,-0.00557,
+ 0.663204,-0.62279,0.415082,0.068445,0.044091,-0.00557,
+ 0.622545,-0.584609,0.52026,0.068392,0.04414,-0.005434,
+ 0.584609,-0.622545,0.52026,0.06763,0.043378,-0.005434,
+ 0.663204,-0.62279,0.415082,0.068445,0.044091,-0.00557,
+ 0.584609,-0.622545,0.52026,0.06763,0.043378,-0.005434,
+ 0.62279,-0.663204,0.415082,0.067679,0.043326,-0.00557,
+ 0.701001,-0.579918,0.415082,0.069161,0.044903,-0.00557,
+ 0.658024,-0.544365,0.52026,0.069105,0.044949,-0.005434,
+ 0.622545,-0.584609,0.52026,0.068392,0.04414,-0.005434,
+ 0.701001,-0.579918,0.415082,0.069161,0.044903,-0.00557,
+ 0.622545,-0.584609,0.52026,0.068392,0.04414,-0.005434,
+ 0.663204,-0.62279,0.415082,0.068445,0.044091,-0.00557,
+ 0.736031,-0.534758,0.415082,0.069824,0.045758,-0.00557,
+ 0.690907,-0.501973,0.52026,0.069766,0.045801,-0.005434,
+ 0.658024,-0.544365,0.52026,0.069105,0.044949,-0.005434,
+ 0.736031,-0.534758,0.415082,0.069824,0.045758,-0.00557,
+ 0.658024,-0.544365,0.52026,0.069105,0.044949,-0.005434,
+ 0.701001,-0.579918,0.415082,0.069161,0.044903,-0.00557,
+ 0.768156,-0.487487,0.415082,0.070432,0.046653,-0.00557,
+ 0.721063,-0.4576,0.52026,0.070372,0.046692,-0.005434,
+ 0.690907,-0.501973,0.52026,0.069766,0.045801,-0.005434,
+ 0.768156,-0.487487,0.415082,0.070432,0.046653,-0.00557,
+ 0.690907,-0.501973,0.52026,0.069766,0.045801,-0.005434,
+ 0.736031,-0.534758,0.415082,0.069824,0.045758,-0.00557,
+ 0.79725,-0.438292,0.415082,0.070983,0.047585,-0.00557,
+ 0.748373,-0.411421,0.52026,0.07092,0.04762,-0.005434,
+ 0.721063,-0.4576,0.52026,0.070372,0.046692,-0.005434,
+ 0.79725,-0.438292,0.415082,0.070983,0.047585,-0.00557,
+ 0.721063,-0.4576,0.52026,0.070372,0.046692,-0.005434,
+ 0.768156,-0.487487,0.415082,0.070432,0.046653,-0.00557,
+ 0.823197,-0.387367,0.415082,0.071475,0.048549,-0.00557,
+ 0.77273,-0.363619,0.52026,0.07141,0.04858,-0.005434,
+ 0.748373,-0.411421,0.52026,0.07092,0.04762,-0.005434,
+ 0.823197,-0.387367,0.415082,0.071475,0.048549,-0.00557,
+ 0.748373,-0.411421,0.52026,0.07092,0.04762,-0.005434,
+ 0.79725,-0.438292,0.415082,0.070983,0.047585,-0.00557,
+ 0.845896,-0.334914,0.415082,0.071905,0.049543,-0.00557,
+ 0.794037,-0.314381,0.52026,0.071838,0.049569,-0.005434,
+ 0.77273,-0.363619,0.52026,0.07141,0.04858,-0.005434,
+ 0.845896,-0.334914,0.415082,0.071905,0.049543,-0.00557,
+ 0.77273,-0.363619,0.52026,0.07141,0.04858,-0.005434,
+ 0.823197,-0.387367,0.415082,0.071475,0.048549,-0.00557,
+ 0.865256,-0.281139,0.415082,0.072271,0.050561,-0.00557,
+ 0.81221,-0.263903,0.52026,0.072203,0.050584,-0.005434,
+ 0.794037,-0.314381,0.52026,0.071838,0.049569,-0.005434,
+ 0.865256,-0.281139,0.415082,0.072271,0.050561,-0.00557,
+ 0.794037,-0.314381,0.52026,0.071838,0.049569,-0.005434,
+ 0.845896,-0.334914,0.415082,0.071905,0.049543,-0.00557,
+ 0.881202,-0.226254,0.415082,0.072573,0.051601,-0.00557,
+ 0.827178,-0.212383,0.52026,0.072503,0.051619,-0.005434,
+ 0.81221,-0.263903,0.52026,0.072203,0.050584,-0.005434,
+ 0.881202,-0.226254,0.415082,0.072573,0.051601,-0.00557,
+ 0.81221,-0.263903,0.52026,0.072203,0.050584,-0.005434,
+ 0.865256,-0.281139,0.415082,0.072271,0.050561,-0.00557,
+ 0.893669,-0.170477,0.415082,0.072809,0.052657,-0.00557,
+ 0.838881,-0.160025,0.52026,0.072739,0.05267,-0.005434,
+ 0.827178,-0.212383,0.52026,0.072503,0.051619,-0.005434,
+ 0.893669,-0.170477,0.415082,0.072809,0.052657,-0.00557,
+ 0.827178,-0.212383,0.52026,0.072503,0.051619,-0.005434,
+ 0.881202,-0.226254,0.415082,0.072573,0.051601,-0.00557,
+ 0.90261,-0.114026,0.415082,0.072978,0.053726,-0.00557,
+ 0.847274,-0.107036,0.52026,0.072907,0.053735,-0.005434,
+ 0.838881,-0.160025,0.52026,0.072739,0.05267,-0.005434,
+ 0.90261,-0.114026,0.415082,0.072978,0.053726,-0.00557,
+ 0.838881,-0.160025,0.52026,0.072739,0.05267,-0.005434,
+ 0.893669,-0.170477,0.415082,0.072809,0.052657,-0.00557,
+ 0.907989,-0.057126,0.415082,0.07308,0.054803,-0.00557,
+ 0.852323,-0.053624,0.52026,0.073009,0.054808,-0.005434,
+ 0.847274,-0.107036,0.52026,0.072907,0.053735,-0.005434,
+ 0.907989,-0.057126,0.415082,0.07308,0.054803,-0.00557,
+ 0.847274,-0.107036,0.52026,0.072907,0.053735,-0.005434,
+ 0.90261,-0.114026,0.415082,0.072978,0.053726,-0.00557,
+ 0.909784,0,0.415082,0.073114,0.055885,-0.00557,
+ 0.854008,0,0.52026,0.073042,0.055885,-0.005434,
+ 0.852323,-0.053624,0.52026,0.073009,0.054808,-0.005434,
+ 0.909784,0,0.415082,0.073114,0.055885,-0.00557,
+ 0.852323,-0.053624,0.52026,0.073009,0.054808,-0.005434,
+ 0.907989,-0.057126,0.415082,0.07308,0.054803,-0.00557,
+ 0.907989,0.057126,0.415082,0.07308,0.056967,-0.00557,
+ 0.852323,0.053624,0.52026,0.073009,0.056963,-0.005434,
+ 0.854008,0,0.52026,0.073042,0.055885,-0.005434,
+ 0.907989,0.057126,0.415082,0.07308,0.056967,-0.00557,
+ 0.854008,0,0.52026,0.073042,0.055885,-0.005434,
+ 0.909784,0,0.415082,0.073114,0.055885,-0.00557,
+ 0.90261,0.114026,0.415082,0.072978,0.058045,-0.00557,
+ 0.847274,0.107036,0.52026,0.072907,0.058036,-0.005434,
+ 0.852323,0.053624,0.52026,0.073009,0.056963,-0.005434,
+ 0.90261,0.114026,0.415082,0.072978,0.058045,-0.00557,
+ 0.852323,0.053624,0.52026,0.073009,0.056963,-0.005434,
+ 0.907989,0.057126,0.415082,0.07308,0.056967,-0.00557,
+ 0.893669,0.170477,0.415082,0.072809,0.059114,-0.00557,
+ 0.838881,0.160025,0.52026,0.072739,0.0591,-0.005434,
+ 0.847274,0.107036,0.52026,0.072907,0.058036,-0.005434,
+ 0.893669,0.170477,0.415082,0.072809,0.059114,-0.00557,
+ 0.847274,0.107036,0.52026,0.072907,0.058036,-0.005434,
+ 0.90261,0.114026,0.415082,0.072978,0.058045,-0.00557,
+ 0.881202,0.226254,0.415082,0.072573,0.06017,-0.00557,
+ 0.827178,0.212383,0.52026,0.072503,0.060152,-0.005434,
+ 0.838881,0.160025,0.52026,0.072739,0.0591,-0.005434,
+ 0.881202,0.226254,0.415082,0.072573,0.06017,-0.00557,
+ 0.838881,0.160025,0.52026,0.072739,0.0591,-0.005434,
+ 0.893669,0.170477,0.415082,0.072809,0.059114,-0.00557,
+ 0.865256,0.281139,0.415082,0.072271,0.061209,-0.00557,
+ 0.81221,0.263903,0.52026,0.072203,0.061187,-0.005434,
+ 0.827178,0.212383,0.52026,0.072503,0.060152,-0.005434,
+ 0.865256,0.281139,0.415082,0.072271,0.061209,-0.00557,
+ 0.827178,0.212383,0.52026,0.072503,0.060152,-0.005434,
+ 0.881202,0.226254,0.415082,0.072573,0.06017,-0.00557,
+ 0.845896,0.334914,0.415082,0.071905,0.062228,-0.00557,
+ 0.794037,0.314381,0.52026,0.071838,0.062201,-0.005434,
+ 0.81221,0.263903,0.52026,0.072203,0.061187,-0.005434,
+ 0.845896,0.334914,0.415082,0.071905,0.062228,-0.00557,
+ 0.81221,0.263903,0.52026,0.072203,0.061187,-0.005434,
+ 0.865256,0.281139,0.415082,0.072271,0.061209,-0.00557,
+ 0.823197,0.387367,0.415082,0.071475,0.063221,-0.00557,
+ 0.77273,0.363619,0.52026,0.07141,0.06319,-0.005434,
+ 0.794037,0.314381,0.52026,0.071838,0.062201,-0.005434,
+ 0.823197,0.387367,0.415082,0.071475,0.063221,-0.00557,
+ 0.794037,0.314381,0.52026,0.071838,0.062201,-0.005434,
+ 0.845896,0.334914,0.415082,0.071905,0.062228,-0.00557,
+ 0.79725,0.438292,0.415082,0.070983,0.064185,-0.00557,
+ 0.748373,0.411421,0.52026,0.07092,0.064151,-0.005434,
+ 0.77273,0.363619,0.52026,0.07141,0.06319,-0.005434,
+ 0.79725,0.438292,0.415082,0.070983,0.064185,-0.00557,
+ 0.77273,0.363619,0.52026,0.07141,0.06319,-0.005434,
+ 0.823197,0.387367,0.415082,0.071475,0.063221,-0.00557,
+ 0.768156,0.487487,0.415082,0.070432,0.065117,-0.00557,
+ 0.721063,0.4576,0.52026,0.070372,0.065079,-0.005434,
+ 0.748373,0.411421,0.52026,0.07092,0.064151,-0.005434,
+ 0.768156,0.487487,0.415082,0.070432,0.065117,-0.00557,
+ 0.748373,0.411421,0.52026,0.07092,0.064151,-0.005434,
+ 0.79725,0.438292,0.415082,0.070983,0.064185,-0.00557,
+ 0.736031,0.534758,0.415082,0.069824,0.066012,-0.00557,
+ 0.690907,0.501973,0.52026,0.069766,0.06597,-0.005434,
+ 0.721063,0.4576,0.52026,0.070372,0.065079,-0.005434,
+ 0.736031,0.534758,0.415082,0.069824,0.066012,-0.00557,
+ 0.721063,0.4576,0.52026,0.070372,0.065079,-0.005434,
+ 0.768156,0.487487,0.415082,0.070432,0.065117,-0.00557,
+ 0.701001,0.579918,0.415082,0.069161,0.066868,-0.00557,
+ 0.658024,0.544365,0.52026,0.069105,0.066822,-0.005434,
+ 0.690907,0.501973,0.52026,0.069766,0.06597,-0.005434,
+ 0.701001,0.579918,0.415082,0.069161,0.066868,-0.00557,
+ 0.690907,0.501973,0.52026,0.069766,0.06597,-0.005434,
+ 0.736031,0.534758,0.415082,0.069824,0.066012,-0.00557,
+ 0.663204,0.62279,0.415082,0.068445,0.067679,-0.00557,
+ 0.622545,0.584609,0.52026,0.068392,0.06763,-0.005434,
+ 0.658024,0.544365,0.52026,0.069105,0.066822,-0.005434,
+ 0.663204,0.62279,0.415082,0.068445,0.067679,-0.00557,
+ 0.658024,0.544365,0.52026,0.069105,0.066822,-0.005434,
+ 0.701001,0.579918,0.415082,0.069161,0.066868,-0.00557,
+ 0.62279,0.663204,0.415082,0.067679,0.068445,-0.00557,
+ 0.584609,0.622545,0.52026,0.06763,0.068392,-0.005434,
+ 0.622545,0.584609,0.52026,0.068392,0.06763,-0.005434,
+ 0.62279,0.663204,0.415082,0.067679,0.068445,-0.00557,
+ 0.622545,0.584609,0.52026,0.068392,0.06763,-0.005434,
+ 0.663204,0.62279,0.415082,0.068445,0.067679,-0.00557,
+ 0.579918,0.701001,0.415082,0.066868,0.069161,-0.00557,
+ 0.544365,0.658024,0.52026,0.066822,0.069105,-0.005434,
+ 0.584609,0.622545,0.52026,0.06763,0.068392,-0.005434,
+ 0.579918,0.701001,0.415082,0.066868,0.069161,-0.00557,
+ 0.584609,0.622545,0.52026,0.06763,0.068392,-0.005434,
+ 0.62279,0.663204,0.415082,0.067679,0.068445,-0.00557,
+ 0.534758,0.736031,0.415082,0.066012,0.069824,-0.00557,
+ 0.501973,0.690907,0.52026,0.06597,0.069766,-0.005434,
+ 0.544365,0.658024,0.52026,0.066822,0.069105,-0.005434,
+ 0.534758,0.736031,0.415082,0.066012,0.069824,-0.00557,
+ 0.544365,0.658024,0.52026,0.066822,0.069105,-0.005434,
+ 0.579918,0.701001,0.415082,0.066868,0.069161,-0.00557,
+ 0.487487,0.768156,0.415082,0.065117,0.070432,-0.00557,
+ 0.4576,0.721063,0.52026,0.065079,0.070372,-0.005434,
+ 0.501973,0.690907,0.52026,0.06597,0.069766,-0.005434,
+ 0.487487,0.768156,0.415082,0.065117,0.070432,-0.00557,
+ 0.501973,0.690907,0.52026,0.06597,0.069766,-0.005434,
+ 0.534758,0.736031,0.415082,0.066012,0.069824,-0.00557,
+ 0.438292,0.79725,0.415082,0.064185,0.070983,-0.00557,
+ 0.411421,0.748373,0.52026,0.064151,0.07092,-0.005434,
+ 0.4576,0.721063,0.52026,0.065079,0.070372,-0.005434,
+ 0.438292,0.79725,0.415082,0.064185,0.070983,-0.00557,
+ 0.4576,0.721063,0.52026,0.065079,0.070372,-0.005434,
+ 0.487487,0.768156,0.415082,0.065117,0.070432,-0.00557,
+ 0.387367,0.823197,0.415082,0.063221,0.071475,-0.00557,
+ 0.363619,0.77273,0.52026,0.06319,0.07141,-0.005434,
+ 0.411421,0.748373,0.52026,0.064151,0.07092,-0.005434,
+ 0.387367,0.823197,0.415082,0.063221,0.071475,-0.00557,
+ 0.411421,0.748373,0.52026,0.064151,0.07092,-0.005434,
+ 0.438292,0.79725,0.415082,0.064185,0.070983,-0.00557,
+ 0.334914,0.845896,0.415082,0.062228,0.071905,-0.00557,
+ 0.314381,0.794037,0.52026,0.062201,0.071838,-0.005434,
+ 0.363619,0.77273,0.52026,0.06319,0.07141,-0.005434,
+ 0.334914,0.845896,0.415082,0.062228,0.071905,-0.00557,
+ 0.363619,0.77273,0.52026,0.06319,0.07141,-0.005434,
+ 0.387367,0.823197,0.415082,0.063221,0.071475,-0.00557,
+ 0.281139,0.865256,0.415082,0.061209,0.072271,-0.00557,
+ 0.263903,0.81221,0.52026,0.061187,0.072203,-0.005434,
+ 0.314381,0.794037,0.52026,0.062201,0.071838,-0.005434,
+ 0.281139,0.865256,0.415082,0.061209,0.072271,-0.00557,
+ 0.314381,0.794037,0.52026,0.062201,0.071838,-0.005434,
+ 0.334914,0.845896,0.415082,0.062228,0.071905,-0.00557,
+ 0.226254,0.881202,0.415082,0.06017,0.072573,-0.00557,
+ 0.212383,0.827178,0.52026,0.060152,0.072503,-0.005434,
+ 0.263903,0.81221,0.52026,0.061187,0.072203,-0.005434,
+ 0.226254,0.881202,0.415082,0.06017,0.072573,-0.00557,
+ 0.263903,0.81221,0.52026,0.061187,0.072203,-0.005434,
+ 0.281139,0.865256,0.415082,0.061209,0.072271,-0.00557,
+ 0.170477,0.893669,0.415082,0.059114,0.072809,-0.00557,
+ 0.160025,0.838881,0.52026,0.0591,0.072739,-0.005434,
+ 0.212383,0.827178,0.52026,0.060152,0.072503,-0.005434,
+ 0.170477,0.893669,0.415082,0.059114,0.072809,-0.00557,
+ 0.212383,0.827178,0.52026,0.060152,0.072503,-0.005434,
+ 0.226254,0.881202,0.415082,0.06017,0.072573,-0.00557,
+ 0.114026,0.90261,0.415082,0.058045,0.072978,-0.00557,
+ 0.107036,0.847274,0.52026,0.058036,0.072907,-0.005434,
+ 0.160025,0.838881,0.52026,0.0591,0.072739,-0.005434,
+ 0.114026,0.90261,0.415082,0.058045,0.072978,-0.00557,
+ 0.160025,0.838881,0.52026,0.0591,0.072739,-0.005434,
+ 0.170477,0.893669,0.415082,0.059114,0.072809,-0.00557,
+ 0.057126,0.907989,0.415082,0.056967,0.07308,-0.00557,
+ 0.053624,0.852323,0.52026,0.056963,0.073009,-0.005434,
+ 0.107036,0.847274,0.52026,0.058036,0.072907,-0.005434,
+ 0.057126,0.907989,0.415082,0.056967,0.07308,-0.00557,
+ 0.107036,0.847274,0.52026,0.058036,0.072907,-0.005434,
+ 0.114026,0.90261,0.415082,0.058045,0.072978,-0.00557,
+ 0,0.909784,0.415082,0.055885,0.073114,-0.00557,
+ 0,0.854008,0.52026,0.055885,0.073042,-0.005434,
+ 0.053624,0.852323,0.52026,0.056963,0.073009,-0.005434,
+ 0,0.909784,0.415082,0.055885,0.073114,-0.00557,
+ 0.053624,0.852323,0.52026,0.056963,0.073009,-0.005434,
+ 0.057126,0.907989,0.415082,0.056967,0.07308,-0.00557,
+ -0.057126,0.907989,0.415082,0.054803,0.07308,-0.00557,
+ -0.053624,0.852323,0.52026,0.054808,0.073009,-0.005434,
+ 0,0.854008,0.52026,0.055885,0.073042,-0.005434,
+ -0.057126,0.907989,0.415082,0.054803,0.07308,-0.00557,
+ 0,0.854008,0.52026,0.055885,0.073042,-0.005434,
+ 0,0.909784,0.415082,0.055885,0.073114,-0.00557,
+ -0.114026,0.90261,0.415082,0.053726,0.072978,-0.00557,
+ -0.107036,0.847274,0.52026,0.053735,0.072907,-0.005434,
+ -0.053624,0.852323,0.52026,0.054808,0.073009,-0.005434,
+ -0.114026,0.90261,0.415082,0.053726,0.072978,-0.00557,
+ -0.053624,0.852323,0.52026,0.054808,0.073009,-0.005434,
+ -0.057126,0.907989,0.415082,0.054803,0.07308,-0.00557,
+ -0.170477,0.893669,0.415082,0.052657,0.072809,-0.00557,
+ -0.160025,0.838881,0.52026,0.05267,0.072739,-0.005434,
+ -0.107036,0.847274,0.52026,0.053735,0.072907,-0.005434,
+ -0.170477,0.893669,0.415082,0.052657,0.072809,-0.00557,
+ -0.107036,0.847274,0.52026,0.053735,0.072907,-0.005434,
+ -0.114026,0.90261,0.415082,0.053726,0.072978,-0.00557,
+ -0.226254,0.881202,0.415082,0.051601,0.072573,-0.00557,
+ -0.212383,0.827178,0.52026,0.051619,0.072503,-0.005434,
+ -0.160025,0.838881,0.52026,0.05267,0.072739,-0.005434,
+ -0.226254,0.881202,0.415082,0.051601,0.072573,-0.00557,
+ -0.160025,0.838881,0.52026,0.05267,0.072739,-0.005434,
+ -0.170477,0.893669,0.415082,0.052657,0.072809,-0.00557,
+ -0.281139,0.865256,0.415082,0.050561,0.072271,-0.00557,
+ -0.263903,0.81221,0.52026,0.050584,0.072203,-0.005434,
+ -0.212383,0.827178,0.52026,0.051619,0.072503,-0.005434,
+ -0.281139,0.865256,0.415082,0.050561,0.072271,-0.00557,
+ -0.212383,0.827178,0.52026,0.051619,0.072503,-0.005434,
+ -0.226254,0.881202,0.415082,0.051601,0.072573,-0.00557,
+ -0.334914,0.845896,0.415082,0.049543,0.071905,-0.00557,
+ -0.314381,0.794037,0.52026,0.049569,0.071838,-0.005434,
+ -0.263903,0.81221,0.52026,0.050584,0.072203,-0.005434,
+ -0.334914,0.845896,0.415082,0.049543,0.071905,-0.00557,
+ -0.263903,0.81221,0.52026,0.050584,0.072203,-0.005434,
+ -0.281139,0.865256,0.415082,0.050561,0.072271,-0.00557,
+ -0.387367,0.823197,0.415082,0.048549,0.071475,-0.00557,
+ -0.363619,0.77273,0.52026,0.04858,0.07141,-0.005434,
+ -0.314381,0.794037,0.52026,0.049569,0.071838,-0.005434,
+ -0.387367,0.823197,0.415082,0.048549,0.071475,-0.00557,
+ -0.314381,0.794037,0.52026,0.049569,0.071838,-0.005434,
+ -0.334914,0.845896,0.415082,0.049543,0.071905,-0.00557,
+ -0.438292,0.79725,0.415082,0.047585,0.070983,-0.00557,
+ -0.411421,0.748373,0.52026,0.04762,0.07092,-0.005434,
+ -0.363619,0.77273,0.52026,0.04858,0.07141,-0.005434,
+ -0.438292,0.79725,0.415082,0.047585,0.070983,-0.00557,
+ -0.363619,0.77273,0.52026,0.04858,0.07141,-0.005434,
+ -0.387367,0.823197,0.415082,0.048549,0.071475,-0.00557,
+ -0.487487,0.768156,0.415082,0.046653,0.070432,-0.00557,
+ -0.4576,0.721063,0.52026,0.046692,0.070372,-0.005434,
+ -0.411421,0.748373,0.52026,0.04762,0.07092,-0.005434,
+ -0.487487,0.768156,0.415082,0.046653,0.070432,-0.00557,
+ -0.411421,0.748373,0.52026,0.04762,0.07092,-0.005434,
+ -0.438292,0.79725,0.415082,0.047585,0.070983,-0.00557,
+ -0.534758,0.736031,0.415082,0.045758,0.069824,-0.00557,
+ -0.501973,0.690907,0.52026,0.045801,0.069766,-0.005434,
+ -0.4576,0.721063,0.52026,0.046692,0.070372,-0.005434,
+ -0.534758,0.736031,0.415082,0.045758,0.069824,-0.00557,
+ -0.4576,0.721063,0.52026,0.046692,0.070372,-0.005434,
+ -0.487487,0.768156,0.415082,0.046653,0.070432,-0.00557,
+ -0.579918,0.701001,0.415082,0.044903,0.069161,-0.00557,
+ -0.544365,0.658024,0.52026,0.044949,0.069105,-0.005434,
+ -0.501973,0.690907,0.52026,0.045801,0.069766,-0.005434,
+ -0.579918,0.701001,0.415082,0.044903,0.069161,-0.00557,
+ -0.501973,0.690907,0.52026,0.045801,0.069766,-0.005434,
+ -0.534758,0.736031,0.415082,0.045758,0.069824,-0.00557,
+ -0.62279,0.663204,0.415082,0.044091,0.068445,-0.00557,
+ -0.584609,0.622545,0.52026,0.04414,0.068392,-0.005434,
+ -0.544365,0.658024,0.52026,0.044949,0.069105,-0.005434,
+ -0.62279,0.663204,0.415082,0.044091,0.068445,-0.00557,
+ -0.544365,0.658024,0.52026,0.044949,0.069105,-0.005434,
+ -0.579918,0.701001,0.415082,0.044903,0.069161,-0.00557,
+ -0.663204,0.62279,0.415082,0.043326,0.067679,-0.00557,
+ -0.622545,0.584609,0.52026,0.043378,0.06763,-0.005434,
+ -0.584609,0.622545,0.52026,0.04414,0.068392,-0.005434,
+ -0.663204,0.62279,0.415082,0.043326,0.067679,-0.00557,
+ -0.584609,0.622545,0.52026,0.04414,0.068392,-0.005434,
+ -0.62279,0.663204,0.415082,0.044091,0.068445,-0.00557,
+ -0.701001,0.579918,0.415082,0.04261,0.066868,-0.00557,
+ -0.658024,0.544365,0.52026,0.042666,0.066822,-0.005434,
+ -0.622545,0.584609,0.52026,0.043378,0.06763,-0.005434,
+ -0.701001,0.579918,0.415082,0.04261,0.066868,-0.00557,
+ -0.622545,0.584609,0.52026,0.043378,0.06763,-0.005434,
+ -0.663204,0.62279,0.415082,0.043326,0.067679,-0.00557,
+ -0.736031,0.534758,0.415082,0.041947,0.066012,-0.00557,
+ -0.690907,0.501973,0.52026,0.042005,0.06597,-0.005434,
+ -0.658024,0.544365,0.52026,0.042666,0.066822,-0.005434,
+ -0.736031,0.534758,0.415082,0.041947,0.066012,-0.00557,
+ -0.658024,0.544365,0.52026,0.042666,0.066822,-0.005434,
+ -0.701001,0.579918,0.415082,0.04261,0.066868,-0.00557,
+ -0.768156,0.487487,0.415082,0.041338,0.065117,-0.00557,
+ -0.721063,0.4576,0.52026,0.041399,0.065079,-0.005434,
+ -0.690907,0.501973,0.52026,0.042005,0.06597,-0.005434,
+ -0.768156,0.487487,0.415082,0.041338,0.065117,-0.00557,
+ -0.690907,0.501973,0.52026,0.042005,0.06597,-0.005434,
+ -0.736031,0.534758,0.415082,0.041947,0.066012,-0.00557,
+ -0.79725,0.438292,0.415082,0.040787,0.064185,-0.00557,
+ -0.748373,0.411421,0.52026,0.04085,0.064151,-0.005434,
+ -0.721063,0.4576,0.52026,0.041399,0.065079,-0.005434,
+ -0.79725,0.438292,0.415082,0.040787,0.064185,-0.00557,
+ -0.721063,0.4576,0.52026,0.041399,0.065079,-0.005434,
+ -0.768156,0.487487,0.415082,0.041338,0.065117,-0.00557,
+ -0.823197,0.387367,0.415082,0.040296,0.063221,-0.00557,
+ -0.77273,0.363619,0.52026,0.040361,0.06319,-0.005434,
+ -0.748373,0.411421,0.52026,0.04085,0.064151,-0.005434,
+ -0.823197,0.387367,0.415082,0.040296,0.063221,-0.00557,
+ -0.748373,0.411421,0.52026,0.04085,0.064151,-0.005434,
+ -0.79725,0.438292,0.415082,0.040787,0.064185,-0.00557,
+ -0.845896,0.334914,0.415082,0.039866,0.062228,-0.00557,
+ -0.794037,0.314381,0.52026,0.039933,0.062201,-0.005434,
+ -0.77273,0.363619,0.52026,0.040361,0.06319,-0.005434,
+ -0.845896,0.334914,0.415082,0.039866,0.062228,-0.00557,
+ -0.77273,0.363619,0.52026,0.040361,0.06319,-0.005434,
+ -0.823197,0.387367,0.415082,0.040296,0.063221,-0.00557,
+ -0.865256,0.281139,0.415082,0.0395,0.061209,-0.00557,
+ -0.81221,0.263903,0.52026,0.039568,0.061187,-0.005434,
+ -0.794037,0.314381,0.52026,0.039933,0.062201,-0.005434,
+ -0.865256,0.281139,0.415082,0.0395,0.061209,-0.00557,
+ -0.794037,0.314381,0.52026,0.039933,0.062201,-0.005434,
+ -0.845896,0.334914,0.415082,0.039866,0.062228,-0.00557,
+ -0.881202,0.226254,0.415082,0.039198,0.06017,-0.00557,
+ -0.827178,0.212383,0.52026,0.039267,0.060152,-0.005434,
+ -0.81221,0.263903,0.52026,0.039568,0.061187,-0.005434,
+ -0.881202,0.226254,0.415082,0.039198,0.06017,-0.00557,
+ -0.81221,0.263903,0.52026,0.039568,0.061187,-0.005434,
+ -0.865256,0.281139,0.415082,0.0395,0.061209,-0.00557,
+ -0.893669,0.170477,0.415082,0.038961,0.059114,-0.00557,
+ -0.838881,0.160025,0.52026,0.039032,0.0591,-0.005434,
+ -0.827178,0.212383,0.52026,0.039267,0.060152,-0.005434,
+ -0.893669,0.170477,0.415082,0.038961,0.059114,-0.00557,
+ -0.827178,0.212383,0.52026,0.039267,0.060152,-0.005434,
+ -0.881202,0.226254,0.415082,0.039198,0.06017,-0.00557,
+ -0.90261,0.114026,0.415082,0.038792,0.058045,-0.00557,
+ -0.847274,0.107036,0.52026,0.038863,0.058036,-0.005434,
+ -0.838881,0.160025,0.52026,0.039032,0.0591,-0.005434,
+ -0.90261,0.114026,0.415082,0.038792,0.058045,-0.00557,
+ -0.838881,0.160025,0.52026,0.039032,0.0591,-0.005434,
+ -0.893669,0.170477,0.415082,0.038961,0.059114,-0.00557,
+ -0.907989,0.057126,0.415082,0.03869,0.056967,-0.00557,
+ -0.852323,0.053624,0.52026,0.038762,0.056963,-0.005434,
+ -0.847274,0.107036,0.52026,0.038863,0.058036,-0.005434,
+ -0.907989,0.057126,0.415082,0.03869,0.056967,-0.00557,
+ -0.847274,0.107036,0.52026,0.038863,0.058036,-0.005434,
+ -0.90261,0.114026,0.415082,0.038792,0.058045,-0.00557,
+ -0.909784,0,0.415082,0.038656,0.055885,-0.00557,
+ -0.854008,0,0.52026,0.038728,0.055885,-0.005434,
+ -0.852323,0.053624,0.52026,0.038762,0.056963,-0.005434,
+ -0.909784,0,0.415082,0.038656,0.055885,-0.00557,
+ -0.852323,0.053624,0.52026,0.038762,0.056963,-0.005434,
+ -0.907989,0.057126,0.415082,0.03869,0.056967,-0.00557,
+ -0.907989,-0.057126,0.415082,0.03869,0.054803,-0.00557,
+ -0.852323,-0.053624,0.52026,0.038762,0.054808,-0.005434,
+ -0.854008,0,0.52026,0.038728,0.055885,-0.005434,
+ -0.907989,-0.057126,0.415082,0.03869,0.054803,-0.00557,
+ -0.854008,0,0.52026,0.038728,0.055885,-0.005434,
+ -0.909784,0,0.415082,0.038656,0.055885,-0.00557,
+ -0.90261,-0.114026,0.415082,0.038792,0.053726,-0.00557,
+ -0.847274,-0.107036,0.52026,0.038863,0.053735,-0.005434,
+ -0.852323,-0.053624,0.52026,0.038762,0.054808,-0.005434,
+ -0.90261,-0.114026,0.415082,0.038792,0.053726,-0.00557,
+ -0.852323,-0.053624,0.52026,0.038762,0.054808,-0.005434,
+ -0.907989,-0.057126,0.415082,0.03869,0.054803,-0.00557,
+ -0.847274,-0.107036,0.52026,0.038863,0.053735,-0.005434,
+ -0.779929,-0.098528,0.618064,0.03895,0.053746,-0.005308,
+ -0.784577,-0.049361,0.618064,0.038849,0.054813,-0.005308,
+ -0.847274,-0.107036,0.52026,0.038863,0.053735,-0.005434,
+ -0.784577,-0.049361,0.618064,0.038849,0.054813,-0.005308,
+ -0.852323,-0.053624,0.52026,0.038762,0.054808,-0.005434,
+ -0.838881,-0.160025,0.52026,0.039032,0.05267,-0.005434,
+ -0.772203,-0.147306,0.618064,0.039118,0.052687,-0.005308,
+ -0.779929,-0.098528,0.618064,0.03895,0.053746,-0.005308,
+ -0.838881,-0.160025,0.52026,0.039032,0.05267,-0.005434,
+ -0.779929,-0.098528,0.618064,0.03895,0.053746,-0.005308,
+ -0.847274,-0.107036,0.52026,0.038863,0.053735,-0.005434,
+ -0.827178,-0.212383,0.52026,0.039267,0.051619,-0.005434,
+ -0.76143,-0.195502,0.618064,0.039352,0.05164,-0.005308,
+ -0.772203,-0.147306,0.618064,0.039118,0.052687,-0.005308,
+ -0.827178,-0.212383,0.52026,0.039267,0.051619,-0.005434,
+ -0.772203,-0.147306,0.618064,0.039118,0.052687,-0.005308,
+ -0.838881,-0.160025,0.52026,0.039032,0.05267,-0.005434,
+ -0.81221,-0.263903,0.52026,0.039568,0.050584,-0.005434,
+ -0.747652,-0.242927,0.618064,0.039651,0.05061,-0.005308,
+ -0.76143,-0.195502,0.618064,0.039352,0.05164,-0.005308,
+ -0.81221,-0.263903,0.52026,0.039568,0.050584,-0.005434,
+ -0.76143,-0.195502,0.618064,0.039352,0.05164,-0.005308,
+ -0.827178,-0.212383,0.52026,0.039267,0.051619,-0.005434,
+ -0.794037,-0.314381,0.52026,0.039933,0.049569,-0.005434,
+ -0.730923,-0.289393,0.618064,0.040014,0.049601,-0.005308,
+ -0.747652,-0.242927,0.618064,0.039651,0.05061,-0.005308,
+ -0.794037,-0.314381,0.52026,0.039933,0.049569,-0.005434,
+ -0.747652,-0.242927,0.618064,0.039651,0.05061,-0.005308,
+ -0.81221,-0.263903,0.52026,0.039568,0.050584,-0.005434,
+ -0.77273,-0.363619,0.52026,0.040361,0.04858,-0.005434,
+ -0.71131,-0.334717,0.618064,0.04044,0.048617,-0.005308,
+ -0.730923,-0.289393,0.618064,0.040014,0.049601,-0.005308,
+ -0.77273,-0.363619,0.52026,0.040361,0.04858,-0.005434,
+ -0.730923,-0.289393,0.618064,0.040014,0.049601,-0.005308,
+ -0.794037,-0.314381,0.52026,0.039933,0.049569,-0.005434,
+ -0.748373,-0.411421,0.52026,0.04085,0.04762,-0.005434,
+ -0.688889,-0.37872,0.618064,0.040927,0.047662,-0.005308,
+ -0.71131,-0.334717,0.618064,0.04044,0.048617,-0.005308,
+ -0.748373,-0.411421,0.52026,0.04085,0.04762,-0.005434,
+ -0.71131,-0.334717,0.618064,0.04044,0.048617,-0.005308,
+ -0.77273,-0.363619,0.52026,0.040361,0.04858,-0.005434,
+ -0.721063,-0.4576,0.52026,0.041399,0.046692,-0.005434,
+ -0.66375,-0.421228,0.618064,0.041473,0.046739,-0.005308,
+ -0.688889,-0.37872,0.618064,0.040927,0.047662,-0.005308,
+ -0.721063,-0.4576,0.52026,0.041399,0.046692,-0.005434,
+ -0.688889,-0.37872,0.618064,0.040927,0.047662,-0.005308,
+ -0.748373,-0.411421,0.52026,0.04085,0.04762,-0.005434,
+ -0.690907,-0.501973,0.52026,0.042005,0.045801,-0.005434,
+ -0.635991,-0.462074,0.618064,0.042076,0.045852,-0.005308,
+ -0.66375,-0.421228,0.618064,0.041473,0.046739,-0.005308,
+ -0.690907,-0.501973,0.52026,0.042005,0.045801,-0.005434,
+ -0.66375,-0.421228,0.618064,0.041473,0.046739,-0.005308,
+ -0.721063,-0.4576,0.52026,0.041399,0.046692,-0.005434,
+ -0.658024,-0.544365,0.52026,0.042666,0.044949,-0.005434,
+ -0.605722,-0.501097,0.618064,0.042733,0.045005,-0.005308,
+ -0.635991,-0.462074,0.618064,0.042076,0.045852,-0.005308,
+ -0.658024,-0.544365,0.52026,0.042666,0.044949,-0.005434,
+ -0.635991,-0.462074,0.618064,0.042076,0.045852,-0.005308,
+ -0.690907,-0.501973,0.52026,0.042005,0.045801,-0.005434,
+ -0.622545,-0.584609,0.52026,0.043378,0.04414,-0.005434,
+ -0.573062,-0.538141,0.618064,0.043442,0.0442,-0.005308,
+ -0.605722,-0.501097,0.618064,0.042733,0.045005,-0.005308,
+ -0.622545,-0.584609,0.52026,0.043378,0.04414,-0.005434,
+ -0.605722,-0.501097,0.618064,0.042733,0.045005,-0.005308,
+ -0.658024,-0.544365,0.52026,0.042666,0.044949,-0.005434,
+ -0.584609,-0.622545,0.52026,0.04414,0.043378,-0.005434,
+ -0.538141,-0.573062,0.618064,0.0442,0.043442,-0.005308,
+ -0.573062,-0.538141,0.618064,0.043442,0.0442,-0.005308,
+ -0.584609,-0.622545,0.52026,0.04414,0.043378,-0.005434,
+ -0.573062,-0.538141,0.618064,0.043442,0.0442,-0.005308,
+ -0.622545,-0.584609,0.52026,0.043378,0.04414,-0.005434,
+ -0.544365,-0.658024,0.52026,0.044949,0.042666,-0.005434,
+ -0.501097,-0.605722,0.618064,0.045005,0.042733,-0.005308,
+ -0.538141,-0.573062,0.618064,0.0442,0.043442,-0.005308,
+ -0.544365,-0.658024,0.52026,0.044949,0.042666,-0.005434,
+ -0.538141,-0.573062,0.618064,0.0442,0.043442,-0.005308,
+ -0.584609,-0.622545,0.52026,0.04414,0.043378,-0.005434,
+ -0.501973,-0.690907,0.52026,0.045801,0.042005,-0.005434,
+ -0.462074,-0.635991,0.618064,0.045852,0.042076,-0.005308,
+ -0.501097,-0.605722,0.618064,0.045005,0.042733,-0.005308,
+ -0.501973,-0.690907,0.52026,0.045801,0.042005,-0.005434,
+ -0.501097,-0.605722,0.618064,0.045005,0.042733,-0.005308,
+ -0.544365,-0.658024,0.52026,0.044949,0.042666,-0.005434,
+ -0.4576,-0.721063,0.52026,0.046692,0.041399,-0.005434,
+ -0.421228,-0.66375,0.618064,0.046739,0.041473,-0.005308,
+ -0.462074,-0.635991,0.618064,0.045852,0.042076,-0.005308,
+ -0.4576,-0.721063,0.52026,0.046692,0.041399,-0.005434,
+ -0.462074,-0.635991,0.618064,0.045852,0.042076,-0.005308,
+ -0.501973,-0.690907,0.52026,0.045801,0.042005,-0.005434,
+ -0.411421,-0.748373,0.52026,0.04762,0.04085,-0.005434,
+ -0.37872,-0.688889,0.618064,0.047662,0.040927,-0.005308,
+ -0.421228,-0.66375,0.618064,0.046739,0.041473,-0.005308,
+ -0.411421,-0.748373,0.52026,0.04762,0.04085,-0.005434,
+ -0.421228,-0.66375,0.618064,0.046739,0.041473,-0.005308,
+ -0.4576,-0.721063,0.52026,0.046692,0.041399,-0.005434,
+ -0.363619,-0.77273,0.52026,0.04858,0.040361,-0.005434,
+ -0.334717,-0.71131,0.618064,0.048617,0.04044,-0.005308,
+ -0.37872,-0.688889,0.618064,0.047662,0.040927,-0.005308,
+ -0.363619,-0.77273,0.52026,0.04858,0.040361,-0.005434,
+ -0.37872,-0.688889,0.618064,0.047662,0.040927,-0.005308,
+ -0.411421,-0.748373,0.52026,0.04762,0.04085,-0.005434,
+ -0.314381,-0.794037,0.52026,0.049569,0.039933,-0.005434,
+ -0.289393,-0.730923,0.618064,0.049601,0.040014,-0.005308,
+ -0.334717,-0.71131,0.618064,0.048617,0.04044,-0.005308,
+ -0.314381,-0.794037,0.52026,0.049569,0.039933,-0.005434,
+ -0.334717,-0.71131,0.618064,0.048617,0.04044,-0.005308,
+ -0.363619,-0.77273,0.52026,0.04858,0.040361,-0.005434,
+ -0.263903,-0.81221,0.52026,0.050584,0.039568,-0.005434,
+ -0.242927,-0.747652,0.618064,0.05061,0.039651,-0.005308,
+ -0.289393,-0.730923,0.618064,0.049601,0.040014,-0.005308,
+ -0.263903,-0.81221,0.52026,0.050584,0.039568,-0.005434,
+ -0.289393,-0.730923,0.618064,0.049601,0.040014,-0.005308,
+ -0.314381,-0.794037,0.52026,0.049569,0.039933,-0.005434,
+ -0.212383,-0.827178,0.52026,0.051619,0.039267,-0.005434,
+ -0.195502,-0.76143,0.618064,0.05164,0.039352,-0.005308,
+ -0.242927,-0.747652,0.618064,0.05061,0.039651,-0.005308,
+ -0.212383,-0.827178,0.52026,0.051619,0.039267,-0.005434,
+ -0.242927,-0.747652,0.618064,0.05061,0.039651,-0.005308,
+ -0.263903,-0.81221,0.52026,0.050584,0.039568,-0.005434,
+ -0.160025,-0.838881,0.52026,0.05267,0.039032,-0.005434,
+ -0.147306,-0.772203,0.618064,0.052687,0.039118,-0.005308,
+ -0.195502,-0.76143,0.618064,0.05164,0.039352,-0.005308,
+ -0.160025,-0.838881,0.52026,0.05267,0.039032,-0.005434,
+ -0.195502,-0.76143,0.618064,0.05164,0.039352,-0.005308,
+ -0.212383,-0.827178,0.52026,0.051619,0.039267,-0.005434,
+ -0.107036,-0.847274,0.52026,0.053735,0.038863,-0.005434,
+ -0.098528,-0.779929,0.618064,0.053746,0.03895,-0.005308,
+ -0.147306,-0.772203,0.618064,0.052687,0.039118,-0.005308,
+ -0.107036,-0.847274,0.52026,0.053735,0.038863,-0.005434,
+ -0.147306,-0.772203,0.618064,0.052687,0.039118,-0.005308,
+ -0.160025,-0.838881,0.52026,0.05267,0.039032,-0.005434,
+ -0.053624,-0.852323,0.52026,0.054808,0.038762,-0.005434,
+ -0.049361,-0.784577,0.618064,0.054813,0.038849,-0.005308,
+ -0.098528,-0.779929,0.618064,0.053746,0.03895,-0.005308,
+ -0.053624,-0.852323,0.52026,0.054808,0.038762,-0.005434,
+ -0.098528,-0.779929,0.618064,0.053746,0.03895,-0.005308,
+ -0.107036,-0.847274,0.52026,0.053735,0.038863,-0.005434,
+ 0,-0.854008,0.52026,0.055885,0.038728,-0.005434,
+ 0,-0.786128,0.618064,0.055885,0.038816,-0.005308,
+ -0.049361,-0.784577,0.618064,0.054813,0.038849,-0.005308,
+ 0,-0.854008,0.52026,0.055885,0.038728,-0.005434,
+ -0.049361,-0.784577,0.618064,0.054813,0.038849,-0.005308,
+ -0.053624,-0.852323,0.52026,0.054808,0.038762,-0.005434,
+ 0.053624,-0.852323,0.52026,0.056963,0.038762,-0.005434,
+ 0.049361,-0.784577,0.618064,0.056957,0.038849,-0.005308,
+ 0,-0.786128,0.618064,0.055885,0.038816,-0.005308,
+ 0.053624,-0.852323,0.52026,0.056963,0.038762,-0.005434,
+ 0,-0.786128,0.618064,0.055885,0.038816,-0.005308,
+ 0,-0.854008,0.52026,0.055885,0.038728,-0.005434,
+ 0.107036,-0.847274,0.52026,0.058036,0.038863,-0.005434,
+ 0.098528,-0.779929,0.618064,0.058025,0.03895,-0.005308,
+ 0.049361,-0.784577,0.618064,0.056957,0.038849,-0.005308,
+ 0.107036,-0.847274,0.52026,0.058036,0.038863,-0.005434,
+ 0.049361,-0.784577,0.618064,0.056957,0.038849,-0.005308,
+ 0.053624,-0.852323,0.52026,0.056963,0.038762,-0.005434,
+ 0.160025,-0.838881,0.52026,0.0591,0.039032,-0.005434,
+ 0.147306,-0.772203,0.618064,0.059084,0.039118,-0.005308,
+ 0.098528,-0.779929,0.618064,0.058025,0.03895,-0.005308,
+ 0.160025,-0.838881,0.52026,0.0591,0.039032,-0.005434,
+ 0.098528,-0.779929,0.618064,0.058025,0.03895,-0.005308,
+ 0.107036,-0.847274,0.52026,0.058036,0.038863,-0.005434,
+ 0.212383,-0.827178,0.52026,0.060152,0.039267,-0.005434,
+ 0.195502,-0.76143,0.618064,0.06013,0.039352,-0.005308,
+ 0.147306,-0.772203,0.618064,0.059084,0.039118,-0.005308,
+ 0.212383,-0.827178,0.52026,0.060152,0.039267,-0.005434,
+ 0.147306,-0.772203,0.618064,0.059084,0.039118,-0.005308,
+ 0.160025,-0.838881,0.52026,0.0591,0.039032,-0.005434,
+ 0.263903,-0.81221,0.52026,0.061187,0.039568,-0.005434,
+ 0.242927,-0.747652,0.618064,0.06116,0.039651,-0.005308,
+ 0.195502,-0.76143,0.618064,0.06013,0.039352,-0.005308,
+ 0.263903,-0.81221,0.52026,0.061187,0.039568,-0.005434,
+ 0.195502,-0.76143,0.618064,0.06013,0.039352,-0.005308,
+ 0.212383,-0.827178,0.52026,0.060152,0.039267,-0.005434,
+ 0.314381,-0.794037,0.52026,0.062201,0.039933,-0.005434,
+ 0.289393,-0.730923,0.618064,0.062169,0.040014,-0.005308,
+ 0.242927,-0.747652,0.618064,0.06116,0.039651,-0.005308,
+ 0.314381,-0.794037,0.52026,0.062201,0.039933,-0.005434,
+ 0.242927,-0.747652,0.618064,0.06116,0.039651,-0.005308,
+ 0.263903,-0.81221,0.52026,0.061187,0.039568,-0.005434,
+ 0.363619,-0.77273,0.52026,0.06319,0.040361,-0.005434,
+ 0.334717,-0.71131,0.618064,0.063153,0.04044,-0.005308,
+ 0.289393,-0.730923,0.618064,0.062169,0.040014,-0.005308,
+ 0.363619,-0.77273,0.52026,0.06319,0.040361,-0.005434,
+ 0.289393,-0.730923,0.618064,0.062169,0.040014,-0.005308,
+ 0.314381,-0.794037,0.52026,0.062201,0.039933,-0.005434,
+ 0.411421,-0.748373,0.52026,0.064151,0.04085,-0.005434,
+ 0.37872,-0.688889,0.618064,0.064109,0.040927,-0.005308,
+ 0.334717,-0.71131,0.618064,0.063153,0.04044,-0.005308,
+ 0.411421,-0.748373,0.52026,0.064151,0.04085,-0.005434,
+ 0.334717,-0.71131,0.618064,0.063153,0.04044,-0.005308,
+ 0.363619,-0.77273,0.52026,0.06319,0.040361,-0.005434,
+ 0.4576,-0.721063,0.52026,0.065079,0.041399,-0.005434,
+ 0.421228,-0.66375,0.618064,0.065032,0.041473,-0.005308,
+ 0.37872,-0.688889,0.618064,0.064109,0.040927,-0.005308,
+ 0.4576,-0.721063,0.52026,0.065079,0.041399,-0.005434,
+ 0.37872,-0.688889,0.618064,0.064109,0.040927,-0.005308,
+ 0.411421,-0.748373,0.52026,0.064151,0.04085,-0.005434,
+ 0.501973,-0.690907,0.52026,0.06597,0.042005,-0.005434,
+ 0.462074,-0.635991,0.618064,0.065919,0.042076,-0.005308,
+ 0.421228,-0.66375,0.618064,0.065032,0.041473,-0.005308,
+ 0.501973,-0.690907,0.52026,0.06597,0.042005,-0.005434,
+ 0.421228,-0.66375,0.618064,0.065032,0.041473,-0.005308,
+ 0.4576,-0.721063,0.52026,0.065079,0.041399,-0.005434,
+ 0.544365,-0.658024,0.52026,0.066822,0.042666,-0.005434,
+ 0.501097,-0.605722,0.618064,0.066766,0.042733,-0.005308,
+ 0.462074,-0.635991,0.618064,0.065919,0.042076,-0.005308,
+ 0.544365,-0.658024,0.52026,0.066822,0.042666,-0.005434,
+ 0.462074,-0.635991,0.618064,0.065919,0.042076,-0.005308,
+ 0.501973,-0.690907,0.52026,0.06597,0.042005,-0.005434,
+ 0.584609,-0.622545,0.52026,0.06763,0.043378,-0.005434,
+ 0.538141,-0.573062,0.618064,0.06757,0.043442,-0.005308,
+ 0.501097,-0.605722,0.618064,0.066766,0.042733,-0.005308,
+ 0.584609,-0.622545,0.52026,0.06763,0.043378,-0.005434,
+ 0.501097,-0.605722,0.618064,0.066766,0.042733,-0.005308,
+ 0.544365,-0.658024,0.52026,0.066822,0.042666,-0.005434,
+ 0.622545,-0.584609,0.52026,0.068392,0.04414,-0.005434,
+ 0.573062,-0.538141,0.618064,0.068329,0.0442,-0.005308,
+ 0.538141,-0.573062,0.618064,0.06757,0.043442,-0.005308,
+ 0.622545,-0.584609,0.52026,0.068392,0.04414,-0.005434,
+ 0.538141,-0.573062,0.618064,0.06757,0.043442,-0.005308,
+ 0.584609,-0.622545,0.52026,0.06763,0.043378,-0.005434,
+ 0.658024,-0.544365,0.52026,0.069105,0.044949,-0.005434,
+ 0.605722,-0.501097,0.618064,0.069038,0.045005,-0.005308,
+ 0.573062,-0.538141,0.618064,0.068329,0.0442,-0.005308,
+ 0.658024,-0.544365,0.52026,0.069105,0.044949,-0.005434,
+ 0.573062,-0.538141,0.618064,0.068329,0.0442,-0.005308,
+ 0.622545,-0.584609,0.52026,0.068392,0.04414,-0.005434,
+ 0.690907,-0.501973,0.52026,0.069766,0.045801,-0.005434,
+ 0.635991,-0.462074,0.618064,0.069695,0.045852,-0.005308,
+ 0.605722,-0.501097,0.618064,0.069038,0.045005,-0.005308,
+ 0.690907,-0.501973,0.52026,0.069766,0.045801,-0.005434,
+ 0.605722,-0.501097,0.618064,0.069038,0.045005,-0.005308,
+ 0.658024,-0.544365,0.52026,0.069105,0.044949,-0.005434,
+ 0.721063,-0.4576,0.52026,0.070372,0.046692,-0.005434,
+ 0.66375,-0.421228,0.618064,0.070298,0.046739,-0.005308,
+ 0.635991,-0.462074,0.618064,0.069695,0.045852,-0.005308,
+ 0.721063,-0.4576,0.52026,0.070372,0.046692,-0.005434,
+ 0.635991,-0.462074,0.618064,0.069695,0.045852,-0.005308,
+ 0.690907,-0.501973,0.52026,0.069766,0.045801,-0.005434,
+ 0.748373,-0.411421,0.52026,0.07092,0.04762,-0.005434,
+ 0.688889,-0.37872,0.618064,0.070844,0.047662,-0.005308,
+ 0.66375,-0.421228,0.618064,0.070298,0.046739,-0.005308,
+ 0.748373,-0.411421,0.52026,0.07092,0.04762,-0.005434,
+ 0.66375,-0.421228,0.618064,0.070298,0.046739,-0.005308,
+ 0.721063,-0.4576,0.52026,0.070372,0.046692,-0.005434,
+ 0.77273,-0.363619,0.52026,0.07141,0.04858,-0.005434,
+ 0.71131,-0.334717,0.618064,0.07133,0.048617,-0.005308,
+ 0.688889,-0.37872,0.618064,0.070844,0.047662,-0.005308,
+ 0.77273,-0.363619,0.52026,0.07141,0.04858,-0.005434,
+ 0.688889,-0.37872,0.618064,0.070844,0.047662,-0.005308,
+ 0.748373,-0.411421,0.52026,0.07092,0.04762,-0.005434,
+ 0.794037,-0.314381,0.52026,0.071838,0.049569,-0.005434,
+ 0.730923,-0.289393,0.618064,0.071756,0.049601,-0.005308,
+ 0.71131,-0.334717,0.618064,0.07133,0.048617,-0.005308,
+ 0.794037,-0.314381,0.52026,0.071838,0.049569,-0.005434,
+ 0.71131,-0.334717,0.618064,0.07133,0.048617,-0.005308,
+ 0.77273,-0.363619,0.52026,0.07141,0.04858,-0.005434,
+ 0.81221,-0.263903,0.52026,0.072203,0.050584,-0.005434,
+ 0.747652,-0.242927,0.618064,0.07212,0.05061,-0.005308,
+ 0.730923,-0.289393,0.618064,0.071756,0.049601,-0.005308,
+ 0.81221,-0.263903,0.52026,0.072203,0.050584,-0.005434,
+ 0.730923,-0.289393,0.618064,0.071756,0.049601,-0.005308,
+ 0.794037,-0.314381,0.52026,0.071838,0.049569,-0.005434,
+ 0.827178,-0.212383,0.52026,0.072503,0.051619,-0.005434,
+ 0.76143,-0.195502,0.618064,0.072419,0.05164,-0.005308,
+ 0.747652,-0.242927,0.618064,0.07212,0.05061,-0.005308,
+ 0.827178,-0.212383,0.52026,0.072503,0.051619,-0.005434,
+ 0.747652,-0.242927,0.618064,0.07212,0.05061,-0.005308,
+ 0.81221,-0.263903,0.52026,0.072203,0.050584,-0.005434,
+ 0.838881,-0.160025,0.52026,0.072739,0.05267,-0.005434,
+ 0.772203,-0.147306,0.618064,0.072653,0.052687,-0.005308,
+ 0.76143,-0.195502,0.618064,0.072419,0.05164,-0.005308,
+ 0.838881,-0.160025,0.52026,0.072739,0.05267,-0.005434,
+ 0.76143,-0.195502,0.618064,0.072419,0.05164,-0.005308,
+ 0.827178,-0.212383,0.52026,0.072503,0.051619,-0.005434,
+ 0.847274,-0.107036,0.52026,0.072907,0.053735,-0.005434,
+ 0.779929,-0.098528,0.618064,0.07282,0.053746,-0.005308,
+ 0.772203,-0.147306,0.618064,0.072653,0.052687,-0.005308,
+ 0.847274,-0.107036,0.52026,0.072907,0.053735,-0.005434,
+ 0.772203,-0.147306,0.618064,0.072653,0.052687,-0.005308,
+ 0.838881,-0.160025,0.52026,0.072739,0.05267,-0.005434,
+ 0.852323,-0.053624,0.52026,0.073009,0.054808,-0.005434,
+ 0.784577,-0.049361,0.618064,0.072921,0.054813,-0.005308,
+ 0.779929,-0.098528,0.618064,0.07282,0.053746,-0.005308,
+ 0.852323,-0.053624,0.52026,0.073009,0.054808,-0.005434,
+ 0.779929,-0.098528,0.618064,0.07282,0.053746,-0.005308,
+ 0.847274,-0.107036,0.52026,0.072907,0.053735,-0.005434,
+ 0.854008,0,0.52026,0.073042,0.055885,-0.005434,
+ 0.786128,0,0.618064,0.072955,0.055885,-0.005308,
+ 0.784577,-0.049361,0.618064,0.072921,0.054813,-0.005308,
+ 0.854008,0,0.52026,0.073042,0.055885,-0.005434,
+ 0.784577,-0.049361,0.618064,0.072921,0.054813,-0.005308,
+ 0.852323,-0.053624,0.52026,0.073009,0.054808,-0.005434,
+ 0.852323,0.053624,0.52026,0.073009,0.056963,-0.005434,
+ 0.784577,0.049361,0.618064,0.072921,0.056957,-0.005308,
+ 0.786128,0,0.618064,0.072955,0.055885,-0.005308,
+ 0.852323,0.053624,0.52026,0.073009,0.056963,-0.005434,
+ 0.786128,0,0.618064,0.072955,0.055885,-0.005308,
+ 0.854008,0,0.52026,0.073042,0.055885,-0.005434,
+ 0.847274,0.107036,0.52026,0.072907,0.058036,-0.005434,
+ 0.779929,0.098528,0.618064,0.07282,0.058025,-0.005308,
+ 0.784577,0.049361,0.618064,0.072921,0.056957,-0.005308,
+ 0.847274,0.107036,0.52026,0.072907,0.058036,-0.005434,
+ 0.784577,0.049361,0.618064,0.072921,0.056957,-0.005308,
+ 0.852323,0.053624,0.52026,0.073009,0.056963,-0.005434,
+ 0.838881,0.160025,0.52026,0.072739,0.0591,-0.005434,
+ 0.772203,0.147306,0.618064,0.072653,0.059084,-0.005308,
+ 0.779929,0.098528,0.618064,0.07282,0.058025,-0.005308,
+ 0.838881,0.160025,0.52026,0.072739,0.0591,-0.005434,
+ 0.779929,0.098528,0.618064,0.07282,0.058025,-0.005308,
+ 0.847274,0.107036,0.52026,0.072907,0.058036,-0.005434,
+ 0.827178,0.212383,0.52026,0.072503,0.060152,-0.005434,
+ 0.76143,0.195502,0.618064,0.072419,0.06013,-0.005308,
+ 0.772203,0.147306,0.618064,0.072653,0.059084,-0.005308,
+ 0.827178,0.212383,0.52026,0.072503,0.060152,-0.005434,
+ 0.772203,0.147306,0.618064,0.072653,0.059084,-0.005308,
+ 0.838881,0.160025,0.52026,0.072739,0.0591,-0.005434,
+ 0.81221,0.263903,0.52026,0.072203,0.061187,-0.005434,
+ 0.747652,0.242927,0.618064,0.07212,0.06116,-0.005308,
+ 0.76143,0.195502,0.618064,0.072419,0.06013,-0.005308,
+ 0.81221,0.263903,0.52026,0.072203,0.061187,-0.005434,
+ 0.76143,0.195502,0.618064,0.072419,0.06013,-0.005308,
+ 0.827178,0.212383,0.52026,0.072503,0.060152,-0.005434,
+ 0.794037,0.314381,0.52026,0.071838,0.062201,-0.005434,
+ 0.730923,0.289393,0.618064,0.071756,0.062169,-0.005308,
+ 0.747652,0.242927,0.618064,0.07212,0.06116,-0.005308,
+ 0.794037,0.314381,0.52026,0.071838,0.062201,-0.005434,
+ 0.747652,0.242927,0.618064,0.07212,0.06116,-0.005308,
+ 0.81221,0.263903,0.52026,0.072203,0.061187,-0.005434,
+ 0.77273,0.363619,0.52026,0.07141,0.06319,-0.005434,
+ 0.71131,0.334717,0.618064,0.07133,0.063153,-0.005308,
+ 0.730923,0.289393,0.618064,0.071756,0.062169,-0.005308,
+ 0.77273,0.363619,0.52026,0.07141,0.06319,-0.005434,
+ 0.730923,0.289393,0.618064,0.071756,0.062169,-0.005308,
+ 0.794037,0.314381,0.52026,0.071838,0.062201,-0.005434,
+ 0.748373,0.411421,0.52026,0.07092,0.064151,-0.005434,
+ 0.688889,0.37872,0.618064,0.070844,0.064109,-0.005308,
+ 0.71131,0.334717,0.618064,0.07133,0.063153,-0.005308,
+ 0.748373,0.411421,0.52026,0.07092,0.064151,-0.005434,
+ 0.71131,0.334717,0.618064,0.07133,0.063153,-0.005308,
+ 0.77273,0.363619,0.52026,0.07141,0.06319,-0.005434,
+ 0.721063,0.4576,0.52026,0.070372,0.065079,-0.005434,
+ 0.66375,0.421228,0.618064,0.070298,0.065032,-0.005308,
+ 0.688889,0.37872,0.618064,0.070844,0.064109,-0.005308,
+ 0.721063,0.4576,0.52026,0.070372,0.065079,-0.005434,
+ 0.688889,0.37872,0.618064,0.070844,0.064109,-0.005308,
+ 0.748373,0.411421,0.52026,0.07092,0.064151,-0.005434,
+ 0.690907,0.501973,0.52026,0.069766,0.06597,-0.005434,
+ 0.635991,0.462074,0.618064,0.069695,0.065919,-0.005308,
+ 0.66375,0.421228,0.618064,0.070298,0.065032,-0.005308,
+ 0.690907,0.501973,0.52026,0.069766,0.06597,-0.005434,
+ 0.66375,0.421228,0.618064,0.070298,0.065032,-0.005308,
+ 0.721063,0.4576,0.52026,0.070372,0.065079,-0.005434,
+ 0.658024,0.544365,0.52026,0.069105,0.066822,-0.005434,
+ 0.605722,0.501097,0.618064,0.069038,0.066766,-0.005308,
+ 0.635991,0.462074,0.618064,0.069695,0.065919,-0.005308,
+ 0.658024,0.544365,0.52026,0.069105,0.066822,-0.005434,
+ 0.635991,0.462074,0.618064,0.069695,0.065919,-0.005308,
+ 0.690907,0.501973,0.52026,0.069766,0.06597,-0.005434,
+ 0.622545,0.584609,0.52026,0.068392,0.06763,-0.005434,
+ 0.573062,0.538141,0.618064,0.068329,0.06757,-0.005308,
+ 0.605722,0.501097,0.618064,0.069038,0.066766,-0.005308,
+ 0.622545,0.584609,0.52026,0.068392,0.06763,-0.005434,
+ 0.605722,0.501097,0.618064,0.069038,0.066766,-0.005308,
+ 0.658024,0.544365,0.52026,0.069105,0.066822,-0.005434,
+ 0.584609,0.622545,0.52026,0.06763,0.068392,-0.005434,
+ 0.538141,0.573062,0.618064,0.06757,0.068329,-0.005308,
+ 0.573062,0.538141,0.618064,0.068329,0.06757,-0.005308,
+ 0.584609,0.622545,0.52026,0.06763,0.068392,-0.005434,
+ 0.573062,0.538141,0.618064,0.068329,0.06757,-0.005308,
+ 0.622545,0.584609,0.52026,0.068392,0.06763,-0.005434,
+ 0.544365,0.658024,0.52026,0.066822,0.069105,-0.005434,
+ 0.501097,0.605722,0.618064,0.066766,0.069038,-0.005308,
+ 0.538141,0.573062,0.618064,0.06757,0.068329,-0.005308,
+ 0.544365,0.658024,0.52026,0.066822,0.069105,-0.005434,
+ 0.538141,0.573062,0.618064,0.06757,0.068329,-0.005308,
+ 0.584609,0.622545,0.52026,0.06763,0.068392,-0.005434,
+ 0.501973,0.690907,0.52026,0.06597,0.069766,-0.005434,
+ 0.462074,0.635991,0.618064,0.065919,0.069695,-0.005308,
+ 0.501097,0.605722,0.618064,0.066766,0.069038,-0.005308,
+ 0.501973,0.690907,0.52026,0.06597,0.069766,-0.005434,
+ 0.501097,0.605722,0.618064,0.066766,0.069038,-0.005308,
+ 0.544365,0.658024,0.52026,0.066822,0.069105,-0.005434,
+ 0.4576,0.721063,0.52026,0.065079,0.070372,-0.005434,
+ 0.421228,0.66375,0.618064,0.065032,0.070298,-0.005308,
+ 0.462074,0.635991,0.618064,0.065919,0.069695,-0.005308,
+ 0.4576,0.721063,0.52026,0.065079,0.070372,-0.005434,
+ 0.462074,0.635991,0.618064,0.065919,0.069695,-0.005308,
+ 0.501973,0.690907,0.52026,0.06597,0.069766,-0.005434,
+ 0.411421,0.748373,0.52026,0.064151,0.07092,-0.005434,
+ 0.37872,0.688889,0.618064,0.064109,0.070844,-0.005308,
+ 0.421228,0.66375,0.618064,0.065032,0.070298,-0.005308,
+ 0.411421,0.748373,0.52026,0.064151,0.07092,-0.005434,
+ 0.421228,0.66375,0.618064,0.065032,0.070298,-0.005308,
+ 0.4576,0.721063,0.52026,0.065079,0.070372,-0.005434,
+ 0.363619,0.77273,0.52026,0.06319,0.07141,-0.005434,
+ 0.334717,0.71131,0.618064,0.063153,0.07133,-0.005308,
+ 0.37872,0.688889,0.618064,0.064109,0.070844,-0.005308,
+ 0.363619,0.77273,0.52026,0.06319,0.07141,-0.005434,
+ 0.37872,0.688889,0.618064,0.064109,0.070844,-0.005308,
+ 0.411421,0.748373,0.52026,0.064151,0.07092,-0.005434,
+ 0.314381,0.794037,0.52026,0.062201,0.071838,-0.005434,
+ 0.289393,0.730923,0.618064,0.062169,0.071756,-0.005308,
+ 0.334717,0.71131,0.618064,0.063153,0.07133,-0.005308,
+ 0.314381,0.794037,0.52026,0.062201,0.071838,-0.005434,
+ 0.334717,0.71131,0.618064,0.063153,0.07133,-0.005308,
+ 0.363619,0.77273,0.52026,0.06319,0.07141,-0.005434,
+ 0.263903,0.81221,0.52026,0.061187,0.072203,-0.005434,
+ 0.242927,0.747652,0.618064,0.06116,0.07212,-0.005308,
+ 0.289393,0.730923,0.618064,0.062169,0.071756,-0.005308,
+ 0.263903,0.81221,0.52026,0.061187,0.072203,-0.005434,
+ 0.289393,0.730923,0.618064,0.062169,0.071756,-0.005308,
+ 0.314381,0.794037,0.52026,0.062201,0.071838,-0.005434,
+ 0.212383,0.827178,0.52026,0.060152,0.072503,-0.005434,
+ 0.195502,0.76143,0.618064,0.06013,0.072419,-0.005308,
+ 0.242927,0.747652,0.618064,0.06116,0.07212,-0.005308,
+ 0.212383,0.827178,0.52026,0.060152,0.072503,-0.005434,
+ 0.242927,0.747652,0.618064,0.06116,0.07212,-0.005308,
+ 0.263903,0.81221,0.52026,0.061187,0.072203,-0.005434,
+ 0.160025,0.838881,0.52026,0.0591,0.072739,-0.005434,
+ 0.147306,0.772203,0.618064,0.059084,0.072653,-0.005308,
+ 0.195502,0.76143,0.618064,0.06013,0.072419,-0.005308,
+ 0.160025,0.838881,0.52026,0.0591,0.072739,-0.005434,
+ 0.195502,0.76143,0.618064,0.06013,0.072419,-0.005308,
+ 0.212383,0.827178,0.52026,0.060152,0.072503,-0.005434,
+ 0.107036,0.847274,0.52026,0.058036,0.072907,-0.005434,
+ 0.098528,0.779929,0.618064,0.058025,0.07282,-0.005308,
+ 0.147306,0.772203,0.618064,0.059084,0.072653,-0.005308,
+ 0.107036,0.847274,0.52026,0.058036,0.072907,-0.005434,
+ 0.147306,0.772203,0.618064,0.059084,0.072653,-0.005308,
+ 0.160025,0.838881,0.52026,0.0591,0.072739,-0.005434,
+ 0.053624,0.852323,0.52026,0.056963,0.073009,-0.005434,
+ 0.049361,0.784577,0.618064,0.056957,0.072921,-0.005308,
+ 0.098528,0.779929,0.618064,0.058025,0.07282,-0.005308,
+ 0.053624,0.852323,0.52026,0.056963,0.073009,-0.005434,
+ 0.098528,0.779929,0.618064,0.058025,0.07282,-0.005308,
+ 0.107036,0.847274,0.52026,0.058036,0.072907,-0.005434,
+ 0,0.854008,0.52026,0.055885,0.073042,-0.005434,
+ 0,0.786128,0.618064,0.055885,0.072955,-0.005308,
+ 0.049361,0.784577,0.618064,0.056957,0.072921,-0.005308,
+ 0,0.854008,0.52026,0.055885,0.073042,-0.005434,
+ 0.049361,0.784577,0.618064,0.056957,0.072921,-0.005308,
+ 0.053624,0.852323,0.52026,0.056963,0.073009,-0.005434,
+ -0.053624,0.852323,0.52026,0.054808,0.073009,-0.005434,
+ -0.049361,0.784577,0.618064,0.054813,0.072921,-0.005308,
+ 0,0.786128,0.618064,0.055885,0.072955,-0.005308,
+ -0.053624,0.852323,0.52026,0.054808,0.073009,-0.005434,
+ 0,0.786128,0.618064,0.055885,0.072955,-0.005308,
+ 0,0.854008,0.52026,0.055885,0.073042,-0.005434,
+ -0.107036,0.847274,0.52026,0.053735,0.072907,-0.005434,
+ -0.098528,0.779929,0.618064,0.053746,0.07282,-0.005308,
+ -0.049361,0.784577,0.618064,0.054813,0.072921,-0.005308,
+ -0.107036,0.847274,0.52026,0.053735,0.072907,-0.005434,
+ -0.049361,0.784577,0.618064,0.054813,0.072921,-0.005308,
+ -0.053624,0.852323,0.52026,0.054808,0.073009,-0.005434,
+ -0.160025,0.838881,0.52026,0.05267,0.072739,-0.005434,
+ -0.147306,0.772203,0.618064,0.052687,0.072653,-0.005308,
+ -0.098528,0.779929,0.618064,0.053746,0.07282,-0.005308,
+ -0.160025,0.838881,0.52026,0.05267,0.072739,-0.005434,
+ -0.098528,0.779929,0.618064,0.053746,0.07282,-0.005308,
+ -0.107036,0.847274,0.52026,0.053735,0.072907,-0.005434,
+ -0.212383,0.827178,0.52026,0.051619,0.072503,-0.005434,
+ -0.195502,0.76143,0.618064,0.05164,0.072419,-0.005308,
+ -0.147306,0.772203,0.618064,0.052687,0.072653,-0.005308,
+ -0.212383,0.827178,0.52026,0.051619,0.072503,-0.005434,
+ -0.147306,0.772203,0.618064,0.052687,0.072653,-0.005308,
+ -0.160025,0.838881,0.52026,0.05267,0.072739,-0.005434,
+ -0.263903,0.81221,0.52026,0.050584,0.072203,-0.005434,
+ -0.242927,0.747652,0.618064,0.05061,0.07212,-0.005308,
+ -0.195502,0.76143,0.618064,0.05164,0.072419,-0.005308,
+ -0.263903,0.81221,0.52026,0.050584,0.072203,-0.005434,
+ -0.195502,0.76143,0.618064,0.05164,0.072419,-0.005308,
+ -0.212383,0.827178,0.52026,0.051619,0.072503,-0.005434,
+ -0.314381,0.794037,0.52026,0.049569,0.071838,-0.005434,
+ -0.289393,0.730923,0.618064,0.049601,0.071756,-0.005308,
+ -0.242927,0.747652,0.618064,0.05061,0.07212,-0.005308,
+ -0.314381,0.794037,0.52026,0.049569,0.071838,-0.005434,
+ -0.242927,0.747652,0.618064,0.05061,0.07212,-0.005308,
+ -0.263903,0.81221,0.52026,0.050584,0.072203,-0.005434,
+ -0.363619,0.77273,0.52026,0.04858,0.07141,-0.005434,
+ -0.334717,0.71131,0.618064,0.048617,0.07133,-0.005308,
+ -0.289393,0.730923,0.618064,0.049601,0.071756,-0.005308,
+ -0.363619,0.77273,0.52026,0.04858,0.07141,-0.005434,
+ -0.289393,0.730923,0.618064,0.049601,0.071756,-0.005308,
+ -0.314381,0.794037,0.52026,0.049569,0.071838,-0.005434,
+ -0.411421,0.748373,0.52026,0.04762,0.07092,-0.005434,
+ -0.37872,0.688889,0.618064,0.047662,0.070844,-0.005308,
+ -0.334717,0.71131,0.618064,0.048617,0.07133,-0.005308,
+ -0.411421,0.748373,0.52026,0.04762,0.07092,-0.005434,
+ -0.334717,0.71131,0.618064,0.048617,0.07133,-0.005308,
+ -0.363619,0.77273,0.52026,0.04858,0.07141,-0.005434,
+ -0.4576,0.721063,0.52026,0.046692,0.070372,-0.005434,
+ -0.421228,0.66375,0.618064,0.046739,0.070298,-0.005308,
+ -0.37872,0.688889,0.618064,0.047662,0.070844,-0.005308,
+ -0.4576,0.721063,0.52026,0.046692,0.070372,-0.005434,
+ -0.37872,0.688889,0.618064,0.047662,0.070844,-0.005308,
+ -0.411421,0.748373,0.52026,0.04762,0.07092,-0.005434,
+ -0.501973,0.690907,0.52026,0.045801,0.069766,-0.005434,
+ -0.462074,0.635991,0.618064,0.045852,0.069695,-0.005308,
+ -0.421228,0.66375,0.618064,0.046739,0.070298,-0.005308,
+ -0.501973,0.690907,0.52026,0.045801,0.069766,-0.005434,
+ -0.421228,0.66375,0.618064,0.046739,0.070298,-0.005308,
+ -0.4576,0.721063,0.52026,0.046692,0.070372,-0.005434,
+ -0.544365,0.658024,0.52026,0.044949,0.069105,-0.005434,
+ -0.501097,0.605722,0.618064,0.045005,0.069038,-0.005308,
+ -0.462074,0.635991,0.618064,0.045852,0.069695,-0.005308,
+ -0.544365,0.658024,0.52026,0.044949,0.069105,-0.005434,
+ -0.462074,0.635991,0.618064,0.045852,0.069695,-0.005308,
+ -0.501973,0.690907,0.52026,0.045801,0.069766,-0.005434,
+ -0.584609,0.622545,0.52026,0.04414,0.068392,-0.005434,
+ -0.538141,0.573062,0.618064,0.0442,0.068329,-0.005308,
+ -0.501097,0.605722,0.618064,0.045005,0.069038,-0.005308,
+ -0.584609,0.622545,0.52026,0.04414,0.068392,-0.005434,
+ -0.501097,0.605722,0.618064,0.045005,0.069038,-0.005308,
+ -0.544365,0.658024,0.52026,0.044949,0.069105,-0.005434,
+ -0.622545,0.584609,0.52026,0.043378,0.06763,-0.005434,
+ -0.573062,0.538141,0.618064,0.043442,0.06757,-0.005308,
+ -0.538141,0.573062,0.618064,0.0442,0.068329,-0.005308,
+ -0.622545,0.584609,0.52026,0.043378,0.06763,-0.005434,
+ -0.538141,0.573062,0.618064,0.0442,0.068329,-0.005308,
+ -0.584609,0.622545,0.52026,0.04414,0.068392,-0.005434,
+ -0.658024,0.544365,0.52026,0.042666,0.066822,-0.005434,
+ -0.605722,0.501097,0.618064,0.042733,0.066766,-0.005308,
+ -0.573062,0.538141,0.618064,0.043442,0.06757,-0.005308,
+ -0.658024,0.544365,0.52026,0.042666,0.066822,-0.005434,
+ -0.573062,0.538141,0.618064,0.043442,0.06757,-0.005308,
+ -0.622545,0.584609,0.52026,0.043378,0.06763,-0.005434,
+ -0.690907,0.501973,0.52026,0.042005,0.06597,-0.005434,
+ -0.635991,0.462074,0.618064,0.042076,0.065919,-0.005308,
+ -0.605722,0.501097,0.618064,0.042733,0.066766,-0.005308,
+ -0.690907,0.501973,0.52026,0.042005,0.06597,-0.005434,
+ -0.605722,0.501097,0.618064,0.042733,0.066766,-0.005308,
+ -0.658024,0.544365,0.52026,0.042666,0.066822,-0.005434,
+ -0.721063,0.4576,0.52026,0.041399,0.065079,-0.005434,
+ -0.66375,0.421228,0.618064,0.041473,0.065032,-0.005308,
+ -0.635991,0.462074,0.618064,0.042076,0.065919,-0.005308,
+ -0.721063,0.4576,0.52026,0.041399,0.065079,-0.005434,
+ -0.635991,0.462074,0.618064,0.042076,0.065919,-0.005308,
+ -0.690907,0.501973,0.52026,0.042005,0.06597,-0.005434,
+ -0.748373,0.411421,0.52026,0.04085,0.064151,-0.005434,
+ -0.688889,0.37872,0.618064,0.040927,0.064109,-0.005308,
+ -0.66375,0.421228,0.618064,0.041473,0.065032,-0.005308,
+ -0.748373,0.411421,0.52026,0.04085,0.064151,-0.005434,
+ -0.66375,0.421228,0.618064,0.041473,0.065032,-0.005308,
+ -0.721063,0.4576,0.52026,0.041399,0.065079,-0.005434,
+ -0.77273,0.363619,0.52026,0.040361,0.06319,-0.005434,
+ -0.71131,0.334717,0.618064,0.04044,0.063153,-0.005308,
+ -0.688889,0.37872,0.618064,0.040927,0.064109,-0.005308,
+ -0.77273,0.363619,0.52026,0.040361,0.06319,-0.005434,
+ -0.688889,0.37872,0.618064,0.040927,0.064109,-0.005308,
+ -0.748373,0.411421,0.52026,0.04085,0.064151,-0.005434,
+ -0.794037,0.314381,0.52026,0.039933,0.062201,-0.005434,
+ -0.730923,0.289393,0.618064,0.040014,0.062169,-0.005308,
+ -0.71131,0.334717,0.618064,0.04044,0.063153,-0.005308,
+ -0.794037,0.314381,0.52026,0.039933,0.062201,-0.005434,
+ -0.71131,0.334717,0.618064,0.04044,0.063153,-0.005308,
+ -0.77273,0.363619,0.52026,0.040361,0.06319,-0.005434,
+ -0.81221,0.263903,0.52026,0.039568,0.061187,-0.005434,
+ -0.747652,0.242927,0.618064,0.039651,0.06116,-0.005308,
+ -0.730923,0.289393,0.618064,0.040014,0.062169,-0.005308,
+ -0.81221,0.263903,0.52026,0.039568,0.061187,-0.005434,
+ -0.730923,0.289393,0.618064,0.040014,0.062169,-0.005308,
+ -0.794037,0.314381,0.52026,0.039933,0.062201,-0.005434,
+ -0.827178,0.212383,0.52026,0.039267,0.060152,-0.005434,
+ -0.76143,0.195502,0.618064,0.039352,0.06013,-0.005308,
+ -0.747652,0.242927,0.618064,0.039651,0.06116,-0.005308,
+ -0.827178,0.212383,0.52026,0.039267,0.060152,-0.005434,
+ -0.747652,0.242927,0.618064,0.039651,0.06116,-0.005308,
+ -0.81221,0.263903,0.52026,0.039568,0.061187,-0.005434,
+ -0.838881,0.160025,0.52026,0.039032,0.0591,-0.005434,
+ -0.772203,0.147306,0.618064,0.039118,0.059084,-0.005308,
+ -0.76143,0.195502,0.618064,0.039352,0.06013,-0.005308,
+ -0.838881,0.160025,0.52026,0.039032,0.0591,-0.005434,
+ -0.76143,0.195502,0.618064,0.039352,0.06013,-0.005308,
+ -0.827178,0.212383,0.52026,0.039267,0.060152,-0.005434,
+ -0.847274,0.107036,0.52026,0.038863,0.058036,-0.005434,
+ -0.779929,0.098528,0.618064,0.03895,0.058025,-0.005308,
+ -0.772203,0.147306,0.618064,0.039118,0.059084,-0.005308,
+ -0.847274,0.107036,0.52026,0.038863,0.058036,-0.005434,
+ -0.772203,0.147306,0.618064,0.039118,0.059084,-0.005308,
+ -0.838881,0.160025,0.52026,0.039032,0.0591,-0.005434,
+ -0.852323,0.053624,0.52026,0.038762,0.056963,-0.005434,
+ -0.784577,0.049361,0.618064,0.038849,0.056957,-0.005308,
+ -0.779929,0.098528,0.618064,0.03895,0.058025,-0.005308,
+ -0.852323,0.053624,0.52026,0.038762,0.056963,-0.005434,
+ -0.779929,0.098528,0.618064,0.03895,0.058025,-0.005308,
+ -0.847274,0.107036,0.52026,0.038863,0.058036,-0.005434,
+ -0.854008,0,0.52026,0.038728,0.055885,-0.005434,
+ -0.786128,0,0.618064,0.038816,0.055885,-0.005308,
+ -0.784577,0.049361,0.618064,0.038849,0.056957,-0.005308,
+ -0.854008,0,0.52026,0.038728,0.055885,-0.005434,
+ -0.784577,0.049361,0.618064,0.038849,0.056957,-0.005308,
+ -0.852323,0.053624,0.52026,0.038762,0.056963,-0.005434,
+ -0.852323,-0.053624,0.52026,0.038762,0.054808,-0.005434,
+ -0.784577,-0.049361,0.618064,0.038849,0.054813,-0.005308,
+ -0.786128,0,0.618064,0.038816,0.055885,-0.005308,
+ -0.852323,-0.053624,0.52026,0.038762,0.054808,-0.005434,
+ -0.786128,0,0.618064,0.038816,0.055885,-0.005308,
+ -0.854008,0,0.52026,0.038728,0.055885,-0.005434,
+ -0.784577,-0.049361,0.618064,0.038849,0.054813,-0.005308,
+ -0.70571,-0.0444,0.707108,0.038951,0.05482,-0.005193,
+ -0.707106,0,0.707108,0.038917,0.055885,-0.005193,
+ -0.784577,-0.049361,0.618064,0.038849,0.054813,-0.005308,
+ -0.707106,0,0.707108,0.038917,0.055885,-0.005193,
+ -0.786128,0,0.618064,0.038816,0.055885,-0.005308,
+ -0.779929,-0.098528,0.618064,0.03895,0.053746,-0.005308,
+ -0.70153,-0.088624,0.707108,0.039051,0.053759,-0.005193,
+ -0.70571,-0.0444,0.707108,0.038951,0.05482,-0.005193,
+ -0.779929,-0.098528,0.618064,0.03895,0.053746,-0.005308,
+ -0.70571,-0.0444,0.707108,0.038951,0.05482,-0.005193,
+ -0.784577,-0.049361,0.618064,0.038849,0.054813,-0.005308,
+ -0.772203,-0.147306,0.618064,0.039118,0.052687,-0.005308,
+ -0.694581,-0.132498,0.707108,0.039218,0.052706,-0.005193,
+ -0.70153,-0.088624,0.707108,0.039051,0.053759,-0.005193,
+ -0.772203,-0.147306,0.618064,0.039118,0.052687,-0.005308,
+ -0.70153,-0.088624,0.707108,0.039051,0.053759,-0.005193,
+ -0.779929,-0.098528,0.618064,0.03895,0.053746,-0.005308,
+ -0.76143,-0.195502,0.618064,0.039352,0.05164,-0.005308,
+ -0.684891,-0.17585,0.707108,0.03945,0.051666,-0.005193,
+ -0.694581,-0.132498,0.707108,0.039218,0.052706,-0.005193,
+ -0.76143,-0.195502,0.618064,0.039352,0.05164,-0.005308,
+ -0.694581,-0.132498,0.707108,0.039218,0.052706,-0.005193,
+ -0.772203,-0.147306,0.618064,0.039118,0.052687,-0.005308,
+ -0.747652,-0.242927,0.618064,0.039651,0.05061,-0.005308,
+ -0.672497,-0.218508,0.707108,0.039748,0.050642,-0.005193,
+ -0.684891,-0.17585,0.707108,0.03945,0.051666,-0.005193,
+ -0.747652,-0.242927,0.618064,0.039651,0.05061,-0.005308,
+ -0.684891,-0.17585,0.707108,0.03945,0.051666,-0.005193,
+ -0.76143,-0.195502,0.618064,0.039352,0.05164,-0.005308,
+ -0.730923,-0.289393,0.618064,0.040014,0.049601,-0.005308,
+ -0.65745,-0.260303,0.707108,0.040109,0.049639,-0.005193,
+ -0.672497,-0.218508,0.707108,0.039748,0.050642,-0.005193,
+ -0.730923,-0.289393,0.618064,0.040014,0.049601,-0.005308,
+ -0.672497,-0.218508,0.707108,0.039748,0.050642,-0.005193,
+ -0.747652,-0.242927,0.618064,0.039651,0.05061,-0.005308,
+ -0.71131,-0.334717,0.618064,0.04044,0.048617,-0.005308,
+ -0.639808,-0.301071,0.707108,0.040532,0.048661,-0.005193,
+ -0.65745,-0.260303,0.707108,0.040109,0.049639,-0.005193,
+ -0.71131,-0.334717,0.618064,0.04044,0.048617,-0.005308,
+ -0.65745,-0.260303,0.707108,0.040109,0.049639,-0.005193,
+ -0.730923,-0.289393,0.618064,0.040014,0.049601,-0.005308,
+ -0.688889,-0.37872,0.618064,0.040927,0.047662,-0.005308,
+ -0.619641,-0.340651,0.707108,0.041016,0.047711,-0.005193,
+ -0.639808,-0.301071,0.707108,0.040532,0.048661,-0.005193,
+ -0.688889,-0.37872,0.618064,0.040927,0.047662,-0.005308,
+ -0.639808,-0.301071,0.707108,0.040532,0.048661,-0.005193,
+ -0.71131,-0.334717,0.618064,0.04044,0.048617,-0.005308,
+ -0.66375,-0.421228,0.618064,0.041473,0.046739,-0.005308,
+ -0.597029,-0.378886,0.707108,0.041559,0.046793,-0.005193,
+ -0.619641,-0.340651,0.707108,0.041016,0.047711,-0.005193,
+ -0.66375,-0.421228,0.618064,0.041473,0.046739,-0.005308,
+ -0.619641,-0.340651,0.707108,0.041016,0.047711,-0.005193,
+ -0.688889,-0.37872,0.618064,0.040927,0.047662,-0.005308,
+ -0.635991,-0.462074,0.618064,0.042076,0.045852,-0.005308,
+ -0.57206,-0.415626,0.707108,0.042158,0.045912,-0.005193,
+ -0.597029,-0.378886,0.707108,0.041559,0.046793,-0.005193,
+ -0.635991,-0.462074,0.618064,0.042076,0.045852,-0.005308,
+ -0.597029,-0.378886,0.707108,0.041559,0.046793,-0.005193,
+ -0.66375,-0.421228,0.618064,0.041473,0.046739,-0.005308,
+ -0.605722,-0.501097,0.618064,0.042733,0.045005,-0.005308,
+ -0.544834,-0.450726,0.707108,0.042811,0.04507,-0.005193,
+ -0.57206,-0.415626,0.707108,0.042158,0.045912,-0.005193,
+ -0.605722,-0.501097,0.618064,0.042733,0.045005,-0.005308,
+ -0.57206,-0.415626,0.707108,0.042158,0.045912,-0.005193,
+ -0.635991,-0.462074,0.618064,0.042076,0.045852,-0.005308,
+ -0.573062,-0.538141,0.618064,0.043442,0.0442,-0.005308,
+ -0.515458,-0.484047,0.707108,0.043516,0.04427,-0.005193,
+ -0.544834,-0.450726,0.707108,0.042811,0.04507,-0.005193,
+ -0.573062,-0.538141,0.618064,0.043442,0.0442,-0.005308,
+ -0.544834,-0.450726,0.707108,0.042811,0.04507,-0.005193,
+ -0.605722,-0.501097,0.618064,0.042733,0.045005,-0.005308,
+ -0.538141,-0.573062,0.618064,0.0442,0.043442,-0.005308,
+ -0.484047,-0.515458,0.707108,0.04427,0.043516,-0.005193,
+ -0.515458,-0.484047,0.707108,0.043516,0.04427,-0.005193,
+ -0.538141,-0.573062,0.618064,0.0442,0.043442,-0.005308,
+ -0.515458,-0.484047,0.707108,0.043516,0.04427,-0.005193,
+ -0.573062,-0.538141,0.618064,0.043442,0.0442,-0.005308,
+ -0.501097,-0.605722,0.618064,0.045005,0.042733,-0.005308,
+ -0.450726,-0.544834,0.707108,0.04507,0.042811,-0.005193,
+ -0.484047,-0.515458,0.707108,0.04427,0.043516,-0.005193,
+ -0.501097,-0.605722,0.618064,0.045005,0.042733,-0.005308,
+ -0.484047,-0.515458,0.707108,0.04427,0.043516,-0.005193,
+ -0.538141,-0.573062,0.618064,0.0442,0.043442,-0.005308,
+ -0.462074,-0.635991,0.618064,0.045852,0.042076,-0.005308,
+ -0.415626,-0.57206,0.707108,0.045912,0.042158,-0.005193,
+ -0.450726,-0.544834,0.707108,0.04507,0.042811,-0.005193,
+ -0.462074,-0.635991,0.618064,0.045852,0.042076,-0.005308,
+ -0.450726,-0.544834,0.707108,0.04507,0.042811,-0.005193,
+ -0.501097,-0.605722,0.618064,0.045005,0.042733,-0.005308,
+ -0.421228,-0.66375,0.618064,0.046739,0.041473,-0.005308,
+ -0.378886,-0.597029,0.707108,0.046793,0.041559,-0.005193,
+ -0.415626,-0.57206,0.707108,0.045912,0.042158,-0.005193,
+ -0.421228,-0.66375,0.618064,0.046739,0.041473,-0.005308,
+ -0.415626,-0.57206,0.707108,0.045912,0.042158,-0.005193,
+ -0.462074,-0.635991,0.618064,0.045852,0.042076,-0.005308,
+ -0.37872,-0.688889,0.618064,0.047662,0.040927,-0.005308,
+ -0.340651,-0.619641,0.707108,0.047711,0.041016,-0.005193,
+ -0.378886,-0.597029,0.707108,0.046793,0.041559,-0.005193,
+ -0.37872,-0.688889,0.618064,0.047662,0.040927,-0.005308,
+ -0.378886,-0.597029,0.707108,0.046793,0.041559,-0.005193,
+ -0.421228,-0.66375,0.618064,0.046739,0.041473,-0.005308,
+ -0.334717,-0.71131,0.618064,0.048617,0.04044,-0.005308,
+ -0.301071,-0.639808,0.707108,0.048661,0.040532,-0.005193,
+ -0.340651,-0.619641,0.707108,0.047711,0.041016,-0.005193,
+ -0.334717,-0.71131,0.618064,0.048617,0.04044,-0.005308,
+ -0.340651,-0.619641,0.707108,0.047711,0.041016,-0.005193,
+ -0.37872,-0.688889,0.618064,0.047662,0.040927,-0.005308,
+ -0.289393,-0.730923,0.618064,0.049601,0.040014,-0.005308,
+ -0.260303,-0.65745,0.707108,0.049639,0.040109,-0.005193,
+ -0.301071,-0.639808,0.707108,0.048661,0.040532,-0.005193,
+ -0.289393,-0.730923,0.618064,0.049601,0.040014,-0.005308,
+ -0.301071,-0.639808,0.707108,0.048661,0.040532,-0.005193,
+ -0.334717,-0.71131,0.618064,0.048617,0.04044,-0.005308,
+ -0.242927,-0.747652,0.618064,0.05061,0.039651,-0.005308,
+ -0.218508,-0.672497,0.707108,0.050642,0.039748,-0.005193,
+ -0.260303,-0.65745,0.707108,0.049639,0.040109,-0.005193,
+ -0.242927,-0.747652,0.618064,0.05061,0.039651,-0.005308,
+ -0.260303,-0.65745,0.707108,0.049639,0.040109,-0.005193,
+ -0.289393,-0.730923,0.618064,0.049601,0.040014,-0.005308,
+ -0.195502,-0.76143,0.618064,0.05164,0.039352,-0.005308,
+ -0.17585,-0.684891,0.707108,0.051666,0.03945,-0.005193,
+ -0.218508,-0.672497,0.707108,0.050642,0.039748,-0.005193,
+ -0.195502,-0.76143,0.618064,0.05164,0.039352,-0.005308,
+ -0.218508,-0.672497,0.707108,0.050642,0.039748,-0.005193,
+ -0.242927,-0.747652,0.618064,0.05061,0.039651,-0.005308,
+ -0.147306,-0.772203,0.618064,0.052687,0.039118,-0.005308,
+ -0.132498,-0.694581,0.707108,0.052706,0.039218,-0.005193,
+ -0.17585,-0.684891,0.707108,0.051666,0.03945,-0.005193,
+ -0.147306,-0.772203,0.618064,0.052687,0.039118,-0.005308,
+ -0.17585,-0.684891,0.707108,0.051666,0.03945,-0.005193,
+ -0.195502,-0.76143,0.618064,0.05164,0.039352,-0.005308,
+ -0.098528,-0.779929,0.618064,0.053746,0.03895,-0.005308,
+ -0.088624,-0.70153,0.707108,0.053759,0.039051,-0.005193,
+ -0.132498,-0.694581,0.707108,0.052706,0.039218,-0.005193,
+ -0.098528,-0.779929,0.618064,0.053746,0.03895,-0.005308,
+ -0.132498,-0.694581,0.707108,0.052706,0.039218,-0.005193,
+ -0.147306,-0.772203,0.618064,0.052687,0.039118,-0.005308,
+ -0.049361,-0.784577,0.618064,0.054813,0.038849,-0.005308,
+ -0.0444,-0.70571,0.707108,0.05482,0.038951,-0.005193,
+ -0.088624,-0.70153,0.707108,0.053759,0.039051,-0.005193,
+ -0.049361,-0.784577,0.618064,0.054813,0.038849,-0.005308,
+ -0.088624,-0.70153,0.707108,0.053759,0.039051,-0.005193,
+ -0.098528,-0.779929,0.618064,0.053746,0.03895,-0.005308,
+ 0,-0.786128,0.618064,0.055885,0.038816,-0.005308,
+ 0,-0.707106,0.707108,0.055885,0.038917,-0.005193,
+ -0.0444,-0.70571,0.707108,0.05482,0.038951,-0.005193,
+ 0,-0.786128,0.618064,0.055885,0.038816,-0.005308,
+ -0.0444,-0.70571,0.707108,0.05482,0.038951,-0.005193,
+ -0.049361,-0.784577,0.618064,0.054813,0.038849,-0.005308,
+ 0.049361,-0.784577,0.618064,0.056957,0.038849,-0.005308,
+ 0.0444,-0.70571,0.707108,0.056951,0.038951,-0.005193,
+ 0,-0.707106,0.707108,0.055885,0.038917,-0.005193,
+ 0.049361,-0.784577,0.618064,0.056957,0.038849,-0.005308,
+ 0,-0.707106,0.707108,0.055885,0.038917,-0.005193,
+ 0,-0.786128,0.618064,0.055885,0.038816,-0.005308,
+ 0.098528,-0.779929,0.618064,0.058025,0.03895,-0.005308,
+ 0.088624,-0.70153,0.707108,0.058012,0.039051,-0.005193,
+ 0.0444,-0.70571,0.707108,0.056951,0.038951,-0.005193,
+ 0.098528,-0.779929,0.618064,0.058025,0.03895,-0.005308,
+ 0.0444,-0.70571,0.707108,0.056951,0.038951,-0.005193,
+ 0.049361,-0.784577,0.618064,0.056957,0.038849,-0.005308,
+ 0.147306,-0.772203,0.618064,0.059084,0.039118,-0.005308,
+ 0.132498,-0.694581,0.707108,0.059065,0.039218,-0.005193,
+ 0.088624,-0.70153,0.707108,0.058012,0.039051,-0.005193,
+ 0.147306,-0.772203,0.618064,0.059084,0.039118,-0.005308,
+ 0.088624,-0.70153,0.707108,0.058012,0.039051,-0.005193,
+ 0.098528,-0.779929,0.618064,0.058025,0.03895,-0.005308,
+ 0.195502,-0.76143,0.618064,0.06013,0.039352,-0.005308,
+ 0.17585,-0.684891,0.707108,0.060105,0.03945,-0.005193,
+ 0.132498,-0.694581,0.707108,0.059065,0.039218,-0.005193,
+ 0.195502,-0.76143,0.618064,0.06013,0.039352,-0.005308,
+ 0.132498,-0.694581,0.707108,0.059065,0.039218,-0.005193,
+ 0.147306,-0.772203,0.618064,0.059084,0.039118,-0.005308,
+ 0.242927,-0.747652,0.618064,0.06116,0.039651,-0.005308,
+ 0.218508,-0.672497,0.707108,0.061129,0.039748,-0.005193,
+ 0.17585,-0.684891,0.707108,0.060105,0.03945,-0.005193,
+ 0.242927,-0.747652,0.618064,0.06116,0.039651,-0.005308,
+ 0.17585,-0.684891,0.707108,0.060105,0.03945,-0.005193,
+ 0.195502,-0.76143,0.618064,0.06013,0.039352,-0.005308,
+ 0.289393,-0.730923,0.618064,0.062169,0.040014,-0.005308,
+ 0.260303,-0.65745,0.707108,0.062132,0.040109,-0.005193,
+ 0.218508,-0.672497,0.707108,0.061129,0.039748,-0.005193,
+ 0.289393,-0.730923,0.618064,0.062169,0.040014,-0.005308,
+ 0.218508,-0.672497,0.707108,0.061129,0.039748,-0.005193,
+ 0.242927,-0.747652,0.618064,0.06116,0.039651,-0.005308,
+ 0.334717,-0.71131,0.618064,0.063153,0.04044,-0.005308,
+ 0.301071,-0.639808,0.707108,0.06311,0.040532,-0.005193,
+ 0.260303,-0.65745,0.707108,0.062132,0.040109,-0.005193,
+ 0.334717,-0.71131,0.618064,0.063153,0.04044,-0.005308,
+ 0.260303,-0.65745,0.707108,0.062132,0.040109,-0.005193,
+ 0.289393,-0.730923,0.618064,0.062169,0.040014,-0.005308,
+ 0.37872,-0.688889,0.618064,0.064109,0.040927,-0.005308,
+ 0.340651,-0.619641,0.707108,0.06406,0.041016,-0.005193,
+ 0.301071,-0.639808,0.707108,0.06311,0.040532,-0.005193,
+ 0.37872,-0.688889,0.618064,0.064109,0.040927,-0.005308,
+ 0.301071,-0.639808,0.707108,0.06311,0.040532,-0.005193,
+ 0.334717,-0.71131,0.618064,0.063153,0.04044,-0.005308,
+ 0.421228,-0.66375,0.618064,0.065032,0.041473,-0.005308,
+ 0.378886,-0.597029,0.707108,0.064977,0.041559,-0.005193,
+ 0.340651,-0.619641,0.707108,0.06406,0.041016,-0.005193,
+ 0.421228,-0.66375,0.618064,0.065032,0.041473,-0.005308,
+ 0.340651,-0.619641,0.707108,0.06406,0.041016,-0.005193,
+ 0.37872,-0.688889,0.618064,0.064109,0.040927,-0.005308,
+ 0.462074,-0.635991,0.618064,0.065919,0.042076,-0.005308,
+ 0.415626,-0.57206,0.707108,0.065859,0.042158,-0.005193,
+ 0.378886,-0.597029,0.707108,0.064977,0.041559,-0.005193,
+ 0.462074,-0.635991,0.618064,0.065919,0.042076,-0.005308,
+ 0.378886,-0.597029,0.707108,0.064977,0.041559,-0.005193,
+ 0.421228,-0.66375,0.618064,0.065032,0.041473,-0.005308,
+ 0.501097,-0.605722,0.618064,0.066766,0.042733,-0.005308,
+ 0.450726,-0.544834,0.707108,0.066701,0.042811,-0.005193,
+ 0.415626,-0.57206,0.707108,0.065859,0.042158,-0.005193,
+ 0.501097,-0.605722,0.618064,0.066766,0.042733,-0.005308,
+ 0.415626,-0.57206,0.707108,0.065859,0.042158,-0.005193,
+ 0.462074,-0.635991,0.618064,0.065919,0.042076,-0.005308,
+ 0.538141,-0.573062,0.618064,0.06757,0.043442,-0.005308,
+ 0.484047,-0.515458,0.707108,0.067501,0.043516,-0.005193,
+ 0.450726,-0.544834,0.707108,0.066701,0.042811,-0.005193,
+ 0.538141,-0.573062,0.618064,0.06757,0.043442,-0.005308,
+ 0.450726,-0.544834,0.707108,0.066701,0.042811,-0.005193,
+ 0.501097,-0.605722,0.618064,0.066766,0.042733,-0.005308,
+ 0.573062,-0.538141,0.618064,0.068329,0.0442,-0.005308,
+ 0.515458,-0.484047,0.707108,0.068254,0.04427,-0.005193,
+ 0.484047,-0.515458,0.707108,0.067501,0.043516,-0.005193,
+ 0.573062,-0.538141,0.618064,0.068329,0.0442,-0.005308,
+ 0.484047,-0.515458,0.707108,0.067501,0.043516,-0.005193,
+ 0.538141,-0.573062,0.618064,0.06757,0.043442,-0.005308,
+ 0.605722,-0.501097,0.618064,0.069038,0.045005,-0.005308,
+ 0.544834,-0.450726,0.707108,0.068959,0.04507,-0.005193,
+ 0.515458,-0.484047,0.707108,0.068254,0.04427,-0.005193,
+ 0.605722,-0.501097,0.618064,0.069038,0.045005,-0.005308,
+ 0.515458,-0.484047,0.707108,0.068254,0.04427,-0.005193,
+ 0.573062,-0.538141,0.618064,0.068329,0.0442,-0.005308,
+ 0.635991,-0.462074,0.618064,0.069695,0.045852,-0.005308,
+ 0.57206,-0.415626,0.707108,0.069613,0.045912,-0.005193,
+ 0.544834,-0.450726,0.707108,0.068959,0.04507,-0.005193,
+ 0.635991,-0.462074,0.618064,0.069695,0.045852,-0.005308,
+ 0.544834,-0.450726,0.707108,0.068959,0.04507,-0.005193,
+ 0.605722,-0.501097,0.618064,0.069038,0.045005,-0.005308,
+ 0.66375,-0.421228,0.618064,0.070298,0.046739,-0.005308,
+ 0.597029,-0.378886,0.707108,0.070212,0.046793,-0.005193,
+ 0.57206,-0.415626,0.707108,0.069613,0.045912,-0.005193,
+ 0.66375,-0.421228,0.618064,0.070298,0.046739,-0.005308,
+ 0.57206,-0.415626,0.707108,0.069613,0.045912,-0.005193,
+ 0.635991,-0.462074,0.618064,0.069695,0.045852,-0.005308,
+ 0.688889,-0.37872,0.618064,0.070844,0.047662,-0.005308,
+ 0.619641,-0.340651,0.707108,0.070754,0.047711,-0.005193,
+ 0.597029,-0.378886,0.707108,0.070212,0.046793,-0.005193,
+ 0.688889,-0.37872,0.618064,0.070844,0.047662,-0.005308,
+ 0.597029,-0.378886,0.707108,0.070212,0.046793,-0.005193,
+ 0.66375,-0.421228,0.618064,0.070298,0.046739,-0.005308,
+ 0.71131,-0.334717,0.618064,0.07133,0.048617,-0.005308,
+ 0.639808,-0.301071,0.707108,0.071238,0.048661,-0.005193,
+ 0.619641,-0.340651,0.707108,0.070754,0.047711,-0.005193,
+ 0.71131,-0.334717,0.618064,0.07133,0.048617,-0.005308,
+ 0.619641,-0.340651,0.707108,0.070754,0.047711,-0.005193,
+ 0.688889,-0.37872,0.618064,0.070844,0.047662,-0.005308,
+ 0.730923,-0.289393,0.618064,0.071756,0.049601,-0.005308,
+ 0.65745,-0.260303,0.707108,0.071662,0.049639,-0.005193,
+ 0.639808,-0.301071,0.707108,0.071238,0.048661,-0.005193,
+ 0.730923,-0.289393,0.618064,0.071756,0.049601,-0.005308,
+ 0.639808,-0.301071,0.707108,0.071238,0.048661,-0.005193,
+ 0.71131,-0.334717,0.618064,0.07133,0.048617,-0.005308,
+ 0.747652,-0.242927,0.618064,0.07212,0.05061,-0.005308,
+ 0.672497,-0.218508,0.707108,0.072023,0.050642,-0.005193,
+ 0.65745,-0.260303,0.707108,0.071662,0.049639,-0.005193,
+ 0.747652,-0.242927,0.618064,0.07212,0.05061,-0.005308,
+ 0.65745,-0.260303,0.707108,0.071662,0.049639,-0.005193,
+ 0.730923,-0.289393,0.618064,0.071756,0.049601,-0.005308,
+ 0.76143,-0.195502,0.618064,0.072419,0.05164,-0.005308,
+ 0.684891,-0.17585,0.707108,0.07232,0.051666,-0.005193,
+ 0.672497,-0.218508,0.707108,0.072023,0.050642,-0.005193,
+ 0.76143,-0.195502,0.618064,0.072419,0.05164,-0.005308,
+ 0.672497,-0.218508,0.707108,0.072023,0.050642,-0.005193,
+ 0.747652,-0.242927,0.618064,0.07212,0.05061,-0.005308,
+ 0.772203,-0.147306,0.618064,0.072653,0.052687,-0.005308,
+ 0.694581,-0.132498,0.707108,0.072553,0.052706,-0.005193,
+ 0.684891,-0.17585,0.707108,0.07232,0.051666,-0.005193,
+ 0.772203,-0.147306,0.618064,0.072653,0.052687,-0.005308,
+ 0.684891,-0.17585,0.707108,0.07232,0.051666,-0.005193,
+ 0.76143,-0.195502,0.618064,0.072419,0.05164,-0.005308,
+ 0.779929,-0.098528,0.618064,0.07282,0.053746,-0.005308,
+ 0.70153,-0.088624,0.707108,0.072719,0.053759,-0.005193,
+ 0.694581,-0.132498,0.707108,0.072553,0.052706,-0.005193,
+ 0.779929,-0.098528,0.618064,0.07282,0.053746,-0.005308,
+ 0.694581,-0.132498,0.707108,0.072553,0.052706,-0.005193,
+ 0.772203,-0.147306,0.618064,0.072653,0.052687,-0.005308,
+ 0.784577,-0.049361,0.618064,0.072921,0.054813,-0.005308,
+ 0.70571,-0.0444,0.707108,0.07282,0.05482,-0.005193,
+ 0.70153,-0.088624,0.707108,0.072719,0.053759,-0.005193,
+ 0.784577,-0.049361,0.618064,0.072921,0.054813,-0.005308,
+ 0.70153,-0.088624,0.707108,0.072719,0.053759,-0.005193,
+ 0.779929,-0.098528,0.618064,0.07282,0.053746,-0.005308,
+ 0.786128,0,0.618064,0.072955,0.055885,-0.005308,
+ 0.707106,0,0.707108,0.072853,0.055885,-0.005193,
+ 0.70571,-0.0444,0.707108,0.07282,0.05482,-0.005193,
+ 0.786128,0,0.618064,0.072955,0.055885,-0.005308,
+ 0.70571,-0.0444,0.707108,0.07282,0.05482,-0.005193,
+ 0.784577,-0.049361,0.618064,0.072921,0.054813,-0.005308,
+ 0.784577,0.049361,0.618064,0.072921,0.056957,-0.005308,
+ 0.70571,0.0444,0.707108,0.07282,0.056951,-0.005193,
+ 0.707106,0,0.707108,0.072853,0.055885,-0.005193,
+ 0.784577,0.049361,0.618064,0.072921,0.056957,-0.005308,
+ 0.707106,0,0.707108,0.072853,0.055885,-0.005193,
+ 0.786128,0,0.618064,0.072955,0.055885,-0.005308,
+ 0.779929,0.098528,0.618064,0.07282,0.058025,-0.005308,
+ 0.70153,0.088624,0.707108,0.072719,0.058012,-0.005193,
+ 0.70571,0.0444,0.707108,0.07282,0.056951,-0.005193,
+ 0.779929,0.098528,0.618064,0.07282,0.058025,-0.005308,
+ 0.70571,0.0444,0.707108,0.07282,0.056951,-0.005193,
+ 0.784577,0.049361,0.618064,0.072921,0.056957,-0.005308,
+ 0.772203,0.147306,0.618064,0.072653,0.059084,-0.005308,
+ 0.694581,0.132498,0.707108,0.072553,0.059065,-0.005193,
+ 0.70153,0.088624,0.707108,0.072719,0.058012,-0.005193,
+ 0.772203,0.147306,0.618064,0.072653,0.059084,-0.005308,
+ 0.70153,0.088624,0.707108,0.072719,0.058012,-0.005193,
+ 0.779929,0.098528,0.618064,0.07282,0.058025,-0.005308,
+ 0.76143,0.195502,0.618064,0.072419,0.06013,-0.005308,
+ 0.684891,0.17585,0.707108,0.07232,0.060105,-0.005193,
+ 0.694581,0.132498,0.707108,0.072553,0.059065,-0.005193,
+ 0.76143,0.195502,0.618064,0.072419,0.06013,-0.005308,
+ 0.694581,0.132498,0.707108,0.072553,0.059065,-0.005193,
+ 0.772203,0.147306,0.618064,0.072653,0.059084,-0.005308,
+ 0.747652,0.242927,0.618064,0.07212,0.06116,-0.005308,
+ 0.672497,0.218508,0.707108,0.072023,0.061129,-0.005193,
+ 0.684891,0.17585,0.707108,0.07232,0.060105,-0.005193,
+ 0.747652,0.242927,0.618064,0.07212,0.06116,-0.005308,
+ 0.684891,0.17585,0.707108,0.07232,0.060105,-0.005193,
+ 0.76143,0.195502,0.618064,0.072419,0.06013,-0.005308,
+ 0.730923,0.289393,0.618064,0.071756,0.062169,-0.005308,
+ 0.65745,0.260303,0.707108,0.071662,0.062132,-0.005193,
+ 0.672497,0.218508,0.707108,0.072023,0.061129,-0.005193,
+ 0.730923,0.289393,0.618064,0.071756,0.062169,-0.005308,
+ 0.672497,0.218508,0.707108,0.072023,0.061129,-0.005193,
+ 0.747652,0.242927,0.618064,0.07212,0.06116,-0.005308,
+ 0.71131,0.334717,0.618064,0.07133,0.063153,-0.005308,
+ 0.639808,0.301071,0.707108,0.071238,0.06311,-0.005193,
+ 0.65745,0.260303,0.707108,0.071662,0.062132,-0.005193,
+ 0.71131,0.334717,0.618064,0.07133,0.063153,-0.005308,
+ 0.65745,0.260303,0.707108,0.071662,0.062132,-0.005193,
+ 0.730923,0.289393,0.618064,0.071756,0.062169,-0.005308,
+ 0.688889,0.37872,0.618064,0.070844,0.064109,-0.005308,
+ 0.619641,0.340651,0.707108,0.070754,0.06406,-0.005193,
+ 0.639808,0.301071,0.707108,0.071238,0.06311,-0.005193,
+ 0.688889,0.37872,0.618064,0.070844,0.064109,-0.005308,
+ 0.639808,0.301071,0.707108,0.071238,0.06311,-0.005193,
+ 0.71131,0.334717,0.618064,0.07133,0.063153,-0.005308,
+ 0.66375,0.421228,0.618064,0.070298,0.065032,-0.005308,
+ 0.597029,0.378886,0.707108,0.070212,0.064977,-0.005193,
+ 0.619641,0.340651,0.707108,0.070754,0.06406,-0.005193,
+ 0.66375,0.421228,0.618064,0.070298,0.065032,-0.005308,
+ 0.619641,0.340651,0.707108,0.070754,0.06406,-0.005193,
+ 0.688889,0.37872,0.618064,0.070844,0.064109,-0.005308,
+ 0.635991,0.462074,0.618064,0.069695,0.065919,-0.005308,
+ 0.57206,0.415626,0.707108,0.069613,0.065859,-0.005193,
+ 0.597029,0.378886,0.707108,0.070212,0.064977,-0.005193,
+ 0.635991,0.462074,0.618064,0.069695,0.065919,-0.005308,
+ 0.597029,0.378886,0.707108,0.070212,0.064977,-0.005193,
+ 0.66375,0.421228,0.618064,0.070298,0.065032,-0.005308,
+ 0.605722,0.501097,0.618064,0.069038,0.066766,-0.005308,
+ 0.544834,0.450726,0.707108,0.068959,0.066701,-0.005193,
+ 0.57206,0.415626,0.707108,0.069613,0.065859,-0.005193,
+ 0.605722,0.501097,0.618064,0.069038,0.066766,-0.005308,
+ 0.57206,0.415626,0.707108,0.069613,0.065859,-0.005193,
+ 0.635991,0.462074,0.618064,0.069695,0.065919,-0.005308,
+ 0.573062,0.538141,0.618064,0.068329,0.06757,-0.005308,
+ 0.515458,0.484047,0.707108,0.068254,0.067501,-0.005193,
+ 0.544834,0.450726,0.707108,0.068959,0.066701,-0.005193,
+ 0.573062,0.538141,0.618064,0.068329,0.06757,-0.005308,
+ 0.544834,0.450726,0.707108,0.068959,0.066701,-0.005193,
+ 0.605722,0.501097,0.618064,0.069038,0.066766,-0.005308,
+ 0.538141,0.573062,0.618064,0.06757,0.068329,-0.005308,
+ 0.484047,0.515458,0.707108,0.067501,0.068254,-0.005193,
+ 0.515458,0.484047,0.707108,0.068254,0.067501,-0.005193,
+ 0.538141,0.573062,0.618064,0.06757,0.068329,-0.005308,
+ 0.515458,0.484047,0.707108,0.068254,0.067501,-0.005193,
+ 0.573062,0.538141,0.618064,0.068329,0.06757,-0.005308,
+ 0.501097,0.605722,0.618064,0.066766,0.069038,-0.005308,
+ 0.450726,0.544834,0.707108,0.066701,0.068959,-0.005193,
+ 0.484047,0.515458,0.707108,0.067501,0.068254,-0.005193,
+ 0.501097,0.605722,0.618064,0.066766,0.069038,-0.005308,
+ 0.484047,0.515458,0.707108,0.067501,0.068254,-0.005193,
+ 0.538141,0.573062,0.618064,0.06757,0.068329,-0.005308,
+ 0.462074,0.635991,0.618064,0.065919,0.069695,-0.005308,
+ 0.415626,0.57206,0.707108,0.065859,0.069613,-0.005193,
+ 0.450726,0.544834,0.707108,0.066701,0.068959,-0.005193,
+ 0.462074,0.635991,0.618064,0.065919,0.069695,-0.005308,
+ 0.450726,0.544834,0.707108,0.066701,0.068959,-0.005193,
+ 0.501097,0.605722,0.618064,0.066766,0.069038,-0.005308,
+ 0.421228,0.66375,0.618064,0.065032,0.070298,-0.005308,
+ 0.378886,0.597029,0.707108,0.064977,0.070212,-0.005193,
+ 0.415626,0.57206,0.707108,0.065859,0.069613,-0.005193,
+ 0.421228,0.66375,0.618064,0.065032,0.070298,-0.005308,
+ 0.415626,0.57206,0.707108,0.065859,0.069613,-0.005193,
+ 0.462074,0.635991,0.618064,0.065919,0.069695,-0.005308,
+ 0.37872,0.688889,0.618064,0.064109,0.070844,-0.005308,
+ 0.340651,0.619641,0.707108,0.06406,0.070754,-0.005193,
+ 0.378886,0.597029,0.707108,0.064977,0.070212,-0.005193,
+ 0.37872,0.688889,0.618064,0.064109,0.070844,-0.005308,
+ 0.378886,0.597029,0.707108,0.064977,0.070212,-0.005193,
+ 0.421228,0.66375,0.618064,0.065032,0.070298,-0.005308,
+ 0.334717,0.71131,0.618064,0.063153,0.07133,-0.005308,
+ 0.301071,0.639808,0.707108,0.06311,0.071238,-0.005193,
+ 0.340651,0.619641,0.707108,0.06406,0.070754,-0.005193,
+ 0.334717,0.71131,0.618064,0.063153,0.07133,-0.005308,
+ 0.340651,0.619641,0.707108,0.06406,0.070754,-0.005193,
+ 0.37872,0.688889,0.618064,0.064109,0.070844,-0.005308,
+ 0.289393,0.730923,0.618064,0.062169,0.071756,-0.005308,
+ 0.260303,0.65745,0.707108,0.062132,0.071662,-0.005193,
+ 0.301071,0.639808,0.707108,0.06311,0.071238,-0.005193,
+ 0.289393,0.730923,0.618064,0.062169,0.071756,-0.005308,
+ 0.301071,0.639808,0.707108,0.06311,0.071238,-0.005193,
+ 0.334717,0.71131,0.618064,0.063153,0.07133,-0.005308,
+ 0.242927,0.747652,0.618064,0.06116,0.07212,-0.005308,
+ 0.218508,0.672497,0.707108,0.061129,0.072023,-0.005193,
+ 0.260303,0.65745,0.707108,0.062132,0.071662,-0.005193,
+ 0.242927,0.747652,0.618064,0.06116,0.07212,-0.005308,
+ 0.260303,0.65745,0.707108,0.062132,0.071662,-0.005193,
+ 0.289393,0.730923,0.618064,0.062169,0.071756,-0.005308,
+ 0.195502,0.76143,0.618064,0.06013,0.072419,-0.005308,
+ 0.17585,0.684891,0.707108,0.060105,0.07232,-0.005193,
+ 0.218508,0.672497,0.707108,0.061129,0.072023,-0.005193,
+ 0.195502,0.76143,0.618064,0.06013,0.072419,-0.005308,
+ 0.218508,0.672497,0.707108,0.061129,0.072023,-0.005193,
+ 0.242927,0.747652,0.618064,0.06116,0.07212,-0.005308,
+ 0.147306,0.772203,0.618064,0.059084,0.072653,-0.005308,
+ 0.132498,0.694581,0.707108,0.059065,0.072553,-0.005193,
+ 0.17585,0.684891,0.707108,0.060105,0.07232,-0.005193,
+ 0.147306,0.772203,0.618064,0.059084,0.072653,-0.005308,
+ 0.17585,0.684891,0.707108,0.060105,0.07232,-0.005193,
+ 0.195502,0.76143,0.618064,0.06013,0.072419,-0.005308,
+ 0.098528,0.779929,0.618064,0.058025,0.07282,-0.005308,
+ 0.088624,0.70153,0.707108,0.058012,0.072719,-0.005193,
+ 0.132498,0.694581,0.707108,0.059065,0.072553,-0.005193,
+ 0.098528,0.779929,0.618064,0.058025,0.07282,-0.005308,
+ 0.132498,0.694581,0.707108,0.059065,0.072553,-0.005193,
+ 0.147306,0.772203,0.618064,0.059084,0.072653,-0.005308,
+ 0.049361,0.784577,0.618064,0.056957,0.072921,-0.005308,
+ 0.0444,0.70571,0.707108,0.056951,0.07282,-0.005193,
+ 0.088624,0.70153,0.707108,0.058012,0.072719,-0.005193,
+ 0.049361,0.784577,0.618064,0.056957,0.072921,-0.005308,
+ 0.088624,0.70153,0.707108,0.058012,0.072719,-0.005193,
+ 0.098528,0.779929,0.618064,0.058025,0.07282,-0.005308,
+ 0,0.786128,0.618064,0.055885,0.072955,-0.005308,
+ 0,0.707106,0.707108,0.055885,0.072853,-0.005193,
+ 0.0444,0.70571,0.707108,0.056951,0.07282,-0.005193,
+ 0,0.786128,0.618064,0.055885,0.072955,-0.005308,
+ 0.0444,0.70571,0.707108,0.056951,0.07282,-0.005193,
+ 0.049361,0.784577,0.618064,0.056957,0.072921,-0.005308,
+ -0.049361,0.784577,0.618064,0.054813,0.072921,-0.005308,
+ -0.0444,0.70571,0.707108,0.05482,0.07282,-0.005193,
+ 0,0.707106,0.707108,0.055885,0.072853,-0.005193,
+ -0.049361,0.784577,0.618064,0.054813,0.072921,-0.005308,
+ 0,0.707106,0.707108,0.055885,0.072853,-0.005193,
+ 0,0.786128,0.618064,0.055885,0.072955,-0.005308,
+ -0.098528,0.779929,0.618064,0.053746,0.07282,-0.005308,
+ -0.088624,0.70153,0.707108,0.053759,0.072719,-0.005193,
+ -0.0444,0.70571,0.707108,0.05482,0.07282,-0.005193,
+ -0.098528,0.779929,0.618064,0.053746,0.07282,-0.005308,
+ -0.0444,0.70571,0.707108,0.05482,0.07282,-0.005193,
+ -0.049361,0.784577,0.618064,0.054813,0.072921,-0.005308,
+ -0.147306,0.772203,0.618064,0.052687,0.072653,-0.005308,
+ -0.132498,0.694581,0.707108,0.052706,0.072553,-0.005193,
+ -0.088624,0.70153,0.707108,0.053759,0.072719,-0.005193,
+ -0.147306,0.772203,0.618064,0.052687,0.072653,-0.005308,
+ -0.088624,0.70153,0.707108,0.053759,0.072719,-0.005193,
+ -0.098528,0.779929,0.618064,0.053746,0.07282,-0.005308,
+ -0.195502,0.76143,0.618064,0.05164,0.072419,-0.005308,
+ -0.17585,0.684891,0.707108,0.051666,0.07232,-0.005193,
+ -0.132498,0.694581,0.707108,0.052706,0.072553,-0.005193,
+ -0.195502,0.76143,0.618064,0.05164,0.072419,-0.005308,
+ -0.132498,0.694581,0.707108,0.052706,0.072553,-0.005193,
+ -0.147306,0.772203,0.618064,0.052687,0.072653,-0.005308,
+ -0.242927,0.747652,0.618064,0.05061,0.07212,-0.005308,
+ -0.218508,0.672497,0.707108,0.050642,0.072023,-0.005193,
+ -0.17585,0.684891,0.707108,0.051666,0.07232,-0.005193,
+ -0.242927,0.747652,0.618064,0.05061,0.07212,-0.005308,
+ -0.17585,0.684891,0.707108,0.051666,0.07232,-0.005193,
+ -0.195502,0.76143,0.618064,0.05164,0.072419,-0.005308,
+ -0.289393,0.730923,0.618064,0.049601,0.071756,-0.005308,
+ -0.260303,0.65745,0.707108,0.049639,0.071662,-0.005193,
+ -0.218508,0.672497,0.707108,0.050642,0.072023,-0.005193,
+ -0.289393,0.730923,0.618064,0.049601,0.071756,-0.005308,
+ -0.218508,0.672497,0.707108,0.050642,0.072023,-0.005193,
+ -0.242927,0.747652,0.618064,0.05061,0.07212,-0.005308,
+ -0.334717,0.71131,0.618064,0.048617,0.07133,-0.005308,
+ -0.301071,0.639808,0.707108,0.048661,0.071238,-0.005193,
+ -0.260303,0.65745,0.707108,0.049639,0.071662,-0.005193,
+ -0.334717,0.71131,0.618064,0.048617,0.07133,-0.005308,
+ -0.260303,0.65745,0.707108,0.049639,0.071662,-0.005193,
+ -0.289393,0.730923,0.618064,0.049601,0.071756,-0.005308,
+ -0.37872,0.688889,0.618064,0.047662,0.070844,-0.005308,
+ -0.340651,0.619641,0.707108,0.047711,0.070754,-0.005193,
+ -0.301071,0.639808,0.707108,0.048661,0.071238,-0.005193,
+ -0.37872,0.688889,0.618064,0.047662,0.070844,-0.005308,
+ -0.301071,0.639808,0.707108,0.048661,0.071238,-0.005193,
+ -0.334717,0.71131,0.618064,0.048617,0.07133,-0.005308,
+ -0.421228,0.66375,0.618064,0.046739,0.070298,-0.005308,
+ -0.378886,0.597029,0.707108,0.046793,0.070212,-0.005193,
+ -0.340651,0.619641,0.707108,0.047711,0.070754,-0.005193,
+ -0.421228,0.66375,0.618064,0.046739,0.070298,-0.005308,
+ -0.340651,0.619641,0.707108,0.047711,0.070754,-0.005193,
+ -0.37872,0.688889,0.618064,0.047662,0.070844,-0.005308,
+ -0.462074,0.635991,0.618064,0.045852,0.069695,-0.005308,
+ -0.415626,0.57206,0.707108,0.045912,0.069613,-0.005193,
+ -0.378886,0.597029,0.707108,0.046793,0.070212,-0.005193,
+ -0.462074,0.635991,0.618064,0.045852,0.069695,-0.005308,
+ -0.378886,0.597029,0.707108,0.046793,0.070212,-0.005193,
+ -0.421228,0.66375,0.618064,0.046739,0.070298,-0.005308,
+ -0.501097,0.605722,0.618064,0.045005,0.069038,-0.005308,
+ -0.450726,0.544834,0.707108,0.04507,0.068959,-0.005193,
+ -0.415626,0.57206,0.707108,0.045912,0.069613,-0.005193,
+ -0.501097,0.605722,0.618064,0.045005,0.069038,-0.005308,
+ -0.415626,0.57206,0.707108,0.045912,0.069613,-0.005193,
+ -0.462074,0.635991,0.618064,0.045852,0.069695,-0.005308,
+ -0.538141,0.573062,0.618064,0.0442,0.068329,-0.005308,
+ -0.484047,0.515458,0.707108,0.04427,0.068254,-0.005193,
+ -0.450726,0.544834,0.707108,0.04507,0.068959,-0.005193,
+ -0.538141,0.573062,0.618064,0.0442,0.068329,-0.005308,
+ -0.450726,0.544834,0.707108,0.04507,0.068959,-0.005193,
+ -0.501097,0.605722,0.618064,0.045005,0.069038,-0.005308,
+ -0.573062,0.538141,0.618064,0.043442,0.06757,-0.005308,
+ -0.515458,0.484047,0.707108,0.043516,0.067501,-0.005193,
+ -0.484047,0.515458,0.707108,0.04427,0.068254,-0.005193,
+ -0.573062,0.538141,0.618064,0.043442,0.06757,-0.005308,
+ -0.484047,0.515458,0.707108,0.04427,0.068254,-0.005193,
+ -0.538141,0.573062,0.618064,0.0442,0.068329,-0.005308,
+ -0.605722,0.501097,0.618064,0.042733,0.066766,-0.005308,
+ -0.544834,0.450726,0.707108,0.042811,0.066701,-0.005193,
+ -0.515458,0.484047,0.707108,0.043516,0.067501,-0.005193,
+ -0.605722,0.501097,0.618064,0.042733,0.066766,-0.005308,
+ -0.515458,0.484047,0.707108,0.043516,0.067501,-0.005193,
+ -0.573062,0.538141,0.618064,0.043442,0.06757,-0.005308,
+ -0.635991,0.462074,0.618064,0.042076,0.065919,-0.005308,
+ -0.57206,0.415626,0.707108,0.042158,0.065859,-0.005193,
+ -0.544834,0.450726,0.707108,0.042811,0.066701,-0.005193,
+ -0.635991,0.462074,0.618064,0.042076,0.065919,-0.005308,
+ -0.544834,0.450726,0.707108,0.042811,0.066701,-0.005193,
+ -0.605722,0.501097,0.618064,0.042733,0.066766,-0.005308,
+ -0.66375,0.421228,0.618064,0.041473,0.065032,-0.005308,
+ -0.597029,0.378886,0.707108,0.041559,0.064977,-0.005193,
+ -0.57206,0.415626,0.707108,0.042158,0.065859,-0.005193,
+ -0.66375,0.421228,0.618064,0.041473,0.065032,-0.005308,
+ -0.57206,0.415626,0.707108,0.042158,0.065859,-0.005193,
+ -0.635991,0.462074,0.618064,0.042076,0.065919,-0.005308,
+ -0.688889,0.37872,0.618064,0.040927,0.064109,-0.005308,
+ -0.619641,0.340651,0.707108,0.041016,0.06406,-0.005193,
+ -0.597029,0.378886,0.707108,0.041559,0.064977,-0.005193,
+ -0.688889,0.37872,0.618064,0.040927,0.064109,-0.005308,
+ -0.597029,0.378886,0.707108,0.041559,0.064977,-0.005193,
+ -0.66375,0.421228,0.618064,0.041473,0.065032,-0.005308,
+ -0.71131,0.334717,0.618064,0.04044,0.063153,-0.005308,
+ -0.639808,0.301071,0.707108,0.040532,0.06311,-0.005193,
+ -0.619641,0.340651,0.707108,0.041016,0.06406,-0.005193,
+ -0.71131,0.334717,0.618064,0.04044,0.063153,-0.005308,
+ -0.619641,0.340651,0.707108,0.041016,0.06406,-0.005193,
+ -0.688889,0.37872,0.618064,0.040927,0.064109,-0.005308,
+ -0.730923,0.289393,0.618064,0.040014,0.062169,-0.005308,
+ -0.65745,0.260303,0.707108,0.040109,0.062132,-0.005193,
+ -0.639808,0.301071,0.707108,0.040532,0.06311,-0.005193,
+ -0.730923,0.289393,0.618064,0.040014,0.062169,-0.005308,
+ -0.639808,0.301071,0.707108,0.040532,0.06311,-0.005193,
+ -0.71131,0.334717,0.618064,0.04044,0.063153,-0.005308,
+ -0.747652,0.242927,0.618064,0.039651,0.06116,-0.005308,
+ -0.672497,0.218508,0.707108,0.039748,0.061129,-0.005193,
+ -0.65745,0.260303,0.707108,0.040109,0.062132,-0.005193,
+ -0.747652,0.242927,0.618064,0.039651,0.06116,-0.005308,
+ -0.65745,0.260303,0.707108,0.040109,0.062132,-0.005193,
+ -0.730923,0.289393,0.618064,0.040014,0.062169,-0.005308,
+ -0.76143,0.195502,0.618064,0.039352,0.06013,-0.005308,
+ -0.684891,0.17585,0.707108,0.03945,0.060105,-0.005193,
+ -0.672497,0.218508,0.707108,0.039748,0.061129,-0.005193,
+ -0.76143,0.195502,0.618064,0.039352,0.06013,-0.005308,
+ -0.672497,0.218508,0.707108,0.039748,0.061129,-0.005193,
+ -0.747652,0.242927,0.618064,0.039651,0.06116,-0.005308,
+ -0.772203,0.147306,0.618064,0.039118,0.059084,-0.005308,
+ -0.694581,0.132498,0.707108,0.039218,0.059065,-0.005193,
+ -0.684891,0.17585,0.707108,0.03945,0.060105,-0.005193,
+ -0.772203,0.147306,0.618064,0.039118,0.059084,-0.005308,
+ -0.684891,0.17585,0.707108,0.03945,0.060105,-0.005193,
+ -0.76143,0.195502,0.618064,0.039352,0.06013,-0.005308,
+ -0.779929,0.098528,0.618064,0.03895,0.058025,-0.005308,
+ -0.70153,0.088624,0.707108,0.039051,0.058012,-0.005193,
+ -0.694581,0.132498,0.707108,0.039218,0.059065,-0.005193,
+ -0.779929,0.098528,0.618064,0.03895,0.058025,-0.005308,
+ -0.694581,0.132498,0.707108,0.039218,0.059065,-0.005193,
+ -0.772203,0.147306,0.618064,0.039118,0.059084,-0.005308,
+ -0.784577,0.049361,0.618064,0.038849,0.056957,-0.005308,
+ -0.70571,0.0444,0.707108,0.038951,0.056951,-0.005193,
+ -0.70153,0.088624,0.707108,0.039051,0.058012,-0.005193,
+ -0.784577,0.049361,0.618064,0.038849,0.056957,-0.005308,
+ -0.70153,0.088624,0.707108,0.039051,0.058012,-0.005193,
+ -0.779929,0.098528,0.618064,0.03895,0.058025,-0.005308,
+ -0.786128,0,0.618064,0.038816,0.055885,-0.005308,
+ -0.707106,0,0.707108,0.038917,0.055885,-0.005193,
+ -0.70571,0.0444,0.707108,0.038951,0.056951,-0.005193,
+ -0.786128,0,0.618064,0.038816,0.055885,-0.005308,
+ -0.70571,0.0444,0.707108,0.038951,0.056951,-0.005193,
+ -0.784577,0.049361,0.618064,0.038849,0.056957,-0.005308,
+ -0.707106,0,0.707108,0.038917,0.055885,-0.005193,
+ -0.618061,0,0.78613,0.039032,0.055885,-0.005092,
+ -0.616842,0.038808,0.78613,0.039065,0.056943,-0.005092,
+ -0.707106,0,0.707108,0.038917,0.055885,-0.005193,
+ -0.616842,0.038808,0.78613,0.039065,0.056943,-0.005092,
+ -0.70571,0.0444,0.707108,0.038951,0.056951,-0.005193,
+ -0.70571,-0.0444,0.707108,0.038951,0.05482,-0.005193,
+ -0.616842,-0.038808,0.78613,0.039065,0.054827,-0.005092,
+ -0.618061,0,0.78613,0.039032,0.055885,-0.005092,
+ -0.70571,-0.0444,0.707108,0.038951,0.05482,-0.005193,
+ -0.618061,0,0.78613,0.039032,0.055885,-0.005092,
+ -0.707106,0,0.707108,0.038917,0.055885,-0.005193,
+ -0.70153,-0.088624,0.707108,0.039051,0.053759,-0.005193,
+ -0.613188,-0.077464,0.78613,0.039165,0.053773,-0.005092,
+ -0.616842,-0.038808,0.78613,0.039065,0.054827,-0.005092,
+ -0.70153,-0.088624,0.707108,0.039051,0.053759,-0.005193,
+ -0.616842,-0.038808,0.78613,0.039065,0.054827,-0.005092,
+ -0.70571,-0.0444,0.707108,0.038951,0.05482,-0.005193,
+ -0.694581,-0.132498,0.707108,0.039218,0.052706,-0.005193,
+ -0.607114,-0.115813,0.78613,0.039331,0.052727,-0.005092,
+ -0.613188,-0.077464,0.78613,0.039165,0.053773,-0.005092,
+ -0.694581,-0.132498,0.707108,0.039218,0.052706,-0.005193,
+ -0.613188,-0.077464,0.78613,0.039165,0.053773,-0.005092,
+ -0.70153,-0.088624,0.707108,0.039051,0.053759,-0.005193,
+ -0.684891,-0.17585,0.707108,0.03945,0.051666,-0.005193,
+ -0.598644,-0.153706,0.78613,0.039562,0.051694,-0.005092,
+ -0.607114,-0.115813,0.78613,0.039331,0.052727,-0.005092,
+ -0.684891,-0.17585,0.707108,0.03945,0.051666,-0.005193,
+ -0.607114,-0.115813,0.78613,0.039331,0.052727,-0.005092,
+ -0.694581,-0.132498,0.707108,0.039218,0.052706,-0.005193,
+ -0.672497,-0.218508,0.707108,0.039748,0.050642,-0.005193,
+ -0.587811,-0.190991,0.78613,0.039857,0.050677,-0.005092,
+ -0.598644,-0.153706,0.78613,0.039562,0.051694,-0.005092,
+ -0.672497,-0.218508,0.707108,0.039748,0.050642,-0.005193,
+ -0.598644,-0.153706,0.78613,0.039562,0.051694,-0.005092,
+ -0.684891,-0.17585,0.707108,0.03945,0.051666,-0.005193,
+ -0.65745,-0.260303,0.707108,0.040109,0.049639,-0.005193,
+ -0.574659,-0.227524,0.78613,0.040215,0.049681,-0.005092,
+ -0.587811,-0.190991,0.78613,0.039857,0.050677,-0.005092,
+ -0.65745,-0.260303,0.707108,0.040109,0.049639,-0.005193,
+ -0.587811,-0.190991,0.78613,0.039857,0.050677,-0.005092,
+ -0.672497,-0.218508,0.707108,0.039748,0.050642,-0.005193,
+ -0.639808,-0.301071,0.707108,0.040532,0.048661,-0.005193,
+ -0.559239,-0.263158,0.78613,0.040636,0.048709,-0.005092,
+ -0.574659,-0.227524,0.78613,0.040215,0.049681,-0.005092,
+ -0.639808,-0.301071,0.707108,0.040532,0.048661,-0.005193,
+ -0.574659,-0.227524,0.78613,0.040215,0.049681,-0.005092,
+ -0.65745,-0.260303,0.707108,0.040109,0.049639,-0.005193,
+ -0.619641,-0.340651,0.707108,0.041016,0.047711,-0.005193,
+ -0.541611,-0.297753,0.78613,0.041117,0.047766,-0.005092,
+ -0.559239,-0.263158,0.78613,0.040636,0.048709,-0.005092,
+ -0.619641,-0.340651,0.707108,0.041016,0.047711,-0.005193,
+ -0.559239,-0.263158,0.78613,0.040636,0.048709,-0.005092,
+ -0.639808,-0.301071,0.707108,0.040532,0.048661,-0.005193,
+ -0.597029,-0.378886,0.707108,0.041559,0.046793,-0.005193,
+ -0.521846,-0.331174,0.78613,0.041656,0.046855,-0.005092,
+ -0.541611,-0.297753,0.78613,0.041117,0.047766,-0.005092,
+ -0.597029,-0.378886,0.707108,0.041559,0.046793,-0.005193,
+ -0.541611,-0.297753,0.78613,0.041117,0.047766,-0.005092,
+ -0.619641,-0.340651,0.707108,0.041016,0.047711,-0.005193,
+ -0.57206,-0.415626,0.707108,0.042158,0.045912,-0.005193,
+ -0.500022,-0.363287,0.78613,0.042251,0.045979,-0.005092,
+ -0.521846,-0.331174,0.78613,0.041656,0.046855,-0.005092,
+ -0.57206,-0.415626,0.707108,0.042158,0.045912,-0.005193,
+ -0.521846,-0.331174,0.78613,0.041656,0.046855,-0.005092,
+ -0.597029,-0.378886,0.707108,0.041559,0.046793,-0.005193,
+ -0.544834,-0.450726,0.707108,0.042811,0.04507,-0.005193,
+ -0.476224,-0.393967,0.78613,0.0429,0.045143,-0.005092,
+ -0.500022,-0.363287,0.78613,0.042251,0.045979,-0.005092,
+ -0.544834,-0.450726,0.707108,0.042811,0.04507,-0.005193,
+ -0.500022,-0.363287,0.78613,0.042251,0.045979,-0.005092,
+ -0.57206,-0.415626,0.707108,0.042158,0.045912,-0.005193,
+ -0.515458,-0.484047,0.707108,0.043516,0.04427,-0.005193,
+ -0.450547,-0.423092,0.78613,0.0436,0.044348,-0.005092,
+ -0.476224,-0.393967,0.78613,0.0429,0.045143,-0.005092,
+ -0.515458,-0.484047,0.707108,0.043516,0.04427,-0.005193,
+ -0.476224,-0.393967,0.78613,0.0429,0.045143,-0.005092,
+ -0.544834,-0.450726,0.707108,0.042811,0.04507,-0.005193,
+ -0.484047,-0.515458,0.707108,0.04427,0.043516,-0.005193,
+ -0.423092,-0.450547,0.78613,0.044348,0.0436,-0.005092,
+ -0.450547,-0.423092,0.78613,0.0436,0.044348,-0.005092,
+ -0.484047,-0.515458,0.707108,0.04427,0.043516,-0.005193,
+ -0.450547,-0.423092,0.78613,0.0436,0.044348,-0.005092,
+ -0.515458,-0.484047,0.707108,0.043516,0.04427,-0.005193,
+ -0.450726,-0.544834,0.707108,0.04507,0.042811,-0.005193,
+ -0.393967,-0.476224,0.78613,0.045143,0.0429,-0.005092,
+ -0.423092,-0.450547,0.78613,0.044348,0.0436,-0.005092,
+ -0.450726,-0.544834,0.707108,0.04507,0.042811,-0.005193,
+ -0.423092,-0.450547,0.78613,0.044348,0.0436,-0.005092,
+ -0.484047,-0.515458,0.707108,0.04427,0.043516,-0.005193,
+ -0.415626,-0.57206,0.707108,0.045912,0.042158,-0.005193,
+ -0.363287,-0.500022,0.78613,0.045979,0.042251,-0.005092,
+ -0.393967,-0.476224,0.78613,0.045143,0.0429,-0.005092,
+ -0.415626,-0.57206,0.707108,0.045912,0.042158,-0.005193,
+ -0.393967,-0.476224,0.78613,0.045143,0.0429,-0.005092,
+ -0.450726,-0.544834,0.707108,0.04507,0.042811,-0.005193,
+ -0.378886,-0.597029,0.707108,0.046793,0.041559,-0.005193,
+ -0.331174,-0.521846,0.78613,0.046855,0.041656,-0.005092,
+ -0.363287,-0.500022,0.78613,0.045979,0.042251,-0.005092,
+ -0.378886,-0.597029,0.707108,0.046793,0.041559,-0.005193,
+ -0.363287,-0.500022,0.78613,0.045979,0.042251,-0.005092,
+ -0.415626,-0.57206,0.707108,0.045912,0.042158,-0.005193,
+ -0.340651,-0.619641,0.707108,0.047711,0.041016,-0.005193,
+ -0.297753,-0.541611,0.78613,0.047766,0.041117,-0.005092,
+ -0.331174,-0.521846,0.78613,0.046855,0.041656,-0.005092,
+ -0.340651,-0.619641,0.707108,0.047711,0.041016,-0.005193,
+ -0.331174,-0.521846,0.78613,0.046855,0.041656,-0.005092,
+ -0.378886,-0.597029,0.707108,0.046793,0.041559,-0.005193,
+ -0.301071,-0.639808,0.707108,0.048661,0.040532,-0.005193,
+ -0.263158,-0.559239,0.78613,0.048709,0.040636,-0.005092,
+ -0.297753,-0.541611,0.78613,0.047766,0.041117,-0.005092,
+ -0.301071,-0.639808,0.707108,0.048661,0.040532,-0.005193,
+ -0.297753,-0.541611,0.78613,0.047766,0.041117,-0.005092,
+ -0.340651,-0.619641,0.707108,0.047711,0.041016,-0.005193,
+ -0.260303,-0.65745,0.707108,0.049639,0.040109,-0.005193,
+ -0.227524,-0.574659,0.78613,0.049681,0.040215,-0.005092,
+ -0.263158,-0.559239,0.78613,0.048709,0.040636,-0.005092,
+ -0.260303,-0.65745,0.707108,0.049639,0.040109,-0.005193,
+ -0.263158,-0.559239,0.78613,0.048709,0.040636,-0.005092,
+ -0.301071,-0.639808,0.707108,0.048661,0.040532,-0.005193,
+ -0.218508,-0.672497,0.707108,0.050642,0.039748,-0.005193,
+ -0.190991,-0.587811,0.78613,0.050677,0.039857,-0.005092,
+ -0.227524,-0.574659,0.78613,0.049681,0.040215,-0.005092,
+ -0.218508,-0.672497,0.707108,0.050642,0.039748,-0.005193,
+ -0.227524,-0.574659,0.78613,0.049681,0.040215,-0.005092,
+ -0.260303,-0.65745,0.707108,0.049639,0.040109,-0.005193,
+ -0.17585,-0.684891,0.707108,0.051666,0.03945,-0.005193,
+ -0.153706,-0.598644,0.78613,0.051694,0.039562,-0.005092,
+ -0.190991,-0.587811,0.78613,0.050677,0.039857,-0.005092,
+ -0.17585,-0.684891,0.707108,0.051666,0.03945,-0.005193,
+ -0.190991,-0.587811,0.78613,0.050677,0.039857,-0.005092,
+ -0.218508,-0.672497,0.707108,0.050642,0.039748,-0.005193,
+ -0.132498,-0.694581,0.707108,0.052706,0.039218,-0.005193,
+ -0.115813,-0.607114,0.78613,0.052727,0.039331,-0.005092,
+ -0.153706,-0.598644,0.78613,0.051694,0.039562,-0.005092,
+ -0.132498,-0.694581,0.707108,0.052706,0.039218,-0.005193,
+ -0.153706,-0.598644,0.78613,0.051694,0.039562,-0.005092,
+ -0.17585,-0.684891,0.707108,0.051666,0.03945,-0.005193,
+ -0.088624,-0.70153,0.707108,0.053759,0.039051,-0.005193,
+ -0.077464,-0.613188,0.78613,0.053773,0.039165,-0.005092,
+ -0.115813,-0.607114,0.78613,0.052727,0.039331,-0.005092,
+ -0.088624,-0.70153,0.707108,0.053759,0.039051,-0.005193,
+ -0.115813,-0.607114,0.78613,0.052727,0.039331,-0.005092,
+ -0.132498,-0.694581,0.707108,0.052706,0.039218,-0.005193,
+ -0.0444,-0.70571,0.707108,0.05482,0.038951,-0.005193,
+ -0.038808,-0.616842,0.78613,0.054827,0.039065,-0.005092,
+ -0.077464,-0.613188,0.78613,0.053773,0.039165,-0.005092,
+ -0.0444,-0.70571,0.707108,0.05482,0.038951,-0.005193,
+ -0.077464,-0.613188,0.78613,0.053773,0.039165,-0.005092,
+ -0.088624,-0.70153,0.707108,0.053759,0.039051,-0.005193,
+ 0,-0.707106,0.707108,0.055885,0.038917,-0.005193,
+ 0,-0.618061,0.78613,0.055885,0.039032,-0.005092,
+ -0.038808,-0.616842,0.78613,0.054827,0.039065,-0.005092,
+ 0,-0.707106,0.707108,0.055885,0.038917,-0.005193,
+ -0.038808,-0.616842,0.78613,0.054827,0.039065,-0.005092,
+ -0.0444,-0.70571,0.707108,0.05482,0.038951,-0.005193,
+ 0.0444,-0.70571,0.707108,0.056951,0.038951,-0.005193,
+ 0.038808,-0.616842,0.78613,0.056943,0.039065,-0.005092,
+ 0,-0.618061,0.78613,0.055885,0.039032,-0.005092,
+ 0.0444,-0.70571,0.707108,0.056951,0.038951,-0.005193,
+ 0,-0.618061,0.78613,0.055885,0.039032,-0.005092,
+ 0,-0.707106,0.707108,0.055885,0.038917,-0.005193,
+ 0.088624,-0.70153,0.707108,0.058012,0.039051,-0.005193,
+ 0.077464,-0.613188,0.78613,0.057998,0.039165,-0.005092,
+ 0.038808,-0.616842,0.78613,0.056943,0.039065,-0.005092,
+ 0.088624,-0.70153,0.707108,0.058012,0.039051,-0.005193,
+ 0.038808,-0.616842,0.78613,0.056943,0.039065,-0.005092,
+ 0.0444,-0.70571,0.707108,0.056951,0.038951,-0.005193,
+ 0.132498,-0.694581,0.707108,0.059065,0.039218,-0.005193,
+ 0.115813,-0.607114,0.78613,0.059043,0.039331,-0.005092,
+ 0.077464,-0.613188,0.78613,0.057998,0.039165,-0.005092,
+ 0.132498,-0.694581,0.707108,0.059065,0.039218,-0.005193,
+ 0.077464,-0.613188,0.78613,0.057998,0.039165,-0.005092,
+ 0.088624,-0.70153,0.707108,0.058012,0.039051,-0.005193,
+ 0.17585,-0.684891,0.707108,0.060105,0.03945,-0.005193,
+ 0.153706,-0.598644,0.78613,0.060077,0.039562,-0.005092,
+ 0.115813,-0.607114,0.78613,0.059043,0.039331,-0.005092,
+ 0.17585,-0.684891,0.707108,0.060105,0.03945,-0.005193,
+ 0.115813,-0.607114,0.78613,0.059043,0.039331,-0.005092,
+ 0.132498,-0.694581,0.707108,0.059065,0.039218,-0.005193,
+ 0.218508,-0.672497,0.707108,0.061129,0.039748,-0.005193,
+ 0.190991,-0.587811,0.78613,0.061093,0.039857,-0.005092,
+ 0.153706,-0.598644,0.78613,0.060077,0.039562,-0.005092,
+ 0.218508,-0.672497,0.707108,0.061129,0.039748,-0.005193,
+ 0.153706,-0.598644,0.78613,0.060077,0.039562,-0.005092,
+ 0.17585,-0.684891,0.707108,0.060105,0.03945,-0.005193,
+ 0.260303,-0.65745,0.707108,0.062132,0.040109,-0.005193,
+ 0.227524,-0.574659,0.78613,0.062089,0.040215,-0.005092,
+ 0.190991,-0.587811,0.78613,0.061093,0.039857,-0.005092,
+ 0.260303,-0.65745,0.707108,0.062132,0.040109,-0.005193,
+ 0.190991,-0.587811,0.78613,0.061093,0.039857,-0.005092,
+ 0.218508,-0.672497,0.707108,0.061129,0.039748,-0.005193,
+ 0.301071,-0.639808,0.707108,0.06311,0.040532,-0.005193,
+ 0.263158,-0.559239,0.78613,0.063061,0.040636,-0.005092,
+ 0.227524,-0.574659,0.78613,0.062089,0.040215,-0.005092,
+ 0.301071,-0.639808,0.707108,0.06311,0.040532,-0.005193,
+ 0.227524,-0.574659,0.78613,0.062089,0.040215,-0.005092,
+ 0.260303,-0.65745,0.707108,0.062132,0.040109,-0.005193,
+ 0.340651,-0.619641,0.707108,0.06406,0.041016,-0.005193,
+ 0.297753,-0.541611,0.78613,0.064004,0.041117,-0.005092,
+ 0.263158,-0.559239,0.78613,0.063061,0.040636,-0.005092,
+ 0.340651,-0.619641,0.707108,0.06406,0.041016,-0.005193,
+ 0.263158,-0.559239,0.78613,0.063061,0.040636,-0.005092,
+ 0.301071,-0.639808,0.707108,0.06311,0.040532,-0.005193,
+ 0.378886,-0.597029,0.707108,0.064977,0.041559,-0.005193,
+ 0.331174,-0.521846,0.78613,0.064916,0.041656,-0.005092,
+ 0.297753,-0.541611,0.78613,0.064004,0.041117,-0.005092,
+ 0.378886,-0.597029,0.707108,0.064977,0.041559,-0.005193,
+ 0.297753,-0.541611,0.78613,0.064004,0.041117,-0.005092,
+ 0.340651,-0.619641,0.707108,0.06406,0.041016,-0.005193,
+ 0.415626,-0.57206,0.707108,0.065859,0.042158,-0.005193,
+ 0.363287,-0.500022,0.78613,0.065791,0.042251,-0.005092,
+ 0.331174,-0.521846,0.78613,0.064916,0.041656,-0.005092,
+ 0.415626,-0.57206,0.707108,0.065859,0.042158,-0.005193,
+ 0.331174,-0.521846,0.78613,0.064916,0.041656,-0.005092,
+ 0.378886,-0.597029,0.707108,0.064977,0.041559,-0.005193,
+ 0.450726,-0.544834,0.707108,0.066701,0.042811,-0.005193,
+ 0.393967,-0.476224,0.78613,0.066628,0.0429,-0.005092,
+ 0.363287,-0.500022,0.78613,0.065791,0.042251,-0.005092,
+ 0.450726,-0.544834,0.707108,0.066701,0.042811,-0.005193,
+ 0.363287,-0.500022,0.78613,0.065791,0.042251,-0.005092,
+ 0.415626,-0.57206,0.707108,0.065859,0.042158,-0.005193,
+ 0.484047,-0.515458,0.707108,0.067501,0.043516,-0.005193,
+ 0.423092,-0.450547,0.78613,0.067422,0.0436,-0.005092,
+ 0.393967,-0.476224,0.78613,0.066628,0.0429,-0.005092,
+ 0.484047,-0.515458,0.707108,0.067501,0.043516,-0.005193,
+ 0.393967,-0.476224,0.78613,0.066628,0.0429,-0.005092,
+ 0.450726,-0.544834,0.707108,0.066701,0.042811,-0.005193,
+ 0.515458,-0.484047,0.707108,0.068254,0.04427,-0.005193,
+ 0.450547,-0.423092,0.78613,0.068171,0.044348,-0.005092,
+ 0.423092,-0.450547,0.78613,0.067422,0.0436,-0.005092,
+ 0.515458,-0.484047,0.707108,0.068254,0.04427,-0.005193,
+ 0.423092,-0.450547,0.78613,0.067422,0.0436,-0.005092,
+ 0.484047,-0.515458,0.707108,0.067501,0.043516,-0.005193,
+ 0.544834,-0.450726,0.707108,0.068959,0.04507,-0.005193,
+ 0.476224,-0.393967,0.78613,0.068871,0.045143,-0.005092,
+ 0.450547,-0.423092,0.78613,0.068171,0.044348,-0.005092,
+ 0.544834,-0.450726,0.707108,0.068959,0.04507,-0.005193,
+ 0.450547,-0.423092,0.78613,0.068171,0.044348,-0.005092,
+ 0.515458,-0.484047,0.707108,0.068254,0.04427,-0.005193,
+ 0.57206,-0.415626,0.707108,0.069613,0.045912,-0.005193,
+ 0.500022,-0.363287,0.78613,0.06952,0.045979,-0.005092,
+ 0.476224,-0.393967,0.78613,0.068871,0.045143,-0.005092,
+ 0.57206,-0.415626,0.707108,0.069613,0.045912,-0.005193,
+ 0.476224,-0.393967,0.78613,0.068871,0.045143,-0.005092,
+ 0.544834,-0.450726,0.707108,0.068959,0.04507,-0.005193,
+ 0.597029,-0.378886,0.707108,0.070212,0.046793,-0.005193,
+ 0.521846,-0.331174,0.78613,0.070115,0.046855,-0.005092,
+ 0.500022,-0.363287,0.78613,0.06952,0.045979,-0.005092,
+ 0.597029,-0.378886,0.707108,0.070212,0.046793,-0.005193,
+ 0.500022,-0.363287,0.78613,0.06952,0.045979,-0.005092,
+ 0.57206,-0.415626,0.707108,0.069613,0.045912,-0.005193,
+ 0.619641,-0.340651,0.707108,0.070754,0.047711,-0.005193,
+ 0.541611,-0.297753,0.78613,0.070654,0.047766,-0.005092,
+ 0.521846,-0.331174,0.78613,0.070115,0.046855,-0.005092,
+ 0.619641,-0.340651,0.707108,0.070754,0.047711,-0.005193,
+ 0.521846,-0.331174,0.78613,0.070115,0.046855,-0.005092,
+ 0.597029,-0.378886,0.707108,0.070212,0.046793,-0.005193,
+ 0.639808,-0.301071,0.707108,0.071238,0.048661,-0.005193,
+ 0.559239,-0.263158,0.78613,0.071135,0.048709,-0.005092,
+ 0.541611,-0.297753,0.78613,0.070654,0.047766,-0.005092,
+ 0.639808,-0.301071,0.707108,0.071238,0.048661,-0.005193,
+ 0.541611,-0.297753,0.78613,0.070654,0.047766,-0.005092,
+ 0.619641,-0.340651,0.707108,0.070754,0.047711,-0.005193,
+ 0.65745,-0.260303,0.707108,0.071662,0.049639,-0.005193,
+ 0.574659,-0.227524,0.78613,0.071555,0.049681,-0.005092,
+ 0.559239,-0.263158,0.78613,0.071135,0.048709,-0.005092,
+ 0.65745,-0.260303,0.707108,0.071662,0.049639,-0.005193,
+ 0.559239,-0.263158,0.78613,0.071135,0.048709,-0.005092,
+ 0.639808,-0.301071,0.707108,0.071238,0.048661,-0.005193,
+ 0.672497,-0.218508,0.707108,0.072023,0.050642,-0.005193,
+ 0.587811,-0.190991,0.78613,0.071914,0.050677,-0.005092,
+ 0.574659,-0.227524,0.78613,0.071555,0.049681,-0.005092,
+ 0.672497,-0.218508,0.707108,0.072023,0.050642,-0.005193,
+ 0.574659,-0.227524,0.78613,0.071555,0.049681,-0.005092,
+ 0.65745,-0.260303,0.707108,0.071662,0.049639,-0.005193,
+ 0.684891,-0.17585,0.707108,0.07232,0.051666,-0.005193,
+ 0.598644,-0.153706,0.78613,0.072209,0.051694,-0.005092,
+ 0.587811,-0.190991,0.78613,0.071914,0.050677,-0.005092,
+ 0.684891,-0.17585,0.707108,0.07232,0.051666,-0.005193,
+ 0.587811,-0.190991,0.78613,0.071914,0.050677,-0.005092,
+ 0.672497,-0.218508,0.707108,0.072023,0.050642,-0.005193,
+ 0.694581,-0.132498,0.707108,0.072553,0.052706,-0.005193,
+ 0.607114,-0.115813,0.78613,0.07244,0.052727,-0.005092,
+ 0.598644,-0.153706,0.78613,0.072209,0.051694,-0.005092,
+ 0.694581,-0.132498,0.707108,0.072553,0.052706,-0.005193,
+ 0.598644,-0.153706,0.78613,0.072209,0.051694,-0.005092,
+ 0.684891,-0.17585,0.707108,0.07232,0.051666,-0.005193,
+ 0.70153,-0.088624,0.707108,0.072719,0.053759,-0.005193,
+ 0.613188,-0.077464,0.78613,0.072606,0.053773,-0.005092,
+ 0.607114,-0.115813,0.78613,0.07244,0.052727,-0.005092,
+ 0.70153,-0.088624,0.707108,0.072719,0.053759,-0.005193,
+ 0.607114,-0.115813,0.78613,0.07244,0.052727,-0.005092,
+ 0.694581,-0.132498,0.707108,0.072553,0.052706,-0.005193,
+ 0.70571,-0.0444,0.707108,0.07282,0.05482,-0.005193,
+ 0.616842,-0.038808,0.78613,0.072705,0.054827,-0.005092,
+ 0.613188,-0.077464,0.78613,0.072606,0.053773,-0.005092,
+ 0.70571,-0.0444,0.707108,0.07282,0.05482,-0.005193,
+ 0.613188,-0.077464,0.78613,0.072606,0.053773,-0.005092,
+ 0.70153,-0.088624,0.707108,0.072719,0.053759,-0.005193,
+ 0.707106,0,0.707108,0.072853,0.055885,-0.005193,
+ 0.618061,0,0.78613,0.072739,0.055885,-0.005092,
+ 0.616842,-0.038808,0.78613,0.072705,0.054827,-0.005092,
+ 0.707106,0,0.707108,0.072853,0.055885,-0.005193,
+ 0.616842,-0.038808,0.78613,0.072705,0.054827,-0.005092,
+ 0.70571,-0.0444,0.707108,0.07282,0.05482,-0.005193,
+ 0.70571,0.0444,0.707108,0.07282,0.056951,-0.005193,
+ 0.616842,0.038808,0.78613,0.072705,0.056943,-0.005092,
+ 0.618061,0,0.78613,0.072739,0.055885,-0.005092,
+ 0.70571,0.0444,0.707108,0.07282,0.056951,-0.005193,
+ 0.618061,0,0.78613,0.072739,0.055885,-0.005092,
+ 0.707106,0,0.707108,0.072853,0.055885,-0.005193,
+ 0.70153,0.088624,0.707108,0.072719,0.058012,-0.005193,
+ 0.613188,0.077464,0.78613,0.072606,0.057998,-0.005092,
+ 0.616842,0.038808,0.78613,0.072705,0.056943,-0.005092,
+ 0.70153,0.088624,0.707108,0.072719,0.058012,-0.005193,
+ 0.616842,0.038808,0.78613,0.072705,0.056943,-0.005092,
+ 0.70571,0.0444,0.707108,0.07282,0.056951,-0.005193,
+ 0.694581,0.132498,0.707108,0.072553,0.059065,-0.005193,
+ 0.607114,0.115813,0.78613,0.07244,0.059043,-0.005092,
+ 0.613188,0.077464,0.78613,0.072606,0.057998,-0.005092,
+ 0.694581,0.132498,0.707108,0.072553,0.059065,-0.005193,
+ 0.613188,0.077464,0.78613,0.072606,0.057998,-0.005092,
+ 0.70153,0.088624,0.707108,0.072719,0.058012,-0.005193,
+ 0.684891,0.17585,0.707108,0.07232,0.060105,-0.005193,
+ 0.598644,0.153706,0.78613,0.072209,0.060077,-0.005092,
+ 0.607114,0.115813,0.78613,0.07244,0.059043,-0.005092,
+ 0.684891,0.17585,0.707108,0.07232,0.060105,-0.005193,
+ 0.607114,0.115813,0.78613,0.07244,0.059043,-0.005092,
+ 0.694581,0.132498,0.707108,0.072553,0.059065,-0.005193,
+ 0.672497,0.218508,0.707108,0.072023,0.061129,-0.005193,
+ 0.587811,0.190991,0.78613,0.071914,0.061093,-0.005092,
+ 0.598644,0.153706,0.78613,0.072209,0.060077,-0.005092,
+ 0.672497,0.218508,0.707108,0.072023,0.061129,-0.005193,
+ 0.598644,0.153706,0.78613,0.072209,0.060077,-0.005092,
+ 0.684891,0.17585,0.707108,0.07232,0.060105,-0.005193,
+ 0.65745,0.260303,0.707108,0.071662,0.062132,-0.005193,
+ 0.574659,0.227524,0.78613,0.071555,0.062089,-0.005092,
+ 0.587811,0.190991,0.78613,0.071914,0.061093,-0.005092,
+ 0.65745,0.260303,0.707108,0.071662,0.062132,-0.005193,
+ 0.587811,0.190991,0.78613,0.071914,0.061093,-0.005092,
+ 0.672497,0.218508,0.707108,0.072023,0.061129,-0.005193,
+ 0.639808,0.301071,0.707108,0.071238,0.06311,-0.005193,
+ 0.559239,0.263158,0.78613,0.071135,0.063061,-0.005092,
+ 0.574659,0.227524,0.78613,0.071555,0.062089,-0.005092,
+ 0.639808,0.301071,0.707108,0.071238,0.06311,-0.005193,
+ 0.574659,0.227524,0.78613,0.071555,0.062089,-0.005092,
+ 0.65745,0.260303,0.707108,0.071662,0.062132,-0.005193,
+ 0.619641,0.340651,0.707108,0.070754,0.06406,-0.005193,
+ 0.541611,0.297753,0.78613,0.070654,0.064004,-0.005092,
+ 0.559239,0.263158,0.78613,0.071135,0.063061,-0.005092,
+ 0.619641,0.340651,0.707108,0.070754,0.06406,-0.005193,
+ 0.559239,0.263158,0.78613,0.071135,0.063061,-0.005092,
+ 0.639808,0.301071,0.707108,0.071238,0.06311,-0.005193,
+ 0.597029,0.378886,0.707108,0.070212,0.064977,-0.005193,
+ 0.521846,0.331174,0.78613,0.070115,0.064916,-0.005092,
+ 0.541611,0.297753,0.78613,0.070654,0.064004,-0.005092,
+ 0.597029,0.378886,0.707108,0.070212,0.064977,-0.005193,
+ 0.541611,0.297753,0.78613,0.070654,0.064004,-0.005092,
+ 0.619641,0.340651,0.707108,0.070754,0.06406,-0.005193,
+ 0.57206,0.415626,0.707108,0.069613,0.065859,-0.005193,
+ 0.500022,0.363287,0.78613,0.06952,0.065791,-0.005092,
+ 0.521846,0.331174,0.78613,0.070115,0.064916,-0.005092,
+ 0.57206,0.415626,0.707108,0.069613,0.065859,-0.005193,
+ 0.521846,0.331174,0.78613,0.070115,0.064916,-0.005092,
+ 0.597029,0.378886,0.707108,0.070212,0.064977,-0.005193,
+ 0.544834,0.450726,0.707108,0.068959,0.066701,-0.005193,
+ 0.476224,0.393967,0.78613,0.068871,0.066628,-0.005092,
+ 0.500022,0.363287,0.78613,0.06952,0.065791,-0.005092,
+ 0.544834,0.450726,0.707108,0.068959,0.066701,-0.005193,
+ 0.500022,0.363287,0.78613,0.06952,0.065791,-0.005092,
+ 0.57206,0.415626,0.707108,0.069613,0.065859,-0.005193,
+ 0.515458,0.484047,0.707108,0.068254,0.067501,-0.005193,
+ 0.450547,0.423092,0.78613,0.068171,0.067422,-0.005092,
+ 0.476224,0.393967,0.78613,0.068871,0.066628,-0.005092,
+ 0.515458,0.484047,0.707108,0.068254,0.067501,-0.005193,
+ 0.476224,0.393967,0.78613,0.068871,0.066628,-0.005092,
+ 0.544834,0.450726,0.707108,0.068959,0.066701,-0.005193,
+ 0.484047,0.515458,0.707108,0.067501,0.068254,-0.005193,
+ 0.423092,0.450547,0.78613,0.067422,0.068171,-0.005092,
+ 0.450547,0.423092,0.78613,0.068171,0.067422,-0.005092,
+ 0.484047,0.515458,0.707108,0.067501,0.068254,-0.005193,
+ 0.450547,0.423092,0.78613,0.068171,0.067422,-0.005092,
+ 0.515458,0.484047,0.707108,0.068254,0.067501,-0.005193,
+ 0.450726,0.544834,0.707108,0.066701,0.068959,-0.005193,
+ 0.393967,0.476224,0.78613,0.066628,0.068871,-0.005092,
+ 0.423092,0.450547,0.78613,0.067422,0.068171,-0.005092,
+ 0.450726,0.544834,0.707108,0.066701,0.068959,-0.005193,
+ 0.423092,0.450547,0.78613,0.067422,0.068171,-0.005092,
+ 0.484047,0.515458,0.707108,0.067501,0.068254,-0.005193,
+ 0.415626,0.57206,0.707108,0.065859,0.069613,-0.005193,
+ 0.363287,0.500022,0.78613,0.065791,0.06952,-0.005092,
+ 0.393967,0.476224,0.78613,0.066628,0.068871,-0.005092,
+ 0.415626,0.57206,0.707108,0.065859,0.069613,-0.005193,
+ 0.393967,0.476224,0.78613,0.066628,0.068871,-0.005092,
+ 0.450726,0.544834,0.707108,0.066701,0.068959,-0.005193,
+ 0.378886,0.597029,0.707108,0.064977,0.070212,-0.005193,
+ 0.331174,0.521846,0.78613,0.064916,0.070115,-0.005092,
+ 0.363287,0.500022,0.78613,0.065791,0.06952,-0.005092,
+ 0.378886,0.597029,0.707108,0.064977,0.070212,-0.005193,
+ 0.363287,0.500022,0.78613,0.065791,0.06952,-0.005092,
+ 0.415626,0.57206,0.707108,0.065859,0.069613,-0.005193,
+ 0.340651,0.619641,0.707108,0.06406,0.070754,-0.005193,
+ 0.297753,0.541611,0.78613,0.064004,0.070654,-0.005092,
+ 0.331174,0.521846,0.78613,0.064916,0.070115,-0.005092,
+ 0.340651,0.619641,0.707108,0.06406,0.070754,-0.005193,
+ 0.331174,0.521846,0.78613,0.064916,0.070115,-0.005092,
+ 0.378886,0.597029,0.707108,0.064977,0.070212,-0.005193,
+ 0.301071,0.639808,0.707108,0.06311,0.071238,-0.005193,
+ 0.263158,0.559239,0.78613,0.063061,0.071135,-0.005092,
+ 0.297753,0.541611,0.78613,0.064004,0.070654,-0.005092,
+ 0.301071,0.639808,0.707108,0.06311,0.071238,-0.005193,
+ 0.297753,0.541611,0.78613,0.064004,0.070654,-0.005092,
+ 0.340651,0.619641,0.707108,0.06406,0.070754,-0.005193,
+ 0.260303,0.65745,0.707108,0.062132,0.071662,-0.005193,
+ 0.227524,0.574659,0.78613,0.062089,0.071555,-0.005092,
+ 0.263158,0.559239,0.78613,0.063061,0.071135,-0.005092,
+ 0.260303,0.65745,0.707108,0.062132,0.071662,-0.005193,
+ 0.263158,0.559239,0.78613,0.063061,0.071135,-0.005092,
+ 0.301071,0.639808,0.707108,0.06311,0.071238,-0.005193,
+ 0.218508,0.672497,0.707108,0.061129,0.072023,-0.005193,
+ 0.190991,0.587811,0.78613,0.061093,0.071914,-0.005092,
+ 0.227524,0.574659,0.78613,0.062089,0.071555,-0.005092,
+ 0.218508,0.672497,0.707108,0.061129,0.072023,-0.005193,
+ 0.227524,0.574659,0.78613,0.062089,0.071555,-0.005092,
+ 0.260303,0.65745,0.707108,0.062132,0.071662,-0.005193,
+ 0.17585,0.684891,0.707108,0.060105,0.07232,-0.005193,
+ 0.153706,0.598644,0.78613,0.060077,0.072209,-0.005092,
+ 0.190991,0.587811,0.78613,0.061093,0.071914,-0.005092,
+ 0.17585,0.684891,0.707108,0.060105,0.07232,-0.005193,
+ 0.190991,0.587811,0.78613,0.061093,0.071914,-0.005092,
+ 0.218508,0.672497,0.707108,0.061129,0.072023,-0.005193,
+ 0.132498,0.694581,0.707108,0.059065,0.072553,-0.005193,
+ 0.115813,0.607114,0.78613,0.059043,0.07244,-0.005092,
+ 0.153706,0.598644,0.78613,0.060077,0.072209,-0.005092,
+ 0.132498,0.694581,0.707108,0.059065,0.072553,-0.005193,
+ 0.153706,0.598644,0.78613,0.060077,0.072209,-0.005092,
+ 0.17585,0.684891,0.707108,0.060105,0.07232,-0.005193,
+ 0.088624,0.70153,0.707108,0.058012,0.072719,-0.005193,
+ 0.077464,0.613188,0.78613,0.057998,0.072606,-0.005092,
+ 0.115813,0.607114,0.78613,0.059043,0.07244,-0.005092,
+ 0.088624,0.70153,0.707108,0.058012,0.072719,-0.005193,
+ 0.115813,0.607114,0.78613,0.059043,0.07244,-0.005092,
+ 0.132498,0.694581,0.707108,0.059065,0.072553,-0.005193,
+ 0.0444,0.70571,0.707108,0.056951,0.07282,-0.005193,
+ 0.038808,0.616842,0.78613,0.056943,0.072705,-0.005092,
+ 0.077464,0.613188,0.78613,0.057998,0.072606,-0.005092,
+ 0.0444,0.70571,0.707108,0.056951,0.07282,-0.005193,
+ 0.077464,0.613188,0.78613,0.057998,0.072606,-0.005092,
+ 0.088624,0.70153,0.707108,0.058012,0.072719,-0.005193,
+ 0,0.707106,0.707108,0.055885,0.072853,-0.005193,
+ 0,0.618061,0.78613,0.055885,0.072739,-0.005092,
+ 0.038808,0.616842,0.78613,0.056943,0.072705,-0.005092,
+ 0,0.707106,0.707108,0.055885,0.072853,-0.005193,
+ 0.038808,0.616842,0.78613,0.056943,0.072705,-0.005092,
+ 0.0444,0.70571,0.707108,0.056951,0.07282,-0.005193,
+ -0.0444,0.70571,0.707108,0.05482,0.07282,-0.005193,
+ -0.038808,0.616842,0.78613,0.054827,0.072705,-0.005092,
+ 0,0.618061,0.78613,0.055885,0.072739,-0.005092,
+ -0.0444,0.70571,0.707108,0.05482,0.07282,-0.005193,
+ 0,0.618061,0.78613,0.055885,0.072739,-0.005092,
+ 0,0.707106,0.707108,0.055885,0.072853,-0.005193,
+ -0.088624,0.70153,0.707108,0.053759,0.072719,-0.005193,
+ -0.077464,0.613188,0.78613,0.053773,0.072606,-0.005092,
+ -0.038808,0.616842,0.78613,0.054827,0.072705,-0.005092,
+ -0.088624,0.70153,0.707108,0.053759,0.072719,-0.005193,
+ -0.038808,0.616842,0.78613,0.054827,0.072705,-0.005092,
+ -0.0444,0.70571,0.707108,0.05482,0.07282,-0.005193,
+ -0.132498,0.694581,0.707108,0.052706,0.072553,-0.005193,
+ -0.115813,0.607114,0.78613,0.052727,0.07244,-0.005092,
+ -0.077464,0.613188,0.78613,0.053773,0.072606,-0.005092,
+ -0.132498,0.694581,0.707108,0.052706,0.072553,-0.005193,
+ -0.077464,0.613188,0.78613,0.053773,0.072606,-0.005092,
+ -0.088624,0.70153,0.707108,0.053759,0.072719,-0.005193,
+ -0.17585,0.684891,0.707108,0.051666,0.07232,-0.005193,
+ -0.153706,0.598644,0.78613,0.051694,0.072209,-0.005092,
+ -0.115813,0.607114,0.78613,0.052727,0.07244,-0.005092,
+ -0.17585,0.684891,0.707108,0.051666,0.07232,-0.005193,
+ -0.115813,0.607114,0.78613,0.052727,0.07244,-0.005092,
+ -0.132498,0.694581,0.707108,0.052706,0.072553,-0.005193,
+ -0.218508,0.672497,0.707108,0.050642,0.072023,-0.005193,
+ -0.190991,0.587811,0.78613,0.050677,0.071914,-0.005092,
+ -0.153706,0.598644,0.78613,0.051694,0.072209,-0.005092,
+ -0.218508,0.672497,0.707108,0.050642,0.072023,-0.005193,
+ -0.153706,0.598644,0.78613,0.051694,0.072209,-0.005092,
+ -0.17585,0.684891,0.707108,0.051666,0.07232,-0.005193,
+ -0.260303,0.65745,0.707108,0.049639,0.071662,-0.005193,
+ -0.227524,0.574659,0.78613,0.049681,0.071555,-0.005092,
+ -0.190991,0.587811,0.78613,0.050677,0.071914,-0.005092,
+ -0.260303,0.65745,0.707108,0.049639,0.071662,-0.005193,
+ -0.190991,0.587811,0.78613,0.050677,0.071914,-0.005092,
+ -0.218508,0.672497,0.707108,0.050642,0.072023,-0.005193,
+ -0.301071,0.639808,0.707108,0.048661,0.071238,-0.005193,
+ -0.263158,0.559239,0.78613,0.048709,0.071135,-0.005092,
+ -0.227524,0.574659,0.78613,0.049681,0.071555,-0.005092,
+ -0.301071,0.639808,0.707108,0.048661,0.071238,-0.005193,
+ -0.227524,0.574659,0.78613,0.049681,0.071555,-0.005092,
+ -0.260303,0.65745,0.707108,0.049639,0.071662,-0.005193,
+ -0.340651,0.619641,0.707108,0.047711,0.070754,-0.005193,
+ -0.297753,0.541611,0.78613,0.047766,0.070654,-0.005092,
+ -0.263158,0.559239,0.78613,0.048709,0.071135,-0.005092,
+ -0.340651,0.619641,0.707108,0.047711,0.070754,-0.005193,
+ -0.263158,0.559239,0.78613,0.048709,0.071135,-0.005092,
+ -0.301071,0.639808,0.707108,0.048661,0.071238,-0.005193,
+ -0.378886,0.597029,0.707108,0.046793,0.070212,-0.005193,
+ -0.331174,0.521846,0.78613,0.046855,0.070115,-0.005092,
+ -0.297753,0.541611,0.78613,0.047766,0.070654,-0.005092,
+ -0.378886,0.597029,0.707108,0.046793,0.070212,-0.005193,
+ -0.297753,0.541611,0.78613,0.047766,0.070654,-0.005092,
+ -0.340651,0.619641,0.707108,0.047711,0.070754,-0.005193,
+ -0.415626,0.57206,0.707108,0.045912,0.069613,-0.005193,
+ -0.363287,0.500022,0.78613,0.045979,0.06952,-0.005092,
+ -0.331174,0.521846,0.78613,0.046855,0.070115,-0.005092,
+ -0.415626,0.57206,0.707108,0.045912,0.069613,-0.005193,
+ -0.331174,0.521846,0.78613,0.046855,0.070115,-0.005092,
+ -0.378886,0.597029,0.707108,0.046793,0.070212,-0.005193,
+ -0.450726,0.544834,0.707108,0.04507,0.068959,-0.005193,
+ -0.393967,0.476224,0.78613,0.045143,0.068871,-0.005092,
+ -0.363287,0.500022,0.78613,0.045979,0.06952,-0.005092,
+ -0.450726,0.544834,0.707108,0.04507,0.068959,-0.005193,
+ -0.363287,0.500022,0.78613,0.045979,0.06952,-0.005092,
+ -0.415626,0.57206,0.707108,0.045912,0.069613,-0.005193,
+ -0.484047,0.515458,0.707108,0.04427,0.068254,-0.005193,
+ -0.423092,0.450547,0.78613,0.044348,0.068171,-0.005092,
+ -0.393967,0.476224,0.78613,0.045143,0.068871,-0.005092,
+ -0.484047,0.515458,0.707108,0.04427,0.068254,-0.005193,
+ -0.393967,0.476224,0.78613,0.045143,0.068871,-0.005092,
+ -0.450726,0.544834,0.707108,0.04507,0.068959,-0.005193,
+ -0.515458,0.484047,0.707108,0.043516,0.067501,-0.005193,
+ -0.450547,0.423092,0.78613,0.0436,0.067422,-0.005092,
+ -0.423092,0.450547,0.78613,0.044348,0.068171,-0.005092,
+ -0.515458,0.484047,0.707108,0.043516,0.067501,-0.005193,
+ -0.423092,0.450547,0.78613,0.044348,0.068171,-0.005092,
+ -0.484047,0.515458,0.707108,0.04427,0.068254,-0.005193,
+ -0.544834,0.450726,0.707108,0.042811,0.066701,-0.005193,
+ -0.476224,0.393967,0.78613,0.0429,0.066628,-0.005092,
+ -0.450547,0.423092,0.78613,0.0436,0.067422,-0.005092,
+ -0.544834,0.450726,0.707108,0.042811,0.066701,-0.005193,
+ -0.450547,0.423092,0.78613,0.0436,0.067422,-0.005092,
+ -0.515458,0.484047,0.707108,0.043516,0.067501,-0.005193,
+ -0.57206,0.415626,0.707108,0.042158,0.065859,-0.005193,
+ -0.500022,0.363287,0.78613,0.042251,0.065791,-0.005092,
+ -0.476224,0.393967,0.78613,0.0429,0.066628,-0.005092,
+ -0.57206,0.415626,0.707108,0.042158,0.065859,-0.005193,
+ -0.476224,0.393967,0.78613,0.0429,0.066628,-0.005092,
+ -0.544834,0.450726,0.707108,0.042811,0.066701,-0.005193,
+ -0.597029,0.378886,0.707108,0.041559,0.064977,-0.005193,
+ -0.521846,0.331174,0.78613,0.041656,0.064916,-0.005092,
+ -0.500022,0.363287,0.78613,0.042251,0.065791,-0.005092,
+ -0.597029,0.378886,0.707108,0.041559,0.064977,-0.005193,
+ -0.500022,0.363287,0.78613,0.042251,0.065791,-0.005092,
+ -0.57206,0.415626,0.707108,0.042158,0.065859,-0.005193,
+ -0.619641,0.340651,0.707108,0.041016,0.06406,-0.005193,
+ -0.541611,0.297753,0.78613,0.041117,0.064004,-0.005092,
+ -0.521846,0.331174,0.78613,0.041656,0.064916,-0.005092,
+ -0.619641,0.340651,0.707108,0.041016,0.06406,-0.005193,
+ -0.521846,0.331174,0.78613,0.041656,0.064916,-0.005092,
+ -0.597029,0.378886,0.707108,0.041559,0.064977,-0.005193,
+ -0.639808,0.301071,0.707108,0.040532,0.06311,-0.005193,
+ -0.559239,0.263158,0.78613,0.040636,0.063061,-0.005092,
+ -0.541611,0.297753,0.78613,0.041117,0.064004,-0.005092,
+ -0.639808,0.301071,0.707108,0.040532,0.06311,-0.005193,
+ -0.541611,0.297753,0.78613,0.041117,0.064004,-0.005092,
+ -0.619641,0.340651,0.707108,0.041016,0.06406,-0.005193,
+ -0.65745,0.260303,0.707108,0.040109,0.062132,-0.005193,
+ -0.574659,0.227524,0.78613,0.040215,0.062089,-0.005092,
+ -0.559239,0.263158,0.78613,0.040636,0.063061,-0.005092,
+ -0.65745,0.260303,0.707108,0.040109,0.062132,-0.005193,
+ -0.559239,0.263158,0.78613,0.040636,0.063061,-0.005092,
+ -0.639808,0.301071,0.707108,0.040532,0.06311,-0.005193,
+ -0.672497,0.218508,0.707108,0.039748,0.061129,-0.005193,
+ -0.587811,0.190991,0.78613,0.039857,0.061093,-0.005092,
+ -0.574659,0.227524,0.78613,0.040215,0.062089,-0.005092,
+ -0.672497,0.218508,0.707108,0.039748,0.061129,-0.005193,
+ -0.574659,0.227524,0.78613,0.040215,0.062089,-0.005092,
+ -0.65745,0.260303,0.707108,0.040109,0.062132,-0.005193,
+ -0.684891,0.17585,0.707108,0.03945,0.060105,-0.005193,
+ -0.598644,0.153706,0.78613,0.039562,0.060077,-0.005092,
+ -0.587811,0.190991,0.78613,0.039857,0.061093,-0.005092,
+ -0.684891,0.17585,0.707108,0.03945,0.060105,-0.005193,
+ -0.587811,0.190991,0.78613,0.039857,0.061093,-0.005092,
+ -0.672497,0.218508,0.707108,0.039748,0.061129,-0.005193,
+ -0.694581,0.132498,0.707108,0.039218,0.059065,-0.005193,
+ -0.607114,0.115813,0.78613,0.039331,0.059043,-0.005092,
+ -0.598644,0.153706,0.78613,0.039562,0.060077,-0.005092,
+ -0.694581,0.132498,0.707108,0.039218,0.059065,-0.005193,
+ -0.598644,0.153706,0.78613,0.039562,0.060077,-0.005092,
+ -0.684891,0.17585,0.707108,0.03945,0.060105,-0.005193,
+ -0.70153,0.088624,0.707108,0.039051,0.058012,-0.005193,
+ -0.613188,0.077464,0.78613,0.039165,0.057998,-0.005092,
+ -0.607114,0.115813,0.78613,0.039331,0.059043,-0.005092,
+ -0.70153,0.088624,0.707108,0.039051,0.058012,-0.005193,
+ -0.607114,0.115813,0.78613,0.039331,0.059043,-0.005092,
+ -0.694581,0.132498,0.707108,0.039218,0.059065,-0.005193,
+ -0.70571,0.0444,0.707108,0.038951,0.056951,-0.005193,
+ -0.616842,0.038808,0.78613,0.039065,0.056943,-0.005092,
+ -0.613188,0.077464,0.78613,0.039165,0.057998,-0.005092,
+ -0.70571,0.0444,0.707108,0.038951,0.056951,-0.005193,
+ -0.613188,0.077464,0.78613,0.039165,0.057998,-0.005092,
+ -0.70153,0.088624,0.707108,0.039051,0.058012,-0.005193,
+ -0.616842,0.038808,0.78613,0.039065,0.056943,-0.005092,
+ -0.519231,0.032667,0.85401,0.039191,0.056936,-0.005004,
+ -0.516155,0.065205,0.85401,0.03929,0.057982,-0.005004,
+ -0.616842,0.038808,0.78613,0.039065,0.056943,-0.005092,
+ -0.516155,0.065205,0.85401,0.03929,0.057982,-0.005004,
+ -0.613188,0.077464,0.78613,0.039165,0.057998,-0.005092,
+ -0.618061,0,0.78613,0.039032,0.055885,-0.005092,
+ -0.520257,0,0.85401,0.039158,0.055885,-0.005004,
+ -0.519231,0.032667,0.85401,0.039191,0.056936,-0.005004,
+ -0.618061,0,0.78613,0.039032,0.055885,-0.005092,
+ -0.519231,0.032667,0.85401,0.039191,0.056936,-0.005004,
+ -0.616842,0.038808,0.78613,0.039065,0.056943,-0.005092,
+ -0.616842,-0.038808,0.78613,0.039065,0.054827,-0.005092,
+ -0.519231,-0.032667,0.85401,0.039191,0.054835,-0.005004,
+ -0.520257,0,0.85401,0.039158,0.055885,-0.005004,
+ -0.616842,-0.038808,0.78613,0.039065,0.054827,-0.005092,
+ -0.520257,0,0.85401,0.039158,0.055885,-0.005004,
+ -0.618061,0,0.78613,0.039032,0.055885,-0.005092,
+ -0.613188,-0.077464,0.78613,0.039165,0.053773,-0.005092,
+ -0.516155,-0.065205,0.85401,0.03929,0.053789,-0.005004,
+ -0.519231,-0.032667,0.85401,0.039191,0.054835,-0.005004,
+ -0.613188,-0.077464,0.78613,0.039165,0.053773,-0.005092,
+ -0.519231,-0.032667,0.85401,0.039191,0.054835,-0.005004,
+ -0.616842,-0.038808,0.78613,0.039065,0.054827,-0.005092,
+ -0.607114,-0.115813,0.78613,0.039331,0.052727,-0.005092,
+ -0.511042,-0.097487,0.85401,0.039454,0.052751,-0.005004,
+ -0.516155,-0.065205,0.85401,0.03929,0.053789,-0.005004,
+ -0.607114,-0.115813,0.78613,0.039331,0.052727,-0.005092,
+ -0.516155,-0.065205,0.85401,0.03929,0.053789,-0.005004,
+ -0.613188,-0.077464,0.78613,0.039165,0.053773,-0.005092,
+ -0.598644,-0.153706,0.78613,0.039562,0.051694,-0.005092,
+ -0.503912,-0.129383,0.85401,0.039684,0.051725,-0.005004,
+ -0.511042,-0.097487,0.85401,0.039454,0.052751,-0.005004,
+ -0.598644,-0.153706,0.78613,0.039562,0.051694,-0.005092,
+ -0.511042,-0.097487,0.85401,0.039454,0.052751,-0.005004,
+ -0.607114,-0.115813,0.78613,0.039331,0.052727,-0.005092,
+ -0.587811,-0.190991,0.78613,0.039857,0.050677,-0.005092,
+ -0.494794,-0.160768,0.85401,0.039977,0.050716,-0.005004,
+ -0.503912,-0.129383,0.85401,0.039684,0.051725,-0.005004,
+ -0.587811,-0.190991,0.78613,0.039857,0.050677,-0.005092,
+ -0.503912,-0.129383,0.85401,0.039684,0.051725,-0.005004,
+ -0.598644,-0.153706,0.78613,0.039562,0.051694,-0.005092,
+ -0.574659,-0.227524,0.78613,0.040215,0.049681,-0.005092,
+ -0.483723,-0.191519,0.85401,0.040333,0.049728,-0.005004,
+ -0.494794,-0.160768,0.85401,0.039977,0.050716,-0.005004,
+ -0.574659,-0.227524,0.78613,0.040215,0.049681,-0.005092,
+ -0.494794,-0.160768,0.85401,0.039977,0.050716,-0.005004,
+ -0.587811,-0.190991,0.78613,0.039857,0.050677,-0.005092,
+ -0.559239,-0.263158,0.78613,0.040636,0.048709,-0.005092,
+ -0.470743,-0.221515,0.85401,0.04075,0.048763,-0.005004,
+ -0.483723,-0.191519,0.85401,0.040333,0.049728,-0.005004,
+ -0.559239,-0.263158,0.78613,0.040636,0.048709,-0.005092,
+ -0.483723,-0.191519,0.85401,0.040333,0.049728,-0.005004,
+ -0.574659,-0.227524,0.78613,0.040215,0.049681,-0.005092,
+ -0.541611,-0.297753,0.78613,0.041117,0.047766,-0.005092,
+ -0.455905,-0.250636,0.85401,0.041227,0.047827,-0.005004,
+ -0.470743,-0.221515,0.85401,0.04075,0.048763,-0.005004,
+ -0.541611,-0.297753,0.78613,0.041117,0.047766,-0.005092,
+ -0.470743,-0.221515,0.85401,0.04075,0.048763,-0.005004,
+ -0.559239,-0.263158,0.78613,0.040636,0.048709,-0.005092,
+ -0.521846,-0.331174,0.78613,0.041656,0.046855,-0.005092,
+ -0.439268,-0.278768,0.85401,0.041762,0.046922,-0.005004,
+ -0.455905,-0.250636,0.85401,0.041227,0.047827,-0.005004,
+ -0.521846,-0.331174,0.78613,0.041656,0.046855,-0.005092,
+ -0.455905,-0.250636,0.85401,0.041227,0.047827,-0.005004,
+ -0.541611,-0.297753,0.78613,0.041117,0.047766,-0.005092,
+ -0.500022,-0.363287,0.78613,0.042251,0.045979,-0.005092,
+ -0.420897,-0.3058,0.85401,0.042353,0.046053,-0.005004,
+ -0.439268,-0.278768,0.85401,0.041762,0.046922,-0.005004,
+ -0.500022,-0.363287,0.78613,0.042251,0.045979,-0.005092,
+ -0.439268,-0.278768,0.85401,0.041762,0.046922,-0.005004,
+ -0.521846,-0.331174,0.78613,0.041656,0.046855,-0.005092,
+ -0.476224,-0.393967,0.78613,0.0429,0.045143,-0.005092,
+ -0.400865,-0.331624,0.85401,0.042997,0.045223,-0.005004,
+ -0.420897,-0.3058,0.85401,0.042353,0.046053,-0.005004,
+ -0.476224,-0.393967,0.78613,0.0429,0.045143,-0.005092,
+ -0.420897,-0.3058,0.85401,0.042353,0.046053,-0.005004,
+ -0.500022,-0.363287,0.78613,0.042251,0.045979,-0.005092,
+ -0.450547,-0.423092,0.78613,0.0436,0.044348,-0.005092,
+ -0.379251,-0.356141,0.85401,0.043692,0.044435,-0.005004,
+ -0.400865,-0.331624,0.85401,0.042997,0.045223,-0.005004,
+ -0.450547,-0.423092,0.78613,0.0436,0.044348,-0.005092,
+ -0.400865,-0.331624,0.85401,0.042997,0.045223,-0.005004,
+ -0.476224,-0.393967,0.78613,0.0429,0.045143,-0.005092,
+ -0.423092,-0.450547,0.78613,0.044348,0.0436,-0.005092,
+ -0.356141,-0.379251,0.85401,0.044435,0.043692,-0.005004,
+ -0.379251,-0.356141,0.85401,0.043692,0.044435,-0.005004,
+ -0.423092,-0.450547,0.78613,0.044348,0.0436,-0.005092,
+ -0.379251,-0.356141,0.85401,0.043692,0.044435,-0.005004,
+ -0.450547,-0.423092,0.78613,0.0436,0.044348,-0.005092,
+ -0.393967,-0.476224,0.78613,0.045143,0.0429,-0.005092,
+ -0.331624,-0.400865,0.85401,0.045223,0.042997,-0.005004,
+ -0.356141,-0.379251,0.85401,0.044435,0.043692,-0.005004,
+ -0.393967,-0.476224,0.78613,0.045143,0.0429,-0.005092,
+ -0.356141,-0.379251,0.85401,0.044435,0.043692,-0.005004,
+ -0.423092,-0.450547,0.78613,0.044348,0.0436,-0.005092,
+ -0.363287,-0.500022,0.78613,0.045979,0.042251,-0.005092,
+ -0.3058,-0.420897,0.85401,0.046053,0.042353,-0.005004,
+ -0.331624,-0.400865,0.85401,0.045223,0.042997,-0.005004,
+ -0.363287,-0.500022,0.78613,0.045979,0.042251,-0.005092,
+ -0.331624,-0.400865,0.85401,0.045223,0.042997,-0.005004,
+ -0.393967,-0.476224,0.78613,0.045143,0.0429,-0.005092,
+ -0.331174,-0.521846,0.78613,0.046855,0.041656,-0.005092,
+ -0.278768,-0.439268,0.85401,0.046922,0.041762,-0.005004,
+ -0.3058,-0.420897,0.85401,0.046053,0.042353,-0.005004,
+ -0.331174,-0.521846,0.78613,0.046855,0.041656,-0.005092,
+ -0.3058,-0.420897,0.85401,0.046053,0.042353,-0.005004,
+ -0.363287,-0.500022,0.78613,0.045979,0.042251,-0.005092,
+ -0.297753,-0.541611,0.78613,0.047766,0.041117,-0.005092,
+ -0.250636,-0.455905,0.85401,0.047827,0.041227,-0.005004,
+ -0.278768,-0.439268,0.85401,0.046922,0.041762,-0.005004,
+ -0.297753,-0.541611,0.78613,0.047766,0.041117,-0.005092,
+ -0.278768,-0.439268,0.85401,0.046922,0.041762,-0.005004,
+ -0.331174,-0.521846,0.78613,0.046855,0.041656,-0.005092,
+ -0.263158,-0.559239,0.78613,0.048709,0.040636,-0.005092,
+ -0.221515,-0.470743,0.85401,0.048763,0.04075,-0.005004,
+ -0.250636,-0.455905,0.85401,0.047827,0.041227,-0.005004,
+ -0.263158,-0.559239,0.78613,0.048709,0.040636,-0.005092,
+ -0.250636,-0.455905,0.85401,0.047827,0.041227,-0.005004,
+ -0.297753,-0.541611,0.78613,0.047766,0.041117,-0.005092,
+ -0.227524,-0.574659,0.78613,0.049681,0.040215,-0.005092,
+ -0.191519,-0.483723,0.85401,0.049728,0.040333,-0.005004,
+ -0.221515,-0.470743,0.85401,0.048763,0.04075,-0.005004,
+ -0.227524,-0.574659,0.78613,0.049681,0.040215,-0.005092,
+ -0.221515,-0.470743,0.85401,0.048763,0.04075,-0.005004,
+ -0.263158,-0.559239,0.78613,0.048709,0.040636,-0.005092,
+ -0.190991,-0.587811,0.78613,0.050677,0.039857,-0.005092,
+ -0.160768,-0.494794,0.85401,0.050716,0.039977,-0.005004,
+ -0.191519,-0.483723,0.85401,0.049728,0.040333,-0.005004,
+ -0.190991,-0.587811,0.78613,0.050677,0.039857,-0.005092,
+ -0.191519,-0.483723,0.85401,0.049728,0.040333,-0.005004,
+ -0.227524,-0.574659,0.78613,0.049681,0.040215,-0.005092,
+ -0.153706,-0.598644,0.78613,0.051694,0.039562,-0.005092,
+ -0.129383,-0.503912,0.85401,0.051725,0.039684,-0.005004,
+ -0.160768,-0.494794,0.85401,0.050716,0.039977,-0.005004,
+ -0.153706,-0.598644,0.78613,0.051694,0.039562,-0.005092,
+ -0.160768,-0.494794,0.85401,0.050716,0.039977,-0.005004,
+ -0.190991,-0.587811,0.78613,0.050677,0.039857,-0.005092,
+ -0.115813,-0.607114,0.78613,0.052727,0.039331,-0.005092,
+ -0.097487,-0.511042,0.85401,0.052751,0.039454,-0.005004,
+ -0.129383,-0.503912,0.85401,0.051725,0.039684,-0.005004,
+ -0.115813,-0.607114,0.78613,0.052727,0.039331,-0.005092,
+ -0.129383,-0.503912,0.85401,0.051725,0.039684,-0.005004,
+ -0.153706,-0.598644,0.78613,0.051694,0.039562,-0.005092,
+ -0.077464,-0.613188,0.78613,0.053773,0.039165,-0.005092,
+ -0.065205,-0.516155,0.85401,0.053789,0.03929,-0.005004,
+ -0.097487,-0.511042,0.85401,0.052751,0.039454,-0.005004,
+ -0.077464,-0.613188,0.78613,0.053773,0.039165,-0.005092,
+ -0.097487,-0.511042,0.85401,0.052751,0.039454,-0.005004,
+ -0.115813,-0.607114,0.78613,0.052727,0.039331,-0.005092,
+ -0.038808,-0.616842,0.78613,0.054827,0.039065,-0.005092,
+ -0.032667,-0.519231,0.85401,0.054835,0.039191,-0.005004,
+ -0.065205,-0.516155,0.85401,0.053789,0.03929,-0.005004,
+ -0.038808,-0.616842,0.78613,0.054827,0.039065,-0.005092,
+ -0.065205,-0.516155,0.85401,0.053789,0.03929,-0.005004,
+ -0.077464,-0.613188,0.78613,0.053773,0.039165,-0.005092,
+ 0,-0.618061,0.78613,0.055885,0.039032,-0.005092,
+ 0,-0.520257,0.85401,0.055885,0.039158,-0.005004,
+ -0.032667,-0.519231,0.85401,0.054835,0.039191,-0.005004,
+ 0,-0.618061,0.78613,0.055885,0.039032,-0.005092,
+ -0.032667,-0.519231,0.85401,0.054835,0.039191,-0.005004,
+ -0.038808,-0.616842,0.78613,0.054827,0.039065,-0.005092,
+ 0.038808,-0.616842,0.78613,0.056943,0.039065,-0.005092,
+ 0.032667,-0.519231,0.85401,0.056936,0.039191,-0.005004,
+ 0,-0.520257,0.85401,0.055885,0.039158,-0.005004,
+ 0.038808,-0.616842,0.78613,0.056943,0.039065,-0.005092,
+ 0,-0.520257,0.85401,0.055885,0.039158,-0.005004,
+ 0,-0.618061,0.78613,0.055885,0.039032,-0.005092,
+ 0.077464,-0.613188,0.78613,0.057998,0.039165,-0.005092,
+ 0.065205,-0.516155,0.85401,0.057982,0.03929,-0.005004,
+ 0.032667,-0.519231,0.85401,0.056936,0.039191,-0.005004,
+ 0.077464,-0.613188,0.78613,0.057998,0.039165,-0.005092,
+ 0.032667,-0.519231,0.85401,0.056936,0.039191,-0.005004,
+ 0.038808,-0.616842,0.78613,0.056943,0.039065,-0.005092,
+ 0.115813,-0.607114,0.78613,0.059043,0.039331,-0.005092,
+ 0.097487,-0.511042,0.85401,0.05902,0.039454,-0.005004,
+ 0.065205,-0.516155,0.85401,0.057982,0.03929,-0.005004,
+ 0.115813,-0.607114,0.78613,0.059043,0.039331,-0.005092,
+ 0.065205,-0.516155,0.85401,0.057982,0.03929,-0.005004,
+ 0.077464,-0.613188,0.78613,0.057998,0.039165,-0.005092,
+ 0.153706,-0.598644,0.78613,0.060077,0.039562,-0.005092,
+ 0.129383,-0.503912,0.85401,0.060045,0.039684,-0.005004,
+ 0.097487,-0.511042,0.85401,0.05902,0.039454,-0.005004,
+ 0.153706,-0.598644,0.78613,0.060077,0.039562,-0.005092,
+ 0.097487,-0.511042,0.85401,0.05902,0.039454,-0.005004,
+ 0.115813,-0.607114,0.78613,0.059043,0.039331,-0.005092,
+ 0.190991,-0.587811,0.78613,0.061093,0.039857,-0.005092,
+ 0.160768,-0.494794,0.85401,0.061054,0.039977,-0.005004,
+ 0.129383,-0.503912,0.85401,0.060045,0.039684,-0.005004,
+ 0.190991,-0.587811,0.78613,0.061093,0.039857,-0.005092,
+ 0.129383,-0.503912,0.85401,0.060045,0.039684,-0.005004,
+ 0.153706,-0.598644,0.78613,0.060077,0.039562,-0.005092,
+ 0.227524,-0.574659,0.78613,0.062089,0.040215,-0.005092,
+ 0.191519,-0.483723,0.85401,0.062043,0.040333,-0.005004,
+ 0.160768,-0.494794,0.85401,0.061054,0.039977,-0.005004,
+ 0.227524,-0.574659,0.78613,0.062089,0.040215,-0.005092,
+ 0.160768,-0.494794,0.85401,0.061054,0.039977,-0.005004,
+ 0.190991,-0.587811,0.78613,0.061093,0.039857,-0.005092,
+ 0.263158,-0.559239,0.78613,0.063061,0.040636,-0.005092,
+ 0.221515,-0.470743,0.85401,0.063007,0.04075,-0.005004,
+ 0.191519,-0.483723,0.85401,0.062043,0.040333,-0.005004,
+ 0.263158,-0.559239,0.78613,0.063061,0.040636,-0.005092,
+ 0.191519,-0.483723,0.85401,0.062043,0.040333,-0.005004,
+ 0.227524,-0.574659,0.78613,0.062089,0.040215,-0.005092,
+ 0.297753,-0.541611,0.78613,0.064004,0.041117,-0.005092,
+ 0.250636,-0.455905,0.85401,0.063944,0.041227,-0.005004,
+ 0.221515,-0.470743,0.85401,0.063007,0.04075,-0.005004,
+ 0.297753,-0.541611,0.78613,0.064004,0.041117,-0.005092,
+ 0.221515,-0.470743,0.85401,0.063007,0.04075,-0.005004,
+ 0.263158,-0.559239,0.78613,0.063061,0.040636,-0.005092,
+ 0.331174,-0.521846,0.78613,0.064916,0.041656,-0.005092,
+ 0.278768,-0.439268,0.85401,0.064848,0.041762,-0.005004,
+ 0.250636,-0.455905,0.85401,0.063944,0.041227,-0.005004,
+ 0.331174,-0.521846,0.78613,0.064916,0.041656,-0.005092,
+ 0.250636,-0.455905,0.85401,0.063944,0.041227,-0.005004,
+ 0.297753,-0.541611,0.78613,0.064004,0.041117,-0.005092,
+ 0.363287,-0.500022,0.78613,0.065791,0.042251,-0.005092,
+ 0.3058,-0.420897,0.85401,0.065717,0.042353,-0.005004,
+ 0.278768,-0.439268,0.85401,0.064848,0.041762,-0.005004,
+ 0.363287,-0.500022,0.78613,0.065791,0.042251,-0.005092,
+ 0.278768,-0.439268,0.85401,0.064848,0.041762,-0.005004,
+ 0.331174,-0.521846,0.78613,0.064916,0.041656,-0.005092,
+ 0.393967,-0.476224,0.78613,0.066628,0.0429,-0.005092,
+ 0.331624,-0.400865,0.85401,0.066548,0.042997,-0.005004,
+ 0.3058,-0.420897,0.85401,0.065717,0.042353,-0.005004,
+ 0.393967,-0.476224,0.78613,0.066628,0.0429,-0.005092,
+ 0.3058,-0.420897,0.85401,0.065717,0.042353,-0.005004,
+ 0.363287,-0.500022,0.78613,0.065791,0.042251,-0.005092,
+ 0.423092,-0.450547,0.78613,0.067422,0.0436,-0.005092,
+ 0.356141,-0.379251,0.85401,0.067336,0.043692,-0.005004,
+ 0.331624,-0.400865,0.85401,0.066548,0.042997,-0.005004,
+ 0.423092,-0.450547,0.78613,0.067422,0.0436,-0.005092,
+ 0.331624,-0.400865,0.85401,0.066548,0.042997,-0.005004,
+ 0.393967,-0.476224,0.78613,0.066628,0.0429,-0.005092,
+ 0.450547,-0.423092,0.78613,0.068171,0.044348,-0.005092,
+ 0.379251,-0.356141,0.85401,0.068079,0.044435,-0.005004,
+ 0.356141,-0.379251,0.85401,0.067336,0.043692,-0.005004,
+ 0.450547,-0.423092,0.78613,0.068171,0.044348,-0.005092,
+ 0.356141,-0.379251,0.85401,0.067336,0.043692,-0.005004,
+ 0.423092,-0.450547,0.78613,0.067422,0.0436,-0.005092,
+ 0.476224,-0.393967,0.78613,0.068871,0.045143,-0.005092,
+ 0.400865,-0.331624,0.85401,0.068774,0.045223,-0.005004,
+ 0.379251,-0.356141,0.85401,0.068079,0.044435,-0.005004,
+ 0.476224,-0.393967,0.78613,0.068871,0.045143,-0.005092,
+ 0.379251,-0.356141,0.85401,0.068079,0.044435,-0.005004,
+ 0.450547,-0.423092,0.78613,0.068171,0.044348,-0.005092,
+ 0.500022,-0.363287,0.78613,0.06952,0.045979,-0.005092,
+ 0.420897,-0.3058,0.85401,0.069418,0.046053,-0.005004,
+ 0.400865,-0.331624,0.85401,0.068774,0.045223,-0.005004,
+ 0.500022,-0.363287,0.78613,0.06952,0.045979,-0.005092,
+ 0.400865,-0.331624,0.85401,0.068774,0.045223,-0.005004,
+ 0.476224,-0.393967,0.78613,0.068871,0.045143,-0.005092,
+ 0.521846,-0.331174,0.78613,0.070115,0.046855,-0.005092,
+ 0.439268,-0.278768,0.85401,0.070009,0.046922,-0.005004,
+ 0.420897,-0.3058,0.85401,0.069418,0.046053,-0.005004,
+ 0.521846,-0.331174,0.78613,0.070115,0.046855,-0.005092,
+ 0.420897,-0.3058,0.85401,0.069418,0.046053,-0.005004,
+ 0.500022,-0.363287,0.78613,0.06952,0.045979,-0.005092,
+ 0.541611,-0.297753,0.78613,0.070654,0.047766,-0.005092,
+ 0.455905,-0.250636,0.85401,0.070543,0.047827,-0.005004,
+ 0.439268,-0.278768,0.85401,0.070009,0.046922,-0.005004,
+ 0.541611,-0.297753,0.78613,0.070654,0.047766,-0.005092,
+ 0.439268,-0.278768,0.85401,0.070009,0.046922,-0.005004,
+ 0.521846,-0.331174,0.78613,0.070115,0.046855,-0.005092,
+ 0.559239,-0.263158,0.78613,0.071135,0.048709,-0.005092,
+ 0.470743,-0.221515,0.85401,0.071021,0.048763,-0.005004,
+ 0.455905,-0.250636,0.85401,0.070543,0.047827,-0.005004,
+ 0.559239,-0.263158,0.78613,0.071135,0.048709,-0.005092,
+ 0.455905,-0.250636,0.85401,0.070543,0.047827,-0.005004,
+ 0.541611,-0.297753,0.78613,0.070654,0.047766,-0.005092,
+ 0.574659,-0.227524,0.78613,0.071555,0.049681,-0.005092,
+ 0.483723,-0.191519,0.85401,0.071438,0.049728,-0.005004,
+ 0.470743,-0.221515,0.85401,0.071021,0.048763,-0.005004,
+ 0.574659,-0.227524,0.78613,0.071555,0.049681,-0.005092,
+ 0.470743,-0.221515,0.85401,0.071021,0.048763,-0.005004,
+ 0.559239,-0.263158,0.78613,0.071135,0.048709,-0.005092,
+ 0.587811,-0.190991,0.78613,0.071914,0.050677,-0.005092,
+ 0.494794,-0.160768,0.85401,0.071794,0.050716,-0.005004,
+ 0.483723,-0.191519,0.85401,0.071438,0.049728,-0.005004,
+ 0.587811,-0.190991,0.78613,0.071914,0.050677,-0.005092,
+ 0.483723,-0.191519,0.85401,0.071438,0.049728,-0.005004,
+ 0.574659,-0.227524,0.78613,0.071555,0.049681,-0.005092,
+ 0.598644,-0.153706,0.78613,0.072209,0.051694,-0.005092,
+ 0.503912,-0.129383,0.85401,0.072087,0.051725,-0.005004,
+ 0.494794,-0.160768,0.85401,0.071794,0.050716,-0.005004,
+ 0.598644,-0.153706,0.78613,0.072209,0.051694,-0.005092,
+ 0.494794,-0.160768,0.85401,0.071794,0.050716,-0.005004,
+ 0.587811,-0.190991,0.78613,0.071914,0.050677,-0.005092,
+ 0.607114,-0.115813,0.78613,0.07244,0.052727,-0.005092,
+ 0.511042,-0.097487,0.85401,0.072316,0.052751,-0.005004,
+ 0.503912,-0.129383,0.85401,0.072087,0.051725,-0.005004,
+ 0.607114,-0.115813,0.78613,0.07244,0.052727,-0.005092,
+ 0.503912,-0.129383,0.85401,0.072087,0.051725,-0.005004,
+ 0.598644,-0.153706,0.78613,0.072209,0.051694,-0.005092,
+ 0.613188,-0.077464,0.78613,0.072606,0.053773,-0.005092,
+ 0.516155,-0.065205,0.85401,0.072481,0.053789,-0.005004,
+ 0.511042,-0.097487,0.85401,0.072316,0.052751,-0.005004,
+ 0.613188,-0.077464,0.78613,0.072606,0.053773,-0.005092,
+ 0.511042,-0.097487,0.85401,0.072316,0.052751,-0.005004,
+ 0.607114,-0.115813,0.78613,0.07244,0.052727,-0.005092,
+ 0.616842,-0.038808,0.78613,0.072705,0.054827,-0.005092,
+ 0.519231,-0.032667,0.85401,0.07258,0.054835,-0.005004,
+ 0.516155,-0.065205,0.85401,0.072481,0.053789,-0.005004,
+ 0.616842,-0.038808,0.78613,0.072705,0.054827,-0.005092,
+ 0.516155,-0.065205,0.85401,0.072481,0.053789,-0.005004,
+ 0.613188,-0.077464,0.78613,0.072606,0.053773,-0.005092,
+ 0.618061,0,0.78613,0.072739,0.055885,-0.005092,
+ 0.520257,0,0.85401,0.072613,0.055885,-0.005004,
+ 0.519231,-0.032667,0.85401,0.07258,0.054835,-0.005004,
+ 0.618061,0,0.78613,0.072739,0.055885,-0.005092,
+ 0.519231,-0.032667,0.85401,0.07258,0.054835,-0.005004,
+ 0.616842,-0.038808,0.78613,0.072705,0.054827,-0.005092,
+ 0.616842,0.038808,0.78613,0.072705,0.056943,-0.005092,
+ 0.519231,0.032667,0.85401,0.07258,0.056936,-0.005004,
+ 0.520257,0,0.85401,0.072613,0.055885,-0.005004,
+ 0.616842,0.038808,0.78613,0.072705,0.056943,-0.005092,
+ 0.520257,0,0.85401,0.072613,0.055885,-0.005004,
+ 0.618061,0,0.78613,0.072739,0.055885,-0.005092,
+ 0.613188,0.077464,0.78613,0.072606,0.057998,-0.005092,
+ 0.516155,0.065205,0.85401,0.072481,0.057982,-0.005004,
+ 0.519231,0.032667,0.85401,0.07258,0.056936,-0.005004,
+ 0.613188,0.077464,0.78613,0.072606,0.057998,-0.005092,
+ 0.519231,0.032667,0.85401,0.07258,0.056936,-0.005004,
+ 0.616842,0.038808,0.78613,0.072705,0.056943,-0.005092,
+ 0.607114,0.115813,0.78613,0.07244,0.059043,-0.005092,
+ 0.511042,0.097487,0.85401,0.072316,0.05902,-0.005004,
+ 0.516155,0.065205,0.85401,0.072481,0.057982,-0.005004,
+ 0.607114,0.115813,0.78613,0.07244,0.059043,-0.005092,
+ 0.516155,0.065205,0.85401,0.072481,0.057982,-0.005004,
+ 0.613188,0.077464,0.78613,0.072606,0.057998,-0.005092,
+ 0.598644,0.153706,0.78613,0.072209,0.060077,-0.005092,
+ 0.503912,0.129383,0.85401,0.072087,0.060045,-0.005004,
+ 0.511042,0.097487,0.85401,0.072316,0.05902,-0.005004,
+ 0.598644,0.153706,0.78613,0.072209,0.060077,-0.005092,
+ 0.511042,0.097487,0.85401,0.072316,0.05902,-0.005004,
+ 0.607114,0.115813,0.78613,0.07244,0.059043,-0.005092,
+ 0.587811,0.190991,0.78613,0.071914,0.061093,-0.005092,
+ 0.494794,0.160768,0.85401,0.071794,0.061054,-0.005004,
+ 0.503912,0.129383,0.85401,0.072087,0.060045,-0.005004,
+ 0.587811,0.190991,0.78613,0.071914,0.061093,-0.005092,
+ 0.503912,0.129383,0.85401,0.072087,0.060045,-0.005004,
+ 0.598644,0.153706,0.78613,0.072209,0.060077,-0.005092,
+ 0.574659,0.227524,0.78613,0.071555,0.062089,-0.005092,
+ 0.483723,0.191519,0.85401,0.071438,0.062043,-0.005004,
+ 0.494794,0.160768,0.85401,0.071794,0.061054,-0.005004,
+ 0.574659,0.227524,0.78613,0.071555,0.062089,-0.005092,
+ 0.494794,0.160768,0.85401,0.071794,0.061054,-0.005004,
+ 0.587811,0.190991,0.78613,0.071914,0.061093,-0.005092,
+ 0.559239,0.263158,0.78613,0.071135,0.063061,-0.005092,
+ 0.470743,0.221515,0.85401,0.071021,0.063007,-0.005004,
+ 0.483723,0.191519,0.85401,0.071438,0.062043,-0.005004,
+ 0.559239,0.263158,0.78613,0.071135,0.063061,-0.005092,
+ 0.483723,0.191519,0.85401,0.071438,0.062043,-0.005004,
+ 0.574659,0.227524,0.78613,0.071555,0.062089,-0.005092,
+ 0.541611,0.297753,0.78613,0.070654,0.064004,-0.005092,
+ 0.455905,0.250636,0.85401,0.070543,0.063944,-0.005004,
+ 0.470743,0.221515,0.85401,0.071021,0.063007,-0.005004,
+ 0.541611,0.297753,0.78613,0.070654,0.064004,-0.005092,
+ 0.470743,0.221515,0.85401,0.071021,0.063007,-0.005004,
+ 0.559239,0.263158,0.78613,0.071135,0.063061,-0.005092,
+ 0.521846,0.331174,0.78613,0.070115,0.064916,-0.005092,
+ 0.439268,0.278768,0.85401,0.070009,0.064848,-0.005004,
+ 0.455905,0.250636,0.85401,0.070543,0.063944,-0.005004,
+ 0.521846,0.331174,0.78613,0.070115,0.064916,-0.005092,
+ 0.455905,0.250636,0.85401,0.070543,0.063944,-0.005004,
+ 0.541611,0.297753,0.78613,0.070654,0.064004,-0.005092,
+ 0.500022,0.363287,0.78613,0.06952,0.065791,-0.005092,
+ 0.420897,0.3058,0.85401,0.069418,0.065717,-0.005004,
+ 0.439268,0.278768,0.85401,0.070009,0.064848,-0.005004,
+ 0.500022,0.363287,0.78613,0.06952,0.065791,-0.005092,
+ 0.439268,0.278768,0.85401,0.070009,0.064848,-0.005004,
+ 0.521846,0.331174,0.78613,0.070115,0.064916,-0.005092,
+ 0.476224,0.393967,0.78613,0.068871,0.066628,-0.005092,
+ 0.400865,0.331624,0.85401,0.068774,0.066548,-0.005004,
+ 0.420897,0.3058,0.85401,0.069418,0.065717,-0.005004,
+ 0.476224,0.393967,0.78613,0.068871,0.066628,-0.005092,
+ 0.420897,0.3058,0.85401,0.069418,0.065717,-0.005004,
+ 0.500022,0.363287,0.78613,0.06952,0.065791,-0.005092,
+ 0.450547,0.423092,0.78613,0.068171,0.067422,-0.005092,
+ 0.379251,0.356141,0.85401,0.068079,0.067336,-0.005004,
+ 0.400865,0.331624,0.85401,0.068774,0.066548,-0.005004,
+ 0.450547,0.423092,0.78613,0.068171,0.067422,-0.005092,
+ 0.400865,0.331624,0.85401,0.068774,0.066548,-0.005004,
+ 0.476224,0.393967,0.78613,0.068871,0.066628,-0.005092,
+ 0.423092,0.450547,0.78613,0.067422,0.068171,-0.005092,
+ 0.356141,0.379251,0.85401,0.067336,0.068079,-0.005004,
+ 0.379251,0.356141,0.85401,0.068079,0.067336,-0.005004,
+ 0.423092,0.450547,0.78613,0.067422,0.068171,-0.005092,
+ 0.379251,0.356141,0.85401,0.068079,0.067336,-0.005004,
+ 0.450547,0.423092,0.78613,0.068171,0.067422,-0.005092,
+ 0.393967,0.476224,0.78613,0.066628,0.068871,-0.005092,
+ 0.331624,0.400865,0.85401,0.066548,0.068774,-0.005004,
+ 0.356141,0.379251,0.85401,0.067336,0.068079,-0.005004,
+ 0.393967,0.476224,0.78613,0.066628,0.068871,-0.005092,
+ 0.356141,0.379251,0.85401,0.067336,0.068079,-0.005004,
+ 0.423092,0.450547,0.78613,0.067422,0.068171,-0.005092,
+ 0.363287,0.500022,0.78613,0.065791,0.06952,-0.005092,
+ 0.3058,0.420897,0.85401,0.065717,0.069418,-0.005004,
+ 0.331624,0.400865,0.85401,0.066548,0.068774,-0.005004,
+ 0.363287,0.500022,0.78613,0.065791,0.06952,-0.005092,
+ 0.331624,0.400865,0.85401,0.066548,0.068774,-0.005004,
+ 0.393967,0.476224,0.78613,0.066628,0.068871,-0.005092,
+ 0.331174,0.521846,0.78613,0.064916,0.070115,-0.005092,
+ 0.278768,0.439268,0.85401,0.064848,0.070009,-0.005004,
+ 0.3058,0.420897,0.85401,0.065717,0.069418,-0.005004,
+ 0.331174,0.521846,0.78613,0.064916,0.070115,-0.005092,
+ 0.3058,0.420897,0.85401,0.065717,0.069418,-0.005004,
+ 0.363287,0.500022,0.78613,0.065791,0.06952,-0.005092,
+ 0.297753,0.541611,0.78613,0.064004,0.070654,-0.005092,
+ 0.250636,0.455905,0.85401,0.063944,0.070543,-0.005004,
+ 0.278768,0.439268,0.85401,0.064848,0.070009,-0.005004,
+ 0.297753,0.541611,0.78613,0.064004,0.070654,-0.005092,
+ 0.278768,0.439268,0.85401,0.064848,0.070009,-0.005004,
+ 0.331174,0.521846,0.78613,0.064916,0.070115,-0.005092,
+ 0.263158,0.559239,0.78613,0.063061,0.071135,-0.005092,
+ 0.221515,0.470743,0.85401,0.063007,0.071021,-0.005004,
+ 0.250636,0.455905,0.85401,0.063944,0.070543,-0.005004,
+ 0.263158,0.559239,0.78613,0.063061,0.071135,-0.005092,
+ 0.250636,0.455905,0.85401,0.063944,0.070543,-0.005004,
+ 0.297753,0.541611,0.78613,0.064004,0.070654,-0.005092,
+ 0.227524,0.574659,0.78613,0.062089,0.071555,-0.005092,
+ 0.191519,0.483723,0.85401,0.062043,0.071438,-0.005004,
+ 0.221515,0.470743,0.85401,0.063007,0.071021,-0.005004,
+ 0.227524,0.574659,0.78613,0.062089,0.071555,-0.005092,
+ 0.221515,0.470743,0.85401,0.063007,0.071021,-0.005004,
+ 0.263158,0.559239,0.78613,0.063061,0.071135,-0.005092,
+ 0.190991,0.587811,0.78613,0.061093,0.071914,-0.005092,
+ 0.160768,0.494794,0.85401,0.061054,0.071794,-0.005004,
+ 0.191519,0.483723,0.85401,0.062043,0.071438,-0.005004,
+ 0.190991,0.587811,0.78613,0.061093,0.071914,-0.005092,
+ 0.191519,0.483723,0.85401,0.062043,0.071438,-0.005004,
+ 0.227524,0.574659,0.78613,0.062089,0.071555,-0.005092,
+ 0.153706,0.598644,0.78613,0.060077,0.072209,-0.005092,
+ 0.129383,0.503912,0.85401,0.060045,0.072087,-0.005004,
+ 0.160768,0.494794,0.85401,0.061054,0.071794,-0.005004,
+ 0.153706,0.598644,0.78613,0.060077,0.072209,-0.005092,
+ 0.160768,0.494794,0.85401,0.061054,0.071794,-0.005004,
+ 0.190991,0.587811,0.78613,0.061093,0.071914,-0.005092,
+ 0.115813,0.607114,0.78613,0.059043,0.07244,-0.005092,
+ 0.097487,0.511042,0.85401,0.05902,0.072316,-0.005004,
+ 0.129383,0.503912,0.85401,0.060045,0.072087,-0.005004,
+ 0.115813,0.607114,0.78613,0.059043,0.07244,-0.005092,
+ 0.129383,0.503912,0.85401,0.060045,0.072087,-0.005004,
+ 0.153706,0.598644,0.78613,0.060077,0.072209,-0.005092,
+ 0.077464,0.613188,0.78613,0.057998,0.072606,-0.005092,
+ 0.065205,0.516155,0.85401,0.057982,0.072481,-0.005004,
+ 0.097487,0.511042,0.85401,0.05902,0.072316,-0.005004,
+ 0.077464,0.613188,0.78613,0.057998,0.072606,-0.005092,
+ 0.097487,0.511042,0.85401,0.05902,0.072316,-0.005004,
+ 0.115813,0.607114,0.78613,0.059043,0.07244,-0.005092,
+ 0.038808,0.616842,0.78613,0.056943,0.072705,-0.005092,
+ 0.032667,0.519231,0.85401,0.056936,0.07258,-0.005004,
+ 0.065205,0.516155,0.85401,0.057982,0.072481,-0.005004,
+ 0.038808,0.616842,0.78613,0.056943,0.072705,-0.005092,
+ 0.065205,0.516155,0.85401,0.057982,0.072481,-0.005004,
+ 0.077464,0.613188,0.78613,0.057998,0.072606,-0.005092,
+ 0,0.618061,0.78613,0.055885,0.072739,-0.005092,
+ 0,0.520257,0.85401,0.055885,0.072613,-0.005004,
+ 0.032667,0.519231,0.85401,0.056936,0.07258,-0.005004,
+ 0,0.618061,0.78613,0.055885,0.072739,-0.005092,
+ 0.032667,0.519231,0.85401,0.056936,0.07258,-0.005004,
+ 0.038808,0.616842,0.78613,0.056943,0.072705,-0.005092,
+ -0.038808,0.616842,0.78613,0.054827,0.072705,-0.005092,
+ -0.032667,0.519231,0.85401,0.054835,0.07258,-0.005004,
+ 0,0.520257,0.85401,0.055885,0.072613,-0.005004,
+ -0.038808,0.616842,0.78613,0.054827,0.072705,-0.005092,
+ 0,0.520257,0.85401,0.055885,0.072613,-0.005004,
+ 0,0.618061,0.78613,0.055885,0.072739,-0.005092,
+ -0.077464,0.613188,0.78613,0.053773,0.072606,-0.005092,
+ -0.065205,0.516155,0.85401,0.053789,0.072481,-0.005004,
+ -0.032667,0.519231,0.85401,0.054835,0.07258,-0.005004,
+ -0.077464,0.613188,0.78613,0.053773,0.072606,-0.005092,
+ -0.032667,0.519231,0.85401,0.054835,0.07258,-0.005004,
+ -0.038808,0.616842,0.78613,0.054827,0.072705,-0.005092,
+ -0.115813,0.607114,0.78613,0.052727,0.07244,-0.005092,
+ -0.097487,0.511042,0.85401,0.052751,0.072316,-0.005004,
+ -0.065205,0.516155,0.85401,0.053789,0.072481,-0.005004,
+ -0.115813,0.607114,0.78613,0.052727,0.07244,-0.005092,
+ -0.065205,0.516155,0.85401,0.053789,0.072481,-0.005004,
+ -0.077464,0.613188,0.78613,0.053773,0.072606,-0.005092,
+ -0.153706,0.598644,0.78613,0.051694,0.072209,-0.005092,
+ -0.129383,0.503912,0.85401,0.051725,0.072087,-0.005004,
+ -0.097487,0.511042,0.85401,0.052751,0.072316,-0.005004,
+ -0.153706,0.598644,0.78613,0.051694,0.072209,-0.005092,
+ -0.097487,0.511042,0.85401,0.052751,0.072316,-0.005004,
+ -0.115813,0.607114,0.78613,0.052727,0.07244,-0.005092,
+ -0.190991,0.587811,0.78613,0.050677,0.071914,-0.005092,
+ -0.160768,0.494794,0.85401,0.050716,0.071794,-0.005004,
+ -0.129383,0.503912,0.85401,0.051725,0.072087,-0.005004,
+ -0.190991,0.587811,0.78613,0.050677,0.071914,-0.005092,
+ -0.129383,0.503912,0.85401,0.051725,0.072087,-0.005004,
+ -0.153706,0.598644,0.78613,0.051694,0.072209,-0.005092,
+ -0.227524,0.574659,0.78613,0.049681,0.071555,-0.005092,
+ -0.191519,0.483723,0.85401,0.049728,0.071438,-0.005004,
+ -0.160768,0.494794,0.85401,0.050716,0.071794,-0.005004,
+ -0.227524,0.574659,0.78613,0.049681,0.071555,-0.005092,
+ -0.160768,0.494794,0.85401,0.050716,0.071794,-0.005004,
+ -0.190991,0.587811,0.78613,0.050677,0.071914,-0.005092,
+ -0.263158,0.559239,0.78613,0.048709,0.071135,-0.005092,
+ -0.221515,0.470743,0.85401,0.048763,0.071021,-0.005004,
+ -0.191519,0.483723,0.85401,0.049728,0.071438,-0.005004,
+ -0.263158,0.559239,0.78613,0.048709,0.071135,-0.005092,
+ -0.191519,0.483723,0.85401,0.049728,0.071438,-0.005004,
+ -0.227524,0.574659,0.78613,0.049681,0.071555,-0.005092,
+ -0.297753,0.541611,0.78613,0.047766,0.070654,-0.005092,
+ -0.250636,0.455905,0.85401,0.047827,0.070543,-0.005004,
+ -0.221515,0.470743,0.85401,0.048763,0.071021,-0.005004,
+ -0.297753,0.541611,0.78613,0.047766,0.070654,-0.005092,
+ -0.221515,0.470743,0.85401,0.048763,0.071021,-0.005004,
+ -0.263158,0.559239,0.78613,0.048709,0.071135,-0.005092,
+ -0.331174,0.521846,0.78613,0.046855,0.070115,-0.005092,
+ -0.278768,0.439268,0.85401,0.046922,0.070009,-0.005004,
+ -0.250636,0.455905,0.85401,0.047827,0.070543,-0.005004,
+ -0.331174,0.521846,0.78613,0.046855,0.070115,-0.005092,
+ -0.250636,0.455905,0.85401,0.047827,0.070543,-0.005004,
+ -0.297753,0.541611,0.78613,0.047766,0.070654,-0.005092,
+ -0.363287,0.500022,0.78613,0.045979,0.06952,-0.005092,
+ -0.3058,0.420897,0.85401,0.046053,0.069418,-0.005004,
+ -0.278768,0.439268,0.85401,0.046922,0.070009,-0.005004,
+ -0.363287,0.500022,0.78613,0.045979,0.06952,-0.005092,
+ -0.278768,0.439268,0.85401,0.046922,0.070009,-0.005004,
+ -0.331174,0.521846,0.78613,0.046855,0.070115,-0.005092,
+ -0.393967,0.476224,0.78613,0.045143,0.068871,-0.005092,
+ -0.331624,0.400865,0.85401,0.045223,0.068774,-0.005004,
+ -0.3058,0.420897,0.85401,0.046053,0.069418,-0.005004,
+ -0.393967,0.476224,0.78613,0.045143,0.068871,-0.005092,
+ -0.3058,0.420897,0.85401,0.046053,0.069418,-0.005004,
+ -0.363287,0.500022,0.78613,0.045979,0.06952,-0.005092,
+ -0.423092,0.450547,0.78613,0.044348,0.068171,-0.005092,
+ -0.356141,0.379251,0.85401,0.044435,0.068079,-0.005004,
+ -0.331624,0.400865,0.85401,0.045223,0.068774,-0.005004,
+ -0.423092,0.450547,0.78613,0.044348,0.068171,-0.005092,
+ -0.331624,0.400865,0.85401,0.045223,0.068774,-0.005004,
+ -0.393967,0.476224,0.78613,0.045143,0.068871,-0.005092,
+ -0.450547,0.423092,0.78613,0.0436,0.067422,-0.005092,
+ -0.379251,0.356141,0.85401,0.043692,0.067336,-0.005004,
+ -0.356141,0.379251,0.85401,0.044435,0.068079,-0.005004,
+ -0.450547,0.423092,0.78613,0.0436,0.067422,-0.005092,
+ -0.356141,0.379251,0.85401,0.044435,0.068079,-0.005004,
+ -0.423092,0.450547,0.78613,0.044348,0.068171,-0.005092,
+ -0.476224,0.393967,0.78613,0.0429,0.066628,-0.005092,
+ -0.400865,0.331624,0.85401,0.042997,0.066548,-0.005004,
+ -0.379251,0.356141,0.85401,0.043692,0.067336,-0.005004,
+ -0.476224,0.393967,0.78613,0.0429,0.066628,-0.005092,
+ -0.379251,0.356141,0.85401,0.043692,0.067336,-0.005004,
+ -0.450547,0.423092,0.78613,0.0436,0.067422,-0.005092,
+ -0.500022,0.363287,0.78613,0.042251,0.065791,-0.005092,
+ -0.420897,0.3058,0.85401,0.042353,0.065717,-0.005004,
+ -0.400865,0.331624,0.85401,0.042997,0.066548,-0.005004,
+ -0.500022,0.363287,0.78613,0.042251,0.065791,-0.005092,
+ -0.400865,0.331624,0.85401,0.042997,0.066548,-0.005004,
+ -0.476224,0.393967,0.78613,0.0429,0.066628,-0.005092,
+ -0.521846,0.331174,0.78613,0.041656,0.064916,-0.005092,
+ -0.439268,0.278768,0.85401,0.041762,0.064848,-0.005004,
+ -0.420897,0.3058,0.85401,0.042353,0.065717,-0.005004,
+ -0.521846,0.331174,0.78613,0.041656,0.064916,-0.005092,
+ -0.420897,0.3058,0.85401,0.042353,0.065717,-0.005004,
+ -0.500022,0.363287,0.78613,0.042251,0.065791,-0.005092,
+ -0.541611,0.297753,0.78613,0.041117,0.064004,-0.005092,
+ -0.455905,0.250636,0.85401,0.041227,0.063944,-0.005004,
+ -0.439268,0.278768,0.85401,0.041762,0.064848,-0.005004,
+ -0.541611,0.297753,0.78613,0.041117,0.064004,-0.005092,
+ -0.439268,0.278768,0.85401,0.041762,0.064848,-0.005004,
+ -0.521846,0.331174,0.78613,0.041656,0.064916,-0.005092,
+ -0.559239,0.263158,0.78613,0.040636,0.063061,-0.005092,
+ -0.470743,0.221515,0.85401,0.04075,0.063007,-0.005004,
+ -0.455905,0.250636,0.85401,0.041227,0.063944,-0.005004,
+ -0.559239,0.263158,0.78613,0.040636,0.063061,-0.005092,
+ -0.455905,0.250636,0.85401,0.041227,0.063944,-0.005004,
+ -0.541611,0.297753,0.78613,0.041117,0.064004,-0.005092,
+ -0.574659,0.227524,0.78613,0.040215,0.062089,-0.005092,
+ -0.483723,0.191519,0.85401,0.040333,0.062043,-0.005004,
+ -0.470743,0.221515,0.85401,0.04075,0.063007,-0.005004,
+ -0.574659,0.227524,0.78613,0.040215,0.062089,-0.005092,
+ -0.470743,0.221515,0.85401,0.04075,0.063007,-0.005004,
+ -0.559239,0.263158,0.78613,0.040636,0.063061,-0.005092,
+ -0.587811,0.190991,0.78613,0.039857,0.061093,-0.005092,
+ -0.494794,0.160768,0.85401,0.039977,0.061054,-0.005004,
+ -0.483723,0.191519,0.85401,0.040333,0.062043,-0.005004,
+ -0.587811,0.190991,0.78613,0.039857,0.061093,-0.005092,
+ -0.483723,0.191519,0.85401,0.040333,0.062043,-0.005004,
+ -0.574659,0.227524,0.78613,0.040215,0.062089,-0.005092,
+ -0.598644,0.153706,0.78613,0.039562,0.060077,-0.005092,
+ -0.503912,0.129383,0.85401,0.039684,0.060045,-0.005004,
+ -0.494794,0.160768,0.85401,0.039977,0.061054,-0.005004,
+ -0.598644,0.153706,0.78613,0.039562,0.060077,-0.005092,
+ -0.494794,0.160768,0.85401,0.039977,0.061054,-0.005004,
+ -0.587811,0.190991,0.78613,0.039857,0.061093,-0.005092,
+ -0.607114,0.115813,0.78613,0.039331,0.059043,-0.005092,
+ -0.511042,0.097487,0.85401,0.039454,0.05902,-0.005004,
+ -0.503912,0.129383,0.85401,0.039684,0.060045,-0.005004,
+ -0.607114,0.115813,0.78613,0.039331,0.059043,-0.005092,
+ -0.503912,0.129383,0.85401,0.039684,0.060045,-0.005004,
+ -0.598644,0.153706,0.78613,0.039562,0.060077,-0.005092,
+ -0.613188,0.077464,0.78613,0.039165,0.057998,-0.005092,
+ -0.516155,0.065205,0.85401,0.03929,0.057982,-0.005004,
+ -0.511042,0.097487,0.85401,0.039454,0.05902,-0.005004,
+ -0.613188,0.077464,0.78613,0.039165,0.057998,-0.005092,
+ -0.511042,0.097487,0.85401,0.039454,0.05902,-0.005004,
+ -0.607114,0.115813,0.78613,0.039331,0.059043,-0.005092,
+ -0.516155,0.065205,0.85401,0.03929,0.057982,-0.005004,
+ -0.411806,0.052023,0.909785,0.039424,0.057965,-0.004932,
+ -0.407727,0.077778,0.909785,0.039587,0.058994,-0.004932,
+ -0.516155,0.065205,0.85401,0.03929,0.057982,-0.005004,
+ -0.407727,0.077778,0.909785,0.039587,0.058994,-0.004932,
+ -0.511042,0.097487,0.85401,0.039454,0.05902,-0.005004,
+ -0.519231,0.032667,0.85401,0.039191,0.056936,-0.005004,
+ -0.41426,0.026063,0.909785,0.039326,0.056927,-0.004932,
+ -0.411806,0.052023,0.909785,0.039424,0.057965,-0.004932,
+ -0.519231,0.032667,0.85401,0.039191,0.056936,-0.005004,
+ -0.411806,0.052023,0.909785,0.039424,0.057965,-0.004932,
+ -0.516155,0.065205,0.85401,0.03929,0.057982,-0.005004,
+ -0.520257,0,0.85401,0.039158,0.055885,-0.005004,
+ -0.415079,0,0.909785,0.039294,0.055885,-0.004932,
+ -0.41426,0.026063,0.909785,0.039326,0.056927,-0.004932,
+ -0.520257,0,0.85401,0.039158,0.055885,-0.005004,
+ -0.41426,0.026063,0.909785,0.039326,0.056927,-0.004932,
+ -0.519231,0.032667,0.85401,0.039191,0.056936,-0.005004,
+ -0.519231,-0.032667,0.85401,0.039191,0.054835,-0.005004,
+ -0.41426,-0.026063,0.909785,0.039326,0.054844,-0.004932,
+ -0.415079,0,0.909785,0.039294,0.055885,-0.004932,
+ -0.519231,-0.032667,0.85401,0.039191,0.054835,-0.005004,
+ -0.415079,0,0.909785,0.039294,0.055885,-0.004932,
+ -0.520257,0,0.85401,0.039158,0.055885,-0.005004,
+ -0.516155,-0.065205,0.85401,0.03929,0.053789,-0.005004,
+ -0.411806,-0.052023,0.909785,0.039424,0.053806,-0.004932,
+ -0.41426,-0.026063,0.909785,0.039326,0.054844,-0.004932,
+ -0.516155,-0.065205,0.85401,0.03929,0.053789,-0.005004,
+ -0.41426,-0.026063,0.909785,0.039326,0.054844,-0.004932,
+ -0.519231,-0.032667,0.85401,0.039191,0.054835,-0.005004,
+ -0.511042,-0.097487,0.85401,0.039454,0.052751,-0.005004,
+ -0.407727,-0.077778,0.909785,0.039587,0.052776,-0.004932,
+ -0.411806,-0.052023,0.909785,0.039424,0.053806,-0.004932,
+ -0.511042,-0.097487,0.85401,0.039454,0.052751,-0.005004,
+ -0.411806,-0.052023,0.909785,0.039424,0.053806,-0.004932,
+ -0.516155,-0.065205,0.85401,0.03929,0.053789,-0.005004,
+ -0.503912,-0.129383,0.85401,0.039684,0.051725,-0.005004,
+ -0.402039,-0.103226,0.909785,0.039815,0.051759,-0.004932,
+ -0.407727,-0.077778,0.909785,0.039587,0.052776,-0.004932,
+ -0.503912,-0.129383,0.85401,0.039684,0.051725,-0.005004,
+ -0.407727,-0.077778,0.909785,0.039587,0.052776,-0.004932,
+ -0.511042,-0.097487,0.85401,0.039454,0.052751,-0.005004,
+ -0.494794,-0.160768,0.85401,0.039977,0.050716,-0.005004,
+ -0.394764,-0.128267,0.909785,0.040106,0.050758,-0.004932,
+ -0.402039,-0.103226,0.909785,0.039815,0.051759,-0.004932,
+ -0.494794,-0.160768,0.85401,0.039977,0.050716,-0.005004,
+ -0.402039,-0.103226,0.909785,0.039815,0.051759,-0.004932,
+ -0.503912,-0.129383,0.85401,0.039684,0.051725,-0.005004,
+ -0.483723,-0.191519,0.85401,0.040333,0.049728,-0.005004,
+ -0.385931,-0.152801,0.909785,0.040459,0.049777,-0.004932,
+ -0.394764,-0.128267,0.909785,0.040106,0.050758,-0.004932,
+ -0.483723,-0.191519,0.85401,0.040333,0.049728,-0.005004,
+ -0.394764,-0.128267,0.909785,0.040106,0.050758,-0.004932,
+ -0.494794,-0.160768,0.85401,0.039977,0.050716,-0.005004,
+ -0.470743,-0.221515,0.85401,0.04075,0.048763,-0.005004,
+ -0.375575,-0.176732,0.909785,0.040873,0.048821,-0.004932,
+ -0.385931,-0.152801,0.909785,0.040459,0.049777,-0.004932,
+ -0.470743,-0.221515,0.85401,0.04075,0.048763,-0.005004,
+ -0.385931,-0.152801,0.909785,0.040459,0.049777,-0.004932,
+ -0.483723,-0.191519,0.85401,0.040333,0.049728,-0.005004,
+ -0.455905,-0.250636,0.85401,0.041227,0.047827,-0.005004,
+ -0.363737,-0.199966,0.909785,0.041346,0.047892,-0.004932,
+ -0.375575,-0.176732,0.909785,0.040873,0.048821,-0.004932,
+ -0.455905,-0.250636,0.85401,0.041227,0.047827,-0.005004,
+ -0.375575,-0.176732,0.909785,0.040873,0.048821,-0.004932,
+ -0.470743,-0.221515,0.85401,0.04075,0.048763,-0.005004,
+ -0.439268,-0.278768,0.85401,0.041762,0.046922,-0.005004,
+ -0.350463,-0.222411,0.909785,0.041876,0.046995,-0.004932,
+ -0.363737,-0.199966,0.909785,0.041346,0.047892,-0.004932,
+ -0.439268,-0.278768,0.85401,0.041762,0.046922,-0.005004,
+ -0.363737,-0.199966,0.909785,0.041346,0.047892,-0.004932,
+ -0.455905,-0.250636,0.85401,0.041227,0.047827,-0.005004,
+ -0.420897,-0.3058,0.85401,0.042353,0.046053,-0.005004,
+ -0.335806,-0.243978,0.909785,0.042462,0.046133,-0.004932,
+ -0.350463,-0.222411,0.909785,0.041876,0.046995,-0.004932,
+ -0.420897,-0.3058,0.85401,0.042353,0.046053,-0.005004,
+ -0.350463,-0.222411,0.909785,0.041876,0.046995,-0.004932,
+ -0.439268,-0.278768,0.85401,0.041762,0.046922,-0.005004,
+ -0.400865,-0.331624,0.85401,0.042997,0.045223,-0.005004,
+ -0.319824,-0.264582,0.909785,0.043101,0.045309,-0.004932,
+ -0.335806,-0.243978,0.909785,0.042462,0.046133,-0.004932,
+ -0.400865,-0.331624,0.85401,0.042997,0.045223,-0.005004,
+ -0.335806,-0.243978,0.909785,0.042462,0.046133,-0.004932,
+ -0.420897,-0.3058,0.85401,0.042353,0.046053,-0.005004,
+ -0.379251,-0.356141,0.85401,0.043692,0.044435,-0.005004,
+ -0.30258,-0.284141,0.909785,0.04379,0.044527,-0.004932,
+ -0.319824,-0.264582,0.909785,0.043101,0.045309,-0.004932,
+ -0.379251,-0.356141,0.85401,0.043692,0.044435,-0.005004,
+ -0.319824,-0.264582,0.909785,0.043101,0.045309,-0.004932,
+ -0.400865,-0.331624,0.85401,0.042997,0.045223,-0.005004,
+ -0.356141,-0.379251,0.85401,0.044435,0.043692,-0.005004,
+ -0.284141,-0.30258,0.909785,0.044527,0.04379,-0.004932,
+ -0.30258,-0.284141,0.909785,0.04379,0.044527,-0.004932,
+ -0.356141,-0.379251,0.85401,0.044435,0.043692,-0.005004,
+ -0.30258,-0.284141,0.909785,0.04379,0.044527,-0.004932,
+ -0.379251,-0.356141,0.85401,0.043692,0.044435,-0.005004,
+ -0.331624,-0.400865,0.85401,0.045223,0.042997,-0.005004,
+ -0.264582,-0.319824,0.909785,0.045309,0.043101,-0.004932,
+ -0.284141,-0.30258,0.909785,0.044527,0.04379,-0.004932,
+ -0.331624,-0.400865,0.85401,0.045223,0.042997,-0.005004,
+ -0.284141,-0.30258,0.909785,0.044527,0.04379,-0.004932,
+ -0.356141,-0.379251,0.85401,0.044435,0.043692,-0.005004,
+ -0.3058,-0.420897,0.85401,0.046053,0.042353,-0.005004,
+ -0.243978,-0.335806,0.909785,0.046133,0.042462,-0.004932,
+ -0.264582,-0.319824,0.909785,0.045309,0.043101,-0.004932,
+ -0.3058,-0.420897,0.85401,0.046053,0.042353,-0.005004,
+ -0.264582,-0.319824,0.909785,0.045309,0.043101,-0.004932,
+ -0.331624,-0.400865,0.85401,0.045223,0.042997,-0.005004,
+ -0.278768,-0.439268,0.85401,0.046922,0.041762,-0.005004,
+ -0.222411,-0.350463,0.909785,0.046995,0.041876,-0.004932,
+ -0.243978,-0.335806,0.909785,0.046133,0.042462,-0.004932,
+ -0.278768,-0.439268,0.85401,0.046922,0.041762,-0.005004,
+ -0.243978,-0.335806,0.909785,0.046133,0.042462,-0.004932,
+ -0.3058,-0.420897,0.85401,0.046053,0.042353,-0.005004,
+ -0.250636,-0.455905,0.85401,0.047827,0.041227,-0.005004,
+ -0.199966,-0.363737,0.909785,0.047892,0.041346,-0.004932,
+ -0.222411,-0.350463,0.909785,0.046995,0.041876,-0.004932,
+ -0.250636,-0.455905,0.85401,0.047827,0.041227,-0.005004,
+ -0.222411,-0.350463,0.909785,0.046995,0.041876,-0.004932,
+ -0.278768,-0.439268,0.85401,0.046922,0.041762,-0.005004,
+ -0.221515,-0.470743,0.85401,0.048763,0.04075,-0.005004,
+ -0.176732,-0.375575,0.909785,0.048821,0.040873,-0.004932,
+ -0.199966,-0.363737,0.909785,0.047892,0.041346,-0.004932,
+ -0.221515,-0.470743,0.85401,0.048763,0.04075,-0.005004,
+ -0.199966,-0.363737,0.909785,0.047892,0.041346,-0.004932,
+ -0.250636,-0.455905,0.85401,0.047827,0.041227,-0.005004,
+ -0.191519,-0.483723,0.85401,0.049728,0.040333,-0.005004,
+ -0.152801,-0.385931,0.909785,0.049777,0.040459,-0.004932,
+ -0.176732,-0.375575,0.909785,0.048821,0.040873,-0.004932,
+ -0.191519,-0.483723,0.85401,0.049728,0.040333,-0.005004,
+ -0.176732,-0.375575,0.909785,0.048821,0.040873,-0.004932,
+ -0.221515,-0.470743,0.85401,0.048763,0.04075,-0.005004,
+ -0.160768,-0.494794,0.85401,0.050716,0.039977,-0.005004,
+ -0.128267,-0.394764,0.909785,0.050758,0.040106,-0.004932,
+ -0.152801,-0.385931,0.909785,0.049777,0.040459,-0.004932,
+ -0.160768,-0.494794,0.85401,0.050716,0.039977,-0.005004,
+ -0.152801,-0.385931,0.909785,0.049777,0.040459,-0.004932,
+ -0.191519,-0.483723,0.85401,0.049728,0.040333,-0.005004,
+ -0.129383,-0.503912,0.85401,0.051725,0.039684,-0.005004,
+ -0.103226,-0.402039,0.909785,0.051759,0.039815,-0.004932,
+ -0.128267,-0.394764,0.909785,0.050758,0.040106,-0.004932,
+ -0.129383,-0.503912,0.85401,0.051725,0.039684,-0.005004,
+ -0.128267,-0.394764,0.909785,0.050758,0.040106,-0.004932,
+ -0.160768,-0.494794,0.85401,0.050716,0.039977,-0.005004,
+ -0.097487,-0.511042,0.85401,0.052751,0.039454,-0.005004,
+ -0.077778,-0.407727,0.909785,0.052776,0.039587,-0.004932,
+ -0.103226,-0.402039,0.909785,0.051759,0.039815,-0.004932,
+ -0.097487,-0.511042,0.85401,0.052751,0.039454,-0.005004,
+ -0.103226,-0.402039,0.909785,0.051759,0.039815,-0.004932,
+ -0.129383,-0.503912,0.85401,0.051725,0.039684,-0.005004,
+ -0.065205,-0.516155,0.85401,0.053789,0.03929,-0.005004,
+ -0.052023,-0.411806,0.909785,0.053806,0.039424,-0.004932,
+ -0.077778,-0.407727,0.909785,0.052776,0.039587,-0.004932,
+ -0.065205,-0.516155,0.85401,0.053789,0.03929,-0.005004,
+ -0.077778,-0.407727,0.909785,0.052776,0.039587,-0.004932,
+ -0.097487,-0.511042,0.85401,0.052751,0.039454,-0.005004,
+ -0.032667,-0.519231,0.85401,0.054835,0.039191,-0.005004,
+ -0.026063,-0.41426,0.909785,0.054844,0.039326,-0.004932,
+ -0.052023,-0.411806,0.909785,0.053806,0.039424,-0.004932,
+ -0.032667,-0.519231,0.85401,0.054835,0.039191,-0.005004,
+ -0.052023,-0.411806,0.909785,0.053806,0.039424,-0.004932,
+ -0.065205,-0.516155,0.85401,0.053789,0.03929,-0.005004,
+ 0,-0.520257,0.85401,0.055885,0.039158,-0.005004,
+ 0,-0.415079,0.909785,0.055885,0.039294,-0.004932,
+ -0.026063,-0.41426,0.909785,0.054844,0.039326,-0.004932,
+ 0,-0.520257,0.85401,0.055885,0.039158,-0.005004,
+ -0.026063,-0.41426,0.909785,0.054844,0.039326,-0.004932,
+ -0.032667,-0.519231,0.85401,0.054835,0.039191,-0.005004,
+ 0.032667,-0.519231,0.85401,0.056936,0.039191,-0.005004,
+ 0.026063,-0.41426,0.909785,0.056927,0.039326,-0.004932,
+ 0,-0.415079,0.909785,0.055885,0.039294,-0.004932,
+ 0.032667,-0.519231,0.85401,0.056936,0.039191,-0.005004,
+ 0,-0.415079,0.909785,0.055885,0.039294,-0.004932,
+ 0,-0.520257,0.85401,0.055885,0.039158,-0.005004,
+ 0.065205,-0.516155,0.85401,0.057982,0.03929,-0.005004,
+ 0.052023,-0.411806,0.909785,0.057965,0.039424,-0.004932,
+ 0.026063,-0.41426,0.909785,0.056927,0.039326,-0.004932,
+ 0.065205,-0.516155,0.85401,0.057982,0.03929,-0.005004,
+ 0.026063,-0.41426,0.909785,0.056927,0.039326,-0.004932,
+ 0.032667,-0.519231,0.85401,0.056936,0.039191,-0.005004,
+ 0.097487,-0.511042,0.85401,0.05902,0.039454,-0.005004,
+ 0.077778,-0.407727,0.909785,0.058994,0.039587,-0.004932,
+ 0.052023,-0.411806,0.909785,0.057965,0.039424,-0.004932,
+ 0.097487,-0.511042,0.85401,0.05902,0.039454,-0.005004,
+ 0.052023,-0.411806,0.909785,0.057965,0.039424,-0.004932,
+ 0.065205,-0.516155,0.85401,0.057982,0.03929,-0.005004,
+ 0.129383,-0.503912,0.85401,0.060045,0.039684,-0.005004,
+ 0.103226,-0.402039,0.909785,0.060012,0.039815,-0.004932,
+ 0.077778,-0.407727,0.909785,0.058994,0.039587,-0.004932,
+ 0.129383,-0.503912,0.85401,0.060045,0.039684,-0.005004,
+ 0.077778,-0.407727,0.909785,0.058994,0.039587,-0.004932,
+ 0.097487,-0.511042,0.85401,0.05902,0.039454,-0.005004,
+ 0.160768,-0.494794,0.85401,0.061054,0.039977,-0.005004,
+ 0.128267,-0.394764,0.909785,0.061012,0.040106,-0.004932,
+ 0.103226,-0.402039,0.909785,0.060012,0.039815,-0.004932,
+ 0.160768,-0.494794,0.85401,0.061054,0.039977,-0.005004,
+ 0.103226,-0.402039,0.909785,0.060012,0.039815,-0.004932,
+ 0.129383,-0.503912,0.85401,0.060045,0.039684,-0.005004,
+ 0.191519,-0.483723,0.85401,0.062043,0.040333,-0.005004,
+ 0.152801,-0.385931,0.909785,0.061993,0.040459,-0.004932,
+ 0.128267,-0.394764,0.909785,0.061012,0.040106,-0.004932,
+ 0.191519,-0.483723,0.85401,0.062043,0.040333,-0.005004,
+ 0.128267,-0.394764,0.909785,0.061012,0.040106,-0.004932,
+ 0.160768,-0.494794,0.85401,0.061054,0.039977,-0.005004,
+ 0.221515,-0.470743,0.85401,0.063007,0.04075,-0.005004,
+ 0.176732,-0.375575,0.909785,0.06295,0.040873,-0.004932,
+ 0.152801,-0.385931,0.909785,0.061993,0.040459,-0.004932,
+ 0.221515,-0.470743,0.85401,0.063007,0.04075,-0.005004,
+ 0.152801,-0.385931,0.909785,0.061993,0.040459,-0.004932,
+ 0.191519,-0.483723,0.85401,0.062043,0.040333,-0.005004,
+ 0.250636,-0.455905,0.85401,0.063944,0.041227,-0.005004,
+ 0.199966,-0.363737,0.909785,0.063878,0.041346,-0.004932,
+ 0.176732,-0.375575,0.909785,0.06295,0.040873,-0.004932,
+ 0.250636,-0.455905,0.85401,0.063944,0.041227,-0.005004,
+ 0.176732,-0.375575,0.909785,0.06295,0.040873,-0.004932,
+ 0.221515,-0.470743,0.85401,0.063007,0.04075,-0.005004,
+ 0.278768,-0.439268,0.85401,0.064848,0.041762,-0.005004,
+ 0.222411,-0.350463,0.909785,0.064776,0.041876,-0.004932,
+ 0.199966,-0.363737,0.909785,0.063878,0.041346,-0.004932,
+ 0.278768,-0.439268,0.85401,0.064848,0.041762,-0.005004,
+ 0.199966,-0.363737,0.909785,0.063878,0.041346,-0.004932,
+ 0.250636,-0.455905,0.85401,0.063944,0.041227,-0.005004,
+ 0.3058,-0.420897,0.85401,0.065717,0.042353,-0.005004,
+ 0.243978,-0.335806,0.909785,0.065638,0.042462,-0.004932,
+ 0.222411,-0.350463,0.909785,0.064776,0.041876,-0.004932,
+ 0.3058,-0.420897,0.85401,0.065717,0.042353,-0.005004,
+ 0.222411,-0.350463,0.909785,0.064776,0.041876,-0.004932,
+ 0.278768,-0.439268,0.85401,0.064848,0.041762,-0.005004,
+ 0.331624,-0.400865,0.85401,0.066548,0.042997,-0.005004,
+ 0.264582,-0.319824,0.909785,0.066461,0.043101,-0.004932,
+ 0.243978,-0.335806,0.909785,0.065638,0.042462,-0.004932,
+ 0.331624,-0.400865,0.85401,0.066548,0.042997,-0.005004,
+ 0.243978,-0.335806,0.909785,0.065638,0.042462,-0.004932,
+ 0.3058,-0.420897,0.85401,0.065717,0.042353,-0.005004,
+ 0.356141,-0.379251,0.85401,0.067336,0.043692,-0.005004,
+ 0.284141,-0.30258,0.909785,0.067243,0.04379,-0.004932,
+ 0.264582,-0.319824,0.909785,0.066461,0.043101,-0.004932,
+ 0.356141,-0.379251,0.85401,0.067336,0.043692,-0.005004,
+ 0.264582,-0.319824,0.909785,0.066461,0.043101,-0.004932,
+ 0.331624,-0.400865,0.85401,0.066548,0.042997,-0.005004,
+ 0.379251,-0.356141,0.85401,0.068079,0.044435,-0.005004,
+ 0.30258,-0.284141,0.909785,0.06798,0.044527,-0.004932,
+ 0.284141,-0.30258,0.909785,0.067243,0.04379,-0.004932,
+ 0.379251,-0.356141,0.85401,0.068079,0.044435,-0.005004,
+ 0.284141,-0.30258,0.909785,0.067243,0.04379,-0.004932,
+ 0.356141,-0.379251,0.85401,0.067336,0.043692,-0.005004,
+ 0.400865,-0.331624,0.85401,0.068774,0.045223,-0.005004,
+ 0.319824,-0.264582,0.909785,0.06867,0.045309,-0.004932,
+ 0.30258,-0.284141,0.909785,0.06798,0.044527,-0.004932,
+ 0.400865,-0.331624,0.85401,0.068774,0.045223,-0.005004,
+ 0.30258,-0.284141,0.909785,0.06798,0.044527,-0.004932,
+ 0.379251,-0.356141,0.85401,0.068079,0.044435,-0.005004,
+ 0.420897,-0.3058,0.85401,0.069418,0.046053,-0.005004,
+ 0.335806,-0.243978,0.909785,0.069308,0.046133,-0.004932,
+ 0.319824,-0.264582,0.909785,0.06867,0.045309,-0.004932,
+ 0.420897,-0.3058,0.85401,0.069418,0.046053,-0.005004,
+ 0.319824,-0.264582,0.909785,0.06867,0.045309,-0.004932,
+ 0.400865,-0.331624,0.85401,0.068774,0.045223,-0.005004,
+ 0.439268,-0.278768,0.85401,0.070009,0.046922,-0.005004,
+ 0.350463,-0.222411,0.909785,0.069894,0.046995,-0.004932,
+ 0.335806,-0.243978,0.909785,0.069308,0.046133,-0.004932,
+ 0.439268,-0.278768,0.85401,0.070009,0.046922,-0.005004,
+ 0.335806,-0.243978,0.909785,0.069308,0.046133,-0.004932,
+ 0.420897,-0.3058,0.85401,0.069418,0.046053,-0.005004,
+ 0.455905,-0.250636,0.85401,0.070543,0.047827,-0.005004,
+ 0.363737,-0.199966,0.909785,0.070425,0.047892,-0.004932,
+ 0.350463,-0.222411,0.909785,0.069894,0.046995,-0.004932,
+ 0.455905,-0.250636,0.85401,0.070543,0.047827,-0.005004,
+ 0.350463,-0.222411,0.909785,0.069894,0.046995,-0.004932,
+ 0.439268,-0.278768,0.85401,0.070009,0.046922,-0.005004,
+ 0.470743,-0.221515,0.85401,0.071021,0.048763,-0.005004,
+ 0.375575,-0.176732,0.909785,0.070898,0.048821,-0.004932,
+ 0.363737,-0.199966,0.909785,0.070425,0.047892,-0.004932,
+ 0.470743,-0.221515,0.85401,0.071021,0.048763,-0.005004,
+ 0.363737,-0.199966,0.909785,0.070425,0.047892,-0.004932,
+ 0.455905,-0.250636,0.85401,0.070543,0.047827,-0.005004,
+ 0.483723,-0.191519,0.85401,0.071438,0.049728,-0.005004,
+ 0.385931,-0.152801,0.909785,0.071312,0.049777,-0.004932,
+ 0.375575,-0.176732,0.909785,0.070898,0.048821,-0.004932,
+ 0.483723,-0.191519,0.85401,0.071438,0.049728,-0.005004,
+ 0.375575,-0.176732,0.909785,0.070898,0.048821,-0.004932,
+ 0.470743,-0.221515,0.85401,0.071021,0.048763,-0.005004,
+ 0.494794,-0.160768,0.85401,0.071794,0.050716,-0.005004,
+ 0.394764,-0.128267,0.909785,0.071665,0.050758,-0.004932,
+ 0.385931,-0.152801,0.909785,0.071312,0.049777,-0.004932,
+ 0.494794,-0.160768,0.85401,0.071794,0.050716,-0.005004,
+ 0.385931,-0.152801,0.909785,0.071312,0.049777,-0.004932,
+ 0.483723,-0.191519,0.85401,0.071438,0.049728,-0.005004,
+ 0.503912,-0.129383,0.85401,0.072087,0.051725,-0.005004,
+ 0.402039,-0.103226,0.909785,0.071956,0.051759,-0.004932,
+ 0.394764,-0.128267,0.909785,0.071665,0.050758,-0.004932,
+ 0.503912,-0.129383,0.85401,0.072087,0.051725,-0.005004,
+ 0.394764,-0.128267,0.909785,0.071665,0.050758,-0.004932,
+ 0.494794,-0.160768,0.85401,0.071794,0.050716,-0.005004,
+ 0.511042,-0.097487,0.85401,0.072316,0.052751,-0.005004,
+ 0.407727,-0.077778,0.909785,0.072183,0.052776,-0.004932,
+ 0.402039,-0.103226,0.909785,0.071956,0.051759,-0.004932,
+ 0.511042,-0.097487,0.85401,0.072316,0.052751,-0.005004,
+ 0.402039,-0.103226,0.909785,0.071956,0.051759,-0.004932,
+ 0.503912,-0.129383,0.85401,0.072087,0.051725,-0.005004,
+ 0.516155,-0.065205,0.85401,0.072481,0.053789,-0.005004,
+ 0.411806,-0.052023,0.909785,0.072346,0.053806,-0.004932,
+ 0.407727,-0.077778,0.909785,0.072183,0.052776,-0.004932,
+ 0.516155,-0.065205,0.85401,0.072481,0.053789,-0.005004,
+ 0.407727,-0.077778,0.909785,0.072183,0.052776,-0.004932,
+ 0.511042,-0.097487,0.85401,0.072316,0.052751,-0.005004,
+ 0.519231,-0.032667,0.85401,0.07258,0.054835,-0.005004,
+ 0.41426,-0.026063,0.909785,0.072444,0.054844,-0.004932,
+ 0.411806,-0.052023,0.909785,0.072346,0.053806,-0.004932,
+ 0.519231,-0.032667,0.85401,0.07258,0.054835,-0.005004,
+ 0.411806,-0.052023,0.909785,0.072346,0.053806,-0.004932,
+ 0.516155,-0.065205,0.85401,0.072481,0.053789,-0.005004,
+ 0.520257,0,0.85401,0.072613,0.055885,-0.005004,
+ 0.415079,0,0.909785,0.072477,0.055885,-0.004932,
+ 0.41426,-0.026063,0.909785,0.072444,0.054844,-0.004932,
+ 0.520257,0,0.85401,0.072613,0.055885,-0.005004,
+ 0.41426,-0.026063,0.909785,0.072444,0.054844,-0.004932,
+ 0.519231,-0.032667,0.85401,0.07258,0.054835,-0.005004,
+ 0.519231,0.032667,0.85401,0.07258,0.056936,-0.005004,
+ 0.41426,0.026063,0.909785,0.072444,0.056927,-0.004932,
+ 0.415079,0,0.909785,0.072477,0.055885,-0.004932,
+ 0.519231,0.032667,0.85401,0.07258,0.056936,-0.005004,
+ 0.415079,0,0.909785,0.072477,0.055885,-0.004932,
+ 0.520257,0,0.85401,0.072613,0.055885,-0.005004,
+ 0.516155,0.065205,0.85401,0.072481,0.057982,-0.005004,
+ 0.411806,0.052023,0.909785,0.072346,0.057965,-0.004932,
+ 0.41426,0.026063,0.909785,0.072444,0.056927,-0.004932,
+ 0.516155,0.065205,0.85401,0.072481,0.057982,-0.005004,
+ 0.41426,0.026063,0.909785,0.072444,0.056927,-0.004932,
+ 0.519231,0.032667,0.85401,0.07258,0.056936,-0.005004,
+ 0.511042,0.097487,0.85401,0.072316,0.05902,-0.005004,
+ 0.407727,0.077778,0.909785,0.072183,0.058994,-0.004932,
+ 0.411806,0.052023,0.909785,0.072346,0.057965,-0.004932,
+ 0.511042,0.097487,0.85401,0.072316,0.05902,-0.005004,
+ 0.411806,0.052023,0.909785,0.072346,0.057965,-0.004932,
+ 0.516155,0.065205,0.85401,0.072481,0.057982,-0.005004,
+ 0.503912,0.129383,0.85401,0.072087,0.060045,-0.005004,
+ 0.402039,0.103226,0.909785,0.071956,0.060012,-0.004932,
+ 0.407727,0.077778,0.909785,0.072183,0.058994,-0.004932,
+ 0.503912,0.129383,0.85401,0.072087,0.060045,-0.005004,
+ 0.407727,0.077778,0.909785,0.072183,0.058994,-0.004932,
+ 0.511042,0.097487,0.85401,0.072316,0.05902,-0.005004,
+ 0.494794,0.160768,0.85401,0.071794,0.061054,-0.005004,
+ 0.394764,0.128267,0.909785,0.071665,0.061012,-0.004932,
+ 0.402039,0.103226,0.909785,0.071956,0.060012,-0.004932,
+ 0.494794,0.160768,0.85401,0.071794,0.061054,-0.005004,
+ 0.402039,0.103226,0.909785,0.071956,0.060012,-0.004932,
+ 0.503912,0.129383,0.85401,0.072087,0.060045,-0.005004,
+ 0.483723,0.191519,0.85401,0.071438,0.062043,-0.005004,
+ 0.385931,0.152801,0.909785,0.071312,0.061993,-0.004932,
+ 0.394764,0.128267,0.909785,0.071665,0.061012,-0.004932,
+ 0.483723,0.191519,0.85401,0.071438,0.062043,-0.005004,
+ 0.394764,0.128267,0.909785,0.071665,0.061012,-0.004932,
+ 0.494794,0.160768,0.85401,0.071794,0.061054,-0.005004,
+ 0.470743,0.221515,0.85401,0.071021,0.063007,-0.005004,
+ 0.375575,0.176732,0.909785,0.070898,0.06295,-0.004932,
+ 0.385931,0.152801,0.909785,0.071312,0.061993,-0.004932,
+ 0.470743,0.221515,0.85401,0.071021,0.063007,-0.005004,
+ 0.385931,0.152801,0.909785,0.071312,0.061993,-0.004932,
+ 0.483723,0.191519,0.85401,0.071438,0.062043,-0.005004,
+ 0.455905,0.250636,0.85401,0.070543,0.063944,-0.005004,
+ 0.363737,0.199966,0.909785,0.070425,0.063878,-0.004932,
+ 0.375575,0.176732,0.909785,0.070898,0.06295,-0.004932,
+ 0.455905,0.250636,0.85401,0.070543,0.063944,-0.005004,
+ 0.375575,0.176732,0.909785,0.070898,0.06295,-0.004932,
+ 0.470743,0.221515,0.85401,0.071021,0.063007,-0.005004,
+ 0.439268,0.278768,0.85401,0.070009,0.064848,-0.005004,
+ 0.350463,0.222411,0.909785,0.069894,0.064776,-0.004932,
+ 0.363737,0.199966,0.909785,0.070425,0.063878,-0.004932,
+ 0.439268,0.278768,0.85401,0.070009,0.064848,-0.005004,
+ 0.363737,0.199966,0.909785,0.070425,0.063878,-0.004932,
+ 0.455905,0.250636,0.85401,0.070543,0.063944,-0.005004,
+ 0.420897,0.3058,0.85401,0.069418,0.065717,-0.005004,
+ 0.335806,0.243978,0.909785,0.069308,0.065638,-0.004932,
+ 0.350463,0.222411,0.909785,0.069894,0.064776,-0.004932,
+ 0.420897,0.3058,0.85401,0.069418,0.065717,-0.005004,
+ 0.350463,0.222411,0.909785,0.069894,0.064776,-0.004932,
+ 0.439268,0.278768,0.85401,0.070009,0.064848,-0.005004,
+ 0.400865,0.331624,0.85401,0.068774,0.066548,-0.005004,
+ 0.319824,0.264582,0.909785,0.06867,0.066461,-0.004932,
+ 0.335806,0.243978,0.909785,0.069308,0.065638,-0.004932,
+ 0.400865,0.331624,0.85401,0.068774,0.066548,-0.005004,
+ 0.335806,0.243978,0.909785,0.069308,0.065638,-0.004932,
+ 0.420897,0.3058,0.85401,0.069418,0.065717,-0.005004,
+ 0.379251,0.356141,0.85401,0.068079,0.067336,-0.005004,
+ 0.30258,0.284141,0.909785,0.06798,0.067243,-0.004932,
+ 0.319824,0.264582,0.909785,0.06867,0.066461,-0.004932,
+ 0.379251,0.356141,0.85401,0.068079,0.067336,-0.005004,
+ 0.319824,0.264582,0.909785,0.06867,0.066461,-0.004932,
+ 0.400865,0.331624,0.85401,0.068774,0.066548,-0.005004,
+ 0.356141,0.379251,0.85401,0.067336,0.068079,-0.005004,
+ 0.284141,0.30258,0.909785,0.067243,0.06798,-0.004932,
+ 0.30258,0.284141,0.909785,0.06798,0.067243,-0.004932,
+ 0.356141,0.379251,0.85401,0.067336,0.068079,-0.005004,
+ 0.30258,0.284141,0.909785,0.06798,0.067243,-0.004932,
+ 0.379251,0.356141,0.85401,0.068079,0.067336,-0.005004,
+ 0.331624,0.400865,0.85401,0.066548,0.068774,-0.005004,
+ 0.264582,0.319824,0.909785,0.066461,0.06867,-0.004932,
+ 0.284141,0.30258,0.909785,0.067243,0.06798,-0.004932,
+ 0.331624,0.400865,0.85401,0.066548,0.068774,-0.005004,
+ 0.284141,0.30258,0.909785,0.067243,0.06798,-0.004932,
+ 0.356141,0.379251,0.85401,0.067336,0.068079,-0.005004,
+ 0.3058,0.420897,0.85401,0.065717,0.069418,-0.005004,
+ 0.243978,0.335806,0.909785,0.065638,0.069308,-0.004932,
+ 0.264582,0.319824,0.909785,0.066461,0.06867,-0.004932,
+ 0.3058,0.420897,0.85401,0.065717,0.069418,-0.005004,
+ 0.264582,0.319824,0.909785,0.066461,0.06867,-0.004932,
+ 0.331624,0.400865,0.85401,0.066548,0.068774,-0.005004,
+ 0.278768,0.439268,0.85401,0.064848,0.070009,-0.005004,
+ 0.222411,0.350463,0.909785,0.064776,0.069894,-0.004932,
+ 0.243978,0.335806,0.909785,0.065638,0.069308,-0.004932,
+ 0.278768,0.439268,0.85401,0.064848,0.070009,-0.005004,
+ 0.243978,0.335806,0.909785,0.065638,0.069308,-0.004932,
+ 0.3058,0.420897,0.85401,0.065717,0.069418,-0.005004,
+ 0.250636,0.455905,0.85401,0.063944,0.070543,-0.005004,
+ 0.199966,0.363737,0.909785,0.063878,0.070425,-0.004932,
+ 0.222411,0.350463,0.909785,0.064776,0.069894,-0.004932,
+ 0.250636,0.455905,0.85401,0.063944,0.070543,-0.005004,
+ 0.222411,0.350463,0.909785,0.064776,0.069894,-0.004932,
+ 0.278768,0.439268,0.85401,0.064848,0.070009,-0.005004,
+ 0.221515,0.470743,0.85401,0.063007,0.071021,-0.005004,
+ 0.176732,0.375575,0.909785,0.06295,0.070898,-0.004932,
+ 0.199966,0.363737,0.909785,0.063878,0.070425,-0.004932,
+ 0.221515,0.470743,0.85401,0.063007,0.071021,-0.005004,
+ 0.199966,0.363737,0.909785,0.063878,0.070425,-0.004932,
+ 0.250636,0.455905,0.85401,0.063944,0.070543,-0.005004,
+ 0.191519,0.483723,0.85401,0.062043,0.071438,-0.005004,
+ 0.152801,0.385931,0.909785,0.061993,0.071312,-0.004932,
+ 0.176732,0.375575,0.909785,0.06295,0.070898,-0.004932,
+ 0.191519,0.483723,0.85401,0.062043,0.071438,-0.005004,
+ 0.176732,0.375575,0.909785,0.06295,0.070898,-0.004932,
+ 0.221515,0.470743,0.85401,0.063007,0.071021,-0.005004,
+ 0.160768,0.494794,0.85401,0.061054,0.071794,-0.005004,
+ 0.128267,0.394764,0.909785,0.061012,0.071665,-0.004932,
+ 0.152801,0.385931,0.909785,0.061993,0.071312,-0.004932,
+ 0.160768,0.494794,0.85401,0.061054,0.071794,-0.005004,
+ 0.152801,0.385931,0.909785,0.061993,0.071312,-0.004932,
+ 0.191519,0.483723,0.85401,0.062043,0.071438,-0.005004,
+ 0.129383,0.503912,0.85401,0.060045,0.072087,-0.005004,
+ 0.103226,0.402039,0.909785,0.060012,0.071956,-0.004932,
+ 0.128267,0.394764,0.909785,0.061012,0.071665,-0.004932,
+ 0.129383,0.503912,0.85401,0.060045,0.072087,-0.005004,
+ 0.128267,0.394764,0.909785,0.061012,0.071665,-0.004932,
+ 0.160768,0.494794,0.85401,0.061054,0.071794,-0.005004,
+ 0.097487,0.511042,0.85401,0.05902,0.072316,-0.005004,
+ 0.077778,0.407727,0.909785,0.058994,0.072183,-0.004932,
+ 0.103226,0.402039,0.909785,0.060012,0.071956,-0.004932,
+ 0.097487,0.511042,0.85401,0.05902,0.072316,-0.005004,
+ 0.103226,0.402039,0.909785,0.060012,0.071956,-0.004932,
+ 0.129383,0.503912,0.85401,0.060045,0.072087,-0.005004,
+ 0.065205,0.516155,0.85401,0.057982,0.072481,-0.005004,
+ 0.052023,0.411806,0.909785,0.057965,0.072346,-0.004932,
+ 0.077778,0.407727,0.909785,0.058994,0.072183,-0.004932,
+ 0.065205,0.516155,0.85401,0.057982,0.072481,-0.005004,
+ 0.077778,0.407727,0.909785,0.058994,0.072183,-0.004932,
+ 0.097487,0.511042,0.85401,0.05902,0.072316,-0.005004,
+ 0.032667,0.519231,0.85401,0.056936,0.07258,-0.005004,
+ 0.026063,0.41426,0.909785,0.056927,0.072444,-0.004932,
+ 0.052023,0.411806,0.909785,0.057965,0.072346,-0.004932,
+ 0.032667,0.519231,0.85401,0.056936,0.07258,-0.005004,
+ 0.052023,0.411806,0.909785,0.057965,0.072346,-0.004932,
+ 0.065205,0.516155,0.85401,0.057982,0.072481,-0.005004,
+ 0,0.520257,0.85401,0.055885,0.072613,-0.005004,
+ 0,0.415079,0.909785,0.055885,0.072477,-0.004932,
+ 0.026063,0.41426,0.909785,0.056927,0.072444,-0.004932,
+ 0,0.520257,0.85401,0.055885,0.072613,-0.005004,
+ 0.026063,0.41426,0.909785,0.056927,0.072444,-0.004932,
+ 0.032667,0.519231,0.85401,0.056936,0.07258,-0.005004,
+ -0.032667,0.519231,0.85401,0.054835,0.07258,-0.005004,
+ -0.026063,0.41426,0.909785,0.054844,0.072444,-0.004932,
+ 0,0.415079,0.909785,0.055885,0.072477,-0.004932,
+ -0.032667,0.519231,0.85401,0.054835,0.07258,-0.005004,
+ 0,0.415079,0.909785,0.055885,0.072477,-0.004932,
+ 0,0.520257,0.85401,0.055885,0.072613,-0.005004,
+ -0.065205,0.516155,0.85401,0.053789,0.072481,-0.005004,
+ -0.052023,0.411806,0.909785,0.053806,0.072346,-0.004932,
+ -0.026063,0.41426,0.909785,0.054844,0.072444,-0.004932,
+ -0.065205,0.516155,0.85401,0.053789,0.072481,-0.005004,
+ -0.026063,0.41426,0.909785,0.054844,0.072444,-0.004932,
+ -0.032667,0.519231,0.85401,0.054835,0.07258,-0.005004,
+ -0.097487,0.511042,0.85401,0.052751,0.072316,-0.005004,
+ -0.077778,0.407727,0.909785,0.052776,0.072183,-0.004932,
+ -0.052023,0.411806,0.909785,0.053806,0.072346,-0.004932,
+ -0.097487,0.511042,0.85401,0.052751,0.072316,-0.005004,
+ -0.052023,0.411806,0.909785,0.053806,0.072346,-0.004932,
+ -0.065205,0.516155,0.85401,0.053789,0.072481,-0.005004,
+ -0.129383,0.503912,0.85401,0.051725,0.072087,-0.005004,
+ -0.103226,0.402039,0.909785,0.051759,0.071956,-0.004932,
+ -0.077778,0.407727,0.909785,0.052776,0.072183,-0.004932,
+ -0.129383,0.503912,0.85401,0.051725,0.072087,-0.005004,
+ -0.077778,0.407727,0.909785,0.052776,0.072183,-0.004932,
+ -0.097487,0.511042,0.85401,0.052751,0.072316,-0.005004,
+ -0.160768,0.494794,0.85401,0.050716,0.071794,-0.005004,
+ -0.128267,0.394764,0.909785,0.050758,0.071665,-0.004932,
+ -0.103226,0.402039,0.909785,0.051759,0.071956,-0.004932,
+ -0.160768,0.494794,0.85401,0.050716,0.071794,-0.005004,
+ -0.103226,0.402039,0.909785,0.051759,0.071956,-0.004932,
+ -0.129383,0.503912,0.85401,0.051725,0.072087,-0.005004,
+ -0.191519,0.483723,0.85401,0.049728,0.071438,-0.005004,
+ -0.152801,0.385931,0.909785,0.049777,0.071312,-0.004932,
+ -0.128267,0.394764,0.909785,0.050758,0.071665,-0.004932,
+ -0.191519,0.483723,0.85401,0.049728,0.071438,-0.005004,
+ -0.128267,0.394764,0.909785,0.050758,0.071665,-0.004932,
+ -0.160768,0.494794,0.85401,0.050716,0.071794,-0.005004,
+ -0.221515,0.470743,0.85401,0.048763,0.071021,-0.005004,
+ -0.176732,0.375575,0.909785,0.048821,0.070898,-0.004932,
+ -0.152801,0.385931,0.909785,0.049777,0.071312,-0.004932,
+ -0.221515,0.470743,0.85401,0.048763,0.071021,-0.005004,
+ -0.152801,0.385931,0.909785,0.049777,0.071312,-0.004932,
+ -0.191519,0.483723,0.85401,0.049728,0.071438,-0.005004,
+ -0.250636,0.455905,0.85401,0.047827,0.070543,-0.005004,
+ -0.199966,0.363737,0.909785,0.047892,0.070425,-0.004932,
+ -0.176732,0.375575,0.909785,0.048821,0.070898,-0.004932,
+ -0.250636,0.455905,0.85401,0.047827,0.070543,-0.005004,
+ -0.176732,0.375575,0.909785,0.048821,0.070898,-0.004932,
+ -0.221515,0.470743,0.85401,0.048763,0.071021,-0.005004,
+ -0.278768,0.439268,0.85401,0.046922,0.070009,-0.005004,
+ -0.222411,0.350463,0.909785,0.046995,0.069894,-0.004932,
+ -0.199966,0.363737,0.909785,0.047892,0.070425,-0.004932,
+ -0.278768,0.439268,0.85401,0.046922,0.070009,-0.005004,
+ -0.199966,0.363737,0.909785,0.047892,0.070425,-0.004932,
+ -0.250636,0.455905,0.85401,0.047827,0.070543,-0.005004,
+ -0.3058,0.420897,0.85401,0.046053,0.069418,-0.005004,
+ -0.243978,0.335806,0.909785,0.046133,0.069308,-0.004932,
+ -0.222411,0.350463,0.909785,0.046995,0.069894,-0.004932,
+ -0.3058,0.420897,0.85401,0.046053,0.069418,-0.005004,
+ -0.222411,0.350463,0.909785,0.046995,0.069894,-0.004932,
+ -0.278768,0.439268,0.85401,0.046922,0.070009,-0.005004,
+ -0.331624,0.400865,0.85401,0.045223,0.068774,-0.005004,
+ -0.264582,0.319824,0.909785,0.045309,0.06867,-0.004932,
+ -0.243978,0.335806,0.909785,0.046133,0.069308,-0.004932,
+ -0.331624,0.400865,0.85401,0.045223,0.068774,-0.005004,
+ -0.243978,0.335806,0.909785,0.046133,0.069308,-0.004932,
+ -0.3058,0.420897,0.85401,0.046053,0.069418,-0.005004,
+ -0.356141,0.379251,0.85401,0.044435,0.068079,-0.005004,
+ -0.284141,0.30258,0.909785,0.044527,0.06798,-0.004932,
+ -0.264582,0.319824,0.909785,0.045309,0.06867,-0.004932,
+ -0.356141,0.379251,0.85401,0.044435,0.068079,-0.005004,
+ -0.264582,0.319824,0.909785,0.045309,0.06867,-0.004932,
+ -0.331624,0.400865,0.85401,0.045223,0.068774,-0.005004,
+ -0.379251,0.356141,0.85401,0.043692,0.067336,-0.005004,
+ -0.30258,0.284141,0.909785,0.04379,0.067243,-0.004932,
+ -0.284141,0.30258,0.909785,0.044527,0.06798,-0.004932,
+ -0.379251,0.356141,0.85401,0.043692,0.067336,-0.005004,
+ -0.284141,0.30258,0.909785,0.044527,0.06798,-0.004932,
+ -0.356141,0.379251,0.85401,0.044435,0.068079,-0.005004,
+ -0.400865,0.331624,0.85401,0.042997,0.066548,-0.005004,
+ -0.319824,0.264582,0.909785,0.043101,0.066461,-0.004932,
+ -0.30258,0.284141,0.909785,0.04379,0.067243,-0.004932,
+ -0.400865,0.331624,0.85401,0.042997,0.066548,-0.005004,
+ -0.30258,0.284141,0.909785,0.04379,0.067243,-0.004932,
+ -0.379251,0.356141,0.85401,0.043692,0.067336,-0.005004,
+ -0.420897,0.3058,0.85401,0.042353,0.065717,-0.005004,
+ -0.335806,0.243978,0.909785,0.042462,0.065638,-0.004932,
+ -0.319824,0.264582,0.909785,0.043101,0.066461,-0.004932,
+ -0.420897,0.3058,0.85401,0.042353,0.065717,-0.005004,
+ -0.319824,0.264582,0.909785,0.043101,0.066461,-0.004932,
+ -0.400865,0.331624,0.85401,0.042997,0.066548,-0.005004,
+ -0.439268,0.278768,0.85401,0.041762,0.064848,-0.005004,
+ -0.350463,0.222411,0.909785,0.041876,0.064776,-0.004932,
+ -0.335806,0.243978,0.909785,0.042462,0.065638,-0.004932,
+ -0.439268,0.278768,0.85401,0.041762,0.064848,-0.005004,
+ -0.335806,0.243978,0.909785,0.042462,0.065638,-0.004932,
+ -0.420897,0.3058,0.85401,0.042353,0.065717,-0.005004,
+ -0.455905,0.250636,0.85401,0.041227,0.063944,-0.005004,
+ -0.363737,0.199966,0.909785,0.041346,0.063878,-0.004932,
+ -0.350463,0.222411,0.909785,0.041876,0.064776,-0.004932,
+ -0.455905,0.250636,0.85401,0.041227,0.063944,-0.005004,
+ -0.350463,0.222411,0.909785,0.041876,0.064776,-0.004932,
+ -0.439268,0.278768,0.85401,0.041762,0.064848,-0.005004,
+ -0.470743,0.221515,0.85401,0.04075,0.063007,-0.005004,
+ -0.375575,0.176732,0.909785,0.040873,0.06295,-0.004932,
+ -0.363737,0.199966,0.909785,0.041346,0.063878,-0.004932,
+ -0.470743,0.221515,0.85401,0.04075,0.063007,-0.005004,
+ -0.363737,0.199966,0.909785,0.041346,0.063878,-0.004932,
+ -0.455905,0.250636,0.85401,0.041227,0.063944,-0.005004,
+ -0.483723,0.191519,0.85401,0.040333,0.062043,-0.005004,
+ -0.385931,0.152801,0.909785,0.040459,0.061993,-0.004932,
+ -0.375575,0.176732,0.909785,0.040873,0.06295,-0.004932,
+ -0.483723,0.191519,0.85401,0.040333,0.062043,-0.005004,
+ -0.375575,0.176732,0.909785,0.040873,0.06295,-0.004932,
+ -0.470743,0.221515,0.85401,0.04075,0.063007,-0.005004,
+ -0.494794,0.160768,0.85401,0.039977,0.061054,-0.005004,
+ -0.394764,0.128267,0.909785,0.040106,0.061012,-0.004932,
+ -0.385931,0.152801,0.909785,0.040459,0.061993,-0.004932,
+ -0.494794,0.160768,0.85401,0.039977,0.061054,-0.005004,
+ -0.385931,0.152801,0.909785,0.040459,0.061993,-0.004932,
+ -0.483723,0.191519,0.85401,0.040333,0.062043,-0.005004,
+ -0.503912,0.129383,0.85401,0.039684,0.060045,-0.005004,
+ -0.402039,0.103226,0.909785,0.039815,0.060012,-0.004932,
+ -0.394764,0.128267,0.909785,0.040106,0.061012,-0.004932,
+ -0.503912,0.129383,0.85401,0.039684,0.060045,-0.005004,
+ -0.394764,0.128267,0.909785,0.040106,0.061012,-0.004932,
+ -0.494794,0.160768,0.85401,0.039977,0.061054,-0.005004,
+ -0.511042,0.097487,0.85401,0.039454,0.05902,-0.005004,
+ -0.407727,0.077778,0.909785,0.039587,0.058994,-0.004932,
+ -0.402039,0.103226,0.909785,0.039815,0.060012,-0.004932,
+ -0.511042,0.097487,0.85401,0.039454,0.05902,-0.005004,
+ -0.402039,0.103226,0.909785,0.039815,0.060012,-0.004932,
+ -0.503912,0.129383,0.85401,0.039684,0.060045,-0.005004,
+ -0.407727,0.077778,0.909785,0.039587,0.058994,-0.004932,
+ -0.298634,0.056967,0.952666,0.039728,0.058967,-0.004877,
+ -0.294467,0.075606,0.952666,0.039953,0.059976,-0.004877,
+ -0.407727,0.077778,0.909785,0.039587,0.058994,-0.004932,
+ -0.294467,0.075606,0.952666,0.039953,0.059976,-0.004877,
+ -0.402039,0.103226,0.909785,0.039815,0.060012,-0.004932,
+ -0.411806,0.052023,0.909785,0.039424,0.057965,-0.004932,
+ -0.301621,0.038104,0.952666,0.039566,0.057947,-0.004877,
+ -0.298634,0.056967,0.952666,0.039728,0.058967,-0.004877,
+ -0.411806,0.052023,0.909785,0.039424,0.057965,-0.004932,
+ -0.298634,0.056967,0.952666,0.039728,0.058967,-0.004877,
+ -0.407727,0.077778,0.909785,0.039587,0.058994,-0.004932,
+ -0.41426,0.026063,0.909785,0.039326,0.056927,-0.004932,
+ -0.303419,0.019089,0.952666,0.039469,0.056918,-0.004877,
+ -0.301621,0.038104,0.952666,0.039566,0.057947,-0.004877,
+ -0.41426,0.026063,0.909785,0.039326,0.056927,-0.004932,
+ -0.301621,0.038104,0.952666,0.039566,0.057947,-0.004877,
+ -0.411806,0.052023,0.909785,0.039424,0.057965,-0.004932,
+ -0.415079,0,0.909785,0.039294,0.055885,-0.004932,
+ -0.304019,0,0.952666,0.039437,0.055885,-0.004877,
+ -0.303419,0.019089,0.952666,0.039469,0.056918,-0.004877,
+ -0.415079,0,0.909785,0.039294,0.055885,-0.004932,
+ -0.303419,0.019089,0.952666,0.039469,0.056918,-0.004877,
+ -0.41426,0.026063,0.909785,0.039326,0.056927,-0.004932,
+ -0.41426,-0.026063,0.909785,0.039326,0.054844,-0.004932,
+ -0.303419,-0.019089,0.952666,0.039469,0.054852,-0.004877,
+ -0.304019,0,0.952666,0.039437,0.055885,-0.004877,
+ -0.41426,-0.026063,0.909785,0.039326,0.054844,-0.004932,
+ -0.304019,0,0.952666,0.039437,0.055885,-0.004877,
+ -0.415079,0,0.909785,0.039294,0.055885,-0.004932,
+ -0.411806,-0.052023,0.909785,0.039424,0.053806,-0.004932,
+ -0.301621,-0.038104,0.952666,0.039566,0.053824,-0.004877,
+ -0.303419,-0.019089,0.952666,0.039469,0.054852,-0.004877,
+ -0.411806,-0.052023,0.909785,0.039424,0.053806,-0.004932,
+ -0.303419,-0.019089,0.952666,0.039469,0.054852,-0.004877,
+ -0.41426,-0.026063,0.909785,0.039326,0.054844,-0.004932,
+ -0.407727,-0.077778,0.909785,0.039587,0.052776,-0.004932,
+ -0.298634,-0.056967,0.952666,0.039728,0.052803,-0.004877,
+ -0.301621,-0.038104,0.952666,0.039566,0.053824,-0.004877,
+ -0.407727,-0.077778,0.909785,0.039587,0.052776,-0.004932,
+ -0.301621,-0.038104,0.952666,0.039566,0.053824,-0.004877,
+ -0.411806,-0.052023,0.909785,0.039424,0.053806,-0.004932,
+ -0.402039,-0.103226,0.909785,0.039815,0.051759,-0.004932,
+ -0.294467,-0.075606,0.952666,0.039953,0.051795,-0.004877,
+ -0.298634,-0.056967,0.952666,0.039728,0.052803,-0.004877,
+ -0.402039,-0.103226,0.909785,0.039815,0.051759,-0.004932,
+ -0.298634,-0.056967,0.952666,0.039728,0.052803,-0.004877,
+ -0.407727,-0.077778,0.909785,0.039587,0.052776,-0.004932,
+ -0.394764,-0.128267,0.909785,0.040106,0.050758,-0.004932,
+ -0.289139,-0.093947,0.952666,0.040242,0.050802,-0.004877,
+ -0.294467,-0.075606,0.952666,0.039953,0.051795,-0.004877,
+ -0.394764,-0.128267,0.909785,0.040106,0.050758,-0.004932,
+ -0.294467,-0.075606,0.952666,0.039953,0.051795,-0.004877,
+ -0.402039,-0.103226,0.909785,0.039815,0.051759,-0.004932,
+ -0.385931,-0.152801,0.909785,0.040459,0.049777,-0.004932,
+ -0.282669,-0.111917,0.952666,0.040592,0.04983,-0.004877,
+ -0.289139,-0.093947,0.952666,0.040242,0.050802,-0.004877,
+ -0.385931,-0.152801,0.909785,0.040459,0.049777,-0.004932,
+ -0.289139,-0.093947,0.952666,0.040242,0.050802,-0.004877,
+ -0.394764,-0.128267,0.909785,0.040106,0.050758,-0.004932,
+ -0.375575,-0.176732,0.909785,0.040873,0.048821,-0.004932,
+ -0.275084,-0.129445,0.952666,0.041002,0.048882,-0.004877,
+ -0.282669,-0.111917,0.952666,0.040592,0.04983,-0.004877,
+ -0.375575,-0.176732,0.909785,0.040873,0.048821,-0.004932,
+ -0.282669,-0.111917,0.952666,0.040592,0.04983,-0.004877,
+ -0.385931,-0.152801,0.909785,0.040459,0.049777,-0.004932,
+ -0.363737,-0.199966,0.909785,0.041346,0.047892,-0.004932,
+ -0.266414,-0.146462,0.952666,0.041471,0.047961,-0.004877,
+ -0.275084,-0.129445,0.952666,0.041002,0.048882,-0.004877,
+ -0.363737,-0.199966,0.909785,0.041346,0.047892,-0.004932,
+ -0.275084,-0.129445,0.952666,0.041002,0.048882,-0.004877,
+ -0.375575,-0.176732,0.909785,0.040873,0.048821,-0.004932,
+ -0.350463,-0.222411,0.909785,0.041876,0.046995,-0.004932,
+ -0.256692,-0.162901,0.952666,0.041997,0.047072,-0.004877,
+ -0.266414,-0.146462,0.952666,0.041471,0.047961,-0.004877,
+ -0.350463,-0.222411,0.909785,0.041876,0.046995,-0.004932,
+ -0.266414,-0.146462,0.952666,0.041471,0.047961,-0.004877,
+ -0.363737,-0.199966,0.909785,0.041346,0.047892,-0.004932,
+ -0.335806,-0.243978,0.909785,0.042462,0.046133,-0.004932,
+ -0.245956,-0.178698,0.952666,0.042578,0.046217,-0.004877,
+ -0.256692,-0.162901,0.952666,0.041997,0.047072,-0.004877,
+ -0.335806,-0.243978,0.909785,0.042462,0.046133,-0.004932,
+ -0.256692,-0.162901,0.952666,0.041997,0.047072,-0.004877,
+ -0.350463,-0.222411,0.909785,0.041876,0.046995,-0.004932,
+ -0.319824,-0.264582,0.909785,0.043101,0.045309,-0.004932,
+ -0.23425,-0.193789,0.952666,0.043211,0.0454,-0.004877,
+ -0.245956,-0.178698,0.952666,0.042578,0.046217,-0.004877,
+ -0.319824,-0.264582,0.909785,0.043101,0.045309,-0.004932,
+ -0.245956,-0.178698,0.952666,0.042578,0.046217,-0.004877,
+ -0.335806,-0.243978,0.909785,0.042462,0.046133,-0.004932,
+ -0.30258,-0.284141,0.909785,0.04379,0.044527,-0.004932,
+ -0.22162,-0.208115,0.952666,0.043895,0.044625,-0.004877,
+ -0.23425,-0.193789,0.952666,0.043211,0.0454,-0.004877,
+ -0.30258,-0.284141,0.909785,0.04379,0.044527,-0.004932,
+ -0.23425,-0.193789,0.952666,0.043211,0.0454,-0.004877,
+ -0.319824,-0.264582,0.909785,0.043101,0.045309,-0.004932,
+ -0.284141,-0.30258,0.909785,0.044527,0.04379,-0.004932,
+ -0.208115,-0.22162,0.952666,0.044625,0.043895,-0.004877,
+ -0.22162,-0.208115,0.952666,0.043895,0.044625,-0.004877,
+ -0.284141,-0.30258,0.909785,0.044527,0.04379,-0.004932,
+ -0.22162,-0.208115,0.952666,0.043895,0.044625,-0.004877,
+ -0.30258,-0.284141,0.909785,0.04379,0.044527,-0.004932,
+ -0.264582,-0.319824,0.909785,0.045309,0.043101,-0.004932,
+ -0.193789,-0.23425,0.952666,0.0454,0.043211,-0.004877,
+ -0.208115,-0.22162,0.952666,0.044625,0.043895,-0.004877,
+ -0.264582,-0.319824,0.909785,0.045309,0.043101,-0.004932,
+ -0.208115,-0.22162,0.952666,0.044625,0.043895,-0.004877,
+ -0.284141,-0.30258,0.909785,0.044527,0.04379,-0.004932,
+ -0.243978,-0.335806,0.909785,0.046133,0.042462,-0.004932,
+ -0.178698,-0.245956,0.952666,0.046217,0.042578,-0.004877,
+ -0.193789,-0.23425,0.952666,0.0454,0.043211,-0.004877,
+ -0.243978,-0.335806,0.909785,0.046133,0.042462,-0.004932,
+ -0.193789,-0.23425,0.952666,0.0454,0.043211,-0.004877,
+ -0.264582,-0.319824,0.909785,0.045309,0.043101,-0.004932,
+ -0.222411,-0.350463,0.909785,0.046995,0.041876,-0.004932,
+ -0.162901,-0.256692,0.952666,0.047072,0.041997,-0.004877,
+ -0.178698,-0.245956,0.952666,0.046217,0.042578,-0.004877,
+ -0.222411,-0.350463,0.909785,0.046995,0.041876,-0.004932,
+ -0.178698,-0.245956,0.952666,0.046217,0.042578,-0.004877,
+ -0.243978,-0.335806,0.909785,0.046133,0.042462,-0.004932,
+ -0.199966,-0.363737,0.909785,0.047892,0.041346,-0.004932,
+ -0.146462,-0.266414,0.952666,0.047961,0.041471,-0.004877,
+ -0.162901,-0.256692,0.952666,0.047072,0.041997,-0.004877,
+ -0.199966,-0.363737,0.909785,0.047892,0.041346,-0.004932,
+ -0.162901,-0.256692,0.952666,0.047072,0.041997,-0.004877,
+ -0.222411,-0.350463,0.909785,0.046995,0.041876,-0.004932,
+ -0.176732,-0.375575,0.909785,0.048821,0.040873,-0.004932,
+ -0.129445,-0.275084,0.952666,0.048882,0.041002,-0.004877,
+ -0.146462,-0.266414,0.952666,0.047961,0.041471,-0.004877,
+ -0.176732,-0.375575,0.909785,0.048821,0.040873,-0.004932,
+ -0.146462,-0.266414,0.952666,0.047961,0.041471,-0.004877,
+ -0.199966,-0.363737,0.909785,0.047892,0.041346,-0.004932,
+ -0.152801,-0.385931,0.909785,0.049777,0.040459,-0.004932,
+ -0.111917,-0.282669,0.952666,0.04983,0.040592,-0.004877,
+ -0.129445,-0.275084,0.952666,0.048882,0.041002,-0.004877,
+ -0.152801,-0.385931,0.909785,0.049777,0.040459,-0.004932,
+ -0.129445,-0.275084,0.952666,0.048882,0.041002,-0.004877,
+ -0.176732,-0.375575,0.909785,0.048821,0.040873,-0.004932,
+ -0.128267,-0.394764,0.909785,0.050758,0.040106,-0.004932,
+ -0.093947,-0.289139,0.952666,0.050802,0.040242,-0.004877,
+ -0.111917,-0.282669,0.952666,0.04983,0.040592,-0.004877,
+ -0.128267,-0.394764,0.909785,0.050758,0.040106,-0.004932,
+ -0.111917,-0.282669,0.952666,0.04983,0.040592,-0.004877,
+ -0.152801,-0.385931,0.909785,0.049777,0.040459,-0.004932,
+ -0.103226,-0.402039,0.909785,0.051759,0.039815,-0.004932,
+ -0.075606,-0.294467,0.952666,0.051795,0.039953,-0.004877,
+ -0.093947,-0.289139,0.952666,0.050802,0.040242,-0.004877,
+ -0.103226,-0.402039,0.909785,0.051759,0.039815,-0.004932,
+ -0.093947,-0.289139,0.952666,0.050802,0.040242,-0.004877,
+ -0.128267,-0.394764,0.909785,0.050758,0.040106,-0.004932,
+ -0.077778,-0.407727,0.909785,0.052776,0.039587,-0.004932,
+ -0.056967,-0.298634,0.952666,0.052803,0.039728,-0.004877,
+ -0.075606,-0.294467,0.952666,0.051795,0.039953,-0.004877,
+ -0.077778,-0.407727,0.909785,0.052776,0.039587,-0.004932,
+ -0.075606,-0.294467,0.952666,0.051795,0.039953,-0.004877,
+ -0.103226,-0.402039,0.909785,0.051759,0.039815,-0.004932,
+ -0.052023,-0.411806,0.909785,0.053806,0.039424,-0.004932,
+ -0.038104,-0.301621,0.952666,0.053824,0.039566,-0.004877,
+ -0.056967,-0.298634,0.952666,0.052803,0.039728,-0.004877,
+ -0.052023,-0.411806,0.909785,0.053806,0.039424,-0.004932,
+ -0.056967,-0.298634,0.952666,0.052803,0.039728,-0.004877,
+ -0.077778,-0.407727,0.909785,0.052776,0.039587,-0.004932,
+ -0.026063,-0.41426,0.909785,0.054844,0.039326,-0.004932,
+ -0.019089,-0.303419,0.952666,0.054852,0.039469,-0.004877,
+ -0.038104,-0.301621,0.952666,0.053824,0.039566,-0.004877,
+ -0.026063,-0.41426,0.909785,0.054844,0.039326,-0.004932,
+ -0.038104,-0.301621,0.952666,0.053824,0.039566,-0.004877,
+ -0.052023,-0.411806,0.909785,0.053806,0.039424,-0.004932,
+ 0,-0.415079,0.909785,0.055885,0.039294,-0.004932,
+ 0,-0.304019,0.952666,0.055885,0.039437,-0.004877,
+ -0.019089,-0.303419,0.952666,0.054852,0.039469,-0.004877,
+ 0,-0.415079,0.909785,0.055885,0.039294,-0.004932,
+ -0.019089,-0.303419,0.952666,0.054852,0.039469,-0.004877,
+ -0.026063,-0.41426,0.909785,0.054844,0.039326,-0.004932,
+ 0.026063,-0.41426,0.909785,0.056927,0.039326,-0.004932,
+ 0.019089,-0.303419,0.952666,0.056918,0.039469,-0.004877,
+ 0,-0.304019,0.952666,0.055885,0.039437,-0.004877,
+ 0.026063,-0.41426,0.909785,0.056927,0.039326,-0.004932,
+ 0,-0.304019,0.952666,0.055885,0.039437,-0.004877,
+ 0,-0.415079,0.909785,0.055885,0.039294,-0.004932,
+ 0.052023,-0.411806,0.909785,0.057965,0.039424,-0.004932,
+ 0.038104,-0.301621,0.952666,0.057947,0.039566,-0.004877,
+ 0.019089,-0.303419,0.952666,0.056918,0.039469,-0.004877,
+ 0.052023,-0.411806,0.909785,0.057965,0.039424,-0.004932,
+ 0.019089,-0.303419,0.952666,0.056918,0.039469,-0.004877,
+ 0.026063,-0.41426,0.909785,0.056927,0.039326,-0.004932,
+ 0.077778,-0.407727,0.909785,0.058994,0.039587,-0.004932,
+ 0.056967,-0.298634,0.952666,0.058967,0.039728,-0.004877,
+ 0.038104,-0.301621,0.952666,0.057947,0.039566,-0.004877,
+ 0.077778,-0.407727,0.909785,0.058994,0.039587,-0.004932,
+ 0.038104,-0.301621,0.952666,0.057947,0.039566,-0.004877,
+ 0.052023,-0.411806,0.909785,0.057965,0.039424,-0.004932,
+ 0.103226,-0.402039,0.909785,0.060012,0.039815,-0.004932,
+ 0.075606,-0.294467,0.952666,0.059976,0.039953,-0.004877,
+ 0.056967,-0.298634,0.952666,0.058967,0.039728,-0.004877,
+ 0.103226,-0.402039,0.909785,0.060012,0.039815,-0.004932,
+ 0.056967,-0.298634,0.952666,0.058967,0.039728,-0.004877,
+ 0.077778,-0.407727,0.909785,0.058994,0.039587,-0.004932,
+ 0.128267,-0.394764,0.909785,0.061012,0.040106,-0.004932,
+ 0.093947,-0.289139,0.952666,0.060968,0.040242,-0.004877,
+ 0.075606,-0.294467,0.952666,0.059976,0.039953,-0.004877,
+ 0.128267,-0.394764,0.909785,0.061012,0.040106,-0.004932,
+ 0.075606,-0.294467,0.952666,0.059976,0.039953,-0.004877,
+ 0.103226,-0.402039,0.909785,0.060012,0.039815,-0.004932,
+ 0.152801,-0.385931,0.909785,0.061993,0.040459,-0.004932,
+ 0.111917,-0.282669,0.952666,0.061941,0.040592,-0.004877,
+ 0.093947,-0.289139,0.952666,0.060968,0.040242,-0.004877,
+ 0.152801,-0.385931,0.909785,0.061993,0.040459,-0.004932,
+ 0.093947,-0.289139,0.952666,0.060968,0.040242,-0.004877,
+ 0.128267,-0.394764,0.909785,0.061012,0.040106,-0.004932,
+ 0.176732,-0.375575,0.909785,0.06295,0.040873,-0.004932,
+ 0.129445,-0.275084,0.952666,0.062889,0.041002,-0.004877,
+ 0.111917,-0.282669,0.952666,0.061941,0.040592,-0.004877,
+ 0.176732,-0.375575,0.909785,0.06295,0.040873,-0.004932,
+ 0.111917,-0.282669,0.952666,0.061941,0.040592,-0.004877,
+ 0.152801,-0.385931,0.909785,0.061993,0.040459,-0.004932,
+ 0.199966,-0.363737,0.909785,0.063878,0.041346,-0.004932,
+ 0.146462,-0.266414,0.952666,0.063809,0.041471,-0.004877,
+ 0.129445,-0.275084,0.952666,0.062889,0.041002,-0.004877,
+ 0.199966,-0.363737,0.909785,0.063878,0.041346,-0.004932,
+ 0.129445,-0.275084,0.952666,0.062889,0.041002,-0.004877,
+ 0.176732,-0.375575,0.909785,0.06295,0.040873,-0.004932,
+ 0.222411,-0.350463,0.909785,0.064776,0.041876,-0.004932,
+ 0.162901,-0.256692,0.952666,0.064699,0.041997,-0.004877,
+ 0.146462,-0.266414,0.952666,0.063809,0.041471,-0.004877,
+ 0.222411,-0.350463,0.909785,0.064776,0.041876,-0.004932,
+ 0.146462,-0.266414,0.952666,0.063809,0.041471,-0.004877,
+ 0.199966,-0.363737,0.909785,0.063878,0.041346,-0.004932,
+ 0.243978,-0.335806,0.909785,0.065638,0.042462,-0.004932,
+ 0.178698,-0.245956,0.952666,0.065554,0.042578,-0.004877,
+ 0.162901,-0.256692,0.952666,0.064699,0.041997,-0.004877,
+ 0.243978,-0.335806,0.909785,0.065638,0.042462,-0.004932,
+ 0.162901,-0.256692,0.952666,0.064699,0.041997,-0.004877,
+ 0.222411,-0.350463,0.909785,0.064776,0.041876,-0.004932,
+ 0.264582,-0.319824,0.909785,0.066461,0.043101,-0.004932,
+ 0.193789,-0.23425,0.952666,0.06637,0.043211,-0.004877,
+ 0.178698,-0.245956,0.952666,0.065554,0.042578,-0.004877,
+ 0.264582,-0.319824,0.909785,0.066461,0.043101,-0.004932,
+ 0.178698,-0.245956,0.952666,0.065554,0.042578,-0.004877,
+ 0.243978,-0.335806,0.909785,0.065638,0.042462,-0.004932,
+ 0.284141,-0.30258,0.909785,0.067243,0.04379,-0.004932,
+ 0.208115,-0.22162,0.952666,0.067145,0.043895,-0.004877,
+ 0.193789,-0.23425,0.952666,0.06637,0.043211,-0.004877,
+ 0.284141,-0.30258,0.909785,0.067243,0.04379,-0.004932,
+ 0.193789,-0.23425,0.952666,0.06637,0.043211,-0.004877,
+ 0.264582,-0.319824,0.909785,0.066461,0.043101,-0.004932,
+ 0.30258,-0.284141,0.909785,0.06798,0.044527,-0.004932,
+ 0.22162,-0.208115,0.952666,0.067876,0.044625,-0.004877,
+ 0.208115,-0.22162,0.952666,0.067145,0.043895,-0.004877,
+ 0.30258,-0.284141,0.909785,0.06798,0.044527,-0.004932,
+ 0.208115,-0.22162,0.952666,0.067145,0.043895,-0.004877,
+ 0.284141,-0.30258,0.909785,0.067243,0.04379,-0.004932,
+ 0.319824,-0.264582,0.909785,0.06867,0.045309,-0.004932,
+ 0.23425,-0.193789,0.952666,0.068559,0.0454,-0.004877,
+ 0.22162,-0.208115,0.952666,0.067876,0.044625,-0.004877,
+ 0.319824,-0.264582,0.909785,0.06867,0.045309,-0.004932,
+ 0.22162,-0.208115,0.952666,0.067876,0.044625,-0.004877,
+ 0.30258,-0.284141,0.909785,0.06798,0.044527,-0.004932,
+ 0.335806,-0.243978,0.909785,0.069308,0.046133,-0.004932,
+ 0.245956,-0.178698,0.952666,0.069193,0.046217,-0.004877,
+ 0.23425,-0.193789,0.952666,0.068559,0.0454,-0.004877,
+ 0.335806,-0.243978,0.909785,0.069308,0.046133,-0.004932,
+ 0.23425,-0.193789,0.952666,0.068559,0.0454,-0.004877,
+ 0.319824,-0.264582,0.909785,0.06867,0.045309,-0.004932,
+ 0.350463,-0.222411,0.909785,0.069894,0.046995,-0.004932,
+ 0.256692,-0.162901,0.952666,0.069773,0.047072,-0.004877,
+ 0.245956,-0.178698,0.952666,0.069193,0.046217,-0.004877,
+ 0.350463,-0.222411,0.909785,0.069894,0.046995,-0.004932,
+ 0.245956,-0.178698,0.952666,0.069193,0.046217,-0.004877,
+ 0.335806,-0.243978,0.909785,0.069308,0.046133,-0.004932,
+ 0.363737,-0.199966,0.909785,0.070425,0.047892,-0.004932,
+ 0.266414,-0.146462,0.952666,0.070299,0.047961,-0.004877,
+ 0.256692,-0.162901,0.952666,0.069773,0.047072,-0.004877,
+ 0.363737,-0.199966,0.909785,0.070425,0.047892,-0.004932,
+ 0.256692,-0.162901,0.952666,0.069773,0.047072,-0.004877,
+ 0.350463,-0.222411,0.909785,0.069894,0.046995,-0.004932,
+ 0.375575,-0.176732,0.909785,0.070898,0.048821,-0.004932,
+ 0.275084,-0.129445,0.952666,0.070769,0.048882,-0.004877,
+ 0.266414,-0.146462,0.952666,0.070299,0.047961,-0.004877,
+ 0.375575,-0.176732,0.909785,0.070898,0.048821,-0.004932,
+ 0.266414,-0.146462,0.952666,0.070299,0.047961,-0.004877,
+ 0.363737,-0.199966,0.909785,0.070425,0.047892,-0.004932,
+ 0.385931,-0.152801,0.909785,0.071312,0.049777,-0.004932,
+ 0.282669,-0.111917,0.952666,0.071179,0.04983,-0.004877,
+ 0.275084,-0.129445,0.952666,0.070769,0.048882,-0.004877,
+ 0.385931,-0.152801,0.909785,0.071312,0.049777,-0.004932,
+ 0.275084,-0.129445,0.952666,0.070769,0.048882,-0.004877,
+ 0.375575,-0.176732,0.909785,0.070898,0.048821,-0.004932,
+ 0.394764,-0.128267,0.909785,0.071665,0.050758,-0.004932,
+ 0.289139,-0.093947,0.952666,0.071529,0.050802,-0.004877,
+ 0.282669,-0.111917,0.952666,0.071179,0.04983,-0.004877,
+ 0.394764,-0.128267,0.909785,0.071665,0.050758,-0.004932,
+ 0.282669,-0.111917,0.952666,0.071179,0.04983,-0.004877,
+ 0.385931,-0.152801,0.909785,0.071312,0.049777,-0.004932,
+ 0.402039,-0.103226,0.909785,0.071956,0.051759,-0.004932,
+ 0.294467,-0.075606,0.952666,0.071817,0.051795,-0.004877,
+ 0.289139,-0.093947,0.952666,0.071529,0.050802,-0.004877,
+ 0.402039,-0.103226,0.909785,0.071956,0.051759,-0.004932,
+ 0.289139,-0.093947,0.952666,0.071529,0.050802,-0.004877,
+ 0.394764,-0.128267,0.909785,0.071665,0.050758,-0.004932,
+ 0.407727,-0.077778,0.909785,0.072183,0.052776,-0.004932,
+ 0.298634,-0.056967,0.952666,0.072043,0.052803,-0.004877,
+ 0.294467,-0.075606,0.952666,0.071817,0.051795,-0.004877,
+ 0.407727,-0.077778,0.909785,0.072183,0.052776,-0.004932,
+ 0.294467,-0.075606,0.952666,0.071817,0.051795,-0.004877,
+ 0.402039,-0.103226,0.909785,0.071956,0.051759,-0.004932,
+ 0.411806,-0.052023,0.909785,0.072346,0.053806,-0.004932,
+ 0.301621,-0.038104,0.952666,0.072204,0.053824,-0.004877,
+ 0.298634,-0.056967,0.952666,0.072043,0.052803,-0.004877,
+ 0.411806,-0.052023,0.909785,0.072346,0.053806,-0.004932,
+ 0.298634,-0.056967,0.952666,0.072043,0.052803,-0.004877,
+ 0.407727,-0.077778,0.909785,0.072183,0.052776,-0.004932,
+ 0.41426,-0.026063,0.909785,0.072444,0.054844,-0.004932,
+ 0.303419,-0.019089,0.952666,0.072302,0.054852,-0.004877,
+ 0.301621,-0.038104,0.952666,0.072204,0.053824,-0.004877,
+ 0.41426,-0.026063,0.909785,0.072444,0.054844,-0.004932,
+ 0.301621,-0.038104,0.952666,0.072204,0.053824,-0.004877,
+ 0.411806,-0.052023,0.909785,0.072346,0.053806,-0.004932,
+ 0.415079,0,0.909785,0.072477,0.055885,-0.004932,
+ 0.304019,0,0.952666,0.072334,0.055885,-0.004877,
+ 0.303419,-0.019089,0.952666,0.072302,0.054852,-0.004877,
+ 0.415079,0,0.909785,0.072477,0.055885,-0.004932,
+ 0.303419,-0.019089,0.952666,0.072302,0.054852,-0.004877,
+ 0.41426,-0.026063,0.909785,0.072444,0.054844,-0.004932,
+ 0.41426,0.026063,0.909785,0.072444,0.056927,-0.004932,
+ 0.303419,0.019089,0.952666,0.072302,0.056918,-0.004877,
+ 0.304019,0,0.952666,0.072334,0.055885,-0.004877,
+ 0.41426,0.026063,0.909785,0.072444,0.056927,-0.004932,
+ 0.304019,0,0.952666,0.072334,0.055885,-0.004877,
+ 0.415079,0,0.909785,0.072477,0.055885,-0.004932,
+ 0.411806,0.052023,0.909785,0.072346,0.057965,-0.004932,
+ 0.301621,0.038104,0.952666,0.072204,0.057947,-0.004877,
+ 0.303419,0.019089,0.952666,0.072302,0.056918,-0.004877,
+ 0.411806,0.052023,0.909785,0.072346,0.057965,-0.004932,
+ 0.303419,0.019089,0.952666,0.072302,0.056918,-0.004877,
+ 0.41426,0.026063,0.909785,0.072444,0.056927,-0.004932,
+ 0.407727,0.077778,0.909785,0.072183,0.058994,-0.004932,
+ 0.298634,0.056967,0.952666,0.072043,0.058967,-0.004877,
+ 0.301621,0.038104,0.952666,0.072204,0.057947,-0.004877,
+ 0.407727,0.077778,0.909785,0.072183,0.058994,-0.004932,
+ 0.301621,0.038104,0.952666,0.072204,0.057947,-0.004877,
+ 0.411806,0.052023,0.909785,0.072346,0.057965,-0.004932,
+ 0.402039,0.103226,0.909785,0.071956,0.060012,-0.004932,
+ 0.294467,0.075606,0.952666,0.071817,0.059976,-0.004877,
+ 0.298634,0.056967,0.952666,0.072043,0.058967,-0.004877,
+ 0.402039,0.103226,0.909785,0.071956,0.060012,-0.004932,
+ 0.298634,0.056967,0.952666,0.072043,0.058967,-0.004877,
+ 0.407727,0.077778,0.909785,0.072183,0.058994,-0.004932,
+ 0.394764,0.128267,0.909785,0.071665,0.061012,-0.004932,
+ 0.289139,0.093947,0.952666,0.071529,0.060968,-0.004877,
+ 0.294467,0.075606,0.952666,0.071817,0.059976,-0.004877,
+ 0.394764,0.128267,0.909785,0.071665,0.061012,-0.004932,
+ 0.294467,0.075606,0.952666,0.071817,0.059976,-0.004877,
+ 0.402039,0.103226,0.909785,0.071956,0.060012,-0.004932,
+ 0.385931,0.152801,0.909785,0.071312,0.061993,-0.004932,
+ 0.282669,0.111917,0.952666,0.071179,0.061941,-0.004877,
+ 0.289139,0.093947,0.952666,0.071529,0.060968,-0.004877,
+ 0.385931,0.152801,0.909785,0.071312,0.061993,-0.004932,
+ 0.289139,0.093947,0.952666,0.071529,0.060968,-0.004877,
+ 0.394764,0.128267,0.909785,0.071665,0.061012,-0.004932,
+ 0.375575,0.176732,0.909785,0.070898,0.06295,-0.004932,
+ 0.275084,0.129445,0.952666,0.070769,0.062889,-0.004877,
+ 0.282669,0.111917,0.952666,0.071179,0.061941,-0.004877,
+ 0.375575,0.176732,0.909785,0.070898,0.06295,-0.004932,
+ 0.282669,0.111917,0.952666,0.071179,0.061941,-0.004877,
+ 0.385931,0.152801,0.909785,0.071312,0.061993,-0.004932,
+ 0.363737,0.199966,0.909785,0.070425,0.063878,-0.004932,
+ 0.266414,0.146462,0.952666,0.070299,0.063809,-0.004877,
+ 0.275084,0.129445,0.952666,0.070769,0.062889,-0.004877,
+ 0.363737,0.199966,0.909785,0.070425,0.063878,-0.004932,
+ 0.275084,0.129445,0.952666,0.070769,0.062889,-0.004877,
+ 0.375575,0.176732,0.909785,0.070898,0.06295,-0.004932,
+ 0.350463,0.222411,0.909785,0.069894,0.064776,-0.004932,
+ 0.256692,0.162901,0.952666,0.069773,0.064699,-0.004877,
+ 0.266414,0.146462,0.952666,0.070299,0.063809,-0.004877,
+ 0.350463,0.222411,0.909785,0.069894,0.064776,-0.004932,
+ 0.266414,0.146462,0.952666,0.070299,0.063809,-0.004877,
+ 0.363737,0.199966,0.909785,0.070425,0.063878,-0.004932,
+ 0.335806,0.243978,0.909785,0.069308,0.065638,-0.004932,
+ 0.245956,0.178698,0.952666,0.069193,0.065554,-0.004877,
+ 0.256692,0.162901,0.952666,0.069773,0.064699,-0.004877,
+ 0.335806,0.243978,0.909785,0.069308,0.065638,-0.004932,
+ 0.256692,0.162901,0.952666,0.069773,0.064699,-0.004877,
+ 0.350463,0.222411,0.909785,0.069894,0.064776,-0.004932,
+ 0.319824,0.264582,0.909785,0.06867,0.066461,-0.004932,
+ 0.23425,0.193789,0.952666,0.068559,0.06637,-0.004877,
+ 0.245956,0.178698,0.952666,0.069193,0.065554,-0.004877,
+ 0.319824,0.264582,0.909785,0.06867,0.066461,-0.004932,
+ 0.245956,0.178698,0.952666,0.069193,0.065554,-0.004877,
+ 0.335806,0.243978,0.909785,0.069308,0.065638,-0.004932,
+ 0.30258,0.284141,0.909785,0.06798,0.067243,-0.004932,
+ 0.22162,0.208115,0.952666,0.067876,0.067145,-0.004877,
+ 0.23425,0.193789,0.952666,0.068559,0.06637,-0.004877,
+ 0.30258,0.284141,0.909785,0.06798,0.067243,-0.004932,
+ 0.23425,0.193789,0.952666,0.068559,0.06637,-0.004877,
+ 0.319824,0.264582,0.909785,0.06867,0.066461,-0.004932,
+ 0.284141,0.30258,0.909785,0.067243,0.06798,-0.004932,
+ 0.208115,0.22162,0.952666,0.067145,0.067876,-0.004877,
+ 0.22162,0.208115,0.952666,0.067876,0.067145,-0.004877,
+ 0.284141,0.30258,0.909785,0.067243,0.06798,-0.004932,
+ 0.22162,0.208115,0.952666,0.067876,0.067145,-0.004877,
+ 0.30258,0.284141,0.909785,0.06798,0.067243,-0.004932,
+ 0.264582,0.319824,0.909785,0.066461,0.06867,-0.004932,
+ 0.193789,0.23425,0.952666,0.06637,0.068559,-0.004877,
+ 0.208115,0.22162,0.952666,0.067145,0.067876,-0.004877,
+ 0.264582,0.319824,0.909785,0.066461,0.06867,-0.004932,
+ 0.208115,0.22162,0.952666,0.067145,0.067876,-0.004877,
+ 0.284141,0.30258,0.909785,0.067243,0.06798,-0.004932,
+ 0.243978,0.335806,0.909785,0.065638,0.069308,-0.004932,
+ 0.178698,0.245956,0.952666,0.065554,0.069193,-0.004877,
+ 0.193789,0.23425,0.952666,0.06637,0.068559,-0.004877,
+ 0.243978,0.335806,0.909785,0.065638,0.069308,-0.004932,
+ 0.193789,0.23425,0.952666,0.06637,0.068559,-0.004877,
+ 0.264582,0.319824,0.909785,0.066461,0.06867,-0.004932,
+ 0.222411,0.350463,0.909785,0.064776,0.069894,-0.004932,
+ 0.162901,0.256692,0.952666,0.064699,0.069773,-0.004877,
+ 0.178698,0.245956,0.952666,0.065554,0.069193,-0.004877,
+ 0.222411,0.350463,0.909785,0.064776,0.069894,-0.004932,
+ 0.178698,0.245956,0.952666,0.065554,0.069193,-0.004877,
+ 0.243978,0.335806,0.909785,0.065638,0.069308,-0.004932,
+ 0.199966,0.363737,0.909785,0.063878,0.070425,-0.004932,
+ 0.146462,0.266414,0.952666,0.063809,0.070299,-0.004877,
+ 0.162901,0.256692,0.952666,0.064699,0.069773,-0.004877,
+ 0.199966,0.363737,0.909785,0.063878,0.070425,-0.004932,
+ 0.162901,0.256692,0.952666,0.064699,0.069773,-0.004877,
+ 0.222411,0.350463,0.909785,0.064776,0.069894,-0.004932,
+ 0.176732,0.375575,0.909785,0.06295,0.070898,-0.004932,
+ 0.129445,0.275084,0.952666,0.062889,0.070769,-0.004877,
+ 0.146462,0.266414,0.952666,0.063809,0.070299,-0.004877,
+ 0.176732,0.375575,0.909785,0.06295,0.070898,-0.004932,
+ 0.146462,0.266414,0.952666,0.063809,0.070299,-0.004877,
+ 0.199966,0.363737,0.909785,0.063878,0.070425,-0.004932,
+ 0.152801,0.385931,0.909785,0.061993,0.071312,-0.004932,
+ 0.111917,0.282669,0.952666,0.061941,0.071179,-0.004877,
+ 0.129445,0.275084,0.952666,0.062889,0.070769,-0.004877,
+ 0.152801,0.385931,0.909785,0.061993,0.071312,-0.004932,
+ 0.129445,0.275084,0.952666,0.062889,0.070769,-0.004877,
+ 0.176732,0.375575,0.909785,0.06295,0.070898,-0.004932,
+ 0.128267,0.394764,0.909785,0.061012,0.071665,-0.004932,
+ 0.093947,0.289139,0.952666,0.060968,0.071529,-0.004877,
+ 0.111917,0.282669,0.952666,0.061941,0.071179,-0.004877,
+ 0.128267,0.394764,0.909785,0.061012,0.071665,-0.004932,
+ 0.111917,0.282669,0.952666,0.061941,0.071179,-0.004877,
+ 0.152801,0.385931,0.909785,0.061993,0.071312,-0.004932,
+ 0.103226,0.402039,0.909785,0.060012,0.071956,-0.004932,
+ 0.075606,0.294467,0.952666,0.059976,0.071817,-0.004877,
+ 0.093947,0.289139,0.952666,0.060968,0.071529,-0.004877,
+ 0.103226,0.402039,0.909785,0.060012,0.071956,-0.004932,
+ 0.093947,0.289139,0.952666,0.060968,0.071529,-0.004877,
+ 0.128267,0.394764,0.909785,0.061012,0.071665,-0.004932,
+ 0.077778,0.407727,0.909785,0.058994,0.072183,-0.004932,
+ 0.056967,0.298634,0.952666,0.058967,0.072043,-0.004877,
+ 0.075606,0.294467,0.952666,0.059976,0.071817,-0.004877,
+ 0.077778,0.407727,0.909785,0.058994,0.072183,-0.004932,
+ 0.075606,0.294467,0.952666,0.059976,0.071817,-0.004877,
+ 0.103226,0.402039,0.909785,0.060012,0.071956,-0.004932,
+ 0.052023,0.411806,0.909785,0.057965,0.072346,-0.004932,
+ 0.038104,0.301621,0.952666,0.057947,0.072204,-0.004877,
+ 0.056967,0.298634,0.952666,0.058967,0.072043,-0.004877,
+ 0.052023,0.411806,0.909785,0.057965,0.072346,-0.004932,
+ 0.056967,0.298634,0.952666,0.058967,0.072043,-0.004877,
+ 0.077778,0.407727,0.909785,0.058994,0.072183,-0.004932,
+ 0.026063,0.41426,0.909785,0.056927,0.072444,-0.004932,
+ 0.019089,0.303419,0.952666,0.056918,0.072302,-0.004877,
+ 0.038104,0.301621,0.952666,0.057947,0.072204,-0.004877,
+ 0.026063,0.41426,0.909785,0.056927,0.072444,-0.004932,
+ 0.038104,0.301621,0.952666,0.057947,0.072204,-0.004877,
+ 0.052023,0.411806,0.909785,0.057965,0.072346,-0.004932,
+ 0,0.415079,0.909785,0.055885,0.072477,-0.004932,
+ 0,0.304019,0.952666,0.055885,0.072334,-0.004877,
+ 0.019089,0.303419,0.952666,0.056918,0.072302,-0.004877,
+ 0,0.415079,0.909785,0.055885,0.072477,-0.004932,
+ 0.019089,0.303419,0.952666,0.056918,0.072302,-0.004877,
+ 0.026063,0.41426,0.909785,0.056927,0.072444,-0.004932,
+ -0.026063,0.41426,0.909785,0.054844,0.072444,-0.004932,
+ -0.019089,0.303419,0.952666,0.054852,0.072302,-0.004877,
+ 0,0.304019,0.952666,0.055885,0.072334,-0.004877,
+ -0.026063,0.41426,0.909785,0.054844,0.072444,-0.004932,
+ 0,0.304019,0.952666,0.055885,0.072334,-0.004877,
+ 0,0.415079,0.909785,0.055885,0.072477,-0.004932,
+ -0.052023,0.411806,0.909785,0.053806,0.072346,-0.004932,
+ -0.038104,0.301621,0.952666,0.053824,0.072204,-0.004877,
+ -0.019089,0.303419,0.952666,0.054852,0.072302,-0.004877,
+ -0.052023,0.411806,0.909785,0.053806,0.072346,-0.004932,
+ -0.019089,0.303419,0.952666,0.054852,0.072302,-0.004877,
+ -0.026063,0.41426,0.909785,0.054844,0.072444,-0.004932,
+ -0.077778,0.407727,0.909785,0.052776,0.072183,-0.004932,
+ -0.056967,0.298634,0.952666,0.052803,0.072043,-0.004877,
+ -0.038104,0.301621,0.952666,0.053824,0.072204,-0.004877,
+ -0.077778,0.407727,0.909785,0.052776,0.072183,-0.004932,
+ -0.038104,0.301621,0.952666,0.053824,0.072204,-0.004877,
+ -0.052023,0.411806,0.909785,0.053806,0.072346,-0.004932,
+ -0.103226,0.402039,0.909785,0.051759,0.071956,-0.004932,
+ -0.075606,0.294467,0.952666,0.051795,0.071817,-0.004877,
+ -0.056967,0.298634,0.952666,0.052803,0.072043,-0.004877,
+ -0.103226,0.402039,0.909785,0.051759,0.071956,-0.004932,
+ -0.056967,0.298634,0.952666,0.052803,0.072043,-0.004877,
+ -0.077778,0.407727,0.909785,0.052776,0.072183,-0.004932,
+ -0.128267,0.394764,0.909785,0.050758,0.071665,-0.004932,
+ -0.093947,0.289139,0.952666,0.050802,0.071529,-0.004877,
+ -0.075606,0.294467,0.952666,0.051795,0.071817,-0.004877,
+ -0.128267,0.394764,0.909785,0.050758,0.071665,-0.004932,
+ -0.075606,0.294467,0.952666,0.051795,0.071817,-0.004877,
+ -0.103226,0.402039,0.909785,0.051759,0.071956,-0.004932,
+ -0.152801,0.385931,0.909785,0.049777,0.071312,-0.004932,
+ -0.111917,0.282669,0.952666,0.04983,0.071179,-0.004877,
+ -0.093947,0.289139,0.952666,0.050802,0.071529,-0.004877,
+ -0.152801,0.385931,0.909785,0.049777,0.071312,-0.004932,
+ -0.093947,0.289139,0.952666,0.050802,0.071529,-0.004877,
+ -0.128267,0.394764,0.909785,0.050758,0.071665,-0.004932,
+ -0.176732,0.375575,0.909785,0.048821,0.070898,-0.004932,
+ -0.129445,0.275084,0.952666,0.048882,0.070769,-0.004877,
+ -0.111917,0.282669,0.952666,0.04983,0.071179,-0.004877,
+ -0.176732,0.375575,0.909785,0.048821,0.070898,-0.004932,
+ -0.111917,0.282669,0.952666,0.04983,0.071179,-0.004877,
+ -0.152801,0.385931,0.909785,0.049777,0.071312,-0.004932,
+ -0.199966,0.363737,0.909785,0.047892,0.070425,-0.004932,
+ -0.146462,0.266414,0.952666,0.047961,0.070299,-0.004877,
+ -0.129445,0.275084,0.952666,0.048882,0.070769,-0.004877,
+ -0.199966,0.363737,0.909785,0.047892,0.070425,-0.004932,
+ -0.129445,0.275084,0.952666,0.048882,0.070769,-0.004877,
+ -0.176732,0.375575,0.909785,0.048821,0.070898,-0.004932,
+ -0.222411,0.350463,0.909785,0.046995,0.069894,-0.004932,
+ -0.162901,0.256692,0.952666,0.047072,0.069773,-0.004877,
+ -0.146462,0.266414,0.952666,0.047961,0.070299,-0.004877,
+ -0.222411,0.350463,0.909785,0.046995,0.069894,-0.004932,
+ -0.146462,0.266414,0.952666,0.047961,0.070299,-0.004877,
+ -0.199966,0.363737,0.909785,0.047892,0.070425,-0.004932,
+ -0.243978,0.335806,0.909785,0.046133,0.069308,-0.004932,
+ -0.178698,0.245956,0.952666,0.046217,0.069193,-0.004877,
+ -0.162901,0.256692,0.952666,0.047072,0.069773,-0.004877,
+ -0.243978,0.335806,0.909785,0.046133,0.069308,-0.004932,
+ -0.162901,0.256692,0.952666,0.047072,0.069773,-0.004877,
+ -0.222411,0.350463,0.909785,0.046995,0.069894,-0.004932,
+ -0.264582,0.319824,0.909785,0.045309,0.06867,-0.004932,
+ -0.193789,0.23425,0.952666,0.0454,0.068559,-0.004877,
+ -0.178698,0.245956,0.952666,0.046217,0.069193,-0.004877,
+ -0.264582,0.319824,0.909785,0.045309,0.06867,-0.004932,
+ -0.178698,0.245956,0.952666,0.046217,0.069193,-0.004877,
+ -0.243978,0.335806,0.909785,0.046133,0.069308,-0.004932,
+ -0.284141,0.30258,0.909785,0.044527,0.06798,-0.004932,
+ -0.208115,0.22162,0.952666,0.044625,0.067876,-0.004877,
+ -0.193789,0.23425,0.952666,0.0454,0.068559,-0.004877,
+ -0.284141,0.30258,0.909785,0.044527,0.06798,-0.004932,
+ -0.193789,0.23425,0.952666,0.0454,0.068559,-0.004877,
+ -0.264582,0.319824,0.909785,0.045309,0.06867,-0.004932,
+ -0.30258,0.284141,0.909785,0.04379,0.067243,-0.004932,
+ -0.22162,0.208115,0.952666,0.043895,0.067145,-0.004877,
+ -0.208115,0.22162,0.952666,0.044625,0.067876,-0.004877,
+ -0.30258,0.284141,0.909785,0.04379,0.067243,-0.004932,
+ -0.208115,0.22162,0.952666,0.044625,0.067876,-0.004877,
+ -0.284141,0.30258,0.909785,0.044527,0.06798,-0.004932,
+ -0.319824,0.264582,0.909785,0.043101,0.066461,-0.004932,
+ -0.23425,0.193789,0.952666,0.043211,0.06637,-0.004877,
+ -0.22162,0.208115,0.952666,0.043895,0.067145,-0.004877,
+ -0.319824,0.264582,0.909785,0.043101,0.066461,-0.004932,
+ -0.22162,0.208115,0.952666,0.043895,0.067145,-0.004877,
+ -0.30258,0.284141,0.909785,0.04379,0.067243,-0.004932,
+ -0.335806,0.243978,0.909785,0.042462,0.065638,-0.004932,
+ -0.245956,0.178698,0.952666,0.042578,0.065554,-0.004877,
+ -0.23425,0.193789,0.952666,0.043211,0.06637,-0.004877,
+ -0.335806,0.243978,0.909785,0.042462,0.065638,-0.004932,
+ -0.23425,0.193789,0.952666,0.043211,0.06637,-0.004877,
+ -0.319824,0.264582,0.909785,0.043101,0.066461,-0.004932,
+ -0.350463,0.222411,0.909785,0.041876,0.064776,-0.004932,
+ -0.256692,0.162901,0.952666,0.041997,0.064699,-0.004877,
+ -0.245956,0.178698,0.952666,0.042578,0.065554,-0.004877,
+ -0.350463,0.222411,0.909785,0.041876,0.064776,-0.004932,
+ -0.245956,0.178698,0.952666,0.042578,0.065554,-0.004877,
+ -0.335806,0.243978,0.909785,0.042462,0.065638,-0.004932,
+ -0.363737,0.199966,0.909785,0.041346,0.063878,-0.004932,
+ -0.266414,0.146462,0.952666,0.041471,0.063809,-0.004877,
+ -0.256692,0.162901,0.952666,0.041997,0.064699,-0.004877,
+ -0.363737,0.199966,0.909785,0.041346,0.063878,-0.004932,
+ -0.256692,0.162901,0.952666,0.041997,0.064699,-0.004877,
+ -0.350463,0.222411,0.909785,0.041876,0.064776,-0.004932,
+ -0.375575,0.176732,0.909785,0.040873,0.06295,-0.004932,
+ -0.275084,0.129445,0.952666,0.041002,0.062889,-0.004877,
+ -0.266414,0.146462,0.952666,0.041471,0.063809,-0.004877,
+ -0.375575,0.176732,0.909785,0.040873,0.06295,-0.004932,
+ -0.266414,0.146462,0.952666,0.041471,0.063809,-0.004877,
+ -0.363737,0.199966,0.909785,0.041346,0.063878,-0.004932,
+ -0.385931,0.152801,0.909785,0.040459,0.061993,-0.004932,
+ -0.282669,0.111917,0.952666,0.040592,0.061941,-0.004877,
+ -0.275084,0.129445,0.952666,0.041002,0.062889,-0.004877,
+ -0.385931,0.152801,0.909785,0.040459,0.061993,-0.004932,
+ -0.275084,0.129445,0.952666,0.041002,0.062889,-0.004877,
+ -0.375575,0.176732,0.909785,0.040873,0.06295,-0.004932,
+ -0.394764,0.128267,0.909785,0.040106,0.061012,-0.004932,
+ -0.289139,0.093947,0.952666,0.040242,0.060968,-0.004877,
+ -0.282669,0.111917,0.952666,0.040592,0.061941,-0.004877,
+ -0.394764,0.128267,0.909785,0.040106,0.061012,-0.004932,
+ -0.282669,0.111917,0.952666,0.040592,0.061941,-0.004877,
+ -0.385931,0.152801,0.909785,0.040459,0.061993,-0.004932,
+ -0.402039,0.103226,0.909785,0.039815,0.060012,-0.004932,
+ -0.294467,0.075606,0.952666,0.039953,0.059976,-0.004877,
+ -0.289139,0.093947,0.952666,0.040242,0.060968,-0.004877,
+ -0.402039,0.103226,0.909785,0.039815,0.060012,-0.004932,
+ -0.289139,0.093947,0.952666,0.040242,0.060968,-0.004877,
+ -0.394764,0.128267,0.909785,0.040106,0.061012,-0.004932,
+ -0.294467,0.075606,0.952666,0.039953,0.059976,-0.004877,
+ -0.182722,0.046915,0.982045,0.040097,0.059939,-0.004839,
+ -0.179416,0.058296,0.982045,0.040383,0.060922,-0.004839,
+ -0.294467,0.075606,0.952666,0.039953,0.059976,-0.004877,
+ -0.179416,0.058296,0.982045,0.040383,0.060922,-0.004839,
+ -0.289139,0.093947,0.952666,0.040242,0.060968,-0.004877,
+ -0.298634,0.056967,0.952666,0.039728,0.058967,-0.004877,
+ -0.185308,0.035349,0.982045,0.039874,0.05894,-0.004839,
+ -0.182722,0.046915,0.982045,0.040097,0.059939,-0.004839,
+ -0.298634,0.056967,0.952666,0.039728,0.058967,-0.004877,
+ -0.182722,0.046915,0.982045,0.040097,0.059939,-0.004839,
+ -0.294467,0.075606,0.952666,0.039953,0.059976,-0.004877,
+ -0.301621,0.038104,0.952666,0.039566,0.057947,-0.004877,
+ -0.187162,0.023644,0.982045,0.039714,0.057928,-0.004839,
+ -0.185308,0.035349,0.982045,0.039874,0.05894,-0.004839,
+ -0.301621,0.038104,0.952666,0.039566,0.057947,-0.004877,
+ -0.185308,0.035349,0.982045,0.039874,0.05894,-0.004839,
+ -0.298634,0.056967,0.952666,0.039728,0.058967,-0.004877,
+ -0.303419,0.019089,0.952666,0.039469,0.056918,-0.004877,
+ -0.188277,0.011845,0.982045,0.039617,0.056909,-0.004839,
+ -0.187162,0.023644,0.982045,0.039714,0.057928,-0.004839,
+ -0.303419,0.019089,0.952666,0.039469,0.056918,-0.004877,
+ -0.187162,0.023644,0.982045,0.039714,0.057928,-0.004839,
+ -0.301621,0.038104,0.952666,0.039566,0.057947,-0.004877,
+ -0.304019,0,0.952666,0.039437,0.055885,-0.004877,
+ -0.188649,0,0.982045,0.039585,0.055885,-0.004839,
+ -0.188277,0.011845,0.982045,0.039617,0.056909,-0.004839,
+ -0.304019,0,0.952666,0.039437,0.055885,-0.004877,
+ -0.188277,0.011845,0.982045,0.039617,0.056909,-0.004839,
+ -0.303419,0.019089,0.952666,0.039469,0.056918,-0.004877,
+ -0.303419,-0.019089,0.952666,0.039469,0.054852,-0.004877,
+ -0.188277,-0.011845,0.982045,0.039617,0.054862,-0.004839,
+ -0.188649,0,0.982045,0.039585,0.055885,-0.004839,
+ -0.303419,-0.019089,0.952666,0.039469,0.054852,-0.004877,
+ -0.188649,0,0.982045,0.039585,0.055885,-0.004839,
+ -0.304019,0,0.952666,0.039437,0.055885,-0.004877,
+ -0.301621,-0.038104,0.952666,0.039566,0.053824,-0.004877,
+ -0.187162,-0.023644,0.982045,0.039714,0.053842,-0.004839,
+ -0.188277,-0.011845,0.982045,0.039617,0.054862,-0.004839,
+ -0.301621,-0.038104,0.952666,0.039566,0.053824,-0.004877,
+ -0.188277,-0.011845,0.982045,0.039617,0.054862,-0.004839,
+ -0.303419,-0.019089,0.952666,0.039469,0.054852,-0.004877,
+ -0.298634,-0.056967,0.952666,0.039728,0.052803,-0.004877,
+ -0.185308,-0.035349,0.982045,0.039874,0.052831,-0.004839,
+ -0.187162,-0.023644,0.982045,0.039714,0.053842,-0.004839,
+ -0.298634,-0.056967,0.952666,0.039728,0.052803,-0.004877,
+ -0.187162,-0.023644,0.982045,0.039714,0.053842,-0.004839,
+ -0.301621,-0.038104,0.952666,0.039566,0.053824,-0.004877,
+ -0.294467,-0.075606,0.952666,0.039953,0.051795,-0.004877,
+ -0.182722,-0.046915,0.982045,0.040097,0.051832,-0.004839,
+ -0.185308,-0.035349,0.982045,0.039874,0.052831,-0.004839,
+ -0.294467,-0.075606,0.952666,0.039953,0.051795,-0.004877,
+ -0.185308,-0.035349,0.982045,0.039874,0.052831,-0.004839,
+ -0.298634,-0.056967,0.952666,0.039728,0.052803,-0.004877,
+ -0.289139,-0.093947,0.952666,0.040242,0.050802,-0.004877,
+ -0.179416,-0.058296,0.982045,0.040383,0.050848,-0.004839,
+ -0.182722,-0.046915,0.982045,0.040097,0.051832,-0.004839,
+ -0.289139,-0.093947,0.952666,0.040242,0.050802,-0.004877,
+ -0.182722,-0.046915,0.982045,0.040097,0.051832,-0.004839,
+ -0.294467,-0.075606,0.952666,0.039953,0.051795,-0.004877,
+ -0.282669,-0.111917,0.952666,0.040592,0.04983,-0.004877,
+ -0.175402,-0.069446,0.982045,0.04073,0.049885,-0.004839,
+ -0.179416,-0.058296,0.982045,0.040383,0.050848,-0.004839,
+ -0.282669,-0.111917,0.952666,0.040592,0.04983,-0.004877,
+ -0.179416,-0.058296,0.982045,0.040383,0.050848,-0.004839,
+ -0.289139,-0.093947,0.952666,0.040242,0.050802,-0.004877,
+ -0.275084,-0.129445,0.952666,0.041002,0.048882,-0.004877,
+ -0.170695,-0.080323,0.982045,0.041136,0.048945,-0.004839,
+ -0.175402,-0.069446,0.982045,0.04073,0.049885,-0.004839,
+ -0.275084,-0.129445,0.952666,0.041002,0.048882,-0.004877,
+ -0.175402,-0.069446,0.982045,0.04073,0.049885,-0.004839,
+ -0.282669,-0.111917,0.952666,0.040592,0.04983,-0.004877,
+ -0.266414,-0.146462,0.952666,0.041471,0.047961,-0.004877,
+ -0.165314,-0.090882,0.982045,0.041601,0.048033,-0.004839,
+ -0.170695,-0.080323,0.982045,0.041136,0.048945,-0.004839,
+ -0.266414,-0.146462,0.952666,0.041471,0.047961,-0.004877,
+ -0.170695,-0.080323,0.982045,0.041136,0.048945,-0.004839,
+ -0.275084,-0.129445,0.952666,0.041002,0.048882,-0.004877,
+ -0.256692,-0.162901,0.952666,0.041997,0.047072,-0.004877,
+ -0.159282,-0.101083,0.982045,0.042123,0.047151,-0.004839,
+ -0.165314,-0.090882,0.982045,0.041601,0.048033,-0.004839,
+ -0.256692,-0.162901,0.952666,0.041997,0.047072,-0.004877,
+ -0.165314,-0.090882,0.982045,0.041601,0.048033,-0.004839,
+ -0.266414,-0.146462,0.952666,0.041471,0.047961,-0.004877,
+ -0.245956,-0.178698,0.952666,0.042578,0.046217,-0.004877,
+ -0.15262,-0.110885,0.982045,0.042698,0.046304,-0.004839,
+ -0.159282,-0.101083,0.982045,0.042123,0.047151,-0.004839,
+ -0.245956,-0.178698,0.952666,0.042578,0.046217,-0.004877,
+ -0.159282,-0.101083,0.982045,0.042123,0.047151,-0.004839,
+ -0.256692,-0.162901,0.952666,0.041997,0.047072,-0.004877,
+ -0.23425,-0.193789,0.952666,0.043211,0.0454,-0.004877,
+ -0.145357,-0.120249,0.982045,0.043326,0.045495,-0.004839,
+ -0.15262,-0.110885,0.982045,0.042698,0.046304,-0.004839,
+ -0.23425,-0.193789,0.952666,0.043211,0.0454,-0.004877,
+ -0.15262,-0.110885,0.982045,0.042698,0.046304,-0.004839,
+ -0.245956,-0.178698,0.952666,0.042578,0.046217,-0.004877,
+ -0.22162,-0.208115,0.952666,0.043895,0.044625,-0.004877,
+ -0.137519,-0.129139,0.982045,0.044003,0.044727,-0.004839,
+ -0.145357,-0.120249,0.982045,0.043326,0.045495,-0.004839,
+ -0.22162,-0.208115,0.952666,0.043895,0.044625,-0.004877,
+ -0.145357,-0.120249,0.982045,0.043326,0.045495,-0.004839,
+ -0.23425,-0.193789,0.952666,0.043211,0.0454,-0.004877,
+ -0.208115,-0.22162,0.952666,0.044625,0.043895,-0.004877,
+ -0.129139,-0.137519,0.982045,0.044727,0.044003,-0.004839,
+ -0.137519,-0.129139,0.982045,0.044003,0.044727,-0.004839,
+ -0.208115,-0.22162,0.952666,0.044625,0.043895,-0.004877,
+ -0.137519,-0.129139,0.982045,0.044003,0.044727,-0.004839,
+ -0.22162,-0.208115,0.952666,0.043895,0.044625,-0.004877,
+ -0.193789,-0.23425,0.952666,0.0454,0.043211,-0.004877,
+ -0.120249,-0.145357,0.982045,0.045495,0.043326,-0.004839,
+ -0.129139,-0.137519,0.982045,0.044727,0.044003,-0.004839,
+ -0.193789,-0.23425,0.952666,0.0454,0.043211,-0.004877,
+ -0.129139,-0.137519,0.982045,0.044727,0.044003,-0.004839,
+ -0.208115,-0.22162,0.952666,0.044625,0.043895,-0.004877,
+ -0.178698,-0.245956,0.952666,0.046217,0.042578,-0.004877,
+ -0.110885,-0.15262,0.982045,0.046304,0.042698,-0.004839,
+ -0.120249,-0.145357,0.982045,0.045495,0.043326,-0.004839,
+ -0.178698,-0.245956,0.952666,0.046217,0.042578,-0.004877,
+ -0.120249,-0.145357,0.982045,0.045495,0.043326,-0.004839,
+ -0.193789,-0.23425,0.952666,0.0454,0.043211,-0.004877,
+ -0.162901,-0.256692,0.952666,0.047072,0.041997,-0.004877,
+ -0.101083,-0.159282,0.982045,0.047151,0.042123,-0.004839,
+ -0.110885,-0.15262,0.982045,0.046304,0.042698,-0.004839,
+ -0.162901,-0.256692,0.952666,0.047072,0.041997,-0.004877,
+ -0.110885,-0.15262,0.982045,0.046304,0.042698,-0.004839,
+ -0.178698,-0.245956,0.952666,0.046217,0.042578,-0.004877,
+ -0.146462,-0.266414,0.952666,0.047961,0.041471,-0.004877,
+ -0.090882,-0.165314,0.982045,0.048033,0.041601,-0.004839,
+ -0.101083,-0.159282,0.982045,0.047151,0.042123,-0.004839,
+ -0.146462,-0.266414,0.952666,0.047961,0.041471,-0.004877,
+ -0.101083,-0.159282,0.982045,0.047151,0.042123,-0.004839,
+ -0.162901,-0.256692,0.952666,0.047072,0.041997,-0.004877,
+ -0.129445,-0.275084,0.952666,0.048882,0.041002,-0.004877,
+ -0.080323,-0.170695,0.982045,0.048945,0.041136,-0.004839,
+ -0.090882,-0.165314,0.982045,0.048033,0.041601,-0.004839,
+ -0.129445,-0.275084,0.952666,0.048882,0.041002,-0.004877,
+ -0.090882,-0.165314,0.982045,0.048033,0.041601,-0.004839,
+ -0.146462,-0.266414,0.952666,0.047961,0.041471,-0.004877,
+ -0.111917,-0.282669,0.952666,0.04983,0.040592,-0.004877,
+ -0.069446,-0.175402,0.982045,0.049885,0.04073,-0.004839,
+ -0.080323,-0.170695,0.982045,0.048945,0.041136,-0.004839,
+ -0.111917,-0.282669,0.952666,0.04983,0.040592,-0.004877,
+ -0.080323,-0.170695,0.982045,0.048945,0.041136,-0.004839,
+ -0.129445,-0.275084,0.952666,0.048882,0.041002,-0.004877,
+ -0.093947,-0.289139,0.952666,0.050802,0.040242,-0.004877,
+ -0.058296,-0.179416,0.982045,0.050848,0.040383,-0.004839,
+ -0.069446,-0.175402,0.982045,0.049885,0.04073,-0.004839,
+ -0.093947,-0.289139,0.952666,0.050802,0.040242,-0.004877,
+ -0.069446,-0.175402,0.982045,0.049885,0.04073,-0.004839,
+ -0.111917,-0.282669,0.952666,0.04983,0.040592,-0.004877,
+ -0.075606,-0.294467,0.952666,0.051795,0.039953,-0.004877,
+ -0.046915,-0.182722,0.982045,0.051832,0.040097,-0.004839,
+ -0.058296,-0.179416,0.982045,0.050848,0.040383,-0.004839,
+ -0.075606,-0.294467,0.952666,0.051795,0.039953,-0.004877,
+ -0.058296,-0.179416,0.982045,0.050848,0.040383,-0.004839,
+ -0.093947,-0.289139,0.952666,0.050802,0.040242,-0.004877,
+ -0.056967,-0.298634,0.952666,0.052803,0.039728,-0.004877,
+ -0.035349,-0.185308,0.982045,0.052831,0.039874,-0.004839,
+ -0.046915,-0.182722,0.982045,0.051832,0.040097,-0.004839,
+ -0.056967,-0.298634,0.952666,0.052803,0.039728,-0.004877,
+ -0.046915,-0.182722,0.982045,0.051832,0.040097,-0.004839,
+ -0.075606,-0.294467,0.952666,0.051795,0.039953,-0.004877,
+ -0.038104,-0.301621,0.952666,0.053824,0.039566,-0.004877,
+ -0.023644,-0.187162,0.982045,0.053842,0.039714,-0.004839,
+ -0.035349,-0.185308,0.982045,0.052831,0.039874,-0.004839,
+ -0.038104,-0.301621,0.952666,0.053824,0.039566,-0.004877,
+ -0.035349,-0.185308,0.982045,0.052831,0.039874,-0.004839,
+ -0.056967,-0.298634,0.952666,0.052803,0.039728,-0.004877,
+ -0.019089,-0.303419,0.952666,0.054852,0.039469,-0.004877,
+ -0.011845,-0.188277,0.982045,0.054862,0.039617,-0.004839,
+ -0.023644,-0.187162,0.982045,0.053842,0.039714,-0.004839,
+ -0.019089,-0.303419,0.952666,0.054852,0.039469,-0.004877,
+ -0.023644,-0.187162,0.982045,0.053842,0.039714,-0.004839,
+ -0.038104,-0.301621,0.952666,0.053824,0.039566,-0.004877,
+ 0,-0.304019,0.952666,0.055885,0.039437,-0.004877,
+ 0,-0.188649,0.982045,0.055885,0.039585,-0.004839,
+ -0.011845,-0.188277,0.982045,0.054862,0.039617,-0.004839,
+ 0,-0.304019,0.952666,0.055885,0.039437,-0.004877,
+ -0.011845,-0.188277,0.982045,0.054862,0.039617,-0.004839,
+ -0.019089,-0.303419,0.952666,0.054852,0.039469,-0.004877,
+ 0.019089,-0.303419,0.952666,0.056918,0.039469,-0.004877,
+ 0.011845,-0.188277,0.982045,0.056909,0.039617,-0.004839,
+ 0,-0.188649,0.982045,0.055885,0.039585,-0.004839,
+ 0.019089,-0.303419,0.952666,0.056918,0.039469,-0.004877,
+ 0,-0.188649,0.982045,0.055885,0.039585,-0.004839,
+ 0,-0.304019,0.952666,0.055885,0.039437,-0.004877,
+ 0.038104,-0.301621,0.952666,0.057947,0.039566,-0.004877,
+ 0.023644,-0.187162,0.982045,0.057928,0.039714,-0.004839,
+ 0.011845,-0.188277,0.982045,0.056909,0.039617,-0.004839,
+ 0.038104,-0.301621,0.952666,0.057947,0.039566,-0.004877,
+ 0.011845,-0.188277,0.982045,0.056909,0.039617,-0.004839,
+ 0.019089,-0.303419,0.952666,0.056918,0.039469,-0.004877,
+ 0.056967,-0.298634,0.952666,0.058967,0.039728,-0.004877,
+ 0.035349,-0.185308,0.982045,0.05894,0.039874,-0.004839,
+ 0.023644,-0.187162,0.982045,0.057928,0.039714,-0.004839,
+ 0.056967,-0.298634,0.952666,0.058967,0.039728,-0.004877,
+ 0.023644,-0.187162,0.982045,0.057928,0.039714,-0.004839,
+ 0.038104,-0.301621,0.952666,0.057947,0.039566,-0.004877,
+ 0.075606,-0.294467,0.952666,0.059976,0.039953,-0.004877,
+ 0.046915,-0.182722,0.982045,0.059939,0.040097,-0.004839,
+ 0.035349,-0.185308,0.982045,0.05894,0.039874,-0.004839,
+ 0.075606,-0.294467,0.952666,0.059976,0.039953,-0.004877,
+ 0.035349,-0.185308,0.982045,0.05894,0.039874,-0.004839,
+ 0.056967,-0.298634,0.952666,0.058967,0.039728,-0.004877,
+ 0.093947,-0.289139,0.952666,0.060968,0.040242,-0.004877,
+ 0.058296,-0.179416,0.982045,0.060922,0.040383,-0.004839,
+ 0.046915,-0.182722,0.982045,0.059939,0.040097,-0.004839,
+ 0.093947,-0.289139,0.952666,0.060968,0.040242,-0.004877,
+ 0.046915,-0.182722,0.982045,0.059939,0.040097,-0.004839,
+ 0.075606,-0.294467,0.952666,0.059976,0.039953,-0.004877,
+ 0.111917,-0.282669,0.952666,0.061941,0.040592,-0.004877,
+ 0.069446,-0.175402,0.982045,0.061886,0.04073,-0.004839,
+ 0.058296,-0.179416,0.982045,0.060922,0.040383,-0.004839,
+ 0.111917,-0.282669,0.952666,0.061941,0.040592,-0.004877,
+ 0.058296,-0.179416,0.982045,0.060922,0.040383,-0.004839,
+ 0.093947,-0.289139,0.952666,0.060968,0.040242,-0.004877,
+ 0.129445,-0.275084,0.952666,0.062889,0.041002,-0.004877,
+ 0.080323,-0.170695,0.982045,0.062825,0.041136,-0.004839,
+ 0.069446,-0.175402,0.982045,0.061886,0.04073,-0.004839,
+ 0.129445,-0.275084,0.952666,0.062889,0.041002,-0.004877,
+ 0.069446,-0.175402,0.982045,0.061886,0.04073,-0.004839,
+ 0.111917,-0.282669,0.952666,0.061941,0.040592,-0.004877,
+ 0.146462,-0.266414,0.952666,0.063809,0.041471,-0.004877,
+ 0.090882,-0.165314,0.982045,0.063738,0.041601,-0.004839,
+ 0.080323,-0.170695,0.982045,0.062825,0.041136,-0.004839,
+ 0.146462,-0.266414,0.952666,0.063809,0.041471,-0.004877,
+ 0.080323,-0.170695,0.982045,0.062825,0.041136,-0.004839,
+ 0.129445,-0.275084,0.952666,0.062889,0.041002,-0.004877,
+ 0.162901,-0.256692,0.952666,0.064699,0.041997,-0.004877,
+ 0.101083,-0.159282,0.982045,0.064619,0.042123,-0.004839,
+ 0.090882,-0.165314,0.982045,0.063738,0.041601,-0.004839,
+ 0.162901,-0.256692,0.952666,0.064699,0.041997,-0.004877,
+ 0.090882,-0.165314,0.982045,0.063738,0.041601,-0.004839,
+ 0.146462,-0.266414,0.952666,0.063809,0.041471,-0.004877,
+ 0.178698,-0.245956,0.952666,0.065554,0.042578,-0.004877,
+ 0.110885,-0.15262,0.982045,0.065466,0.042698,-0.004839,
+ 0.101083,-0.159282,0.982045,0.064619,0.042123,-0.004839,
+ 0.178698,-0.245956,0.952666,0.065554,0.042578,-0.004877,
+ 0.101083,-0.159282,0.982045,0.064619,0.042123,-0.004839,
+ 0.162901,-0.256692,0.952666,0.064699,0.041997,-0.004877,
+ 0.193789,-0.23425,0.952666,0.06637,0.043211,-0.004877,
+ 0.120249,-0.145357,0.982045,0.066275,0.043326,-0.004839,
+ 0.110885,-0.15262,0.982045,0.065466,0.042698,-0.004839,
+ 0.193789,-0.23425,0.952666,0.06637,0.043211,-0.004877,
+ 0.110885,-0.15262,0.982045,0.065466,0.042698,-0.004839,
+ 0.178698,-0.245956,0.952666,0.065554,0.042578,-0.004877,
+ 0.208115,-0.22162,0.952666,0.067145,0.043895,-0.004877,
+ 0.129139,-0.137519,0.982045,0.067043,0.044003,-0.004839,
+ 0.120249,-0.145357,0.982045,0.066275,0.043326,-0.004839,
+ 0.208115,-0.22162,0.952666,0.067145,0.043895,-0.004877,
+ 0.120249,-0.145357,0.982045,0.066275,0.043326,-0.004839,
+ 0.193789,-0.23425,0.952666,0.06637,0.043211,-0.004877,
+ 0.22162,-0.208115,0.952666,0.067876,0.044625,-0.004877,
+ 0.137519,-0.129139,0.982045,0.067768,0.044727,-0.004839,
+ 0.129139,-0.137519,0.982045,0.067043,0.044003,-0.004839,
+ 0.22162,-0.208115,0.952666,0.067876,0.044625,-0.004877,
+ 0.129139,-0.137519,0.982045,0.067043,0.044003,-0.004839,
+ 0.208115,-0.22162,0.952666,0.067145,0.043895,-0.004877,
+ 0.23425,-0.193789,0.952666,0.068559,0.0454,-0.004877,
+ 0.145357,-0.120249,0.982045,0.068445,0.045495,-0.004839,
+ 0.137519,-0.129139,0.982045,0.067768,0.044727,-0.004839,
+ 0.23425,-0.193789,0.952666,0.068559,0.0454,-0.004877,
+ 0.137519,-0.129139,0.982045,0.067768,0.044727,-0.004839,
+ 0.22162,-0.208115,0.952666,0.067876,0.044625,-0.004877,
+ 0.245956,-0.178698,0.952666,0.069193,0.046217,-0.004877,
+ 0.15262,-0.110885,0.982045,0.069072,0.046304,-0.004839,
+ 0.145357,-0.120249,0.982045,0.068445,0.045495,-0.004839,
+ 0.245956,-0.178698,0.952666,0.069193,0.046217,-0.004877,
+ 0.145357,-0.120249,0.982045,0.068445,0.045495,-0.004839,
+ 0.23425,-0.193789,0.952666,0.068559,0.0454,-0.004877,
+ 0.256692,-0.162901,0.952666,0.069773,0.047072,-0.004877,
+ 0.159282,-0.101083,0.982045,0.069648,0.047151,-0.004839,
+ 0.15262,-0.110885,0.982045,0.069072,0.046304,-0.004839,
+ 0.256692,-0.162901,0.952666,0.069773,0.047072,-0.004877,
+ 0.15262,-0.110885,0.982045,0.069072,0.046304,-0.004839,
+ 0.245956,-0.178698,0.952666,0.069193,0.046217,-0.004877,
+ 0.266414,-0.146462,0.952666,0.070299,0.047961,-0.004877,
+ 0.165314,-0.090882,0.982045,0.070169,0.048033,-0.004839,
+ 0.159282,-0.101083,0.982045,0.069648,0.047151,-0.004839,
+ 0.266414,-0.146462,0.952666,0.070299,0.047961,-0.004877,
+ 0.159282,-0.101083,0.982045,0.069648,0.047151,-0.004839,
+ 0.256692,-0.162901,0.952666,0.069773,0.047072,-0.004877,
+ 0.275084,-0.129445,0.952666,0.070769,0.048882,-0.004877,
+ 0.170695,-0.080323,0.982045,0.070634,0.048945,-0.004839,
+ 0.165314,-0.090882,0.982045,0.070169,0.048033,-0.004839,
+ 0.275084,-0.129445,0.952666,0.070769,0.048882,-0.004877,
+ 0.165314,-0.090882,0.982045,0.070169,0.048033,-0.004839,
+ 0.266414,-0.146462,0.952666,0.070299,0.047961,-0.004877,
+ 0.282669,-0.111917,0.952666,0.071179,0.04983,-0.004877,
+ 0.175402,-0.069446,0.982045,0.071041,0.049885,-0.004839,
+ 0.170695,-0.080323,0.982045,0.070634,0.048945,-0.004839,
+ 0.282669,-0.111917,0.952666,0.071179,0.04983,-0.004877,
+ 0.170695,-0.080323,0.982045,0.070634,0.048945,-0.004839,
+ 0.275084,-0.129445,0.952666,0.070769,0.048882,-0.004877,
+ 0.289139,-0.093947,0.952666,0.071529,0.050802,-0.004877,
+ 0.179416,-0.058296,0.982045,0.071388,0.050848,-0.004839,
+ 0.175402,-0.069446,0.982045,0.071041,0.049885,-0.004839,
+ 0.289139,-0.093947,0.952666,0.071529,0.050802,-0.004877,
+ 0.175402,-0.069446,0.982045,0.071041,0.049885,-0.004839,
+ 0.282669,-0.111917,0.952666,0.071179,0.04983,-0.004877,
+ 0.294467,-0.075606,0.952666,0.071817,0.051795,-0.004877,
+ 0.182722,-0.046915,0.982045,0.071673,0.051832,-0.004839,
+ 0.179416,-0.058296,0.982045,0.071388,0.050848,-0.004839,
+ 0.294467,-0.075606,0.952666,0.071817,0.051795,-0.004877,
+ 0.179416,-0.058296,0.982045,0.071388,0.050848,-0.004839,
+ 0.289139,-0.093947,0.952666,0.071529,0.050802,-0.004877,
+ 0.298634,-0.056967,0.952666,0.072043,0.052803,-0.004877,
+ 0.185308,-0.035349,0.982045,0.071897,0.052831,-0.004839,
+ 0.182722,-0.046915,0.982045,0.071673,0.051832,-0.004839,
+ 0.298634,-0.056967,0.952666,0.072043,0.052803,-0.004877,
+ 0.182722,-0.046915,0.982045,0.071673,0.051832,-0.004839,
+ 0.294467,-0.075606,0.952666,0.071817,0.051795,-0.004877,
+ 0.301621,-0.038104,0.952666,0.072204,0.053824,-0.004877,
+ 0.187162,-0.023644,0.982045,0.072057,0.053842,-0.004839,
+ 0.185308,-0.035349,0.982045,0.071897,0.052831,-0.004839,
+ 0.301621,-0.038104,0.952666,0.072204,0.053824,-0.004877,
+ 0.185308,-0.035349,0.982045,0.071897,0.052831,-0.004839,
+ 0.298634,-0.056967,0.952666,0.072043,0.052803,-0.004877,
+ 0.303419,-0.019089,0.952666,0.072302,0.054852,-0.004877,
+ 0.188277,-0.011845,0.982045,0.072153,0.054862,-0.004839,
+ 0.187162,-0.023644,0.982045,0.072057,0.053842,-0.004839,
+ 0.303419,-0.019089,0.952666,0.072302,0.054852,-0.004877,
+ 0.187162,-0.023644,0.982045,0.072057,0.053842,-0.004839,
+ 0.301621,-0.038104,0.952666,0.072204,0.053824,-0.004877,
+ 0.304019,0,0.952666,0.072334,0.055885,-0.004877,
+ 0.188649,0,0.982045,0.072186,0.055885,-0.004839,
+ 0.188277,-0.011845,0.982045,0.072153,0.054862,-0.004839,
+ 0.304019,0,0.952666,0.072334,0.055885,-0.004877,
+ 0.188277,-0.011845,0.982045,0.072153,0.054862,-0.004839,
+ 0.303419,-0.019089,0.952666,0.072302,0.054852,-0.004877,
+ 0.303419,0.019089,0.952666,0.072302,0.056918,-0.004877,
+ 0.188277,0.011845,0.982045,0.072153,0.056909,-0.004839,
+ 0.188649,0,0.982045,0.072186,0.055885,-0.004839,
+ 0.303419,0.019089,0.952666,0.072302,0.056918,-0.004877,
+ 0.188649,0,0.982045,0.072186,0.055885,-0.004839,
+ 0.304019,0,0.952666,0.072334,0.055885,-0.004877,
+ 0.301621,0.038104,0.952666,0.072204,0.057947,-0.004877,
+ 0.187162,0.023644,0.982045,0.072057,0.057928,-0.004839,
+ 0.188277,0.011845,0.982045,0.072153,0.056909,-0.004839,
+ 0.301621,0.038104,0.952666,0.072204,0.057947,-0.004877,
+ 0.188277,0.011845,0.982045,0.072153,0.056909,-0.004839,
+ 0.303419,0.019089,0.952666,0.072302,0.056918,-0.004877,
+ 0.298634,0.056967,0.952666,0.072043,0.058967,-0.004877,
+ 0.185308,0.035349,0.982045,0.071897,0.05894,-0.004839,
+ 0.187162,0.023644,0.982045,0.072057,0.057928,-0.004839,
+ 0.298634,0.056967,0.952666,0.072043,0.058967,-0.004877,
+ 0.187162,0.023644,0.982045,0.072057,0.057928,-0.004839,
+ 0.301621,0.038104,0.952666,0.072204,0.057947,-0.004877,
+ 0.294467,0.075606,0.952666,0.071817,0.059976,-0.004877,
+ 0.182722,0.046915,0.982045,0.071673,0.059939,-0.004839,
+ 0.185308,0.035349,0.982045,0.071897,0.05894,-0.004839,
+ 0.294467,0.075606,0.952666,0.071817,0.059976,-0.004877,
+ 0.185308,0.035349,0.982045,0.071897,0.05894,-0.004839,
+ 0.298634,0.056967,0.952666,0.072043,0.058967,-0.004877,
+ 0.289139,0.093947,0.952666,0.071529,0.060968,-0.004877,
+ 0.179416,0.058296,0.982045,0.071388,0.060922,-0.004839,
+ 0.182722,0.046915,0.982045,0.071673,0.059939,-0.004839,
+ 0.289139,0.093947,0.952666,0.071529,0.060968,-0.004877,
+ 0.182722,0.046915,0.982045,0.071673,0.059939,-0.004839,
+ 0.294467,0.075606,0.952666,0.071817,0.059976,-0.004877,
+ 0.282669,0.111917,0.952666,0.071179,0.061941,-0.004877,
+ 0.175402,0.069446,0.982045,0.071041,0.061886,-0.004839,
+ 0.179416,0.058296,0.982045,0.071388,0.060922,-0.004839,
+ 0.282669,0.111917,0.952666,0.071179,0.061941,-0.004877,
+ 0.179416,0.058296,0.982045,0.071388,0.060922,-0.004839,
+ 0.289139,0.093947,0.952666,0.071529,0.060968,-0.004877,
+ 0.275084,0.129445,0.952666,0.070769,0.062889,-0.004877,
+ 0.170695,0.080323,0.982045,0.070634,0.062825,-0.004839,
+ 0.175402,0.069446,0.982045,0.071041,0.061886,-0.004839,
+ 0.275084,0.129445,0.952666,0.070769,0.062889,-0.004877,
+ 0.175402,0.069446,0.982045,0.071041,0.061886,-0.004839,
+ 0.282669,0.111917,0.952666,0.071179,0.061941,-0.004877,
+ 0.266414,0.146462,0.952666,0.070299,0.063809,-0.004877,
+ 0.165314,0.090882,0.982045,0.070169,0.063738,-0.004839,
+ 0.170695,0.080323,0.982045,0.070634,0.062825,-0.004839,
+ 0.266414,0.146462,0.952666,0.070299,0.063809,-0.004877,
+ 0.170695,0.080323,0.982045,0.070634,0.062825,-0.004839,
+ 0.275084,0.129445,0.952666,0.070769,0.062889,-0.004877,
+ 0.256692,0.162901,0.952666,0.069773,0.064699,-0.004877,
+ 0.159282,0.101083,0.982045,0.069648,0.064619,-0.004839,
+ 0.165314,0.090882,0.982045,0.070169,0.063738,-0.004839,
+ 0.256692,0.162901,0.952666,0.069773,0.064699,-0.004877,
+ 0.165314,0.090882,0.982045,0.070169,0.063738,-0.004839,
+ 0.266414,0.146462,0.952666,0.070299,0.063809,-0.004877,
+ 0.245956,0.178698,0.952666,0.069193,0.065554,-0.004877,
+ 0.15262,0.110885,0.982045,0.069072,0.065466,-0.004839,
+ 0.159282,0.101083,0.982045,0.069648,0.064619,-0.004839,
+ 0.245956,0.178698,0.952666,0.069193,0.065554,-0.004877,
+ 0.159282,0.101083,0.982045,0.069648,0.064619,-0.004839,
+ 0.256692,0.162901,0.952666,0.069773,0.064699,-0.004877,
+ 0.23425,0.193789,0.952666,0.068559,0.06637,-0.004877,
+ 0.145357,0.120249,0.982045,0.068445,0.066275,-0.004839,
+ 0.15262,0.110885,0.982045,0.069072,0.065466,-0.004839,
+ 0.23425,0.193789,0.952666,0.068559,0.06637,-0.004877,
+ 0.15262,0.110885,0.982045,0.069072,0.065466,-0.004839,
+ 0.245956,0.178698,0.952666,0.069193,0.065554,-0.004877,
+ 0.22162,0.208115,0.952666,0.067876,0.067145,-0.004877,
+ 0.137519,0.129139,0.982045,0.067768,0.067043,-0.004839,
+ 0.145357,0.120249,0.982045,0.068445,0.066275,-0.004839,
+ 0.22162,0.208115,0.952666,0.067876,0.067145,-0.004877,
+ 0.145357,0.120249,0.982045,0.068445,0.066275,-0.004839,
+ 0.23425,0.193789,0.952666,0.068559,0.06637,-0.004877,
+ 0.208115,0.22162,0.952666,0.067145,0.067876,-0.004877,
+ 0.129139,0.137519,0.982045,0.067043,0.067768,-0.004839,
+ 0.137519,0.129139,0.982045,0.067768,0.067043,-0.004839,
+ 0.208115,0.22162,0.952666,0.067145,0.067876,-0.004877,
+ 0.137519,0.129139,0.982045,0.067768,0.067043,-0.004839,
+ 0.22162,0.208115,0.952666,0.067876,0.067145,-0.004877,
+ 0.193789,0.23425,0.952666,0.06637,0.068559,-0.004877,
+ 0.120249,0.145357,0.982045,0.066275,0.068445,-0.004839,
+ 0.129139,0.137519,0.982045,0.067043,0.067768,-0.004839,
+ 0.193789,0.23425,0.952666,0.06637,0.068559,-0.004877,
+ 0.129139,0.137519,0.982045,0.067043,0.067768,-0.004839,
+ 0.208115,0.22162,0.952666,0.067145,0.067876,-0.004877,
+ 0.178698,0.245956,0.952666,0.065554,0.069193,-0.004877,
+ 0.110885,0.15262,0.982045,0.065466,0.069072,-0.004839,
+ 0.120249,0.145357,0.982045,0.066275,0.068445,-0.004839,
+ 0.178698,0.245956,0.952666,0.065554,0.069193,-0.004877,
+ 0.120249,0.145357,0.982045,0.066275,0.068445,-0.004839,
+ 0.193789,0.23425,0.952666,0.06637,0.068559,-0.004877,
+ 0.162901,0.256692,0.952666,0.064699,0.069773,-0.004877,
+ 0.101083,0.159282,0.982045,0.064619,0.069648,-0.004839,
+ 0.110885,0.15262,0.982045,0.065466,0.069072,-0.004839,
+ 0.162901,0.256692,0.952666,0.064699,0.069773,-0.004877,
+ 0.110885,0.15262,0.982045,0.065466,0.069072,-0.004839,
+ 0.178698,0.245956,0.952666,0.065554,0.069193,-0.004877,
+ 0.146462,0.266414,0.952666,0.063809,0.070299,-0.004877,
+ 0.090882,0.165314,0.982045,0.063738,0.070169,-0.004839,
+ 0.101083,0.159282,0.982045,0.064619,0.069648,-0.004839,
+ 0.146462,0.266414,0.952666,0.063809,0.070299,-0.004877,
+ 0.101083,0.159282,0.982045,0.064619,0.069648,-0.004839,
+ 0.162901,0.256692,0.952666,0.064699,0.069773,-0.004877,
+ 0.129445,0.275084,0.952666,0.062889,0.070769,-0.004877,
+ 0.080323,0.170695,0.982045,0.062825,0.070634,-0.004839,
+ 0.090882,0.165314,0.982045,0.063738,0.070169,-0.004839,
+ 0.129445,0.275084,0.952666,0.062889,0.070769,-0.004877,
+ 0.090882,0.165314,0.982045,0.063738,0.070169,-0.004839,
+ 0.146462,0.266414,0.952666,0.063809,0.070299,-0.004877,
+ 0.111917,0.282669,0.952666,0.061941,0.071179,-0.004877,
+ 0.069446,0.175402,0.982045,0.061886,0.071041,-0.004839,
+ 0.080323,0.170695,0.982045,0.062825,0.070634,-0.004839,
+ 0.111917,0.282669,0.952666,0.061941,0.071179,-0.004877,
+ 0.080323,0.170695,0.982045,0.062825,0.070634,-0.004839,
+ 0.129445,0.275084,0.952666,0.062889,0.070769,-0.004877,
+ 0.093947,0.289139,0.952666,0.060968,0.071529,-0.004877,
+ 0.058296,0.179416,0.982045,0.060922,0.071388,-0.004839,
+ 0.069446,0.175402,0.982045,0.061886,0.071041,-0.004839,
+ 0.093947,0.289139,0.952666,0.060968,0.071529,-0.004877,
+ 0.069446,0.175402,0.982045,0.061886,0.071041,-0.004839,
+ 0.111917,0.282669,0.952666,0.061941,0.071179,-0.004877,
+ 0.075606,0.294467,0.952666,0.059976,0.071817,-0.004877,
+ 0.046915,0.182722,0.982045,0.059939,0.071673,-0.004839,
+ 0.058296,0.179416,0.982045,0.060922,0.071388,-0.004839,
+ 0.075606,0.294467,0.952666,0.059976,0.071817,-0.004877,
+ 0.058296,0.179416,0.982045,0.060922,0.071388,-0.004839,
+ 0.093947,0.289139,0.952666,0.060968,0.071529,-0.004877,
+ 0.056967,0.298634,0.952666,0.058967,0.072043,-0.004877,
+ 0.035349,0.185308,0.982045,0.05894,0.071897,-0.004839,
+ 0.046915,0.182722,0.982045,0.059939,0.071673,-0.004839,
+ 0.056967,0.298634,0.952666,0.058967,0.072043,-0.004877,
+ 0.046915,0.182722,0.982045,0.059939,0.071673,-0.004839,
+ 0.075606,0.294467,0.952666,0.059976,0.071817,-0.004877,
+ 0.038104,0.301621,0.952666,0.057947,0.072204,-0.004877,
+ 0.023644,0.187162,0.982045,0.057928,0.072057,-0.004839,
+ 0.035349,0.185308,0.982045,0.05894,0.071897,-0.004839,
+ 0.038104,0.301621,0.952666,0.057947,0.072204,-0.004877,
+ 0.035349,0.185308,0.982045,0.05894,0.071897,-0.004839,
+ 0.056967,0.298634,0.952666,0.058967,0.072043,-0.004877,
+ 0.019089,0.303419,0.952666,0.056918,0.072302,-0.004877,
+ 0.011845,0.188277,0.982045,0.056909,0.072153,-0.004839,
+ 0.023644,0.187162,0.982045,0.057928,0.072057,-0.004839,
+ 0.019089,0.303419,0.952666,0.056918,0.072302,-0.004877,
+ 0.023644,0.187162,0.982045,0.057928,0.072057,-0.004839,
+ 0.038104,0.301621,0.952666,0.057947,0.072204,-0.004877,
+ 0,0.304019,0.952666,0.055885,0.072334,-0.004877,
+ 0,0.188649,0.982045,0.055885,0.072186,-0.004839,
+ 0.011845,0.188277,0.982045,0.056909,0.072153,-0.004839,
+ 0,0.304019,0.952666,0.055885,0.072334,-0.004877,
+ 0.011845,0.188277,0.982045,0.056909,0.072153,-0.004839,
+ 0.019089,0.303419,0.952666,0.056918,0.072302,-0.004877,
+ -0.019089,0.303419,0.952666,0.054852,0.072302,-0.004877,
+ -0.011845,0.188277,0.982045,0.054862,0.072153,-0.004839,
+ 0,0.188649,0.982045,0.055885,0.072186,-0.004839,
+ -0.019089,0.303419,0.952666,0.054852,0.072302,-0.004877,
+ 0,0.188649,0.982045,0.055885,0.072186,-0.004839,
+ 0,0.304019,0.952666,0.055885,0.072334,-0.004877,
+ -0.038104,0.301621,0.952666,0.053824,0.072204,-0.004877,
+ -0.023644,0.187162,0.982045,0.053842,0.072057,-0.004839,
+ -0.011845,0.188277,0.982045,0.054862,0.072153,-0.004839,
+ -0.038104,0.301621,0.952666,0.053824,0.072204,-0.004877,
+ -0.011845,0.188277,0.982045,0.054862,0.072153,-0.004839,
+ -0.019089,0.303419,0.952666,0.054852,0.072302,-0.004877,
+ -0.056967,0.298634,0.952666,0.052803,0.072043,-0.004877,
+ -0.035349,0.185308,0.982045,0.052831,0.071897,-0.004839,
+ -0.023644,0.187162,0.982045,0.053842,0.072057,-0.004839,
+ -0.056967,0.298634,0.952666,0.052803,0.072043,-0.004877,
+ -0.023644,0.187162,0.982045,0.053842,0.072057,-0.004839,
+ -0.038104,0.301621,0.952666,0.053824,0.072204,-0.004877,
+ -0.075606,0.294467,0.952666,0.051795,0.071817,-0.004877,
+ -0.046915,0.182722,0.982045,0.051832,0.071673,-0.004839,
+ -0.035349,0.185308,0.982045,0.052831,0.071897,-0.004839,
+ -0.075606,0.294467,0.952666,0.051795,0.071817,-0.004877,
+ -0.035349,0.185308,0.982045,0.052831,0.071897,-0.004839,
+ -0.056967,0.298634,0.952666,0.052803,0.072043,-0.004877,
+ -0.093947,0.289139,0.952666,0.050802,0.071529,-0.004877,
+ -0.058296,0.179416,0.982045,0.050848,0.071388,-0.004839,
+ -0.046915,0.182722,0.982045,0.051832,0.071673,-0.004839,
+ -0.093947,0.289139,0.952666,0.050802,0.071529,-0.004877,
+ -0.046915,0.182722,0.982045,0.051832,0.071673,-0.004839,
+ -0.075606,0.294467,0.952666,0.051795,0.071817,-0.004877,
+ -0.111917,0.282669,0.952666,0.04983,0.071179,-0.004877,
+ -0.069446,0.175402,0.982045,0.049885,0.071041,-0.004839,
+ -0.058296,0.179416,0.982045,0.050848,0.071388,-0.004839,
+ -0.111917,0.282669,0.952666,0.04983,0.071179,-0.004877,
+ -0.058296,0.179416,0.982045,0.050848,0.071388,-0.004839,
+ -0.093947,0.289139,0.952666,0.050802,0.071529,-0.004877,
+ -0.129445,0.275084,0.952666,0.048882,0.070769,-0.004877,
+ -0.080323,0.170695,0.982045,0.048945,0.070634,-0.004839,
+ -0.069446,0.175402,0.982045,0.049885,0.071041,-0.004839,
+ -0.129445,0.275084,0.952666,0.048882,0.070769,-0.004877,
+ -0.069446,0.175402,0.982045,0.049885,0.071041,-0.004839,
+ -0.111917,0.282669,0.952666,0.04983,0.071179,-0.004877,
+ -0.146462,0.266414,0.952666,0.047961,0.070299,-0.004877,
+ -0.090882,0.165314,0.982045,0.048033,0.070169,-0.004839,
+ -0.080323,0.170695,0.982045,0.048945,0.070634,-0.004839,
+ -0.146462,0.266414,0.952666,0.047961,0.070299,-0.004877,
+ -0.080323,0.170695,0.982045,0.048945,0.070634,-0.004839,
+ -0.129445,0.275084,0.952666,0.048882,0.070769,-0.004877,
+ -0.162901,0.256692,0.952666,0.047072,0.069773,-0.004877,
+ -0.101083,0.159282,0.982045,0.047151,0.069648,-0.004839,
+ -0.090882,0.165314,0.982045,0.048033,0.070169,-0.004839,
+ -0.162901,0.256692,0.952666,0.047072,0.069773,-0.004877,
+ -0.090882,0.165314,0.982045,0.048033,0.070169,-0.004839,
+ -0.146462,0.266414,0.952666,0.047961,0.070299,-0.004877,
+ -0.178698,0.245956,0.952666,0.046217,0.069193,-0.004877,
+ -0.110885,0.15262,0.982045,0.046304,0.069072,-0.004839,
+ -0.101083,0.159282,0.982045,0.047151,0.069648,-0.004839,
+ -0.178698,0.245956,0.952666,0.046217,0.069193,-0.004877,
+ -0.101083,0.159282,0.982045,0.047151,0.069648,-0.004839,
+ -0.162901,0.256692,0.952666,0.047072,0.069773,-0.004877,
+ -0.193789,0.23425,0.952666,0.0454,0.068559,-0.004877,
+ -0.120249,0.145357,0.982045,0.045495,0.068445,-0.004839,
+ -0.110885,0.15262,0.982045,0.046304,0.069072,-0.004839,
+ -0.193789,0.23425,0.952666,0.0454,0.068559,-0.004877,
+ -0.110885,0.15262,0.982045,0.046304,0.069072,-0.004839,
+ -0.178698,0.245956,0.952666,0.046217,0.069193,-0.004877,
+ -0.208115,0.22162,0.952666,0.044625,0.067876,-0.004877,
+ -0.129139,0.137519,0.982045,0.044727,0.067768,-0.004839,
+ -0.120249,0.145357,0.982045,0.045495,0.068445,-0.004839,
+ -0.208115,0.22162,0.952666,0.044625,0.067876,-0.004877,
+ -0.120249,0.145357,0.982045,0.045495,0.068445,-0.004839,
+ -0.193789,0.23425,0.952666,0.0454,0.068559,-0.004877,
+ -0.22162,0.208115,0.952666,0.043895,0.067145,-0.004877,
+ -0.137519,0.129139,0.982045,0.044003,0.067043,-0.004839,
+ -0.129139,0.137519,0.982045,0.044727,0.067768,-0.004839,
+ -0.22162,0.208115,0.952666,0.043895,0.067145,-0.004877,
+ -0.129139,0.137519,0.982045,0.044727,0.067768,-0.004839,
+ -0.208115,0.22162,0.952666,0.044625,0.067876,-0.004877,
+ -0.23425,0.193789,0.952666,0.043211,0.06637,-0.004877,
+ -0.145357,0.120249,0.982045,0.043326,0.066275,-0.004839,
+ -0.137519,0.129139,0.982045,0.044003,0.067043,-0.004839,
+ -0.23425,0.193789,0.952666,0.043211,0.06637,-0.004877,
+ -0.137519,0.129139,0.982045,0.044003,0.067043,-0.004839,
+ -0.22162,0.208115,0.952666,0.043895,0.067145,-0.004877,
+ -0.245956,0.178698,0.952666,0.042578,0.065554,-0.004877,
+ -0.15262,0.110885,0.982045,0.042698,0.065466,-0.004839,
+ -0.145357,0.120249,0.982045,0.043326,0.066275,-0.004839,
+ -0.245956,0.178698,0.952666,0.042578,0.065554,-0.004877,
+ -0.145357,0.120249,0.982045,0.043326,0.066275,-0.004839,
+ -0.23425,0.193789,0.952666,0.043211,0.06637,-0.004877,
+ -0.256692,0.162901,0.952666,0.041997,0.064699,-0.004877,
+ -0.159282,0.101083,0.982045,0.042123,0.064619,-0.004839,
+ -0.15262,0.110885,0.982045,0.042698,0.065466,-0.004839,
+ -0.256692,0.162901,0.952666,0.041997,0.064699,-0.004877,
+ -0.15262,0.110885,0.982045,0.042698,0.065466,-0.004839,
+ -0.245956,0.178698,0.952666,0.042578,0.065554,-0.004877,
+ -0.266414,0.146462,0.952666,0.041471,0.063809,-0.004877,
+ -0.165314,0.090882,0.982045,0.041601,0.063738,-0.004839,
+ -0.159282,0.101083,0.982045,0.042123,0.064619,-0.004839,
+ -0.266414,0.146462,0.952666,0.041471,0.063809,-0.004877,
+ -0.159282,0.101083,0.982045,0.042123,0.064619,-0.004839,
+ -0.256692,0.162901,0.952666,0.041997,0.064699,-0.004877,
+ -0.275084,0.129445,0.952666,0.041002,0.062889,-0.004877,
+ -0.170695,0.080323,0.982045,0.041136,0.062825,-0.004839,
+ -0.165314,0.090882,0.982045,0.041601,0.063738,-0.004839,
+ -0.275084,0.129445,0.952666,0.041002,0.062889,-0.004877,
+ -0.165314,0.090882,0.982045,0.041601,0.063738,-0.004839,
+ -0.266414,0.146462,0.952666,0.041471,0.063809,-0.004877,
+ -0.282669,0.111917,0.952666,0.040592,0.061941,-0.004877,
+ -0.175402,0.069446,0.982045,0.04073,0.061886,-0.004839,
+ -0.170695,0.080323,0.982045,0.041136,0.062825,-0.004839,
+ -0.282669,0.111917,0.952666,0.040592,0.061941,-0.004877,
+ -0.170695,0.080323,0.982045,0.041136,0.062825,-0.004839,
+ -0.275084,0.129445,0.952666,0.041002,0.062889,-0.004877,
+ -0.289139,0.093947,0.952666,0.040242,0.060968,-0.004877,
+ -0.179416,0.058296,0.982045,0.040383,0.060922,-0.004839,
+ -0.175402,0.069446,0.982045,0.04073,0.061886,-0.004839,
+ -0.289139,0.093947,0.952666,0.040242,0.060968,-0.004877,
+ -0.175402,0.069446,0.982045,0.04073,0.061886,-0.004839,
+ -0.282669,0.111917,0.952666,0.040592,0.061941,-0.004877,
+ -0.179416,0.058296,0.982045,0.040383,0.060922,-0.004839,
+ -0.06715,0.021818,0.997504,0.040528,0.060875,-0.004819,
+ -0.065648,0.025992,0.997504,0.040871,0.06183,-0.004819,
+ -0.179416,0.058296,0.982045,0.040383,0.060922,-0.004839,
+ -0.065648,0.025992,0.997504,0.040871,0.06183,-0.004819,
+ -0.175402,0.069446,0.982045,0.04073,0.061886,-0.004839,
+ -0.182722,0.046915,0.982045,0.040097,0.059939,-0.004839,
+ -0.068388,0.017559,0.997504,0.040245,0.059901,-0.004819,
+ -0.06715,0.021818,0.997504,0.040528,0.060875,-0.004819,
+ -0.182722,0.046915,0.982045,0.040097,0.059939,-0.004839,
+ -0.06715,0.021818,0.997504,0.040528,0.060875,-0.004819,
+ -0.179416,0.058296,0.982045,0.040383,0.060922,-0.004839,
+ -0.185308,0.035349,0.982045,0.039874,0.05894,-0.004839,
+ -0.069355,0.01323,0.997504,0.040023,0.058911,-0.004819,
+ -0.068388,0.017559,0.997504,0.040245,0.059901,-0.004819,
+ -0.185308,0.035349,0.982045,0.039874,0.05894,-0.004839,
+ -0.068388,0.017559,0.997504,0.040245,0.059901,-0.004819,
+ -0.182722,0.046915,0.982045,0.040097,0.059939,-0.004839,
+ -0.187162,0.023644,0.982045,0.039714,0.057928,-0.004839,
+ -0.070049,0.008849,0.997504,0.039865,0.057909,-0.004819,
+ -0.069355,0.01323,0.997504,0.040023,0.058911,-0.004819,
+ -0.187162,0.023644,0.982045,0.039714,0.057928,-0.004839,
+ -0.069355,0.01323,0.997504,0.040023,0.058911,-0.004819,
+ -0.185308,0.035349,0.982045,0.039874,0.05894,-0.004839,
+ -0.188277,0.011845,0.982045,0.039617,0.056909,-0.004839,
+ -0.070467,0.004433,0.997504,0.039769,0.056899,-0.004819,
+ -0.070049,0.008849,0.997504,0.039865,0.057909,-0.004819,
+ -0.188277,0.011845,0.982045,0.039617,0.056909,-0.004839,
+ -0.070049,0.008849,0.997504,0.039865,0.057909,-0.004819,
+ -0.187162,0.023644,0.982045,0.039714,0.057928,-0.004839,
+ -0.188649,0,0.982045,0.039585,0.055885,-0.004839,
+ -0.070606,0,0.997504,0.039737,0.055885,-0.004819,
+ -0.070467,0.004433,0.997504,0.039769,0.056899,-0.004819,
+ -0.188649,0,0.982045,0.039585,0.055885,-0.004839,
+ -0.070467,0.004433,0.997504,0.039769,0.056899,-0.004819,
+ -0.188277,0.011845,0.982045,0.039617,0.056909,-0.004839,
+ -0.188277,-0.011845,0.982045,0.039617,0.054862,-0.004839,
+ -0.070467,-0.004433,0.997504,0.039769,0.054871,-0.004819,
+ -0.070606,0,0.997504,0.039737,0.055885,-0.004819,
+ -0.188277,-0.011845,0.982045,0.039617,0.054862,-0.004839,
+ -0.070606,0,0.997504,0.039737,0.055885,-0.004819,
+ -0.188649,0,0.982045,0.039585,0.055885,-0.004839,
+ -0.187162,-0.023644,0.982045,0.039714,0.053842,-0.004839,
+ -0.070049,-0.008849,0.997504,0.039865,0.053861,-0.004819,
+ -0.070467,-0.004433,0.997504,0.039769,0.054871,-0.004819,
+ -0.187162,-0.023644,0.982045,0.039714,0.053842,-0.004839,
+ -0.070467,-0.004433,0.997504,0.039769,0.054871,-0.004819,
+ -0.188277,-0.011845,0.982045,0.039617,0.054862,-0.004839,
+ -0.185308,-0.035349,0.982045,0.039874,0.052831,-0.004839,
+ -0.069355,-0.01323,0.997504,0.040023,0.052859,-0.004819,
+ -0.070049,-0.008849,0.997504,0.039865,0.053861,-0.004819,
+ -0.185308,-0.035349,0.982045,0.039874,0.052831,-0.004839,
+ -0.070049,-0.008849,0.997504,0.039865,0.053861,-0.004819,
+ -0.187162,-0.023644,0.982045,0.039714,0.053842,-0.004839,
+ -0.182722,-0.046915,0.982045,0.040097,0.051832,-0.004839,
+ -0.068388,-0.017559,0.997504,0.040245,0.051869,-0.004819,
+ -0.069355,-0.01323,0.997504,0.040023,0.052859,-0.004819,
+ -0.182722,-0.046915,0.982045,0.040097,0.051832,-0.004839,
+ -0.069355,-0.01323,0.997504,0.040023,0.052859,-0.004819,
+ -0.185308,-0.035349,0.982045,0.039874,0.052831,-0.004839,
+ -0.179416,-0.058296,0.982045,0.040383,0.050848,-0.004839,
+ -0.06715,-0.021818,0.997504,0.040528,0.050895,-0.004819,
+ -0.068388,-0.017559,0.997504,0.040245,0.051869,-0.004819,
+ -0.179416,-0.058296,0.982045,0.040383,0.050848,-0.004839,
+ -0.068388,-0.017559,0.997504,0.040245,0.051869,-0.004819,
+ -0.182722,-0.046915,0.982045,0.040097,0.051832,-0.004839,
+ -0.175402,-0.069446,0.982045,0.04073,0.049885,-0.004839,
+ -0.065648,-0.025992,0.997504,0.040871,0.049941,-0.004819,
+ -0.06715,-0.021818,0.997504,0.040528,0.050895,-0.004819,
+ -0.175402,-0.069446,0.982045,0.04073,0.049885,-0.004839,
+ -0.06715,-0.021818,0.997504,0.040528,0.050895,-0.004819,
+ -0.179416,-0.058296,0.982045,0.040383,0.050848,-0.004839,
+ -0.170695,-0.080323,0.982045,0.041136,0.048945,-0.004839,
+ -0.063886,-0.030062,0.997504,0.041274,0.04901,-0.004819,
+ -0.065648,-0.025992,0.997504,0.040871,0.049941,-0.004819,
+ -0.170695,-0.080323,0.982045,0.041136,0.048945,-0.004839,
+ -0.065648,-0.025992,0.997504,0.040871,0.049941,-0.004819,
+ -0.175402,-0.069446,0.982045,0.04073,0.049885,-0.004839,
+ -0.165314,-0.090882,0.982045,0.041601,0.048033,-0.004839,
+ -0.061872,-0.034015,0.997504,0.041735,0.048106,-0.004819,
+ -0.063886,-0.030062,0.997504,0.041274,0.04901,-0.004819,
+ -0.165314,-0.090882,0.982045,0.041601,0.048033,-0.004839,
+ -0.063886,-0.030062,0.997504,0.041274,0.04901,-0.004819,
+ -0.170695,-0.080323,0.982045,0.041136,0.048945,-0.004839,
+ -0.159282,-0.101083,0.982045,0.042123,0.047151,-0.004839,
+ -0.059614,-0.037832,0.997504,0.042251,0.047233,-0.004819,
+ -0.061872,-0.034015,0.997504,0.041735,0.048106,-0.004819,
+ -0.159282,-0.101083,0.982045,0.042123,0.047151,-0.004839,
+ -0.061872,-0.034015,0.997504,0.041735,0.048106,-0.004819,
+ -0.165314,-0.090882,0.982045,0.041601,0.048033,-0.004839,
+ -0.15262,-0.110885,0.982045,0.042698,0.046304,-0.004839,
+ -0.057121,-0.041501,0.997504,0.042821,0.046394,-0.004819,
+ -0.059614,-0.037832,0.997504,0.042251,0.047233,-0.004819,
+ -0.15262,-0.110885,0.982045,0.042698,0.046304,-0.004839,
+ -0.059614,-0.037832,0.997504,0.042251,0.047233,-0.004819,
+ -0.159282,-0.101083,0.982045,0.042123,0.047151,-0.004839,
+ -0.145357,-0.120249,0.982045,0.043326,0.045495,-0.004839,
+ -0.054403,-0.045006,0.997504,0.043443,0.045592,-0.004819,
+ -0.057121,-0.041501,0.997504,0.042821,0.046394,-0.004819,
+ -0.145357,-0.120249,0.982045,0.043326,0.045495,-0.004839,
+ -0.057121,-0.041501,0.997504,0.042821,0.046394,-0.004819,
+ -0.15262,-0.110885,0.982045,0.042698,0.046304,-0.004839,
+ -0.137519,-0.129139,0.982045,0.044003,0.044727,-0.004839,
+ -0.051469,-0.048333,0.997504,0.044114,0.044831,-0.004819,
+ -0.054403,-0.045006,0.997504,0.043443,0.045592,-0.004819,
+ -0.137519,-0.129139,0.982045,0.044003,0.044727,-0.004839,
+ -0.054403,-0.045006,0.997504,0.043443,0.045592,-0.004819,
+ -0.145357,-0.120249,0.982045,0.043326,0.045495,-0.004839,
+ -0.129139,-0.137519,0.982045,0.044727,0.044003,-0.004839,
+ -0.048333,-0.051469,0.997504,0.044831,0.044114,-0.004819,
+ -0.051469,-0.048333,0.997504,0.044114,0.044831,-0.004819,
+ -0.129139,-0.137519,0.982045,0.044727,0.044003,-0.004839,
+ -0.051469,-0.048333,0.997504,0.044114,0.044831,-0.004819,
+ -0.137519,-0.129139,0.982045,0.044003,0.044727,-0.004839,
+ -0.120249,-0.145357,0.982045,0.045495,0.043326,-0.004839,
+ -0.045006,-0.054403,0.997504,0.045592,0.043443,-0.004819,
+ -0.048333,-0.051469,0.997504,0.044831,0.044114,-0.004819,
+ -0.120249,-0.145357,0.982045,0.045495,0.043326,-0.004839,
+ -0.048333,-0.051469,0.997504,0.044831,0.044114,-0.004819,
+ -0.129139,-0.137519,0.982045,0.044727,0.044003,-0.004839,
+ -0.110885,-0.15262,0.982045,0.046304,0.042698,-0.004839,
+ -0.041501,-0.057121,0.997504,0.046394,0.042821,-0.004819,
+ -0.045006,-0.054403,0.997504,0.045592,0.043443,-0.004819,
+ -0.110885,-0.15262,0.982045,0.046304,0.042698,-0.004839,
+ -0.045006,-0.054403,0.997504,0.045592,0.043443,-0.004819,
+ -0.120249,-0.145357,0.982045,0.045495,0.043326,-0.004839,
+ -0.101083,-0.159282,0.982045,0.047151,0.042123,-0.004839,
+ -0.037832,-0.059614,0.997504,0.047233,0.042251,-0.004819,
+ -0.041501,-0.057121,0.997504,0.046394,0.042821,-0.004819,
+ -0.101083,-0.159282,0.982045,0.047151,0.042123,-0.004839,
+ -0.041501,-0.057121,0.997504,0.046394,0.042821,-0.004819,
+ -0.110885,-0.15262,0.982045,0.046304,0.042698,-0.004839,
+ -0.090882,-0.165314,0.982045,0.048033,0.041601,-0.004839,
+ -0.034015,-0.061872,0.997504,0.048106,0.041735,-0.004819,
+ -0.037832,-0.059614,0.997504,0.047233,0.042251,-0.004819,
+ -0.090882,-0.165314,0.982045,0.048033,0.041601,-0.004839,
+ -0.037832,-0.059614,0.997504,0.047233,0.042251,-0.004819,
+ -0.101083,-0.159282,0.982045,0.047151,0.042123,-0.004839,
+ -0.080323,-0.170695,0.982045,0.048945,0.041136,-0.004839,
+ -0.030062,-0.063886,0.997504,0.04901,0.041274,-0.004819,
+ -0.034015,-0.061872,0.997504,0.048106,0.041735,-0.004819,
+ -0.080323,-0.170695,0.982045,0.048945,0.041136,-0.004839,
+ -0.034015,-0.061872,0.997504,0.048106,0.041735,-0.004819,
+ -0.090882,-0.165314,0.982045,0.048033,0.041601,-0.004839,
+ -0.069446,-0.175402,0.982045,0.049885,0.04073,-0.004839,
+ -0.025992,-0.065648,0.997504,0.049941,0.040871,-0.004819,
+ -0.030062,-0.063886,0.997504,0.04901,0.041274,-0.004819,
+ -0.069446,-0.175402,0.982045,0.049885,0.04073,-0.004839,
+ -0.030062,-0.063886,0.997504,0.04901,0.041274,-0.004819,
+ -0.080323,-0.170695,0.982045,0.048945,0.041136,-0.004839,
+ -0.058296,-0.179416,0.982045,0.050848,0.040383,-0.004839,
+ -0.021818,-0.06715,0.997504,0.050895,0.040528,-0.004819,
+ -0.025992,-0.065648,0.997504,0.049941,0.040871,-0.004819,
+ -0.058296,-0.179416,0.982045,0.050848,0.040383,-0.004839,
+ -0.025992,-0.065648,0.997504,0.049941,0.040871,-0.004819,
+ -0.069446,-0.175402,0.982045,0.049885,0.04073,-0.004839,
+ -0.046915,-0.182722,0.982045,0.051832,0.040097,-0.004839,
+ -0.017559,-0.068388,0.997504,0.051869,0.040245,-0.004819,
+ -0.021818,-0.06715,0.997504,0.050895,0.040528,-0.004819,
+ -0.046915,-0.182722,0.982045,0.051832,0.040097,-0.004839,
+ -0.021818,-0.06715,0.997504,0.050895,0.040528,-0.004819,
+ -0.058296,-0.179416,0.982045,0.050848,0.040383,-0.004839,
+ -0.035349,-0.185308,0.982045,0.052831,0.039874,-0.004839,
+ -0.01323,-0.069355,0.997504,0.052859,0.040023,-0.004819,
+ -0.017559,-0.068388,0.997504,0.051869,0.040245,-0.004819,
+ -0.035349,-0.185308,0.982045,0.052831,0.039874,-0.004839,
+ -0.017559,-0.068388,0.997504,0.051869,0.040245,-0.004819,
+ -0.046915,-0.182722,0.982045,0.051832,0.040097,-0.004839,
+ -0.023644,-0.187162,0.982045,0.053842,0.039714,-0.004839,
+ -0.008849,-0.070049,0.997504,0.053861,0.039865,-0.004819,
+ -0.01323,-0.069355,0.997504,0.052859,0.040023,-0.004819,
+ -0.023644,-0.187162,0.982045,0.053842,0.039714,-0.004839,
+ -0.01323,-0.069355,0.997504,0.052859,0.040023,-0.004819,
+ -0.035349,-0.185308,0.982045,0.052831,0.039874,-0.004839,
+ -0.011845,-0.188277,0.982045,0.054862,0.039617,-0.004839,
+ -0.004433,-0.070467,0.997504,0.054871,0.039769,-0.004819,
+ -0.008849,-0.070049,0.997504,0.053861,0.039865,-0.004819,
+ -0.011845,-0.188277,0.982045,0.054862,0.039617,-0.004839,
+ -0.008849,-0.070049,0.997504,0.053861,0.039865,-0.004819,
+ -0.023644,-0.187162,0.982045,0.053842,0.039714,-0.004839,
+ 0,-0.188649,0.982045,0.055885,0.039585,-0.004839,
+ 0,-0.070606,0.997504,0.055885,0.039737,-0.004819,
+ -0.004433,-0.070467,0.997504,0.054871,0.039769,-0.004819,
+ 0,-0.188649,0.982045,0.055885,0.039585,-0.004839,
+ -0.004433,-0.070467,0.997504,0.054871,0.039769,-0.004819,
+ -0.011845,-0.188277,0.982045,0.054862,0.039617,-0.004839,
+ 0.011845,-0.188277,0.982045,0.056909,0.039617,-0.004839,
+ 0.004433,-0.070467,0.997504,0.056899,0.039769,-0.004819,
+ 0,-0.070606,0.997504,0.055885,0.039737,-0.004819,
+ 0.011845,-0.188277,0.982045,0.056909,0.039617,-0.004839,
+ 0,-0.070606,0.997504,0.055885,0.039737,-0.004819,
+ 0,-0.188649,0.982045,0.055885,0.039585,-0.004839,
+ 0.023644,-0.187162,0.982045,0.057928,0.039714,-0.004839,
+ 0.008849,-0.070049,0.997504,0.057909,0.039865,-0.004819,
+ 0.004433,-0.070467,0.997504,0.056899,0.039769,-0.004819,
+ 0.023644,-0.187162,0.982045,0.057928,0.039714,-0.004839,
+ 0.004433,-0.070467,0.997504,0.056899,0.039769,-0.004819,
+ 0.011845,-0.188277,0.982045,0.056909,0.039617,-0.004839,
+ 0.035349,-0.185308,0.982045,0.05894,0.039874,-0.004839,
+ 0.01323,-0.069355,0.997504,0.058911,0.040023,-0.004819,
+ 0.008849,-0.070049,0.997504,0.057909,0.039865,-0.004819,
+ 0.035349,-0.185308,0.982045,0.05894,0.039874,-0.004839,
+ 0.008849,-0.070049,0.997504,0.057909,0.039865,-0.004819,
+ 0.023644,-0.187162,0.982045,0.057928,0.039714,-0.004839,
+ 0.046915,-0.182722,0.982045,0.059939,0.040097,-0.004839,
+ 0.017559,-0.068388,0.997504,0.059901,0.040245,-0.004819,
+ 0.01323,-0.069355,0.997504,0.058911,0.040023,-0.004819,
+ 0.046915,-0.182722,0.982045,0.059939,0.040097,-0.004839,
+ 0.01323,-0.069355,0.997504,0.058911,0.040023,-0.004819,
+ 0.035349,-0.185308,0.982045,0.05894,0.039874,-0.004839,
+ 0.058296,-0.179416,0.982045,0.060922,0.040383,-0.004839,
+ 0.021818,-0.06715,0.997504,0.060875,0.040528,-0.004819,
+ 0.017559,-0.068388,0.997504,0.059901,0.040245,-0.004819,
+ 0.058296,-0.179416,0.982045,0.060922,0.040383,-0.004839,
+ 0.017559,-0.068388,0.997504,0.059901,0.040245,-0.004819,
+ 0.046915,-0.182722,0.982045,0.059939,0.040097,-0.004839,
+ 0.069446,-0.175402,0.982045,0.061886,0.04073,-0.004839,
+ 0.025992,-0.065648,0.997504,0.06183,0.040871,-0.004819,
+ 0.021818,-0.06715,0.997504,0.060875,0.040528,-0.004819,
+ 0.069446,-0.175402,0.982045,0.061886,0.04073,-0.004839,
+ 0.021818,-0.06715,0.997504,0.060875,0.040528,-0.004819,
+ 0.058296,-0.179416,0.982045,0.060922,0.040383,-0.004839,
+ 0.080323,-0.170695,0.982045,0.062825,0.041136,-0.004839,
+ 0.030062,-0.063886,0.997504,0.062761,0.041274,-0.004819,
+ 0.025992,-0.065648,0.997504,0.06183,0.040871,-0.004819,
+ 0.080323,-0.170695,0.982045,0.062825,0.041136,-0.004839,
+ 0.025992,-0.065648,0.997504,0.06183,0.040871,-0.004819,
+ 0.069446,-0.175402,0.982045,0.061886,0.04073,-0.004839,
+ 0.090882,-0.165314,0.982045,0.063738,0.041601,-0.004839,
+ 0.034015,-0.061872,0.997504,0.063665,0.041735,-0.004819,
+ 0.030062,-0.063886,0.997504,0.062761,0.041274,-0.004819,
+ 0.090882,-0.165314,0.982045,0.063738,0.041601,-0.004839,
+ 0.030062,-0.063886,0.997504,0.062761,0.041274,-0.004819,
+ 0.080323,-0.170695,0.982045,0.062825,0.041136,-0.004839,
+ 0.101083,-0.159282,0.982045,0.064619,0.042123,-0.004839,
+ 0.037832,-0.059614,0.997504,0.064538,0.042251,-0.004819,
+ 0.034015,-0.061872,0.997504,0.063665,0.041735,-0.004819,
+ 0.101083,-0.159282,0.982045,0.064619,0.042123,-0.004839,
+ 0.034015,-0.061872,0.997504,0.063665,0.041735,-0.004819,
+ 0.090882,-0.165314,0.982045,0.063738,0.041601,-0.004839,
+ 0.110885,-0.15262,0.982045,0.065466,0.042698,-0.004839,
+ 0.041501,-0.057121,0.997504,0.065377,0.042821,-0.004819,
+ 0.037832,-0.059614,0.997504,0.064538,0.042251,-0.004819,
+ 0.110885,-0.15262,0.982045,0.065466,0.042698,-0.004839,
+ 0.037832,-0.059614,0.997504,0.064538,0.042251,-0.004819,
+ 0.101083,-0.159282,0.982045,0.064619,0.042123,-0.004839,
+ 0.120249,-0.145357,0.982045,0.066275,0.043326,-0.004839,
+ 0.045006,-0.054403,0.997504,0.066178,0.043443,-0.004819,
+ 0.041501,-0.057121,0.997504,0.065377,0.042821,-0.004819,
+ 0.120249,-0.145357,0.982045,0.066275,0.043326,-0.004839,
+ 0.041501,-0.057121,0.997504,0.065377,0.042821,-0.004819,
+ 0.110885,-0.15262,0.982045,0.065466,0.042698,-0.004839,
+ 0.129139,-0.137519,0.982045,0.067043,0.044003,-0.004839,
+ 0.048333,-0.051469,0.997504,0.066939,0.044114,-0.004819,
+ 0.045006,-0.054403,0.997504,0.066178,0.043443,-0.004819,
+ 0.129139,-0.137519,0.982045,0.067043,0.044003,-0.004839,
+ 0.045006,-0.054403,0.997504,0.066178,0.043443,-0.004819,
+ 0.120249,-0.145357,0.982045,0.066275,0.043326,-0.004839,
+ 0.137519,-0.129139,0.982045,0.067768,0.044727,-0.004839,
+ 0.051469,-0.048333,0.997504,0.067657,0.044831,-0.004819,
+ 0.048333,-0.051469,0.997504,0.066939,0.044114,-0.004819,
+ 0.137519,-0.129139,0.982045,0.067768,0.044727,-0.004839,
+ 0.048333,-0.051469,0.997504,0.066939,0.044114,-0.004819,
+ 0.129139,-0.137519,0.982045,0.067043,0.044003,-0.004839,
+ 0.145357,-0.120249,0.982045,0.068445,0.045495,-0.004839,
+ 0.054403,-0.045006,0.997504,0.068328,0.045592,-0.004819,
+ 0.051469,-0.048333,0.997504,0.067657,0.044831,-0.004819,
+ 0.145357,-0.120249,0.982045,0.068445,0.045495,-0.004839,
+ 0.051469,-0.048333,0.997504,0.067657,0.044831,-0.004819,
+ 0.137519,-0.129139,0.982045,0.067768,0.044727,-0.004839,
+ 0.15262,-0.110885,0.982045,0.069072,0.046304,-0.004839,
+ 0.057121,-0.041501,0.997504,0.068949,0.046394,-0.004819,
+ 0.054403,-0.045006,0.997504,0.068328,0.045592,-0.004819,
+ 0.15262,-0.110885,0.982045,0.069072,0.046304,-0.004839,
+ 0.054403,-0.045006,0.997504,0.068328,0.045592,-0.004819,
+ 0.145357,-0.120249,0.982045,0.068445,0.045495,-0.004839,
+ 0.159282,-0.101083,0.982045,0.069648,0.047151,-0.004839,
+ 0.059614,-0.037832,0.997504,0.06952,0.047233,-0.004819,
+ 0.057121,-0.041501,0.997504,0.068949,0.046394,-0.004819,
+ 0.159282,-0.101083,0.982045,0.069648,0.047151,-0.004839,
+ 0.057121,-0.041501,0.997504,0.068949,0.046394,-0.004819,
+ 0.15262,-0.110885,0.982045,0.069072,0.046304,-0.004839,
+ 0.165314,-0.090882,0.982045,0.070169,0.048033,-0.004839,
+ 0.061872,-0.034015,0.997504,0.070036,0.048106,-0.004819,
+ 0.059614,-0.037832,0.997504,0.06952,0.047233,-0.004819,
+ 0.165314,-0.090882,0.982045,0.070169,0.048033,-0.004839,
+ 0.059614,-0.037832,0.997504,0.06952,0.047233,-0.004819,
+ 0.159282,-0.101083,0.982045,0.069648,0.047151,-0.004839,
+ 0.170695,-0.080323,0.982045,0.070634,0.048945,-0.004839,
+ 0.063886,-0.030062,0.997504,0.070497,0.04901,-0.004819,
+ 0.061872,-0.034015,0.997504,0.070036,0.048106,-0.004819,
+ 0.170695,-0.080323,0.982045,0.070634,0.048945,-0.004839,
+ 0.061872,-0.034015,0.997504,0.070036,0.048106,-0.004819,
+ 0.165314,-0.090882,0.982045,0.070169,0.048033,-0.004839,
+ 0.175402,-0.069446,0.982045,0.071041,0.049885,-0.004839,
+ 0.065648,-0.025992,0.997504,0.070899,0.049941,-0.004819,
+ 0.063886,-0.030062,0.997504,0.070497,0.04901,-0.004819,
+ 0.175402,-0.069446,0.982045,0.071041,0.049885,-0.004839,
+ 0.063886,-0.030062,0.997504,0.070497,0.04901,-0.004819,
+ 0.170695,-0.080323,0.982045,0.070634,0.048945,-0.004839,
+ 0.179416,-0.058296,0.982045,0.071388,0.050848,-0.004839,
+ 0.06715,-0.021818,0.997504,0.071243,0.050895,-0.004819,
+ 0.065648,-0.025992,0.997504,0.070899,0.049941,-0.004819,
+ 0.179416,-0.058296,0.982045,0.071388,0.050848,-0.004839,
+ 0.065648,-0.025992,0.997504,0.070899,0.049941,-0.004819,
+ 0.175402,-0.069446,0.982045,0.071041,0.049885,-0.004839,
+ 0.182722,-0.046915,0.982045,0.071673,0.051832,-0.004839,
+ 0.068388,-0.017559,0.997504,0.071526,0.051869,-0.004819,
+ 0.06715,-0.021818,0.997504,0.071243,0.050895,-0.004819,
+ 0.182722,-0.046915,0.982045,0.071673,0.051832,-0.004839,
+ 0.06715,-0.021818,0.997504,0.071243,0.050895,-0.004819,
+ 0.179416,-0.058296,0.982045,0.071388,0.050848,-0.004839,
+ 0.185308,-0.035349,0.982045,0.071897,0.052831,-0.004839,
+ 0.069355,-0.01323,0.997504,0.071747,0.052859,-0.004819,
+ 0.068388,-0.017559,0.997504,0.071526,0.051869,-0.004819,
+ 0.185308,-0.035349,0.982045,0.071897,0.052831,-0.004839,
+ 0.068388,-0.017559,0.997504,0.071526,0.051869,-0.004819,
+ 0.182722,-0.046915,0.982045,0.071673,0.051832,-0.004839,
+ 0.187162,-0.023644,0.982045,0.072057,0.053842,-0.004839,
+ 0.070049,-0.008849,0.997504,0.071906,0.053861,-0.004819,
+ 0.069355,-0.01323,0.997504,0.071747,0.052859,-0.004819,
+ 0.187162,-0.023644,0.982045,0.072057,0.053842,-0.004839,
+ 0.069355,-0.01323,0.997504,0.071747,0.052859,-0.004819,
+ 0.185308,-0.035349,0.982045,0.071897,0.052831,-0.004839,
+ 0.188277,-0.011845,0.982045,0.072153,0.054862,-0.004839,
+ 0.070467,-0.004433,0.997504,0.072001,0.054871,-0.004819,
+ 0.070049,-0.008849,0.997504,0.071906,0.053861,-0.004819,
+ 0.188277,-0.011845,0.982045,0.072153,0.054862,-0.004839,
+ 0.070049,-0.008849,0.997504,0.071906,0.053861,-0.004819,
+ 0.187162,-0.023644,0.982045,0.072057,0.053842,-0.004839,
+ 0.188649,0,0.982045,0.072186,0.055885,-0.004839,
+ 0.070606,0,0.997504,0.072033,0.055885,-0.004819,
+ 0.070467,-0.004433,0.997504,0.072001,0.054871,-0.004819,
+ 0.188649,0,0.982045,0.072186,0.055885,-0.004839,
+ 0.070467,-0.004433,0.997504,0.072001,0.054871,-0.004819,
+ 0.188277,-0.011845,0.982045,0.072153,0.054862,-0.004839,
+ 0.188277,0.011845,0.982045,0.072153,0.056909,-0.004839,
+ 0.070467,0.004433,0.997504,0.072001,0.056899,-0.004819,
+ 0.070606,0,0.997504,0.072033,0.055885,-0.004819,
+ 0.188277,0.011845,0.982045,0.072153,0.056909,-0.004839,
+ 0.070606,0,0.997504,0.072033,0.055885,-0.004819,
+ 0.188649,0,0.982045,0.072186,0.055885,-0.004839,
+ 0.187162,0.023644,0.982045,0.072057,0.057928,-0.004839,
+ 0.070049,0.008849,0.997504,0.071906,0.057909,-0.004819,
+ 0.070467,0.004433,0.997504,0.072001,0.056899,-0.004819,
+ 0.187162,0.023644,0.982045,0.072057,0.057928,-0.004839,
+ 0.070467,0.004433,0.997504,0.072001,0.056899,-0.004819,
+ 0.188277,0.011845,0.982045,0.072153,0.056909,-0.004839,
+ 0.185308,0.035349,0.982045,0.071897,0.05894,-0.004839,
+ 0.069355,0.01323,0.997504,0.071747,0.058911,-0.004819,
+ 0.070049,0.008849,0.997504,0.071906,0.057909,-0.004819,
+ 0.185308,0.035349,0.982045,0.071897,0.05894,-0.004839,
+ 0.070049,0.008849,0.997504,0.071906,0.057909,-0.004819,
+ 0.187162,0.023644,0.982045,0.072057,0.057928,-0.004839,
+ 0.182722,0.046915,0.982045,0.071673,0.059939,-0.004839,
+ 0.068388,0.017559,0.997504,0.071526,0.059901,-0.004819,
+ 0.069355,0.01323,0.997504,0.071747,0.058911,-0.004819,
+ 0.182722,0.046915,0.982045,0.071673,0.059939,-0.004839,
+ 0.069355,0.01323,0.997504,0.071747,0.058911,-0.004819,
+ 0.185308,0.035349,0.982045,0.071897,0.05894,-0.004839,
+ 0.179416,0.058296,0.982045,0.071388,0.060922,-0.004839,
+ 0.06715,0.021818,0.997504,0.071243,0.060875,-0.004819,
+ 0.068388,0.017559,0.997504,0.071526,0.059901,-0.004819,
+ 0.179416,0.058296,0.982045,0.071388,0.060922,-0.004839,
+ 0.068388,0.017559,0.997504,0.071526,0.059901,-0.004819,
+ 0.182722,0.046915,0.982045,0.071673,0.059939,-0.004839,
+ 0.175402,0.069446,0.982045,0.071041,0.061886,-0.004839,
+ 0.065648,0.025992,0.997504,0.070899,0.06183,-0.004819,
+ 0.06715,0.021818,0.997504,0.071243,0.060875,-0.004819,
+ 0.175402,0.069446,0.982045,0.071041,0.061886,-0.004839,
+ 0.06715,0.021818,0.997504,0.071243,0.060875,-0.004819,
+ 0.179416,0.058296,0.982045,0.071388,0.060922,-0.004839,
+ 0.170695,0.080323,0.982045,0.070634,0.062825,-0.004839,
+ 0.063886,0.030062,0.997504,0.070497,0.062761,-0.004819,
+ 0.065648,0.025992,0.997504,0.070899,0.06183,-0.004819,
+ 0.170695,0.080323,0.982045,0.070634,0.062825,-0.004839,
+ 0.065648,0.025992,0.997504,0.070899,0.06183,-0.004819,
+ 0.175402,0.069446,0.982045,0.071041,0.061886,-0.004839,
+ 0.165314,0.090882,0.982045,0.070169,0.063738,-0.004839,
+ 0.061872,0.034015,0.997504,0.070036,0.063665,-0.004819,
+ 0.063886,0.030062,0.997504,0.070497,0.062761,-0.004819,
+ 0.165314,0.090882,0.982045,0.070169,0.063738,-0.004839,
+ 0.063886,0.030062,0.997504,0.070497,0.062761,-0.004819,
+ 0.170695,0.080323,0.982045,0.070634,0.062825,-0.004839,
+ 0.159282,0.101083,0.982045,0.069648,0.064619,-0.004839,
+ 0.059614,0.037832,0.997504,0.06952,0.064538,-0.004819,
+ 0.061872,0.034015,0.997504,0.070036,0.063665,-0.004819,
+ 0.159282,0.101083,0.982045,0.069648,0.064619,-0.004839,
+ 0.061872,0.034015,0.997504,0.070036,0.063665,-0.004819,
+ 0.165314,0.090882,0.982045,0.070169,0.063738,-0.004839,
+ 0.15262,0.110885,0.982045,0.069072,0.065466,-0.004839,
+ 0.057121,0.041501,0.997504,0.068949,0.065377,-0.004819,
+ 0.059614,0.037832,0.997504,0.06952,0.064538,-0.004819,
+ 0.15262,0.110885,0.982045,0.069072,0.065466,-0.004839,
+ 0.059614,0.037832,0.997504,0.06952,0.064538,-0.004819,
+ 0.159282,0.101083,0.982045,0.069648,0.064619,-0.004839,
+ 0.145357,0.120249,0.982045,0.068445,0.066275,-0.004839,
+ 0.054403,0.045006,0.997504,0.068328,0.066178,-0.004819,
+ 0.057121,0.041501,0.997504,0.068949,0.065377,-0.004819,
+ 0.145357,0.120249,0.982045,0.068445,0.066275,-0.004839,
+ 0.057121,0.041501,0.997504,0.068949,0.065377,-0.004819,
+ 0.15262,0.110885,0.982045,0.069072,0.065466,-0.004839,
+ 0.137519,0.129139,0.982045,0.067768,0.067043,-0.004839,
+ 0.051469,0.048333,0.997504,0.067657,0.066939,-0.004819,
+ 0.054403,0.045006,0.997504,0.068328,0.066178,-0.004819,
+ 0.137519,0.129139,0.982045,0.067768,0.067043,-0.004839,
+ 0.054403,0.045006,0.997504,0.068328,0.066178,-0.004819,
+ 0.145357,0.120249,0.982045,0.068445,0.066275,-0.004839,
+ 0.129139,0.137519,0.982045,0.067043,0.067768,-0.004839,
+ 0.048333,0.051469,0.997504,0.066939,0.067657,-0.004819,
+ 0.051469,0.048333,0.997504,0.067657,0.066939,-0.004819,
+ 0.129139,0.137519,0.982045,0.067043,0.067768,-0.004839,
+ 0.051469,0.048333,0.997504,0.067657,0.066939,-0.004819,
+ 0.137519,0.129139,0.982045,0.067768,0.067043,-0.004839,
+ 0.120249,0.145357,0.982045,0.066275,0.068445,-0.004839,
+ 0.045006,0.054403,0.997504,0.066178,0.068328,-0.004819,
+ 0.048333,0.051469,0.997504,0.066939,0.067657,-0.004819,
+ 0.120249,0.145357,0.982045,0.066275,0.068445,-0.004839,
+ 0.048333,0.051469,0.997504,0.066939,0.067657,-0.004819,
+ 0.129139,0.137519,0.982045,0.067043,0.067768,-0.004839,
+ 0.110885,0.15262,0.982045,0.065466,0.069072,-0.004839,
+ 0.041501,0.057121,0.997504,0.065377,0.068949,-0.004819,
+ 0.045006,0.054403,0.997504,0.066178,0.068328,-0.004819,
+ 0.110885,0.15262,0.982045,0.065466,0.069072,-0.004839,
+ 0.045006,0.054403,0.997504,0.066178,0.068328,-0.004819,
+ 0.120249,0.145357,0.982045,0.066275,0.068445,-0.004839,
+ 0.101083,0.159282,0.982045,0.064619,0.069648,-0.004839,
+ 0.037832,0.059614,0.997504,0.064538,0.06952,-0.004819,
+ 0.041501,0.057121,0.997504,0.065377,0.068949,-0.004819,
+ 0.101083,0.159282,0.982045,0.064619,0.069648,-0.004839,
+ 0.041501,0.057121,0.997504,0.065377,0.068949,-0.004819,
+ 0.110885,0.15262,0.982045,0.065466,0.069072,-0.004839,
+ 0.090882,0.165314,0.982045,0.063738,0.070169,-0.004839,
+ 0.034015,0.061872,0.997504,0.063665,0.070036,-0.004819,
+ 0.037832,0.059614,0.997504,0.064538,0.06952,-0.004819,
+ 0.090882,0.165314,0.982045,0.063738,0.070169,-0.004839,
+ 0.037832,0.059614,0.997504,0.064538,0.06952,-0.004819,
+ 0.101083,0.159282,0.982045,0.064619,0.069648,-0.004839,
+ 0.080323,0.170695,0.982045,0.062825,0.070634,-0.004839,
+ 0.030062,0.063886,0.997504,0.062761,0.070497,-0.004819,
+ 0.034015,0.061872,0.997504,0.063665,0.070036,-0.004819,
+ 0.080323,0.170695,0.982045,0.062825,0.070634,-0.004839,
+ 0.034015,0.061872,0.997504,0.063665,0.070036,-0.004819,
+ 0.090882,0.165314,0.982045,0.063738,0.070169,-0.004839,
+ 0.069446,0.175402,0.982045,0.061886,0.071041,-0.004839,
+ 0.025992,0.065648,0.997504,0.06183,0.070899,-0.004819,
+ 0.030062,0.063886,0.997504,0.062761,0.070497,-0.004819,
+ 0.069446,0.175402,0.982045,0.061886,0.071041,-0.004839,
+ 0.030062,0.063886,0.997504,0.062761,0.070497,-0.004819,
+ 0.080323,0.170695,0.982045,0.062825,0.070634,-0.004839,
+ 0.058296,0.179416,0.982045,0.060922,0.071388,-0.004839,
+ 0.021818,0.06715,0.997504,0.060875,0.071243,-0.004819,
+ 0.025992,0.065648,0.997504,0.06183,0.070899,-0.004819,
+ 0.058296,0.179416,0.982045,0.060922,0.071388,-0.004839,
+ 0.025992,0.065648,0.997504,0.06183,0.070899,-0.004819,
+ 0.069446,0.175402,0.982045,0.061886,0.071041,-0.004839,
+ 0.046915,0.182722,0.982045,0.059939,0.071673,-0.004839,
+ 0.017559,0.068388,0.997504,0.059901,0.071526,-0.004819,
+ 0.021818,0.06715,0.997504,0.060875,0.071243,-0.004819,
+ 0.046915,0.182722,0.982045,0.059939,0.071673,-0.004839,
+ 0.021818,0.06715,0.997504,0.060875,0.071243,-0.004819,
+ 0.058296,0.179416,0.982045,0.060922,0.071388,-0.004839,
+ 0.035349,0.185308,0.982045,0.05894,0.071897,-0.004839,
+ 0.01323,0.069355,0.997504,0.058911,0.071747,-0.004819,
+ 0.017559,0.068388,0.997504,0.059901,0.071526,-0.004819,
+ 0.035349,0.185308,0.982045,0.05894,0.071897,-0.004839,
+ 0.017559,0.068388,0.997504,0.059901,0.071526,-0.004819,
+ 0.046915,0.182722,0.982045,0.059939,0.071673,-0.004839,
+ 0.023644,0.187162,0.982045,0.057928,0.072057,-0.004839,
+ 0.008849,0.070049,0.997504,0.057909,0.071906,-0.004819,
+ 0.01323,0.069355,0.997504,0.058911,0.071747,-0.004819,
+ 0.023644,0.187162,0.982045,0.057928,0.072057,-0.004839,
+ 0.01323,0.069355,0.997504,0.058911,0.071747,-0.004819,
+ 0.035349,0.185308,0.982045,0.05894,0.071897,-0.004839,
+ 0.011845,0.188277,0.982045,0.056909,0.072153,-0.004839,
+ 0.004433,0.070467,0.997504,0.056899,0.072001,-0.004819,
+ 0.008849,0.070049,0.997504,0.057909,0.071906,-0.004819,
+ 0.011845,0.188277,0.982045,0.056909,0.072153,-0.004839,
+ 0.008849,0.070049,0.997504,0.057909,0.071906,-0.004819,
+ 0.023644,0.187162,0.982045,0.057928,0.072057,-0.004839,
+ 0,0.188649,0.982045,0.055885,0.072186,-0.004839,
+ 0,0.070606,0.997504,0.055885,0.072033,-0.004819,
+ 0.004433,0.070467,0.997504,0.056899,0.072001,-0.004819,
+ 0,0.188649,0.982045,0.055885,0.072186,-0.004839,
+ 0.004433,0.070467,0.997504,0.056899,0.072001,-0.004819,
+ 0.011845,0.188277,0.982045,0.056909,0.072153,-0.004839,
+ -0.011845,0.188277,0.982045,0.054862,0.072153,-0.004839,
+ -0.004433,0.070467,0.997504,0.054871,0.072001,-0.004819,
+ 0,0.070606,0.997504,0.055885,0.072033,-0.004819,
+ -0.011845,0.188277,0.982045,0.054862,0.072153,-0.004839,
+ 0,0.070606,0.997504,0.055885,0.072033,-0.004819,
+ 0,0.188649,0.982045,0.055885,0.072186,-0.004839,
+ -0.023644,0.187162,0.982045,0.053842,0.072057,-0.004839,
+ -0.008849,0.070049,0.997504,0.053861,0.071906,-0.004819,
+ -0.004433,0.070467,0.997504,0.054871,0.072001,-0.004819,
+ -0.023644,0.187162,0.982045,0.053842,0.072057,-0.004839,
+ -0.004433,0.070467,0.997504,0.054871,0.072001,-0.004819,
+ -0.011845,0.188277,0.982045,0.054862,0.072153,-0.004839,
+ -0.035349,0.185308,0.982045,0.052831,0.071897,-0.004839,
+ -0.01323,0.069355,0.997504,0.052859,0.071747,-0.004819,
+ -0.008849,0.070049,0.997504,0.053861,0.071906,-0.004819,
+ -0.035349,0.185308,0.982045,0.052831,0.071897,-0.004839,
+ -0.008849,0.070049,0.997504,0.053861,0.071906,-0.004819,
+ -0.023644,0.187162,0.982045,0.053842,0.072057,-0.004839,
+ -0.046915,0.182722,0.982045,0.051832,0.071673,-0.004839,
+ -0.017559,0.068388,0.997504,0.051869,0.071526,-0.004819,
+ -0.01323,0.069355,0.997504,0.052859,0.071747,-0.004819,
+ -0.046915,0.182722,0.982045,0.051832,0.071673,-0.004839,
+ -0.01323,0.069355,0.997504,0.052859,0.071747,-0.004819,
+ -0.035349,0.185308,0.982045,0.052831,0.071897,-0.004839,
+ -0.058296,0.179416,0.982045,0.050848,0.071388,-0.004839,
+ -0.021818,0.06715,0.997504,0.050895,0.071243,-0.004819,
+ -0.017559,0.068388,0.997504,0.051869,0.071526,-0.004819,
+ -0.058296,0.179416,0.982045,0.050848,0.071388,-0.004839,
+ -0.017559,0.068388,0.997504,0.051869,0.071526,-0.004819,
+ -0.046915,0.182722,0.982045,0.051832,0.071673,-0.004839,
+ -0.069446,0.175402,0.982045,0.049885,0.071041,-0.004839,
+ -0.025992,0.065648,0.997504,0.049941,0.070899,-0.004819,
+ -0.021818,0.06715,0.997504,0.050895,0.071243,-0.004819,
+ -0.069446,0.175402,0.982045,0.049885,0.071041,-0.004839,
+ -0.021818,0.06715,0.997504,0.050895,0.071243,-0.004819,
+ -0.058296,0.179416,0.982045,0.050848,0.071388,-0.004839,
+ -0.080323,0.170695,0.982045,0.048945,0.070634,-0.004839,
+ -0.030062,0.063886,0.997504,0.04901,0.070497,-0.004819,
+ -0.025992,0.065648,0.997504,0.049941,0.070899,-0.004819,
+ -0.080323,0.170695,0.982045,0.048945,0.070634,-0.004839,
+ -0.025992,0.065648,0.997504,0.049941,0.070899,-0.004819,
+ -0.069446,0.175402,0.982045,0.049885,0.071041,-0.004839,
+ -0.090882,0.165314,0.982045,0.048033,0.070169,-0.004839,
+ -0.034015,0.061872,0.997504,0.048106,0.070036,-0.004819,
+ -0.030062,0.063886,0.997504,0.04901,0.070497,-0.004819,
+ -0.090882,0.165314,0.982045,0.048033,0.070169,-0.004839,
+ -0.030062,0.063886,0.997504,0.04901,0.070497,-0.004819,
+ -0.080323,0.170695,0.982045,0.048945,0.070634,-0.004839,
+ -0.101083,0.159282,0.982045,0.047151,0.069648,-0.004839,
+ -0.037832,0.059614,0.997504,0.047233,0.06952,-0.004819,
+ -0.034015,0.061872,0.997504,0.048106,0.070036,-0.004819,
+ -0.101083,0.159282,0.982045,0.047151,0.069648,-0.004839,
+ -0.034015,0.061872,0.997504,0.048106,0.070036,-0.004819,
+ -0.090882,0.165314,0.982045,0.048033,0.070169,-0.004839,
+ -0.110885,0.15262,0.982045,0.046304,0.069072,-0.004839,
+ -0.041501,0.057121,0.997504,0.046394,0.068949,-0.004819,
+ -0.037832,0.059614,0.997504,0.047233,0.06952,-0.004819,
+ -0.110885,0.15262,0.982045,0.046304,0.069072,-0.004839,
+ -0.037832,0.059614,0.997504,0.047233,0.06952,-0.004819,
+ -0.101083,0.159282,0.982045,0.047151,0.069648,-0.004839,
+ -0.120249,0.145357,0.982045,0.045495,0.068445,-0.004839,
+ -0.045006,0.054403,0.997504,0.045592,0.068328,-0.004819,
+ -0.041501,0.057121,0.997504,0.046394,0.068949,-0.004819,
+ -0.120249,0.145357,0.982045,0.045495,0.068445,-0.004839,
+ -0.041501,0.057121,0.997504,0.046394,0.068949,-0.004819,
+ -0.110885,0.15262,0.982045,0.046304,0.069072,-0.004839,
+ -0.129139,0.137519,0.982045,0.044727,0.067768,-0.004839,
+ -0.048333,0.051469,0.997504,0.044831,0.067657,-0.004819,
+ -0.045006,0.054403,0.997504,0.045592,0.068328,-0.004819,
+ -0.129139,0.137519,0.982045,0.044727,0.067768,-0.004839,
+ -0.045006,0.054403,0.997504,0.045592,0.068328,-0.004819,
+ -0.120249,0.145357,0.982045,0.045495,0.068445,-0.004839,
+ -0.137519,0.129139,0.982045,0.044003,0.067043,-0.004839,
+ -0.051469,0.048333,0.997504,0.044114,0.066939,-0.004819,
+ -0.048333,0.051469,0.997504,0.044831,0.067657,-0.004819,
+ -0.137519,0.129139,0.982045,0.044003,0.067043,-0.004839,
+ -0.048333,0.051469,0.997504,0.044831,0.067657,-0.004819,
+ -0.129139,0.137519,0.982045,0.044727,0.067768,-0.004839,
+ -0.145357,0.120249,0.982045,0.043326,0.066275,-0.004839,
+ -0.054403,0.045006,0.997504,0.043443,0.066178,-0.004819,
+ -0.051469,0.048333,0.997504,0.044114,0.066939,-0.004819,
+ -0.145357,0.120249,0.982045,0.043326,0.066275,-0.004839,
+ -0.051469,0.048333,0.997504,0.044114,0.066939,-0.004819,
+ -0.137519,0.129139,0.982045,0.044003,0.067043,-0.004839,
+ -0.15262,0.110885,0.982045,0.042698,0.065466,-0.004839,
+ -0.057121,0.041501,0.997504,0.042821,0.065377,-0.004819,
+ -0.054403,0.045006,0.997504,0.043443,0.066178,-0.004819,
+ -0.15262,0.110885,0.982045,0.042698,0.065466,-0.004839,
+ -0.054403,0.045006,0.997504,0.043443,0.066178,-0.004819,
+ -0.145357,0.120249,0.982045,0.043326,0.066275,-0.004839,
+ -0.159282,0.101083,0.982045,0.042123,0.064619,-0.004839,
+ -0.059614,0.037832,0.997504,0.042251,0.064538,-0.004819,
+ -0.057121,0.041501,0.997504,0.042821,0.065377,-0.004819,
+ -0.159282,0.101083,0.982045,0.042123,0.064619,-0.004839,
+ -0.057121,0.041501,0.997504,0.042821,0.065377,-0.004819,
+ -0.15262,0.110885,0.982045,0.042698,0.065466,-0.004839,
+ -0.165314,0.090882,0.982045,0.041601,0.063738,-0.004839,
+ -0.061872,0.034015,0.997504,0.041735,0.063665,-0.004819,
+ -0.059614,0.037832,0.997504,0.042251,0.064538,-0.004819,
+ -0.165314,0.090882,0.982045,0.041601,0.063738,-0.004839,
+ -0.059614,0.037832,0.997504,0.042251,0.064538,-0.004819,
+ -0.159282,0.101083,0.982045,0.042123,0.064619,-0.004839,
+ -0.170695,0.080323,0.982045,0.041136,0.062825,-0.004839,
+ -0.063886,0.030062,0.997504,0.041274,0.062761,-0.004819,
+ -0.061872,0.034015,0.997504,0.041735,0.063665,-0.004819,
+ -0.170695,0.080323,0.982045,0.041136,0.062825,-0.004839,
+ -0.061872,0.034015,0.997504,0.041735,0.063665,-0.004819,
+ -0.165314,0.090882,0.982045,0.041601,0.063738,-0.004839,
+ -0.175402,0.069446,0.982045,0.04073,0.061886,-0.004839,
+ -0.065648,0.025992,0.997504,0.040871,0.06183,-0.004819,
+ -0.063886,0.030062,0.997504,0.041274,0.062761,-0.004819,
+ -0.175402,0.069446,0.982045,0.04073,0.061886,-0.004839,
+ -0.063886,0.030062,0.997504,0.041274,0.062761,-0.004819,
+ -0.170695,0.080323,0.982045,0.041136,0.062825,-0.004839,
+ -0.065648,0.025992,0.997504,0.040871,0.06183,-0.004819,
+ -0.006883,0.002725,0.999973,0.041014,0.061773,-0.004818,
+ -0.006698,0.003152,0.999973,0.041413,0.062696,-0.004818,
+ -0.065648,0.025992,0.997504,0.040871,0.06183,-0.004819,
+ -0.006698,0.003152,0.999973,0.041413,0.062696,-0.004818,
+ -0.063886,0.030062,0.997504,0.041274,0.062761,-0.004819,
+ -0.06715,0.021818,0.997504,0.040528,0.060875,-0.004819,
+ -0.00704,0.002287,0.999973,0.040673,0.060828,-0.004818,
+ -0.006883,0.002725,0.999973,0.041014,0.061773,-0.004818,
+ -0.06715,0.021818,0.997504,0.040528,0.060875,-0.004819,
+ -0.006883,0.002725,0.999973,0.041014,0.061773,-0.004818,
+ -0.065648,0.025992,0.997504,0.040871,0.06183,-0.004819,
+ -0.068388,0.017559,0.997504,0.040245,0.059901,-0.004819,
+ -0.00717,0.001841,0.999973,0.040393,0.059863,-0.004818,
+ -0.00704,0.002287,0.999973,0.040673,0.060828,-0.004818,
+ -0.068388,0.017559,0.997504,0.040245,0.059901,-0.004819,
+ -0.00704,0.002287,0.999973,0.040673,0.060828,-0.004818,
+ -0.06715,0.021818,0.997504,0.040528,0.060875,-0.004819,
+ -0.069355,0.01323,0.997504,0.040023,0.058911,-0.004819,
+ -0.007271,0.001387,0.999973,0.040174,0.058882,-0.004818,
+ -0.00717,0.001841,0.999973,0.040393,0.059863,-0.004818,
+ -0.069355,0.01323,0.997504,0.040023,0.058911,-0.004819,
+ -0.00717,0.001841,0.999973,0.040393,0.059863,-0.004818,
+ -0.068388,0.017559,0.997504,0.040245,0.059901,-0.004819,
+ -0.070049,0.008849,0.997504,0.039865,0.057909,-0.004819,
+ -0.007344,0.000928,0.999973,0.040017,0.05789,-0.004818,
+ -0.007271,0.001387,0.999973,0.040174,0.058882,-0.004818,
+ -0.070049,0.008849,0.997504,0.039865,0.057909,-0.004819,
+ -0.007271,0.001387,0.999973,0.040174,0.058882,-0.004818,
+ -0.069355,0.01323,0.997504,0.040023,0.058911,-0.004819,
+ -0.070467,0.004433,0.997504,0.039769,0.056899,-0.004819,
+ -0.007388,0.000465,0.999973,0.039922,0.05689,-0.004818,
+ -0.007344,0.000928,0.999973,0.040017,0.05789,-0.004818,
+ -0.070467,0.004433,0.997504,0.039769,0.056899,-0.004819,
+ -0.007344,0.000928,0.999973,0.040017,0.05789,-0.004818,
+ -0.070049,0.008849,0.997504,0.039865,0.057909,-0.004819,
+ -0.070606,0,0.997504,0.039737,0.055885,-0.004819,
+ -0.007402,0,0.999973,0.039891,0.055885,-0.004818,
+ -0.007388,0.000465,0.999973,0.039922,0.05689,-0.004818,
+ -0.070606,0,0.997504,0.039737,0.055885,-0.004819,
+ -0.007388,0.000465,0.999973,0.039922,0.05689,-0.004818,
+ -0.070467,0.004433,0.997504,0.039769,0.056899,-0.004819,
+ -0.070467,-0.004433,0.997504,0.039769,0.054871,-0.004819,
+ -0.007388,-0.000465,0.999973,0.039922,0.054881,-0.004818,
+ -0.007402,0,0.999973,0.039891,0.055885,-0.004818,
+ -0.070467,-0.004433,0.997504,0.039769,0.054871,-0.004819,
+ -0.007402,0,0.999973,0.039891,0.055885,-0.004818,
+ -0.070606,0,0.997504,0.039737,0.055885,-0.004819,
+ -0.070049,-0.008849,0.997504,0.039865,0.053861,-0.004819,
+ -0.007344,-0.000928,0.999973,0.040017,0.053881,-0.004818,
+ -0.007388,-0.000465,0.999973,0.039922,0.054881,-0.004818,
+ -0.070049,-0.008849,0.997504,0.039865,0.053861,-0.004819,
+ -0.007388,-0.000465,0.999973,0.039922,0.054881,-0.004818,
+ -0.070467,-0.004433,0.997504,0.039769,0.054871,-0.004819,
+ -0.069355,-0.01323,0.997504,0.040023,0.052859,-0.004819,
+ -0.007271,-0.001387,0.999973,0.040174,0.052888,-0.004818,
+ -0.007344,-0.000928,0.999973,0.040017,0.053881,-0.004818,
+ -0.069355,-0.01323,0.997504,0.040023,0.052859,-0.004819,
+ -0.007344,-0.000928,0.999973,0.040017,0.053881,-0.004818,
+ -0.070049,-0.008849,0.997504,0.039865,0.053861,-0.004819,
+ -0.068388,-0.017559,0.997504,0.040245,0.051869,-0.004819,
+ -0.00717,-0.001841,0.999973,0.040393,0.051908,-0.004818,
+ -0.007271,-0.001387,0.999973,0.040174,0.052888,-0.004818,
+ -0.068388,-0.017559,0.997504,0.040245,0.051869,-0.004819,
+ -0.007271,-0.001387,0.999973,0.040174,0.052888,-0.004818,
+ -0.069355,-0.01323,0.997504,0.040023,0.052859,-0.004819,
+ -0.06715,-0.021818,0.997504,0.040528,0.050895,-0.004819,
+ -0.00704,-0.002287,0.999973,0.040673,0.050943,-0.004818,
+ -0.00717,-0.001841,0.999973,0.040393,0.051908,-0.004818,
+ -0.06715,-0.021818,0.997504,0.040528,0.050895,-0.004819,
+ -0.00717,-0.001841,0.999973,0.040393,0.051908,-0.004818,
+ -0.068388,-0.017559,0.997504,0.040245,0.051869,-0.004819,
+ -0.065648,-0.025992,0.997504,0.040871,0.049941,-0.004819,
+ -0.006883,-0.002725,0.999973,0.041014,0.049997,-0.004818,
+ -0.00704,-0.002287,0.999973,0.040673,0.050943,-0.004818,
+ -0.065648,-0.025992,0.997504,0.040871,0.049941,-0.004819,
+ -0.00704,-0.002287,0.999973,0.040673,0.050943,-0.004818,
+ -0.06715,-0.021818,0.997504,0.040528,0.050895,-0.004819,
+ -0.063886,-0.030062,0.997504,0.041274,0.04901,-0.004819,
+ -0.006698,-0.003152,0.999973,0.041413,0.049075,-0.004818,
+ -0.006883,-0.002725,0.999973,0.041014,0.049997,-0.004818,
+ -0.063886,-0.030062,0.997504,0.041274,0.04901,-0.004819,
+ -0.006883,-0.002725,0.999973,0.041014,0.049997,-0.004818,
+ -0.065648,-0.025992,0.997504,0.040871,0.049941,-0.004819,
+ -0.061872,-0.034015,0.997504,0.041735,0.048106,-0.004819,
+ -0.006487,-0.003566,0.999973,0.041869,0.04818,-0.004818,
+ -0.006698,-0.003152,0.999973,0.041413,0.049075,-0.004818,
+ -0.061872,-0.034015,0.997504,0.041735,0.048106,-0.004819,
+ -0.006698,-0.003152,0.999973,0.041413,0.049075,-0.004818,
+ -0.063886,-0.030062,0.997504,0.041274,0.04901,-0.004819,
+ -0.059614,-0.037832,0.997504,0.042251,0.047233,-0.004819,
+ -0.00625,-0.003966,0.999973,0.042381,0.047315,-0.004818,
+ -0.006487,-0.003566,0.999973,0.041869,0.04818,-0.004818,
+ -0.059614,-0.037832,0.997504,0.042251,0.047233,-0.004819,
+ -0.006487,-0.003566,0.999973,0.041869,0.04818,-0.004818,
+ -0.061872,-0.034015,0.997504,0.041735,0.048106,-0.004819,
+ -0.057121,-0.041501,0.997504,0.042821,0.046394,-0.004819,
+ -0.005989,-0.004351,0.999973,0.042945,0.046484,-0.004818,
+ -0.00625,-0.003966,0.999973,0.042381,0.047315,-0.004818,
+ -0.057121,-0.041501,0.997504,0.042821,0.046394,-0.004819,
+ -0.00625,-0.003966,0.999973,0.042381,0.047315,-0.004818,
+ -0.059614,-0.037832,0.997504,0.042251,0.047233,-0.004819,
+ -0.054403,-0.045006,0.997504,0.043443,0.045592,-0.004819,
+ -0.005704,-0.004718,0.999973,0.043561,0.04569,-0.004818,
+ -0.005989,-0.004351,0.999973,0.042945,0.046484,-0.004818,
+ -0.054403,-0.045006,0.997504,0.043443,0.045592,-0.004819,
+ -0.005989,-0.004351,0.999973,0.042945,0.046484,-0.004818,
+ -0.057121,-0.041501,0.997504,0.042821,0.046394,-0.004819,
+ -0.051469,-0.048333,0.997504,0.044114,0.044831,-0.004819,
+ -0.005396,-0.005067,0.999973,0.044226,0.044936,-0.004818,
+ -0.005704,-0.004718,0.999973,0.043561,0.04569,-0.004818,
+ -0.051469,-0.048333,0.997504,0.044114,0.044831,-0.004819,
+ -0.005704,-0.004718,0.999973,0.043561,0.04569,-0.004818,
+ -0.054403,-0.045006,0.997504,0.043443,0.045592,-0.004819,
+ -0.048333,-0.051469,0.997504,0.044831,0.044114,-0.004819,
+ -0.005067,-0.005396,0.999973,0.044936,0.044226,-0.004818,
+ -0.005396,-0.005067,0.999973,0.044226,0.044936,-0.004818,
+ -0.048333,-0.051469,0.997504,0.044831,0.044114,-0.004819,
+ -0.005396,-0.005067,0.999973,0.044226,0.044936,-0.004818,
+ -0.051469,-0.048333,0.997504,0.044114,0.044831,-0.004819,
+ -0.045006,-0.054403,0.997504,0.045592,0.043443,-0.004819,
+ -0.004718,-0.005704,0.999973,0.04569,0.043561,-0.004818,
+ -0.005067,-0.005396,0.999973,0.044936,0.044226,-0.004818,
+ -0.045006,-0.054403,0.997504,0.045592,0.043443,-0.004819,
+ -0.005067,-0.005396,0.999973,0.044936,0.044226,-0.004818,
+ -0.048333,-0.051469,0.997504,0.044831,0.044114,-0.004819,
+ -0.041501,-0.057121,0.997504,0.046394,0.042821,-0.004819,
+ -0.004351,-0.005989,0.999973,0.046484,0.042945,-0.004818,
+ -0.004718,-0.005704,0.999973,0.04569,0.043561,-0.004818,
+ -0.041501,-0.057121,0.997504,0.046394,0.042821,-0.004819,
+ -0.004718,-0.005704,0.999973,0.04569,0.043561,-0.004818,
+ -0.045006,-0.054403,0.997504,0.045592,0.043443,-0.004819,
+ -0.037832,-0.059614,0.997504,0.047233,0.042251,-0.004819,
+ -0.003966,-0.00625,0.999973,0.047315,0.042381,-0.004818,
+ -0.004351,-0.005989,0.999973,0.046484,0.042945,-0.004818,
+ -0.037832,-0.059614,0.997504,0.047233,0.042251,-0.004819,
+ -0.004351,-0.005989,0.999973,0.046484,0.042945,-0.004818,
+ -0.041501,-0.057121,0.997504,0.046394,0.042821,-0.004819,
+ -0.034015,-0.061872,0.997504,0.048106,0.041735,-0.004819,
+ -0.003566,-0.006487,0.999973,0.04818,0.041869,-0.004818,
+ -0.003966,-0.00625,0.999973,0.047315,0.042381,-0.004818,
+ -0.034015,-0.061872,0.997504,0.048106,0.041735,-0.004819,
+ -0.003966,-0.00625,0.999973,0.047315,0.042381,-0.004818,
+ -0.037832,-0.059614,0.997504,0.047233,0.042251,-0.004819,
+ -0.030062,-0.063886,0.997504,0.04901,0.041274,-0.004819,
+ -0.003152,-0.006698,0.999973,0.049075,0.041413,-0.004818,
+ -0.003566,-0.006487,0.999973,0.04818,0.041869,-0.004818,
+ -0.030062,-0.063886,0.997504,0.04901,0.041274,-0.004819,
+ -0.003566,-0.006487,0.999973,0.04818,0.041869,-0.004818,
+ -0.034015,-0.061872,0.997504,0.048106,0.041735,-0.004819,
+ -0.025992,-0.065648,0.997504,0.049941,0.040871,-0.004819,
+ -0.002725,-0.006883,0.999973,0.049997,0.041014,-0.004818,
+ -0.003152,-0.006698,0.999973,0.049075,0.041413,-0.004818,
+ -0.025992,-0.065648,0.997504,0.049941,0.040871,-0.004819,
+ -0.003152,-0.006698,0.999973,0.049075,0.041413,-0.004818,
+ -0.030062,-0.063886,0.997504,0.04901,0.041274,-0.004819,
+ -0.021818,-0.06715,0.997504,0.050895,0.040528,-0.004819,
+ -0.002287,-0.00704,0.999973,0.050943,0.040673,-0.004818,
+ -0.002725,-0.006883,0.999973,0.049997,0.041014,-0.004818,
+ -0.021818,-0.06715,0.997504,0.050895,0.040528,-0.004819,
+ -0.002725,-0.006883,0.999973,0.049997,0.041014,-0.004818,
+ -0.025992,-0.065648,0.997504,0.049941,0.040871,-0.004819,
+ -0.017559,-0.068388,0.997504,0.051869,0.040245,-0.004819,
+ -0.001841,-0.00717,0.999973,0.051908,0.040393,-0.004818,
+ -0.002287,-0.00704,0.999973,0.050943,0.040673,-0.004818,
+ -0.017559,-0.068388,0.997504,0.051869,0.040245,-0.004819,
+ -0.002287,-0.00704,0.999973,0.050943,0.040673,-0.004818,
+ -0.021818,-0.06715,0.997504,0.050895,0.040528,-0.004819,
+ -0.01323,-0.069355,0.997504,0.052859,0.040023,-0.004819,
+ -0.001387,-0.007271,0.999973,0.052888,0.040174,-0.004818,
+ -0.001841,-0.00717,0.999973,0.051908,0.040393,-0.004818,
+ -0.01323,-0.069355,0.997504,0.052859,0.040023,-0.004819,
+ -0.001841,-0.00717,0.999973,0.051908,0.040393,-0.004818,
+ -0.017559,-0.068388,0.997504,0.051869,0.040245,-0.004819,
+ -0.008849,-0.070049,0.997504,0.053861,0.039865,-0.004819,
+ -0.000928,-0.007344,0.999973,0.053881,0.040017,-0.004818,
+ -0.001387,-0.007271,0.999973,0.052888,0.040174,-0.004818,
+ -0.008849,-0.070049,0.997504,0.053861,0.039865,-0.004819,
+ -0.001387,-0.007271,0.999973,0.052888,0.040174,-0.004818,
+ -0.01323,-0.069355,0.997504,0.052859,0.040023,-0.004819,
+ -0.004433,-0.070467,0.997504,0.054871,0.039769,-0.004819,
+ -0.000465,-0.007388,0.999973,0.054881,0.039922,-0.004818,
+ -0.000928,-0.007344,0.999973,0.053881,0.040017,-0.004818,
+ -0.004433,-0.070467,0.997504,0.054871,0.039769,-0.004819,
+ -0.000928,-0.007344,0.999973,0.053881,0.040017,-0.004818,
+ -0.008849,-0.070049,0.997504,0.053861,0.039865,-0.004819,
+ 0,-0.070606,0.997504,0.055885,0.039737,-0.004819,
+ 0,-0.007402,0.999973,0.055885,0.039891,-0.004818,
+ -0.000465,-0.007388,0.999973,0.054881,0.039922,-0.004818,
+ 0,-0.070606,0.997504,0.055885,0.039737,-0.004819,
+ -0.000465,-0.007388,0.999973,0.054881,0.039922,-0.004818,
+ -0.004433,-0.070467,0.997504,0.054871,0.039769,-0.004819,
+ 0.004433,-0.070467,0.997504,0.056899,0.039769,-0.004819,
+ 0.000465,-0.007388,0.999973,0.05689,0.039922,-0.004818,
+ 0,-0.007402,0.999973,0.055885,0.039891,-0.004818,
+ 0.004433,-0.070467,0.997504,0.056899,0.039769,-0.004819,
+ 0,-0.007402,0.999973,0.055885,0.039891,-0.004818,
+ 0,-0.070606,0.997504,0.055885,0.039737,-0.004819,
+ 0.008849,-0.070049,0.997504,0.057909,0.039865,-0.004819,
+ 0.000928,-0.007344,0.999973,0.05789,0.040017,-0.004818,
+ 0.000465,-0.007388,0.999973,0.05689,0.039922,-0.004818,
+ 0.008849,-0.070049,0.997504,0.057909,0.039865,-0.004819,
+ 0.000465,-0.007388,0.999973,0.05689,0.039922,-0.004818,
+ 0.004433,-0.070467,0.997504,0.056899,0.039769,-0.004819,
+ 0.01323,-0.069355,0.997504,0.058911,0.040023,-0.004819,
+ 0.001387,-0.007271,0.999973,0.058882,0.040174,-0.004818,
+ 0.000928,-0.007344,0.999973,0.05789,0.040017,-0.004818,
+ 0.01323,-0.069355,0.997504,0.058911,0.040023,-0.004819,
+ 0.000928,-0.007344,0.999973,0.05789,0.040017,-0.004818,
+ 0.008849,-0.070049,0.997504,0.057909,0.039865,-0.004819,
+ 0.017559,-0.068388,0.997504,0.059901,0.040245,-0.004819,
+ 0.001841,-0.00717,0.999973,0.059863,0.040393,-0.004818,
+ 0.001387,-0.007271,0.999973,0.058882,0.040174,-0.004818,
+ 0.017559,-0.068388,0.997504,0.059901,0.040245,-0.004819,
+ 0.001387,-0.007271,0.999973,0.058882,0.040174,-0.004818,
+ 0.01323,-0.069355,0.997504,0.058911,0.040023,-0.004819,
+ 0.021818,-0.06715,0.997504,0.060875,0.040528,-0.004819,
+ 0.002287,-0.00704,0.999973,0.060828,0.040673,-0.004818,
+ 0.001841,-0.00717,0.999973,0.059863,0.040393,-0.004818,
+ 0.021818,-0.06715,0.997504,0.060875,0.040528,-0.004819,
+ 0.001841,-0.00717,0.999973,0.059863,0.040393,-0.004818,
+ 0.017559,-0.068388,0.997504,0.059901,0.040245,-0.004819,
+ 0.025992,-0.065648,0.997504,0.06183,0.040871,-0.004819,
+ 0.002725,-0.006883,0.999973,0.061773,0.041014,-0.004818,
+ 0.002287,-0.00704,0.999973,0.060828,0.040673,-0.004818,
+ 0.025992,-0.065648,0.997504,0.06183,0.040871,-0.004819,
+ 0.002287,-0.00704,0.999973,0.060828,0.040673,-0.004818,
+ 0.021818,-0.06715,0.997504,0.060875,0.040528,-0.004819,
+ 0.030062,-0.063886,0.997504,0.062761,0.041274,-0.004819,
+ 0.003152,-0.006698,0.999973,0.062696,0.041413,-0.004818,
+ 0.002725,-0.006883,0.999973,0.061773,0.041014,-0.004818,
+ 0.030062,-0.063886,0.997504,0.062761,0.041274,-0.004819,
+ 0.002725,-0.006883,0.999973,0.061773,0.041014,-0.004818,
+ 0.025992,-0.065648,0.997504,0.06183,0.040871,-0.004819,
+ 0.034015,-0.061872,0.997504,0.063665,0.041735,-0.004819,
+ 0.003566,-0.006487,0.999973,0.063591,0.041869,-0.004818,
+ 0.003152,-0.006698,0.999973,0.062696,0.041413,-0.004818,
+ 0.034015,-0.061872,0.997504,0.063665,0.041735,-0.004819,
+ 0.003152,-0.006698,0.999973,0.062696,0.041413,-0.004818,
+ 0.030062,-0.063886,0.997504,0.062761,0.041274,-0.004819,
+ 0.037832,-0.059614,0.997504,0.064538,0.042251,-0.004819,
+ 0.003966,-0.00625,0.999973,0.064456,0.042381,-0.004818,
+ 0.003566,-0.006487,0.999973,0.063591,0.041869,-0.004818,
+ 0.037832,-0.059614,0.997504,0.064538,0.042251,-0.004819,
+ 0.003566,-0.006487,0.999973,0.063591,0.041869,-0.004818,
+ 0.034015,-0.061872,0.997504,0.063665,0.041735,-0.004819,
+ 0.041501,-0.057121,0.997504,0.065377,0.042821,-0.004819,
+ 0.004351,-0.005989,0.999973,0.065287,0.042945,-0.004818,
+ 0.003966,-0.00625,0.999973,0.064456,0.042381,-0.004818,
+ 0.041501,-0.057121,0.997504,0.065377,0.042821,-0.004819,
+ 0.003966,-0.00625,0.999973,0.064456,0.042381,-0.004818,
+ 0.037832,-0.059614,0.997504,0.064538,0.042251,-0.004819,
+ 0.045006,-0.054403,0.997504,0.066178,0.043443,-0.004819,
+ 0.004718,-0.005704,0.999973,0.066081,0.043561,-0.004818,
+ 0.004351,-0.005989,0.999973,0.065287,0.042945,-0.004818,
+ 0.045006,-0.054403,0.997504,0.066178,0.043443,-0.004819,
+ 0.004351,-0.005989,0.999973,0.065287,0.042945,-0.004818,
+ 0.041501,-0.057121,0.997504,0.065377,0.042821,-0.004819,
+ 0.048333,-0.051469,0.997504,0.066939,0.044114,-0.004819,
+ 0.005067,-0.005396,0.999973,0.066834,0.044226,-0.004818,
+ 0.004718,-0.005704,0.999973,0.066081,0.043561,-0.004818,
+ 0.048333,-0.051469,0.997504,0.066939,0.044114,-0.004819,
+ 0.004718,-0.005704,0.999973,0.066081,0.043561,-0.004818,
+ 0.045006,-0.054403,0.997504,0.066178,0.043443,-0.004819,
+ 0.051469,-0.048333,0.997504,0.067657,0.044831,-0.004819,
+ 0.005396,-0.005067,0.999973,0.067545,0.044936,-0.004818,
+ 0.005067,-0.005396,0.999973,0.066834,0.044226,-0.004818,
+ 0.051469,-0.048333,0.997504,0.067657,0.044831,-0.004819,
+ 0.005067,-0.005396,0.999973,0.066834,0.044226,-0.004818,
+ 0.048333,-0.051469,0.997504,0.066939,0.044114,-0.004819,
+ 0.054403,-0.045006,0.997504,0.068328,0.045592,-0.004819,
+ 0.005704,-0.004718,0.999973,0.06821,0.04569,-0.004818,
+ 0.005396,-0.005067,0.999973,0.067545,0.044936,-0.004818,
+ 0.054403,-0.045006,0.997504,0.068328,0.045592,-0.004819,
+ 0.005396,-0.005067,0.999973,0.067545,0.044936,-0.004818,
+ 0.051469,-0.048333,0.997504,0.067657,0.044831,-0.004819,
+ 0.057121,-0.041501,0.997504,0.068949,0.046394,-0.004819,
+ 0.005989,-0.004351,0.999973,0.068825,0.046484,-0.004818,
+ 0.005704,-0.004718,0.999973,0.06821,0.04569,-0.004818,
+ 0.057121,-0.041501,0.997504,0.068949,0.046394,-0.004819,
+ 0.005704,-0.004718,0.999973,0.06821,0.04569,-0.004818,
+ 0.054403,-0.045006,0.997504,0.068328,0.045592,-0.004819,
+ 0.059614,-0.037832,0.997504,0.06952,0.047233,-0.004819,
+ 0.00625,-0.003966,0.999973,0.06939,0.047315,-0.004818,
+ 0.005989,-0.004351,0.999973,0.068825,0.046484,-0.004818,
+ 0.059614,-0.037832,0.997504,0.06952,0.047233,-0.004819,
+ 0.005989,-0.004351,0.999973,0.068825,0.046484,-0.004818,
+ 0.057121,-0.041501,0.997504,0.068949,0.046394,-0.004819,
+ 0.061872,-0.034015,0.997504,0.070036,0.048106,-0.004819,
+ 0.006487,-0.003566,0.999973,0.069902,0.04818,-0.004818,
+ 0.00625,-0.003966,0.999973,0.06939,0.047315,-0.004818,
+ 0.061872,-0.034015,0.997504,0.070036,0.048106,-0.004819,
+ 0.00625,-0.003966,0.999973,0.06939,0.047315,-0.004818,
+ 0.059614,-0.037832,0.997504,0.06952,0.047233,-0.004819,
+ 0.063886,-0.030062,0.997504,0.070497,0.04901,-0.004819,
+ 0.006698,-0.003152,0.999973,0.070358,0.049075,-0.004818,
+ 0.006487,-0.003566,0.999973,0.069902,0.04818,-0.004818,
+ 0.063886,-0.030062,0.997504,0.070497,0.04901,-0.004819,
+ 0.006487,-0.003566,0.999973,0.069902,0.04818,-0.004818,
+ 0.061872,-0.034015,0.997504,0.070036,0.048106,-0.004819,
+ 0.065648,-0.025992,0.997504,0.070899,0.049941,-0.004819,
+ 0.006883,-0.002725,0.999973,0.070757,0.049997,-0.004818,
+ 0.006698,-0.003152,0.999973,0.070358,0.049075,-0.004818,
+ 0.065648,-0.025992,0.997504,0.070899,0.049941,-0.004819,
+ 0.006698,-0.003152,0.999973,0.070358,0.049075,-0.004818,
+ 0.063886,-0.030062,0.997504,0.070497,0.04901,-0.004819,
+ 0.06715,-0.021818,0.997504,0.071243,0.050895,-0.004819,
+ 0.00704,-0.002287,0.999973,0.071097,0.050943,-0.004818,
+ 0.006883,-0.002725,0.999973,0.070757,0.049997,-0.004818,
+ 0.06715,-0.021818,0.997504,0.071243,0.050895,-0.004819,
+ 0.006883,-0.002725,0.999973,0.070757,0.049997,-0.004818,
+ 0.065648,-0.025992,0.997504,0.070899,0.049941,-0.004819,
+ 0.068388,-0.017559,0.997504,0.071526,0.051869,-0.004819,
+ 0.00717,-0.001841,0.999973,0.071377,0.051908,-0.004818,
+ 0.00704,-0.002287,0.999973,0.071097,0.050943,-0.004818,
+ 0.068388,-0.017559,0.997504,0.071526,0.051869,-0.004819,
+ 0.00704,-0.002287,0.999973,0.071097,0.050943,-0.004818,
+ 0.06715,-0.021818,0.997504,0.071243,0.050895,-0.004819,
+ 0.069355,-0.01323,0.997504,0.071747,0.052859,-0.004819,
+ 0.007271,-0.001387,0.999973,0.071597,0.052888,-0.004818,
+ 0.00717,-0.001841,0.999973,0.071377,0.051908,-0.004818,
+ 0.069355,-0.01323,0.997504,0.071747,0.052859,-0.004819,
+ 0.00717,-0.001841,0.999973,0.071377,0.051908,-0.004818,
+ 0.068388,-0.017559,0.997504,0.071526,0.051869,-0.004819,
+ 0.070049,-0.008849,0.997504,0.071906,0.053861,-0.004819,
+ 0.007344,-0.000928,0.999973,0.071754,0.053881,-0.004818,
+ 0.007271,-0.001387,0.999973,0.071597,0.052888,-0.004818,
+ 0.070049,-0.008849,0.997504,0.071906,0.053861,-0.004819,
+ 0.007271,-0.001387,0.999973,0.071597,0.052888,-0.004818,
+ 0.069355,-0.01323,0.997504,0.071747,0.052859,-0.004819,
+ 0.070467,-0.004433,0.997504,0.072001,0.054871,-0.004819,
+ 0.007388,-0.000465,0.999973,0.071848,0.054881,-0.004818,
+ 0.007344,-0.000928,0.999973,0.071754,0.053881,-0.004818,
+ 0.070467,-0.004433,0.997504,0.072001,0.054871,-0.004819,
+ 0.007344,-0.000928,0.999973,0.071754,0.053881,-0.004818,
+ 0.070049,-0.008849,0.997504,0.071906,0.053861,-0.004819,
+ 0.070606,0,0.997504,0.072033,0.055885,-0.004819,
+ 0.007402,0,0.999973,0.07188,0.055885,-0.004818,
+ 0.007388,-0.000465,0.999973,0.071848,0.054881,-0.004818,
+ 0.070606,0,0.997504,0.072033,0.055885,-0.004819,
+ 0.007388,-0.000465,0.999973,0.071848,0.054881,-0.004818,
+ 0.070467,-0.004433,0.997504,0.072001,0.054871,-0.004819,
+ 0.070467,0.004433,0.997504,0.072001,0.056899,-0.004819,
+ 0.007388,0.000465,0.999973,0.071848,0.05689,-0.004818,
+ 0.007402,0,0.999973,0.07188,0.055885,-0.004818,
+ 0.070467,0.004433,0.997504,0.072001,0.056899,-0.004819,
+ 0.007402,0,0.999973,0.07188,0.055885,-0.004818,
+ 0.070606,0,0.997504,0.072033,0.055885,-0.004819,
+ 0.070049,0.008849,0.997504,0.071906,0.057909,-0.004819,
+ 0.007344,0.000928,0.999973,0.071754,0.05789,-0.004818,
+ 0.007388,0.000465,0.999973,0.071848,0.05689,-0.004818,
+ 0.070049,0.008849,0.997504,0.071906,0.057909,-0.004819,
+ 0.007388,0.000465,0.999973,0.071848,0.05689,-0.004818,
+ 0.070467,0.004433,0.997504,0.072001,0.056899,-0.004819,
+ 0.069355,0.01323,0.997504,0.071747,0.058911,-0.004819,
+ 0.007271,0.001387,0.999973,0.071597,0.058882,-0.004818,
+ 0.007344,0.000928,0.999973,0.071754,0.05789,-0.004818,
+ 0.069355,0.01323,0.997504,0.071747,0.058911,-0.004819,
+ 0.007344,0.000928,0.999973,0.071754,0.05789,-0.004818,
+ 0.070049,0.008849,0.997504,0.071906,0.057909,-0.004819,
+ 0.068388,0.017559,0.997504,0.071526,0.059901,-0.004819,
+ 0.00717,0.001841,0.999973,0.071377,0.059863,-0.004818,
+ 0.007271,0.001387,0.999973,0.071597,0.058882,-0.004818,
+ 0.068388,0.017559,0.997504,0.071526,0.059901,-0.004819,
+ 0.007271,0.001387,0.999973,0.071597,0.058882,-0.004818,
+ 0.069355,0.01323,0.997504,0.071747,0.058911,-0.004819,
+ 0.06715,0.021818,0.997504,0.071243,0.060875,-0.004819,
+ 0.00704,0.002287,0.999973,0.071097,0.060828,-0.004818,
+ 0.00717,0.001841,0.999973,0.071377,0.059863,-0.004818,
+ 0.06715,0.021818,0.997504,0.071243,0.060875,-0.004819,
+ 0.00717,0.001841,0.999973,0.071377,0.059863,-0.004818,
+ 0.068388,0.017559,0.997504,0.071526,0.059901,-0.004819,
+ 0.065648,0.025992,0.997504,0.070899,0.06183,-0.004819,
+ 0.006883,0.002725,0.999973,0.070757,0.061773,-0.004818,
+ 0.00704,0.002287,0.999973,0.071097,0.060828,-0.004818,
+ 0.065648,0.025992,0.997504,0.070899,0.06183,-0.004819,
+ 0.00704,0.002287,0.999973,0.071097,0.060828,-0.004818,
+ 0.06715,0.021818,0.997504,0.071243,0.060875,-0.004819,
+ 0.063886,0.030062,0.997504,0.070497,0.062761,-0.004819,
+ 0.006698,0.003152,0.999973,0.070358,0.062696,-0.004818,
+ 0.006883,0.002725,0.999973,0.070757,0.061773,-0.004818,
+ 0.063886,0.030062,0.997504,0.070497,0.062761,-0.004819,
+ 0.006883,0.002725,0.999973,0.070757,0.061773,-0.004818,
+ 0.065648,0.025992,0.997504,0.070899,0.06183,-0.004819,
+ 0.061872,0.034015,0.997504,0.070036,0.063665,-0.004819,
+ 0.006487,0.003566,0.999973,0.069902,0.063591,-0.004818,
+ 0.006698,0.003152,0.999973,0.070358,0.062696,-0.004818,
+ 0.061872,0.034015,0.997504,0.070036,0.063665,-0.004819,
+ 0.006698,0.003152,0.999973,0.070358,0.062696,-0.004818,
+ 0.063886,0.030062,0.997504,0.070497,0.062761,-0.004819,
+ 0.059614,0.037832,0.997504,0.06952,0.064538,-0.004819,
+ 0.00625,0.003966,0.999973,0.06939,0.064456,-0.004818,
+ 0.006487,0.003566,0.999973,0.069902,0.063591,-0.004818,
+ 0.059614,0.037832,0.997504,0.06952,0.064538,-0.004819,
+ 0.006487,0.003566,0.999973,0.069902,0.063591,-0.004818,
+ 0.061872,0.034015,0.997504,0.070036,0.063665,-0.004819,
+ 0.057121,0.041501,0.997504,0.068949,0.065377,-0.004819,
+ 0.005989,0.004351,0.999973,0.068825,0.065287,-0.004818,
+ 0.00625,0.003966,0.999973,0.06939,0.064456,-0.004818,
+ 0.057121,0.041501,0.997504,0.068949,0.065377,-0.004819,
+ 0.00625,0.003966,0.999973,0.06939,0.064456,-0.004818,
+ 0.059614,0.037832,0.997504,0.06952,0.064538,-0.004819,
+ 0.054403,0.045006,0.997504,0.068328,0.066178,-0.004819,
+ 0.005704,0.004718,0.999973,0.06821,0.066081,-0.004818,
+ 0.005989,0.004351,0.999973,0.068825,0.065287,-0.004818,
+ 0.054403,0.045006,0.997504,0.068328,0.066178,-0.004819,
+ 0.005989,0.004351,0.999973,0.068825,0.065287,-0.004818,
+ 0.057121,0.041501,0.997504,0.068949,0.065377,-0.004819,
+ 0.051469,0.048333,0.997504,0.067657,0.066939,-0.004819,
+ 0.005396,0.005067,0.999973,0.067545,0.066834,-0.004818,
+ 0.005704,0.004718,0.999973,0.06821,0.066081,-0.004818,
+ 0.051469,0.048333,0.997504,0.067657,0.066939,-0.004819,
+ 0.005704,0.004718,0.999973,0.06821,0.066081,-0.004818,
+ 0.054403,0.045006,0.997504,0.068328,0.066178,-0.004819,
+ 0.048333,0.051469,0.997504,0.066939,0.067657,-0.004819,
+ 0.005067,0.005396,0.999973,0.066834,0.067545,-0.004818,
+ 0.005396,0.005067,0.999973,0.067545,0.066834,-0.004818,
+ 0.048333,0.051469,0.997504,0.066939,0.067657,-0.004819,
+ 0.005396,0.005067,0.999973,0.067545,0.066834,-0.004818,
+ 0.051469,0.048333,0.997504,0.067657,0.066939,-0.004819,
+ 0.045006,0.054403,0.997504,0.066178,0.068328,-0.004819,
+ 0.004718,0.005704,0.999973,0.066081,0.06821,-0.004818,
+ 0.005067,0.005396,0.999973,0.066834,0.067545,-0.004818,
+ 0.045006,0.054403,0.997504,0.066178,0.068328,-0.004819,
+ 0.005067,0.005396,0.999973,0.066834,0.067545,-0.004818,
+ 0.048333,0.051469,0.997504,0.066939,0.067657,-0.004819,
+ 0.041501,0.057121,0.997504,0.065377,0.068949,-0.004819,
+ 0.004351,0.005989,0.999973,0.065287,0.068825,-0.004818,
+ 0.004718,0.005704,0.999973,0.066081,0.06821,-0.004818,
+ 0.041501,0.057121,0.997504,0.065377,0.068949,-0.004819,
+ 0.004718,0.005704,0.999973,0.066081,0.06821,-0.004818,
+ 0.045006,0.054403,0.997504,0.066178,0.068328,-0.004819,
+ 0.037832,0.059614,0.997504,0.064538,0.06952,-0.004819,
+ 0.003966,0.00625,0.999973,0.064456,0.06939,-0.004818,
+ 0.004351,0.005989,0.999973,0.065287,0.068825,-0.004818,
+ 0.037832,0.059614,0.997504,0.064538,0.06952,-0.004819,
+ 0.004351,0.005989,0.999973,0.065287,0.068825,-0.004818,
+ 0.041501,0.057121,0.997504,0.065377,0.068949,-0.004819,
+ 0.034015,0.061872,0.997504,0.063665,0.070036,-0.004819,
+ 0.003566,0.006487,0.999973,0.063591,0.069902,-0.004818,
+ 0.003966,0.00625,0.999973,0.064456,0.06939,-0.004818,
+ 0.034015,0.061872,0.997504,0.063665,0.070036,-0.004819,
+ 0.003966,0.00625,0.999973,0.064456,0.06939,-0.004818,
+ 0.037832,0.059614,0.997504,0.064538,0.06952,-0.004819,
+ 0.030062,0.063886,0.997504,0.062761,0.070497,-0.004819,
+ 0.003152,0.006698,0.999973,0.062696,0.070358,-0.004818,
+ 0.003566,0.006487,0.999973,0.063591,0.069902,-0.004818,
+ 0.030062,0.063886,0.997504,0.062761,0.070497,-0.004819,
+ 0.003566,0.006487,0.999973,0.063591,0.069902,-0.004818,
+ 0.034015,0.061872,0.997504,0.063665,0.070036,-0.004819,
+ 0.025992,0.065648,0.997504,0.06183,0.070899,-0.004819,
+ 0.002725,0.006883,0.999973,0.061773,0.070757,-0.004818,
+ 0.003152,0.006698,0.999973,0.062696,0.070358,-0.004818,
+ 0.025992,0.065648,0.997504,0.06183,0.070899,-0.004819,
+ 0.003152,0.006698,0.999973,0.062696,0.070358,-0.004818,
+ 0.030062,0.063886,0.997504,0.062761,0.070497,-0.004819,
+ 0.021818,0.06715,0.997504,0.060875,0.071243,-0.004819,
+ 0.002287,0.00704,0.999973,0.060828,0.071097,-0.004818,
+ 0.002725,0.006883,0.999973,0.061773,0.070757,-0.004818,
+ 0.021818,0.06715,0.997504,0.060875,0.071243,-0.004819,
+ 0.002725,0.006883,0.999973,0.061773,0.070757,-0.004818,
+ 0.025992,0.065648,0.997504,0.06183,0.070899,-0.004819,
+ 0.017559,0.068388,0.997504,0.059901,0.071526,-0.004819,
+ 0.001841,0.00717,0.999973,0.059863,0.071377,-0.004818,
+ 0.002287,0.00704,0.999973,0.060828,0.071097,-0.004818,
+ 0.017559,0.068388,0.997504,0.059901,0.071526,-0.004819,
+ 0.002287,0.00704,0.999973,0.060828,0.071097,-0.004818,
+ 0.021818,0.06715,0.997504,0.060875,0.071243,-0.004819,
+ 0.01323,0.069355,0.997504,0.058911,0.071747,-0.004819,
+ 0.001387,0.007271,0.999973,0.058882,0.071597,-0.004818,
+ 0.001841,0.00717,0.999973,0.059863,0.071377,-0.004818,
+ 0.01323,0.069355,0.997504,0.058911,0.071747,-0.004819,
+ 0.001841,0.00717,0.999973,0.059863,0.071377,-0.004818,
+ 0.017559,0.068388,0.997504,0.059901,0.071526,-0.004819,
+ 0.008849,0.070049,0.997504,0.057909,0.071906,-0.004819,
+ 0.000928,0.007344,0.999973,0.05789,0.071754,-0.004818,
+ 0.001387,0.007271,0.999973,0.058882,0.071597,-0.004818,
+ 0.008849,0.070049,0.997504,0.057909,0.071906,-0.004819,
+ 0.001387,0.007271,0.999973,0.058882,0.071597,-0.004818,
+ 0.01323,0.069355,0.997504,0.058911,0.071747,-0.004819,
+ 0.004433,0.070467,0.997504,0.056899,0.072001,-0.004819,
+ 0.000465,0.007388,0.999973,0.05689,0.071848,-0.004818,
+ 0.000928,0.007344,0.999973,0.05789,0.071754,-0.004818,
+ 0.004433,0.070467,0.997504,0.056899,0.072001,-0.004819,
+ 0.000928,0.007344,0.999973,0.05789,0.071754,-0.004818,
+ 0.008849,0.070049,0.997504,0.057909,0.071906,-0.004819,
+ 0,0.070606,0.997504,0.055885,0.072033,-0.004819,
+ 0,0.007402,0.999973,0.055885,0.07188,-0.004818,
+ 0.000465,0.007388,0.999973,0.05689,0.071848,-0.004818,
+ 0,0.070606,0.997504,0.055885,0.072033,-0.004819,
+ 0.000465,0.007388,0.999973,0.05689,0.071848,-0.004818,
+ 0.004433,0.070467,0.997504,0.056899,0.072001,-0.004819,
+ -0.004433,0.070467,0.997504,0.054871,0.072001,-0.004819,
+ -0.000465,0.007388,0.999973,0.054881,0.071848,-0.004818,
+ 0,0.007402,0.999973,0.055885,0.07188,-0.004818,
+ -0.004433,0.070467,0.997504,0.054871,0.072001,-0.004819,
+ 0,0.007402,0.999973,0.055885,0.07188,-0.004818,
+ 0,0.070606,0.997504,0.055885,0.072033,-0.004819,
+ -0.008849,0.070049,0.997504,0.053861,0.071906,-0.004819,
+ -0.000928,0.007344,0.999973,0.053881,0.071754,-0.004818,
+ -0.000465,0.007388,0.999973,0.054881,0.071848,-0.004818,
+ -0.008849,0.070049,0.997504,0.053861,0.071906,-0.004819,
+ -0.000465,0.007388,0.999973,0.054881,0.071848,-0.004818,
+ -0.004433,0.070467,0.997504,0.054871,0.072001,-0.004819,
+ -0.01323,0.069355,0.997504,0.052859,0.071747,-0.004819,
+ -0.001387,0.007271,0.999973,0.052888,0.071597,-0.004818,
+ -0.000928,0.007344,0.999973,0.053881,0.071754,-0.004818,
+ -0.01323,0.069355,0.997504,0.052859,0.071747,-0.004819,
+ -0.000928,0.007344,0.999973,0.053881,0.071754,-0.004818,
+ -0.008849,0.070049,0.997504,0.053861,0.071906,-0.004819,
+ -0.017559,0.068388,0.997504,0.051869,0.071526,-0.004819,
+ -0.001841,0.00717,0.999973,0.051908,0.071377,-0.004818,
+ -0.001387,0.007271,0.999973,0.052888,0.071597,-0.004818,
+ -0.017559,0.068388,0.997504,0.051869,0.071526,-0.004819,
+ -0.001387,0.007271,0.999973,0.052888,0.071597,-0.004818,
+ -0.01323,0.069355,0.997504,0.052859,0.071747,-0.004819,
+ -0.021818,0.06715,0.997504,0.050895,0.071243,-0.004819,
+ -0.002287,0.00704,0.999973,0.050943,0.071097,-0.004818,
+ -0.001841,0.00717,0.999973,0.051908,0.071377,-0.004818,
+ -0.021818,0.06715,0.997504,0.050895,0.071243,-0.004819,
+ -0.001841,0.00717,0.999973,0.051908,0.071377,-0.004818,
+ -0.017559,0.068388,0.997504,0.051869,0.071526,-0.004819,
+ -0.025992,0.065648,0.997504,0.049941,0.070899,-0.004819,
+ -0.002725,0.006883,0.999973,0.049997,0.070757,-0.004818,
+ -0.002287,0.00704,0.999973,0.050943,0.071097,-0.004818,
+ -0.025992,0.065648,0.997504,0.049941,0.070899,-0.004819,
+ -0.002287,0.00704,0.999973,0.050943,0.071097,-0.004818,
+ -0.021818,0.06715,0.997504,0.050895,0.071243,-0.004819,
+ -0.030062,0.063886,0.997504,0.04901,0.070497,-0.004819,
+ -0.003152,0.006698,0.999973,0.049075,0.070358,-0.004818,
+ -0.002725,0.006883,0.999973,0.049997,0.070757,-0.004818,
+ -0.030062,0.063886,0.997504,0.04901,0.070497,-0.004819,
+ -0.002725,0.006883,0.999973,0.049997,0.070757,-0.004818,
+ -0.025992,0.065648,0.997504,0.049941,0.070899,-0.004819,
+ -0.034015,0.061872,0.997504,0.048106,0.070036,-0.004819,
+ -0.003566,0.006487,0.999973,0.04818,0.069902,-0.004818,
+ -0.003152,0.006698,0.999973,0.049075,0.070358,-0.004818,
+ -0.034015,0.061872,0.997504,0.048106,0.070036,-0.004819,
+ -0.003152,0.006698,0.999973,0.049075,0.070358,-0.004818,
+ -0.030062,0.063886,0.997504,0.04901,0.070497,-0.004819,
+ -0.037832,0.059614,0.997504,0.047233,0.06952,-0.004819,
+ -0.003966,0.00625,0.999973,0.047315,0.06939,-0.004818,
+ -0.003566,0.006487,0.999973,0.04818,0.069902,-0.004818,
+ -0.037832,0.059614,0.997504,0.047233,0.06952,-0.004819,
+ -0.003566,0.006487,0.999973,0.04818,0.069902,-0.004818,
+ -0.034015,0.061872,0.997504,0.048106,0.070036,-0.004819,
+ -0.041501,0.057121,0.997504,0.046394,0.068949,-0.004819,
+ -0.004351,0.005989,0.999973,0.046484,0.068825,-0.004818,
+ -0.003966,0.00625,0.999973,0.047315,0.06939,-0.004818,
+ -0.041501,0.057121,0.997504,0.046394,0.068949,-0.004819,
+ -0.003966,0.00625,0.999973,0.047315,0.06939,-0.004818,
+ -0.037832,0.059614,0.997504,0.047233,0.06952,-0.004819,
+ -0.045006,0.054403,0.997504,0.045592,0.068328,-0.004819,
+ -0.004718,0.005704,0.999973,0.04569,0.06821,-0.004818,
+ -0.004351,0.005989,0.999973,0.046484,0.068825,-0.004818,
+ -0.045006,0.054403,0.997504,0.045592,0.068328,-0.004819,
+ -0.004351,0.005989,0.999973,0.046484,0.068825,-0.004818,
+ -0.041501,0.057121,0.997504,0.046394,0.068949,-0.004819,
+ -0.048333,0.051469,0.997504,0.044831,0.067657,-0.004819,
+ -0.005067,0.005396,0.999973,0.044936,0.067545,-0.004818,
+ -0.004718,0.005704,0.999973,0.04569,0.06821,-0.004818,
+ -0.048333,0.051469,0.997504,0.044831,0.067657,-0.004819,
+ -0.004718,0.005704,0.999973,0.04569,0.06821,-0.004818,
+ -0.045006,0.054403,0.997504,0.045592,0.068328,-0.004819,
+ -0.051469,0.048333,0.997504,0.044114,0.066939,-0.004819,
+ -0.005396,0.005067,0.999973,0.044226,0.066834,-0.004818,
+ -0.005067,0.005396,0.999973,0.044936,0.067545,-0.004818,
+ -0.051469,0.048333,0.997504,0.044114,0.066939,-0.004819,
+ -0.005067,0.005396,0.999973,0.044936,0.067545,-0.004818,
+ -0.048333,0.051469,0.997504,0.044831,0.067657,-0.004819,
+ -0.054403,0.045006,0.997504,0.043443,0.066178,-0.004819,
+ -0.005704,0.004718,0.999973,0.043561,0.066081,-0.004818,
+ -0.005396,0.005067,0.999973,0.044226,0.066834,-0.004818,
+ -0.054403,0.045006,0.997504,0.043443,0.066178,-0.004819,
+ -0.005396,0.005067,0.999973,0.044226,0.066834,-0.004818,
+ -0.051469,0.048333,0.997504,0.044114,0.066939,-0.004819,
+ -0.057121,0.041501,0.997504,0.042821,0.065377,-0.004819,
+ -0.005989,0.004351,0.999973,0.042945,0.065287,-0.004818,
+ -0.005704,0.004718,0.999973,0.043561,0.066081,-0.004818,
+ -0.057121,0.041501,0.997504,0.042821,0.065377,-0.004819,
+ -0.005704,0.004718,0.999973,0.043561,0.066081,-0.004818,
+ -0.054403,0.045006,0.997504,0.043443,0.066178,-0.004819,
+ -0.059614,0.037832,0.997504,0.042251,0.064538,-0.004819,
+ -0.00625,0.003966,0.999973,0.042381,0.064456,-0.004818,
+ -0.005989,0.004351,0.999973,0.042945,0.065287,-0.004818,
+ -0.059614,0.037832,0.997504,0.042251,0.064538,-0.004819,
+ -0.005989,0.004351,0.999973,0.042945,0.065287,-0.004818,
+ -0.057121,0.041501,0.997504,0.042821,0.065377,-0.004819,
+ -0.061872,0.034015,0.997504,0.041735,0.063665,-0.004819,
+ -0.006487,0.003566,0.999973,0.041869,0.063591,-0.004818,
+ -0.00625,0.003966,0.999973,0.042381,0.064456,-0.004818,
+ -0.061872,0.034015,0.997504,0.041735,0.063665,-0.004819,
+ -0.00625,0.003966,0.999973,0.042381,0.064456,-0.004818,
+ -0.059614,0.037832,0.997504,0.042251,0.064538,-0.004819,
+ -0.063886,0.030062,0.997504,0.041274,0.062761,-0.004819,
+ -0.006698,0.003152,0.999973,0.041413,0.062696,-0.004818,
+ -0.006487,0.003566,0.999973,0.041869,0.063591,-0.004818,
+ -0.063886,0.030062,0.997504,0.041274,0.062761,-0.004819,
+ -0.006487,0.003566,0.999973,0.041869,0.063591,-0.004818,
+ -0.061872,0.034015,0.997504,0.041735,0.063665,-0.004819,
+ -0.006698,0.003152,0.999973,0.041413,0.062696,-0.004818,
+ 0,0,1,0.044613,0.063997,-0.004818,
+ -0.006487,0.003566,0.999973,0.041869,0.063591,-0.004818,
+ -0.006698,0.003152,0.999973,0.041413,0.062696,-0.004818,
+ 0,0,1,0.043898,0.062655,-0.004818,
+ 0,0,1,0.044613,0.063997,-0.004818,
+ -0.006883,0.002725,0.999973,0.041014,0.061773,-0.004818,
+ 0,0,1,0.043898,0.062655,-0.004818,
+ -0.006698,0.003152,0.999973,0.041413,0.062696,-0.004818,
+ -0.006883,0.002725,0.999973,0.041014,0.061773,-0.004818,
+ 0,0,1,0.043489,0.061186,-0.004818,
+ 0,0,1,0.043898,0.062655,-0.004818,
+ -0.00704,0.002287,0.999973,0.040673,0.060828,-0.004818,
+ 0,0,1,0.043489,0.061186,-0.004818,
+ -0.006883,0.002725,0.999973,0.041014,0.061773,-0.004818,
+ -0.00717,0.001841,0.999973,0.040393,0.059863,-0.004818,
+ 0,0,1,0.043489,0.061186,-0.004818,
+ -0.00704,0.002287,0.999973,0.040673,0.060828,-0.004818,
+ -0.00717,0.001841,0.999973,0.040393,0.059863,-0.004818,
+ 0,0,1,0.043409,0.05966,-0.004818,
+ 0,0,1,0.043489,0.061186,-0.004818,
+ -0.007271,0.001387,0.999973,0.040174,0.058882,-0.004818,
+ 0,0,1,0.043409,0.05966,-0.004818,
+ -0.00717,0.001841,0.999973,0.040393,0.059863,-0.004818,
+ -0.007271,0.001387,0.999973,0.040174,0.058882,-0.004818,
+ 0,0,1,0.043472,0.058741,-0.004818,
+ 0,0,1,0.043409,0.05966,-0.004818,
+ -0.007344,0.000928,0.999973,0.040017,0.05789,-0.004818,
+ 0,0,1,0.043472,0.058741,-0.004818,
+ -0.007271,0.001387,0.999973,0.040174,0.058882,-0.004818,
+ -0.007344,0.000928,0.999973,0.040017,0.05789,-0.004818,
+ 0,0,1,0.04361,0.057831,-0.004818,
+ 0,0,1,0.043472,0.058741,-0.004818,
+ -0.007344,0.000928,0.999973,0.040017,0.05789,-0.004818,
+ 0,0,1,0.043821,0.056936,-0.004818,
+ 0,0,1,0.04361,0.057831,-0.004818,
+ -0.007388,0.000465,0.999973,0.039922,0.05689,-0.004818,
+ 0,0,1,0.043821,0.056936,-0.004818,
+ -0.007344,0.000928,0.999973,0.040017,0.05789,-0.004818,
+ -0.007388,0.000465,0.999973,0.039922,0.05689,-0.004818,
+ 0,0,1,0.044105,0.056061,-0.004818,
+ 0,0,1,0.043821,0.056936,-0.004818,
+ -0.007402,0,0.999973,0.039891,0.055885,-0.004818,
+ 0,0,1,0.044105,0.056061,-0.004818,
+ -0.007388,0.000465,0.999973,0.039922,0.05689,-0.004818,
+ -0.007402,0,0.999973,0.039891,0.055885,-0.004818,
+ 0,0,1,0.044458,0.055214,-0.004818,
+ 0,0,1,0.044105,0.056061,-0.004818,
+ -0.007388,-0.000465,0.999973,0.039922,0.054881,-0.004818,
+ 0,0,1,0.044458,0.055214,-0.004818,
+ -0.007402,0,0.999973,0.039891,0.055885,-0.004818,
+ -0.007388,-0.000465,0.999973,0.039922,0.054881,-0.004818,
+ 0,0,1,0.044879,0.054399,-0.004818,
+ 0,0,1,0.044458,0.055214,-0.004818,
+ -0.007344,-0.000928,0.999973,0.040017,0.053881,-0.004818,
+ 0,0,1,0.044879,0.054399,-0.004818,
+ -0.007388,-0.000465,0.999973,0.039922,0.054881,-0.004818,
+ -0.007344,-0.000928,0.999973,0.040017,0.053881,-0.004818,
+ 0,0,1,0.045365,0.053623,-0.004818,
+ 0,0,1,0.044879,0.054399,-0.004818,
+ -0.007344,-0.000928,0.999973,0.040017,0.053881,-0.004818,
+ 0,0,1,0.045912,0.05289,-0.004818,
+ 0,0,1,0.045365,0.053623,-0.004818,
+ -0.007271,-0.001387,0.999973,0.040174,0.052888,-0.004818,
+ 0,0,1,0.045912,0.05289,-0.004818,
+ -0.007344,-0.000928,0.999973,0.040017,0.053881,-0.004818,
+ -0.007271,-0.001387,0.999973,0.040174,0.052888,-0.004818,
+ 0,0,1,0.046517,0.052206,-0.004818,
+ 0,0,1,0.045912,0.05289,-0.004818,
+ -0.00717,-0.001841,0.999973,0.040393,0.051908,-0.004818,
+ 0,0,1,0.046517,0.052206,-0.004818,
+ -0.007271,-0.001387,0.999973,0.040174,0.052888,-0.004818,
+ -0.00717,-0.001841,0.999973,0.040393,0.051908,-0.004818,
+ 0,0,1,0.047175,0.051576,-0.004818,
+ 0,0,1,0.046517,0.052206,-0.004818,
+ -0.00717,-0.001841,0.999973,0.040393,0.051908,-0.004818,
+ 0,0,1,0.047882,0.051003,-0.004818,
+ 0,0,1,0.047175,0.051576,-0.004818,
+ -0.00704,-0.002287,0.999973,0.040673,0.050943,-0.004818,
+ 0,0,1,0.047882,0.051003,-0.004818,
+ -0.00717,-0.001841,0.999973,0.040393,0.051908,-0.004818,
+ -0.00704,-0.002287,0.999973,0.040673,0.050943,-0.004818,
+ 0,0,1,0.048634,0.050493,-0.004818,
+ 0,0,1,0.047882,0.051003,-0.004818,
+ -0.00704,-0.002287,0.999973,0.040673,0.050943,-0.004818,
+ 0,0,1,0.049354,0.050026,-0.004818,
+ 0,0,1,0.048634,0.050493,-0.004818,
+ -0.006883,-0.002725,0.999973,0.041014,0.049997,-0.004818,
+ 0,0,1,0.049354,0.050026,-0.004818,
+ -0.00704,-0.002287,0.999973,0.040673,0.050943,-0.004818,
+ -0.006883,-0.002725,0.999973,0.041014,0.049997,-0.004818,
+ 0,0,1,0.050057,0.049532,-0.004818,
+ 0,0,1,0.049354,0.050026,-0.004818,
+ -0.006698,-0.003152,0.999973,0.041413,0.049075,-0.004818,
+ 0,0,1,0.050057,0.049532,-0.004818,
+ -0.006883,-0.002725,0.999973,0.041014,0.049997,-0.004818,
+ -0.006698,-0.003152,0.999973,0.041413,0.049075,-0.004818,
+ 0,0,1,0.050741,0.049011,-0.004818,
+ 0,0,1,0.050057,0.049532,-0.004818,
+ -0.006698,-0.003152,0.999973,0.041413,0.049075,-0.004818,
+ 0,0,1,0.051404,0.048464,-0.004818,
+ 0,0,1,0.050741,0.049011,-0.004818,
+ -0.006487,-0.003566,0.999973,0.041869,0.04818,-0.004818,
+ 0,0,1,0.051404,0.048464,-0.004818,
+ -0.006698,-0.003152,0.999973,0.041413,0.049075,-0.004818,
+ -0.006487,-0.003566,0.999973,0.041869,0.04818,-0.004818,
+ 0,0,1,0.052047,0.047891,-0.004818,
+ 0,0,1,0.051404,0.048464,-0.004818,
+ -0.00625,-0.003966,0.999973,0.042381,0.047315,-0.004818,
+ 0,0,1,0.052047,0.047891,-0.004818,
+ -0.006487,-0.003566,0.999973,0.041869,0.04818,-0.004818,
+ -0.00625,-0.003966,0.999973,0.042381,0.047315,-0.004818,
+ 0,0,1,0.052668,0.047293,-0.004818,
+ 0,0,1,0.052047,0.047891,-0.004818,
+ -0.00625,-0.003966,0.999973,0.042381,0.047315,-0.004818,
+ 0,0,1,0.053266,0.046673,-0.004818,
+ 0,0,1,0.052668,0.047293,-0.004818,
+ -0.005989,-0.004351,0.999973,0.042945,0.046484,-0.004818,
+ 0,0,1,0.053266,0.046673,-0.004818,
+ -0.00625,-0.003966,0.999973,0.042381,0.047315,-0.004818,
+ -0.005989,-0.004351,0.999973,0.042945,0.046484,-0.004818,
+ 0,0,1,0.05384,0.046029,-0.004818,
+ 0,0,1,0.053266,0.046673,-0.004818,
+ -0.005704,-0.004718,0.999973,0.043561,0.04569,-0.004818,
+ 0,0,1,0.05384,0.046029,-0.004818,
+ -0.005989,-0.004351,0.999973,0.042945,0.046484,-0.004818,
+ -0.005704,-0.004718,0.999973,0.043561,0.04569,-0.004818,
+ 0,0,1,0.05439,0.045363,-0.004818,
+ 0,0,1,0.05384,0.046029,-0.004818,
+ -0.005396,-0.005067,0.999973,0.044226,0.044936,-0.004818,
+ 0,0,1,0.05439,0.045363,-0.004818,
+ -0.005704,-0.004718,0.999973,0.043561,0.04569,-0.004818,
+ -0.005396,-0.005067,0.999973,0.044226,0.044936,-0.004818,
+ 0,0,1,0.054915,0.044676,-0.004818,
+ 0,0,1,0.05439,0.045363,-0.004818,
+ -0.005067,-0.005396,0.999973,0.044936,0.044226,-0.004818,
+ 0,0,1,0.054915,0.044676,-0.004818,
+ -0.005396,-0.005067,0.999973,0.044226,0.044936,-0.004818,
+ -0.005067,-0.005396,0.999973,0.044936,0.044226,-0.004818,
+ 0,0,1,0.055414,0.04397,-0.004818,
+ 0,0,1,0.054915,0.044676,-0.004818,
+ -0.004718,-0.005704,0.999973,0.04569,0.043561,-0.004818,
+ 0,0,1,0.055414,0.04397,-0.004818,
+ -0.005067,-0.005396,0.999973,0.044936,0.044226,-0.004818,
+ -0.004718,-0.005704,0.999973,0.04569,0.043561,-0.004818,
+ 0,0,1,0.055885,0.043244,-0.004818,
+ 0,0,1,0.055414,0.04397,-0.004818,
+ -0.004718,-0.005704,0.999973,0.04569,0.043561,-0.004818,
+ 0.004351,-0.005989,0.999973,0.065287,0.042945,-0.004818,
+ 0,0,1,0.055885,0.043244,-0.004818,
+ -0.004351,-0.005989,0.999973,0.046484,0.042945,-0.004818,
+ 0.004351,-0.005989,0.999973,0.065287,0.042945,-0.004818,
+ -0.004718,-0.005704,0.999973,0.04569,0.043561,-0.004818,
+ -0.004351,-0.005989,0.999973,0.046484,0.042945,-0.004818,
+ 0.003966,-0.00625,0.999973,0.064456,0.042381,-0.004818,
+ 0.004351,-0.005989,0.999973,0.065287,0.042945,-0.004818,
+ -0.003966,-0.00625,0.999973,0.047315,0.042381,-0.004818,
+ 0.003966,-0.00625,0.999973,0.064456,0.042381,-0.004818,
+ -0.004351,-0.005989,0.999973,0.046484,0.042945,-0.004818,
+ -0.003966,-0.00625,0.999973,0.047315,0.042381,-0.004818,
+ 0.003566,-0.006487,0.999973,0.063591,0.041869,-0.004818,
+ 0.003966,-0.00625,0.999973,0.064456,0.042381,-0.004818,
+ -0.003566,-0.006487,0.999973,0.04818,0.041869,-0.004818,
+ 0.003566,-0.006487,0.999973,0.063591,0.041869,-0.004818,
+ -0.003966,-0.00625,0.999973,0.047315,0.042381,-0.004818,
+ -0.003566,-0.006487,0.999973,0.04818,0.041869,-0.004818,
+ 0.003152,-0.006698,0.999973,0.062696,0.041413,-0.004818,
+ 0.003566,-0.006487,0.999973,0.063591,0.041869,-0.004818,
+ -0.003152,-0.006698,0.999973,0.049075,0.041413,-0.004818,
+ 0.003152,-0.006698,0.999973,0.062696,0.041413,-0.004818,
+ -0.003566,-0.006487,0.999973,0.04818,0.041869,-0.004818,
+ -0.003152,-0.006698,0.999973,0.049075,0.041413,-0.004818,
+ 0.002725,-0.006883,0.999973,0.061773,0.041014,-0.004818,
+ 0.003152,-0.006698,0.999973,0.062696,0.041413,-0.004818,
+ -0.002725,-0.006883,0.999973,0.049997,0.041014,-0.004818,
+ 0.002725,-0.006883,0.999973,0.061773,0.041014,-0.004818,
+ -0.003152,-0.006698,0.999973,0.049075,0.041413,-0.004818,
+ -0.002725,-0.006883,0.999973,0.049997,0.041014,-0.004818,
+ 0.002287,-0.00704,0.999973,0.060828,0.040673,-0.004818,
+ 0.002725,-0.006883,0.999973,0.061773,0.041014,-0.004818,
+ -0.002287,-0.00704,0.999973,0.050943,0.040673,-0.004818,
+ 0.002287,-0.00704,0.999973,0.060828,0.040673,-0.004818,
+ -0.002725,-0.006883,0.999973,0.049997,0.041014,-0.004818,
+ -0.002287,-0.00704,0.999973,0.050943,0.040673,-0.004818,
+ 0.001841,-0.00717,0.999973,0.059863,0.040393,-0.004818,
+ 0.002287,-0.00704,0.999973,0.060828,0.040673,-0.004818,
+ -0.001841,-0.00717,0.999973,0.051908,0.040393,-0.004818,
+ 0.001841,-0.00717,0.999973,0.059863,0.040393,-0.004818,
+ -0.002287,-0.00704,0.999973,0.050943,0.040673,-0.004818,
+ -0.001841,-0.00717,0.999973,0.051908,0.040393,-0.004818,
+ 0.001387,-0.007271,0.999973,0.058882,0.040174,-0.004818,
+ 0.001841,-0.00717,0.999973,0.059863,0.040393,-0.004818,
+ -0.001387,-0.007271,0.999973,0.052888,0.040174,-0.004818,
+ 0.001387,-0.007271,0.999973,0.058882,0.040174,-0.004818,
+ -0.001841,-0.00717,0.999973,0.051908,0.040393,-0.004818,
+ -0.001387,-0.007271,0.999973,0.052888,0.040174,-0.004818,
+ 0.000928,-0.007344,0.999973,0.05789,0.040017,-0.004818,
+ 0.001387,-0.007271,0.999973,0.058882,0.040174,-0.004818,
+ -0.000928,-0.007344,0.999973,0.053881,0.040017,-0.004818,
+ 0.000928,-0.007344,0.999973,0.05789,0.040017,-0.004818,
+ -0.001387,-0.007271,0.999973,0.052888,0.040174,-0.004818,
+ -0.000928,-0.007344,0.999973,0.053881,0.040017,-0.004818,
+ 0.000465,-0.007388,0.999973,0.05689,0.039922,-0.004818,
+ 0.000928,-0.007344,0.999973,0.05789,0.040017,-0.004818,
+ -0.000465,-0.007388,0.999973,0.054881,0.039922,-0.004818,
+ 0.000465,-0.007388,0.999973,0.05689,0.039922,-0.004818,
+ -0.000928,-0.007344,0.999973,0.053881,0.040017,-0.004818,
+ 0.000465,-0.007388,0.999973,0.05689,0.039922,-0.004818,
+ -0.000465,-0.007388,0.999973,0.054881,0.039922,-0.004818,
+ 0,-0.007402,0.999973,0.055885,0.039891,-0.004818,
+ 0.004718,-0.005704,0.999973,0.066081,0.043561,-0.004818,
+ 0,0,1,0.055885,0.043244,-0.004818,
+ 0.004351,-0.005989,0.999973,0.065287,0.042945,-0.004818,
+ 0,0,1,0.055885,0.043244,-0.004818,
+ 0.004718,-0.005704,0.999973,0.066081,0.043561,-0.004818,
+ 0,0,1,0.056357,0.04397,-0.004818,
+ 0,0,1,0.056357,0.04397,-0.004818,
+ 0.004718,-0.005704,0.999973,0.066081,0.043561,-0.004818,
+ 0.005067,-0.005396,0.999973,0.066834,0.044226,-0.004818,
+ 0,0,1,0.056357,0.04397,-0.004818,
+ 0.005067,-0.005396,0.999973,0.066834,0.044226,-0.004818,
+ 0,0,1,0.056856,0.044676,-0.004818,
+ 0,0,1,0.056856,0.044676,-0.004818,
+ 0.005067,-0.005396,0.999973,0.066834,0.044226,-0.004818,
+ 0.005396,-0.005067,0.999973,0.067545,0.044936,-0.004818,
+ 0,0,1,0.056856,0.044676,-0.004818,
+ 0.005396,-0.005067,0.999973,0.067545,0.044936,-0.004818,
+ 0,0,1,0.05738,0.045363,-0.004818,
+ 0,0,1,0.05738,0.045363,-0.004818,
+ 0.005396,-0.005067,0.999973,0.067545,0.044936,-0.004818,
+ 0.005704,-0.004718,0.999973,0.06821,0.04569,-0.004818,
+ 0,0,1,0.05738,0.045363,-0.004818,
+ 0.005704,-0.004718,0.999973,0.06821,0.04569,-0.004818,
+ 0,0,1,0.05793,0.046029,-0.004818,
+ 0,0,1,0.05793,0.046029,-0.004818,
+ 0.005704,-0.004718,0.999973,0.06821,0.04569,-0.004818,
+ 0.005989,-0.004351,0.999973,0.068825,0.046484,-0.004818,
+ 0,0,1,0.05793,0.046029,-0.004818,
+ 0.005989,-0.004351,0.999973,0.068825,0.046484,-0.004818,
+ 0,0,1,0.058505,0.046673,-0.004818,
+ 0,0,1,0.058505,0.046673,-0.004818,
+ 0.005989,-0.004351,0.999973,0.068825,0.046484,-0.004818,
+ 0.00625,-0.003966,0.999973,0.06939,0.047315,-0.004818,
+ 0,0,1,0.058505,0.046673,-0.004818,
+ 0.00625,-0.003966,0.999973,0.06939,0.047315,-0.004818,
+ 0,0,1,0.059103,0.047293,-0.004818,
+ 0,0,1,0.059103,0.047293,-0.004818,
+ 0.00625,-0.003966,0.999973,0.06939,0.047315,-0.004818,
+ 0,0,1,0.059724,0.047891,-0.004818,
+ 0,0,1,0.059724,0.047891,-0.004818,
+ 0.00625,-0.003966,0.999973,0.06939,0.047315,-0.004818,
+ 0.006487,-0.003566,0.999973,0.069902,0.04818,-0.004818,
+ 0,0,1,0.059724,0.047891,-0.004818,
+ 0.006487,-0.003566,0.999973,0.069902,0.04818,-0.004818,
+ 0,0,1,0.060366,0.048464,-0.004818,
+ 0,0,1,0.060366,0.048464,-0.004818,
+ 0.006487,-0.003566,0.999973,0.069902,0.04818,-0.004818,
+ 0.006698,-0.003152,0.999973,0.070358,0.049075,-0.004818,
+ 0,0,1,0.060366,0.048464,-0.004818,
+ 0.006698,-0.003152,0.999973,0.070358,0.049075,-0.004818,
+ 0,0,1,0.06103,0.049011,-0.004818,
+ 0,0,1,0.06103,0.049011,-0.004818,
+ 0.006698,-0.003152,0.999973,0.070358,0.049075,-0.004818,
+ 0,0,1,0.061714,0.049532,-0.004818,
+ 0,0,1,0.061714,0.049532,-0.004818,
+ 0.006698,-0.003152,0.999973,0.070358,0.049075,-0.004818,
+ 0.006883,-0.002725,0.999973,0.070757,0.049997,-0.004818,
+ 0,0,1,0.061714,0.049532,-0.004818,
+ 0.006883,-0.002725,0.999973,0.070757,0.049997,-0.004818,
+ 0,0,1,0.062416,0.050026,-0.004818,
+ 0,0,1,0.062416,0.050026,-0.004818,
+ 0.006883,-0.002725,0.999973,0.070757,0.049997,-0.004818,
+ 0.00704,-0.002287,0.999973,0.071097,0.050943,-0.004818,
+ 0,0,1,0.062416,0.050026,-0.004818,
+ 0.00704,-0.002287,0.999973,0.071097,0.050943,-0.004818,
+ 0,0,1,0.063137,0.050493,-0.004818,
+ 0,0,1,0.063137,0.050493,-0.004818,
+ 0.00704,-0.002287,0.999973,0.071097,0.050943,-0.004818,
+ 0,0,1,0.063888,0.051003,-0.004818,
+ 0,0,1,0.063888,0.051003,-0.004818,
+ 0.00704,-0.002287,0.999973,0.071097,0.050943,-0.004818,
+ 0.00717,-0.001841,0.999973,0.071377,0.051908,-0.004818,
+ 0,0,1,0.063888,0.051003,-0.004818,
+ 0.00717,-0.001841,0.999973,0.071377,0.051908,-0.004818,
+ 0,0,1,0.064596,0.051576,-0.004818,
+ 0,0,1,0.064596,0.051576,-0.004818,
+ 0.00717,-0.001841,0.999973,0.071377,0.051908,-0.004818,
+ 0,0,1,0.065254,0.052206,-0.004818,
+ 0,0,1,0.065254,0.052206,-0.004818,
+ 0.00717,-0.001841,0.999973,0.071377,0.051908,-0.004818,
+ 0.007271,-0.001387,0.999973,0.071597,0.052888,-0.004818,
+ 0,0,1,0.065254,0.052206,-0.004818,
+ 0.007271,-0.001387,0.999973,0.071597,0.052888,-0.004818,
+ 0,0,1,0.065859,0.05289,-0.004818,
+ 0,0,1,0.065859,0.05289,-0.004818,
+ 0.007271,-0.001387,0.999973,0.071597,0.052888,-0.004818,
+ 0.007344,-0.000928,0.999973,0.071754,0.053881,-0.004818,
+ 0,0,1,0.065859,0.05289,-0.004818,
+ 0.007344,-0.000928,0.999973,0.071754,0.053881,-0.004818,
+ 0,0,1,0.066406,0.053623,-0.004818,
+ 0,0,1,0.066406,0.053623,-0.004818,
+ 0.007344,-0.000928,0.999973,0.071754,0.053881,-0.004818,
+ 0,0,1,0.066892,0.054399,-0.004818,
+ 0,0,1,0.066892,0.054399,-0.004818,
+ 0.007344,-0.000928,0.999973,0.071754,0.053881,-0.004818,
+ 0.007388,-0.000465,0.999973,0.071848,0.054881,-0.004818,
+ 0,0,1,0.066892,0.054399,-0.004818,
+ 0.007388,-0.000465,0.999973,0.071848,0.054881,-0.004818,
+ 0,0,1,0.067313,0.055214,-0.004818,
+ 0,0,1,0.067313,0.055214,-0.004818,
+ 0.007388,-0.000465,0.999973,0.071848,0.054881,-0.004818,
+ 0.007402,0,0.999973,0.07188,0.055885,-0.004818,
+ 0,0,1,0.067313,0.055214,-0.004818,
+ 0.007402,0,0.999973,0.07188,0.055885,-0.004818,
+ 0,0,1,0.067666,0.056061,-0.004818,
+ 0,0,1,0.067666,0.056061,-0.004818,
+ 0.007402,0,0.999973,0.07188,0.055885,-0.004818,
+ 0.007388,0.000465,0.999973,0.071848,0.05689,-0.004818,
+ 0,0,1,0.067666,0.056061,-0.004818,
+ 0.007388,0.000465,0.999973,0.071848,0.05689,-0.004818,
+ 0,0,1,0.067949,0.056936,-0.004818,
+ 0,0,1,0.067949,0.056936,-0.004818,
+ 0.007388,0.000465,0.999973,0.071848,0.05689,-0.004818,
+ 0.007344,0.000928,0.999973,0.071754,0.05789,-0.004818,
+ 0,0,1,0.067949,0.056936,-0.004818,
+ 0.007344,0.000928,0.999973,0.071754,0.05789,-0.004818,
+ 0,0,1,0.068161,0.057831,-0.004818,
+ 0,0,1,0.068161,0.057831,-0.004818,
+ 0.007344,0.000928,0.999973,0.071754,0.05789,-0.004818,
+ 0,0,1,0.068298,0.058741,-0.004818,
+ 0,0,1,0.068298,0.058741,-0.004818,
+ 0.007344,0.000928,0.999973,0.071754,0.05789,-0.004818,
+ 0.007271,0.001387,0.999973,0.071597,0.058882,-0.004818,
+ 0,0,1,0.068298,0.058741,-0.004818,
+ 0.007271,0.001387,0.999973,0.071597,0.058882,-0.004818,
+ 0,0,1,0.068362,0.05966,-0.004818,
+ 0,0,1,0.068362,0.05966,-0.004818,
+ 0.007271,0.001387,0.999973,0.071597,0.058882,-0.004818,
+ 0.00717,0.001841,0.999973,0.071377,0.059863,-0.004818,
+ 0,0,1,0.068362,0.05966,-0.004818,
+ 0.00717,0.001841,0.999973,0.071377,0.059863,-0.004818,
+ 0,0,1,0.068281,0.061186,-0.004818,
+ 0,0,1,0.068281,0.061186,-0.004818,
+ 0.00717,0.001841,0.999973,0.071377,0.059863,-0.004818,
+ 0.00704,0.002287,0.999973,0.071097,0.060828,-0.004818,
+ 0,0,1,0.068281,0.061186,-0.004818,
+ 0.00704,0.002287,0.999973,0.071097,0.060828,-0.004818,
+ 0.006883,0.002725,0.999973,0.070757,0.061773,-0.004818,
+ 0,0,1,0.068281,0.061186,-0.004818,
+ 0.006883,0.002725,0.999973,0.070757,0.061773,-0.004818,
+ 0,0,1,0.067873,0.062655,-0.004818,
+ 0,0,1,0.067873,0.062655,-0.004818,
+ 0.006883,0.002725,0.999973,0.070757,0.061773,-0.004818,
+ 0.006698,0.003152,0.999973,0.070358,0.062696,-0.004818,
+ 0,0,1,0.067873,0.062655,-0.004818,
+ 0.006698,0.003152,0.999973,0.070358,0.062696,-0.004818,
+ 0,0,1,0.067158,0.063997,-0.004818,
+ 0,0,1,0.067158,0.063997,-0.004818,
+ 0.006698,0.003152,0.999973,0.070358,0.062696,-0.004818,
+ 0.006487,0.003566,0.999973,0.069902,0.063591,-0.004818,
+ 0,0,1,0.067158,0.063997,-0.004818,
+ 0.006487,0.003566,0.999973,0.069902,0.063591,-0.004818,
+ 0.00625,0.003966,0.999973,0.06939,0.064456,-0.004818,
+ 0,0,1,0.067158,0.063997,-0.004818,
+ 0.00625,0.003966,0.999973,0.06939,0.064456,-0.004818,
+ 0,0,1,0.06617,0.065145,-0.004818,
+ 0,0,1,0.06617,0.065145,-0.004818,
+ 0.00625,0.003966,0.999973,0.06939,0.064456,-0.004818,
+ 0.005989,0.004351,0.999973,0.068825,0.065287,-0.004818,
+ 0,0,1,0.06617,0.065145,-0.004818,
+ 0.005989,0.004351,0.999973,0.068825,0.065287,-0.004818,
+ 0,0,1,0.064959,0.066043,-0.004818,
+ 0,0,1,0.064959,0.066043,-0.004818,
+ 0.005989,0.004351,0.999973,0.068825,0.065287,-0.004818,
+ 0.005704,0.004718,0.999973,0.06821,0.066081,-0.004818,
+ 0,0,1,0.064959,0.066043,-0.004818,
+ 0.005704,0.004718,0.999973,0.06821,0.066081,-0.004818,
+ 0,0,1,0.063583,0.066646,-0.004818,
+ 0,0,1,0.063583,0.066646,-0.004818,
+ 0.005704,0.004718,0.999973,0.06821,0.066081,-0.004818,
+ 0.005396,0.005067,0.999973,0.067545,0.066834,-0.004818,
+ 0,0,1,0.063583,0.066646,-0.004818,
+ 0.005396,0.005067,0.999973,0.067545,0.066834,-0.004818,
+ 0,0,1,0.06211,0.066926,-0.004818,
+ 0,0,1,0.06211,0.066926,-0.004818,
+ 0.005396,0.005067,0.999973,0.067545,0.066834,-0.004818,
+ 0.005067,0.005396,0.999973,0.066834,0.067545,-0.004818,
+ 0,0,1,0.06211,0.066926,-0.004818,
+ 0.005067,0.005396,0.999973,0.066834,0.067545,-0.004818,
+ -0.005067,0.005396,0.999973,0.044936,0.067545,-0.004818,
+ -0.005067,0.005396,0.999973,0.044936,0.067545,-0.004818,
+ 0.005067,0.005396,0.999973,0.066834,0.067545,-0.004818,
+ -0.004718,0.005704,0.999973,0.04569,0.06821,-0.004818,
+ -0.004718,0.005704,0.999973,0.04569,0.06821,-0.004818,
+ 0.005067,0.005396,0.999973,0.066834,0.067545,-0.004818,
+ 0.004718,0.005704,0.999973,0.066081,0.06821,-0.004818,
+ -0.004718,0.005704,0.999973,0.04569,0.06821,-0.004818,
+ 0.004718,0.005704,0.999973,0.066081,0.06821,-0.004818,
+ -0.004351,0.005989,0.999973,0.046484,0.068825,-0.004818,
+ -0.004351,0.005989,0.999973,0.046484,0.068825,-0.004818,
+ 0.004718,0.005704,0.999973,0.066081,0.06821,-0.004818,
+ 0.004351,0.005989,0.999973,0.065287,0.068825,-0.004818,
+ -0.004351,0.005989,0.999973,0.046484,0.068825,-0.004818,
+ 0.004351,0.005989,0.999973,0.065287,0.068825,-0.004818,
+ -0.003966,0.00625,0.999973,0.047315,0.06939,-0.004818,
+ -0.003966,0.00625,0.999973,0.047315,0.06939,-0.004818,
+ 0.004351,0.005989,0.999973,0.065287,0.068825,-0.004818,
+ 0.003966,0.00625,0.999973,0.064456,0.06939,-0.004818,
+ -0.003966,0.00625,0.999973,0.047315,0.06939,-0.004818,
+ 0.003966,0.00625,0.999973,0.064456,0.06939,-0.004818,
+ -0.003566,0.006487,0.999973,0.04818,0.069902,-0.004818,
+ -0.003566,0.006487,0.999973,0.04818,0.069902,-0.004818,
+ 0.003966,0.00625,0.999973,0.064456,0.06939,-0.004818,
+ 0.003566,0.006487,0.999973,0.063591,0.069902,-0.004818,
+ -0.003566,0.006487,0.999973,0.04818,0.069902,-0.004818,
+ 0.003566,0.006487,0.999973,0.063591,0.069902,-0.004818,
+ 0.003152,0.006698,0.999973,0.062696,0.070358,-0.004818,
+ -0.003566,0.006487,0.999973,0.04818,0.069902,-0.004818,
+ 0.003152,0.006698,0.999973,0.062696,0.070358,-0.004818,
+ -0.003152,0.006698,0.999973,0.049075,0.070358,-0.004818,
+ -0.003152,0.006698,0.999973,0.049075,0.070358,-0.004818,
+ 0.003152,0.006698,0.999973,0.062696,0.070358,-0.004818,
+ -0.002725,0.006883,0.999973,0.049997,0.070757,-0.004818,
+ -0.002725,0.006883,0.999973,0.049997,0.070757,-0.004818,
+ 0.003152,0.006698,0.999973,0.062696,0.070358,-0.004818,
+ 0.002725,0.006883,0.999973,0.061773,0.070757,-0.004818,
+ -0.002725,0.006883,0.999973,0.049997,0.070757,-0.004818,
+ 0.002725,0.006883,0.999973,0.061773,0.070757,-0.004818,
+ -0.002287,0.00704,0.999973,0.050943,0.071097,-0.004818,
+ -0.002287,0.00704,0.999973,0.050943,0.071097,-0.004818,
+ 0.002725,0.006883,0.999973,0.061773,0.070757,-0.004818,
+ 0.002287,0.00704,0.999973,0.060828,0.071097,-0.004818,
+ -0.002287,0.00704,0.999973,0.050943,0.071097,-0.004818,
+ 0.002287,0.00704,0.999973,0.060828,0.071097,-0.004818,
+ -0.001841,0.00717,0.999973,0.051908,0.071377,-0.004818,
+ -0.001841,0.00717,0.999973,0.051908,0.071377,-0.004818,
+ 0.002287,0.00704,0.999973,0.060828,0.071097,-0.004818,
+ 0.001841,0.00717,0.999973,0.059863,0.071377,-0.004818,
+ -0.001841,0.00717,0.999973,0.051908,0.071377,-0.004818,
+ 0.001841,0.00717,0.999973,0.059863,0.071377,-0.004818,
+ 0.001387,0.007271,0.999973,0.058882,0.071597,-0.004818,
+ -0.001841,0.00717,0.999973,0.051908,0.071377,-0.004818,
+ 0.001387,0.007271,0.999973,0.058882,0.071597,-0.004818,
+ -0.001387,0.007271,0.999973,0.052888,0.071597,-0.004818,
+ -0.001387,0.007271,0.999973,0.052888,0.071597,-0.004818,
+ 0.001387,0.007271,0.999973,0.058882,0.071597,-0.004818,
+ -0.000928,0.007344,0.999973,0.053881,0.071754,-0.004818,
+ -0.000928,0.007344,0.999973,0.053881,0.071754,-0.004818,
+ 0.001387,0.007271,0.999973,0.058882,0.071597,-0.004818,
+ 0.000928,0.007344,0.999973,0.05789,0.071754,-0.004818,
+ -0.000928,0.007344,0.999973,0.053881,0.071754,-0.004818,
+ 0.000928,0.007344,0.999973,0.05789,0.071754,-0.004818,
+ -0.000465,0.007388,0.999973,0.054881,0.071848,-0.004818,
+ -0.000465,0.007388,0.999973,0.054881,0.071848,-0.004818,
+ 0.000928,0.007344,0.999973,0.05789,0.071754,-0.004818,
+ 0.000465,0.007388,0.999973,0.05689,0.071848,-0.004818,
+ -0.000465,0.007388,0.999973,0.054881,0.071848,-0.004818,
+ 0.000465,0.007388,0.999973,0.05689,0.071848,-0.004818,
+ 0,0.007402,0.999973,0.055885,0.07188,-0.004818,
+ -0.005067,0.005396,0.999973,0.044936,0.067545,-0.004818,
+ 0,0,1,0.04966,0.066926,-0.004818,
+ 0,0,1,0.06211,0.066926,-0.004818,
+ -0.005396,0.005067,0.999973,0.044226,0.066834,-0.004818,
+ 0,0,1,0.04966,0.066926,-0.004818,
+ -0.005067,0.005396,0.999973,0.044936,0.067545,-0.004818,
+ -0.005396,0.005067,0.999973,0.044226,0.066834,-0.004818,
+ 0,0,1,0.048188,0.066646,-0.004818,
+ 0,0,1,0.04966,0.066926,-0.004818,
+ -0.005704,0.004718,0.999973,0.043561,0.066081,-0.004818,
+ 0,0,1,0.048188,0.066646,-0.004818,
+ -0.005396,0.005067,0.999973,0.044226,0.066834,-0.004818,
+ -0.005704,0.004718,0.999973,0.043561,0.066081,-0.004818,
+ 0,0,1,0.046812,0.066043,-0.004818,
+ 0,0,1,0.048188,0.066646,-0.004818,
+ -0.005989,0.004351,0.999973,0.042945,0.065287,-0.004818,
+ 0,0,1,0.046812,0.066043,-0.004818,
+ -0.005704,0.004718,0.999973,0.043561,0.066081,-0.004818,
+ -0.005989,0.004351,0.999973,0.042945,0.065287,-0.004818,
+ 0,0,1,0.0456,0.065145,-0.004818,
+ 0,0,1,0.046812,0.066043,-0.004818,
+ -0.00625,0.003966,0.999973,0.042381,0.064456,-0.004818,
+ 0,0,1,0.0456,0.065145,-0.004818,
+ -0.005989,0.004351,0.999973,0.042945,0.065287,-0.004818,
+ -0.00625,0.003966,0.999973,0.042381,0.064456,-0.004818,
+ 0,0,1,0.044613,0.063997,-0.004818,
+ 0,0,1,0.0456,0.065145,-0.004818,
+ -0.006487,0.003566,0.999973,0.041869,0.063591,-0.004818,
+ 0,0,1,0.044613,0.063997,-0.004818,
+ -0.00625,0.003966,0.999973,0.042381,0.064456,-0.004818,
+ 0,0,1,0.04966,0.066926,-0.004818,
+ 0,0,1,0.060613,0.066867,-0.004818,
+ 0,0,1,0.06211,0.066926,-0.004818,
+ 0,0,1,0.051157,0.066867,-0.004818,
+ 0,0,1,0.060613,0.066867,-0.004818,
+ 0,0,1,0.04966,0.066926,-0.004818,
+ 0,0,1,0.051157,0.066867,-0.004818,
+ 0,0,1,0.059165,0.066474,-0.004818,
+ 0,0,1,0.060613,0.066867,-0.004818,
+ 0,0,1,0.052605,0.066474,-0.004818,
+ 0,0,1,0.059165,0.066474,-0.004818,
+ 0,0,1,0.051157,0.066867,-0.004818,
+ 0,0,1,0.052605,0.066474,-0.004818,
+ 0,0,1,0.057837,0.065766,-0.004818,
+ 0,0,1,0.059165,0.066474,-0.004818,
+ 0,0,1,0.053934,0.065766,-0.004818,
+ 0,0,1,0.057837,0.065766,-0.004818,
+ 0,0,1,0.052605,0.066474,-0.004818,
+ 0,0,1,0.053934,0.065766,-0.004818,
+ 0,0,1,0.056739,0.064761,-0.004818,
+ 0,0,1,0.057837,0.065766,-0.004818,
+ 0,0,1,0.055031,0.064761,-0.004818,
+ 0,0,1,0.056739,0.064761,-0.004818,
+ 0,0,1,0.053934,0.065766,-0.004818,
+ 0,0,1,0.056739,0.064761,-0.004818,
+ 0,0,1,0.055031,0.064761,-0.004818,
+ 0,0,1,0.055885,0.063727,-0.004818,
+ -0.929776,-0.368125,0,0.03976,0.049501,-0.007708,
+ -0.929762,-0.368119,0.005552,0.03976,0.049501,-0.006167,
+ -0.951042,-0.309012,0.005552,0.03939,0.050526,-0.006167,
+ -0.929776,-0.368125,0,0.03976,0.049501,-0.007708,
+ -0.951042,-0.309012,0.005552,0.03939,0.050526,-0.006167,
+ -0.951057,-0.309017,0,0.03939,0.050526,-0.007708,
+ -0.904827,-0.425779,0,0.040192,0.048501,-0.007708,
+ -0.904813,-0.425773,0.005552,0.040192,0.048501,-0.006167,
+ -0.929762,-0.368119,0.005552,0.03976,0.049501,-0.006167,
+ -0.904827,-0.425779,0,0.040192,0.048501,-0.007708,
+ -0.929762,-0.368119,0.005552,0.03976,0.049501,-0.006167,
+ -0.929776,-0.368125,0,0.03976,0.049501,-0.007708,
+ -0.876307,-0.481754,0,0.040687,0.04753,-0.007708,
+ -0.876293,-0.481746,0.005552,0.040687,0.04753,-0.006167,
+ -0.904813,-0.425773,0.005552,0.040192,0.048501,-0.006167,
+ -0.876307,-0.481754,0,0.040687,0.04753,-0.007708,
+ -0.904813,-0.425773,0.005552,0.040192,0.048501,-0.006167,
+ -0.904827,-0.425779,0,0.040192,0.048501,-0.007708,
+ -0.844328,-0.535827,0,0.041241,0.046592,-0.007708,
+ -0.844315,-0.535819,0.005552,0.041241,0.046592,-0.006167,
+ -0.876293,-0.481746,0.005552,0.040687,0.04753,-0.006167,
+ -0.844328,-0.535827,0,0.041241,0.046592,-0.007708,
+ -0.876293,-0.481746,0.005552,0.040687,0.04753,-0.006167,
+ -0.876307,-0.481754,0,0.040687,0.04753,-0.007708,
+ -0.844328,-0.535827,0,0.041241,0.046592,-0.007708,
+ -0.876307,-0.481754,0,0.040687,0.04753,-0.007708,
+ -0.860742,-0.509041,0,0.040845,0.047263,-0.007708,
+ -0.844328,-0.535827,0,0.041241,0.046592,-0.007708,
+ -0.860742,-0.509041,0,0.040845,0.047263,-0.007708,
+ -0.860742,-0.509041,0,0.040904,0.047163,-0.007708,
+ -0.809017,-0.587785,0,0.041854,0.045691,-0.007708,
+ -0.809005,-0.587776,0.005552,0.041854,0.045691,-0.006167,
+ -0.844315,-0.535819,0.005552,0.041241,0.046592,-0.006167,
+ -0.809017,-0.587785,0,0.041854,0.045691,-0.007708,
+ -0.844315,-0.535819,0.005552,0.041241,0.046592,-0.006167,
+ -0.844328,-0.535827,0,0.041241,0.046592,-0.007708,
+ -0.770513,-0.637424,0,0.042522,0.04483,-0.007708,
+ -0.770501,-0.637414,0.005552,0.042522,0.04483,-0.006167,
+ -0.809005,-0.587776,0.005552,0.041854,0.045691,-0.006167,
+ -0.770513,-0.637424,0,0.042522,0.04483,-0.007708,
+ -0.809005,-0.587776,0.005552,0.041854,0.045691,-0.006167,
+ -0.809017,-0.587785,0,0.041854,0.045691,-0.007708,
+ -0.728969,-0.684547,0,0.043242,0.044013,-0.007708,
+ -0.728957,-0.684537,0.005552,0.043242,0.044013,-0.006167,
+ -0.770501,-0.637414,0.005552,0.042522,0.04483,-0.006167,
+ -0.728969,-0.684547,0,0.043242,0.044013,-0.007708,
+ -0.770501,-0.637414,0.005552,0.042522,0.04483,-0.006167,
+ -0.770513,-0.637424,0,0.042522,0.04483,-0.007708,
+ -0.684547,-0.728969,0,0.044013,0.043242,-0.007708,
+ -0.684537,-0.728957,0.005552,0.044013,0.043242,-0.006167,
+ -0.728957,-0.684537,0.005552,0.043242,0.044013,-0.006167,
+ -0.684547,-0.728969,0,0.044013,0.043242,-0.007708,
+ -0.728957,-0.684537,0.005552,0.043242,0.044013,-0.006167,
+ -0.728969,-0.684547,0,0.043242,0.044013,-0.007708,
+ -0.684547,-0.728969,0,0.044013,0.043242,-0.007708,
+ -0.728969,-0.684547,0,0.043242,0.044013,-0.007708,
+ -0.707107,-0.707107,0,0.043581,0.043673,-0.007708,
+ -0.684547,-0.728969,0,0.044013,0.043242,-0.007708,
+ -0.707107,-0.707107,0,0.043581,0.043673,-0.007708,
+ -0.707107,-0.707107,0,0.043673,0.043581,-0.007708,
+ -0.637424,-0.770513,0,0.04483,0.042522,-0.007708,
+ -0.637414,-0.770501,0.005552,0.04483,0.042522,-0.006167,
+ -0.684537,-0.728957,0.005552,0.044013,0.043242,-0.006167,
+ -0.637424,-0.770513,0,0.04483,0.042522,-0.007708,
+ -0.684537,-0.728957,0.005552,0.044013,0.043242,-0.006167,
+ -0.684547,-0.728969,0,0.044013,0.043242,-0.007708,
+ -0.587785,-0.809017,0,0.045691,0.041854,-0.007708,
+ -0.587776,-0.809005,0.005552,0.045691,0.041854,-0.006167,
+ -0.637414,-0.770501,0.005552,0.04483,0.042522,-0.006167,
+ -0.587785,-0.809017,0,0.045691,0.041854,-0.007708,
+ -0.637414,-0.770501,0.005552,0.04483,0.042522,-0.006167,
+ -0.637424,-0.770513,0,0.04483,0.042522,-0.007708,
+ -0.535827,-0.844328,0,0.046592,0.041241,-0.007708,
+ -0.535819,-0.844315,0.005552,0.046592,0.041241,-0.006167,
+ -0.587776,-0.809005,0.005552,0.045691,0.041854,-0.006167,
+ -0.535827,-0.844328,0,0.046592,0.041241,-0.007708,
+ -0.587776,-0.809005,0.005552,0.045691,0.041854,-0.006167,
+ -0.587785,-0.809017,0,0.045691,0.041854,-0.007708,
+ -0.481754,-0.876307,0,0.04753,0.040687,-0.007708,
+ -0.481746,-0.876293,0.005552,0.04753,0.040687,-0.006167,
+ -0.535819,-0.844315,0.005552,0.046592,0.041241,-0.006167,
+ -0.481754,-0.876307,0,0.04753,0.040687,-0.007708,
+ -0.535819,-0.844315,0.005552,0.046592,0.041241,-0.006167,
+ -0.535827,-0.844328,0,0.046592,0.041241,-0.007708,
+ -0.481754,-0.876307,0,0.04753,0.040687,-0.007708,
+ -0.535827,-0.844328,0,0.046592,0.041241,-0.007708,
+ -0.509041,-0.860742,0,0.047163,0.040904,-0.007708,
+ -0.481754,-0.876307,0,0.04753,0.040687,-0.007708,
+ -0.509041,-0.860742,0,0.047163,0.040904,-0.007708,
+ -0.509041,-0.860742,0,0.047263,0.040845,-0.007708,
+ -0.425779,-0.904827,0,0.048501,0.040192,-0.007708,
+ -0.425773,-0.904813,0.005552,0.048501,0.040192,-0.006167,
+ -0.481746,-0.876293,0.005552,0.04753,0.040687,-0.006167,
+ -0.425779,-0.904827,0,0.048501,0.040192,-0.007708,
+ -0.481746,-0.876293,0.005552,0.04753,0.040687,-0.006167,
+ -0.481754,-0.876307,0,0.04753,0.040687,-0.007708,
+ -0.368125,-0.929776,0,0.049501,0.03976,-0.007708,
+ -0.368119,-0.929762,0.005552,0.049501,0.03976,-0.006167,
+ -0.425773,-0.904813,0.005552,0.048501,0.040192,-0.006167,
+ -0.368125,-0.929776,0,0.049501,0.03976,-0.007708,
+ -0.425773,-0.904813,0.005552,0.048501,0.040192,-0.006167,
+ -0.425779,-0.904827,0,0.048501,0.040192,-0.007708,
+ -0.309017,-0.951057,0,0.050526,0.03939,-0.007708,
+ -0.309012,-0.951042,0.005552,0.050526,0.03939,-0.006167,
+ -0.368119,-0.929762,0.005552,0.049501,0.03976,-0.006167,
+ -0.309017,-0.951057,0,0.050526,0.03939,-0.007708,
+ -0.368119,-0.929762,0.005552,0.049501,0.03976,-0.006167,
+ -0.368125,-0.929776,0,0.049501,0.03976,-0.007708,
+ -0.24869,-0.968583,0,0.051572,0.039087,-0.007708,
+ -0.248686,-0.968568,0.005552,0.051572,0.039087,-0.006167,
+ -0.309012,-0.951042,0.005552,0.050526,0.03939,-0.006167,
+ -0.24869,-0.968583,0,0.051572,0.039087,-0.007708,
+ -0.309012,-0.951042,0.005552,0.050526,0.03939,-0.006167,
+ -0.309017,-0.951057,0,0.050526,0.03939,-0.007708,
+ -0.24869,-0.968583,0,0.051572,0.039087,-0.007708,
+ -0.309017,-0.951057,0,0.050526,0.03939,-0.007708,
+ -0.278991,-0.960294,0,0.051356,0.039149,-0.007708,
+ -0.24869,-0.968583,0,0.051572,0.039087,-0.007708,
+ -0.278991,-0.960294,0,0.051356,0.039149,-0.007708,
+ -0.278991,-0.960294,0,0.051428,0.039128,-0.007708,
+ -0.187381,-0.982287,0,0.052635,0.038849,-0.007708,
+ -0.187378,-0.982272,0.005552,0.052635,0.038849,-0.006167,
+ -0.248686,-0.968568,0.005552,0.051572,0.039087,-0.006167,
+ -0.187381,-0.982287,0,0.052635,0.038849,-0.007708,
+ -0.248686,-0.968568,0.005552,0.051572,0.039087,-0.006167,
+ -0.24869,-0.968583,0,0.051572,0.039087,-0.007708,
+ -0.125333,-0.992115,0,0.053712,0.038678,-0.007708,
+ -0.125331,-0.992099,0.005552,0.053712,0.038678,-0.006167,
+ -0.187378,-0.982272,0.005552,0.052635,0.038849,-0.006167,
+ -0.125333,-0.992115,0,0.053712,0.038678,-0.007708,
+ -0.187378,-0.982272,0.005552,0.052635,0.038849,-0.006167,
+ -0.187381,-0.982287,0,0.052635,0.038849,-0.007708,
+ -0.094108,-0.995562,0,0.054796,0.038576,-0.007708,
+ -0.07324,-0.997287,0.007402,0.054796,0.038576,-0.006167,
+ -0.125331,-0.992099,0.005552,0.053712,0.038678,-0.006167,
+ -0.094108,-0.995562,0,0.054796,0.038576,-0.007708,
+ -0.125331,-0.992099,0.005552,0.053712,0.038678,-0.006167,
+ -0.125333,-0.992115,0,0.053712,0.038678,-0.007708,
+ -0.951057,-0.309017,0,0.03939,0.050526,-0.007708,
+ -0.951042,-0.309012,0.005552,0.03939,0.050526,-0.006167,
+ -0.968568,-0.248686,0.005552,0.039087,0.051572,-0.006167,
+ -0.951057,-0.309017,0,0.03939,0.050526,-0.007708,
+ -0.968568,-0.248686,0.005552,0.039087,0.051572,-0.006167,
+ -0.968583,-0.24869,0,0.039087,0.051572,-0.007708,
+ -0.951057,-0.309017,0,0.03939,0.050526,-0.007708,
+ -0.968583,-0.24869,0,0.039087,0.051572,-0.007708,
+ -0.960294,-0.278991,0,0.039128,0.051428,-0.007708,
+ -0.951057,-0.309017,0,0.03939,0.050526,-0.007708,
+ -0.960294,-0.278991,0,0.039128,0.051428,-0.007708,
+ -0.960294,-0.278991,0,0.039149,0.051356,-0.007708,
+ -0.968583,-0.24869,0,0.039087,0.051572,-0.007708,
+ -0.968568,-0.248686,0.005552,0.039087,0.051572,-0.006167,
+ -0.982272,-0.187378,0.005552,0.038849,0.052635,-0.006167,
+ -0.968583,-0.24869,0,0.039087,0.051572,-0.007708,
+ -0.982272,-0.187378,0.005552,0.038849,0.052635,-0.006167,
+ -0.982287,-0.187381,0,0.038849,0.052635,-0.007708,
+ -0.982287,-0.187381,0,0.038849,0.052635,-0.007708,
+ -0.982272,-0.187378,0.005552,0.038849,0.052635,-0.006167,
+ -0.992099,-0.125331,0.005552,0.038678,0.053712,-0.006167,
+ -0.982287,-0.187381,0,0.038849,0.052635,-0.007708,
+ -0.992099,-0.125331,0.005552,0.038678,0.053712,-0.006167,
+ -0.992115,-0.125333,0,0.038678,0.053712,-0.007708,
+ -0.992115,-0.125333,0,0.038678,0.053712,-0.007708,
+ -0.992099,-0.125331,0.005552,0.038678,0.053712,-0.006167,
+ -0.997287,-0.07324,0.007402,0.038576,0.054796,-0.006167,
+ -0.992115,-0.125333,0,0.038678,0.053712,-0.007708,
+ -0.997287,-0.07324,0.007402,0.038576,0.054796,-0.006167,
+ -0.995562,-0.094108,0,0.038576,0.054796,-0.007708,
+ -0.995562,0.094108,0,0.038576,0.056974,-0.007708,
+ -0.997287,0.07324,0.007402,0.038576,0.056974,-0.006167,
+ -0.992099,0.125331,0.005552,0.038678,0.058059,-0.006167,
+ -0.995562,0.094108,0,0.038576,0.056974,-0.007708,
+ -0.992099,0.125331,0.005552,0.038678,0.058059,-0.006167,
+ -0.992115,0.125333,0,0.038678,0.058059,-0.007708,
+ -0.992115,0.125333,0,0.038678,0.058059,-0.007708,
+ -0.992099,0.125331,0.005552,0.038678,0.058059,-0.006167,
+ -0.982272,0.187378,0.005552,0.038849,0.059135,-0.006167,
+ -0.992115,0.125333,0,0.038678,0.058059,-0.007708,
+ -0.982272,0.187378,0.005552,0.038849,0.059135,-0.006167,
+ -0.982287,0.187381,0,0.038849,0.059135,-0.007708,
+ -0.982287,0.187381,0,0.038849,0.059135,-0.007708,
+ -0.982272,0.187378,0.005552,0.038849,0.059135,-0.006167,
+ -0.968568,0.248686,0.005552,0.039087,0.060198,-0.006167,
+ -0.982287,0.187381,0,0.038849,0.059135,-0.007708,
+ -0.968568,0.248686,0.005552,0.039087,0.060198,-0.006167,
+ -0.968583,0.24869,0,0.039087,0.060198,-0.007708,
+ -0.968583,0.24869,0,0.039087,0.060198,-0.007708,
+ -0.968568,0.248686,0.005552,0.039087,0.060198,-0.006167,
+ -0.951042,0.309012,0.005552,0.03939,0.061245,-0.006167,
+ -0.968583,0.24869,0,0.039087,0.060198,-0.007708,
+ -0.951042,0.309012,0.005552,0.03939,0.061245,-0.006167,
+ -0.951057,0.309017,0,0.03939,0.061245,-0.007708,
+ -0.968583,0.24869,0,0.039087,0.060198,-0.007708,
+ -0.951057,0.309017,0,0.03939,0.061245,-0.007708,
+ -0.960294,0.278991,0,0.039149,0.060414,-0.007708,
+ -0.968583,0.24869,0,0.039087,0.060198,-0.007708,
+ -0.960294,0.278991,0,0.039149,0.060414,-0.007708,
+ -0.960294,0.278991,0,0.039128,0.060343,-0.007708,
+ -0.951057,0.309017,0,0.03939,0.061245,-0.007708,
+ -0.951042,0.309012,0.005552,0.03939,0.061245,-0.006167,
+ -0.929762,0.368119,0.005552,0.03976,0.06227,-0.006167,
+ -0.951057,0.309017,0,0.03939,0.061245,-0.007708,
+ -0.929762,0.368119,0.005552,0.03976,0.06227,-0.006167,
+ -0.929776,0.368125,0,0.03976,0.06227,-0.007708,
+ -0.929776,0.368125,0,0.03976,0.06227,-0.007708,
+ -0.929762,0.368119,0.005552,0.03976,0.06227,-0.006167,
+ -0.904813,0.425773,0.005552,0.040192,0.06327,-0.006167,
+ -0.929776,0.368125,0,0.03976,0.06227,-0.007708,
+ -0.904813,0.425773,0.005552,0.040192,0.06327,-0.006167,
+ -0.904827,0.425779,0,0.040192,0.06327,-0.007708,
+ -0.904827,0.425779,0,0.040192,0.06327,-0.007708,
+ -0.904813,0.425773,0.005552,0.040192,0.06327,-0.006167,
+ -0.876293,0.481746,0.005552,0.040687,0.064241,-0.006167,
+ -0.904827,0.425779,0,0.040192,0.06327,-0.007708,
+ -0.876293,0.481746,0.005552,0.040687,0.064241,-0.006167,
+ -0.876307,0.481754,0,0.040687,0.064241,-0.007708,
+ -0.876307,0.481754,0,0.040687,0.064241,-0.007708,
+ -0.876293,0.481746,0.005552,0.040687,0.064241,-0.006167,
+ -0.844315,0.535819,0.005552,0.041241,0.065178,-0.006167,
+ -0.876307,0.481754,0,0.040687,0.064241,-0.007708,
+ -0.844315,0.535819,0.005552,0.041241,0.065178,-0.006167,
+ -0.844328,0.535827,0,0.041241,0.065178,-0.007708,
+ -0.876307,0.481754,0,0.040687,0.064241,-0.007708,
+ -0.844328,0.535827,0,0.041241,0.065178,-0.007708,
+ -0.860742,0.509041,0,0.040904,0.064607,-0.007708,
+ -0.876307,0.481754,0,0.040687,0.064241,-0.007708,
+ -0.860742,0.509041,0,0.040904,0.064607,-0.007708,
+ -0.860742,0.509041,0,0.040845,0.064507,-0.007708,
+ -0.844328,0.535827,0,0.041241,0.065178,-0.007708,
+ -0.844315,0.535819,0.005552,0.041241,0.065178,-0.006167,
+ -0.809005,0.587776,0.005552,0.041854,0.06608,-0.006167,
+ -0.844328,0.535827,0,0.041241,0.065178,-0.007708,
+ -0.809005,0.587776,0.005552,0.041854,0.06608,-0.006167,
+ -0.809017,0.587785,0,0.041854,0.06608,-0.007708,
+ -0.809017,0.587785,0,0.041854,0.06608,-0.007708,
+ -0.809005,0.587776,0.005552,0.041854,0.06608,-0.006167,
+ -0.770501,0.637414,0.005552,0.042522,0.066941,-0.006167,
+ -0.809017,0.587785,0,0.041854,0.06608,-0.007708,
+ -0.770501,0.637414,0.005552,0.042522,0.066941,-0.006167,
+ -0.770513,0.637424,0,0.042522,0.066941,-0.007708,
+ -0.770513,0.637424,0,0.042522,0.066941,-0.007708,
+ -0.770501,0.637414,0.005552,0.042522,0.066941,-0.006167,
+ -0.728957,0.684537,0.005552,0.043242,0.067758,-0.006167,
+ -0.770513,0.637424,0,0.042522,0.066941,-0.007708,
+ -0.728957,0.684537,0.005552,0.043242,0.067758,-0.006167,
+ -0.728969,0.684547,0,0.043242,0.067758,-0.007708,
+ -0.728969,0.684547,0,0.043242,0.067758,-0.007708,
+ -0.728957,0.684537,0.005552,0.043242,0.067758,-0.006167,
+ -0.684537,0.728957,0.005552,0.044013,0.068528,-0.006167,
+ -0.728969,0.684547,0,0.043242,0.067758,-0.007708,
+ -0.684537,0.728957,0.005552,0.044013,0.068528,-0.006167,
+ -0.684547,0.728969,0,0.044013,0.068528,-0.007708,
+ -0.728969,0.684547,0,0.043242,0.067758,-0.007708,
+ -0.684547,0.728969,0,0.044013,0.068528,-0.007708,
+ -0.707107,0.707107,0,0.043673,0.068189,-0.007708,
+ -0.728969,0.684547,0,0.043242,0.067758,-0.007708,
+ -0.707107,0.707107,0,0.043673,0.068189,-0.007708,
+ -0.707107,0.707107,0,0.043581,0.068097,-0.007708,
+ -0.684547,0.728969,0,0.044013,0.068528,-0.007708,
+ -0.684537,0.728957,0.005552,0.044013,0.068528,-0.006167,
+ -0.637414,0.770501,0.005552,0.04483,0.069249,-0.006167,
+ -0.684547,0.728969,0,0.044013,0.068528,-0.007708,
+ -0.637414,0.770501,0.005552,0.04483,0.069249,-0.006167,
+ -0.637424,0.770513,0,0.04483,0.069249,-0.007708,
+ -0.637424,0.770513,0,0.04483,0.069249,-0.007708,
+ -0.637414,0.770501,0.005552,0.04483,0.069249,-0.006167,
+ -0.587776,0.809005,0.005552,0.045691,0.069917,-0.006167,
+ -0.637424,0.770513,0,0.04483,0.069249,-0.007708,
+ -0.587776,0.809005,0.005552,0.045691,0.069917,-0.006167,
+ -0.587785,0.809017,0,0.045691,0.069917,-0.007708,
+ -0.587785,0.809017,0,0.045691,0.069917,-0.007708,
+ -0.587776,0.809005,0.005552,0.045691,0.069917,-0.006167,
+ -0.535819,0.844315,0.005552,0.046592,0.070529,-0.006167,
+ -0.587785,0.809017,0,0.045691,0.069917,-0.007708,
+ -0.535819,0.844315,0.005552,0.046592,0.070529,-0.006167,
+ -0.535827,0.844328,0,0.046592,0.070529,-0.007708,
+ -0.535827,0.844328,0,0.046592,0.070529,-0.007708,
+ -0.535819,0.844315,0.005552,0.046592,0.070529,-0.006167,
+ -0.481746,0.876293,0.005552,0.04753,0.071084,-0.006167,
+ -0.535827,0.844328,0,0.046592,0.070529,-0.007708,
+ -0.481746,0.876293,0.005552,0.04753,0.071084,-0.006167,
+ -0.481754,0.876307,0,0.04753,0.071084,-0.007708,
+ -0.535827,0.844328,0,0.046592,0.070529,-0.007708,
+ -0.481754,0.876307,0,0.04753,0.071084,-0.007708,
+ -0.509041,0.860742,0,0.047263,0.070926,-0.007708,
+ -0.535827,0.844328,0,0.046592,0.070529,-0.007708,
+ -0.509041,0.860742,0,0.047263,0.070926,-0.007708,
+ -0.509041,0.860742,0,0.047163,0.070867,-0.007708,
+ -0.481754,0.876307,0,0.04753,0.071084,-0.007708,
+ -0.481746,0.876293,0.005552,0.04753,0.071084,-0.006167,
+ -0.425773,0.904813,0.005552,0.048501,0.071578,-0.006167,
+ -0.481754,0.876307,0,0.04753,0.071084,-0.007708,
+ -0.425773,0.904813,0.005552,0.048501,0.071578,-0.006167,
+ -0.425779,0.904827,0,0.048501,0.071578,-0.007708,
+ -0.425779,0.904827,0,0.048501,0.071578,-0.007708,
+ -0.425773,0.904813,0.005552,0.048501,0.071578,-0.006167,
+ -0.368119,0.929762,0.005552,0.049501,0.072011,-0.006167,
+ -0.425779,0.904827,0,0.048501,0.071578,-0.007708,
+ -0.368119,0.929762,0.005552,0.049501,0.072011,-0.006167,
+ -0.368125,0.929776,0,0.049501,0.072011,-0.007708,
+ -0.368125,0.929776,0,0.049501,0.072011,-0.007708,
+ -0.368119,0.929762,0.005552,0.049501,0.072011,-0.006167,
+ -0.309012,0.951042,0.005552,0.050526,0.07238,-0.006167,
+ -0.368125,0.929776,0,0.049501,0.072011,-0.007708,
+ -0.309012,0.951042,0.005552,0.050526,0.07238,-0.006167,
+ -0.309017,0.951057,0,0.050526,0.07238,-0.007708,
+ -0.309017,0.951057,0,0.050526,0.07238,-0.007708,
+ -0.309012,0.951042,0.005552,0.050526,0.07238,-0.006167,
+ -0.248686,0.968568,0.005552,0.051572,0.072684,-0.006167,
+ -0.309017,0.951057,0,0.050526,0.07238,-0.007708,
+ -0.248686,0.968568,0.005552,0.051572,0.072684,-0.006167,
+ -0.24869,0.968583,0,0.051572,0.072684,-0.007708,
+ -0.309017,0.951057,0,0.050526,0.07238,-0.007708,
+ -0.24869,0.968583,0,0.051572,0.072684,-0.007708,
+ -0.278991,0.960294,0,0.051428,0.072642,-0.007708,
+ -0.309017,0.951057,0,0.050526,0.07238,-0.007708,
+ -0.278991,0.960294,0,0.051428,0.072642,-0.007708,
+ -0.278991,0.960294,0,0.051356,0.072621,-0.007708,
+ -0.24869,0.968583,0,0.051572,0.072684,-0.007708,
+ -0.248686,0.968568,0.005552,0.051572,0.072684,-0.006167,
+ -0.187378,0.982272,0.005552,0.052635,0.072922,-0.006167,
+ -0.24869,0.968583,0,0.051572,0.072684,-0.007708,
+ -0.187378,0.982272,0.005552,0.052635,0.072922,-0.006167,
+ -0.187381,0.982287,0,0.052635,0.072922,-0.007708,
+ -0.187381,0.982287,0,0.052635,0.072922,-0.007708,
+ -0.187378,0.982272,0.005552,0.052635,0.072922,-0.006167,
+ -0.125331,0.992099,0.005552,0.053712,0.073092,-0.006167,
+ -0.187381,0.982287,0,0.052635,0.072922,-0.007708,
+ -0.125331,0.992099,0.005552,0.053712,0.073092,-0.006167,
+ -0.125333,0.992115,0,0.053712,0.073092,-0.007708,
+ -0.125333,0.992115,0,0.053712,0.073092,-0.007708,
+ -0.125331,0.992099,0.005552,0.053712,0.073092,-0.006167,
+ -0.07324,0.997287,0.007402,0.054796,0.073195,-0.006167,
+ -0.125333,0.992115,0,0.053712,0.073092,-0.007708,
+ -0.07324,0.997287,0.007402,0.054796,0.073195,-0.006167,
+ -0.094108,0.995562,0,0.054796,0.073195,-0.007708,
+ 0.094108,0.995562,0,0.056974,0.073195,-0.007708,
+ 0.07324,0.997287,0.007402,0.056974,0.073195,-0.006167,
+ 0.125331,0.992099,0.005552,0.058059,0.073092,-0.006167,
+ 0.094108,0.995562,0,0.056974,0.073195,-0.007708,
+ 0.125331,0.992099,0.005552,0.058059,0.073092,-0.006167,
+ 0.125333,0.992115,0,0.058059,0.073092,-0.007708,
+ 0.125333,0.992115,0,0.058059,0.073092,-0.007708,
+ 0.125331,0.992099,0.005552,0.058059,0.073092,-0.006167,
+ 0.187378,0.982272,0.005552,0.059135,0.072922,-0.006167,
+ 0.125333,0.992115,0,0.058059,0.073092,-0.007708,
+ 0.187378,0.982272,0.005552,0.059135,0.072922,-0.006167,
+ 0.187381,0.982287,0,0.059135,0.072922,-0.007708,
+ 0.187381,0.982287,0,0.059135,0.072922,-0.007708,
+ 0.187378,0.982272,0.005552,0.059135,0.072922,-0.006167,
+ 0.248686,0.968568,0.005552,0.060198,0.072684,-0.006167,
+ 0.187381,0.982287,0,0.059135,0.072922,-0.007708,
+ 0.248686,0.968568,0.005552,0.060198,0.072684,-0.006167,
+ 0.24869,0.968583,0,0.060198,0.072684,-0.007708,
+ 0.24869,0.968583,0,0.060198,0.072684,-0.007708,
+ 0.248686,0.968568,0.005552,0.060198,0.072684,-0.006167,
+ 0.309012,0.951042,0.005552,0.061245,0.07238,-0.006167,
+ 0.24869,0.968583,0,0.060198,0.072684,-0.007708,
+ 0.309012,0.951042,0.005552,0.061245,0.07238,-0.006167,
+ 0.309017,0.951057,0,0.061245,0.07238,-0.007708,
+ 0.24869,0.968583,0,0.060198,0.072684,-0.007708,
+ 0.309017,0.951057,0,0.061245,0.07238,-0.007708,
+ 0.278991,0.960294,0,0.060414,0.072621,-0.007708,
+ 0.24869,0.968583,0,0.060198,0.072684,-0.007708,
+ 0.278991,0.960294,0,0.060414,0.072621,-0.007708,
+ 0.278991,0.960294,0,0.060343,0.072642,-0.007708,
+ 0.309017,0.951057,0,0.061245,0.07238,-0.007708,
+ 0.309012,0.951042,0.005552,0.061245,0.07238,-0.006167,
+ 0.368119,0.929762,0.005552,0.06227,0.072011,-0.006167,
+ 0.309017,0.951057,0,0.061245,0.07238,-0.007708,
+ 0.368119,0.929762,0.005552,0.06227,0.072011,-0.006167,
+ 0.368125,0.929776,0,0.06227,0.072011,-0.007708,
+ 0.368125,0.929776,0,0.06227,0.072011,-0.007708,
+ 0.368119,0.929762,0.005552,0.06227,0.072011,-0.006167,
+ 0.425773,0.904813,0.005552,0.06327,0.071578,-0.006167,
+ 0.368125,0.929776,0,0.06227,0.072011,-0.007708,
+ 0.425773,0.904813,0.005552,0.06327,0.071578,-0.006167,
+ 0.425779,0.904827,0,0.06327,0.071578,-0.007708,
+ 0.425779,0.904827,0,0.06327,0.071578,-0.007708,
+ 0.425773,0.904813,0.005552,0.06327,0.071578,-0.006167,
+ 0.481746,0.876293,0.005552,0.064241,0.071084,-0.006167,
+ 0.425779,0.904827,0,0.06327,0.071578,-0.007708,
+ 0.481746,0.876293,0.005552,0.064241,0.071084,-0.006167,
+ 0.481754,0.876307,0,0.064241,0.071084,-0.007708,
+ 0.481754,0.876307,0,0.064241,0.071084,-0.007708,
+ 0.481746,0.876293,0.005552,0.064241,0.071084,-0.006167,
+ 0.535819,0.844315,0.005552,0.065178,0.070529,-0.006167,
+ 0.481754,0.876307,0,0.064241,0.071084,-0.007708,
+ 0.535819,0.844315,0.005552,0.065178,0.070529,-0.006167,
+ 0.535827,0.844328,0,0.065178,0.070529,-0.007708,
+ 0.481754,0.876307,0,0.064241,0.071084,-0.007708,
+ 0.535827,0.844328,0,0.065178,0.070529,-0.007708,
+ 0.509041,0.860742,0,0.064607,0.070867,-0.007708,
+ 0.481754,0.876307,0,0.064241,0.071084,-0.007708,
+ 0.509041,0.860742,0,0.064607,0.070867,-0.007708,
+ 0.509041,0.860742,0,0.064507,0.070926,-0.007708,
+ 0.535827,0.844328,0,0.065178,0.070529,-0.007708,
+ 0.535819,0.844315,0.005552,0.065178,0.070529,-0.006167,
+ 0.587776,0.809005,0.005552,0.06608,0.069917,-0.006167,
+ 0.535827,0.844328,0,0.065178,0.070529,-0.007708,
+ 0.587776,0.809005,0.005552,0.06608,0.069917,-0.006167,
+ 0.587785,0.809017,0,0.06608,0.069917,-0.007708,
+ 0.587785,0.809017,0,0.06608,0.069917,-0.007708,
+ 0.587776,0.809005,0.005552,0.06608,0.069917,-0.006167,
+ 0.637414,0.770501,0.005552,0.066941,0.069249,-0.006167,
+ 0.587785,0.809017,0,0.06608,0.069917,-0.007708,
+ 0.637414,0.770501,0.005552,0.066941,0.069249,-0.006167,
+ 0.637424,0.770513,0,0.066941,0.069249,-0.007708,
+ 0.637424,0.770513,0,0.066941,0.069249,-0.007708,
+ 0.637414,0.770501,0.005552,0.066941,0.069249,-0.006167,
+ 0.684537,0.728957,0.005552,0.067758,0.068528,-0.006167,
+ 0.637424,0.770513,0,0.066941,0.069249,-0.007708,
+ 0.684537,0.728957,0.005552,0.067758,0.068528,-0.006167,
+ 0.684547,0.728969,0,0.067758,0.068528,-0.007708,
+ 0.684547,0.728969,0,0.067758,0.068528,-0.007708,
+ 0.684537,0.728957,0.005552,0.067758,0.068528,-0.006167,
+ 0.728957,0.684537,0.005552,0.068528,0.067758,-0.006167,
+ 0.684547,0.728969,0,0.067758,0.068528,-0.007708,
+ 0.728957,0.684537,0.005552,0.068528,0.067758,-0.006167,
+ 0.728969,0.684547,0,0.068528,0.067758,-0.007708,
+ 0.684547,0.728969,0,0.067758,0.068528,-0.007708,
+ 0.728969,0.684547,0,0.068528,0.067758,-0.007708,
+ 0.707107,0.707107,0,0.068189,0.068097,-0.007708,
+ 0.684547,0.728969,0,0.067758,0.068528,-0.007708,
+ 0.707107,0.707107,0,0.068189,0.068097,-0.007708,
+ 0.707107,0.707107,0,0.068097,0.068189,-0.007708,
+ 0.728969,0.684547,0,0.068528,0.067758,-0.007708,
+ 0.728957,0.684537,0.005552,0.068528,0.067758,-0.006167,
+ 0.770501,0.637414,0.005552,0.069249,0.066941,-0.006167,
+ 0.728969,0.684547,0,0.068528,0.067758,-0.007708,
+ 0.770501,0.637414,0.005552,0.069249,0.066941,-0.006167,
+ 0.770513,0.637424,0,0.069249,0.066941,-0.007708,
+ 0.770513,0.637424,0,0.069249,0.066941,-0.007708,
+ 0.770501,0.637414,0.005552,0.069249,0.066941,-0.006167,
+ 0.809005,0.587776,0.005552,0.069917,0.06608,-0.006167,
+ 0.770513,0.637424,0,0.069249,0.066941,-0.007708,
+ 0.809005,0.587776,0.005552,0.069917,0.06608,-0.006167,
+ 0.809017,0.587785,0,0.069917,0.06608,-0.007708,
+ 0.809017,0.587785,0,0.069917,0.06608,-0.007708,
+ 0.809005,0.587776,0.005552,0.069917,0.06608,-0.006167,
+ 0.844315,0.535819,0.005552,0.070529,0.065178,-0.006167,
+ 0.809017,0.587785,0,0.069917,0.06608,-0.007708,
+ 0.844315,0.535819,0.005552,0.070529,0.065178,-0.006167,
+ 0.844328,0.535827,0,0.070529,0.065178,-0.007708,
+ 0.844328,0.535827,0,0.070529,0.065178,-0.007708,
+ 0.844315,0.535819,0.005552,0.070529,0.065178,-0.006167,
+ 0.876293,0.481746,0.005552,0.071084,0.064241,-0.006167,
+ 0.844328,0.535827,0,0.070529,0.065178,-0.007708,
+ 0.876293,0.481746,0.005552,0.071084,0.064241,-0.006167,
+ 0.876307,0.481754,0,0.071084,0.064241,-0.007708,
+ 0.844328,0.535827,0,0.070529,0.065178,-0.007708,
+ 0.876307,0.481754,0,0.071084,0.064241,-0.007708,
+ 0.860742,0.509041,0,0.070926,0.064507,-0.007708,
+ 0.844328,0.535827,0,0.070529,0.065178,-0.007708,
+ 0.860742,0.509041,0,0.070926,0.064507,-0.007708,
+ 0.860742,0.509041,0,0.070867,0.064607,-0.007708,
+ 0.876307,0.481754,0,0.071084,0.064241,-0.007708,
+ 0.876293,0.481746,0.005552,0.071084,0.064241,-0.006167,
+ 0.904813,0.425773,0.005552,0.071578,0.06327,-0.006167,
+ 0.876307,0.481754,0,0.071084,0.064241,-0.007708,
+ 0.904813,0.425773,0.005552,0.071578,0.06327,-0.006167,
+ 0.904827,0.425779,0,0.071578,0.06327,-0.007708,
+ 0.904827,0.425779,0,0.071578,0.06327,-0.007708,
+ 0.904813,0.425773,0.005552,0.071578,0.06327,-0.006167,
+ 0.929762,0.368119,0.005552,0.072011,0.06227,-0.006167,
+ 0.904827,0.425779,0,0.071578,0.06327,-0.007708,
+ 0.929762,0.368119,0.005552,0.072011,0.06227,-0.006167,
+ 0.929776,0.368125,0,0.072011,0.06227,-0.007708,
+ 0.929776,0.368125,0,0.072011,0.06227,-0.007708,
+ 0.929762,0.368119,0.005552,0.072011,0.06227,-0.006167,
+ 0.951042,0.309012,0.005552,0.07238,0.061245,-0.006167,
+ 0.929776,0.368125,0,0.072011,0.06227,-0.007708,
+ 0.951042,0.309012,0.005552,0.07238,0.061245,-0.006167,
+ 0.951057,0.309017,0,0.07238,0.061245,-0.007708,
+ 0.951057,0.309017,0,0.07238,0.061245,-0.007708,
+ 0.951042,0.309012,0.005552,0.07238,0.061245,-0.006167,
+ 0.968568,0.248686,0.005552,0.072684,0.060198,-0.006167,
+ 0.951057,0.309017,0,0.07238,0.061245,-0.007708,
+ 0.968568,0.248686,0.005552,0.072684,0.060198,-0.006167,
+ 0.968583,0.24869,0,0.072684,0.060198,-0.007708,
+ 0.951057,0.309017,0,0.07238,0.061245,-0.007708,
+ 0.968583,0.24869,0,0.072684,0.060198,-0.007708,
+ 0.960294,0.278991,0,0.072642,0.060343,-0.007708,
+ 0.951057,0.309017,0,0.07238,0.061245,-0.007708,
+ 0.960294,0.278991,0,0.072642,0.060343,-0.007708,
+ 0.960294,0.278991,0,0.072621,0.060414,-0.007708,
+ 0.968583,0.24869,0,0.072684,0.060198,-0.007708,
+ 0.968568,0.248686,0.005552,0.072684,0.060198,-0.006167,
+ 0.982272,0.187378,0.005552,0.072922,0.059135,-0.006167,
+ 0.968583,0.24869,0,0.072684,0.060198,-0.007708,
+ 0.982272,0.187378,0.005552,0.072922,0.059135,-0.006167,
+ 0.982287,0.187381,0,0.072922,0.059135,-0.007708,
+ 0.982287,0.187381,0,0.072922,0.059135,-0.007708,
+ 0.982272,0.187378,0.005552,0.072922,0.059135,-0.006167,
+ 0.992099,0.125331,0.005552,0.073092,0.058059,-0.006167,
+ 0.982287,0.187381,0,0.072922,0.059135,-0.007708,
+ 0.992099,0.125331,0.005552,0.073092,0.058059,-0.006167,
+ 0.992115,0.125333,0,0.073092,0.058059,-0.007708,
+ 0.992115,0.125333,0,0.073092,0.058059,-0.007708,
+ 0.992099,0.125331,0.005552,0.073092,0.058059,-0.006167,
+ 0.997287,0.07324,0.007402,0.073195,0.056974,-0.006167,
+ 0.992115,0.125333,0,0.073092,0.058059,-0.007708,
+ 0.997287,0.07324,0.007402,0.073195,0.056974,-0.006167,
+ 0.995562,0.094108,0,0.073195,0.056974,-0.007708,
+ 0.995562,-0.094108,0,0.073195,0.054796,-0.007708,
+ 0.997287,-0.07324,0.007402,0.073195,0.054796,-0.006167,
+ 0.992099,-0.125331,0.005552,0.073092,0.053712,-0.006167,
+ 0.995562,-0.094108,0,0.073195,0.054796,-0.007708,
+ 0.992099,-0.125331,0.005552,0.073092,0.053712,-0.006167,
+ 0.992115,-0.125333,0,0.073092,0.053712,-0.007708,
+ 0.992115,-0.125333,0,0.073092,0.053712,-0.007708,
+ 0.992099,-0.125331,0.005552,0.073092,0.053712,-0.006167,
+ 0.982272,-0.187378,0.005552,0.072922,0.052635,-0.006167,
+ 0.992115,-0.125333,0,0.073092,0.053712,-0.007708,
+ 0.982272,-0.187378,0.005552,0.072922,0.052635,-0.006167,
+ 0.982287,-0.187381,0,0.072922,0.052635,-0.007708,
+ 0.982287,-0.187381,0,0.072922,0.052635,-0.007708,
+ 0.982272,-0.187378,0.005552,0.072922,0.052635,-0.006167,
+ 0.968568,-0.248686,0.005552,0.072684,0.051572,-0.006167,
+ 0.982287,-0.187381,0,0.072922,0.052635,-0.007708,
+ 0.968568,-0.248686,0.005552,0.072684,0.051572,-0.006167,
+ 0.968583,-0.24869,0,0.072684,0.051572,-0.007708,
+ 0.968583,-0.24869,0,0.072684,0.051572,-0.007708,
+ 0.968568,-0.248686,0.005552,0.072684,0.051572,-0.006167,
+ 0.951042,-0.309012,0.005552,0.07238,0.050526,-0.006167,
+ 0.968583,-0.24869,0,0.072684,0.051572,-0.007708,
+ 0.951042,-0.309012,0.005552,0.07238,0.050526,-0.006167,
+ 0.951057,-0.309017,0,0.07238,0.050526,-0.007708,
+ 0.968583,-0.24869,0,0.072684,0.051572,-0.007708,
+ 0.951057,-0.309017,0,0.07238,0.050526,-0.007708,
+ 0.960294,-0.278991,0,0.072621,0.051356,-0.007708,
+ 0.968583,-0.24869,0,0.072684,0.051572,-0.007708,
+ 0.960294,-0.278991,0,0.072621,0.051356,-0.007708,
+ 0.960294,-0.278991,0,0.072642,0.051428,-0.007708,
+ 0.951057,-0.309017,0,0.07238,0.050526,-0.007708,
+ 0.951042,-0.309012,0.005552,0.07238,0.050526,-0.006167,
+ 0.929762,-0.368119,0.005552,0.072011,0.049501,-0.006167,
+ 0.951057,-0.309017,0,0.07238,0.050526,-0.007708,
+ 0.929762,-0.368119,0.005552,0.072011,0.049501,-0.006167,
+ 0.929776,-0.368125,0,0.072011,0.049501,-0.007708,
+ 0.929776,-0.368125,0,0.072011,0.049501,-0.007708,
+ 0.929762,-0.368119,0.005552,0.072011,0.049501,-0.006167,
+ 0.904813,-0.425773,0.005552,0.071578,0.048501,-0.006167,
+ 0.929776,-0.368125,0,0.072011,0.049501,-0.007708,
+ 0.904813,-0.425773,0.005552,0.071578,0.048501,-0.006167,
+ 0.904827,-0.425779,0,0.071578,0.048501,-0.007708,
+ 0.904827,-0.425779,0,0.071578,0.048501,-0.007708,
+ 0.904813,-0.425773,0.005552,0.071578,0.048501,-0.006167,
+ 0.876293,-0.481746,0.005552,0.071084,0.04753,-0.006167,
+ 0.904827,-0.425779,0,0.071578,0.048501,-0.007708,
+ 0.876293,-0.481746,0.005552,0.071084,0.04753,-0.006167,
+ 0.876307,-0.481754,0,0.071084,0.04753,-0.007708,
+ 0.876307,-0.481754,0,0.071084,0.04753,-0.007708,
+ 0.876293,-0.481746,0.005552,0.071084,0.04753,-0.006167,
+ 0.844315,-0.535819,0.005552,0.070529,0.046592,-0.006167,
+ 0.876307,-0.481754,0,0.071084,0.04753,-0.007708,
+ 0.844315,-0.535819,0.005552,0.070529,0.046592,-0.006167,
+ 0.844328,-0.535827,0,0.070529,0.046592,-0.007708,
+ 0.876307,-0.481754,0,0.071084,0.04753,-0.007708,
+ 0.844328,-0.535827,0,0.070529,0.046592,-0.007708,
+ 0.860742,-0.509041,0,0.070867,0.047163,-0.007708,
+ 0.876307,-0.481754,0,0.071084,0.04753,-0.007708,
+ 0.860742,-0.509041,0,0.070867,0.047163,-0.007708,
+ 0.860742,-0.509041,0,0.070926,0.047263,-0.007708,
+ 0.844328,-0.535827,0,0.070529,0.046592,-0.007708,
+ 0.844315,-0.535819,0.005552,0.070529,0.046592,-0.006167,
+ 0.809005,-0.587776,0.005552,0.069917,0.045691,-0.006167,
+ 0.844328,-0.535827,0,0.070529,0.046592,-0.007708,
+ 0.809005,-0.587776,0.005552,0.069917,0.045691,-0.006167,
+ 0.809017,-0.587785,0,0.069917,0.045691,-0.007708,
+ 0.809017,-0.587785,0,0.069917,0.045691,-0.007708,
+ 0.809005,-0.587776,0.005552,0.069917,0.045691,-0.006167,
+ 0.770501,-0.637414,0.005552,0.069249,0.04483,-0.006167,
+ 0.809017,-0.587785,0,0.069917,0.045691,-0.007708,
+ 0.770501,-0.637414,0.005552,0.069249,0.04483,-0.006167,
+ 0.770513,-0.637424,0,0.069249,0.04483,-0.007708,
+ 0.770513,-0.637424,0,0.069249,0.04483,-0.007708,
+ 0.770501,-0.637414,0.005552,0.069249,0.04483,-0.006167,
+ 0.728957,-0.684537,0.005552,0.068528,0.044013,-0.006167,
+ 0.770513,-0.637424,0,0.069249,0.04483,-0.007708,
+ 0.728957,-0.684537,0.005552,0.068528,0.044013,-0.006167,
+ 0.728969,-0.684547,0,0.068528,0.044013,-0.007708,
+ 0.728969,-0.684547,0,0.068528,0.044013,-0.007708,
+ 0.728957,-0.684537,0.005552,0.068528,0.044013,-0.006167,
+ 0.684537,-0.728957,0.005552,0.067758,0.043242,-0.006167,
+ 0.728969,-0.684547,0,0.068528,0.044013,-0.007708,
+ 0.684537,-0.728957,0.005552,0.067758,0.043242,-0.006167,
+ 0.684547,-0.728969,0,0.067758,0.043242,-0.007708,
+ 0.728969,-0.684547,0,0.068528,0.044013,-0.007708,
+ 0.684547,-0.728969,0,0.067758,0.043242,-0.007708,
+ 0.707107,-0.707107,0,0.068097,0.043581,-0.007708,
+ 0.728969,-0.684547,0,0.068528,0.044013,-0.007708,
+ 0.707107,-0.707107,0,0.068097,0.043581,-0.007708,
+ 0.707107,-0.707107,0,0.068189,0.043673,-0.007708,
+ 0.684547,-0.728969,0,0.067758,0.043242,-0.007708,
+ 0.684537,-0.728957,0.005552,0.067758,0.043242,-0.006167,
+ 0.637414,-0.770501,0.005552,0.066941,0.042522,-0.006167,
+ 0.684547,-0.728969,0,0.067758,0.043242,-0.007708,
+ 0.637414,-0.770501,0.005552,0.066941,0.042522,-0.006167,
+ 0.637424,-0.770513,0,0.066941,0.042522,-0.007708,
+ 0.637424,-0.770513,0,0.066941,0.042522,-0.007708,
+ 0.637414,-0.770501,0.005552,0.066941,0.042522,-0.006167,
+ 0.587776,-0.809005,0.005552,0.06608,0.041854,-0.006167,
+ 0.637424,-0.770513,0,0.066941,0.042522,-0.007708,
+ 0.587776,-0.809005,0.005552,0.06608,0.041854,-0.006167,
+ 0.587785,-0.809017,0,0.06608,0.041854,-0.007708,
+ 0.587785,-0.809017,0,0.06608,0.041854,-0.007708,
+ 0.587776,-0.809005,0.005552,0.06608,0.041854,-0.006167,
+ 0.535819,-0.844315,0.005552,0.065178,0.041241,-0.006167,
+ 0.587785,-0.809017,0,0.06608,0.041854,-0.007708,
+ 0.535819,-0.844315,0.005552,0.065178,0.041241,-0.006167,
+ 0.535827,-0.844328,0,0.065178,0.041241,-0.007708,
+ 0.535827,-0.844328,0,0.065178,0.041241,-0.007708,
+ 0.535819,-0.844315,0.005552,0.065178,0.041241,-0.006167,
+ 0.481746,-0.876293,0.005552,0.064241,0.040687,-0.006167,
+ 0.535827,-0.844328,0,0.065178,0.041241,-0.007708,
+ 0.481746,-0.876293,0.005552,0.064241,0.040687,-0.006167,
+ 0.481754,-0.876307,0,0.064241,0.040687,-0.007708,
+ 0.535827,-0.844328,0,0.065178,0.041241,-0.007708,
+ 0.481754,-0.876307,0,0.064241,0.040687,-0.007708,
+ 0.509041,-0.860742,0,0.064507,0.040845,-0.007708,
+ 0.535827,-0.844328,0,0.065178,0.041241,-0.007708,
+ 0.509041,-0.860742,0,0.064507,0.040845,-0.007708,
+ 0.509041,-0.860742,0,0.064607,0.040904,-0.007708,
+ 0.481754,-0.876307,0,0.064241,0.040687,-0.007708,
+ 0.481746,-0.876293,0.005552,0.064241,0.040687,-0.006167,
+ 0.425773,-0.904813,0.005552,0.06327,0.040192,-0.006167,
+ 0.481754,-0.876307,0,0.064241,0.040687,-0.007708,
+ 0.425773,-0.904813,0.005552,0.06327,0.040192,-0.006167,
+ 0.425779,-0.904827,0,0.06327,0.040192,-0.007708,
+ 0.425779,-0.904827,0,0.06327,0.040192,-0.007708,
+ 0.425773,-0.904813,0.005552,0.06327,0.040192,-0.006167,
+ 0.368119,-0.929762,0.005552,0.06227,0.03976,-0.006167,
+ 0.425779,-0.904827,0,0.06327,0.040192,-0.007708,
+ 0.368119,-0.929762,0.005552,0.06227,0.03976,-0.006167,
+ 0.368125,-0.929776,0,0.06227,0.03976,-0.007708,
+ 0.368125,-0.929776,0,0.06227,0.03976,-0.007708,
+ 0.368119,-0.929762,0.005552,0.06227,0.03976,-0.006167,
+ 0.309012,-0.951042,0.005552,0.061245,0.03939,-0.006167,
+ 0.368125,-0.929776,0,0.06227,0.03976,-0.007708,
+ 0.309012,-0.951042,0.005552,0.061245,0.03939,-0.006167,
+ 0.309017,-0.951057,0,0.061245,0.03939,-0.007708,
+ 0.309017,-0.951057,0,0.061245,0.03939,-0.007708,
+ 0.309012,-0.951042,0.005552,0.061245,0.03939,-0.006167,
+ 0.248686,-0.968568,0.005552,0.060198,0.039087,-0.006167,
+ 0.309017,-0.951057,0,0.061245,0.03939,-0.007708,
+ 0.248686,-0.968568,0.005552,0.060198,0.039087,-0.006167,
+ 0.24869,-0.968583,0,0.060198,0.039087,-0.007708,
+ 0.309017,-0.951057,0,0.061245,0.03939,-0.007708,
+ 0.24869,-0.968583,0,0.060198,0.039087,-0.007708,
+ 0.278991,-0.960294,0,0.060343,0.039128,-0.007708,
+ 0.309017,-0.951057,0,0.061245,0.03939,-0.007708,
+ 0.278991,-0.960294,0,0.060343,0.039128,-0.007708,
+ 0.278991,-0.960294,0,0.060414,0.039149,-0.007708,
+ 0.24869,-0.968583,0,0.060198,0.039087,-0.007708,
+ 0.248686,-0.968568,0.005552,0.060198,0.039087,-0.006167,
+ 0.187378,-0.982272,0.005552,0.059135,0.038849,-0.006167,
+ 0.24869,-0.968583,0,0.060198,0.039087,-0.007708,
+ 0.187378,-0.982272,0.005552,0.059135,0.038849,-0.006167,
+ 0.187381,-0.982287,0,0.059135,0.038849,-0.007708,
+ 0.187381,-0.982287,0,0.059135,0.038849,-0.007708,
+ 0.187378,-0.982272,0.005552,0.059135,0.038849,-0.006167,
+ 0.125331,-0.992099,0.005552,0.058059,0.038678,-0.006167,
+ 0.187381,-0.982287,0,0.059135,0.038849,-0.007708,
+ 0.125331,-0.992099,0.005552,0.058059,0.038678,-0.006167,
+ 0.125333,-0.992115,0,0.058059,0.038678,-0.007708,
+ 0.125333,-0.992115,0,0.058059,0.038678,-0.007708,
+ 0.125331,-0.992099,0.005552,0.058059,0.038678,-0.006167,
+ 0.07324,-0.997287,0.007402,0.056974,0.038576,-0.006167,
+ 0.125333,-0.992115,0,0.058059,0.038678,-0.007708,
+ 0.07324,-0.997287,0.007402,0.056974,0.038576,-0.006167,
+ 0.094108,-0.995562,0,0.056974,0.038576,-0.007708
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,9588,data,NULL};
+const struct gllist *companion_disc=&frame;
diff --git a/hacks/glx/companion_heart.c b/hacks/glx/companion_heart.c
new file mode 100644
index 0000000..1786a62
--- /dev/null
+++ b/hacks/glx/companion_heart.c
@@ -0,0 +1,653 @@
+#include "gllist.h"
+static const float data[]={
+ -0.126112,-0.516835,0.846745,0.062716,0.065295,-0.005781,
+ -0.233173,-0.466563,0.853199,0.063951,0.064804,-0.005781,
+ -0.169323,-0.502195,0.848015,0.063583,0.066646,-0.004818,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.055116,0.063504,-0.005781,
+ 0,0,1,0.054127,0.064391,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.054127,0.064391,-0.005781,
+ 0,0,1,0.052967,0.065039,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.052967,0.065039,-0.005781,
+ 0,0,1,0.051693,0.065415,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.051693,0.065415,-0.005781,
+ 0,0,1,0.050367,0.065502,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.050367,0.065502,-0.005781,
+ 0,0,1,0.049054,0.065295,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.049054,0.065295,-0.005781,
+ 0,0,1,0.04782,0.064804,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.04782,0.064804,-0.005781,
+ 0,0,1,0.046724,0.064053,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.046724,0.064053,-0.005781,
+ 0,0,1,0.04582,0.063079,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.04582,0.063079,-0.005781,
+ 0,0,1,0.045152,0.06193,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.045152,0.06193,-0.005781,
+ 0,0,1,0.044754,0.060662,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.044754,0.060662,-0.005781,
+ 0,0,1,0.044645,0.059338,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.044645,0.059338,-0.005781,
+ 0,0,1,0.044702,0.058527,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.044702,0.058527,-0.005781,
+ 0,0,1,0.044827,0.057723,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.044827,0.057723,-0.005781,
+ 0,0,1,0.045017,0.056932,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.045017,0.056932,-0.005781,
+ 0,0,1,0.045272,0.05616,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.045272,0.05616,-0.005781,
+ 0,0,1,0.04559,0.055411,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.04559,0.055411,-0.005781,
+ 0,0,1,0.04597,0.054691,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.04597,0.054691,-0.005781,
+ 0,0,1,0.046407,0.054006,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.046407,0.054006,-0.005781,
+ 0,0,1,0.0469,0.053359,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.0469,0.053359,-0.005781,
+ 0,0,1,0.047445,0.052755,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.047445,0.052755,-0.005781,
+ 0,0,1,0.048038,0.052198,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.048038,0.052198,-0.005781,
+ 0,0,1,0.048675,0.051693,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.048675,0.051693,-0.005781,
+ 0,0,1,0.049352,0.051241,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.049352,0.051241,-0.005781,
+ 0,0,1,0.050001,0.050829,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.050001,0.050829,-0.005781,
+ 0,0,1,0.050634,0.050393,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.050634,0.050393,-0.005781,
+ 0,0,1,0.05125,0.049933,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.05125,0.049933,-0.005781,
+ 0,0,1,0.051848,0.049449,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.051848,0.049449,-0.005781,
+ 0,0,1,0.052427,0.048943,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.052427,0.048943,-0.005781,
+ 0,0,1,0.052987,0.048416,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.052987,0.048416,-0.005781,
+ 0,0,1,0.053525,0.047867,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.053525,0.047867,-0.005781,
+ 0,0,1,0.054043,0.047299,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.054043,0.047299,-0.005781,
+ 0,0,1,0.054538,0.046711,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.054538,0.046711,-0.005781,
+ 0,0,1,0.055011,0.046104,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.055011,0.046104,-0.005781,
+ 0,0,1,0.05546,0.04548,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.05546,0.04548,-0.005781,
+ 0,0,1,0.055885,0.044839,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.055885,0.044839,-0.005781,
+ 0,0,1,0.05631,0.04548,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.05631,0.04548,-0.005781,
+ 0,0,1,0.05676,0.046104,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.05676,0.046104,-0.005781,
+ 0,0,1,0.057232,0.046711,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.057232,0.046711,-0.005781,
+ 0,0,1,0.057728,0.047299,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.057728,0.047299,-0.005781,
+ 0,0,1,0.058245,0.047867,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.058245,0.047867,-0.005781,
+ 0,0,1,0.058784,0.048416,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.058784,0.048416,-0.005781,
+ 0,0,1,0.059343,0.048943,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.059343,0.048943,-0.005781,
+ 0,0,1,0.059922,0.049449,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.059922,0.049449,-0.005781,
+ 0,0,1,0.06052,0.049933,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.06052,0.049933,-0.005781,
+ 0,0,1,0.061136,0.050393,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.061136,0.050393,-0.005781,
+ 0,0,1,0.061769,0.050829,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.061769,0.050829,-0.005781,
+ 0,0,1,0.062418,0.051241,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.062418,0.051241,-0.005781,
+ 0,0,1,0.063095,0.051693,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.063095,0.051693,-0.005781,
+ 0,0,1,0.063732,0.052198,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.063732,0.052198,-0.005781,
+ 0,0,1,0.064326,0.052755,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.064326,0.052755,-0.005781,
+ 0,0,1,0.06487,0.053359,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.06487,0.053359,-0.005781,
+ 0,0,1,0.065363,0.054006,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.065363,0.054006,-0.005781,
+ 0,0,1,0.065801,0.054691,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.065801,0.054691,-0.005781,
+ 0,0,1,0.06618,0.055411,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.06618,0.055411,-0.005781,
+ 0,0,1,0.066498,0.05616,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.066498,0.05616,-0.005781,
+ 0,0,1,0.066754,0.056932,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.066754,0.056932,-0.005781,
+ 0,0,1,0.066944,0.057723,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.066944,0.057723,-0.005781,
+ 0,0,1,0.067068,0.058527,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.067068,0.058527,-0.005781,
+ 0,0,1,0.067125,0.059338,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.067125,0.059338,-0.005781,
+ 0,0,1,0.067016,0.060662,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.067016,0.060662,-0.005781,
+ 0,0,1,0.066618,0.06193,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.066618,0.06193,-0.005781,
+ 0,0,1,0.065951,0.063079,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.065951,0.063079,-0.005781,
+ 0,0,1,0.065047,0.064053,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.065047,0.064053,-0.005781,
+ 0,0,1,0.063951,0.064804,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.063951,0.064804,-0.005781,
+ 0,0,1,0.062716,0.065295,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.062716,0.065295,-0.005781,
+ 0,0,1,0.061404,0.065502,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.061404,0.065502,-0.005781,
+ 0,0,1,0.060078,0.065415,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.060078,0.065415,-0.005781,
+ 0,0,1,0.058804,0.065039,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.058804,0.065039,-0.005781,
+ 0,0,1,0.057644,0.064391,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.057644,0.064391,-0.005781,
+ 0,0,1,0.056655,0.063504,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.056655,0.063504,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.055885,0.06242,-0.005781,
+ 0,0,1,0.055116,0.063504,-0.005781,
+ 0.600355,0.41774,0.681958,0.05546,0.04548,-0.005781,
+ 0.611328,0.411243,0.676134,0.055414,0.04397,-0.004818,
+ 0.619748,0.407106,0.670953,0.055885,0.044839,-0.005781,
+ 0.611328,0.411243,0.676134,0.055414,0.04397,-0.004818,
+ 0.600355,0.41774,0.681958,0.05546,0.04548,-0.005781,
+ 0.583861,0.425853,0.691199,0.054915,0.044676,-0.004818,
+ 0.573435,0.432324,0.695894,0.055011,0.046104,-0.005781,
+ 0.583861,0.425853,0.691199,0.054915,0.044676,-0.004818,
+ 0.600355,0.41774,0.681958,0.05546,0.04548,-0.005781,
+ 0.583861,0.425853,0.691199,0.054915,0.044676,-0.004818,
+ 0.573435,0.432324,0.695894,0.055011,0.046104,-0.005781,
+ 0.557839,0.440321,0.703515,0.05439,0.045363,-0.004818,
+ 0.547914,0.446817,0.707209,0.054538,0.046711,-0.005781,
+ 0.557839,0.440321,0.703515,0.05439,0.045363,-0.004818,
+ 0.573435,0.432324,0.695894,0.055011,0.046104,-0.005781,
+ 0.557839,0.440321,0.703515,0.05439,0.045363,-0.004818,
+ 0.547914,0.446817,0.707209,0.054538,0.046711,-0.005781,
+ 0.528358,0.458036,0.714871,0.05384,0.046029,-0.004818,
+ 0.525024,0.459644,0.716294,0.054043,0.047299,-0.005781,
+ 0.528358,0.458036,0.714871,0.05384,0.046029,-0.004818,
+ 0.547914,0.446817,0.707209,0.054538,0.046711,-0.005781,
+ 0.525024,0.459644,0.716294,0.054043,0.047299,-0.005781,
+ 0.507344,0.470385,0.722039,0.053525,0.047867,-0.005781,
+ 0.528358,0.458036,0.714871,0.05384,0.046029,-0.004818,
+ 0.502587,0.474851,0.722443,0.053266,0.046673,-0.004818,
+ 0.528358,0.458036,0.714871,0.05384,0.046029,-0.004818,
+ 0.507344,0.470385,0.722039,0.053525,0.047867,-0.005781,
+ 0.507344,0.470385,0.722039,0.053525,0.047867,-0.005781,
+ 0.484849,0.48521,0.727662,0.052987,0.048416,-0.005781,
+ 0.502587,0.474851,0.722443,0.053266,0.046673,-0.004818,
+ 0.480277,0.489774,0.727637,0.052668,0.047293,-0.004818,
+ 0.502587,0.474851,0.722443,0.053266,0.046673,-0.004818,
+ 0.484849,0.48521,0.727662,0.052987,0.048416,-0.005781,
+ 0.484849,0.48521,0.727662,0.052987,0.048416,-0.005781,
+ 0.463202,0.500363,0.731492,0.052427,0.048943,-0.005781,
+ 0.480277,0.489774,0.727637,0.052668,0.047293,-0.004818,
+ 0.458764,0.50505,0.731068,0.052047,0.047891,-0.004818,
+ 0.480277,0.489774,0.727637,0.052668,0.047293,-0.004818,
+ 0.463202,0.500363,0.731492,0.052427,0.048943,-0.005781,
+ 0.463202,0.500363,0.731492,0.052427,0.048943,-0.005781,
+ 0.442255,0.515933,0.733637,0.051848,0.049449,-0.005781,
+ 0.458764,0.50505,0.731068,0.052047,0.047891,-0.004818,
+ 0.437903,0.520767,0.732832,0.051404,0.048464,-0.004818,
+ 0.458764,0.50505,0.731068,0.052047,0.047891,-0.004818,
+ 0.442255,0.515933,0.733637,0.051848,0.049449,-0.005781,
+ 0.442255,0.515933,0.733637,0.051848,0.049449,-0.005781,
+ 0.419718,0.534563,0.733539,0.05125,0.049933,-0.005781,
+ 0.437903,0.520767,0.732832,0.051404,0.048464,-0.004818,
+ 0.42249,0.532759,0.73326,0.050741,0.049011,-0.004818,
+ 0.437903,0.520767,0.732832,0.051404,0.048464,-0.004818,
+ 0.419718,0.534563,0.733539,0.05125,0.049933,-0.005781,
+ 0.42249,0.532759,0.73326,0.050741,0.049011,-0.004818,
+ 0.419718,0.534563,0.733539,0.05125,0.049933,-0.005781,
+ 0.403677,0.547538,0.732971,0.050057,0.049532,-0.004818,
+ 0.395847,0.555175,0.731496,0.050634,0.050393,-0.005781,
+ 0.403677,0.547538,0.732971,0.050057,0.049532,-0.004818,
+ 0.419718,0.534563,0.733539,0.05125,0.049933,-0.005781,
+ 0.403677,0.547538,0.732971,0.050057,0.049532,-0.004818,
+ 0.395847,0.555175,0.731496,0.050634,0.050393,-0.005781,
+ 0.38391,0.564835,0.730462,0.049354,0.050026,-0.004818,
+ 0.376177,0.572732,0.728333,0.050001,0.050829,-0.005781,
+ 0.38391,0.564835,0.730462,0.049354,0.050026,-0.004818,
+ 0.395847,0.555175,0.731496,0.050634,0.050393,-0.005781,
+ 0.38391,0.564835,0.730462,0.049354,0.050026,-0.004818,
+ 0.376177,0.572732,0.728333,0.050001,0.050829,-0.005781,
+ 0.375296,0.574093,0.727715,0.048634,0.050493,-0.004818,
+ 0.378691,0.573667,0.726291,0.049352,0.051241,-0.005781,
+ 0.375296,0.574093,0.727715,0.048634,0.050493,-0.004818,
+ 0.376177,0.572732,0.728333,0.050001,0.050829,-0.005781,
+ 0.375296,0.574093,0.727715,0.048634,0.050493,-0.004818,
+ 0.378691,0.573667,0.726291,0.049352,0.051241,-0.005781,
+ 0.405711,0.551851,0.728601,0.047882,0.051003,-0.004818,
+ 0.403275,0.554082,0.72826,0.048675,0.051693,-0.005781,
+ 0.405711,0.551851,0.728601,0.047882,0.051003,-0.004818,
+ 0.378691,0.573667,0.726291,0.049352,0.051241,-0.005781,
+ 0.403275,0.554082,0.72826,0.048675,0.051693,-0.005781,
+ 0.439698,0.520339,0.732061,0.048038,0.052198,-0.005781,
+ 0.405711,0.551851,0.728601,0.047882,0.051003,-0.004818,
+ 0.455156,0.505988,0.732672,0.047175,0.051576,-0.004818,
+ 0.405711,0.551851,0.728601,0.047882,0.051003,-0.004818,
+ 0.439698,0.520339,0.732061,0.048038,0.052198,-0.005781,
+ 0.439698,0.520339,0.732061,0.048038,0.052198,-0.005781,
+ 0.478388,0.479119,0.735928,0.047445,0.052755,-0.005781,
+ 0.455156,0.505988,0.732672,0.047175,0.051576,-0.004818,
+ 0.492434,0.463571,0.736621,0.046517,0.052206,-0.004818,
+ 0.455156,0.505988,0.732672,0.047175,0.051576,-0.004818,
+ 0.478388,0.479119,0.735928,0.047445,0.052755,-0.005781,
+ 0.478388,0.479119,0.735928,0.047445,0.052755,-0.005781,
+ 0.513034,0.434953,0.740008,0.0469,0.053359,-0.005781,
+ 0.492434,0.463571,0.736621,0.046517,0.052206,-0.004818,
+ 0.525496,0.418365,0.740827,0.045912,0.05289,-0.004818,
+ 0.492434,0.463571,0.736621,0.046517,0.052206,-0.004818,
+ 0.513034,0.434953,0.740008,0.0469,0.053359,-0.005781,
+ 0.513034,0.434953,0.740008,0.0469,0.053359,-0.005781,
+ 0.543337,0.388194,0.744372,0.046407,0.054006,-0.005781,
+ 0.525496,0.418365,0.740827,0.045912,0.05289,-0.004818,
+ 0.554068,0.370754,0.745352,0.045365,0.053623,-0.004818,
+ 0.525496,0.418365,0.740827,0.045912,0.05289,-0.004818,
+ 0.543337,0.388194,0.744372,0.046407,0.054006,-0.005781,
+ 0.543337,0.388194,0.744372,0.046407,0.054006,-0.005781,
+ 0.569031,0.339242,0.749078,0.04597,0.054691,-0.005781,
+ 0.554068,0.370754,0.745352,0.045365,0.053623,-0.004818,
+ 0.577912,0.321162,0.750248,0.044879,0.054399,-0.004818,
+ 0.554068,0.370754,0.745352,0.045365,0.053623,-0.004818,
+ 0.569031,0.339242,0.749078,0.04597,0.054691,-0.005781,
+ 0.569031,0.339242,0.749078,0.04597,0.054691,-0.005781,
+ 0.589896,0.288542,0.754166,0.04559,0.055411,-0.005781,
+ 0.577912,0.321162,0.750248,0.044879,0.054399,-0.004818,
+ 0.596848,0.270049,0.755544,0.044458,0.055214,-0.004818,
+ 0.577912,0.321162,0.750248,0.044879,0.054399,-0.004818,
+ 0.589896,0.288542,0.754166,0.04559,0.055411,-0.005781,
+ 0.589896,0.288542,0.754166,0.04559,0.055411,-0.005781,
+ 0.60577,0.236571,0.759656,0.045272,0.05616,-0.005781,
+ 0.596848,0.270049,0.755544,0.044458,0.055214,-0.004818,
+ 0.610753,0.217903,0.761249,0.044105,0.056061,-0.004818,
+ 0.596848,0.270049,0.755544,0.044458,0.055214,-0.004818,
+ 0.60577,0.236571,0.759656,0.045272,0.05616,-0.005781,
+ 0.60577,0.236571,0.759656,0.045272,0.05616,-0.005781,
+ 0.616557,0.183837,0.765546,0.045017,0.056932,-0.005781,
+ 0.610753,0.217903,0.761249,0.044105,0.056061,-0.004818,
+ 0.619574,0.165232,0.767351,0.043821,0.056936,-0.004818,
+ 0.610753,0.217903,0.761249,0.044105,0.056061,-0.004818,
+ 0.616557,0.183837,0.765546,0.045017,0.056932,-0.005781,
+ 0.616557,0.183837,0.765546,0.045017,0.056932,-0.005781,
+ 0.622238,0.13086,0.771813,0.044827,0.057723,-0.005781,
+ 0.619574,0.165232,0.767351,0.043821,0.056936,-0.004818,
+ 0.623333,0.112547,0.773815,0.04361,0.057831,-0.004818,
+ 0.619574,0.165232,0.767351,0.043821,0.056936,-0.004818,
+ 0.622238,0.13086,0.771813,0.044827,0.057723,-0.005781,
+ 0.622238,0.13086,0.771813,0.044827,0.057723,-0.005781,
+ 0.622921,0.078006,0.778386,0.044702,0.058527,-0.005781,
+ 0.623333,0.112547,0.773815,0.04361,0.057831,-0.004818,
+ 0.622674,0.06887,0.779444,0.043472,0.058741,-0.004818,
+ 0.623333,0.112547,0.773815,0.04361,0.057831,-0.004818,
+ 0.622921,0.078006,0.778386,0.044702,0.058527,-0.005781,
+ 0.615482,0.005518,0.788132,0.043409,0.05966,-0.004818,
+ 0.622674,0.06887,0.779444,0.043472,0.058741,-0.004818,
+ 0.622921,0.078006,0.778386,0.044702,0.058527,-0.005781,
+ 0.615482,0.005518,0.788132,0.043409,0.05966,-0.004818,
+ 0.622921,0.078006,0.778386,0.044702,0.058527,-0.005781,
+ 0.608032,-0.012608,0.793813,0.044645,0.059338,-0.005781,
+ 0.615482,0.005518,0.788132,0.043409,0.05966,-0.004818,
+ 0.608032,-0.012608,0.793813,0.044645,0.059338,-0.005781,
+ 0.587334,-0.078712,0.805508,0.043489,0.061186,-0.004818,
+ 0.563271,-0.124273,0.816873,0.044754,0.060662,-0.005781,
+ 0.587334,-0.078712,0.805508,0.043489,0.061186,-0.004818,
+ 0.608032,-0.012608,0.793813,0.044645,0.059338,-0.005781,
+ 0.587334,-0.078712,0.805508,0.043489,0.061186,-0.004818,
+ 0.563271,-0.124273,0.816873,0.044754,0.060662,-0.005781,
+ 0.528554,-0.194938,0.826214,0.043898,0.062655,-0.004818,
+ 0.498136,-0.2337,0.835012,0.045152,0.06193,-0.005781,
+ 0.528554,-0.194938,0.826214,0.043898,0.062655,-0.004818,
+ 0.563271,-0.124273,0.816873,0.044754,0.060662,-0.005781,
+ 0.528554,-0.194938,0.826214,0.043898,0.062655,-0.004818,
+ 0.498136,-0.2337,0.835012,0.045152,0.06193,-0.005781,
+ 0.454671,-0.294294,0.840634,0.044613,0.063997,-0.004818,
+ 0.419714,-0.3263,0.846976,0.04582,0.063079,-0.005781,
+ 0.454671,-0.294294,0.840634,0.044613,0.063997,-0.004818,
+ 0.498136,-0.2337,0.835012,0.045152,0.06193,-0.005781,
+ 0.454671,-0.294294,0.840634,0.044613,0.063997,-0.004818,
+ 0.419714,-0.3263,0.846976,0.04582,0.063079,-0.005781,
+ 0.369159,-0.377727,0.849143,0.0456,0.065145,-0.004818,
+ 0.33096,-0.403408,0.853069,0.046724,0.064053,-0.005781,
+ 0.369159,-0.377727,0.849143,0.0456,0.065145,-0.004818,
+ 0.419714,-0.3263,0.846976,0.04582,0.063079,-0.005781,
+ 0.369159,-0.377727,0.849143,0.0456,0.065145,-0.004818,
+ 0.33096,-0.403408,0.853069,0.046724,0.064053,-0.005781,
+ 0.273921,-0.44663,0.851756,0.046812,0.066043,-0.004818,
+ 0.233173,-0.466563,0.853199,0.04782,0.064804,-0.005781,
+ 0.273921,-0.44663,0.851756,0.046812,0.066043,-0.004818,
+ 0.33096,-0.403408,0.853069,0.046724,0.064053,-0.005781,
+ 0.273921,-0.44663,0.851756,0.046812,0.066043,-0.004818,
+ 0.233173,-0.466563,0.853199,0.04782,0.064804,-0.005781,
+ 0.169323,-0.502195,0.848015,0.048188,0.066646,-0.004818,
+ 0.126112,-0.516835,0.846745,0.049054,0.065295,-0.005781,
+ 0.169323,-0.502195,0.848015,0.048188,0.066646,-0.004818,
+ 0.233173,-0.466563,0.853199,0.04782,0.064804,-0.005781,
+ 0.169323,-0.502195,0.848015,0.048188,0.066646,-0.004818,
+ 0.126112,-0.516835,0.846745,0.049054,0.065295,-0.005781,
+ 0.054393,-0.544766,0.836822,0.04966,0.066926,-0.004818,
+ 0.00829,-0.554159,0.832369,0.050367,0.065502,-0.005781,
+ 0.054393,-0.544766,0.836822,0.04966,0.066926,-0.004818,
+ 0.126112,-0.516835,0.846745,0.049054,0.065295,-0.005781,
+ 0.054393,-0.544766,0.836822,0.04966,0.066926,-0.004818,
+ 0.00829,-0.554159,0.832369,0.050367,0.065502,-0.005781,
+ -0.072758,-0.573144,0.816219,0.051157,0.066867,-0.004818,
+ -0.12248,-0.576612,0.807785,0.051693,0.065415,-0.005781,
+ -0.072758,-0.573144,0.816219,0.051157,0.066867,-0.004818,
+ 0.00829,-0.554159,0.832369,0.050367,0.065502,-0.005781,
+ -0.072758,-0.573144,0.816219,0.051157,0.066867,-0.004818,
+ -0.12248,-0.576612,0.807785,0.051693,0.065415,-0.005781,
+ -0.241161,-0.582165,0.776482,0.052605,0.066474,-0.004818,
+ -0.248853,-0.582215,0.774014,0.052967,0.065039,-0.005781,
+ -0.241161,-0.582165,0.776482,0.052605,0.066474,-0.004818,
+ -0.12248,-0.576612,0.807785,0.051693,0.065415,-0.005781,
+ -0.248853,-0.582215,0.774014,0.052967,0.065039,-0.005781,
+ -0.375277,-0.56983,0.731068,0.054127,0.064391,-0.005781,
+ -0.241161,-0.582165,0.776482,0.052605,0.066474,-0.004818,
+ -0.434459,-0.558606,0.706544,0.053934,0.065766,-0.004818,
+ -0.241161,-0.582165,0.776482,0.052605,0.066474,-0.004818,
+ -0.375277,-0.56983,0.731068,0.054127,0.064391,-0.005781,
+ -0.375277,-0.56983,0.731068,0.054127,0.064391,-0.005781,
+ -0.563066,-0.515371,0.646025,0.055116,0.063504,-0.005781,
+ -0.434459,-0.558606,0.706544,0.053934,0.065766,-0.004818,
+ -0.558162,-0.527957,0.640091,0.055031,0.064761,-0.004818,
+ -0.434459,-0.558606,0.706544,0.053934,0.065766,-0.004818,
+ -0.563066,-0.515371,0.646025,0.055116,0.063504,-0.005781,
+ -0.558162,-0.527957,0.640091,0.055031,0.064761,-0.004818,
+ -0.563066,-0.515371,0.646025,0.055116,0.063504,-0.005781,
+ -0.627283,-0.480953,0.612536,0.055885,0.063727,-0.004818,
+ -0.641198,-0.455323,0.617694,0.055885,0.06242,-0.005781,
+ -0.627283,-0.480953,0.612536,0.055885,0.063727,-0.004818,
+ -0.563066,-0.515371,0.646025,0.055116,0.063504,-0.005781,
+ 0.641198,-0.455323,0.617694,0.055885,0.06242,-0.005781,
+ 0.584317,-0.505368,0.634963,0.056655,0.063504,-0.005781,
+ 0.627283,-0.480953,0.612536,0.055885,0.063727,-0.004818,
+ 0.53575,-0.534369,0.653775,0.056739,0.064761,-0.004818,
+ 0.627283,-0.480953,0.612536,0.055885,0.063727,-0.004818,
+ 0.584317,-0.505368,0.634963,0.056655,0.063504,-0.005781,
+ 0.584317,-0.505368,0.634963,0.056655,0.063504,-0.005781,
+ 0.438876,-0.557947,0.704332,0.057644,0.064391,-0.005781,
+ 0.53575,-0.534369,0.653775,0.056739,0.064761,-0.004818,
+ 0.377865,-0.569077,0.730322,0.057837,0.065766,-0.004818,
+ 0.53575,-0.534369,0.653775,0.056739,0.064761,-0.004818,
+ 0.438876,-0.557947,0.704332,0.057644,0.064391,-0.005781,
+ 0.438876,-0.557947,0.704332,0.057644,0.064391,-0.005781,
+ 0.267975,-0.579599,0.769581,0.058804,0.065039,-0.005781,
+ 0.377865,-0.569077,0.730322,0.057837,0.065766,-0.004818,
+ 0.214084,-0.583805,0.78316,0.059165,0.066474,-0.004818,
+ 0.377865,-0.569077,0.730322,0.057837,0.065766,-0.004818,
+ 0.267975,-0.579599,0.769581,0.058804,0.065039,-0.005781,
+ 0.267975,-0.579599,0.769581,0.058804,0.065039,-0.005781,
+ 0.12248,-0.576612,0.807785,0.060078,0.065415,-0.005781,
+ 0.214084,-0.583805,0.78316,0.059165,0.066474,-0.004818,
+ 0.072758,-0.573144,0.816219,0.060613,0.066867,-0.004818,
+ 0.214084,-0.583805,0.78316,0.059165,0.066474,-0.004818,
+ 0.12248,-0.576612,0.807785,0.060078,0.065415,-0.005781,
+ 0.12248,-0.576612,0.807785,0.060078,0.065415,-0.005781,
+ -0.00829,-0.554159,0.832369,0.061404,0.065502,-0.005781,
+ 0.072758,-0.573144,0.816219,0.060613,0.066867,-0.004818,
+ -0.054393,-0.544766,0.836822,0.06211,0.066926,-0.004818,
+ 0.072758,-0.573144,0.816219,0.060613,0.066867,-0.004818,
+ -0.00829,-0.554159,0.832369,0.061404,0.065502,-0.005781,
+ -0.00829,-0.554159,0.832369,0.061404,0.065502,-0.005781,
+ -0.126112,-0.516835,0.846745,0.062716,0.065295,-0.005781,
+ -0.054393,-0.544766,0.836822,0.06211,0.066926,-0.004818,
+ -0.169323,-0.502195,0.848015,0.063583,0.066646,-0.004818,
+ -0.054393,-0.544766,0.836822,0.06211,0.066926,-0.004818,
+ -0.126112,-0.516835,0.846745,0.062716,0.065295,-0.005781,
+ 0.622274,0.404734,0.670049,0.055885,0.043244,-0.004818,
+ 0.619748,0.407106,0.670953,0.055885,0.044839,-0.005781,
+ 0.611328,0.411243,0.676134,0.055414,0.04397,-0.004818,
+ -0.622274,0.404734,0.670049,0.055885,0.043244,-0.004818,
+ -0.611328,0.411243,0.676134,0.056357,0.04397,-0.004818,
+ -0.619748,0.407106,0.670953,0.055885,0.044839,-0.005781,
+ -0.600355,0.41774,0.681958,0.05631,0.04548,-0.005781,
+ -0.619748,0.407106,0.670953,0.055885,0.044839,-0.005781,
+ -0.611328,0.411243,0.676134,0.056357,0.04397,-0.004818,
+ -0.611328,0.411243,0.676134,0.056357,0.04397,-0.004818,
+ -0.583861,0.425853,0.691199,0.056856,0.044676,-0.004818,
+ -0.600355,0.41774,0.681958,0.05631,0.04548,-0.005781,
+ -0.573435,0.432324,0.695894,0.05676,0.046104,-0.005781,
+ -0.600355,0.41774,0.681958,0.05631,0.04548,-0.005781,
+ -0.583861,0.425853,0.691199,0.056856,0.044676,-0.004818,
+ -0.583861,0.425853,0.691199,0.056856,0.044676,-0.004818,
+ -0.557839,0.440321,0.703515,0.05738,0.045363,-0.004818,
+ -0.573435,0.432324,0.695894,0.05676,0.046104,-0.005781,
+ -0.547914,0.446817,0.707209,0.057232,0.046711,-0.005781,
+ -0.573435,0.432324,0.695894,0.05676,0.046104,-0.005781,
+ -0.557839,0.440321,0.703515,0.05738,0.045363,-0.004818,
+ -0.557839,0.440321,0.703515,0.05738,0.045363,-0.004818,
+ -0.528358,0.458036,0.714871,0.05793,0.046029,-0.004818,
+ -0.547914,0.446817,0.707209,0.057232,0.046711,-0.005781,
+ -0.525024,0.459644,0.716294,0.057728,0.047299,-0.005781,
+ -0.547914,0.446817,0.707209,0.057232,0.046711,-0.005781,
+ -0.528358,0.458036,0.714871,0.05793,0.046029,-0.004818,
+ -0.525024,0.459644,0.716294,0.057728,0.047299,-0.005781,
+ -0.528358,0.458036,0.714871,0.05793,0.046029,-0.004818,
+ -0.507344,0.470385,0.722039,0.058245,0.047867,-0.005781,
+ -0.502587,0.474851,0.722443,0.058505,0.046673,-0.004818,
+ -0.507344,0.470385,0.722039,0.058245,0.047867,-0.005781,
+ -0.528358,0.458036,0.714871,0.05793,0.046029,-0.004818,
+ -0.507344,0.470385,0.722039,0.058245,0.047867,-0.005781,
+ -0.502587,0.474851,0.722443,0.058505,0.046673,-0.004818,
+ -0.484849,0.48521,0.727662,0.058784,0.048416,-0.005781,
+ -0.480277,0.489774,0.727637,0.059103,0.047293,-0.004818,
+ -0.484849,0.48521,0.727662,0.058784,0.048416,-0.005781,
+ -0.502587,0.474851,0.722443,0.058505,0.046673,-0.004818,
+ -0.484849,0.48521,0.727662,0.058784,0.048416,-0.005781,
+ -0.480277,0.489774,0.727637,0.059103,0.047293,-0.004818,
+ -0.463202,0.500363,0.731492,0.059343,0.048943,-0.005781,
+ -0.458764,0.50505,0.731068,0.059724,0.047891,-0.004818,
+ -0.463202,0.500363,0.731492,0.059343,0.048943,-0.005781,
+ -0.480277,0.489774,0.727637,0.059103,0.047293,-0.004818,
+ -0.463202,0.500363,0.731492,0.059343,0.048943,-0.005781,
+ -0.458764,0.50505,0.731068,0.059724,0.047891,-0.004818,
+ -0.442255,0.515933,0.733637,0.059922,0.049449,-0.005781,
+ -0.437903,0.520767,0.732832,0.060366,0.048464,-0.004818,
+ -0.442255,0.515933,0.733637,0.059922,0.049449,-0.005781,
+ -0.458764,0.50505,0.731068,0.059724,0.047891,-0.004818,
+ -0.442255,0.515933,0.733637,0.059922,0.049449,-0.005781,
+ -0.437903,0.520767,0.732832,0.060366,0.048464,-0.004818,
+ -0.421867,0.532005,0.734165,0.06052,0.049933,-0.005781,
+ -0.417553,0.537009,0.732987,0.06103,0.049011,-0.004818,
+ -0.421867,0.532005,0.734165,0.06052,0.049933,-0.005781,
+ -0.437903,0.520767,0.732832,0.060366,0.048464,-0.004818,
+ -0.421867,0.532005,0.734165,0.06052,0.049933,-0.005781,
+ -0.417553,0.537009,0.732987,0.06103,0.049011,-0.004818,
+ -0.401898,0.548661,0.73311,0.061136,0.050393,-0.005781,
+ -0.397577,0.553859,0.731555,0.061714,0.049532,-0.004818,
+ -0.401898,0.548661,0.73311,0.061136,0.050393,-0.005781,
+ -0.417553,0.537009,0.732987,0.06103,0.049011,-0.004818,
+ -0.401898,0.548661,0.73311,0.061136,0.050393,-0.005781,
+ -0.397577,0.553859,0.731555,0.061714,0.049532,-0.004818,
+ -0.382209,0.565977,0.730469,0.061769,0.050829,-0.005781,
+ -0.377837,0.571394,0.728525,0.062416,0.050026,-0.004818,
+ -0.382209,0.565977,0.730469,0.061769,0.050829,-0.005781,
+ -0.397577,0.553859,0.731555,0.061714,0.049532,-0.004818,
+ -0.382209,0.565977,0.730469,0.061769,0.050829,-0.005781,
+ -0.377837,0.571394,0.728525,0.062416,0.050026,-0.004818,
+ -0.37698,0.573856,0.727032,0.062418,0.051241,-0.005781,
+ -0.379372,0.571846,0.727371,0.063137,0.050493,-0.004818,
+ -0.37698,0.573856,0.727032,0.062418,0.051241,-0.005781,
+ -0.377837,0.571394,0.728525,0.062416,0.050026,-0.004818,
+ -0.379372,0.571846,0.727371,0.063137,0.050493,-0.004818,
+ -0.405711,0.551851,0.728601,0.063888,0.051003,-0.004818,
+ -0.37698,0.573856,0.727032,0.062418,0.051241,-0.005781,
+ -0.403275,0.554082,0.72826,0.063095,0.051693,-0.005781,
+ -0.37698,0.573856,0.727032,0.062418,0.051241,-0.005781,
+ -0.405711,0.551851,0.728601,0.063888,0.051003,-0.004818,
+ -0.403275,0.554082,0.72826,0.063095,0.051693,-0.005781,
+ -0.405711,0.551851,0.728601,0.063888,0.051003,-0.004818,
+ -0.439698,0.520339,0.732061,0.063732,0.052198,-0.005781,
+ -0.455156,0.505988,0.732672,0.064596,0.051576,-0.004818,
+ -0.439698,0.520339,0.732061,0.063732,0.052198,-0.005781,
+ -0.405711,0.551851,0.728601,0.063888,0.051003,-0.004818,
+ -0.439698,0.520339,0.732061,0.063732,0.052198,-0.005781,
+ -0.455156,0.505988,0.732672,0.064596,0.051576,-0.004818,
+ -0.478388,0.479119,0.735928,0.064326,0.052755,-0.005781,
+ -0.492434,0.463571,0.736621,0.065254,0.052206,-0.004818,
+ -0.478388,0.479119,0.735928,0.064326,0.052755,-0.005781,
+ -0.455156,0.505988,0.732672,0.064596,0.051576,-0.004818,
+ -0.478388,0.479119,0.735928,0.064326,0.052755,-0.005781,
+ -0.492434,0.463571,0.736621,0.065254,0.052206,-0.004818,
+ -0.513034,0.434953,0.740008,0.06487,0.053359,-0.005781,
+ -0.525496,0.418365,0.740827,0.065859,0.05289,-0.004818,
+ -0.513034,0.434953,0.740008,0.06487,0.053359,-0.005781,
+ -0.492434,0.463571,0.736621,0.065254,0.052206,-0.004818,
+ -0.513034,0.434953,0.740008,0.06487,0.053359,-0.005781,
+ -0.525496,0.418365,0.740827,0.065859,0.05289,-0.004818,
+ -0.543337,0.388194,0.744372,0.065363,0.054006,-0.005781,
+ -0.554068,0.370754,0.745352,0.066406,0.053623,-0.004818,
+ -0.543337,0.388194,0.744372,0.065363,0.054006,-0.005781,
+ -0.525496,0.418365,0.740827,0.065859,0.05289,-0.004818,
+ -0.543337,0.388194,0.744372,0.065363,0.054006,-0.005781,
+ -0.554068,0.370754,0.745352,0.066406,0.053623,-0.004818,
+ -0.569031,0.339242,0.749078,0.065801,0.054691,-0.005781,
+ -0.577912,0.321162,0.750248,0.066892,0.054399,-0.004818,
+ -0.569031,0.339242,0.749078,0.065801,0.054691,-0.005781,
+ -0.554068,0.370754,0.745352,0.066406,0.053623,-0.004818,
+ -0.569031,0.339242,0.749078,0.065801,0.054691,-0.005781,
+ -0.577912,0.321162,0.750248,0.066892,0.054399,-0.004818,
+ -0.589896,0.288542,0.754166,0.06618,0.055411,-0.005781,
+ -0.596848,0.270049,0.755544,0.067313,0.055214,-0.004818,
+ -0.589896,0.288542,0.754166,0.06618,0.055411,-0.005781,
+ -0.577912,0.321162,0.750248,0.066892,0.054399,-0.004818,
+ -0.589896,0.288542,0.754166,0.06618,0.055411,-0.005781,
+ -0.596848,0.270049,0.755544,0.067313,0.055214,-0.004818,
+ -0.60577,0.236571,0.759656,0.066498,0.05616,-0.005781,
+ -0.610753,0.217903,0.761249,0.067666,0.056061,-0.004818,
+ -0.60577,0.236571,0.759656,0.066498,0.05616,-0.005781,
+ -0.596848,0.270049,0.755544,0.067313,0.055214,-0.004818,
+ -0.60577,0.236571,0.759656,0.066498,0.05616,-0.005781,
+ -0.610753,0.217903,0.761249,0.067666,0.056061,-0.004818,
+ -0.616557,0.183837,0.765546,0.066754,0.056932,-0.005781,
+ -0.619574,0.165232,0.767351,0.067949,0.056936,-0.004818,
+ -0.616557,0.183837,0.765546,0.066754,0.056932,-0.005781,
+ -0.610753,0.217903,0.761249,0.067666,0.056061,-0.004818,
+ -0.616557,0.183837,0.765546,0.066754,0.056932,-0.005781,
+ -0.619574,0.165232,0.767351,0.067949,0.056936,-0.004818,
+ -0.622238,0.13086,0.771813,0.066944,0.057723,-0.005781,
+ -0.623333,0.112547,0.773815,0.068161,0.057831,-0.004818,
+ -0.622238,0.13086,0.771813,0.066944,0.057723,-0.005781,
+ -0.619574,0.165232,0.767351,0.067949,0.056936,-0.004818,
+ -0.622238,0.13086,0.771813,0.066944,0.057723,-0.005781,
+ -0.623333,0.112547,0.773815,0.068161,0.057831,-0.004818,
+ -0.622921,0.078006,0.778386,0.067068,0.058527,-0.005781,
+ -0.622674,0.06887,0.779444,0.068298,0.058741,-0.004818,
+ -0.622921,0.078006,0.778386,0.067068,0.058527,-0.005781,
+ -0.623333,0.112547,0.773815,0.068161,0.057831,-0.004818,
+ -0.622921,0.078006,0.778386,0.067068,0.058527,-0.005781,
+ -0.622674,0.06887,0.779444,0.068298,0.058741,-0.004818,
+ -0.615482,0.005518,0.788132,0.068362,0.05966,-0.004818,
+ -0.622921,0.078006,0.778386,0.067068,0.058527,-0.005781,
+ -0.615482,0.005518,0.788132,0.068362,0.05966,-0.004818,
+ -0.608032,-0.012608,0.793813,0.067125,0.059338,-0.005781,
+ -0.615482,0.005518,0.788132,0.068362,0.05966,-0.004818,
+ -0.587334,-0.078712,0.805508,0.068281,0.061186,-0.004818,
+ -0.608032,-0.012608,0.793813,0.067125,0.059338,-0.005781,
+ -0.563271,-0.124273,0.816873,0.067016,0.060662,-0.005781,
+ -0.608032,-0.012608,0.793813,0.067125,0.059338,-0.005781,
+ -0.587334,-0.078712,0.805508,0.068281,0.061186,-0.004818,
+ -0.587334,-0.078712,0.805508,0.068281,0.061186,-0.004818,
+ -0.528554,-0.194938,0.826214,0.067873,0.062655,-0.004818,
+ -0.563271,-0.124273,0.816873,0.067016,0.060662,-0.005781,
+ -0.498136,-0.2337,0.835012,0.066618,0.06193,-0.005781,
+ -0.563271,-0.124273,0.816873,0.067016,0.060662,-0.005781,
+ -0.528554,-0.194938,0.826214,0.067873,0.062655,-0.004818,
+ -0.528554,-0.194938,0.826214,0.067873,0.062655,-0.004818,
+ -0.454671,-0.294294,0.840634,0.067158,0.063997,-0.004818,
+ -0.498136,-0.2337,0.835012,0.066618,0.06193,-0.005781,
+ -0.419714,-0.3263,0.846976,0.065951,0.063079,-0.005781,
+ -0.498136,-0.2337,0.835012,0.066618,0.06193,-0.005781,
+ -0.454671,-0.294294,0.840634,0.067158,0.063997,-0.004818,
+ -0.454671,-0.294294,0.840634,0.067158,0.063997,-0.004818,
+ -0.369159,-0.377727,0.849143,0.06617,0.065145,-0.004818,
+ -0.419714,-0.3263,0.846976,0.065951,0.063079,-0.005781,
+ -0.33096,-0.403408,0.853069,0.065047,0.064053,-0.005781,
+ -0.419714,-0.3263,0.846976,0.065951,0.063079,-0.005781,
+ -0.369159,-0.377727,0.849143,0.06617,0.065145,-0.004818,
+ -0.369159,-0.377727,0.849143,0.06617,0.065145,-0.004818,
+ -0.273921,-0.44663,0.851756,0.064959,0.066043,-0.004818,
+ -0.33096,-0.403408,0.853069,0.065047,0.064053,-0.005781,
+ -0.233173,-0.466563,0.853199,0.063951,0.064804,-0.005781,
+ -0.33096,-0.403408,0.853069,0.065047,0.064053,-0.005781,
+ -0.273921,-0.44663,0.851756,0.064959,0.066043,-0.004818,
+ -0.273921,-0.44663,0.851756,0.064959,0.066043,-0.004818,
+ -0.169323,-0.502195,0.848015,0.063583,0.066646,-0.004818,
+ -0.233173,-0.466563,0.853199,0.063951,0.064804,-0.005781
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,648,data,NULL};
+const struct gllist *companion_heart=&frame;
diff --git a/hacks/glx/companion_quad.c b/hacks/glx/companion_quad.c
new file mode 100644
index 0000000..3cfd230
--- /dev/null
+++ b/hacks/glx/companion_quad.c
@@ -0,0 +1,389 @@
+#include "gllist.h"
+static const float data[]={
+ 0.11097,0.464834,-0.878416,0.79903,1.636364,-0.247442,
+ 0.138522,0.464654,-0.87459,0.773415,1.636364,-0.251499,
+ 0.138522,0.464654,-0.87459,0.775033,1.681818,-0.227094,
+ 0.11097,0.464834,-0.878416,0.79903,1.636364,-0.247442,
+ 0.138522,0.464654,-0.87459,0.775033,1.681818,-0.227094,
+ 0.11097,0.464834,-0.878416,0.796039,1.681818,-0.223767,
+ -0.917485,0.21303,-0.335916,0.757576,1.636364,-0.208242,
+ -0.917485,0.21303,-0.335916,0.757576,1.681818,-0.179415,
+ -0.917485,0.21303,-0.335916,0.775033,1.681818,-0.227094,
+ -0.917485,0.21303,-0.335916,0.757576,1.636364,-0.208242,
+ -0.917485,0.21303,-0.335916,0.775033,1.681818,-0.227094,
+ -0.917485,0.21303,-0.335916,0.773415,1.636364,-0.251499,
+ -1,0,0,0.757576,1.636364,-0.208242,
+ -1,0,0,0.757576,1.636364,-0.121212,
+ -1,0,0,0.757576,1.549333,-0.121212,
+ -1,0,0,0.757576,1.636364,-0.208242,
+ -1,0,0,0.757576,1.549333,-0.121212,
+ -1,0,0,0.757576,1.578161,-0.075758,
+ -1,0,0,0.757576,1.636364,-0.208242,
+ -1,0,0,0.757576,1.578161,-0.075758,
+ -1,0,0,0.757576,1.636364,-0.075758,
+ -1,0,0,0.757576,1.636364,-0.208242,
+ -1,0,0,0.757576,1.636364,-0.075758,
+ -1,0,0,0.757576,1.681818,-0.121212,
+ -1,0,0,0.757576,1.636364,-0.208242,
+ -1,0,0,0.757576,1.681818,-0.121212,
+ -1,0,0,0.757576,1.681818,-0.179415,
+ -0.917485,-0.335916,0.21303,0.757576,1.578161,-0.075758,
+ -0.917485,-0.335916,0.21303,0.757576,1.549333,-0.121212,
+ -0.917485,-0.335916,0.21303,0.773415,1.506076,-0.121212,
+ -0.917485,-0.335916,0.21303,0.757576,1.578161,-0.075758,
+ -0.917485,-0.335916,0.21303,0.773415,1.506076,-0.121212,
+ -0.917485,-0.335916,0.21303,0.775033,1.530482,-0.075758,
+ 0.138522,-0.87459,0.464654,0.773415,1.506076,-0.121212,
+ 0.11097,-0.878416,0.464834,0.79903,1.510133,-0.121212,
+ 0.11097,-0.878416,0.464834,0.796039,1.533809,-0.075758,
+ 0.138522,-0.87459,0.464654,0.773415,1.506076,-0.121212,
+ 0.11097,-0.878416,0.464834,0.796039,1.533809,-0.075758,
+ 0.138522,-0.87459,0.464654,0.775033,1.530482,-0.075758,
+ 0.11097,-0.878416,0.464834,0.796039,1.533809,-0.075758,
+ 0.11097,-0.878416,0.464834,0.79903,1.510133,-0.121212,
+ 0.055595,-0.883651,0.464834,0.83883,1.513897,-0.121212,
+ 0.11097,-0.878416,0.464834,0.796039,1.533809,-0.075758,
+ 0.055595,-0.883651,0.464834,0.83883,1.513897,-0.121212,
+ 0.055595,-0.883651,0.464834,0.837333,1.537712,-0.075758,
+ 0.055595,-0.883651,0.464834,0.837333,1.537712,-0.075758,
+ 0.055595,-0.883651,0.464834,0.83883,1.513897,-0.121212,
+ 0,-0.885398,0.464834,0.878788,1.515152,-0.121212,
+ 0.055595,-0.883651,0.464834,0.837333,1.537712,-0.075758,
+ 0,-0.885398,0.464834,0.878788,1.515152,-0.121212,
+ 0,-0.885398,0.464834,0.878788,1.539015,-0.075758,
+ -0.055595,-0.883651,0.464834,0.918745,1.513897,-0.121212,
+ -0.055595,-0.883651,0.464834,0.920242,1.537712,-0.075758,
+ 0,-0.885398,0.464834,0.878788,1.539015,-0.075758,
+ -0.055595,-0.883651,0.464834,0.918745,1.513897,-0.121212,
+ 0,-0.885398,0.464834,0.878788,1.539015,-0.075758,
+ 0,-0.885398,0.464834,0.878788,1.515152,-0.121212,
+ -0.11097,-0.878416,0.464834,0.958545,1.510133,-0.121212,
+ -0.11097,-0.878416,0.464834,0.961536,1.533809,-0.075758,
+ -0.055595,-0.883651,0.464834,0.920242,1.537712,-0.075758,
+ -0.11097,-0.878416,0.464834,0.958545,1.510133,-0.121212,
+ -0.055595,-0.883651,0.464834,0.920242,1.537712,-0.075758,
+ -0.055595,-0.883651,0.464834,0.918745,1.513897,-0.121212,
+ -0.11097,-0.878416,0.464834,0.958545,1.510133,-0.121212,
+ -0.138522,-0.87459,0.464654,0.984161,1.506076,-0.121212,
+ -0.138522,-0.87459,0.464654,0.982542,1.530482,-0.075758,
+ -0.11097,-0.878416,0.464834,0.958545,1.510133,-0.121212,
+ -0.138522,-0.87459,0.464654,0.982542,1.530482,-0.075758,
+ -0.11097,-0.878416,0.464834,0.961536,1.533809,-0.075758,
+ 0.917485,-0.335916,0.21303,1,1.549333,-0.121212,
+ 0.917485,-0.335916,0.21303,1,1.578161,-0.075758,
+ 0.917485,-0.335916,0.21303,0.982542,1.530482,-0.075758,
+ 0.917485,-0.335916,0.21303,1,1.549333,-0.121212,
+ 0.917485,-0.335916,0.21303,0.982542,1.530482,-0.075758,
+ 0.917485,-0.335916,0.21303,0.984161,1.506076,-0.121212,
+ 1,0,0,1,1.636364,-0.121212,
+ 1,0,0,1,1.636364,-0.208242,
+ 1,0,0,1,1.681818,-0.179415,
+ 1,0,0,1,1.636364,-0.121212,
+ 1,0,0,1,1.681818,-0.179415,
+ 1,0,0,1,1.681818,-0.121212,
+ 1,0,0,1,1.636364,-0.121212,
+ 1,0,0,1,1.681818,-0.121212,
+ 1,0,0,1,1.636364,-0.075758,
+ 1,0,0,1,1.636364,-0.121212,
+ 1,0,0,1,1.636364,-0.075758,
+ 1,0,0,1,1.578161,-0.075758,
+ 1,0,0,1,1.636364,-0.121212,
+ 1,0,0,1,1.578161,-0.075758,
+ 1,0,0,1,1.549333,-0.121212,
+ 0.917485,0.21303,-0.335916,1,1.681818,-0.179415,
+ 0.917485,0.21303,-0.335916,1,1.636364,-0.208242,
+ 0.917485,0.21303,-0.335916,0.984161,1.636364,-0.251499,
+ 0.917485,0.21303,-0.335916,1,1.681818,-0.179415,
+ 0.917485,0.21303,-0.335916,0.984161,1.636364,-0.251499,
+ 0.917485,0.21303,-0.335916,0.982542,1.681818,-0.227094,
+ -0.138522,0.464654,-0.87459,0.984161,1.636364,-0.251499,
+ -0.11097,0.464834,-0.878416,0.958545,1.636364,-0.247442,
+ -0.11097,0.464834,-0.878416,0.961536,1.681818,-0.223767,
+ -0.138522,0.464654,-0.87459,0.984161,1.636364,-0.251499,
+ -0.11097,0.464834,-0.878416,0.961536,1.681818,-0.223767,
+ -0.138522,0.464654,-0.87459,0.982542,1.681818,-0.227094,
+ -0.11097,0.464834,-0.878416,0.961536,1.681818,-0.223767,
+ -0.11097,0.464834,-0.878416,0.958545,1.636364,-0.247442,
+ -0.055595,0.464834,-0.883651,0.918745,1.636364,-0.24368,
+ -0.11097,0.464834,-0.878416,0.961536,1.681818,-0.223767,
+ -0.055595,0.464834,-0.883651,0.918745,1.636364,-0.24368,
+ -0.055595,0.464834,-0.883651,0.920242,1.681818,-0.219863,
+ -0.055595,0.464834,-0.883651,0.920242,1.681818,-0.219863,
+ -0.055595,0.464834,-0.883651,0.918745,1.636364,-0.24368,
+ 0,0.464834,-0.885398,0.878788,1.636364,-0.242424,
+ -0.055595,0.464834,-0.883651,0.920242,1.681818,-0.219863,
+ 0,0.464834,-0.885398,0.878788,1.636364,-0.242424,
+ 0,0.464834,-0.885398,0.878788,1.681818,-0.218561,
+ 0.055595,0.464834,-0.883651,0.83883,1.636364,-0.24368,
+ 0.055595,0.464834,-0.883651,0.837333,1.681818,-0.219863,
+ 0,0.464834,-0.885398,0.878788,1.681818,-0.218561,
+ 0.055595,0.464834,-0.883651,0.83883,1.636364,-0.24368,
+ 0,0.464834,-0.885398,0.878788,1.681818,-0.218561,
+ 0,0.464834,-0.885398,0.878788,1.636364,-0.242424,
+ 0.11097,0.464834,-0.878416,0.79903,1.636364,-0.247442,
+ 0.11097,0.464834,-0.878416,0.796039,1.681818,-0.223767,
+ 0.055595,0.464834,-0.883651,0.837333,1.681818,-0.219863,
+ 0.11097,0.464834,-0.878416,0.79903,1.636364,-0.247442,
+ 0.055595,0.464834,-0.883651,0.837333,1.681818,-0.219863,
+ 0.055595,0.464834,-0.883651,0.83883,1.636364,-0.24368,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,0.878788,1.681818,-0.218561,
+ 0,1,0,0.837333,1.681818,-0.219863,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,0.837333,1.681818,-0.219863,
+ 0,1,0,0.796039,1.681818,-0.223767,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,0.796039,1.681818,-0.223767,
+ 0,1,0,0.775033,1.681818,-0.227094,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,0.775033,1.681818,-0.227094,
+ 0,1,0,0.757576,1.681818,-0.179415,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,0.757576,1.681818,-0.179415,
+ 0,1,0,0.757576,1.681818,-0.121212,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,0.757576,1.681818,-0.121212,
+ 0,1,0,1,1.681818,-0.121212,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,1,1.681818,-0.121212,
+ 0,1,0,1,1.681818,-0.179415,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,1,1.681818,-0.179415,
+ 0,1,0,0.982542,1.681818,-0.227094,
+ 0,1,0,0.920242,1.681818,-0.219863,
+ 0,1,0,0.982542,1.681818,-0.227094,
+ 0,1,0,0.961536,1.681818,-0.223767,
+ 0,0.707107,0.707107,0.757576,1.681818,-0.121212,
+ 0,0.707107,0.707107,0.757576,1.636364,-0.075758,
+ 0,0.707107,0.707107,1,1.636364,-0.075758,
+ 0,0.707107,0.707107,0.757576,1.681818,-0.121212,
+ 0,0.707107,0.707107,1,1.636364,-0.075758,
+ 0,0.707107,0.707107,1,1.681818,-0.121212,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,1,1.636364,-0.075758,
+ 0,0,1,0.757576,1.636364,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.757576,1.636364,-0.075758,
+ 0,0,1,0.757576,1.578161,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.757576,1.578161,-0.075758,
+ 0,0,1,0.775033,1.530482,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.775033,1.530482,-0.075758,
+ 0,0,1,0.796039,1.533809,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.796039,1.533809,-0.075758,
+ 0,0,1,0.837333,1.537712,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.837333,1.537712,-0.075758,
+ 0,0,1,0.878788,1.539015,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.878788,1.539015,-0.075758,
+ 0,0,1,0.920242,1.537712,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.920242,1.537712,-0.075758,
+ 0,0,1,0.961536,1.533809,-0.075758,
+ 0,0,1,1,1.578161,-0.075758,
+ 0,0,1,0.961536,1.533809,-0.075758,
+ 0,0,1,0.982542,1.530482,-0.075758,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.121212,1.125055,0,
+ 0,0,1,0.223833,1.125055,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.223833,1.125055,0,
+ 0,0,1,0.227944,1.136476,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.227944,1.136476,0,
+ 0,0,1,0.245409,1.176833,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.245409,1.176833,0,
+ 0,0,1,0.265373,1.216015,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.265373,1.216015,0,
+ 0,0,1,0.287758,1.253867,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.287758,1.253867,0,
+ 0,0,1,0.312476,1.290236,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.312476,1.290236,0,
+ 0,0,1,0.339427,1.324985,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.339427,1.324985,0,
+ 0,0,1,0.368509,1.35797,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.368509,1.35797,0,
+ 0,0,1,0.399606,1.389067,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.399606,1.389067,0,
+ 0,0,1,0.432591,1.418148,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.432591,1.418148,0,
+ 0,0,1,0.467339,1.4451,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.467339,1.4451,0,
+ 0,0,1,0.503709,1.469818,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.503709,1.469818,0,
+ 0,0,1,0.541561,1.492203,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.541561,1.492203,0,
+ 0,0,1,0.580742,1.512167,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.580742,1.512167,0,
+ 0,0,1,0.6211,1.52963,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.6211,1.52963,0,
+ 0,0,1,0.632521,1.533742,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.632521,1.533742,0,
+ 0,0,1,0.632521,1.636364,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.632521,1.636364,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.121212,1.636364,0,
+ 0,0,1,0.121212,1.125055,0,
+ 0.645427,-0.606097,0.464834,0.4149,1.314409,-0.121212,
+ 0.645427,-0.606097,0.464834,0.368509,1.35797,0,
+ 0.682211,-0.564374,0.464834,0.339427,1.324985,0,
+ 0.645427,-0.606097,0.464834,0.4149,1.314409,-0.121212,
+ 0.682211,-0.564374,0.464834,0.339427,1.324985,0,
+ 0.682211,-0.564374,0.464834,0.388461,1.284421,-0.121212,
+ 0.645427,-0.606097,0.464834,0.368509,1.35797,0,
+ 0.645427,-0.606097,0.464834,0.4149,1.314409,-0.121212,
+ 0.606097,-0.645427,0.464834,0.443167,1.342676,-0.121212,
+ 0.645427,-0.606097,0.464834,0.368509,1.35797,0,
+ 0.606097,-0.645427,0.464834,0.443167,1.342676,-0.121212,
+ 0.606097,-0.645427,0.464834,0.399606,1.389067,0,
+ 0.606097,-0.645427,0.464834,0.399606,1.389067,0,
+ 0.606097,-0.645427,0.464834,0.443167,1.342676,-0.121212,
+ 0.564374,-0.682211,0.464834,0.473155,1.369115,-0.121212,
+ 0.606097,-0.645427,0.464834,0.399606,1.389067,0,
+ 0.564374,-0.682211,0.464834,0.473155,1.369115,-0.121212,
+ 0.564374,-0.682211,0.464834,0.432591,1.418148,0,
+ 0.564374,-0.682211,0.464834,0.432591,1.418148,0,
+ 0.564374,-0.682211,0.464834,0.473155,1.369115,-0.121212,
+ 0.520424,-0.716302,0.464834,0.504742,1.393618,-0.121212,
+ 0.564374,-0.682211,0.464834,0.432591,1.418148,0,
+ 0.520424,-0.716302,0.464834,0.504742,1.393618,-0.121212,
+ 0.520424,-0.716302,0.464834,0.467339,1.4451,0,
+ 0.520424,-0.716302,0.464834,0.467339,1.4451,0,
+ 0.520424,-0.716302,0.464834,0.504742,1.393618,-0.121212,
+ 0.47442,-0.747566,0.464834,0.537806,1.416088,-0.121212,
+ 0.520424,-0.716302,0.464834,0.467339,1.4451,0,
+ 0.47442,-0.747566,0.464834,0.537806,1.416088,-0.121212,
+ 0.47442,-0.747566,0.464834,0.503709,1.469818,0,
+ 0.47442,-0.747566,0.464834,0.503709,1.469818,0,
+ 0.47442,-0.747566,0.464834,0.537806,1.416088,-0.121212,
+ 0.426544,-0.77588,0.464834,0.572218,1.436436,-0.121212,
+ 0.47442,-0.747566,0.464834,0.503709,1.469818,0,
+ 0.426544,-0.77588,0.464834,0.572218,1.436436,-0.121212,
+ 0.426544,-0.77588,0.464834,0.541561,1.492203,0,
+ 0.426544,-0.77588,0.464834,0.541561,1.492203,0,
+ 0.426544,-0.77588,0.464834,0.572218,1.436436,-0.121212,
+ 0.376984,-0.801132,0.464834,0.607836,1.454588,-0.121212,
+ 0.426544,-0.77588,0.464834,0.541561,1.492203,0,
+ 0.376984,-0.801132,0.464834,0.607836,1.454588,-0.121212,
+ 0.376984,-0.801132,0.464834,0.580742,1.512167,0,
+ 0.376984,-0.801132,0.464834,0.580742,1.512167,0,
+ 0.376984,-0.801132,0.464834,0.607836,1.454588,-0.121212,
+ 0.325937,-0.823222,0.464834,0.644527,1.470464,-0.121212,
+ 0.376984,-0.801132,0.464834,0.580742,1.512167,0,
+ 0.325937,-0.823222,0.464834,0.644527,1.470464,-0.121212,
+ 0.325937,-0.823222,0.464834,0.6211,1.52963,0,
+ 0.29995,-0.833143,0.464654,0.632521,1.533742,0,
+ 0.325937,-0.823222,0.464834,0.6211,1.52963,0,
+ 0.325937,-0.823222,0.464834,0.644527,1.470464,-0.121212,
+ 0.29995,-0.833143,0.464654,0.632521,1.533742,0,
+ 0.325937,-0.823222,0.464834,0.644527,1.470464,-0.121212,
+ 0.273603,-0.842063,0.464834,0.682139,1.484006,-0.121212,
+ 0.29995,-0.833143,0.464654,0.632521,1.533742,0,
+ 0.273603,-0.842063,0.464834,0.682139,1.484006,-0.121212,
+ 0.273603,-0.842063,0.464834,0.67563,1.504045,-0.081077,
+ 0.273603,-0.842063,0.464834,0.67563,1.504045,-0.081077,
+ 0.273603,-0.842063,0.464834,0.682139,1.484006,-0.121212,
+ 0.247044,-0.850333,0.464654,0.69697,1.488315,-0.121212,
+ 0.882948,0,0.469472,0.632521,1.636364,0,
+ 0.882948,0,0.469472,0.632521,1.533742,0,
+ 0.882948,0,0.469472,0.67563,1.504045,-0.081077,
+ 0.882948,0,0.469472,0.632521,1.636364,0,
+ 0.882948,0,0.469472,0.67563,1.504045,-0.081077,
+ 0.882948,0,0.469472,0.69697,1.488315,-0.121212,
+ 0.882948,0,0.469472,0.632521,1.636364,0,
+ 0.882948,0,0.469472,0.69697,1.488315,-0.121212,
+ 0.882948,0,0.469472,0.69697,1.636364,-0.121212,
+ 0.799251,0.424969,0.424969,0.69697,1.636364,-0.121212,
+ 0.799251,0.424969,0.424969,0.632521,1.757576,-0.121212,
+ 0.799251,0.424969,0.424969,0.632521,1.636364,0,
+ 0,0.707107,0.707107,0.632521,1.757576,-0.121212,
+ 0,0.707107,0.707107,0.121212,1.757576,-0.121212,
+ 0,0.707107,0.707107,0.121212,1.636364,0,
+ 0,0.707107,0.707107,0.632521,1.757576,-0.121212,
+ 0,0.707107,0.707107,0.121212,1.636364,0,
+ 0,0.707107,0.707107,0.632521,1.636364,0,
+ -0.57735,0.57735,0.57735,0.121212,1.757576,-0.121212,
+ -0.57735,0.57735,0.57735,0,1.636364,-0.121212,
+ -0.57735,0.57735,0.57735,0.121212,1.636364,0,
+ -0.707107,0,0.707107,0,1.636364,-0.121212,
+ -0.707107,0,0.707107,0,1.125055,-0.121212,
+ -0.707107,0,0.707107,0.121212,1.125055,0,
+ -0.707107,0,0.707107,0,1.636364,-0.121212,
+ -0.707107,0,0.707107,0.121212,1.125055,0,
+ -0.707107,0,0.707107,0.121212,1.636364,0,
+ -0.424969,-0.799251,0.424969,0,1.125055,-0.121212,
+ -0.424969,-0.799251,0.424969,0.121212,1.060606,-0.121212,
+ -0.424969,-0.799251,0.424969,0.121212,1.125055,0,
+ 0,-0.882948,0.469472,0.223833,1.125055,0,
+ 0,-0.882948,0.469472,0.121212,1.125055,0,
+ 0,-0.882948,0.469472,0.121212,1.060606,-0.121212,
+ 0,-0.882948,0.469472,0.223833,1.125055,0,
+ 0,-0.882948,0.469472,0.121212,1.060606,-0.121212,
+ 0,-0.882948,0.469472,0.269262,1.060606,-0.121212,
+ 0,-0.882948,0.469472,0.223833,1.125055,0,
+ 0,-0.882948,0.469472,0.269262,1.060606,-0.121212,
+ 0,-0.882948,0.469472,0.25353,1.081945,-0.081077,
+ 0.842063,-0.273603,0.464834,0.27357,1.075436,-0.121212,
+ 0.842063,-0.273603,0.464834,0.25353,1.081945,-0.081077,
+ 0.850333,-0.247044,0.464654,0.269262,1.060606,-0.121212,
+ 0.823222,-0.325937,0.464834,0.227944,1.136476,0,
+ 0.833143,-0.29995,0.464654,0.223833,1.125055,0,
+ 0.842063,-0.273603,0.464834,0.25353,1.081945,-0.081077,
+ 0.823222,-0.325937,0.464834,0.227944,1.136476,0,
+ 0.842063,-0.273603,0.464834,0.25353,1.081945,-0.081077,
+ 0.842063,-0.273603,0.464834,0.27357,1.075436,-0.121212,
+ 0.823222,-0.325937,0.464834,0.227944,1.136476,0,
+ 0.842063,-0.273603,0.464834,0.27357,1.075436,-0.121212,
+ 0.823222,-0.325937,0.464834,0.287112,1.113048,-0.121212,
+ 0.801132,-0.376984,0.464834,0.302989,1.149739,-0.121212,
+ 0.801132,-0.376984,0.464834,0.245409,1.176833,0,
+ 0.823222,-0.325937,0.464834,0.227944,1.136476,0,
+ 0.801132,-0.376984,0.464834,0.302989,1.149739,-0.121212,
+ 0.823222,-0.325937,0.464834,0.227944,1.136476,0,
+ 0.823222,-0.325937,0.464834,0.287112,1.113048,-0.121212,
+ 0.77588,-0.426544,0.464834,0.321139,1.185358,-0.121212,
+ 0.77588,-0.426544,0.464834,0.265373,1.216015,0,
+ 0.801132,-0.376984,0.464834,0.245409,1.176833,0,
+ 0.77588,-0.426544,0.464834,0.321139,1.185358,-0.121212,
+ 0.801132,-0.376984,0.464834,0.245409,1.176833,0,
+ 0.801132,-0.376984,0.464834,0.302989,1.149739,-0.121212,
+ 0.747566,-0.47442,0.464834,0.341488,1.21977,-0.121212,
+ 0.747566,-0.47442,0.464834,0.287758,1.253867,0,
+ 0.77588,-0.426544,0.464834,0.265373,1.216015,0,
+ 0.747566,-0.47442,0.464834,0.341488,1.21977,-0.121212,
+ 0.77588,-0.426544,0.464834,0.265373,1.216015,0,
+ 0.77588,-0.426544,0.464834,0.321139,1.185358,-0.121212,
+ 0.716302,-0.520424,0.464834,0.363958,1.252833,-0.121212,
+ 0.716302,-0.520424,0.464834,0.312476,1.290236,0,
+ 0.747566,-0.47442,0.464834,0.287758,1.253867,0,
+ 0.716302,-0.520424,0.464834,0.363958,1.252833,-0.121212,
+ 0.747566,-0.47442,0.464834,0.287758,1.253867,0,
+ 0.747566,-0.47442,0.464834,0.341488,1.21977,-0.121212,
+ 0.682211,-0.564374,0.464834,0.388461,1.284421,-0.121212,
+ 0.682211,-0.564374,0.464834,0.339427,1.324985,0,
+ 0.716302,-0.520424,0.464834,0.312476,1.290236,0,
+ 0.682211,-0.564374,0.464834,0.388461,1.284421,-0.121212,
+ 0.716302,-0.520424,0.464834,0.312476,1.290236,0,
+ 0.716302,-0.520424,0.464834,0.363958,1.252833,-0.121212
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,384,data,NULL};
+const struct gllist *companion_quad=&frame;
diff --git a/hacks/glx/companioncube.man b/hacks/glx/companioncube.man
new file mode 100644
index 0000000..e15b15e
--- /dev/null
+++ b/hacks/glx/companioncube.man
@@ -0,0 +1,85 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+companioncube - a vital aparatus.
+.SH SYNOPSIS
+.B companioncube
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIratio\fP]
+[\-spin]
+[\-wander]
+[\-count \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The symptoms most commonly produced by Enrichment Center testing are
+superstition, perceiving inanimate objects as alive, and hallucinations.
+The Enrichment Center reminds you that the weighted companion cube will
+never threaten to stab you and, in fact, cannot speak. In the event that
+the Weighted Companion Cube does speak, the Enrichment Center urges you to
+disregard its advice.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+How fast the animation should run.
+Less than 1 for slower, greater than 1 for faster.
+.TP 8
+.B \-count \fInumber\fP
+How many cubes. Default 3.
+.TP 8
+.B \-spin
+.B \-no\-spin
+Instead of bouncing, float and spin.
+.TP 8
+.B \-wander
+.B \-no\-wander
+Instead of bouncing, float and drift.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR tronbit (1),
+.BR lament (1),
+.BR dangerball (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2011 by Jamie Zawinski. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Jamie Zawinski, with apologies to the fine folks at Valve Software
+and Aperture Science.
diff --git a/hacks/glx/cow_face.c b/hacks/glx/cow_face.c
new file mode 100644
index 0000000..e57d2bb
--- /dev/null
+++ b/hacks/glx/cow_face.c
@@ -0,0 +1,341 @@
+#include "gllist.h"
+static const float data[]={
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.133638,0.26732,-0.954296,4.925394,1.955229,-0.618837,
+ 0.555353,0.50765,-0.658692,4.953739,1.95258,-0.592256,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.555353,0.50765,-0.658692,4.953739,1.95258,-0.592256,
+ 0.823157,0.134624,-0.551625,4.971872,1.924079,-0.586026,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.823157,0.134624,-0.551625,4.971872,1.924079,-0.586026,
+ 0.774925,-0.116115,-0.621296,4.953403,1.907939,-0.605609,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.774925,-0.116115,-0.621296,4.953403,1.907939,-0.605609,
+ 0.546619,0.025491,-0.836994,4.925499,1.917814,-0.613413,
+ 0.872792,-0.115436,-0.474246,4.973133,1.992779,-0.533466,
+ 0.412833,-0.156453,-0.897269,5.001903,1.914398,-0.486724,
+ 0.823157,0.134624,-0.551625,4.971872,1.924079,-0.586026,
+ 0.872792,-0.115436,-0.474246,4.973133,1.992779,-0.533466,
+ 0.823157,0.134624,-0.551625,4.971872,1.924079,-0.586026,
+ 0.555353,0.50765,-0.658692,4.953739,1.95258,-0.592256,
+ 0.823157,0.134624,-0.551625,4.971872,1.924079,-0.586026,
+ 0.412833,-0.156453,-0.897269,5.001903,1.914398,-0.486724,
+ 0.108828,-0.182644,-0.977137,4.982364,1.8733,-0.53619,
+ 0.823157,0.134624,-0.551625,4.971872,1.924079,-0.586026,
+ 0.108828,-0.182644,-0.977137,4.982364,1.8733,-0.53619,
+ 0.774925,-0.116115,-0.621296,4.953403,1.907939,-0.605609,
+ 0.774925,-0.116115,-0.621296,4.953403,1.907939,-0.605609,
+ 0.108828,-0.182644,-0.977137,4.982364,1.8733,-0.53619,
+ 0.746476,-0.187741,-0.638379,4.926194,1.859813,-0.582137,
+ 0.546619,0.025491,-0.836994,4.925499,1.917814,-0.613413,
+ 0.774925,-0.116115,-0.621296,4.953403,1.907939,-0.605609,
+ 0.746476,-0.187741,-0.638379,4.926194,1.859813,-0.582137,
+ 0.546619,0.025491,-0.836994,4.925499,1.917814,-0.613413,
+ 0.746476,-0.187741,-0.638379,4.926194,1.859813,-0.582137,
+ 0.897742,-0.15037,-0.414063,4.852578,1.889721,-0.605031,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.546619,0.025491,-0.836994,4.925499,1.917814,-0.613413,
+ 0.897742,-0.15037,-0.414063,4.852578,1.889721,-0.605031,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.897742,-0.15037,-0.414063,4.852578,1.889721,-0.605031,
+ 0.544735,0.449335,-0.708069,4.824747,1.946835,-0.626358,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.544735,0.449335,-0.708069,4.824747,1.946835,-0.626358,
+ 0.721999,0.398917,-0.565316,4.861611,2.001639,-0.621913,
+ 0.711192,0.127662,-0.69131,4.935561,2.016016,-0.5857,
+ 0.872792,-0.115436,-0.474246,4.973133,1.992779,-0.533466,
+ 0.555353,0.50765,-0.658692,4.953739,1.95258,-0.592256,
+ 0.711192,0.127662,-0.69131,4.935561,2.016016,-0.5857,
+ 0.555353,0.50765,-0.658692,4.953739,1.95258,-0.592256,
+ 0.133638,0.26732,-0.954296,4.925394,1.955229,-0.618837,
+ 0.909103,0.416568,-0.001454,5.908782,1.066916,0.001121,
+ 0.535268,0.844682,0.000171,5.871947,1.021428,0.001102,
+ -0.091049,-0.145989,-0.985087,5.897758,1.009309,-0.080583,
+ 0.909103,0.416568,-0.001454,5.908782,1.066916,0.001121,
+ -0.091049,-0.145989,-0.985087,5.897758,1.009309,-0.080583,
+ 0.054456,-0.320459,-0.945696,5.934596,1.054796,-0.077039,
+ 0.054456,-0.320459,-0.945696,5.934596,1.054796,-0.077039,
+ -0.091049,-0.145989,-0.985087,5.897758,1.009309,-0.080583,
+ -0.126433,-0.433465,-0.892257,5.87863,0.986485,-0.128292,
+ 0.054456,-0.320459,-0.945696,5.934596,1.054796,-0.077039,
+ -0.126433,-0.433465,-0.892257,5.87863,0.986485,-0.128292,
+ 0.169576,-0.140705,-0.975421,5.923808,1.025283,-0.153084,
+ 0.169576,-0.140705,-0.975421,5.923808,1.025283,-0.153084,
+ -0.126433,-0.433465,-0.892257,5.87863,0.986485,-0.128292,
+ 0.256335,-0.2349,-0.937611,5.757506,0.9579,-0.210732,
+ 0.169576,-0.140705,-0.975421,5.923808,1.025283,-0.153084,
+ 0.256335,-0.2349,-0.937611,5.757506,0.9579,-0.210732,
+ 0.120494,-0.516376,-0.847843,5.85775,0.997026,-0.236768,
+ 0.396941,-0.593504,-0.700137,5.755282,1.004149,-0.307505,
+ 0.120494,-0.516376,-0.847843,5.85775,0.997026,-0.236768,
+ 0.256335,-0.2349,-0.937611,5.757506,0.9579,-0.210732,
+ 0.396941,-0.593504,-0.700137,5.755282,1.004149,-0.307505,
+ 0.256335,-0.2349,-0.937611,5.757506,0.9579,-0.210732,
+ 0.204472,-0.587725,-0.782797,5.674999,0.950754,-0.22796,
+ 0.485455,-0.874253,0.003847,5.895899,1.18273,-0.164705,
+ 0.223936,-0.919046,-0.324355,5.959462,1.157227,-0.187097,
+ 0.051115,-0.906355,-0.419414,5.912147,1.117911,-0.254197,
+ 0.035706,-0.99787,-0.054588,5.849792,1.19348,-0.181047,
+ 0.485455,-0.874253,0.003847,5.895899,1.18273,-0.164705,
+ 0.051115,-0.906355,-0.419414,5.912147,1.117911,-0.254197,
+ 0.035706,-0.99787,-0.054588,5.849792,1.19348,-0.181047,
+ 0.051115,-0.906355,-0.419414,5.912147,1.117911,-0.254197,
+ 0.161367,-0.802085,-0.574996,5.837875,1.141493,-0.305184,
+ -0.034221,-0.995012,-0.093703,5.803425,1.260787,-0.210002,
+ 0.064626,-0.99783,0.012619,5.840665,1.221942,-0.187128,
+ 0.218068,-0.756332,-0.616772,5.77341,1.225861,-0.323025,
+ -0.034221,-0.995012,-0.093703,5.803425,1.260787,-0.210002,
+ 0.218068,-0.756332,-0.616772,5.77341,1.225861,-0.323025,
+ 0.725751,-0.657941,-0.200998,5.764774,1.279824,-0.308562,
+ -0.034221,-0.995012,-0.093703,5.803425,1.260787,-0.210002,
+ 0.725751,-0.657941,-0.200998,5.764774,1.279824,-0.308562,
+ 0.188634,-0.17518,-0.966297,5.783731,1.341471,-0.28459,
+ -0.034221,-0.995012,-0.093703,5.803425,1.260787,-0.210002,
+ 0.188634,-0.17518,-0.966297,5.783731,1.341471,-0.28459,
+ 0.244568,-0.04472,-0.9686,5.847989,1.311569,-0.261476,
+ -0.034221,-0.995012,-0.093703,5.803425,1.260787,-0.210002,
+ 0.244568,-0.04472,-0.9686,5.847989,1.311569,-0.261476,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ -0.034221,-0.995012,-0.093703,5.803425,1.260787,-0.210002,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ 0.064626,-0.99783,0.012619,5.840665,1.221942,-0.187128,
+ 0.064626,-0.99783,0.012619,5.840665,1.221942,-0.187128,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ 0.035706,-0.99787,-0.054588,5.849792,1.19348,-0.181047,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.485455,-0.874253,0.003847,5.895899,1.18273,-0.164705,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ 0.485455,-0.874253,0.003847,5.895899,1.18273,-0.164705,
+ 0.035706,-0.99787,-0.054588,5.849792,1.19348,-0.181047,
+ 0.173726,-0.983856,0.042973,5.672385,1.007694,-0.341778,
+ 0.396941,-0.593504,-0.700137,5.755282,1.004149,-0.307505,
+ 0.204472,-0.587725,-0.782797,5.674999,0.950754,-0.22796,
+ 0.173726,-0.983856,0.042973,5.672385,1.007694,-0.341778,
+ 0.204472,-0.587725,-0.782797,5.674999,0.950754,-0.22796,
+ -0.007021,-0.990239,-0.139206,5.573803,0.952578,-0.243886,
+ 0.148862,-0.934725,-0.322692,5.580727,0.99933,-0.349867,
+ 0.173726,-0.983856,0.042973,5.672385,1.007694,-0.341778,
+ -0.007021,-0.990239,-0.139206,5.573803,0.952578,-0.243886,
+ 0.148862,-0.934725,-0.322692,5.580727,0.99933,-0.349867,
+ -0.007021,-0.990239,-0.139206,5.573803,0.952578,-0.243886,
+ 0.241652,-0.897637,-0.368581,5.535184,0.98018,-0.341257,
+ -0.007021,-0.990239,-0.139206,5.573803,0.952578,-0.243886,
+ 0.204472,-0.587725,-0.782797,5.674999,0.950754,-0.22796,
+ -0.045194,-0.595739,-0.801906,5.638369,0.904402,-0.222548,
+ -0.007021,-0.990239,-0.139206,5.573803,0.952578,-0.243886,
+ -0.045194,-0.595739,-0.801906,5.638369,0.904402,-0.222548,
+ -0.016623,-0.697515,-0.716378,5.546347,0.916044,-0.246782,
+ 0.204472,-0.587725,-0.782797,5.674999,0.950754,-0.22796,
+ 0.256335,-0.2349,-0.937611,5.757506,0.9579,-0.210732,
+ -0.105003,-0.636187,-0.764356,5.748613,0.92049,-0.205099,
+ 0.204472,-0.587725,-0.782797,5.674999,0.950754,-0.22796,
+ -0.105003,-0.636187,-0.764356,5.748613,0.92049,-0.205099,
+ -0.045194,-0.595739,-0.801906,5.638369,0.904402,-0.222548,
+ -0.126433,-0.433465,-0.892257,5.87863,0.986485,-0.128292,
+ -0.106359,-0.394397,-0.912764,5.851404,0.929008,-0.105362,
+ -0.105003,-0.636187,-0.764356,5.748613,0.92049,-0.205099,
+ -0.126433,-0.433465,-0.892257,5.87863,0.986485,-0.128292,
+ -0.105003,-0.636187,-0.764356,5.748613,0.92049,-0.205099,
+ 0.256335,-0.2349,-0.937611,5.757506,0.9579,-0.210732,
+ 0.535268,0.844682,0.000171,5.871947,1.021428,0.001102,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ -0.091049,-0.145989,-0.985087,5.897758,1.009309,-0.080583,
+ -0.091049,-0.145989,-0.985087,5.897758,1.009309,-0.080583,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ -0.106359,-0.394397,-0.912764,5.851404,0.929008,-0.105362,
+ -0.091049,-0.145989,-0.985087,5.897758,1.009309,-0.080583,
+ -0.106359,-0.394397,-0.912764,5.851404,0.929008,-0.105362,
+ -0.126433,-0.433465,-0.892257,5.87863,0.986485,-0.128292,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.223936,-0.919046,-0.324355,5.959462,1.157227,-0.187097,
+ 0.485455,-0.874253,0.003847,5.895899,1.18273,-0.164705,
+ 0.161367,-0.802085,-0.574996,5.837875,1.141493,-0.305184,
+ 0.218068,-0.756332,-0.616772,5.77341,1.225861,-0.323025,
+ 0.064626,-0.99783,0.012619,5.840665,1.221942,-0.187128,
+ 0.161367,-0.802085,-0.574996,5.837875,1.141493,-0.305184,
+ 0.064626,-0.99783,0.012619,5.840665,1.221942,-0.187128,
+ 0.035706,-0.99787,-0.054588,5.849792,1.19348,-0.181047,
+ 0.241652,-0.897637,-0.368581,5.535184,0.98018,-0.341257,
+ -0.007021,-0.990239,-0.139206,5.573803,0.952578,-0.243886,
+ -0.016623,-0.697515,-0.716378,5.546347,0.916044,-0.246782,
+ 0.241652,-0.897637,-0.368581,5.535184,0.98018,-0.341257,
+ -0.016623,-0.697515,-0.716378,5.546347,0.916044,-0.246782,
+ 0.241049,-0.626018,-0.741618,5.480649,0.941387,-0.316248,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.721999,0.398917,-0.565316,4.861611,2.001639,-0.621913,
+ 0.711192,0.127662,-0.69131,4.935561,2.016016,-0.5857,
+ 0.193291,-0.074799,-0.978286,4.897808,1.946794,-0.628057,
+ 0.711192,0.127662,-0.69131,4.935561,2.016016,-0.5857,
+ 0.133638,0.26732,-0.954296,4.925394,1.955229,-0.618837,
+ 0.347878,0.028988,0.937092,4.925499,1.917814,0.613413,
+ 0.458202,0.052175,0.887316,4.953403,1.907939,0.605609,
+ 0.444094,0.036127,0.895251,4.971872,1.924079,0.586026,
+ 0.347878,0.028988,0.937092,4.925499,1.917814,0.613413,
+ 0.444094,0.036127,0.895251,4.971872,1.924079,0.586026,
+ 0.328548,0.219459,0.918637,4.953739,1.95258,0.592256,
+ 0.347878,0.028988,0.937092,4.925499,1.917814,0.613413,
+ 0.328548,0.219459,0.918637,4.953739,1.95258,0.592256,
+ 0.719268,0.159442,0.676189,4.925394,1.955229,0.618837,
+ 0.347878,0.028988,0.937092,4.925499,1.917814,0.613413,
+ 0.719268,0.159442,0.676189,4.925394,1.955229,0.618837,
+ 0.561013,0.750789,0.348684,4.897808,1.946794,0.628057,
+ 0.328548,0.219459,0.918637,4.953739,1.95258,0.592256,
+ 0.444094,0.036127,0.895251,4.971872,1.924079,0.586026,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.328548,0.219459,0.918637,4.953739,1.95258,0.592256,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.282492,0.026081,0.958915,4.973133,1.992779,0.533466,
+ 0.458202,0.052175,0.887316,4.953403,1.907939,0.605609,
+ 0.362705,0.428702,0.827442,4.982364,1.8733,0.53619,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.458202,0.052175,0.887316,4.953403,1.907939,0.605609,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.444094,0.036127,0.895251,4.971872,1.924079,0.586026,
+ 0.332757,0.286207,0.898531,4.926194,1.859813,0.582137,
+ 0.362705,0.428702,0.827442,4.982364,1.8733,0.53619,
+ 0.458202,0.052175,0.887316,4.953403,1.907939,0.605609,
+ 0.302716,0.058971,0.951255,4.852578,1.889721,0.605031,
+ 0.332757,0.286207,0.898531,4.926194,1.859813,0.582137,
+ 0.458202,0.052175,0.887316,4.953403,1.907939,0.605609,
+ 0.302716,0.058971,0.951255,4.852578,1.889721,0.605031,
+ 0.458202,0.052175,0.887316,4.953403,1.907939,0.605609,
+ 0.347878,0.028988,0.937092,4.925499,1.917814,0.613413,
+ 0.347794,0.132396,0.928176,4.824747,1.946835,0.626358,
+ 0.302716,0.058971,0.951255,4.852578,1.889721,0.605031,
+ 0.347878,0.028988,0.937092,4.925499,1.917814,0.613413,
+ 0.347794,0.132396,0.928176,4.824747,1.946835,0.626358,
+ 0.347878,0.028988,0.937092,4.925499,1.917814,0.613413,
+ 0.561013,0.750789,0.348684,4.897808,1.946794,0.628057,
+ 0.36359,0.089346,0.927264,4.861611,2.001639,0.621913,
+ 0.347794,0.132396,0.928176,4.824747,1.946835,0.626358,
+ 0.561013,0.750789,0.348684,4.897808,1.946794,0.628057,
+ 0.719268,0.159442,0.676189,4.925394,1.955229,0.618837,
+ 0.328548,0.219459,0.918637,4.953739,1.95258,0.592256,
+ 0.282492,0.026081,0.958915,4.973133,1.992779,0.533466,
+ 0.719268,0.159442,0.676189,4.925394,1.955229,0.618837,
+ 0.282492,0.026081,0.958915,4.973133,1.992779,0.533466,
+ 0.361081,-0.056526,0.93082,4.935561,2.016016,0.5857,
+ 0.800967,0.453079,-0.391371,5.934596,1.054796,0.077039,
+ 0.054059,0.926072,-0.373455,5.897758,1.009309,0.080583,
+ 0.535268,0.844682,0.000171,5.871947,1.021428,0.001102,
+ 0.800967,0.453079,-0.391371,5.934596,1.054796,0.077039,
+ 0.535268,0.844682,0.000171,5.871947,1.021428,0.001102,
+ 0.909103,0.416568,-0.001454,5.908782,1.066916,0.001121,
+ 0.693689,0.317887,-0.646331,5.923808,1.025283,0.153084,
+ 0.329366,0.742755,-0.582952,5.87863,0.986485,0.128292,
+ 0.054059,0.926072,-0.373455,5.897758,1.009309,0.080583,
+ 0.693689,0.317887,-0.646331,5.923808,1.025283,0.153084,
+ 0.054059,0.926072,-0.373455,5.897758,1.009309,0.080583,
+ 0.800967,0.453079,-0.391371,5.934596,1.054796,0.077039,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.971427,0.045661,-0.232906,5.757506,0.9579,0.210732,
+ 0.329366,0.742755,-0.582952,5.87863,0.986485,0.128292,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.329366,0.742755,-0.582952,5.87863,0.986485,0.128292,
+ 0.693689,0.317887,-0.646331,5.923808,1.025283,0.153084,
+ 0.850248,-0.122854,-0.511845,5.674999,0.950754,0.22796,
+ 0.971427,0.045661,-0.232906,5.757506,0.9579,0.210732,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.850248,-0.122854,-0.511845,5.674999,0.950754,0.22796,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.104327,0.725166,-0.680625,5.755282,1.004149,0.307505,
+ 0.811896,0.498733,0.303464,5.912147,1.117911,0.254197,
+ 0.969409,0.243854,0.027951,5.959462,1.157227,0.187097,
+ 0.169215,-0.167065,-0.971317,5.895899,1.18273,0.164705,
+ 0.603382,-0.138832,-0.785275,5.837875,1.141493,0.305184,
+ 0.811896,0.498733,0.303464,5.912147,1.117911,0.254197,
+ 0.169215,-0.167065,-0.971317,5.895899,1.18273,0.164705,
+ 0.603382,-0.138832,-0.785275,5.837875,1.141493,0.305184,
+ 0.169215,-0.167065,-0.971317,5.895899,1.18273,0.164705,
+ 0.054838,0.68532,-0.726174,5.849792,1.19348,0.181047,
+ 0.104604,0.236958,-0.965872,5.764774,1.279824,0.308562,
+ 0.335985,-0.093512,-0.937214,5.77341,1.225861,0.323025,
+ -0.071389,0.260053,-0.962952,5.840665,1.221942,0.187128,
+ 0.104604,0.236958,-0.965872,5.764774,1.279824,0.308562,
+ -0.071389,0.260053,-0.962952,5.840665,1.221942,0.187128,
+ -0.026478,0.945923,-0.323309,5.803425,1.260787,0.210002,
+ -0.0511,0.977083,-0.206633,5.783731,1.341471,0.28459,
+ 0.104604,0.236958,-0.965872,5.764774,1.279824,0.308562,
+ -0.026478,0.945923,-0.323309,5.803425,1.260787,0.210002,
+ 0.481644,0.842268,-0.242082,5.847989,1.311569,0.261476,
+ -0.0511,0.977083,-0.206633,5.783731,1.341471,0.28459,
+ -0.026478,0.945923,-0.323309,5.803425,1.260787,0.210002,
+ -0.071389,0.260053,-0.962952,5.840665,1.221942,0.187128,
+ 0.794567,0.588129,-0.15089,5.931474,1.233483,0.215613,
+ 0.481644,0.842268,-0.242082,5.847989,1.311569,0.261476,
+ -0.071389,0.260053,-0.962952,5.840665,1.221942,0.187128,
+ 0.481644,0.842268,-0.242082,5.847989,1.311569,0.261476,
+ -0.026478,0.945923,-0.323309,5.803425,1.260787,0.210002,
+ 0.054838,0.68532,-0.726174,5.849792,1.19348,0.181047,
+ 0.794567,0.588129,-0.15089,5.931474,1.233483,0.215613,
+ -0.071389,0.260053,-0.962952,5.840665,1.221942,0.187128,
+ 0.054838,0.68532,-0.726174,5.849792,1.19348,0.181047,
+ 0.169215,-0.167065,-0.971317,5.895899,1.18273,0.164705,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.054838,0.68532,-0.726174,5.849792,1.19348,0.181047,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.794567,0.588129,-0.15089,5.931474,1.233483,0.215613,
+ -0.03479,0.696668,-0.716549,5.573803,0.952578,0.243886,
+ 0.850248,-0.122854,-0.511845,5.674999,0.950754,0.22796,
+ 0.104327,0.725166,-0.680625,5.755282,1.004149,0.307505,
+ -0.03479,0.696668,-0.716549,5.573803,0.952578,0.243886,
+ 0.104327,0.725166,-0.680625,5.755282,1.004149,0.307505,
+ -0.011269,-0.268801,-0.96313,5.672385,1.007694,0.341778,
+ -0.03479,0.696668,-0.716549,5.573803,0.952578,0.243886,
+ -0.011269,-0.268801,-0.96313,5.672385,1.007694,0.341778,
+ -0.01139,0.953897,-0.299918,5.580727,0.99933,0.349867,
+ -0.151742,0.274295,-0.949598,5.535184,0.98018,0.341257,
+ -0.03479,0.696668,-0.716549,5.573803,0.952578,0.243886,
+ -0.01139,0.953897,-0.299918,5.580727,0.99933,0.349867,
+ 0.176955,-0.903058,0.391373,5.546347,0.916044,0.246782,
+ 0.571342,-0.680689,-0.45851,5.638369,0.904402,0.222548,
+ 0.850248,-0.122854,-0.511845,5.674999,0.950754,0.22796,
+ 0.176955,-0.903058,0.391373,5.546347,0.916044,0.246782,
+ 0.850248,-0.122854,-0.511845,5.674999,0.950754,0.22796,
+ -0.03479,0.696668,-0.716549,5.573803,0.952578,0.243886,
+ 0.571342,-0.680689,-0.45851,5.638369,0.904402,0.222548,
+ 0.388502,-0.6643,-0.63857,5.748613,0.92049,0.205099,
+ 0.971427,0.045661,-0.232906,5.757506,0.9579,0.210732,
+ 0.571342,-0.680689,-0.45851,5.638369,0.904402,0.222548,
+ 0.971427,0.045661,-0.232906,5.757506,0.9579,0.210732,
+ 0.850248,-0.122854,-0.511845,5.674999,0.950754,0.22796,
+ 0.971427,0.045661,-0.232906,5.757506,0.9579,0.210732,
+ 0.388502,-0.6643,-0.63857,5.748613,0.92049,0.205099,
+ 0.20994,-0.930128,0.301309,5.851404,0.929008,0.105362,
+ 0.971427,0.045661,-0.232906,5.757506,0.9579,0.210732,
+ 0.20994,-0.930128,0.301309,5.851404,0.929008,0.105362,
+ 0.329366,0.742755,-0.582952,5.87863,0.986485,0.128292,
+ 0.054059,0.926072,-0.373455,5.897758,1.009309,0.080583,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ 0.535268,0.844682,0.000171,5.871947,1.021428,0.001102,
+ 0.329366,0.742755,-0.582952,5.87863,0.986485,0.128292,
+ 0.20994,-0.930128,0.301309,5.851404,0.929008,0.105362,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ 0.329366,0.742755,-0.582952,5.87863,0.986485,0.128292,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ 0.054059,0.926072,-0.373455,5.897758,1.009309,0.080583,
+ 0.169215,-0.167065,-0.971317,5.895899,1.18273,0.164705,
+ 0.969409,0.243854,0.027951,5.959462,1.157227,0.187097,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.054838,0.68532,-0.726174,5.849792,1.19348,0.181047,
+ -0.071389,0.260053,-0.962952,5.840665,1.221942,0.187128,
+ 0.335985,-0.093512,-0.937214,5.77341,1.225861,0.323025,
+ 0.054838,0.68532,-0.726174,5.849792,1.19348,0.181047,
+ 0.335985,-0.093512,-0.937214,5.77341,1.225861,0.323025,
+ 0.603382,-0.138832,-0.785275,5.837875,1.141493,0.305184,
+ 0.083641,-0.81989,0.566378,5.480649,0.941387,0.316248,
+ 0.176955,-0.903058,0.391373,5.546347,0.916044,0.246782,
+ -0.03479,0.696668,-0.716549,5.573803,0.952578,0.243886,
+ 0.083641,-0.81989,0.566378,5.480649,0.941387,0.316248,
+ -0.03479,0.696668,-0.716549,5.573803,0.952578,0.243886,
+ -0.151742,0.274295,-0.949598,5.535184,0.98018,0.341257,
+ 0.719268,0.159442,0.676189,4.925394,1.955229,0.618837,
+ 0.361081,-0.056526,0.93082,4.935561,2.016016,0.5857,
+ 0.36359,0.089346,0.927264,4.861611,2.001639,0.621913,
+ 0.719268,0.159442,0.676189,4.925394,1.955229,0.618837,
+ 0.36359,0.089346,0.927264,4.861611,2.001639,0.621913,
+ 0.561013,0.750789,0.348684,4.897808,1.946794,0.628057
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,336,data,NULL};
+const struct gllist *cow_face=&frame;
diff --git a/hacks/glx/cow_hide.c b/hacks/glx/cow_hide.c
new file mode 100644
index 0000000..3728eef
--- /dev/null
+++ b/hacks/glx/cow_hide.c
@@ -0,0 +1,13055 @@
+#include "gllist.h"
+static const float data[]={
+ -0.012663,0.029084,-0.999497,2.229345,-0.992723,-0.862826,
+ -0.096144,-0.182414,-0.97851,2.292449,-0.871852,-0.8824,
+ 0.795625,-0.129968,-0.591684,2.410367,-0.777999,-0.841105,
+ -0.012663,0.029084,-0.999497,2.229345,-0.992723,-0.862826,
+ 0.795625,-0.129968,-0.591684,2.410367,-0.777999,-0.841105,
+ -0.200187,-0.124247,-0.971848,2.407309,-0.97498,-0.805091,
+ -0.200187,-0.124247,-0.971848,2.407309,-0.97498,-0.805091,
+ 0.795625,-0.129968,-0.591684,2.410367,-0.777999,-0.841105,
+ 0.908163,-0.140074,-0.394486,2.5392,-0.727778,-0.750475,
+ -0.200187,-0.124247,-0.971848,2.407309,-0.97498,-0.805091,
+ 0.908163,-0.140074,-0.394486,2.5392,-0.727778,-0.750475,
+ 0.023112,-0.187685,-0.981957,2.520417,-0.954785,-0.739445,
+ 0.023112,-0.187685,-0.981957,2.520417,-0.954785,-0.739445,
+ 0.908163,-0.140074,-0.394486,2.5392,-0.727778,-0.750475,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.709718,-0.453838,-0.538824,2.669281,-0.930664,-0.557166,
+ 0.4379,-0.250054,-0.863549,2.514167,-1.077721,-0.706614,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.4379,-0.250054,-0.863549,2.514167,-1.077721,-0.706614,
+ 0.023112,-0.187685,-0.981957,2.520417,-0.954785,-0.739445,
+ 0.023112,-0.187685,-0.981957,2.520417,-0.954785,-0.739445,
+ 0.4379,-0.250054,-0.863549,2.514167,-1.077721,-0.706614,
+ 0.6483,-0.171023,-0.741928,2.386465,-1.116066,-0.761367,
+ 0.023112,-0.187685,-0.981957,2.520417,-0.954785,-0.739445,
+ 0.6483,-0.171023,-0.741928,2.386465,-1.116066,-0.761367,
+ -0.200187,-0.124247,-0.971848,2.407309,-0.97498,-0.805091,
+ -0.200187,-0.124247,-0.971848,2.407309,-0.97498,-0.805091,
+ 0.6483,-0.171023,-0.741928,2.386465,-1.116066,-0.761367,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ -0.200187,-0.124247,-0.971848,2.407309,-0.97498,-0.805091,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ -0.012663,0.029084,-0.999497,2.229345,-0.992723,-0.862826,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ 0.6483,-0.171023,-0.741928,2.386465,-1.116066,-0.761367,
+ 0.71475,-0.118625,-0.689246,2.354287,-1.193746,-0.735189,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ 0.71475,-0.118625,-0.689246,2.354287,-1.193746,-0.735189,
+ 0.608407,-0.244593,-0.754993,2.158051,-1.209613,-0.783941,
+ 0.608407,-0.244593,-0.754993,2.158051,-1.209613,-0.783941,
+ 0.71475,-0.118625,-0.689246,2.354287,-1.193746,-0.735189,
+ 0.370396,-0.365961,-0.853744,2.318787,-1.29409,-0.673863,
+ 0.608407,-0.244593,-0.754993,2.158051,-1.209613,-0.783941,
+ 0.370396,-0.365961,-0.853744,2.318787,-1.29409,-0.673863,
+ 0.727678,-0.414895,-0.546211,2.126237,-1.330172,-0.721011,
+ 0.727678,-0.414895,-0.546211,2.126237,-1.330172,-0.721011,
+ 0.370396,-0.365961,-0.853744,2.318787,-1.29409,-0.673863,
+ 0.324748,-0.466051,-0.823003,2.274533,-1.433487,-0.567366,
+ 0.324748,-0.466051,-0.823003,2.274533,-1.433487,-0.567366,
+ 0.370396,-0.365961,-0.853744,2.318787,-1.29409,-0.673863,
+ 0.727708,-0.453484,-0.514581,2.486533,-1.274971,-0.627822,
+ 0.324748,-0.466051,-0.823003,2.274533,-1.433487,-0.567366,
+ 0.727708,-0.453484,-0.514581,2.486533,-1.274971,-0.627822,
+ 0.287759,-0.574148,-0.766517,2.45706,-1.400958,-0.539866,
+ 0.287759,-0.574148,-0.766517,2.45706,-1.400958,-0.539866,
+ 0.727708,-0.453484,-0.514581,2.486533,-1.274971,-0.627822,
+ 0.677632,-0.514013,-0.525933,2.549322,-1.335209,-0.535156,
+ 0.677632,-0.514013,-0.525933,2.549322,-1.335209,-0.535156,
+ 0.727708,-0.453484,-0.514581,2.486533,-1.274971,-0.627822,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.727708,-0.453484,-0.514581,2.486533,-1.274971,-0.627822,
+ 0.478274,-0.500384,-0.721713,2.510841,-1.158786,-0.678057,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.478274,-0.500384,-0.721713,2.510841,-1.158786,-0.678057,
+ 0.245892,-0.489895,-0.836385,2.670253,-1.108365,-0.544018,
+ 0.478274,-0.500384,-0.721713,2.510841,-1.158786,-0.678057,
+ 0.727708,-0.453484,-0.514581,2.486533,-1.274971,-0.627822,
+ 0.370396,-0.365961,-0.853744,2.318787,-1.29409,-0.673863,
+ 0.478274,-0.500384,-0.721713,2.510841,-1.158786,-0.678057,
+ 0.370396,-0.365961,-0.853744,2.318787,-1.29409,-0.673863,
+ 0.71475,-0.118625,-0.689246,2.354287,-1.193746,-0.735189,
+ 0.71475,-0.118625,-0.689246,2.354287,-1.193746,-0.735189,
+ 0.6483,-0.171023,-0.741928,2.386465,-1.116066,-0.761367,
+ 0.4379,-0.250054,-0.863549,2.514167,-1.077721,-0.706614,
+ 0.71475,-0.118625,-0.689246,2.354287,-1.193746,-0.735189,
+ 0.4379,-0.250054,-0.863549,2.514167,-1.077721,-0.706614,
+ 0.478274,-0.500384,-0.721713,2.510841,-1.158786,-0.678057,
+ 0.478274,-0.500384,-0.721713,2.510841,-1.158786,-0.678057,
+ 0.4379,-0.250054,-0.863549,2.514167,-1.077721,-0.706614,
+ 0.709718,-0.453838,-0.538824,2.669281,-0.930664,-0.557166,
+ 0.478274,-0.500384,-0.721713,2.510841,-1.158786,-0.678057,
+ 0.709718,-0.453838,-0.538824,2.669281,-0.930664,-0.557166,
+ 0.245892,-0.489895,-0.836385,2.670253,-1.108365,-0.544018,
+ 0.709718,-0.453838,-0.538824,2.669281,-0.930664,-0.557166,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.430574,-0.353967,-0.830249,2.710721,-0.830091,-0.532493,
+ 0.245892,-0.489895,-0.836385,2.670253,-1.108365,-0.544018,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.543412,-0.359347,-0.758665,2.757946,-1.099958,-0.471684,
+ 0.543412,-0.359347,-0.758665,2.757946,-1.099958,-0.471684,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.245892,-0.489895,-0.836385,2.670253,-1.108365,-0.544018,
+ 0.543412,-0.359347,-0.758665,2.757946,-1.099958,-0.471684,
+ 0.663699,-0.195183,-0.722085,2.847364,-1.103812,-0.402301,
+ 0.675576,-0.202498,-0.708937,2.803736,-1.255869,-0.438328,
+ 0.543412,-0.359347,-0.758665,2.757946,-1.099958,-0.471684,
+ 0.675576,-0.202498,-0.708937,2.803736,-1.255869,-0.438328,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.663699,-0.195183,-0.722085,2.847364,-1.103812,-0.402301,
+ 0.543412,-0.359347,-0.758665,2.757946,-1.099958,-0.471684,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.675576,-0.202498,-0.708937,2.803736,-1.255869,-0.438328,
+ 0.655995,-0.105886,-0.747301,2.740886,-1.339225,-0.463604,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.655995,-0.105886,-0.747301,2.740886,-1.339225,-0.463604,
+ 0.594643,-0.107364,-0.796789,2.663024,-1.440487,-0.478149,
+ 0.290845,-0.56858,-0.769497,2.61797,-1.235597,-0.520238,
+ 0.594643,-0.107364,-0.796789,2.663024,-1.440487,-0.478149,
+ 0.677632,-0.514013,-0.525933,2.549322,-1.335209,-0.535156,
+ 0.677632,-0.514013,-0.525933,2.549322,-1.335209,-0.535156,
+ 0.594643,-0.107364,-0.796789,2.663024,-1.440487,-0.478149,
+ 0.648132,-0.027411,-0.761034,2.515314,-1.507063,-0.483275,
+ 0.677632,-0.514013,-0.525933,2.549322,-1.335209,-0.535156,
+ 0.648132,-0.027411,-0.761034,2.515314,-1.507063,-0.483275,
+ 0.287759,-0.574148,-0.766517,2.45706,-1.400958,-0.539866,
+ 0.287759,-0.574148,-0.766517,2.45706,-1.400958,-0.539866,
+ 0.648132,-0.027411,-0.761034,2.515314,-1.507063,-0.483275,
+ 0.58512,-0.108234,-0.803692,2.422296,-1.510915,-0.494169,
+ 0.287759,-0.574148,-0.766517,2.45706,-1.400958,-0.539866,
+ 0.58512,-0.108234,-0.803692,2.422296,-1.510915,-0.494169,
+ 0.518786,-0.204527,-0.830078,2.249663,-1.492705,-0.53127,
+ 0.287759,-0.574148,-0.766517,2.45706,-1.400958,-0.539866,
+ 0.518786,-0.204527,-0.830078,2.249663,-1.492705,-0.53127,
+ 0.324748,-0.466051,-0.823003,2.274533,-1.433487,-0.567366,
+ 0.324748,-0.466051,-0.823003,2.274533,-1.433487,-0.567366,
+ 0.518786,-0.204527,-0.830078,2.249663,-1.492705,-0.53127,
+ 0.437631,-0.408484,-0.801012,2.0796,-1.473377,-0.654997,
+ 0.324748,-0.466051,-0.823003,2.274533,-1.433487,-0.567366,
+ 0.437631,-0.408484,-0.801012,2.0796,-1.473377,-0.654997,
+ 0.727678,-0.414895,-0.546211,2.126237,-1.330172,-0.721011,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.189478,-0.558571,-0.807525,2.960118,-0.941827,-0.284743,
+ 0.112446,-0.61866,-0.77757,2.928787,-1.107467,-0.312054,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.112446,-0.61866,-0.77757,2.928787,-1.107467,-0.312054,
+ 0.663699,-0.195183,-0.722085,2.847364,-1.103812,-0.402301,
+ 0.663699,-0.195183,-0.722085,2.847364,-1.103812,-0.402301,
+ 0.112446,-0.61866,-0.77757,2.928787,-1.107467,-0.312054,
+ 0.276661,-0.626708,-0.728489,2.893096,-1.302168,-0.332049,
+ 0.663699,-0.195183,-0.722085,2.847364,-1.103812,-0.402301,
+ 0.276661,-0.626708,-0.728489,2.893096,-1.302168,-0.332049,
+ 0.675576,-0.202498,-0.708937,2.803736,-1.255869,-0.438328,
+ 0.675576,-0.202498,-0.708937,2.803736,-1.255869,-0.438328,
+ 0.276661,-0.626708,-0.728489,2.893096,-1.302168,-0.332049,
+ 0.690473,-0.61586,-0.379425,2.824356,-1.407256,-0.355013,
+ 0.675576,-0.202498,-0.708937,2.803736,-1.255869,-0.438328,
+ 0.690473,-0.61586,-0.379425,2.824356,-1.407256,-0.355013,
+ 0.655995,-0.105886,-0.747301,2.740886,-1.339225,-0.463604,
+ 0.690473,-0.61586,-0.379425,2.824356,-1.407256,-0.355013,
+ 0.883063,-0.251635,-0.396079,2.721135,-1.520418,-0.362378,
+ 0.594643,-0.107364,-0.796789,2.663024,-1.440487,-0.478149,
+ 0.594643,-0.107364,-0.796789,2.663024,-1.440487,-0.478149,
+ 0.883063,-0.251635,-0.396079,2.721135,-1.520418,-0.362378,
+ 0.918784,-0.122699,-0.375208,2.545261,-1.5933,-0.38631,
+ 0.594643,-0.107364,-0.796789,2.663024,-1.440487,-0.478149,
+ 0.918784,-0.122699,-0.375208,2.545261,-1.5933,-0.38631,
+ 0.648132,-0.027411,-0.761034,2.515314,-1.507063,-0.483275,
+ 0.648132,-0.027411,-0.761034,2.515314,-1.507063,-0.483275,
+ 0.918784,-0.122699,-0.375208,2.545261,-1.5933,-0.38631,
+ 0.876436,-0.293555,-0.381688,2.396607,-1.593239,-0.389972,
+ 0.648132,-0.027411,-0.761034,2.515314,-1.507063,-0.483275,
+ 0.876436,-0.293555,-0.381688,2.396607,-1.593239,-0.389972,
+ 0.58512,-0.108234,-0.803692,2.422296,-1.510915,-0.494169,
+ 0.58512,-0.108234,-0.803692,2.422296,-1.510915,-0.494169,
+ 0.876436,-0.293555,-0.381688,2.396607,-1.593239,-0.389972,
+ 0.728904,-0.519576,-0.445802,2.243492,-1.584783,-0.431143,
+ 0.58512,-0.108234,-0.803692,2.422296,-1.510915,-0.494169,
+ 0.728904,-0.519576,-0.445802,2.243492,-1.584783,-0.431143,
+ 0.518786,-0.204527,-0.830078,2.249663,-1.492705,-0.53127,
+ 0.518786,-0.204527,-0.830078,2.249663,-1.492705,-0.53127,
+ 0.728904,-0.519576,-0.445802,2.243492,-1.584783,-0.431143,
+ 0.552828,-0.750794,-0.36151,2.0482,-1.581983,-0.555832,
+ 0.518786,-0.204527,-0.830078,2.249663,-1.492705,-0.53127,
+ 0.552828,-0.750794,-0.36151,2.0482,-1.581983,-0.555832,
+ 0.437631,-0.408484,-0.801012,2.0796,-1.473377,-0.654997,
+ 0.189478,-0.558571,-0.807525,2.960118,-0.941827,-0.284743,
+ -0.334515,0.94239,0,2.970902,-0.959664,0,
+ 0.820584,-0.571526,0,2.931756,-1.129655,0,
+ 0.189478,-0.558571,-0.807525,2.960118,-0.941827,-0.284743,
+ 0.820584,-0.571526,0,2.931756,-1.129655,0,
+ 0.112446,-0.61866,-0.77757,2.928787,-1.107467,-0.312054,
+ 0.112446,-0.61866,-0.77757,2.928787,-1.107467,-0.312054,
+ 0.820584,-0.571526,0,2.931756,-1.129655,0,
+ -0.255632,0.966774,0,2.896234,-1.31956,0,
+ 0.112446,-0.61866,-0.77757,2.928787,-1.107467,-0.312054,
+ -0.255632,0.966774,0,2.896234,-1.31956,0,
+ 0.276661,-0.626708,-0.728489,2.893096,-1.302168,-0.332049,
+ 0.276661,-0.626708,-0.728489,2.893096,-1.302168,-0.332049,
+ -0.255632,0.966774,0,2.896234,-1.31956,0,
+ 0.826305,-0.563222,0,2.821376,-1.431534,0,
+ 0.276661,-0.626708,-0.728489,2.893096,-1.302168,-0.332049,
+ 0.826305,-0.563222,0,2.821376,-1.431534,0,
+ 0.690473,-0.61586,-0.379425,2.824356,-1.407256,-0.355013,
+ 0.690473,-0.61586,-0.379425,2.824356,-1.407256,-0.355013,
+ 0.826305,-0.563222,0,2.821376,-1.431534,0,
+ -0.133012,0.991114,0,2.706963,-1.528854,0,
+ 0.690473,-0.61586,-0.379425,2.824356,-1.407256,-0.355013,
+ -0.133012,0.991114,0,2.706963,-1.528854,0,
+ 0.883063,-0.251635,-0.396079,2.721135,-1.520418,-0.362378,
+ 0.883063,-0.251635,-0.396079,2.721135,-1.520418,-0.362378,
+ -0.133012,0.991114,0,2.706963,-1.528854,0,
+ 0.815341,-0.578981,0,2.534227,-1.617078,0,
+ 0.883063,-0.251635,-0.396079,2.721135,-1.520418,-0.362378,
+ 0.815341,-0.578981,0,2.534227,-1.617078,0,
+ 0.918784,-0.122699,-0.375208,2.545261,-1.5933,-0.38631,
+ 0.918784,-0.122699,-0.375208,2.545261,-1.5933,-0.38631,
+ 0.815341,-0.578981,0,2.534227,-1.617078,0,
+ -0.144073,0.989567,0,2.348182,-1.624595,0,
+ 0.918784,-0.122699,-0.375208,2.545261,-1.5933,-0.38631,
+ -0.144073,0.989567,0,2.348182,-1.624595,0,
+ 0.876436,-0.293555,-0.381688,2.396607,-1.593239,-0.389972,
+ 0.876436,-0.293555,-0.381688,2.396607,-1.593239,-0.389972,
+ -0.144073,0.989567,0,2.348182,-1.624595,0,
+ -0.073566,0.99729,0,2.167167,-1.596326,0,
+ 0.876436,-0.293555,-0.381688,2.396607,-1.593239,-0.389972,
+ -0.073566,0.99729,0,2.167167,-1.596326,0,
+ 0.728904,-0.519576,-0.445802,2.243492,-1.584783,-0.431143,
+ 0.728904,-0.519576,-0.445802,2.243492,-1.584783,-0.431143,
+ -0.073566,0.99729,0,2.167167,-1.596326,0,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ 0.728904,-0.519576,-0.445802,2.243492,-1.584783,-0.431143,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ 0.552828,-0.750794,-0.36151,2.0482,-1.581983,-0.555832,
+ 0.226413,-0.89822,-0.376747,2.881063,-0.493146,-0.521968,
+ 0.763734,0.228435,-0.603761,2.736198,-0.346225,-0.659345,
+ 0.016767,-0.927537,-0.373356,2.835437,-0.231101,-0.57789,
+ 0.016767,-0.927537,-0.373356,2.835437,-0.231101,-0.57789,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.226413,-0.89822,-0.376747,2.881063,-0.493146,-0.521968,
+ 0.226413,-0.89822,-0.376747,2.881063,-0.493146,-0.521968,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.08136,-0.929085,-0.360806,2.910769,-0.638444,-0.431191,
+ 0.08136,-0.929085,-0.360806,2.910769,-0.638444,-0.431191,
+ 0.295093,-0.940225,-0.16999,2.82554,-0.567578,-0.552597,
+ 0.226413,-0.89822,-0.376747,2.881063,-0.493146,-0.521968,
+ 0.226413,-0.89822,-0.376747,2.881063,-0.493146,-0.521968,
+ 0.295093,-0.940225,-0.16999,2.82554,-0.567578,-0.552597,
+ 0.769758,0.095155,-0.631204,2.688131,-0.517509,-0.672975,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.908163,-0.140074,-0.394486,2.5392,-0.727778,-0.750475,
+ 0.771881,-0.100912,-0.627707,2.647368,-0.61155,-0.669485,
+ 0.771881,-0.100912,-0.627707,2.647368,-0.61155,-0.669485,
+ 0.908163,-0.140074,-0.394486,2.5392,-0.727778,-0.750475,
+ 0.907314,0.09913,-0.4086,2.618307,-0.549092,-0.805491,
+ 0.907314,0.09913,-0.4086,2.618307,-0.549092,-0.805491,
+ 0.769758,0.095155,-0.631204,2.688131,-0.517509,-0.672975,
+ 0.771881,-0.100912,-0.627707,2.647368,-0.61155,-0.669485,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.295093,-0.940225,-0.16999,2.82554,-0.567578,-0.552597,
+ 0.08136,-0.929085,-0.360806,2.910769,-0.638444,-0.431191,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.08136,-0.929085,-0.360806,2.910769,-0.638444,-0.431191,
+ 0.430574,-0.353967,-0.830249,2.710721,-0.830091,-0.532493,
+ 0.430574,-0.353967,-0.830249,2.710721,-0.830091,-0.532493,
+ 0.08136,-0.929085,-0.360806,2.910769,-0.638444,-0.431191,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.08136,-0.929085,-0.360806,2.910769,-0.638444,-0.431191,
+ 0.676544,-0.141883,-0.722604,2.993075,-0.708434,-0.342596,
+ 0.676544,-0.141883,-0.722604,2.993075,-0.708434,-0.342596,
+ 0.667276,-0.159228,-0.727591,3.045715,-0.767786,-0.261741,
+ 0.189478,-0.558571,-0.807525,2.960118,-0.941827,-0.284743,
+ 0.676544,-0.141883,-0.722604,2.993075,-0.708434,-0.342596,
+ 0.189478,-0.558571,-0.807525,2.960118,-0.941827,-0.284743,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.189478,-0.558571,-0.807525,2.960118,-0.941827,-0.284743,
+ 0.667276,-0.159228,-0.727591,3.045715,-0.767786,-0.261741,
+ 0.942695,-0.333657,0,3.065544,-0.788768,0,
+ 0.189478,-0.558571,-0.807525,2.960118,-0.941827,-0.284743,
+ 0.942695,-0.333657,0,3.065544,-0.788768,0,
+ -0.334515,0.94239,0,2.970902,-0.959664,0,
+ 0.942695,-0.333657,0,3.065544,-0.788768,0,
+ 0.667276,-0.159228,-0.727591,3.045715,-0.767786,-0.261741,
+ 0.533629,-0.162705,-0.82992,3.107533,-0.691019,-0.264602,
+ 0.942695,-0.333657,0,3.065544,-0.788768,0,
+ 0.533629,-0.162705,-0.82992,3.107533,-0.691019,-0.264602,
+ -0.476715,0.879058,0,3.118124,-0.703925,0,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.245892,-0.489895,-0.836385,2.670253,-1.108365,-0.544018,
+ 0.709718,-0.453838,-0.538824,2.669281,-0.930664,-0.557166,
+ 0.430574,-0.353967,-0.830249,2.710721,-0.830091,-0.532493,
+ 0.539192,-0.226204,-0.811236,2.857666,-0.930625,-0.391195,
+ 0.709718,-0.453838,-0.538824,2.669281,-0.930664,-0.557166,
+ 0.771881,-0.100912,-0.627707,2.647368,-0.61155,-0.669485,
+ 0.769758,0.095155,-0.631204,2.688131,-0.517509,-0.672975,
+ 0.295093,-0.940225,-0.16999,2.82554,-0.567578,-0.552597,
+ 0.720876,-0.356662,-0.594247,2.637655,-0.768176,-0.637039,
+ 0.771881,-0.100912,-0.627707,2.647368,-0.61155,-0.669485,
+ 0.295093,-0.940225,-0.16999,2.82554,-0.567578,-0.552597,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.449624,0.075438,-0.890027,3.053144,-0.609681,-0.326931,
+ 0.676544,-0.141883,-0.722604,2.993075,-0.708434,-0.342596,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.676544,-0.141883,-0.722604,2.993075,-0.708434,-0.342596,
+ 0.08136,-0.929085,-0.360806,2.910769,-0.638444,-0.431191,
+ 0.676544,-0.141883,-0.722604,2.993075,-0.708434,-0.342596,
+ 0.449624,0.075438,-0.890027,3.053144,-0.609681,-0.326931,
+ 0.533629,-0.162705,-0.82992,3.107533,-0.691019,-0.264602,
+ 0.676544,-0.141883,-0.722604,2.993075,-0.708434,-0.342596,
+ 0.533629,-0.162705,-0.82992,3.107533,-0.691019,-0.264602,
+ 0.667276,-0.159228,-0.727591,3.045715,-0.767786,-0.261741,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ -0.11636,-0.749063,-0.6522,-1.091175,-1.70712,-0.727242,
+ 0.162276,-0.745105,-0.646905,-1.226563,-1.655159,-0.687343,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ 0.162276,-0.745105,-0.646905,-1.226563,-1.655159,-0.687343,
+ 0.215155,-0.464575,-0.858999,-1.200688,-1.577575,-0.799188,
+ 0.215155,-0.464575,-0.858999,-1.200688,-1.577575,-0.799188,
+ 0.162276,-0.745105,-0.646905,-1.226563,-1.655159,-0.687343,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ 0.162276,-0.745105,-0.646905,-1.226563,-1.655159,-0.687343,
+ -0.11636,-0.749063,-0.6522,-1.091175,-1.70712,-0.727242,
+ -0.351476,-0.711504,-0.608463,-1.089642,-1.757196,-0.685154,
+ 0.162276,-0.745105,-0.646905,-1.226563,-1.655159,-0.687343,
+ -0.351476,-0.711504,-0.608463,-1.089642,-1.757196,-0.685154,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.11636,-0.749063,-0.6522,-1.091175,-1.70712,-0.727242,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ -0.231653,-0.530839,-0.815198,-0.972089,-1.774507,-0.76857,
+ -0.231653,-0.530839,-0.815198,-0.972089,-1.774507,-0.76857,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ -0.468954,-0.586277,-0.660577,-0.812845,-1.785424,-0.768511,
+ -0.468954,-0.586277,-0.660577,-0.812845,-1.785424,-0.768511,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ -0.468954,-0.586277,-0.660577,-0.812845,-1.785424,-0.768511,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ -0.150892,-0.83775,-0.524792,-0.680046,-1.768325,-0.81908,
+ -0.150892,-0.83775,-0.524792,-0.680046,-1.768325,-0.81908,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ 0.100949,-0.548551,-0.830001,-0.564074,-1.789401,-0.803191,
+ 0.100949,-0.548551,-0.830001,-0.564074,-1.789401,-0.803191,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ -0.4144,-0.844957,-0.338113,-0.422877,-1.7512,-0.823423,
+ -0.4144,-0.844957,-0.338113,-0.422877,-1.7512,-0.823423,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ 0.33122,-0.270106,-0.904067,-0.063012,-1.583021,-0.865082,
+ -0.4144,-0.844957,-0.338113,-0.422877,-1.7512,-0.823423,
+ 0.33122,-0.270106,-0.904067,-0.063012,-1.583021,-0.865082,
+ 0.327725,-0.489439,-0.808112,-0.07847,-1.688266,-0.80023,
+ -0.4144,-0.844957,-0.338113,-0.422877,-1.7512,-0.823423,
+ 0.327725,-0.489439,-0.808112,-0.07847,-1.688266,-0.80023,
+ 0.291858,-0.681117,-0.67149,-0.094135,-1.769086,-0.556924,
+ -0.4144,-0.844957,-0.338113,-0.422877,-1.7512,-0.823423,
+ 0.291858,-0.681117,-0.67149,-0.094135,-1.769086,-0.556924,
+ 0.068777,-0.757383,-0.649339,-0.543078,-1.810473,-0.563825,
+ 0.068777,-0.757383,-0.649339,-0.543078,-1.810473,-0.563825,
+ 0.100949,-0.548551,-0.830001,-0.564074,-1.789401,-0.803191,
+ -0.4144,-0.844957,-0.338113,-0.422877,-1.7512,-0.823423,
+ 0.100949,-0.548551,-0.830001,-0.564074,-1.789401,-0.803191,
+ 0.068777,-0.757383,-0.649339,-0.543078,-1.810473,-0.563825,
+ -0.150892,-0.83775,-0.524792,-0.680046,-1.768325,-0.81908,
+ -0.150892,-0.83775,-0.524792,-0.680046,-1.768325,-0.81908,
+ 0.068777,-0.757383,-0.649339,-0.543078,-1.810473,-0.563825,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.150892,-0.83775,-0.524792,-0.680046,-1.768325,-0.81908,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.468954,-0.586277,-0.660577,-0.812845,-1.785424,-0.768511,
+ -0.351476,-0.711504,-0.608463,-1.089642,-1.757196,-0.685154,
+ -0.11636,-0.749063,-0.6522,-1.091175,-1.70712,-0.727242,
+ -0.231653,-0.530839,-0.815198,-0.972089,-1.774507,-0.76857,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.351476,-0.711504,-0.608463,-1.089642,-1.757196,-0.685154,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.176655,-0.950799,-0.254508,-1.108758,-1.770749,-0.473033,
+ -0.176655,-0.950799,-0.254508,-1.108758,-1.770749,-0.473033,
+ -0.079302,-0.84299,-0.532051,-1.305099,-1.70846,-0.48423,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ 0.162276,-0.745105,-0.646905,-1.226563,-1.655159,-0.687343,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.094238,-0.851252,-0.516225,-1.397474,-1.693815,-0.570541,
+ -0.53858,-0.616299,-0.57455,-1.386502,-1.718441,-0.350823,
+ -0.171647,-0.971664,-0.162499,-1.406693,-1.697325,-0.450399,
+ -0.079302,-0.84299,-0.532051,-1.305099,-1.70846,-0.48423,
+ -0.53858,-0.616299,-0.57455,-1.386502,-1.718441,-0.350823,
+ -0.079302,-0.84299,-0.532051,-1.305099,-1.70846,-0.48423,
+ -0.040019,-0.929968,-0.365457,-0.972514,-1.822778,-0.372649,
+ -0.040019,-0.929968,-0.365457,-0.972514,-1.822778,-0.372649,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ 0.068777,-0.757383,-0.649339,-0.543078,-1.810473,-0.563825,
+ -0.040019,-0.929968,-0.365457,-0.972514,-1.822778,-0.372649,
+ 0.068777,-0.757383,-0.649339,-0.543078,-1.810473,-0.563825,
+ 0.023352,-0.872807,-0.487506,-0.523838,-1.850065,-0.388007,
+ 0.023352,-0.872807,-0.487506,-0.523838,-1.850065,-0.388007,
+ 0.068777,-0.757383,-0.649339,-0.543078,-1.810473,-0.563825,
+ 0.291858,-0.681117,-0.67149,-0.094135,-1.769086,-0.556924,
+ 0.023352,-0.872807,-0.487506,-0.523838,-1.850065,-0.388007,
+ 0.291858,-0.681117,-0.67149,-0.094135,-1.769086,-0.556924,
+ 0.248915,-0.807091,-0.535392,-0.112666,-1.806584,-0.383324,
+ 0.248915,-0.807091,-0.535392,-0.112666,-1.806584,-0.383324,
+ 0.291858,-0.681117,-0.67149,-0.094135,-1.769086,-0.556924,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.248915,-0.807091,-0.535392,-0.112666,-1.806584,-0.383324,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.383978,-0.566345,-0.729256,0.480235,-1.631521,-0.401961,
+ 0.383978,-0.566345,-0.729256,0.480235,-1.631521,-0.401961,
+ 0.226963,-0.973903,0,0.44655,-1.67295,0,
+ -0.084764,-0.996401,0,-0.155114,-1.828285,0,
+ 0.383978,-0.566345,-0.729256,0.480235,-1.631521,-0.401961,
+ -0.084764,-0.996401,0,-0.155114,-1.828285,0,
+ 0.248915,-0.807091,-0.535392,-0.112666,-1.806584,-0.383324,
+ 0.248915,-0.807091,-0.535392,-0.112666,-1.806584,-0.383324,
+ -0.084764,-0.996401,0,-0.155114,-1.828285,0,
+ 0.854132,-0.520056,0,-0.530369,-1.860806,0,
+ 0.248915,-0.807091,-0.535392,-0.112666,-1.806584,-0.383324,
+ 0.854132,-0.520056,0,-0.530369,-1.860806,0,
+ 0.023352,-0.872807,-0.487506,-0.523838,-1.850065,-0.388007,
+ 0.023352,-0.872807,-0.487506,-0.523838,-1.850065,-0.388007,
+ 0.854132,-0.520056,0,-0.530369,-1.860806,0,
+ 0.113474,-0.993541,0,-0.956007,-1.825728,0,
+ 0.023352,-0.872807,-0.487506,-0.523838,-1.850065,-0.388007,
+ 0.113474,-0.993541,0,-0.956007,-1.825728,0,
+ -0.040019,-0.929968,-0.365457,-0.972514,-1.822778,-0.372649,
+ -0.040019,-0.929968,-0.365457,-0.972514,-1.822778,-0.372649,
+ 0.113474,-0.993541,0,-0.956007,-1.825728,0,
+ 0.011286,0.999936,0,-1.395728,-1.723811,0,
+ -0.040019,-0.929968,-0.365457,-0.972514,-1.822778,-0.372649,
+ 0.011286,0.999936,0,-1.395728,-1.723811,0,
+ -0.53858,-0.616299,-0.57455,-1.386502,-1.718441,-0.350823,
+ -0.351476,-0.711504,-0.608463,-1.089642,-1.757196,-0.685154,
+ -0.231653,-0.530839,-0.815198,-0.972089,-1.774507,-0.76857,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.468954,-0.586277,-0.660577,-0.812845,-1.785424,-0.768511,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.231653,-0.530839,-0.815198,-0.972089,-1.774507,-0.76857,
+ -0.024032,-0.835976,0.54824,1.734568,-2.965876,-0.986396,
+ -0.246054,-0.154918,-0.956796,1.718315,-2.775468,-0.921796,
+ -0.069043,-0.157333,-0.985129,1.771416,-2.769024,-0.9461,
+ -0.024032,-0.835976,0.54824,1.734568,-2.965876,-0.986396,
+ -0.069043,-0.157333,-0.985129,1.771416,-2.769024,-0.9461,
+ -0.044013,0.340434,-0.939238,1.806371,-2.949735,-0.984058,
+ -0.1083,-0.048546,0.992932,1.911792,-2.895773,-0.950117,
+ 0.820312,-0.193024,-0.538358,1.880971,-2.733242,-0.8902,
+ 0.186476,0.252953,-0.949337,1.960643,-2.71286,-0.90089,
+ -0.1083,-0.048546,0.992932,1.911792,-2.895773,-0.950117,
+ 0.186476,0.252953,-0.949337,1.960643,-2.71286,-0.90089,
+ 0.43768,-0.823149,0.361748,2.021366,-2.881725,-0.945561,
+ 0.43768,-0.823149,0.361748,2.021366,-2.881725,-0.945561,
+ 0.186476,0.252953,-0.949337,1.960643,-2.71286,-0.90089,
+ -0.247433,-0.24804,-0.936618,1.994078,-2.713047,-0.824553,
+ 0.43768,-0.823149,0.361748,2.021366,-2.881725,-0.945561,
+ -0.247433,-0.24804,-0.936618,1.994078,-2.713047,-0.824553,
+ -0.671694,-0.023528,-0.740455,2.057496,-2.887282,-0.844225,
+ -0.024032,-0.835976,0.54824,1.734568,-2.965876,-0.986396,
+ -0.044013,0.340434,-0.939238,1.806371,-2.949735,-0.984058,
+ -0.088841,0.02472,-0.995739,1.735077,-3.022732,-0.972751,
+ -0.088841,0.02472,-0.995739,1.735077,-3.022732,-0.972751,
+ 0.57446,0.218241,-0.788902,1.802387,-3.089615,-0.961851,
+ 0.526213,0.349004,-0.775433,1.721745,-3.116887,-0.979111,
+ 0.526213,0.349004,-0.775433,1.721745,-3.116887,-0.979111,
+ 0.57446,0.218241,-0.788902,1.802387,-3.089615,-0.961851,
+ 0.926951,0.366239,0.081429,1.811797,-3.135641,-0.933096,
+ 0.43768,-0.823149,0.361748,2.021366,-2.881725,-0.945561,
+ -0.671694,-0.023528,-0.740455,2.057496,-2.887282,-0.844225,
+ 0.672893,0.661099,-0.331908,2.113587,-3.011851,-0.851648,
+ 0.43768,-0.823149,0.361748,2.021366,-2.881725,-0.945561,
+ 0.672893,0.661099,-0.331908,2.113587,-3.011851,-0.851648,
+ -0.541077,0.245809,-0.804247,2.091539,-3.032437,-0.947029,
+ -0.1083,-0.048546,0.992932,1.911792,-2.895773,-0.950117,
+ -0.496829,-0.096649,-0.86245,1.848272,-2.92726,-0.996966,
+ -0.845931,-0.255219,0.468256,1.830669,-2.736121,-0.903313,
+ -0.1083,-0.048546,0.992932,1.911792,-2.895773,-0.950117,
+ -0.845931,-0.255219,0.468256,1.830669,-2.736121,-0.903313,
+ 0.820312,-0.193024,-0.538358,1.880971,-2.733242,-0.8902,
+ -0.044013,0.340434,-0.939238,1.806371,-2.949735,-0.984058,
+ -0.069043,-0.157333,-0.985129,1.771416,-2.769024,-0.9461,
+ -0.845931,-0.255219,0.468256,1.830669,-2.736121,-0.903313,
+ -0.044013,0.340434,-0.939238,1.806371,-2.949735,-0.984058,
+ -0.845931,-0.255219,0.468256,1.830669,-2.736121,-0.903313,
+ -0.496829,-0.096649,-0.86245,1.848272,-2.92726,-0.996966,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ -0.088841,0.02472,-0.995739,1.735077,-3.022732,-0.972751,
+ 0.526213,0.349004,-0.775433,1.721745,-3.116887,-0.979111,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ 0.526213,0.349004,-0.775433,1.721745,-3.116887,-0.979111,
+ -0.874488,-0.088621,-0.476882,1.709173,-3.133145,-0.80794,
+ -0.874488,-0.088621,-0.476882,1.709173,-3.133145,-0.80794,
+ 0.526213,0.349004,-0.775433,1.721745,-3.116887,-0.979111,
+ 0.926951,0.366239,0.081429,1.811797,-3.135641,-0.933096,
+ -0.874488,-0.088621,-0.476882,1.709173,-3.133145,-0.80794,
+ 0.926951,0.366239,0.081429,1.811797,-3.135641,-0.933096,
+ -0.783521,-0.393963,-0.480508,1.806407,-3.173343,-0.834455,
+ -0.967491,-0.143323,0.208372,1.741854,-3.114181,-0.700705,
+ -0.874488,-0.088621,-0.476882,1.709173,-3.133145,-0.80794,
+ -0.783521,-0.393963,-0.480508,1.806407,-3.173343,-0.834455,
+ -0.967491,-0.143323,0.208372,1.741854,-3.114181,-0.700705,
+ -0.783521,-0.393963,-0.480508,1.806407,-3.173343,-0.834455,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ -0.874488,-0.088621,-0.476882,1.709173,-3.133145,-0.80794,
+ -0.967491,-0.143323,0.208372,1.741854,-3.114181,-0.700705,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ -0.967491,-0.143323,0.208372,1.741854,-3.114181,-0.700705,
+ -0.343436,-0.507052,0.790537,1.776024,-2.980086,-0.707575,
+ -0.343436,-0.507052,0.790537,1.776024,-2.980086,-0.707575,
+ 0.056398,-0.684481,0.726846,1.736425,-2.743683,-0.736866,
+ 0.21689,-0.976039,0.017487,1.700797,-2.794792,-0.82425,
+ -0.343436,-0.507052,0.790537,1.776024,-2.980086,-0.707575,
+ 0.21689,-0.976039,0.017487,1.700797,-2.794792,-0.82425,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ 0.43768,-0.823149,0.361748,2.021366,-2.881725,-0.945561,
+ -0.541077,0.245809,-0.804247,2.091539,-3.032437,-0.947029,
+ 0.872426,0.488735,0.003222,1.980621,-3.043895,-0.964237,
+ 0.43768,-0.823149,0.361748,2.021366,-2.881725,-0.945561,
+ 0.872426,0.488735,0.003222,1.980621,-3.043895,-0.964237,
+ -0.1083,-0.048546,0.992932,1.911792,-2.895773,-0.950117,
+ 0.872426,0.488735,0.003222,1.980621,-3.043895,-0.964237,
+ -0.069765,-0.126006,0.989573,1.898573,-3.068274,-0.994338,
+ -0.496829,-0.096649,-0.86245,1.848272,-2.92726,-0.996966,
+ 0.872426,0.488735,0.003222,1.980621,-3.043895,-0.964237,
+ -0.496829,-0.096649,-0.86245,1.848272,-2.92726,-0.996966,
+ -0.1083,-0.048546,0.992932,1.911792,-2.895773,-0.950117,
+ -0.496829,-0.096649,-0.86245,1.848272,-2.92726,-0.996966,
+ -0.069765,-0.126006,0.989573,1.898573,-3.068274,-0.994338,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ -0.496829,-0.096649,-0.86245,1.848272,-2.92726,-0.996966,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ -0.044013,0.340434,-0.939238,1.806371,-2.949735,-0.984058,
+ 0.57446,0.218241,-0.788902,1.802387,-3.089615,-0.961851,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ 0.926951,0.366239,0.081429,1.811797,-3.135641,-0.933096,
+ -0.088841,0.02472,-0.995739,1.735077,-3.022732,-0.972751,
+ -0.044013,0.340434,-0.939238,1.806371,-2.949735,-0.984058,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ -0.088841,0.02472,-0.995739,1.735077,-3.022732,-0.972751,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ 0.57446,0.218241,-0.788902,1.802387,-3.089615,-0.961851,
+ -0.088841,0.02472,-0.995739,1.735077,-3.022732,-0.972751,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ -0.024032,-0.835976,0.54824,1.734568,-2.965876,-0.986396,
+ 0.672893,0.661099,-0.331908,2.113587,-3.011851,-0.851648,
+ -0.671694,-0.023528,-0.740455,2.057496,-2.887282,-0.844225,
+ -0.990285,-0.10079,0.095796,2.001343,-2.847715,-0.762517,
+ 0.672893,0.661099,-0.331908,2.113587,-3.011851,-0.851648,
+ -0.990285,-0.10079,0.095796,2.001343,-2.847715,-0.762517,
+ -0.701253,0.091018,0.707079,2.07369,-3.020848,-0.782654,
+ -0.967491,-0.143323,0.208372,1.741854,-3.114181,-0.700705,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ 0.963394,-0.268066,-0.003702,1.857471,-2.950722,-0.669988,
+ -0.967491,-0.143323,0.208372,1.741854,-3.114181,-0.700705,
+ 0.963394,-0.268066,-0.003702,1.857471,-2.950722,-0.669988,
+ -0.343436,-0.507052,0.790537,1.776024,-2.980086,-0.707575,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ 0.714275,0.465374,0.522723,1.998099,-3.039955,-0.718855,
+ 0.81992,-0.126246,0.558385,1.945632,-2.87671,-0.703118,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ 0.81992,-0.126246,0.558385,1.945632,-2.87671,-0.703118,
+ 0.963394,-0.268066,-0.003702,1.857471,-2.950722,-0.669988,
+ 0.714275,0.465374,0.522723,1.998099,-3.039955,-0.718855,
+ -0.701253,0.091018,0.707079,2.07369,-3.020848,-0.782654,
+ -0.990285,-0.10079,0.095796,2.001343,-2.847715,-0.762517,
+ 0.714275,0.465374,0.522723,1.998099,-3.039955,-0.718855,
+ -0.990285,-0.10079,0.095796,2.001343,-2.847715,-0.762517,
+ 0.81992,-0.126246,0.558385,1.945632,-2.87671,-0.703118,
+ 0.963394,-0.268066,-0.003702,1.857471,-2.950722,-0.669988,
+ 0.81992,-0.126246,0.558385,1.945632,-2.87671,-0.703118,
+ 0.751149,0.43192,0.49922,1.884318,-2.724404,-0.701999,
+ 0.963394,-0.268066,-0.003702,1.857471,-2.950722,-0.669988,
+ 0.751149,0.43192,0.49922,1.884318,-2.724404,-0.701999,
+ 0.975634,-0.187232,0.114377,1.841282,-2.716008,-0.708009,
+ 0.751149,0.43192,0.49922,1.884318,-2.724404,-0.701999,
+ 0.81992,-0.126246,0.558385,1.945632,-2.87671,-0.703118,
+ -0.990285,-0.10079,0.095796,2.001343,-2.847715,-0.762517,
+ 0.751149,0.43192,0.49922,1.884318,-2.724404,-0.701999,
+ -0.990285,-0.10079,0.095796,2.001343,-2.847715,-0.762517,
+ -0.062994,-0.00854,0.997977,1.972647,-2.728848,-0.772496,
+ -0.343436,-0.507052,0.790537,1.776024,-2.980086,-0.707575,
+ 0.963394,-0.268066,-0.003702,1.857471,-2.950722,-0.669988,
+ 0.975634,-0.187232,0.114377,1.841282,-2.716008,-0.708009,
+ -0.343436,-0.507052,0.790537,1.776024,-2.980086,-0.707575,
+ 0.975634,-0.187232,0.114377,1.841282,-2.716008,-0.708009,
+ 0.056398,-0.684481,0.726846,1.736425,-2.743683,-0.736866,
+ 0.137764,-0.289893,-0.947092,-2.591357,-1.510845,-0.88547,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.26198,0.048424,0.963858,-2.837147,-1.791733,-0.921563,
+ 0.137764,-0.289893,-0.947092,-2.591357,-1.510845,-0.88547,
+ 0.26198,0.048424,0.963858,-2.837147,-1.791733,-0.921563,
+ 0.79444,0.150524,0.588394,-2.687162,-1.539807,-0.988048,
+ 0.79444,0.150524,0.588394,-2.687162,-1.539807,-0.988048,
+ 0.26198,0.048424,0.963858,-2.837147,-1.791733,-0.921563,
+ 0.24139,0.178826,0.953809,-2.918293,-1.904184,-1.004659,
+ 0.79444,0.150524,0.588394,-2.687162,-1.539807,-0.988048,
+ 0.24139,0.178826,0.953809,-2.918293,-1.904184,-1.004659,
+ -0.15812,-0.033626,-0.986847,-2.765069,-1.561164,-1.084313,
+ -0.15812,-0.033626,-0.986847,-2.765069,-1.561164,-1.084313,
+ 0.24139,0.178826,0.953809,-2.918293,-1.904184,-1.004659,
+ 0.247956,0.087485,0.964813,-3.010917,-1.884498,-1.08351,
+ -0.15812,-0.033626,-0.986847,-2.765069,-1.561164,-1.084313,
+ 0.247956,0.087485,0.964813,-3.010917,-1.884498,-1.08351,
+ -0.234266,0.044111,-0.971171,-2.862576,-1.546894,-1.117139,
+ -0.234266,0.044111,-0.971171,-2.862576,-1.546894,-1.117139,
+ 0.247956,0.087485,0.964813,-3.010917,-1.884498,-1.08351,
+ 0.81802,-0.47123,-0.329827,-3.117476,-1.866892,-1.108034,
+ -0.234266,0.044111,-0.971171,-2.862576,-1.546894,-1.117139,
+ 0.81802,-0.47123,-0.329827,-3.117476,-1.866892,-1.108034,
+ 0.726897,-0.546446,-0.415953,-2.955052,-1.49684,-1.128812,
+ 0.726897,-0.546446,-0.415953,-2.955052,-1.49684,-1.128812,
+ 0.81802,-0.47123,-0.329827,-3.117476,-1.866892,-1.108034,
+ 0.776291,-0.374868,-0.5068,-3.23261,-1.834299,-1.087832,
+ 0.726897,-0.546446,-0.415953,-2.955052,-1.49684,-1.128812,
+ 0.776291,-0.374868,-0.5068,-3.23261,-1.834299,-1.087832,
+ -0.390861,0.032481,-0.919876,-3.063133,-1.440555,-1.090926,
+ -0.086361,-0.084973,-0.992634,-3.36599,-1.48517,-0.888076,
+ -0.424393,0.057227,-0.903668,-3.49052,-1.760417,-0.903104,
+ -0.51975,0.138222,-0.843063,-3.498521,-1.762078,-0.762472,
+ -0.086361,-0.084973,-0.992634,-3.36599,-1.48517,-0.888076,
+ -0.51975,0.138222,-0.843063,-3.498521,-1.762078,-0.762472,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.782249,0.198377,-0.590536,-3.335942,-1.365685,-0.72459,
+ -0.811102,-0.12903,-0.570495,-3.319817,-1.365015,-0.886015,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.811102,-0.12903,-0.570495,-3.319817,-1.365015,-0.886015,
+ -0.086361,-0.084973,-0.992634,-3.36599,-1.48517,-0.888076,
+ -0.775358,0.344514,-0.529274,-3.078699,-2.553982,-1.046834,
+ -0.440199,0.219838,-0.870572,-3.162498,-2.556375,-1.058409,
+ -0.820357,0.160676,-0.548815,-3.177824,-2.279173,-1.04758,
+ -0.775358,0.344514,-0.529274,-3.078699,-2.553982,-1.046834,
+ -0.820357,0.160676,-0.548815,-3.177824,-2.279173,-1.04758,
+ -0.906134,0.012265,0.422812,-3.068444,-2.260195,-1.03507,
+ -0.906134,0.012265,0.422812,-3.068444,-2.260195,-1.03507,
+ -0.820357,0.160676,-0.548815,-3.177824,-2.279173,-1.04758,
+ 0.000667,0.002295,-0.999997,-3.169489,-2.110039,-1.076796,
+ -0.906134,0.012265,0.422812,-3.068444,-2.260195,-1.03507,
+ 0.000667,0.002295,-0.999997,-3.169489,-2.110039,-1.076796,
+ 0.461464,-0.003303,-0.887153,-3.047974,-2.109628,-1.063497,
+ 0.461464,-0.003303,-0.887153,-3.047974,-2.109628,-1.063497,
+ 0.000667,0.002295,-0.999997,-3.169489,-2.110039,-1.076796,
+ 0.81802,-0.47123,-0.329827,-3.117476,-1.866892,-1.108034,
+ 0.461464,-0.003303,-0.887153,-3.047974,-2.109628,-1.063497,
+ 0.81802,-0.47123,-0.329827,-3.117476,-1.866892,-1.108034,
+ 0.247956,0.087485,0.964813,-3.010917,-1.884498,-1.08351,
+ -0.820357,0.160676,-0.548815,-3.177824,-2.279173,-1.04758,
+ -0.156447,-0.088128,-0.983747,-3.207447,-2.103206,-1.071366,
+ 0.000667,0.002295,-0.999997,-3.169489,-2.110039,-1.076796,
+ 0.000667,0.002295,-0.999997,-3.169489,-2.110039,-1.076796,
+ -0.156447,-0.088128,-0.983747,-3.207447,-2.103206,-1.071366,
+ 0.776291,-0.374868,-0.5068,-3.23261,-1.834299,-1.087832,
+ 0.000667,0.002295,-0.999997,-3.169489,-2.110039,-1.076796,
+ 0.776291,-0.374868,-0.5068,-3.23261,-1.834299,-1.087832,
+ 0.81802,-0.47123,-0.329827,-3.117476,-1.866892,-1.108034,
+ -0.440199,0.219838,-0.870572,-3.162498,-2.556375,-1.058409,
+ 0.433219,-0.09361,-0.896414,-3.251541,-2.56405,-1.023627,
+ -0.019303,-0.142974,-0.989538,-3.281816,-2.305055,-1.001878,
+ -0.440199,0.219838,-0.870572,-3.162498,-2.556375,-1.058409,
+ -0.019303,-0.142974,-0.989538,-3.281816,-2.305055,-1.001878,
+ -0.820357,0.160676,-0.548815,-3.177824,-2.279173,-1.04758,
+ -0.820357,0.160676,-0.548815,-3.177824,-2.279173,-1.04758,
+ -0.019303,-0.142974,-0.989538,-3.281816,-2.305055,-1.001878,
+ 0.422569,-0.18743,-0.886739,-3.327526,-2.075729,-1.005328,
+ -0.820357,0.160676,-0.548815,-3.177824,-2.279173,-1.04758,
+ 0.422569,-0.18743,-0.886739,-3.327526,-2.075729,-1.005328,
+ -0.156447,-0.088128,-0.983747,-3.207447,-2.103206,-1.071366,
+ -0.156447,-0.088128,-0.983747,-3.207447,-2.103206,-1.071366,
+ 0.422569,-0.18743,-0.886739,-3.327526,-2.075729,-1.005328,
+ 0.356923,-0.210291,-0.910156,-3.357996,-1.811803,-0.975625,
+ -0.156447,-0.088128,-0.983747,-3.207447,-2.103206,-1.071366,
+ 0.356923,-0.210291,-0.910156,-3.357996,-1.811803,-0.975625,
+ 0.776291,-0.374868,-0.5068,-3.23261,-1.834299,-1.087832,
+ 0.433219,-0.09361,-0.896414,-3.251541,-2.56405,-1.023627,
+ -0.354049,-0.10839,-0.928925,-3.347304,-2.573628,-0.955211,
+ -0.35872,0.092902,-0.928811,-3.389388,-2.305625,-0.950348,
+ 0.433219,-0.09361,-0.896414,-3.251541,-2.56405,-1.023627,
+ -0.35872,0.092902,-0.928811,-3.389388,-2.305625,-0.950348,
+ -0.019303,-0.142974,-0.989538,-3.281816,-2.305055,-1.001878,
+ -0.019303,-0.142974,-0.989538,-3.281816,-2.305055,-1.001878,
+ -0.35872,0.092902,-0.928811,-3.389388,-2.305625,-0.950348,
+ -0.453746,-0.057149,-0.889297,-3.451965,-2.077314,-0.931974,
+ -0.019303,-0.142974,-0.989538,-3.281816,-2.305055,-1.001878,
+ -0.453746,-0.057149,-0.889297,-3.451965,-2.077314,-0.931974,
+ 0.422569,-0.18743,-0.886739,-3.327526,-2.075729,-1.005328,
+ 0.422569,-0.18743,-0.886739,-3.327526,-2.075729,-1.005328,
+ -0.453746,-0.057149,-0.889297,-3.451965,-2.077314,-0.931974,
+ -0.424393,0.057227,-0.903668,-3.49052,-1.760417,-0.903104,
+ 0.422569,-0.18743,-0.886739,-3.327526,-2.075729,-1.005328,
+ -0.424393,0.057227,-0.903668,-3.49052,-1.760417,-0.903104,
+ 0.356923,-0.210291,-0.910156,-3.357996,-1.811803,-0.975625,
+ -0.501053,-0.05946,-0.863371,-3.022819,-2.52224,-0.979148,
+ -0.775358,0.344514,-0.529274,-3.078699,-2.553982,-1.046834,
+ -0.906134,0.012265,0.422812,-3.068444,-2.260195,-1.03507,
+ -0.501053,-0.05946,-0.863371,-3.022819,-2.52224,-0.979148,
+ -0.906134,0.012265,0.422812,-3.068444,-2.260195,-1.03507,
+ -0.779685,0.025369,-0.625657,-3.007483,-2.270712,-0.984279,
+ -0.779685,0.025369,-0.625657,-3.007483,-2.270712,-0.984279,
+ -0.906134,0.012265,0.422812,-3.068444,-2.260195,-1.03507,
+ 0.461464,-0.003303,-0.887153,-3.047974,-2.109628,-1.063497,
+ -0.779685,0.025369,-0.625657,-3.007483,-2.270712,-0.984279,
+ 0.461464,-0.003303,-0.887153,-3.047974,-2.109628,-1.063497,
+ -0.765488,-0.115048,-0.633082,-2.969687,-2.097941,-0.982836,
+ -0.765488,-0.115048,-0.633082,-2.969687,-2.097941,-0.982836,
+ 0.461464,-0.003303,-0.887153,-3.047974,-2.109628,-1.063497,
+ 0.247956,0.087485,0.964813,-3.010917,-1.884498,-1.08351,
+ -0.765488,-0.115048,-0.633082,-2.969687,-2.097941,-0.982836,
+ 0.247956,0.087485,0.964813,-3.010917,-1.884498,-1.08351,
+ 0.24139,0.178826,0.953809,-2.918293,-1.904184,-1.004659,
+ -0.807765,-0.096776,-0.581507,-2.892438,-1.95081,-0.87812,
+ 0.24139,0.178826,0.953809,-2.918293,-1.904184,-1.004659,
+ 0.26198,0.048424,0.963858,-2.837147,-1.791733,-0.921563,
+ 0.24139,0.178826,0.953809,-2.918293,-1.904184,-1.004659,
+ -0.807765,-0.096776,-0.581507,-2.892438,-1.95081,-0.87812,
+ 0.937141,-0.149709,-0.315204,-2.981187,-2.142718,-0.858353,
+ 0.24139,0.178826,0.953809,-2.918293,-1.904184,-1.004659,
+ 0.937141,-0.149709,-0.315204,-2.981187,-2.142718,-0.858353,
+ -0.765488,-0.115048,-0.633082,-2.969687,-2.097941,-0.982836,
+ -0.765488,-0.115048,-0.633082,-2.969687,-2.097941,-0.982836,
+ 0.937141,-0.149709,-0.315204,-2.981187,-2.142718,-0.858353,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ -0.765488,-0.115048,-0.633082,-2.969687,-2.097941,-0.982836,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ -0.779685,0.025369,-0.625657,-3.007483,-2.270712,-0.984279,
+ -0.779685,0.025369,-0.625657,-3.007483,-2.270712,-0.984279,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ 0.886562,-0.46255,-0.007485,-3.04661,-2.510881,-0.900772,
+ -0.779685,0.025369,-0.625657,-3.007483,-2.270712,-0.984279,
+ 0.886562,-0.46255,-0.007485,-3.04661,-2.510881,-0.900772,
+ -0.501053,-0.05946,-0.863371,-3.022819,-2.52224,-0.979148,
+ -0.807765,-0.096776,-0.581507,-2.892438,-1.95081,-0.87812,
+ 0.982106,-0.010346,-0.188044,-2.964215,-1.978727,-0.776572,
+ 0.567578,-0.469833,0.6761,-3.040398,-2.156239,-0.808208,
+ -0.807765,-0.096776,-0.581507,-2.892438,-1.95081,-0.87812,
+ 0.567578,-0.469833,0.6761,-3.040398,-2.156239,-0.808208,
+ 0.937141,-0.149709,-0.315204,-2.981187,-2.142718,-0.858353,
+ 0.937141,-0.149709,-0.315204,-2.981187,-2.142718,-0.858353,
+ 0.567578,-0.469833,0.6761,-3.040398,-2.156239,-0.808208,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ 0.567578,-0.469833,0.6761,-3.040398,-2.156239,-0.808208,
+ 0.890357,-0.340018,0.302742,-3.120761,-2.15777,-0.766432,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ 0.890357,-0.340018,0.302742,-3.120761,-2.15777,-0.766432,
+ 0.773659,-0.235087,0.588375,-3.144012,-2.333635,-0.829994,
+ 0.982106,-0.010346,-0.188044,-2.964215,-1.978727,-0.776572,
+ 0.789099,-0.039289,0.613008,-3.066022,-1.953125,-0.719516,
+ 0.890357,-0.340018,0.302742,-3.120761,-2.15777,-0.766432,
+ 0.982106,-0.010346,-0.188044,-2.964215,-1.978727,-0.776572,
+ 0.890357,-0.340018,0.302742,-3.120761,-2.15777,-0.766432,
+ 0.567578,-0.469833,0.6761,-3.040398,-2.156239,-0.808208,
+ 0.789099,-0.039289,0.613008,-3.066022,-1.953125,-0.719516,
+ 0.230893,-0.309688,0.922378,-3.211005,-1.850398,-0.700723,
+ 0.257818,-0.230014,0.938415,-3.253309,-2.137354,-0.760713,
+ 0.789099,-0.039289,0.613008,-3.066022,-1.953125,-0.719516,
+ 0.257818,-0.230014,0.938415,-3.253309,-2.137354,-0.760713,
+ 0.890357,-0.340018,0.302742,-3.120761,-2.15777,-0.766432,
+ 0.890357,-0.340018,0.302742,-3.120761,-2.15777,-0.766432,
+ 0.257818,-0.230014,0.938415,-3.253309,-2.137354,-0.760713,
+ 0.148388,-0.325205,0.933929,-3.235873,-2.335338,-0.820588,
+ 0.890357,-0.340018,0.302742,-3.120761,-2.15777,-0.766432,
+ 0.148388,-0.325205,0.933929,-3.235873,-2.335338,-0.820588,
+ 0.773659,-0.235087,0.588375,-3.144012,-2.333635,-0.829994,
+ 0.773659,-0.235087,0.588375,-3.144012,-2.333635,-0.829994,
+ 0.148388,-0.325205,0.933929,-3.235873,-2.335338,-0.820588,
+ -0.215783,-0.895808,0.388544,-3.240554,-2.555467,-0.856262,
+ 0.773659,-0.235087,0.588375,-3.144012,-2.333635,-0.829994,
+ -0.215783,-0.895808,0.388544,-3.240554,-2.555467,-0.856262,
+ -0.065687,-0.249194,0.966223,-3.132772,-2.528669,-0.848639,
+ 0.515412,-0.714946,0.472444,-3.304804,-1.582192,-0.643445,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.51975,0.138222,-0.843063,-3.498521,-1.762078,-0.762472,
+ 0.515412,-0.714946,0.472444,-3.304804,-1.582192,-0.643445,
+ -0.51975,0.138222,-0.843063,-3.498521,-1.762078,-0.762472,
+ -0.050511,-0.258376,0.964723,-3.381262,-1.828189,-0.697034,
+ -0.050511,-0.258376,0.964723,-3.381262,-1.828189,-0.697034,
+ 0.230893,-0.309688,0.922378,-3.211005,-1.850398,-0.700723,
+ -0.012978,-0.998326,0.056357,-3.139394,-1.687482,-0.638546,
+ -0.050511,-0.258376,0.964723,-3.381262,-1.828189,-0.697034,
+ -0.012978,-0.998326,0.056357,-3.139394,-1.687482,-0.638546,
+ 0.515412,-0.714946,0.472444,-3.304804,-1.582192,-0.643445,
+ 0.230893,-0.309688,0.922378,-3.211005,-1.850398,-0.700723,
+ -0.050511,-0.258376,0.964723,-3.381262,-1.828189,-0.697034,
+ -0.042094,-0.220101,0.974568,-3.422698,-2.070796,-0.773898,
+ 0.230893,-0.309688,0.922378,-3.211005,-1.850398,-0.700723,
+ -0.042094,-0.220101,0.974568,-3.422698,-2.070796,-0.773898,
+ 0.257818,-0.230014,0.938415,-3.253309,-2.137354,-0.760713,
+ 0.257818,-0.230014,0.938415,-3.253309,-2.137354,-0.760713,
+ -0.042094,-0.220101,0.974568,-3.422698,-2.070796,-0.773898,
+ -0.085416,-0.081635,0.992995,-3.339489,-2.328145,-0.827572,
+ 0.257818,-0.230014,0.938415,-3.253309,-2.137354,-0.760713,
+ -0.085416,-0.081635,0.992995,-3.339489,-2.328145,-0.827572,
+ 0.148388,-0.325205,0.933929,-3.235873,-2.335338,-0.820588,
+ 0.148388,-0.325205,0.933929,-3.235873,-2.335338,-0.820588,
+ -0.085416,-0.081635,0.992995,-3.339489,-2.328145,-0.827572,
+ 0.255431,-0.055528,0.965231,-3.297886,-2.54902,-0.861657,
+ 0.148388,-0.325205,0.933929,-3.235873,-2.335338,-0.820588,
+ 0.255431,-0.055528,0.965231,-3.297886,-2.54902,-0.861657,
+ -0.215783,-0.895808,0.388544,-3.240554,-2.555467,-0.856262,
+ -0.050511,-0.258376,0.964723,-3.381262,-1.828189,-0.697034,
+ -0.51975,0.138222,-0.843063,-3.498521,-1.762078,-0.762472,
+ -0.348227,-0.192528,0.917426,-3.463753,-2.079892,-0.844667,
+ -0.050511,-0.258376,0.964723,-3.381262,-1.828189,-0.697034,
+ -0.348227,-0.192528,0.917426,-3.463753,-2.079892,-0.844667,
+ -0.042094,-0.220101,0.974568,-3.422698,-2.070796,-0.773898,
+ -0.042094,-0.220101,0.974568,-3.422698,-2.070796,-0.773898,
+ -0.348227,-0.192528,0.917426,-3.463753,-2.079892,-0.844667,
+ -0.401279,-0.250965,0.880904,-3.412068,-2.356105,-0.865813,
+ -0.042094,-0.220101,0.974568,-3.422698,-2.070796,-0.773898,
+ -0.401279,-0.250965,0.880904,-3.412068,-2.356105,-0.865813,
+ -0.085416,-0.081635,0.992995,-3.339489,-2.328145,-0.827572,
+ -0.085416,-0.081635,0.992995,-3.339489,-2.328145,-0.827572,
+ -0.401279,-0.250965,0.880904,-3.412068,-2.356105,-0.865813,
+ -0.326843,-0.236652,0.91497,-3.372066,-2.569159,-0.904785,
+ -0.085416,-0.081635,0.992995,-3.339489,-2.328145,-0.827572,
+ -0.326843,-0.236652,0.91497,-3.372066,-2.569159,-0.904785,
+ 0.255431,-0.055528,0.965231,-3.297886,-2.54902,-0.861657,
+ -0.348227,-0.192528,0.917426,-3.463753,-2.079892,-0.844667,
+ -0.453746,-0.057149,-0.889297,-3.451965,-2.077314,-0.931974,
+ -0.35872,0.092902,-0.928811,-3.389388,-2.305625,-0.950348,
+ -0.348227,-0.192528,0.917426,-3.463753,-2.079892,-0.844667,
+ -0.35872,0.092902,-0.928811,-3.389388,-2.305625,-0.950348,
+ -0.401279,-0.250965,0.880904,-3.412068,-2.356105,-0.865813,
+ -0.401279,-0.250965,0.880904,-3.412068,-2.356105,-0.865813,
+ -0.35872,0.092902,-0.928811,-3.389388,-2.305625,-0.950348,
+ -0.354049,-0.10839,-0.928925,-3.347304,-2.573628,-0.955211,
+ -0.401279,-0.250965,0.880904,-3.412068,-2.356105,-0.865813,
+ -0.354049,-0.10839,-0.928925,-3.347304,-2.573628,-0.955211,
+ -0.326843,-0.236652,0.91497,-3.372066,-2.569159,-0.904785,
+ -0.51975,0.138222,-0.843063,-3.498521,-1.762078,-0.762472,
+ -0.424393,0.057227,-0.903668,-3.49052,-1.760417,-0.903104,
+ -0.453746,-0.057149,-0.889297,-3.451965,-2.077314,-0.931974,
+ -0.51975,0.138222,-0.843063,-3.498521,-1.762078,-0.762472,
+ -0.453746,-0.057149,-0.889297,-3.451965,-2.077314,-0.931974,
+ -0.348227,-0.192528,0.917426,-3.463753,-2.079892,-0.844667,
+ 0.356923,-0.210291,-0.910156,-3.357996,-1.811803,-0.975625,
+ -0.424393,0.057227,-0.903668,-3.49052,-1.760417,-0.903104,
+ -0.086361,-0.084973,-0.992634,-3.36599,-1.48517,-0.888076,
+ 0.356923,-0.210291,-0.910156,-3.357996,-1.811803,-0.975625,
+ -0.086361,-0.084973,-0.992634,-3.36599,-1.48517,-0.888076,
+ -0.032036,-0.072305,-0.996868,-3.342096,-1.533989,-0.921628,
+ -0.587844,-0.244917,-0.771009,1.953911,-2.462233,-0.830594,
+ 0.985192,-0.12583,0.116459,1.930747,-2.463535,-0.894743,
+ 0.996811,-0.048518,0.063355,1.98533,-2.221319,-0.893145,
+ -0.587844,-0.244917,-0.771009,1.953911,-2.462233,-0.830594,
+ 0.996811,-0.048518,0.063355,1.98533,-2.221319,-0.893145,
+ -0.845196,-0.27877,-0.455994,2.02453,-2.195334,-0.811284,
+ -0.845196,-0.27877,-0.455994,2.02453,-2.195334,-0.811284,
+ 0.996811,-0.048518,0.063355,1.98533,-2.221319,-0.893145,
+ 0.957938,-0.285979,-0.023877,2.013095,-2.051912,-0.911043,
+ -0.845196,-0.27877,-0.455994,2.02453,-2.195334,-0.811284,
+ 0.957938,-0.285979,-0.023877,2.013095,-2.051912,-0.911043,
+ -0.732521,-0.474279,-0.488336,2.047696,-2.050138,-0.814712,
+ -0.732521,-0.474279,-0.488336,2.047696,-2.050138,-0.814712,
+ 0.957938,-0.285979,-0.023877,2.013095,-2.051912,-0.911043,
+ -0.274087,0.000043,0.961705,2.021591,-1.755289,-0.912093,
+ -0.732521,-0.474279,-0.488336,2.047696,-2.050138,-0.814712,
+ -0.274087,0.000043,0.961705,2.021591,-1.755289,-0.912093,
+ 0.972392,0.232654,-0.018037,2.053108,-1.738285,-0.824853,
+ 0.972392,0.232654,-0.018037,2.053108,-1.738285,-0.824853,
+ -0.274087,0.000043,0.961705,2.021591,-1.755289,-0.912093,
+ 0.74023,-0.090866,-0.666185,2.036036,-1.57908,-0.967151,
+ 0.972392,0.232654,-0.018037,2.053108,-1.738285,-0.824853,
+ 0.74023,-0.090866,-0.666185,2.036036,-1.57908,-0.967151,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ -0.176356,-0.113876,-0.977717,1.678986,-2.513137,-0.891745,
+ -0.051713,-0.100832,-0.993559,1.737623,-2.485017,-0.918334,
+ -0.069043,-0.157333,-0.985129,1.771416,-2.769024,-0.9461,
+ -0.176356,-0.113876,-0.977717,1.678986,-2.513137,-0.891745,
+ -0.069043,-0.157333,-0.985129,1.771416,-2.769024,-0.9461,
+ -0.246054,-0.154918,-0.956796,1.718315,-2.775468,-0.921796,
+ -0.136917,-0.20176,-0.969818,1.648793,-2.280014,-0.929365,
+ 0.039,-0.185675,-0.981837,1.710406,-2.272223,-0.954296,
+ -0.051713,-0.100832,-0.993559,1.737623,-2.485017,-0.918334,
+ -0.136917,-0.20176,-0.969818,1.648793,-2.280014,-0.929365,
+ -0.051713,-0.100832,-0.993559,1.737623,-2.485017,-0.918334,
+ -0.176356,-0.113876,-0.977717,1.678986,-2.513137,-0.891745,
+ -0.17902,-0.308668,-0.934171,1.6249,-2.087301,-0.963391,
+ 0.109483,-0.310605,-0.944213,1.720031,-2.105568,-0.971354,
+ 0.039,-0.185675,-0.981837,1.710406,-2.272223,-0.954296,
+ -0.17902,-0.308668,-0.934171,1.6249,-2.087301,-0.963391,
+ 0.039,-0.185675,-0.981837,1.710406,-2.272223,-0.954296,
+ -0.136917,-0.20176,-0.969818,1.648793,-2.280014,-0.929365,
+ -0.739347,0.031953,-0.672566,1.572979,-1.827591,-0.985823,
+ -0.09542,0.162222,-0.98213,1.717145,-1.80953,-1.004092,
+ 0.109483,-0.310605,-0.944213,1.720031,-2.105568,-0.971354,
+ -0.739347,0.031953,-0.672566,1.572979,-1.827591,-0.985823,
+ 0.109483,-0.310605,-0.944213,1.720031,-2.105568,-0.971354,
+ -0.17902,-0.308668,-0.934171,1.6249,-2.087301,-0.963391,
+ -0.652584,-0.147678,-0.743186,1.54175,-1.643613,-1.01419,
+ -0.211092,-0.082708,-0.973961,1.650318,-1.645881,-1.053347,
+ -0.09542,0.162222,-0.98213,1.717145,-1.80953,-1.004092,
+ -0.652584,-0.147678,-0.743186,1.54175,-1.643613,-1.01419,
+ -0.09542,0.162222,-0.98213,1.717145,-1.80953,-1.004092,
+ -0.739347,0.031953,-0.672566,1.572979,-1.827591,-0.985823,
+ -0.4008,-0.167777,-0.900672,1.586321,-2.273752,-0.880969,
+ -0.136917,-0.20176,-0.969818,1.648793,-2.280014,-0.929365,
+ -0.176356,-0.113876,-0.977717,1.678986,-2.513137,-0.891745,
+ -0.4008,-0.167777,-0.900672,1.586321,-2.273752,-0.880969,
+ -0.176356,-0.113876,-0.977717,1.678986,-2.513137,-0.891745,
+ -0.483189,-0.207332,-0.850613,1.655948,-2.520927,-0.844269,
+ -0.417424,-0.199203,-0.886609,1.529305,-2.092083,-0.887353,
+ -0.17902,-0.308668,-0.934171,1.6249,-2.087301,-0.963391,
+ -0.136917,-0.20176,-0.969818,1.648793,-2.280014,-0.929365,
+ -0.417424,-0.199203,-0.886609,1.529305,-2.092083,-0.887353,
+ -0.136917,-0.20176,-0.969818,1.648793,-2.280014,-0.929365,
+ -0.4008,-0.167777,-0.900672,1.586321,-2.273752,-0.880969,
+ -0.521685,-0.261319,-0.812131,1.508714,-1.808578,-0.934359,
+ -0.739347,0.031953,-0.672566,1.572979,-1.827591,-0.985823,
+ -0.17902,-0.308668,-0.934171,1.6249,-2.087301,-0.963391,
+ -0.521685,-0.261319,-0.812131,1.508714,-1.808578,-0.934359,
+ -0.17902,-0.308668,-0.934171,1.6249,-2.087301,-0.963391,
+ -0.417424,-0.199203,-0.886609,1.529305,-2.092083,-0.887353,
+ -0.970971,-0.219011,-0.096178,1.480629,-1.640132,-0.953447,
+ -0.652584,-0.147678,-0.743186,1.54175,-1.643613,-1.01419,
+ -0.739347,0.031953,-0.672566,1.572979,-1.827591,-0.985823,
+ -0.970971,-0.219011,-0.096178,1.480629,-1.640132,-0.953447,
+ -0.739347,0.031953,-0.672566,1.572979,-1.827591,-0.985823,
+ -0.521685,-0.261319,-0.812131,1.508714,-1.808578,-0.934359,
+ -0.883058,-0.239959,-0.403273,1.60129,-2.267132,-0.787696,
+ -0.4008,-0.167777,-0.900672,1.586321,-2.273752,-0.880969,
+ -0.483189,-0.207332,-0.850613,1.655948,-2.520927,-0.844269,
+ -0.883058,-0.239959,-0.403273,1.60129,-2.267132,-0.787696,
+ -0.483189,-0.207332,-0.850613,1.655948,-2.520927,-0.844269,
+ -0.912869,-0.285577,-0.291747,1.663494,-2.485963,-0.790773,
+ -0.872722,-0.174901,-0.455813,1.544087,-2.080722,-0.786432,
+ -0.417424,-0.199203,-0.886609,1.529305,-2.092083,-0.887353,
+ -0.4008,-0.167777,-0.900672,1.586321,-2.273752,-0.880969,
+ -0.872722,-0.174901,-0.455813,1.544087,-2.080722,-0.786432,
+ -0.4008,-0.167777,-0.900672,1.586321,-2.273752,-0.880969,
+ -0.883058,-0.239959,-0.403273,1.60129,-2.267132,-0.787696,
+ -0.874358,-0.225285,-0.429819,1.473886,-1.818947,-0.799576,
+ -0.521685,-0.261319,-0.812131,1.508714,-1.808578,-0.934359,
+ -0.417424,-0.199203,-0.886609,1.529305,-2.092083,-0.887353,
+ -0.874358,-0.225285,-0.429819,1.473886,-1.818947,-0.799576,
+ -0.417424,-0.199203,-0.886609,1.529305,-2.092083,-0.887353,
+ -0.872722,-0.174901,-0.455813,1.544087,-2.080722,-0.786432,
+ -0.794709,-0.185222,0.578041,1.451825,-1.576856,-0.702758,
+ -0.970971,-0.219011,-0.096178,1.480629,-1.640132,-0.953447,
+ -0.521685,-0.261319,-0.812131,1.508714,-1.808578,-0.934359,
+ -0.794709,-0.185222,0.578041,1.451825,-1.576856,-0.702758,
+ -0.521685,-0.261319,-0.812131,1.508714,-1.808578,-0.934359,
+ -0.874358,-0.225285,-0.429819,1.473886,-1.818947,-0.799576,
+ -0.898389,-0.217201,0.381735,1.677597,-2.237953,-0.696318,
+ -0.883058,-0.239959,-0.403273,1.60129,-2.267132,-0.787696,
+ -0.912869,-0.285577,-0.291747,1.663494,-2.485963,-0.790773,
+ -0.898389,-0.217201,0.381735,1.677597,-2.237953,-0.696318,
+ -0.912869,-0.285577,-0.291747,1.663494,-2.485963,-0.790773,
+ -0.887036,-0.210048,0.411154,1.756349,-2.446399,-0.705428,
+ -0.819257,-0.566976,-0.085772,1.643403,-2.076583,-0.689565,
+ -0.872722,-0.174901,-0.455813,1.544087,-2.080722,-0.786432,
+ -0.883058,-0.239959,-0.403273,1.60129,-2.267132,-0.787696,
+ -0.819257,-0.566976,-0.085772,1.643403,-2.076583,-0.689565,
+ -0.883058,-0.239959,-0.403273,1.60129,-2.267132,-0.787696,
+ -0.898389,-0.217201,0.381735,1.677597,-2.237953,-0.696318,
+ 0.193853,0.161608,-0.967628,1.596751,-1.722028,-0.684655,
+ -0.874358,-0.225285,-0.429819,1.473886,-1.818947,-0.799576,
+ -0.872722,-0.174901,-0.455813,1.544087,-2.080722,-0.786432,
+ 0.193853,0.161608,-0.967628,1.596751,-1.722028,-0.684655,
+ -0.872722,-0.174901,-0.455813,1.544087,-2.080722,-0.786432,
+ -0.819257,-0.566976,-0.085772,1.643403,-2.076583,-0.689565,
+ -0.493424,-0.165611,0.853877,1.599889,-1.595526,-0.623185,
+ -0.794709,-0.185222,0.578041,1.451825,-1.576856,-0.702758,
+ -0.874358,-0.225285,-0.429819,1.473886,-1.818947,-0.799576,
+ -0.493424,-0.165611,0.853877,1.599889,-1.595526,-0.623185,
+ -0.874358,-0.225285,-0.429819,1.473886,-1.818947,-0.799576,
+ 0.193853,0.161608,-0.967628,1.596751,-1.722028,-0.684655,
+ 0.985192,-0.12583,0.116459,1.930747,-2.463535,-0.894743,
+ -0.587844,-0.244917,-0.771009,1.953911,-2.462233,-0.830594,
+ -0.247433,-0.24804,-0.936618,1.994078,-2.713047,-0.824553,
+ 0.985192,-0.12583,0.116459,1.930747,-2.463535,-0.894743,
+ -0.247433,-0.24804,-0.936618,1.994078,-2.713047,-0.824553,
+ 0.186476,0.252953,-0.949337,1.960643,-2.71286,-0.90089,
+ 0.843062,-0.10517,-0.527433,1.864064,-2.469953,-0.935601,
+ 0.985192,-0.12583,0.116459,1.930747,-2.463535,-0.894743,
+ 0.186476,0.252953,-0.949337,1.960643,-2.71286,-0.90089,
+ 0.843062,-0.10517,-0.527433,1.864064,-2.469953,-0.935601,
+ 0.186476,0.252953,-0.949337,1.960643,-2.71286,-0.90089,
+ 0.820312,-0.193024,-0.538358,1.880971,-2.733242,-0.8902,
+ 0.159615,0.129847,-0.978602,1.941767,-1.759457,-0.997454,
+ 0.290478,-0.146424,-0.945612,1.937009,-1.625419,-1.026843,
+ 0.74023,-0.090866,-0.666185,2.036036,-1.57908,-0.967151,
+ 0.159615,0.129847,-0.978602,1.941767,-1.759457,-0.997454,
+ 0.74023,-0.090866,-0.666185,2.036036,-1.57908,-0.967151,
+ -0.274087,0.000043,0.961705,2.021591,-1.755289,-0.912093,
+ 0.830793,-0.244757,-0.499878,1.918641,-2.083654,-1.001275,
+ 0.159615,0.129847,-0.978602,1.941767,-1.759457,-0.997454,
+ -0.274087,0.000043,0.961705,2.021591,-1.755289,-0.912093,
+ 0.830793,-0.244757,-0.499878,1.918641,-2.083654,-1.001275,
+ -0.274087,0.000043,0.961705,2.021591,-1.755289,-0.912093,
+ 0.957938,-0.285979,-0.023877,2.013095,-2.051912,-0.911043,
+ 0.846555,-0.103661,-0.52211,1.90637,-2.282284,-0.964887,
+ 0.996811,-0.048518,0.063355,1.98533,-2.221319,-0.893145,
+ 0.985192,-0.12583,0.116459,1.930747,-2.463535,-0.894743,
+ 0.846555,-0.103661,-0.52211,1.90637,-2.282284,-0.964887,
+ 0.985192,-0.12583,0.116459,1.930747,-2.463535,-0.894743,
+ 0.843062,-0.10517,-0.527433,1.864064,-2.469953,-0.935601,
+ 0.846555,-0.103661,-0.52211,1.90637,-2.282284,-0.964887,
+ 0.830793,-0.244757,-0.499878,1.918641,-2.083654,-1.001275,
+ 0.957938,-0.285979,-0.023877,2.013095,-2.051912,-0.911043,
+ 0.846555,-0.103661,-0.52211,1.90637,-2.282284,-0.964887,
+ 0.957938,-0.285979,-0.023877,2.013095,-2.051912,-0.911043,
+ 0.996811,-0.048518,0.063355,1.98533,-2.221319,-0.893145,
+ -0.069043,-0.157333,-0.985129,1.771416,-2.769024,-0.9461,
+ -0.051713,-0.100832,-0.993559,1.737623,-2.485017,-0.918334,
+ 0.407719,-0.190267,-0.893064,1.801127,-2.48469,-0.938593,
+ -0.069043,-0.157333,-0.985129,1.771416,-2.769024,-0.9461,
+ 0.407719,-0.190267,-0.893064,1.801127,-2.48469,-0.938593,
+ -0.845931,-0.255219,0.468256,1.830669,-2.736121,-0.903313,
+ 0.407719,-0.190267,-0.893064,1.801127,-2.48469,-0.938593,
+ 0.843062,-0.10517,-0.527433,1.864064,-2.469953,-0.935601,
+ 0.820312,-0.193024,-0.538358,1.880971,-2.733242,-0.8902,
+ 0.407719,-0.190267,-0.893064,1.801127,-2.48469,-0.938593,
+ 0.820312,-0.193024,-0.538358,1.880971,-2.733242,-0.8902,
+ -0.845931,-0.255219,0.468256,1.830669,-2.736121,-0.903313,
+ -0.09542,0.162222,-0.98213,1.717145,-1.80953,-1.004092,
+ -0.211092,-0.082708,-0.973961,1.650318,-1.645881,-1.053347,
+ 0.051664,-0.122235,-0.991156,1.804927,-1.581954,-1.089198,
+ -0.09542,0.162222,-0.98213,1.717145,-1.80953,-1.004092,
+ 0.051664,-0.122235,-0.991156,1.804927,-1.581954,-1.089198,
+ 0.473622,-0.284001,-0.833682,1.818846,-1.756976,-1.023593,
+ 0.109483,-0.310605,-0.944213,1.720031,-2.105568,-0.971354,
+ -0.09542,0.162222,-0.98213,1.717145,-1.80953,-1.004092,
+ 0.473622,-0.284001,-0.833682,1.818846,-1.756976,-1.023593,
+ 0.109483,-0.310605,-0.944213,1.720031,-2.105568,-0.971354,
+ 0.473622,-0.284001,-0.833682,1.818846,-1.756976,-1.023593,
+ 0.459595,-0.144347,-0.87632,1.839224,-2.109267,-0.998351,
+ 0.039,-0.185675,-0.981837,1.710406,-2.272223,-0.954296,
+ 0.109483,-0.310605,-0.944213,1.720031,-2.105568,-0.971354,
+ 0.459595,-0.144347,-0.87632,1.839224,-2.109267,-0.998351,
+ 0.039,-0.185675,-0.981837,1.710406,-2.272223,-0.954296,
+ 0.459595,-0.144347,-0.87632,1.839224,-2.109267,-0.998351,
+ 0.431429,-0.109339,-0.895497,1.818266,-2.313852,-0.968652,
+ -0.051713,-0.100832,-0.993559,1.737623,-2.485017,-0.918334,
+ 0.039,-0.185675,-0.981837,1.710406,-2.272223,-0.954296,
+ 0.431429,-0.109339,-0.895497,1.818266,-2.313852,-0.968652,
+ -0.051713,-0.100832,-0.993559,1.737623,-2.485017,-0.918334,
+ 0.431429,-0.109339,-0.895497,1.818266,-2.313852,-0.968652,
+ 0.407719,-0.190267,-0.893064,1.801127,-2.48469,-0.938593,
+ 0.473622,-0.284001,-0.833682,1.818846,-1.756976,-1.023593,
+ 0.051664,-0.122235,-0.991156,1.804927,-1.581954,-1.089198,
+ 0.290478,-0.146424,-0.945612,1.937009,-1.625419,-1.026843,
+ 0.473622,-0.284001,-0.833682,1.818846,-1.756976,-1.023593,
+ 0.290478,-0.146424,-0.945612,1.937009,-1.625419,-1.026843,
+ 0.159615,0.129847,-0.978602,1.941767,-1.759457,-0.997454,
+ 0.459595,-0.144347,-0.87632,1.839224,-2.109267,-0.998351,
+ 0.473622,-0.284001,-0.833682,1.818846,-1.756976,-1.023593,
+ 0.159615,0.129847,-0.978602,1.941767,-1.759457,-0.997454,
+ 0.459595,-0.144347,-0.87632,1.839224,-2.109267,-0.998351,
+ 0.159615,0.129847,-0.978602,1.941767,-1.759457,-0.997454,
+ 0.830793,-0.244757,-0.499878,1.918641,-2.083654,-1.001275,
+ 0.431429,-0.109339,-0.895497,1.818266,-2.313852,-0.968652,
+ 0.459595,-0.144347,-0.87632,1.839224,-2.109267,-0.998351,
+ 0.830793,-0.244757,-0.499878,1.918641,-2.083654,-1.001275,
+ 0.431429,-0.109339,-0.895497,1.818266,-2.313852,-0.968652,
+ 0.830793,-0.244757,-0.499878,1.918641,-2.083654,-1.001275,
+ 0.846555,-0.103661,-0.52211,1.90637,-2.282284,-0.964887,
+ 0.407719,-0.190267,-0.893064,1.801127,-2.48469,-0.938593,
+ 0.431429,-0.109339,-0.895497,1.818266,-2.313852,-0.968652,
+ 0.846555,-0.103661,-0.52211,1.90637,-2.282284,-0.964887,
+ 0.407719,-0.190267,-0.893064,1.801127,-2.48469,-0.938593,
+ 0.846555,-0.103661,-0.52211,1.90637,-2.282284,-0.964887,
+ 0.843062,-0.10517,-0.527433,1.864064,-2.469953,-0.935601,
+ 0.975634,-0.187232,0.114377,1.841282,-2.716008,-0.708009,
+ -0.887036,-0.210048,0.411154,1.756349,-2.446399,-0.705428,
+ -0.912869,-0.285577,-0.291747,1.663494,-2.485963,-0.790773,
+ 0.975634,-0.187232,0.114377,1.841282,-2.716008,-0.708009,
+ -0.912869,-0.285577,-0.291747,1.663494,-2.485963,-0.790773,
+ 0.056398,-0.684481,0.726846,1.736425,-2.743683,-0.736866,
+ -0.382074,-0.25681,0.887732,1.740323,-1.67983,-0.664098,
+ -0.217942,-0.897186,0.384134,1.721211,-1.590185,-0.601932,
+ -0.493424,-0.165611,0.853877,1.599889,-1.595526,-0.623185,
+ -0.382074,-0.25681,0.887732,1.740323,-1.67983,-0.664098,
+ -0.493424,-0.165611,0.853877,1.599889,-1.595526,-0.623185,
+ 0.193853,0.161608,-0.967628,1.596751,-1.722028,-0.684655,
+ -0.53197,-0.108751,0.839751,1.747671,-2.067518,-0.638841,
+ -0.382074,-0.25681,0.887732,1.740323,-1.67983,-0.664098,
+ 0.193853,0.161608,-0.967628,1.596751,-1.722028,-0.684655,
+ -0.53197,-0.108751,0.839751,1.747671,-2.067518,-0.638841,
+ 0.193853,0.161608,-0.967628,1.596751,-1.722028,-0.684655,
+ -0.819257,-0.566976,-0.085772,1.643403,-2.076583,-0.689565,
+ -0.570406,-0.192005,0.798606,1.772999,-2.230292,-0.64494,
+ -0.53197,-0.108751,0.839751,1.747671,-2.067518,-0.638841,
+ -0.819257,-0.566976,-0.085772,1.643403,-2.076583,-0.689565,
+ -0.570406,-0.192005,0.798606,1.772999,-2.230292,-0.64494,
+ -0.819257,-0.566976,-0.085772,1.643403,-2.076583,-0.689565,
+ -0.898389,-0.217201,0.381735,1.677597,-2.237953,-0.696318,
+ -0.912869,-0.285577,-0.291747,1.663494,-2.485963,-0.790773,
+ -0.483189,-0.207332,-0.850613,1.655948,-2.520927,-0.844269,
+ 0.21689,-0.976039,0.017487,1.700797,-2.794792,-0.82425,
+ -0.912869,-0.285577,-0.291747,1.663494,-2.485963,-0.790773,
+ 0.21689,-0.976039,0.017487,1.700797,-2.794792,-0.82425,
+ 0.056398,-0.684481,0.726846,1.736425,-2.743683,-0.736866,
+ -0.671694,-0.023528,-0.740455,2.057496,-2.887282,-0.844225,
+ -0.247433,-0.24804,-0.936618,1.994078,-2.713047,-0.824553,
+ -0.062994,-0.00854,0.997977,1.972647,-2.728848,-0.772496,
+ -0.671694,-0.023528,-0.740455,2.057496,-2.887282,-0.844225,
+ -0.062994,-0.00854,0.997977,1.972647,-2.728848,-0.772496,
+ -0.990285,-0.10079,0.095796,2.001343,-2.847715,-0.762517,
+ 0.601229,-0.111152,0.791308,1.828658,-2.477348,-0.67347,
+ 0.751149,0.43192,0.49922,1.884318,-2.724404,-0.701999,
+ -0.062994,-0.00854,0.997977,1.972647,-2.728848,-0.772496,
+ 0.601229,-0.111152,0.791308,1.828658,-2.477348,-0.67347,
+ -0.062994,-0.00854,0.997977,1.972647,-2.728848,-0.772496,
+ -0.943599,-0.160394,0.289646,1.947264,-2.443232,-0.732587,
+ -0.570406,-0.192005,0.798606,1.772999,-2.230292,-0.64494,
+ 0.601229,-0.111152,0.791308,1.828658,-2.477348,-0.67347,
+ -0.943599,-0.160394,0.289646,1.947264,-2.443232,-0.732587,
+ -0.570406,-0.192005,0.798606,1.772999,-2.230292,-0.64494,
+ -0.943599,-0.160394,0.289646,1.947264,-2.443232,-0.732587,
+ -0.363523,-0.150625,0.919327,1.921881,-2.157616,-0.692678,
+ 0.601229,-0.111152,0.791308,1.828658,-2.477348,-0.67347,
+ -0.887036,-0.210048,0.411154,1.756349,-2.446399,-0.705428,
+ 0.975634,-0.187232,0.114377,1.841282,-2.716008,-0.708009,
+ 0.601229,-0.111152,0.791308,1.828658,-2.477348,-0.67347,
+ 0.975634,-0.187232,0.114377,1.841282,-2.716008,-0.708009,
+ 0.751149,0.43192,0.49922,1.884318,-2.724404,-0.701999,
+ 0.601229,-0.111152,0.791308,1.828658,-2.477348,-0.67347,
+ -0.570406,-0.192005,0.798606,1.772999,-2.230292,-0.64494,
+ -0.898389,-0.217201,0.381735,1.677597,-2.237953,-0.696318,
+ 0.601229,-0.111152,0.791308,1.828658,-2.477348,-0.67347,
+ -0.898389,-0.217201,0.381735,1.677597,-2.237953,-0.696318,
+ -0.887036,-0.210048,0.411154,1.756349,-2.446399,-0.705428,
+ -0.587844,-0.244917,-0.771009,1.953911,-2.462233,-0.830594,
+ -0.943599,-0.160394,0.289646,1.947264,-2.443232,-0.732587,
+ -0.062994,-0.00854,0.997977,1.972647,-2.728848,-0.772496,
+ -0.587844,-0.244917,-0.771009,1.953911,-2.462233,-0.830594,
+ -0.062994,-0.00854,0.997977,1.972647,-2.728848,-0.772496,
+ -0.247433,-0.24804,-0.936618,1.994078,-2.713047,-0.824553,
+ -0.924461,-0.213386,0.315973,1.991892,-1.7484,-0.65277,
+ -0.084936,-0.226589,0.97028,1.963153,-1.588839,-0.612861,
+ -0.217942,-0.897186,0.384134,1.721211,-1.590185,-0.601932,
+ -0.924461,-0.213386,0.315973,1.991892,-1.7484,-0.65277,
+ -0.217942,-0.897186,0.384134,1.721211,-1.590185,-0.601932,
+ -0.382074,-0.25681,0.887732,1.740323,-1.67983,-0.664098,
+ -0.914496,-0.253608,0.315247,1.945206,-2.015769,-0.672724,
+ -0.924461,-0.213386,0.315973,1.991892,-1.7484,-0.65277,
+ -0.382074,-0.25681,0.887732,1.740323,-1.67983,-0.664098,
+ -0.914496,-0.253608,0.315247,1.945206,-2.015769,-0.672724,
+ -0.382074,-0.25681,0.887732,1.740323,-1.67983,-0.664098,
+ -0.53197,-0.108751,0.839751,1.747671,-2.067518,-0.638841,
+ 0.972392,0.232654,-0.018037,2.053108,-1.738285,-0.824853,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ -0.084936,-0.226589,0.97028,1.963153,-1.588839,-0.612861,
+ 0.972392,0.232654,-0.018037,2.053108,-1.738285,-0.824853,
+ -0.084936,-0.226589,0.97028,1.963153,-1.588839,-0.612861,
+ -0.924461,-0.213386,0.315973,1.991892,-1.7484,-0.65277,
+ -0.732521,-0.474279,-0.488336,2.047696,-2.050138,-0.814712,
+ 0.972392,0.232654,-0.018037,2.053108,-1.738285,-0.824853,
+ -0.924461,-0.213386,0.315973,1.991892,-1.7484,-0.65277,
+ -0.732521,-0.474279,-0.488336,2.047696,-2.050138,-0.814712,
+ -0.924461,-0.213386,0.315973,1.991892,-1.7484,-0.65277,
+ -0.914496,-0.253608,0.315247,1.945206,-2.015769,-0.672724,
+ -0.845196,-0.27877,-0.455994,2.02453,-2.195334,-0.811284,
+ -0.732521,-0.474279,-0.488336,2.047696,-2.050138,-0.814712,
+ -0.914496,-0.253608,0.315247,1.945206,-2.015769,-0.672724,
+ -0.845196,-0.27877,-0.455994,2.02453,-2.195334,-0.811284,
+ -0.914496,-0.253608,0.315247,1.945206,-2.015769,-0.672724,
+ -0.363523,-0.150625,0.919327,1.921881,-2.157616,-0.692678,
+ -0.587844,-0.244917,-0.771009,1.953911,-2.462233,-0.830594,
+ -0.845196,-0.27877,-0.455994,2.02453,-2.195334,-0.811284,
+ -0.363523,-0.150625,0.919327,1.921881,-2.157616,-0.692678,
+ -0.587844,-0.244917,-0.771009,1.953911,-2.462233,-0.830594,
+ -0.363523,-0.150625,0.919327,1.921881,-2.157616,-0.692678,
+ -0.943599,-0.160394,0.289646,1.947264,-2.443232,-0.732587,
+ -0.239734,-0.173966,-0.955125,2.111557,-1.376942,-0.89657,
+ -0.157802,-0.148625,-0.976222,2.141273,-1.234642,-0.941254,
+ 0.608407,-0.244593,-0.754993,2.158051,-1.209613,-0.783941,
+ -0.239734,-0.173966,-0.955125,2.111557,-1.376942,-0.89657,
+ 0.608407,-0.244593,-0.754993,2.158051,-1.209613,-0.783941,
+ 0.727678,-0.414895,-0.546211,2.126237,-1.330172,-0.721011,
+ -0.498756,-0.2241,-0.83727,2.071448,-1.410118,-1.006192,
+ -0.329905,-0.225598,-0.916661,2.099566,-1.259996,-1.055763,
+ -0.157802,-0.148625,-0.976222,2.141273,-1.234642,-0.941254,
+ -0.498756,-0.2241,-0.83727,2.071448,-1.410118,-1.006192,
+ -0.157802,-0.148625,-0.976222,2.141273,-1.234642,-0.941254,
+ -0.239734,-0.173966,-0.955125,2.111557,-1.376942,-0.89657,
+ -0.759627,-0.28527,-0.584455,1.974215,-1.469208,-1.068951,
+ -0.661097,-0.258238,-0.70446,1.966698,-1.22816,-1.153716,
+ -0.329905,-0.225598,-0.916661,2.099566,-1.259996,-1.055763,
+ -0.759627,-0.28527,-0.584455,1.974215,-1.469208,-1.068951,
+ -0.329905,-0.225598,-0.916661,2.099566,-1.259996,-1.055763,
+ -0.498756,-0.2241,-0.83727,2.071448,-1.410118,-1.006192,
+ -0.672688,-0.442616,-0.592944,1.801794,-1.465464,-1.129277,
+ -0.632119,-0.359381,-0.686491,1.805207,-1.268427,-1.165317,
+ -0.661097,-0.258238,-0.70446,1.966698,-1.22816,-1.153716,
+ -0.672688,-0.442616,-0.592944,1.801794,-1.465464,-1.129277,
+ -0.661097,-0.258238,-0.70446,1.966698,-1.22816,-1.153716,
+ -0.759627,-0.28527,-0.584455,1.974215,-1.469208,-1.068951,
+ 0.954473,-0.270031,-0.126745,1.612396,-1.485728,-1.099731,
+ 0.942118,-0.292663,-0.163592,1.601721,-1.262359,-1.14142,
+ -0.632119,-0.359381,-0.686491,1.805207,-1.268427,-1.165317,
+ 0.954473,-0.270031,-0.126745,1.612396,-1.485728,-1.099731,
+ -0.632119,-0.359381,-0.686491,1.805207,-1.268427,-1.165317,
+ -0.672688,-0.442616,-0.592944,1.801794,-1.465464,-1.129277,
+ 0.80128,-0.303744,-0.515451,1.5167,-1.45305,-1.068516,
+ 0.772916,-0.305378,-0.556189,1.49748,-1.283201,-1.088258,
+ 0.942118,-0.292663,-0.163592,1.601721,-1.262359,-1.14142,
+ 0.80128,-0.303744,-0.515451,1.5167,-1.45305,-1.068516,
+ 0.942118,-0.292663,-0.163592,1.601721,-1.262359,-1.14142,
+ 0.954473,-0.270031,-0.126745,1.612396,-1.485728,-1.099731,
+ 0.441315,-0.29978,-0.845797,1.454817,-1.430228,-0.976569,
+ 0.38578,-0.259547,-0.88533,1.430817,-1.301205,-1.024924,
+ 0.772916,-0.305378,-0.556189,1.49748,-1.283201,-1.088258,
+ 0.441315,-0.29978,-0.845797,1.454817,-1.430228,-0.976569,
+ 0.772916,-0.305378,-0.556189,1.49748,-1.283201,-1.088258,
+ 0.80128,-0.303744,-0.515451,1.5167,-1.45305,-1.068516,
+ 0.080262,-0.270606,-0.959339,1.328862,-1.352627,-0.758733,
+ 0.02992,-0.202031,-0.978922,1.348219,-1.282064,-0.845204,
+ 0.38578,-0.259547,-0.88533,1.430817,-1.301205,-1.024924,
+ 0.080262,-0.270606,-0.959339,1.328862,-1.352627,-0.758733,
+ 0.38578,-0.259547,-0.88533,1.430817,-1.301205,-1.024924,
+ 0.441315,-0.29978,-0.845797,1.454817,-1.430228,-0.976569,
+ -0.157802,-0.148625,-0.976222,2.141273,-1.234642,-0.941254,
+ -0.019419,-0.11596,-0.993064,2.17745,-1.127765,-0.974416,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ -0.157802,-0.148625,-0.976222,2.141273,-1.234642,-0.941254,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ 0.608407,-0.244593,-0.754993,2.158051,-1.209613,-0.783941,
+ -0.329905,-0.225598,-0.916661,2.099566,-1.259996,-1.055763,
+ -0.182029,-0.190207,-0.964721,2.148553,-1.103067,-1.06541,
+ -0.019419,-0.11596,-0.993064,2.17745,-1.127765,-0.974416,
+ -0.329905,-0.225598,-0.916661,2.099566,-1.259996,-1.055763,
+ -0.019419,-0.11596,-0.993064,2.17745,-1.127765,-0.974416,
+ -0.157802,-0.148625,-0.976222,2.141273,-1.234642,-0.941254,
+ -0.661097,-0.258238,-0.70446,1.966698,-1.22816,-1.153716,
+ -0.571338,-0.120921,-0.811758,2.024692,-1.074646,-1.172465,
+ -0.182029,-0.190207,-0.964721,2.148553,-1.103067,-1.06541,
+ -0.661097,-0.258238,-0.70446,1.966698,-1.22816,-1.153716,
+ -0.182029,-0.190207,-0.964721,2.148553,-1.103067,-1.06541,
+ -0.329905,-0.225598,-0.916661,2.099566,-1.259996,-1.055763,
+ -0.632119,-0.359381,-0.686491,1.805207,-1.268427,-1.165317,
+ -0.587909,-0.233166,-0.774594,1.838895,-1.087204,-1.201408,
+ -0.571338,-0.120921,-0.811758,2.024692,-1.074646,-1.172465,
+ -0.632119,-0.359381,-0.686491,1.805207,-1.268427,-1.165317,
+ -0.571338,-0.120921,-0.811758,2.024692,-1.074646,-1.172465,
+ -0.661097,-0.258238,-0.70446,1.966698,-1.22816,-1.153716,
+ 0.942118,-0.292663,-0.163592,1.601721,-1.262359,-1.14142,
+ 0.924702,-0.311562,-0.218757,1.645819,-1.087442,-1.173773,
+ -0.587909,-0.233166,-0.774594,1.838895,-1.087204,-1.201408,
+ 0.942118,-0.292663,-0.163592,1.601721,-1.262359,-1.14142,
+ -0.587909,-0.233166,-0.774594,1.838895,-1.087204,-1.201408,
+ -0.632119,-0.359381,-0.686491,1.805207,-1.268427,-1.165317,
+ 0.772916,-0.305378,-0.556189,1.49748,-1.283201,-1.088258,
+ 0.73827,-0.277136,-0.614942,1.524407,-1.125312,-1.142248,
+ 0.924702,-0.311562,-0.218757,1.645819,-1.087442,-1.173773,
+ 0.772916,-0.305378,-0.556189,1.49748,-1.283201,-1.088258,
+ 0.924702,-0.311562,-0.218757,1.645819,-1.087442,-1.173773,
+ 0.942118,-0.292663,-0.163592,1.601721,-1.262359,-1.14142,
+ 0.38578,-0.259547,-0.88533,1.430817,-1.301205,-1.024924,
+ 0.366416,-0.175098,-0.913827,1.438439,-1.148029,-1.098069,
+ 0.73827,-0.277136,-0.614942,1.524407,-1.125312,-1.142248,
+ 0.38578,-0.259547,-0.88533,1.430817,-1.301205,-1.024924,
+ 0.73827,-0.277136,-0.614942,1.524407,-1.125312,-1.142248,
+ 0.772916,-0.305378,-0.556189,1.49748,-1.283201,-1.088258,
+ 0.02992,-0.202031,-0.978922,1.348219,-1.282064,-0.845204,
+ 0.023392,-0.110333,-0.993619,1.310865,-1.136322,-0.914838,
+ 0.366416,-0.175098,-0.913827,1.438439,-1.148029,-1.098069,
+ 0.02992,-0.202031,-0.978922,1.348219,-1.282064,-0.845204,
+ 0.366416,-0.175098,-0.913827,1.438439,-1.148029,-1.098069,
+ 0.38578,-0.259547,-0.88533,1.430817,-1.301205,-1.024924,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ 0.437631,-0.408484,-0.801012,2.0796,-1.473377,-0.654997,
+ 0.552828,-0.750794,-0.36151,2.0482,-1.581983,-0.555832,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ 0.552828,-0.750794,-0.36151,2.0482,-1.581983,-0.555832,
+ -0.084936,-0.226589,0.97028,1.963153,-1.588839,-0.612861,
+ 0.051664,-0.122235,-0.991156,1.804927,-1.581954,-1.089198,
+ -0.211092,-0.082708,-0.973961,1.650318,-1.645881,-1.053347,
+ 0.954473,-0.270031,-0.126745,1.612396,-1.485728,-1.099731,
+ 0.051664,-0.122235,-0.991156,1.804927,-1.581954,-1.089198,
+ 0.954473,-0.270031,-0.126745,1.612396,-1.485728,-1.099731,
+ -0.672688,-0.442616,-0.592944,1.801794,-1.465464,-1.129277,
+ 0.290478,-0.146424,-0.945612,1.937009,-1.625419,-1.026843,
+ 0.051664,-0.122235,-0.991156,1.804927,-1.581954,-1.089198,
+ -0.672688,-0.442616,-0.592944,1.801794,-1.465464,-1.129277,
+ 0.290478,-0.146424,-0.945612,1.937009,-1.625419,-1.026843,
+ -0.672688,-0.442616,-0.592944,1.801794,-1.465464,-1.129277,
+ -0.759627,-0.28527,-0.584455,1.974215,-1.469208,-1.068951,
+ 0.74023,-0.090866,-0.666185,2.036036,-1.57908,-0.967151,
+ 0.290478,-0.146424,-0.945612,1.937009,-1.625419,-1.026843,
+ -0.759627,-0.28527,-0.584455,1.974215,-1.469208,-1.068951,
+ 0.74023,-0.090866,-0.666185,2.036036,-1.57908,-0.967151,
+ -0.759627,-0.28527,-0.584455,1.974215,-1.469208,-1.068951,
+ -0.498756,-0.2241,-0.83727,2.071448,-1.410118,-1.006192,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ 0.74023,-0.090866,-0.666185,2.036036,-1.57908,-0.967151,
+ -0.498756,-0.2241,-0.83727,2.071448,-1.410118,-1.006192,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ -0.498756,-0.2241,-0.83727,2.071448,-1.410118,-1.006192,
+ -0.239734,-0.173966,-0.955125,2.111557,-1.376942,-0.89657,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ -0.239734,-0.173966,-0.955125,2.111557,-1.376942,-0.89657,
+ 0.727678,-0.414895,-0.546211,2.126237,-1.330172,-0.721011,
+ 0.999491,-0.02584,-0.01873,2.059844,-1.561331,-0.858957,
+ 0.727678,-0.414895,-0.546211,2.126237,-1.330172,-0.721011,
+ 0.437631,-0.408484,-0.801012,2.0796,-1.473377,-0.654997,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ -0.019419,-0.11596,-0.993064,2.17745,-1.127765,-0.974416,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ 0.70745,-0.193334,-0.679806,2.180012,-1.130557,-0.821812,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ -0.012663,0.029084,-0.999497,2.229345,-0.992723,-0.862826,
+ -0.587909,-0.233166,-0.774594,1.838895,-1.087204,-1.201408,
+ 0.924702,-0.311562,-0.218757,1.645819,-1.087442,-1.173773,
+ 0.859237,-0.17312,-0.481395,1.635139,-0.965221,-1.184968,
+ -0.587909,-0.233166,-0.774594,1.838895,-1.087204,-1.201408,
+ 0.859237,-0.17312,-0.481395,1.635139,-0.965221,-1.184968,
+ -0.942755,-0.29871,0.148273,1.867657,-0.920633,-1.206933,
+ -0.571338,-0.120921,-0.811758,2.024692,-1.074646,-1.172465,
+ -0.587909,-0.233166,-0.774594,1.838895,-1.087204,-1.201408,
+ -0.942755,-0.29871,0.148273,1.867657,-0.920633,-1.206933,
+ -0.571338,-0.120921,-0.811758,2.024692,-1.074646,-1.172465,
+ -0.942755,-0.29871,0.148273,1.867657,-0.920633,-1.206933,
+ -0.965506,-0.176768,0.191185,2.058189,-0.931238,-1.163518,
+ -0.182029,-0.190207,-0.964721,2.148553,-1.103067,-1.06541,
+ -0.571338,-0.120921,-0.811758,2.024692,-1.074646,-1.172465,
+ -0.965506,-0.176768,0.191185,2.058189,-0.931238,-1.163518,
+ -0.182029,-0.190207,-0.964721,2.148553,-1.103067,-1.06541,
+ -0.965506,-0.176768,0.191185,2.058189,-0.931238,-1.163518,
+ -0.809154,0.004832,-0.587577,2.158585,-0.955809,-1.113647,
+ -0.019419,-0.11596,-0.993064,2.17745,-1.127765,-0.974416,
+ -0.182029,-0.190207,-0.964721,2.148553,-1.103067,-1.06541,
+ -0.809154,0.004832,-0.587577,2.158585,-0.955809,-1.113647,
+ -0.019419,-0.11596,-0.993064,2.17745,-1.127765,-0.974416,
+ -0.809154,0.004832,-0.587577,2.158585,-0.955809,-1.113647,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ 0.080262,-0.270606,-0.959339,1.328862,-1.352627,-0.758733,
+ 0.441315,-0.29978,-0.845797,1.454817,-1.430228,-0.976569,
+ -0.970971,-0.219011,-0.096178,1.480629,-1.640132,-0.953447,
+ 0.080262,-0.270606,-0.959339,1.328862,-1.352627,-0.758733,
+ -0.970971,-0.219011,-0.096178,1.480629,-1.640132,-0.953447,
+ -0.794709,-0.185222,0.578041,1.451825,-1.576856,-0.702758,
+ 0.045651,-0.004499,-0.998947,1.337875,-0.945716,-1.021299,
+ 0.419396,-0.035927,-0.907092,1.428883,-0.98669,-1.133905,
+ 0.366416,-0.175098,-0.913827,1.438439,-1.148029,-1.098069,
+ 0.045651,-0.004499,-0.998947,1.337875,-0.945716,-1.021299,
+ 0.366416,-0.175098,-0.913827,1.438439,-1.148029,-1.098069,
+ 0.023392,-0.110333,-0.993619,1.310865,-1.136322,-0.914838,
+ 0.80128,-0.303744,-0.515451,1.5167,-1.45305,-1.068516,
+ 0.954473,-0.270031,-0.126745,1.612396,-1.485728,-1.099731,
+ -0.211092,-0.082708,-0.973961,1.650318,-1.645881,-1.053347,
+ 0.80128,-0.303744,-0.515451,1.5167,-1.45305,-1.068516,
+ -0.211092,-0.082708,-0.973961,1.650318,-1.645881,-1.053347,
+ -0.652584,-0.147678,-0.743186,1.54175,-1.643613,-1.01419,
+ 0.441315,-0.29978,-0.845797,1.454817,-1.430228,-0.976569,
+ 0.80128,-0.303744,-0.515451,1.5167,-1.45305,-1.068516,
+ -0.652584,-0.147678,-0.743186,1.54175,-1.643613,-1.01419,
+ 0.441315,-0.29978,-0.845797,1.454817,-1.430228,-0.976569,
+ -0.652584,-0.147678,-0.743186,1.54175,-1.643613,-1.01419,
+ -0.970971,-0.219011,-0.096178,1.480629,-1.640132,-0.953447,
+ 0.714393,-0.109998,-0.691045,1.536037,-0.985876,-1.185597,
+ 0.859237,-0.17312,-0.481395,1.635139,-0.965221,-1.184968,
+ 0.924702,-0.311562,-0.218757,1.645819,-1.087442,-1.173773,
+ 0.714393,-0.109998,-0.691045,1.536037,-0.985876,-1.185597,
+ 0.924702,-0.311562,-0.218757,1.645819,-1.087442,-1.173773,
+ 0.73827,-0.277136,-0.614942,1.524407,-1.125312,-1.142248,
+ 0.419396,-0.035927,-0.907092,1.428883,-0.98669,-1.133905,
+ 0.714393,-0.109998,-0.691045,1.536037,-0.985876,-1.185597,
+ 0.73827,-0.277136,-0.614942,1.524407,-1.125312,-1.142248,
+ 0.419396,-0.035927,-0.907092,1.428883,-0.98669,-1.133905,
+ 0.73827,-0.277136,-0.614942,1.524407,-1.125312,-1.142248,
+ 0.366416,-0.175098,-0.913827,1.438439,-1.148029,-1.098069,
+ 0.261393,-0.399072,-0.878872,3.233975,2.059193,-0.072431,
+ 0.441787,-0.375177,-0.814903,3.009101,1.971604,-0.03422,
+ 0.889638,-0.392482,0.233458,2.985371,1.982663,0,
+ 0.261393,-0.399072,-0.878872,3.233975,2.059193,-0.072431,
+ 0.889638,-0.392482,0.233458,2.985371,1.982663,0,
+ -0.861251,0.383698,-0.333202,3.247406,2.073333,0,
+ 0.428291,-0.499911,-0.752765,3.252224,2.026347,-0.148215,
+ 0.483908,-0.405185,-0.775667,3.036361,1.913989,-0.169838,
+ 0.441787,-0.375177,-0.814903,3.009101,1.971604,-0.03422,
+ 0.428291,-0.499911,-0.752765,3.252224,2.026347,-0.148215,
+ 0.441787,-0.375177,-0.814903,3.009101,1.971604,-0.03422,
+ 0.261393,-0.399072,-0.878872,3.233975,2.059193,-0.072431,
+ 0.454048,-0.464454,-0.760344,3.276333,1.863773,-0.294266,
+ 0.482381,-0.398126,-0.780259,3.058366,1.773346,-0.297337,
+ 0.483908,-0.405185,-0.775667,3.036361,1.913989,-0.169838,
+ 0.454048,-0.464454,-0.760344,3.276333,1.863773,-0.294266,
+ 0.483908,-0.405185,-0.775667,3.036361,1.913989,-0.169838,
+ 0.428291,-0.499911,-0.752765,3.252224,2.026347,-0.148215,
+ 0.673211,-0.58089,-0.457551,3.337545,1.748927,-0.34021,
+ 0.702554,-0.570096,-0.42592,3.086666,1.632991,-0.338863,
+ 0.482381,-0.398126,-0.780259,3.058366,1.773346,-0.297337,
+ 0.673211,-0.58089,-0.457551,3.337545,1.748927,-0.34021,
+ 0.482381,-0.398126,-0.780259,3.058366,1.773346,-0.297337,
+ 0.454048,-0.464454,-0.760344,3.276333,1.863773,-0.294266,
+ -0.384424,0.863444,-0.326623,3.377233,1.5878,-0.400781,
+ -0.317114,0.866865,-0.384686,3.115383,1.49239,-0.380228,
+ 0.702554,-0.570096,-0.42592,3.086666,1.632991,-0.338863,
+ -0.384424,0.863444,-0.326623,3.377233,1.5878,-0.400781,
+ 0.702554,-0.570096,-0.42592,3.086666,1.632991,-0.338863,
+ 0.673211,-0.58089,-0.457551,3.337545,1.748927,-0.34021,
+ -0.354832,0.724971,-0.590348,3.47341,1.366149,-0.454658,
+ -0.273708,0.760234,-0.589175,3.163181,1.209972,-0.462438,
+ -0.317114,0.866865,-0.384686,3.115383,1.49239,-0.380228,
+ -0.354832,0.724971,-0.590348,3.47341,1.366149,-0.454658,
+ -0.317114,0.866865,-0.384686,3.115383,1.49239,-0.380228,
+ -0.384424,0.863444,-0.326623,3.377233,1.5878,-0.400781,
+ -0.270788,0.46353,-0.84369,3.528445,1.060127,-0.489443,
+ -0.158888,0.47696,-0.864444,3.189664,0.907503,-0.500122,
+ -0.273708,0.760234,-0.589175,3.163181,1.209972,-0.462438,
+ -0.270788,0.46353,-0.84369,3.528445,1.060127,-0.489443,
+ -0.273708,0.760234,-0.589175,3.163181,1.209972,-0.462438,
+ -0.354832,0.724971,-0.590348,3.47341,1.366149,-0.454658,
+ -0.203969,0.261593,-0.94338,3.559394,0.706516,-0.452535,
+ -0.095989,0.297871,-0.949768,3.280681,0.510802,-0.499434,
+ -0.158888,0.47696,-0.864444,3.189664,0.907503,-0.500122,
+ -0.203969,0.261593,-0.94338,3.559394,0.706516,-0.452535,
+ -0.158888,0.47696,-0.864444,3.189664,0.907503,-0.500122,
+ -0.270788,0.46353,-0.84369,3.528445,1.060127,-0.489443,
+ -0.175197,0.22468,-0.958553,3.61965,0.472046,-0.391742,
+ -0.078774,0.27578,-0.957987,3.321825,0.26669,-0.46575,
+ -0.095989,0.297871,-0.949768,3.280681,0.510802,-0.499434,
+ -0.175197,0.22468,-0.958553,3.61965,0.472046,-0.391742,
+ -0.095989,0.297871,-0.949768,3.280681,0.510802,-0.499434,
+ -0.203969,0.261593,-0.94338,3.559394,0.706516,-0.452535,
+ -0.128537,0.152973,-0.979835,3.641195,0.407454,-0.362198,
+ -0.027323,0.180938,-0.983115,3.36004,0.165487,-0.412685,
+ -0.078774,0.27578,-0.957987,3.321825,0.26669,-0.46575,
+ -0.128537,0.152973,-0.979835,3.641195,0.407454,-0.362198,
+ -0.078774,0.27578,-0.957987,3.321825,0.26669,-0.46575,
+ -0.175197,0.22468,-0.958553,3.61965,0.472046,-0.391742,
+ -0.023695,0.006701,-0.999697,3.67471,0.338839,-0.30784,
+ 0.065337,0.07376,-0.995133,3.378799,0.073736,-0.355362,
+ -0.027323,0.180938,-0.983115,3.36004,0.165487,-0.412685,
+ -0.023695,0.006701,-0.999697,3.67471,0.338839,-0.30784,
+ -0.027323,0.180938,-0.983115,3.36004,0.165487,-0.412685,
+ -0.128537,0.152973,-0.979835,3.641195,0.407454,-0.362198,
+ 0.144017,-0.141696,-0.979378,3.700363,0.265794,-0.240762,
+ 0.226651,-0.023678,-0.973688,3.43895,-0.08258,-0.257015,
+ 0.065337,0.07376,-0.995133,3.378799,0.073736,-0.355362,
+ 0.144017,-0.141696,-0.979378,3.700363,0.265794,-0.240762,
+ 0.065337,0.07376,-0.995133,3.378799,0.073736,-0.355362,
+ -0.023695,0.006701,-0.999697,3.67471,0.338839,-0.30784,
+ 0.325831,-0.277459,-0.903798,3.737014,0.181837,-0.176819,
+ 0.383941,-0.196382,-0.902232,3.514981,-0.121886,-0.187589,
+ 0.226651,-0.023678,-0.973688,3.43895,-0.08258,-0.257015,
+ 0.325831,-0.277459,-0.903798,3.737014,0.181837,-0.176819,
+ 0.226651,-0.023678,-0.973688,3.43895,-0.08258,-0.257015,
+ 0.144017,-0.141696,-0.979378,3.700363,0.265794,-0.240762,
+ -0.910859,-0.100368,-0.400327,3.731689,0.186391,0,
+ 0.431966,-0.771434,0.46722,3.486028,-0.141683,0,
+ 0.383941,-0.196382,-0.902232,3.514981,-0.121886,-0.187589,
+ -0.910859,-0.100368,-0.400327,3.731689,0.186391,0,
+ 0.383941,-0.196382,-0.902232,3.514981,-0.121886,-0.187589,
+ 0.325831,-0.277459,-0.903798,3.737014,0.181837,-0.176819,
+ 0.431966,-0.771434,-0.46722,3.71636,2.343387,0,
+ -0.451389,0.892327,-0.00019,3.727093,2.308406,-0.150049,
+ 0.020519,-0.282941,-0.958918,3.4583,2.151656,-0.102662,
+ 0.431966,-0.771434,-0.46722,3.71636,2.343387,0,
+ 0.020519,-0.282941,-0.958918,3.4583,2.151656,-0.102662,
+ 0.694153,-0.467999,0.546926,3.454971,2.169877,0,
+ -0.086812,-0.050981,-0.994919,4.120842,0.627141,-0.185461,
+ -0.926486,-0.356041,-0.121897,4.126565,0.642027,0,
+ 0.338485,-0.103202,-0.935295,3.929251,0.411689,0,
+ -0.086812,-0.050981,-0.994919,4.120842,0.627141,-0.185461,
+ 0.338485,-0.103202,-0.935295,3.929251,0.411689,0,
+ 0.07924,-0.231862,-0.969516,3.955635,0.432417,-0.197586,
+ -0.086812,-0.050981,-0.994919,4.120842,0.627141,-0.185461,
+ 0.07924,-0.231862,-0.969516,3.955635,0.432417,-0.197586,
+ -0.081635,-0.03459,-0.996062,3.889626,0.475277,-0.247365,
+ -0.172151,0.101796,-0.979797,4.105198,0.672581,-0.300001,
+ -0.086812,-0.050981,-0.994919,4.120842,0.627141,-0.185461,
+ -0.081635,-0.03459,-0.996062,3.889626,0.475277,-0.247365,
+ -0.172151,0.101796,-0.979797,4.105198,0.672581,-0.300001,
+ -0.081635,-0.03459,-0.996062,3.889626,0.475277,-0.247365,
+ -0.178707,0.132414,-0.974951,3.861841,0.560638,-0.311961,
+ -0.195132,0.128745,-0.97229,4.068249,0.798926,-0.400813,
+ -0.172151,0.101796,-0.979797,4.105198,0.672581,-0.300001,
+ -0.178707,0.132414,-0.974951,3.861841,0.560638,-0.311961,
+ -0.195132,0.128745,-0.97229,4.068249,0.798926,-0.400813,
+ -0.178707,0.132414,-0.974951,3.861841,0.560638,-0.311961,
+ -0.21777,0.161093,-0.962614,3.849352,0.664451,-0.387198,
+ -0.434016,0.136262,-0.890541,4.041657,1.039756,-0.496922,
+ -0.195132,0.128745,-0.97229,4.068249,0.798926,-0.400813,
+ -0.21777,0.161093,-0.962614,3.849352,0.664451,-0.387198,
+ -0.434016,0.136262,-0.890541,4.041657,1.039756,-0.496922,
+ -0.21777,0.161093,-0.962614,3.849352,0.664451,-0.387198,
+ -0.273816,0.228927,-0.93414,3.823137,0.853054,-0.461519,
+ -0.601466,0.441167,-0.666041,3.98851,1.297806,-0.539537,
+ -0.434016,0.136262,-0.890541,4.041657,1.039756,-0.496922,
+ -0.273816,0.228927,-0.93414,3.823137,0.853054,-0.461519,
+ -0.601466,0.441167,-0.666041,3.98851,1.297806,-0.539537,
+ -0.273816,0.228927,-0.93414,3.823137,0.853054,-0.461519,
+ -0.385487,0.478576,-0.788901,3.747724,1.184933,-0.518662,
+ -0.571598,0.654164,-0.495323,3.886058,1.550141,-0.50483,
+ -0.601466,0.441167,-0.666041,3.98851,1.297806,-0.539537,
+ -0.385487,0.478576,-0.788901,3.747724,1.184933,-0.518662,
+ -0.571598,0.654164,-0.495323,3.886058,1.550141,-0.50483,
+ -0.385487,0.478576,-0.788901,3.747724,1.184933,-0.518662,
+ -0.447812,0.698934,-0.557634,3.650974,1.46374,-0.478617,
+ -0.564871,0.754993,-0.333026,3.881998,1.764428,-0.476337,
+ -0.571598,0.654164,-0.495323,3.886058,1.550141,-0.50483,
+ -0.447812,0.698934,-0.557634,3.650974,1.46374,-0.478617,
+ -0.564871,0.754993,-0.333026,3.881998,1.764428,-0.476337,
+ -0.447812,0.698934,-0.557634,3.650974,1.46374,-0.478617,
+ -0.463441,0.825581,-0.321928,3.590526,1.70109,-0.411994,
+ -0.512639,0.858604,-0.000762,3.814876,1.968416,-0.443,
+ -0.564871,0.754993,-0.333026,3.881998,1.764428,-0.476337,
+ -0.463441,0.825581,-0.321928,3.590526,1.70109,-0.411994,
+ -0.512639,0.858604,-0.000762,3.814876,1.968416,-0.443,
+ -0.463441,0.825581,-0.321928,3.590526,1.70109,-0.411994,
+ 0.492397,-0.77993,-0.386336,3.541188,1.849183,-0.386366,
+ -0.698288,0.715816,-0.000608,3.758215,2.206683,-0.323051,
+ -0.512639,0.858604,-0.000762,3.814876,1.968416,-0.443,
+ 0.492397,-0.77993,-0.386336,3.541188,1.849183,-0.386366,
+ -0.698288,0.715816,-0.000608,3.758215,2.206683,-0.323051,
+ 0.492397,-0.77993,-0.386336,3.541188,1.849183,-0.386366,
+ 0.313443,-0.691245,-0.651102,3.479418,1.97825,-0.317478,
+ -0.777939,0.62834,-0.000226,3.745669,2.266001,-0.24193,
+ -0.698288,0.715816,-0.000608,3.758215,2.206683,-0.323051,
+ 0.313443,-0.691245,-0.651102,3.479418,1.97825,-0.317478,
+ -0.777939,0.62834,-0.000226,3.745669,2.266001,-0.24193,
+ 0.313443,-0.691245,-0.651102,3.479418,1.97825,-0.317478,
+ 0.161194,-0.480657,-0.861966,3.460196,2.103494,-0.180368,
+ -0.451389,0.892327,-0.00019,3.727093,2.308406,-0.150049,
+ -0.777939,0.62834,-0.000226,3.745669,2.266001,-0.24193,
+ 0.161194,-0.480657,-0.861966,3.460196,2.103494,-0.180368,
+ -0.451389,0.892327,-0.00019,3.727093,2.308406,-0.150049,
+ 0.161194,-0.480657,-0.861966,3.460196,2.103494,-0.180368,
+ 0.020519,-0.282941,-0.958918,3.4583,2.151656,-0.102662,
+ -0.476715,0.879058,0,3.118124,-0.703925,0,
+ 0.533629,-0.162705,-0.82992,3.107533,-0.691019,-0.264602,
+ 0.445439,-0.182623,-0.876489,3.342159,-0.384674,-0.201349,
+ -0.476715,0.879058,0,3.118124,-0.703925,0,
+ 0.445439,-0.182623,-0.876489,3.342159,-0.384674,-0.201349,
+ -0.560204,0.828355,-0.00034,3.33521,-0.375755,0,
+ 0.474213,-0.311965,-0.823286,2.361089,1.76666,-0.202595,
+ 0.536218,-0.84408,0.000006,2.339597,1.807702,0,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.474213,-0.311965,-0.823286,2.361089,1.76666,-0.202595,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.45552,-0.330524,-0.826593,2.715712,1.828219,-0.167709,
+ 0.488174,-0.280956,-0.826287,2.406969,1.645328,-0.341479,
+ 0.474213,-0.311965,-0.823286,2.361089,1.76666,-0.202595,
+ 0.45552,-0.330524,-0.826593,2.715712,1.828219,-0.167709,
+ 0.488174,-0.280956,-0.826287,2.406969,1.645328,-0.341479,
+ 0.45552,-0.330524,-0.826593,2.715712,1.828219,-0.167709,
+ 0.489736,-0.346185,-0.800197,2.738132,1.687333,-0.295046,
+ 0.531574,-0.288506,-0.796362,2.519027,1.485931,-0.422962,
+ 0.488174,-0.280956,-0.826287,2.406969,1.645328,-0.341479,
+ 0.489736,-0.346185,-0.800197,2.738132,1.687333,-0.295046,
+ 0.531574,-0.288506,-0.796362,2.519027,1.485931,-0.422962,
+ 0.489736,-0.346185,-0.800197,2.738132,1.687333,-0.295046,
+ 0.5205,-0.336657,-0.784692,2.77568,1.53871,-0.352829,
+ 0.769657,-0.480833,-0.420033,2.553871,1.284278,-0.512335,
+ 0.531574,-0.288506,-0.796362,2.519027,1.485931,-0.422962,
+ 0.5205,-0.336657,-0.784692,2.77568,1.53871,-0.352829,
+ 0.769657,-0.480833,-0.420033,2.553871,1.284278,-0.512335,
+ 0.5205,-0.336657,-0.784692,2.77568,1.53871,-0.352829,
+ 0.760747,-0.509474,-0.40212,2.815366,1.377583,-0.413399,
+ -0.080985,0.883253,-0.461851,2.637461,1.01726,-0.581611,
+ 0.769657,-0.480833,-0.420033,2.553871,1.284278,-0.512335,
+ 0.760747,-0.509474,-0.40212,2.815366,1.377583,-0.413399,
+ -0.080985,0.883253,-0.461851,2.637461,1.01726,-0.581611,
+ 0.760747,-0.509474,-0.40212,2.815366,1.377583,-0.413399,
+ -0.16423,0.819635,-0.548842,2.854291,1.093951,-0.49465,
+ 0.040193,0.650965,-0.758043,2.747937,0.712253,-0.615674,
+ -0.080985,0.883253,-0.461851,2.637461,1.01726,-0.581611,
+ -0.16423,0.819635,-0.548842,2.854291,1.093951,-0.49465,
+ 0.040193,0.650965,-0.758043,2.747937,0.712253,-0.615674,
+ -0.16423,0.819635,-0.548842,2.854291,1.093951,-0.49465,
+ -0.043323,0.541029,-0.839887,2.948387,0.783357,-0.515058,
+ 0.177367,0.480226,-0.859025,2.811504,0.469098,-0.657443,
+ 0.040193,0.650965,-0.758043,2.747937,0.712253,-0.615674,
+ -0.043323,0.541029,-0.839887,2.948387,0.783357,-0.515058,
+ 0.177367,0.480226,-0.859025,2.811504,0.469098,-0.657443,
+ -0.043323,0.541029,-0.839887,2.948387,0.783357,-0.515058,
+ 0.04432,0.372862,-0.926828,3.06109,0.397226,-0.574193,
+ 0.288711,0.386915,-0.875753,2.898733,0.271916,-0.651298,
+ 0.177367,0.480226,-0.859025,2.811504,0.469098,-0.657443,
+ 0.04432,0.372862,-0.926828,3.06109,0.397226,-0.574193,
+ 0.41428,0.318289,-0.852681,2.91987,0.084875,-0.64246,
+ 0.288711,0.386915,-0.875753,2.898733,0.271916,-0.651298,
+ 0.04432,0.372862,-0.926828,3.06109,0.397226,-0.574193,
+ 0.41428,0.318289,-0.852681,2.91987,0.084875,-0.64246,
+ 0.04432,0.372862,-0.926828,3.06109,0.397226,-0.574193,
+ 0.098376,0.32868,-0.939304,3.136321,0.171237,-0.539896,
+ 0.519338,0.264458,-0.812619,2.953029,-0.12769,-0.520499,
+ 0.41428,0.318289,-0.852681,2.91987,0.084875,-0.64246,
+ 0.098376,0.32868,-0.939304,3.136321,0.171237,-0.539896,
+ 0.519338,0.264458,-0.812619,2.953029,-0.12769,-0.520499,
+ 0.098376,0.32868,-0.939304,3.136321,0.171237,-0.539896,
+ 0.159882,0.223439,-0.961516,3.16616,0.02131,-0.457261,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.519338,0.264458,-0.812619,2.953029,-0.12769,-0.520499,
+ 0.159882,0.223439,-0.961516,3.16616,0.02131,-0.457261,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.159882,0.223439,-0.961516,3.16616,0.02131,-0.457261,
+ 0.224429,0.165293,-0.96037,3.199571,-0.153739,-0.38015,
+ 0.449624,0.075438,-0.890027,3.053144,-0.609681,-0.326931,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.224429,0.165293,-0.96037,3.199571,-0.153739,-0.38015,
+ 0.449624,0.075438,-0.890027,3.053144,-0.609681,-0.326931,
+ 0.224429,0.165293,-0.96037,3.199571,-0.153739,-0.38015,
+ 0.331391,0.08899,-0.939287,3.286426,-0.300744,-0.276331,
+ 0.533629,-0.162705,-0.82992,3.107533,-0.691019,-0.264602,
+ 0.449624,0.075438,-0.890027,3.053144,-0.609681,-0.326931,
+ 0.331391,0.08899,-0.939287,3.286426,-0.300744,-0.276331,
+ 0.533629,-0.162705,-0.82992,3.107533,-0.691019,-0.264602,
+ 0.331391,0.08899,-0.939287,3.286426,-0.300744,-0.276331,
+ 0.445439,-0.182623,-0.876489,3.342159,-0.384674,-0.201349,
+ 0.694153,-0.467999,0.546926,3.454971,2.169877,0,
+ 0.020519,-0.282941,-0.958918,3.4583,2.151656,-0.102662,
+ 0.261393,-0.399072,-0.878872,3.233975,2.059193,-0.072431,
+ 0.694153,-0.467999,0.546926,3.454971,2.169877,0,
+ 0.261393,-0.399072,-0.878872,3.233975,2.059193,-0.072431,
+ -0.861251,0.383698,-0.333202,3.247406,2.073333,0,
+ -0.560204,0.828355,-0.00034,3.33521,-0.375755,0,
+ 0.445439,-0.182623,-0.876489,3.342159,-0.384674,-0.201349,
+ 0.383941,-0.196382,-0.902232,3.514981,-0.121886,-0.187589,
+ -0.560204,0.828355,-0.00034,3.33521,-0.375755,0,
+ 0.383941,-0.196382,-0.902232,3.514981,-0.121886,-0.187589,
+ 0.431966,-0.771434,0.46722,3.486028,-0.141683,0,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.889638,-0.392482,0.233458,2.985371,1.982663,0,
+ 0.441787,-0.375177,-0.814903,3.009101,1.971604,-0.03422,
+ 0.45552,-0.330524,-0.826593,2.715712,1.828219,-0.167709,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.441787,-0.375177,-0.814903,3.009101,1.971604,-0.03422,
+ 0.45552,-0.330524,-0.826593,2.715712,1.828219,-0.167709,
+ 0.441787,-0.375177,-0.814903,3.009101,1.971604,-0.03422,
+ 0.483908,-0.405185,-0.775667,3.036361,1.913989,-0.169838,
+ 0.489736,-0.346185,-0.800197,2.738132,1.687333,-0.295046,
+ 0.45552,-0.330524,-0.826593,2.715712,1.828219,-0.167709,
+ 0.483908,-0.405185,-0.775667,3.036361,1.913989,-0.169838,
+ 0.489736,-0.346185,-0.800197,2.738132,1.687333,-0.295046,
+ 0.483908,-0.405185,-0.775667,3.036361,1.913989,-0.169838,
+ 0.482381,-0.398126,-0.780259,3.058366,1.773346,-0.297337,
+ 0.5205,-0.336657,-0.784692,2.77568,1.53871,-0.352829,
+ 0.489736,-0.346185,-0.800197,2.738132,1.687333,-0.295046,
+ 0.482381,-0.398126,-0.780259,3.058366,1.773346,-0.297337,
+ 0.5205,-0.336657,-0.784692,2.77568,1.53871,-0.352829,
+ 0.482381,-0.398126,-0.780259,3.058366,1.773346,-0.297337,
+ 0.702554,-0.570096,-0.42592,3.086666,1.632991,-0.338863,
+ 0.760747,-0.509474,-0.40212,2.815366,1.377583,-0.413399,
+ 0.5205,-0.336657,-0.784692,2.77568,1.53871,-0.352829,
+ 0.702554,-0.570096,-0.42592,3.086666,1.632991,-0.338863,
+ 0.760747,-0.509474,-0.40212,2.815366,1.377583,-0.413399,
+ 0.702554,-0.570096,-0.42592,3.086666,1.632991,-0.338863,
+ -0.317114,0.866865,-0.384686,3.115383,1.49239,-0.380228,
+ -0.16423,0.819635,-0.548842,2.854291,1.093951,-0.49465,
+ 0.760747,-0.509474,-0.40212,2.815366,1.377583,-0.413399,
+ -0.317114,0.866865,-0.384686,3.115383,1.49239,-0.380228,
+ -0.16423,0.819635,-0.548842,2.854291,1.093951,-0.49465,
+ -0.317114,0.866865,-0.384686,3.115383,1.49239,-0.380228,
+ -0.273708,0.760234,-0.589175,3.163181,1.209972,-0.462438,
+ -0.043323,0.541029,-0.839887,2.948387,0.783357,-0.515058,
+ -0.16423,0.819635,-0.548842,2.854291,1.093951,-0.49465,
+ -0.273708,0.760234,-0.589175,3.163181,1.209972,-0.462438,
+ -0.043323,0.541029,-0.839887,2.948387,0.783357,-0.515058,
+ -0.273708,0.760234,-0.589175,3.163181,1.209972,-0.462438,
+ -0.158888,0.47696,-0.864444,3.189664,0.907503,-0.500122,
+ 0.04432,0.372862,-0.926828,3.06109,0.397226,-0.574193,
+ -0.043323,0.541029,-0.839887,2.948387,0.783357,-0.515058,
+ -0.158888,0.47696,-0.864444,3.189664,0.907503,-0.500122,
+ 0.04432,0.372862,-0.926828,3.06109,0.397226,-0.574193,
+ -0.158888,0.47696,-0.864444,3.189664,0.907503,-0.500122,
+ -0.095989,0.297871,-0.949768,3.280681,0.510802,-0.499434,
+ 0.098376,0.32868,-0.939304,3.136321,0.171237,-0.539896,
+ 0.04432,0.372862,-0.926828,3.06109,0.397226,-0.574193,
+ -0.095989,0.297871,-0.949768,3.280681,0.510802,-0.499434,
+ 0.098376,0.32868,-0.939304,3.136321,0.171237,-0.539896,
+ -0.095989,0.297871,-0.949768,3.280681,0.510802,-0.499434,
+ -0.078774,0.27578,-0.957987,3.321825,0.26669,-0.46575,
+ 0.159882,0.223439,-0.961516,3.16616,0.02131,-0.457261,
+ 0.098376,0.32868,-0.939304,3.136321,0.171237,-0.539896,
+ -0.078774,0.27578,-0.957987,3.321825,0.26669,-0.46575,
+ 0.159882,0.223439,-0.961516,3.16616,0.02131,-0.457261,
+ -0.078774,0.27578,-0.957987,3.321825,0.26669,-0.46575,
+ -0.027323,0.180938,-0.983115,3.36004,0.165487,-0.412685,
+ 0.224429,0.165293,-0.96037,3.199571,-0.153739,-0.38015,
+ 0.159882,0.223439,-0.961516,3.16616,0.02131,-0.457261,
+ -0.027323,0.180938,-0.983115,3.36004,0.165487,-0.412685,
+ 0.224429,0.165293,-0.96037,3.199571,-0.153739,-0.38015,
+ -0.027323,0.180938,-0.983115,3.36004,0.165487,-0.412685,
+ 0.065337,0.07376,-0.995133,3.378799,0.073736,-0.355362,
+ 0.331391,0.08899,-0.939287,3.286426,-0.300744,-0.276331,
+ 0.224429,0.165293,-0.96037,3.199571,-0.153739,-0.38015,
+ 0.065337,0.07376,-0.995133,3.378799,0.073736,-0.355362,
+ 0.331391,0.08899,-0.939287,3.286426,-0.300744,-0.276331,
+ 0.065337,0.07376,-0.995133,3.378799,0.073736,-0.355362,
+ 0.226651,-0.023678,-0.973688,3.43895,-0.08258,-0.257015,
+ 0.445439,-0.182623,-0.876489,3.342159,-0.384674,-0.201349,
+ 0.331391,0.08899,-0.939287,3.286426,-0.300744,-0.276331,
+ 0.226651,-0.023678,-0.973688,3.43895,-0.08258,-0.257015,
+ 0.445439,-0.182623,-0.876489,3.342159,-0.384674,-0.201349,
+ 0.226651,-0.023678,-0.973688,3.43895,-0.08258,-0.257015,
+ 0.383941,-0.196382,-0.902232,3.514981,-0.121886,-0.187589,
+ 0.07924,-0.231862,-0.969516,3.955635,0.432417,-0.197586,
+ 0.338485,-0.103202,-0.935295,3.929251,0.411689,0,
+ -0.910859,-0.100368,-0.400327,3.731689,0.186391,0,
+ 0.07924,-0.231862,-0.969516,3.955635,0.432417,-0.197586,
+ -0.910859,-0.100368,-0.400327,3.731689,0.186391,0,
+ 0.325831,-0.277459,-0.903798,3.737014,0.181837,-0.176819,
+ -0.081635,-0.03459,-0.996062,3.889626,0.475277,-0.247365,
+ 0.07924,-0.231862,-0.969516,3.955635,0.432417,-0.197586,
+ 0.325831,-0.277459,-0.903798,3.737014,0.181837,-0.176819,
+ -0.081635,-0.03459,-0.996062,3.889626,0.475277,-0.247365,
+ 0.325831,-0.277459,-0.903798,3.737014,0.181837,-0.176819,
+ 0.144017,-0.141696,-0.979378,3.700363,0.265794,-0.240762,
+ -0.178707,0.132414,-0.974951,3.861841,0.560638,-0.311961,
+ -0.081635,-0.03459,-0.996062,3.889626,0.475277,-0.247365,
+ 0.144017,-0.141696,-0.979378,3.700363,0.265794,-0.240762,
+ -0.178707,0.132414,-0.974951,3.861841,0.560638,-0.311961,
+ 0.144017,-0.141696,-0.979378,3.700363,0.265794,-0.240762,
+ -0.023695,0.006701,-0.999697,3.67471,0.338839,-0.30784,
+ -0.178707,0.132414,-0.974951,3.861841,0.560638,-0.311961,
+ -0.023695,0.006701,-0.999697,3.67471,0.338839,-0.30784,
+ -0.128537,0.152973,-0.979835,3.641195,0.407454,-0.362198,
+ -0.21777,0.161093,-0.962614,3.849352,0.664451,-0.387198,
+ -0.178707,0.132414,-0.974951,3.861841,0.560638,-0.311961,
+ -0.128537,0.152973,-0.979835,3.641195,0.407454,-0.362198,
+ -0.21777,0.161093,-0.962614,3.849352,0.664451,-0.387198,
+ -0.128537,0.152973,-0.979835,3.641195,0.407454,-0.362198,
+ -0.175197,0.22468,-0.958553,3.61965,0.472046,-0.391742,
+ -0.273816,0.228927,-0.93414,3.823137,0.853054,-0.461519,
+ -0.21777,0.161093,-0.962614,3.849352,0.664451,-0.387198,
+ -0.175197,0.22468,-0.958553,3.61965,0.472046,-0.391742,
+ -0.273816,0.228927,-0.93414,3.823137,0.853054,-0.461519,
+ -0.175197,0.22468,-0.958553,3.61965,0.472046,-0.391742,
+ -0.203969,0.261593,-0.94338,3.559394,0.706516,-0.452535,
+ -0.385487,0.478576,-0.788901,3.747724,1.184933,-0.518662,
+ -0.273816,0.228927,-0.93414,3.823137,0.853054,-0.461519,
+ -0.203969,0.261593,-0.94338,3.559394,0.706516,-0.452535,
+ -0.385487,0.478576,-0.788901,3.747724,1.184933,-0.518662,
+ -0.203969,0.261593,-0.94338,3.559394,0.706516,-0.452535,
+ -0.270788,0.46353,-0.84369,3.528445,1.060127,-0.489443,
+ -0.447812,0.698934,-0.557634,3.650974,1.46374,-0.478617,
+ -0.385487,0.478576,-0.788901,3.747724,1.184933,-0.518662,
+ -0.270788,0.46353,-0.84369,3.528445,1.060127,-0.489443,
+ -0.447812,0.698934,-0.557634,3.650974,1.46374,-0.478617,
+ -0.270788,0.46353,-0.84369,3.528445,1.060127,-0.489443,
+ -0.354832,0.724971,-0.590348,3.47341,1.366149,-0.454658,
+ -0.463441,0.825581,-0.321928,3.590526,1.70109,-0.411994,
+ -0.447812,0.698934,-0.557634,3.650974,1.46374,-0.478617,
+ -0.354832,0.724971,-0.590348,3.47341,1.366149,-0.454658,
+ -0.463441,0.825581,-0.321928,3.590526,1.70109,-0.411994,
+ -0.354832,0.724971,-0.590348,3.47341,1.366149,-0.454658,
+ -0.384424,0.863444,-0.326623,3.377233,1.5878,-0.400781,
+ 0.492397,-0.77993,-0.386336,3.541188,1.849183,-0.386366,
+ -0.463441,0.825581,-0.321928,3.590526,1.70109,-0.411994,
+ -0.384424,0.863444,-0.326623,3.377233,1.5878,-0.400781,
+ 0.492397,-0.77993,-0.386336,3.541188,1.849183,-0.386366,
+ -0.384424,0.863444,-0.326623,3.377233,1.5878,-0.400781,
+ 0.673211,-0.58089,-0.457551,3.337545,1.748927,-0.34021,
+ 0.313443,-0.691245,-0.651102,3.479418,1.97825,-0.317478,
+ 0.492397,-0.77993,-0.386336,3.541188,1.849183,-0.386366,
+ 0.673211,-0.58089,-0.457551,3.337545,1.748927,-0.34021,
+ 0.313443,-0.691245,-0.651102,3.479418,1.97825,-0.317478,
+ 0.673211,-0.58089,-0.457551,3.337545,1.748927,-0.34021,
+ 0.454048,-0.464454,-0.760344,3.276333,1.863773,-0.294266,
+ 0.161194,-0.480657,-0.861966,3.460196,2.103494,-0.180368,
+ 0.313443,-0.691245,-0.651102,3.479418,1.97825,-0.317478,
+ 0.454048,-0.464454,-0.760344,3.276333,1.863773,-0.294266,
+ 0.161194,-0.480657,-0.861966,3.460196,2.103494,-0.180368,
+ 0.454048,-0.464454,-0.760344,3.276333,1.863773,-0.294266,
+ 0.428291,-0.499911,-0.752765,3.252224,2.026347,-0.148215,
+ 0.020519,-0.282941,-0.958918,3.4583,2.151656,-0.102662,
+ 0.161194,-0.480657,-0.861966,3.460196,2.103494,-0.180368,
+ 0.428291,-0.499911,-0.752765,3.252224,2.026347,-0.148215,
+ 0.020519,-0.282941,-0.958918,3.4583,2.151656,-0.102662,
+ 0.428291,-0.499911,-0.752765,3.252224,2.026347,-0.148215,
+ 0.261393,-0.399072,-0.878872,3.233975,2.059193,-0.072431,
+ 0.486425,0.192908,-0.852161,2.986408,-0.413503,-0.428964,
+ 0.016767,-0.927537,-0.373356,2.835437,-0.231101,-0.57789,
+ 0.519338,0.264458,-0.812619,2.953029,-0.12769,-0.520499,
+ 0.241303,0.584583,-0.77462,2.753156,0.400829,-0.713141,
+ 0.072694,0.752739,-0.654294,2.679445,0.687427,-0.720573,
+ 0.040193,0.650965,-0.758043,2.747937,0.712253,-0.615674,
+ 0.241303,0.584583,-0.77462,2.753156,0.400829,-0.713141,
+ 0.040193,0.650965,-0.758043,2.747937,0.712253,-0.615674,
+ 0.177367,0.480226,-0.859025,2.811504,0.469098,-0.657443,
+ 0.462789,0.48004,-0.745243,2.790681,0.219187,-0.718263,
+ 0.241303,0.584583,-0.77462,2.753156,0.400829,-0.713141,
+ 0.177367,0.480226,-0.859025,2.811504,0.469098,-0.657443,
+ 0.462789,0.48004,-0.745243,2.790681,0.219187,-0.718263,
+ 0.177367,0.480226,-0.859025,2.811504,0.469098,-0.657443,
+ 0.288711,0.386915,-0.875753,2.898733,0.271916,-0.651298,
+ 0.539114,0.412574,-0.734261,2.790657,0.044324,-0.717488,
+ 0.462789,0.48004,-0.745243,2.790681,0.219187,-0.718263,
+ 0.288711,0.386915,-0.875753,2.898733,0.271916,-0.651298,
+ 0.539114,0.412574,-0.734261,2.790657,0.044324,-0.717488,
+ 0.288711,0.386915,-0.875753,2.898733,0.271916,-0.651298,
+ 0.41428,0.318289,-0.852681,2.91987,0.084875,-0.64246,
+ 0.016767,-0.927537,-0.373356,2.835437,-0.231101,-0.57789,
+ 0.763734,0.228435,-0.603761,2.736198,-0.346225,-0.659345,
+ 0.696162,0.333274,-0.635835,2.743995,-0.129852,-0.718277,
+ 0.696162,0.333274,-0.635835,2.743995,-0.129852,-0.718277,
+ 0.41428,0.318289,-0.852681,2.91987,0.084875,-0.64246,
+ 0.519338,0.264458,-0.812619,2.953029,-0.12769,-0.520499,
+ 0.696162,0.333274,-0.635835,2.743995,-0.129852,-0.718277,
+ 0.519338,0.264458,-0.812619,2.953029,-0.12769,-0.520499,
+ 0.016767,-0.927537,-0.373356,2.835437,-0.231101,-0.57789,
+ 0.696162,0.333274,-0.635835,2.743995,-0.129852,-0.718277,
+ 0.539114,0.412574,-0.734261,2.790657,0.044324,-0.717488,
+ 0.41428,0.318289,-0.852681,2.91987,0.084875,-0.64246,
+ 0.788801,-0.19938,-0.581412,2.514162,0.988713,-0.674527,
+ 0.906617,-0.14387,-0.39667,2.482917,0.997637,-0.702425,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ 0.907314,0.09913,-0.4086,2.618307,-0.549092,-0.805491,
+ 0.908163,-0.140074,-0.394486,2.5392,-0.727778,-0.750475,
+ 0.795625,-0.129968,-0.591684,2.410367,-0.777999,-0.841105,
+ 0.907314,0.09913,-0.4086,2.618307,-0.549092,-0.805491,
+ 0.795625,-0.129968,-0.591684,2.410367,-0.777999,-0.841105,
+ 0.748939,0.152982,-0.644738,2.543372,-0.548031,-0.937182,
+ 0.85208,0.278905,-0.442914,2.690576,-0.368057,-0.819343,
+ 0.907314,0.09913,-0.4086,2.618307,-0.549092,-0.805491,
+ 0.748939,0.152982,-0.644738,2.543372,-0.548031,-0.937182,
+ 0.85208,0.278905,-0.442914,2.690576,-0.368057,-0.819343,
+ 0.748939,0.152982,-0.644738,2.543372,-0.548031,-0.937182,
+ 0.69338,0.351142,-0.629224,2.594499,-0.422948,-0.981263,
+ 0.759315,0.386803,-0.523282,2.702577,-0.197406,-0.795611,
+ 0.85208,0.278905,-0.442914,2.690576,-0.368057,-0.819343,
+ 0.69338,0.351142,-0.629224,2.594499,-0.422948,-0.981263,
+ 0.759315,0.386803,-0.523282,2.702577,-0.197406,-0.795611,
+ 0.69338,0.351142,-0.629224,2.594499,-0.422948,-0.981263,
+ 0.662294,0.443714,-0.603725,2.60743,-0.208248,-0.974218,
+ 0.636794,0.461927,-0.617346,2.734183,0.038769,-0.86581,
+ 0.759315,0.386803,-0.523282,2.702577,-0.197406,-0.795611,
+ 0.662294,0.443714,-0.603725,2.60743,-0.208248,-0.974218,
+ 0.636794,0.461927,-0.617346,2.734183,0.038769,-0.86581,
+ 0.662294,0.443714,-0.603725,2.60743,-0.208248,-0.974218,
+ 0.614456,0.489786,-0.618509,2.649413,0.031535,-1.024796,
+ 0.722145,-0.312679,-0.617041,2.731512,0.219003,-0.891585,
+ 0.636794,0.461927,-0.617346,2.734183,0.038769,-0.86581,
+ 0.614456,0.489786,-0.618509,2.649413,0.031535,-1.024796,
+ 0.722145,-0.312679,-0.617041,2.731512,0.219003,-0.891585,
+ 0.614456,0.489786,-0.618509,2.649413,0.031535,-1.024796,
+ 0.718673,-0.290446,-0.631784,2.668936,0.206182,-1.014371,
+ 0.742962,-0.255405,-0.618688,2.70696,0.393597,-0.849582,
+ 0.722145,-0.312679,-0.617041,2.731512,0.219003,-0.891585,
+ 0.718673,-0.290446,-0.631784,2.668936,0.206182,-1.014371,
+ 0.742962,-0.255405,-0.618688,2.70696,0.393597,-0.849582,
+ 0.718673,-0.290446,-0.631784,2.668936,0.206182,-1.014371,
+ 0.815771,-0.424495,-0.392838,2.616001,0.447717,-0.960748,
+ 0.804239,-0.153549,-0.574128,2.604217,0.728827,-0.769671,
+ 0.742962,-0.255405,-0.618688,2.70696,0.393597,-0.849582,
+ 0.815771,-0.424495,-0.392838,2.616001,0.447717,-0.960748,
+ 0.804239,-0.153549,-0.574128,2.604217,0.728827,-0.769671,
+ 0.815771,-0.424495,-0.392838,2.616001,0.447717,-0.960748,
+ 0.900366,-0.205985,-0.38329,2.5704,0.738683,-0.830405,
+ 0.788801,-0.19938,-0.581412,2.514162,0.988713,-0.674527,
+ 0.804239,-0.153549,-0.574128,2.604217,0.728827,-0.769671,
+ 0.900366,-0.205985,-0.38329,2.5704,0.738683,-0.830405,
+ 0.788801,-0.19938,-0.581412,2.514162,0.988713,-0.674527,
+ 0.900366,-0.205985,-0.38329,2.5704,0.738683,-0.830405,
+ 0.906617,-0.14387,-0.39667,2.482917,0.997637,-0.702425,
+ 0.907314,0.09913,-0.4086,2.618307,-0.549092,-0.805491,
+ 0.85208,0.278905,-0.442914,2.690576,-0.368057,-0.819343,
+ 0.763734,0.228435,-0.603761,2.736198,-0.346225,-0.659345,
+ 0.907314,0.09913,-0.4086,2.618307,-0.549092,-0.805491,
+ 0.763734,0.228435,-0.603761,2.736198,-0.346225,-0.659345,
+ 0.769758,0.095155,-0.631204,2.688131,-0.517509,-0.672975,
+ 0.788801,-0.19938,-0.581412,2.514162,0.988713,-0.674527,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ -0.071584,0.92252,-0.379253,2.542439,0.999928,-0.648592,
+ 0.804239,-0.153549,-0.574128,2.604217,0.728827,-0.769671,
+ 0.788801,-0.19938,-0.581412,2.514162,0.988713,-0.674527,
+ -0.071584,0.92252,-0.379253,2.542439,0.999928,-0.648592,
+ 0.804239,-0.153549,-0.574128,2.604217,0.728827,-0.769671,
+ -0.071584,0.92252,-0.379253,2.542439,0.999928,-0.648592,
+ 0.072694,0.752739,-0.654294,2.679445,0.687427,-0.720573,
+ 0.742962,-0.255405,-0.618688,2.70696,0.393597,-0.849582,
+ 0.804239,-0.153549,-0.574128,2.604217,0.728827,-0.769671,
+ 0.072694,0.752739,-0.654294,2.679445,0.687427,-0.720573,
+ 0.742962,-0.255405,-0.618688,2.70696,0.393597,-0.849582,
+ 0.072694,0.752739,-0.654294,2.679445,0.687427,-0.720573,
+ 0.241303,0.584583,-0.77462,2.753156,0.400829,-0.713141,
+ 0.722145,-0.312679,-0.617041,2.731512,0.219003,-0.891585,
+ 0.742962,-0.255405,-0.618688,2.70696,0.393597,-0.849582,
+ 0.241303,0.584583,-0.77462,2.753156,0.400829,-0.713141,
+ 0.722145,-0.312679,-0.617041,2.731512,0.219003,-0.891585,
+ 0.241303,0.584583,-0.77462,2.753156,0.400829,-0.713141,
+ 0.462789,0.48004,-0.745243,2.790681,0.219187,-0.718263,
+ 0.636794,0.461927,-0.617346,2.734183,0.038769,-0.86581,
+ 0.722145,-0.312679,-0.617041,2.731512,0.219003,-0.891585,
+ 0.462789,0.48004,-0.745243,2.790681,0.219187,-0.718263,
+ 0.636794,0.461927,-0.617346,2.734183,0.038769,-0.86581,
+ 0.462789,0.48004,-0.745243,2.790681,0.219187,-0.718263,
+ 0.539114,0.412574,-0.734261,2.790657,0.044324,-0.717488,
+ 0.759315,0.386803,-0.523282,2.702577,-0.197406,-0.795611,
+ 0.636794,0.461927,-0.617346,2.734183,0.038769,-0.86581,
+ 0.539114,0.412574,-0.734261,2.790657,0.044324,-0.717488,
+ 0.759315,0.386803,-0.523282,2.702577,-0.197406,-0.795611,
+ 0.539114,0.412574,-0.734261,2.790657,0.044324,-0.717488,
+ 0.696162,0.333274,-0.635835,2.743995,-0.129852,-0.718277,
+ 0.85208,0.278905,-0.442914,2.690576,-0.368057,-0.819343,
+ 0.759315,0.386803,-0.523282,2.702577,-0.197406,-0.795611,
+ 0.696162,0.333274,-0.635835,2.743995,-0.129852,-0.718277,
+ 0.85208,0.278905,-0.442914,2.690576,-0.368057,-0.819343,
+ 0.696162,0.333274,-0.635835,2.743995,-0.129852,-0.718277,
+ 0.763734,0.228435,-0.603761,2.736198,-0.346225,-0.659345,
+ 0.072694,0.752739,-0.654294,2.679445,0.687427,-0.720573,
+ -0.071584,0.92252,-0.379253,2.542439,0.999928,-0.648592,
+ -0.080985,0.883253,-0.461851,2.637461,1.01726,-0.581611,
+ 0.072694,0.752739,-0.654294,2.679445,0.687427,-0.720573,
+ -0.080985,0.883253,-0.461851,2.637461,1.01726,-0.581611,
+ 0.040193,0.650965,-0.758043,2.747937,0.712253,-0.615674,
+ 0.547549,-0.279581,-0.788686,2.13239,1.755821,-0.180271,
+ 0.756976,-0.653442,0,2.128139,1.788397,0,
+ 0.536218,-0.84408,0.000006,2.339597,1.807702,0,
+ 0.547549,-0.279581,-0.788686,2.13239,1.755821,-0.180271,
+ 0.536218,-0.84408,0.000006,2.339597,1.807702,0,
+ 0.474213,-0.311965,-0.823286,2.361089,1.76666,-0.202595,
+ 0.598679,-0.200355,-0.775527,2.183003,1.65407,-0.341767,
+ 0.547549,-0.279581,-0.788686,2.13239,1.755821,-0.180271,
+ 0.474213,-0.311965,-0.823286,2.361089,1.76666,-0.202595,
+ 0.598679,-0.200355,-0.775527,2.183003,1.65407,-0.341767,
+ 0.474213,-0.311965,-0.823286,2.361089,1.76666,-0.202595,
+ 0.488174,-0.280956,-0.826287,2.406969,1.645328,-0.341479,
+ 0.561098,-0.272385,-0.781649,2.301359,1.397721,-0.546015,
+ 0.598679,-0.200355,-0.775527,2.183003,1.65407,-0.341767,
+ 0.488174,-0.280956,-0.826287,2.406969,1.645328,-0.341479,
+ 0.561098,-0.272385,-0.781649,2.301359,1.397721,-0.546015,
+ 0.488174,-0.280956,-0.826287,2.406969,1.645328,-0.341479,
+ 0.531574,-0.288506,-0.796362,2.519027,1.485931,-0.422962,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ 0.561098,-0.272385,-0.781649,2.301359,1.397721,-0.546015,
+ 0.531574,-0.288506,-0.796362,2.519027,1.485931,-0.422962,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ 0.531574,-0.288506,-0.796362,2.519027,1.485931,-0.422962,
+ 0.769657,-0.480833,-0.420033,2.553871,1.284278,-0.512335,
+ -0.071584,0.92252,-0.379253,2.542439,0.999928,-0.648592,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ 0.769657,-0.480833,-0.420033,2.553871,1.284278,-0.512335,
+ -0.071584,0.92252,-0.379253,2.542439,0.999928,-0.648592,
+ 0.769657,-0.480833,-0.420033,2.553871,1.284278,-0.512335,
+ -0.080985,0.883253,-0.461851,2.637461,1.01726,-0.581611,
+ -0.096144,-0.182414,-0.97851,2.292449,-0.871852,-0.8824,
+ 0.561574,-0.148323,-0.814024,2.245624,-0.864372,-0.995778,
+ 0.525142,-0.062799,-0.848694,2.346081,-0.74535,-1.013296,
+ -0.096144,-0.182414,-0.97851,2.292449,-0.871852,-0.8824,
+ 0.525142,-0.062799,-0.848694,2.346081,-0.74535,-1.013296,
+ 0.795625,-0.129968,-0.591684,2.410367,-0.777999,-0.841105,
+ 0.805898,-0.146097,-0.573745,2.096552,1.678482,-0.32681,
+ 0.546571,-0.125171,0.828005,2.069379,1.727818,-0.212746,
+ 0.547549,-0.279581,-0.788686,2.13239,1.755821,-0.180271,
+ 0.805898,-0.146097,-0.573745,2.096552,1.678482,-0.32681,
+ 0.547549,-0.279581,-0.788686,2.13239,1.755821,-0.180271,
+ 0.598679,-0.200355,-0.775527,2.183003,1.65407,-0.341767,
+ 0.772313,-0.244122,-0.586461,2.189848,1.468992,-0.517501,
+ 0.805898,-0.146097,-0.573745,2.096552,1.678482,-0.32681,
+ 0.598679,-0.200355,-0.775527,2.183003,1.65407,-0.341767,
+ 0.772313,-0.244122,-0.586461,2.189848,1.468992,-0.517501,
+ 0.598679,-0.200355,-0.775527,2.183003,1.65407,-0.341767,
+ 0.561098,-0.272385,-0.781649,2.301359,1.397721,-0.546015,
+ 0.697438,-0.478568,-0.533435,2.266003,1.273253,-0.663332,
+ 0.772313,-0.244122,-0.586461,2.189848,1.468992,-0.517501,
+ 0.561098,-0.272385,-0.781649,2.301359,1.397721,-0.546015,
+ 0.697438,-0.478568,-0.533435,2.266003,1.273253,-0.663332,
+ 0.561098,-0.272385,-0.781649,2.301359,1.397721,-0.546015,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ 0.628361,-0.426126,-0.65083,2.347317,1.066114,-0.758763,
+ 0.697438,-0.478568,-0.533435,2.266003,1.273253,-0.663332,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ 0.628361,-0.426126,-0.65083,2.347317,1.066114,-0.758763,
+ 0.752227,-0.484776,-0.446258,2.396355,1.242239,-0.597722,
+ 0.906617,-0.14387,-0.39667,2.482917,0.997637,-0.702425,
+ 0.065855,0.814333,-0.576649,2.399389,0.782091,-0.915279,
+ 0.628361,-0.426126,-0.65083,2.347317,1.066114,-0.758763,
+ 0.906617,-0.14387,-0.39667,2.482917,0.997637,-0.702425,
+ 0.065855,0.814333,-0.576649,2.399389,0.782091,-0.915279,
+ 0.906617,-0.14387,-0.39667,2.482917,0.997637,-0.702425,
+ 0.900366,-0.205985,-0.38329,2.5704,0.738683,-0.830405,
+ 0.187431,0.691784,-0.697355,2.448969,0.529858,-1.037335,
+ 0.065855,0.814333,-0.576649,2.399389,0.782091,-0.915279,
+ 0.900366,-0.205985,-0.38329,2.5704,0.738683,-0.830405,
+ 0.187431,0.691784,-0.697355,2.448969,0.529858,-1.037335,
+ 0.900366,-0.205985,-0.38329,2.5704,0.738683,-0.830405,
+ 0.815771,-0.424495,-0.392838,2.616001,0.447717,-0.960748,
+ 0.328244,0.603536,-0.726637,2.495354,0.250522,-1.132081,
+ 0.187431,0.691784,-0.697355,2.448969,0.529858,-1.037335,
+ 0.815771,-0.424495,-0.392838,2.616001,0.447717,-0.960748,
+ 0.328244,0.603536,-0.726637,2.495354,0.250522,-1.132081,
+ 0.815771,-0.424495,-0.392838,2.616001,0.447717,-0.960748,
+ 0.718673,-0.290446,-0.631784,2.668936,0.206182,-1.014371,
+ 0.387394,0.516219,-0.763835,2.50049,-0.035029,-1.170179,
+ 0.328244,0.603536,-0.726637,2.495354,0.250522,-1.132081,
+ 0.718673,-0.290446,-0.631784,2.668936,0.206182,-1.014371,
+ 0.387394,0.516219,-0.763835,2.50049,-0.035029,-1.170179,
+ 0.718673,-0.290446,-0.631784,2.668936,0.206182,-1.014371,
+ 0.614456,0.489786,-0.618509,2.649413,0.031535,-1.024796,
+ 0.387987,0.466054,-0.795148,2.452588,-0.244072,-1.138797,
+ 0.387394,0.516219,-0.763835,2.50049,-0.035029,-1.170179,
+ 0.614456,0.489786,-0.618509,2.649413,0.031535,-1.024796,
+ 0.387987,0.466054,-0.795148,2.452588,-0.244072,-1.138797,
+ 0.614456,0.489786,-0.618509,2.649413,0.031535,-1.024796,
+ 0.662294,0.443714,-0.603725,2.60743,-0.208248,-0.974218,
+ 0.397823,0.403779,-0.823832,2.439827,-0.395385,-1.131324,
+ 0.387987,0.466054,-0.795148,2.452588,-0.244072,-1.138797,
+ 0.662294,0.443714,-0.603725,2.60743,-0.208248,-0.974218,
+ 0.397823,0.403779,-0.823832,2.439827,-0.395385,-1.131324,
+ 0.662294,0.443714,-0.603725,2.60743,-0.208248,-0.974218,
+ 0.69338,0.351142,-0.629224,2.594499,-0.422948,-0.981263,
+ 0.449887,0.239006,-0.860511,2.384638,-0.591919,-1.043058,
+ 0.397823,0.403779,-0.823832,2.439827,-0.395385,-1.131324,
+ 0.69338,0.351142,-0.629224,2.594499,-0.422948,-0.981263,
+ 0.449887,0.239006,-0.860511,2.384638,-0.591919,-1.043058,
+ 0.69338,0.351142,-0.629224,2.594499,-0.422948,-0.981263,
+ 0.748939,0.152982,-0.644738,2.543372,-0.548031,-0.937182,
+ 0.525142,-0.062799,-0.848694,2.346081,-0.74535,-1.013296,
+ 0.449887,0.239006,-0.860511,2.384638,-0.591919,-1.043058,
+ 0.748939,0.152982,-0.644738,2.543372,-0.548031,-0.937182,
+ 0.525142,-0.062799,-0.848694,2.346081,-0.74535,-1.013296,
+ 0.748939,0.152982,-0.644738,2.543372,-0.548031,-0.937182,
+ 0.795625,-0.129968,-0.591684,2.410367,-0.777999,-0.841105,
+ -0.096144,-0.182414,-0.97851,2.292449,-0.871852,-0.8824,
+ -0.012663,0.029084,-0.999497,2.229345,-0.992723,-0.862826,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ -0.096144,-0.182414,-0.97851,2.292449,-0.871852,-0.8824,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ 0.561574,-0.148323,-0.814024,2.245624,-0.864372,-0.995778,
+ 0.525142,-0.062799,-0.848694,2.346081,-0.74535,-1.013296,
+ 0.561574,-0.148323,-0.814024,2.245624,-0.864372,-0.995778,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ 0.449887,0.239006,-0.860511,2.384638,-0.591919,-1.043058,
+ 0.525142,-0.062799,-0.848694,2.346081,-0.74535,-1.013296,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ 0.449887,0.239006,-0.860511,2.384638,-0.591919,-1.043058,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ 0.10998,0.376752,-0.919762,2.108912,-0.357128,-1.259691,
+ -0.385788,0.922588,0,2.042206,1.777154,0,
+ 0.546571,-0.125171,0.828005,2.069379,1.727818,-0.212746,
+ 0.513731,-0.239493,-0.823847,1.807583,1.756546,-0.177627,
+ -0.385788,0.922588,0,2.042206,1.777154,0,
+ 0.513731,-0.239493,-0.823847,1.807583,1.756546,-0.177627,
+ -0.720176,-0.693792,0,1.794465,1.787719,0,
+ 0.397823,0.403779,-0.823832,2.439827,-0.395385,-1.131324,
+ 0.449887,0.239006,-0.860511,2.384638,-0.591919,-1.043058,
+ 0.10998,0.376752,-0.919762,2.108912,-0.357128,-1.259691,
+ 0.397823,0.403779,-0.823832,2.439827,-0.395385,-1.131324,
+ 0.10998,0.376752,-0.919762,2.108912,-0.357128,-1.259691,
+ 0.12555,0.440005,-0.889176,2.136269,-0.187666,-1.278057,
+ 0.387987,0.466054,-0.795148,2.452588,-0.244072,-1.138797,
+ 0.397823,0.403779,-0.823832,2.439827,-0.395385,-1.131324,
+ 0.12555,0.440005,-0.889176,2.136269,-0.187666,-1.278057,
+ 0.387394,0.516219,-0.763835,2.50049,-0.035029,-1.170179,
+ 0.387987,0.466054,-0.795148,2.452588,-0.244072,-1.138797,
+ 0.12555,0.440005,-0.889176,2.136269,-0.187666,-1.278057,
+ 0.387394,0.516219,-0.763835,2.50049,-0.035029,-1.170179,
+ 0.12555,0.440005,-0.889176,2.136269,-0.187666,-1.278057,
+ 0.146937,0.551946,-0.820832,2.14179,-0.055306,-1.295565,
+ 0.328244,0.603536,-0.726637,2.495354,0.250522,-1.132081,
+ 0.387394,0.516219,-0.763835,2.50049,-0.035029,-1.170179,
+ 0.146937,0.551946,-0.820832,2.14179,-0.055306,-1.295565,
+ 0.328244,0.603536,-0.726637,2.495354,0.250522,-1.132081,
+ 0.146937,0.551946,-0.820832,2.14179,-0.055306,-1.295565,
+ 0.115383,0.694944,-0.709746,2.0817,0.283249,-1.259461,
+ 0.187431,0.691784,-0.697355,2.448969,0.529858,-1.037335,
+ 0.328244,0.603536,-0.726637,2.495354,0.250522,-1.132081,
+ 0.115383,0.694944,-0.709746,2.0817,0.283249,-1.259461,
+ 0.187431,0.691784,-0.697355,2.448969,0.529858,-1.037335,
+ 0.115383,0.694944,-0.709746,2.0817,0.283249,-1.259461,
+ 0.052979,0.780732,-0.622616,2.023441,0.529338,-1.144399,
+ 0.065855,0.814333,-0.576649,2.399389,0.782091,-0.915279,
+ 0.187431,0.691784,-0.697355,2.448969,0.529858,-1.037335,
+ 0.052979,0.780732,-0.622616,2.023441,0.529338,-1.144399,
+ 0.065855,0.814333,-0.576649,2.399389,0.782091,-0.915279,
+ 0.052979,0.780732,-0.622616,2.023441,0.529338,-1.144399,
+ 0.019336,0.837694,-0.545798,1.975941,0.827957,-1.018423,
+ 0.628361,-0.426126,-0.65083,2.347317,1.066114,-0.758763,
+ 0.065855,0.814333,-0.576649,2.399389,0.782091,-0.915279,
+ 0.019336,0.837694,-0.545798,1.975941,0.827957,-1.018423,
+ 0.628361,-0.426126,-0.65083,2.347317,1.066114,-0.758763,
+ 0.019336,0.837694,-0.545798,1.975941,0.827957,-1.018423,
+ 0.026499,0.942993,-0.331757,1.958254,1.130271,-0.861813,
+ 0.697438,-0.478568,-0.533435,2.266003,1.273253,-0.663332,
+ 0.628361,-0.426126,-0.65083,2.347317,1.066114,-0.758763,
+ 0.026499,0.942993,-0.331757,1.958254,1.130271,-0.861813,
+ 0.697438,-0.478568,-0.533435,2.266003,1.273253,-0.663332,
+ 0.026499,0.942993,-0.331757,1.958254,1.130271,-0.861813,
+ 0.696414,-0.392791,-0.600602,1.859443,1.450393,-0.632222,
+ 0.772313,-0.244122,-0.586461,2.189848,1.468992,-0.517501,
+ 0.697438,-0.478568,-0.533435,2.266003,1.273253,-0.663332,
+ 0.696414,-0.392791,-0.600602,1.859443,1.450393,-0.632222,
+ 0.772313,-0.244122,-0.586461,2.189848,1.468992,-0.517501,
+ 0.696414,-0.392791,-0.600602,1.859443,1.450393,-0.632222,
+ 0.552632,-0.484765,-0.677938,1.821946,1.618209,-0.403751,
+ 0.805898,-0.146097,-0.573745,2.096552,1.678482,-0.32681,
+ 0.772313,-0.244122,-0.586461,2.189848,1.468992,-0.517501,
+ 0.552632,-0.484765,-0.677938,1.821946,1.618209,-0.403751,
+ 0.805898,-0.146097,-0.573745,2.096552,1.678482,-0.32681,
+ 0.552632,-0.484765,-0.677938,1.821946,1.618209,-0.403751,
+ 0.506924,-0.406124,-0.760323,1.798719,1.714447,-0.259352,
+ 0.546571,-0.125171,0.828005,2.069379,1.727818,-0.212746,
+ 0.805898,-0.146097,-0.573745,2.096552,1.678482,-0.32681,
+ 0.506924,-0.406124,-0.760323,1.798719,1.714447,-0.259352,
+ 0.546571,-0.125171,0.828005,2.069379,1.727818,-0.212746,
+ 0.506924,-0.406124,-0.760323,1.798719,1.714447,-0.259352,
+ 0.513731,-0.239493,-0.823847,1.807583,1.756546,-0.177627,
+ 0.659349,-0.248914,-0.709437,0.737904,1.604213,-0.281713,
+ -0.208715,-0.624734,-0.752427,0.223642,1.684075,-0.160743,
+ 0.566114,-0.824327,0,0.234527,1.730117,0,
+ 0.659349,-0.248914,-0.709437,0.737904,1.604213,-0.281713,
+ 0.566114,-0.824327,0,0.234527,1.730117,0,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.631747,-0.24686,-0.734817,0.725959,1.478055,-0.461804,
+ -0.251063,-0.683027,-0.685888,0.23733,1.595746,-0.288672,
+ -0.208715,-0.624734,-0.752427,0.223642,1.684075,-0.160743,
+ 0.631747,-0.24686,-0.734817,0.725959,1.478055,-0.461804,
+ -0.208715,-0.624734,-0.752427,0.223642,1.684075,-0.160743,
+ 0.659349,-0.248914,-0.709437,0.737904,1.604213,-0.281713,
+ 0.623235,-0.257987,-0.738255,0.760722,1.205036,-0.700545,
+ -0.252973,-0.819125,-0.51482,0.289039,1.496446,-0.430055,
+ -0.251063,-0.683027,-0.685888,0.23733,1.595746,-0.288672,
+ 0.623235,-0.257987,-0.738255,0.760722,1.205036,-0.700545,
+ -0.251063,-0.683027,-0.685888,0.23733,1.595746,-0.288672,
+ 0.631747,-0.24686,-0.734817,0.725959,1.478055,-0.461804,
+ 0.791391,-0.43807,-0.426373,0.857323,0.985001,-0.874029,
+ -0.13716,-0.98063,-0.139827,0.305671,1.298417,-0.629719,
+ -0.252973,-0.819125,-0.51482,0.289039,1.496446,-0.430055,
+ 0.791391,-0.43807,-0.426373,0.857323,0.985001,-0.874029,
+ -0.252973,-0.819125,-0.51482,0.289039,1.496446,-0.430055,
+ 0.623235,-0.257987,-0.738255,0.760722,1.205036,-0.700545,
+ -0.06371,0.842533,-0.534864,0.921312,0.755659,-0.99933,
+ 0.007127,0.896038,-0.44392,0.243473,1.134082,-0.819993,
+ -0.13716,-0.98063,-0.139827,0.305671,1.298417,-0.629719,
+ -0.06371,0.842533,-0.534864,0.921312,0.755659,-0.99933,
+ -0.13716,-0.98063,-0.139827,0.305671,1.298417,-0.629719,
+ 0.791391,-0.43807,-0.426373,0.857323,0.985001,-0.874029,
+ -0.069142,0.724976,-0.685295,0.939271,0.379986,-1.185872,
+ 0.009434,0.815301,-0.578961,0.316341,0.785311,-1.08626,
+ 0.007127,0.896038,-0.44392,0.243473,1.134082,-0.819993,
+ -0.069142,0.724976,-0.685295,0.939271,0.379986,-1.185872,
+ 0.007127,0.896038,-0.44392,0.243473,1.134082,-0.819993,
+ -0.06371,0.842533,-0.534864,0.921312,0.755659,-0.99933,
+ -0.057955,0.638634,-0.767325,0.927775,0.195225,-1.233043,
+ 0.040473,0.760778,-0.647749,0.539252,0.353984,-1.254493,
+ 0.009434,0.815301,-0.578961,0.316341,0.785311,-1.08626,
+ -0.057955,0.638634,-0.767325,0.927775,0.195225,-1.233043,
+ 0.009434,0.815301,-0.578961,0.316341,0.785311,-1.08626,
+ -0.069142,0.724976,-0.685295,0.939271,0.379986,-1.185872,
+ -0.024013,0.58573,-0.810151,0.950215,0.042751,-1.256188,
+ 0.080812,0.697931,-0.711591,0.53915,0.148262,-1.321014,
+ 0.040473,0.760778,-0.647749,0.539252,0.353984,-1.254493,
+ -0.024013,0.58573,-0.810151,0.950215,0.042751,-1.256188,
+ 0.040473,0.760778,-0.647749,0.539252,0.353984,-1.254493,
+ -0.057955,0.638634,-0.767325,0.927775,0.195225,-1.233043,
+ 0.016737,0.497476,-0.867316,0.943855,-0.101127,-1.274771,
+ 0.09853,0.626571,-0.773111,0.516872,-0.020713,-1.356627,
+ 0.080812,0.697931,-0.711591,0.53915,0.148262,-1.321014,
+ 0.016737,0.497476,-0.867316,0.943855,-0.101127,-1.274771,
+ 0.080812,0.697931,-0.711591,0.53915,0.148262,-1.321014,
+ -0.024013,0.58573,-0.810151,0.950215,0.042751,-1.256188,
+ 0.060533,0.377837,-0.923891,0.960321,-0.308052,-1.243133,
+ 0.111825,0.518485,-0.847743,0.542386,-0.188227,-1.370375,
+ 0.09853,0.626571,-0.773111,0.516872,-0.020713,-1.356627,
+ 0.060533,0.377837,-0.923891,0.960321,-0.308052,-1.243133,
+ 0.09853,0.626571,-0.773111,0.516872,-0.020713,-1.356627,
+ 0.016737,0.497476,-0.867316,0.943855,-0.101127,-1.274771,
+ 0.088722,0.251367,-0.963817,0.97453,-0.525273,-1.140353,
+ 0.163727,0.387435,-0.907242,0.546875,-0.39094,-1.363244,
+ 0.111825,0.518485,-0.847743,0.542386,-0.188227,-1.370375,
+ 0.088722,0.251367,-0.963817,0.97453,-0.525273,-1.140353,
+ 0.111825,0.518485,-0.847743,0.542386,-0.188227,-1.370375,
+ 0.060533,0.377837,-0.923891,0.960321,-0.308052,-1.243133,
+ 0.107989,0.168108,-0.979836,0.948819,-0.638568,-1.102958,
+ 0.227108,0.258715,-0.938876,0.550658,-0.633015,-1.331311,
+ 0.163727,0.387435,-0.907242,0.546875,-0.39094,-1.363244,
+ 0.107989,0.168108,-0.979836,0.948819,-0.638568,-1.102958,
+ 0.163727,0.387435,-0.907242,0.546875,-0.39094,-1.363244,
+ 0.088722,0.251367,-0.963817,0.97453,-0.525273,-1.140353,
+ 0.10833,0.05569,-0.992554,0.939974,-0.894739,-1.019809,
+ 0.263434,0.119819,-0.957207,0.527724,-0.862854,-1.253811,
+ 0.227108,0.258715,-0.938876,0.550658,-0.633015,-1.331311,
+ 0.10833,0.05569,-0.992554,0.939974,-0.894739,-1.019809,
+ 0.227108,0.258715,-0.938876,0.550658,-0.633015,-1.331311,
+ 0.107989,0.168108,-0.979836,0.948819,-0.638568,-1.102958,
+ 0.114032,-0.218132,-0.969234,0.956456,-1.070504,-0.921063,
+ 0.304293,-0.024391,-0.952266,0.544825,-1.133123,-1.096902,
+ 0.263434,0.119819,-0.957207,0.527724,-0.862854,-1.253811,
+ 0.114032,-0.218132,-0.969234,0.956456,-1.070504,-0.921063,
+ 0.263434,0.119819,-0.957207,0.527724,-0.862854,-1.253811,
+ 0.10833,0.05569,-0.992554,0.939974,-0.894739,-1.019809,
+ 0.187438,-0.340915,-0.921219,0.93066,-1.216516,-0.831196,
+ 0.372063,-0.134052,-0.918477,0.530629,-1.316423,-0.929842,
+ 0.304293,-0.024391,-0.952266,0.544825,-1.133123,-1.096902,
+ 0.187438,-0.340915,-0.921219,0.93066,-1.216516,-0.831196,
+ 0.304293,-0.024391,-0.952266,0.544825,-1.133123,-1.096902,
+ 0.114032,-0.218132,-0.969234,0.956456,-1.070504,-0.921063,
+ 0.25339,-0.287519,-0.923648,0.922703,-1.296032,-0.728307,
+ 0.424286,-0.254348,-0.869073,0.538756,-1.408602,-0.764911,
+ 0.372063,-0.134052,-0.918477,0.530629,-1.316423,-0.929842,
+ 0.25339,-0.287519,-0.923648,0.922703,-1.296032,-0.728307,
+ 0.372063,-0.134052,-0.918477,0.530629,-1.316423,-0.929842,
+ 0.187438,-0.340915,-0.921219,0.93066,-1.216516,-0.831196,
+ 0.23972,-0.400363,-0.884445,0.912699,-1.455066,-0.576185,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.424286,-0.254348,-0.869073,0.538756,-1.408602,-0.764911,
+ 0.23972,-0.400363,-0.884445,0.912699,-1.455066,-0.576185,
+ 0.424286,-0.254348,-0.869073,0.538756,-1.408602,-0.764911,
+ 0.25339,-0.287519,-0.923648,0.922703,-1.296032,-0.728307,
+ 0.213167,-0.525559,-0.823619,0.912989,-1.499314,-0.419547,
+ 0.383978,-0.566345,-0.729256,0.480235,-1.631521,-0.401961,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.213167,-0.525559,-0.823619,0.912989,-1.499314,-0.419547,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.23972,-0.400363,-0.884445,0.912699,-1.455066,-0.576185,
+ 0.92802,-0.37253,0,0.927497,-1.558489,0,
+ 0.226963,-0.973903,0,0.44655,-1.67295,0,
+ 0.383978,-0.566345,-0.729256,0.480235,-1.631521,-0.401961,
+ 0.92802,-0.37253,0,0.927497,-1.558489,0,
+ 0.383978,-0.566345,-0.729256,0.480235,-1.631521,-0.401961,
+ 0.213167,-0.525559,-0.823619,0.912989,-1.499314,-0.419547,
+ 0.335626,-0.735806,-0.588171,-0.221516,1.686349,-0.151403,
+ 0.235033,-0.721825,-0.650944,-0.559706,1.69418,-0.186107,
+ -0.009814,-0.999952,0,-0.547248,1.742126,0,
+ 0.335626,-0.735806,-0.588171,-0.221516,1.686349,-0.151403,
+ -0.009814,-0.999952,0,-0.547248,1.742126,0,
+ -0.039092,-0.999236,0,-0.228904,1.734267,0,
+ 0.303379,-0.73119,-0.611002,-0.267035,1.627058,-0.266577,
+ 0.244106,-0.79539,-0.554768,-0.557624,1.641278,-0.271462,
+ 0.235033,-0.721825,-0.650944,-0.559706,1.69418,-0.186107,
+ 0.303379,-0.73119,-0.611002,-0.267035,1.627058,-0.266577,
+ 0.235033,-0.721825,-0.650944,-0.559706,1.69418,-0.186107,
+ 0.335626,-0.735806,-0.588171,-0.221516,1.686349,-0.151403,
+ 0.298349,-0.828641,-0.473647,-0.247999,1.565146,-0.389142,
+ 0.213948,-0.943673,-0.252405,-0.626493,1.585426,-0.443136,
+ 0.244106,-0.79539,-0.554768,-0.557624,1.641278,-0.271462,
+ 0.298349,-0.828641,-0.473647,-0.247999,1.565146,-0.389142,
+ 0.244106,-0.79539,-0.554768,-0.557624,1.641278,-0.271462,
+ 0.303379,-0.73119,-0.611002,-0.267035,1.627058,-0.266577,
+ 0.267279,-0.944479,-0.191107,-0.179548,1.471301,-0.544513,
+ 0.190577,-0.970681,-0.146488,-0.597781,1.48962,-0.641047,
+ 0.213948,-0.943673,-0.252405,-0.626493,1.585426,-0.443136,
+ 0.267279,-0.944479,-0.191107,-0.179548,1.471301,-0.544513,
+ 0.213948,-0.943673,-0.252405,-0.626493,1.585426,-0.443136,
+ 0.298349,-0.828641,-0.473647,-0.247999,1.565146,-0.389142,
+ 0.029207,0.916877,-0.398099,-0.192546,1.305535,-0.70008,
+ 0.048754,0.934073,-0.353738,-0.674657,1.333008,-0.761059,
+ 0.190577,-0.970681,-0.146488,-0.597781,1.48962,-0.641047,
+ 0.029207,0.916877,-0.398099,-0.192546,1.305535,-0.70008,
+ 0.190577,-0.970681,-0.146488,-0.597781,1.48962,-0.641047,
+ 0.267279,-0.944479,-0.191107,-0.179548,1.471301,-0.544513,
+ 0.051939,0.876473,-0.478641,-0.406155,1.005088,-0.971088,
+ 0.081223,0.915345,-0.394394,-0.910602,1.204118,-0.83774,
+ 0.048754,0.934073,-0.353738,-0.674657,1.333008,-0.761059,
+ 0.051939,0.876473,-0.478641,-0.406155,1.005088,-0.971088,
+ 0.048754,0.934073,-0.353738,-0.674657,1.333008,-0.761059,
+ 0.029207,0.916877,-0.398099,-0.192546,1.305535,-0.70008,
+ 0.092427,0.86666,-0.490263,-0.11519,0.458427,-1.346197,
+ 0.120116,0.912706,-0.390565,-0.969076,0.901205,-1.146223,
+ 0.081223,0.915345,-0.394394,-0.910602,1.204118,-0.83774,
+ 0.092427,0.86666,-0.490263,-0.11519,0.458427,-1.346197,
+ 0.081223,0.915345,-0.394394,-0.910602,1.204118,-0.83774,
+ 0.051939,0.876473,-0.478641,-0.406155,1.005088,-0.971088,
+ 0.129186,0.757141,-0.64035,0.005537,0.163519,-1.472265,
+ 0.1717,0.74071,-0.649514,-0.752416,0.438132,-1.467349,
+ 0.120116,0.912706,-0.390565,-0.969076,0.901205,-1.146223,
+ 0.129186,0.757141,-0.64035,0.005537,0.163519,-1.472265,
+ 0.120116,0.912706,-0.390565,-0.969076,0.901205,-1.146223,
+ 0.092427,0.86666,-0.490263,-0.11519,0.458427,-1.346197,
+ 0.101272,0.634315,-0.766413,0.018086,0.002865,-1.523199,
+ 0.167704,0.495674,-0.852164,-0.645496,0.179261,-1.584316,
+ 0.1717,0.74071,-0.649514,-0.752416,0.438132,-1.467349,
+ 0.101272,0.634315,-0.766413,0.018086,0.002865,-1.523199,
+ 0.1717,0.74071,-0.649514,-0.752416,0.438132,-1.467349,
+ 0.129186,0.757141,-0.64035,0.005537,0.163519,-1.472265,
+ 0.089104,0.59547,-0.798421,0.034087,-0.225059,-1.542949,
+ 0.140536,0.558684,-0.817388,-0.536767,-0.144454,-1.682232,
+ 0.167704,0.495674,-0.852164,-0.645496,0.179261,-1.584316,
+ 0.089104,0.59547,-0.798421,0.034087,-0.225059,-1.542949,
+ 0.167704,0.495674,-0.852164,-0.645496,0.179261,-1.584316,
+ 0.101272,0.634315,-0.766413,0.018086,0.002865,-1.523199,
+ 0.147941,0.53134,-0.834141,0.010486,-0.502317,-1.576297,
+ 0.136523,0.621747,-0.771228,-0.533528,-0.58228,-1.701405,
+ 0.140536,0.558684,-0.817388,-0.536767,-0.144454,-1.682232,
+ 0.147941,0.53134,-0.834141,0.010486,-0.502317,-1.576297,
+ 0.140536,0.558684,-0.817388,-0.536767,-0.144454,-1.682232,
+ 0.089104,0.59547,-0.798421,0.034087,-0.225059,-1.542949,
+ 0.206788,0.399922,-0.892917,0.021051,-0.831931,-1.511548,
+ 0.100131,0.509748,-0.854477,-0.505045,-0.913827,-1.645612,
+ 0.136523,0.621747,-0.771228,-0.533528,-0.58228,-1.701405,
+ 0.206788,0.399922,-0.892917,0.021051,-0.831931,-1.511548,
+ 0.136523,0.621747,-0.771228,-0.533528,-0.58228,-1.701405,
+ 0.147941,0.53134,-0.834141,0.010486,-0.502317,-1.576297,
+ 0.246802,0.252523,-0.935586,-0.04157,-1.143825,-1.395176,
+ 0.063174,0.351351,-0.93411,-0.487217,-1.193519,-1.504026,
+ 0.100131,0.509748,-0.854477,-0.505045,-0.913827,-1.645612,
+ 0.246802,0.252523,-0.935586,-0.04157,-1.143825,-1.395176,
+ 0.100131,0.509748,-0.854477,-0.505045,-0.913827,-1.645612,
+ 0.206788,0.399922,-0.892917,0.021051,-0.831931,-1.511548,
+ 0.274567,0.116527,-0.954481,-0.071941,-1.346991,-1.237379,
+ 0.078896,0.195617,-0.977502,-0.524231,-1.399266,-1.313019,
+ 0.063174,0.351351,-0.93411,-0.487217,-1.193519,-1.504026,
+ 0.274567,0.116527,-0.954481,-0.071941,-1.346991,-1.237379,
+ 0.063174,0.351351,-0.93411,-0.487217,-1.193519,-1.504026,
+ 0.246802,0.252523,-0.935586,-0.04157,-1.143825,-1.395176,
+ 0.303729,-0.050718,-0.951408,-0.0723,-1.450245,-1.087397,
+ 0.097816,-0.016117,-0.995074,-0.526127,-1.495,-1.167736,
+ 0.078896,0.195617,-0.977502,-0.524231,-1.399266,-1.313019,
+ 0.303729,-0.050718,-0.951408,-0.0723,-1.450245,-1.087397,
+ 0.078896,0.195617,-0.977502,-0.524231,-1.399266,-1.313019,
+ 0.274567,0.116527,-0.954481,-0.071941,-1.346991,-1.237379,
+ 0.33122,-0.270106,-0.904067,-0.063012,-1.583021,-0.865082,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ 0.097816,-0.016117,-0.995074,-0.526127,-1.495,-1.167736,
+ 0.33122,-0.270106,-0.904067,-0.063012,-1.583021,-0.865082,
+ 0.097816,-0.016117,-0.995074,-0.526127,-1.495,-1.167736,
+ 0.303729,-0.050718,-0.951408,-0.0723,-1.450245,-1.087397,
+ 0.004725,-0.680391,-0.732834,-0.894132,1.712652,-0.151911,
+ -0.267766,-0.862787,-0.428835,-1.215563,1.757097,-0.133494,
+ -0.065586,-0.997847,0,-1.179474,1.786649,0,
+ 0.004725,-0.680391,-0.732834,-0.894132,1.712652,-0.151911,
+ -0.065586,-0.997847,0,-1.179474,1.786649,0,
+ -0.098179,0.995169,0,-0.866132,1.75467,0,
+ 0.034172,-0.858604,-0.511498,-0.954897,1.677544,-0.293034,
+ -0.263452,-0.648591,-0.714089,-1.227613,1.709095,-0.276029,
+ -0.267766,-0.862787,-0.428835,-1.215563,1.757097,-0.133494,
+ 0.034172,-0.858604,-0.511498,-0.954897,1.677544,-0.293034,
+ -0.267766,-0.862787,-0.428835,-1.215563,1.757097,-0.133494,
+ 0.004725,-0.680391,-0.732834,-0.894132,1.712652,-0.151911,
+ 0.037423,-0.986705,-0.158154,-1.017767,1.607824,-0.541965,
+ -0.301558,-0.77828,-0.550766,-1.292756,1.656509,-0.51403,
+ -0.263452,-0.648591,-0.714089,-1.227613,1.709095,-0.276029,
+ 0.037423,-0.986705,-0.158154,-1.017767,1.607824,-0.541965,
+ -0.263452,-0.648591,-0.714089,-1.227613,1.709095,-0.276029,
+ 0.034172,-0.858604,-0.511498,-0.954897,1.677544,-0.293034,
+ 0.013768,-0.992402,-0.122267,-1.04607,1.509097,-0.76106,
+ -0.154129,-0.981148,-0.116585,-1.338488,1.613735,-0.725441,
+ -0.301558,-0.77828,-0.550766,-1.292756,1.656509,-0.51403,
+ 0.013768,-0.992402,-0.122267,-1.04607,1.509097,-0.76106,
+ -0.301558,-0.77828,-0.550766,-1.292756,1.656509,-0.51403,
+ 0.037423,-0.986705,-0.158154,-1.017767,1.607824,-0.541965,
+ 0.076524,0.950336,-0.301672,-1.115594,1.39238,-0.819623,
+ 0.095331,0.952335,-0.289775,-1.403848,1.533059,-0.902827,
+ -0.154129,-0.981148,-0.116585,-1.338488,1.613735,-0.725441,
+ 0.076524,0.950336,-0.301672,-1.115594,1.39238,-0.819623,
+ -0.154129,-0.981148,-0.116585,-1.338488,1.613735,-0.725441,
+ 0.013768,-0.992402,-0.122267,-1.04607,1.509097,-0.76106,
+ 0.100598,0.942931,-0.317428,-1.278903,1.192051,-0.946843,
+ 0.10291,0.954344,-0.280422,-1.551526,1.400025,-1.050193,
+ 0.095331,0.952335,-0.289775,-1.403848,1.533059,-0.902827,
+ 0.100598,0.942931,-0.317428,-1.278903,1.192051,-0.946843,
+ 0.095331,0.952335,-0.289775,-1.403848,1.533059,-0.902827,
+ 0.076524,0.950336,-0.301672,-1.115594,1.39238,-0.819623,
+ 0.150328,0.92948,-0.336851,-1.200768,0.978822,-1.103391,
+ 0.172251,0.950689,-0.257916,-1.552899,1.128654,-1.15104,
+ 0.10291,0.954344,-0.280422,-1.551526,1.400025,-1.050193,
+ 0.150328,0.92948,-0.336851,-1.200768,0.978822,-1.103391,
+ 0.10291,0.954344,-0.280422,-1.551526,1.400025,-1.050193,
+ 0.100598,0.942931,-0.317428,-1.278903,1.192051,-0.946843,
+ 0.235667,0.756618,-0.60991,-1.147922,0.807955,-1.254191,
+ 0.28101,0.853935,-0.437982,-1.454529,0.875045,-1.238858,
+ 0.172251,0.950689,-0.257916,-1.552899,1.128654,-1.15104,
+ 0.235667,0.756618,-0.60991,-1.147922,0.807955,-1.254191,
+ 0.172251,0.950689,-0.257916,-1.552899,1.128654,-1.15104,
+ 0.150328,0.92948,-0.336851,-1.200768,0.978822,-1.103391,
+ 0.305452,0.425365,-0.851918,-1.120716,0.424016,-1.45699,
+ 0.381239,0.555717,-0.738807,-1.405685,0.573835,-1.352181,
+ 0.28101,0.853935,-0.437982,-1.454529,0.875045,-1.238858,
+ 0.305452,0.425365,-0.851918,-1.120716,0.424016,-1.45699,
+ 0.28101,0.853935,-0.437982,-1.454529,0.875045,-1.238858,
+ 0.235667,0.756618,-0.60991,-1.147922,0.807955,-1.254191,
+ 0.325482,0.443544,-0.835063,-1.077307,0.165008,-1.553393,
+ 0.376012,0.360026,-0.853813,-1.479588,0.295746,-1.440042,
+ 0.381239,0.555717,-0.738807,-1.405685,0.573835,-1.352181,
+ 0.325482,0.443544,-0.835063,-1.077307,0.165008,-1.553393,
+ 0.381239,0.555717,-0.738807,-1.405685,0.573835,-1.352181,
+ 0.305452,0.425365,-0.851918,-1.120716,0.424016,-1.45699,
+ 0.242426,0.58207,-0.77616,-1.053434,-0.342553,-1.690245,
+ 0.207079,0.373404,-0.904261,-1.489699,-0.024215,-1.510987,
+ 0.376012,0.360026,-0.853813,-1.479588,0.295746,-1.440042,
+ 0.242426,0.58207,-0.77616,-1.053434,-0.342553,-1.690245,
+ 0.376012,0.360026,-0.853813,-1.479588,0.295746,-1.440042,
+ 0.325482,0.443544,-0.835063,-1.077307,0.165008,-1.553393,
+ 0.070189,0.510248,-0.857158,-1.077209,-0.869649,-1.633144,
+ -0.045242,0.348413,-0.936249,-1.395501,-0.698702,-1.553257,
+ 0.207079,0.373404,-0.904261,-1.489699,-0.024215,-1.510987,
+ 0.070189,0.510248,-0.857158,-1.077209,-0.869649,-1.633144,
+ 0.207079,0.373404,-0.904261,-1.489699,-0.024215,-1.510987,
+ 0.242426,0.58207,-0.77616,-1.053434,-0.342553,-1.690245,
+ -0.078623,0.370994,-0.925301,-1.061272,-1.141877,-1.49623,
+ -0.212948,0.334057,-0.918182,-1.376176,-0.948757,-1.451608,
+ -0.045242,0.348413,-0.936249,-1.395501,-0.698702,-1.553257,
+ -0.078623,0.370994,-0.925301,-1.061272,-1.141877,-1.49623,
+ -0.045242,0.348413,-0.936249,-1.395501,-0.698702,-1.553257,
+ 0.070189,0.510248,-0.857158,-1.077209,-0.869649,-1.633144,
+ -0.123389,0.256577,-0.958615,-1.001366,-1.335897,-1.353338,
+ -0.282152,0.285245,-0.915983,-1.402349,-1.127845,-1.309055,
+ -0.212948,0.334057,-0.918182,-1.376176,-0.948757,-1.451608,
+ -0.123389,0.256577,-0.958615,-1.001366,-1.335897,-1.353338,
+ -0.212948,0.334057,-0.918182,-1.376176,-0.948757,-1.451608,
+ -0.078623,0.370994,-0.925301,-1.061272,-1.141877,-1.49623,
+ -0.165685,0.059692,-0.98437,-0.952525,-1.440582,-1.16865,
+ -0.326048,0.118611,-0.937883,-1.407658,-1.236026,-1.11293,
+ -0.282152,0.285245,-0.915983,-1.402349,-1.127845,-1.309055,
+ -0.165685,0.059692,-0.98437,-0.952525,-1.440582,-1.16865,
+ -0.282152,0.285245,-0.915983,-1.402349,-1.127845,-1.309055,
+ -0.123389,0.256577,-0.958615,-1.001366,-1.335897,-1.353338,
+ -0.031021,0.098798,-0.994624,1.644178,-0.857872,-1.208494,
+ -0.039079,0.203923,-0.978207,1.640095,-0.674556,-1.246804,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ 0.12742,0.021045,-0.991626,1.462507,1.745481,-0.222394,
+ 0.779025,-0.626993,0,1.456656,1.785879,0,
+ -0.720176,-0.693792,0,1.794465,1.787719,0,
+ 0.12742,0.021045,-0.991626,1.462507,1.745481,-0.222394,
+ -0.720176,-0.693792,0,1.794465,1.787719,0,
+ 0.513731,-0.239493,-0.823847,1.807583,1.756546,-0.177627,
+ 0.206882,-0.117024,-0.971342,1.483832,1.697594,-0.288781,
+ 0.12742,0.021045,-0.991626,1.462507,1.745481,-0.222394,
+ 0.513731,-0.239493,-0.823847,1.807583,1.756546,-0.177627,
+ 0.206882,-0.117024,-0.971342,1.483832,1.697594,-0.288781,
+ 0.513731,-0.239493,-0.823847,1.807583,1.756546,-0.177627,
+ 0.506924,-0.406124,-0.760323,1.798719,1.714447,-0.259352,
+ 0.218538,-0.213954,-0.952084,1.497138,1.618935,-0.401108,
+ 0.206882,-0.117024,-0.971342,1.483832,1.697594,-0.288781,
+ 0.506924,-0.406124,-0.760323,1.798719,1.714447,-0.259352,
+ 0.218538,-0.213954,-0.952084,1.497138,1.618935,-0.401108,
+ 0.506924,-0.406124,-0.760323,1.798719,1.714447,-0.259352,
+ 0.552632,-0.484765,-0.677938,1.821946,1.618209,-0.403751,
+ 0.304965,-0.136677,-0.942505,1.504951,1.483493,-0.585976,
+ 0.218538,-0.213954,-0.952084,1.497138,1.618935,-0.401108,
+ 0.552632,-0.484765,-0.677938,1.821946,1.618209,-0.403751,
+ 0.304965,-0.136677,-0.942505,1.504951,1.483493,-0.585976,
+ 0.552632,-0.484765,-0.677938,1.821946,1.618209,-0.403751,
+ 0.696414,-0.392791,-0.600602,1.859443,1.450393,-0.632222,
+ -0.061264,0.921927,-0.382487,1.517126,1.334367,-0.741076,
+ 0.304965,-0.136677,-0.942505,1.504951,1.483493,-0.585976,
+ 0.696414,-0.392791,-0.600602,1.859443,1.450393,-0.632222,
+ -0.061264,0.921927,-0.382487,1.517126,1.334367,-0.741076,
+ 0.696414,-0.392791,-0.600602,1.859443,1.450393,-0.632222,
+ 0.026499,0.942993,-0.331757,1.958254,1.130271,-0.861813,
+ -0.070642,0.834207,-0.546908,1.570685,0.938327,-0.989108,
+ -0.061264,0.921927,-0.382487,1.517126,1.334367,-0.741076,
+ 0.026499,0.942993,-0.331757,1.958254,1.130271,-0.861813,
+ -0.070642,0.834207,-0.546908,1.570685,0.938327,-0.989108,
+ 0.026499,0.942993,-0.331757,1.958254,1.130271,-0.861813,
+ 0.019336,0.837694,-0.545798,1.975941,0.827957,-1.018423,
+ -0.055544,0.828008,-0.557959,1.582203,0.771083,-1.06818,
+ -0.070642,0.834207,-0.546908,1.570685,0.938327,-0.989108,
+ 0.019336,0.837694,-0.545798,1.975941,0.827957,-1.018423,
+ -0.047373,0.758242,-0.65025,1.63008,0.420236,-1.172369,
+ -0.055544,0.828008,-0.557959,1.582203,0.771083,-1.06818,
+ 0.019336,0.837694,-0.545798,1.975941,0.827957,-1.018423,
+ -0.047373,0.758242,-0.65025,1.63008,0.420236,-1.172369,
+ 0.019336,0.837694,-0.545798,1.975941,0.827957,-1.018423,
+ 0.052979,0.780732,-0.622616,2.023441,0.529338,-1.144399,
+ -0.046579,0.627301,-0.777383,1.649027,0.224458,-1.211969,
+ -0.047373,0.758242,-0.65025,1.63008,0.420236,-1.172369,
+ 0.052979,0.780732,-0.622616,2.023441,0.529338,-1.144399,
+ -0.046579,0.627301,-0.777383,1.649027,0.224458,-1.211969,
+ 0.052979,0.780732,-0.622616,2.023441,0.529338,-1.144399,
+ 0.115383,0.694944,-0.709746,2.0817,0.283249,-1.259461,
+ -0.05128,0.509983,-0.858655,1.660355,0.019397,-1.246002,
+ -0.046579,0.627301,-0.777383,1.649027,0.224458,-1.211969,
+ 0.115383,0.694944,-0.709746,2.0817,0.283249,-1.259461,
+ -0.05128,0.509983,-0.858655,1.660355,0.019397,-1.246002,
+ 0.115383,0.694944,-0.709746,2.0817,0.283249,-1.259461,
+ 0.146937,0.551946,-0.820832,2.14179,-0.055306,-1.295565,
+ -0.02226,0.394285,-0.918719,1.664159,-0.189659,-1.266729,
+ -0.05128,0.509983,-0.858655,1.660355,0.019397,-1.246002,
+ 0.146937,0.551946,-0.820832,2.14179,-0.055306,-1.295565,
+ -0.02226,0.394285,-0.918719,1.664159,-0.189659,-1.266729,
+ 0.146937,0.551946,-0.820832,2.14179,-0.055306,-1.295565,
+ 0.12555,0.440005,-0.889176,2.136269,-0.187666,-1.278057,
+ -0.026262,0.311275,-0.949957,1.678622,-0.410061,-1.291177,
+ -0.02226,0.394285,-0.918719,1.664159,-0.189659,-1.266729,
+ 0.12555,0.440005,-0.889176,2.136269,-0.187666,-1.278057,
+ -0.026262,0.311275,-0.949957,1.678622,-0.410061,-1.291177,
+ 0.12555,0.440005,-0.889176,2.136269,-0.187666,-1.278057,
+ 0.10998,0.376752,-0.919762,2.108912,-0.357128,-1.259691,
+ -0.039079,0.203923,-0.978207,1.640095,-0.674556,-1.246804,
+ -0.026262,0.311275,-0.949957,1.678622,-0.410061,-1.291177,
+ 0.10998,0.376752,-0.919762,2.108912,-0.357128,-1.259691,
+ -0.039079,0.203923,-0.978207,1.640095,-0.674556,-1.246804,
+ 0.10998,0.376752,-0.919762,2.108912,-0.357128,-1.259691,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ -0.809154,0.004832,-0.587577,2.158585,-0.955809,-1.113647,
+ -0.965506,-0.176768,0.191185,2.058189,-0.931238,-1.163518,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ -0.965506,-0.176768,0.191185,2.058189,-0.931238,-1.163518,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ 0.561574,-0.148323,-0.814024,2.245624,-0.864372,-0.995778,
+ -0.742985,0.015712,-0.669123,2.222082,-0.957342,-1.014137,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ 0.859237,-0.17312,-0.481395,1.635139,-0.965221,-1.184968,
+ -0.031021,0.098798,-0.994624,1.644178,-0.857872,-1.208494,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ -0.942755,-0.29871,0.148273,1.867657,-0.920633,-1.206933,
+ 0.859237,-0.17312,-0.481395,1.635139,-0.965221,-1.184968,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ -0.965506,-0.176768,0.191185,2.058189,-0.931238,-1.163518,
+ -0.942755,-0.29871,0.148273,1.867657,-0.920633,-1.206933,
+ 0.097864,0.250653,-0.963118,2.013534,-0.662303,-1.191491,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ -0.217942,-0.897186,0.384134,1.721211,-1.590185,-0.601932,
+ -0.084936,-0.226589,0.97028,1.963153,-1.588839,-0.612861,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ -0.084936,-0.226589,0.97028,1.963153,-1.588839,-0.612861,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ -0.148631,-0.373855,-0.915501,1.210555,-1.460061,-0.576841,
+ -0.305786,-0.232288,-0.923329,1.19204,-1.330605,-0.678707,
+ 0.080262,-0.270606,-0.959339,1.328862,-1.352627,-0.758733,
+ -0.148631,-0.373855,-0.915501,1.210555,-1.460061,-0.576841,
+ 0.080262,-0.270606,-0.959339,1.328862,-1.352627,-0.758733,
+ -0.794709,-0.185222,0.578041,1.451825,-1.576856,-0.702758,
+ -0.185127,-0.491394,-0.851035,1.223415,-1.532658,-0.434522,
+ -0.148631,-0.373855,-0.915501,1.210555,-1.460061,-0.576841,
+ -0.794709,-0.185222,0.578041,1.451825,-1.576856,-0.702758,
+ -0.185127,-0.491394,-0.851035,1.223415,-1.532658,-0.434522,
+ -0.794709,-0.185222,0.578041,1.451825,-1.576856,-0.702758,
+ -0.493424,-0.165611,0.853877,1.599889,-1.595526,-0.623185,
+ -0.084936,-0.226589,0.97028,1.963153,-1.588839,-0.612861,
+ 0.552828,-0.750794,-0.36151,2.0482,-1.581983,-0.555832,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ 0.770209,-0.637792,0,1.289448,-1.546597,0,
+ -0.185127,-0.491394,-0.851035,1.223415,-1.532658,-0.434522,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ -0.185127,-0.491394,-0.851035,1.223415,-1.532658,-0.434522,
+ -0.493424,-0.165611,0.853877,1.599889,-1.595526,-0.623185,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ -0.493424,-0.165611,0.853877,1.599889,-1.595526,-0.623185,
+ -0.217942,-0.897186,0.384134,1.721211,-1.590185,-0.601932,
+ -0.305786,-0.232288,-0.923329,1.19204,-1.330605,-0.678707,
+ 0.102263,-0.969566,-0.222452,1.219163,-1.218342,-0.823029,
+ 0.02992,-0.202031,-0.978922,1.348219,-1.282064,-0.845204,
+ -0.305786,-0.232288,-0.923329,1.19204,-1.330605,-0.678707,
+ 0.02992,-0.202031,-0.978922,1.348219,-1.282064,-0.845204,
+ 0.080262,-0.270606,-0.959339,1.328862,-1.352627,-0.758733,
+ 0.152876,-0.742504,-0.652163,1.252961,-0.928825,-1.001643,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ 0.045651,-0.004499,-0.998947,1.337875,-0.945716,-1.021299,
+ 0.120054,-0.825719,-0.551157,1.230116,-1.085439,-0.894543,
+ 0.152876,-0.742504,-0.652163,1.252961,-0.928825,-1.001643,
+ 0.045651,-0.004499,-0.998947,1.337875,-0.945716,-1.021299,
+ 0.120054,-0.825719,-0.551157,1.230116,-1.085439,-0.894543,
+ 0.045651,-0.004499,-0.998947,1.337875,-0.945716,-1.021299,
+ 0.023392,-0.110333,-0.993619,1.310865,-1.136322,-0.914838,
+ 0.102263,-0.969566,-0.222452,1.219163,-1.218342,-0.823029,
+ 0.120054,-0.825719,-0.551157,1.230116,-1.085439,-0.894543,
+ 0.023392,-0.110333,-0.993619,1.310865,-1.136322,-0.914838,
+ 0.102263,-0.969566,-0.222452,1.219163,-1.218342,-0.823029,
+ 0.023392,-0.110333,-0.993619,1.310865,-1.136322,-0.914838,
+ 0.02992,-0.202031,-0.978922,1.348219,-1.282064,-0.845204,
+ -0.031021,0.098798,-0.994624,1.644178,-0.857872,-1.208494,
+ 0.859237,-0.17312,-0.481395,1.635139,-0.965221,-1.184968,
+ 0.714393,-0.109998,-0.691045,1.536037,-0.985876,-1.185597,
+ -0.039079,0.203923,-0.978207,1.640095,-0.674556,-1.246804,
+ -0.031021,0.098798,-0.994624,1.644178,-0.857872,-1.208494,
+ 0.714393,-0.109998,-0.691045,1.536037,-0.985876,-1.185597,
+ -0.039079,0.203923,-0.978207,1.640095,-0.674556,-1.246804,
+ 0.714393,-0.109998,-0.691045,1.536037,-0.985876,-1.185597,
+ 0.419396,-0.035927,-0.907092,1.428883,-0.98669,-1.133905,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ -0.026262,0.311275,-0.949957,1.678622,-0.410061,-1.291177,
+ -0.039079,0.203923,-0.978207,1.640095,-0.674556,-1.246804,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ -0.039079,0.203923,-0.978207,1.640095,-0.674556,-1.246804,
+ 0.419396,-0.035927,-0.907092,1.428883,-0.98669,-1.133905,
+ 0.779025,-0.626993,0,1.456656,1.785879,0,
+ 0.12742,0.021045,-0.991626,1.462507,1.745481,-0.222394,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ -0.185127,-0.491394,-0.851035,1.223415,-1.532658,-0.434522,
+ 0.770209,-0.637792,0,1.289448,-1.546597,0,
+ 0.92802,-0.37253,0,0.927497,-1.558489,0,
+ -0.185127,-0.491394,-0.851035,1.223415,-1.532658,-0.434522,
+ 0.92802,-0.37253,0,0.927497,-1.558489,0,
+ 0.213167,-0.525559,-0.823619,0.912989,-1.499314,-0.419547,
+ -0.148631,-0.373855,-0.915501,1.210555,-1.460061,-0.576841,
+ -0.185127,-0.491394,-0.851035,1.223415,-1.532658,-0.434522,
+ 0.213167,-0.525559,-0.823619,0.912989,-1.499314,-0.419547,
+ -0.148631,-0.373855,-0.915501,1.210555,-1.460061,-0.576841,
+ 0.213167,-0.525559,-0.823619,0.912989,-1.499314,-0.419547,
+ 0.23972,-0.400363,-0.884445,0.912699,-1.455066,-0.576185,
+ -0.305786,-0.232288,-0.923329,1.19204,-1.330605,-0.678707,
+ -0.148631,-0.373855,-0.915501,1.210555,-1.460061,-0.576841,
+ 0.23972,-0.400363,-0.884445,0.912699,-1.455066,-0.576185,
+ -0.305786,-0.232288,-0.923329,1.19204,-1.330605,-0.678707,
+ 0.23972,-0.400363,-0.884445,0.912699,-1.455066,-0.576185,
+ 0.25339,-0.287519,-0.923648,0.922703,-1.296032,-0.728307,
+ 0.102263,-0.969566,-0.222452,1.219163,-1.218342,-0.823029,
+ -0.305786,-0.232288,-0.923329,1.19204,-1.330605,-0.678707,
+ 0.25339,-0.287519,-0.923648,0.922703,-1.296032,-0.728307,
+ 0.102263,-0.969566,-0.222452,1.219163,-1.218342,-0.823029,
+ 0.25339,-0.287519,-0.923648,0.922703,-1.296032,-0.728307,
+ 0.187438,-0.340915,-0.921219,0.93066,-1.216516,-0.831196,
+ 0.120054,-0.825719,-0.551157,1.230116,-1.085439,-0.894543,
+ 0.102263,-0.969566,-0.222452,1.219163,-1.218342,-0.823029,
+ 0.187438,-0.340915,-0.921219,0.93066,-1.216516,-0.831196,
+ 0.120054,-0.825719,-0.551157,1.230116,-1.085439,-0.894543,
+ 0.187438,-0.340915,-0.921219,0.93066,-1.216516,-0.831196,
+ 0.114032,-0.218132,-0.969234,0.956456,-1.070504,-0.921063,
+ 0.152876,-0.742504,-0.652163,1.252961,-0.928825,-1.001643,
+ 0.120054,-0.825719,-0.551157,1.230116,-1.085439,-0.894543,
+ 0.114032,-0.218132,-0.969234,0.956456,-1.070504,-0.921063,
+ 0.152876,-0.742504,-0.652163,1.252961,-0.928825,-1.001643,
+ 0.114032,-0.218132,-0.969234,0.956456,-1.070504,-0.921063,
+ 0.10833,0.05569,-0.992554,0.939974,-0.894739,-1.019809,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ 0.152876,-0.742504,-0.652163,1.252961,-0.928825,-1.001643,
+ 0.10833,0.05569,-0.992554,0.939974,-0.894739,-1.019809,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ 0.10833,0.05569,-0.992554,0.939974,-0.894739,-1.019809,
+ 0.107989,0.168108,-0.979836,0.948819,-0.638568,-1.102958,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ 0.107989,0.168108,-0.979836,0.948819,-0.638568,-1.102958,
+ 0.088722,0.251367,-0.963817,0.97453,-0.525273,-1.140353,
+ -0.026262,0.311275,-0.949957,1.678622,-0.410061,-1.291177,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ 0.088722,0.251367,-0.963817,0.97453,-0.525273,-1.140353,
+ -0.026262,0.311275,-0.949957,1.678622,-0.410061,-1.291177,
+ 0.088722,0.251367,-0.963817,0.97453,-0.525273,-1.140353,
+ 0.060533,0.377837,-0.923891,0.960321,-0.308052,-1.243133,
+ -0.02226,0.394285,-0.918719,1.664159,-0.189659,-1.266729,
+ -0.026262,0.311275,-0.949957,1.678622,-0.410061,-1.291177,
+ 0.060533,0.377837,-0.923891,0.960321,-0.308052,-1.243133,
+ -0.02226,0.394285,-0.918719,1.664159,-0.189659,-1.266729,
+ 0.060533,0.377837,-0.923891,0.960321,-0.308052,-1.243133,
+ 0.016737,0.497476,-0.867316,0.943855,-0.101127,-1.274771,
+ -0.05128,0.509983,-0.858655,1.660355,0.019397,-1.246002,
+ -0.02226,0.394285,-0.918719,1.664159,-0.189659,-1.266729,
+ 0.016737,0.497476,-0.867316,0.943855,-0.101127,-1.274771,
+ -0.05128,0.509983,-0.858655,1.660355,0.019397,-1.246002,
+ 0.016737,0.497476,-0.867316,0.943855,-0.101127,-1.274771,
+ -0.024013,0.58573,-0.810151,0.950215,0.042751,-1.256188,
+ -0.046579,0.627301,-0.777383,1.649027,0.224458,-1.211969,
+ -0.05128,0.509983,-0.858655,1.660355,0.019397,-1.246002,
+ -0.024013,0.58573,-0.810151,0.950215,0.042751,-1.256188,
+ -0.046579,0.627301,-0.777383,1.649027,0.224458,-1.211969,
+ -0.024013,0.58573,-0.810151,0.950215,0.042751,-1.256188,
+ -0.057955,0.638634,-0.767325,0.927775,0.195225,-1.233043,
+ -0.047373,0.758242,-0.65025,1.63008,0.420236,-1.172369,
+ -0.046579,0.627301,-0.777383,1.649027,0.224458,-1.211969,
+ -0.057955,0.638634,-0.767325,0.927775,0.195225,-1.233043,
+ -0.047373,0.758242,-0.65025,1.63008,0.420236,-1.172369,
+ -0.057955,0.638634,-0.767325,0.927775,0.195225,-1.233043,
+ -0.069142,0.724976,-0.685295,0.939271,0.379986,-1.185872,
+ -0.055544,0.828008,-0.557959,1.582203,0.771083,-1.06818,
+ -0.047373,0.758242,-0.65025,1.63008,0.420236,-1.172369,
+ -0.069142,0.724976,-0.685295,0.939271,0.379986,-1.185872,
+ -0.055544,0.828008,-0.557959,1.582203,0.771083,-1.06818,
+ -0.069142,0.724976,-0.685295,0.939271,0.379986,-1.185872,
+ -0.06371,0.842533,-0.534864,0.921312,0.755659,-0.99933,
+ -0.070642,0.834207,-0.546908,1.570685,0.938327,-0.989108,
+ -0.055544,0.828008,-0.557959,1.582203,0.771083,-1.06818,
+ -0.06371,0.842533,-0.534864,0.921312,0.755659,-0.99933,
+ -0.070642,0.834207,-0.546908,1.570685,0.938327,-0.989108,
+ -0.06371,0.842533,-0.534864,0.921312,0.755659,-0.99933,
+ 0.791391,-0.43807,-0.426373,0.857323,0.985001,-0.874029,
+ -0.070642,0.834207,-0.546908,1.570685,0.938327,-0.989108,
+ 0.791391,-0.43807,-0.426373,0.857323,0.985001,-0.874029,
+ 0.623235,-0.257987,-0.738255,0.760722,1.205036,-0.700545,
+ -0.061264,0.921927,-0.382487,1.517126,1.334367,-0.741076,
+ -0.070642,0.834207,-0.546908,1.570685,0.938327,-0.989108,
+ 0.623235,-0.257987,-0.738255,0.760722,1.205036,-0.700545,
+ -0.061264,0.921927,-0.382487,1.517126,1.334367,-0.741076,
+ 0.623235,-0.257987,-0.738255,0.760722,1.205036,-0.700545,
+ 0.631747,-0.24686,-0.734817,0.725959,1.478055,-0.461804,
+ 0.304965,-0.136677,-0.942505,1.504951,1.483493,-0.585976,
+ -0.061264,0.921927,-0.382487,1.517126,1.334367,-0.741076,
+ 0.631747,-0.24686,-0.734817,0.725959,1.478055,-0.461804,
+ 0.304965,-0.136677,-0.942505,1.504951,1.483493,-0.585976,
+ 0.631747,-0.24686,-0.734817,0.725959,1.478055,-0.461804,
+ 0.659349,-0.248914,-0.709437,0.737904,1.604213,-0.281713,
+ 0.218538,-0.213954,-0.952084,1.497138,1.618935,-0.401108,
+ 0.304965,-0.136677,-0.942505,1.504951,1.483493,-0.585976,
+ 0.659349,-0.248914,-0.709437,0.737904,1.604213,-0.281713,
+ 0.206882,-0.117024,-0.971342,1.483832,1.697594,-0.288781,
+ 0.218538,-0.213954,-0.952084,1.497138,1.618935,-0.401108,
+ 0.659349,-0.248914,-0.709437,0.737904,1.604213,-0.281713,
+ 0.206882,-0.117024,-0.971342,1.483832,1.697594,-0.288781,
+ 0.659349,-0.248914,-0.709437,0.737904,1.604213,-0.281713,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.12742,0.021045,-0.991626,1.462507,1.745481,-0.222394,
+ 0.206882,-0.117024,-0.971342,1.483832,1.697594,-0.288781,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ -0.208715,-0.624734,-0.752427,0.223642,1.684075,-0.160743,
+ 0.335626,-0.735806,-0.588171,-0.221516,1.686349,-0.151403,
+ -0.039092,-0.999236,0,-0.228904,1.734267,0,
+ -0.208715,-0.624734,-0.752427,0.223642,1.684075,-0.160743,
+ -0.039092,-0.999236,0,-0.228904,1.734267,0,
+ 0.566114,-0.824327,0,0.234527,1.730117,0,
+ -0.251063,-0.683027,-0.685888,0.23733,1.595746,-0.288672,
+ 0.303379,-0.73119,-0.611002,-0.267035,1.627058,-0.266577,
+ 0.335626,-0.735806,-0.588171,-0.221516,1.686349,-0.151403,
+ -0.251063,-0.683027,-0.685888,0.23733,1.595746,-0.288672,
+ 0.335626,-0.735806,-0.588171,-0.221516,1.686349,-0.151403,
+ -0.208715,-0.624734,-0.752427,0.223642,1.684075,-0.160743,
+ -0.252973,-0.819125,-0.51482,0.289039,1.496446,-0.430055,
+ 0.298349,-0.828641,-0.473647,-0.247999,1.565146,-0.389142,
+ 0.303379,-0.73119,-0.611002,-0.267035,1.627058,-0.266577,
+ -0.252973,-0.819125,-0.51482,0.289039,1.496446,-0.430055,
+ 0.303379,-0.73119,-0.611002,-0.267035,1.627058,-0.266577,
+ -0.251063,-0.683027,-0.685888,0.23733,1.595746,-0.288672,
+ -0.13716,-0.98063,-0.139827,0.305671,1.298417,-0.629719,
+ 0.267279,-0.944479,-0.191107,-0.179548,1.471301,-0.544513,
+ 0.298349,-0.828641,-0.473647,-0.247999,1.565146,-0.389142,
+ -0.13716,-0.98063,-0.139827,0.305671,1.298417,-0.629719,
+ 0.298349,-0.828641,-0.473647,-0.247999,1.565146,-0.389142,
+ -0.252973,-0.819125,-0.51482,0.289039,1.496446,-0.430055,
+ 0.007127,0.896038,-0.44392,0.243473,1.134082,-0.819993,
+ 0.029207,0.916877,-0.398099,-0.192546,1.305535,-0.70008,
+ 0.267279,-0.944479,-0.191107,-0.179548,1.471301,-0.544513,
+ 0.007127,0.896038,-0.44392,0.243473,1.134082,-0.819993,
+ 0.267279,-0.944479,-0.191107,-0.179548,1.471301,-0.544513,
+ -0.13716,-0.98063,-0.139827,0.305671,1.298417,-0.629719,
+ 0.009434,0.815301,-0.578961,0.316341,0.785311,-1.08626,
+ 0.051939,0.876473,-0.478641,-0.406155,1.005088,-0.971088,
+ 0.029207,0.916877,-0.398099,-0.192546,1.305535,-0.70008,
+ 0.009434,0.815301,-0.578961,0.316341,0.785311,-1.08626,
+ 0.029207,0.916877,-0.398099,-0.192546,1.305535,-0.70008,
+ 0.007127,0.896038,-0.44392,0.243473,1.134082,-0.819993,
+ 0.040473,0.760778,-0.647749,0.539252,0.353984,-1.254493,
+ 0.092427,0.86666,-0.490263,-0.11519,0.458427,-1.346197,
+ 0.051939,0.876473,-0.478641,-0.406155,1.005088,-0.971088,
+ 0.040473,0.760778,-0.647749,0.539252,0.353984,-1.254493,
+ 0.051939,0.876473,-0.478641,-0.406155,1.005088,-0.971088,
+ 0.009434,0.815301,-0.578961,0.316341,0.785311,-1.08626,
+ 0.080812,0.697931,-0.711591,0.53915,0.148262,-1.321014,
+ 0.129186,0.757141,-0.64035,0.005537,0.163519,-1.472265,
+ 0.092427,0.86666,-0.490263,-0.11519,0.458427,-1.346197,
+ 0.080812,0.697931,-0.711591,0.53915,0.148262,-1.321014,
+ 0.092427,0.86666,-0.490263,-0.11519,0.458427,-1.346197,
+ 0.040473,0.760778,-0.647749,0.539252,0.353984,-1.254493,
+ 0.09853,0.626571,-0.773111,0.516872,-0.020713,-1.356627,
+ 0.101272,0.634315,-0.766413,0.018086,0.002865,-1.523199,
+ 0.129186,0.757141,-0.64035,0.005537,0.163519,-1.472265,
+ 0.09853,0.626571,-0.773111,0.516872,-0.020713,-1.356627,
+ 0.129186,0.757141,-0.64035,0.005537,0.163519,-1.472265,
+ 0.080812,0.697931,-0.711591,0.53915,0.148262,-1.321014,
+ 0.111825,0.518485,-0.847743,0.542386,-0.188227,-1.370375,
+ 0.089104,0.59547,-0.798421,0.034087,-0.225059,-1.542949,
+ 0.101272,0.634315,-0.766413,0.018086,0.002865,-1.523199,
+ 0.111825,0.518485,-0.847743,0.542386,-0.188227,-1.370375,
+ 0.101272,0.634315,-0.766413,0.018086,0.002865,-1.523199,
+ 0.09853,0.626571,-0.773111,0.516872,-0.020713,-1.356627,
+ 0.163727,0.387435,-0.907242,0.546875,-0.39094,-1.363244,
+ 0.147941,0.53134,-0.834141,0.010486,-0.502317,-1.576297,
+ 0.089104,0.59547,-0.798421,0.034087,-0.225059,-1.542949,
+ 0.163727,0.387435,-0.907242,0.546875,-0.39094,-1.363244,
+ 0.089104,0.59547,-0.798421,0.034087,-0.225059,-1.542949,
+ 0.111825,0.518485,-0.847743,0.542386,-0.188227,-1.370375,
+ 0.227108,0.258715,-0.938876,0.550658,-0.633015,-1.331311,
+ 0.206788,0.399922,-0.892917,0.021051,-0.831931,-1.511548,
+ 0.147941,0.53134,-0.834141,0.010486,-0.502317,-1.576297,
+ 0.227108,0.258715,-0.938876,0.550658,-0.633015,-1.331311,
+ 0.147941,0.53134,-0.834141,0.010486,-0.502317,-1.576297,
+ 0.163727,0.387435,-0.907242,0.546875,-0.39094,-1.363244,
+ 0.263434,0.119819,-0.957207,0.527724,-0.862854,-1.253811,
+ 0.246802,0.252523,-0.935586,-0.04157,-1.143825,-1.395176,
+ 0.206788,0.399922,-0.892917,0.021051,-0.831931,-1.511548,
+ 0.263434,0.119819,-0.957207,0.527724,-0.862854,-1.253811,
+ 0.206788,0.399922,-0.892917,0.021051,-0.831931,-1.511548,
+ 0.227108,0.258715,-0.938876,0.550658,-0.633015,-1.331311,
+ 0.304293,-0.024391,-0.952266,0.544825,-1.133123,-1.096902,
+ 0.274567,0.116527,-0.954481,-0.071941,-1.346991,-1.237379,
+ 0.246802,0.252523,-0.935586,-0.04157,-1.143825,-1.395176,
+ 0.304293,-0.024391,-0.952266,0.544825,-1.133123,-1.096902,
+ 0.246802,0.252523,-0.935586,-0.04157,-1.143825,-1.395176,
+ 0.263434,0.119819,-0.957207,0.527724,-0.862854,-1.253811,
+ 0.372063,-0.134052,-0.918477,0.530629,-1.316423,-0.929842,
+ 0.303729,-0.050718,-0.951408,-0.0723,-1.450245,-1.087397,
+ 0.274567,0.116527,-0.954481,-0.071941,-1.346991,-1.237379,
+ 0.372063,-0.134052,-0.918477,0.530629,-1.316423,-0.929842,
+ 0.274567,0.116527,-0.954481,-0.071941,-1.346991,-1.237379,
+ 0.304293,-0.024391,-0.952266,0.544825,-1.133123,-1.096902,
+ 0.424286,-0.254348,-0.869073,0.538756,-1.408602,-0.764911,
+ 0.33122,-0.270106,-0.904067,-0.063012,-1.583021,-0.865082,
+ 0.303729,-0.050718,-0.951408,-0.0723,-1.450245,-1.087397,
+ 0.424286,-0.254348,-0.869073,0.538756,-1.408602,-0.764911,
+ 0.303729,-0.050718,-0.951408,-0.0723,-1.450245,-1.087397,
+ 0.372063,-0.134052,-0.918477,0.530629,-1.316423,-0.929842,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.327725,-0.489439,-0.808112,-0.07847,-1.688266,-0.80023,
+ 0.33122,-0.270106,-0.904067,-0.063012,-1.583021,-0.865082,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.33122,-0.270106,-0.904067,-0.063012,-1.583021,-0.865082,
+ 0.424286,-0.254348,-0.869073,0.538756,-1.408602,-0.764911,
+ 0.420794,-0.405156,-0.811653,0.489819,-1.524947,-0.672392,
+ 0.291858,-0.681117,-0.67149,-0.094135,-1.769086,-0.556924,
+ 0.327725,-0.489439,-0.808112,-0.07847,-1.688266,-0.80023,
+ 0.235033,-0.721825,-0.650944,-0.559706,1.69418,-0.186107,
+ 0.004725,-0.680391,-0.732834,-0.894132,1.712652,-0.151911,
+ -0.098179,0.995169,0,-0.866132,1.75467,0,
+ 0.235033,-0.721825,-0.650944,-0.559706,1.69418,-0.186107,
+ -0.098179,0.995169,0,-0.866132,1.75467,0,
+ -0.009814,-0.999952,0,-0.547248,1.742126,0,
+ 0.244106,-0.79539,-0.554768,-0.557624,1.641278,-0.271462,
+ 0.034172,-0.858604,-0.511498,-0.954897,1.677544,-0.293034,
+ 0.004725,-0.680391,-0.732834,-0.894132,1.712652,-0.151911,
+ 0.244106,-0.79539,-0.554768,-0.557624,1.641278,-0.271462,
+ 0.004725,-0.680391,-0.732834,-0.894132,1.712652,-0.151911,
+ 0.235033,-0.721825,-0.650944,-0.559706,1.69418,-0.186107,
+ 0.213948,-0.943673,-0.252405,-0.626493,1.585426,-0.443136,
+ 0.037423,-0.986705,-0.158154,-1.017767,1.607824,-0.541965,
+ 0.034172,-0.858604,-0.511498,-0.954897,1.677544,-0.293034,
+ 0.213948,-0.943673,-0.252405,-0.626493,1.585426,-0.443136,
+ 0.034172,-0.858604,-0.511498,-0.954897,1.677544,-0.293034,
+ 0.244106,-0.79539,-0.554768,-0.557624,1.641278,-0.271462,
+ 0.190577,-0.970681,-0.146488,-0.597781,1.48962,-0.641047,
+ 0.013768,-0.992402,-0.122267,-1.04607,1.509097,-0.76106,
+ 0.037423,-0.986705,-0.158154,-1.017767,1.607824,-0.541965,
+ 0.190577,-0.970681,-0.146488,-0.597781,1.48962,-0.641047,
+ 0.037423,-0.986705,-0.158154,-1.017767,1.607824,-0.541965,
+ 0.213948,-0.943673,-0.252405,-0.626493,1.585426,-0.443136,
+ 0.048754,0.934073,-0.353738,-0.674657,1.333008,-0.761059,
+ 0.076524,0.950336,-0.301672,-1.115594,1.39238,-0.819623,
+ 0.013768,-0.992402,-0.122267,-1.04607,1.509097,-0.76106,
+ 0.048754,0.934073,-0.353738,-0.674657,1.333008,-0.761059,
+ 0.013768,-0.992402,-0.122267,-1.04607,1.509097,-0.76106,
+ 0.190577,-0.970681,-0.146488,-0.597781,1.48962,-0.641047,
+ 0.081223,0.915345,-0.394394,-0.910602,1.204118,-0.83774,
+ 0.100598,0.942931,-0.317428,-1.278903,1.192051,-0.946843,
+ 0.076524,0.950336,-0.301672,-1.115594,1.39238,-0.819623,
+ 0.081223,0.915345,-0.394394,-0.910602,1.204118,-0.83774,
+ 0.076524,0.950336,-0.301672,-1.115594,1.39238,-0.819623,
+ 0.048754,0.934073,-0.353738,-0.674657,1.333008,-0.761059,
+ 0.120116,0.912706,-0.390565,-0.969076,0.901205,-1.146223,
+ 0.150328,0.92948,-0.336851,-1.200768,0.978822,-1.103391,
+ 0.100598,0.942931,-0.317428,-1.278903,1.192051,-0.946843,
+ 0.120116,0.912706,-0.390565,-0.969076,0.901205,-1.146223,
+ 0.100598,0.942931,-0.317428,-1.278903,1.192051,-0.946843,
+ 0.081223,0.915345,-0.394394,-0.910602,1.204118,-0.83774,
+ 0.1717,0.74071,-0.649514,-0.752416,0.438132,-1.467349,
+ 0.235667,0.756618,-0.60991,-1.147922,0.807955,-1.254191,
+ 0.150328,0.92948,-0.336851,-1.200768,0.978822,-1.103391,
+ 0.1717,0.74071,-0.649514,-0.752416,0.438132,-1.467349,
+ 0.150328,0.92948,-0.336851,-1.200768,0.978822,-1.103391,
+ 0.120116,0.912706,-0.390565,-0.969076,0.901205,-1.146223,
+ 0.167704,0.495674,-0.852164,-0.645496,0.179261,-1.584316,
+ 0.305452,0.425365,-0.851918,-1.120716,0.424016,-1.45699,
+ 0.235667,0.756618,-0.60991,-1.147922,0.807955,-1.254191,
+ 0.167704,0.495674,-0.852164,-0.645496,0.179261,-1.584316,
+ 0.235667,0.756618,-0.60991,-1.147922,0.807955,-1.254191,
+ 0.1717,0.74071,-0.649514,-0.752416,0.438132,-1.467349,
+ 0.140536,0.558684,-0.817388,-0.536767,-0.144454,-1.682232,
+ 0.325482,0.443544,-0.835063,-1.077307,0.165008,-1.553393,
+ 0.305452,0.425365,-0.851918,-1.120716,0.424016,-1.45699,
+ 0.140536,0.558684,-0.817388,-0.536767,-0.144454,-1.682232,
+ 0.305452,0.425365,-0.851918,-1.120716,0.424016,-1.45699,
+ 0.167704,0.495674,-0.852164,-0.645496,0.179261,-1.584316,
+ 0.136523,0.621747,-0.771228,-0.533528,-0.58228,-1.701405,
+ 0.242426,0.58207,-0.77616,-1.053434,-0.342553,-1.690245,
+ 0.325482,0.443544,-0.835063,-1.077307,0.165008,-1.553393,
+ 0.136523,0.621747,-0.771228,-0.533528,-0.58228,-1.701405,
+ 0.325482,0.443544,-0.835063,-1.077307,0.165008,-1.553393,
+ 0.140536,0.558684,-0.817388,-0.536767,-0.144454,-1.682232,
+ 0.100131,0.509748,-0.854477,-0.505045,-0.913827,-1.645612,
+ 0.070189,0.510248,-0.857158,-1.077209,-0.869649,-1.633144,
+ 0.242426,0.58207,-0.77616,-1.053434,-0.342553,-1.690245,
+ 0.100131,0.509748,-0.854477,-0.505045,-0.913827,-1.645612,
+ 0.242426,0.58207,-0.77616,-1.053434,-0.342553,-1.690245,
+ 0.136523,0.621747,-0.771228,-0.533528,-0.58228,-1.701405,
+ 0.063174,0.351351,-0.93411,-0.487217,-1.193519,-1.504026,
+ -0.078623,0.370994,-0.925301,-1.061272,-1.141877,-1.49623,
+ 0.070189,0.510248,-0.857158,-1.077209,-0.869649,-1.633144,
+ 0.063174,0.351351,-0.93411,-0.487217,-1.193519,-1.504026,
+ 0.070189,0.510248,-0.857158,-1.077209,-0.869649,-1.633144,
+ 0.100131,0.509748,-0.854477,-0.505045,-0.913827,-1.645612,
+ 0.078896,0.195617,-0.977502,-0.524231,-1.399266,-1.313019,
+ -0.123389,0.256577,-0.958615,-1.001366,-1.335897,-1.353338,
+ -0.078623,0.370994,-0.925301,-1.061272,-1.141877,-1.49623,
+ 0.078896,0.195617,-0.977502,-0.524231,-1.399266,-1.313019,
+ -0.078623,0.370994,-0.925301,-1.061272,-1.141877,-1.49623,
+ 0.063174,0.351351,-0.93411,-0.487217,-1.193519,-1.504026,
+ 0.097816,-0.016117,-0.995074,-0.526127,-1.495,-1.167736,
+ -0.165685,0.059692,-0.98437,-0.952525,-1.440582,-1.16865,
+ -0.123389,0.256577,-0.958615,-1.001366,-1.335897,-1.353338,
+ 0.097816,-0.016117,-0.995074,-0.526127,-1.495,-1.167736,
+ -0.123389,0.256577,-0.958615,-1.001366,-1.335897,-1.353338,
+ 0.078896,0.195617,-0.977502,-0.524231,-1.399266,-1.313019,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ -0.165685,0.059692,-0.98437,-0.952525,-1.440582,-1.16865,
+ 0.10737,-0.293005,-0.950063,-0.535144,-1.615983,-0.920556,
+ -0.165685,0.059692,-0.98437,-0.952525,-1.440582,-1.16865,
+ 0.097816,-0.016117,-0.995074,-0.526127,-1.495,-1.167736,
+ 0.769758,0.095155,-0.631204,2.688131,-0.517509,-0.672975,
+ 0.763734,0.228435,-0.603761,2.736198,-0.346225,-0.659345,
+ 0.226413,-0.89822,-0.376747,2.881063,-0.493146,-0.521968,
+ 0.594643,-0.107364,-0.796789,2.663024,-1.440487,-0.478149,
+ 0.655995,-0.105886,-0.747301,2.740886,-1.339225,-0.463604,
+ 0.690473,-0.61586,-0.379425,2.824356,-1.407256,-0.355013,
+ 0.184661,-0.694307,-0.695585,1.373216,-0.56462,-1.106245,
+ 0.419396,-0.035927,-0.907092,1.428883,-0.98669,-1.133905,
+ 0.045651,-0.004499,-0.998947,1.337875,-0.945716,-1.021299,
+ -0.267766,-0.862787,-0.428835,-1.215563,1.757097,-0.133494,
+ -0.507894,-0.767261,-0.391606,-1.365948,1.769608,-0.133901,
+ 0.262234,-0.965004,0,-1.35095,1.807009,0,
+ -0.267766,-0.862787,-0.428835,-1.215563,1.757097,-0.133494,
+ 0.262234,-0.965004,0,-1.35095,1.807009,0,
+ -0.065586,-0.997847,0,-1.179474,1.786649,0,
+ -0.263452,-0.648591,-0.714089,-1.227613,1.709095,-0.276029,
+ -0.375453,-0.69207,-0.616502,-1.396332,1.723782,-0.267642,
+ -0.507894,-0.767261,-0.391606,-1.365948,1.769608,-0.133901,
+ -0.263452,-0.648591,-0.714089,-1.227613,1.709095,-0.276029,
+ -0.507894,-0.767261,-0.391606,-1.365948,1.769608,-0.133901,
+ -0.267766,-0.862787,-0.428835,-1.215563,1.757097,-0.133494,
+ -0.301558,-0.77828,-0.550766,-1.292756,1.656509,-0.51403,
+ -0.1427,-0.847733,-0.510868,-1.417595,1.67618,-0.529265,
+ -0.375453,-0.69207,-0.616502,-1.396332,1.723782,-0.267642,
+ -0.301558,-0.77828,-0.550766,-1.292756,1.656509,-0.51403,
+ -0.375453,-0.69207,-0.616502,-1.396332,1.723782,-0.267642,
+ -0.263452,-0.648591,-0.714089,-1.227613,1.709095,-0.276029,
+ -0.154129,-0.981148,-0.116585,-1.338488,1.613735,-0.725441,
+ -0.178511,-0.973481,-0.143068,-1.465432,1.655336,-0.722125,
+ -0.1427,-0.847733,-0.510868,-1.417595,1.67618,-0.529265,
+ -0.154129,-0.981148,-0.116585,-1.338488,1.613735,-0.725441,
+ -0.1427,-0.847733,-0.510868,-1.417595,1.67618,-0.529265,
+ -0.301558,-0.77828,-0.550766,-1.292756,1.656509,-0.51403,
+ 0.095331,0.952335,-0.289775,-1.403848,1.533059,-0.902827,
+ 0.067879,0.951186,-0.30106,-1.582187,1.567542,-0.982349,
+ -0.178511,-0.973481,-0.143068,-1.465432,1.655336,-0.722125,
+ 0.095331,0.952335,-0.289775,-1.403848,1.533059,-0.902827,
+ -0.178511,-0.973481,-0.143068,-1.465432,1.655336,-0.722125,
+ -0.154129,-0.981148,-0.116585,-1.338488,1.613735,-0.725441,
+ 0.10291,0.954344,-0.280422,-1.551526,1.400025,-1.050193,
+ 0.085022,0.963119,-0.255291,-1.721806,1.391264,-1.113307,
+ 0.067879,0.951186,-0.30106,-1.582187,1.567542,-0.982349,
+ 0.10291,0.954344,-0.280422,-1.551526,1.400025,-1.050193,
+ 0.067879,0.951186,-0.30106,-1.582187,1.567542,-0.982349,
+ 0.095331,0.952335,-0.289775,-1.403848,1.533059,-0.902827,
+ 0.172251,0.950689,-0.257916,-1.552899,1.128654,-1.15104,
+ 0.120743,0.971588,-0.203561,-1.733703,1.083864,-1.181489,
+ 0.085022,0.963119,-0.255291,-1.721806,1.391264,-1.113307,
+ 0.172251,0.950689,-0.257916,-1.552899,1.128654,-1.15104,
+ 0.085022,0.963119,-0.255291,-1.721806,1.391264,-1.113307,
+ 0.10291,0.954344,-0.280422,-1.551526,1.400025,-1.050193,
+ 0.28101,0.853935,-0.437982,-1.454529,0.875045,-1.238858,
+ 0.117963,0.926753,-0.356669,-1.807421,0.657142,-1.209422,
+ 0.120743,0.971588,-0.203561,-1.733703,1.083864,-1.181489,
+ 0.28101,0.853935,-0.437982,-1.454529,0.875045,-1.238858,
+ 0.120743,0.971588,-0.203561,-1.733703,1.083864,-1.181489,
+ 0.172251,0.950689,-0.257916,-1.552899,1.128654,-1.15104,
+ 0.381239,0.555717,-0.738807,-1.405685,0.573835,-1.352181,
+ 0.109947,0.693426,-0.712089,-1.796156,0.452382,-1.243643,
+ 0.117963,0.926753,-0.356669,-1.807421,0.657142,-1.209422,
+ 0.381239,0.555717,-0.738807,-1.405685,0.573835,-1.352181,
+ 0.117963,0.926753,-0.356669,-1.807421,0.657142,-1.209422,
+ 0.28101,0.853935,-0.437982,-1.454529,0.875045,-1.238858,
+ 0.376012,0.360026,-0.853813,-1.479588,0.295746,-1.440042,
+ 0.076565,0.333251,-0.939724,-1.81092,0.287592,-1.292257,
+ 0.109947,0.693426,-0.712089,-1.796156,0.452382,-1.243643,
+ 0.376012,0.360026,-0.853813,-1.479588,0.295746,-1.440042,
+ 0.109947,0.693426,-0.712089,-1.796156,0.452382,-1.243643,
+ 0.381239,0.555717,-0.738807,-1.405685,0.573835,-1.352181,
+ 0.207079,0.373404,-0.904261,-1.489699,-0.024215,-1.510987,
+ -0.039599,0.171847,-0.984327,-1.79513,0.033439,-1.37116,
+ 0.076565,0.333251,-0.939724,-1.81092,0.287592,-1.292257,
+ 0.207079,0.373404,-0.904261,-1.489699,-0.024215,-1.510987,
+ 0.076565,0.333251,-0.939724,-1.81092,0.287592,-1.292257,
+ 0.376012,0.360026,-0.853813,-1.479588,0.295746,-1.440042,
+ -0.045242,0.348413,-0.936249,-1.395501,-0.698702,-1.553257,
+ -0.164972,0.181757,-0.969406,-1.802864,-0.282523,-1.401315,
+ -0.039599,0.171847,-0.984327,-1.79513,0.033439,-1.37116,
+ -0.045242,0.348413,-0.936249,-1.395501,-0.698702,-1.553257,
+ -0.039599,0.171847,-0.984327,-1.79513,0.033439,-1.37116,
+ 0.207079,0.373404,-0.904261,-1.489699,-0.024215,-1.510987,
+ -0.212948,0.334057,-0.918182,-1.376176,-0.948757,-1.451608,
+ -0.216817,0.278777,-0.935561,-1.837859,-0.540871,-1.295851,
+ -0.164972,0.181757,-0.969406,-1.802864,-0.282523,-1.401315,
+ -0.212948,0.334057,-0.918182,-1.376176,-0.948757,-1.451608,
+ -0.164972,0.181757,-0.969406,-1.802864,-0.282523,-1.401315,
+ -0.045242,0.348413,-0.936249,-1.395501,-0.698702,-1.553257,
+ -0.282152,0.285245,-0.915983,-1.402349,-1.127845,-1.309055,
+ -0.219724,0.297861,-0.928978,-1.782928,-0.770786,-1.173619,
+ -0.216817,0.278777,-0.935561,-1.837859,-0.540871,-1.295851,
+ -0.282152,0.285245,-0.915983,-1.402349,-1.127845,-1.309055,
+ -0.216817,0.278777,-0.935561,-1.837859,-0.540871,-1.295851,
+ -0.212948,0.334057,-0.918182,-1.376176,-0.948757,-1.451608,
+ -0.326048,0.118611,-0.937883,-1.407658,-1.236026,-1.11293,
+ -0.227368,0.161984,-0.960242,-1.757573,-0.945337,-1.075832,
+ -0.219724,0.297861,-0.928978,-1.782928,-0.770786,-1.173619,
+ -0.326048,0.118611,-0.937883,-1.407658,-1.236026,-1.11293,
+ -0.219724,0.297861,-0.928978,-1.782928,-0.770786,-1.173619,
+ -0.282152,0.285245,-0.915983,-1.402349,-1.127845,-1.309055,
+ -0.507894,-0.767261,-0.391606,-1.365948,1.769608,-0.133901,
+ -0.387895,-0.42081,-0.820034,-1.683863,1.789041,-0.121501,
+ 0.021487,0.999769,0,-1.67651,1.826886,0,
+ -0.507894,-0.767261,-0.391606,-1.365948,1.769608,-0.133901,
+ 0.021487,0.999769,0,-1.67651,1.826886,0,
+ 0.262234,-0.965004,0,-1.35095,1.807009,0,
+ -0.375453,-0.69207,-0.616502,-1.396332,1.723782,-0.267642,
+ -0.433119,-0.541143,-0.720814,-1.714432,1.747956,-0.247594,
+ -0.387895,-0.42081,-0.820034,-1.683863,1.789041,-0.121501,
+ -0.375453,-0.69207,-0.616502,-1.396332,1.723782,-0.267642,
+ -0.387895,-0.42081,-0.820034,-1.683863,1.789041,-0.121501,
+ -0.507894,-0.767261,-0.391606,-1.365948,1.769608,-0.133901,
+ -0.1427,-0.847733,-0.510868,-1.417595,1.67618,-0.529265,
+ -0.455057,-0.684123,-0.569999,-1.744732,1.734849,-0.433807,
+ -0.433119,-0.541143,-0.720814,-1.714432,1.747956,-0.247594,
+ -0.1427,-0.847733,-0.510868,-1.417595,1.67618,-0.529265,
+ -0.433119,-0.541143,-0.720814,-1.714432,1.747956,-0.247594,
+ -0.375453,-0.69207,-0.616502,-1.396332,1.723782,-0.267642,
+ -0.178511,-0.973481,-0.143068,-1.465432,1.655336,-0.722125,
+ -0.084259,-0.367691,-0.926123,-1.929731,1.617188,-0.80639,
+ -0.455057,-0.684123,-0.569999,-1.744732,1.734849,-0.433807,
+ -0.178511,-0.973481,-0.143068,-1.465432,1.655336,-0.722125,
+ -0.455057,-0.684123,-0.569999,-1.744732,1.734849,-0.433807,
+ -0.1427,-0.847733,-0.510868,-1.417595,1.67618,-0.529265,
+ 0.067879,0.951186,-0.30106,-1.582187,1.567542,-0.982349,
+ 0.061261,0.954316,-0.292452,-1.996117,1.387891,-1.064104,
+ -0.084259,-0.367691,-0.926123,-1.929731,1.617188,-0.80639,
+ 0.067879,0.951186,-0.30106,-1.582187,1.567542,-0.982349,
+ -0.084259,-0.367691,-0.926123,-1.929731,1.617188,-0.80639,
+ -0.178511,-0.973481,-0.143068,-1.465432,1.655336,-0.722125,
+ 0.085022,0.963119,-0.255291,-1.721806,1.391264,-1.113307,
+ 0.076969,0.969253,-0.233719,-1.980388,1.134038,-1.143196,
+ 0.061261,0.954316,-0.292452,-1.996117,1.387891,-1.064104,
+ 0.085022,0.963119,-0.255291,-1.721806,1.391264,-1.113307,
+ 0.061261,0.954316,-0.292452,-1.996117,1.387891,-1.064104,
+ 0.067879,0.951186,-0.30106,-1.582187,1.567542,-0.982349,
+ 0.120743,0.971588,-0.203561,-1.733703,1.083864,-1.181489,
+ 0.057779,0.975002,-0.214553,-2.013663,0.810726,-1.158827,
+ 0.076969,0.969253,-0.233719,-1.980388,1.134038,-1.143196,
+ 0.120743,0.971588,-0.203561,-1.733703,1.083864,-1.181489,
+ 0.076969,0.969253,-0.233719,-1.980388,1.134038,-1.143196,
+ 0.085022,0.963119,-0.255291,-1.721806,1.391264,-1.113307,
+ 0.117963,0.926753,-0.356669,-1.807421,0.657142,-1.209422,
+ -0.021294,0.896295,-0.442946,-2.030191,0.547622,-1.189762,
+ 0.057779,0.975002,-0.214553,-2.013663,0.810726,-1.158827,
+ 0.117963,0.926753,-0.356669,-1.807421,0.657142,-1.209422,
+ 0.057779,0.975002,-0.214553,-2.013663,0.810726,-1.158827,
+ 0.120743,0.971588,-0.203561,-1.733703,1.083864,-1.181489,
+ 0.109947,0.693426,-0.712089,-1.796156,0.452382,-1.243643,
+ -0.072244,0.618144,-0.782738,-2.021159,0.411979,-1.234679,
+ -0.021294,0.896295,-0.442946,-2.030191,0.547622,-1.189762,
+ 0.109947,0.693426,-0.712089,-1.796156,0.452382,-1.243643,
+ -0.021294,0.896295,-0.442946,-2.030191,0.547622,-1.189762,
+ 0.117963,0.926753,-0.356669,-1.807421,0.657142,-1.209422,
+ 0.076565,0.333251,-0.939724,-1.81092,0.287592,-1.292257,
+ -0.038944,0.247819,-0.968023,-1.932916,0.232972,-1.304589,
+ -0.072244,0.618144,-0.782738,-2.021159,0.411979,-1.234679,
+ 0.076565,0.333251,-0.939724,-1.81092,0.287592,-1.292257,
+ -0.072244,0.618144,-0.782738,-2.021159,0.411979,-1.234679,
+ 0.109947,0.693426,-0.712089,-1.796156,0.452382,-1.243643,
+ -0.039599,0.171847,-0.984327,-1.79513,0.033439,-1.37116,
+ -0.00315,0.115338,-0.993321,-1.897394,0.037852,-1.365798,
+ -0.038944,0.247819,-0.968023,-1.932916,0.232972,-1.304589,
+ -0.039599,0.171847,-0.984327,-1.79513,0.033439,-1.37116,
+ -0.038944,0.247819,-0.968023,-1.932916,0.232972,-1.304589,
+ 0.076565,0.333251,-0.939724,-1.81092,0.287592,-1.292257,
+ -0.164972,0.181757,-0.969406,-1.802864,-0.282523,-1.401315,
+ 0.016683,0.197618,-0.980137,-1.950547,-0.275573,-1.377028,
+ -0.00315,0.115338,-0.993321,-1.897394,0.037852,-1.365798,
+ -0.164972,0.181757,-0.969406,-1.802864,-0.282523,-1.401315,
+ -0.00315,0.115338,-0.993321,-1.897394,0.037852,-1.365798,
+ -0.039599,0.171847,-0.984327,-1.79513,0.033439,-1.37116,
+ -0.216817,0.278777,-0.935561,-1.837859,-0.540871,-1.295851,
+ 0.032424,0.316591,-0.948008,-2.033655,-0.526012,-1.277639,
+ 0.016683,0.197618,-0.980137,-1.950547,-0.275573,-1.377028,
+ -0.216817,0.278777,-0.935561,-1.837859,-0.540871,-1.295851,
+ 0.016683,0.197618,-0.980137,-1.950547,-0.275573,-1.377028,
+ -0.164972,0.181757,-0.969406,-1.802864,-0.282523,-1.401315,
+ -0.219724,0.297861,-0.928978,-1.782928,-0.770786,-1.173619,
+ 0.053195,0.343167,-0.937767,-2.050292,-0.755566,-1.114167,
+ 0.032424,0.316591,-0.948008,-2.033655,-0.526012,-1.277639,
+ -0.219724,0.297861,-0.928978,-1.782928,-0.770786,-1.173619,
+ 0.032424,0.316591,-0.948008,-2.033655,-0.526012,-1.277639,
+ -0.216817,0.278777,-0.935561,-1.837859,-0.540871,-1.295851,
+ -0.227368,0.161984,-0.960242,-1.757573,-0.945337,-1.075832,
+ 0.057735,0.173734,-0.983099,-2.043593,-0.875823,-1.028879,
+ 0.053195,0.343167,-0.937767,-2.050292,-0.755566,-1.114167,
+ -0.227368,0.161984,-0.960242,-1.757573,-0.945337,-1.075832,
+ 0.053195,0.343167,-0.937767,-2.050292,-0.755566,-1.114167,
+ -0.219724,0.297861,-0.928978,-1.782928,-0.770786,-1.173619,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ 0.058723,-0.195869,-0.97887,-2.033406,-0.91003,-0.96422,
+ 0.057735,0.173734,-0.983099,-2.043593,-0.875823,-1.028879,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ 0.057735,0.173734,-0.983099,-2.043593,-0.875823,-1.028879,
+ -0.227368,0.161984,-0.960242,-1.757573,-0.945337,-1.075832,
+ 0.121987,-0.426326,-0.896306,-1.198513,-1.456102,-0.885435,
+ -0.326048,0.118611,-0.937883,-1.407658,-1.236026,-1.11293,
+ -0.165685,0.059692,-0.98437,-0.952525,-1.440582,-1.16865,
+ 0.121987,-0.426326,-0.896306,-1.198513,-1.456102,-0.885435,
+ -0.165685,0.059692,-0.98437,-0.952525,-1.440582,-1.16865,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ -0.227368,0.161984,-0.960242,-1.757573,-0.945337,-1.075832,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ -0.227368,0.161984,-0.960242,-1.757573,-0.945337,-1.075832,
+ -0.326048,0.118611,-0.937883,-1.407658,-1.236026,-1.11293,
+ -0.422758,-0.178302,-0.888529,-1.366873,-1.340211,-0.907567,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ -0.326048,0.118611,-0.937883,-1.407658,-1.236026,-1.11293,
+ 0.121987,-0.426326,-0.896306,-1.198513,-1.456102,-0.885435,
+ -0.422758,-0.178302,-0.888529,-1.366873,-1.340211,-0.907567,
+ -0.326048,0.118611,-0.937883,-1.407658,-1.236026,-1.11293,
+ -0.387895,-0.42081,-0.820034,-1.683863,1.789041,-0.121501,
+ 0.088769,-0.475351,-0.875307,-2.079597,1.817785,-0.138375,
+ 0.181762,-0.983343,0,-2.057387,1.841308,0,
+ -0.387895,-0.42081,-0.820034,-1.683863,1.789041,-0.121501,
+ 0.181762,-0.983343,0,-2.057387,1.841308,0,
+ 0.021487,0.999769,0,-1.67651,1.826886,0,
+ -0.433119,-0.541143,-0.720814,-1.714432,1.747956,-0.247594,
+ 0.099302,-0.563694,-0.819993,-2.10017,1.78998,-0.229245,
+ 0.088769,-0.475351,-0.875307,-2.079597,1.817785,-0.138375,
+ -0.433119,-0.541143,-0.720814,-1.714432,1.747956,-0.247594,
+ 0.088769,-0.475351,-0.875307,-2.079597,1.817785,-0.138375,
+ -0.387895,-0.42081,-0.820034,-1.683863,1.789041,-0.121501,
+ -0.455057,-0.684123,-0.569999,-1.744732,1.734849,-0.433807,
+ 0.093801,-0.705497,-0.702478,-2.137524,1.753182,-0.433142,
+ 0.099302,-0.563694,-0.819993,-2.10017,1.78998,-0.229245,
+ -0.455057,-0.684123,-0.569999,-1.744732,1.734849,-0.433807,
+ 0.099302,-0.563694,-0.819993,-2.10017,1.78998,-0.229245,
+ -0.433119,-0.541143,-0.720814,-1.714432,1.747956,-0.247594,
+ -0.084259,-0.367691,-0.926123,-1.929731,1.617188,-0.80639,
+ 0.058028,-0.329667,-0.942312,-2.172139,1.62301,-0.805318,
+ 0.093801,-0.705497,-0.702478,-2.137524,1.753182,-0.433142,
+ -0.084259,-0.367691,-0.926123,-1.929731,1.617188,-0.80639,
+ 0.093801,-0.705497,-0.702478,-2.137524,1.753182,-0.433142,
+ -0.455057,-0.684123,-0.569999,-1.744732,1.734849,-0.433807,
+ 0.061261,0.954316,-0.292452,-1.996117,1.387891,-1.064104,
+ 0.096347,0.961203,-0.258467,-2.205791,1.356023,-1.081662,
+ 0.058028,-0.329667,-0.942312,-2.172139,1.62301,-0.805318,
+ 0.061261,0.954316,-0.292452,-1.996117,1.387891,-1.064104,
+ 0.058028,-0.329667,-0.942312,-2.172139,1.62301,-0.805318,
+ -0.084259,-0.367691,-0.926123,-1.929731,1.617188,-0.80639,
+ 0.076969,0.969253,-0.233719,-1.980388,1.134038,-1.143196,
+ 0.098712,0.966371,-0.23745,-2.296056,1.06281,-1.171139,
+ 0.096347,0.961203,-0.258467,-2.205791,1.356023,-1.081662,
+ 0.076969,0.969253,-0.233719,-1.980388,1.134038,-1.143196,
+ 0.096347,0.961203,-0.258467,-2.205791,1.356023,-1.081662,
+ 0.061261,0.954316,-0.292452,-1.996117,1.387891,-1.064104,
+ 0.057779,0.975002,-0.214553,-2.013663,0.810726,-1.158827,
+ 0.079848,0.962653,-0.258695,-2.298249,0.768333,-1.203884,
+ 0.098712,0.966371,-0.23745,-2.296056,1.06281,-1.171139,
+ 0.057779,0.975002,-0.214553,-2.013663,0.810726,-1.158827,
+ 0.098712,0.966371,-0.23745,-2.296056,1.06281,-1.171139,
+ 0.076969,0.969253,-0.233719,-1.980388,1.134038,-1.143196,
+ -0.021294,0.896295,-0.442946,-2.030191,0.547622,-1.189762,
+ 0.031476,0.864418,-0.501788,-2.256285,0.547326,-1.238301,
+ 0.079848,0.962653,-0.258695,-2.298249,0.768333,-1.203884,
+ -0.021294,0.896295,-0.442946,-2.030191,0.547622,-1.189762,
+ 0.079848,0.962653,-0.258695,-2.298249,0.768333,-1.203884,
+ 0.057779,0.975002,-0.214553,-2.013663,0.810726,-1.158827,
+ -0.072244,0.618144,-0.782738,-2.021159,0.411979,-1.234679,
+ -0.004377,0.58747,-0.809234,-2.1584,0.381542,-1.272962,
+ 0.031476,0.864418,-0.501788,-2.256285,0.547326,-1.238301,
+ -0.072244,0.618144,-0.782738,-2.021159,0.411979,-1.234679,
+ 0.031476,0.864418,-0.501788,-2.256285,0.547326,-1.238301,
+ -0.021294,0.896295,-0.442946,-2.030191,0.547622,-1.189762,
+ -0.038944,0.247819,-0.968023,-1.932916,0.232972,-1.304589,
+ 0.044022,0.273891,-0.960753,-2.070413,0.207766,-1.335106,
+ -0.004377,0.58747,-0.809234,-2.1584,0.381542,-1.272962,
+ -0.038944,0.247819,-0.968023,-1.932916,0.232972,-1.304589,
+ -0.004377,0.58747,-0.809234,-2.1584,0.381542,-1.272962,
+ -0.072244,0.618144,-0.782738,-2.021159,0.411979,-1.234679,
+ -0.00315,0.115338,-0.993321,-1.897394,0.037852,-1.365798,
+ 0.136965,0.155729,-0.978258,-2.064786,0.018789,-1.411866,
+ 0.044022,0.273891,-0.960753,-2.070413,0.207766,-1.335106,
+ -0.00315,0.115338,-0.993321,-1.897394,0.037852,-1.365798,
+ 0.044022,0.273891,-0.960753,-2.070413,0.207766,-1.335106,
+ -0.038944,0.247819,-0.968023,-1.932916,0.232972,-1.304589,
+ 0.016683,0.197618,-0.980137,-1.950547,-0.275573,-1.377028,
+ 0.173447,0.205435,-0.963178,-2.187634,-0.375454,-1.406902,
+ 0.136965,0.155729,-0.978258,-2.064786,0.018789,-1.411866,
+ 0.016683,0.197618,-0.980137,-1.950547,-0.275573,-1.377028,
+ 0.136965,0.155729,-0.978258,-2.064786,0.018789,-1.411866,
+ -0.00315,0.115338,-0.993321,-1.897394,0.037852,-1.365798,
+ 0.032424,0.316591,-0.948008,-2.033655,-0.526012,-1.277639,
+ 0.136801,0.29658,-0.945159,-2.276341,-0.689823,-1.268026,
+ 0.173447,0.205435,-0.963178,-2.187634,-0.375454,-1.406902,
+ 0.032424,0.316591,-0.948008,-2.033655,-0.526012,-1.277639,
+ 0.173447,0.205435,-0.963178,-2.187634,-0.375454,-1.406902,
+ 0.016683,0.197618,-0.980137,-1.950547,-0.275573,-1.377028,
+ 0.053195,0.343167,-0.937767,-2.050292,-0.755566,-1.114167,
+ 0.095019,0.330845,-0.938889,-2.292049,-0.933921,-1.128136,
+ 0.136801,0.29658,-0.945159,-2.276341,-0.689823,-1.268026,
+ 0.053195,0.343167,-0.937767,-2.050292,-0.755566,-1.114167,
+ 0.136801,0.29658,-0.945159,-2.276341,-0.689823,-1.268026,
+ 0.032424,0.316591,-0.948008,-2.033655,-0.526012,-1.277639,
+ 0.057735,0.173734,-0.983099,-2.043593,-0.875823,-1.028879,
+ 0.53288,-0.088285,0.841573,-2.299356,-1.025449,-1.044687,
+ 0.095019,0.330845,-0.938889,-2.292049,-0.933921,-1.128136,
+ 0.057735,0.173734,-0.983099,-2.043593,-0.875823,-1.028879,
+ 0.095019,0.330845,-0.938889,-2.292049,-0.933921,-1.128136,
+ 0.053195,0.343167,-0.937767,-2.050292,-0.755566,-1.114167,
+ 0.058723,-0.195869,-0.97887,-2.033406,-0.91003,-0.96422,
+ 0.07657,0.16758,-0.982881,-2.306662,-1.116976,-0.961238,
+ 0.53288,-0.088285,0.841573,-2.299356,-1.025449,-1.044687,
+ 0.058723,-0.195869,-0.97887,-2.033406,-0.91003,-0.96422,
+ 0.53288,-0.088285,0.841573,-2.299356,-1.025449,-1.044687,
+ 0.057735,0.173734,-0.983099,-2.043593,-0.875823,-1.028879,
+ 0.088769,-0.475351,-0.875307,-2.079597,1.817785,-0.138375,
+ 0.079214,-0.175111,-0.981357,-2.672899,1.90511,-0.067168,
+ 0.03611,0.999348,0,-2.629466,1.918204,0,
+ 0.088769,-0.475351,-0.875307,-2.079597,1.817785,-0.138375,
+ 0.03611,0.999348,0,-2.629466,1.918204,0,
+ 0.181762,-0.983343,0,-2.057387,1.841308,0,
+ 0.099302,-0.563694,-0.819993,-2.10017,1.78998,-0.229245,
+ 0.204115,-0.405276,-0.891116,-2.697367,1.871291,-0.218796,
+ 0.079214,-0.175111,-0.981357,-2.672899,1.90511,-0.067168,
+ 0.099302,-0.563694,-0.819993,-2.10017,1.78998,-0.229245,
+ 0.079214,-0.175111,-0.981357,-2.672899,1.90511,-0.067168,
+ 0.088769,-0.475351,-0.875307,-2.079597,1.817785,-0.138375,
+ 0.093801,-0.705497,-0.702478,-2.137524,1.753182,-0.433142,
+ 0.396045,-0.47666,-0.784821,-2.703112,1.825435,-0.395127,
+ 0.204115,-0.405276,-0.891116,-2.697367,1.871291,-0.218796,
+ 0.093801,-0.705497,-0.702478,-2.137524,1.753182,-0.433142,
+ 0.204115,-0.405276,-0.891116,-2.697367,1.871291,-0.218796,
+ 0.099302,-0.563694,-0.819993,-2.10017,1.78998,-0.229245,
+ 0.058028,-0.329667,-0.942312,-2.172139,1.62301,-0.805318,
+ 0.238702,-0.258568,-0.936037,-2.715246,1.746763,-0.604653,
+ 0.396045,-0.47666,-0.784821,-2.703112,1.825435,-0.395127,
+ 0.058028,-0.329667,-0.942312,-2.172139,1.62301,-0.805318,
+ 0.396045,-0.47666,-0.784821,-2.703112,1.825435,-0.395127,
+ 0.093801,-0.705497,-0.702478,-2.137524,1.753182,-0.433142,
+ 0.096347,0.961203,-0.258467,-2.205791,1.356023,-1.081662,
+ 0.11717,0.938619,-0.324447,-2.71748,1.576797,-0.875971,
+ 0.238702,-0.258568,-0.936037,-2.715246,1.746763,-0.604653,
+ 0.096347,0.961203,-0.258467,-2.205791,1.356023,-1.081662,
+ 0.238702,-0.258568,-0.936037,-2.715246,1.746763,-0.604653,
+ 0.058028,-0.329667,-0.942312,-2.172139,1.62301,-0.805318,
+ 0.098712,0.966371,-0.23745,-2.296056,1.06281,-1.171139,
+ 0.080398,0.9582,-0.274571,-2.68493,1.262021,-1.11049,
+ 0.11717,0.938619,-0.324447,-2.71748,1.576797,-0.875971,
+ 0.098712,0.966371,-0.23745,-2.296056,1.06281,-1.171139,
+ 0.11717,0.938619,-0.324447,-2.71748,1.576797,-0.875971,
+ 0.096347,0.961203,-0.258467,-2.205791,1.356023,-1.081662,
+ 0.079848,0.962653,-0.258695,-2.298249,0.768333,-1.203884,
+ 0.069061,0.958871,-0.275312,-2.572286,0.835495,-1.252192,
+ 0.080398,0.9582,-0.274571,-2.68493,1.262021,-1.11049,
+ 0.079848,0.962653,-0.258695,-2.298249,0.768333,-1.203884,
+ 0.080398,0.9582,-0.274571,-2.68493,1.262021,-1.11049,
+ 0.098712,0.966371,-0.23745,-2.296056,1.06281,-1.171139,
+ 0.031476,0.864418,-0.501788,-2.256285,0.547326,-1.238301,
+ 0.051291,0.888276,-0.456438,-2.536112,0.656633,-1.269661,
+ 0.069061,0.958871,-0.275312,-2.572286,0.835495,-1.252192,
+ 0.031476,0.864418,-0.501788,-2.256285,0.547326,-1.238301,
+ 0.069061,0.958871,-0.275312,-2.572286,0.835495,-1.252192,
+ 0.079848,0.962653,-0.258695,-2.298249,0.768333,-1.203884,
+ -0.004377,0.58747,-0.809234,-2.1584,0.381542,-1.272962,
+ -0.008282,0.691944,-0.721904,-2.520947,0.559036,-1.273617,
+ 0.051291,0.888276,-0.456438,-2.536112,0.656633,-1.269661,
+ -0.004377,0.58747,-0.809234,-2.1584,0.381542,-1.272962,
+ 0.051291,0.888276,-0.456438,-2.536112,0.656633,-1.269661,
+ 0.031476,0.864418,-0.501788,-2.256285,0.547326,-1.238301,
+ 0.044022,0.273891,-0.960753,-2.070413,0.207766,-1.335106,
+ -0.0448,0.42163,-0.905661,-2.47375,0.300945,-1.316695,
+ -0.008282,0.691944,-0.721904,-2.520947,0.559036,-1.273617,
+ 0.044022,0.273891,-0.960753,-2.070413,0.207766,-1.335106,
+ -0.008282,0.691944,-0.721904,-2.520947,0.559036,-1.273617,
+ -0.004377,0.58747,-0.809234,-2.1584,0.381542,-1.272962,
+ 0.136965,0.155729,-0.978258,-2.064786,0.018789,-1.411866,
+ -0.02449,0.224062,-0.974267,-2.433366,0.078222,-1.371269,
+ -0.0448,0.42163,-0.905661,-2.47375,0.300945,-1.316695,
+ 0.136965,0.155729,-0.978258,-2.064786,0.018789,-1.411866,
+ -0.0448,0.42163,-0.905661,-2.47375,0.300945,-1.316695,
+ 0.044022,0.273891,-0.960753,-2.070413,0.207766,-1.335106,
+ 0.173447,0.205435,-0.963178,-2.187634,-0.375454,-1.406902,
+ -0.017579,0.132168,-0.991072,-2.41473,-0.108377,-1.395384,
+ -0.02449,0.224062,-0.974267,-2.433366,0.078222,-1.371269,
+ 0.173447,0.205435,-0.963178,-2.187634,-0.375454,-1.406902,
+ -0.02449,0.224062,-0.974267,-2.433366,0.078222,-1.371269,
+ 0.136965,0.155729,-0.978258,-2.064786,0.018789,-1.411866,
+ 0.136801,0.29658,-0.945159,-2.276341,-0.689823,-1.268026,
+ -0.055858,0.145868,-0.987726,-2.38292,-0.41745,-1.375045,
+ -0.017579,0.132168,-0.991072,-2.41473,-0.108377,-1.395384,
+ 0.136801,0.29658,-0.945159,-2.276341,-0.689823,-1.268026,
+ -0.017579,0.132168,-0.991072,-2.41473,-0.108377,-1.395384,
+ 0.173447,0.205435,-0.963178,-2.187634,-0.375454,-1.406902,
+ 0.095019,0.330845,-0.938889,-2.292049,-0.933921,-1.128136,
+ -0.115746,0.20405,-0.972094,-2.430508,-0.822313,-1.254486,
+ -0.055858,0.145868,-0.987726,-2.38292,-0.41745,-1.375045,
+ 0.095019,0.330845,-0.938889,-2.292049,-0.933921,-1.128136,
+ -0.055858,0.145868,-0.987726,-2.38292,-0.41745,-1.375045,
+ 0.136801,0.29658,-0.945159,-2.276341,-0.689823,-1.268026,
+ 0.53288,-0.088285,0.841573,-2.299356,-1.025449,-1.044687,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ -0.115746,0.20405,-0.972094,-2.430508,-0.822313,-1.254486,
+ 0.53288,-0.088285,0.841573,-2.299356,-1.025449,-1.044687,
+ -0.115746,0.20405,-0.972094,-2.430508,-0.822313,-1.254486,
+ 0.095019,0.330845,-0.938889,-2.292049,-0.933921,-1.128136,
+ 0.079214,-0.175111,-0.981357,-2.672899,1.90511,-0.067168,
+ 0.005821,-0.234321,-0.972142,-3.053102,1.96881,-0.051104,
+ 0.012502,-0.999922,0,-3.037562,2.001526,0,
+ 0.079214,-0.175111,-0.981357,-2.672899,1.90511,-0.067168,
+ 0.012502,-0.999922,0,-3.037562,2.001526,0,
+ 0.03611,0.999348,0,-2.629466,1.918204,0,
+ 0.204115,-0.405276,-0.891116,-2.697367,1.871291,-0.218796,
+ 0.243464,-0.335965,-0.909864,-3.077669,1.871112,-0.217368,
+ 0.005821,-0.234321,-0.972142,-3.053102,1.96881,-0.051104,
+ 0.204115,-0.405276,-0.891116,-2.697367,1.871291,-0.218796,
+ 0.005821,-0.234321,-0.972142,-3.053102,1.96881,-0.051104,
+ 0.079214,-0.175111,-0.981357,-2.672899,1.90511,-0.067168,
+ 0.396045,-0.47666,-0.784821,-2.703112,1.825435,-0.395127,
+ 0.49938,-0.45475,-0.737443,-3.07531,1.846,-0.363149,
+ 0.243464,-0.335965,-0.909864,-3.077669,1.871112,-0.217368,
+ 0.396045,-0.47666,-0.784821,-2.703112,1.825435,-0.395127,
+ 0.243464,-0.335965,-0.909864,-3.077669,1.871112,-0.217368,
+ 0.204115,-0.405276,-0.891116,-2.697367,1.871291,-0.218796,
+ 0.238702,-0.258568,-0.936037,-2.715246,1.746763,-0.604653,
+ 0.573426,-0.441087,-0.69038,-3.109047,1.789477,-0.565323,
+ 0.49938,-0.45475,-0.737443,-3.07531,1.846,-0.363149,
+ 0.238702,-0.258568,-0.936037,-2.715246,1.746763,-0.604653,
+ 0.49938,-0.45475,-0.737443,-3.07531,1.846,-0.363149,
+ 0.396045,-0.47666,-0.784821,-2.703112,1.825435,-0.395127,
+ 0.11717,0.938619,-0.324447,-2.71748,1.576797,-0.875971,
+ 0.1643,0.873906,-0.457487,-3.08565,1.65734,-0.784479,
+ 0.573426,-0.441087,-0.69038,-3.109047,1.789477,-0.565323,
+ 0.11717,0.938619,-0.324447,-2.71748,1.576797,-0.875971,
+ 0.573426,-0.441087,-0.69038,-3.109047,1.789477,-0.565323,
+ 0.238702,-0.258568,-0.936037,-2.715246,1.746763,-0.604653,
+ 0.080398,0.9582,-0.274571,-2.68493,1.262021,-1.11049,
+ -0.012448,0.906487,-0.422051,-3.028932,1.461517,-0.941324,
+ 0.1643,0.873906,-0.457487,-3.08565,1.65734,-0.784479,
+ 0.080398,0.9582,-0.274571,-2.68493,1.262021,-1.11049,
+ 0.1643,0.873906,-0.457487,-3.08565,1.65734,-0.784479,
+ 0.11717,0.938619,-0.324447,-2.71748,1.576797,-0.875971,
+ 0.069061,0.958871,-0.275312,-2.572286,0.835495,-1.252192,
+ -0.051905,0.965082,-0.256753,-2.930312,1.10358,-1.125876,
+ -0.012448,0.906487,-0.422051,-3.028932,1.461517,-0.941324,
+ 0.069061,0.958871,-0.275312,-2.572286,0.835495,-1.252192,
+ -0.012448,0.906487,-0.422051,-3.028932,1.461517,-0.941324,
+ 0.080398,0.9582,-0.274571,-2.68493,1.262021,-1.11049,
+ 0.051291,0.888276,-0.456438,-2.536112,0.656633,-1.269661,
+ -0.088843,0.888,-0.45118,-2.825835,0.755899,-1.209042,
+ -0.051905,0.965082,-0.256753,-2.930312,1.10358,-1.125876,
+ 0.051291,0.888276,-0.456438,-2.536112,0.656633,-1.269661,
+ -0.051905,0.965082,-0.256753,-2.930312,1.10358,-1.125876,
+ 0.069061,0.958871,-0.275312,-2.572286,0.835495,-1.252192,
+ -0.008282,0.691944,-0.721904,-2.520947,0.559036,-1.273617,
+ -0.169971,0.704712,-0.688833,-2.79063,0.46881,-1.224273,
+ -0.088843,0.888,-0.45118,-2.825835,0.755899,-1.209042,
+ -0.008282,0.691944,-0.721904,-2.520947,0.559036,-1.273617,
+ -0.088843,0.888,-0.45118,-2.825835,0.755899,-1.209042,
+ 0.051291,0.888276,-0.456438,-2.536112,0.656633,-1.269661,
+ -0.0448,0.42163,-0.905661,-2.47375,0.300945,-1.316695,
+ -0.261543,0.44691,-0.855492,-2.787011,0.264495,-1.237352,
+ -0.169971,0.704712,-0.688833,-2.79063,0.46881,-1.224273,
+ -0.0448,0.42163,-0.905661,-2.47375,0.300945,-1.316695,
+ -0.169971,0.704712,-0.688833,-2.79063,0.46881,-1.224273,
+ -0.008282,0.691944,-0.721904,-2.520947,0.559036,-1.273617,
+ -0.02449,0.224062,-0.974267,-2.433366,0.078222,-1.371269,
+ -0.33898,0.203127,-0.918603,-2.687022,0.076781,-1.290565,
+ -0.261543,0.44691,-0.855492,-2.787011,0.264495,-1.237352,
+ -0.02449,0.224062,-0.974267,-2.433366,0.078222,-1.371269,
+ -0.261543,0.44691,-0.855492,-2.787011,0.264495,-1.237352,
+ -0.0448,0.42163,-0.905661,-2.47375,0.300945,-1.316695,
+ -0.017579,0.132168,-0.991072,-2.41473,-0.108377,-1.395384,
+ -0.351241,0.075821,-0.93321,-2.649338,-0.241719,-1.339644,
+ -0.33898,0.203127,-0.918603,-2.687022,0.076781,-1.290565,
+ -0.017579,0.132168,-0.991072,-2.41473,-0.108377,-1.395384,
+ -0.33898,0.203127,-0.918603,-2.687022,0.076781,-1.290565,
+ -0.02449,0.224062,-0.974267,-2.433366,0.078222,-1.371269,
+ -0.055858,0.145868,-0.987726,-2.38292,-0.41745,-1.375045,
+ -0.311485,0.082882,-0.94663,-2.616467,-0.511373,-1.344133,
+ -0.351241,0.075821,-0.93321,-2.649338,-0.241719,-1.339644,
+ -0.055858,0.145868,-0.987726,-2.38292,-0.41745,-1.375045,
+ -0.351241,0.075821,-0.93321,-2.649338,-0.241719,-1.339644,
+ -0.017579,0.132168,-0.991072,-2.41473,-0.108377,-1.395384,
+ -0.115746,0.20405,-0.972094,-2.430508,-0.822313,-1.254486,
+ -0.285709,0.130064,-0.949449,-2.624856,-0.8882,-1.261176,
+ -0.311485,0.082882,-0.94663,-2.616467,-0.511373,-1.344133,
+ -0.115746,0.20405,-0.972094,-2.430508,-0.822313,-1.254486,
+ -0.311485,0.082882,-0.94663,-2.616467,-0.511373,-1.344133,
+ -0.055858,0.145868,-0.987726,-2.38292,-0.41745,-1.375045,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ -0.279485,0.127803,-0.951606,-2.725776,-1.214862,-1.190384,
+ -0.285709,0.130064,-0.949449,-2.624856,-0.8882,-1.261176,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ -0.285709,0.130064,-0.949449,-2.624856,-0.8882,-1.261176,
+ -0.115746,0.20405,-0.972094,-2.430508,-0.822313,-1.254486,
+ -0.15812,-0.033626,-0.986847,-2.765069,-1.561164,-1.084313,
+ -0.234266,0.044111,-0.971171,-2.862576,-1.546894,-1.117139,
+ -0.279485,0.127803,-0.951606,-2.725776,-1.214862,-1.190384,
+ -0.15812,-0.033626,-0.986847,-2.765069,-1.561164,-1.084313,
+ -0.279485,0.127803,-0.951606,-2.725776,-1.214862,-1.190384,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ -0.108631,-0.122719,-0.986478,-3.35851,1.810253,-0.380095,
+ -0.379807,-0.084066,-0.921238,-3.519716,1.685231,-0.31713,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ -0.108631,-0.122719,-0.986478,-3.35851,1.810253,-0.380095,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ -0.006683,-0.232823,-0.972496,-3.395381,1.726325,-0.55477,
+ -0.373751,-0.169261,-0.911954,-3.527168,1.583508,-0.512679,
+ -0.379807,-0.084066,-0.921238,-3.519716,1.685231,-0.31713,
+ -0.006683,-0.232823,-0.972496,-3.395381,1.726325,-0.55477,
+ -0.379807,-0.084066,-0.921238,-3.519716,1.685231,-0.31713,
+ -0.108631,-0.122719,-0.986478,-3.35851,1.810253,-0.380095,
+ -0.004872,-0.216103,-0.976358,-3.338742,1.598933,-0.689636,
+ -0.426971,-0.09322,-0.899447,-3.512997,1.44805,-0.611386,
+ -0.373751,-0.169261,-0.911954,-3.527168,1.583508,-0.512679,
+ -0.004872,-0.216103,-0.976358,-3.338742,1.598933,-0.689636,
+ -0.373751,-0.169261,-0.911954,-3.527168,1.583508,-0.512679,
+ -0.006683,-0.232823,-0.972496,-3.395381,1.726325,-0.55477,
+ 0.193955,-0.251788,-0.948148,-3.27808,1.432418,-0.853958,
+ -0.457657,0.090776,-0.884483,-3.476235,1.287798,-0.704766,
+ -0.426971,-0.09322,-0.899447,-3.512997,1.44805,-0.611386,
+ 0.193955,-0.251788,-0.948148,-3.27808,1.432418,-0.853958,
+ -0.426971,-0.09322,-0.899447,-3.512997,1.44805,-0.611386,
+ -0.004872,-0.216103,-0.976358,-3.338742,1.598933,-0.689636,
+ -0.337275,0.918092,-0.208215,-3.244771,1.19554,-0.910945,
+ -0.575033,0.794917,-0.193504,-3.442151,1.105486,-0.762934,
+ -0.457657,0.090776,-0.884483,-3.476235,1.287798,-0.704766,
+ -0.337275,0.918092,-0.208215,-3.244771,1.19554,-0.910945,
+ -0.457657,0.090776,-0.884483,-3.476235,1.287798,-0.704766,
+ 0.193955,-0.251788,-0.948148,-3.27808,1.432418,-0.853958,
+ -0.47652,0.732046,-0.486866,-3.19641,0.797564,-0.985913,
+ -0.636638,0.552106,-0.538397,-3.379131,0.767915,-0.885996,
+ -0.575033,0.794917,-0.193504,-3.442151,1.105486,-0.762934,
+ -0.47652,0.732046,-0.486866,-3.19641,0.797564,-0.985913,
+ -0.575033,0.794917,-0.193504,-3.442151,1.105486,-0.762934,
+ -0.337275,0.918092,-0.208215,-3.244771,1.19554,-0.910945,
+ -0.505556,0.519614,-0.688778,-3.112555,0.457376,-1.084816,
+ -0.643784,0.341688,-0.684684,-3.306875,0.379713,-0.98762,
+ -0.636638,0.552106,-0.538397,-3.379131,0.767915,-0.885996,
+ -0.505556,0.519614,-0.688778,-3.112555,0.457376,-1.084816,
+ -0.636638,0.552106,-0.538397,-3.379131,0.767915,-0.885996,
+ -0.47652,0.732046,-0.486866,-3.19641,0.797564,-0.985913,
+ -0.539732,0.31653,-0.780063,-3.044646,0.224321,-1.164934,
+ -0.646492,0.202786,-0.735477,-3.251181,0.175063,-1.053445,
+ -0.643784,0.341688,-0.684684,-3.306875,0.379713,-0.98762,
+ -0.539732,0.31653,-0.780063,-3.044646,0.224321,-1.164934,
+ -0.643784,0.341688,-0.684684,-3.306875,0.379713,-0.98762,
+ -0.505556,0.519614,-0.688778,-3.112555,0.457376,-1.084816,
+ -0.545639,0.142044,-0.825894,-2.971546,0.032038,-1.215971,
+ -0.624566,0.121329,-0.77149,-3.160225,-0.018852,-1.113626,
+ -0.646492,0.202786,-0.735477,-3.251181,0.175063,-1.053445,
+ -0.545639,0.142044,-0.825894,-2.971546,0.032038,-1.215971,
+ -0.646492,0.202786,-0.735477,-3.251181,0.175063,-1.053445,
+ -0.539732,0.31653,-0.780063,-3.044646,0.224321,-1.164934,
+ -0.512472,0.102596,-0.852553,-2.90708,-0.345582,-1.281557,
+ -0.588581,0.130279,-0.797872,-3.101125,-0.35476,-1.162409,
+ -0.624566,0.121329,-0.77149,-3.160225,-0.018852,-1.113626,
+ -0.512472,0.102596,-0.852553,-2.90708,-0.345582,-1.281557,
+ -0.624566,0.121329,-0.77149,-3.160225,-0.018852,-1.113626,
+ -0.545639,0.142044,-0.825894,-2.971546,0.032038,-1.215971,
+ -0.449233,0.123555,-0.88483,-2.901159,-0.619504,-1.284058,
+ -0.553145,0.12021,-0.824367,-3.096267,-0.6681,-1.140081,
+ -0.588581,0.130279,-0.797872,-3.101125,-0.35476,-1.162409,
+ -0.449233,0.123555,-0.88483,-2.901159,-0.619504,-1.284058,
+ -0.588581,0.130279,-0.797872,-3.101125,-0.35476,-1.162409,
+ -0.512472,0.102596,-0.852553,-2.90708,-0.345582,-1.281557,
+ -0.404056,0.117264,-0.907187,-2.937658,-1.002749,-1.219413,
+ -0.547788,0.055501,-0.834774,-3.122061,-0.998702,-1.065015,
+ -0.553145,0.12021,-0.824367,-3.096267,-0.6681,-1.140081,
+ -0.404056,0.117264,-0.907187,-2.937658,-1.002749,-1.219413,
+ -0.553145,0.12021,-0.824367,-3.096267,-0.6681,-1.140081,
+ -0.449233,0.123555,-0.88483,-2.901159,-0.619504,-1.284058,
+ -0.387051,0.087837,-0.917865,-2.982676,-1.264649,-1.133596,
+ -0.563128,0.005618,-0.826351,-3.15021,-1.259588,-1.001021,
+ -0.547788,0.055501,-0.834774,-3.122061,-0.998702,-1.065015,
+ -0.387051,0.087837,-0.917865,-2.982676,-1.264649,-1.133596,
+ -0.547788,0.055501,-0.834774,-3.122061,-0.998702,-1.065015,
+ -0.404056,0.117264,-0.907187,-2.937658,-1.002749,-1.219413,
+ -0.390861,0.032481,-0.919876,-3.063133,-1.440555,-1.090926,
+ -0.596319,-0.021767,-0.802452,-3.188954,-1.408279,-0.963611,
+ -0.563128,0.005618,-0.826351,-3.15021,-1.259588,-1.001021,
+ -0.390861,0.032481,-0.919876,-3.063133,-1.440555,-1.090926,
+ -0.563128,0.005618,-0.826351,-3.15021,-1.259588,-1.001021,
+ -0.387051,0.087837,-0.917865,-2.982676,-1.264649,-1.133596,
+ -0.379807,-0.084066,-0.921238,-3.519716,1.685231,-0.31713,
+ -0.6343,-0.110875,-0.765095,-3.734989,1.589433,-0.295202,
+ -0.626255,-0.080061,-0.775497,-3.690685,1.60208,0,
+ -0.379807,-0.084066,-0.921238,-3.519716,1.685231,-0.31713,
+ -0.626255,-0.080061,-0.775497,-3.690685,1.60208,0,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ -0.373751,-0.169261,-0.911954,-3.527168,1.583508,-0.512679,
+ -0.619245,-0.050391,-0.783579,-3.697974,1.466697,-0.433432,
+ -0.6343,-0.110875,-0.765095,-3.734989,1.589433,-0.295202,
+ -0.373751,-0.169261,-0.911954,-3.527168,1.583508,-0.512679,
+ -0.6343,-0.110875,-0.765095,-3.734989,1.589433,-0.295202,
+ -0.379807,-0.084066,-0.921238,-3.519716,1.685231,-0.31713,
+ -0.426971,-0.09322,-0.899447,-3.512997,1.44805,-0.611386,
+ -0.549206,0.149158,-0.822268,-3.684619,1.35069,-0.501428,
+ -0.619245,-0.050391,-0.783579,-3.697974,1.466697,-0.433432,
+ -0.426971,-0.09322,-0.899447,-3.512997,1.44805,-0.611386,
+ -0.619245,-0.050391,-0.783579,-3.697974,1.466697,-0.433432,
+ -0.373751,-0.169261,-0.911954,-3.527168,1.583508,-0.512679,
+ -0.457657,0.090776,-0.884483,-3.476235,1.287798,-0.704766,
+ -0.846545,0.532317,0,-3.655148,1.190938,-0.573692,
+ -0.549206,0.149158,-0.822268,-3.684619,1.35069,-0.501428,
+ -0.457657,0.090776,-0.884483,-3.476235,1.287798,-0.704766,
+ -0.549206,0.149158,-0.822268,-3.684619,1.35069,-0.501428,
+ -0.426971,-0.09322,-0.899447,-3.512997,1.44805,-0.611386,
+ -0.575033,0.794917,-0.193504,-3.442151,1.105486,-0.762934,
+ -0.881408,0.44424,-0.16053,-3.639878,1.015186,-0.615203,
+ -0.846545,0.532317,0,-3.655148,1.190938,-0.573692,
+ -0.575033,0.794917,-0.193504,-3.442151,1.105486,-0.762934,
+ -0.846545,0.532317,0,-3.655148,1.190938,-0.573692,
+ -0.457657,0.090776,-0.884483,-3.476235,1.287798,-0.704766,
+ -0.636638,0.552106,-0.538397,-3.379131,0.767915,-0.885996,
+ -0.881352,0.261345,-0.393596,-3.582867,0.734419,-0.697787,
+ -0.881408,0.44424,-0.16053,-3.639878,1.015186,-0.615203,
+ -0.636638,0.552106,-0.538397,-3.379131,0.767915,-0.885996,
+ -0.881408,0.44424,-0.16053,-3.639878,1.015186,-0.615203,
+ -0.575033,0.794917,-0.193504,-3.442151,1.105486,-0.762934,
+ -0.643784,0.341688,-0.684684,-3.306875,0.379713,-0.98762,
+ -0.880731,0.130089,-0.4554,-3.504525,0.405574,-0.847066,
+ -0.881352,0.261345,-0.393596,-3.582867,0.734419,-0.697787,
+ -0.643784,0.341688,-0.684684,-3.306875,0.379713,-0.98762,
+ -0.881352,0.261345,-0.393596,-3.582867,0.734419,-0.697787,
+ -0.636638,0.552106,-0.538397,-3.379131,0.767915,-0.885996,
+ -0.646492,0.202786,-0.735477,-3.251181,0.175063,-1.053445,
+ -0.874101,0.053175,-0.482825,-3.424258,0.158638,-0.918279,
+ -0.880731,0.130089,-0.4554,-3.504525,0.405574,-0.847066,
+ -0.646492,0.202786,-0.735477,-3.251181,0.175063,-1.053445,
+ -0.880731,0.130089,-0.4554,-3.504525,0.405574,-0.847066,
+ -0.643784,0.341688,-0.684684,-3.306875,0.379713,-0.98762,
+ -0.624566,0.121329,-0.77149,-3.160225,-0.018852,-1.113626,
+ -0.875552,0.01506,-0.482889,-3.365413,-0.113447,-0.9524,
+ -0.874101,0.053175,-0.482825,-3.424258,0.158638,-0.918279,
+ -0.624566,0.121329,-0.77149,-3.160225,-0.018852,-1.113626,
+ -0.874101,0.053175,-0.482825,-3.424258,0.158638,-0.918279,
+ -0.646492,0.202786,-0.735477,-3.251181,0.175063,-1.053445,
+ -0.588581,0.130279,-0.797872,-3.101125,-0.35476,-1.162409,
+ -0.86587,-0.001845,-0.500266,-3.290393,-0.424259,-0.984153,
+ -0.875552,0.01506,-0.482889,-3.365413,-0.113447,-0.9524,
+ -0.588581,0.130279,-0.797872,-3.101125,-0.35476,-1.162409,
+ -0.875552,0.01506,-0.482889,-3.365413,-0.113447,-0.9524,
+ -0.624566,0.121329,-0.77149,-3.160225,-0.018852,-1.113626,
+ -0.553145,0.12021,-0.824367,-3.096267,-0.6681,-1.140081,
+ -0.84112,-0.026303,-0.540209,-3.233333,-0.683782,-1.015512,
+ -0.86587,-0.001845,-0.500266,-3.290393,-0.424259,-0.984153,
+ -0.553145,0.12021,-0.824367,-3.096267,-0.6681,-1.140081,
+ -0.86587,-0.001845,-0.500266,-3.290393,-0.424259,-0.984153,
+ -0.588581,0.130279,-0.797872,-3.101125,-0.35476,-1.162409,
+ -0.547788,0.055501,-0.834774,-3.122061,-0.998702,-1.065015,
+ -0.813168,-0.06637,-0.578232,-3.238094,-0.979377,-0.961631,
+ -0.84112,-0.026303,-0.540209,-3.233333,-0.683782,-1.015512,
+ -0.547788,0.055501,-0.834774,-3.122061,-0.998702,-1.065015,
+ -0.84112,-0.026303,-0.540209,-3.233333,-0.683782,-1.015512,
+ -0.553145,0.12021,-0.824367,-3.096267,-0.6681,-1.140081,
+ -0.563128,0.005618,-0.826351,-3.15021,-1.259588,-1.001021,
+ -0.799953,-0.096213,-0.592299,-3.27751,-1.177346,-0.9153,
+ -0.813168,-0.06637,-0.578232,-3.238094,-0.979377,-0.961631,
+ -0.563128,0.005618,-0.826351,-3.15021,-1.259588,-1.001021,
+ -0.813168,-0.06637,-0.578232,-3.238094,-0.979377,-0.961631,
+ -0.547788,0.055501,-0.834774,-3.122061,-0.998702,-1.065015,
+ -0.596319,-0.021767,-0.802452,-3.188954,-1.408279,-0.963611,
+ -0.811102,-0.12903,-0.570495,-3.319817,-1.365015,-0.886015,
+ -0.799953,-0.096213,-0.592299,-3.27751,-1.177346,-0.9153,
+ -0.596319,-0.021767,-0.802452,-3.188954,-1.408279,-0.963611,
+ -0.799953,-0.096213,-0.592299,-3.27751,-1.177346,-0.9153,
+ -0.563128,0.005618,-0.826351,-3.15021,-1.259588,-1.001021,
+ -0.6343,-0.110875,-0.765095,-3.734989,1.589433,-0.295202,
+ -0.880002,-0.033987,-0.473752,-3.709741,1.351194,-0.211745,
+ -0.848349,-0.120539,-0.515533,-3.709827,1.417763,0,
+ -0.6343,-0.110875,-0.765095,-3.734989,1.589433,-0.295202,
+ -0.848349,-0.120539,-0.515533,-3.709827,1.417763,0,
+ -0.626255,-0.080061,-0.775497,-3.690685,1.60208,0,
+ -0.619245,-0.050391,-0.783579,-3.697974,1.466697,-0.433432,
+ -0.870331,0.069096,-0.487595,-3.701634,1.27265,-0.270469,
+ -0.880002,-0.033987,-0.473752,-3.709741,1.351194,-0.211745,
+ -0.619245,-0.050391,-0.783579,-3.697974,1.466697,-0.433432,
+ -0.880002,-0.033987,-0.473752,-3.709741,1.351194,-0.211745,
+ -0.6343,-0.110875,-0.765095,-3.734989,1.589433,-0.295202,
+ -0.549206,0.149158,-0.822268,-3.684619,1.35069,-0.501428,
+ -0.822733,0.223687,-0.522565,-3.695872,1.156978,-0.316829,
+ -0.870331,0.069096,-0.487595,-3.701634,1.27265,-0.270469,
+ -0.549206,0.149158,-0.822268,-3.684619,1.35069,-0.501428,
+ -0.870331,0.069096,-0.487595,-3.701634,1.27265,-0.270469,
+ -0.619245,-0.050391,-0.783579,-3.697974,1.466697,-0.433432,
+ -0.846545,0.532317,0,-3.655148,1.190938,-0.573692,
+ -0.938447,-0.345423,0,-3.672431,1.044224,-0.364991,
+ -0.822733,0.223687,-0.522565,-3.695872,1.156978,-0.316829,
+ -0.846545,0.532317,0,-3.655148,1.190938,-0.573692,
+ -0.822733,0.223687,-0.522565,-3.695872,1.156978,-0.316829,
+ -0.549206,0.149158,-0.822268,-3.684619,1.35069,-0.501428,
+ -0.881408,0.44424,-0.16053,-3.639878,1.015186,-0.615203,
+ -0.946902,-0.290276,0.138264,-3.664355,0.932851,-0.370749,
+ -0.938447,-0.345423,0,-3.672431,1.044224,-0.364991,
+ -0.881408,0.44424,-0.16053,-3.639878,1.015186,-0.615203,
+ -0.938447,-0.345423,0,-3.672431,1.044224,-0.364991,
+ -0.846545,0.532317,0,-3.655148,1.190938,-0.573692,
+ -0.881352,0.261345,-0.393596,-3.582867,0.734419,-0.697787,
+ -0.982633,-0.143429,0.11773,-3.631292,0.701013,-0.420276,
+ -0.946902,-0.290276,0.138264,-3.664355,0.932851,-0.370749,
+ -0.881352,0.261345,-0.393596,-3.582867,0.734419,-0.697787,
+ -0.946902,-0.290276,0.138264,-3.664355,0.932851,-0.370749,
+ -0.881408,0.44424,-0.16053,-3.639878,1.015186,-0.615203,
+ -0.880731,0.130089,-0.4554,-3.504525,0.405574,-0.847066,
+ -0.995584,-0.070631,0.061842,-3.570384,0.385564,-0.52448,
+ -0.982633,-0.143429,0.11773,-3.631292,0.701013,-0.420276,
+ -0.880731,0.130089,-0.4554,-3.504525,0.405574,-0.847066,
+ -0.982633,-0.143429,0.11773,-3.631292,0.701013,-0.420276,
+ -0.881352,0.261345,-0.393596,-3.582867,0.734419,-0.697787,
+ -0.874101,0.053175,-0.482825,-3.424258,0.158638,-0.918279,
+ -0.997475,-0.070819,0.005318,-3.520188,0.140164,-0.618561,
+ -0.995584,-0.070631,0.061842,-3.570384,0.385564,-0.52448,
+ -0.874101,0.053175,-0.482825,-3.424258,0.158638,-0.918279,
+ -0.995584,-0.070631,0.061842,-3.570384,0.385564,-0.52448,
+ -0.880731,0.130089,-0.4554,-3.504525,0.405574,-0.847066,
+ -0.875552,0.01506,-0.482889,-3.365413,-0.113447,-0.9524,
+ -0.980175,-0.184883,0.071243,-3.458251,-0.12595,-0.731712,
+ -0.997475,-0.070819,0.005318,-3.520188,0.140164,-0.618561,
+ -0.875552,0.01506,-0.482889,-3.365413,-0.113447,-0.9524,
+ -0.997475,-0.070819,0.005318,-3.520188,0.140164,-0.618561,
+ -0.874101,0.053175,-0.482825,-3.424258,0.158638,-0.918279,
+ -0.86587,-0.001845,-0.500266,-3.290393,-0.424259,-0.984153,
+ -0.976177,-0.17359,0.130171,-3.406618,-0.343461,-0.746456,
+ -0.980175,-0.184883,0.071243,-3.458251,-0.12595,-0.731712,
+ -0.86587,-0.001845,-0.500266,-3.290393,-0.424259,-0.984153,
+ -0.980175,-0.184883,0.071243,-3.458251,-0.12595,-0.731712,
+ -0.875552,0.01506,-0.482889,-3.365413,-0.113447,-0.9524,
+ -0.84112,-0.026303,-0.540209,-3.233333,-0.683782,-1.015512,
+ -0.984416,-0.175855,-0.000915,-3.283698,-0.730967,-0.793898,
+ -0.976177,-0.17359,0.130171,-3.406618,-0.343461,-0.746456,
+ -0.84112,-0.026303,-0.540209,-3.233333,-0.683782,-1.015512,
+ -0.976177,-0.17359,0.130171,-3.406618,-0.343461,-0.746456,
+ -0.86587,-0.001845,-0.500266,-3.290393,-0.424259,-0.984153,
+ -0.285709,0.130064,-0.949449,-2.624856,-0.8882,-1.261176,
+ -0.279485,0.127803,-0.951606,-2.725776,-1.214862,-1.190384,
+ -0.387051,0.087837,-0.917865,-2.982676,-1.264649,-1.133596,
+ -0.285709,0.130064,-0.949449,-2.624856,-0.8882,-1.261176,
+ -0.387051,0.087837,-0.917865,-2.982676,-1.264649,-1.133596,
+ -0.404056,0.117264,-0.907187,-2.937658,-1.002749,-1.219413,
+ -0.311485,0.082882,-0.94663,-2.616467,-0.511373,-1.344133,
+ -0.285709,0.130064,-0.949449,-2.624856,-0.8882,-1.261176,
+ -0.404056,0.117264,-0.907187,-2.937658,-1.002749,-1.219413,
+ -0.311485,0.082882,-0.94663,-2.616467,-0.511373,-1.344133,
+ -0.404056,0.117264,-0.907187,-2.937658,-1.002749,-1.219413,
+ -0.449233,0.123555,-0.88483,-2.901159,-0.619504,-1.284058,
+ -0.351241,0.075821,-0.93321,-2.649338,-0.241719,-1.339644,
+ -0.311485,0.082882,-0.94663,-2.616467,-0.511373,-1.344133,
+ -0.449233,0.123555,-0.88483,-2.901159,-0.619504,-1.284058,
+ -0.351241,0.075821,-0.93321,-2.649338,-0.241719,-1.339644,
+ -0.449233,0.123555,-0.88483,-2.901159,-0.619504,-1.284058,
+ -0.512472,0.102596,-0.852553,-2.90708,-0.345582,-1.281557,
+ -0.33898,0.203127,-0.918603,-2.687022,0.076781,-1.290565,
+ -0.351241,0.075821,-0.93321,-2.649338,-0.241719,-1.339644,
+ -0.512472,0.102596,-0.852553,-2.90708,-0.345582,-1.281557,
+ -0.33898,0.203127,-0.918603,-2.687022,0.076781,-1.290565,
+ -0.512472,0.102596,-0.852553,-2.90708,-0.345582,-1.281557,
+ -0.545639,0.142044,-0.825894,-2.971546,0.032038,-1.215971,
+ -0.261543,0.44691,-0.855492,-2.787011,0.264495,-1.237352,
+ -0.33898,0.203127,-0.918603,-2.687022,0.076781,-1.290565,
+ -0.545639,0.142044,-0.825894,-2.971546,0.032038,-1.215971,
+ -0.261543,0.44691,-0.855492,-2.787011,0.264495,-1.237352,
+ -0.545639,0.142044,-0.825894,-2.971546,0.032038,-1.215971,
+ -0.539732,0.31653,-0.780063,-3.044646,0.224321,-1.164934,
+ -0.169971,0.704712,-0.688833,-2.79063,0.46881,-1.224273,
+ -0.261543,0.44691,-0.855492,-2.787011,0.264495,-1.237352,
+ -0.539732,0.31653,-0.780063,-3.044646,0.224321,-1.164934,
+ -0.169971,0.704712,-0.688833,-2.79063,0.46881,-1.224273,
+ -0.539732,0.31653,-0.780063,-3.044646,0.224321,-1.164934,
+ -0.505556,0.519614,-0.688778,-3.112555,0.457376,-1.084816,
+ -0.088843,0.888,-0.45118,-2.825835,0.755899,-1.209042,
+ -0.169971,0.704712,-0.688833,-2.79063,0.46881,-1.224273,
+ -0.505556,0.519614,-0.688778,-3.112555,0.457376,-1.084816,
+ -0.088843,0.888,-0.45118,-2.825835,0.755899,-1.209042,
+ -0.505556,0.519614,-0.688778,-3.112555,0.457376,-1.084816,
+ -0.47652,0.732046,-0.486866,-3.19641,0.797564,-0.985913,
+ -0.051905,0.965082,-0.256753,-2.930312,1.10358,-1.125876,
+ -0.088843,0.888,-0.45118,-2.825835,0.755899,-1.209042,
+ -0.47652,0.732046,-0.486866,-3.19641,0.797564,-0.985913,
+ -0.051905,0.965082,-0.256753,-2.930312,1.10358,-1.125876,
+ -0.47652,0.732046,-0.486866,-3.19641,0.797564,-0.985913,
+ -0.337275,0.918092,-0.208215,-3.244771,1.19554,-0.910945,
+ -0.012448,0.906487,-0.422051,-3.028932,1.461517,-0.941324,
+ -0.051905,0.965082,-0.256753,-2.930312,1.10358,-1.125876,
+ -0.337275,0.918092,-0.208215,-3.244771,1.19554,-0.910945,
+ -0.012448,0.906487,-0.422051,-3.028932,1.461517,-0.941324,
+ -0.337275,0.918092,-0.208215,-3.244771,1.19554,-0.910945,
+ 0.193955,-0.251788,-0.948148,-3.27808,1.432418,-0.853958,
+ 0.1643,0.873906,-0.457487,-3.08565,1.65734,-0.784479,
+ -0.012448,0.906487,-0.422051,-3.028932,1.461517,-0.941324,
+ 0.193955,-0.251788,-0.948148,-3.27808,1.432418,-0.853958,
+ 0.1643,0.873906,-0.457487,-3.08565,1.65734,-0.784479,
+ 0.193955,-0.251788,-0.948148,-3.27808,1.432418,-0.853958,
+ -0.004872,-0.216103,-0.976358,-3.338742,1.598933,-0.689636,
+ 0.573426,-0.441087,-0.69038,-3.109047,1.789477,-0.565323,
+ 0.1643,0.873906,-0.457487,-3.08565,1.65734,-0.784479,
+ -0.004872,-0.216103,-0.976358,-3.338742,1.598933,-0.689636,
+ 0.573426,-0.441087,-0.69038,-3.109047,1.789477,-0.565323,
+ -0.004872,-0.216103,-0.976358,-3.338742,1.598933,-0.689636,
+ -0.006683,-0.232823,-0.972496,-3.395381,1.726325,-0.55477,
+ 0.49938,-0.45475,-0.737443,-3.07531,1.846,-0.363149,
+ 0.573426,-0.441087,-0.69038,-3.109047,1.789477,-0.565323,
+ -0.006683,-0.232823,-0.972496,-3.395381,1.726325,-0.55477,
+ 0.49938,-0.45475,-0.737443,-3.07531,1.846,-0.363149,
+ -0.006683,-0.232823,-0.972496,-3.395381,1.726325,-0.55477,
+ -0.108631,-0.122719,-0.986478,-3.35851,1.810253,-0.380095,
+ -0.15812,-0.033626,-0.986847,-2.765069,-1.561164,-1.084313,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ 0.79444,0.150524,0.588394,-2.687162,-1.539807,-0.988048,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ 0.53288,-0.088285,0.841573,-2.299356,-1.025449,-1.044687,
+ 0.07657,0.16758,-0.982881,-2.306662,-1.116976,-0.961238,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ 0.07657,0.16758,-0.982881,-2.306662,-1.116976,-0.961238,
+ -0.955382,-0.23808,-0.174826,-2.462835,-1.3055,-0.966395,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ -0.955382,-0.23808,-0.174826,-2.462835,-1.3055,-0.966395,
+ 0.137764,-0.289893,-0.947092,-2.591357,-1.510845,-0.88547,
+ -0.164191,0.153328,-0.974439,-2.566746,-1.211312,-1.167101,
+ 0.137764,-0.289893,-0.947092,-2.591357,-1.510845,-0.88547,
+ 0.79444,0.150524,0.588394,-2.687162,-1.539807,-0.988048,
+ -0.363523,-0.150625,0.919327,1.921881,-2.157616,-0.692678,
+ -0.914496,-0.253608,0.315247,1.945206,-2.015769,-0.672724,
+ -0.53197,-0.108751,0.839751,1.747671,-2.067518,-0.638841,
+ -0.363523,-0.150625,0.919327,1.921881,-2.157616,-0.692678,
+ -0.53197,-0.108751,0.839751,1.747671,-2.067518,-0.638841,
+ -0.570406,-0.192005,0.798606,1.772999,-2.230292,-0.64494,
+ 0.546571,-0.125171,0.828005,2.069379,1.727818,-0.212746,
+ -0.385788,0.922588,0,2.042206,1.777154,0,
+ 0.756976,-0.653442,0,2.128139,1.788397,0,
+ 0.546571,-0.125171,0.828005,2.069379,1.727818,-0.212746,
+ 0.756976,-0.653442,0,2.128139,1.788397,0,
+ 0.547549,-0.279581,-0.788686,2.13239,1.755821,-0.180271,
+ 0.726897,-0.546446,-0.415953,-2.955052,-1.49684,-1.128812,
+ -0.279485,0.127803,-0.951606,-2.725776,-1.214862,-1.190384,
+ -0.234266,0.044111,-0.971171,-2.862576,-1.546894,-1.117139,
+ 0.776291,-0.374868,-0.5068,-3.23261,-1.834299,-1.087832,
+ 0.356923,-0.210291,-0.910156,-3.357996,-1.811803,-0.975625,
+ -0.596319,-0.021767,-0.802452,-3.188954,-1.408279,-0.963611,
+ 0.776291,-0.374868,-0.5068,-3.23261,-1.834299,-1.087832,
+ -0.596319,-0.021767,-0.802452,-3.188954,-1.408279,-0.963611,
+ -0.390861,0.032481,-0.919876,-3.063133,-1.440555,-1.090926,
+ 0.726897,-0.546446,-0.415953,-2.955052,-1.49684,-1.128812,
+ -0.390861,0.032481,-0.919876,-3.063133,-1.440555,-1.090926,
+ -0.387051,0.087837,-0.917865,-2.982676,-1.264649,-1.133596,
+ 0.726897,-0.546446,-0.415953,-2.955052,-1.49684,-1.128812,
+ -0.387051,0.087837,-0.917865,-2.982676,-1.264649,-1.133596,
+ -0.279485,0.127803,-0.951606,-2.725776,-1.214862,-1.190384,
+ -0.032036,-0.072305,-0.996868,-3.342096,-1.533989,-0.921628,
+ -0.086361,-0.084973,-0.992634,-3.36599,-1.48517,-0.888076,
+ -0.811102,-0.12903,-0.570495,-3.319817,-1.365015,-0.886015,
+ -0.032036,-0.072305,-0.996868,-3.342096,-1.533989,-0.921628,
+ -0.811102,-0.12903,-0.570495,-3.319817,-1.365015,-0.886015,
+ -0.596319,-0.021767,-0.802452,-3.188954,-1.408279,-0.963611,
+ 0.356923,-0.210291,-0.910156,-3.357996,-1.811803,-0.975625,
+ -0.032036,-0.072305,-0.996868,-3.342096,-1.533989,-0.921628,
+ -0.596319,-0.021767,-0.802452,-3.188954,-1.408279,-0.963611,
+ -0.807765,-0.096776,-0.581507,-2.892438,-1.95081,-0.87812,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.43907,-0.579988,-0.686171,-2.811581,-1.79821,-0.712737,
+ -0.807765,-0.096776,-0.581507,-2.892438,-1.95081,-0.87812,
+ 0.43907,-0.579988,-0.686171,-2.811581,-1.79821,-0.712737,
+ 0.982106,-0.010346,-0.188044,-2.964215,-1.978727,-0.776572,
+ -0.807765,-0.096776,-0.581507,-2.892438,-1.95081,-0.87812,
+ 0.26198,0.048424,0.963858,-2.837147,-1.791733,-0.921563,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ 0.773659,-0.235087,0.588375,-3.144012,-2.333635,-0.829994,
+ -0.065687,-0.249194,0.966223,-3.132772,-2.528669,-0.848639,
+ 0.866897,-0.268351,-0.420091,-3.030605,-2.311222,-0.88433,
+ -0.065687,-0.249194,0.966223,-3.132772,-2.528669,-0.848639,
+ 0.886562,-0.46255,-0.007485,-3.04661,-2.510881,-0.900772,
+ 0.517272,-0.552302,-0.653753,-3.302419,-3.017921,-1.128514,
+ -0.020456,0.943466,-0.330837,-3.32033,-2.827513,-1.063914,
+ 0.030762,-0.124297,0.991768,-3.26181,-2.821069,-1.088218,
+ 0.517272,-0.552302,-0.653753,-3.302419,-3.017921,-1.128514,
+ 0.030762,-0.124297,0.991768,-3.26181,-2.821069,-1.088218,
+ 0.753698,-0.027204,0.656657,-3.223286,-3.00178,-1.126176,
+ -0.661663,-0.02548,-0.749368,-3.107105,-2.947818,-1.092235,
+ -0.753891,0.130682,-0.643872,-3.141072,-2.785287,-1.032318,
+ -0.156071,0.243426,-0.95728,-3.053267,-2.764905,-1.043008,
+ -0.661663,-0.02548,-0.749368,-3.107105,-2.947818,-1.092235,
+ -0.156071,0.243426,-0.95728,-3.053267,-2.764905,-1.043008,
+ -0.080858,0.024731,-0.996419,-2.986345,-2.93377,-1.087679,
+ -0.080858,0.024731,-0.996419,-2.986345,-2.93377,-1.087679,
+ -0.156071,0.243426,-0.95728,-3.053267,-2.764905,-1.043008,
+ 0.484364,0.195734,-0.85269,-3.016419,-2.765091,-0.966671,
+ -0.080858,0.024731,-0.996419,-2.986345,-2.93377,-1.087679,
+ 0.484364,0.195734,-0.85269,-3.016419,-2.765091,-0.966671,
+ 0.507452,0.36284,-0.781563,-2.946527,-2.939327,-0.986343,
+ 0.517272,-0.552302,-0.653753,-3.302419,-3.017921,-1.128514,
+ 0.753698,-0.027204,0.656657,-3.223286,-3.00178,-1.126176,
+ 0.121953,0.140869,-0.982488,-3.301857,-3.074776,-1.114869,
+ 0.121953,0.140869,-0.982488,-3.301857,-3.074776,-1.114869,
+ 0.913315,0.39776,0.087427,-3.227676,-3.14166,-1.103969,
+ 0.170703,0.25395,-0.952035,-3.316551,-3.168932,-1.121229,
+ 0.170703,0.25395,-0.952035,-3.316551,-3.168932,-1.121229,
+ 0.913315,0.39776,0.087427,-3.227676,-3.14166,-1.103969,
+ 0.977763,0.208696,-0.020643,-3.217306,-3.187686,-1.075214,
+ -0.080858,0.024731,-0.996419,-2.986345,-2.93377,-1.087679,
+ 0.507452,0.36284,-0.781563,-2.946527,-2.939327,-0.986343,
+ 0.737412,0.542596,-0.402261,-2.884711,-3.063896,-0.993766,
+ -0.080858,0.024731,-0.996419,-2.986345,-2.93377,-1.087679,
+ 0.737412,0.542596,-0.402261,-2.884711,-3.063896,-0.993766,
+ 0.637284,0.689194,-0.344791,-2.90901,-3.084482,-1.089147,
+ -0.661663,-0.02548,-0.749368,-3.107105,-2.947818,-1.092235,
+ -0.833016,0.038682,-0.551896,-3.177108,-2.979305,-1.139084,
+ -0.637764,0.107242,-0.76273,-3.196508,-2.788166,-1.045431,
+ -0.661663,-0.02548,-0.749368,-3.107105,-2.947818,-1.092235,
+ -0.637764,0.107242,-0.76273,-3.196508,-2.788166,-1.045431,
+ -0.753891,0.130682,-0.643872,-3.141072,-2.785287,-1.032318,
+ 0.753698,-0.027204,0.656657,-3.223286,-3.00178,-1.126176,
+ 0.030762,-0.124297,0.991768,-3.26181,-2.821069,-1.088218,
+ -0.637764,0.107242,-0.76273,-3.196508,-2.788166,-1.045431,
+ 0.753698,-0.027204,0.656657,-3.223286,-3.00178,-1.126176,
+ -0.637764,0.107242,-0.76273,-3.196508,-2.788166,-1.045431,
+ -0.833016,0.038682,-0.551896,-3.177108,-2.979305,-1.139084,
+ 0.197648,0.486888,-0.850809,-3.333954,-3.058673,-0.974748,
+ 0.121953,0.140869,-0.982488,-3.301857,-3.074776,-1.114869,
+ 0.170703,0.25395,-0.952035,-3.316551,-3.168932,-1.121229,
+ 0.197648,0.486888,-0.850809,-3.333954,-3.058673,-0.974748,
+ 0.170703,0.25395,-0.952035,-3.316551,-3.168932,-1.121229,
+ -0.67011,-0.018974,-0.742019,-3.330406,-3.18519,-0.950058,
+ -0.67011,-0.018974,-0.742019,-3.330406,-3.18519,-0.950058,
+ 0.170703,0.25395,-0.952035,-3.316551,-3.168932,-1.121229,
+ 0.977763,0.208696,-0.020643,-3.217306,-3.187686,-1.075214,
+ -0.67011,-0.018974,-0.742019,-3.330406,-3.18519,-0.950058,
+ 0.977763,0.208696,-0.020643,-3.217306,-3.187686,-1.075214,
+ 0.163153,0.19945,-0.96623,-3.223246,-3.225388,-0.976573,
+ -0.178214,-0.110838,0.977729,-3.294389,-3.166225,-0.842823,
+ -0.67011,-0.018974,-0.742019,-3.330406,-3.18519,-0.950058,
+ 0.163153,0.19945,-0.96623,-3.223246,-3.225388,-0.976573,
+ -0.178214,-0.110838,0.977729,-3.294389,-3.166225,-0.842823,
+ 0.163153,0.19945,-0.96623,-3.223246,-3.225388,-0.976573,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ 0.197648,0.486888,-0.850809,-3.333954,-3.058673,-0.974748,
+ -0.67011,-0.018974,-0.742019,-3.330406,-3.18519,-0.950058,
+ -0.178214,-0.110838,0.977729,-3.294389,-3.166225,-0.842823,
+ 0.197648,0.486888,-0.850809,-3.333954,-3.058673,-0.974748,
+ -0.178214,-0.110838,0.977729,-3.294389,-3.166225,-0.842823,
+ -0.674431,0.094186,0.732306,-3.256731,-3.032131,-0.849693,
+ -0.674431,0.094186,0.732306,-3.256731,-3.032131,-0.849693,
+ -0.556404,-0.045521,0.829664,-3.300372,-2.795728,-0.878984,
+ -0.978077,-0.070308,0.196017,-3.339637,-2.846837,-0.966368,
+ -0.674431,0.094186,0.732306,-3.256731,-3.032131,-0.849693,
+ -0.978077,-0.070308,0.196017,-3.339637,-2.846837,-0.966368,
+ 0.197648,0.486888,-0.850809,-3.333954,-3.058673,-0.974748,
+ -0.080858,0.024731,-0.996419,-2.986345,-2.93377,-1.087679,
+ 0.637284,0.689194,-0.344791,-2.90901,-3.084482,-1.089147,
+ 0.503689,0.453945,-0.735004,-3.03125,-3.09594,-1.106355,
+ -0.080858,0.024731,-0.996419,-2.986345,-2.93377,-1.087679,
+ 0.503689,0.453945,-0.735004,-3.03125,-3.09594,-1.106355,
+ -0.661663,-0.02548,-0.749368,-3.107105,-2.947818,-1.092235,
+ 0.503689,0.453945,-0.735004,-3.03125,-3.09594,-1.106355,
+ -0.039603,0.339955,-0.939607,-3.121673,-3.120319,-1.136456,
+ -0.833016,0.038682,-0.551896,-3.177108,-2.979305,-1.139084,
+ 0.503689,0.453945,-0.735004,-3.03125,-3.09594,-1.106355,
+ -0.833016,0.038682,-0.551896,-3.177108,-2.979305,-1.139084,
+ -0.661663,-0.02548,-0.749368,-3.107105,-2.947818,-1.092235,
+ -0.833016,0.038682,-0.551896,-3.177108,-2.979305,-1.139084,
+ -0.039603,0.339955,-0.939607,-3.121673,-3.120319,-1.136456,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ -0.833016,0.038682,-0.551896,-3.177108,-2.979305,-1.139084,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ 0.753698,-0.027204,0.656657,-3.223286,-3.00178,-1.126176,
+ 0.913315,0.39776,0.087427,-3.227676,-3.14166,-1.103969,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ 0.977763,0.208696,-0.020643,-3.217306,-3.187686,-1.075214,
+ 0.121953,0.140869,-0.982488,-3.301857,-3.074776,-1.114869,
+ 0.753698,-0.027204,0.656657,-3.223286,-3.00178,-1.126176,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ 0.121953,0.140869,-0.982488,-3.301857,-3.074776,-1.114869,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ 0.913315,0.39776,0.087427,-3.227676,-3.14166,-1.103969,
+ 0.121953,0.140869,-0.982488,-3.301857,-3.074776,-1.114869,
+ 0.197648,0.486888,-0.850809,-3.333954,-3.058673,-0.974748,
+ 0.517272,-0.552302,-0.653753,-3.302419,-3.017921,-1.128514,
+ -0.978077,-0.070308,0.196017,-3.339637,-2.846837,-0.966368,
+ -0.020456,0.943466,-0.330837,-3.32033,-2.827513,-1.063914,
+ 0.517272,-0.552302,-0.653753,-3.302419,-3.017921,-1.128514,
+ -0.978077,-0.070308,0.196017,-3.339637,-2.846837,-0.966368,
+ 0.517272,-0.552302,-0.653753,-3.302419,-3.017921,-1.128514,
+ 0.197648,0.486888,-0.850809,-3.333954,-3.058673,-0.974748,
+ 0.737412,0.542596,-0.402261,-2.884711,-3.063896,-0.993766,
+ 0.507452,0.36284,-0.781563,-2.946527,-2.939327,-0.986343,
+ 0.72114,0.258272,0.642848,-3.008412,-2.89976,-0.904635,
+ 0.737412,0.542596,-0.402261,-2.884711,-3.063896,-0.993766,
+ 0.72114,0.258272,0.642848,-3.008412,-2.89976,-0.904635,
+ 0.684558,0.361154,0.633205,-2.928681,-3.072892,-0.924772,
+ -0.178214,-0.110838,0.977729,-3.294389,-3.166225,-0.842823,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ -0.058899,-0.007802,0.998233,-3.166971,-3.002766,-0.812106,
+ -0.178214,-0.110838,0.977729,-3.294389,-3.166225,-0.842823,
+ -0.058899,-0.007802,0.998233,-3.166971,-3.002766,-0.812106,
+ -0.674431,0.094186,0.732306,-3.256731,-3.032131,-0.849693,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ 0.308087,0.149605,0.939521,-3.011987,-3.092,-0.860973,
+ 0.403627,0.101273,0.909301,-3.06981,-2.928755,-0.845236,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ 0.403627,0.101273,0.909301,-3.06981,-2.928755,-0.845236,
+ -0.058899,-0.007802,0.998233,-3.166971,-3.002766,-0.812106,
+ 0.308087,0.149605,0.939521,-3.011987,-3.092,-0.860973,
+ 0.684558,0.361154,0.633205,-2.928681,-3.072892,-0.924772,
+ 0.72114,0.258272,0.642848,-3.008412,-2.89976,-0.904635,
+ 0.308087,0.149605,0.939521,-3.011987,-3.092,-0.860973,
+ 0.72114,0.258272,0.642848,-3.008412,-2.89976,-0.904635,
+ 0.403627,0.101273,0.909301,-3.06981,-2.928755,-0.845236,
+ -0.058899,-0.007802,0.998233,-3.166971,-3.002766,-0.812106,
+ 0.403627,0.101273,0.909301,-3.06981,-2.928755,-0.845236,
+ 0.313529,0.096126,0.944701,-3.137383,-2.776449,-0.844117,
+ -0.058899,-0.007802,0.998233,-3.166971,-3.002766,-0.812106,
+ 0.313529,0.096126,0.944701,-3.137383,-2.776449,-0.844117,
+ -0.121543,0.046,0.99152,-3.184812,-2.768053,-0.850127,
+ 0.313529,0.096126,0.944701,-3.137383,-2.776449,-0.844117,
+ 0.403627,0.101273,0.909301,-3.06981,-2.928755,-0.845236,
+ 0.72114,0.258272,0.642848,-3.008412,-2.89976,-0.904635,
+ 0.313529,0.096126,0.944701,-3.137383,-2.776449,-0.844117,
+ 0.72114,0.258272,0.642848,-3.008412,-2.89976,-0.904635,
+ 0.761939,0.13671,0.633055,-3.040038,-2.780893,-0.914614,
+ -0.674431,0.094186,0.732306,-3.256731,-3.032131,-0.849693,
+ -0.058899,-0.007802,0.998233,-3.166971,-3.002766,-0.812106,
+ -0.121543,0.046,0.99152,-3.184812,-2.768053,-0.850127,
+ -0.674431,0.094186,0.732306,-3.256731,-3.032131,-0.849693,
+ -0.121543,0.046,0.99152,-3.184812,-2.768053,-0.850127,
+ -0.556404,-0.045521,0.829664,-3.300372,-2.795728,-0.878984,
+ 0.507452,0.36284,-0.781563,-2.946527,-2.939327,-0.986343,
+ 0.484364,0.195734,-0.85269,-3.016419,-2.765091,-0.966671,
+ 0.761939,0.13671,0.633055,-3.040038,-2.780893,-0.914614,
+ 0.507452,0.36284,-0.781563,-2.946527,-2.939327,-0.986343,
+ 0.761939,0.13671,0.633055,-3.040038,-2.780893,-0.914614,
+ 0.72114,0.258272,0.642848,-3.008412,-2.89976,-0.904635,
+ -0.156071,0.243426,-0.95728,-3.053267,-2.764905,-1.043008,
+ -0.753891,0.130682,-0.643872,-3.141072,-2.785287,-1.032318,
+ -0.440199,0.219838,-0.870572,-3.162498,-2.556375,-1.058409,
+ -0.156071,0.243426,-0.95728,-3.053267,-2.764905,-1.043008,
+ -0.440199,0.219838,-0.870572,-3.162498,-2.556375,-1.058409,
+ -0.775358,0.344514,-0.529274,-3.078699,-2.553982,-1.046834,
+ -0.020456,0.943466,-0.330837,-3.32033,-2.827513,-1.063914,
+ -0.978077,-0.070308,0.196017,-3.339637,-2.846837,-0.966368,
+ -0.326843,-0.236652,0.91497,-3.372066,-2.569159,-0.904785,
+ -0.020456,0.943466,-0.330837,-3.32033,-2.827513,-1.063914,
+ -0.326843,-0.236652,0.91497,-3.372066,-2.569159,-0.904785,
+ -0.354049,-0.10839,-0.928925,-3.347304,-2.573628,-0.955211,
+ 0.030762,-0.124297,0.991768,-3.26181,-2.821069,-1.088218,
+ -0.020456,0.943466,-0.330837,-3.32033,-2.827513,-1.063914,
+ -0.354049,-0.10839,-0.928925,-3.347304,-2.573628,-0.955211,
+ 0.030762,-0.124297,0.991768,-3.26181,-2.821069,-1.088218,
+ -0.354049,-0.10839,-0.928925,-3.347304,-2.573628,-0.955211,
+ 0.433219,-0.09361,-0.896414,-3.251541,-2.56405,-1.023627,
+ -0.637764,0.107242,-0.76273,-3.196508,-2.788166,-1.045431,
+ 0.030762,-0.124297,0.991768,-3.26181,-2.821069,-1.088218,
+ 0.433219,-0.09361,-0.896414,-3.251541,-2.56405,-1.023627,
+ -0.637764,0.107242,-0.76273,-3.196508,-2.788166,-1.045431,
+ 0.433219,-0.09361,-0.896414,-3.251541,-2.56405,-1.023627,
+ -0.440199,0.219838,-0.870572,-3.162498,-2.556375,-1.058409,
+ -0.753891,0.130682,-0.643872,-3.141072,-2.785287,-1.032318,
+ -0.637764,0.107242,-0.76273,-3.196508,-2.788166,-1.045431,
+ -0.440199,0.219838,-0.870572,-3.162498,-2.556375,-1.058409,
+ -0.775358,0.344514,-0.529274,-3.078699,-2.553982,-1.046834,
+ -0.501053,-0.05946,-0.863371,-3.022819,-2.52224,-0.979148,
+ 0.484364,0.195734,-0.85269,-3.016419,-2.765091,-0.966671,
+ -0.775358,0.344514,-0.529274,-3.078699,-2.553982,-1.046834,
+ 0.484364,0.195734,-0.85269,-3.016419,-2.765091,-0.966671,
+ -0.156071,0.243426,-0.95728,-3.053267,-2.764905,-1.043008,
+ 0.255431,-0.055528,0.965231,-3.297886,-2.54902,-0.861657,
+ -0.326843,-0.236652,0.91497,-3.372066,-2.569159,-0.904785,
+ -0.978077,-0.070308,0.196017,-3.339637,-2.846837,-0.966368,
+ 0.255431,-0.055528,0.965231,-3.297886,-2.54902,-0.861657,
+ -0.978077,-0.070308,0.196017,-3.339637,-2.846837,-0.966368,
+ -0.556404,-0.045521,0.829664,-3.300372,-2.795728,-0.878984,
+ -0.215783,-0.895808,0.388544,-3.240554,-2.555467,-0.856262,
+ 0.255431,-0.055528,0.965231,-3.297886,-2.54902,-0.861657,
+ -0.556404,-0.045521,0.829664,-3.300372,-2.795728,-0.878984,
+ -0.215783,-0.895808,0.388544,-3.240554,-2.555467,-0.856262,
+ -0.556404,-0.045521,0.829664,-3.300372,-2.795728,-0.878984,
+ -0.121543,0.046,0.99152,-3.184812,-2.768053,-0.850127,
+ -0.065687,-0.249194,0.966223,-3.132772,-2.528669,-0.848639,
+ -0.215783,-0.895808,0.388544,-3.240554,-2.555467,-0.856262,
+ -0.121543,0.046,0.99152,-3.184812,-2.768053,-0.850127,
+ -0.065687,-0.249194,0.966223,-3.132772,-2.528669,-0.848639,
+ -0.121543,0.046,0.99152,-3.184812,-2.768053,-0.850127,
+ 0.313529,0.096126,0.944701,-3.137383,-2.776449,-0.844117,
+ 0.886562,-0.46255,-0.007485,-3.04661,-2.510881,-0.900772,
+ -0.065687,-0.249194,0.966223,-3.132772,-2.528669,-0.848639,
+ 0.313529,0.096126,0.944701,-3.137383,-2.776449,-0.844117,
+ 0.886562,-0.46255,-0.007485,-3.04661,-2.510881,-0.900772,
+ 0.313529,0.096126,0.944701,-3.137383,-2.776449,-0.844117,
+ 0.761939,0.13671,0.633055,-3.040038,-2.780893,-0.914614,
+ -0.501053,-0.05946,-0.863371,-3.022819,-2.52224,-0.979148,
+ 0.886562,-0.46255,-0.007485,-3.04661,-2.510881,-0.900772,
+ 0.761939,0.13671,0.633055,-3.040038,-2.780893,-0.914614,
+ -0.501053,-0.05946,-0.863371,-3.022819,-2.52224,-0.979148,
+ 0.761939,0.13671,0.633055,-3.040038,-2.780893,-0.914614,
+ 0.484364,0.195734,-0.85269,-3.016419,-2.765091,-0.966671,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.799953,-0.096213,-0.592299,-3.27751,-1.177346,-0.9153,
+ -0.811102,-0.12903,-0.570495,-3.319817,-1.365015,-0.886015,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.811102,-0.12903,-0.570495,-3.319817,-1.365015,-0.886015,
+ -0.782249,0.198377,-0.590536,-3.335942,-1.365685,-0.72459,
+ -0.838192,0.000365,-0.545375,-3.25121,-0.948205,-0.819868,
+ -0.984416,-0.175855,-0.000915,-3.283698,-0.730967,-0.793898,
+ -0.84112,-0.026303,-0.540209,-3.233333,-0.683782,-1.015512,
+ -0.838192,0.000365,-0.545375,-3.25121,-0.948205,-0.819868,
+ -0.84112,-0.026303,-0.540209,-3.233333,-0.683782,-1.015512,
+ -0.813168,-0.06637,-0.578232,-3.238094,-0.979377,-0.961631,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.838192,0.000365,-0.545375,-3.25121,-0.948205,-0.819868,
+ -0.813168,-0.06637,-0.578232,-3.238094,-0.979377,-0.961631,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.813168,-0.06637,-0.578232,-3.238094,-0.979377,-0.961631,
+ -0.799953,-0.096213,-0.592299,-3.27751,-1.177346,-0.9153,
+ -0.743901,0.102645,-0.66036,-3.415655,-0.308965,-0.671045,
+ -0.976177,-0.17359,0.130171,-3.406618,-0.343461,-0.746456,
+ -0.984416,-0.175855,-0.000915,-3.283698,-0.730967,-0.793898,
+ -0.472479,0.093412,-0.876377,-3.556552,0.704883,-0.28063,
+ -0.43302,-0.02622,-0.901003,-3.57817,0.837714,-0.288502,
+ -0.946902,-0.290276,0.138264,-3.664355,0.932851,-0.370749,
+ -0.472479,0.093412,-0.876377,-3.556552,0.704883,-0.28063,
+ -0.946902,-0.290276,0.138264,-3.664355,0.932851,-0.370749,
+ -0.982633,-0.143429,0.11773,-3.631292,0.701013,-0.420276,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ -0.472479,0.093412,-0.876377,-3.556552,0.704883,-0.28063,
+ -0.982633,-0.143429,0.11773,-3.631292,0.701013,-0.420276,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ -0.982633,-0.143429,0.11773,-3.631292,0.701013,-0.420276,
+ -0.995584,-0.070631,0.061842,-3.570384,0.385564,-0.52448,
+ -0.923845,0.18432,-0.335466,-3.51684,0.149002,-0.430359,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ -0.995584,-0.070631,0.061842,-3.570384,0.385564,-0.52448,
+ -0.923845,0.18432,-0.335466,-3.51684,0.149002,-0.430359,
+ -0.995584,-0.070631,0.061842,-3.570384,0.385564,-0.52448,
+ -0.997475,-0.070819,0.005318,-3.520188,0.140164,-0.618561,
+ -0.908258,0.139498,-0.394471,-3.470778,-0.078218,-0.546398,
+ -0.923845,0.18432,-0.335466,-3.51684,0.149002,-0.430359,
+ -0.997475,-0.070819,0.005318,-3.520188,0.140164,-0.618561,
+ -0.908258,0.139498,-0.394471,-3.470778,-0.078218,-0.546398,
+ -0.997475,-0.070819,0.005318,-3.520188,0.140164,-0.618561,
+ -0.980175,-0.184883,0.071243,-3.458251,-0.12595,-0.731712,
+ -0.743901,0.102645,-0.66036,-3.415655,-0.308965,-0.671045,
+ -0.908258,0.139498,-0.394471,-3.470778,-0.078218,-0.546398,
+ -0.980175,-0.184883,0.071243,-3.458251,-0.12595,-0.731712,
+ -0.743901,0.102645,-0.66036,-3.415655,-0.308965,-0.671045,
+ -0.980175,-0.184883,0.071243,-3.458251,-0.12595,-0.731712,
+ -0.976177,-0.17359,0.130171,-3.406618,-0.343461,-0.746456,
+ -0.996668,0.081567,0,-3.623861,0.911561,0,
+ -0.946902,-0.290276,0.138264,-3.664355,0.932851,-0.370749,
+ -0.43302,-0.02622,-0.901003,-3.57817,0.837714,-0.288502,
+ -0.996668,0.081567,0,-3.623861,0.911561,0,
+ -0.43302,-0.02622,-0.901003,-3.57817,0.837714,-0.288502,
+ -0.989171,0.146765,0,-3.599077,0.796217,0,
+ -0.844095,-0.536194,0,-3.601668,1.293049,0,
+ -0.848349,-0.120539,-0.515533,-3.709827,1.417763,0,
+ -0.880002,-0.033987,-0.473752,-3.709741,1.351194,-0.211745,
+ -0.844095,-0.536194,0,-3.601668,1.293049,0,
+ -0.880002,-0.033987,-0.473752,-3.709741,1.351194,-0.211745,
+ -0.870331,0.069096,-0.487595,-3.701634,1.27265,-0.270469,
+ -0.946116,-0.323827,0,-3.608593,1.163581,0,
+ -0.844095,-0.536194,0,-3.601668,1.293049,0,
+ -0.870331,0.069096,-0.487595,-3.701634,1.27265,-0.270469,
+ -0.946116,-0.323827,0,-3.608593,1.163581,0,
+ -0.870331,0.069096,-0.487595,-3.701634,1.27265,-0.270469,
+ -0.822733,0.223687,-0.522565,-3.695872,1.156978,-0.316829,
+ -0.997181,-0.075036,0,-3.622326,1.005378,0,
+ -0.946116,-0.323827,0,-3.608593,1.163581,0,
+ -0.822733,0.223687,-0.522565,-3.695872,1.156978,-0.316829,
+ -0.997181,-0.075036,0,-3.622326,1.005378,0,
+ -0.822733,0.223687,-0.522565,-3.695872,1.156978,-0.316829,
+ -0.938447,-0.345423,0,-3.672431,1.044224,-0.364991,
+ -0.996668,0.081567,0,-3.623861,0.911561,0,
+ -0.997181,-0.075036,0,-3.622326,1.005378,0,
+ -0.938447,-0.345423,0,-3.672431,1.044224,-0.364991,
+ -0.996668,0.081567,0,-3.623861,0.911561,0,
+ -0.938447,-0.345423,0,-3.672431,1.044224,-0.364991,
+ -0.946902,-0.290276,0.138264,-3.664355,0.932851,-0.370749,
+ -0.999862,-0.016634,0,-3.900566,1.002504,0,
+ -0.891992,-0.016938,-0.451734,-3.88734,1.003866,-0.057635,
+ -0.888551,-0.077176,-0.452239,-3.84447,0.498176,-0.053132,
+ -0.999862,-0.016634,0,-3.900566,1.002504,0,
+ -0.888551,-0.077176,-0.452239,-3.84447,0.498176,-0.053132,
+ -0.996511,-0.083465,-0.000062,-3.856649,0.496801,0,
+ -0.964752,0.26316,0,-3.87514,1.480358,0,
+ -0.860797,0.234294,-0.451812,-3.86082,1.479723,-0.062137,
+ -0.891992,-0.016938,-0.451734,-3.88734,1.003866,-0.057635,
+ -0.964752,0.26316,0,-3.87514,1.480358,0,
+ -0.891992,-0.016938,-0.451734,-3.88734,1.003866,-0.057635,
+ -0.999862,-0.016634,0,-3.900566,1.002504,0,
+ -0.766357,0.642415,0,-3.712832,1.794492,0,
+ -0.686439,0.576002,-0.443872,-3.698925,1.787941,-0.06664,
+ -0.860797,0.234294,-0.451812,-3.86082,1.479723,-0.062137,
+ -0.766357,0.642415,0,-3.712832,1.794492,0,
+ -0.860797,0.234294,-0.451812,-3.86082,1.479723,-0.062137,
+ -0.964752,0.26316,0,-3.87514,1.480358,0,
+ -0.410619,0.911807,0,-3.47843,1.975409,0,
+ -0.369855,0.817227,-0.441981,-3.469715,1.961504,-0.071141,
+ -0.686439,0.576002,-0.443872,-3.698925,1.787941,-0.06664,
+ -0.410619,0.911807,0,-3.47843,1.975409,0,
+ -0.686439,0.576002,-0.443872,-3.698925,1.787941,-0.06664,
+ -0.766357,0.642415,0,-3.712832,1.794492,0,
+ -0.433128,-0.901332,0,-3.242148,2.021387,0,
+ 0.011581,0.887039,-0.461548,-3.238225,2.005405,-0.075645,
+ -0.369855,0.817227,-0.441981,-3.469715,1.961504,-0.071141,
+ -0.433128,-0.901332,0,-3.242148,2.021387,0,
+ -0.369855,0.817227,-0.441981,-3.469715,1.961504,-0.071141,
+ -0.410619,0.911807,0,-3.47843,1.975409,0,
+ -0.891992,-0.016938,-0.451734,-3.88734,1.003866,-0.057635,
+ -0.548359,-0.017804,-0.836053,-3.851206,1.007586,-0.099831,
+ -0.545298,-0.056465,-0.836338,-3.811194,0.501935,-0.092033,
+ -0.891992,-0.016938,-0.451734,-3.88734,1.003866,-0.057635,
+ -0.545298,-0.056465,-0.836338,-3.811194,0.501935,-0.092033,
+ -0.888551,-0.077176,-0.452239,-3.84447,0.498176,-0.053132,
+ -0.860797,0.234294,-0.451812,-3.86082,1.479723,-0.062137,
+ -0.530021,0.13773,-0.836725,-3.821694,1.477989,-0.107631,
+ -0.548359,-0.017804,-0.836053,-3.851206,1.007586,-0.099831,
+ -0.860797,0.234294,-0.451812,-3.86082,1.479723,-0.062137,
+ -0.548359,-0.017804,-0.836053,-3.851206,1.007586,-0.099831,
+ -0.891992,-0.016938,-0.451734,-3.88734,1.003866,-0.057635,
+ -0.686439,0.576002,-0.443872,-3.698925,1.787941,-0.06664,
+ -0.429713,0.351913,-0.831568,-3.660928,1.770041,-0.115431,
+ -0.530021,0.13773,-0.836725,-3.821694,1.477989,-0.107631,
+ -0.686439,0.576002,-0.443872,-3.698925,1.787941,-0.06664,
+ -0.530021,0.13773,-0.836725,-3.821694,1.477989,-0.107631,
+ -0.860797,0.234294,-0.451812,-3.86082,1.479723,-0.062137,
+ -0.369855,0.817227,-0.441981,-3.469715,1.961504,-0.071141,
+ -0.240211,0.502412,-0.830591,-3.445903,1.923509,-0.123229,
+ -0.429713,0.351913,-0.831568,-3.660928,1.770041,-0.115431,
+ -0.369855,0.817227,-0.441981,-3.469715,1.961504,-0.071141,
+ -0.429713,0.351913,-0.831568,-3.660928,1.770041,-0.115431,
+ -0.686439,0.576002,-0.443872,-3.698925,1.787941,-0.06664,
+ 0.011581,0.887039,-0.461548,-3.238225,2.005405,-0.075645,
+ 0.000909,0.669011,-0.743252,-3.227504,1.961738,-0.131029,
+ -0.240211,0.502412,-0.830591,-3.445903,1.923509,-0.123229,
+ 0.011581,0.887039,-0.461548,-3.238225,2.005405,-0.075645,
+ -0.240211,0.502412,-0.830591,-3.445903,1.923509,-0.123229,
+ -0.369855,0.817227,-0.441981,-3.469715,1.961504,-0.071141,
+ -0.548359,-0.017804,-0.836053,-3.851206,1.007586,-0.099831,
+ 0.000763,-0.01871,-0.999825,-3.80184,1.012668,-0.115288,
+ 0.002291,-0.021629,-0.999763,-3.765736,0.50707,-0.106281,
+ -0.548359,-0.017804,-0.836053,-3.851206,1.007586,-0.099831,
+ 0.002291,-0.021629,-0.999763,-3.765736,0.50707,-0.106281,
+ -0.545298,-0.056465,-0.836338,-3.811194,0.501935,-0.092033,
+ -0.530021,0.13773,-0.836725,-3.821694,1.477989,-0.107631,
+ -0.004656,-0.025693,-0.999659,-3.768245,1.475619,-0.124295,
+ 0.000763,-0.01871,-0.999825,-3.80184,1.012668,-0.115288,
+ -0.530021,0.13773,-0.836725,-3.821694,1.477989,-0.107631,
+ 0.000763,-0.01871,-0.999825,-3.80184,1.012668,-0.115288,
+ -0.548359,-0.017804,-0.836053,-3.851206,1.007586,-0.099831,
+ -0.429713,0.351913,-0.831568,-3.660928,1.770041,-0.115431,
+ -0.020872,-0.032587,-0.999251,-3.609021,1.745588,-0.133304,
+ -0.004656,-0.025693,-0.999659,-3.768245,1.475619,-0.124295,
+ -0.429713,0.351913,-0.831568,-3.660928,1.770041,-0.115431,
+ -0.004656,-0.025693,-0.999659,-3.768245,1.475619,-0.124295,
+ -0.530021,0.13773,-0.836725,-3.821694,1.477989,-0.107631,
+ -0.240211,0.502412,-0.830591,-3.445903,1.923509,-0.123229,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ -0.020872,-0.032587,-0.999251,-3.609021,1.745588,-0.133304,
+ -0.240211,0.502412,-0.830591,-3.445903,1.923509,-0.123229,
+ -0.020872,-0.032587,-0.999251,-3.609021,1.745588,-0.133304,
+ -0.429713,0.351913,-0.831568,-3.660928,1.770041,-0.115431,
+ 0.000909,0.669011,-0.743252,-3.227504,1.961738,-0.131029,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ -0.240211,0.502412,-0.830591,-3.445903,1.923509,-0.123229,
+ 0.000763,-0.01871,-0.999825,-3.80184,1.012668,-0.115288,
+ 0.549332,-0.018885,-0.835391,-3.752468,1.017751,-0.099865,
+ 0.549192,0.015162,-0.835559,-3.720269,0.512205,-0.092064,
+ 0.000763,-0.01871,-0.999825,-3.80184,1.012668,-0.115288,
+ 0.549192,0.015162,-0.835559,-3.720269,0.512205,-0.092064,
+ 0.002291,-0.021629,-0.999763,-3.765736,0.50707,-0.106281,
+ -0.004656,-0.025693,-0.999659,-3.768245,1.475619,-0.124295,
+ 0.516335,-0.196022,-0.833651,-3.714787,1.473248,-0.107668,
+ 0.549332,-0.018885,-0.835391,-3.752468,1.017751,-0.099865,
+ -0.004656,-0.025693,-0.999659,-3.768245,1.475619,-0.124295,
+ 0.549332,-0.018885,-0.835391,-3.752468,1.017751,-0.099865,
+ 0.000763,-0.01871,-0.999825,-3.80184,1.012668,-0.115288,
+ -0.020872,-0.032587,-0.999251,-3.609021,1.745588,-0.133304,
+ 0.368421,-0.433142,-0.82259,-3.557104,1.72113,-0.11547,
+ 0.516335,-0.196022,-0.833651,-3.714787,1.473248,-0.107668,
+ -0.020872,-0.032587,-0.999251,-3.609021,1.745588,-0.133304,
+ 0.516335,-0.196022,-0.833651,-3.714787,1.473248,-0.107668,
+ -0.004656,-0.025693,-0.999659,-3.768245,1.475619,-0.124295,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ 0.255239,-0.528231,-0.80983,-3.380836,1.819691,-0.123273,
+ 0.368421,-0.433142,-0.82259,-3.557104,1.72113,-0.11547,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ 0.368421,-0.433142,-0.82259,-3.557104,1.72113,-0.11547,
+ -0.020872,-0.032587,-0.999251,-3.609021,1.745588,-0.133304,
+ 0.549332,-0.018885,-0.835391,-3.752468,1.017751,-0.099865,
+ 0.892142,-0.018571,-0.451373,-3.716312,1.021474,-0.057693,
+ 0.891325,0.039302,-0.451658,-3.686972,0.515966,-0.053185,
+ 0.549332,-0.018885,-0.835391,-3.752468,1.017751,-0.099865,
+ 0.891325,0.039302,-0.451658,-3.686972,0.515966,-0.053185,
+ 0.549192,0.015162,-0.835559,-3.720269,0.512205,-0.092064,
+ 0.516335,-0.196022,-0.833651,-3.714787,1.473248,-0.107668,
+ 0.843387,-0.305323,-0.442128,-3.675638,1.471512,-0.062201,
+ 0.892142,-0.018571,-0.451373,-3.716312,1.021474,-0.057693,
+ 0.516335,-0.196022,-0.833651,-3.714787,1.473248,-0.107668,
+ 0.892142,-0.018571,-0.451373,-3.716312,1.021474,-0.057693,
+ 0.549332,-0.018885,-0.835391,-3.752468,1.017751,-0.099865,
+ 0.368421,-0.433142,-0.82259,-3.557104,1.72113,-0.11547,
+ 0.589192,-0.69056,-0.4195,-3.519086,1.70322,-0.066709,
+ 0.843387,-0.305323,-0.442128,-3.675638,1.471512,-0.062201,
+ 0.368421,-0.433142,-0.82259,-3.557104,1.72113,-0.11547,
+ 0.843387,-0.305323,-0.442128,-3.675638,1.471512,-0.062201,
+ 0.516335,-0.196022,-0.833651,-3.714787,1.473248,-0.107668,
+ 0.255239,-0.528231,-0.80983,-3.380836,1.819691,-0.123273,
+ 0.389161,-0.829175,-0.401277,-3.357009,1.781675,-0.071216,
+ 0.589192,-0.69056,-0.4195,-3.519086,1.70322,-0.066709,
+ 0.255239,-0.528231,-0.80983,-3.380836,1.819691,-0.123273,
+ 0.589192,-0.69056,-0.4195,-3.519086,1.70322,-0.066709,
+ 0.368421,-0.433142,-0.82259,-3.557104,1.72113,-0.11547,
+ 0.892142,-0.018571,-0.451373,-3.716312,1.021474,-0.057693,
+ 0.999831,-0.018401,-0.000261,-3.703058,1.022838,-0.000069,
+ 0.998889,0.047122,-0.000074,-3.674766,0.517345,-0.000063,
+ 0.892142,-0.018571,-0.451373,-3.716312,1.021474,-0.057693,
+ 0.998889,0.047122,-0.000074,-3.674766,0.517345,-0.000063,
+ 0.891325,0.039302,-0.451658,-3.686972,0.515966,-0.053185,
+ 0.843387,-0.305323,-0.442128,-3.675638,1.471512,-0.062201,
+ 0.941293,-0.337592,-0.000186,-3.661286,1.470876,-0.000074,
+ 0.999831,-0.018401,-0.000261,-3.703058,1.022838,-0.000069,
+ 0.843387,-0.305323,-0.442128,-3.675638,1.471512,-0.062201,
+ 0.999831,-0.018401,-0.000261,-3.703058,1.022838,-0.000069,
+ 0.892142,-0.018571,-0.451373,-3.716312,1.021474,-0.057693,
+ 0.589192,-0.69056,-0.4195,-3.519086,1.70322,-0.066709,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.941293,-0.337592,-0.000186,-3.661286,1.470876,-0.000074,
+ 0.589192,-0.69056,-0.4195,-3.519086,1.70322,-0.066709,
+ 0.941293,-0.337592,-0.000186,-3.661286,1.470876,-0.000074,
+ 0.843387,-0.305323,-0.442128,-3.675638,1.471512,-0.062201,
+ 0.389161,-0.829175,-0.401277,-3.357009,1.781675,-0.071216,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.389161,-0.829175,-0.401277,-3.357009,1.781675,-0.071216,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.589192,-0.69056,-0.4195,-3.519086,1.70322,-0.066709,
+ 0.000909,0.669011,-0.743252,-3.227504,1.961738,-0.131029,
+ 0.243464,-0.335965,-0.909864,-3.077669,1.871112,-0.217368,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ 0.011581,0.887039,-0.461548,-3.238225,2.005405,-0.075645,
+ -0.433128,-0.901332,0,-3.242148,2.021387,0,
+ 0.012502,-0.999922,0,-3.037562,2.001526,0,
+ 0.011581,0.887039,-0.461548,-3.238225,2.005405,-0.075645,
+ 0.012502,-0.999922,0,-3.037562,2.001526,0,
+ 0.005821,-0.234321,-0.972142,-3.053102,1.96881,-0.051104,
+ 0.000909,0.669011,-0.743252,-3.227504,1.961738,-0.131029,
+ 0.011581,0.887039,-0.461548,-3.238225,2.005405,-0.075645,
+ 0.005821,-0.234321,-0.972142,-3.053102,1.96881,-0.051104,
+ 0.000909,0.669011,-0.743252,-3.227504,1.961738,-0.131029,
+ 0.005821,-0.234321,-0.972142,-3.053102,1.96881,-0.051104,
+ 0.243464,-0.335965,-0.909864,-3.077669,1.871112,-0.217368,
+ 0.243464,-0.335965,-0.909864,-3.077669,1.871112,-0.217368,
+ -0.108631,-0.122719,-0.986478,-3.35851,1.810253,-0.380095,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ 0.243464,-0.335965,-0.909864,-3.077669,1.871112,-0.217368,
+ 0.49938,-0.45475,-0.737443,-3.07531,1.846,-0.363149,
+ -0.108631,-0.122719,-0.986478,-3.35851,1.810253,-0.380095,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.544735,0.449335,-0.708069,4.824747,1.946835,-0.626358,
+ 0.897742,-0.15037,-0.414063,4.852578,1.889721,-0.605031,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.897742,-0.15037,-0.414063,4.852578,1.889721,-0.605031,
+ 0.397989,0.4494,-0.799778,4.861618,1.854067,-0.618095,
+ 0.721999,0.398917,-0.565316,4.861611,2.001639,-0.621913,
+ 0.264979,0.116702,-0.957166,4.842883,2.021333,-0.638025,
+ 0.312982,-0.015529,-0.949632,4.93588,2.051665,-0.572853,
+ 0.721999,0.398917,-0.565316,4.861611,2.001639,-0.621913,
+ 0.312982,-0.015529,-0.949632,4.93588,2.051665,-0.572853,
+ 0.711192,0.127662,-0.69131,4.935561,2.016016,-0.5857,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.412833,-0.156453,-0.897269,5.001903,1.914398,-0.486724,
+ 0.872792,-0.115436,-0.474246,4.973133,1.992779,-0.533466,
+ 0.746476,-0.187741,-0.638379,4.926194,1.859813,-0.582137,
+ 0.560378,0.257626,-0.78715,4.944706,1.840663,-0.575374,
+ 0.397989,0.4494,-0.799778,4.861618,1.854067,-0.618095,
+ 0.746476,-0.187741,-0.638379,4.926194,1.859813,-0.582137,
+ 0.397989,0.4494,-0.799778,4.861618,1.854067,-0.618095,
+ 0.897742,-0.15037,-0.414063,4.852578,1.889721,-0.605031,
+ 0.746476,-0.187741,-0.638379,4.926194,1.859813,-0.582137,
+ 0.108828,-0.182644,-0.977137,4.982364,1.8733,-0.53619,
+ 0.661825,0.260115,-0.703085,4.991709,1.844295,-0.520761,
+ 0.746476,-0.187741,-0.638379,4.926194,1.859813,-0.582137,
+ 0.661825,0.260115,-0.703085,4.991709,1.844295,-0.520761,
+ 0.560378,0.257626,-0.78715,4.944706,1.840663,-0.575374,
+ 0.397989,0.4494,-0.799778,4.861618,1.854067,-0.618095,
+ 0.560378,0.257626,-0.78715,4.944706,1.840663,-0.575374,
+ 0.675892,0.137563,-0.724049,4.908019,1.796041,-0.587882,
+ 0.397989,0.4494,-0.799778,4.861618,1.854067,-0.618095,
+ 0.675892,0.137563,-0.724049,4.908019,1.796041,-0.587882,
+ 0.708269,-0.122724,-0.695193,4.852582,1.816115,-0.603105,
+ 0.560378,0.257626,-0.78715,4.944706,1.840663,-0.575374,
+ 0.661825,0.260115,-0.703085,4.991709,1.844295,-0.520761,
+ 0.683237,-0.051725,-0.728363,4.963546,1.783161,-0.553515,
+ 0.560378,0.257626,-0.78715,4.944706,1.840663,-0.575374,
+ 0.683237,-0.051725,-0.728363,4.963546,1.783161,-0.553515,
+ 0.675892,0.137563,-0.724049,4.908019,1.796041,-0.587882,
+ 0.661825,0.260115,-0.703085,4.991709,1.844295,-0.520761,
+ 0.762434,-0.012904,-0.646937,4.983034,1.806343,-0.505779,
+ 0.683237,-0.051725,-0.728363,4.963546,1.783161,-0.553515,
+ 0.661825,0.260115,-0.703085,4.991709,1.844295,-0.520761,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.762434,-0.012904,-0.646937,4.983034,1.806343,-0.505779,
+ 0.588787,-0.248293,-0.769207,4.918466,2.084725,-0.532713,
+ 0.274422,-0.24433,-0.930051,4.964945,2.053575,-0.499903,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.588787,-0.248293,-0.769207,4.918466,2.084725,-0.532713,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.312982,-0.015529,-0.949632,4.93588,2.051665,-0.572853,
+ 0.274422,-0.24433,-0.930051,4.964945,2.053575,-0.499903,
+ 0.017555,-0.142899,-0.989582,5.020077,1.97817,-0.480978,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.017555,-0.142899,-0.989582,5.020077,1.97817,-0.480978,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.264979,0.116702,-0.957166,4.842883,2.021333,-0.638025,
+ 0.961046,0.110911,-0.253159,4.825996,2.089176,-0.576083,
+ 0.910294,-0.144636,-0.387873,4.881574,2.094571,-0.539949,
+ 0.264979,0.116702,-0.957166,4.842883,2.021333,-0.638025,
+ 0.910294,-0.144636,-0.387873,4.881574,2.094571,-0.539949,
+ 0.312982,-0.015529,-0.949632,4.93588,2.051665,-0.572853,
+ 0.961046,0.110911,-0.253159,4.825996,2.089176,-0.576083,
+ 0.264979,0.116702,-0.957166,4.842883,2.021333,-0.638025,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.961046,0.110911,-0.253159,4.825996,2.089176,-0.576083,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.813293,0.022433,-0.581422,4.788476,2.028047,-0.608619,
+ 0.699393,0.056752,-0.71248,4.751519,2.039658,-0.634134,
+ 0.490646,-0.178293,-0.852923,4.798297,2.118191,-0.591085,
+ 0.961046,0.110911,-0.253159,4.825996,2.089176,-0.576083,
+ 0.699393,0.056752,-0.71248,4.751519,2.039658,-0.634134,
+ 0.961046,0.110911,-0.253159,4.825996,2.089176,-0.576083,
+ 0.813293,0.022433,-0.581422,4.788476,2.028047,-0.608619,
+ 0.490646,-0.178293,-0.852923,4.798297,2.118191,-0.591085,
+ 0.267717,-0.172975,-0.947844,4.872539,2.159259,-0.542891,
+ 0.910294,-0.144636,-0.387873,4.881574,2.094571,-0.539949,
+ 0.490646,-0.178293,-0.852923,4.798297,2.118191,-0.591085,
+ 0.910294,-0.144636,-0.387873,4.881574,2.094571,-0.539949,
+ 0.961046,0.110911,-0.253159,4.825996,2.089176,-0.576083,
+ 0.267717,-0.172975,-0.947844,4.872539,2.159259,-0.542891,
+ -0.028502,-0.108631,-0.993673,4.927885,2.15656,-0.516579,
+ 0.588787,-0.248293,-0.769207,4.918466,2.084725,-0.532713,
+ 0.267717,-0.172975,-0.947844,4.872539,2.159259,-0.542891,
+ 0.588787,-0.248293,-0.769207,4.918466,2.084725,-0.532713,
+ 0.910294,-0.144636,-0.387873,4.881574,2.094571,-0.539949,
+ -0.028502,-0.108631,-0.993673,4.927885,2.15656,-0.516579,
+ -0.064166,-0.189382,-0.979805,5.00244,2.105746,-0.468233,
+ 0.274422,-0.24433,-0.930051,4.964945,2.053575,-0.499903,
+ -0.028502,-0.108631,-0.993673,4.927885,2.15656,-0.516579,
+ 0.274422,-0.24433,-0.930051,4.964945,2.053575,-0.499903,
+ 0.588787,-0.248293,-0.769207,4.918466,2.084725,-0.532713,
+ -0.064166,-0.189382,-0.979805,5.00244,2.105746,-0.468233,
+ 0.781868,0.537364,-0.316105,5.057495,2.002751,-0.451974,
+ 0.017555,-0.142899,-0.989582,5.020077,1.97817,-0.480978,
+ -0.064166,-0.189382,-0.979805,5.00244,2.105746,-0.468233,
+ 0.017555,-0.142899,-0.989582,5.020077,1.97817,-0.480978,
+ 0.274422,-0.24433,-0.930051,4.964945,2.053575,-0.499903,
+ 0.781868,0.537364,-0.316105,5.057495,2.002751,-0.451974,
+ 0.89264,0.34991,-0.284178,5.075994,1.900999,-0.443793,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.781868,0.537364,-0.316105,5.057495,2.002751,-0.451974,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.017555,-0.142899,-0.989582,5.020077,1.97817,-0.480978,
+ 0.89264,0.34991,-0.284178,5.075994,1.900999,-0.443793,
+ 0.618085,0.650911,-0.440779,5.030289,1.827419,-0.440803,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.618085,0.650911,-0.440779,5.030289,1.827419,-0.440803,
+ 0.352601,0.621479,-0.699597,4.991904,1.760829,-0.510386,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.352601,0.621479,-0.699597,4.991904,1.760829,-0.510386,
+ 0.762434,-0.012904,-0.646937,4.983034,1.806343,-0.505779,
+ 0.762434,-0.012904,-0.646937,4.983034,1.806343,-0.505779,
+ 0.352601,0.621479,-0.699597,4.991904,1.760829,-0.510386,
+ 0.171039,0.554898,-0.814146,4.936066,1.737668,-0.557276,
+ 0.762434,-0.012904,-0.646937,4.983034,1.806343,-0.505779,
+ 0.171039,0.554898,-0.814146,4.936066,1.737668,-0.557276,
+ 0.683237,-0.051725,-0.728363,4.963546,1.783161,-0.553515,
+ 0.675892,0.137563,-0.724049,4.908019,1.796041,-0.587882,
+ 0.683237,-0.051725,-0.728363,4.963546,1.783161,-0.553515,
+ 0.171039,0.554898,-0.814146,4.936066,1.737668,-0.557276,
+ 0.675892,0.137563,-0.724049,4.908019,1.796041,-0.587882,
+ 0.171039,0.554898,-0.814146,4.936066,1.737668,-0.557276,
+ -0.281999,-0.030938,-0.958916,4.871155,1.741238,-0.592326,
+ 0.708269,-0.122724,-0.695193,4.852582,1.816115,-0.603105,
+ 0.675892,0.137563,-0.724049,4.908019,1.796041,-0.587882,
+ -0.281999,-0.030938,-0.958916,4.871155,1.741238,-0.592326,
+ 0.708269,-0.122724,-0.695193,4.852582,1.816115,-0.603105,
+ -0.281999,-0.030938,-0.958916,4.871155,1.741238,-0.592326,
+ -0.120429,-0.209965,-0.970264,4.816181,1.79786,-0.604026,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.708269,-0.122724,-0.695193,4.852582,1.816115,-0.603105,
+ -0.120429,-0.209965,-0.970264,4.816181,1.79786,-0.604026,
+ 0.89264,0.34991,-0.284178,5.075994,1.900999,-0.443793,
+ 0.077536,0.770695,-0.632469,5.095375,1.961238,-0.401516,
+ -0.222902,0.035918,-0.974179,5.085813,1.888503,-0.408327,
+ 0.89264,0.34991,-0.284178,5.075994,1.900999,-0.443793,
+ -0.222902,0.035918,-0.974179,5.085813,1.888503,-0.408327,
+ 0.269003,0.864361,-0.424874,5.058179,1.788186,-0.417387,
+ 0.89264,0.34991,-0.284178,5.075994,1.900999,-0.443793,
+ 0.269003,0.864361,-0.424874,5.058179,1.788186,-0.417387,
+ 0.618085,0.650911,-0.440779,5.030289,1.827419,-0.440803,
+ 0.618085,0.650911,-0.440779,5.030289,1.827419,-0.440803,
+ 0.269003,0.864361,-0.424874,5.058179,1.788186,-0.417387,
+ 0.532717,0.840798,-0.09629,5.019836,1.739907,-0.485562,
+ 0.618085,0.650911,-0.440779,5.030289,1.827419,-0.440803,
+ 0.532717,0.840798,-0.09629,5.019836,1.739907,-0.485562,
+ 0.352601,0.621479,-0.699597,4.991904,1.760829,-0.510386,
+ 0.352601,0.621479,-0.699597,4.991904,1.760829,-0.510386,
+ 0.532717,0.840798,-0.09629,5.019836,1.739907,-0.485562,
+ 0.722741,0.690989,0.01339,4.917973,1.68148,-0.544201,
+ 0.352601,0.621479,-0.699597,4.991904,1.760829,-0.510386,
+ 0.722741,0.690989,0.01339,4.917973,1.68148,-0.544201,
+ 0.171039,0.554898,-0.814146,4.936066,1.737668,-0.557276,
+ -0.281999,-0.030938,-0.958916,4.871155,1.741238,-0.592326,
+ 0.171039,0.554898,-0.814146,4.936066,1.737668,-0.557276,
+ 0.722741,0.690989,0.01339,4.917973,1.68148,-0.544201,
+ -0.281999,-0.030938,-0.958916,4.871155,1.741238,-0.592326,
+ 0.722741,0.690989,0.01339,4.917973,1.68148,-0.544201,
+ 0.870384,0.492055,-0.017698,4.862636,1.684144,-0.570155,
+ -0.120429,-0.209965,-0.970264,4.816181,1.79786,-0.604026,
+ -0.281999,-0.030938,-0.958916,4.871155,1.741238,-0.592326,
+ 0.870384,0.492055,-0.017698,4.862636,1.684144,-0.570155,
+ -0.120429,-0.209965,-0.970264,4.816181,1.79786,-0.604026,
+ 0.870384,0.492055,-0.017698,4.862636,1.684144,-0.570155,
+ 0.947044,0.280641,-0.156039,4.752337,1.723388,-0.591296,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ -0.120429,-0.209965,-0.970264,4.816181,1.79786,-0.604026,
+ 0.947044,0.280641,-0.156039,4.752337,1.723388,-0.591296,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.947044,0.280641,-0.156039,4.752337,1.723388,-0.591296,
+ 0.925586,0.05083,-0.375109,4.697607,1.768061,-0.576663,
+ -0.064166,-0.189382,-0.979805,5.00244,2.105746,-0.468233,
+ -0.212651,-0.104685,-0.971504,5.030641,2.102197,-0.432329,
+ 0.332526,0.910491,-0.245832,5.067202,2.027704,-0.422291,
+ -0.064166,-0.189382,-0.979805,5.00244,2.105746,-0.468233,
+ 0.332526,0.910491,-0.245832,5.067202,2.027704,-0.422291,
+ 0.781868,0.537364,-0.316105,5.057495,2.002751,-0.451974,
+ 0.530808,0.847432,0.010124,4.93795,2.181155,-0.486939,
+ -0.212651,-0.104685,-0.971504,5.030641,2.102197,-0.432329,
+ -0.064166,-0.189382,-0.979805,5.00244,2.105746,-0.468233,
+ 0.530808,0.847432,0.010124,4.93795,2.181155,-0.486939,
+ -0.064166,-0.189382,-0.979805,5.00244,2.105746,-0.468233,
+ -0.028502,-0.108631,-0.993673,4.927885,2.15656,-0.516579,
+ 0.668087,0.738269,0.092842,4.881855,2.194544,-0.530288,
+ 0.530808,0.847432,0.010124,4.93795,2.181155,-0.486939,
+ -0.028502,-0.108631,-0.993673,4.927885,2.15656,-0.516579,
+ 0.668087,0.738269,0.092842,4.881855,2.194544,-0.530288,
+ -0.028502,-0.108631,-0.993673,4.927885,2.15656,-0.516579,
+ 0.267717,-0.172975,-0.947844,4.872539,2.159259,-0.542891,
+ 0.668087,0.738269,0.092842,4.881855,2.194544,-0.530288,
+ 0.267717,-0.172975,-0.947844,4.872539,2.159259,-0.542891,
+ 0.490646,-0.178293,-0.852923,4.798297,2.118191,-0.591085,
+ 0.668087,0.738269,0.092842,4.881855,2.194544,-0.530288,
+ 0.490646,-0.178293,-0.852923,4.798297,2.118191,-0.591085,
+ 0.787133,0.61647,0.019654,4.807794,2.143653,-0.570393,
+ 0.787133,0.61647,0.019654,4.807794,2.143653,-0.570393,
+ 0.490646,-0.178293,-0.852923,4.798297,2.118191,-0.591085,
+ 0.699393,0.056752,-0.71248,4.751519,2.039658,-0.634134,
+ 0.787133,0.61647,0.019654,4.807794,2.143653,-0.570393,
+ 0.699393,0.056752,-0.71248,4.751519,2.039658,-0.634134,
+ 0.856604,0.474873,-0.201803,4.728963,2.036146,-0.614307,
+ 0.827569,0.284292,-0.484054,4.742358,1.882232,-0.62165,
+ 0.856604,0.474873,-0.201803,4.728963,2.036146,-0.614307,
+ 0.699393,0.056752,-0.71248,4.751519,2.039658,-0.634134,
+ 0.827569,0.284292,-0.484054,4.742358,1.882232,-0.62165,
+ 0.699393,0.056752,-0.71248,4.751519,2.039658,-0.634134,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.827569,0.284292,-0.484054,4.742358,1.882232,-0.62165,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.925586,0.05083,-0.375109,4.697607,1.768061,-0.576663,
+ 0.766773,0.253147,-0.589894,4.74405,2.179337,-0.556057,
+ 0.787133,0.61647,0.019654,4.807794,2.143653,-0.570393,
+ 0.856604,0.474873,-0.201803,4.728963,2.036146,-0.614307,
+ 0.766773,0.253147,-0.589894,4.74405,2.179337,-0.556057,
+ 0.856604,0.474873,-0.201803,4.728963,2.036146,-0.614307,
+ 0.667258,0.181112,-0.722471,4.688114,2.046378,-0.604518,
+ 0.766773,0.253147,-0.589894,4.74405,2.179337,-0.556057,
+ 0.45571,-0.00339,-0.890122,4.837331,2.235678,-0.479332,
+ 0.668087,0.738269,0.092842,4.881855,2.194544,-0.530288,
+ 0.766773,0.253147,-0.589894,4.74405,2.179337,-0.556057,
+ 0.668087,0.738269,0.092842,4.881855,2.194544,-0.530288,
+ 0.787133,0.61647,0.019654,4.807794,2.143653,-0.570393,
+ 0.45571,-0.00339,-0.890122,4.837331,2.235678,-0.479332,
+ 0.373808,-0.059429,-0.9256,4.89385,2.220523,-0.417713,
+ 0.530808,0.847432,0.010124,4.93795,2.181155,-0.486939,
+ 0.45571,-0.00339,-0.890122,4.837331,2.235678,-0.479332,
+ 0.530808,0.847432,0.010124,4.93795,2.181155,-0.486939,
+ 0.668087,0.738269,0.092842,4.881855,2.194544,-0.530288,
+ 0.373808,-0.059429,-0.9256,4.89385,2.220523,-0.417713,
+ 0.276212,-0.065585,-0.958856,4.995978,2.148785,-0.344534,
+ -0.212651,-0.104685,-0.971504,5.030641,2.102197,-0.432329,
+ 0.373808,-0.059429,-0.9256,4.89385,2.220523,-0.417713,
+ -0.212651,-0.104685,-0.971504,5.030641,2.102197,-0.432329,
+ 0.530808,0.847432,0.010124,4.93795,2.181155,-0.486939,
+ 0.276212,-0.065585,-0.958856,4.995978,2.148785,-0.344534,
+ 0.122987,-0.006582,-0.992386,5.06084,2.053335,-0.309324,
+ 0.332526,0.910491,-0.245832,5.067202,2.027704,-0.422291,
+ 0.276212,-0.065585,-0.958856,4.995978,2.148785,-0.344534,
+ 0.332526,0.910491,-0.245832,5.067202,2.027704,-0.422291,
+ -0.212651,-0.104685,-0.971504,5.030641,2.102197,-0.432329,
+ 0.122987,-0.006582,-0.992386,5.06084,2.053335,-0.309324,
+ 0.041586,0.068165,-0.996807,5.097062,1.954206,-0.328795,
+ 0.077536,0.770695,-0.632469,5.095375,1.961238,-0.401516,
+ 0.122987,-0.006582,-0.992386,5.06084,2.053335,-0.309324,
+ 0.077536,0.770695,-0.632469,5.095375,1.961238,-0.401516,
+ 0.332526,0.910491,-0.245832,5.067202,2.027704,-0.422291,
+ 0.077536,0.770695,-0.632469,5.095375,1.961238,-0.401516,
+ 0.041586,0.068165,-0.996807,5.097062,1.954206,-0.328795,
+ 0.035084,0.005692,-0.999368,5.105589,1.864086,-0.347113,
+ 0.077536,0.770695,-0.632469,5.095375,1.961238,-0.401516,
+ 0.035084,0.005692,-0.999368,5.105589,1.864086,-0.347113,
+ -0.222902,0.035918,-0.974179,5.085813,1.888503,-0.408327,
+ -0.222902,0.035918,-0.974179,5.085813,1.888503,-0.408327,
+ 0.035084,0.005692,-0.999368,5.105589,1.864086,-0.347113,
+ 0.269003,0.864361,-0.424874,5.058179,1.788186,-0.417387,
+ -0.013461,-0.014478,-0.999805,4.697024,1.862575,-0.604048,
+ 0.827569,0.284292,-0.484054,4.742358,1.882232,-0.62165,
+ 0.925586,0.05083,-0.375109,4.697607,1.768061,-0.576663,
+ 0.45571,-0.00339,-0.890122,4.837331,2.235678,-0.479332,
+ -0.114527,0.103064,-0.988059,4.739441,2.299169,-0.369987,
+ 0.2189,0.87846,-0.424724,4.83289,2.262727,-0.283787,
+ 0.45571,-0.00339,-0.890122,4.837331,2.235678,-0.479332,
+ 0.2189,0.87846,-0.424724,4.83289,2.262727,-0.283787,
+ 0.373808,-0.059429,-0.9256,4.89385,2.220523,-0.417713,
+ 0.2189,0.87846,-0.424724,4.83289,2.262727,-0.283787,
+ -0.194126,0.280848,-0.939914,4.971394,2.146686,-0.224781,
+ 0.276212,-0.065585,-0.958856,4.995978,2.148785,-0.344534,
+ 0.2189,0.87846,-0.424724,4.83289,2.262727,-0.283787,
+ 0.276212,-0.065585,-0.958856,4.995978,2.148785,-0.344534,
+ 0.373808,-0.059429,-0.9256,4.89385,2.220523,-0.417713,
+ -0.194126,0.280848,-0.939914,4.971394,2.146686,-0.224781,
+ 0.742633,0.65679,-0.130853,5.072165,2.04363,-0.209228,
+ 0.122987,-0.006582,-0.992386,5.06084,2.053335,-0.309324,
+ -0.194126,0.280848,-0.939914,4.971394,2.146686,-0.224781,
+ 0.122987,-0.006582,-0.992386,5.06084,2.053335,-0.309324,
+ 0.276212,-0.065585,-0.958856,4.995978,2.148785,-0.344534,
+ 0.742633,0.65679,-0.130853,5.072165,2.04363,-0.209228,
+ 0.681964,0.386262,-0.621069,5.127157,1.942759,-0.211214,
+ 0.041586,0.068165,-0.996807,5.097062,1.954206,-0.328795,
+ 0.742633,0.65679,-0.130853,5.072165,2.04363,-0.209228,
+ 0.041586,0.068165,-0.996807,5.097062,1.954206,-0.328795,
+ 0.122987,-0.006582,-0.992386,5.06084,2.053335,-0.309324,
+ 0.681964,0.386262,-0.621069,5.127157,1.942759,-0.211214,
+ 0.584509,0.341142,-0.736187,5.152698,1.830661,-0.287042,
+ 0.035084,0.005692,-0.999368,5.105589,1.864086,-0.347113,
+ 0.681964,0.386262,-0.621069,5.127157,1.942759,-0.211214,
+ 0.035084,0.005692,-0.999368,5.105589,1.864086,-0.347113,
+ 0.041586,0.068165,-0.996807,5.097062,1.954206,-0.328795,
+ 0.035084,0.005692,-0.999368,5.105589,1.864086,-0.347113,
+ 0.584509,0.341142,-0.736187,5.152698,1.830661,-0.287042,
+ 0.577823,0.271654,-0.769626,5.133171,1.715563,-0.334258,
+ 0.035084,0.005692,-0.999368,5.105589,1.864086,-0.347113,
+ 0.577823,0.271654,-0.769626,5.133171,1.715563,-0.334258,
+ 0.269003,0.864361,-0.424874,5.058179,1.788186,-0.417387,
+ 0.269003,0.864361,-0.424874,5.058179,1.788186,-0.417387,
+ 0.577823,0.271654,-0.769626,5.133171,1.715563,-0.334258,
+ 0.237937,0.08172,-0.967837,5.103427,1.624404,-0.434275,
+ 0.269003,0.864361,-0.424874,5.058179,1.788186,-0.417387,
+ 0.237937,0.08172,-0.967837,5.103427,1.624404,-0.434275,
+ 0.532717,0.840798,-0.09629,5.019836,1.739907,-0.485562,
+ 0.532717,0.840798,-0.09629,5.019836,1.739907,-0.485562,
+ 0.237937,0.08172,-0.967837,5.103427,1.624404,-0.434275,
+ 0.198142,0.152918,-0.968171,4.982822,1.503071,-0.507606,
+ 0.532717,0.840798,-0.09629,5.019836,1.739907,-0.485562,
+ 0.198142,0.152918,-0.968171,4.982822,1.503071,-0.507606,
+ 0.722741,0.690989,0.01339,4.917973,1.68148,-0.544201,
+ 0.870384,0.492055,-0.017698,4.862636,1.684144,-0.570155,
+ 0.722741,0.690989,0.01339,4.917973,1.68148,-0.544201,
+ 0.198142,0.152918,-0.968171,4.982822,1.503071,-0.507606,
+ 0.870384,0.492055,-0.017698,4.862636,1.684144,-0.570155,
+ 0.198142,0.152918,-0.968171,4.982822,1.503071,-0.507606,
+ 0.198441,0.172024,-0.964898,4.927282,1.486953,-0.526327,
+ 0.870384,0.492055,-0.017698,4.862636,1.684144,-0.570155,
+ 0.198441,0.172024,-0.964898,4.927282,1.486953,-0.526327,
+ 0.204819,0.130792,-0.970022,4.79841,1.473149,-0.570618,
+ 0.947044,0.280641,-0.156039,4.752337,1.723388,-0.591296,
+ 0.870384,0.492055,-0.017698,4.862636,1.684144,-0.570155,
+ 0.204819,0.130792,-0.970022,4.79841,1.473149,-0.570618,
+ 0.947044,0.280641,-0.156039,4.752337,1.723388,-0.591296,
+ 0.204819,0.130792,-0.970022,4.79841,1.473149,-0.570618,
+ 0.154028,0.078449,-0.984947,4.715646,1.502195,-0.584339,
+ 0.925586,0.05083,-0.375109,4.697607,1.768061,-0.576663,
+ 0.947044,0.280641,-0.156039,4.752337,1.723388,-0.591296,
+ 0.154028,0.078449,-0.984947,4.715646,1.502195,-0.584339,
+ 0.925586,0.05083,-0.375109,4.697607,1.768061,-0.576663,
+ 0.154028,0.078449,-0.984947,4.715646,1.502195,-0.584339,
+ 0.032152,0.123743,-0.991793,4.615408,1.639641,-0.577768,
+ -0.013461,-0.014478,-0.999805,4.697024,1.862575,-0.604048,
+ 0.925586,0.05083,-0.375109,4.697607,1.768061,-0.576663,
+ 0.032152,0.123743,-0.991793,4.615408,1.639641,-0.577768,
+ -0.013461,-0.014478,-0.999805,4.697024,1.862575,-0.604048,
+ 0.032152,0.123743,-0.991793,4.615408,1.639641,-0.577768,
+ -0.077208,0.343417,-0.936004,4.560751,1.785154,-0.562428,
+ 0.510305,0.850999,-0.124054,4.551484,1.841749,-0.575191,
+ 0.667258,0.181112,-0.722471,4.688114,2.046378,-0.604518,
+ -0.013461,-0.014478,-0.999805,4.697024,1.862575,-0.604048,
+ 0.510305,0.850999,-0.124054,4.551484,1.841749,-0.575191,
+ -0.013461,-0.014478,-0.999805,4.697024,1.862575,-0.604048,
+ -0.077208,0.343417,-0.936004,4.560751,1.785154,-0.562428,
+ 0.561002,0.750769,-0.348745,4.533113,1.989009,-0.578975,
+ 0.667258,0.181112,-0.722471,4.688114,2.046378,-0.604518,
+ 0.510305,0.850999,-0.124054,4.551484,1.841749,-0.575191,
+ 0.719268,0.159441,-0.676189,4.636582,2.263383,-0.471997,
+ 0.766773,0.253147,-0.589894,4.74405,2.179337,-0.556057,
+ 0.667258,0.181112,-0.722471,4.688114,2.046378,-0.604518,
+ 0.719268,0.159441,-0.676189,4.636582,2.263383,-0.471997,
+ 0.667258,0.181112,-0.722471,4.688114,2.046378,-0.604518,
+ 0.328548,0.219459,-0.918637,4.561299,2.133066,-0.547248,
+ 0.328548,0.219459,-0.918637,4.561299,2.133066,-0.547248,
+ 0.667258,0.181112,-0.722471,4.688114,2.046378,-0.604518,
+ 0.561002,0.750769,-0.348745,4.533113,1.989009,-0.578975,
+ -0.989689,-0.143234,0,4.912303,2.162645,-0.00009,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ 0.742633,0.65679,-0.130853,5.072165,2.04363,-0.209228,
+ -0.989689,-0.143234,0,4.912303,2.162645,-0.00009,
+ 0.742633,0.65679,-0.130853,5.072165,2.04363,-0.209228,
+ -0.194126,0.280848,-0.939914,4.971394,2.146686,-0.224781,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ 0.444094,0.036128,-0.895251,5.156645,1.942902,-0.119993,
+ 0.681964,0.386262,-0.621069,5.127157,1.942759,-0.211214,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ 0.681964,0.386262,-0.621069,5.127157,1.942759,-0.211214,
+ 0.742633,0.65679,-0.130853,5.072165,2.04363,-0.209228,
+ 0.444094,0.036128,-0.895251,5.156645,1.942902,-0.119993,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.584509,0.341142,-0.736187,5.152698,1.830661,-0.287042,
+ 0.444094,0.036128,-0.895251,5.156645,1.942902,-0.119993,
+ 0.584509,0.341142,-0.736187,5.152698,1.830661,-0.287042,
+ 0.681964,0.386262,-0.621069,5.127157,1.942759,-0.211214,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.347878,0.028988,-0.937092,5.216855,1.636645,-0.279797,
+ 0.577823,0.271654,-0.769626,5.133171,1.715563,-0.334258,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.577823,0.271654,-0.769626,5.133171,1.715563,-0.334258,
+ 0.584509,0.341142,-0.736187,5.152698,1.830661,-0.287042,
+ 0.577823,0.271654,-0.769626,5.133171,1.715563,-0.334258,
+ 0.347878,0.028988,-0.937092,5.216855,1.636645,-0.279797,
+ 0.282492,0.026082,-0.958915,5.233176,1.442459,-0.362988,
+ 0.577823,0.271654,-0.769626,5.133171,1.715563,-0.334258,
+ 0.282492,0.026082,-0.958915,5.233176,1.442459,-0.362988,
+ 0.237937,0.08172,-0.967837,5.103427,1.624404,-0.434275,
+ 0.032152,0.123743,-0.991793,4.615408,1.639641,-0.577768,
+ 0.154028,0.078449,-0.984947,4.715646,1.502195,-0.584339,
+ 0.380651,0.443224,-0.811577,4.679116,1.438434,-0.589658,
+ 0.032152,0.123743,-0.991793,4.615408,1.639641,-0.577768,
+ 0.380651,0.443224,-0.811577,4.679116,1.438434,-0.589658,
+ 0.362705,0.428702,-0.827442,4.596478,1.512987,-0.598982,
+ 0.032152,0.123743,-0.991793,4.615408,1.639641,-0.577768,
+ 0.362705,0.428702,-0.827442,4.596478,1.512987,-0.598982,
+ 0.332757,0.286207,-0.898531,4.560024,1.604023,-0.589333,
+ -0.077208,0.343417,-0.936004,4.560751,1.785154,-0.562428,
+ 0.032152,0.123743,-0.991793,4.615408,1.639641,-0.577768,
+ 0.332757,0.286207,-0.898531,4.560024,1.604023,-0.589333,
+ -0.077208,0.343417,-0.936004,4.560751,1.785154,-0.562428,
+ 0.332757,0.286207,-0.898531,4.560024,1.604023,-0.589333,
+ 0.302715,0.058971,-0.951255,4.477781,1.687858,-0.597407,
+ 0.510305,0.850999,-0.124054,4.551484,1.841749,-0.575191,
+ -0.077208,0.343417,-0.936004,4.560751,1.785154,-0.562428,
+ 0.302715,0.058971,-0.951255,4.477781,1.687858,-0.597407,
+ 0.510305,0.850999,-0.124054,4.551484,1.841749,-0.575191,
+ 0.302715,0.058971,-0.951255,4.477781,1.687858,-0.597407,
+ 0.347794,0.132396,-0.928176,4.459682,1.778884,-0.588185,
+ 0.36359,0.089346,-0.927264,4.43261,1.878873,-0.577888,
+ 0.561002,0.750769,-0.348745,4.533113,1.989009,-0.578975,
+ 0.510305,0.850999,-0.124054,4.551484,1.841749,-0.575191,
+ 0.36359,0.089346,-0.927264,4.43261,1.878873,-0.577888,
+ 0.510305,0.850999,-0.124054,4.551484,1.841749,-0.575191,
+ 0.347794,0.132396,-0.928176,4.459682,1.778884,-0.588185,
+ 0.361081,-0.056526,-0.93082,4.43302,2.024714,-0.563794,
+ 0.328548,0.219459,-0.918637,4.561299,2.133066,-0.547248,
+ 0.561002,0.750769,-0.348745,4.533113,1.989009,-0.578975,
+ 0.361081,-0.056526,-0.93082,4.43302,2.024714,-0.563794,
+ 0.561002,0.750769,-0.348745,4.533113,1.989009,-0.578975,
+ 0.36359,0.089346,-0.927264,4.43261,1.878873,-0.577888,
+ 0.337014,-0.030018,-0.941021,4.634996,2.369115,-0.140117,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ 0.2189,0.87846,-0.424724,4.83289,2.262727,-0.283787,
+ 0.337014,-0.030018,-0.941021,4.634996,2.369115,-0.140117,
+ 0.2189,0.87846,-0.424724,4.83289,2.262727,-0.283787,
+ -0.114527,0.103064,-0.988059,4.739441,2.299169,-0.369987,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ 0.337014,-0.030018,-0.941021,4.634996,2.369115,-0.140117,
+ -0.114527,0.103064,-0.988059,4.739441,2.299169,-0.369987,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ -0.114527,0.103064,-0.988059,4.739441,2.299169,-0.369987,
+ 0.719268,0.159441,-0.676189,4.636582,2.263383,-0.471997,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ 0.719268,0.159441,-0.676189,4.636582,2.263383,-0.471997,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ 0.719268,0.159441,-0.676189,4.636582,2.263383,-0.471997,
+ 0.328548,0.219459,-0.918637,4.561299,2.133066,-0.547248,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ 0.328548,0.219459,-0.918637,4.561299,2.133066,-0.547248,
+ 0.196849,0.14562,-0.969559,4.389484,2.190421,-0.47332,
+ 0.196849,0.14562,-0.969559,4.389484,2.190421,-0.47332,
+ 0.328548,0.219459,-0.918637,4.561299,2.133066,-0.547248,
+ 0.361081,-0.056526,-0.93082,4.43302,2.024714,-0.563794,
+ 0.237937,0.08172,-0.967837,5.103427,1.624404,-0.434275,
+ 0.282492,0.026082,-0.958915,5.233176,1.442459,-0.362988,
+ 0.210495,0.185422,-0.959849,5.223191,1.371491,-0.388069,
+ 0.237937,0.08172,-0.967837,5.103427,1.624404,-0.434275,
+ 0.210495,0.185422,-0.959849,5.223191,1.371491,-0.388069,
+ 0.198142,0.152918,-0.968171,4.982822,1.503071,-0.507606,
+ 0.198142,0.152918,-0.968171,4.982822,1.503071,-0.507606,
+ 0.210495,0.185422,-0.959849,5.223191,1.371491,-0.388069,
+ 0.154687,0.171026,-0.973048,5.158322,1.23677,-0.418043,
+ 0.198142,0.152918,-0.968171,4.982822,1.503071,-0.507606,
+ 0.154687,0.171026,-0.973048,5.158322,1.23677,-0.418043,
+ 0.198441,0.172024,-0.964898,4.927282,1.486953,-0.526327,
+ 0.198441,0.172024,-0.964898,4.927282,1.486953,-0.526327,
+ 0.154687,0.171026,-0.973048,5.158322,1.23677,-0.418043,
+ -0.03359,0.173471,-0.984266,4.95536,1.236724,-0.50523,
+ 0.198441,0.172024,-0.964898,4.927282,1.486953,-0.526327,
+ -0.03359,0.173471,-0.984266,4.95536,1.236724,-0.50523,
+ 0.204819,0.130792,-0.970022,4.79841,1.473149,-0.570618,
+ 0.204819,0.130792,-0.970022,4.79841,1.473149,-0.570618,
+ -0.03359,0.173471,-0.984266,4.95536,1.236724,-0.50523,
+ 0.289202,0.572304,-0.767353,4.761601,1.363013,-0.57137,
+ 0.204819,0.130792,-0.970022,4.79841,1.473149,-0.570618,
+ 0.289202,0.572304,-0.767353,4.761601,1.363013,-0.57137,
+ 0.154028,0.078449,-0.984947,4.715646,1.502195,-0.584339,
+ 0.154028,0.078449,-0.984947,4.715646,1.502195,-0.584339,
+ 0.289202,0.572304,-0.767353,4.761601,1.363013,-0.57137,
+ 0.380651,0.443224,-0.811577,4.679116,1.438434,-0.589658,
+ -0.998597,-0.052951,0,5.177545,1.932323,0.000214,
+ 0.243507,0.533327,-0.810103,5.321136,1.795562,-0.119606,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ -0.998597,-0.052951,0,5.177545,1.932323,0.000214,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.444094,0.036128,-0.895251,5.156645,1.942902,-0.119993,
+ -0.998597,-0.052951,0,5.177545,1.932323,0.000214,
+ -0.99798,-0.063521,0,5.378289,1.768448,0.000441,
+ 0.243507,0.533327,-0.810103,5.321136,1.795562,-0.119606,
+ -0.99798,-0.063521,0,5.378289,1.768448,0.000441,
+ -0.925873,-0.377836,0,5.424281,1.721152,0.000496,
+ 0.168187,0.30029,-0.938903,5.421809,1.685349,-0.123555,
+ -0.99798,-0.063521,0,5.378289,1.768448,0.000441,
+ 0.168187,0.30029,-0.938903,5.421809,1.685349,-0.123555,
+ 0.243507,0.533327,-0.810103,5.321136,1.795562,-0.119606,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.243507,0.533327,-0.810103,5.321136,1.795562,-0.119606,
+ 0.168187,0.30029,-0.938903,5.421809,1.685349,-0.123555,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.168187,0.30029,-0.938903,5.421809,1.685349,-0.123555,
+ 0.112152,0.130705,-0.985057,5.383208,1.619661,-0.202452,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.112152,0.130705,-0.985057,5.383208,1.619661,-0.202452,
+ 0.069483,0.206284,-0.976022,5.373133,1.541142,-0.246712,
+ 0.458202,0.052175,-0.887316,5.218821,1.803552,-0.199306,
+ 0.069483,0.206284,-0.976022,5.373133,1.541142,-0.246712,
+ 0.347878,0.028988,-0.937092,5.216855,1.636645,-0.279797,
+ 0.347878,0.028988,-0.937092,5.216855,1.636645,-0.279797,
+ 0.069483,0.206284,-0.976022,5.373133,1.541142,-0.246712,
+ 0.054287,0.055115,-0.997003,5.334328,1.402713,-0.332639,
+ 0.347878,0.028988,-0.937092,5.216855,1.636645,-0.279797,
+ 0.054287,0.055115,-0.997003,5.334328,1.402713,-0.332639,
+ 0.282492,0.026082,-0.958915,5.233176,1.442459,-0.362988,
+ 0.282492,0.026082,-0.958915,5.233176,1.442459,-0.362988,
+ 0.054287,0.055115,-0.997003,5.334328,1.402713,-0.332639,
+ 0.235746,0.648569,-0.723728,5.296963,1.322443,-0.357984,
+ 0.282492,0.026082,-0.958915,5.233176,1.442459,-0.362988,
+ 0.235746,0.648569,-0.723728,5.296963,1.322443,-0.357984,
+ 0.210495,0.185422,-0.959849,5.223191,1.371491,-0.388069,
+ 0.210495,0.185422,-0.959849,5.223191,1.371491,-0.388069,
+ 0.235746,0.648569,-0.723728,5.296963,1.322443,-0.357984,
+ 0.101496,0.616609,-0.780699,5.260653,1.184173,-0.352062,
+ 0.210495,0.185422,-0.959849,5.223191,1.371491,-0.388069,
+ 0.101496,0.616609,-0.780699,5.260653,1.184173,-0.352062,
+ 0.154687,0.171026,-0.973048,5.158322,1.23677,-0.418043,
+ 0.154687,0.171026,-0.973048,5.158322,1.23677,-0.418043,
+ 0.101496,0.616609,-0.780699,5.260653,1.184173,-0.352062,
+ 0.043397,0.435461,-0.899161,5.250485,1.123029,-0.385234,
+ 0.154687,0.171026,-0.973048,5.158322,1.23677,-0.418043,
+ 0.043397,0.435461,-0.899161,5.250485,1.123029,-0.385234,
+ 0.012421,0.392537,-0.919653,4.991713,1.163096,-0.504149,
+ 0.154687,0.171026,-0.973048,5.158322,1.23677,-0.418043,
+ 0.012421,0.392537,-0.919653,4.991713,1.163096,-0.504149,
+ -0.03359,0.173471,-0.984266,4.95536,1.236724,-0.50523,
+ 0.289202,0.572304,-0.767353,4.761601,1.363013,-0.57137,
+ -0.03359,0.173471,-0.984266,4.95536,1.236724,-0.50523,
+ 0.012421,0.392537,-0.919653,4.991713,1.163096,-0.504149,
+ 0.289202,0.572304,-0.767353,4.761601,1.363013,-0.57137,
+ 0.012421,0.392537,-0.919653,4.991713,1.163096,-0.504149,
+ 0.067357,0.280762,-0.957411,4.733657,1.227371,-0.592883,
+ 0.380651,0.443224,-0.811577,4.679116,1.438434,-0.589658,
+ 0.289202,0.572304,-0.767353,4.761601,1.363013,-0.57137,
+ 0.067357,0.280762,-0.957411,4.733657,1.227371,-0.592883,
+ 0.380651,0.443224,-0.811577,4.679116,1.438434,-0.589658,
+ 0.067357,0.280762,-0.957411,4.733657,1.227371,-0.592883,
+ -0.026366,0.234118,-0.971851,4.641547,1.285422,-0.622034,
+ 0.362705,0.428702,-0.827442,4.596478,1.512987,-0.598982,
+ 0.380651,0.443224,-0.811577,4.679116,1.438434,-0.589658,
+ -0.026366,0.234118,-0.971851,4.641547,1.285422,-0.622034,
+ 0.362705,0.428702,-0.827442,4.596478,1.512987,-0.598982,
+ -0.026366,0.234118,-0.971851,4.641547,1.285422,-0.622034,
+ 0.184871,0.227139,-0.956154,4.522247,1.398278,-0.644892,
+ 0.332757,0.286207,-0.898531,4.560024,1.604023,-0.589333,
+ 0.362705,0.428702,-0.827442,4.596478,1.512987,-0.598982,
+ 0.184871,0.227139,-0.956154,4.522247,1.398278,-0.644892,
+ 0.332757,0.286207,-0.898531,4.560024,1.604023,-0.589333,
+ 0.184871,0.227139,-0.956154,4.522247,1.398278,-0.644892,
+ -0.034875,0.308036,-0.950735,4.430999,1.535753,-0.638888,
+ 0.302715,0.058971,-0.951255,4.477781,1.687858,-0.597407,
+ 0.332757,0.286207,-0.898531,4.560024,1.604023,-0.589333,
+ -0.034875,0.308036,-0.950735,4.430999,1.535753,-0.638888,
+ 0.302715,0.058971,-0.951255,4.477781,1.687858,-0.597407,
+ -0.034875,0.308036,-0.950735,4.430999,1.535753,-0.638888,
+ -0.148853,0.101172,-0.98367,4.404221,1.662433,-0.61661,
+ 0.504832,0.844097,-0.180678,4.38638,1.770868,-0.596666,
+ 0.347794,0.132396,-0.928176,4.459682,1.778884,-0.588185,
+ 0.302715,0.058971,-0.951255,4.477781,1.687858,-0.597407,
+ 0.504832,0.844097,-0.180678,4.38638,1.770868,-0.596666,
+ 0.302715,0.058971,-0.951255,4.477781,1.687858,-0.597407,
+ -0.148853,0.101172,-0.98367,4.404221,1.662433,-0.61661,
+ 0.615047,0.769185,-0.17341,4.377095,1.871713,-0.595743,
+ 0.36359,0.089346,-0.927264,4.43261,1.878873,-0.577888,
+ 0.347794,0.132396,-0.928176,4.459682,1.778884,-0.588185,
+ 0.615047,0.769185,-0.17341,4.377095,1.871713,-0.595743,
+ 0.347794,0.132396,-0.928176,4.459682,1.778884,-0.588185,
+ 0.504832,0.844097,-0.180678,4.38638,1.770868,-0.596666,
+ -0.925873,-0.377836,0,5.424281,1.721152,0.000496,
+ 0.027992,0.999608,0,5.588763,1.573846,0.000686,
+ 0.550962,0.627632,-0.550018,5.604888,1.546091,-0.113773,
+ -0.925873,-0.377836,0,5.424281,1.721152,0.000496,
+ 0.550962,0.627632,-0.550018,5.604888,1.546091,-0.113773,
+ 0.168187,0.30029,-0.938903,5.421809,1.685349,-0.123555,
+ 0.168187,0.30029,-0.938903,5.421809,1.685349,-0.123555,
+ 0.550962,0.627632,-0.550018,5.604888,1.546091,-0.113773,
+ 0.477288,0.71618,-0.509197,5.566339,1.498677,-0.190905,
+ 0.168187,0.30029,-0.938903,5.421809,1.685349,-0.123555,
+ 0.477288,0.71618,-0.509197,5.566339,1.498677,-0.190905,
+ 0.112152,0.130705,-0.985057,5.383208,1.619661,-0.202452,
+ 0.112152,0.130705,-0.985057,5.383208,1.619661,-0.202452,
+ 0.477288,0.71618,-0.509197,5.566339,1.498677,-0.190905,
+ 0.887994,0.419811,-0.187682,5.528186,1.44018,-0.250666,
+ 0.112152,0.130705,-0.985057,5.383208,1.619661,-0.202452,
+ 0.887994,0.419811,-0.187682,5.528186,1.44018,-0.250666,
+ 0.069483,0.206284,-0.976022,5.373133,1.541142,-0.246712,
+ 0.069483,0.206284,-0.976022,5.373133,1.541142,-0.246712,
+ 0.887994,0.419811,-0.187682,5.528186,1.44018,-0.250666,
+ 0.749779,0.312647,-0.583167,5.471928,1.345179,-0.313899,
+ 0.069483,0.206284,-0.976022,5.373133,1.541142,-0.246712,
+ 0.749779,0.312647,-0.583167,5.471928,1.345179,-0.313899,
+ 0.054287,0.055115,-0.997003,5.334328,1.402713,-0.332639,
+ 0.054287,0.055115,-0.997003,5.334328,1.402713,-0.332639,
+ 0.749779,0.312647,-0.583167,5.471928,1.345179,-0.313899,
+ 0.358075,0.480709,-0.800438,5.425783,1.264372,-0.329687,
+ 0.054287,0.055115,-0.997003,5.334328,1.402713,-0.332639,
+ 0.358075,0.480709,-0.800438,5.425783,1.264372,-0.329687,
+ 0.235746,0.648569,-0.723728,5.296963,1.322443,-0.357984,
+ 0.235746,0.648569,-0.723728,5.296963,1.322443,-0.357984,
+ 0.358075,0.480709,-0.800438,5.425783,1.264372,-0.329687,
+ 0.524848,0.480957,-0.702293,5.397967,1.174238,-0.346802,
+ 0.235746,0.648569,-0.723728,5.296963,1.322443,-0.357984,
+ 0.524848,0.480957,-0.702293,5.397967,1.174238,-0.346802,
+ 0.101496,0.616609,-0.780699,5.260653,1.184173,-0.352062,
+ 0.101496,0.616609,-0.780699,5.260653,1.184173,-0.352062,
+ 0.524848,0.480957,-0.702293,5.397967,1.174238,-0.346802,
+ 0.72603,0.248277,-0.641279,5.388455,1.119419,-0.351883,
+ 0.101496,0.616609,-0.780699,5.260653,1.184173,-0.352062,
+ 0.72603,0.248277,-0.641279,5.388455,1.119419,-0.351883,
+ 0.043397,0.435461,-0.899161,5.250485,1.123029,-0.385234,
+ 0.987857,-0.047506,-0.147925,5.687035,1.499636,-0.110765,
+ 0.936734,-0.314344,0.154001,5.741781,1.463956,-0.124891,
+ 0.831976,-0.511655,0.214534,5.730427,1.435668,-0.209848,
+ 0.987857,-0.047506,-0.147925,5.687035,1.499636,-0.110765,
+ 0.831976,-0.511655,0.214534,5.730427,1.435668,-0.209848,
+ 0.798302,-0.559383,0.22317,5.685194,1.452202,-0.188749,
+ 0.744254,-0.654161,-0.134758,5.710154,1.360653,-0.290072,
+ 0.884602,-0.366981,-0.287755,5.608974,1.317869,-0.319719,
+ 0.707709,-0.687035,-0.164711,5.647186,1.394606,-0.257833,
+ 0.884602,-0.366981,-0.287755,5.608974,1.317869,-0.319719,
+ 0.744254,-0.654161,-0.134758,5.710154,1.360653,-0.290072,
+ 0.364327,0.145753,-0.919795,5.681726,1.282503,-0.333871,
+ 0.884602,-0.366981,-0.287755,5.608974,1.317869,-0.319719,
+ 0.364327,0.145753,-0.919795,5.681726,1.282503,-0.333871,
+ 0.777215,-0.378098,-0.50297,5.563253,1.235295,-0.317238,
+ 0.777215,-0.378098,-0.50297,5.563253,1.235295,-0.317238,
+ 0.364327,0.145753,-0.919795,5.681726,1.282503,-0.333871,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.777215,-0.378098,-0.50297,5.563253,1.235295,-0.317238,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.348619,-0.077188,-0.934081,5.580797,1.174135,-0.351054,
+ -0.026558,-0.999647,0,5.680007,1.510009,0.000786,
+ 0.987857,-0.047506,-0.147925,5.687035,1.499636,-0.110765,
+ 0.550962,0.627632,-0.550018,5.604888,1.546091,-0.113773,
+ -0.026558,-0.999647,0,5.680007,1.510009,0.000786,
+ 0.550962,0.627632,-0.550018,5.604888,1.546091,-0.113773,
+ 0.027992,0.999608,0,5.588763,1.573846,0.000686,
+ 0.550962,0.627632,-0.550018,5.604888,1.546091,-0.113773,
+ 0.987857,-0.047506,-0.147925,5.687035,1.499636,-0.110765,
+ 0.798302,-0.559383,0.22317,5.685194,1.452202,-0.188749,
+ 0.550962,0.627632,-0.550018,5.604888,1.546091,-0.113773,
+ 0.798302,-0.559383,0.22317,5.685194,1.452202,-0.188749,
+ 0.477288,0.71618,-0.509197,5.566339,1.498677,-0.190905,
+ 0.798302,-0.559383,0.22317,5.685194,1.452202,-0.188749,
+ 0.707709,-0.687035,-0.164711,5.647186,1.394606,-0.257833,
+ 0.887994,0.419811,-0.187682,5.528186,1.44018,-0.250666,
+ 0.798302,-0.559383,0.22317,5.685194,1.452202,-0.188749,
+ 0.887994,0.419811,-0.187682,5.528186,1.44018,-0.250666,
+ 0.477288,0.71618,-0.509197,5.566339,1.498677,-0.190905,
+ 0.887994,0.419811,-0.187682,5.528186,1.44018,-0.250666,
+ 0.707709,-0.687035,-0.164711,5.647186,1.394606,-0.257833,
+ 0.884602,-0.366981,-0.287755,5.608974,1.317869,-0.319719,
+ 0.887994,0.419811,-0.187682,5.528186,1.44018,-0.250666,
+ 0.884602,-0.366981,-0.287755,5.608974,1.317869,-0.319719,
+ 0.749779,0.312647,-0.583167,5.471928,1.345179,-0.313899,
+ 0.749779,0.312647,-0.583167,5.471928,1.345179,-0.313899,
+ 0.884602,-0.366981,-0.287755,5.608974,1.317869,-0.319719,
+ 0.777215,-0.378098,-0.50297,5.563253,1.235295,-0.317238,
+ 0.749779,0.312647,-0.583167,5.471928,1.345179,-0.313899,
+ 0.777215,-0.378098,-0.50297,5.563253,1.235295,-0.317238,
+ 0.358075,0.480709,-0.800438,5.425783,1.264372,-0.329687,
+ 0.358075,0.480709,-0.800438,5.425783,1.264372,-0.329687,
+ 0.777215,-0.378098,-0.50297,5.563253,1.235295,-0.317238,
+ 0.348619,-0.077188,-0.934081,5.580797,1.174135,-0.351054,
+ 0.358075,0.480709,-0.800438,5.425783,1.264372,-0.329687,
+ 0.348619,-0.077188,-0.934081,5.580797,1.174135,-0.351054,
+ 0.524848,0.480957,-0.702293,5.397967,1.174238,-0.346802,
+ 0.524848,0.480957,-0.702293,5.397967,1.174238,-0.346802,
+ 0.348619,-0.077188,-0.934081,5.580797,1.174135,-0.351054,
+ 0.802898,-0.287005,-0.522477,5.47963,1.11131,-0.364188,
+ 0.524848,0.480957,-0.702293,5.397967,1.174238,-0.346802,
+ 0.802898,-0.287005,-0.522477,5.47963,1.11131,-0.364188,
+ 0.72603,0.248277,-0.641279,5.388455,1.119419,-0.351883,
+ 0.901575,-0.270544,-0.337593,5.842092,1.427708,-0.130724,
+ 0.461068,-0.584089,-0.668024,5.915025,1.382159,-0.13682,
+ 0.194103,-0.204609,-0.959406,5.886832,1.385674,-0.172365,
+ 0.901575,-0.270544,-0.337593,5.842092,1.427708,-0.130724,
+ 0.194103,-0.204609,-0.959406,5.886832,1.385674,-0.172365,
+ 0.286794,0.030057,-0.957521,5.813217,1.415581,-0.195261,
+ -0.016213,0.999869,0,5.908842,1.388968,0.001026,
+ 0.663563,0.74812,0.000025,5.963117,1.307775,0.001098,
+ 0.259896,0.111139,-0.95922,5.979357,1.325532,-0.125337,
+ -0.016213,0.999869,0,5.908842,1.388968,0.001026,
+ 0.259896,0.111139,-0.95922,5.979357,1.325532,-0.125337,
+ 0.461068,-0.584089,-0.668024,5.915025,1.382159,-0.13682,
+ 0.461068,-0.584089,-0.668024,5.915025,1.382159,-0.13682,
+ 0.259896,0.111139,-0.95922,5.979357,1.325532,-0.125337,
+ 0.230527,0.277297,-0.932718,5.941384,1.330818,-0.178936,
+ 0.461068,-0.584089,-0.668024,5.915025,1.382159,-0.13682,
+ 0.230527,0.277297,-0.932718,5.941384,1.330818,-0.178936,
+ 0.194103,-0.204609,-0.959406,5.886832,1.385674,-0.172365,
+ 0.694651,0.719347,0.000019,5.743997,1.482739,0.000851,
+ 0.569495,0.821995,-0.000075,5.835498,1.43628,0.000946,
+ 0.901575,-0.270544,-0.337593,5.842092,1.427708,-0.130724,
+ 0.694651,0.719347,0.000019,5.743997,1.482739,0.000851,
+ 0.901575,-0.270544,-0.337593,5.842092,1.427708,-0.130724,
+ 0.936734,-0.314344,0.154001,5.741781,1.463956,-0.124891,
+ 0.936734,-0.314344,0.154001,5.741781,1.463956,-0.124891,
+ 0.901575,-0.270544,-0.337593,5.842092,1.427708,-0.130724,
+ 0.286794,0.030057,-0.957521,5.813217,1.415581,-0.195261,
+ 0.936734,-0.314344,0.154001,5.741781,1.463956,-0.124891,
+ 0.286794,0.030057,-0.957521,5.813217,1.415581,-0.195261,
+ 0.831976,-0.511655,0.214534,5.730427,1.435668,-0.209848,
+ 0.831976,-0.511655,0.214534,5.730427,1.435668,-0.209848,
+ 0.286794,0.030057,-0.957521,5.813217,1.415581,-0.195261,
+ 0.188634,-0.17518,-0.966297,5.783731,1.341471,-0.28459,
+ 0.831976,-0.511655,0.214534,5.730427,1.435668,-0.209848,
+ 0.188634,-0.17518,-0.966297,5.783731,1.341471,-0.28459,
+ 0.744254,-0.654161,-0.134758,5.710154,1.360653,-0.290072,
+ 0.286794,0.030057,-0.957521,5.813217,1.415581,-0.195261,
+ 0.194103,-0.204609,-0.959406,5.886832,1.385674,-0.172365,
+ 0.244568,-0.04472,-0.9686,5.847989,1.311569,-0.261476,
+ 0.286794,0.030057,-0.957521,5.813217,1.415581,-0.195261,
+ 0.244568,-0.04472,-0.9686,5.847989,1.311569,-0.261476,
+ 0.188634,-0.17518,-0.966297,5.783731,1.341471,-0.28459,
+ 0.194103,-0.204609,-0.959406,5.886832,1.385674,-0.172365,
+ 0.230527,0.277297,-0.932718,5.941384,1.330818,-0.178936,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ 0.194103,-0.204609,-0.959406,5.886832,1.385674,-0.172365,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ 0.244568,-0.04472,-0.9686,5.847989,1.311569,-0.261476,
+ 0.259896,0.111139,-0.95922,5.979357,1.325532,-0.125337,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.230527,0.277297,-0.932718,5.941384,1.330818,-0.178936,
+ 0.663563,0.74812,0.000025,5.963117,1.307775,0.001098,
+ 0.617634,0.786466,0.000062,5.963527,1.232407,0.001121,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.663563,0.74812,0.000025,5.963117,1.307775,0.001098,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.259896,0.111139,-0.95922,5.979357,1.325532,-0.125337,
+ 0.230527,0.277297,-0.932718,5.941384,1.330818,-0.178936,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.193495,-0.385604,-0.902147,5.931474,1.233483,-0.215613,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.617634,0.786466,0.000062,5.963527,1.232407,0.001121,
+ 0.651313,0.75881,-0.000286,5.92711,1.131195,0.001118,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.651313,0.75881,-0.000286,5.92711,1.131195,0.001118,
+ -0.2127,-0.171223,-0.961999,5.961686,1.110978,-0.090324,
+ 0.651313,0.75881,-0.000286,5.92711,1.131195,0.001118,
+ 0.909103,0.416568,-0.001454,5.908782,1.066916,0.001121,
+ 0.054456,-0.320459,-0.945696,5.934596,1.054796,-0.077039,
+ 0.651313,0.75881,-0.000286,5.92711,1.131195,0.001118,
+ 0.054456,-0.320459,-0.945696,5.934596,1.054796,-0.077039,
+ -0.2127,-0.171223,-0.961999,5.961686,1.110978,-0.090324,
+ -0.2127,-0.171223,-0.961999,5.961686,1.110978,-0.090324,
+ 0.054456,-0.320459,-0.945696,5.934596,1.054796,-0.077039,
+ 0.169576,-0.140705,-0.975421,5.923808,1.025283,-0.153084,
+ -0.2127,-0.171223,-0.961999,5.961686,1.110978,-0.090324,
+ 0.169576,-0.140705,-0.975421,5.923808,1.025283,-0.153084,
+ 0.111896,-0.605741,-0.787755,5.950684,1.082725,-0.175648,
+ 0.063422,-0.817077,-0.573029,5.800778,1.078596,-0.31945,
+ 0.16399,-0.527952,-0.833291,5.884856,1.062202,-0.249545,
+ 0.120494,-0.516376,-0.847843,5.85775,0.997026,-0.236768,
+ 0.063422,-0.817077,-0.573029,5.800778,1.078596,-0.31945,
+ 0.120494,-0.516376,-0.847843,5.85775,0.997026,-0.236768,
+ 0.396941,-0.593504,-0.700137,5.755282,1.004149,-0.307505,
+ 0.063422,-0.817077,-0.573029,5.800778,1.078596,-0.31945,
+ 0.396941,-0.593504,-0.700137,5.755282,1.004149,-0.307505,
+ 0.010578,-0.902776,-0.429981,5.763952,1.062109,-0.338641,
+ 0.051115,-0.906355,-0.419414,5.912147,1.117911,-0.254197,
+ 0.223936,-0.919046,-0.324355,5.959462,1.157227,-0.187097,
+ 0.111896,-0.605741,-0.787755,5.950684,1.082725,-0.175648,
+ 0.051115,-0.906355,-0.419414,5.912147,1.117911,-0.254197,
+ 0.111896,-0.605741,-0.787755,5.950684,1.082725,-0.175648,
+ 0.16399,-0.527952,-0.833291,5.884856,1.062202,-0.249545,
+ 0.16399,-0.527952,-0.833291,5.884856,1.062202,-0.249545,
+ 0.111896,-0.605741,-0.787755,5.950684,1.082725,-0.175648,
+ 0.169576,-0.140705,-0.975421,5.923808,1.025283,-0.153084,
+ 0.16399,-0.527952,-0.833291,5.884856,1.062202,-0.249545,
+ 0.169576,-0.140705,-0.975421,5.923808,1.025283,-0.153084,
+ 0.120494,-0.516376,-0.847843,5.85775,0.997026,-0.236768,
+ 0.063422,-0.817077,-0.573029,5.800778,1.078596,-0.31945,
+ 0.161367,-0.802085,-0.574996,5.837875,1.141493,-0.305184,
+ 0.051115,-0.906355,-0.419414,5.912147,1.117911,-0.254197,
+ 0.063422,-0.817077,-0.573029,5.800778,1.078596,-0.31945,
+ 0.051115,-0.906355,-0.419414,5.912147,1.117911,-0.254197,
+ 0.16399,-0.527952,-0.833291,5.884856,1.062202,-0.249545,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.218068,-0.756332,-0.616772,5.77341,1.225861,-0.323025,
+ 0.161367,-0.802085,-0.574996,5.837875,1.141493,-0.305184,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.161367,-0.802085,-0.574996,5.837875,1.141493,-0.305184,
+ 0.063422,-0.817077,-0.573029,5.800778,1.078596,-0.31945,
+ 0.364327,0.145753,-0.919795,5.681726,1.282503,-0.333871,
+ 0.725751,-0.657941,-0.200998,5.764774,1.279824,-0.308562,
+ 0.218068,-0.756332,-0.616772,5.77341,1.225861,-0.323025,
+ 0.364327,0.145753,-0.919795,5.681726,1.282503,-0.333871,
+ 0.218068,-0.756332,-0.616772,5.77341,1.225861,-0.323025,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.744254,-0.654161,-0.134758,5.710154,1.360653,-0.290072,
+ 0.188634,-0.17518,-0.966297,5.783731,1.341471,-0.28459,
+ 0.725751,-0.657941,-0.200998,5.764774,1.279824,-0.308562,
+ 0.744254,-0.654161,-0.134758,5.710154,1.360653,-0.290072,
+ 0.725751,-0.657941,-0.200998,5.764774,1.279824,-0.308562,
+ 0.364327,0.145753,-0.919795,5.681726,1.282503,-0.333871,
+ 0.17011,-0.985049,0.027217,5.690122,1.092917,-0.37085,
+ 0.010578,-0.902776,-0.429981,5.763952,1.062109,-0.338641,
+ 0.231006,-0.859096,-0.456717,5.681086,1.054964,-0.35586,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.063422,-0.817077,-0.573029,5.800778,1.078596,-0.31945,
+ 0.010578,-0.902776,-0.429981,5.763952,1.062109,-0.338641,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.010578,-0.902776,-0.429981,5.763952,1.062109,-0.338641,
+ 0.17011,-0.985049,0.027217,5.690122,1.092917,-0.37085,
+ 0.348619,-0.077188,-0.934081,5.580797,1.174135,-0.351054,
+ 0.612046,-0.714077,-0.339844,5.672187,1.164767,-0.35408,
+ 0.17011,-0.985049,0.027217,5.690122,1.092917,-0.37085,
+ 0.348619,-0.077188,-0.934081,5.580797,1.174135,-0.351054,
+ 0.17011,-0.985049,0.027217,5.690122,1.092917,-0.37085,
+ 0.108306,-0.808441,-0.578527,5.598282,1.094735,-0.386994,
+ 0.348619,-0.077188,-0.934081,5.580797,1.174135,-0.351054,
+ 0.108306,-0.808441,-0.578527,5.598282,1.094735,-0.386994,
+ 0.802898,-0.287005,-0.522477,5.47963,1.11131,-0.364188,
+ 0.802898,-0.287005,-0.522477,5.47963,1.11131,-0.364188,
+ 0.108306,-0.808441,-0.578527,5.598282,1.094735,-0.386994,
+ 0.155351,-0.987262,-0.034337,5.470775,1.009574,-0.355371,
+ 0.108306,-0.808441,-0.578527,5.598282,1.094735,-0.386994,
+ 0.17011,-0.985049,0.027217,5.690122,1.092917,-0.37085,
+ 0.231006,-0.859096,-0.456717,5.681086,1.054964,-0.35586,
+ 0.108306,-0.808441,-0.578527,5.598282,1.094735,-0.386994,
+ 0.231006,-0.859096,-0.456717,5.681086,1.054964,-0.35586,
+ 0.228199,-0.705361,-0.671112,5.580223,1.04747,-0.372696,
+ 0.228199,-0.705361,-0.671112,5.580223,1.04747,-0.372696,
+ 0.231006,-0.859096,-0.456717,5.681086,1.054964,-0.35586,
+ 0.173726,-0.983856,0.042973,5.672385,1.007694,-0.341778,
+ 0.228199,-0.705361,-0.671112,5.580223,1.04747,-0.372696,
+ 0.173726,-0.983856,0.042973,5.672385,1.007694,-0.341778,
+ 0.148862,-0.934725,-0.322692,5.580727,0.99933,-0.349867,
+ 0.228199,-0.705361,-0.671112,5.580223,1.04747,-0.372696,
+ 0.155351,-0.987262,-0.034337,5.470775,1.009574,-0.355371,
+ 0.108306,-0.808441,-0.578527,5.598282,1.094735,-0.386994,
+ 0.228199,-0.705361,-0.671112,5.580223,1.04747,-0.372696,
+ 0.148862,-0.934725,-0.322692,5.580727,0.99933,-0.349867,
+ 0.241652,-0.897637,-0.368581,5.535184,0.98018,-0.341257,
+ 0.228199,-0.705361,-0.671112,5.580223,1.04747,-0.372696,
+ 0.241652,-0.897637,-0.368581,5.535184,0.98018,-0.341257,
+ 0.155351,-0.987262,-0.034337,5.470775,1.009574,-0.355371,
+ 0.72603,0.248277,-0.641279,5.388455,1.119419,-0.351883,
+ 0.802898,-0.287005,-0.522477,5.47963,1.11131,-0.364188,
+ 0.155351,-0.987262,-0.034337,5.470775,1.009574,-0.355371,
+ 0.72603,0.248277,-0.641279,5.388455,1.119419,-0.351883,
+ 0.155351,-0.987262,-0.034337,5.470775,1.009574,-0.355371,
+ 0.114701,-0.691524,-0.713188,5.425352,1.035967,-0.34272,
+ 0.114701,-0.691524,-0.713188,5.425352,1.035967,-0.34272,
+ 0.155351,-0.987262,-0.034337,5.470775,1.009574,-0.355371,
+ 0.298912,-0.321997,-0.898315,5.434594,0.970412,-0.330823,
+ 0.155351,-0.987262,-0.034337,5.470775,1.009574,-0.355371,
+ 0.241652,-0.897637,-0.368581,5.535184,0.98018,-0.341257,
+ 0.298912,-0.321997,-0.898315,5.434594,0.970412,-0.330823,
+ 0.241652,-0.897637,-0.368581,5.535184,0.98018,-0.341257,
+ 0.241049,-0.626018,-0.741618,5.480649,0.941387,-0.316248,
+ 0.298912,-0.321997,-0.898315,5.434594,0.970412,-0.330823,
+ 0.72603,0.248277,-0.641279,5.388455,1.119419,-0.351883,
+ 0.114701,-0.691524,-0.713188,5.425352,1.035967,-0.34272,
+ 0.272751,-0.332382,-0.902845,5.379461,1.045817,-0.349748,
+ 0.272751,-0.332382,-0.902845,5.379461,1.045817,-0.349748,
+ 0.114701,-0.691524,-0.713188,5.425352,1.035967,-0.34272,
+ 0.298912,-0.321997,-0.898315,5.434594,0.970412,-0.330823,
+ 0.272751,-0.332382,-0.902845,5.379461,1.045817,-0.349748,
+ 0.298912,-0.321997,-0.898315,5.434594,0.970412,-0.330823,
+ 0.161397,-0.648357,-0.744032,5.370709,0.980272,-0.337432,
+ 0.298912,-0.321997,-0.898315,5.434594,0.970412,-0.330823,
+ 0.241049,-0.626018,-0.741618,5.480649,0.941387,-0.316248,
+ 0.142784,-0.229696,-0.962732,5.373646,0.885375,-0.20884,
+ 0.161397,-0.648357,-0.744032,5.370709,0.980272,-0.337432,
+ 0.298912,-0.321997,-0.898315,5.434594,0.970412,-0.330823,
+ 0.142784,-0.229696,-0.962732,5.373646,0.885375,-0.20884,
+ 0.241049,-0.626018,-0.741618,5.480649,0.941387,-0.316248,
+ -0.016623,-0.697515,-0.716378,5.546347,0.916044,-0.246782,
+ 0.009824,-0.644035,-0.764933,5.511556,0.863525,-0.177613,
+ 0.241049,-0.626018,-0.741618,5.480649,0.941387,-0.316248,
+ 0.009824,-0.644035,-0.764933,5.511556,0.863525,-0.177613,
+ 0.142784,-0.229696,-0.962732,5.373646,0.885375,-0.20884,
+ -0.016623,-0.697515,-0.716378,5.546347,0.916044,-0.246782,
+ -0.045194,-0.595739,-0.801906,5.638369,0.904402,-0.222548,
+ -0.023775,-0.598435,-0.800819,5.60337,0.852748,-0.162335,
+ -0.016623,-0.697515,-0.716378,5.546347,0.916044,-0.246782,
+ -0.023775,-0.598435,-0.800819,5.60337,0.852748,-0.162335,
+ 0.009824,-0.644035,-0.764933,5.511556,0.863525,-0.177613,
+ -0.045194,-0.595739,-0.801906,5.638369,0.904402,-0.222548,
+ -0.105003,-0.636187,-0.764356,5.748613,0.92049,-0.205099,
+ 0.200817,-0.971977,-0.122205,5.70463,0.849158,-0.12813,
+ -0.045194,-0.595739,-0.801906,5.638369,0.904402,-0.222548,
+ 0.200817,-0.971977,-0.122205,5.70463,0.849158,-0.12813,
+ -0.023775,-0.598435,-0.800819,5.60337,0.852748,-0.162335,
+ 0.043397,0.435461,-0.899161,5.250485,1.123029,-0.385234,
+ 0.72603,0.248277,-0.641279,5.388455,1.119419,-0.351883,
+ 0.272751,-0.332382,-0.902845,5.379461,1.045817,-0.349748,
+ 0.043397,0.435461,-0.899161,5.250485,1.123029,-0.385234,
+ 0.272751,-0.332382,-0.902845,5.379461,1.045817,-0.349748,
+ 0.123418,-0.784469,-0.607763,5.241466,1.040469,-0.383965,
+ 0.123418,-0.784469,-0.607763,5.241466,1.040469,-0.383965,
+ 0.272751,-0.332382,-0.902845,5.379461,1.045817,-0.349748,
+ 0.161397,-0.648357,-0.744032,5.370709,0.980272,-0.337432,
+ 0.123418,-0.784469,-0.607763,5.241466,1.040469,-0.383965,
+ 0.161397,-0.648357,-0.744032,5.370709,0.980272,-0.337432,
+ 0.050019,-0.552867,-0.831767,5.223571,0.974029,-0.362117,
+ 0.161397,-0.648357,-0.744032,5.370709,0.980272,-0.337432,
+ 0.142784,-0.229696,-0.962732,5.373646,0.885375,-0.20884,
+ 0.037801,-0.082839,-0.995846,5.299005,0.908991,-0.260177,
+ 0.050019,-0.552867,-0.831767,5.223571,0.974029,-0.362117,
+ 0.161397,-0.648357,-0.744032,5.370709,0.980272,-0.337432,
+ 0.037801,-0.082839,-0.995846,5.299005,0.908991,-0.260177,
+ 0.050019,-0.552867,-0.831767,5.223571,0.974029,-0.362117,
+ 0.037801,-0.082839,-0.995846,5.299005,0.908991,-0.260177,
+ -0.196146,-0.333078,-0.922272,5.197562,0.922406,-0.302473,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ 0.953994,-0.299798,-0.004126,5.78079,0.891286,0.001059,
+ -0.277696,-0.435918,-0.856073,5.797411,0.880032,-0.072306,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ -0.277696,-0.435918,-0.856073,5.797411,0.880032,-0.072306,
+ -0.106359,-0.394397,-0.912764,5.851404,0.929008,-0.105362,
+ -0.106359,-0.394397,-0.912764,5.851404,0.929008,-0.105362,
+ -0.277696,-0.435918,-0.856073,5.797411,0.880032,-0.072306,
+ 0.200817,-0.971977,-0.122205,5.70463,0.849158,-0.12813,
+ -0.106359,-0.394397,-0.912764,5.851404,0.929008,-0.105362,
+ 0.200817,-0.971977,-0.122205,5.70463,0.849158,-0.12813,
+ -0.105003,-0.636187,-0.764356,5.748613,0.92049,-0.205099,
+ -0.277696,-0.435918,-0.856073,5.797411,0.880032,-0.072306,
+ 0.953994,-0.299798,-0.004126,5.78079,0.891286,0.001059,
+ 0.874313,-0.485341,-0.004579,5.679621,0.8395,0.000985,
+ -0.277696,-0.435918,-0.856073,5.797411,0.880032,-0.072306,
+ 0.874313,-0.485341,-0.004579,5.679621,0.8395,0.000985,
+ -0.301162,-0.110218,-0.947182,5.568745,0.834653,-0.07139,
+ -0.277696,-0.435918,-0.856073,5.797411,0.880032,-0.072306,
+ -0.301162,-0.110218,-0.947182,5.568745,0.834653,-0.07139,
+ 0.200817,-0.971977,-0.122205,5.70463,0.849158,-0.12813,
+ 0.874313,-0.485341,-0.004579,5.679621,0.8395,0.000985,
+ 0.84332,-0.537393,-0.004381,5.579253,0.837796,0.000896,
+ -0.301162,-0.110218,-0.947182,5.568745,0.834653,-0.07139,
+ 0.200817,-0.971977,-0.122205,5.70463,0.849158,-0.12813,
+ -0.301162,-0.110218,-0.947182,5.568745,0.834653,-0.07139,
+ -0.430969,-0.132769,-0.892546,5.449164,0.847535,-0.103909,
+ 0.200817,-0.971977,-0.122205,5.70463,0.849158,-0.12813,
+ -0.430969,-0.132769,-0.892546,5.449164,0.847535,-0.103909,
+ -0.023775,-0.598435,-0.800819,5.60337,0.852748,-0.162335,
+ -0.293162,-0.051827,-0.954657,5.247762,0.848549,-0.108546,
+ 0.832605,-0.553861,-0.002629,5.213434,0.856784,0.000565,
+ 0.598791,-0.8009,-0.003109,5.112563,0.840686,0.00048,
+ -0.293162,-0.051827,-0.954657,5.247762,0.848549,-0.108546,
+ 0.598791,-0.8009,-0.003109,5.112563,0.840686,0.00048,
+ -0.034138,0.050771,-0.998127,5.137075,0.824518,-0.144842,
+ -0.023775,-0.598435,-0.800819,5.60337,0.852748,-0.162335,
+ -0.430969,-0.132769,-0.892546,5.449164,0.847535,-0.103909,
+ -0.101883,0.176778,-0.978963,5.3569,0.85112,-0.138324,
+ -0.023775,-0.598435,-0.800819,5.60337,0.852748,-0.162335,
+ -0.101883,0.176778,-0.978963,5.3569,0.85112,-0.138324,
+ 0.009824,-0.644035,-0.764933,5.511556,0.863525,-0.177613,
+ 0.009824,-0.644035,-0.764933,5.511556,0.863525,-0.177613,
+ -0.101883,0.176778,-0.978963,5.3569,0.85112,-0.138324,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ 0.009824,-0.644035,-0.764933,5.511556,0.863525,-0.177613,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ 0.142784,-0.229696,-0.962732,5.373646,0.885375,-0.20884,
+ 0.224122,-0.97456,-0.001209,5.323232,0.866039,0.00066,
+ 0.832605,-0.553861,-0.002629,5.213434,0.856784,0.000565,
+ -0.293162,-0.051827,-0.954657,5.247762,0.848549,-0.108546,
+ -0.301162,-0.110218,-0.947182,5.568745,0.834653,-0.07139,
+ 0.84332,-0.537393,-0.004381,5.579253,0.837796,0.000896,
+ -0.020035,-0.999799,-0.000148,5.469641,0.838722,0.000798,
+ -0.301162,-0.110218,-0.947182,5.568745,0.834653,-0.07139,
+ -0.020035,-0.999799,-0.000148,5.469641,0.838722,0.000798,
+ -0.430969,-0.132769,-0.892546,5.449164,0.847535,-0.103909,
+ -0.430969,-0.132769,-0.892546,5.449164,0.847535,-0.103909,
+ -0.020035,-0.999799,-0.000148,5.469641,0.838722,0.000798,
+ 0.224122,-0.97456,-0.001209,5.323232,0.866039,0.00066,
+ -0.430969,-0.132769,-0.892546,5.449164,0.847535,-0.103909,
+ 0.224122,-0.97456,-0.001209,5.323232,0.866039,0.00066,
+ -0.293162,-0.051827,-0.954657,5.247762,0.848549,-0.108546,
+ -0.101883,0.176778,-0.978963,5.3569,0.85112,-0.138324,
+ -0.430969,-0.132769,-0.892546,5.449164,0.847535,-0.103909,
+ -0.293162,-0.051827,-0.954657,5.247762,0.848549,-0.108546,
+ -0.101883,0.176778,-0.978963,5.3569,0.85112,-0.138324,
+ -0.293162,-0.051827,-0.954657,5.247762,0.848549,-0.108546,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ 0.037801,-0.082839,-0.995846,5.299005,0.908991,-0.260177,
+ 0.142784,-0.229696,-0.962732,5.373646,0.885375,-0.20884,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ -0.196146,-0.333078,-0.922272,5.197562,0.922406,-0.302473,
+ 0.037801,-0.082839,-0.995846,5.299005,0.908991,-0.260177,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ -0.196146,-0.333078,-0.922272,5.197562,0.922406,-0.302473,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ -0.317809,0.237299,-0.91798,5.153735,0.831575,-0.218348,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ -0.293162,-0.051827,-0.954657,5.247762,0.848549,-0.108546,
+ -0.034138,0.050771,-0.998127,5.137075,0.824518,-0.144842,
+ -0.172671,0.234525,-0.956652,5.26443,0.855571,-0.181694,
+ -0.034138,0.050771,-0.998127,5.137075,0.824518,-0.144842,
+ -0.317809,0.237299,-0.91798,5.153735,0.831575,-0.218348,
+ -0.034138,0.050771,-0.998127,5.137075,0.824518,-0.144842,
+ 0.598791,-0.8009,-0.003109,5.112563,0.840686,0.00048,
+ 0.124158,-0.992262,-0.000543,4.920855,0.812339,0.000318,
+ -0.034138,0.050771,-0.998127,5.137075,0.824518,-0.144842,
+ 0.124158,-0.992262,-0.000543,4.920855,0.812339,0.000318,
+ -0.241534,0.200654,-0.949421,4.963526,0.797382,-0.14344,
+ -0.317809,0.237299,-0.91798,5.153735,0.831575,-0.218348,
+ -0.034138,0.050771,-0.998127,5.137075,0.824518,-0.144842,
+ -0.241534,0.200654,-0.949421,4.963526,0.797382,-0.14344,
+ -0.317809,0.237299,-0.91798,5.153735,0.831575,-0.218348,
+ -0.241534,0.200654,-0.949421,4.963526,0.797382,-0.14344,
+ -0.31398,0.125785,-0.94106,4.99671,0.81056,-0.280771,
+ -0.434729,0.079706,-0.897027,4.712067,0.770512,-0.333393,
+ -0.31398,0.125785,-0.94106,4.99671,0.81056,-0.280771,
+ -0.241534,0.200654,-0.949421,4.963526,0.797382,-0.14344,
+ -0.434729,0.079706,-0.897027,4.712067,0.770512,-0.333393,
+ -0.241534,0.200654,-0.949421,4.963526,0.797382,-0.14344,
+ -0.419631,0.061765,-0.905591,4.66969,0.738163,-0.188296,
+ -0.241534,0.200654,-0.949421,4.963526,0.797382,-0.14344,
+ 0.124158,-0.992262,-0.000543,4.920855,0.812339,0.000318,
+ 0.157494,-0.98752,-0.000465,4.655453,0.758022,0.000098,
+ -0.241534,0.200654,-0.949421,4.963526,0.797382,-0.14344,
+ 0.157494,-0.98752,-0.000465,4.655453,0.758022,0.000098,
+ -0.419631,0.061765,-0.905591,4.66969,0.738163,-0.188296,
+ -0.400711,0.089185,-0.911853,5.004627,0.908637,-0.345273,
+ -0.196146,-0.333078,-0.922272,5.197562,0.922406,-0.302473,
+ -0.317809,0.237299,-0.91798,5.153735,0.831575,-0.218348,
+ -0.400711,0.089185,-0.911853,5.004627,0.908637,-0.345273,
+ -0.317809,0.237299,-0.91798,5.153735,0.831575,-0.218348,
+ -0.31398,0.125785,-0.94106,4.99671,0.81056,-0.280771,
+ -0.497134,0.140473,-0.856227,4.728809,0.878731,-0.405801,
+ -0.400711,0.089185,-0.911853,5.004627,0.908637,-0.345273,
+ -0.31398,0.125785,-0.94106,4.99671,0.81056,-0.280771,
+ -0.497134,0.140473,-0.856227,4.728809,0.878731,-0.405801,
+ -0.31398,0.125785,-0.94106,4.99671,0.81056,-0.280771,
+ -0.434729,0.079706,-0.897027,4.712067,0.770512,-0.333393,
+ 0.274481,0.961015,-0.033322,5.011084,1.06677,-0.458562,
+ 0.123418,-0.784469,-0.607763,5.241466,1.040469,-0.383965,
+ 0.050019,-0.552867,-0.831767,5.223571,0.974029,-0.362117,
+ 0.274481,0.961015,-0.033322,5.011084,1.06677,-0.458562,
+ 0.050019,-0.552867,-0.831767,5.223571,0.974029,-0.362117,
+ 0.563602,0.822451,-0.076991,5.021254,0.951308,-0.405567,
+ 0.050019,-0.552867,-0.831767,5.223571,0.974029,-0.362117,
+ -0.196146,-0.333078,-0.922272,5.197562,0.922406,-0.302473,
+ -0.400711,0.089185,-0.911853,5.004627,0.908637,-0.345273,
+ 0.050019,-0.552867,-0.831767,5.223571,0.974029,-0.362117,
+ -0.400711,0.089185,-0.911853,5.004627,0.908637,-0.345273,
+ 0.563602,0.822451,-0.076991,5.021254,0.951308,-0.405567,
+ 0.067357,0.280762,-0.957411,4.733657,1.227371,-0.592883,
+ 0.012421,0.392537,-0.919653,4.991713,1.163096,-0.504149,
+ 0.274481,0.961015,-0.033322,5.011084,1.06677,-0.458562,
+ 0.067357,0.280762,-0.957411,4.733657,1.227371,-0.592883,
+ 0.274481,0.961015,-0.033322,5.011084,1.06677,-0.458562,
+ 0.311768,0.950117,0.008871,4.74325,1.05921,-0.563421,
+ 0.311768,0.950117,0.008871,4.74325,1.05921,-0.563421,
+ 0.274481,0.961015,-0.033322,5.011084,1.06677,-0.458562,
+ 0.563602,0.822451,-0.076991,5.021254,0.951308,-0.405567,
+ 0.311768,0.950117,0.008871,4.74325,1.05921,-0.563421,
+ 0.563602,0.822451,-0.076991,5.021254,0.951308,-0.405567,
+ 0.609817,0.770093,-0.187297,4.744871,0.950945,-0.491082,
+ 0.609817,0.770093,-0.187297,4.744871,0.950945,-0.491082,
+ 0.563602,0.822451,-0.076991,5.021254,0.951308,-0.405567,
+ -0.400711,0.089185,-0.911853,5.004627,0.908637,-0.345273,
+ 0.609817,0.770093,-0.187297,4.744871,0.950945,-0.491082,
+ -0.400711,0.089185,-0.911853,5.004627,0.908637,-0.345273,
+ -0.497134,0.140473,-0.856227,4.728809,0.878731,-0.405801,
+ -0.026366,0.234118,-0.971851,4.641547,1.285422,-0.622034,
+ 0.067357,0.280762,-0.957411,4.733657,1.227371,-0.592883,
+ 0.311768,0.950117,0.008871,4.74325,1.05921,-0.563421,
+ -0.026366,0.234118,-0.971851,4.641547,1.285422,-0.622034,
+ 0.311768,0.950117,0.008871,4.74325,1.05921,-0.563421,
+ 0.381066,0.919021,-0.100938,4.567896,1.149805,-0.642484,
+ 0.381066,0.919021,-0.100938,4.567896,1.149805,-0.642484,
+ 0.311768,0.950117,0.008871,4.74325,1.05921,-0.563421,
+ 0.609817,0.770093,-0.187297,4.744871,0.950945,-0.491082,
+ 0.381066,0.919021,-0.100938,4.567896,1.149805,-0.642484,
+ 0.609817,0.770093,-0.187297,4.744871,0.950945,-0.491082,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ 0.609817,0.770093,-0.187297,4.744871,0.950945,-0.491082,
+ -0.497134,0.140473,-0.856227,4.728809,0.878731,-0.405801,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ -0.497134,0.140473,-0.856227,4.728809,0.878731,-0.405801,
+ -0.062739,0.996071,-0.062495,4.416475,0.921264,-0.458839,
+ -0.11884,0.991349,0.055713,4.333503,0.951176,-0.481517,
+ -0.062739,0.996071,-0.062495,4.416475,0.921264,-0.458839,
+ -0.134248,0.990294,0.035989,4.399629,0.850459,-0.391855,
+ -0.11884,0.991349,0.055713,4.333503,0.951176,-0.481517,
+ -0.134248,0.990294,0.035989,4.399629,0.850459,-0.391855,
+ -0.081906,0.996619,0.006487,4.297891,0.911506,-0.447987,
+ -0.419631,0.061765,-0.905591,4.66969,0.738163,-0.188296,
+ 0.157494,-0.98752,-0.000465,4.655453,0.758022,0.000098,
+ 0.000801,-1,-0.000539,4.380854,0.704574,-0.00013,
+ -0.419631,0.061765,-0.905591,4.66969,0.738163,-0.188296,
+ 0.000801,-1,-0.000539,4.380854,0.704574,-0.00013,
+ 0.448666,0.893201,-0.029856,4.359048,0.700414,-0.166651,
+ -0.434729,0.079706,-0.897027,4.712067,0.770512,-0.333393,
+ -0.419631,0.061765,-0.905591,4.66969,0.738163,-0.188296,
+ 0.448666,0.893201,-0.029856,4.359048,0.700414,-0.166651,
+ -0.434729,0.079706,-0.897027,4.712067,0.770512,-0.333393,
+ 0.448666,0.893201,-0.029856,4.359048,0.700414,-0.166651,
+ 0.731768,0.675964,-0.087106,4.319799,0.731007,-0.291212,
+ -0.134248,0.990294,0.035989,4.399629,0.850459,-0.391855,
+ -0.434729,0.079706,-0.897027,4.712067,0.770512,-0.333393,
+ 0.731768,0.675964,-0.087106,4.319799,0.731007,-0.291212,
+ -0.134248,0.990294,0.035989,4.399629,0.850459,-0.391855,
+ 0.731768,0.675964,-0.087106,4.319799,0.731007,-0.291212,
+ -0.051101,0.977083,0.206633,4.216374,0.852328,-0.405873,
+ -0.134248,0.990294,0.035989,4.399629,0.850459,-0.391855,
+ -0.051101,0.977083,0.206633,4.216374,0.852328,-0.405873,
+ -0.081906,0.996619,0.006487,4.297891,0.911506,-0.447987,
+ -0.134248,0.990294,0.035989,4.399629,0.850459,-0.391855,
+ -0.062739,0.996071,-0.062495,4.416475,0.921264,-0.458839,
+ -0.497134,0.140473,-0.856227,4.728809,0.878731,-0.405801,
+ -0.134248,0.990294,0.035989,4.399629,0.850459,-0.391855,
+ -0.497134,0.140473,-0.856227,4.728809,0.878731,-0.405801,
+ -0.434729,0.079706,-0.897027,4.712067,0.770512,-0.333393,
+ 0.481644,0.842268,0.242081,4.449011,1.260929,-0.647431,
+ 0.381066,0.919021,-0.100938,4.567896,1.149805,-0.642484,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ 0.481644,0.842268,0.242081,4.449011,1.260929,-0.647431,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ 0.794567,0.588129,0.15089,4.366867,1.131136,-0.630581,
+ 0.04154,0.947538,0.316932,4.141189,1.008775,-0.499342,
+ -0.081906,0.996619,0.006487,4.297891,0.911506,-0.447987,
+ -0.051101,0.977083,0.206633,4.216374,0.852328,-0.405873,
+ 0.04154,0.947538,0.316932,4.141189,1.008775,-0.499342,
+ 0.461485,0.788927,0.405742,4.277227,1.077746,-0.550819,
+ -0.11884,0.991349,0.055713,4.333503,0.951176,-0.481517,
+ 0.04154,0.947538,0.316932,4.141189,1.008775,-0.499342,
+ -0.11884,0.991349,0.055713,4.333503,0.951176,-0.481517,
+ -0.081906,0.996619,0.006487,4.297891,0.911506,-0.447987,
+ 0.800967,0.453078,0.391371,4.085564,1.288885,-0.544406,
+ 0.054059,0.926072,0.373454,4.175444,1.350332,-0.613988,
+ 0.461485,0.788927,0.405742,4.277227,1.077746,-0.550819,
+ 0.800967,0.453078,0.391371,4.085564,1.288885,-0.544406,
+ 0.461485,0.788927,0.405742,4.277227,1.077746,-0.550819,
+ 0.04154,0.947538,0.316932,4.141189,1.008775,-0.499342,
+ -0.11884,0.991349,0.055713,4.333503,0.951176,-0.481517,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ -0.062739,0.996071,-0.062495,4.416475,0.921264,-0.458839,
+ 0.461485,0.788927,0.405742,4.277227,1.077746,-0.550819,
+ 0.794567,0.588129,0.15089,4.366867,1.131136,-0.630581,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ 0.461485,0.788927,0.405742,4.277227,1.077746,-0.550819,
+ 0.651262,0.697944,-0.29788,4.496191,1.024566,-0.579491,
+ -0.11884,0.991349,0.055713,4.333503,0.951176,-0.481517,
+ 0.054059,0.926072,0.373454,4.175444,1.350332,-0.613988,
+ 0.329366,0.742755,0.582952,4.247733,1.381058,-0.649596,
+ 0.794567,0.588129,0.15089,4.366867,1.131136,-0.630581,
+ 0.054059,0.926072,0.373454,4.175444,1.350332,-0.613988,
+ 0.794567,0.588129,0.15089,4.366867,1.131136,-0.630581,
+ 0.461485,0.788927,0.405742,4.277227,1.077746,-0.550819,
+ 0.329366,0.742755,0.582952,4.247733,1.381058,-0.649596,
+ 0.693689,0.317886,0.646331,4.329607,1.464801,-0.661485,
+ 0.481644,0.842268,0.242081,4.449011,1.260929,-0.647431,
+ 0.329366,0.742755,0.582952,4.247733,1.381058,-0.649596,
+ 0.481644,0.842268,0.242081,4.449011,1.260929,-0.647431,
+ 0.794567,0.588129,0.15089,4.366867,1.131136,-0.630581,
+ 0.693689,0.317886,0.646331,4.329607,1.464801,-0.661485,
+ -0.034875,0.308036,-0.950735,4.430999,1.535753,-0.638888,
+ 0.184871,0.227139,-0.956154,4.522247,1.398278,-0.644892,
+ 0.693689,0.317886,0.646331,4.329607,1.464801,-0.661485,
+ 0.184871,0.227139,-0.956154,4.522247,1.398278,-0.644892,
+ 0.481644,0.842268,0.242081,4.449011,1.260929,-0.647431,
+ 0.000755,0.939587,0.34231,4.312225,1.683392,-0.639944,
+ -0.148853,0.101172,-0.98367,4.404221,1.662433,-0.61661,
+ -0.034875,0.308036,-0.950735,4.430999,1.535753,-0.638888,
+ 0.000755,0.939587,0.34231,4.312225,1.683392,-0.639944,
+ -0.034875,0.308036,-0.950735,4.430999,1.535753,-0.638888,
+ 0.693689,0.317886,0.646331,4.329607,1.464801,-0.661485,
+ 0.204286,0.745568,0.634347,4.303615,1.799914,-0.610388,
+ 0.504832,0.844097,-0.180678,4.38638,1.770868,-0.596666,
+ -0.148853,0.101172,-0.98367,4.404221,1.662433,-0.61661,
+ 0.204286,0.745568,0.634347,4.303615,1.799914,-0.610388,
+ -0.148853,0.101172,-0.98367,4.404221,1.662433,-0.61661,
+ 0.000755,0.939587,0.34231,4.312225,1.683392,-0.639944,
+ 0.525316,0.261331,0.809784,4.304562,1.906537,-0.572242,
+ 0.615047,0.769185,-0.17341,4.377095,1.871713,-0.595743,
+ 0.504832,0.844097,-0.180678,4.38638,1.770868,-0.596666,
+ 0.525316,0.261331,0.809784,4.304562,1.906537,-0.572242,
+ 0.504832,0.844097,-0.180678,4.38638,1.770868,-0.596666,
+ 0.204286,0.745568,0.634347,4.303615,1.799914,-0.610388,
+ -0.051423,0.948155,0.313619,4.240116,1.770049,-0.583946,
+ 0.204286,0.745568,0.634347,4.303615,1.799914,-0.610388,
+ 0.000755,0.939587,0.34231,4.312225,1.683392,-0.639944,
+ -0.051423,0.948155,0.313619,4.240116,1.770049,-0.583946,
+ 0.000755,0.939587,0.34231,4.312225,1.683392,-0.639944,
+ 0.104327,0.725166,0.680624,4.221814,1.660769,-0.59409,
+ 0.104327,0.725166,0.680624,4.221814,1.660769,-0.59409,
+ 0.000755,0.939587,0.34231,4.312225,1.683392,-0.639944,
+ 0.693689,0.317886,0.646331,4.329607,1.464801,-0.661485,
+ 0.104327,0.725166,0.680624,4.221814,1.660769,-0.59409,
+ 0.693689,0.317886,0.646331,4.329607,1.464801,-0.661485,
+ 0.329366,0.742755,0.582952,4.247733,1.381058,-0.649596,
+ 0.288171,0.239224,0.927216,4.121121,1.614451,-0.587188,
+ 0.104327,0.725166,0.680624,4.221814,1.660769,-0.59409,
+ 0.329366,0.742755,0.582952,4.247733,1.381058,-0.649596,
+ 0.288171,0.239224,0.927216,4.121121,1.614451,-0.587188,
+ 0.329366,0.742755,0.582952,4.247733,1.381058,-0.649596,
+ 0.054059,0.926072,0.373454,4.175444,1.350332,-0.613988,
+ 0.811896,0.498733,-0.303464,4.067576,1.572668,-0.534997,
+ 0.288171,0.239224,0.927216,4.121121,1.614451,-0.587188,
+ 0.054059,0.926072,0.373454,4.175444,1.350332,-0.613988,
+ 0.811896,0.498733,-0.303464,4.067576,1.572668,-0.534997,
+ 0.054059,0.926072,0.373454,4.175444,1.350332,-0.613988,
+ 0.800967,0.453078,0.391371,4.085564,1.288885,-0.544406,
+ 0.969409,0.243853,-0.027951,4.148883,1.759918,-0.573765,
+ -0.051423,0.948155,0.313619,4.240116,1.770049,-0.583946,
+ 0.104327,0.725166,0.680624,4.221814,1.660769,-0.59409,
+ 0.969409,0.243853,-0.027951,4.148883,1.759918,-0.573765,
+ 0.104327,0.725166,0.680624,4.221814,1.660769,-0.59409,
+ 0.288171,0.239224,0.927216,4.121121,1.614451,-0.587188,
+ 0.971427,0.04566,0.232906,4.076852,1.746601,-0.527436,
+ 0.969409,0.243853,-0.027951,4.148883,1.759918,-0.573765,
+ 0.288171,0.239224,0.927216,4.121121,1.614451,-0.587188,
+ 0.971427,0.04566,0.232906,4.076852,1.746601,-0.527436,
+ 0.288171,0.239224,0.927216,4.121121,1.614451,-0.587188,
+ 0.811896,0.498733,-0.303464,4.067576,1.572668,-0.534997,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ -0.989689,-0.143234,0,4.912303,2.162645,-0.00009,
+ -0.194126,0.280848,-0.939914,4.971394,2.146686,-0.224781,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ -0.194126,0.280848,-0.939914,4.971394,2.146686,-0.224781,
+ 0.2189,0.87846,-0.424724,4.83289,2.262727,-0.283787,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ -0.998597,-0.052951,0,5.177545,1.932323,0.000214,
+ 0.444094,0.036128,-0.895251,5.156645,1.942902,-0.119993,
+ -0.026558,-0.999647,0,5.680007,1.510009,0.000786,
+ 0.694651,0.719347,0.000019,5.743997,1.482739,0.000851,
+ 0.936734,-0.314344,0.154001,5.741781,1.463956,-0.124891,
+ -0.026558,-0.999647,0,5.680007,1.510009,0.000786,
+ 0.936734,-0.314344,0.154001,5.741781,1.463956,-0.124891,
+ 0.987857,-0.047506,-0.147925,5.687035,1.499636,-0.110765,
+ 0.569495,0.821995,-0.000075,5.835498,1.43628,0.000946,
+ -0.016213,0.999869,0,5.908842,1.388968,0.001026,
+ 0.461068,-0.584089,-0.668024,5.915025,1.382159,-0.13682,
+ 0.569495,0.821995,-0.000075,5.835498,1.43628,0.000946,
+ 0.461068,-0.584089,-0.668024,5.915025,1.382159,-0.13682,
+ 0.901575,-0.270544,-0.337593,5.842092,1.427708,-0.130724,
+ 0.850248,-0.122855,0.511845,4.342351,2.581176,-0.140317,
+ -0.069594,-0.997575,-0.000151,4.317602,2.588926,-0.000745,
+ 0.169654,-0.985504,-0.000285,4.454962,2.523303,-0.000603,
+ 0.850248,-0.122855,0.511845,4.342351,2.581176,-0.140317,
+ 0.169654,-0.985504,-0.000285,4.454962,2.523303,-0.000603,
+ 0.603381,-0.138834,0.785275,4.452383,2.524558,-0.130255,
+ 0.335985,-0.093511,0.937214,4.332083,2.586481,-0.194917,
+ 0.850248,-0.122855,0.511845,4.342351,2.581176,-0.140317,
+ 0.603381,-0.138834,0.785275,4.452383,2.524558,-0.130255,
+ 0.335985,-0.093511,0.937214,4.332083,2.586481,-0.194917,
+ 0.603381,-0.138834,0.785275,4.452383,2.524558,-0.130255,
+ 0.104604,0.23696,0.965872,4.440143,2.510529,-0.269164,
+ 0.169215,-0.167065,0.971316,4.339601,2.592642,-0.258891,
+ 0.335985,-0.093511,0.937214,4.332083,2.586481,-0.194917,
+ 0.104604,0.23696,0.965872,4.440143,2.510529,-0.269164,
+ 0.169215,-0.167065,0.971316,4.339601,2.592642,-0.258891,
+ 0.104604,0.23696,0.965872,4.440143,2.510529,-0.269164,
+ 0.054838,0.685321,0.726174,4.429895,2.495758,-0.306894,
+ -0.026478,0.945923,0.32331,4.187258,2.590221,-0.135844,
+ 0.172357,-0.985035,-0.000083,4.189883,2.606916,-0.000863,
+ -0.069594,-0.997575,-0.000151,4.317602,2.588926,-0.000745,
+ -0.026478,0.945923,0.32331,4.187258,2.590221,-0.135844,
+ -0.069594,-0.997575,-0.000151,4.317602,2.588926,-0.000745,
+ 0.850248,-0.122855,0.511845,4.342351,2.581176,-0.140317,
+ -0.071389,0.260054,0.962951,4.203325,2.589186,-0.219164,
+ -0.026478,0.945923,0.32331,4.187258,2.590221,-0.135844,
+ 0.850248,-0.122855,0.511845,4.342351,2.581176,-0.140317,
+ -0.071389,0.260054,0.962951,4.203325,2.589186,-0.219164,
+ 0.850248,-0.122855,0.511845,4.342351,2.581176,-0.140317,
+ 0.335985,-0.093511,0.937214,4.332083,2.586481,-0.194917,
+ -0.01127,-0.268802,0.96313,4.211652,2.602538,-0.264011,
+ -0.071389,0.260054,0.962951,4.203325,2.589186,-0.219164,
+ 0.335985,-0.093511,0.937214,4.332083,2.586481,-0.194917,
+ -0.01127,-0.268802,0.96313,4.211652,2.602538,-0.264011,
+ 0.335985,-0.093511,0.937214,4.332083,2.586481,-0.194917,
+ 0.169215,-0.167065,0.971316,4.339601,2.592642,-0.258891,
+ -0.03479,0.69667,0.716547,4.209941,2.600612,-0.337597,
+ -0.01127,-0.268802,0.96313,4.211652,2.602538,-0.264011,
+ 0.169215,-0.167065,0.971316,4.339601,2.592642,-0.258891,
+ -0.03479,0.69667,0.716547,4.209941,2.600612,-0.337597,
+ 0.169215,-0.167065,0.971316,4.339601,2.592642,-0.258891,
+ -0.01139,0.953897,0.299916,4.328606,2.563996,-0.343892,
+ -0.01139,0.953897,0.299916,4.328606,2.563996,-0.343892,
+ 0.169215,-0.167065,0.971316,4.339601,2.592642,-0.258891,
+ 0.054838,0.685321,0.726174,4.429895,2.495758,-0.306894,
+ -0.01139,0.953897,0.299916,4.328606,2.563996,-0.343892,
+ 0.054838,0.685321,0.726174,4.429895,2.495758,-0.306894,
+ -0.151742,0.274295,0.949598,4.410844,2.500167,-0.351972,
+ 0.210866,-0.977515,0.000009,4.528082,2.467537,-0.000521,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ 0.337014,-0.030018,-0.941021,4.634996,2.369115,-0.140117,
+ 0.603381,-0.138834,0.785275,4.452383,2.524558,-0.130255,
+ 0.169654,-0.985504,-0.000285,4.454962,2.523303,-0.000603,
+ 0.210866,-0.977515,0.000009,4.528082,2.467537,-0.000521,
+ 0.603381,-0.138834,0.785275,4.452383,2.524558,-0.130255,
+ 0.210866,-0.977515,0.000009,4.528082,2.467537,-0.000521,
+ 0.337014,-0.030018,-0.941021,4.634996,2.369115,-0.140117,
+ 0.603381,-0.138834,0.785275,4.452383,2.524558,-0.130255,
+ 0.337014,-0.030018,-0.941021,4.634996,2.369115,-0.140117,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ 0.104604,0.23696,0.965872,4.440143,2.510529,-0.269164,
+ 0.603381,-0.138834,0.785275,4.452383,2.524558,-0.130255,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ 0.054838,0.685321,0.726174,4.429895,2.495758,-0.306894,
+ 0.104604,0.23696,0.965872,4.440143,2.510529,-0.269164,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ 0.288841,-0.745301,0.600914,4.474318,2.418432,-0.361347,
+ -0.151742,0.274295,0.949598,4.410844,2.500167,-0.351972,
+ 0.054838,0.685321,0.726174,4.429895,2.495758,-0.306894,
+ 0.288841,-0.745301,0.600914,4.474318,2.418432,-0.361347,
+ 0.054838,0.685321,0.726174,4.429895,2.495758,-0.306894,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ 0.288841,-0.745301,0.600914,4.474318,2.418432,-0.361347,
+ 0.272203,0.043076,-0.961275,4.577573,2.389535,-0.256196,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ -0.130291,0.991051,-0.029017,4.063205,2.509679,-0.342987,
+ -0.904972,-0.026554,-0.424642,4.088356,2.510913,-0.453793,
+ -0.330515,0.821242,-0.465103,4.07851,2.41181,-0.472193,
+ -0.130291,0.991051,-0.029017,4.063205,2.509679,-0.342987,
+ -0.330515,0.821242,-0.465103,4.07851,2.41181,-0.472193,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.778384,0.466328,-0.420305,4.055262,2.505284,-0.297282,
+ -0.130291,0.991051,-0.029017,4.063205,2.509679,-0.342987,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.778384,0.466328,-0.420305,4.055262,2.505284,-0.297282,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.877603,-0.025307,-0.47872,4.035753,2.399538,-0.343957,
+ -0.026478,0.945923,0.32331,4.187258,2.590221,-0.135844,
+ 0.223577,0.97296,0.057987,4.084506,2.570978,-0.218168,
+ 0.272993,0.962016,-0.000199,4.079812,2.571649,-0.000951,
+ -0.026478,0.945923,0.32331,4.187258,2.590221,-0.135844,
+ 0.272993,0.962016,-0.000199,4.079812,2.571649,-0.000951,
+ 0.172357,-0.985035,-0.000083,4.189883,2.606916,-0.000863,
+ -0.071389,0.260054,0.962951,4.203325,2.589186,-0.219164,
+ -0.247355,0.948391,0.198417,4.101754,2.557092,-0.265856,
+ 0.223577,0.97296,0.057987,4.084506,2.570978,-0.218168,
+ -0.071389,0.260054,0.962951,4.203325,2.589186,-0.219164,
+ 0.223577,0.97296,0.057987,4.084506,2.570978,-0.218168,
+ -0.026478,0.945923,0.32331,4.187258,2.590221,-0.135844,
+ -0.01127,-0.268802,0.96313,4.211652,2.602538,-0.264011,
+ -0.671787,0.737297,-0.07138,4.100907,2.560626,-0.302396,
+ -0.247355,0.948391,0.198417,4.101754,2.557092,-0.265856,
+ -0.01127,-0.268802,0.96313,4.211652,2.602538,-0.264011,
+ -0.247355,0.948391,0.198417,4.101754,2.557092,-0.265856,
+ -0.071389,0.260054,0.962951,4.203325,2.589186,-0.219164,
+ -0.03479,0.69667,0.716547,4.209941,2.600612,-0.337597,
+ -0.860594,0.405545,-0.308076,4.117367,2.568514,-0.3845,
+ -0.671787,0.737297,-0.07138,4.100907,2.560626,-0.302396,
+ -0.03479,0.69667,0.716547,4.209941,2.600612,-0.337597,
+ -0.671787,0.737297,-0.07138,4.100907,2.560626,-0.302396,
+ -0.01127,-0.268802,0.96313,4.211652,2.602538,-0.264011,
+ -0.877603,-0.025307,-0.47872,4.035753,2.399538,-0.343957,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.849668,0.488772,0.197904,4.029016,2.519175,-0.249385,
+ -0.877603,-0.025307,-0.47872,4.035753,2.399538,-0.343957,
+ -0.849668,0.488772,0.197904,4.029016,2.519175,-0.249385,
+ -0.778384,0.466328,-0.420305,4.055262,2.505284,-0.297282,
+ 0.544067,0.839042,-0.000076,4.024214,2.527933,-0.000987,
+ -0.849668,0.488772,0.197904,4.029016,2.519175,-0.249385,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ 0.544067,0.839042,-0.000076,4.024214,2.527933,-0.000987,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.069267,0.997598,-0.000362,3.988172,2.489642,-0.001008,
+ 0.544067,0.839042,-0.000076,4.024214,2.527933,-0.000987,
+ 0.272993,0.962016,-0.000199,4.079812,2.571649,-0.000951,
+ 0.223577,0.97296,0.057987,4.084506,2.570978,-0.218168,
+ 0.544067,0.839042,-0.000076,4.024214,2.527933,-0.000987,
+ 0.223577,0.97296,0.057987,4.084506,2.570978,-0.218168,
+ -0.849668,0.488772,0.197904,4.029016,2.519175,-0.249385,
+ -0.849668,0.488772,0.197904,4.029016,2.519175,-0.249385,
+ 0.223577,0.97296,0.057987,4.084506,2.570978,-0.218168,
+ -0.247355,0.948391,0.198417,4.101754,2.557092,-0.265856,
+ -0.849668,0.488772,0.197904,4.029016,2.519175,-0.249385,
+ -0.247355,0.948391,0.198417,4.101754,2.557092,-0.265856,
+ -0.778384,0.466328,-0.420305,4.055262,2.505284,-0.297282,
+ -0.778384,0.466328,-0.420305,4.055262,2.505284,-0.297282,
+ -0.247355,0.948391,0.198417,4.101754,2.557092,-0.265856,
+ -0.671787,0.737297,-0.07138,4.100907,2.560626,-0.302396,
+ -0.778384,0.466328,-0.420305,4.055262,2.505284,-0.297282,
+ -0.671787,0.737297,-0.07138,4.100907,2.560626,-0.302396,
+ -0.130291,0.991051,-0.029017,4.063205,2.509679,-0.342987,
+ -0.130291,0.991051,-0.029017,4.063205,2.509679,-0.342987,
+ -0.671787,0.737297,-0.07138,4.100907,2.560626,-0.302396,
+ -0.860594,0.405545,-0.308076,4.117367,2.568514,-0.3845,
+ -0.130291,0.991051,-0.029017,4.063205,2.509679,-0.342987,
+ -0.860594,0.405545,-0.308076,4.117367,2.568514,-0.3845,
+ -0.904972,-0.026554,-0.424642,4.088356,2.510913,-0.453793,
+ 0.622247,0.782821,-0.000247,3.787342,2.396113,-0.001159,
+ -0.069267,0.997598,-0.000362,3.988172,2.489642,-0.001008,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ 0.622247,0.782821,-0.000247,3.787342,2.396113,-0.001159,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.210883,0.942026,0.260987,3.828001,2.35254,-0.233341,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.892748,0.392127,0.221893,3.961908,2.347745,-0.374747,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.210883,0.942026,0.260987,3.828001,2.35254,-0.233341,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.877603,-0.025307,-0.47872,4.035753,2.399538,-0.343957,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.981668,0.173926,0.077954,4.025364,2.3593,-0.402597,
+ -0.683788,0.700764,0.203383,4.00011,2.424158,-0.313254,
+ -0.981668,0.173926,0.077954,4.025364,2.3593,-0.402597,
+ -0.892748,0.392127,0.221893,3.961908,2.347745,-0.374747,
+ -0.892748,0.392127,0.221893,3.961908,2.347745,-0.374747,
+ -0.981668,0.173926,0.077954,4.025364,2.3593,-0.402597,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.892748,0.392127,0.221893,3.961908,2.347745,-0.374747,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.894795,0.444359,0.043442,3.967085,2.280648,-0.537643,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.892748,0.392127,0.221893,3.961908,2.347745,-0.374747,
+ -0.894795,0.444359,0.043442,3.967085,2.280648,-0.537643,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.894795,0.444359,0.043442,3.967085,2.280648,-0.537643,
+ -0.941564,0.056552,-0.332054,3.903911,2.241501,-0.512468,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.941564,0.056552,-0.332054,3.903911,2.241501,-0.512468,
+ -0.984655,0.15519,-0.07981,3.857922,2.141554,-0.521067,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.984655,0.15519,-0.07981,3.857922,2.141554,-0.521067,
+ -0.768362,0.592232,0.242656,3.823349,2.141733,-0.428356,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.330515,0.821242,-0.465103,4.07851,2.41181,-0.472193,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.501952,0.842503,-0.195533,4.043796,2.386524,-0.400392,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.981668,0.173926,0.077954,4.025364,2.3593,-0.402597,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.978317,0.206989,0.00716,4.112302,2.285832,-0.5955,
+ -0.463096,-0.149334,-0.873637,4.010847,2.270246,-0.622149,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.463096,-0.149334,-0.873637,4.010847,2.270246,-0.622149,
+ -0.894795,0.444359,0.043442,3.967085,2.280648,-0.537643,
+ -0.894795,0.444359,0.043442,3.967085,2.280648,-0.537643,
+ -0.463096,-0.149334,-0.873637,4.010847,2.270246,-0.622149,
+ -0.641549,-0.578509,-0.503727,3.928869,2.223919,-0.615683,
+ -0.894795,0.444359,0.043442,3.967085,2.280648,-0.537643,
+ -0.641549,-0.578509,-0.503727,3.928869,2.223919,-0.615683,
+ -0.941564,0.056552,-0.332054,3.903911,2.241501,-0.512468,
+ -0.941564,0.056552,-0.332054,3.903911,2.241501,-0.512468,
+ -0.641549,-0.578509,-0.503727,3.928869,2.223919,-0.615683,
+ -0.791764,-0.610494,0.020171,3.892378,2.149432,-0.603589,
+ -0.941564,0.056552,-0.332054,3.903911,2.241501,-0.512468,
+ -0.791764,-0.610494,0.020171,3.892378,2.149432,-0.603589,
+ -0.984655,0.15519,-0.07981,3.857922,2.141554,-0.521067,
+ -0.978317,0.206989,0.00716,4.112302,2.285832,-0.5955,
+ -0.832539,-0.5495,-0.070196,4.146067,2.278102,-0.707372,
+ -0.862876,-0.450622,-0.228877,4.04473,2.254459,-0.744209,
+ -0.978317,0.206989,0.00716,4.112302,2.285832,-0.5955,
+ -0.862876,-0.450622,-0.228877,4.04473,2.254459,-0.744209,
+ -0.463096,-0.149334,-0.873637,4.010847,2.270246,-0.622149,
+ -0.641549,-0.578509,-0.503727,3.928869,2.223919,-0.615683,
+ -0.463096,-0.149334,-0.873637,4.010847,2.270246,-0.622149,
+ -0.862876,-0.450622,-0.228877,4.04473,2.254459,-0.744209,
+ -0.641549,-0.578509,-0.503727,3.928869,2.223919,-0.615683,
+ -0.862876,-0.450622,-0.228877,4.04473,2.254459,-0.744209,
+ -0.916648,-0.2944,-0.270344,3.990744,2.205448,-0.710795,
+ -0.641549,-0.578509,-0.503727,3.928869,2.223919,-0.615683,
+ -0.916648,-0.2944,-0.270344,3.990744,2.205448,-0.710795,
+ -0.975013,-0.179567,-0.130791,3.945464,2.1301,-0.689536,
+ -0.641549,-0.578509,-0.503727,3.928869,2.223919,-0.615683,
+ -0.975013,-0.179567,-0.130791,3.945464,2.1301,-0.689536,
+ -0.791764,-0.610494,0.020171,3.892378,2.149432,-0.603589,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ -0.963659,-0.230665,-0.134738,4.212974,2.303184,-0.587113,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.963659,-0.230665,-0.134738,4.212974,2.303184,-0.587113,
+ -0.990661,0.056144,0.124249,4.077563,2.305187,-0.510338,
+ -0.963659,-0.230665,-0.134738,4.212974,2.303184,-0.587113,
+ -0.978317,0.206989,0.00716,4.112302,2.285832,-0.5955,
+ -0.963659,-0.230665,-0.134738,4.212974,2.303184,-0.587113,
+ -0.990956,-0.062739,-0.118613,4.212058,2.27945,-0.625927,
+ -0.832539,-0.5495,-0.070196,4.146067,2.278102,-0.707372,
+ -0.963659,-0.230665,-0.134738,4.212974,2.303184,-0.587113,
+ -0.832539,-0.5495,-0.070196,4.146067,2.278102,-0.707372,
+ -0.978317,0.206989,0.00716,4.112302,2.285832,-0.5955,
+ -0.990956,-0.062739,-0.118613,4.212058,2.27945,-0.625927,
+ -0.938303,-0.3372,-0.076703,4.229332,2.274522,-0.672749,
+ -0.473779,-0.24744,-0.845167,4.172143,2.303394,-0.778972,
+ -0.990956,-0.062739,-0.118613,4.212058,2.27945,-0.625927,
+ -0.473779,-0.24744,-0.845167,4.172143,2.303394,-0.778972,
+ -0.832539,-0.5495,-0.070196,4.146067,2.278102,-0.707372,
+ -0.832539,-0.5495,-0.070196,4.146067,2.278102,-0.707372,
+ -0.473779,-0.24744,-0.845167,4.172143,2.303394,-0.778972,
+ -0.713872,-0.610821,-0.342469,4.079122,2.264104,-0.84501,
+ -0.832539,-0.5495,-0.070196,4.146067,2.278102,-0.707372,
+ -0.713872,-0.610821,-0.342469,4.079122,2.264104,-0.84501,
+ -0.862876,-0.450622,-0.228877,4.04473,2.254459,-0.744209,
+ -0.862876,-0.450622,-0.228877,4.04473,2.254459,-0.744209,
+ -0.713872,-0.610821,-0.342469,4.079122,2.264104,-0.84501,
+ -0.719395,-0.61545,-0.322011,4.0247,2.187859,-0.814219,
+ -0.862876,-0.450622,-0.228877,4.04473,2.254459,-0.744209,
+ -0.719395,-0.61545,-0.322011,4.0247,2.187859,-0.814219,
+ -0.916648,-0.2944,-0.270344,3.990744,2.205448,-0.710795,
+ -0.938303,-0.3372,-0.076703,4.229332,2.274522,-0.672749,
+ -0.841909,-0.49598,-0.212588,4.273005,2.310529,-0.762172,
+ 0.760119,-0.003927,-0.649772,4.215419,2.350484,-0.885764,
+ -0.938303,-0.3372,-0.076703,4.229332,2.274522,-0.672749,
+ 0.760119,-0.003927,-0.649772,4.215419,2.350484,-0.885764,
+ -0.473779,-0.24744,-0.845167,4.172143,2.303394,-0.778972,
+ -0.473779,-0.24744,-0.845167,4.172143,2.303394,-0.778972,
+ 0.760119,-0.003927,-0.649772,4.215419,2.350484,-0.885764,
+ 0.911709,-0.064352,-0.405765,4.104864,2.298353,-0.915735,
+ -0.473779,-0.24744,-0.845167,4.172143,2.303394,-0.778972,
+ 0.911709,-0.064352,-0.405765,4.104864,2.298353,-0.915735,
+ -0.713872,-0.610821,-0.342469,4.079122,2.264104,-0.84501,
+ -0.713872,-0.610821,-0.342469,4.079122,2.264104,-0.84501,
+ 0.911709,-0.064352,-0.405765,4.104864,2.298353,-0.915735,
+ 0.3335,0.232683,-0.913584,4.059714,2.194906,-0.888152,
+ -0.713872,-0.610821,-0.342469,4.079122,2.264104,-0.84501,
+ 0.3335,0.232683,-0.913584,4.059714,2.194906,-0.888152,
+ -0.719395,-0.61545,-0.322011,4.0247,2.187859,-0.814219,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ 0.89585,0.32639,-0.301532,4.102304,2.29996,-1.025862,
+ -0.396467,0.225967,-0.889805,4.155551,2.388662,-1.09196,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ -0.396467,0.225967,-0.889805,4.155551,2.388662,-1.09196,
+ -0.279333,0.256919,-0.925184,4.097362,2.3666,-1.239986,
+ 0.911709,-0.064352,-0.405765,4.104864,2.298353,-0.915735,
+ 0.760119,-0.003927,-0.649772,4.215419,2.350484,-0.885764,
+ -0.564249,0.755597,0.33271,4.194233,2.408334,-1.008471,
+ 0.911709,-0.064352,-0.405765,4.104864,2.298353,-0.915735,
+ -0.564249,0.755597,0.33271,4.194233,2.408334,-1.008471,
+ 0.89585,0.32639,-0.301532,4.102304,2.29996,-1.025862,
+ 0.89585,0.32639,-0.301532,4.102304,2.29996,-1.025862,
+ -0.564249,0.755597,0.33271,4.194233,2.408334,-1.008471,
+ -0.396467,0.225967,-0.889805,4.155551,2.388662,-1.09196,
+ 0.760119,-0.003927,-0.649772,4.215419,2.350484,-0.885764,
+ -0.841909,-0.49598,-0.212588,4.273005,2.310529,-0.762172,
+ -0.571598,0.654164,0.495323,4.307092,2.367482,-0.877202,
+ 0.760119,-0.003927,-0.649772,4.215419,2.350484,-0.885764,
+ -0.571598,0.654164,0.495323,4.307092,2.367482,-0.877202,
+ -0.601466,0.441167,0.666041,4.266263,2.421651,-1.054799,
+ 0.760119,-0.003927,-0.649772,4.215419,2.350484,-0.885764,
+ -0.601466,0.441167,0.666041,4.266263,2.421651,-1.054799,
+ -0.564249,0.755597,0.33271,4.194233,2.408334,-1.008471,
+ -0.564249,0.755597,0.33271,4.194233,2.408334,-1.008471,
+ -0.601466,0.441167,0.666041,4.266263,2.421651,-1.054799,
+ -0.434016,0.136262,0.890541,4.228523,2.435029,-1.098575,
+ -0.564249,0.755597,0.33271,4.194233,2.408334,-1.008471,
+ -0.434016,0.136262,0.890541,4.228523,2.435029,-1.098575,
+ -0.396467,0.225967,-0.889805,4.155551,2.388662,-1.09196,
+ -0.396467,0.225967,-0.889805,4.155551,2.388662,-1.09196,
+ -0.434016,0.136262,0.890541,4.228523,2.435029,-1.098575,
+ -0.195132,0.128745,0.97229,4.17047,2.458441,-1.241846,
+ -0.396467,0.225967,-0.889805,4.155551,2.388662,-1.09196,
+ -0.195132,0.128745,0.97229,4.17047,2.458441,-1.241846,
+ -0.279333,0.256919,-0.925184,4.097362,2.3666,-1.239986,
+ -0.279333,0.256919,-0.925184,4.097362,2.3666,-1.239986,
+ -0.195132,0.128745,0.97229,4.17047,2.458441,-1.241846,
+ -0.172151,0.101796,0.979797,4.094116,2.426172,-1.381032,
+ -0.279333,0.256919,-0.925184,4.097362,2.3666,-1.239986,
+ -0.172151,0.101796,0.979797,4.094116,2.426172,-1.381032,
+ -0.086812,-0.050981,0.994919,4.058311,2.293363,-1.338054,
+ -0.086812,-0.050981,0.994919,4.058311,2.293363,-1.338054,
+ -0.172151,0.101796,0.979797,4.094116,2.426172,-1.381032,
+ 0.020519,-0.282941,0.958918,4.046673,2.341349,-1.45253,
+ 0.3335,0.232683,-0.913584,4.059714,2.194906,-0.888152,
+ 0.911709,-0.064352,-0.405765,4.104864,2.298353,-0.915735,
+ 0.89585,0.32639,-0.301532,4.102304,2.29996,-1.025862,
+ 0.3335,0.232683,-0.913584,4.059714,2.194906,-0.888152,
+ 0.89585,0.32639,-0.301532,4.102304,2.29996,-1.025862,
+ 0.161194,-0.480657,0.861966,4.047406,2.207209,-1.015108,
+ 0.161194,-0.480657,0.861966,4.047406,2.207209,-1.015108,
+ 0.89585,0.32639,-0.301532,4.102304,2.29996,-1.025862,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ -0.975013,-0.179567,-0.130791,3.945464,2.1301,-0.689536,
+ -0.916648,-0.2944,-0.270344,3.990744,2.205448,-0.710795,
+ -0.719395,-0.61545,-0.322011,4.0247,2.187859,-0.814219,
+ -0.975013,-0.179567,-0.130791,3.945464,2.1301,-0.689536,
+ -0.719395,-0.61545,-0.322011,4.0247,2.187859,-0.814219,
+ 0.313443,-0.691245,0.651102,3.989434,2.118832,-0.765086,
+ 0.313443,-0.691245,0.651102,3.989434,2.118832,-0.765086,
+ -0.719395,-0.61545,-0.322011,4.0247,2.187859,-0.814219,
+ 0.3335,0.232683,-0.913584,4.059714,2.194906,-0.888152,
+ 0.313443,-0.691245,0.651102,3.989434,2.118832,-0.765086,
+ 0.3335,0.232683,-0.913584,4.059714,2.194906,-0.888152,
+ 0.492393,-0.77993,0.38634,4.022592,2.123052,-0.903284,
+ 0.492393,-0.77993,0.38634,4.022592,2.123052,-0.903284,
+ 0.3335,0.232683,-0.913584,4.059714,2.194906,-0.888152,
+ 0.161194,-0.480657,0.861966,4.047406,2.207209,-1.015108,
+ 0.492393,-0.77993,0.38634,4.022592,2.123052,-0.903284,
+ 0.161194,-0.480657,0.861966,4.047406,2.207209,-1.015108,
+ -0.463441,0.825581,0.321928,4.020299,2.141675,-1.002365,
+ -0.463441,0.825581,0.321928,4.020299,2.141675,-1.002365,
+ 0.161194,-0.480657,0.861966,4.047406,2.207209,-1.015108,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ -0.279333,0.256919,-0.925184,4.097362,2.3666,-1.239986,
+ -0.086812,-0.050981,0.994919,4.058311,2.293363,-1.338054,
+ 0.261393,-0.399072,0.878872,4.036947,1.992167,-1.072561,
+ -0.463441,0.825581,0.321928,4.020299,2.141675,-1.002365,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ 0.261393,-0.399072,0.878872,4.036947,1.992167,-1.072561,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ 0.428291,-0.499911,0.752765,4.024858,2.106568,-1.208099,
+ 0.428291,-0.499911,0.752765,4.024858,2.106568,-1.208099,
+ 0.245858,0.150988,-0.957474,4.061989,2.231988,-1.178382,
+ -0.086812,-0.050981,0.994919,4.058311,2.293363,-1.338054,
+ -0.086812,-0.050981,0.994919,4.058311,2.293363,-1.338054,
+ 0.020519,-0.282941,0.958918,4.046673,2.341349,-1.45253,
+ 0.07924,-0.231863,0.969516,4.082988,2.175805,-1.45093,
+ -0.081635,-0.03459,0.996062,4.103303,2.038565,-1.363737,
+ 0.428291,-0.499911,0.752765,4.024858,2.106568,-1.208099,
+ -0.086812,-0.050981,0.994919,4.058311,2.293363,-1.338054,
+ -0.081635,-0.03459,0.996062,4.103303,2.038565,-1.363737,
+ -0.086812,-0.050981,0.994919,4.058311,2.293363,-1.338054,
+ 0.07924,-0.231863,0.969516,4.082988,2.175805,-1.45093,
+ 0.428291,-0.499911,0.752765,4.024858,2.106568,-1.208099,
+ -0.081635,-0.03459,0.996062,4.103303,2.038565,-1.363737,
+ -0.178707,0.132414,0.974951,4.152166,1.868775,-1.225002,
+ 0.428291,-0.499911,0.752765,4.024858,2.106568,-1.208099,
+ -0.178707,0.132414,0.974951,4.152166,1.868775,-1.225002,
+ 0.261393,-0.399072,0.878872,4.036947,1.992167,-1.072561,
+ 0.454048,-0.464454,0.760344,4.031515,1.968248,-0.91846,
+ 0.261393,-0.399072,0.878872,4.036947,1.992167,-1.072561,
+ -0.178707,0.132414,0.974951,4.152166,1.868775,-1.225002,
+ 0.454048,-0.464454,0.760344,4.031515,1.968248,-0.91846,
+ -0.178707,0.132414,0.974951,4.152166,1.868775,-1.225002,
+ -0.21777,0.161093,0.962614,4.127903,1.828359,-1.090512,
+ 0.454048,-0.464454,0.760344,4.031515,1.968248,-0.91846,
+ 0.492393,-0.77993,0.38634,4.022592,2.123052,-0.903284,
+ -0.463441,0.825581,0.321928,4.020299,2.141675,-1.002365,
+ 0.454048,-0.464454,0.760344,4.031515,1.968248,-0.91846,
+ -0.463441,0.825581,0.321928,4.020299,2.141675,-1.002365,
+ 0.261393,-0.399072,0.878872,4.036947,1.992167,-1.072561,
+ 0.673211,-0.580891,0.457551,3.922437,1.972461,-0.483563,
+ -0.768362,0.592232,0.242656,3.823349,2.141733,-0.428356,
+ -0.984655,0.15519,-0.07981,3.857922,2.141554,-0.521067,
+ 0.673211,-0.580891,0.457551,3.922437,1.972461,-0.483563,
+ -0.984655,0.15519,-0.07981,3.857922,2.141554,-0.521067,
+ -0.384424,0.863444,0.326623,3.966639,1.969285,-0.549291,
+ -0.384424,0.863444,0.326623,3.966639,1.969285,-0.549291,
+ -0.984655,0.15519,-0.07981,3.857922,2.141554,-0.521067,
+ -0.791764,-0.610494,0.020171,3.892378,2.149432,-0.603589,
+ -0.384424,0.863444,0.326623,3.966639,1.969285,-0.549291,
+ -0.791764,-0.610494,0.020171,3.892378,2.149432,-0.603589,
+ -0.354832,0.724971,0.590348,3.98291,1.987391,-0.639809,
+ 0.673211,-0.580891,0.457551,3.922437,1.972461,-0.483563,
+ -0.384424,0.863444,0.326623,3.966639,1.969285,-0.549291,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ 0.673211,-0.580891,0.457551,3.922437,1.972461,-0.483563,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ -0.447812,0.698934,0.557634,4.059885,1.86046,-0.470087,
+ -0.384424,0.863444,0.326623,3.966639,1.969285,-0.549291,
+ -0.354832,0.724971,0.590348,3.98291,1.987391,-0.639809,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ 0.313443,-0.691245,0.651102,3.989434,2.118832,-0.765086,
+ 0.492393,-0.77993,0.38634,4.022592,2.123052,-0.903284,
+ 0.454048,-0.464454,0.760344,4.031515,1.968248,-0.91846,
+ 0.313443,-0.691245,0.651102,3.989434,2.118832,-0.765086,
+ 0.454048,-0.464454,0.760344,4.031515,1.968248,-0.91846,
+ -0.270788,0.46353,0.843691,4.017509,1.996169,-0.731654,
+ -0.270788,0.46353,0.843691,4.017509,1.996169,-0.731654,
+ -0.975013,-0.179567,-0.130791,3.945464,2.1301,-0.689536,
+ 0.313443,-0.691245,0.651102,3.989434,2.118832,-0.765086,
+ -0.354832,0.724971,0.590348,3.98291,1.987391,-0.639809,
+ -0.791764,-0.610494,0.020171,3.892378,2.149432,-0.603589,
+ -0.975013,-0.179567,-0.130791,3.945464,2.1301,-0.689536,
+ -0.354832,0.724971,0.590348,3.98291,1.987391,-0.639809,
+ -0.975013,-0.179567,-0.130791,3.945464,2.1301,-0.689536,
+ -0.270788,0.46353,0.843691,4.017509,1.996169,-0.731654,
+ -0.354832,0.724971,0.590348,3.98291,1.987391,-0.639809,
+ -0.270788,0.46353,0.843691,4.017509,1.996169,-0.731654,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ -0.270788,0.46353,0.843691,4.017509,1.996169,-0.731654,
+ -0.273816,0.228927,0.93414,4.150297,1.820575,-0.917046,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ -0.270788,0.46353,0.843691,4.017509,1.996169,-0.731654,
+ 0.454048,-0.464454,0.760344,4.031515,1.968248,-0.91846,
+ -0.21777,0.161093,0.962614,4.127903,1.828359,-1.090512,
+ -0.270788,0.46353,0.843691,4.017509,1.996169,-0.731654,
+ -0.21777,0.161093,0.962614,4.127903,1.828359,-1.090512,
+ -0.273816,0.228927,0.93414,4.150297,1.820575,-0.917046,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ 0.196849,0.14562,-0.969559,4.389484,2.190421,-0.47332,
+ -0.203969,0.261593,0.94338,4.314791,2.142163,-0.54065,
+ 0.196849,0.14562,-0.969559,4.389484,2.190421,-0.47332,
+ 0.159882,0.223439,0.961516,4.3427,2.112281,-0.516692,
+ -0.203969,0.261593,0.94338,4.314791,2.142163,-0.54065,
+ 0.159882,0.223439,0.961516,4.3427,2.112281,-0.516692,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ -0.203969,0.261593,0.94338,4.314791,2.142163,-0.54065,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ 0.196849,0.14562,-0.969559,4.389484,2.190421,-0.47332,
+ 0.159882,0.223439,0.961516,4.3427,2.112281,-0.516692,
+ 0.196849,0.14562,-0.969559,4.389484,2.190421,-0.47332,
+ 0.361081,-0.056526,-0.93082,4.43302,2.024714,-0.563794,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ 0.159882,0.223439,0.961516,4.3427,2.112281,-0.516692,
+ 0.361081,-0.056526,-0.93082,4.43302,2.024714,-0.563794,
+ 0.020519,-0.282941,0.958918,4.046673,2.341349,-1.45253,
+ -0.172151,0.101796,0.979797,4.094116,2.426172,-1.381032,
+ 0.482381,-0.398126,0.780259,4.148927,2.388726,-1.376879,
+ 0.020519,-0.282941,0.958918,4.046673,2.341349,-1.45253,
+ 0.482381,-0.398126,0.780259,4.148927,2.388726,-1.376879,
+ 0.702554,-0.570096,0.42592,4.101726,2.312318,-1.438163,
+ 0.45552,-0.330523,0.826593,4.149438,2.34055,-1.353693,
+ 0.331391,0.08899,0.939287,4.169404,2.306276,-1.284031,
+ 0.445439,-0.182623,0.876489,4.140097,2.295949,-1.367196,
+ 0.45552,-0.330523,0.826593,4.149438,2.34055,-1.353693,
+ 0.445439,-0.182623,0.876489,4.140097,2.295949,-1.367196,
+ 0.489736,-0.346185,0.800197,4.129926,2.30877,-1.402259,
+ 0.331391,0.08899,0.939287,4.169404,2.306276,-1.284031,
+ 0.474213,-0.311965,0.823286,4.141759,2.279958,-1.29534,
+ 0.445439,-0.182623,0.876489,4.140097,2.295949,-1.367196,
+ -0.172151,0.101796,0.979797,4.094116,2.426172,-1.381032,
+ -0.195132,0.128745,0.97229,4.17047,2.458441,-1.241846,
+ 0.483908,-0.405185,0.775667,4.197644,2.394643,-1.248646,
+ -0.172151,0.101796,0.979797,4.094116,2.426172,-1.381032,
+ 0.483908,-0.405185,0.775667,4.197644,2.394643,-1.248646,
+ 0.482381,-0.398126,0.780259,4.148927,2.388726,-1.376879,
+ 0.482381,-0.398126,0.780259,4.148927,2.388726,-1.376879,
+ 0.483908,-0.405185,0.775667,4.197644,2.394643,-1.248646,
+ 0.383941,-0.196382,0.902232,4.197516,2.349135,-1.253043,
+ 0.482381,-0.398126,0.780259,4.148927,2.388726,-1.376879,
+ 0.383941,-0.196382,0.902232,4.197516,2.349135,-1.253043,
+ 0.45552,-0.330523,0.826593,4.149438,2.34055,-1.353693,
+ 0.383941,-0.196382,0.902232,4.197516,2.349135,-1.253043,
+ 0.488174,-0.280956,0.826287,4.199317,2.304652,-1.17454,
+ 0.331391,0.08899,0.939287,4.169404,2.306276,-1.284031,
+ 0.383941,-0.196382,0.902232,4.197516,2.349135,-1.253043,
+ 0.331391,0.08899,0.939287,4.169404,2.306276,-1.284031,
+ 0.45552,-0.330523,0.826593,4.149438,2.34055,-1.353693,
+ 0.531574,-0.288506,0.796362,4.274886,2.22003,-0.679075,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ -0.203969,0.261593,0.94338,4.314791,2.142163,-0.54065,
+ 0.531574,-0.288506,0.796362,4.274886,2.22003,-0.679075,
+ -0.203969,0.261593,0.94338,4.314791,2.142163,-0.54065,
+ -0.175197,0.22468,0.958553,4.26732,2.121987,-0.61494,
+ -0.023695,0.006701,0.999697,4.38099,2.207701,-0.839016,
+ 0.531574,-0.288506,0.796362,4.274886,2.22003,-0.679075,
+ -0.175197,0.22468,0.958553,4.26732,2.121987,-0.61494,
+ -0.023695,0.006701,0.999697,4.38099,2.207701,-0.839016,
+ -0.175197,0.22468,0.958553,4.26732,2.121987,-0.61494,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ -0.963659,-0.230665,-0.134738,4.212974,2.303184,-0.587113,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ -0.990956,-0.062739,-0.118613,4.212058,2.27945,-0.625927,
+ -0.990956,-0.062739,-0.118613,4.212058,2.27945,-0.625927,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ -0.938303,-0.3372,-0.076703,4.229332,2.274522,-0.672749,
+ -0.938303,-0.3372,-0.076703,4.229332,2.274522,-0.672749,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ 0.531574,-0.288506,0.796362,4.274886,2.22003,-0.679075,
+ -0.841909,-0.49598,-0.212588,4.273005,2.310529,-0.762172,
+ -0.938303,-0.3372,-0.076703,4.229332,2.274522,-0.672749,
+ 0.531574,-0.288506,0.796362,4.274886,2.22003,-0.679075,
+ -0.841909,-0.49598,-0.212588,4.273005,2.310529,-0.762172,
+ 0.531574,-0.288506,0.796362,4.274886,2.22003,-0.679075,
+ -0.571598,0.654164,0.495323,4.307092,2.367482,-0.877202,
+ -0.175197,0.22468,0.958553,4.26732,2.121987,-0.61494,
+ -0.203969,0.261593,0.94338,4.314791,2.142163,-0.54065,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ -0.571598,0.654164,0.495323,4.307092,2.367482,-0.877202,
+ 0.531574,-0.288506,0.796362,4.274886,2.22003,-0.679075,
+ -0.023695,0.006701,0.999697,4.38099,2.207701,-0.839016,
+ -0.571598,0.654164,0.495323,4.307092,2.367482,-0.877202,
+ -0.023695,0.006701,0.999697,4.38099,2.207701,-0.839016,
+ 0.144017,-0.141696,0.979378,4.369751,2.298204,-0.921894,
+ 0.325831,-0.277459,0.903798,4.303193,2.347123,-1.044413,
+ -0.601466,0.441167,0.666041,4.266263,2.421651,-1.054799,
+ -0.571598,0.654164,0.495323,4.307092,2.367482,-0.877202,
+ 0.325831,-0.277459,0.903798,4.303193,2.347123,-1.044413,
+ -0.571598,0.654164,0.495323,4.307092,2.367482,-0.877202,
+ 0.144017,-0.141696,0.979378,4.369751,2.298204,-0.921894,
+ 0.441787,-0.375177,0.814903,4.245861,2.375093,-1.141312,
+ -0.434016,0.136262,0.890541,4.228523,2.435029,-1.098575,
+ -0.601466,0.441167,0.666041,4.266263,2.421651,-1.054799,
+ 0.441787,-0.375177,0.814903,4.245861,2.375093,-1.141312,
+ -0.601466,0.441167,0.666041,4.266263,2.421651,-1.054799,
+ 0.325831,-0.277459,0.903798,4.303193,2.347123,-1.044413,
+ 0.441787,-0.375177,0.814903,4.245861,2.375093,-1.141312,
+ 0.483908,-0.405185,0.775667,4.197644,2.394643,-1.248646,
+ -0.195132,0.128745,0.97229,4.17047,2.458441,-1.241846,
+ 0.441787,-0.375177,0.814903,4.245861,2.375093,-1.141312,
+ -0.195132,0.128745,0.97229,4.17047,2.458441,-1.241846,
+ -0.434016,0.136262,0.890541,4.228523,2.435029,-1.098575,
+ 0.383941,-0.196382,0.902232,4.197516,2.349135,-1.253043,
+ 0.483908,-0.405185,0.775667,4.197644,2.394643,-1.248646,
+ 0.441787,-0.375177,0.814903,4.245861,2.375093,-1.141312,
+ 0.383941,-0.196382,0.902232,4.197516,2.349135,-1.253043,
+ 0.441787,-0.375177,0.814903,4.245861,2.375093,-1.141312,
+ 0.226651,-0.023678,0.973688,4.218457,2.356834,-1.142444,
+ 0.226651,-0.023678,0.973688,4.218457,2.356834,-1.142444,
+ 0.441787,-0.375177,0.814903,4.245861,2.375093,-1.141312,
+ 0.325831,-0.277459,0.903798,4.303193,2.347123,-1.044413,
+ 0.226651,-0.023678,0.973688,4.218457,2.356834,-1.142444,
+ 0.325831,-0.277459,0.903798,4.303193,2.347123,-1.044413,
+ 0.065337,0.07376,0.995133,4.275405,2.319905,-1.0464,
+ 0.325831,-0.277459,0.903798,4.303193,2.347123,-1.044413,
+ 0.144017,-0.141696,0.979378,4.369751,2.298204,-0.921894,
+ -0.027323,0.180938,0.983115,4.296538,2.243779,-0.925459,
+ 0.325831,-0.277459,0.903798,4.303193,2.347123,-1.044413,
+ -0.027323,0.180938,0.983115,4.296538,2.243779,-0.925459,
+ 0.065337,0.07376,0.995133,4.275405,2.319905,-1.0464,
+ 0.144017,-0.141696,0.979378,4.369751,2.298204,-0.921894,
+ -0.023695,0.006701,0.999697,4.38099,2.207701,-0.839016,
+ -0.078774,0.27578,0.957987,4.289048,2.172969,-0.858693,
+ 0.144017,-0.141696,0.979378,4.369751,2.298204,-0.921894,
+ -0.078774,0.27578,0.957987,4.289048,2.172969,-0.858693,
+ -0.027323,0.180938,0.983115,4.296538,2.243779,-0.925459,
+ 0.488174,-0.280956,0.826287,4.199317,2.304652,-1.17454,
+ 0.383941,-0.196382,0.902232,4.197516,2.349135,-1.253043,
+ 0.226651,-0.023678,0.973688,4.218457,2.356834,-1.142444,
+ 0.488174,-0.280956,0.826287,4.199317,2.304652,-1.17454,
+ 0.226651,-0.023678,0.973688,4.218457,2.356834,-1.142444,
+ 0.065337,0.07376,0.995133,4.275405,2.319905,-1.0464,
+ 0.488174,-0.280956,0.826287,4.199317,2.304652,-1.17454,
+ 0.065337,0.07376,0.995133,4.275405,2.319905,-1.0464,
+ 0.769657,-0.480833,0.420033,4.211815,2.28249,-1.039137,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ -0.175197,0.22468,0.958553,4.26732,2.121987,-0.61494,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ -0.080985,0.883253,0.461851,4.278045,1.97666,-0.537351,
+ -0.078774,0.27578,0.957987,4.289048,2.172969,-0.858693,
+ -0.023695,0.006701,0.999697,4.38099,2.207701,-0.839016,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ -0.078774,0.27578,0.957987,4.289048,2.172969,-0.858693,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ -0.095989,0.297871,0.949768,4.290375,2.112337,-0.80019,
+ 0.769657,-0.480833,0.420033,4.211815,2.28249,-1.039137,
+ 0.065337,0.07376,0.995133,4.275405,2.319905,-1.0464,
+ -0.027323,0.180938,0.983115,4.296538,2.243779,-0.925459,
+ 0.769657,-0.480833,0.420033,4.211815,2.28249,-1.039137,
+ -0.027323,0.180938,0.983115,4.296538,2.243779,-0.925459,
+ 0.040193,0.650965,0.758043,4.222795,2.228178,-0.952752,
+ 0.040193,0.650965,0.758043,4.222795,2.228178,-0.952752,
+ -0.027323,0.180938,0.983115,4.296538,2.243779,-0.925459,
+ -0.078774,0.27578,0.957987,4.289048,2.172969,-0.858693,
+ 0.040193,0.650965,0.758043,4.222795,2.228178,-0.952752,
+ -0.078774,0.27578,0.957987,4.289048,2.172969,-0.858693,
+ 0.177367,0.480226,0.859025,4.197609,2.164063,-0.857433,
+ 0.177367,0.480226,0.859025,4.197609,2.164063,-0.857433,
+ -0.078774,0.27578,0.957987,4.289048,2.172969,-0.858693,
+ -0.095989,0.297871,0.949768,4.290375,2.112337,-0.80019,
+ 0.177367,0.480226,0.859025,4.197609,2.164063,-0.857433,
+ -0.095989,0.297871,0.949768,4.290375,2.112337,-0.80019,
+ 0.288711,0.386915,0.875753,4.153175,2.084823,-0.799668,
+ 0.41428,0.318289,0.85268,4.15109,2.102939,-0.889759,
+ 0.177367,0.480226,0.859025,4.197609,2.164063,-0.857433,
+ 0.288711,0.386915,0.875753,4.153175,2.084823,-0.799668,
+ 0.519338,0.264458,0.812619,4.148865,2.148829,-0.986567,
+ 0.040193,0.650965,0.758043,4.222795,2.228178,-0.952752,
+ 0.177367,0.480226,0.859025,4.197609,2.164063,-0.857433,
+ 0.519338,0.264458,0.812619,4.148865,2.148829,-0.986567,
+ 0.177367,0.480226,0.859025,4.197609,2.164063,-0.857433,
+ 0.41428,0.318289,0.85268,4.15109,2.102939,-0.889759,
+ 0.486425,0.192908,0.852161,4.154566,2.19048,-1.129552,
+ 0.769657,-0.480833,0.420033,4.211815,2.28249,-1.039137,
+ 0.040193,0.650965,0.758043,4.222795,2.228178,-0.952752,
+ 0.486425,0.192908,0.852161,4.154566,2.19048,-1.129552,
+ 0.040193,0.650965,0.758043,4.222795,2.228178,-0.952752,
+ 0.519338,0.264458,0.812619,4.148865,2.148829,-0.986567,
+ 0.449624,0.075438,0.890027,4.152557,2.235471,-1.217046,
+ 0.488174,-0.280956,0.826287,4.199317,2.304652,-1.17454,
+ 0.769657,-0.480833,0.420033,4.211815,2.28249,-1.039137,
+ 0.449624,0.075438,0.890027,4.152557,2.235471,-1.217046,
+ 0.769657,-0.480833,0.420033,4.211815,2.28249,-1.039137,
+ 0.486425,0.192908,0.852161,4.154566,2.19048,-1.129552,
+ 0.474213,-0.311965,0.823286,4.141759,2.279958,-1.29534,
+ 0.331391,0.08899,0.939287,4.169404,2.306276,-1.284031,
+ 0.488174,-0.280956,0.826287,4.199317,2.304652,-1.17454,
+ 0.474213,-0.311965,0.823286,4.141759,2.279958,-1.29534,
+ 0.488174,-0.280956,0.826287,4.199317,2.304652,-1.17454,
+ 0.449624,0.075438,0.890027,4.152557,2.235471,-1.217046,
+ 0.533629,-0.162705,0.82992,4.131949,2.050757,-0.921856,
+ 0.41428,0.318289,0.85268,4.15109,2.102939,-0.889759,
+ 0.288711,0.386915,0.875753,4.153175,2.084823,-0.799668,
+ 0.547549,-0.279581,0.788686,4.119993,2.063095,-1.049178,
+ 0.519338,0.264458,0.812619,4.148865,2.148829,-0.986567,
+ 0.41428,0.318289,0.85268,4.15109,2.102939,-0.889759,
+ 0.547549,-0.279581,0.788686,4.119993,2.063095,-1.049178,
+ 0.41428,0.318289,0.85268,4.15109,2.102939,-0.889759,
+ 0.533629,-0.162705,0.82992,4.131949,2.050757,-0.921856,
+ 0.598679,-0.200355,0.775527,4.12616,2.12093,-1.17252,
+ 0.486425,0.192908,0.852161,4.154566,2.19048,-1.129552,
+ 0.519338,0.264458,0.812619,4.148865,2.148829,-0.986567,
+ 0.598679,-0.200355,0.775527,4.12616,2.12093,-1.17252,
+ 0.519338,0.264458,0.812619,4.148865,2.148829,-0.986567,
+ 0.547549,-0.279581,0.788686,4.119993,2.063095,-1.049178,
+ 0.561098,-0.272385,0.78165,4.133175,2.175231,-1.259323,
+ 0.449624,0.075438,0.890027,4.152557,2.235471,-1.217046,
+ 0.486425,0.192908,0.852161,4.154566,2.19048,-1.129552,
+ 0.561098,-0.272385,0.78165,4.133175,2.175231,-1.259323,
+ 0.486425,0.192908,0.852161,4.154566,2.19048,-1.129552,
+ 0.598679,-0.200355,0.775527,4.12616,2.12093,-1.17252,
+ 0.561098,-0.272385,0.78165,4.133175,2.175231,-1.259323,
+ 0.474213,-0.311965,0.823286,4.141759,2.279958,-1.29534,
+ 0.449624,0.075438,0.890027,4.152557,2.235471,-1.217046,
+ 0.760747,-0.509474,0.40212,4.137657,1.944837,-1.061024,
+ 0.547549,-0.279581,0.788686,4.119993,2.063095,-1.049178,
+ 0.533629,-0.162705,0.82992,4.131949,2.050757,-0.921856,
+ 0.760747,-0.509474,0.40212,4.137657,1.944837,-1.061024,
+ 0.533629,-0.162705,0.82992,4.131949,2.050757,-0.921856,
+ 0.5205,-0.336657,0.784692,4.159229,1.949902,-0.923197,
+ -0.16423,0.819635,0.548842,4.143794,2.01372,-1.201386,
+ 0.598679,-0.200355,0.775527,4.12616,2.12093,-1.17252,
+ 0.547549,-0.279581,0.788686,4.119993,2.063095,-1.049178,
+ -0.16423,0.819635,0.548842,4.143794,2.01372,-1.201386,
+ 0.547549,-0.279581,0.788686,4.119993,2.063095,-1.049178,
+ 0.760747,-0.509474,0.40212,4.137657,1.944837,-1.061024,
+ -0.043323,0.541029,0.839887,4.12329,2.086854,-1.295135,
+ 0.561098,-0.272385,0.78165,4.133175,2.175231,-1.259323,
+ 0.598679,-0.200355,0.775527,4.12616,2.12093,-1.17252,
+ -0.043323,0.541029,0.839887,4.12329,2.086854,-1.295135,
+ 0.598679,-0.200355,0.775527,4.12616,2.12093,-1.17252,
+ -0.16423,0.819635,0.548842,4.143794,2.01372,-1.201386,
+ 0.04432,0.372862,0.926827,4.11268,2.195089,-1.366908,
+ 0.474213,-0.311965,0.823286,4.141759,2.279958,-1.29534,
+ 0.561098,-0.272385,0.78165,4.133175,2.175231,-1.259323,
+ 0.04432,0.372862,0.926827,4.11268,2.195089,-1.366908,
+ 0.561098,-0.272385,0.78165,4.133175,2.175231,-1.259323,
+ -0.043323,0.541029,0.839887,4.12329,2.086854,-1.295135,
+ 0.098376,0.32868,0.939304,4.111934,2.234814,-1.399949,
+ 0.445439,-0.182623,0.876489,4.140097,2.295949,-1.367196,
+ 0.474213,-0.311965,0.823286,4.141759,2.279958,-1.29534,
+ 0.098376,0.32868,0.939304,4.111934,2.234814,-1.399949,
+ 0.474213,-0.311965,0.823286,4.141759,2.279958,-1.29534,
+ 0.04432,0.372862,0.926827,4.11268,2.195089,-1.366908,
+ 0.098376,0.32868,0.939304,4.111934,2.234814,-1.399949,
+ 0.489736,-0.346185,0.800197,4.129926,2.30877,-1.402259,
+ 0.445439,-0.182623,0.876489,4.140097,2.295949,-1.367196,
+ -0.080985,0.883253,0.461851,4.278045,1.97666,-0.537351,
+ 0.525316,0.261331,0.809784,4.304562,1.906537,-0.572242,
+ 0.752227,-0.484776,0.446258,4.232341,1.903079,-0.534362,
+ -0.051423,0.948155,0.313619,4.240116,1.770049,-0.583946,
+ 0.752227,-0.484776,0.446258,4.232341,1.903079,-0.534362,
+ 0.525316,0.261331,0.809784,4.304562,1.906537,-0.572242,
+ -0.051423,0.948155,0.313619,4.240116,1.770049,-0.583946,
+ 0.525316,0.261331,0.809784,4.304562,1.906537,-0.572242,
+ 0.204286,0.745568,0.634347,4.303615,1.799914,-0.610388,
+ 0.525316,0.261331,0.809784,4.304562,1.906537,-0.572242,
+ -0.080985,0.883253,0.461851,4.278045,1.97666,-0.537351,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ 0.525316,0.261331,0.809784,4.304562,1.906537,-0.572242,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ 0.615047,0.769185,-0.17341,4.377095,1.871713,-0.595743,
+ 0.615047,0.769185,-0.17341,4.377095,1.871713,-0.595743,
+ 0.224429,0.165293,0.96037,4.305411,2.059245,-0.539407,
+ 0.361081,-0.056526,-0.93082,4.43302,2.024714,-0.563794,
+ 0.615047,0.769185,-0.17341,4.377095,1.871713,-0.595743,
+ 0.361081,-0.056526,-0.93082,4.43302,2.024714,-0.563794,
+ 0.36359,0.089346,-0.927264,4.43261,1.878873,-0.577888,
+ 0.969409,0.243853,-0.027951,4.148883,1.759918,-0.573765,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ 0.752227,-0.484776,0.446258,4.232341,1.903079,-0.534362,
+ 0.969409,0.243853,-0.027951,4.148883,1.759918,-0.573765,
+ 0.752227,-0.484776,0.446258,4.232341,1.903079,-0.534362,
+ -0.051423,0.948155,0.313619,4.240116,1.770049,-0.583946,
+ -0.095989,0.297871,0.949768,4.290375,2.112337,-0.80019,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ -0.158888,0.47696,0.864444,4.281287,2.055751,-0.787,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ -0.317114,0.866865,0.384686,4.354941,2.064161,-0.778851,
+ -0.158888,0.47696,0.864444,4.281287,2.055751,-0.787,
+ -0.158888,0.47696,0.864444,4.281287,2.055751,-0.787,
+ -0.317114,0.866865,0.384686,4.354941,2.064161,-0.778851,
+ -0.273708,0.760234,0.589175,4.245225,2.008532,-0.772641,
+ 0.288711,0.386915,0.875753,4.153175,2.084823,-0.799668,
+ -0.095989,0.297871,0.949768,4.290375,2.112337,-0.80019,
+ -0.158888,0.47696,0.864444,4.281287,2.055751,-0.787,
+ 0.533629,-0.162705,0.82992,4.131949,2.050757,-0.921856,
+ 0.288711,0.386915,0.875753,4.153175,2.084823,-0.799668,
+ -0.158888,0.47696,0.864444,4.281287,2.055751,-0.787,
+ 0.533629,-0.162705,0.82992,4.131949,2.050757,-0.921856,
+ -0.158888,0.47696,0.864444,4.281287,2.055751,-0.787,
+ 0.5205,-0.336657,0.784692,4.159229,1.949902,-0.923197,
+ -0.317114,0.866865,0.384686,4.354941,2.064161,-0.778851,
+ -0.128537,0.152973,0.979835,4.354411,2.102985,-0.80258,
+ -0.080985,0.883253,0.461851,4.278045,1.97666,-0.537351,
+ -0.317114,0.866865,0.384686,4.354941,2.064161,-0.778851,
+ -0.080985,0.883253,0.461851,4.278045,1.97666,-0.537351,
+ 0.752227,-0.484776,0.446258,4.232341,1.903079,-0.534362,
+ -0.317114,0.866865,0.384686,4.354941,2.064161,-0.778851,
+ 0.752227,-0.484776,0.446258,4.232341,1.903079,-0.534362,
+ -0.273708,0.760234,0.589175,4.245225,2.008532,-0.772641,
+ 0.5205,-0.336657,0.784692,4.159229,1.949902,-0.923197,
+ -0.158888,0.47696,0.864444,4.281287,2.055751,-0.787,
+ -0.273708,0.760234,0.589175,4.245225,2.008532,-0.772641,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ -0.2127,-0.171223,-0.961999,5.961686,1.110978,-0.090324,
+ 0.111896,-0.605741,-0.787755,5.950684,1.082725,-0.175648,
+ -0.026148,0.006311,-0.999638,5.998088,1.231874,-0.107334,
+ 0.111896,-0.605741,-0.787755,5.950684,1.082725,-0.175648,
+ 0.223936,-0.919046,-0.324355,5.959462,1.157227,-0.187097,
+ 0.173726,-0.983856,0.042973,5.672385,1.007694,-0.341778,
+ 0.231006,-0.859096,-0.456717,5.681086,1.054964,-0.35586,
+ 0.010578,-0.902776,-0.429981,5.763952,1.062109,-0.338641,
+ 0.173726,-0.983856,0.042973,5.672385,1.007694,-0.341778,
+ 0.010578,-0.902776,-0.429981,5.763952,1.062109,-0.338641,
+ 0.396941,-0.593504,-0.700137,5.755282,1.004149,-0.307505,
+ 0.707709,-0.687035,-0.164711,5.647186,1.394606,-0.257833,
+ 0.798302,-0.559383,0.22317,5.685194,1.452202,-0.188749,
+ 0.831976,-0.511655,0.214534,5.730427,1.435668,-0.209848,
+ 0.707709,-0.687035,-0.164711,5.647186,1.394606,-0.257833,
+ 0.831976,-0.511655,0.214534,5.730427,1.435668,-0.209848,
+ 0.744254,-0.654161,-0.134758,5.710154,1.360653,-0.290072,
+ 0.043397,0.435461,-0.899161,5.250485,1.123029,-0.385234,
+ 0.123418,-0.784469,-0.607763,5.241466,1.040469,-0.383965,
+ 0.274481,0.961015,-0.033322,5.011084,1.06677,-0.458562,
+ 0.043397,0.435461,-0.899161,5.250485,1.123029,-0.385234,
+ 0.274481,0.961015,-0.033322,5.011084,1.06677,-0.458562,
+ 0.012421,0.392537,-0.919653,4.991713,1.163096,-0.504149,
+ 0.381066,0.919021,-0.100938,4.567896,1.149805,-0.642484,
+ 0.481644,0.842268,0.242081,4.449011,1.260929,-0.647431,
+ 0.184871,0.227139,-0.956154,4.522247,1.398278,-0.644892,
+ 0.381066,0.919021,-0.100938,4.567896,1.149805,-0.642484,
+ 0.184871,0.227139,-0.956154,4.522247,1.398278,-0.644892,
+ -0.026366,0.234118,-0.971851,4.641547,1.285422,-0.622034,
+ -0.013461,-0.014478,-0.999805,4.697024,1.862575,-0.604048,
+ 0.667258,0.181112,-0.722471,4.688114,2.046378,-0.604518,
+ 0.856604,0.474873,-0.201803,4.728963,2.036146,-0.614307,
+ -0.013461,-0.014478,-0.999805,4.697024,1.862575,-0.604048,
+ 0.856604,0.474873,-0.201803,4.728963,2.036146,-0.614307,
+ 0.827569,0.284292,-0.484054,4.742358,1.882232,-0.62165,
+ 0.264979,0.116702,-0.957166,4.842883,2.021333,-0.638025,
+ 0.721999,0.398917,-0.565316,4.861611,2.001639,-0.621913,
+ 0.544735,0.449335,-0.708069,4.824747,1.946835,-0.626358,
+ 0.264979,0.116702,-0.957166,4.842883,2.021333,-0.638025,
+ 0.544735,0.449335,-0.708069,4.824747,1.946835,-0.626358,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.397989,0.4494,-0.799778,4.861618,1.854067,-0.618095,
+ 0.708269,-0.122724,-0.695193,4.852582,1.816115,-0.603105,
+ 0.711192,0.127662,-0.69131,4.935561,2.016016,-0.5857,
+ 0.312982,-0.015529,-0.949632,4.93588,2.051665,-0.572853,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.711192,0.127662,-0.69131,4.935561,2.016016,-0.5857,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.872792,-0.115436,-0.474246,4.973133,1.992779,-0.533466,
+ 0.699393,0.056752,-0.71248,4.751519,2.039658,-0.634134,
+ 0.813293,0.022433,-0.581422,4.788476,2.028047,-0.608619,
+ 0.269343,0.329305,-0.904993,4.760921,1.881357,-0.61312,
+ 0.108828,-0.182644,-0.977137,4.982364,1.8733,-0.53619,
+ 0.412833,-0.156453,-0.897269,5.001903,1.914398,-0.486724,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.108828,-0.182644,-0.977137,4.982364,1.8733,-0.53619,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.661825,0.260115,-0.703085,4.991709,1.844295,-0.520761,
+ 0.470021,0.182979,-0.863481,4.991746,2.009819,-0.523206,
+ 0.431713,0.22912,-0.872427,5.01143,1.875569,-0.463205,
+ 0.412833,-0.156453,-0.897269,5.001903,1.914398,-0.486724,
+ 0.910294,-0.144636,-0.387873,4.881574,2.094571,-0.539949,
+ 0.588787,-0.248293,-0.769207,4.918466,2.084725,-0.532713,
+ 0.312982,-0.015529,-0.949632,4.93588,2.051665,-0.572853,
+ 0.719268,0.159441,-0.676189,4.636582,2.263383,-0.471997,
+ -0.114527,0.103064,-0.988059,4.739441,2.299169,-0.369987,
+ 0.45571,-0.00339,-0.890122,4.837331,2.235678,-0.479332,
+ 0.719268,0.159441,-0.676189,4.636582,2.263383,-0.471997,
+ 0.45571,-0.00339,-0.890122,4.837331,2.235678,-0.479332,
+ 0.766773,0.253147,-0.589894,4.74405,2.179337,-0.556057,
+ 0.781868,0.537364,-0.316105,5.057495,2.002751,-0.451974,
+ 0.332526,0.910491,-0.245832,5.067202,2.027704,-0.422291,
+ 0.077536,0.770695,-0.632469,5.095375,1.961238,-0.401516,
+ 0.781868,0.537364,-0.316105,5.057495,2.002751,-0.451974,
+ 0.077536,0.770695,-0.632469,5.095375,1.961238,-0.401516,
+ 0.89264,0.34991,-0.284178,5.075994,1.900999,-0.443793,
+ 0.07924,-0.231863,0.969516,4.082988,2.175805,-1.45093,
+ 0.020519,-0.282941,0.958918,4.046673,2.341349,-1.45253,
+ 0.702554,-0.570096,0.42592,4.101726,2.312318,-1.438163,
+ 0.07924,-0.231863,0.969516,4.082988,2.175805,-1.45093,
+ 0.702554,-0.570096,0.42592,4.101726,2.312318,-1.438163,
+ 0.489736,-0.346185,0.800197,4.129926,2.30877,-1.402259,
+ 0.07924,-0.231863,0.969516,4.082988,2.175805,-1.45093,
+ 0.489736,-0.346185,0.800197,4.129926,2.30877,-1.402259,
+ 0.098376,0.32868,0.939304,4.111934,2.234814,-1.399949,
+ 0.5205,-0.336657,0.784692,4.159229,1.949902,-0.923197,
+ -0.273708,0.760234,0.589175,4.245225,2.008532,-0.772641,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ 0.5205,-0.336657,0.784692,4.159229,1.949902,-0.923197,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ -0.273816,0.228927,0.93414,4.150297,1.820575,-0.917046,
+ 0.760747,-0.509474,0.40212,4.137657,1.944837,-1.061024,
+ 0.5205,-0.336657,0.784692,4.159229,1.949902,-0.923197,
+ -0.273816,0.228927,0.93414,4.150297,1.820575,-0.917046,
+ 0.760747,-0.509474,0.40212,4.137657,1.944837,-1.061024,
+ -0.273816,0.228927,0.93414,4.150297,1.820575,-0.917046,
+ -0.21777,0.161093,0.962614,4.127903,1.828359,-1.090512,
+ -0.16423,0.819635,0.548842,4.143794,2.01372,-1.201386,
+ 0.760747,-0.509474,0.40212,4.137657,1.944837,-1.061024,
+ -0.21777,0.161093,0.962614,4.127903,1.828359,-1.090512,
+ -0.16423,0.819635,0.548842,4.143794,2.01372,-1.201386,
+ -0.21777,0.161093,0.962614,4.127903,1.828359,-1.090512,
+ -0.178707,0.132414,0.974951,4.152166,1.868775,-1.225002,
+ -0.043323,0.541029,0.839887,4.12329,2.086854,-1.295135,
+ -0.16423,0.819635,0.548842,4.143794,2.01372,-1.201386,
+ -0.178707,0.132414,0.974951,4.152166,1.868775,-1.225002,
+ -0.043323,0.541029,0.839887,4.12329,2.086854,-1.295135,
+ -0.178707,0.132414,0.974951,4.152166,1.868775,-1.225002,
+ -0.081635,-0.03459,0.996062,4.103303,2.038565,-1.363737,
+ 0.04432,0.372862,0.926827,4.11268,2.195089,-1.366908,
+ -0.043323,0.541029,0.839887,4.12329,2.086854,-1.295135,
+ -0.081635,-0.03459,0.996062,4.103303,2.038565,-1.363737,
+ 0.04432,0.372862,0.926827,4.11268,2.195089,-1.366908,
+ -0.081635,-0.03459,0.996062,4.103303,2.038565,-1.363737,
+ 0.07924,-0.231863,0.969516,4.082988,2.175805,-1.45093,
+ 0.098376,0.32868,0.939304,4.111934,2.234814,-1.399949,
+ 0.04432,0.372862,0.926827,4.11268,2.195089,-1.366908,
+ 0.07924,-0.231863,0.969516,4.082988,2.175805,-1.45093,
+ -0.447812,0.698934,0.557634,4.059885,1.86046,-0.470087,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ 0.969409,0.243853,-0.027951,4.148883,1.759918,-0.573765,
+ -0.447812,0.698934,0.557634,4.059885,1.86046,-0.470087,
+ 0.969409,0.243853,-0.027951,4.148883,1.759918,-0.573765,
+ 0.971427,0.04566,0.232906,4.076852,1.746601,-0.527436,
+ -0.926486,-0.356041,-0.121897,4.126565,0.642027,0,
+ -0.086812,-0.050981,-0.994919,4.120842,0.627141,-0.185461,
+ 0.448666,0.893201,-0.029856,4.359048,0.700414,-0.166651,
+ -0.926486,-0.356041,-0.121897,4.126565,0.642027,0,
+ 0.448666,0.893201,-0.029856,4.359048,0.700414,-0.166651,
+ 0.000801,-1,-0.000539,4.380854,0.704574,-0.00013,
+ -0.564871,0.754993,-0.333026,3.881998,1.764428,-0.476337,
+ -0.447812,0.698934,0.557634,4.059885,1.86046,-0.470087,
+ 0.971427,0.04566,0.232906,4.076852,1.746601,-0.527436,
+ -0.571598,0.654164,-0.495323,3.886058,1.550141,-0.50483,
+ -0.564871,0.754993,-0.333026,3.881998,1.764428,-0.476337,
+ 0.971427,0.04566,0.232906,4.076852,1.746601,-0.527436,
+ -0.571598,0.654164,-0.495323,3.886058,1.550141,-0.50483,
+ 0.971427,0.04566,0.232906,4.076852,1.746601,-0.527436,
+ 0.811896,0.498733,-0.303464,4.067576,1.572668,-0.534997,
+ -0.601466,0.441167,-0.666041,3.98851,1.297806,-0.539537,
+ -0.571598,0.654164,-0.495323,3.886058,1.550141,-0.50483,
+ 0.811896,0.498733,-0.303464,4.067576,1.572668,-0.534997,
+ -0.601466,0.441167,-0.666041,3.98851,1.297806,-0.539537,
+ 0.811896,0.498733,-0.303464,4.067576,1.572668,-0.534997,
+ 0.800967,0.453078,0.391371,4.085564,1.288885,-0.544406,
+ -0.434016,0.136262,-0.890541,4.041657,1.039756,-0.496922,
+ -0.601466,0.441167,-0.666041,3.98851,1.297806,-0.539537,
+ 0.800967,0.453078,0.391371,4.085564,1.288885,-0.544406,
+ -0.434016,0.136262,-0.890541,4.041657,1.039756,-0.496922,
+ 0.800967,0.453078,0.391371,4.085564,1.288885,-0.544406,
+ 0.04154,0.947538,0.316932,4.141189,1.008775,-0.499342,
+ -0.195132,0.128745,-0.97229,4.068249,0.798926,-0.400813,
+ -0.434016,0.136262,-0.890541,4.041657,1.039756,-0.496922,
+ 0.04154,0.947538,0.316932,4.141189,1.008775,-0.499342,
+ -0.195132,0.128745,-0.97229,4.068249,0.798926,-0.400813,
+ 0.04154,0.947538,0.316932,4.141189,1.008775,-0.499342,
+ -0.051101,0.977083,0.206633,4.216374,0.852328,-0.405873,
+ -0.172151,0.101796,-0.979797,4.105198,0.672581,-0.300001,
+ -0.195132,0.128745,-0.97229,4.068249,0.798926,-0.400813,
+ -0.051101,0.977083,0.206633,4.216374,0.852328,-0.405873,
+ -0.172151,0.101796,-0.979797,4.105198,0.672581,-0.300001,
+ -0.051101,0.977083,0.206633,4.216374,0.852328,-0.405873,
+ 0.731768,0.675964,-0.087106,4.319799,0.731007,-0.291212,
+ -0.086812,-0.050981,-0.994919,4.120842,0.627141,-0.185461,
+ -0.172151,0.101796,-0.979797,4.105198,0.672581,-0.300001,
+ 0.731768,0.675964,-0.087106,4.319799,0.731007,-0.291212,
+ -0.086812,-0.050981,-0.994919,4.120842,0.627141,-0.185461,
+ 0.731768,0.675964,-0.087106,4.319799,0.731007,-0.291212,
+ 0.448666,0.893201,-0.029856,4.359048,0.700414,-0.166651,
+ -0.777939,0.62834,-0.000226,3.745669,2.266001,-0.24193,
+ -0.210883,0.942026,0.260987,3.828001,2.35254,-0.233341,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.777939,0.62834,-0.000226,3.745669,2.266001,-0.24193,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.698288,0.715816,-0.000608,3.758215,2.206683,-0.323051,
+ -0.451389,0.892327,-0.00019,3.727093,2.308406,-0.150049,
+ 0.431966,-0.771434,-0.46722,3.71636,2.343387,0,
+ 0.622247,0.782821,-0.000247,3.787342,2.396113,-0.001159,
+ -0.451389,0.892327,-0.00019,3.727093,2.308406,-0.150049,
+ 0.622247,0.782821,-0.000247,3.787342,2.396113,-0.001159,
+ -0.210883,0.942026,0.260987,3.828001,2.35254,-0.233341,
+ -0.777939,0.62834,-0.000226,3.745669,2.266001,-0.24193,
+ -0.451389,0.892327,-0.00019,3.727093,2.308406,-0.150049,
+ -0.210883,0.942026,0.260987,3.828001,2.35254,-0.233341,
+ 0.673211,-0.580891,0.457551,3.922437,1.972461,-0.483563,
+ -0.447812,0.698934,0.557634,4.059885,1.86046,-0.470087,
+ -0.564871,0.754993,-0.333026,3.881998,1.764428,-0.476337,
+ 0.673211,-0.580891,0.457551,3.922437,1.972461,-0.483563,
+ -0.564871,0.754993,-0.333026,3.881998,1.764428,-0.476337,
+ -0.512639,0.858604,-0.000762,3.814876,1.968416,-0.443,
+ -0.768362,0.592232,0.242656,3.823349,2.141733,-0.428356,
+ 0.673211,-0.580891,0.457551,3.922437,1.972461,-0.483563,
+ -0.512639,0.858604,-0.000762,3.814876,1.968416,-0.443,
+ -0.768362,0.592232,0.242656,3.823349,2.141733,-0.428356,
+ -0.512639,0.858604,-0.000762,3.814876,1.968416,-0.443,
+ -0.698288,0.715816,-0.000608,3.758215,2.206683,-0.323051,
+ -0.502349,0.838172,0.212398,3.870548,2.292106,-0.368964,
+ -0.768362,0.592232,0.242656,3.823349,2.141733,-0.428356,
+ -0.698288,0.715816,-0.000608,3.758215,2.206683,-0.323051,
+ -0.273708,0.760234,0.589175,4.245225,2.008532,-0.772641,
+ 0.752227,-0.484776,0.446258,4.232341,1.903079,-0.534362,
+ -0.385487,0.478576,0.788901,4.094112,1.889281,-0.578435,
+ -0.483189,-0.207332,-0.850613,1.655948,-2.520927,-0.844269,
+ -0.176356,-0.113876,-0.977717,1.678986,-2.513137,-0.891745,
+ -0.246054,-0.154918,-0.956796,1.718315,-2.775468,-0.921796,
+ -0.483189,-0.207332,-0.850613,1.655948,-2.520927,-0.844269,
+ -0.246054,-0.154918,-0.956796,1.718315,-2.775468,-0.921796,
+ 0.21689,-0.976039,0.017487,1.700797,-2.794792,-0.82425,
+ -0.246054,-0.154918,-0.956796,1.718315,-2.775468,-0.921796,
+ -0.024032,-0.835976,0.54824,1.734568,-2.965876,-0.986396,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ -0.246054,-0.154918,-0.956796,1.718315,-2.775468,-0.921796,
+ -0.90358,0.003167,-0.428408,1.705953,-3.006628,-0.83263,
+ 0.21689,-0.976039,0.017487,1.700797,-2.794792,-0.82425,
+ -0.079302,-0.84299,-0.532051,-1.305099,-1.70846,-0.48423,
+ -0.176655,-0.950799,-0.254508,-1.108758,-1.770749,-0.473033,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.079302,-0.84299,-0.532051,-1.305099,-1.70846,-0.48423,
+ -0.253979,-0.745808,-0.615845,-0.977375,-1.793126,-0.498747,
+ -0.040019,-0.929968,-0.365457,-0.972514,-1.822778,-0.372649,
+ -0.171647,-0.971664,-0.162499,-1.406693,-1.697325,-0.450399,
+ -0.094238,-0.851252,-0.516225,-1.397474,-1.693815,-0.570541,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.171647,-0.971664,-0.162499,-1.406693,-1.697325,-0.450399,
+ -0.149005,-0.65467,-0.741084,-1.266738,-1.691944,-0.557922,
+ -0.079302,-0.84299,-0.532051,-1.305099,-1.70846,-0.48423,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ -0.108631,-0.122719,-0.986478,-3.35851,1.810253,-0.380095,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085,
+ 0.255239,-0.528231,-0.80983,-3.380836,1.819691,-0.123273,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085,
+ -0.091034,0.391629,-0.915609,-3.413372,1.871604,-0.142309,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ 0.45552,-0.330523,0.826593,4.149438,2.34055,-1.353693,
+ 0.489736,-0.346185,0.800197,4.129926,2.30877,-1.402259,
+ 0.702554,-0.570096,0.42592,4.101726,2.312318,-1.438163,
+ 0.45552,-0.330523,0.826593,4.149438,2.34055,-1.353693,
+ 0.702554,-0.570096,0.42592,4.101726,2.312318,-1.438163,
+ 0.482381,-0.398126,0.780259,4.148927,2.388726,-1.376879,
+ 0.43907,-0.579988,-0.686171,-2.811581,-1.79821,-0.712737,
+ 0.579344,-0.339433,0.741044,-3.008323,-1.759271,-0.655672,
+ 0.789099,-0.039289,0.613008,-3.066022,-1.953125,-0.719516,
+ 0.43907,-0.579988,-0.686171,-2.811581,-1.79821,-0.712737,
+ 0.789099,-0.039289,0.613008,-3.066022,-1.953125,-0.719516,
+ 0.982106,-0.010346,-0.188044,-2.964215,-1.978727,-0.776572,
+ 0.579344,-0.339433,0.741044,-3.008323,-1.759271,-0.655672,
+ -0.012978,-0.998326,0.056357,-3.139394,-1.687482,-0.638546,
+ 0.230893,-0.309688,0.922378,-3.211005,-1.850398,-0.700723,
+ 0.579344,-0.339433,0.741044,-3.008323,-1.759271,-0.655672,
+ 0.230893,-0.309688,0.922378,-3.211005,-1.850398,-0.700723,
+ 0.789099,-0.039289,0.613008,-3.066022,-1.953125,-0.719516,
+ 0.111825,0.518485,0.847743,2.407309,-0.97498,0.805091,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ 0.09853,0.626571,0.773111,2.292449,-0.871852,0.8824,
+ 0.111825,0.518485,0.847743,2.407309,-0.97498,0.805091,
+ 0.09853,0.626571,0.773111,2.292449,-0.871852,0.8824,
+ 0.080812,0.697931,0.711591,2.229345,-0.992723,0.862826,
+ 0.163727,0.387435,0.907242,2.520417,-0.954785,0.739445,
+ 0.518786,-0.204527,0.830078,2.5392,-0.727778,0.750475,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ 0.163727,0.387435,0.907242,2.520417,-0.954785,0.739445,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ 0.111825,0.518485,0.847743,2.407309,-0.97498,0.805091,
+ 0.227108,0.258715,0.938876,2.637655,-0.768176,0.637039,
+ 0.518786,-0.204527,0.830078,2.5392,-0.727778,0.750475,
+ 0.163727,0.387435,0.907242,2.520417,-0.954785,0.739445,
+ 0.163727,0.387435,0.907242,2.520417,-0.954785,0.739445,
+ 0.304293,-0.024391,0.952266,2.514167,-1.077721,0.706614,
+ 0.263434,0.119819,0.957207,2.669281,-0.930664,0.557166,
+ 0.163727,0.387435,0.907242,2.520417,-0.954785,0.739445,
+ 0.263434,0.119819,0.957207,2.669281,-0.930664,0.557166,
+ 0.227108,0.258715,0.938876,2.637655,-0.768176,0.637039,
+ 0.111825,0.518485,0.847743,2.407309,-0.97498,0.805091,
+ 0.372063,-0.134052,0.918477,2.386465,-1.116066,0.761367,
+ 0.304293,-0.024391,0.952266,2.514167,-1.077721,0.706614,
+ 0.111825,0.518485,0.847743,2.407309,-0.97498,0.805091,
+ 0.304293,-0.024391,0.952266,2.514167,-1.077721,0.706614,
+ 0.163727,0.387435,0.907242,2.520417,-0.954785,0.739445,
+ 0.080812,0.697931,0.711591,2.229345,-0.992723,0.862826,
+ 0.424286,-0.254348,0.869073,2.180012,-1.130557,0.821812,
+ 0.372063,-0.134052,0.918477,2.386465,-1.116066,0.761367,
+ 0.080812,0.697931,0.711591,2.229345,-0.992723,0.862826,
+ 0.372063,-0.134052,0.918477,2.386465,-1.116066,0.761367,
+ 0.111825,0.518485,0.847743,2.407309,-0.97498,0.805091,
+ 0.383978,-0.566345,0.729256,2.158051,-1.209613,0.783941,
+ 0.420794,-0.405156,0.811653,2.354287,-1.193746,0.735189,
+ 0.372063,-0.134052,0.918477,2.386465,-1.116066,0.761367,
+ 0.383978,-0.566345,0.729256,2.158051,-1.209613,0.783941,
+ 0.372063,-0.134052,0.918477,2.386465,-1.116066,0.761367,
+ 0.424286,-0.254348,0.869073,2.180012,-1.130557,0.821812,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ 0.335626,-0.735806,0.588171,2.318787,-1.29409,0.673863,
+ 0.420794,-0.405156,0.811653,2.354287,-1.193746,0.735189,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ 0.420794,-0.405156,0.811653,2.354287,-1.193746,0.735189,
+ 0.383978,-0.566345,0.729256,2.158051,-1.209613,0.783941,
+ 0.298349,-0.828641,0.473647,2.274533,-1.433487,0.567366,
+ 0.335626,-0.735806,0.588171,2.318787,-1.29409,0.673863,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ 0.029207,0.916877,0.398099,2.45706,-1.400958,0.539866,
+ 0.267279,-0.944479,0.191107,2.486533,-1.274971,0.627822,
+ 0.335626,-0.735806,0.588171,2.318787,-1.29409,0.673863,
+ 0.029207,0.916877,0.398099,2.45706,-1.400958,0.539866,
+ 0.335626,-0.735806,0.588171,2.318787,-1.29409,0.673863,
+ 0.298349,-0.828641,0.473647,2.274533,-1.433487,0.567366,
+ 0.051939,0.876473,0.478641,2.549322,-1.335209,0.535156,
+ 0.267279,-0.944479,0.191107,2.486533,-1.274971,0.627822,
+ 0.029207,0.916877,0.398099,2.45706,-1.400958,0.539866,
+ 0.092427,0.86666,0.490262,2.61797,-1.235597,0.520238,
+ 0.267279,-0.944479,0.191107,2.486533,-1.274971,0.627822,
+ 0.051939,0.876473,0.478641,2.549322,-1.335209,0.535156,
+ 0.101272,0.634315,0.766413,2.670253,-1.108365,0.544018,
+ 0.129186,0.757141,0.64035,2.510841,-1.158786,0.678057,
+ 0.267279,-0.944479,0.191107,2.486533,-1.274971,0.627822,
+ 0.101272,0.634315,0.766413,2.670253,-1.108365,0.544018,
+ 0.267279,-0.944479,0.191107,2.486533,-1.274971,0.627822,
+ 0.092427,0.86666,0.490262,2.61797,-1.235597,0.520238,
+ 0.420794,-0.405156,0.811653,2.354287,-1.193746,0.735189,
+ 0.335626,-0.735806,0.588171,2.318787,-1.29409,0.673863,
+ 0.267279,-0.944479,0.191107,2.486533,-1.274971,0.627822,
+ 0.420794,-0.405156,0.811653,2.354287,-1.193746,0.735189,
+ 0.267279,-0.944479,0.191107,2.486533,-1.274971,0.627822,
+ 0.129186,0.757141,0.64035,2.510841,-1.158786,0.678057,
+ 0.129186,0.757141,0.64035,2.510841,-1.158786,0.678057,
+ 0.304293,-0.024391,0.952266,2.514167,-1.077721,0.706614,
+ 0.372063,-0.134052,0.918477,2.386465,-1.116066,0.761367,
+ 0.129186,0.757141,0.64035,2.510841,-1.158786,0.678057,
+ 0.372063,-0.134052,0.918477,2.386465,-1.116066,0.761367,
+ 0.420794,-0.405156,0.811653,2.354287,-1.193746,0.735189,
+ 0.101272,0.634315,0.766413,2.670253,-1.108365,0.544018,
+ 0.263434,0.119819,0.957207,2.669281,-0.930664,0.557166,
+ 0.304293,-0.024391,0.952266,2.514167,-1.077721,0.706614,
+ 0.101272,0.634315,0.766413,2.670253,-1.108365,0.544018,
+ 0.304293,-0.024391,0.952266,2.514167,-1.077721,0.706614,
+ 0.129186,0.757141,0.64035,2.510841,-1.158786,0.678057,
+ 0.089104,0.59547,0.798421,2.710721,-0.830091,0.532493,
+ 0.227108,0.258715,0.938876,2.637655,-0.768176,0.637039,
+ 0.263434,0.119819,0.957207,2.669281,-0.930664,0.557166,
+ 0.206788,0.399922,0.892917,2.757946,-1.099958,0.471684,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.101272,0.634315,0.766413,2.670253,-1.108365,0.544018,
+ 0.101272,0.634315,0.766413,2.670253,-1.108365,0.544018,
+ 0.092427,0.86666,0.490262,2.61797,-1.235597,0.520238,
+ 0.206788,0.399922,0.892917,2.757946,-1.099958,0.471684,
+ 0.092427,0.86666,0.490262,2.61797,-1.235597,0.520238,
+ 0.274567,0.116527,0.954481,2.803736,-1.255869,0.438328,
+ 0.246802,0.252523,0.935586,2.847364,-1.103812,0.402301,
+ 0.092427,0.86666,0.490262,2.61797,-1.235597,0.520238,
+ 0.246802,0.252523,0.935586,2.847364,-1.103812,0.402301,
+ 0.206788,0.399922,0.892917,2.757946,-1.099958,0.471684,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.206788,0.399922,0.892917,2.757946,-1.099958,0.471684,
+ 0.246802,0.252523,0.935586,2.847364,-1.103812,0.402301,
+ 0.303729,-0.050718,0.951408,2.740886,-1.339225,0.463604,
+ 0.274567,0.116527,0.954481,2.803736,-1.255869,0.438328,
+ 0.092427,0.86666,0.490262,2.61797,-1.235597,0.520238,
+ 0.051939,0.876473,0.478641,2.549322,-1.335209,0.535156,
+ 0.33122,-0.270106,0.904067,2.663024,-1.440487,0.478149,
+ 0.303729,-0.050718,0.951408,2.740886,-1.339225,0.463604,
+ 0.051939,0.876473,0.478641,2.549322,-1.335209,0.535156,
+ 0.303729,-0.050718,0.951408,2.740886,-1.339225,0.463604,
+ 0.092427,0.86666,0.490262,2.61797,-1.235597,0.520238,
+ 0.029207,0.916877,0.398099,2.45706,-1.400958,0.539866,
+ 0.327725,-0.489439,0.808112,2.515314,-1.507063,0.483275,
+ 0.33122,-0.270106,0.904067,2.663024,-1.440487,0.478149,
+ 0.029207,0.916877,0.398099,2.45706,-1.400958,0.539866,
+ 0.33122,-0.270106,0.904067,2.663024,-1.440487,0.478149,
+ 0.051939,0.876473,0.478641,2.549322,-1.335209,0.535156,
+ 0.291858,-0.681117,0.67149,2.422296,-1.510915,0.494169,
+ 0.327725,-0.489439,0.808112,2.515314,-1.507063,0.483275,
+ 0.029207,0.916877,0.398099,2.45706,-1.400958,0.539866,
+ 0.298349,-0.828641,0.473647,2.274533,-1.433487,0.567366,
+ 0.248915,-0.807091,0.535392,2.249663,-1.492705,0.53127,
+ 0.291858,-0.681117,0.67149,2.422296,-1.510915,0.494169,
+ 0.298349,-0.828641,0.473647,2.274533,-1.433487,0.567366,
+ 0.291858,-0.681117,0.67149,2.422296,-1.510915,0.494169,
+ 0.029207,0.916877,0.398099,2.45706,-1.400958,0.539866,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ 0.235033,-0.721825,0.650944,2.0796,-1.473377,0.654997,
+ 0.248915,-0.807091,0.535392,2.249663,-1.492705,0.53127,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ 0.248915,-0.807091,0.535392,2.249663,-1.492705,0.53127,
+ 0.298349,-0.828641,0.473647,2.274533,-1.433487,0.567366,
+ 0.246802,0.252523,0.935586,2.847364,-1.103812,0.402301,
+ 0.213948,-0.943673,0.252405,2.928787,-1.107467,0.312054,
+ 0.244106,-0.79539,0.554768,2.960118,-0.941827,0.284743,
+ 0.246802,0.252523,0.935586,2.847364,-1.103812,0.402301,
+ 0.244106,-0.79539,0.554768,2.960118,-0.941827,0.284743,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.274567,0.116527,0.954481,2.803736,-1.255869,0.438328,
+ 0.190577,-0.970681,0.146488,2.893096,-1.302168,0.332049,
+ 0.213948,-0.943673,0.252405,2.928787,-1.107467,0.312054,
+ 0.274567,0.116527,0.954481,2.803736,-1.255869,0.438328,
+ 0.213948,-0.943673,0.252405,2.928787,-1.107467,0.312054,
+ 0.246802,0.252523,0.935586,2.847364,-1.103812,0.402301,
+ 0.303729,-0.050718,0.951408,2.740886,-1.339225,0.463604,
+ 0.048754,0.934073,0.353738,2.824356,-1.407256,0.355013,
+ 0.190577,-0.970681,0.146488,2.893096,-1.302168,0.332049,
+ 0.303729,-0.050718,0.951408,2.740886,-1.339225,0.463604,
+ 0.190577,-0.970681,0.146488,2.893096,-1.302168,0.332049,
+ 0.274567,0.116527,0.954481,2.803736,-1.255869,0.438328,
+ 0.33122,-0.270106,0.904067,2.663024,-1.440487,0.478149,
+ 0.081223,0.915345,0.394394,2.721135,-1.520418,0.362378,
+ 0.048754,0.934073,0.353738,2.824356,-1.407256,0.355013,
+ 0.327725,-0.489439,0.808112,2.515314,-1.507063,0.483275,
+ 0.120116,0.912706,0.390565,2.545261,-1.5933,0.38631,
+ 0.081223,0.915345,0.394394,2.721135,-1.520418,0.362378,
+ 0.327725,-0.489439,0.808112,2.515314,-1.507063,0.483275,
+ 0.081223,0.915345,0.394394,2.721135,-1.520418,0.362378,
+ 0.33122,-0.270106,0.904067,2.663024,-1.440487,0.478149,
+ 0.291858,-0.681117,0.67149,2.422296,-1.510915,0.494169,
+ 0.1717,0.74071,0.649514,2.396607,-1.593239,0.389972,
+ 0.120116,0.912706,0.390565,2.545261,-1.5933,0.38631,
+ 0.291858,-0.681117,0.67149,2.422296,-1.510915,0.494169,
+ 0.120116,0.912706,0.390565,2.545261,-1.5933,0.38631,
+ 0.327725,-0.489439,0.808112,2.515314,-1.507063,0.483275,
+ 0.248915,-0.807091,0.535392,2.249663,-1.492705,0.53127,
+ 0.167704,0.495674,0.852164,2.243492,-1.584783,0.431143,
+ 0.1717,0.74071,0.649514,2.396607,-1.593239,0.389972,
+ 0.248915,-0.807091,0.535392,2.249663,-1.492705,0.53127,
+ 0.1717,0.74071,0.649514,2.396607,-1.593239,0.389972,
+ 0.291858,-0.681117,0.67149,2.422296,-1.510915,0.494169,
+ 0.235033,-0.721825,0.650944,2.0796,-1.473377,0.654997,
+ 0.140536,0.558684,0.817388,2.0482,-1.581983,0.555832,
+ 0.167704,0.495674,0.852164,2.243492,-1.584783,0.431143,
+ 0.235033,-0.721825,0.650944,2.0796,-1.473377,0.654997,
+ 0.167704,0.495674,0.852164,2.243492,-1.584783,0.431143,
+ 0.248915,-0.807091,0.535392,2.249663,-1.492705,0.53127,
+ 0.213948,-0.943673,0.252405,2.928787,-1.107467,0.312054,
+ 0.820584,-0.571526,0,2.931756,-1.129655,0,
+ -0.334515,0.94239,0,2.970902,-0.959664,0,
+ 0.213948,-0.943673,0.252405,2.928787,-1.107467,0.312054,
+ -0.334515,0.94239,0,2.970902,-0.959664,0,
+ 0.244106,-0.79539,0.554768,2.960118,-0.941827,0.284743,
+ 0.190577,-0.970681,0.146488,2.893096,-1.302168,0.332049,
+ -0.255632,0.966774,0,2.896234,-1.31956,0,
+ 0.820584,-0.571526,0,2.931756,-1.129655,0,
+ 0.190577,-0.970681,0.146488,2.893096,-1.302168,0.332049,
+ 0.820584,-0.571526,0,2.931756,-1.129655,0,
+ 0.213948,-0.943673,0.252405,2.928787,-1.107467,0.312054,
+ 0.048754,0.934073,0.353738,2.824356,-1.407256,0.355013,
+ 0.826305,-0.563222,0,2.821376,-1.431534,0,
+ -0.255632,0.966774,0,2.896234,-1.31956,0,
+ 0.048754,0.934073,0.353738,2.824356,-1.407256,0.355013,
+ -0.255632,0.966774,0,2.896234,-1.31956,0,
+ 0.190577,-0.970681,0.146488,2.893096,-1.302168,0.332049,
+ 0.081223,0.915345,0.394394,2.721135,-1.520418,0.362378,
+ -0.133012,0.991114,0,2.706963,-1.528854,0,
+ 0.826305,-0.563222,0,2.821376,-1.431534,0,
+ 0.081223,0.915345,0.394394,2.721135,-1.520418,0.362378,
+ 0.826305,-0.563222,0,2.821376,-1.431534,0,
+ 0.048754,0.934073,0.353738,2.824356,-1.407256,0.355013,
+ 0.120116,0.912706,0.390565,2.545261,-1.5933,0.38631,
+ 0.815341,-0.578981,0,2.534227,-1.617078,0,
+ -0.133012,0.991114,0,2.706963,-1.528854,0,
+ 0.120116,0.912706,0.390565,2.545261,-1.5933,0.38631,
+ -0.133012,0.991114,0,2.706963,-1.528854,0,
+ 0.081223,0.915345,0.394394,2.721135,-1.520418,0.362378,
+ 0.1717,0.74071,0.649514,2.396607,-1.593239,0.389972,
+ -0.144073,0.989567,0,2.348182,-1.624595,0,
+ 0.815341,-0.578981,0,2.534227,-1.617078,0,
+ 0.1717,0.74071,0.649514,2.396607,-1.593239,0.389972,
+ 0.815341,-0.578981,0,2.534227,-1.617078,0,
+ 0.120116,0.912706,0.390565,2.545261,-1.5933,0.38631,
+ 0.167704,0.495674,0.852164,2.243492,-1.584783,0.431143,
+ -0.073566,0.99729,0,2.167167,-1.596326,0,
+ -0.144073,0.989567,0,2.348182,-1.624595,0,
+ 0.167704,0.495674,0.852164,2.243492,-1.584783,0.431143,
+ -0.144073,0.989567,0,2.348182,-1.624595,0,
+ 0.1717,0.74071,0.649514,2.396607,-1.593239,0.389972,
+ 0.140536,0.558684,0.817388,2.0482,-1.581983,0.555832,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ -0.073566,0.99729,0,2.167167,-1.596326,0,
+ 0.140536,0.558684,0.817388,2.0482,-1.581983,0.555832,
+ -0.073566,0.99729,0,2.167167,-1.596326,0,
+ 0.167704,0.495674,0.852164,2.243492,-1.584783,0.431143,
+ 0.100131,0.509748,0.854477,2.835437,-0.231101,0.57789,
+ 0.478274,-0.500384,0.721713,2.736198,-0.346225,0.659345,
+ 0.136523,0.621747,0.771228,2.881063,-0.493146,0.521968,
+ 0.136523,0.621747,0.771228,2.881063,-0.493146,0.521968,
+ 0.709718,-0.453837,0.538824,2.986408,-0.413503,0.428964,
+ 0.100131,0.509748,0.854477,2.835437,-0.231101,0.57789,
+ 0.063174,0.351351,0.93411,2.910769,-0.638444,0.431191,
+ 0.709718,-0.453837,0.538824,2.986408,-0.413503,0.428964,
+ 0.136523,0.621747,0.771228,2.881063,-0.493146,0.521968,
+ 0.136523,0.621747,0.771228,2.881063,-0.493146,0.521968,
+ 0.078896,0.195617,0.977502,2.82554,-0.567578,0.552597,
+ 0.063174,0.351351,0.93411,2.910769,-0.638444,0.431191,
+ 0.245892,-0.489895,0.836385,2.688131,-0.517509,0.672975,
+ 0.078896,0.195617,0.977502,2.82554,-0.567578,0.552597,
+ 0.136523,0.621747,0.771228,2.881063,-0.493146,0.521968,
+ 0.430574,-0.353967,0.830249,2.647368,-0.61155,0.669485,
+ 0.518786,-0.204527,0.830078,2.5392,-0.727778,0.750475,
+ 0.227108,0.258715,0.938876,2.637655,-0.768176,0.637039,
+ 0.58512,-0.108234,0.803692,2.618307,-0.549092,0.805491,
+ 0.518786,-0.204527,0.830078,2.5392,-0.727778,0.750475,
+ 0.430574,-0.353967,0.830249,2.647368,-0.61155,0.669485,
+ 0.430574,-0.353967,0.830249,2.647368,-0.61155,0.669485,
+ 0.245892,-0.489895,0.836385,2.688131,-0.517509,0.672975,
+ 0.58512,-0.108234,0.803692,2.618307,-0.549092,0.805491,
+ 0.089104,0.59547,0.798421,2.710721,-0.830091,0.532493,
+ 0.063174,0.351351,0.93411,2.910769,-0.638444,0.431191,
+ 0.078896,0.195617,0.977502,2.82554,-0.567578,0.552597,
+ 0.089104,0.59547,0.798421,2.710721,-0.830091,0.532493,
+ 0.078896,0.195617,0.977502,2.82554,-0.567578,0.552597,
+ 0.227108,0.258715,0.938876,2.637655,-0.768176,0.637039,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.063174,0.351351,0.93411,2.910769,-0.638444,0.431191,
+ 0.089104,0.59547,0.798421,2.710721,-0.830091,0.532493,
+ 0.097816,-0.016117,0.995074,2.993075,-0.708434,0.342596,
+ 0.063174,0.351351,0.93411,2.910769,-0.638444,0.431191,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.244106,-0.79539,0.554768,2.960118,-0.941827,0.284743,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ 0.097816,-0.016117,0.995074,2.993075,-0.708434,0.342596,
+ -0.334515,0.94239,0,2.970902,-0.959664,0,
+ 0.942695,-0.333657,0,3.065544,-0.788768,0,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ -0.334515,0.94239,0,2.970902,-0.959664,0,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ 0.244106,-0.79539,0.554768,2.960118,-0.941827,0.284743,
+ -0.476715,0.879058,0,3.118124,-0.703925,0,
+ 0.6483,-0.171023,0.741928,3.107533,-0.691019,0.264602,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ -0.476715,0.879058,0,3.118124,-0.703925,0,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ 0.942695,-0.333657,0,3.065544,-0.788768,0,
+ 0.263434,0.119819,0.957207,2.669281,-0.930664,0.557166,
+ 0.101272,0.634315,0.766413,2.670253,-1.108365,0.544018,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.263434,0.119819,0.957207,2.669281,-0.930664,0.557166,
+ 0.147941,0.53134,0.834141,2.857666,-0.930625,0.391195,
+ 0.089104,0.59547,0.798421,2.710721,-0.830091,0.532493,
+ 0.078896,0.195617,0.977502,2.82554,-0.567578,0.552597,
+ 0.245892,-0.489895,0.836385,2.688131,-0.517509,0.672975,
+ 0.430574,-0.353967,0.830249,2.647368,-0.61155,0.669485,
+ 0.078896,0.195617,0.977502,2.82554,-0.567578,0.552597,
+ 0.430574,-0.353967,0.830249,2.647368,-0.61155,0.669485,
+ 0.227108,0.258715,0.938876,2.637655,-0.768176,0.637039,
+ 0.063174,0.351351,0.93411,2.910769,-0.638444,0.431191,
+ 0.097816,-0.016117,0.995074,2.993075,-0.708434,0.342596,
+ 0.4379,-0.250054,0.863549,3.053144,-0.609681,0.326931,
+ 0.063174,0.351351,0.93411,2.910769,-0.638444,0.431191,
+ 0.4379,-0.250054,0.863549,3.053144,-0.609681,0.326931,
+ 0.709718,-0.453837,0.538824,2.986408,-0.413503,0.428964,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ 0.6483,-0.171023,0.741928,3.107533,-0.691019,0.264602,
+ 0.4379,-0.250054,0.863549,3.053144,-0.609681,0.326931,
+ 0.10737,-0.293005,0.950063,3.045715,-0.767786,0.261741,
+ 0.4379,-0.250054,0.863549,3.053144,-0.609681,0.326931,
+ 0.097816,-0.016117,0.995074,2.993075,-0.708434,0.342596,
+ -0.809154,0.004832,0.587577,-1.200688,-1.577575,0.799188,
+ -0.942755,-0.29871,-0.148273,-1.226563,-1.655159,0.687343,
+ -0.965506,-0.176768,-0.191185,-1.091175,-1.70712,0.727242,
+ -0.809154,0.004832,0.587577,-1.200688,-1.577575,0.799188,
+ -0.965506,-0.176768,-0.191185,-1.091175,-1.70712,0.727242,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ -0.942755,-0.29871,-0.148273,-1.226563,-1.655159,0.687343,
+ -0.809154,0.004832,0.587577,-1.200688,-1.577575,0.799188,
+ 0.714393,-0.109998,0.691045,-1.266738,-1.691944,0.557922,
+ 0.859237,-0.17312,0.481395,-1.089642,-1.757196,0.685154,
+ -0.965506,-0.176768,-0.191185,-1.091175,-1.70712,0.727242,
+ 0.714393,-0.109998,0.691045,-1.266738,-1.691944,0.557922,
+ -0.965506,-0.176768,-0.191185,-1.091175,-1.70712,0.727242,
+ -0.942755,-0.29871,-0.148273,-1.226563,-1.655159,0.687343,
+ -0.017579,0.132168,0.991072,-0.972089,-1.774507,0.76857,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ -0.965506,-0.176768,-0.191185,-1.091175,-1.70712,0.727242,
+ 0.419396,-0.035927,0.907092,-0.812845,-1.785424,0.768511,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ -0.017579,0.132168,0.991072,-0.972089,-1.774507,0.76857,
+ 0.045651,-0.004499,0.998947,-0.680046,-1.768325,0.81908,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ 0.045651,-0.004499,0.998947,-0.680046,-1.768325,0.81908,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ 0.419396,-0.035927,0.907092,-0.812845,-1.785424,0.768511,
+ 0.031476,0.864418,0.501787,-0.564074,-1.789401,0.803191,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ 0.045651,-0.004499,0.998947,-0.680046,-1.768325,0.81908,
+ -0.019419,-0.11596,0.993064,-0.422877,-1.7512,0.823423,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ 0.031476,0.864418,0.501787,-0.564074,-1.789401,0.803191,
+ 0.061261,0.954316,0.292452,-0.07847,-1.688266,0.80023,
+ -0.084259,-0.367691,0.926123,-0.063012,-1.583021,0.865082,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ 0.061261,0.954316,0.292452,-0.07847,-1.688266,0.80023,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ -0.019419,-0.11596,0.993064,-0.422877,-1.7512,0.823423,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.076968,0.969253,0.233719,-0.094135,-1.769086,0.556924,
+ 0.061261,0.954316,0.292452,-0.07847,-1.688266,0.80023,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.061261,0.954316,0.292452,-0.07847,-1.688266,0.80023,
+ -0.019419,-0.11596,0.993064,-0.422877,-1.7512,0.823423,
+ -0.019419,-0.11596,0.993064,-0.422877,-1.7512,0.823423,
+ 0.031476,0.864418,0.501787,-0.564074,-1.789401,0.803191,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.045651,-0.004499,0.998947,-0.680046,-1.768325,0.81908,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.031476,0.864418,0.501787,-0.564074,-1.789401,0.803191,
+ 0.419396,-0.035927,0.907092,-0.812845,-1.785424,0.768511,
+ -0.055857,0.145868,0.987726,-0.977375,-1.793126,0.498747,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.419396,-0.035927,0.907092,-0.812845,-1.785424,0.768511,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.045651,-0.004499,0.998947,-0.680046,-1.768325,0.81908,
+ -0.017579,0.132168,0.991072,-0.972089,-1.774507,0.76857,
+ -0.965506,-0.176768,-0.191185,-1.091175,-1.70712,0.727242,
+ 0.859237,-0.17312,0.481395,-1.089642,-1.757196,0.685154,
+ -0.182029,-0.190207,0.964721,-1.108758,-1.770749,0.473033,
+ -0.055857,0.145868,0.987726,-0.977375,-1.793126,0.498747,
+ 0.859237,-0.17312,0.481395,-1.089642,-1.757196,0.685154,
+ -0.182029,-0.190207,0.964721,-1.108758,-1.770749,0.473033,
+ 0.859237,-0.17312,0.481395,-1.089642,-1.757196,0.685154,
+ 0.714393,-0.109998,0.691045,-1.266738,-1.691944,0.557922,
+ 0.714393,-0.109998,0.691045,-1.266738,-1.691944,0.557922,
+ -0.571338,-0.120921,0.811758,-1.305099,-1.70846,0.48423,
+ -0.182029,-0.190207,0.964721,-1.108758,-1.770749,0.473033,
+ -0.942755,-0.29871,-0.148273,-1.226563,-1.655159,0.687343,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ 0.714393,-0.109998,0.691045,-1.266738,-1.691944,0.557922,
+ -0.587909,-0.233166,0.774594,-1.397474,-1.693815,0.570541,
+ 0.714393,-0.109998,0.691045,-1.266738,-1.691944,0.557922,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ -0.571338,-0.120921,0.811758,-1.305099,-1.70846,0.48423,
+ 0.023392,-0.110333,0.993619,-1.406693,-1.697325,0.450399,
+ -0.279485,0.127803,0.951606,-1.386502,-1.718441,0.350823,
+ -0.329905,-0.225598,0.916661,-0.972514,-1.822778,0.372649,
+ -0.571338,-0.120921,0.811758,-1.305099,-1.70846,0.48423,
+ -0.279485,0.127803,0.951606,-1.386502,-1.718441,0.350823,
+ 0.044022,0.273891,0.960753,-0.523838,-1.850065,0.388007,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ -0.055857,0.145868,0.987726,-0.977375,-1.793126,0.498747,
+ 0.044022,0.273891,0.960753,-0.523838,-1.850065,0.388007,
+ -0.055857,0.145868,0.987726,-0.977375,-1.793126,0.498747,
+ -0.329905,-0.225598,0.916661,-0.972514,-1.822778,0.372649,
+ 0.057779,0.975002,0.214553,-0.112666,-1.806584,0.383324,
+ 0.076968,0.969253,0.233719,-0.094135,-1.769086,0.556924,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.057779,0.975002,0.214553,-0.112666,-1.806584,0.383324,
+ -0.004377,0.58747,0.809234,-0.543078,-1.810473,0.563825,
+ 0.044022,0.273891,0.960753,-0.523838,-1.850065,0.388007,
+ -0.178511,-0.973481,0.143068,0.480235,-1.631521,0.401961,
+ -0.1427,-0.847733,0.510868,0.489819,-1.524947,0.672392,
+ 0.076968,0.969253,0.233719,-0.094135,-1.769086,0.556924,
+ -0.178511,-0.973481,0.143068,0.480235,-1.631521,0.401961,
+ 0.076968,0.969253,0.233719,-0.094135,-1.769086,0.556924,
+ 0.057779,0.975002,0.214553,-0.112666,-1.806584,0.383324,
+ 0.057779,0.975002,0.214553,-0.112666,-1.806584,0.383324,
+ -0.084764,-0.996401,0,-0.155114,-1.828285,0,
+ 0.226963,-0.973903,0,0.44655,-1.67295,0,
+ 0.057779,0.975002,0.214553,-0.112666,-1.806584,0.383324,
+ 0.226963,-0.973903,0,0.44655,-1.67295,0,
+ -0.178511,-0.973481,0.143068,0.480235,-1.631521,0.401961,
+ 0.044022,0.273891,0.960753,-0.523838,-1.850065,0.388007,
+ 0.854132,-0.520056,0,-0.530369,-1.860806,0,
+ -0.084764,-0.996401,0,-0.155114,-1.828285,0,
+ 0.044022,0.273891,0.960753,-0.523838,-1.850065,0.388007,
+ -0.084764,-0.996401,0,-0.155114,-1.828285,0,
+ 0.057779,0.975002,0.214553,-0.112666,-1.806584,0.383324,
+ -0.329905,-0.225598,0.916661,-0.972514,-1.822778,0.372649,
+ 0.113474,-0.993541,0,-0.956007,-1.825728,0,
+ 0.854132,-0.520056,0,-0.530369,-1.860806,0,
+ -0.329905,-0.225598,0.916661,-0.972514,-1.822778,0.372649,
+ 0.854132,-0.520056,0,-0.530369,-1.860806,0,
+ 0.044022,0.273891,0.960753,-0.523838,-1.850065,0.388007,
+ -0.279485,0.127803,0.951606,-1.386502,-1.718441,0.350823,
+ 0.011286,0.999936,0,-1.395728,-1.723811,0,
+ 0.113474,-0.993541,0,-0.956007,-1.825728,0,
+ -0.279485,0.127803,0.951606,-1.386502,-1.718441,0.350823,
+ 0.113474,-0.993541,0,-0.956007,-1.825728,0,
+ -0.329905,-0.225598,0.916661,-0.972514,-1.822778,0.372649,
+ -0.055857,0.145868,0.987726,-0.977375,-1.793126,0.498747,
+ -0.017579,0.132168,0.991072,-0.972089,-1.774507,0.76857,
+ 0.859237,-0.17312,0.481395,-1.089642,-1.757196,0.685154,
+ -0.017579,0.132168,0.991072,-0.972089,-1.774507,0.76857,
+ -0.055857,0.145868,0.987726,-0.977375,-1.793126,0.498747,
+ 0.419396,-0.035927,0.907092,-0.812845,-1.785424,0.768511,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ -0.4909,0.016111,-0.871067,1.771416,-2.769024,0.9461,
+ 0.21689,-0.976039,-0.017487,1.718315,-2.775468,0.921796,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ 0.21689,-0.976039,-0.017487,1.718315,-2.775468,0.921796,
+ -0.424393,0.057227,0.903668,1.734568,-2.965876,0.986396,
+ -0.775358,0.344514,0.529274,2.021366,-2.881725,0.945561,
+ -0.440199,0.219838,0.870572,1.960643,-2.71286,0.90089,
+ -0.90358,0.003168,0.428409,1.880971,-2.733242,0.8902,
+ -0.775358,0.344514,0.529274,2.021366,-2.881725,0.945561,
+ -0.90358,0.003168,0.428409,1.880971,-2.733242,0.8902,
+ -0.032037,-0.072305,0.996868,1.911792,-2.895773,0.950117,
+ -0.820357,0.160676,0.548815,2.057496,-2.887282,0.844225,
+ 0.636282,0.100894,0.76483,1.994078,-2.713047,0.824553,
+ -0.440199,0.219838,0.870572,1.960643,-2.71286,0.90089,
+ -0.820357,0.160676,0.548815,2.057496,-2.887282,0.844225,
+ -0.440199,0.219838,0.870572,1.960643,-2.71286,0.90089,
+ -0.775358,0.344514,0.529274,2.021366,-2.881725,0.945561,
+ -0.906134,0.012265,-0.422813,1.735077,-3.022732,0.972751,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ -0.424393,0.057227,0.903668,1.734568,-2.965876,0.986396,
+ 0.461464,-0.003303,0.887153,1.721745,-3.116887,0.979111,
+ 0.000666,0.002295,0.999997,1.802387,-3.089615,0.961851,
+ -0.906134,0.012265,-0.422813,1.735077,-3.022732,0.972751,
+ -0.156447,-0.088128,0.983747,1.811797,-3.135641,0.933096,
+ 0.000666,0.002295,0.999997,1.802387,-3.089615,0.961851,
+ 0.461464,-0.003303,0.887153,1.721745,-3.116887,0.979111,
+ 0.773659,-0.235087,-0.588375,2.091539,-3.032437,0.947029,
+ 0.789099,-0.039289,-0.613008,2.113587,-3.011851,0.851648,
+ -0.820357,0.160676,0.548815,2.057496,-2.887282,0.844225,
+ 0.773659,-0.235087,-0.588375,2.091539,-3.032437,0.947029,
+ -0.820357,0.160676,0.548815,2.057496,-2.887282,0.844225,
+ -0.775358,0.344514,0.529274,2.021366,-2.881725,0.945561,
+ -0.90358,0.003168,0.428409,1.880971,-2.733242,0.8902,
+ -0.062994,-0.00854,-0.997977,1.830669,-2.736121,0.903313,
+ 0.433219,-0.09361,0.896414,1.848272,-2.92726,0.996966,
+ -0.90358,0.003168,0.428409,1.880971,-2.733242,0.8902,
+ 0.433219,-0.09361,0.896414,1.848272,-2.92726,0.996966,
+ -0.032037,-0.072305,0.996868,1.911792,-2.895773,0.950117,
+ 0.433219,-0.09361,0.896414,1.848272,-2.92726,0.996966,
+ -0.062994,-0.00854,-0.997977,1.830669,-2.736121,0.903313,
+ -0.4909,0.016111,-0.871067,1.771416,-2.769024,0.9461,
+ 0.433219,-0.09361,0.896414,1.848272,-2.92726,0.996966,
+ -0.4909,0.016111,-0.871067,1.771416,-2.769024,0.9461,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ -0.050511,-0.258376,-0.964723,1.709173,-3.133145,0.80794,
+ 0.461464,-0.003303,0.887153,1.721745,-3.116887,0.979111,
+ -0.906134,0.012265,-0.422813,1.735077,-3.022732,0.972751,
+ -0.050511,-0.258376,-0.964723,1.709173,-3.133145,0.80794,
+ -0.906134,0.012265,-0.422813,1.735077,-3.022732,0.972751,
+ -0.065687,-0.249194,-0.966223,1.705953,-3.006628,0.83263,
+ -0.042094,-0.220101,-0.974568,1.806407,-3.173343,0.834455,
+ -0.156447,-0.088128,0.983747,1.811797,-3.135641,0.933096,
+ 0.461464,-0.003303,0.887153,1.721745,-3.116887,0.979111,
+ -0.042094,-0.220101,-0.974568,1.806407,-3.173343,0.834455,
+ 0.461464,-0.003303,0.887153,1.721745,-3.116887,0.979111,
+ -0.050511,-0.258376,-0.964723,1.709173,-3.133145,0.80794,
+ -0.363523,-0.150625,-0.919327,1.900481,-3.131932,0.728621,
+ -0.042094,-0.220101,-0.974568,1.806407,-3.173343,0.834455,
+ -0.050511,-0.258376,-0.964723,1.709173,-3.133145,0.80794,
+ -0.363523,-0.150625,-0.919327,1.900481,-3.131932,0.728621,
+ -0.050511,-0.258376,-0.964723,1.709173,-3.133145,0.80794,
+ -0.326843,-0.236651,-0.91497,1.741854,-3.114181,0.700705,
+ 0.753698,-0.027204,-0.656657,1.776024,-2.980086,0.707575,
+ -0.326843,-0.236651,-0.91497,1.741854,-3.114181,0.700705,
+ -0.050511,-0.258376,-0.964723,1.709173,-3.133145,0.80794,
+ 0.753698,-0.027204,-0.656657,1.776024,-2.980086,0.707575,
+ -0.050511,-0.258376,-0.964723,1.709173,-3.133145,0.80794,
+ -0.065687,-0.249194,-0.966223,1.705953,-3.006628,0.83263,
+ -0.065687,-0.249194,-0.966223,1.705953,-3.006628,0.83263,
+ -0.020456,0.943466,0.330837,1.700797,-2.794792,0.82425,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ -0.065687,-0.249194,-0.966223,1.705953,-3.006628,0.83263,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ 0.753698,-0.027204,-0.656657,1.776024,-2.980086,0.707575,
+ -0.032037,-0.072305,0.996868,1.911792,-2.895773,0.950117,
+ -0.215783,-0.895808,-0.388544,1.980621,-3.043895,0.964237,
+ 0.773659,-0.235087,-0.588375,2.091539,-3.032437,0.947029,
+ -0.032037,-0.072305,0.996868,1.911792,-2.895773,0.950117,
+ 0.773659,-0.235087,-0.588375,2.091539,-3.032437,0.947029,
+ -0.775358,0.344514,0.529274,2.021366,-2.881725,0.945561,
+ -0.032037,-0.072305,0.996868,1.911792,-2.895773,0.950117,
+ 0.433219,-0.09361,0.896414,1.848272,-2.92726,0.996966,
+ 0.356923,-0.210291,0.910156,1.898573,-3.068274,0.994338,
+ -0.032037,-0.072305,0.996868,1.911792,-2.895773,0.950117,
+ 0.356923,-0.210291,0.910156,1.898573,-3.068274,0.994338,
+ -0.215783,-0.895808,-0.388544,1.980621,-3.043895,0.964237,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ 0.517272,-0.552302,0.653753,1.855134,-3.083228,0.986129,
+ 0.356923,-0.210291,0.910156,1.898573,-3.068274,0.994338,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ 0.356923,-0.210291,0.910156,1.898573,-3.068274,0.994338,
+ 0.433219,-0.09361,0.896414,1.848272,-2.92726,0.996966,
+ -0.156447,-0.088128,0.983747,1.811797,-3.135641,0.933096,
+ 0.517272,-0.552302,0.653753,1.855134,-3.083228,0.986129,
+ 0.000666,0.002295,0.999997,1.802387,-3.089615,0.961851,
+ 0.000666,0.002295,0.999997,1.802387,-3.089615,0.961851,
+ 0.517272,-0.552302,0.653753,1.855134,-3.083228,0.986129,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ 0.000666,0.002295,0.999997,1.802387,-3.089615,0.961851,
+ -0.51975,0.138222,0.843063,1.806371,-2.949735,0.984058,
+ -0.906134,0.012265,-0.422813,1.735077,-3.022732,0.972751,
+ -0.424393,0.057227,0.903668,1.734568,-2.965876,0.986396,
+ -0.065687,-0.249194,-0.966223,1.705953,-3.006628,0.83263,
+ -0.906134,0.012265,-0.422813,1.735077,-3.022732,0.972751,
+ -0.080858,0.024731,0.996419,2.07369,-3.020848,0.782654,
+ -0.753891,0.130682,0.643872,2.001343,-2.847715,0.762517,
+ -0.820357,0.160676,0.548815,2.057496,-2.887282,0.844225,
+ -0.080858,0.024731,0.996419,2.07369,-3.020848,0.782654,
+ -0.820357,0.160676,0.548815,2.057496,-2.887282,0.844225,
+ 0.789099,-0.039289,-0.613008,2.113587,-3.011851,0.851648,
+ -0.492859,-0.096404,0.864752,1.857471,-2.950722,0.669988,
+ -0.363523,-0.150625,-0.919327,1.900481,-3.131932,0.728621,
+ -0.326843,-0.236651,-0.91497,1.741854,-3.114181,0.700705,
+ 0.753698,-0.027204,-0.656657,1.776024,-2.980086,0.707575,
+ -0.492859,-0.096404,0.864752,1.857471,-2.950722,0.669988,
+ -0.326843,-0.236651,-0.91497,1.741854,-3.114181,0.700705,
+ -0.492859,-0.096404,0.864752,1.857471,-2.950722,0.669988,
+ 0.012244,-0.298111,0.954453,1.945632,-2.87671,0.703118,
+ -0.245482,-0.183394,0.951896,1.998099,-3.039955,0.718855,
+ -0.492859,-0.096404,0.864752,1.857471,-2.950722,0.669988,
+ -0.245482,-0.183394,0.951896,1.998099,-3.039955,0.718855,
+ -0.363523,-0.150625,-0.919327,1.900481,-3.131932,0.728621,
+ 0.012244,-0.298111,0.954453,1.945632,-2.87671,0.703118,
+ -0.753891,0.130682,0.643872,2.001343,-2.847715,0.762517,
+ -0.080858,0.024731,0.996419,2.07369,-3.020848,0.782654,
+ 0.012244,-0.298111,0.954453,1.945632,-2.87671,0.703118,
+ -0.080858,0.024731,0.996419,2.07369,-3.020848,0.782654,
+ -0.245482,-0.183394,0.951896,1.998099,-3.039955,0.718855,
+ 0.672894,0.661099,0.331907,1.841282,-2.716008,0.708009,
+ -0.545598,-0.330416,0.770161,1.884318,-2.724404,0.701999,
+ 0.012244,-0.298111,0.954453,1.945632,-2.87671,0.703118,
+ 0.672894,0.661099,0.331907,1.841282,-2.716008,0.708009,
+ 0.012244,-0.298111,0.954453,1.945632,-2.87671,0.703118,
+ -0.492859,-0.096404,0.864752,1.857471,-2.950722,0.669988,
+ -0.074103,0.409269,0.909399,1.972647,-2.728848,0.772496,
+ -0.753891,0.130682,0.643872,2.001343,-2.847715,0.762517,
+ 0.012244,-0.298111,0.954453,1.945632,-2.87671,0.703118,
+ -0.074103,0.409269,0.909399,1.972647,-2.728848,0.772496,
+ 0.012244,-0.298111,0.954453,1.945632,-2.87671,0.703118,
+ -0.545598,-0.330416,0.770161,1.884318,-2.724404,0.701999,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ 0.672894,0.661099,0.331907,1.841282,-2.716008,0.708009,
+ -0.492859,-0.096404,0.864752,1.857471,-2.950722,0.669988,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ -0.492859,-0.096404,0.864752,1.857471,-2.950722,0.669988,
+ 0.753698,-0.027204,-0.656657,1.776024,-2.980086,0.707575,
+ 0.009712,0.399549,0.91666,-2.687162,-1.539807,0.988048,
+ -0.13251,0.440061,0.888137,-2.837147,-1.791733,0.921563,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ 0.009712,0.399549,0.91666,-2.687162,-1.539807,0.988048,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ -0.995081,-0.092251,-0.036114,-2.591357,-1.510845,0.88547,
+ 0.095733,-0.224552,0.969748,-2.765069,-1.561164,1.084313,
+ 0.413011,0.629609,0.658038,-2.918293,-1.904184,1.004659,
+ -0.13251,0.440061,0.888137,-2.837147,-1.791733,0.921563,
+ 0.095733,-0.224552,0.969748,-2.765069,-1.561164,1.084313,
+ -0.13251,0.440061,0.888137,-2.837147,-1.791733,0.921563,
+ 0.009712,0.399549,0.91666,-2.687162,-1.539807,0.988048,
+ -0.149005,-0.65467,0.741084,-2.862576,-1.546894,1.117139,
+ 0.070969,0.266956,0.961092,-3.010917,-1.884498,1.08351,
+ 0.413011,0.629609,0.658038,-2.918293,-1.904184,1.004659,
+ -0.149005,-0.65467,0.741084,-2.862576,-1.546894,1.117139,
+ 0.413011,0.629609,0.658038,-2.918293,-1.904184,1.004659,
+ 0.095733,-0.224552,0.969748,-2.765069,-1.561164,1.084313,
+ -0.461794,0.113692,0.879671,-2.955052,-1.49684,1.128812,
+ 0.405633,0.578229,0.707893,-3.117476,-1.866892,1.108034,
+ 0.070969,0.266956,0.961092,-3.010917,-1.884498,1.08351,
+ -0.461794,0.113692,0.879671,-2.955052,-1.49684,1.128812,
+ 0.070969,0.266956,0.961092,-3.010917,-1.884498,1.08351,
+ -0.149005,-0.65467,0.741084,-2.862576,-1.546894,1.117139,
+ -0.18119,-0.970212,0.160805,-3.063133,-1.440555,1.090926,
+ -0.431118,-0.034268,0.901645,-3.23261,-1.834299,1.087832,
+ 0.405633,0.578229,0.707893,-3.117476,-1.866892,1.108034,
+ -0.18119,-0.970212,0.160805,-3.063133,-1.440555,1.090926,
+ 0.405633,0.578229,0.707893,-3.117476,-1.866892,1.108034,
+ -0.461794,0.113692,0.879671,-2.955052,-1.49684,1.128812,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ 0.596352,0.583149,0.551635,-3.498521,-1.762078,0.762472,
+ 0.637284,0.689194,0.344791,-3.49052,-1.760417,0.903104,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ 0.637284,0.689194,0.344791,-3.49052,-1.760417,0.903104,
+ 0.737412,0.542596,0.402261,-3.36599,-1.48517,0.888076,
+ 0.737412,0.542596,0.402261,-3.36599,-1.48517,0.888076,
+ 0.515412,-0.714946,-0.472444,-3.319817,-1.365015,0.886015,
+ -0.521685,-0.261319,0.812131,-3.335942,-1.365685,0.72459,
+ 0.737412,0.542596,0.402261,-3.36599,-1.48517,0.888076,
+ -0.521685,-0.261319,0.812131,-3.335942,-1.365685,0.72459,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ -0.637763,0.107242,0.76273,-3.068444,-2.260195,1.03507,
+ 0.503689,0.453945,0.735004,-3.177824,-2.279173,1.04758,
+ 0.851754,0.52393,-0.003494,-3.162498,-2.556375,1.058409,
+ -0.637763,0.107242,0.76273,-3.068444,-2.260195,1.03507,
+ 0.851754,0.52393,-0.003494,-3.162498,-2.556375,1.058409,
+ 0.840313,0.535537,-0.084107,-3.078699,-2.553982,1.046834,
+ -0.67011,-0.018974,0.742019,-3.047974,-2.109628,1.063497,
+ -0.833016,0.038682,0.551896,-3.169489,-2.110039,1.076796,
+ 0.503689,0.453945,0.735004,-3.177824,-2.279173,1.04758,
+ -0.67011,-0.018974,0.742019,-3.047974,-2.109628,1.063497,
+ 0.503689,0.453945,0.735004,-3.177824,-2.279173,1.04758,
+ -0.637763,0.107242,0.76273,-3.068444,-2.260195,1.03507,
+ 0.070969,0.266956,0.961092,-3.010917,-1.884498,1.08351,
+ 0.405633,0.578229,0.707893,-3.117476,-1.866892,1.108034,
+ -0.833016,0.038682,0.551896,-3.169489,-2.110039,1.076796,
+ 0.070969,0.266956,0.961092,-3.010917,-1.884498,1.08351,
+ -0.833016,0.038682,0.551896,-3.169489,-2.110039,1.076796,
+ -0.67011,-0.018974,0.742019,-3.047974,-2.109628,1.063497,
+ -0.833016,0.038682,0.551896,-3.169489,-2.110039,1.076796,
+ 0.197648,0.486888,0.850809,-3.207447,-2.103206,1.071366,
+ 0.503689,0.453945,0.735004,-3.177824,-2.279173,1.04758,
+ 0.405633,0.578229,0.707893,-3.117476,-1.866892,1.108034,
+ -0.431118,-0.034268,0.901645,-3.23261,-1.834299,1.087832,
+ 0.197648,0.486888,0.850809,-3.207447,-2.103206,1.071366,
+ 0.405633,0.578229,0.707893,-3.117476,-1.866892,1.108034,
+ 0.197648,0.486888,0.850809,-3.207447,-2.103206,1.071366,
+ -0.833016,0.038682,0.551896,-3.169489,-2.110039,1.076796,
+ 0.503689,0.453945,0.735004,-3.177824,-2.279173,1.04758,
+ 0.144389,0.231536,0.962051,-3.281816,-2.305055,1.001878,
+ 0.163153,0.19945,0.96623,-3.251541,-2.56405,1.023627,
+ 0.503689,0.453945,0.735004,-3.177824,-2.279173,1.04758,
+ 0.163153,0.19945,0.96623,-3.251541,-2.56405,1.023627,
+ 0.851754,0.52393,-0.003494,-3.162498,-2.556375,1.058409,
+ 0.197648,0.486888,0.850809,-3.207447,-2.103206,1.071366,
+ -0.985013,0.106757,-0.135469,-3.327526,-2.075729,1.005328,
+ 0.144389,0.231536,0.962051,-3.281816,-2.305055,1.001878,
+ 0.197648,0.486888,0.850809,-3.207447,-2.103206,1.071366,
+ 0.144389,0.231536,0.962051,-3.281816,-2.305055,1.001878,
+ 0.503689,0.453945,0.735004,-3.177824,-2.279173,1.04758,
+ -0.431118,-0.034268,0.901645,-3.23261,-1.834299,1.087832,
+ -0.46316,0.228643,0.856274,-3.357996,-1.811803,0.975625,
+ -0.985013,0.106757,-0.135469,-3.327526,-2.075729,1.005328,
+ -0.431118,-0.034268,0.901645,-3.23261,-1.834299,1.087832,
+ -0.985013,0.106757,-0.135469,-3.327526,-2.075729,1.005328,
+ 0.197648,0.486888,0.850809,-3.207447,-2.103206,1.071366,
+ 0.144389,0.231536,0.962051,-3.281816,-2.305055,1.001878,
+ -0.948593,-0.185732,-0.25627,-3.389388,-2.305625,0.950348,
+ -0.99734,0.010762,-0.072093,-3.347304,-2.573628,0.955211,
+ 0.144389,0.231536,0.962051,-3.281816,-2.305055,1.001878,
+ -0.99734,0.010762,-0.072093,-3.347304,-2.573628,0.955211,
+ 0.163153,0.19945,0.96623,-3.251541,-2.56405,1.023627,
+ -0.985013,0.106757,-0.135469,-3.327526,-2.075729,1.005328,
+ -0.948593,-0.185732,-0.25627,-3.451965,-2.077314,0.931974,
+ -0.948593,-0.185732,-0.25627,-3.389388,-2.305625,0.950348,
+ -0.985013,0.106757,-0.135469,-3.327526,-2.075729,1.005328,
+ -0.948593,-0.185732,-0.25627,-3.389388,-2.305625,0.950348,
+ 0.144389,0.231536,0.962051,-3.281816,-2.305055,1.001878,
+ -0.46316,0.228643,0.856274,-3.357996,-1.811803,0.975625,
+ 0.637284,0.689194,0.344791,-3.49052,-1.760417,0.903104,
+ -0.948593,-0.185732,-0.25627,-3.451965,-2.077314,0.931974,
+ -0.46316,0.228643,0.856274,-3.357996,-1.811803,0.975625,
+ -0.948593,-0.185732,-0.25627,-3.451965,-2.077314,0.931974,
+ -0.985013,0.106757,-0.135469,-3.327526,-2.075729,1.005328,
+ -0.471141,0.022027,-0.881783,-3.007483,-2.270712,0.984279,
+ -0.637763,0.107242,0.76273,-3.068444,-2.260195,1.03507,
+ 0.840313,0.535537,-0.084107,-3.078699,-2.553982,1.046834,
+ -0.471141,0.022027,-0.881783,-3.007483,-2.270712,0.984279,
+ 0.840313,0.535537,-0.084107,-3.078699,-2.553982,1.046834,
+ -0.178214,-0.110838,-0.977729,-3.022819,-2.52224,0.979148,
+ -0.385346,-0.01874,-0.922582,-2.969687,-2.097941,0.982836,
+ -0.67011,-0.018974,0.742019,-3.047974,-2.109628,1.063497,
+ -0.637763,0.107242,0.76273,-3.068444,-2.260195,1.03507,
+ -0.385346,-0.01874,-0.922582,-2.969687,-2.097941,0.982836,
+ -0.637763,0.107242,0.76273,-3.068444,-2.260195,1.03507,
+ -0.471141,0.022027,-0.881783,-3.007483,-2.270712,0.984279,
+ 0.413011,0.629609,0.658038,-2.918293,-1.904184,1.004659,
+ 0.070969,0.266956,0.961092,-3.010917,-1.884498,1.08351,
+ -0.67011,-0.018974,0.742019,-3.047974,-2.109628,1.063497,
+ 0.413011,0.629609,0.658038,-2.918293,-1.904184,1.004659,
+ -0.67011,-0.018974,0.742019,-3.047974,-2.109628,1.063497,
+ -0.385346,-0.01874,-0.922582,-2.969687,-2.097941,0.982836,
+ -0.13251,0.440061,0.888137,-2.837147,-1.791733,0.921563,
+ 0.413011,0.629609,0.658038,-2.918293,-1.904184,1.004659,
+ -0.11646,-0.017993,-0.993032,-2.892438,-1.95081,0.87812,
+ -0.385346,-0.01874,-0.922582,-2.969687,-2.097941,0.982836,
+ 0.156207,-0.109405,-0.981647,-2.981187,-2.142718,0.858353,
+ -0.11646,-0.017993,-0.993032,-2.892438,-1.95081,0.87812,
+ -0.385346,-0.01874,-0.922582,-2.969687,-2.097941,0.982836,
+ -0.11646,-0.017993,-0.993032,-2.892438,-1.95081,0.87812,
+ 0.413011,0.629609,0.658038,-2.918293,-1.904184,1.004659,
+ -0.471141,0.022027,-0.881783,-3.007483,-2.270712,0.984279,
+ 0.339875,0.026681,-0.940092,-3.030605,-2.311222,0.88433,
+ 0.156207,-0.109405,-0.981647,-2.981187,-2.142718,0.858353,
+ -0.471141,0.022027,-0.881783,-3.007483,-2.270712,0.984279,
+ 0.156207,-0.109405,-0.981647,-2.981187,-2.142718,0.858353,
+ -0.385346,-0.01874,-0.922582,-2.969687,-2.097941,0.982836,
+ -0.178214,-0.110838,-0.977729,-3.022819,-2.52224,0.979148,
+ -0.674431,0.094186,-0.732306,-3.04661,-2.510881,0.900772,
+ 0.339875,0.026681,-0.940092,-3.030605,-2.311222,0.88433,
+ -0.178214,-0.110838,-0.977729,-3.022819,-2.52224,0.979148,
+ 0.339875,0.026681,-0.940092,-3.030605,-2.311222,0.88433,
+ -0.471141,0.022027,-0.881783,-3.007483,-2.270712,0.984279,
+ 0.156207,-0.109405,-0.981647,-2.981187,-2.142718,0.858353,
+ -0.978077,-0.070308,-0.196017,-3.040398,-2.156239,0.808208,
+ -0.037581,-0.042039,-0.998409,-2.964215,-1.978727,0.776572,
+ 0.156207,-0.109405,-0.981647,-2.981187,-2.142718,0.858353,
+ -0.037581,-0.042039,-0.998409,-2.964215,-1.978727,0.776572,
+ -0.11646,-0.017993,-0.993032,-2.892438,-1.95081,0.87812,
+ 0.339875,0.026681,-0.940092,-3.030605,-2.311222,0.88433,
+ -0.978077,-0.070308,-0.196017,-3.040398,-2.156239,0.808208,
+ 0.156207,-0.109405,-0.981647,-2.981187,-2.142718,0.858353,
+ -0.039603,0.339955,0.939607,-3.144012,-2.333635,0.829994,
+ -0.556404,-0.045521,-0.829664,-3.120761,-2.15777,0.766432,
+ -0.978077,-0.070308,-0.196017,-3.040398,-2.156239,0.808208,
+ -0.039603,0.339955,0.939607,-3.144012,-2.333635,0.829994,
+ -0.978077,-0.070308,-0.196017,-3.040398,-2.156239,0.808208,
+ 0.339875,0.026681,-0.940092,-3.030605,-2.311222,0.88433,
+ -0.978077,-0.070308,-0.196017,-3.040398,-2.156239,0.808208,
+ -0.556404,-0.045521,-0.829664,-3.120761,-2.15777,0.766432,
+ -0.377491,-0.043727,0.92498,-3.066022,-1.953125,0.719516,
+ -0.978077,-0.070308,-0.196017,-3.040398,-2.156239,0.808208,
+ -0.377491,-0.043727,0.92498,-3.066022,-1.953125,0.719516,
+ -0.037581,-0.042039,-0.998409,-2.964215,-1.978727,0.776572,
+ -0.556404,-0.045521,-0.829664,-3.120761,-2.15777,0.766432,
+ 0.72114,0.258271,-0.642848,-3.253309,-2.137354,0.760713,
+ 0.684558,0.361153,-0.633205,-3.211005,-1.850398,0.700723,
+ -0.556404,-0.045521,-0.829664,-3.120761,-2.15777,0.766432,
+ 0.684558,0.361153,-0.633205,-3.211005,-1.850398,0.700723,
+ -0.377491,-0.043727,0.92498,-3.066022,-1.953125,0.719516,
+ -0.039603,0.339955,0.939607,-3.144012,-2.333635,0.829994,
+ 0.845209,0.529005,0.075999,-3.235873,-2.335338,0.820588,
+ 0.72114,0.258271,-0.642848,-3.253309,-2.137354,0.760713,
+ -0.039603,0.339955,0.939607,-3.144012,-2.333635,0.829994,
+ 0.72114,0.258271,-0.642848,-3.253309,-2.137354,0.760713,
+ -0.556404,-0.045521,-0.829664,-3.120761,-2.15777,0.766432,
+ 0.780958,0.624512,0.00945,-3.132772,-2.528669,0.848639,
+ 0.61389,0.702597,0.359856,-3.240554,-2.555467,0.856262,
+ 0.845209,0.529005,0.075999,-3.235873,-2.335338,0.820588,
+ 0.780958,0.624512,0.00945,-3.132772,-2.528669,0.848639,
+ 0.845209,0.529005,0.075999,-3.235873,-2.335338,0.820588,
+ -0.039603,0.339955,0.939607,-3.144012,-2.333635,0.829994,
+ 0.77125,0.634502,0.050796,-3.381262,-1.828189,0.697034,
+ 0.596352,0.583149,0.551635,-3.498521,-1.762078,0.762472,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ 0.77125,0.634502,0.050796,-3.381262,-1.828189,0.697034,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ 0.830793,-0.244757,0.499877,-3.304804,-1.582192,0.643445,
+ 0.830793,-0.244757,0.499877,-3.304804,-1.582192,0.643445,
+ 0.843062,-0.10517,0.527433,-3.139394,-1.687482,0.638546,
+ 0.684558,0.361153,-0.633205,-3.211005,-1.850398,0.700723,
+ 0.830793,-0.244757,0.499877,-3.304804,-1.582192,0.643445,
+ 0.684558,0.361153,-0.633205,-3.211005,-1.850398,0.700723,
+ 0.77125,0.634502,0.050796,-3.381262,-1.828189,0.697034,
+ 0.72114,0.258271,-0.642848,-3.253309,-2.137354,0.760713,
+ 0.712283,0.385668,-0.586441,-3.422698,-2.070796,0.773898,
+ 0.77125,0.634502,0.050796,-3.381262,-1.828189,0.697034,
+ 0.72114,0.258271,-0.642848,-3.253309,-2.137354,0.760713,
+ 0.77125,0.634502,0.050796,-3.381262,-1.828189,0.697034,
+ 0.684558,0.361153,-0.633205,-3.211005,-1.850398,0.700723,
+ 0.845209,0.529005,0.075999,-3.235873,-2.335338,0.820588,
+ 0.684834,0.490952,-0.538488,-3.339489,-2.328145,0.827572,
+ 0.712283,0.385668,-0.586441,-3.422698,-2.070796,0.773898,
+ 0.845209,0.529005,0.075999,-3.235873,-2.335338,0.820588,
+ 0.712283,0.385668,-0.586441,-3.422698,-2.070796,0.773898,
+ 0.72114,0.258271,-0.642848,-3.253309,-2.137354,0.760713,
+ 0.61389,0.702597,0.359856,-3.240554,-2.555467,0.856262,
+ 0.722847,0.455753,-0.519404,-3.297886,-2.54902,0.861657,
+ 0.684834,0.490952,-0.538488,-3.339489,-2.328145,0.827572,
+ 0.61389,0.702597,0.359856,-3.240554,-2.555467,0.856262,
+ 0.684834,0.490952,-0.538488,-3.339489,-2.328145,0.827572,
+ 0.845209,0.529005,0.075999,-3.235873,-2.335338,0.820588,
+ 0.712283,0.385668,-0.586441,-3.422698,-2.070796,0.773898,
+ -0.058899,-0.007802,-0.998233,-3.463753,-2.079892,0.844667,
+ 0.596352,0.583149,0.551635,-3.498521,-1.762078,0.762472,
+ 0.712283,0.385668,-0.586441,-3.422698,-2.070796,0.773898,
+ 0.596352,0.583149,0.551635,-3.498521,-1.762078,0.762472,
+ 0.77125,0.634502,0.050796,-3.381262,-1.828189,0.697034,
+ 0.684834,0.490952,-0.538488,-3.339489,-2.328145,0.827572,
+ 0.403627,0.101273,-0.909302,-3.412068,-2.356105,0.865813,
+ -0.058899,-0.007802,-0.998233,-3.463753,-2.079892,0.844667,
+ 0.684834,0.490952,-0.538488,-3.339489,-2.328145,0.827572,
+ -0.058899,-0.007802,-0.998233,-3.463753,-2.079892,0.844667,
+ 0.712283,0.385668,-0.586441,-3.422698,-2.070796,0.773898,
+ 0.722847,0.455753,-0.519404,-3.297886,-2.54902,0.861657,
+ 0.308087,0.149605,-0.939522,-3.372066,-2.569159,0.904785,
+ 0.403627,0.101273,-0.909302,-3.412068,-2.356105,0.865813,
+ 0.722847,0.455753,-0.519404,-3.297886,-2.54902,0.861657,
+ 0.403627,0.101273,-0.909302,-3.412068,-2.356105,0.865813,
+ 0.684834,0.490952,-0.538488,-3.339489,-2.328145,0.827572,
+ 0.403627,0.101273,-0.909302,-3.412068,-2.356105,0.865813,
+ -0.948593,-0.185732,-0.25627,-3.389388,-2.305625,0.950348,
+ -0.948593,-0.185732,-0.25627,-3.451965,-2.077314,0.931974,
+ 0.403627,0.101273,-0.909302,-3.412068,-2.356105,0.865813,
+ -0.948593,-0.185732,-0.25627,-3.451965,-2.077314,0.931974,
+ -0.058899,-0.007802,-0.998233,-3.463753,-2.079892,0.844667,
+ 0.308087,0.149605,-0.939522,-3.372066,-2.569159,0.904785,
+ -0.99734,0.010762,-0.072093,-3.347304,-2.573628,0.955211,
+ -0.948593,-0.185732,-0.25627,-3.389388,-2.305625,0.950348,
+ 0.308087,0.149605,-0.939522,-3.372066,-2.569159,0.904785,
+ -0.948593,-0.185732,-0.25627,-3.389388,-2.305625,0.950348,
+ 0.403627,0.101273,-0.909302,-3.412068,-2.356105,0.865813,
+ -0.058899,-0.007802,-0.998233,-3.463753,-2.079892,0.844667,
+ -0.948593,-0.185732,-0.25627,-3.451965,-2.077314,0.931974,
+ 0.637284,0.689194,0.344791,-3.49052,-1.760417,0.903104,
+ -0.058899,-0.007802,-0.998233,-3.463753,-2.079892,0.844667,
+ 0.637284,0.689194,0.344791,-3.49052,-1.760417,0.903104,
+ 0.596352,0.583149,0.551635,-3.498521,-1.762078,0.762472,
+ -0.508357,0.250892,0.823787,-3.342096,-1.533989,0.921628,
+ 0.737412,0.542596,0.402261,-3.36599,-1.48517,0.888076,
+ 0.637284,0.689194,0.344791,-3.49052,-1.760417,0.903104,
+ -0.508357,0.250892,0.823787,-3.342096,-1.533989,0.921628,
+ 0.637284,0.689194,0.344791,-3.49052,-1.760417,0.903104,
+ -0.46316,0.228643,0.856274,-3.357996,-1.811803,0.975625,
+ -0.430524,-0.648446,0.627828,2.02453,-2.195334,0.811284,
+ 0.626232,0.565165,0.53705,1.98533,-2.221319,0.893145,
+ 0.768073,0.514956,0.380637,1.930747,-2.463535,0.894743,
+ -0.430524,-0.648446,0.627828,2.02453,-2.195334,0.811284,
+ 0.768073,0.514956,0.380637,1.930747,-2.463535,0.894743,
+ 0.213417,-0.547722,0.808983,1.953911,-2.462233,0.830594,
+ -0.492627,0.113675,0.862784,2.047696,-2.050138,0.814712,
+ 0.52783,0.437826,0.727807,2.013095,-2.051912,0.911043,
+ 0.626232,0.565165,0.53705,1.98533,-2.221319,0.893145,
+ -0.492627,0.113675,0.862784,2.047696,-2.050138,0.814712,
+ 0.626232,0.565165,0.53705,1.98533,-2.221319,0.893145,
+ -0.430524,-0.648446,0.627828,2.02453,-2.195334,0.811284,
+ -0.495591,0.225654,0.838731,2.053108,-1.738285,0.824853,
+ 0.862528,0.499882,-0.078511,2.021591,-1.755289,0.912093,
+ 0.52783,0.437826,0.727807,2.013095,-2.051912,0.911043,
+ -0.495591,0.225654,0.838731,2.053108,-1.738285,0.824853,
+ 0.52783,0.437826,0.727807,2.013095,-2.051912,0.911043,
+ -0.492627,0.113675,0.862784,2.047696,-2.050138,0.814712,
+ -0.541077,0.245809,0.804247,2.059844,-1.561331,0.858957,
+ 0.872426,0.488735,-0.003223,2.036036,-1.57908,0.967151,
+ 0.862528,0.499882,-0.078511,2.021591,-1.755289,0.912093,
+ -0.541077,0.245809,0.804247,2.059844,-1.561331,0.858957,
+ 0.862528,0.499882,-0.078511,2.021591,-1.755289,0.912093,
+ -0.495591,0.225654,0.838731,2.053108,-1.738285,0.824853,
+ 0.21689,-0.976039,-0.017487,1.718315,-2.775468,0.921796,
+ -0.4909,0.016111,-0.871067,1.771416,-2.769024,0.9461,
+ -0.184432,-0.109597,-0.976716,1.737623,-2.485017,0.918334,
+ 0.21689,-0.976039,-0.017487,1.718315,-2.775468,0.921796,
+ -0.184432,-0.109597,-0.976716,1.737623,-2.485017,0.918334,
+ 0.383337,-0.601981,-0.700479,1.678986,-2.513137,0.891745,
+ 0.383337,-0.601981,-0.700479,1.678986,-2.513137,0.891745,
+ -0.184432,-0.109597,-0.976716,1.737623,-2.485017,0.918334,
+ -0.554502,-0.046423,-0.830886,1.710406,-2.272223,0.954296,
+ 0.383337,-0.601981,-0.700479,1.678986,-2.513137,0.891745,
+ -0.554502,-0.046423,-0.830886,1.710406,-2.272223,0.954296,
+ -0.701253,0.091018,-0.707079,1.648793,-2.280014,0.929365,
+ -0.701253,0.091018,-0.707079,1.648793,-2.280014,0.929365,
+ -0.554502,-0.046423,-0.830886,1.710406,-2.272223,0.954296,
+ -0.554151,-0.205896,-0.80655,1.720031,-2.105568,0.971354,
+ -0.701253,0.091018,-0.707079,1.648793,-2.280014,0.929365,
+ -0.554151,-0.205896,-0.80655,1.720031,-2.105568,0.971354,
+ -0.706628,-0.050081,-0.705811,1.6249,-2.087301,0.963391,
+ -0.706628,-0.050081,-0.705811,1.6249,-2.087301,0.963391,
+ -0.554151,-0.205896,-0.80655,1.720031,-2.105568,0.971354,
+ -0.343436,-0.507052,-0.790537,1.717145,-1.80953,1.004092,
+ -0.706628,-0.050081,-0.705811,1.6249,-2.087301,0.963391,
+ -0.343436,-0.507052,-0.790537,1.717145,-1.80953,1.004092,
+ -0.990285,-0.10079,-0.095796,1.572979,-1.827591,0.985823,
+ -0.990285,-0.10079,-0.095796,1.572979,-1.827591,0.985823,
+ -0.343436,-0.507052,-0.790537,1.717145,-1.80953,1.004092,
+ 0.056398,-0.684481,-0.726846,1.650318,-1.645881,1.053347,
+ -0.990285,-0.10079,-0.095796,1.572979,-1.827591,0.985823,
+ 0.056398,-0.684481,-0.726846,1.650318,-1.645881,1.053347,
+ -0.404532,-0.045989,0.913367,1.54175,-1.643613,1.01419,
+ 0.717573,0.343682,-0.605782,1.655948,-2.520927,0.844269,
+ 0.383337,-0.601981,-0.700479,1.678986,-2.513137,0.891745,
+ -0.701253,0.091018,-0.707079,1.648793,-2.280014,0.929365,
+ 0.717573,0.343682,-0.605782,1.655948,-2.520927,0.844269,
+ -0.701253,0.091018,-0.707079,1.648793,-2.280014,0.929365,
+ 0.743894,0.373896,-0.553916,1.586321,-2.273752,0.880969,
+ 0.743894,0.373896,-0.553916,1.586321,-2.273752,0.880969,
+ -0.701253,0.091018,-0.707079,1.648793,-2.280014,0.929365,
+ -0.706628,-0.050081,-0.705811,1.6249,-2.087301,0.963391,
+ 0.743894,0.373896,-0.553916,1.586321,-2.273752,0.880969,
+ -0.706628,-0.050081,-0.705811,1.6249,-2.087301,0.963391,
+ 0.752232,0.244351,-0.611914,1.529305,-2.092083,0.887353,
+ 0.752232,0.244351,-0.611914,1.529305,-2.092083,0.887353,
+ -0.706628,-0.050081,-0.705811,1.6249,-2.087301,0.963391,
+ -0.990285,-0.10079,-0.095796,1.572979,-1.827591,0.985823,
+ 0.752232,0.244351,-0.611914,1.529305,-2.092083,0.887353,
+ -0.990285,-0.10079,-0.095796,1.572979,-1.827591,0.985823,
+ 0.866543,0.493887,0.071972,1.508714,-1.808578,0.934359,
+ 0.866543,0.493887,0.071972,1.508714,-1.808578,0.934359,
+ -0.990285,-0.10079,-0.095796,1.572979,-1.827591,0.985823,
+ -0.404532,-0.045989,0.913367,1.54175,-1.643613,1.01419,
+ 0.866543,0.493887,0.071972,1.508714,-1.808578,0.934359,
+ -0.404532,-0.045989,0.913367,1.54175,-1.643613,1.01419,
+ 0.874983,0.217677,0.432459,1.480629,-1.640132,0.953447,
+ 0.79991,0.598082,0.049409,1.663494,-2.485963,0.790773,
+ 0.717573,0.343682,-0.605782,1.655948,-2.520927,0.844269,
+ 0.743894,0.373896,-0.553916,1.586321,-2.273752,0.880969,
+ 0.79991,0.598082,0.049409,1.663494,-2.485963,0.790773,
+ 0.743894,0.373896,-0.553916,1.586321,-2.273752,0.880969,
+ 0.963394,-0.268066,0.003702,1.60129,-2.267132,0.787696,
+ 0.963394,-0.268066,0.003702,1.60129,-2.267132,0.787696,
+ 0.743894,0.373896,-0.553916,1.586321,-2.273752,0.880969,
+ 0.752232,0.244351,-0.611914,1.529305,-2.092083,0.887353,
+ 0.963394,-0.268066,0.003702,1.60129,-2.267132,0.787696,
+ 0.752232,0.244351,-0.611914,1.529305,-2.092083,0.887353,
+ 0.714275,0.465374,-0.522723,1.544087,-2.080722,0.786432,
+ 0.714275,0.465374,-0.522723,1.544087,-2.080722,0.786432,
+ 0.752232,0.244351,-0.611914,1.529305,-2.092083,0.887353,
+ 0.866543,0.493887,0.071972,1.508714,-1.808578,0.934359,
+ 0.714275,0.465374,-0.522723,1.544087,-2.080722,0.786432,
+ 0.866543,0.493887,0.071972,1.508714,-1.808578,0.934359,
+ 0.81992,-0.126246,-0.558385,1.473886,-1.818947,0.799576,
+ 0.81992,-0.126246,-0.558385,1.473886,-1.818947,0.799576,
+ 0.866543,0.493887,0.071972,1.508714,-1.808578,0.934359,
+ 0.874983,0.217677,0.432459,1.480629,-1.640132,0.953447,
+ 0.81992,-0.126246,-0.558385,1.473886,-1.818947,0.799576,
+ 0.874983,0.217677,0.432459,1.480629,-1.640132,0.953447,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ 0.79991,0.598082,0.049409,1.663494,-2.485963,0.790773,
+ 0.963394,-0.268066,0.003702,1.60129,-2.267132,0.787696,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ 0.963394,-0.268066,0.003702,1.60129,-2.267132,0.787696,
+ 0.43336,0.0979,-0.895888,1.677597,-2.237953,0.696318,
+ 0.43336,0.0979,-0.895888,1.677597,-2.237953,0.696318,
+ 0.963394,-0.268066,0.003702,1.60129,-2.267132,0.787696,
+ 0.714275,0.465374,-0.522723,1.544087,-2.080722,0.786432,
+ 0.43336,0.0979,-0.895888,1.677597,-2.237953,0.696318,
+ 0.714275,0.465374,-0.522723,1.544087,-2.080722,0.786432,
+ 0.261981,0.048424,-0.963857,1.643403,-2.076583,0.689565,
+ 0.261981,0.048424,-0.963857,1.643403,-2.076583,0.689565,
+ 0.714275,0.465374,-0.522723,1.544087,-2.080722,0.786432,
+ 0.81992,-0.126246,-0.558385,1.473886,-1.818947,0.799576,
+ 0.261981,0.048424,-0.963857,1.643403,-2.076583,0.689565,
+ 0.81992,-0.126246,-0.558385,1.473886,-1.818947,0.799576,
+ 0.79444,0.150525,-0.588393,1.596751,-1.722028,0.684655,
+ 0.79444,0.150525,-0.588393,1.596751,-1.722028,0.684655,
+ 0.81992,-0.126246,-0.558385,1.473886,-1.818947,0.799576,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ 0.79444,0.150525,-0.588393,1.596751,-1.722028,0.684655,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ 0.24139,0.178826,-0.953809,1.599889,-1.595526,0.623185,
+ -0.440199,0.219838,0.870572,1.960643,-2.71286,0.90089,
+ 0.636282,0.100894,0.76483,1.994078,-2.713047,0.824553,
+ 0.213417,-0.547722,0.808983,1.953911,-2.462233,0.830594,
+ -0.440199,0.219838,0.870572,1.960643,-2.71286,0.90089,
+ 0.213417,-0.547722,0.808983,1.953911,-2.462233,0.830594,
+ 0.768073,0.514956,0.380637,1.930747,-2.463535,0.894743,
+ -0.90358,0.003168,0.428409,1.880971,-2.733242,0.8902,
+ -0.440199,0.219838,0.870572,1.960643,-2.71286,0.90089,
+ 0.768073,0.514956,0.380637,1.930747,-2.463535,0.894743,
+ -0.90358,0.003168,0.428409,1.880971,-2.733242,0.8902,
+ 0.768073,0.514956,0.380637,1.930747,-2.463535,0.894743,
+ -0.874488,-0.088621,0.476882,1.864064,-2.469953,0.935601,
+ 0.862528,0.499882,-0.078511,2.021591,-1.755289,0.912093,
+ 0.872426,0.488735,-0.003223,2.036036,-1.57908,0.967151,
+ -0.987313,0.097591,-0.125253,1.937009,-1.625419,1.026843,
+ 0.862528,0.499882,-0.078511,2.021591,-1.755289,0.912093,
+ -0.987313,0.097591,-0.125253,1.937009,-1.625419,1.026843,
+ -0.997638,0.009858,-0.067986,1.941767,-1.759457,0.997454,
+ 0.52783,0.437826,0.727807,2.013095,-2.051912,0.911043,
+ 0.862528,0.499882,-0.078511,2.021591,-1.755289,0.912093,
+ -0.997638,0.009858,-0.067986,1.941767,-1.759457,0.997454,
+ 0.52783,0.437826,0.727807,2.013095,-2.051912,0.911043,
+ -0.997638,0.009858,-0.067986,1.941767,-1.759457,0.997454,
+ 0.21581,0.484483,0.847763,1.918641,-2.083654,1.001275,
+ -0.874488,-0.088621,0.476882,1.864064,-2.469953,0.935601,
+ 0.768073,0.514956,0.380637,1.930747,-2.463535,0.894743,
+ 0.626232,0.565165,0.53705,1.98533,-2.221319,0.893145,
+ -0.874488,-0.088621,0.476882,1.864064,-2.469953,0.935601,
+ 0.626232,0.565165,0.53705,1.98533,-2.221319,0.893145,
+ -0.783521,-0.393963,0.480508,1.90637,-2.282284,0.964887,
+ 0.626232,0.565165,0.53705,1.98533,-2.221319,0.893145,
+ 0.52783,0.437826,0.727807,2.013095,-2.051912,0.911043,
+ 0.21581,0.484483,0.847763,1.918641,-2.083654,1.001275,
+ 0.626232,0.565165,0.53705,1.98533,-2.221319,0.893145,
+ 0.21581,0.484483,0.847763,1.918641,-2.083654,1.001275,
+ -0.783521,-0.393963,0.480508,1.90637,-2.282284,0.964887,
+ -0.062994,-0.00854,-0.997977,1.830669,-2.736121,0.903313,
+ -0.955753,-0.169718,-0.240275,1.801127,-2.48469,0.938593,
+ -0.184432,-0.109597,-0.976716,1.737623,-2.485017,0.918334,
+ -0.062994,-0.00854,-0.997977,1.830669,-2.736121,0.903313,
+ -0.184432,-0.109597,-0.976716,1.737623,-2.485017,0.918334,
+ -0.4909,0.016111,-0.871067,1.771416,-2.769024,0.9461,
+ -0.062994,-0.00854,-0.997977,1.830669,-2.736121,0.903313,
+ -0.90358,0.003168,0.428409,1.880971,-2.733242,0.8902,
+ -0.874488,-0.088621,0.476882,1.864064,-2.469953,0.935601,
+ -0.062994,-0.00854,-0.997977,1.830669,-2.736121,0.903313,
+ -0.874488,-0.088621,0.476882,1.864064,-2.469953,0.935601,
+ -0.955753,-0.169718,-0.240275,1.801127,-2.48469,0.938593,
+ -0.150944,-0.987886,-0.036012,1.818846,-1.756976,1.023593,
+ -0.937976,-0.320543,-0.132115,1.804927,-1.581954,1.089198,
+ 0.056398,-0.684481,-0.726846,1.650318,-1.645881,1.053347,
+ -0.150944,-0.987886,-0.036012,1.818846,-1.756976,1.023593,
+ 0.056398,-0.684481,-0.726846,1.650318,-1.645881,1.053347,
+ -0.343436,-0.507052,-0.790537,1.717145,-1.80953,1.004092,
+ -0.630099,-0.773677,-0.066329,1.839224,-2.109267,0.998351,
+ -0.150944,-0.987886,-0.036012,1.818846,-1.756976,1.023593,
+ -0.343436,-0.507052,-0.790537,1.717145,-1.80953,1.004092,
+ -0.630099,-0.773677,-0.066329,1.839224,-2.109267,0.998351,
+ -0.343436,-0.507052,-0.790537,1.717145,-1.80953,1.004092,
+ -0.554151,-0.205896,-0.80655,1.720031,-2.105568,0.971354,
+ -0.967491,-0.143323,-0.208372,1.818266,-2.313852,0.968652,
+ -0.630099,-0.773677,-0.066329,1.839224,-2.109267,0.998351,
+ -0.554151,-0.205896,-0.80655,1.720031,-2.105568,0.971354,
+ -0.967491,-0.143323,-0.208372,1.818266,-2.313852,0.968652,
+ -0.554151,-0.205896,-0.80655,1.720031,-2.105568,0.971354,
+ -0.554502,-0.046423,-0.830886,1.710406,-2.272223,0.954296,
+ -0.955753,-0.169718,-0.240275,1.801127,-2.48469,0.938593,
+ -0.967491,-0.143323,-0.208372,1.818266,-2.313852,0.968652,
+ -0.554502,-0.046423,-0.830886,1.710406,-2.272223,0.954296,
+ -0.955753,-0.169718,-0.240275,1.801127,-2.48469,0.938593,
+ -0.554502,-0.046423,-0.830886,1.710406,-2.272223,0.954296,
+ -0.184432,-0.109597,-0.976716,1.737623,-2.485017,0.918334,
+ -0.997638,0.009858,-0.067986,1.941767,-1.759457,0.997454,
+ -0.987313,0.097591,-0.125253,1.937009,-1.625419,1.026843,
+ -0.937976,-0.320543,-0.132115,1.804927,-1.581954,1.089198,
+ -0.997638,0.009858,-0.067986,1.941767,-1.759457,0.997454,
+ -0.937976,-0.320543,-0.132115,1.804927,-1.581954,1.089198,
+ -0.150944,-0.987886,-0.036012,1.818846,-1.756976,1.023593,
+ 0.21581,0.484483,0.847763,1.918641,-2.083654,1.001275,
+ -0.997638,0.009858,-0.067986,1.941767,-1.759457,0.997454,
+ -0.150944,-0.987886,-0.036012,1.818846,-1.756976,1.023593,
+ 0.21581,0.484483,0.847763,1.918641,-2.083654,1.001275,
+ -0.150944,-0.987886,-0.036012,1.818846,-1.756976,1.023593,
+ -0.630099,-0.773677,-0.066329,1.839224,-2.109267,0.998351,
+ -0.783521,-0.393963,0.480508,1.90637,-2.282284,0.964887,
+ 0.21581,0.484483,0.847763,1.918641,-2.083654,1.001275,
+ -0.630099,-0.773677,-0.066329,1.839224,-2.109267,0.998351,
+ -0.783521,-0.393963,0.480508,1.90637,-2.282284,0.964887,
+ -0.630099,-0.773677,-0.066329,1.839224,-2.109267,0.998351,
+ -0.967491,-0.143323,-0.208372,1.818266,-2.313852,0.968652,
+ -0.874488,-0.088621,0.476882,1.864064,-2.469953,0.935601,
+ -0.783521,-0.393963,0.480508,1.90637,-2.282284,0.964887,
+ -0.967491,-0.143323,-0.208372,1.818266,-2.313852,0.968652,
+ -0.874488,-0.088621,0.476882,1.864064,-2.469953,0.935601,
+ -0.967491,-0.143323,-0.208372,1.818266,-2.313852,0.968652,
+ -0.955753,-0.169718,-0.240275,1.801127,-2.48469,0.938593,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ 0.79991,0.598082,0.049409,1.663494,-2.485963,0.790773,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ 0.672894,0.661099,0.331907,1.841282,-2.716008,0.708009,
+ 0.79444,0.150525,-0.588393,1.596751,-1.722028,0.684655,
+ 0.24139,0.178826,-0.953809,1.599889,-1.595526,0.623185,
+ 0.776291,-0.374867,0.5068,1.721211,-1.590185,0.601932,
+ 0.79444,0.150525,-0.588393,1.596751,-1.722028,0.684655,
+ 0.776291,-0.374867,0.5068,1.721211,-1.590185,0.601932,
+ 0.726897,-0.546447,0.415952,1.740323,-1.67983,0.664098,
+ 0.261981,0.048424,-0.963857,1.643403,-2.076583,0.689565,
+ 0.79444,0.150525,-0.588393,1.596751,-1.722028,0.684655,
+ 0.726897,-0.546447,0.415952,1.740323,-1.67983,0.664098,
+ 0.261981,0.048424,-0.963857,1.643403,-2.076583,0.689565,
+ 0.726897,-0.546447,0.415952,1.740323,-1.67983,0.664098,
+ 0.81802,-0.47123,0.329827,1.747671,-2.067518,0.638841,
+ 0.43336,0.0979,-0.895888,1.677597,-2.237953,0.696318,
+ 0.261981,0.048424,-0.963857,1.643403,-2.076583,0.689565,
+ 0.81802,-0.47123,0.329827,1.747671,-2.067518,0.638841,
+ 0.43336,0.0979,-0.895888,1.677597,-2.237953,0.696318,
+ 0.81802,-0.47123,0.329827,1.747671,-2.067518,0.638841,
+ 0.247956,0.087485,-0.964813,1.772999,-2.230292,0.64494,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ -0.020456,0.943466,0.330837,1.700797,-2.794792,0.82425,
+ 0.717573,0.343682,-0.605782,1.655948,-2.520927,0.844269,
+ 0.030762,-0.124297,-0.991768,1.736425,-2.743683,0.736866,
+ 0.717573,0.343682,-0.605782,1.655948,-2.520927,0.844269,
+ 0.79991,0.598082,0.049409,1.663494,-2.485963,0.790773,
+ -0.753891,0.130682,0.643872,2.001343,-2.847715,0.762517,
+ -0.074103,0.409269,0.909399,1.972647,-2.728848,0.772496,
+ 0.636282,0.100894,0.76483,1.994078,-2.713047,0.824553,
+ -0.753891,0.130682,0.643872,2.001343,-2.847715,0.762517,
+ 0.636282,0.100894,0.76483,1.994078,-2.713047,0.824553,
+ -0.820357,0.160676,0.548815,2.057496,-2.887282,0.844225,
+ 0.225987,0.181604,-0.957053,1.947264,-2.443232,0.732587,
+ -0.074103,0.409269,0.909399,1.972647,-2.728848,0.772496,
+ -0.545598,-0.330416,0.770161,1.884318,-2.724404,0.701999,
+ 0.225987,0.181604,-0.957053,1.947264,-2.443232,0.732587,
+ -0.545598,-0.330416,0.770161,1.884318,-2.724404,0.701999,
+ 0.229413,0.089674,-0.96919,1.828658,-2.477348,0.67347,
+ -0.121543,0.046,-0.99152,1.921881,-2.157616,0.692678,
+ 0.225987,0.181604,-0.957053,1.947264,-2.443232,0.732587,
+ 0.229413,0.089674,-0.96919,1.828658,-2.477348,0.67347,
+ -0.121543,0.046,-0.99152,1.921881,-2.157616,0.692678,
+ 0.229413,0.089674,-0.96919,1.828658,-2.477348,0.67347,
+ 0.247956,0.087485,-0.964813,1.772999,-2.230292,0.64494,
+ -0.545598,-0.330416,0.770161,1.884318,-2.724404,0.701999,
+ 0.672894,0.661099,0.331907,1.841282,-2.716008,0.708009,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ -0.545598,-0.330416,0.770161,1.884318,-2.724404,0.701999,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ 0.229413,0.089674,-0.96919,1.828658,-2.477348,0.67347,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ 0.43336,0.0979,-0.895888,1.677597,-2.237953,0.696318,
+ 0.247956,0.087485,-0.964813,1.772999,-2.230292,0.64494,
+ 0.331576,0.146631,-0.931964,1.756349,-2.446399,0.705428,
+ 0.247956,0.087485,-0.964813,1.772999,-2.230292,0.64494,
+ 0.229413,0.089674,-0.96919,1.828658,-2.477348,0.67347,
+ 0.636282,0.100894,0.76483,1.994078,-2.713047,0.824553,
+ -0.074103,0.409269,0.909399,1.972647,-2.728848,0.772496,
+ 0.225987,0.181604,-0.957053,1.947264,-2.443232,0.732587,
+ 0.636282,0.100894,0.76483,1.994078,-2.713047,0.824553,
+ 0.225987,0.181604,-0.957053,1.947264,-2.443232,0.732587,
+ 0.213417,-0.547722,0.808983,1.953911,-2.462233,0.830594,
+ 0.726897,-0.546447,0.415952,1.740323,-1.67983,0.664098,
+ 0.776291,-0.374867,0.5068,1.721211,-1.590185,0.601932,
+ -0.086361,-0.084973,0.992634,1.963153,-1.588839,0.612861,
+ 0.726897,-0.546447,0.415952,1.740323,-1.67983,0.664098,
+ -0.086361,-0.084973,0.992634,1.963153,-1.588839,0.612861,
+ 0.313529,0.096126,-0.944701,1.991892,-1.7484,0.65277,
+ 0.81802,-0.47123,0.329827,1.747671,-2.067518,0.638841,
+ 0.726897,-0.546447,0.415952,1.740323,-1.67983,0.664098,
+ 0.313529,0.096126,-0.944701,1.991892,-1.7484,0.65277,
+ 0.81802,-0.47123,0.329827,1.747671,-2.067518,0.638841,
+ 0.313529,0.096126,-0.944701,1.991892,-1.7484,0.65277,
+ 0.761939,0.13671,-0.633055,1.945206,-2.015769,0.672724,
+ 0.313529,0.096126,-0.944701,1.991892,-1.7484,0.65277,
+ -0.086361,-0.084973,0.992634,1.963153,-1.588839,0.612861,
+ -0.541077,0.245809,0.804247,2.059844,-1.561331,0.858957,
+ 0.313529,0.096126,-0.944701,1.991892,-1.7484,0.65277,
+ -0.541077,0.245809,0.804247,2.059844,-1.561331,0.858957,
+ -0.495591,0.225654,0.838731,2.053108,-1.738285,0.824853,
+ 0.761939,0.13671,-0.633055,1.945206,-2.015769,0.672724,
+ 0.313529,0.096126,-0.944701,1.991892,-1.7484,0.65277,
+ -0.495591,0.225654,0.838731,2.053108,-1.738285,0.824853,
+ 0.761939,0.13671,-0.633055,1.945206,-2.015769,0.672724,
+ -0.495591,0.225654,0.838731,2.053108,-1.738285,0.824853,
+ -0.492627,0.113675,0.862784,2.047696,-2.050138,0.814712,
+ -0.121543,0.046,-0.99152,1.921881,-2.157616,0.692678,
+ 0.761939,0.13671,-0.633055,1.945206,-2.015769,0.672724,
+ -0.492627,0.113675,0.862784,2.047696,-2.050138,0.814712,
+ -0.121543,0.046,-0.99152,1.921881,-2.157616,0.692678,
+ -0.492627,0.113675,0.862784,2.047696,-2.050138,0.814712,
+ -0.430524,-0.648446,0.627828,2.02453,-2.195334,0.811284,
+ 0.225987,0.181604,-0.957053,1.947264,-2.443232,0.732587,
+ -0.121543,0.046,-0.99152,1.921881,-2.157616,0.692678,
+ -0.430524,-0.648446,0.627828,2.02453,-2.195334,0.811284,
+ 0.225987,0.181604,-0.957053,1.947264,-2.443232,0.732587,
+ -0.430524,-0.648446,0.627828,2.02453,-2.195334,0.811284,
+ 0.213417,-0.547722,0.808983,1.953911,-2.462233,0.830594,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ 0.383978,-0.566345,0.729256,2.158051,-1.209613,0.783941,
+ -0.671694,-0.023528,0.740455,2.141273,-1.234642,0.941254,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ -0.671694,-0.023528,0.740455,2.141273,-1.234642,0.941254,
+ -0.562282,-0.328887,0.758731,2.111557,-1.376942,0.89657,
+ -0.562282,-0.328887,0.758731,2.111557,-1.376942,0.89657,
+ -0.671694,-0.023528,0.740455,2.141273,-1.234642,0.941254,
+ -0.088841,0.02472,0.995739,2.099566,-1.259996,1.055763,
+ -0.562282,-0.328887,0.758731,2.111557,-1.376942,0.89657,
+ -0.088841,0.02472,0.995739,2.099566,-1.259996,1.055763,
+ 0.157806,0.230905,0.960094,2.071448,-1.410118,1.006192,
+ 0.157806,0.230905,0.960094,2.071448,-1.410118,1.006192,
+ -0.088841,0.02472,0.995739,2.099566,-1.259996,1.055763,
+ 0.57446,0.218241,0.788902,1.966698,-1.22816,1.153716,
+ 0.157806,0.230905,0.960094,2.071448,-1.410118,1.006192,
+ 0.57446,0.218241,0.788902,1.966698,-1.22816,1.153716,
+ -0.144755,0.439659,0.886423,1.974215,-1.469208,1.068951,
+ -0.144755,0.439659,0.886423,1.974215,-1.469208,1.068951,
+ 0.57446,0.218241,0.788902,1.966698,-1.22816,1.153716,
+ 0.526213,0.349004,0.775433,1.805207,-1.268427,1.165317,
+ -0.144755,0.439659,0.886423,1.974215,-1.469208,1.068951,
+ 0.526213,0.349004,0.775433,1.805207,-1.268427,1.165317,
+ 0.339699,0.626415,0.701576,1.801794,-1.465464,1.129277,
+ 0.339699,0.626415,0.701576,1.801794,-1.465464,1.129277,
+ 0.526213,0.349004,0.775433,1.805207,-1.268427,1.165317,
+ 0.926951,0.366239,-0.081429,1.601721,-1.262359,1.14142,
+ 0.339699,0.626415,0.701576,1.801794,-1.465464,1.129277,
+ 0.926951,0.366239,-0.081429,1.601721,-1.262359,1.14142,
+ 0.457853,0.537523,0.708124,1.612396,-1.485728,1.099731,
+ 0.457853,0.537523,0.708124,1.612396,-1.485728,1.099731,
+ 0.926951,0.366239,-0.081429,1.601721,-1.262359,1.14142,
+ -0.496829,-0.096649,0.86245,1.49748,-1.283201,1.088258,
+ 0.457853,0.537523,0.708124,1.612396,-1.485728,1.099731,
+ -0.496829,-0.096649,0.86245,1.49748,-1.283201,1.088258,
+ -0.081045,0.40912,0.908874,1.5167,-1.45305,1.068516,
+ -0.081045,0.40912,0.908874,1.5167,-1.45305,1.068516,
+ -0.496829,-0.096649,0.86245,1.49748,-1.283201,1.088258,
+ 0.013288,-0.297478,0.954636,1.430817,-1.301205,1.024924,
+ -0.081045,0.40912,0.908874,1.5167,-1.45305,1.068516,
+ 0.013288,-0.297478,0.954636,1.430817,-1.301205,1.024924,
+ 0.444124,0.617476,0.649214,1.454817,-1.430228,0.976569,
+ 0.444124,0.617476,0.649214,1.454817,-1.430228,0.976569,
+ 0.013288,-0.297478,0.954636,1.430817,-1.301205,1.024924,
+ -0.228294,-0.186048,0.955651,1.348219,-1.282064,0.845204,
+ 0.444124,0.617476,0.649214,1.454817,-1.430228,0.976569,
+ -0.228294,-0.186048,0.955651,1.348219,-1.282064,0.845204,
+ 0.010538,0.399391,0.91672,1.328862,-1.352627,0.758733,
+ 0.383978,-0.566345,0.729256,2.158051,-1.209613,0.783941,
+ 0.424286,-0.254348,0.869073,2.180012,-1.130557,0.821812,
+ -0.217942,-0.897186,-0.384133,2.17745,-1.127765,0.974416,
+ 0.383978,-0.566345,0.729256,2.158051,-1.209613,0.783941,
+ -0.217942,-0.897186,-0.384133,2.17745,-1.127765,0.974416,
+ -0.671694,-0.023528,0.740455,2.141273,-1.234642,0.941254,
+ -0.671694,-0.023528,0.740455,2.141273,-1.234642,0.941254,
+ -0.217942,-0.897186,-0.384133,2.17745,-1.127765,0.974416,
+ -0.069765,-0.126006,-0.989573,2.148553,-1.103067,1.06541,
+ -0.671694,-0.023528,0.740455,2.141273,-1.234642,0.941254,
+ -0.069765,-0.126006,-0.989573,2.148553,-1.103067,1.06541,
+ -0.088841,0.02472,0.995739,2.099566,-1.259996,1.055763,
+ -0.088841,0.02472,0.995739,2.099566,-1.259996,1.055763,
+ -0.069765,-0.126006,-0.989573,2.148553,-1.103067,1.06541,
+ -0.1083,-0.048546,-0.992932,2.024692,-1.074646,1.172465,
+ -0.088841,0.02472,0.995739,2.099566,-1.259996,1.055763,
+ -0.1083,-0.048546,-0.992932,2.024692,-1.074646,1.172465,
+ 0.57446,0.218241,0.788902,1.966698,-1.22816,1.153716,
+ 0.57446,0.218241,0.788902,1.966698,-1.22816,1.153716,
+ -0.1083,-0.048546,-0.992932,2.024692,-1.074646,1.172465,
+ -0.084936,-0.226589,-0.97028,1.838895,-1.087204,1.201408,
+ 0.57446,0.218241,0.788902,1.966698,-1.22816,1.153716,
+ -0.084936,-0.226589,-0.97028,1.838895,-1.087204,1.201408,
+ 0.526213,0.349004,0.775433,1.805207,-1.268427,1.165317,
+ 0.526213,0.349004,0.775433,1.805207,-1.268427,1.165317,
+ -0.084936,-0.226589,-0.97028,1.838895,-1.087204,1.201408,
+ -0.024032,-0.835976,-0.54824,1.645819,-1.087442,1.173773,
+ 0.526213,0.349004,0.775433,1.805207,-1.268427,1.165317,
+ -0.024032,-0.835976,-0.54824,1.645819,-1.087442,1.173773,
+ 0.926951,0.366239,-0.081429,1.601721,-1.262359,1.14142,
+ 0.926951,0.366239,-0.081429,1.601721,-1.262359,1.14142,
+ -0.024032,-0.835976,-0.54824,1.645819,-1.087442,1.173773,
+ -0.044013,0.340434,0.939238,1.524407,-1.125312,1.142248,
+ 0.926951,0.366239,-0.081429,1.601721,-1.262359,1.14142,
+ -0.044013,0.340434,0.939238,1.524407,-1.125312,1.142248,
+ -0.496829,-0.096649,0.86245,1.49748,-1.283201,1.088258,
+ -0.496829,-0.096649,0.86245,1.49748,-1.283201,1.088258,
+ -0.044013,0.340434,0.939238,1.524407,-1.125312,1.142248,
+ 0.186476,0.252953,0.949337,1.438439,-1.148029,1.098069,
+ -0.496829,-0.096649,0.86245,1.49748,-1.283201,1.088258,
+ 0.186476,0.252953,0.949337,1.438439,-1.148029,1.098069,
+ 0.013288,-0.297478,0.954636,1.430817,-1.301205,1.024924,
+ 0.013288,-0.297478,0.954636,1.430817,-1.301205,1.024924,
+ 0.186476,0.252953,0.949337,1.438439,-1.148029,1.098069,
+ 0.43768,-0.823149,-0.361748,1.310865,-1.136322,0.914838,
+ 0.013288,-0.297478,0.954636,1.430817,-1.301205,1.024924,
+ 0.43768,-0.823149,-0.361748,1.310865,-1.136322,0.914838,
+ -0.228294,-0.186048,0.955651,1.348219,-1.282064,0.845204,
+ -0.086361,-0.084973,0.992634,1.963153,-1.588839,0.612861,
+ 0.140536,0.558684,0.817388,2.0482,-1.581983,0.555832,
+ 0.235033,-0.721825,0.650944,2.0796,-1.473377,0.654997,
+ -0.086361,-0.084973,0.992634,1.963153,-1.588839,0.612861,
+ 0.235033,-0.721825,0.650944,2.0796,-1.473377,0.654997,
+ -0.541077,0.245809,0.804247,2.059844,-1.561331,0.858957,
+ 0.339699,0.626415,0.701576,1.801794,-1.465464,1.129277,
+ 0.457853,0.537523,0.708124,1.612396,-1.485728,1.099731,
+ 0.056398,-0.684481,-0.726846,1.650318,-1.645881,1.053347,
+ 0.339699,0.626415,0.701576,1.801794,-1.465464,1.129277,
+ 0.056398,-0.684481,-0.726846,1.650318,-1.645881,1.053347,
+ -0.937976,-0.320543,-0.132115,1.804927,-1.581954,1.089198,
+ -0.144755,0.439659,0.886423,1.974215,-1.469208,1.068951,
+ 0.339699,0.626415,0.701576,1.801794,-1.465464,1.129277,
+ -0.937976,-0.320543,-0.132115,1.804927,-1.581954,1.089198,
+ -0.144755,0.439659,0.886423,1.974215,-1.469208,1.068951,
+ -0.937976,-0.320543,-0.132115,1.804927,-1.581954,1.089198,
+ -0.987313,0.097591,-0.125253,1.937009,-1.625419,1.026843,
+ 0.157806,0.230905,0.960094,2.071448,-1.410118,1.006192,
+ -0.144755,0.439659,0.886423,1.974215,-1.469208,1.068951,
+ -0.987313,0.097591,-0.125253,1.937009,-1.625419,1.026843,
+ 0.157806,0.230905,0.960094,2.071448,-1.410118,1.006192,
+ -0.987313,0.097591,-0.125253,1.937009,-1.625419,1.026843,
+ 0.872426,0.488735,-0.003223,2.036036,-1.57908,0.967151,
+ -0.562282,-0.328887,0.758731,2.111557,-1.376942,0.89657,
+ 0.157806,0.230905,0.960094,2.071448,-1.410118,1.006192,
+ 0.872426,0.488735,-0.003223,2.036036,-1.57908,0.967151,
+ -0.562282,-0.328887,0.758731,2.111557,-1.376942,0.89657,
+ 0.872426,0.488735,-0.003223,2.036036,-1.57908,0.967151,
+ -0.541077,0.245809,0.804247,2.059844,-1.561331,0.858957,
+ 0.235033,-0.721825,0.650944,2.0796,-1.473377,0.654997,
+ 0.303379,-0.73119,0.611002,2.126237,-1.330172,0.721011,
+ -0.562282,-0.328887,0.758731,2.111557,-1.376942,0.89657,
+ 0.235033,-0.721825,0.650944,2.0796,-1.473377,0.654997,
+ -0.562282,-0.328887,0.758731,2.111557,-1.376942,0.89657,
+ -0.541077,0.245809,0.804247,2.059844,-1.561331,0.858957,
+ 0.080812,0.697931,0.711591,2.229345,-0.992723,0.862826,
+ -0.887036,-0.210048,-0.411154,2.222082,-0.957342,1.014137,
+ -0.217942,-0.897186,-0.384133,2.17745,-1.127765,0.974416,
+ 0.080812,0.697931,0.711591,2.229345,-0.992723,0.862826,
+ -0.217942,-0.897186,-0.384133,2.17745,-1.127765,0.974416,
+ 0.424286,-0.254348,0.869073,2.180012,-1.130557,0.821812,
+ 0.193853,0.161608,0.967628,1.867657,-0.920633,1.206933,
+ -0.493424,-0.16561,-0.853877,1.635139,-0.965221,1.184968,
+ -0.024032,-0.835976,-0.54824,1.645819,-1.087442,1.173773,
+ 0.193853,0.161608,0.967628,1.867657,-0.920633,1.206933,
+ -0.024032,-0.835976,-0.54824,1.645819,-1.087442,1.173773,
+ -0.084936,-0.226589,-0.97028,1.838895,-1.087204,1.201408,
+ -0.819256,-0.566976,0.085772,2.058189,-0.931238,1.163518,
+ 0.193853,0.161608,0.967628,1.867657,-0.920633,1.206933,
+ -0.084936,-0.226589,-0.97028,1.838895,-1.087204,1.201408,
+ -0.819256,-0.566976,0.085772,2.058189,-0.931238,1.163518,
+ -0.084936,-0.226589,-0.97028,1.838895,-1.087204,1.201408,
+ -0.1083,-0.048546,-0.992932,2.024692,-1.074646,1.172465,
+ -0.898389,-0.217201,-0.381735,2.158585,-0.955809,1.113647,
+ -0.819256,-0.566976,0.085772,2.058189,-0.931238,1.163518,
+ -0.1083,-0.048546,-0.992932,2.024692,-1.074646,1.172465,
+ -0.898389,-0.217201,-0.381735,2.158585,-0.955809,1.113647,
+ -0.1083,-0.048546,-0.992932,2.024692,-1.074646,1.172465,
+ -0.069765,-0.126006,-0.989573,2.148553,-1.103067,1.06541,
+ -0.887036,-0.210048,-0.411154,2.222082,-0.957342,1.014137,
+ -0.898389,-0.217201,-0.381735,2.158585,-0.955809,1.113647,
+ -0.069765,-0.126006,-0.989573,2.148553,-1.103067,1.06541,
+ -0.887036,-0.210048,-0.411154,2.222082,-0.957342,1.014137,
+ -0.069765,-0.126006,-0.989573,2.148553,-1.103067,1.06541,
+ -0.217942,-0.897186,-0.384133,2.17745,-1.127765,0.974416,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ 0.874983,0.217677,0.432459,1.480629,-1.640132,0.953447,
+ 0.444124,0.617476,0.649214,1.454817,-1.430228,0.976569,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ 0.444124,0.617476,0.649214,1.454817,-1.430228,0.976569,
+ 0.010538,0.399391,0.91672,1.328862,-1.352627,0.758733,
+ 0.43768,-0.823149,-0.361748,1.310865,-1.136322,0.914838,
+ 0.186476,0.252953,0.949337,1.438439,-1.148029,1.098069,
+ -0.53197,-0.108751,-0.839751,1.428883,-0.98669,1.133905,
+ 0.43768,-0.823149,-0.361748,1.310865,-1.136322,0.914838,
+ -0.53197,-0.108751,-0.839751,1.428883,-0.98669,1.133905,
+ -0.382074,-0.25681,-0.887732,1.337875,-0.945716,1.021299,
+ -0.404532,-0.045989,0.913367,1.54175,-1.643613,1.01419,
+ 0.056398,-0.684481,-0.726846,1.650318,-1.645881,1.053347,
+ 0.457853,0.537523,0.708124,1.612396,-1.485728,1.099731,
+ -0.404532,-0.045989,0.913367,1.54175,-1.643613,1.01419,
+ 0.457853,0.537523,0.708124,1.612396,-1.485728,1.099731,
+ -0.081045,0.40912,0.908874,1.5167,-1.45305,1.068516,
+ 0.874983,0.217677,0.432459,1.480629,-1.640132,0.953447,
+ -0.404532,-0.045989,0.913367,1.54175,-1.643613,1.01419,
+ -0.081045,0.40912,0.908874,1.5167,-1.45305,1.068516,
+ 0.874983,0.217677,0.432459,1.480629,-1.640132,0.953447,
+ -0.081045,0.40912,0.908874,1.5167,-1.45305,1.068516,
+ 0.444124,0.617476,0.649214,1.454817,-1.430228,0.976569,
+ -0.044013,0.340434,0.939238,1.524407,-1.125312,1.142248,
+ -0.024032,-0.835976,-0.54824,1.645819,-1.087442,1.173773,
+ -0.493424,-0.16561,-0.853877,1.635139,-0.965221,1.184968,
+ -0.044013,0.340434,0.939238,1.524407,-1.125312,1.142248,
+ -0.493424,-0.16561,-0.853877,1.635139,-0.965221,1.184968,
+ -0.570406,-0.192005,-0.798606,1.536037,-0.985876,1.185597,
+ 0.186476,0.252953,0.949337,1.438439,-1.148029,1.098069,
+ -0.044013,0.340434,0.939238,1.524407,-1.125312,1.142248,
+ -0.570406,-0.192005,-0.798606,1.536037,-0.985876,1.185597,
+ 0.186476,0.252953,0.949337,1.438439,-1.148029,1.098069,
+ -0.570406,-0.192005,-0.798606,1.536037,-0.985876,1.185597,
+ -0.53197,-0.108751,-0.839751,1.428883,-0.98669,1.133905,
+ -0.861251,0.383698,-0.333202,3.247406,2.073333,0,
+ 0.889638,-0.392482,0.233458,2.985371,1.982663,0,
+ 0.397823,0.403779,0.823832,3.009101,1.971604,0.03422,
+ -0.861251,0.383698,-0.333202,3.247406,2.073333,0,
+ 0.397823,0.403779,0.823832,3.009101,1.971604,0.03422,
+ 0.662294,0.443714,0.603726,3.233975,2.059193,0.072431,
+ 0.662294,0.443714,0.603726,3.233975,2.059193,0.072431,
+ 0.397823,0.403779,0.823832,3.009101,1.971604,0.03422,
+ 0.449887,0.239005,0.860511,3.036361,1.913989,0.169838,
+ 0.662294,0.443714,0.603726,3.233975,2.059193,0.072431,
+ 0.449887,0.239005,0.860511,3.036361,1.913989,0.169838,
+ 0.693381,0.351142,0.629224,3.252224,2.026347,0.148215,
+ 0.693381,0.351142,0.629224,3.252224,2.026347,0.148215,
+ 0.449887,0.239005,0.860511,3.036361,1.913989,0.169838,
+ 0.525142,-0.062799,0.848695,3.058366,1.773346,0.297337,
+ 0.693381,0.351142,0.629224,3.252224,2.026347,0.148215,
+ 0.525142,-0.062799,0.848695,3.058366,1.773346,0.297337,
+ 0.748939,0.152982,0.644738,3.276333,1.863773,0.294266,
+ 0.748939,0.152982,0.644738,3.276333,1.863773,0.294266,
+ 0.525142,-0.062799,0.848695,3.058366,1.773346,0.297337,
+ 0.561573,-0.148323,0.814024,3.086666,1.632991,0.338863,
+ 0.748939,0.152982,0.644738,3.276333,1.863773,0.294266,
+ 0.561573,-0.148323,0.814024,3.086666,1.632991,0.338863,
+ 0.795625,-0.129968,0.591684,3.337545,1.748927,0.34021,
+ 0.795625,-0.129968,0.591684,3.337545,1.748927,0.34021,
+ 0.561573,-0.148323,0.814024,3.086666,1.632991,0.338863,
+ 0.513731,-0.239493,0.823847,3.115383,1.49239,0.380228,
+ 0.795625,-0.129968,0.591684,3.337545,1.748927,0.34021,
+ 0.513731,-0.239493,0.823847,3.115383,1.49239,0.380228,
+ 0.805898,-0.146097,0.573745,3.377233,1.5878,0.400781,
+ 0.805898,-0.146097,0.573745,3.377233,1.5878,0.400781,
+ 0.513731,-0.239493,0.823847,3.115383,1.49239,0.380228,
+ 0.506924,-0.406124,0.760323,3.163181,1.209972,0.462438,
+ 0.805898,-0.146097,0.573745,3.377233,1.5878,0.400781,
+ 0.506924,-0.406124,0.760323,3.163181,1.209972,0.462438,
+ 0.772313,-0.244122,0.586461,3.47341,1.366149,0.454658,
+ 0.772313,-0.244122,0.586461,3.47341,1.366149,0.454658,
+ 0.506924,-0.406124,0.760323,3.163181,1.209972,0.462438,
+ 0.552633,-0.484765,0.677938,3.189664,0.907503,0.500122,
+ 0.772313,-0.244122,0.586461,3.47341,1.366149,0.454658,
+ 0.552633,-0.484765,0.677938,3.189664,0.907503,0.500122,
+ 0.697438,-0.478568,0.533435,3.528445,1.060127,0.489443,
+ 0.697438,-0.478568,0.533435,3.528445,1.060127,0.489443,
+ 0.552633,-0.484765,0.677938,3.189664,0.907503,0.500122,
+ 0.696414,-0.392791,0.600602,3.280681,0.510802,0.499434,
+ 0.697438,-0.478568,0.533435,3.528445,1.060127,0.489443,
+ 0.696414,-0.392791,0.600602,3.280681,0.510802,0.499434,
+ 0.628361,-0.426126,0.65083,3.559394,0.706516,0.452535,
+ 0.628361,-0.426126,0.65083,3.559394,0.706516,0.452535,
+ 0.696414,-0.392791,0.600602,3.280681,0.510802,0.499434,
+ 0.026499,0.942993,0.331757,3.321825,0.26669,0.46575,
+ 0.628361,-0.426126,0.65083,3.559394,0.706516,0.452535,
+ 0.026499,0.942993,0.331757,3.321825,0.26669,0.46575,
+ 0.065855,0.814333,0.576649,3.61965,0.472046,0.391742,
+ 0.065855,0.814333,0.576649,3.61965,0.472046,0.391742,
+ 0.026499,0.942993,0.331757,3.321825,0.26669,0.46575,
+ 0.019336,0.837694,0.545798,3.36004,0.165487,0.412685,
+ 0.065855,0.814333,0.576649,3.61965,0.472046,0.391742,
+ 0.019336,0.837694,0.545798,3.36004,0.165487,0.412685,
+ 0.187432,0.691784,0.697355,3.641195,0.407454,0.362198,
+ 0.187432,0.691784,0.697355,3.641195,0.407454,0.362198,
+ 0.019336,0.837694,0.545798,3.36004,0.165487,0.412685,
+ 0.05298,0.780732,0.622615,3.378799,0.073736,0.355362,
+ 0.187432,0.691784,0.697355,3.641195,0.407454,0.362198,
+ 0.05298,0.780732,0.622615,3.378799,0.073736,0.355362,
+ 0.328244,0.603535,0.726637,3.67471,0.338839,0.30784,
+ 0.328244,0.603535,0.726637,3.67471,0.338839,0.30784,
+ 0.05298,0.780732,0.622615,3.378799,0.073736,0.355362,
+ 0.115383,0.694945,0.709746,3.43895,-0.08258,0.257015,
+ 0.328244,0.603535,0.726637,3.67471,0.338839,0.30784,
+ 0.115383,0.694945,0.709746,3.43895,-0.08258,0.257015,
+ 0.387394,0.516219,0.763835,3.700363,0.265794,0.240762,
+ 0.387394,0.516219,0.763835,3.700363,0.265794,0.240762,
+ 0.115383,0.694945,0.709746,3.43895,-0.08258,0.257015,
+ 0.146937,0.551946,0.820832,3.514981,-0.121886,0.187589,
+ 0.387394,0.516219,0.763835,3.700363,0.265794,0.240762,
+ 0.146937,0.551946,0.820832,3.514981,-0.121886,0.187589,
+ 0.387987,0.466053,0.795148,3.737014,0.181837,0.176819,
+ 0.387987,0.466053,0.795148,3.737014,0.181837,0.176819,
+ 0.146937,0.551946,0.820832,3.514981,-0.121886,0.187589,
+ 0.431966,-0.771434,0.46722,3.486028,-0.141683,0,
+ 0.387987,0.466053,0.795148,3.737014,0.181837,0.176819,
+ 0.431966,-0.771434,0.46722,3.486028,-0.141683,0,
+ -0.910859,-0.100368,-0.400327,3.731689,0.186391,0,
+ 0.694153,-0.467999,0.546926,3.454971,2.169877,0,
+ 0.742962,-0.255405,0.618688,3.4583,2.151656,0.102662,
+ -0.071584,0.92252,0.379253,3.727093,2.308406,0.150049,
+ 0.694153,-0.467999,0.546926,3.454971,2.169877,0,
+ -0.071584,0.92252,0.379253,3.727093,2.308406,0.150049,
+ 0.431966,-0.771434,-0.46722,3.71636,2.343387,0,
+ 0.614456,0.489786,0.618509,3.955635,0.432417,0.197586,
+ 0.338485,-0.103202,-0.935295,3.929251,0.411689,0,
+ -0.926486,-0.356041,-0.121897,4.126565,0.642027,0,
+ 0.614456,0.489786,0.618509,3.955635,0.432417,0.197586,
+ -0.926486,-0.356041,-0.121897,4.126565,0.642027,0,
+ 0.804239,-0.153549,0.574128,4.120842,0.627141,0.185461,
+ 0.718673,-0.290446,0.631784,3.889626,0.475277,0.247365,
+ 0.614456,0.489786,0.618509,3.955635,0.432417,0.197586,
+ 0.804239,-0.153549,0.574128,4.120842,0.627141,0.185461,
+ 0.815771,-0.424495,0.392838,3.861841,0.560638,0.311961,
+ 0.718673,-0.290446,0.631784,3.889626,0.475277,0.247365,
+ 0.804239,-0.153549,0.574128,4.120842,0.627141,0.185461,
+ 0.815771,-0.424495,0.392838,3.861841,0.560638,0.311961,
+ 0.804239,-0.153549,0.574128,4.120842,0.627141,0.185461,
+ 0.788801,-0.199379,0.581412,4.105198,0.672581,0.300001,
+ 0.900366,-0.205985,0.38329,3.849352,0.664451,0.387198,
+ 0.815771,-0.424495,0.392838,3.861841,0.560638,0.311961,
+ 0.788801,-0.199379,0.581412,4.105198,0.672581,0.300001,
+ 0.900366,-0.205985,0.38329,3.849352,0.664451,0.387198,
+ 0.788801,-0.199379,0.581412,4.105198,0.672581,0.300001,
+ 0.771881,-0.100912,0.627707,4.068249,0.798926,0.400813,
+ 0.906617,-0.14387,0.39667,3.823137,0.853054,0.461519,
+ 0.900366,-0.205985,0.38329,3.849352,0.664451,0.387198,
+ 0.771881,-0.100912,0.627707,4.068249,0.798926,0.400813,
+ 0.906617,-0.14387,0.39667,3.823137,0.853054,0.461519,
+ 0.771881,-0.100912,0.627707,4.068249,0.798926,0.400813,
+ 0.769758,0.095155,0.631204,4.041657,1.039756,0.496922,
+ 0.908163,-0.140074,0.394486,3.747724,1.184933,0.518662,
+ 0.906617,-0.14387,0.39667,3.823137,0.853054,0.461519,
+ 0.769758,0.095155,0.631204,4.041657,1.039756,0.496922,
+ 0.908163,-0.140074,0.394486,3.747724,1.184933,0.518662,
+ 0.769758,0.095155,0.631204,4.041657,1.039756,0.496922,
+ 0.763734,0.228435,0.603761,3.98851,1.297806,0.539537,
+ 0.907314,0.09913,0.4086,3.650974,1.46374,0.478617,
+ 0.908163,-0.140074,0.394486,3.747724,1.184933,0.518662,
+ 0.763734,0.228435,0.603761,3.98851,1.297806,0.539537,
+ 0.907314,0.09913,0.4086,3.650974,1.46374,0.478617,
+ 0.763734,0.228435,0.603761,3.98851,1.297806,0.539537,
+ 0.696162,0.333274,0.635835,3.886058,1.550141,0.50483,
+ 0.85208,0.278905,0.442914,3.590526,1.70109,0.411994,
+ 0.907314,0.09913,0.4086,3.650974,1.46374,0.478617,
+ 0.696162,0.333274,0.635835,3.886058,1.550141,0.50483,
+ 0.85208,0.278905,0.442914,3.590526,1.70109,0.411994,
+ 0.696162,0.333274,0.635835,3.886058,1.550141,0.50483,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ 0.759315,0.386803,0.523282,3.541188,1.849183,0.386366,
+ 0.85208,0.278905,0.442914,3.590526,1.70109,0.411994,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ 0.759315,0.386803,0.523282,3.541188,1.849183,0.386366,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ 0.462789,0.48004,0.745243,3.814876,1.968416,0.443,
+ 0.636794,0.461927,0.617346,3.479418,1.97825,0.317478,
+ 0.759315,0.386803,0.523282,3.541188,1.849183,0.386366,
+ 0.462789,0.48004,0.745243,3.814876,1.968416,0.443,
+ 0.636794,0.461927,0.617346,3.479418,1.97825,0.317478,
+ 0.462789,0.48004,0.745243,3.814876,1.968416,0.443,
+ 0.241303,0.584582,0.77462,3.758215,2.206683,0.323051,
+ 0.722145,-0.312679,0.617041,3.460196,2.103494,0.180368,
+ 0.636794,0.461927,0.617346,3.479418,1.97825,0.317478,
+ 0.241303,0.584582,0.77462,3.758215,2.206683,0.323051,
+ 0.722145,-0.312679,0.617041,3.460196,2.103494,0.180368,
+ 0.241303,0.584582,0.77462,3.758215,2.206683,0.323051,
+ 0.072694,0.752739,0.654294,3.745669,2.266001,0.24193,
+ 0.742962,-0.255405,0.618688,3.4583,2.151656,0.102662,
+ 0.722145,-0.312679,0.617041,3.460196,2.103494,0.180368,
+ 0.072694,0.752739,0.654294,3.745669,2.266001,0.24193,
+ 0.742962,-0.255405,0.618688,3.4583,2.151656,0.102662,
+ 0.072694,0.752739,0.654294,3.745669,2.266001,0.24193,
+ -0.071584,0.92252,0.379253,3.727093,2.308406,0.150049,
+ -0.560204,0.828355,-0.00034,3.33521,-0.375755,0,
+ -0.046579,0.627301,0.777383,3.342159,-0.384674,0.201349,
+ 0.6483,-0.171023,0.741928,3.107533,-0.691019,0.264602,
+ -0.560204,0.828355,-0.00034,3.33521,-0.375755,0,
+ 0.6483,-0.171023,0.741928,3.107533,-0.691019,0.264602,
+ -0.476715,0.879058,0,3.118124,-0.703925,0,
+ 0.12555,0.440005,0.889176,2.715712,1.828219,0.167709,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.536218,-0.84408,0.000006,2.339597,1.807702,0,
+ 0.12555,0.440005,0.889176,2.715712,1.828219,0.167709,
+ 0.536218,-0.84408,0.000006,2.339597,1.807702,0,
+ -0.05128,0.509983,0.858655,2.361089,1.76666,0.202595,
+ 0.10998,0.376752,0.919762,2.738132,1.687333,0.295046,
+ 0.12555,0.440005,0.889176,2.715712,1.828219,0.167709,
+ -0.05128,0.509983,0.858655,2.361089,1.76666,0.202595,
+ 0.10998,0.376752,0.919762,2.738132,1.687333,0.295046,
+ -0.05128,0.509983,0.858655,2.361089,1.76666,0.202595,
+ -0.02226,0.394285,0.918719,2.406969,1.645328,0.341479,
+ 0.097864,0.250653,0.963118,2.77568,1.53871,0.352829,
+ 0.10998,0.376752,0.919762,2.738132,1.687333,0.295046,
+ -0.02226,0.394285,0.918719,2.406969,1.645328,0.341479,
+ 0.097864,0.250653,0.963118,2.77568,1.53871,0.352829,
+ -0.02226,0.394285,0.918719,2.406969,1.645328,0.341479,
+ -0.026262,0.311275,0.949957,2.519027,1.485931,0.422962,
+ 0.12742,0.021045,0.991626,2.815366,1.377583,0.413399,
+ 0.097864,0.250653,0.963118,2.77568,1.53871,0.352829,
+ -0.026262,0.311275,0.949957,2.519027,1.485931,0.422962,
+ 0.12742,0.021045,0.991626,2.815366,1.377583,0.413399,
+ -0.026262,0.311275,0.949957,2.519027,1.485931,0.422962,
+ -0.039079,0.203923,0.978207,2.553871,1.284278,0.512335,
+ 0.206882,-0.117024,0.971342,2.854291,1.093951,0.49465,
+ 0.12742,0.021045,0.991626,2.815366,1.377583,0.413399,
+ -0.039079,0.203923,0.978207,2.553871,1.284278,0.512335,
+ 0.206882,-0.117024,0.971342,2.854291,1.093951,0.49465,
+ -0.039079,0.203923,0.978207,2.553871,1.284278,0.512335,
+ -0.031021,0.098798,0.994624,2.637461,1.01726,0.581611,
+ 0.218538,-0.213954,0.952084,2.948387,0.783357,0.515058,
+ 0.206882,-0.117024,0.971342,2.854291,1.093951,0.49465,
+ -0.031021,0.098798,0.994624,2.637461,1.01726,0.581611,
+ 0.218538,-0.213954,0.952084,2.948387,0.783357,0.515058,
+ -0.031021,0.098798,0.994624,2.637461,1.01726,0.581611,
+ -0.012663,0.029084,0.999497,2.747937,0.712253,0.615674,
+ 0.304965,-0.136677,0.942505,3.06109,0.397226,0.574193,
+ 0.218538,-0.213954,0.952084,2.948387,0.783357,0.515058,
+ -0.012663,0.029084,0.999497,2.747937,0.712253,0.615674,
+ 0.304965,-0.136677,0.942505,3.06109,0.397226,0.574193,
+ -0.012663,0.029084,0.999497,2.747937,0.712253,0.615674,
+ -0.096144,-0.182414,0.97851,2.811504,0.469098,0.657443,
+ 0.304965,-0.136677,0.942505,3.06109,0.397226,0.574193,
+ -0.096144,-0.182414,0.97851,2.811504,0.469098,0.657443,
+ -0.200187,-0.124247,0.971848,2.898733,0.271916,0.651298,
+ -0.061264,0.921927,0.382487,3.136321,0.171237,0.539896,
+ 0.304965,-0.136677,0.942505,3.06109,0.397226,0.574193,
+ -0.200187,-0.124247,0.971848,2.898733,0.271916,0.651298,
+ -0.061264,0.921927,0.382487,3.136321,0.171237,0.539896,
+ -0.200187,-0.124247,0.971848,2.898733,0.271916,0.651298,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ -0.070642,0.834207,0.546908,3.16616,0.02131,0.457261,
+ -0.061264,0.921927,0.382487,3.136321,0.171237,0.539896,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ -0.070642,0.834207,0.546908,3.16616,0.02131,0.457261,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ 0.720876,-0.356662,0.594247,2.953029,-0.12769,0.520499,
+ -0.055544,0.828008,0.557959,3.199571,-0.153739,0.38015,
+ -0.070642,0.834207,0.546908,3.16616,0.02131,0.457261,
+ 0.720876,-0.356662,0.594247,2.953029,-0.12769,0.520499,
+ -0.055544,0.828008,0.557959,3.199571,-0.153739,0.38015,
+ 0.720876,-0.356662,0.594247,2.953029,-0.12769,0.520499,
+ 0.709718,-0.453837,0.538824,2.986408,-0.413503,0.428964,
+ -0.047374,0.758242,0.65025,3.286426,-0.300744,0.276331,
+ -0.055544,0.828008,0.557959,3.199571,-0.153739,0.38015,
+ 0.709718,-0.453837,0.538824,2.986408,-0.413503,0.428964,
+ -0.047374,0.758242,0.65025,3.286426,-0.300744,0.276331,
+ 0.709718,-0.453837,0.538824,2.986408,-0.413503,0.428964,
+ 0.4379,-0.250054,0.863549,3.053144,-0.609681,0.326931,
+ -0.046579,0.627301,0.777383,3.342159,-0.384674,0.201349,
+ -0.047374,0.758242,0.65025,3.286426,-0.300744,0.276331,
+ 0.4379,-0.250054,0.863549,3.053144,-0.609681,0.326931,
+ -0.046579,0.627301,0.777383,3.342159,-0.384674,0.201349,
+ 0.4379,-0.250054,0.863549,3.053144,-0.609681,0.326931,
+ 0.6483,-0.171023,0.741928,3.107533,-0.691019,0.264602,
+ -0.861251,0.383698,-0.333202,3.247406,2.073333,0,
+ 0.662294,0.443714,0.603726,3.233975,2.059193,0.072431,
+ 0.742962,-0.255405,0.618688,3.4583,2.151656,0.102662,
+ -0.861251,0.383698,-0.333202,3.247406,2.073333,0,
+ 0.742962,-0.255405,0.618688,3.4583,2.151656,0.102662,
+ 0.694153,-0.467999,0.546926,3.454971,2.169877,0,
+ 0.431966,-0.771434,0.46722,3.486028,-0.141683,0,
+ 0.146937,0.551946,0.820832,3.514981,-0.121886,0.187589,
+ -0.046579,0.627301,0.777383,3.342159,-0.384674,0.201349,
+ 0.431966,-0.771434,0.46722,3.486028,-0.141683,0,
+ -0.046579,0.627301,0.777383,3.342159,-0.384674,0.201349,
+ -0.560204,0.828355,-0.00034,3.33521,-0.375755,0,
+ 0.397823,0.403779,0.823832,3.009101,1.971604,0.03422,
+ 0.889638,-0.392482,0.233458,2.985371,1.982663,0,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.449887,0.239005,0.860511,3.036361,1.913989,0.169838,
+ 0.397823,0.403779,0.823832,3.009101,1.971604,0.03422,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.449887,0.239005,0.860511,3.036361,1.913989,0.169838,
+ -0.926486,-0.356041,0.121897,2.723503,1.898839,0,
+ 0.12555,0.440005,0.889176,2.715712,1.828219,0.167709,
+ 0.525142,-0.062799,0.848695,3.058366,1.773346,0.297337,
+ 0.449887,0.239005,0.860511,3.036361,1.913989,0.169838,
+ 0.12555,0.440005,0.889176,2.715712,1.828219,0.167709,
+ 0.525142,-0.062799,0.848695,3.058366,1.773346,0.297337,
+ 0.12555,0.440005,0.889176,2.715712,1.828219,0.167709,
+ 0.10998,0.376752,0.919762,2.738132,1.687333,0.295046,
+ 0.561573,-0.148323,0.814024,3.086666,1.632991,0.338863,
+ 0.525142,-0.062799,0.848695,3.058366,1.773346,0.297337,
+ 0.10998,0.376752,0.919762,2.738132,1.687333,0.295046,
+ 0.561573,-0.148323,0.814024,3.086666,1.632991,0.338863,
+ 0.10998,0.376752,0.919762,2.738132,1.687333,0.295046,
+ 0.097864,0.250653,0.963118,2.77568,1.53871,0.352829,
+ 0.513731,-0.239493,0.823847,3.115383,1.49239,0.380228,
+ 0.561573,-0.148323,0.814024,3.086666,1.632991,0.338863,
+ 0.097864,0.250653,0.963118,2.77568,1.53871,0.352829,
+ 0.513731,-0.239493,0.823847,3.115383,1.49239,0.380228,
+ 0.097864,0.250653,0.963118,2.77568,1.53871,0.352829,
+ 0.12742,0.021045,0.991626,2.815366,1.377583,0.413399,
+ 0.506924,-0.406124,0.760323,3.163181,1.209972,0.462438,
+ 0.513731,-0.239493,0.823847,3.115383,1.49239,0.380228,
+ 0.12742,0.021045,0.991626,2.815366,1.377583,0.413399,
+ 0.506924,-0.406124,0.760323,3.163181,1.209972,0.462438,
+ 0.12742,0.021045,0.991626,2.815366,1.377583,0.413399,
+ 0.206882,-0.117024,0.971342,2.854291,1.093951,0.49465,
+ 0.552633,-0.484765,0.677938,3.189664,0.907503,0.500122,
+ 0.506924,-0.406124,0.760323,3.163181,1.209972,0.462438,
+ 0.206882,-0.117024,0.971342,2.854291,1.093951,0.49465,
+ 0.552633,-0.484765,0.677938,3.189664,0.907503,0.500122,
+ 0.206882,-0.117024,0.971342,2.854291,1.093951,0.49465,
+ 0.218538,-0.213954,0.952084,2.948387,0.783357,0.515058,
+ 0.696414,-0.392791,0.600602,3.280681,0.510802,0.499434,
+ 0.552633,-0.484765,0.677938,3.189664,0.907503,0.500122,
+ 0.218538,-0.213954,0.952084,2.948387,0.783357,0.515058,
+ 0.696414,-0.392791,0.600602,3.280681,0.510802,0.499434,
+ 0.218538,-0.213954,0.952084,2.948387,0.783357,0.515058,
+ 0.304965,-0.136677,0.942505,3.06109,0.397226,0.574193,
+ 0.026499,0.942993,0.331757,3.321825,0.26669,0.46575,
+ 0.696414,-0.392791,0.600602,3.280681,0.510802,0.499434,
+ 0.304965,-0.136677,0.942505,3.06109,0.397226,0.574193,
+ 0.026499,0.942993,0.331757,3.321825,0.26669,0.46575,
+ 0.304965,-0.136677,0.942505,3.06109,0.397226,0.574193,
+ -0.061264,0.921927,0.382487,3.136321,0.171237,0.539896,
+ 0.019336,0.837694,0.545798,3.36004,0.165487,0.412685,
+ 0.026499,0.942993,0.331757,3.321825,0.26669,0.46575,
+ -0.061264,0.921927,0.382487,3.136321,0.171237,0.539896,
+ 0.019336,0.837694,0.545798,3.36004,0.165487,0.412685,
+ -0.061264,0.921927,0.382487,3.136321,0.171237,0.539896,
+ -0.070642,0.834207,0.546908,3.16616,0.02131,0.457261,
+ 0.05298,0.780732,0.622615,3.378799,0.073736,0.355362,
+ 0.019336,0.837694,0.545798,3.36004,0.165487,0.412685,
+ -0.070642,0.834207,0.546908,3.16616,0.02131,0.457261,
+ 0.05298,0.780732,0.622615,3.378799,0.073736,0.355362,
+ -0.070642,0.834207,0.546908,3.16616,0.02131,0.457261,
+ -0.055544,0.828008,0.557959,3.199571,-0.153739,0.38015,
+ 0.115383,0.694945,0.709746,3.43895,-0.08258,0.257015,
+ 0.05298,0.780732,0.622615,3.378799,0.073736,0.355362,
+ -0.055544,0.828008,0.557959,3.199571,-0.153739,0.38015,
+ 0.115383,0.694945,0.709746,3.43895,-0.08258,0.257015,
+ -0.055544,0.828008,0.557959,3.199571,-0.153739,0.38015,
+ -0.047374,0.758242,0.65025,3.286426,-0.300744,0.276331,
+ 0.146937,0.551946,0.820832,3.514981,-0.121886,0.187589,
+ 0.115383,0.694945,0.709746,3.43895,-0.08258,0.257015,
+ -0.047374,0.758242,0.65025,3.286426,-0.300744,0.276331,
+ 0.146937,0.551946,0.820832,3.514981,-0.121886,0.187589,
+ -0.047374,0.758242,0.65025,3.286426,-0.300744,0.276331,
+ -0.046579,0.627301,0.777383,3.342159,-0.384674,0.201349,
+ 0.387987,0.466053,0.795148,3.737014,0.181837,0.176819,
+ -0.910859,-0.100368,-0.400327,3.731689,0.186391,0,
+ 0.338485,-0.103202,-0.935295,3.929251,0.411689,0,
+ 0.387987,0.466053,0.795148,3.737014,0.181837,0.176819,
+ 0.338485,-0.103202,-0.935295,3.929251,0.411689,0,
+ 0.614456,0.489786,0.618509,3.955635,0.432417,0.197586,
+ 0.387394,0.516219,0.763835,3.700363,0.265794,0.240762,
+ 0.387987,0.466053,0.795148,3.737014,0.181837,0.176819,
+ 0.614456,0.489786,0.618509,3.955635,0.432417,0.197586,
+ 0.387394,0.516219,0.763835,3.700363,0.265794,0.240762,
+ 0.614456,0.489786,0.618509,3.955635,0.432417,0.197586,
+ 0.718673,-0.290446,0.631784,3.889626,0.475277,0.247365,
+ 0.328244,0.603535,0.726637,3.67471,0.338839,0.30784,
+ 0.387394,0.516219,0.763835,3.700363,0.265794,0.240762,
+ 0.718673,-0.290446,0.631784,3.889626,0.475277,0.247365,
+ 0.328244,0.603535,0.726637,3.67471,0.338839,0.30784,
+ 0.718673,-0.290446,0.631784,3.889626,0.475277,0.247365,
+ 0.815771,-0.424495,0.392838,3.861841,0.560638,0.311961,
+ 0.187432,0.691784,0.697355,3.641195,0.407454,0.362198,
+ 0.328244,0.603535,0.726637,3.67471,0.338839,0.30784,
+ 0.815771,-0.424495,0.392838,3.861841,0.560638,0.311961,
+ 0.065855,0.814333,0.576649,3.61965,0.472046,0.391742,
+ 0.187432,0.691784,0.697355,3.641195,0.407454,0.362198,
+ 0.815771,-0.424495,0.392838,3.861841,0.560638,0.311961,
+ 0.065855,0.814333,0.576649,3.61965,0.472046,0.391742,
+ 0.815771,-0.424495,0.392838,3.861841,0.560638,0.311961,
+ 0.900366,-0.205985,0.38329,3.849352,0.664451,0.387198,
+ 0.628361,-0.426126,0.65083,3.559394,0.706516,0.452535,
+ 0.065855,0.814333,0.576649,3.61965,0.472046,0.391742,
+ 0.900366,-0.205985,0.38329,3.849352,0.664451,0.387198,
+ 0.628361,-0.426126,0.65083,3.559394,0.706516,0.452535,
+ 0.900366,-0.205985,0.38329,3.849352,0.664451,0.387198,
+ 0.906617,-0.14387,0.39667,3.823137,0.853054,0.461519,
+ 0.697438,-0.478568,0.533435,3.528445,1.060127,0.489443,
+ 0.628361,-0.426126,0.65083,3.559394,0.706516,0.452535,
+ 0.906617,-0.14387,0.39667,3.823137,0.853054,0.461519,
+ 0.697438,-0.478568,0.533435,3.528445,1.060127,0.489443,
+ 0.906617,-0.14387,0.39667,3.823137,0.853054,0.461519,
+ 0.908163,-0.140074,0.394486,3.747724,1.184933,0.518662,
+ 0.772313,-0.244122,0.586461,3.47341,1.366149,0.454658,
+ 0.697438,-0.478568,0.533435,3.528445,1.060127,0.489443,
+ 0.908163,-0.140074,0.394486,3.747724,1.184933,0.518662,
+ 0.772313,-0.244122,0.586461,3.47341,1.366149,0.454658,
+ 0.908163,-0.140074,0.394486,3.747724,1.184933,0.518662,
+ 0.907314,0.09913,0.4086,3.650974,1.46374,0.478617,
+ 0.805898,-0.146097,0.573745,3.377233,1.5878,0.400781,
+ 0.772313,-0.244122,0.586461,3.47341,1.366149,0.454658,
+ 0.907314,0.09913,0.4086,3.650974,1.46374,0.478617,
+ 0.805898,-0.146097,0.573745,3.377233,1.5878,0.400781,
+ 0.907314,0.09913,0.4086,3.650974,1.46374,0.478617,
+ 0.85208,0.278905,0.442914,3.590526,1.70109,0.411994,
+ 0.795625,-0.129968,0.591684,3.337545,1.748927,0.34021,
+ 0.805898,-0.146097,0.573745,3.377233,1.5878,0.400781,
+ 0.85208,0.278905,0.442914,3.590526,1.70109,0.411994,
+ 0.795625,-0.129968,0.591684,3.337545,1.748927,0.34021,
+ 0.85208,0.278905,0.442914,3.590526,1.70109,0.411994,
+ 0.759315,0.386803,0.523282,3.541188,1.849183,0.386366,
+ 0.748939,0.152982,0.644738,3.276333,1.863773,0.294266,
+ 0.795625,-0.129968,0.591684,3.337545,1.748927,0.34021,
+ 0.759315,0.386803,0.523282,3.541188,1.849183,0.386366,
+ 0.748939,0.152982,0.644738,3.276333,1.863773,0.294266,
+ 0.759315,0.386803,0.523282,3.541188,1.849183,0.386366,
+ 0.636794,0.461927,0.617346,3.479418,1.97825,0.317478,
+ 0.693381,0.351142,0.629224,3.252224,2.026347,0.148215,
+ 0.748939,0.152982,0.644738,3.276333,1.863773,0.294266,
+ 0.636794,0.461927,0.617346,3.479418,1.97825,0.317478,
+ 0.693381,0.351142,0.629224,3.252224,2.026347,0.148215,
+ 0.636794,0.461927,0.617346,3.479418,1.97825,0.317478,
+ 0.722145,-0.312679,0.617041,3.460196,2.103494,0.180368,
+ 0.662294,0.443714,0.603726,3.233975,2.059193,0.072431,
+ 0.693381,0.351142,0.629224,3.252224,2.026347,0.148215,
+ 0.722145,-0.312679,0.617041,3.460196,2.103494,0.180368,
+ 0.662294,0.443714,0.603726,3.233975,2.059193,0.072431,
+ 0.722145,-0.312679,0.617041,3.460196,2.103494,0.180368,
+ 0.742962,-0.255405,0.618688,3.4583,2.151656,0.102662,
+ 0.720876,-0.356662,0.594247,2.953029,-0.12769,0.520499,
+ 0.100131,0.509748,0.854477,2.835437,-0.231101,0.57789,
+ 0.709718,-0.453837,0.538824,2.986408,-0.413503,0.428964,
+ -0.096144,-0.182414,0.97851,2.811504,0.469098,0.657443,
+ -0.012663,0.029084,0.999497,2.747937,0.712253,0.615674,
+ 0.324748,-0.466051,0.823004,2.679445,0.687427,0.720573,
+ -0.096144,-0.182414,0.97851,2.811504,0.469098,0.657443,
+ 0.324748,-0.466051,0.823004,2.679445,0.687427,0.720573,
+ 0.727708,-0.453484,0.514581,2.753156,0.400829,0.713141,
+ -0.200187,-0.124247,0.971848,2.898733,0.271916,0.651298,
+ -0.096144,-0.182414,0.97851,2.811504,0.469098,0.657443,
+ 0.727708,-0.453484,0.514581,2.753156,0.400829,0.713141,
+ -0.200187,-0.124247,0.971848,2.898733,0.271916,0.651298,
+ 0.727708,-0.453484,0.514581,2.753156,0.400829,0.713141,
+ 0.287759,-0.574148,0.766517,2.790681,0.219187,0.718263,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ -0.200187,-0.124247,0.971848,2.898733,0.271916,0.651298,
+ 0.287759,-0.574148,0.766517,2.790681,0.219187,0.718263,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ 0.287759,-0.574148,0.766517,2.790681,0.219187,0.718263,
+ 0.677632,-0.514013,0.525933,2.790657,0.044324,0.717488,
+ 0.290845,-0.568581,0.769497,2.743995,-0.129852,0.718277,
+ 0.478274,-0.500384,0.721713,2.736198,-0.346225,0.659345,
+ 0.100131,0.509748,0.854477,2.835437,-0.231101,0.57789,
+ 0.100131,0.509748,0.854477,2.835437,-0.231101,0.57789,
+ 0.720876,-0.356662,0.594247,2.953029,-0.12769,0.520499,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ 0.100131,0.509748,0.854477,2.835437,-0.231101,0.57789,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ 0.290845,-0.568581,0.769497,2.743995,-0.129852,0.718277,
+ 0.023112,-0.187685,0.981957,2.91987,0.084875,0.64246,
+ 0.677632,-0.514013,0.525933,2.790657,0.044324,0.717488,
+ 0.290845,-0.568581,0.769497,2.743995,-0.129852,0.718277,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ 0.437631,-0.408484,0.801012,2.482917,0.997637,0.702425,
+ 0.539192,-0.226204,0.811236,2.514162,0.988713,0.674527,
+ 0.876436,-0.293555,0.381688,2.543372,-0.548031,0.937182,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ 0.518786,-0.204527,0.830078,2.5392,-0.727778,0.750475,
+ 0.876436,-0.293555,0.381688,2.543372,-0.548031,0.937182,
+ 0.518786,-0.204527,0.830078,2.5392,-0.727778,0.750475,
+ 0.58512,-0.108234,0.803692,2.618307,-0.549092,0.805491,
+ 0.918784,-0.122699,0.375208,2.594499,-0.422948,0.981263,
+ 0.876436,-0.293555,0.381688,2.543372,-0.548031,0.937182,
+ 0.58512,-0.108234,0.803692,2.618307,-0.549092,0.805491,
+ 0.918784,-0.122699,0.375208,2.594499,-0.422948,0.981263,
+ 0.58512,-0.108234,0.803692,2.618307,-0.549092,0.805491,
+ 0.648132,-0.027411,0.761034,2.690576,-0.368057,0.819343,
+ 0.883063,-0.251635,0.396079,2.60743,-0.208248,0.974218,
+ 0.918784,-0.122699,0.375208,2.594499,-0.422948,0.981263,
+ 0.648132,-0.027411,0.761034,2.690576,-0.368057,0.819343,
+ 0.883063,-0.251635,0.396079,2.60743,-0.208248,0.974218,
+ 0.648132,-0.027411,0.761034,2.690576,-0.368057,0.819343,
+ 0.594643,-0.107364,0.796789,2.702577,-0.197406,0.795611,
+ 0.690473,-0.61586,0.379425,2.649413,0.031535,1.024796,
+ 0.883063,-0.251635,0.396079,2.60743,-0.208248,0.974218,
+ 0.594643,-0.107364,0.796789,2.702577,-0.197406,0.795611,
+ 0.690473,-0.61586,0.379425,2.649413,0.031535,1.024796,
+ 0.594643,-0.107364,0.796789,2.702577,-0.197406,0.795611,
+ 0.655995,-0.105886,0.747301,2.734183,0.038769,0.86581,
+ 0.276661,-0.626708,0.728489,2.668936,0.206182,1.014371,
+ 0.690473,-0.61586,0.379425,2.649413,0.031535,1.024796,
+ 0.655995,-0.105886,0.747301,2.734183,0.038769,0.86581,
+ 0.276661,-0.626708,0.728489,2.668936,0.206182,1.014371,
+ 0.655995,-0.105886,0.747301,2.734183,0.038769,0.86581,
+ 0.675576,-0.202498,0.708937,2.731512,0.219003,0.891585,
+ 0.112446,-0.618661,0.77757,2.616001,0.447717,0.960748,
+ 0.276661,-0.626708,0.728489,2.668936,0.206182,1.014371,
+ 0.675576,-0.202498,0.708937,2.731512,0.219003,0.891585,
+ 0.112446,-0.618661,0.77757,2.616001,0.447717,0.960748,
+ 0.675576,-0.202498,0.708937,2.731512,0.219003,0.891585,
+ 0.663699,-0.195183,0.722085,2.70696,0.393597,0.849582,
+ 0.189478,-0.558571,0.807525,2.5704,0.738683,0.830405,
+ 0.112446,-0.618661,0.77757,2.616001,0.447717,0.960748,
+ 0.663699,-0.195183,0.722085,2.70696,0.393597,0.849582,
+ 0.189478,-0.558571,0.807525,2.5704,0.738683,0.830405,
+ 0.663699,-0.195183,0.722085,2.70696,0.393597,0.849582,
+ 0.543412,-0.359347,0.758665,2.604217,0.728827,0.769671,
+ 0.437631,-0.408484,0.801012,2.482917,0.997637,0.702425,
+ 0.189478,-0.558571,0.807525,2.5704,0.738683,0.830405,
+ 0.543412,-0.359347,0.758665,2.604217,0.728827,0.769671,
+ 0.437631,-0.408484,0.801012,2.482917,0.997637,0.702425,
+ 0.543412,-0.359347,0.758665,2.604217,0.728827,0.769671,
+ 0.539192,-0.226204,0.811236,2.514162,0.988713,0.674527,
+ 0.245892,-0.489895,0.836385,2.688131,-0.517509,0.672975,
+ 0.478274,-0.500384,0.721713,2.736198,-0.346225,0.659345,
+ 0.648132,-0.027411,0.761034,2.690576,-0.368057,0.819343,
+ 0.245892,-0.489895,0.836385,2.688131,-0.517509,0.672975,
+ 0.648132,-0.027411,0.761034,2.690576,-0.368057,0.819343,
+ 0.58512,-0.108234,0.803692,2.618307,-0.549092,0.805491,
+ 0.727678,-0.414895,0.546211,2.542439,0.999928,0.648592,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ 0.539192,-0.226204,0.811236,2.514162,0.988713,0.674527,
+ 0.324748,-0.466051,0.823004,2.679445,0.687427,0.720573,
+ 0.727678,-0.414895,0.546211,2.542439,0.999928,0.648592,
+ 0.539192,-0.226204,0.811236,2.514162,0.988713,0.674527,
+ 0.324748,-0.466051,0.823004,2.679445,0.687427,0.720573,
+ 0.539192,-0.226204,0.811236,2.514162,0.988713,0.674527,
+ 0.543412,-0.359347,0.758665,2.604217,0.728827,0.769671,
+ 0.727708,-0.453484,0.514581,2.753156,0.400829,0.713141,
+ 0.324748,-0.466051,0.823004,2.679445,0.687427,0.720573,
+ 0.543412,-0.359347,0.758665,2.604217,0.728827,0.769671,
+ 0.727708,-0.453484,0.514581,2.753156,0.400829,0.713141,
+ 0.543412,-0.359347,0.758665,2.604217,0.728827,0.769671,
+ 0.663699,-0.195183,0.722085,2.70696,0.393597,0.849582,
+ 0.287759,-0.574148,0.766517,2.790681,0.219187,0.718263,
+ 0.727708,-0.453484,0.514581,2.753156,0.400829,0.713141,
+ 0.663699,-0.195183,0.722085,2.70696,0.393597,0.849582,
+ 0.287759,-0.574148,0.766517,2.790681,0.219187,0.718263,
+ 0.663699,-0.195183,0.722085,2.70696,0.393597,0.849582,
+ 0.675576,-0.202498,0.708937,2.731512,0.219003,0.891585,
+ 0.677632,-0.514013,0.525933,2.790657,0.044324,0.717488,
+ 0.287759,-0.574148,0.766517,2.790681,0.219187,0.718263,
+ 0.675576,-0.202498,0.708937,2.731512,0.219003,0.891585,
+ 0.677632,-0.514013,0.525933,2.790657,0.044324,0.717488,
+ 0.675576,-0.202498,0.708937,2.731512,0.219003,0.891585,
+ 0.655995,-0.105886,0.747301,2.734183,0.038769,0.86581,
+ 0.290845,-0.568581,0.769497,2.743995,-0.129852,0.718277,
+ 0.677632,-0.514013,0.525933,2.790657,0.044324,0.717488,
+ 0.655995,-0.105886,0.747301,2.734183,0.038769,0.86581,
+ 0.290845,-0.568581,0.769497,2.743995,-0.129852,0.718277,
+ 0.655995,-0.105886,0.747301,2.734183,0.038769,0.86581,
+ 0.594643,-0.107364,0.796789,2.702577,-0.197406,0.795611,
+ 0.478274,-0.500384,0.721713,2.736198,-0.346225,0.659345,
+ 0.290845,-0.568581,0.769497,2.743995,-0.129852,0.718277,
+ 0.594643,-0.107364,0.796789,2.702577,-0.197406,0.795611,
+ 0.478274,-0.500384,0.721713,2.736198,-0.346225,0.659345,
+ 0.594643,-0.107364,0.796789,2.702577,-0.197406,0.795611,
+ 0.648132,-0.027411,0.761034,2.690576,-0.368057,0.819343,
+ -0.012663,0.029084,0.999497,2.747937,0.712253,0.615674,
+ -0.031021,0.098798,0.994624,2.637461,1.01726,0.581611,
+ 0.727678,-0.414895,0.546211,2.542439,0.999928,0.648592,
+ -0.012663,0.029084,0.999497,2.747937,0.712253,0.615674,
+ 0.727678,-0.414895,0.546211,2.542439,0.999928,0.648592,
+ 0.324748,-0.466051,0.823004,2.679445,0.687427,0.720573,
+ -0.05128,0.509983,0.858655,2.361089,1.76666,0.202595,
+ 0.536218,-0.84408,0.000006,2.339597,1.807702,0,
+ 0.756976,-0.653442,0,2.128139,1.788397,0,
+ -0.05128,0.509983,0.858655,2.361089,1.76666,0.202595,
+ 0.756976,-0.653442,0,2.128139,1.788397,0,
+ 0.70745,-0.193334,0.679806,2.13239,1.755821,0.180271,
+ -0.02226,0.394285,0.918719,2.406969,1.645328,0.341479,
+ -0.05128,0.509983,0.858655,2.361089,1.76666,0.202595,
+ 0.70745,-0.193334,0.679806,2.13239,1.755821,0.180271,
+ -0.02226,0.394285,0.918719,2.406969,1.645328,0.341479,
+ 0.70745,-0.193334,0.679806,2.13239,1.755821,0.180271,
+ 0.71475,-0.118625,0.689247,2.183003,1.65407,0.341767,
+ -0.026262,0.311275,0.949957,2.519027,1.485931,0.422962,
+ -0.02226,0.394285,0.918719,2.406969,1.645328,0.341479,
+ 0.71475,-0.118625,0.689247,2.183003,1.65407,0.341767,
+ -0.026262,0.311275,0.949957,2.519027,1.485931,0.422962,
+ 0.71475,-0.118625,0.689247,2.183003,1.65407,0.341767,
+ 0.608407,-0.244593,0.754993,2.301359,1.397721,0.546015,
+ -0.039079,0.203923,0.978207,2.553871,1.284278,0.512335,
+ -0.026262,0.311275,0.949957,2.519027,1.485931,0.422962,
+ 0.608407,-0.244593,0.754993,2.301359,1.397721,0.546015,
+ -0.039079,0.203923,0.978207,2.553871,1.284278,0.512335,
+ 0.608407,-0.244593,0.754993,2.301359,1.397721,0.546015,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ -0.031021,0.098798,0.994624,2.637461,1.01726,0.581611,
+ -0.039079,0.203923,0.978207,2.553871,1.284278,0.512335,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ -0.031021,0.098798,0.994624,2.637461,1.01726,0.581611,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ 0.727678,-0.414895,0.546211,2.542439,0.999928,0.648592,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ -0.06371,0.842533,0.534864,2.346081,-0.74535,1.013296,
+ -0.069142,0.724976,0.685295,2.245624,-0.864372,0.995778,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ -0.069142,0.724976,0.685295,2.245624,-0.864372,0.995778,
+ 0.09853,0.626571,0.773111,2.292449,-0.871852,0.8824,
+ 0.71475,-0.118625,0.689247,2.183003,1.65407,0.341767,
+ 0.70745,-0.193334,0.679806,2.13239,1.755821,0.180271,
+ 0.411872,0.04507,0.910127,2.069379,1.727818,0.212746,
+ 0.71475,-0.118625,0.689247,2.183003,1.65407,0.341767,
+ 0.411872,0.04507,0.910127,2.069379,1.727818,0.212746,
+ 0.552828,-0.750794,0.36151,2.096552,1.678482,0.32681,
+ 0.608407,-0.244593,0.754993,2.301359,1.397721,0.546015,
+ 0.71475,-0.118625,0.689247,2.183003,1.65407,0.341767,
+ 0.552828,-0.750794,0.36151,2.096552,1.678482,0.32681,
+ 0.608407,-0.244593,0.754993,2.301359,1.397721,0.546015,
+ 0.552828,-0.750794,0.36151,2.096552,1.678482,0.32681,
+ 0.226413,-0.89822,0.376747,2.189848,1.468992,0.517501,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ 0.608407,-0.244593,0.754993,2.301359,1.397721,0.546015,
+ 0.226413,-0.89822,0.376747,2.189848,1.468992,0.517501,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ 0.226413,-0.89822,0.376747,2.189848,1.468992,0.517501,
+ 0.016767,-0.927537,0.373356,2.266003,1.273253,0.663332,
+ 0.437631,-0.408484,0.801012,2.482917,0.997637,0.702425,
+ 0.370396,-0.36596,0.853745,2.396355,1.242239,0.597722,
+ 0.016767,-0.927537,0.373356,2.266003,1.273253,0.663332,
+ 0.437631,-0.408484,0.801012,2.482917,0.997637,0.702425,
+ 0.016767,-0.927537,0.373356,2.266003,1.273253,0.663332,
+ 0.08136,-0.929085,0.360806,2.347317,1.066114,0.758763,
+ 0.189478,-0.558571,0.807525,2.5704,0.738683,0.830405,
+ 0.437631,-0.408484,0.801012,2.482917,0.997637,0.702425,
+ 0.08136,-0.929085,0.360806,2.347317,1.066114,0.758763,
+ 0.189478,-0.558571,0.807525,2.5704,0.738683,0.830405,
+ 0.08136,-0.929085,0.360806,2.347317,1.066114,0.758763,
+ 0.295093,-0.940225,0.16999,2.399389,0.782091,0.915279,
+ 0.112446,-0.618661,0.77757,2.616001,0.447717,0.960748,
+ 0.189478,-0.558571,0.807525,2.5704,0.738683,0.830405,
+ 0.295093,-0.940225,0.16999,2.399389,0.782091,0.915279,
+ 0.112446,-0.618661,0.77757,2.616001,0.447717,0.960748,
+ 0.295093,-0.940225,0.16999,2.399389,0.782091,0.915279,
+ 0.676544,-0.141883,0.722604,2.448969,0.529858,1.037335,
+ 0.276661,-0.626708,0.728489,2.668936,0.206182,1.014371,
+ 0.112446,-0.618661,0.77757,2.616001,0.447717,0.960748,
+ 0.676544,-0.141883,0.722604,2.448969,0.529858,1.037335,
+ 0.276661,-0.626708,0.728489,2.668936,0.206182,1.014371,
+ 0.676544,-0.141883,0.722604,2.448969,0.529858,1.037335,
+ 0.667276,-0.159228,0.727591,2.495354,0.250522,1.132081,
+ 0.690473,-0.61586,0.379425,2.649413,0.031535,1.024796,
+ 0.276661,-0.626708,0.728489,2.668936,0.206182,1.014371,
+ 0.667276,-0.159228,0.727591,2.495354,0.250522,1.132081,
+ 0.690473,-0.61586,0.379425,2.649413,0.031535,1.024796,
+ 0.667276,-0.159228,0.727591,2.495354,0.250522,1.132081,
+ 0.659349,-0.248914,0.709437,2.50049,-0.035029,1.170179,
+ 0.883063,-0.251635,0.396079,2.60743,-0.208248,0.974218,
+ 0.690473,-0.61586,0.379425,2.649413,0.031535,1.024796,
+ 0.659349,-0.248914,0.709437,2.50049,-0.035029,1.170179,
+ 0.883063,-0.251635,0.396079,2.60743,-0.208248,0.974218,
+ 0.659349,-0.248914,0.709437,2.50049,-0.035029,1.170179,
+ 0.631747,-0.24686,0.734817,2.452588,-0.244072,1.138797,
+ 0.918784,-0.122699,0.375208,2.594499,-0.422948,0.981263,
+ 0.883063,-0.251635,0.396079,2.60743,-0.208248,0.974218,
+ 0.631747,-0.24686,0.734817,2.452588,-0.244072,1.138797,
+ 0.918784,-0.122699,0.375208,2.594499,-0.422948,0.981263,
+ 0.631747,-0.24686,0.734817,2.452588,-0.244072,1.138797,
+ 0.623235,-0.257987,0.738255,2.439827,-0.395385,1.131324,
+ 0.876436,-0.293555,0.381688,2.543372,-0.548031,0.937182,
+ 0.918784,-0.122699,0.375208,2.594499,-0.422948,0.981263,
+ 0.623235,-0.257987,0.738255,2.439827,-0.395385,1.131324,
+ 0.876436,-0.293555,0.381688,2.543372,-0.548031,0.937182,
+ 0.623235,-0.257987,0.738255,2.439827,-0.395385,1.131324,
+ 0.791391,-0.43807,0.426373,2.384638,-0.591919,1.043058,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ 0.876436,-0.293555,0.381688,2.543372,-0.548031,0.937182,
+ 0.791391,-0.43807,0.426373,2.384638,-0.591919,1.043058,
+ 0.728904,-0.519577,0.445802,2.410367,-0.777999,0.841105,
+ 0.791391,-0.43807,0.426373,2.384638,-0.591919,1.043058,
+ -0.06371,0.842533,0.534864,2.346081,-0.74535,1.013296,
+ -0.069142,0.724976,0.685295,2.245624,-0.864372,0.995778,
+ -0.887036,-0.210048,-0.411154,2.222082,-0.957342,1.014137,
+ 0.080812,0.697931,0.711591,2.229345,-0.992723,0.862826,
+ -0.069142,0.724976,0.685295,2.245624,-0.864372,0.995778,
+ 0.080812,0.697931,0.711591,2.229345,-0.992723,0.862826,
+ 0.09853,0.626571,0.773111,2.292449,-0.871852,0.8824,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ -0.069142,0.724976,0.685295,2.245624,-0.864372,0.995778,
+ -0.06371,0.842533,0.534864,2.346081,-0.74535,1.013296,
+ 0.23972,-0.400363,0.884445,2.108912,-0.357128,1.259691,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ -0.06371,0.842533,0.534864,2.346081,-0.74535,1.013296,
+ 0.23972,-0.400363,0.884445,2.108912,-0.357128,1.259691,
+ -0.06371,0.842533,0.534864,2.346081,-0.74535,1.013296,
+ 0.791391,-0.43807,0.426373,2.384638,-0.591919,1.043058,
+ -0.720176,-0.693792,0,1.794465,1.787719,0,
+ -0.057955,0.638634,0.767325,1.807583,1.756546,0.177627,
+ 0.411872,0.04507,0.910127,2.069379,1.727818,0.212746,
+ -0.720176,-0.693792,0,1.794465,1.787719,0,
+ 0.411872,0.04507,0.910127,2.069379,1.727818,0.212746,
+ -0.385788,0.922588,0,2.042206,1.777154,0,
+ 0.25339,-0.287519,0.923648,2.136269,-0.187666,1.278057,
+ 0.23972,-0.400363,0.884445,2.108912,-0.357128,1.259691,
+ 0.791391,-0.43807,0.426373,2.384638,-0.591919,1.043058,
+ 0.25339,-0.287519,0.923648,2.136269,-0.187666,1.278057,
+ 0.791391,-0.43807,0.426373,2.384638,-0.591919,1.043058,
+ 0.623235,-0.257987,0.738255,2.439827,-0.395385,1.131324,
+ 0.25339,-0.287519,0.923648,2.136269,-0.187666,1.278057,
+ 0.623235,-0.257987,0.738255,2.439827,-0.395385,1.131324,
+ 0.631747,-0.24686,0.734817,2.452588,-0.244072,1.138797,
+ 0.187438,-0.340915,0.921219,2.14179,-0.055306,1.295565,
+ 0.25339,-0.287519,0.923648,2.136269,-0.187666,1.278057,
+ 0.631747,-0.24686,0.734817,2.452588,-0.244072,1.138797,
+ 0.187438,-0.340915,0.921219,2.14179,-0.055306,1.295565,
+ 0.631747,-0.24686,0.734817,2.452588,-0.244072,1.138797,
+ 0.659349,-0.248914,0.709437,2.50049,-0.035029,1.170179,
+ 0.114032,-0.218132,0.969234,2.0817,0.283249,1.259461,
+ 0.187438,-0.340915,0.921219,2.14179,-0.055306,1.295565,
+ 0.659349,-0.248914,0.709437,2.50049,-0.035029,1.170179,
+ 0.114032,-0.218132,0.969234,2.0817,0.283249,1.259461,
+ 0.659349,-0.248914,0.709437,2.50049,-0.035029,1.170179,
+ 0.667276,-0.159228,0.727591,2.495354,0.250522,1.132081,
+ 0.10833,0.05569,0.992554,2.023441,0.529338,1.144399,
+ 0.114032,-0.218132,0.969234,2.0817,0.283249,1.259461,
+ 0.667276,-0.159228,0.727591,2.495354,0.250522,1.132081,
+ 0.10833,0.05569,0.992554,2.023441,0.529338,1.144399,
+ 0.667276,-0.159228,0.727591,2.495354,0.250522,1.132081,
+ 0.676544,-0.141883,0.722604,2.448969,0.529858,1.037335,
+ 0.107989,0.168108,0.979836,1.975941,0.827957,1.018423,
+ 0.10833,0.05569,0.992554,2.023441,0.529338,1.144399,
+ 0.676544,-0.141883,0.722604,2.448969,0.529858,1.037335,
+ 0.107989,0.168108,0.979836,1.975941,0.827957,1.018423,
+ 0.676544,-0.141883,0.722604,2.448969,0.529858,1.037335,
+ 0.295093,-0.940225,0.16999,2.399389,0.782091,0.915279,
+ 0.088722,0.251367,0.963817,1.958254,1.130271,0.861813,
+ 0.107989,0.168108,0.979836,1.975941,0.827957,1.018423,
+ 0.295093,-0.940225,0.16999,2.399389,0.782091,0.915279,
+ 0.088722,0.251367,0.963817,1.958254,1.130271,0.861813,
+ 0.295093,-0.940225,0.16999,2.399389,0.782091,0.915279,
+ 0.08136,-0.929085,0.360806,2.347317,1.066114,0.758763,
+ 0.060533,0.377837,0.923891,1.859443,1.450393,0.632222,
+ 0.088722,0.251367,0.963817,1.958254,1.130271,0.861813,
+ 0.08136,-0.929085,0.360806,2.347317,1.066114,0.758763,
+ 0.060533,0.377837,0.923891,1.859443,1.450393,0.632222,
+ 0.08136,-0.929085,0.360806,2.347317,1.066114,0.758763,
+ 0.016767,-0.927537,0.373356,2.266003,1.273253,0.663332,
+ 0.016737,0.497476,0.867316,1.821946,1.618209,0.403751,
+ 0.060533,0.377837,0.923891,1.859443,1.450393,0.632222,
+ 0.016767,-0.927537,0.373356,2.266003,1.273253,0.663332,
+ 0.016737,0.497476,0.867316,1.821946,1.618209,0.403751,
+ 0.016767,-0.927537,0.373356,2.266003,1.273253,0.663332,
+ 0.226413,-0.89822,0.376747,2.189848,1.468992,0.517501,
+ -0.024013,0.58573,0.810151,1.798719,1.714447,0.259352,
+ 0.016737,0.497476,0.867316,1.821946,1.618209,0.403751,
+ 0.226413,-0.89822,0.376747,2.189848,1.468992,0.517501,
+ -0.024013,0.58573,0.810151,1.798719,1.714447,0.259352,
+ 0.226413,-0.89822,0.376747,2.189848,1.468992,0.517501,
+ 0.552828,-0.750794,0.36151,2.096552,1.678482,0.32681,
+ -0.057955,0.638634,0.767325,1.807583,1.756546,0.177627,
+ -0.024013,0.58573,0.810151,1.798719,1.714447,0.259352,
+ 0.552828,-0.750794,0.36151,2.096552,1.678482,0.32681,
+ -0.057955,0.638634,0.767325,1.807583,1.756546,0.177627,
+ 0.552828,-0.750794,0.36151,2.096552,1.678482,0.32681,
+ 0.411872,0.04507,0.910127,2.069379,1.727818,0.212746,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.566114,-0.824327,0,0.234527,1.730117,0,
+ 0.095331,0.952335,0.289775,0.223642,1.684075,0.160743,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.095331,0.952335,0.289775,0.223642,1.684075,0.160743,
+ 0.100949,-0.548551,0.830001,0.737904,1.604213,0.281713,
+ 0.100949,-0.548551,0.830001,0.737904,1.604213,0.281713,
+ 0.095331,0.952335,0.289775,0.223642,1.684075,0.160743,
+ 0.10291,0.954344,0.280422,0.23733,1.595746,0.288672,
+ 0.100949,-0.548551,0.830001,0.737904,1.604213,0.281713,
+ 0.10291,0.954344,0.280422,0.23733,1.595746,0.288672,
+ 0.068777,-0.757383,0.649339,0.725959,1.478055,0.461804,
+ 0.068777,-0.757383,0.649339,0.725959,1.478055,0.461804,
+ 0.10291,0.954344,0.280422,0.23733,1.595746,0.288672,
+ 0.172251,0.950689,0.257916,0.289039,1.496446,0.430055,
+ 0.068777,-0.757383,0.649339,0.725959,1.478055,0.461804,
+ 0.172251,0.950689,0.257916,0.289039,1.496446,0.430055,
+ 0.023352,-0.872807,0.487506,0.760722,1.205036,0.700545,
+ 0.023352,-0.872807,0.487506,0.760722,1.205036,0.700545,
+ 0.172251,0.950689,0.257916,0.289039,1.496446,0.430055,
+ 0.28101,0.853935,0.437982,0.305671,1.298417,0.629719,
+ 0.023352,-0.872807,0.487506,0.760722,1.205036,0.700545,
+ 0.28101,0.853935,0.437982,0.305671,1.298417,0.629719,
+ 0.004725,-0.680391,0.732834,0.857323,0.985001,0.874029,
+ 0.004725,-0.680391,0.732834,0.857323,0.985001,0.874029,
+ 0.28101,0.853935,0.437982,0.305671,1.298417,0.629719,
+ 0.381239,0.555717,0.738807,0.243473,1.134082,0.819993,
+ 0.004725,-0.680391,0.732834,0.857323,0.985001,0.874029,
+ 0.381239,0.555717,0.738807,0.243473,1.134082,0.819993,
+ 0.034172,-0.858604,0.511498,0.921312,0.755659,0.99933,
+ 0.034172,-0.858604,0.511498,0.921312,0.755659,0.99933,
+ 0.381239,0.555717,0.738807,0.243473,1.134082,0.819993,
+ 0.376012,0.360026,0.853813,0.316341,0.785311,1.08626,
+ 0.034172,-0.858604,0.511498,0.921312,0.755659,0.99933,
+ 0.376012,0.360026,0.853813,0.316341,0.785311,1.08626,
+ 0.037423,-0.986705,0.158154,0.939271,0.379986,1.185872,
+ 0.037423,-0.986705,0.158154,0.939271,0.379986,1.185872,
+ 0.376012,0.360026,0.853813,0.316341,0.785311,1.08626,
+ 0.207079,0.373404,0.904261,0.539252,0.353984,1.254493,
+ 0.037423,-0.986705,0.158154,0.939271,0.379986,1.185872,
+ 0.207079,0.373404,0.904261,0.539252,0.353984,1.254493,
+ 0.013768,-0.992402,0.122267,0.927775,0.195225,1.233043,
+ 0.013768,-0.992402,0.122267,0.927775,0.195225,1.233043,
+ 0.207079,0.373404,0.904261,0.539252,0.353984,1.254493,
+ -0.045242,0.348413,0.936249,0.53915,0.148262,1.321014,
+ 0.013768,-0.992402,0.122267,0.927775,0.195225,1.233043,
+ -0.045242,0.348413,0.936249,0.53915,0.148262,1.321014,
+ 0.076524,0.950336,0.301672,0.950215,0.042751,1.256188,
+ 0.076524,0.950336,0.301672,0.950215,0.042751,1.256188,
+ -0.045242,0.348413,0.936249,0.53915,0.148262,1.321014,
+ -0.212948,0.334057,0.918182,0.516872,-0.020713,1.356627,
+ 0.076524,0.950336,0.301672,0.950215,0.042751,1.256188,
+ -0.212948,0.334057,0.918182,0.516872,-0.020713,1.356627,
+ 0.100598,0.942931,0.317428,0.943855,-0.101127,1.274771,
+ 0.100598,0.942931,0.317428,0.943855,-0.101127,1.274771,
+ -0.212948,0.334057,0.918182,0.516872,-0.020713,1.356627,
+ -0.282152,0.285245,0.915983,0.542386,-0.188227,1.370375,
+ 0.100598,0.942931,0.317428,0.943855,-0.101127,1.274771,
+ -0.282152,0.285245,0.915983,0.542386,-0.188227,1.370375,
+ 0.150328,0.92948,0.336851,0.960321,-0.308052,1.243133,
+ 0.150328,0.92948,0.336851,0.960321,-0.308052,1.243133,
+ -0.282152,0.285245,0.915983,0.542386,-0.188227,1.370375,
+ -0.326048,0.118611,0.937883,0.546875,-0.39094,1.363244,
+ 0.150328,0.92948,0.336851,0.960321,-0.308052,1.243133,
+ -0.326048,0.118611,0.937883,0.546875,-0.39094,1.363244,
+ 0.235667,0.756618,0.60991,0.97453,-0.525273,1.140353,
+ 0.235667,0.756618,0.60991,0.97453,-0.525273,1.140353,
+ -0.326048,0.118611,0.937883,0.546875,-0.39094,1.363244,
+ -0.422758,-0.178302,0.888529,0.550658,-0.633015,1.331311,
+ 0.235667,0.756618,0.60991,0.97453,-0.525273,1.140353,
+ -0.422758,-0.178302,0.888529,0.550658,-0.633015,1.331311,
+ 0.305452,0.425365,0.851918,0.948819,-0.638568,1.102958,
+ 0.305452,0.425365,0.851918,0.948819,-0.638568,1.102958,
+ -0.422758,-0.178302,0.888529,0.550658,-0.633015,1.331311,
+ -0.504483,-0.438591,0.743731,0.527724,-0.862854,1.253811,
+ 0.305452,0.425365,0.851918,0.948819,-0.638568,1.102958,
+ -0.504483,-0.438591,0.743731,0.527724,-0.862854,1.253811,
+ 0.325482,0.443544,0.835063,0.939974,-0.894739,1.019809,
+ 0.325482,0.443544,0.835063,0.939974,-0.894739,1.019809,
+ -0.504483,-0.438591,0.743731,0.527724,-0.862854,1.253811,
+ -0.53858,-0.616298,0.57455,0.544825,-1.133123,1.096902,
+ 0.325482,0.443544,0.835063,0.939974,-0.894739,1.019809,
+ -0.53858,-0.616298,0.57455,0.544825,-1.133123,1.096902,
+ 0.242426,0.58207,0.77616,0.956456,-1.070504,0.921063,
+ 0.242426,0.58207,0.77616,0.956456,-1.070504,0.921063,
+ -0.53858,-0.616298,0.57455,0.544825,-1.133123,1.096902,
+ -0.507894,-0.767261,0.391606,0.530629,-1.316423,0.929842,
+ 0.242426,0.58207,0.77616,0.956456,-1.070504,0.921063,
+ -0.507894,-0.767261,0.391606,0.530629,-1.316423,0.929842,
+ 0.070189,0.510248,0.857158,0.93066,-1.216516,0.831196,
+ 0.070189,0.510248,0.857158,0.93066,-1.216516,0.831196,
+ -0.507894,-0.767261,0.391606,0.530629,-1.316423,0.929842,
+ -0.375453,-0.69207,0.616502,0.538756,-1.408602,0.764911,
+ 0.070189,0.510248,0.857158,0.93066,-1.216516,0.831196,
+ -0.375453,-0.69207,0.616502,0.538756,-1.408602,0.764911,
+ -0.078623,0.370994,0.925301,0.922703,-1.296032,0.728307,
+ -0.078623,0.370994,0.925301,0.922703,-1.296032,0.728307,
+ -0.375453,-0.69207,0.616502,0.538756,-1.408602,0.764911,
+ -0.1427,-0.847733,0.510868,0.489819,-1.524947,0.672392,
+ -0.078623,0.370994,0.925301,0.922703,-1.296032,0.728307,
+ -0.1427,-0.847733,0.510868,0.489819,-1.524947,0.672392,
+ -0.123389,0.256577,0.958615,0.912699,-1.455066,0.576185,
+ -0.123389,0.256577,0.958615,0.912699,-1.455066,0.576185,
+ -0.1427,-0.847733,0.510868,0.489819,-1.524947,0.672392,
+ -0.178511,-0.973481,0.143068,0.480235,-1.631521,0.401961,
+ -0.123389,0.256577,0.958615,0.912699,-1.455066,0.576185,
+ -0.178511,-0.973481,0.143068,0.480235,-1.631521,0.401961,
+ -0.165685,0.059692,0.98437,0.912989,-1.499314,0.419547,
+ -0.165685,0.059692,0.98437,0.912989,-1.499314,0.419547,
+ -0.178511,-0.973481,0.143068,0.480235,-1.631521,0.401961,
+ 0.226963,-0.973903,0,0.44655,-1.67295,0,
+ -0.165685,0.059692,0.98437,0.912989,-1.499314,0.419547,
+ 0.226963,-0.973903,0,0.44655,-1.67295,0,
+ 0.92802,-0.37253,0,0.927497,-1.558489,0,
+ -0.039092,-0.999236,0,-0.228904,1.734267,0,
+ -0.009814,-0.999952,0,-0.547248,1.742126,0,
+ -0.021294,0.896295,0.442946,-0.559706,1.69418,0.186107,
+ -0.039092,-0.999236,0,-0.228904,1.734267,0,
+ -0.021294,0.896295,0.442946,-0.559706,1.69418,0.186107,
+ 0.067879,0.951186,0.30106,-0.221516,1.686349,0.151403,
+ 0.067879,0.951186,0.30106,-0.221516,1.686349,0.151403,
+ -0.021294,0.896295,0.442946,-0.559706,1.69418,0.186107,
+ -0.072244,0.618144,0.782738,-0.557624,1.641278,0.271462,
+ 0.067879,0.951186,0.30106,-0.221516,1.686349,0.151403,
+ -0.072244,0.618144,0.782738,-0.557624,1.641278,0.271462,
+ 0.085022,0.963119,0.255291,-0.267035,1.627058,0.266577,
+ 0.085022,0.963119,0.255291,-0.267035,1.627058,0.266577,
+ -0.072244,0.618144,0.782738,-0.557624,1.641278,0.271462,
+ -0.038944,0.247819,0.968023,-0.626493,1.585426,0.443136,
+ 0.085022,0.963119,0.255291,-0.267035,1.627058,0.266577,
+ -0.038944,0.247819,0.968023,-0.626493,1.585426,0.443136,
+ 0.120743,0.971588,0.203561,-0.247999,1.565146,0.389142,
+ 0.120743,0.971588,0.203561,-0.247999,1.565146,0.389142,
+ -0.038944,0.247819,0.968023,-0.626493,1.585426,0.443136,
+ -0.00315,0.115338,0.993321,-0.597781,1.48962,0.641047,
+ 0.120743,0.971588,0.203561,-0.247999,1.565146,0.389142,
+ -0.00315,0.115338,0.993321,-0.597781,1.48962,0.641047,
+ 0.117963,0.926753,0.356669,-0.179548,1.471301,0.544513,
+ 0.117963,0.926753,0.356669,-0.179548,1.471301,0.544513,
+ -0.00315,0.115338,0.993321,-0.597781,1.48962,0.641047,
+ 0.016683,0.197618,0.980137,-0.674657,1.333008,0.761059,
+ 0.117963,0.926753,0.356669,-0.179548,1.471301,0.544513,
+ 0.016683,0.197618,0.980137,-0.674657,1.333008,0.761059,
+ 0.109947,0.693426,0.71209,-0.192546,1.305535,0.70008,
+ 0.109947,0.693426,0.71209,-0.192546,1.305535,0.70008,
+ 0.016683,0.197618,0.980137,-0.674657,1.333008,0.761059,
+ 0.032424,0.316591,0.948008,-0.910602,1.204118,0.83774,
+ 0.109947,0.693426,0.71209,-0.192546,1.305535,0.70008,
+ 0.032424,0.316591,0.948008,-0.910602,1.204118,0.83774,
+ 0.076565,0.333251,0.939724,-0.406155,1.005088,0.971088,
+ 0.076565,0.333251,0.939724,-0.406155,1.005088,0.971088,
+ 0.032424,0.316591,0.948008,-0.910602,1.204118,0.83774,
+ 0.053195,0.343167,0.937767,-0.969076,0.901205,1.146223,
+ 0.076565,0.333251,0.939724,-0.406155,1.005088,0.971088,
+ 0.053195,0.343167,0.937767,-0.969076,0.901205,1.146223,
+ -0.039599,0.171847,0.984327,-0.11519,0.458427,1.346197,
+ -0.039599,0.171847,0.984327,-0.11519,0.458427,1.346197,
+ 0.053195,0.343167,0.937767,-0.969076,0.901205,1.146223,
+ 0.057735,0.173734,0.983099,-0.752416,0.438132,1.467349,
+ -0.039599,0.171847,0.984327,-0.11519,0.458427,1.346197,
+ 0.057735,0.173734,0.983099,-0.752416,0.438132,1.467349,
+ -0.164971,0.181757,0.969406,0.005537,0.163519,1.472265,
+ -0.164971,0.181757,0.969406,0.005537,0.163519,1.472265,
+ 0.057735,0.173734,0.983099,-0.752416,0.438132,1.467349,
+ 0.058723,-0.195869,0.97887,-0.645496,0.179261,1.584316,
+ -0.164971,0.181757,0.969406,0.005537,0.163519,1.472265,
+ 0.058723,-0.195869,0.97887,-0.645496,0.179261,1.584316,
+ -0.216817,0.278777,0.935561,0.018086,0.002865,1.523199,
+ -0.216817,0.278777,0.935561,0.018086,0.002865,1.523199,
+ 0.058723,-0.195869,0.97887,-0.645496,0.179261,1.584316,
+ 0.088769,-0.475351,0.875307,-0.536767,-0.144454,1.682232,
+ -0.216817,0.278777,0.935561,0.018086,0.002865,1.523199,
+ 0.088769,-0.475351,0.875307,-0.536767,-0.144454,1.682232,
+ -0.219724,0.297861,0.928978,0.034087,-0.225059,1.542949,
+ -0.219724,0.297861,0.928978,0.034087,-0.225059,1.542949,
+ 0.088769,-0.475351,0.875307,-0.536767,-0.144454,1.682232,
+ 0.099302,-0.563694,0.819993,-0.533528,-0.58228,1.701405,
+ -0.219724,0.297861,0.928978,0.034087,-0.225059,1.542949,
+ 0.099302,-0.563694,0.819993,-0.533528,-0.58228,1.701405,
+ -0.227369,0.161984,0.960242,0.010486,-0.502317,1.576297,
+ -0.227369,0.161984,0.960242,0.010486,-0.502317,1.576297,
+ 0.099302,-0.563694,0.819993,-0.533528,-0.58228,1.701405,
+ 0.093802,-0.705497,0.702478,-0.505045,-0.913827,1.645612,
+ -0.227369,0.161984,0.960242,0.010486,-0.502317,1.576297,
+ 0.093802,-0.705497,0.702478,-0.505045,-0.913827,1.645612,
+ -0.30296,-0.137183,0.943078,0.021051,-0.831931,1.511548,
+ -0.30296,-0.137183,0.943078,0.021051,-0.831931,1.511548,
+ 0.093802,-0.705497,0.702478,-0.505045,-0.913827,1.645612,
+ 0.058028,-0.329667,0.942312,-0.487217,-1.193519,1.504026,
+ -0.30296,-0.137183,0.943078,0.021051,-0.831931,1.511548,
+ 0.058028,-0.329667,0.942312,-0.487217,-1.193519,1.504026,
+ -0.387895,-0.42081,0.820034,-0.04157,-1.143825,1.395176,
+ -0.387895,-0.42081,0.820034,-0.04157,-1.143825,1.395176,
+ 0.058028,-0.329667,0.942312,-0.487217,-1.193519,1.504026,
+ 0.096347,0.961203,0.258467,-0.524231,-1.399266,1.313019,
+ -0.387895,-0.42081,0.820034,-0.04157,-1.143825,1.395176,
+ 0.096347,0.961203,0.258467,-0.524231,-1.399266,1.313019,
+ -0.433119,-0.541142,0.720814,-0.071941,-1.346991,1.237379,
+ -0.433119,-0.541142,0.720814,-0.071941,-1.346991,1.237379,
+ 0.096347,0.961203,0.258467,-0.524231,-1.399266,1.313019,
+ 0.098712,0.966371,0.23745,-0.526127,-1.495,1.167736,
+ -0.433119,-0.541142,0.720814,-0.071941,-1.346991,1.237379,
+ 0.098712,0.966371,0.23745,-0.526127,-1.495,1.167736,
+ -0.455057,-0.684123,0.569999,-0.0723,-1.450245,1.087397,
+ -0.455057,-0.684123,0.569999,-0.0723,-1.450245,1.087397,
+ 0.098712,0.966371,0.23745,-0.526127,-1.495,1.167736,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ -0.455057,-0.684123,0.569999,-0.0723,-1.450245,1.087397,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ -0.084259,-0.367691,0.926123,-0.063012,-1.583021,0.865082,
+ -0.098179,0.995169,0,-0.866132,1.75467,0,
+ -0.065586,-0.997847,0,-1.179474,1.786649,0,
+ -0.115746,0.20405,0.972094,-1.215563,1.757097,0.133494,
+ -0.098179,0.995169,0,-0.866132,1.75467,0,
+ -0.115746,0.20405,0.972094,-1.215563,1.757097,0.133494,
+ 0.136965,0.155729,0.978258,-0.894132,1.712652,0.151911,
+ 0.136965,0.155729,0.978258,-0.894132,1.712652,0.151911,
+ -0.115746,0.20405,0.972094,-1.215563,1.757097,0.133494,
+ -0.164191,0.153328,0.974439,-1.227613,1.709095,0.276029,
+ 0.136965,0.155729,0.978258,-0.894132,1.712652,0.151911,
+ -0.164191,0.153328,0.974439,-1.227613,1.709095,0.276029,
+ 0.173447,0.205435,0.963178,-0.954897,1.677544,0.293034,
+ 0.173447,0.205435,0.963178,-0.954897,1.677544,0.293034,
+ -0.164191,0.153328,0.974439,-1.227613,1.709095,0.276029,
+ -0.15812,-0.033626,0.986847,-1.292756,1.656509,0.51403,
+ 0.173447,0.205435,0.963178,-0.954897,1.677544,0.293034,
+ -0.15812,-0.033626,0.986847,-1.292756,1.656509,0.51403,
+ 0.136801,0.29658,0.945159,-1.017767,1.607824,0.541965,
+ 0.136801,0.29658,0.945159,-1.017767,1.607824,0.541965,
+ -0.15812,-0.033626,0.986847,-1.292756,1.656509,0.51403,
+ 0.005821,-0.234321,0.972142,-1.338488,1.613735,0.725441,
+ 0.136801,0.29658,0.945159,-1.017767,1.607824,0.541965,
+ 0.005821,-0.234321,0.972142,-1.338488,1.613735,0.725441,
+ 0.095019,0.330845,0.938889,-1.04607,1.509097,0.76106,
+ 0.095019,0.330845,0.938889,-1.04607,1.509097,0.76106,
+ 0.005821,-0.234321,0.972142,-1.338488,1.613735,0.725441,
+ 0.243464,-0.335965,0.909864,-1.403848,1.533059,0.902827,
+ 0.095019,0.330845,0.938889,-1.04607,1.509097,0.76106,
+ 0.243464,-0.335965,0.909864,-1.403848,1.533059,0.902827,
+ 0.07657,0.16758,0.982881,-1.115594,1.39238,0.819623,
+ 0.07657,0.16758,0.982881,-1.115594,1.39238,0.819623,
+ 0.243464,-0.335965,0.909864,-1.403848,1.533059,0.902827,
+ 0.49938,-0.45475,0.737443,-1.551526,1.400025,1.050193,
+ 0.07657,0.16758,0.982881,-1.115594,1.39238,0.819623,
+ 0.49938,-0.45475,0.737443,-1.551526,1.400025,1.050193,
+ 0.079214,-0.175111,0.981357,-1.278903,1.192051,0.946843,
+ 0.079214,-0.175111,0.981357,-1.278903,1.192051,0.946843,
+ 0.49938,-0.45475,0.737443,-1.551526,1.400025,1.050193,
+ 0.573426,-0.441087,0.69038,-1.552899,1.128654,1.15104,
+ 0.079214,-0.175111,0.981357,-1.278903,1.192051,0.946843,
+ 0.573426,-0.441087,0.69038,-1.552899,1.128654,1.15104,
+ 0.204115,-0.405276,0.891116,-1.200768,0.978822,1.103391,
+ 0.204115,-0.405276,0.891116,-1.200768,0.978822,1.103391,
+ 0.573426,-0.441087,0.69038,-1.552899,1.128654,1.15104,
+ 0.1643,0.873906,0.457487,-1.454529,0.875045,1.238858,
+ 0.204115,-0.405276,0.891116,-1.200768,0.978822,1.103391,
+ 0.1643,0.873906,0.457487,-1.454529,0.875045,1.238858,
+ 0.396045,-0.47666,0.784821,-1.147922,0.807955,1.254191,
+ 0.396045,-0.47666,0.784821,-1.147922,0.807955,1.254191,
+ 0.1643,0.873906,0.457487,-1.454529,0.875045,1.238858,
+ -0.012448,0.906487,0.422051,-1.405685,0.573835,1.352181,
+ 0.396045,-0.47666,0.784821,-1.147922,0.807955,1.254191,
+ -0.012448,0.906487,0.422051,-1.405685,0.573835,1.352181,
+ 0.238702,-0.258568,0.936036,-1.120716,0.424016,1.45699,
+ 0.238702,-0.258568,0.936036,-1.120716,0.424016,1.45699,
+ -0.012448,0.906487,0.422051,-1.405685,0.573835,1.352181,
+ -0.051905,0.965082,0.256753,-1.479588,0.295746,1.440042,
+ 0.238702,-0.258568,0.936036,-1.120716,0.424016,1.45699,
+ -0.051905,0.965082,0.256753,-1.479588,0.295746,1.440042,
+ 0.11717,0.938619,0.324447,-1.077307,0.165008,1.553393,
+ 0.11717,0.938619,0.324447,-1.077307,0.165008,1.553393,
+ -0.051905,0.965082,0.256753,-1.479588,0.295746,1.440042,
+ -0.088843,0.888,0.45118,-1.489699,-0.024215,1.510987,
+ 0.11717,0.938619,0.324447,-1.077307,0.165008,1.553393,
+ -0.088843,0.888,0.45118,-1.489699,-0.024215,1.510987,
+ 0.080398,0.9582,0.274571,-1.053434,-0.342553,1.690245,
+ 0.080398,0.9582,0.274571,-1.053434,-0.342553,1.690245,
+ -0.088843,0.888,0.45118,-1.489699,-0.024215,1.510987,
+ -0.169971,0.704712,0.688832,-1.395501,-0.698702,1.553257,
+ 0.080398,0.9582,0.274571,-1.053434,-0.342553,1.690245,
+ -0.169971,0.704712,0.688832,-1.395501,-0.698702,1.553257,
+ 0.069061,0.958871,0.275312,-1.077209,-0.869649,1.633144,
+ 0.069061,0.958871,0.275312,-1.077209,-0.869649,1.633144,
+ -0.169971,0.704712,0.688832,-1.395501,-0.698702,1.553257,
+ -0.261543,0.44691,0.855492,-1.376176,-0.948757,1.451608,
+ 0.069061,0.958871,0.275312,-1.077209,-0.869649,1.633144,
+ -0.261543,0.44691,0.855492,-1.376176,-0.948757,1.451608,
+ 0.051291,0.888276,0.456438,-1.061272,-1.141877,1.49623,
+ 0.051291,0.888276,0.456438,-1.061272,-1.141877,1.49623,
+ -0.261543,0.44691,0.855492,-1.376176,-0.948757,1.451608,
+ -0.33898,0.203127,0.918603,-1.402349,-1.127845,1.309055,
+ 0.051291,0.888276,0.456438,-1.061272,-1.141877,1.49623,
+ -0.33898,0.203127,0.918603,-1.402349,-1.127845,1.309055,
+ -0.008282,0.691944,0.721904,-1.001366,-1.335897,1.353338,
+ -0.008282,0.691944,0.721904,-1.001366,-1.335897,1.353338,
+ -0.33898,0.203127,0.918603,-1.402349,-1.127845,1.309055,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.008282,0.691944,0.721904,-1.001366,-1.335897,1.353338,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.0448,0.42163,0.905661,-0.952525,-1.440582,1.16865,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ 0.009434,0.815301,0.578961,1.640095,-0.674556,1.246804,
+ 0.040473,0.760778,0.647749,1.644178,-0.857872,1.208494,
+ -0.057955,0.638634,0.767325,1.807583,1.756546,0.177627,
+ -0.720176,-0.693792,0,1.794465,1.787719,0,
+ 0.779025,-0.626993,0,1.456656,1.785879,0,
+ -0.057955,0.638634,0.767325,1.807583,1.756546,0.177627,
+ 0.779025,-0.626993,0,1.456656,1.785879,0,
+ 0.184661,-0.694307,0.695585,1.462507,1.745481,0.222394,
+ -0.024013,0.58573,0.810151,1.798719,1.714447,0.259352,
+ -0.057955,0.638634,0.767325,1.807583,1.756546,0.177627,
+ 0.184661,-0.694307,0.695585,1.462507,1.745481,0.222394,
+ -0.024013,0.58573,0.810151,1.798719,1.714447,0.259352,
+ 0.184661,-0.694307,0.695585,1.462507,1.745481,0.222394,
+ 0.152876,-0.742504,0.652163,1.483832,1.697594,0.288781,
+ 0.016737,0.497476,0.867316,1.821946,1.618209,0.403751,
+ -0.024013,0.58573,0.810151,1.798719,1.714447,0.259352,
+ 0.152876,-0.742504,0.652163,1.483832,1.697594,0.288781,
+ 0.016737,0.497476,0.867316,1.821946,1.618209,0.403751,
+ 0.152876,-0.742504,0.652163,1.483832,1.697594,0.288781,
+ 0.120054,-0.825719,0.551157,1.497138,1.618935,0.401108,
+ 0.060533,0.377837,0.923891,1.859443,1.450393,0.632222,
+ 0.016737,0.497476,0.867316,1.821946,1.618209,0.403751,
+ 0.120054,-0.825719,0.551157,1.497138,1.618935,0.401108,
+ 0.060533,0.377837,0.923891,1.859443,1.450393,0.632222,
+ 0.120054,-0.825719,0.551157,1.497138,1.618935,0.401108,
+ 0.102263,-0.969566,0.222452,1.504951,1.483493,0.585976,
+ 0.088722,0.251367,0.963817,1.958254,1.130271,0.861813,
+ 0.060533,0.377837,0.923891,1.859443,1.450393,0.632222,
+ 0.102263,-0.969566,0.222452,1.504951,1.483493,0.585976,
+ 0.088722,0.251367,0.963817,1.958254,1.130271,0.861813,
+ 0.102263,-0.969566,0.222452,1.504951,1.483493,0.585976,
+ -0.305786,-0.232288,0.923329,1.517126,1.334367,0.741076,
+ 0.107989,0.168108,0.979836,1.975941,0.827957,1.018423,
+ 0.088722,0.251367,0.963817,1.958254,1.130271,0.861813,
+ -0.305786,-0.232288,0.923329,1.517126,1.334367,0.741076,
+ 0.107989,0.168108,0.979836,1.975941,0.827957,1.018423,
+ -0.305786,-0.232288,0.923329,1.517126,1.334367,0.741076,
+ -0.148631,-0.373855,0.915501,1.570685,0.938327,0.989108,
+ 0.107989,0.168108,0.979836,1.975941,0.827957,1.018423,
+ -0.148631,-0.373855,0.915501,1.570685,0.938327,0.989108,
+ -0.185127,-0.491394,0.851035,1.582203,0.771083,1.06818,
+ 0.10833,0.05569,0.992554,2.023441,0.529338,1.144399,
+ 0.107989,0.168108,0.979836,1.975941,0.827957,1.018423,
+ -0.185127,-0.491394,0.851035,1.582203,0.771083,1.06818,
+ 0.10833,0.05569,0.992554,2.023441,0.529338,1.144399,
+ -0.185127,-0.491394,0.851035,1.582203,0.771083,1.06818,
+ -0.208715,-0.624734,0.752427,1.63008,0.420236,1.172369,
+ 0.114032,-0.218132,0.969234,2.0817,0.283249,1.259461,
+ 0.10833,0.05569,0.992554,2.023441,0.529338,1.144399,
+ -0.208715,-0.624734,0.752427,1.63008,0.420236,1.172369,
+ 0.114032,-0.218132,0.969234,2.0817,0.283249,1.259461,
+ -0.208715,-0.624734,0.752427,1.63008,0.420236,1.172369,
+ -0.251063,-0.683027,0.685888,1.649027,0.224458,1.211969,
+ 0.187438,-0.340915,0.921219,2.14179,-0.055306,1.295565,
+ 0.114032,-0.218132,0.969234,2.0817,0.283249,1.259461,
+ -0.251063,-0.683027,0.685888,1.649027,0.224458,1.211969,
+ 0.187438,-0.340915,0.921219,2.14179,-0.055306,1.295565,
+ -0.251063,-0.683027,0.685888,1.649027,0.224458,1.211969,
+ -0.252973,-0.819125,0.51482,1.660355,0.019397,1.246002,
+ 0.25339,-0.287519,0.923648,2.136269,-0.187666,1.278057,
+ 0.187438,-0.340915,0.921219,2.14179,-0.055306,1.295565,
+ -0.252973,-0.819125,0.51482,1.660355,0.019397,1.246002,
+ 0.25339,-0.287519,0.923648,2.136269,-0.187666,1.278057,
+ -0.252973,-0.819125,0.51482,1.660355,0.019397,1.246002,
+ -0.137161,-0.98063,0.139827,1.664159,-0.189659,1.266729,
+ 0.23972,-0.400363,0.884445,2.108912,-0.357128,1.259691,
+ 0.25339,-0.287519,0.923648,2.136269,-0.187666,1.278057,
+ -0.137161,-0.98063,0.139827,1.664159,-0.189659,1.266729,
+ 0.23972,-0.400363,0.884445,2.108912,-0.357128,1.259691,
+ -0.137161,-0.98063,0.139827,1.664159,-0.189659,1.266729,
+ 0.007127,0.896038,0.44392,1.678622,-0.410061,1.291177,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ 0.23972,-0.400363,0.884445,2.108912,-0.357128,1.259691,
+ 0.007127,0.896038,0.44392,1.678622,-0.410061,1.291177,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ 0.007127,0.896038,0.44392,1.678622,-0.410061,1.291177,
+ 0.009434,0.815301,0.578961,1.640095,-0.674556,1.246804,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ -0.819256,-0.566976,0.085772,2.058189,-0.931238,1.163518,
+ -0.898389,-0.217201,-0.381735,2.158585,-0.955809,1.113647,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ -0.898389,-0.217201,-0.381735,2.158585,-0.955809,1.113647,
+ -0.887036,-0.210048,-0.411154,2.222082,-0.957342,1.014137,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ -0.887036,-0.210048,-0.411154,2.222082,-0.957342,1.014137,
+ -0.069142,0.724976,0.685295,2.245624,-0.864372,0.995778,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ 0.040473,0.760778,0.647749,1.644178,-0.857872,1.208494,
+ -0.493424,-0.16561,-0.853877,1.635139,-0.965221,1.184968,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ -0.493424,-0.16561,-0.853877,1.635139,-0.965221,1.184968,
+ 0.193853,0.161608,0.967628,1.867657,-0.920633,1.206933,
+ 0.213167,-0.525559,0.823619,2.013534,-0.662303,1.191491,
+ 0.193853,0.161608,0.967628,1.867657,-0.920633,1.206933,
+ -0.819256,-0.566976,0.085772,2.058189,-0.931238,1.163518,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ -0.086361,-0.084973,0.992634,1.963153,-1.588839,0.612861,
+ 0.776291,-0.374867,0.5068,1.721211,-1.590185,0.601932,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ 0.776291,-0.374867,0.5068,1.721211,-1.590185,0.601932,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ 0.010538,0.399391,0.91672,1.328862,-1.352627,0.758733,
+ -0.263451,-0.648591,0.714089,1.19204,-1.330605,0.678707,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ -0.263451,-0.648591,0.714089,1.19204,-1.330605,0.678707,
+ -0.301558,-0.77828,0.550766,1.210555,-1.460061,0.576841,
+ 0.24139,0.178826,-0.953809,1.599889,-1.595526,0.623185,
+ 0.751148,0.43192,-0.49922,1.451825,-1.576856,0.702758,
+ -0.301558,-0.77828,0.550766,1.210555,-1.460061,0.576841,
+ 0.24139,0.178826,-0.953809,1.599889,-1.595526,0.623185,
+ -0.301558,-0.77828,0.550766,1.210555,-1.460061,0.576841,
+ -0.154129,-0.981148,0.116585,1.223415,-1.532658,0.434522,
+ -0.034649,0.9994,0,1.920432,-1.567396,0,
+ 0.140536,0.558684,0.817388,2.0482,-1.581983,0.555832,
+ -0.086361,-0.084973,0.992634,1.963153,-1.588839,0.612861,
+ 0.24139,0.178826,-0.953809,1.599889,-1.595526,0.623185,
+ -0.154129,-0.981148,0.116585,1.223415,-1.532658,0.434522,
+ 0.770209,-0.637792,0,1.289448,-1.546597,0,
+ 0.24139,0.178826,-0.953809,1.599889,-1.595526,0.623185,
+ 0.770209,-0.637792,0,1.289448,-1.546597,0,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ 0.776291,-0.374867,0.5068,1.721211,-1.590185,0.601932,
+ 0.24139,0.178826,-0.953809,1.599889,-1.595526,0.623185,
+ -0.560667,-0.828041,0,1.604939,-1.556997,0,
+ 0.010538,0.399391,0.91672,1.328862,-1.352627,0.758733,
+ -0.228294,-0.186048,0.955651,1.348219,-1.282064,0.845204,
+ -0.267766,-0.862787,0.428835,1.219163,-1.218342,0.823029,
+ 0.010538,0.399391,0.91672,1.328862,-1.352627,0.758733,
+ -0.267766,-0.862787,0.428835,1.219163,-1.218342,0.823029,
+ -0.263451,-0.648591,0.714089,1.19204,-1.330605,0.678707,
+ -0.382074,-0.25681,-0.887732,1.337875,-0.945716,1.021299,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ -0.231653,-0.530839,0.815198,1.252961,-0.928825,1.001643,
+ 0.43768,-0.823149,-0.361748,1.310865,-1.136322,0.914838,
+ -0.382074,-0.25681,-0.887732,1.337875,-0.945716,1.021299,
+ -0.231653,-0.530839,0.815198,1.252961,-0.928825,1.001643,
+ 0.43768,-0.823149,-0.361748,1.310865,-1.136322,0.914838,
+ -0.231653,-0.530839,0.815198,1.252961,-0.928825,1.001643,
+ -0.253979,-0.745808,0.615845,1.230116,-1.085439,0.894543,
+ -0.228294,-0.186048,0.955651,1.348219,-1.282064,0.845204,
+ 0.43768,-0.823149,-0.361748,1.310865,-1.136322,0.914838,
+ -0.253979,-0.745808,0.615845,1.230116,-1.085439,0.894543,
+ -0.228294,-0.186048,0.955651,1.348219,-1.282064,0.845204,
+ -0.253979,-0.745808,0.615845,1.230116,-1.085439,0.894543,
+ -0.267766,-0.862787,0.428835,1.219163,-1.218342,0.823029,
+ -0.570406,-0.192005,-0.798606,1.536037,-0.985876,1.185597,
+ -0.493424,-0.16561,-0.853877,1.635139,-0.965221,1.184968,
+ 0.040473,0.760778,0.647749,1.644178,-0.857872,1.208494,
+ -0.53197,-0.108751,-0.839751,1.428883,-0.98669,1.133905,
+ -0.570406,-0.192005,-0.798606,1.536037,-0.985876,1.185597,
+ 0.040473,0.760778,0.647749,1.644178,-0.857872,1.208494,
+ -0.53197,-0.108751,-0.839751,1.428883,-0.98669,1.133905,
+ 0.040473,0.760778,0.647749,1.644178,-0.857872,1.208494,
+ 0.009434,0.815301,0.578961,1.640095,-0.674556,1.246804,
+ 0.009434,0.815301,0.578961,1.640095,-0.674556,1.246804,
+ 0.007127,0.896038,0.44392,1.678622,-0.410061,1.291177,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ -0.53197,-0.108751,-0.839751,1.428883,-0.98669,1.133905,
+ 0.009434,0.815301,0.578961,1.640095,-0.674556,1.246804,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.184661,-0.694307,0.695585,1.462507,1.745481,0.222394,
+ 0.779025,-0.626993,0,1.456656,1.785879,0,
+ -0.165685,0.059692,0.98437,0.912989,-1.499314,0.419547,
+ 0.92802,-0.37253,0,0.927497,-1.558489,0,
+ 0.770209,-0.637792,0,1.289448,-1.546597,0,
+ -0.165685,0.059692,0.98437,0.912989,-1.499314,0.419547,
+ 0.770209,-0.637792,0,1.289448,-1.546597,0,
+ -0.154129,-0.981148,0.116585,1.223415,-1.532658,0.434522,
+ -0.123389,0.256577,0.958615,0.912699,-1.455066,0.576185,
+ -0.165685,0.059692,0.98437,0.912989,-1.499314,0.419547,
+ -0.154129,-0.981148,0.116585,1.223415,-1.532658,0.434522,
+ -0.123389,0.256577,0.958615,0.912699,-1.455066,0.576185,
+ -0.154129,-0.981148,0.116585,1.223415,-1.532658,0.434522,
+ -0.301558,-0.77828,0.550766,1.210555,-1.460061,0.576841,
+ -0.078623,0.370994,0.925301,0.922703,-1.296032,0.728307,
+ -0.123389,0.256577,0.958615,0.912699,-1.455066,0.576185,
+ -0.301558,-0.77828,0.550766,1.210555,-1.460061,0.576841,
+ -0.078623,0.370994,0.925301,0.922703,-1.296032,0.728307,
+ -0.301558,-0.77828,0.550766,1.210555,-1.460061,0.576841,
+ -0.263451,-0.648591,0.714089,1.19204,-1.330605,0.678707,
+ 0.070189,0.510248,0.857158,0.93066,-1.216516,0.831196,
+ -0.078623,0.370994,0.925301,0.922703,-1.296032,0.728307,
+ -0.263451,-0.648591,0.714089,1.19204,-1.330605,0.678707,
+ 0.070189,0.510248,0.857158,0.93066,-1.216516,0.831196,
+ -0.263451,-0.648591,0.714089,1.19204,-1.330605,0.678707,
+ -0.267766,-0.862787,0.428835,1.219163,-1.218342,0.823029,
+ 0.242426,0.58207,0.77616,0.956456,-1.070504,0.921063,
+ 0.070189,0.510248,0.857158,0.93066,-1.216516,0.831196,
+ -0.267766,-0.862787,0.428835,1.219163,-1.218342,0.823029,
+ 0.242426,0.58207,0.77616,0.956456,-1.070504,0.921063,
+ -0.267766,-0.862787,0.428835,1.219163,-1.218342,0.823029,
+ -0.253979,-0.745808,0.615845,1.230116,-1.085439,0.894543,
+ 0.325482,0.443544,0.835063,0.939974,-0.894739,1.019809,
+ 0.242426,0.58207,0.77616,0.956456,-1.070504,0.921063,
+ -0.253979,-0.745808,0.615845,1.230116,-1.085439,0.894543,
+ 0.325482,0.443544,0.835063,0.939974,-0.894739,1.019809,
+ -0.253979,-0.745808,0.615845,1.230116,-1.085439,0.894543,
+ -0.231653,-0.530839,0.815198,1.252961,-0.928825,1.001643,
+ 0.305452,0.425365,0.851918,0.948819,-0.638568,1.102958,
+ 0.325482,0.443544,0.835063,0.939974,-0.894739,1.019809,
+ -0.231653,-0.530839,0.815198,1.252961,-0.928825,1.001643,
+ 0.305452,0.425365,0.851918,0.948819,-0.638568,1.102958,
+ -0.231653,-0.530839,0.815198,1.252961,-0.928825,1.001643,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ 0.235667,0.756618,0.60991,0.97453,-0.525273,1.140353,
+ 0.305452,0.425365,0.851918,0.948819,-0.638568,1.102958,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ 0.150328,0.92948,0.336851,0.960321,-0.308052,1.243133,
+ 0.235667,0.756618,0.60991,0.97453,-0.525273,1.140353,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ 0.150328,0.92948,0.336851,0.960321,-0.308052,1.243133,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ 0.007127,0.896038,0.44392,1.678622,-0.410061,1.291177,
+ 0.100598,0.942931,0.317428,0.943855,-0.101127,1.274771,
+ 0.150328,0.92948,0.336851,0.960321,-0.308052,1.243133,
+ 0.007127,0.896038,0.44392,1.678622,-0.410061,1.291177,
+ 0.100598,0.942931,0.317428,0.943855,-0.101127,1.274771,
+ 0.007127,0.896038,0.44392,1.678622,-0.410061,1.291177,
+ -0.137161,-0.98063,0.139827,1.664159,-0.189659,1.266729,
+ 0.076524,0.950336,0.301672,0.950215,0.042751,1.256188,
+ 0.100598,0.942931,0.317428,0.943855,-0.101127,1.274771,
+ -0.137161,-0.98063,0.139827,1.664159,-0.189659,1.266729,
+ 0.076524,0.950336,0.301672,0.950215,0.042751,1.256188,
+ -0.137161,-0.98063,0.139827,1.664159,-0.189659,1.266729,
+ -0.252973,-0.819125,0.51482,1.660355,0.019397,1.246002,
+ 0.013768,-0.992402,0.122267,0.927775,0.195225,1.233043,
+ 0.076524,0.950336,0.301672,0.950215,0.042751,1.256188,
+ -0.252973,-0.819125,0.51482,1.660355,0.019397,1.246002,
+ 0.013768,-0.992402,0.122267,0.927775,0.195225,1.233043,
+ -0.252973,-0.819125,0.51482,1.660355,0.019397,1.246002,
+ -0.251063,-0.683027,0.685888,1.649027,0.224458,1.211969,
+ 0.037423,-0.986705,0.158154,0.939271,0.379986,1.185872,
+ 0.013768,-0.992402,0.122267,0.927775,0.195225,1.233043,
+ -0.251063,-0.683027,0.685888,1.649027,0.224458,1.211969,
+ 0.037423,-0.986705,0.158154,0.939271,0.379986,1.185872,
+ -0.251063,-0.683027,0.685888,1.649027,0.224458,1.211969,
+ -0.208715,-0.624734,0.752427,1.63008,0.420236,1.172369,
+ 0.034172,-0.858604,0.511498,0.921312,0.755659,0.99933,
+ 0.037423,-0.986705,0.158154,0.939271,0.379986,1.185872,
+ -0.208715,-0.624734,0.752427,1.63008,0.420236,1.172369,
+ 0.034172,-0.858604,0.511498,0.921312,0.755659,0.99933,
+ -0.208715,-0.624734,0.752427,1.63008,0.420236,1.172369,
+ -0.185127,-0.491394,0.851035,1.582203,0.771083,1.06818,
+ 0.004725,-0.680391,0.732834,0.857323,0.985001,0.874029,
+ 0.034172,-0.858604,0.511498,0.921312,0.755659,0.99933,
+ -0.185127,-0.491394,0.851035,1.582203,0.771083,1.06818,
+ 0.004725,-0.680391,0.732834,0.857323,0.985001,0.874029,
+ -0.185127,-0.491394,0.851035,1.582203,0.771083,1.06818,
+ -0.148631,-0.373855,0.915501,1.570685,0.938327,0.989108,
+ 0.023352,-0.872807,0.487506,0.760722,1.205036,0.700545,
+ 0.004725,-0.680391,0.732834,0.857323,0.985001,0.874029,
+ -0.148631,-0.373855,0.915501,1.570685,0.938327,0.989108,
+ 0.068777,-0.757383,0.649339,0.725959,1.478055,0.461804,
+ 0.023352,-0.872807,0.487506,0.760722,1.205036,0.700545,
+ -0.148631,-0.373855,0.915501,1.570685,0.938327,0.989108,
+ 0.068777,-0.757383,0.649339,0.725959,1.478055,0.461804,
+ -0.148631,-0.373855,0.915501,1.570685,0.938327,0.989108,
+ -0.305786,-0.232288,0.923329,1.517126,1.334367,0.741076,
+ 0.100949,-0.548551,0.830001,0.737904,1.604213,0.281713,
+ 0.068777,-0.757383,0.649339,0.725959,1.478055,0.461804,
+ -0.305786,-0.232288,0.923329,1.517126,1.334367,0.741076,
+ 0.100949,-0.548551,0.830001,0.737904,1.604213,0.281713,
+ -0.305786,-0.232288,0.923329,1.517126,1.334367,0.741076,
+ 0.102263,-0.969566,0.222452,1.504951,1.483493,0.585976,
+ 0.100949,-0.548551,0.830001,0.737904,1.604213,0.281713,
+ 0.102263,-0.969566,0.222452,1.504951,1.483493,0.585976,
+ 0.120054,-0.825719,0.551157,1.497138,1.618935,0.401108,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.100949,-0.548551,0.830001,0.737904,1.604213,0.281713,
+ 0.120054,-0.825719,0.551157,1.497138,1.618935,0.401108,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.120054,-0.825719,0.551157,1.497138,1.618935,0.401108,
+ 0.152876,-0.742504,0.652163,1.483832,1.697594,0.288781,
+ 0.981421,-0.191868,0,0.733818,1.740873,0,
+ 0.152876,-0.742504,0.652163,1.483832,1.697594,0.288781,
+ 0.184661,-0.694307,0.695585,1.462507,1.745481,0.222394,
+ 0.566114,-0.824327,0,0.234527,1.730117,0,
+ -0.039092,-0.999236,0,-0.228904,1.734267,0,
+ 0.067879,0.951186,0.30106,-0.221516,1.686349,0.151403,
+ 0.566114,-0.824327,0,0.234527,1.730117,0,
+ 0.067879,0.951186,0.30106,-0.221516,1.686349,0.151403,
+ 0.095331,0.952335,0.289775,0.223642,1.684075,0.160743,
+ 0.095331,0.952335,0.289775,0.223642,1.684075,0.160743,
+ 0.067879,0.951186,0.30106,-0.221516,1.686349,0.151403,
+ 0.085022,0.963119,0.255291,-0.267035,1.627058,0.266577,
+ 0.095331,0.952335,0.289775,0.223642,1.684075,0.160743,
+ 0.085022,0.963119,0.255291,-0.267035,1.627058,0.266577,
+ 0.10291,0.954344,0.280422,0.23733,1.595746,0.288672,
+ 0.10291,0.954344,0.280422,0.23733,1.595746,0.288672,
+ 0.085022,0.963119,0.255291,-0.267035,1.627058,0.266577,
+ 0.120743,0.971588,0.203561,-0.247999,1.565146,0.389142,
+ 0.10291,0.954344,0.280422,0.23733,1.595746,0.288672,
+ 0.120743,0.971588,0.203561,-0.247999,1.565146,0.389142,
+ 0.172251,0.950689,0.257916,0.289039,1.496446,0.430055,
+ 0.172251,0.950689,0.257916,0.289039,1.496446,0.430055,
+ 0.120743,0.971588,0.203561,-0.247999,1.565146,0.389142,
+ 0.117963,0.926753,0.356669,-0.179548,1.471301,0.544513,
+ 0.172251,0.950689,0.257916,0.289039,1.496446,0.430055,
+ 0.117963,0.926753,0.356669,-0.179548,1.471301,0.544513,
+ 0.28101,0.853935,0.437982,0.305671,1.298417,0.629719,
+ 0.28101,0.853935,0.437982,0.305671,1.298417,0.629719,
+ 0.117963,0.926753,0.356669,-0.179548,1.471301,0.544513,
+ 0.109947,0.693426,0.71209,-0.192546,1.305535,0.70008,
+ 0.28101,0.853935,0.437982,0.305671,1.298417,0.629719,
+ 0.109947,0.693426,0.71209,-0.192546,1.305535,0.70008,
+ 0.381239,0.555717,0.738807,0.243473,1.134082,0.819993,
+ 0.381239,0.555717,0.738807,0.243473,1.134082,0.819993,
+ 0.109947,0.693426,0.71209,-0.192546,1.305535,0.70008,
+ 0.076565,0.333251,0.939724,-0.406155,1.005088,0.971088,
+ 0.381239,0.555717,0.738807,0.243473,1.134082,0.819993,
+ 0.076565,0.333251,0.939724,-0.406155,1.005088,0.971088,
+ 0.376012,0.360026,0.853813,0.316341,0.785311,1.08626,
+ 0.376012,0.360026,0.853813,0.316341,0.785311,1.08626,
+ 0.076565,0.333251,0.939724,-0.406155,1.005088,0.971088,
+ -0.039599,0.171847,0.984327,-0.11519,0.458427,1.346197,
+ 0.376012,0.360026,0.853813,0.316341,0.785311,1.08626,
+ -0.039599,0.171847,0.984327,-0.11519,0.458427,1.346197,
+ 0.207079,0.373404,0.904261,0.539252,0.353984,1.254493,
+ 0.207079,0.373404,0.904261,0.539252,0.353984,1.254493,
+ -0.039599,0.171847,0.984327,-0.11519,0.458427,1.346197,
+ -0.164971,0.181757,0.969406,0.005537,0.163519,1.472265,
+ 0.207079,0.373404,0.904261,0.539252,0.353984,1.254493,
+ -0.164971,0.181757,0.969406,0.005537,0.163519,1.472265,
+ -0.045242,0.348413,0.936249,0.53915,0.148262,1.321014,
+ -0.045242,0.348413,0.936249,0.53915,0.148262,1.321014,
+ -0.164971,0.181757,0.969406,0.005537,0.163519,1.472265,
+ -0.216817,0.278777,0.935561,0.018086,0.002865,1.523199,
+ -0.045242,0.348413,0.936249,0.53915,0.148262,1.321014,
+ -0.216817,0.278777,0.935561,0.018086,0.002865,1.523199,
+ -0.212948,0.334057,0.918182,0.516872,-0.020713,1.356627,
+ -0.212948,0.334057,0.918182,0.516872,-0.020713,1.356627,
+ -0.216817,0.278777,0.935561,0.018086,0.002865,1.523199,
+ -0.219724,0.297861,0.928978,0.034087,-0.225059,1.542949,
+ -0.212948,0.334057,0.918182,0.516872,-0.020713,1.356627,
+ -0.219724,0.297861,0.928978,0.034087,-0.225059,1.542949,
+ -0.282152,0.285245,0.915983,0.542386,-0.188227,1.370375,
+ -0.282152,0.285245,0.915983,0.542386,-0.188227,1.370375,
+ -0.219724,0.297861,0.928978,0.034087,-0.225059,1.542949,
+ -0.227369,0.161984,0.960242,0.010486,-0.502317,1.576297,
+ -0.282152,0.285245,0.915983,0.542386,-0.188227,1.370375,
+ -0.227369,0.161984,0.960242,0.010486,-0.502317,1.576297,
+ -0.326048,0.118611,0.937883,0.546875,-0.39094,1.363244,
+ -0.326048,0.118611,0.937883,0.546875,-0.39094,1.363244,
+ -0.227369,0.161984,0.960242,0.010486,-0.502317,1.576297,
+ -0.30296,-0.137183,0.943078,0.021051,-0.831931,1.511548,
+ -0.326048,0.118611,0.937883,0.546875,-0.39094,1.363244,
+ -0.30296,-0.137183,0.943078,0.021051,-0.831931,1.511548,
+ -0.422758,-0.178302,0.888529,0.550658,-0.633015,1.331311,
+ -0.422758,-0.178302,0.888529,0.550658,-0.633015,1.331311,
+ -0.30296,-0.137183,0.943078,0.021051,-0.831931,1.511548,
+ -0.387895,-0.42081,0.820034,-0.04157,-1.143825,1.395176,
+ -0.422758,-0.178302,0.888529,0.550658,-0.633015,1.331311,
+ -0.387895,-0.42081,0.820034,-0.04157,-1.143825,1.395176,
+ -0.504483,-0.438591,0.743731,0.527724,-0.862854,1.253811,
+ -0.504483,-0.438591,0.743731,0.527724,-0.862854,1.253811,
+ -0.387895,-0.42081,0.820034,-0.04157,-1.143825,1.395176,
+ -0.433119,-0.541142,0.720814,-0.071941,-1.346991,1.237379,
+ -0.504483,-0.438591,0.743731,0.527724,-0.862854,1.253811,
+ -0.433119,-0.541142,0.720814,-0.071941,-1.346991,1.237379,
+ -0.53858,-0.616298,0.57455,0.544825,-1.133123,1.096902,
+ -0.53858,-0.616298,0.57455,0.544825,-1.133123,1.096902,
+ -0.433119,-0.541142,0.720814,-0.071941,-1.346991,1.237379,
+ -0.455057,-0.684123,0.569999,-0.0723,-1.450245,1.087397,
+ -0.53858,-0.616298,0.57455,0.544825,-1.133123,1.096902,
+ -0.455057,-0.684123,0.569999,-0.0723,-1.450245,1.087397,
+ -0.507894,-0.767261,0.391606,0.530629,-1.316423,0.929842,
+ -0.507894,-0.767261,0.391606,0.530629,-1.316423,0.929842,
+ -0.455057,-0.684123,0.569999,-0.0723,-1.450245,1.087397,
+ -0.084259,-0.367691,0.926123,-0.063012,-1.583021,0.865082,
+ -0.507894,-0.767261,0.391606,0.530629,-1.316423,0.929842,
+ -0.084259,-0.367691,0.926123,-0.063012,-1.583021,0.865082,
+ -0.375453,-0.69207,0.616502,0.538756,-1.408602,0.764911,
+ -0.375453,-0.69207,0.616502,0.538756,-1.408602,0.764911,
+ -0.084259,-0.367691,0.926123,-0.063012,-1.583021,0.865082,
+ 0.061261,0.954316,0.292452,-0.07847,-1.688266,0.80023,
+ -0.375453,-0.69207,0.616502,0.538756,-1.408602,0.764911,
+ 0.061261,0.954316,0.292452,-0.07847,-1.688266,0.80023,
+ -0.1427,-0.847733,0.510868,0.489819,-1.524947,0.672392,
+ 0.061261,0.954316,0.292452,-0.07847,-1.688266,0.80023,
+ 0.076968,0.969253,0.233719,-0.094135,-1.769086,0.556924,
+ -0.1427,-0.847733,0.510868,0.489819,-1.524947,0.672392,
+ -0.009814,-0.999952,0,-0.547248,1.742126,0,
+ -0.098179,0.995169,0,-0.866132,1.75467,0,
+ 0.136965,0.155729,0.978258,-0.894132,1.712652,0.151911,
+ -0.009814,-0.999952,0,-0.547248,1.742126,0,
+ 0.136965,0.155729,0.978258,-0.894132,1.712652,0.151911,
+ -0.021294,0.896295,0.442946,-0.559706,1.69418,0.186107,
+ -0.021294,0.896295,0.442946,-0.559706,1.69418,0.186107,
+ 0.136965,0.155729,0.978258,-0.894132,1.712652,0.151911,
+ 0.173447,0.205435,0.963178,-0.954897,1.677544,0.293034,
+ -0.021294,0.896295,0.442946,-0.559706,1.69418,0.186107,
+ 0.173447,0.205435,0.963178,-0.954897,1.677544,0.293034,
+ -0.072244,0.618144,0.782738,-0.557624,1.641278,0.271462,
+ -0.072244,0.618144,0.782738,-0.557624,1.641278,0.271462,
+ 0.173447,0.205435,0.963178,-0.954897,1.677544,0.293034,
+ 0.136801,0.29658,0.945159,-1.017767,1.607824,0.541965,
+ -0.072244,0.618144,0.782738,-0.557624,1.641278,0.271462,
+ 0.136801,0.29658,0.945159,-1.017767,1.607824,0.541965,
+ -0.038944,0.247819,0.968023,-0.626493,1.585426,0.443136,
+ -0.038944,0.247819,0.968023,-0.626493,1.585426,0.443136,
+ 0.136801,0.29658,0.945159,-1.017767,1.607824,0.541965,
+ 0.095019,0.330845,0.938889,-1.04607,1.509097,0.76106,
+ -0.038944,0.247819,0.968023,-0.626493,1.585426,0.443136,
+ 0.095019,0.330845,0.938889,-1.04607,1.509097,0.76106,
+ -0.00315,0.115338,0.993321,-0.597781,1.48962,0.641047,
+ -0.00315,0.115338,0.993321,-0.597781,1.48962,0.641047,
+ 0.095019,0.330845,0.938889,-1.04607,1.509097,0.76106,
+ 0.07657,0.16758,0.982881,-1.115594,1.39238,0.819623,
+ -0.00315,0.115338,0.993321,-0.597781,1.48962,0.641047,
+ 0.07657,0.16758,0.982881,-1.115594,1.39238,0.819623,
+ 0.016683,0.197618,0.980137,-0.674657,1.333008,0.761059,
+ 0.016683,0.197618,0.980137,-0.674657,1.333008,0.761059,
+ 0.07657,0.16758,0.982881,-1.115594,1.39238,0.819623,
+ 0.079214,-0.175111,0.981357,-1.278903,1.192051,0.946843,
+ 0.016683,0.197618,0.980137,-0.674657,1.333008,0.761059,
+ 0.079214,-0.175111,0.981357,-1.278903,1.192051,0.946843,
+ 0.032424,0.316591,0.948008,-0.910602,1.204118,0.83774,
+ 0.032424,0.316591,0.948008,-0.910602,1.204118,0.83774,
+ 0.079214,-0.175111,0.981357,-1.278903,1.192051,0.946843,
+ 0.204115,-0.405276,0.891116,-1.200768,0.978822,1.103391,
+ 0.032424,0.316591,0.948008,-0.910602,1.204118,0.83774,
+ 0.204115,-0.405276,0.891116,-1.200768,0.978822,1.103391,
+ 0.053195,0.343167,0.937767,-0.969076,0.901205,1.146223,
+ 0.053195,0.343167,0.937767,-0.969076,0.901205,1.146223,
+ 0.204115,-0.405276,0.891116,-1.200768,0.978822,1.103391,
+ 0.396045,-0.47666,0.784821,-1.147922,0.807955,1.254191,
+ 0.053195,0.343167,0.937767,-0.969076,0.901205,1.146223,
+ 0.396045,-0.47666,0.784821,-1.147922,0.807955,1.254191,
+ 0.057735,0.173734,0.983099,-0.752416,0.438132,1.467349,
+ 0.057735,0.173734,0.983099,-0.752416,0.438132,1.467349,
+ 0.396045,-0.47666,0.784821,-1.147922,0.807955,1.254191,
+ 0.238702,-0.258568,0.936036,-1.120716,0.424016,1.45699,
+ 0.057735,0.173734,0.983099,-0.752416,0.438132,1.467349,
+ 0.238702,-0.258568,0.936036,-1.120716,0.424016,1.45699,
+ 0.058723,-0.195869,0.97887,-0.645496,0.179261,1.584316,
+ 0.058723,-0.195869,0.97887,-0.645496,0.179261,1.584316,
+ 0.238702,-0.258568,0.936036,-1.120716,0.424016,1.45699,
+ 0.11717,0.938619,0.324447,-1.077307,0.165008,1.553393,
+ 0.058723,-0.195869,0.97887,-0.645496,0.179261,1.584316,
+ 0.11717,0.938619,0.324447,-1.077307,0.165008,1.553393,
+ 0.088769,-0.475351,0.875307,-0.536767,-0.144454,1.682232,
+ 0.088769,-0.475351,0.875307,-0.536767,-0.144454,1.682232,
+ 0.11717,0.938619,0.324447,-1.077307,0.165008,1.553393,
+ 0.080398,0.9582,0.274571,-1.053434,-0.342553,1.690245,
+ 0.088769,-0.475351,0.875307,-0.536767,-0.144454,1.682232,
+ 0.080398,0.9582,0.274571,-1.053434,-0.342553,1.690245,
+ 0.099302,-0.563694,0.819993,-0.533528,-0.58228,1.701405,
+ 0.099302,-0.563694,0.819993,-0.533528,-0.58228,1.701405,
+ 0.080398,0.9582,0.274571,-1.053434,-0.342553,1.690245,
+ 0.069061,0.958871,0.275312,-1.077209,-0.869649,1.633144,
+ 0.099302,-0.563694,0.819993,-0.533528,-0.58228,1.701405,
+ 0.069061,0.958871,0.275312,-1.077209,-0.869649,1.633144,
+ 0.093802,-0.705497,0.702478,-0.505045,-0.913827,1.645612,
+ 0.093802,-0.705497,0.702478,-0.505045,-0.913827,1.645612,
+ 0.069061,0.958871,0.275312,-1.077209,-0.869649,1.633144,
+ 0.051291,0.888276,0.456438,-1.061272,-1.141877,1.49623,
+ 0.093802,-0.705497,0.702478,-0.505045,-0.913827,1.645612,
+ 0.051291,0.888276,0.456438,-1.061272,-1.141877,1.49623,
+ 0.058028,-0.329667,0.942312,-0.487217,-1.193519,1.504026,
+ 0.058028,-0.329667,0.942312,-0.487217,-1.193519,1.504026,
+ 0.051291,0.888276,0.456438,-1.061272,-1.141877,1.49623,
+ -0.008282,0.691944,0.721904,-1.001366,-1.335897,1.353338,
+ 0.058028,-0.329667,0.942312,-0.487217,-1.193519,1.504026,
+ -0.008282,0.691944,0.721904,-1.001366,-1.335897,1.353338,
+ 0.096347,0.961203,0.258467,-0.524231,-1.399266,1.313019,
+ 0.096347,0.961203,0.258467,-0.524231,-1.399266,1.313019,
+ -0.008282,0.691944,0.721904,-1.001366,-1.335897,1.353338,
+ -0.0448,0.42163,0.905661,-0.952525,-1.440582,1.16865,
+ 0.096347,0.961203,0.258467,-0.524231,-1.399266,1.313019,
+ -0.0448,0.42163,0.905661,-0.952525,-1.440582,1.16865,
+ 0.098712,0.966371,0.23745,-0.526127,-1.495,1.167736,
+ 0.098712,0.966371,0.23745,-0.526127,-1.495,1.167736,
+ -0.0448,0.42163,0.905661,-0.952525,-1.440582,1.16865,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ 0.098712,0.966371,0.23745,-0.526127,-1.495,1.167736,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ 0.079848,0.962653,0.258695,-0.535144,-1.615983,0.920556,
+ 0.136523,0.621747,0.771228,2.881063,-0.493146,0.521968,
+ 0.478274,-0.500384,0.721713,2.736198,-0.346225,0.659345,
+ 0.245892,-0.489895,0.836385,2.688131,-0.517509,0.672975,
+ 0.048754,0.934073,0.353738,2.824356,-1.407256,0.355013,
+ 0.303729,-0.050718,0.951408,2.740886,-1.339225,0.463604,
+ 0.33122,-0.270106,0.904067,2.663024,-1.440487,0.478149,
+ -0.382074,-0.25681,-0.887732,1.337875,-0.945716,1.021299,
+ -0.53197,-0.108751,-0.839751,1.428883,-0.98669,1.133905,
+ -0.218261,-0.26262,0.93989,1.373216,-0.56462,1.106245,
+ -0.065586,-0.997847,0,-1.179474,1.786649,0,
+ 0.262234,-0.965004,0,-1.35095,1.807009,0,
+ -0.234266,0.044111,0.971171,-1.365948,1.769608,0.133901,
+ -0.065586,-0.997847,0,-1.179474,1.786649,0,
+ -0.234266,0.044111,0.971171,-1.365948,1.769608,0.133901,
+ -0.115746,0.20405,0.972094,-1.215563,1.757097,0.133494,
+ -0.115746,0.20405,0.972094,-1.215563,1.757097,0.133494,
+ -0.234266,0.044111,0.971171,-1.365948,1.769608,0.133901,
+ -0.108631,-0.122719,0.986478,-1.396332,1.723782,0.267642,
+ -0.115746,0.20405,0.972094,-1.215563,1.757097,0.133494,
+ -0.108631,-0.122719,0.986478,-1.396332,1.723782,0.267642,
+ -0.164191,0.153328,0.974439,-1.227613,1.709095,0.276029,
+ -0.164191,0.153328,0.974439,-1.227613,1.709095,0.276029,
+ -0.108631,-0.122719,0.986478,-1.396332,1.723782,0.267642,
+ -0.006683,-0.232823,0.972496,-1.417595,1.67618,0.529265,
+ -0.164191,0.153328,0.974439,-1.227613,1.709095,0.276029,
+ -0.006683,-0.232823,0.972496,-1.417595,1.67618,0.529265,
+ -0.15812,-0.033626,0.986847,-1.292756,1.656509,0.51403,
+ -0.15812,-0.033626,0.986847,-1.292756,1.656509,0.51403,
+ -0.006683,-0.232823,0.972496,-1.417595,1.67618,0.529265,
+ -0.004872,-0.216103,0.976358,-1.465432,1.655336,0.722125,
+ -0.15812,-0.033626,0.986847,-1.292756,1.656509,0.51403,
+ -0.004872,-0.216103,0.976358,-1.465432,1.655336,0.722125,
+ 0.005821,-0.234321,0.972142,-1.338488,1.613735,0.725441,
+ 0.005821,-0.234321,0.972142,-1.338488,1.613735,0.725441,
+ -0.004872,-0.216103,0.976358,-1.465432,1.655336,0.722125,
+ 0.193955,-0.251788,0.948148,-1.582187,1.567542,0.982349,
+ 0.005821,-0.234321,0.972142,-1.338488,1.613735,0.725441,
+ 0.193955,-0.251788,0.948148,-1.582187,1.567542,0.982349,
+ 0.243464,-0.335965,0.909864,-1.403848,1.533059,0.902827,
+ 0.243464,-0.335965,0.909864,-1.403848,1.533059,0.902827,
+ 0.193955,-0.251788,0.948148,-1.582187,1.567542,0.982349,
+ -0.337275,0.918092,0.208215,-1.721806,1.391264,1.113307,
+ 0.243464,-0.335965,0.909864,-1.403848,1.533059,0.902827,
+ -0.337275,0.918092,0.208215,-1.721806,1.391264,1.113307,
+ 0.49938,-0.45475,0.737443,-1.551526,1.400025,1.050193,
+ 0.49938,-0.45475,0.737443,-1.551526,1.400025,1.050193,
+ -0.337275,0.918092,0.208215,-1.721806,1.391264,1.113307,
+ -0.47652,0.732046,0.486866,-1.733703,1.083864,1.181489,
+ 0.49938,-0.45475,0.737443,-1.551526,1.400025,1.050193,
+ -0.47652,0.732046,0.486866,-1.733703,1.083864,1.181489,
+ 0.573426,-0.441087,0.69038,-1.552899,1.128654,1.15104,
+ 0.573426,-0.441087,0.69038,-1.552899,1.128654,1.15104,
+ -0.47652,0.732046,0.486866,-1.733703,1.083864,1.181489,
+ -0.505556,0.519614,0.688777,-1.807421,0.657142,1.209422,
+ 0.573426,-0.441087,0.69038,-1.552899,1.128654,1.15104,
+ -0.505556,0.519614,0.688777,-1.807421,0.657142,1.209422,
+ 0.1643,0.873906,0.457487,-1.454529,0.875045,1.238858,
+ 0.1643,0.873906,0.457487,-1.454529,0.875045,1.238858,
+ -0.505556,0.519614,0.688777,-1.807421,0.657142,1.209422,
+ -0.539732,0.31653,0.780063,-1.796156,0.452382,1.243643,
+ 0.1643,0.873906,0.457487,-1.454529,0.875045,1.238858,
+ -0.539732,0.31653,0.780063,-1.796156,0.452382,1.243643,
+ -0.012448,0.906487,0.422051,-1.405685,0.573835,1.352181,
+ -0.012448,0.906487,0.422051,-1.405685,0.573835,1.352181,
+ -0.539732,0.31653,0.780063,-1.796156,0.452382,1.243643,
+ -0.545639,0.142044,0.825894,-1.81092,0.287592,1.292257,
+ -0.012448,0.906487,0.422051,-1.405685,0.573835,1.352181,
+ -0.545639,0.142044,0.825894,-1.81092,0.287592,1.292257,
+ -0.051905,0.965082,0.256753,-1.479588,0.295746,1.440042,
+ -0.051905,0.965082,0.256753,-1.479588,0.295746,1.440042,
+ -0.545639,0.142044,0.825894,-1.81092,0.287592,1.292257,
+ -0.512472,0.102596,0.852553,-1.79513,0.033439,1.37116,
+ -0.051905,0.965082,0.256753,-1.479588,0.295746,1.440042,
+ -0.512472,0.102596,0.852553,-1.79513,0.033439,1.37116,
+ -0.088843,0.888,0.45118,-1.489699,-0.024215,1.510987,
+ -0.088843,0.888,0.45118,-1.489699,-0.024215,1.510987,
+ -0.512472,0.102596,0.852553,-1.79513,0.033439,1.37116,
+ -0.449233,0.123555,0.88483,-1.802864,-0.282523,1.401315,
+ -0.088843,0.888,0.45118,-1.489699,-0.024215,1.510987,
+ -0.449233,0.123555,0.88483,-1.802864,-0.282523,1.401315,
+ -0.169971,0.704712,0.688832,-1.395501,-0.698702,1.553257,
+ -0.169971,0.704712,0.688832,-1.395501,-0.698702,1.553257,
+ -0.449233,0.123555,0.88483,-1.802864,-0.282523,1.401315,
+ -0.404056,0.117264,0.907187,-1.837859,-0.540871,1.295851,
+ -0.169971,0.704712,0.688832,-1.395501,-0.698702,1.553257,
+ -0.404056,0.117264,0.907187,-1.837859,-0.540871,1.295851,
+ -0.261543,0.44691,0.855492,-1.376176,-0.948757,1.451608,
+ -0.261543,0.44691,0.855492,-1.376176,-0.948757,1.451608,
+ -0.404056,0.117264,0.907187,-1.837859,-0.540871,1.295851,
+ -0.387051,0.087836,0.917865,-1.782928,-0.770786,1.173619,
+ -0.261543,0.44691,0.855492,-1.376176,-0.948757,1.451608,
+ -0.387051,0.087836,0.917865,-1.782928,-0.770786,1.173619,
+ -0.33898,0.203127,0.918603,-1.402349,-1.127845,1.309055,
+ -0.33898,0.203127,0.918603,-1.402349,-1.127845,1.309055,
+ -0.387051,0.087836,0.917865,-1.782928,-0.770786,1.173619,
+ -0.390861,0.032481,0.919876,-1.757573,-0.945337,1.075832,
+ -0.33898,0.203127,0.918603,-1.402349,-1.127845,1.309055,
+ -0.390861,0.032481,0.919876,-1.757573,-0.945337,1.075832,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ 0.262234,-0.965004,0,-1.35095,1.807009,0,
+ 0.021487,0.999769,0,-1.67651,1.826886,0,
+ -0.373751,-0.169261,0.911954,-1.683863,1.789041,0.121501,
+ 0.262234,-0.965004,0,-1.35095,1.807009,0,
+ -0.373751,-0.169261,0.911954,-1.683863,1.789041,0.121501,
+ -0.234266,0.044111,0.971171,-1.365948,1.769608,0.133901,
+ -0.234266,0.044111,0.971171,-1.365948,1.769608,0.133901,
+ -0.373751,-0.169261,0.911954,-1.683863,1.789041,0.121501,
+ -0.426971,-0.09322,0.899447,-1.714432,1.747956,0.247594,
+ -0.234266,0.044111,0.971171,-1.365948,1.769608,0.133901,
+ -0.426971,-0.09322,0.899447,-1.714432,1.747956,0.247594,
+ -0.108631,-0.122719,0.986478,-1.396332,1.723782,0.267642,
+ -0.108631,-0.122719,0.986478,-1.396332,1.723782,0.267642,
+ -0.426971,-0.09322,0.899447,-1.714432,1.747956,0.247594,
+ -0.457657,0.090776,0.884483,-1.744732,1.734849,0.433807,
+ -0.108631,-0.122719,0.986478,-1.396332,1.723782,0.267642,
+ -0.457657,0.090776,0.884483,-1.744732,1.734849,0.433807,
+ -0.006683,-0.232823,0.972496,-1.417595,1.67618,0.529265,
+ -0.006683,-0.232823,0.972496,-1.417595,1.67618,0.529265,
+ -0.457657,0.090776,0.884483,-1.744732,1.734849,0.433807,
+ -0.575033,0.794917,0.193504,-1.929731,1.617188,0.80639,
+ -0.006683,-0.232823,0.972496,-1.417595,1.67618,0.529265,
+ -0.575033,0.794917,0.193504,-1.929731,1.617188,0.80639,
+ -0.004872,-0.216103,0.976358,-1.465432,1.655336,0.722125,
+ -0.004872,-0.216103,0.976358,-1.465432,1.655336,0.722125,
+ -0.575033,0.794917,0.193504,-1.929731,1.617188,0.80639,
+ -0.636638,0.552106,0.538397,-1.996117,1.387891,1.064104,
+ -0.004872,-0.216103,0.976358,-1.465432,1.655336,0.722125,
+ -0.636638,0.552106,0.538397,-1.996117,1.387891,1.064104,
+ 0.193955,-0.251788,0.948148,-1.582187,1.567542,0.982349,
+ 0.193955,-0.251788,0.948148,-1.582187,1.567542,0.982349,
+ -0.636638,0.552106,0.538397,-1.996117,1.387891,1.064104,
+ -0.643784,0.341688,0.684684,-1.980388,1.134038,1.143196,
+ 0.193955,-0.251788,0.948148,-1.582187,1.567542,0.982349,
+ -0.643784,0.341688,0.684684,-1.980388,1.134038,1.143196,
+ -0.337275,0.918092,0.208215,-1.721806,1.391264,1.113307,
+ -0.337275,0.918092,0.208215,-1.721806,1.391264,1.113307,
+ -0.643784,0.341688,0.684684,-1.980388,1.134038,1.143196,
+ -0.646492,0.202786,0.735477,-2.013663,0.810726,1.158827,
+ -0.337275,0.918092,0.208215,-1.721806,1.391264,1.113307,
+ -0.646492,0.202786,0.735477,-2.013663,0.810726,1.158827,
+ -0.47652,0.732046,0.486866,-1.733703,1.083864,1.181489,
+ -0.47652,0.732046,0.486866,-1.733703,1.083864,1.181489,
+ -0.646492,0.202786,0.735477,-2.013663,0.810726,1.158827,
+ -0.624566,0.121329,0.77149,-2.030191,0.547622,1.189762,
+ -0.47652,0.732046,0.486866,-1.733703,1.083864,1.181489,
+ -0.624566,0.121329,0.77149,-2.030191,0.547622,1.189762,
+ -0.505556,0.519614,0.688777,-1.807421,0.657142,1.209422,
+ -0.505556,0.519614,0.688777,-1.807421,0.657142,1.209422,
+ -0.624566,0.121329,0.77149,-2.030191,0.547622,1.189762,
+ -0.588582,0.130278,0.797872,-2.021159,0.411979,1.234679,
+ -0.505556,0.519614,0.688777,-1.807421,0.657142,1.209422,
+ -0.588582,0.130278,0.797872,-2.021159,0.411979,1.234679,
+ -0.539732,0.31653,0.780063,-1.796156,0.452382,1.243643,
+ -0.539732,0.31653,0.780063,-1.796156,0.452382,1.243643,
+ -0.588582,0.130278,0.797872,-2.021159,0.411979,1.234679,
+ -0.553145,0.120209,0.824367,-1.932916,0.232972,1.304589,
+ -0.539732,0.31653,0.780063,-1.796156,0.452382,1.243643,
+ -0.553145,0.120209,0.824367,-1.932916,0.232972,1.304589,
+ -0.545639,0.142044,0.825894,-1.81092,0.287592,1.292257,
+ -0.545639,0.142044,0.825894,-1.81092,0.287592,1.292257,
+ -0.553145,0.120209,0.824367,-1.932916,0.232972,1.304589,
+ -0.547788,0.055501,0.834774,-1.897394,0.037852,1.365798,
+ -0.545639,0.142044,0.825894,-1.81092,0.287592,1.292257,
+ -0.547788,0.055501,0.834774,-1.897394,0.037852,1.365798,
+ -0.512472,0.102596,0.852553,-1.79513,0.033439,1.37116,
+ -0.512472,0.102596,0.852553,-1.79513,0.033439,1.37116,
+ -0.547788,0.055501,0.834774,-1.897394,0.037852,1.365798,
+ -0.563128,0.005618,0.826351,-1.950547,-0.275573,1.377028,
+ -0.512472,0.102596,0.852553,-1.79513,0.033439,1.37116,
+ -0.563128,0.005618,0.826351,-1.950547,-0.275573,1.377028,
+ -0.449233,0.123555,0.88483,-1.802864,-0.282523,1.401315,
+ -0.449233,0.123555,0.88483,-1.802864,-0.282523,1.401315,
+ -0.563128,0.005618,0.826351,-1.950547,-0.275573,1.377028,
+ -0.596319,-0.021767,0.802452,-2.033655,-0.526012,1.277639,
+ -0.449233,0.123555,0.88483,-1.802864,-0.282523,1.401315,
+ -0.596319,-0.021767,0.802452,-2.033655,-0.526012,1.277639,
+ -0.404056,0.117264,0.907187,-1.837859,-0.540871,1.295851,
+ -0.404056,0.117264,0.907187,-1.837859,-0.540871,1.295851,
+ -0.596319,-0.021767,0.802452,-2.033655,-0.526012,1.277639,
+ -0.626255,-0.080061,0.775497,-2.050292,-0.755566,1.114167,
+ -0.404056,0.117264,0.907187,-1.837859,-0.540871,1.295851,
+ -0.626255,-0.080061,0.775497,-2.050292,-0.755566,1.114167,
+ -0.387051,0.087836,0.917865,-1.782928,-0.770786,1.173619,
+ -0.387051,0.087836,0.917865,-1.782928,-0.770786,1.173619,
+ -0.626255,-0.080061,0.775497,-2.050292,-0.755566,1.114167,
+ -0.6343,-0.110875,0.765095,-2.043593,-0.875823,1.028879,
+ -0.387051,0.087836,0.917865,-1.782928,-0.770786,1.173619,
+ -0.6343,-0.110875,0.765095,-2.043593,-0.875823,1.028879,
+ -0.390861,0.032481,0.919876,-1.757573,-0.945337,1.075832,
+ -0.390861,0.032481,0.919876,-1.757573,-0.945337,1.075832,
+ -0.6343,-0.110875,0.765095,-2.043593,-0.875823,1.028879,
+ -0.619245,-0.050391,0.783579,-2.033406,-0.91003,0.96422,
+ -0.390861,0.032481,0.919876,-1.757573,-0.945337,1.075832,
+ -0.619245,-0.050391,0.783579,-2.033406,-0.91003,0.96422,
+ -0.379807,-0.084066,0.921238,-1.782298,-1.020581,0.943381,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ -0.0448,0.42163,0.905661,-0.952525,-1.440582,1.16865,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.742985,0.015712,0.669123,-1.198513,-1.456102,0.885435,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.390861,0.032481,0.919876,-1.757573,-0.945337,1.075832,
+ -0.379807,-0.084066,0.921238,-1.782298,-1.020581,0.943381,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.379807,-0.084066,0.921238,-1.782298,-1.020581,0.943381,
+ -0.982334,-0.04331,0.182057,-1.456655,-1.295527,0.89424,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.982334,-0.04331,0.182057,-1.456655,-1.295527,0.89424,
+ -0.311485,0.082882,0.94663,-1.366873,-1.340211,0.907567,
+ -0.351241,0.07582,0.93321,-1.407658,-1.236026,1.11293,
+ -0.311485,0.082882,0.94663,-1.366873,-1.340211,0.907567,
+ -0.742985,0.015712,0.669123,-1.198513,-1.456102,0.885435,
+ 0.021487,0.999769,0,-1.67651,1.826886,0,
+ 0.181762,-0.983343,0,-2.057387,1.841308,0,
+ -0.549206,0.149158,0.822268,-2.079597,1.817785,0.138375,
+ 0.021487,0.999769,0,-1.67651,1.826886,0,
+ -0.549206,0.149158,0.822268,-2.079597,1.817785,0.138375,
+ -0.373751,-0.169261,0.911954,-1.683863,1.789041,0.121501,
+ -0.373751,-0.169261,0.911954,-1.683863,1.789041,0.121501,
+ -0.549206,0.149158,0.822268,-2.079597,1.817785,0.138375,
+ -0.881408,0.44424,0.16053,-2.10017,1.78998,0.229245,
+ -0.373751,-0.169261,0.911954,-1.683863,1.789041,0.121501,
+ -0.881408,0.44424,0.16053,-2.10017,1.78998,0.229245,
+ -0.426971,-0.09322,0.899447,-1.714432,1.747956,0.247594,
+ -0.426971,-0.09322,0.899447,-1.714432,1.747956,0.247594,
+ -0.881408,0.44424,0.16053,-2.10017,1.78998,0.229245,
+ -0.881352,0.261345,0.393596,-2.137524,1.753182,0.433142,
+ -0.426971,-0.09322,0.899447,-1.714432,1.747956,0.247594,
+ -0.881352,0.261345,0.393596,-2.137524,1.753182,0.433142,
+ -0.457657,0.090776,0.884483,-1.744732,1.734849,0.433807,
+ -0.457657,0.090776,0.884483,-1.744732,1.734849,0.433807,
+ -0.881352,0.261345,0.393596,-2.137524,1.753182,0.433142,
+ -0.880731,0.130088,0.4554,-2.172139,1.62301,0.805318,
+ -0.457657,0.090776,0.884483,-1.744732,1.734849,0.433807,
+ -0.880731,0.130088,0.4554,-2.172139,1.62301,0.805318,
+ -0.575033,0.794917,0.193504,-1.929731,1.617188,0.80639,
+ -0.575033,0.794917,0.193504,-1.929731,1.617188,0.80639,
+ -0.880731,0.130088,0.4554,-2.172139,1.62301,0.805318,
+ -0.874101,0.053175,0.482825,-2.205791,1.356023,1.081662,
+ -0.575033,0.794917,0.193504,-1.929731,1.617188,0.80639,
+ -0.874101,0.053175,0.482825,-2.205791,1.356023,1.081662,
+ -0.636638,0.552106,0.538397,-1.996117,1.387891,1.064104,
+ -0.636638,0.552106,0.538397,-1.996117,1.387891,1.064104,
+ -0.874101,0.053175,0.482825,-2.205791,1.356023,1.081662,
+ -0.875552,0.01506,0.482889,-2.296056,1.06281,1.171139,
+ -0.636638,0.552106,0.538397,-1.996117,1.387891,1.064104,
+ -0.875552,0.01506,0.482889,-2.296056,1.06281,1.171139,
+ -0.643784,0.341688,0.684684,-1.980388,1.134038,1.143196,
+ -0.643784,0.341688,0.684684,-1.980388,1.134038,1.143196,
+ -0.875552,0.01506,0.482889,-2.296056,1.06281,1.171139,
+ -0.86587,-0.001845,0.500266,-2.298249,0.768333,1.203884,
+ -0.643784,0.341688,0.684684,-1.980388,1.134038,1.143196,
+ -0.86587,-0.001845,0.500266,-2.298249,0.768333,1.203884,
+ -0.646492,0.202786,0.735477,-2.013663,0.810726,1.158827,
+ -0.646492,0.202786,0.735477,-2.013663,0.810726,1.158827,
+ -0.86587,-0.001845,0.500266,-2.298249,0.768333,1.203884,
+ -0.84112,-0.026303,0.540209,-2.256285,0.547326,1.238301,
+ -0.646492,0.202786,0.735477,-2.013663,0.810726,1.158827,
+ -0.84112,-0.026303,0.540209,-2.256285,0.547326,1.238301,
+ -0.624566,0.121329,0.77149,-2.030191,0.547622,1.189762,
+ -0.624566,0.121329,0.77149,-2.030191,0.547622,1.189762,
+ -0.84112,-0.026303,0.540209,-2.256285,0.547326,1.238301,
+ -0.813168,-0.06637,0.578232,-2.1584,0.381542,1.272962,
+ -0.624566,0.121329,0.77149,-2.030191,0.547622,1.189762,
+ -0.813168,-0.06637,0.578232,-2.1584,0.381542,1.272962,
+ -0.588582,0.130278,0.797872,-2.021159,0.411979,1.234679,
+ -0.588582,0.130278,0.797872,-2.021159,0.411979,1.234679,
+ -0.813168,-0.06637,0.578232,-2.1584,0.381542,1.272962,
+ -0.799953,-0.096213,0.592299,-2.070413,0.207766,1.335106,
+ -0.588582,0.130278,0.797872,-2.021159,0.411979,1.234679,
+ -0.799953,-0.096213,0.592299,-2.070413,0.207766,1.335106,
+ -0.553145,0.120209,0.824367,-1.932916,0.232972,1.304589,
+ -0.553145,0.120209,0.824367,-1.932916,0.232972,1.304589,
+ -0.799953,-0.096213,0.592299,-2.070413,0.207766,1.335106,
+ -0.811102,-0.12903,0.570495,-2.064786,0.018789,1.411866,
+ -0.553145,0.120209,0.824367,-1.932916,0.232972,1.304589,
+ -0.811102,-0.12903,0.570495,-2.064786,0.018789,1.411866,
+ -0.547788,0.055501,0.834774,-1.897394,0.037852,1.365798,
+ -0.547788,0.055501,0.834774,-1.897394,0.037852,1.365798,
+ -0.811102,-0.12903,0.570495,-2.064786,0.018789,1.411866,
+ -0.848349,-0.120539,0.515533,-2.187634,-0.375454,1.406902,
+ -0.547788,0.055501,0.834774,-1.897394,0.037852,1.365798,
+ -0.848349,-0.120539,0.515533,-2.187634,-0.375454,1.406902,
+ -0.563128,0.005618,0.826351,-1.950547,-0.275573,1.377028,
+ -0.563128,0.005618,0.826351,-1.950547,-0.275573,1.377028,
+ -0.848349,-0.120539,0.515533,-2.187634,-0.375454,1.406902,
+ -0.880002,-0.033987,0.473752,-2.276341,-0.689823,1.268026,
+ -0.563128,0.005618,0.826351,-1.950547,-0.275573,1.377028,
+ -0.880002,-0.033987,0.473752,-2.276341,-0.689823,1.268026,
+ -0.596319,-0.021767,0.802452,-2.033655,-0.526012,1.277639,
+ -0.596319,-0.021767,0.802452,-2.033655,-0.526012,1.277639,
+ -0.880002,-0.033987,0.473752,-2.276341,-0.689823,1.268026,
+ -0.870332,0.069095,0.487595,-2.292049,-0.933921,1.128136,
+ -0.596319,-0.021767,0.802452,-2.033655,-0.526012,1.277639,
+ -0.870332,0.069095,0.487595,-2.292049,-0.933921,1.128136,
+ -0.626255,-0.080061,0.775497,-2.050292,-0.755566,1.114167,
+ -0.626255,-0.080061,0.775497,-2.050292,-0.755566,1.114167,
+ -0.870332,0.069095,0.487595,-2.292049,-0.933921,1.128136,
+ 0.074896,0.047734,0.996048,-2.299356,-1.025449,1.044687,
+ -0.626255,-0.080061,0.775497,-2.050292,-0.755566,1.114167,
+ 0.074896,0.047734,0.996048,-2.299356,-1.025449,1.044687,
+ -0.6343,-0.110875,0.765095,-2.043593,-0.875823,1.028879,
+ -0.6343,-0.110875,0.765095,-2.043593,-0.875823,1.028879,
+ 0.074896,0.047734,0.996048,-2.299356,-1.025449,1.044687,
+ -0.822733,0.223687,0.522565,-2.306662,-1.116976,0.961238,
+ -0.6343,-0.110875,0.765095,-2.043593,-0.875823,1.028879,
+ -0.822733,0.223687,0.522565,-2.306662,-1.116976,0.961238,
+ -0.619245,-0.050391,0.783579,-2.033406,-0.91003,0.96422,
+ 0.181762,-0.983343,0,-2.057387,1.841308,0,
+ 0.03611,0.999348,0,-2.629466,1.918204,0,
+ -0.946902,-0.290276,-0.138264,-2.672899,1.90511,0.067168,
+ 0.181762,-0.983343,0,-2.057387,1.841308,0,
+ -0.946902,-0.290276,-0.138264,-2.672899,1.90511,0.067168,
+ -0.549206,0.149158,0.822268,-2.079597,1.817785,0.138375,
+ -0.549206,0.149158,0.822268,-2.079597,1.817785,0.138375,
+ -0.946902,-0.290276,-0.138264,-2.672899,1.90511,0.067168,
+ -0.982633,-0.14343,-0.11773,-2.697367,1.871291,0.218796,
+ -0.549206,0.149158,0.822268,-2.079597,1.817785,0.138375,
+ -0.982633,-0.14343,-0.11773,-2.697367,1.871291,0.218796,
+ -0.881408,0.44424,0.16053,-2.10017,1.78998,0.229245,
+ -0.881408,0.44424,0.16053,-2.10017,1.78998,0.229245,
+ -0.982633,-0.14343,-0.11773,-2.697367,1.871291,0.218796,
+ -0.995584,-0.070631,-0.061842,-2.703112,1.825435,0.395127,
+ -0.881408,0.44424,0.16053,-2.10017,1.78998,0.229245,
+ -0.995584,-0.070631,-0.061842,-2.703112,1.825435,0.395127,
+ -0.881352,0.261345,0.393596,-2.137524,1.753182,0.433142,
+ -0.881352,0.261345,0.393596,-2.137524,1.753182,0.433142,
+ -0.995584,-0.070631,-0.061842,-2.703112,1.825435,0.395127,
+ -0.997475,-0.070819,-0.005318,-2.715246,1.746763,0.604653,
+ -0.881352,0.261345,0.393596,-2.137524,1.753182,0.433142,
+ -0.997475,-0.070819,-0.005318,-2.715246,1.746763,0.604653,
+ -0.880731,0.130088,0.4554,-2.172139,1.62301,0.805318,
+ -0.880731,0.130088,0.4554,-2.172139,1.62301,0.805318,
+ -0.997475,-0.070819,-0.005318,-2.715246,1.746763,0.604653,
+ -0.980175,-0.184883,-0.071243,-2.71748,1.576797,0.875971,
+ -0.880731,0.130088,0.4554,-2.172139,1.62301,0.805318,
+ -0.980175,-0.184883,-0.071243,-2.71748,1.576797,0.875971,
+ -0.874101,0.053175,0.482825,-2.205791,1.356023,1.081662,
+ -0.874101,0.053175,0.482825,-2.205791,1.356023,1.081662,
+ -0.980175,-0.184883,-0.071243,-2.71748,1.576797,0.875971,
+ -0.976177,-0.17359,-0.130171,-2.68493,1.262021,1.11049,
+ -0.874101,0.053175,0.482825,-2.205791,1.356023,1.081662,
+ -0.976177,-0.17359,-0.130171,-2.68493,1.262021,1.11049,
+ -0.875552,0.01506,0.482889,-2.296056,1.06281,1.171139,
+ -0.875552,0.01506,0.482889,-2.296056,1.06281,1.171139,
+ -0.976177,-0.17359,-0.130171,-2.68493,1.262021,1.11049,
+ -0.984416,-0.175855,0.000915,-2.572286,0.835495,1.252192,
+ -0.875552,0.01506,0.482889,-2.296056,1.06281,1.171139,
+ -0.984416,-0.175855,0.000915,-2.572286,0.835495,1.252192,
+ -0.86587,-0.001845,0.500266,-2.298249,0.768333,1.203884,
+ -0.86587,-0.001845,0.500266,-2.298249,0.768333,1.203884,
+ -0.984416,-0.175855,0.000915,-2.572286,0.835495,1.252192,
+ -0.977902,-0.171035,0.12023,-2.536112,0.656633,1.269661,
+ -0.86587,-0.001845,0.500266,-2.298249,0.768333,1.203884,
+ -0.977902,-0.171035,0.12023,-2.536112,0.656633,1.269661,
+ -0.84112,-0.026303,0.540209,-2.256285,0.547326,1.238301,
+ -0.84112,-0.026303,0.540209,-2.256285,0.547326,1.238301,
+ -0.977902,-0.171035,0.12023,-2.536112,0.656633,1.269661,
+ -0.964119,-0.189683,0.18573,-2.520947,0.559036,1.273617,
+ -0.84112,-0.026303,0.540209,-2.256285,0.547326,1.238301,
+ -0.964119,-0.189683,0.18573,-2.520947,0.559036,1.273617,
+ -0.813168,-0.06637,0.578232,-2.1584,0.381542,1.272962,
+ -0.813168,-0.06637,0.578232,-2.1584,0.381542,1.272962,
+ -0.964119,-0.189683,0.18573,-2.520947,0.559036,1.273617,
+ -0.955381,-0.23808,0.174826,-2.47375,0.300945,1.316695,
+ -0.813168,-0.06637,0.578232,-2.1584,0.381542,1.272962,
+ -0.955381,-0.23808,0.174826,-2.47375,0.300945,1.316695,
+ -0.799953,-0.096213,0.592299,-2.070413,0.207766,1.335106,
+ -0.799953,-0.096213,0.592299,-2.070413,0.207766,1.335106,
+ -0.955381,-0.23808,0.174826,-2.47375,0.300945,1.316695,
+ -0.843742,-0.096325,0.528036,-2.433366,0.078222,1.371269,
+ -0.799953,-0.096213,0.592299,-2.070413,0.207766,1.335106,
+ -0.843742,-0.096325,0.528036,-2.433366,0.078222,1.371269,
+ -0.811102,-0.12903,0.570495,-2.064786,0.018789,1.411866,
+ -0.811102,-0.12903,0.570495,-2.064786,0.018789,1.411866,
+ -0.843742,-0.096325,0.528036,-2.433366,0.078222,1.371269,
+ 0.028952,-0.016247,0.999449,-2.41473,-0.108377,1.395384,
+ -0.811102,-0.12903,0.570495,-2.064786,0.018789,1.411866,
+ 0.028952,-0.016247,0.999449,-2.41473,-0.108377,1.395384,
+ -0.848349,-0.120539,0.515533,-2.187634,-0.375454,1.406902,
+ -0.848349,-0.120539,0.515533,-2.187634,-0.375454,1.406902,
+ 0.028952,-0.016247,0.999449,-2.41473,-0.108377,1.395384,
+ 0.093953,-0.049433,0.994349,-2.38292,-0.41745,1.375045,
+ -0.848349,-0.120539,0.515533,-2.187634,-0.375454,1.406902,
+ 0.093953,-0.049433,0.994349,-2.38292,-0.41745,1.375045,
+ -0.880002,-0.033987,0.473752,-2.276341,-0.689823,1.268026,
+ -0.880002,-0.033987,0.473752,-2.276341,-0.689823,1.268026,
+ 0.093953,-0.049433,0.994349,-2.38292,-0.41745,1.375045,
+ 0.335613,-0.388493,0.858159,-2.430508,-0.822313,1.254486,
+ -0.880002,-0.033987,0.473752,-2.276341,-0.689823,1.268026,
+ 0.335613,-0.388493,0.858159,-2.430508,-0.822313,1.254486,
+ -0.870332,0.069095,0.487595,-2.292049,-0.933921,1.128136,
+ -0.870332,0.069095,0.487595,-2.292049,-0.933921,1.128136,
+ 0.335613,-0.388493,0.858159,-2.430508,-0.822313,1.254486,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ -0.870332,0.069095,0.487595,-2.292049,-0.933921,1.128136,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ 0.074896,0.047734,0.996048,-2.299356,-1.025449,1.044687,
+ 0.03611,0.999348,0,-2.629466,1.918204,0,
+ 0.012502,-0.999922,0,-3.037562,2.001526,0,
+ 0.137764,-0.289893,0.947092,-3.053102,1.96881,0.051104,
+ 0.03611,0.999348,0,-2.629466,1.918204,0,
+ 0.137764,-0.289893,0.947092,-3.053102,1.96881,0.051104,
+ -0.946902,-0.290276,-0.138264,-2.672899,1.90511,0.067168,
+ -0.946902,-0.290276,-0.138264,-2.672899,1.90511,0.067168,
+ 0.137764,-0.289893,0.947092,-3.053102,1.96881,0.051104,
+ 0.137206,-0.207537,0.968557,-3.077669,1.871112,0.217368,
+ -0.946902,-0.290276,-0.138264,-2.672899,1.90511,0.067168,
+ 0.137206,-0.207537,0.968557,-3.077669,1.871112,0.217368,
+ -0.982633,-0.14343,-0.11773,-2.697367,1.871291,0.218796,
+ -0.982633,-0.14343,-0.11773,-2.697367,1.871291,0.218796,
+ 0.137206,-0.207537,0.968557,-3.077669,1.871112,0.217368,
+ 0.094371,-0.230057,0.968591,-3.07531,1.846,0.363149,
+ -0.982633,-0.14343,-0.11773,-2.697367,1.871291,0.218796,
+ 0.094371,-0.230057,0.968591,-3.07531,1.846,0.363149,
+ -0.995584,-0.070631,-0.061842,-2.703112,1.825435,0.395127,
+ -0.995584,-0.070631,-0.061842,-2.703112,1.825435,0.395127,
+ 0.094371,-0.230057,0.968591,-3.07531,1.846,0.363149,
+ -0.201818,-0.568242,0.797728,-3.109047,1.789477,0.565323,
+ -0.995584,-0.070631,-0.061842,-2.703112,1.825435,0.395127,
+ -0.201818,-0.568242,0.797728,-3.109047,1.789477,0.565323,
+ -0.997475,-0.070819,-0.005318,-2.715246,1.746763,0.604653,
+ -0.997475,-0.070819,-0.005318,-2.715246,1.746763,0.604653,
+ -0.201818,-0.568242,0.797728,-3.109047,1.789477,0.565323,
+ 0.357021,-0.590654,0.723646,-3.08565,1.65734,0.784479,
+ -0.997475,-0.070819,-0.005318,-2.715246,1.746763,0.604653,
+ 0.357021,-0.590654,0.723646,-3.08565,1.65734,0.784479,
+ -0.980175,-0.184883,-0.071243,-2.71748,1.576797,0.875971,
+ -0.980175,-0.184883,-0.071243,-2.71748,1.576797,0.875971,
+ 0.357021,-0.590654,0.723646,-3.08565,1.65734,0.784479,
+ 0.008663,-0.516082,0.856495,-3.028932,1.461517,0.941324,
+ -0.980175,-0.184883,-0.071243,-2.71748,1.576797,0.875971,
+ 0.008663,-0.516082,0.856495,-3.028932,1.461517,0.941324,
+ -0.976177,-0.17359,-0.130171,-2.68493,1.262021,1.11049,
+ -0.976177,-0.17359,-0.130171,-2.68493,1.262021,1.11049,
+ 0.008663,-0.516082,0.856495,-3.028932,1.461517,0.941324,
+ 0.106237,-0.558927,0.822383,-2.930312,1.10358,1.125876,
+ -0.976177,-0.17359,-0.130171,-2.68493,1.262021,1.11049,
+ 0.106237,-0.558927,0.822383,-2.930312,1.10358,1.125876,
+ -0.984416,-0.175855,0.000915,-2.572286,0.835495,1.252192,
+ -0.984416,-0.175855,0.000915,-2.572286,0.835495,1.252192,
+ 0.106237,-0.558927,0.822383,-2.930312,1.10358,1.125876,
+ 0.155794,-0.590112,0.792146,-2.825835,0.755899,1.209042,
+ -0.984416,-0.175855,0.000915,-2.572286,0.835495,1.252192,
+ 0.155794,-0.590112,0.792146,-2.825835,0.755899,1.209042,
+ -0.977902,-0.171035,0.12023,-2.536112,0.656633,1.269661,
+ -0.977902,-0.171035,0.12023,-2.536112,0.656633,1.269661,
+ 0.155794,-0.590112,0.792146,-2.825835,0.755899,1.209042,
+ 0.08565,-0.422547,0.902285,-2.79063,0.46881,1.224273,
+ -0.977902,-0.171035,0.12023,-2.536112,0.656633,1.269661,
+ 0.08565,-0.422547,0.902285,-2.79063,0.46881,1.224273,
+ -0.964119,-0.189683,0.18573,-2.520947,0.559036,1.273617,
+ -0.964119,-0.189683,0.18573,-2.520947,0.559036,1.273617,
+ 0.08565,-0.422547,0.902285,-2.79063,0.46881,1.224273,
+ 0.161064,-0.731195,0.662882,-2.787011,0.264495,1.237352,
+ -0.964119,-0.189683,0.18573,-2.520947,0.559036,1.273617,
+ 0.161064,-0.731195,0.662882,-2.787011,0.264495,1.237352,
+ -0.955381,-0.23808,0.174826,-2.47375,0.300945,1.316695,
+ -0.955381,-0.23808,0.174826,-2.47375,0.300945,1.316695,
+ 0.161064,-0.731195,0.662882,-2.787011,0.264495,1.237352,
+ 0.121987,-0.426327,0.896306,-2.687022,0.076781,1.290565,
+ -0.955381,-0.23808,0.174826,-2.47375,0.300945,1.316695,
+ 0.121987,-0.426327,0.896306,-2.687022,0.076781,1.290565,
+ -0.843742,-0.096325,0.528036,-2.433366,0.078222,1.371269,
+ -0.843742,-0.096325,0.528036,-2.433366,0.078222,1.371269,
+ 0.121987,-0.426327,0.896306,-2.687022,0.076781,1.290565,
+ 0.215155,-0.464575,0.858999,-2.649338,-0.241719,1.339644,
+ -0.843742,-0.096325,0.528036,-2.433366,0.078222,1.371269,
+ 0.215155,-0.464575,0.858999,-2.649338,-0.241719,1.339644,
+ 0.028952,-0.016247,0.999449,-2.41473,-0.108377,1.395384,
+ 0.028952,-0.016247,0.999449,-2.41473,-0.108377,1.395384,
+ 0.215155,-0.464575,0.858999,-2.649338,-0.241719,1.339644,
+ -0.11636,-0.749063,0.652201,-2.616467,-0.511373,1.344133,
+ 0.028952,-0.016247,0.999449,-2.41473,-0.108377,1.395384,
+ -0.11636,-0.749063,0.652201,-2.616467,-0.511373,1.344133,
+ 0.093953,-0.049433,0.994349,-2.38292,-0.41745,1.375045,
+ 0.093953,-0.049433,0.994349,-2.38292,-0.41745,1.375045,
+ -0.11636,-0.749063,0.652201,-2.616467,-0.511373,1.344133,
+ 0.162276,-0.745105,0.646905,-2.624856,-0.8882,1.261176,
+ 0.093953,-0.049433,0.994349,-2.38292,-0.41745,1.375045,
+ 0.162276,-0.745105,0.646905,-2.624856,-0.8882,1.261176,
+ 0.335613,-0.388493,0.858159,-2.430508,-0.822313,1.254486,
+ 0.335613,-0.388493,0.858159,-2.430508,-0.822313,1.254486,
+ 0.162276,-0.745105,0.646905,-2.624856,-0.8882,1.261176,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ 0.335613,-0.388493,0.858159,-2.430508,-0.822313,1.254486,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ -0.149005,-0.65467,0.741084,-2.862576,-1.546894,1.117139,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ -0.149005,-0.65467,0.741084,-2.862576,-1.546894,1.117139,
+ 0.095733,-0.224552,0.969748,-2.765069,-1.561164,1.084313,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.048753,-0.975535,0.21437,-3.519716,1.685231,0.31713,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ 0.048753,-0.975535,0.21437,-3.519716,1.685231,0.31713,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ 0.048753,-0.975535,0.21437,-3.519716,1.685231,0.31713,
+ -0.177142,-0.976279,0.124502,-3.527168,1.583508,0.512679,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ -0.177142,-0.976279,0.124502,-3.527168,1.583508,0.512679,
+ -0.150892,-0.83775,0.524792,-3.395381,1.726325,0.55477,
+ -0.150892,-0.83775,0.524792,-3.395381,1.726325,0.55477,
+ -0.177142,-0.976279,0.124502,-3.527168,1.583508,0.512679,
+ 0.430742,-0.887318,0.164705,-3.512997,1.44805,0.611386,
+ -0.150892,-0.83775,0.524792,-3.395381,1.726325,0.55477,
+ 0.430742,-0.887318,0.164705,-3.512997,1.44805,0.611386,
+ -0.4144,-0.844957,0.338113,-3.338742,1.598933,0.689636,
+ -0.4144,-0.844957,0.338113,-3.338742,1.598933,0.689636,
+ 0.430742,-0.887318,0.164705,-3.512997,1.44805,0.611386,
+ 0.35682,-0.781398,0.511954,-3.476235,1.287798,0.704766,
+ -0.4144,-0.844957,0.338113,-3.338742,1.598933,0.689636,
+ 0.35682,-0.781398,0.511954,-3.476235,1.287798,0.704766,
+ -0.176655,-0.950799,0.254508,-3.27808,1.432418,0.853958,
+ -0.176655,-0.950799,0.254508,-3.27808,1.432418,0.853958,
+ 0.35682,-0.781398,0.511954,-3.476235,1.287798,0.704766,
+ 0.493535,-0.729115,0.474147,-3.442151,1.105486,0.762934,
+ -0.176655,-0.950799,0.254508,-3.27808,1.432418,0.853958,
+ 0.493535,-0.729115,0.474147,-3.442151,1.105486,0.762934,
+ -0.079302,-0.84299,0.532051,-3.244771,1.19554,0.910945,
+ -0.079302,-0.84299,0.532051,-3.244771,1.19554,0.910945,
+ 0.493535,-0.729115,0.474147,-3.442151,1.105486,0.762934,
+ 0.04422,-0.704109,0.708714,-3.379131,0.767915,0.885996,
+ -0.079302,-0.84299,0.532051,-3.244771,1.19554,0.910945,
+ 0.04422,-0.704109,0.708714,-3.379131,0.767915,0.885996,
+ -0.094238,-0.851252,0.516225,-3.19641,0.797564,0.985913,
+ -0.094238,-0.851252,0.516225,-3.19641,0.797564,0.985913,
+ 0.04422,-0.704109,0.708714,-3.379131,0.767915,0.885996,
+ 0.083262,-0.787311,0.610908,-3.306875,0.379713,0.98762,
+ -0.094238,-0.851252,0.516225,-3.19641,0.797564,0.985913,
+ 0.083262,-0.787311,0.610908,-3.306875,0.379713,0.98762,
+ 0.152347,-0.821467,0.549529,-3.112555,0.457376,1.084816,
+ 0.152347,-0.821467,0.549529,-3.112555,0.457376,1.084816,
+ 0.083262,-0.787311,0.610908,-3.306875,0.379713,0.98762,
+ 0.170756,-0.748007,0.641349,-3.251181,0.175063,1.053445,
+ 0.152347,-0.821467,0.549529,-3.112555,0.457376,1.084816,
+ 0.170756,-0.748007,0.641349,-3.251181,0.175063,1.053445,
+ -0.279342,-0.940234,0.19475,-3.044646,0.224321,1.164934,
+ -0.279342,-0.940234,0.19475,-3.044646,0.224321,1.164934,
+ 0.170756,-0.748007,0.641349,-3.251181,0.175063,1.053445,
+ 0.64791,-0.754869,-0.101908,-3.160225,-0.018852,1.113626,
+ -0.279342,-0.940234,0.19475,-3.044646,0.224321,1.164934,
+ 0.64791,-0.754869,-0.101908,-3.160225,-0.018852,1.113626,
+ -0.198045,-0.959194,0.201804,-2.971546,0.032038,1.215971,
+ -0.198045,-0.959194,0.201804,-2.971546,0.032038,1.215971,
+ 0.64791,-0.754869,-0.101908,-3.160225,-0.018852,1.113626,
+ 0.381337,-0.795981,0.470103,-3.101125,-0.35476,1.162409,
+ -0.198045,-0.959194,0.201804,-2.971546,0.032038,1.215971,
+ 0.381337,-0.795981,0.470103,-3.101125,-0.35476,1.162409,
+ -0.171647,-0.971664,0.162499,-2.90708,-0.345582,1.281557,
+ -0.171647,-0.971664,0.162499,-2.90708,-0.345582,1.281557,
+ 0.381337,-0.795981,0.470103,-3.101125,-0.35476,1.162409,
+ 0.183908,-0.773381,0.606679,-3.096267,-0.6681,1.140081,
+ -0.171647,-0.971664,0.162499,-2.90708,-0.345582,1.281557,
+ 0.183908,-0.773381,0.606679,-3.096267,-0.6681,1.140081,
+ -0.403877,-0.879274,0.252509,-2.901159,-0.619504,1.284058,
+ -0.403877,-0.879274,0.252509,-2.901159,-0.619504,1.284058,
+ 0.183908,-0.773381,0.606679,-3.096267,-0.6681,1.140081,
+ 0.018755,-0.837462,0.546174,-3.122061,-0.998702,1.065015,
+ -0.403877,-0.879274,0.252509,-2.901159,-0.619504,1.284058,
+ 0.018755,-0.837462,0.546174,-3.122061,-0.998702,1.065015,
+ -0.040019,-0.929968,0.365457,-2.937658,-1.002749,1.219413,
+ -0.040019,-0.929968,0.365457,-2.937658,-1.002749,1.219413,
+ 0.018755,-0.837462,0.546174,-3.122061,-0.998702,1.065015,
+ -0.094688,-0.959937,0.263734,-3.15021,-1.259588,1.001021,
+ -0.040019,-0.929968,0.365457,-2.937658,-1.002749,1.219413,
+ -0.094688,-0.959937,0.263734,-3.15021,-1.259588,1.001021,
+ -0.299215,-0.929389,0.216115,-2.982676,-1.264649,1.133596,
+ -0.299215,-0.929389,0.216115,-2.982676,-1.264649,1.133596,
+ -0.094688,-0.959937,0.263734,-3.15021,-1.259588,1.001021,
+ 0.059023,-0.965365,0.25414,-3.188954,-1.408279,0.963611,
+ -0.299215,-0.929389,0.216115,-2.982676,-1.264649,1.133596,
+ 0.059023,-0.965365,0.25414,-3.188954,-1.408279,0.963611,
+ -0.18119,-0.970212,0.160805,-3.063133,-1.440555,1.090926,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ -0.626255,-0.080061,-0.775497,-3.690685,1.60208,0,
+ 0.49176,-0.810764,0.317543,-3.734989,1.589433,0.295202,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.49176,-0.810764,0.317543,-3.734989,1.589433,0.295202,
+ 0.048753,-0.975535,0.21437,-3.519716,1.685231,0.31713,
+ 0.048753,-0.975535,0.21437,-3.519716,1.685231,0.31713,
+ 0.49176,-0.810764,0.317543,-3.734989,1.589433,0.295202,
+ 0.43907,-0.579988,0.686172,-3.697974,1.466697,0.433432,
+ 0.048753,-0.975535,0.21437,-3.519716,1.685231,0.31713,
+ 0.43907,-0.579988,0.686172,-3.697974,1.466697,0.433432,
+ -0.177142,-0.976279,0.124502,-3.527168,1.583508,0.512679,
+ -0.177142,-0.976279,0.124502,-3.527168,1.583508,0.512679,
+ 0.43907,-0.579988,0.686172,-3.697974,1.466697,0.433432,
+ 0.099157,-0.476834,0.873383,-3.684619,1.35069,0.501428,
+ -0.177142,-0.976279,0.124502,-3.527168,1.583508,0.512679,
+ 0.099157,-0.476834,0.873383,-3.684619,1.35069,0.501428,
+ 0.430742,-0.887318,0.164705,-3.512997,1.44805,0.611386,
+ 0.430742,-0.887318,0.164705,-3.512997,1.44805,0.611386,
+ 0.099157,-0.476834,0.873383,-3.684619,1.35069,0.501428,
+ -0.073547,-0.481419,0.8734,-3.655148,1.190938,0.573692,
+ 0.430742,-0.887318,0.164705,-3.512997,1.44805,0.611386,
+ -0.073547,-0.481419,0.8734,-3.655148,1.190938,0.573692,
+ 0.35682,-0.781398,0.511954,-3.476235,1.287798,0.704766,
+ 0.35682,-0.781398,0.511954,-3.476235,1.287798,0.704766,
+ -0.073547,-0.481419,0.8734,-3.655148,1.190938,0.573692,
+ -0.147229,-0.706225,0.69251,-3.639878,1.015186,0.615203,
+ 0.35682,-0.781398,0.511954,-3.476235,1.287798,0.704766,
+ -0.147229,-0.706225,0.69251,-3.639878,1.015186,0.615203,
+ 0.493535,-0.729115,0.474147,-3.442151,1.105486,0.762934,
+ 0.493535,-0.729115,0.474147,-3.442151,1.105486,0.762934,
+ -0.147229,-0.706225,0.69251,-3.639878,1.015186,0.615203,
+ 0.328487,-0.940917,-0.082286,-3.582867,0.734419,0.697787,
+ 0.493535,-0.729115,0.474147,-3.442151,1.105486,0.762934,
+ 0.328487,-0.940917,-0.082286,-3.582867,0.734419,0.697787,
+ 0.04422,-0.704109,0.708714,-3.379131,0.767915,0.885996,
+ 0.04422,-0.704109,0.708714,-3.379131,0.767915,0.885996,
+ 0.328487,-0.940917,-0.082286,-3.582867,0.734419,0.697787,
+ -0.319475,-0.944225,0.079844,-3.504525,0.405574,0.847066,
+ 0.04422,-0.704109,0.708714,-3.379131,0.767915,0.885996,
+ -0.319475,-0.944225,0.079844,-3.504525,0.405574,0.847066,
+ 0.083262,-0.787311,0.610908,-3.306875,0.379713,0.98762,
+ 0.083262,-0.787311,0.610908,-3.306875,0.379713,0.98762,
+ -0.319475,-0.944225,0.079844,-3.504525,0.405574,0.847066,
+ -0.393694,-0.919049,-0.018795,-3.424258,0.158638,0.918279,
+ 0.083262,-0.787311,0.610908,-3.306875,0.379713,0.98762,
+ -0.393694,-0.919049,-0.018795,-3.424258,0.158638,0.918279,
+ 0.170756,-0.748007,0.641349,-3.251181,0.175063,1.053445,
+ 0.170756,-0.748007,0.641349,-3.251181,0.175063,1.053445,
+ -0.393694,-0.919049,-0.018795,-3.424258,0.158638,0.918279,
+ -0.327707,-0.94199,-0.072547,-3.365413,-0.113447,0.9524,
+ 0.170756,-0.748007,0.641349,-3.251181,0.175063,1.053445,
+ -0.327707,-0.94199,-0.072547,-3.365413,-0.113447,0.9524,
+ 0.64791,-0.754869,-0.101908,-3.160225,-0.018852,1.113626,
+ 0.64791,-0.754869,-0.101908,-3.160225,-0.018852,1.113626,
+ -0.327707,-0.94199,-0.072547,-3.365413,-0.113447,0.9524,
+ -0.163041,-0.980692,-0.107986,-3.290393,-0.424259,0.984153,
+ 0.64791,-0.754869,-0.101908,-3.160225,-0.018852,1.113626,
+ -0.163041,-0.980692,-0.107986,-3.290393,-0.424259,0.984153,
+ 0.381337,-0.795981,0.470103,-3.101125,-0.35476,1.162409,
+ 0.381337,-0.795981,0.470103,-3.101125,-0.35476,1.162409,
+ -0.163041,-0.980692,-0.107986,-3.290393,-0.424259,0.984153,
+ 0.074429,-0.99521,-0.063385,-3.233333,-0.683782,1.015512,
+ 0.381337,-0.795981,0.470103,-3.101125,-0.35476,1.162409,
+ 0.074429,-0.99521,-0.063385,-3.233333,-0.683782,1.015512,
+ 0.183908,-0.773381,0.606679,-3.096267,-0.6681,1.140081,
+ 0.183908,-0.773381,0.606679,-3.096267,-0.6681,1.140081,
+ 0.074429,-0.99521,-0.063385,-3.233333,-0.683782,1.015512,
+ -0.012978,-0.998326,-0.056357,-3.238094,-0.979377,0.961631,
+ 0.183908,-0.773381,0.606679,-3.096267,-0.6681,1.140081,
+ -0.012978,-0.998326,-0.056357,-3.238094,-0.979377,0.961631,
+ 0.018755,-0.837462,0.546174,-3.122061,-0.998702,1.065015,
+ 0.018755,-0.837462,0.546174,-3.122061,-0.998702,1.065015,
+ -0.012978,-0.998326,-0.056357,-3.238094,-0.979377,0.961631,
+ 0.249604,-0.855993,-0.452741,-3.27751,-1.177346,0.9153,
+ 0.018755,-0.837462,0.546174,-3.122061,-0.998702,1.065015,
+ 0.249604,-0.855993,-0.452741,-3.27751,-1.177346,0.9153,
+ -0.094688,-0.959937,0.263734,-3.15021,-1.259588,1.001021,
+ -0.094688,-0.959937,0.263734,-3.15021,-1.259588,1.001021,
+ 0.249604,-0.855993,-0.452741,-3.27751,-1.177346,0.9153,
+ 0.515412,-0.714946,-0.472444,-3.319817,-1.365015,0.886015,
+ -0.094688,-0.959937,0.263734,-3.15021,-1.259588,1.001021,
+ 0.515412,-0.714946,-0.472444,-3.319817,-1.365015,0.886015,
+ 0.059023,-0.965365,0.25414,-3.188954,-1.408279,0.963611,
+ -0.626255,-0.080061,-0.775497,-3.690685,1.60208,0,
+ -0.848349,-0.120539,-0.515533,-3.709827,1.417763,0,
+ -0.454242,-0.890878,-0.000928,-3.709741,1.351194,0.211745,
+ -0.626255,-0.080061,-0.775497,-3.690685,1.60208,0,
+ -0.454242,-0.890878,-0.000928,-3.709741,1.351194,0.211745,
+ 0.49176,-0.810764,0.317543,-3.734989,1.589433,0.295202,
+ 0.49176,-0.810764,0.317543,-3.734989,1.589433,0.295202,
+ -0.454242,-0.890878,-0.000928,-3.709741,1.351194,0.211745,
+ -0.354058,-0.732075,-0.581987,-3.701634,1.27265,0.270469,
+ 0.49176,-0.810764,0.317543,-3.734989,1.589433,0.295202,
+ -0.354058,-0.732075,-0.581987,-3.701634,1.27265,0.270469,
+ 0.43907,-0.579988,0.686172,-3.697974,1.466697,0.433432,
+ 0.43907,-0.579988,0.686172,-3.697974,1.466697,0.433432,
+ -0.354058,-0.732075,-0.581987,-3.701634,1.27265,0.270469,
+ -0.587869,-0.808404,0.029894,-3.695872,1.156978,0.316829,
+ 0.43907,-0.579988,0.686172,-3.697974,1.466697,0.433432,
+ -0.587869,-0.808404,0.029894,-3.695872,1.156978,0.316829,
+ 0.099157,-0.476834,0.873383,-3.684619,1.35069,0.501428,
+ 0.099157,-0.476834,0.873383,-3.684619,1.35069,0.501428,
+ -0.587869,-0.808404,0.029894,-3.695872,1.156978,0.316829,
+ -0.581301,-0.608503,-0.540197,-3.672431,1.044224,0.364991,
+ 0.099157,-0.476834,0.873383,-3.684619,1.35069,0.501428,
+ -0.581301,-0.608503,-0.540197,-3.672431,1.044224,0.364991,
+ -0.073547,-0.481419,0.8734,-3.655148,1.190938,0.573692,
+ -0.073547,-0.481419,0.8734,-3.655148,1.190938,0.573692,
+ -0.581301,-0.608503,-0.540197,-3.672431,1.044224,0.364991,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.073547,-0.481419,0.8734,-3.655148,1.190938,0.573692,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.147229,-0.706225,0.69251,-3.639878,1.015186,0.615203,
+ -0.147229,-0.706225,0.69251,-3.639878,1.015186,0.615203,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.98615,-0.150918,0.068783,-3.631292,0.701013,0.420276,
+ -0.147229,-0.706225,0.69251,-3.639878,1.015186,0.615203,
+ -0.98615,-0.150918,0.068783,-3.631292,0.701013,0.420276,
+ 0.328487,-0.940917,-0.082286,-3.582867,0.734419,0.697787,
+ 0.328487,-0.940917,-0.082286,-3.582867,0.734419,0.697787,
+ -0.98615,-0.150918,0.068783,-3.631292,0.701013,0.420276,
+ -0.84728,-0.52968,0.039439,-3.570384,0.385564,0.52448,
+ 0.328487,-0.940917,-0.082286,-3.582867,0.734419,0.697787,
+ -0.84728,-0.52968,0.039439,-3.570384,0.385564,0.52448,
+ -0.319475,-0.944225,0.079844,-3.504525,0.405574,0.847066,
+ -0.319475,-0.944225,0.079844,-3.504525,0.405574,0.847066,
+ -0.84728,-0.52968,0.039439,-3.570384,0.385564,0.52448,
+ -0.815087,-0.388054,0.430171,-3.520188,0.140164,0.618561,
+ -0.319475,-0.944225,0.079844,-3.504525,0.405574,0.847066,
+ -0.815087,-0.388054,0.430171,-3.520188,0.140164,0.618561,
+ -0.393694,-0.919049,-0.018795,-3.424258,0.158638,0.918279,
+ -0.393694,-0.919049,-0.018795,-3.424258,0.158638,0.918279,
+ -0.815087,-0.388054,0.430171,-3.520188,0.140164,0.618561,
+ -0.945906,-0.323169,0.028687,-3.458251,-0.12595,0.731712,
+ -0.393694,-0.919049,-0.018795,-3.424258,0.158638,0.918279,
+ -0.945906,-0.323169,0.028687,-3.458251,-0.12595,0.731712,
+ -0.327707,-0.94199,-0.072547,-3.365413,-0.113447,0.9524,
+ -0.327707,-0.94199,-0.072547,-3.365413,-0.113447,0.9524,
+ -0.945906,-0.323169,0.028687,-3.458251,-0.12595,0.731712,
+ -0.896964,-0.287307,0.336022,-3.406618,-0.343461,0.746456,
+ -0.327707,-0.94199,-0.072547,-3.365413,-0.113447,0.9524,
+ -0.896964,-0.287307,0.336022,-3.406618,-0.343461,0.746456,
+ -0.163041,-0.980692,-0.107986,-3.290393,-0.424259,0.984153,
+ -0.163041,-0.980692,-0.107986,-3.290393,-0.424259,0.984153,
+ -0.896964,-0.287307,0.336022,-3.406618,-0.343461,0.746456,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ -0.163041,-0.980692,-0.107986,-3.290393,-0.424259,0.984153,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ 0.074429,-0.99521,-0.063385,-3.233333,-0.683782,1.015512,
+ -0.040019,-0.929968,0.365457,-2.937658,-1.002749,1.219413,
+ -0.299215,-0.929389,0.216115,-2.982676,-1.264649,1.133596,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ -0.040019,-0.929968,0.365457,-2.937658,-1.002749,1.219413,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ 0.162276,-0.745105,0.646905,-2.624856,-0.8882,1.261176,
+ -0.403877,-0.879274,0.252509,-2.901159,-0.619504,1.284058,
+ -0.040019,-0.929968,0.365457,-2.937658,-1.002749,1.219413,
+ 0.162276,-0.745105,0.646905,-2.624856,-0.8882,1.261176,
+ -0.403877,-0.879274,0.252509,-2.901159,-0.619504,1.284058,
+ 0.162276,-0.745105,0.646905,-2.624856,-0.8882,1.261176,
+ -0.11636,-0.749063,0.652201,-2.616467,-0.511373,1.344133,
+ -0.171647,-0.971664,0.162499,-2.90708,-0.345582,1.281557,
+ -0.403877,-0.879274,0.252509,-2.901159,-0.619504,1.284058,
+ -0.11636,-0.749063,0.652201,-2.616467,-0.511373,1.344133,
+ -0.171647,-0.971664,0.162499,-2.90708,-0.345582,1.281557,
+ -0.11636,-0.749063,0.652201,-2.616467,-0.511373,1.344133,
+ 0.215155,-0.464575,0.858999,-2.649338,-0.241719,1.339644,
+ -0.198045,-0.959194,0.201804,-2.971546,0.032038,1.215971,
+ -0.171647,-0.971664,0.162499,-2.90708,-0.345582,1.281557,
+ 0.215155,-0.464575,0.858999,-2.649338,-0.241719,1.339644,
+ -0.198045,-0.959194,0.201804,-2.971546,0.032038,1.215971,
+ 0.215155,-0.464575,0.858999,-2.649338,-0.241719,1.339644,
+ 0.121987,-0.426327,0.896306,-2.687022,0.076781,1.290565,
+ -0.279342,-0.940234,0.19475,-3.044646,0.224321,1.164934,
+ -0.198045,-0.959194,0.201804,-2.971546,0.032038,1.215971,
+ 0.121987,-0.426327,0.896306,-2.687022,0.076781,1.290565,
+ -0.279342,-0.940234,0.19475,-3.044646,0.224321,1.164934,
+ 0.121987,-0.426327,0.896306,-2.687022,0.076781,1.290565,
+ 0.161064,-0.731195,0.662882,-2.787011,0.264495,1.237352,
+ 0.152347,-0.821467,0.549529,-3.112555,0.457376,1.084816,
+ -0.279342,-0.940234,0.19475,-3.044646,0.224321,1.164934,
+ 0.161064,-0.731195,0.662882,-2.787011,0.264495,1.237352,
+ 0.152347,-0.821467,0.549529,-3.112555,0.457376,1.084816,
+ 0.161064,-0.731195,0.662882,-2.787011,0.264495,1.237352,
+ 0.08565,-0.422547,0.902285,-2.79063,0.46881,1.224273,
+ -0.094238,-0.851252,0.516225,-3.19641,0.797564,0.985913,
+ 0.152347,-0.821467,0.549529,-3.112555,0.457376,1.084816,
+ 0.08565,-0.422547,0.902285,-2.79063,0.46881,1.224273,
+ -0.094238,-0.851252,0.516225,-3.19641,0.797564,0.985913,
+ 0.08565,-0.422547,0.902285,-2.79063,0.46881,1.224273,
+ 0.155794,-0.590112,0.792146,-2.825835,0.755899,1.209042,
+ -0.079302,-0.84299,0.532051,-3.244771,1.19554,0.910945,
+ -0.094238,-0.851252,0.516225,-3.19641,0.797564,0.985913,
+ 0.155794,-0.590112,0.792146,-2.825835,0.755899,1.209042,
+ -0.079302,-0.84299,0.532051,-3.244771,1.19554,0.910945,
+ 0.155794,-0.590112,0.792146,-2.825835,0.755899,1.209042,
+ 0.106237,-0.558927,0.822383,-2.930312,1.10358,1.125876,
+ -0.176655,-0.950799,0.254508,-3.27808,1.432418,0.853958,
+ -0.079302,-0.84299,0.532051,-3.244771,1.19554,0.910945,
+ 0.106237,-0.558927,0.822383,-2.930312,1.10358,1.125876,
+ -0.176655,-0.950799,0.254508,-3.27808,1.432418,0.853958,
+ 0.106237,-0.558927,0.822383,-2.930312,1.10358,1.125876,
+ 0.008663,-0.516082,0.856495,-3.028932,1.461517,0.941324,
+ -0.4144,-0.844957,0.338113,-3.338742,1.598933,0.689636,
+ -0.176655,-0.950799,0.254508,-3.27808,1.432418,0.853958,
+ 0.008663,-0.516082,0.856495,-3.028932,1.461517,0.941324,
+ -0.4144,-0.844957,0.338113,-3.338742,1.598933,0.689636,
+ 0.008663,-0.516082,0.856495,-3.028932,1.461517,0.941324,
+ 0.357021,-0.590654,0.723646,-3.08565,1.65734,0.784479,
+ -0.150892,-0.83775,0.524792,-3.395381,1.726325,0.55477,
+ -0.4144,-0.844957,0.338113,-3.338742,1.598933,0.689636,
+ 0.357021,-0.590654,0.723646,-3.08565,1.65734,0.784479,
+ -0.150892,-0.83775,0.524792,-3.395381,1.726325,0.55477,
+ 0.357021,-0.590654,0.723646,-3.08565,1.65734,0.784479,
+ -0.201818,-0.568242,0.797728,-3.109047,1.789477,0.565323,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ -0.150892,-0.83775,0.524792,-3.395381,1.726325,0.55477,
+ -0.201818,-0.568242,0.797728,-3.109047,1.789477,0.565323,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ -0.201818,-0.568242,0.797728,-3.109047,1.789477,0.565323,
+ 0.094371,-0.230057,0.968591,-3.07531,1.846,0.363149,
+ 0.009712,0.399549,0.91666,-2.687162,-1.539807,0.988048,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ 0.095733,-0.224552,0.969748,-2.765069,-1.561164,1.084313,
+ -0.951862,0.098243,0.290356,-2.462835,-1.3055,0.966395,
+ -0.822733,0.223687,0.522565,-2.306662,-1.116976,0.961238,
+ 0.074896,0.047734,0.996048,-2.299356,-1.025449,1.044687,
+ -0.951862,0.098243,0.290356,-2.462835,-1.3055,0.966395,
+ 0.074896,0.047734,0.996048,-2.299356,-1.025449,1.044687,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ 0.009712,0.399549,0.91666,-2.687162,-1.539807,0.988048,
+ -0.995081,-0.092251,-0.036114,-2.591357,-1.510845,0.88547,
+ -0.951862,0.098243,0.290356,-2.462835,-1.3055,0.966395,
+ 0.009712,0.399549,0.91666,-2.687162,-1.539807,0.988048,
+ -0.951862,0.098243,0.290356,-2.462835,-1.3055,0.966395,
+ -0.004413,-0.170526,0.985343,-2.566746,-1.211312,1.167101,
+ 0.247956,0.087485,-0.964813,1.772999,-2.230292,0.64494,
+ 0.81802,-0.47123,0.329827,1.747671,-2.067518,0.638841,
+ 0.761939,0.13671,-0.633055,1.945206,-2.015769,0.672724,
+ 0.247956,0.087485,-0.964813,1.772999,-2.230292,0.64494,
+ 0.761939,0.13671,-0.633055,1.945206,-2.015769,0.672724,
+ -0.121543,0.046,-0.99152,1.921881,-2.157616,0.692678,
+ 0.70745,-0.193334,0.679806,2.13239,1.755821,0.180271,
+ 0.756976,-0.653442,0,2.128139,1.788397,0,
+ -0.385788,0.922588,0,2.042206,1.777154,0,
+ 0.70745,-0.193334,0.679806,2.13239,1.755821,0.180271,
+ -0.385788,0.922588,0,2.042206,1.777154,0,
+ 0.411872,0.04507,0.910127,2.069379,1.727818,0.212746,
+ -0.149005,-0.65467,0.741084,-2.862576,-1.546894,1.117139,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ -0.461794,0.113692,0.879671,-2.955052,-1.49684,1.128812,
+ -0.18119,-0.970212,0.160805,-3.063133,-1.440555,1.090926,
+ 0.059023,-0.965365,0.25414,-3.188954,-1.408279,0.963611,
+ -0.46316,0.228643,0.856274,-3.357996,-1.811803,0.975625,
+ -0.18119,-0.970212,0.160805,-3.063133,-1.440555,1.090926,
+ -0.46316,0.228643,0.856274,-3.357996,-1.811803,0.975625,
+ -0.431118,-0.034268,0.901645,-3.23261,-1.834299,1.087832,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ -0.299215,-0.929389,0.216115,-2.982676,-1.264649,1.133596,
+ -0.18119,-0.970212,0.160805,-3.063133,-1.440555,1.090926,
+ -0.351476,-0.711504,0.608463,-2.725776,-1.214862,1.190384,
+ -0.18119,-0.970212,0.160805,-3.063133,-1.440555,1.090926,
+ -0.461794,0.113692,0.879671,-2.955052,-1.49684,1.128812,
+ 0.059023,-0.965365,0.25414,-3.188954,-1.408279,0.963611,
+ 0.515412,-0.714946,-0.472444,-3.319817,-1.365015,0.886015,
+ 0.737412,0.542596,0.402261,-3.36599,-1.48517,0.888076,
+ 0.059023,-0.965365,0.25414,-3.188954,-1.408279,0.963611,
+ 0.737412,0.542596,0.402261,-3.36599,-1.48517,0.888076,
+ -0.508357,0.250892,0.823787,-3.342096,-1.533989,0.921628,
+ 0.059023,-0.965365,0.25414,-3.188954,-1.408279,0.963611,
+ -0.508357,0.250892,0.823787,-3.342096,-1.533989,0.921628,
+ -0.46316,0.228643,0.856274,-3.357996,-1.811803,0.975625,
+ -0.037581,-0.042039,-0.998409,-2.964215,-1.978727,0.776572,
+ -0.732521,-0.474279,0.488336,-2.811581,-1.79821,0.712737,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ -0.037581,-0.042039,-0.998409,-2.964215,-1.978727,0.776572,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ -0.11646,-0.017993,-0.993032,-2.892438,-1.95081,0.87812,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ -0.13251,0.440061,0.888137,-2.837147,-1.791733,0.921563,
+ -0.11646,-0.017993,-0.993032,-2.892438,-1.95081,0.87812,
+ -0.674431,0.094186,-0.732306,-3.04661,-2.510881,0.900772,
+ 0.780958,0.624512,0.00945,-3.132772,-2.528669,0.848639,
+ -0.039603,0.339955,0.939607,-3.144012,-2.333635,0.829994,
+ -0.674431,0.094186,-0.732306,-3.04661,-2.510881,0.900772,
+ -0.039603,0.339955,0.939607,-3.144012,-2.333635,0.829994,
+ 0.339875,0.026681,-0.940092,-3.030605,-2.311222,0.88433,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ 0.567548,-0.015056,0.823203,-3.26181,-2.821069,1.088218,
+ 0.71789,-0.165877,0.676106,-3.32033,-2.827513,1.063914,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ 0.71789,-0.165877,0.676106,-3.32033,-2.827513,1.063914,
+ 0.788485,-0.288832,0.543017,-3.302419,-3.017921,1.128514,
+ 0.701058,-0.463233,0.542155,-2.986345,-2.93377,1.087679,
+ 0.705477,-0.524425,0.47674,-3.053267,-2.764905,1.043008,
+ -0.119083,0.074969,0.99005,-3.141072,-2.785287,1.032318,
+ 0.701058,-0.463233,0.542155,-2.986345,-2.93377,1.087679,
+ -0.119083,0.074969,0.99005,-3.141072,-2.785287,1.032318,
+ 0.021785,0.053611,0.998324,-3.107105,-2.947818,1.092235,
+ 0.23503,0.016105,0.971855,-2.946527,-2.939327,0.986343,
+ 0.441943,-0.143195,0.88554,-3.016419,-2.765091,0.966671,
+ 0.705477,-0.524425,0.47674,-3.053267,-2.764905,1.043008,
+ 0.23503,0.016105,0.971855,-2.946527,-2.939327,0.986343,
+ 0.705477,-0.524425,0.47674,-3.053267,-2.764905,1.043008,
+ 0.701058,-0.463233,0.542155,-2.986345,-2.93377,1.087679,
+ 0.586456,-0.375618,0.717621,-3.301857,-3.074776,1.114869,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ 0.788485,-0.288832,0.543017,-3.302419,-3.017921,1.128514,
+ 0.585043,-0.503499,0.635777,-3.316551,-3.168932,1.121229,
+ -0.140754,0.08766,0.986156,-3.227676,-3.14166,1.103969,
+ 0.586456,-0.375618,0.717621,-3.301857,-3.074776,1.114869,
+ 0.085126,0.114843,0.98973,-3.217306,-3.187686,1.075214,
+ -0.140754,0.08766,0.986156,-3.227676,-3.14166,1.103969,
+ 0.585043,-0.503499,0.635777,-3.316551,-3.168932,1.121229,
+ 0.07463,0.029476,0.996776,-2.90901,-3.084482,1.089147,
+ -0.161613,0.16539,0.972896,-2.884711,-3.063896,0.993766,
+ 0.23503,0.016105,0.971855,-2.946527,-2.939327,0.986343,
+ 0.07463,0.029476,0.996776,-2.90901,-3.084482,1.089147,
+ 0.23503,0.016105,0.971855,-2.946527,-2.939327,0.986343,
+ 0.701058,-0.463233,0.542155,-2.986345,-2.93377,1.087679,
+ -0.119083,0.074969,0.99005,-3.141072,-2.785287,1.032318,
+ -0.347185,0.293858,0.890567,-3.196508,-2.788166,1.045431,
+ -0.225282,0.274902,0.934707,-3.177108,-2.979305,1.139084,
+ -0.119083,0.074969,0.99005,-3.141072,-2.785287,1.032318,
+ -0.225282,0.274902,0.934707,-3.177108,-2.979305,1.139084,
+ 0.021785,0.053611,0.998324,-3.107105,-2.947818,1.092235,
+ -0.225282,0.274902,0.934707,-3.177108,-2.979305,1.139084,
+ -0.347185,0.293858,0.890567,-3.196508,-2.788166,1.045431,
+ 0.567548,-0.015056,0.823203,-3.26181,-2.821069,1.088218,
+ -0.225282,0.274902,0.934707,-3.177108,-2.979305,1.139084,
+ 0.567548,-0.015056,0.823203,-3.26181,-2.821069,1.088218,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ -0.921044,0.324519,0.215325,-3.330406,-3.18519,0.950058,
+ 0.585043,-0.503499,0.635777,-3.316551,-3.168932,1.121229,
+ 0.586456,-0.375618,0.717621,-3.301857,-3.074776,1.114869,
+ -0.921044,0.324519,0.215325,-3.330406,-3.18519,0.950058,
+ 0.586456,-0.375618,0.717621,-3.301857,-3.074776,1.114869,
+ -0.904362,0.426369,-0.018424,-3.333954,-3.058673,0.974748,
+ -0.588311,0.26373,0.764419,-3.223246,-3.225388,0.976573,
+ 0.085126,0.114843,0.98973,-3.217306,-3.187686,1.075214,
+ 0.585043,-0.503499,0.635777,-3.316551,-3.168932,1.121229,
+ -0.588311,0.26373,0.764419,-3.223246,-3.225388,0.976573,
+ 0.585043,-0.503499,0.635777,-3.316551,-3.168932,1.121229,
+ -0.921044,0.324519,0.215325,-3.330406,-3.18519,0.950058,
+ -0.64352,0.086605,-0.760514,-3.11957,-3.183977,0.870739,
+ -0.588311,0.26373,0.764419,-3.223246,-3.225388,0.976573,
+ -0.921044,0.324519,0.215325,-3.330406,-3.18519,0.950058,
+ -0.64352,0.086605,-0.760514,-3.11957,-3.183977,0.870739,
+ -0.921044,0.324519,0.215325,-3.330406,-3.18519,0.950058,
+ -0.190279,0.223108,-0.956042,-3.294389,-3.166225,0.842823,
+ -0.121989,0.019056,-0.992349,-3.256731,-3.032131,0.849693,
+ -0.190279,0.223108,-0.956042,-3.294389,-3.166225,0.842823,
+ -0.921044,0.324519,0.215325,-3.330406,-3.18519,0.950058,
+ -0.121989,0.019056,-0.992349,-3.256731,-3.032131,0.849693,
+ -0.921044,0.324519,0.215325,-3.330406,-3.18519,0.950058,
+ -0.904362,0.426369,-0.018424,-3.333954,-3.058673,0.974748,
+ -0.904362,0.426369,-0.018424,-3.333954,-3.058673,0.974748,
+ -0.149743,-0.291108,-0.944898,-3.339637,-2.846837,0.966368,
+ -0.146645,-0.575935,-0.804235,-3.300372,-2.795728,0.878984,
+ -0.904362,0.426369,-0.018424,-3.333954,-3.058673,0.974748,
+ -0.146645,-0.575935,-0.804235,-3.300372,-2.795728,0.878984,
+ -0.121989,0.019056,-0.992349,-3.256731,-3.032131,0.849693,
+ 0.021785,0.053611,0.998324,-3.107105,-2.947818,1.092235,
+ -0.541406,0.227835,0.809302,-3.03125,-3.09594,1.106355,
+ 0.07463,0.029476,0.996776,-2.90901,-3.084482,1.089147,
+ 0.021785,0.053611,0.998324,-3.107105,-2.947818,1.092235,
+ 0.07463,0.029476,0.996776,-2.90901,-3.084482,1.089147,
+ 0.701058,-0.463233,0.542155,-2.986345,-2.93377,1.087679,
+ 0.021785,0.053611,0.998324,-3.107105,-2.947818,1.092235,
+ -0.225282,0.274902,0.934707,-3.177108,-2.979305,1.139084,
+ -0.125911,-0.68432,-0.718229,-3.121673,-3.120319,1.136456,
+ 0.021785,0.053611,0.998324,-3.107105,-2.947818,1.092235,
+ -0.125911,-0.68432,-0.718229,-3.121673,-3.120319,1.136456,
+ -0.541406,0.227835,0.809302,-3.03125,-3.09594,1.106355,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ 0.535863,0.090315,-0.83946,-3.169546,-3.135273,1.128247,
+ -0.125911,-0.68432,-0.718229,-3.121673,-3.120319,1.136456,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ -0.125911,-0.68432,-0.718229,-3.121673,-3.120319,1.136456,
+ -0.225282,0.274902,0.934707,-3.177108,-2.979305,1.139084,
+ 0.085126,0.114843,0.98973,-3.217306,-3.187686,1.075214,
+ 0.535863,0.090315,-0.83946,-3.169546,-3.135273,1.128247,
+ -0.140754,0.08766,0.986156,-3.227676,-3.14166,1.103969,
+ -0.140754,0.08766,0.986156,-3.227676,-3.14166,1.103969,
+ 0.535863,0.090315,-0.83946,-3.169546,-3.135273,1.128247,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ -0.140754,0.08766,0.986156,-3.227676,-3.14166,1.103969,
+ 0.245984,0.029506,0.968825,-3.223286,-3.00178,1.126176,
+ 0.586456,-0.375618,0.717621,-3.301857,-3.074776,1.114869,
+ 0.788485,-0.288832,0.543017,-3.302419,-3.017921,1.128514,
+ -0.904362,0.426369,-0.018424,-3.333954,-3.058673,0.974748,
+ 0.586456,-0.375618,0.717621,-3.301857,-3.074776,1.114869,
+ -0.904362,0.426369,-0.018424,-3.333954,-3.058673,0.974748,
+ 0.788485,-0.288832,0.543017,-3.302419,-3.017921,1.128514,
+ 0.71789,-0.165877,0.676106,-3.32033,-2.827513,1.063914,
+ -0.904362,0.426369,-0.018424,-3.333954,-3.058673,0.974748,
+ 0.71789,-0.165877,0.676106,-3.32033,-2.827513,1.063914,
+ -0.149743,-0.291108,-0.944898,-3.339637,-2.846837,0.966368,
+ 0.236645,-0.06852,-0.969177,-2.928681,-3.072892,0.924772,
+ 0.091886,-0.230243,-0.968785,-3.008412,-2.89976,0.904635,
+ 0.23503,0.016105,0.971855,-2.946527,-2.939327,0.986343,
+ 0.236645,-0.06852,-0.969177,-2.928681,-3.072892,0.924772,
+ 0.23503,0.016105,0.971855,-2.946527,-2.939327,0.986343,
+ -0.161613,0.16539,0.972896,-2.884711,-3.063896,0.993766,
+ -0.888643,-0.077171,0.45206,-3.166971,-3.002766,0.812106,
+ -0.64352,0.086605,-0.760514,-3.11957,-3.183977,0.870739,
+ -0.190279,0.223108,-0.956042,-3.294389,-3.166225,0.842823,
+ -0.121989,0.019056,-0.992349,-3.256731,-3.032131,0.849693,
+ -0.888643,-0.077171,0.45206,-3.166971,-3.002766,0.812106,
+ -0.190279,0.223108,-0.956042,-3.294389,-3.166225,0.842823,
+ -0.888643,-0.077171,0.45206,-3.166971,-3.002766,0.812106,
+ -0.891992,-0.016937,0.451734,-3.06981,-2.928755,0.845236,
+ -0.860798,0.234294,0.451812,-3.011987,-3.092,0.860973,
+ -0.888643,-0.077171,0.45206,-3.166971,-3.002766,0.812106,
+ -0.860798,0.234294,0.451812,-3.011987,-3.092,0.860973,
+ -0.64352,0.086605,-0.760514,-3.11957,-3.183977,0.870739,
+ -0.891992,-0.016937,0.451734,-3.06981,-2.928755,0.845236,
+ 0.091886,-0.230243,-0.968785,-3.008412,-2.89976,0.904635,
+ 0.236645,-0.06852,-0.969177,-2.928681,-3.072892,0.924772,
+ -0.891992,-0.016937,0.451734,-3.06981,-2.928755,0.845236,
+ 0.236645,-0.06852,-0.969177,-2.928681,-3.072892,0.924772,
+ -0.860798,0.234294,0.451812,-3.011987,-3.092,0.860973,
+ -0.686439,0.576002,0.443872,-3.184812,-2.768053,0.850127,
+ -0.369855,0.817227,0.441981,-3.137383,-2.776449,0.844117,
+ -0.891992,-0.016937,0.451734,-3.06981,-2.928755,0.845236,
+ -0.686439,0.576002,0.443872,-3.184812,-2.768053,0.850127,
+ -0.891992,-0.016937,0.451734,-3.06981,-2.928755,0.845236,
+ -0.888643,-0.077171,0.45206,-3.166971,-3.002766,0.812106,
+ 0.011581,0.887039,0.461548,-3.040038,-2.780893,0.914614,
+ 0.091886,-0.230243,-0.968785,-3.008412,-2.89976,0.904635,
+ -0.891992,-0.016937,0.451734,-3.06981,-2.928755,0.845236,
+ 0.011581,0.887039,0.461548,-3.040038,-2.780893,0.914614,
+ -0.891992,-0.016937,0.451734,-3.06981,-2.928755,0.845236,
+ -0.369855,0.817227,0.441981,-3.137383,-2.776449,0.844117,
+ -0.146645,-0.575935,-0.804235,-3.300372,-2.795728,0.878984,
+ -0.686439,0.576002,0.443872,-3.184812,-2.768053,0.850127,
+ -0.888643,-0.077171,0.45206,-3.166971,-3.002766,0.812106,
+ -0.146645,-0.575935,-0.804235,-3.300372,-2.795728,0.878984,
+ -0.888643,-0.077171,0.45206,-3.166971,-3.002766,0.812106,
+ -0.121989,0.019056,-0.992349,-3.256731,-3.032131,0.849693,
+ 0.091886,-0.230243,-0.968785,-3.008412,-2.89976,0.904635,
+ 0.011581,0.887039,0.461548,-3.040038,-2.780893,0.914614,
+ 0.441943,-0.143195,0.88554,-3.016419,-2.765091,0.966671,
+ 0.091886,-0.230243,-0.968785,-3.008412,-2.89976,0.904635,
+ 0.441943,-0.143195,0.88554,-3.016419,-2.765091,0.966671,
+ 0.23503,0.016105,0.971855,-2.946527,-2.939327,0.986343,
+ 0.840313,0.535537,-0.084107,-3.078699,-2.553982,1.046834,
+ 0.851754,0.52393,-0.003494,-3.162498,-2.556375,1.058409,
+ -0.119083,0.074969,0.99005,-3.141072,-2.785287,1.032318,
+ 0.840313,0.535537,-0.084107,-3.078699,-2.553982,1.046834,
+ -0.119083,0.074969,0.99005,-3.141072,-2.785287,1.032318,
+ 0.705477,-0.524425,0.47674,-3.053267,-2.764905,1.043008,
+ -0.99734,0.010762,-0.072093,-3.347304,-2.573628,0.955211,
+ 0.308087,0.149605,-0.939522,-3.372066,-2.569159,0.904785,
+ -0.149743,-0.291108,-0.944898,-3.339637,-2.846837,0.966368,
+ -0.99734,0.010762,-0.072093,-3.347304,-2.573628,0.955211,
+ -0.149743,-0.291108,-0.944898,-3.339637,-2.846837,0.966368,
+ 0.71789,-0.165877,0.676106,-3.32033,-2.827513,1.063914,
+ 0.163153,0.19945,0.96623,-3.251541,-2.56405,1.023627,
+ -0.99734,0.010762,-0.072093,-3.347304,-2.573628,0.955211,
+ 0.71789,-0.165877,0.676106,-3.32033,-2.827513,1.063914,
+ 0.163153,0.19945,0.96623,-3.251541,-2.56405,1.023627,
+ 0.71789,-0.165877,0.676106,-3.32033,-2.827513,1.063914,
+ 0.567548,-0.015056,0.823203,-3.26181,-2.821069,1.088218,
+ 0.851754,0.52393,-0.003494,-3.162498,-2.556375,1.058409,
+ 0.163153,0.19945,0.96623,-3.251541,-2.56405,1.023627,
+ 0.567548,-0.015056,0.823203,-3.26181,-2.821069,1.088218,
+ 0.851754,0.52393,-0.003494,-3.162498,-2.556375,1.058409,
+ 0.567548,-0.015056,0.823203,-3.26181,-2.821069,1.088218,
+ -0.347185,0.293858,0.890567,-3.196508,-2.788166,1.045431,
+ 0.851754,0.52393,-0.003494,-3.162498,-2.556375,1.058409,
+ -0.347185,0.293858,0.890567,-3.196508,-2.788166,1.045431,
+ -0.119083,0.074969,0.99005,-3.141072,-2.785287,1.032318,
+ 0.705477,-0.524425,0.47674,-3.053267,-2.764905,1.043008,
+ 0.441943,-0.143195,0.88554,-3.016419,-2.765091,0.966671,
+ -0.178214,-0.110838,-0.977729,-3.022819,-2.52224,0.979148,
+ 0.705477,-0.524425,0.47674,-3.053267,-2.764905,1.043008,
+ -0.178214,-0.110838,-0.977729,-3.022819,-2.52224,0.979148,
+ 0.840313,0.535537,-0.084107,-3.078699,-2.553982,1.046834,
+ -0.146645,-0.575935,-0.804235,-3.300372,-2.795728,0.878984,
+ -0.149743,-0.291108,-0.944898,-3.339637,-2.846837,0.966368,
+ 0.308087,0.149605,-0.939522,-3.372066,-2.569159,0.904785,
+ -0.146645,-0.575935,-0.804235,-3.300372,-2.795728,0.878984,
+ 0.308087,0.149605,-0.939522,-3.372066,-2.569159,0.904785,
+ 0.722847,0.455753,-0.519404,-3.297886,-2.54902,0.861657,
+ -0.686439,0.576002,0.443872,-3.184812,-2.768053,0.850127,
+ -0.146645,-0.575935,-0.804235,-3.300372,-2.795728,0.878984,
+ 0.722847,0.455753,-0.519404,-3.297886,-2.54902,0.861657,
+ -0.686439,0.576002,0.443872,-3.184812,-2.768053,0.850127,
+ 0.722847,0.455753,-0.519404,-3.297886,-2.54902,0.861657,
+ 0.61389,0.702597,0.359856,-3.240554,-2.555467,0.856262,
+ -0.369855,0.817227,0.441981,-3.137383,-2.776449,0.844117,
+ -0.686439,0.576002,0.443872,-3.184812,-2.768053,0.850127,
+ 0.61389,0.702597,0.359856,-3.240554,-2.555467,0.856262,
+ -0.369855,0.817227,0.441981,-3.137383,-2.776449,0.844117,
+ 0.61389,0.702597,0.359856,-3.240554,-2.555467,0.856262,
+ 0.780958,0.624512,0.00945,-3.132772,-2.528669,0.848639,
+ 0.011581,0.887039,0.461548,-3.040038,-2.780893,0.914614,
+ -0.369855,0.817227,0.441981,-3.137383,-2.776449,0.844117,
+ 0.780958,0.624512,0.00945,-3.132772,-2.528669,0.848639,
+ 0.011581,0.887039,0.461548,-3.040038,-2.780893,0.914614,
+ 0.780958,0.624512,0.00945,-3.132772,-2.528669,0.848639,
+ -0.674431,0.094186,-0.732306,-3.04661,-2.510881,0.900772,
+ 0.441943,-0.143195,0.88554,-3.016419,-2.765091,0.966671,
+ 0.011581,0.887039,0.461548,-3.040038,-2.780893,0.914614,
+ -0.674431,0.094186,-0.732306,-3.04661,-2.510881,0.900772,
+ 0.441943,-0.143195,0.88554,-3.016419,-2.765091,0.966671,
+ -0.674431,0.094186,-0.732306,-3.04661,-2.510881,0.900772,
+ -0.178214,-0.110838,-0.977729,-3.022819,-2.52224,0.979148,
+ -0.521685,-0.261319,0.812131,-3.335942,-1.365685,0.72459,
+ 0.515412,-0.714946,-0.472444,-3.319817,-1.365015,0.886015,
+ 0.249604,-0.855993,-0.452741,-3.27751,-1.177346,0.9153,
+ -0.521685,-0.261319,0.812131,-3.335942,-1.365685,0.72459,
+ 0.249604,-0.855993,-0.452741,-3.27751,-1.177346,0.9153,
+ -0.872722,-0.174901,0.455813,-3.27979,-1.162072,0.784602,
+ -0.012978,-0.998326,-0.056357,-3.238094,-0.979377,0.961631,
+ 0.074429,-0.99521,-0.063385,-3.233333,-0.683782,1.015512,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ -0.012978,-0.998326,-0.056357,-3.238094,-0.979377,0.961631,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ -0.874358,-0.225285,0.429819,-3.25121,-0.948205,0.819868,
+ 0.249604,-0.855993,-0.452741,-3.27751,-1.177346,0.9153,
+ -0.012978,-0.998326,-0.056357,-3.238094,-0.979377,0.961631,
+ -0.874358,-0.225285,0.429819,-3.25121,-0.948205,0.819868,
+ 0.249604,-0.855993,-0.452741,-3.27751,-1.177346,0.9153,
+ -0.874358,-0.225285,0.429819,-3.25121,-0.948205,0.819868,
+ -0.872722,-0.174901,0.455813,-3.27979,-1.162072,0.784602,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ -0.896964,-0.287307,0.336022,-3.406618,-0.343461,0.746456,
+ -0.970971,-0.219011,0.096178,-3.415655,-0.308965,0.671045,
+ -0.98615,-0.150918,0.068783,-3.631292,0.701013,0.420276,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.845931,-0.255219,-0.468256,-3.57817,0.837714,0.288502,
+ -0.98615,-0.150918,0.068783,-3.631292,0.701013,0.420276,
+ -0.845931,-0.255219,-0.468256,-3.57817,0.837714,0.288502,
+ -0.794709,-0.185222,-0.57804,-3.556552,0.704883,0.28063,
+ -0.84728,-0.52968,0.039439,-3.570384,0.385564,0.52448,
+ -0.98615,-0.150918,0.068783,-3.631292,0.701013,0.420276,
+ -0.794709,-0.185222,-0.57804,-3.556552,0.704883,0.28063,
+ -0.84728,-0.52968,0.039439,-3.570384,0.385564,0.52448,
+ -0.794709,-0.185222,-0.57804,-3.556552,0.704883,0.28063,
+ -0.17902,-0.308668,0.934171,-3.536654,0.442277,0.322,
+ -0.815087,-0.388054,0.430171,-3.520188,0.140164,0.618561,
+ -0.84728,-0.52968,0.039439,-3.570384,0.385564,0.52448,
+ -0.17902,-0.308668,0.934171,-3.536654,0.442277,0.322,
+ -0.815087,-0.388054,0.430171,-3.520188,0.140164,0.618561,
+ -0.17902,-0.308668,0.934171,-3.536654,0.442277,0.322,
+ -0.136917,-0.20176,0.969818,-3.51684,0.149002,0.430359,
+ -0.945906,-0.323169,0.028687,-3.458251,-0.12595,0.731712,
+ -0.815087,-0.388054,0.430171,-3.520188,0.140164,0.618561,
+ -0.136917,-0.20176,0.969818,-3.51684,0.149002,0.430359,
+ -0.945906,-0.323169,0.028687,-3.458251,-0.12595,0.731712,
+ -0.136917,-0.20176,0.969818,-3.51684,0.149002,0.430359,
+ -0.739347,0.031953,0.672566,-3.470778,-0.078218,0.546398,
+ -0.896964,-0.287307,0.336022,-3.406618,-0.343461,0.746456,
+ -0.945906,-0.323169,0.028687,-3.458251,-0.12595,0.731712,
+ -0.739347,0.031953,0.672566,-3.470778,-0.078218,0.546398,
+ -0.896964,-0.287307,0.336022,-3.406618,-0.343461,0.746456,
+ -0.739347,0.031953,0.672566,-3.470778,-0.078218,0.546398,
+ -0.970971,-0.219011,0.096178,-3.415655,-0.308965,0.671045,
+ -0.989171,0.146765,0,-3.599077,0.796217,0,
+ -0.845931,-0.255219,-0.468256,-3.57817,0.837714,0.288502,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.989171,0.146765,0,-3.599077,0.796217,0,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.996668,0.081567,0,-3.623861,0.911561,0,
+ -0.454242,-0.890878,-0.000928,-3.709741,1.351194,0.211745,
+ -0.848349,-0.120539,-0.515533,-3.709827,1.417763,0,
+ -0.844095,-0.536194,0,-3.601668,1.293049,0,
+ -0.354058,-0.732075,-0.581987,-3.701634,1.27265,0.270469,
+ -0.454242,-0.890878,-0.000928,-3.709741,1.351194,0.211745,
+ -0.844095,-0.536194,0,-3.601668,1.293049,0,
+ -0.587869,-0.808404,0.029894,-3.695872,1.156978,0.316829,
+ -0.354058,-0.732075,-0.581987,-3.701634,1.27265,0.270469,
+ -0.844095,-0.536194,0,-3.601668,1.293049,0,
+ -0.587869,-0.808404,0.029894,-3.695872,1.156978,0.316829,
+ -0.844095,-0.536194,0,-3.601668,1.293049,0,
+ -0.946116,-0.323827,0,-3.608593,1.163581,0,
+ -0.581301,-0.608503,-0.540197,-3.672431,1.044224,0.364991,
+ -0.587869,-0.808404,0.029894,-3.695872,1.156978,0.316829,
+ -0.946116,-0.323827,0,-3.608593,1.163581,0,
+ -0.581301,-0.608503,-0.540197,-3.672431,1.044224,0.364991,
+ -0.946116,-0.323827,0,-3.608593,1.163581,0,
+ -0.997181,-0.075036,0,-3.622326,1.005378,0,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.581301,-0.608503,-0.540197,-3.672431,1.044224,0.364991,
+ -0.997181,-0.075036,0,-3.622326,1.005378,0,
+ -0.736087,-0.675143,0.048562,-3.664355,0.932851,0.370749,
+ -0.997181,-0.075036,0,-3.622326,1.005378,0,
+ -0.996668,0.081567,0,-3.623861,0.911561,0,
+ 0.166377,-0.157108,0.973466,-3.86074,-0.188349,-0.024962,
+ 0.238843,0.101951,0.965691,-3.84599,-0.18882,0.019164,
+ 0.604306,0.20436,0.770098,-3.81743,0.150343,0.048629,
+ 0.166377,-0.157108,0.973466,-3.86074,-0.188349,-0.024962,
+ 0.604306,0.20436,0.770098,-3.81743,0.150343,0.048629,
+ 0.054863,-0.132814,0.989621,-3.828633,0.149083,0,
+ 0.054863,-0.132814,0.989621,-3.828633,0.149083,0,
+ 0.604306,0.20436,0.770098,-3.81743,0.150343,0.048629,
+ 0.02054,-0.128179,0.991538,-3.84447,0.498176,0.053132,
+ 0.054863,-0.132814,0.989621,-3.828633,0.149083,0,
+ 0.02054,-0.128179,0.991538,-3.84447,0.498176,0.053132,
+ -0.996511,-0.083465,-0.000062,-3.856649,0.496801,0,
+ -0.996511,-0.083465,-0.000062,-3.856649,0.496801,0,
+ 0.02054,-0.128179,0.991538,-3.84447,0.498176,0.053132,
+ 0.193291,-0.0748,0.978286,-3.88734,1.003866,0.057635,
+ -0.996511,-0.083465,-0.000062,-3.856649,0.496801,0,
+ 0.193291,-0.0748,0.978286,-3.88734,1.003866,0.057635,
+ -0.999862,-0.016634,0,-3.900566,1.002504,0,
+ -0.999862,-0.016634,0,-3.900566,1.002504,0,
+ 0.193291,-0.0748,0.978286,-3.88734,1.003866,0.057635,
+ 0.133637,0.26732,0.954296,-3.86082,1.479723,0.062137,
+ -0.999862,-0.016634,0,-3.900566,1.002504,0,
+ 0.133637,0.26732,0.954296,-3.86082,1.479723,0.062137,
+ -0.964752,0.26316,0,-3.87514,1.480358,0,
+ -0.964752,0.26316,0,-3.87514,1.480358,0,
+ 0.133637,0.26732,0.954296,-3.86082,1.479723,0.062137,
+ 0.555353,0.507651,0.65869,-3.698925,1.787941,0.06664,
+ -0.964752,0.26316,0,-3.87514,1.480358,0,
+ 0.555353,0.507651,0.65869,-3.698925,1.787941,0.06664,
+ -0.766357,0.642415,0,-3.712832,1.794492,0,
+ -0.766357,0.642415,0,-3.712832,1.794492,0,
+ 0.555353,0.507651,0.65869,-3.698925,1.787941,0.06664,
+ 0.823156,0.134626,0.551624,-3.469715,1.961504,0.071141,
+ -0.766357,0.642415,0,-3.712832,1.794492,0,
+ 0.823156,0.134626,0.551624,-3.469715,1.961504,0.071141,
+ -0.410619,0.911807,0,-3.47843,1.975409,0,
+ -0.410619,0.911807,0,-3.47843,1.975409,0,
+ 0.823156,0.134626,0.551624,-3.469715,1.961504,0.071141,
+ 0.707626,-0.125604,0.695334,-3.238225,2.005405,0.075645,
+ -0.410619,0.911807,0,-3.47843,1.975409,0,
+ 0.707626,-0.125604,0.695334,-3.238225,2.005405,0.075645,
+ -0.433128,-0.901332,0,-3.242148,2.021387,0,
+ 0.238843,0.101951,0.965691,-3.84599,-0.18882,0.019164,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.836108,-0.069219,0.54418,-3.786822,0.153783,0.084233,
+ 0.238843,0.101951,0.965691,-3.84599,-0.18882,0.019164,
+ 0.836108,-0.069219,0.54418,-3.786822,0.153783,0.084233,
+ 0.604306,0.20436,0.770098,-3.81743,0.150343,0.048629,
+ 0.604306,0.20436,0.770098,-3.81743,0.150343,0.048629,
+ 0.836108,-0.069219,0.54418,-3.786822,0.153783,0.084233,
+ 0.412833,-0.156454,0.897269,-3.811194,0.501935,0.092033,
+ 0.604306,0.20436,0.770098,-3.81743,0.150343,0.048629,
+ 0.412833,-0.156454,0.897269,-3.811194,0.501935,0.092033,
+ 0.02054,-0.128179,0.991538,-3.84447,0.498176,0.053132,
+ 0.02054,-0.128179,0.991538,-3.84447,0.498176,0.053132,
+ 0.412833,-0.156454,0.897269,-3.811194,0.501935,0.092033,
+ 0.108828,-0.182644,0.977137,-3.851206,1.007586,0.099831,
+ 0.02054,-0.128179,0.991538,-3.84447,0.498176,0.053132,
+ 0.108828,-0.182644,0.977137,-3.851206,1.007586,0.099831,
+ 0.193291,-0.0748,0.978286,-3.88734,1.003866,0.057635,
+ 0.193291,-0.0748,0.978286,-3.88734,1.003866,0.057635,
+ 0.108828,-0.182644,0.977137,-3.851206,1.007586,0.099831,
+ 0.746476,-0.187741,0.638379,-3.821694,1.477989,0.107631,
+ 0.193291,-0.0748,0.978286,-3.88734,1.003866,0.057635,
+ 0.746476,-0.187741,0.638379,-3.821694,1.477989,0.107631,
+ 0.133637,0.26732,0.954296,-3.86082,1.479723,0.062137,
+ 0.133637,0.26732,0.954296,-3.86082,1.479723,0.062137,
+ 0.746476,-0.187741,0.638379,-3.821694,1.477989,0.107631,
+ 0.883859,-0.211187,0.417364,-3.660928,1.770041,0.115431,
+ 0.133637,0.26732,0.954296,-3.86082,1.479723,0.062137,
+ 0.883859,-0.211187,0.417364,-3.660928,1.770041,0.115431,
+ 0.555353,0.507651,0.65869,-3.698925,1.787941,0.06664,
+ 0.555353,0.507651,0.65869,-3.698925,1.787941,0.06664,
+ 0.883859,-0.211187,0.417364,-3.660928,1.770041,0.115431,
+ 0.544736,0.449333,0.708069,-3.445903,1.923509,0.123229,
+ 0.555353,0.507651,0.65869,-3.698925,1.787941,0.06664,
+ 0.544736,0.449333,0.708069,-3.445903,1.923509,0.123229,
+ 0.823156,0.134626,0.551624,-3.469715,1.961504,0.071141,
+ 0.823156,0.134626,0.551624,-3.469715,1.961504,0.071141,
+ 0.544736,0.449333,0.708069,-3.445903,1.923509,0.123229,
+ 0.722,0.398916,0.565317,-3.227504,1.961738,0.131029,
+ 0.823156,0.134626,0.551624,-3.469715,1.961504,0.071141,
+ 0.722,0.398916,0.565317,-3.227504,1.961738,0.131029,
+ 0.707626,-0.125604,0.695334,-3.238225,2.005405,0.075645,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.711192,0.127662,0.69131,-3.75063,-0.191863,0.063305,
+ 0.269343,0.329305,0.904993,-3.745007,0.158482,0.097274,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.269343,0.329305,0.904993,-3.745007,0.158482,0.097274,
+ 0.836108,-0.069219,0.54418,-3.786822,0.153783,0.084233,
+ 0.836108,-0.069219,0.54418,-3.786822,0.153783,0.084233,
+ 0.269343,0.329305,0.904993,-3.745007,0.158482,0.097274,
+ 0.397989,0.4494,0.799778,-3.765736,0.50707,0.106281,
+ 0.836108,-0.069219,0.54418,-3.786822,0.153783,0.084233,
+ 0.397989,0.4494,0.799778,-3.765736,0.50707,0.106281,
+ 0.412833,-0.156454,0.897269,-3.811194,0.501935,0.092033,
+ 0.412833,-0.156454,0.897269,-3.811194,0.501935,0.092033,
+ 0.397989,0.4494,0.799778,-3.765736,0.50707,0.106281,
+ 0.264978,0.116702,0.957166,-3.80184,1.012668,0.115288,
+ 0.412833,-0.156454,0.897269,-3.811194,0.501935,0.092033,
+ 0.264978,0.116702,0.957166,-3.80184,1.012668,0.115288,
+ 0.108828,-0.182644,0.977137,-3.851206,1.007586,0.099831,
+ 0.108828,-0.182644,0.977137,-3.851206,1.007586,0.099831,
+ 0.264978,0.116702,0.957166,-3.80184,1.012668,0.115288,
+ 0.312982,-0.015529,0.949632,-3.768245,1.475619,0.124295,
+ 0.108828,-0.182644,0.977137,-3.851206,1.007586,0.099831,
+ 0.312982,-0.015529,0.949632,-3.768245,1.475619,0.124295,
+ 0.746476,-0.187741,0.638379,-3.821694,1.477989,0.107631,
+ 0.746476,-0.187741,0.638379,-3.821694,1.477989,0.107631,
+ 0.312982,-0.015529,0.949632,-3.768245,1.475619,0.124295,
+ 0.470021,0.18298,0.863481,-3.609021,1.745588,0.133304,
+ 0.746476,-0.187741,0.638379,-3.821694,1.477989,0.107631,
+ 0.470021,0.18298,0.863481,-3.609021,1.745588,0.133304,
+ 0.883859,-0.211187,0.417364,-3.660928,1.770041,0.115431,
+ 0.883859,-0.211187,0.417364,-3.660928,1.770041,0.115431,
+ 0.470021,0.18298,0.863481,-3.609021,1.745588,0.133304,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ 0.883859,-0.211187,0.417364,-3.660928,1.770041,0.115431,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ 0.544736,0.449333,0.708069,-3.445903,1.923509,0.123229,
+ 0.544736,0.449333,0.708069,-3.445903,1.923509,0.123229,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ 0.722,0.398916,0.565317,-3.227504,1.961738,0.131029,
+ 0.711192,0.127662,0.69131,-3.75063,-0.191863,0.063305,
+ 0.560378,0.257624,0.787151,-3.695565,-0.19362,0.051497,
+ 0.661824,0.260114,0.703086,-3.703185,0.163182,0.084262,
+ 0.711192,0.127662,0.69131,-3.75063,-0.191863,0.063305,
+ 0.661824,0.260114,0.703086,-3.703185,0.163182,0.084262,
+ 0.269343,0.329305,0.904993,-3.745007,0.158482,0.097274,
+ 0.269343,0.329305,0.904993,-3.745007,0.158482,0.097274,
+ 0.661824,0.260114,0.703086,-3.703185,0.163182,0.084262,
+ 0.675892,0.137563,0.724049,-3.720269,0.512205,0.092064,
+ 0.269343,0.329305,0.904993,-3.745007,0.158482,0.097274,
+ 0.675892,0.137563,0.724049,-3.720269,0.512205,0.092064,
+ 0.397989,0.4494,0.799778,-3.765736,0.50707,0.106281,
+ 0.397989,0.4494,0.799778,-3.765736,0.50707,0.106281,
+ 0.675892,0.137563,0.724049,-3.720269,0.512205,0.092064,
+ 0.708269,-0.122725,0.695193,-3.752468,1.017751,0.099865,
+ 0.397989,0.4494,0.799778,-3.765736,0.50707,0.106281,
+ 0.708269,-0.122725,0.695193,-3.752468,1.017751,0.099865,
+ 0.264978,0.116702,0.957166,-3.80184,1.012668,0.115288,
+ 0.264978,0.116702,0.957166,-3.80184,1.012668,0.115288,
+ 0.708269,-0.122725,0.695193,-3.752468,1.017751,0.099865,
+ 0.540204,-0.272055,0.796345,-3.714787,1.473248,0.107668,
+ 0.264978,0.116702,0.957166,-3.80184,1.012668,0.115288,
+ 0.540204,-0.272055,0.796345,-3.714787,1.473248,0.107668,
+ 0.312982,-0.015529,0.949632,-3.768245,1.475619,0.124295,
+ 0.312982,-0.015529,0.949632,-3.768245,1.475619,0.124295,
+ 0.540204,-0.272055,0.796345,-3.714787,1.473248,0.107668,
+ 0.723289,-0.195474,0.662302,-3.557104,1.72113,0.11547,
+ 0.312982,-0.015529,0.949632,-3.768245,1.475619,0.124295,
+ 0.723289,-0.195474,0.662302,-3.557104,1.72113,0.11547,
+ 0.470021,0.18298,0.863481,-3.609021,1.745588,0.133304,
+ 0.470021,0.18298,0.863481,-3.609021,1.745588,0.133304,
+ 0.723289,-0.195474,0.662302,-3.557104,1.72113,0.11547,
+ 0.588787,-0.248294,0.769207,-3.380836,1.819691,0.123273,
+ 0.470021,0.18298,0.863481,-3.609021,1.745588,0.133304,
+ 0.588787,-0.248294,0.769207,-3.380836,1.819691,0.123273,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ 0.560378,0.257624,0.787151,-3.695565,-0.19362,0.051497,
+ 0.274422,-0.24433,0.930051,-3.65524,-0.194907,0.019209,
+ 0.017555,-0.142899,0.989582,-3.672559,0.166625,0.048678,
+ 0.560378,0.257624,0.787151,-3.695565,-0.19362,0.051497,
+ 0.017555,-0.142899,0.989582,-3.672559,0.166625,0.048678,
+ 0.661824,0.260114,0.703086,-3.703185,0.163182,0.084262,
+ 0.661824,0.260114,0.703086,-3.703185,0.163182,0.084262,
+ 0.017555,-0.142899,0.989582,-3.672559,0.166625,0.048678,
+ 0.961046,0.110911,0.253159,-3.686972,0.515966,0.053185,
+ 0.661824,0.260114,0.703086,-3.703185,0.163182,0.084262,
+ 0.961046,0.110911,0.253159,-3.686972,0.515966,0.053185,
+ 0.675892,0.137563,0.724049,-3.720269,0.512205,0.092064,
+ 0.675892,0.137563,0.724049,-3.720269,0.512205,0.092064,
+ 0.961046,0.110911,0.253159,-3.686972,0.515966,0.053185,
+ 0.910294,-0.144636,0.387873,-3.716312,1.021474,0.057693,
+ 0.675892,0.137563,0.724049,-3.720269,0.512205,0.092064,
+ 0.910294,-0.144636,0.387873,-3.716312,1.021474,0.057693,
+ 0.708269,-0.122725,0.695193,-3.752468,1.017751,0.099865,
+ 0.708269,-0.122725,0.695193,-3.752468,1.017751,0.099865,
+ 0.910294,-0.144636,0.387873,-3.716312,1.021474,0.057693,
+ 0.813709,-0.132052,0.566074,-3.675638,1.471512,0.062201,
+ 0.708269,-0.122725,0.695193,-3.752468,1.017751,0.099865,
+ 0.813709,-0.132052,0.566074,-3.675638,1.471512,0.062201,
+ 0.540204,-0.272055,0.796345,-3.714787,1.473248,0.107668,
+ 0.540204,-0.272055,0.796345,-3.714787,1.473248,0.107668,
+ 0.813709,-0.132052,0.566074,-3.675638,1.471512,0.062201,
+ 0.577502,-0.140087,0.804281,-3.519086,1.70322,0.066709,
+ 0.540204,-0.272055,0.796345,-3.714787,1.473248,0.107668,
+ 0.577502,-0.140087,0.804281,-3.519086,1.70322,0.066709,
+ 0.723289,-0.195474,0.662302,-3.557104,1.72113,0.11547,
+ 0.723289,-0.195474,0.662302,-3.557104,1.72113,0.11547,
+ 0.577502,-0.140087,0.804281,-3.519086,1.70322,0.066709,
+ 0.490646,-0.178294,0.852923,-3.357009,1.781675,0.071216,
+ 0.723289,-0.195474,0.662302,-3.557104,1.72113,0.11547,
+ 0.490646,-0.178294,0.852923,-3.357009,1.781675,0.071216,
+ 0.588787,-0.248294,0.769207,-3.380836,1.819691,0.123273,
+ 0.274422,-0.24433,0.930051,-3.65524,-0.194907,0.019209,
+ 0.267717,-0.172975,0.947844,-3.640457,-0.195379,-0.024909,
+ -0.028502,-0.108631,0.993674,-3.661331,0.167886,0.000058,
+ 0.274422,-0.24433,0.930051,-3.65524,-0.194907,0.019209,
+ -0.028502,-0.108631,0.993674,-3.661331,0.167886,0.000058,
+ 0.017555,-0.142899,0.989582,-3.672559,0.166625,0.048678,
+ 0.017555,-0.142899,0.989582,-3.672559,0.166625,0.048678,
+ -0.028502,-0.108631,0.993674,-3.661331,0.167886,0.000058,
+ 0.998889,0.047122,-0.000074,-3.674766,0.517345,-0.000063,
+ 0.017555,-0.142899,0.989582,-3.672559,0.166625,0.048678,
+ 0.998889,0.047122,-0.000074,-3.674766,0.517345,-0.000063,
+ 0.961046,0.110911,0.253159,-3.686972,0.515966,0.053185,
+ 0.961046,0.110911,0.253159,-3.686972,0.515966,0.053185,
+ 0.998889,0.047122,-0.000074,-3.674766,0.517345,-0.000063,
+ 0.999831,-0.018401,-0.000261,-3.703058,1.022838,-0.000069,
+ 0.961046,0.110911,0.253159,-3.686972,0.515966,0.053185,
+ 0.999831,-0.018401,-0.000261,-3.703058,1.022838,-0.000069,
+ 0.910294,-0.144636,0.387873,-3.716312,1.021474,0.057693,
+ 0.910294,-0.144636,0.387873,-3.716312,1.021474,0.057693,
+ 0.999831,-0.018401,-0.000261,-3.703058,1.022838,-0.000069,
+ 0.941293,-0.337592,-0.000186,-3.661286,1.470876,-0.000074,
+ 0.910294,-0.144636,0.387873,-3.716312,1.021474,0.057693,
+ 0.941293,-0.337592,-0.000186,-3.661286,1.470876,-0.000074,
+ 0.813709,-0.132052,0.566074,-3.675638,1.471512,0.062201,
+ 0.813709,-0.132052,0.566074,-3.675638,1.471512,0.062201,
+ 0.941293,-0.337592,-0.000186,-3.661286,1.470876,-0.000074,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.813709,-0.132052,0.566074,-3.675638,1.471512,0.062201,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.577502,-0.140087,0.804281,-3.519086,1.70322,0.066709,
+ 0.577502,-0.140087,0.804281,-3.519086,1.70322,0.066709,
+ -0.153783,-0.988105,0,-3.507689,1.700214,0,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085,
+ 0.577502,-0.140087,0.804281,-3.519086,1.70322,0.066709,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085,
+ 0.490646,-0.178294,0.852923,-3.357009,1.781675,0.071216,
+ 0.267717,-0.172975,0.947844,-3.640457,-0.195379,-0.024909,
+ -0.064166,-0.189382,0.979805,-3.655175,-0.194909,-0.069044,
+ 0.781868,0.537363,0.316106,-3.67251,0.16663,-0.048579,
+ 0.267717,-0.172975,0.947844,-3.640457,-0.195379,-0.024909,
+ 0.781868,0.537363,0.316106,-3.67251,0.16663,-0.048579,
+ -0.028502,-0.108631,0.993674,-3.661331,0.167886,0.000058,
+ -0.028502,-0.108631,0.993674,-3.661331,0.167886,0.000058,
+ 0.781868,0.537363,0.316106,-3.67251,0.16663,-0.048579,
+ 0.891325,0.039302,-0.451658,-3.686972,0.515966,-0.053185,
+ -0.028502,-0.108631,0.993674,-3.661331,0.167886,0.000058,
+ 0.891325,0.039302,-0.451658,-3.686972,0.515966,-0.053185,
+ 0.998889,0.047122,-0.000074,-3.674766,0.517345,-0.000063,
+ -0.064166,-0.189382,0.979805,-3.655175,-0.194909,-0.069044,
+ 0.89264,0.349909,0.284178,-3.695452,-0.193624,-0.101369,
+ 0.618085,0.65091,0.440781,-3.703099,0.163192,-0.084205,
+ -0.064166,-0.189382,0.979805,-3.655175,-0.194909,-0.069044,
+ 0.618085,0.65091,0.440781,-3.703099,0.163192,-0.084205,
+ 0.781868,0.537363,0.316106,-3.67251,0.16663,-0.048579,
+ 0.781868,0.537363,0.316106,-3.67251,0.16663,-0.048579,
+ 0.618085,0.65091,0.440781,-3.703099,0.163192,-0.084205,
+ 0.549192,0.015162,-0.835559,-3.720269,0.512205,-0.092064,
+ 0.781868,0.537363,0.316106,-3.67251,0.16663,-0.048579,
+ 0.549192,0.015162,-0.835559,-3.720269,0.512205,-0.092064,
+ 0.891325,0.039302,-0.451658,-3.686972,0.515966,-0.053185,
+ 0.89264,0.349909,0.284178,-3.695452,-0.193624,-0.101369,
+ 0.3526,0.621479,0.699598,-3.7505,-0.191867,-0.11323,
+ 0.171039,0.554898,0.814146,-3.744907,0.158493,-0.097274,
+ 0.89264,0.349909,0.284178,-3.695452,-0.193624,-0.101369,
+ 0.171039,0.554898,0.814146,-3.744907,0.158493,-0.097274,
+ 0.618085,0.65091,0.440781,-3.703099,0.163192,-0.084205,
+ 0.618085,0.65091,0.440781,-3.703099,0.163192,-0.084205,
+ 0.171039,0.554898,0.814146,-3.744907,0.158493,-0.097274,
+ 0.002291,-0.021629,-0.999763,-3.765736,0.50707,-0.106281,
+ 0.618085,0.65091,0.440781,-3.703099,0.163192,-0.084205,
+ 0.002291,-0.021629,-0.999763,-3.765736,0.50707,-0.106281,
+ 0.549192,0.015162,-0.835559,-3.720269,0.512205,-0.092064,
+ 0.3526,0.621479,0.699598,-3.7505,-0.191867,-0.11323,
+ -0.281998,-0.030938,0.958916,-3.805575,-0.190109,-0.101447,
+ -0.120429,-0.209965,0.970264,-3.786736,0.153792,-0.084291,
+ 0.3526,0.621479,0.699598,-3.7505,-0.191867,-0.11323,
+ -0.120429,-0.209965,0.970264,-3.786736,0.153792,-0.084291,
+ 0.171039,0.554898,0.814146,-3.744907,0.158493,-0.097274,
+ 0.171039,0.554898,0.814146,-3.744907,0.158493,-0.097274,
+ -0.120429,-0.209965,0.970264,-3.786736,0.153792,-0.084291,
+ -0.545298,-0.056465,-0.836338,-3.811194,0.501935,-0.092033,
+ 0.171039,0.554898,0.814146,-3.744907,0.158493,-0.097274,
+ -0.545298,-0.056465,-0.836338,-3.811194,0.501935,-0.092033,
+ 0.002291,-0.021629,-0.999763,-3.765736,0.50707,-0.106281,
+ -0.281998,-0.030938,0.958916,-3.805575,-0.190109,-0.101447,
+ 0.077536,0.770695,0.632469,-3.845923,-0.188822,-0.06918,
+ -0.222902,0.035918,0.974179,-3.817381,0.150348,-0.048728,
+ -0.281998,-0.030938,0.958916,-3.805575,-0.190109,-0.101447,
+ -0.222902,0.035918,0.974179,-3.817381,0.150348,-0.048728,
+ -0.120429,-0.209965,0.970264,-3.786736,0.153792,-0.084291,
+ -0.120429,-0.209965,0.970264,-3.786736,0.153792,-0.084291,
+ -0.222902,0.035918,0.974179,-3.817381,0.150348,-0.048728,
+ -0.888551,-0.077176,-0.452239,-3.84447,0.498176,-0.053132,
+ -0.120429,-0.209965,0.970264,-3.786736,0.153792,-0.084291,
+ -0.888551,-0.077176,-0.452239,-3.84447,0.498176,-0.053132,
+ -0.545298,-0.056465,-0.836338,-3.811194,0.501935,-0.092033,
+ 0.077536,0.770695,0.632469,-3.845923,-0.188822,-0.06918,
+ 0.166377,-0.157108,0.973466,-3.86074,-0.188349,-0.024962,
+ 0.054863,-0.132814,0.989621,-3.828633,0.149083,0,
+ 0.077536,0.770695,0.632469,-3.845923,-0.188822,-0.06918,
+ 0.054863,-0.132814,0.989621,-3.828633,0.149083,0,
+ -0.222902,0.035918,0.974179,-3.817381,0.150348,-0.048728,
+ -0.222902,0.035918,0.974179,-3.817381,0.150348,-0.048728,
+ 0.054863,-0.132814,0.989621,-3.828633,0.149083,0,
+ -0.996511,-0.083465,-0.000062,-3.856649,0.496801,0,
+ -0.222902,0.035918,0.974179,-3.817381,0.150348,-0.048728,
+ -0.996511,-0.083465,-0.000062,-3.856649,0.496801,0,
+ -0.888551,-0.077176,-0.452239,-3.84447,0.498176,-0.053132,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ 0.137206,-0.207537,0.968557,-3.077669,1.871112,0.217368,
+ 0.722,0.398916,0.565317,-3.227504,1.961738,0.131029,
+ 0.137764,-0.289893,0.947092,-3.053102,1.96881,0.051104,
+ 0.012502,-0.999922,0,-3.037562,2.001526,0,
+ -0.433128,-0.901332,0,-3.242148,2.021387,0,
+ 0.137764,-0.289893,0.947092,-3.053102,1.96881,0.051104,
+ -0.433128,-0.901332,0,-3.242148,2.021387,0,
+ 0.707626,-0.125604,0.695334,-3.238225,2.005405,0.075645,
+ 0.137764,-0.289893,0.947092,-3.053102,1.96881,0.051104,
+ 0.707626,-0.125604,0.695334,-3.238225,2.005405,0.075645,
+ 0.722,0.398916,0.565317,-3.227504,1.961738,0.131029,
+ 0.137206,-0.207537,0.968557,-3.077669,1.871112,0.217368,
+ 0.137764,-0.289893,0.947092,-3.053102,1.96881,0.051104,
+ 0.722,0.398916,0.565317,-3.227504,1.961738,0.131029,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ 0.137206,-0.207537,0.968557,-3.077669,1.871112,0.217368,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ 0.094371,-0.230057,0.968591,-3.07531,1.846,0.363149,
+ 0.137206,-0.207537,0.968557,-3.077669,1.871112,0.217368,
+ 0.272203,0.043076,0.961275,4.861618,1.854067,0.618095,
+ 0.302716,0.058971,0.951255,4.852578,1.889721,0.605031,
+ 0.347794,0.132396,0.928176,4.824747,1.946835,0.626358,
+ 0.272203,0.043076,0.961275,4.861618,1.854067,0.618095,
+ 0.347794,0.132396,0.928176,4.824747,1.946835,0.626358,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.361081,-0.056526,0.93082,4.935561,2.016016,0.5857,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.195545,0.103956,0.975169,4.842883,2.021333,0.638025,
+ 0.361081,-0.056526,0.93082,4.935561,2.016016,0.5857,
+ 0.195545,0.103956,0.975169,4.842883,2.021333,0.638025,
+ 0.36359,0.089346,0.927264,4.861611,2.001639,0.621913,
+ 0.282492,0.026081,0.958915,4.973133,1.992779,0.533466,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.210495,0.185422,0.959849,4.991746,2.009819,0.523206,
+ 0.302716,0.058971,0.951255,4.852578,1.889721,0.605031,
+ 0.272203,0.043076,0.961275,4.861618,1.854067,0.618095,
+ -0.03359,0.173471,0.984266,4.944706,1.840663,0.575374,
+ 0.302716,0.058971,0.951255,4.852578,1.889721,0.605031,
+ -0.03359,0.173471,0.984266,4.944706,1.840663,0.575374,
+ 0.332757,0.286207,0.898531,4.926194,1.859813,0.582137,
+ -0.03359,0.173471,0.984266,4.944706,1.840663,0.575374,
+ 0.289202,0.572304,0.767353,4.991709,1.844295,0.520761,
+ 0.362705,0.428702,0.827442,4.982364,1.8733,0.53619,
+ -0.03359,0.173471,0.984266,4.944706,1.840663,0.575374,
+ 0.362705,0.428702,0.827442,4.982364,1.8733,0.53619,
+ 0.332757,0.286207,0.898531,4.926194,1.859813,0.582137,
+ 0.168187,0.300291,0.938903,4.852582,1.816115,0.603105,
+ 0.243508,0.533327,0.810103,4.908019,1.796041,0.587882,
+ -0.03359,0.173471,0.984266,4.944706,1.840663,0.575374,
+ 0.168187,0.300291,0.938903,4.852582,1.816115,0.603105,
+ -0.03359,0.173471,0.984266,4.944706,1.840663,0.575374,
+ 0.272203,0.043076,0.961275,4.861618,1.854067,0.618095,
+ 0.243508,0.533327,0.810103,4.908019,1.796041,0.587882,
+ 0.112152,0.130705,0.985057,4.963546,1.783161,0.553515,
+ 0.289202,0.572304,0.767353,4.991709,1.844295,0.520761,
+ 0.243508,0.533327,0.810103,4.908019,1.796041,0.587882,
+ 0.289202,0.572304,0.767353,4.991709,1.844295,0.520761,
+ -0.03359,0.173471,0.984266,4.944706,1.840663,0.575374,
+ 0.112152,0.130705,0.985057,4.963546,1.783161,0.553515,
+ 0.069483,0.206285,0.976022,4.983034,1.806343,0.505779,
+ 0.289202,0.572304,0.767353,4.991709,1.844295,0.520761,
+ 0.069483,0.206285,0.976022,4.983034,1.806343,0.505779,
+ 0.154687,0.171026,0.973048,5.01143,1.875569,0.463205,
+ 0.289202,0.572304,0.767353,4.991709,1.844295,0.520761,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.210495,0.185422,0.959849,4.991746,2.009819,0.523206,
+ 0.235746,0.648569,0.723728,4.964945,2.053575,0.499903,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.235746,0.648569,0.723728,4.964945,2.053575,0.499903,
+ 0.054287,0.055115,0.997003,4.918466,2.084725,0.532713,
+ 0.210495,0.185422,0.959849,4.991746,2.009819,0.523206,
+ 0.101497,0.61661,0.780699,5.020077,1.97817,0.480978,
+ 0.235746,0.648569,0.723728,4.964945,2.053575,0.499903,
+ 0.154687,0.171026,0.973048,5.01143,1.875569,0.463205,
+ 0.101497,0.61661,0.780699,5.020077,1.97817,0.480978,
+ 0.210495,0.185422,0.959849,4.991746,2.009819,0.523206,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.012421,0.392537,0.919652,4.881574,2.094571,0.539949,
+ 0.043397,0.435463,0.89916,4.825996,2.089176,0.576083,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.043397,0.435463,0.89916,4.825996,2.089176,0.576083,
+ 0.195545,0.103956,0.975169,4.842883,2.021333,0.638025,
+ 0.067357,0.280764,0.95741,4.788476,2.028047,0.608619,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.195545,0.103956,0.975169,4.842883,2.021333,0.638025,
+ 0.067357,0.280764,0.95741,4.788476,2.028047,0.608619,
+ 0.195545,0.103956,0.975169,4.842883,2.021333,0.638025,
+ 0.043397,0.435463,0.89916,4.825996,2.089176,0.576083,
+ 0.067357,0.280764,0.95741,4.788476,2.028047,0.608619,
+ 0.043397,0.435463,0.89916,4.825996,2.089176,0.576083,
+ 0.184871,0.227138,0.956154,4.798297,2.118191,0.591085,
+ 0.067357,0.280764,0.95741,4.788476,2.028047,0.608619,
+ 0.184871,0.227138,0.956154,4.798297,2.118191,0.591085,
+ -0.026366,0.234118,0.971851,4.751519,2.039658,0.634134,
+ 0.043397,0.435463,0.89916,4.825996,2.089176,0.576083,
+ 0.012421,0.392537,0.919652,4.881574,2.094571,0.539949,
+ -0.034875,0.308036,0.950735,4.872539,2.159259,0.542891,
+ 0.043397,0.435463,0.89916,4.825996,2.089176,0.576083,
+ -0.034875,0.308036,0.950735,4.872539,2.159259,0.542891,
+ 0.184871,0.227138,0.956154,4.798297,2.118191,0.591085,
+ 0.012421,0.392537,0.919652,4.881574,2.094571,0.539949,
+ 0.054287,0.055115,0.997003,4.918466,2.084725,0.532713,
+ -0.148853,0.101172,0.98367,4.927885,2.15656,0.516579,
+ 0.012421,0.392537,0.919652,4.881574,2.094571,0.539949,
+ -0.148853,0.101172,0.98367,4.927885,2.15656,0.516579,
+ -0.034875,0.308036,0.950735,4.872539,2.159259,0.542891,
+ 0.054287,0.055115,0.997003,4.918466,2.084725,0.532713,
+ 0.235746,0.648569,0.723728,4.964945,2.053575,0.499903,
+ 0.504806,0.844077,0.180846,5.00244,2.105746,0.468233,
+ 0.054287,0.055115,0.997003,4.918466,2.084725,0.532713,
+ 0.504806,0.844077,0.180846,5.00244,2.105746,0.468233,
+ -0.148853,0.101172,0.98367,4.927885,2.15656,0.516579,
+ 0.235746,0.648569,0.723728,4.964945,2.053575,0.499903,
+ 0.101497,0.61661,0.780699,5.020077,1.97817,0.480978,
+ 0.615065,0.769234,0.173133,5.057495,2.002751,0.451974,
+ 0.235746,0.648569,0.723728,4.964945,2.053575,0.499903,
+ 0.615065,0.769234,0.173133,5.057495,2.002751,0.451974,
+ 0.504806,0.844077,0.180846,5.00244,2.105746,0.468233,
+ 0.101497,0.61661,0.780699,5.020077,1.97817,0.480978,
+ 0.154687,0.171026,0.973048,5.01143,1.875569,0.463205,
+ 0.550963,0.62763,0.550018,5.075994,1.900999,0.443793,
+ 0.101497,0.61661,0.780699,5.020077,1.97817,0.480978,
+ 0.550963,0.62763,0.550018,5.075994,1.900999,0.443793,
+ 0.615065,0.769234,0.173133,5.057495,2.002751,0.451974,
+ 0.154687,0.171026,0.973048,5.01143,1.875569,0.463205,
+ 0.477291,0.716177,0.509199,5.030289,1.827419,0.440803,
+ 0.550963,0.62763,0.550018,5.075994,1.900999,0.443793,
+ 0.069483,0.206285,0.976022,4.983034,1.806343,0.505779,
+ 0.888167,0.420088,0.186241,4.991904,1.760829,0.510386,
+ 0.477291,0.716177,0.509199,5.030289,1.827419,0.440803,
+ 0.069483,0.206285,0.976022,4.983034,1.806343,0.505779,
+ 0.477291,0.716177,0.509199,5.030289,1.827419,0.440803,
+ 0.154687,0.171026,0.973048,5.01143,1.875569,0.463205,
+ 0.112152,0.130705,0.985057,4.963546,1.783161,0.553515,
+ 0.749779,0.312648,0.583167,4.936066,1.737668,0.557276,
+ 0.888167,0.420088,0.186241,4.991904,1.760829,0.510386,
+ 0.112152,0.130705,0.985057,4.963546,1.783161,0.553515,
+ 0.888167,0.420088,0.186241,4.991904,1.760829,0.510386,
+ 0.069483,0.206285,0.976022,4.983034,1.806343,0.505779,
+ 0.358075,0.480709,0.800438,4.871155,1.741238,0.592326,
+ 0.749779,0.312648,0.583167,4.936066,1.737668,0.557276,
+ 0.112152,0.130705,0.985057,4.963546,1.783161,0.553515,
+ 0.358075,0.480709,0.800438,4.871155,1.741238,0.592326,
+ 0.112152,0.130705,0.985057,4.963546,1.783161,0.553515,
+ 0.243508,0.533327,0.810103,4.908019,1.796041,0.587882,
+ 0.524848,0.480955,0.702294,4.816181,1.79786,0.604026,
+ 0.358075,0.480709,0.800438,4.871155,1.741238,0.592326,
+ 0.243508,0.533327,0.810103,4.908019,1.796041,0.587882,
+ 0.524848,0.480955,0.702294,4.816181,1.79786,0.604026,
+ 0.243508,0.533327,0.810103,4.908019,1.796041,0.587882,
+ 0.168187,0.300291,0.938903,4.852582,1.816115,0.603105,
+ 0.524848,0.480955,0.702294,4.816181,1.79786,0.604026,
+ 0.168187,0.300291,0.938903,4.852582,1.816115,0.603105,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.988203,-0.047217,0.145687,5.085813,1.888503,0.408327,
+ 0.72603,0.248277,0.641279,5.095375,1.961238,0.401516,
+ 0.550963,0.62763,0.550018,5.075994,1.900999,0.443793,
+ 0.477291,0.716177,0.509199,5.030289,1.827419,0.440803,
+ 0.936242,-0.313777,-0.158096,5.058179,1.788186,0.417387,
+ 0.988203,-0.047217,0.145687,5.085813,1.888503,0.408327,
+ 0.477291,0.716177,0.509199,5.030289,1.827419,0.440803,
+ 0.988203,-0.047217,0.145687,5.085813,1.888503,0.408327,
+ 0.550963,0.62763,0.550018,5.075994,1.900999,0.443793,
+ 0.888167,0.420088,0.186241,4.991904,1.760829,0.510386,
+ 0.831186,-0.511045,-0.219005,5.019836,1.739907,0.485562,
+ 0.936242,-0.313777,-0.158096,5.058179,1.788186,0.417387,
+ 0.888167,0.420088,0.186241,4.991904,1.760829,0.510386,
+ 0.936242,-0.313777,-0.158096,5.058179,1.788186,0.417387,
+ 0.477291,0.716177,0.509199,5.030289,1.827419,0.440803,
+ 0.749779,0.312648,0.583167,4.936066,1.737668,0.557276,
+ 0.797293,-0.558933,-0.227857,4.917973,1.68148,0.544201,
+ 0.831186,-0.511045,-0.219005,5.019836,1.739907,0.485562,
+ 0.749779,0.312648,0.583167,4.936066,1.737668,0.557276,
+ 0.831186,-0.511045,-0.219005,5.019836,1.739907,0.485562,
+ 0.888167,0.420088,0.186241,4.991904,1.760829,0.510386,
+ 0.707669,-0.687185,0.164261,4.862636,1.684144,0.570155,
+ 0.797293,-0.558933,-0.227857,4.917973,1.68148,0.544201,
+ 0.749779,0.312648,0.583167,4.936066,1.737668,0.557276,
+ 0.707669,-0.687185,0.164261,4.862636,1.684144,0.570155,
+ 0.749779,0.312648,0.583167,4.936066,1.737668,0.557276,
+ 0.358075,0.480709,0.800438,4.871155,1.741238,0.592326,
+ 0.744254,-0.65416,0.134758,4.752337,1.723388,0.591296,
+ 0.707669,-0.687185,0.164261,4.862636,1.684144,0.570155,
+ 0.358075,0.480709,0.800438,4.871155,1.741238,0.592326,
+ 0.744254,-0.65416,0.134758,4.752337,1.723388,0.591296,
+ 0.358075,0.480709,0.800438,4.871155,1.741238,0.592326,
+ 0.524848,0.480955,0.702294,4.816181,1.79786,0.604026,
+ 0.884603,-0.366979,0.287755,4.697607,1.768061,0.576663,
+ 0.744254,-0.65416,0.134758,4.752337,1.723388,0.591296,
+ 0.524848,0.480955,0.702294,4.816181,1.79786,0.604026,
+ 0.884603,-0.366979,0.287755,4.697607,1.768061,0.576663,
+ 0.524848,0.480955,0.702294,4.816181,1.79786,0.604026,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.615065,0.769234,0.173133,5.057495,2.002751,0.451974,
+ 0.670109,-0.356989,0.650778,5.067202,2.027704,0.422291,
+ 0.468872,-0.092982,0.878359,5.030641,2.102197,0.432329,
+ 0.615065,0.769234,0.173133,5.057495,2.002751,0.451974,
+ 0.468872,-0.092982,0.878359,5.030641,2.102197,0.432329,
+ 0.504806,0.844077,0.180846,5.00244,2.105746,0.468233,
+ -0.148853,0.101172,0.98367,4.927885,2.15656,0.516579,
+ 0.504806,0.844077,0.180846,5.00244,2.105746,0.468233,
+ 0.468872,-0.092982,0.878359,5.030641,2.102197,0.432329,
+ -0.148853,0.101172,0.98367,4.927885,2.15656,0.516579,
+ 0.468872,-0.092982,0.878359,5.030641,2.102197,0.432329,
+ 0.507131,-0.710633,0.487667,4.93795,2.181155,0.486939,
+ -0.034875,0.308036,0.950735,4.872539,2.159259,0.542891,
+ -0.148853,0.101172,0.98367,4.927885,2.15656,0.516579,
+ 0.507131,-0.710633,0.487667,4.93795,2.181155,0.486939,
+ -0.034875,0.308036,0.950735,4.872539,2.159259,0.542891,
+ 0.507131,-0.710633,0.487667,4.93795,2.181155,0.486939,
+ 0.292794,-0.691168,0.660725,4.881855,2.194544,0.530288,
+ 0.384025,-0.256534,0.88697,4.807794,2.143653,0.570393,
+ 0.184871,0.227138,0.956154,4.798297,2.118191,0.591085,
+ -0.034875,0.308036,0.950735,4.872539,2.159259,0.542891,
+ 0.384025,-0.256534,0.88697,4.807794,2.143653,0.570393,
+ -0.034875,0.308036,0.950735,4.872539,2.159259,0.542891,
+ 0.292794,-0.691168,0.660725,4.881855,2.194544,0.530288,
+ 0.689769,-0.265624,0.673544,4.728963,2.036146,0.614307,
+ -0.026366,0.234118,0.971851,4.751519,2.039658,0.634134,
+ 0.184871,0.227138,0.956154,4.798297,2.118191,0.591085,
+ 0.689769,-0.265624,0.673544,4.728963,2.036146,0.614307,
+ 0.184871,0.227138,0.956154,4.798297,2.118191,0.591085,
+ 0.384025,-0.256534,0.88697,4.807794,2.143653,0.570393,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ -0.026366,0.234118,0.971851,4.751519,2.039658,0.634134,
+ 0.689769,-0.265624,0.673544,4.728963,2.036146,0.614307,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.689769,-0.265624,0.673544,4.728963,2.036146,0.614307,
+ 0.901575,-0.270544,0.337593,4.742358,1.882232,0.62165,
+ 0.884603,-0.366979,0.287755,4.697607,1.768061,0.576663,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.901575,-0.270544,0.337593,4.742358,1.882232,0.62165,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.689769,-0.265624,0.673544,4.728963,2.036146,0.614307,
+ 0.384025,-0.256534,0.88697,4.807794,2.143653,0.570393,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.384025,-0.256534,0.88697,4.807794,2.143653,0.570393,
+ 0.399187,-0.679804,0.615237,4.74405,2.179337,0.556057,
+ 0.384025,-0.256534,0.88697,4.807794,2.143653,0.570393,
+ 0.292794,-0.691168,0.660725,4.881855,2.194544,0.530288,
+ 0.428199,-0.104479,0.897624,4.837331,2.235678,0.479332,
+ 0.384025,-0.256534,0.88697,4.807794,2.143653,0.570393,
+ 0.428199,-0.104479,0.897624,4.837331,2.235678,0.479332,
+ 0.399187,-0.679804,0.615237,4.74405,2.179337,0.556057,
+ 0.292794,-0.691168,0.660725,4.881855,2.194544,0.530288,
+ 0.507131,-0.710633,0.487667,4.93795,2.181155,0.486939,
+ 0.259896,0.111139,0.95922,4.89385,2.220523,0.417713,
+ 0.292794,-0.691168,0.660725,4.881855,2.194544,0.530288,
+ 0.259896,0.111139,0.95922,4.89385,2.220523,0.417713,
+ 0.428199,-0.104479,0.897624,4.837331,2.235678,0.479332,
+ 0.507131,-0.710633,0.487667,4.93795,2.181155,0.486939,
+ 0.468872,-0.092982,0.878359,5.030641,2.102197,0.432329,
+ 0.230527,0.277299,0.932718,4.995978,2.148785,0.344534,
+ 0.507131,-0.710633,0.487667,4.93795,2.181155,0.486939,
+ 0.230527,0.277299,0.932718,4.995978,2.148785,0.344534,
+ 0.259896,0.111139,0.95922,4.89385,2.220523,0.417713,
+ 0.468872,-0.092982,0.878359,5.030641,2.102197,0.432329,
+ 0.670109,-0.356989,0.650778,5.067202,2.027704,0.422291,
+ 0.171367,-0.69152,0.701736,5.06084,2.053335,0.309324,
+ 0.468872,-0.092982,0.878359,5.030641,2.102197,0.432329,
+ 0.171367,-0.69152,0.701736,5.06084,2.053335,0.309324,
+ 0.230527,0.277299,0.932718,4.995978,2.148785,0.344534,
+ 0.670109,-0.356989,0.650778,5.067202,2.027704,0.422291,
+ 0.72603,0.248277,0.641279,5.095375,1.961238,0.401516,
+ 0.258975,-0.768157,0.585548,5.097062,1.954206,0.328795,
+ 0.670109,-0.356989,0.650778,5.067202,2.027704,0.422291,
+ 0.258975,-0.768157,0.585548,5.097062,1.954206,0.328795,
+ 0.171367,-0.69152,0.701736,5.06084,2.053335,0.309324,
+ 0.988203,-0.047217,0.145687,5.085813,1.888503,0.408327,
+ 0.154813,-0.698608,0.698556,5.105589,1.864086,0.347113,
+ 0.258975,-0.768157,0.585548,5.097062,1.954206,0.328795,
+ 0.988203,-0.047217,0.145687,5.085813,1.888503,0.408327,
+ 0.258975,-0.768157,0.585548,5.097062,1.954206,0.328795,
+ 0.72603,0.248277,0.641279,5.095375,1.961238,0.401516,
+ 0.936242,-0.313777,-0.158096,5.058179,1.788186,0.417387,
+ 0.154813,-0.698608,0.698556,5.105589,1.864086,0.347113,
+ 0.988203,-0.047217,0.145687,5.085813,1.888503,0.408327,
+ 0.884603,-0.366979,0.287755,4.697607,1.768061,0.576663,
+ 0.901575,-0.270544,0.337593,4.742358,1.882232,0.62165,
+ 0.152967,-0.640193,0.752831,4.697024,1.862575,0.604048,
+ 0.259896,0.111139,0.95922,4.89385,2.220523,0.417713,
+ 0.203778,-0.389736,0.898098,4.83289,2.262727,0.283787,
+ 0.244568,-0.044721,0.9686,4.739441,2.299169,0.369987,
+ 0.259896,0.111139,0.95922,4.89385,2.220523,0.417713,
+ 0.244568,-0.044721,0.9686,4.739441,2.299169,0.369987,
+ 0.428199,-0.104479,0.897624,4.837331,2.235678,0.479332,
+ 0.259896,0.111139,0.95922,4.89385,2.220523,0.417713,
+ 0.230527,0.277299,0.932718,4.995978,2.148785,0.344534,
+ -0.026148,0.006311,0.999638,4.971394,2.146686,0.224781,
+ 0.259896,0.111139,0.95922,4.89385,2.220523,0.417713,
+ -0.026148,0.006311,0.999638,4.971394,2.146686,0.224781,
+ 0.203778,-0.389736,0.898098,4.83289,2.262727,0.283787,
+ 0.230527,0.277299,0.932718,4.995978,2.148785,0.344534,
+ 0.171367,-0.69152,0.701736,5.06084,2.053335,0.309324,
+ -0.149467,-0.273889,0.950076,5.072165,2.04363,0.209228,
+ 0.230527,0.277299,0.932718,4.995978,2.148785,0.344534,
+ -0.149467,-0.273889,0.950076,5.072165,2.04363,0.209228,
+ -0.026148,0.006311,0.999638,4.971394,2.146686,0.224781,
+ 0.171367,-0.69152,0.701736,5.06084,2.053335,0.309324,
+ 0.258975,-0.768157,0.585548,5.097062,1.954206,0.328795,
+ 0.06611,-0.359829,0.930673,5.127157,1.942759,0.211214,
+ 0.171367,-0.69152,0.701736,5.06084,2.053335,0.309324,
+ 0.06611,-0.359829,0.930673,5.127157,1.942759,0.211214,
+ -0.149467,-0.273889,0.950076,5.072165,2.04363,0.209228,
+ 0.258975,-0.768157,0.585548,5.097062,1.954206,0.328795,
+ 0.154813,-0.698608,0.698556,5.105589,1.864086,0.347113,
+ -0.091049,-0.145989,0.985087,5.152698,1.830661,0.287042,
+ 0.258975,-0.768157,0.585548,5.097062,1.954206,0.328795,
+ -0.091049,-0.145989,0.985087,5.152698,1.830661,0.287042,
+ 0.06611,-0.359829,0.930673,5.127157,1.942759,0.211214,
+ 0.936242,-0.313777,-0.158096,5.058179,1.788186,0.417387,
+ -0.12102,-0.514608,0.848842,5.133171,1.715563,0.334258,
+ -0.091049,-0.145989,0.985087,5.152698,1.830661,0.287042,
+ 0.936242,-0.313777,-0.158096,5.058179,1.788186,0.417387,
+ -0.091049,-0.145989,0.985087,5.152698,1.830661,0.287042,
+ 0.154813,-0.698608,0.698556,5.105589,1.864086,0.347113,
+ 0.831186,-0.511045,-0.219005,5.019836,1.739907,0.485562,
+ 0.063508,-0.739371,0.670296,5.103427,1.624404,0.434275,
+ -0.12102,-0.514608,0.848842,5.133171,1.715563,0.334258,
+ 0.831186,-0.511045,-0.219005,5.019836,1.739907,0.485562,
+ -0.12102,-0.514608,0.848842,5.133171,1.715563,0.334258,
+ 0.936242,-0.313777,-0.158096,5.058179,1.788186,0.417387,
+ 0.797293,-0.558933,-0.227857,4.917973,1.68148,0.544201,
+ 0.169576,-0.140705,0.975421,4.982822,1.503071,0.507606,
+ 0.063508,-0.739371,0.670296,5.103427,1.624404,0.434275,
+ 0.797293,-0.558933,-0.227857,4.917973,1.68148,0.544201,
+ 0.063508,-0.739371,0.670296,5.103427,1.624404,0.434275,
+ 0.831186,-0.511045,-0.219005,5.019836,1.739907,0.485562,
+ 0.111896,-0.605741,0.787755,4.927282,1.486953,0.526327,
+ 0.169576,-0.140705,0.975421,4.982822,1.503071,0.507606,
+ 0.797293,-0.558933,-0.227857,4.917973,1.68148,0.544201,
+ 0.111896,-0.605741,0.787755,4.927282,1.486953,0.526327,
+ 0.797293,-0.558933,-0.227857,4.917973,1.68148,0.544201,
+ 0.707669,-0.687185,0.164261,4.862636,1.684144,0.570155,
+ 0.002178,-0.833415,0.552643,4.79841,1.473149,0.570618,
+ 0.111896,-0.605741,0.787755,4.927282,1.486953,0.526327,
+ 0.707669,-0.687185,0.164261,4.862636,1.684144,0.570155,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.002178,-0.833415,0.552643,4.79841,1.473149,0.570618,
+ 0.707669,-0.687185,0.164261,4.862636,1.684144,0.570155,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.707669,-0.687185,0.164261,4.862636,1.684144,0.570155,
+ 0.744254,-0.65416,0.134758,4.752337,1.723388,0.591296,
+ 0.205809,-0.680492,0.703259,4.615408,1.639641,0.577768,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.744254,-0.65416,0.134758,4.752337,1.723388,0.591296,
+ 0.205809,-0.680492,0.703259,4.615408,1.639641,0.577768,
+ 0.744254,-0.65416,0.134758,4.752337,1.723388,0.591296,
+ 0.884603,-0.366979,0.287755,4.697607,1.768061,0.576663,
+ 0.396941,-0.593503,0.700137,4.560751,1.785154,0.562428,
+ 0.205809,-0.680492,0.703259,4.615408,1.639641,0.577768,
+ 0.884603,-0.366979,0.287755,4.697607,1.768061,0.576663,
+ 0.396941,-0.593503,0.700137,4.560751,1.785154,0.562428,
+ 0.884603,-0.366979,0.287755,4.697607,1.768061,0.576663,
+ 0.152967,-0.640193,0.752831,4.697024,1.862575,0.604048,
+ 0.396941,-0.593503,0.700137,4.560751,1.785154,0.562428,
+ 0.152967,-0.640193,0.752831,4.697024,1.862575,0.604048,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.396941,-0.593503,0.700137,4.560751,1.785154,0.562428,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.025716,-0.894111,0.447106,4.551484,1.841749,0.575191,
+ 0.025716,-0.894111,0.447106,4.551484,1.841749,0.575191,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.051115,-0.906355,0.419413,4.533113,1.989009,0.578975,
+ 0.256335,-0.2349,0.937611,4.561299,2.133066,0.547248,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.399187,-0.679804,0.615237,4.74405,2.179337,0.556057,
+ 0.256335,-0.2349,0.937611,4.561299,2.133066,0.547248,
+ 0.399187,-0.679804,0.615237,4.74405,2.179337,0.556057,
+ 0.223925,-0.919003,0.324486,4.636582,2.263383,0.471997,
+ 0.051115,-0.906355,0.419413,4.533113,1.989009,0.578975,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.256335,-0.2349,0.937611,4.561299,2.133066,0.547248,
+ -0.026148,0.006311,0.999638,4.971394,2.146686,0.224781,
+ -0.149467,-0.273889,0.950076,5.072165,2.04363,0.209228,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ -0.026148,0.006311,0.999638,4.971394,2.146686,0.224781,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ -0.989689,-0.143234,0,4.912303,2.162645,-0.00009,
+ -0.149467,-0.273889,0.950076,5.072165,2.04363,0.209228,
+ 0.06611,-0.359829,0.930673,5.127157,1.942759,0.211214,
+ 0.204472,-0.587725,0.782797,5.156645,1.942902,0.119993,
+ -0.149467,-0.273889,0.950076,5.072165,2.04363,0.209228,
+ 0.204472,-0.587725,0.782797,5.156645,1.942902,0.119993,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ 0.06611,-0.359829,0.930673,5.127157,1.942759,0.211214,
+ -0.091049,-0.145989,0.985087,5.152698,1.830661,0.287042,
+ 0.161367,-0.802085,0.574996,5.218821,1.803552,0.199306,
+ 0.06611,-0.359829,0.930673,5.127157,1.942759,0.211214,
+ 0.161367,-0.802085,0.574996,5.218821,1.803552,0.199306,
+ 0.204472,-0.587725,0.782797,5.156645,1.942902,0.119993,
+ -0.091049,-0.145989,0.985087,5.152698,1.830661,0.287042,
+ -0.12102,-0.514608,0.848842,5.133171,1.715563,0.334258,
+ 0.218068,-0.756333,0.616772,5.216855,1.636645,0.279797,
+ -0.091049,-0.145989,0.985087,5.152698,1.830661,0.287042,
+ 0.218068,-0.756333,0.616772,5.216855,1.636645,0.279797,
+ 0.161367,-0.802085,0.574996,5.218821,1.803552,0.199306,
+ 0.726183,-0.658007,0.199213,5.233176,1.442459,0.362988,
+ 0.218068,-0.756333,0.616772,5.216855,1.636645,0.279797,
+ -0.12102,-0.514608,0.848842,5.133171,1.715563,0.334258,
+ 0.063508,-0.739371,0.670296,5.103427,1.624404,0.434275,
+ 0.726183,-0.658007,0.199213,5.233176,1.442459,0.362988,
+ -0.12102,-0.514608,0.848842,5.133171,1.715563,0.334258,
+ 0.035735,-0.99787,0.054579,4.596478,1.512987,0.598982,
+ 0.485742,-0.874075,-0.006874,4.679116,1.438434,0.589658,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.035735,-0.99787,0.054579,4.596478,1.512987,0.598982,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.205809,-0.680492,0.703259,4.615408,1.639641,0.577768,
+ -0.034202,-0.995024,0.093584,4.560024,1.604023,0.589333,
+ 0.035735,-0.99787,0.054579,4.596478,1.512987,0.598982,
+ 0.205809,-0.680492,0.703259,4.615408,1.639641,0.577768,
+ 0.06465,-0.997821,-0.013157,4.477781,1.687858,0.597407,
+ -0.034202,-0.995024,0.093584,4.560024,1.604023,0.589333,
+ 0.205809,-0.680492,0.703259,4.615408,1.639641,0.577768,
+ 0.06465,-0.997821,-0.013157,4.477781,1.687858,0.597407,
+ 0.205809,-0.680492,0.703259,4.615408,1.639641,0.577768,
+ 0.396941,-0.593503,0.700137,4.560751,1.785154,0.562428,
+ 0.173736,-0.983834,-0.043437,4.459682,1.778884,0.588185,
+ 0.06465,-0.997821,-0.013157,4.477781,1.687858,0.597407,
+ 0.396941,-0.593503,0.700137,4.560751,1.785154,0.562428,
+ 0.173736,-0.983834,-0.043437,4.459682,1.778884,0.588185,
+ 0.396941,-0.593503,0.700137,4.560751,1.785154,0.562428,
+ 0.025716,-0.894111,0.447106,4.551484,1.841749,0.575191,
+ 0.173736,-0.983834,-0.043437,4.459682,1.778884,0.588185,
+ 0.025716,-0.894111,0.447106,4.551484,1.841749,0.575191,
+ 0.051115,-0.906355,0.419413,4.533113,1.989009,0.578975,
+ 0.173736,-0.983834,-0.043437,4.459682,1.778884,0.588185,
+ 0.051115,-0.906355,0.419413,4.533113,1.989009,0.578975,
+ 0.003817,-0.976864,0.213829,4.43261,1.878873,0.577888,
+ 0.003817,-0.976864,0.213829,4.43261,1.878873,0.577888,
+ 0.051115,-0.906355,0.419413,4.533113,1.989009,0.578975,
+ 0.256335,-0.2349,0.937611,4.561299,2.133066,0.547248,
+ 0.003817,-0.976864,0.213829,4.43261,1.878873,0.577888,
+ 0.256335,-0.2349,0.937611,4.561299,2.133066,0.547248,
+ 0.125846,-0.929941,0.345503,4.43302,2.024714,0.563794,
+ 0.244568,-0.044721,0.9686,4.739441,2.299169,0.369987,
+ 0.203778,-0.389736,0.898098,4.83289,2.262727,0.283787,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ 0.244568,-0.044721,0.9686,4.739441,2.299169,0.369987,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ 0.241652,-0.897637,0.368581,4.634996,2.369115,0.140117,
+ 0.223925,-0.919003,0.324486,4.636582,2.263383,0.471997,
+ 0.244568,-0.044721,0.9686,4.739441,2.299169,0.369987,
+ 0.241652,-0.897637,0.368581,4.634996,2.369115,0.140117,
+ 0.223925,-0.919003,0.324486,4.636582,2.263383,0.471997,
+ 0.241652,-0.897637,0.368581,4.634996,2.369115,0.140117,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ 0.223925,-0.919003,0.324486,4.636582,2.263383,0.471997,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ 0.231006,-0.859096,0.456717,4.472349,2.325133,0.443764,
+ 0.108306,-0.808441,0.578527,4.389484,2.190421,0.47332,
+ 0.256335,-0.2349,0.937611,4.561299,2.133066,0.547248,
+ 0.223925,-0.919003,0.324486,4.636582,2.263383,0.471997,
+ 0.108306,-0.808441,0.578527,4.389484,2.190421,0.47332,
+ 0.223925,-0.919003,0.324486,4.636582,2.263383,0.471997,
+ 0.231006,-0.859096,0.456717,4.472349,2.325133,0.443764,
+ 0.125846,-0.929941,0.345503,4.43302,2.024714,0.563794,
+ 0.256335,-0.2349,0.937611,4.561299,2.133066,0.547248,
+ 0.108306,-0.808441,0.578527,4.389484,2.190421,0.47332,
+ 0.169576,-0.140705,0.975421,4.982822,1.503071,0.507606,
+ 0.155382,-0.98726,0.034255,5.223191,1.371491,0.388069,
+ 0.726183,-0.658007,0.199213,5.233176,1.442459,0.362988,
+ 0.169576,-0.140705,0.975421,4.982822,1.503071,0.507606,
+ 0.726183,-0.658007,0.199213,5.233176,1.442459,0.362988,
+ 0.063508,-0.739371,0.670296,5.103427,1.624404,0.434275,
+ 0.111896,-0.605741,0.787755,4.927282,1.486953,0.526327,
+ 0.228199,-0.705361,0.671111,5.158322,1.23677,0.418043,
+ 0.155382,-0.98726,0.034255,5.223191,1.371491,0.388069,
+ 0.111896,-0.605741,0.787755,4.927282,1.486953,0.526327,
+ 0.155382,-0.98726,0.034255,5.223191,1.371491,0.388069,
+ 0.169576,-0.140705,0.975421,4.982822,1.503071,0.507606,
+ 0.002178,-0.833415,0.552643,4.79841,1.473149,0.570618,
+ 0.114701,-0.691525,0.713188,4.95536,1.236724,0.50523,
+ 0.228199,-0.705361,0.671111,5.158322,1.23677,0.418043,
+ 0.002178,-0.833415,0.552643,4.79841,1.473149,0.570618,
+ 0.228199,-0.705361,0.671111,5.158322,1.23677,0.418043,
+ 0.111896,-0.605741,0.787755,4.927282,1.486953,0.526327,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.298912,-0.321997,0.898315,4.761601,1.363013,0.57137,
+ 0.114701,-0.691525,0.713188,4.95536,1.236724,0.50523,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.114701,-0.691525,0.713188,4.95536,1.236724,0.50523,
+ 0.002178,-0.833415,0.552643,4.79841,1.473149,0.570618,
+ 0.485742,-0.874075,-0.006874,4.679116,1.438434,0.589658,
+ 0.298912,-0.321997,0.898315,4.761601,1.363013,0.57137,
+ 0.16399,-0.527953,0.833291,4.715646,1.502195,0.584339,
+ 0.204472,-0.587725,0.782797,5.156645,1.942902,0.119993,
+ 0.161367,-0.802085,0.574996,5.218821,1.803552,0.199306,
+ 0.241049,-0.626018,0.741618,5.321136,1.795562,0.119606,
+ 0.204472,-0.587725,0.782797,5.156645,1.942902,0.119993,
+ 0.241049,-0.626018,0.741618,5.321136,1.795562,0.119606,
+ -0.998597,-0.052951,0,5.177545,1.932323,0.000214,
+ 0.241049,-0.626018,0.741618,5.321136,1.795562,0.119606,
+ -0.99798,-0.063521,0,5.378289,1.768448,0.000441,
+ -0.998597,-0.052951,0,5.177545,1.932323,0.000214,
+ 0.241049,-0.626018,0.741618,5.321136,1.795562,0.119606,
+ 0.272751,-0.332382,0.902845,5.421809,1.685349,0.123555,
+ -0.925873,-0.377836,0,5.424281,1.721152,0.000496,
+ 0.241049,-0.626018,0.741618,5.321136,1.795562,0.119606,
+ -0.925873,-0.377836,0,5.424281,1.721152,0.000496,
+ -0.99798,-0.063521,0,5.378289,1.768448,0.000441,
+ 0.161397,-0.648358,0.744032,5.383208,1.619661,0.202452,
+ 0.272751,-0.332382,0.902845,5.421809,1.685349,0.123555,
+ 0.241049,-0.626018,0.741618,5.321136,1.795562,0.119606,
+ 0.161397,-0.648358,0.744032,5.383208,1.619661,0.202452,
+ 0.241049,-0.626018,0.741618,5.321136,1.795562,0.119606,
+ 0.161367,-0.802085,0.574996,5.218821,1.803552,0.199306,
+ 0.218068,-0.756333,0.616772,5.216855,1.636645,0.279797,
+ 0.142784,-0.229696,0.962732,5.373133,1.541142,0.246712,
+ 0.161397,-0.648358,0.744032,5.383208,1.619661,0.202452,
+ 0.218068,-0.756333,0.616772,5.216855,1.636645,0.279797,
+ 0.161397,-0.648358,0.744032,5.383208,1.619661,0.202452,
+ 0.161367,-0.802085,0.574996,5.218821,1.803552,0.199306,
+ 0.726183,-0.658007,0.199213,5.233176,1.442459,0.362988,
+ -0.045194,-0.595739,0.801906,5.334328,1.402713,0.332639,
+ 0.142784,-0.229696,0.962732,5.373133,1.541142,0.246712,
+ 0.726183,-0.658007,0.199213,5.233176,1.442459,0.362988,
+ 0.142784,-0.229696,0.962732,5.373133,1.541142,0.246712,
+ 0.218068,-0.756333,0.616772,5.216855,1.636645,0.279797,
+ 0.155382,-0.98726,0.034255,5.223191,1.371491,0.388069,
+ -0.016623,-0.697515,0.716377,5.296963,1.322443,0.357984,
+ -0.045194,-0.595739,0.801906,5.334328,1.402713,0.332639,
+ 0.155382,-0.98726,0.034255,5.223191,1.371491,0.388069,
+ -0.045194,-0.595739,0.801906,5.334328,1.402713,0.332639,
+ 0.726183,-0.658007,0.199213,5.233176,1.442459,0.362988,
+ 0.228199,-0.705361,0.671111,5.158322,1.23677,0.418043,
+ -0.105003,-0.636187,0.764356,5.260653,1.184173,0.352062,
+ -0.016623,-0.697515,0.716377,5.296963,1.322443,0.357984,
+ 0.228199,-0.705361,0.671111,5.158322,1.23677,0.418043,
+ -0.016623,-0.697515,0.716377,5.296963,1.322443,0.357984,
+ 0.155382,-0.98726,0.034255,5.223191,1.371491,0.388069,
+ 0.009824,-0.644035,0.764933,5.250485,1.123029,0.385234,
+ -0.105003,-0.636187,0.764356,5.260653,1.184173,0.352062,
+ 0.228199,-0.705361,0.671111,5.158322,1.23677,0.418043,
+ 0.114701,-0.691525,0.713188,4.95536,1.236724,0.50523,
+ -0.023775,-0.598435,0.800818,4.991713,1.163096,0.504149,
+ 0.009824,-0.644035,0.764933,5.250485,1.123029,0.385234,
+ 0.114701,-0.691525,0.713188,4.95536,1.236724,0.50523,
+ 0.009824,-0.644035,0.764933,5.250485,1.123029,0.385234,
+ 0.228199,-0.705361,0.671111,5.158322,1.23677,0.418043,
+ 0.200825,-0.971974,0.122213,4.733657,1.227371,0.592883,
+ -0.023775,-0.598435,0.800818,4.991713,1.163096,0.504149,
+ 0.114701,-0.691525,0.713188,4.95536,1.236724,0.50523,
+ 0.200825,-0.971974,0.122213,4.733657,1.227371,0.592883,
+ 0.114701,-0.691525,0.713188,4.95536,1.236724,0.50523,
+ 0.298912,-0.321997,0.898315,4.761601,1.363013,0.57137,
+ 0.123418,-0.784469,0.607763,4.641547,1.285422,0.622034,
+ 0.200825,-0.971974,0.122213,4.733657,1.227371,0.592883,
+ 0.298912,-0.321997,0.898315,4.761601,1.363013,0.57137,
+ 0.123418,-0.784469,0.607763,4.641547,1.285422,0.622034,
+ 0.298912,-0.321997,0.898315,4.761601,1.363013,0.57137,
+ 0.485742,-0.874075,-0.006874,4.679116,1.438434,0.589658,
+ 0.050019,-0.552867,0.831767,4.522247,1.398278,0.644892,
+ 0.123418,-0.784469,0.607763,4.641547,1.285422,0.622034,
+ 0.485742,-0.874075,-0.006874,4.679116,1.438434,0.589658,
+ 0.050019,-0.552867,0.831767,4.522247,1.398278,0.644892,
+ 0.485742,-0.874075,-0.006874,4.679116,1.438434,0.589658,
+ 0.035735,-0.99787,0.054579,4.596478,1.512987,0.598982,
+ 0.037801,-0.082839,0.995846,4.430999,1.535753,0.638888,
+ 0.050019,-0.552867,0.831767,4.522247,1.398278,0.644892,
+ 0.035735,-0.99787,0.054579,4.596478,1.512987,0.598982,
+ 0.037801,-0.082839,0.995846,4.430999,1.535753,0.638888,
+ 0.035735,-0.99787,0.054579,4.596478,1.512987,0.598982,
+ -0.034202,-0.995024,0.093584,4.560024,1.604023,0.589333,
+ -0.196146,-0.333078,0.922272,4.404221,1.662433,0.61661,
+ 0.037801,-0.082839,0.995846,4.430999,1.535753,0.638888,
+ -0.034202,-0.995024,0.093584,4.560024,1.604023,0.589333,
+ -0.196146,-0.333078,0.922272,4.404221,1.662433,0.61661,
+ -0.034202,-0.995024,0.093584,4.560024,1.604023,0.589333,
+ 0.06465,-0.997821,-0.013157,4.477781,1.687858,0.597407,
+ -0.196146,-0.333078,0.922272,4.404221,1.662433,0.61661,
+ 0.06465,-0.997821,-0.013157,4.477781,1.687858,0.597407,
+ 0.173736,-0.983834,-0.043437,4.459682,1.778884,0.588185,
+ -0.196146,-0.333078,0.922272,4.404221,1.662433,0.61661,
+ 0.173736,-0.983834,-0.043437,4.459682,1.778884,0.588185,
+ -0.106358,-0.394397,0.912765,4.38638,1.770868,0.596666,
+ -0.106358,-0.394397,0.912765,4.38638,1.770868,0.596666,
+ 0.173736,-0.983834,-0.043437,4.459682,1.778884,0.588185,
+ 0.003817,-0.976864,0.213829,4.43261,1.878873,0.577888,
+ -0.106358,-0.394397,0.912765,4.38638,1.770868,0.596666,
+ 0.003817,-0.976864,0.213829,4.43261,1.878873,0.577888,
+ -0.277696,-0.435918,0.856073,4.377095,1.871713,0.595743,
+ 0.272751,-0.332382,0.902845,5.421809,1.685349,0.123555,
+ -0.301162,-0.110219,0.947182,5.604888,1.546091,0.113773,
+ 0.027992,0.999608,0,5.588763,1.573846,0.000686,
+ 0.272751,-0.332382,0.902845,5.421809,1.685349,0.123555,
+ 0.027992,0.999608,0,5.588763,1.573846,0.000686,
+ -0.925873,-0.377836,0,5.424281,1.721152,0.000496,
+ 0.161397,-0.648358,0.744032,5.383208,1.619661,0.202452,
+ -0.430969,-0.132769,0.892546,5.566339,1.498677,0.190905,
+ -0.301162,-0.110219,0.947182,5.604888,1.546091,0.113773,
+ 0.161397,-0.648358,0.744032,5.383208,1.619661,0.202452,
+ -0.301162,-0.110219,0.947182,5.604888,1.546091,0.113773,
+ 0.272751,-0.332382,0.902845,5.421809,1.685349,0.123555,
+ 0.142784,-0.229696,0.962732,5.373133,1.541142,0.246712,
+ -0.293162,-0.051827,0.954657,5.528186,1.44018,0.250666,
+ -0.430969,-0.132769,0.892546,5.566339,1.498677,0.190905,
+ 0.142784,-0.229696,0.962732,5.373133,1.541142,0.246712,
+ -0.430969,-0.132769,0.892546,5.566339,1.498677,0.190905,
+ 0.161397,-0.648358,0.744032,5.383208,1.619661,0.202452,
+ -0.045194,-0.595739,0.801906,5.334328,1.402713,0.332639,
+ -0.034138,0.050771,0.998127,5.471928,1.345179,0.313899,
+ -0.293162,-0.051827,0.954657,5.528186,1.44018,0.250666,
+ -0.045194,-0.595739,0.801906,5.334328,1.402713,0.332639,
+ -0.293162,-0.051827,0.954657,5.528186,1.44018,0.250666,
+ 0.142784,-0.229696,0.962732,5.373133,1.541142,0.246712,
+ -0.016623,-0.697515,0.716377,5.296963,1.322443,0.357984,
+ -0.101883,0.176778,0.978963,5.425783,1.264372,0.329687,
+ -0.034138,0.050771,0.998127,5.471928,1.345179,0.313899,
+ -0.016623,-0.697515,0.716377,5.296963,1.322443,0.357984,
+ -0.034138,0.050771,0.998127,5.471928,1.345179,0.313899,
+ -0.045194,-0.595739,0.801906,5.334328,1.402713,0.332639,
+ -0.105003,-0.636187,0.764356,5.260653,1.184173,0.352062,
+ -0.172671,0.234525,0.956652,5.397967,1.174238,0.346802,
+ -0.101883,0.176778,0.978963,5.425783,1.264372,0.329687,
+ -0.105003,-0.636187,0.764356,5.260653,1.184173,0.352062,
+ -0.101883,0.176778,0.978963,5.425783,1.264372,0.329687,
+ -0.016623,-0.697515,0.716377,5.296963,1.322443,0.357984,
+ 0.009824,-0.644035,0.764933,5.250485,1.123029,0.385234,
+ -0.317809,0.237298,0.91798,5.388455,1.119419,0.351883,
+ -0.172671,0.234525,0.956652,5.397967,1.174238,0.346802,
+ 0.009824,-0.644035,0.764933,5.250485,1.123029,0.385234,
+ -0.172671,0.234525,0.956652,5.397967,1.174238,0.346802,
+ -0.105003,-0.636187,0.764356,5.260653,1.184173,0.352062,
+ -0.419631,0.061765,0.905591,5.685194,1.452202,0.188749,
+ -0.434729,0.079706,0.897027,5.730427,1.435668,0.209848,
+ -0.31398,0.125786,0.94106,5.741781,1.463956,0.124891,
+ -0.419631,0.061765,0.905591,5.685194,1.452202,0.188749,
+ -0.31398,0.125786,0.94106,5.741781,1.463956,0.124891,
+ -0.241533,0.200654,0.949421,5.687035,1.499636,0.110765,
+ -0.400711,0.089186,0.911853,5.647186,1.394606,0.257833,
+ 0.274471,0.961025,0.033122,5.608974,1.317869,0.319719,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ 0.311768,0.950117,-0.008871,5.563253,1.235295,0.317238,
+ 0.563605,0.822456,0.076915,5.681726,1.282503,0.333871,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ 0.311768,0.950117,-0.008871,5.563253,1.235295,0.317238,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ 0.274471,0.961025,0.033122,5.608974,1.317869,0.319719,
+ 0.381066,0.919021,0.100938,5.580797,1.174135,0.351054,
+ 0.609817,0.770093,0.187296,5.672187,1.164767,0.35408,
+ 0.563605,0.822456,0.076915,5.681726,1.282503,0.333871,
+ 0.381066,0.919021,0.100938,5.580797,1.174135,0.351054,
+ 0.563605,0.822456,0.076915,5.681726,1.282503,0.333871,
+ 0.311768,0.950117,-0.008871,5.563253,1.235295,0.317238,
+ 0.027992,0.999608,0,5.588763,1.573846,0.000686,
+ -0.301162,-0.110219,0.947182,5.604888,1.546091,0.113773,
+ -0.241533,0.200654,0.949421,5.687035,1.499636,0.110765,
+ 0.027992,0.999608,0,5.588763,1.573846,0.000686,
+ -0.241533,0.200654,0.949421,5.687035,1.499636,0.110765,
+ -0.026558,-0.999647,0,5.680007,1.510009,0.000786,
+ -0.430969,-0.132769,0.892546,5.566339,1.498677,0.190905,
+ -0.419631,0.061765,0.905591,5.685194,1.452202,0.188749,
+ -0.241533,0.200654,0.949421,5.687035,1.499636,0.110765,
+ -0.430969,-0.132769,0.892546,5.566339,1.498677,0.190905,
+ -0.241533,0.200654,0.949421,5.687035,1.499636,0.110765,
+ -0.301162,-0.110219,0.947182,5.604888,1.546091,0.113773,
+ -0.430969,-0.132769,0.892546,5.566339,1.498677,0.190905,
+ -0.293162,-0.051827,0.954657,5.528186,1.44018,0.250666,
+ -0.400711,0.089186,0.911853,5.647186,1.394606,0.257833,
+ -0.430969,-0.132769,0.892546,5.566339,1.498677,0.190905,
+ -0.400711,0.089186,0.911853,5.647186,1.394606,0.257833,
+ -0.419631,0.061765,0.905591,5.685194,1.452202,0.188749,
+ -0.034138,0.050771,0.998127,5.471928,1.345179,0.313899,
+ 0.274471,0.961025,0.033122,5.608974,1.317869,0.319719,
+ -0.400711,0.089186,0.911853,5.647186,1.394606,0.257833,
+ -0.034138,0.050771,0.998127,5.471928,1.345179,0.313899,
+ -0.400711,0.089186,0.911853,5.647186,1.394606,0.257833,
+ -0.293162,-0.051827,0.954657,5.528186,1.44018,0.250666,
+ -0.101883,0.176778,0.978963,5.425783,1.264372,0.329687,
+ 0.311768,0.950117,-0.008871,5.563253,1.235295,0.317238,
+ 0.274471,0.961025,0.033122,5.608974,1.317869,0.319719,
+ -0.101883,0.176778,0.978963,5.425783,1.264372,0.329687,
+ 0.274471,0.961025,0.033122,5.608974,1.317869,0.319719,
+ -0.034138,0.050771,0.998127,5.471928,1.345179,0.313899,
+ -0.172671,0.234525,0.956652,5.397967,1.174238,0.346802,
+ 0.381066,0.919021,0.100938,5.580797,1.174135,0.351054,
+ 0.311768,0.950117,-0.008871,5.563253,1.235295,0.317238,
+ -0.172671,0.234525,0.956652,5.397967,1.174238,0.346802,
+ 0.311768,0.950117,-0.008871,5.563253,1.235295,0.317238,
+ -0.101883,0.176778,0.978963,5.425783,1.264372,0.329687,
+ -0.317809,0.237298,0.91798,5.388455,1.119419,0.351883,
+ 0.651262,0.697944,0.297879,5.47963,1.11131,0.364188,
+ 0.381066,0.919021,0.100938,5.580797,1.174135,0.351054,
+ -0.317809,0.237298,0.91798,5.388455,1.119419,0.351883,
+ 0.381066,0.919021,0.100938,5.580797,1.174135,0.351054,
+ -0.172671,0.234525,0.956652,5.397967,1.174238,0.346802,
+ -0.081905,0.996619,-0.006486,5.813217,1.415581,0.195261,
+ -0.134248,0.990294,-0.035988,5.886832,1.385674,0.172365,
+ -0.11884,0.991349,-0.055713,5.915025,1.382159,0.13682,
+ -0.081905,0.996619,-0.006486,5.813217,1.415581,0.195261,
+ -0.11884,0.991349,-0.055713,5.915025,1.382159,0.13682,
+ -0.062808,0.99609,0.062134,5.842092,1.427708,0.130724,
+ -0.11884,0.991349,-0.055713,5.915025,1.382159,0.13682,
+ 0.448666,0.893201,0.029856,5.979357,1.325532,0.125337,
+ 0.663563,0.74812,0.000025,5.963117,1.307775,0.001098,
+ -0.11884,0.991349,-0.055713,5.915025,1.382159,0.13682,
+ 0.663563,0.74812,0.000025,5.963117,1.307775,0.001098,
+ -0.016213,0.999869,0,5.908842,1.388968,0.001026,
+ -0.134248,0.990294,-0.035988,5.886832,1.385674,0.172365,
+ 0.731768,0.675964,0.087106,5.941384,1.330818,0.178936,
+ 0.448666,0.893201,0.029856,5.979357,1.325532,0.125337,
+ -0.134248,0.990294,-0.035988,5.886832,1.385674,0.172365,
+ 0.448666,0.893201,0.029856,5.979357,1.325532,0.125337,
+ -0.11884,0.991349,-0.055713,5.915025,1.382159,0.13682,
+ -0.31398,0.125786,0.94106,5.741781,1.463956,0.124891,
+ -0.062808,0.99609,0.062134,5.842092,1.427708,0.130724,
+ 0.569495,0.821995,-0.000075,5.835498,1.43628,0.000946,
+ -0.31398,0.125786,0.94106,5.741781,1.463956,0.124891,
+ 0.569495,0.821995,-0.000075,5.835498,1.43628,0.000946,
+ 0.694651,0.719347,0.000019,5.743997,1.482739,0.000851,
+ -0.434729,0.079706,0.897027,5.730427,1.435668,0.209848,
+ -0.081905,0.996619,-0.006486,5.813217,1.415581,0.195261,
+ -0.062808,0.99609,0.062134,5.842092,1.427708,0.130724,
+ -0.434729,0.079706,0.897027,5.730427,1.435668,0.209848,
+ -0.062808,0.99609,0.062134,5.842092,1.427708,0.130724,
+ -0.31398,0.125786,0.94106,5.741781,1.463956,0.124891,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ -0.0511,0.977083,-0.206633,5.783731,1.341471,0.28459,
+ -0.081905,0.996619,-0.006486,5.813217,1.415581,0.195261,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ -0.081905,0.996619,-0.006486,5.813217,1.415581,0.195261,
+ -0.434729,0.079706,0.897027,5.730427,1.435668,0.209848,
+ -0.0511,0.977083,-0.206633,5.783731,1.341471,0.28459,
+ 0.481644,0.842268,-0.242082,5.847989,1.311569,0.261476,
+ -0.134248,0.990294,-0.035988,5.886832,1.385674,0.172365,
+ -0.0511,0.977083,-0.206633,5.783731,1.341471,0.28459,
+ -0.134248,0.990294,-0.035988,5.886832,1.385674,0.172365,
+ -0.081905,0.996619,-0.006486,5.813217,1.415581,0.195261,
+ 0.481644,0.842268,-0.242082,5.847989,1.311569,0.261476,
+ 0.794567,0.588129,-0.15089,5.931474,1.233483,0.215613,
+ 0.731768,0.675964,0.087106,5.941384,1.330818,0.178936,
+ 0.481644,0.842268,-0.242082,5.847989,1.311569,0.261476,
+ 0.731768,0.675964,0.087106,5.941384,1.330818,0.178936,
+ -0.134248,0.990294,-0.035988,5.886832,1.385674,0.172365,
+ 0.731768,0.675964,0.087106,5.941384,1.330818,0.178936,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.448666,0.893201,0.029856,5.979357,1.325532,0.125337,
+ 0.448666,0.893201,0.029856,5.979357,1.325532,0.125337,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.617634,0.786466,0.000062,5.963527,1.232407,0.001121,
+ 0.448666,0.893201,0.029856,5.979357,1.325532,0.125337,
+ 0.617634,0.786466,0.000062,5.963527,1.232407,0.001121,
+ 0.663563,0.74812,0.000025,5.963117,1.307775,0.001098,
+ 0.794567,0.588129,-0.15089,5.931474,1.233483,0.215613,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.731768,0.675964,0.087106,5.941384,1.330818,0.178936,
+ 0.461485,0.788926,-0.405742,5.961686,1.110978,0.090324,
+ 0.651313,0.75881,-0.000286,5.92711,1.131195,0.001118,
+ 0.617634,0.786466,0.000062,5.963527,1.232407,0.001121,
+ 0.461485,0.788926,-0.405742,5.961686,1.110978,0.090324,
+ 0.617634,0.786466,0.000062,5.963527,1.232407,0.001121,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.461485,0.788926,-0.405742,5.961686,1.110978,0.090324,
+ 0.800967,0.453079,-0.391371,5.934596,1.054796,0.077039,
+ 0.909103,0.416568,-0.001454,5.908782,1.066916,0.001121,
+ 0.461485,0.788926,-0.405742,5.961686,1.110978,0.090324,
+ 0.909103,0.416568,-0.001454,5.908782,1.066916,0.001121,
+ 0.651313,0.75881,-0.000286,5.92711,1.131195,0.001118,
+ 0.000755,0.939586,-0.342312,5.950684,1.082725,0.175648,
+ 0.693689,0.317887,-0.646331,5.923808,1.025283,0.153084,
+ 0.800967,0.453079,-0.391371,5.934596,1.054796,0.077039,
+ 0.000755,0.939586,-0.342312,5.950684,1.082725,0.175648,
+ 0.800967,0.453079,-0.391371,5.934596,1.054796,0.077039,
+ 0.461485,0.788926,-0.405742,5.961686,1.110978,0.090324,
+ 0.288171,0.239223,-0.927216,5.763952,1.062109,0.338641,
+ 0.104327,0.725166,-0.680625,5.755282,1.004149,0.307505,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.288171,0.239223,-0.927216,5.763952,1.062109,0.338641,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.525316,0.261332,-0.809783,5.884856,1.062202,0.249545,
+ 0.288171,0.239223,-0.927216,5.763952,1.062109,0.338641,
+ 0.525316,0.261332,-0.809783,5.884856,1.062202,0.249545,
+ 0.204286,0.745568,-0.634347,5.800778,1.078596,0.31945,
+ 0.525316,0.261332,-0.809783,5.884856,1.062202,0.249545,
+ 0.000755,0.939586,-0.342312,5.950684,1.082725,0.175648,
+ 0.969409,0.243854,0.027951,5.959462,1.157227,0.187097,
+ 0.525316,0.261332,-0.809783,5.884856,1.062202,0.249545,
+ 0.969409,0.243854,0.027951,5.959462,1.157227,0.187097,
+ 0.811896,0.498733,0.303464,5.912147,1.117911,0.254197,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.693689,0.317887,-0.646331,5.923808,1.025283,0.153084,
+ 0.000755,0.939586,-0.342312,5.950684,1.082725,0.175648,
+ -0.051423,0.948155,-0.31362,5.85775,0.997026,0.236768,
+ 0.000755,0.939586,-0.342312,5.950684,1.082725,0.175648,
+ 0.525316,0.261332,-0.809783,5.884856,1.062202,0.249545,
+ 0.525316,0.261332,-0.809783,5.884856,1.062202,0.249545,
+ 0.811896,0.498733,0.303464,5.912147,1.117911,0.254197,
+ 0.603382,-0.138832,-0.785275,5.837875,1.141493,0.305184,
+ 0.525316,0.261332,-0.809783,5.884856,1.062202,0.249545,
+ 0.603382,-0.138832,-0.785275,5.837875,1.141493,0.305184,
+ 0.204286,0.745568,-0.634347,5.800778,1.078596,0.31945,
+ 0.204286,0.745568,-0.634347,5.800778,1.078596,0.31945,
+ 0.603382,-0.138832,-0.785275,5.837875,1.141493,0.305184,
+ 0.335985,-0.093512,-0.937214,5.77341,1.225861,0.323025,
+ 0.204286,0.745568,-0.634347,5.800778,1.078596,0.31945,
+ 0.335985,-0.093512,-0.937214,5.77341,1.225861,0.323025,
+ 0.609817,0.770093,0.187296,5.672187,1.164767,0.35408,
+ 0.609817,0.770093,0.187296,5.672187,1.164767,0.35408,
+ 0.335985,-0.093512,-0.937214,5.77341,1.225861,0.323025,
+ 0.104604,0.236958,-0.965872,5.764774,1.279824,0.308562,
+ 0.609817,0.770093,0.187296,5.672187,1.164767,0.35408,
+ 0.104604,0.236958,-0.965872,5.764774,1.279824,0.308562,
+ 0.563605,0.822456,0.076915,5.681726,1.282503,0.333871,
+ 0.563605,0.822456,0.076915,5.681726,1.282503,0.333871,
+ 0.104604,0.236958,-0.965872,5.764774,1.279824,0.308562,
+ -0.0511,0.977083,-0.206633,5.783731,1.341471,0.28459,
+ 0.563605,0.822456,0.076915,5.681726,1.282503,0.333871,
+ -0.0511,0.977083,-0.206633,5.783731,1.341471,0.28459,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ -0.163152,0.699849,-0.695408,5.681086,1.054964,0.35586,
+ 0.288171,0.239223,-0.927216,5.763952,1.062109,0.338641,
+ -0.000715,-0.295728,-0.955272,5.690122,1.092917,0.37085,
+ -0.000715,-0.295728,-0.955272,5.690122,1.092917,0.37085,
+ 0.288171,0.239223,-0.927216,5.763952,1.062109,0.338641,
+ 0.204286,0.745568,-0.634347,5.800778,1.078596,0.31945,
+ -0.000715,-0.295728,-0.955272,5.690122,1.092917,0.37085,
+ 0.204286,0.745568,-0.634347,5.800778,1.078596,0.31945,
+ 0.609817,0.770093,0.187296,5.672187,1.164767,0.35408,
+ -0.090939,0.953561,-0.287143,5.598282,1.094735,0.386994,
+ -0.000715,-0.295728,-0.955272,5.690122,1.092917,0.37085,
+ 0.609817,0.770093,0.187296,5.672187,1.164767,0.35408,
+ -0.090939,0.953561,-0.287143,5.598282,1.094735,0.386994,
+ 0.609817,0.770093,0.187296,5.672187,1.164767,0.35408,
+ 0.381066,0.919021,0.100938,5.580797,1.174135,0.351054,
+ 0.651262,0.697944,0.297879,5.47963,1.11131,0.364188,
+ -0.090939,0.953561,-0.287143,5.598282,1.094735,0.386994,
+ 0.381066,0.919021,0.100938,5.580797,1.174135,0.351054,
+ 0.008972,0.708004,-0.706152,5.470775,1.009574,0.355371,
+ -0.090939,0.953561,-0.287143,5.598282,1.094735,0.386994,
+ 0.651262,0.697944,0.297879,5.47963,1.11131,0.364188,
+ 0.809878,-0.450756,0.375387,5.580223,1.04747,0.372696,
+ -0.163152,0.699849,-0.695408,5.681086,1.054964,0.35586,
+ -0.000715,-0.295728,-0.955272,5.690122,1.092917,0.37085,
+ 0.809878,-0.450756,0.375387,5.580223,1.04747,0.372696,
+ -0.000715,-0.295728,-0.955272,5.690122,1.092917,0.37085,
+ -0.090939,0.953561,-0.287143,5.598282,1.094735,0.386994,
+ -0.01139,0.953897,-0.299918,5.580727,0.99933,0.349867,
+ -0.011269,-0.268801,-0.96313,5.672385,1.007694,0.341778,
+ -0.163152,0.699849,-0.695408,5.681086,1.054964,0.35586,
+ -0.01139,0.953897,-0.299918,5.580727,0.99933,0.349867,
+ -0.163152,0.699849,-0.695408,5.681086,1.054964,0.35586,
+ 0.809878,-0.450756,0.375387,5.580223,1.04747,0.372696,
+ -0.090939,0.953561,-0.287143,5.598282,1.094735,0.386994,
+ 0.008972,0.708004,-0.706152,5.470775,1.009574,0.355371,
+ 0.809878,-0.450756,0.375387,5.580223,1.04747,0.372696,
+ 0.008972,0.708004,-0.706152,5.470775,1.009574,0.355371,
+ -0.151742,0.274295,-0.949598,5.535184,0.98018,0.341257,
+ -0.01139,0.953897,-0.299918,5.580727,0.99933,0.349867,
+ 0.008972,0.708004,-0.706152,5.470775,1.009574,0.355371,
+ -0.01139,0.953897,-0.299918,5.580727,0.99933,0.349867,
+ 0.809878,-0.450756,0.375387,5.580223,1.04747,0.372696,
+ 0.795507,-0.586003,0.154171,5.425352,1.035967,0.34272,
+ 0.008972,0.708004,-0.706152,5.470775,1.009574,0.355371,
+ 0.651262,0.697944,0.297879,5.47963,1.11131,0.364188,
+ 0.795507,-0.586003,0.154171,5.425352,1.035967,0.34272,
+ 0.651262,0.697944,0.297879,5.47963,1.11131,0.364188,
+ -0.317809,0.237298,0.91798,5.388455,1.119419,0.351883,
+ 0.743898,-0.655713,-0.129057,5.434594,0.970412,0.330823,
+ 0.008972,0.708004,-0.706152,5.470775,1.009574,0.355371,
+ 0.795507,-0.586003,0.154171,5.425352,1.035967,0.34272,
+ 0.743898,-0.655713,-0.129057,5.434594,0.970412,0.330823,
+ -0.151742,0.274295,-0.949598,5.535184,0.98018,0.341257,
+ 0.008972,0.708004,-0.706152,5.470775,1.009574,0.355371,
+ 0.743898,-0.655713,-0.129057,5.434594,0.970412,0.330823,
+ 0.083641,-0.81989,0.566378,5.480649,0.941387,0.316248,
+ -0.151742,0.274295,-0.949598,5.535184,0.98018,0.341257,
+ 0.042118,-0.881893,0.469564,5.379461,1.045817,0.349748,
+ 0.795507,-0.586003,0.154171,5.425352,1.035967,0.34272,
+ -0.317809,0.237298,0.91798,5.388455,1.119419,0.351883,
+ 0.713982,0.301535,0.631907,5.370709,0.980272,0.337432,
+ 0.743898,-0.655713,-0.129057,5.434594,0.970412,0.330823,
+ 0.795507,-0.586003,0.154171,5.425352,1.035967,0.34272,
+ 0.713982,0.301535,0.631907,5.370709,0.980272,0.337432,
+ 0.795507,-0.586003,0.154171,5.425352,1.035967,0.34272,
+ 0.042118,-0.881893,0.469564,5.379461,1.045817,0.349748,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ 0.083641,-0.81989,0.566378,5.480649,0.941387,0.316248,
+ 0.743898,-0.655713,-0.129057,5.434594,0.970412,0.330823,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ 0.743898,-0.655713,-0.129057,5.434594,0.970412,0.330823,
+ 0.713982,0.301535,0.631907,5.370709,0.980272,0.337432,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ 0.21141,-0.953268,0.215838,5.511556,0.863525,0.177613,
+ 0.176955,-0.903058,0.391373,5.546347,0.916044,0.246782,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ 0.176955,-0.903058,0.391373,5.546347,0.916044,0.246782,
+ 0.083641,-0.81989,0.566378,5.480649,0.941387,0.316248,
+ 0.21141,-0.953268,0.215838,5.511556,0.863525,0.177613,
+ 0.288841,-0.745301,-0.600914,5.60337,0.852748,0.162335,
+ 0.571342,-0.680689,-0.45851,5.638369,0.904402,0.222548,
+ 0.21141,-0.953268,0.215838,5.511556,0.863525,0.177613,
+ 0.571342,-0.680689,-0.45851,5.638369,0.904402,0.222548,
+ 0.176955,-0.903058,0.391373,5.546347,0.916044,0.246782,
+ 0.288841,-0.745301,-0.600914,5.60337,0.852748,0.162335,
+ 0.237421,-0.963021,0.127366,5.70463,0.849158,0.12813,
+ 0.388502,-0.6643,-0.63857,5.748613,0.92049,0.205099,
+ 0.288841,-0.745301,-0.600914,5.60337,0.852748,0.162335,
+ 0.388502,-0.6643,-0.63857,5.748613,0.92049,0.205099,
+ 0.571342,-0.680689,-0.45851,5.638369,0.904402,0.222548,
+ 0.157921,-0.851177,-0.500559,5.241466,1.040469,0.383965,
+ 0.042118,-0.881893,0.469564,5.379461,1.045817,0.349748,
+ -0.317809,0.237298,0.91798,5.388455,1.119419,0.351883,
+ 0.157921,-0.851177,-0.500559,5.241466,1.040469,0.383965,
+ -0.317809,0.237298,0.91798,5.388455,1.119419,0.351883,
+ 0.009824,-0.644035,0.764933,5.250485,1.123029,0.385234,
+ 0.254106,-0.95176,0.171999,5.223571,0.974029,0.362117,
+ 0.713982,0.301535,0.631907,5.370709,0.980272,0.337432,
+ 0.042118,-0.881893,0.469564,5.379461,1.045817,0.349748,
+ 0.254106,-0.95176,0.171999,5.223571,0.974029,0.362117,
+ 0.042118,-0.881893,0.469564,5.379461,1.045817,0.349748,
+ 0.157921,-0.851177,-0.500559,5.241466,1.040469,0.383965,
+ 0.165259,-0.797056,-0.580854,5.299005,0.908991,0.260177,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ 0.713982,0.301535,0.631907,5.370709,0.980272,0.337432,
+ 0.243744,-0.944481,0.220328,5.197562,0.922406,0.302473,
+ 0.165259,-0.797056,-0.580854,5.299005,0.908991,0.260177,
+ 0.713982,0.301535,0.631907,5.370709,0.980272,0.337432,
+ 0.243744,-0.944481,0.220328,5.197562,0.922406,0.302473,
+ 0.713982,0.301535,0.631907,5.370709,0.980272,0.337432,
+ 0.254106,-0.95176,0.171999,5.223571,0.974029,0.362117,
+ 0.20994,-0.930128,0.301309,5.851404,0.929008,0.105362,
+ -0.05208,-0.715695,0.696469,5.797411,0.880032,0.072306,
+ 0.953994,-0.299798,-0.004126,5.78079,0.891286,0.001059,
+ 0.20994,-0.930128,0.301309,5.851404,0.929008,0.105362,
+ 0.953994,-0.299798,-0.004126,5.78079,0.891286,0.001059,
+ 0.997356,-0.072614,-0.002907,5.836005,0.945722,0.001092,
+ 0.388502,-0.6643,-0.63857,5.748613,0.92049,0.205099,
+ 0.237421,-0.963021,0.127366,5.70463,0.849158,0.12813,
+ -0.05208,-0.715695,0.696469,5.797411,0.880032,0.072306,
+ 0.388502,-0.6643,-0.63857,5.748613,0.92049,0.205099,
+ -0.05208,-0.715695,0.696469,5.797411,0.880032,0.072306,
+ 0.20994,-0.930128,0.301309,5.851404,0.929008,0.105362,
+ 0.874313,-0.485341,-0.004579,5.679621,0.8395,0.000985,
+ 0.953994,-0.299798,-0.004126,5.78079,0.891286,0.001059,
+ -0.05208,-0.715695,0.696469,5.797411,0.880032,0.072306,
+ 0.237421,-0.963021,0.127366,5.70463,0.849158,0.12813,
+ 0.287073,-0.905921,0.311283,5.568745,0.834653,0.07139,
+ 0.874313,-0.485341,-0.004579,5.679621,0.8395,0.000985,
+ 0.237421,-0.963021,0.127366,5.70463,0.849158,0.12813,
+ 0.874313,-0.485341,-0.004579,5.679621,0.8395,0.000985,
+ -0.05208,-0.715695,0.696469,5.797411,0.880032,0.072306,
+ 0.287073,-0.905921,0.311283,5.568745,0.834653,0.07139,
+ 0.84332,-0.537393,-0.004381,5.579253,0.837796,0.000896,
+ 0.874313,-0.485341,-0.004579,5.679621,0.8395,0.000985,
+ 0.288841,-0.745301,-0.600914,5.60337,0.852748,0.162335,
+ 0.267121,-0.895396,0.356249,5.449164,0.847535,0.103909,
+ 0.287073,-0.905921,0.311283,5.568745,0.834653,0.07139,
+ 0.288841,-0.745301,-0.600914,5.60337,0.852748,0.162335,
+ 0.287073,-0.905921,0.311283,5.568745,0.834653,0.07139,
+ 0.237421,-0.963021,0.127366,5.70463,0.849158,0.12813,
+ -0.501598,-0.526154,0.686704,5.137075,0.824518,0.144842,
+ 0.598791,-0.8009,-0.003109,5.112563,0.840686,0.00048,
+ 0.832605,-0.553861,-0.002629,5.213434,0.856784,0.000565,
+ -0.501598,-0.526154,0.686704,5.137075,0.824518,0.144842,
+ 0.832605,-0.553861,-0.002629,5.213434,0.856784,0.000565,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ 0.21141,-0.953268,0.215838,5.511556,0.863525,0.177613,
+ -0.538845,-0.659239,0.524452,5.3569,0.85112,0.138324,
+ 0.267121,-0.895396,0.356249,5.449164,0.847535,0.103909,
+ 0.21141,-0.953268,0.215838,5.511556,0.863525,0.177613,
+ 0.267121,-0.895396,0.356249,5.449164,0.847535,0.103909,
+ 0.288841,-0.745301,-0.600914,5.60337,0.852748,0.162335,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ -0.53682,-0.608254,0.58468,5.26443,0.855571,0.181694,
+ -0.538845,-0.659239,0.524452,5.3569,0.85112,0.138324,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ -0.538845,-0.659239,0.524452,5.3569,0.85112,0.138324,
+ 0.21141,-0.953268,0.215838,5.511556,0.863525,0.177613,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ 0.832605,-0.553861,-0.002629,5.213434,0.856784,0.000565,
+ 0.224122,-0.97456,-0.001209,5.323232,0.866039,0.00066,
+ 0.267121,-0.895396,0.356249,5.449164,0.847535,0.103909,
+ -0.020035,-0.999799,-0.000148,5.469641,0.838722,0.000798,
+ 0.84332,-0.537393,-0.004381,5.579253,0.837796,0.000896,
+ 0.267121,-0.895396,0.356249,5.449164,0.847535,0.103909,
+ 0.84332,-0.537393,-0.004381,5.579253,0.837796,0.000896,
+ 0.287073,-0.905921,0.311283,5.568745,0.834653,0.07139,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ 0.224122,-0.97456,-0.001209,5.323232,0.866039,0.00066,
+ -0.020035,-0.999799,-0.000148,5.469641,0.838722,0.000798,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ -0.020035,-0.999799,-0.000148,5.469641,0.838722,0.000798,
+ 0.267121,-0.895396,0.356249,5.449164,0.847535,0.103909,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ 0.267121,-0.895396,0.356249,5.449164,0.847535,0.103909,
+ -0.538845,-0.659239,0.524452,5.3569,0.85112,0.138324,
+ -0.53682,-0.608254,0.58468,5.26443,0.855571,0.181694,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ -0.538845,-0.659239,0.524452,5.3569,0.85112,0.138324,
+ -0.53682,-0.608254,0.58468,5.26443,0.855571,0.181694,
+ 0.086688,-0.887002,0.453556,5.373646,0.885375,0.20884,
+ 0.165259,-0.797056,-0.580854,5.299005,0.908991,0.260177,
+ -0.635877,0.324329,0.700337,5.153735,0.831575,0.218348,
+ -0.53682,-0.608254,0.58468,5.26443,0.855571,0.181694,
+ 0.165259,-0.797056,-0.580854,5.299005,0.908991,0.260177,
+ -0.635877,0.324329,0.700337,5.153735,0.831575,0.218348,
+ 0.165259,-0.797056,-0.580854,5.299005,0.908991,0.260177,
+ 0.243744,-0.944481,0.220328,5.197562,0.922406,0.302473,
+ -0.635877,0.324329,0.700337,5.153735,0.831575,0.218348,
+ -0.501598,-0.526154,0.686704,5.137075,0.824518,0.144842,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ -0.635877,0.324329,0.700337,5.153735,0.831575,0.218348,
+ -0.290459,-0.499809,0.815981,5.247762,0.848549,0.108546,
+ -0.53682,-0.608254,0.58468,5.26443,0.855571,0.181694,
+ -0.376273,-0.140159,0.915846,4.963526,0.797382,0.14344,
+ 0.124158,-0.992262,-0.000543,4.920855,0.812339,0.000318,
+ 0.598791,-0.8009,-0.003109,5.112563,0.840686,0.00048,
+ -0.376273,-0.140159,0.915846,4.963526,0.797382,0.14344,
+ 0.598791,-0.8009,-0.003109,5.112563,0.840686,0.00048,
+ -0.501598,-0.526154,0.686704,5.137075,0.824518,0.144842,
+ -0.508574,-0.111047,0.853827,4.99671,0.81056,0.280771,
+ -0.376273,-0.140159,0.915846,4.963526,0.797382,0.14344,
+ -0.501598,-0.526154,0.686704,5.137075,0.824518,0.144842,
+ -0.508574,-0.111047,0.853827,4.99671,0.81056,0.280771,
+ -0.501598,-0.526154,0.686704,5.137075,0.824518,0.144842,
+ -0.635877,0.324329,0.700337,5.153735,0.831575,0.218348,
+ -0.86136,-0.239794,0.447836,4.66969,0.738163,0.188296,
+ -0.376273,-0.140159,0.915846,4.963526,0.797382,0.14344,
+ -0.508574,-0.111047,0.853827,4.99671,0.81056,0.280771,
+ -0.86136,-0.239794,0.447836,4.66969,0.738163,0.188296,
+ -0.508574,-0.111047,0.853827,4.99671,0.81056,0.280771,
+ -0.724544,-0.128977,0.677054,4.712067,0.770512,0.333393,
+ -0.86136,-0.239794,0.447836,4.66969,0.738163,0.188296,
+ 0.157494,-0.98752,-0.000465,4.655453,0.758022,0.000098,
+ 0.124158,-0.992262,-0.000543,4.920855,0.812339,0.000318,
+ -0.86136,-0.239794,0.447836,4.66969,0.738163,0.188296,
+ 0.124158,-0.992262,-0.000543,4.920855,0.812339,0.000318,
+ -0.376273,-0.140159,0.915846,4.963526,0.797382,0.14344,
+ -0.508574,-0.111047,0.853827,4.99671,0.81056,0.280771,
+ -0.635877,0.324329,0.700337,5.153735,0.831575,0.218348,
+ 0.243744,-0.944481,0.220328,5.197562,0.922406,0.302473,
+ -0.508574,-0.111047,0.853827,4.99671,0.81056,0.280771,
+ 0.243744,-0.944481,0.220328,5.197562,0.922406,0.302473,
+ -0.903777,-0.182749,0.387027,5.004627,0.908637,0.345273,
+ -0.724544,-0.128977,0.677054,4.712067,0.770512,0.333393,
+ -0.508574,-0.111047,0.853827,4.99671,0.81056,0.280771,
+ -0.903777,-0.182749,0.387027,5.004627,0.908637,0.345273,
+ -0.724544,-0.128977,0.677054,4.712067,0.770512,0.333393,
+ -0.903777,-0.182749,0.387027,5.004627,0.908637,0.345273,
+ -0.911341,0.002265,0.411646,4.728809,0.878731,0.405801,
+ -0.566117,0.431683,0.702254,5.021254,0.951308,0.405567,
+ 0.254106,-0.95176,0.171999,5.223571,0.974029,0.362117,
+ 0.157921,-0.851177,-0.500559,5.241466,1.040469,0.383965,
+ -0.566117,0.431683,0.702254,5.021254,0.951308,0.405567,
+ 0.157921,-0.851177,-0.500559,5.241466,1.040469,0.383965,
+ -0.77316,0.344902,0.532228,5.011084,1.06677,0.458562,
+ -0.566117,0.431683,0.702254,5.021254,0.951308,0.405567,
+ -0.903777,-0.182749,0.387027,5.004627,0.908637,0.345273,
+ 0.243744,-0.944481,0.220328,5.197562,0.922406,0.302473,
+ -0.566117,0.431683,0.702254,5.021254,0.951308,0.405567,
+ 0.243744,-0.944481,0.220328,5.197562,0.922406,0.302473,
+ 0.254106,-0.95176,0.171999,5.223571,0.974029,0.362117,
+ -0.383862,0.612068,0.691392,4.74325,1.05921,0.563421,
+ -0.77316,0.344902,0.532228,5.011084,1.06677,0.458562,
+ -0.023775,-0.598435,0.800818,4.991713,1.163096,0.504149,
+ -0.383862,0.612068,0.691392,4.74325,1.05921,0.563421,
+ -0.023775,-0.598435,0.800818,4.991713,1.163096,0.504149,
+ 0.200825,-0.971974,0.122213,4.733657,1.227371,0.592883,
+ -0.091679,0.768658,0.633057,4.744871,0.950945,0.491082,
+ -0.566117,0.431683,0.702254,5.021254,0.951308,0.405567,
+ -0.77316,0.344902,0.532228,5.011084,1.06677,0.458562,
+ -0.091679,0.768658,0.633057,4.744871,0.950945,0.491082,
+ -0.77316,0.344902,0.532228,5.011084,1.06677,0.458562,
+ -0.383862,0.612068,0.691392,4.74325,1.05921,0.563421,
+ -0.911341,0.002265,0.411646,4.728809,0.878731,0.405801,
+ -0.903777,-0.182749,0.387027,5.004627,0.908637,0.345273,
+ -0.566117,0.431683,0.702254,5.021254,0.951308,0.405567,
+ -0.911341,0.002265,0.411646,4.728809,0.878731,0.405801,
+ -0.566117,0.431683,0.702254,5.021254,0.951308,0.405567,
+ -0.091679,0.768658,0.633057,4.744871,0.950945,0.491082,
+ -0.911194,0.285551,0.296961,4.567896,1.149805,0.642484,
+ -0.383862,0.612068,0.691392,4.74325,1.05921,0.563421,
+ 0.200825,-0.971974,0.122213,4.733657,1.227371,0.592883,
+ -0.911194,0.285551,0.296961,4.567896,1.149805,0.642484,
+ 0.200825,-0.971974,0.122213,4.733657,1.227371,0.592883,
+ 0.123418,-0.784469,0.607763,4.641547,1.285422,0.622034,
+ -0.931592,0.319003,0.174278,4.496191,1.024566,0.579491,
+ -0.091679,0.768658,0.633057,4.744871,0.950945,0.491082,
+ -0.383862,0.612068,0.691392,4.74325,1.05921,0.563421,
+ -0.931592,0.319003,0.174278,4.496191,1.024566,0.579491,
+ -0.383862,0.612068,0.691392,4.74325,1.05921,0.563421,
+ -0.911194,0.285551,0.296961,4.567896,1.149805,0.642484,
+ -0.895156,0.397807,0.201112,4.416475,0.921264,0.458839,
+ -0.911341,0.002265,0.411646,4.728809,0.878731,0.405801,
+ -0.091679,0.768658,0.633057,4.744871,0.950945,0.491082,
+ -0.895156,0.397807,0.201112,4.416475,0.921264,0.458839,
+ -0.091679,0.768658,0.633057,4.744871,0.950945,0.491082,
+ -0.931592,0.319003,0.174278,4.496191,1.024566,0.579491,
+ -0.742898,0.572423,0.347036,4.297891,0.911506,0.447987,
+ -0.821562,0.369566,0.434117,4.399629,0.850459,0.391855,
+ -0.895156,0.397807,0.201112,4.416475,0.921264,0.458839,
+ -0.742898,0.572423,0.347036,4.297891,0.911506,0.447987,
+ -0.895156,0.397807,0.201112,4.416475,0.921264,0.458839,
+ -0.885175,0.439902,0.1515,4.333503,0.951176,0.481517,
+ -0.659696,0.567802,0.492343,4.359048,0.700414,0.166651,
+ 0.000801,-1,-0.000539,4.380854,0.704574,-0.00013,
+ 0.157494,-0.98752,-0.000465,4.655453,0.758022,0.000098,
+ -0.659696,0.567802,0.492343,4.359048,0.700414,0.166651,
+ 0.157494,-0.98752,-0.000465,4.655453,0.758022,0.000098,
+ -0.86136,-0.239794,0.447836,4.66969,0.738163,0.188296,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ -0.659696,0.567802,0.492343,4.359048,0.700414,0.166651,
+ -0.86136,-0.239794,0.447836,4.66969,0.738163,0.188296,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ -0.86136,-0.239794,0.447836,4.66969,0.738163,0.188296,
+ -0.724544,-0.128977,0.677054,4.712067,0.770512,0.333393,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ -0.724544,-0.128977,0.677054,4.712067,0.770512,0.333393,
+ -0.821562,0.369566,0.434117,4.399629,0.850459,0.391855,
+ -0.742898,0.572423,0.347036,4.297891,0.911506,0.447987,
+ 0.206279,0.744917,0.634467,4.216374,0.852328,0.405873,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ -0.742898,0.572423,0.347036,4.297891,0.911506,0.447987,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ -0.821562,0.369566,0.434117,4.399629,0.850459,0.391855,
+ -0.724544,-0.128977,0.677054,4.712067,0.770512,0.333393,
+ -0.911341,0.002265,0.411646,4.728809,0.878731,0.405801,
+ -0.895156,0.397807,0.201112,4.416475,0.921264,0.458839,
+ -0.724544,-0.128977,0.677054,4.712067,0.770512,0.333393,
+ -0.895156,0.397807,0.201112,4.416475,0.921264,0.458839,
+ -0.821562,0.369566,0.434117,4.399629,0.850459,0.391855,
+ -0.476949,0.871027,0.117605,4.366867,1.131136,0.630581,
+ -0.931592,0.319003,0.174278,4.496191,1.024566,0.579491,
+ -0.911194,0.285551,0.296961,4.567896,1.149805,0.642484,
+ -0.476949,0.871027,0.117605,4.366867,1.131136,0.630581,
+ -0.911194,0.285551,0.296961,4.567896,1.149805,0.642484,
+ -0.395804,0.901672,0.174144,4.449011,1.260929,0.647431,
+ 0.206279,0.744917,0.634467,4.216374,0.852328,0.405873,
+ -0.742898,0.572423,0.347036,4.297891,0.911506,0.447987,
+ -0.590367,0.807126,-0.003753,4.141189,1.008775,0.499342,
+ -0.742898,0.572423,0.347036,4.297891,0.911506,0.447987,
+ -0.885175,0.439902,0.1515,4.333503,0.951176,0.481517,
+ -0.594389,0.803108,0.041468,4.277227,1.077746,0.550819,
+ -0.742898,0.572423,0.347036,4.297891,0.911506,0.447987,
+ -0.594389,0.803108,0.041468,4.277227,1.077746,0.550819,
+ -0.590367,0.807126,-0.003753,4.141189,1.008775,0.499342,
+ -0.590367,0.807126,-0.003753,4.141189,1.008775,0.499342,
+ -0.594389,0.803108,0.041468,4.277227,1.077746,0.550819,
+ -0.091114,0.94565,0.312162,4.175444,1.350332,0.613988,
+ -0.590367,0.807126,-0.003753,4.141189,1.008775,0.499342,
+ -0.091114,0.94565,0.312162,4.175444,1.350332,0.613988,
+ -0.610894,0.790229,-0.048447,4.085564,1.288885,0.544406,
+ -0.895156,0.397807,0.201112,4.416475,0.921264,0.458839,
+ -0.931592,0.319003,0.174278,4.496191,1.024566,0.579491,
+ -0.885175,0.439902,0.1515,4.333503,0.951176,0.481517,
+ -0.885175,0.439902,0.1515,4.333503,0.951176,0.481517,
+ -0.931592,0.319003,0.174278,4.496191,1.024566,0.579491,
+ -0.476949,0.871027,0.117605,4.366867,1.131136,0.630581,
+ -0.885175,0.439902,0.1515,4.333503,0.951176,0.481517,
+ -0.476949,0.871027,0.117605,4.366867,1.131136,0.630581,
+ -0.594389,0.803108,0.041468,4.277227,1.077746,0.550819,
+ -0.594389,0.803108,0.041468,4.277227,1.077746,0.550819,
+ -0.476949,0.871027,0.117605,4.366867,1.131136,0.630581,
+ -0.216454,0.960138,0.176868,4.247733,1.381058,0.649596,
+ -0.594389,0.803108,0.041468,4.277227,1.077746,0.550819,
+ -0.216454,0.960138,0.176868,4.247733,1.381058,0.649596,
+ -0.091114,0.94565,0.312162,4.175444,1.350332,0.613988,
+ -0.476949,0.871027,0.117605,4.366867,1.131136,0.630581,
+ -0.395804,0.901672,0.174144,4.449011,1.260929,0.647431,
+ -0.283495,0.953867,0.098839,4.329607,1.464801,0.661485,
+ -0.476949,0.871027,0.117605,4.366867,1.131136,0.630581,
+ -0.283495,0.953867,0.098839,4.329607,1.464801,0.661485,
+ -0.216454,0.960138,0.176868,4.247733,1.381058,0.649596,
+ -0.395804,0.901672,0.174144,4.449011,1.260929,0.647431,
+ 0.050019,-0.552867,0.831767,4.522247,1.398278,0.644892,
+ 0.037801,-0.082839,0.995846,4.430999,1.535753,0.638888,
+ -0.395804,0.901672,0.174144,4.449011,1.260929,0.647431,
+ 0.037801,-0.082839,0.995846,4.430999,1.535753,0.638888,
+ -0.283495,0.953867,0.098839,4.329607,1.464801,0.661485,
+ -0.283495,0.953867,0.098839,4.329607,1.464801,0.661485,
+ 0.037801,-0.082839,0.995846,4.430999,1.535753,0.638888,
+ -0.196146,-0.333078,0.922272,4.404221,1.662433,0.61661,
+ -0.283495,0.953867,0.098839,4.329607,1.464801,0.661485,
+ -0.196146,-0.333078,0.922272,4.404221,1.662433,0.61661,
+ -0.421166,0.906102,0.039982,4.312225,1.683392,0.639944,
+ -0.421166,0.906102,0.039982,4.312225,1.683392,0.639944,
+ -0.196146,-0.333078,0.922272,4.404221,1.662433,0.61661,
+ -0.106358,-0.394397,0.912765,4.38638,1.770868,0.596666,
+ -0.421166,0.906102,0.039982,4.312225,1.683392,0.639944,
+ -0.106358,-0.394397,0.912765,4.38638,1.770868,0.596666,
+ -0.557881,0.828586,-0.047048,4.303615,1.799914,0.610388,
+ -0.557881,0.828586,-0.047048,4.303615,1.799914,0.610388,
+ -0.106358,-0.394397,0.912765,4.38638,1.770868,0.596666,
+ -0.277696,-0.435918,0.856073,4.377095,1.871713,0.595743,
+ -0.557881,0.828586,-0.047048,4.303615,1.799914,0.610388,
+ -0.277696,-0.435918,0.856073,4.377095,1.871713,0.595743,
+ -0.536419,0.710997,0.454685,4.304562,1.906537,0.572242,
+ 0.055369,0.916343,0.396547,4.221814,1.660769,0.59409,
+ -0.421166,0.906102,0.039982,4.312225,1.683392,0.639944,
+ -0.557881,0.828586,-0.047048,4.303615,1.799914,0.610388,
+ 0.055369,0.916343,0.396547,4.221814,1.660769,0.59409,
+ -0.557881,0.828586,-0.047048,4.303615,1.799914,0.610388,
+ -0.678336,0.658323,0.326299,4.240116,1.770049,0.583946,
+ -0.216454,0.960138,0.176868,4.247733,1.381058,0.649596,
+ -0.283495,0.953867,0.098839,4.329607,1.464801,0.661485,
+ -0.421166,0.906102,0.039982,4.312225,1.683392,0.639944,
+ -0.216454,0.960138,0.176868,4.247733,1.381058,0.649596,
+ -0.421166,0.906102,0.039982,4.312225,1.683392,0.639944,
+ 0.055369,0.916343,0.396547,4.221814,1.660769,0.59409,
+ -0.091114,0.94565,0.312162,4.175444,1.350332,0.613988,
+ -0.216454,0.960138,0.176868,4.247733,1.381058,0.649596,
+ 0.055369,0.916343,0.396547,4.221814,1.660769,0.59409,
+ -0.091114,0.94565,0.312162,4.175444,1.350332,0.613988,
+ 0.055369,0.916343,0.396547,4.221814,1.660769,0.59409,
+ 0.090337,0.942369,0.32215,4.121121,1.614451,0.587188,
+ -0.610894,0.790229,-0.048447,4.085564,1.288885,0.544406,
+ -0.091114,0.94565,0.312162,4.175444,1.350332,0.613988,
+ 0.090337,0.942369,0.32215,4.121121,1.614451,0.587188,
+ -0.610894,0.790229,-0.048447,4.085564,1.288885,0.544406,
+ 0.090337,0.942369,0.32215,4.121121,1.614451,0.587188,
+ -0.560402,0.735791,0.380211,4.067576,1.572668,0.534997,
+ 0.090337,0.942369,0.32215,4.121121,1.614451,0.587188,
+ 0.055369,0.916343,0.396547,4.221814,1.660769,0.59409,
+ -0.678336,0.658323,0.326299,4.240116,1.770049,0.583946,
+ 0.090337,0.942369,0.32215,4.121121,1.614451,0.587188,
+ -0.678336,0.658323,0.326299,4.240116,1.770049,0.583946,
+ -0.641133,0.599375,0.479267,4.148883,1.759918,0.573765,
+ -0.560402,0.735791,0.380211,4.067576,1.572668,0.534997,
+ 0.090337,0.942369,0.32215,4.121121,1.614451,0.587188,
+ -0.641133,0.599375,0.479267,4.148883,1.759918,0.573765,
+ -0.560402,0.735791,0.380211,4.067576,1.572668,0.534997,
+ -0.641133,0.599375,0.479267,4.148883,1.759918,0.573765,
+ -0.760994,0.140163,0.633437,4.076852,1.746601,0.527436,
+ 0.203778,-0.389736,0.898098,4.83289,2.262727,0.283787,
+ -0.026148,0.006311,0.999638,4.971394,2.146686,0.224781,
+ -0.989689,-0.143234,0,4.912303,2.162645,-0.00009,
+ 0.203778,-0.389736,0.898098,4.83289,2.262727,0.283787,
+ -0.989689,-0.143234,0,4.912303,2.162645,-0.00009,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ 0.204472,-0.587725,0.782797,5.156645,1.942902,0.119993,
+ -0.998597,-0.052951,0,5.177545,1.932323,0.000214,
+ -0.941169,-0.337937,0,5.04969,2.032731,0.000071,
+ -0.241533,0.200654,0.949421,5.687035,1.499636,0.110765,
+ -0.31398,0.125786,0.94106,5.741781,1.463956,0.124891,
+ 0.694651,0.719347,0.000019,5.743997,1.482739,0.000851,
+ -0.241533,0.200654,0.949421,5.687035,1.499636,0.110765,
+ 0.694651,0.719347,0.000019,5.743997,1.482739,0.000851,
+ -0.026558,-0.999647,0,5.680007,1.510009,0.000786,
+ -0.062808,0.99609,0.062134,5.842092,1.427708,0.130724,
+ -0.11884,0.991349,-0.055713,5.915025,1.382159,0.13682,
+ -0.016213,0.999869,0,5.908842,1.388968,0.001026,
+ -0.062808,0.99609,0.062134,5.842092,1.427708,0.130724,
+ -0.016213,0.999869,0,5.908842,1.388968,0.001026,
+ 0.569495,0.821995,-0.000075,5.835498,1.43628,0.000946,
+ -0.395037,0.740118,0.544216,4.452383,2.524558,0.130255,
+ 0.169654,-0.985504,-0.000285,4.454962,2.523303,-0.000603,
+ -0.069594,-0.997575,-0.000151,4.317602,2.588926,-0.000745,
+ -0.395037,0.740118,0.544216,4.452383,2.524558,0.130255,
+ -0.069594,-0.997575,-0.000151,4.317602,2.588926,-0.000745,
+ -0.411843,0.771855,0.484381,4.342351,2.581176,0.140317,
+ -0.353793,0.870619,0.341838,4.440143,2.510529,0.269164,
+ -0.395037,0.740118,0.544216,4.452383,2.524558,0.130255,
+ -0.411843,0.771855,0.484381,4.342351,2.581176,0.140317,
+ -0.353793,0.870619,0.341838,4.440143,2.510529,0.269164,
+ -0.411843,0.771855,0.484381,4.342351,2.581176,0.140317,
+ -0.330516,0.821242,0.465104,4.332083,2.586481,0.194917,
+ -0.929249,-0.009268,0.369337,4.429895,2.495758,0.306894,
+ -0.353793,0.870619,0.341838,4.440143,2.510529,0.269164,
+ -0.330516,0.821242,0.465104,4.332083,2.586481,0.194917,
+ -0.929249,-0.009268,0.369337,4.429895,2.495758,0.306894,
+ -0.330516,0.821242,0.465104,4.332083,2.586481,0.194917,
+ -0.718934,0.608496,0.335955,4.339601,2.592642,0.258891,
+ -0.411843,0.771855,0.484381,4.342351,2.581176,0.140317,
+ -0.069594,-0.997575,-0.000151,4.317602,2.588926,-0.000745,
+ 0.172357,-0.985035,-0.000083,4.189883,2.606916,-0.000863,
+ -0.411843,0.771855,0.484381,4.342351,2.581176,0.140317,
+ 0.172357,-0.985035,-0.000083,4.189883,2.606916,-0.000863,
+ -0.144656,0.947613,0.284787,4.187258,2.590221,0.135844,
+ -0.330516,0.821242,0.465104,4.332083,2.586481,0.194917,
+ -0.411843,0.771855,0.484381,4.342351,2.581176,0.140317,
+ -0.144656,0.947613,0.284787,4.187258,2.590221,0.135844,
+ -0.330516,0.821242,0.465104,4.332083,2.586481,0.194917,
+ -0.144656,0.947613,0.284787,4.187258,2.590221,0.135844,
+ -0.364192,0.890167,0.273801,4.203325,2.589186,0.219164,
+ -0.718934,0.608496,0.335955,4.339601,2.592642,0.258891,
+ -0.330516,0.821242,0.465104,4.332083,2.586481,0.194917,
+ -0.364192,0.890167,0.273801,4.203325,2.589186,0.219164,
+ -0.718934,0.608496,0.335955,4.339601,2.592642,0.258891,
+ -0.364192,0.890167,0.273801,4.203325,2.589186,0.219164,
+ -0.719327,0.568276,0.399538,4.211652,2.602538,0.264011,
+ -0.130291,0.991051,0.029017,4.328606,2.563996,0.343892,
+ -0.718934,0.608496,0.335955,4.339601,2.592642,0.258891,
+ -0.719327,0.568276,0.399538,4.211652,2.602538,0.264011,
+ -0.130291,0.991051,0.029017,4.328606,2.563996,0.343892,
+ -0.719327,0.568276,0.399538,4.211652,2.602538,0.264011,
+ -0.904972,-0.026555,0.424641,4.209941,2.600612,0.337597,
+ -0.501953,0.842502,0.195534,4.410844,2.500167,0.351972,
+ -0.929249,-0.009268,0.369337,4.429895,2.495758,0.306894,
+ -0.718934,0.608496,0.335955,4.339601,2.592642,0.258891,
+ -0.501953,0.842502,0.195534,4.410844,2.500167,0.351972,
+ -0.718934,0.608496,0.335955,4.339601,2.592642,0.258891,
+ -0.130291,0.991051,0.029017,4.328606,2.563996,0.343892,
+ 0.241652,-0.897637,0.368581,4.634996,2.369115,0.140117,
+ -0.965284,-0.261201,0,4.747988,2.300163,-0.000276,
+ 0.210866,-0.977515,0.000009,4.528082,2.467537,-0.000521,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ 0.241652,-0.897637,0.368581,4.634996,2.369115,0.140117,
+ 0.210866,-0.977515,0.000009,4.528082,2.467537,-0.000521,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ 0.210866,-0.977515,0.000009,4.528082,2.467537,-0.000521,
+ 0.169654,-0.985504,-0.000285,4.454962,2.523303,-0.000603,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ 0.169654,-0.985504,-0.000285,4.454962,2.523303,-0.000603,
+ -0.395037,0.740118,0.544216,4.452383,2.524558,0.130255,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ -0.395037,0.740118,0.544216,4.452383,2.524558,0.130255,
+ -0.353793,0.870619,0.341838,4.440143,2.510529,0.269164,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ -0.353793,0.870619,0.341838,4.440143,2.510529,0.269164,
+ -0.929249,-0.009268,0.369337,4.429895,2.495758,0.306894,
+ -0.929249,-0.009268,0.369337,4.429895,2.495758,0.306894,
+ -0.501953,0.842502,0.195534,4.410844,2.500167,0.351972,
+ -0.849668,0.488771,-0.197904,4.474318,2.418432,0.361347,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ -0.929249,-0.009268,0.369337,4.429895,2.495758,0.306894,
+ -0.849668,0.488771,-0.197904,4.474318,2.418432,0.361347,
+ 0.231006,-0.859096,0.456717,4.472349,2.325133,0.443764,
+ 0.170159,-0.985033,-0.027502,4.577573,2.389535,0.256196,
+ -0.849668,0.488771,-0.197904,4.474318,2.418432,0.361347,
+ 0.361848,-0.921221,-0.142892,4.043796,2.386524,0.400392,
+ -0.138401,-0.989733,0.035683,4.07851,2.41181,0.472193,
+ 0.207048,-0.965263,0.159371,4.088356,2.510913,0.453793,
+ 0.361848,-0.921221,-0.142892,4.043796,2.386524,0.400392,
+ 0.207048,-0.965263,0.159371,4.088356,2.510913,0.453793,
+ 0.198783,-0.979888,0.017481,4.063205,2.509679,0.342987,
+ 0.3579,-0.920931,0.154253,4.035753,2.399538,0.343957,
+ 0.361848,-0.921221,-0.142892,4.043796,2.386524,0.400392,
+ 0.198783,-0.979888,0.017481,4.063205,2.509679,0.342987,
+ 0.3579,-0.920931,0.154253,4.035753,2.399538,0.343957,
+ 0.198783,-0.979888,0.017481,4.063205,2.509679,0.342987,
+ 0.363913,-0.931415,0.005744,4.055262,2.505284,0.297282,
+ 0.172357,-0.985035,-0.000083,4.189883,2.606916,-0.000863,
+ 0.272993,0.962016,-0.000199,4.079812,2.571649,-0.000951,
+ 0.579082,-0.064826,-0.812688,4.084506,2.570978,0.218168,
+ 0.172357,-0.985035,-0.000083,4.189883,2.606916,-0.000863,
+ 0.579082,-0.064826,-0.812688,4.084506,2.570978,0.218168,
+ -0.144656,0.947613,0.284787,4.187258,2.590221,0.135844,
+ -0.144656,0.947613,0.284787,4.187258,2.590221,0.135844,
+ 0.579082,-0.064826,-0.812688,4.084506,2.570978,0.218168,
+ 0.849086,-0.12151,-0.51409,4.101754,2.557092,0.265856,
+ -0.144656,0.947613,0.284787,4.187258,2.590221,0.135844,
+ 0.849086,-0.12151,-0.51409,4.101754,2.557092,0.265856,
+ -0.364192,0.890167,0.273801,4.203325,2.589186,0.219164,
+ -0.364192,0.890167,0.273801,4.203325,2.589186,0.219164,
+ 0.849086,-0.12151,-0.51409,4.101754,2.557092,0.265856,
+ 0.727891,-0.103877,-0.677779,4.100907,2.560626,0.302396,
+ -0.364192,0.890167,0.273801,4.203325,2.589186,0.219164,
+ 0.727891,-0.103877,-0.677779,4.100907,2.560626,0.302396,
+ -0.719327,0.568276,0.399538,4.211652,2.602538,0.264011,
+ -0.719327,0.568276,0.399538,4.211652,2.602538,0.264011,
+ 0.727891,-0.103877,-0.677779,4.100907,2.560626,0.302396,
+ 0.576293,-0.081905,-0.813128,4.117367,2.568514,0.3845,
+ -0.719327,0.568276,0.399538,4.211652,2.602538,0.264011,
+ 0.576293,-0.081905,-0.813128,4.117367,2.568514,0.3845,
+ -0.904972,-0.026555,0.424641,4.209941,2.600612,0.337597,
+ 0.363913,-0.931415,0.005744,4.055262,2.505284,0.297282,
+ 0.740815,-0.598363,-0.305214,4.029016,2.519175,0.249385,
+ 0.640669,-0.433938,-0.633436,4.00011,2.424158,0.313254,
+ 0.363913,-0.931415,0.005744,4.055262,2.505284,0.297282,
+ 0.640669,-0.433938,-0.633436,4.00011,2.424158,0.313254,
+ 0.3579,-0.920931,0.154253,4.035753,2.399538,0.343957,
+ -0.069267,0.997598,-0.000362,3.988172,2.489642,-0.001008,
+ 0.640669,-0.433938,-0.633436,4.00011,2.424158,0.313254,
+ 0.740815,-0.598363,-0.305214,4.029016,2.519175,0.249385,
+ -0.069267,0.997598,-0.000362,3.988172,2.489642,-0.001008,
+ 0.740815,-0.598363,-0.305214,4.029016,2.519175,0.249385,
+ 0.544067,0.839042,-0.000076,4.024214,2.527933,-0.000987,
+ 0.740815,-0.598363,-0.305214,4.029016,2.519175,0.249385,
+ 0.579082,-0.064826,-0.812688,4.084506,2.570978,0.218168,
+ 0.272993,0.962016,-0.000199,4.079812,2.571649,-0.000951,
+ 0.740815,-0.598363,-0.305214,4.029016,2.519175,0.249385,
+ 0.272993,0.962016,-0.000199,4.079812,2.571649,-0.000951,
+ 0.544067,0.839042,-0.000076,4.024214,2.527933,-0.000987,
+ 0.363913,-0.931415,0.005744,4.055262,2.505284,0.297282,
+ 0.849086,-0.12151,-0.51409,4.101754,2.557092,0.265856,
+ 0.579082,-0.064826,-0.812688,4.084506,2.570978,0.218168,
+ 0.363913,-0.931415,0.005744,4.055262,2.505284,0.297282,
+ 0.579082,-0.064826,-0.812688,4.084506,2.570978,0.218168,
+ 0.740815,-0.598363,-0.305214,4.029016,2.519175,0.249385,
+ 0.198783,-0.979888,0.017481,4.063205,2.509679,0.342987,
+ 0.727891,-0.103877,-0.677779,4.100907,2.560626,0.302396,
+ 0.849086,-0.12151,-0.51409,4.101754,2.557092,0.265856,
+ 0.198783,-0.979888,0.017481,4.063205,2.509679,0.342987,
+ 0.849086,-0.12151,-0.51409,4.101754,2.557092,0.265856,
+ 0.363913,-0.931415,0.005744,4.055262,2.505284,0.297282,
+ 0.207048,-0.965263,0.159371,4.088356,2.510913,0.453793,
+ 0.576293,-0.081905,-0.813128,4.117367,2.568514,0.3845,
+ 0.727891,-0.103877,-0.677779,4.100907,2.560626,0.302396,
+ 0.207048,-0.965263,0.159371,4.088356,2.510913,0.453793,
+ 0.727891,-0.103877,-0.677779,4.100907,2.560626,0.302396,
+ 0.198783,-0.979888,0.017481,4.063205,2.509679,0.342987,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ 0.640669,-0.433938,-0.633436,4.00011,2.424158,0.313254,
+ -0.069267,0.997598,-0.000362,3.988172,2.489642,-0.001008,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ -0.069267,0.997598,-0.000362,3.988172,2.489642,-0.001008,
+ 0.622247,0.782821,-0.000247,3.787342,2.396113,-0.001159,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ -0.745507,-0.065161,-0.663305,3.870548,2.292106,0.368964,
+ -0.611332,-0.037351,-0.790492,3.961908,2.347745,0.374747,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ -0.611332,-0.037351,-0.790492,3.961908,2.347745,0.374747,
+ 0.640669,-0.433938,-0.633436,4.00011,2.424158,0.313254,
+ -0.747931,-0.041912,-0.662452,4.025364,2.3593,0.402597,
+ 0.361848,-0.921221,-0.142892,4.043796,2.386524,0.400392,
+ 0.3579,-0.920931,0.154253,4.035753,2.399538,0.343957,
+ -0.747931,-0.041912,-0.662452,4.025364,2.3593,0.402597,
+ 0.3579,-0.920931,0.154253,4.035753,2.399538,0.343957,
+ 0.640669,-0.433938,-0.633436,4.00011,2.424158,0.313254,
+ -0.611332,-0.037351,-0.790492,3.961908,2.347745,0.374747,
+ -0.747931,-0.041912,-0.662452,4.025364,2.3593,0.402597,
+ 0.640669,-0.433938,-0.633436,4.00011,2.424158,0.313254,
+ -0.609407,-0.033626,-0.792144,3.967085,2.280648,0.537643,
+ -0.749946,-0.01864,-0.661236,4.077563,2.305187,0.510338,
+ -0.747931,-0.041912,-0.662452,4.025364,2.3593,0.402597,
+ -0.609407,-0.033626,-0.792144,3.967085,2.280648,0.537643,
+ -0.747931,-0.041912,-0.662452,4.025364,2.3593,0.402597,
+ -0.611332,-0.037351,-0.790492,3.961908,2.347745,0.374747,
+ -0.446251,-0.047365,-0.893653,3.903911,2.241501,0.512468,
+ -0.609407,-0.033626,-0.792144,3.967085,2.280648,0.537643,
+ -0.611332,-0.037351,-0.790492,3.961908,2.347745,0.374747,
+ -0.446251,-0.047365,-0.893653,3.903911,2.241501,0.512468,
+ -0.611332,-0.037351,-0.790492,3.961908,2.347745,0.374747,
+ -0.745507,-0.065161,-0.663305,3.870548,2.292106,0.368964,
+ -0.453311,-0.031481,-0.890797,3.823349,2.141733,0.428356,
+ -0.93621,-0.256398,0.240355,3.857922,2.141554,0.521067,
+ -0.446251,-0.047365,-0.893653,3.903911,2.241501,0.512468,
+ -0.453311,-0.031481,-0.890797,3.823349,2.141733,0.428356,
+ -0.446251,-0.047365,-0.893653,3.903911,2.241501,0.512468,
+ -0.745507,-0.065161,-0.663305,3.870548,2.292106,0.368964,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ -0.138401,-0.989733,0.035683,4.07851,2.41181,0.472193,
+ 0.361848,-0.921221,-0.142892,4.043796,2.386524,0.400392,
+ -0.747931,-0.041912,-0.662452,4.025364,2.3593,0.402597,
+ -0.749946,-0.01864,-0.661236,4.077563,2.305187,0.510338,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ -0.747931,-0.041912,-0.662452,4.025364,2.3593,0.402597,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ 0.361848,-0.921221,-0.142892,4.043796,2.386524,0.400392,
+ -0.609407,-0.033626,-0.792144,3.967085,2.280648,0.537643,
+ -0.450889,-0.363512,0.815205,4.010847,2.270246,0.622149,
+ -0.749779,-0.335085,0.57057,4.112302,2.285832,0.5955,
+ -0.609407,-0.033626,-0.792144,3.967085,2.280648,0.537643,
+ -0.749779,-0.335085,0.57057,4.112302,2.285832,0.5955,
+ -0.749946,-0.01864,-0.661236,4.077563,2.305187,0.510338,
+ -0.446251,-0.047365,-0.893653,3.903911,2.241501,0.512468,
+ -0.948723,-0.104868,0.298208,3.928869,2.223919,0.615683,
+ -0.450889,-0.363512,0.815205,4.010847,2.270246,0.622149,
+ -0.446251,-0.047365,-0.893653,3.903911,2.241501,0.512468,
+ -0.450889,-0.363512,0.815205,4.010847,2.270246,0.622149,
+ -0.609407,-0.033626,-0.792144,3.967085,2.280648,0.537643,
+ -0.93621,-0.256398,0.240355,3.857922,2.141554,0.521067,
+ -0.782361,-0.139191,0.607073,3.892378,2.149432,0.603589,
+ -0.948723,-0.104868,0.298208,3.928869,2.223919,0.615683,
+ -0.93621,-0.256398,0.240355,3.857922,2.141554,0.521067,
+ -0.948723,-0.104868,0.298208,3.928869,2.223919,0.615683,
+ -0.446251,-0.047365,-0.893653,3.903911,2.241501,0.512468,
+ -0.450889,-0.363512,0.815205,4.010847,2.270246,0.622149,
+ -0.555116,0.058381,0.829722,4.04473,2.254459,0.744209,
+ -0.515329,-0.156304,0.842618,4.146067,2.278102,0.707372,
+ -0.450889,-0.363512,0.815205,4.010847,2.270246,0.622149,
+ -0.515329,-0.156304,0.842618,4.146067,2.278102,0.707372,
+ -0.749779,-0.335085,0.57057,4.112302,2.285832,0.5955,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ -0.555116,0.058381,0.829722,4.04473,2.254459,0.744209,
+ -0.450889,-0.363512,0.815205,4.010847,2.270246,0.622149,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ -0.450889,-0.363512,0.815205,4.010847,2.270246,0.622149,
+ -0.948723,-0.104868,0.298208,3.928869,2.223919,0.615683,
+ -0.782361,-0.139191,0.607073,3.892378,2.149432,0.603589,
+ -0.936127,0.049437,0.348169,3.945464,2.1301,0.689536,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ -0.782361,-0.139191,0.607073,3.892378,2.149432,0.603589,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ -0.948723,-0.104868,0.298208,3.928869,2.223919,0.615683,
+ 0.73986,-0.312403,0.595828,4.212974,2.303184,0.587113,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ -0.749779,-0.335085,0.57057,4.112302,2.285832,0.5955,
+ 0.73986,-0.312403,0.595828,4.212974,2.303184,0.587113,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ -0.749779,-0.335085,0.57057,4.112302,2.285832,0.5955,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ -0.749946,-0.01864,-0.661236,4.077563,2.305187,0.510338,
+ -0.749779,-0.335085,0.57057,4.112302,2.285832,0.5955,
+ -0.515329,-0.156304,0.842618,4.146067,2.278102,0.707372,
+ -0.965005,-0.14502,-0.218484,4.212058,2.27945,0.625927,
+ -0.749779,-0.335085,0.57057,4.112302,2.285832,0.5955,
+ -0.965005,-0.14502,-0.218484,4.212058,2.27945,0.625927,
+ 0.73986,-0.312403,0.595828,4.212974,2.303184,0.587113,
+ -0.515329,-0.156304,0.842618,4.146067,2.278102,0.707372,
+ -0.766653,-0.188233,0.61385,4.172143,2.303394,0.778972,
+ -0.98488,-0.159984,0.066451,4.229332,2.274522,0.672749,
+ -0.515329,-0.156304,0.842618,4.146067,2.278102,0.707372,
+ -0.98488,-0.159984,0.066451,4.229332,2.274522,0.672749,
+ -0.965005,-0.14502,-0.218484,4.212058,2.27945,0.625927,
+ -0.555116,0.058381,0.829722,4.04473,2.254459,0.744209,
+ -0.172109,-0.240744,0.955207,4.079122,2.264104,0.84501,
+ -0.766653,-0.188233,0.61385,4.172143,2.303394,0.778972,
+ -0.555116,0.058381,0.829722,4.04473,2.254459,0.744209,
+ -0.766653,-0.188233,0.61385,4.172143,2.303394,0.778972,
+ -0.515329,-0.156304,0.842618,4.146067,2.278102,0.707372,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ 0.50391,-0.29577,0.811538,4.0247,2.187859,0.814219,
+ -0.172109,-0.240744,0.955207,4.079122,2.264104,0.84501,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ -0.172109,-0.240744,0.955207,4.079122,2.264104,0.84501,
+ -0.555116,0.058381,0.829722,4.04473,2.254459,0.744209,
+ -0.766653,-0.188233,0.61385,4.172143,2.303394,0.778972,
+ -0.986028,-0.026302,-0.164487,4.215419,2.350484,0.885764,
+ 0.74814,-0.190428,0.635629,4.273005,2.310529,0.762172,
+ -0.766653,-0.188233,0.61385,4.172143,2.303394,0.778972,
+ 0.74814,-0.190428,0.635629,4.273005,2.310529,0.762172,
+ -0.98488,-0.159984,0.066451,4.229332,2.274522,0.672749,
+ -0.172109,-0.240744,0.955207,4.079122,2.264104,0.84501,
+ -0.993835,-0.024167,0.108201,4.104864,2.298353,0.915735,
+ -0.986028,-0.026302,-0.164487,4.215419,2.350484,0.885764,
+ -0.172109,-0.240744,0.955207,4.079122,2.264104,0.84501,
+ -0.986028,-0.026302,-0.164487,4.215419,2.350484,0.885764,
+ -0.766653,-0.188233,0.61385,4.172143,2.303394,0.778972,
+ 0.50391,-0.29577,0.811538,4.0247,2.187859,0.814219,
+ -0.76371,-0.034453,0.644639,4.059714,2.194906,0.888152,
+ -0.993835,-0.024167,0.108201,4.104864,2.298353,0.915735,
+ 0.50391,-0.29577,0.811538,4.0247,2.187859,0.814219,
+ -0.993835,-0.024167,0.108201,4.104864,2.298353,0.915735,
+ -0.172109,-0.240744,0.955207,4.079122,2.264104,0.84501,
+ 0.513205,-0.021212,0.858004,4.097362,2.3666,1.239986,
+ 0.744052,-0.065305,0.664923,4.155551,2.388662,1.09196,
+ 0.513577,-0.159689,0.843053,4.102304,2.29996,1.025862,
+ 0.513205,-0.021212,0.858004,4.097362,2.3666,1.239986,
+ 0.513577,-0.159689,0.843053,4.102304,2.29996,1.025862,
+ -0.158973,-0.085654,0.98356,4.061989,2.231988,1.178382,
+ 0.513577,-0.159689,0.843053,4.102304,2.29996,1.025862,
+ -0.141926,0.071007,0.987327,4.194233,2.408334,1.008471,
+ -0.986028,-0.026302,-0.164487,4.215419,2.350484,0.885764,
+ 0.513577,-0.159689,0.843053,4.102304,2.29996,1.025862,
+ -0.986028,-0.026302,-0.164487,4.215419,2.350484,0.885764,
+ -0.993835,-0.024167,0.108201,4.104864,2.298353,0.915735,
+ 0.744052,-0.065305,0.664923,4.155551,2.388662,1.09196,
+ -0.141926,0.071007,0.987327,4.194233,2.408334,1.008471,
+ 0.513577,-0.159689,0.843053,4.102304,2.29996,1.025862,
+ -0.741934,0.120389,0.659576,4.307092,2.367482,0.877202,
+ 0.74814,-0.190428,0.635629,4.273005,2.310529,0.762172,
+ -0.986028,-0.026302,-0.164487,4.215419,2.350484,0.885764,
+ -0.141926,0.071007,0.987327,4.194233,2.408334,1.008471,
+ -0.982826,0.110983,0.147432,4.266263,2.421651,1.054799,
+ -0.741934,0.120389,0.659576,4.307092,2.367482,0.877202,
+ -0.141926,0.071007,0.987327,4.194233,2.408334,1.008471,
+ -0.741934,0.120389,0.659576,4.307092,2.367482,0.877202,
+ -0.986028,-0.026302,-0.164487,4.215419,2.350484,0.885764,
+ 0.744052,-0.065305,0.664923,4.155551,2.388662,1.09196,
+ -0.989845,0.092874,-0.10762,4.228523,2.435029,1.098575,
+ -0.982826,0.110983,0.147432,4.266263,2.421651,1.054799,
+ 0.744052,-0.065305,0.664923,4.155551,2.388662,1.09196,
+ -0.982826,0.110983,0.147432,4.266263,2.421651,1.054799,
+ -0.141926,0.071007,0.987327,4.194233,2.408334,1.008471,
+ 0.513205,-0.021212,0.858004,4.097362,2.3666,1.239986,
+ 0.3936,0.919282,0.000642,4.17047,2.458441,1.241846,
+ -0.989845,0.092874,-0.10762,4.228523,2.435029,1.098575,
+ 0.513205,-0.021212,0.858004,4.097362,2.3666,1.239986,
+ -0.989845,0.092874,-0.10762,4.228523,2.435029,1.098575,
+ 0.744052,-0.065305,0.664923,4.155551,2.388662,1.09196,
+ -0.570564,0.630958,-0.525689,4.058311,2.293363,1.338054,
+ 0.3936,0.919282,0.000642,4.094116,2.426172,1.381032,
+ 0.3936,0.919282,0.000642,4.17047,2.458441,1.241846,
+ -0.570564,0.630958,-0.525689,4.058311,2.293363,1.338054,
+ 0.3936,0.919282,0.000642,4.17047,2.458441,1.241846,
+ 0.513205,-0.021212,0.858004,4.097362,2.3666,1.239986,
+ -0.570564,0.630958,-0.525689,4.046673,2.341349,1.45253,
+ 0.3936,0.919282,0.000642,4.094116,2.426172,1.381032,
+ -0.570564,0.630958,-0.525689,4.058311,2.293363,1.338054,
+ -0.329373,0.540393,-0.774267,4.047406,2.207209,1.015108,
+ 0.513577,-0.159689,0.843053,4.102304,2.29996,1.025862,
+ -0.993835,-0.024167,0.108201,4.104864,2.298353,0.915735,
+ -0.329373,0.540393,-0.774267,4.047406,2.207209,1.015108,
+ -0.993835,-0.024167,0.108201,4.104864,2.298353,0.915735,
+ -0.76371,-0.034453,0.644639,4.059714,2.194906,0.888152,
+ -0.158973,-0.085654,0.98356,4.061989,2.231988,1.178382,
+ 0.513577,-0.159689,0.843053,4.102304,2.29996,1.025862,
+ -0.329373,0.540393,-0.774267,4.047406,2.207209,1.015108,
+ -0.329373,0.540393,-0.774267,3.989434,2.118832,0.765086,
+ 0.50391,-0.29577,0.811538,4.0247,2.187859,0.814219,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ -0.329373,0.540393,-0.774267,3.989434,2.118832,0.765086,
+ -0.783471,0.056646,0.618841,3.990744,2.205448,0.710795,
+ -0.936127,0.049437,0.348169,3.945464,2.1301,0.689536,
+ -0.105514,0.43457,-0.894436,4.022592,2.123052,0.903284,
+ -0.76371,-0.034453,0.644639,4.059714,2.194906,0.888152,
+ 0.50391,-0.29577,0.811538,4.0247,2.187859,0.814219,
+ -0.105514,0.43457,-0.894436,4.022592,2.123052,0.903284,
+ 0.50391,-0.29577,0.811538,4.0247,2.187859,0.814219,
+ -0.329373,0.540393,-0.774267,3.989434,2.118832,0.765086,
+ -0.105514,0.43457,-0.894436,4.020299,2.141675,1.002365,
+ -0.329373,0.540393,-0.774267,4.047406,2.207209,1.015108,
+ -0.76371,-0.034453,0.644639,4.059714,2.194906,0.888152,
+ -0.105514,0.43457,-0.894436,4.020299,2.141675,1.002365,
+ -0.76371,-0.034453,0.644639,4.059714,2.194906,0.888152,
+ -0.105514,0.43457,-0.894436,4.022592,2.123052,0.903284,
+ -0.158973,-0.085654,0.98356,4.061989,2.231988,1.178382,
+ -0.329373,0.540393,-0.774267,4.047406,2.207209,1.015108,
+ -0.105514,0.43457,-0.894436,4.020299,2.141675,1.002365,
+ -0.570564,0.630958,-0.525689,4.058311,2.293363,1.338054,
+ 0.513205,-0.021212,0.858004,4.097362,2.3666,1.239986,
+ -0.158973,-0.085654,0.98356,4.061989,2.231988,1.178382,
+ 0.908355,-0.087284,0.408989,4.024858,2.106568,1.208099,
+ -0.158973,-0.085654,0.98356,4.061989,2.231988,1.178382,
+ -0.105514,0.43457,-0.894436,4.020299,2.141675,1.002365,
+ 0.908355,-0.087284,0.408989,4.024858,2.106568,1.208099,
+ -0.105514,0.43457,-0.894436,4.020299,2.141675,1.002365,
+ 0.944023,-0.282834,0.169783,4.036947,1.992167,1.072561,
+ -0.570564,0.630958,-0.525689,4.058311,2.293363,1.338054,
+ -0.158973,-0.085654,0.98356,4.061989,2.231988,1.178382,
+ 0.908355,-0.087284,0.408989,4.024858,2.106568,1.208099,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ -0.570564,0.630958,-0.525689,4.046673,2.341349,1.45253,
+ -0.570564,0.630958,-0.525689,4.058311,2.293363,1.338054,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ -0.570564,0.630958,-0.525689,4.058311,2.293363,1.338054,
+ 0.908355,-0.087284,0.408989,4.024858,2.106568,1.208099,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ 0.908355,-0.087284,0.408989,4.024858,2.106568,1.208099,
+ 0.392037,0.915475,-0.09062,4.103303,2.038565,1.363737,
+ 0.944023,-0.282834,0.169783,4.036947,1.992167,1.072561,
+ 0.392037,0.915475,-0.09062,4.152166,1.868775,1.225002,
+ 0.392037,0.915475,-0.09062,4.103303,2.038565,1.363737,
+ 0.944023,-0.282834,0.169783,4.036947,1.992167,1.072561,
+ 0.392037,0.915475,-0.09062,4.103303,2.038565,1.363737,
+ 0.908355,-0.087284,0.408989,4.024858,2.106568,1.208099,
+ -0.121207,0.426739,-0.896216,4.127903,1.828359,1.090512,
+ 0.392037,0.915475,-0.09062,4.152166,1.868775,1.225002,
+ 0.944023,-0.282834,0.169783,4.036947,1.992167,1.072561,
+ -0.121207,0.426739,-0.896216,4.127903,1.828359,1.090512,
+ 0.944023,-0.282834,0.169783,4.036947,1.992167,1.072561,
+ -0.570559,0.630963,0.525688,4.031515,1.968248,0.91846,
+ 0.944023,-0.282834,0.169783,4.036947,1.992167,1.072561,
+ -0.105514,0.43457,-0.894436,4.020299,2.141675,1.002365,
+ -0.105514,0.43457,-0.894436,4.022592,2.123052,0.903284,
+ 0.944023,-0.282834,0.169783,4.036947,1.992167,1.072561,
+ -0.105514,0.43457,-0.894436,4.022592,2.123052,0.903284,
+ -0.570559,0.630963,0.525688,4.031515,1.968248,0.91846,
+ 0.774828,0.16858,0.60928,3.966639,1.969285,0.549291,
+ -0.93621,-0.256398,0.240355,3.857922,2.141554,0.521067,
+ -0.453311,-0.031481,-0.890797,3.823349,2.141733,0.428356,
+ 0.774828,0.16858,0.60928,3.966639,1.969285,0.549291,
+ -0.453311,-0.031481,-0.890797,3.823349,2.141733,0.428356,
+ -0.570559,0.630963,0.525688,3.922437,1.972461,0.483563,
+ 0.774828,0.16858,0.60928,3.98291,1.987391,0.639809,
+ -0.782361,-0.139191,0.607073,3.892378,2.149432,0.603589,
+ -0.93621,-0.256398,0.240355,3.857922,2.141554,0.521067,
+ 0.774828,0.16858,0.60928,3.98291,1.987391,0.639809,
+ -0.93621,-0.256398,0.240355,3.857922,2.141554,0.521067,
+ 0.774828,0.16858,0.60928,3.966639,1.969285,0.549291,
+ -0.142868,0.456449,-0.878204,4.059885,1.86046,0.470087,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ 0.774828,0.16858,0.60928,3.966639,1.969285,0.549291,
+ -0.142868,0.456449,-0.878204,4.059885,1.86046,0.470087,
+ 0.774828,0.16858,0.60928,3.966639,1.969285,0.549291,
+ -0.570559,0.630963,0.525688,3.922437,1.972461,0.483563,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ 0.774828,0.16858,0.60928,3.98291,1.987391,0.639809,
+ 0.774828,0.16858,0.60928,3.966639,1.969285,0.549291,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ -0.570559,0.630963,0.525688,4.031515,1.968248,0.91846,
+ -0.105514,0.43457,-0.894436,4.022592,2.123052,0.903284,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ -0.105514,0.43457,-0.894436,4.022592,2.123052,0.903284,
+ -0.329373,0.540393,-0.774267,3.989434,2.118832,0.765086,
+ -0.329373,0.540393,-0.774267,3.989434,2.118832,0.765086,
+ -0.936127,0.049437,0.348169,3.945464,2.1301,0.689536,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ -0.936127,0.049437,0.348169,3.945464,2.1301,0.689536,
+ -0.782361,-0.139191,0.607073,3.892378,2.149432,0.603589,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ -0.782361,-0.139191,0.607073,3.892378,2.149432,0.603589,
+ 0.774828,0.16858,0.60928,3.98291,1.987391,0.639809,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ 0.774828,0.16858,0.60928,3.98291,1.987391,0.639809,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ -0.121207,0.426739,-0.896216,4.150297,1.820575,0.917046,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ -0.121207,0.426739,-0.896216,4.150297,1.820575,0.917046,
+ -0.121207,0.426739,-0.896216,4.127903,1.828359,1.090512,
+ -0.570559,0.630963,0.525688,4.031515,1.968248,0.91846,
+ -0.121207,0.426739,-0.896216,4.150297,1.820575,0.917046,
+ -0.570559,0.630963,0.525688,4.031515,1.968248,0.91846,
+ 0.77718,0.24762,0.578512,4.017509,1.996169,0.731654,
+ 0.108306,-0.808441,0.578527,4.389484,2.190421,0.47332,
+ 0.231006,-0.859096,0.456717,4.472349,2.325133,0.443764,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ 0.424214,0.855079,-0.298131,4.3427,2.112281,0.516692,
+ 0.108306,-0.808441,0.578527,4.389484,2.190421,0.47332,
+ 0.77718,0.24762,0.578512,4.314791,2.142163,0.54065,
+ 0.353564,0.891052,-0.284638,4.305411,2.059245,0.539407,
+ 0.424214,0.855079,-0.298131,4.3427,2.112281,0.516692,
+ 0.77718,0.24762,0.578512,4.314791,2.142163,0.54065,
+ 0.108306,-0.808441,0.578527,4.389484,2.190421,0.47332,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ 0.77718,0.24762,0.578512,4.314791,2.142163,0.54065,
+ 0.125846,-0.929941,0.345503,4.43302,2.024714,0.563794,
+ 0.108306,-0.808441,0.578527,4.389484,2.190421,0.47332,
+ 0.424214,0.855079,-0.298131,4.3427,2.112281,0.516692,
+ 0.125846,-0.929941,0.345503,4.43302,2.024714,0.563794,
+ 0.424214,0.855079,-0.298131,4.3427,2.112281,0.516692,
+ 0.353564,0.891052,-0.284638,4.305411,2.059245,0.539407,
+ 0.771387,0.339113,0.538483,4.101726,2.312318,1.438163,
+ -0.142868,0.456449,0.878205,4.148927,2.388726,1.376879,
+ 0.3936,0.919282,0.000642,4.094116,2.426172,1.381032,
+ 0.771387,0.339113,0.538483,4.101726,2.312318,1.438163,
+ 0.3936,0.919282,0.000642,4.094116,2.426172,1.381032,
+ -0.570564,0.630958,-0.525689,4.046673,2.341349,1.45253,
+ 0.63166,0.704336,-0.323908,4.129926,2.30877,1.402259,
+ 0.229942,0.797697,-0.5575,4.140097,2.295949,1.367196,
+ 0.22211,0.815123,-0.535015,4.169404,2.306276,1.284031,
+ 0.63166,0.704336,-0.323908,4.129926,2.30877,1.402259,
+ 0.22211,0.815123,-0.535015,4.169404,2.306276,1.284031,
+ 0.459043,0.888414,0.000701,4.149438,2.34055,1.353693,
+ 0.229942,0.797697,-0.5575,4.140097,2.295949,1.367196,
+ 0.017957,0.744062,-0.667869,4.141759,2.279958,1.29534,
+ 0.22211,0.815123,-0.535015,4.169404,2.306276,1.284031,
+ -0.142868,0.456449,0.878205,4.148927,2.388726,1.376879,
+ -0.142868,0.456449,0.878205,4.197644,2.394643,1.248646,
+ 0.3936,0.919282,0.000642,4.17047,2.458441,1.241846,
+ -0.142868,0.456449,0.878205,4.148927,2.388726,1.376879,
+ 0.3936,0.919282,0.000642,4.17047,2.458441,1.241846,
+ 0.3936,0.919282,0.000642,4.094116,2.426172,1.381032,
+ 0.459043,0.888414,0.000701,4.149438,2.34055,1.353693,
+ 0.498956,0.866627,0.000639,4.197516,2.349135,1.253043,
+ -0.142868,0.456449,0.878205,4.197644,2.394643,1.248646,
+ 0.459043,0.888414,0.000701,4.149438,2.34055,1.353693,
+ -0.142868,0.456449,0.878205,4.197644,2.394643,1.248646,
+ -0.142868,0.456449,0.878205,4.148927,2.388726,1.376879,
+ 0.459043,0.888414,0.000701,4.149438,2.34055,1.353693,
+ 0.22211,0.815123,-0.535015,4.169404,2.306276,1.284031,
+ 0.13983,0.720686,-0.679014,4.199317,2.304652,1.17454,
+ 0.459043,0.888414,0.000701,4.149438,2.34055,1.353693,
+ 0.13983,0.720686,-0.679014,4.199317,2.304652,1.17454,
+ 0.498956,0.866627,0.000639,4.197516,2.349135,1.253043,
+ -0.329371,0.540395,0.774266,4.26732,2.121987,0.61494,
+ 0.77718,0.24762,0.578512,4.314791,2.142163,0.54065,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ -0.329371,0.540395,0.774266,4.26732,2.121987,0.61494,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ -0.329371,0.540395,0.774266,4.354411,2.102985,0.80258,
+ -0.329371,0.540395,0.774266,4.26732,2.121987,0.61494,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ -0.329371,0.540395,0.774266,4.354411,2.102985,0.80258,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ -0.105515,0.43457,0.894436,4.38099,2.207701,0.839016,
+ -0.965005,-0.14502,-0.218484,4.212058,2.27945,0.625927,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ 0.73986,-0.312403,0.595828,4.212974,2.303184,0.587113,
+ -0.98488,-0.159984,0.066451,4.229332,2.274522,0.672749,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ -0.965005,-0.14502,-0.218484,4.212058,2.27945,0.625927,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ -0.98488,-0.159984,0.066451,4.229332,2.274522,0.672749,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ -0.98488,-0.159984,0.066451,4.229332,2.274522,0.672749,
+ 0.74814,-0.190428,0.635629,4.273005,2.310529,0.762172,
+ -0.741934,0.120389,0.659576,4.307092,2.367482,0.877202,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ 0.74814,-0.190428,0.635629,4.273005,2.310529,0.762172,
+ 0.353564,0.891052,-0.284638,4.305411,2.059245,0.539407,
+ 0.77718,0.24762,0.578512,4.314791,2.142163,0.54065,
+ -0.329371,0.540395,0.774266,4.26732,2.121987,0.61494,
+ -0.105515,0.43457,0.894436,4.369751,2.298204,0.921894,
+ -0.105515,0.43457,0.894436,4.38099,2.207701,0.839016,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ -0.105515,0.43457,0.894436,4.369751,2.298204,0.921894,
+ 0.292429,0.900404,-0.322114,4.274886,2.22003,0.679075,
+ -0.741934,0.120389,0.659576,4.307092,2.367482,0.877202,
+ -0.105515,0.43457,0.894436,4.369751,2.298204,0.921894,
+ -0.741934,0.120389,0.659576,4.307092,2.367482,0.877202,
+ -0.982826,0.110983,0.147432,4.266263,2.421651,1.054799,
+ -0.105515,0.43457,0.894436,4.369751,2.298204,0.921894,
+ -0.982826,0.110983,0.147432,4.266263,2.421651,1.054799,
+ 0.781263,0.307132,0.543414,4.303193,2.347123,1.044413,
+ 0.781263,0.307132,0.543414,4.303193,2.347123,1.044413,
+ -0.982826,0.110983,0.147432,4.266263,2.421651,1.054799,
+ -0.989845,0.092874,-0.10762,4.228523,2.435029,1.098575,
+ 0.781263,0.307132,0.543414,4.303193,2.347123,1.044413,
+ -0.989845,0.092874,-0.10762,4.228523,2.435029,1.098575,
+ 0.781263,0.307132,0.543414,4.245861,2.375093,1.141312,
+ -0.989845,0.092874,-0.10762,4.228523,2.435029,1.098575,
+ 0.3936,0.919282,0.000642,4.17047,2.458441,1.241846,
+ -0.142868,0.456449,0.878205,4.197644,2.394643,1.248646,
+ -0.989845,0.092874,-0.10762,4.228523,2.435029,1.098575,
+ -0.142868,0.456449,0.878205,4.197644,2.394643,1.248646,
+ 0.781263,0.307132,0.543414,4.245861,2.375093,1.141312,
+ 0.589285,0.807925,0.000704,4.218457,2.356834,1.142444,
+ 0.781263,0.307132,0.543414,4.245861,2.375093,1.141312,
+ -0.142868,0.456449,0.878205,4.197644,2.394643,1.248646,
+ 0.589285,0.807925,0.000704,4.218457,2.356834,1.142444,
+ -0.142868,0.456449,0.878205,4.197644,2.394643,1.248646,
+ 0.498956,0.866627,0.000639,4.197516,2.349135,1.253043,
+ 0.685325,0.728237,0.000788,4.275405,2.319905,1.0464,
+ 0.781263,0.307132,0.543414,4.303193,2.347123,1.044413,
+ 0.781263,0.307132,0.543414,4.245861,2.375093,1.141312,
+ 0.685325,0.728237,0.000788,4.275405,2.319905,1.0464,
+ 0.781263,0.307132,0.543414,4.245861,2.375093,1.141312,
+ 0.589285,0.807925,0.000704,4.218457,2.356834,1.142444,
+ 0.685325,0.728237,0.000788,4.275405,2.319905,1.0464,
+ 0.682044,0.731311,0.000573,4.296538,2.243779,0.925459,
+ -0.105515,0.43457,0.894436,4.369751,2.298204,0.921894,
+ 0.685325,0.728237,0.000788,4.275405,2.319905,1.0464,
+ -0.105515,0.43457,0.894436,4.369751,2.298204,0.921894,
+ 0.781263,0.307132,0.543414,4.303193,2.347123,1.044413,
+ 0.682044,0.731311,0.000573,4.296538,2.243779,0.925459,
+ 0.649774,0.760128,0.000367,4.289048,2.172969,0.858693,
+ -0.105515,0.43457,0.894436,4.38099,2.207701,0.839016,
+ 0.682044,0.731311,0.000573,4.296538,2.243779,0.925459,
+ -0.105515,0.43457,0.894436,4.38099,2.207701,0.839016,
+ -0.105515,0.43457,0.894436,4.369751,2.298204,0.921894,
+ 0.589285,0.807925,0.000704,4.218457,2.356834,1.142444,
+ 0.498956,0.866627,0.000639,4.197516,2.349135,1.253043,
+ 0.13983,0.720686,-0.679014,4.199317,2.304652,1.17454,
+ 0.282216,0.811186,-0.512182,4.211815,2.28249,1.039137,
+ 0.685325,0.728237,0.000788,4.275405,2.319905,1.0464,
+ 0.589285,0.807925,0.000704,4.218457,2.356834,1.142444,
+ 0.282216,0.811186,-0.512182,4.211815,2.28249,1.039137,
+ 0.589285,0.807925,0.000704,4.218457,2.356834,1.142444,
+ 0.13983,0.720686,-0.679014,4.199317,2.304652,1.17454,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ 0.353564,0.891052,-0.284638,4.305411,2.059245,0.539407,
+ -0.329371,0.540395,0.774266,4.26732,2.121987,0.61494,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ -0.329371,0.540395,0.774266,4.26732,2.121987,0.61494,
+ -0.329371,0.540395,0.774266,4.354411,2.102985,0.80258,
+ 0.391878,0.915416,0.091898,4.290375,2.112337,0.80019,
+ -0.329371,0.540395,0.774266,4.354411,2.102985,0.80258,
+ -0.105515,0.43457,0.894436,4.38099,2.207701,0.839016,
+ 0.391878,0.915416,0.091898,4.290375,2.112337,0.80019,
+ -0.105515,0.43457,0.894436,4.38099,2.207701,0.839016,
+ 0.649774,0.760128,0.000367,4.289048,2.172969,0.858693,
+ 0.540427,-0.323841,-0.776573,4.222795,2.228178,0.952752,
+ 0.682044,0.731311,0.000573,4.296538,2.243779,0.925459,
+ 0.685325,0.728237,0.000788,4.275405,2.319905,1.0464,
+ 0.540427,-0.323841,-0.776573,4.222795,2.228178,0.952752,
+ 0.685325,0.728237,0.000788,4.275405,2.319905,1.0464,
+ 0.282216,0.811186,-0.512182,4.211815,2.28249,1.039137,
+ 0.540427,-0.323841,-0.776573,4.197609,2.164063,0.857433,
+ 0.649774,0.760128,0.000367,4.289048,2.172969,0.858693,
+ 0.682044,0.731311,0.000573,4.296538,2.243779,0.925459,
+ 0.540427,-0.323841,-0.776573,4.197609,2.164063,0.857433,
+ 0.682044,0.731311,0.000573,4.296538,2.243779,0.925459,
+ 0.540427,-0.323841,-0.776573,4.222795,2.228178,0.952752,
+ 0.384749,-0.683591,-0.620219,4.153175,2.084823,0.799668,
+ 0.391878,0.915416,0.091898,4.290375,2.112337,0.80019,
+ 0.649774,0.760128,0.000367,4.289048,2.172969,0.858693,
+ 0.384749,-0.683591,-0.620219,4.153175,2.084823,0.799668,
+ 0.649774,0.760128,0.000367,4.289048,2.172969,0.858693,
+ 0.540427,-0.323841,-0.776573,4.197609,2.164063,0.857433,
+ 0.384749,-0.683591,-0.620219,4.153175,2.084823,0.799668,
+ 0.540427,-0.323841,-0.776573,4.197609,2.164063,0.857433,
+ 0.292794,-0.691168,-0.660725,4.15109,2.102939,0.889759,
+ 0.292794,-0.691168,-0.660725,4.15109,2.102939,0.889759,
+ 0.540427,-0.323841,-0.776573,4.197609,2.164063,0.857433,
+ 0.540427,-0.323841,-0.776573,4.222795,2.228178,0.952752,
+ 0.292794,-0.691168,-0.660725,4.15109,2.102939,0.889759,
+ 0.540427,-0.323841,-0.776573,4.222795,2.228178,0.952752,
+ 0.404933,-0.417851,-0.813283,4.148865,2.148829,0.986567,
+ 0.404933,-0.417851,-0.813283,4.148865,2.148829,0.986567,
+ 0.540427,-0.323841,-0.776573,4.222795,2.228178,0.952752,
+ 0.282216,0.811186,-0.512182,4.211815,2.28249,1.039137,
+ 0.404933,-0.417851,-0.813283,4.148865,2.148829,0.986567,
+ 0.282216,0.811186,-0.512182,4.211815,2.28249,1.039137,
+ 0.551755,-0.23466,-0.800313,4.154566,2.19048,1.129552,
+ 0.551755,-0.23466,-0.800313,4.154566,2.19048,1.129552,
+ 0.282216,0.811186,-0.512182,4.211815,2.28249,1.039137,
+ 0.13983,0.720686,-0.679014,4.199317,2.304652,1.17454,
+ 0.551755,-0.23466,-0.800313,4.154566,2.19048,1.129552,
+ 0.13983,0.720686,-0.679014,4.199317,2.304652,1.17454,
+ 0.202713,-0.881703,-0.426036,4.152557,2.235471,1.217046,
+ 0.202713,-0.881703,-0.426036,4.152557,2.235471,1.217046,
+ 0.13983,0.720686,-0.679014,4.199317,2.304652,1.17454,
+ 0.22211,0.815123,-0.535015,4.169404,2.306276,1.284031,
+ 0.202713,-0.881703,-0.426036,4.152557,2.235471,1.217046,
+ 0.22211,0.815123,-0.535015,4.169404,2.306276,1.284031,
+ 0.017957,0.744062,-0.667869,4.141759,2.279958,1.29534,
+ 0.384749,-0.683591,-0.620219,4.153175,2.084823,0.799668,
+ 0.292794,-0.691168,-0.660725,4.15109,2.102939,0.889759,
+ 0.149569,-0.88683,-0.437221,4.131949,2.050757,0.921856,
+ 0.149569,-0.88683,-0.437221,4.131949,2.050757,0.921856,
+ 0.292794,-0.691168,-0.660725,4.15109,2.102939,0.889759,
+ 0.404933,-0.417851,-0.813283,4.148865,2.148829,0.986567,
+ 0.149569,-0.88683,-0.437221,4.131949,2.050757,0.921856,
+ 0.404933,-0.417851,-0.813283,4.148865,2.148829,0.986567,
+ 0.551755,-0.23466,-0.800313,4.119993,2.063095,1.049178,
+ 0.551755,-0.23466,-0.800313,4.119993,2.063095,1.049178,
+ 0.404933,-0.417851,-0.813283,4.148865,2.148829,0.986567,
+ 0.551755,-0.23466,-0.800313,4.154566,2.19048,1.129552,
+ 0.551755,-0.23466,-0.800313,4.119993,2.063095,1.049178,
+ 0.551755,-0.23466,-0.800313,4.154566,2.19048,1.129552,
+ 0.171366,-0.691521,-0.701735,4.12616,2.12093,1.17252,
+ 0.171366,-0.691521,-0.701735,4.12616,2.12093,1.17252,
+ 0.551755,-0.23466,-0.800313,4.154566,2.19048,1.129552,
+ 0.202713,-0.881703,-0.426036,4.152557,2.235471,1.217046,
+ 0.171366,-0.691521,-0.701735,4.12616,2.12093,1.17252,
+ 0.202713,-0.881703,-0.426036,4.152557,2.235471,1.217046,
+ 0.256636,-0.859143,-0.442732,4.133175,2.175231,1.259323,
+ 0.202713,-0.881703,-0.426036,4.152557,2.235471,1.217046,
+ 0.017957,0.744062,-0.667869,4.141759,2.279958,1.29534,
+ 0.256636,-0.859143,-0.442732,4.133175,2.175231,1.259323,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ 0.149569,-0.88683,-0.437221,4.131949,2.050757,0.921856,
+ 0.551755,-0.23466,-0.800313,4.119993,2.063095,1.049178,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ 0.551755,-0.23466,-0.800313,4.119993,2.063095,1.049178,
+ 0.648166,0.682063,-0.338631,4.137657,1.944837,1.061024,
+ 0.648166,0.682063,-0.338631,4.137657,1.944837,1.061024,
+ 0.551755,-0.23466,-0.800313,4.119993,2.063095,1.049178,
+ 0.171366,-0.691521,-0.701735,4.12616,2.12093,1.17252,
+ 0.648166,0.682063,-0.338631,4.137657,1.944837,1.061024,
+ 0.171366,-0.691521,-0.701735,4.12616,2.12093,1.17252,
+ 0.61118,0.658001,-0.439878,4.143794,2.01372,1.201386,
+ 0.61118,0.658001,-0.439878,4.143794,2.01372,1.201386,
+ 0.171366,-0.691521,-0.701735,4.12616,2.12093,1.17252,
+ 0.256636,-0.859143,-0.442732,4.133175,2.175231,1.259323,
+ 0.61118,0.658001,-0.439878,4.143794,2.01372,1.201386,
+ 0.256636,-0.859143,-0.442732,4.133175,2.175231,1.259323,
+ 0.503641,0.551737,-0.66478,4.12329,2.086854,1.295135,
+ 0.503641,0.551737,-0.66478,4.12329,2.086854,1.295135,
+ 0.256636,-0.859143,-0.442732,4.133175,2.175231,1.259323,
+ 0.017957,0.744062,-0.667869,4.141759,2.279958,1.29534,
+ 0.503641,0.551737,-0.66478,4.12329,2.086854,1.295135,
+ 0.017957,0.744062,-0.667869,4.141759,2.279958,1.29534,
+ 0.517427,0.766113,-0.381235,4.11268,2.195089,1.366908,
+ 0.517427,0.766113,-0.381235,4.11268,2.195089,1.366908,
+ 0.017957,0.744062,-0.667869,4.141759,2.279958,1.29534,
+ 0.229942,0.797697,-0.5575,4.140097,2.295949,1.367196,
+ 0.517427,0.766113,-0.381235,4.11268,2.195089,1.366908,
+ 0.229942,0.797697,-0.5575,4.140097,2.295949,1.367196,
+ 0.41344,0.676483,-0.609457,4.111934,2.234814,1.399949,
+ 0.229942,0.797697,-0.5575,4.140097,2.295949,1.367196,
+ 0.63166,0.704336,-0.323908,4.129926,2.30877,1.402259,
+ 0.41344,0.676483,-0.609457,4.111934,2.234814,1.399949,
+ 0.154813,-0.698608,-0.698555,4.232341,1.903079,0.534362,
+ -0.536419,0.710997,0.454685,4.304562,1.906537,0.572242,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ -0.557881,0.828586,-0.047048,4.303615,1.799914,0.610388,
+ -0.536419,0.710997,0.454685,4.304562,1.906537,0.572242,
+ 0.154813,-0.698608,-0.698555,4.232341,1.903079,0.534362,
+ -0.557881,0.828586,-0.047048,4.303615,1.799914,0.610388,
+ 0.154813,-0.698608,-0.698555,4.232341,1.903079,0.534362,
+ -0.678336,0.658323,0.326299,4.240116,1.770049,0.583946,
+ -0.277696,-0.435918,0.856073,4.377095,1.871713,0.595743,
+ 0.353564,0.891052,-0.284638,4.305411,2.059245,0.539407,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ -0.277696,-0.435918,0.856073,4.377095,1.871713,0.595743,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ -0.536419,0.710997,0.454685,4.304562,1.906537,0.572242,
+ 0.003817,-0.976864,0.213829,4.43261,1.878873,0.577888,
+ 0.125846,-0.929941,0.345503,4.43302,2.024714,0.563794,
+ 0.353564,0.891052,-0.284638,4.305411,2.059245,0.539407,
+ 0.003817,-0.976864,0.213829,4.43261,1.878873,0.577888,
+ 0.353564,0.891052,-0.284638,4.305411,2.059245,0.539407,
+ -0.277696,-0.435918,0.856073,4.377095,1.871713,0.595743,
+ -0.678336,0.658323,0.326299,4.240116,1.770049,0.583946,
+ 0.154813,-0.698608,-0.698555,4.232341,1.903079,0.534362,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ -0.678336,0.658323,0.326299,4.240116,1.770049,0.583946,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ -0.641133,0.599375,0.479267,4.148883,1.759918,0.573765,
+ 0.391878,0.915416,0.091898,4.281287,2.055751,0.787,
+ -0.329371,0.540395,0.774266,4.354411,2.102985,0.80258,
+ 0.391878,0.915416,0.091898,4.290375,2.112337,0.80019,
+ 0.391878,0.915416,0.091898,4.281287,2.055751,0.787,
+ -0.121207,0.426739,0.896216,4.354941,2.064161,0.778851,
+ -0.329371,0.540395,0.774266,4.354411,2.102985,0.80258,
+ -0.121207,0.426739,0.896216,4.245225,2.008532,0.772641,
+ -0.121207,0.426739,0.896216,4.354941,2.064161,0.778851,
+ 0.391878,0.915416,0.091898,4.281287,2.055751,0.787,
+ 0.391878,0.915416,0.091898,4.281287,2.055751,0.787,
+ 0.391878,0.915416,0.091898,4.290375,2.112337,0.80019,
+ 0.384749,-0.683591,-0.620219,4.153175,2.084823,0.799668,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ 0.391878,0.915416,0.091898,4.281287,2.055751,0.787,
+ 0.384749,-0.683591,-0.620219,4.153175,2.084823,0.799668,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ 0.384749,-0.683591,-0.620219,4.153175,2.084823,0.799668,
+ 0.149569,-0.88683,-0.437221,4.131949,2.050757,0.921856,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ -0.329371,0.540395,0.774266,4.354411,2.102985,0.80258,
+ -0.121207,0.426739,0.896216,4.354941,2.064161,0.778851,
+ -0.121207,0.426739,0.896216,4.245225,2.008532,0.772641,
+ 0.154813,-0.698608,-0.698555,4.232341,1.903079,0.534362,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ -0.121207,0.426739,0.896216,4.245225,2.008532,0.772641,
+ 0.259533,0.686122,-0.679617,4.278045,1.97666,0.537351,
+ -0.121207,0.426739,0.896216,4.354941,2.064161,0.778851,
+ -0.121207,0.426739,0.896216,4.245225,2.008532,0.772641,
+ 0.391878,0.915416,0.091898,4.281287,2.055751,0.787,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ 0.969409,0.243854,0.027951,5.959462,1.157227,0.187097,
+ 0.000755,0.939586,-0.342312,5.950684,1.082725,0.175648,
+ 0.461485,0.788926,-0.405742,5.961686,1.110978,0.090324,
+ 0.969409,0.243854,0.027951,5.959462,1.157227,0.187097,
+ 0.461485,0.788926,-0.405742,5.961686,1.110978,0.090324,
+ 0.04154,0.947538,-0.316933,5.998088,1.231874,0.107334,
+ 0.104327,0.725166,-0.680625,5.755282,1.004149,0.307505,
+ 0.288171,0.239223,-0.927216,5.763952,1.062109,0.338641,
+ -0.163152,0.699849,-0.695408,5.681086,1.054964,0.35586,
+ 0.104327,0.725166,-0.680625,5.755282,1.004149,0.307505,
+ -0.163152,0.699849,-0.695408,5.681086,1.054964,0.35586,
+ -0.011269,-0.268801,-0.96313,5.672385,1.007694,0.341778,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ -0.434729,0.079706,0.897027,5.730427,1.435668,0.209848,
+ -0.419631,0.061765,0.905591,5.685194,1.452202,0.188749,
+ -0.497134,0.140474,0.856227,5.710154,1.360653,0.290072,
+ -0.419631,0.061765,0.905591,5.685194,1.452202,0.188749,
+ -0.400711,0.089186,0.911853,5.647186,1.394606,0.257833,
+ -0.023775,-0.598435,0.800818,4.991713,1.163096,0.504149,
+ -0.77316,0.344902,0.532228,5.011084,1.06677,0.458562,
+ 0.157921,-0.851177,-0.500559,5.241466,1.040469,0.383965,
+ -0.023775,-0.598435,0.800818,4.991713,1.163096,0.504149,
+ 0.157921,-0.851177,-0.500559,5.241466,1.040469,0.383965,
+ 0.009824,-0.644035,0.764933,5.250485,1.123029,0.385234,
+ 0.123418,-0.784469,0.607763,4.641547,1.285422,0.622034,
+ 0.050019,-0.552867,0.831767,4.522247,1.398278,0.644892,
+ -0.395804,0.901672,0.174144,4.449011,1.260929,0.647431,
+ 0.123418,-0.784469,0.607763,4.641547,1.285422,0.622034,
+ -0.395804,0.901672,0.174144,4.449011,1.260929,0.647431,
+ -0.911194,0.285551,0.296961,4.567896,1.149805,0.642484,
+ 0.901575,-0.270544,0.337593,4.742358,1.882232,0.62165,
+ 0.689769,-0.265624,0.673544,4.728963,2.036146,0.614307,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.901575,-0.270544,0.337593,4.742358,1.882232,0.62165,
+ 0.190357,-0.604308,0.773677,4.688114,2.046378,0.604518,
+ 0.152967,-0.640193,0.752831,4.697024,1.862575,0.604048,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.347794,0.132396,0.928176,4.824747,1.946835,0.626358,
+ 0.36359,0.089346,0.927264,4.861611,2.001639,0.621913,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.36359,0.089346,0.927264,4.861611,2.001639,0.621913,
+ 0.195545,0.103956,0.975169,4.842883,2.021333,0.638025,
+ 0.168187,0.300291,0.938903,4.852582,1.816115,0.603105,
+ 0.272203,0.043076,0.961275,4.861618,1.854067,0.618095,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.282492,0.026081,0.958915,4.973133,1.992779,0.533466,
+ 0.210495,0.185422,0.959849,4.991746,2.009819,0.523206,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.282492,0.026081,0.958915,4.973133,1.992779,0.533466,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.361081,-0.056526,0.93082,4.935561,2.016016,0.5857,
+ 0.337014,-0.030018,0.941021,4.760921,1.881357,0.61312,
+ 0.067357,0.280764,0.95741,4.788476,2.028047,0.608619,
+ -0.026366,0.234118,0.971851,4.751519,2.039658,0.634134,
+ 0.289202,0.572304,0.767353,4.991709,1.844295,0.520761,
+ 0.154687,0.171026,0.973048,5.01143,1.875569,0.463205,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.289202,0.572304,0.767353,4.991709,1.844295,0.520761,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.362705,0.428702,0.827442,4.982364,1.8733,0.53619,
+ 0.380651,0.443224,0.811577,5.001903,1.914398,0.486724,
+ 0.154687,0.171026,0.973048,5.01143,1.875569,0.463205,
+ 0.210495,0.185422,0.959849,4.991746,2.009819,0.523206,
+ 0.196849,0.14562,0.969559,4.93588,2.051665,0.572853,
+ 0.054287,0.055115,0.997003,4.918466,2.084725,0.532713,
+ 0.012421,0.392537,0.919652,4.881574,2.094571,0.539949,
+ 0.399187,-0.679804,0.615237,4.74405,2.179337,0.556057,
+ 0.428199,-0.104479,0.897624,4.837331,2.235678,0.479332,
+ 0.244568,-0.044721,0.9686,4.739441,2.299169,0.369987,
+ 0.399187,-0.679804,0.615237,4.74405,2.179337,0.556057,
+ 0.244568,-0.044721,0.9686,4.739441,2.299169,0.369987,
+ 0.223925,-0.919003,0.324486,4.636582,2.263383,0.471997,
+ 0.550963,0.62763,0.550018,5.075994,1.900999,0.443793,
+ 0.72603,0.248277,0.641279,5.095375,1.961238,0.401516,
+ 0.670109,-0.356989,0.650778,5.067202,2.027704,0.422291,
+ 0.550963,0.62763,0.550018,5.075994,1.900999,0.443793,
+ 0.670109,-0.356989,0.650778,5.067202,2.027704,0.422291,
+ 0.615065,0.769234,0.173133,5.057495,2.002751,0.451974,
+ 0.771387,0.339113,0.538483,4.101726,2.312318,1.438163,
+ -0.570564,0.630958,-0.525689,4.046673,2.341349,1.45253,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ 0.41344,0.676483,-0.609457,4.111934,2.234814,1.399949,
+ 0.63166,0.704336,-0.323908,4.129926,2.30877,1.402259,
+ 0.771387,0.339113,0.538483,4.101726,2.312318,1.438163,
+ 0.41344,0.676483,-0.609457,4.111934,2.234814,1.399949,
+ 0.771387,0.339113,0.538483,4.101726,2.312318,1.438163,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ -0.121207,0.426739,-0.896216,4.150297,1.820575,0.917046,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ -0.121207,0.426739,0.896216,4.245225,2.008532,0.772641,
+ -0.121207,0.426739,-0.896216,4.150297,1.820575,0.917046,
+ -0.121207,0.426739,0.896216,4.245225,2.008532,0.772641,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ -0.121207,0.426739,-0.896216,4.127903,1.828359,1.090512,
+ -0.121207,0.426739,-0.896216,4.150297,1.820575,0.917046,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ -0.121207,0.426739,-0.896216,4.127903,1.828359,1.090512,
+ 0.600629,0.618513,-0.506642,4.159229,1.949902,0.923197,
+ 0.648166,0.682063,-0.338631,4.137657,1.944837,1.061024,
+ 0.392037,0.915475,-0.09062,4.152166,1.868775,1.225002,
+ -0.121207,0.426739,-0.896216,4.127903,1.828359,1.090512,
+ 0.648166,0.682063,-0.338631,4.137657,1.944837,1.061024,
+ 0.392037,0.915475,-0.09062,4.152166,1.868775,1.225002,
+ 0.648166,0.682063,-0.338631,4.137657,1.944837,1.061024,
+ 0.61118,0.658001,-0.439878,4.143794,2.01372,1.201386,
+ 0.392037,0.915475,-0.09062,4.103303,2.038565,1.363737,
+ 0.392037,0.915475,-0.09062,4.152166,1.868775,1.225002,
+ 0.61118,0.658001,-0.439878,4.143794,2.01372,1.201386,
+ 0.392037,0.915475,-0.09062,4.103303,2.038565,1.363737,
+ 0.61118,0.658001,-0.439878,4.143794,2.01372,1.201386,
+ 0.503641,0.551737,-0.66478,4.12329,2.086854,1.295135,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ 0.392037,0.915475,-0.09062,4.103303,2.038565,1.363737,
+ 0.503641,0.551737,-0.66478,4.12329,2.086854,1.295135,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ 0.503641,0.551737,-0.66478,4.12329,2.086854,1.295135,
+ 0.517427,0.766113,-0.381235,4.11268,2.195089,1.366908,
+ 0.908355,-0.087284,0.408989,4.082988,2.175805,1.45093,
+ 0.517427,0.766113,-0.381235,4.11268,2.195089,1.366908,
+ 0.41344,0.676483,-0.609457,4.111934,2.234814,1.399949,
+ -0.760994,0.140163,0.633437,4.076852,1.746601,0.527436,
+ -0.641133,0.599375,0.479267,4.148883,1.759918,0.573765,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ -0.760994,0.140163,0.633437,4.076852,1.746601,0.527436,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ -0.142868,0.456449,-0.878204,4.059885,1.86046,0.470087,
+ 0.000801,-1,-0.000539,4.380854,0.704574,-0.00013,
+ -0.659696,0.567802,0.492343,4.359048,0.700414,0.166651,
+ 0.804239,-0.153549,0.574128,4.120842,0.627141,0.185461,
+ 0.000801,-1,-0.000539,4.380854,0.704574,-0.00013,
+ 0.804239,-0.153549,0.574128,4.120842,0.627141,0.185461,
+ -0.926486,-0.356041,-0.121897,4.126565,0.642027,0,
+ -0.760994,0.140163,0.633437,4.076852,1.746601,0.527436,
+ -0.142868,0.456449,-0.878204,4.059885,1.86046,0.470087,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ -0.560402,0.735791,0.380211,4.067576,1.572668,0.534997,
+ -0.760994,0.140163,0.633437,4.076852,1.746601,0.527436,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ -0.560402,0.735791,0.380211,4.067576,1.572668,0.534997,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ 0.696162,0.333274,0.635835,3.886058,1.550141,0.50483,
+ -0.610894,0.790229,-0.048447,4.085564,1.288885,0.544406,
+ -0.560402,0.735791,0.380211,4.067576,1.572668,0.534997,
+ 0.696162,0.333274,0.635835,3.886058,1.550141,0.50483,
+ -0.610894,0.790229,-0.048447,4.085564,1.288885,0.544406,
+ 0.696162,0.333274,0.635835,3.886058,1.550141,0.50483,
+ 0.763734,0.228435,0.603761,3.98851,1.297806,0.539537,
+ -0.590367,0.807126,-0.003753,4.141189,1.008775,0.499342,
+ -0.610894,0.790229,-0.048447,4.085564,1.288885,0.544406,
+ 0.763734,0.228435,0.603761,3.98851,1.297806,0.539537,
+ -0.590367,0.807126,-0.003753,4.141189,1.008775,0.499342,
+ 0.763734,0.228435,0.603761,3.98851,1.297806,0.539537,
+ 0.769758,0.095155,0.631204,4.041657,1.039756,0.496922,
+ 0.206279,0.744917,0.634467,4.216374,0.852328,0.405873,
+ -0.590367,0.807126,-0.003753,4.141189,1.008775,0.499342,
+ 0.769758,0.095155,0.631204,4.041657,1.039756,0.496922,
+ 0.206279,0.744917,0.634467,4.216374,0.852328,0.405873,
+ 0.769758,0.095155,0.631204,4.041657,1.039756,0.496922,
+ 0.771881,-0.100912,0.627707,4.068249,0.798926,0.400813,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ 0.206279,0.744917,0.634467,4.216374,0.852328,0.405873,
+ 0.771881,-0.100912,0.627707,4.068249,0.798926,0.400813,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ 0.771881,-0.100912,0.627707,4.068249,0.798926,0.400813,
+ 0.788801,-0.199379,0.581412,4.105198,0.672581,0.300001,
+ -0.659696,0.567802,0.492343,4.359048,0.700414,0.166651,
+ 0.11638,0.680311,0.723624,4.319799,0.731007,0.291212,
+ 0.788801,-0.199379,0.581412,4.105198,0.672581,0.300001,
+ -0.659696,0.567802,0.492343,4.359048,0.700414,0.166651,
+ 0.788801,-0.199379,0.581412,4.105198,0.672581,0.300001,
+ 0.804239,-0.153549,0.574128,4.120842,0.627141,0.185461,
+ 0.241303,0.584582,0.77462,3.758215,2.206683,0.323051,
+ -0.745507,-0.065161,-0.663305,3.870548,2.292106,0.368964,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ 0.241303,0.584582,0.77462,3.758215,2.206683,0.323051,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ 0.072694,0.752739,0.654294,3.745669,2.266001,0.24193,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ 0.622247,0.782821,-0.000247,3.787342,2.396113,-0.001159,
+ 0.431966,-0.771434,-0.46722,3.71636,2.343387,0,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ 0.431966,-0.771434,-0.46722,3.71636,2.343387,0,
+ -0.071584,0.92252,0.379253,3.727093,2.308406,0.150049,
+ -0.613241,-0.041068,-0.788827,3.828001,2.35254,0.233341,
+ -0.071584,0.92252,0.379253,3.727093,2.308406,0.150049,
+ 0.072694,0.752739,0.654294,3.745669,2.266001,0.24193,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ -0.142868,0.456449,-0.878204,4.059885,1.86046,0.470087,
+ -0.570559,0.630963,0.525688,3.922437,1.972461,0.483563,
+ 0.462789,0.48004,0.745243,3.814876,1.968416,0.443,
+ 0.539114,0.412574,0.734261,3.881998,1.764428,0.476337,
+ -0.570559,0.630963,0.525688,3.922437,1.972461,0.483563,
+ 0.462789,0.48004,0.745243,3.814876,1.968416,0.443,
+ -0.570559,0.630963,0.525688,3.922437,1.972461,0.483563,
+ -0.453311,-0.031481,-0.890797,3.823349,2.141733,0.428356,
+ 0.241303,0.584582,0.77462,3.758215,2.206683,0.323051,
+ 0.462789,0.48004,0.745243,3.814876,1.968416,0.443,
+ -0.453311,-0.031481,-0.890797,3.823349,2.141733,0.428356,
+ 0.241303,0.584582,0.77462,3.758215,2.206683,0.323051,
+ -0.453311,-0.031481,-0.890797,3.823349,2.141733,0.428356,
+ -0.745507,-0.065161,-0.663305,3.870548,2.292106,0.368964,
+ -0.142868,0.456449,-0.878204,4.094112,1.889281,0.578435,
+ 0.154813,-0.698608,-0.698555,4.232341,1.903079,0.534362,
+ -0.121207,0.426739,0.896216,4.245225,2.008532,0.772641,
+ -0.020456,0.943466,0.330837,1.700797,-2.794792,0.82425,
+ 0.21689,-0.976039,-0.017487,1.718315,-2.775468,0.921796,
+ 0.383337,-0.601981,-0.700479,1.678986,-2.513137,0.891745,
+ -0.020456,0.943466,0.330837,1.700797,-2.794792,0.82425,
+ 0.383337,-0.601981,-0.700479,1.678986,-2.513137,0.891745,
+ 0.717573,0.343682,-0.605782,1.655948,-2.520927,0.844269,
+ -0.020456,0.943466,0.330837,1.700797,-2.794792,0.82425,
+ -0.065687,-0.249194,-0.966223,1.705953,-3.006628,0.83263,
+ -0.424393,0.057227,0.903668,1.734568,-2.965876,0.986396,
+ -0.020456,0.943466,0.330837,1.700797,-2.794792,0.82425,
+ -0.424393,0.057227,0.903668,1.734568,-2.965876,0.986396,
+ 0.21689,-0.976039,-0.017487,1.718315,-2.775468,0.921796,
+ -0.329905,-0.225598,0.916661,-0.972514,-1.822778,0.372649,
+ -0.055857,0.145868,0.987726,-0.977375,-1.793126,0.498747,
+ -0.182029,-0.190207,0.964721,-1.108758,-1.770749,0.473033,
+ -0.329905,-0.225598,0.916661,-0.972514,-1.822778,0.372649,
+ -0.182029,-0.190207,0.964721,-1.108758,-1.770749,0.473033,
+ -0.571338,-0.120921,0.811758,-1.305099,-1.70846,0.48423,
+ -0.571338,-0.120921,0.811758,-1.305099,-1.70846,0.48423,
+ 0.714393,-0.109998,0.691045,-1.266738,-1.691944,0.557922,
+ -0.587909,-0.233166,0.774594,-1.397474,-1.693815,0.570541,
+ -0.571338,-0.120921,0.811758,-1.305099,-1.70846,0.48423,
+ -0.587909,-0.233166,0.774594,-1.397474,-1.693815,0.570541,
+ 0.023392,-0.110333,0.993619,-1.406693,-1.697325,0.450399,
+ -0.468954,-0.586277,0.660577,-3.35851,1.810253,0.380095,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ 0.431712,0.22912,0.872427,-3.413372,1.871604,0.142309,
+ 0.588787,-0.248294,0.769207,-3.380836,1.819691,0.123273,
+ 0.072535,0.997366,0,-3.392806,1.769365,0,
+ 0.588787,-0.248294,0.769207,-3.380836,1.819691,0.123273,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085,
+ -0.142868,0.456449,0.878205,4.148927,2.388726,1.376879,
+ 0.771387,0.339113,0.538483,4.101726,2.312318,1.438163,
+ 0.63166,0.704336,-0.323908,4.129926,2.30877,1.402259,
+ -0.142868,0.456449,0.878205,4.148927,2.388726,1.376879,
+ 0.63166,0.704336,-0.323908,4.129926,2.30877,1.402259,
+ 0.459043,0.888414,0.000701,4.149438,2.34055,1.353693,
+ -0.037581,-0.042039,-0.998409,-2.964215,-1.978727,0.776572,
+ -0.377491,-0.043727,0.92498,-3.066022,-1.953125,0.719516,
+ 0.713401,0.39471,-0.579019,-3.008323,-1.759271,0.655672,
+ -0.037581,-0.042039,-0.998409,-2.964215,-1.978727,0.776572,
+ 0.713401,0.39471,-0.579019,-3.008323,-1.759271,0.655672,
+ -0.732521,-0.474279,0.488336,-2.811581,-1.79821,0.712737,
+ -0.377491,-0.043727,0.92498,-3.066022,-1.953125,0.719516,
+ 0.684558,0.361153,-0.633205,-3.211005,-1.850398,0.700723,
+ 0.843062,-0.10517,0.527433,-3.139394,-1.687482,0.638546,
+ -0.377491,-0.043727,0.92498,-3.066022,-1.953125,0.719516,
+ 0.843062,-0.10517,0.527433,-3.139394,-1.687482,0.638546,
+ 0.713401,0.39471,-0.579019,-3.008323,-1.759271,0.655672,
+ 0.588787,-0.248294,0.769207,-3.380836,1.819691,0.123273,
+ 0.490646,-0.178294,0.852923,-3.357009,1.781675,0.071216,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085,
+ 0.389161,-0.829175,-0.401277,-3.357009,1.781675,-0.071216,
+ 0.255239,-0.528231,-0.80983,-3.380836,1.819691,-0.123273,
+ 0.411442,-0.911436,-0.000099,-3.348274,1.767738,-0.000085
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,13050,data,NULL};
+const struct gllist *cow_hide=&frame;
diff --git a/hacks/glx/cow_hoofs.c b/hacks/glx/cow_hoofs.c
new file mode 100644
index 0000000..b66ef88
--- /dev/null
+++ b/hacks/glx/cow_hoofs.c
@@ -0,0 +1,1037 @@
+#include "gllist.h"
+static const float data[]={
+ 0.013288,-0.297478,-0.954636,1.970051,-3.141862,-1.065178,
+ -0.228294,-0.186048,-0.955651,2.110033,-3.148257,-1.068816,
+ -0.562282,-0.328888,-0.75873,2.14888,-3.221616,-1.076203,
+ 0.013288,-0.297478,-0.954636,1.970051,-3.141862,-1.065178,
+ -0.562282,-0.328888,-0.75873,2.14888,-3.221616,-1.076203,
+ 0.157806,0.230904,-0.960094,2.031262,-3.256709,-1.111122,
+ 0.157806,0.230904,-0.960094,2.031262,-3.256709,-1.111122,
+ -0.562282,-0.328888,-0.75873,2.14888,-3.221616,-1.076203,
+ -0.144755,0.439659,-0.886423,2.247981,-3.342804,-1.127459,
+ 0.157806,0.230904,-0.960094,2.031262,-3.256709,-1.111122,
+ -0.144755,0.439659,-0.886423,2.247981,-3.342804,-1.127459,
+ 0.339699,0.626415,-0.701576,2.138771,-3.397683,-1.214726,
+ 0.339699,0.626415,-0.701576,2.138771,-3.397683,-1.214726,
+ -0.144755,0.439659,-0.886423,2.247981,-3.342804,-1.127459,
+ 0.457854,0.537523,-0.708123,2.343303,-3.507846,-1.195262,
+ 0.339699,0.626415,-0.701576,2.138771,-3.397683,-1.214726,
+ 0.457854,0.537523,-0.708123,2.343303,-3.507846,-1.195262,
+ -0.081045,0.409121,-0.908874,2.254361,-3.550931,-1.235118,
+ -0.081045,0.409121,-0.908874,2.254361,-3.550931,-1.235118,
+ 0.444124,0.617475,-0.649214,2.025468,-3.556842,-1.204841,
+ 0.010538,0.399391,-0.91672,1.981186,-3.441282,-1.180532,
+ -0.081045,0.409121,-0.908874,2.254361,-3.550931,-1.235118,
+ 0.010538,0.399391,-0.91672,1.981186,-3.441282,-1.180532,
+ 0.339699,0.626415,-0.701576,2.138771,-3.397683,-1.214726,
+ 0.339699,0.626415,-0.701576,2.138771,-3.397683,-1.214726,
+ 0.010538,0.399391,-0.91672,1.981186,-3.441282,-1.180532,
+ 0.636282,0.100893,-0.764831,1.926176,-3.28888,-1.093746,
+ 0.339699,0.626415,-0.701576,2.138771,-3.397683,-1.214726,
+ 0.636282,0.100893,-0.764831,1.926176,-3.28888,-1.093746,
+ 0.157806,0.230904,-0.960094,2.031262,-3.256709,-1.111122,
+ 0.157806,0.230904,-0.960094,2.031262,-3.256709,-1.111122,
+ 0.636282,0.100893,-0.764831,1.926176,-3.28888,-1.093746,
+ 0.213417,-0.547723,-0.808983,1.886443,-3.191742,-1.047318,
+ 0.157806,0.230904,-0.960094,2.031262,-3.256709,-1.111122,
+ 0.213417,-0.547723,-0.808983,1.886443,-3.191742,-1.047318,
+ 0.013288,-0.297478,-0.954636,1.970051,-3.141862,-1.065178,
+ -0.430523,-0.648445,-0.627828,2.281229,-3.33825,-1.043475,
+ -0.144755,0.439659,-0.886423,2.247981,-3.342804,-1.127459,
+ -0.562282,-0.328888,-0.75873,2.14888,-3.221616,-1.076203,
+ -0.430523,-0.648445,-0.627828,2.281229,-3.33825,-1.043475,
+ -0.562282,-0.328888,-0.75873,2.14888,-3.221616,-1.076203,
+ -0.492627,0.113675,-0.862784,2.201939,-3.226457,-0.996503,
+ -0.492627,0.113675,-0.862784,2.201939,-3.226457,-0.996503,
+ -0.562282,-0.328888,-0.75873,2.14888,-3.221616,-1.076203,
+ -0.228294,-0.186048,-0.955651,2.110033,-3.148257,-1.068816,
+ -0.492627,0.113675,-0.862784,2.201939,-3.226457,-0.996503,
+ -0.228294,-0.186048,-0.955651,2.110033,-3.148257,-1.068816,
+ -0.495591,0.225654,-0.838731,2.170039,-3.134504,-0.978866,
+ -0.495591,0.225654,-0.838731,2.170039,-3.134504,-0.978866,
+ -0.541077,0.245809,-0.804247,2.091539,-3.032437,-0.947029,
+ 0.672893,0.661099,-0.331908,2.113587,-3.011851,-0.851648,
+ -0.495591,0.225654,-0.838731,2.170039,-3.134504,-0.978866,
+ 0.672893,0.661099,-0.331908,2.113587,-3.011851,-0.851648,
+ 0.768072,0.514957,-0.380637,2.217369,-3.156093,-0.888927,
+ 0.626232,0.565165,-0.53705,1.841888,-3.246003,-1.014774,
+ 0.213417,-0.547723,-0.808983,1.886443,-3.191742,-1.047318,
+ 0.636282,0.100893,-0.764831,1.926176,-3.28888,-1.093746,
+ 0.626232,0.565165,-0.53705,1.841888,-3.246003,-1.014774,
+ 0.636282,0.100893,-0.764831,1.926176,-3.28888,-1.093746,
+ 0.52783,0.437826,-0.727807,1.865135,-3.353827,-1.054981,
+ 0.862528,0.499882,0.078511,1.919391,-3.487078,-1.110869,
+ 0.52783,0.437826,-0.727807,1.865135,-3.353827,-1.054981,
+ 0.636282,0.100893,-0.764831,1.926176,-3.28888,-1.093746,
+ 0.862528,0.499882,0.078511,1.919391,-3.487078,-1.110869,
+ 0.636282,0.100893,-0.764831,1.926176,-3.28888,-1.093746,
+ 0.010538,0.399391,-0.91672,1.981186,-3.441282,-1.180532,
+ 0.010538,0.399391,-0.91672,1.981186,-3.441282,-1.180532,
+ 0.444124,0.617475,-0.649214,2.025468,-3.556842,-1.204841,
+ 0.862528,0.499882,0.078511,1.919391,-3.487078,-1.110869,
+ 0.872426,0.488735,0.003222,1.980621,-3.043895,-0.964237,
+ -0.495591,0.225654,-0.838731,2.170039,-3.134504,-0.978866,
+ -0.228294,-0.186048,-0.955651,2.110033,-3.148257,-1.068816,
+ -0.783521,-0.393963,-0.480508,1.806407,-3.173343,-0.834455,
+ 0.926951,0.366239,0.081429,1.811797,-3.135641,-0.933096,
+ 0.626232,0.565165,-0.53705,1.841888,-3.246003,-1.014774,
+ -0.783521,-0.393963,-0.480508,1.806407,-3.173343,-0.834455,
+ 0.626232,0.565165,-0.53705,1.841888,-3.246003,-1.014774,
+ 0.215809,0.484483,-0.847763,1.83279,-3.296508,-0.865078,
+ -0.997638,0.009858,0.067986,1.933899,-3.546253,-0.912438,
+ 0.862528,0.499882,0.078511,1.919391,-3.487078,-1.110869,
+ 0.444124,0.617475,-0.649214,2.025468,-3.556842,-1.204841,
+ -0.997638,0.009858,0.067986,1.933899,-3.546253,-0.912438,
+ 0.444124,0.617475,-0.649214,2.025468,-3.556842,-1.204841,
+ -0.987313,0.097592,0.125253,2.078928,-3.584991,-0.917088,
+ 0.215809,0.484483,-0.847763,1.83279,-3.296508,-0.865078,
+ 0.626232,0.565165,-0.53705,1.841888,-3.246003,-1.014774,
+ 0.52783,0.437826,-0.727807,1.865135,-3.353827,-1.054981,
+ 0.215809,0.484483,-0.847763,1.83279,-3.296508,-0.865078,
+ 0.52783,0.437826,-0.727807,1.865135,-3.353827,-1.054981,
+ -0.955753,-0.169718,0.240275,1.839523,-3.405292,-0.883488,
+ -0.955753,-0.169718,0.240275,1.839523,-3.405292,-0.883488,
+ 0.52783,0.437826,-0.727807,1.865135,-3.353827,-1.054981,
+ 0.862528,0.499882,0.078511,1.919391,-3.487078,-1.110869,
+ -0.955753,-0.169718,0.240275,1.839523,-3.405292,-0.883488,
+ 0.862528,0.499882,0.078511,1.919391,-3.487078,-1.110869,
+ -0.997638,0.009858,0.067986,1.933899,-3.546253,-0.912438,
+ 0.215809,0.484483,-0.847763,1.83279,-3.296508,-0.865078,
+ -0.150944,-0.987886,0.036011,1.92973,-3.298418,-0.689538,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ 0.215809,0.484483,-0.847763,1.83279,-3.296508,-0.865078,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ -0.783521,-0.393963,-0.480508,1.806407,-3.173343,-0.834455,
+ 0.215809,0.484483,-0.847763,1.83279,-3.296508,-0.865078,
+ -0.955753,-0.169718,0.240275,1.839523,-3.405292,-0.883488,
+ -0.937976,-0.320543,0.132115,1.941325,-3.434803,-0.701314,
+ 0.215809,0.484483,-0.847763,1.83279,-3.296508,-0.865078,
+ -0.937976,-0.320543,0.132115,1.941325,-3.434803,-0.701314,
+ -0.150944,-0.987886,0.036011,1.92973,-3.298418,-0.689538,
+ -0.937976,-0.320543,0.132115,1.941325,-3.434803,-0.701314,
+ -0.955753,-0.169718,0.240275,1.839523,-3.405292,-0.883488,
+ -0.997638,0.009858,0.067986,1.933899,-3.546253,-0.912438,
+ -0.937976,-0.320543,0.132115,1.941325,-3.434803,-0.701314,
+ -0.997638,0.009858,0.067986,1.933899,-3.546253,-0.912438,
+ -0.4909,0.016111,0.871067,2.002745,-3.52342,-0.688103,
+ -0.4909,0.016111,0.871067,2.002745,-3.52342,-0.688103,
+ -0.997638,0.009858,0.067986,1.933899,-3.546253,-0.912438,
+ -0.987313,0.097592,0.125253,2.078928,-3.584991,-0.917088,
+ -0.4909,0.016111,0.871067,2.002745,-3.52342,-0.688103,
+ -0.987313,0.097592,0.125253,2.078928,-3.584991,-0.917088,
+ -0.184432,-0.109597,0.976716,2.126553,-3.549679,-0.701005,
+ -0.184432,-0.109597,0.976716,2.126553,-3.549679,-0.701005,
+ -0.987313,0.097592,0.125253,2.078928,-3.584991,-0.917088,
+ -0.554502,-0.046423,0.830886,2.197935,-3.583948,-0.936437,
+ -0.184432,-0.109597,0.976716,2.126553,-3.549679,-0.701005,
+ -0.554502,-0.046423,0.830886,2.197935,-3.583948,-0.936437,
+ -0.554151,-0.205896,0.806551,2.244147,-3.545557,-0.732888,
+ -0.069765,-0.126006,0.989573,1.898573,-3.068274,-0.994338,
+ 0.872426,0.488735,0.003222,1.980621,-3.043895,-0.964237,
+ -0.228294,-0.186048,-0.955651,2.110033,-3.148257,-1.068816,
+ -0.069765,-0.126006,0.989573,1.898573,-3.068274,-0.994338,
+ -0.228294,-0.186048,-0.955651,2.110033,-3.148257,-1.068816,
+ 0.013288,-0.297478,-0.954636,1.970051,-3.141862,-1.065178,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ -0.069765,-0.126006,0.989573,1.898573,-3.068274,-0.994338,
+ 0.013288,-0.297478,-0.954636,1.970051,-3.141862,-1.065178,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ 0.013288,-0.297478,-0.954636,1.970051,-3.141862,-1.065178,
+ 0.213417,-0.547723,-0.808983,1.886443,-3.191742,-1.047318,
+ 0.926951,0.366239,0.081429,1.811797,-3.135641,-0.933096,
+ 0.383337,-0.601981,0.700479,1.855134,-3.083228,-0.986129,
+ 0.213417,-0.547723,-0.808983,1.886443,-3.191742,-1.047318,
+ 0.926951,0.366239,0.081429,1.811797,-3.135641,-0.933096,
+ 0.213417,-0.547723,-0.808983,1.886443,-3.191742,-1.047318,
+ 0.626232,0.565165,-0.53705,1.841888,-3.246003,-1.014774,
+ 0.768072,0.514957,-0.380637,2.217369,-3.156093,-0.888927,
+ 0.672893,0.661099,-0.331908,2.113587,-3.011851,-0.851648,
+ -0.701253,0.091018,0.707079,2.07369,-3.020848,-0.782654,
+ 0.768072,0.514957,-0.380637,2.217369,-3.156093,-0.888927,
+ -0.701253,0.091018,0.707079,2.07369,-3.020848,-0.782654,
+ -0.706628,-0.050081,0.705811,2.187495,-3.161535,-0.800285,
+ -0.495591,0.225654,-0.838731,2.170039,-3.134504,-0.978866,
+ 0.768072,0.514957,-0.380637,2.217369,-3.156093,-0.888927,
+ -0.404532,-0.045989,-0.913367,2.236407,-3.220054,-0.89203,
+ -0.495591,0.225654,-0.838731,2.170039,-3.134504,-0.978866,
+ -0.404532,-0.045989,-0.913367,2.236407,-3.220054,-0.89203,
+ -0.492627,0.113675,-0.862784,2.201939,-3.226457,-0.996503,
+ -0.144755,0.439659,-0.886423,2.247981,-3.342804,-1.127459,
+ -0.430523,-0.648445,-0.627828,2.281229,-3.33825,-1.043475,
+ 0.717573,0.343682,0.605781,2.386827,-3.462222,-1.13648,
+ -0.144755,0.439659,-0.886423,2.247981,-3.342804,-1.127459,
+ 0.717573,0.343682,0.605781,2.386827,-3.462222,-1.13648,
+ 0.457854,0.537523,-0.708123,2.343303,-3.507846,-1.195262,
+ 0.717573,0.343682,0.605781,2.386827,-3.462222,-1.13648,
+ -0.430523,-0.648445,-0.627828,2.281229,-3.33825,-1.043475,
+ 0.743895,0.373896,0.553916,2.327021,-3.352317,-0.958234,
+ 0.717573,0.343682,0.605781,2.386827,-3.462222,-1.13648,
+ 0.743895,0.373896,0.553916,2.327021,-3.352317,-0.958234,
+ 0.752232,0.244352,0.611914,2.440236,-3.509564,-1.019417,
+ 0.743895,0.373896,0.553916,2.327021,-3.352317,-0.958234,
+ -0.430523,-0.648445,-0.627828,2.281229,-3.33825,-1.043475,
+ -0.492627,0.113675,-0.862784,2.201939,-3.226457,-0.996503,
+ 0.743895,0.373896,0.553916,2.327021,-3.352317,-0.958234,
+ -0.492627,0.113675,-0.862784,2.201939,-3.226457,-0.996503,
+ -0.404532,-0.045989,-0.913367,2.236407,-3.220054,-0.89203,
+ 0.752232,0.244352,0.611914,2.440236,-3.509564,-1.019417,
+ 0.743895,0.373896,0.553916,2.327021,-3.352317,-0.958234,
+ 0.866542,0.493887,-0.071973,2.309358,-3.345468,-0.801508,
+ 0.752232,0.244352,0.611914,2.440236,-3.509564,-1.019417,
+ 0.866542,0.493887,-0.071973,2.309358,-3.345468,-0.801508,
+ 0.874983,0.217676,-0.43246,2.377814,-3.484109,-0.800332,
+ 0.866542,0.493887,-0.071973,2.309358,-3.345468,-0.801508,
+ 0.743895,0.373896,0.553916,2.327021,-3.352317,-0.958234,
+ -0.404532,-0.045989,-0.913367,2.236407,-3.220054,-0.89203,
+ 0.866542,0.493887,-0.071973,2.309358,-3.345468,-0.801508,
+ -0.404532,-0.045989,-0.913367,2.236407,-3.220054,-0.89203,
+ 0.79991,0.598082,-0.049409,2.235942,-3.243103,-0.823955,
+ 0.79991,0.598082,-0.049409,2.235942,-3.243103,-0.823955,
+ -0.404532,-0.045989,-0.913367,2.236407,-3.220054,-0.89203,
+ 0.768072,0.514957,-0.380637,2.217369,-3.156093,-0.888927,
+ 0.79991,0.598082,-0.049409,2.235942,-3.243103,-0.823955,
+ 0.768072,0.514957,-0.380637,2.217369,-3.156093,-0.888927,
+ -0.706628,-0.050081,0.705811,2.187495,-3.161535,-0.800285,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ -0.150944,-0.987886,0.036011,1.92973,-3.298418,-0.689538,
+ 0.331575,0.146631,0.931964,2.059222,-3.230076,-0.674936,
+ -0.630099,-0.773677,0.066329,1.900481,-3.131932,-0.728621,
+ 0.331575,0.146631,0.931964,2.059222,-3.230076,-0.674936,
+ 0.714275,0.465374,0.522723,1.998099,-3.039955,-0.718855,
+ 0.714275,0.465374,0.522723,1.998099,-3.039955,-0.718855,
+ 0.331575,0.146631,0.931964,2.059222,-3.230076,-0.674936,
+ -0.706628,-0.050081,0.705811,2.187495,-3.161535,-0.800285,
+ 0.714275,0.465374,0.522723,1.998099,-3.039955,-0.718855,
+ -0.706628,-0.050081,0.705811,2.187495,-3.161535,-0.800285,
+ -0.701253,0.091018,0.707079,2.07369,-3.020848,-0.782654,
+ -0.150944,-0.987886,0.036011,1.92973,-3.298418,-0.689538,
+ -0.937976,-0.320543,0.132115,1.941325,-3.434803,-0.701314,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ -0.150944,-0.987886,0.036011,1.92973,-3.298418,-0.689538,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ 0.331575,0.146631,0.931964,2.059222,-3.230076,-0.674936,
+ 0.331575,0.146631,0.931964,2.059222,-3.230076,-0.674936,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ 0.79991,0.598082,-0.049409,2.235942,-3.243103,-0.823955,
+ 0.331575,0.146631,0.931964,2.059222,-3.230076,-0.674936,
+ 0.79991,0.598082,-0.049409,2.235942,-3.243103,-0.823955,
+ -0.706628,-0.050081,0.705811,2.187495,-3.161535,-0.800285,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ -0.937976,-0.320543,0.132115,1.941325,-3.434803,-0.701314,
+ -0.4909,0.016111,0.871067,2.002745,-3.52342,-0.688103,
+ -0.184432,-0.109597,0.976716,2.126553,-3.549679,-0.701005,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ -0.4909,0.016111,0.871067,2.002745,-3.52342,-0.688103,
+ 0.79991,0.598082,-0.049409,2.235942,-3.243103,-0.823955,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ 0.866542,0.493887,-0.071973,2.309358,-3.345468,-0.801508,
+ -0.184432,-0.109597,0.976716,2.126553,-3.549679,-0.701005,
+ -0.554151,-0.205896,0.806551,2.244147,-3.545557,-0.732888,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ 0.874983,0.217676,-0.43246,2.377814,-3.484109,-0.800332,
+ 0.866542,0.493887,-0.071973,2.309358,-3.345468,-0.801508,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ 0.874983,0.217676,-0.43246,2.377814,-3.484109,-0.800332,
+ 0.43336,0.0979,0.895888,2.107985,-3.363571,-0.677007,
+ -0.554151,-0.205896,0.806551,2.244147,-3.545557,-0.732888,
+ 0.752232,0.244352,0.611914,2.440236,-3.509564,-1.019417,
+ 0.874983,0.217676,-0.43246,2.377814,-3.484109,-0.800332,
+ -0.554151,-0.205896,0.806551,2.244147,-3.545557,-0.732888,
+ 0.752232,0.244352,0.611914,2.440236,-3.509564,-1.019417,
+ -0.554151,-0.205896,0.806551,2.244147,-3.545557,-0.732888,
+ -0.554502,-0.046423,0.830886,2.197935,-3.583948,-0.936437,
+ -0.987313,0.097592,0.125253,2.078928,-3.584991,-0.917088,
+ 0.444124,0.617475,-0.649214,2.025468,-3.556842,-1.204841,
+ -0.081045,0.409121,-0.908874,2.254361,-3.550931,-1.235118,
+ -0.987313,0.097592,0.125253,2.078928,-3.584991,-0.917088,
+ -0.081045,0.409121,-0.908874,2.254361,-3.550931,-1.235118,
+ -0.554502,-0.046423,0.830886,2.197935,-3.583948,-0.936437,
+ 0.872426,0.488735,0.003222,1.980621,-3.043895,-0.964237,
+ -0.541077,0.245809,-0.804247,2.091539,-3.032437,-0.947029,
+ -0.495591,0.225654,-0.838731,2.170039,-3.134504,-0.978866,
+ -0.554502,-0.046423,0.830886,2.197935,-3.583948,-0.936437,
+ -0.081045,0.409121,-0.908874,2.254361,-3.550931,-1.235118,
+ 0.457854,0.537523,-0.708123,2.343303,-3.507846,-1.195262,
+ -0.554502,-0.046423,0.830886,2.197935,-3.583948,-0.936437,
+ 0.457854,0.537523,-0.708123,2.343303,-3.507846,-1.195262,
+ 0.717573,0.343682,0.605781,2.386827,-3.462222,-1.13648,
+ -0.554502,-0.046423,0.830886,2.197935,-3.583948,-0.936437,
+ 0.717573,0.343682,0.605781,2.386827,-3.462222,-1.13648,
+ 0.752232,0.244352,0.611914,2.440236,-3.509564,-1.019417,
+ -0.545598,-0.330415,-0.770161,-3.042899,-3.193907,-1.207296,
+ 0.012244,-0.298111,-0.954453,-2.888628,-3.200302,-1.210934,
+ -0.245482,-0.183395,-0.951896,-2.845816,-3.273661,-1.218321,
+ -0.545598,-0.330415,-0.770161,-3.042899,-3.193907,-1.207296,
+ -0.245482,-0.183395,-0.951896,-2.845816,-3.273661,-1.218321,
+ -0.492859,-0.096405,-0.864752,-2.975439,-3.308754,-1.25324,
+ -0.492859,-0.096405,-0.864752,-2.975439,-3.308754,-1.25324,
+ -0.245482,-0.183395,-0.951896,-2.845816,-3.273661,-1.218321,
+ 0.430301,0.548598,-0.716855,-2.736599,-3.394849,-1.269577,
+ -0.492859,-0.096405,-0.864752,-2.975439,-3.308754,-1.25324,
+ 0.430301,0.548598,-0.716855,-2.736599,-3.394849,-1.269577,
+ -0.074103,0.409269,-0.909399,-2.856957,-3.449728,-1.356844,
+ -0.074103,0.409269,-0.909399,-2.856957,-3.449728,-1.356844,
+ 0.430301,0.548598,-0.716855,-2.736599,-3.394849,-1.269577,
+ -0.13251,0.440061,-0.888137,-2.631547,-3.559891,-1.33738,
+ -0.074103,0.409269,-0.909399,-2.856957,-3.449728,-1.356844,
+ -0.13251,0.440061,-0.888137,-2.631547,-3.559891,-1.33738,
+ 0.317837,0.631876,-0.706903,-2.729567,-3.602976,-1.377236,
+ 0.317837,0.631876,-0.706903,-2.729567,-3.602976,-1.377236,
+ 0.413011,0.629609,-0.658038,-2.981824,-3.608887,-1.346959,
+ 0.009712,0.399549,-0.91666,-3.030627,-3.493327,-1.32265,
+ 0.317837,0.631876,-0.706903,-2.729567,-3.602976,-1.377236,
+ 0.009712,0.399549,-0.91666,-3.030627,-3.493327,-1.32265,
+ -0.074103,0.409269,-0.909399,-2.856957,-3.449728,-1.356844,
+ -0.074103,0.409269,-0.909399,-2.856957,-3.449728,-1.356844,
+ 0.009712,0.399549,-0.91666,-3.030627,-3.493327,-1.32265,
+ 0.070969,0.266956,-0.961092,-3.091252,-3.340925,-1.235864,
+ -0.074103,0.409269,-0.909399,-2.856957,-3.449728,-1.356844,
+ 0.070969,0.266956,-0.961092,-3.091252,-3.340925,-1.235864,
+ -0.492859,-0.096405,-0.864752,-2.975439,-3.308754,-1.25324,
+ -0.492859,-0.096405,-0.864752,-2.975439,-3.308754,-1.25324,
+ 0.070969,0.266956,-0.961092,-3.091252,-3.340925,-1.235864,
+ 0.405633,0.57823,-0.707893,-3.135041,-3.243787,-1.189436,
+ -0.492859,-0.096405,-0.864752,-2.975439,-3.308754,-1.25324,
+ 0.405633,0.57823,-0.707893,-3.135041,-3.243787,-1.189436,
+ -0.545598,-0.330415,-0.770161,-3.042899,-3.193907,-1.207296,
+ -0.431117,-0.034268,-0.901645,-2.699957,-3.390295,-1.185593,
+ 0.430301,0.548598,-0.716855,-2.736599,-3.394849,-1.269577,
+ -0.245482,-0.183395,-0.951896,-2.845816,-3.273661,-1.218321,
+ -0.431117,-0.034268,-0.901645,-2.699957,-3.390295,-1.185593,
+ -0.245482,-0.183395,-0.951896,-2.845816,-3.273661,-1.218321,
+ -0.461794,0.113692,-0.879671,-2.787341,-3.278502,-1.138621,
+ -0.461794,0.113692,-0.879671,-2.787341,-3.278502,-1.138621,
+ -0.245482,-0.183395,-0.951896,-2.845816,-3.273661,-1.218321,
+ 0.012244,-0.298111,-0.954453,-2.888628,-3.200302,-1.210934,
+ -0.461794,0.113692,-0.879671,-2.787341,-3.278502,-1.138621,
+ 0.012244,-0.298111,-0.954453,-2.888628,-3.200302,-1.210934,
+ -0.46316,0.228643,-0.856274,-2.822497,-3.186549,-1.120984,
+ -0.46316,0.228643,-0.856274,-2.822497,-3.186549,-1.120984,
+ 0.637284,0.689194,-0.344791,-2.90901,-3.084482,-1.089147,
+ 0.737412,0.542596,-0.402261,-2.884711,-3.063896,-0.993766,
+ -0.46316,0.228643,-0.856274,-2.822497,-3.186549,-1.120984,
+ 0.737412,0.542596,-0.402261,-2.884711,-3.063896,-0.993766,
+ -0.508358,0.250892,-0.823787,-2.770335,-3.208138,-1.031045,
+ 0.851754,0.52393,0.003494,-3.184143,-3.298048,-1.156892,
+ 0.405633,0.57823,-0.707893,-3.135041,-3.243787,-1.189436,
+ 0.070969,0.266956,-0.961092,-3.091252,-3.340925,-1.235864,
+ 0.851754,0.52393,0.003494,-3.184143,-3.298048,-1.156892,
+ 0.070969,0.266956,-0.961092,-3.091252,-3.340925,-1.235864,
+ 0.596352,0.583149,-0.551635,-3.158524,-3.405872,-1.197099,
+ 0.840313,0.535537,0.084106,-3.09873,-3.539123,-1.252987,
+ 0.596352,0.583149,-0.551635,-3.158524,-3.405872,-1.197099,
+ 0.070969,0.266956,-0.961092,-3.091252,-3.340925,-1.235864,
+ 0.840313,0.535537,0.084106,-3.09873,-3.539123,-1.252987,
+ 0.070969,0.266956,-0.961092,-3.091252,-3.340925,-1.235864,
+ 0.009712,0.399549,-0.91666,-3.030627,-3.493327,-1.32265,
+ 0.009712,0.399549,-0.91666,-3.030627,-3.493327,-1.32265,
+ 0.413011,0.629609,-0.658038,-2.981824,-3.608887,-1.346959,
+ 0.840313,0.535537,0.084106,-3.09873,-3.539123,-1.252987,
+ 0.503689,0.453945,-0.735004,-3.03125,-3.09594,-1.106355,
+ -0.46316,0.228643,-0.856274,-2.822497,-3.186549,-1.120984,
+ 0.012244,-0.298111,-0.954453,-2.888628,-3.200302,-1.210934,
+ 0.163153,0.19945,-0.96623,-3.223246,-3.225388,-0.976573,
+ 0.977763,0.208696,-0.020643,-3.217306,-3.187686,-1.075214,
+ 0.851754,0.52393,0.003494,-3.184143,-3.298048,-1.156892,
+ 0.163153,0.19945,-0.96623,-3.223246,-3.225388,-0.976573,
+ 0.851754,0.52393,0.003494,-3.184143,-3.298048,-1.156892,
+ 0.144389,0.231536,-0.962051,-3.19417,-3.348553,-1.007196,
+ -0.99734,0.010761,0.072093,-3.082741,-3.598298,-1.054556,
+ 0.840313,0.535537,0.084106,-3.09873,-3.539123,-1.252987,
+ 0.413011,0.629609,-0.658038,-2.981824,-3.608887,-1.346959,
+ -0.99734,0.010761,0.072093,-3.082741,-3.598298,-1.054556,
+ 0.413011,0.629609,-0.658038,-2.981824,-3.608887,-1.346959,
+ -0.985013,0.106756,0.135469,-2.922908,-3.637036,-1.059206,
+ 0.144389,0.231536,-0.962051,-3.19417,-3.348553,-1.007196,
+ 0.851754,0.52393,0.003494,-3.184143,-3.298048,-1.156892,
+ 0.596352,0.583149,-0.551635,-3.158524,-3.405872,-1.197099,
+ 0.144389,0.231536,-0.962051,-3.19417,-3.348553,-1.007196,
+ 0.596352,0.583149,-0.551635,-3.158524,-3.405872,-1.197099,
+ -0.948594,-0.185732,0.256269,-3.18675,-3.457336,-1.025606,
+ -0.948594,-0.185732,0.256269,-3.18675,-3.457336,-1.025606,
+ 0.596352,0.583149,-0.551635,-3.158524,-3.405872,-1.197099,
+ 0.840313,0.535537,0.084106,-3.09873,-3.539123,-1.252987,
+ -0.948594,-0.185732,0.256269,-3.18675,-3.457336,-1.025606,
+ 0.840313,0.535537,0.084106,-3.09873,-3.539123,-1.252987,
+ -0.99734,0.010761,0.072093,-3.082741,-3.598298,-1.054556,
+ 0.144389,0.231536,-0.962051,-3.19417,-3.348553,-1.007196,
+ -0.471141,0.022027,0.881783,-3.087335,-3.350463,-0.831656,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ 0.144389,0.231536,-0.962051,-3.19417,-3.348553,-1.007196,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ 0.163153,0.19945,-0.96623,-3.223246,-3.225388,-0.976573,
+ 0.144389,0.231536,-0.962051,-3.19417,-3.348553,-1.007196,
+ -0.948594,-0.185732,0.256269,-3.18675,-3.457336,-1.025606,
+ -0.385346,-0.01874,0.922582,-3.074557,-3.486847,-0.843432,
+ 0.144389,0.231536,-0.962051,-3.19417,-3.348553,-1.007196,
+ -0.385346,-0.01874,0.922582,-3.074557,-3.486847,-0.843432,
+ -0.471141,0.022027,0.881783,-3.087335,-3.350463,-0.831656,
+ -0.385346,-0.01874,0.922582,-3.074557,-3.486847,-0.843432,
+ -0.948594,-0.185732,0.256269,-3.18675,-3.457336,-1.025606,
+ -0.99734,0.010761,0.072093,-3.082741,-3.598298,-1.054556,
+ -0.385346,-0.01874,0.922582,-3.074557,-3.486847,-0.843432,
+ -0.99734,0.010761,0.072093,-3.082741,-3.598298,-1.054556,
+ -0.11646,-0.017993,0.993032,-3.006867,-3.575464,-0.830221,
+ -0.11646,-0.017993,0.993032,-3.006867,-3.575464,-0.830221,
+ -0.99734,0.010761,0.072093,-3.082741,-3.598298,-1.054556,
+ -0.985013,0.106756,0.135469,-2.922908,-3.637036,-1.059206,
+ -0.11646,-0.017993,0.993032,-3.006867,-3.575464,-0.830221,
+ -0.985013,0.106756,0.135469,-2.922908,-3.637036,-1.059206,
+ -0.037581,-0.042039,0.998409,-2.870422,-3.601724,-0.843123,
+ -0.037581,-0.042039,0.998409,-2.870422,-3.601724,-0.843123,
+ -0.985013,0.106756,0.135469,-2.922908,-3.637036,-1.059206,
+ 0.339875,0.026681,0.940092,-2.791754,-3.635993,-1.078555,
+ -0.037581,-0.042039,0.998409,-2.870422,-3.601724,-0.843123,
+ 0.339875,0.026681,0.940092,-2.791754,-3.635993,-1.078555,
+ 0.156207,-0.109405,0.981647,-2.740824,-3.597601,-0.875006,
+ -0.039603,0.339955,-0.939607,-3.121673,-3.120319,-1.136456,
+ 0.503689,0.453945,-0.735004,-3.03125,-3.09594,-1.106355,
+ 0.012244,-0.298111,-0.954453,-2.888628,-3.200302,-1.210934,
+ -0.039603,0.339955,-0.939607,-3.121673,-3.120319,-1.136456,
+ 0.012244,-0.298111,-0.954453,-2.888628,-3.200302,-1.210934,
+ -0.545598,-0.330415,-0.770161,-3.042899,-3.193907,-1.207296,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ -0.039603,0.339955,-0.939607,-3.121673,-3.120319,-1.136456,
+ -0.545598,-0.330415,-0.770161,-3.042899,-3.193907,-1.207296,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ -0.545598,-0.330415,-0.770161,-3.042899,-3.193907,-1.207296,
+ 0.405633,0.57823,-0.707893,-3.135041,-3.243787,-1.189436,
+ 0.977763,0.208696,-0.020643,-3.217306,-3.187686,-1.075214,
+ -0.377491,-0.043727,-0.92498,-3.169546,-3.135273,-1.128247,
+ 0.405633,0.57823,-0.707893,-3.135041,-3.243787,-1.189436,
+ 0.977763,0.208696,-0.020643,-3.217306,-3.187686,-1.075214,
+ 0.405633,0.57823,-0.707893,-3.135041,-3.243787,-1.189436,
+ 0.851754,0.52393,0.003494,-3.184143,-3.298048,-1.156892,
+ -0.508358,0.250892,-0.823787,-2.770335,-3.208138,-1.031045,
+ 0.737412,0.542596,-0.402261,-2.884711,-3.063896,-0.993766,
+ 0.684558,0.361154,0.633205,-2.928681,-3.072892,-0.924772,
+ -0.508358,0.250892,-0.823787,-2.770335,-3.208138,-1.031045,
+ 0.684558,0.361154,0.633205,-2.928681,-3.072892,-0.924772,
+ 0.713402,0.39471,0.579018,-2.80326,-3.21358,-0.942403,
+ -0.46316,0.228643,-0.856274,-2.822497,-3.186549,-1.120984,
+ -0.508358,0.250892,-0.823787,-2.770335,-3.208138,-1.031045,
+ 0.845209,0.529004,-0.075999,-2.749355,-3.272099,-1.034148,
+ -0.46316,0.228643,-0.856274,-2.822497,-3.186549,-1.120984,
+ 0.845209,0.529004,-0.075999,-2.749355,-3.272099,-1.034148,
+ -0.461794,0.113692,-0.879671,-2.787341,-3.278502,-1.138621,
+ 0.430301,0.548598,-0.716855,-2.736599,-3.394849,-1.269577,
+ -0.431117,-0.034268,-0.901645,-2.699957,-3.390295,-1.185593,
+ 0.61389,0.702597,-0.359856,-2.58358,-3.514267,-1.278598,
+ 0.430301,0.548598,-0.716855,-2.736599,-3.394849,-1.269577,
+ 0.61389,0.702597,-0.359856,-2.58358,-3.514267,-1.278598,
+ -0.13251,0.440061,-0.888137,-2.631547,-3.559891,-1.33738,
+ 0.61389,0.702597,-0.359856,-2.58358,-3.514267,-1.278598,
+ -0.431117,-0.034268,-0.901645,-2.699957,-3.390295,-1.185593,
+ 0.77125,0.634502,-0.050796,-2.649491,-3.404362,-1.100352,
+ 0.61389,0.702597,-0.359856,-2.58358,-3.514267,-1.278598,
+ 0.77125,0.634502,-0.050796,-2.649491,-3.404362,-1.100352,
+ 0.780958,0.624512,-0.009449,-2.52472,-3.561609,-1.161535,
+ 0.77125,0.634502,-0.050796,-2.649491,-3.404362,-1.100352,
+ -0.431117,-0.034268,-0.901645,-2.699957,-3.390295,-1.185593,
+ -0.461794,0.113692,-0.879671,-2.787341,-3.278502,-1.138621,
+ 0.77125,0.634502,-0.050796,-2.649491,-3.404362,-1.100352,
+ -0.461794,0.113692,-0.879671,-2.787341,-3.278502,-1.138621,
+ 0.845209,0.529004,-0.075999,-2.749355,-3.272099,-1.034148,
+ 0.780958,0.624512,-0.009449,-2.52472,-3.561609,-1.161535,
+ 0.77125,0.634502,-0.050796,-2.649491,-3.404362,-1.100352,
+ 0.684834,0.490952,0.538488,-2.668957,-3.397513,-0.943626,
+ 0.780958,0.624512,-0.009449,-2.52472,-3.561609,-1.161535,
+ 0.684834,0.490952,0.538488,-2.668957,-3.397513,-0.943626,
+ 0.712283,0.385667,0.586441,-2.593513,-3.536154,-0.94245,
+ 0.684834,0.490952,0.538488,-2.668957,-3.397513,-0.943626,
+ 0.77125,0.634502,-0.050796,-2.649491,-3.404362,-1.100352,
+ 0.845209,0.529004,-0.075999,-2.749355,-3.272099,-1.034148,
+ 0.684834,0.490952,0.538488,-2.668957,-3.397513,-0.943626,
+ 0.845209,0.529004,-0.075999,-2.749355,-3.272099,-1.034148,
+ 0.722848,0.455753,0.519404,-2.749867,-3.295148,-0.966073,
+ 0.722848,0.455753,0.519404,-2.749867,-3.295148,-0.966073,
+ 0.845209,0.529004,-0.075999,-2.749355,-3.272099,-1.034148,
+ -0.508358,0.250892,-0.823787,-2.770335,-3.208138,-1.031045,
+ 0.722848,0.455753,0.519404,-2.749867,-3.295148,-0.966073,
+ -0.508358,0.250892,-0.823787,-2.770335,-3.208138,-1.031045,
+ 0.713402,0.39471,0.579018,-2.80326,-3.21358,-0.942403,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ -0.471141,0.022027,0.881783,-3.087335,-3.350463,-0.831656,
+ 0.225987,0.181605,0.957053,-2.944625,-3.282121,-0.817054,
+ -0.948594,-0.185732,0.256269,-3.11957,-3.183977,-0.870739,
+ 0.225987,0.181605,0.957053,-2.944625,-3.282121,-0.817054,
+ 0.308087,0.149605,0.939521,-3.011987,-3.092,-0.860973,
+ 0.308087,0.149605,0.939521,-3.011987,-3.092,-0.860973,
+ 0.225987,0.181605,0.957053,-2.944625,-3.282121,-0.817054,
+ 0.713402,0.39471,0.579018,-2.80326,-3.21358,-0.942403,
+ 0.308087,0.149605,0.939521,-3.011987,-3.092,-0.860973,
+ 0.713402,0.39471,0.579018,-2.80326,-3.21358,-0.942403,
+ 0.684558,0.361154,0.633205,-2.928681,-3.072892,-0.924772,
+ -0.471141,0.022027,0.881783,-3.087335,-3.350463,-0.831656,
+ -0.385346,-0.01874,0.922582,-3.074557,-3.486847,-0.843432,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ -0.471141,0.022027,0.881783,-3.087335,-3.350463,-0.831656,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ 0.225987,0.181605,0.957053,-2.944625,-3.282121,-0.817054,
+ 0.225987,0.181605,0.957053,-2.944625,-3.282121,-0.817054,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ 0.722848,0.455753,0.519404,-2.749867,-3.295148,-0.966073,
+ 0.225987,0.181605,0.957053,-2.944625,-3.282121,-0.817054,
+ 0.722848,0.455753,0.519404,-2.749867,-3.295148,-0.966073,
+ 0.713402,0.39471,0.579018,-2.80326,-3.21358,-0.942403,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ -0.385346,-0.01874,0.922582,-3.074557,-3.486847,-0.843432,
+ -0.11646,-0.017993,0.993032,-3.006867,-3.575464,-0.830221,
+ -0.037581,-0.042039,0.998409,-2.870422,-3.601724,-0.843123,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ -0.11646,-0.017993,0.993032,-3.006867,-3.575464,-0.830221,
+ 0.722848,0.455753,0.519404,-2.749867,-3.295148,-0.966073,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ 0.684834,0.490952,0.538488,-2.668957,-3.397513,-0.943626,
+ -0.037581,-0.042039,0.998409,-2.870422,-3.601724,-0.843123,
+ 0.156207,-0.109405,0.981647,-2.740824,-3.597601,-0.875006,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ 0.712283,0.385667,0.586441,-2.593513,-3.536154,-0.94245,
+ 0.684834,0.490952,0.538488,-2.668957,-3.397513,-0.943626,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ 0.712283,0.385667,0.586441,-2.593513,-3.536154,-0.94245,
+ 0.229413,0.089674,0.96919,-2.890885,-3.415616,-0.819125,
+ 0.156207,-0.109405,0.981647,-2.740824,-3.597601,-0.875006,
+ 0.780958,0.624512,-0.009449,-2.52472,-3.561609,-1.161535,
+ 0.712283,0.385667,0.586441,-2.593513,-3.536154,-0.94245,
+ 0.156207,-0.109405,0.981647,-2.740824,-3.597601,-0.875006,
+ 0.780958,0.624512,-0.009449,-2.52472,-3.561609,-1.161535,
+ 0.156207,-0.109405,0.981647,-2.740824,-3.597601,-0.875006,
+ 0.339875,0.026681,0.940092,-2.791754,-3.635993,-1.078555,
+ -0.985013,0.106756,0.135469,-2.922908,-3.637036,-1.059206,
+ 0.413011,0.629609,-0.658038,-2.981824,-3.608887,-1.346959,
+ 0.317837,0.631876,-0.706903,-2.729567,-3.602976,-1.377236,
+ -0.985013,0.106756,0.135469,-2.922908,-3.637036,-1.059206,
+ 0.317837,0.631876,-0.706903,-2.729567,-3.602976,-1.377236,
+ 0.339875,0.026681,0.940092,-2.791754,-3.635993,-1.078555,
+ 0.503689,0.453945,-0.735004,-3.03125,-3.09594,-1.106355,
+ 0.637284,0.689194,-0.344791,-2.90901,-3.084482,-1.089147,
+ -0.46316,0.228643,-0.856274,-2.822497,-3.186549,-1.120984,
+ 0.339875,0.026681,0.940092,-2.791754,-3.635993,-1.078555,
+ 0.317837,0.631876,-0.706903,-2.729567,-3.602976,-1.377236,
+ -0.13251,0.440061,-0.888137,-2.631547,-3.559891,-1.33738,
+ 0.339875,0.026681,0.940092,-2.791754,-3.635993,-1.078555,
+ -0.13251,0.440061,-0.888137,-2.631547,-3.559891,-1.33738,
+ 0.61389,0.702597,-0.359856,-2.58358,-3.514267,-1.278598,
+ 0.339875,0.026681,0.940092,-2.791754,-3.635993,-1.078555,
+ 0.61389,0.702597,-0.359856,-2.58358,-3.514267,-1.278598,
+ 0.780958,0.624512,-0.009449,-2.52472,-3.561609,-1.161535,
+ -0.35872,0.092902,0.928811,2.031262,-3.256709,1.111122,
+ -0.354049,-0.10839,0.928924,2.14888,-3.221616,1.076203,
+ 0.422569,-0.18743,0.886739,2.110033,-3.148257,1.068816,
+ -0.35872,0.092902,0.928811,2.031262,-3.256709,1.111122,
+ 0.422569,-0.18743,0.886739,2.110033,-3.148257,1.068816,
+ -0.019303,-0.142974,0.989538,1.970051,-3.141862,1.065178,
+ -0.501053,-0.05946,0.863371,2.138771,-3.397683,1.214726,
+ -0.453746,-0.057149,0.889297,2.247981,-3.342804,1.127459,
+ -0.354049,-0.10839,0.928924,2.14888,-3.221616,1.076203,
+ -0.501053,-0.05946,0.863371,2.138771,-3.397683,1.214726,
+ -0.354049,-0.10839,0.928924,2.14888,-3.221616,1.076203,
+ -0.35872,0.092902,0.928811,2.031262,-3.256709,1.111122,
+ -0.765488,-0.115047,0.633082,2.254361,-3.550931,1.235118,
+ -0.779685,0.02537,0.625657,2.343303,-3.507846,1.195262,
+ -0.453746,-0.057149,0.889297,2.247981,-3.342804,1.127459,
+ -0.765488,-0.115047,0.633082,2.254361,-3.550931,1.235118,
+ -0.453746,-0.057149,0.889297,2.247981,-3.342804,1.127459,
+ -0.501053,-0.05946,0.863371,2.138771,-3.397683,1.214726,
+ -0.501053,-0.05946,0.863371,2.138771,-3.397683,1.214726,
+ 0.982106,-0.010346,0.188044,1.981186,-3.441282,1.180532,
+ -0.807765,-0.096776,0.581507,2.025468,-3.556842,1.204841,
+ -0.501053,-0.05946,0.863371,2.138771,-3.397683,1.214726,
+ -0.807765,-0.096776,0.581507,2.025468,-3.556842,1.204841,
+ -0.765488,-0.115047,0.633082,2.254361,-3.550931,1.235118,
+ -0.35872,0.092902,0.928811,2.031262,-3.256709,1.111122,
+ 0.937141,-0.149709,0.315204,1.926176,-3.28888,1.093746,
+ 0.982106,-0.010346,0.188044,1.981186,-3.441282,1.180532,
+ -0.35872,0.092902,0.928811,2.031262,-3.256709,1.111122,
+ 0.982106,-0.010346,0.188044,1.981186,-3.441282,1.180532,
+ -0.501053,-0.05946,0.863371,2.138771,-3.397683,1.214726,
+ -0.019303,-0.142974,0.989538,1.970051,-3.141862,1.065178,
+ 0.866898,-0.268351,0.420091,1.886443,-3.191742,1.047318,
+ 0.937141,-0.149709,0.315204,1.926176,-3.28888,1.093746,
+ -0.019303,-0.142974,0.989538,1.970051,-3.141862,1.065178,
+ 0.937141,-0.149709,0.315204,1.926176,-3.28888,1.093746,
+ -0.35872,0.092902,0.928811,2.031262,-3.256709,1.111122,
+ 0.567579,-0.469834,-0.6761,2.201939,-3.226457,0.996503,
+ -0.354049,-0.10839,0.928924,2.14888,-3.221616,1.076203,
+ -0.453746,-0.057149,0.889297,2.247981,-3.342804,1.127459,
+ 0.567579,-0.469834,-0.6761,2.201939,-3.226457,0.996503,
+ -0.453746,-0.057149,0.889297,2.247981,-3.342804,1.127459,
+ 0.886562,-0.46255,0.007486,2.281229,-3.33825,1.043475,
+ 0.890357,-0.340018,-0.302742,2.170039,-3.134504,0.978866,
+ 0.422569,-0.18743,0.886739,2.110033,-3.148257,1.068816,
+ -0.354049,-0.10839,0.928924,2.14888,-3.221616,1.076203,
+ 0.890357,-0.340018,-0.302742,2.170039,-3.134504,0.978866,
+ -0.354049,-0.10839,0.928924,2.14888,-3.221616,1.076203,
+ 0.567579,-0.469834,-0.6761,2.201939,-3.226457,0.996503,
+ 0.579344,-0.339433,-0.741044,2.217369,-3.156093,0.888927,
+ 0.789099,-0.039289,-0.613008,2.113587,-3.011851,0.851648,
+ 0.773659,-0.235087,-0.588375,2.091539,-3.032437,0.947029,
+ 0.579344,-0.339433,-0.741044,2.217369,-3.156093,0.888927,
+ 0.773659,-0.235087,-0.588375,2.091539,-3.032437,0.947029,
+ 0.890357,-0.340018,-0.302742,2.170039,-3.134504,0.978866,
+ 0.257818,-0.230014,-0.938415,1.865135,-3.353827,1.054981,
+ 0.937141,-0.149709,0.315204,1.926176,-3.28888,1.093746,
+ 0.866898,-0.268351,0.420091,1.886443,-3.191742,1.047318,
+ 0.257818,-0.230014,-0.938415,1.865135,-3.353827,1.054981,
+ 0.866898,-0.268351,0.420091,1.886443,-3.191742,1.047318,
+ 0.230893,-0.309688,-0.922378,1.841888,-3.246003,1.014774,
+ 0.982106,-0.010346,0.188044,1.981186,-3.441282,1.180532,
+ 0.937141,-0.149709,0.315204,1.926176,-3.28888,1.093746,
+ 0.257818,-0.230014,-0.938415,1.865135,-3.353827,1.054981,
+ 0.982106,-0.010346,0.188044,1.981186,-3.441282,1.180532,
+ 0.257818,-0.230014,-0.938415,1.865135,-3.353827,1.054981,
+ 0.148388,-0.325205,-0.933929,1.919391,-3.487078,1.110869,
+ 0.148388,-0.325205,-0.933929,1.919391,-3.487078,1.110869,
+ -0.807765,-0.096776,0.581507,2.025468,-3.556842,1.204841,
+ 0.982106,-0.010346,0.188044,1.981186,-3.441282,1.180532,
+ 0.422569,-0.18743,0.886739,2.110033,-3.148257,1.068816,
+ 0.890357,-0.340018,-0.302742,2.170039,-3.134504,0.978866,
+ -0.215783,-0.895808,-0.388544,1.980621,-3.043895,0.964237,
+ -0.085416,-0.081635,-0.992995,1.83279,-3.296508,0.865078,
+ 0.230893,-0.309688,-0.922378,1.841888,-3.246003,1.014774,
+ -0.156447,-0.088128,0.983747,1.811797,-3.135641,0.933096,
+ -0.085416,-0.081635,-0.992995,1.83279,-3.296508,0.865078,
+ -0.156447,-0.088128,0.983747,1.811797,-3.135641,0.933096,
+ -0.042094,-0.220101,-0.974568,1.806407,-3.173343,0.834455,
+ -0.348227,-0.192527,-0.917427,2.078928,-3.584991,0.917088,
+ -0.807765,-0.096776,0.581507,2.025468,-3.556842,1.204841,
+ 0.148388,-0.325205,-0.933929,1.919391,-3.487078,1.110869,
+ -0.348227,-0.192527,-0.917427,2.078928,-3.584991,0.917088,
+ 0.148388,-0.325205,-0.933929,1.919391,-3.487078,1.110869,
+ 0.255431,-0.055528,-0.965231,1.933899,-3.546253,0.912438,
+ -0.401279,-0.250965,-0.880904,1.839523,-3.405292,0.883488,
+ 0.257818,-0.230014,-0.938415,1.865135,-3.353827,1.054981,
+ 0.230893,-0.309688,-0.922378,1.841888,-3.246003,1.014774,
+ -0.401279,-0.250965,-0.880904,1.839523,-3.405292,0.883488,
+ 0.230893,-0.309688,-0.922378,1.841888,-3.246003,1.014774,
+ -0.085416,-0.081635,-0.992995,1.83279,-3.296508,0.865078,
+ 0.255431,-0.055528,-0.965231,1.933899,-3.546253,0.912438,
+ 0.148388,-0.325205,-0.933929,1.919391,-3.487078,1.110869,
+ 0.257818,-0.230014,-0.938415,1.865135,-3.353827,1.054981,
+ 0.255431,-0.055528,-0.965231,1.933899,-3.546253,0.912438,
+ 0.257818,-0.230014,-0.938415,1.865135,-3.353827,1.054981,
+ -0.401279,-0.250965,-0.880904,1.839523,-3.405292,0.883488,
+ -0.042094,-0.220101,-0.974568,1.806407,-3.173343,0.834455,
+ -0.363523,-0.150625,-0.919327,1.900481,-3.131932,0.728621,
+ -0.924461,-0.213385,-0.315973,1.92973,-3.298418,0.689538,
+ -0.042094,-0.220101,-0.974568,1.806407,-3.173343,0.834455,
+ -0.924461,-0.213385,-0.315973,1.92973,-3.298418,0.689538,
+ -0.085416,-0.081635,-0.992995,1.83279,-3.296508,0.865078,
+ -0.924461,-0.213385,-0.315973,1.92973,-3.298418,0.689538,
+ -0.914496,-0.253607,-0.315247,1.941325,-3.434803,0.701314,
+ -0.401279,-0.250965,-0.880904,1.839523,-3.405292,0.883488,
+ -0.924461,-0.213385,-0.315973,1.92973,-3.298418,0.689538,
+ -0.401279,-0.250965,-0.880904,1.839523,-3.405292,0.883488,
+ -0.085416,-0.081635,-0.992995,1.83279,-3.296508,0.865078,
+ -0.943599,-0.160394,-0.289646,2.002745,-3.52342,0.688103,
+ 0.255431,-0.055528,-0.965231,1.933899,-3.546253,0.912438,
+ -0.401279,-0.250965,-0.880904,1.839523,-3.405292,0.883488,
+ -0.943599,-0.160394,-0.289646,2.002745,-3.52342,0.688103,
+ -0.401279,-0.250965,-0.880904,1.839523,-3.405292,0.883488,
+ -0.914496,-0.253607,-0.315247,1.941325,-3.434803,0.701314,
+ 0.601229,-0.111151,-0.791308,2.126553,-3.549679,0.701005,
+ -0.348227,-0.192527,-0.917427,2.078928,-3.584991,0.917088,
+ 0.255431,-0.055528,-0.965231,1.933899,-3.546253,0.912438,
+ 0.601229,-0.111151,-0.791308,2.126553,-3.549679,0.701005,
+ 0.255431,-0.055528,-0.965231,1.933899,-3.546253,0.912438,
+ -0.943599,-0.160394,-0.289646,2.002745,-3.52342,0.688103,
+ 0.53288,-0.088285,-0.841572,2.244147,-3.545557,0.732888,
+ 0.546571,-0.125171,-0.828005,2.197935,-3.583948,0.936437,
+ -0.348227,-0.192527,-0.917427,2.078928,-3.584991,0.917088,
+ 0.53288,-0.088285,-0.841572,2.244147,-3.545557,0.732888,
+ -0.348227,-0.192527,-0.917427,2.078928,-3.584991,0.917088,
+ 0.601229,-0.111151,-0.791308,2.126553,-3.549679,0.701005,
+ -0.019303,-0.142974,0.989538,1.970051,-3.141862,1.065178,
+ 0.422569,-0.18743,0.886739,2.110033,-3.148257,1.068816,
+ -0.215783,-0.895808,-0.388544,1.980621,-3.043895,0.964237,
+ -0.019303,-0.142974,0.989538,1.970051,-3.141862,1.065178,
+ -0.215783,-0.895808,-0.388544,1.980621,-3.043895,0.964237,
+ 0.356923,-0.210291,0.910156,1.898573,-3.068274,0.994338,
+ 0.866898,-0.268351,0.420091,1.886443,-3.191742,1.047318,
+ -0.019303,-0.142974,0.989538,1.970051,-3.141862,1.065178,
+ 0.356923,-0.210291,0.910156,1.898573,-3.068274,0.994338,
+ 0.866898,-0.268351,0.420091,1.886443,-3.191742,1.047318,
+ 0.356923,-0.210291,0.910156,1.898573,-3.068274,0.994338,
+ 0.517272,-0.552302,0.653753,1.855134,-3.083228,0.986129,
+ 0.230893,-0.309688,-0.922378,1.841888,-3.246003,1.014774,
+ 0.866898,-0.268351,0.420091,1.886443,-3.191742,1.047318,
+ 0.517272,-0.552302,0.653753,1.855134,-3.083228,0.986129,
+ 0.230893,-0.309688,-0.922378,1.841888,-3.246003,1.014774,
+ 0.517272,-0.552302,0.653753,1.855134,-3.083228,0.986129,
+ -0.156447,-0.088128,0.983747,1.811797,-3.135641,0.933096,
+ -0.156072,0.243426,0.95728,2.187495,-3.161535,0.800285,
+ -0.080858,0.024731,0.996419,2.07369,-3.020848,0.782654,
+ 0.789099,-0.039289,-0.613008,2.113587,-3.011851,0.851648,
+ -0.156072,0.243426,0.95728,2.187495,-3.161535,0.800285,
+ 0.789099,-0.039289,-0.613008,2.113587,-3.011851,0.851648,
+ 0.579344,-0.339433,-0.741044,2.217369,-3.156093,0.888927,
+ 0.567579,-0.469834,-0.6761,2.201939,-3.226457,0.996503,
+ -0.661663,-0.025481,0.749369,2.236407,-3.220054,0.89203,
+ 0.579344,-0.339433,-0.741044,2.217369,-3.156093,0.888927,
+ 0.567579,-0.469834,-0.6761,2.201939,-3.226457,0.996503,
+ 0.579344,-0.339433,-0.741044,2.217369,-3.156093,0.888927,
+ 0.890357,-0.340018,-0.302742,2.170039,-3.134504,0.978866,
+ -0.779685,0.02537,0.625657,2.343303,-3.507846,1.195262,
+ 0.507452,0.36284,0.781562,2.386827,-3.462222,1.13648,
+ 0.886562,-0.46255,0.007486,2.281229,-3.33825,1.043475,
+ -0.779685,0.02537,0.625657,2.343303,-3.507846,1.195262,
+ 0.886562,-0.46255,0.007486,2.281229,-3.33825,1.043475,
+ -0.453746,-0.057149,0.889297,2.247981,-3.342804,1.127459,
+ 0.121953,0.140869,0.982488,2.440236,-3.509564,1.019417,
+ 0.484364,0.195735,0.85269,2.327021,-3.352317,0.958234,
+ 0.886562,-0.46255,0.007486,2.281229,-3.33825,1.043475,
+ 0.121953,0.140869,0.982488,2.440236,-3.509564,1.019417,
+ 0.886562,-0.46255,0.007486,2.281229,-3.33825,1.043475,
+ 0.507452,0.36284,0.781562,2.386827,-3.462222,1.13648,
+ -0.661663,-0.025481,0.749369,2.236407,-3.220054,0.89203,
+ 0.567579,-0.469834,-0.6761,2.201939,-3.226457,0.996503,
+ 0.886562,-0.46255,0.007486,2.281229,-3.33825,1.043475,
+ -0.661663,-0.025481,0.749369,2.236407,-3.220054,0.89203,
+ 0.886562,-0.46255,0.007486,2.281229,-3.33825,1.043475,
+ 0.484364,0.195735,0.85269,2.327021,-3.352317,0.958234,
+ 0.913315,0.39776,-0.087428,2.377814,-3.484109,0.800332,
+ 0.170703,0.25395,0.952035,2.309358,-3.345468,0.801508,
+ 0.484364,0.195735,0.85269,2.327021,-3.352317,0.958234,
+ 0.913315,0.39776,-0.087428,2.377814,-3.484109,0.800332,
+ 0.484364,0.195735,0.85269,2.327021,-3.352317,0.958234,
+ 0.121953,0.140869,0.982488,2.440236,-3.509564,1.019417,
+ 0.977763,0.208696,0.020643,2.235942,-3.243103,0.823955,
+ -0.661663,-0.025481,0.749369,2.236407,-3.220054,0.89203,
+ 0.484364,0.195735,0.85269,2.327021,-3.352317,0.958234,
+ 0.977763,0.208696,0.020643,2.235942,-3.243103,0.823955,
+ 0.484364,0.195735,0.85269,2.327021,-3.352317,0.958234,
+ 0.170703,0.25395,0.952035,2.309358,-3.345468,0.801508,
+ -0.156072,0.243426,0.95728,2.187495,-3.161535,0.800285,
+ 0.579344,-0.339433,-0.741044,2.217369,-3.156093,0.888927,
+ -0.661663,-0.025481,0.749369,2.236407,-3.220054,0.89203,
+ -0.156072,0.243426,0.95728,2.187495,-3.161535,0.800285,
+ -0.661663,-0.025481,0.749369,2.236407,-3.220054,0.89203,
+ 0.977763,0.208696,0.020643,2.235942,-3.243103,0.823955,
+ -0.245482,-0.183394,0.951896,1.998099,-3.039955,0.718855,
+ 0.430301,0.548598,0.716855,2.059222,-3.230076,0.674936,
+ -0.924461,-0.213385,-0.315973,1.92973,-3.298418,0.689538,
+ -0.245482,-0.183394,0.951896,1.998099,-3.039955,0.718855,
+ -0.924461,-0.213385,-0.315973,1.92973,-3.298418,0.689538,
+ -0.363523,-0.150625,-0.919327,1.900481,-3.131932,0.728621,
+ -0.080858,0.024731,0.996419,2.07369,-3.020848,0.782654,
+ -0.156072,0.243426,0.95728,2.187495,-3.161535,0.800285,
+ 0.430301,0.548598,0.716855,2.059222,-3.230076,0.674936,
+ -0.080858,0.024731,0.996419,2.07369,-3.020848,0.782654,
+ 0.430301,0.548598,0.716855,2.059222,-3.230076,0.674936,
+ -0.245482,-0.183394,0.951896,1.998099,-3.039955,0.718855,
+ 0.430301,0.548598,0.716855,2.059222,-3.230076,0.674936,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ -0.914496,-0.253607,-0.315247,1.941325,-3.434803,0.701314,
+ 0.430301,0.548598,0.716855,2.059222,-3.230076,0.674936,
+ -0.914496,-0.253607,-0.315247,1.941325,-3.434803,0.701314,
+ -0.924461,-0.213385,-0.315973,1.92973,-3.298418,0.689538,
+ -0.156072,0.243426,0.95728,2.187495,-3.161535,0.800285,
+ 0.977763,0.208696,0.020643,2.235942,-3.243103,0.823955,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ -0.156072,0.243426,0.95728,2.187495,-3.161535,0.800285,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ 0.430301,0.548598,0.716855,2.059222,-3.230076,0.674936,
+ -0.943599,-0.160394,-0.289646,2.002745,-3.52342,0.688103,
+ -0.914496,-0.253607,-0.315247,1.941325,-3.434803,0.701314,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ -0.943599,-0.160394,-0.289646,2.002745,-3.52342,0.688103,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ 0.601229,-0.111151,-0.791308,2.126553,-3.549679,0.701005,
+ 0.170703,0.25395,0.952035,2.309358,-3.345468,0.801508,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ 0.977763,0.208696,0.020643,2.235942,-3.243103,0.823955,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ 0.53288,-0.088285,-0.841572,2.244147,-3.545557,0.732888,
+ 0.601229,-0.111151,-0.791308,2.126553,-3.549679,0.701005,
+ 0.53288,-0.088285,-0.841572,2.244147,-3.545557,0.732888,
+ 0.317836,0.631876,0.706903,2.107985,-3.363571,0.677007,
+ 0.170703,0.25395,0.952035,2.309358,-3.345468,0.801508,
+ 0.53288,-0.088285,-0.841572,2.244147,-3.545557,0.732888,
+ 0.170703,0.25395,0.952035,2.309358,-3.345468,0.801508,
+ 0.913315,0.39776,-0.087428,2.377814,-3.484109,0.800332,
+ 0.546571,-0.125171,-0.828005,2.197935,-3.583948,0.936437,
+ 0.53288,-0.088285,-0.841572,2.244147,-3.545557,0.732888,
+ 0.913315,0.39776,-0.087428,2.377814,-3.484109,0.800332,
+ 0.546571,-0.125171,-0.828005,2.197935,-3.583948,0.936437,
+ 0.913315,0.39776,-0.087428,2.377814,-3.484109,0.800332,
+ 0.121953,0.140869,0.982488,2.440236,-3.509564,1.019417,
+ 0.546571,-0.125171,-0.828005,2.197935,-3.583948,0.936437,
+ -0.765488,-0.115047,0.633082,2.254361,-3.550931,1.235118,
+ -0.807765,-0.096776,0.581507,2.025468,-3.556842,1.204841,
+ 0.546571,-0.125171,-0.828005,2.197935,-3.583948,0.936437,
+ -0.807765,-0.096776,0.581507,2.025468,-3.556842,1.204841,
+ -0.348227,-0.192527,-0.917427,2.078928,-3.584991,0.917088,
+ 0.890357,-0.340018,-0.302742,2.170039,-3.134504,0.978866,
+ 0.773659,-0.235087,-0.588375,2.091539,-3.032437,0.947029,
+ -0.215783,-0.895808,-0.388544,1.980621,-3.043895,0.964237,
+ 0.121953,0.140869,0.982488,2.440236,-3.509564,1.019417,
+ 0.507452,0.36284,0.781562,2.386827,-3.462222,1.13648,
+ -0.779685,0.02537,0.625657,2.343303,-3.507846,1.195262,
+ 0.121953,0.140869,0.982488,2.440236,-3.509564,1.019417,
+ -0.779685,0.02537,0.625657,2.343303,-3.507846,1.195262,
+ -0.765488,-0.115047,0.633082,2.254361,-3.550931,1.235118,
+ 0.121953,0.140869,0.982488,2.440236,-3.509564,1.019417,
+ -0.765488,-0.115047,0.633082,2.254361,-3.550931,1.235118,
+ 0.546571,-0.125171,-0.828005,2.197935,-3.583948,0.936437,
+ 0.205604,0.070037,0.976126,-2.975439,-3.308754,1.25324,
+ 0.193496,0.00102,0.981101,-2.845816,-3.273661,1.218321,
+ 0.254799,-0.149124,0.955426,-2.888628,-3.200302,1.210934,
+ 0.205604,0.070037,0.976126,-2.975439,-3.308754,1.25324,
+ 0.254799,-0.149124,0.955426,-2.888628,-3.200302,1.210934,
+ 0.405755,-0.293021,0.865737,-3.042899,-3.193907,1.207296,
+ 0.580504,-0.526296,0.621312,-2.856957,-3.449728,1.356844,
+ 0.011655,0.055061,0.998415,-2.736599,-3.394849,1.269577,
+ 0.193496,0.00102,0.981101,-2.845816,-3.273661,1.218321,
+ 0.580504,-0.526296,0.621312,-2.856957,-3.449728,1.356844,
+ 0.193496,0.00102,0.981101,-2.845816,-3.273661,1.218321,
+ 0.205604,0.070037,0.976126,-2.975439,-3.308754,1.25324,
+ -0.093334,0.204552,0.974396,-2.729567,-3.602976,1.377236,
+ -0.026425,0.178249,0.983631,-2.631547,-3.559891,1.33738,
+ 0.011655,0.055061,0.998415,-2.736599,-3.394849,1.269577,
+ -0.093334,0.204552,0.974396,-2.729567,-3.602976,1.377236,
+ 0.011655,0.055061,0.998415,-2.736599,-3.394849,1.269577,
+ 0.580504,-0.526296,0.621312,-2.856957,-3.449728,1.356844,
+ 0.580504,-0.526296,0.621312,-2.856957,-3.449728,1.356844,
+ -0.028076,0.054588,0.998114,-3.030627,-3.493327,1.32265,
+ -0.057735,0.03099,0.997851,-2.981824,-3.608887,1.346959,
+ 0.580504,-0.526296,0.621312,-2.856957,-3.449728,1.356844,
+ -0.057735,0.03099,0.997851,-2.981824,-3.608887,1.346959,
+ -0.093334,0.204552,0.974396,-2.729567,-3.602976,1.377236,
+ 0.205604,0.070037,0.976126,-2.975439,-3.308754,1.25324,
+ 0.089482,-0.029551,0.99555,-3.091252,-3.340925,1.235864,
+ -0.028076,0.054588,0.998114,-3.030627,-3.493327,1.32265,
+ 0.205604,0.070037,0.976126,-2.975439,-3.308754,1.25324,
+ -0.028076,0.054588,0.998114,-3.030627,-3.493327,1.32265,
+ 0.580504,-0.526296,0.621312,-2.856957,-3.449728,1.356844,
+ 0.405755,-0.293021,0.865737,-3.042899,-3.193907,1.207296,
+ 0.487947,-0.44627,0.750167,-3.135041,-3.243787,1.189436,
+ 0.089482,-0.029551,0.99555,-3.091252,-3.340925,1.235864,
+ 0.405755,-0.293021,0.865737,-3.042899,-3.193907,1.207296,
+ 0.089482,-0.029551,0.99555,-3.091252,-3.340925,1.235864,
+ 0.205604,0.070037,0.976126,-2.975439,-3.308754,1.25324,
+ 0.177373,0.037311,0.983436,-2.787341,-3.278502,1.138621,
+ 0.193496,0.00102,0.981101,-2.845816,-3.273661,1.218321,
+ 0.011655,0.055061,0.998415,-2.736599,-3.394849,1.269577,
+ 0.177373,0.037311,0.983436,-2.787341,-3.278502,1.138621,
+ 0.011655,0.055061,0.998415,-2.736599,-3.394849,1.269577,
+ -0.048366,0.138166,0.989227,-2.699957,-3.390295,1.185593,
+ -0.308543,0.191148,0.931807,-2.822497,-3.186549,1.120984,
+ 0.254799,-0.149124,0.955426,-2.888628,-3.200302,1.210934,
+ 0.193496,0.00102,0.981101,-2.845816,-3.273661,1.218321,
+ -0.308543,0.191148,0.931807,-2.822497,-3.186549,1.120984,
+ 0.193496,0.00102,0.981101,-2.845816,-3.273661,1.218321,
+ 0.177373,0.037311,0.983436,-2.787341,-3.278502,1.138621,
+ -0.206994,0.072903,0.975622,-2.770335,-3.208138,1.031045,
+ -0.161613,0.16539,0.972896,-2.884711,-3.063896,0.993766,
+ 0.07463,0.029476,0.996776,-2.90901,-3.084482,1.089147,
+ -0.206994,0.072903,0.975622,-2.770335,-3.208138,1.031045,
+ 0.07463,0.029476,0.996776,-2.90901,-3.084482,1.089147,
+ -0.308543,0.191148,0.931807,-2.822497,-3.186549,1.120984,
+ -0.730585,0.298655,0.614045,-3.158524,-3.405872,1.197099,
+ 0.089482,-0.029551,0.99555,-3.091252,-3.340925,1.235864,
+ 0.487947,-0.44627,0.750167,-3.135041,-3.243787,1.189436,
+ -0.730585,0.298655,0.614045,-3.158524,-3.405872,1.197099,
+ 0.487947,-0.44627,0.750167,-3.135041,-3.243787,1.189436,
+ -0.059163,0.13391,0.989226,-3.184143,-3.298048,1.156892,
+ -0.028076,0.054588,0.998114,-3.030627,-3.493327,1.32265,
+ 0.089482,-0.029551,0.99555,-3.091252,-3.340925,1.235864,
+ -0.730585,0.298655,0.614045,-3.158524,-3.405872,1.197099,
+ -0.028076,0.054588,0.998114,-3.030627,-3.493327,1.32265,
+ -0.730585,0.298655,0.614045,-3.158524,-3.405872,1.197099,
+ -0.498861,0.185917,0.846506,-3.09873,-3.539123,1.252987,
+ -0.498861,0.185917,0.846506,-3.09873,-3.539123,1.252987,
+ -0.057735,0.03099,0.997851,-2.981824,-3.608887,1.346959,
+ -0.028076,0.054588,0.998114,-3.030627,-3.493327,1.32265,
+ 0.254799,-0.149124,0.955426,-2.888628,-3.200302,1.210934,
+ -0.308543,0.191148,0.931807,-2.822497,-3.186549,1.120984,
+ -0.541406,0.227835,0.809302,-3.03125,-3.09594,1.106355,
+ -0.626758,0.377346,0.681751,-3.19417,-3.348553,1.007196,
+ -0.059163,0.13391,0.989226,-3.184143,-3.298048,1.156892,
+ 0.085126,0.114843,0.98973,-3.217306,-3.187686,1.075214,
+ -0.626758,0.377346,0.681751,-3.19417,-3.348553,1.007196,
+ 0.085126,0.114843,0.98973,-3.217306,-3.187686,1.075214,
+ -0.588311,0.26373,0.764419,-3.223246,-3.225388,0.976573,
+ -0.670566,0.283017,-0.685743,-2.922908,-3.637036,1.059206,
+ -0.057735,0.03099,0.997851,-2.981824,-3.608887,1.346959,
+ -0.498861,0.185917,0.846506,-3.09873,-3.539123,1.252987,
+ -0.670566,0.283017,-0.685743,-2.922908,-3.637036,1.059206,
+ -0.498861,0.185917,0.846506,-3.09873,-3.539123,1.252987,
+ -0.738865,0.325814,-0.589851,-3.082741,-3.598298,1.054556,
+ -0.701121,0.259575,-0.664117,-3.18675,-3.457336,1.025606,
+ -0.730585,0.298655,0.614045,-3.158524,-3.405872,1.197099,
+ -0.059163,0.13391,0.989226,-3.184143,-3.298048,1.156892,
+ -0.701121,0.259575,-0.664117,-3.18675,-3.457336,1.025606,
+ -0.059163,0.13391,0.989226,-3.184143,-3.298048,1.156892,
+ -0.626758,0.377346,0.681751,-3.19417,-3.348553,1.007196,
+ -0.738865,0.325814,-0.589851,-3.082741,-3.598298,1.054556,
+ -0.498861,0.185917,0.846506,-3.09873,-3.539123,1.252987,
+ -0.730585,0.298655,0.614045,-3.158524,-3.405872,1.197099,
+ -0.738865,0.325814,-0.589851,-3.082741,-3.598298,1.054556,
+ -0.730585,0.298655,0.614045,-3.158524,-3.405872,1.197099,
+ -0.701121,0.259575,-0.664117,-3.18675,-3.457336,1.025606,
+ -0.588311,0.26373,0.764419,-3.223246,-3.225388,0.976573,
+ -0.64352,0.086605,-0.760514,-3.11957,-3.183977,0.870739,
+ -0.382827,0.20765,-0.900181,-3.087335,-3.350463,0.831656,
+ -0.588311,0.26373,0.764419,-3.223246,-3.225388,0.976573,
+ -0.382827,0.20765,-0.900181,-3.087335,-3.350463,0.831656,
+ -0.626758,0.377346,0.681751,-3.19417,-3.348553,1.007196,
+ -0.382827,0.20765,-0.900181,-3.087335,-3.350463,0.831656,
+ -0.421241,0.09636,-0.901815,-3.074557,-3.486847,0.843432,
+ -0.701121,0.259575,-0.664117,-3.18675,-3.457336,1.025606,
+ -0.382827,0.20765,-0.900181,-3.087335,-3.350463,0.831656,
+ -0.701121,0.259575,-0.664117,-3.18675,-3.457336,1.025606,
+ -0.626758,0.377346,0.681751,-3.19417,-3.348553,1.007196,
+ -0.482826,-0.146891,-0.863309,-3.006867,-3.575464,0.830221,
+ -0.738865,0.325814,-0.589851,-3.082741,-3.598298,1.054556,
+ -0.701121,0.259575,-0.664117,-3.18675,-3.457336,1.025606,
+ -0.482826,-0.146891,-0.863309,-3.006867,-3.575464,0.830221,
+ -0.701121,0.259575,-0.664117,-3.18675,-3.457336,1.025606,
+ -0.421241,0.09636,-0.901815,-3.074557,-3.486847,0.843432,
+ -0.562406,-0.352304,-0.748051,-2.870422,-3.601724,0.843123,
+ -0.670566,0.283017,-0.685743,-2.922908,-3.637036,1.059206,
+ -0.738865,0.325814,-0.589851,-3.082741,-3.598298,1.054556,
+ -0.562406,-0.352304,-0.748051,-2.870422,-3.601724,0.843123,
+ -0.738865,0.325814,-0.589851,-3.082741,-3.598298,1.054556,
+ -0.482826,-0.146891,-0.863309,-3.006867,-3.575464,0.830221,
+ 0.115225,0.169061,-0.978847,-2.740824,-3.597601,0.875006,
+ 0.024044,0.175693,-0.984151,-2.791754,-3.635993,1.078555,
+ -0.670566,0.283017,-0.685743,-2.922908,-3.637036,1.059206,
+ 0.115225,0.169061,-0.978847,-2.740824,-3.597601,0.875006,
+ -0.670566,0.283017,-0.685743,-2.922908,-3.637036,1.059206,
+ -0.562406,-0.352304,-0.748051,-2.870422,-3.601724,0.843123,
+ 0.405755,-0.293021,0.865737,-3.042899,-3.193907,1.207296,
+ 0.254799,-0.149124,0.955426,-2.888628,-3.200302,1.210934,
+ -0.541406,0.227835,0.809302,-3.03125,-3.09594,1.106355,
+ 0.405755,-0.293021,0.865737,-3.042899,-3.193907,1.207296,
+ -0.541406,0.227835,0.809302,-3.03125,-3.09594,1.106355,
+ -0.125911,-0.68432,-0.718229,-3.121673,-3.120319,1.136456,
+ 0.487947,-0.44627,0.750167,-3.135041,-3.243787,1.189436,
+ 0.405755,-0.293021,0.865737,-3.042899,-3.193907,1.207296,
+ -0.125911,-0.68432,-0.718229,-3.121673,-3.120319,1.136456,
+ 0.487947,-0.44627,0.750167,-3.135041,-3.243787,1.189436,
+ -0.125911,-0.68432,-0.718229,-3.121673,-3.120319,1.136456,
+ 0.535863,0.090315,-0.83946,-3.169546,-3.135273,1.128247,
+ -0.059163,0.13391,0.989226,-3.184143,-3.298048,1.156892,
+ 0.487947,-0.44627,0.750167,-3.135041,-3.243787,1.189436,
+ 0.535863,0.090315,-0.83946,-3.169546,-3.135273,1.128247,
+ -0.059163,0.13391,0.989226,-3.184143,-3.298048,1.156892,
+ 0.535863,0.090315,-0.83946,-3.169546,-3.135273,1.128247,
+ 0.085126,0.114843,0.98973,-3.217306,-3.187686,1.075214,
+ 0.199599,0.097869,-0.974978,-2.80326,-3.21358,0.942403,
+ 0.236645,-0.06852,-0.969177,-2.928681,-3.072892,0.924772,
+ -0.161613,0.16539,0.972896,-2.884711,-3.063896,0.993766,
+ 0.199599,0.097869,-0.974978,-2.80326,-3.21358,0.942403,
+ -0.161613,0.16539,0.972896,-2.884711,-3.063896,0.993766,
+ -0.206994,0.072903,0.975622,-2.770335,-3.208138,1.031045,
+ 0.177373,0.037311,0.983436,-2.787341,-3.278502,1.138621,
+ 0.159383,-0.507401,-0.846842,-2.749355,-3.272099,1.034148,
+ -0.206994,0.072903,0.975622,-2.770335,-3.208138,1.031045,
+ 0.177373,0.037311,0.983436,-2.787341,-3.278502,1.138621,
+ -0.206994,0.072903,0.975622,-2.770335,-3.208138,1.031045,
+ -0.308543,0.191148,0.931807,-2.822497,-3.186549,1.120984,
+ -0.026425,0.178249,0.983631,-2.631547,-3.559891,1.33738,
+ 0.35124,-0.91474,-0.199704,-2.58358,-3.514267,1.278598,
+ -0.048366,0.138166,0.989227,-2.699957,-3.390295,1.185593,
+ -0.026425,0.178249,0.983631,-2.631547,-3.559891,1.33738,
+ -0.048366,0.138166,0.989227,-2.699957,-3.390295,1.185593,
+ 0.011655,0.055061,0.998415,-2.736599,-3.394849,1.269577,
+ 0.285409,-0.933801,-0.215773,-2.52472,-3.561609,1.161535,
+ -0.97518,0.20982,-0.070713,-2.649491,-3.404362,1.100352,
+ -0.048366,0.138166,0.989227,-2.699957,-3.390295,1.185593,
+ 0.285409,-0.933801,-0.215773,-2.52472,-3.561609,1.161535,
+ -0.048366,0.138166,0.989227,-2.699957,-3.390295,1.185593,
+ 0.35124,-0.91474,-0.199704,-2.58358,-3.514267,1.278598,
+ 0.159383,-0.507401,-0.846842,-2.749355,-3.272099,1.034148,
+ 0.177373,0.037311,0.983436,-2.787341,-3.278502,1.138621,
+ -0.048366,0.138166,0.989227,-2.699957,-3.390295,1.185593,
+ 0.159383,-0.507401,-0.846842,-2.749355,-3.272099,1.034148,
+ -0.048366,0.138166,0.989227,-2.699957,-3.390295,1.185593,
+ -0.97518,0.20982,-0.070713,-2.649491,-3.404362,1.100352,
+ -0.999995,0.003039,0.000095,-2.593513,-3.536154,0.94245,
+ -0.830756,0.127038,0.541946,-2.668957,-3.397513,0.943626,
+ -0.97518,0.20982,-0.070713,-2.649491,-3.404362,1.100352,
+ -0.999995,0.003039,0.000095,-2.593513,-3.536154,0.94245,
+ -0.97518,0.20982,-0.070713,-2.649491,-3.404362,1.100352,
+ 0.285409,-0.933801,-0.215773,-2.52472,-3.561609,1.161535,
+ -0.874688,-0.025586,0.48401,-2.749867,-3.295148,0.966073,
+ 0.159383,-0.507401,-0.846842,-2.749355,-3.272099,1.034148,
+ -0.97518,0.20982,-0.070713,-2.649491,-3.404362,1.100352,
+ -0.874688,-0.025586,0.48401,-2.749867,-3.295148,0.966073,
+ -0.97518,0.20982,-0.070713,-2.649491,-3.404362,1.100352,
+ -0.830756,0.127038,0.541946,-2.668957,-3.397513,0.943626,
+ 0.199599,0.097869,-0.974978,-2.80326,-3.21358,0.942403,
+ -0.206994,0.072903,0.975622,-2.770335,-3.208138,1.031045,
+ 0.159383,-0.507401,-0.846842,-2.749355,-3.272099,1.034148,
+ 0.199599,0.097869,-0.974978,-2.80326,-3.21358,0.942403,
+ 0.159383,-0.507401,-0.846842,-2.749355,-3.272099,1.034148,
+ -0.874688,-0.025586,0.48401,-2.749867,-3.295148,0.966073,
+ -0.860798,0.234294,0.451812,-3.011987,-3.092,0.860973,
+ -0.405387,0.054444,0.912522,-2.944625,-3.282121,0.817054,
+ -0.382827,0.20765,-0.900181,-3.087335,-3.350463,0.831656,
+ -0.860798,0.234294,0.451812,-3.011987,-3.092,0.860973,
+ -0.382827,0.20765,-0.900181,-3.087335,-3.350463,0.831656,
+ -0.64352,0.086605,-0.760514,-3.11957,-3.183977,0.870739,
+ 0.236645,-0.06852,-0.969177,-2.928681,-3.072892,0.924772,
+ 0.199599,0.097869,-0.974978,-2.80326,-3.21358,0.942403,
+ -0.405387,0.054444,0.912522,-2.944625,-3.282121,0.817054,
+ 0.236645,-0.06852,-0.969177,-2.928681,-3.072892,0.924772,
+ -0.405387,0.054444,0.912522,-2.944625,-3.282121,0.817054,
+ -0.860798,0.234294,0.451812,-3.011987,-3.092,0.860973,
+ -0.405387,0.054444,0.912522,-2.944625,-3.282121,0.817054,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ -0.421241,0.09636,-0.901815,-3.074557,-3.486847,0.843432,
+ -0.405387,0.054444,0.912522,-2.944625,-3.282121,0.817054,
+ -0.421241,0.09636,-0.901815,-3.074557,-3.486847,0.843432,
+ -0.382827,0.20765,-0.900181,-3.087335,-3.350463,0.831656,
+ 0.199599,0.097869,-0.974978,-2.80326,-3.21358,0.942403,
+ -0.874688,-0.025586,0.48401,-2.749867,-3.295148,0.966073,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ 0.199599,0.097869,-0.974978,-2.80326,-3.21358,0.942403,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ -0.405387,0.054444,0.912522,-2.944625,-3.282121,0.817054,
+ -0.482826,-0.146891,-0.863309,-3.006867,-3.575464,0.830221,
+ -0.421241,0.09636,-0.901815,-3.074557,-3.486847,0.843432,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ -0.482826,-0.146891,-0.863309,-3.006867,-3.575464,0.830221,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ -0.562406,-0.352304,-0.748051,-2.870422,-3.601724,0.843123,
+ -0.830756,0.127038,0.541946,-2.668957,-3.397513,0.943626,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ -0.874688,-0.025586,0.48401,-2.749867,-3.295148,0.966073,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ 0.115225,0.169061,-0.978847,-2.740824,-3.597601,0.875006,
+ -0.562406,-0.352304,-0.748051,-2.870422,-3.601724,0.843123,
+ 0.115225,0.169061,-0.978847,-2.740824,-3.597601,0.875006,
+ -0.51506,-0.054833,0.855398,-2.890885,-3.415616,0.819125,
+ -0.830756,0.127038,0.541946,-2.668957,-3.397513,0.943626,
+ 0.115225,0.169061,-0.978847,-2.740824,-3.597601,0.875006,
+ -0.830756,0.127038,0.541946,-2.668957,-3.397513,0.943626,
+ -0.999995,0.003039,0.000095,-2.593513,-3.536154,0.94245,
+ 0.024044,0.175693,-0.984151,-2.791754,-3.635993,1.078555,
+ 0.115225,0.169061,-0.978847,-2.740824,-3.597601,0.875006,
+ -0.999995,0.003039,0.000095,-2.593513,-3.536154,0.94245,
+ 0.024044,0.175693,-0.984151,-2.791754,-3.635993,1.078555,
+ -0.999995,0.003039,0.000095,-2.593513,-3.536154,0.94245,
+ 0.285409,-0.933801,-0.215773,-2.52472,-3.561609,1.161535,
+ 0.024044,0.175693,-0.984151,-2.791754,-3.635993,1.078555,
+ -0.093334,0.204552,0.974396,-2.729567,-3.602976,1.377236,
+ -0.057735,0.03099,0.997851,-2.981824,-3.608887,1.346959,
+ 0.024044,0.175693,-0.984151,-2.791754,-3.635993,1.078555,
+ -0.057735,0.03099,0.997851,-2.981824,-3.608887,1.346959,
+ -0.670566,0.283017,-0.685743,-2.922908,-3.637036,1.059206,
+ -0.308543,0.191148,0.931807,-2.822497,-3.186549,1.120984,
+ 0.07463,0.029476,0.996776,-2.90901,-3.084482,1.089147,
+ -0.541406,0.227835,0.809302,-3.03125,-3.09594,1.106355,
+ 0.285409,-0.933801,-0.215773,-2.52472,-3.561609,1.161535,
+ 0.35124,-0.91474,-0.199704,-2.58358,-3.514267,1.278598,
+ -0.026425,0.178249,0.983631,-2.631547,-3.559891,1.33738,
+ 0.285409,-0.933801,-0.215773,-2.52472,-3.561609,1.161535,
+ -0.026425,0.178249,0.983631,-2.631547,-3.559891,1.33738,
+ -0.093334,0.204552,0.974396,-2.729567,-3.602976,1.377236,
+ 0.285409,-0.933801,-0.215773,-2.52472,-3.561609,1.161535,
+ -0.093334,0.204552,0.974396,-2.729567,-3.602976,1.377236,
+ 0.024044,0.175693,-0.984151,-2.791754,-3.635993,1.078555
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1032,data,NULL};
+const struct gllist *cow_hoofs=&frame;
diff --git a/hacks/glx/cow_horns.c b/hacks/glx/cow_horns.c
new file mode 100644
index 0000000..2d5dbe9
--- /dev/null
+++ b/hacks/glx/cow_horns.c
@@ -0,0 +1,1025 @@
+#include "gllist.h"
+static const float data[]={
+ -0.000715,-0.295728,0.955272,4.22473,2.624525,-0.491916,
+ -0.03479,0.69667,0.716547,4.209941,2.600612,-0.337597,
+ -0.01139,0.953897,0.299916,4.328606,2.563996,-0.343892,
+ -0.000715,-0.295728,0.955272,4.22473,2.624525,-0.491916,
+ -0.01139,0.953897,0.299916,4.328606,2.563996,-0.343892,
+ -0.163152,0.69985,0.695407,4.344028,2.585635,-0.470949,
+ -0.163152,0.69985,0.695407,4.344028,2.585635,-0.470949,
+ -0.01139,0.953897,0.299916,4.328606,2.563996,-0.343892,
+ -0.151742,0.274295,0.949598,4.410844,2.500167,-0.351972,
+ -0.163152,0.69985,0.695407,4.344028,2.585635,-0.470949,
+ -0.151742,0.274295,0.949598,4.410844,2.500167,-0.351972,
+ -0.090939,0.953562,0.287141,4.407729,2.53164,-0.486692,
+ 0.008972,0.708004,0.706152,4.277169,2.652435,-0.591369,
+ -0.000715,-0.295728,0.955272,4.22473,2.624525,-0.491916,
+ -0.163152,0.69985,0.695407,4.344028,2.585635,-0.470949,
+ 0.008972,0.708004,0.706152,4.277169,2.652435,-0.591369,
+ -0.163152,0.69985,0.695407,4.344028,2.585635,-0.470949,
+ 0.809878,-0.450757,-0.375386,4.359483,2.615839,-0.596817,
+ 0.809878,-0.450757,-0.375386,4.359483,2.615839,-0.596817,
+ -0.163152,0.69985,0.695407,4.344028,2.585635,-0.470949,
+ -0.090939,0.953562,0.287141,4.407729,2.53164,-0.486692,
+ 0.809878,-0.450757,-0.375386,4.359483,2.615839,-0.596817,
+ -0.090939,0.953562,0.287141,4.407729,2.53164,-0.486692,
+ 0.795507,-0.586003,-0.154171,4.423033,2.561337,-0.603562,
+ 0.743898,-0.655714,0.129057,4.35668,2.682996,-0.71905,
+ 0.008972,0.708004,0.706152,4.277169,2.652435,-0.591369,
+ 0.809878,-0.450757,-0.375386,4.359483,2.615839,-0.596817,
+ 0.743898,-0.655714,0.129057,4.35668,2.682996,-0.71905,
+ 0.809878,-0.450757,-0.375386,4.359483,2.615839,-0.596817,
+ 0.083641,-0.819891,-0.566378,4.411541,2.663824,-0.713132,
+ 0.083641,-0.819891,-0.566378,4.411541,2.663824,-0.713132,
+ 0.809878,-0.450757,-0.375386,4.359483,2.615839,-0.596817,
+ 0.795507,-0.586003,-0.154171,4.423033,2.561337,-0.603562,
+ 0.083641,-0.819891,-0.566378,4.411541,2.663824,-0.713132,
+ 0.795507,-0.586003,-0.154171,4.423033,2.561337,-0.603562,
+ 0.042118,-0.881894,-0.469563,4.47609,2.606654,-0.692301,
+ 0.713982,0.301536,-0.631907,4.418954,2.707401,-0.782531,
+ 0.743898,-0.655714,0.129057,4.35668,2.682996,-0.71905,
+ 0.083641,-0.819891,-0.566378,4.411541,2.663824,-0.713132,
+ 0.713982,0.301536,-0.631907,4.418954,2.707401,-0.782531,
+ 0.083641,-0.819891,-0.566378,4.411541,2.663824,-0.713132,
+ 0.086688,-0.887002,-0.453556,4.465268,2.695425,-0.757267,
+ 0.083641,-0.819891,-0.566378,4.411541,2.663824,-0.713132,
+ 0.042118,-0.881894,-0.469563,4.47609,2.606654,-0.692301,
+ 0.571341,-0.68069,0.458509,4.520603,2.639162,-0.745542,
+ 0.083641,-0.819891,-0.566378,4.411541,2.663824,-0.713132,
+ 0.571341,-0.68069,0.458509,4.520603,2.639162,-0.745542,
+ 0.086688,-0.887002,-0.453556,4.465268,2.695425,-0.757267,
+ 0.176955,-0.903058,-0.391373,4.509555,2.719807,-0.819972,
+ 0.713982,0.301536,-0.631907,4.418954,2.707401,-0.782531,
+ 0.086688,-0.887002,-0.453556,4.465268,2.695425,-0.757267,
+ 0.176955,-0.903058,-0.391373,4.509555,2.719807,-0.819972,
+ 0.086688,-0.887002,-0.453556,4.465268,2.695425,-0.757267,
+ 0.388502,-0.664299,0.638571,4.546655,2.709095,-0.80378,
+ 0.086688,-0.887002,-0.453556,4.465268,2.695425,-0.757267,
+ 0.571341,-0.68069,0.458509,4.520603,2.639162,-0.745542,
+ 0.21141,-0.953268,-0.215838,4.574545,2.669863,-0.780363,
+ 0.086688,-0.887002,-0.453556,4.465268,2.695425,-0.757267,
+ 0.21141,-0.953268,-0.215838,4.574545,2.669863,-0.780363,
+ 0.388502,-0.664299,0.638571,4.546655,2.709095,-0.80378,
+ -0.090939,0.953562,0.287141,4.407729,2.53164,-0.486692,
+ -0.151742,0.274295,0.949598,4.410844,2.500167,-0.351972,
+ 0.288841,-0.745301,0.600914,4.474318,2.418432,-0.361347,
+ -0.090939,0.953562,0.287141,4.407729,2.53164,-0.486692,
+ 0.288841,-0.745301,0.600914,4.474318,2.418432,-0.361347,
+ 0.237421,-0.963021,-0.127365,4.44385,2.449921,-0.495432,
+ 0.795507,-0.586003,-0.154171,4.423033,2.561337,-0.603562,
+ -0.090939,0.953562,0.287141,4.407729,2.53164,-0.486692,
+ 0.237421,-0.963021,-0.127365,4.44385,2.449921,-0.495432,
+ 0.795507,-0.586003,-0.154171,4.423033,2.561337,-0.603562,
+ 0.237421,-0.963021,-0.127365,4.44385,2.449921,-0.495432,
+ 0.157921,-0.851177,0.500558,4.44076,2.490353,-0.629287,
+ 0.042118,-0.881894,-0.469563,4.47609,2.606654,-0.692301,
+ 0.795507,-0.586003,-0.154171,4.423033,2.561337,-0.603562,
+ 0.157921,-0.851177,0.500558,4.44076,2.490353,-0.629287,
+ 0.042118,-0.881894,-0.469563,4.47609,2.606654,-0.692301,
+ 0.157921,-0.851177,0.500558,4.44076,2.490353,-0.629287,
+ 0.254106,-0.95176,-0.171999,4.484667,2.534451,-0.708888,
+ 0.571341,-0.68069,0.458509,4.520603,2.639162,-0.745542,
+ 0.042118,-0.881894,-0.469563,4.47609,2.606654,-0.692301,
+ 0.254106,-0.95176,-0.171999,4.484667,2.534451,-0.708888,
+ 0.571341,-0.68069,0.458509,4.520603,2.639162,-0.745542,
+ 0.254106,-0.95176,-0.171999,4.484667,2.534451,-0.708888,
+ 0.165259,-0.797056,0.580854,4.520165,2.557971,-0.762427,
+ 0.21141,-0.953268,-0.215838,4.574545,2.669863,-0.780363,
+ 0.571341,-0.68069,0.458509,4.520603,2.639162,-0.745542,
+ 0.165259,-0.797056,0.580854,4.520165,2.557971,-0.762427,
+ 0.21141,-0.953268,-0.215838,4.574545,2.669863,-0.780363,
+ 0.165259,-0.797056,0.580854,4.520165,2.557971,-0.762427,
+ 0.243744,-0.944481,-0.220328,4.59262,2.569879,-0.790452,
+ 0.209939,-0.930128,-0.301309,4.656565,2.680542,-0.799684,
+ 0.21141,-0.953268,-0.215838,4.574545,2.669863,-0.780363,
+ 0.243744,-0.944481,-0.220328,4.59262,2.569879,-0.790452,
+ 0.209939,-0.930128,-0.301309,4.656565,2.680542,-0.799684,
+ 0.243744,-0.944481,-0.220328,4.59262,2.569879,-0.790452,
+ -0.05208,-0.715695,-0.696469,4.674691,2.598833,-0.808006,
+ 0.287073,-0.905921,-0.311283,4.646703,2.728688,-0.822295,
+ 0.388502,-0.664299,0.638571,4.546655,2.709095,-0.80378,
+ 0.21141,-0.953268,-0.215838,4.574545,2.669863,-0.780363,
+ 0.287073,-0.905921,-0.311283,4.646703,2.728688,-0.822295,
+ 0.21141,-0.953268,-0.215838,4.574545,2.669863,-0.780363,
+ 0.209939,-0.930128,-0.301309,4.656565,2.680542,-0.799684,
+ 0.267121,-0.895396,-0.356249,4.636909,2.750501,-0.856859,
+ 0.176955,-0.903058,-0.391373,4.509555,2.719807,-0.819972,
+ 0.388502,-0.664299,0.638571,4.546655,2.709095,-0.80378,
+ 0.267121,-0.895396,-0.356249,4.636909,2.750501,-0.856859,
+ 0.388502,-0.664299,0.638571,4.546655,2.709095,-0.80378,
+ 0.287073,-0.905921,-0.311283,4.646703,2.728688,-0.822295,
+ -0.290459,-0.499809,-0.815981,4.748031,2.683805,-0.800044,
+ 0.209939,-0.930128,-0.301309,4.656565,2.680542,-0.799684,
+ -0.05208,-0.715695,-0.696469,4.674691,2.598833,-0.808006,
+ -0.290459,-0.499809,-0.815981,4.748031,2.683805,-0.800044,
+ -0.05208,-0.715695,-0.696469,4.674691,2.598833,-0.808006,
+ -0.501597,-0.526154,-0.686704,4.729447,2.606204,-0.807513,
+ -0.538845,-0.659239,-0.524452,4.728931,2.721892,-0.832625,
+ 0.287073,-0.905921,-0.311283,4.646703,2.728688,-0.822295,
+ 0.209939,-0.930128,-0.301309,4.656565,2.680542,-0.799684,
+ -0.538845,-0.659239,-0.524452,4.728931,2.721892,-0.832625,
+ 0.209939,-0.930128,-0.301309,4.656565,2.680542,-0.799684,
+ -0.290459,-0.499809,-0.815981,4.748031,2.683805,-0.800044,
+ -0.53682,-0.608254,-0.58468,4.719171,2.751091,-0.865965,
+ 0.267121,-0.895396,-0.356249,4.636909,2.750501,-0.856859,
+ 0.287073,-0.905921,-0.311283,4.646703,2.728688,-0.822295,
+ -0.53682,-0.608254,-0.58468,4.719171,2.751091,-0.865965,
+ 0.287073,-0.905921,-0.311283,4.646703,2.728688,-0.822295,
+ -0.538845,-0.659239,-0.524452,4.728931,2.721892,-0.832625,
+ -0.635876,0.32433,-0.700337,4.821325,2.691794,-0.791887,
+ -0.290459,-0.499809,-0.815981,4.748031,2.683805,-0.800044,
+ -0.501597,-0.526154,-0.686704,4.729447,2.606204,-0.807513,
+ -0.635876,0.32433,-0.700337,4.821325,2.691794,-0.791887,
+ -0.501597,-0.526154,-0.686704,4.729447,2.606204,-0.807513,
+ -0.376273,-0.14016,-0.915846,4.821336,2.621498,-0.789636,
+ -0.508573,-0.111047,-0.853828,4.811798,2.72868,-0.815406,
+ -0.538845,-0.659239,-0.524452,4.728931,2.721892,-0.832625,
+ -0.290459,-0.499809,-0.815981,4.748031,2.683805,-0.800044,
+ -0.508573,-0.111047,-0.853828,4.811798,2.72868,-0.815406,
+ -0.290459,-0.499809,-0.815981,4.748031,2.683805,-0.800044,
+ -0.635876,0.32433,-0.700337,4.821325,2.691794,-0.791887,
+ -0.53682,-0.608254,-0.58468,4.719171,2.751091,-0.865965,
+ -0.538845,-0.659239,-0.524452,4.728931,2.721892,-0.832625,
+ -0.508573,-0.111047,-0.853828,4.811798,2.72868,-0.815406,
+ -0.53682,-0.608254,-0.58468,4.719171,2.751091,-0.865965,
+ -0.508573,-0.111047,-0.853828,4.811798,2.72868,-0.815406,
+ -0.724543,-0.128977,-0.677054,4.801436,2.750224,-0.858918,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.724543,-0.128977,-0.677054,4.801436,2.750224,-0.858918,
+ -0.508573,-0.111047,-0.853828,4.811798,2.72868,-0.815406,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.508573,-0.111047,-0.853828,4.811798,2.72868,-0.815406,
+ -0.635876,0.32433,-0.700337,4.821325,2.691794,-0.791887,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.635876,0.32433,-0.700337,4.821325,2.691794,-0.791887,
+ -0.376273,-0.14016,-0.915846,4.821336,2.621498,-0.789636,
+ -0.903777,-0.182749,-0.387027,4.442912,2.343263,-0.53322,
+ 0.237421,-0.963021,-0.127365,4.44385,2.449921,-0.495432,
+ 0.288841,-0.745301,0.600914,4.474318,2.418432,-0.361347,
+ -0.903777,-0.182749,-0.387027,4.442912,2.343263,-0.53322,
+ 0.288841,-0.745301,0.600914,4.474318,2.418432,-0.361347,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ -0.911341,0.002265,-0.411646,4.440713,2.398472,-0.629128,
+ 0.157921,-0.851177,0.500558,4.44076,2.490353,-0.629287,
+ 0.237421,-0.963021,-0.127365,4.44385,2.449921,-0.495432,
+ -0.911341,0.002265,-0.411646,4.440713,2.398472,-0.629128,
+ 0.237421,-0.963021,-0.127365,4.44385,2.449921,-0.495432,
+ -0.903777,-0.182749,-0.387027,4.442912,2.343263,-0.53322,
+ 0.254106,-0.95176,-0.171999,4.484667,2.534451,-0.708888,
+ 0.157921,-0.851177,0.500558,4.44076,2.490353,-0.629287,
+ -0.911341,0.002265,-0.411646,4.440713,2.398472,-0.629128,
+ 0.254106,-0.95176,-0.171999,4.484667,2.534451,-0.708888,
+ -0.911341,0.002265,-0.411646,4.440713,2.398472,-0.629128,
+ -0.77316,0.344901,-0.532228,4.474625,2.465214,-0.75189,
+ -0.911341,0.002265,-0.411646,4.440713,2.398472,-0.629128,
+ -0.903777,-0.182749,-0.387027,4.442912,2.343263,-0.53322,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ -0.911341,0.002265,-0.411646,4.440713,2.398472,-0.629128,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ -0.383863,0.612068,-0.691392,4.32063,2.385528,-0.682583,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ -0.903777,-0.182749,-0.387027,4.442912,2.343263,-0.53322,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ 0.195545,0.103956,-0.975169,4.472349,2.325133,-0.443764,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ -0.77316,0.344901,-0.532228,4.474625,2.465214,-0.75189,
+ -0.911341,0.002265,-0.411646,4.440713,2.398472,-0.629128,
+ -0.383863,0.612068,-0.691392,4.32063,2.385528,-0.682583,
+ -0.77316,0.344901,-0.532228,4.474625,2.465214,-0.75189,
+ -0.383863,0.612068,-0.691392,4.32063,2.385528,-0.682583,
+ -0.911194,0.285551,-0.296961,4.382053,2.433474,-0.798757,
+ 0.165259,-0.797056,0.580854,4.520165,2.557971,-0.762427,
+ 0.254106,-0.95176,-0.171999,4.484667,2.534451,-0.708888,
+ -0.77316,0.344901,-0.532228,4.474625,2.465214,-0.75189,
+ 0.165259,-0.797056,0.580854,4.520165,2.557971,-0.762427,
+ -0.77316,0.344901,-0.532228,4.474625,2.465214,-0.75189,
+ -0.931592,0.319003,-0.174277,4.538177,2.513353,-0.776566,
+ -0.931592,0.319003,-0.174277,4.538177,2.513353,-0.776566,
+ -0.77316,0.344901,-0.532228,4.474625,2.465214,-0.75189,
+ -0.911194,0.285551,-0.296961,4.382053,2.433474,-0.798757,
+ -0.931592,0.319003,-0.174277,4.538177,2.513353,-0.776566,
+ -0.911194,0.285551,-0.296961,4.382053,2.433474,-0.798757,
+ -0.895156,0.397807,-0.201111,4.444739,2.475795,-0.860515,
+ 0.243744,-0.944481,-0.220328,4.59262,2.569879,-0.790452,
+ 0.165259,-0.797056,0.580854,4.520165,2.557971,-0.762427,
+ -0.931592,0.319003,-0.174277,4.538177,2.513353,-0.776566,
+ 0.243744,-0.944481,-0.220328,4.59262,2.569879,-0.790452,
+ -0.931592,0.319003,-0.174277,4.538177,2.513353,-0.776566,
+ -0.885174,0.439903,-0.1515,4.601515,2.533324,-0.794193,
+ -0.885174,0.439903,-0.1515,4.601515,2.533324,-0.794193,
+ -0.931592,0.319003,-0.174277,4.538177,2.513353,-0.776566,
+ -0.895156,0.397807,-0.201111,4.444739,2.475795,-0.860515,
+ -0.885174,0.439903,-0.1515,4.601515,2.533324,-0.794193,
+ -0.895156,0.397807,-0.201111,4.444739,2.475795,-0.860515,
+ -0.821561,0.369567,-0.434116,4.554459,2.511417,-0.850571,
+ -0.05208,-0.715695,-0.696469,4.674691,2.598833,-0.808006,
+ 0.243744,-0.944481,-0.220328,4.59262,2.569879,-0.790452,
+ -0.885174,0.439903,-0.1515,4.601515,2.533324,-0.794193,
+ -0.05208,-0.715695,-0.696469,4.674691,2.598833,-0.808006,
+ -0.885174,0.439903,-0.1515,4.601515,2.533324,-0.794193,
+ -0.742898,0.572423,-0.347037,4.683344,2.554221,-0.821927,
+ -0.742898,0.572423,-0.347037,4.683344,2.554221,-0.821927,
+ -0.885174,0.439903,-0.1515,4.601515,2.533324,-0.794193,
+ -0.821561,0.369567,-0.434116,4.554459,2.511417,-0.850571,
+ -0.742898,0.572423,-0.347037,4.683344,2.554221,-0.821927,
+ -0.821561,0.369567,-0.434116,4.554459,2.511417,-0.850571,
+ -0.659696,0.567803,-0.492342,4.681847,2.551036,-0.886235,
+ 0.11638,0.680313,-0.723623,4.737893,2.564648,-0.830389,
+ -0.742898,0.572423,-0.347037,4.683344,2.554221,-0.821927,
+ -0.659696,0.567803,-0.492342,4.681847,2.551036,-0.886235,
+ 0.11638,0.680313,-0.723623,4.737893,2.564648,-0.830389,
+ -0.659696,0.567803,-0.492342,4.681847,2.551036,-0.886235,
+ 0.206279,0.744918,-0.634466,4.755192,2.568818,-0.876311,
+ -0.395723,0.901671,-0.174334,4.829566,2.580797,-0.821827,
+ 0.11638,0.680313,-0.723623,4.737893,2.564648,-0.830389,
+ 0.206279,0.744918,-0.634466,4.755192,2.568818,-0.876311,
+ -0.395723,0.901671,-0.174334,4.829566,2.580797,-0.821827,
+ 0.206279,0.744918,-0.634466,4.755192,2.568818,-0.876311,
+ -0.476949,0.871028,-0.117606,4.856249,2.593812,-0.867067,
+ -0.501597,-0.526154,-0.686704,4.729447,2.606204,-0.807513,
+ -0.05208,-0.715695,-0.696469,4.674691,2.598833,-0.808006,
+ -0.742898,0.572423,-0.347037,4.683344,2.554221,-0.821927,
+ -0.501597,-0.526154,-0.686704,4.729447,2.606204,-0.807513,
+ -0.742898,0.572423,-0.347037,4.683344,2.554221,-0.821927,
+ 0.11638,0.680313,-0.723623,4.737893,2.564648,-0.830389,
+ -0.376273,-0.14016,-0.915846,4.821336,2.621498,-0.789636,
+ -0.501597,-0.526154,-0.686704,4.729447,2.606204,-0.807513,
+ 0.11638,0.680313,-0.723623,4.737893,2.564648,-0.830389,
+ -0.376273,-0.14016,-0.915846,4.821336,2.621498,-0.789636,
+ 0.11638,0.680313,-0.723623,4.737893,2.564648,-0.830389,
+ -0.395723,0.901671,-0.174334,4.829566,2.580797,-0.821827,
+ -0.590366,0.807127,0.003753,4.662221,2.556346,-0.940618,
+ -0.659696,0.567803,-0.492342,4.681847,2.551036,-0.886235,
+ -0.821561,0.369567,-0.434116,4.554459,2.511417,-0.850571,
+ -0.590366,0.807127,0.003753,4.662221,2.556346,-0.940618,
+ -0.821561,0.369567,-0.434116,4.554459,2.511417,-0.850571,
+ -0.594389,0.803108,-0.041468,4.497719,2.54748,-0.937659,
+ -0.659696,0.567803,-0.492342,4.681847,2.551036,-0.886235,
+ -0.590366,0.807127,0.003753,4.662221,2.556346,-0.940618,
+ -0.610894,0.790229,0.048447,4.763337,2.590834,-0.929248,
+ -0.659696,0.567803,-0.492342,4.681847,2.551036,-0.886235,
+ -0.610894,0.790229,0.048447,4.763337,2.590834,-0.929248,
+ 0.206279,0.744918,-0.634466,4.755192,2.568818,-0.876311,
+ -0.091114,0.94565,-0.312161,4.883022,2.613658,-0.893163,
+ -0.476949,0.871028,-0.117606,4.856249,2.593812,-0.867067,
+ 0.206279,0.744918,-0.634466,4.755192,2.568818,-0.876311,
+ -0.091114,0.94565,-0.312161,4.883022,2.613658,-0.893163,
+ 0.206279,0.744918,-0.634466,4.755192,2.568818,-0.876311,
+ -0.610894,0.790229,0.048447,4.763337,2.590834,-0.929248,
+ -0.821561,0.369567,-0.434116,4.554459,2.511417,-0.850571,
+ -0.895156,0.397807,-0.201111,4.444739,2.475795,-0.860515,
+ -0.216454,0.960138,-0.176868,4.352603,2.524888,-0.890532,
+ -0.821561,0.369567,-0.434116,4.554459,2.511417,-0.850571,
+ -0.216454,0.960138,-0.176868,4.352603,2.524888,-0.890532,
+ -0.594389,0.803108,-0.041468,4.497719,2.54748,-0.937659,
+ -0.216454,0.960138,-0.176868,4.352603,2.524888,-0.890532,
+ -0.895156,0.397807,-0.201111,4.444739,2.475795,-0.860515,
+ -0.911194,0.285551,-0.296961,4.382053,2.433474,-0.798757,
+ -0.216454,0.960138,-0.176868,4.352603,2.524888,-0.890532,
+ -0.911194,0.285551,-0.296961,4.382053,2.433474,-0.798757,
+ -0.283496,0.953866,-0.098841,4.262798,2.490674,-0.818316,
+ -0.283496,0.953866,-0.098841,4.262798,2.490674,-0.818316,
+ -0.911194,0.285551,-0.296961,4.382053,2.433474,-0.798757,
+ -0.383863,0.612068,-0.691392,4.32063,2.385528,-0.682583,
+ -0.283496,0.953866,-0.098841,4.262798,2.490674,-0.818316,
+ -0.383863,0.612068,-0.691392,4.32063,2.385528,-0.682583,
+ -0.421167,0.906102,-0.039984,4.192789,2.411967,-0.668016,
+ -0.421167,0.906102,-0.039984,4.192789,2.411967,-0.668016,
+ -0.383863,0.612068,-0.691392,4.32063,2.385528,-0.682583,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ -0.421167,0.906102,-0.039984,4.192789,2.411967,-0.668016,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ -0.557881,0.828586,0.047047,4.193959,2.370476,-0.616705,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.557881,0.828586,0.047047,4.193959,2.370476,-0.616705,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.566117,0.431682,-0.702255,4.314039,2.32946,-0.57751,
+ -0.091679,0.768658,-0.633056,4.296769,2.260422,-0.528796,
+ -0.091114,0.94565,-0.312161,4.883022,2.613658,-0.893163,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.476949,0.871028,-0.117606,4.856249,2.593812,-0.867067,
+ -0.610894,0.790229,0.048447,4.763337,2.590834,-0.929248,
+ -0.678216,0.658343,-0.326508,4.735139,2.645464,-0.95089,
+ 0.05537,0.916343,-0.396546,4.854957,2.660227,-0.92431,
+ -0.610894,0.790229,0.048447,4.763337,2.590834,-0.929248,
+ 0.05537,0.916343,-0.396546,4.854957,2.660227,-0.92431,
+ -0.091114,0.94565,-0.312161,4.883022,2.613658,-0.893163,
+ -0.590366,0.807127,0.003753,4.662221,2.556346,-0.940618,
+ 0.090337,0.942369,-0.32215,4.615662,2.63387,-0.977986,
+ -0.678216,0.658343,-0.326508,4.735139,2.645464,-0.95089,
+ -0.590366,0.807127,0.003753,4.662221,2.556346,-0.940618,
+ -0.678216,0.658343,-0.326508,4.735139,2.645464,-0.95089,
+ -0.610894,0.790229,0.048447,4.763337,2.590834,-0.929248,
+ -0.594389,0.803108,-0.041468,4.497719,2.54748,-0.937659,
+ -0.560855,0.735161,-0.380763,4.460582,2.622875,-0.957002,
+ 0.090337,0.942369,-0.32215,4.615662,2.63387,-0.977986,
+ -0.594389,0.803108,-0.041468,4.497719,2.54748,-0.937659,
+ 0.090337,0.942369,-0.32215,4.615662,2.63387,-0.977986,
+ -0.590366,0.807127,0.003753,4.662221,2.556346,-0.940618,
+ -0.216454,0.960138,-0.176868,4.352603,2.524888,-0.890532,
+ -0.641133,0.599375,-0.479267,4.343217,2.589542,-0.893106,
+ -0.560855,0.735161,-0.380763,4.460582,2.622875,-0.957002,
+ -0.216454,0.960138,-0.176868,4.352603,2.524888,-0.890532,
+ -0.560855,0.735161,-0.380763,4.460582,2.622875,-0.957002,
+ -0.594389,0.803108,-0.041468,4.497719,2.54748,-0.937659,
+ -0.283496,0.953866,-0.098841,4.262798,2.490674,-0.818316,
+ -0.760994,0.140162,-0.633436,4.244622,2.554467,-0.811726,
+ -0.641133,0.599375,-0.479267,4.343217,2.589542,-0.893106,
+ -0.283496,0.953866,-0.098841,4.262798,2.490674,-0.818316,
+ -0.641133,0.599375,-0.479267,4.343217,2.589542,-0.893106,
+ -0.216454,0.960138,-0.176868,4.352603,2.524888,-0.890532,
+ -0.421167,0.906102,-0.039984,4.192789,2.411967,-0.668016,
+ -0.411843,0.771855,-0.484381,4.138687,2.474013,-0.642311,
+ -0.760994,0.140162,-0.633436,4.244622,2.554467,-0.811726,
+ -0.421167,0.906102,-0.039984,4.192789,2.411967,-0.668016,
+ -0.760994,0.140162,-0.633436,4.244622,2.554467,-0.811726,
+ -0.283496,0.953866,-0.098841,4.262798,2.490674,-0.818316,
+ -0.091114,0.94565,-0.312161,4.883022,2.613658,-0.893163,
+ 0.05537,0.916343,-0.396546,4.854957,2.660227,-0.92431,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.395036,0.74012,-0.544214,4.121994,2.458034,-0.570029,
+ -0.411843,0.771855,-0.484381,4.138687,2.474013,-0.642311,
+ -0.421167,0.906102,-0.039984,4.192789,2.411967,-0.668016,
+ -0.395036,0.74012,-0.544214,4.121994,2.458034,-0.570029,
+ -0.421167,0.906102,-0.039984,4.192789,2.411967,-0.668016,
+ -0.557881,0.828586,0.047047,4.193959,2.370476,-0.616705,
+ -0.395036,0.74012,-0.544214,4.121994,2.458034,-0.570029,
+ -0.557881,0.828586,0.047047,4.193959,2.370476,-0.616705,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.395036,0.74012,-0.544214,4.121994,2.458034,-0.570029,
+ -0.536307,0.710867,-0.45502,4.113935,2.334131,-0.526471,
+ -0.330515,0.821242,-0.465103,4.07851,2.41181,-0.472193,
+ -0.760994,0.140162,-0.633436,4.244622,2.554467,-0.811726,
+ -0.353793,0.870619,-0.341838,4.235494,2.636171,-0.803613,
+ -0.718934,0.608496,-0.335955,4.342998,2.664049,-0.904347,
+ -0.760994,0.140162,-0.633436,4.244622,2.554467,-0.811726,
+ -0.718934,0.608496,-0.335955,4.342998,2.664049,-0.904347,
+ -0.641133,0.599375,-0.479267,4.343217,2.589542,-0.893106,
+ -0.641133,0.599375,-0.479267,4.343217,2.589542,-0.893106,
+ -0.718934,0.608496,-0.335955,4.342998,2.664049,-0.904347,
+ -0.929249,-0.009269,-0.369337,4.460786,2.695616,-0.949972,
+ -0.641133,0.599375,-0.479267,4.343217,2.589542,-0.893106,
+ -0.929249,-0.009269,-0.369337,4.460786,2.695616,-0.949972,
+ -0.560855,0.735161,-0.380763,4.460582,2.622875,-0.957002,
+ -0.560855,0.735161,-0.380763,4.460582,2.622875,-0.957002,
+ -0.929249,-0.009269,-0.369337,4.460786,2.695616,-0.949972,
+ -0.144656,0.947613,-0.284787,4.6248,2.708372,-0.989445,
+ -0.560855,0.735161,-0.380763,4.460582,2.622875,-0.957002,
+ -0.144656,0.947613,-0.284787,4.6248,2.708372,-0.989445,
+ 0.090337,0.942369,-0.32215,4.615662,2.63387,-0.977986,
+ -0.411843,0.771855,-0.484381,4.138687,2.474013,-0.642311,
+ -0.364192,0.890167,-0.2738,4.138494,2.557838,-0.652651,
+ -0.353793,0.870619,-0.341838,4.235494,2.636171,-0.803613,
+ -0.411843,0.771855,-0.484381,4.138687,2.474013,-0.642311,
+ -0.353793,0.870619,-0.341838,4.235494,2.636171,-0.803613,
+ -0.760994,0.140162,-0.633436,4.244622,2.554467,-0.811726,
+ -0.719327,0.568277,-0.399538,4.104292,2.537976,-0.543437,
+ -0.364192,0.890167,-0.2738,4.138494,2.557838,-0.652651,
+ -0.411843,0.771855,-0.484381,4.138687,2.474013,-0.642311,
+ -0.719327,0.568277,-0.399538,4.104292,2.537976,-0.543437,
+ -0.411843,0.771855,-0.484381,4.138687,2.474013,-0.642311,
+ -0.395036,0.74012,-0.544214,4.121994,2.458034,-0.570029,
+ -0.904972,-0.026554,-0.424642,4.088356,2.510913,-0.453793,
+ -0.719327,0.568277,-0.399538,4.104292,2.537976,-0.543437,
+ -0.395036,0.74012,-0.544214,4.121994,2.458034,-0.570029,
+ -0.904972,-0.026554,-0.424642,4.088356,2.510913,-0.453793,
+ -0.395036,0.74012,-0.544214,4.121994,2.458034,-0.570029,
+ -0.330515,0.821242,-0.465103,4.07851,2.41181,-0.472193,
+ -0.144656,0.947613,-0.284787,4.6248,2.708372,-0.989445,
+ 0.197027,0.937222,-0.287742,4.753015,2.699695,-0.973279,
+ -0.678216,0.658343,-0.326508,4.735139,2.645464,-0.95089,
+ -0.144656,0.947613,-0.284787,4.6248,2.708372,-0.989445,
+ -0.678216,0.658343,-0.326508,4.735139,2.645464,-0.95089,
+ 0.090337,0.942369,-0.32215,4.615662,2.63387,-0.977986,
+ -0.678216,0.658343,-0.326508,4.735139,2.645464,-0.95089,
+ 0.197027,0.937222,-0.287742,4.753015,2.699695,-0.973279,
+ 0.225135,0.965893,-0.127928,4.863709,2.722151,-0.93666,
+ -0.678216,0.658343,-0.326508,4.735139,2.645464,-0.95089,
+ 0.225135,0.965893,-0.127928,4.863709,2.722151,-0.93666,
+ 0.05537,0.916343,-0.396546,4.854957,2.660227,-0.92431,
+ -0.000715,-0.295728,0.955272,4.22473,2.624525,-0.491916,
+ -0.162972,0.917259,0.363422,4.151183,2.579059,-0.494606,
+ -0.860594,0.405545,-0.308076,4.117367,2.568514,-0.3845,
+ -0.000715,-0.295728,0.955272,4.22473,2.624525,-0.491916,
+ -0.860594,0.405545,-0.308076,4.117367,2.568514,-0.3845,
+ -0.03479,0.69667,0.716547,4.209941,2.600612,-0.337597,
+ 0.267121,-0.895396,-0.356249,4.636909,2.750501,-0.856859,
+ -0.31499,0.894135,0.318282,4.616626,2.749486,-0.939333,
+ -0.758791,0.646991,0.075091,4.462368,2.725999,-0.882675,
+ 0.267121,-0.895396,-0.356249,4.636909,2.750501,-0.856859,
+ -0.758791,0.646991,0.075091,4.462368,2.725999,-0.882675,
+ 0.176955,-0.903058,-0.391373,4.509555,2.719807,-0.819972,
+ 0.176955,-0.903058,-0.391373,4.509555,2.719807,-0.819972,
+ -0.758791,0.646991,0.075091,4.462368,2.725999,-0.882675,
+ -0.900694,0.426849,-0.080936,4.354196,2.711836,-0.826545,
+ 0.176955,-0.903058,-0.391373,4.509555,2.719807,-0.819972,
+ -0.900694,0.426849,-0.080936,4.354196,2.711836,-0.826545,
+ 0.713982,0.301536,-0.631907,4.418954,2.707401,-0.782531,
+ 0.713982,0.301536,-0.631907,4.418954,2.707401,-0.782531,
+ -0.900694,0.426849,-0.080936,4.354196,2.711836,-0.826545,
+ -0.940255,0.335069,0.060403,4.273414,2.686575,-0.753674,
+ 0.713982,0.301536,-0.631907,4.418954,2.707401,-0.782531,
+ -0.940255,0.335069,0.060403,4.273414,2.686575,-0.753674,
+ 0.743898,-0.655714,0.129057,4.35668,2.682996,-0.71905,
+ -0.162972,0.917259,0.363422,4.151183,2.579059,-0.494606,
+ -0.000715,-0.295728,0.955272,4.22473,2.624525,-0.491916,
+ 0.008972,0.708004,0.706152,4.277169,2.652435,-0.591369,
+ -0.162972,0.917259,0.363422,4.151183,2.579059,-0.494606,
+ 0.008972,0.708004,0.706152,4.277169,2.652435,-0.591369,
+ -0.816521,0.559553,0.142109,4.176065,2.636883,-0.618384,
+ -0.904972,-0.026554,-0.424642,4.088356,2.510913,-0.453793,
+ -0.860594,0.405545,-0.308076,4.117367,2.568514,-0.3845,
+ -0.162972,0.917259,0.363422,4.151183,2.579059,-0.494606,
+ -0.904972,-0.026554,-0.424642,4.088356,2.510913,-0.453793,
+ -0.162972,0.917259,0.363422,4.151183,2.579059,-0.494606,
+ -0.719327,0.568277,-0.399538,4.104292,2.537976,-0.543437,
+ -0.816521,0.559553,0.142109,4.176065,2.636883,-0.618384,
+ 0.008972,0.708004,0.706152,4.277169,2.652435,-0.591369,
+ 0.743898,-0.655714,0.129057,4.35668,2.682996,-0.71905,
+ -0.816521,0.559553,0.142109,4.176065,2.636883,-0.618384,
+ 0.743898,-0.655714,0.129057,4.35668,2.682996,-0.71905,
+ -0.940255,0.335069,0.060403,4.273414,2.686575,-0.753674,
+ -0.719327,0.568277,-0.399538,4.104292,2.537976,-0.543437,
+ -0.162972,0.917259,0.363422,4.151183,2.579059,-0.494606,
+ -0.816521,0.559553,0.142109,4.176065,2.636883,-0.618384,
+ -0.719327,0.568277,-0.399538,4.104292,2.537976,-0.543437,
+ -0.816521,0.559553,0.142109,4.176065,2.636883,-0.618384,
+ -0.364192,0.890167,-0.2738,4.138494,2.557838,-0.652651,
+ -0.364192,0.890167,-0.2738,4.138494,2.557838,-0.652651,
+ -0.816521,0.559553,0.142109,4.176065,2.636883,-0.618384,
+ -0.940255,0.335069,0.060403,4.273414,2.686575,-0.753674,
+ -0.364192,0.890167,-0.2738,4.138494,2.557838,-0.652651,
+ -0.940255,0.335069,0.060403,4.273414,2.686575,-0.753674,
+ -0.353793,0.870619,-0.341838,4.235494,2.636171,-0.803613,
+ -0.353793,0.870619,-0.341838,4.235494,2.636171,-0.803613,
+ -0.940255,0.335069,0.060403,4.273414,2.686575,-0.753674,
+ -0.900694,0.426849,-0.080936,4.354196,2.711836,-0.826545,
+ -0.353793,0.870619,-0.341838,4.235494,2.636171,-0.803613,
+ -0.900694,0.426849,-0.080936,4.354196,2.711836,-0.826545,
+ -0.718934,0.608496,-0.335955,4.342998,2.664049,-0.904347,
+ -0.718934,0.608496,-0.335955,4.342998,2.664049,-0.904347,
+ -0.900694,0.426849,-0.080936,4.354196,2.711836,-0.826545,
+ -0.758791,0.646991,0.075091,4.462368,2.725999,-0.882675,
+ -0.718934,0.608496,-0.335955,4.342998,2.664049,-0.904347,
+ -0.758791,0.646991,0.075091,4.462368,2.725999,-0.882675,
+ -0.929249,-0.009269,-0.369337,4.460786,2.695616,-0.949972,
+ 0.267121,-0.895396,-0.356249,4.636909,2.750501,-0.856859,
+ -0.53682,-0.608254,-0.58468,4.719171,2.751091,-0.865965,
+ -0.47673,0.840923,0.25608,4.735445,2.749285,-0.940329,
+ 0.267121,-0.895396,-0.356249,4.636909,2.750501,-0.856859,
+ -0.47673,0.840923,0.25608,4.735445,2.749285,-0.940329,
+ -0.31499,0.894135,0.318282,4.616626,2.749486,-0.939333,
+ -0.724543,-0.128977,-0.677054,4.801436,2.750224,-0.858918,
+ -0.145585,0.915338,0.375448,4.827733,2.75439,-0.905049,
+ -0.47673,0.840923,0.25608,4.735445,2.749285,-0.940329,
+ -0.724543,-0.128977,-0.677054,4.801436,2.750224,-0.858918,
+ -0.47673,0.840923,0.25608,4.735445,2.749285,-0.940329,
+ -0.53682,-0.608254,-0.58468,4.719171,2.751091,-0.865965,
+ -0.145585,0.915338,0.375448,4.827733,2.75439,-0.905049,
+ -0.724543,-0.128977,-0.677054,4.801436,2.750224,-0.858918,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.758791,0.646991,0.075091,4.462368,2.725999,-0.882675,
+ -0.31499,0.894135,0.318282,4.616626,2.749486,-0.939333,
+ -0.144656,0.947613,-0.284787,4.6248,2.708372,-0.989445,
+ -0.758791,0.646991,0.075091,4.462368,2.725999,-0.882675,
+ -0.144656,0.947613,-0.284787,4.6248,2.708372,-0.989445,
+ -0.929249,-0.009269,-0.369337,4.460786,2.695616,-0.949972,
+ -0.31499,0.894135,0.318282,4.616626,2.749486,-0.939333,
+ -0.47673,0.840923,0.25608,4.735445,2.749285,-0.940329,
+ 0.197027,0.937222,-0.287742,4.753015,2.699695,-0.973279,
+ -0.31499,0.894135,0.318282,4.616626,2.749486,-0.939333,
+ 0.197027,0.937222,-0.287742,4.753015,2.699695,-0.973279,
+ -0.144656,0.947613,-0.284787,4.6248,2.708372,-0.989445,
+ 0.225135,0.965893,-0.127928,4.863709,2.722151,-0.93666,
+ 0.197027,0.937222,-0.287742,4.753015,2.699695,-0.973279,
+ -0.47673,0.840923,0.25608,4.735445,2.749285,-0.940329,
+ 0.225135,0.965893,-0.127928,4.863709,2.722151,-0.93666,
+ -0.47673,0.840923,0.25608,4.735445,2.749285,-0.940329,
+ -0.145585,0.915338,0.375448,4.827733,2.75439,-0.905049,
+ 0.225135,0.965893,-0.127928,4.863709,2.722151,-0.93666,
+ -0.145585,0.915338,0.375448,4.827733,2.75439,-0.905049,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ 0.05537,0.916343,-0.396546,4.854957,2.660227,-0.92431,
+ 0.225135,0.965893,-0.127928,4.863709,2.722151,-0.93666,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.376273,-0.14016,-0.915846,4.821336,2.621498,-0.789636,
+ -0.395723,0.901671,-0.174334,4.829566,2.580797,-0.821827,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.395723,0.901671,-0.174334,4.829566,2.580797,-0.821827,
+ -0.476949,0.871028,-0.117606,4.856249,2.593812,-0.867067,
+ -0.86136,-0.239794,-0.447836,5.096148,2.75972,-0.774729,
+ -0.877603,-0.025309,0.478719,4.344028,2.585635,0.470949,
+ -0.130291,0.991051,0.029017,4.328606,2.563996,0.343892,
+ -0.904972,-0.026555,0.424641,4.209941,2.600612,0.337597,
+ -0.877603,-0.025309,0.478719,4.344028,2.585635,0.470949,
+ -0.904972,-0.026555,0.424641,4.209941,2.600612,0.337597,
+ -0.778386,0.466325,0.420305,4.22473,2.624525,0.491916,
+ 0.197027,0.937222,0.287741,4.407729,2.53164,0.486692,
+ -0.501953,0.842502,0.195534,4.410844,2.500167,0.351972,
+ -0.130291,0.991051,0.029017,4.328606,2.563996,0.343892,
+ 0.197027,0.937222,0.287741,4.407729,2.53164,0.486692,
+ -0.130291,0.991051,0.029017,4.328606,2.563996,0.343892,
+ -0.877603,-0.025309,0.478719,4.344028,2.585635,0.470949,
+ 0.223577,0.97296,-0.057987,4.359483,2.615839,0.596817,
+ -0.877603,-0.025309,0.478719,4.344028,2.585635,0.470949,
+ -0.778386,0.466325,0.420305,4.22473,2.624525,0.491916,
+ 0.223577,0.97296,-0.057987,4.359483,2.615839,0.596817,
+ -0.778386,0.466325,0.420305,4.22473,2.624525,0.491916,
+ 0.225135,0.965893,0.127928,4.277169,2.652435,0.591369,
+ -0.247355,0.948391,-0.198417,4.423033,2.561337,0.603562,
+ 0.197027,0.937222,0.287741,4.407729,2.53164,0.486692,
+ -0.877603,-0.025309,0.478719,4.344028,2.585635,0.470949,
+ -0.247355,0.948391,-0.198417,4.423033,2.561337,0.603562,
+ -0.877603,-0.025309,0.478719,4.344028,2.585635,0.470949,
+ 0.223577,0.97296,-0.057987,4.359483,2.615839,0.596817,
+ -0.860595,0.405543,0.308077,4.411541,2.663824,0.713132,
+ 0.223577,0.97296,-0.057987,4.359483,2.615839,0.596817,
+ 0.225135,0.965893,0.127928,4.277169,2.652435,0.591369,
+ -0.860595,0.405543,0.308077,4.411541,2.663824,0.713132,
+ 0.225135,0.965893,0.127928,4.277169,2.652435,0.591369,
+ -0.671788,0.737297,0.07138,4.35668,2.682996,0.71905,
+ -0.162972,0.917259,-0.363422,4.47609,2.606654,0.692301,
+ -0.247355,0.948391,-0.198417,4.423033,2.561337,0.603562,
+ 0.223577,0.97296,-0.057987,4.359483,2.615839,0.596817,
+ -0.162972,0.917259,-0.363422,4.47609,2.606654,0.692301,
+ 0.223577,0.97296,-0.057987,4.359483,2.615839,0.596817,
+ -0.860595,0.405543,0.308077,4.411541,2.663824,0.713132,
+ -0.758791,0.646991,-0.075091,4.465268,2.695425,0.757267,
+ -0.860595,0.405543,0.308077,4.411541,2.663824,0.713132,
+ -0.671788,0.737297,0.07138,4.35668,2.682996,0.71905,
+ -0.758791,0.646991,-0.075091,4.465268,2.695425,0.757267,
+ -0.671788,0.737297,0.07138,4.35668,2.682996,0.71905,
+ -0.31499,0.894135,-0.318282,4.418954,2.707401,0.782531,
+ -0.758791,0.646991,-0.075091,4.465268,2.695425,0.757267,
+ -0.900694,0.426849,0.080936,4.520603,2.639162,0.745542,
+ -0.162972,0.917259,-0.363422,4.47609,2.606654,0.692301,
+ -0.758791,0.646991,-0.075091,4.465268,2.695425,0.757267,
+ -0.162972,0.917259,-0.363422,4.47609,2.606654,0.692301,
+ -0.860595,0.405543,0.308077,4.411541,2.663824,0.713132,
+ -0.816521,0.559553,-0.142109,4.546655,2.709095,0.80378,
+ -0.758791,0.646991,-0.075091,4.465268,2.695425,0.757267,
+ -0.31499,0.894135,-0.318282,4.418954,2.707401,0.782531,
+ -0.816521,0.559553,-0.142109,4.546655,2.709095,0.80378,
+ -0.31499,0.894135,-0.318282,4.418954,2.707401,0.782531,
+ -0.940256,0.335069,-0.060403,4.509555,2.719807,0.819972,
+ -0.816521,0.559553,-0.142109,4.546655,2.709095,0.80378,
+ -0.683788,0.700764,-0.203383,4.574545,2.669863,0.780363,
+ -0.900694,0.426849,0.080936,4.520603,2.639162,0.745542,
+ -0.816521,0.559553,-0.142109,4.546655,2.709095,0.80378,
+ -0.900694,0.426849,0.080936,4.520603,2.639162,0.745542,
+ -0.758791,0.646991,-0.075091,4.465268,2.695425,0.757267,
+ -0.476729,0.840923,-0.25608,4.44385,2.449921,0.495432,
+ -0.849668,0.488771,-0.197904,4.474318,2.418432,0.361347,
+ -0.501953,0.842502,0.195534,4.410844,2.500167,0.351972,
+ -0.476729,0.840923,-0.25608,4.44385,2.449921,0.495432,
+ -0.501953,0.842502,0.195534,4.410844,2.500167,0.351972,
+ 0.197027,0.937222,0.287741,4.407729,2.53164,0.486692,
+ -0.145585,0.915338,-0.375448,4.44076,2.490353,0.629287,
+ -0.476729,0.840923,-0.25608,4.44385,2.449921,0.495432,
+ 0.197027,0.937222,0.287741,4.407729,2.53164,0.486692,
+ -0.145585,0.915338,-0.375448,4.44076,2.490353,0.629287,
+ 0.197027,0.937222,0.287741,4.407729,2.53164,0.486692,
+ -0.247355,0.948391,-0.198417,4.423033,2.561337,0.603562,
+ -0.210882,0.942026,-0.260988,4.484667,2.534451,0.708888,
+ -0.145585,0.915338,-0.375448,4.44076,2.490353,0.629287,
+ -0.247355,0.948391,-0.198417,4.423033,2.561337,0.603562,
+ -0.210882,0.942026,-0.260988,4.484667,2.534451,0.708888,
+ -0.247355,0.948391,-0.198417,4.423033,2.561337,0.603562,
+ -0.162972,0.917259,-0.363422,4.47609,2.606654,0.692301,
+ -0.502348,0.838173,-0.212398,4.520165,2.557971,0.762427,
+ -0.210882,0.942026,-0.260988,4.484667,2.534451,0.708888,
+ -0.162972,0.917259,-0.363422,4.47609,2.606654,0.692301,
+ -0.502348,0.838173,-0.212398,4.520165,2.557971,0.762427,
+ -0.162972,0.917259,-0.363422,4.47609,2.606654,0.692301,
+ -0.900694,0.426849,0.080936,4.520603,2.639162,0.745542,
+ -0.768362,0.592231,-0.242657,4.59262,2.569879,0.790452,
+ -0.502348,0.838173,-0.212398,4.520165,2.557971,0.762427,
+ -0.900694,0.426849,0.080936,4.520603,2.639162,0.745542,
+ -0.768362,0.592231,-0.242657,4.59262,2.569879,0.790452,
+ -0.900694,0.426849,0.080936,4.520603,2.639162,0.745542,
+ -0.683788,0.700764,-0.203383,4.574545,2.669863,0.780363,
+ -0.981668,0.173926,-0.077954,4.674691,2.598833,0.808006,
+ -0.768362,0.592231,-0.242657,4.59262,2.569879,0.790452,
+ -0.683788,0.700764,-0.203383,4.574545,2.669863,0.780363,
+ -0.981668,0.173926,-0.077954,4.674691,2.598833,0.808006,
+ -0.683788,0.700764,-0.203383,4.574545,2.669863,0.780363,
+ -0.892748,0.392127,-0.221893,4.656565,2.680542,0.799684,
+ -0.892748,0.392127,-0.221893,4.656565,2.680542,0.799684,
+ -0.683788,0.700764,-0.203383,4.574545,2.669863,0.780363,
+ -0.816521,0.559553,-0.142109,4.546655,2.709095,0.80378,
+ -0.892748,0.392127,-0.221893,4.656565,2.680542,0.799684,
+ -0.816521,0.559553,-0.142109,4.546655,2.709095,0.80378,
+ -0.990661,0.056144,-0.124249,4.646703,2.728688,0.822295,
+ -0.990661,0.056144,-0.124249,4.646703,2.728688,0.822295,
+ -0.816521,0.559553,-0.142109,4.546655,2.709095,0.80378,
+ -0.940256,0.335069,-0.060403,4.509555,2.719807,0.819972,
+ -0.990661,0.056144,-0.124249,4.646703,2.728688,0.822295,
+ -0.940256,0.335069,-0.060403,4.509555,2.719807,0.819972,
+ -0.894795,0.444359,-0.043442,4.636909,2.750501,0.856859,
+ -0.984655,0.15519,0.07981,4.729447,2.606204,0.807513,
+ -0.981668,0.173926,-0.077954,4.674691,2.598833,0.808006,
+ -0.892748,0.392127,-0.221893,4.656565,2.680542,0.799684,
+ -0.984655,0.15519,0.07981,4.729447,2.606204,0.807513,
+ -0.892748,0.392127,-0.221893,4.656565,2.680542,0.799684,
+ -0.941564,0.056551,0.332054,4.748031,2.683805,0.800044,
+ -0.941564,0.056551,0.332054,4.748031,2.683805,0.800044,
+ -0.892748,0.392127,-0.221893,4.656565,2.680542,0.799684,
+ -0.990661,0.056144,-0.124249,4.646703,2.728688,0.822295,
+ -0.941564,0.056551,0.332054,4.748031,2.683805,0.800044,
+ -0.990661,0.056144,-0.124249,4.646703,2.728688,0.822295,
+ -0.978317,0.206989,-0.00716,4.728931,2.721892,0.832625,
+ -0.978317,0.206989,-0.00716,4.728931,2.721892,0.832625,
+ -0.990661,0.056144,-0.124249,4.646703,2.728688,0.822295,
+ -0.894795,0.444359,-0.043442,4.636909,2.750501,0.856859,
+ -0.978317,0.206989,-0.00716,4.728931,2.721892,0.832625,
+ -0.894795,0.444359,-0.043442,4.636909,2.750501,0.856859,
+ -0.463096,-0.149333,0.873637,4.719171,2.751091,0.865965,
+ -0.791764,-0.610494,-0.020171,4.821336,2.621498,0.789636,
+ -0.984655,0.15519,0.07981,4.729447,2.606204,0.807513,
+ -0.941564,0.056551,0.332054,4.748031,2.683805,0.800044,
+ -0.791764,-0.610494,-0.020171,4.821336,2.621498,0.789636,
+ -0.941564,0.056551,0.332054,4.748031,2.683805,0.800044,
+ -0.64155,-0.578509,0.503727,4.821325,2.691794,0.791887,
+ -0.64155,-0.578509,0.503727,4.821325,2.691794,0.791887,
+ -0.941564,0.056551,0.332054,4.748031,2.683805,0.800044,
+ -0.978317,0.206989,-0.00716,4.728931,2.721892,0.832625,
+ -0.64155,-0.578509,0.503727,4.821325,2.691794,0.791887,
+ -0.978317,0.206989,-0.00716,4.728931,2.721892,0.832625,
+ -0.832539,-0.5495,0.070196,4.811798,2.72868,0.815406,
+ -0.862876,-0.450622,0.228877,4.801436,2.750224,0.858918,
+ -0.832539,-0.5495,0.070196,4.811798,2.72868,0.815406,
+ -0.978317,0.206989,-0.00716,4.728931,2.721892,0.832625,
+ -0.862876,-0.450622,0.228877,4.801436,2.750224,0.858918,
+ -0.978317,0.206989,-0.00716,4.728931,2.721892,0.832625,
+ -0.463096,-0.149333,0.873637,4.719171,2.751091,0.865965,
+ -0.832539,-0.5495,0.070196,4.811798,2.72868,0.815406,
+ -0.862876,-0.450622,0.228877,4.801436,2.750224,0.858918,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ -0.64155,-0.578509,0.503727,4.821325,2.691794,0.791887,
+ -0.832539,-0.5495,0.070196,4.811798,2.72868,0.815406,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ -0.791764,-0.610494,-0.020171,4.821336,2.621498,0.789636,
+ -0.64155,-0.578509,0.503727,4.821325,2.691794,0.791887,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ 0.231006,-0.859096,0.456717,4.472349,2.325133,0.443764,
+ -0.849668,0.488771,-0.197904,4.474318,2.418432,0.361347,
+ -0.476729,0.840923,-0.25608,4.44385,2.449921,0.495432,
+ 0.231006,-0.859096,0.456717,4.472349,2.325133,0.443764,
+ -0.476729,0.840923,-0.25608,4.44385,2.449921,0.495432,
+ -0.975013,-0.179566,0.130791,4.442912,2.343263,0.53322,
+ -0.975013,-0.179566,0.130791,4.442912,2.343263,0.53322,
+ -0.476729,0.840923,-0.25608,4.44385,2.449921,0.495432,
+ -0.145585,0.915338,-0.375448,4.44076,2.490353,0.629287,
+ -0.975013,-0.179566,0.130791,4.442912,2.343263,0.53322,
+ -0.145585,0.915338,-0.375448,4.44076,2.490353,0.629287,
+ -0.963659,-0.230665,0.134738,4.440713,2.398472,0.629128,
+ -0.990956,-0.062739,0.118613,4.474625,2.465214,0.75189,
+ -0.963659,-0.230665,0.134738,4.440713,2.398472,0.629128,
+ -0.145585,0.915338,-0.375448,4.44076,2.490353,0.629287,
+ -0.990956,-0.062739,0.118613,4.474625,2.465214,0.75189,
+ -0.145585,0.915338,-0.375448,4.44076,2.490353,0.629287,
+ -0.210882,0.942026,-0.260988,4.484667,2.534451,0.708888,
+ -0.473779,-0.24744,0.845167,4.32063,2.385528,0.682583,
+ -0.938303,-0.3372,0.076703,4.314039,2.32946,0.57751,
+ -0.975013,-0.179566,0.130791,4.442912,2.343263,0.53322,
+ -0.473779,-0.24744,0.845167,4.32063,2.385528,0.682583,
+ -0.975013,-0.179566,0.130791,4.442912,2.343263,0.53322,
+ -0.963659,-0.230665,0.134738,4.440713,2.398472,0.629128,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ 0.231006,-0.859096,0.456717,4.472349,2.325133,0.443764,
+ -0.975013,-0.179566,0.130791,4.442912,2.343263,0.53322,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ -0.975013,-0.179566,0.130791,4.442912,2.343263,0.53322,
+ -0.938303,-0.3372,0.076703,4.314039,2.32946,0.57751,
+ -0.719395,-0.61545,0.322011,4.382053,2.433474,0.798757,
+ -0.473779,-0.24744,0.845167,4.32063,2.385528,0.682583,
+ -0.963659,-0.230665,0.134738,4.440713,2.398472,0.629128,
+ -0.719395,-0.61545,0.322011,4.382053,2.433474,0.798757,
+ -0.963659,-0.230665,0.134738,4.440713,2.398472,0.629128,
+ -0.990956,-0.062739,0.118613,4.474625,2.465214,0.75189,
+ -0.841909,-0.49598,0.212588,4.538177,2.513353,0.776566,
+ -0.990956,-0.062739,0.118613,4.474625,2.465214,0.75189,
+ -0.210882,0.942026,-0.260988,4.484667,2.534451,0.708888,
+ -0.841909,-0.49598,0.212588,4.538177,2.513353,0.776566,
+ -0.210882,0.942026,-0.260988,4.484667,2.534451,0.708888,
+ -0.502348,0.838173,-0.212398,4.520165,2.557971,0.762427,
+ 0.760119,-0.003927,0.649772,4.444739,2.475795,0.860515,
+ -0.719395,-0.61545,0.322011,4.382053,2.433474,0.798757,
+ -0.990956,-0.062739,0.118613,4.474625,2.465214,0.75189,
+ 0.760119,-0.003927,0.649772,4.444739,2.475795,0.860515,
+ -0.990956,-0.062739,0.118613,4.474625,2.465214,0.75189,
+ -0.841909,-0.49598,0.212588,4.538177,2.513353,0.776566,
+ 0.911709,-0.064353,0.405764,4.601515,2.533324,0.794193,
+ -0.841909,-0.49598,0.212588,4.538177,2.513353,0.776566,
+ -0.502348,0.838173,-0.212398,4.520165,2.557971,0.762427,
+ 0.911709,-0.064353,0.405764,4.601515,2.533324,0.794193,
+ -0.502348,0.838173,-0.212398,4.520165,2.557971,0.762427,
+ -0.768362,0.592231,-0.242657,4.59262,2.569879,0.790452,
+ 0.3335,0.232683,0.913584,4.554459,2.511417,0.850571,
+ 0.760119,-0.003927,0.649772,4.444739,2.475795,0.860515,
+ -0.841909,-0.49598,0.212588,4.538177,2.513353,0.776566,
+ 0.3335,0.232683,0.913584,4.554459,2.511417,0.850571,
+ -0.841909,-0.49598,0.212588,4.538177,2.513353,0.776566,
+ 0.911709,-0.064353,0.405764,4.601515,2.533324,0.794193,
+ 0.245858,0.150988,0.957474,4.683344,2.554221,0.821927,
+ 0.911709,-0.064353,0.405764,4.601515,2.533324,0.794193,
+ -0.768362,0.592231,-0.242657,4.59262,2.569879,0.790452,
+ 0.245858,0.150988,0.957474,4.683344,2.554221,0.821927,
+ -0.768362,0.592231,-0.242657,4.59262,2.569879,0.790452,
+ -0.981668,0.173926,-0.077954,4.674691,2.598833,0.808006,
+ 0.895851,0.326389,0.301532,4.681847,2.551036,0.886235,
+ 0.3335,0.232683,0.913584,4.554459,2.511417,0.850571,
+ 0.911709,-0.064353,0.405764,4.601515,2.533324,0.794193,
+ 0.895851,0.326389,0.301532,4.681847,2.551036,0.886235,
+ 0.911709,-0.064353,0.405764,4.601515,2.533324,0.794193,
+ 0.245858,0.150988,0.957474,4.683344,2.554221,0.821927,
+ -0.279333,0.256918,0.925184,4.755192,2.568818,0.876311,
+ 0.895851,0.326389,0.301532,4.681847,2.551036,0.886235,
+ 0.245858,0.150988,0.957474,4.683344,2.554221,0.821927,
+ -0.279333,0.256918,0.925184,4.755192,2.568818,0.876311,
+ 0.245858,0.150988,0.957474,4.683344,2.554221,0.821927,
+ -0.396467,0.225967,0.889805,4.737893,2.564648,0.830389,
+ -0.274209,-0.939323,-0.20611,4.856249,2.593812,0.867067,
+ -0.279333,0.256918,0.925184,4.755192,2.568818,0.876311,
+ -0.396467,0.225967,0.889805,4.737893,2.564648,0.830389,
+ -0.274209,-0.939323,-0.20611,4.856249,2.593812,0.867067,
+ -0.396467,0.225967,0.889805,4.737893,2.564648,0.830389,
+ -0.274209,-0.939323,-0.20611,4.829566,2.580797,0.821827,
+ -0.396467,0.225967,0.889805,4.737893,2.564648,0.830389,
+ 0.245858,0.150988,0.957474,4.683344,2.554221,0.821927,
+ -0.981668,0.173926,-0.077954,4.674691,2.598833,0.808006,
+ -0.396467,0.225967,0.889805,4.737893,2.564648,0.830389,
+ -0.981668,0.173926,-0.077954,4.674691,2.598833,0.808006,
+ -0.984655,0.15519,0.07981,4.729447,2.606204,0.807513,
+ -0.274209,-0.939323,-0.20611,4.829566,2.580797,0.821827,
+ -0.396467,0.225967,0.889805,4.737893,2.564648,0.830389,
+ -0.984655,0.15519,0.07981,4.729447,2.606204,0.807513,
+ -0.274209,-0.939323,-0.20611,4.829566,2.580797,0.821827,
+ -0.984655,0.15519,0.07981,4.729447,2.606204,0.807513,
+ -0.791764,-0.610494,-0.020171,4.821336,2.621498,0.789636,
+ -0.21443,-0.974064,0.072245,4.497719,2.54748,0.937659,
+ 0.3335,0.232683,0.913584,4.554459,2.511417,0.850571,
+ 0.895851,0.326389,0.301532,4.681847,2.551036,0.886235,
+ -0.21443,-0.974064,0.072245,4.497719,2.54748,0.937659,
+ 0.895851,0.326389,0.301532,4.681847,2.551036,0.886235,
+ -0.21443,-0.974064,0.072245,4.662221,2.556346,0.940618,
+ -0.279333,0.256918,0.925184,4.755192,2.568818,0.876311,
+ -0.137011,-0.928676,0.344657,4.763337,2.590834,0.929248,
+ -0.21443,-0.974064,0.072245,4.662221,2.556346,0.940618,
+ -0.279333,0.256918,0.925184,4.755192,2.568818,0.876311,
+ -0.21443,-0.974064,0.072245,4.662221,2.556346,0.940618,
+ 0.895851,0.326389,0.301532,4.681847,2.551036,0.886235,
+ -0.137011,-0.928676,0.344657,4.763337,2.590834,0.929248,
+ -0.279333,0.256918,0.925184,4.755192,2.568818,0.876311,
+ -0.274209,-0.939323,-0.20611,4.856249,2.593812,0.867067,
+ -0.137011,-0.928676,0.344657,4.763337,2.590834,0.929248,
+ -0.274209,-0.939323,-0.20611,4.856249,2.593812,0.867067,
+ -0.137011,-0.928676,0.344657,4.883022,2.613658,0.893163,
+ -0.21443,-0.974064,0.072245,4.497719,2.54748,0.937659,
+ -0.250481,-0.945625,-0.207493,4.352603,2.524888,0.890532,
+ 0.760119,-0.003927,0.649772,4.444739,2.475795,0.860515,
+ -0.21443,-0.974064,0.072245,4.497719,2.54748,0.937659,
+ 0.760119,-0.003927,0.649772,4.444739,2.475795,0.860515,
+ 0.3335,0.232683,0.913584,4.554459,2.511417,0.850571,
+ -0.250481,-0.945625,-0.207493,4.262798,2.490674,0.818316,
+ -0.719395,-0.61545,0.322011,4.382053,2.433474,0.798757,
+ 0.760119,-0.003927,0.649772,4.444739,2.475795,0.860515,
+ -0.250481,-0.945625,-0.207493,4.262798,2.490674,0.818316,
+ 0.760119,-0.003927,0.649772,4.444739,2.475795,0.860515,
+ -0.250481,-0.945625,-0.207493,4.352603,2.524888,0.890532,
+ -0.19553,-0.978064,0.071821,4.192789,2.411967,0.668016,
+ -0.473779,-0.24744,0.845167,4.32063,2.385528,0.682583,
+ -0.719395,-0.61545,0.322011,4.382053,2.433474,0.798757,
+ -0.19553,-0.978064,0.071821,4.192789,2.411967,0.668016,
+ -0.719395,-0.61545,0.322011,4.382053,2.433474,0.798757,
+ -0.250481,-0.945625,-0.207493,4.262798,2.490674,0.818316,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.938303,-0.3372,0.076703,4.314039,2.32946,0.57751,
+ -0.473779,-0.24744,0.845167,4.32063,2.385528,0.682583,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.473779,-0.24744,0.845167,4.32063,2.385528,0.682583,
+ -0.19553,-0.978064,0.071821,4.192789,2.411967,0.668016,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ -0.938303,-0.3372,0.076703,4.314039,2.32946,0.57751,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.713872,-0.610821,0.342469,4.296769,2.260422,0.528796,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ -0.274209,-0.939323,-0.20611,4.856249,2.593812,0.867067,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ -0.137011,-0.928676,0.344657,4.883022,2.613658,0.893163,
+ -0.137011,-0.928676,0.344657,4.883022,2.613658,0.893163,
+ 0.186393,-0.974436,-0.125429,4.854957,2.660227,0.92431,
+ -0.124529,-0.930217,0.345238,4.735139,2.645464,0.95089,
+ -0.137011,-0.928676,0.344657,4.883022,2.613658,0.893163,
+ -0.124529,-0.930217,0.345238,4.735139,2.645464,0.95089,
+ -0.137011,-0.928676,0.344657,4.763337,2.590834,0.929248,
+ -0.137011,-0.928676,0.344657,4.763337,2.590834,0.929248,
+ -0.124529,-0.930217,0.345238,4.735139,2.645464,0.95089,
+ 0.361848,-0.921221,-0.142892,4.615662,2.63387,0.977986,
+ -0.137011,-0.928676,0.344657,4.763337,2.590834,0.929248,
+ 0.361848,-0.921221,-0.142892,4.615662,2.63387,0.977986,
+ -0.21443,-0.974064,0.072245,4.662221,2.556346,0.940618,
+ -0.21443,-0.974064,0.072245,4.662221,2.556346,0.940618,
+ 0.361848,-0.921221,-0.142892,4.615662,2.63387,0.977986,
+ -0.199236,-0.974239,-0.105658,4.460582,2.622875,0.957002,
+ -0.21443,-0.974064,0.072245,4.662221,2.556346,0.940618,
+ -0.199236,-0.974239,-0.105658,4.460582,2.622875,0.957002,
+ -0.21443,-0.974064,0.072245,4.497719,2.54748,0.937659,
+ -0.21443,-0.974064,0.072245,4.497719,2.54748,0.937659,
+ -0.199236,-0.974239,-0.105658,4.460582,2.622875,0.957002,
+ -0.942162,-0.29295,-0.162822,4.343217,2.589542,0.893106,
+ -0.21443,-0.974064,0.072245,4.497719,2.54748,0.937659,
+ -0.942162,-0.29295,-0.162822,4.343217,2.589542,0.893106,
+ -0.250481,-0.945625,-0.207493,4.352603,2.524888,0.890532,
+ -0.250481,-0.945625,-0.207493,4.352603,2.524888,0.890532,
+ -0.942162,-0.29295,-0.162822,4.343217,2.589542,0.893106,
+ -0.982438,-0.108835,-0.151559,4.244622,2.554467,0.811726,
+ -0.250481,-0.945625,-0.207493,4.352603,2.524888,0.890532,
+ -0.982438,-0.108835,-0.151559,4.244622,2.554467,0.811726,
+ -0.250481,-0.945625,-0.207493,4.262798,2.490674,0.818316,
+ -0.250481,-0.945625,-0.207493,4.262798,2.490674,0.818316,
+ -0.982438,-0.108835,-0.151559,4.244622,2.554467,0.811726,
+ -0.668254,-0.729938,-0.143622,4.138687,2.474013,0.642311,
+ -0.250481,-0.945625,-0.207493,4.262798,2.490674,0.818316,
+ -0.668254,-0.729938,-0.143622,4.138687,2.474013,0.642311,
+ -0.19553,-0.978064,0.071821,4.192789,2.411967,0.668016,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ 0.186393,-0.974436,-0.125429,4.854957,2.660227,0.92431,
+ -0.137011,-0.928676,0.344657,4.883022,2.613658,0.893163,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.19553,-0.978064,0.071821,4.192789,2.411967,0.668016,
+ -0.668254,-0.729938,-0.143622,4.138687,2.474013,0.642311,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.668254,-0.729938,-0.143622,4.138687,2.474013,0.642311,
+ -0.973393,-0.128296,0.18986,4.121994,2.458034,0.570029,
+ -0.138401,-0.989733,0.035683,4.07851,2.41181,0.472193,
+ -0.124529,-0.930217,0.345238,4.113935,2.334131,0.526471,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.138401,-0.989733,0.035683,4.07851,2.41181,0.472193,
+ -0.19553,-0.978064,0.071821,4.193959,2.370476,0.616705,
+ -0.973393,-0.128296,0.18986,4.121994,2.458034,0.570029,
+ -0.942162,-0.29295,-0.162822,4.343217,2.589542,0.893106,
+ -0.927379,-0.346541,0.14099,4.342998,2.664049,0.904347,
+ -0.601432,-0.796051,0.067694,4.235494,2.636171,0.803613,
+ -0.942162,-0.29295,-0.162822,4.343217,2.589542,0.893106,
+ -0.601432,-0.796051,0.067694,4.235494,2.636171,0.803613,
+ -0.982438,-0.108835,-0.151559,4.244622,2.554467,0.811726,
+ -0.199236,-0.974239,-0.105658,4.460582,2.622875,0.957002,
+ -0.850433,-0.132742,0.509061,4.460786,2.695616,0.949972,
+ -0.927379,-0.346541,0.14099,4.342998,2.664049,0.904347,
+ -0.199236,-0.974239,-0.105658,4.460582,2.622875,0.957002,
+ -0.927379,-0.346541,0.14099,4.342998,2.664049,0.904347,
+ -0.942162,-0.29295,-0.162822,4.343217,2.589542,0.893106,
+ 0.361848,-0.921221,-0.142892,4.615662,2.63387,0.977986,
+ -0.822149,-0.367113,0.435086,4.6248,2.708372,0.989445,
+ -0.850433,-0.132742,0.509061,4.460786,2.695616,0.949972,
+ 0.361848,-0.921221,-0.142892,4.615662,2.63387,0.977986,
+ -0.850433,-0.132742,0.509061,4.460786,2.695616,0.949972,
+ -0.199236,-0.974239,-0.105658,4.460582,2.622875,0.957002,
+ -0.982438,-0.108835,-0.151559,4.244622,2.554467,0.811726,
+ -0.601432,-0.796051,0.067694,4.235494,2.636171,0.803613,
+ -0.501842,-0.819591,0.27645,4.138494,2.557838,0.652651,
+ -0.982438,-0.108835,-0.151559,4.244622,2.554467,0.811726,
+ -0.501842,-0.819591,0.27645,4.138494,2.557838,0.652651,
+ -0.668254,-0.729938,-0.143622,4.138687,2.474013,0.642311,
+ -0.973393,-0.128296,0.18986,4.121994,2.458034,0.570029,
+ -0.668254,-0.729938,-0.143622,4.138687,2.474013,0.642311,
+ -0.501842,-0.819591,0.27645,4.138494,2.557838,0.652651,
+ -0.973393,-0.128296,0.18986,4.121994,2.458034,0.570029,
+ -0.501842,-0.819591,0.27645,4.138494,2.557838,0.652651,
+ -0.075112,-0.981815,0.174346,4.104292,2.537976,0.543437,
+ -0.138401,-0.989733,0.035683,4.07851,2.41181,0.472193,
+ -0.973393,-0.128296,0.18986,4.121994,2.458034,0.570029,
+ -0.075112,-0.981815,0.174346,4.104292,2.537976,0.543437,
+ -0.138401,-0.989733,0.035683,4.07851,2.41181,0.472193,
+ -0.075112,-0.981815,0.174346,4.104292,2.537976,0.543437,
+ 0.207048,-0.965263,0.159371,4.088356,2.510913,0.453793,
+ 0.361848,-0.921221,-0.142892,4.615662,2.63387,0.977986,
+ -0.124529,-0.930217,0.345238,4.735139,2.645464,0.95089,
+ 0.846486,-0.14409,-0.512541,4.753015,2.699695,0.973279,
+ 0.361848,-0.921221,-0.142892,4.615662,2.63387,0.977986,
+ 0.846486,-0.14409,-0.512541,4.753015,2.699695,0.973279,
+ -0.822149,-0.367113,0.435086,4.6248,2.708372,0.989445,
+ 0.186393,-0.974436,-0.125429,4.854957,2.660227,0.92431,
+ 0.728229,-0.106722,-0.676973,4.863709,2.722151,0.93666,
+ 0.846486,-0.14409,-0.512541,4.753015,2.699695,0.973279,
+ 0.186393,-0.974436,-0.125429,4.854957,2.660227,0.92431,
+ 0.846486,-0.14409,-0.512541,4.753015,2.699695,0.973279,
+ -0.124529,-0.930217,0.345238,4.735139,2.645464,0.95089,
+ -0.904972,-0.026555,0.424641,4.209941,2.600612,0.337597,
+ 0.576293,-0.081905,-0.813128,4.117367,2.568514,0.3845,
+ 0.42646,-0.865041,0.264264,4.151183,2.579059,0.494606,
+ -0.904972,-0.026555,0.424641,4.209941,2.600612,0.337597,
+ 0.42646,-0.865041,0.264264,4.151183,2.579059,0.494606,
+ -0.778386,0.466325,0.420305,4.22473,2.624525,0.491916,
+ -0.940256,0.335069,-0.060403,4.509555,2.719807,0.819972,
+ -0.266521,-0.953514,0.14063,4.462368,2.725999,0.882675,
+ 0.078387,-0.886884,0.455294,4.616626,2.749486,0.939333,
+ -0.940256,0.335069,-0.060403,4.509555,2.719807,0.819972,
+ 0.078387,-0.886884,0.455294,4.616626,2.749486,0.939333,
+ -0.894795,0.444359,-0.043442,4.636909,2.750501,0.856859,
+ -0.31499,0.894135,-0.318282,4.418954,2.707401,0.782531,
+ -0.393317,-0.870591,-0.295589,4.354196,2.711836,0.826545,
+ -0.266521,-0.953514,0.14063,4.462368,2.725999,0.882675,
+ -0.31499,0.894135,-0.318282,4.418954,2.707401,0.782531,
+ -0.266521,-0.953514,0.14063,4.462368,2.725999,0.882675,
+ -0.940256,0.335069,-0.060403,4.509555,2.719807,0.819972,
+ -0.671788,0.737297,0.07138,4.35668,2.682996,0.71905,
+ -0.180888,-0.792822,-0.58199,4.273414,2.686575,0.753674,
+ -0.393317,-0.870591,-0.295589,4.354196,2.711836,0.826545,
+ -0.671788,0.737297,0.07138,4.35668,2.682996,0.71905,
+ -0.393317,-0.870591,-0.295589,4.354196,2.711836,0.826545,
+ -0.31499,0.894135,-0.318282,4.418954,2.707401,0.782531,
+ 0.333262,-0.530645,-0.779328,4.176065,2.636883,0.618384,
+ 0.225135,0.965893,0.127928,4.277169,2.652435,0.591369,
+ -0.778386,0.466325,0.420305,4.22473,2.624525,0.491916,
+ 0.333262,-0.530645,-0.779328,4.176065,2.636883,0.618384,
+ -0.778386,0.466325,0.420305,4.22473,2.624525,0.491916,
+ 0.42646,-0.865041,0.264264,4.151183,2.579059,0.494606,
+ -0.075112,-0.981815,0.174346,4.104292,2.537976,0.543437,
+ 0.42646,-0.865041,0.264264,4.151183,2.579059,0.494606,
+ 0.576293,-0.081905,-0.813128,4.117367,2.568514,0.3845,
+ -0.075112,-0.981815,0.174346,4.104292,2.537976,0.543437,
+ 0.576293,-0.081905,-0.813128,4.117367,2.568514,0.3845,
+ 0.207048,-0.965263,0.159371,4.088356,2.510913,0.453793,
+ -0.180888,-0.792822,-0.58199,4.273414,2.686575,0.753674,
+ -0.671788,0.737297,0.07138,4.35668,2.682996,0.71905,
+ 0.225135,0.965893,0.127928,4.277169,2.652435,0.591369,
+ -0.180888,-0.792822,-0.58199,4.273414,2.686575,0.753674,
+ 0.225135,0.965893,0.127928,4.277169,2.652435,0.591369,
+ 0.333262,-0.530645,-0.779328,4.176065,2.636883,0.618384,
+ -0.501842,-0.819591,0.27645,4.138494,2.557838,0.652651,
+ 0.333262,-0.530645,-0.779328,4.176065,2.636883,0.618384,
+ 0.42646,-0.865041,0.264264,4.151183,2.579059,0.494606,
+ -0.501842,-0.819591,0.27645,4.138494,2.557838,0.652651,
+ 0.42646,-0.865041,0.264264,4.151183,2.579059,0.494606,
+ -0.075112,-0.981815,0.174346,4.104292,2.537976,0.543437,
+ -0.601432,-0.796051,0.067694,4.235494,2.636171,0.803613,
+ -0.180888,-0.792822,-0.58199,4.273414,2.686575,0.753674,
+ 0.333262,-0.530645,-0.779328,4.176065,2.636883,0.618384,
+ -0.601432,-0.796051,0.067694,4.235494,2.636171,0.803613,
+ 0.333262,-0.530645,-0.779328,4.176065,2.636883,0.618384,
+ -0.501842,-0.819591,0.27645,4.138494,2.557838,0.652651,
+ -0.927379,-0.346541,0.14099,4.342998,2.664049,0.904347,
+ -0.393317,-0.870591,-0.295589,4.354196,2.711836,0.826545,
+ -0.180888,-0.792822,-0.58199,4.273414,2.686575,0.753674,
+ -0.927379,-0.346541,0.14099,4.342998,2.664049,0.904347,
+ -0.180888,-0.792822,-0.58199,4.273414,2.686575,0.753674,
+ -0.601432,-0.796051,0.067694,4.235494,2.636171,0.803613,
+ -0.850433,-0.132742,0.509061,4.460786,2.695616,0.949972,
+ -0.266521,-0.953514,0.14063,4.462368,2.725999,0.882675,
+ -0.393317,-0.870591,-0.295589,4.354196,2.711836,0.826545,
+ -0.850433,-0.132742,0.509061,4.460786,2.695616,0.949972,
+ -0.393317,-0.870591,-0.295589,4.354196,2.711836,0.826545,
+ -0.927379,-0.346541,0.14099,4.342998,2.664049,0.904347,
+ 0.078387,-0.886884,0.455294,4.616626,2.749486,0.939333,
+ 0.136995,-0.968757,-0.206741,4.735445,2.749285,0.940329,
+ -0.463096,-0.149333,0.873637,4.719171,2.751091,0.865965,
+ 0.078387,-0.886884,0.455294,4.616626,2.749486,0.939333,
+ -0.463096,-0.149333,0.873637,4.719171,2.751091,0.865965,
+ -0.894795,0.444359,-0.043442,4.636909,2.750501,0.856859,
+ -0.463096,-0.149333,0.873637,4.719171,2.751091,0.865965,
+ 0.136995,-0.968757,-0.206741,4.735445,2.749285,0.940329,
+ -0.460229,-0.015586,-0.887663,4.827733,2.75439,0.905049,
+ -0.463096,-0.149333,0.873637,4.719171,2.751091,0.865965,
+ -0.460229,-0.015586,-0.887663,4.827733,2.75439,0.905049,
+ -0.862876,-0.450622,0.228877,4.801436,2.750224,0.858918,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ -0.862876,-0.450622,0.228877,4.801436,2.750224,0.858918,
+ -0.460229,-0.015586,-0.887663,4.827733,2.75439,0.905049,
+ -0.850433,-0.132742,0.509061,4.460786,2.695616,0.949972,
+ -0.822149,-0.367113,0.435086,4.6248,2.708372,0.989445,
+ 0.078387,-0.886884,0.455294,4.616626,2.749486,0.939333,
+ -0.850433,-0.132742,0.509061,4.460786,2.695616,0.949972,
+ 0.078387,-0.886884,0.455294,4.616626,2.749486,0.939333,
+ -0.266521,-0.953514,0.14063,4.462368,2.725999,0.882675,
+ -0.822149,-0.367113,0.435086,4.6248,2.708372,0.989445,
+ 0.846486,-0.14409,-0.512541,4.753015,2.699695,0.973279,
+ 0.136995,-0.968757,-0.206741,4.735445,2.749285,0.940329,
+ -0.822149,-0.367113,0.435086,4.6248,2.708372,0.989445,
+ 0.136995,-0.968757,-0.206741,4.735445,2.749285,0.940329,
+ 0.078387,-0.886884,0.455294,4.616626,2.749486,0.939333,
+ -0.460229,-0.015586,-0.887663,4.827733,2.75439,0.905049,
+ 0.136995,-0.968757,-0.206741,4.735445,2.749285,0.940329,
+ 0.846486,-0.14409,-0.512541,4.753015,2.699695,0.973279,
+ -0.460229,-0.015586,-0.887663,4.827733,2.75439,0.905049,
+ 0.846486,-0.14409,-0.512541,4.753015,2.699695,0.973279,
+ 0.728229,-0.106722,-0.676973,4.863709,2.722151,0.93666,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ -0.460229,-0.015586,-0.887663,4.827733,2.75439,0.905049,
+ 0.728229,-0.106722,-0.676973,4.863709,2.722151,0.93666,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ 0.728229,-0.106722,-0.676973,4.863709,2.722151,0.93666,
+ 0.186393,-0.974436,-0.125429,4.854957,2.660227,0.92431,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ -0.274209,-0.939323,-0.20611,4.829566,2.580797,0.821827,
+ -0.791764,-0.610494,-0.020171,4.821336,2.621498,0.789636,
+ -0.916647,-0.2944,0.270344,5.096148,2.75972,0.774729,
+ -0.274209,-0.939323,-0.20611,4.856249,2.593812,0.867067,
+ -0.274209,-0.939323,-0.20611,4.829566,2.580797,0.821827
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1020,data,NULL};
+const struct gllist *cow_horns=&frame;
diff --git a/hacks/glx/cow_tail.c b/hacks/glx/cow_tail.c
new file mode 100644
index 0000000..895f05c
--- /dev/null
+++ b/hacks/glx/cow_tail.c
@@ -0,0 +1,464 @@
+#include "gllist.h"
+static const float data[]={
+ -0.54555,-0.056478,0.836173,-3.67645,-0.551317,0.077574,
+ 0.00197,-0.021649,0.999764,-3.740631,-0.558176,0.085478,
+ 0.000763,-0.01871,0.999825,-3.72947,-0.869371,0.096946,
+ -0.54555,-0.056478,0.836173,-3.67645,-0.551317,0.077574,
+ 0.000763,-0.01871,0.999825,-3.72947,-0.869371,0.096946,
+ -0.548359,-0.017804,0.836053,-3.699784,-0.759901,0.088664,
+ -0.548359,-0.017804,0.836053,-3.699784,-0.759901,0.088664,
+ 0.000763,-0.01871,0.999825,-3.72947,-0.869371,0.096946,
+ -0.530021,0.13773,0.836724,-3.697889,-0.951955,0.098793,
+ -0.530021,0.13773,0.836724,-3.697889,-0.951955,0.098793,
+ 0.000763,-0.01871,0.999825,-3.72947,-0.869371,0.096946,
+ -0.004656,-0.025693,0.999659,-3.733767,-1.141917,0.111139,
+ -0.530021,0.13773,0.836724,-3.697889,-0.951955,0.098793,
+ -0.004656,-0.025693,0.999659,-3.733767,-1.141917,0.111139,
+ -0.429713,0.351913,0.831567,-3.666536,-1.140372,0.078261,
+ -0.429713,0.351913,0.831567,-3.666536,-1.140372,0.078261,
+ -0.004656,-0.025693,0.999659,-3.733767,-1.141917,0.111139,
+ -0.020872,-0.032587,0.999251,-3.743747,-1.367219,0.100951,
+ -0.429713,0.351913,0.831567,-3.666536,-1.140372,0.078261,
+ -0.020872,-0.032587,0.999251,-3.743747,-1.367219,0.100951,
+ -0.24021,0.502412,0.830591,-3.639696,-1.242349,0.05719,
+ -0.24021,0.502412,0.830591,-3.639696,-1.242349,0.05719,
+ -0.020872,-0.032587,0.999251,-3.743747,-1.367219,0.100951,
+ -0.091034,0.391629,0.915609,-3.823638,-1.557534,0.081533,
+ -0.24021,0.502412,0.830591,-3.639696,-1.242349,0.05719,
+ -0.091034,0.391629,0.915609,-3.823638,-1.557534,0.081533,
+ 0.000909,0.669011,0.743252,-3.581963,-1.413947,-0.104371,
+ 0.000909,0.669011,0.743252,-3.581963,-1.413947,-0.104371,
+ -0.091034,0.391629,0.915609,-3.823638,-1.557534,0.081533,
+ -0.041225,-0.030655,0.99868,-3.683069,-1.591975,-0.115233,
+ -0.041225,-0.030655,0.99868,-3.683069,-1.591975,-0.115233,
+ -0.091034,0.391629,0.915609,-3.823638,-1.557534,0.081533,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ -0.041225,-0.030655,0.99868,-3.683069,-1.591975,-0.115233,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ 0.002322,-0.058071,0.99831,-3.828485,-1.786559,-0.114095,
+ 0.00197,-0.021649,0.999764,-3.740631,-0.558176,0.085478,
+ 0.518386,-0.029316,0.854644,-3.778908,-0.541975,0.064258,
+ 0.000763,-0.01871,0.999825,-3.72947,-0.869371,0.096946,
+ 0.518386,-0.029316,0.854644,-3.778908,-0.541975,0.064258,
+ 0.548941,0.015145,0.835724,-3.805841,-0.798961,0.099237,
+ 0.000763,-0.01871,0.999825,-3.72947,-0.869371,0.096946,
+ 0.000763,-0.01871,0.999825,-3.72947,-0.869371,0.096946,
+ 0.548941,0.015145,0.835724,-3.805841,-0.798961,0.099237,
+ -0.004656,-0.025693,0.999659,-3.733767,-1.141917,0.111139,
+ 0.548941,0.015145,0.835724,-3.805841,-0.798961,0.099237,
+ 0.549332,-0.018885,0.835391,-3.843256,-0.981402,0.116282,
+ -0.004656,-0.025693,0.999659,-3.733767,-1.141917,0.111139,
+ 0.549332,-0.018885,0.835391,-3.843256,-0.981402,0.116282,
+ 0.516335,-0.196022,0.833651,-3.884588,-1.261469,0.148322,
+ -0.004656,-0.025693,0.999659,-3.733767,-1.141917,0.111139,
+ -0.004656,-0.025693,0.999659,-3.733767,-1.141917,0.111139,
+ 0.516335,-0.196022,0.833651,-3.884588,-1.261469,0.148322,
+ -0.020872,-0.032587,0.999251,-3.743747,-1.367219,0.100951,
+ 0.516335,-0.196022,0.833651,-3.884588,-1.261469,0.148322,
+ 0.368421,-0.433142,0.82259,-3.914006,-1.486854,0.149147,
+ -0.020872,-0.032587,0.999251,-3.743747,-1.367219,0.100951,
+ -0.020872,-0.032587,0.999251,-3.743747,-1.367219,0.100951,
+ 0.368421,-0.433142,0.82259,-3.914006,-1.486854,0.149147,
+ -0.091034,0.391629,0.915609,-3.823638,-1.557534,0.081533,
+ 0.368421,-0.433142,0.82259,-3.914006,-1.486854,0.149147,
+ 0.255239,-0.528232,0.80983,-4.015306,-1.659952,0.130331,
+ -0.091034,0.391629,0.915609,-3.823638,-1.557534,0.081533,
+ -0.091034,0.391629,0.915609,-3.823638,-1.557534,0.081533,
+ 0.255239,-0.528232,0.80983,-4.015306,-1.659952,0.130331,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ 0.255239,-0.528232,0.80983,-4.015306,-1.659952,0.130331,
+ 0.791625,0.052579,0.608741,-4.107191,-1.83652,0.120149,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ 0.518386,-0.029316,0.854644,-3.778908,-0.541975,0.064258,
+ 0.875325,0.013439,0.483348,-3.818598,-0.52269,0.055572,
+ 0.891295,0.039311,0.451717,-3.900964,-0.780883,0.091579,
+ 0.518386,-0.029316,0.854644,-3.778908,-0.541975,0.064258,
+ 0.891295,0.039311,0.451717,-3.900964,-0.780883,0.091579,
+ 0.548941,0.015145,0.835724,-3.805841,-0.798961,0.099237,
+ 0.548941,0.015145,0.835724,-3.805841,-0.798961,0.099237,
+ 0.891295,0.039311,0.451717,-3.900964,-0.780883,0.091579,
+ 0.892259,-0.018571,0.451141,-3.949814,-0.963797,0.140806,
+ 0.548941,0.015145,0.835724,-3.805841,-0.798961,0.099237,
+ 0.892259,-0.018571,0.451141,-3.949814,-0.963797,0.140806,
+ 0.549332,-0.018885,0.835391,-3.843256,-0.981402,0.116282,
+ 0.549332,-0.018885,0.835391,-3.843256,-0.981402,0.116282,
+ 0.892259,-0.018571,0.451141,-3.949814,-0.963797,0.140806,
+ 0.843461,-0.305355,0.441963,-3.974499,-1.1696,0.164243,
+ 0.549332,-0.018885,0.835391,-3.843256,-0.981402,0.116282,
+ 0.843461,-0.305355,0.441963,-3.974499,-1.1696,0.164243,
+ 0.516335,-0.196022,0.833651,-3.884588,-1.261469,0.148322,
+ 0.516335,-0.196022,0.833651,-3.884588,-1.261469,0.148322,
+ 0.843461,-0.305355,0.441963,-3.974499,-1.1696,0.164243,
+ 0.589229,-0.690587,0.419402,-4.018866,-1.413191,0.154149,
+ 0.516335,-0.196022,0.833651,-3.884588,-1.261469,0.148322,
+ 0.589229,-0.690587,0.419402,-4.018866,-1.413191,0.154149,
+ 0.368421,-0.433142,0.82259,-3.914006,-1.486854,0.149147,
+ 0.368421,-0.433142,0.82259,-3.914006,-1.486854,0.149147,
+ 0.589229,-0.690587,0.419402,-4.018866,-1.413191,0.154149,
+ 0.389217,-0.829193,0.401185,-4.154334,-1.677827,0.165852,
+ 0.368421,-0.433142,0.82259,-3.914006,-1.486854,0.149147,
+ 0.389217,-0.829193,0.401185,-4.154334,-1.677827,0.165852,
+ 0.255239,-0.528232,0.80983,-4.015306,-1.659952,0.130331,
+ 0.255239,-0.528232,0.80983,-4.015306,-1.659952,0.130331,
+ 0.389217,-0.829193,0.401185,-4.154334,-1.677827,0.165852,
+ 0.981696,0.042552,-0.185638,-4.207566,-1.922824,0.155104,
+ 0.255239,-0.528232,0.80983,-4.015306,-1.659952,0.130331,
+ 0.981696,0.042552,-0.185638,-4.207566,-1.922824,0.155104,
+ 0.791625,0.052579,0.608741,-4.107191,-1.83652,0.120149,
+ 0.875325,0.013439,0.483348,-3.818598,-0.52269,0.055572,
+ 0.999006,0.044565,0.000415,-3.896204,-0.629183,0.077883,
+ 0.839295,0.00969,-0.54359,-3.978115,-0.82344,0.09928,
+ 0.875325,0.013439,0.483348,-3.818598,-0.52269,0.055572,
+ 0.839295,0.00969,-0.54359,-3.978115,-0.82344,0.09928,
+ 0.891295,0.039311,0.451717,-3.900964,-0.780883,0.091579,
+ 0.891295,0.039311,0.451717,-3.900964,-0.780883,0.091579,
+ 0.839295,0.00969,-0.54359,-3.978115,-0.82344,0.09928,
+ 0.874434,0.048946,-0.48267,-4.029726,-1.043238,0.136305,
+ 0.891295,0.039311,0.451717,-3.900964,-0.780883,0.091579,
+ 0.874434,0.048946,-0.48267,-4.029726,-1.043238,0.136305,
+ 0.892259,-0.018571,0.451141,-3.949814,-0.963797,0.140806,
+ 0.892259,-0.018571,0.451141,-3.949814,-0.963797,0.140806,
+ 0.874434,0.048946,-0.48267,-4.029726,-1.043238,0.136305,
+ 0.843461,-0.305355,0.441963,-3.974499,-1.1696,0.164243,
+ 0.843461,-0.305355,0.441963,-3.974499,-1.1696,0.164243,
+ 0.874434,0.048946,-0.48267,-4.029726,-1.043238,0.136305,
+ 0.432653,0.056559,-0.899785,-4.129295,-1.228786,0.120745,
+ 0.843461,-0.305355,0.441963,-3.974499,-1.1696,0.164243,
+ 0.432653,0.056559,-0.899785,-4.129295,-1.228786,0.120745,
+ 0.589229,-0.690587,0.419402,-4.018866,-1.413191,0.154149,
+ 0.589229,-0.690587,0.419402,-4.018866,-1.413191,0.154149,
+ 0.432653,0.056559,-0.899785,-4.129295,-1.228786,0.120745,
+ 0.517516,0.032105,-0.855071,-4.184154,-1.59808,0.151191,
+ 0.589229,-0.690587,0.419402,-4.018866,-1.413191,0.154149,
+ 0.517516,0.032105,-0.855071,-4.184154,-1.59808,0.151191,
+ 0.389217,-0.829193,0.401185,-4.154334,-1.677827,0.165852,
+ 0.389217,-0.829193,0.401185,-4.154334,-1.677827,0.165852,
+ 0.517516,0.032105,-0.855071,-4.184154,-1.59808,0.151191,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ 0.389217,-0.829193,0.401185,-4.154334,-1.677827,0.165852,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ 0.981696,0.042552,-0.185638,-4.207566,-1.922824,0.155104,
+ 0.999006,0.044565,0.000415,-3.896204,-0.629183,0.077883,
+ 0.001234,0.013557,-0.999907,-3.932489,-0.556566,0.037354,
+ -0.369174,0.174156,-0.912897,-4.070739,-0.947648,0.110554,
+ 0.999006,0.044565,0.000415,-3.896204,-0.629183,0.077883,
+ -0.369174,0.174156,-0.912897,-4.070739,-0.947648,0.110554,
+ 0.839295,0.00969,-0.54359,-3.978115,-0.82344,0.09928,
+ 0.839295,0.00969,-0.54359,-3.978115,-0.82344,0.09928,
+ -0.369174,0.174156,-0.912897,-4.070739,-0.947648,0.110554,
+ -0.516127,0.008586,-0.856469,-4.227645,-1.227895,0.069894,
+ 0.839295,0.00969,-0.54359,-3.978115,-0.82344,0.09928,
+ -0.516127,0.008586,-0.856469,-4.227645,-1.227895,0.069894,
+ 0.874434,0.048946,-0.48267,-4.029726,-1.043238,0.136305,
+ 0.874434,0.048946,-0.48267,-4.029726,-1.043238,0.136305,
+ -0.516127,0.008586,-0.856469,-4.227645,-1.227895,0.069894,
+ -0.822516,0.195417,-0.534116,-4.229164,-1.473093,0.11156,
+ 0.874434,0.048946,-0.48267,-4.029726,-1.043238,0.136305,
+ -0.822516,0.195417,-0.534116,-4.229164,-1.473093,0.11156,
+ 0.432653,0.056559,-0.899785,-4.129295,-1.228786,0.120745,
+ 0.432653,0.056559,-0.899785,-4.129295,-1.228786,0.120745,
+ -0.822516,0.195417,-0.534116,-4.229164,-1.473093,0.11156,
+ -0.874954,0.011842,-0.484061,-4.309744,-1.743848,0.150329,
+ 0.432653,0.056559,-0.899785,-4.129295,-1.228786,0.120745,
+ -0.874954,0.011842,-0.484061,-4.309744,-1.743848,0.150329,
+ 0.517516,0.032105,-0.855071,-4.184154,-1.59808,0.151191,
+ 0.517516,0.032105,-0.855071,-4.184154,-1.59808,0.151191,
+ -0.874954,0.011842,-0.484061,-4.309744,-1.743848,0.150329,
+ 0.924466,0.048977,0.378105,-4.405365,-1.921443,0.192978,
+ 0.517516,0.032105,-0.855071,-4.184154,-1.59808,0.151191,
+ 0.924466,0.048977,0.378105,-4.405365,-1.921443,0.192978,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ 0.001234,0.013557,-0.999907,-3.932489,-0.556566,0.037354,
+ 0.728068,-0.191899,-0.658097,-3.975337,-0.554961,-0.014407,
+ 0.313565,-0.18353,-0.931662,-4.112449,-0.875765,0.016326,
+ 0.001234,0.013557,-0.999907,-3.932489,-0.556566,0.037354,
+ 0.313565,-0.18353,-0.931662,-4.112449,-0.875765,0.016326,
+ -0.369174,0.174156,-0.912897,-4.070739,-0.947648,0.110554,
+ -0.369174,0.174156,-0.912897,-4.070739,-0.947648,0.110554,
+ 0.313565,-0.18353,-0.931662,-4.112449,-0.875765,0.016326,
+ 0.537835,-0.193789,-0.820475,-4.233834,-1.166542,0.022074,
+ -0.369174,0.174156,-0.912897,-4.070739,-0.947648,0.110554,
+ 0.537835,-0.193789,-0.820475,-4.233834,-1.166542,0.022074,
+ -0.516127,0.008586,-0.856469,-4.227645,-1.227895,0.069894,
+ -0.516127,0.008586,-0.856469,-4.227645,-1.227895,0.069894,
+ 0.537835,-0.193789,-0.820475,-4.233834,-1.166542,0.022074,
+ 0.908243,-0.229695,0.349765,-4.333831,-1.548255,0.056938,
+ -0.516127,0.008586,-0.856469,-4.227645,-1.227895,0.069894,
+ 0.908243,-0.229695,0.349765,-4.333831,-1.548255,0.056938,
+ -0.822516,0.195417,-0.534116,-4.229164,-1.473093,0.11156,
+ -0.822516,0.195417,-0.534116,-4.229164,-1.473093,0.11156,
+ 0.908243,-0.229695,0.349765,-4.333831,-1.548255,0.056938,
+ 0.701057,-0.21056,0.68131,-4.424122,-1.831742,0.130839,
+ -0.822516,0.195417,-0.534116,-4.229164,-1.473093,0.11156,
+ 0.701057,-0.21056,0.68131,-4.424122,-1.831742,0.130839,
+ -0.874954,0.011842,-0.484061,-4.309744,-1.743848,0.150329,
+ -0.874954,0.011842,-0.484061,-4.309744,-1.743848,0.150329,
+ 0.701057,-0.21056,0.68131,-4.424122,-1.831742,0.130839,
+ 0.129519,-0.132707,0.982656,-4.445835,-2.015127,0.189702,
+ -0.874954,0.011842,-0.484061,-4.309744,-1.743848,0.150329,
+ 0.129519,-0.132707,0.982656,-4.445835,-2.015127,0.189702,
+ 0.924466,0.048977,0.378105,-4.405365,-1.921443,0.192978,
+ 0.728068,-0.191899,-0.658097,-3.975337,-0.554961,-0.014407,
+ -0.276108,-0.088023,0.957087,-3.921874,-0.538502,-0.145307,
+ -0.409041,-0.077841,0.90919,-4.042715,-0.87671,-0.168968,
+ 0.728068,-0.191899,-0.658097,-3.975337,-0.554961,-0.014407,
+ -0.409041,-0.077841,0.90919,-4.042715,-0.87671,-0.168968,
+ 0.313565,-0.18353,-0.931662,-4.112449,-0.875765,0.016326,
+ 0.313565,-0.18353,-0.931662,-4.112449,-0.875765,0.016326,
+ -0.409041,-0.077841,0.90919,-4.042715,-0.87671,-0.168968,
+ 0.50178,0.000639,-0.864995,-4.216296,-1.160854,-0.104034,
+ 0.313565,-0.18353,-0.931662,-4.112449,-0.875765,0.016326,
+ 0.50178,0.000639,-0.864995,-4.216296,-1.160854,-0.104034,
+ 0.537835,-0.193789,-0.820475,-4.233834,-1.166542,0.022074,
+ 0.537835,-0.193789,-0.820475,-4.233834,-1.166542,0.022074,
+ 0.50178,0.000639,-0.864995,-4.216296,-1.160854,-0.104034,
+ 0.300485,0.019099,-0.953595,-4.252683,-1.437854,-0.14562,
+ 0.537835,-0.193789,-0.820475,-4.233834,-1.166542,0.022074,
+ 0.300485,0.019099,-0.953595,-4.252683,-1.437854,-0.14562,
+ 0.908243,-0.229695,0.349765,-4.333831,-1.548255,0.056938,
+ 0.908243,-0.229695,0.349765,-4.333831,-1.548255,0.056938,
+ 0.300485,0.019099,-0.953595,-4.252683,-1.437854,-0.14562,
+ 0.678632,-0.017853,-0.734261,-4.331331,-1.69259,-0.043593,
+ 0.908243,-0.229695,0.349765,-4.333831,-1.548255,0.056938,
+ 0.678632,-0.017853,-0.734261,-4.331331,-1.69259,-0.043593,
+ 0.701057,-0.21056,0.68131,-4.424122,-1.831742,0.130839,
+ 0.701057,-0.21056,0.68131,-4.424122,-1.831742,0.130839,
+ 0.678632,-0.017853,-0.734261,-4.331331,-1.69259,-0.043593,
+ 0.687126,-0.68509,0.241888,-4.387148,-1.967814,0.045602,
+ 0.701057,-0.21056,0.68131,-4.424122,-1.831742,0.130839,
+ 0.687126,-0.68509,0.241888,-4.387148,-1.967814,0.045602,
+ 0.129519,-0.132707,0.982656,-4.445835,-2.015127,0.189702,
+ -0.276108,-0.088023,0.957087,-3.921874,-0.538502,-0.145307,
+ 0.260319,-0.908993,-0.325523,-3.910546,-0.601719,-0.163159,
+ -0.148191,-0.901516,-0.40658,-3.988138,-0.962789,-0.223649,
+ -0.276108,-0.088023,0.957087,-3.921874,-0.538502,-0.145307,
+ -0.148191,-0.901516,-0.40658,-3.988138,-0.962789,-0.223649,
+ -0.409041,-0.077841,0.90919,-4.042715,-0.87671,-0.168968,
+ -0.409041,-0.077841,0.90919,-4.042715,-0.87671,-0.168968,
+ -0.148191,-0.901516,-0.40658,-3.988138,-0.962789,-0.223649,
+ -0.443612,-0.876487,-0.187028,-4.111927,-1.333141,-0.26716,
+ -0.409041,-0.077841,0.90919,-4.042715,-0.87671,-0.168968,
+ -0.443612,-0.876487,-0.187028,-4.111927,-1.333141,-0.26716,
+ 0.50178,0.000639,-0.864995,-4.216296,-1.160854,-0.104034,
+ 0.50178,0.000639,-0.864995,-4.216296,-1.160854,-0.104034,
+ -0.443612,-0.876487,-0.187028,-4.111927,-1.333141,-0.26716,
+ -0.508388,-0.837291,0.20121,-4.201904,-1.668554,-0.214859,
+ 0.50178,0.000639,-0.864995,-4.216296,-1.160854,-0.104034,
+ -0.508388,-0.837291,0.20121,-4.201904,-1.668554,-0.214859,
+ 0.300485,0.019099,-0.953595,-4.252683,-1.437854,-0.14562,
+ 0.300485,0.019099,-0.953595,-4.252683,-1.437854,-0.14562,
+ -0.508388,-0.837291,0.20121,-4.201904,-1.668554,-0.214859,
+ -0.409829,-0.525605,0.745506,-4.273069,-1.798884,-0.099878,
+ 0.300485,0.019099,-0.953595,-4.252683,-1.437854,-0.14562,
+ -0.409829,-0.525605,0.745506,-4.273069,-1.798884,-0.099878,
+ 0.678632,-0.017853,-0.734261,-4.331331,-1.69259,-0.043593,
+ 0.678632,-0.017853,-0.734261,-4.331331,-1.69259,-0.043593,
+ -0.409829,-0.525605,0.745506,-4.273069,-1.798884,-0.099878,
+ -0.227573,-0.361148,0.904313,-4.351543,-1.947675,0.02502,
+ 0.678632,-0.017853,-0.734261,-4.331331,-1.69259,-0.043593,
+ -0.227573,-0.361148,0.904313,-4.351543,-1.947675,0.02502,
+ 0.687126,-0.68509,0.241888,-4.387148,-1.967814,0.045602,
+ 0.260319,-0.908993,-0.325523,-3.910546,-0.601719,-0.163159,
+ 0.10009,-0.380026,0.919545,-3.873622,-0.759035,-0.197169,
+ 0.547733,-0.470267,0.691981,-3.917882,-1.082831,-0.289171,
+ 0.260319,-0.908993,-0.325523,-3.910546,-0.601719,-0.163159,
+ 0.547733,-0.470267,0.691981,-3.917882,-1.082831,-0.289171,
+ -0.148191,-0.901516,-0.40658,-3.988138,-0.962789,-0.223649,
+ -0.148191,-0.901516,-0.40658,-3.988138,-0.962789,-0.223649,
+ 0.547733,-0.470267,0.691981,-3.917882,-1.082831,-0.289171,
+ -0.071182,-0.950841,0.301389,-4.001496,-1.375703,-0.285641,
+ -0.148191,-0.901516,-0.40658,-3.988138,-0.962789,-0.223649,
+ -0.071182,-0.950841,0.301389,-4.001496,-1.375703,-0.285641,
+ -0.443612,-0.876487,-0.187028,-4.111927,-1.333141,-0.26716,
+ -0.443612,-0.876487,-0.187028,-4.111927,-1.333141,-0.26716,
+ -0.071182,-0.950841,0.301389,-4.001496,-1.375703,-0.285641,
+ 0.216747,0.039317,0.975436,-4.073086,-1.649491,-0.238382,
+ -0.443612,-0.876487,-0.187028,-4.111927,-1.333141,-0.26716,
+ 0.216747,0.039317,0.975436,-4.073086,-1.649491,-0.238382,
+ -0.508388,-0.837291,0.20121,-4.201904,-1.668554,-0.214859,
+ -0.508388,-0.837291,0.20121,-4.201904,-1.668554,-0.214859,
+ 0.216747,0.039317,0.975436,-4.073086,-1.649491,-0.238382,
+ 0.555948,0.246866,0.793712,-4.175757,-1.808223,-0.140659,
+ -0.508388,-0.837291,0.20121,-4.201904,-1.668554,-0.214859,
+ 0.555948,0.246866,0.793712,-4.175757,-1.808223,-0.140659,
+ -0.409829,-0.525605,0.745506,-4.273069,-1.798884,-0.099878,
+ -0.409829,-0.525605,0.745506,-4.273069,-1.798884,-0.099878,
+ 0.555948,0.246866,0.793712,-4.175757,-1.808223,-0.140659,
+ 0.768311,0.202351,0.60725,-4.321269,-1.963488,0.025072,
+ -0.409829,-0.525605,0.745506,-4.273069,-1.798884,-0.099878,
+ 0.768311,0.202351,0.60725,-4.321269,-1.963488,0.025072,
+ -0.227573,-0.361148,0.904313,-4.351543,-1.947675,0.02502,
+ 0.10009,-0.380026,0.919545,-3.873622,-0.759035,-0.197169,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ 0.547733,-0.470267,0.691981,-3.917882,-1.082831,-0.289171,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ 0.587809,-0.328909,0.739121,-3.777709,-1.051411,-0.240495,
+ 0.547733,-0.470267,0.691981,-3.917882,-1.082831,-0.289171,
+ 0.547733,-0.470267,0.691981,-3.917882,-1.082831,-0.289171,
+ 0.587809,-0.328909,0.739121,-3.777709,-1.051411,-0.240495,
+ -0.071182,-0.950841,0.301389,-4.001496,-1.375703,-0.285641,
+ 0.587809,-0.328909,0.739121,-3.777709,-1.051411,-0.240495,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ -0.071182,-0.950841,0.301389,-4.001496,-1.375703,-0.285641,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ 0.794828,0.083383,0.601079,-4.000019,-1.567512,-0.27535,
+ -0.071182,-0.950841,0.301389,-4.001496,-1.375703,-0.285641,
+ -0.071182,-0.950841,0.301389,-4.001496,-1.375703,-0.285641,
+ 0.794828,0.083383,0.601079,-4.000019,-1.567512,-0.27535,
+ 0.216747,0.039317,0.975436,-4.073086,-1.649491,-0.238382,
+ 0.794828,0.083383,0.601079,-4.000019,-1.567512,-0.27535,
+ 0.873201,-0.045461,0.485235,-3.977657,-1.750845,-0.184909,
+ 0.216747,0.039317,0.975436,-4.073086,-1.649491,-0.238382,
+ 0.216747,0.039317,0.975436,-4.073086,-1.649491,-0.238382,
+ 0.873201,-0.045461,0.485235,-3.977657,-1.750845,-0.184909,
+ 0.555948,0.246866,0.793712,-4.175757,-1.808223,-0.140659,
+ 0.873201,-0.045461,0.485235,-3.977657,-1.750845,-0.184909,
+ 0.829377,-0.173626,0.531026,-4.075028,-1.904403,-0.041324,
+ 0.555948,0.246866,0.793712,-4.175757,-1.808223,-0.140659,
+ 0.555948,0.246866,0.793712,-4.175757,-1.808223,-0.140659,
+ 0.829377,-0.173626,0.531026,-4.075028,-1.904403,-0.041324,
+ 0.768311,0.202351,0.60725,-4.321269,-1.963488,0.025072,
+ 0.829377,-0.173626,0.531026,-4.075028,-1.904403,-0.041324,
+ 0.506864,-0.193038,0.840134,-4.192486,-1.953852,0.017313,
+ 0.768311,0.202351,0.60725,-4.321269,-1.963488,0.025072,
+ 0.274422,-0.24433,0.930051,-3.65524,-0.194907,0.019209,
+ 0.560378,0.257624,0.787151,-3.695565,-0.19362,0.051497,
+ 0.00197,-0.021649,0.999764,-3.740631,-0.558176,0.085478,
+ 0.274422,-0.24433,0.930051,-3.65524,-0.194907,0.019209,
+ 0.00197,-0.021649,0.999764,-3.740631,-0.558176,0.085478,
+ -0.54555,-0.056478,0.836173,-3.67645,-0.551317,0.077574,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.728068,-0.191899,-0.658097,-3.975337,-0.554961,-0.014407,
+ 0.001234,0.013557,-0.999907,-3.932489,-0.556566,0.037354,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.001234,0.013557,-0.999907,-3.932489,-0.556566,0.037354,
+ 0.999006,0.044565,0.000415,-3.896204,-0.629183,0.077883,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.999006,0.044565,0.000415,-3.896204,-0.629183,0.077883,
+ 0.875325,0.013439,0.483348,-3.818598,-0.52269,0.055572,
+ 0.711192,0.127662,0.69131,-3.75063,-0.191863,0.063305,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.875325,0.013439,0.483348,-3.818598,-0.52269,0.055572,
+ 0.711192,0.127662,0.69131,-3.75063,-0.191863,0.063305,
+ 0.875325,0.013439,0.483348,-3.818598,-0.52269,0.055572,
+ 0.518386,-0.029316,0.854644,-3.778908,-0.541975,0.064258,
+ 0.560378,0.257624,0.787151,-3.695565,-0.19362,0.051497,
+ 0.518386,-0.029316,0.854644,-3.778908,-0.541975,0.064258,
+ 0.00197,-0.021649,0.999764,-3.740631,-0.558176,0.085478,
+ 0.238843,0.101951,0.965691,-3.84599,-0.18882,0.019164,
+ 0.166377,-0.157108,0.973466,-3.86074,-0.188349,-0.024962,
+ 0.728068,-0.191899,-0.658097,-3.975337,-0.554961,-0.014407,
+ 0.89264,0.349909,0.284178,-3.695452,-0.193624,-0.101369,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ 0.10009,-0.380026,0.919545,-3.873622,-0.759035,-0.197169,
+ 0.3526,0.621479,0.699598,-3.7505,-0.191867,-0.11323,
+ 0.89264,0.349909,0.284178,-3.695452,-0.193624,-0.101369,
+ 0.10009,-0.380026,0.919545,-3.873622,-0.759035,-0.197169,
+ -0.281998,-0.030938,0.958916,-3.805575,-0.190109,-0.101447,
+ 0.3526,0.621479,0.699598,-3.7505,-0.191867,-0.11323,
+ 0.10009,-0.380026,0.919545,-3.873622,-0.759035,-0.197169,
+ -0.281998,-0.030938,0.958916,-3.805575,-0.190109,-0.101447,
+ 0.10009,-0.380026,0.919545,-3.873622,-0.759035,-0.197169,
+ 0.260319,-0.908993,-0.325523,-3.910546,-0.601719,-0.163159,
+ -0.281998,-0.030938,0.958916,-3.805575,-0.190109,-0.101447,
+ 0.260319,-0.908993,-0.325523,-3.910546,-0.601719,-0.163159,
+ -0.276108,-0.088023,0.957087,-3.921874,-0.538502,-0.145307,
+ 0.077536,0.770695,0.632469,-3.845923,-0.188822,-0.06918,
+ -0.281998,-0.030938,0.958916,-3.805575,-0.190109,-0.101447,
+ -0.276108,-0.088023,0.957087,-3.921874,-0.538502,-0.145307,
+ 0.166377,-0.157108,0.973466,-3.86074,-0.188349,-0.024962,
+ -0.276108,-0.088023,0.957087,-3.921874,-0.538502,-0.145307,
+ 0.728068,-0.191899,-0.658097,-3.975337,-0.554961,-0.014407,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ -0.064166,-0.189382,0.979805,-3.655175,-0.194909,-0.069044,
+ 0.267717,-0.172975,0.947844,-3.640457,-0.195379,-0.024909,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ 0.89264,0.349909,0.284178,-3.695452,-0.193624,-0.101369,
+ -0.064166,-0.189382,0.979805,-3.655175,-0.194909,-0.069044,
+ 0.274422,-0.24433,0.930051,-3.65524,-0.194907,0.019209,
+ -0.54555,-0.056478,0.836173,-3.67645,-0.551317,0.077574,
+ 0.269003,0.86436,0.424875,-3.569386,-0.761644,-0.035893,
+ 0.269003,0.86436,0.424875,-3.569386,-0.761644,-0.035893,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ 0.267717,-0.172975,0.947844,-3.640457,-0.195379,-0.024909,
+ -0.54555,-0.056478,0.836173,-3.67645,-0.551317,0.077574,
+ -0.530021,0.13773,0.836724,-3.697889,-0.951955,0.098793,
+ -0.429713,0.351913,0.831567,-3.666536,-1.140372,0.078261,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ 0.587809,-0.328909,0.739121,-3.777709,-1.051411,-0.240495,
+ 0.000909,0.669011,0.743252,-3.581963,-1.413947,-0.104371,
+ 0.269003,0.86436,0.424875,-3.569386,-0.761644,-0.035893,
+ -0.54555,-0.056478,0.836173,-3.67645,-0.551317,0.077574,
+ -0.429713,0.351913,0.831567,-3.666536,-1.140372,0.078261,
+ 0.269003,0.86436,0.424875,-3.569386,-0.761644,-0.035893,
+ -0.429713,0.351913,0.831567,-3.666536,-1.140372,0.078261,
+ -0.24021,0.502412,0.830591,-3.639696,-1.242349,0.05719,
+ 0.269003,0.86436,0.424875,-3.569386,-0.761644,-0.035893,
+ -0.24021,0.502412,0.830591,-3.639696,-1.242349,0.05719,
+ 0.000909,0.669011,0.743252,-3.581963,-1.413947,-0.104371,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ 0.269003,0.86436,0.424875,-3.569386,-0.761644,-0.035893,
+ 0.000909,0.669011,0.743252,-3.581963,-1.413947,-0.104371,
+ 0.587809,-0.328909,0.739121,-3.777709,-1.051411,-0.240495,
+ 0.833232,0.046885,0.550932,-3.742608,-0.729374,-0.149361,
+ 0.000909,0.669011,0.743252,-3.581963,-1.413947,-0.104371,
+ 0.873201,-0.045461,0.485235,-3.977657,-1.750845,-0.184909,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ 0.829377,-0.173626,0.531026,-4.075028,-1.904403,-0.041324,
+ 0.873201,-0.045461,0.485235,-3.977657,-1.750845,-0.184909,
+ 0.794828,0.083383,0.601079,-4.000019,-1.567512,-0.27535,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ 0.000909,0.669011,0.743252,-3.581963,-1.413947,-0.104371,
+ -0.041225,-0.030655,0.99868,-3.683069,-1.591975,-0.115233,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ -0.041225,-0.030655,0.99868,-3.683069,-1.591975,-0.115233,
+ 0.002322,-0.058071,0.99831,-3.828485,-1.786559,-0.114095,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ 0.002322,-0.058071,0.99831,-3.828485,-1.786559,-0.114095,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ 0.873201,-0.045461,0.485235,-3.977657,-1.750845,-0.184909,
+ 0.213242,-0.278117,0.936578,-3.82037,-1.239135,-0.269807,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ 0.231733,0.017467,0.972623,-3.890388,-1.750102,0.017612,
+ 0.791625,0.052579,0.608741,-4.107191,-1.83652,0.120149,
+ 0.829377,-0.173626,0.531026,-4.075028,-1.904403,-0.041324,
+ 0.791625,0.052579,0.608741,-4.107191,-1.83652,0.120149,
+ 0.981696,0.042552,-0.185638,-4.207566,-1.922824,0.155104,
+ 0.829377,-0.173626,0.531026,-4.075028,-1.904403,-0.041324,
+ 0.924466,0.048977,0.378105,-4.405365,-1.921443,0.192978,
+ 0.687126,-0.68509,0.241888,-4.387148,-1.967814,0.045602,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ 0.506864,-0.193038,0.840134,-4.192486,-1.953852,0.017313,
+ 0.829377,-0.173626,0.531026,-4.075028,-1.904403,-0.041324,
+ 0.981696,0.042552,-0.185638,-4.207566,-1.922824,0.155104,
+ 0.506864,-0.193038,0.840134,-4.192486,-1.953852,0.017313,
+ 0.981696,0.042552,-0.185638,-4.207566,-1.922824,0.155104,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ 0.768311,0.202351,0.60725,-4.321269,-1.963488,0.025072,
+ 0.506864,-0.193038,0.840134,-4.192486,-1.953852,0.017313,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ -0.227573,-0.361148,0.904313,-4.351543,-1.947675,0.02502,
+ 0.768311,0.202351,0.60725,-4.321269,-1.963488,0.025072,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ 0.687126,-0.68509,0.241888,-4.387148,-1.967814,0.045602,
+ -0.227573,-0.361148,0.904313,-4.351543,-1.947675,0.02502,
+ 0.002983,0.098874,-0.995096,-4.297769,-1.889903,0.177707,
+ 0.924466,0.048977,0.378105,-4.405365,-1.921443,0.192978,
+ 0.129519,-0.132707,0.982656,-4.445835,-2.015127,0.189702,
+ 0.687126,-0.68509,0.241888,-4.387148,-1.967814,0.045602,
+ 0.560378,0.257624,0.787151,-3.695565,-0.19362,0.051497,
+ 0.711192,0.127662,0.69131,-3.75063,-0.191863,0.063305,
+ 0.518386,-0.029316,0.854644,-3.778908,-0.541975,0.064258,
+ 0.546619,0.025488,0.836993,-3.805688,-0.190106,0.051472,
+ 0.238843,0.101951,0.965691,-3.84599,-0.18882,0.019164,
+ 0.728068,-0.191899,-0.658097,-3.975337,-0.554961,-0.014407,
+ 0.166377,-0.157108,0.973466,-3.86074,-0.188349,-0.024962,
+ 0.077536,0.770695,0.632469,-3.845923,-0.188822,-0.06918,
+ -0.276108,-0.088023,0.957087,-3.921874,-0.538502,-0.145307,
+ 0.269003,0.86436,0.424875,-3.569386,-0.761644,-0.035893,
+ 0.267717,-0.172975,0.947844,-3.640457,-0.195379,-0.024909,
+ 0.274422,-0.24433,0.930051,-3.65524,-0.194907,0.019209
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,459,data,NULL};
+const struct gllist *cow_tail=&frame;
diff --git a/hacks/glx/cow_udder.c b/hacks/glx/cow_udder.c
new file mode 100644
index 0000000..46df87c
--- /dev/null
+++ b/hacks/glx/cow_udder.c
@@ -0,0 +1,1520 @@
+#include "gllist.h"
+static const float data[]={
+ 0.058723,-0.195869,-0.97887,-2.033406,-0.91003,-0.96422,
+ -0.977902,-0.171036,-0.12023,-2.119856,-1.1288,-0.97096,
+ 0.07657,0.16758,-0.982881,-2.306662,-1.116976,-0.961238,
+ -0.977902,-0.171036,-0.12023,-2.119856,-1.1288,-0.97096,
+ 0.058723,-0.195869,-0.97887,-2.033406,-0.91003,-0.96422,
+ -0.964119,-0.189683,-0.18573,-2.031698,-1.097344,-0.966701,
+ -0.964119,-0.189683,-0.18573,-2.031698,-1.097344,-0.966701,
+ 0.058723,-0.195869,-0.97887,-2.033406,-0.91003,-0.96422,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ -0.955382,-0.23808,-0.174826,-2.462835,-1.3055,-0.966395,
+ 0.07657,0.16758,-0.982881,-2.306662,-1.116976,-0.961238,
+ -0.843742,-0.096326,-0.528036,-2.337617,-1.334842,-0.966761,
+ -0.843742,-0.096326,-0.528036,-2.337617,-1.334842,-0.966761,
+ 0.07657,0.16758,-0.982881,-2.306662,-1.116976,-0.961238,
+ -0.977902,-0.171036,-0.12023,-2.119856,-1.1288,-0.97096,
+ -0.843742,-0.096326,-0.528036,-2.337617,-1.334842,-0.966761,
+ -0.977902,-0.171036,-0.12023,-2.119856,-1.1288,-0.97096,
+ 0.028952,-0.016247,-0.999449,-2.161843,-1.325837,-0.957465,
+ 0.028952,-0.016247,-0.999449,-2.161843,-1.325837,-0.957465,
+ -0.977902,-0.171036,-0.12023,-2.119856,-1.1288,-0.97096,
+ -0.964119,-0.189683,-0.18573,-2.031698,-1.097344,-0.966701,
+ 0.028952,-0.016247,-0.999449,-2.161843,-1.325837,-0.957465,
+ -0.964119,-0.189683,-0.18573,-2.031698,-1.097344,-0.966701,
+ 0.093953,-0.049433,-0.994349,-2.042059,-1.312976,-0.940911,
+ 0.093953,-0.049433,-0.994349,-2.042059,-1.312976,-0.940911,
+ -0.964119,-0.189683,-0.18573,-2.031698,-1.097344,-0.966701,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ 0.093953,-0.049433,-0.994349,-2.042059,-1.312976,-0.940911,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ 0.335613,-0.388493,-0.858159,-1.776785,-1.275107,-0.914703,
+ 0.335613,-0.388493,-0.858159,-1.776785,-1.275107,-0.914703,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ -0.004413,-0.170526,-0.985343,-1.709172,-1.283232,-0.897427,
+ -0.004413,-0.170526,-0.985343,-1.709172,-1.283232,-0.897427,
+ -0.30296,-0.137183,-0.943078,-1.782298,-1.020581,-0.943381,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ 0.137764,-0.289893,-0.947092,-2.591357,-1.510845,-0.88547,
+ -0.955382,-0.23808,-0.174826,-2.462835,-1.3055,-0.966395,
+ -0.843742,-0.096326,-0.528036,-2.337617,-1.334842,-0.966761,
+ 0.137764,-0.289893,-0.947092,-2.591357,-1.510845,-0.88547,
+ -0.843742,-0.096326,-0.528036,-2.337617,-1.334842,-0.966761,
+ 0.137206,-0.207537,-0.968557,-2.417777,-1.553136,-0.887222,
+ 0.137206,-0.207537,-0.968557,-2.417777,-1.553136,-0.887222,
+ -0.843742,-0.096326,-0.528036,-2.337617,-1.334842,-0.966761,
+ 0.028952,-0.016247,-0.999449,-2.161843,-1.325837,-0.957465,
+ 0.137206,-0.207537,-0.968557,-2.417777,-1.553136,-0.887222,
+ 0.028952,-0.016247,-0.999449,-2.161843,-1.325837,-0.957465,
+ 0.094371,-0.230057,-0.968591,-2.223917,-1.541268,-0.87926,
+ 0.094371,-0.230057,-0.968591,-2.223917,-1.541268,-0.87926,
+ 0.028952,-0.016247,-0.999449,-2.161843,-1.325837,-0.957465,
+ 0.093953,-0.049433,-0.994349,-2.042059,-1.312976,-0.940911,
+ 0.094371,-0.230057,-0.968591,-2.223917,-1.541268,-0.87926,
+ 0.093953,-0.049433,-0.994349,-2.042059,-1.312976,-0.940911,
+ -0.201818,-0.568242,-0.797728,-2.049879,-1.562369,-0.829319,
+ -0.201818,-0.568242,-0.797728,-2.049879,-1.562369,-0.829319,
+ 0.093953,-0.049433,-0.994349,-2.042059,-1.312976,-0.940911,
+ 0.357021,-0.590654,-0.723646,-1.777628,-1.473076,-0.845827,
+ -0.201818,-0.568242,-0.797728,-2.049879,-1.562369,-0.829319,
+ 0.357021,-0.590654,-0.723646,-1.777628,-1.473076,-0.845827,
+ 0.008663,-0.516082,-0.856495,-1.778934,-1.550199,-0.776454,
+ 0.357021,-0.590654,-0.723646,-1.777628,-1.473076,-0.845827,
+ 0.093953,-0.049433,-0.994349,-2.042059,-1.312976,-0.940911,
+ 0.335613,-0.388493,-0.858159,-1.776785,-1.275107,-0.914703,
+ 0.357021,-0.590654,-0.723646,-1.777628,-1.473076,-0.845827,
+ 0.335613,-0.388493,-0.858159,-1.776785,-1.275107,-0.914703,
+ -0.004413,-0.170526,-0.985343,-1.709172,-1.283232,-0.897427,
+ 0.357021,-0.590654,-0.723646,-1.777628,-1.473076,-0.845827,
+ -0.004413,-0.170526,-0.985343,-1.709172,-1.283232,-0.897427,
+ 0.106237,-0.558927,-0.822383,-1.686329,-1.414405,-0.869373,
+ 0.106237,-0.558927,-0.822383,-1.686329,-1.414405,-0.869373,
+ -0.004413,-0.170526,-0.985343,-1.709172,-1.283232,-0.897427,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ 0.106237,-0.558927,-0.822383,-1.686329,-1.414405,-0.869373,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ 0.155794,-0.590112,-0.792146,-1.592146,-1.408592,-0.838483,
+ 0.155794,-0.590112,-0.792146,-1.592146,-1.408592,-0.838483,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ 0.08565,-0.422547,-0.902285,-1.552229,-1.555077,-0.735708,
+ 0.08565,-0.422547,-0.902285,-1.552229,-1.555077,-0.735708,
+ 0.161064,-0.731195,-0.662882,-1.659758,-1.544361,-0.788181,
+ 0.155794,-0.590112,-0.792146,-1.592146,-1.408592,-0.838483,
+ 0.155794,-0.590112,-0.792146,-1.592146,-1.408592,-0.838483,
+ 0.161064,-0.731195,-0.662882,-1.659758,-1.544361,-0.788181,
+ 0.106237,-0.558927,-0.822383,-1.686329,-1.414405,-0.869373,
+ 0.106237,-0.558927,-0.822383,-1.686329,-1.414405,-0.869373,
+ 0.161064,-0.731195,-0.662882,-1.659758,-1.544361,-0.788181,
+ 0.008663,-0.516082,-0.856495,-1.778934,-1.550199,-0.776454,
+ 0.106237,-0.558927,-0.822383,-1.686329,-1.414405,-0.869373,
+ 0.008663,-0.516082,-0.856495,-1.778934,-1.550199,-0.776454,
+ 0.357021,-0.590654,-0.723646,-1.777628,-1.473076,-0.845827,
+ 0.08565,-0.422547,-0.902285,-1.552229,-1.555077,-0.735708,
+ 0.095733,-0.224552,-0.969748,-1.456655,-1.295527,-0.89424,
+ -0.422758,-0.178302,-0.888529,-1.366873,-1.340211,-0.907567,
+ 0.08565,-0.422547,-0.902285,-1.552229,-1.555077,-0.735708,
+ -0.422758,-0.178302,-0.888529,-1.366873,-1.340211,-0.907567,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ -0.422758,-0.178302,-0.888529,-1.366873,-1.340211,-0.907567,
+ 0.121987,-0.426326,-0.896306,-1.198513,-1.456102,-0.885435,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ 0.121987,-0.426326,-0.896306,-1.198513,-1.456102,-0.885435,
+ 0.215155,-0.464575,-0.858999,-1.200688,-1.577575,-0.799188,
+ 0.215155,-0.464575,-0.858999,-1.200688,-1.577575,-0.799188,
+ 0.121987,-0.426326,-0.896306,-1.198513,-1.456102,-0.885435,
+ -0.218261,-0.26262,-0.93989,-0.953236,-1.545941,-0.89918,
+ -0.094238,-0.851252,-0.516225,-1.397474,-1.693815,-0.570541,
+ 0.152347,-0.821467,-0.549529,-1.480217,-1.6566,-0.606638,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ -0.504483,-0.438591,-0.743731,-1.376186,-1.661988,-0.718954,
+ 0.152347,-0.821467,-0.549529,-1.480217,-1.6566,-0.606638,
+ 0.08565,-0.422547,-0.902285,-1.552229,-1.555077,-0.735708,
+ 0.08565,-0.422547,-0.902285,-1.552229,-1.555077,-0.735708,
+ 0.152347,-0.821467,-0.549529,-1.480217,-1.6566,-0.606638,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ 0.152347,-0.821467,-0.549529,-1.480217,-1.6566,-0.606638,
+ -0.198045,-0.959194,-0.201804,-1.519339,-1.653776,-0.501741,
+ -0.198045,-0.959194,-0.201804,-1.519339,-1.653776,-0.501741,
+ 0.152347,-0.821467,-0.549529,-1.480217,-1.6566,-0.606638,
+ -0.094238,-0.851252,-0.516225,-1.397474,-1.693815,-0.570541,
+ -0.198045,-0.959194,-0.201804,-1.519339,-1.653776,-0.501741,
+ -0.094238,-0.851252,-0.516225,-1.397474,-1.693815,-0.570541,
+ -0.171647,-0.971664,-0.162499,-1.406693,-1.697325,-0.450399,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ -0.198045,-0.959194,-0.201804,-1.519339,-1.653776,-0.501741,
+ -0.403877,-0.879274,-0.252509,-1.576196,-1.696317,-0.358146,
+ -0.403877,-0.879274,-0.252509,-1.576196,-1.696317,-0.358146,
+ -0.198045,-0.959194,-0.201804,-1.519339,-1.653776,-0.501741,
+ -0.171647,-0.971664,-0.162499,-1.406693,-1.697325,-0.450399,
+ -0.403877,-0.879274,-0.252509,-1.576196,-1.696317,-0.358146,
+ -0.171647,-0.971664,-0.162499,-1.406693,-1.697325,-0.450399,
+ -0.53858,-0.616299,-0.57455,-1.386502,-1.718441,-0.350823,
+ -0.53858,-0.616299,-0.57455,-1.386502,-1.718441,-0.350823,
+ 0.011286,0.999936,0,-1.395728,-1.723811,0,
+ 0.106808,0.99428,0,-1.610025,-1.711571,0,
+ -0.53858,-0.616299,-0.57455,-1.386502,-1.718441,-0.350823,
+ 0.106808,0.99428,0,-1.610025,-1.711571,0,
+ -0.403877,-0.879274,-0.252509,-1.576196,-1.696317,-0.358146,
+ -0.403877,-0.879274,-0.252509,-1.576196,-1.696317,-0.358146,
+ 0.106808,0.99428,0,-1.610025,-1.711571,0,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ -0.403877,-0.879274,-0.252509,-1.576196,-1.696317,-0.358146,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ -0.299215,-0.929389,-0.216116,-1.764045,-1.764987,-0.406586,
+ -0.299215,-0.929389,-0.216116,-1.764045,-1.764987,-0.406586,
+ -0.18119,-0.970212,-0.160805,-1.74779,-1.667608,-0.60634,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ -0.299215,-0.929389,-0.216116,-1.764045,-1.764987,-0.406586,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ -0.403877,-0.879274,-0.252509,-1.576196,-1.696317,-0.358146,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ -0.18119,-0.970212,-0.160805,-1.74779,-1.667608,-0.60634,
+ 0.008663,-0.516082,-0.856495,-1.778934,-1.550199,-0.776454,
+ 0.008663,-0.516082,-0.856495,-1.778934,-1.550199,-0.776454,
+ 0.161064,-0.731195,-0.662882,-1.659758,-1.544361,-0.788181,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ -0.279342,-0.940234,-0.19475,-1.601625,-1.593321,-0.605607,
+ 0.161064,-0.731195,-0.662882,-1.659758,-1.544361,-0.788181,
+ 0.08565,-0.422547,-0.902285,-1.552229,-1.555077,-0.735708,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.137764,-0.289893,-0.947092,-2.591357,-1.510845,-0.88547,
+ 0.137206,-0.207537,-0.968557,-2.417777,-1.553136,-0.887222,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.137206,-0.207537,-0.968557,-2.417777,-1.553136,-0.887222,
+ -0.177142,-0.976279,-0.124502,-2.508885,-1.719933,-0.721675,
+ -0.177142,-0.976279,-0.124502,-2.508885,-1.719933,-0.721675,
+ 0.137206,-0.207537,-0.968557,-2.417777,-1.553136,-0.887222,
+ 0.094371,-0.230057,-0.968591,-2.223917,-1.541268,-0.87926,
+ -0.177142,-0.976279,-0.124502,-2.508885,-1.719933,-0.721675,
+ 0.094371,-0.230057,-0.968591,-2.223917,-1.541268,-0.87926,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ 0.094371,-0.230057,-0.968591,-2.223917,-1.541268,-0.87926,
+ -0.201818,-0.568242,-0.797728,-2.049879,-1.562369,-0.829319,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ -0.201818,-0.568242,-0.797728,-2.049879,-1.562369,-0.829319,
+ 0.35682,-0.781398,-0.511953,-2.037371,-1.73636,-0.656787,
+ 0.35682,-0.781398,-0.511953,-2.037371,-1.73636,-0.656787,
+ -0.201818,-0.568242,-0.797728,-2.049879,-1.562369,-0.829319,
+ 0.008663,-0.516082,-0.856495,-1.778934,-1.550199,-0.776454,
+ 0.35682,-0.781398,-0.511953,-2.037371,-1.73636,-0.656787,
+ 0.008663,-0.516082,-0.856495,-1.778934,-1.550199,-0.776454,
+ -0.18119,-0.970212,-0.160805,-1.74779,-1.667608,-0.60634,
+ -0.18119,-0.970212,-0.160805,-1.74779,-1.667608,-0.60634,
+ -0.299215,-0.929389,-0.216116,-1.764045,-1.764987,-0.406586,
+ 0.493535,-0.729115,-0.474147,-1.88316,-1.829718,-0.401567,
+ -0.18119,-0.970212,-0.160805,-1.74779,-1.667608,-0.60634,
+ 0.493535,-0.729115,-0.474147,-1.88316,-1.829718,-0.401567,
+ 0.04422,-0.704109,-0.708714,-1.936032,-1.829617,-0.488916,
+ 0.04422,-0.704109,-0.708714,-1.936032,-1.829617,-0.488916,
+ 0.083262,-0.787311,-0.610907,-2.027242,-1.813012,-0.555232,
+ 0.35682,-0.781398,-0.511953,-2.037371,-1.73636,-0.656787,
+ 0.04422,-0.704109,-0.708714,-1.936032,-1.829617,-0.488916,
+ 0.35682,-0.781398,-0.511953,-2.037371,-1.73636,-0.656787,
+ -0.18119,-0.970212,-0.160805,-1.74779,-1.667608,-0.60634,
+ 0.35682,-0.781398,-0.511953,-2.037371,-1.73636,-0.656787,
+ 0.083262,-0.787311,-0.610907,-2.027242,-1.813012,-0.555232,
+ 0.170756,-0.748007,-0.641349,-2.126375,-1.866497,-0.502895,
+ 0.35682,-0.781398,-0.511953,-2.037371,-1.73636,-0.656787,
+ 0.170756,-0.748007,-0.641349,-2.126375,-1.866497,-0.502895,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ 0.170756,-0.748007,-0.641349,-2.126375,-1.866497,-0.502895,
+ 0.64791,-0.754869,0.101909,-2.176551,-1.873816,-0.445782,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ 0.64791,-0.754869,0.101909,-2.176551,-1.873816,-0.445782,
+ 0.381337,-0.795981,-0.470102,-2.317557,-1.8742,-0.470587,
+ 0.381337,-0.795981,-0.470102,-2.317557,-1.8742,-0.470587,
+ 0.183908,-0.773381,-0.606679,-2.446375,-1.893261,-0.49411,
+ 0.018755,-0.837462,-0.546174,-2.466779,-1.857679,-0.570461,
+ 0.381337,-0.795981,-0.470102,-2.317557,-1.8742,-0.470587,
+ 0.018755,-0.837462,-0.546174,-2.466779,-1.857679,-0.570461,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ 0.018755,-0.837462,-0.546174,-2.466779,-1.857679,-0.570461,
+ -0.094688,-0.959937,-0.263734,-2.547737,-1.833025,-0.609321,
+ 0.430742,-0.887318,-0.164704,-2.267049,-1.753901,-0.662106,
+ -0.094688,-0.959937,-0.263734,-2.547737,-1.833025,-0.609321,
+ -0.177142,-0.976279,-0.124502,-2.508885,-1.719933,-0.721675,
+ -0.177142,-0.976279,-0.124502,-2.508885,-1.719933,-0.721675,
+ -0.094688,-0.959937,-0.263734,-2.547737,-1.833025,-0.609321,
+ 0.059023,-0.965365,-0.25414,-2.64722,-1.84401,-0.594347,
+ -0.177142,-0.976279,-0.124502,-2.508885,-1.719933,-0.721675,
+ 0.059023,-0.965365,-0.25414,-2.64722,-1.84401,-0.594347,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.059023,-0.965365,-0.25414,-2.64722,-1.84401,-0.594347,
+ 0.49176,-0.810764,-0.317543,-2.699966,-1.850397,-0.57007,
+ 0.048753,-0.975535,-0.21437,-2.734184,-1.717948,-0.749581,
+ 0.49176,-0.810764,-0.317543,-2.699966,-1.850397,-0.57007,
+ 0.43907,-0.579988,-0.686171,-2.811581,-1.79821,-0.712737,
+ -0.073547,-0.481419,-0.8734,-2.941731,-1.787431,-0.442574,
+ 0.099157,-0.476834,-0.873383,-2.709403,-1.879947,-0.508775,
+ -0.147229,-0.706225,-0.69251,-2.684452,-1.891207,-0.447388,
+ -0.073547,-0.481419,-0.8734,-2.941731,-1.787431,-0.442574,
+ -0.147229,-0.706225,-0.69251,-2.684452,-1.891207,-0.447388,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ -0.147229,-0.706225,-0.69251,-2.684452,-1.891207,-0.447388,
+ 0.328486,-0.940918,0.082286,-2.614084,-1.905005,-0.404925,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.328486,-0.940918,0.082286,-2.614084,-1.905005,-0.404925,
+ 0.058013,0.998316,0,-2.656867,-1.853045,0,
+ 0.058013,0.998316,0,-2.656867,-1.853045,0,
+ 0.328486,-0.940918,0.082286,-2.614084,-1.905005,-0.404925,
+ -0.319475,-0.944225,-0.079844,-2.503818,-1.909806,-0.431456,
+ 0.058013,0.998316,0,-2.656867,-1.853045,0,
+ -0.319475,-0.944225,-0.079844,-2.503818,-1.909806,-0.431456,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ -0.319475,-0.944225,-0.079844,-2.503818,-1.909806,-0.431456,
+ 0.183908,-0.773381,-0.606679,-2.446375,-1.893261,-0.49411,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.183908,-0.773381,-0.606679,-2.446375,-1.893261,-0.49411,
+ 0.381337,-0.795981,-0.470102,-2.317557,-1.8742,-0.470587,
+ 0.381337,-0.795981,-0.470102,-2.317557,-1.8742,-0.470587,
+ 0.64791,-0.754869,0.101909,-2.176551,-1.873816,-0.445782,
+ -0.393694,-0.919049,0.018795,-2.147113,-1.903198,-0.362462,
+ 0.381337,-0.795981,-0.470102,-2.317557,-1.8742,-0.470587,
+ -0.393694,-0.919049,0.018795,-2.147113,-1.903198,-0.362462,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ -0.393694,-0.919049,0.018795,-2.147113,-1.903198,-0.362462,
+ -0.327707,-0.94199,0.072547,-2.062725,-1.884246,-0.307336,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ -0.327707,-0.94199,0.072547,-2.062725,-1.884246,-0.307336,
+ 0.149455,0.988769,0,-2.092921,-1.839622,0,
+ 0.149455,0.988769,0,-2.092921,-1.839622,0,
+ -0.327707,-0.94199,0.072547,-2.062725,-1.884246,-0.307336,
+ -0.163041,-0.980692,0.107986,-1.946306,-1.872735,-0.344251,
+ 0.149455,0.988769,0,-2.092921,-1.839622,0,
+ -0.163041,-0.980692,0.107986,-1.946306,-1.872735,-0.344251,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ -0.163041,-0.980692,0.107986,-1.946306,-1.872735,-0.344251,
+ 0.493535,-0.729115,-0.474147,-1.88316,-1.829718,-0.401567,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ 0.493535,-0.729115,-0.474147,-1.88316,-1.829718,-0.401567,
+ -0.299215,-0.929389,-0.216116,-1.764045,-1.764987,-0.406586,
+ -0.012978,-0.998326,0.056357,-3.139394,-1.687482,-0.638546,
+ 0.074429,-0.99521,0.063385,-3.120907,-1.707924,-0.431829,
+ 0.249604,-0.855993,0.452741,-3.314868,-1.599081,-0.439626,
+ -0.012978,-0.998326,0.056357,-3.139394,-1.687482,-0.638546,
+ 0.249604,-0.855993,0.452741,-3.314868,-1.599081,-0.439626,
+ 0.515412,-0.714946,0.472444,-3.304804,-1.582192,-0.643445,
+ 0.515412,-0.714946,0.472444,-3.304804,-1.582192,-0.643445,
+ 0.249604,-0.855993,0.452741,-3.314868,-1.599081,-0.439626,
+ -0.454242,-0.890878,0.000928,-3.442085,-1.48412,-0.406377,
+ 0.515412,-0.714946,0.472444,-3.304804,-1.582192,-0.643445,
+ -0.454242,-0.890878,0.000928,-3.442085,-1.48412,-0.406377,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.454242,-0.890878,0.000928,-3.442085,-1.48412,-0.406377,
+ -0.587869,-0.808404,-0.029894,-3.557869,-1.325941,-0.37803,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.587869,-0.808404,-0.029894,-3.557869,-1.325941,-0.37803,
+ -0.581301,-0.608503,0.540197,-3.53391,-1.330455,-0.568246,
+ -0.581301,-0.608503,0.540197,-3.53391,-1.330455,-0.568246,
+ -0.587869,-0.808404,-0.029894,-3.557869,-1.325941,-0.37803,
+ -0.736087,-0.675142,-0.048562,-3.639586,-1.140102,-0.3338,
+ -0.581301,-0.608503,0.540197,-3.53391,-1.330455,-0.568246,
+ -0.736087,-0.675142,-0.048562,-3.639586,-1.140102,-0.3338,
+ -0.98615,-0.150918,-0.068783,-3.631179,-1.157838,-0.50561,
+ -0.98615,-0.150918,-0.068783,-3.631179,-1.157838,-0.50561,
+ -0.736087,-0.675142,-0.048562,-3.639586,-1.140102,-0.3338,
+ -0.84728,-0.52968,-0.039439,-3.686518,-0.955181,-0.320349,
+ -0.98615,-0.150918,-0.068783,-3.631179,-1.157838,-0.50561,
+ -0.84728,-0.52968,-0.039439,-3.686518,-0.955181,-0.320349,
+ -0.815087,-0.388053,-0.430171,-3.667859,-0.964867,-0.464702,
+ -0.815087,-0.388053,-0.430171,-3.667859,-0.964867,-0.464702,
+ -0.84728,-0.52968,-0.039439,-3.686518,-0.955181,-0.320349,
+ -0.945906,-0.323169,-0.028687,-3.676599,-0.729578,-0.330724,
+ -0.815087,-0.388053,-0.430171,-3.667859,-0.964867,-0.464702,
+ -0.945906,-0.323169,-0.028687,-3.676599,-0.729578,-0.330724,
+ -0.896964,-0.287307,-0.336022,-3.665774,-0.73408,-0.446286,
+ -0.896964,-0.287307,-0.336022,-3.665774,-0.73408,-0.446286,
+ -0.945906,-0.323169,-0.028687,-3.676599,-0.729578,-0.330724,
+ -0.99574,-0.082547,-0.041071,-3.616627,-0.350374,-0.338492,
+ -0.896964,-0.287307,-0.336022,-3.665774,-0.73408,-0.446286,
+ -0.99574,-0.082547,-0.041071,-3.616627,-0.350374,-0.338492,
+ -0.950882,-0.075567,-0.300188,-3.595973,-0.346391,-0.426453,
+ -0.950882,-0.075567,-0.300188,-3.595973,-0.346391,-0.426453,
+ -0.99574,-0.082547,-0.041071,-3.616627,-0.350374,-0.338492,
+ -0.993498,0.089934,-0.06981,-3.570243,-0.060093,-0.344854,
+ -0.950882,-0.075567,-0.300188,-3.595973,-0.346391,-0.426453,
+ -0.993498,0.089934,-0.06981,-3.570243,-0.060093,-0.344854,
+ -0.951862,0.098243,-0.290356,-3.529709,-0.065998,-0.437217,
+ -0.951862,0.098243,-0.290356,-3.529709,-0.065998,-0.437217,
+ -0.993498,0.089934,-0.06981,-3.570243,-0.060093,-0.344854,
+ -0.9775,0.159844,-0.137638,-3.535416,0.191408,-0.338478,
+ -0.951862,0.098243,-0.290356,-3.529709,-0.065998,-0.437217,
+ -0.9775,0.159844,-0.137638,-3.535416,0.191408,-0.338478,
+ -0.923845,0.18432,-0.335466,-3.51684,0.149002,-0.430359,
+ -0.923845,0.18432,-0.335466,-3.51684,0.149002,-0.430359,
+ -0.9775,0.159844,-0.137638,-3.535416,0.191408,-0.338478,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ -0.9775,0.159844,-0.137638,-3.535416,0.191408,-0.338478,
+ 0.170833,0.9853,0,-3.55232,0.219613,0,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ 0.170833,0.9853,0,-3.55232,0.219613,0,
+ -0.57342,0.819261,0,-3.544507,0.467147,0,
+ 0.170833,0.9853,0,-3.55232,0.219613,0,
+ -0.9775,0.159844,-0.137638,-3.535416,0.191408,-0.338478,
+ -0.993498,0.089934,-0.06981,-3.570243,-0.060093,-0.344854,
+ 0.170833,0.9853,0,-3.55232,0.219613,0,
+ -0.993498,0.089934,-0.06981,-3.570243,-0.060093,-0.344854,
+ 0.614301,0.789071,-0.000581,-3.583763,-0.052271,0,
+ 0.098463,-0.995141,0,-3.637643,-0.356271,0,
+ -0.99574,-0.082547,-0.041071,-3.616627,-0.350374,-0.338492,
+ -0.945906,-0.323169,-0.028687,-3.676599,-0.729578,-0.330724,
+ 0.098463,-0.995141,0,-3.637643,-0.356271,0,
+ -0.945906,-0.323169,-0.028687,-3.676599,-0.729578,-0.330724,
+ 0.353735,-0.935346,0,-3.673607,-0.720796,0,
+ 0.353735,-0.935346,0,-3.673607,-0.720796,0,
+ -0.945906,-0.323169,-0.028687,-3.676599,-0.729578,-0.330724,
+ -0.84728,-0.52968,-0.039439,-3.686518,-0.955181,-0.320349,
+ 0.353735,-0.935346,0,-3.673607,-0.720796,0,
+ -0.84728,-0.52968,-0.039439,-3.686518,-0.955181,-0.320349,
+ -0.34926,-0.937026,0,-3.678793,-0.926816,0,
+ -0.34926,-0.937026,0,-3.678793,-0.926816,0,
+ -0.84728,-0.52968,-0.039439,-3.686518,-0.955181,-0.320349,
+ -0.736087,-0.675142,-0.048562,-3.639586,-1.140102,-0.3338,
+ -0.34926,-0.937026,0,-3.678793,-0.926816,0,
+ -0.736087,-0.675142,-0.048562,-3.639586,-1.140102,-0.3338,
+ -0.164,-0.98646,0,-3.650579,-1.142448,0,
+ -0.164,-0.98646,0,-3.650579,-1.142448,0,
+ -0.736087,-0.675142,-0.048562,-3.639586,-1.140102,-0.3338,
+ -0.587869,-0.808404,-0.029894,-3.557869,-1.325941,-0.37803,
+ -0.164,-0.98646,0,-3.650579,-1.142448,0,
+ -0.587869,-0.808404,-0.029894,-3.557869,-1.325941,-0.37803,
+ 0.030921,-0.999522,0,-3.522115,-1.366623,0,
+ 0.030921,-0.999522,0,-3.522115,-1.366623,0,
+ -0.587869,-0.808404,-0.029894,-3.557869,-1.325941,-0.37803,
+ -0.454242,-0.890878,0.000928,-3.442085,-1.48412,-0.406377,
+ 0.030921,-0.999522,0,-3.522115,-1.366623,0,
+ -0.454242,-0.890878,0.000928,-3.442085,-1.48412,-0.406377,
+ 0.183204,-0.983075,0,-3.417689,-1.494416,0,
+ 0.183204,-0.983075,0,-3.417689,-1.494416,0,
+ -0.454242,-0.890878,0.000928,-3.442085,-1.48412,-0.406377,
+ 0.249604,-0.855993,0.452741,-3.314868,-1.599081,-0.439626,
+ 0.183204,-0.983075,0,-3.417689,-1.494416,0,
+ 0.249604,-0.855993,0.452741,-3.314868,-1.599081,-0.439626,
+ -0.997516,0.070442,0,-3.271035,-1.609292,0,
+ -0.997516,0.070442,0,-3.271035,-1.609292,0,
+ 0.249604,-0.855993,0.452741,-3.314868,-1.599081,-0.439626,
+ 0.074429,-0.99521,0.063385,-3.120907,-1.707924,-0.431829,
+ -0.997516,0.070442,0,-3.271035,-1.609292,0,
+ 0.074429,-0.99521,0.063385,-3.120907,-1.707924,-0.431829,
+ -0.99928,-0.037933,0,-3.1103,-1.69172,0,
+ -0.99928,-0.037933,0,-3.1103,-1.69172,0,
+ 0.074429,-0.99521,0.063385,-3.120907,-1.707924,-0.431829,
+ -0.073547,-0.481419,-0.8734,-2.941731,-1.787431,-0.442574,
+ -0.99928,-0.037933,0,-3.1103,-1.69172,0,
+ -0.073547,-0.481419,-0.8734,-2.941731,-1.787431,-0.442574,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.614301,0.789071,-0.000581,-3.583763,-0.052271,0,
+ -0.993498,0.089934,-0.06981,-3.570243,-0.060093,-0.344854,
+ -0.99574,-0.082547,-0.041071,-3.616627,-0.350374,-0.338492,
+ 0.614301,0.789071,-0.000581,-3.583763,-0.052271,0,
+ -0.99574,-0.082547,-0.041071,-3.616627,-0.350374,-0.338492,
+ 0.098463,-0.995141,0,-3.637643,-0.356271,0,
+ -0.923845,0.18432,-0.335466,-3.51684,0.149002,-0.430359,
+ -0.908258,0.139498,-0.394471,-3.470778,-0.078218,-0.546398,
+ -0.951862,0.098243,-0.290356,-3.529709,-0.065998,-0.437217,
+ -0.951862,0.098243,-0.290356,-3.529709,-0.065998,-0.437217,
+ -0.908258,0.139498,-0.394471,-3.470778,-0.078218,-0.546398,
+ -0.985615,0.064121,-0.156369,-3.526766,-0.317542,-0.560837,
+ -0.951862,0.098243,-0.290356,-3.529709,-0.065998,-0.437217,
+ -0.985615,0.064121,-0.156369,-3.526766,-0.317542,-0.560837,
+ -0.950882,-0.075567,-0.300188,-3.595973,-0.346391,-0.426453,
+ -0.950882,-0.075567,-0.300188,-3.595973,-0.346391,-0.426453,
+ -0.985615,0.064121,-0.156369,-3.526766,-0.317542,-0.560837,
+ -0.982334,-0.04331,-0.182057,-3.569993,-0.731989,-0.649435,
+ -0.950882,-0.075567,-0.300188,-3.595973,-0.346391,-0.426453,
+ -0.982334,-0.04331,-0.182057,-3.569993,-0.731989,-0.649435,
+ -0.896964,-0.287307,-0.336022,-3.665774,-0.73408,-0.446286,
+ -0.896964,-0.287307,-0.336022,-3.665774,-0.73408,-0.446286,
+ -0.982334,-0.04331,-0.182057,-3.569993,-0.731989,-0.649435,
+ -0.995081,-0.092251,0.036114,-3.55012,-0.984868,-0.675228,
+ -0.896964,-0.287307,-0.336022,-3.665774,-0.73408,-0.446286,
+ -0.995081,-0.092251,0.036114,-3.55012,-0.984868,-0.675228,
+ -0.815087,-0.388053,-0.430171,-3.667859,-0.964867,-0.464702,
+ -0.815087,-0.388053,-0.430171,-3.667859,-0.964867,-0.464702,
+ -0.995081,-0.092251,0.036114,-3.55012,-0.984868,-0.675228,
+ -0.938884,0.007108,-0.344159,-3.492599,-1.180646,-0.692282,
+ -0.815087,-0.388053,-0.430171,-3.667859,-0.964867,-0.464702,
+ -0.938884,0.007108,-0.344159,-3.492599,-1.180646,-0.692282,
+ -0.98615,-0.150918,-0.068783,-3.631179,-1.157838,-0.50561,
+ -0.98615,-0.150918,-0.068783,-3.631179,-1.157838,-0.50561,
+ -0.938884,0.007108,-0.344159,-3.492599,-1.180646,-0.692282,
+ -0.782249,0.198377,-0.590536,-3.335942,-1.365685,-0.72459,
+ -0.98615,-0.150918,-0.068783,-3.631179,-1.157838,-0.50561,
+ -0.782249,0.198377,-0.590536,-3.335942,-1.365685,-0.72459,
+ -0.581301,-0.608503,0.540197,-3.53391,-1.330455,-0.568246,
+ -0.581301,-0.608503,0.540197,-3.53391,-1.330455,-0.568246,
+ -0.782249,0.198377,-0.590536,-3.335942,-1.365685,-0.72459,
+ -0.354058,-0.732075,0.581987,-3.387254,-1.486027,-0.672861,
+ -0.743901,0.102645,-0.66036,-3.415655,-0.308965,-0.671045,
+ -0.984416,-0.175855,-0.000915,-3.283698,-0.730967,-0.793898,
+ -0.681141,-0.040116,-0.731052,-3.438226,-0.721479,-0.728141,
+ -0.908258,0.139498,-0.394471,-3.470778,-0.078218,-0.546398,
+ -0.743901,0.102645,-0.66036,-3.415655,-0.308965,-0.671045,
+ -0.985615,0.064121,-0.156369,-3.526766,-0.317542,-0.560837,
+ -0.985615,0.064121,-0.156369,-3.526766,-0.317542,-0.560837,
+ -0.743901,0.102645,-0.66036,-3.415655,-0.308965,-0.671045,
+ -0.681141,-0.040116,-0.731052,-3.438226,-0.721479,-0.728141,
+ -0.985615,0.064121,-0.156369,-3.526766,-0.317542,-0.560837,
+ -0.681141,-0.040116,-0.731052,-3.438226,-0.721479,-0.728141,
+ -0.982334,-0.04331,-0.182057,-3.569993,-0.731989,-0.649435,
+ -0.982334,-0.04331,-0.182057,-3.569993,-0.731989,-0.649435,
+ -0.681141,-0.040116,-0.731052,-3.438226,-0.721479,-0.728141,
+ -0.605564,-0.17532,-0.776244,-3.355398,-0.969157,-0.766213,
+ -0.982334,-0.04331,-0.182057,-3.569993,-0.731989,-0.649435,
+ -0.605564,-0.17532,-0.776244,-3.355398,-0.969157,-0.766213,
+ -0.995081,-0.092251,0.036114,-3.55012,-0.984868,-0.675228,
+ -0.995081,-0.092251,0.036114,-3.55012,-0.984868,-0.675228,
+ -0.605564,-0.17532,-0.776244,-3.355398,-0.969157,-0.766213,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.995081,-0.092251,0.036114,-3.55012,-0.984868,-0.675228,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.938884,0.007108,-0.344159,-3.492599,-1.180646,-0.692282,
+ -0.938884,0.007108,-0.344159,-3.492599,-1.180646,-0.692282,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.782249,0.198377,-0.590536,-3.335942,-1.365685,-0.72459,
+ -0.823768,0.005745,-0.566899,-3.27979,-1.162072,-0.784602,
+ -0.605564,-0.17532,-0.776244,-3.355398,-0.969157,-0.766213,
+ -0.838192,0.000365,-0.545375,-3.25121,-0.948205,-0.819868,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ -0.57342,0.819261,0,-3.544507,0.467147,0,
+ -0.989276,0.146061,0,-3.566995,0.656967,0,
+ -0.971344,0.144305,-0.188856,-3.536654,0.442277,-0.322,
+ -0.989276,0.146061,0,-3.566995,0.656967,0,
+ -0.472479,0.093412,-0.876377,-3.556552,0.704883,-0.28063,
+ -0.472479,0.093412,-0.876377,-3.556552,0.704883,-0.28063,
+ -0.989276,0.146061,0,-3.566995,0.656967,0,
+ -0.989171,0.146765,0,-3.599077,0.796217,0,
+ -0.472479,0.093412,-0.876377,-3.556552,0.704883,-0.28063,
+ -0.989171,0.146765,0,-3.599077,0.796217,0,
+ -0.43302,-0.02622,-0.901003,-3.57817,0.837714,-0.288502,
+ -0.838192,0.000365,-0.545375,-3.25121,-0.948205,-0.819868,
+ -0.605564,-0.17532,-0.776244,-3.355398,-0.969157,-0.766213,
+ -0.681141,-0.040116,-0.731052,-3.438226,-0.721479,-0.728141,
+ -0.838192,0.000365,-0.545375,-3.25121,-0.948205,-0.819868,
+ -0.681141,-0.040116,-0.731052,-3.438226,-0.721479,-0.728141,
+ -0.984416,-0.175855,-0.000915,-3.283698,-0.730967,-0.793898,
+ 0.493535,-0.729115,-0.474147,-1.88316,-1.829718,-0.401567,
+ 0.728068,-0.191899,0.658097,-1.933565,-1.993029,-0.438902,
+ 0.313565,-0.18353,0.931662,-1.971059,-1.992958,-0.500845,
+ 0.493535,-0.729115,-0.474147,-1.88316,-1.829718,-0.401567,
+ 0.313565,-0.18353,0.931662,-1.971059,-1.992958,-0.500845,
+ 0.04422,-0.704109,-0.708714,-1.936032,-1.829617,-0.488916,
+ 0.04422,-0.704109,-0.708714,-1.936032,-1.829617,-0.488916,
+ 0.313565,-0.18353,0.931662,-1.971059,-1.992958,-0.500845,
+ 0.537835,-0.193789,0.820475,-2.03574,-1.981182,-0.547873,
+ 0.04422,-0.704109,-0.708714,-1.936032,-1.829617,-0.488916,
+ 0.537835,-0.193789,0.820475,-2.03574,-1.981182,-0.547873,
+ 0.083262,-0.787311,-0.610907,-2.027242,-1.813012,-0.555232,
+ 0.083262,-0.787311,-0.610907,-2.027242,-1.813012,-0.555232,
+ 0.537835,-0.193789,0.820475,-2.03574,-1.981182,-0.547873,
+ 0.908243,-0.229695,-0.349765,-2.106039,-2.019111,-0.510759,
+ 0.083262,-0.787311,-0.610907,-2.027242,-1.813012,-0.555232,
+ 0.908243,-0.229695,-0.349765,-2.106039,-2.019111,-0.510759,
+ 0.170756,-0.748007,-0.641349,-2.126375,-1.866497,-0.502895,
+ 0.170756,-0.748007,-0.641349,-2.126375,-1.866497,-0.502895,
+ 0.908243,-0.229695,-0.349765,-2.106039,-2.019111,-0.510759,
+ 0.701057,-0.210559,-0.68131,-2.141621,-2.024301,-0.470257,
+ 0.170756,-0.748007,-0.641349,-2.126375,-1.866497,-0.502895,
+ 0.701057,-0.210559,-0.68131,-2.141621,-2.024301,-0.470257,
+ 0.64791,-0.754869,0.101909,-2.176551,-1.873816,-0.445782,
+ 0.64791,-0.754869,0.101909,-2.176551,-1.873816,-0.445782,
+ 0.701057,-0.210559,-0.68131,-2.141621,-2.024301,-0.470257,
+ 0.129519,-0.132707,-0.982656,-2.120746,-2.045137,-0.411171,
+ 0.64791,-0.754869,0.101909,-2.176551,-1.873816,-0.445782,
+ 0.129519,-0.132707,-0.982656,-2.120746,-2.045137,-0.411171,
+ -0.393694,-0.919049,0.018795,-2.147113,-1.903198,-0.362462,
+ -0.393694,-0.919049,0.018795,-2.147113,-1.903198,-0.362462,
+ 0.129519,-0.132707,-0.982656,-2.120746,-2.045137,-0.411171,
+ -0.276108,-0.088024,-0.957087,-2.060902,-2.031698,-0.372079,
+ -0.393694,-0.919049,0.018795,-2.147113,-1.903198,-0.362462,
+ -0.276108,-0.088024,-0.957087,-2.060902,-2.031698,-0.372079,
+ -0.327707,-0.94199,0.072547,-2.062725,-1.884246,-0.307336,
+ -0.327707,-0.94199,0.072547,-2.062725,-1.884246,-0.307336,
+ -0.276108,-0.088024,-0.957087,-2.060902,-2.031698,-0.372079,
+ -0.40904,-0.077842,-0.90919,-1.978344,-2.023535,-0.398257,
+ -0.327707,-0.94199,0.072547,-2.062725,-1.884246,-0.307336,
+ -0.40904,-0.077842,-0.90919,-1.978344,-2.023535,-0.398257,
+ -0.163041,-0.980692,0.107986,-1.946306,-1.872735,-0.344251,
+ -0.163041,-0.980692,0.107986,-1.946306,-1.872735,-0.344251,
+ -0.40904,-0.077842,-0.90919,-1.978344,-2.023535,-0.398257,
+ 0.728068,-0.191899,0.658097,-1.933565,-1.993029,-0.438902,
+ -0.163041,-0.980692,0.107986,-1.946306,-1.872735,-0.344251,
+ 0.728068,-0.191899,0.658097,-1.933565,-1.993029,-0.438902,
+ 0.493535,-0.729115,-0.474147,-1.88316,-1.829718,-0.401567,
+ 0.183908,-0.773381,-0.606679,-2.446375,-1.893261,-0.49411,
+ 0.50178,0.000639,0.864995,-2.499138,-2.03809,-0.504529,
+ 0.300485,0.019099,0.953595,-2.513608,-2.012858,-0.558673,
+ 0.183908,-0.773381,-0.606679,-2.446375,-1.893261,-0.49411,
+ 0.300485,0.019099,0.953595,-2.513608,-2.012858,-0.558673,
+ 0.018755,-0.837462,-0.546174,-2.466779,-1.857679,-0.570461,
+ 0.018755,-0.837462,-0.546174,-2.466779,-1.857679,-0.570461,
+ 0.300485,0.019099,0.953595,-2.513608,-2.012858,-0.558673,
+ 0.678632,-0.017853,0.734261,-2.571019,-1.995375,-0.58623,
+ 0.018755,-0.837462,-0.546174,-2.466779,-1.857679,-0.570461,
+ 0.678632,-0.017853,0.734261,-2.571019,-1.995375,-0.58623,
+ -0.094688,-0.959937,-0.263734,-2.547737,-1.833025,-0.609321,
+ -0.094688,-0.959937,-0.263734,-2.547737,-1.833025,-0.609321,
+ 0.678632,-0.017853,0.734261,-2.571019,-1.995375,-0.58623,
+ 0.687126,-0.68509,-0.241887,-2.641567,-2.003164,-0.575611,
+ -0.094688,-0.959937,-0.263734,-2.547737,-1.833025,-0.609321,
+ 0.687126,-0.68509,-0.241887,-2.641567,-2.003164,-0.575611,
+ 0.059023,-0.965365,-0.25414,-2.64722,-1.84401,-0.594347,
+ 0.059023,-0.965365,-0.25414,-2.64722,-1.84401,-0.594347,
+ 0.687126,-0.68509,-0.241887,-2.641567,-2.003164,-0.575611,
+ 0.260319,-0.908993,0.325523,-2.678971,-2.007694,-0.558395,
+ 0.059023,-0.965365,-0.25414,-2.64722,-1.84401,-0.594347,
+ 0.260319,-0.908993,0.325523,-2.678971,-2.007694,-0.558395,
+ 0.49176,-0.810764,-0.317543,-2.699966,-1.850397,-0.57007,
+ 0.49176,-0.810764,-0.317543,-2.699966,-1.850397,-0.57007,
+ 0.260319,-0.908993,0.325523,-2.678971,-2.007694,-0.558395,
+ -0.148191,-0.901516,0.40658,-2.685663,-2.028649,-0.514928,
+ 0.49176,-0.810764,-0.317543,-2.699966,-1.850397,-0.57007,
+ -0.148191,-0.901516,0.40658,-2.685663,-2.028649,-0.514928,
+ 0.099157,-0.476834,-0.873383,-2.709403,-1.879947,-0.508775,
+ 0.099157,-0.476834,-0.873383,-2.709403,-1.879947,-0.508775,
+ -0.148191,-0.901516,0.40658,-2.685663,-2.028649,-0.514928,
+ -0.443612,-0.876487,0.187028,-2.667969,-2.036634,-0.471396,
+ 0.099157,-0.476834,-0.873383,-2.709403,-1.879947,-0.508775,
+ -0.443612,-0.876487,0.187028,-2.667969,-2.036634,-0.471396,
+ -0.147229,-0.706225,-0.69251,-2.684452,-1.891207,-0.447388,
+ -0.147229,-0.706225,-0.69251,-2.684452,-1.891207,-0.447388,
+ -0.443612,-0.876487,0.187028,-2.667969,-2.036634,-0.471396,
+ -0.508388,-0.837291,-0.20121,-2.618068,-2.046419,-0.441284,
+ -0.147229,-0.706225,-0.69251,-2.684452,-1.891207,-0.447388,
+ -0.508388,-0.837291,-0.20121,-2.618068,-2.046419,-0.441284,
+ 0.328486,-0.940918,0.082286,-2.614084,-1.905005,-0.404925,
+ 0.328486,-0.940918,0.082286,-2.614084,-1.905005,-0.404925,
+ -0.508388,-0.837291,-0.20121,-2.618068,-2.046419,-0.441284,
+ -0.409829,-0.525605,-0.745506,-2.539874,-2.049824,-0.460098,
+ 0.328486,-0.940918,0.082286,-2.614084,-1.905005,-0.404925,
+ -0.409829,-0.525605,-0.745506,-2.539874,-2.049824,-0.460098,
+ -0.319475,-0.944225,-0.079844,-2.503818,-1.909806,-0.431456,
+ -0.319475,-0.944225,-0.079844,-2.503818,-1.909806,-0.431456,
+ -0.409829,-0.525605,-0.745506,-2.539874,-2.049824,-0.460098,
+ 0.50178,0.000639,0.864995,-2.499138,-2.03809,-0.504529,
+ -0.319475,-0.944225,-0.079844,-2.503818,-1.909806,-0.431456,
+ 0.50178,0.000639,0.864995,-2.499138,-2.03809,-0.504529,
+ 0.183908,-0.773381,-0.606679,-2.446375,-1.893261,-0.49411,
+ -0.276108,-0.088024,-0.957087,-2.060902,-2.031698,-0.372079,
+ 0.10009,-0.380026,-0.919545,-2.065655,-2.124623,-0.36872,
+ -0.227573,-0.361149,-0.904313,-1.985123,-2.116661,-0.394256,
+ -0.276108,-0.088024,-0.957087,-2.060902,-2.031698,-0.372079,
+ -0.227573,-0.361149,-0.904313,-1.985123,-2.116661,-0.394256,
+ -0.40904,-0.077842,-0.90919,-1.978344,-2.023535,-0.398257,
+ 0.129519,-0.132707,-0.982656,-2.120746,-2.045137,-0.411171,
+ 0.547733,-0.470267,-0.691981,-2.12403,-2.137733,-0.406853,
+ 0.10009,-0.380026,-0.919545,-2.065655,-2.124623,-0.36872,
+ 0.129519,-0.132707,-0.982656,-2.120746,-2.045137,-0.411171,
+ 0.10009,-0.380026,-0.919545,-2.065655,-2.124623,-0.36872,
+ -0.276108,-0.088024,-0.957087,-2.060902,-2.031698,-0.372079,
+ 0.701057,-0.210559,-0.68131,-2.141621,-2.024301,-0.470257,
+ -0.071182,-0.950841,-0.301389,-2.144393,-2.117408,-0.464489,
+ 0.547733,-0.470267,-0.691981,-2.12403,-2.137733,-0.406853,
+ 0.701057,-0.210559,-0.68131,-2.141621,-2.024301,-0.470257,
+ 0.547733,-0.470267,-0.691981,-2.12403,-2.137733,-0.406853,
+ 0.129519,-0.132707,-0.982656,-2.120746,-2.045137,-0.411171,
+ 0.908243,-0.229695,-0.349765,-2.106039,-2.019111,-0.510759,
+ 0.216748,0.039315,-0.975436,-2.109684,-2.112345,-0.503997,
+ -0.071182,-0.950841,-0.301389,-2.144393,-2.117408,-0.464489,
+ 0.908243,-0.229695,-0.349765,-2.106039,-2.019111,-0.510759,
+ -0.071182,-0.950841,-0.301389,-2.144393,-2.117408,-0.464489,
+ 0.701057,-0.210559,-0.68131,-2.141621,-2.024301,-0.470257,
+ 0.537835,-0.193789,0.820475,-2.03574,-1.981182,-0.547873,
+ 0.555949,0.246865,-0.793712,-2.04111,-2.075348,-0.540201,
+ 0.216748,0.039315,-0.975436,-2.109684,-2.112345,-0.503997,
+ 0.537835,-0.193789,0.820475,-2.03574,-1.981182,-0.547873,
+ 0.216748,0.039315,-0.975436,-2.109684,-2.112345,-0.503997,
+ 0.908243,-0.229695,-0.349765,-2.106039,-2.019111,-0.510759,
+ 0.313565,-0.18353,0.931662,-1.971059,-1.992958,-0.500845,
+ 0.768311,0.202351,-0.60725,-1.978016,-2.086834,-0.494327,
+ 0.555949,0.246865,-0.793712,-2.04111,-2.075348,-0.540201,
+ 0.313565,-0.18353,0.931662,-1.971059,-1.992958,-0.500845,
+ 0.555949,0.246865,-0.793712,-2.04111,-2.075348,-0.540201,
+ 0.537835,-0.193789,0.820475,-2.03574,-1.981182,-0.547873,
+ 0.728068,-0.191899,0.658097,-1.933565,-1.993029,-0.438902,
+ 0.833232,0.046883,-0.550932,-1.941442,-2.086904,-0.433904,
+ 0.768311,0.202351,-0.60725,-1.978016,-2.086834,-0.494327,
+ 0.728068,-0.191899,0.658097,-1.933565,-1.993029,-0.438902,
+ 0.768311,0.202351,-0.60725,-1.978016,-2.086834,-0.494327,
+ 0.313565,-0.18353,0.931662,-1.971059,-1.992958,-0.500845,
+ -0.40904,-0.077842,-0.90919,-1.978344,-2.023535,-0.398257,
+ -0.227573,-0.361149,-0.904313,-1.985123,-2.116661,-0.394256,
+ 0.833232,0.046883,-0.550932,-1.941442,-2.086904,-0.433904,
+ -0.40904,-0.077842,-0.90919,-1.978344,-2.023535,-0.398257,
+ 0.833232,0.046883,-0.550932,-1.941442,-2.086904,-0.433904,
+ 0.728068,-0.191899,0.658097,-1.933565,-1.993029,-0.438902,
+ -0.409829,-0.525605,-0.745506,-2.539874,-2.049824,-0.460098,
+ 0.213243,-0.278119,-0.936578,-2.552923,-2.142304,-0.454579,
+ 0.587809,-0.328911,-0.73912,-2.513187,-2.130859,-0.49792,
+ -0.409829,-0.525605,-0.745506,-2.539874,-2.049824,-0.460098,
+ 0.587809,-0.328911,-0.73912,-2.513187,-2.130859,-0.49792,
+ 0.50178,0.000639,0.864995,-2.499138,-2.03809,-0.504529,
+ -0.508388,-0.837291,-0.20121,-2.618068,-2.046419,-0.441284,
+ 0.794828,0.083381,-0.601079,-2.629199,-2.138983,-0.436227,
+ 0.213243,-0.278119,-0.936578,-2.552923,-2.142304,-0.454579,
+ -0.508388,-0.837291,-0.20121,-2.618068,-2.046419,-0.441284,
+ 0.213243,-0.278119,-0.936578,-2.552923,-2.142304,-0.454579,
+ -0.409829,-0.525605,-0.745506,-2.539874,-2.049824,-0.460098,
+ -0.443612,-0.876487,0.187028,-2.667969,-2.036634,-0.471396,
+ 0.873201,-0.04546,-0.485236,-2.677875,-2.129439,-0.4656,
+ 0.794828,0.083381,-0.601079,-2.629199,-2.138983,-0.436227,
+ -0.443612,-0.876487,0.187028,-2.667969,-2.036634,-0.471396,
+ 0.794828,0.083381,-0.601079,-2.629199,-2.138983,-0.436227,
+ -0.508388,-0.837291,-0.20121,-2.618068,-2.046419,-0.441284,
+ -0.148191,-0.901516,0.40658,-2.685663,-2.028649,-0.514928,
+ 0.829377,-0.173624,-0.531026,-2.695135,-2.12165,-0.508064,
+ 0.873201,-0.04546,-0.485236,-2.677875,-2.129439,-0.4656,
+ -0.148191,-0.901516,0.40658,-2.685663,-2.028649,-0.514928,
+ 0.873201,-0.04546,-0.485236,-2.677875,-2.129439,-0.4656,
+ -0.443612,-0.876487,0.187028,-2.667969,-2.036634,-0.471396,
+ 0.260319,-0.908993,0.325523,-2.678971,-2.007694,-0.558395,
+ 0.506864,-0.193035,-0.840135,-2.688607,-2.101208,-0.550465,
+ 0.829377,-0.173624,-0.531026,-2.695135,-2.12165,-0.508064,
+ 0.260319,-0.908993,0.325523,-2.678971,-2.007694,-0.558395,
+ 0.829377,-0.173624,-0.531026,-2.695135,-2.12165,-0.508064,
+ -0.148191,-0.901516,0.40658,-2.685663,-2.028649,-0.514928,
+ 0.687126,-0.68509,-0.241887,-2.641567,-2.003164,-0.575611,
+ 0.166377,-0.157108,-0.973466,-2.65212,-2.09679,-0.567258,
+ 0.506864,-0.193035,-0.840135,-2.688607,-2.101208,-0.550465,
+ 0.687126,-0.68509,-0.241887,-2.641567,-2.003164,-0.575611,
+ 0.506864,-0.193035,-0.840135,-2.688607,-2.101208,-0.550465,
+ 0.260319,-0.908993,0.325523,-2.678971,-2.007694,-0.558395,
+ 0.678632,-0.017853,0.734261,-2.571019,-1.995375,-0.58623,
+ 0.054863,-0.132815,-0.989621,-2.583303,-2.089191,-0.577616,
+ 0.166377,-0.157108,-0.973466,-2.65212,-2.09679,-0.567258,
+ 0.678632,-0.017853,0.734261,-2.571019,-1.995375,-0.58623,
+ 0.166377,-0.157108,-0.973466,-2.65212,-2.09679,-0.567258,
+ 0.687126,-0.68509,-0.241887,-2.641567,-2.003164,-0.575611,
+ 0.300485,0.019099,0.953595,-2.513608,-2.012858,-0.558673,
+ 0.238844,0.101951,-0.965691,-2.527301,-2.106246,-0.550735,
+ 0.054863,-0.132815,-0.989621,-2.583303,-2.089191,-0.577616,
+ 0.300485,0.019099,0.953595,-2.513608,-2.012858,-0.558673,
+ 0.054863,-0.132815,-0.989621,-2.583303,-2.089191,-0.577616,
+ 0.678632,-0.017853,0.734261,-2.571019,-1.995375,-0.58623,
+ 0.50178,0.000639,0.864995,-2.499138,-2.03809,-0.504529,
+ 0.587809,-0.328911,-0.73912,-2.513187,-2.130859,-0.49792,
+ 0.238844,0.101951,-0.965691,-2.527301,-2.106246,-0.550735,
+ 0.50178,0.000639,0.864995,-2.499138,-2.03809,-0.504529,
+ 0.238844,0.101951,-0.965691,-2.527301,-2.106246,-0.550735,
+ 0.300485,0.019099,0.953595,-2.513608,-2.012858,-0.558673,
+ 0.768311,0.202351,-0.60725,-1.978016,-2.086834,-0.494327,
+ 0.833232,0.046883,-0.550932,-1.941442,-2.086904,-0.433904,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ 0.555949,0.246865,-0.793712,-2.04111,-2.075348,-0.540201,
+ 0.768311,0.202351,-0.60725,-1.978016,-2.086834,-0.494327,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ 0.216748,0.039315,-0.975436,-2.109684,-2.112345,-0.503997,
+ 0.555949,0.246865,-0.793712,-2.04111,-2.075348,-0.540201,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ -0.071182,-0.950841,-0.301389,-2.144393,-2.117408,-0.464489,
+ 0.216748,0.039315,-0.975436,-2.109684,-2.112345,-0.503997,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ 0.547733,-0.470267,-0.691981,-2.12403,-2.137733,-0.406853,
+ -0.071182,-0.950841,-0.301389,-2.144393,-2.117408,-0.464489,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ 0.10009,-0.380026,-0.919545,-2.065655,-2.124623,-0.36872,
+ 0.547733,-0.470267,-0.691981,-2.12403,-2.137733,-0.406853,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ -0.227573,-0.361149,-0.904313,-1.985123,-2.116661,-0.394256,
+ 0.10009,-0.380026,-0.919545,-2.065655,-2.124623,-0.36872,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ 0.833232,0.046883,-0.550932,-1.941442,-2.086904,-0.433904,
+ -0.227573,-0.361149,-0.904313,-1.985123,-2.116661,-0.394256,
+ 0.604307,0.204357,-0.770098,-2.048681,-2.165282,-0.450843,
+ 0.238844,0.101951,-0.965691,-2.527301,-2.106246,-0.550735,
+ 0.587809,-0.328911,-0.73912,-2.513187,-2.130859,-0.49792,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.054863,-0.132815,-0.989621,-2.583303,-2.089191,-0.577616,
+ 0.238844,0.101951,-0.965691,-2.527301,-2.106246,-0.550735,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.166377,-0.157108,-0.973466,-2.65212,-2.09679,-0.567258,
+ 0.054863,-0.132815,-0.989621,-2.583303,-2.089191,-0.577616,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.506864,-0.193035,-0.840135,-2.688607,-2.101208,-0.550465,
+ 0.166377,-0.157108,-0.973466,-2.65212,-2.09679,-0.567258,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.829377,-0.173624,-0.531026,-2.695135,-2.12165,-0.508064,
+ 0.506864,-0.193035,-0.840135,-2.688607,-2.101208,-0.550465,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.873201,-0.04546,-0.485236,-2.677875,-2.129439,-0.4656,
+ 0.829377,-0.173624,-0.531026,-2.695135,-2.12165,-0.508064,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.794828,0.083381,-0.601079,-2.629199,-2.138983,-0.436227,
+ 0.873201,-0.04546,-0.485236,-2.677875,-2.129439,-0.4656,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.213243,-0.278119,-0.936578,-2.552923,-2.142304,-0.454579,
+ 0.794828,0.083381,-0.601079,-2.629199,-2.138983,-0.436227,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ 0.587809,-0.328911,-0.73912,-2.513187,-2.130859,-0.49792,
+ 0.213243,-0.278119,-0.936578,-2.552923,-2.142304,-0.454579,
+ 0.02054,-0.128179,-0.991538,-2.603284,-2.176802,-0.510638,
+ -0.012978,-0.998326,0.056357,-3.139394,-1.687482,-0.638546,
+ 0.579344,-0.339433,0.741044,-3.008323,-1.759271,-0.655672,
+ -0.073547,-0.481419,-0.8734,-2.941731,-1.787431,-0.442574,
+ -0.012978,-0.998326,0.056357,-3.139394,-1.687482,-0.638546,
+ -0.073547,-0.481419,-0.8734,-2.941731,-1.787431,-0.442574,
+ 0.074429,-0.99521,0.063385,-3.120907,-1.707924,-0.431829,
+ 0.579344,-0.339433,0.741044,-3.008323,-1.759271,-0.655672,
+ 0.099157,-0.476834,-0.873383,-2.709403,-1.879947,-0.508775,
+ -0.073547,-0.481419,-0.8734,-2.941731,-1.787431,-0.442574,
+ 0.579344,-0.339433,0.741044,-3.008323,-1.759271,-0.655672,
+ 0.43907,-0.579988,-0.686171,-2.811581,-1.79821,-0.712737,
+ 0.49176,-0.810764,-0.317543,-2.699966,-1.850397,-0.57007,
+ 0.579344,-0.339433,0.741044,-3.008323,-1.759271,-0.655672,
+ 0.49176,-0.810764,-0.317543,-2.699966,-1.850397,-0.57007,
+ 0.099157,-0.476834,-0.873383,-2.709403,-1.879947,-0.508775,
+ -0.822733,0.223687,0.522565,-2.306662,-1.116976,0.961238,
+ -0.950882,-0.075567,0.300188,-2.119856,-1.1288,0.97096,
+ -0.619245,-0.050391,0.783579,-2.033406,-0.91003,0.96422,
+ -0.993498,0.089934,0.06981,-2.031698,-1.097344,0.966701,
+ -0.619245,-0.050391,0.783579,-2.033406,-0.91003,0.96422,
+ -0.950882,-0.075567,0.300188,-2.119856,-1.1288,0.97096,
+ -0.379807,-0.084066,0.921238,-1.782298,-1.020581,0.943381,
+ -0.619245,-0.050391,0.783579,-2.033406,-0.91003,0.96422,
+ -0.993498,0.089934,0.06981,-2.031698,-1.097344,0.966701,
+ -0.9775,0.159844,0.137638,-2.337617,-1.334842,0.966761,
+ -0.822733,0.223687,0.522565,-2.306662,-1.116976,0.961238,
+ -0.951862,0.098243,0.290356,-2.462835,-1.3055,0.966395,
+ -0.923845,0.18432,0.335466,-2.161843,-1.325837,0.957465,
+ -0.950882,-0.075567,0.300188,-2.119856,-1.1288,0.97096,
+ -0.822733,0.223687,0.522565,-2.306662,-1.116976,0.961238,
+ -0.923845,0.18432,0.335466,-2.161843,-1.325837,0.957465,
+ -0.822733,0.223687,0.522565,-2.306662,-1.116976,0.961238,
+ -0.9775,0.159844,0.137638,-2.337617,-1.334842,0.966761,
+ -0.971344,0.144305,0.188856,-2.042059,-1.312976,0.940911,
+ -0.993498,0.089934,0.06981,-2.031698,-1.097344,0.966701,
+ -0.950882,-0.075567,0.300188,-2.119856,-1.1288,0.97096,
+ -0.971344,0.144305,0.188856,-2.042059,-1.312976,0.940911,
+ -0.950882,-0.075567,0.300188,-2.119856,-1.1288,0.97096,
+ -0.923845,0.18432,0.335466,-2.161843,-1.325837,0.957465,
+ -0.908258,0.139498,0.394471,-1.776785,-1.275107,0.914703,
+ -0.379807,-0.084066,0.921238,-1.782298,-1.020581,0.943381,
+ -0.993498,0.089934,0.06981,-2.031698,-1.097344,0.966701,
+ -0.908258,0.139498,0.394471,-1.776785,-1.275107,0.914703,
+ -0.993498,0.089934,0.06981,-2.031698,-1.097344,0.966701,
+ -0.971344,0.144305,0.188856,-2.042059,-1.312976,0.940911,
+ -0.985615,0.064121,0.156369,-1.709172,-1.283232,0.897427,
+ -0.379807,-0.084066,0.921238,-1.782298,-1.020581,0.943381,
+ -0.908258,0.139498,0.394471,-1.776785,-1.275107,0.914703,
+ -0.982334,-0.04331,0.182057,-1.456655,-1.295527,0.89424,
+ -0.379807,-0.084066,0.921238,-1.782298,-1.020581,0.943381,
+ -0.985615,0.064121,0.156369,-1.709172,-1.283232,0.897427,
+ -0.938884,0.007108,0.344159,-2.417777,-1.553136,0.887222,
+ -0.9775,0.159844,0.137638,-2.337617,-1.334842,0.966761,
+ -0.951862,0.098243,0.290356,-2.462835,-1.3055,0.966395,
+ -0.938884,0.007108,0.344159,-2.417777,-1.553136,0.887222,
+ -0.951862,0.098243,0.290356,-2.462835,-1.3055,0.966395,
+ -0.995081,-0.092251,-0.036114,-2.591357,-1.510845,0.88547,
+ -0.782249,0.198377,0.590536,-2.223917,-1.541268,0.87926,
+ -0.923845,0.18432,0.335466,-2.161843,-1.325837,0.957465,
+ -0.9775,0.159844,0.137638,-2.337617,-1.334842,0.966761,
+ -0.782249,0.198377,0.590536,-2.223917,-1.541268,0.87926,
+ -0.9775,0.159844,0.137638,-2.337617,-1.334842,0.966761,
+ -0.938884,0.007108,0.344159,-2.417777,-1.553136,0.887222,
+ -0.743901,0.102645,0.66036,-2.049879,-1.562369,0.829319,
+ -0.971344,0.144305,0.188856,-2.042059,-1.312976,0.940911,
+ -0.923845,0.18432,0.335466,-2.161843,-1.325837,0.957465,
+ -0.743901,0.102645,0.66036,-2.049879,-1.562369,0.829319,
+ -0.923845,0.18432,0.335466,-2.161843,-1.325837,0.957465,
+ -0.782249,0.198377,0.590536,-2.223917,-1.541268,0.87926,
+ -0.605564,-0.17532,0.776244,-1.778934,-1.550199,0.776454,
+ -0.681141,-0.040116,0.731052,-1.777628,-1.473076,0.845827,
+ -0.971344,0.144305,0.188856,-2.042059,-1.312976,0.940911,
+ -0.605564,-0.17532,0.776244,-1.778934,-1.550199,0.776454,
+ -0.971344,0.144305,0.188856,-2.042059,-1.312976,0.940911,
+ -0.743901,0.102645,0.66036,-2.049879,-1.562369,0.829319,
+ -0.908258,0.139498,0.394471,-1.776785,-1.275107,0.914703,
+ -0.971344,0.144305,0.188856,-2.042059,-1.312976,0.940911,
+ -0.681141,-0.040116,0.731052,-1.777628,-1.473076,0.845827,
+ -0.823768,0.005745,0.566899,-1.686329,-1.414405,0.869373,
+ -0.985615,0.064121,0.156369,-1.709172,-1.283232,0.897427,
+ -0.908258,0.139498,0.394471,-1.776785,-1.275107,0.914703,
+ -0.823768,0.005745,0.566899,-1.686329,-1.414405,0.869373,
+ -0.908258,0.139498,0.394471,-1.776785,-1.275107,0.914703,
+ -0.681141,-0.040116,0.731052,-1.777628,-1.473076,0.845827,
+ -0.838192,0.000364,0.545375,-1.592146,-1.408592,0.838483,
+ -0.982334,-0.04331,0.182057,-1.456655,-1.295527,0.89424,
+ -0.985615,0.064121,0.156369,-1.709172,-1.283232,0.897427,
+ -0.838192,0.000364,0.545375,-1.592146,-1.408592,0.838483,
+ -0.985615,0.064121,0.156369,-1.709172,-1.283232,0.897427,
+ -0.823768,0.005745,0.566899,-1.686329,-1.414405,0.869373,
+ -0.472479,0.093413,0.876377,-1.552229,-1.555077,0.735708,
+ -0.982334,-0.04331,0.182057,-1.456655,-1.295527,0.89424,
+ -0.838192,0.000364,0.545375,-1.592146,-1.408592,0.838483,
+ -0.838192,0.000364,0.545375,-1.592146,-1.408592,0.838483,
+ -0.43302,-0.02622,0.901003,-1.659758,-1.544361,0.788181,
+ -0.472479,0.093413,0.876377,-1.552229,-1.555077,0.735708,
+ -0.823768,0.005745,0.566899,-1.686329,-1.414405,0.869373,
+ -0.43302,-0.02622,0.901003,-1.659758,-1.544361,0.788181,
+ -0.838192,0.000364,0.545375,-1.592146,-1.408592,0.838483,
+ -0.681141,-0.040116,0.731052,-1.777628,-1.473076,0.845827,
+ -0.605564,-0.17532,0.776244,-1.778934,-1.550199,0.776454,
+ -0.43302,-0.02622,0.901003,-1.659758,-1.544361,0.788181,
+ -0.681141,-0.040116,0.731052,-1.777628,-1.473076,0.845827,
+ -0.43302,-0.02622,0.901003,-1.659758,-1.544361,0.788181,
+ -0.823768,0.005745,0.566899,-1.686329,-1.414405,0.869373,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ -0.311485,0.082882,0.94663,-1.366873,-1.340211,0.907567,
+ -0.982334,-0.04331,0.182057,-1.456655,-1.295527,0.89424,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ -0.982334,-0.04331,0.182057,-1.456655,-1.295527,0.89424,
+ -0.472479,0.093413,0.876377,-1.552229,-1.555077,0.735708,
+ -0.809154,0.004832,0.587577,-1.200688,-1.577575,0.799188,
+ -0.742985,0.015712,0.669123,-1.198513,-1.456102,0.885435,
+ -0.311485,0.082882,0.94663,-1.366873,-1.340211,0.907567,
+ -0.809154,0.004832,0.587577,-1.200688,-1.577575,0.799188,
+ -0.311485,0.082882,0.94663,-1.366873,-1.340211,0.907567,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ -0.02449,0.224062,0.974267,-0.953236,-1.545941,0.89918,
+ -0.742985,0.015712,0.669123,-1.198513,-1.456102,0.885435,
+ -0.809154,0.004832,0.587577,-1.200688,-1.577575,0.799188,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ 0.924702,-0.311563,0.218757,-1.480217,-1.6566,0.606638,
+ -0.587909,-0.233166,0.774594,-1.397474,-1.693815,0.570541,
+ -0.472479,0.093413,0.876377,-1.552229,-1.555077,0.735708,
+ 0.924702,-0.311563,0.218757,-1.480217,-1.6566,0.606638,
+ -0.285709,0.130064,0.949449,-1.376186,-1.661988,0.718954,
+ 0.73827,-0.277136,0.614942,-1.601625,-1.593321,0.605607,
+ 0.924702,-0.311563,0.218757,-1.480217,-1.6566,0.606638,
+ -0.472479,0.093413,0.876377,-1.552229,-1.555077,0.735708,
+ 0.366416,-0.175098,0.913827,-1.519339,-1.653776,0.501741,
+ 0.924702,-0.311563,0.218757,-1.480217,-1.6566,0.606638,
+ 0.73827,-0.277136,0.614942,-1.601625,-1.593321,0.605607,
+ 0.023392,-0.110333,0.993619,-1.406693,-1.697325,0.450399,
+ -0.587909,-0.233166,0.774594,-1.397474,-1.693815,0.570541,
+ 0.924702,-0.311563,0.218757,-1.480217,-1.6566,0.606638,
+ 0.023392,-0.110333,0.993619,-1.406693,-1.697325,0.450399,
+ 0.924702,-0.311563,0.218757,-1.480217,-1.6566,0.606638,
+ 0.366416,-0.175098,0.913827,-1.519339,-1.653776,0.501741,
+ -0.157802,-0.148625,0.976222,-1.576196,-1.696317,0.358146,
+ 0.366416,-0.175098,0.913827,-1.519339,-1.653776,0.501741,
+ 0.73827,-0.277136,0.614942,-1.601625,-1.593321,0.605607,
+ -0.279485,0.127803,0.951606,-1.386502,-1.718441,0.350823,
+ 0.023392,-0.110333,0.993619,-1.406693,-1.697325,0.450399,
+ 0.366416,-0.175098,0.913827,-1.519339,-1.653776,0.501741,
+ -0.279485,0.127803,0.951606,-1.386502,-1.718441,0.350823,
+ 0.366416,-0.175098,0.913827,-1.519339,-1.653776,0.501741,
+ -0.157802,-0.148625,0.976222,-1.576196,-1.696317,0.358146,
+ -0.157802,-0.148625,0.976222,-1.576196,-1.696317,0.358146,
+ 0.106808,0.99428,0,-1.610025,-1.711571,0,
+ 0.011286,0.999936,0,-1.395728,-1.723811,0,
+ -0.157802,-0.148625,0.976222,-1.576196,-1.696317,0.358146,
+ 0.011286,0.999936,0,-1.395728,-1.723811,0,
+ -0.279485,0.127803,0.951606,-1.386502,-1.718441,0.350823,
+ -0.661097,-0.258238,0.70446,-1.764045,-1.764987,0.406586,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ 0.106808,0.99428,0,-1.610025,-1.711571,0,
+ -0.661097,-0.258238,0.70446,-1.764045,-1.764987,0.406586,
+ 0.106808,0.99428,0,-1.610025,-1.711571,0,
+ -0.157802,-0.148625,0.976222,-1.576196,-1.696317,0.358146,
+ -0.157802,-0.148625,0.976222,-1.576196,-1.696317,0.358146,
+ 0.73827,-0.277136,0.614942,-1.601625,-1.593321,0.605607,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ -0.157802,-0.148625,0.976222,-1.576196,-1.696317,0.358146,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ -0.661097,-0.258238,0.70446,-1.764045,-1.764987,0.406586,
+ -0.605564,-0.17532,0.776244,-1.778934,-1.550199,0.776454,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ 0.73827,-0.277136,0.614942,-1.601625,-1.593321,0.605607,
+ 0.73827,-0.277136,0.614942,-1.601625,-1.593321,0.605607,
+ -0.43302,-0.02622,0.901003,-1.659758,-1.544361,0.788181,
+ -0.605564,-0.17532,0.776244,-1.778934,-1.550199,0.776454,
+ -0.472479,0.093413,0.876377,-1.552229,-1.555077,0.735708,
+ -0.43302,-0.02622,0.901003,-1.659758,-1.544361,0.788181,
+ 0.73827,-0.277136,0.614942,-1.601625,-1.593321,0.605607,
+ 0.772916,-0.305378,0.556188,-2.508885,-1.719933,0.721675,
+ -0.938884,0.007108,0.344159,-2.417777,-1.553136,0.887222,
+ -0.995081,-0.092251,-0.036114,-2.591357,-1.510845,0.88547,
+ 0.772916,-0.305378,0.556188,-2.508885,-1.719933,0.721675,
+ -0.995081,-0.092251,-0.036114,-2.591357,-1.510845,0.88547,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ -0.782249,0.198377,0.590536,-2.223917,-1.541268,0.87926,
+ -0.938884,0.007108,0.344159,-2.417777,-1.553136,0.887222,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ -0.938884,0.007108,0.344159,-2.417777,-1.553136,0.887222,
+ 0.772916,-0.305378,0.556188,-2.508885,-1.719933,0.721675,
+ 0.02992,-0.202031,0.978922,-2.037371,-1.73636,0.656787,
+ -0.743901,0.102645,0.66036,-2.049879,-1.562369,0.829319,
+ -0.782249,0.198377,0.590536,-2.223917,-1.541268,0.87926,
+ 0.02992,-0.202031,0.978922,-2.037371,-1.73636,0.656787,
+ -0.782249,0.198377,0.590536,-2.223917,-1.541268,0.87926,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ -0.605564,-0.17532,0.776244,-1.778934,-1.550199,0.776454,
+ -0.743901,0.102645,0.66036,-2.049879,-1.562369,0.829319,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ -0.743901,0.102645,0.66036,-2.049879,-1.562369,0.829319,
+ 0.02992,-0.202031,0.978922,-2.037371,-1.73636,0.656787,
+ -0.498756,-0.224101,0.83727,-1.936032,-1.829617,0.488916,
+ -0.239734,-0.173966,0.955125,-1.88316,-1.829718,0.401567,
+ -0.661097,-0.258238,0.70446,-1.764045,-1.764987,0.406586,
+ -0.498756,-0.224101,0.83727,-1.936032,-1.829617,0.488916,
+ -0.661097,-0.258238,0.70446,-1.764045,-1.764987,0.406586,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ 0.02992,-0.202031,0.978922,-2.037371,-1.73636,0.656787,
+ -0.759627,-0.28527,0.584455,-2.027242,-1.813012,0.555232,
+ -0.632119,-0.359381,0.686492,-1.74779,-1.667608,0.60634,
+ -0.759627,-0.28527,0.584455,-2.027242,-1.813012,0.555232,
+ -0.498756,-0.224101,0.83727,-1.936032,-1.829617,0.488916,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ -0.672688,-0.442616,0.592944,-2.126375,-1.866497,0.502895,
+ -0.759627,-0.28527,0.584455,-2.027242,-1.813012,0.555232,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ -0.759627,-0.28527,0.584455,-2.027242,-1.813012,0.555232,
+ 0.02992,-0.202031,0.978922,-2.037371,-1.73636,0.656787,
+ 0.80128,-0.303744,0.515451,-2.317557,-1.8742,0.470587,
+ 0.954473,-0.270031,0.126745,-2.176551,-1.873816,0.445782,
+ -0.672688,-0.442616,0.592944,-2.126375,-1.866497,0.502895,
+ 0.80128,-0.303744,0.515451,-2.317557,-1.8742,0.470587,
+ -0.672688,-0.442616,0.592944,-2.126375,-1.866497,0.502895,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ 0.080262,-0.270606,0.959339,-2.466779,-1.857679,0.570461,
+ 0.441315,-0.29978,0.845797,-2.446375,-1.893261,0.49411,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ 0.441315,-0.29978,0.845797,-2.446375,-1.893261,0.49411,
+ 0.80128,-0.303744,0.515451,-2.317557,-1.8742,0.470587,
+ 0.772916,-0.305378,0.556188,-2.508885,-1.719933,0.721675,
+ -0.247433,-0.24804,0.936618,-2.547737,-1.833025,0.609321,
+ 0.080262,-0.270606,0.959339,-2.466779,-1.857679,0.570461,
+ 0.772916,-0.305378,0.556188,-2.508885,-1.719933,0.721675,
+ 0.080262,-0.270606,0.959339,-2.466779,-1.857679,0.570461,
+ 0.38578,-0.259547,0.88533,-2.267049,-1.753901,0.662106,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ -0.587844,-0.244917,0.771009,-2.64722,-1.84401,0.594347,
+ -0.247433,-0.24804,0.936618,-2.547737,-1.833025,0.609321,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ -0.247433,-0.24804,0.936618,-2.547737,-1.833025,0.609321,
+ 0.772916,-0.305378,0.556188,-2.508885,-1.719933,0.721675,
+ -0.732521,-0.474279,0.488336,-2.811581,-1.79821,0.712737,
+ -0.845196,-0.27877,0.455994,-2.699966,-1.850397,0.57007,
+ -0.587844,-0.244917,0.771009,-2.64722,-1.84401,0.594347,
+ -0.732521,-0.474279,0.488336,-2.811581,-1.79821,0.712737,
+ -0.587844,-0.244917,0.771009,-2.64722,-1.84401,0.594347,
+ 0.942117,-0.292664,0.163592,-2.734184,-1.717948,0.749581,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.975634,-0.187231,-0.114377,-2.684452,-1.891207,0.447388,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ 0.999491,-0.02584,0.01873,-2.941731,-1.787431,0.442574,
+ 0.058013,0.998316,0,-2.656867,-1.853045,0,
+ 0.985192,-0.12583,-0.116459,-2.614084,-1.905005,0.404925,
+ 0.975634,-0.187231,-0.114377,-2.684452,-1.891207,0.447388,
+ 0.058013,0.998316,0,-2.656867,-1.853045,0,
+ 0.975634,-0.187231,-0.114377,-2.684452,-1.891207,0.447388,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.996811,-0.048518,-0.063355,-2.503818,-1.909806,0.431456,
+ 0.985192,-0.12583,-0.116459,-2.614084,-1.905005,0.404925,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.985192,-0.12583,-0.116459,-2.614084,-1.905005,0.404925,
+ 0.058013,0.998316,0,-2.656867,-1.853045,0,
+ 0.80128,-0.303744,0.515451,-2.317557,-1.8742,0.470587,
+ 0.441315,-0.29978,0.845797,-2.446375,-1.893261,0.49411,
+ 0.996811,-0.048518,-0.063355,-2.503818,-1.909806,0.431456,
+ 0.80128,-0.303744,0.515451,-2.317557,-1.8742,0.470587,
+ 0.996811,-0.048518,-0.063355,-2.503818,-1.909806,0.431456,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.957938,-0.285979,0.023877,-2.147113,-1.903198,0.362462,
+ 0.954473,-0.270031,0.126745,-2.176551,-1.873816,0.445782,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ 0.954473,-0.270031,0.126745,-2.176551,-1.873816,0.445782,
+ 0.80128,-0.303744,0.515451,-2.317557,-1.8742,0.470587,
+ 0.149455,0.988769,0,-2.092921,-1.839622,0,
+ -0.274087,0.000043,-0.961705,-2.062725,-1.884246,0.307336,
+ 0.957938,-0.285979,0.023877,-2.147113,-1.903198,0.362462,
+ 0.149455,0.988769,0,-2.092921,-1.839622,0,
+ 0.957938,-0.285979,0.023877,-2.147113,-1.903198,0.362462,
+ 0.093777,0.995593,0,-2.348005,-1.869142,0,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ 0.74023,-0.090866,0.666185,-1.946306,-1.872735,0.344251,
+ -0.274087,0.000043,-0.961705,-2.062725,-1.884246,0.307336,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ -0.274087,0.000043,-0.961705,-2.062725,-1.884246,0.307336,
+ 0.149455,0.988769,0,-2.092921,-1.839622,0,
+ -0.661097,-0.258238,0.70446,-1.764045,-1.764987,0.406586,
+ -0.239734,-0.173966,0.955125,-1.88316,-1.829718,0.401567,
+ 0.74023,-0.090866,0.666185,-1.946306,-1.872735,0.344251,
+ -0.661097,-0.258238,0.70446,-1.764045,-1.764987,0.406586,
+ 0.74023,-0.090866,0.666185,-1.946306,-1.872735,0.344251,
+ -0.160087,-0.987103,0,-1.799827,-1.753136,0,
+ 0.830793,-0.244757,0.499877,-3.304804,-1.582192,0.643445,
+ 0.846555,-0.103662,0.52211,-3.314868,-1.599081,0.439626,
+ 0.820312,-0.193024,0.538358,-3.120907,-1.707924,0.431829,
+ 0.830793,-0.244757,0.499877,-3.304804,-1.582192,0.643445,
+ 0.820312,-0.193024,0.538358,-3.120907,-1.707924,0.431829,
+ 0.843062,-0.10517,0.527433,-3.139394,-1.687482,0.638546,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ 0.159615,0.129847,0.978602,-3.442085,-1.48412,0.406377,
+ 0.846555,-0.103662,0.52211,-3.314868,-1.599081,0.439626,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ 0.846555,-0.103662,0.52211,-3.314868,-1.599081,0.439626,
+ 0.830793,-0.244757,0.499877,-3.304804,-1.582192,0.643445,
+ 0.431429,-0.109339,0.895497,-3.53391,-1.330455,0.568246,
+ 0.407719,-0.190267,0.893064,-3.557869,-1.325941,0.37803,
+ 0.159615,0.129847,0.978602,-3.442085,-1.48412,0.406377,
+ 0.431429,-0.109339,0.895497,-3.53391,-1.330455,0.568246,
+ 0.159615,0.129847,0.978602,-3.442085,-1.48412,0.406377,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ 0.473622,-0.284001,0.833682,-3.631179,-1.157838,0.50561,
+ 0.459595,-0.144347,0.87632,-3.639586,-1.140102,0.3338,
+ 0.407719,-0.190267,0.893064,-3.557869,-1.325941,0.37803,
+ 0.473622,-0.284001,0.833682,-3.631179,-1.157838,0.50561,
+ 0.407719,-0.190267,0.893064,-3.557869,-1.325941,0.37803,
+ 0.431429,-0.109339,0.895497,-3.53391,-1.330455,0.568246,
+ -0.069043,-0.157333,0.985129,-3.667859,-0.964867,0.464702,
+ 0.051664,-0.122235,0.991156,-3.686518,-0.955181,0.320349,
+ 0.459595,-0.144347,0.87632,-3.639586,-1.140102,0.3338,
+ -0.069043,-0.157333,0.985129,-3.667859,-0.964867,0.464702,
+ 0.459595,-0.144347,0.87632,-3.639586,-1.140102,0.3338,
+ 0.473622,-0.284001,0.833682,-3.631179,-1.157838,0.50561,
+ 0.039,-0.185675,0.981837,-3.665774,-0.73408,0.446286,
+ -0.051713,-0.100833,0.993559,-3.676599,-0.729578,0.330724,
+ 0.051664,-0.122235,0.991156,-3.686518,-0.955181,0.320349,
+ 0.039,-0.185675,0.981837,-3.665774,-0.73408,0.446286,
+ 0.051664,-0.122235,0.991156,-3.686518,-0.955181,0.320349,
+ -0.069043,-0.157333,0.985129,-3.667859,-0.964867,0.464702,
+ -0.09542,0.162222,0.98213,-3.595973,-0.346391,0.426453,
+ 0.109483,-0.310605,0.944213,-3.616627,-0.350374,0.338492,
+ -0.051713,-0.100833,0.993559,-3.676599,-0.729578,0.330724,
+ -0.09542,0.162222,0.98213,-3.595973,-0.346391,0.426453,
+ -0.051713,-0.100833,0.993559,-3.676599,-0.729578,0.330724,
+ 0.039,-0.185675,0.981837,-3.665774,-0.73408,0.446286,
+ -0.246054,-0.154918,0.956796,-3.529709,-0.065998,0.437217,
+ -0.211092,-0.082708,0.973961,-3.570243,-0.060093,0.344854,
+ 0.109483,-0.310605,0.944213,-3.616627,-0.350374,0.338492,
+ -0.246054,-0.154918,0.956796,-3.529709,-0.065998,0.437217,
+ 0.109483,-0.310605,0.944213,-3.616627,-0.350374,0.338492,
+ -0.09542,0.162222,0.98213,-3.595973,-0.346391,0.426453,
+ -0.136917,-0.20176,0.969818,-3.51684,0.149002,0.430359,
+ -0.176356,-0.113876,0.977717,-3.535416,0.191408,0.338478,
+ -0.211092,-0.082708,0.973961,-3.570243,-0.060093,0.344854,
+ -0.136917,-0.20176,0.969818,-3.51684,0.149002,0.430359,
+ -0.211092,-0.082708,0.973961,-3.570243,-0.060093,0.344854,
+ -0.246054,-0.154918,0.956796,-3.529709,-0.065998,0.437217,
+ -0.17902,-0.308668,0.934171,-3.536654,0.442277,0.322,
+ -0.176356,-0.113876,0.977717,-3.535416,0.191408,0.338478,
+ -0.136917,-0.20176,0.969818,-3.51684,0.149002,0.430359,
+ -0.57342,0.819261,0,-3.544507,0.467147,0,
+ 0.170833,0.9853,0,-3.55232,0.219613,0,
+ -0.176356,-0.113876,0.977717,-3.535416,0.191408,0.338478,
+ -0.57342,0.819261,0,-3.544507,0.467147,0,
+ -0.176356,-0.113876,0.977717,-3.535416,0.191408,0.338478,
+ -0.17902,-0.308668,0.934171,-3.536654,0.442277,0.322,
+ 0.614301,0.789071,-0.000581,-3.583763,-0.052271,0,
+ -0.211092,-0.082708,0.973961,-3.570243,-0.060093,0.344854,
+ -0.176356,-0.113876,0.977717,-3.535416,0.191408,0.338478,
+ 0.614301,0.789071,-0.000581,-3.583763,-0.052271,0,
+ -0.176356,-0.113876,0.977717,-3.535416,0.191408,0.338478,
+ 0.170833,0.9853,0,-3.55232,0.219613,0,
+ 0.353735,-0.935346,0,-3.673607,-0.720796,0,
+ -0.051713,-0.100833,0.993559,-3.676599,-0.729578,0.330724,
+ 0.109483,-0.310605,0.944213,-3.616627,-0.350374,0.338492,
+ 0.353735,-0.935346,0,-3.673607,-0.720796,0,
+ 0.109483,-0.310605,0.944213,-3.616627,-0.350374,0.338492,
+ 0.098463,-0.995141,0,-3.637643,-0.356271,0,
+ -0.34926,-0.937026,0,-3.678793,-0.926816,0,
+ 0.051664,-0.122235,0.991156,-3.686518,-0.955181,0.320349,
+ -0.051713,-0.100833,0.993559,-3.676599,-0.729578,0.330724,
+ -0.34926,-0.937026,0,-3.678793,-0.926816,0,
+ -0.051713,-0.100833,0.993559,-3.676599,-0.729578,0.330724,
+ 0.353735,-0.935346,0,-3.673607,-0.720796,0,
+ -0.164,-0.98646,0,-3.650579,-1.142448,0,
+ 0.459595,-0.144347,0.87632,-3.639586,-1.140102,0.3338,
+ 0.051664,-0.122235,0.991156,-3.686518,-0.955181,0.320349,
+ -0.164,-0.98646,0,-3.650579,-1.142448,0,
+ 0.051664,-0.122235,0.991156,-3.686518,-0.955181,0.320349,
+ -0.34926,-0.937026,0,-3.678793,-0.926816,0,
+ 0.030921,-0.999522,0,-3.522115,-1.366623,0,
+ 0.407719,-0.190267,0.893064,-3.557869,-1.325941,0.37803,
+ 0.459595,-0.144347,0.87632,-3.639586,-1.140102,0.3338,
+ 0.030921,-0.999522,0,-3.522115,-1.366623,0,
+ 0.459595,-0.144347,0.87632,-3.639586,-1.140102,0.3338,
+ -0.164,-0.98646,0,-3.650579,-1.142448,0,
+ 0.183204,-0.983075,0,-3.417689,-1.494416,0,
+ 0.159615,0.129847,0.978602,-3.442085,-1.48412,0.406377,
+ 0.407719,-0.190267,0.893064,-3.557869,-1.325941,0.37803,
+ 0.183204,-0.983075,0,-3.417689,-1.494416,0,
+ 0.407719,-0.190267,0.893064,-3.557869,-1.325941,0.37803,
+ 0.030921,-0.999522,0,-3.522115,-1.366623,0,
+ -0.997516,0.070442,0,-3.271035,-1.609292,0,
+ 0.846555,-0.103662,0.52211,-3.314868,-1.599081,0.439626,
+ 0.159615,0.129847,0.978602,-3.442085,-1.48412,0.406377,
+ -0.997516,0.070442,0,-3.271035,-1.609292,0,
+ 0.159615,0.129847,0.978602,-3.442085,-1.48412,0.406377,
+ 0.183204,-0.983075,0,-3.417689,-1.494416,0,
+ -0.99928,-0.037933,0,-3.1103,-1.69172,0,
+ 0.820312,-0.193024,0.538358,-3.120907,-1.707924,0.431829,
+ 0.846555,-0.103662,0.52211,-3.314868,-1.599081,0.439626,
+ -0.99928,-0.037933,0,-3.1103,-1.69172,0,
+ 0.846555,-0.103662,0.52211,-3.314868,-1.599081,0.439626,
+ -0.997516,0.070442,0,-3.271035,-1.609292,0,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.999491,-0.02584,0.01873,-2.941731,-1.787431,0.442574,
+ 0.820312,-0.193024,0.538358,-3.120907,-1.707924,0.431829,
+ 0.0787,0.996898,0,-2.892162,-1.781087,0,
+ 0.820312,-0.193024,0.538358,-3.120907,-1.707924,0.431829,
+ -0.99928,-0.037933,0,-3.1103,-1.69172,0,
+ 0.098463,-0.995141,0,-3.637643,-0.356271,0,
+ 0.109483,-0.310605,0.944213,-3.616627,-0.350374,0.338492,
+ -0.211092,-0.082708,0.973961,-3.570243,-0.060093,0.344854,
+ 0.098463,-0.995141,0,-3.637643,-0.356271,0,
+ -0.211092,-0.082708,0.973961,-3.570243,-0.060093,0.344854,
+ 0.614301,0.789071,-0.000581,-3.583763,-0.052271,0,
+ -0.246054,-0.154918,0.956796,-3.529709,-0.065998,0.437217,
+ -0.739347,0.031953,0.672566,-3.470778,-0.078218,0.546398,
+ -0.136917,-0.20176,0.969818,-3.51684,0.149002,0.430359,
+ -0.09542,0.162222,0.98213,-3.595973,-0.346391,0.426453,
+ -0.652584,-0.147678,0.743186,-3.526766,-0.317542,0.560837,
+ -0.739347,0.031953,0.672566,-3.470778,-0.078218,0.546398,
+ -0.09542,0.162222,0.98213,-3.595973,-0.346391,0.426453,
+ -0.739347,0.031953,0.672566,-3.470778,-0.078218,0.546398,
+ -0.246054,-0.154918,0.956796,-3.529709,-0.065998,0.437217,
+ 0.039,-0.185675,0.981837,-3.665774,-0.73408,0.446286,
+ -0.483189,-0.207332,0.850613,-3.569993,-0.731989,0.649435,
+ -0.652584,-0.147678,0.743186,-3.526766,-0.317542,0.560837,
+ 0.039,-0.185675,0.981837,-3.665774,-0.73408,0.446286,
+ -0.652584,-0.147678,0.743186,-3.526766,-0.317542,0.560837,
+ -0.09542,0.162222,0.98213,-3.595973,-0.346391,0.426453,
+ -0.069043,-0.157333,0.985129,-3.667859,-0.964867,0.464702,
+ -0.4008,-0.167777,0.900672,-3.55012,-0.984868,0.675228,
+ -0.483189,-0.207332,0.850613,-3.569993,-0.731989,0.649435,
+ -0.069043,-0.157333,0.985129,-3.667859,-0.964867,0.464702,
+ -0.483189,-0.207332,0.850613,-3.569993,-0.731989,0.649435,
+ 0.039,-0.185675,0.981837,-3.665774,-0.73408,0.446286,
+ 0.473622,-0.284001,0.833682,-3.631179,-1.157838,0.50561,
+ -0.417424,-0.199203,0.886609,-3.492599,-1.180646,0.692282,
+ -0.4008,-0.167777,0.900672,-3.55012,-0.984868,0.675228,
+ 0.473622,-0.284001,0.833682,-3.631179,-1.157838,0.50561,
+ -0.4008,-0.167777,0.900672,-3.55012,-0.984868,0.675228,
+ -0.069043,-0.157333,0.985129,-3.667859,-0.964867,0.464702,
+ 0.431429,-0.109339,0.895497,-3.53391,-1.330455,0.568246,
+ -0.521685,-0.261319,0.812131,-3.335942,-1.365685,0.72459,
+ -0.417424,-0.199203,0.886609,-3.492599,-1.180646,0.692282,
+ 0.431429,-0.109339,0.895497,-3.53391,-1.330455,0.568246,
+ -0.417424,-0.199203,0.886609,-3.492599,-1.180646,0.692282,
+ 0.473622,-0.284001,0.833682,-3.631179,-1.157838,0.50561,
+ 0.290478,-0.146424,0.945612,-3.387254,-1.486027,0.672861,
+ -0.521685,-0.261319,0.812131,-3.335942,-1.365685,0.72459,
+ 0.431429,-0.109339,0.895497,-3.53391,-1.330455,0.568246,
+ -0.912869,-0.285577,0.291747,-3.438226,-0.721479,0.728141,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ -0.970971,-0.219011,0.096178,-3.415655,-0.308965,0.671045,
+ -0.652584,-0.147678,0.743186,-3.526766,-0.317542,0.560837,
+ -0.970971,-0.219011,0.096178,-3.415655,-0.308965,0.671045,
+ -0.739347,0.031953,0.672566,-3.470778,-0.078218,0.546398,
+ -0.483189,-0.207332,0.850613,-3.569993,-0.731989,0.649435,
+ -0.912869,-0.285577,0.291747,-3.438226,-0.721479,0.728141,
+ -0.970971,-0.219011,0.096178,-3.415655,-0.308965,0.671045,
+ -0.483189,-0.207332,0.850613,-3.569993,-0.731989,0.649435,
+ -0.970971,-0.219011,0.096178,-3.415655,-0.308965,0.671045,
+ -0.652584,-0.147678,0.743186,-3.526766,-0.317542,0.560837,
+ -0.4008,-0.167777,0.900672,-3.55012,-0.984868,0.675228,
+ -0.883057,-0.239959,0.403273,-3.355398,-0.969157,0.766213,
+ -0.912869,-0.285577,0.291747,-3.438226,-0.721479,0.728141,
+ -0.4008,-0.167777,0.900672,-3.55012,-0.984868,0.675228,
+ -0.912869,-0.285577,0.291747,-3.438226,-0.721479,0.728141,
+ -0.483189,-0.207332,0.850613,-3.569993,-0.731989,0.649435,
+ -0.417424,-0.199203,0.886609,-3.492599,-1.180646,0.692282,
+ -0.872722,-0.174901,0.455813,-3.27979,-1.162072,0.784602,
+ -0.883057,-0.239959,0.403273,-3.355398,-0.969157,0.766213,
+ -0.417424,-0.199203,0.886609,-3.492599,-1.180646,0.692282,
+ -0.883057,-0.239959,0.403273,-3.355398,-0.969157,0.766213,
+ -0.4008,-0.167777,0.900672,-3.55012,-0.984868,0.675228,
+ -0.521685,-0.261319,0.812131,-3.335942,-1.365685,0.72459,
+ -0.872722,-0.174901,0.455813,-3.27979,-1.162072,0.784602,
+ -0.417424,-0.199203,0.886609,-3.492599,-1.180646,0.692282,
+ -0.874358,-0.225285,0.429819,-3.25121,-0.948205,0.819868,
+ -0.883057,-0.239959,0.403273,-3.355398,-0.969157,0.766213,
+ -0.872722,-0.174901,0.455813,-3.27979,-1.162072,0.784602,
+ -0.794709,-0.185222,-0.57804,-3.556552,0.704883,0.28063,
+ -0.989276,0.146061,0,-3.566995,0.656967,0,
+ -0.57342,0.819261,0,-3.544507,0.467147,0,
+ -0.794709,-0.185222,-0.57804,-3.556552,0.704883,0.28063,
+ -0.57342,0.819261,0,-3.544507,0.467147,0,
+ -0.17902,-0.308668,0.934171,-3.536654,0.442277,0.322,
+ -0.845931,-0.255219,-0.468256,-3.57817,0.837714,0.288502,
+ -0.989171,0.146765,0,-3.599077,0.796217,0,
+ -0.989276,0.146061,0,-3.566995,0.656967,0,
+ -0.845931,-0.255219,-0.468256,-3.57817,0.837714,0.288502,
+ -0.989276,0.146061,0,-3.566995,0.656967,0,
+ -0.794709,-0.185222,-0.57804,-3.556552,0.704883,0.28063,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ -0.912869,-0.285577,0.291747,-3.438226,-0.721479,0.728141,
+ -0.883057,-0.239959,0.403273,-3.355398,-0.969157,0.766213,
+ -0.99574,-0.082547,0.041071,-3.283698,-0.730967,0.793898,
+ -0.883057,-0.239959,0.403273,-3.355398,-0.969157,0.766213,
+ -0.874358,-0.225285,0.429819,-3.25121,-0.948205,0.819868,
+ -0.498756,-0.224101,0.83727,-1.936032,-1.829617,0.488916,
+ 0.722741,0.690989,-0.01339,-1.971059,-1.992958,0.500845,
+ 0.532717,0.840798,0.09629,-1.933565,-1.993029,0.438902,
+ -0.498756,-0.224101,0.83727,-1.936032,-1.829617,0.488916,
+ 0.532717,0.840798,0.09629,-1.933565,-1.993029,0.438902,
+ -0.239734,-0.173966,0.955125,-1.88316,-1.829718,0.401567,
+ -0.759627,-0.28527,0.584455,-2.027242,-1.813012,0.555232,
+ 0.870384,0.492056,0.017698,-2.03574,-1.981182,0.547873,
+ 0.722741,0.690989,-0.01339,-1.971059,-1.992958,0.500845,
+ -0.759627,-0.28527,0.584455,-2.027242,-1.813012,0.555232,
+ 0.722741,0.690989,-0.01339,-1.971059,-1.992958,0.500845,
+ -0.498756,-0.224101,0.83727,-1.936032,-1.829617,0.488916,
+ -0.672688,-0.442616,0.592944,-2.126375,-1.866497,0.502895,
+ 0.947044,0.280641,0.156039,-2.106039,-2.019111,0.510759,
+ 0.870384,0.492056,0.017698,-2.03574,-1.981182,0.547873,
+ -0.672688,-0.442616,0.592944,-2.126375,-1.866497,0.502895,
+ 0.870384,0.492056,0.017698,-2.03574,-1.981182,0.547873,
+ -0.759627,-0.28527,0.584455,-2.027242,-1.813012,0.555232,
+ 0.954473,-0.270031,0.126745,-2.176551,-1.873816,0.445782,
+ 0.925586,0.050829,0.375109,-2.141621,-2.024301,0.470257,
+ 0.947044,0.280641,0.156039,-2.106039,-2.019111,0.510759,
+ 0.954473,-0.270031,0.126745,-2.176551,-1.873816,0.445782,
+ 0.947044,0.280641,0.156039,-2.106039,-2.019111,0.510759,
+ -0.672688,-0.442616,0.592944,-2.126375,-1.866497,0.502895,
+ 0.957938,-0.285979,0.023877,-2.147113,-1.903198,0.362462,
+ -0.212651,-0.104685,0.971504,-2.120746,-2.045137,0.411171,
+ 0.925586,0.050829,0.375109,-2.141621,-2.024301,0.470257,
+ 0.957938,-0.285979,0.023877,-2.147113,-1.903198,0.362462,
+ 0.925586,0.050829,0.375109,-2.141621,-2.024301,0.470257,
+ 0.954473,-0.270031,0.126745,-2.176551,-1.873816,0.445782,
+ -0.274087,0.000043,-0.961705,-2.062725,-1.884246,0.307336,
+ 0.332529,0.910491,0.245827,-2.060902,-2.031698,0.372079,
+ -0.212651,-0.104685,0.971504,-2.120746,-2.045137,0.411171,
+ -0.274087,0.000043,-0.961705,-2.062725,-1.884246,0.307336,
+ -0.212651,-0.104685,0.971504,-2.120746,-2.045137,0.411171,
+ 0.957938,-0.285979,0.023877,-2.147113,-1.903198,0.362462,
+ 0.74023,-0.090866,0.666185,-1.946306,-1.872735,0.344251,
+ 0.530834,0.847416,-0.010102,-1.978344,-2.023535,0.398257,
+ 0.332529,0.910491,0.245827,-2.060902,-2.031698,0.372079,
+ 0.74023,-0.090866,0.666185,-1.946306,-1.872735,0.344251,
+ 0.332529,0.910491,0.245827,-2.060902,-2.031698,0.372079,
+ -0.274087,0.000043,-0.961705,-2.062725,-1.884246,0.307336,
+ -0.239734,-0.173966,0.955125,-1.88316,-1.829718,0.401567,
+ 0.532717,0.840798,0.09629,-1.933565,-1.993029,0.438902,
+ 0.530834,0.847416,-0.010102,-1.978344,-2.023535,0.398257,
+ -0.239734,-0.173966,0.955125,-1.88316,-1.829718,0.401567,
+ 0.530834,0.847416,-0.010102,-1.978344,-2.023535,0.398257,
+ 0.74023,-0.090866,0.666185,-1.946306,-1.872735,0.344251,
+ 0.080262,-0.270606,0.959339,-2.466779,-1.857679,0.570461,
+ 0.78715,0.616449,-0.019656,-2.513608,-2.012858,0.558673,
+ 0.66813,0.738233,-0.092817,-2.499138,-2.03809,0.504529,
+ 0.080262,-0.270606,0.959339,-2.466779,-1.857679,0.570461,
+ 0.66813,0.738233,-0.092817,-2.499138,-2.03809,0.504529,
+ 0.441315,-0.29978,0.845797,-2.446375,-1.893261,0.49411,
+ -0.247433,-0.24804,0.936618,-2.547737,-1.833025,0.609321,
+ 0.856604,0.474875,0.201802,-2.571019,-1.995375,0.58623,
+ 0.78715,0.616449,-0.019656,-2.513608,-2.012858,0.558673,
+ -0.247433,-0.24804,0.936618,-2.547737,-1.833025,0.609321,
+ 0.78715,0.616449,-0.019656,-2.513608,-2.012858,0.558673,
+ 0.080262,-0.270606,0.959339,-2.466779,-1.857679,0.570461,
+ -0.587844,-0.244917,0.771009,-2.64722,-1.84401,0.594347,
+ 0.827569,0.284291,0.484054,-2.641567,-2.003164,0.575611,
+ 0.856604,0.474875,0.201802,-2.571019,-1.995375,0.58623,
+ -0.587844,-0.244917,0.771009,-2.64722,-1.84401,0.594347,
+ 0.856604,0.474875,0.201802,-2.571019,-1.995375,0.58623,
+ -0.247433,-0.24804,0.936618,-2.547737,-1.833025,0.609321,
+ -0.845196,-0.27877,0.455994,-2.699966,-1.850397,0.57007,
+ 0.754806,0.216246,0.619279,-2.678971,-2.007694,0.558395,
+ 0.827569,0.284291,0.484054,-2.641567,-2.003164,0.575611,
+ -0.845196,-0.27877,0.455994,-2.699966,-1.850397,0.57007,
+ 0.827569,0.284291,0.484054,-2.641567,-2.003164,0.575611,
+ -0.587844,-0.244917,0.771009,-2.64722,-1.84401,0.594347,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ 0.512523,0.043999,0.857545,-2.685663,-2.028649,0.514928,
+ 0.754806,0.216246,0.619279,-2.678971,-2.007694,0.558395,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ 0.754806,0.216246,0.619279,-2.678971,-2.007694,0.558395,
+ -0.845196,-0.27877,0.455994,-2.699966,-1.850397,0.57007,
+ 0.975634,-0.187231,-0.114377,-2.684452,-1.891207,0.447388,
+ 0.45571,-0.00339,0.890122,-2.667969,-2.036634,0.471396,
+ 0.512523,0.043999,0.857545,-2.685663,-2.028649,0.514928,
+ 0.975634,-0.187231,-0.114377,-2.684452,-1.891207,0.447388,
+ 0.512523,0.043999,0.857545,-2.685663,-2.028649,0.514928,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ 0.985192,-0.12583,-0.116459,-2.614084,-1.905005,0.404925,
+ 0.373808,-0.059429,0.9256,-2.618068,-2.046419,0.441284,
+ 0.45571,-0.00339,0.890122,-2.667969,-2.036634,0.471396,
+ 0.985192,-0.12583,-0.116459,-2.614084,-1.905005,0.404925,
+ 0.45571,-0.00339,0.890122,-2.667969,-2.036634,0.471396,
+ 0.975634,-0.187231,-0.114377,-2.684452,-1.891207,0.447388,
+ 0.996811,-0.048518,-0.063355,-2.503818,-1.909806,0.431456,
+ 0.276212,-0.065585,0.958856,-2.539874,-2.049824,0.460098,
+ 0.373808,-0.059429,0.9256,-2.618068,-2.046419,0.441284,
+ 0.996811,-0.048518,-0.063355,-2.503818,-1.909806,0.431456,
+ 0.373808,-0.059429,0.9256,-2.618068,-2.046419,0.441284,
+ 0.985192,-0.12583,-0.116459,-2.614084,-1.905005,0.404925,
+ 0.441315,-0.29978,0.845797,-2.446375,-1.893261,0.49411,
+ 0.66813,0.738233,-0.092817,-2.499138,-2.03809,0.504529,
+ 0.276212,-0.065585,0.958856,-2.539874,-2.049824,0.460098,
+ 0.441315,-0.29978,0.845797,-2.446375,-1.893261,0.49411,
+ 0.276212,-0.065585,0.958856,-2.539874,-2.049824,0.460098,
+ 0.996811,-0.048518,-0.063355,-2.503818,-1.909806,0.431456,
+ 0.530834,0.847416,-0.010102,-1.978344,-2.023535,0.398257,
+ 0.122987,-0.006582,0.992387,-1.985123,-2.116661,0.394256,
+ 0.041586,0.068165,0.996807,-2.065655,-2.124623,0.36872,
+ 0.530834,0.847416,-0.010102,-1.978344,-2.023535,0.398257,
+ 0.041586,0.068165,0.996807,-2.065655,-2.124623,0.36872,
+ 0.332529,0.910491,0.245827,-2.060902,-2.031698,0.372079,
+ 0.332529,0.910491,0.245827,-2.060902,-2.031698,0.372079,
+ 0.041586,0.068165,0.996807,-2.065655,-2.124623,0.36872,
+ 0.035084,0.005692,0.999368,-2.12403,-2.137733,0.406853,
+ 0.332529,0.910491,0.245827,-2.060902,-2.031698,0.372079,
+ 0.035084,0.005692,0.999368,-2.12403,-2.137733,0.406853,
+ -0.212651,-0.104685,0.971504,-2.120746,-2.045137,0.411171,
+ -0.212651,-0.104685,0.971504,-2.120746,-2.045137,0.411171,
+ 0.035084,0.005692,0.999368,-2.12403,-2.137733,0.406853,
+ -0.01346,-0.014478,0.999805,-2.144393,-2.117408,0.464489,
+ -0.212651,-0.104685,0.971504,-2.120746,-2.045137,0.411171,
+ -0.01346,-0.014478,0.999805,-2.144393,-2.117408,0.464489,
+ 0.925586,0.050829,0.375109,-2.141621,-2.024301,0.470257,
+ 0.925586,0.050829,0.375109,-2.141621,-2.024301,0.470257,
+ -0.01346,-0.014478,0.999805,-2.144393,-2.117408,0.464489,
+ -0.114527,0.103064,0.988059,-2.109684,-2.112345,0.503997,
+ 0.925586,0.050829,0.375109,-2.141621,-2.024301,0.470257,
+ -0.114527,0.103064,0.988059,-2.109684,-2.112345,0.503997,
+ 0.947044,0.280641,0.156039,-2.106039,-2.019111,0.510759,
+ 0.947044,0.280641,0.156039,-2.106039,-2.019111,0.510759,
+ -0.114527,0.103064,0.988059,-2.109684,-2.112345,0.503997,
+ 0.2189,0.87846,0.424724,-2.04111,-2.075348,0.540201,
+ 0.947044,0.280641,0.156039,-2.106039,-2.019111,0.510759,
+ 0.2189,0.87846,0.424724,-2.04111,-2.075348,0.540201,
+ 0.870384,0.492056,0.017698,-2.03574,-1.981182,0.547873,
+ 0.870384,0.492056,0.017698,-2.03574,-1.981182,0.547873,
+ 0.2189,0.87846,0.424724,-2.04111,-2.075348,0.540201,
+ -0.194126,0.280848,0.939914,-1.978016,-2.086834,0.494327,
+ 0.870384,0.492056,0.017698,-2.03574,-1.981182,0.547873,
+ -0.194126,0.280848,0.939914,-1.978016,-2.086834,0.494327,
+ 0.722741,0.690989,-0.01339,-1.971059,-1.992958,0.500845,
+ 0.722741,0.690989,-0.01339,-1.971059,-1.992958,0.500845,
+ -0.194126,0.280848,0.939914,-1.978016,-2.086834,0.494327,
+ 0.742615,0.656803,0.130894,-1.941442,-2.086904,0.433904,
+ 0.722741,0.690989,-0.01339,-1.971059,-1.992958,0.500845,
+ 0.742615,0.656803,0.130894,-1.941442,-2.086904,0.433904,
+ 0.532717,0.840798,0.09629,-1.933565,-1.993029,0.438902,
+ 0.532717,0.840798,0.09629,-1.933565,-1.993029,0.438902,
+ 0.742615,0.656803,0.130894,-1.941442,-2.086904,0.433904,
+ 0.122987,-0.006582,0.992387,-1.985123,-2.116661,0.394256,
+ 0.532717,0.840798,0.09629,-1.933565,-1.993029,0.438902,
+ 0.122987,-0.006582,0.992387,-1.985123,-2.116661,0.394256,
+ 0.530834,0.847416,-0.010102,-1.978344,-2.023535,0.398257,
+ 0.66813,0.738233,-0.092817,-2.499138,-2.03809,0.504529,
+ 0.681964,0.386261,0.621069,-2.513187,-2.130859,0.49792,
+ 0.584509,0.341142,0.736187,-2.552923,-2.142304,0.454579,
+ 0.66813,0.738233,-0.092817,-2.499138,-2.03809,0.504529,
+ 0.584509,0.341142,0.736187,-2.552923,-2.142304,0.454579,
+ 0.276212,-0.065585,0.958856,-2.539874,-2.049824,0.460098,
+ 0.276212,-0.065585,0.958856,-2.539874,-2.049824,0.460098,
+ 0.584509,0.341142,0.736187,-2.552923,-2.142304,0.454579,
+ 0.519595,0.25029,0.816931,-2.629199,-2.138983,0.436227,
+ 0.276212,-0.065585,0.958856,-2.539874,-2.049824,0.460098,
+ 0.519595,0.25029,0.816931,-2.629199,-2.138983,0.436227,
+ 0.373808,-0.059429,0.9256,-2.618068,-2.046419,0.441284,
+ 0.373808,-0.059429,0.9256,-2.618068,-2.046419,0.441284,
+ 0.519595,0.25029,0.816931,-2.629199,-2.138983,0.436227,
+ 0.237937,0.08172,0.967837,-2.677875,-2.129439,0.4656,
+ 0.373808,-0.059429,0.9256,-2.618068,-2.046419,0.441284,
+ 0.237937,0.08172,0.967837,-2.677875,-2.129439,0.4656,
+ 0.45571,-0.00339,0.890122,-2.667969,-2.036634,0.471396,
+ 0.45571,-0.00339,0.890122,-2.667969,-2.036634,0.471396,
+ 0.237937,0.08172,0.967837,-2.677875,-2.129439,0.4656,
+ 0.198142,0.152918,0.968171,-2.695135,-2.12165,0.508064,
+ 0.45571,-0.00339,0.890122,-2.667969,-2.036634,0.471396,
+ 0.198142,0.152918,0.968171,-2.695135,-2.12165,0.508064,
+ 0.512523,0.043999,0.857545,-2.685663,-2.028649,0.514928,
+ 0.512523,0.043999,0.857545,-2.685663,-2.028649,0.514928,
+ 0.198142,0.152918,0.968171,-2.695135,-2.12165,0.508064,
+ 0.198441,0.172024,0.964898,-2.688607,-2.101208,0.550465,
+ 0.512523,0.043999,0.857545,-2.685663,-2.028649,0.514928,
+ 0.198441,0.172024,0.964898,-2.688607,-2.101208,0.550465,
+ 0.754806,0.216246,0.619279,-2.678971,-2.007694,0.558395,
+ 0.754806,0.216246,0.619279,-2.678971,-2.007694,0.558395,
+ 0.198441,0.172024,0.964898,-2.688607,-2.101208,0.550465,
+ 0.204819,0.130792,0.970022,-2.65212,-2.09679,0.567258,
+ 0.754806,0.216246,0.619279,-2.678971,-2.007694,0.558395,
+ 0.204819,0.130792,0.970022,-2.65212,-2.09679,0.567258,
+ 0.827569,0.284291,0.484054,-2.641567,-2.003164,0.575611,
+ 0.827569,0.284291,0.484054,-2.641567,-2.003164,0.575611,
+ 0.204819,0.130792,0.970022,-2.65212,-2.09679,0.567258,
+ 0.154029,0.078449,0.984947,-2.583303,-2.089191,0.577616,
+ 0.827569,0.284291,0.484054,-2.641567,-2.003164,0.575611,
+ 0.154029,0.078449,0.984947,-2.583303,-2.089191,0.577616,
+ 0.856604,0.474875,0.201802,-2.571019,-1.995375,0.58623,
+ 0.856604,0.474875,0.201802,-2.571019,-1.995375,0.58623,
+ 0.154029,0.078449,0.984947,-2.583303,-2.089191,0.577616,
+ 0.032152,0.123743,0.991793,-2.527301,-2.106246,0.550735,
+ 0.856604,0.474875,0.201802,-2.571019,-1.995375,0.58623,
+ 0.032152,0.123743,0.991793,-2.527301,-2.106246,0.550735,
+ 0.78715,0.616449,-0.019656,-2.513608,-2.012858,0.558673,
+ 0.78715,0.616449,-0.019656,-2.513608,-2.012858,0.558673,
+ 0.032152,0.123743,0.991793,-2.527301,-2.106246,0.550735,
+ 0.681964,0.386261,0.621069,-2.513187,-2.130859,0.49792,
+ 0.78715,0.616449,-0.019656,-2.513608,-2.012858,0.558673,
+ 0.681964,0.386261,0.621069,-2.513187,-2.130859,0.49792,
+ 0.66813,0.738233,-0.092817,-2.499138,-2.03809,0.504529,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ 0.742615,0.656803,0.130894,-1.941442,-2.086904,0.433904,
+ -0.194126,0.280848,0.939914,-1.978016,-2.086834,0.494327,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ -0.194126,0.280848,0.939914,-1.978016,-2.086834,0.494327,
+ 0.2189,0.87846,0.424724,-2.04111,-2.075348,0.540201,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ 0.2189,0.87846,0.424724,-2.04111,-2.075348,0.540201,
+ -0.114527,0.103064,0.988059,-2.109684,-2.112345,0.503997,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ -0.114527,0.103064,0.988059,-2.109684,-2.112345,0.503997,
+ -0.01346,-0.014478,0.999805,-2.144393,-2.117408,0.464489,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ -0.01346,-0.014478,0.999805,-2.144393,-2.117408,0.464489,
+ 0.035084,0.005692,0.999368,-2.12403,-2.137733,0.406853,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ 0.035084,0.005692,0.999368,-2.12403,-2.137733,0.406853,
+ 0.041586,0.068165,0.996807,-2.065655,-2.124623,0.36872,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ 0.041586,0.068165,0.996807,-2.065655,-2.124623,0.36872,
+ 0.122987,-0.006582,0.992387,-1.985123,-2.116661,0.394256,
+ -0.077208,0.343417,0.936004,-2.048681,-2.165282,0.450843,
+ 0.122987,-0.006582,0.992387,-1.985123,-2.116661,0.394256,
+ 0.742615,0.656803,0.130894,-1.941442,-2.086904,0.433904,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.681964,0.386261,0.621069,-2.513187,-2.130859,0.49792,
+ 0.032152,0.123743,0.991793,-2.527301,-2.106246,0.550735,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.032152,0.123743,0.991793,-2.527301,-2.106246,0.550735,
+ 0.154029,0.078449,0.984947,-2.583303,-2.089191,0.577616,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.154029,0.078449,0.984947,-2.583303,-2.089191,0.577616,
+ 0.204819,0.130792,0.970022,-2.65212,-2.09679,0.567258,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.204819,0.130792,0.970022,-2.65212,-2.09679,0.567258,
+ 0.198441,0.172024,0.964898,-2.688607,-2.101208,0.550465,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.198441,0.172024,0.964898,-2.688607,-2.101208,0.550465,
+ 0.198142,0.152918,0.968171,-2.695135,-2.12165,0.508064,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.198142,0.152918,0.968171,-2.695135,-2.12165,0.508064,
+ 0.237937,0.08172,0.967837,-2.677875,-2.129439,0.4656,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.237937,0.08172,0.967837,-2.677875,-2.129439,0.4656,
+ 0.519595,0.25029,0.816931,-2.629199,-2.138983,0.436227,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.519595,0.25029,0.816931,-2.629199,-2.138983,0.436227,
+ 0.584509,0.341142,0.736187,-2.552923,-2.142304,0.454579,
+ 0.510285,0.851048,0.1238,-2.603284,-2.176802,0.510638,
+ 0.584509,0.341142,0.736187,-2.552923,-2.142304,0.454579,
+ 0.681964,0.386261,0.621069,-2.513187,-2.130859,0.49792,
+ 0.820312,-0.193024,0.538358,-3.120907,-1.707924,0.431829,
+ 0.999491,-0.02584,0.01873,-2.941731,-1.787431,0.442574,
+ 0.713401,0.39471,-0.579019,-3.008323,-1.759271,0.655672,
+ 0.820312,-0.193024,0.538358,-3.120907,-1.707924,0.431829,
+ 0.713401,0.39471,-0.579019,-3.008323,-1.759271,0.655672,
+ 0.843062,-0.10517,0.527433,-3.139394,-1.687482,0.638546,
+ 0.999491,-0.02584,0.01873,-2.941731,-1.787431,0.442574,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ 0.713401,0.39471,-0.579019,-3.008323,-1.759271,0.655672,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ -0.845196,-0.27877,0.455994,-2.699966,-1.850397,0.57007,
+ -0.732521,-0.474279,0.488336,-2.811581,-1.79821,0.712737,
+ 0.972392,0.232654,0.018037,-2.709403,-1.879947,0.508775,
+ -0.732521,-0.474279,0.488336,-2.811581,-1.79821,0.712737,
+ 0.713401,0.39471,-0.579019,-3.008323,-1.759271,0.655672,
+ -0.530021,0.13773,0.836724,-3.697889,-0.951955,0.098793,
+ -0.54555,-0.056478,0.836173,-3.67645,-0.551317,0.077574,
+ -0.548359,-0.017804,0.836053,-3.699784,-0.759901,0.088664
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1515,data,NULL};
+const struct gllist *cow_udder=&frame;
diff --git a/hacks/glx/crackberg.c b/hacks/glx/crackberg.c
new file mode 100644
index 0000000..74c6915
--- /dev/null
+++ b/hacks/glx/crackberg.c
@@ -0,0 +1,1468 @@
+/***************************
+ ** crackberg; Matus Telgarsky [ catachresis@cmu.edu ] 2005
+ ** */
+#ifndef HAVE_JWXYZ
+# define XK_MISCELLANY
+# include <X11/keysymdef.h>
+#endif
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define release_crackberg 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#ifdef USE_GL /* whole file */
+
+#define DEF_NSUBDIVS "4"
+#define DEF_BORING "False"
+#define DEF_CRACK "True"
+#define DEF_WATER "True"
+#define DEF_FLAT "True"
+#define DEF_COLOR "random"
+#define DEF_LIT "True"
+#define DEF_VISIBILITY "0.6"
+#define DEF_LETTERBOX "False"
+
+
+/***************************
+ ** macros
+ ** */
+
+#define M_RAD7_4 0.661437827766148
+#define M_SQRT3_2 0.866025403784439
+#define M_PI_180 0.0174532925199433
+#define M_180_PI 57.2957795130823
+#define MSPEED_SCALE 1.1
+#define AVE3(a,b,c) ( ((a) + (b) + (c)) / 3.0 )
+#define MAX_ZDELTA 0.35
+#define DISPLACE(h,d) (h+(random()/(double)RAND_MAX-0.5)*2*MAX_ZDELTA/(1<<d))
+#define MEAN(x,y) ( ((x) + (y)) / 2.0 )
+#define TCOORD(x,y) (cberg->heights[(cberg->epoints * (y) - ((y)-1)*(y)/2 + (x))])
+#define sNCOORD(x,y,p) (cberg->norms[3 * (cberg->epoints * (y) - ((y)-1)*(y)/2 + (x)) + (p)])
+#define SET_sNCOORD(x,y, down, a,b,c,d,e,f) \
+ sNCOORD(x,y,0) = AVE3(a-d, 0.5 * (b-e), -0.5 * (c-f)); \
+ sNCOORD(x,y,1) = ((down) ? -1 : +1) * AVE3(0.0, M_SQRT3_2 * (b-e), M_SQRT3_2 * (c-f)); \
+ sNCOORD(x,y,2) = (2*dx)
+#define fNCOORD(x,y,w,p) \
+ (cberg->norms[3 * (2*(y)*cberg->epoints-((y)+1)*((y)+1) + 1 + 2 * ((x)-1) + (w)) + (p)])
+#define SET_fNCOORDa(x,y, down, dz00,dz01) \
+ fNCOORD(x,y,0,0) = (down) * (dy) * (dz01); \
+ fNCOORD(x,y,0,1) = (down) * ((dz01) * (dx) / 2 - (dx) * (dz00)); \
+ fNCOORD(x,y,0,2) = (down) * (dx) * (dy)
+#define SET_fNCOORDb(x,y, down, dz10,dz11) \
+ fNCOORD(x,y,1,0) = (down) * (dy) * (dz10); \
+ fNCOORD(x,y,1,1) = (down) * ((dz11) * (dx) - (dx) * (dz10) / 2); \
+ fNCOORD(x,y,1,2) = (down) * (dx) * (dy)
+
+
+/***************************
+ ** types
+ ** */
+
+
+typedef struct _cberg_state cberg_state;
+typedef struct _Trile Trile;
+
+typedef struct {
+ void (*init)(Trile *);
+ void (*free)(Trile *);
+ void (*draw)(Trile *);
+ void (*init_iter)(Trile *, cberg_state *);
+ void (*dying_iter)(Trile *, cberg_state *);
+} Morph;
+
+typedef struct {
+ char *id;
+ void (*land)(cberg_state *, double);
+ void (*water)(cberg_state *, double);
+ double bg[4];
+} Color;
+
+enum { TRILE_NEW, TRILE_INIT, TRILE_STABLE, TRILE_DYING, TRILE_DELETE };
+
+struct _Trile {
+ int x,y; /*center coords; points up if (x+y)%2 == 0, else down*/
+ short state;
+ short visible;
+ double *l,*r,*v; /*only edges need saving*/
+ GLuint call_list;
+
+ void *morph_data;
+ const Morph *morph;
+
+ struct _Trile *left, *right, *parent; /* for bst, NOT spatial */
+ struct _Trile *next_free; /* for memory allocation */
+};
+
+enum { MOTION_AUTO = 0, MOTION_MANUAL = 1, MOTION_LROT= 2, MOTION_RROT = 4,
+ MOTION_FORW = 8, MOTION_BACK = 16, MOTION_DEC = 32, MOTION_INC = 64,
+ MOTION_LEFT = 128, MOTION_RIGHT = 256 };
+
+struct _cberg_state {
+ GLXContext *glx_context;
+ Trile *trile_head;
+
+ double x,y,z, yaw,roll,pitch, dx,dy,dz, dyaw,droll,dpitch, elapsed;
+ double prev_frame;
+ int motion_state;
+ double mspeed;
+
+ double fovy, aspect, zNear, zFar;
+
+ const Color *color;
+
+ int count;
+
+ unsigned int epoints, /*number of points to one edge*/
+ tpoints, /*number points total*/
+ ntris, /*number triangles per trile*/
+ tnorms; /*number of normals*/
+
+ double *heights, *norms;
+ Trile *free_head; /* for trile_[alloc|free] */
+
+ double draw_elapsed;
+
+ double dx0;
+
+ double vs0r,vs0g,vs0b, vs1r, vs1g, vs1b,
+ vf0r,vf0g,vf0b, vf1r, vf1g, vf1b;
+
+ Bool button_down_p;
+ int mouse_x, mouse_y;
+ struct timeval paused;
+};
+
+
+
+/***************************
+ ** globals
+ ** */
+
+static unsigned int nsubdivs;
+static Bool crack, boring, do_water, flat, lit, letterbox;
+static float visibility;
+static char *color;
+
+static cberg_state *cbergs = NULL;
+
+static XrmOptionDescRec opts[] = {
+ {"-nsubdivs", ".nsubdivs", XrmoptionSepArg, 0},
+ {"-boring", ".boring", XrmoptionNoArg, "True"},
+ {"-crack", ".crack", XrmoptionNoArg, "True"},
+ {"-no-crack", ".crack", XrmoptionNoArg, "False"},
+ {"-water", ".water", XrmoptionNoArg, "True"},
+ {"-no-water", ".water", XrmoptionNoArg, "False"},
+ {"-flat", ".flat", XrmoptionNoArg, "True"},
+ {"-no-flat", ".flat", XrmoptionNoArg, "False"},
+ {"-color", ".color", XrmoptionSepArg, 0},
+ {"-lit", ".lit", XrmoptionNoArg, "True"},
+ {"-no-lit", ".lit", XrmoptionNoArg, "False"},
+ {"-visibility", ".visibility", XrmoptionSepArg, 0},
+ {"-letterbox", ".letterbox", XrmoptionNoArg, "True"}
+};
+
+static argtype vars[] = {
+ {&nsubdivs, "nsubdivs", "nsubdivs", DEF_NSUBDIVS, t_Int},
+ {&boring, "boring", "boring", DEF_BORING, t_Bool},
+ {&crack, "crack", "crack", DEF_CRACK, t_Bool},
+ {&do_water, "water", "water", DEF_WATER, t_Bool},
+ {&flat, "flat", "flat", DEF_FLAT, t_Bool},
+ {&color, "color", "color", DEF_COLOR, t_String},
+ {&lit, "lit", "lit", DEF_LIT, t_Bool},
+ {&visibility, "visibility", "visibility", DEF_VISIBILITY, t_Float},
+ {&letterbox, "letterbox", "letterbox", DEF_LETTERBOX, t_Bool}
+};
+
+ENTRYPOINT ModeSpecOpt crackberg_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/***************************
+ ** Trile functions.
+ ** first come all are regular trile functions
+ ** */
+
+
+/* forward decls for trile_new */
+static Trile *triles_find(Trile *tr, int x, int y);
+static Trile *trile_alloc(cberg_state *cberg);
+static const Morph *select_morph(void);
+static const Color *select_color(cberg_state *);
+
+static void trile_calc_sides(cberg_state *cberg,
+ Trile *new, int x, int y, Trile *root)
+{
+ unsigned int i,j,k;
+ int dv = ( (x + y) % 2 ? +1 : -1); /* we are pointing down or up*/
+ Trile *l, *r, *v; /* v_ertical */
+
+
+ if (root) {
+ l = triles_find(root, x-1, y);
+ r = triles_find(root, x+1, y);
+ v = triles_find(root, x,y+dv);
+ } else
+ l = r = v = NULL;
+
+ if (v) {
+ for (i = 0; i != cberg->epoints; ++i)
+ new->v[i] = v->v[i];
+ } else {
+ if (l) new->v[0] = l->l[0];
+ else if (!root) new->v[0] = DISPLACE(0,0);
+ else {
+ Trile *tr; /* all of these tests needed.. */
+ if ( (tr = triles_find(root, x-1, y + dv)) )
+ new->v[0] = tr->l[0];
+ else if ( (tr = triles_find(root, x-2, y)) )
+ new->v[0] = tr->r[0];
+ else if ( (tr = triles_find(root, x-2, y + dv)) )
+ new->v[0] = tr->r[0];
+ else
+ new->v[0] = DISPLACE(0,0);
+ }
+
+ if (r) new->v[cberg->epoints-1] = r->l[0];
+ else if (!root) new->v[cberg->epoints-1] = DISPLACE(0,0);
+ else {
+ Trile *tr;
+ if ( (tr = triles_find(root, x+1, y + dv)) )
+ new->v[cberg->epoints-1] = tr->l[0];
+ else if ( (tr = triles_find(root, x+2, y)) )
+ new->v[cberg->epoints-1] = tr->v[0];
+ else if ( (tr = triles_find(root, x+2, y + dv)) )
+ new->v[cberg->epoints-1] = tr->v[0];
+ else
+ new->v[cberg->epoints-1] = DISPLACE(0,0);
+ }
+
+ for (i = ((1 << nsubdivs) >> 1), k =1; i; i >>= 1, ++k)
+ for (j = i; j < cberg->epoints; j += i * 2)
+ new->v[j] = DISPLACE(MEAN(new->v[j-i], new->v[j+i]), k);
+ }
+
+ if (l) {
+ for (i = 0; i != cberg->epoints; ++i)
+ new->l[i] = l->r[i];
+ } else {
+ if (r) new->l[0] = r->v[0];
+ else if (!root) new->l[0] = DISPLACE(0,0);
+ else {
+ Trile *tr;
+ if ( (tr = triles_find(root, x-1, y-dv)) )
+ new->l[0] = tr->r[0];
+ else if ( (tr = triles_find(root, x+1, y-dv)) )
+ new->l[0] = tr->v[0];
+ else if ( (tr = triles_find(root, x, y-dv)) )
+ new->l[0] = tr->l[0];
+ else
+ new->l[0] = DISPLACE(0,0);
+ }
+
+ new->l[cberg->epoints - 1] = new->v[0];
+
+ for (i = ((1 << nsubdivs) >> 1), k =1; i; i >>= 1, ++k)
+ for (j = i; j < cberg->epoints; j += i * 2)
+ new->l[j] = DISPLACE(MEAN(new->l[j-i], new->l[j+i]), k);
+ }
+
+ if (r) {
+ for (i = 0; i != cberg->epoints; ++i)
+ new->r[i] = r->l[i];
+ } else {
+ new->r[0] = new->v[cberg->epoints - 1];
+ new->r[cberg->epoints - 1] = new->l[0];
+
+ for (i = ((1 << nsubdivs) >> 1), k =1; i; i >>= 1, ++k)
+ for (j = i; j < cberg->epoints; j += i * 2)
+ new->r[j] = DISPLACE(MEAN(new->r[j-i], new->r[j+i]), k);
+ }
+}
+
+static void trile_calc_heights(cberg_state *cberg, Trile *new)
+{
+ unsigned int i, j, k, h;
+
+ for (i = 0; i < cberg->epoints - 1; ++i) { /* copy in sides */
+ TCOORD(i,0) = new->v[i];
+ TCOORD(cberg->epoints - 1 - i, i) = new->r[i];
+ TCOORD(0, cberg->epoints - 1 - i) = new->l[i];
+ }
+
+ for (i = ((1 << nsubdivs) >> 2), k =1; i; i >>= 1, ++k)
+ for (j = 1; j < (1 << k); ++j)
+ for (h = 1; h <= (1<<k) - j; ++h) {
+ TCOORD( i*(2*h - 1), i*(2*j - 1) ) = /*rights*/
+ DISPLACE(MEAN(TCOORD( i*(2*h - 2), i*(2*j + 0) ),
+ TCOORD( i*(2*h + 0), i*(2*j - 2) )), k);
+
+ TCOORD( i*(2*h + 0), i*(2*j - 1) ) = /*lefts*/
+ DISPLACE(MEAN(TCOORD( i*(2*h + 0), i*(2*j - 2) ),
+ TCOORD( i*(2*h + 0), i*(2*j + 0) )), k);
+
+ TCOORD( i*(2*h - 1), i*(2*j + 0) ) = /*verts*/
+ DISPLACE(MEAN(TCOORD( i*(2*h - 2), i*(2*j + 0) ),
+ TCOORD( i*(2*h + 0), i*(2*j + 0) )), k);
+ }
+}
+
+static void trile_calc_flat_norms(cberg_state *cberg, Trile *new)
+{
+ unsigned int x, y;
+ int down = (((new->x + new->y) % 2) ? -1 : +1);
+ double dz00,dz01,dz10,dz11, a,b,c,d;
+ double dy = down * M_SQRT3_2 / (1 << nsubdivs);
+ double dx = cberg->dx0;
+
+ for (y = 0; y < cberg->epoints - 1; ++y) {
+ a = TCOORD(0,y);
+ b = TCOORD(0,y+1);
+ for (x = 1; x < cberg->epoints - 1 - y; ++x) {
+ c = TCOORD(x,y);
+ d = TCOORD(x,y+1);
+
+ dz00 = b-c;
+ dz01 = a-c;
+ dz10 = b-d;
+ dz11 = c-d;
+
+ SET_fNCOORDa(x,y, down, dz00,dz01);
+ SET_fNCOORDb(x,y, down, dz10,dz11);
+
+ a = c;
+ b = d;
+ }
+
+ c = TCOORD(x,y);
+ dz00 = b-c;
+ dz01 = a-c;
+ SET_fNCOORDa(x,y, down, dz00, dz01);
+ }
+}
+
+static void trile_calc_smooth_norms(cberg_state *cberg, Trile *new)
+{
+ unsigned int i,j, down = (new->x + new->y) % 2;
+ double prev, cur, next;
+ double dx = cberg->dx0;
+
+ /** corners -- assume level (bah) **/
+ cur = TCOORD(0,0);
+ SET_sNCOORD(0,0, down,
+ cur,cur,TCOORD(0,1),TCOORD(1,0),cur,cur);
+ cur = TCOORD(cberg->epoints-1,0);
+ SET_sNCOORD(cberg->epoints-1,0, down,
+ TCOORD(cberg->epoints-2,0),TCOORD(cberg->epoints-2,1),cur,cur,cur,cur);
+ cur = TCOORD(0,cberg->epoints-1);
+ SET_sNCOORD(0,cberg->epoints-1, down,
+ cur,cur,cur,cur,TCOORD(1,cberg->epoints-2),TCOORD(0,cberg->epoints-2));
+
+
+ /** sides **/
+ /* vert */
+ prev = TCOORD(0,0);
+ cur = TCOORD(1,0);
+ for (i = 1; i < cberg->epoints - 1; ++i) {
+ next = TCOORD(i+1,0);
+ SET_sNCOORD(i,0, down, prev,TCOORD(i-1,1),TCOORD(i,1), next,cur,cur);
+ prev = cur;
+ cur = next;
+ }
+
+ /* right */
+ prev = TCOORD(cberg->epoints-1,0);
+ cur = TCOORD(cberg->epoints-2,0);
+ for (i = 1; i < cberg->epoints - 1; ++i) {
+ next = TCOORD(cberg->epoints-i-2,i+1);
+ SET_sNCOORD(cberg->epoints-i-1,i, down, TCOORD(cberg->epoints-i-2,i),next,cur,
+ cur,prev,TCOORD(cberg->epoints-i-1,i-1));
+ prev = cur;
+ cur = next;
+ }
+
+ /* left */
+ prev = TCOORD(0,0);
+ cur = TCOORD(0,1);
+ for (i = 1; i < cberg->epoints - 1; ++i) {
+ next = TCOORD(0,i+1);
+ SET_sNCOORD(0,i, down, cur,cur,next,TCOORD(1,i),TCOORD(1,i-1),prev);
+ prev = cur;
+ cur = next;
+ }
+
+
+ /** fill in **/
+ for (i = 1; i < cberg->epoints - 2; ++i) {
+ prev = TCOORD(0,i);
+ cur = TCOORD(1,i);
+ for (j = 1; j < cberg->epoints - i - 1; ++j) {
+ next = TCOORD(j+1,i);
+ SET_sNCOORD(j,i, down, prev,TCOORD(j-1,i+1),TCOORD(j,i+1),
+ next,TCOORD(j+1,i-1),TCOORD(j,i-1));
+ prev = cur;
+ cur = next;
+ }
+ }
+}
+
+static inline void trile_light(cberg_state *cberg,
+ unsigned int x, unsigned int y,
+ unsigned int which)
+{
+ if (flat) {
+ if (x) {
+ glNormal3d(fNCOORD(x,y,which,0),
+ fNCOORD(x,y,which,1),
+ fNCOORD(x,y,which,2));
+ } else { /* I get mesa errors and bizarre glitches without this!! */
+ glNormal3d(fNCOORD(1,y,0,0),
+ fNCOORD(1,y,0,1),
+ fNCOORD(1,y,0,2));
+ }
+ } else {
+ glNormal3d(sNCOORD(x,y+which,0),
+ sNCOORD(x,y+which,1),
+ sNCOORD(x,y+which,2));
+ }
+}
+
+static inline void trile_draw_vertex(cberg_state *cberg, unsigned int ix,
+ unsigned int iy, unsigned int which, double x,double y,
+ double zcur, double z1, double z2)
+{
+ glColor3d(0.0, 0.0, 0.0); /* don't ask. my card breaks otherwise. */
+
+ if (do_water && zcur <= 0.0) {
+ cberg->color->water(cberg, zcur); /* XXX use average-of-3 for color when flat?*/
+ if (lit) glNormal3d(0.0,0.0,1.0);
+ glVertex3d(x, y, 0.0);
+ } else {
+ cberg->color->land(cberg, zcur);
+ if (lit) trile_light(cberg,ix,iy,which);
+ glVertex3d(x, y, zcur);
+ }
+}
+
+static void trile_render(cberg_state *cberg, Trile *new)
+{
+ double cornerx = 0.5 * new->x - 0.5, cornery;
+ double dy = M_SQRT3_2 / (1 << nsubdivs);
+ double z0,z1,z2;
+ int x,y;
+
+ new->call_list = glGenLists(1);
+ glNewList(new->call_list, GL_COMPILE);
+
+ if ((new->x + new->y) % 2) { /*point down*/
+ cornery = (new->y + 0.5)*M_SQRT3_2;
+ glFrontFace(GL_CW);
+ dy = -dy;
+ } else
+ cornery = (new->y - 0.5) * M_SQRT3_2;
+
+ for (y = 0; y < cberg->epoints - 1; ++y) {
+ double dx = cberg->dx0;
+ glBegin(GL_TRIANGLE_STRIP);
+ /* first three points all part of the same triangle.. */
+ z0 = TCOORD(0,y);
+ z1 = TCOORD(0,y+1);
+ z2 = TCOORD(1,y);
+ trile_draw_vertex(cberg, 0,y,0,
+ cornerx,cornery, z0, z1, z2);
+ trile_draw_vertex(cberg, 0,y,1,
+ cornerx+0.5*dx,cornery+dy, z1, z0, z2);
+
+ for (x = 1; x < cberg->epoints - 1 - y; ++x) {
+ trile_draw_vertex(cberg, x,y,0,
+ cornerx+x*dx,cornery, z2, z1, z0);
+
+ z0 = TCOORD(x, y+1);
+
+ trile_draw_vertex(cberg, x,y,1,
+ cornerx+(x+0.5)*dx,cornery+dy, z0, z2, z1);
+
+ z1 = z0;
+ z0 = z2;
+ z2 = TCOORD(x+1,y);
+ }
+ trile_draw_vertex(cberg, x,y,0,
+ cornerx + x*dx, cornery, z2, z1, z0);
+ glEnd();
+
+ cornerx += dx/2;
+ cornery += dy;
+ }
+
+ if ((new->x + new->y) % 2) /*point down*/
+ glFrontFace(GL_CCW);
+ glEndList();
+}
+
+static Trile *trile_new(cberg_state *cberg, int x,int y,Trile *parent,Trile *root)
+{
+ Trile *new;
+
+ new = trile_alloc(cberg);
+
+ new->x = x;
+ new->y = y;
+ new->state = TRILE_NEW;
+ new->parent = parent;
+ new->left = new->right = NULL;
+ new->visible = 1;
+
+ new->morph = select_morph();
+ new->morph->init(new);
+
+ trile_calc_sides(cberg, new, x, y, root);
+ trile_calc_heights(cberg, new);
+
+ if (lit) {
+ if (flat) trile_calc_flat_norms(cberg, new);
+ else trile_calc_smooth_norms(cberg, new);
+ }
+
+ trile_render(cberg, new);
+ return new;
+}
+
+static Trile *trile_alloc(cberg_state *cberg)
+{
+ Trile *new;
+
+ if (cberg->free_head) {
+ new = cberg->free_head;
+ cberg->free_head = cberg->free_head->next_free;
+ } else {
+ ++cberg->count;
+ if (!(new = malloc(sizeof(Trile)))
+ || !(new->l = (double *) malloc(sizeof(double) * cberg->epoints * 3))) {
+ perror(progname);
+ exit(1);
+ }
+ new->r = new->l + cberg->epoints;
+ new->v = new->r + cberg->epoints;
+#ifdef DEBUG
+ printf("needed to alloc; [%d]\n", cberg->count);
+#endif
+ }
+ return new;
+}
+
+static void trile_free(cberg_state *cberg, Trile *tr)
+{
+ glDeleteLists(tr->call_list, 1);
+ tr->morph->free(tr);
+ tr->next_free = cberg->free_head;
+ cberg->free_head = tr;
+}
+
+
+static void trile_draw_vanilla(Trile *tr)
+{ glCallList(tr->call_list); }
+
+static void trile_draw(Trile *tr, void *ignore)
+{
+ if (tr->state == TRILE_STABLE)
+ trile_draw_vanilla(tr);
+ else
+ tr->morph->draw(tr);
+}
+
+
+/***************************
+ ** Trile morph functions.
+ ** select function at bottom (forward decls sucls)
+ ** */
+
+
+/*** first the basic growing morph */
+
+static void grow_init(Trile *tr)
+{
+ tr->morph_data = (void *) malloc(sizeof(double));
+ *((double *)tr->morph_data) = 0.02; /* not 0; avoid normals crapping */
+}
+
+static void grow_free(Trile *tr)
+{
+ free(tr->morph_data);
+}
+
+static void grow_draw(Trile *tr)
+{
+ glPushMatrix();
+ glScaled(1.0,1.0, *((double *)tr->morph_data));
+ trile_draw_vanilla(tr);
+ glPopMatrix();
+}
+
+static void grow_init_iter(Trile *tr, cberg_state *cberg)
+{
+ *((double *)(tr->morph_data)) = *((double *)tr->morph_data) + cberg->elapsed;
+ if (*((double *)tr->morph_data) >= 1.0)
+ tr->state = TRILE_STABLE;
+}
+
+static void grow_dying_iter(Trile *tr, cberg_state *cberg)
+{
+ *((double *)tr->morph_data) = *((double *)tr->morph_data) - cberg->elapsed;
+ if (*((double *)tr->morph_data) <= 0.02) /* XXX avoid fast del/cons? */
+ tr->state = TRILE_DELETE;
+}
+
+/**** falling morph ****/
+
+static void fall_init(Trile *tr)
+{
+ tr->morph_data = (void *) malloc(sizeof(double));
+ *((double *)tr->morph_data) = 0.0;
+}
+
+static void fall_free(Trile *tr)
+{
+ free(tr->morph_data);
+}
+
+static void fall_draw(Trile *tr)
+{
+ glPushMatrix();
+ glTranslated(0.0,0.0,(0.5 - *((double *)tr->morph_data)) * 8);
+ trile_draw_vanilla(tr);
+ glPopMatrix();
+}
+
+static void fall_init_iter(Trile *tr, cberg_state *cberg)
+{
+ *((double *)(tr->morph_data)) = *((double *)tr->morph_data) + cberg->elapsed;
+ if (*((double *)tr->morph_data) >= 0.5)
+ tr->state = TRILE_STABLE;
+}
+
+static void fall_dying_iter(Trile *tr, cberg_state *cberg)
+{
+ *((double *)tr->morph_data) = *((double *)tr->morph_data) - cberg->elapsed;
+ if (*((double *)tr->morph_data) <= 0.0) /* XXX avoid fast del/cons? */
+ tr->state = TRILE_DELETE;
+}
+
+/**** yeast morph ****/
+
+static void yeast_init(Trile *tr)
+{
+ tr->morph_data = (void *) malloc(sizeof(double));
+ *((double *)tr->morph_data) = 0.02;
+}
+
+static void yeast_free(Trile *tr)
+{
+ free(tr->morph_data);
+}
+
+static void yeast_draw(Trile *tr)
+{
+ double x = tr->x * 0.5,
+ y = tr->y * M_SQRT3_2,
+ z = *((double *)tr->morph_data);
+
+ glPushMatrix();
+ glTranslated(x, y, 0);
+ glRotated(z*360, 0,0,1);
+ glScaled(z,z,z);
+ glTranslated(-x, -y, 0);
+ trile_draw_vanilla(tr);
+ glPopMatrix();
+}
+
+static void yeast_init_iter(Trile *tr, cberg_state *cberg)
+{
+ *((double *)(tr->morph_data)) = *((double *)tr->morph_data) + cberg->elapsed;
+ if (*((double *)tr->morph_data) >= 1.0)
+ tr->state = TRILE_STABLE;
+}
+
+static void yeast_dying_iter(Trile *tr, cberg_state *cberg)
+{
+ *((double *)tr->morph_data) = *((double *)tr->morph_data) - cberg->elapsed;
+ if (*((double *)tr->morph_data) <= 0.02) /* XXX avoid fast del/cons? */
+ tr->state = TRILE_DELETE;
+}
+
+/**** identity morph ****/
+
+static void identity_init(Trile *tr)
+{ tr->state = TRILE_STABLE; }
+
+static void identity_free(Trile *tr)
+{}
+
+static void identity_draw(Trile *tr)
+{ trile_draw_vanilla(tr); }
+
+static void identity_init_iter(Trile *tr, cberg_state *cberg)
+{}
+
+static void identity_dying_iter(Trile *tr, cberg_state *cberg)
+{ tr->state = TRILE_DELETE; }
+
+/** now to handle selection **/
+
+static const Morph morphs[] = {
+ {grow_init, grow_free, grow_draw, grow_init_iter, grow_dying_iter},
+ {fall_init, fall_free, fall_draw, fall_init_iter, fall_dying_iter},
+ {yeast_init, yeast_free, yeast_draw, yeast_init_iter, yeast_dying_iter},
+ {identity_init, /*always put identity last to skip it..*/
+ identity_free, identity_draw, identity_init_iter, identity_dying_iter}
+};
+
+static const Morph *select_morph()
+{
+ int nmorphs = countof(morphs);
+ if (crack)
+ return &morphs[random() % (nmorphs-1)];
+ else if (boring)
+ return &morphs[nmorphs-1];
+ else
+ return morphs;
+}
+
+
+/***************************
+ ** Trile superstructure functions.
+ ** */
+
+
+static void triles_set_visible(cberg_state *cberg, Trile **root, int x, int y)
+{
+ Trile *parent = NULL,
+ *iter = *root;
+ int goleft=0;
+
+ while (iter != NULL) {
+ parent = iter;
+ goleft = (iter->x > x || (iter->x == x && iter->y > y));
+ if (goleft)
+ iter = iter->left;
+ else if (iter->x == x && iter->y == y) {
+ iter->visible = 1;
+ return;
+ } else
+ iter = iter->right;
+ }
+
+ if (parent == NULL)
+ *root = trile_new(cberg, x,y, NULL, NULL);
+ else if (goleft)
+ parent->left = trile_new(cberg, x,y, parent, *root);
+ else
+ parent->right = trile_new(cberg, x,y, parent, *root);
+}
+
+static unsigned int triles_foreach(Trile *root, void (*f)(Trile *, void *),
+ void *data)
+{
+ if (root == NULL)
+ return 0;
+
+ f(root, data);
+ return 1 + triles_foreach(root->left, f, data)
+ + triles_foreach(root->right, f, data);
+}
+
+static void triles_update_state(Trile **root, cberg_state *cberg)
+{
+ int process_current = 1;
+ if (*root == NULL)
+ return;
+
+ while (process_current) {
+ if ( (*root)->visible ) {
+ if ( (*root)->state == TRILE_INIT )
+ (*root)->morph->init_iter(*root, cberg);
+ else if ( (*root)->state == TRILE_DYING ) {
+ (*root)->state = TRILE_INIT;
+ (*root)->morph->init_iter(*root, cberg);
+ } else if ( (*root)->state == TRILE_NEW )
+ (*root)->state = TRILE_INIT;
+
+ (*root)->visible = 0;
+ } else {
+ if ( (*root)->state == TRILE_STABLE )
+ (*root)->state = TRILE_DYING;
+ else if ( (*root)->state == TRILE_INIT ) {
+ (*root)->state = TRILE_DYING;
+ (*root)->morph->dying_iter(*root, cberg);
+ } else if ( (*root)->state == TRILE_DYING )
+ (*root)->morph->dying_iter(*root, cberg);
+ }
+
+ if ( (*root)->state == TRILE_DELETE ) {
+ Trile *splice_me;
+ process_current = 1;
+
+ if ((*root)->left == NULL) {
+ splice_me = (*root)->right;
+ if (splice_me)
+ splice_me->parent = (*root)->parent;
+ else
+ process_current = 0;
+ } else if ((*root)->right == NULL) {
+ splice_me = (*root)->left;
+ splice_me->parent = (*root)->parent;
+ } else {
+ Trile *tmp;
+ for (splice_me = (*root)->right; splice_me->left != NULL; )
+ splice_me = splice_me->left;
+ tmp = splice_me->right;
+
+ if (tmp) tmp->parent = splice_me->parent;
+
+ if (splice_me == splice_me->parent->left)
+ splice_me->parent->left = tmp;
+ else
+ splice_me->parent->right = tmp;
+
+ splice_me->parent = (*root)->parent;
+ splice_me->left = (*root)->left;
+ (*root)->left->parent = splice_me;
+ splice_me->right = (*root)->right;
+ if ((*root)->right)
+ (*root)->right->parent = splice_me;
+ }
+ trile_free(cberg, *root);
+ *root = splice_me;
+ } else
+ process_current = 0;
+ }
+
+ if (*root) {
+ triles_update_state(&((*root)->left), cberg);
+ triles_update_state(&((*root)->right), cberg);
+ }
+}
+
+static Trile *triles_find(Trile *tr, int x, int y)
+{
+ while (tr && !(tr->x == x && tr->y == y))
+ if (x < tr->x || (x == tr->x && y < tr->y))
+ tr = tr->left;
+ else
+ tr = tr->right;
+ return tr;
+}
+
+
+/***************************
+ ** Trile superstructure visibility functions.
+ ** strategy fine, implementation lazy&retarded =/
+ ** */
+
+#ifdef DEBUG
+static double x_shit, y_shit;
+#endif
+
+static void calc_points(cberg_state *cberg, double *x1,double *y1,
+ double *x2,double *y2, double *x3,double *y3, double *x4,double *y4)
+{
+ double zNear, x_nearcenter, y_nearcenter, nhalfwidth, x_center, y_center;
+
+
+ /* could cache these.. bahhhhhhhhhhhhhh */
+ double halfheight = tan(cberg->fovy / 2 * M_PI_180) * cberg->zNear;
+ double fovx_2 = atan(halfheight * cberg->aspect / cberg->zNear) * M_180_PI;
+ double zFar = cberg->zFar + M_RAD7_4;
+ double fhalfwidth = zFar * tan(fovx_2 * M_PI_180)
+ + M_RAD7_4 / cos(fovx_2 * M_PI_180);
+ double x_farcenter = cberg->x + zFar * cos(cberg->yaw * M_PI_180);
+ double y_farcenter = cberg->y + zFar * sin(cberg->yaw * M_PI_180);
+ *x1 = x_farcenter + fhalfwidth * cos((cberg->yaw - 90) * M_PI_180);
+ *y1 = y_farcenter + fhalfwidth * sin((cberg->yaw - 90) * M_PI_180);
+ *x2 = x_farcenter - fhalfwidth * cos((cberg->yaw - 90) * M_PI_180);
+ *y2 = y_farcenter - fhalfwidth * sin((cberg->yaw - 90) * M_PI_180);
+
+#ifdef DEBUG
+ printf("pos (%.3f,%.3f) @ %.3f || fovx: %f || fovy: %f\n",
+ cberg->x, cberg->y, cberg->yaw, fovx_2 * 2, cberg->fovy);
+ printf("\tfarcenter: (%.3f,%.3f) || fhalfwidth: %.3f \n"
+ "\tp1: (%.3f,%.3f) || p2: (%.3f,%.3f)\n",
+ x_farcenter, y_farcenter, fhalfwidth, *x1, *y1, *x2, *y2);
+#endif
+
+ if (cberg->z - halfheight <= 0) /* near view plane hits xy */
+ zNear = cberg->zNear - M_RAD7_4;
+ else /* use bottom of frustum */
+ zNear = cberg->z / tan(cberg->fovy / 2 * M_PI_180) - M_RAD7_4;
+ nhalfwidth = zNear * tan(fovx_2 * M_PI_180)
+ + M_RAD7_4 / cos(fovx_2 * M_PI_180);
+ x_nearcenter = cberg->x + zNear * cos(cberg->yaw * M_PI_180);
+ y_nearcenter = cberg->y + zNear * sin(cberg->yaw * M_PI_180);
+ *x3 = x_nearcenter - nhalfwidth * cos((cberg->yaw - 90) * M_PI_180);
+ *y3 = y_nearcenter - nhalfwidth * sin((cberg->yaw - 90) * M_PI_180);
+ *x4 = x_nearcenter + nhalfwidth * cos((cberg->yaw - 90) * M_PI_180);
+ *y4 = y_nearcenter + nhalfwidth * sin((cberg->yaw - 90) * M_PI_180);
+
+#ifdef DEBUG
+ printf("\tnearcenter: (%.3f,%.3f) || nhalfwidth: %.3f\n"
+ "\tp3: (%.3f,%.3f) || p4: (%.3f,%.3f)\n",
+ x_nearcenter, y_nearcenter, nhalfwidth, *x3, *y3, *x4, *y4);
+#endif
+
+
+ /* center can be average or the intersection of diagonals.. */
+#if 0
+ {
+ double c = nhalfwidth * (zFar -zNear) / (fhalfwidth + nhalfwidth);
+ x_center = x_nearcenter + c * cos(cberg->yaw * M_PI_180);
+ y_center = y_nearcenter + c * sin(cberg->yaw * M_PI_180);
+ }
+#else
+ x_center = (x_nearcenter + x_farcenter) / 2;
+ y_center = (y_nearcenter + y_farcenter) / 2;
+#endif
+#ifdef DEBUG
+ x_shit = x_center;
+ y_shit = y_center;
+#endif
+
+#define VSCALE(p) *x##p = visibility * *x##p + (1-visibility) * x_center; \
+ *y##p = visibility * *y##p + (1-visibility) * y_center
+
+ VSCALE(1);
+ VSCALE(2);
+ VSCALE(3);
+ VSCALE(4);
+#undef VSCALE
+}
+
+/* this is pretty stupid.. */
+static inline void minmax4(double a, double b, double c, double d,
+ double *min, double *max)
+{
+ *min = *max = a;
+
+ if (b > *max) *max = b;
+ else if (b < *min) *min = b;
+ if (c > *max) *max = c;
+ else if (c < *min) *min = c;
+ if (d > *max) *max = d;
+ else if (d < *min) *min = d;
+}
+
+typedef struct {
+ double min, max, start, dx;
+} LS;
+
+#define check_line(a, b) \
+ if (fabs(y##a-y##b) > 0.001) { \
+ ls[count].dx = (x##b-x##a)/(y##b-y##a); \
+ if (y##b > y##a) { \
+ ls[count].start = x##a; \
+ ls[count].min = y##a; \
+ ls[count].max = y##b; \
+ } else { \
+ ls[count].start = x##b; \
+ ls[count].min = y##b; \
+ ls[count].max = y##a; \
+ } \
+ ++count; \
+ }
+
+static unsigned int build_ls(cberg_state *cberg,
+ double x1, double y1, double x2, double y2,
+ double x3, double y3, double x4, double y4, LS *ls,
+ double *trough, double *peak)
+{
+ unsigned int count = 0;
+
+ check_line(1, 2);
+ check_line(2, 3);
+ check_line(3, 4);
+ check_line(4, 1);
+
+ minmax4(y1, y2, y3, y4, trough, peak);
+ return count;
+}
+
+#undef check_line
+
+/*needs bullshit to avoid double counts on corners.*/
+static void find_bounds(double y, double *left, double *right, LS *ls,
+ unsigned int nls)
+{
+ double x;
+ unsigned int i, set = 0;
+
+ for (i = 0; i != nls; ++i)
+ if (ls[i].min <= y && ls[i].max >= y) {
+ x = (y - ls[i].min) * ls[i].dx + ls[i].start;
+ if (!set) {
+ *left = x;
+ ++set;
+ } else if (fabs(x - *left) > 0.001) {
+ if (*left < x)
+ *right = x;
+ else {
+ *right = *left;
+ *left = x;
+ }
+ return;
+ }
+ }
+
+ /* just in case we somehow blew up */
+ *left = 3.0;
+ *right = -3.0;
+}
+
+static void mark_visible(cberg_state *cberg)
+{
+ double trough, peak, yval, left=0, right=0;
+ double x1,y1, x2,y2, x3,y3, x4,y4;
+ int start, stop, x, y;
+ LS ls[4];
+ unsigned int nls;
+
+ calc_points(cberg, &x1,&y1, &x2,&y2, &x3,&y3, &x4,&y4);
+ nls = build_ls(cberg, x1,y1, x2,y2, x3,y3, x4,y4, ls, &trough, &peak);
+
+ start = (int) ceil(trough / M_SQRT3_2);
+ stop = (int) floor(peak / M_SQRT3_2);
+
+ for (y = start; y <= stop; ++y) {
+ yval = y * M_SQRT3_2;
+ find_bounds(yval, &left, &right, ls, nls);
+ for (x = (int) ceil(left*2-1); x <= (int) floor(right*2); ++x)
+ triles_set_visible(cberg, &(cberg->trile_head), x, y);
+ }
+}
+
+
+/***************************
+ ** color schemes
+ ** */
+
+static void plain_land(cberg_state *cberg, double z)
+{ glColor3f(pow((z/0.35),4), z/0.35, pow((z/0.35),4)); }
+static void plain_water(cberg_state *cberg, double z)
+{ glColor3f(0.0, (z+0.35)*1.6, 0.8); }
+
+static void ice_land(cberg_state *cberg, double z)
+{ glColor3f((0.35 - z)/0.35, (0.35 - z)/0.35, 1.0); }
+static void ice_water(cberg_state *cberg, double z)
+{ glColor3f(0.0, (z+0.35)*1.6, 0.8); }
+
+
+static void magma_land(cberg_state *cberg, double z)
+{ glColor3f(z/0.35, z/0.2,0); }
+static void magma_lava(cberg_state *cberg, double z)
+{ glColor3f((z+0.35)*1.6, (z+0.35), 0.0); }
+
+static void vomit_solid(cberg_state *cberg, double z)
+{
+ double norm = fabs(z) / 0.35;
+ glColor3f(
+ (1-norm) * cberg->vs0r + norm * cberg->vs1r,
+ (1-norm) * cberg->vs0g + norm * cberg->vs1g,
+ (1-norm) * cberg->vs0b + norm * cberg->vs1b
+ );
+}
+static void vomit_fluid(cberg_state *cberg, double z)
+{
+ double norm = z / -0.35;
+ glColor3f(
+ (1-norm) * cberg->vf0r + norm * cberg->vf1r,
+ (1-norm) * cberg->vf0g + norm * cberg->vf1g,
+ (1-norm) * cberg->vf0b + norm * cberg->vf1b
+ );
+}
+
+
+static const Color colors[] = {
+ {"plain", plain_land, plain_water, {0.0, 0.0, 0.0, 1.0}},
+ {"ice", ice_land, ice_water, {0.0, 0.0, 0.0, 1.0}},
+ {"magma", magma_land, magma_lava, {0.3, 0.3, 0.0, 1.0}},
+ {"vomit", vomit_solid, vomit_fluid, {0.3, 0.3, 0.0, 1.0}}, /* no error! */
+};
+
+static const Color *select_color(cberg_state *cberg)
+{
+ unsigned int ncolors = countof(colors);
+ int idx = -1;
+ if ( ! strcmp(color, "random") )
+ idx = random() % ncolors;
+ else {
+ unsigned int i;
+ for (i = 0; i != ncolors; ++i)
+ if ( ! strcmp(colors[i].id, color) ) {
+ idx = i;
+ break;
+ }
+
+ if (idx == -1) {
+ printf("invalid color scheme selected; valid choices are:\n");
+ for (i = 0; i != ncolors; ++i)
+ printf("\t%s\n", colors[i].id);
+ printf("\t%s\n", "random");
+ idx = 0;
+ }
+ }
+
+ if ( ! strcmp(colors[idx].id, "vomit") ) { /* need to create it (ghetto) */
+ cberg->vs0r = random()/(double)RAND_MAX;
+ cberg->vs0g = random()/(double)RAND_MAX;
+ cberg->vs0b = random()/(double)RAND_MAX;
+ cberg->vs1r = random()/(double)RAND_MAX;
+ cberg->vs1g = random()/(double)RAND_MAX;
+ cberg->vs1b = random()/(double)RAND_MAX;
+ cberg->vf0r = random()/(double)RAND_MAX;
+ cberg->vf0g = random()/(double)RAND_MAX;
+ cberg->vf0b = random()/(double)RAND_MAX;
+ cberg->vf1r = random()/(double)RAND_MAX;
+ cberg->vf1g = random()/(double)RAND_MAX;
+ cberg->vf1b = random()/(double)RAND_MAX;
+
+ glClearColor(random()/(double)RAND_MAX,
+ random()/(double)RAND_MAX,
+ random()/(double)RAND_MAX,
+ 1.0);
+ } else {
+ glClearColor(colors[idx].bg[0],
+ colors[idx].bg[1],
+ colors[idx].bg[2],
+ colors[idx].bg[3]);
+ }
+ return colors + idx;
+}
+
+
+/***************************
+ ** misc helper functions
+ ** */
+
+
+/* simple one for now.. */
+static inline double drunken_rando(double cur_val, double max, double width)
+{
+ double r = random() / (double) RAND_MAX * 2;
+ if (cur_val > 0)
+ if (r >= 1)
+ return cur_val + (r-1) * width * (1-cur_val/max);
+ else
+ return cur_val - r * width;
+ else
+ if (r >= 1)
+ return cur_val - (r-1) * width * (1+cur_val/max);
+ else
+ return cur_val + r * width;
+}
+
+
+/***************************
+ ** core crackberg routines
+ ** */
+
+ENTRYPOINT void reshape_crackberg (ModeInfo *mi, int w, int h);
+
+ENTRYPOINT void init_crackberg (ModeInfo *mi)
+{
+ cberg_state *cberg;
+
+ nsubdivs %= 16; /* just in case.. */
+
+ MI_INIT(mi, cbergs);
+
+ if (visibility > 1.0 || visibility < 0.2) {
+ printf("visibility must be in range [0.2 .. 1.0]\n");
+ visibility = 1.0;
+ }
+
+ cberg = &cbergs[MI_SCREEN(mi)];
+
+ cberg->epoints = 1 + (1 << nsubdivs);
+ cberg->tpoints = cberg->epoints * (cberg->epoints + 1) / 2;
+ cberg->ntris = (1 << (nsubdivs << 1));
+ cberg->tnorms = ( (flat) ? cberg->ntris : cberg->tpoints);
+ cberg->dx0 = 1.0 / (1 << nsubdivs);
+
+ cberg->heights = malloc(cberg->tpoints * sizeof(double));
+ cberg->norms = malloc(3 * cberg->tnorms * sizeof(double));
+
+ cberg->glx_context = init_GL(mi);
+ cberg->motion_state = MOTION_AUTO;
+ cberg->mspeed = 1.0;
+ cberg->z = 0.5;
+
+ cberg->fovy = 60.0;
+ cberg->zNear = 0.5;
+ cberg->zFar = 5.0;
+
+ cberg->draw_elapsed = 1.0;
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glShadeModel((flat) ? GL_FLAT : GL_SMOOTH);
+# ifndef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ glPolygonMode(GL_FRONT_AND_BACK, (MI_IS_WIREFRAME(mi)) ? GL_LINE : GL_FILL);
+# endif
+
+ if (lit) {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_COLOR_MATERIAL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
+ glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_RESCALE_NORMAL);
+ }
+
+ cberg->color = select_color(cberg);
+
+ reshape_crackberg(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+ENTRYPOINT void reshape_crackberg (ModeInfo *mi, int w, int h)
+{
+ int h2;
+ cberg_state *cberg = &cbergs[MI_SCREEN(mi)];
+
+ if (letterbox && (h2 = w * 9 / 16) < h) {
+ glViewport(0, (h-h2)/2, w, h2);
+ cberg->aspect = w/(double)h2;
+ } else {
+ glViewport (0, 0, w, h);
+ cberg->aspect = w/(double)h;
+ }
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(cberg->fovy, cberg->aspect, cberg->zNear, cberg->zFar);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+ENTRYPOINT Bool crackberg_handle_event (ModeInfo *mi, XEvent *ev)
+{
+ cberg_state *cberg = &cbergs[MI_SCREEN(mi)];
+ KeySym keysym = 0;
+ char c = 0;
+ if (ev->xany.type == KeyPress || ev->xany.type == KeyRelease)
+ XLookupString (&ev->xkey, &c, 1, &keysym, 0);
+
+ if (ev->xany.type == KeyPress) {
+ switch (keysym) {
+ case XK_Left: cberg->motion_state |= MOTION_LROT; break;
+ case XK_Prior: cberg->motion_state |= MOTION_LROT; break;
+ case XK_Right: cberg->motion_state |= MOTION_RROT; break;
+ case XK_Next: cberg->motion_state |= MOTION_RROT; break;
+ case XK_Down: cberg->motion_state |= MOTION_BACK; break;
+ case XK_Up: cberg->motion_state |= MOTION_FORW; break;
+ case '1': cberg->motion_state |= MOTION_DEC; break;
+ case '2': cberg->motion_state |= MOTION_INC; break;
+ case 'a': cberg->motion_state |= MOTION_LEFT; break;
+ case 'd': cberg->motion_state |= MOTION_RIGHT; break;
+ case 's': cberg->motion_state |= MOTION_BACK; break;
+ case 'w': cberg->motion_state |= MOTION_FORW; break;
+ default: return False;
+ }
+ cberg->motion_state |= MOTION_MANUAL;
+ } else if (ev->xany.type == KeyRelease) {
+#if 0
+ XEvent peek_ev;
+ if (XPending(mi->dpy)) {
+ XPeekEvent(mi->dpy, &peek_ev);
+ if (peek_ev.type == KeyPress
+ && peek_ev.xkey.keycode == ev->xkey.keycode
+ && peek_ev.xkey.time - ev->xkey.time < 2) {
+ XNextEvent(mi->dpy, &peek_ev); /* drop bullshit repeat events */
+ return False;
+ }
+ }
+#endif
+
+ switch (keysym) {
+ case XK_Left: cberg->motion_state &= ~MOTION_LROT; break;
+ case XK_Prior: cberg->motion_state &= ~MOTION_LROT; break;
+ case XK_Right: cberg->motion_state &= ~MOTION_RROT; break;
+ case XK_Next: cberg->motion_state &= ~MOTION_RROT; break;
+ case XK_Down: cberg->motion_state &= ~MOTION_BACK; break;
+ case XK_Up: cberg->motion_state &= ~MOTION_FORW; break;
+ case '1': cberg->motion_state &= ~MOTION_DEC; break;
+ case '2': cberg->motion_state &= ~MOTION_INC; break;
+ case 'a': cberg->motion_state &= ~MOTION_LEFT; break;
+ case 'd': cberg->motion_state &= ~MOTION_RIGHT; break;
+ case 's': cberg->motion_state &= ~MOTION_BACK; break;
+ case 'w': cberg->motion_state &= ~MOTION_FORW; break;
+ case ' ':
+ if (cberg->motion_state == MOTION_MANUAL)
+ cberg->motion_state = MOTION_AUTO;
+ break;
+ default: return False;
+ }
+ } else if (ev->xany.type == ButtonPress &&
+ ev->xbutton.button == Button1) {
+ cberg->button_down_p = True;
+ cberg->mouse_x = ev->xbutton.x;
+ cberg->mouse_y = ev->xbutton.y;
+ cberg->motion_state = MOTION_MANUAL;
+ cberg->paused.tv_sec = 0;
+ } else if (ev->xany.type == ButtonRelease &&
+ ev->xbutton.button == Button1) {
+ cberg->button_down_p = False;
+ cberg->motion_state = MOTION_AUTO;
+ /* After mouse-up, don't go back into auto-motion mode for a second, so
+ that repeated click-and-drag gestures don't fight with auto-motion. */
+ gettimeofday(&cberg->paused, NULL);
+ } else if (ev->xany.type == MotionNotify &&
+ cberg->button_down_p) {
+ int dx = ev->xmotion.x - cberg->mouse_x;
+ int dy = ev->xmotion.y - cberg->mouse_y;
+ cberg->mouse_x = ev->xmotion.x;
+ cberg->mouse_y = ev->xmotion.y;
+ cberg->motion_state = MOTION_MANUAL;
+
+ /* Take the larger dimension, since motion_state doesn't scale */
+ if (dx > 0 && dx > dy) dy = 0;
+ if (dx < 0 && dx < dy) dy = 0;
+ if (dy > 0 && dy > dx) dx = 0;
+ if (dy < 0 && dy < dx) dx = 0;
+
+ {
+ int rot = current_device_rotation();
+ int swap;
+ while (rot <= -180) rot += 360;
+ while (rot > 180) rot -= 360;
+ if (rot > 135 || rot < -135) /* 180 */
+ dx = -dx, dy = -dy;
+ else if (rot > 45) /* 90 */
+ swap = dx, dx = -dy, dy = swap;
+ else if (rot < -45) /* 270 */
+ swap = dx, dx = dy, dy = -swap;
+ }
+
+ if (dx > 0) cberg->motion_state |= MOTION_LEFT;
+ else if (dx < 0) cberg->motion_state |= MOTION_RIGHT;
+ else if (dy > 0) cberg->motion_state |= MOTION_FORW;
+ else if (dy < 0) cberg->motion_state |= MOTION_BACK;
+ } else
+ return False;
+ return True;
+}
+
+ENTRYPOINT void draw_crackberg (ModeInfo *mi)
+{
+ cberg_state *cberg = &cbergs[MI_SCREEN(mi)];
+ struct timeval cur_frame_t;
+ double cur_frame;
+ static const float lpos[] = {2.0,0.0,-0.3,0.0};
+
+ if (!cberg->glx_context) /*XXX does this get externally tweaked? it kinda*/
+ return; /*XXX can't.. check it in crackberg_init*/
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cberg->glx_context));
+
+ gettimeofday(&cur_frame_t, NULL);
+ cur_frame = cur_frame_t.tv_sec + cur_frame_t.tv_usec / 1.0E6;
+ if ( cberg->prev_frame ) { /*not first run */
+
+ cberg->elapsed = cur_frame - cberg->prev_frame;
+
+ if (cberg->motion_state == MOTION_AUTO &&
+ cberg->paused.tv_sec < cur_frame_t.tv_sec) {
+ cberg->x += cberg->dx * cberg->elapsed;
+ cberg->y += cberg->dy * cberg->elapsed;
+ /* cberg->z */
+ /* cberg->pitch */
+ /* cberg->roll */
+ cberg->yaw += cberg->dyaw * cberg->elapsed;
+
+ cberg->draw_elapsed += cberg->elapsed;
+ if (cberg->draw_elapsed >= 0.8) {
+ cberg->draw_elapsed = 0.0;
+ cberg->dx = drunken_rando(cberg->dx, 2.5, 0.8);
+ cberg->dy = drunken_rando(cberg->dy, 2.5, 0.8);
+ /* cberg->dz */
+ /* cberg->dpitch */
+ /* cberg->droll */
+ cberg->dyaw = drunken_rando(cberg->dyaw, 40.0, 8.0);
+ }
+ } else {
+ double scale = cberg->elapsed * cberg->mspeed;
+ if (cberg->motion_state & MOTION_BACK) {
+ cberg->x -= cos(cberg->yaw * M_PI_180) * scale;
+ cberg->y -= sin(cberg->yaw * M_PI_180) * scale;
+ }
+ if (cberg->motion_state & MOTION_FORW) {
+ cberg->x += cos(cberg->yaw * M_PI_180) * scale;
+ cberg->y += sin(cberg->yaw * M_PI_180) * scale;
+ }
+
+ if (cberg->motion_state & MOTION_LEFT) {
+ cberg->x -= sin(cberg->yaw * M_PI_180) * scale;
+ cberg->y += cos(cberg->yaw * M_PI_180) * scale;
+ }
+ if (cberg->motion_state & MOTION_RIGHT) {
+ cberg->x += sin(cberg->yaw * M_PI_180) * scale;
+ cberg->y -= cos(cberg->yaw * M_PI_180) * scale;
+ }
+
+ if (cberg->motion_state & MOTION_LROT)
+ cberg->yaw += 45 * scale;
+ if (cberg->motion_state & MOTION_RROT)
+ cberg->yaw -= 45 * scale;
+
+ if (cberg->motion_state & MOTION_DEC)
+ cberg->mspeed /= pow(MSPEED_SCALE, cberg->draw_elapsed);
+ if (cberg->motion_state & MOTION_INC)
+ cberg->mspeed *= pow(MSPEED_SCALE, cberg->draw_elapsed);
+
+ }
+ }
+ cberg->prev_frame = cur_frame;
+
+ mark_visible(cberg);
+ triles_update_state(&(cberg->trile_head), cberg);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ gluLookAt(0,0,0, 1,0,0, 0,0,1);
+ glLightfv(GL_LIGHT0, GL_POSITION, lpos);
+ /*glRotated(cberg->roll, 1,0,0); / * XXX blah broken and unused for now..* /
+ glRotated(cberg->pitch, 0,1,0); */
+ glRotated(-cberg->yaw, 0,0,1); /* camera sees ->yaw over */
+ glTranslated(-cberg->x, -cberg->y, -cberg->z);
+
+ mi->polygon_count = cberg->ntris *
+ triles_foreach(cberg->trile_head, trile_draw,(void *) cberg);
+
+ if (mi->fps_p)
+ do_fps(mi);
+
+#ifdef DEBUG
+ glBegin(GL_LINES);
+ glColor3f(1.0,0.0,0.0);
+ glVertex3d(x_shit, y_shit, 0.0);
+ glVertex3d(x_shit, y_shit, 1.0);
+ glEnd();
+#endif
+
+ glFinish();
+ glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
+}
+
+/* uh */
+ENTRYPOINT void free_crackberg (ModeInfo *mi)
+{
+ cberg_state *cberg = &cbergs[MI_SCREEN(mi)];
+ if (cberg->norms)
+ free(cberg->norms);
+ free(cberg->heights);
+}
+
+XSCREENSAVER_MODULE ("Crackberg", crackberg)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/crackberg.man b/hacks/glx/crackberg.man
new file mode 100644
index 0000000..5183baa
--- /dev/null
+++ b/hacks/glx/crackberg.man
@@ -0,0 +1,123 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+crackberg - Lose your way wandering some height fields, and enjoy candy.
+.SH SYNOPSIS
+.B crackberg
+[\-root]
+[\-window]
+[\-install]
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window-id \fIid\fP]
+[\-delay \fIusecs\fP]
+[\-fps]
+[\-crack]
+[\-lit]
+[\-boring]
+[\-letterbox]
+[\-flat]
+[\-wire]
+[\-nowater]
+[\-visibility \fIfloat\fP]
+[\-color \fIstring\fP]
+[\-nsubdivs \fIinteger\fP]
+.SH DESCRIPTION
+Flies through height maps, optionally animating the instantiation and
+destruction of generated tiles; by default, tiles 'grow' into place (height
+gradually increased up to correct value). In windowed mode the following key
+controls are available:
+.TP 8
+.B left, right
+Turn left and right.
+.TP 8
+.B a,w,s,d
+Move left, forwards, backwards, and to the right, respectively.
+.TP 8
+.B 1,2
+Decrease and increase manual speed, respectively.
+.TP 8
+.B Spacebar
+Return to automatic control.
+.SH OPTIONS
+.I crackberg
+accepts the following options:
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class, or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+Delay between frames; default 20000 (1/50th of a second).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-crack
+Use all possible methods to animate tile instantiation.
+.TP 8
+.B \-boring
+Do not animate instatiation at all; use this to get standard landscape
+generator behavior.
+.TP 8
+.B \-letterbox
+Drawable window region has a 16:9 aspect ratio, regardless of actual
+window size.
+.TP 8
+.B \-lit
+Enable lighting.
+.TP 8
+.B \-flat
+Flat shading (OpenGL will use one color per primitive, rather than
+interpolating betwixt vertices).
+.TP 8
+.B \-wire
+Wireframe.
+.TP 8
+.B \-nowater
+Do not display 'water' (forces negative values to zero, and selects a
+different coloring method).
+.TP 8
+.B \-visibility \fIfloat\fP
+Value in range [0.2,1.0] (default 0.6) specifying proportion of viewable
+XY plane which is to be drawn upon.
+.TP 8
+.B \-color \fIstring\fP
+Selects color scheme. Use with no or bogus argument for current list.
+.TP 8
+.B \-nsubdivs \fIinteger\fP
+Number of times to recursively subdivide each triangular tile. Each
+increment increases total triangles by a factor of 4; for instance the default
+setting 4 results in 256 triangles per tile.
+
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2005 by Matus Telgarsky. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Matus Telgarsky <catachresis@cmu.edu>, 2005.
diff --git a/hacks/glx/crumbler.c b/hacks/glx/crumbler.c
new file mode 100644
index 0000000..8e783db
--- /dev/null
+++ b/hacks/glx/crumbler.c
@@ -0,0 +1,875 @@
+/* crumbler, Copyright (c) 2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_crumbler 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "quickhull.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_DENSITY "1.0"
+#define DEF_FRACTURE "0"
+
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+typedef struct {
+ qh_vertex_t *verts; /* interior point cloud */
+ int nverts, onverts;
+ qh_vertex_t min, max; /* enclosing box */
+ qh_vertex_t mid, vec;
+ int polygon_count;
+ GLuint dlist;
+ int color;
+ int color_shift;
+} chunk;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ enum { IDLE, SPLIT, PAUSE, FLEE, ZOOM } state;
+ GLfloat tick;
+ Bool button_down_p;
+ int nchunks;
+ chunk **chunks;
+ chunk *ghost;
+
+ int ncolors;
+ XColor *colors;
+} crumbler_configuration;
+
+static crumbler_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static GLfloat density;
+static int fracture;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-density", ".density", XrmoptionSepArg, 0 },
+ { "-fracture",".fracture",XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" }
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&density, "density", "Density", DEF_DENSITY, t_Float},
+ {&fracture, "fracture","Fracture",DEF_FRACTURE,t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt crumbler_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Create a roughly spherical cloud of N random points.
+ */
+static void
+make_point_cloud (qh_vertex_t *verts, int nverts)
+{
+ int i = 0;
+ while (i < nverts)
+ {
+ verts[i].x = (0.5 - frand(1.0));
+ verts[i].y = (0.5 - frand(1.0));
+ verts[i].z = (0.5 - frand(1.0));
+ if ((verts[i].x * verts[i].x +
+ verts[i].y * verts[i].y +
+ verts[i].z * verts[i].z)
+ < 0.25)
+ i++;
+ }
+}
+
+
+static chunk *
+make_chunk (void)
+{
+ chunk *c = (chunk *) calloc (1, sizeof(*c));
+ c->dlist = glGenLists (1);
+ c->color_shift = 1 + (random() % 3) * RANDSIGN();
+ return c;
+}
+
+static void
+render_chunk (ModeInfo *mi, chunk *c)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ int i, j;
+ qh_mesh_t m;
+ GLfloat d;
+
+ if (c->nverts <= 3)
+ {
+ fprintf (stderr, "%s: nverts %d\n", progname, c->nverts);
+ abort();
+ }
+
+ c->polygon_count = 0;
+ c->min.x = c->min.y = c->min.z = 999999;
+ c->max.x = c->max.y = c->max.z = -999999;
+
+ for (i = 0; i < c->nverts; i++)
+ {
+ if (c->verts[i].x < c->min.x) c->min.x = c->verts[i].x;
+ if (c->verts[i].y < c->min.y) c->min.y = c->verts[i].y;
+ if (c->verts[i].z < c->min.z) c->min.z = c->verts[i].z;
+ if (c->verts[i].x > c->max.x) c->max.x = c->verts[i].x;
+ if (c->verts[i].y > c->max.y) c->max.y = c->verts[i].y;
+ if (c->verts[i].z > c->max.z) c->max.z = c->verts[i].z;
+ }
+
+ c->mid.x = (c->max.x + c->min.x) / 2;
+ c->mid.y = (c->max.y + c->min.y) / 2;
+ c->mid.z = (c->max.z + c->min.z) / 2;
+
+ /* midpoint as normalized vector from origin */
+ d = sqrt (c->mid.x * c->mid.x +
+ c->mid.y * c->mid.y +
+ c->mid.z * c->mid.z);
+ c->vec.x = c->mid.x / d;
+ c->vec.y = c->mid.y / d;
+ c->vec.z = c->mid.z / d;
+
+ if (c->nverts <= 3)
+ {
+ fprintf (stderr, "%s: nverts %d\n", progname, c->nverts);
+ abort();
+ }
+
+ m = qh_quickhull3d (c->verts, c->nverts);
+
+ glNewList (c->dlist, GL_COMPILE);
+ if (! wire) glBegin (GL_TRIANGLES);
+ for (i = 0, j = 0; i < m.nindices; i += 3, j++)
+ {
+ qh_vertex_t *v0 = &m.vertices[m.indices[i+0]];
+ qh_vertex_t *v1 = &m.vertices[m.indices[i+1]];
+ qh_vertex_t *v2 = &m.vertices[m.indices[i+2]];
+ qh_vec3_t *n = &m.normals[m.normalindices[j]];
+
+ if (i+2 >= m.nindices) abort();
+ if (j >= m.nnormals) abort();
+
+ glNormal3f (n->x, n->y, n->z);
+ if (wire) glBegin(GL_LINE_LOOP);
+ glVertex3f (v0->x, v0->y, v0->z);
+ glVertex3f (v1->x, v1->y, v1->z);
+ glVertex3f (v2->x, v2->y, v2->z);
+ if (wire) glEnd();
+ c->polygon_count++;
+ }
+ if (! wire) glEnd();
+
+ if (wire)
+ {
+ glPointSize (1);
+ glColor3f (0, 1, 0);
+ glBegin (GL_POINTS);
+ for (i = 0; i < c->nverts; i++)
+ {
+ if (i > 0 && i == c->onverts)
+ {
+ glEnd();
+ glColor3f (1, 0, 0);
+ glBegin (GL_POINTS);
+ }
+ glVertex3f (c->verts[i].x, c->verts[i].y, c->verts[i].z);
+ }
+ glEnd();
+ }
+
+ glEndList();
+
+ qh_free_mesh (m);
+}
+
+
+static void
+free_chunk (chunk *c)
+{
+ if (c->dlist)
+ glDeleteLists (c->dlist, 1);
+ free (c->verts);
+ free (c);
+}
+
+
+/* Make sure the chunk contains at least N points.
+ As we subdivide, the number of points is reduced.
+ This adds new points to the interior that do not
+ affect the shape of the outer hull.
+ */
+static void
+pad_chunk (chunk *c, int min)
+{
+ /* Allocate a new array of size N
+ Copy the old points into it
+ while size < N
+ pick two random points
+ add a point that is somewhere along the line between them
+ (that point will still be inside the old hull)
+ */
+ qh_vertex_t *verts;
+ int i;
+ if (c->nverts >= min) return;
+ if (c->nverts <= 3) abort();
+ verts = (qh_vertex_t *) calloc (min, sizeof(*verts));
+ if (!verts) abort();
+ memcpy (verts, c->verts, c->nverts * sizeof(*verts));
+ i = c->nverts;
+ while (i < min)
+ {
+ qh_vertex_t v;
+ int j0, j1;
+ GLfloat r;
+ j0 = random() % c->nverts;
+ do {
+ j1 = random() % c->nverts;
+ } while (j0 == j1);
+
+ r = 0.2 + frand(0.6);
+# undef R
+# define R(F) v.F = c->verts[j0].F + \
+ r * (fabs (c->verts[j1].F - c->verts[j0].F)) \
+ * (c->verts[j0].F > c->verts[j1].F ? -1 : 1)
+ R(x);
+ R(y);
+ R(z);
+# undef R
+
+ /* Sometimes quickhull.c is giving us concave and un-closed polygons.
+ Maybe it gets confused if there are duplicate points? So reject
+ this point if it is within epsilon of any earlier point.
+ */
+# if 0 /* Nope, that's not it. */
+ {
+ Bool ok = True;
+ int j;
+ for (j = 0; j < i; j++)
+ {
+
+ double X = c->verts[j].x - v.x;
+ double Y = c->verts[j].y - v.y;
+ double Z = c->verts[j].z - v.z;
+ double d2 = X*X + Y*Y + Z*Z;
+ if (d2 < 0.0001)
+ {
+ /* fprintf (stderr, "## REJ %f\n",d2); */
+ ok = False;
+ break;
+ }
+ }
+ if (! ok) continue;
+ }
+# endif
+
+ verts[i++] = v;
+ }
+
+#if 0
+ fprintf (stdout, " int n = %d;\n", min);
+ fprintf (stdout, " qh_vertex_t v[] = {");
+ for (i = 0; i < min; i++)
+ fprintf(stdout,"{%f,%f,%f},", verts[i].x, verts[i].y, verts[i].z);
+ fprintf (stdout, "};\n\n");
+#endif
+
+ free (c->verts);
+ c->verts = verts;
+ c->onverts = c->nverts;
+ c->nverts = min;
+
+#if 0
+ qh_vertex_t *verts2 = (qh_vertex_t *) calloc (n, sizeof(*verts2));
+ memcpy (verts2, v, n * sizeof(*verts2));
+ free (c->verts);
+ c->verts = verts2;
+ c->onverts = 0;
+ c->nverts = n;
+#endif
+}
+
+
+/* Returns a list of N new chunks.
+ */
+static chunk **
+split_chunk (ModeInfo *mi, chunk *c, int nchunks)
+{
+ /* Pick N key-points from the cloud.
+ Create N new chunks.
+ For each old point:
+ It goes in chunk N if it is closest to key-point N.
+ Free old chunk.
+ for each new chunk
+ render_chunk
+ */
+ crumbler_configuration *bp = &bps[MI_SCREEN(mi)];
+ chunk **chunks;
+ int *keys;
+ int i, j;
+ int retries = 0;
+
+ RETRY:
+ chunks = (chunk **) calloc (nchunks, sizeof(*chunks));
+ keys = (int *) calloc (nchunks, sizeof(*keys));
+
+ for (i = 0; i < nchunks; i++)
+ {
+ /* Fill keys with random numbers that are not duplicates. */
+ Bool ok = True;
+ chunk *c2 = 0;
+ if (nchunks >= c->nverts)
+ {
+ fprintf (stderr, "%s: nverts %d nchunks %d\n", progname,
+ c->nverts, nchunks);
+ abort();
+ }
+ do {
+ keys[i] = random() % c->nverts;
+ ok = True;
+ for (j = 0; j < i; j++)
+ if (keys[i] == keys[j])
+ {
+ ok = False;
+ break;
+ }
+ } while (!ok);
+
+ c2 = make_chunk();
+ chunks[i] = c2;
+ chunks[i]->nverts = 0;
+ c2->verts = (qh_vertex_t *) calloc (c->nverts, sizeof(*c2->verts));
+ c2->color = (c->color + (random() % (1 + (bp->ncolors / 3))))
+ % bp->ncolors;
+ }
+
+ /* Add the verts to the approprate chunks
+ */
+ for (i = 0; i < c->nverts; i++)
+ {
+ qh_vertex_t *v0 = &c->verts[i];
+ int target_chunk = -1;
+ double target_d2 = 9999999;
+ chunk *c2 = 0;
+
+ for (j = 0; j < nchunks; j++)
+ {
+ qh_vertex_t *v1 = &c->verts[keys[j]];
+ double X = v1->x - v0->x;
+ double Y = v1->y - v0->y;
+ double Z = v1->z - v0->z;
+ double d2 = X*X + Y*Y + Z*Z;
+ if (d2 < target_d2)
+ {
+ target_d2 = d2;
+ target_chunk = j;
+ }
+ }
+ if (target_chunk == -1) abort();
+
+ c2 = chunks[target_chunk];
+ c2->verts[c2->nverts++] = *v0;
+ if (c2->nverts > c->nverts) abort();
+ }
+
+ free (keys);
+ keys = 0;
+
+ for (i = 0; i < nchunks; i++)
+ {
+ chunk *c2 = chunks[i];
+
+ /* It is possible that the keys we have chosen have resulted in one or
+ more cells that have 3 or fewer points in them. If that's the case,
+ re-randomize.
+ */
+ if (c2->nverts <= 3)
+ {
+ for (j = 0; j < nchunks; j++)
+ free_chunk (chunks[j]);
+ free (chunks);
+ chunks = 0;
+ if (retries++ > 100)
+ {
+ fprintf(stderr, "%s: unsplittable\n", progname);
+ abort();
+ }
+ goto RETRY;
+ }
+
+ if (i == 0) /* The one we're gonna keep */
+ pad_chunk (c2, c->nverts);
+ render_chunk (mi, c2);
+ }
+
+ return chunks;
+}
+
+
+static void
+tick_crumbler (ModeInfo *mi)
+{
+ crumbler_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat ts;
+
+ if (bp->button_down_p) return;
+
+ switch (bp->state) {
+ case IDLE: ts = 0.02; break;
+ case SPLIT: ts = 0.01; break;
+ case PAUSE: ts = 0.008; break;
+ case FLEE: ts = 0.005; break;
+ case ZOOM: ts = 0.03; break;
+ default: abort(); break;
+ }
+
+ bp->tick += ts * speed;
+
+ if (bp->tick < 1) return;
+
+ bp->tick = 0;
+ bp->state = (bp->state + 1) % (ZOOM + 1);
+
+ switch (bp->state) {
+ case IDLE:
+ {
+ chunk *c = bp->chunks[0];
+ int i;
+
+ /* We already animated it zooming to full size. Now make it real. */
+ GLfloat X = (c->max.x - c->min.x);
+ GLfloat Y = (c->max.y - c->min.y);
+ GLfloat Z = (c->max.z - c->min.z);
+ GLfloat s = 1 / MAX(X, MAX(Y, Z));
+
+ for (i = 0; i < c->nverts; i++)
+ {
+ c->verts[i].x *= s;
+ c->verts[i].y *= s;
+ c->verts[i].z *= s;
+ }
+
+ /* Re-render it to move the verts in the display list too.
+ This also recomputes min, max and mid.
+ */
+ render_chunk (mi, c);
+ break;
+ }
+
+ case SPLIT:
+ {
+ chunk *c = bp->chunks[0];
+ int frac = (fracture >= 2 ? fracture : 2 + (2 * (random() % 5)));
+ chunk **chunks = split_chunk (mi, c, frac);
+ if (bp->nchunks != 1) abort();
+ if (bp->ghost) abort();
+ bp->ghost = c;
+ free (bp->chunks);
+ bp->chunks = chunks;
+ bp->nchunks = frac;
+ break;
+ }
+
+ case PAUSE:
+ break;
+
+ case FLEE:
+ if (bp->ghost) free_chunk (bp->ghost);
+ bp->ghost = 0;
+ break;
+
+ case ZOOM:
+ {
+ chunk *c = bp->chunks[0];
+ int i;
+ for (i = 1; i < bp->nchunks; i++)
+ free_chunk (bp->chunks[i]);
+ bp->nchunks = 1;
+
+ /* We already animated the remaining chunk moving toward the origin.
+ Make it real.
+ */
+ for (i = 0; i < c->nverts; i++)
+ {
+ c->verts[i].x -= c->mid.x;
+ c->verts[i].y -= c->mid.y;
+ c->verts[i].z -= c->mid.z;
+ }
+
+ /* Re-render it to move the verts in the display list too.
+ This also recomputes min, max and mid (now 0).
+ */
+ render_chunk (mi, c);
+ break;
+ }
+
+ default: abort(); break;
+ }
+}
+
+
+static GLfloat
+ease_fn (GLfloat r)
+{
+ return cos ((r/2 + 1) * M_PI) + 1; /* Smooth curve up, end at slope 1. */
+}
+
+
+static GLfloat
+ease_ratio (GLfloat r)
+{
+ GLfloat ease = 0.35;
+ if (r <= 0) return 0;
+ else if (r >= 1) return 1;
+ else if (r <= ease) return ease * ease_fn (r / ease);
+ else if (r > 1-ease) return 1 - ease * ease_fn ((1 - r) / ease);
+ else return r;
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_crumbler (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+crumbler_handle_event (ModeInfo *mi, XEvent *event)
+{
+ crumbler_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_crumbler (ModeInfo *mi)
+{
+ crumbler_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_crumbler (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ {
+ double spin_speed = 0.5 * speed;
+ double spin_accel = 0.3;
+ double wander_speed = 0.01 * speed;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->ncolors = 1024;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+ /* brighter colors, please... */
+ for (i = 0; i < bp->ncolors; i++)
+ {
+# undef R
+# define R(F) F = 65535 * (0.3 + 0.7 * ((F) / 65535.0))
+ R (bp->colors[i].red);
+ R (bp->colors[i].green);
+ R (bp->colors[i].blue);
+# undef R
+ }
+
+# ifdef HAVE_MOBILE
+# ifdef USE_IPHONE
+ density *= 0.5; /* iPhone 6s runs out of memory at 4500 nverts. */
+# else
+ density *= 0.3; /* Android Nexus_5_8.1 emulator runs out earlier. */
+# endif
+# endif
+
+ {
+ chunk *c;
+ bp->nchunks = 1;
+ bp->chunks = (chunk **) calloc (bp->nchunks, sizeof(*bp->chunks));
+ c = make_chunk();
+ bp->chunks[0] = c;
+ c->nverts = 4500 * density;
+ c->verts = (qh_vertex_t *) calloc (c->nverts, sizeof(*c->verts));
+ make_point_cloud (c->verts, c->nverts);
+
+ /* Let's shrink it to a point then zoom in. */
+ bp->state = ZOOM;
+ bp->tick = 0;
+ for (i = 0; i < c->nverts; i++)
+ {
+ c->verts[i].x /= 500;
+ c->verts[i].y /= 500;
+ c->verts[i].z /= 500;
+ }
+
+ render_chunk (mi, c);
+ }
+}
+
+
+static void
+draw_chunk (ModeInfo *mi, chunk *c, GLfloat alpha)
+{
+ crumbler_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat color[4];
+
+ color[0] = bp->colors[c->color].red / 65536.0;
+ color[1] = bp->colors[c->color].green / 65536.0;
+ color[2] = bp->colors[c->color].blue / 65536.0;
+ color[3] = alpha;
+ glColor4fv (color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+
+ c->color += c->color_shift;
+ while (c->color < 0) c->color += bp->ncolors;
+ while (c->color >= bp->ncolors) c->color -= bp->ncolors;
+
+ glCallList (c->dlist);
+ mi->polygon_count += c->polygon_count;
+}
+
+
+ENTRYPOINT void
+draw_crumbler (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ crumbler_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ GLfloat alpha = 1;
+ int i;
+
+ static const GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat bshiny = 128.0;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ tick_crumbler (mi);
+
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT, GL_SHININESS, bshiny);
+
+ if (do_wander)
+ glScalef (10, 10, 10);
+ else
+ glScalef (13, 13, 13);
+
+ alpha = 1;
+ for (i = 0; i < bp->nchunks; i++)
+ {
+ chunk *c = bp->chunks[i];
+
+ glPushMatrix();
+
+ switch (bp->state) {
+ case FLEE:
+ {
+ GLfloat r = ease_ratio (bp->tick);
+ /* Move everybody toward the origin, so that chunk #0 ends up
+ centered there. */
+ glTranslatef (-r * c->mid.x,
+ -r * c->mid.y,
+ -r * c->mid.z);
+ if (i != 0)
+ {
+ /* Move this chunk away from the center, along a vector from
+ the origin to its midpoint. */
+ GLfloat d2 = r * 6;
+ glTranslatef (c->vec.x * d2, c->vec.y * d2, c->vec.z * d2);
+ alpha = 1 - r;
+ }
+ }
+ break;
+
+ case ZOOM:
+ {
+ chunk *c = bp->chunks[0];
+ GLfloat X = (c->max.x - c->min.x);
+ GLfloat Y = (c->max.y - c->min.y);
+ GLfloat Z = (c->max.z - c->min.z);
+ GLfloat size0 = MAX(X, MAX(Y, Z));
+ GLfloat size1 = 1.0;
+ GLfloat r = 1 - ease_ratio (bp->tick);
+ GLfloat s = 1 / (size0 + r * (size1 - size0));
+ glScalef (s, s, s);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ draw_chunk (mi, c, alpha);
+ glPopMatrix();
+ }
+
+ /* Draw the old one, fading out. */
+ if (!wire && bp->state == SPLIT && bp->ghost)
+ {
+ GLfloat s;
+ /* alpha = 1 - bp->tick; */
+ alpha = 1;
+ /* s = 0.7 + (0.3 * ease_ratio (1-bp->tick)); */
+ s = 2 * ease_ratio ((1-bp->tick) / 2);
+ s *= 1.01;
+ glScalef (s, s, s);
+ draw_chunk (mi, bp->ghost, alpha);
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_crumbler (ModeInfo *mi)
+{
+ crumbler_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ free (bp->trackball);
+ free (bp->rot);
+ free (bp->colors);
+ for (i = 0; i < bp->nchunks; i++)
+ free_chunk (bp->chunks[i]);
+ free (bp->chunks);
+}
+
+
+XSCREENSAVER_MODULE ("Crumbler", crumbler)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/crumbler.man b/hacks/glx/crumbler.man
new file mode 100644
index 0000000..a608d9d
--- /dev/null
+++ b/hacks/glx/crumbler.man
@@ -0,0 +1,77 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+crumbler - voronoi divisions of a sphere.
+.SH SYNOPSIS
+.B crumbler
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-density \fInumber\fP]
+[\-fracture \fInumber\fP]
+[\-no-wander]
+[\-no-spin]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Randomly subdivides a ball into voronoi chunks, then further subdivides one
+of the remaining pieces.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-density \fInumber\fP
+Density of the polygons mesh. 2.0 means twice as dense, 0.5 means half.
+.TP 8
+.B \-fracture \fInumber\fP
+How many times to fracture each object. 0 means random.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the object should spin.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2018 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/cube21.c b/hacks/glx/cube21.c
new file mode 100644
index 0000000..451a523
--- /dev/null
+++ b/hacks/glx/cube21.c
@@ -0,0 +1,941 @@
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Cube 21 - a Rubik-like puzzle. It changes its shape and has more than
+ * 200 configurations. It is known better as Square-1, but it is called
+ * Cube 21 in the Czech republic, where it was invented in 1992.
+ *
+ * This file is derived from cage.c,
+ * "cage --- the Impossible Cage, an Escher like scene",
+ * by Marcelo F. Vienna,
+ * parts from gltext.c by Jamie Zawinski
+ *
+ * Vaclav (Vasek) Potocek
+ * vasek.potocek@post.cz
+ */
+
+/* TODO:
+ * some simple "solve mode"
+ * use rotator
+ */
+
+/*-
+ * Texture mapping is only available on RGBA contexts, Mono and color index
+ * visuals DO NOT support texture mapping in OpenGL.
+ *
+ * BUT Mesa do implements RGBA contexts in pseudo color visuals, so texture
+ * mapping should work on PseudoColor, DirectColor, TrueColor using Mesa. Mono
+ * is not officially supported for both OpenGL and Mesa, but seems to not crash
+ * Mesa.
+ *
+ * In real OpenGL, PseudoColor DO NOT support texture map (as far as I know).
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n"
+
+# define free_cube21 0
+# define release_cube21 0
+#include "xlockmore.h"
+
+#include "gltrackball.h"
+
+#ifdef USE_GL
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_TEXTURE "True"
+#define DEF_RANDOMIZE "True"
+#define DEF_SPINSPEED "1.0"
+#define DEF_ROTSPEED "3.0"
+#define DEF_WANDERSPEED "0.02"
+#define DEF_WAIT "40.0"
+#define DEF_CUBESIZE "0.7"
+#define DEF_COLORMODE "six"
+
+#ifdef Pi
+#undef Pi
+#endif
+#define Pi M_PI
+
+#define SHUFFLE 100
+
+#define COS15 0.9659258263
+#define SIN15 0.2588190451
+#define COS30 0.8660254038
+#define SIN30 0.5000000000
+
+#define TEX_WIDTH 128
+#define TEX_HEIGHT 128
+#define TEX_GRAY 0.7, 0.7
+#define BORDER 3
+#define BORDER2 9
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define rnd01() (random()%2)
+#define rndcolor() (frand(0.5)+0.3)
+
+/*************************************************************************/
+
+static Bool spin, wander, rndstart, tex;
+static float spinspeed, tspeed, wspeed, twait, size;
+static char *colmode_s;
+static int colmode;
+
+static argtype vars[] = {
+ { &spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ { &wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ { &rndstart, "randomize", "Randomize", DEF_RANDOMIZE, t_Bool},
+ { &tex, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ { &spinspeed, "spinspeed", "SpinSpeed", DEF_SPINSPEED, t_Float},
+ { &tspeed, "rotspeed", "RotSpeed", DEF_ROTSPEED, t_Float},
+ { &wspeed, "wanderspeed", "WanderSpeed", DEF_WANDERSPEED, t_Float},
+ { &twait, "wait", "Wait", DEF_WAIT, t_Float},
+ { &size, "cubesize", "CubeSize", DEF_CUBESIZE, t_Float},
+ { &colmode_s, "colormode", "ColorMode", DEF_COLORMODE, t_String}
+};
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-randomize", ".randomize", XrmoptionNoArg, "True" },
+ { "+randomize", ".randomize", XrmoptionNoArg, "False" },
+ { "-texture", ".texture", XrmoptionNoArg, "True" },
+ { "+texture", ".texture", XrmoptionNoArg, "False" },
+ { "-spinspeed", ".spinspeed", XrmoptionSepArg, 0 },
+ { "-wanderspeed", ".wanderspeed", XrmoptionSepArg, 0 },
+ { "-rotspeed", ".rotspeed", XrmoptionSepArg, 0 },
+ { "-wait", ".wait", XrmoptionSepArg, 0 },
+ { "-cubesize", ".cubesize", XrmoptionSepArg, 0 },
+ { "-colormode", ".colormode", XrmoptionSepArg, 0 }
+};
+
+ENTRYPOINT ModeSpecOpt cube21_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct cube21_description =
+{ "cube21", "init_cube21", "draw_cube21", NULL,
+ "draw_cube21", "change_cube21", NULL, &cube21_opts,
+ 25000, 1, 1, 1, 1.0, 4, "",
+ "Shows randomly shuffling Cube 21", 0, NULL
+};
+#endif
+
+typedef enum {
+ CUBE21_STATE_BASIC,
+ CUBE21_PAUSE1 = CUBE21_STATE_BASIC,
+ CUBE21_ROT_BASE,
+ CUBE21_ROT_TOP = CUBE21_ROT_BASE,
+ CUBE21_ROT_BOTTOM,
+ CUBE21_PAUSE2,
+ CUBE21_HALF_BASE,
+ CUBE21_HALF1 = CUBE21_HALF_BASE,
+ CUBE21_HALF2
+} cube21_state;
+
+typedef enum {
+ CUBE21_COLOR_WHITE,
+ CUBE21_COLOR_RANDOM,
+ CUBE21_COLOR_SILVER,
+ CUBE21_COLOR_TWORND,
+ CUBE21_COLOR_CLASSIC,
+ CUBE21_COLOR_SIXRND
+} cube21_cmode;
+
+typedef int pieces_t[2][13];
+typedef int cind_t[5][12];
+typedef GLfloat col_t[6][3];
+
+typedef struct {
+ GLXContext *glx_context;
+ GLfloat ratio;
+ cube21_state state; /* type of "rotation" - shuffling */
+ GLfloat xrot, yrot; /* "spin" - object rotation around axis */
+ GLfloat posarg; /* position argument (for sine function) */
+ GLfloat t, tmax; /* rotation clock */
+ int hf[2], fr[2]; /* half flipped / face rotated flags */
+ int rface, ramount; /* selected face and amount of rotation in multiplies of 30deg */
+ int pieces[2][13]; /* locations of "narrow" and "wide" pieces */
+ int cind[5][12]; /* color indices */
+ GLfloat colors[6][3]; /* color map */
+
+ Bool wire, cmat;
+ unsigned char texture[TEX_HEIGHT][TEX_WIDTH];
+
+ GLfloat texp, texq, posc[6];
+ GLfloat color_inner[4];
+
+ Bool button_down_p;
+ trackball_state *trackball;
+
+} cube21_conf;
+
+static cube21_conf *cube21 = NULL;
+
+static const GLfloat shininess = 20.0;
+static const GLfloat ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const GLfloat diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const GLfloat position0[] = {1.0, 1.0, 1.0, 0.0};
+static const GLfloat position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const GLfloat lmodel_ambient[] = {0.1, 0.1, 0.1, 1.0};
+static const GLfloat material_ambient[] = {0.7, 0.7, 0.7, 1.0};
+static const GLfloat material_diffuse[] = {0.7, 0.7, 0.7, 1.0};
+static const GLfloat material_specular[] = {0.2, 0.2, 0.2, 1.0};
+static const GLfloat zpos = -18.0;
+
+/*************************************************************************/
+
+static void find_matches(pieces_t pieces, int matches[12], int s)
+{
+ int i, j = 1;
+ for(i = 1; i<6; i++) {
+ if(pieces[s][i] && pieces[s][i+6]) {
+ matches[j++] = i;
+ }
+ }
+ matches[0] = j;
+ for(i = 1; i<matches[0]; i++) {
+ matches[j++] = matches[i]-6;
+ }
+ matches[j++] = 6;
+ matches[0] = j;
+}
+
+static void rot_face(pieces_t pieces, cind_t colors, int s, int o)
+{
+ int i;
+ int tmp[12], tmpc[2][12];
+ int c0 = 2*s, c1 = c0+1;
+ for(i = 0; i<12; i++) {
+ tmp[i] = pieces[s][i];
+ tmpc[0][i] = colors[c0][i];
+ tmpc[1][i] = colors[c1][i];
+ }
+ if(o<0) o += 12;
+ for(i = 0; i<12; i++, o++) {
+ if(o==12) o = 0;
+ pieces[s][i] = tmp[o];
+ colors[c0][i] = tmpc[0][o];
+ colors[c1][i] = tmpc[1][o];
+ }
+}
+
+static void rot_halves(pieces_t pieces, cind_t colors, int hf[2], int s)
+{
+ int ss = 6*s, i, j, k, t;
+ for(i = 0; i<6; i++) {
+ j = ss+i; k = ss+6-i;
+ t = pieces[0][j];
+ pieces[0][j] = pieces[1][k];
+ pieces[1][k] = t;
+ k--;
+ t = colors[0][j];
+ colors[0][j] = colors[2][k];
+ colors[2][k] = t;
+ t = colors[1][j];
+ colors[1][j] = colors[3][k];
+ colors[3][k] = t;
+ }
+ hf[s] ^= 1;
+}
+
+static void randomize(cube21_conf *cp)
+{
+ int i, j, s;
+ int matches[12];
+ for(i = 0; i<SHUFFLE; i++) {
+ s = rnd01();
+ find_matches(cp->pieces, matches, s);
+ j = matches[0]-1;
+ j = random()%j;
+ j = matches[j+1];
+ rot_face(cp->pieces, cp->cind, s, j);
+ s = rnd01();
+ rot_halves(cp->pieces, cp->cind, cp->hf, s);
+ }
+}
+
+static void finish(cube21_conf *cp)
+{
+ int j, s;
+ int matches[12];
+ switch(cp->state) {
+ case CUBE21_PAUSE1:
+ s = rnd01();
+ find_matches(cp->pieces, matches, s);
+ j = matches[0]-1;
+ j = random()%j;
+ j = matches[j+1];
+ if(j==6 && rnd01()) j = -6;
+ cp->state = CUBE21_ROT_BASE+s;
+ cp->tmax = 30.0*abs(j);
+ cp->fr[0] = cp->fr[1] = 0;
+ cp->rface = s;
+ cp->ramount = j;
+ break;
+ case CUBE21_ROT_TOP:
+ case CUBE21_ROT_BOTTOM:
+ rot_face(cp->pieces, cp->cind, s = cp->rface, cp->ramount);
+ cp->fr[s] = 1;
+ s ^= 1;
+ if(!cp->fr[s] && rnd01()) {
+ find_matches(cp->pieces, matches, s);
+ j = matches[0]-1;
+ j = random()%j;
+ j = matches[j+1];
+ if(j==6 && rnd01()) j = -6;
+ cp->state = CUBE21_ROT_BASE+s;
+ cp->tmax = 30.0*abs(j);
+ cp->rface = s;
+ cp->ramount = j;
+ break;
+ } else {
+ cp->state = CUBE21_PAUSE2;
+ cp->tmax = twait;
+ break;
+ }
+ case CUBE21_PAUSE2:
+ s = rnd01();
+ cp->ramount = -rnd01(); /* 0 or -1, only sign is significant in this case */
+ cp->state = CUBE21_HALF_BASE+s;
+ cp->tmax = 180.0;
+ cp->rface = s;
+ break;
+ case CUBE21_HALF1:
+ case CUBE21_HALF2:
+ rot_halves(cp->pieces, cp->cind, cp->hf, cp->rface);
+ cp->state = CUBE21_PAUSE1;
+ cp->tmax = twait;
+ break;
+ }
+ cp->t = 0;
+}
+
+static void draw_narrow_piece(ModeInfo *mi, cube21_conf *cp, GLfloat s, int c1, int c2, col_t colors)
+{
+ GLfloat s1 = cp->posc[0]*s;
+ glBegin(GL_TRIANGLES);
+ glNormal3f(0.0, 0.0, s);
+ if(cp->cmat) glColor3fv(colors[c1]);
+ glTexCoord2f(0.5, 0.5); glVertex3f(0.0, 0.0, s);
+ glTexCoord2f(cp->texq, 0.0); glVertex3f(cp->posc[1], 0.0, s);
+ glTexCoord2f(cp->texp, 0.0); glVertex3f(cp->posc[2], cp->posc[3], s);
+ mi->polygon_count++;
+ glNormal3f(0.0, 0.0, -s);
+ if(cp->cmat) glColor3fv(cp->color_inner);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(0.0, 0.0, s1);
+ glVertex3f(cp->posc[1], 0.0, s1);
+ glVertex3f(cp->posc[2], cp->posc[3], s1);
+ mi->polygon_count++;
+ glEnd();
+ glBegin(GL_QUADS);
+ glNormal3f(0.0, -1.0, 0.0);
+ if(cp->cmat) glColor3fv(cp->color_inner);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(0.0, 0.0, s);
+ glVertex3f(cp->posc[1], 0.0, s);
+ glVertex3f(cp->posc[1], 0.0, s1);
+ glVertex3f(0.0, 0.0, s1);
+ mi->polygon_count++;
+ glNormal3f(COS15, SIN15, 0.0);
+ if(cp->cmat) glColor3fv(colors[c2]);
+ glTexCoord2f(cp->texq, cp->texq); glVertex3f(cp->posc[1], 0.0, s);
+ glTexCoord2f(cp->texq, cp->texp); glVertex3f(cp->posc[2], cp->posc[3], s);
+ glTexCoord2f(1.0, cp->texp); glVertex3f(cp->posc[2], cp->posc[3], s1);
+ glTexCoord2f(1.0, cp->texq); glVertex3f(cp->posc[1], 0.0, s1);
+ mi->polygon_count++;
+ glNormal3f(-SIN30, COS30, 0.0);
+ if(cp->cmat) glColor3fv(cp->color_inner);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(0.0, 0.0, s);
+ glVertex3f(cp->posc[2], cp->posc[3], s);
+ glVertex3f(cp->posc[2], cp->posc[3], s1);
+ glVertex3f(0.0, 0.0, s1);
+ mi->polygon_count++;
+ glEnd();
+ glRotatef(30.0, 0.0, 0.0, 1.0);
+}
+
+static void draw_wide_piece(ModeInfo *mi, cube21_conf *cp, GLfloat s, int c1, int c2, int c3, col_t colors)
+{
+ GLfloat s1 = cp->posc[0]*s;
+ glBegin(GL_TRIANGLES);
+ glNormal3f(0.0, 0.0, s);
+ if(cp->cmat) glColor3fv(colors[c1]);
+ glTexCoord2f(0.5, 0.5); glVertex3f(0.0, 0.0, s);
+ glTexCoord2f(cp->texp, 0.0); glVertex3f(cp->posc[1], 0.0, s);
+ glTexCoord2f(0.0, 0.0); glVertex3f(cp->posc[4], cp->posc[5], s);
+ glTexCoord2f(0.0, 0.0); glVertex3f(cp->posc[4], cp->posc[5], s);
+ glTexCoord2f(0.0, cp->texp); glVertex3f(cp->posc[3], cp->posc[2], s);
+ glTexCoord2f(0.5, 0.5); glVertex3f(0.0, 0.0, s);
+ glNormal3f(0.0, 0.0, -s);
+ if(cp->cmat) glColor3fv(cp->color_inner);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(0.0, 0.0, s1);
+ glVertex3f(cp->posc[1], 0.0, s1);
+ glVertex3f(cp->posc[4], cp->posc[5], s1);
+ glVertex3f(cp->posc[4], cp->posc[5], s1);
+ glVertex3f(cp->posc[3], cp->posc[2], s1);
+ glVertex3f(0.0, 0.0, s1);
+ glEnd();
+ glBegin(GL_QUADS);
+ glNormal3f(0.0, -1.0, 0);
+ if(cp->cmat) glColor3fv(cp->color_inner);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(0.0, 0.0, s);
+ glVertex3f(cp->posc[1], 0.0, s);
+ glVertex3f(cp->posc[1], 0.0, s1);
+ glVertex3f(0.0, 0.0, s1);
+ glNormal3f(COS15, -SIN15, 0.0);
+ if(cp->cmat) glColor3fv(colors[c2]);
+ glTexCoord2f(cp->texq, cp->texp); glVertex3f(cp->posc[1], 0.0, s);
+ glTexCoord2f(cp->texq, 0.0); glVertex3f(cp->posc[4], cp->posc[5], s);
+ glTexCoord2f(1.0, 0.0); glVertex3f(cp->posc[4], cp->posc[5], s1);
+ glTexCoord2f(1.0, cp->texp); glVertex3f(cp->posc[1], 0.0, s1);
+ glNormal3f(SIN15, COS15, 0.0);
+ if(cp->cmat) glColor3fv(colors[c3]);
+ glTexCoord2f(cp->texq, cp->texp); glVertex3f(cp->posc[4], cp->posc[5], s);
+ glTexCoord2f(cp->texq, 0.0); glVertex3f(cp->posc[3], cp->posc[2], s);
+ glTexCoord2f(1.0, 0.0); glVertex3f(cp->posc[3], cp->posc[2], s1);
+ glTexCoord2f(1.0, cp->texp); glVertex3f(cp->posc[4], cp->posc[5], s1);
+ glNormal3f(-COS30, SIN30, 0.0);
+ if(cp->cmat) glColor3fv(cp->color_inner);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(0.0, 0.0, s);
+ glVertex3f(cp->posc[3], cp->posc[2], s);
+ glVertex3f(cp->posc[3], cp->posc[2], s1);
+ glVertex3f(0.0, 0.0, s1);
+ glEnd();
+ glRotatef(60.0, 0.0, 0.0, 1.0);
+}
+
+static void draw_middle_piece(cube21_conf *cp, int s, cind_t cind, col_t colors)
+{
+ s *= 6;
+ glBegin(GL_QUADS);
+ if(cp->cmat) glColor3fv(cp->color_inner);
+ glNormal3f(0.0, 0.0, 1.0);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(cp->posc[1], 0.0, cp->posc[0]);
+ glVertex3f(cp->posc[4], cp->posc[5], cp->posc[0]);
+ glVertex3f(-cp->posc[5], cp->posc[4], cp->posc[0]);
+ glVertex3f(-cp->posc[1], 0.0, cp->posc[0]);
+ glNormal3f(0.0, 0.0, -1.0);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(cp->posc[1], 0.0, -cp->posc[0]);
+ glVertex3f(cp->posc[4], cp->posc[5], -cp->posc[0]);
+ glVertex3f(-cp->posc[5], cp->posc[4], -cp->posc[0]);
+ glVertex3f(-cp->posc[1], 0.0, -cp->posc[0]);
+ glNormal3f(0.0, -1.0, 0.0);
+ glTexCoord2f(TEX_GRAY);
+ glVertex3f(-cp->posc[1], 0.0, cp->posc[0]);
+ glVertex3f(cp->posc[1], 0.0, cp->posc[0]);
+ glVertex3f(cp->posc[1], 0.0, -cp->posc[0]);
+ glVertex3f(-cp->posc[1], 0.0, -cp->posc[0]);
+ glNormal3f(COS15, -SIN15, 0.0);
+ if(cp->cmat) glColor3fv(colors[cind[4][s]]);
+ glTexCoord2f(cp->texq, cp->texp); glVertex3f(cp->posc[1], 0.0, cp->posc[0]);
+ glTexCoord2f(1.0, cp->texp); glVertex3f(cp->posc[4], cp->posc[5], cp->posc[0]);
+ glTexCoord2f(1.0, cp->texq); glVertex3f(cp->posc[4], cp->posc[5], -cp->posc[0]);
+ glTexCoord2f(cp->texq, cp->texq); glVertex3f(cp->posc[1], 0.0, -cp->posc[0]);
+ glNormal3f(SIN15, COS15, 0.0);
+ if(cp->cmat) glColor3fv(colors[cind[4][s+1]]);
+ glTexCoord2f(0.0, 0.5); glVertex3f(cp->posc[4], cp->posc[5], cp->posc[0]);
+ glTexCoord2f(cp->texq, 0.5); glVertex3f(-cp->posc[5], cp->posc[4], cp->posc[0]);
+ glTexCoord2f(cp->texq, 0.75); glVertex3f(-cp->posc[5], cp->posc[4], -cp->posc[0]);
+ glTexCoord2f(0.0, 0.75); glVertex3f(cp->posc[4], cp->posc[5], -cp->posc[0]);
+ glNormal3f(-COS15, SIN15, 0.0);
+ if(cp->cmat) glColor3fv(colors[cind[4][s+4]]);
+ glTexCoord2f(0.0, 0.75); glVertex3f(-cp->posc[5], cp->posc[4], cp->posc[0]);
+ glTexCoord2f(1.0, 0.75); glVertex3f(-cp->posc[1], 0.0, cp->posc[0]);
+ glTexCoord2f(1.0, 1.0); glVertex3f(-cp->posc[1], 0.0, -cp->posc[0]);
+ glTexCoord2f(0.0, 1.0); glVertex3f(-cp->posc[5], cp->posc[4], -cp->posc[0]);
+ glEnd();
+}
+
+static void draw_middle(cube21_conf *cp)
+{
+ if(cp->hf[0]) glRotatef(180.0, 0.0, 1.0, 0.0);
+ draw_middle_piece(cp, 0, cp->cind, cp->colors);
+ if(cp->hf[0]) glRotatef(180.0, 0.0, 1.0, 0.0);
+ glRotatef(180.0, 0.0, 0.0, 1.0);
+ if(cp->hf[1]) glRotatef(180.0, 0.0, 1.0, 0.0);
+ draw_middle_piece(cp, 1, cp->cind, cp->colors);
+ if(cp->hf[1]) glRotatef(180.0, 0.0, 1.0, 0.0);
+}
+
+static void draw_half_face(ModeInfo *mi, cube21_conf *cp, int s, int o)
+{
+ int i, s1 = 1-s*2, s2 = s*2;
+ for(i = o; i<o+6; i++) {
+ if(cp->pieces[s][i+1])
+ draw_narrow_piece(mi, cp, s1, cp->cind[s2][i], cp->cind[s2+1][i], cp->colors);
+ else {
+ draw_wide_piece(mi, cp, s1, cp->cind[s2][i], cp->cind[s2+1][i], cp->cind[s2+1][i+1], cp->colors);
+ i++;
+ }
+ }
+}
+
+static void draw_top_face(ModeInfo *mi, cube21_conf *cp)
+{
+ draw_half_face(mi, cp, 0, 0);
+ draw_half_face(mi, cp, 0, 6);
+}
+
+static void draw_bottom_face(ModeInfo *mi, cube21_conf *cp)
+{
+ draw_half_face(mi, cp, 1, 0);
+ draw_half_face(mi, cp, 1, 6);
+}
+
+static Bool draw_main(ModeInfo *mi, cube21_conf *cp)
+{
+ GLfloat theta = cp->ramount<0?cp->t:-cp->t;
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+ if(wander)
+ glTranslatef(3.0*cp->ratio*sin(13.0*cp->posarg), 3.0*sin(17.0*cp->posarg), zpos);
+ else
+ glTranslatef(0, 0, zpos);
+ glScalef(size, size, size);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glRotatef(cp->xrot, 1.0, 0.0, 0.0);
+ glRotatef(cp->yrot, 0.0, 1.0, 0.0);
+
+ gltrackball_rotate (cp->trackball);
+
+ if(cp->wire) glColor3f(0.7, 0.7, 0.7);
+ switch(cp->state) {
+ case CUBE21_PAUSE1:
+ case CUBE21_PAUSE2:
+ draw_top_face(mi, cp);
+ draw_bottom_face(mi, cp);
+ draw_middle(cp);
+ break;
+ case CUBE21_ROT_TOP:
+ glRotatef(theta, 0.0, 0.0, 1.0);
+ draw_top_face(mi, cp);
+ glRotatef(-theta, 0.0, 0.0, 1.0);
+ draw_bottom_face(mi, cp);
+ draw_middle(cp);
+ break;
+ case CUBE21_ROT_BOTTOM:
+ draw_top_face(mi, cp);
+ glRotatef(theta, 0.0, 0.0, 1.0);
+ draw_bottom_face(mi, cp);
+ glRotatef(-theta, 0.0, 0.0, 1.0);
+ draw_middle(cp);
+ break;
+ case CUBE21_HALF1:
+ glRotatef(theta, 0.0, 1.0, 0.0);
+ case CUBE21_HALF2:
+ draw_half_face(mi, cp, 0, 0);
+ glRotatef(-180.0, 0.0, 0.0, 1.0);
+ draw_half_face(mi, cp, 1, 0);
+ glRotatef(-180.0, 0.0, 0.0, 1.0);
+ if(cp->hf[0]) glRotatef(180.0, 0.0, 1.0, 0.0);
+ draw_middle_piece(cp, 0, cp->cind, cp->colors);
+ if(cp->hf[0]) glRotatef(180.0, 0.0, 1.0, 0.0);
+ if(cp->state==CUBE21_HALF1)
+ glRotatef(-theta, 0.0, 1.0, 0.0);
+ else
+ glRotatef(theta, 0.0, 1.0, 0.0);
+ glRotatef(180.0, 0.0, 0.0, 1.0);
+ draw_half_face(mi, cp, 0, 6);
+ glRotatef(-180.0, 0.0, 0.0, 1.0);
+ draw_half_face(mi, cp, 1, 6);
+ glRotatef(-180.0, 0.0, 0.0, 1.0);
+ if(cp->hf[1]) glRotatef(180.0, 0.0, 1.0, 0.0);
+ draw_middle_piece(cp, 1, cp->cind, cp->colors);
+ break;
+ }
+ if(spin) {
+ if((cp->xrot += spinspeed)>360.0) cp->xrot -= 360.0;
+ if((cp->yrot += spinspeed)>360.0) cp->yrot -= 360.0;
+ }
+ if(wander)
+ if((cp->posarg += wspeed/1000.0)>360.0) cp->posarg -= 360.0;
+ if((cp->t += tspeed)>cp->tmax) finish(cp);
+ return True;
+}
+
+static void parse_colmode(void)
+{
+ if(!colmode_s) {
+ colmode = CUBE21_COLOR_WHITE;
+ return;
+ }
+ if(strstr(colmode_s, "se") || strstr(colmode_s, "sil")) colmode = CUBE21_COLOR_SILVER;
+ else if(strstr(colmode_s, "ce") || strstr(colmode_s, "cla")) colmode = CUBE21_COLOR_CLASSIC;
+ else if(strstr(colmode_s, "2") || strstr(colmode_s, "two")) colmode = CUBE21_COLOR_TWORND;
+ else if(strstr(colmode_s, "6") || strstr(colmode_s, "six")) colmode = CUBE21_COLOR_SIXRND;
+ else if(strstr(colmode_s, "1") || strstr(colmode_s, "ran") || strstr(colmode_s, "rnd")) colmode = CUBE21_COLOR_RANDOM;
+ else colmode = CUBE21_COLOR_WHITE;
+}
+
+static void init_posc(cube21_conf *cp)
+{
+ cp->texp = (1.0-tan(Pi/12.0))/2.0;
+ cp->texq = 1.0-cp->texp;
+ /* Some significant non-trivial coordinates
+ * of the object. We need them exactly at GLfloat precision
+ * for the edges to line up perfectly. */
+ cp->posc[0] = tan(Pi/12); /* 0.268 */
+ cp->posc[1] = 1.0/cos(Pi/12); /* 1.035 */
+ cp->posc[2] = cos(Pi/6)/cos(Pi/12); /* 0.897 */
+ cp->posc[3] = sin(Pi/6)/cos(Pi/12); /* 0.518 */
+ cp->posc[4] = sqrt(2)*cos(Pi/6); /* 1.225 */
+ cp->posc[5] = sqrt(2)*sin(Pi/6); /* 0.707 = 1/sqrt(2) */
+}
+
+static void draw_horz_line(cube21_conf *cp, int x1, int x2, int y)
+{
+ int x, y0 = y, w;
+ if(y<BORDER) y = -y;
+ else y = -BORDER;
+ for(; y<BORDER; y++) {
+ if(y0+y>=TEX_HEIGHT) break;
+ w = y*y*255/BORDER2;
+ for(x=x1; x<=x2; x++)
+ if(cp->texture[y0+y][x]>w) cp->texture[y0+y][x] = w;
+ }
+}
+
+static void draw_vert_line(cube21_conf *cp, int x, int y1, int y2)
+{
+ int x0 = x, y, w;
+ if(x<BORDER) x = -x;
+ else x = -BORDER;
+ for(; x<BORDER; x++) {
+ if(x0+x>=TEX_WIDTH) break;
+ w = x*x*255/BORDER2;
+ for(y=y1; y<=y2; y++)
+ if(cp->texture[y][x0+x]>w) cp->texture[y][x0+x] = w;
+ }
+}
+
+static void draw_slanted_horz(cube21_conf *cp, int x1, int y1, int x2, int y2)
+{
+ int x, y, dx = x2-x1, dy = y2-y1, y0, w;
+ for(x=x1; x<=x2; x++) {
+ y0 = y1+(y2-y1)*(x-x1)/(x2-x1);
+ for(y=-1-BORDER; y<2+BORDER; y++) {
+ w = dx*(y0+y-y1)-dy*(x-x1);
+ w = w*w/(dx*dx+dy*dy);
+ w = w*255/BORDER2;
+ if(cp->texture[y0+y][x]>w) cp->texture[y0+y][x] = w;
+ }
+ }
+}
+
+static void draw_slanted_vert(cube21_conf *cp, int x1, int y1, int x2, int y2)
+{
+ int x, y, dx = x2-x1, dy = y2-y1, x0, w;
+ for(y=y1; y<=y2; y++) {
+ x0 = x1+(x2-x1)*(y-y1)/(y2-y1);
+ for(x=-1-BORDER; x<2+BORDER; x++) {
+ w = dy*(x0+x-x1)-dx*(y-y1);
+ w = w*w/(dy*dy+dx*dx);
+ w = w*255/BORDER2;
+ if(cp->texture[y][x0+x]>w) cp->texture[y][x0+x] = w;
+ }
+ }
+}
+
+static void make_texture(cube21_conf *cp)
+{
+ int x, y, x0, y0;
+ float grayp[2] = {TEX_GRAY};
+ for(y=0; y<TEX_HEIGHT; y++)
+ for(x=0; x<TEX_WIDTH; x++)
+ cp->texture[y][x] = 255;
+ draw_horz_line(cp, 0, TEX_WIDTH-1, 0);
+ draw_horz_line(cp, cp->texq*TEX_WIDTH, TEX_WIDTH-1, cp->texp*TEX_HEIGHT);
+ draw_horz_line(cp, cp->texq*TEX_WIDTH, TEX_WIDTH-1, cp->texq*TEX_HEIGHT);
+ draw_horz_line(cp, 0, cp->texq*TEX_WIDTH, TEX_HEIGHT/2);
+ draw_horz_line(cp, 0, TEX_WIDTH-1, TEX_HEIGHT*3/4);
+ draw_horz_line(cp, 0, TEX_WIDTH-1, TEX_HEIGHT-1);
+ draw_vert_line(cp, 0, 0, TEX_HEIGHT-1);
+ draw_vert_line(cp, cp->texq*TEX_WIDTH, 0, TEX_HEIGHT*3/4);
+ draw_vert_line(cp, TEX_WIDTH-1, 0, TEX_HEIGHT-1);
+ draw_slanted_horz(cp, 0, cp->texp*TEX_HEIGHT, TEX_WIDTH/2, TEX_HEIGHT/2);
+ draw_slanted_vert(cp, cp->texp*TEX_WIDTH, 0, TEX_WIDTH/2, TEX_HEIGHT/2);
+ draw_slanted_vert(cp, cp->texq*TEX_WIDTH, 0, TEX_WIDTH/2, TEX_HEIGHT/2);
+ x0 = grayp[0]*TEX_WIDTH;
+ y0 = grayp[1]*TEX_HEIGHT;
+ for(y=-1; y<=1; y++)
+ for(x=-1; x<=1; x++)
+ cp->texture[y0+y][x0+x] = 100;
+}
+
+/* It doesn't look good */
+/*#define MIPMAP*/
+
+static void init_gl(ModeInfo *mi)
+{
+ cube21_conf *cp = &cube21[MI_SCREEN(mi)];
+#ifdef MIPMAP
+ int status;
+#endif
+ parse_colmode();
+ cp->wire = MI_IS_WIREFRAME(mi);
+ cp->cmat = !cp->wire && (colmode != CUBE21_COLOR_WHITE);
+ if(MI_IS_MONO(mi)) {
+ tex = False;
+ cp->cmat = False;
+ }
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ cp->wire = 0;
+# endif
+
+ if(cp->wire) {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ return;
+ }
+ if(!tex)
+ cp->color_inner[0] = cp->color_inner[1] = cp->color_inner[2] = 0.4;
+ else
+ cp->color_inner[0] = cp->color_inner[1] = cp->color_inner[2] = 1.0;
+
+ glClearDepth(1.0);
+ glDrawBuffer(GL_BACK);
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ glShadeModel(GL_FLAT);
+ glDepthFunc(GL_LESS);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_COLOR_MATERIAL);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material_ambient);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material_diffuse);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material_specular);
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
+ if(!tex) return;
+ glEnable(GL_TEXTURE_2D);
+#ifdef MIPMAP
+ clear_gl_error();
+ status = gluBuild2DMipmaps(GL_TEXTURE_2D, 1, TEX_WIDTH, TEX_HEIGHT,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, texture);
+ if (status) {
+ const char *s = gluErrorString(status);
+ fprintf (stderr, "%s: error mipmapping texture: %s\n", progname, (s?s:"(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+#else
+ glTexImage2D(GL_TEXTURE_2D, 0, 1, TEX_WIDTH, TEX_HEIGHT,
+ 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, cp->texture);
+#endif
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+#ifdef MIPMAP
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+#else
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+#endif
+}
+
+static void init_cp(cube21_conf *cp)
+{
+ int i, j;
+ GLfloat ce_colors[6][3] = {
+ {1.0, 1.0, 1.0},
+ {1.0, 0.5, 0.0},
+ {0.0, 0.9, 0.0},
+ {0.8, 0.0, 0.0},
+ {0.1, 0.1, 1.0},
+ {0.9, 0.9, 0.0}
+ };
+ cp->state = CUBE21_STATE_BASIC;
+ cp->xrot = -65.0; cp->yrot = 185.0;
+ cp->posarg = (wspeed?random()%360:0.0);
+ cp->t = 0.0; cp->tmax = twait;
+ cp->hf[0] = cp->hf[1] = 0;
+ cp->fr[0] = cp->fr[1] = 0;
+ for(i=0;i<13;i++)
+ cp->pieces[0][i] = cp->pieces[1][i] = (i%3==1?0:1);
+ switch(colmode) {
+ case CUBE21_COLOR_RANDOM:
+ case CUBE21_COLOR_TWORND:
+ case CUBE21_COLOR_SIXRND:
+ for(i=0; i<6; i++)
+ for(j=0; j<3; j++)
+ cp->colors[i][j] = rndcolor();
+ break;
+ case CUBE21_COLOR_SILVER:
+ cp->colors[0][0] = 1.0;
+ cp->colors[0][1] = 1.0;
+ cp->colors[0][2] = 1.0;
+ cp->colors[1][0] = rndcolor();
+ cp->colors[1][1] = rndcolor();
+ cp->colors[1][2] = rndcolor();
+ break;
+ case CUBE21_COLOR_CLASSIC:
+ for(i=0; i<6; i++)
+ for(j=0; j<3; j++)
+ cp->colors[i][j] = 0.2+0.7*ce_colors[i][j];
+ break;
+ }
+ switch(colmode) {
+ case CUBE21_COLOR_SILVER:
+ case CUBE21_COLOR_TWORND:
+ for(i=0; i<5; i++)
+ for(j=0; j<12; j++)
+ if(i==0) cp->cind[i][j] = 0;
+ else if(i==2) cp->cind[i][j] = 1;
+ else cp->cind[i][j] = ((j+5)%12)>=6?1:0;
+ break;
+ case CUBE21_COLOR_CLASSIC:
+ case CUBE21_COLOR_SIXRND:
+ for(i=0; i<5; i++)
+ for(j=0; j<12; j++)
+ if(i==0) cp->cind[i][j] = 4;
+ else if(i==2) cp->cind[i][j] = 5;
+ else cp->cind[i][j] = ((j+5)%12)/3;
+ break;
+ case CUBE21_COLOR_RANDOM:
+ for(i=0; i<5; i++)
+ for(j=0; j<12; j++)
+ cp->cind[i][j] = 0;
+ break;
+ }
+ if(rndstart) randomize(cp);
+}
+
+/*************************************************************************/
+
+ENTRYPOINT void reshape_cube21(ModeInfo *mi, int width, int height)
+{
+ cube21_conf *cp = &cube21[MI_SCREEN(mi)];
+ int y = 0;
+ if(!height) height = 1;
+ cp->ratio = (GLfloat)width/(GLfloat)height;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ cp->ratio = width / (GLfloat) height;
+ cp->posarg = 0;
+ }
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(30.0, cp->ratio, 1.0, 100.0);
+ glMatrixMode(GL_MODELVIEW);
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+ENTRYPOINT Bool
+cube21_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cube21_conf *cp = &cube21[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, cp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &cp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void init_cube21(ModeInfo *mi)
+{
+ cube21_conf *cp;
+ MI_INIT(mi, cube21);
+ cp = &cube21[MI_SCREEN(mi)];
+
+ cp->trackball = gltrackball_init (False);
+
+ if(!cp->texp) {
+ init_posc(cp);
+ make_texture(cp);
+ }
+
+#ifdef HAVE_MOBILE
+ size *= 2;
+#endif
+
+ if ((cp->glx_context = init_GL(mi)) != NULL) {
+ init_gl(mi);
+ init_cp(cp);
+ reshape_cube21(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void draw_cube21(ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ cube21_conf *cp;
+ if (!cube21) return;
+ cp = &cube21[MI_SCREEN(mi)];
+ MI_IS_DRAWN(mi) = True;
+ if (!cp->glx_context) return;
+ mi->polygon_count = 0;
+ glXMakeCurrent(display, window, *(cp->glx_context));
+ if (!draw_main(mi, cp)) {
+ MI_ABORT(mi);
+ return;
+ }
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+ glXSwapBuffers(display, window);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void change_cube21(ModeInfo * mi)
+{
+ cube21_conf *cp = &cube21[MI_SCREEN(mi)];
+ if (!cp->glx_context) return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cp->glx_context));
+ init_gl(mi);
+}
+#endif /* !STANDALONE */
+
+
+XSCREENSAVER_MODULE ("Cube21", cube21)
+
+#endif
diff --git a/hacks/glx/cube21.man b/hacks/glx/cube21.man
new file mode 100644
index 0000000..d90c0fb
--- /dev/null
+++ b/hacks/glx/cube21.man
@@ -0,0 +1,147 @@
+.TH XScreenSaver 1 "30-Aug-05" "X Version 11"
+.SH NAME
+cube21 - animates the Cube 21 puzzle
+.SH SYNOPSIS
+.B cube21
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-install]
+[\-delay \fImicroseconds\fP]
+[\-texture] [\-no\-texture]
+[\-mono]
+[\-wireframe]
+[\-spin] [\-no\-spin]
+[\-wander] [\-no\-wander]
+[\-randomize] [\-no\-randomize]
+[\-spinspeed \fInumber\fP]
+[\-rotspeed \fInumber\fP]
+[\-wanderspeed \fInumber\fP]
+[\-wait \fInumber\fP]
+[\-cubesize \fInumber\fP]
+[\-colormode \fIarg\fP]
+[\-fps]
+.SH DESCRIPTION
+This program animates a puzzle known as Cube 21 or Square-1.
+Its moves are chosen randomly.
+.P
+Cube 21 is a Rubik-like puzzle invented in 1992. Its specialities are that
+it can change its shape and even the number of possible moves. It can have
+more than 200 different shapes and the total number of configurations
+(assuming colors) is several tens of billions.
+.SH OPTIONS
+.I cube21
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How long to pause between frames. Default is 20000, or 0.02 second.
+.TP 8
+.B \-texture
+Use texture maps. This is the default.
+.TP 8
+.B \-no\-texture
+Use solid colors.
+.TP 8
+.B \-mono
+Disable both texture maps and colors.
+.TP 8
+.B \-wireframe
+Only draw outlines. Outlines of all pieces, not only the whole object, are drawn.
+.TP 8
+.B \-spin
+Spin the whole object around X, Y and Z axes. This is the default.
+.TP 8
+.B \-no\-spin
+Do not spin, showing the same three faces all the time.
+.TP 8
+.B \-wander
+Move the object around the screen. This is the default.
+.TP 8
+.B \-no\-wander
+Keep the object centered on the screen.
+.TP 8
+.B \-randomize
+Shuffle the puzzle randomly at startup. This is the default.
+.TP 8
+.B \-no\-randomize
+Do not shuffle at startup, begin at the shape of cube.
+.TP 8
+.B \-spinspeed \fInumber\fP
+The relative speed of spinning. Default is 1.0.
+.TP 8
+.B \-rotspeed \fInumber\fP
+The relative speed of the moves. Default is 3.0. Setting to \(<= 0.0
+makes the object stay at one configuration.
+.TP 8
+.B \-wanderspeed \fInumber\fP
+The relative speed of wandering around the screen. Default is 1.0.
+.TP 8
+.B \-wait \fInumber\fP
+How long to stay at ending position after each move. The meaning of
+the argument is again relative. Default is 40.0.
+.TP 8
+.B \-cubesize \fInumber\fP
+Size of the object. Value of 3.0 fills roughly all the screen (its height). Default is 0.7.
+.TP 8
+.B \-colormode \fIargument\fP
+How many and which colors should the object have. The colors are put on the piece
+faces so that the puzzle is solvable. The inner faces are not influenced.
+.RS
+.TP 8
+.BR se " or " silver
+Simulate the "Silver Edition" \- white and one random color.
+.TP 8
+.BR 2 " or " two
+Two random colors.
+.TP 8
+.BR ce " or " classic
+Simulate the "Classic Edition" \- white, yellow, orange, red, green and blue.
+.TP 8
+.BR 6 " or " six
+Six random colors.
+.TP 8
+.BR 1 " or " random " or " rnd
+One random color.
+.TP 8
+Anything else
+All faces white.
+.RE
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2005 by Vaclav Potocek. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Vaclav (Vasek) Potocek <vasek.potocek@post.cz>, 30-Aug-05.
diff --git a/hacks/glx/cubenetic.c b/hacks/glx/cubenetic.c
new file mode 100644
index 0000000..cc9b0d6
--- /dev/null
+++ b/hacks/glx/cubenetic.c
@@ -0,0 +1,598 @@
+/* cubenetic, Copyright (c) 2002-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*count: 5 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_cube 0
+# define release_cube 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "XYZ"
+#define DEF_WANDER "True"
+#define DEF_TEXTURE "True"
+
+#define DEF_WAVES "3"
+#define DEF_WAVE_SPEED "80"
+#define DEF_WAVE_RADIUS "512"
+
+typedef struct {
+ int color;
+ GLfloat x, y, z;
+ GLfloat w, h, d;
+ int frame;
+ GLfloat dx, dy, dz;
+ GLfloat dw, dh, dd;
+} cube;
+
+typedef struct {
+ int x, y;
+ double xth, yth;
+} wave_src;
+
+typedef struct {
+ int nwaves;
+ int radius;
+ int speed;
+ wave_src *srcs;
+ int *heights;
+} waves;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLuint cube_list;
+ GLuint texture_id;
+ int cube_polys;
+ int ncubes;
+ cube *cubes;
+ waves *waves;
+
+ int texture_width, texture_height;
+ unsigned char *texture;
+
+ int ncolors;
+ XColor *cube_colors;
+ XColor *texture_colors;
+
+} cube_configuration;
+
+static cube_configuration *ccs = NULL;
+
+static char *do_spin;
+static Bool do_wander;
+static Bool do_texture;
+
+static int wave_count;
+static int wave_speed;
+static int wave_radius;
+static int texture_size = 256;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ {"-texture", ".texture", XrmoptionNoArg, "true" },
+ {"+texture", ".texture", XrmoptionNoArg, "false" },
+ {"-waves", ".waves", XrmoptionSepArg, 0 },
+ {"-wave-speed", ".waveSpeed", XrmoptionSepArg, 0 },
+ {"-wave-radius", ".waveRadius", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&wave_count, "waves", "Waves", DEF_WAVES, t_Int},
+ {&wave_speed, "waveSpeed", "WaveSpeed", DEF_WAVE_SPEED, t_Int},
+ {&wave_radius,"waveRadius","WaveRadius", DEF_WAVE_RADIUS,t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt cube_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static int
+unit_cube (Bool wire)
+{
+ int polys = 0;
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* front */
+ glNormal3f (0, 0, 1);
+ glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5, 0.5);
+ glTexCoord2f(0, 0); glVertex3f ( 0.5, 0.5, 0.5);
+ glTexCoord2f(0, 1); glVertex3f (-0.5, 0.5, 0.5);
+ glTexCoord2f(1, 1); glVertex3f (-0.5, -0.5, 0.5);
+ polys++;
+ glEnd();
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* back */
+ glNormal3f (0, 0, -1);
+ glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+ glTexCoord2f(0, 1); glVertex3f (-0.5, 0.5, -0.5);
+ glTexCoord2f(1, 1); glVertex3f ( 0.5, 0.5, -0.5);
+ glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5, -0.5);
+ polys++;
+ glEnd();
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* left */
+ glNormal3f (-1, 0, 0);
+ glTexCoord2f(1, 1); glVertex3f (-0.5, 0.5, 0.5);
+ glTexCoord2f(1, 0); glVertex3f (-0.5, 0.5, -0.5);
+ glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+ glTexCoord2f(0, 1); glVertex3f (-0.5, -0.5, 0.5);
+ polys++;
+ glEnd();
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* right */
+ glNormal3f (1, 0, 0);
+ glTexCoord2f(1, 1); glVertex3f ( 0.5, -0.5, -0.5);
+ glTexCoord2f(1, 0); glVertex3f ( 0.5, 0.5, -0.5);
+ glTexCoord2f(0, 0); glVertex3f ( 0.5, 0.5, 0.5);
+ glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5, 0.5);
+ polys++;
+ glEnd();
+
+ if (wire) return polys;
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* top */
+ glNormal3f (0, 1, 0);
+ glTexCoord2f(0, 0); glVertex3f ( 0.5, 0.5, 0.5);
+ glTexCoord2f(0, 1); glVertex3f ( 0.5, 0.5, -0.5);
+ glTexCoord2f(1, 1); glVertex3f (-0.5, 0.5, -0.5);
+ glTexCoord2f(1, 0); glVertex3f (-0.5, 0.5, 0.5);
+ polys++;
+ glEnd();
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* bottom */
+ glNormal3f (0, -1, 0);
+ glTexCoord2f(1, 0); glVertex3f (-0.5, -0.5, 0.5);
+ glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+ glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5, -0.5);
+ glTexCoord2f(1, 1); glVertex3f ( 0.5, -0.5, 0.5);
+ polys++;
+ glEnd();
+ return polys;
+}
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_cube (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+
+/* Waves.
+ Adapted from ../hacks/interference.c by Hannu Mallat.
+ */
+
+static void
+init_wave (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ waves *ww;
+ int i;
+ cc->waves = ww = (waves *) calloc (sizeof(*cc->waves), 1);
+ ww->nwaves = wave_count;
+ ww->radius = wave_radius;
+ ww->speed = wave_speed;
+ ww->heights = (int *) calloc (sizeof(*ww->heights), ww->radius);
+ ww->srcs = (wave_src *) calloc (sizeof(*ww->srcs), ww->nwaves);
+
+ for (i = 0; i < ww->radius; i++)
+ {
+ float max = (cc->ncolors * (ww->radius - i) / (float) ww->radius);
+ ww->heights[i] = ((max + max * cos(i / 50.0)) / 2.0);
+ }
+
+ for (i = 0; i < ww->nwaves; i++)
+ {
+ ww->srcs[i].xth = frand(2.0) * M_PI;
+ ww->srcs[i].yth = frand(2.0) * M_PI;
+ }
+}
+
+static void
+interference (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ waves *ww = cc->waves;
+ int x, y, i;
+
+ /* Move the wave origins around
+ */
+ for (i = 0; i < ww->nwaves; i++)
+ {
+ ww->srcs[i].xth += (ww->speed / 1000.0);
+ if (ww->srcs[i].xth > 2*M_PI)
+ ww->srcs[i].xth -= 2*M_PI;
+ ww->srcs[i].yth += (ww->speed / 1000.0);
+ if (ww->srcs[i].yth > 2*M_PI)
+ ww->srcs[i].yth -= 2*M_PI;
+
+ ww->srcs[i].x = (cc->texture_width/2 +
+ (cos (ww->srcs[i].xth) *
+ cc->texture_width / 2));
+ ww->srcs[i].y = (cc->texture_height/2 +
+ (cos (ww->srcs[i].yth) *
+ cc->texture_height / 2));
+ }
+
+ /* Compute the effect of the waves on each pixel,
+ and generate the output map.
+ */
+ for (y = 0; y < cc->texture_height; y++)
+ for (x = 0; x < cc->texture_width; x++)
+ {
+ int result = 0;
+ unsigned char *o;
+ for (i = 0; i < ww->nwaves; i++)
+ {
+ int dx = x - ww->srcs[i].x;
+ int dy = y - ww->srcs[i].y;
+ int dist = sqrt (dx*dx + dy*dy);
+ result += (dist > ww->radius ? 0 : ww->heights[dist]);
+ }
+ result %= cc->ncolors;
+
+ o = cc->texture + (((y * cc->texture_width) + x) << 2);
+ o[0] = (cc->texture_colors[result].red >> 8);
+ o[1] = (cc->texture_colors[result].green >> 8);
+ o[2] = (cc->texture_colors[result].blue >> 8);
+ /* o[3] = 0xFF; */
+ }
+}
+
+
+/* Textures
+ */
+
+static void
+init_texture (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int i;
+
+ glEnable(GL_TEXTURE_2D);
+
+ clear_gl_error();
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ glGenTextures (1, &cc->texture_id);
+ glBindTexture (GL_TEXTURE_2D, cc->texture_id);
+ check_gl_error("texture binding");
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ check_gl_error("texture initialization");
+
+ cc->texture_width = texture_size;
+ cc->texture_height = texture_size;
+
+ i = texture_size * texture_size * 4;
+ cc->texture = (unsigned char *) malloc (i);
+ memset (cc->texture, 0xFF, i);
+}
+
+
+static void
+shuffle_texture (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ interference (mi);
+ clear_gl_error();
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ cc->texture_width, cc->texture_height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE,
+ cc->texture);
+ check_gl_error("texture");
+}
+
+
+static void
+reset_colors (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ double H[3], S[3], V[3];
+ int shift = 60;
+ H[0] = frand(360.0);
+ H[1] = ((H[0] + shift) < 360) ? (H[0]+shift) : (H[0] + shift - 360);
+ H[2] = ((H[1] + shift) < 360) ? (H[1]+shift) : (H[1] + shift - 360);
+ S[0] = S[1] = S[2] = 1.0;
+ V[0] = V[1] = V[2] = 1.0;
+ make_color_loop(0, 0, 0,
+ H[0], S[0], V[0],
+ H[1], S[1], V[1],
+ H[2], S[2], V[2],
+ cc->texture_colors, &cc->ncolors,
+ False, False);
+
+ make_smooth_colormap (0, 0, 0,
+ cc->cube_colors, &cc->ncolors,
+ False, 0, False);
+}
+
+
+ENTRYPOINT Bool
+cube_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, cc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &cc->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ reset_colors (mi);
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_cube (ModeInfo *mi)
+{
+ int i;
+ cube_configuration *cc;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, ccs);
+
+ cc = &ccs[MI_SCREEN(mi)];
+
+ if ((cc->glx_context = init_GL(mi)) != NULL) {
+ reshape_cube (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ if (!wire)
+ {
+ static const GLfloat pos[4] = {1.0, 0.5, 1.0, 0.0};
+ static const GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ static const GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ }
+
+
+ {
+ Bool spinx=False, spiny=False, spinz=False;
+ double spin_speed = 1.0;
+ double wander_speed = 0.05;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') spinx = True;
+ else if (*s == 'y' || *s == 'Y') spiny = True;
+ else if (*s == 'z' || *s == 'Z') spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ cc->rot = make_rotator (spinx ? spin_speed : 0,
+ spiny ? spin_speed : 0,
+ spinz ? spin_speed : 0,
+ 1.0,
+ do_wander ? wander_speed : 0,
+ (spinx && spiny && spinz));
+ cc->trackball = gltrackball_init (True);
+ }
+
+ cc->ncolors = 256;
+ cc->texture_colors = (XColor *) calloc(cc->ncolors, sizeof(XColor));
+ cc->cube_colors = (XColor *) calloc(cc->ncolors, sizeof(XColor));
+
+ reset_colors (mi);
+
+ cc->ncubes = MI_COUNT (mi);
+ cc->cubes = (cube *) calloc (sizeof(cube), cc->ncubes);
+ for (i = 0; i < cc->ncubes; i++)
+ {
+ cube *cube = &cc->cubes[i];
+ cube->color = random() % cc->ncolors;
+ cube->w = 1.0;
+ cube->h = 1.0;
+ cube->d = 1.0;
+ cube->dx = frand(0.1);
+ cube->dy = frand(0.1);
+ cube->dz = frand(0.1);
+ cube->dw = frand(0.1);
+ cube->dh = frand(0.1);
+ cube->dd = frand(0.1);
+ }
+
+ if (wire)
+ do_texture = False;
+
+ if (do_texture)
+ {
+ init_texture (mi);
+ init_wave (mi);
+ shuffle_texture (mi);
+ }
+
+ cc->cube_list = glGenLists (1);
+ glNewList (cc->cube_list, GL_COMPILE);
+ cc->cube_polys = unit_cube (wire);
+ glEndList ();
+}
+
+
+static void
+shuffle_cubes (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < cc->ncubes; i++)
+ {
+# define SINOID(SCALE,FRAME,SIZE) \
+ ((((1 + sin((FRAME * (SCALE)) / 2 * M_PI)) / 2.0) * (SIZE)) - (SIZE)/2)
+
+ cube *cube = &cc->cubes[i];
+ cube->x = SINOID(cube->dx, cube->frame, 0.5);
+ cube->y = SINOID(cube->dy, cube->frame, 0.5);
+ cube->z = SINOID(cube->dz, cube->frame, 0.5);
+ cube->w = SINOID(cube->dw, cube->frame, 0.9) + 1.0;
+ cube->h = SINOID(cube->dh, cube->frame, 0.9) + 1.0;
+ cube->d = SINOID(cube->dd, cube->frame, 0.9) + 1.0;
+ cube->frame++;
+# undef SINOID
+ }
+}
+
+
+ENTRYPOINT void
+draw_cube (ModeInfo *mi)
+{
+ cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!cc->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cc->glx_context));
+
+ glShadeModel(GL_FLAT);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (cc->rot, &x, &y, &z, !cc->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 6,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (cc->trackball);
+
+ get_rotation (cc->rot, &x, &y, &z, !cc->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ glScalef (2.5, 2.5, 2.5);
+
+ for (i = 0; i < cc->ncubes; i++)
+ {
+ cube *cube = &cc->cubes[i];
+ GLfloat color[4];
+ color[0] = cc->cube_colors[cube->color].red / 65536.0;
+ color[1] = cc->cube_colors[cube->color].green / 65536.0;
+ color[2] = cc->cube_colors[cube->color].blue / 65536.0;
+ color[3] = 1.0;
+ cube->color++;
+ if (cube->color >= cc->ncolors) cube->color = 0;
+
+ glPushMatrix ();
+ glTranslatef (cube->x, cube->y, cube->z);
+ glScalef (cube->w, cube->h, cube->d);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glCallList (cc->cube_list);
+ mi->polygon_count += cc->cube_polys;
+ glPopMatrix ();
+ }
+
+ shuffle_cubes (mi);
+ if (do_texture)
+ shuffle_texture (mi);
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("Cubenetic", cubenetic, cube)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/cubenetic.man b/hacks/glx/cubenetic.man
new file mode 100644
index 0000000..e11d479
--- /dev/null
+++ b/hacks/glx/cubenetic.man
@@ -0,0 +1,89 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+cubenetic - cubist 3D undulating blob.
+.SH SYNOPSIS
+.B cubenetic
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-count \fInumber\fP]
+[\-no-wander]
+[\-no-spin]
+[\-spin \fI[XYZ]\fP]
+[\-wireframe]
+[\-no-texture]
+[\-wave-speed \fInumber\fP]
+[\-wave-radius \fInumber\fP]
+[\-waves \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+Draws a pulsating set of overlapping boxes with ever-chaning blobby
+patterns undulating across their surfaces.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-count \fInumber\fP
+How many boxes make up the object. Default: 5.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin \fI[XYZ]\fP
+Around which axes should the object spin?
+.TP 8
+.B \-no-spin
+Don't spin.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-texture | \-no-texture
+Display Solid Colors.
+.TP 8
+.B \-wave-speed \fInumber\fP
+Surface Pattern Speed. 5 - 150. Default: 80.
+.TP 8
+.B \-wave-radius \fInumber\fP
+Surface Pattern Overlap. 5 - 600. Default: 512.
+.TP 8
+.B \-waves \fInumber\fP
+Surface Pattern Complexity. 1 - 20. Default: 3.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/cubestack.c b/hacks/glx/cubestack.c
new file mode 100644
index 0000000..70883f6
--- /dev/null
+++ b/hacks/glx/cubestack.c
@@ -0,0 +1,462 @@
+/* cubestack, Copyright (c) 2016 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_cube 0
+# define release_cube 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_THICKNESS "0.13"
+#define DEF_OPACITY "0.7"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ GLfloat state;
+ GLfloat r;
+ int length;
+ int ncolors;
+ XColor *colors;
+ int ccolor;
+} cube_configuration;
+
+static cube_configuration *bps = NULL;
+
+static GLfloat speed;
+static GLfloat thickness;
+static GLfloat opacity;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-opacity", ".opacity", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&opacity, "opacity", "Opacity", DEF_OPACITY, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt cube_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static int
+draw_strut (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+ GLfloat h;
+
+ glPushMatrix();
+ glFrontFace (GL_CCW);
+ glNormal3f (0, 0, -1);
+ glTranslatef (-0.5, -0.5, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+ glVertex3f (0, 0, 0);
+ glVertex3f (1, 0, 0);
+ glVertex3f (1 - thickness, thickness, 0);
+ glVertex3f (thickness, thickness, 0);
+ glEnd();
+ polys += 2;
+
+ h = 0.5 - thickness;
+ if (h >= 0.25)
+ {
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+ glVertex3f (0.5, 0.5, 0);
+ glVertex3f (0.5 - thickness/2, 0.5 - thickness/2, 0);
+ glVertex3f (0.5 - thickness/2, 0.5 - h/2, 0);
+ glVertex3f (0.5 + thickness/2, 0.5 - h/2, 0);
+ glVertex3f (0.5 + thickness/2, 0.5 - thickness/2, 0);
+ glEnd();
+ polys += 3;
+ }
+
+ glPopMatrix();
+
+ return polys;
+}
+
+
+static int
+draw_face (ModeInfo *mi)
+{
+ int i;
+ int polys = 0;
+ for (i = 0; i < 4; i++)
+ {
+ polys += draw_strut (mi);
+ glRotatef (90, 0, 0, 1);
+ }
+ return polys;
+}
+
+
+static GLfloat
+ease_fn (GLfloat r)
+{
+ return cos ((r/2 + 1) * M_PI) + 1; /* Smooth curve up, end at slope 1. */
+}
+
+
+static GLfloat
+ease_ratio (GLfloat r)
+{
+ GLfloat ease = 0.5;
+ if (r <= 0) return 0;
+ else if (r >= 1) return 1;
+ else if (r <= ease) return ease * ease_fn (r / ease);
+ else if (r > 1-ease) return 1 - ease * ease_fn ((1 - r) / ease);
+ else return r;
+}
+
+
+static int
+draw_cube_1 (ModeInfo *mi, GLfloat state, GLfloat color[4], Bool bottom_p)
+{
+ int polys = 0;
+ int istate = state;
+ GLfloat r = state - istate;
+ GLfloat a = color[3];
+
+ r = ease_ratio (r);
+
+# define COLORIZE(R) \
+ color[3] = a * R; \
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); \
+ glColor4fv (color)
+
+ if (bottom_p)
+ {
+ GLfloat r2 = (state < 0 ? 1 + state : 1);
+ COLORIZE(r2);
+ polys += draw_face (mi); /* Bottom */
+ }
+
+ if (state >= 0) /* Left */
+ {
+ GLfloat r2 = (istate == 0 ? r : 1);
+ COLORIZE(r2);
+ glPushMatrix();
+ glTranslatef (-0.5, 0.5, 0);
+ glRotatef (-r2 * 90, 0, 1, 0);
+ glTranslatef (0.5, -0.5, 0);
+ polys += draw_face (mi);
+ glPopMatrix();
+ }
+
+ if (state >= 1) /* Back */
+ {
+ GLfloat r2 = (istate == 1 ? r : 1);
+ COLORIZE(r2);
+ glPushMatrix();
+ glTranslatef (-0.5, 0.5, 0);
+ glRotatef ( 90, 0, 1, 0);
+ glRotatef (-90, 0, 0, 1);
+ glRotatef (-r2 * 90, 0, 1, 0);
+ glTranslatef (0.5, -0.5, 0);
+ polys += draw_face (mi);
+ glPopMatrix();
+ }
+
+ if (state >= 2) /* Right */
+ {
+ GLfloat r2 = (istate == 2 ? r : 1);
+ COLORIZE(r2);
+ glPushMatrix();
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef ( 90, 0, 1, 0);
+ glRotatef (-90, 0, 0, 1);
+ glRotatef (-90, 0, 1, 0);
+ glRotatef (-r2 * 90, 0, 1, 0);
+ glTranslatef (-0.5, -0.5, 0);
+ polys += draw_face (mi);
+ glPopMatrix();
+ }
+
+ if (state >= 3) /* Front */
+ {
+ GLfloat r2 = (istate == 3 ? r : 1);
+ COLORIZE(r2);
+ glPushMatrix();
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef ( 90, 0, 1, 0);
+ glRotatef (-90, 0, 0, 1);
+ glRotatef (-180, 0, 1, 0);
+ glTranslatef (-1, 0, 0);
+ glRotatef (-r2 * 90, 0, 1, 0);
+ glTranslatef (0.5, -0.5, 0);
+ polys += draw_face (mi);
+ glPopMatrix();
+ }
+
+ if (state >= 4) /* Top */
+ {
+ GLfloat r2 = (istate == 4 ? r : 1);
+ COLORIZE(r2);
+ glPushMatrix();
+ glTranslatef (0, 0, 1);
+ glRotatef (-90, 0, 0, 1);
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef (-90, 0, 1, 0);
+ glRotatef (r2 * 90, 0, 1, 0);
+ glTranslatef (-0.5, -0.5, 0);
+ polys += draw_face (mi);
+ glPopMatrix();
+ }
+
+ return polys;
+}
+
+
+static int
+draw_cubes (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ int polys = 0;
+ GLfloat z = bp->state / 6;
+ int i;
+ GLfloat c[4];
+ int c0 = bp->ccolor;
+ GLfloat alpha = opacity;
+
+ glPushMatrix();
+ glTranslatef (0, 0, -1.5 - z);
+
+ glTranslatef (0, 0, -bp->length);
+ for (i = bp->length-1; i >= 0; i--)
+ {
+ int c1 = c0 - i - 1;
+ if (c1 < 0) c1 += bp->ncolors;
+ c[0] = bp->colors[c1].red / 65536.0;
+ c[1] = bp->colors[c1].green / 65536.0;
+ c[2] = bp->colors[c1].blue / 65536.0;
+ c[3] = alpha;
+
+ glTranslatef (0, 0, 1);
+ polys += draw_cube_1 (mi, 5, c, i == bp->length - 1);
+ }
+
+ c[0] = bp->colors[c0].red / 65536.0;
+ c[1] = bp->colors[c0].green / 65536.0;
+ c[2] = bp->colors[c0].blue / 65536.0;
+ c[3] = alpha;
+ glTranslatef (0, 0, 1);
+ polys += draw_cube_1 (mi, bp->state, c, bp->length == 0);
+
+ glPopMatrix();
+
+ return polys;
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_cube (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+cube_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ bp->ncolors = 32;
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ return True;
+ }
+ }
+
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_cube (ModeInfo *mi)
+{
+ cube_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_cube (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ glDisable (GL_LIGHTING);
+ glEnable(GL_DEPTH_TEST);
+ glShadeModel (GL_SMOOTH);
+ glEnable (GL_NORMALIZE);
+ glDisable (GL_CULL_FACE);
+ glEnable (GL_BLEND);
+ glDisable (GL_DEPTH_TEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE);
+ }
+
+ {
+ double wander_speed = 0.005;
+ bp->rot = make_rotator (0, 0, 0, 0,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ if (thickness > 0.5)
+ thickness = 0.5;
+ if (thickness < 0.001)
+ thickness = 0.001;
+
+ bp->ncolors = 32;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ bp->state = -1;
+}
+
+
+ENTRYPOINT void
+draw_cube (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 4,
+ (y - 0.5) * 4,
+ (z - 0.5) * 2);
+
+ gltrackball_rotate (bp->trackball);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (6, 6, 6);
+ glRotatef (-45, 1, 0, 0);
+ glRotatef (20, 0, 0, 1);
+ glRotatef (bp->r, 0, 0, 1);
+
+ mi->polygon_count = draw_cubes (mi);
+ glPopMatrix ();
+
+ if (!bp->button_down_p)
+ {
+ int max = 6;
+ bp->state += speed * 0.015;
+ bp->r += speed * 0.05;
+ while (bp->r > 360)
+ bp->r -= 360;
+ while (bp->state > max)
+ {
+ bp->state -= max;
+ bp->length++;
+ bp->ccolor++;
+ if (bp->ccolor > bp->ncolors)
+ bp->ccolor = 0;
+ }
+
+ if (bp->length > 20)
+ bp->length = 20;
+ }
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("CubeStack", cubestack, cube)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/cubestack.man b/hacks/glx/cubestack.man
new file mode 100644
index 0000000..511d116
--- /dev/null
+++ b/hacks/glx/cubestack.man
@@ -0,0 +1,72 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+cubestack - An endless stack of unfolding, translucent cubes.
+.SH SYNOPSIS
+.B cubestack
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-thickness \fInumber\fP]
+[\-opacity \fInumber\fP]
+[\-no-wander]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+An endless stack of unfolding, translucent cubes.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-thickness \fInumber\fP
+Thickness of the face edges. 0.0 - 0.5. Default: 0.13.
+.TP 8
+.B \-opacity \fInumber\fP
+Opacity of the cubes. 0.01 - 1.0. Default: 0.7.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/cubestorm.c b/hacks/glx/cubestorm.c
new file mode 100644
index 0000000..cf973c9
--- /dev/null
+++ b/hacks/glx/cubestorm.c
@@ -0,0 +1,469 @@
+/* cubestorm, Copyright (c) 2003-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: " DEF_COUNT "\n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+
+# define free_cube 0
+# define release_cube 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_THICKNESS "0.06"
+#define DEF_COUNT "4"
+#define DEF_LENGTH "200"
+
+typedef struct {
+ GLfloat px, py, pz;
+ GLfloat rx, ry, rz;
+ int ccolor;
+} histcube;
+
+typedef struct {
+ rotator *rot;
+ int ccolor;
+} subcube;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool clear_p;
+
+ GLuint cube_list;
+
+ int ncolors;
+ XColor *colors;
+
+ subcube *subcubes;
+
+ int hist_size, hist_count;
+ histcube *hist;
+
+} cube_configuration;
+
+static cube_configuration *bps = NULL;
+
+static Bool do_spin;
+static Bool do_wander;
+static GLfloat speed;
+static GLfloat thickness;
+static int max_length;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-db", ".doubleBuffer", XrmoptionNoArg, "True"},
+ { "+db", ".doubleBuffer", XrmoptionNoArg, "False"},
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-length", ".length", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&max_length, "length", "Length", DEF_LENGTH, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt cube_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static void
+draw_face (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+
+ int i;
+ GLfloat t = thickness / 2;
+ GLfloat a = -0.5;
+ GLfloat b = 0.5;
+
+ if (t <= 0) t = 0.001;
+ else if (t > 0.5) t = 0.5;
+
+ glPushMatrix();
+ glFrontFace(GL_CW);
+
+ for (i = 0; i < 4; i++)
+ {
+ glNormal3f (0, 0, -1);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (a, a, a);
+ glVertex3f (b, a, a);
+ glVertex3f (b-t, a+t, a);
+ glVertex3f (a+t, a+t, a);
+ glEnd();
+
+ glNormal3f (0, 1, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (b-t, a+t, a);
+ glVertex3f (b-t, a+t, a+t);
+ glVertex3f (a+t, a+t, a+t);
+ glVertex3f (a+t, a+t, a);
+ glEnd();
+
+ glRotatef(90, 0, 0, 1);
+ }
+ glPopMatrix();
+}
+
+static void
+draw_faces (ModeInfo *mi)
+{
+ glPushMatrix();
+ draw_face (mi);
+ glRotatef (90, 0, 1, 0); draw_face (mi);
+ glRotatef (90, 0, 1, 0); draw_face (mi);
+ glRotatef (90, 0, 1, 0); draw_face (mi);
+ glRotatef (90, 1, 0, 0); draw_face (mi);
+ glRotatef (180, 1, 0, 0); draw_face (mi);
+ glPopMatrix();
+}
+
+
+static void
+new_cube_colors (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ bp->ncolors = 128;
+ if (bp->colors) free (bp->colors);
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ for (i = 0; i < MI_COUNT(mi); i++)
+ bp->subcubes[i].ccolor = random() % bp->ncolors;
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_cube (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 45.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+cube_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ')
+ {
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ goto DEF;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ DEF:
+ new_cube_colors (mi);
+ return True;
+ }
+ return False;
+}
+
+
+ENTRYPOINT void
+init_cube (ModeInfo *mi)
+{
+ cube_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ if (MI_COUNT(mi) <= 0) MI_COUNT(mi) = 1;
+
+ bp->trackball = gltrackball_init (True);
+ bp->subcubes = (subcube *) calloc (MI_COUNT(mi), sizeof(subcube));
+
+ bp->hist_count = 0;
+ bp->hist_size = 100;
+ bp->hist = (histcube *) malloc (bp->hist_size * sizeof(*bp->hist));
+
+ for (i = 0; i < MI_COUNT(mi); i++)
+ {
+ double wander_speed, spin_speed, spin_accel;
+
+ if (i == 0)
+ {
+ wander_speed = 0.05 * speed;
+ spin_speed = 10.0 * speed;
+ spin_accel = 4.0 * speed;
+ }
+ else
+ {
+ wander_speed = 0;
+ spin_speed = 4.0 * speed;
+ spin_accel = 2.0 * speed;
+ }
+
+ bp->subcubes[i].rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ }
+
+ bp->colors = 0;
+ new_cube_colors (mi);
+
+ reshape_cube (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ bp->cube_list = glGenLists (1);
+ glNewList (bp->cube_list, GL_COMPILE);
+ draw_faces (mi);
+ glEndList ();
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+/* Originally, this program achieved the "accumulating cubes" effect by
+ simply not clearing the depth or color buffers between frames. That
+ doesn't work on modern systems, particularly mobile: you can no longer
+ rely on your buffers being unmolested once you have yielded. So now we
+ must save and re-render every polygon. Noof has the same problem and
+ solves it by taking a screenshot of the frame buffer into a texture, but
+ cubestorm needs to restore the depth buffer as well as the color buffer.
+ */
+static void
+push_hist (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ double px, py, pz;
+ double rx = 0, ry = 0, rz = 0;
+ int i;
+
+ if (bp->hist_count > max_length &&
+ bp->hist_count > MI_COUNT(mi) &&
+ !bp->button_down_p)
+ {
+ /* Drop history off of the end. */
+ memmove (bp->hist,
+ bp->hist + MI_COUNT(mi),
+ (bp->hist_count - MI_COUNT(mi)) * sizeof(*bp->hist));
+ bp->hist_count -= MI_COUNT(mi);
+ }
+
+ if (bp->hist_count + MI_COUNT(mi) >= bp->hist_size)
+ {
+ bp->hist_size = bp->hist_count + MI_COUNT(mi) + 100;
+ bp->hist = (histcube *)
+ realloc (bp->hist, bp->hist_size * sizeof(*bp->hist));
+ }
+
+ get_position (bp->subcubes[0].rot, &px, &py, &pz, !bp->button_down_p);
+
+ for (i = 0; i < MI_COUNT(mi); i++)
+ {
+ subcube *sc = &bp->subcubes[i];
+ histcube *hc = &bp->hist[bp->hist_count];
+ double rx2, ry2, rz2;
+
+ get_rotation (sc->rot, &rx2, &ry2, &rz2, !bp->button_down_p);
+
+ if (i == 0) /* N+1 cubes rotate relative to cube 0 */
+ rx = rx2, ry = ry2, rz = rz2;
+ else
+ rx2 += rx, ry2 += ry, rz2 += rz;
+
+ hc->px = px;
+ hc->py = py;
+ hc->pz = pz;
+ hc->rx = rx2;
+ hc->ry = ry2;
+ hc->rz = rz2;
+ hc->ccolor = sc->ccolor;
+ sc->ccolor++;
+ if (sc->ccolor >= bp->ncolors)
+ sc->ccolor = 0;
+ bp->hist_count++;
+ }
+}
+
+
+ENTRYPOINT void
+draw_cube (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (bp->clear_p) /* we're in "no vapor trails" mode */
+ {
+ bp->hist_count = 0;
+ if (! (random() % (int) (25 / speed)))
+ bp->clear_p = False;
+ }
+ else
+ {
+ if (! (random() % (int) (200 / speed)))
+ {
+ bp->clear_p = True;
+ new_cube_colors (mi);
+ }
+ }
+
+ push_hist (mi);
+ mi->polygon_count = 0;
+ for (i = 0; i < bp->hist_count; i++)
+ {
+ GLfloat bcolor[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat bshiny = 128.0;
+
+ histcube *hc = &bp->hist[i];
+
+ glPushMatrix();
+ glScalef (1.1, 1.1, 1.1);
+
+ glTranslatef((hc->px - 0.5) * 15,
+ (hc->py - 0.5) * 15,
+ (hc->pz - 0.5) * 30);
+ gltrackball_rotate (bp->trackball);
+
+ glScalef (4.0, 4.0, 4.0);
+
+ glRotatef (hc->rx * 360, 1.0, 0.0, 0.0);
+ glRotatef (hc->ry * 360, 0.0, 1.0, 0.0);
+ glRotatef (hc->rz * 360, 0.0, 0.0, 1.0);
+
+ bcolor[0] = bp->colors[hc->ccolor].red / 65536.0;
+ bcolor[1] = bp->colors[hc->ccolor].green / 65536.0;
+ bcolor[2] = bp->colors[hc->ccolor].blue / 65536.0;
+
+ if (wire)
+ glColor3f (bcolor[0], bcolor[1], bcolor[2]);
+ else
+ {
+ glMaterialfv (GL_FRONT, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT, GL_SHININESS, bshiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bcolor);
+ }
+
+ glCallList (bp->cube_list);
+ mi->polygon_count += (4 * 2 * 6);
+
+ glPopMatrix();
+ }
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("CubeStorm", cubestorm, cube)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/cubestorm.man b/hacks/glx/cubestorm.man
new file mode 100644
index 0000000..9d912fd
--- /dev/null
+++ b/hacks/glx/cubestorm.man
@@ -0,0 +1,77 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+cubestorm - a series of 3D boxes that fill space
+.SH SYNOPSIS
+.B cubestorm
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIfloat\fP]
+[\-count \fIint\fP]
+[\-thickness \fIfloat\fP]
+[\-no-wander]
+[\-no-spin]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Draws a series of rotating 3D boxes that intersect each other and
+eventually fill space.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Larger numbers mean run faster. Default: 1.0.
+.TP 8
+.B \-count \fInumber\fP
+Number of cubes. Default 4.
+.TP 8
+.B \-thickness \fIfloat\fP
+How thick the struts making up the cubes should be (0.0-1.0). Default 0.06.
+.TP 8
+.B \-wander | \-no-wander
+Whether the cubes should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the cubes should spin.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/cubetwist.c b/hacks/glx/cubetwist.c
new file mode 100644
index 0000000..61af287
--- /dev/null
+++ b/hacks/glx/cubetwist.c
@@ -0,0 +1,595 @@
+/* cubetwist, Copyright (c) 2016-2017 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_cube 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_FLAT "True"
+#define DEF_THICKNESS "0.0"
+#define DEF_DISPLACEMENT "0.0"
+
+typedef struct cube cube;
+struct cube {
+ GLfloat size, thickness;
+ XYZ pos, rot;
+ GLfloat color[4];
+ cube *next;
+};
+
+typedef struct oscillator oscillator;
+struct oscillator {
+ double ratio, from, to, speed, *var;
+ int remaining;
+ oscillator *next;
+};
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ cube *cubes;
+ oscillator *oscillators;
+} cube_configuration;
+
+static cube_configuration *bps = NULL;
+
+static Bool do_flat;
+static Bool do_spin;
+static GLfloat speed;
+static GLfloat thickness;
+static GLfloat displacement;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-flat", ".flat", XrmoptionNoArg, "True" },
+ { "+flat", ".flat", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-displacement", ".displacement", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_flat, "flat", "flat", DEF_FLAT, t_Bool},
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&displacement, "displacement", "Displacement", DEF_DISPLACEMENT, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt cube_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static int
+draw_strut (ModeInfo *mi, cube *c)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+
+ glPushMatrix();
+ glFrontFace (GL_CW);
+ glNormal3f (0, 0, -1);
+ glTranslatef (-c->size/2, -c->size/2, -c->size/2);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+ glVertex3f (0, 0, 0);
+ glVertex3f (c->size, 0, 0);
+ glVertex3f (c->size - c->thickness, c->thickness, 0);
+ glVertex3f (c->thickness, c->thickness, 0);
+ glEnd();
+ polys += 2;
+
+ glNormal3f (0, 1, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+ glVertex3f (c->thickness, c->thickness, 0);
+ glVertex3f (c->size - c->thickness, c->thickness, 0);
+ glVertex3f (c->size - c->thickness, c->thickness, c->thickness);
+ glVertex3f (c->thickness, c->thickness, c->thickness);
+ glEnd();
+ polys += 2;
+ glPopMatrix();
+
+ return polys;
+}
+
+
+static int
+draw_cubes (ModeInfo *mi, cube *c)
+{
+ int polys = 0;
+ int i, j;
+
+ glColor4fv (c->color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c->color);
+
+ glPushMatrix();
+ for (j = 0; j < 6; j++)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ polys += draw_strut (mi, c);
+ glRotatef (90, 0, 0, 1);
+ }
+ if (j == 3)
+ glRotatef (90, 0, 0, 1);
+ if (j < 4)
+ glRotatef (90, 0, 1, 0);
+ else
+ glRotatef (180, 1, 0, 0);
+ }
+ glPopMatrix();
+
+ if (c->next)
+ {
+ /* This leaves rotations on the prevailing matrix stack, but since
+ this is a tail-call, that's fine. Don't blow the matrix stack. */
+ glRotatef (c->rot.x, 1, 0, 0);
+ glRotatef (c->rot.y, 0, 1, 0);
+ glRotatef (c->rot.z, 0, 0, 1);
+ glTranslatef (c->pos.x, c->pos.y, c->pos.z);
+ c->next->pos = c->pos;
+ c->next->rot = c->rot;
+ polys += draw_cubes (mi, c->next);
+ }
+
+ check_gl_error("cubetwist");
+ return polys;
+}
+
+
+static void
+make_cubes (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat step = 2 * (thickness + displacement);
+ GLfloat size = 1.0;
+ cube *tail = 0;
+ GLfloat cc[4], cstep;
+ int depth = 0;
+ cube *c;
+
+ cc[0] = 0.3 + frand(0.7);
+ cc[1] = 0.3 + frand(0.7);
+ cc[2] = 0.3 + frand(0.7);
+ cc[3] = 1;
+
+ if (bp->cubes) abort();
+ while (1)
+ {
+ cube *c = (cube *) calloc (1, sizeof (*c));
+ c->size = size;
+ c->thickness = thickness;
+ if (tail)
+ tail->next = c;
+ else
+ bp->cubes = c;
+ tail = c;
+
+ depth++;
+ size -= step;
+ if (size <= step)
+ break;
+ }
+
+ cstep = 0.8 / depth;
+ for (c = bp->cubes; c; c = c->next)
+ {
+ memcpy (c->color, cc, sizeof(cc));
+ cc[0] -= cstep;
+ cc[1] -= cstep;
+ cc[2] -= cstep;
+ }
+}
+
+
+static GLfloat
+ease_fn (GLfloat r)
+{
+ return cos ((r/2 + 1) * M_PI) + 1; /* Smooth curve up, end at slope 1. */
+}
+
+
+static GLfloat
+ease_ratio (GLfloat r)
+{
+ GLfloat ease = 0.5;
+ if (r <= 0) return 0;
+ else if (r >= 1) return 1;
+ else if (r <= ease) return ease * ease_fn (r / ease);
+ else if (r > 1-ease) return 1 - ease * ease_fn ((1 - r) / ease);
+ else return r;
+}
+
+
+static void
+tick_oscillators (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ oscillator *prev = 0;
+ oscillator *a = bp->oscillators;
+ GLfloat tick = 0.1 / speed;
+
+ while (a)
+ {
+ oscillator *next = a->next;
+ a->ratio += tick * a->speed;
+ if (a->ratio > 1)
+ a->ratio = 1;
+
+ *a->var = a->from + (a->to - a->from) * ease_ratio (a->ratio);
+
+ if (a->ratio < 1) /* mid cycle */
+ prev = a;
+ else if (--a->remaining <= 0) /* ended, and expired */
+ {
+ if (prev)
+ prev->next = next;
+ else
+ bp->oscillators = next;
+ free (a);
+ }
+ else /* keep going the other way */
+ {
+ GLfloat swap = a->from;
+ a->from = a->to;
+ a->to = swap;
+ a->ratio = 0;
+ prev = a;
+ }
+
+ a = next;
+ }
+}
+
+
+static void
+add_oscillator (ModeInfo *mi, double *var, GLfloat speed, GLfloat to,
+ int repeat)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ oscillator *a;
+
+ /* If an oscillator is already running on this variable, don't
+ add another. */
+ for (a = bp->oscillators; a && a->next; a = a->next)
+ if (a->var == var)
+ return;
+
+ a = (oscillator *) calloc (1, sizeof (*a));
+ if (repeat <= 0) abort();
+ a->ratio = 0;
+ a->from = *var;
+ a->to = to;
+ a->speed = speed;
+ a->var = var;
+ a->remaining = repeat;
+ a->next = bp->oscillators;
+ bp->oscillators = a;
+# if 0
+ fprintf (stderr, "%s: %3d %6.2f -> %6.2f %s\n",
+ progname, repeat, *var, to,
+ (var == &bp->midpoint.z ? "z" :
+ var == &bp->tilt ? "tilt" :
+ var == &bp->axial_radius ? "r" :
+ var == &bp->speed ? "speed" : "?"));
+# endif
+}
+
+
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+static void
+add_random_oscillator (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ cube *c = bp->cubes;
+ double s1 = speed * 0.07;
+ double s2 = speed * 0.3;
+ double disp = (thickness + displacement);
+ int c1 = 1 + ((random() % 4) ? 0 : (random() % 3));
+ int c2 = 2;
+ int n = random() % 6;
+
+ switch (n) {
+ case 0: add_oscillator (mi, &c->rot.x, s1, 90 * RANDSIGN(), c1); break;
+ case 1: add_oscillator (mi, &c->rot.y, s1, 90 * RANDSIGN(), c1); break;
+ case 2: add_oscillator (mi, &c->rot.z, s1, 90 * RANDSIGN(), c1); break;
+ case 3: add_oscillator (mi, &c->pos.x, s2, disp * RANDSIGN(), c2); break;
+ case 4: add_oscillator (mi, &c->pos.y, s2, disp * RANDSIGN(), c2); break;
+ case 5: add_oscillator (mi, &c->pos.z, s2, disp * RANDSIGN(), c2); break;
+ default: abort(); break;
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_cube (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+cube_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ while (bp->cubes)
+ {
+ cube *c = bp->cubes->next;
+ free (bp->cubes);
+ bp->cubes = c;
+ }
+
+ while (bp->oscillators)
+ {
+ oscillator *o = bp->oscillators->next;
+ free (bp->oscillators);
+ bp->oscillators = o;
+ }
+
+ if (random() & 1)
+ {
+ thickness = 0.03 + frand(0.02);
+ displacement = (random() & 1) ? 0 : (thickness / 3);
+ }
+ else
+ {
+ thickness = 0.001 + frand(0.02);
+ displacement = 0;
+ }
+
+ make_cubes (mi);
+
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_cube (ModeInfo *mi)
+{
+ cube_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_cube (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire && !do_flat)
+ {
+ GLfloat color[4] = {1, 1, 1, 1};
+ GLfloat cspec[4] = {1, 1, 0, 1};
+ static const GLfloat shiny = 30;
+
+ static GLfloat pos0[4] = { 0.5, -1, -0.5, 0};
+ static GLfloat pos1[4] = {-0.75, -1, 0, 0};
+ static GLfloat amb[4] = {0, 0, 0, 1};
+ static GLfloat dif[4] = {1, 1, 1, 1};
+ static GLfloat spc[4] = {1, 1, 1, 1};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glLightfv(GL_LIGHT1, GL_POSITION, pos1);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, spc);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT, GL_SPECULAR, cspec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ }
+
+ {
+ double spin_speed = 0.05;
+ double wander_speed = 0.005;
+ double spin_accel = 1.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ if (thickness > 0.5)
+ thickness = 0.5;
+ if (displacement > 0.5)
+ displacement = 0.5;
+
+ if (thickness <= 0.0001)
+ {
+ if (random() & 1)
+ {
+ thickness = 0.03 + frand(0.02);
+ displacement = (random() & 1) ? 0 : (thickness / 3);
+ }
+ else
+ {
+ thickness = 0.001 + frand(0.02);
+ displacement = 0;
+ }
+ }
+
+ make_cubes (mi);
+}
+
+
+ENTRYPOINT void
+draw_cube (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 4,
+ (y - 0.5) * 4,
+ (z - 0.5) * 2);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (6, 6, 6);
+
+ mi->polygon_count = draw_cubes (mi, bp->cubes);
+ glPopMatrix ();
+
+ if (!bp->button_down_p)
+ tick_oscillators (mi);
+
+ if (! bp->oscillators &&
+ !bp->button_down_p &&
+ !(random() % 60))
+ {
+ bp->cubes->pos.x = bp->cubes->pos.y = bp->cubes->pos.z = 0;
+ bp->cubes->rot.x = bp->cubes->rot.y = bp->cubes->rot.z = 0;
+ add_random_oscillator (mi);
+ }
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT void
+free_cube (ModeInfo *mi)
+{
+ cube_configuration *bp = &bps[MI_SCREEN(mi)];
+ while (bp->cubes)
+ {
+ cube *c = bp->cubes->next;
+ free (bp->cubes);
+ bp->cubes = c;
+ }
+
+ while (bp->oscillators)
+ {
+ oscillator *o = bp->oscillators->next;
+ free (bp->oscillators);
+ bp->oscillators = o;
+ }
+}
+
+
+XSCREENSAVER_MODULE_2 ("CubeTwist", cubetwist, cube)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/cubetwist.man b/hacks/glx/cubetwist.man
new file mode 100644
index 0000000..3a6574b
--- /dev/null
+++ b/hacks/glx/cubetwist.man
@@ -0,0 +1,80 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+cubetwist - A series of nested cubes rotate and slide recursively.
+.SH SYNOPSIS
+.B cubetwist
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-thickness \fInumber\fP]
+[\-displacement \fInumber\fP]
+[\-no-flat]
+[\-no-wander]
+[\-no-spin]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+A series of nested cubes rotate and slide recursively.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-thickness \fInumber\fP
+Thickness of the cube edges. 0.005 - 0.2. Default: 0.05.
+.TP 8
+.B \-displacement \fInumber\fP
+Displacement between nested cubes. 0.0 - 0.2. Default: 0.01.
+.TP 8
+.B \-flat | \-no-flat
+Whether to use flat shading, or lighting. Default flat.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the object should spin.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/cubicgrid.c b/hacks/glx/cubicgrid.c
new file mode 100644
index 0000000..34b6c34
--- /dev/null
+++ b/hacks/glx/cubicgrid.c
@@ -0,0 +1,269 @@
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Cubic Grid - a 3D lattice. The observer is located in the centre of
+ * a spinning finite lattice. As it rotates, various view-throughs appear and
+ * evolve. A simple idea with interesting results.
+ *
+ * Vasek Potocek (Dec-28-2007)
+ * vasek.potocek@post.cz
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_cubicgrid 0
+# define release_cubicgrid 0
+#include "xlockmore.h"
+
+#ifdef USE_GL
+
+#define DEF_SPEED "1.0"
+#define DEF_DIV "30"
+#define DEF_ZOOM "20"
+#define DEF_BIGDOTS "True"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "rotator.h"
+#include "gltrackball.h"
+
+/*************************************************************************/
+
+static int ticks;
+static float size;
+static float speed;
+static Bool bigdots;
+
+static argtype vars[] = {
+ { &speed, "speed", "Speed", DEF_SPEED, t_Float },
+ { &size, "zoom", "Zoom", DEF_ZOOM, t_Float },
+ { &ticks, "ticks", "Ticks", DEF_DIV, t_Int },
+ { &bigdots, "bigdots", "BigDots", DEF_BIGDOTS, t_Bool },
+};
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-zoom", ".zoom", XrmoptionSepArg, 0 },
+ { "-ticks", ".ticks", XrmoptionSepArg, 0 },
+ { "-bigdots", ".bigdots", XrmoptionNoArg, "True" },
+ { "+bigdots", ".bigdots", XrmoptionNoArg, "False" },
+};
+
+ENTRYPOINT ModeSpecOpt cubicgrid_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct cubicgrid_description =
+{ "cubicgrid", "init_cubicgrid", "draw_cubicgrid", NULL,
+ "draw_cubicgrid", "change_cubicgrid", NULL, &cubicgrid_opts,
+ 25000, 1, 1, 1, 1.0, 4, "",
+ "Shows a rotating 3D lattice from inside", 0, NULL
+};
+#endif
+
+typedef struct {
+ GLXContext *glx_context;
+ GLfloat ratio;
+ GLint list;
+
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ int npoints;
+} cubicgrid_conf;
+
+static cubicgrid_conf *cubicgrid = NULL;
+
+static const GLfloat zpos = -18.0;
+
+/*************************************************************************/
+
+ENTRYPOINT Bool
+cubicgrid_handle_event (ModeInfo *mi, XEvent *event)
+{
+ cubicgrid_conf *cp = &cubicgrid[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, cp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &cp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+static Bool draw_main(ModeInfo *mi)
+{
+ cubicgrid_conf *cp = &cubicgrid[MI_SCREEN(mi)];
+ double x, y, z;
+
+ glClear(GL_COLOR_BUFFER_BIT);
+ glLoadIdentity();
+
+ glRotatef (180, 1, 0, 0); /* Make trackball track the right way */
+ glRotatef (180, 0, 1, 0);
+
+ glTranslatef(0, 0, zpos);
+
+ glScalef(size/ticks, size/ticks, size/ticks);
+
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1);
+ }
+# endif
+
+ gltrackball_rotate (cp->trackball);
+
+ get_rotation (cp->rot, &x, &y, &z, !cp->button_down_p);
+ glRotatef (-x * 360, 1.0, 0.0, 0.0);
+ glRotatef (-y * 360, 0.0, 1.0, 0.0);
+ glRotatef (-z * 360, 0.0, 0.0, 1.0);
+
+ glTranslatef(-ticks/2.0, -ticks/2.0, -ticks/2.0);
+ glCallList(cp->list);
+ return True;
+}
+
+static void init_gl(ModeInfo *mi)
+{
+ cubicgrid_conf *cp = &cubicgrid[MI_SCREEN(mi)];
+ int x, y, z;
+ float tf = ticks;
+
+ glDrawBuffer(GL_BACK);
+ if(bigdots) {
+ glPointSize(2.0);
+ }
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ glShadeModel(GL_FLAT);
+
+ cp->list = glGenLists(1);
+ glNewList(cp->list, GL_COMPILE);
+ if(MI_IS_MONO(mi)) {
+ glColor3f(1.0, 1.0, 1.0);
+ glBegin(GL_POINTS);
+ for(x = 0; x < ticks; x++) {
+ for(y = 0; y < ticks; y++) {
+ for(z = 0; z < ticks; z++) {
+ glVertex3f(x, y, z);
+ cp->npoints++;
+ }
+ }
+ }
+ glEnd();
+ }
+ else
+ {
+ glBegin(GL_POINTS);
+ for(x = 0; x < ticks; x++) {
+ for(y = 0; y < ticks; y++) {
+ for(z = 0; z < ticks; z++) {
+ glColor3f(x/tf, y/tf, z/tf);
+ glVertex3f(x, y, z);
+ cp->npoints++;
+ }
+ }
+ }
+ glEnd();
+ }
+ glEndList();
+}
+
+/*************************************************************************/
+
+ENTRYPOINT void reshape_cubicgrid(ModeInfo *mi, int width, int height)
+{
+ cubicgrid_conf *cp = &cubicgrid[MI_SCREEN(mi)];
+ int y = 0;
+ if(!height) height = 1;
+ cp->ratio = (GLfloat)width/(GLfloat)height;
+
+ if (width > height * 3) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ cp->ratio = (GLfloat)width/(GLfloat)height;
+ }
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(30.0, cp->ratio, 1.0, 100.0);
+ glMatrixMode(GL_MODELVIEW);
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+ENTRYPOINT void init_cubicgrid(ModeInfo *mi)
+{
+ cubicgrid_conf *cp;
+ MI_INIT(mi, cubicgrid);
+ cp = &cubicgrid[MI_SCREEN(mi)];
+
+ if ((cp->glx_context = init_GL(mi)) != NULL) {
+ init_gl(mi);
+ reshape_cubicgrid(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ {
+ double spin_speed = 0.045 * speed;
+ double spin_accel = 0.005 * speed;
+
+ cp->rot = make_rotator (spin_speed, spin_speed, spin_speed,
+ spin_accel, 0, True);
+ cp->trackball = gltrackball_init (True);
+ }
+}
+
+ENTRYPOINT void draw_cubicgrid(ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ cubicgrid_conf *cp;
+ if (!cubicgrid) return;
+ cp = &cubicgrid[MI_SCREEN(mi)];
+ MI_IS_DRAWN(mi) = True;
+ if (!cp->glx_context) return;
+ glXMakeCurrent(display, window, *(cp->glx_context));
+ if (!draw_main(mi)) {
+ MI_ABORT(mi);
+ return;
+ }
+ mi->polygon_count = cp->npoints;
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+ glXSwapBuffers(display, window);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void change_cubicgrid(ModeInfo * mi)
+{
+ cubicgrid_conf *cp = &cubicgrid[MI_SCREEN(mi)];
+ if (!cp->glx_context) return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cp->glx_context));
+ init_gl(mi);
+}
+#endif /* !STANDALONE */
+
+
+XSCREENSAVER_MODULE ("CubicGrid", cubicgrid)
+
+#endif
diff --git a/hacks/glx/cubicgrid.man b/hacks/glx/cubicgrid.man
new file mode 100644
index 0000000..d267bc3
--- /dev/null
+++ b/hacks/glx/cubicgrid.man
@@ -0,0 +1,83 @@
+.TH XScreenSaver 1 "Dec-28-07" "X Version 11"
+.SH NAME
+cubicgrid - rotating 3D lattice seen from inside
+.SH SYNOPSIS
+.B cubicgrid
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-install]
+[\-delay \fImicroseconds\fP]
+[\-mono]
+[\-speed \fInumber\fP]
+[\-zoom \fInumber\fP]
+[\-ticks \fInumber\fP]
+[\-bigdots]
+[\-fps]
+.SH DESCRIPTION
+This program shows the view of an observer located inside a set of points
+arranged to a 3D lattice. As the lattice rotates, various view-throughs appear
+and evolve. A simple idea with interesting results.
+.SH OPTIONS
+.I cubicgrid
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How long to pause between frames. Default is 20000, or 0.02 second.
+.TP 8
+.B \-mono
+Draw in black and white. If not used, a fixed all-color scheme is chosen.
+.TP 8
+.B \-speed \fInumber\fP
+The maximum speed of the rotation. The actual speed and axis change smoothly
+for better effect. 0.5 - 10. The default is 1.0.
+.TP 8
+.B \-zoom \fInumber\fP
+Size of the lattice. Ideally it should fill all the screen, but one may find
+other values also interesting. 5 - 50. The default of 20 should do for common
+screen aspect ratios.
+.TP 8
+.B \-ticks \fInumber\fP
+The count of points drawn along every axis. 10 - 100. The default is 30.
+.TP 8
+.B \-bigdots
+Draw the points twice as big.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2007 by Vasek Potocek. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear in
+all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Vasek Potocek <vasek.potocek@post.cz>, Dec-28-07.
diff --git a/hacks/glx/curlicue.h b/hacks/glx/curlicue.h
new file mode 100644
index 0000000..0963d6e
--- /dev/null
+++ b/hacks/glx/curlicue.h
@@ -0,0 +1,261 @@
+/* curlicue.h --- A texture map containing a "curlicue" */
+
+#define TEX_DIMENSION 64
+static const unsigned char texture[TEX_DIMENSION*TEX_DIMENSION] = {
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 58, 43, 43, 43, 43, 45, 70, 70, 70,
+ 70, 70, 70, 70, 74, 98, 98, 98,100,194,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 30,186,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1,111,244,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 43,198,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5,123,248,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 50,209,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,246,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 74,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,138, 4,
+ 66,229,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1,170,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,153, 0, 0,
+ 0, 53,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 6,188,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,213, 7, 0, 0,
+ 0, 0,226,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 0, 0, 0, 0, 0, 47, 0, 0,
+ 0, 0, 22,225,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,254, 54, 0, 0, 0,
+ 0, 81,254,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 0, 0, 0, 0, 56,247, 82, 0,
+ 0, 0, 0, 59,253,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,152, 0, 0, 0, 0,
+ 52,243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 0, 0, 0, 8,215,255,250, 56,
+ 0, 0, 0, 0,142,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,241, 19, 0, 0, 0, 15,
+ 220,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 0, 0, 0,129,255,255,255,230,
+ 23, 0, 0, 0, 12,230,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,131, 0, 0, 0, 0,157,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 0, 0, 49,250,255,255,255,255,
+ 171, 0, 0, 0, 0,112,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,246, 19, 0, 0, 0, 54,253,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 0, 5,208,255,255,255,255,255,
+ 255, 77, 0, 0, 0, 9,231,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,163, 0, 0, 0, 0,186,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 0,121,255,255,255,255,255,255,
+ 255,211, 2, 0, 0, 0,134,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255, 69, 0, 0, 0, 50,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 45, 41,247,255,255,255,255,255,255,
+ 255,255, 73, 0, 0, 0, 38,254,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,237, 4, 0, 0, 0,145,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255, 52,201,255,255,255,255,255,255,255,
+ 255,255,169, 0, 0, 0, 0,216,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,181, 0, 0, 0, 0,229,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,186,255,255,255,255,255,255,255,255,
+ 255,255,247, 7, 0, 0, 0,150,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,130, 0, 0, 0, 42,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255, 67, 0, 0, 0, 91,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 79, 0, 0, 0, 95,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,120, 0, 0, 0, 56,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 55, 0, 0, 0,130,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,157, 0, 0, 0, 21,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 34, 0, 0, 0,161,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,179, 0, 0, 0, 2,250,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 27, 0, 0, 0,168,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,200, 0, 0, 0, 0,249,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 27, 0, 0, 0,168,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,200, 0, 0, 0, 0,249,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 27, 0, 0, 0,163,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,183, 0, 0, 0, 0,249,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 42, 0, 0, 0,135,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,161, 0, 0, 0, 17,254,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255, 76, 0, 0, 0,100,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,126, 0, 0, 0, 48,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,114, 0, 0, 0, 53,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255, 78, 0, 0, 0, 84,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,165, 0, 0, 0, 3,241,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,252, 16, 0, 0, 0,139,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,228, 0, 0, 0, 0,161,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,192, 0, 0, 0, 0,198,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255, 46, 0, 0, 0, 67,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255, 93, 0, 0, 0, 21,250,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,139, 0, 0, 0, 1,211,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,226, 7, 0, 0, 0,108,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,230, 6, 0, 0, 0, 79,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,106, 0, 0, 0, 1,206,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255, 97, 0, 0, 0, 0,183,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 202, 3, 0, 0, 0, 67,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,221, 8, 0, 0, 0, 27,
+ 235,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,243,
+ 40, 0, 0, 0, 0,198,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,126, 0, 0, 0, 0,
+ 71,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,253, 85,
+ 0, 0, 0, 0, 96,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,247, 44, 0, 0, 0,
+ 0, 91,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,116, 0,
+ 0, 0, 0, 25,233,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,216, 11, 0, 0,
+ 0, 0, 90,251,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,252,112, 0, 0,
+ 0, 0, 4,191,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,174, 4, 0,
+ 0, 0, 0, 72,235,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,242, 84, 0, 0, 0,
+ 0, 0,146,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,150, 1,
+ 0, 0, 0, 0, 27,181,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,194, 39, 0, 0, 0, 0,
+ 0,120,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,151,
+ 4, 0, 0, 0, 0, 0, 77,209,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,216, 92, 1, 0, 0, 0, 0, 0,
+ 125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 175, 12, 0, 0, 0, 0, 0, 1, 70,164,241,255,255,255,255,255,
+ 255,255,255,255,255,242,171, 77, 2, 0, 0, 0, 0, 0, 4,150,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,214, 41, 0, 0, 0, 0, 0, 0, 0, 4, 48, 98,138,163,163,
+ 163,163,140,103, 55, 5, 0, 0, 0, 0, 0, 0, 0, 30,199,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,245,125, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,105,240,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,222,100, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 83,210,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,228,136, 45, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37,125,220,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,225,166,112, 74, 43, 32, 12,
+ 8, 32, 40, 71,105,162,218,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+};
diff --git a/hacks/glx/dangerball.c b/hacks/glx/dangerball.c
new file mode 100644
index 0000000..e40ccc5
--- /dev/null
+++ b/hacks/glx/dangerball.c
@@ -0,0 +1,364 @@
+/* dangerball, Copyright (c) 2001-2017 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_ball 0
+# define release_ball 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "sphere.h"
+#include "tube.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "0.05"
+
+#define SPIKE_FACES 12 /* how densely to render spikes */
+#define SMOOTH_SPIKES True
+#define SPHERE_SLICES 32 /* how densely to render spheres */
+#define SPHERE_STACKS 16
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLuint ball_list;
+ GLuint spike_list;
+
+ GLfloat pos;
+ int *spikes;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor;
+ int color_shift;
+
+} ball_configuration;
+
+static ball_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" }
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt ball_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_ball (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+randomize_spikes (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ bp->pos = 0;
+ for (i = 0; i < MI_COUNT(mi); i++)
+ {
+ bp->spikes[i*2] = (random() % 360) - 180;
+ bp->spikes[i*2+1] = (random() % 180) - 90;
+ }
+
+# define ROT_SCALE 22
+ for (i = 0; i < MI_COUNT(mi) * 2; i++)
+ bp->spikes[i] = (bp->spikes[i] / ROT_SCALE) * ROT_SCALE;
+
+ if ((random() % 3) == 0)
+ bp->color_shift = random() % (bp->ncolors / 2);
+ else
+ bp->color_shift = 0;
+}
+
+static void
+draw_spikes (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat diam = 0.2;
+ GLfloat pos = bp->pos;
+ int i;
+
+ if (pos < 0) pos = -pos;
+
+ pos = (asin (0.5 + pos/2) - 0.5) * 2;
+
+ for (i = 0; i < MI_COUNT(mi); i++)
+ {
+ glPushMatrix();
+ glRotatef(bp->spikes[i*2], 0, 1, 0);
+ glRotatef(bp->spikes[i*2+1], 0, 0, 1);
+ glTranslatef(0.7, 0, 0);
+ glRotatef(-90, 0, 0, 1);
+ glScalef (diam, pos, diam);
+ glCallList (bp->spike_list);
+ glPopMatrix();
+
+ mi->polygon_count += (SPIKE_FACES + 1);
+ }
+}
+
+
+static void
+move_spikes (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (bp->pos >= 0) /* moving outward */
+ {
+ bp->pos += speed;
+ if (bp->pos >= 1) /* reverse gears at apex */
+ bp->pos = -1;
+ }
+ else /* moving inward */
+ {
+ bp->pos += speed;
+ if (bp->pos >= 0) /* stop at end */
+ randomize_spikes (mi);
+ }
+}
+
+
+ENTRYPOINT Bool
+ball_handle_event (ModeInfo *mi, XEvent *event)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_ball (ModeInfo *mi)
+{
+ ball_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_ball (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ {
+ double spin_speed = 10.0;
+ double wander_speed = 0.12;
+ double spin_accel = 2.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->ncolors = 128;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+ bp->spikes = (int *) calloc(MI_COUNT(mi), sizeof(*bp->spikes) * 2);
+
+ bp->ball_list = glGenLists (1);
+ bp->spike_list = glGenLists (1);
+
+ glNewList (bp->ball_list, GL_COMPILE);
+ unit_sphere (SPHERE_STACKS, SPHERE_SLICES, wire);
+ glEndList ();
+
+ glNewList (bp->spike_list, GL_COMPILE);
+ cone (0, 0, 0,
+ 0, 1, 0,
+ 1, 0, SPIKE_FACES, SMOOTH_SPIKES, False, wire);
+ glEndList ();
+
+ randomize_spikes (mi);
+}
+
+
+ENTRYPOINT void
+draw_ball (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int c2;
+
+ static const GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat sspec[4] = {0.0, 0.0, 0.0, 1.0};
+ static const GLfloat bshiny = 128.0;
+ static const GLfloat sshiny = 0.0;
+
+ GLfloat bcolor[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat scolor[4] = {0.0, 0.0, 0.0, 1.0};
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ bcolor[0] = bp->colors[bp->ccolor].red / 65536.0;
+ bcolor[1] = bp->colors[bp->ccolor].green / 65536.0;
+ bcolor[2] = bp->colors[bp->ccolor].blue / 65536.0;
+
+ c2 = (bp->ccolor + bp->color_shift) % bp->ncolors;
+ scolor[0] = bp->colors[c2].red / 65536.0;
+ scolor[1] = bp->colors[c2].green / 65536.0;
+ scolor[2] = bp->colors[c2].blue / 65536.0;
+
+ bp->ccolor++;
+ if (bp->ccolor >= bp->ncolors) bp->ccolor = 0;
+
+ mi->polygon_count = 0;
+
+ glScalef (2.0, 2.0, 2.0);
+
+ move_spikes (mi);
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT, GL_SHININESS, bshiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bcolor);
+ glCallList (bp->ball_list);
+ mi->polygon_count += (SPHERE_SLICES * SPHERE_STACKS);
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, sspec);
+ glMaterialf (GL_FRONT, GL_SHININESS, sshiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, scolor);
+ draw_spikes (mi);
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("DangerBall", dangerball, ball)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/dangerball.man b/hacks/glx/dangerball.man
new file mode 100644
index 0000000..3e33f82
--- /dev/null
+++ b/hacks/glx/dangerball.man
@@ -0,0 +1,72 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+dangerball - a 3D ball that periodically extrudes spikes. Ouch!
+.SH SYNOPSIS
+.B dangerball
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-no-wander]
+[\-no-spin]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Draws a ball that periodically extrudes many random spikes. Ouch!
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Spike growth frequency. 0.0 - 0.25. Default: 0.05.
+.TP 8
+.B \-count \fInumber\fP
+Number o spikes. Default: 30.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the object should spin.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/discoball.c b/hacks/glx/discoball.c
new file mode 100644
index 0000000..4085c56
--- /dev/null
+++ b/hacks/glx/discoball.c
@@ -0,0 +1,707 @@
+/* discoball, Copyright (c) 2016 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define release_ball 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "False"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+
+typedef struct tile tile;
+struct tile {
+ XYZ position, normal;
+ GLfloat size, tilt;
+ tile *next;
+};
+
+
+typedef struct {
+ XYZ normal;
+ GLfloat color[4];
+} ray;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ GLfloat th;
+ trackball_state *trackball;
+ Bool button_down_p;
+ tile *tiles;
+ int nrays;
+ ray *rays;
+} ball_configuration;
+
+static ball_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" }
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt ball_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static XYZ
+normalize (XYZ p)
+{
+ GLfloat d = sqrt(p.x*p.x + p.y*p.y * p.z*p.z);
+ if (d < 0.0000001)
+ p.x = p.y = p.z = 0;
+ else
+ {
+ p.x /= d;
+ p.y /= d;
+ p.z /= d;
+ }
+
+ return p;
+}
+
+
+static void
+build_texture (ModeInfo *mi)
+{
+ int x, y;
+ int size = 128;
+ int bpl = size * 2;
+ unsigned char *data = malloc (bpl * size);
+
+ for (y = 0; y < size; y++)
+ {
+ for (x = 0; x < size; x++)
+ {
+ unsigned char *c = &data [y * bpl + x * 2];
+ GLfloat X = (x / (GLfloat) (size-1)) - 0.5;
+ GLfloat Y = (y / (GLfloat) (size-1)) - 0.5;
+ X = cos (X * X * 6.2);
+ Y = cos (Y * Y * 6.2);
+ X = X < Y ? X : Y;
+ X *= 0.4;
+ c[0] = 0xFF;
+ c[1] = 0xFF * X;
+ }
+ }
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ check_gl_error ("texture param");
+
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, size, size, 0,
+ GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, data);
+ check_gl_error ("light texture");
+ free (data);
+}
+
+
+static int
+draw_rays (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+ int i;
+
+ glEnable (GL_TEXTURE_2D);
+ glDisable (GL_LIGHTING);
+ glEnable (GL_BLEND);
+ glDisable (GL_DEPTH_TEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE);
+
+ for (i = 0; i < bp->nrays; i++)
+ {
+ GLfloat x = bp->rays[i].normal.x;
+ GLfloat y = bp->rays[i].normal.y;
+ GLfloat z = bp->rays[i].normal.z;
+ glPushMatrix();
+
+ /* Orient to direction of ray. */
+ glRotatef (-atan2 (x, y) * (180 / M_PI), 0, 0, 1);
+ glRotatef ( atan2 (z, sqrt(x*x + y*y)) * (180 / M_PI), 1, 0, 0);
+
+ glScalef (5, 5, 10);
+ glTranslatef(0, 0, 1.1);
+ glColor4fv (bp->rays[i].color);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f (0, 0); glVertex3f (-0.5, 0, -1);
+ glTexCoord2f (1, 0); glVertex3f ( 0.5, 0, -1);
+ glTexCoord2f (1, 1); glVertex3f ( 0.5, 0, 1);
+ glTexCoord2f (0, 1); glVertex3f (-0.5, 0, 1);
+ glEnd();
+ polys++;
+ glPopMatrix();
+ }
+
+ glDisable (GL_TEXTURE_2D);
+ glEnable (GL_LIGHTING);
+ glDisable (GL_BLEND);
+ glEnable (GL_DEPTH_TEST);
+ glDisable (GL_FOG);
+
+ return polys;
+}
+
+
+static int
+draw_ball_1 (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+ tile *t;
+ GLfloat m[4][4];
+
+ glGetFloatv (GL_MODELVIEW_MATRIX, &m[0][0]);
+
+ glFrontFace (GL_CW);
+
+#if 0
+ /* Draw the back rays.
+ */
+ if (! wire)
+ {
+ glPushMatrix();
+ glLoadIdentity();
+ glMultMatrixf (&m[0][0]);
+ glTranslatef(0, 0, -4.1);
+ glRotatef (bp->th, 0, 0, 1);
+ polys += draw_rays (mi);
+ glPopMatrix();
+ }
+ glClear(GL_DEPTH_BUFFER_BIT);
+#endif
+
+
+ /* Instead of rendering polygons for the foam ball substrate, let's
+ just billboard a quad down the middle to mask out the back-facing
+ tiles. */
+ {
+ glPushMatrix();
+ m[0][0] = 1; m[1][0] = 0; m[2][0] = 0;
+ m[0][1] = 0; m[1][1] = 1; m[2][1] = 0;
+ m[0][2] = 0; m[1][2] = 0; m[2][2] = 1;
+ glLoadIdentity();
+ glMultMatrixf (&m[0][0]);
+ glScalef (40, 40, 40);
+ glTranslatef (-0.5, -0.5, -0.01);
+ if (! wire)
+ glDisable (GL_LIGHTING);
+ /* Draw into the depth buffer but not the frame buffer */
+ glColorMask (GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ glColor3f (0, 0, 0);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glEnd();
+ polys++;
+ glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ if (! wire)
+ glEnable (GL_LIGHTING);
+ glPopMatrix();
+ glColor3f (1, 1, 1);
+ }
+
+ /* Draw all the tiles.
+ */
+ for (t = bp->tiles; t; t = t->next)
+ {
+ GLfloat x = t->normal.x;
+ GLfloat y = t->normal.y;
+ GLfloat z = t->normal.z;
+ GLfloat s = t->size / 2;
+ glPushMatrix();
+
+ /* Move to location of tile. */
+ glTranslatef (t->position.x, t->position.y, t->position.z);
+
+ /* Orient to direction tile is facing. */
+ glRotatef (-atan2 (x, y) * (180 / M_PI), 0, 0, 1);
+ glRotatef ( atan2 (z, sqrt(x*x + y*y)) * (180 / M_PI), 1, 0, 0);
+
+ glRotatef (t->tilt, 0, 1, 0);
+
+ glScalef (s, s, s);
+ glNormal3f (0, 1, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (-1, 0, -1);
+ glVertex3f ( 1, 0, -1);
+ glVertex3f ( 1, 0, 1);
+ glVertex3f (-1, 0, 1);
+ glEnd();
+ polys++;
+
+ if (! wire)
+ {
+ GLfloat d = 0.2;
+ glNormal3f (0, 0, -1);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (-1, 0, -1);
+ glVertex3f (-1, -d, -1);
+ glVertex3f ( 1, -d, -1);
+ glVertex3f ( 1, 0, -1);
+ glEnd();
+ polys++;
+
+ glNormal3f (0, 0, 1);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f ( 1, 0, 1);
+ glVertex3f ( 1, -d, 1);
+ glVertex3f (-1, -d, 1);
+ glVertex3f (-1, 0, 1);
+ glEnd();
+ polys++;
+
+ glNormal3f (1, 0, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f ( 1, 0, -1);
+ glVertex3f ( 1, -d, -1);
+ glVertex3f ( 1, -d, 1);
+ glVertex3f ( 1, 0, 1);
+ glEnd();
+ polys++;
+
+ glNormal3f (-1, 0, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (-1, 0, 1);
+ glVertex3f (-1, -d, 1);
+ glVertex3f (-1, -d, -1);
+ glVertex3f (-1, 0, -1);
+ glEnd();
+ polys++;
+ }
+
+ glPopMatrix();
+ }
+
+ /* Draw the front rays.
+ */
+ if (! wire)
+ {
+ glPushMatrix();
+ glLoadIdentity();
+ glMultMatrixf (&m[0][0]);
+ glTranslatef(0, 0, 4.1);
+ glRotatef (-bp->th, 0, 0, 1);
+ polys += draw_rays (mi);
+ glPopMatrix();
+ }
+
+ return polys;
+}
+
+
+static GLfloat
+vector_angle (XYZ a, XYZ b)
+{
+ double La = sqrt (a.x*a.x + a.y*a.y + a.z*a.z);
+ double Lb = sqrt (b.x*b.x + b.y*b.y + b.z*b.z);
+ double cc, angle;
+
+ if (La == 0 || Lb == 0) return 0;
+ if (a.x == b.x && a.y == b.y && a.z == b.z) return 0;
+
+ /* dot product of two vectors is defined as:
+ La * Lb * cos(angle between vectors)
+ and is also defined as:
+ ax*bx + ay*by + az*bz
+ so:
+ La * Lb * cos(angle) = ax*bx + ay*by + az*bz
+ cos(angle) = (ax*bx + ay*by + az*bz) / (La * Lb)
+ angle = acos ((ax*bx + ay*by + az*bz) / (La * Lb));
+ */
+ cc = (a.x*b.x + a.y*b.y + a.z*b.z) / (La * Lb);
+ if (cc > 1) cc = 1; /* avoid fp rounding error (1.000001 => sqrt error) */
+ angle = acos (cc);
+
+ return (angle);
+}
+
+
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+static void
+build_ball (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ int rows = MI_COUNT (mi);
+
+ GLfloat tile_size = M_PI / rows;
+ GLfloat th0, th1;
+
+ struct { XYZ position; GLfloat strength; } dents[5];
+ int dent_count = random() % countof(dents);
+ int i;
+ for (i = 0; i < dent_count; i++)
+ {
+ GLfloat dist;
+ dents[i].position.x = RANDSIGN() * (2 - BELLRAND(0.2));
+ dents[i].position.y = RANDSIGN() * (2 - BELLRAND(0.2));
+ dents[i].position.z = RANDSIGN() * (2 - BELLRAND(0.2));
+ dist = sqrt (dents[i].position.x * dents[i].position.x +
+ dents[i].position.y * dents[i].position.y +
+ dents[i].position.z * dents[i].position.z);
+ dents[i].strength = dist - (1 - BELLRAND(0.3));
+ dents[i].strength = dist - (1 - BELLRAND(0.3));
+ }
+
+
+ for (th1 = M_PI/2; th1 > -(M_PI/2 + tile_size/2); th1 -= tile_size)
+ {
+ GLfloat x = cos (th1);
+ GLfloat y = sin (th1);
+ GLfloat x0 = cos (th1 - tile_size/2);
+ GLfloat x1 = cos (th1 + tile_size/2);
+ GLfloat circ0 = M_PI * x0 * 2;
+ GLfloat circ1 = M_PI * x1 * 2;
+ GLfloat circ = (circ0 < circ1 ? circ0 : circ1);
+ int row_tiles = floor ((circ < 0 ? 0 : circ) / tile_size);
+ GLfloat spacing;
+ GLfloat dropsy = 0.13 + frand(0.04);
+
+ if (row_tiles <= 0) row_tiles = 1;
+ spacing = M_PI*2 / row_tiles;
+
+ for (th0 = 0; th0 < M_PI*2; th0 += spacing)
+ {
+ tile *t = (tile *) calloc (1, sizeof(*t));
+ t->size = tile_size * 0.85;
+ t->position.x = cos (th0) * x;
+ t->position.y = sin (th0) * x;
+ t->position.z = y;
+
+ t->normal = t->position;
+
+ /* Apply pressure on position from the dents. */
+ for (i = 0; i < dent_count; i++)
+ {
+ GLfloat dist;
+ XYZ direction;
+
+ if (! (random() % 150)) /* Drop tiles randomly */
+ {
+ free (t);
+ goto SKIP;
+ }
+
+ direction.x = t->position.x - dents[i].position.x;
+ direction.y = t->position.y - dents[i].position.y;
+ direction.z = t->position.z - dents[i].position.z;
+ dist = sqrt (direction.x * direction.x +
+ direction.y * direction.y +
+ direction.z * direction.z);
+ if (dist < dents[i].strength)
+ {
+ GLfloat s = 1 - (dents[i].strength - dist) * 0.66;
+ XYZ n2 = t->normal;
+ GLfloat angle = vector_angle (t->position, dents[i].position);
+
+ /* Drop out the tiles near the apex of the dent. */
+ if (angle < dropsy)
+ {
+ free (t);
+ goto SKIP;
+ }
+
+ t->position.x *= s;
+ t->position.y *= s;
+ t->position.z *= s;
+
+ direction = normalize (direction);
+ n2.x -= direction.x;
+ n2.y -= direction.y;
+ n2.z -= direction.z;
+
+ t->normal.x = (t->normal.x + n2.x) / 2;
+ t->normal.y = (t->normal.y + n2.y) / 2;
+ t->normal.z = (t->normal.z + n2.z) / 2;
+ }
+ }
+
+ /* Skew the direction the tile is facing slightly. */
+ t->normal.x += 0.12 - frand(0.06);
+ t->normal.y += 0.12 - frand(0.06);
+ t->normal.z += 0.12 - frand(0.06);
+ t->tilt = 4 - BELLRAND(8);
+
+ t->next = bp->tiles;
+ bp->tiles = t;
+ SKIP: ;
+ }
+ }
+
+ bp->nrays = 5 + BELLRAND(10);
+ bp->rays = (ray *) calloc (bp->nrays, sizeof(*bp->rays));
+ for (i = 0; i < bp->nrays; i++)
+ {
+ GLfloat th = frand(M_PI * 2);
+ bp->rays[i].normal.x = cos (th);
+ bp->rays[i].normal.y = sin (th);
+ bp->rays[i].normal.z = 1;
+ bp->rays[i].normal = normalize (bp->rays[i].normal);
+ bp->rays[i].color[0] = 0.9 + frand(0.1);
+ bp->rays[i].color[1] = 0.6 + frand(0.4);
+ bp->rays[i].color[2] = 0.6 + frand(0.2);
+ bp->rays[i].color[3] = 1;
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_ball (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+ball_handle_event (ModeInfo *mi, XEvent *event)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_ball (ModeInfo *mi)
+{
+ ball_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ if (! wire)
+ build_texture (mi);
+
+ reshape_ball (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ bp->th = 180 - frand(360);
+
+ if (MI_COUNT(mi) < 10)
+ MI_COUNT(mi) = 10;
+ if (MI_COUNT(mi) > 200)
+ MI_COUNT(mi) = 200;
+
+ {
+ double spin_speed = 0.1;
+ double wander_speed = 0.003;
+ double spin_accel = 1;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ build_ball (mi);
+
+ if (!wire)
+ {
+ GLfloat color[4] = {0.5, 0.5, 0.5, 1};
+ GLfloat cspec[4] = {1, 1, 1, 1};
+ static const GLfloat shiny = 10;
+
+ static GLfloat pos0[4] = { 0.5, -1, -0.5, 0};
+ static GLfloat pos1[4] = {-0.75, -1, 0, 0};
+ static GLfloat amb[4] = {0, 0, 0, 1};
+ static GLfloat dif[4] = {1, 1, 1, 1};
+ static GLfloat spc[4] = {1, 1, 1, 1};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ color[0] += frand(0.2);
+ color[1] += frand(0.2);
+ color[2] += frand(0.2);
+
+ cspec[0] -= frand(0.2);
+ cspec[1] -= frand(0.2);
+ cspec[2] -= frand(0.2);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glLightfv(GL_LIGHT1, GL_POSITION, pos1);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, spc);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT, GL_SPECULAR, cspec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ }
+}
+
+
+ENTRYPOINT void
+draw_ball (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 6,
+ (y - 0.5) * 6,
+ (z - 0.5) * 2);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glRotatef (50, 1, 0, 0);
+
+ glScalef (4, 4, 4);
+ glRotatef (bp->th, 0, 0, 1);
+ if (! bp->button_down_p)
+ {
+ bp->th += (bp->th > 0 ? speed : -speed);
+ while (bp->th > 360) bp->th -= 360;
+ while (bp->th < -360) bp->th += 360;
+ }
+
+ mi->polygon_count += draw_ball_1 (mi);
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_ball (ModeInfo *mi)
+{
+ ball_configuration *bp = &bps[MI_SCREEN(mi)];
+ while (bp->tiles)
+ {
+ tile *t = bp->tiles->next;
+ free (bp->tiles);
+ bp->tiles = t;
+ }
+ free (bp->rays);
+}
+
+XSCREENSAVER_MODULE_2 ("Discoball", discoball, ball)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/discoball.man b/hacks/glx/discoball.man
new file mode 100644
index 0000000..041cbd2
--- /dev/null
+++ b/hacks/glx/discoball.man
@@ -0,0 +1,72 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+discoball - A dusty, dented disco ball screen saver.
+.SH SYNOPSIS
+.B discoball
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-no-wander]
+[\-spin]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+A dusty, dented disco ball. Woop woop.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-count \fInumber\fP
+Number of rows of tiles on the ball. 10 - 100. Default: 30.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the scene should spin.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/dnalogo.c b/hacks/glx/dnalogo.c
new file mode 100644
index 0000000..2b24f83
--- /dev/null
+++ b/hacks/glx/dnalogo.c
@@ -0,0 +1,3639 @@
+/* DNA Logo, Copyright (c) 2001-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * DNA Lounge
+ *
+ * Restaurant -- Bar -- Nightclub -- Cafe -- Est. 1985.
+ *
+ * 375 Eleventh Street
+ * San Francisco, CA
+ * 94103
+ *
+ * https://www.dnalounge.com/
+ * http://www.dnapizza.com/
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS __extension__ \
+ "*delay: 25000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*doGasket: True \n" \
+ "*doHelix: True \n" \
+ "*doLadder: True \n" \
+ "*doFrame: True \n" \
+ "*wallFacets: 360 \n" \
+ "*barFacets: 90 \n" \
+ "*clockwise: False \n" \
+ "*turns: 0.72 \n" \
+ "*turnSpacing: 2.3 \n" \
+ "*barSpacing: 0.268 \n" \
+ "*wallHeight: 0.42 \n" \
+ "*wallThickness: 0.12 \n" \
+ "*barThickness: 0.058 \n" \
+ "*wallTaper: 0.95 \n" \
+ "*gasketSize: 2.0 \n" \
+ "*gasketDepth: 0.15 \n" \
+ "*gasketThickness: 0.4 \n" \
+ "*frameSize: 1.28 \n" \
+ "*frameDepth: 0.01 \n" \
+ "*frameThickness: 0.03 \n" \
+ "*triangleSize: 0.045 \n" \
+ "*cwFacets: 3 \n" \
+ "*cwDiscFacets: 64 \n" \
+ "*cwSpread: 0.5 \n" \
+ "*cwLineWidth: 0.18 \n" \
+ "*cwThickness: 0.15 \n" \
+ "*cwCapSize: 0.4 \n" \
+ "*text: CODEWORD\n" \
+ "*speed: 1.0 \n" \
+ "*mode: both" "\n" \
+ ".background: #000000\n" \
+ ".foreground: #00AA00\n" \
+ ".cwForeground: #FCA816\n" \
+ ".cwBackground: #943225\n" \
+ "*cwFont: " CWFONT "\n" \
+ "*geometry: =640x640\n" \
+
+# if defined(HAVE_COCOA) || defined(HAVE_ANDROID)
+# define CWFONT "Yearling 28, OCR A Std 24"
+# else
+# define CWFONT "-*-helvetica-medium-r-normal-*-*-240-*-*-*-*-*-*"
+# endif
+
+# define free_logo 0
+# define release_logo 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef DXF_OUTPUT_HACK
+
+#ifdef DXF_OUTPUT_HACK /* When this is defined, instead of rendering
+ to the screen, we write a DXF CAD file to stdout.
+ This is a kludge of shocking magnitude...
+ Maybe there's some other way to intercept all
+ glVertex3f calls than with a #define? */
+# define unit_tube dxf_unit_tube
+# define unit_cone dxf_unit_cone
+# define tube_1 dxf_tube_1
+# define tube dxf_tube
+# define cone dxf_cone
+#endif /* DXF_OUTPUT_HACK */
+
+#include "xlockmore.h"
+#include "normals.h"
+#include "tube.h"
+#include "sphere.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "utf8wc.h"
+#include "texfont.h"
+
+#ifdef USE_GL /* whole file */
+
+#ifdef HAVE_JWZGLES
+# include "dnapizza.h"
+#else
+# define HAVE_TESS
+#endif
+
+typedef enum {
+ HELIX_IN, HELIX, HELIX_OUT,
+ PIZZA_IN, PIZZA, PIZZA_OUT,
+ HELIX_AND_PIZZA,
+# ifdef CW
+ CODEWORD_IN, CODEWORD, CODEWORD_OUT, CODEWORD_BLANK
+# endif
+} glyph_mode;
+
+typedef struct {
+ Bool spinning_p;
+ GLfloat position; /* 0.0 - 1.0 */
+ GLfloat position_eased; /* 0.0 - 1.0, eased in and out */
+ GLfloat easement; /* portion of path that is eased. <= 0.5 */
+ GLfloat speed; /* how far along the path (may be negative) */
+ GLfloat probability; /* relative likelyhood to start spinning */
+} spinner;
+
+typedef struct {
+ GLXContext *glx_context;
+
+ GLuint helix_list, helix_list_wire, helix_list_facetted;
+ GLuint pizza_list, pizza_list_wire, pizza_list_facetted;
+ GLuint gasket_list, gasket_list_wire;
+ GLuint frame_list, frame_list_wire;
+ int polys[7];
+
+ int wall_facets;
+ int bar_facets;
+ Bool clockwise;
+ GLfloat color[4];
+
+ GLfloat turns;
+ GLfloat turn_spacing;
+ GLfloat bar_spacing;
+ GLfloat wall_height;
+ GLfloat wall_thickness;
+ GLfloat bar_thickness;
+ GLfloat wall_taper;
+
+ GLfloat gasket_size;
+ GLfloat gasket_depth;
+ GLfloat gasket_thickness;
+
+ GLfloat frame_size;
+ GLfloat frame_depth;
+ GLfloat frame_thickness;
+ GLfloat triangle_size;
+
+# ifdef CW
+ int codeword_facets, codeword_disc_facets;
+ GLfloat codeword_spread, codeword_line_width, codeword_thickness;
+ GLfloat codeword_cap_size;
+ const char *codeword_text;
+ char *codeword_text_out;
+ int *codeword_text_points;
+ XYZ *codeword_path;
+ int codeword_path_npoints;
+ int codeword_nguides;
+ XYZ *codeword_guides;
+ GLfloat codeword_color[4], codeword_bg[4];
+ texture_font_data *font;
+# endif
+
+# ifdef DEBUG
+ GLfloat persp_off, pos_off;
+ texture_font_data *label_font;
+# endif
+
+ GLfloat speed;
+ glyph_mode mode;
+ glyph_mode anim_state;
+ GLfloat anim_ratio;
+
+ spinner gasket_spinnerx, gasket_spinnery, gasket_spinnerz;
+ spinner scene_spinnerx, scene_spinnery; /* for DNA */
+# ifdef CW
+ rotator *scene_rot; /* for Codeword */
+# endif
+ spinner helix_spinnerz;
+ spinner pizza_spinnery, pizza_spinnerz;
+ spinner frame_spinner;
+
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int wire_overlay; /* frame countdown */
+
+} logo_configuration;
+
+static logo_configuration *dcs = NULL;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+ { "-pizza", ".mode", XrmoptionNoArg, "pizza" },
+ { "-helix", ".mode", XrmoptionNoArg, "helix" },
+ { "-both", ".mode", XrmoptionNoArg, "both" },
+# ifdef CW
+ { "-codeword", ".mode", XrmoptionNoArg, "codeword" },
+ { "-cw", ".mode", XrmoptionNoArg, "codeword" },
+ { "-text", ".text", XrmoptionSepArg, 0 },
+# endif
+};
+
+ENTRYPOINT ModeSpecOpt logo_opts = {countof(opts), opts, 0, NULL, NULL};
+
+#define PROBABILITY_SCALE 600
+
+
+#ifdef DXF_OUTPUT_HACK
+
+# define glBegin dxf_glBegin
+# define glVertex3f dxf_glVertex3f
+# define glVertex3dv dxf_glVertex3dv
+# define glEnd dxf_glEnd
+# define glVertexPointer dxf_glVertexPointer
+# define glDrawArrays dxf_glDrawArrays
+
+static int dxf_type, dxf_point, dxf_point_total, dxf_layer, dxf_color;
+static GLfloat dxf_quads[4*4];
+
+static void
+dxf_glBegin (int type)
+{
+ dxf_type = type;
+ dxf_point = 0;
+ dxf_point_total = 0;
+}
+
+static void
+dxf_glVertex3f (GLfloat ox, GLfloat oy, GLfloat oz)
+{
+ int i = 0;
+ GLfloat m[4*4];
+ GLfloat x, y, z;
+
+ /* Transform the point into modelview space. */
+ glGetFloatv (GL_MODELVIEW_MATRIX, m);
+ x = ox * m[0] + oy * m[4] + oz * m[8] + m[12];
+ y = ox * m[1] + oy * m[5] + oz * m[9] + m[13];
+ z = ox * m[2] + oy * m[6] + oz * m[10] + m[14];
+
+ dxf_quads[dxf_point*3+0] = x;
+ dxf_quads[dxf_point*3+1] = y;
+ dxf_quads[dxf_point*3+2] = z;
+ dxf_point++;
+ dxf_point_total++;
+
+ switch (dxf_type) {
+ case GL_QUADS:
+ if (dxf_point < 4) return;
+
+ fprintf (stdout, "0\n3DFACE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color);
+ fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "12\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "22\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "32\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "13\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "23\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "33\n%.6f\n", dxf_quads[i++]);
+ dxf_point = 0;
+ break;
+
+ case GL_QUAD_STRIP:
+ if (dxf_point < 4) return;
+
+ fprintf (stdout, "0\n3DFACE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color);
+ fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "12\n%.6f\n", dxf_quads[i+3]); /* funky quad strip */
+ fprintf (stdout, "22\n%.6f\n", dxf_quads[i+4]); /* vert order: 1243. */
+ fprintf (stdout, "32\n%.6f\n", dxf_quads[i+5]);
+
+ fprintf (stdout, "13\n%.6f\n", dxf_quads[i]);
+ fprintf (stdout, "23\n%.6f\n", dxf_quads[i+1]);
+ fprintf (stdout, "33\n%.6f\n", dxf_quads[i+2]);
+ i += 6;
+
+ dxf_quads[0] = dxf_quads[6]; /* copy point 3 to pos 1 */
+ dxf_quads[1] = dxf_quads[7];
+ dxf_quads[2] = dxf_quads[8];
+ dxf_quads[3] = dxf_quads[9]; /* copy point 4 to pos 2 */
+ dxf_quads[4] = dxf_quads[10];
+ dxf_quads[5] = dxf_quads[11];
+ dxf_point = 2; /* leave those two points in queue */
+ break;
+
+ case GL_TRIANGLES:
+ case GL_TRIANGLE_FAN:
+ if (dxf_point < 3) return;
+
+ fprintf (stdout, "0\n3DFACE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color);
+ fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "12\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "22\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "32\n%.6f\n", dxf_quads[i++]);
+
+ i -= 3;
+ fprintf (stdout, "13\n%.6f\n", dxf_quads[i++]); /* dup pt 4 as pt 3. */
+ fprintf (stdout, "23\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "33\n%.6f\n", dxf_quads[i++]);
+
+ dxf_point = 0;
+ if (dxf_type == GL_TRIANGLE_FAN)
+ {
+ dxf_quads[3] = dxf_quads[6]; /* copy point 3 to point 2 */
+ dxf_quads[4] = dxf_quads[7];
+ dxf_quads[5] = dxf_quads[8];
+ dxf_point = 2; /* leave two points in queue */
+ }
+ break;
+
+ case GL_TRIANGLE_STRIP:
+ if (dxf_point < 3) return;
+
+ fprintf (stdout, "0\n3DFACE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color);
+
+ fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "12\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "22\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "32\n%.6f\n", dxf_quads[i++]);
+
+ i -= 3;
+ fprintf (stdout, "13\n%.6f\n", dxf_quads[i++]); /* dup pt 4 as pt 3. */
+ fprintf (stdout, "23\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "33\n%.6f\n", dxf_quads[i++]);
+
+ dxf_quads[0] = dxf_quads[3]; /* copy point 2 to pos 1 */
+ dxf_quads[1] = dxf_quads[4];
+ dxf_quads[2] = dxf_quads[5];
+ dxf_quads[3] = dxf_quads[6]; /* copy point 3 to pos 2 */
+ dxf_quads[4] = dxf_quads[7];
+ dxf_quads[5] = dxf_quads[8];
+ dxf_point = 2; /* leave those two points in queue */
+ break;
+
+ case GL_LINES:
+ case GL_LINE_STRIP:
+ case GL_LINE_LOOP:
+
+ if (dxf_point_total == 1)
+ {
+ dxf_quads[6] = ox;
+ dxf_quads[7] = oy;
+ dxf_quads[8] = oz;
+ }
+
+ if (dxf_point < 2) return;
+
+ fprintf (stdout, "0\nLINE\n8\n%d\n62\n%d\n", dxf_layer, dxf_color);
+
+ fprintf (stdout, "10\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "20\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "30\n%.6f\n", dxf_quads[i++]);
+
+ fprintf (stdout, "11\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "21\n%.6f\n", dxf_quads[i++]);
+ fprintf (stdout, "31\n%.6f\n", dxf_quads[i++]);
+
+ dxf_point = 0;
+ if (dxf_type != GL_LINES)
+ {
+ dxf_quads[0] = dxf_quads[3];
+ dxf_quads[1] = dxf_quads[4];
+ dxf_quads[2] = dxf_quads[5];
+ dxf_point = 1;
+ }
+ break;
+
+ default:
+ abort();
+ break;
+ }
+}
+
+
+static void
+dxf_glVertex3dv (const GLdouble *v)
+{
+ glVertex3f (v[0], v[1], v[2]);
+}
+
+
+static void
+dxf_glEnd(void)
+{
+ if (dxf_type == GL_LINE_LOOP) /* close loop */
+ glVertex3f (dxf_quads[6], dxf_quads[7], dxf_quads[8]);
+ dxf_type = -1;
+ dxf_point = 0;
+ dxf_point_total = 0;
+}
+
+
+static void
+dxf_start (void)
+{
+ fprintf (stdout, "0\nSECTION\n2\nHEADER\n0\nENDSEC\n");
+ fprintf (stdout, "0\nSECTION\n2\nENTITIES\n");
+}
+
+static void
+dxf_end (void)
+{
+ fprintf (stdout, "0\nENDSEC\n0\nEOF\n");
+ exit (0);
+}
+
+
+static const GLvoid *dxf_vp;
+static GLsizei dxf_vp_size;
+static GLsizei dxf_vp_stride;
+
+static void
+dxf_glVertexPointer (GLint size, GLenum type, GLsizei stride,
+ const GLvoid *pointer)
+{
+ if (type != GL_FLOAT) abort();
+ if (stride <= 0) abort();
+ dxf_vp = pointer;
+ dxf_vp_size = size;
+ dxf_vp_stride = stride;
+}
+
+static void
+dxf_glDrawArrays (GLenum mode, GLint first, GLsizei count)
+{
+ int i;
+ unsigned char *a = (unsigned char *) dxf_vp;
+ dxf_glBegin (mode);
+ for (i = first; i < first+count; i++)
+ {
+ GLfloat *fa = (GLfloat *) a;
+ dxf_glVertex3f (fa[0], fa[1], fa[2]);
+ a += dxf_vp_stride;
+ }
+ dxf_glEnd();
+}
+
+
+# define XYZ tube_XYZ /* avoid conflict with normals.h */
+# include "tube.c" /* Yes, I really am including a C file. */
+# undef XYZ
+# define XYZ sphere_XYZ
+# define unit_sphere unit_sphere_dxf
+# define unit_dome unit_dome_dxf
+# include "sphere.c"
+# undef XYZ
+
+#endif /* DXF_OUTPUT_HACK */
+
+
+
+/* Calculate the angle (in radians) between two vectors.
+ */
+static GLfloat
+vector_angle (double ax, double ay, double az,
+ double bx, double by, double bz)
+{
+ double La = sqrt (ax*ax + ay*ay + az*az);
+ double Lb = sqrt (bx*bx + by*by + bz*bz);
+ double cc, angle;
+
+ if (La == 0 || Lb == 0) return 0;
+ if (ax == bx && ay == by && az == bz) return 0;
+
+ /* dot product of two vectors is defined as:
+ La * Lb * cos(angle between vectors)
+ and is also defined as:
+ ax*bx + ay*by + az*bz
+ so:
+ La * Lb * cos(angle) = ax*bx + ay*by + az*bz
+ cos(angle) = (ax*bx + ay*by + az*bz) / (La * Lb)
+ angle = acos ((ax*bx + ay*by + az*bz) / (La * Lb));
+ */
+ cc = (ax*bx + ay*by + az*bz) / (La * Lb);
+ if (cc > 1) cc = 1; /* avoid fp rounding error (1.000001 => sqrt error) */
+ angle = acos (cc);
+
+ return (angle);
+}
+
+
+# ifdef CW
+
+static void
+normalize (XYZ *p)
+{
+ GLfloat d = sqrt (p->x*p->x + p->y*p->y + p->z*p->z);
+ if (d != 0)
+ {
+ p->x /= d;
+ p->y /= d;
+ p->z /= d;
+ }
+ else
+ {
+ p->x = p->y = p->z = 0;
+ }
+}
+
+
+static double
+dot (const XYZ u, const XYZ v)
+{
+ return (u.x * v.x) + (u.y * v.y) + (u.z * v.z);
+}
+
+#endif /* CW */
+
+
+/* Make the helix
+ */
+
+static int
+make_helix (logo_configuration *dc, int facetted, int wire)
+{
+ int polys = 0;
+ int wall_facets = dc->wall_facets / (facetted ? 10 : 1);
+ GLfloat th;
+ GLfloat max_th = M_PI * 2 * dc->turns;
+ GLfloat th_inc = M_PI * 2 / wall_facets;
+
+ GLfloat x1=0, y1=0, x2=0, y2=0;
+ GLfloat x1b=0, y1b=0, x2b=0, y2b=0;
+ GLfloat z1=0, z2=0;
+ GLfloat h1=0, h2=0;
+ GLfloat h1off=0, h2off=0;
+ GLfloat z_inc = dc->turn_spacing / wall_facets;
+
+ th = 0;
+ x1 = 1;
+ y1 = 0;
+ x1b = 1;
+ y1b = 0;
+
+ z1 = -(dc->turn_spacing * dc->turns / 2);
+
+ h1 = (dc->wall_taper > 0 ? 0 : dc->wall_height / 2);
+ h1off = (dc->wall_taper > 0 ? -dc->wall_height / 2 : 0);
+
+ if (!dc->clockwise)
+ z1 = -z1, z_inc = -z_inc, h1off = -h1off;
+
+ /* Leading end-cap
+ */
+ if (!wire && h1 > 0)
+ {
+ GLfloat nx, ny;
+ glFrontFace(GL_CCW);
+ glBegin(GL_QUADS);
+ nx = cos (th + M_PI/2);
+ ny = sin (th + M_PI/2);
+ glNormal3f(nx, ny, 0);
+ glVertex3f( x1, y1, z1 - h1 + h1off);
+ glVertex3f( x1, y1, z1 + h1 + h1off);
+ glVertex3f(x1b, y1b, z1 + h1 + h1off);
+ glVertex3f(x1b, y1b, z1 - h1 + h1off);
+ polys++;
+ glEnd();
+ }
+
+ while (th + th_inc <= max_th)
+ {
+ GLfloat thick = dc->wall_thickness;
+
+ th += th_inc;
+
+ x2 = cos (th);
+ y2 = sin (th);
+ z2 = z1 + z_inc;
+
+ h2 = h1;
+ h2off = h1off;
+
+ if (dc->wall_taper > 0)
+ {
+ h2off = 0;
+ if (th < dc->wall_taper)
+ {
+ h2 = dc->wall_height/2 * cos (M_PI / 2
+ * (1 - (th / dc->wall_taper)));
+ if (dc->clockwise)
+ h2off = h2 - dc->wall_height/2;
+ else
+ h2off = dc->wall_height/2 - h2;
+
+ if (th + th_inc <= 0)
+ thick = 0;
+ else
+ thick *= cos (M_PI / 2 * (1 - (th / dc->wall_taper)));
+ }
+ else if (th >= max_th - dc->wall_taper)
+ {
+ if (th + th_inc > max_th) /* edge case: always come to a point */
+ h2 = 0;
+ else
+ h2 = dc->wall_height/2 * cos (M_PI / 2
+ * (1 - ((max_th - th)
+ / dc->wall_taper)));
+ if (dc->clockwise)
+ h2off = dc->wall_height/2 - h2;
+ else
+ h2off = h2 - dc->wall_height/2;
+
+ if (th + th_inc > max_th)
+ thick = 0;
+ else
+ thick *= cos(M_PI / 2 * (1 - ((max_th - th)/dc->wall_taper)));
+ }
+ }
+
+ x2b = x2 * (1 - thick);
+ y2b = y2 * (1 - thick);
+
+ /* outer face
+ */
+ glFrontFace(GL_CW);
+ glBegin(wire ? GL_LINES : GL_QUADS);
+ glNormal3f(x1, y1, 0);
+ glVertex3f(x1, y1, z1 - h1 + h1off);
+ glVertex3f(x1, y1, z1 + h1 + h1off);
+ glNormal3f(x2, y2, 0);
+ glVertex3f(x2, y2, z2 + h2 + h2off);
+ glVertex3f(x2, y2, z2 - h2 + h2off);
+ polys++;
+ glEnd();
+
+ /* inner face
+ */
+ glFrontFace(GL_CCW);
+ glBegin(wire ? GL_LINES : GL_QUADS);
+ glNormal3f(-x1b, -y1b, 0);
+ glVertex3f( x1b, y1b, z1 - h1 + h1off);
+ glVertex3f( x1b, y1b, z1 + h1 + h1off);
+ glNormal3f(-x2b, -y2b, 0);
+ glVertex3f( x2b, y2b, z2 + h2 + h2off);
+ glVertex3f( x2b, y2b, z2 - h2 + h2off);
+ polys++;
+ glEnd();
+
+ /* top face
+ */
+ glFrontFace(GL_CCW);
+ /* glNormal3f(0, 0, 1);*/
+ do_normal (x2, y2, z2 + h2 + h2off,
+ x2b, y2b, z2 + h2 + h2off,
+ x1b, y1b, z1 + h1 + h1off);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f( x2, y2, z2 + h2 + h2off);
+ glVertex3f( x2b, y2b, z2 + h2 + h2off);
+ glVertex3f( x1b, y1b, z1 + h1 + h1off);
+ glVertex3f( x1, y1, z1 + h1 + h1off);
+ polys++;
+ glEnd();
+
+ /* bottom face
+ */
+ glFrontFace(GL_CCW);
+ do_normal ( x1, y1, z1 - h1 + h1off,
+ x1b, y1b, z1 - h1 + h1off,
+ x2b, y2b, z2 - h2 + h2off);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, 0, -1);
+ glVertex3f( x1, y1, z1 - h1 + h1off);
+ glVertex3f( x1b, y1b, z1 - h1 + h1off);
+ glVertex3f( x2b, y2b, z2 - h2 + h2off);
+ glVertex3f( x2, y2, z2 - h2 + h2off);
+ polys++;
+ glEnd();
+
+ x1 = x2;
+ y1 = y2;
+ x1b = x2b;
+ y1b = y2b;
+ z1 += z_inc;
+ h1 = h2;
+ h1off = h2off;
+ }
+
+ /* Trailing end-cap
+ */
+ if (!wire && h2 > 0)
+ {
+ GLfloat nx, ny;
+ glFrontFace(GL_CW);
+ glBegin(GL_QUADS);
+ nx = cos (th + M_PI/2);
+ ny = sin (th + M_PI/2);
+ glNormal3f(nx, ny, 0);
+ glVertex3f(x2, y2, z1 - h2 + h2off);
+ glVertex3f(x2, y2, z1 + h2 + h2off);
+ glVertex3f(x2b, y2b, z1 + h2 + h2off);
+ glVertex3f(x2b, y2b, z1 - h2 + h2off);
+ polys++;
+ glEnd();
+ }
+ return polys;
+}
+
+
+static int
+make_ladder (logo_configuration *dc, int facetted, int wire)
+{
+ int polys = 0;
+ GLfloat th;
+ GLfloat max_th = dc->turns * M_PI * 2;
+ GLfloat max_z = dc->turns * dc->turn_spacing;
+ GLfloat z_inc = dc->bar_spacing;
+ GLfloat th_inc = M_PI * 2 * (dc->bar_spacing / dc->turn_spacing);
+ GLfloat x, y, z;
+
+ /* skip forward to center the bars in the helix... */
+ int i;
+ GLfloat usable_th = max_th - dc->wall_taper;
+ GLfloat usable_z = max_z / (max_th / usable_th);
+ int nbars = usable_z / dc->bar_spacing;
+ GLfloat used_z, pad_z, pad_ratio;
+
+ if (! (nbars & 1)) nbars--; /* always an odd number of bars */
+
+ used_z = (nbars - 1) * dc->bar_spacing;
+ pad_z = max_z - used_z;
+ pad_ratio = pad_z / max_z;
+
+ th = (max_th * pad_ratio/2);
+ z = -(max_z / 2) + (max_z * pad_ratio/2);
+
+ /* ##### WHYYYYYY */
+ /* The image is not reflected across line y = -x and I don't know why. */
+ th += M_PI * -0.035;
+ z -= 0.08;
+
+ if (!dc->clockwise)
+ z = -z, z_inc = -z_inc;
+
+ glFrontFace(GL_CCW);
+ for (i = 0; i < nbars; i++)
+ {
+ int facets = dc->bar_facets / (facetted ? 14 : 1);
+ if (facets <= 3) facets = 3;
+ x = cos (th) * (1 - dc->wall_thickness);
+ y = sin (th) * (1 - dc->wall_thickness);
+ polys += tube ( x, y, z,
+ -x, -y, z,
+ dc->bar_thickness, 0, facets,
+ True, True, wire);
+ z += z_inc;
+ th += th_inc;
+ }
+ return polys;
+}
+
+
+
+/* Make the gasket
+ */
+
+
+static int
+make_gasket (logo_configuration *dc, int wire)
+{
+ int polys = 0;
+ int i;
+ int points_size;
+ int npoints = 0;
+ int nctrls = 0;
+ int res = 360/8;
+ GLfloat d2r = M_PI / 180;
+
+ GLfloat thick2 = (dc->gasket_thickness / dc->gasket_size) / 2;
+
+ GLfloat *pointsx0, *pointsy0, *pointsx1, *pointsy1, *normals;
+
+ GLfloat r0 = 0.750; /* 395 */
+ GLfloat r1a = 0.825; /* bottom of wall below upper left hole */
+ GLfloat r1b = 0.867; /* center of upper left hole */
+ GLfloat r1c = 0.909; /* top of wall above hole */
+ GLfloat r1 = 0.916; /* 471 */
+ GLfloat r2 = 0.963; /* 490 */
+ GLfloat r3 = 0.960; /* 499 */
+ GLfloat r4 = 1.000; /* 507 */
+ GLfloat r5 = 1.080; /* 553 */
+
+ GLfloat ctrl_r[100], ctrl_th[100];
+
+ glPushMatrix();
+
+# ifdef DXF_OUTPUT_HACK
+ if (! wire) res *= 8;
+# endif
+
+# define POINT(r,th) \
+ ctrl_r [nctrls] = r, \
+ ctrl_th[nctrls] = (th * d2r), \
+ nctrls++
+
+ POINT (0.829, 0); /* top indentation, right half */
+ POINT (0.831, 0.85);
+ POINT (0.835, 1.81);
+ POINT (0.841, 2.65);
+ POINT (0.851, 3.30);
+ POINT (0.862, 3.81);
+ POINT (0.872, 3.95);
+
+ POINT (r4, 4.0); /* moving clockwise... */
+ POINT (r4, 47.0);
+ POINT (r1, 47.0);
+ POINT (r1, 53.0);
+ POINT (r2, 55.5);
+ POINT (r2, 72.3);
+ POINT (r1, 74.0);
+ POINT (r1, 100.0);
+ POINT (r3, 102.5);
+ POINT (r3, 132.0);
+ POINT (r1, 133.0);
+
+ POINT (r1, 180.7);
+ POINT (r2, 183.6);
+ POINT (r2, 210.0);
+ POINT (r1, 212.0);
+ POINT (r1, 223.2);
+ POINT (r5, 223.2);
+ POINT (r5, 225.0);
+ POINT (r4, 225.0);
+
+ POINT (r4, 316.8); /* upper left indentation */
+ POINT (0.990, 316.87);
+ POINT (0.880, 317.21);
+ POINT (0.872, 317.45);
+ POINT (0.869, 317.80);
+ POINT (0.867, 318.10);
+
+ POINT (0.867, 318.85);
+ POINT (0.869, 319.15);
+ POINT (0.872, 319.50);
+ POINT (0.880, 319.74);
+ POINT (0.990, 320.08);
+
+ POINT (r4, 338.0);
+ if (! wire)
+ {
+ POINT (r1a, 338.0); /* cut-out disc */
+ POINT (r1a, 344.0);
+ }
+ POINT (r4, 344.0);
+ POINT (r4, 356.0);
+
+ POINT (0.872, 356.05); /* top indentation, left half */
+ POINT (0.862, 356.19);
+ POINT (0.851, 356.70);
+ POINT (0.841, 357.35);
+ POINT (0.835, 358.19);
+ POINT (0.831, 359.15);
+ POINT (0.829, 360);
+# undef POINT
+
+ points_size = res + (nctrls * 2);
+ pointsx0 = (GLfloat *) malloc (points_size * sizeof(GLfloat));
+ pointsy0 = (GLfloat *) malloc (points_size * sizeof(GLfloat));
+ pointsx1 = (GLfloat *) malloc (points_size * sizeof(GLfloat));
+ pointsy1 = (GLfloat *) malloc (points_size * sizeof(GLfloat));
+ normals = (GLfloat *) malloc (points_size * sizeof(GLfloat) * 2);
+
+ npoints = 0;
+ for (i = 1; i < nctrls; i++)
+ {
+ GLfloat from_r = ctrl_r [i-1];
+ GLfloat from_th = ctrl_th[i-1];
+ GLfloat to_r = ctrl_r [i];
+ GLfloat to_th = ctrl_th[i];
+
+ GLfloat step = 2*M_PI / res;
+ int nsteps = 1 + ((to_th - from_th) / step);
+ int j;
+
+ for (j = 0; j < nsteps + (i == nctrls-1); j++)
+ {
+ GLfloat r = from_r + (j * (to_r - from_r) / nsteps);
+ GLfloat th = from_th + (j * (to_th - from_th) / nsteps);
+
+ GLfloat cth = cos(th) * dc->gasket_size;
+ GLfloat sth = sin(th) * dc->gasket_size;
+
+ pointsx0[npoints] = r0 * cth; /* inner ring */
+ pointsy0[npoints] = r0 * sth;
+ pointsx1[npoints] = r * cth; /* outer ring */
+ pointsy1[npoints] = r * sth;
+ npoints++;
+
+ if (npoints >= points_size) abort();
+ }
+ }
+
+ /* normals for the outer ring */
+ for (i = 1; i < npoints; i++)
+ {
+ XYZ a, b, c, n;
+ a.x = pointsx1[i-1];
+ a.y = pointsy1[i-1];
+ a.z = 0;
+ b.x = pointsx1[i];
+ b.y = pointsy1[i];
+ b.z = 0;
+ c = b;
+ c.z = 1;
+ n = calc_normal (a, b, c);
+ normals[(i-1)*2 ] = n.x;
+ normals[(i-1)*2+1] = n.y;
+ }
+
+ glRotatef(-90, 0, 1, 0);
+ glRotatef(180, 0, 0, 1);
+
+ if (wire)
+ {
+ GLfloat z;
+ for (z = -thick2; z <= thick2; z += thick2*2)
+ {
+# if 1
+ /* inside edge */
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx0[i], pointsy0[i], z);
+ polys += npoints;
+ glEnd();
+
+ /* outside edge */
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx1[i], pointsy1[i], z);
+ polys += npoints;
+ glEnd();
+# else
+ for (i = 1; i < npoints; i++)
+ {
+ glBegin (GL_LINE_STRIP);
+ glVertex3f (pointsx0[i-1], pointsy0[i-1], z);
+ glVertex3f (pointsx0[i ], pointsy0[i ], z);
+ glVertex3f (pointsx1[i ], pointsy1[i ], z);
+ glVertex3f (pointsx1[i-1], pointsy1[i-1], z);
+ glEnd();
+ }
+ polys += npoints;
+# endif
+ }
+#if 1
+ glBegin (GL_LINES);
+ for (i = 0; i < npoints; i++)
+ {
+ /* inside rim */
+ glVertex3f (pointsx0[i], pointsy0[i], -thick2);
+ glVertex3f (pointsx0[i], pointsy0[i], thick2);
+ /* outside rim */
+ glVertex3f (pointsx1[i], pointsy1[i], -thick2);
+ glVertex3f (pointsx1[i], pointsy1[i], thick2);
+ }
+ polys += npoints;
+ glEnd();
+#endif
+ }
+ else
+ {
+ /* top */
+ glFrontFace(GL_CW);
+ glNormal3f(0, 0, -1);
+ glBegin (GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glVertex3f (pointsx0[i], pointsy0[i], -thick2);
+ glVertex3f (pointsx1[i], pointsy1[i], -thick2);
+ }
+ polys += npoints;
+ glEnd();
+
+ /* bottom */
+ glFrontFace(GL_CCW);
+ glNormal3f(0, 0, 1);
+ glBegin (GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glVertex3f (pointsx0[i], pointsy0[i], thick2);
+ glVertex3f (pointsx1[i], pointsy1[i], thick2);
+ }
+ polys += npoints;
+ glEnd();
+
+ /* inside edge */
+ glFrontFace(GL_CW);
+ glBegin (GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glNormal3f (-pointsx0[i], -pointsy0[i], 0);
+ glVertex3f ( pointsx0[i], pointsy0[i], thick2);
+ glVertex3f ( pointsx0[i], pointsy0[i], -thick2);
+ }
+ polys += npoints;
+ glEnd();
+
+ /* outside edge */
+ glFrontFace(GL_CCW);
+ glBegin (GL_QUADS);
+ {
+ for (i = 0; i < npoints-1; i++)
+ {
+ int ia = (i == 0 ? npoints-2 : i-1);
+ int iz = (i == npoints-2 ? 0 : i+1);
+ GLfloat x = pointsx1[i];
+ GLfloat y = pointsy1[i];
+ GLfloat xz = pointsx1[iz];
+ GLfloat yz = pointsy1[iz];
+
+ GLfloat nxa = normals[ia*2]; /* normal of [i-1 - i] face */
+ GLfloat nya = normals[ia*2+1];
+ GLfloat nx = normals[i*2]; /* normal of [i - i+1] face */
+ GLfloat ny = normals[i*2+1];
+ GLfloat nxz = normals[iz*2]; /* normal of [i+1 - i+2] face */
+ GLfloat nyz = normals[iz*2+1];
+
+ GLfloat anglea = vector_angle (nx, ny, 0, nxa, nya, 0);
+ GLfloat anglez = vector_angle (nx, ny, 0, nxz, nyz, 0);
+ GLfloat pointy = 0.6;
+
+ if (anglea > pointy)
+ {
+ glNormal3f (nx, ny, 0);
+ glVertex3f (x, y, thick2);
+ glVertex3f (x, y, -thick2);
+ }
+ else
+ {
+ glNormal3f ((nxa + nx) / 2, (nya + ny) / 2, 0);
+ glVertex3f (x, y, thick2);
+ glVertex3f (x, y, -thick2);
+ }
+
+ if (anglez > pointy)
+ {
+ glNormal3f (nx, ny, 0);
+ glVertex3f (xz, yz, -thick2);
+ glVertex3f (xz, yz, thick2);
+ }
+ else
+ {
+ glNormal3f ((nx + nxz) / 2, (ny + nyz) / 2, 0);
+ glVertex3f (xz, yz, -thick2);
+ glVertex3f (xz, yz, thick2);
+ }
+ }
+ polys += npoints;
+ }
+ glEnd();
+ }
+
+ /* Fill in the upper left hole...
+ */
+ {
+ GLfloat th;
+ npoints = 0;
+
+ th = 338.0 * d2r;
+ pointsx0[npoints] = r1c * cos(th) * dc->gasket_size;
+ pointsy0[npoints] = r1c * sin(th) * dc->gasket_size;
+ npoints++;
+ pointsx0[npoints] = r4 * cos(th) * dc->gasket_size;
+ pointsy0[npoints] = r4 * sin(th) * dc->gasket_size;
+ npoints++;
+
+ th = 344.0 * d2r;
+ pointsx0[npoints] = r1c * cos(th) * dc->gasket_size;
+ pointsy0[npoints] = r1c * sin(th) * dc->gasket_size;
+ npoints++;
+ pointsx0[npoints] = r4 * cos(th) * dc->gasket_size;
+ pointsy0[npoints] = r4 * sin(th) * dc->gasket_size;
+
+ if (! wire)
+ {
+ /* front wall */
+ glNormal3f (0, 0, -1);
+ glFrontFace(GL_CW);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (pointsx0[0], pointsy0[0], -thick2);
+ glVertex3f (pointsx0[1], pointsy0[1], -thick2);
+ glVertex3f (pointsx0[3], pointsy0[3], -thick2);
+ glVertex3f (pointsx0[2], pointsy0[2], -thick2);
+ glEnd();
+ polys++;
+
+ /* back wall */
+ glNormal3f (0, 0, 1);
+ glFrontFace(GL_CCW);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (pointsx0[0], pointsy0[0], thick2);
+ glVertex3f (pointsx0[1], pointsy0[1], thick2);
+ glVertex3f (pointsx0[3], pointsy0[3], thick2);
+ glVertex3f (pointsx0[2], pointsy0[2], thick2);
+ glEnd();
+ polys++;
+ }
+
+ /* top wall */
+ glFrontFace(GL_CW);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f (pointsx0[1], pointsy0[1], 0);
+ glVertex3f (pointsx0[1], pointsy0[1], thick2);
+ glNormal3f (pointsx0[3], pointsy0[3], 0);
+ glVertex3f (pointsx0[3], pointsy0[3], thick2);
+ glVertex3f (pointsx0[3], pointsy0[3], -thick2);
+ glNormal3f (pointsx0[1], pointsy0[1], 0);
+ glVertex3f (pointsx0[1], pointsy0[1], -thick2);
+ glEnd();
+ polys++;
+
+
+ /* Now make a donut.
+ */
+ {
+ int nsteps = (wire ? 12 : 64);
+ GLfloat r0 = 0.04;
+ GLfloat r1 = 0.070;
+ GLfloat th, cth, sth;
+
+ glPushMatrix ();
+
+ th = ((339.0 + 343.0) / 2) * d2r;
+
+ glTranslatef (r1b * cos(th) * dc->gasket_size,
+ r1b * sin(th) * dc->gasket_size,
+ 0);
+
+ npoints = 0;
+ for (i = 0; i < nsteps; i++)
+ {
+ th = 2 * M_PI * i / nsteps;
+ cth = cos (th) * dc->gasket_size;
+ sth = sin (th) * dc->gasket_size;
+ pointsx0[npoints] = r0 * cth;
+ pointsy0[npoints] = r0 * sth;
+ pointsx1[npoints] = r1 * cth;
+ pointsy1[npoints] = r1 * sth;
+ npoints++;
+ polys++;
+ }
+
+ pointsx0[npoints] = pointsx0[0];
+ pointsy0[npoints] = pointsy0[0];
+ pointsx1[npoints] = pointsx1[0];
+ pointsy1[npoints] = pointsy1[0];
+ npoints++;
+
+ if (wire)
+ {
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx0[i], pointsy0[i], -thick2);
+ polys += npoints;
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx0[i], pointsy0[i], thick2);
+ polys += npoints;
+ glEnd();
+# if 0
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx1[i], pointsy1[i], -thick2);
+ polys += npoints;
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx1[i], pointsy1[i], thick2);
+ polys += npoints;
+ glEnd();
+# endif
+ }
+ else
+ {
+ /* top */
+ glFrontFace(GL_CW);
+ glNormal3f(0, 0, -1);
+ glBegin (GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glVertex3f (pointsx0[i], pointsy0[i], -thick2);
+ glVertex3f (pointsx1[i], pointsy1[i], -thick2);
+ }
+ polys += npoints;
+ glEnd();
+
+ /* bottom */
+ glFrontFace(GL_CCW);
+ glNormal3f(0, 0, 1);
+ glBegin (GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glVertex3f (pointsx0[i], pointsy0[i], thick2);
+ glVertex3f (pointsx1[i], pointsy1[i], thick2);
+ }
+ polys += npoints;
+ glEnd();
+ }
+
+ /* inside edge */
+ glFrontFace(GL_CW);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glNormal3f (-pointsx0[i], -pointsy0[i], 0);
+ glVertex3f ( pointsx0[i], pointsy0[i], thick2);
+ glVertex3f ( pointsx0[i], pointsy0[i], -thick2);
+ }
+ polys += npoints;
+ glEnd();
+
+ glPopMatrix();
+ }
+ }
+
+
+ /* Attach the bottom-right dingus...
+ */
+ {
+ GLfloat w = 0.05;
+ GLfloat h = 0.19;
+ GLfloat th;
+
+ glRotatef (49.5, 0, 0, 1);
+ glScalef (dc->gasket_size, dc->gasket_size, 1);
+ glTranslatef (0, (r0+r1)/2, 0);
+
+ /* buried box */
+ if (! wire)
+ {
+ glFrontFace(GL_CCW);
+ glBegin (wire ? GL_LINE_STRIP : GL_QUADS);
+ glNormal3f (0, 0, -1);
+ glVertex3f (-w/2, -h/2, -thick2); glVertex3f (-w/2, h/2, -thick2);
+ glVertex3f ( w/2, h/2, -thick2); glVertex3f ( w/2, -h/2, -thick2);
+ glNormal3f (1, 0, 0);
+ glVertex3f ( w/2, -h/2, -thick2); glVertex3f ( w/2, h/2, -thick2);
+ glVertex3f ( w/2, h/2, thick2); glVertex3f ( w/2, -h/2, thick2);
+ glNormal3f (0, 0, 1);
+ glVertex3f ( w/2, -h/2, thick2); glVertex3f ( w/2, h/2, thick2);
+ glVertex3f (-w/2, h/2, thick2); glVertex3f (-w/2, -h/2, thick2);
+ glNormal3f (-1, 0, 0);
+ glVertex3f (-w/2, -h/2, thick2); glVertex3f (-w/2, h/2, thick2);
+ glVertex3f (-w/2, h/2, -thick2); glVertex3f (-w/2, -h/2, -thick2);
+ polys++;
+ glEnd();
+ }
+
+ npoints = 0;
+ for (th = (wire ? 0 : -0.1);
+ th <= M_PI + 0.1;
+ th += (M_PI / (wire ? 5 : 32)))
+ {
+ pointsx0[npoints] = w/2 * cos(th);
+ pointsy0[npoints] = w/2 * sin(th);
+ npoints++;
+ polys++;
+ }
+
+ /* front inside curve */
+ glNormal3f (0, 0, -1);
+ glFrontFace(GL_CW);
+ glBegin (wire ? GL_LINE_STRIP : GL_TRIANGLE_FAN);
+ if (! wire) glVertex3f (0, h/2, -thick2);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx0[i], h/2 + pointsy0[i], -thick2);
+ polys += npoints;
+ glEnd();
+
+ /* front outside curve */
+ glFrontFace(GL_CCW);
+ glBegin (wire ? GL_LINE_STRIP : GL_TRIANGLE_FAN);
+ if (! wire) glVertex3f (0, -h/2, -thick2);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx0[i], -h/2 - pointsy0[i], -thick2);
+ polys += npoints;
+ glEnd();
+
+ /* back inside curve */
+ glNormal3f (0, 0, 1);
+ glFrontFace(GL_CCW);
+ glBegin (wire ? GL_LINE_STRIP : GL_TRIANGLE_FAN);
+ if (! wire) glVertex3f (0, h/2, thick2);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx0[i], h/2 + pointsy0[i], thick2);
+ polys += npoints;
+ glEnd();
+
+ /* back outside curve */
+ glFrontFace(GL_CW);
+ glBegin (wire ? GL_LINE_STRIP : GL_TRIANGLE_FAN);
+ if (! wire) glVertex3f (0, -h/2, thick2);
+ for (i = 0; i < npoints; i++)
+ glVertex3f (pointsx0[i], -h/2 - pointsy0[i], thick2);
+ polys += npoints;
+ glEnd();
+
+ /* inside curve */
+ glFrontFace(GL_CCW);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glNormal3f (pointsx0[i], pointsy0[i], 0);
+ glVertex3f (pointsx0[i], h/2 + pointsy0[i], thick2);
+ glVertex3f (pointsx0[i], h/2 + pointsy0[i], -thick2);
+ }
+ polys += npoints;
+ glEnd();
+
+ /* outside curve */
+ glFrontFace(GL_CW);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < npoints; i++)
+ {
+ glNormal3f (pointsx0[i], -pointsy0[i], 0);
+ glVertex3f (pointsx0[i], -h/2 - pointsy0[i], thick2);
+ glVertex3f (pointsx0[i], -h/2 - pointsy0[i], -thick2);
+ }
+ polys += npoints;
+ glEnd();
+ }
+
+ free (pointsx0);
+ free (pointsy0);
+ free (pointsx1);
+ free (pointsy1);
+ free (normals);
+
+ glPopMatrix();
+ return polys;
+}
+
+static int
+make_frame (logo_configuration *dc, int wire)
+{
+ int polys = 0;
+ int i, j;
+ GLfloat x[20], y[20];
+ GLfloat corner_cut = 0.5;
+
+ glPushMatrix();
+ glRotatef (90, 0, 1, 0);
+ glScalef (4 * dc->frame_size,
+ 4 * dc->frame_size,
+ 4 * dc->frame_size);
+
+ x[0] = -dc->frame_thickness;
+ x[1] = -dc->frame_thickness * corner_cut;
+ x[2] = 0;
+ x[3] = 0.5 - dc->triangle_size;
+ x[4] = 0.5;
+ x[5] = 0.5 + dc->triangle_size;
+ x[6] = 1;
+ x[7] = 1 + dc->frame_thickness * corner_cut;
+ x[8] = 1 + dc->frame_thickness;
+
+ y[0] = -dc->frame_thickness;
+ y[1] = -dc->frame_thickness * corner_cut;
+ y[2] = 0;
+ y[3] = dc->triangle_size;
+
+ /* front and back
+ */
+ glTranslatef (-0.5, -0.5, dc->frame_depth / 4);
+ if (! wire)
+ for (j = 0; j <= 1; j++)
+ {
+ if (j) glTranslatef (0, 0, -dc->frame_depth / 2);
+ glFrontFace (j ? GL_CCW : GL_CW);
+ for (i = 0; i < 4; i++)
+ {
+ glNormal3f (0, 0, (j ? -1 : 1));
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ glVertex3f (x[0], y[1], 0); glVertex3f (x[0], y[2], 0);
+ glVertex3f (x[1], y[0], 0); glVertex3f (x[1], y[2], 0);
+ glVertex3f (x[3], y[0], 0); glVertex3f (x[3], y[2], 0);
+ glVertex3f (x[4], y[0], 0); glVertex3f (x[4], y[3], 0);
+ glVertex3f (x[5], y[0], 0); glVertex3f (x[5], y[2], 0);
+ glVertex3f (x[7], y[0], 0); glVertex3f (x[7], y[2], 0);
+ glVertex3f (x[8], y[1], 0); glVertex3f (x[8], y[2], 0);
+ polys += 6;
+ glEnd ();
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef (90, 0, 0, 1);
+ glTranslatef (-0.5, -0.5, 0);
+ }
+ }
+
+ /* ledges
+ */
+ glFrontFace (GL_CCW);
+ for (i = 0; i < 4; i++)
+ {
+ glNormal3f (0, 1, 0);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ glVertex3f (x[2], y[2], 0); glVertex3f (x[2], y[2], dc->frame_depth/2);
+ glVertex3f (x[3], y[2], 0); glVertex3f (x[3], y[2], dc->frame_depth/2);
+ glVertex3f (x[4], y[3], 0); glVertex3f (x[4], y[3], dc->frame_depth/2);
+ glVertex3f (x[5], y[2], 0); glVertex3f (x[5], y[2], dc->frame_depth/2);
+ glVertex3f (x[6], y[2], 0); glVertex3f (x[6], y[2], dc->frame_depth/2);
+ polys += 4;
+ glEnd ();
+
+ glNormal3f (0, -1, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (x[7], y[0], 0);
+ glVertex3f (x[7], y[0], dc->frame_depth/2);
+ glVertex3f (x[1], y[0], dc->frame_depth/2);
+ glVertex3f (x[1], y[0], 0);
+ polys++;
+ glEnd ();
+
+ glNormal3f (1, -1, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (x[8], y[1], 0);
+ glVertex3f (x[8], y[1], dc->frame_depth/2);
+ glVertex3f (x[7], y[0], dc->frame_depth/2);
+ glVertex3f (x[7], y[0], 0);
+ polys++;
+ glEnd ();
+
+ if (wire)
+ {
+ glNormal3f (0, 1, 0);
+ for (j = 0; j <= 1; j++)
+ {
+ glBegin (GL_LINE_STRIP);
+ glVertex3f (x[2], y[2], j*dc->frame_depth/2);
+ glVertex3f (x[3], y[2], j*dc->frame_depth/2);
+ glVertex3f (x[4], y[3], j*dc->frame_depth/2);
+ glVertex3f (x[5], y[2], j*dc->frame_depth/2);
+ glVertex3f (x[6], y[2], j*dc->frame_depth/2);
+ polys += 4;
+ glEnd ();
+ }
+ }
+
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef (90, 0, 0, 1);
+ glTranslatef (-0.5, -0.5, 0);
+ }
+
+ glPopMatrix();
+ return polys;
+}
+
+
+/* Make some pizza.
+ */
+
+#ifdef HAVE_TESS
+
+typedef struct {
+ GLdouble *points;
+ int i;
+} tess_out;
+
+
+static void
+tess_error_cb (GLenum errorCode)
+{
+ fprintf (stderr, "%s: tesselation error: %s\n",
+ progname, gluErrorString(errorCode));
+ exit (0);
+}
+
+static void
+tess_combine_cb (GLdouble coords[3], GLdouble *d[4], GLfloat w[4],
+ GLdouble **data_out)
+{
+ GLdouble *new = (GLdouble *) malloc (3 * sizeof(*new));
+ new[0] = coords[0];
+ new[1] = coords[1];
+ new[2] = coords[2];
+ *data_out = new;
+}
+
+
+#if 0
+static void
+tess_vertex_cb (void *vertex_data, void *closure)
+{
+ tess_out *to = (tess_out *) closure;
+ GLdouble *v = (GLdouble *) vertex_data;
+ to->points[to->i++] = v[0];
+ to->points[to->i++] = v[1];
+ to->points[to->i++] = v[2];
+}
+#endif
+
+static void
+tess_begin_cb (GLenum which)
+{
+ glBegin(which);
+}
+
+static void
+tess_end_cb (void)
+{
+ glEnd();
+}
+
+#endif /* HAVE_TESS */
+
+
+static int
+make_pizza (logo_configuration *dc, int facetted, int wire)
+{
+ int polys = 0;
+ int topfaces = (facetted ? 48 : 120);
+ int discfaces = (facetted ? 12 : 120);
+ int npoints = topfaces * 2 + 100;
+ GLdouble *points = (GLdouble *) calloc (npoints * 3, sizeof(GLdouble));
+ int nholes = 3;
+ GLdouble *holes = (GLdouble *) calloc (topfaces*nholes*3, sizeof(GLdouble));
+
+ GLfloat step = M_PI * 2 / 6 / topfaces;
+ GLfloat thick2 = (dc->gasket_thickness / dc->gasket_size) / 4;
+ GLfloat th, x, y, s;
+ int i, j, k;
+ int endpoints;
+
+# ifdef HAVE_TESS
+ tess_out TO, *to = &TO;
+ GLUtesselator *tess = gluNewTess();
+
+ to->points = (GLdouble *) calloc (topfaces * 20, sizeof(GLdouble));
+ to->i = 0;
+
+# ifndef _GLUfuncptr
+# define _GLUfuncptr void(*)(void)
+# endif
+
+ gluTessCallback(tess,GLU_TESS_BEGIN, (_GLUfuncptr)tess_begin_cb);
+ gluTessCallback(tess,GLU_TESS_VERTEX, (_GLUfuncptr)glVertex3dv);
+ gluTessCallback(tess,GLU_TESS_END, (_GLUfuncptr)tess_end_cb);
+ gluTessCallback(tess,GLU_TESS_COMBINE, (_GLUfuncptr)tess_combine_cb);
+ gluTessCallback(tess,GLU_TESS_ERROR, (_GLUfuncptr)tess_error_cb);
+
+ gluTessProperty (tess, GLU_TESS_BOUNDARY_ONLY, wire);
+ gluTessProperty (tess,GLU_TESS_WINDING_RULE, GLU_TESS_WINDING_ODD);
+
+# endif /* HAVE_TESS */
+
+ glPushMatrix();
+
+ s = 1.9;
+ glRotatef (180, 0, 0, 1);
+ glScalef (s, s, s);
+ glRotatef (90, 0, 1, 0);
+ glTranslatef (-0.53, 0, 0);
+ glRotatef (-30, 0, 0, 1);
+
+ /* Compute the wedge */
+ th = 0;
+ j = 0;
+
+ /* Edge 1 */
+ {
+ GLfloat edge[] = {
+ 0.000, 0.000,
+ 0.000, 0.210,
+ 0.042, 0.230,
+ 0.042, 0.616,
+ 0.000, 0.641,
+ };
+ for (i = 0; i < countof(edge)/2; i++)
+ {
+ points[j++] = edge[i*2+1];
+ points[j++] = edge[i*2];
+ points[j++] = 0;
+ }
+ }
+
+ s = 0.798; /* radius of end of slice, before crust gap */
+ for (i = 0; i < topfaces; i++)
+ {
+ points[j++] = cos(th) * s;
+ points[j++] = sin(th) * s;
+ points[j++] = 0;
+ th += step;
+ }
+
+ /* Edge 2 */
+ {
+ GLfloat edge[] = {
+ 0.613, 0.353,
+ 0.572, 0.376,
+ 0.455, 0.309,
+ 0.452, 0.260,
+ 0.332, 0.192,
+ 0.293, 0.216,
+ 0.178, 0.149,
+ 0.178, 0.102,
+ };
+ for (i = 0; i < countof(edge)/2; i++)
+ {
+ points[j++] = edge[i*2+1];
+ points[j++] = edge[i*2];
+ points[j++] = 0;
+ }
+ endpoints = j/3;
+ }
+
+
+ /* Draw the rim of the slice */
+ glBegin (wire ? GL_LINES : GL_QUADS);
+ x = points[0];
+ y = points[1];
+ for (i = (wire ? 0 : 1); i < endpoints; i++)
+ {
+ GLdouble *p = points + (i*3);
+
+ do_normal (p[0], p[1], -thick2,
+ p[0], p[1], thick2,
+ x, y, thick2);
+ if (!wire)
+ {
+ glVertex3f (x, y, -thick2);
+ glVertex3f (x, y, thick2);
+ }
+ glVertex3f (p[0], p[1], thick2);
+ glVertex3f (p[0], p[1], -thick2);
+ x = p[0];
+ y = p[1];
+ polys++;
+ }
+
+ do_normal (points[0], points[1], -thick2,
+ points[0], points[1], thick2,
+ x, y, thick2);
+ glVertex3f (x, y, -thick2);
+ glVertex3f (x, y, thick2);
+ glVertex3f (points[0], points[1], thick2);
+ glVertex3f (points[0], points[1], -thick2);
+ polys++;
+ glEnd();
+
+# ifndef HAVE_TESS
+ if (wire)
+ {
+ /* Outline of slice */
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < endpoints; i++)
+ glVertex3f (points[i*3], points[i*3+1], -thick2);
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < endpoints; i++)
+ glVertex3f (points[i*3], points[i*3+1], thick2);
+ glEnd();
+ }
+# endif /* HAVE_TESS */
+
+ /* Compute the holes */
+ step = M_PI * 2 / discfaces;
+ for (k = 0; k < nholes; k++)
+ {
+ GLdouble *p = holes + (discfaces * 3 * k);
+ th = 0;
+ j = 0;
+ switch (k) {
+ case 0: x = 0.34; y = 0.17; s = 0.05; break;
+ case 1: x = 0.54; y = 0.17; s = 0.06; break;
+ case 2: x = 0.55; y = 0.36; s = 0.06; break;
+ default: abort(); break;
+ }
+ for (i = 0; i < discfaces; i++)
+ {
+ p[j++] = x + cos(M_PI*2 - th) * s;
+ p[j++] = y + sin(M_PI*2 - th) * s;
+ p[j++] = 0;
+ th += step;
+ }
+ }
+
+
+ /* Draw the inside rim of the holes */
+ for (k = 0; k < nholes; k++)
+ {
+ GLdouble *p = holes + (discfaces * 3 * k);
+
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < discfaces; i++)
+ {
+ GLdouble *p2 = p + (i*3);
+ if (i > 0)
+ do_normal (p2[0], p2[1], -thick2,
+ p2[0], p2[1], thick2,
+ p2[-3], p2[-2], thick2);
+ glVertex3f (p2[0], p2[1], -thick2);
+ glVertex3f (p2[0], p2[1], thick2);
+ polys++;
+ }
+ glVertex3f (p[0], p[1], -thick2);
+ glVertex3f (p[0], p[1], thick2);
+ polys++;
+ glEnd();
+# ifndef HAVE_TESS
+ if (wire)
+ {
+ /* Outline of holes */
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < discfaces; i++)
+ glVertex3f (p[i*3], p[i*3+1], -thick2);
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < discfaces; i++)
+ glVertex3f (p[i*3], p[i*3+1], thick2);
+ glEnd();
+ }
+# endif /* !HAVE_TESS */
+ }
+
+# ifdef HAVE_TESS
+ glTranslatef (0, 0, -thick2);
+ for (y = 0; y <= 1; y++)
+ {
+ if (y) glTranslatef (0, 0, thick2*2);
+
+ /* A non-convex polygon */
+ gluTessBeginPolygon (tess, to);
+
+ glNormal3f (0, 0, (y > 0 ? 1 : -1));
+ gluTessNormal (tess, 0, 0, (y > 0 ? 1 : -1));
+ glFrontFace (GL_CCW);
+
+ /* Tess the wedge */
+ gluTessBeginContour (tess);
+ for (i = 0; i < endpoints; i++)
+ {
+ GLdouble *p = points + (i*3);
+ gluTessVertex (tess, p, p);
+ polys++;
+ }
+ gluTessVertex (tess, points, points);
+ gluTessEndContour (tess);
+
+ /* Tess the holes */
+ for (k = 0; k < nholes; k++)
+ {
+ GLdouble *p = holes + (discfaces * 3 * k);
+ gluTessBeginContour (tess);
+ for (i = 0; i < discfaces; i++)
+ {
+ GLdouble *p2 = p + (i*3);
+ gluTessVertex (tess, p2, p2);
+ polys++;
+ }
+ gluTessEndContour (tess);
+ }
+
+ gluTessEndPolygon (tess);
+ }
+
+ glTranslatef (0, 0, -thick2);
+
+# else /* !HAVE_TESS */
+ if (! wire)
+ {
+ glTranslatef(0, 0, thick2);
+ glNormal3f (0, 0, 1);
+ glFrontFace (GL_CW);
+
+ /* Sadly, jwzgl's glVertexPointer seems not to be recordable inside
+ display lists. */
+# if 0
+ glDisableClientState (GL_COLOR_ARRAY);
+ glDisableClientState (GL_NORMAL_ARRAY);
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glEnableClientState (GL_VERTEX_ARRAY);
+ glVertexPointer (3, GL_FLOAT, 0, dnapizza_triangles);
+ glDrawArrays (GL_TRIANGLES, 0, countof (dnapizza_triangles) / 3);
+# else
+ glBegin (GL_TRIANGLES);
+ for (i = 0; i < countof (dnapizza_triangles); i += 3)
+ glVertex3fv (dnapizza_triangles + i);
+ glEnd();
+# endif
+
+ glTranslatef(0, 0, -thick2*2);
+ glNormal3f (0, 0, -1);
+ glFrontFace (GL_CCW);
+
+# if 0
+ glDrawArrays (GL_TRIANGLES, 0, countof (dnapizza_triangles) / 3);
+# else
+ int i;
+ glBegin (GL_TRIANGLES);
+ for (i = 0; i < countof (dnapizza_triangles); i += 3)
+ glVertex3fv (dnapizza_triangles + i);
+ glEnd();
+# endif
+
+ glTranslatef(0, 0, thick2);
+ }
+# endif /* !HAVE_TESS */
+
+
+ /* Compute the crust */
+
+ s = 0.861; /* radius of inside of crust */
+ step = M_PI * 2 / 6 / topfaces;
+ th = 0;
+ j = 0;
+ for (i = 0; i < topfaces; i++)
+ {
+ points[j++] = cos(th) * s;
+ points[j++] = sin(th) * s;
+ points[j++] = 0;
+ th += step;
+ }
+
+ s = 1;
+ for (i = 0; i < topfaces; i++)
+ {
+ points[j++] = cos(th) * s;
+ points[j++] = sin(th) * s;
+ points[j++] = 0;
+ th -= step;
+ }
+
+ /* Draw the rim of the crust */
+ glFrontFace (GL_CCW);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < topfaces * 2; i++)
+ {
+ GLdouble *p = points + (i*3);
+ if (i == 0 || i == (topfaces*2)-1)
+ glNormal3f (0, -1, 0);
+ else if (i == topfaces-1 || i == topfaces)
+ glNormal3f (0, 1, 0);
+ else
+ do_normal (p[-3], p[-2], thick2,
+ p[0], p[1], thick2,
+ p[0], p[1], -thick2);
+ glVertex3f (p[0], p[1], -thick2);
+ glVertex3f (p[0], p[1], thick2);
+ polys++;
+ }
+ glVertex3f (points[0], points[1], -thick2);
+ glVertex3f (points[0], points[1], thick2);
+ polys++;
+ glEnd();
+
+ if (wire)
+ {
+ glBegin (GL_LINE_STRIP);
+ for (i = 0; i < topfaces * 2; i++)
+ {
+ GLdouble *p = points + (i*3);
+ glVertex3f (p[0], p[1], -thick2);
+ polys++;
+ }
+ glVertex3f (points[0], points[1], -thick2);
+ glEnd();
+
+ glBegin (GL_LINE_STRIP);
+ for (i = 0; i < topfaces * 2; i++)
+ {
+ GLdouble *p = points + (i*3);
+ glVertex3f (p[0], p[1], thick2);
+ polys++;
+ }
+ glVertex3f (points[0], points[1], thick2);
+ glEnd();
+ }
+
+ /* Draw the top of the crust */
+ if (! wire)
+ {
+ glFrontFace (GL_CW);
+ glBegin (wire ? GL_LINE_STRIP : GL_QUAD_STRIP);
+ glNormal3f (0, 0, -1);
+ if (!wire)
+ for (i = 0; i < topfaces; i++)
+ {
+ int ii = topfaces + (topfaces - i - 1);
+ GLdouble *p1 = points + (i*3);
+ GLdouble *p2 = points + (ii*3);
+ glVertex3f (p1[0], p1[1], -thick2);
+ glVertex3f (p2[0], p2[1], -thick2);
+ polys++;
+ }
+ polys++;
+ glEnd();
+
+ /* Draw the bottom of the crust */
+ glFrontFace (GL_CCW);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ glNormal3f (0, 0, 1);
+ for (i = 0; i < topfaces; i++)
+ {
+ int ii = topfaces + (topfaces - i - 1);
+ GLdouble *p1 = points + (i*3);
+ GLdouble *p2 = points + (ii*3);
+ glVertex3f (p1[0], p1[1], thick2);
+ glVertex3f (p2[0], p2[1], thick2);
+ polys++;
+ }
+ polys++;
+ glEnd();
+ }
+
+# ifdef HAVE_TESS
+ gluDeleteTess (tess);
+ free (to->points);
+# endif /* HAVE_TESS */
+
+ free (points);
+ free (holes);
+
+ glPopMatrix();
+
+ return polys;
+}
+
+
+# ifdef CW
+
+/* Upcase string, convert Unicrud to ASCII, remove any non-letters.
+ */
+static char *
+codeword_simplify_text (const char *s0)
+{
+ char *s1 = utf8_to_latin1 ((s0 ? s0 : ""), True);
+ int L = strlen(s1);
+ char *s2 = (char *) malloc (L + 10);
+ char *s3 = s2;
+ int i;
+ for (i = 0; i < L; i++)
+ {
+ char c = s1[i];
+ if (c >= 'a' && c <= 'z')
+ c -= 'a'-'A';
+ if (c >= 'A' && c <= 'Z')
+ *s3++ = c;
+ }
+ *s3 = 0;
+ if (! *s2)
+ strcpy (s2, "CODEWORD");
+ return s2;
+}
+
+
+static void
+make_codeword_path (ModeInfo *mi)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+ int letters = strlen (dc->codeword_text);
+
+ GLfloat rtick = dc->codeword_spread;
+ GLfloat iradius = rtick * dc->codeword_cap_size;
+
+ int dial = 0;
+ int letter;
+ GLfloat last_r = 0;
+
+ GLfloat inner_circum = M_PI * 2 * (iradius + rtick * 2);
+ GLfloat outer_circum = M_PI * 2 * (iradius + rtick * (letters + 1));
+ GLfloat facet_length = inner_circum / (26 * dc->codeword_facets);
+ int outer_facets = ceil (outer_circum / facet_length);
+
+ int *histo = (int *) calloc (letters * 26, sizeof(*histo));
+ XYZ *points = (XYZ *) calloc (letters * outer_facets, sizeof (*points));
+ int npoints = 0;
+
+ for (letter = -1; letter < letters; letter++)
+ {
+ if (letter == -1) /* Inner starting point */
+ {
+ points[npoints].x = iradius;
+ points[npoints].y = 0;
+ last_r = iradius;
+ npoints++;
+ }
+ else /* Add arc for this letter */
+ {
+ int direction = (letter & 1 ? -1 : 1);
+ int v = (dc->codeword_text[letter] - 'A' + 1);
+ int dial1 = dial + v * direction;
+
+ GLfloat th;
+ GLfloat th0 = M_PI * 2 / 26 * dial;
+ GLfloat th1 = M_PI * 2 / 26 * dial1;
+ GLfloat r = iradius + rtick * (letter + 2);
+ GLfloat circum = M_PI * 2 * r;
+ GLfloat arc_length = circum * v / 26;
+ int arc_facets = ceil (fabs (arc_length / facet_length));
+ GLfloat facet_th = (th1 - th0) / arc_facets;
+
+ if (arc_facets > outer_facets) abort();
+
+ /* Let's put some intermediate facets on the crossbars too,
+ so that the animation doesn't speed up on those. */
+ {
+ GLfloat rr;
+ for (rr = last_r + facet_length;
+ rr <= r - facet_length;
+ rr += facet_length)
+ {
+ points[npoints].x = rr * cos (th0);
+ points[npoints].y = rr * sin (th0);
+ npoints++;
+ }
+ last_r = r;
+ }
+
+
+ for (th = th0;
+ (th0 < th1
+ ? th <= th1 + facet_th
+ : th >= th1 + facet_th);
+ th += facet_th)
+ {
+ GLfloat th2 = th;
+ if (th0 < th1 && th > th1)
+ th2 = th1;
+ if (th0 > th1 && th < th1)
+ th2 = th1;
+ points[npoints].x = r * cos (th2);
+ points[npoints].y = r * sin (th2);
+
+ /* Ugh, add point only if it differs from prev.
+ Not sure how this happens. */
+ if (npoints == 0 ||
+ points[npoints-1].x != points[npoints].x ||
+ points[npoints-1].y != points[npoints].y)
+ npoints++;
+ }
+
+ /* Mark up the histo array to find the outer border. */
+ {
+ int i;
+ for (i = dial;
+ (direction > 0
+ ? i <= dial1
+ : i >= dial1);
+ i += direction)
+ {
+ int x = (i + 26) % 26;
+ int y;
+ for (y = 0; y <= letter; y++)
+ histo[y * 26 + x]++;
+ }
+ }
+
+ dc->codeword_text_points[letter] = npoints;
+
+ dial = dial1;
+ }
+ }
+
+ if (npoints >= letters * outer_facets) abort();
+
+# if 0
+ { /* Print histo */
+ int x, y;
+ for (y = 0; y < letters; y++)
+ {
+ fprintf (stderr, "%2d: ", y);
+ for (x = 0; x < 26; x++)
+ fprintf (stderr, "%x", histo[y * 26 + x]);
+ fprintf (stderr, "\n");
+ }
+ fprintf (stderr, "\n");
+ }
+# endif
+
+
+ /* Find a gap in the outer edge, to draw guide dots. */
+ {
+ int x, y;
+ int last_row = letters;
+ int start_dial = -1, end_dial = -1;
+
+ for (y = letters-1; y >= 0; y--)
+ {
+ for (x = 0; x < 26; x++)
+ {
+ if (histo[y * 26 + x] == 0)
+ {
+ if (last_row != y)
+ start_dial = end_dial = -1;
+ last_row = y;
+ if (start_dial == -1)
+ start_dial = x;
+ end_dial = x;
+ }
+ }
+ }
+
+ if (last_row < letters-1 && start_dial >= 0)
+ {
+ GLfloat r = iradius + rtick * (last_row + 2);
+ int i;
+
+ dc->codeword_nguides = 0;
+ dc->codeword_guides = (XYZ *)
+ calloc (end_dial - start_dial + 1, sizeof (*dc->codeword_guides));
+ for (i = start_dial; i <= end_dial; i++)
+ {
+ GLfloat th = i * M_PI * 2 / 26;
+ GLfloat x = r * cos (th);
+ GLfloat y = r * sin (th);
+ dc->codeword_guides[dc->codeword_nguides].x = x;
+ dc->codeword_guides[dc->codeword_nguides].y = y;
+ dc->codeword_nguides++;
+ }
+ }
+ free (histo);
+ histo = 0;
+ }
+
+ dc->codeword_path_npoints = npoints;
+ dc->codeword_path = points;
+}
+
+
+static int
+draw_codeword_cap (ModeInfo *mi)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+
+ int segments = dc->codeword_disc_facets;
+ GLfloat size = dc->codeword_spread * dc->codeword_cap_size;
+ GLfloat width = dc->codeword_line_width / 2;
+ GLfloat thick = dc->codeword_thickness / 2;
+ GLfloat r1 = size + width/2;
+ GLfloat r2 = size - width/2;
+ GLfloat facet, th, z;
+
+ if (wire) segments = 12;
+ facet = M_PI * 2 / segments;
+
+ glPushMatrix();
+
+ /* Top and bottom */
+
+ for (z = -thick; z <= thick; z += thick*2)
+ {
+ glNormal3f (0, 0, (z < 0 ? -1 : 1));
+ glFrontFace (z < 0 ? GL_CCW : GL_CW);
+
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (th = 0; th <= M_PI*2; th += facet)
+ {
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+ glVertex3f (r1 * x, r1 * y, z);
+ glVertex3f (r2 * x, r2 * y, z);
+ }
+ glEnd();
+
+ if (wire)
+ {
+ glBegin (GL_LINE_LOOP);
+ for (th = 0; th <= M_PI*2; th += facet)
+ {
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+ glVertex3f (r1 * x, r1 * y, z);
+ }
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (th = 0; th <= M_PI*2; th += facet)
+ {
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+ glVertex3f (r2 * x, r2 * y, z);
+ }
+ glEnd();
+ }
+ }
+
+ /* Inside and outside */
+
+ for (z = -1; z <= 1; z += 2)
+ {
+ glFrontFace (z < 0 ? GL_CCW : GL_CW);
+
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (th = 0; th <= M_PI*2; th += facet)
+ {
+ GLfloat th1 = th + facet;
+ GLfloat x0 = cos (th);
+ GLfloat y0 = sin (th);
+ GLfloat x1 = cos (th1);
+ GLfloat y1 = sin (th1);
+ GLfloat r = z < 0 ? r1 : r2;
+
+ if (z < 0)
+ do_normal (r * x0, r * y0, thick,
+ r * x0, r * y0, -thick,
+ r * x1, r * y1, -thick);
+ else
+ do_normal (r * x1, r * y1, thick,
+ r * x1, r * y1, -thick,
+ r * x0, r * y0, -thick);
+
+ glVertex3f (r * x0, r * y0, thick);
+ glVertex3f (r * x0, r * y0, -thick);
+ }
+ glEnd();
+ }
+
+ glPopMatrix();
+
+ return polys;
+}
+
+
+static int
+draw_codeword_guides (ModeInfo *mi, GLfloat anim_ratio)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+
+ int segments = dc->codeword_disc_facets;
+ GLfloat s = dc->codeword_line_width / 2;
+ GLfloat each = 1.0 / dc->codeword_nguides;
+ int i;
+
+ if (wire) segments = 6;
+
+ for (i = 0; i < dc->codeword_nguides; i++)
+ {
+ GLfloat ratio;
+ if (anim_ratio < i*each) ratio = 0;
+ else if (anim_ratio >= (i+1)*each) ratio = 1;
+ else ratio = (anim_ratio - i*each) / each;
+
+ if (ratio <= 0) continue;
+ if (ratio == 0) ratio = 0.001;
+
+ glPushMatrix();
+ glTranslatef (dc->codeword_guides[i].x,
+ dc->codeword_guides[i].y,
+ dc->codeword_guides[i].z);
+
+ glScalef (ratio, ratio, ratio);
+
+ /* If the line width and thickness are pretty close to each other,
+ use spheres. Otherwise use tubes.
+ */
+ if (dc->codeword_thickness < dc->codeword_line_width * 1.3 &&
+ dc->codeword_thickness > dc->codeword_line_width / 1.3)
+ {
+ glScalef (s, s, s);
+ glFrontFace (GL_CCW);
+ polys += unit_sphere (segments, segments, wire);
+ }
+ else
+ {
+ polys += tube (0, 0, -dc->codeword_thickness / 2,
+ 0, 0, dc->codeword_thickness / 2,
+ s, 0, segments, True, True, wire);
+ }
+
+ glPopMatrix();
+ }
+
+ return polys;
+}
+
+
+/* Compute the characters at which the cursor is currently pointing,
+ and render it on the logo.
+ */
+static void
+codeword_text_output (ModeInfo *mi, GLfloat anim_ratio)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+ int i;
+ int L = strlen (dc->codeword_text);
+ int point = dc->codeword_path_npoints * anim_ratio;
+ Bool hit = False;
+
+ if (dc->anim_state == CODEWORD_BLANK)
+ point = 0;
+
+ for (i = 0; i < L; i++)
+ {
+ if (point >= dc->codeword_text_points[i])
+ dc->codeword_text_out[i] = dc->codeword_text[i];
+ else if (hit)
+ dc->codeword_text_out[i] = 0;
+ else
+ {
+ int steps = dc->codeword_text[i] - 'A' + 1;
+ int last = (i > 0 ? dc->codeword_text_points[i-1] : 0);
+ double ratio = ((point - last) /
+ (double) (dc->codeword_text_points[i] - last));
+ char chr = 'A' + (ratio * steps);
+ if (ratio < 0.1) chr = 0;
+ dc->codeword_text_out[i] = chr;
+ hit = True;
+ }
+ }
+ dc->codeword_text_out[i] = 0;
+
+ if (*dc->codeword_text_out &&
+ !strcmp (dc->codeword_text, "CODEWORD"))
+ {
+ int i;
+ int L2 = strlen (dc->codeword_text_out);
+ GLfloat ss = 0.01;
+ int ascent, descent;
+
+ glPushMatrix();
+ glColor4fv (dc->codeword_color);
+ glRotatef (90, 0, 1, 0);
+ glRotatef (-90, 0, 0, 1);
+
+ for (i = 0; i < L2; i++)
+ {
+ XCharStruct e;
+ char buf[2];
+ glPushMatrix();
+ glRotatef ((i + 0.5) * 360 / 26.0, 0, 0, 1);
+
+# if 0
+ {
+ GLfloat th;
+ glDisable(GL_LIGHTING);
+ glBegin(GL_LINES);
+ glVertex3f(0,0,0);
+ glVertex3f(0,-4,0);
+ glEnd();
+ glBegin(GL_LINE_STRIP);
+ for (th = M_PI * 1.45; th < M_PI * 1.55; th += 0.1)
+ {
+ GLfloat r = 3.85;
+ glVertex3f (r * cos(th), r * sin(th), 0);
+ }
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+ }
+# endif
+
+ glTranslatef (0, -dc->codeword_spread * (L - 1), 0);
+ glScalef (ss, ss, ss);
+ buf[0] = dc->codeword_text_out[i] + ('a' - 'A');
+ buf[1] = 0;
+ texture_string_metrics (dc->font, buf, &e, &ascent, &descent);
+
+# ifdef HAVE_MOBILE
+ /* #### Magic magic magic WTF... */
+ glScalef (0.5, 0.5, 0.5);
+# endif
+
+ glTranslatef (-e.width * 1.0,
+ -(ascent + descent + e.descent * 2.4), /* #### WTF */
+ 0);
+
+ glScalef (2, 2, 2);
+
+# if 0
+ glDisable(GL_LIGHTING);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(0, 0, 0);
+ glVertex3f(e.width, 0, 0);
+ glVertex3f(e.width, e.ascent + e.descent, 0);
+ glVertex3f(0, e.ascent + e.descent, 0);
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+# endif
+
+ glDisable(GL_CULL_FACE); /* tell texfont.c to draw both sides */
+ print_texture_string (dc->font, buf);
+ glEnable(GL_CULL_FACE);
+
+ glPopMatrix();
+ }
+ glPopMatrix();
+ }
+}
+
+
+/* Convert the precomputed path to a thick line of polygons.
+ We could actually precompute all of these polygons too,
+ but it's fast enough.
+ */
+static int
+draw_codeword_path (ModeInfo *mi)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+
+ GLfloat anim_ratio = (dc->anim_state == CODEWORD_IN ? dc->anim_ratio :
+ dc->anim_state == CODEWORD_OUT ? 1 - dc->anim_ratio :
+ dc->anim_state == CODEWORD_BLANK ? 0 :
+ 1);
+ int last_anim_point = 0;
+
+ GLfloat width = dc->codeword_line_width / 2;
+ GLfloat thick = dc->codeword_thickness / 2;
+ int i, k;
+ GLfloat j;
+
+ int quad_size = (dc->codeword_path_npoints + 1) * 2;
+ XYZ *quads = (XYZ *) calloc (quad_size, sizeof(*quads));
+ XYZ *norms = (XYZ *) calloc (quad_size, sizeof(*norms));
+ int nquads = 0;
+
+ for (i = 0; i < dc->codeword_path_npoints; i++)
+ {
+ XYZ p1 = dc->codeword_path[i];
+ XYZ p2 = (i < dc->codeword_path_npoints-1
+ ? dc->codeword_path[i+1]
+ : dc->codeword_path[i-1]);
+ XYZ p1a, p1b;
+
+ XYZ n; /* normal of the first line segment */
+ n.x = -(p2.y - p1.y);
+ n.y = (p2.x - p1.x);
+ n.z = 0;
+ normalize (&n);
+
+ if (i == 0)
+ {
+ p1a.x = p1.x - width / 2 * n.x;
+ p1a.y = p1.y - width / 2 * n.y;
+ p1a.z = 0;
+
+ p1b.x = p1.x + width / 2 * n.x;
+ p1b.y = p1.y + width / 2 * n.y;
+ p1b.z = 0;
+ }
+ else if (i == dc->codeword_path_npoints - 1)
+ {
+ p1b.x = p1.x - width / 2 * n.x;
+ p1b.y = p1.y - width / 2 * n.y;
+ p1b.z = 0;
+
+ p1a.x = p1.x + width / 2 * n.x;
+ p1a.y = p1.y + width / 2 * n.y;
+ p1a.z = 0;
+ }
+ else
+ {
+ XYZ p0 = dc->codeword_path[i-1];
+
+ XYZ t, t0, t1; /* tangent of corner between two line segments */
+ XYZ m; /* miter line: normal of tangent */
+ GLfloat d; /* length of miter */
+
+ t0.x = p2.x - p1.x;
+ t0.y = p2.y - p1.y;
+ t0.z = p2.z - p1.z;
+ normalize (&t0);
+
+ t1.x = p1.x - p0.x;
+ t1.y = p1.y - p0.y;
+ t1.z = p1.z - p0.z;
+ normalize (&t1);
+
+ t.x = t0.x + t1.x;
+ t.y = t0.y + t1.y;
+ t.z = t0.z + t1.z;
+ normalize (&t);
+
+ m.x = -t.y;
+ m.y = t.x;
+ m.z = 0;
+
+ /* find length of miter by projecting it on one of the normals */
+ d = width / 2 / dot (m, n);
+
+ p1a.x = p1.x - d * m.x;
+ p1a.y = p1.y - d * m.y;
+ p1a.z = 0;
+
+ p1b.x = p1.x + d * m.x;
+ p1b.y = p1.y + d * m.y;
+ p1b.z = 0;
+ }
+
+ quads[nquads++] = p1a;
+ quads[nquads++] = p1b;
+
+ if (nquads >= quad_size) abort();
+
+ if (i / (double) dc->codeword_path_npoints > anim_ratio)
+ break;
+
+ last_anim_point = i;
+ }
+
+
+ /* Compute normals for each point along the interior edge */
+ for (k = 0; k <= 1; k++)
+ {
+ for (i = k; i < nquads-2; i += 2)
+ {
+ XYZ p1a = quads[i];
+ XYZ p2a = quads[i+2];
+ XYZ p1b = p1a;
+ XYZ p2b = p2a;
+ p1a.z = thick; /* a: top */
+ p1b.z = -thick; /* b: bottom */
+ p2a.z = thick;
+ p2b.z = -thick;
+
+ norms[i] = (k == 0
+ ? calc_normal (p1a, p1b, p2b)
+ : calc_normal (p2a, p2b, p1a));
+ }
+ }
+
+ glPushMatrix();
+ glColor4fv (dc->codeword_color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, dc->codeword_color);
+
+# ifdef HAVE_MOBILE /* Make the whole thing fit on the phone screen */
+ {
+ GLfloat size = MI_WIDTH(mi) < MI_HEIGHT(mi) ? MI_WIDTH(mi) : MI_HEIGHT(mi);
+ glScalef (0.9, 0.9, 0.9);
+ if (size <= 768) /* iPad retina / iPhone 6 */
+ glScalef (0.7, 0.7, 0.7);
+ }
+# endif
+
+ codeword_text_output (mi, anim_ratio);
+
+ glRotatef (90, 1, 0, 0);
+ glRotatef (90, 0, 1, 0);
+ glRotatef (-90, 0, 0, 1);
+ glScalef (0.8, 0.8, 0.8);
+
+ glNormal3f (0, 0, -1);
+
+ if (anim_ratio <= 0)
+ {
+ polys += draw_codeword_cap (mi);
+ goto DONE;
+ }
+
+# if 0
+ glColor3f (1, 0, 0);
+ glBegin(GL_LINE_STRIP);
+ for (i = 0; i < dc->codeword_path_npoints; i++)
+ {
+ glVertex3f (dc->codeword_path[i].x,
+ dc->codeword_path[i].y,
+ dc->codeword_path[i].z);
+ polys++;
+ }
+ glEnd();
+ glColor4fv (dc->codeword_color);
+# endif
+
+ if (wire)
+ {
+ int k;
+ GLfloat j;
+ for (i = 0; i <= 1; i++)
+ for (j = -thick; j <= thick; j += thick*2)
+ {
+ glBegin (GL_LINE_STRIP);
+ for (k = i; k < nquads; k += 2)
+ {
+ glVertex3f (quads[k].x, quads[k].y, j);
+ polys++;
+ }
+ glEnd();
+ }
+ }
+
+ /* Top and bottom */
+
+ for (j = -thick; j <= thick; j += thick*2)
+ {
+ if (j < 0)
+ {
+ glNormal3f (0, 0, -1);
+ glFrontFace (GL_CW);
+ }
+ else
+ {
+ glNormal3f (0, 0, 1);
+ glFrontFace (GL_CCW);
+ }
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < nquads; i += 2)
+ {
+ glVertex3f (quads[i+1].x, quads[i+1].y, j);
+ glVertex3f (quads[i].x, quads[i].y, j);
+ polys++;
+ }
+ glEnd();
+ }
+
+ /* Edges */
+
+ for (k = 0; k <= 1; k++)
+ {
+ if (k > 0)
+ {
+ glNormal3f (0, 0, -1);
+ glFrontFace (GL_CW);
+ }
+ else
+ {
+ glNormal3f (0, 0, 1);
+ glFrontFace (GL_CCW);
+ }
+
+ glBegin (wire ? GL_LINES : GL_QUADS);
+ for (i = k; i < nquads; i += 2)
+ {
+ XYZ p1a = quads[i];
+ XYZ p2a = (i < nquads-2) ? quads[i+2] : p1a;
+ XYZ p1b = p1a;
+ XYZ p2b = p2a;
+
+ XYZ n1 = norms[i];
+ XYZ n2 = (i < nquads-2) ? norms[i+2] : n1;
+
+ /* If the two normals are very similar, smooth the face.
+ If they are different, it's a sharp turn, and use the
+ same normal for both edges (not quite right, but close).
+ */
+ GLfloat angle = vector_angle (n1.x, n1.y, n1.z,
+ n2.x, n2.y, n2.z);
+ GLfloat pointy = 0.8;
+
+ p1a.z = thick;
+ p1b.z = -thick;
+ p2a.z = thick;
+ p2b.z = -thick;
+
+ glNormal3f (n1.x, n1.y, n1.z);
+ glVertex3f (p1a.x, p1a.y, p1a.z);
+ glVertex3f (p1b.x, p1b.y, p1b.z);
+
+ if (angle < pointy)
+ glNormal3f (n2.x, n2.y, n2.z);
+ glVertex3f (p2b.x, p2b.y, p2b.z);
+ glVertex3f (p2a.x, p2a.y, p2a.z);
+ polys++;
+ }
+ glEnd();
+ }
+
+
+ /* Only draw the guides when the path is almost complete;
+ fade them in and out based on completeness. */
+ {
+ GLfloat size = 0.95;
+ GLfloat r = (anim_ratio > size
+ ? (anim_ratio - size) / (1 - size)
+ : 0);
+ polys += draw_codeword_guides (mi, r);
+ }
+
+
+ /* Draw the start and end caps */
+ {
+ int i;
+ GLfloat x, y, z, x2, y2, z2, X, Y, Z;
+ GLfloat r = dc->codeword_spread * dc->codeword_cap_size;
+
+ i = 0;
+ x = dc->codeword_path[i].x;
+ y = dc->codeword_path[i].y;
+ z = dc->codeword_path[i].z;
+
+ x -= r;
+
+ glPushMatrix();
+ glTranslatef (x, y, z);
+ polys += draw_codeword_cap (mi);
+ glPopMatrix();
+
+ /* end cap */
+
+ i = last_anim_point + 1;
+ if (i > dc->codeword_path_npoints - 1)
+ i = dc->codeword_path_npoints - 1;
+
+ x = dc->codeword_path[i].x;
+ y = dc->codeword_path[i].y;
+ z = dc->codeword_path[i].z;
+
+ i--;
+ x2 = dc->codeword_path[i].x;
+ y2 = dc->codeword_path[i].y;
+ z2 = dc->codeword_path[i].z;
+
+ X = (x2 - x);
+ Y = (y2 - y);
+ Z = (z2 - z);
+
+ glPushMatrix();
+ glTranslatef (x, y, z);
+ glRotatef (-atan2 (X, Y) * (180 / M_PI), 0, 0, 1);
+ glRotatef ( atan2 (Z, sqrt(X*X + Y*Y)) * (180 / M_PI), 1, 0, 0);
+ glTranslatef (0, -r, 0);
+ polys += draw_codeword_cap (mi);
+ glPopMatrix();
+ }
+
+ DONE:
+
+ glPopMatrix();
+
+ free (quads);
+ free (norms);
+
+ return polys;
+}
+
+#endif /* CW */
+
+
+ENTRYPOINT void
+reshape_logo (ModeInfo *mi, int width, int height)
+{
+# ifdef DEBUG
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+# endif
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ GLfloat persp = 64; /* 30 */
+ GLfloat pos = 13; /* 30 */
+
+# ifdef DEBUG
+ persp += dc->persp_off;
+ pos += dc->pos_off;
+# endif
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (persp, 1/h, 1, 100);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0, 0, pos,
+ 0, 0, 0,
+ 0, 1, 0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h); /* #### Why does this change the lighting? */
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+gl_init (ModeInfo *mi)
+{
+/* logo_configuration *dc = &dcs[MI_SCREEN(mi)]; */
+ int wire = MI_IS_WIREFRAME(mi);
+
+ GLfloat position[] = {0, 0, 0, 0};
+ GLfloat direction[] = {3, -1, -3};
+
+ position[0] = -direction[0];
+ position[1] = -direction[1];
+ position[2] = -direction[2];
+
+ if (!wire)
+ {
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+ glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction);
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ }
+}
+
+
+ENTRYPOINT void
+init_logo (ModeInfo *mi)
+{
+ logo_configuration *dc;
+ int do_gasket = get_boolean_resource(mi->dpy, "doGasket", "Boolean");
+ int do_helix = get_boolean_resource(mi->dpy, "doHelix", "Boolean");
+ int do_ladder = (do_helix &&
+ get_boolean_resource(mi->dpy, "doLadder", "Boolean"));
+ int do_frame = get_boolean_resource(mi->dpy, "doFrame", "Boolean");
+ GLfloat helix_rot = 147.0;
+
+ if (!do_gasket && !do_helix)
+ {
+ fprintf (stderr, "%s: no helix or gasket?\n", progname);
+ exit (1);
+ }
+
+ MI_INIT (mi, dcs);
+
+ dc = &dcs[MI_SCREEN(mi)];
+
+ if ((dc->glx_context = init_GL(mi)) != NULL) {
+ gl_init(mi);
+ reshape_logo (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ dc->wall_facets = get_integer_resource(mi->dpy, "wallFacets", "Integer");
+ dc->bar_facets = get_integer_resource(mi->dpy, "barFacets", "Integer");
+ dc->clockwise = get_boolean_resource(mi->dpy, "clockwise", "Boolean");
+ dc->turns = get_float_resource(mi->dpy, "turns", "Float");
+ dc->turn_spacing = get_float_resource(mi->dpy, "turnSpacing", "Float");
+ dc->bar_spacing = get_float_resource(mi->dpy, "barSpacing", "Float");
+ dc->wall_height = get_float_resource(mi->dpy, "wallHeight", "Float");
+ dc->wall_thickness = get_float_resource(mi->dpy, "wallThickness", "Float");
+ dc->bar_thickness = get_float_resource(mi->dpy, "barThickness", "Float");
+ dc->wall_taper = get_float_resource(mi->dpy, "wallTaper", "Float");
+
+ dc->gasket_size = get_float_resource(mi->dpy,"gasketSize", "Float");
+ dc->gasket_depth = get_float_resource(mi->dpy,"gasketDepth", "Float");
+ dc->gasket_thickness = get_float_resource(mi->dpy,"gasketThickness","Float");
+
+ dc->frame_size = get_float_resource(mi->dpy, "frameSize", "Float");
+ dc->frame_depth = get_float_resource(mi->dpy, "frameDepth", "Float");
+ dc->frame_thickness = get_float_resource(mi->dpy, "frameThickness", "Float");
+ dc->triangle_size = get_float_resource(mi->dpy, "triangleSize", "Float");
+
+ dc->speed = get_float_resource(mi->dpy, "speed", "Float");
+# ifdef CW
+ dc->codeword_text = get_string_resource(mi->dpy, "text", "String");
+ dc->codeword_text = codeword_simplify_text (dc->codeword_text);
+ dc->codeword_text_out =
+ calloc (strlen(dc->codeword_text) + 1, sizeof(*dc->codeword_text_out));
+ dc->codeword_text_points =
+ (int *) calloc (strlen(dc->codeword_text) + 1,
+ sizeof(*dc->codeword_text_points));
+
+ dc->codeword_facets = get_integer_resource(mi->dpy, "cwFacets", "Integer");
+ dc->codeword_disc_facets = get_integer_resource(mi->dpy,
+ "cwDiscFacets", "Integer");
+ dc->codeword_spread = get_float_resource(mi->dpy, "cwSpread", "Float");
+ dc->codeword_line_width = get_float_resource(mi->dpy, "cwLineWidth", "Float");
+ dc->codeword_thickness = get_float_resource(mi->dpy, "cwThickness", "Float");
+ dc->codeword_cap_size = get_float_resource(mi->dpy, "cwCapSize", "Float");
+# endif
+
+ {
+ char *s = get_string_resource (MI_DISPLAY (mi), "mode", "String");
+ if (!s || !*s || !strcasecmp (s, "helix"))
+ dc->mode = HELIX;
+ else if (!strcasecmp (s, "pizza"))
+ dc->mode = PIZZA;
+ else if (!strcasecmp (s, "both"))
+ dc->mode = HELIX_AND_PIZZA;
+# ifdef CW
+ else if (!strcasecmp (s, "codeword"))
+ dc->mode = CODEWORD_IN;
+# endif
+ else
+ {
+ fprintf (stderr,
+ "%s: mode must be helix, pizza or both, not \"%s\"\n",
+ progname, s);
+ exit (1);
+ }
+ if (s) free (s);
+
+ dc->anim_state = (dc->mode == HELIX_AND_PIZZA
+ ? ((random() & 1) ? HELIX : PIZZA)
+ : dc->mode);
+ dc->anim_ratio = 0;
+ }
+
+# ifdef CW
+ if (dc->mode == CODEWORD_IN)
+ dc->font = load_texture_font (MI_DISPLAY(mi), "cwFont");
+# endif
+
+# ifdef DEBUG
+ dc->label_font = load_texture_font (MI_DISPLAY(mi), "fpsFont");
+# endif
+
+ {
+ XColor xcolor;
+
+ char *color_name =
+ get_string_resource (mi->dpy, "foreground", "Foreground");
+ char *s2;
+ for (s2 = color_name + strlen(color_name) - 1; s2 > color_name; s2--)
+ if (*s2 == ' ' || *s2 == '\t')
+ *s2 = 0;
+ else
+ break;
+
+ if (! XParseColor (MI_DISPLAY(mi), mi->xgwa.colormap, color_name, &xcolor))
+ {
+ fprintf (stderr, "%s: can't parse color %s\n", progname, color_name);
+ exit (1);
+ }
+
+ dc->color[0] = xcolor.red / 65535.0;
+ dc->color[1] = xcolor.green / 65535.0;
+ dc->color[2] = xcolor.blue / 65535.0;
+ dc->color[3] = 1.0;
+
+ color_name = get_string_resource (mi->dpy, "cwForeground", "Foreground");
+ for (s2 = color_name + strlen(color_name) - 1; s2 > color_name; s2--)
+ if (*s2 == ' ' || *s2 == '\t')
+ *s2 = 0;
+ else
+ break;
+
+ if (! XParseColor (MI_DISPLAY(mi), mi->xgwa.colormap, color_name, &xcolor))
+ {
+ fprintf (stderr, "%s: can't parse color %s\n", progname, color_name);
+ exit (1);
+ }
+
+# ifdef CW
+ dc->codeword_color[0] = xcolor.red / 65535.0;
+ dc->codeword_color[1] = xcolor.green / 65535.0;
+ dc->codeword_color[2] = xcolor.blue / 65535.0;
+ dc->codeword_color[3] = 1.0;
+
+ color_name = get_string_resource (mi->dpy, "cwBackground", "Background");
+ for (s2 = color_name + strlen(color_name) - 1; s2 > color_name; s2--)
+ if (*s2 == ' ' || *s2 == '\t')
+ *s2 = 0;
+ else
+ break;
+
+ if (! XParseColor (MI_DISPLAY(mi), mi->xgwa.colormap, color_name, &xcolor))
+ {
+ fprintf (stderr, "%s: can't parse color %s\n", progname, color_name);
+ exit (1);
+ }
+
+ dc->codeword_bg[0] = xcolor.red / 65535.0;
+ dc->codeword_bg[1] = xcolor.green / 65535.0;
+ dc->codeword_bg[2] = xcolor.blue / 65535.0;
+ dc->codeword_bg[3] = 1.0;
+# endif /* CW */
+ }
+
+ dc->trackball = gltrackball_init (False);
+
+ dc->gasket_spinnerx.probability = 0.1;
+ dc->gasket_spinnery.probability = 0.1;
+ dc->gasket_spinnerz.probability = 1.0;
+ dc->gasket_spinnerx.easement = 0.08;
+ dc->gasket_spinnery.easement = 0.08;
+ dc->gasket_spinnerz.easement = 0.08;
+
+ dc->helix_spinnerz.probability = 0.6;
+ dc->helix_spinnerz.easement = 0.2;
+
+ dc->pizza_spinnerz.probability = 0.6;
+ dc->pizza_spinnery.probability = 0.6;
+ dc->pizza_spinnerz.easement = 0.2;
+ dc->pizza_spinnery.easement = 0.2;
+
+ dc->frame_spinner.probability = 5.0;
+ dc->frame_spinner.easement = 0.2;
+
+ dc->scene_spinnerx.probability = 0.1;
+ dc->scene_spinnery.probability = 0.0;
+ dc->scene_spinnerx.easement = 0.1;
+ dc->scene_spinnery.easement = 0.1;
+
+# ifdef CW
+ if (dc->mode == CODEWORD_IN)
+ {
+ double tilt_speed = 0.003;
+ dc->scene_rot = make_rotator (0, 0, 0, 0, tilt_speed, True);
+ }
+# endif
+
+ /* start the frame off-screen */
+ dc->frame_spinner.spinning_p = True;
+ dc->frame_spinner.position = 0.3;
+ dc->frame_spinner.speed = 0.001;
+
+ if (dc->speed > 0) /* start off with the gasket in motion */
+ {
+ dc->gasket_spinnerz.spinning_p = True;
+ dc->gasket_spinnerz.speed = (0.002
+ * ((random() & 1) ? 1 : -1)
+ * dc->speed);
+ }
+
+# ifdef DXF_OUTPUT_HACK
+ {
+# if 0
+ dc->frame_depth = dc->gasket_depth;
+ dxf_layer = 1;
+ dxf_color = 3;
+ dxf_start();
+ glPushMatrix();
+ glRotatef(90, 1, 0, 0);
+ glRotatef(90, 0, 0, 1);
+ make_pizza (dc, 0, 0);
+
+ glPushMatrix();
+ glRotatef(helix_rot, 0, 0, 1);
+ make_ladder (dc, 0, 0);
+ make_helix (dc, 0, 0);
+ glRotatef (180, 0, 0, 1);
+ make_helix (dc, 0, 0);
+ glPopMatrix();
+
+ dxf_layer++;
+ make_gasket (dc, 0);
+ dxf_layer++;
+ make_frame (dc, 0);
+ glPopMatrix();
+ dxf_end();
+# else
+ dxf_start();
+ glPushMatrix();
+ glRotatef(90, 1, 0, 0);
+ glRotatef(90, 0, 0, 1);
+ dc->anim_state = CODEWORD;
+ make_codeword_path (mi);
+ draw_codeword_path (mi);
+ glPopMatrix();
+ dxf_end();
+# endif
+ }
+# endif
+
+ glPushMatrix();
+ dc->helix_list = glGenLists (1);
+ glNewList (dc->helix_list, GL_COMPILE);
+ glRotatef(helix_rot, 0, 0, 1);
+ if (do_ladder) dc->polys[0] += make_ladder (dc, 0, 0);
+ if (do_helix) dc->polys[0] += make_helix (dc, 0, 0);
+ glRotatef(180, 0, 0, 1);
+ if (do_helix) dc->polys[0] += make_helix (dc, 0, 0);
+ glEndList ();
+ glPopMatrix();
+
+ glPushMatrix();
+ dc->helix_list_wire = glGenLists (1);
+ glNewList (dc->helix_list_wire, GL_COMPILE);
+/* glRotatef(helix_rot, 0, 0, 1); wtf? */
+ if (do_ladder) dc->polys[1] += make_ladder (dc, 1, 1);
+ if (do_helix) dc->polys[1] += make_helix (dc, 1, 1);
+ glRotatef(180, 0, 0, 1);
+ if (do_helix) dc->polys[1] += make_helix (dc, 1, 1);
+ glEndList ();
+ glPopMatrix();
+
+ glPushMatrix();
+ dc->helix_list_facetted = glGenLists (1);
+ glNewList (dc->helix_list_facetted, GL_COMPILE);
+ glRotatef(helix_rot, 0, 0, 1);
+ if (do_ladder) dc->polys[2] += make_ladder (dc, 1, 0);
+ if (do_helix) dc->polys[2] += make_helix (dc, 1, 0);
+ glRotatef(180, 0, 0, 1);
+ if (do_helix) dc->polys[2] += make_helix (dc, 1, 0);
+ glEndList ();
+ glPopMatrix();
+
+ dc->pizza_list = glGenLists (1);
+ glNewList (dc->pizza_list, GL_COMPILE);
+ if (do_frame) dc->polys[5] += make_pizza (dc, 0, 0);
+ glEndList ();
+
+ dc->pizza_list_wire = glGenLists (1);
+ glNewList (dc->pizza_list_wire, GL_COMPILE);
+ if (do_frame) dc->polys[6] += make_pizza (dc, 1, 1);
+ glEndList ();
+
+ dc->pizza_list_facetted = glGenLists (1);
+ glNewList (dc->pizza_list_facetted, GL_COMPILE);
+ if (do_frame) dc->polys[6] += make_pizza (dc, 1, 0);
+ glEndList ();
+
+ dc->gasket_list = glGenLists (1);
+ glNewList (dc->gasket_list, GL_COMPILE);
+ if (do_gasket) dc->polys[3] += make_gasket (dc, 0);
+ glEndList ();
+
+ dc->gasket_list_wire = glGenLists (1);
+ glNewList (dc->gasket_list_wire, GL_COMPILE);
+ if (do_gasket) dc->polys[4] += make_gasket (dc, 1);
+ glEndList ();
+
+ dc->frame_list = glGenLists (1);
+ glNewList (dc->frame_list, GL_COMPILE);
+ if (do_frame) dc->polys[5] += make_frame (dc, 0);
+ glEndList ();
+
+ dc->frame_list_wire = glGenLists (1);
+ glNewList (dc->frame_list_wire, GL_COMPILE);
+ if (do_frame) dc->polys[6] += make_frame (dc, 1);
+ glEndList ();
+
+# ifdef CW
+ make_codeword_path (mi);
+# endif
+
+ /* When drawing both solid and wireframe objects,
+ make sure the wireframe actually shows up! */
+ glEnable (GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset (1.0, 1.0);
+}
+
+
+ENTRYPOINT Bool
+logo_handle_event (ModeInfo *mi, XEvent *event)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, dc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &dc->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+
+# ifdef DEBUG
+ {
+ GLfloat step = 0.1;
+ if (c == 'a') dc->persp_off += step;
+ else if (c == 'z') dc->persp_off -= step;
+ else if (c == 's') dc->pos_off += step;
+ else if (c == 'x') dc->pos_off -= step;
+ else return False;
+
+ /* dc->pos_off = -dc->persp_off; */
+ reshape_logo (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+# endif
+
+ if (c == ' ' || c == '\t')
+ {
+ switch (dc->anim_state) {
+ case HELIX:
+ dc->anim_state = HELIX_OUT;
+ dc->anim_ratio = 0.0;
+ return True;
+ case PIZZA:
+ dc->anim_state = PIZZA_OUT;
+ dc->anim_ratio = 0.0;
+ return True;
+# ifdef CW
+ case CODEWORD:
+ dc->anim_state = CODEWORD_OUT;
+ dc->anim_ratio = 0.0;
+ return True;
+# endif
+ default:
+ break;
+ }
+ }
+ }
+
+ return False;
+}
+
+
+static GLfloat
+spinner_ease (GLfloat x)
+{
+ /* Smooth curve up, ending at slope = 1. */
+ return cos ((x/2 + 1) * M_PI) + 1;
+}
+
+
+static void
+tick_spinner (ModeInfo *mi, spinner *s)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+
+ if (dc->speed == 0) return;
+ if (dc->button_down_p) return;
+
+ if (s->spinning_p)
+ {
+ s->position += s->speed;
+ if (s->position >= 1.0 || s->position <= 0.0)
+ {
+ s->position = 0;
+ s->position_eased = 0;
+ s->spinning_p = False;
+ }
+ else if (s->easement > 0 && s->position <= s->easement)
+ s->position_eased = (s->easement *
+ spinner_ease (s->position / s->easement));
+ else if (s->easement > 0 && s->position >= 1-s->easement)
+ s->position_eased = (1 - s->easement *
+ spinner_ease ((1 - s->position) / s->easement));
+ else
+ s->position_eased = s->position;
+ }
+ else if (s->probability &&
+ (random() % (int) (PROBABILITY_SCALE / s->probability)) == 0)
+ {
+ GLfloat ss = 0.004;
+ s->spinning_p = True;
+ s->position = 0;
+ do {
+ s->speed = dc->speed * (frand(ss/3) + frand(ss/3) + frand(ss/3));
+ } while (s->speed <= 0);
+ if (random() & 1)
+ {
+ s->speed = -s->speed;
+ s->position = 1.0;
+ }
+ }
+}
+
+
+static void
+link_spinners (ModeInfo *mi, spinner *s0, spinner *s1)
+{
+ if (s0->spinning_p && !s1->spinning_p)
+ {
+ GLfloat op = s1->probability;
+ s1->probability = PROBABILITY_SCALE;
+ tick_spinner (mi, s1);
+ s1->probability = op;
+ }
+}
+
+
+ENTRYPOINT void
+draw_logo (ModeInfo *mi)
+{
+ logo_configuration *dc = &dcs[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat gcolor[4];
+ GLfloat specular[] = {0.8, 0.8, 0.8, 1.0};
+ GLfloat shininess = 50.0;
+ Bool pizza_p;
+# ifdef CW
+ Bool codeword_p;
+# endif
+
+ if (!dc->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(dc->glx_context));
+
+ if (!wire &&
+ dc->wire_overlay == 0 &&
+ (random() % (int) (PROBABILITY_SCALE / 0.2)) == 0)
+ dc->wire_overlay = ((random() % 200) +
+ (random() % 200) +
+ (random() % 200));
+
+# ifndef DEBUG
+ tick_spinner (mi, &dc->gasket_spinnerx);
+ tick_spinner (mi, &dc->gasket_spinnery);
+ tick_spinner (mi, &dc->gasket_spinnerz);
+ tick_spinner (mi, &dc->helix_spinnerz);
+ tick_spinner (mi, &dc->pizza_spinnery);
+ tick_spinner (mi, &dc->pizza_spinnerz);
+ tick_spinner (mi, &dc->scene_spinnerx);
+ tick_spinner (mi, &dc->scene_spinnery);
+ tick_spinner (mi, &dc->frame_spinner);
+ link_spinners (mi, &dc->scene_spinnerx, &dc->scene_spinnery);
+# endif /* DEBUG */
+
+ switch (dc->anim_state)
+ {
+ case HELIX:
+ if (dc->mode == HELIX_AND_PIZZA &&
+ (random() % (int) (PROBABILITY_SCALE / 0.2)) == 0)
+ dc->anim_state = HELIX_OUT;
+ break;
+
+ case HELIX_OUT:
+ dc->anim_ratio += 0.1 * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_ratio = 0.0;
+ dc->anim_state = PIZZA_IN;
+ }
+ break;
+
+ case PIZZA_IN:
+ dc->anim_ratio += 0.1 * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_ratio = 0.0;
+ dc->anim_state = PIZZA;
+ }
+ break;
+
+ case PIZZA:
+ if (dc->mode == HELIX_AND_PIZZA &&
+ (random() % (int) (PROBABILITY_SCALE / 0.2)) == 0)
+ dc->anim_state = PIZZA_OUT;
+ break;
+
+ case PIZZA_OUT:
+ dc->anim_ratio += 0.1 * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_ratio = 0.0;
+ dc->anim_state = HELIX_IN;
+ }
+ break;
+
+ case HELIX_IN:
+ dc->anim_ratio += 0.1 * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_ratio = 0.0;
+ dc->anim_state = HELIX;
+ }
+ break;
+
+
+# ifdef CW
+ case CODEWORD_IN:
+ dc->scene_spinnerx.probability = 0.2;
+ dc->scene_spinnery.probability = 0.05;
+ if (! dc->button_down_p)
+ dc->anim_ratio += 0.004 * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_state = CODEWORD;
+ dc->anim_ratio = frand (0.5);
+ }
+ break;
+
+ case CODEWORD:
+ dc->scene_spinnerx.probability = 0.5;
+ dc->scene_spinnery.probability = 0.2;
+ if (! dc->button_down_p)
+ dc->anim_ratio += (0.0005 + frand(0.002)) * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_ratio = 0.0;
+ dc->anim_state = CODEWORD_OUT;
+ }
+ break;
+
+ case CODEWORD_OUT:
+ dc->scene_spinnerx.probability = 0;
+ dc->scene_spinnery.probability = 0;
+ if (! dc->button_down_p)
+ dc->anim_ratio += 0.02 * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_ratio = 0.0;
+ dc->anim_state = CODEWORD_BLANK;
+ }
+ break;
+
+ case CODEWORD_BLANK:
+ dc->scene_spinnerx.probability = 0;
+ dc->scene_spinnery.probability = 0;
+ if (! dc->button_down_p)
+ dc->anim_ratio += 0.01 * dc->speed;
+ if (dc->anim_ratio >= 1.0)
+ {
+ dc->anim_ratio = 0.0;
+ dc->anim_state = CODEWORD_IN;
+ }
+ break;
+# endif /* CW */
+
+ default:
+ abort();
+ break;
+ }
+
+# ifdef DEBUG
+ dc->anim_state = HELIX;
+ dc->wire_overlay = 0;
+# endif
+
+ pizza_p = (dc->anim_state == PIZZA ||
+ dc->anim_state == PIZZA_IN ||
+ dc->anim_state == PIZZA_OUT);
+
+# ifdef CW
+ codeword_p = (dc->anim_state == CODEWORD ||
+ dc->anim_state == CODEWORD_IN ||
+ dc->anim_state == CODEWORD_OUT ||
+ dc->anim_state == CODEWORD_BLANK);
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ {
+ GLfloat scale = 1.8;
+ glScalef(scale, scale, scale);
+
+ glColor3f(dc->color[0], dc->color[1], dc->color[2]);
+
+
+ /* Draw frame before trackball rotation */
+# ifdef CW
+ if (! codeword_p)
+# endif
+ {
+ GLfloat p = (dc->frame_spinner.position_eased >= 0
+ ? dc->frame_spinner.position_eased
+ : -dc->frame_spinner.position_eased);
+ GLfloat size = (p > 0.5 ? 1-p : p);
+ scale = 1 + (size * 10);
+ glPushMatrix();
+ /* gltrackball_rotate (dc->trackball); */
+ glRotatef(90, 1, 0, 0);
+ glRotatef(90, 0, 0, 1);
+
+ glScalef (1, scale, scale);
+ if (wire)
+ {
+ glDisable (GL_LIGHTING);
+ glCallList (dc->frame_list_wire);
+ mi->polygon_count += dc->polys[6];
+ }
+ else if (dc->wire_overlay != 0)
+ {
+ glCallList (dc->frame_list);
+ glDisable (GL_LIGHTING);
+ glColor3fv (dc->color);
+ glCallList (dc->frame_list_wire);
+ mi->polygon_count += dc->polys[6];
+ if (!wire) glEnable (GL_LIGHTING);
+ }
+ else
+ {
+ glCallList (dc->frame_list);
+ mi->polygon_count += dc->polys[5];
+ }
+ glPopMatrix();
+ }
+
+ gltrackball_rotate (dc->trackball);
+
+ glRotatef(90, 1, 0, 0);
+ glRotatef(90, 0, 0, 1);
+
+# ifdef CW
+ if (! codeword_p)
+# endif
+ {
+ glRotatef (360 * dc->scene_spinnerx.position_eased, 0, 1, 0);
+ glRotatef (360 * dc->scene_spinnery.position_eased, 0, 0, 1);
+
+ glPushMatrix();
+
+ glRotatef (360 * dc->gasket_spinnerx.position_eased, 0, 1, 0);
+ glRotatef (360 * dc->gasket_spinnery.position_eased, 0, 0, 1);
+ glRotatef (360 * dc->gasket_spinnerz.position_eased, 1, 0, 0);
+
+ memcpy (gcolor, dc->color, sizeof (dc->color));
+ if (dc->wire_overlay != 0)
+ {
+ gcolor[0] = gcolor[1] = gcolor[2] = 0;
+ specular[0] = specular[1] = specular[2] = 0;
+ shininess = 0;
+ }
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, gcolor);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, specular);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shininess);
+
+ if (wire)
+ {
+ glDisable (GL_LIGHTING);
+ glCallList (dc->gasket_list_wire);
+ mi->polygon_count += dc->polys[4];
+ }
+ else if (dc->wire_overlay != 0)
+ {
+ glCallList (dc->gasket_list);
+ glDisable (GL_LIGHTING);
+ glColor3fv (dc->color);
+ glCallList (dc->gasket_list_wire);
+ mi->polygon_count += dc->polys[4];
+ if (!wire) glEnable (GL_LIGHTING);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, gcolor);
+ }
+ else
+ {
+ glCallList (dc->gasket_list);
+ mi->polygon_count += dc->polys[3];
+ }
+ glPopMatrix();
+
+ if (pizza_p)
+ {
+ glRotatef (360 * dc->pizza_spinnery.position_eased, 1, 0, 0);
+ glRotatef (360 * dc->pizza_spinnerz.position_eased, 0, 0, 1);
+ }
+ else
+ {
+ glRotatef (360 * dc->helix_spinnerz.position_eased, 0, 0, 1);
+ }
+
+ scale = ((dc->anim_state == PIZZA_IN || dc->anim_state == HELIX_IN)
+ ? dc->anim_ratio
+ : ((dc->anim_state == PIZZA_OUT || dc->anim_state == HELIX_OUT)
+ ? 1.0 - dc->anim_ratio
+ : 1.0));
+ if (scale <= 0) scale = 0.001;
+ glScalef (scale, scale, scale);
+
+ if (wire)
+ {
+ glDisable (GL_LIGHTING);
+ if (pizza_p)
+ glCallList (dc->pizza_list_wire);
+ else
+ glCallList (dc->helix_list_wire);
+ mi->polygon_count += dc->polys[1];
+ }
+ else if (dc->wire_overlay != 0)
+ {
+ if (pizza_p)
+ glCallList (dc->pizza_list_facetted);
+ else
+ glCallList (dc->helix_list_facetted);
+
+ glDisable (GL_LIGHTING);
+ glColor3fv (dc->color);
+
+ if (pizza_p)
+ glCallList (dc->pizza_list_wire);
+ else
+ glCallList (dc->helix_list_wire);
+
+ mi->polygon_count += dc->polys[2];
+ if (!wire) glEnable (GL_LIGHTING);
+ }
+ else
+ {
+ if (pizza_p)
+ glCallList (dc->pizza_list);
+ else
+ glCallList (dc->helix_list);
+ mi->polygon_count += dc->polys[0];
+ }
+ }
+# ifdef CW
+ else /* codeword_p */
+ {
+# if 0
+ double max = 70; /* face front */
+ double x, y, z;
+ get_position (dc->scene_rot, &x, &y, &z, !dc->button_down_p);
+ glRotatef (max/2 - x*max, 0, 0, 1);
+ glRotatef (max/2 - y*max, 0, 1, 0);
+ /* glRotatef (max/2 - z*max, 1, 0, 0); */
+# else
+ glRotatef (360 * dc->scene_spinnerx.position_eased, 0, 1, 0);
+ glRotatef (360 * dc->scene_spinnery.position_eased, 0, 0, 1);
+# endif
+
+ glClearColor (dc->codeword_bg[0],
+ dc->codeword_bg[1],
+ dc->codeword_bg[2],
+ dc->codeword_bg[3]);
+ mi->polygon_count += draw_codeword_path (mi);
+ }
+# endif /* CW */
+ }
+ glPopMatrix();
+
+ if (dc->wire_overlay > 0)
+ dc->wire_overlay--;
+
+# ifdef DEBUG
+ {
+ char s[1024];
+ sprintf (s, "a/z, s/x; per = %0.2f pos = %0.2f",
+ dc->persp_off, dc->pos_off);
+ glColor3f (1,1,1);
+ print_texture_label (dpy, dc->label_font, MI_WIDTH(mi), MI_HEIGHT(mi),
+ 1, s);
+ }
+# endif
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("DNALogo", dnalogo, logo)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/dnapizza.h b/hacks/glx/dnapizza.h
new file mode 100644
index 0000000..6dd48b9
--- /dev/null
+++ b/hacks/glx/dnapizza.h
@@ -0,0 +1,122 @@
+/* DNA Pizza Logo, Copyright (c) 2011-2012 Jamie Zawinski <jwz@dnalounge.com>
+
+ Since GLUtesselator doesn't exist in the iOS build, the slice shape
+ of the DNA Pizza logo is hardcoded there, instead of being generated.
+ (These vertexes were generated by GLUtesselator and saved.)
+ */
+
+static const GLfloat dnapizza_triangles[]={
+ 0.315,0.213301,0, 0.296699,0.195,0, 0.309,0.455,0,
+ 0.296699,0.195,0, 0.29,0.17,0, 0.309,0.455,0,
+ 0.309,0.455,0, 0.29,0.17,0, 0.26,0.452,0,
+ 0.29,0.17,0, 0.23,0.042,0, 0.26,0.452,0,
+ 0.26,0.452,0, 0.23,0.042,0, 0.216,0.293,0,
+ 0.23,0.042,0, 0.21,0,0, 0.216,0.293,0,
+ 0.216,0.293,0, 0.21,0,0, 0.149,0.178,0,
+ 0.21,0,0, 0.102,0.178,0, 0.149,0.178,0,
+ 0.376,0.572,0, 0.353,0.613,0, 0.411,0.68402,0,
+ 0.376,0.572,0, 0.411,0.68402,0, 0.383301,0.195,0,
+ 0.376,0.572,0, 0.383301,0.195,0, 0.365,0.213301,0,
+ 0.376,0.572,0, 0.365,0.213301,0, 0.34,0.22,0,
+ 0.376,0.572,0, 0.34,0.22,0, 0.315,0.213301,0,
+ 0.376,0.572,0, 0.315,0.213301,0, 0.309,0.455,0,
+ 0.39,0.17,0, 0.383301,0.195,0, 0.411,0.68402,0,
+ 0.39,0.17,0, 0.411,0.68402,0, 0.48,0.17,0,
+ 0.39,0.17,0, 0.48,0.17,0, 0.488039,0.14,0,
+ 0.39,0.17,0, 0.488039,0.14,0, 0.51,0.118038,0,
+ 0.39,0.17,0, 0.51,0.118038,0, 0.616,0.042,0,
+ 0.39,0.17,0, 0.616,0.042,0, 0.383301,0.145,0,
+ 0.798,0,0, 0.641,0,0, 0.645595,0.469053,0,
+ 0.798,0,0, 0.645595,0.469053,0, 0.653683,0.457714,0,
+ 0.798,0,0, 0.653683,0.457714,0, 0.661572,0.446236,0,
+ 0.798,0,0, 0.661572,0.446236,0, 0.669259,0.434622,0,
+ 0.798,0,0, 0.669259,0.434622,0, 0.676742,0.422876,0,
+ 0.798,0,0, 0.676742,0.422876,0, 0.68402,0.411,0,
+ 0.798,0,0, 0.68402,0.411,0, 0.691088,0.399,0,
+ 0.798,0,0, 0.691088,0.399,0, 0.697947,0.386878,0,
+ 0.798,0,0, 0.697947,0.386878,0, 0.704592,0.374638,0,
+ 0.798,0,0, 0.704592,0.374638,0, 0.711023,0.362284,0,
+ 0.798,0,0, 0.711023,0.362284,0, 0.717238,0.34982,0,
+ 0.798,0,0, 0.717238,0.34982,0, 0.723234,0.337249,0,
+ 0.798,0,0, 0.723234,0.337249,0, 0.729009,0.324576,0,
+ 0.798,0,0, 0.729009,0.324576,0, 0.734563,0.311803,0,
+ 0.798,0,0, 0.734563,0.311803,0, 0.739893,0.298936,0,
+ 0.798,0,0, 0.739893,0.298936,0, 0.744997,0.285978,0,
+ 0.798,0,0, 0.744997,0.285978,0, 0.749875,0.272932,0,
+ 0.798,0,0, 0.749875,0.272932,0, 0.754524,0.259803,0,
+ 0.798,0,0, 0.754524,0.259803,0, 0.758943,0.246596,0,
+ 0.798,0,0, 0.758943,0.246596,0, 0.763131,0.233313,0,
+ 0.798,0,0, 0.763131,0.233313,0, 0.767087,0.219959,0,
+ 0.798,0,0, 0.767087,0.219959,0, 0.770809,0.206538,0,
+ 0.798,0,0, 0.770809,0.206538,0, 0.774296,0.193054,0,
+ 0.798,0,0, 0.774296,0.193054,0, 0.777547,0.179511,0,
+ 0.798,0,0, 0.777547,0.179511,0, 0.780562,0.165914,0,
+ 0.798,0,0, 0.780562,0.165914,0, 0.783338,0.152266,0,
+ 0.798,0,0, 0.783338,0.152266,0, 0.785877,0.138571,0,
+ 0.798,0,0, 0.785877,0.138571,0, 0.788175,0.124835,0,
+ 0.798,0,0, 0.788175,0.124835,0, 0.790234,0.11106,0,
+ 0.798,0,0, 0.790234,0.11106,0, 0.792052,0.097252,0,
+ 0.798,0,0, 0.792052,0.097252,0, 0.793628,0.083414,0,
+ 0.798,0,0, 0.793628,0.083414,0, 0.794963,0.06955,0,
+ 0.798,0,0, 0.794963,0.06955,0, 0.796056,0.055666,0,
+ 0.798,0,0, 0.796056,0.055666,0, 0.796906,0.041764,0,
+ 0.798,0,0, 0.796906,0.041764,0, 0.797514,0.02785,0,
+ 0.798,0,0, 0.797514,0.02785,0, 0.797878,0.013927,0,
+ 0.641,0,0, 0.616,0.042,0, 0.620162,0.502198,0,
+ 0.641,0,0, 0.620162,0.502198,0, 0.628833,0.491298,0,
+ 0.641,0,0, 0.628833,0.491298,0, 0.637311,0.480248,0,
+ 0.641,0,0, 0.637311,0.480248,0, 0.645595,0.469053,0,
+ 0.616,0.042,0, 0.51,0.118038,0, 0.54,0.11,0,
+ 0.616,0.042,0, 0.54,0.11,0, 0.57,0.118038,0,
+ 0.616,0.042,0, 0.57,0.118038,0, 0.591962,0.14,0,
+ 0.616,0.042,0, 0.591962,0.14,0, 0.6,0.17,0,
+ 0.616,0.042,0, 0.6,0.17,0, 0.601962,0.33,0,
+ 0.616,0.042,0, 0.601962,0.33,0, 0.61,0.36,0,
+ 0.616,0.042,0, 0.61,0.36,0, 0.611303,0.512945,0,
+ 0.616,0.042,0, 0.611303,0.512945,0, 0.620162,0.502198,0,
+ 0.48,0.17,0, 0.411,0.68402,0, 0.422875,0.676743,0,
+ 0.48,0.17,0, 0.422875,0.676743,0, 0.434622,0.669259,0,
+ 0.48,0.17,0, 0.434622,0.669259,0, 0.446236,0.661572,0,
+ 0.48,0.17,0, 0.446236,0.661572,0, 0.457714,0.653684,0,
+ 0.48,0.17,0, 0.457714,0.653684,0, 0.469052,0.645596,0,
+ 0.48,0.17,0, 0.469052,0.645596,0, 0.480248,0.637311,0,
+ 0.48,0.17,0, 0.480248,0.637311,0, 0.488038,0.2,0,
+ 0.616,0.042,0, 0.23,0.042,0, 0.315,0.126699,0,
+ 0.616,0.042,0, 0.315,0.126699,0, 0.34,0.12,0,
+ 0.616,0.042,0, 0.34,0.12,0, 0.365,0.126699,0,
+ 0.616,0.042,0, 0.365,0.126699,0, 0.383301,0.145,0,
+ 0.23,0.042,0, 0.29,0.17,0, 0.296699,0.145,0,
+ 0.23,0.042,0, 0.296699,0.145,0, 0.315,0.126699,0,
+ 0.58362,0.544235,0, 0.593029,0.533966,0, 0.601961,0.39,0,
+ 0.593029,0.533966,0, 0.602258,0.523535,0, 0.601961,0.39,0,
+ 0.601961,0.39,0, 0.602258,0.523535,0, 0.61,0.36,0,
+ 0.602258,0.523535,0, 0.611303,0.512945,0, 0.61,0.36,0,
+ 0.58,0.411962,0, 0.55,0.42,0, 0.554337,0.574033,0,
+ 0.58,0.411962,0, 0.554337,0.574033,0, 0.564271,0.564271,0,
+ 0.58,0.411962,0, 0.564271,0.564271,0, 0.574033,0.554338,0,
+ 0.58,0.411962,0, 0.574033,0.554338,0, 0.58362,0.544235,0,
+ 0.58,0.411962,0, 0.58362,0.544235,0, 0.601961,0.39,0,
+ 0.55,0.42,0, 0.52,0.411962,0, 0.523535,0.602258,0,
+ 0.55,0.42,0, 0.523535,0.602258,0, 0.533966,0.59303,0,
+ 0.55,0.42,0, 0.533966,0.59303,0, 0.544235,0.58362,0,
+ 0.55,0.42,0, 0.544235,0.58362,0, 0.554337,0.574033,0,
+ 0.51,0.221962,0, 0.488038,0.2,0, 0.49,0.36,0,
+ 0.488038,0.2,0, 0.491298,0.628833,0, 0.49,0.36,0,
+ 0.49,0.36,0, 0.491298,0.628833,0, 0.498038,0.39,0,
+ 0.491298,0.628833,0, 0.502197,0.620163,0, 0.498038,0.39,0,
+ 0.498038,0.39,0, 0.502197,0.620163,0, 0.52,0.411962,0,
+ 0.502197,0.620163,0, 0.512944,0.611304,0, 0.52,0.411962,0,
+ 0.52,0.411962,0, 0.512944,0.611304,0, 0.523535,0.602258,0,
+ 0.49,0.36,0, 0.498039,0.33,0, 0.51,0.221962,0,
+ 0.498039,0.33,0, 0.52,0.308039,0, 0.51,0.221962,0,
+ 0.51,0.221962,0, 0.52,0.308039,0, 0.54,0.23,0,
+ 0.52,0.308039,0, 0.55,0.3,0, 0.54,0.23,0,
+ 0.54,0.23,0, 0.55,0.3,0, 0.57,0.221962,0,
+ 0.55,0.3,0, 0.58,0.308039,0, 0.57,0.221962,0,
+ 0.57,0.221962,0, 0.58,0.308039,0, 0.591962,0.2,0,
+ 0.58,0.308039,0, 0.601962,0.33,0, 0.591962,0.2,0,
+ 0.591962,0.2,0, 0.601962,0.33,0, 0.6,0.17,0,
+ 0.488038,0.2,0, 0.480248,0.637311,0, 0.491298,0.628833,0,
+ 0.26,0.452,0, 0.216,0.293,0, 0.192,0.332,0,
+ 0.102,0.178,0, 0.21,0,0, 0,0,0,
+};
diff --git a/hacks/glx/dolphin.c b/hacks/glx/dolphin.c
new file mode 100644
index 0000000..2ef4e33
--- /dev/null
+++ b/hacks/glx/dolphin.c
@@ -0,0 +1,2061 @@
+/* atlantis --- Shows moving 3D sea animals */
+
+#if 0
+static const char sccsid[] = "@(#)dolphin.c 1.2 98/06/16 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 1998. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Mark J. Kilgard
+ * as a demo for openGL programming.
+ *
+ * Porting it to xlock was possible by comparing the original Mesa's morph3d
+ * demo with it's ported version to xlock, so thanks for Marcelo F. Vianna
+ * (look at morph3d.c) for his indirect help.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * My e-mail address is lassauge@sagem.fr
+ *
+ * Eric Lassauge (May-13-1998)
+ *
+ */
+
+/**
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+#ifdef USE_GL
+
+#include "atlantis.h"
+
+/* *INDENT-OFF* */
+static const float N001[3] = {-0.005937, -0.101998, -0.994767};
+static const float N002[3] = {0.93678, -0.200803, 0.286569};
+static const float N003[3] = {-0.233062, 0.972058, 0.028007};
+#if 0
+static const float N004[3] = {0, 1, 0};
+#endif
+static const float N005[3] = {0.898117, 0.360171, 0.252315};
+static const float N006[3] = {-0.915437, 0.348456, 0.201378};
+static const float N007[3] = {0.602263, -0.777527, 0.18092};
+static const float N008[3] = {-0.906912, -0.412015, 0.088061};
+#if 0
+static const float N009[3] = {-0.015623, 0.999878, 0};
+static const float N010[3] = {0, -0.992278, 0.124035};
+static const float N011[3] = {0, -0.936329, -0.351123};
+#endif
+static const float N012[3] = {0.884408, -0.429417, -0.182821};
+static const float N013[3] = {0.921121, 0.311084, -0.234016};
+static const float N014[3] = {0.382635, 0.877882, -0.287948};
+static const float N015[3] = {-0.380046, 0.888166, -0.258316};
+static const float N016[3] = {-0.891515, 0.392238, -0.226607};
+static const float N017[3] = {-0.901419, -0.382002, -0.203763};
+static const float N018[3] = {-0.367225, -0.911091, -0.187243};
+static const float N019[3] = {0.339539, -0.924846, -0.171388};
+static const float N020[3] = {0.914706, -0.378617, -0.14129};
+static const float N021[3] = {0.950662, 0.262713, -0.164994};
+static const float N022[3] = {0.546359, 0.80146, -0.243218};
+static const float N023[3] = {-0.315796, 0.917068, -0.243431};
+static const float N024[3] = {-0.825687, 0.532277, -0.186875};
+static const float N025[3] = {-0.974763, -0.155232, -0.160435};
+static const float N026[3] = {-0.560596, -0.816658, -0.137119};
+static const float N027[3] = {0.38021, -0.910817, -0.160786};
+static const float N028[3] = {0.923772, -0.358322, -0.135093};
+static const float N029[3] = {0.951202, 0.275053, -0.139859};
+static const float N030[3] = {0.686099, 0.702548, -0.188932};
+static const float N031[3] = {-0.521865, 0.826719, -0.21022};
+static const float N032[3] = {-0.92382, 0.346739, -0.162258};
+static const float N033[3] = {-0.902095, -0.409995, -0.134646};
+static const float N034[3] = {-0.509115, -0.848498, -0.144404};
+static const float N035[3] = {0.456469, -0.880293, -0.129305};
+static const float N036[3] = {0.873401, -0.475489, -0.105266};
+static const float N037[3] = {0.970825, 0.179861, -0.158584};
+static const float N038[3] = {0.675609, 0.714187, -0.183004};
+static const float N039[3] = {-0.523574, 0.830212, -0.19136};
+static const float N040[3] = {-0.958895, 0.230808, -0.165071};
+static const float N041[3] = {-0.918285, -0.376803, -0.121542};
+static const float N042[3] = {-0.622467, -0.774167, -0.114888};
+static const float N043[3] = {0.404497, -0.908807, -0.102231};
+static const float N044[3] = {0.930538, -0.365155, -0.027588};
+static const float N045[3] = {0.92192, 0.374157, -0.100345};
+static const float N046[3] = {0.507346, 0.860739, 0.041562};
+static const float N047[3] = {-0.394646, 0.918815, -0.00573};
+static const float N048[3] = {-0.925411, 0.373024, -0.066837};
+static const float N049[3] = {-0.945337, -0.322309, -0.049551};
+static const float N050[3] = {-0.660437, -0.750557, -0.022072};
+static const float N051[3] = {0.488835, -0.87195, -0.027261};
+static const float N052[3] = {0.902599, -0.421397, 0.087969};
+static const float N053[3] = {0.938636, 0.322606, 0.12202};
+static const float N054[3] = {0.484605, 0.871078, 0.079878};
+static const float N055[3] = {-0.353607, 0.931559, 0.084619};
+static const float N056[3] = {-0.867759, 0.478564, 0.134054};
+static const float N057[3] = {-0.951583, -0.29603, 0.082794};
+static const float N058[3] = {-0.672355, -0.730209, 0.121384};
+static const float N059[3] = {0.528336, -0.842452, 0.105525};
+static const float N060[3] = {0.786913, -0.56476, 0.248627};
+#if 0
+static const float N061[3] = {0, 1, 0};
+#endif
+static const float N062[3] = {0.622098, 0.76523, 0.165584};
+static const float N063[3] = {-0.631711, 0.767816, 0.106773};
+static const float N064[3] = {-0.687886, 0.606351, 0.398938};
+static const float N065[3] = {-0.946327, -0.281623, 0.158598};
+static const float N066[3] = {-0.509549, -0.860437, 0.002776};
+static const float N067[3] = {0.462594, -0.876692, 0.131977};
+#if 0
+static const float N068[3] = {0, -0.992278, 0.124035};
+static const float N069[3] = {0, -0.970143, -0.242536};
+static const float N070[3] = {0.015502, 0.992159, -0.12402};
+#endif
+static const float N071[3] = {0, 1, 0};
+#if 0
+static const float N072[3] = {0, 1, 0};
+static const float N073[3] = {0, 1, 0};
+static const float N074[3] = {0, -1, 0};
+static const float N075[3] = {-0.242536, 0, -0.970143};
+static const float N076[3] = {-0.010336, -0.992225, -0.124028};
+#endif
+static const float N077[3] = {-0.88077, 0.461448, 0.106351};
+static const float N078[3] = {-0.88077, 0.461448, 0.106351};
+static const float N079[3] = {-0.88077, 0.461448, 0.106351};
+static const float N080[3] = {-0.88077, 0.461448, 0.106351};
+static const float N081[3] = {-0.571197, 0.816173, 0.087152};
+static const float N082[3] = {-0.88077, 0.461448, 0.106351};
+static const float N083[3] = {-0.571197, 0.816173, 0.087152};
+static const float N084[3] = {-0.571197, 0.816173, 0.087152};
+static const float N085[3] = {-0.88077, 0.461448, 0.106351};
+static const float N086[3] = {-0.571197, 0.816173, 0.087152};
+static const float N087[3] = {-0.88077, 0.461448, 0.106351};
+static const float N088[3] = {-0.88077, 0.461448, 0.106351};
+static const float N089[3] = {-0.88077, 0.461448, 0.106351};
+static const float N090[3] = {-0.88077, 0.461448, 0.106351};
+static const float N091[3] = {0, 1, 0};
+static const float N092[3] = {0, 1, 0};
+static const float N093[3] = {0, 1, 0};
+static const float N094[3] = {1, 0, 0};
+static const float N095[3] = {-1, 0, 0};
+#if 0
+static const float N096[3] = {0, 1, 0};
+#endif
+static const float N097[3] = {-0.697296, 0.702881, 0.140491};
+static const float N098[3] = {0.918864, 0.340821, 0.198819};
+static const float N099[3] = {-0.932737, 0.201195, 0.299202};
+static const float N100[3] = {0.029517, 0.981679, 0.188244};
+#if 0
+static const float N101[3] = {0, 1, 0};
+#endif
+static const float N102[3] = {0.813521, -0.204936, 0.544229};
+#if 0
+static const float N103[3] = {0, 1, 0};
+static const float N104[3] = {0, 1, 0};
+static const float N105[3] = {0, 1, 0};
+static const float N106[3] = {0, 1, 0};
+static const float N107[3] = {0, 1, 0};
+static const float N108[3] = {0, 1, 0};
+static const float N109[3] = {0, 1, 0};
+#endif
+static const float N110[3] = {-0.78148, -0.384779, 0.491155};
+static const float N111[3] = {-0.722243, 0.384927, 0.574627};
+static const float N112[3] = {-0.752278, 0.502679, 0.425901};
+static const float N113[3] = {0.547257, 0.36791, 0.751766};
+static const float N114[3] = {0.725949, -0.232568, 0.647233};
+static const float N115[3] = {-0.747182, -0.660786, 0.07128};
+static const float N116[3] = {0.931519, 0.200748, 0.30327};
+static const float N117[3] = {-0.828928, 0.313757, 0.463071};
+static const float N118[3] = {0.902554, -0.370967, 0.218587};
+static const float N119[3] = {-0.879257, -0.441851, 0.177973};
+static const float N120[3] = {0.642327, 0.611901, 0.461512};
+static const float N121[3] = {0.964817, -0.202322, 0.16791};
+static const float N122[3] = {0, 1, 0};
+#if 0
+static const float N123[3] = {-0.980734, 0.041447, 0.1909};
+static const float N124[3] = {-0.980734, 0.041447, 0.1909};
+static const float N125[3] = {-0.980734, 0.041447, 0.1909};
+static const float N126[3] = {0, 1, 0};
+static const float N127[3] = {0, 1, 0};
+static const float N128[3] = {0, 1, 0};
+static const float N129[3] = {0.96325, 0.004839, 0.268565};
+static const float N130[3] = {0.96325, 0.004839, 0.268565};
+static const float N131[3] = {0.96325, 0.004839, 0.268565};
+static const float N132[3] = {0, 1, 0};
+static const float N133[3] = {0, 1, 0};
+static const float N134[3] = {0, 1, 0};
+#endif
+static float P001[3] = {5.68, -300.95, 1324.7};
+static const float P002[3] = {338.69, -219.63, 9677.03};
+static const float P003[3] = {12.18, 474.59, 9138.14};
+#if 0
+static const float P004[3] = {-7.49, -388.91, 10896.74};
+#endif
+static const float P005[3] = {487.51, 198.05, 9350.78};
+static const float P006[3] = {-457.61, 68.74, 9427.85};
+static const float P007[3] = {156.52, -266.72, 10311.68};
+static const float P008[3] = {-185.56, -266.51, 10310.47};
+static float P009[3] = {124.39, -261.46, 1942.34};
+static float P010[3] = {-130.05, -261.46, 1946.03};
+static float P011[3] = {141.07, -320.11, 1239.38};
+static float P012[3] = {156.48, -360.12, 2073.41};
+static float P013[3] = {162, -175.88, 2064.44};
+static float P014[3] = {88.16, -87.72, 2064.02};
+static float P015[3] = {-65.21, -96.13, 2064.02};
+static float P016[3] = {-156.48, -180.96, 2064.44};
+static float P017[3] = {-162, -368.93, 2082.39};
+static float P018[3] = {-88.16, -439.22, 2082.39};
+static float P019[3] = {65.21, -440.32, 2083.39};
+static float P020[3] = {246.87, -356.02, 2576.95};
+static float P021[3] = {253.17, -111.15, 2567.15};
+static float P022[3] = {132.34, 51.41, 2559.84};
+static float P023[3] = {-97.88, 40.44, 2567.15};
+static float P024[3] = {-222.97, -117.49, 2567.15};
+static float P025[3] = {-252.22, -371.53, 2569.92};
+static float P026[3] = {-108.44, -518.19, 2586.75};
+static float P027[3] = {97.88, -524.79, 2586.75};
+static float P028[3] = {370.03, -421.19, 3419.7};
+static float P029[3] = {351.15, -16.98, 3423.17};
+static float P030[3] = {200.66, 248.46, 3430.37};
+static float P031[3] = {-148.42, 235.02, 3417.91};
+static float P032[3] = {-360.21, -30.27, 3416.84};
+static float P033[3] = {-357.9, -414.89, 3407.04};
+static float P034[3] = {-148.88, -631.35, 3409.9};
+static float P035[3] = {156.38, -632.59, 3419.7};
+static float P036[3] = {462.61, -469.21, 4431.51};
+static float P037[3] = {466.6, 102.25, 4434.98};
+static float P038[3] = {243.05, 474.34, 4562.02};
+static float P039[3] = {-191.23, 474.4, 4554.42};
+static float P040[3] = {-476.12, 111.05, 4451.11};
+static float P041[3] = {-473.36, -470.74, 4444.78};
+static float P042[3] = {-266.95, -748.41, 4447.78};
+static float P043[3] = {211.14, -749.91, 4429.73};
+static float P044[3] = {680.57, -370.27, 5943.46};
+static float P045[3] = {834.01, 363.09, 6360.63};
+static float P046[3] = {371.29, 804.51, 6486.26};
+static float P047[3] = {-291.43, 797.22, 6494.28};
+static float P048[3] = {-784.13, 370.75, 6378.01};
+static float P049[3] = {-743.29, -325.82, 5943.46};
+static float P050[3] = {-383.24, -804.77, 5943.46};
+static float P051[3] = {283.47, -846.09, 5943.46};
+static const float iP001[3] = {5.68, -300.95, 1324.7};
+#if 0
+static const float iP002[3] = {338.69, -219.63, 9677.03};
+static const float iP003[3] = {12.18, 624.93, 8956.39};
+static const float iP004[3] = {-7.49, -388.91, 10896.74};
+static const float iP005[3] = {487.51, 198.05, 9350.78};
+static const float iP006[3] = {-457.61, 199.04, 9353.01};
+static const float iP007[3] = {156.52, -266.72, 10311.68};
+static const float iP008[3] = {-185.56, -266.51, 10310.47};
+#endif
+static const float iP009[3] = {124.39, -261.46, 1942.34};
+static const float iP010[3] = {-130.05, -261.46, 1946.03};
+static const float iP011[3] = {141.07, -320.11, 1239.38};
+static const float iP012[3] = {156.48, -360.12, 2073.41};
+static const float iP013[3] = {162, -175.88, 2064.44};
+static const float iP014[3] = {88.16, -87.72, 2064.02};
+static const float iP015[3] = {-65.21, -96.13, 2064.02};
+static const float iP016[3] = {-156.48, -180.96, 2064.44};
+static const float iP017[3] = {-162, -368.93, 2082.39};
+static const float iP018[3] = {-88.16, -439.22, 2082.39};
+static const float iP019[3] = {65.21, -440.32, 2083.39};
+static const float iP020[3] = {246.87, -356.02, 2576.95};
+static const float iP021[3] = {253.17, -111.15, 2567.15};
+static const float iP022[3] = {132.34, 51.41, 2559.84};
+static const float iP023[3] = {-97.88, 40.44, 2567.15};
+static const float iP024[3] = {-222.97, -117.49, 2567.15};
+static const float iP025[3] = {-252.22, -371.53, 2569.92};
+static const float iP026[3] = {-108.44, -518.19, 2586.75};
+static const float iP027[3] = {97.88, -524.79, 2586.75};
+static const float iP028[3] = {370.03, -421.19, 3419.7};
+static const float iP029[3] = {351.15, -16.98, 3423.17};
+static const float iP030[3] = {200.66, 248.46, 3430.37};
+static const float iP031[3] = {-148.42, 235.02, 3417.91};
+static const float iP032[3] = {-360.21, -30.27, 3416.84};
+static const float iP033[3] = {-357.9, -414.89, 3407.04};
+static const float iP034[3] = {-148.88, -631.35, 3409.9};
+static const float iP035[3] = {156.38, -632.59, 3419.7};
+static const float iP036[3] = {462.61, -469.21, 4431.51};
+static const float iP037[3] = {466.6, 102.25, 4434.98};
+static const float iP038[3] = {243.05, 474.34, 4562.02};
+static const float iP039[3] = {-191.23, 474.4, 4554.42};
+static const float iP040[3] = {-476.12, 111.05, 4451.11};
+static const float iP041[3] = {-473.36, -470.74, 4444.78};
+static const float iP042[3] = {-266.95, -748.41, 4447.78};
+static const float iP043[3] = {211.14, -749.91, 4429.73};
+static const float iP044[3] = {680.57, -370.27, 5943.46};
+static const float iP045[3] = {834.01, 363.09, 6360.63};
+static const float iP046[3] = {371.29, 804.51, 6486.26};
+static const float iP047[3] = {-291.43, 797.22, 6494.28};
+static const float iP048[3] = {-784.13, 370.75, 6378.01};
+static const float iP049[3] = {-743.29, -325.82, 5943.46};
+static const float iP050[3] = {-383.24, -804.77, 5943.46};
+static const float iP051[3] = {283.47, -846.09, 5943.46};
+static const float P052[3] = {599.09, -300.15, 7894.03};
+static const float P053[3] = {735.48, 306.26, 7911.92};
+static const float P054[3] = {246.22, 558.53, 8460.5};
+static const float P055[3] = {-230.41, 559.84, 8473.23};
+static const float P056[3] = {-698.66, 320.83, 7902.59};
+static const float P057[3] = {-643.29, -299.16, 7902.59};
+static const float P058[3] = {-341.47, -719.3, 7902.59};
+static const float P059[3] = {252.57, -756.12, 7902.59};
+static const float P060[3] = {458.39, -265.31, 9355.44};
+#if 0
+static const float P061[3] = {433.38, -161.9, 9503.03};
+#endif
+static const float P062[3] = {224.04, 338.75, 9450.3};
+static const float P063[3] = {-165.71, 341.04, 9462.35};
+static const float P064[3] = {-298.11, 110.13, 10180.37};
+static const float P065[3] = {-473.99, -219.71, 9355.44};
+static const float P066[3] = {-211.97, -479.87, 9355.44};
+static const float P067[3] = {192.86, -491.45, 9348.73};
+static float P068[3] = {-136.29, -319.84, 1228.73};
+static float P069[3] = {1111.17, -314.14, 1314.19};
+static float P070[3] = {-1167.34, -321.61, 1319.45};
+static float P071[3] = {1404.86, -306.66, 1235.45};
+static float P072[3] = {-1409.73, -314.14, 1247.66};
+static float P073[3] = {1254.01, -296.87, 1544.58};
+static float P074[3] = {-1262.09, -291.7, 1504.26};
+static float P075[3] = {965.71, -269.26, 1742.65};
+static float P076[3] = {-900.97, -276.74, 1726.07};
+static const float iP068[3] = {-136.29, -319.84, 1228.73};
+static const float iP069[3] = {1111.17, -314.14, 1314.19};
+static const float iP070[3] = {-1167.34, -321.61, 1319.45};
+static const float iP071[3] = {1404.86, -306.66, 1235.45};
+static const float iP072[3] = {-1409.73, -314.14, 1247.66};
+static const float iP073[3] = {1254.01, -296.87, 1544.58};
+static const float iP074[3] = {-1262.09, -291.7, 1504.26};
+static const float iP075[3] = {965.71, -269.26, 1742.65};
+static const float iP076[3] = {-900.97, -276.74, 1726.07};
+static const float P077[3] = {1058, -448.81, 8194.66};
+static const float P078[3] = {-1016.51, -456.43, 8190.62};
+static const float P079[3] = {-1515.96, -676.45, 7754.93};
+static const float P080[3] = {1856.75, -830.34, 7296.56};
+static const float P081[3] = {1472.16, -497.38, 7399.68};
+static const float P082[3] = {-1775.26, -829.51, 7298.46};
+static const float P083[3] = {911.09, -252.51, 7510.99};
+static const float P084[3] = {-1451.94, -495.62, 7384.3};
+static const float P085[3] = {1598.75, -669.26, 7769.9};
+static const float P086[3] = {-836.53, -250.08, 7463.25};
+static const float P087[3] = {722.87, -158.18, 8006.41};
+static const float P088[3] = {-688.86, -162.28, 7993.89};
+static const float P089[3] = {-626.92, -185.3, 8364.98};
+static const float P090[3] = {647.72, -189.46, 8354.99};
+static float P091[3] = {0, 835.01, 5555.62};
+static float P092[3] = {0, 1350.18, 5220.86};
+static float P093[3] = {0, 1422.94, 5285.27};
+static float P094[3] = {0, 1296.75, 5650.19};
+static float P095[3] = {0, 795.63, 6493.88};
+static const float iP091[3] = {0, 835.01, 5555.62};
+static const float iP092[3] = {0, 1350.18, 5220.86};
+static const float iP093[3] = {0, 1422.94, 5285.27};
+static const float iP094[3] = {0, 1296.75, 5650.19};
+static const float iP095[3] = {0, 795.63, 6493.88};
+#if 0
+static const float P096[3] = {-447.38, -165.99, 9499.6};
+#endif
+static float P097[3] = {-194.91, -357.14, 10313.32};
+static float P098[3] = {135.35, -357.66, 10307.94};
+static const float iP097[3] = {-194.91, -357.14, 10313.32};
+static const float iP098[3] = {135.35, -357.66, 10307.94};
+static const float P099[3] = {-380.53, -221.14, 9677.98};
+static const float P100[3] = {0, 412.99, 9629.33};
+#if 0
+static const float P101[3] = {5.7, 567, 7862.98};
+#endif
+static float P102[3] = {59.51, -412.55, 10677.58};
+static const float iP102[3] = {59.51, -412.55, 10677.58};
+static const float P103[3] = {6.5, 484.74, 9009.94};
+#if 0
+static const float P104[3] = {-9.86, 567.62, 7858.65};
+#endif
+static const float P105[3] = {-41.86, 476.51, 9078.17};
+#if 0
+static const float P106[3] = {22.75, 568.13, 7782.83};
+static const float P107[3] = {58.93, 568.42, 7775.94};
+#endif
+static const float P108[3] = {49.2, 476.83, 9078.24};
+#if 0
+static const float P109[3] = {99.21, 566, 7858.65};
+#endif
+static float P110[3] = {-187.62, -410.04, 10674.12};
+static const float iP110[3] = {-187.62, -410.04, 10674.12};
+static float P111[3] = {-184.25, -318.7, 10723.88};
+static const float iP111[3] = {-184.25, -318.7, 10723.88};
+static const float P112[3] = {-179.61, -142.81, 10670.26};
+static const float P113[3] = {57.43, -147.94, 10675.26};
+static const float P114[3] = {54.06, -218.9, 10712.44};
+static const float P115[3] = {-186.35, -212.09, 10713.76};
+static const float P116[3] = {205.9, -84.61, 10275.97};
+static const float P117[3] = {-230.96, -83.26, 10280.09};
+static const float iP118[3] = {216.78, -509.17, 10098.94};
+static const float iP119[3] = {-313.21, -510.79, 10102.62};
+static float P118[3] = {216.78, -509.17, 10098.94};
+static float P119[3] = {-313.21, -510.79, 10102.62};
+static const float P120[3] = {217.95, 96.34, 10161.62};
+static float P121[3] = {71.99, -319.74, 10717.7};
+static const float iP121[3] = {71.99, -319.74, 10717.7};
+static float P122[3] = {0, 602.74, 5375.84};
+static const float iP122[3] = {0, 602.74, 5375.84};
+static const float P123[3] = {-448.94, -203.14, 9499.6};
+static const float P124[3] = {-442.64, -185.2, 9528.07};
+static const float P125[3] = {-441.07, -148.05, 9528.07};
+static const float P126[3] = {-443.43, -128.84, 9499.6};
+static const float P127[3] = {-456.87, -146.78, 9466.67};
+static const float P128[3] = {-453.68, -183.93, 9466.67};
+static const float P129[3] = {428.43, -124.08, 9503.03};
+static const float P130[3] = {419.73, -142.14, 9534.56};
+static const float P131[3] = {419.92, -179.96, 9534.56};
+static const float P132[3] = {431.2, -199.73, 9505.26};
+static const float P133[3] = {442.28, -181.67, 9475.96};
+static const float P134[3] = {442.08, -143.84, 9475.96};
+/* *INDENT-ON* */
+
+
+
+static void
+Dolphin001(GLenum cap)
+{
+ glNormal3fv(N071);
+ glBegin(cap);
+ glVertex3fv(P001);
+ glVertex3fv(P068);
+ glVertex3fv(P010);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P068);
+ glVertex3fv(P076);
+ glVertex3fv(P010);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P068);
+ glVertex3fv(P070);
+ glVertex3fv(P076);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P076);
+ glVertex3fv(P070);
+ glVertex3fv(P074);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P070);
+ glVertex3fv(P072);
+ glVertex3fv(P074);
+ glEnd();
+ glNormal3fv(N119);
+ glBegin(cap);
+ glVertex3fv(P072);
+ glVertex3fv(P070);
+ glVertex3fv(P074);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P074);
+ glVertex3fv(P070);
+ glVertex3fv(P076);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P070);
+ glVertex3fv(P068);
+ glVertex3fv(P076);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P076);
+ glVertex3fv(P068);
+ glVertex3fv(P010);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P068);
+ glVertex3fv(P001);
+ glVertex3fv(P010);
+ glEnd();
+}
+
+static void
+Dolphin002(GLenum cap)
+{
+ glNormal3fv(N071);
+ glBegin(cap);
+ glVertex3fv(P011);
+ glVertex3fv(P001);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P075);
+ glVertex3fv(P011);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P069);
+ glVertex3fv(P011);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P069);
+ glVertex3fv(P075);
+ glVertex3fv(P073);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P071);
+ glVertex3fv(P069);
+ glVertex3fv(P073);
+ glEnd();
+ glNormal3fv(N119);
+ glBegin(cap);
+ glVertex3fv(P001);
+ glVertex3fv(P011);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P009);
+ glVertex3fv(P011);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P011);
+ glVertex3fv(P069);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P069);
+ glVertex3fv(P073);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P069);
+ glVertex3fv(P071);
+ glVertex3fv(P073);
+ glEnd();
+}
+
+static void
+Dolphin003(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glEnd();
+}
+
+static void
+Dolphin004(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glEnd();
+}
+
+static void
+Dolphin005(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glEnd();
+}
+
+static void
+Dolphin006(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N093);
+ glVertex3fv(P093);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N093);
+ glVertex3fv(P093);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N091);
+ glVertex3fv(P091);
+ glNormal3fv(N095);
+ glVertex3fv(P095);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N091);
+ glVertex3fv(P091);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glNormal3fv(N095);
+ glVertex3fv(P095);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N122);
+ glVertex3fv(P122);
+ glNormal3fv(N095);
+ glVertex3fv(P095);
+ glNormal3fv(N091);
+ glVertex3fv(P091);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N122);
+ glVertex3fv(P122);
+ glNormal3fv(N091);
+ glVertex3fv(P091);
+ glNormal3fv(N095);
+ glVertex3fv(P095);
+ glEnd();
+}
+
+static void
+Dolphin007(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glEnd();
+}
+
+static void
+Dolphin008(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glEnd();
+}
+
+static void
+Dolphin009(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glEnd();
+}
+
+static void
+Dolphin010(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N080);
+ glVertex3fv(P080);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N090);
+ glVertex3fv(P090);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N080);
+ glVertex3fv(P080);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glNormal3fv(N090);
+ glVertex3fv(P090);
+ glEnd();
+}
+
+static void
+Dolphin011(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N082);
+ glVertex3fv(P082);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N088);
+ glVertex3fv(P088);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glNormal3fv(N088);
+ glVertex3fv(P088);
+ glNormal3fv(N089);
+ glVertex3fv(P089);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N088);
+ glVertex3fv(P088);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N089);
+ glVertex3fv(P089);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N089);
+ glVertex3fv(P089);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N082);
+ glVertex3fv(P082);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+}
+
+static void
+Dolphin012(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glEnd();
+}
+
+static void
+Dolphin013(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N116);
+ glVertex3fv(P116);
+ glNormal3fv(N117);
+ glVertex3fv(P117);
+ glNormal3fv(N112);
+ glVertex3fv(P112);
+ glNormal3fv(N113);
+ glVertex3fv(P113);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N114);
+ glVertex3fv(P114);
+ glNormal3fv(N113);
+ glVertex3fv(P113);
+ glNormal3fv(N112);
+ glVertex3fv(P112);
+ glNormal3fv(N115);
+ glVertex3fv(P115);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N114);
+ glVertex3fv(P114);
+ glNormal3fv(N116);
+ glVertex3fv(P116);
+ glNormal3fv(N113);
+ glVertex3fv(P113);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N114);
+ glVertex3fv(P114);
+ glNormal3fv(N007);
+ glVertex3fv(P007);
+ glNormal3fv(N116);
+ glVertex3fv(P116);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N007);
+ glVertex3fv(P007);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N116);
+ glVertex3fv(P116);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P002);
+ glVertex3fv(P007);
+ glVertex3fv(P008);
+ glVertex3fv(P099);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P007);
+ glVertex3fv(P114);
+ glVertex3fv(P115);
+ glVertex3fv(P008);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N117);
+ glVertex3fv(P117);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N117);
+ glVertex3fv(P117);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glNormal3fv(N112);
+ glVertex3fv(P112);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N112);
+ glVertex3fv(P112);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glNormal3fv(N115);
+ glVertex3fv(P115);
+ glEnd();
+}
+
+static void
+Dolphin014(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N111);
+ glVertex3fv(P111);
+ glNormal3fv(N110);
+ glVertex3fv(P110);
+ glNormal3fv(N102);
+ glVertex3fv(P102);
+ glNormal3fv(N121);
+ glVertex3fv(P121);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N111);
+ glVertex3fv(P111);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glNormal3fv(N110);
+ glVertex3fv(P110);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glNormal3fv(N119);
+ glVertex3fv(P119);
+ glNormal3fv(N110);
+ glVertex3fv(P110);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glNormal3fv(N119);
+ glVertex3fv(P119);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N119);
+ glVertex3fv(P119);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N119);
+ glVertex3fv(P119);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P098);
+ glVertex3fv(P097);
+ glVertex3fv(P111);
+ glVertex3fv(P121);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P002);
+ glVertex3fv(P099);
+ glVertex3fv(P097);
+ glVertex3fv(P098);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N110);
+ glVertex3fv(P110);
+ glNormal3fv(N119);
+ glVertex3fv(P119);
+ glNormal3fv(N118);
+ glVertex3fv(P118);
+ glNormal3fv(N102);
+ glVertex3fv(P102);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N119);
+ glVertex3fv(P119);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glNormal3fv(N118);
+ glVertex3fv(P118);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N118);
+ glVertex3fv(P118);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N118);
+ glVertex3fv(P118);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N098);
+ glVertex3fv(P098);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N118);
+ glVertex3fv(P118);
+ glNormal3fv(N098);
+ glVertex3fv(P098);
+ glNormal3fv(N102);
+ glVertex3fv(P102);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N102);
+ glVertex3fv(P102);
+ glNormal3fv(N098);
+ glVertex3fv(P098);
+ glNormal3fv(N121);
+ glVertex3fv(P121);
+ glEnd();
+}
+
+static void
+Dolphin015(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glNormal3fv(N120);
+ glVertex3fv(P120);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glNormal3fv(N117);
+ glVertex3fv(P117);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N120);
+ glVertex3fv(P120);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glNormal3fv(N117);
+ glVertex3fv(P117);
+ glNormal3fv(N116);
+ glVertex3fv(P116);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N120);
+ glVertex3fv(P120);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N120);
+ glVertex3fv(P120);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N120);
+ glVertex3fv(P120);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N120);
+ glVertex3fv(P120);
+ glNormal3fv(N116);
+ glVertex3fv(P116);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+}
+
+static void
+Dolphin016(GLenum cap)
+{
+
+ glDisable(GL_DEPTH_TEST);
+ glBegin(cap);
+ glVertex3fv(P123);
+ glVertex3fv(P124);
+ glVertex3fv(P125);
+ glVertex3fv(P126);
+ glVertex3fv(P127);
+ glVertex3fv(P128);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P129);
+ glVertex3fv(P130);
+ glVertex3fv(P131);
+ glVertex3fv(P132);
+ glVertex3fv(P133);
+ glVertex3fv(P134);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P103);
+ glVertex3fv(P105);
+ glVertex3fv(P108);
+ glEnd();
+ glEnable(GL_DEPTH_TEST);
+}
+
+void
+DrawDolphin(fishRec * fish, int wire)
+{
+ float seg0, seg1, seg2, seg3, seg4, seg5, seg6, seg7;
+ float pitch, thrash, chomp;
+ GLenum cap;
+
+ fish->htail = (int) (fish->htail - (int) (10 * fish->v)) % 360;
+
+ thrash = 70 * fish->v;
+
+ seg0 = 1 * thrash * sin((fish->htail) * RRAD);
+ seg3 = 1 * thrash * sin((fish->htail) * RRAD);
+ seg1 = 2 * thrash * sin((fish->htail + 4) * RRAD);
+ seg2 = 3 * thrash * sin((fish->htail + 6) * RRAD);
+ seg4 = 4 * thrash * sin((fish->htail + 10) * RRAD);
+ seg5 = 4.5 * thrash * sin((fish->htail + 15) * RRAD);
+ seg6 = 5 * thrash * sin((fish->htail + 20) * RRAD);
+ seg7 = 6 * thrash * sin((fish->htail + 30) * RRAD);
+
+ pitch = fish->v * sin((fish->htail + 180) * RRAD);
+
+/* if (fish->v > 2) {
+ chomp = -(fish->v - 2) * 200;
+ }*/
+ chomp = 100;
+
+ P012[1] = iP012[1] + seg5;
+ P013[1] = iP013[1] + seg5;
+ P014[1] = iP014[1] + seg5;
+ P015[1] = iP015[1] + seg5;
+ P016[1] = iP016[1] + seg5;
+ P017[1] = iP017[1] + seg5;
+ P018[1] = iP018[1] + seg5;
+ P019[1] = iP019[1] + seg5;
+
+ P020[1] = iP020[1] + seg4;
+ P021[1] = iP021[1] + seg4;
+ P022[1] = iP022[1] + seg4;
+ P023[1] = iP023[1] + seg4;
+ P024[1] = iP024[1] + seg4;
+ P025[1] = iP025[1] + seg4;
+ P026[1] = iP026[1] + seg4;
+ P027[1] = iP027[1] + seg4;
+
+ P028[1] = iP028[1] + seg2;
+ P029[1] = iP029[1] + seg2;
+ P030[1] = iP030[1] + seg2;
+ P031[1] = iP031[1] + seg2;
+ P032[1] = iP032[1] + seg2;
+ P033[1] = iP033[1] + seg2;
+ P034[1] = iP034[1] + seg2;
+ P035[1] = iP035[1] + seg2;
+
+ P036[1] = iP036[1] + seg1;
+ P037[1] = iP037[1] + seg1;
+ P038[1] = iP038[1] + seg1;
+ P039[1] = iP039[1] + seg1;
+ P040[1] = iP040[1] + seg1;
+ P041[1] = iP041[1] + seg1;
+ P042[1] = iP042[1] + seg1;
+ P043[1] = iP043[1] + seg1;
+
+ P044[1] = iP044[1] + seg0;
+ P045[1] = iP045[1] + seg0;
+ P046[1] = iP046[1] + seg0;
+ P047[1] = iP047[1] + seg0;
+ P048[1] = iP048[1] + seg0;
+ P049[1] = iP049[1] + seg0;
+ P050[1] = iP050[1] + seg0;
+ P051[1] = iP051[1] + seg0;
+
+ P009[1] = iP009[1] + seg6;
+ P010[1] = iP010[1] + seg6;
+ P075[1] = iP075[1] + seg6;
+ P076[1] = iP076[1] + seg6;
+
+ P001[1] = iP001[1] + seg7;
+ P011[1] = iP011[1] + seg7;
+ P068[1] = iP068[1] + seg7;
+ P069[1] = iP069[1] + seg7;
+ P070[1] = iP070[1] + seg7;
+ P071[1] = iP071[1] + seg7;
+ P072[1] = iP072[1] + seg7;
+ P073[1] = iP073[1] + seg7;
+ P074[1] = iP074[1] + seg7;
+
+ P091[1] = iP091[1] + seg3;
+ P092[1] = iP092[1] + seg3;
+ P093[1] = iP093[1] + seg3;
+ P094[1] = iP094[1] + seg3;
+ P095[1] = iP095[1] + seg3;
+ P122[1] = iP122[1] + seg3 * 1.5;
+
+ P097[1] = iP097[1] + chomp;
+ P098[1] = iP098[1] + chomp;
+ P102[1] = iP102[1] + chomp;
+ P110[1] = iP110[1] + chomp;
+ P111[1] = iP111[1] + chomp;
+ P121[1] = iP121[1] + chomp;
+ P118[1] = iP118[1] + chomp;
+ P119[1] = iP119[1] + chomp;
+
+ glPushMatrix();
+
+ glRotatef(pitch, 1, 0, 0);
+
+ glTranslatef(0, 0, 7000);
+
+ glRotatef(180, 0, 1, 0);
+
+ glEnable(GL_CULL_FACE);
+ cap = wire ? GL_LINE_LOOP : GL_POLYGON;
+ Dolphin014(cap);
+ Dolphin010(cap);
+ Dolphin009(cap);
+ Dolphin012(cap);
+ Dolphin013(cap);
+ Dolphin006(cap);
+ Dolphin002(cap);
+ Dolphin001(cap);
+ Dolphin003(cap);
+ Dolphin015(cap);
+ Dolphin004(cap);
+ Dolphin005(cap);
+ Dolphin007(cap);
+ Dolphin008(cap);
+ Dolphin011(cap);
+ Dolphin016(cap);
+ glDisable(GL_CULL_FACE);
+
+ glPopMatrix();
+}
+#endif
diff --git a/hacks/glx/dropshadow.c b/hacks/glx/dropshadow.c
new file mode 100644
index 0000000..0a5855c
--- /dev/null
+++ b/hacks/glx/dropshadow.c
@@ -0,0 +1,181 @@
+/* dropshadow.c, Copyright (c) 2009 Jens Kilian <jjk@acm.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include <stdlib.h>
+
+#include "dropshadow.h"
+
+/* (Alpha) texture data for drop shadow.
+ */
+static int drop_shadow_width = 32;
+static int drop_shadow_height = 32;
+static unsigned char drop_shadow_data[] =
+{
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 3, 4, 6, 7, 9, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 9, 7, 6, 4, 3, 1, 1, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 3, 5, 9, 13, 16, 19, 19, 21, 21, 22, 22,
+ 22, 22, 21, 21, 19, 19, 16, 13, 9, 5, 3, 1, 1, 0, 0, 0,
+ 0, 0, 1, 1, 3, 5, 10, 16, 22, 28, 32, 35, 37, 37, 38, 38,
+ 38, 38, 37, 37, 35, 32, 28, 22, 16, 10, 5, 3, 1, 1, 0, 0,
+ 0, 0, 1, 1, 4, 9, 16, 25, 34, 43, 50, 55, 58, 59, 60, 60,
+ 60, 60, 59, 58, 55, 50, 43, 34, 25, 16, 9, 4, 1, 1, 0, 0,
+ 0, 0, 1, 3, 6, 13, 22, 34, 48, 61, 70, 77, 80, 82, 83, 84,
+ 84, 83, 82, 80, 77, 70, 61, 48, 34, 22, 13, 6, 3, 1, 0, 0,
+ 0, 0, 1, 3, 7, 16, 28, 43, 61, 76, 88, 97, 102, 103, 104, 104,
+ 104, 104, 103, 102, 97, 88, 76, 61, 43, 28, 16, 7, 3, 1, 0, 0,
+ 0, 1, 1, 4, 9, 19, 32, 51, 70, 88, 103, 112, 117, 120, 121, 121,
+ 121, 121, 120, 117, 112, 103, 88, 70, 51, 32, 19, 9, 4, 1, 1, 0,
+ 0, 1, 1, 4, 10, 20, 35, 55, 77, 97, 112, 122, 128, 130, 132, 133,
+ 133, 132, 130, 128, 122, 112, 97, 77, 55, 35, 20, 10, 4, 1, 1, 0,
+ 0, 1, 1, 4, 10, 21, 37, 58, 80, 101, 117, 128, 134, 137, 138, 139,
+ 139, 138, 137, 134, 128, 117, 101, 80, 58, 37, 21, 10, 4, 1, 0, 0,
+ 0, 0, 1, 4, 10, 21, 38, 59, 82, 103, 119, 130, 137, 139, 141, 142,
+ 142, 141, 139, 137, 130, 119, 103, 82, 59, 38, 21, 10, 4, 1, 0, 0,
+ 0, 0, 1, 4, 10, 22, 38, 59, 83, 104, 121, 132, 139, 141, 142, 142,
+ 142, 142, 141, 139, 132, 121, 104, 83, 59, 38, 22, 10, 4, 1, 0, 0,
+ 0, 0, 1, 4, 10, 22, 38, 60, 84, 104, 121, 133, 139, 142, 142, 142,
+ 142, 142, 142, 139, 133, 121, 104, 84, 60, 38, 22, 10, 4, 1, 0, 0,
+ 0, 0, 1, 4, 10, 22, 38, 60, 84, 104, 121, 133, 139, 142, 142, 142,
+ 142, 142, 142, 139, 133, 121, 104, 84, 60, 38, 22, 10, 4, 1, 0, 0,
+ 0, 0, 1, 4, 10, 22, 38, 59, 83, 104, 121, 132, 139, 141, 142, 142,
+ 142, 142, 141, 139, 132, 121, 104, 83, 59, 38, 22, 10, 4, 1, 0, 0,
+ 0, 0, 1, 4, 10, 21, 38, 59, 82, 103, 119, 130, 137, 139, 141, 142,
+ 142, 141, 139, 137, 130, 119, 103, 82, 59, 38, 21, 10, 4, 1, 0, 0,
+ 0, 1, 1, 4, 10, 21, 37, 58, 80, 101, 118, 128, 134, 137, 139, 139,
+ 139, 139, 137, 134, 128, 117, 102, 80, 58, 37, 21, 10, 4, 1, 0, 0,
+ 0, 1, 1, 4, 10, 20, 35, 55, 77, 97, 112, 122, 128, 130, 132, 133,
+ 133, 132, 130, 128, 122, 112, 97, 77, 55, 35, 20, 10, 4, 1, 1, 0,
+ 0, 1, 1, 4, 9, 19, 32, 51, 70, 88, 103, 112, 117, 120, 121, 121,
+ 121, 121, 120, 117, 112, 103, 88, 70, 51, 32, 19, 9, 4, 1, 1, 0,
+ 0, 0, 1, 3, 7, 16, 28, 43, 61, 76, 88, 97, 102, 103, 104, 104,
+ 104, 104, 103, 102, 97, 88, 76, 61, 43, 28, 16, 7, 3, 1, 0, 0,
+ 0, 0, 1, 3, 6, 13, 22, 34, 48, 61, 70, 77, 80, 82, 83, 84,
+ 84, 83, 82, 80, 77, 70, 61, 48, 34, 22, 13, 6, 3, 1, 0, 0,
+ 0, 0, 1, 1, 4, 9, 16, 25, 34, 43, 50, 55, 58, 59, 60, 60,
+ 60, 60, 59, 58, 55, 50, 43, 34, 25, 16, 9, 4, 1, 1, 0, 0,
+ 0, 0, 1, 1, 3, 5, 10, 16, 22, 28, 32, 35, 37, 37, 38, 38,
+ 38, 38, 37, 37, 35, 32, 28, 22, 16, 10, 5, 3, 1, 1, 0, 0,
+ 0, 0, 0, 1, 1, 3, 5, 9, 13, 16, 19, 19, 21, 21, 22, 22,
+ 22, 22, 21, 21, 19, 19, 16, 13, 9, 5, 3, 1, 1, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 3, 4, 6, 7, 9, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 9, 7, 6, 4, 3, 1, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+GLuint
+init_drop_shadow(void)
+{
+ GLuint t;
+
+ glGenTextures (1, &t);
+ if (t <= 0) abort();
+
+ glBindTexture (GL_TEXTURE_2D, t);
+#if 0
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ gluBuild2DMipmaps (GL_TEXTURE_2D, GL_ALPHA,
+ drop_shadow_width, drop_shadow_height,
+ GL_ALPHA, GL_UNSIGNED_BYTE,
+ drop_shadow_data);
+#else
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_ALPHA,
+ drop_shadow_width, drop_shadow_height, 0,
+ GL_ALPHA, GL_UNSIGNED_BYTE,
+ drop_shadow_data);
+#endif
+
+ return t;
+}
+
+void
+draw_drop_shadow (GLuint t,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
+ GLfloat r)
+{
+ /* Inner and outer boundaries of shadow. */
+ const GLfloat li = x, lo = li - r;
+ const GLfloat ri = x + w, ro = ri + r;
+ const GLfloat bi = y, bo = bi - r;
+ const GLfloat ti = y + h, to = ti + r;
+
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, t);
+
+ glBegin (GL_QUADS);
+
+ /* There's likely a better way to do this... */
+ glTexCoord2f (0.0, 0.0); glVertex3f (lo, bo, z);
+ glTexCoord2f (0.5, 0.0); glVertex3f (li, bo, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (li, bi, z);
+ glTexCoord2f (0.0, 0.5); glVertex3f (lo, bi, z);
+
+ glTexCoord2f (0.5, 0.0); glVertex3f (li, bo, z);
+ glTexCoord2f (0.5, 0.0); glVertex3f (ri, bo, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (ri, bi, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (li, bi, z);
+
+ glTexCoord2f (0.5, 0.0); glVertex3f (ri, bo, z);
+ glTexCoord2f (1.0, 0.0); glVertex3f (ro, bo, z);
+ glTexCoord2f (1.0, 0.5); glVertex3f (ro, bi, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (ri, bi, z);
+
+ glTexCoord2f (0.5, 0.5); glVertex3f (ri, bi, z);
+ glTexCoord2f (1.0, 0.5); glVertex3f (ro, bi, z);
+ glTexCoord2f (1.0, 0.5); glVertex3f (ro, ti, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (ri, ti, z);
+
+ glTexCoord2f (0.5, 0.5); glVertex3f (ri, ti, z);
+ glTexCoord2f (1.0, 0.5); glVertex3f (ro, ti, z);
+ glTexCoord2f (1.0, 1.0); glVertex3f (ro, to, z);
+ glTexCoord2f (0.5, 1.0); glVertex3f (ri, to, z);
+
+ glTexCoord2f (0.5, 0.5); glVertex3f (li, ti, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (ri, ti, z);
+ glTexCoord2f (0.5, 1.0); glVertex3f (ri, to, z);
+ glTexCoord2f (0.5, 1.0); glVertex3f (li, to, z);
+
+ glTexCoord2f (0.0, 0.5); glVertex3f (lo, ti, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (li, ti, z);
+ glTexCoord2f (0.5, 1.0); glVertex3f (li, to, z);
+ glTexCoord2f (0.0, 1.0); glVertex3f (lo, to, z);
+
+ glTexCoord2f (0.0, 0.5); glVertex3f (lo, bi, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (li, bi, z);
+ glTexCoord2f (0.5, 0.5); glVertex3f (li, ti, z);
+ glTexCoord2f (0.0, 0.5); glVertex3f (lo, ti, z);
+
+ glEnd();
+}
diff --git a/hacks/glx/dropshadow.h b/hacks/glx/dropshadow.h
new file mode 100644
index 0000000..09af0c8
--- /dev/null
+++ b/hacks/glx/dropshadow.h
@@ -0,0 +1,40 @@
+/* dropshadow.h, Copyright (c) 2009 Jens Kilian <jjk@acm.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __DROPSHADOW_H__
+#define __DROPSHADOW_H__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include "xlockmoreI.h"
+
+/* Initialize drop shadow texture, return a texture ID.
+ */
+GLuint
+init_drop_shadow(void);
+
+/* Draw a drop shadow around a rectangle.
+
+ t Texture ID (as returned by init_drop_shadow()).
+ x, y, z; w, h Position (left bottom), depth and size of rectangle.
+ r Radius of drop shadow.
+
+ The shadow will be drawn using the current color.
+ */
+
+void
+draw_drop_shadow (GLuint t,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
+ GLfloat r);
+
+#endif /* __DROPSHADOW_H__ */
diff --git a/hacks/glx/dxf2gl.pl b/hacks/glx/dxf2gl.pl
new file mode 100755
index 0000000..9ed470c
--- /dev/null
+++ b/hacks/glx/dxf2gl.pl
@@ -0,0 +1,729 @@
+#!/usr/bin/perl -w
+# Copyright © 2003-2014 Jamie Zawinski <jwz@jwz.org>
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation. No representations are made about the suitability of this
+# software for any purpose. It is provided "as is" without express or
+# implied warranty.
+#
+# Reads a DXF file, and emits C data suitable for use with OpenGL's
+# glInterleavedArrays() and glDrawArrays() routines.
+#
+# Options:
+#
+# --normalize Compute the bounding box of the object, and scale all
+# coordinates so that the object fits inside a unit cube.
+#
+# --smooth When computing normals for the vertexes, average the
+# normals at any edge which is less than 90 degrees.
+# If this option is not specified, planar normals will be
+# used, resulting in a "faceted" object.
+#
+# --wireframe Emit lines instead of faces.
+#
+# --layers Emit a separate set of polygons for each layer in the
+# input file, instead of emitting the whole file as a
+# single unit.
+#
+# Created: 8-Mar-2003.
+
+require 5;
+use diagnostics;
+use strict;
+
+use POSIX qw(mktime strftime);
+use Math::Trig qw(acos);
+use Text::Wrap;
+
+my $progname = $0; $progname =~ s@.*/@@g;
+my ($version) = ('$Revision: 1.11 $' =~ m/\s(\d[.\d]+)\s/s);
+
+my $verbose = 0;
+
+
+# convert a vector to a unit vector
+sub normalize($$$) {
+ my ($x, $y, $z) = @_;
+ my $L = sqrt (($x * $x) + ($y * $y) + ($z * $z));
+ if ($L != 0) {
+ $x /= $L;
+ $y /= $L;
+ $z /= $L;
+ } else {
+ $x = $y = $z = 0;
+ }
+ return ($x, $y, $z);
+}
+
+
+# Calculate the unit normal at p0 given two other points p1,p2 on the
+# surface. The normal points in the direction of p1 crossproduct p2.
+#
+sub face_normal($$$$$$$$$) {
+ my ($p0x, $p0y, $p0z,
+ $p1x, $p1y, $p1z,
+ $p2x, $p2y, $p2z) = @_;
+
+ my ($nx, $ny, $nz);
+ my ($pax, $pay, $paz);
+ my ($pbx, $pby, $pbz);
+
+ $pax = $p1x - $p0x;
+ $pay = $p1y - $p0y;
+ $paz = $p1z - $p0z;
+ $pbx = $p2x - $p0x;
+ $pby = $p2y - $p0y;
+ $pbz = $p2z - $p0z;
+ $nx = $pay * $pbz - $paz * $pby;
+ $ny = $paz * $pbx - $pax * $pbz;
+ $nz = $pax * $pby - $pay * $pbx;
+
+ return (normalize ($nx, $ny, $nz));
+}
+
+
+my $pi = 3.141592653589793;
+my $radians_to_degrees = 180.0 / $pi;
+
+# Calculate the angle (in degrees) between two vectors.
+#
+sub vector_angle($$$$$$) {
+ my ($x1, $y1, $z1,
+ $x2, $y2, $z2) = @_;
+
+ my $L1 = sqrt ($x1*$x1 + $y1*$y1 + $z1*$z1);
+ my $L2 = sqrt ($x2*$x2 + $y2*$y2 + $z2*$z2);
+
+ return 0 if ($L1 == 0 || $L2 == 0);
+ return 0 if ($x1 == $x2 && $y1 == $y2 && $z1 == $z2);
+
+ # dot product of two vectors is defined as:
+ # $L1 * $L1 * cos(angle between vectors)
+ # and is also defined as:
+ # $x1*$x2 + $y1*$y2 + $z1*$z2
+ # so:
+ # $L1 * $L1 * cos($angle) = $x1*$x2 + $y1*$y2 + $z1*$z2
+ # cos($angle) = ($x1*$x2 + $y1*$y2 + $z1*$z2) / ($L1 * $L2)
+ # $angle = acos (($x1*$x2 + $y1*$y2 + $z1*$z2) / ($L1 * $L2));
+ #
+ my $cos = ($x1*$x2 + $y1*$y2 + $z1*$z2) / ($L1 * $L2);
+ $cos = 1 if ($cos > 1); # avoid fp rounding error (1.000001 => sqrt error)
+ my $angle = acos ($cos);
+
+ return ($angle * $radians_to_degrees);
+}
+
+
+# given a list of triangles ( [ X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, ]+ )
+# returns a list of the normals for each vertex. These are the smoothed
+# normals: the average of the normals of the participating faces.
+#
+sub compute_vertex_normals(@) {
+ my (@points) = @_;
+ my $npoints = ($#points+1) / 3;
+ my $nfaces = $npoints / 3;
+
+ my @face_normals = ();
+ my %point_faces;
+
+ for (my $i = 0; $i < $nfaces; $i++) {
+ my ($ax, $ay, $az, $bx, $by, $bz, $cx, $cy, $cz) =
+ @points[($i*9) .. ($i*9)+8];
+
+ # store the normal for each face in the $face_normals array
+ # indexed by face number.
+ #
+ my @norm = face_normal ($ax, $ay, $az,
+ $bx, $by, $bz,
+ $cx, $cy, $cz);
+ $face_normals[$i] = \@norm;
+
+ # store in the %point_faces hash table a list of every face number
+ # in which a point participates
+
+ foreach my $p ("$ax $ay $az", "$bx $by $bz", "$cx $cy $cz") {
+ my @flist = (defined($point_faces{$p}) ? @{$point_faces{$p}} : ());
+ push @flist, $i;
+ $point_faces{$p} = \@flist;
+ }
+ }
+
+
+ # compute the normal for each vertex of each face.
+ # (these points are not unique -- because there might be multiple
+ # normals associated with the same vertex for different faces,
+ # in the case where it's a sharp angle.)
+ #
+ my @normals = ();
+ for (my $i = 0; $i < $nfaces; $i++) {
+ my @verts = @points[($i*9) .. ($i*9)+8];
+ error ("overshot in points?") unless defined($verts[8]);
+
+ my @norm = @{$face_normals[$i]};
+ error ("no normal $i?") unless defined($norm[2]);
+
+ # iterate over the (three) vertexes in this face.
+ #
+ for (my $j = 0; $j < 3; $j++) {
+ my ($x, $y, $z) = @verts[($j*3) .. ($j*3)+2];
+ error ("overshot in verts?") unless defined($z);
+
+ # Iterate over the faces in which this point participates.
+ # But ignore any other faces that are at more than an N degree
+ # angle from this point's face. Those are sharp edges.
+ #
+ my ($nx, $ny, $nz) = (0, 0, 0);
+ my @faces = @{$point_faces{"$x $y $z"}};
+ foreach my $fn (@faces) {
+ my ($ax, $ay, $az, $bx, $by, $bz, $cx, $cy, $cz) =
+ @points[($fn*9) .. ($fn*9)+8];
+ my @fnorm = @{$face_normals[$fn]};
+
+ # ignore any adjascent faces that are more than N degrees off.
+ my $angle = vector_angle ($norm[0], $norm[1], $norm[2],
+ $fnorm[0], $fnorm[1], $fnorm[2]);
+ next if ($angle >= 30);
+
+ $nx += $fnorm[0];
+ $ny += $fnorm[1];
+ $nz += $fnorm[2];
+ }
+
+ push @normals, normalize ($nx, $ny, $nz);
+ }
+ }
+
+ return @normals;
+}
+
+
+sub parse_dxf($$$$$) {
+ my ($filename, $dxf, $normalize_p, $wireframe_p, $layers_p) = @_;
+
+ $dxf =~ s/\r\n/\n/gs; # CRLF
+ $dxf =~ s/^[ \t\n]+|[ \t\n]+$//s; # leading/trailing whitespace
+
+ # Convert whitespace within a line to _, e.g., "ObjectDBX Classes".
+ # What the hell is up with this file format!
+ 1 while ($dxf =~ s/([^ \t\n])[ \t]+([^ \t\n])/$1_$2/gs);
+
+ $dxf =~ s/\r/\n/gs;
+
+ # Turn blank lines into "", e.g., "$DIMBLK \n 1 \n \n 9 \n"
+ $dxf =~ s/\n\n/\n""\n/gs;
+
+ my @tokens = split (/[ \t\n]+/, $dxf); # tokenize
+
+ my @entities = (); # parse
+ while (@tokens) {
+ my @elts = ();
+ my $key = shift @tokens; # sectionize at "0 WORD"
+ do {
+ my $val = shift @tokens;
+ push @elts, [ $key, $val ]; # contents are [CODE VAL]
+ $key = shift @tokens;
+ } while ($key && $key ne 0);
+ unshift @tokens, $key if defined($key);
+ push @entities, \@elts;
+ }
+ my %triangles; # list of points, indexed by layer name
+ my %lines;
+ my $error_count = 0;
+
+ foreach my $entity (@entities) {
+ my $header = shift @$entity;
+ my ($code, $name) = @$header;
+
+ if ($name eq 'SECTION' ||
+ $name eq 'HEADER' ||
+ $name eq 'ENDSEC' ||
+ $name eq 'EOF') {
+ print STDERR "$progname: $filename: ignoring \"$code $name\"\n"
+ if ($verbose > 1);
+
+ } elsif ($name eq '3DFACE') {
+
+ my @points = ();
+ my $pc = 0;
+ my $layer = '';
+
+ foreach my $entry (@$entity) {
+ my ($key, $val) = @$entry;
+ if ($key eq 8) { $layer = $val; # layer name
+
+ } elsif ($key eq 10) { $pc++; $points[0] = $val; # X1
+ } elsif ($key eq 20) { $pc++; $points[1] = $val; # Y1
+ } elsif ($key eq 30) { $pc++; $points[2] = $val; # Z1
+
+ } elsif ($key eq 11) { $pc++; $points[3] = $val; # X2
+ } elsif ($key eq 21) { $pc++; $points[4] = $val; # Y2
+ } elsif ($key eq 31) { $pc++; $points[5] = $val; # Z2
+
+ } elsif ($key eq 12) { $pc++; $points[6] = $val; # X3
+ } elsif ($key eq 22) { $pc++; $points[7] = $val; # Y3
+ } elsif ($key eq 32) { $pc++; $points[8] = $val; # Z3
+
+ } elsif ($key eq 13) { $pc++; $points[9] = $val; # X4
+ } elsif ($key eq 23) { $pc++; $points[10] = $val; # Y4
+ } elsif ($key eq 33) { $pc++; $points[11] = $val; # Z4
+
+ } elsif ($key eq 62) { # color number
+ } elsif ($key eq 70) { # invisible edge flag
+ } else {
+ print STDERR "$progname: $filename: WARNING:" .
+ " unknown $name: \"$key $val\"\n";
+ $error_count++;
+ }
+ }
+
+ error ("got $pc points in $name") unless ($pc == 12);
+
+ if ($points[6] != $points[9] ||
+ $points[7] != $points[10] ||
+ $points[8] != $points[11]) {
+ error ("$filename: got a quad, not a triangle\n");
+ } else {
+ @points = @points[0 .. 8];
+ }
+
+ foreach (@points) { $_ += 0; } # convert strings to numbers
+
+ $layer = '' unless $layers_p;
+
+ $triangles{$layer} = [] unless defined ($triangles{$layer});
+ push @{$triangles{$layer}}, @points;
+
+ } elsif ($name eq 'LINE') {
+
+ my @points = ();
+ my $pc = 0;
+ my $layer = '';
+
+ foreach my $entry (@$entity) {
+ my ($key, $val) = @$entry;
+ if ($key eq 8) { $layer = $val; # layer name
+
+ } elsif ($key eq 10) { $pc++; $points[0] = $val; # X1
+ } elsif ($key eq 20) { $pc++; $points[1] = $val; # Y1
+ } elsif ($key eq 30) { $pc++; $points[2] = $val; # Z1
+
+ } elsif ($key eq 11) { $pc++; $points[3] = $val; # X2
+ } elsif ($key eq 21) { $pc++; $points[4] = $val; # Y2
+ } elsif ($key eq 31) { $pc++; $points[5] = $val; # Z2
+
+ } elsif ($key eq 39) { # thickness
+ } elsif ($key eq 62) { # color number
+ } else {
+ print STDERR "$progname: $filename: WARNING:" .
+ " unknown $name: \"$key $val\"\n";
+ $error_count++;
+ }
+ }
+
+ error ("got $pc points in $name") unless ($pc == 6);
+
+ foreach (@points) { $_ += 0; } # convert strings to numbers
+
+ $layer = '' unless $layers_p;
+
+ $lines{$layer} = [] unless defined ($lines{$layer});
+ push @{$lines{$layer}}, @points;
+
+ } elsif ($name =~ m/^\d+$/s) {
+ error ("sequence lost: \"$code $name\"");
+
+ } else {
+ print STDERR "$progname: $filename: WARNING: unknown: \"$code $name\"\n";
+ $error_count++;
+ }
+
+ error ("too many errors: bailing!") if ($error_count > 50);
+ }
+
+ if ($wireframe_p) {
+
+ # Convert faces to lines.
+ # Don't duplicate shared edges.
+
+ foreach my $layer (keys %triangles) {
+ my %dups;
+ my @triangles = @{$triangles{$layer}};
+ while (@triangles) {
+ my $x1 = shift @triangles; # 0
+ my $y1 = shift @triangles; # 1
+ my $z1 = shift @triangles; # 2
+ my $x2 = shift @triangles; # 3
+ my $y2 = shift @triangles; # 4
+ my $z2 = shift @triangles; # 5
+ my $x3 = shift @triangles; # 6
+ my $y3 = shift @triangles; # 7
+ my $z3 = shift @triangles; # 8
+
+ my $p = sub(@) {
+ my ($x1, $y1, $z1, $x2, $y2, $z2) = @_;
+ my $key1 = "$x1, $y1, $z1, $x2, $y2, $z2";
+ my $key2 = "$x2, $y2, $z2, $x1, $y1, $z1";
+ my $dup = $dups{$key1} || $dups{$key2};
+ $dups{$key1} = 1;
+ $dups{$key2} = 1;
+ push @{$lines{$layer}}, @_ unless $dup;
+ }
+ ;
+ $p->($x1, $y1, $z1, $x2, $y2, $z2);
+ $p->($x2, $y2, $z2, $x3, $y3, $z3);
+ $p->($x3, $y3, $z3, $x1, $y1, $z1);
+ }
+
+ @{$triangles{$layer}} = ();
+ }
+
+ } else {
+ foreach my $layer (keys %lines) {
+ my $n = @{$lines{$layer}};
+ @{$lines{$layer}} = ();
+ print STDERR "$progname: $filename: $layer: WARNING:" .
+ " ignored $n stray LINE" . ($n == 1 ? "" : "s") . ".\n"
+ if ($n);
+ }
+ }
+
+
+ # find bounding box, and normalize
+ #
+ if ($normalize_p || $verbose) {
+ my $minx = 999999999;
+ my $miny = 999999999;
+ my $minz = 999999999;
+ my $maxx = -999999999;
+ my $maxy = -999999999;
+ my $maxz = -999999999;
+ my $i = 0;
+
+ foreach my $layer (keys %triangles) {
+ my %dups;
+ my @triangles = @{$triangles{$layer}};
+
+ foreach my $n (@{$lines{$layer}}, @{$triangles{$layer}}) {
+ if ($i == 0) { $minx = $n if ($n < $minx);
+ $maxx = $n if ($n > $maxx); }
+ elsif ($i == 1) { $miny = $n if ($n < $miny);
+ $maxy = $n if ($n > $maxy); }
+ else { $minz = $n if ($n < $minz);
+ $maxz = $n if ($n > $maxz); }
+ $i = 0 if (++$i == 3);
+ }
+ }
+
+ my $w = ($maxx - $minx);
+ my $h = ($maxy - $miny);
+ my $d = ($maxz - $minz);
+ my $sizea = ($w > $h ? $w : $h);
+ my $sizeb = ($w > $d ? $w : $d);
+ my $size = ($sizea > $sizeb ? $sizea : $sizeb);
+
+ print STDERR "$progname: $filename: bbox is " .
+ sprintf("%.2f x %.2f x %.2f\n", $w, $h, $d)
+ if ($verbose);
+ print STDERR "$progname: $filename: center is " .
+ sprintf("%.2f, %.2f, %.2f\n",
+ $minx + $w / 2,
+ $miny + $h / 2,
+ $minz + $d / 2)
+ if ($verbose);
+
+ if ($normalize_p) {
+ $w /= $size;
+ $h /= $size;
+ $d /= $size;
+
+ print STDERR "$progname: $filename: dividing by " .
+ sprintf("%.2f", $size) . " for bbox of " .
+ sprintf("%.2f x %.2f x %.2f\n", $w, $h, $d)
+ if ($verbose);
+ foreach my $layer (keys %triangles) {
+ foreach my $n (@{$triangles{$layer}}) { $n /= $size; }
+ foreach my $n (@{$lines{$layer}}) { $n /= $size; }
+ }
+ }
+ }
+
+ return ($wireframe_p ? \%lines : \%triangles);
+}
+
+
+sub generate_c_1($$$$$@) {
+ my ($name, $outfile, $smooth_p, $wireframe_p, $normalize_p, @points) = @_;
+
+ my $ccw_p = 1; # counter-clockwise winding rule for computing normals
+
+ my $npoints = ($#points + 1) / 3;
+ my $nfaces = ($wireframe_p ? $npoints/2 : $npoints/3);
+
+ my @normals;
+ if ($smooth_p && !$wireframe_p) {
+ @normals = compute_vertex_normals (@points);
+
+ if ($#normals != $#points) {
+ error ("computed " . (($#normals+1)/3) . " normals for " .
+ (($#points+1)/3) . " points?");
+ }
+ }
+
+ my $code .= "\nstatic const float ${name}_data[] = {\n";
+
+ if ($wireframe_p) {
+ my %dups;
+ for (my $i = 0; $i < $nfaces; $i++) {
+ my $ax = $points[$i*6];
+ my $ay = $points[$i*6+1];
+ my $az = $points[$i*6+2];
+
+ my $bx = $points[$i*6+3];
+ my $by = $points[$i*6+4];
+ my $bz = $points[$i*6+5];
+
+ my $lines = sprintf("\t" . "%.6f,%.6f,%.6f,\n" .
+ "\t" . "%.6f,%.6f,%.6f,\n",
+ $ax, $ay, $az,
+ $bx, $by, $bz);
+ $lines =~ s/([.\d])0+,/$1,/g; # lose trailing insignificant zeroes
+ $lines =~ s/\.,/,/g;
+ $lines =~ s/-0,/0,/g;
+
+ $code .= $lines;
+ }
+
+ } else {
+ for (my $i = 0; $i < $nfaces; $i++) {
+ my $ax = $points[$i*9];
+ my $ay = $points[$i*9+1];
+ my $az = $points[$i*9+2];
+
+ my $bx = $points[$i*9+3];
+ my $by = $points[$i*9+4];
+ my $bz = $points[$i*9+5];
+
+ my $cx = $points[$i*9+6];
+ my $cy = $points[$i*9+7];
+ my $cz = $points[$i*9+8];
+
+ my ($nax, $nay, $naz,
+ $nbx, $nby, $nbz,
+ $ncx, $ncy, $ncz);
+
+ if ($smooth_p) {
+ $nax = $normals[$i*9];
+ $nay = $normals[$i*9+1];
+ $naz = $normals[$i*9+2];
+
+ $nbx = $normals[$i*9+3];
+ $nby = $normals[$i*9+4];
+ $nbz = $normals[$i*9+5];
+
+ $ncx = $normals[$i*9+6];
+ $ncy = $normals[$i*9+7];
+ $ncz = $normals[$i*9+8];
+
+ } else {
+ if ($ccw_p) {
+ ($nax, $nay, $naz) = face_normal ($ax, $ay, $az,
+ $bx, $by, $bz,
+ $cx, $cy, $cz);
+ } else {
+ ($nax, $nay, $naz) = face_normal ($ax, $ay, $az,
+ $cx, $cy, $cz,
+ $bx, $by, $bz);
+ }
+ ($nbx, $nby, $nbz) = ($nax, $nay, $naz);
+ ($ncx, $ncy, $ncz) = ($nax, $nay, $naz);
+ }
+
+ my $lines = sprintf("\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n" .
+ "\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n" .
+ "\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n",
+ $nax, $nay, $naz, $ax, $ay, $az,
+ $nbx, $nby, $nbz, $bx, $by, $bz,
+ $ncx, $ncy, $ncz, $cx, $cy, $cz);
+ $lines =~ s/([.\d])0+,/$1,/g; # lose trailing insignificant zeroes
+ $lines =~ s/\.,/,/g;
+ $lines =~ s/-0,/0,/g;
+
+ $code .= $lines;
+ }
+ }
+
+ my $format = ($wireframe_p ? 'GL_V3F' : 'GL_N3F_V3F');
+ my $primitive = ($wireframe_p ? 'GL_LINES' : 'GL_TRIANGLES');
+
+ $code =~ s/,\n$//s;
+ $code .= "\n};\n";
+ $code .= "static const struct gllist ${name}_frame = {\n";
+ $code .= " $format, $primitive, $npoints, ${name}_data, 0\n};\n";
+ $code .= "const struct gllist *$name = &${name}_frame;\n";
+
+ print STDERR "$progname: $outfile: $name: $npoints points, $nfaces faces.\n"
+ if ($verbose);
+
+ return ($code, $npoints, $nfaces);
+}
+
+
+sub generate_c($$$$$$) {
+ my ($infile, $outfile, $smooth_p, $wireframe_p, $normalize_p, $layers) = @_;
+
+ my $code = '';
+
+ my $token = $outfile; # guess at a C token from the filename
+ $token =~ s/\<[^<>]*\>//;
+ $token =~ s@^.*/@@;
+ $token =~ s/\.[^.]*$//;
+ $token =~ s/[^a-z\d]/_/gi;
+ $token =~ s/__+/_/g;
+ $token =~ s/^_//g;
+ $token =~ s/_$//g;
+ $token =~ tr [A-Z] [a-z];
+ $token = 'foo' if ($token eq '');
+
+ my @layers = sort (keys %$layers);
+
+ $infile =~ s@^.*/@@s;
+ $code .= ("/* Generated from \"$infile\" on " .
+ strftime ("%d-%b-%Y", localtime ()) . ".\n" .
+ " " . ($wireframe_p
+ ? "Wireframe."
+ : ($smooth_p ?
+ "Smoothed vertex normals." :
+ "Faceted face normals.")) .
+ ($normalize_p ? " Normalized to unit bounding box." : "") .
+ "\n" .
+ (@layers > 1
+ ? wrap (" ", " ", "Components: " . join (", ", @layers)) . ".\n"
+ : "") .
+ " */\n\n");
+
+ $code .= "#include \"gllist.h\"\n";
+
+ my $npoints = 0;
+ my $nfaces = 0;
+
+ foreach my $layer (@layers) {
+ my $name = $layer ? "${token}_${layer}" : $token;
+ my ($c, $np, $nf) =
+ generate_c_1 ($name, $outfile,
+ $smooth_p, $wireframe_p, $normalize_p,
+ @{$layers->{$layer}});
+ $code .= $c;
+ $npoints += $np;
+ $nfaces += $nf;
+ }
+
+ print STDERR "$progname: $outfile: total: $npoints points, $nfaces faces.\n"
+ if ($verbose && @layers > 1);
+
+ return $code;
+}
+
+
+# Returns true if the two files differ (by running "cmp")
+#
+sub cmp_files($$) {
+ my ($file1, $file2) = @_;
+
+ my @cmd = ("cmp", "-s", "$file1", "$file2");
+ print STDERR "$progname: executing \"" . join(" ", @cmd) . "\"\n"
+ if ($verbose > 3);
+
+ system (@cmd);
+ my $exit_value = $? >> 8;
+ my $signal_num = $? & 127;
+ my $dumped_core = $? & 128;
+
+ error ("$cmd[0]: core dumped!") if ($dumped_core);
+ error ("$cmd[0]: signal $signal_num!") if ($signal_num);
+ return $exit_value;
+}
+
+
+sub dxf_to_gl($$$$$$) {
+ my ($infile, $outfile, $smooth_p, $normalize_p, $wireframe_p, $layers_p) = @_;
+
+ open (my $in, "<$infile") || error ("$infile: $!");
+ my $filename = ($infile eq '-' ? "<stdin>" : $infile);
+ print STDERR "$progname: reading $filename...\n"
+ if ($verbose);
+
+ local $/ = undef; # read entire file
+ my $dxf = <$in>;
+ close $in;
+
+ my $data = parse_dxf ($filename, $dxf, $normalize_p, $wireframe_p, $layers_p);
+
+ $filename = ($outfile eq '-' ? "<stdout>" : $outfile);
+ my $code = generate_c ($infile, $filename, $smooth_p, $wireframe_p,
+ $normalize_p, $data);
+
+ if ($outfile eq '-') {
+ print STDOUT $code;
+ } else {
+ my $tmp = "$outfile.tmp";
+ open (my $out, '>', $tmp) || error ("$tmp: $!");
+ print $out $code || error ("$filename: $!");
+ close $out || error ("$filename: $!");
+ if (cmp_files ($filename, $tmp)) {
+ if (!rename ($tmp, $filename)) {
+ unlink $tmp;
+ error ("mv $tmp $filename: $!");
+ }
+ print STDERR "$progname: wrote $filename\n";
+ } else {
+ unlink "$tmp" || error ("rm $tmp: $!\n");
+ print STDERR "$progname: $filename unchanged\n" if ($verbose);
+ }
+ }
+}
+
+
+sub error() {
+ ($_) = @_;
+ print STDERR "$progname: $_\n";
+ exit 1;
+}
+
+sub usage() {
+ print STDERR "usage: $progname " .
+ "[--verbose] [--normalize] [--smooth] [--wireframe] [--layers]\n" .
+ "[infile [outfile]]\n";
+ exit 1;
+}
+
+sub main() {
+ my ($infile, $outfile);
+ my $normalize_p = 0;
+ my $smooth_p = 0;
+ my $wireframe_p = 0;
+ my $layers_p = 0;
+ while ($_ = $ARGV[0]) {
+ shift @ARGV;
+ if ($_ eq "--verbose") { $verbose++; }
+ elsif (m/^-v+$/) { $verbose += length($_)-1; }
+ elsif ($_ eq "--normalize") { $normalize_p = 1; }
+ elsif ($_ eq "--smooth") { $smooth_p = 1; }
+ elsif ($_ eq "--wireframe") { $wireframe_p = 1; }
+ elsif ($_ eq "--layers") { $layers_p = 1; }
+ elsif (m/^-./) { usage; }
+ elsif (!defined($infile)) { $infile = $_; }
+ elsif (!defined($outfile)) { $outfile = $_; }
+ else { usage; }
+ }
+
+ $infile = "-" unless defined ($infile);
+ $outfile = "-" unless defined ($outfile);
+
+ dxf_to_gl ($infile, $outfile, $smooth_p, $normalize_p, $wireframe_p, $layers_p);
+}
+
+main;
+exit 0;
diff --git a/hacks/glx/dymaxionmap-coords.c b/hacks/glx/dymaxionmap-coords.c
new file mode 100644
index 0000000..1eb064d
--- /dev/null
+++ b/hacks/glx/dymaxionmap-coords.c
@@ -0,0 +1,685 @@
+/* http://www.rwgrayprojects.com/rbfnotes/maps/graymap6.html
+ Slightly modified by jwz for xscreensaver
+ */
+
+
+/**************************************************************/
+/* */
+/* This C program is copyrighted by Robert W. Gray and may */
+/* not be used in ANY for-profit project without written */
+/* permission. */
+/* */
+/**************************************************************/
+
+/* (Note: Robert Gray has kindly given me his permission to include
+ this code in xscreensaver. -- Jamie Zawinski, Apr 2018.)
+ */
+
+
+/**************************************************************/
+/* */
+/* This C program contains the Dymaxion map coordinate */
+/* transformation routines for converting longitude/latitude */
+/* points to (X, Y) points on the Dymaxion map. */
+/* */
+/* This version uses the exact transformation equations. */
+/**************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "dymaxionmap-coords.h"
+
+/************************************************************************/
+/* NOTE: in C, array indexing starts with element zero (0). I choose */
+/* to start my array indexing with elemennt one (1) so all arrays */
+/* are defined one element longer than they need to be. */
+/************************************************************************/
+
+/************************************************************************/
+/* global variables accessable to all procedures */
+/************************************************************************/
+
+static double v_x[13], v_y[13], v_z[13];
+static double center_x[21], center_y[21], center_z[21];
+static double garc, gt, gdve, gel;
+
+/********************************************/
+/* function pre-definitions */
+/********************************************/
+
+static double radians(double degrees);
+static void rotate(double angle, double *x, double *y);
+static void r2(int axis, double alpha, double *x, double *y, double *z);
+static void init_stuff(void);
+/*static void convert_s_t_p(double lng, double lat, double *x, double *y);*/
+static void s_to_c(double theta, double phi, double *x, double *y, double *z);
+static void c_to_s(double *theta, double *phi, double x, double y, double z);
+static void s_tri_info(double x, double y, double z,
+ int *tri, int *lcd);
+static void dymax_point(int tri, int lcd,
+ double x, double y, double z,
+ double *dx, double *dy);
+static void conv_ll_t_sc(double lng, double lat, double *theta, double *phi);
+
+
+/****************************************/
+/* function definitions */
+/****************************************/
+
+
+void
+/* convert_s_t_p */
+dymaxion_convert
+(double lng, double lat, double *x, double *y)
+{
+ /***********************************************************/
+ /* This is the main control procedure. */
+ /***********************************************************/
+
+ double theta, phi;
+ double hx, hy, hz;
+ double px = 0, py = 0;
+ int tri, hlcd;
+
+ static int initted = 0;
+ if (! initted) {
+ init_stuff();
+ initted = 1;
+ }
+
+ /* Convert the given (long.,lat.) coordinate into spherical */
+ /* polar coordinates (r, theta, phi) with radius=1. */
+ /* Angles are given in radians, NOT degrees. */
+
+ conv_ll_t_sc(lng, lat, &theta, &phi);
+
+ /* convert the spherical polar coordinates into cartesian */
+ /* (x, y, z) coordinates. */
+
+ s_to_c(theta, phi, &hx, &hy, &hz);
+
+ /* determine which of the 20 spherical icosahedron triangles */
+ /* the given point is in and the LCD triangle. */
+
+ s_tri_info(hx, hy, hz, &tri, &hlcd);
+
+ /* Determine the corresponding Fuller map plane (x, y) point */
+
+ dymax_point(tri, hlcd, hx, hy, hz, &px, &py);
+ *x = px;
+ *y = py;
+
+} /* end convert_s_t_p */
+
+
+static void conv_ll_t_sc(double lng, double lat, double *theta, double *phi)
+{
+ /* convert (long., lat.) point into spherical polar coordinates */
+ /* with r=radius=1. Angles are given in radians. */
+
+ double h_theta, h_phi;
+
+ h_theta = 90.0 - lat ;
+ h_phi = lng;
+ if (lng < 0.0) {h_phi = lng + 360.0;}
+ *theta = radians(h_theta);
+ *phi = radians(h_phi);
+
+} /* end conv_ll_t_sc */
+
+
+static double radians(double degrees)
+{
+ /* convert angles in degrees into angles in radians */
+
+ double pi2, c1;
+
+ pi2 = 2 * 3.14159265358979323846;
+ c1 = pi2 / 360;
+ return(c1 * degrees);
+
+} /* end of radians function */
+
+
+static void init_stuff()
+{
+ /* initializes the global variables which includes the */
+ /* vertix coordinates and mid-face coordinates. */
+
+ double /* i, */ hold_x, hold_y, hold_z, magn;
+ /* double theta, phi; */
+
+ /* Cartesian coordinates for the 12 vertices of icosahedron */
+
+ v_x[1] = 0.420152426708710003;
+ v_y[1] = 0.078145249402782959;
+ v_z[1] = 0.904082550615019298;
+ v_x[2] = 0.995009439436241649 ;
+ v_y[2] = -0.091347795276427931 ;
+ v_z[2] = 0.040147175877166645 ;
+ v_x[3] = 0.518836730327364437 ;
+ v_y[3] = 0.835420380378235850 ;
+ v_z[3] = 0.181331837557262454 ;
+ v_x[4] = -0.414682225320335218 ;
+ v_y[4] = 0.655962405434800777 ;
+ v_z[4] = 0.630675807891475371 ;
+ v_x[5] = -0.515455959944041808 ;
+ v_y[5] = -0.381716898287133011 ;
+ v_z[5] = 0.767200992517747538 ;
+ v_x[6] = 0.355781402532944713 ;
+ v_y[6] = -0.843580002466178147 ;
+ v_z[6] = 0.402234226602925571 ;
+ v_x[7] = 0.414682225320335218 ;
+ v_y[7] = -0.655962405434800777 ;
+ v_z[7] = -0.630675807891475371 ;
+ v_x[8] = 0.515455959944041808 ;
+ v_y[8] = 0.381716898287133011 ;
+ v_z[8] = -0.767200992517747538 ;
+ v_x[9] = -0.355781402532944713 ;
+ v_y[9] = 0.843580002466178147 ;
+ v_z[9] = -0.402234226602925571 ;
+ v_x[10] = -0.995009439436241649 ;
+ v_y[10] = 0.091347795276427931 ;
+ v_z[10] = -0.040147175877166645 ;
+ v_x[11] = -0.518836730327364437 ;
+ v_y[11] = -0.835420380378235850 ;
+ v_z[11] = -0.181331837557262454 ;
+ v_x[12] = -0.420152426708710003 ;
+ v_y[12] = -0.078145249402782959 ;
+ v_z[12] = -0.904082550615019298 ;
+
+ /* now calculate mid face coordinates */
+
+ hold_x = (v_x[1] + v_x[2] + v_x[3]) / 3.0 ;
+ hold_y = (v_y[1] + v_y[2] + v_y[3]) / 3.0 ;
+ hold_z = (v_z[1] + v_z[2] + v_z[3]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[1] = hold_x / magn;
+ center_y[1] = hold_y / magn;
+ center_z[1] = hold_z / magn;
+
+ hold_x = (v_x[1] + v_x[3] + v_x[4]) / 3.0 ;
+ hold_y = (v_y[1] + v_y[3] + v_y[4]) / 3.0 ;
+ hold_z = (v_z[1] + v_z[3] + v_z[4]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[2] = hold_x / magn;
+ center_y[2] = hold_y / magn;
+ center_z[2] = hold_z / magn;
+
+ hold_x = (v_x[1] + v_x[4] + v_x[5]) / 3.0 ;
+ hold_y = (v_y[1] + v_y[4] + v_y[5]) / 3.0 ;
+ hold_z = (v_z[1] + v_z[4] + v_z[5]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[3] = hold_x / magn;
+ center_y[3] = hold_y / magn;
+ center_z[3] = hold_z / magn;
+
+ hold_x = (v_x[1] + v_x[5] + v_x[6]) / 3.0 ;
+ hold_y = (v_y[1] + v_y[5] + v_y[6]) / 3.0 ;
+ hold_z = (v_z[1] + v_z[5] + v_z[6]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[4] = hold_x / magn;
+ center_y[4] = hold_y / magn;
+ center_z[4] = hold_z / magn;
+
+ hold_x = (v_x[1] + v_x[2] + v_x[6]) / 3.0 ;
+ hold_y = (v_y[1] + v_y[2] + v_y[6]) / 3.0 ;
+ hold_z = (v_z[1] + v_z[2] + v_z[6]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[5] = hold_x / magn;
+ center_y[5] = hold_y / magn;
+ center_z[5] = hold_z / magn;
+
+ hold_x = (v_x[2] + v_x[3] + v_x[8]) / 3.0 ;
+ hold_y = (v_y[2] + v_y[3] + v_y[8]) / 3.0 ;
+ hold_z = (v_z[2] + v_z[3] + v_z[8]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[6] = hold_x / magn;
+ center_y[6] = hold_y / magn;
+ center_z[6] = hold_z / magn;
+
+ hold_x = (v_x[8] + v_x[3] + v_x[9]) / 3.0 ;
+ hold_y = (v_y[8] + v_y[3] + v_y[9]) / 3.0 ;
+ hold_z = (v_z[8] + v_z[3] + v_z[9]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[7] = hold_x / magn;
+ center_y[7] = hold_y / magn;
+ center_z[7] = hold_z / magn;
+
+ hold_x = (v_x[9] + v_x[3] + v_x[4]) / 3.0 ;
+ hold_y = (v_y[9] + v_y[3] + v_y[4]) / 3.0 ;
+ hold_z = (v_z[9] + v_z[3] + v_z[4]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[8] = hold_x / magn;
+ center_y[8] = hold_y / magn;
+ center_z[8] = hold_z / magn;
+
+ hold_x = (v_x[10] + v_x[9] + v_x[4]) / 3.0 ;
+ hold_y = (v_y[10] + v_y[9] + v_y[4]) / 3.0 ;
+ hold_z = (v_z[10] + v_z[9] + v_z[4]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[9] = hold_x / magn;
+ center_y[9] = hold_y / magn;
+ center_z[9] = hold_z / magn;
+
+ hold_x = (v_x[5] + v_x[10] + v_x[4]) / 3.0 ;
+ hold_y = (v_y[5] + v_y[10] + v_y[4]) / 3.0 ;
+ hold_z = (v_z[5] + v_z[10] + v_z[4]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[10] = hold_x / magn;
+ center_y[10] = hold_y / magn;
+ center_z[10] = hold_z / magn;
+
+ hold_x = (v_x[5] + v_x[11] + v_x[10]) / 3.0 ;
+ hold_y = (v_y[5] + v_y[11] + v_y[10]) / 3.0 ;
+ hold_z = (v_z[5] + v_z[11] + v_z[10]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[11] = hold_x / magn;
+ center_y[11] = hold_y / magn;
+ center_z[11] = hold_z / magn;
+
+ hold_x = (v_x[5] + v_x[6] + v_x[11]) / 3.0 ;
+ hold_y = (v_y[5] + v_y[6] + v_y[11]) / 3.0 ;
+ hold_z = (v_z[5] + v_z[6] + v_z[11]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[12] = hold_x / magn;
+ center_y[12] = hold_y / magn;
+ center_z[12] = hold_z / magn;
+
+ hold_x = (v_x[11] + v_x[6] + v_x[7]) / 3.0 ;
+ hold_y = (v_y[11] + v_y[6] + v_y[7]) / 3.0 ;
+ hold_z = (v_z[11] + v_z[6] + v_z[7]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[13] = hold_x / magn;
+ center_y[13] = hold_y / magn;
+ center_z[13] = hold_z / magn;
+
+ hold_x = (v_x[7] + v_x[6] + v_x[2]) / 3.0 ;
+ hold_y = (v_y[7] + v_y[6] + v_y[2]) / 3.0 ;
+ hold_z = (v_z[7] + v_z[6] + v_z[2]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[14] = hold_x / magn;
+ center_y[14] = hold_y / magn;
+ center_z[14] = hold_z / magn;
+
+ hold_x = (v_x[8] + v_x[7] + v_x[2]) / 3.0 ;
+ hold_y = (v_y[8] + v_y[7] + v_y[2]) / 3.0 ;
+ hold_z = (v_z[8] + v_z[7] + v_z[2]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[15] = hold_x / magn;
+ center_y[15] = hold_y / magn;
+ center_z[15] = hold_z / magn;
+
+ hold_x = (v_x[12] + v_x[9] + v_x[8]) / 3.0 ;
+ hold_y = (v_y[12] + v_y[9] + v_y[8]) / 3.0 ;
+ hold_z = (v_z[12] + v_z[9] + v_z[8]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[16] = hold_x / magn;
+ center_y[16] = hold_y / magn;
+ center_z[16] = hold_z / magn;
+
+ hold_x = (v_x[12] + v_x[9] + v_x[10]) / 3.0 ;
+ hold_y = (v_y[12] + v_y[9] + v_y[10]) / 3.0 ;
+ hold_z = (v_z[12] + v_z[9] + v_z[10]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[17] = hold_x / magn;
+ center_y[17] = hold_y / magn;
+ center_z[17] = hold_z / magn;
+
+ hold_x = (v_x[12] + v_x[11] + v_x[10]) / 3.0 ;
+ hold_y = (v_y[12] + v_y[11] + v_y[10]) / 3.0 ;
+ hold_z = (v_z[12] + v_z[11] + v_z[10]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[18] = hold_x / magn;
+ center_y[18] = hold_y / magn;
+ center_z[18] = hold_z / magn;
+
+ hold_x = (v_x[12] + v_x[11] + v_x[7]) / 3.0 ;
+ hold_y = (v_y[12] + v_y[11] + v_y[7]) / 3.0 ;
+ hold_z = (v_z[12] + v_z[11] + v_z[7]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[19] = hold_x / magn;
+ center_y[19] = hold_y / magn;
+ center_z[19] = hold_z / magn;
+
+ hold_x = (v_x[12] + v_x[8] + v_x[7]) / 3.0 ;
+ hold_y = (v_y[12] + v_y[8] + v_y[7]) / 3.0 ;
+ hold_z = (v_z[12] + v_z[8] + v_z[7]) / 3.0 ;
+ magn = sqrt(hold_x * hold_x + hold_y * hold_y + hold_z * hold_z);
+ center_x[20] = hold_x / magn;
+ center_y[20] = hold_y / magn;
+ center_z[20] = hold_z / magn;
+
+ garc = 2.0 * asin( sqrt( 5 - sqrt(5)) / sqrt(10) );
+ gt = garc / 2.0;
+
+ gdve = sqrt( 3 + sqrt(5) ) / sqrt( 5 + sqrt(5) );
+ gel = sqrt(8) / sqrt(5 + sqrt(5));
+
+} /* end of int_stuff procedure */
+
+
+static void s_to_c(double theta, double phi, double *x, double *y, double *z)
+{
+ /* Covert spherical polar coordinates to cartesian coordinates. */
+ /* The angles are given in radians. */
+
+ *x = sin(theta) * cos(phi);
+ *y = sin(theta) * sin(phi);
+ *z = cos(theta);
+
+ } /* end s_to_c */
+
+
+static void c_to_s(double *lng, double *lat, double x, double y, double z)
+ {
+ /* convert cartesian coordinates into spherical polar coordinates. */
+ /* The angles are given in radians. */
+
+ double a;
+
+ if (x>0.0 && y>0.0){a = radians(0.0);}
+ if (x<0.0 && y>0.0){a = radians(180.0);}
+ if (x<0.0 && y<0.0){a = radians(180.0);}
+ if (x>0.0 && y<0.0){a = radians(360.0);}
+ *lat = acos(z);
+ if (x==0.0 && y>0.0){*lng = radians(90.0);}
+ if (x==0.0 && y<0.0){*lng = radians(270.0);}
+ if (x>0.0 && y==0.0){*lng = radians(0.0);}
+ if (x<0.0 && y==0.0){*lng = radians(180.0);}
+ if (x!=0.0 && y!=0.0){*lng = atan(y/x) + a;}
+
+} /* end c_to_s */
+
+
+void s_tri_info(double x, double y, double z,
+ int *tri, int *lcd)
+{
+ /* Determine which triangle and LCD triangle the point is in. */
+
+ double h_dist1, h_dist2, h_dist3, h1, h2, h3;
+ int i, h_tri, h_lcd ;
+ int v1 = 0, v2 = 0, v3 = 0;
+
+ h_tri = 0;
+ h_dist1 = 9999.0;
+
+ /* Which triangle face center is the closest to the given point */
+ /* is the triangle in which the given point is in. */
+
+ for (i = 1; i <=20; i = i + 1)
+ {
+ h1 = center_x[i] - x;
+ h2 = center_y[i] - y;
+ h3 = center_z[i] - z;
+ h_dist2 = sqrt(h1 * h1 + h2 * h2 + h3 * h3);
+ if (h_dist2 < h_dist1)
+ {
+ h_tri = i;
+ h_dist1 = h_dist2;
+ } /* end the if statement */
+ } /* end the for statement */
+
+ *tri = h_tri;
+
+ /* Now the LCD triangle is determined. */
+
+ switch (h_tri)
+ {
+ case 1: v1 = 1; v2 = 3; v3 = 2; break;
+ case 2: v1 = 1; v2 = 4; v3 = 3; break;
+ case 3: v1 = 1; v2 = 5; v3 = 4; break;
+ case 4: v1 = 1; v2 = 6; v3 = 5; break;
+ case 5: v1 = 1; v2 = 2; v3 = 6; break;
+ case 6: v1 = 2; v2 = 3; v3 = 8; break;
+ case 7: v1 = 3; v2 = 9; v3 = 8; break;
+ case 8: v1 = 3; v2 = 4; v3 = 9; break;
+ case 9: v1 = 4; v2 = 10; v3 = 9; break;
+ case 10: v1 = 4; v2 = 5; v3 = 10; break;
+ case 11: v1 = 5; v2 = 11; v3 = 10; break;
+ case 12: v1 = 5; v2 = 6; v3 = 11; break;
+ case 13: v1 = 6; v2 = 7; v3 = 11; break;
+ case 14: v1 = 2; v2 = 7; v3 = 6; break;
+ case 15: v1 = 2; v2 = 8; v3 = 7; break;
+ case 16: v1 = 8; v2 = 9; v3 = 12; break;
+ case 17: v1 = 9; v2 = 10; v3 = 12; break;
+ case 18: v1 = 10; v2 = 11; v3 = 12; break;
+ case 19: v1 = 11; v2 = 7; v3 = 12; break;
+ case 20: v1 = 8; v2 = 12; v3 = 7; break;
+ } /* end of switch statement */
+
+ h1 = x - v_x[v1];
+ h2 = y - v_y[v1];
+ h3 = z - v_z[v1];
+ h_dist1 = sqrt(h1 * h1 + h2 * h2 + h3 * h3);
+
+ h1 = x - v_x[v2];
+ h2 = y - v_y[v2];
+ h3 = z - v_z[v2];
+ h_dist2 = sqrt(h1 * h1 + h2 * h2 + h3 * h3);
+
+ h1 = x - v_x[v3];
+ h2 = y - v_y[v3];
+ h3 = z - v_z[v3];
+ h_dist3 = sqrt(h1 * h1 + h2 * h2 + h3 * h3);
+
+ if ( (h_dist1 <= h_dist2) && (h_dist2 <= h_dist3) ) {h_lcd = 1; }
+ if ( (h_dist1 <= h_dist3) && (h_dist3 <= h_dist2) ) {h_lcd = 6; }
+ if ( (h_dist2 <= h_dist1) && (h_dist1 <= h_dist3) ) {h_lcd = 2; }
+ if ( (h_dist2 <= h_dist3) && (h_dist3 <= h_dist1) ) {h_lcd = 3; }
+ if ( (h_dist3 <= h_dist1) && (h_dist1 <= h_dist2) ) {h_lcd = 5; }
+ if ( (h_dist3 <= h_dist2) && (h_dist2 <= h_dist1) ) {h_lcd = 4; }
+
+ *lcd = h_lcd;
+
+} /* end s_tri_info */
+
+
+static void dymax_point(int tri, int lcd,
+ double x, double y, double z,
+ double *px, double *py)
+{
+ int axis, v1 = 0;
+ double hlng, hlat, h0x, h0y, h0z, h1x, h1y, h1z;
+
+ double gs;
+ double gx, gy, gz, ga1,ga2,ga3,ga1p,ga2p,ga3p,gxp,gyp/*,gzp*/;
+
+
+ /* In order to rotate the given point into the template spherical */
+ /* triangle, we need the spherical polar coordinates of the center */
+ /* of the face and one of the face vertices. So set up which vertex */
+ /* to use. */
+
+ switch (tri)
+ {
+ case 1: v1 = 1; break;
+ case 2: v1 = 1; break;
+ case 3: v1 = 1; break;
+ case 4: v1 = 1; break;
+ case 5: v1 = 1; break;
+ case 6: v1 = 2; break;
+ case 7: v1 = 3; break;
+ case 8: v1 = 3; break;
+ case 9: v1 = 4; break;
+ case 10: v1 = 4; break;
+ case 11: v1 = 5; break;
+ case 12: v1 = 5; break;
+ case 13: v1 = 6; break;
+ case 14: v1 = 2; break;
+ case 15: v1 = 2; break;
+ case 16: v1 = 8; break;
+ case 17: v1 = 9; break;
+ case 18: v1 = 10; break;
+ case 19: v1 = 11; break;
+ case 20: v1 = 8; break;
+ } /* end of switch statement */
+
+ h0x = x;
+ h0y = y;
+ h0z = z;
+
+ h1x = v_x[v1];
+ h1y = v_y[v1];
+ h1z = v_z[v1];
+
+ c_to_s(&hlng, &hlat, center_x[tri], center_y[tri], center_z[tri]);
+
+ axis = 3;
+ r2(axis,hlng,&h0x,&h0y,&h0z);
+ r2(axis,hlng,&h1x,&h1y,&h1z);
+
+ axis = 2;
+ r2(axis,hlat,&h0x,&h0y,&h0z);
+ r2(axis,hlat,&h1x,&h1y,&h1z);
+
+ c_to_s(&hlng,&hlat,h1x,h1y,h1z);
+ hlng = hlng - radians(90.0);
+
+ axis = 3;
+ r2(axis,hlng,&h0x,&h0y,&h0z);
+
+ /* exact transformation equations */
+
+ gz = sqrt(1 - h0x * h0x - h0y * h0y);
+ gs = sqrt( 5 + 2 * sqrt(5) ) / ( gz * sqrt(15) );
+
+ gxp = h0x * gs ;
+ gyp = h0y * gs ;
+
+ ga1p = 2.0 * gyp / sqrt(3.0) + (gel / 3.0) ;
+ ga2p = gxp - (gyp / sqrt(3)) + (gel / 3.0) ;
+ ga3p = (gel / 3.0) - gxp - (gyp / sqrt(3));
+
+ ga1 = gt + atan( (ga1p - 0.5 * gel) / gdve);
+ ga2 = gt + atan( (ga2p - 0.5 * gel) / gdve);
+ ga3 = gt + atan( (ga3p - 0.5 * gel) / gdve);
+
+ gx = 0.5 * (ga2 - ga3) ;
+
+ gy = (1.0 / (2.0 * sqrt(3)) ) * (2 * ga1 - ga2 - ga3);
+
+ /* Re-scale so plane triangle edge length is 1. */
+
+ x = gx / garc;
+ y = gy / garc;
+
+ /* rotate and translate to correct position */
+
+ switch (tri)
+ {
+ case 1: rotate(240.0,&x, &y);
+ *px = x + 2.0; *py = y + 7.0 / (2.0 * sqrt(3.0)) ; break;
+ case 2: rotate(300.0, &x, &y); *px = x + 2.0;
+ *py = y + 5.0 / (2.0 * sqrt(3.0)) ; break;
+ case 3: rotate(0.0, &x, &y);
+ *px = x + 2.5; *py = y + 2.0 / sqrt(3.0); break;
+ case 4: rotate(60.0, &x, &y);
+ *px = x + 3.0; *py = y + 5.0 / (2.0 * sqrt(3.0)) ; break;
+ case 5: rotate(180.0, &x, &y);
+ *px = x + 2.5; *py = y + 4.0 * sqrt(3.0) / 3.0; break;
+ case 6: rotate(300.0, &x, &y);
+ *px = x + 1.5; *py = y + 4.0 * sqrt(3.0) / 3.0; break;
+ case 7: rotate(300.0, &x, &y);
+ *px = x + 1.0; *py = y + 5.0 / (2.0 * sqrt(3.0)) ; break;
+ case 8: rotate(0.0, &x, &y);
+ *px = x + 1.5; *py = y + 2.0 / sqrt(3.0); break;
+ case 9: if (lcd > 2)
+ {
+ rotate(300.0, &x, &y);
+ *px = x + 1.5; *py = y + 1.0 / sqrt(3.0);
+ }
+ else
+ {
+ rotate(0.0, &x, &y);
+ *px = x + 2.0; *py = y + 1.0 / (2.0 * sqrt(3.0));
+ }
+ break;
+
+ case 10: rotate(60.0, &x, &y);
+ *px = x + 2.5; *py = y + 1.0 / sqrt(3.0); break;
+ case 11: rotate(60.0, &x, &y);
+ *px = x + 3.5; *py = y + 1.0 / sqrt(3.0); break;
+ case 12: rotate(120.0, &x, &y);
+ *px = x + 3.5; *py = y + 2.0 / sqrt(3.0); break;
+ case 13: rotate(60.0, &x, &y);
+ *px = x + 4.0; *py = y + 5.0 / (2.0 * sqrt(3.0)); break;
+ case 14: rotate(0.0, &x, &y);
+ *px = x + 4.0; *py = y + 7.0 / (2.0 * sqrt(3.0)) ; break;
+ case 15: rotate(0.0, &x, &y);
+ *px = x + 5.0; *py = y + 7.0 / (2.0 * sqrt(3.0)) ; break;
+ case 16: if (lcd < 4)
+ {
+ rotate(60.0, &x, &y);
+ *px = x + 0.5; *py = y + 1.0 / sqrt(3.0);
+ }
+ else
+ {
+ rotate(0.0, &x, &y);
+ *px = x + 5.5; *py = y + 2.0 / sqrt(3.0);
+ }
+ break;
+ case 17: rotate(0.0, &x, &y);
+ *px = x + 1.0; *py = y + 1.0 / (2.0 * sqrt(3.0)); break;
+ case 18: rotate(120.0, &x, &y);
+ *px = x + 4.0; *py = y + 1.0 / (2.0 * sqrt(3.0)); break;
+ case 19: rotate(120.0, &x, &y);
+ *px = x + 4.5; *py = y + 2.0 / sqrt(3.0); break;
+ case 20: rotate(300.0, &x, &y);
+ *px = x + 5.0; *py = y + 5.0 / (2.0 * sqrt(3.0)); break;
+
+ } /* end switch statement */
+
+} /* end of dymax_point */
+
+
+static void rotate(double angle, double *x, double *y)
+{
+ /* Rotate the point to correct orientation in XY-plane. */
+
+ double ha, hx, hy ;
+
+ ha = radians(angle);
+ hx = *x;
+ hy = *y;
+ *x = hx * cos(ha) - hy * sin(ha);
+ *y = hx * sin(ha) + hy * cos(ha);
+
+} /* end rotate procedure */
+
+
+static void r2(int axis, double alpha, double *x, double *y, double *z)
+{
+ /* Rotate a 3-D point about the specified axis. */
+
+ double a, b, c;
+
+ a = *x;
+ b = *y;
+ c = *z;
+ if (axis == 1)
+ {
+ *y = b * cos(alpha) + c * sin(alpha);
+ *z = c * cos(alpha) - b * sin(alpha);
+ }
+
+ if (axis == 2)
+ {
+ *x = a * cos(alpha) - c * sin(alpha);
+ *z = a * sin(alpha) + c * cos(alpha);
+ }
+
+ if (axis == 3)
+ {
+ *x = a * cos(alpha) + b * sin(alpha);
+ *y = b * cos(alpha) - a * sin(alpha);
+ }
+
+} /* end of r2 */
+
diff --git a/hacks/glx/dymaxionmap-coords.h b/hacks/glx/dymaxionmap-coords.h
new file mode 100644
index 0000000..fad4a04
--- /dev/null
+++ b/hacks/glx/dymaxionmap-coords.h
@@ -0,0 +1,6 @@
+#ifndef __DYMAXIONMAP_COORDS_H__
+#define __DYMAXIONMAP_COORDS_H__
+
+void dymaxion_convert (double lng, double lat, double *x, double *y);
+
+#endif /* __DYMAXIONMAP_COORDS_H__ */
diff --git a/hacks/glx/dymaxionmap.c b/hacks/glx/dymaxionmap.c
new file mode 100644
index 0000000..711db2e
--- /dev/null
+++ b/hacks/glx/dymaxionmap.c
@@ -0,0 +1,1654 @@
+/* dymaxionmap --- Buckminster Fuller's unwrapped icosahedral globe.
+ * Copyright (c) 2016-2018 Jamie Zawinski.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ */
+
+#define LABEL_FONT "-*-helvetica-bold-r-normal-*-*-240-*-*-*-*-*-*"
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*labelFont: " LABEL_FONT "\n"
+# define release_planet 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL /* whole file */
+
+#include "sphere.h"
+#include "normals.h"
+#include "texfont.h"
+#include "dymaxionmap-coords.h"
+
+#ifdef HAVE_XMU
+# ifndef VMS
+# include <X11/Xmu/Drawing.h>
+#else /* VMS */
+# include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#define DEF_ROTATE "True"
+#define DEF_ROLL "True"
+#define DEF_WANDER "True"
+#define DEF_TEXTURE "True"
+#define DEF_STARS "True"
+#define DEF_GRID "True"
+#define DEF_SPEED "1.0"
+#define DEF_IMAGE "BUILTIN_FLAT"
+#define DEF_IMAGE2 "NONE"
+#define DEF_FRAMES "720"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+static int do_roll;
+static int do_wander;
+static int do_texture;
+static int do_stars;
+static int do_grid;
+static int frames;
+static GLfloat speed;
+static char *which_image;
+static char *which_image2;
+
+static XrmOptionDescRec opts[] = {
+ {"-speed", ".speed", XrmoptionSepArg, 0 },
+ {"-roll", ".roll", XrmoptionNoArg, "true" },
+ {"+roll", ".roll", XrmoptionNoArg, "false" },
+ {"-wander", ".wander", XrmoptionNoArg, "true" },
+ {"+wander", ".wander", XrmoptionNoArg, "false" },
+ {"-texture", ".texture", XrmoptionNoArg, "true" },
+ {"+texture", ".texture", XrmoptionNoArg, "false" },
+ {"-stars", ".stars", XrmoptionNoArg, "true" },
+ {"+stars", ".stars", XrmoptionNoArg, "false" },
+ {"-grid", ".grid", XrmoptionNoArg, "true" },
+ {"+grid", ".grid", XrmoptionNoArg, "false" },
+ {"-flat", ".image", XrmoptionNoArg, "BUILTIN_FLAT" },
+ {"-satellite",".image", XrmoptionNoArg, "BUILTIN_SAT" },
+ {"-image", ".image", XrmoptionSepArg, 0 },
+ {"-image2", ".image2", XrmoptionSepArg, 0 },
+ {"-frames", ".frames", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&do_roll, "roll", "Roll", DEF_ROLL, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_stars, "stars", "Stars", DEF_STARS, t_Bool},
+ {&do_grid, "grid", "Grid", DEF_GRID, t_Bool},
+ {&which_image, "image", "Image", DEF_IMAGE, t_String},
+ {&which_image2,"image2", "Image2", DEF_IMAGE2, t_String},
+ {&frames, "frames", "Frames", DEF_FRAMES, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt planet_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct planet_description =
+{"planet", "init_planet", "draw_planet", NULL,
+ "draw_planet", "init_planet", "free_planet", &planet_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Buckminster Fuller's unwrapped icosahedral globe", 0, NULL};
+#endif
+
+# ifdef __GNUC__
+ __extension__ /* don't warn about "string length is greater than the length
+ ISO C89 compilers are required to support" when including
+ the following XPM file... */
+# endif
+
+#include "images/gen/earth_flat_png.h"
+#include "images/gen/earth_png.h"
+#include "images/gen/earth_night_png.h"
+#include "images/gen/ground_png.h"
+
+#include "ximage-loader.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+
+typedef struct {
+ GLXContext *glx_context;
+ GLuint starlist;
+ int starcount;
+ rotator *rot, *rot2;
+ trackball_state *trackball;
+ Bool button_down_p;
+ enum { STARTUP, FLAT, FOLD,
+ ICO, STEL_IN, AXIS, SPIN, STEL, STEL_OUT,
+ ICO2, UNFOLD } state;
+ GLfloat ratio;
+ GLuint tex1, tex2;
+ texture_font_data *font_data;
+ int loading_sw, loading_sh;
+
+ XImage *day, *night, *dusk, *cvt;
+ XImage **images; /* One image for each frame of time-of-day. */
+ int nimages;
+
+ double current_frame;
+ Bool cache_p;
+ long delay;
+
+} planetstruct;
+
+
+static planetstruct *planets = NULL;
+
+
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+/* Draw faint latitude and longitude lines into the RGBA XImage.
+ */
+static void
+add_grid_lines (XImage *image)
+{
+ int i;
+ int off = 24;
+ for (i = 0; i < 24; i++)
+ {
+ int x = (i + 0.5) * image->width / (double) 24;
+ int y;
+ for (y = 0; y < image->height; y++)
+ {
+ unsigned long rgba = XGetPixel (image, x, y);
+ int r = (rgba >> 24) & 0xFF;
+ int g = (rgba >> 16) & 0xFF;
+ int b = (rgba >> 8) & 0xFF;
+ int a = (rgba >> 0) & 0xFF;
+ int off2 = (((r + g + b) / 3) < 0x7F ? off : -off);
+ r = MAX (0, MIN (0xFF, r + off2));
+ g = MAX (0, MIN (0xFF, g + off2));
+ b = MAX (0, MIN (0xFF, b + off2));
+ XPutPixel (image, x, y, (r << 24) | (g << 16) | (b << 8) | a);
+ }
+ }
+
+ for (i = 1; i < 11; i++)
+ {
+ int y = i * image->height / (double) 12;
+ int x;
+ for (x = 0; x < image->width; x++)
+ {
+ unsigned long rgba = XGetPixel (image, x, y);
+ int r = (rgba >> 24) & 0xFF;
+ int g = (rgba >> 16) & 0xFF;
+ int b = (rgba >> 8) & 0xFF;
+ int a = (rgba >> 0) & 0xFF;
+ int off2 = (((r + g + b) / 3) < 0x7F ? off : -off);
+ r = MAX (0, MIN (0xFF, r + off2));
+ g = MAX (0, MIN (0xFF, g + off2));
+ b = MAX (0, MIN (0xFF, b + off2));
+ XPutPixel (image, x, y, (r << 24) | (g << 16) | (b << 8) | a);
+ }
+ }
+}
+
+
+static void
+adjust_brightness (XImage *image, double amount)
+{
+ uint32_t *in = (uint32_t *) image->data;
+ int i;
+ int end = image->height * image->bytes_per_line / 4;
+ for (i = 0; i < end; i++)
+ {
+ uint32_t p = *in;
+ /* #### Why is this ABGR instead of RGBA? */
+ uint32_t a = (p >> 24) & 0xFF;
+ uint32_t g = (p >> 16) & 0xFF;
+ uint32_t b = (p >> 8) & 0xFF;
+ uint32_t r = (p >> 0) & 0xFF;
+ r = MAX(0, MIN(0xFF, (long) (r * amount)));
+ g = MAX(0, MIN(0xFF, (long) (g * amount)));
+ b = MAX(0, MIN(0xFF, (long) (b * amount)));
+ p = (a << 24) | (g << 16) | (b << 8) | r;
+ *in++ = p;
+ }
+}
+
+
+static GLfloat
+vector_angle (XYZ a, XYZ b)
+{
+ double La = sqrt (a.x*a.x + a.y*a.y + a.z*a.z);
+ double Lb = sqrt (b.x*b.x + b.y*b.y + b.z*b.z);
+ double cc, angle;
+
+ if (La == 0 || Lb == 0) return 0;
+ if (a.x == b.x && a.y == b.y && a.z == b.z) return 0;
+
+ /* dot product of two vectors is defined as:
+ La * Lb * cos(angle between vectors)
+ and is also defined as:
+ ax*bx + ay*by + az*bz
+ so:
+ La * Lb * cos(angle) = ax*bx + ay*by + az*bz
+ cos(angle) = (ax*bx + ay*by + az*bz) / (La * Lb)
+ angle = acos ((ax*bx + ay*by + az*bz) / (La * Lb));
+ */
+ cc = (a.x*b.x + a.y*b.y + a.z*b.z) / (La * Lb);
+ if (cc > 1) cc = 1; /* avoid fp rounding error (1.000001 => sqrt error) */
+ angle = acos (cc);
+
+ return (angle);
+}
+
+
+/* Creates a grayscale image encoding the day/night terminator for a random
+ axial tilt.
+ */
+static XImage *
+create_daylight_mask (Display *dpy, Visual *v, int w, int h)
+{
+ XImage *image = XCreateImage (dpy, v, 8, ZPixmap, 0, 0, w, h, 8, 0);
+ int x, y;
+ XYZ sun;
+ double axial_tilt = frand(23.4) / (180/M_PI) * RANDSIGN();
+ double dusk = M_PI * 0.035;
+ sun.x = 0;
+ sun.y = cos (axial_tilt);
+ sun.z = sin (axial_tilt);
+
+ image->data = (char *) malloc (image->height * image->bytes_per_line);
+
+ for (y = 0; y < image->height; y++)
+ {
+ double lat = -M_PI_2 + (M_PI * (y / (double) image->height));
+ double cosL = cos(lat);
+ double sinL = sin(lat);
+ for (x = 0; x < image->width; x++)
+ {
+ double lon = -M_PI_2 + (M_PI * 2 * (x / (double) image->width));
+ XYZ v;
+ double a;
+ unsigned long p;
+ v.x = cos(lon) * cosL;
+ v.y = sin(lon) * cosL;
+ v.z = sinL;
+ a = vector_angle (sun, v);
+ a -= M_PI_2;
+ a = (a < -dusk ? 1 : a >= dusk ? 0 : (dusk - a) / (dusk * 2));
+ p = 0xFF & (unsigned long) (a * 0xFF);
+ XPutPixel (image, x, y, p);
+ }
+ }
+ return image;
+}
+
+
+static void
+load_images (ModeInfo *mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ int i;
+
+ if (which_image && !strcmp (which_image, "BUILTIN_FLAT"))
+ {
+ which_image = strdup("BUILTIN_FLAT");
+ which_image2 = strdup("BUILTIN_FLAT");
+ }
+ else if (which_image && !strcmp (which_image, "BUILTIN_SAT"))
+ {
+ which_image = strdup("BUILTIN_DAY");
+ which_image2 = strdup("BUILTIN_NIGHT");
+ }
+
+ if (!which_image) which_image = strdup("");
+ if (!which_image2) which_image2 = strdup("");
+
+ for (i = 0; i < 2; i++)
+ {
+ char *s = (i == 0 ? which_image : which_image2);
+ XImage *image;
+ if (!strcmp (s, "BUILTIN_DAY"))
+ image = image_data_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ earth_png, sizeof(earth_png));
+ else if (!strcmp (s, "BUILTIN_NIGHT"))
+ image = image_data_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ earth_night_png,sizeof(earth_night_png));
+ else if (!strcmp (s, "BUILTIN") ||
+ !strcmp (s, "BUILTIN_FLAT") ||
+ (i == 0 && !strcmp (s, "")))
+ image = image_data_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ earth_flat_png, sizeof(earth_flat_png));
+ else if (!strcmp (s, "NONE"))
+ image = 0;
+ else if (*s)
+ image = file_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi), s);
+ else
+ image = 0;
+
+ /* if (image) fprintf (stderr, "%s: %d: loaded %s\n", progname, i, s); */
+
+ if (i == 0)
+ gp->day = image;
+ else
+ gp->night = image;
+ }
+
+ if (gp->night && !gp->day)
+ gp->day = gp->night, gp->night = 0;
+
+ gp->nimages = frames;
+ gp->current_frame = random() % gp->nimages;
+
+ if (gp->nimages < 1)
+ gp->nimages = 1;
+
+ if (gp->nimages < 2 && gp->night)
+ {
+ XDestroyImage (gp->night);
+ gp->night = 0;
+ gp->nimages = 1;
+ }
+
+ if (! gp->night)
+ gp->nimages = 1;
+
+ if (do_grid)
+ {
+ if (gp->day) add_grid_lines (gp->day);
+ if (gp->night) add_grid_lines (gp->night);
+ }
+
+ if (gp->day && gp->night && !gp->dusk)
+ {
+ if (gp->day->width != gp->night->width ||
+ gp->day->height != gp->night->height)
+ {
+ fprintf (stderr, "%s: day and night images must be the same size"
+ " (%dx%d vs %dx%d)\n", progname,
+ gp->day->width, gp->day->height,
+ gp->night->width, gp->night->height);
+ exit (1);
+ }
+ gp->dusk = create_daylight_mask (MI_DISPLAY (mi), MI_VISUAL (mi),
+ gp->day->width, gp->day->height);
+ }
+
+ /* Make the day image brighter, because that's easier than doing it
+ with GL lights. */
+ adjust_brightness (gp->day, 1.4);
+
+ if (!strcmp (which_image, which_image2))
+ /* If day and night are the same image, make night way darker. */
+ adjust_brightness (gp->night, 0.2);
+ else if (gp->night)
+ /* Otherwise make it just a little darker. */
+ adjust_brightness (gp->night, 0.7);
+
+
+ gp->images = (XImage **) calloc (gp->nimages, sizeof(*gp->images));
+
+ /* Create 'cvt', a map that projects each pixel from Equirectangular to
+ Dymaxion. It is 2x the width/height of the source images. We iterate
+ by half pixel to make sure we hit every pixel in 'out'. It would be
+ cleaner to iterate over 'out' instead of over 'in' but
+ dymaxionmap-coords.c only goes forward. This is... not super fast.
+ */
+ {
+ double W = 5.5;
+ double H = 3 * sqrt(3)/2;
+ int x2, y2;
+ int w = gp->day->width;
+ int h = gp->day->height;
+ uint32_t *out;
+
+ gp->cvt = XCreateImage (MI_DISPLAY(mi), MI_VISUAL(mi), 32, ZPixmap, 0, 0,
+ gp->day->width*2, gp->day->height*2, 32, 0);
+ gp->cvt->data = (char *)
+ malloc (gp->cvt->height * gp->cvt->bytes_per_line);
+ out = (uint32_t *) gp->cvt->data;
+
+ for (y2 = 0; y2 < h*2; y2++)
+ {
+ double y = (double) y2/2;
+ double lat = -90 + (180 * (y / (double) h));
+ for (x2 = 0; x2 < w*2; x2++)
+ {
+ double x = (double) x2/2;
+ double lon = -180 + (360 * x / w);
+ double ox, oy;
+ dymaxion_convert (lon, lat, &ox, &oy);
+ ox = w - (w * ox / W);
+ oy = (h * oy / H);
+
+ *out++ = (((((uint32_t) ox) & 0xFFFF) << 16) |
+ ((((uint32_t) oy) & 0xFFFF)));
+ }
+ }
+ }
+
+ /* A 128 GB iPhone 6s dies at around 540 frames, ~1 GB of XImages.
+ A 16 GB iPad Air 2 dies at around 320 frames, ~640 MB.
+ Caching on mobile doesn't matter much: we can just run at 100% CPU.
+
+ On some systems it would be more efficient to cache the images inside
+ a texture on the GPU instead of moving it from RAM to GPU every few
+ frames; but on other systems, we'd just run out of GPU memory instead. */
+ {
+ unsigned long cache_size = (gp->day->width * gp->day->height * 4 *
+ gp->nimages);
+# ifdef HAVE_MOBILE
+ unsigned long max = 320 * 1024 * 1024L; /* 320 MB */
+# else
+ unsigned long max = 2 * 1024 * 1024 * 1024L; /* 2 GB */
+# endif
+ gp->cache_p = (cache_size < max);
+ }
+}
+
+
+static void
+cache_current_frame (ModeInfo *mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ XImage *blended, *dymaxion;
+ int i, x, y, w, h, end, xoff;
+ uint32_t *day, *night, *cvt, *out;
+ uint8_t *dusk;
+
+ if (gp->images[(int) gp->current_frame])
+ return;
+
+ xoff = (gp->dusk
+ ? gp->dusk->width * ((double) gp->current_frame / gp->nimages)
+ : 0);
+
+ w = gp->day->width;
+ h = gp->day->height;
+
+ if (!gp->night)
+ blended = gp->day;
+ else
+ {
+ /* Blend the foreground and background images through the dusk map.
+ */
+ blended = XCreateImage (MI_DISPLAY(mi), MI_VISUAL(mi),
+ gp->day->depth, ZPixmap, 0, 0, w, h, 32, 0);
+ if (!blended) abort();
+ blended->data = (char *) malloc (h * blended->bytes_per_line);
+ if (!blended->data) abort();
+
+ end = blended->height * blended->bytes_per_line / 4;
+ day = (uint32_t *) gp->day->data;
+ night = (uint32_t *) gp->night->data;
+ dusk = (uint8_t *) gp->dusk->data;
+ out = (uint32_t *) blended->data;
+
+ for (i = 0; i < end; i++)
+ {
+ uint32_t d = *day++;
+ uint32_t n = *night++;
+ uint32_t x = i % w;
+ uint32_t y = i / w;
+ double r = dusk[y * w + ((x + xoff) % w)] / 256.0;
+ double r2 = 1-r;
+# define ADD(M) (((unsigned long) \
+ ((((d >> M) & 0xFF) * r) + \
+ (((n >> M) & 0xFF) * r2))) \
+ << M)
+ /* #### Why is this ABGR instead of RGBA? */
+ *out++ = (0xFF << 24) | ADD(16) | ADD(8) | ADD(0);
+# undef ADD
+ }
+ }
+
+ /* Convert blended Equirectangular to Dymaxion through the 'cvt' map.
+ */
+ dymaxion = XCreateImage (MI_DISPLAY(mi), MI_VISUAL(mi),
+ gp->day->depth, ZPixmap, 0, 0, w, h, 32, 0);
+ dymaxion->data = (char *) calloc (h, dymaxion->bytes_per_line);
+
+ day = (uint32_t *) blended->data;
+ out = (uint32_t *) dymaxion->data;
+ cvt = (uint32_t *) gp->cvt->data;
+
+ for (y = 0; y < h*2; y++)
+ for (x = 0; x < w*2; x++)
+ {
+ unsigned long m = *cvt++;
+ unsigned long dx = (m >> 16) & 0xFFFF;
+ unsigned long dy = m & 0xFFFF;
+ unsigned long p = day[(y>>1) * w + (x>>1)];
+ unsigned long p2 = out[dy * w + dx];
+ if (p2 & 0xFF000000)
+ /* RGBA nonzero alpha: initialized. Average with existing,
+ otherwise the grid lines look terrible. */
+ p = (((((p>>24) & 0xFF) + ((p2>>24) & 0xFF)) >> 1) << 24 |
+ ((((p>>16) & 0xFF) + ((p2>>16) & 0xFF)) >> 1) << 16 |
+ ((((p>> 8) & 0xFF) + ((p2>> 8) & 0xFF)) >> 1) << 8 |
+ ((((p>> 0) & 0xFF) + ((p2>> 0) & 0xFF)) >> 1) << 0);
+ out[dy * w + dx] = p;
+ }
+
+ /* Fill in the triangles that are not a part of The World with the
+ color of the ocean to avoid texture-tearing on the folded edges.
+ */
+ out = (uint32_t *) dymaxion->data;
+ end = dymaxion->height * dymaxion->bytes_per_line / 4;
+ {
+ double lat = -48.44, lon = -123.39; /* R'Lyeh */
+ int x = (lon + 180) * blended->width / 360.0;
+ int y = (lat + 90) * blended->height / 180.0;
+ unsigned long ocean = XGetPixel (gp->day, x, y);
+ for (i = 0; i < end; i++)
+ {
+ uint32_t p = *out;
+ if (! (p & 0xFF000000)) /* AGBR */
+ *out = ocean;
+ out++;
+ }
+ }
+
+ if (blended != gp->day)
+ XDestroyImage (blended);
+
+ gp->images[(int) gp->current_frame] = dymaxion;
+
+ if (!gp->cache_p) /* Keep only one image around; recompute every time. */
+ {
+ i = ((int) gp->current_frame) - 1;
+ if (i < 0) i = gp->nimages - 1;
+ if (gp->images[i])
+ {
+ XDestroyImage (gp->images[i]);
+ gp->images[i] = 0;
+ }
+ }
+}
+
+
+static void
+setup_texture (ModeInfo * mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ XImage *ground;
+
+ glGenTextures (1, &gp->tex1);
+ glBindTexture (GL_TEXTURE_2D, gp->tex1);
+
+ /* Must be after glBindTexture */
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ load_images (mi);
+
+ glGenTextures (1, &gp->tex2);
+ glBindTexture (GL_TEXTURE_2D, gp->tex2);
+
+ /* Must be after glBindTexture */
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ /* The underground image can go on flat, without the dymaxion transform. */
+ ground = image_data_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ ground_png, sizeof(ground_png));
+ clear_gl_error();
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ /* glPixelStorei(GL_UNPACK_ROW_LENGTH, ground->width); */
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ ground->width, ground->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, ground->data);
+ check_gl_error ("ground texture");
+ XDestroyImage (ground);
+}
+
+
+static void
+init_stars (ModeInfo *mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ int i, j;
+ int width = MI_WIDTH(mi);
+ int height = MI_HEIGHT(mi);
+ int size = (width > height ? width : height);
+ int nstars = size * size / 80;
+ int max_size = 3;
+ GLfloat inc = 0.5;
+ int steps = max_size / inc;
+ GLfloat scale = 1;
+
+ if (MI_WIDTH(mi) > 2560) { /* Retina displays */
+ scale *= 2;
+ nstars /= 2;
+ }
+
+ gp->starlist = glGenLists(1);
+ glNewList(gp->starlist, GL_COMPILE);
+ for (j = 1; j <= steps; j++)
+ {
+ glPointSize(inc * j * scale);
+ glBegin (GL_POINTS);
+ for (i = 0; i < nstars / steps; i++)
+ {
+ GLfloat d = 0.1;
+ GLfloat r = 0.15 + frand(0.3);
+ GLfloat g = r + frand(d) - d;
+ GLfloat b = r + frand(d) - d;
+
+ GLfloat x = frand(1)-0.5;
+ GLfloat y = frand(1)-0.5;
+ GLfloat z = ((random() & 1)
+ ? frand(1)-0.5
+ : (BELLRAND(1)-0.5)/12); /* milky way */
+ d = sqrt (x*x + y*y + z*z);
+ x /= d;
+ y /= d;
+ z /= d;
+ glColor3f (r, g, b);
+ glVertex3f (x, y, z);
+ gp->starcount++;
+ }
+ glEnd ();
+ }
+ glEndList ();
+
+ check_gl_error("stars initialization");
+}
+
+
+ENTRYPOINT void
+reshape_planet (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport(0, 0, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -h, h, 5.0, 200.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0, 0.0, -40);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (h, h, h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+static void
+do_normal2 (ModeInfo *mi, Bool frontp, XYZ a, XYZ b, XYZ c)
+{
+ XYZ n = (frontp
+ ? calc_normal (a, b, c)
+ : calc_normal (b, a, c));
+ glNormal3f (n.x, n.y, n.z);
+
+# if 0
+ if (frontp && MI_IS_WIREFRAME(mi))
+ {
+ glBegin (GL_LINES);
+ glVertex3f ((a.x + b.x + c.x) / 3,
+ (a.y + b.y + c.y) / 3,
+ (a.z + b.z + c.z) / 3);
+ glVertex3f ((a.x + b.x + c.x) / 3 + n.x,
+ (a.y + b.y + c.y) / 3 + n.y,
+ (a.z + b.z + c.z) / 3 + n.z);
+ glEnd();
+ }
+# endif
+}
+
+
+static void
+triangle0 (ModeInfo *mi, Bool frontp, GLfloat stel_ratio, int facemask,
+ XYZ *corners_ret)
+{
+ /* Render a triangle as six sub-triangles.
+ Facemask bits 0-5 indicate which sub-triangle to draw.
+
+ A
+ / \
+ / | \
+ / | \
+ / 0 | 1 \
+ E /_ | _\ F
+ / \_ | _/ \
+ / 5 \D/ 2 \
+ / / | \ \
+ / / 4 | 3 \ \
+ / / | \ \
+ B ----------------------- C
+ G
+ */
+
+ Bool wire = MI_IS_WIREFRAME(mi);
+ GLfloat h = sqrt(3) / 2;
+ GLfloat h2 = sqrt(h*h - (h/2)*(h/2)) - 0.5;
+ XYZ A, B, C, D, E, F, G;
+ XYZ tA, tB, tC, tD, tE, tF, tG;
+ XYZ a, b, c;
+ XYZ ta, tb, tc;
+ A.x = 0; A.y = h; A.z = 0;
+ B.x = -0.5, B.y = 0; B.z = 0;
+ C.x = 0.5, C.y = 0; C.z = 0;
+ D.x = 0; D.y = h/3; D.z = 0;
+ E.x = -h2; E.y = h/2; E.z = 0;
+ F.x = h2; F.y = h/2; F.z = 0;
+ G.x = 0; G.y = 0; G.z = 0;
+
+ /* When tweaking object XY to stellate, don't change texture coordinates. */
+ tA = A; tB = B; tC = C; tD = D; tE = E; tF = F; tG = G;
+
+ /* Eyeballed this to find the depth of stellation that seems to most
+ approximate a sphere.
+ */
+ D.z = 0.193 * stel_ratio;
+
+ /* We want to raise E, F and G as well but we can't just shift Z:
+ we need to keep them on the same vector from the center of the sphere,
+ which means also changing F and G's X and Y.
+ */
+ E.z = F.z = G.z = 0.132 * stel_ratio;
+ {
+ double magic_x = 0.044;
+ double magic_y = 0.028;
+ /* G.x stays 0 */
+ G.y -= sqrt (magic_x*magic_x + magic_y*magic_y) * stel_ratio;
+ E.x -= magic_x * stel_ratio;
+ E.y += magic_y * stel_ratio;
+ F.x += magic_x * stel_ratio;
+ F.y += magic_y * stel_ratio;
+ }
+
+
+ if (facemask & 1<<0)
+ {
+ a = E; b = D; c = A;
+ ta = tE; tb = tD; tc = tA;
+ do_normal2 (mi, frontp, a, b, c);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (ta.x, ta.y); glVertex3f (a.x, a.y, a.z);
+ glTexCoord2f (tb.x, tb.y); glVertex3f (b.x, b.y, b.z);
+ glTexCoord2f (tc.x, tc.y); glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+ if (facemask & 1<<1)
+ {
+ a = D; b = F; c = A;
+ ta = tD; tb = tF; tc = tA;
+ do_normal2 (mi, frontp, a, b, c);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (ta.x, ta.y); glVertex3f (a.x, a.y, a.z);
+ glTexCoord2f (tb.x, tb.y); glVertex3f (b.x, b.y, b.z);
+ glTexCoord2f (tc.x, tc.y); glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+ if (facemask & 1<<2)
+ {
+ a = D; b = C; c = F;
+ ta = tD; tb = tC; tc = tF;
+ do_normal2 (mi, frontp, a, b, c);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (ta.x, ta.y); glVertex3f (a.x, a.y, a.z);
+ glTexCoord2f (tb.x, tb.y); glVertex3f (b.x, b.y, b.z);
+ glTexCoord2f (tc.x, tc.y); glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+ if (facemask & 1<<3)
+ {
+ a = G; b = C; c = D;
+ ta = tG; tb = tC; tc = tD;
+ do_normal2 (mi, frontp, a, b, c);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (ta.x, ta.y); glVertex3f (a.x, a.y, a.z);
+ glTexCoord2f (tb.x, tb.y); glVertex3f (b.x, b.y, b.z);
+ glTexCoord2f (tc.x, tc.y); glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+ if (facemask & 1<<4)
+ {
+ a = B; b = G; c = D;
+ ta = tB; tb = tG; tc = tD;
+ do_normal2 (mi, frontp, a, b, c);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (ta.x, ta.y); glVertex3f (a.x, a.y, a.z);
+ glTexCoord2f (tb.x, tb.y); glVertex3f (b.x, b.y, b.z);
+ glTexCoord2f (tc.x, tc.y); glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+ if (facemask & 1<<5)
+ {
+ a = B; b = D; c = E;
+ ta = tB; tb = tD; tc = tE;
+ do_normal2 (mi, frontp, a, b, c);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (ta.x, ta.y); glVertex3f (a.x, a.y, a.z);
+ glTexCoord2f (tb.x, tb.y); glVertex3f (b.x, b.y, b.z);
+ glTexCoord2f (tc.x, tc.y); glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+ if (facemask & 1<<6)
+ {
+ a = E; b = D; c = A;
+ ta = tE; tb = tD; tc = tA;
+ do_normal2 (mi, frontp, a, b, c);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (ta.x, ta.y); glVertex3f (a.x, a.y, a.z);
+ glTexCoord2f (tb.x, tb.y); glVertex3f (b.x, b.y, b.z);
+ glTexCoord2f (tc.x, tc.y); glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+
+ if (corners_ret)
+ {
+ corners_ret[0] = A;
+ corners_ret[1] = B;
+ corners_ret[2] = C;
+ corners_ret[3] = D;
+ corners_ret[4] = E;
+ corners_ret[5] = F;
+ corners_ret[6] = G;
+ }
+}
+
+
+/* The segments, numbered arbitrarily from the top left:
+ ________ _ ________
+ \ /\ /\ \ |\ /
+ \ 0 / \ / \3> | \ 5 /
+ \ / 1 \ / 2 \| ..|4 \ /-6-..
+ ___________\/______\/______\/______\/______\
+ | /\ /\ /\ /\ /\
+ |7 / \ 9 / \ 11 / \ 13 / \ 15 / \
+ | / 8 \ / 10 \ / 12 \ / 14 \ / 16 \
+ |/______\/______\/______\/______\/______\
+ \ /\ / /\ /\
+ \ 17 / \ 18 / / \ 20 / \
+ \ / \ / / 19 \ / 21 \
+ \/ \/ /______\/______\
+
+ Each triangle can be connected to at most two other triangles.
+ We start from the middle, #12, and work our way to the edges.
+ Its centroid is 0,0.
+
+ (Note that dymaxionmap-coords.c uses a different numbering system.)
+ */
+static void
+triangle (ModeInfo *mi, int which, Bool frontp,
+ GLfloat fold_ratio, GLfloat stel_ratio)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ const GLfloat fg[] = { 1, 1, 1, 1 };
+ const GLfloat bg[] = { 0.3, 0.3, 0.3, 1 };
+ int a = -1, b = -1;
+ GLfloat max = acos (sqrt(5)/3);
+ GLfloat rot = -max * fold_ratio / (M_PI/180);
+ Bool wire = MI_IS_WIREFRAME(mi);
+ XYZ corners[7];
+
+ glColor3fv (fg);
+ if (!wire)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, fg);
+
+ switch (which) {
+ case 3: /* One third of the face. */
+ triangle0 (mi, frontp, stel_ratio, 1<<3 | 1<<4, corners);
+ break;
+ case 4: /* Two thirds of the face: convex. */
+ triangle0 (mi, frontp, stel_ratio, 1<<1 | 1<<2 | 1<<3 | 1<<4, corners);
+ break;
+ case 6: /* One half of the face. */
+ triangle0 (mi, frontp, stel_ratio, 1<<1 | 1<<2 | 1<<3, corners);
+ break;
+ case 7: /* One half of the face. */
+ triangle0 (mi, frontp, stel_ratio, 1<<2 | 1<<3 | 1<<4, corners);
+ break;
+ default: /* Full face. */
+ triangle0 (mi, frontp, stel_ratio, 0x3F, corners);
+ break;
+ }
+
+ if (wire)
+ {
+ char tag[20];
+ glColor3fv (bg);
+ sprintf (tag, "%d", which);
+ glPushMatrix();
+ glTranslatef (-0.1, 0.2, 0);
+ glScalef (0.005, 0.005, 0.005);
+ print_texture_string (gp->font_data, tag);
+ glPopMatrix();
+ mi->polygon_count++;
+ }
+
+
+ /* The connection hierarchy of the faces starting at the middle, #12. */
+ switch (which) {
+ case 0: break;
+ case 1: a = 0; b = -1; break;
+ case 2: a = -1; b = 3; break;
+ case 3: break;
+ case 4: a = -1; b = 5; break;
+ case 5: a = -1; b = 6; break;
+ case 7: break;
+ case 6: break;
+ case 8: a = 17; b = 7; break;
+ case 9: a = 8; b = -1; break;
+ case 10: a = 18; b = 9; break;
+ case 11: a = 10; b = 1; break;
+ case 12: a = 11; b = 13; break;
+ case 13: a = 2; b = 14; break;
+ case 14: a = 15; b = 20; break;
+ case 15: a = 4; b = 16; break;
+ case 16: break;
+ case 17: break;
+ case 18: break;
+ case 19: break;
+ case 20: a = 21; b = 19; break;
+ case 21: break;
+ default: abort(); break;
+ }
+
+ if (a != -1)
+ {
+ glPushMatrix();
+ glTranslatef (-0.5, 0, 0); /* Move model matrix to upper left */
+ glRotatef (60, 0, 0, 1);
+ glTranslatef ( 0.5, 0, 0);
+
+ glMatrixMode(GL_TEXTURE);
+ /* glPushMatrix(); */
+ glTranslatef (-0.5, 0, 0); /* Move texture matrix the same way */
+ glRotatef (60, 0, 0, 1);
+ glTranslatef ( 0.5, 0, 0);
+
+ glMatrixMode(GL_MODELVIEW);
+
+ glRotatef (rot, 1, 0, 0);
+ triangle (mi, a, frontp, fold_ratio, stel_ratio);
+
+ /* This should just be a PopMatrix on the TEXTURE stack, but
+ fucking iOS has GL_MAX_TEXTURE_STACK_DEPTH == 4! WTF!
+ So we have to undo our rotations and translations manually.
+ */
+ glMatrixMode(GL_TEXTURE);
+ /* glPopMatrix(); */
+ glTranslatef (-0.5, 0, 0);
+ glRotatef (-60, 0, 0, 1);
+ glTranslatef (0.5, 0, 0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+ }
+
+ if (b != -1)
+ {
+ glPushMatrix();
+ glTranslatef (0.5, 0, 0); /* Move model matrix to upper right */
+ glRotatef (-60, 0, 0, 1);
+ glTranslatef (-0.5, 0, 0);
+
+ glMatrixMode(GL_TEXTURE);
+ /* glPushMatrix(); */
+ glTranslatef (0.5, 0, 0); /* Move texture matrix the same way */
+ glRotatef (-60, 0, 0, 1);
+ glTranslatef (-0.5, 0, 0);
+
+ glMatrixMode(GL_MODELVIEW);
+
+ glRotatef (rot, 1, 0, 0);
+ triangle (mi, b, frontp, fold_ratio, stel_ratio);
+
+ /* See above. Grr. */
+ glMatrixMode(GL_TEXTURE);
+ /* glPopMatrix(); */
+ glTranslatef (0.5, 0, 0);
+ glRotatef (60, 0, 0, 1);
+ glTranslatef (-0.5, 0, 0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+ }
+
+
+ /* Draw a border around the edge of the world.
+ */
+ if (!wire && frontp && stel_ratio == 0 && fold_ratio < 0.95)
+ {
+ int edges = 0;
+ GLfloat c[] = { 0, 0.2, 0.5, 1 };
+ c[3] = 1-fold_ratio;
+
+ switch (which)
+ {
+ case 0: edges = 1<<0 | 1<<2; break;
+ case 1: edges = 1<<2; break;
+ case 2: edges = 1<<0; break;
+ case 3: edges = 1<<3 | 1<<4; break;
+ case 4: edges = 1<<3 | 1<<5; break;
+ case 5: edges = 1<<0 | 1<<6; break;
+ case 6: edges = 1<<2 | 1<<7; break;
+ case 16: edges = 1<<0 | 1<<2; break;
+ case 21: edges = 1<<0 | 1<<2; break;
+ case 19: edges = 1<<0 | 1<<2; break;
+ case 12: edges = 1<<1; break;
+ case 18: edges = 1<<0 | 1<<2; break;
+ case 17: edges = 1<<0 | 1<<2; break;
+ case 7: edges = 1<<8 | 1<<9; break;
+ case 9: edges = 1<<2; break;
+ default: break;
+ }
+
+ glDisable (GL_TEXTURE_2D);
+ glDisable (GL_LIGHTING);
+ glLineWidth (2);
+ glColor4fv (c);
+ glBegin (GL_LINES);
+ if (edges & 1<<0)
+ {
+ glVertex3f (corners[0].x, corners[0].y, corners[0].z);
+ glVertex3f (corners[1].x, corners[1].y, corners[1].z);
+ }
+ if (edges & 1<<1)
+ {
+ glVertex3f (corners[1].x, corners[1].y, corners[1].z);
+ glVertex3f (corners[2].x, corners[2].y, corners[2].z);
+ }
+ if (edges & 1<<2)
+ {
+ glVertex3f (corners[2].x, corners[2].y, corners[2].z);
+ glVertex3f (corners[0].x, corners[0].y, corners[0].z);
+ }
+ if (edges & 1<<3)
+ {
+ glVertex3f (corners[1].x, corners[1].y, corners[1].z);
+ glVertex3f (corners[3].x, corners[3].y, corners[3].z);
+ }
+ if (edges & 1<<4)
+ {
+ glVertex3f (corners[3].x, corners[3].y, corners[3].z);
+ glVertex3f (corners[2].x, corners[2].y, corners[2].z);
+ }
+ if (edges & 1<<5)
+ {
+ glVertex3f (corners[3].x, corners[3].y, corners[3].z);
+ glVertex3f (corners[0].x, corners[0].y, corners[0].z);
+ }
+ if (edges & 1<<6)
+ {
+ glVertex3f (corners[0].x, corners[0].y, corners[0].z);
+ glVertex3f (corners[5].x, corners[5].y, corners[5].z);
+ }
+ if (edges & 1<<7)
+ {
+ glVertex3f (corners[0].x, corners[0].y, corners[0].z);
+ glVertex3f (corners[6].x, corners[6].y, corners[6].z);
+ }
+ if (edges & 1<<8)
+ {
+ glVertex3f (corners[1].x, corners[1].y, corners[1].z);
+ glVertex3f (corners[5].x, corners[5].y, corners[5].z);
+ }
+ if (edges & 1<<9)
+ {
+ glVertex3f (corners[5].x, corners[5].y, corners[5].z);
+ glVertex3f (corners[2].x, corners[2].y, corners[2].z);
+ }
+ glEnd();
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_LIGHTING);
+ }
+}
+
+
+static void
+draw_triangles (ModeInfo *mi, GLfloat fold_ratio, GLfloat stel_ratio)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ GLfloat h = sqrt(3) / 2;
+ GLfloat c = h / 3;
+
+ glTranslatef (0, -h/3, 0); /* Center on face 12 */
+
+ /* When closed, center on midpoint of icosahedron. Eyeballed this. */
+ glTranslatef (0, 0, fold_ratio * 0.754);
+
+ glFrontFace (GL_CCW);
+
+ /* Adjust the texture matrix so that it has the same coordinate space
+ as the model. */
+
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ {
+ GLfloat texw = 5.5;
+ GLfloat texh = 3 * h;
+ GLfloat midx = 2.5;
+ GLfloat midy = 3 * c;
+ glScalef (1/texw, -1/texh, 1);
+ glTranslatef (midx, midy, 0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+
+
+
+ /* Front faces */
+
+ if (wire)
+ glDisable (GL_TEXTURE_2D);
+ else if (do_texture)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, gp->tex1);
+ }
+ else
+ glDisable (GL_TEXTURE_2D);
+
+ triangle (mi, 12, True, fold_ratio, stel_ratio);
+
+ /* Back faces */
+
+ if (wire)
+ glDisable (GL_TEXTURE_2D);
+ else if (do_texture)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, gp->tex2);
+ }
+ else
+ glDisable (GL_TEXTURE_2D);
+
+ glFrontFace (GL_CW);
+
+ triangle (mi, 12, False, fold_ratio, 0);
+
+ glMatrixMode(GL_TEXTURE);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+}
+
+
+static void
+align_axis (ModeInfo *mi, int undo)
+{
+ /* Rotate so that an axis is lined up with the north and south poles
+ on the map, which are not in the center of their faces, or any
+ other easily computable spot. */
+
+ GLfloat r1 = 20.5;
+ GLfloat r2 = 28.5;
+
+ if (undo)
+ {
+ glRotatef (-r2, 0, 1, 0);
+ glRotatef ( r2, 1, 0, 0);
+ glRotatef (-r1, 1, 0, 0);
+ }
+ else
+ {
+ glRotatef (r1, 1, 0, 0);
+ glRotatef (-r2, 1, 0, 0);
+ glRotatef ( r2, 0, 1, 0);
+ }
+}
+
+
+static void
+draw_axis (ModeInfo *mi)
+{
+ GLfloat s;
+ glDisable (GL_TEXTURE_2D);
+ glDisable (GL_LIGHTING);
+ glPushMatrix();
+
+ align_axis (mi, 0);
+ glTranslatef (0.34, 0.39, -0.61);
+
+ s = 0.96;
+ glScalef (s, s, s); /* tighten up the enclosing sphere */
+
+ glLineWidth (1);
+ glColor3f (0.5, 0.5, 0);
+
+ glRotatef (90, 1, 0, 0); /* unit_sphere is off by 90 */
+ glRotatef (9.5, 0, 1, 0); /* line up the time zones */
+ glFrontFace (GL_CCW);
+ unit_sphere (12, 24, True);
+ glBegin(GL_LINES);
+ glVertex3f(0, -2, 0);
+ glVertex3f(0, 2, 0);
+ glEnd();
+
+ glPopMatrix();
+}
+
+
+
+
+ENTRYPOINT Bool
+planet_handle_event (ModeInfo *mi, XEvent *event)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, gp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &gp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+ {
+ int i;
+ double cf = gp->current_frame;
+
+ /* Switch between the satellite and flat map, preserving position. */
+ if (gp->day) XDestroyImage (gp->day);
+ if (gp->night) XDestroyImage (gp->night);
+ if (gp->cvt) XDestroyImage (gp->cvt);
+ gp->day = 0;
+ gp->night = 0;
+ gp->cvt = 0;
+
+ for (i = 0; i < gp->nimages; i++)
+ if (gp->images[i]) XDestroyImage (gp->images[i]);
+ free (gp->images);
+ gp->images = 0;
+
+ which_image = strdup (!strcmp (which_image, "BUILTIN_DAY")
+ ? "BUILTIN_FLAT" : "BUILTIN_DAY");
+ which_image2 = strdup (!strcmp (which_image2, "BUILTIN_NIGHT")
+ ? "BUILTIN_FLAT" : "BUILTIN_NIGHT");
+ load_images (mi);
+ gp->current_frame = cf;
+# if 0
+ switch (gp->state) {
+ case FLAT: case ICO: case STEL: case AXIS: case ICO2:
+ gp->ratio = 1;
+ break;
+ default:
+ break;
+ }
+# endif
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_planet (ModeInfo * mi)
+{
+ planetstruct *gp;
+ int screen = MI_SCREEN(mi);
+ Bool wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, planets);
+ gp = &planets[screen];
+
+ if ((gp->glx_context = init_GL(mi)) != NULL) {
+ reshape_planet(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ gp->state = STARTUP;
+ gp->ratio = 0;
+ gp->font_data = load_texture_font (mi->dpy, "labelFont");
+ gp->delay = MI_DELAY(mi);
+
+ {
+ double spin_speed = 0.1;
+ double wander_speed = 0.002;
+ gp->rot = make_rotator (do_roll ? spin_speed : 0,
+ do_roll ? spin_speed : 0,
+ 0, 1,
+ do_wander ? wander_speed : 0,
+ False);
+ gp->rot2 = make_rotator (0, 0, 0, 0, wander_speed, False);
+ gp->trackball = gltrackball_init (True);
+ }
+
+ if (wire)
+ do_texture = False;
+
+ if (do_texture)
+ setup_texture (mi);
+
+ if (do_stars)
+ init_stars (mi);
+
+ glEnable (GL_DEPTH_TEST);
+ glEnable (GL_NORMALIZE);
+ glEnable (GL_CULL_FACE);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1, 1, 1, 0};
+ GLfloat amb[4] = {0, 0, 0, 1};
+ GLfloat dif[4] = {1, 1, 1, 1};
+ GLfloat spc[4] = {0, 1, 1, 1};
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+}
+
+
+static GLfloat
+ease_fn (GLfloat r)
+{
+ return cos ((r/2 + 1) * M_PI) + 1; /* Smooth curve up, end at slope 1. */
+}
+
+
+static GLfloat
+ease_ratio (GLfloat r)
+{
+ GLfloat ease = 0.35;
+ if (r <= 0) return 0;
+ else if (r >= 1) return 1;
+ else if (r <= ease) return ease * ease_fn (r / ease);
+ else if (r > 1-ease) return 1 - ease * ease_fn ((1 - r) / ease);
+ else return r;
+}
+
+
+ENTRYPOINT void
+draw_planet (ModeInfo * mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ long delay = gp->delay;
+ double x, y, z;
+
+ if (!gp->glx_context)
+ return;
+
+ glDrawBuffer(GL_BACK);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glXMakeCurrent (dpy, window, *(gp->glx_context));
+
+ mi->polygon_count = 0;
+
+ if (! gp->button_down_p)
+ switch (gp->state) {
+ case STARTUP: gp->ratio += speed * 0.01; break;
+ case FLAT: gp->ratio += speed * 0.005 *
+ /* Stay flat longer if animating day and night. */
+ (gp->nimages <= 1 ? 1 : 0.3);
+ break;
+ case FOLD: gp->ratio += speed * 0.01; break;
+ case ICO: gp->ratio += speed * 0.01; break;
+ case STEL_IN: gp->ratio += speed * 0.05; break;
+ case STEL: gp->ratio += speed * 0.01; break;
+ case STEL_OUT: gp->ratio += speed * 0.07; break;
+ case ICO2: gp->ratio += speed * 0.07; break;
+ case AXIS: gp->ratio += speed * 0.02; break;
+ case SPIN: gp->ratio += speed * 0.005; break;
+ case UNFOLD: gp->ratio += speed * 0.01; break;
+ default: abort();
+ }
+
+ if (gp->ratio > 1.0)
+ {
+ gp->ratio = 0;
+ switch (gp->state) {
+ case STARTUP: gp->state = FLAT; break;
+ case FLAT: gp->state = FOLD; break;
+ case FOLD: gp->state = ICO; break;
+ case ICO: gp->state = STEL_IN; break;
+ case STEL_IN: gp->state = STEL; break;
+ case STEL:
+ {
+ int i = (random() << 9) % 7;
+ gp->state = (i < 3 ? STEL_OUT :
+ i < 6 ? SPIN : AXIS);
+ }
+ break;
+ case AXIS: gp->state = STEL_OUT; break;
+ case SPIN: gp->state = STEL_OUT; break;
+ case STEL_OUT: gp->state = ICO2; break;
+ case ICO2: gp->state = UNFOLD; break;
+ case UNFOLD: gp->state = FLAT; break;
+ default: abort();
+ }
+ }
+
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_POINT_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+
+ glPushMatrix();
+
+ gltrackball_rotate (gp->trackball);
+ glRotatef (current_device_rotation(), 0, 0, 1);
+
+# ifdef HAVE_MOBILE /* Fill more of the screen. */
+ {
+ int size = MI_WIDTH(mi) < MI_HEIGHT(mi)
+ ? MI_WIDTH(mi) : MI_HEIGHT(mi);
+ GLfloat s = (size > 768 ? 1.4 : /* iPad */
+ 2); /* iPhone */
+ glScalef (s, s, s);
+ if (MI_WIDTH(mi) < MI_HEIGHT(mi))
+ glRotatef (90, 0, 0, 1);
+ }
+# endif
+
+ if (gp->state != STARTUP)
+ {
+ get_position (gp->rot, &x, &y, &z, !gp->button_down_p);
+ x = (x - 0.5) * 3;
+ y = (y - 0.5) * 3;
+ z = 0;
+ glTranslatef(x, y, z);
+ }
+
+ if (do_roll && gp->state != STARTUP)
+ {
+ double max = 65;
+ get_position (gp->rot2, &x, &y, 0, !gp->button_down_p);
+ glRotatef (max/2 - x*max, 1, 0, 0);
+ glRotatef (max/2 - y*max, 0, 1, 0);
+ }
+
+ if (do_stars)
+ {
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_LIGHTING);
+ glPushMatrix();
+ glScalef (60, 60, 60);
+ glRotatef (90, 1, 0, 0);
+ glRotatef (35, 1, 0, 0);
+ glCallList (gp->starlist);
+ mi->polygon_count += gp->starcount;
+ glPopMatrix();
+ glClear(GL_DEPTH_BUFFER_BIT);
+ }
+
+ if (! wire)
+ {
+ glEnable (GL_LIGHTING);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ if (do_texture)
+ glEnable(GL_TEXTURE_2D);
+
+ if (do_texture /* && !gp->button_down_p */)
+ {
+ int i;
+ int prev = gp->current_frame;
+
+ /* By default, advance terminator by about an hour every 5 seconds. */
+ gp->current_frame += 0.1 * speed * (gp->nimages / 360.0);
+ while (gp->current_frame >= gp->nimages)
+ gp->current_frame -= gp->nimages;
+ i = gp->current_frame;
+
+ /* Load the current image into the texture.
+ */
+ if (i != prev || !gp->images[i])
+ {
+ double start = double_time();
+ cache_current_frame (mi);
+
+ glBindTexture (GL_TEXTURE_2D, gp->tex1);
+
+ /* Must be after glBindTexture */
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ gp->images[i]->width,
+ gp->images[i]->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE,
+ gp->images[i]->data);
+ check_gl_error ("texture");
+
+ /* If caching the image took a bunch of time, deduct that from
+ our per-frame delay to keep the timing a little smoother. */
+ delay -= 1000000 * (double_time() - start);
+ if (delay < 0) delay = 0;
+ }
+ }
+
+ glTranslatef (-0.5, -0.4, 0);
+ glScalef (2.6, 2.6, 2.6);
+
+ {
+ GLfloat fold_ratio = 0;
+ GLfloat stel_ratio = 0;
+ switch (gp->state) {
+ case FOLD: fold_ratio = gp->ratio; break;
+ case UNFOLD: fold_ratio = 1 - gp->ratio; break;
+ case ICO: case ICO2: fold_ratio = 1; break;
+ case STEL: case AXIS: case SPIN: fold_ratio = 1; stel_ratio = 1; break;
+ case STEL_IN: fold_ratio = 1; stel_ratio = gp->ratio; break;
+ case STEL_OUT: fold_ratio = 1; stel_ratio = 1 - gp->ratio; break;
+ case STARTUP: /* Tilt in from flat */
+ glRotatef (-90 * ease_ratio (1 - gp->ratio), 1, 0, 0);
+ break;
+
+ default: break;
+ }
+
+# ifdef HAVE_MOBILE /* Enlarge the icosahedron a bit to make it more visible */
+ {
+ GLfloat s = 1 + 1.3 * ease_ratio (fold_ratio);
+ glScalef (s, s, s);
+ }
+# endif
+
+ if (gp->state == SPIN)
+ {
+ align_axis (mi, 0);
+ glRotatef (ease_ratio (gp->ratio) * 360 * 3, 0, 0, 1);
+ align_axis (mi, 1);
+ }
+
+ draw_triangles (mi, ease_ratio (fold_ratio), ease_ratio (stel_ratio));
+
+ if (gp->state == AXIS)
+ draw_axis(mi);
+ }
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(dpy, window);
+
+ MI_DELAY(mi) = delay;
+}
+
+
+ENTRYPOINT void
+free_planet (ModeInfo * mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ int i;
+
+ if (gp->day) XDestroyImage (gp->day);
+ if (gp->night) XDestroyImage (gp->night);
+ if (gp->dusk) XDestroyImage (gp->dusk);
+ if (gp->cvt) XDestroyImage (gp->cvt);
+
+ for (i = 0; i < gp->nimages; i++)
+ if (gp->images[i]) XDestroyImage (gp->images[i]);
+ free (gp->images);
+
+ if (gp->glx_context) {
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(gp->glx_context));
+
+ if (glIsList(gp->starlist))
+ glDeleteLists(gp->starlist, 1);
+ }
+}
+
+
+XSCREENSAVER_MODULE_2 ("DymaxionMap", dymaxionmap, planet)
+
+#endif
diff --git a/hacks/glx/dymaxionmap.man b/hacks/glx/dymaxionmap.man
new file mode 100644
index 0000000..9f3e794
--- /dev/null
+++ b/hacks/glx/dymaxionmap.man
@@ -0,0 +1,117 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+dymaxionmap - An animation of Buckminster Fuller's unwrapped icosahedral globe.
+.SH SYNOPSIS
+.B dymaxionmap
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIratio\fP]
+[\-no-wander]
+[\-no-roll]
+[\-no-stars]
+[\-no-grid]
+[\-flat]
+[\-satellite]
+[\-image \fIfile\fP]
+[\-image2 \fIfile\fP]
+[\-frames \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Buckminster Fuller's map of the Earth projected onto the surface of an
+unfolded icosahedron. It depicts the Earth's continents as one island, or
+nearly contiguous land masses.
+
+This screen saver animates the progression of the dusk terminator across
+the flattened globe. It includes both satellite and flat-colored map
+imagery, and can load and convert other Equirectangular-projected maps.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-speed \fIratio\fP
+Speed of the animation. 0.5 means half as fast, 2 means twice as fast.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen. Default yes.
+.TP 8
+.B \-roll | \-no-roll
+Whether the object should roll randomly. Default yes.
+.TP 8
+.B \-stars | \-no-stars
+Whether to display a star field. Default yes.
+.TP 8
+.B \-grid | \-no-grid
+Whether to overlay a latitude/longitude grid over the map. Default yes.
+.TP 8
+.B \-flat
+Display a flat-colored map of the Earth. This is the default.
+.TP 8
+.B \-satellite
+Display a day-time satellite map of the Earth.
+.TP 8
+.B \-image \fIfile\fP
+An image to use for the day-time map.
+.TP 8
+.B \-image2 \fIfile\fP
+An image to use for the night-time map.
+The two images can be the same: the night-time one will be darkened.
+.TP 8
+.B \-frames \fInumber\fP
+The number of frames in the day/night animation. Default 720.
+Larger numbers are smoother, but use more memory.
+The day/night animation happens if \fIimage2\fP is set, or
+if \fIframes\fP is greater than 1.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR glplanet (1)
+.SH COPYRIGHT
+Copyright \(co 2016-2018 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+
+"Dymaxion Map" and "The Fuller Projection Map" are trademarks of
+The Buckminster Fuller Institute.
+
+The original Dymaxion Map image is copyright \(co 1982 by
+The Buckminster Fuller Institute. (This program does not use their
+imagery, only similar trigonometry.)
+
+The Dymaxion Map was covered by now-expired US Patent 2,393,676
+(Richard Buckminster Fuller, 1946).
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/e_textures.h b/hacks/glx/e_textures.h
new file mode 100644
index 0000000..7f9457e
--- /dev/null
+++ b/hacks/glx/e_textures.h
@@ -0,0 +1,1478 @@
+static unsigned char WoodTextureWidth = 199;
+static unsigned char WoodTextureHeight = 37;
+static unsigned char WoodTextureData[] =
+{
+ 84, 30, 12, 84, 26, 12, 108, 42, 28, 100, 38, 28, 108, 42, 28,
+ 108, 46, 28, 100, 38, 28, 108, 46, 28, 108, 42, 28, 108, 42, 20,
+ 108, 42, 28, 108, 38, 20, 108, 42, 20, 108, 42, 28, 116, 42, 28,
+ 108, 42, 20, 108, 46, 28, 100, 34, 12, 108, 42, 20, 108, 42, 20,
+ 108, 42, 20, 108, 38, 20, 100, 38, 20, 100, 38, 20, 108, 42, 20,
+ 108, 42, 20, 108, 38, 20, 100, 38, 20, 108, 38, 20, 100, 38, 20,
+ 108, 42, 20, 108, 42, 20, 108, 42, 28, 108, 42, 20, 108, 42, 20,
+ 100, 38, 20, 100, 38, 20, 100, 38, 20, 108, 38, 20, 116, 50, 28,
+ 108, 42, 28, 108, 42, 20, 100, 38, 20, 108, 42, 20, 108, 42, 20,
+ 108, 46, 28, 108, 42, 20, 108, 42, 20, 108, 42, 20, 100, 38, 20,
+ 108, 38, 20, 100, 38, 20, 108, 38, 20, 100, 38, 20, 100, 38, 20,
+ 108, 38, 20, 100, 38, 20, 108, 38, 20, 100, 42, 20, 108, 42, 20,
+ 108, 42, 28, 108, 42, 20, 100, 38, 20, 108, 42, 20, 100, 38, 20,
+ 100, 34, 12, 100, 38, 20, 108, 38, 20, 100, 38, 20, 108, 42, 20,
+ 108, 42, 20, 108, 42, 20, 100, 38, 20, 108, 38, 20, 100, 38, 20,
+ 100, 34, 12, 100, 38, 20, 108, 38, 20, 100, 38, 20, 108, 42, 20,
+ 100, 38, 20, 100, 34, 12, 100, 34, 12, 100, 38, 20, 108, 38, 20,
+ 100, 38, 20, 108, 38, 20, 108, 42, 20, 100, 38, 20, 108, 42, 20,
+ 108, 42, 28, 108, 46, 20, 108, 38, 20, 108, 42, 20, 108, 46, 28,
+ 108, 46, 28, 108, 42, 20, 108, 42, 20, 108, 42, 20, 100, 38, 20,
+ 108, 42, 20, 100, 38, 20, 108, 38, 20, 100, 38, 20, 108, 38, 20,
+ 108, 42, 20, 108, 46, 28, 116, 50, 28, 116, 54, 36, 116, 54, 36,
+ 116, 54, 28, 108, 46, 28, 108, 42, 20, 108, 42, 28, 108, 42, 20,
+ 108, 42, 20, 108, 46, 28, 116, 50, 28, 116, 50, 28, 116, 50, 28,
+ 116, 46, 28, 108, 42, 28, 116, 50, 36, 116, 50, 36, 100, 38, 20,
+ 108, 42, 28, 108, 38, 20, 100, 38, 20, 108, 38, 20, 108, 42, 28,
+ 108, 46, 28, 116, 46, 28, 108, 42, 28, 108, 42, 28, 108, 42, 20,
+ 108, 46, 28, 116, 50, 28, 116, 50, 28, 116, 50, 28, 116, 50, 28,
+ 108, 42, 28, 108, 42, 20, 100, 38, 20, 116, 50, 28, 108, 46, 28,
+ 108, 42, 20, 108, 42, 20, 108, 46, 28, 116, 46, 28, 108, 46, 28,
+ 108, 46, 28, 108, 46, 20, 108, 46, 28, 116, 46, 28, 108, 46, 28,
+ 116, 50, 28, 108, 46, 28, 108, 46, 28, 108, 42, 20, 116, 46, 28,
+ 108, 46, 28, 108, 42, 20, 108, 42, 28, 108, 46, 28, 116, 50, 28,
+ 116, 50, 28, 116, 50, 36, 124, 54, 36, 116, 54, 36, 116, 54, 28,
+ 116, 50, 28, 116, 50, 28, 108, 46, 28, 116, 46, 28, 108, 46, 28,
+ 116, 50, 28, 116, 46, 28, 116, 50, 28, 116, 50, 28, 116, 50, 28,
+ 116, 50, 28, 108, 46, 28, 108, 46, 20, 124, 50, 36, 116, 54, 28,
+ 124, 54, 28, 116, 54, 28, 116, 54, 28, 116, 54, 28, 124, 54, 36,
+ 124, 58, 36, 124, 50, 36, 116, 46, 28, 116, 46, 28, 116, 42, 28,
+ 116, 50, 36, 124, 66, 44, 108, 58, 36, 84, 30, 12, 100, 42, 20,
+ 116, 54, 36, 140, 82, 68, 148, 86, 68, 148, 86, 68, 156, 90, 76,
+ 148, 86, 68, 156, 86, 76, 156, 86, 68, 148, 86, 68, 156, 86, 68,
+ 156, 86, 68, 156, 86, 68, 156, 86, 68, 156, 90, 68, 156, 86, 68,
+ 156, 90, 68, 164, 94, 76, 164, 98, 84, 164, 102, 84, 164, 102, 84,
+ 164, 98, 76, 156, 94, 68, 164, 94, 76, 156, 94, 76, 164, 98, 84,
+ 164, 98, 76, 164, 98, 76, 156, 94, 76, 164, 98, 76, 164, 98, 76,
+ 164, 102, 84, 164, 102, 84, 172, 106, 84, 172, 106, 84, 164, 98, 76,
+ 164, 94, 68, 164, 94, 68, 164, 98, 76, 172, 106, 84, 164, 98, 76,
+ 164, 98, 76, 164, 94, 68, 164, 94, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 102, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 94, 68, 164, 98, 76, 164, 98, 76, 164, 102, 76,
+ 164, 94, 76, 156, 94, 68, 172, 102, 84, 172, 106, 84, 172, 102, 84,
+ 164, 98, 76, 164, 102, 76, 172, 102, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 102, 84, 164, 102, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 172, 102, 76, 164, 98, 76,
+ 164, 94, 76, 156, 94, 68, 164, 98, 76, 164, 102, 76, 164, 98, 76,
+ 164, 98, 76, 164, 94, 76, 156, 94, 68, 164, 94, 76, 164, 102, 76,
+ 172, 106, 84, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 102, 76, 172, 102, 84,
+ 172, 106, 84, 172, 110, 84, 180, 110, 92, 172, 110, 84, 172, 110, 84,
+ 180, 114, 92, 188, 122, 100, 188, 122, 100, 188, 122, 100, 188, 118, 92,
+ 180, 110, 92, 172, 106, 84, 172, 106, 84, 172, 106, 84, 180, 114, 92,
+ 188, 118, 100, 188, 118, 100, 180, 118, 100, 188, 122, 108, 188, 126, 108,
+ 188, 118, 100, 196, 130, 108, 204, 134, 116, 188, 126, 108, 196, 122, 108,
+ 180, 118, 100, 180, 110, 92, 180, 114, 100, 180, 118, 100, 188, 118, 100,
+ 188, 122, 108, 188, 118, 100, 188, 118, 100, 180, 118, 100, 188, 118, 100,
+ 180, 118, 100, 180, 118, 100, 180, 118, 100, 180, 114, 92, 180, 114, 92,
+ 172, 110, 92, 172, 106, 84, 180, 114, 92, 172, 106, 92, 172, 102, 84,
+ 172, 106, 84, 172, 110, 92, 180, 110, 84, 172, 110, 92, 172, 106, 84,
+ 172, 102, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 102, 84,
+ 164, 102, 84, 164, 102, 76, 172, 106, 84, 172, 110, 92, 180, 110, 92,
+ 172, 110, 84, 172, 114, 92, 180, 114, 92, 180, 110, 92, 172, 110, 92,
+ 172, 106, 92, 172, 106, 84, 172, 106, 84, 164, 102, 84, 180, 114, 100,
+ 180, 114, 92, 180, 118, 100, 180, 118, 100, 180, 114, 92, 172, 110, 92,
+ 172, 106, 84, 172, 106, 84, 180, 110, 92, 180, 114, 92, 180, 114, 92,
+ 172, 110, 92, 172, 110, 84, 172, 110, 92, 180, 114, 92, 180, 118, 100,
+ 196, 126, 100, 196, 122, 108, 196, 126, 108, 196, 130, 116, 196, 134, 116,
+ 204, 142, 124, 164, 106, 84, 100, 42, 20, 84, 26, 4, 132, 78, 68,
+ 188, 122, 108, 188, 122, 108, 188, 126, 116, 196, 134, 116, 188, 122, 108,
+ 188, 126, 108, 188, 126, 108, 188, 122, 108, 196, 126, 108, 196, 130, 108,
+ 188, 126, 108, 188, 122, 100, 196, 126, 108, 196, 126, 108, 188, 126, 108,
+ 196, 130, 108, 196, 130, 108, 196, 134, 116, 196, 130, 108, 196, 130, 108,
+ 188, 126, 108, 196, 126, 108, 188, 126, 108, 196, 130, 108, 188, 126, 108,
+ 188, 126, 108, 196, 126, 108, 188, 126, 108, 196, 130, 108, 196, 130, 108,
+ 196, 134, 116, 204, 142, 116, 204, 134, 116, 196, 130, 108, 196, 130, 108,
+ 188, 126, 108, 196, 126, 100, 196, 134, 108, 196, 130, 108, 188, 126, 100,
+ 188, 122, 100, 188, 126, 108, 196, 126, 100, 188, 126, 108, 196, 126, 100,
+ 188, 126, 100, 196, 130, 108, 204, 134, 108, 196, 134, 116, 196, 134, 108,
+ 196, 130, 108, 196, 126, 108, 196, 130, 108, 196, 130, 108, 196, 130, 108,
+ 188, 126, 108, 196, 126, 108, 196, 134, 108, 196, 130, 108, 196, 130, 108,
+ 188, 122, 100, 196, 130, 108, 196, 130, 108, 196, 134, 108, 196, 130, 108,
+ 188, 126, 100, 196, 130, 108, 196, 134, 108, 204, 134, 116, 204, 138, 116,
+ 204, 138, 116, 204, 134, 116, 196, 130, 108, 196, 130, 108, 196, 134, 108,
+ 204, 134, 116, 196, 134, 116, 196, 134, 108, 196, 130, 108, 196, 130, 108,
+ 204, 134, 116, 204, 138, 116, 204, 138, 116, 196, 130, 108, 196, 130, 108,
+ 188, 122, 100, 180, 118, 92, 188, 118, 100, 196, 130, 108, 196, 130, 108,
+ 188, 126, 100, 188, 122, 100, 188, 122, 100, 204, 134, 108, 196, 134, 116,
+ 204, 134, 116, 196, 134, 108, 196, 130, 108, 204, 134, 108, 204, 138, 116,
+ 204, 138, 116, 212, 142, 124, 204, 142, 116, 204, 134, 116, 204, 138, 116,
+ 204, 138, 116, 204, 138, 116, 204, 134, 108, 188, 126, 108, 196, 130, 108,
+ 196, 126, 100, 188, 122, 100, 196, 130, 108, 204, 138, 116, 212, 146, 124,
+ 204, 142, 116, 204, 138, 116, 212, 146, 124, 212, 142, 124, 204, 138, 124,
+ 204, 138, 124, 204, 138, 124, 204, 138, 116, 212, 142, 124, 204, 138, 124,
+ 196, 130, 116, 204, 134, 116, 204, 138, 116, 204, 138, 124, 204, 138, 116,
+ 204, 138, 124, 204, 134, 116, 204, 138, 124, 212, 142, 124, 204, 138, 116,
+ 196, 134, 116, 196, 130, 108, 196, 134, 116, 204, 138, 116, 204, 142, 124,
+ 212, 142, 124, 204, 138, 116, 204, 138, 116, 204, 138, 116, 204, 138, 116,
+ 204, 138, 124, 204, 142, 124, 204, 142, 116, 204, 138, 124, 196, 134, 108,
+ 196, 134, 116, 196, 134, 116, 196, 130, 116, 196, 130, 108, 188, 126, 108,
+ 196, 126, 108, 188, 130, 108, 188, 126, 108, 188, 122, 100, 180, 118, 100,
+ 188, 118, 100, 188, 126, 108, 196, 130, 108, 196, 126, 108, 188, 126, 108,
+ 188, 122, 100, 188, 122, 108, 188, 126, 108, 196, 126, 108, 196, 130, 108,
+ 188, 126, 108, 196, 126, 108, 188, 126, 108, 196, 134, 108, 196, 134, 116,
+ 196, 134, 108, 196, 130, 108, 196, 126, 108, 188, 122, 108, 188, 122, 100,
+ 188, 122, 100, 196, 130, 108, 196, 130, 100, 196, 130, 108, 196, 130, 100,
+ 188, 130, 108, 196, 130, 108, 196, 134, 108, 204, 138, 116, 204, 130, 108,
+ 204, 134, 116, 204, 134, 116, 204, 134, 116, 204, 138, 124, 204, 146, 124,
+ 156, 102, 84, 84, 26, 4, 84, 26, 4, 116, 58, 36, 164, 106, 92,
+ 164, 102, 84, 164, 106, 92, 172, 110, 92, 156, 98, 84, 172, 102, 84,
+ 172, 102, 84, 180, 110, 92, 180, 118, 100, 180, 118, 100, 180, 110, 92,
+ 180, 110, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 172, 106, 92,
+ 172, 106, 84, 172, 106, 84, 172, 106, 92, 172, 110, 92, 172, 110, 92,
+ 172, 106, 84, 172, 106, 84, 164, 102, 84, 164, 102, 84, 172, 102, 76,
+ 164, 102, 84, 172, 106, 84, 172, 106, 84, 172, 110, 92, 172, 110, 84,
+ 180, 110, 92, 172, 110, 84, 180, 110, 92, 172, 110, 84, 172, 106, 84,
+ 172, 110, 84, 180, 110, 92, 172, 106, 84, 172, 102, 84, 164, 102, 84,
+ 172, 102, 76, 172, 102, 84, 172, 102, 84, 164, 102, 76, 164, 94, 76,
+ 172, 102, 84, 172, 110, 92, 172, 110, 84, 172, 102, 84, 164, 98, 76,
+ 172, 102, 76, 172, 106, 84, 172, 110, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 180, 114, 92, 180, 114, 92, 172, 110, 84, 172, 106, 84,
+ 172, 102, 76, 172, 110, 84, 172, 110, 84, 172, 102, 84, 172, 102, 84,
+ 172, 106, 84, 180, 110, 92, 172, 110, 84, 180, 118, 92, 180, 114, 92,
+ 180, 110, 92, 172, 110, 84, 180, 110, 92, 180, 114, 92, 180, 118, 92,
+ 188, 122, 100, 188, 118, 100, 180, 114, 92, 180, 118, 92, 180, 114, 92,
+ 180, 118, 92, 188, 118, 100, 180, 118, 92, 180, 114, 92, 180, 118, 92,
+ 180, 110, 84, 180, 110, 92, 180, 118, 92, 188, 122, 100, 188, 114, 100,
+ 180, 114, 92, 180, 114, 92, 196, 126, 108, 188, 126, 100, 188, 122, 100,
+ 188, 118, 100, 180, 118, 100, 180, 114, 92, 188, 118, 100, 188, 122, 100,
+ 180, 110, 92, 172, 110, 84, 180, 110, 92, 180, 114, 92, 188, 122, 100,
+ 188, 126, 100, 188, 118, 100, 180, 114, 92, 172, 110, 84, 172, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 118, 92, 188, 118, 100, 188, 122, 100,
+ 188, 122, 100, 180, 106, 92, 172, 110, 92, 172, 102, 84, 172, 102, 84,
+ 164, 94, 76, 164, 94, 76, 164, 98, 76, 164, 102, 84, 172, 102, 84,
+ 172, 106, 84, 180, 110, 92, 180, 110, 92, 180, 110, 92, 172, 106, 92,
+ 172, 106, 84, 172, 106, 92, 172, 110, 84, 164, 102, 84, 164, 98, 76,
+ 164, 94, 76, 164, 98, 76, 172, 110, 92, 180, 114, 92, 180, 118, 100,
+ 180, 118, 100, 188, 122, 100, 180, 122, 108, 188, 122, 100, 188, 122, 100,
+ 188, 122, 100, 188, 122, 100, 188, 126, 108, 188, 122, 100, 188, 126, 108,
+ 188, 122, 100, 188, 122, 100, 180, 118, 100, 180, 114, 92, 180, 114, 92,
+ 180, 118, 100, 180, 110, 92, 172, 110, 92, 172, 106, 84, 180, 110, 92,
+ 180, 118, 92, 180, 118, 100, 180, 114, 92, 180, 110, 92, 172, 110, 84,
+ 172, 110, 92, 180, 114, 92, 180, 114, 92, 180, 118, 92, 180, 118, 92,
+ 180, 114, 92, 180, 118, 92, 180, 110, 92, 180, 110, 92, 180, 114, 92,
+ 172, 110, 92, 172, 106, 84, 172, 106, 84, 172, 106, 92, 172, 110, 84,
+ 180, 110, 92, 180, 114, 92, 180, 118, 92, 180, 118, 92, 180, 118, 92,
+ 180, 118, 92, 188, 118, 100, 188, 122, 100, 180, 114, 100, 180, 110, 92,
+ 188, 114, 100, 180, 110, 92, 172, 110, 92, 180, 126, 108, 148, 98, 76,
+ 84, 26, 4, 84, 26, 12, 108, 50, 36, 164, 102, 84, 164, 98, 84,
+ 156, 94, 76, 164, 98, 84, 148, 86, 68, 156, 90, 76, 156, 94, 84,
+ 164, 90, 76, 164, 98, 84, 172, 102, 84, 164, 94, 76, 156, 90, 68,
+ 164, 94, 76, 164, 98, 84, 164, 94, 76, 164, 98, 76, 164, 98, 84,
+ 164, 98, 76, 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 164, 102, 84, 164, 94, 68, 164, 94, 76, 156, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 84, 164, 102, 84, 172, 102, 84, 164, 98, 76,
+ 164, 98, 76, 172, 102, 84, 172, 106, 84, 172, 106, 84, 180, 106, 84,
+ 172, 110, 84, 172, 106, 84, 164, 102, 76, 164, 98, 76, 164, 98, 76,
+ 164, 102, 76, 164, 102, 76, 164, 98, 76, 164, 98, 76, 172, 106, 84,
+ 180, 110, 84, 172, 106, 84, 164, 98, 76, 164, 98, 76, 172, 106, 84,
+ 180, 114, 92, 172, 106, 84, 164, 102, 76, 164, 98, 76, 172, 106, 84,
+ 180, 110, 92, 180, 114, 92, 180, 110, 92, 172, 106, 84, 172, 106, 84,
+ 180, 114, 92, 188, 118, 100, 180, 114, 92, 172, 110, 84, 180, 114, 92,
+ 180, 114, 92, 180, 114, 92, 172, 110, 92, 172, 106, 84, 164, 102, 76,
+ 172, 102, 76, 164, 102, 84, 180, 110, 84, 180, 118, 92, 188, 118, 100,
+ 188, 122, 100, 180, 118, 92, 180, 110, 92, 180, 110, 84, 172, 106, 92,
+ 180, 114, 84, 180, 114, 100, 188, 122, 100, 188, 122, 100, 180, 114, 92,
+ 172, 110, 92, 180, 114, 92, 188, 118, 92, 180, 114, 92, 180, 114, 92,
+ 180, 118, 92, 164, 102, 84, 172, 102, 84, 172, 106, 84, 172, 102, 76,
+ 164, 102, 76, 172, 102, 84, 172, 110, 84, 180, 114, 92, 172, 110, 84,
+ 172, 102, 84, 172, 106, 84, 180, 110, 84, 180, 118, 100, 188, 118, 92,
+ 180, 110, 92, 172, 106, 84, 172, 106, 84, 180, 110, 92, 188, 118, 92,
+ 180, 118, 100, 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 118, 100,
+ 180, 114, 92, 188, 122, 100, 188, 126, 108, 188, 118, 100, 172, 110, 92,
+ 172, 102, 84, 172, 106, 84, 180, 106, 92, 164, 98, 76, 172, 102, 84,
+ 172, 106, 92, 172, 106, 84, 172, 106, 84, 172, 102, 84, 172, 102, 84,
+ 172, 102, 84, 172, 106, 84, 164, 102, 84, 164, 98, 76, 164, 98, 76,
+ 172, 106, 84, 172, 110, 92, 180, 114, 92, 180, 114, 92, 180, 118, 100,
+ 188, 122, 100, 188, 122, 100, 188, 126, 108, 188, 122, 100, 188, 122, 100,
+ 188, 122, 108, 196, 126, 108, 180, 118, 92, 188, 118, 100, 180, 118, 100,
+ 180, 118, 100, 180, 114, 92, 180, 110, 92, 180, 114, 92, 180, 118, 100,
+ 180, 110, 92, 172, 110, 84, 172, 106, 92, 172, 110, 92, 188, 118, 100,
+ 180, 118, 100, 180, 114, 92, 172, 106, 84, 180, 110, 92, 180, 114, 92,
+ 172, 110, 92, 180, 114, 92, 180, 114, 100, 180, 114, 92, 172, 110, 92,
+ 172, 110, 92, 180, 114, 92, 180, 114, 92, 180, 114, 100, 180, 110, 92,
+ 172, 110, 92, 172, 110, 92, 180, 114, 92, 180, 118, 92, 172, 106, 84,
+ 180, 110, 84, 180, 118, 92, 188, 122, 100, 180, 118, 100, 180, 118, 92,
+ 180, 118, 92, 180, 114, 92, 180, 110, 92, 180, 110, 92, 188, 118, 108,
+ 188, 118, 100, 188, 122, 100, 188, 130, 108, 156, 102, 84, 84, 26, 12,
+ 84, 30, 12, 108, 46, 28, 140, 82, 68, 156, 90, 76, 156, 94, 84,
+ 156, 94, 84, 156, 94, 76, 164, 94, 76, 156, 90, 76, 164, 94, 76,
+ 156, 94, 76, 156, 90, 68, 156, 90, 68, 164, 90, 76, 156, 90, 68,
+ 148, 82, 60, 148, 78, 60, 164, 98, 76, 164, 94, 76, 156, 90, 68,
+ 156, 90, 68, 156, 94, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 156, 90, 68, 148, 86, 68, 156, 90, 68, 156, 90, 68, 156, 90, 76,
+ 164, 94, 68, 156, 94, 76, 156, 94, 68, 156, 90, 68, 156, 90, 68,
+ 172, 102, 76, 180, 114, 92, 188, 118, 92, 172, 106, 84, 180, 106, 84,
+ 172, 106, 84, 164, 98, 76, 164, 94, 68, 164, 98, 76, 172, 102, 84,
+ 172, 106, 84, 172, 102, 76, 164, 98, 76, 172, 106, 84, 180, 110, 92,
+ 172, 110, 84, 172, 98, 76, 164, 98, 76, 172, 106, 84, 180, 118, 92,
+ 180, 106, 84, 180, 106, 84, 172, 106, 84, 172, 110, 84, 180, 110, 92,
+ 180, 110, 84, 172, 102, 76, 164, 98, 76, 164, 94, 68, 172, 106, 84,
+ 180, 114, 92, 172, 106, 84, 164, 98, 76, 172, 98, 76, 172, 106, 84,
+ 172, 106, 84, 180, 106, 84, 180, 110, 84, 172, 110, 84, 180, 110, 92,
+ 180, 110, 84, 180, 110, 92, 180, 110, 84, 172, 106, 84, 188, 118, 92,
+ 188, 114, 92, 172, 106, 84, 172, 102, 76, 172, 106, 84, 188, 118, 92,
+ 188, 122, 100, 188, 118, 100, 188, 118, 92, 180, 110, 92, 180, 114, 84,
+ 180, 114, 92, 180, 110, 92, 172, 106, 84, 164, 98, 76, 172, 102, 76,
+ 180, 106, 84, 180, 114, 84, 172, 102, 76, 164, 94, 76, 172, 106, 84,
+ 180, 110, 84, 172, 106, 84, 172, 106, 84, 188, 122, 100, 188, 118, 92,
+ 180, 118, 92, 188, 118, 100, 196, 122, 100, 188, 122, 100, 180, 118, 92,
+ 180, 110, 84, 188, 114, 92, 172, 110, 84, 172, 106, 84, 180, 114, 92,
+ 188, 114, 92, 180, 114, 92, 180, 114, 84, 180, 114, 92, 180, 110, 92,
+ 180, 110, 92, 180, 110, 92, 172, 106, 84, 164, 98, 76, 172, 110, 92,
+ 188, 118, 100, 180, 118, 92, 180, 110, 92, 180, 114, 100, 180, 118, 100,
+ 172, 106, 84, 164, 94, 76, 164, 98, 76, 172, 102, 76, 164, 102, 84,
+ 164, 102, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 172, 106, 92, 180, 118, 92, 180, 118, 100,
+ 180, 114, 92, 180, 110, 92, 180, 114, 92, 180, 114, 100, 180, 118, 92,
+ 180, 118, 100, 188, 122, 108, 188, 122, 100, 188, 118, 100, 180, 114, 92,
+ 180, 114, 92, 172, 110, 92, 172, 110, 92, 172, 106, 84, 188, 122, 100,
+ 180, 114, 100, 172, 106, 84, 172, 110, 84, 180, 114, 92, 180, 114, 92,
+ 180, 110, 92, 172, 110, 92, 172, 106, 84, 172, 110, 92, 180, 114, 92,
+ 180, 118, 100, 180, 114, 92, 172, 110, 92, 172, 110, 92, 180, 110, 92,
+ 164, 106, 84, 172, 106, 84, 172, 110, 84, 172, 110, 92, 172, 110, 92,
+ 180, 110, 84, 172, 110, 92, 172, 110, 84, 180, 110, 92, 180, 110, 92,
+ 180, 114, 92, 180, 118, 92, 180, 118, 92, 180, 118, 100, 188, 118, 92,
+ 188, 118, 100, 180, 110, 92, 180, 110, 92, 188, 118, 100, 188, 118, 100,
+ 180, 118, 100, 180, 122, 108, 148, 90, 68, 84, 30, 12, 92, 34, 12,
+ 116, 58, 44, 156, 90, 76, 156, 94, 76, 156, 94, 76, 156, 90, 76,
+ 148, 86, 68, 156, 90, 76, 148, 86, 68, 156, 86, 68, 156, 86, 68,
+ 156, 90, 68, 156, 90, 76, 156, 90, 68, 156, 86, 68, 148, 78, 60,
+ 140, 74, 52, 148, 82, 68, 148, 82, 60, 148, 86, 68, 156, 90, 68,
+ 156, 94, 76, 164, 98, 76, 164, 98, 84, 164, 98, 76, 148, 86, 68,
+ 156, 86, 68, 156, 90, 68, 156, 90, 76, 156, 94, 68, 156, 94, 76,
+ 164, 94, 76, 164, 98, 76, 172, 102, 76, 164, 98, 76, 172, 102, 76,
+ 172, 106, 84, 180, 110, 92, 172, 106, 84, 164, 98, 76, 172, 102, 76,
+ 172, 102, 84, 164, 94, 68, 164, 94, 76, 172, 102, 76, 180, 110, 84,
+ 180, 110, 92, 164, 98, 76, 172, 102, 76, 172, 106, 84, 172, 102, 76,
+ 164, 98, 76, 164, 98, 76, 172, 102, 76, 180, 110, 92, 180, 110, 92,
+ 172, 110, 84, 172, 106, 84, 180, 106, 84, 180, 114, 84, 180, 110, 92,
+ 172, 102, 84, 164, 98, 76, 156, 94, 68, 172, 106, 84, 188, 114, 92,
+ 180, 110, 84, 172, 106, 84, 172, 102, 76, 172, 106, 84, 180, 110, 84,
+ 172, 106, 84, 172, 106, 84, 180, 110, 84, 180, 110, 92, 180, 114, 84,
+ 172, 110, 84, 172, 106, 84, 172, 106, 84, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 90, 68, 164, 98, 76, 172, 102, 84, 172, 106, 76,
+ 172, 102, 76, 172, 106, 84, 172, 106, 84, 180, 110, 84, 180, 114, 92,
+ 188, 114, 92, 180, 110, 84, 180, 110, 92, 180, 114, 92, 172, 106, 84,
+ 180, 114, 92, 172, 106, 84, 164, 94, 68, 172, 106, 84, 180, 114, 92,
+ 188, 118, 92, 196, 126, 100, 188, 122, 100, 188, 122, 100, 188, 118, 92,
+ 180, 118, 92, 188, 118, 100, 188, 118, 92, 180, 114, 92, 172, 106, 84,
+ 180, 114, 92, 180, 106, 84, 172, 102, 76, 172, 102, 76, 172, 106, 84,
+ 172, 102, 84, 172, 106, 84, 180, 110, 84, 172, 102, 84, 164, 102, 84,
+ 172, 102, 84, 164, 94, 76, 156, 90, 68, 164, 94, 76, 180, 106, 92,
+ 172, 102, 84, 164, 98, 84, 180, 110, 84, 180, 110, 92, 164, 98, 84,
+ 164, 94, 76, 164, 98, 76, 164, 98, 84, 172, 98, 76, 164, 102, 84,
+ 164, 102, 84, 172, 102, 84, 164, 106, 84, 172, 106, 92, 172, 106, 92,
+ 172, 110, 92, 180, 110, 84, 180, 118, 100, 188, 118, 100, 180, 118, 100,
+ 180, 114, 92, 172, 114, 92, 180, 110, 92, 180, 110, 92, 180, 114, 92,
+ 180, 118, 100, 180, 118, 92, 180, 114, 100, 180, 114, 92, 180, 110, 92,
+ 172, 110, 92, 180, 110, 92, 172, 114, 92, 188, 118, 100, 180, 114, 92,
+ 172, 110, 92, 172, 106, 84, 172, 110, 92, 172, 110, 92, 172, 110, 84,
+ 164, 102, 84, 172, 102, 84, 172, 110, 92, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 110, 92, 172, 106, 84, 172, 106, 84, 172, 110, 92,
+ 180, 110, 92, 180, 114, 92, 180, 114, 92, 180, 118, 100, 180, 114, 92,
+ 180, 114, 100, 180, 114, 92, 180, 114, 92, 180, 118, 92, 188, 118, 92,
+ 188, 122, 92, 180, 122, 100, 188, 122, 100, 180, 122, 100, 188, 118, 100,
+ 196, 122, 100, 188, 118, 100, 196, 122, 108, 180, 114, 100, 180, 114, 100,
+ 180, 126, 108, 148, 98, 76, 92, 34, 12, 84, 26, 12, 116, 58, 36,
+ 148, 90, 76, 148, 90, 76, 140, 82, 68, 148, 82, 68, 140, 78, 60,
+ 156, 86, 68, 148, 86, 68, 156, 90, 68, 156, 90, 76, 164, 94, 76,
+ 156, 90, 76, 156, 90, 68, 148, 82, 68, 148, 78, 60, 140, 78, 60,
+ 156, 86, 68, 148, 86, 68, 156, 86, 68, 156, 90, 68, 156, 94, 76,
+ 164, 94, 76, 156, 94, 76, 148, 86, 68, 148, 82, 60, 148, 86, 68,
+ 156, 90, 68, 156, 90, 76, 156, 90, 68, 156, 90, 68, 156, 94, 76,
+ 164, 102, 76, 172, 102, 84, 172, 102, 76, 172, 106, 84, 180, 110, 84,
+ 180, 114, 84, 180, 110, 84, 172, 102, 76, 180, 106, 84, 172, 106, 76,
+ 172, 98, 76, 164, 98, 68, 172, 106, 76, 172, 106, 84, 180, 110, 84,
+ 172, 98, 76, 180, 106, 84, 180, 110, 84, 180, 110, 84, 172, 98, 76,
+ 172, 98, 76, 180, 106, 84, 180, 114, 84, 188, 114, 92, 180, 110, 84,
+ 180, 110, 84, 180, 110, 84, 180, 114, 92, 180, 110, 84, 172, 106, 84,
+ 164, 98, 68, 164, 94, 68, 180, 106, 84, 188, 118, 92, 180, 114, 92,
+ 180, 110, 84, 180, 110, 84, 180, 110, 92, 180, 110, 84, 172, 106, 76,
+ 180, 106, 84, 180, 110, 84, 180, 114, 92, 188, 114, 92, 180, 110, 84,
+ 180, 106, 84, 172, 106, 76, 180, 106, 84, 188, 114, 92, 180, 114, 84,
+ 180, 110, 84, 180, 114, 92, 188, 118, 92, 188, 118, 92, 180, 110, 84,
+ 180, 106, 84, 172, 106, 76, 180, 106, 84, 188, 114, 92, 188, 118, 92,
+ 180, 118, 92, 188, 118, 92, 196, 122, 100, 172, 106, 84, 188, 114, 84,
+ 172, 106, 84, 164, 98, 68, 172, 102, 76, 180, 106, 84, 180, 110, 84,
+ 188, 118, 92, 188, 122, 92, 188, 114, 92, 180, 110, 92, 180, 114, 84,
+ 188, 118, 92, 188, 118, 92, 180, 110, 84, 172, 102, 84, 188, 122, 92,
+ 180, 110, 84, 164, 102, 76, 172, 102, 76, 172, 98, 76, 172, 102, 76,
+ 172, 102, 76, 180, 106, 84, 180, 110, 92, 180, 106, 84, 180, 106, 84,
+ 172, 102, 76, 164, 90, 76, 172, 98, 76, 180, 110, 92, 172, 102, 76,
+ 172, 102, 84, 180, 106, 84, 180, 110, 84, 172, 102, 84, 172, 98, 76,
+ 164, 94, 76, 164, 98, 76, 164, 98, 76, 172, 98, 84, 164, 98, 76,
+ 164, 102, 84, 172, 106, 84, 172, 106, 84, 172, 110, 92, 180, 114, 92,
+ 180, 114, 92, 188, 122, 100, 188, 122, 100, 188, 122, 100, 180, 118, 100,
+ 172, 106, 92, 172, 106, 84, 164, 106, 84, 172, 106, 84, 180, 114, 92,
+ 180, 110, 92, 172, 110, 84, 172, 110, 92, 180, 110, 92, 172, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 118, 92, 172, 110, 92, 172, 106, 84,
+ 172, 106, 84, 172, 110, 92, 172, 106, 84, 164, 102, 84, 164, 94, 76,
+ 164, 98, 76, 172, 110, 92, 180, 114, 92, 172, 106, 92, 172, 106, 92,
+ 172, 110, 84, 172, 106, 92, 164, 102, 84, 172, 110, 92, 180, 110, 92,
+ 172, 110, 92, 180, 114, 92, 180, 114, 92, 180, 118, 100, 180, 114, 92,
+ 180, 118, 92, 180, 114, 92, 188, 114, 92, 180, 118, 92, 180, 118, 100,
+ 180, 118, 92, 180, 118, 100, 188, 118, 92, 180, 118, 92, 180, 110, 92,
+ 180, 106, 92, 180, 110, 92, 172, 106, 92, 172, 106, 84, 172, 114, 92,
+ 140, 90, 68, 84, 26, 12, 84, 30, 12, 116, 58, 44, 156, 90, 76,
+ 156, 90, 76, 148, 86, 68, 148, 86, 76, 148, 86, 68, 156, 90, 76,
+ 156, 90, 76, 164, 94, 84, 164, 98, 76, 164, 94, 76, 156, 90, 68,
+ 156, 86, 68, 156, 86, 60, 156, 90, 68, 156, 90, 76, 164, 94, 76,
+ 156, 94, 68, 156, 94, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 156, 94, 76, 156, 94, 68, 148, 78, 60, 148, 86, 68, 156, 90, 68,
+ 156, 90, 68, 148, 86, 68, 156, 86, 68, 156, 90, 68, 164, 98, 76,
+ 164, 94, 68, 172, 98, 76, 180, 106, 84, 188, 118, 92, 188, 118, 92,
+ 188, 118, 100, 180, 114, 92, 180, 114, 84, 180, 106, 84, 172, 102, 76,
+ 172, 98, 76, 172, 106, 84, 180, 106, 84, 164, 98, 68, 172, 102, 76,
+ 180, 114, 84, 196, 122, 100, 188, 118, 92, 172, 106, 76, 172, 102, 76,
+ 180, 110, 84, 188, 122, 92, 188, 118, 92, 188, 114, 92, 180, 110, 84,
+ 188, 114, 84, 188, 114, 92, 180, 114, 84, 180, 106, 84, 172, 102, 76,
+ 164, 94, 68, 180, 110, 84, 188, 118, 92, 188, 118, 92, 188, 114, 92,
+ 180, 114, 92, 188, 114, 84, 180, 114, 92, 180, 106, 84, 180, 110, 84,
+ 180, 114, 84, 188, 114, 92, 180, 114, 84, 180, 110, 92, 180, 110, 84,
+ 180, 106, 84, 180, 114, 84, 188, 114, 92, 188, 114, 92, 180, 114, 92,
+ 188, 118, 92, 196, 122, 100, 188, 122, 92, 180, 114, 92, 188, 114, 92,
+ 180, 110, 84, 180, 114, 84, 188, 118, 92, 188, 122, 92, 188, 118, 92,
+ 188, 118, 92, 188, 122, 92, 188, 118, 92, 196, 122, 100, 188, 118, 92,
+ 188, 114, 92, 188, 122, 100, 196, 126, 100, 188, 118, 92, 188, 114, 92,
+ 188, 114, 92, 180, 114, 84, 180, 110, 84, 180, 110, 84, 188, 118, 92,
+ 188, 118, 92, 188, 118, 92, 180, 114, 84, 196, 126, 100, 188, 114, 92,
+ 180, 106, 84, 172, 106, 76, 172, 102, 76, 172, 102, 76, 172, 106, 76,
+ 180, 110, 84, 188, 118, 92, 180, 110, 92, 180, 114, 92, 180, 106, 92,
+ 164, 98, 76, 180, 106, 84, 188, 114, 100, 180, 106, 84, 180, 110, 92,
+ 180, 110, 92, 188, 114, 92, 180, 110, 92, 172, 106, 84, 172, 98, 76,
+ 172, 98, 76, 164, 98, 76, 164, 102, 76, 164, 102, 84, 172, 102, 84,
+ 172, 106, 84, 172, 110, 92, 180, 118, 92, 180, 114, 100, 180, 118, 100,
+ 188, 122, 108, 188, 126, 100, 188, 118, 100, 180, 114, 92, 172, 106, 84,
+ 164, 102, 84, 172, 102, 84, 172, 110, 92, 172, 110, 92, 172, 110, 84,
+ 172, 106, 92, 172, 106, 84, 172, 110, 84, 172, 110, 92, 180, 110, 92,
+ 180, 114, 92, 180, 110, 92, 172, 110, 92, 172, 110, 92, 180, 110, 92,
+ 172, 110, 92, 180, 110, 84, 164, 102, 84, 164, 98, 76, 156, 94, 76,
+ 172, 106, 84, 180, 114, 92, 172, 106, 84, 164, 102, 84, 172, 110, 84,
+ 172, 106, 84, 164, 98, 76, 172, 102, 84, 164, 106, 84, 172, 106, 84,
+ 172, 106, 92, 172, 110, 92, 180, 110, 92, 180, 110, 92, 172, 110, 92,
+ 180, 106, 84, 172, 110, 84, 172, 110, 84, 180, 110, 84, 172, 110, 84,
+ 172, 110, 84, 172, 106, 84, 172, 106, 84, 180, 106, 92, 180, 106, 84,
+ 188, 114, 100, 188, 118, 100, 180, 114, 100, 180, 126, 108, 148, 90, 68,
+ 84, 30, 12, 92, 34, 12, 124, 66, 44, 156, 98, 84, 164, 102, 84,
+ 164, 98, 84, 164, 98, 84, 156, 94, 76, 164, 98, 84, 164, 98, 76,
+ 156, 90, 76, 156, 94, 76, 164, 94, 76, 156, 90, 76, 156, 90, 68,
+ 156, 86, 68, 156, 86, 68, 164, 94, 68, 156, 90, 76, 156, 94, 68,
+ 156, 90, 76, 164, 98, 76, 164, 102, 84, 172, 106, 84, 172, 106, 84,
+ 172, 102, 84, 148, 82, 60, 148, 86, 68, 156, 90, 68, 156, 90, 68,
+ 148, 86, 68, 148, 82, 60, 156, 86, 68, 156, 94, 68, 156, 86, 68,
+ 164, 98, 68, 180, 110, 84, 188, 118, 92, 196, 122, 92, 196, 122, 100,
+ 188, 118, 92, 188, 118, 92, 180, 110, 92, 172, 106, 76, 172, 106, 76,
+ 180, 106, 84, 180, 106, 84, 172, 102, 76, 180, 110, 84, 188, 118, 92,
+ 196, 126, 100, 188, 118, 100, 180, 110, 84, 172, 106, 84, 188, 114, 84,
+ 188, 122, 100, 196, 122, 100, 188, 118, 92, 180, 114, 84, 180, 114, 92,
+ 188, 118, 92, 188, 118, 92, 180, 110, 84, 180, 106, 84, 172, 102, 76,
+ 180, 110, 84, 196, 122, 100, 188, 122, 92, 188, 118, 92, 188, 118, 92,
+ 188, 122, 92, 188, 114, 92, 188, 114, 84, 180, 114, 92, 188, 114, 84,
+ 180, 110, 92, 180, 114, 84, 188, 114, 92, 180, 114, 84, 188, 114, 92,
+ 180, 114, 92, 188, 114, 92, 180, 114, 84, 180, 110, 84, 180, 110, 84,
+ 188, 118, 92, 188, 114, 92, 180, 114, 84, 188, 118, 92, 180, 114, 92,
+ 188, 114, 92, 188, 122, 92, 188, 118, 100, 188, 118, 92, 188, 118, 92,
+ 196, 122, 100, 180, 114, 92, 188, 118, 92, 180, 110, 84, 180, 110, 84,
+ 196, 130, 100, 204, 134, 108, 196, 126, 100, 188, 118, 100, 188, 122, 92,
+ 188, 114, 92, 188, 114, 92, 188, 114, 92, 188, 122, 100, 196, 122, 100,
+ 196, 122, 100, 188, 118, 92, 188, 118, 100, 188, 118, 92, 180, 110, 84,
+ 180, 110, 84, 180, 110, 84, 172, 102, 76, 172, 102, 76, 180, 110, 84,
+ 180, 110, 92, 172, 106, 84, 180, 106, 84, 172, 98, 76, 164, 94, 68,
+ 172, 106, 84, 180, 110, 92, 172, 106, 84, 180, 110, 84, 180, 110, 84,
+ 180, 114, 92, 180, 110, 92, 180, 110, 92, 172, 106, 84, 180, 106, 84,
+ 172, 106, 84, 172, 102, 84, 172, 102, 76, 164, 102, 84, 172, 110, 92,
+ 180, 114, 92, 188, 118, 100, 188, 122, 100, 188, 118, 92, 188, 126, 108,
+ 188, 122, 100, 180, 118, 100, 172, 110, 92, 164, 106, 84, 172, 102, 84,
+ 172, 106, 84, 180, 114, 92, 180, 110, 92, 172, 110, 92, 172, 106, 84,
+ 172, 106, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 110, 92,
+ 172, 110, 92, 172, 110, 92, 172, 110, 84, 180, 110, 92, 172, 114, 92,
+ 180, 110, 92, 172, 106, 92, 172, 106, 84, 156, 94, 68, 172, 106, 92,
+ 180, 114, 92, 172, 102, 84, 164, 102, 84, 180, 110, 92, 172, 106, 92,
+ 164, 98, 76, 164, 102, 84, 172, 102, 84, 164, 102, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 110, 84, 172, 102, 84,
+ 172, 106, 84, 172, 106, 84, 172, 110, 84, 172, 106, 84, 164, 106, 84,
+ 172, 106, 84, 172, 102, 84, 172, 102, 84, 172, 102, 84, 180, 114, 100,
+ 188, 118, 100, 180, 118, 100, 188, 126, 100, 148, 94, 76, 92, 34, 12,
+ 92, 34, 12, 116, 62, 44, 156, 94, 76, 164, 94, 84, 156, 94, 76,
+ 156, 94, 76, 148, 86, 68, 148, 86, 76, 148, 82, 68, 148, 78, 60,
+ 148, 82, 68, 156, 90, 68, 156, 94, 76, 164, 90, 76, 156, 90, 68,
+ 148, 82, 68, 148, 82, 60, 164, 94, 76, 156, 94, 76, 156, 94, 68,
+ 164, 94, 76, 164, 102, 84, 164, 102, 84, 172, 102, 84, 164, 102, 84,
+ 156, 90, 68, 156, 90, 68, 156, 94, 76, 156, 90, 68, 148, 86, 68,
+ 148, 86, 68, 156, 90, 68, 156, 90, 68, 164, 98, 76, 172, 106, 84,
+ 180, 110, 84, 180, 110, 84, 180, 114, 92, 188, 118, 92, 180, 110, 84,
+ 188, 118, 92, 188, 118, 92, 180, 110, 84, 180, 106, 84, 180, 114, 84,
+ 180, 114, 84, 180, 114, 92, 188, 114, 84, 180, 114, 92, 188, 114, 84,
+ 188, 118, 92, 188, 114, 92, 180, 114, 92, 188, 114, 84, 180, 110, 84,
+ 196, 122, 100, 188, 118, 92, 188, 114, 92, 188, 114, 92, 188, 118, 92,
+ 188, 118, 92, 188, 118, 92, 180, 110, 84, 172, 106, 84, 188, 114, 92,
+ 196, 122, 100, 188, 122, 100, 196, 122, 92, 196, 122, 100, 188, 122, 100,
+ 188, 118, 92, 188, 122, 100, 188, 118, 92, 188, 118, 92, 188, 114, 92,
+ 188, 118, 92, 188, 114, 92, 188, 118, 92, 188, 122, 92, 196, 122, 100,
+ 188, 126, 100, 188, 118, 92, 180, 110, 84, 188, 114, 92, 188, 122, 100,
+ 196, 126, 100, 188, 118, 100, 196, 122, 92, 188, 114, 92, 180, 114, 92,
+ 196, 122, 92, 188, 122, 100, 188, 118, 92, 196, 122, 100, 196, 126, 100,
+ 188, 118, 92, 188, 118, 92, 172, 98, 76, 164, 94, 68, 180, 110, 92,
+ 188, 122, 92, 188, 114, 92, 180, 114, 84, 204, 130, 108, 196, 126, 100,
+ 188, 118, 92, 188, 122, 92, 196, 122, 100, 188, 122, 92, 188, 122, 92,
+ 188, 114, 92, 180, 114, 84, 180, 110, 84, 180, 110, 84, 180, 114, 92,
+ 180, 110, 84, 172, 102, 76, 172, 102, 76, 180, 106, 84, 180, 110, 92,
+ 180, 106, 84, 172, 102, 76, 172, 98, 76, 164, 94, 76, 180, 106, 84,
+ 180, 110, 92, 180, 106, 84, 172, 102, 76, 172, 98, 84, 172, 102, 76,
+ 180, 110, 84, 180, 110, 84, 180, 106, 84, 180, 110, 92, 180, 114, 92,
+ 172, 110, 92, 172, 106, 92, 172, 106, 84, 180, 110, 92, 180, 118, 100,
+ 188, 122, 100, 180, 122, 100, 188, 118, 100, 188, 126, 108, 188, 118, 100,
+ 180, 114, 92, 172, 106, 84, 172, 106, 84, 172, 110, 92, 180, 114, 92,
+ 180, 114, 92, 172, 114, 92, 180, 110, 92, 172, 106, 84, 164, 102, 84,
+ 164, 102, 84, 172, 106, 84, 172, 106, 84, 172, 106, 92, 180, 110, 84,
+ 172, 110, 92, 180, 110, 92, 172, 110, 92, 180, 110, 92, 180, 114, 92,
+ 172, 114, 92, 180, 110, 92, 164, 98, 76, 172, 110, 92, 180, 114, 92,
+ 172, 106, 84, 172, 106, 84, 172, 110, 92, 172, 106, 84, 164, 102, 84,
+ 172, 106, 84, 172, 110, 84, 172, 106, 92, 172, 106, 84, 172, 106, 84,
+ 172, 110, 92, 172, 110, 92, 180, 110, 84, 172, 106, 84, 172, 106, 84,
+ 180, 110, 84, 172, 110, 84, 172, 114, 92, 172, 110, 92, 172, 110, 84,
+ 172, 110, 84, 180, 106, 92, 172, 102, 84, 180, 106, 92, 172, 106, 92,
+ 172, 106, 92, 180, 122, 100, 148, 98, 76, 92, 34, 12, 100, 42, 28,
+ 116, 54, 36, 148, 86, 68, 148, 90, 76, 148, 86, 76, 148, 86, 76,
+ 140, 78, 60, 148, 78, 60, 140, 78, 60, 148, 78, 60, 148, 78, 60,
+ 148, 82, 60, 156, 86, 68, 156, 90, 68, 156, 90, 68, 156, 90, 68,
+ 148, 86, 68, 172, 102, 84, 164, 102, 84, 172, 102, 84, 164, 102, 84,
+ 172, 106, 84, 172, 106, 84, 164, 102, 84, 164, 98, 76, 156, 94, 76,
+ 164, 98, 76, 156, 94, 76, 164, 98, 76, 164, 94, 76, 164, 94, 76,
+ 156, 94, 76, 164, 98, 76, 180, 110, 84, 188, 114, 84, 188, 114, 92,
+ 180, 106, 84, 188, 114, 84, 188, 118, 92, 188, 114, 92, 188, 118, 92,
+ 188, 118, 92, 188, 114, 92, 180, 110, 84, 188, 114, 92, 188, 118, 92,
+ 188, 114, 92, 188, 118, 92, 188, 118, 92, 188, 114, 92, 188, 118, 92,
+ 188, 118, 92, 188, 118, 92, 188, 114, 92, 180, 110, 84, 196, 122, 100,
+ 188, 118, 92, 180, 114, 84, 188, 114, 92, 188, 122, 92, 196, 122, 100,
+ 188, 118, 92, 188, 114, 92, 180, 110, 84, 188, 118, 92, 196, 122, 100,
+ 196, 122, 92, 188, 118, 92, 188, 118, 100, 196, 122, 92, 188, 118, 92,
+ 196, 122, 100, 196, 122, 92, 196, 122, 100, 188, 122, 92, 196, 122, 100,
+ 188, 122, 92, 196, 122, 100, 196, 122, 100, 196, 122, 100, 196, 122, 92,
+ 188, 114, 92, 180, 110, 84, 188, 114, 84, 188, 118, 92, 196, 122, 92,
+ 188, 118, 92, 188, 122, 92, 188, 118, 92, 188, 114, 92, 188, 118, 92,
+ 196, 122, 92, 188, 118, 92, 188, 118, 92, 196, 126, 100, 204, 130, 108,
+ 204, 134, 108, 188, 122, 92, 180, 106, 84, 188, 114, 92, 188, 118, 92,
+ 188, 118, 92, 196, 122, 100, 204, 134, 108, 196, 130, 100, 196, 122, 100,
+ 188, 122, 92, 196, 122, 100, 196, 122, 100, 188, 118, 92, 188, 114, 92,
+ 188, 114, 84, 180, 110, 84, 180, 110, 84, 188, 114, 92, 180, 110, 84,
+ 180, 106, 84, 180, 106, 84, 188, 114, 92, 188, 118, 92, 188, 114, 92,
+ 180, 110, 92, 180, 106, 84, 172, 102, 84, 180, 110, 84, 188, 118, 92,
+ 180, 106, 84, 180, 106, 84, 172, 106, 84, 180, 106, 84, 180, 106, 92,
+ 188, 114, 92, 180, 110, 92, 180, 110, 84, 188, 114, 92, 188, 114, 100,
+ 180, 114, 92, 172, 110, 92, 180, 114, 92, 188, 122, 100, 188, 122, 108,
+ 188, 122, 100, 180, 118, 100, 188, 122, 100, 180, 118, 100, 180, 114, 92,
+ 180, 110, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 172, 110, 92,
+ 180, 110, 92, 172, 110, 84, 172, 106, 84, 164, 102, 84, 172, 102, 84,
+ 164, 106, 84, 172, 106, 84, 180, 110, 92, 172, 114, 92, 180, 110, 92,
+ 172, 110, 92, 180, 110, 92, 172, 110, 84, 172, 110, 92, 172, 110, 84,
+ 180, 110, 92, 164, 102, 84, 172, 110, 92, 180, 114, 92, 180, 114, 92,
+ 180, 110, 92, 172, 110, 84, 172, 110, 92, 172, 106, 84, 180, 114, 92,
+ 180, 110, 92, 180, 110, 92, 172, 110, 92, 172, 110, 92, 172, 110, 84,
+ 172, 110, 92, 180, 110, 92, 172, 110, 92, 180, 110, 84, 180, 114, 92,
+ 180, 114, 92, 180, 114, 92, 180, 118, 92, 180, 114, 92, 180, 114, 92,
+ 188, 118, 100, 188, 114, 92, 196, 122, 108, 188, 118, 100, 180, 118, 100,
+ 188, 130, 108, 156, 106, 84, 100, 42, 28, 84, 30, 12, 116, 54, 36,
+ 156, 90, 76, 156, 90, 76, 156, 90, 68, 156, 94, 76, 148, 86, 68,
+ 164, 94, 84, 156, 94, 76, 156, 90, 76, 148, 86, 68, 148, 78, 60,
+ 148, 78, 60, 148, 86, 68, 164, 94, 76, 164, 94, 76, 172, 98, 84,
+ 164, 98, 76, 164, 102, 76, 172, 106, 84, 180, 110, 92, 180, 118, 100,
+ 180, 118, 100, 180, 110, 92, 172, 110, 92, 164, 98, 76, 164, 94, 76,
+ 164, 98, 76, 164, 98, 84, 164, 102, 76, 164, 102, 84, 172, 102, 84,
+ 164, 102, 76, 188, 118, 92, 188, 122, 100, 196, 122, 100, 188, 114, 92,
+ 180, 114, 92, 188, 114, 92, 196, 122, 100, 196, 122, 100, 188, 118, 92,
+ 188, 114, 92, 188, 118, 92, 188, 118, 92, 188, 118, 92, 180, 110, 84,
+ 196, 122, 100, 196, 122, 100, 188, 122, 92, 196, 122, 100, 196, 126, 100,
+ 196, 122, 100, 188, 118, 92, 188, 118, 92, 196, 122, 100, 188, 118, 92,
+ 188, 114, 92, 188, 118, 92, 196, 122, 100, 196, 126, 100, 196, 122, 100,
+ 188, 118, 92, 188, 114, 84, 188, 122, 92, 196, 122, 100, 188, 122, 92,
+ 188, 118, 92, 196, 122, 100, 196, 122, 92, 188, 118, 92, 196, 122, 100,
+ 196, 126, 100, 196, 122, 100, 196, 126, 100, 196, 126, 100, 196, 126, 100,
+ 196, 122, 100, 196, 126, 100, 196, 122, 100, 196, 126, 100, 196, 122, 100,
+ 188, 118, 92, 188, 118, 100, 196, 126, 100, 196, 126, 100, 196, 122, 100,
+ 196, 126, 100, 196, 122, 100, 188, 118, 92, 188, 122, 100, 196, 122, 92,
+ 188, 114, 92, 188, 114, 92, 188, 122, 92, 188, 114, 92, 204, 130, 108,
+ 196, 126, 100, 188, 118, 92, 188, 118, 92, 188, 118, 92, 196, 122, 100,
+ 196, 126, 100, 204, 130, 108, 196, 126, 100, 196, 122, 100, 188, 118, 92,
+ 196, 122, 100, 196, 126, 100, 196, 122, 100, 188, 118, 92, 188, 114, 92,
+ 188, 114, 92, 188, 118, 92, 188, 118, 92, 188, 118, 92, 180, 114, 84,
+ 188, 114, 92, 196, 126, 100, 196, 122, 100, 188, 114, 92, 180, 110, 84,
+ 180, 106, 84, 172, 98, 76, 180, 110, 92, 188, 114, 92, 172, 102, 84,
+ 196, 126, 100, 188, 114, 92, 188, 114, 92, 188, 114, 92, 188, 114, 92,
+ 180, 110, 84, 188, 114, 92, 188, 114, 92, 188, 122, 100, 180, 118, 100,
+ 180, 114, 92, 180, 118, 100, 188, 122, 100, 188, 126, 108, 188, 122, 100,
+ 180, 118, 100, 188, 122, 100, 180, 118, 100, 180, 110, 92, 180, 114, 100,
+ 180, 118, 100, 188, 118, 100, 172, 114, 92, 172, 106, 84, 172, 110, 92,
+ 172, 106, 92, 172, 102, 84, 164, 102, 84, 172, 102, 76, 172, 106, 84,
+ 172, 106, 92, 180, 114, 92, 180, 110, 92, 180, 114, 92, 172, 110, 92,
+ 172, 110, 84, 172, 106, 84, 172, 106, 84, 172, 106, 92, 172, 110, 84,
+ 172, 106, 84, 180, 110, 92, 180, 114, 92, 180, 118, 100, 180, 118, 100,
+ 180, 110, 92, 172, 110, 92, 180, 110, 92, 180, 114, 92, 172, 114, 92,
+ 172, 110, 92, 172, 106, 84, 172, 106, 84, 172, 106, 92, 172, 110, 84,
+ 172, 106, 84, 180, 110, 84, 172, 110, 92, 180, 114, 92, 180, 114, 92,
+ 180, 118, 92, 180, 118, 92, 180, 114, 92, 180, 118, 92, 188, 114, 100,
+ 180, 110, 92, 188, 122, 108, 188, 122, 100, 180, 118, 108, 188, 126, 108,
+ 148, 90, 76, 84, 30, 12, 92, 38, 28, 140, 78, 60, 156, 90, 68,
+ 156, 90, 76, 156, 90, 68, 156, 94, 76, 164, 98, 76, 156, 94, 76,
+ 164, 94, 76, 156, 94, 68, 156, 94, 76, 156, 90, 68, 156, 86, 68,
+ 148, 86, 68, 156, 86, 68, 156, 94, 76, 164, 102, 76, 180, 110, 92,
+ 172, 102, 84, 172, 98, 84, 172, 106, 84, 180, 114, 92, 188, 122, 100,
+ 188, 114, 92, 172, 110, 92, 172, 102, 84, 164, 98, 76, 156, 90, 68,
+ 156, 86, 68, 164, 94, 76, 172, 102, 84, 172, 106, 84, 180, 110, 92,
+ 188, 114, 92, 196, 126, 100, 196, 126, 100, 188, 118, 92, 180, 110, 92,
+ 188, 118, 92, 196, 130, 108, 196, 126, 100, 196, 122, 100, 188, 126, 100,
+ 196, 126, 108, 196, 126, 100, 196, 122, 100, 180, 118, 92, 188, 114, 92,
+ 188, 118, 92, 196, 122, 100, 188, 122, 100, 188, 122, 100, 188, 118, 92,
+ 188, 118, 92, 188, 118, 92, 196, 126, 100, 188, 122, 100, 196, 122, 100,
+ 188, 122, 100, 196, 126, 100, 196, 130, 100, 196, 126, 108, 196, 130, 100,
+ 196, 122, 100, 188, 122, 100, 196, 126, 108, 196, 126, 100, 204, 130, 108,
+ 196, 130, 100, 196, 130, 108, 196, 130, 108, 188, 122, 100, 196, 126, 100,
+ 188, 122, 100, 196, 122, 100, 188, 122, 100, 196, 126, 100, 196, 126, 100,
+ 196, 130, 100, 196, 130, 108, 196, 130, 100, 196, 126, 100, 196, 126, 100,
+ 204, 130, 108, 196, 130, 100, 196, 126, 108, 188, 126, 100, 196, 122, 100,
+ 196, 126, 100, 196, 130, 108, 204, 130, 108, 196, 126, 108, 196, 130, 100,
+ 196, 122, 100, 188, 122, 100, 196, 126, 100, 204, 134, 108, 204, 134, 108,
+ 196, 126, 100, 188, 114, 92, 188, 118, 92, 188, 122, 100, 196, 126, 100,
+ 196, 130, 108, 196, 126, 108, 196, 126, 100, 196, 126, 100, 196, 126, 100,
+ 188, 122, 92, 188, 122, 100, 188, 122, 100, 196, 122, 100, 188, 122, 100,
+ 196, 122, 100, 188, 122, 100, 196, 122, 100, 188, 122, 100, 188, 118, 92,
+ 188, 118, 100, 196, 126, 100, 188, 122, 100, 188, 122, 100, 188, 118, 100,
+ 188, 118, 92, 188, 118, 92, 188, 114, 92, 188, 118, 92, 188, 122, 100,
+ 188, 114, 92, 180, 114, 92, 180, 114, 84, 172, 102, 84, 172, 106, 84,
+ 188, 118, 92, 188, 118, 100, 188, 122, 100, 188, 122, 100, 180, 118, 100,
+ 188, 118, 100, 188, 122, 100, 188, 122, 100, 188, 118, 100, 180, 118, 100,
+ 196, 130, 108, 180, 114, 92, 172, 106, 84, 172, 110, 92, 180, 114, 92,
+ 172, 110, 92, 172, 106, 84, 172, 106, 84, 180, 110, 92, 180, 114, 92,
+ 180, 114, 92, 180, 110, 92, 164, 102, 84, 164, 98, 84, 172, 102, 84,
+ 172, 106, 84, 172, 106, 92, 172, 106, 84, 172, 106, 84, 180, 106, 92,
+ 172, 106, 92, 180, 110, 92, 180, 110, 92, 172, 110, 92, 172, 102, 84,
+ 172, 110, 92, 180, 114, 92, 180, 114, 100, 180, 114, 92, 172, 110, 92,
+ 180, 114, 92, 172, 110, 92, 180, 114, 92, 180, 114, 92, 180, 110, 92,
+ 180, 110, 92, 172, 110, 92, 180, 110, 84, 172, 110, 92, 172, 110, 92,
+ 180, 110, 92, 180, 110, 92, 180, 114, 92, 180, 114, 92, 180, 118, 100,
+ 180, 118, 100, 180, 114, 92, 180, 114, 92, 172, 102, 84, 172, 102, 84,
+ 180, 106, 92, 164, 94, 84, 156, 94, 76, 172, 110, 100, 140, 82, 68,
+ 92, 38, 28, 92, 34, 20, 124, 58, 44, 140, 78, 60, 148, 86, 68,
+ 156, 90, 68, 156, 94, 76, 164, 94, 76, 148, 90, 68, 156, 90, 68,
+ 164, 94, 76, 156, 94, 76, 156, 94, 76, 156, 90, 68, 148, 86, 60,
+ 148, 86, 68, 156, 90, 68, 164, 94, 76, 164, 98, 76, 156, 94, 76,
+ 156, 94, 76, 172, 98, 84, 180, 110, 92, 180, 118, 100, 188, 114, 100,
+ 180, 114, 92, 172, 102, 84, 164, 98, 84, 164, 94, 76, 156, 94, 76,
+ 156, 90, 68, 164, 94, 76, 164, 94, 76, 164, 94, 76, 164, 98, 76,
+ 180, 110, 92, 196, 126, 100, 196, 126, 108, 204, 130, 100, 196, 126, 108,
+ 196, 130, 108, 196, 126, 100, 188, 122, 100, 196, 122, 100, 196, 126, 100,
+ 196, 126, 100, 188, 122, 100, 188, 118, 92, 196, 130, 108, 196, 134, 108,
+ 204, 134, 108, 204, 134, 108, 196, 130, 108, 196, 130, 108, 196, 126, 108,
+ 196, 130, 108, 196, 126, 100, 188, 126, 100, 188, 122, 100, 196, 126, 100,
+ 196, 126, 100, 196, 126, 108, 196, 126, 100, 188, 126, 100, 188, 122, 100,
+ 196, 126, 100, 188, 122, 100, 188, 122, 100, 188, 122, 100, 196, 122, 100,
+ 196, 126, 100, 196, 126, 108, 204, 130, 108, 196, 130, 108, 196, 130, 108,
+ 196, 130, 108, 196, 130, 108, 204, 130, 108, 196, 130, 108, 204, 130, 108,
+ 196, 130, 108, 196, 126, 100, 188, 126, 108, 196, 126, 100, 196, 126, 108,
+ 196, 130, 108, 196, 126, 100, 196, 126, 100, 196, 126, 100, 188, 126, 100,
+ 196, 126, 100, 196, 126, 108, 196, 130, 100, 196, 126, 108, 188, 126, 100,
+ 196, 122, 100, 188, 126, 100, 196, 130, 108, 196, 130, 108, 188, 122, 100,
+ 180, 114, 92, 188, 118, 92, 188, 122, 100, 188, 122, 100, 188, 118, 92,
+ 188, 122, 100, 188, 118, 100, 188, 122, 100, 188, 118, 92, 188, 118, 100,
+ 188, 118, 92, 188, 122, 100, 188, 118, 92, 188, 122, 92, 188, 118, 100,
+ 188, 118, 92, 188, 118, 92, 188, 118, 92, 188, 118, 100, 180, 118, 92,
+ 188, 122, 100, 188, 122, 100, 188, 118, 92, 188, 118, 92, 180, 114, 92,
+ 180, 114, 92, 180, 114, 92, 188, 118, 92, 196, 126, 100, 188, 118, 100,
+ 188, 122, 100, 188, 118, 92, 180, 110, 84, 180, 114, 92, 188, 122, 100,
+ 188, 122, 100, 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92,
+ 180, 118, 100, 180, 118, 100, 180, 114, 92, 172, 110, 92, 172, 106, 84,
+ 164, 94, 76, 164, 102, 84, 180, 114, 92, 180, 118, 100, 172, 106, 84,
+ 164, 98, 76, 164, 98, 84, 164, 98, 76, 164, 98, 84, 172, 102, 84,
+ 172, 102, 84, 164, 98, 76, 172, 102, 84, 172, 106, 84, 180, 110, 92,
+ 180, 110, 92, 180, 110, 92, 180, 110, 92, 180, 110, 92, 180, 110, 92,
+ 180, 110, 92, 172, 110, 92, 180, 110, 92, 172, 106, 84, 172, 110, 92,
+ 180, 118, 92, 188, 118, 100, 180, 114, 92, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 118, 100, 180, 118, 100, 180, 118, 100, 180, 118, 100,
+ 188, 118, 92, 180, 118, 100, 180, 118, 100, 188, 118, 100, 180, 110, 92,
+ 172, 110, 100, 180, 114, 100, 180, 118, 100, 180, 118, 100, 180, 118, 100,
+ 188, 122, 100, 188, 118, 100, 180, 106, 84, 172, 102, 84, 188, 114, 100,
+ 164, 98, 76, 164, 98, 84, 172, 110, 100, 132, 78, 68, 92, 34, 20,
+ 92, 34, 20, 132, 70, 52, 156, 90, 68, 164, 102, 76, 164, 98, 76,
+ 164, 98, 84, 164, 98, 76, 156, 90, 68, 156, 94, 76, 148, 82, 60,
+ 148, 86, 68, 148, 82, 60, 148, 82, 60, 148, 82, 60, 148, 78, 60,
+ 148, 82, 60, 148, 86, 68, 148, 82, 68, 148, 82, 60, 156, 82, 68,
+ 156, 90, 68, 164, 98, 76, 172, 102, 84, 172, 106, 84, 172, 106, 84,
+ 164, 102, 76, 172, 98, 84, 164, 98, 76, 156, 90, 76, 156, 82, 60,
+ 140, 78, 60, 140, 70, 52, 132, 70, 52, 156, 82, 60, 172, 98, 76,
+ 188, 114, 92, 196, 122, 100, 196, 126, 100, 196, 126, 108, 196, 130, 108,
+ 196, 130, 108, 196, 126, 100, 188, 126, 100, 196, 126, 100, 188, 126, 100,
+ 196, 126, 100, 188, 122, 100, 196, 130, 108, 204, 130, 108, 196, 130, 108,
+ 196, 130, 108, 196, 122, 100, 188, 122, 100, 196, 122, 100, 188, 126, 100,
+ 196, 126, 100, 196, 122, 100, 188, 122, 100, 188, 122, 100, 196, 122, 100,
+ 188, 126, 100, 188, 122, 100, 188, 122, 100, 196, 122, 100, 188, 122, 100,
+ 196, 126, 100, 188, 122, 100, 188, 118, 100, 188, 118, 92, 188, 122, 100,
+ 188, 126, 100, 196, 126, 100, 196, 126, 100, 196, 130, 108, 196, 126, 100,
+ 196, 126, 100, 196, 126, 108, 196, 126, 100, 188, 122, 100, 196, 130, 108,
+ 196, 130, 100, 196, 126, 108, 196, 126, 100, 196, 130, 108, 204, 130, 108,
+ 196, 130, 108, 196, 126, 108, 196, 130, 108, 204, 134, 108, 196, 130, 108,
+ 196, 130, 108, 196, 130, 108, 196, 130, 108, 204, 130, 108, 196, 134, 108,
+ 204, 130, 108, 204, 134, 116, 196, 130, 108, 196, 122, 100, 188, 122, 100,
+ 196, 126, 108, 196, 126, 100, 196, 126, 100, 188, 118, 100, 188, 118, 92,
+ 188, 118, 92, 188, 122, 92, 188, 118, 100, 188, 122, 100, 188, 122, 100,
+ 188, 122, 100, 188, 122, 100, 188, 118, 100, 188, 122, 92, 188, 118, 100,
+ 188, 122, 100, 188, 122, 100, 188, 122, 100, 188, 122, 100, 188, 118, 92,
+ 188, 122, 100, 188, 122, 100, 188, 118, 100, 188, 118, 92, 188, 114, 92,
+ 188, 122, 100, 188, 122, 100, 188, 122, 100, 188, 118, 92, 188, 122, 100,
+ 188, 122, 100, 180, 110, 92, 180, 114, 92, 188, 122, 100, 188, 122, 100,
+ 188, 118, 100, 180, 118, 100, 180, 118, 100, 188, 122, 100, 188, 122, 100,
+ 188, 122, 100, 180, 114, 92, 180, 110, 92, 172, 110, 92, 164, 102, 76,
+ 164, 102, 84, 188, 118, 100, 180, 118, 100, 172, 106, 84, 164, 102, 84,
+ 172, 110, 92, 180, 110, 92, 180, 110, 92, 180, 110, 92, 180, 110, 92,
+ 172, 106, 84, 180, 110, 92, 172, 110, 92, 180, 110, 92, 180, 110, 92,
+ 180, 114, 92, 180, 110, 92, 180, 114, 92, 172, 110, 92, 180, 110, 84,
+ 180, 110, 92, 180, 110, 92, 172, 102, 84, 172, 106, 84, 172, 110, 92,
+ 180, 110, 92, 172, 110, 92, 172, 110, 92, 172, 106, 92, 172, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 100,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 110, 100, 180, 114, 92,
+ 180, 114, 92, 180, 114, 100, 180, 118, 92, 180, 122, 100, 188, 122, 100,
+ 188, 122, 100, 188, 118, 100, 180, 110, 92, 188, 114, 100, 172, 102, 92,
+ 172, 106, 92, 180, 118, 100, 132, 78, 68, 92, 34, 20, 92, 34, 20,
+ 132, 74, 60, 156, 90, 68, 164, 94, 76, 148, 90, 68, 156, 86, 68,
+ 156, 90, 68, 156, 90, 68, 164, 98, 84, 156, 90, 68, 156, 90, 68,
+ 156, 90, 76, 156, 94, 76, 164, 98, 76, 164, 98, 84, 164, 102, 76,
+ 172, 102, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84, 180, 110, 92,
+ 180, 110, 92, 180, 110, 92, 180, 114, 100, 180, 114, 92, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 110, 92, 164, 98, 84, 164, 94, 76,
+ 156, 90, 68, 156, 90, 68, 172, 102, 84, 180, 110, 92, 188, 118, 92,
+ 196, 122, 100, 196, 122, 100, 188, 122, 100, 188, 122, 100, 188, 118, 92,
+ 188, 118, 100, 188, 118, 100, 180, 114, 92, 188, 114, 92, 188, 118, 100,
+ 188, 118, 92, 196, 126, 100, 188, 126, 100, 196, 122, 100, 188, 122, 100,
+ 180, 118, 92, 188, 118, 92, 188, 122, 100, 196, 122, 100, 196, 126, 108,
+ 188, 126, 100, 188, 122, 100, 196, 122, 100, 188, 126, 100, 196, 122, 100,
+ 188, 122, 100, 188, 118, 92, 180, 110, 92, 180, 114, 92, 188, 118, 92,
+ 180, 114, 92, 180, 110, 84, 172, 110, 84, 180, 114, 92, 188, 114, 92,
+ 188, 126, 100, 196, 126, 108, 196, 126, 100, 196, 130, 108, 196, 126, 108,
+ 188, 126, 100, 188, 126, 100, 196, 122, 100, 188, 122, 100, 188, 122, 100,
+ 188, 118, 92, 188, 122, 100, 188, 122, 100, 188, 126, 100, 188, 122, 100,
+ 188, 118, 92, 196, 130, 108, 196, 130, 108, 196, 126, 108, 196, 126, 100,
+ 196, 130, 108, 196, 130, 108, 196, 130, 108, 204, 130, 108, 196, 130, 108,
+ 196, 130, 100, 196, 122, 100, 180, 118, 92, 188, 118, 92, 188, 122, 100,
+ 196, 126, 100, 180, 118, 100, 188, 118, 92, 180, 118, 92, 180, 114, 92,
+ 188, 118, 92, 180, 114, 92, 188, 118, 92, 180, 114, 92, 188, 114, 92,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 188, 118, 92,
+ 180, 114, 92, 188, 118, 92, 188, 118, 92, 180, 110, 92, 188, 114, 92,
+ 188, 122, 92, 180, 118, 92, 180, 110, 92, 180, 110, 92, 180, 118, 92,
+ 196, 122, 100, 188, 118, 100, 180, 114, 92, 188, 122, 100, 188, 118, 92,
+ 180, 110, 92, 180, 114, 84, 188, 118, 100, 180, 118, 92, 188, 118, 100,
+ 188, 122, 100, 188, 122, 100, 188, 122, 108, 188, 122, 100, 188, 122, 100,
+ 180, 114, 92, 172, 106, 84, 164, 98, 84, 156, 94, 76, 164, 94, 76,
+ 164, 102, 76, 172, 102, 84, 164, 98, 76, 172, 106, 84, 188, 122, 100,
+ 188, 118, 100, 188, 118, 100, 180, 114, 92, 180, 114, 92, 180, 110, 92,
+ 180, 110, 92, 180, 110, 92, 172, 110, 92, 180, 110, 92, 172, 110, 92,
+ 180, 110, 84, 172, 110, 92, 180, 110, 92, 172, 106, 92, 172, 110, 84,
+ 172, 106, 92, 172, 102, 84, 172, 106, 84, 172, 110, 92, 172, 110, 84,
+ 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 102, 84,
+ 164, 102, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 92,
+ 172, 106, 84, 172, 106, 92, 180, 110, 92, 172, 110, 92, 180, 106, 92,
+ 172, 110, 92, 172, 110, 92, 180, 114, 92, 180, 118, 92, 180, 118, 92,
+ 188, 118, 100, 188, 114, 100, 188, 118, 100, 180, 110, 92, 180, 118, 108,
+ 180, 122, 108, 132, 78, 68, 92, 34, 20, 92, 34, 20, 108, 50, 28,
+ 132, 66, 52, 140, 74, 52, 132, 70, 52, 140, 74, 52, 140, 78, 60,
+ 148, 86, 60, 164, 94, 76, 156, 94, 68, 156, 94, 76, 164, 98, 76,
+ 164, 102, 84, 172, 106, 84, 172, 106, 84, 172, 110, 92, 172, 106, 84,
+ 180, 110, 92, 180, 110, 92, 180, 114, 92, 180, 110, 92, 180, 110, 92,
+ 180, 114, 92, 180, 110, 92, 180, 114, 92, 172, 106, 92, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 110, 92, 180, 114, 92, 188, 114, 100,
+ 188, 122, 100, 180, 110, 84, 188, 114, 92, 180, 114, 92, 188, 114, 92,
+ 180, 110, 92, 180, 110, 92, 180, 110, 92, 180, 114, 92, 180, 114, 84,
+ 180, 114, 92, 180, 110, 84, 180, 110, 92, 172, 110, 84, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 110, 92, 180, 110, 84,
+ 180, 110, 92, 188, 118, 92, 188, 122, 100, 180, 114, 84, 180, 110, 92,
+ 180, 110, 84, 180, 110, 84, 180, 110, 92, 180, 114, 92, 180, 106, 84,
+ 172, 106, 84, 164, 102, 76, 172, 102, 84, 180, 110, 84, 180, 110, 84,
+ 172, 110, 92, 180, 106, 84, 180, 110, 84, 180, 110, 92, 180, 118, 92,
+ 188, 118, 92, 188, 118, 100, 188, 122, 100, 188, 122, 92, 188, 118, 100,
+ 188, 118, 92, 180, 114, 92, 188, 118, 92, 180, 114, 92, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 188, 114, 92, 180, 114, 92, 180, 114, 92,
+ 188, 114, 92, 188, 118, 92, 188, 122, 92, 188, 118, 100, 196, 122, 92,
+ 188, 122, 100, 188, 118, 100, 188, 122, 92, 188, 118, 100, 188, 118, 92,
+ 180, 114, 92, 172, 106, 84, 180, 110, 92, 180, 118, 92, 188, 114, 92,
+ 172, 110, 84, 180, 110, 84, 180, 110, 92, 180, 110, 92, 180, 110, 84,
+ 172, 110, 84, 180, 106, 84, 172, 106, 84, 172, 106, 84, 172, 102, 84,
+ 172, 106, 76, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 180, 110, 84, 172, 106, 84, 172, 102, 76, 172, 106, 84, 180, 110, 84,
+ 172, 106, 84, 172, 102, 84, 172, 102, 76, 180, 106, 84, 180, 114, 92,
+ 188, 118, 92, 180, 114, 92, 188, 118, 92, 188, 122, 100, 180, 110, 84,
+ 180, 110, 92, 188, 118, 92, 180, 114, 92, 180, 114, 92, 172, 114, 92,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 172, 110, 84, 164, 98, 84,
+ 156, 94, 76, 140, 74, 52, 140, 78, 60, 148, 86, 68, 156, 90, 68,
+ 156, 94, 76, 156, 98, 76, 172, 102, 84, 172, 110, 92, 172, 106, 92,
+ 172, 106, 84, 172, 106, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 180, 106, 84, 172, 106, 84, 172, 102, 84, 172, 106, 84,
+ 172, 102, 84, 172, 106, 84, 180, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 110, 92, 180, 110, 92, 180, 110, 92, 172, 106, 92,
+ 172, 106, 84, 172, 106, 84, 172, 110, 92, 164, 102, 84, 172, 102, 84,
+ 164, 106, 84, 172, 106, 84, 172, 106, 92, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 92, 172, 106, 92, 164, 102, 84, 172, 102, 84,
+ 164, 106, 84, 164, 102, 84, 172, 106, 84, 172, 106, 84, 180, 110, 92,
+ 180, 106, 92, 180, 110, 92, 172, 102, 92, 172, 114, 100, 180, 118, 100,
+ 132, 74, 60, 92, 34, 20, 92, 34, 12, 124, 58, 44, 148, 78, 60,
+ 148, 90, 68, 156, 86, 68, 156, 94, 76, 156, 94, 76, 156, 90, 68,
+ 164, 98, 76, 156, 94, 76, 164, 94, 76, 156, 94, 68, 164, 94, 76,
+ 164, 98, 76, 164, 98, 84, 164, 98, 76, 156, 98, 76, 164, 94, 76,
+ 164, 98, 76, 164, 98, 84, 164, 98, 84, 172, 102, 76, 164, 102, 84,
+ 172, 102, 84, 172, 102, 84, 172, 106, 84, 172, 106, 92, 180, 106, 84,
+ 172, 106, 92, 172, 106, 84, 180, 110, 92, 180, 110, 92, 180, 114, 92,
+ 180, 110, 92, 180, 106, 84, 180, 114, 92, 188, 118, 92, 188, 118, 92,
+ 188, 114, 92, 188, 118, 92, 188, 118, 92, 188, 118, 100, 188, 118, 92,
+ 188, 122, 100, 188, 122, 100, 188, 118, 92, 180, 118, 92, 188, 118, 92,
+ 188, 118, 100, 188, 118, 92, 180, 118, 92, 188, 114, 92, 180, 118, 92,
+ 188, 122, 100, 196, 130, 108, 188, 114, 92, 180, 114, 92, 180, 118, 92,
+ 188, 118, 92, 188, 118, 100, 188, 118, 92, 180, 114, 92, 180, 110, 84,
+ 180, 110, 92, 180, 114, 84, 180, 114, 92, 180, 114, 92, 188, 118, 92,
+ 188, 118, 100, 188, 118, 92, 188, 118, 100, 188, 118, 92, 188, 118, 100,
+ 188, 122, 92, 188, 122, 100, 188, 122, 100, 188, 122, 100, 188, 122, 100,
+ 196, 122, 100, 188, 126, 100, 188, 122, 100, 188, 122, 92, 188, 122, 100,
+ 196, 122, 100, 188, 126, 100, 196, 122, 100, 188, 118, 92, 180, 118, 92,
+ 188, 118, 100, 188, 118, 92, 188, 122, 100, 188, 122, 100, 188, 122, 100,
+ 188, 122, 100, 188, 122, 100, 188, 118, 92, 188, 118, 100, 180, 114, 92,
+ 180, 110, 84, 180, 110, 92, 188, 118, 92, 180, 114, 92, 180, 110, 92,
+ 188, 118, 92, 180, 118, 92, 188, 114, 92, 180, 114, 92, 180, 110, 92,
+ 180, 110, 84, 180, 110, 84, 180, 110, 84, 180, 110, 84, 180, 110, 84,
+ 180, 106, 84, 180, 110, 84, 180, 110, 92, 180, 110, 84, 180, 110, 92,
+ 180, 110, 92, 172, 106, 84, 180, 110, 84, 180, 114, 92, 180, 110, 92,
+ 172, 110, 84, 172, 110, 84, 180, 110, 92, 188, 118, 92, 188, 118, 92,
+ 180, 114, 92, 188, 118, 100, 188, 118, 92, 180, 110, 92, 180, 114, 84,
+ 188, 118, 100, 180, 114, 92, 180, 110, 92, 172, 110, 92, 172, 110, 92,
+ 172, 110, 92, 172, 110, 92, 172, 102, 84, 164, 98, 76, 156, 94, 76,
+ 156, 94, 68, 172, 102, 76, 172, 110, 92, 172, 110, 84, 172, 106, 92,
+ 172, 110, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 180, 106, 92,
+ 172, 106, 84, 172, 106, 92, 172, 102, 84, 172, 102, 84, 172, 106, 92,
+ 172, 106, 84, 172, 102, 84, 172, 102, 84, 172, 102, 84, 172, 102, 84,
+ 172, 106, 84, 172, 102, 84, 172, 106, 92, 172, 102, 84, 164, 98, 76,
+ 164, 102, 84, 164, 102, 84, 164, 102, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 84, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 102, 84,
+ 172, 102, 84, 164, 102, 84, 164, 102, 84, 164, 102, 84, 164, 98, 76,
+ 172, 102, 84, 172, 102, 84, 172, 102, 84, 164, 98, 84, 164, 102, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 172, 98, 84, 172, 98, 76,
+ 172, 98, 84, 164, 94, 84, 172, 110, 92, 172, 110, 100, 116, 62, 52,
+ 92, 34, 12, 92, 34, 20, 148, 90, 68, 172, 106, 84, 172, 110, 92,
+ 172, 106, 84, 172, 110, 84, 180, 110, 92, 164, 102, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 164, 102, 84, 172, 106, 84, 172, 106, 84,
+ 172, 110, 92, 172, 106, 84, 172, 106, 92, 172, 106, 84, 172, 102, 84,
+ 172, 106, 84, 172, 106, 84, 180, 110, 92, 180, 110, 92, 180, 110, 92,
+ 180, 110, 92, 188, 118, 100, 188, 114, 100, 180, 114, 92, 180, 110, 92,
+ 180, 110, 92, 172, 110, 92, 180, 110, 92, 172, 106, 84, 188, 118, 100,
+ 188, 118, 92, 196, 122, 100, 196, 126, 108, 204, 130, 108, 188, 122, 100,
+ 188, 118, 100, 180, 118, 92, 180, 114, 92, 188, 122, 100, 196, 122, 100,
+ 188, 122, 100, 188, 118, 92, 180, 110, 92, 196, 122, 100, 188, 126, 100,
+ 196, 126, 100, 188, 122, 100, 188, 122, 100, 196, 126, 100, 196, 126, 108,
+ 196, 130, 108, 196, 130, 108, 196, 126, 100, 196, 126, 108, 196, 130, 108,
+ 196, 134, 108, 204, 134, 108, 196, 130, 108, 188, 126, 108, 188, 118, 92,
+ 180, 114, 92, 180, 106, 84, 180, 110, 84, 180, 114, 92, 180, 118, 92,
+ 188, 118, 92, 180, 118, 92, 188, 126, 100, 188, 122, 100, 196, 126, 100,
+ 196, 126, 100, 196, 126, 100, 196, 130, 108, 204, 130, 108, 196, 130, 108,
+ 196, 122, 100, 188, 122, 100, 188, 118, 100, 188, 118, 92, 188, 122, 100,
+ 188, 122, 100, 188, 122, 100, 188, 118, 100, 180, 118, 100, 188, 118, 92,
+ 180, 114, 92, 188, 118, 92, 188, 118, 100, 188, 122, 92, 188, 122, 100,
+ 196, 122, 100, 180, 118, 92, 188, 118, 92, 180, 114, 92, 172, 110, 84,
+ 180, 110, 84, 180, 114, 92, 188, 118, 92, 180, 114, 92, 180, 118, 92,
+ 188, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 110, 92, 180, 114, 92, 180, 110, 92, 180, 114, 92,
+ 180, 110, 92, 180, 114, 84, 180, 110, 92, 180, 110, 84, 180, 114, 84,
+ 180, 110, 92, 180, 114, 92, 180, 114, 92, 180, 110, 84, 180, 110, 92,
+ 180, 114, 84, 180, 114, 92, 180, 118, 92, 180, 110, 92, 172, 106, 84,
+ 180, 110, 84, 180, 110, 84, 164, 102, 76, 172, 102, 84, 180, 110, 84,
+ 172, 110, 84, 172, 106, 84, 172, 106, 84, 172, 102, 84, 172, 106, 84,
+ 172, 110, 84, 172, 106, 92, 172, 106, 84, 164, 98, 76, 180, 118, 100,
+ 188, 122, 100, 188, 118, 100, 188, 118, 100, 180, 114, 92, 172, 106, 92,
+ 172, 106, 84, 164, 102, 84, 180, 106, 84, 172, 106, 92, 180, 110, 92,
+ 172, 106, 84, 172, 102, 84, 172, 102, 84, 172, 102, 84, 172, 106, 92,
+ 172, 98, 84, 164, 102, 84, 172, 102, 84, 172, 102, 84, 172, 106, 92,
+ 180, 106, 84, 172, 110, 92, 180, 106, 92, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 156, 94, 76, 156, 94, 76, 156, 94, 76,
+ 164, 98, 76, 164, 98, 84, 164, 98, 76, 172, 102, 84, 164, 102, 84,
+ 172, 102, 84, 164, 102, 84, 164, 98, 76, 156, 94, 76, 172, 102, 84,
+ 172, 102, 92, 164, 102, 84, 172, 102, 84, 164, 106, 84, 164, 106, 84,
+ 164, 102, 76, 172, 102, 84, 164, 98, 76, 172, 102, 84, 172, 102, 84,
+ 164, 94, 84, 172, 106, 92, 164, 106, 92, 116, 62, 52, 92, 34, 20,
+ 100, 46, 28, 148, 86, 76, 164, 98, 76, 164, 98, 76, 156, 90, 76,
+ 164, 98, 76, 164, 102, 84, 172, 102, 84, 172, 106, 84, 164, 102, 84,
+ 164, 102, 84, 164, 98, 76, 164, 98, 84, 172, 106, 84, 172, 110, 92,
+ 180, 110, 92, 172, 110, 84, 180, 110, 92, 180, 106, 92, 172, 106, 84,
+ 180, 110, 92, 180, 110, 92, 180, 114, 92, 180, 110, 92, 172, 110, 92,
+ 172, 106, 84, 172, 102, 84, 164, 102, 84, 172, 106, 84, 180, 106, 92,
+ 180, 110, 84, 172, 106, 84, 172, 102, 84, 180, 110, 92, 172, 102, 76,
+ 172, 98, 76, 172, 106, 84, 180, 106, 84, 172, 98, 76, 164, 98, 76,
+ 164, 94, 76, 164, 98, 76, 172, 102, 76, 172, 110, 84, 172, 106, 84,
+ 172, 98, 76, 156, 94, 68, 164, 94, 68, 164, 94, 76, 164, 98, 76,
+ 164, 94, 68, 164, 94, 68, 156, 90, 68, 164, 94, 68, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 172, 102, 76, 172, 106, 84,
+ 172, 106, 84, 172, 102, 76, 164, 98, 76, 172, 106, 84, 164, 98, 76,
+ 148, 86, 60, 148, 82, 60, 156, 90, 68, 164, 94, 76, 164, 98, 76,
+ 164, 94, 76, 172, 98, 76, 164, 98, 76, 164, 98, 76, 172, 102, 84,
+ 172, 102, 76, 172, 106, 84, 172, 106, 84, 180, 110, 84, 172, 106, 84,
+ 172, 102, 76, 172, 102, 76, 172, 102, 76, 172, 106, 84, 172, 106, 84,
+ 172, 102, 76, 172, 102, 76, 172, 106, 84, 172, 102, 84, 172, 102, 76,
+ 164, 102, 84, 172, 102, 76, 172, 106, 84, 180, 110, 84, 180, 114, 92,
+ 172, 102, 76, 172, 106, 84, 172, 102, 84, 164, 94, 76, 164, 98, 76,
+ 172, 102, 76, 172, 102, 84, 172, 102, 76, 164, 98, 76, 172, 98, 76,
+ 164, 102, 76, 172, 102, 76, 164, 98, 76, 172, 102, 76, 164, 102, 76,
+ 172, 102, 76, 172, 102, 76, 164, 102, 76, 172, 102, 76, 164, 102, 76,
+ 172, 98, 76, 164, 98, 76, 164, 102, 76, 164, 98, 76, 172, 102, 84,
+ 172, 102, 76, 172, 102, 76, 164, 98, 76, 172, 102, 76, 172, 102, 84,
+ 172, 102, 76, 172, 102, 84, 172, 102, 76, 164, 98, 76, 164, 98, 76,
+ 164, 102, 76, 156, 90, 68, 164, 94, 68, 164, 98, 76, 164, 98, 76,
+ 164, 94, 76, 156, 94, 76, 156, 94, 76, 164, 94, 76, 164, 98, 76,
+ 164, 102, 84, 164, 102, 76, 164, 98, 84, 164, 94, 76, 156, 90, 68,
+ 156, 90, 76, 156, 94, 68, 156, 94, 76, 156, 90, 68, 156, 90, 68,
+ 156, 94, 76, 156, 86, 68, 156, 90, 68, 164, 98, 76, 164, 94, 76,
+ 164, 94, 76, 164, 98, 76, 172, 102, 84, 180, 114, 92, 164, 102, 76,
+ 172, 102, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84, 180, 110, 92,
+ 180, 110, 92, 180, 114, 92, 172, 106, 92, 180, 110, 92, 172, 110, 92,
+ 180, 110, 92, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 110, 92,
+ 172, 110, 84, 172, 110, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92,
+ 172, 110, 92, 172, 110, 84, 172, 106, 84, 172, 102, 92, 172, 106, 84,
+ 172, 106, 92, 172, 110, 92, 172, 110, 92, 172, 110, 92, 180, 106, 84,
+ 172, 106, 84, 180, 106, 92, 180, 110, 92, 180, 110, 100, 172, 102, 84,
+ 180, 114, 100, 172, 110, 100, 124, 66, 52, 100, 46, 28, 100, 42, 28,
+ 148, 78, 68, 156, 90, 68, 156, 94, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 156, 90, 68, 148, 82, 60, 148, 82, 68, 148, 86, 60,
+ 148, 82, 68, 148, 86, 60, 148, 86, 68, 156, 90, 68, 148, 86, 68,
+ 156, 90, 68, 156, 90, 68, 164, 94, 76, 164, 98, 84, 164, 98, 76,
+ 156, 94, 76, 164, 94, 76, 164, 98, 76, 164, 98, 76, 172, 102, 84,
+ 156, 90, 68, 164, 94, 76, 164, 98, 76, 164, 94, 76, 156, 86, 68,
+ 156, 94, 76, 180, 110, 92, 172, 98, 76, 172, 102, 76, 172, 102, 84,
+ 164, 98, 76, 172, 98, 76, 180, 110, 84, 188, 122, 100, 188, 118, 92,
+ 180, 114, 92, 188, 118, 100, 188, 118, 92, 188, 122, 100, 180, 114, 92,
+ 180, 110, 92, 172, 102, 76, 172, 106, 84, 188, 118, 92, 188, 122, 100,
+ 188, 122, 100, 188, 118, 92, 188, 118, 100, 188, 118, 92, 172, 102, 76,
+ 172, 102, 76, 180, 106, 84, 180, 110, 92, 180, 114, 92, 188, 118, 92,
+ 188, 114, 92, 180, 114, 92, 188, 114, 92, 188, 118, 100, 188, 118, 92,
+ 180, 114, 92, 172, 102, 76, 164, 98, 76, 172, 102, 76, 172, 106, 84,
+ 180, 110, 84, 172, 110, 84, 172, 102, 84, 172, 102, 76, 164, 98, 76,
+ 172, 102, 76, 172, 106, 76, 172, 102, 84, 172, 102, 76, 172, 106, 84,
+ 180, 110, 92, 180, 114, 92, 180, 110, 84, 172, 110, 84, 180, 106, 84,
+ 180, 110, 92, 172, 106, 76, 172, 110, 84, 180, 110, 92, 180, 110, 84,
+ 180, 106, 84, 172, 106, 84, 180, 106, 84, 172, 110, 84, 180, 110, 84,
+ 172, 102, 84, 172, 102, 76, 172, 102, 76, 164, 94, 68, 164, 98, 76,
+ 172, 102, 76, 164, 94, 76, 172, 102, 76, 164, 98, 76, 164, 94, 76,
+ 164, 98, 76, 172, 102, 76, 172, 102, 84, 172, 102, 76, 164, 98, 76,
+ 164, 102, 84, 172, 98, 76, 164, 98, 76, 172, 102, 76, 164, 98, 76,
+ 156, 90, 68, 156, 90, 68, 164, 94, 76, 172, 102, 76, 172, 106, 84,
+ 172, 106, 84, 164, 98, 76, 164, 98, 76, 172, 102, 76, 172, 102, 76,
+ 164, 98, 76, 164, 102, 76, 164, 98, 76, 172, 102, 76, 172, 102, 84,
+ 164, 94, 68, 164, 94, 76, 172, 102, 76, 164, 98, 76, 164, 102, 76,
+ 164, 94, 76, 156, 90, 68, 156, 94, 76, 164, 98, 76, 156, 94, 76,
+ 156, 90, 68, 156, 94, 76, 156, 90, 68, 156, 94, 76, 164, 98, 76,
+ 164, 98, 76, 156, 94, 76, 156, 86, 68, 148, 86, 68, 148, 82, 60,
+ 156, 86, 68, 156, 86, 68, 156, 86, 68, 156, 86, 68, 156, 82, 60,
+ 148, 86, 68, 156, 86, 68, 156, 90, 76, 156, 90, 68, 156, 86, 68,
+ 148, 78, 60, 148, 82, 60, 156, 86, 68, 156, 90, 76, 156, 90, 68,
+ 156, 86, 68, 148, 86, 60, 156, 86, 68, 148, 86, 68, 148, 86, 68,
+ 156, 90, 68, 156, 90, 68, 164, 94, 76, 156, 94, 76, 156, 86, 68,
+ 156, 90, 68, 156, 90, 68, 156, 90, 76, 156, 90, 68, 156, 90, 68,
+ 156, 86, 68, 148, 86, 68, 156, 86, 68, 156, 86, 68, 156, 90, 68,
+ 156, 90, 76, 164, 98, 76, 164, 102, 76, 164, 102, 84, 172, 106, 84,
+ 172, 102, 84, 164, 90, 76, 172, 102, 84, 172, 102, 84, 164, 102, 92,
+ 164, 102, 92, 124, 70, 60, 100, 42, 28, 84, 30, 12, 132, 70, 52,
+ 140, 74, 60, 148, 78, 60, 140, 74, 52, 140, 74, 60, 140, 78, 60,
+ 140, 78, 60, 140, 74, 52, 148, 78, 60, 148, 82, 60, 148, 82, 60,
+ 148, 82, 68, 156, 86, 60, 156, 90, 68, 156, 90, 68, 156, 90, 76,
+ 148, 82, 68, 156, 90, 68, 156, 90, 68, 164, 90, 68, 156, 90, 68,
+ 156, 86, 68, 156, 90, 68, 164, 90, 76, 172, 102, 84, 156, 94, 76,
+ 156, 90, 68, 172, 98, 84, 164, 102, 84, 164, 94, 76, 164, 94, 76,
+ 172, 102, 84, 180, 110, 84, 180, 110, 92, 188, 114, 92, 180, 110, 84,
+ 180, 110, 92, 188, 114, 92, 188, 118, 92, 188, 118, 92, 180, 118, 92,
+ 188, 114, 92, 188, 118, 92, 180, 118, 92, 180, 114, 92, 180, 110, 84,
+ 180, 114, 92, 180, 118, 92, 188, 118, 100, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 188, 118, 92, 188, 122, 100, 180, 114, 92, 180, 114, 92,
+ 180, 110, 84, 180, 114, 92, 180, 114, 92, 180, 114, 92, 172, 110, 84,
+ 172, 102, 84, 172, 106, 76, 180, 110, 92, 188, 118, 92, 188, 118, 100,
+ 188, 118, 92, 180, 114, 92, 180, 110, 92, 180, 114, 92, 180, 110, 84,
+ 180, 106, 84, 180, 110, 92, 180, 114, 92, 180, 114, 92, 180, 110, 92,
+ 180, 110, 84, 172, 110, 84, 172, 102, 84, 172, 106, 84, 180, 110, 84,
+ 180, 114, 92, 180, 110, 92, 180, 114, 92, 180, 110, 84, 180, 110, 92,
+ 172, 106, 84, 180, 106, 84, 180, 110, 84, 172, 110, 84, 172, 106, 84,
+ 172, 106, 84, 180, 106, 84, 180, 110, 92, 180, 110, 92, 172, 106, 76,
+ 172, 106, 84, 172, 106, 84, 164, 94, 76, 164, 98, 76, 172, 106, 84,
+ 172, 102, 76, 172, 102, 76, 164, 102, 76, 172, 98, 76, 164, 102, 76,
+ 172, 102, 84, 172, 106, 76, 172, 102, 84, 172, 102, 76, 172, 102, 76,
+ 164, 102, 84, 172, 102, 76, 172, 102, 84, 172, 102, 76, 164, 94, 68,
+ 164, 94, 76, 172, 102, 76, 172, 106, 84, 180, 106, 84, 172, 106, 84,
+ 172, 102, 76, 172, 102, 76, 172, 106, 84, 172, 106, 84, 172, 102, 76,
+ 172, 102, 76, 164, 98, 76, 172, 102, 84, 172, 106, 76, 164, 94, 76,
+ 164, 98, 76, 172, 102, 76, 164, 98, 76, 172, 102, 84, 164, 98, 76,
+ 156, 94, 76, 164, 102, 84, 172, 102, 84, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 156, 94, 76, 164, 94, 76, 164, 98, 76, 164, 102, 84,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 102, 84, 164, 94, 76,
+ 156, 94, 76, 164, 94, 76, 156, 94, 76, 156, 90, 68, 156, 86, 68,
+ 156, 90, 68, 164, 94, 76, 164, 94, 76, 156, 90, 68, 156, 86, 68,
+ 156, 86, 68, 156, 94, 76, 164, 98, 76, 164, 94, 76, 156, 90, 76,
+ 156, 86, 68, 148, 90, 68, 156, 90, 68, 156, 94, 68, 156, 94, 76,
+ 156, 94, 76, 156, 94, 76, 156, 94, 68, 156, 94, 76, 156, 94, 76,
+ 164, 94, 76, 156, 98, 76, 164, 94, 76, 156, 94, 76, 156, 90, 68,
+ 156, 90, 68, 164, 94, 84, 156, 94, 76, 164, 98, 84, 164, 98, 76,
+ 164, 102, 76, 156, 98, 76, 164, 98, 76, 164, 94, 68, 156, 82, 68,
+ 132, 66, 44, 140, 70, 52, 148, 78, 68, 156, 90, 76, 156, 102, 84,
+ 124, 66, 52, 84, 30, 12, 92, 38, 28, 132, 66, 52, 140, 74, 52,
+ 132, 74, 60, 132, 66, 44, 124, 66, 44, 140, 70, 52, 140, 78, 60,
+ 148, 82, 60, 148, 82, 68, 148, 86, 60, 148, 86, 68, 156, 86, 68,
+ 148, 90, 68, 156, 90, 76, 156, 94, 68, 156, 94, 76, 164, 90, 68,
+ 164, 94, 76, 164, 98, 76, 164, 98, 84, 172, 98, 84, 164, 98, 84,
+ 172, 98, 76, 164, 102, 84, 172, 102, 84, 172, 98, 84, 164, 98, 76,
+ 172, 102, 84, 180, 110, 84, 180, 110, 92, 172, 110, 92, 172, 102, 76,
+ 180, 106, 92, 180, 110, 84, 180, 110, 84, 180, 110, 92, 180, 106, 84,
+ 172, 102, 84, 180, 118, 92, 188, 114, 92, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 188, 114, 92, 180, 110, 92, 172, 110, 84, 188, 118, 100,
+ 188, 118, 92, 188, 114, 92, 180, 114, 92, 180, 110, 84, 180, 110, 92,
+ 180, 114, 92, 188, 118, 92, 188, 114, 92, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 114, 92, 180, 110, 84, 172, 102, 84, 172, 102, 76,
+ 172, 102, 76, 172, 110, 84, 188, 118, 100, 188, 122, 100, 188, 118, 92,
+ 188, 118, 100, 188, 122, 92, 188, 122, 100, 172, 110, 84, 180, 110, 92,
+ 180, 114, 84, 180, 114, 92, 188, 114, 92, 180, 118, 92, 188, 114, 92,
+ 180, 118, 92, 180, 106, 84, 172, 106, 84, 180, 106, 84, 180, 114, 84,
+ 180, 114, 92, 188, 114, 92, 180, 114, 92, 180, 114, 84, 172, 106, 84,
+ 180, 106, 84, 172, 110, 92, 180, 110, 84, 180, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 110, 84, 180, 110, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 164, 94, 68, 164, 98, 76, 180, 106, 84, 172, 110, 84,
+ 172, 102, 84, 172, 102, 84, 164, 102, 76, 172, 102, 76, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 172, 102, 84, 172, 102, 84, 172, 102, 76,
+ 172, 106, 84, 172, 106, 84, 172, 102, 84, 164, 98, 76, 172, 102, 76,
+ 172, 106, 84, 180, 110, 84, 180, 114, 92, 180, 110, 84, 172, 106, 84,
+ 172, 106, 84, 180, 110, 92, 180, 110, 84, 172, 110, 84, 172, 102, 84,
+ 172, 102, 76, 172, 106, 84, 180, 110, 84, 164, 98, 76, 164, 98, 76,
+ 172, 106, 84, 164, 102, 76, 172, 102, 84, 164, 98, 84, 164, 98, 76,
+ 172, 106, 84, 172, 110, 84, 172, 102, 84, 164, 102, 84, 164, 102, 84,
+ 172, 106, 84, 164, 102, 84, 164, 102, 84, 172, 102, 84, 164, 102, 84,
+ 156, 94, 76, 164, 98, 76, 172, 106, 84, 172, 102, 76, 164, 98, 84,
+ 172, 102, 84, 164, 98, 76, 164, 94, 76, 164, 94, 76, 164, 98, 76,
+ 164, 98, 84, 164, 98, 76, 164, 94, 76, 156, 94, 76, 164, 94, 76,
+ 172, 102, 84, 172, 102, 84, 164, 98, 76, 164, 94, 76, 156, 86, 68,
+ 156, 90, 68, 164, 94, 76, 164, 98, 84, 164, 98, 76, 164, 98, 76,
+ 164, 94, 76, 164, 94, 76, 164, 98, 84, 164, 102, 76, 164, 98, 76,
+ 164, 102, 84, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 94, 76,
+ 164, 98, 84, 172, 102, 84, 172, 102, 84, 172, 106, 92, 164, 102, 84,
+ 164, 98, 76, 156, 94, 68, 156, 90, 68, 156, 86, 68, 132, 62, 44,
+ 140, 66, 52, 140, 74, 60, 156, 94, 84, 172, 110, 100, 132, 74, 60,
+ 92, 38, 28, 116, 58, 44, 164, 106, 84, 180, 114, 92, 180, 114, 92,
+ 172, 106, 84, 172, 106, 84, 172, 110, 92, 188, 122, 100, 188, 126, 100,
+ 180, 114, 92, 180, 114, 100, 180, 114, 92, 180, 114, 92, 180, 114, 92,
+ 180, 110, 92, 172, 110, 92, 180, 110, 92, 164, 102, 84, 172, 106, 84,
+ 180, 106, 92, 180, 110, 92, 180, 114, 92, 180, 110, 92, 180, 114, 92,
+ 180, 110, 92, 172, 110, 84, 180, 114, 92, 180, 114, 100, 180, 114, 92,
+ 180, 114, 100, 188, 122, 100, 188, 122, 100, 188, 114, 92, 180, 114, 92,
+ 188, 114, 92, 188, 114, 92, 188, 122, 100, 188, 114, 92, 180, 110, 84,
+ 180, 110, 92, 180, 110, 84, 180, 110, 92, 180, 114, 92, 180, 114, 92,
+ 180, 110, 84, 180, 110, 92, 180, 110, 84, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 114, 92, 180, 110, 84, 180, 110, 92, 180, 110, 84,
+ 180, 110, 92, 172, 110, 84, 172, 106, 84, 180, 106, 84, 180, 110, 84,
+ 180, 110, 84, 180, 110, 84, 172, 106, 84, 172, 102, 76, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 110, 84, 180, 114, 92,
+ 188, 118, 92, 188, 122, 100, 188, 114, 92, 180, 110, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 180, 110, 84, 180, 114, 92, 188, 118, 92,
+ 180, 110, 92, 180, 114, 84, 180, 110, 92, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 110, 84, 172, 106, 84, 172, 102, 84, 172, 106, 76,
+ 172, 106, 84, 172, 106, 84, 172, 102, 76, 172, 102, 76, 172, 106, 84,
+ 180, 106, 84, 172, 110, 84, 172, 102, 84, 180, 110, 84, 172, 106, 84,
+ 164, 94, 68, 164, 98, 76, 172, 106, 84, 180, 110, 84, 172, 106, 84,
+ 172, 102, 76, 172, 102, 76, 172, 102, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 76, 172, 102, 76, 172, 102, 84, 164, 102, 76, 172, 102, 84,
+ 172, 106, 84, 172, 106, 84, 172, 102, 76, 172, 102, 84, 180, 110, 84,
+ 180, 110, 92, 180, 114, 84, 180, 110, 92, 172, 106, 84, 180, 106, 84,
+ 172, 110, 84, 180, 106, 84, 172, 110, 92, 180, 106, 84, 172, 106, 84,
+ 180, 110, 84, 172, 106, 84, 164, 98, 76, 172, 98, 76, 180, 110, 84,
+ 172, 106, 84, 172, 102, 84, 164, 98, 76, 164, 102, 84, 172, 106, 84,
+ 172, 110, 92, 172, 106, 84, 172, 102, 84, 164, 102, 84, 172, 106, 84,
+ 164, 98, 76, 164, 98, 76, 164, 102, 84, 164, 98, 76, 156, 90, 68,
+ 156, 90, 68, 164, 98, 84, 164, 98, 84, 172, 102, 76, 172, 102, 84,
+ 164, 102, 84, 164, 98, 76, 164, 98, 84, 172, 102, 84, 172, 106, 84,
+ 172, 98, 84, 164, 98, 76, 164, 98, 76, 172, 98, 84, 172, 106, 84,
+ 172, 106, 84, 164, 98, 84, 164, 94, 76, 156, 94, 76, 164, 98, 76,
+ 164, 98, 76, 164, 102, 76, 164, 102, 84, 164, 98, 76, 164, 98, 76,
+ 156, 94, 76, 164, 102, 76, 172, 102, 84, 164, 102, 84, 164, 102, 76,
+ 164, 102, 84, 164, 98, 84, 164, 98, 76, 164, 98, 84, 164, 98, 84,
+ 164, 98, 84, 172, 102, 84, 164, 102, 84, 172, 106, 84, 164, 102, 84,
+ 164, 98, 76, 164, 98, 76, 172, 102, 84, 164, 90, 68, 164, 90, 76,
+ 164, 94, 76, 164, 102, 92, 172, 114, 100, 140, 82, 68, 116, 58, 44,
+ 116, 62, 52, 148, 86, 68, 164, 98, 76, 164, 102, 84, 164, 98, 76,
+ 156, 94, 76, 164, 98, 76, 164, 102, 84, 172, 102, 84, 164, 102, 84,
+ 164, 102, 76, 164, 102, 84, 164, 98, 84, 164, 98, 76, 164, 102, 84,
+ 164, 98, 76, 164, 98, 76, 172, 102, 84, 172, 102, 84, 172, 106, 84,
+ 180, 110, 84, 172, 110, 92, 180, 110, 84, 172, 106, 92, 172, 106, 84,
+ 164, 90, 76, 172, 106, 84, 180, 110, 92, 172, 98, 84, 164, 98, 76,
+ 172, 106, 84, 180, 110, 92, 180, 114, 92, 180, 110, 92, 180, 110, 84,
+ 188, 114, 92, 188, 118, 100, 188, 114, 92, 180, 110, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 180, 110, 84, 180, 110, 84, 180, 114, 92,
+ 180, 110, 84, 180, 114, 92, 180, 106, 84, 172, 110, 84, 180, 106, 84,
+ 172, 106, 84, 180, 110, 84, 172, 110, 84, 180, 110, 84, 172, 110, 84,
+ 172, 102, 76, 172, 102, 76, 172, 102, 76, 172, 102, 84, 172, 110, 92,
+ 180, 110, 84, 172, 106, 84, 172, 102, 84, 172, 110, 84, 180, 110, 84,
+ 180, 110, 84, 180, 110, 84, 172, 106, 84, 172, 106, 84, 180, 110, 84,
+ 180, 110, 92, 180, 114, 92, 180, 114, 92, 172, 106, 84, 172, 102, 84,
+ 172, 102, 76, 172, 106, 84, 180, 106, 84, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 110, 84, 180, 110, 84, 180, 110, 92, 180, 114, 84,
+ 172, 106, 84, 172, 106, 84, 172, 102, 76, 172, 102, 76, 172, 102, 84,
+ 172, 102, 76, 164, 98, 76, 164, 98, 76, 172, 102, 76, 172, 106, 84,
+ 172, 102, 84, 172, 102, 76, 172, 106, 84, 172, 102, 76, 156, 90, 68,
+ 164, 94, 68, 172, 106, 84, 172, 106, 84, 172, 102, 76, 172, 98, 76,
+ 164, 98, 76, 164, 98, 76, 172, 102, 76, 172, 102, 76, 172, 102, 84,
+ 164, 102, 76, 172, 102, 76, 164, 98, 76, 172, 102, 76, 180, 106, 84,
+ 172, 106, 84, 164, 102, 76, 172, 102, 76, 172, 110, 92, 180, 110, 84,
+ 172, 110, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 180, 114, 84, 172, 106, 84, 180, 106, 84,
+ 172, 106, 84, 164, 94, 68, 164, 98, 76, 180, 110, 84, 180, 114, 92,
+ 164, 98, 84, 156, 98, 76, 164, 98, 76, 172, 106, 84, 172, 110, 92,
+ 172, 106, 84, 164, 102, 76, 164, 102, 84, 156, 90, 68, 156, 90, 68,
+ 156, 94, 76, 164, 102, 76, 164, 98, 76, 156, 94, 76, 164, 98, 76,
+ 164, 102, 84, 164, 98, 76, 164, 98, 76, 164, 98, 84, 172, 98, 76,
+ 164, 98, 84, 172, 98, 76, 172, 102, 84, 172, 106, 92, 164, 98, 76,
+ 164, 94, 76, 164, 98, 76, 164, 98, 84, 172, 106, 84, 172, 102, 84,
+ 164, 98, 76, 156, 90, 68, 164, 98, 76, 164, 98, 76, 164, 98, 84,
+ 164, 98, 76, 164, 98, 84, 164, 102, 76, 164, 98, 84, 164, 102, 76,
+ 172, 102, 84, 164, 102, 84, 164, 98, 76, 164, 98, 84, 164, 98, 76,
+ 164, 98, 76, 164, 102, 76, 164, 98, 76, 164, 98, 84, 172, 98, 84,
+ 164, 102, 84, 164, 102, 84, 164, 102, 84, 164, 106, 84, 172, 102, 84,
+ 172, 106, 84, 172, 102, 84, 172, 102, 84, 172, 102, 92, 164, 98, 84,
+ 164, 102, 92, 156, 98, 84, 132, 74, 60, 116, 62, 52, 116, 58, 44,
+ 148, 86, 68, 164, 94, 76, 164, 102, 84, 164, 102, 76, 164, 98, 76,
+ 164, 98, 76, 164, 102, 84, 164, 98, 76, 172, 106, 84, 172, 106, 84,
+ 172, 106, 92, 172, 110, 84, 172, 110, 92, 180, 110, 92, 180, 114, 92,
+ 180, 114, 92, 164, 102, 84, 172, 102, 84, 172, 106, 84, 172, 106, 92,
+ 180, 110, 92, 180, 110, 92, 172, 106, 84, 172, 102, 84, 164, 98, 84,
+ 180, 114, 92, 188, 122, 100, 180, 114, 92, 172, 102, 84, 180, 106, 92,
+ 188, 118, 100, 188, 122, 100, 172, 102, 84, 172, 106, 84, 180, 106, 84,
+ 180, 110, 84, 180, 110, 84, 180, 106, 92, 172, 102, 76, 172, 102, 84,
+ 180, 110, 84, 180, 110, 84, 180, 110, 92, 180, 110, 84, 180, 114, 92,
+ 180, 114, 92, 180, 110, 84, 172, 106, 84, 172, 102, 76, 164, 98, 76,
+ 172, 102, 84, 172, 106, 84, 180, 110, 92, 180, 114, 92, 172, 102, 84,
+ 172, 102, 84, 172, 106, 84, 172, 106, 84, 180, 106, 84, 172, 106, 84,
+ 172, 102, 76, 164, 98, 76, 172, 102, 76, 172, 102, 84, 172, 106, 84,
+ 180, 110, 92, 180, 110, 84, 180, 110, 84, 172, 106, 84, 172, 106, 84,
+ 180, 110, 84, 180, 114, 92, 180, 114, 92, 188, 114, 92, 180, 114, 92,
+ 180, 110, 92, 172, 110, 84, 172, 106, 84, 180, 114, 92, 180, 110, 92,
+ 180, 110, 84, 172, 110, 84, 180, 110, 84, 172, 106, 84, 172, 106, 84,
+ 172, 102, 76, 172, 102, 84, 172, 102, 84, 172, 106, 76, 164, 98, 76,
+ 164, 98, 76, 172, 98, 76, 172, 102, 84, 172, 106, 84, 172, 106, 76,
+ 164, 98, 76, 172, 106, 84, 172, 102, 84, 164, 94, 68, 164, 94, 76,
+ 172, 102, 76, 172, 102, 76, 164, 102, 84, 172, 102, 76, 164, 98, 76,
+ 172, 102, 76, 172, 102, 84, 172, 106, 84, 172, 102, 76, 172, 102, 84,
+ 164, 102, 76, 172, 98, 76, 164, 102, 76, 172, 106, 84, 172, 102, 76,
+ 172, 102, 76, 172, 102, 84, 180, 110, 84, 180, 110, 84, 172, 102, 84,
+ 172, 102, 76, 172, 106, 84, 172, 106, 76, 172, 102, 76, 172, 102, 84,
+ 172, 106, 84, 180, 110, 84, 172, 106, 84, 180, 110, 84, 172, 102, 84,
+ 156, 90, 68, 164, 94, 68, 172, 110, 84, 180, 114, 92, 172, 102, 76,
+ 164, 94, 76, 164, 98, 76, 164, 102, 84, 172, 106, 84, 164, 102, 84,
+ 164, 98, 76, 164, 98, 84, 156, 94, 76, 164, 98, 76, 164, 98, 84,
+ 164, 102, 84, 164, 98, 76, 164, 98, 84, 164, 102, 76, 164, 102, 84,
+ 164, 94, 76, 164, 94, 76, 164, 98, 76, 164, 98, 84, 164, 98, 76,
+ 164, 98, 76, 172, 102, 84, 172, 106, 84, 164, 98, 76, 164, 98, 76,
+ 164, 94, 76, 164, 98, 76, 172, 102, 84, 172, 102, 84, 164, 94, 76,
+ 156, 90, 68, 164, 98, 84, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 84, 164, 102, 84, 172, 102, 84, 164, 102, 84,
+ 164, 98, 76, 164, 98, 84, 164, 98, 76, 164, 98, 76, 164, 98, 84,
+ 164, 98, 76, 164, 98, 84, 172, 102, 84, 164, 102, 84, 172, 102, 84,
+ 164, 98, 84, 164, 102, 76, 164, 98, 76, 164, 102, 76, 164, 98, 76,
+ 172, 98, 84, 164, 98, 76, 172, 98, 84, 164, 94, 76, 164, 98, 84,
+ 156, 98, 84, 124, 70, 60, 116, 58, 44, 116, 62, 44, 164, 98, 76,
+ 164, 102, 84, 172, 106, 84, 164, 98, 84, 164, 102, 84, 172, 102, 84,
+ 172, 106, 84, 164, 102, 84, 164, 98, 84, 164, 98, 76, 164, 102, 84,
+ 172, 102, 84, 172, 106, 84, 172, 110, 84, 172, 110, 92, 180, 110, 92,
+ 172, 110, 92, 180, 110, 92, 180, 110, 92, 180, 114, 92, 180, 114, 92,
+ 180, 114, 92, 180, 106, 92, 164, 102, 84, 180, 106, 84, 180, 114, 100,
+ 188, 118, 100, 188, 118, 100, 180, 114, 92, 180, 110, 92, 180, 118, 100,
+ 188, 118, 100, 188, 114, 92, 188, 118, 100, 188, 118, 92, 188, 118, 100,
+ 188, 114, 92, 188, 122, 100, 172, 106, 84, 172, 106, 84, 180, 110, 84,
+ 172, 110, 92, 180, 110, 84, 172, 106, 84, 172, 110, 84, 180, 110, 84,
+ 180, 114, 92, 172, 106, 84, 172, 102, 84, 172, 102, 76, 172, 106, 84,
+ 180, 110, 84, 180, 114, 92, 180, 114, 92, 180, 110, 84, 172, 110, 84,
+ 172, 106, 84, 180, 110, 84, 180, 114, 92, 180, 110, 84, 172, 106, 84,
+ 172, 102, 76, 172, 106, 84, 172, 106, 84, 180, 110, 84, 180, 114, 92,
+ 180, 114, 92, 180, 114, 92, 180, 106, 84, 172, 106, 84, 172, 106, 84,
+ 180, 110, 84, 180, 114, 92, 188, 118, 92, 188, 118, 92, 180, 114, 92,
+ 180, 110, 84, 172, 106, 84, 180, 106, 84, 172, 106, 84, 180, 106, 84,
+ 172, 106, 84, 172, 106, 84, 172, 102, 84, 172, 102, 76, 172, 106, 84,
+ 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 102, 76, 172, 102, 84,
+ 172, 102, 76, 172, 106, 84, 180, 110, 84, 180, 106, 84, 172, 102, 76,
+ 172, 106, 84, 172, 106, 84, 164, 98, 76, 164, 98, 76, 172, 102, 84,
+ 164, 98, 76, 172, 106, 76, 172, 102, 84, 164, 98, 76, 172, 102, 76,
+ 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 102, 76, 172, 102, 84,
+ 172, 102, 76, 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 98, 76,
+ 164, 102, 84, 180, 110, 84, 172, 110, 84, 172, 102, 84, 172, 102, 76,
+ 172, 106, 84, 172, 106, 84, 172, 98, 76, 172, 102, 76, 172, 106, 84,
+ 172, 106, 84, 172, 102, 84, 180, 110, 84, 172, 106, 84, 156, 94, 68,
+ 164, 90, 68, 172, 106, 84, 180, 110, 84, 164, 102, 84, 164, 98, 76,
+ 164, 98, 76, 164, 102, 84, 172, 106, 84, 164, 98, 84, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 172, 106, 84, 172, 106, 84, 164, 98, 76,
+ 164, 94, 76, 164, 98, 76, 164, 98, 84, 164, 98, 76, 164, 98, 76,
+ 164, 98, 84, 172, 102, 84, 172, 98, 76, 164, 98, 76, 164, 94, 76,
+ 164, 98, 76, 172, 102, 84, 164, 98, 84, 164, 94, 76, 164, 94, 76,
+ 164, 94, 76, 164, 98, 84, 164, 98, 76, 164, 94, 76, 156, 86, 68,
+ 164, 94, 76, 156, 94, 76, 164, 98, 76, 164, 98, 76, 164, 102, 84,
+ 172, 102, 76, 164, 102, 84, 164, 102, 76, 172, 102, 84, 164, 102, 76,
+ 164, 102, 84, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 84,
+ 164, 102, 76, 164, 102, 84, 172, 98, 84, 164, 102, 84, 164, 98, 76,
+ 164, 102, 84, 156, 98, 76, 164, 98, 76, 164, 94, 76, 164, 98, 76,
+ 172, 98, 84, 172, 98, 84, 164, 90, 76, 172, 106, 92, 164, 106, 92,
+ 132, 70, 60, 116, 62, 44, 116, 58, 44, 164, 98, 84, 164, 98, 76,
+ 164, 98, 76, 156, 90, 68, 156, 90, 68, 164, 98, 76, 164, 102, 84,
+ 164, 98, 76, 172, 106, 84, 172, 102, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 92, 172, 106, 84, 172, 110, 92, 172, 106, 84, 180, 110, 92,
+ 172, 106, 84, 180, 110, 92, 180, 110, 92, 180, 114, 100, 180, 110, 92,
+ 172, 106, 84, 164, 98, 76, 180, 110, 92, 180, 110, 92, 180, 114, 92,
+ 188, 118, 100, 188, 118, 100, 180, 114, 92, 180, 110, 92, 180, 110, 92,
+ 180, 114, 92, 188, 118, 92, 188, 118, 100, 180, 110, 84, 180, 110, 92,
+ 188, 118, 92, 172, 106, 84, 180, 110, 84, 180, 114, 92, 180, 110, 92,
+ 180, 110, 84, 172, 106, 84, 172, 106, 84, 180, 106, 84, 180, 110, 92,
+ 172, 106, 84, 180, 110, 84, 180, 110, 92, 180, 114, 92, 180, 114, 92,
+ 180, 110, 92, 180, 106, 84, 172, 110, 84, 180, 106, 84, 180, 110, 92,
+ 180, 110, 84, 180, 118, 100, 188, 114, 92, 180, 114, 92, 180, 110, 92,
+ 188, 122, 100, 188, 118, 92, 180, 114, 100, 180, 114, 84, 180, 110, 92,
+ 180, 110, 84, 180, 110, 92, 180, 110, 84, 172, 106, 84, 172, 110, 84,
+ 180, 110, 84, 180, 110, 92, 180, 110, 84, 180, 110, 92, 180, 110, 84,
+ 180, 110, 92, 164, 98, 76, 172, 102, 76, 172, 106, 84, 172, 102, 76,
+ 172, 102, 76, 172, 102, 76, 172, 106, 84, 180, 106, 84, 180, 110, 84,
+ 180, 110, 84, 180, 110, 92, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 110, 84, 180, 114, 92, 180, 110, 92, 172, 106, 84, 180, 106, 84,
+ 180, 110, 84, 172, 102, 76, 172, 102, 76, 172, 102, 76, 164, 94, 76,
+ 172, 106, 84, 172, 102, 84, 172, 106, 84, 172, 102, 84, 172, 106, 84,
+ 180, 110, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 180, 110, 84, 172, 106, 84, 172, 102, 76, 172, 102, 84,
+ 180, 110, 84, 180, 110, 92, 172, 106, 76, 172, 102, 84, 172, 106, 84,
+ 172, 106, 84, 172, 102, 76, 164, 102, 76, 180, 106, 84, 164, 98, 76,
+ 164, 102, 76, 180, 110, 84, 172, 110, 84, 164, 94, 76, 156, 94, 68,
+ 172, 102, 84, 172, 106, 84, 172, 106, 92, 164, 102, 84, 164, 98, 76,
+ 164, 102, 84, 172, 102, 84, 164, 98, 76, 164, 98, 84, 164, 102, 84,
+ 156, 90, 68, 164, 102, 84, 164, 102, 84, 156, 86, 68, 148, 86, 68,
+ 172, 102, 84, 172, 110, 84, 172, 102, 84, 172, 102, 84, 172, 102, 84,
+ 172, 102, 84, 164, 98, 76, 164, 94, 76, 156, 94, 76, 164, 94, 76,
+ 164, 98, 76, 172, 98, 84, 164, 98, 76, 156, 90, 76, 164, 94, 76,
+ 172, 98, 76, 164, 98, 84, 164, 94, 76, 156, 90, 68, 148, 90, 68,
+ 156, 94, 76, 164, 94, 76, 164, 102, 84, 164, 102, 84, 164, 102, 84,
+ 164, 98, 76, 164, 98, 84, 172, 106, 84, 164, 102, 84, 172, 102, 84,
+ 164, 98, 76, 164, 98, 84, 164, 98, 76, 164, 102, 76, 164, 98, 84,
+ 164, 94, 76, 164, 94, 76, 164, 98, 84, 164, 102, 84, 164, 102, 84,
+ 164, 98, 76, 164, 94, 76, 156, 94, 76, 164, 98, 76, 164, 94, 84,
+ 164, 98, 84, 156, 94, 76, 164, 106, 92, 164, 102, 92, 124, 66, 52,
+ 116, 58, 44, 116, 58, 36, 164, 106, 92, 172, 106, 84, 164, 106, 84,
+ 172, 102, 84, 164, 102, 84, 164, 102, 84, 164, 102, 76, 164, 98, 84,
+ 172, 106, 84, 172, 106, 84, 172, 110, 92, 172, 110, 84, 172, 106, 92,
+ 172, 106, 84, 172, 110, 92, 180, 114, 92, 180, 110, 92, 180, 110, 92,
+ 172, 110, 92, 180, 110, 92, 188, 118, 92, 188, 118, 100, 180, 114, 100,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 188, 118, 100, 180, 114, 100,
+ 180, 114, 92, 180, 114, 92, 180, 110, 92, 172, 106, 84, 188, 118, 100,
+ 188, 118, 92, 188, 118, 100, 188, 118, 92, 188, 118, 92, 180, 114, 92,
+ 180, 106, 92, 180, 114, 92, 188, 118, 100, 180, 114, 100, 180, 110, 92,
+ 172, 106, 84, 180, 110, 92, 180, 114, 92, 180, 114, 92, 180, 110, 92,
+ 172, 106, 84, 172, 106, 84, 180, 114, 92, 188, 122, 100, 188, 118, 100,
+ 180, 118, 92, 188, 114, 100, 180, 118, 92, 188, 118, 100, 188, 118, 100,
+ 188, 118, 100, 180, 114, 92, 180, 118, 92, 188, 118, 100, 188, 122, 100,
+ 188, 118, 100, 180, 114, 92, 188, 114, 92, 180, 114, 100, 180, 114, 92,
+ 180, 110, 92, 172, 106, 84, 188, 118, 92, 180, 114, 92, 172, 110, 84,
+ 172, 110, 84, 172, 110, 84, 172, 110, 84, 180, 110, 84, 172, 106, 84,
+ 172, 110, 84, 172, 106, 84, 180, 106, 84, 172, 106, 84, 180, 106, 84,
+ 172, 102, 84, 180, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 180, 110, 84, 180, 114, 84, 180, 110, 92, 180, 110, 84, 180, 110, 92,
+ 180, 110, 84, 172, 106, 84, 172, 106, 76, 172, 102, 84, 164, 102, 76,
+ 164, 102, 76, 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 102, 76,
+ 172, 102, 84, 172, 106, 84, 180, 110, 84, 180, 110, 92, 172, 106, 84,
+ 172, 106, 84, 172, 102, 84, 180, 106, 84, 172, 106, 84, 180, 106, 92,
+ 172, 106, 84, 180, 106, 92, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 172, 110, 84, 180, 110, 84, 172, 110, 84, 172, 98, 76,
+ 164, 102, 76, 172, 110, 84, 180, 118, 92, 172, 106, 84, 172, 110, 84,
+ 172, 102, 84, 172, 102, 76, 164, 102, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 68, 164, 102, 84, 164, 102, 76, 164, 98, 84, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 102, 76, 164, 102, 84, 164, 98, 76,
+ 164, 98, 76, 156, 98, 76, 164, 94, 76, 156, 94, 76, 164, 98, 76,
+ 164, 98, 84, 164, 106, 84, 164, 98, 76, 164, 98, 76, 156, 94, 76,
+ 156, 94, 76, 164, 94, 76, 164, 98, 76, 172, 102, 84, 164, 102, 84,
+ 164, 94, 76, 156, 98, 76, 164, 94, 76, 164, 98, 76, 164, 98, 76,
+ 164, 102, 76, 164, 94, 76, 156, 94, 76, 148, 86, 68, 164, 94, 76,
+ 164, 102, 84, 164, 102, 76, 164, 94, 76, 156, 94, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 84, 164, 98, 76, 164, 98, 76, 164, 98, 84,
+ 164, 94, 84, 164, 90, 76, 164, 94, 76, 164, 98, 84, 164, 98, 84,
+ 164, 94, 76, 164, 94, 76, 172, 102, 84, 164, 98, 76, 172, 98, 84,
+ 164, 98, 84, 172, 110, 92, 164, 102, 84, 124, 66, 52, 116, 58, 36,
+ 108, 46, 28, 180, 110, 92, 180, 110, 92, 172, 110, 92, 172, 110, 84,
+ 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 110, 92,
+ 172, 110, 92, 180, 110, 92, 172, 110, 92, 172, 110, 84, 172, 110, 92,
+ 180, 114, 92, 180, 118, 100, 180, 110, 92, 172, 106, 84, 180, 110, 92,
+ 180, 110, 92, 180, 114, 100, 188, 118, 100, 180, 114, 92, 180, 114, 92,
+ 180, 114, 100, 180, 114, 92, 180, 114, 100, 180, 114, 92, 180, 110, 92,
+ 180, 110, 92, 172, 106, 92, 180, 106, 84, 180, 114, 92, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 172, 110, 92,
+ 180, 110, 92, 188, 118, 100, 180, 114, 92, 180, 110, 92, 172, 106, 84,
+ 180, 106, 92, 180, 110, 92, 180, 114, 92, 172, 106, 92, 172, 106, 84,
+ 180, 106, 92, 180, 114, 92, 188, 118, 100, 188, 118, 100, 180, 114, 92,
+ 180, 110, 92, 180, 114, 100, 188, 118, 100, 188, 118, 100, 180, 118, 100,
+ 188, 118, 100, 188, 118, 100, 188, 118, 100, 196, 126, 108, 188, 122, 100,
+ 188, 118, 100, 188, 118, 100, 188, 122, 100, 188, 118, 100, 180, 118, 100,
+ 180, 114, 92, 188, 118, 100, 180, 118, 92, 180, 110, 84, 180, 110, 92,
+ 180, 114, 84, 180, 114, 92, 180, 110, 92, 180, 110, 84, 180, 110, 92,
+ 180, 110, 84, 180, 110, 92, 180, 110, 92, 188, 114, 84, 180, 110, 92,
+ 180, 110, 84, 188, 114, 92, 188, 114, 92, 180, 118, 92, 188, 118, 100,
+ 188, 118, 92, 188, 122, 100, 188, 118, 92, 188, 118, 100, 180, 118, 92,
+ 180, 106, 84, 172, 106, 84, 172, 102, 76, 172, 102, 76, 172, 102, 84,
+ 172, 102, 76, 172, 106, 84, 172, 106, 84, 172, 102, 84, 164, 102, 84,
+ 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 102, 84, 172, 102, 84,
+ 164, 98, 84, 172, 106, 84, 172, 110, 92, 172, 106, 84, 180, 110, 92,
+ 172, 106, 84, 172, 110, 92, 180, 106, 92, 172, 110, 92, 180, 110, 84,
+ 172, 114, 92, 180, 114, 92, 172, 110, 84, 172, 106, 84, 172, 106, 84,
+ 180, 114, 84, 180, 118, 92, 180, 110, 84, 172, 110, 84, 172, 110, 84,
+ 172, 106, 84, 164, 102, 76, 172, 102, 76, 164, 102, 76, 164, 102, 84,
+ 172, 102, 76, 164, 102, 84, 164, 98, 76, 164, 98, 84, 164, 98, 76,
+ 164, 102, 84, 164, 102, 84, 172, 98, 76, 164, 98, 84, 164, 98, 76,
+ 164, 94, 76, 156, 94, 68, 164, 94, 76, 164, 98, 76, 164, 98, 76,
+ 164, 102, 84, 172, 102, 84, 164, 102, 84, 164, 98, 76, 164, 98, 76,
+ 156, 94, 76, 164, 98, 76, 164, 98, 76, 164, 102, 76, 164, 98, 76,
+ 164, 98, 76, 156, 94, 76, 164, 98, 76, 164, 102, 84, 164, 98, 84,
+ 164, 98, 76, 164, 94, 76, 156, 94, 68, 164, 102, 84, 172, 106, 84,
+ 172, 110, 92, 172, 102, 84, 164, 102, 76, 172, 102, 84, 164, 106, 84,
+ 164, 98, 84, 164, 98, 76, 164, 98, 84, 156, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 84, 164, 98, 84, 164, 94, 76,
+ 164, 94, 76, 164, 94, 76, 164, 98, 84, 164, 98, 84, 164, 98, 84,
+ 164, 94, 76, 156, 94, 84, 156, 94, 76, 156, 94, 76, 156, 90, 76,
+ 164, 98, 84, 156, 90, 76, 116, 54, 36, 108, 46, 28, 116, 54, 36,
+ 172, 110, 92, 172, 110, 92, 180, 110, 92, 172, 110, 92, 172, 106, 84,
+ 172, 106, 92, 164, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 172, 110, 84, 172, 106, 92, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 180, 110, 92, 172, 106, 84, 172, 106, 84, 172, 106, 84, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 188, 114, 100, 180, 114, 92, 180, 110, 92,
+ 180, 110, 92, 180, 110, 92, 180, 110, 92, 172, 106, 84, 180, 106, 92,
+ 172, 110, 84, 172, 106, 92, 180, 110, 84, 180, 110, 92, 180, 110, 92,
+ 180, 110, 84, 180, 110, 92, 180, 106, 84, 180, 106, 84, 180, 114, 92,
+ 180, 114, 100, 180, 114, 92, 172, 106, 92, 172, 106, 84, 172, 106, 84,
+ 172, 106, 92, 180, 110, 92, 172, 106, 84, 172, 102, 84, 172, 106, 84,
+ 180, 114, 92, 180, 114, 100, 180, 114, 92, 180, 114, 92, 180, 110, 92,
+ 180, 114, 92, 188, 122, 100, 188, 118, 100, 188, 118, 100, 180, 114, 92,
+ 180, 114, 92, 180, 114, 92, 180, 110, 92, 172, 106, 92, 172, 106, 84,
+ 172, 106, 84, 172, 106, 92, 172, 106, 84, 180, 110, 92, 172, 110, 84,
+ 180, 114, 92, 180, 114, 92, 172, 110, 84, 172, 110, 84, 172, 110, 84,
+ 180, 110, 92, 180, 114, 84, 172, 110, 84, 172, 102, 84, 172, 106, 76,
+ 172, 106, 84, 180, 106, 84, 172, 106, 84, 180, 106, 84, 180, 106, 84,
+ 172, 106, 84, 180, 106, 84, 180, 110, 84, 172, 110, 92, 180, 110, 84,
+ 180, 110, 92, 172, 110, 84, 180, 110, 84, 172, 106, 84, 172, 106, 84,
+ 172, 106, 84, 164, 102, 84, 172, 102, 76, 164, 102, 76, 172, 102, 84,
+ 172, 106, 76, 172, 106, 84, 172, 102, 84, 172, 102, 84, 172, 106, 84,
+ 180, 106, 84, 172, 106, 92, 172, 106, 84, 172, 102, 84, 172, 102, 84,
+ 172, 102, 84, 172, 106, 84, 172, 102, 84, 172, 106, 84, 172, 106, 92,
+ 180, 106, 84, 172, 106, 92, 172, 110, 84, 180, 110, 92, 180, 110, 92,
+ 172, 114, 92, 180, 110, 84, 172, 114, 92, 180, 110, 84, 172, 114, 92,
+ 180, 110, 92, 172, 114, 92, 180, 110, 92, 172, 106, 84, 172, 106, 84,
+ 164, 106, 84, 172, 106, 84, 164, 102, 84, 172, 106, 84, 164, 98, 76,
+ 164, 98, 76, 164, 98, 84, 164, 102, 76, 164, 102, 84, 164, 98, 76,
+ 164, 98, 84, 164, 98, 76, 164, 98, 76, 164, 98, 76, 156, 94, 76,
+ 156, 90, 76, 156, 94, 68, 156, 94, 76, 156, 94, 76, 164, 98, 76,
+ 164, 102, 84, 164, 102, 76, 164, 98, 76, 156, 94, 76, 156, 94, 76,
+ 156, 94, 68, 156, 90, 76, 156, 94, 76, 164, 98, 76, 164, 98, 76,
+ 156, 94, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 156, 94, 76, 156, 86, 68, 156, 94, 68, 164, 98, 76, 164, 98, 76,
+ 156, 94, 76, 156, 90, 68, 156, 94, 76, 164, 94, 76, 156, 98, 76,
+ 164, 94, 76, 156, 98, 76, 164, 94, 76, 164, 98, 76, 156, 94, 76,
+ 164, 98, 76, 156, 94, 76, 164, 94, 76, 156, 90, 76, 156, 90, 76,
+ 156, 90, 76, 156, 94, 76, 164, 94, 76, 156, 90, 76, 156, 94, 76,
+ 164, 98, 84, 164, 94, 76, 164, 98, 84, 156, 94, 76, 164, 102, 84,
+ 156, 94, 76, 116, 58, 36, 116, 54, 36, 116, 58, 36, 180, 114, 100,
+ 180, 118, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92,
+ 180, 110, 92, 172, 110, 92, 180, 114, 92, 180, 114, 100, 180, 114, 92,
+ 180, 114, 92, 172, 110, 92, 172, 110, 92, 180, 114, 92, 180, 118, 100,
+ 180, 114, 92, 180, 114, 100, 188, 118, 100, 188, 118, 100, 188, 122, 100,
+ 196, 126, 108, 188, 122, 108, 196, 126, 100, 188, 122, 108, 188, 122, 100,
+ 188, 118, 100, 180, 118, 100, 188, 114, 100, 180, 118, 100, 188, 118, 100,
+ 188, 118, 100, 196, 126, 108, 188, 126, 100, 196, 126, 108, 188, 122, 100,
+ 180, 114, 100, 180, 114, 92, 188, 122, 100, 196, 122, 108, 196, 126, 108,
+ 196, 126, 100, 188, 118, 100, 180, 114, 100, 188, 114, 92, 180, 118, 100,
+ 188, 122, 100, 188, 118, 100, 188, 114, 100, 188, 118, 100, 188, 122, 100,
+ 196, 122, 108, 188, 126, 108, 188, 122, 100, 196, 126, 108, 196, 130, 108,
+ 196, 130, 116, 196, 130, 108, 196, 126, 108, 188, 118, 100, 180, 114, 100,
+ 180, 110, 92, 172, 106, 84, 172, 106, 84, 172, 102, 84, 172, 102, 84,
+ 172, 106, 84, 180, 106, 92, 180, 114, 92, 180, 114, 92, 180, 118, 92,
+ 180, 118, 92, 180, 118, 92, 180, 118, 92, 188, 118, 92, 180, 118, 92,
+ 180, 118, 92, 188, 118, 100, 180, 114, 84, 180, 110, 92, 188, 114, 92,
+ 180, 110, 92, 188, 114, 92, 188, 118, 92, 188, 118, 100, 188, 118, 92,
+ 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 114, 92, 180, 110, 84,
+ 180, 110, 92, 180, 110, 84, 180, 110, 84, 188, 118, 92, 180, 114, 92,
+ 180, 114, 92, 180, 110, 84, 180, 110, 92, 180, 114, 92, 180, 114, 92,
+ 188, 118, 92, 188, 118, 100, 188, 122, 100, 188, 122, 100, 188, 122, 108,
+ 188, 122, 100, 188, 122, 100, 188, 122, 100, 188, 118, 100, 180, 114, 92,
+ 180, 114, 92, 180, 114, 100, 188, 114, 92, 180, 118, 100, 188, 118, 100,
+ 188, 118, 100, 188, 118, 100, 188, 122, 100, 180, 122, 100, 188, 118, 100,
+ 188, 122, 100, 188, 122, 100, 188, 126, 108, 188, 122, 100, 180, 118, 92,
+ 172, 106, 84, 172, 110, 84, 172, 106, 84, 164, 102, 84, 172, 102, 76,
+ 164, 102, 76, 164, 102, 84, 172, 102, 76, 156, 94, 76, 164, 98, 76,
+ 164, 98, 76, 164, 102, 84, 164, 98, 76, 164, 102, 76, 164, 98, 76,
+ 156, 98, 76, 164, 98, 84, 164, 98, 76, 156, 94, 76, 164, 94, 68,
+ 156, 94, 76, 156, 94, 68, 164, 94, 76, 156, 94, 76, 164, 98, 76,
+ 164, 98, 84, 164, 98, 76, 156, 94, 76, 156, 90, 68, 156, 94, 76,
+ 156, 90, 68, 156, 94, 76, 164, 94, 76, 156, 94, 76, 164, 94, 76,
+ 156, 98, 76, 164, 98, 76, 164, 98, 84, 156, 98, 76, 156, 94, 68,
+ 164, 94, 76, 164, 98, 76, 164, 102, 84, 164, 102, 84, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 156, 94, 76, 156, 94, 68,
+ 156, 94, 76, 156, 94, 76, 156, 94, 76, 156, 94, 76, 156, 94, 68,
+ 156, 94, 76, 172, 98, 84, 164, 98, 84, 172, 98, 76, 164, 94, 84,
+ 172, 98, 84, 164, 98, 84, 164, 98, 84, 172, 98, 84, 164, 98, 84,
+ 164, 98, 84, 164, 106, 84, 164, 102, 84, 172, 110, 92, 164, 98, 84,
+ 124, 66, 44, 116, 58, 36, 116, 50, 36, 172, 106, 84, 164, 102, 84,
+ 172, 102, 84, 164, 102, 84, 172, 102, 84, 164, 102, 84, 164, 102, 84,
+ 172, 102, 84, 164, 102, 84, 172, 106, 84, 164, 106, 84, 172, 102, 84,
+ 164, 102, 76, 172, 102, 84, 164, 102, 84, 172, 106, 84, 172, 102, 84,
+ 180, 106, 84, 172, 110, 92, 180, 114, 92, 180, 110, 92, 180, 114, 92,
+ 180, 114, 92, 180, 114, 100, 180, 114, 92, 180, 110, 92, 180, 110, 92,
+ 172, 106, 84, 180, 110, 84, 172, 106, 84, 180, 110, 92, 180, 110, 92,
+ 180, 118, 92, 180, 114, 100, 180, 110, 92, 180, 110, 92, 180, 106, 92,
+ 172, 102, 84, 180, 114, 92, 180, 114, 92, 180, 114, 100, 180, 114, 92,
+ 180, 110, 92, 180, 106, 92, 172, 106, 84, 172, 106, 84, 180, 106, 92,
+ 172, 110, 92, 172, 106, 84, 180, 110, 92, 180, 110, 92, 180, 114, 92,
+ 180, 110, 92, 180, 110, 92, 180, 110, 92, 188, 114, 100, 188, 122, 100,
+ 188, 118, 100, 180, 110, 92, 172, 106, 84, 172, 102, 84, 164, 98, 76,
+ 172, 102, 84, 172, 102, 84, 164, 102, 84, 172, 98, 76, 164, 98, 84,
+ 172, 106, 84, 180, 106, 92, 180, 110, 92, 172, 106, 92, 172, 110, 84,
+ 172, 106, 84, 172, 110, 92, 172, 106, 84, 172, 110, 92, 180, 106, 84,
+ 172, 110, 92, 180, 110, 84, 172, 110, 92, 180, 110, 84, 180, 110, 92,
+ 180, 114, 92, 180, 114, 92, 188, 114, 92, 188, 114, 92, 180, 110, 92,
+ 180, 110, 92, 180, 110, 92, 180, 110, 84, 180, 110, 92, 172, 110, 84,
+ 172, 106, 84, 172, 106, 92, 172, 106, 84, 180, 106, 84, 172, 106, 84,
+ 172, 102, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84, 172, 106, 84,
+ 180, 110, 92, 180, 110, 92, 180, 110, 92, 180, 114, 92, 180, 114, 100,
+ 180, 114, 92, 180, 110, 92, 180, 110, 92, 172, 102, 84, 172, 102, 84,
+ 172, 106, 84, 172, 106, 84, 172, 106, 92, 180, 110, 84, 172, 110, 92,
+ 180, 110, 92, 172, 106, 92, 172, 106, 84, 172, 106, 84, 172, 110, 92,
+ 180, 114, 92, 180, 110, 92, 172, 110, 92, 172, 102, 84, 172, 106, 92,
+ 164, 102, 84, 172, 102, 84, 164, 102, 84, 164, 98, 84, 164, 102, 76,
+ 164, 98, 84, 164, 102, 84, 164, 98, 76, 164, 98, 76, 164, 98, 84,
+ 172, 102, 76, 164, 102, 84, 164, 98, 84, 164, 98, 84, 164, 98, 76,
+ 172, 102, 76, 164, 102, 84, 164, 102, 76, 164, 98, 84, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 164, 94, 76, 164, 98, 76, 164, 94, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 102, 84, 164, 102, 84, 164, 98, 76, 156, 94, 76, 164, 98, 76,
+ 164, 98, 84, 172, 102, 84, 164, 102, 76, 164, 98, 84, 164, 98, 76,
+ 164, 98, 84, 164, 98, 76, 164, 94, 76, 164, 94, 76, 164, 94, 76,
+ 156, 94, 76, 164, 94, 68, 164, 94, 76, 164, 94, 76, 156, 94, 76,
+ 164, 94, 76, 164, 90, 76, 156, 94, 76, 164, 94, 76, 164, 94, 76,
+ 156, 94, 76, 164, 94, 76, 164, 94, 76, 156, 94, 76, 164, 94, 76,
+ 164, 102, 84, 164, 102, 84, 172, 106, 92, 156, 94, 76, 124, 62, 44,
+ 116, 50, 36, 108, 50, 28, 156, 86, 68, 156, 90, 68, 148, 86, 68,
+ 156, 90, 68, 148, 86, 68, 156, 90, 68, 156, 86, 68, 148, 90, 68,
+ 156, 90, 68, 156, 90, 76, 156, 94, 76, 156, 90, 68, 148, 86, 68,
+ 156, 86, 68, 156, 90, 68, 156, 90, 76, 148, 86, 68, 156, 86, 68,
+ 156, 90, 68, 164, 90, 76, 156, 90, 68, 156, 90, 76, 164, 90, 68,
+ 156, 90, 76, 164, 90, 68, 156, 90, 76, 156, 90, 68, 156, 90, 68,
+ 156, 90, 76, 156, 90, 68, 156, 90, 68, 156, 90, 68, 156, 86, 76,
+ 156, 86, 68, 156, 90, 76, 156, 90, 68, 156, 90, 76, 156, 90, 68,
+ 164, 90, 76, 164, 94, 76, 164, 94, 76, 156, 94, 76, 156, 90, 68,
+ 156, 90, 68, 156, 86, 68, 156, 86, 68, 156, 86, 68, 156, 86, 68,
+ 156, 90, 68, 156, 90, 68, 156, 90, 76, 164, 90, 68, 156, 90, 76,
+ 156, 90, 68, 148, 86, 68, 156, 86, 68, 164, 94, 76, 164, 94, 76,
+ 156, 90, 68, 156, 90, 68, 156, 86, 68, 156, 86, 68, 156, 86, 68,
+ 156, 86, 68, 156, 86, 68, 156, 86, 68, 156, 86, 68, 156, 86, 68,
+ 156, 90, 68, 164, 94, 76, 156, 90, 68, 156, 94, 76, 164, 98, 76,
+ 164, 94, 76, 156, 94, 68, 156, 90, 68, 156, 94, 68, 164, 94, 68,
+ 156, 86, 68, 156, 86, 68, 156, 90, 68, 156, 90, 68, 164, 90, 68,
+ 164, 90, 76, 164, 90, 68, 164, 90, 76, 164, 94, 76, 156, 94, 68,
+ 164, 94, 68, 156, 90, 68, 156, 90, 68, 164, 90, 68, 164, 94, 76,
+ 156, 90, 68, 156, 90, 68, 156, 90, 68, 156, 90, 68, 164, 90, 68,
+ 156, 90, 68, 156, 90, 68, 164, 90, 68, 156, 90, 68, 156, 90, 76,
+ 156, 90, 68, 156, 90, 76, 164, 90, 68, 156, 90, 68, 156, 90, 76,
+ 156, 90, 68, 156, 90, 76, 156, 90, 68, 156, 90, 76, 156, 86, 68,
+ 164, 90, 76, 156, 90, 68, 164, 90, 76, 156, 94, 68, 164, 94, 76,
+ 156, 90, 68, 156, 90, 76, 156, 90, 68, 156, 90, 76, 156, 94, 76,
+ 156, 94, 76, 156, 90, 76, 148, 86, 68, 164, 98, 84, 164, 98, 76,
+ 164, 98, 76, 156, 94, 76, 164, 94, 76, 156, 94, 76, 164, 94, 76,
+ 156, 94, 76, 164, 94, 76, 156, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 94, 76, 164, 98, 76, 156, 94, 76, 156, 94, 76, 164, 98, 76,
+ 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76, 164, 98, 76,
+ 164, 98, 76, 156, 94, 76, 156, 94, 76, 156, 90, 68, 156, 94, 76,
+ 156, 94, 76, 164, 94, 76, 156, 98, 76, 164, 98, 76, 164, 98, 84,
+ 156, 94, 76, 156, 94, 76, 156, 94, 76, 164, 94, 76, 164, 98, 76,
+ 164, 98, 76, 164, 94, 76, 156, 90, 76, 156, 90, 68, 156, 90, 68,
+ 156, 94, 76, 156, 90, 68, 156, 90, 68, 156, 90, 68, 148, 90, 68,
+ 156, 90, 68, 156, 90, 76, 156, 94, 68, 156, 90, 68, 156, 94, 76,
+ 156, 90, 68, 156, 94, 76, 156, 90, 68, 156, 94, 68, 156, 82, 68,
+ 156, 86, 76, 156, 90, 76, 156, 86, 76, 148, 86, 68, 156, 86, 68,
+ 156, 86, 76, 156, 90, 68, 156, 94, 76, 164, 94, 84, 164, 98, 84,
+ 156, 94, 76, 156, 98, 76, 148, 86, 68, 116, 54, 36, 108, 50, 28,
+ 108, 50, 36, 140, 78, 60, 140, 78, 60, 148, 78, 60, 140, 78, 60,
+ 140, 78, 60, 140, 78, 60, 140, 78, 60, 140, 78, 60, 148, 82, 60,
+ 148, 82, 60, 148, 82, 60, 148, 78, 60, 140, 74, 52, 140, 74, 52,
+ 140, 78, 60, 148, 82, 60, 140, 70, 52, 140, 74, 52, 148, 74, 60,
+ 140, 78, 60, 148, 74, 60, 140, 74, 52, 140, 74, 52, 140, 78, 60,
+ 140, 74, 52, 148, 78, 60, 140, 74, 60, 148, 78, 60, 148, 74, 60,
+ 148, 78, 60, 148, 74, 60, 148, 78, 60, 140, 70, 52, 140, 70, 52,
+ 148, 74, 60, 140, 74, 60, 148, 78, 60, 148, 78, 68, 140, 78, 60,
+ 148, 78, 60, 140, 78, 60, 148, 78, 60, 148, 78, 60, 148, 74, 60,
+ 140, 74, 52, 140, 74, 52, 140, 74, 52, 140, 74, 52, 140, 74, 52,
+ 148, 74, 60, 148, 78, 60, 140, 78, 60, 148, 74, 60, 140, 74, 52,
+ 140, 70, 52, 140, 74, 52, 140, 78, 60, 148, 78, 60, 148, 78, 60,
+ 148, 78, 60, 148, 78, 60, 148, 82, 60, 140, 74, 52, 140, 74, 52,
+ 140, 78, 60, 140, 74, 52, 140, 74, 52, 140, 74, 52, 140, 74, 52,
+ 140, 78, 60, 140, 82, 60, 148, 82, 60, 148, 86, 68, 148, 86, 60,
+ 140, 82, 60, 148, 78, 60, 140, 78, 60, 140, 78, 60, 140, 70, 52,
+ 140, 70, 52, 140, 74, 52, 140, 70, 52, 140, 74, 52, 140, 70, 52,
+ 140, 74, 52, 140, 74, 52, 140, 78, 60, 148, 74, 60, 140, 74, 52,
+ 140, 74, 60, 140, 74, 52, 140, 74, 60, 140, 78, 60, 148, 78, 60,
+ 156, 82, 60, 148, 82, 68, 156, 82, 60, 148, 82, 68, 148, 82, 60,
+ 156, 82, 68, 148, 82, 60, 148, 82, 68, 148, 82, 60, 148, 82, 60,
+ 148, 82, 60, 148, 82, 68, 148, 78, 60, 156, 82, 60, 148, 82, 68,
+ 148, 82, 60, 156, 82, 60, 148, 82, 60, 156, 82, 68, 148, 82, 60,
+ 156, 86, 68, 148, 82, 60, 156, 82, 68, 148, 82, 60, 148, 82, 68,
+ 148, 82, 68, 148, 82, 68, 148, 86, 68, 148, 82, 68, 156, 86, 68,
+ 148, 82, 68, 148, 82, 60, 148, 82, 68, 140, 78, 60, 148, 78, 68,
+ 140, 78, 60, 148, 78, 60, 140, 78, 60, 148, 78, 60, 140, 78, 60,
+ 148, 82, 60, 148, 78, 60, 140, 78, 60, 140, 78, 60, 140, 78, 60,
+ 140, 78, 60, 148, 78, 60, 148, 82, 60, 140, 78, 60, 148, 78, 60,
+ 140, 78, 60, 148, 78, 60, 140, 78, 60, 140, 78, 60, 148, 78, 60,
+ 148, 82, 60, 140, 74, 52, 140, 78, 60, 148, 78, 60, 140, 78, 60,
+ 148, 82, 60, 148, 82, 60, 148, 82, 60, 148, 82, 60, 148, 78, 60,
+ 148, 78, 60, 140, 78, 60, 140, 78, 60, 148, 82, 60, 148, 82, 60,
+ 148, 78, 60, 140, 78, 60, 148, 86, 60, 148, 82, 68, 148, 82, 60,
+ 148, 82, 60, 140, 78, 60, 148, 82, 60, 148, 78, 60, 148, 78, 60,
+ 140, 78, 60, 140, 78, 60, 140, 78, 60, 140, 78, 60, 140, 78, 60,
+ 140, 78, 60, 148, 78, 60, 140, 78, 60, 148, 82, 68, 148, 82, 68,
+ 148, 86, 68, 156, 82, 68, 148, 82, 68, 148, 82, 68, 148, 82, 68,
+ 148, 86, 68, 148, 82, 68, 148, 78, 60, 140, 82, 60, 140, 74, 60,
+ 140, 78, 60, 140, 74, 60, 116, 50, 36, 108, 50, 36, 108, 50, 28,
+ 108, 42, 28, 108, 42, 20, 108, 42, 20, 108, 42, 20, 116, 46, 28,
+ 108, 42, 20, 116, 46, 28, 108, 42, 20, 108, 46, 28, 108, 46, 28,
+ 116, 46, 28, 108, 46, 20, 108, 42, 20, 100, 42, 20, 108, 42, 20,
+ 108, 42, 28, 108, 42, 20, 116, 46, 28, 116, 46, 28, 116, 46, 28,
+ 108, 42, 20, 108, 38, 20, 108, 42, 28, 116, 42, 28, 108, 42, 20,
+ 116, 46, 28, 116, 46, 28, 116, 46, 28, 116, 50, 28, 108, 46, 28,
+ 116, 46, 28, 108, 42, 20, 108, 42, 28, 116, 42, 28, 108, 46, 28,
+ 116, 46, 28, 116, 46, 28, 108, 46, 28, 116, 42, 28, 108, 42, 20,
+ 116, 46, 28, 108, 42, 20, 116, 46, 28, 108, 46, 28, 108, 42, 20,
+ 116, 42, 28, 108, 38, 20, 108, 42, 28, 116, 46, 28, 108, 46, 28,
+ 116, 46, 28, 108, 42, 20, 108, 42, 20, 116, 42, 28, 116, 46, 28,
+ 116, 50, 28, 116, 50, 28, 116, 50, 28, 116, 46, 28, 116, 46, 28,
+ 116, 46, 28, 116, 50, 28, 116, 46, 28, 116, 50, 36, 124, 50, 36,
+ 116, 50, 28, 116, 46, 28, 116, 46, 28, 116, 46, 28, 116, 46, 28,
+ 108, 46, 20, 108, 50, 28, 116, 50, 28, 116, 54, 28, 108, 46, 28,
+ 108, 46, 20, 108, 42, 20, 108, 42, 20, 116, 50, 28, 116, 46, 28,
+ 116, 46, 28, 116, 46, 28, 116, 46, 28, 108, 46, 28, 116, 46, 28,
+ 116, 46, 28, 116, 46, 28, 116, 46, 28, 116, 46, 28, 116, 42, 28,
+ 116, 46, 28, 116, 46, 28, 116, 50, 28, 124, 50, 36, 124, 58, 36,
+ 124, 58, 36, 124, 58, 36, 124, 58, 36, 124, 58, 44, 124, 58, 36,
+ 124, 58, 36, 124, 54, 36, 132, 62, 44, 124, 54, 36, 124, 58, 36,
+ 124, 58, 36, 124, 58, 36, 124, 54, 44, 124, 58, 36, 132, 62, 44,
+ 124, 54, 36, 124, 58, 36, 124, 58, 36, 124, 58, 36, 124, 58, 36,
+ 124, 54, 36, 124, 58, 36, 124, 58, 36, 124, 58, 44, 124, 58, 36,
+ 124, 58, 44, 124, 54, 36, 124, 58, 44, 124, 58, 36, 124, 58, 44,
+ 124, 58, 44, 132, 62, 44, 124, 62, 44, 132, 62, 44, 124, 58, 44,
+ 124, 58, 44, 124, 58, 44, 132, 62, 44, 124, 62, 44, 132, 62, 44,
+ 124, 62, 44, 124, 62, 44, 124, 58, 36, 124, 58, 36, 124, 62, 44,
+ 124, 62, 44, 132, 62, 44, 116, 58, 36, 124, 58, 36, 124, 58, 44,
+ 124, 62, 44, 124, 62, 44, 124, 62, 44, 124, 62, 44, 124, 58, 36,
+ 124, 62, 44, 124, 58, 36, 124, 62, 44, 132, 62, 44, 124, 62, 44,
+ 132, 62, 44, 124, 66, 44, 132, 62, 44, 124, 62, 44, 124, 58, 36,
+ 124, 58, 36, 124, 62, 44, 132, 62, 44, 124, 62, 44, 124, 62, 44,
+ 124, 58, 36, 124, 62, 44, 124, 58, 36, 124, 58, 36, 124, 58, 44,
+ 124, 58, 36, 124, 58, 36, 116, 58, 36, 124, 58, 36, 124, 58, 36,
+ 124, 58, 36, 124, 58, 36, 124, 58, 36, 124, 58, 36, 124, 58, 36,
+ 124, 58, 36, 124, 58, 36, 124, 50, 36, 124, 54, 36, 124, 54, 36,
+ 124, 54, 36, 116, 54, 36, 116, 50, 36, 124, 54, 36, 124, 54, 44,
+ 124, 54, 36, 116, 54, 36, 116, 54, 36, 108, 46, 28, 124, 58, 44,
+ 124, 58, 44, 100, 42, 20, 108, 50, 28
+};
diff --git a/hacks/glx/endgame.c b/hacks/glx/endgame.c
new file mode 100644
index 0000000..ddba7f9
--- /dev/null
+++ b/hacks/glx/endgame.c
@@ -0,0 +1,971 @@
+/*
+ * endgame.c
+ * plays through a chess game ending. enjoy.
+ *
+ * version 1.0 - June 6, 2002
+ *
+ * Copyright (C) 2002-2008 Blair Tennessy (tennessb@unbc.ca)
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_chess 0
+# define release_chess 0
+# include "xlockmore.h"
+
+#else
+# include "xlock.h"
+#endif
+
+#ifdef USE_GL
+
+#define BOARDSIZE 8
+#define WHITES 5
+
+#include "gltrackball.h"
+#include "chessmodels.h"
+#include "chessgames.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_ROTATE "True"
+#define DEF_REFLECTIONS "True"
+#define DEF_SHADOWS "True"
+#define DEF_SMOOTH "True"
+#define DEF_CLASSIC "False"
+
+
+static XrmOptionDescRec opts[] = {
+ {"+rotate", ".chess.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".chess.rotate", XrmoptionNoArg, "true" },
+ {"+reflections", ".chess.reflections", XrmoptionNoArg, "false" },
+ {"-reflections", ".chess.reflections", XrmoptionNoArg, "true" },
+ {"+shadows", ".chess.shadows", XrmoptionNoArg, "false" },
+ {"-shadows", ".chess.shadows", XrmoptionNoArg, "true" },
+ {"+smooth", ".chess.smooth", XrmoptionNoArg, "false" },
+ {"-smooth", ".chess.smooth", XrmoptionNoArg, "true" },
+ {"+classic", ".chess.classic", XrmoptionNoArg, "false" },
+ {"-classic", ".chess.classic", XrmoptionNoArg, "true" },
+};
+
+static int rotate, reflections, smooth, shadows, classic;
+
+static argtype vars[] = {
+ {&rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+ {&reflections, "reflections", "Reflections", DEF_REFLECTIONS, t_Bool},
+ {&shadows, "shadows", "Shadows", DEF_SHADOWS, t_Bool},
+ {&smooth, "smooth", "Smooth", DEF_SMOOTH, t_Bool},
+ {&classic, "classic", "Classic", DEF_CLASSIC, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt chess_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct chess_description =
+{"chess", "init_chess", "draw_chess", NULL,
+ "draw_chess", "init_chess", NULL, &chess_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Chess", 0, NULL};
+
+#endif
+
+#define checkImageWidth 16
+#define checkImageHeight 16
+
+typedef struct {
+ GLXContext *glx_context;
+ Window window;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ ChessGame game;
+ int oldwhite;
+
+ /** definition of white/black (orange/gray) colors */
+ GLfloat colors[2][3];
+
+ GLubyte checkImage[checkImageWidth][checkImageHeight][3];
+ GLuint piecetexture, boardtexture;
+
+ int mpiece, tpiece, steps, done;
+ double from[2], to[2];
+ double dx, dz;
+ int moving, take, mc, count, wire;
+ double theta;
+
+ GLfloat position[4];
+ GLfloat position2[4];
+
+ GLfloat mod;
+
+ GLfloat ground[4];
+
+ int oldgame;
+
+ int poly_counts[PIECES]; /* polygon count of each type of piece */
+
+
+} Chesscreen;
+
+static Chesscreen *qs = NULL;
+
+static const GLfloat MaterialShadow[] = {0.0, 0.0, 0.0, 0.3};
+
+
+/* i prefer silvertip */
+static const GLfloat whites[WHITES][3] =
+ {
+ {1.0, 0.55, 0.1},
+ {0.8, 0.52, 0.8},
+ {0.43, 0.54, 0.76},
+ {0.2, 0.2, 0.2},
+ {0.35, 0.60, 0.35},
+ };
+
+static void build_colors(Chesscreen *cs)
+{
+
+ /* find new white */
+ int newwhite = cs->oldwhite;
+ while(newwhite == cs->oldwhite)
+ newwhite = random()%WHITES;
+ cs->oldwhite = newwhite;
+
+ cs->colors[0][0] = whites[cs->oldwhite][0];
+ cs->colors[0][1] = whites[cs->oldwhite][1];
+ cs->colors[0][2] = whites[cs->oldwhite][2];
+}
+
+/* build piece texture */
+static void make_piece_texture(Chesscreen *cs)
+{
+ int i, j, c;
+
+ for (i = 0; i < checkImageWidth; i++) {
+ for (j = 0; j < checkImageHeight; j++) {
+ c = ((j%2) == 0 || i%2 == 0) ? 240 : 180+random()%16;
+ cs->checkImage[i][j][0] = (GLubyte) c;
+ cs->checkImage[i][j][1] = (GLubyte) c;
+ cs->checkImage[i][j][2] = (GLubyte) c;
+ }
+ }
+
+ glGenTextures(1, &cs->piecetexture);
+ glBindTexture(GL_TEXTURE_2D, cs->piecetexture);
+
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth,
+ checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
+ &cs->checkImage[0][0]);
+}
+
+/* build board texture (uniform noise in [180,180+50]) */
+static void make_board_texture(Chesscreen *cs)
+{
+ int i, j, c;
+
+ for (i = 0; i < checkImageWidth; i++) {
+ for (j = 0; j < checkImageHeight; j++) {
+ c = 180 + random()%51;
+ cs->checkImage[i][j][0] = (GLubyte) c;
+ cs->checkImage[i][j][1] = (GLubyte) c;
+ cs->checkImage[i][j][2] = (GLubyte) c;
+ }
+ }
+
+ glGenTextures(1, &cs->boardtexture);
+ glBindTexture(GL_TEXTURE_2D, cs->boardtexture);
+
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth,
+ checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
+ &cs->checkImage[0][0]);
+}
+
+/** handle X event (trackball) */
+ENTRYPOINT Bool chess_handle_event (ModeInfo *mi, XEvent *event)
+{
+ Chesscreen *cs = &qs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, cs->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &cs->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ cs->done = 1;
+ return True;
+ }
+
+ return False;
+}
+
+static const GLfloat diffuse2[] = {1.0, 1.0, 1.0, 1.0};
+/*static const GLfloat ambient2[] = {0.7, 0.7, 0.7, 1.0};*/
+static const GLfloat shininess[] = {60.0};
+static const GLfloat specular[] = {0.4, 0.4, 0.4, 1.0};
+
+/* configure lighting */
+static void setup_lights(Chesscreen *cs)
+{
+ glEnable(GL_LIGHTING);
+ glLightfv(GL_LIGHT0, GL_POSITION, cs->position);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse2);
+ glEnable(GL_LIGHT0);
+
+/* glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient2); */
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
+
+ glLightfv(GL_LIGHT1, GL_SPECULAR, diffuse2);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse2);
+ glEnable(GL_LIGHT1);
+}
+
+/* draw pieces */
+static void drawPieces(ModeInfo *mi, Chesscreen *cs)
+{
+ int i, j;
+
+ for(i = 0; i < BOARDSIZE; ++i) {
+ for(j = 0; j < BOARDSIZE; ++j) {
+ if(cs->game.board[i][j]) {
+ int c = cs->game.board[i][j]/PIECES;
+ glColor3fv(cs->colors[c]);
+ glCallList(cs->game.board[i][j]%PIECES);
+ mi->polygon_count += cs->poly_counts[cs->game.board[i][j]%PIECES];
+ }
+
+ glTranslatef(1.0, 0.0, 0.0);
+ }
+
+ glTranslatef(-1.0*BOARDSIZE, 0.0, 1.0);
+ }
+
+ glTranslatef(0.0, 0.0, -1.0*BOARDSIZE);
+}
+
+/* draw pieces */
+static void drawPiecesShadow(ModeInfo *mi, Chesscreen *cs)
+{
+ int i, j;
+
+ for(i = 0; i < BOARDSIZE; ++i) {
+ for(j = 0; j < BOARDSIZE; ++j) {
+ if(cs->game.board[i][j]) {
+ glColor4f(0.0, 0.0, 0.0, 0.4);
+ glCallList(cs->game.board[i][j]%PIECES);
+ mi->polygon_count += cs->poly_counts[cs->game.board[i][j]%PIECES];
+ }
+
+ glTranslatef(1.0, 0.0, 0.0);
+ }
+
+ glTranslatef(-1.0*BOARDSIZE, 0.0, 1.0);
+ }
+
+ glTranslatef(0.0, 0.0, -1.0*BOARDSIZE);
+}
+
+/* draw a moving piece */
+static void drawMovingPiece(ModeInfo *mi, Chesscreen *cs, int shadow)
+{
+ int piece = cs->mpiece % PIECES;
+
+ if (piece == NONE) return;
+
+ glPushMatrix();
+
+ if(shadow) glColor4fv(MaterialShadow);
+ else glColor3fv(cs->colors[cs->mpiece/PIECES]);
+
+ /** assume a queening. should be more general */
+ if((cs->mpiece == PAWN && fabs(cs->to[0]) < 0.01) ||
+ (cs->mpiece == BPAWN && fabs(cs->to[0]-7.0) < 0.01)) {
+ glTranslatef(cs->from[1]+cs->steps*cs->dx, 0.0, cs->from[0]+cs->steps*cs->dz);
+
+ glColor4f(shadow ? MaterialShadow[0] : cs->colors[cs->mpiece/7][0],
+ shadow ? MaterialShadow[1] : cs->colors[cs->mpiece/7][1],
+ shadow ? MaterialShadow[2] : cs->colors[cs->mpiece/7][2],
+ (fabs(50.0-cs->steps))/50.0);
+
+ piece = cs->steps < 50 ? PAWN : QUEEN;
+
+ /* what a kludge */
+ if(cs->steps == 99)
+ cs->mpiece = cs->mpiece == PAWN ? QUEEN : BQUEEN;
+ }
+ else if(cs->mpiece % PIECES == KNIGHT) {
+ /* If there is nothing in the path of a knight, move it by sliding,
+ just like the other pieces. But if there are any pieces on the
+ middle two squares in its path, the knight would intersect them,
+ so in that case, move it in an airborne arc. */
+ GLfloat y;
+ int i, j;
+ Bool blocked_p = False;
+ int fromx = MIN(cs->from[1], cs->to[1]);
+ int fromy = MIN(cs->from[0], cs->to[0]);
+ int tox = MAX(cs->from[1], cs->to[1]);
+ int toy = MAX(cs->from[0], cs->to[0]);
+ if (fromx == tox-2) fromx = tox = fromx+1;
+ if (fromy == toy-2) fromy = toy = fromy+1;
+ for (i = fromy; i <= toy; i++) {
+ for (j = fromx; j <= tox; j++) {
+ if (cs->game.board[i][j]) {
+ blocked_p = True;
+ break;
+ }
+ }
+ }
+
+ if (!blocked_p)
+ goto SLIDE;
+
+ /* Move by hopping. */
+ y = 1.5 * sin (M_PI * cs->steps / 100.0);
+ glTranslatef(cs->from[1]+cs->steps*cs->dx, y,
+ cs->from[0]+cs->steps*cs->dz);
+
+ } else {
+ SLIDE:
+ /* Move by sliding. */
+ glTranslatef(cs->from[1]+cs->steps*cs->dx, 0.0, cs->from[0]+cs->steps*cs->dz);
+ }
+
+
+ if(!cs->wire)
+ glEnable(GL_BLEND);
+
+ glCallList(piece);
+ mi->polygon_count += cs->poly_counts[cs->mpiece % PIECES];
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
+
+ glPopMatrix();
+
+ if(!cs->wire)
+ glDisable(GL_BLEND);
+}
+
+/** code to squish a taken piece */
+static void drawTakePiece(ModeInfo *mi, Chesscreen *cs, int shadow)
+{
+ if(!cs->wire)
+ glEnable(GL_BLEND);
+
+ glColor4f(shadow ? MaterialShadow[0] : cs->colors[cs->tpiece/7][0],
+ shadow ? MaterialShadow[1] : cs->colors[cs->tpiece/7][1],
+ shadow ? MaterialShadow[2] : cs->colors[cs->tpiece/7][2],
+ (100-1.6*cs->steps)/100.0);
+
+ glTranslatef(cs->to[1], 0.0, cs->to[0]);
+
+ if(cs->mpiece % PIECES == KNIGHT)
+ glScalef(1.0+cs->steps/100.0, 1.0, 1.0+cs->steps/100.0);
+ else
+ glScalef(1.0, 1 - cs->steps/50.0 > 0.01 ? 1 - cs->steps/50.0 : 0.01, 1.0);
+ glCallList(cs->tpiece % 7);
+ mi->polygon_count += cs->poly_counts[cs->tpiece % PIECES];
+
+ if(!cs->wire)
+ glDisable(GL_BLEND);
+}
+
+/** draw board */
+static void drawBoard(ModeInfo *mi, Chesscreen *cs)
+{
+ int i, j;
+
+ glBegin(GL_QUADS);
+
+ for(i = 0; i < BOARDSIZE; ++i)
+ for(j = 0; j < BOARDSIZE; ++j) {
+ double ma1 = (i+j)%2 == 0 ? cs->mod*i : 0.0;
+ double mb1 = (i+j)%2 == 0 ? cs->mod*j : 0.0;
+ double ma2 = (i+j)%2 == 0 ? cs->mod*(i+1.0) : 0.01;
+ double mb2 = (i+j)%2 == 0 ? cs->mod*(j+1.0) : 0.01;
+
+ /*glColor3fv(colors[(i+j)%2]);*/
+ glColor4f(cs->colors[(i+j)%2][0], cs->colors[(i+j)%2][1],
+ cs->colors[(i+j)%2][2], 0.65);
+
+ glNormal3f(0.0, 1.0, 0.0);
+/* glTexCoord2f(mod*i, mod*(j+1.0)); */
+ glTexCoord2f(ma1, mb2);
+ glVertex3f(i, 0.0, j + 1.0);
+/* glTexCoord2f(mod*(i+1.0), mod*(j+1.0)); */
+ glTexCoord2f(ma2, mb2);
+ glVertex3f(i + 1.0, 0.0, j + 1.0);
+ glTexCoord2f(ma2, mb1);
+/* glTexCoord2f(mod*(i+1.0), mod*j); */
+ glVertex3f(i + 1.0, 0.0, j);
+ glTexCoord2f(ma1, mb1);
+/* glTexCoord2f(mod*i, mod*j); */
+ glVertex3f(i, 0.0, j);
+
+ mi->polygon_count++;
+ }
+ glEnd();
+
+ {
+ GLfloat off = 0.01;
+ GLfloat w = BOARDSIZE;
+ GLfloat h = 0.1;
+
+ /* Give the board a slight lip. */
+ /* #### oops, normals are wrong here, but you can't tell */
+
+ glColor3f(0.3, 0.3, 0.3);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, -h, w);
+ glVertex3f (0, 0, w);
+
+ glVertex3f (0, 0, w);
+ glVertex3f (0, -h, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, 0, w);
+
+ glVertex3f (w, 0, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, 0, 0);
+
+ glVertex3f (w, 0, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, 0, 0);
+
+ glVertex3f (0, -h, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, -h, w);
+ glVertex3f (0, -h, w);
+ glEnd();
+ mi->polygon_count += 4;
+
+ /* Fill in the underside of the board with an invisible black box
+ to hide the reflections that are not on tiles. Probably there's
+ a way to do this with stencils instead.
+ */
+ w -= off*2;
+ h = 5;
+
+ glPushMatrix();
+ glTranslatef (off, 0, off);
+ glDisable(GL_LIGHTING);
+ glColor3f(0,0,0);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, -h, w);
+ glVertex3f (0, 0, w);
+
+ glVertex3f (0, 0, w);
+ glVertex3f (0, -h, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, 0, w);
+
+ glVertex3f (w, 0, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, 0, 0);
+
+ glVertex3f (w, 0, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, 0, 0);
+
+ glVertex3f (0, -h, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, -h, w);
+ glVertex3f (0, -h, w);
+ glEnd();
+ mi->polygon_count += 4;
+ glPopMatrix();
+ if (!cs->wire)
+ glEnable(GL_LIGHTING);
+ }
+}
+
+static void draw_pieces(ModeInfo *mi, Chesscreen *cs, int wire)
+{
+ if (!cs->wire) {
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, cs->piecetexture);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ glColor4f(0.5, 0.5, 0.5, 1.0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialShadow);
+ }
+
+ drawPieces(mi, cs);
+ if(cs->moving) drawMovingPiece(mi, cs, 0);
+ if(cs->take) drawTakePiece(mi, cs, 0);
+ glDisable(GL_TEXTURE_2D);
+}
+
+static void draw_shadow_pieces(ModeInfo *mi, Chesscreen *cs, int wire)
+{
+ if (!cs->wire) {
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, cs->piecetexture);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ }
+
+ /* use the stencil */
+ glDisable(GL_LIGHTING);
+ glDisable(GL_COLOR_MATERIAL);
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+
+ glClear(GL_STENCIL_BUFFER_BIT);
+ glColorMask(0,0,0,0);
+ glEnable(GL_STENCIL_TEST);
+
+ glStencilFunc(GL_ALWAYS, 1, 0xFFFFFFFFL);
+ glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
+
+
+ glPushMatrix();
+ glTranslatef(0.0, 0.001, 0.0);
+
+ /* draw the pieces */
+ drawPiecesShadow(mi, cs);
+ if(cs->moving) drawMovingPiece(mi, cs, shadows);
+ if(cs->take) drawTakePiece(mi, cs, shadows);
+
+ glPopMatrix();
+
+
+ /* turn on drawing into colour buffer */
+ glColorMask(1,1,1,1);
+
+ /* programming with effect */
+ glDisable(GL_LIGHTING);
+ glDisable(GL_COLOR_MATERIAL);
+ glDisable(GL_TEXTURE_2D);
+
+ /* now draw the union of the shadows */
+
+ /*
+ <todo>
+ want to keep alpha values (alpha is involved in transition
+ effects of the active pieces).
+ </todo>
+ */
+ glStencilFunc(GL_NOTEQUAL, 0, 0xFFFFFFFFL);
+ glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
+
+ glEnable(GL_BLEND);
+
+ glColor4fv(MaterialShadow);
+
+ /* draw the board generously to fill the shadows */
+ glBegin(GL_QUADS);
+
+ glVertex3f(-1.0, 0.0, -1.0);
+ glVertex3f(-1.0, 0.0, BOARDSIZE + 1.0);
+ glVertex3f(1.0 + BOARDSIZE, 0.0, BOARDSIZE + 1.0);
+ glVertex3f(1.0 + BOARDSIZE, 0.0, -1.0);
+
+ glEnd();
+
+ glDisable(GL_STENCIL_TEST);
+
+ /* "pop" attributes */
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_COLOR_MATERIAL);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_CULL_FACE);
+
+
+
+}
+
+enum {X, Y, Z, W};
+enum {A, B, C, D};
+
+/* create a matrix that will project the desired shadow */
+static void shadowmatrix(GLfloat shadowMat[4][4],
+ GLfloat groundplane[4],
+ GLfloat lightpos[4])
+{
+ GLfloat dot;
+
+ /* find dot product between light position vector and ground plane normal */
+ dot = groundplane[X] * lightpos[X] +
+ groundplane[Y] * lightpos[Y] +
+ groundplane[Z] * lightpos[Z] +
+ groundplane[W] * lightpos[W];
+
+ shadowMat[0][0] = dot - lightpos[X] * groundplane[X];
+ shadowMat[1][0] = 0.f - lightpos[X] * groundplane[Y];
+ shadowMat[2][0] = 0.f - lightpos[X] * groundplane[Z];
+ shadowMat[3][0] = 0.f - lightpos[X] * groundplane[W];
+
+ shadowMat[X][1] = 0.f - lightpos[Y] * groundplane[X];
+ shadowMat[1][1] = dot - lightpos[Y] * groundplane[Y];
+ shadowMat[2][1] = 0.f - lightpos[Y] * groundplane[Z];
+ shadowMat[3][1] = 0.f - lightpos[Y] * groundplane[W];
+
+ shadowMat[X][2] = 0.f - lightpos[Z] * groundplane[X];
+ shadowMat[1][2] = 0.f - lightpos[Z] * groundplane[Y];
+ shadowMat[2][2] = dot - lightpos[Z] * groundplane[Z];
+ shadowMat[3][2] = 0.f - lightpos[Z] * groundplane[W];
+
+ shadowMat[X][3] = 0.f - lightpos[W] * groundplane[X];
+ shadowMat[1][3] = 0.f - lightpos[W] * groundplane[Y];
+ shadowMat[2][3] = 0.f - lightpos[W] * groundplane[Z];
+ shadowMat[3][3] = dot - lightpos[W] * groundplane[W];
+}
+
+/** reflectionboard */
+static void draw_reflections(ModeInfo *mi, Chesscreen *cs)
+{
+ int i, j;
+
+ glEnable(GL_STENCIL_TEST);
+ glStencilFunc(GL_ALWAYS, 1, 1);
+ glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
+ glColorMask(0,0,0,0);
+ glDisable(GL_CULL_FACE);
+
+ glDisable(GL_DEPTH_TEST);
+ glBegin(GL_QUADS);
+
+ /* only draw white squares */
+ for(i = 0; i < BOARDSIZE; ++i) {
+ for(j = (BOARDSIZE+i) % 2; j < BOARDSIZE; j += 2) {
+ glVertex3f(i, 0.0, j + 1.0);
+ glVertex3f(i + 1.0, 0.0, j + 1.0);
+ glVertex3f(i + 1.0, 0.0, j);
+ glVertex3f(i, 0.0, j);
+ mi->polygon_count++;
+ }
+ }
+ glEnd();
+ glEnable(GL_DEPTH_TEST);
+
+ glColorMask(1, 1, 1, 1);
+ glStencilFunc(GL_EQUAL, 1, 1);
+ glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
+
+ glPushMatrix();
+ glScalef(1.0, -1.0, 1.0);
+ glTranslatef(0.5, 0.0, 0.5);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, cs->position);
+ draw_pieces(mi, cs, cs->wire);
+ glPopMatrix();
+
+ glDisable(GL_STENCIL_TEST);
+ glLightfv(GL_LIGHT0, GL_POSITION, cs->position);
+
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ glColorMask(1,1,1,1);
+}
+
+/** draws the scene */
+static void display(ModeInfo *mi, Chesscreen *cs)
+{
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+
+ mi->polygon_count = 0;
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ /** setup perspectiv */
+ glTranslatef(0.0, 0.0, -1.5*BOARDSIZE);
+ glRotatef(30.0, 1.0, 0.0, 0.0);
+ gltrackball_rotate (cs->trackball);
+
+ if (rotate)
+ glRotatef(cs->theta*100, 0.0, 1.0, 0.0);
+ glTranslatef(-0.5*BOARDSIZE, 0.0, -0.5*BOARDSIZE);
+
+/* cs->position[0] = 4.0 + 1.0*-sin(cs->theta*100*M_PI/180.0); */
+/* cs->position[2] = 4.0 + 1.0* cos(cs->theta*100*M_PI/180.0); */
+/* cs->position[1] = 5.0; */
+
+ /* this is the lone light that the shadow matrix is generated from */
+ cs->position[0] = 1.0;
+ cs->position[2] = 1.0;
+ cs->position[1] = 16.0;
+
+ cs->position2[0] = 4.0 + 8.0*-sin(cs->theta*100*M_PI/180.0);
+ cs->position2[2] = 4.0 + 8.0* cos(cs->theta*100*M_PI/180.0);
+
+ if (!cs->wire) {
+ glEnable(GL_LIGHTING);
+ glLightfv(GL_LIGHT0, GL_POSITION, cs->position);
+ glLightfv(GL_LIGHT1, GL_POSITION, cs->position2);
+ glEnable(GL_LIGHT0);
+ }
+
+ /** draw board, pieces */
+ if(!cs->wire) {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_COLOR_MATERIAL);
+
+ if(reflections && !cs->wire) {
+ draw_reflections(mi, cs);
+ glEnable(GL_BLEND);
+ }
+
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, cs->boardtexture);
+ drawBoard(mi, cs);
+ glDisable(GL_TEXTURE_2D);
+
+ if(shadows) {
+ /* render shadows */
+ GLfloat m[4][4];
+ shadowmatrix(m, cs->ground, cs->position);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialShadow);
+ glEnable(GL_BLEND);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_DEPTH_TEST);
+
+ /* display ant shadow */
+ glPushMatrix();
+ glTranslatef(0.0, 0.001, 0.0);
+ glMultMatrixf(m[0]);
+ glTranslatef(0.5, 0.01, 0.5);
+ draw_shadow_pieces(mi, cs, cs->wire);
+ glPopMatrix();
+
+ glEnable(GL_LIGHTING);
+ glDisable(GL_BLEND);
+ glEnable(GL_DEPTH_TEST);
+ }
+
+ if(reflections)
+ glDisable(GL_BLEND);
+ }
+ else
+ drawBoard(mi, cs);
+
+ glTranslatef(0.5, 0.0, 0.5);
+ draw_pieces(mi, cs, cs->wire);
+
+ if(!cs->wire) {
+ glDisable(GL_COLOR_MATERIAL);
+ glDisable(GL_LIGHTING);
+ }
+
+ if (!cs->button_down_p)
+ cs->theta += .002;
+}
+
+/** reshape handler */
+ENTRYPOINT void reshape_chess(ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0,y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(45, 1/h, 2.0, 30.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+/** initialization handler */
+ENTRYPOINT void init_chess(ModeInfo *mi)
+{
+ Chesscreen *cs;
+ int screen = MI_SCREEN(mi);
+
+ MI_INIT(mi, qs);
+
+ cs = &qs[screen];
+ cs->window = MI_WINDOW(mi);
+ cs->wire = MI_IS_WIREFRAME(mi);
+ cs->trackball = gltrackball_init (False);
+
+ cs->oldwhite = -1;
+
+ cs->colors[0][0] = 1.0;
+ cs->colors[0][1] = 0.5;
+ cs->colors[0][2] = 0.0;
+
+ cs->colors[1][0] = 0.6;
+ cs->colors[1][1] = 0.6;
+ cs->colors[1][2] = 0.6;
+
+ cs->done = 1;
+ cs->count = 99;
+ cs->mod = 1.4;
+
+/* cs->position[0] = 0.0; */
+/* cs->position[1] = 5.0; */
+/* cs->position[2] = 5.0; */
+/* cs->position[3] = 1.0; */
+
+ cs->position[0] = 0.0;
+ cs->position[1] = 24.0;
+ cs->position[2] = 2.0;
+ cs->position[3] = 1.0;
+
+
+ cs->position2[0] = 5.0;
+ cs->position2[1] = 5.0;
+ cs->position2[2] = 5.0;
+ cs->position2[3] = 1.0;
+
+ cs->ground[0] = 0.0;
+ cs->ground[1] = 1.0;
+ cs->ground[2] = 0.0;
+ cs->ground[3] = -0.00001;
+
+ cs->oldgame = -1;
+
+
+ if((cs->glx_context = init_GL(mi)))
+ reshape_chess(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ else
+ MI_CLEARWINDOW(mi);
+
+ if (!cs->wire) {
+ glDepthFunc(GL_LEQUAL);
+ glClearStencil(0);
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+
+ make_piece_texture(cs);
+ make_board_texture(cs);
+ }
+ chessmodels_gen_lists( classic, cs->poly_counts);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ cs->wire = 0;
+# endif
+
+ if(!cs->wire) {
+ setup_lights(cs);
+ glColorMaterial(GL_FRONT, GL_DIFFUSE);
+ glShadeModel(smooth ? GL_SMOOTH : GL_FLAT);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_DEPTH_TEST);
+ }
+ else
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+}
+
+/** does dirty work drawing scene, moving pieces */
+ENTRYPOINT void draw_chess(ModeInfo *mi)
+{
+ Chesscreen *cs = &qs[MI_SCREEN(mi)];
+ Window w = MI_WINDOW(mi);
+ Display *disp = MI_DISPLAY(mi);
+
+ if(!cs->glx_context)
+ return;
+
+ glXMakeCurrent(disp, w, *(cs->glx_context));
+
+ /** code for moving a piece */
+ if(cs->moving && ++cs->steps == 100) {
+ cs->moving = cs->count = cs->steps = cs->take = 0;
+ cs->game.board[cs->game.moves[cs->mc][2]][cs->game.moves[cs->mc][3]] = cs->mpiece;
+ ++cs->mc;
+
+ if(cs->mc == cs->game.movecount) {
+ cs->done = 1;
+ cs->mc = 0;
+ }
+ }
+
+ if(++cs->count == 100) {
+ if(!cs->done) {
+ cs->mpiece = cs->game.board[cs->game.moves[cs->mc][0]][cs->game.moves[cs->mc][1]];
+ cs->game.board[cs->game.moves[cs->mc][0]][cs->game.moves[cs->mc][1]] = NONE;
+
+ if((cs->tpiece = cs->game.board[cs->game.moves[cs->mc][2]][cs->game.moves[cs->mc][3]])) {
+ cs->game.board[cs->game.moves[cs->mc][2]][cs->game.moves[cs->mc][3]] = NONE;
+ cs->take = 1;
+ }
+
+ cs->from[0] = cs->game.moves[cs->mc][0];
+ cs->from[1] = cs->game.moves[cs->mc][1];
+ cs->to[0] = cs->game.moves[cs->mc][2];
+ cs->to[1] = cs->game.moves[cs->mc][3];
+
+ cs->dz = (cs->to[0] - cs->from[0]) / 100;
+ cs->dx = (cs->to[1] - cs->from[1]) / 100;
+ cs->steps = 0;
+ cs->moving = 1;
+ }
+ else if(cs->done == 1) {
+ int newgame = cs->oldgame;
+ while(newgame == cs->oldgame)
+ newgame = random()%GAMES;
+
+ /* mod the mod */
+ cs->mod = 0.6 + (random()%20)/10.0;
+
+ /* same old game */
+ cs->oldgame = newgame;
+ cs->game = games[cs->oldgame];
+ build_colors(cs);
+ cs->done = 2;
+ cs->count = 0;
+ }
+ else {
+ cs->done = 0;
+ cs->count = 0;
+ }
+ }
+
+ /* set lighting */
+ if(cs->done) {
+ glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION,
+ cs->done == 1 ? 1.0+0.1*cs->count : 100.0/cs->count);
+ glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION,
+ cs->done == 1 ? 1.0+0.1*cs->count : 100.0/cs->count);
+ glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.14);
+ glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.14);
+ }
+
+ display(mi, cs);
+
+ if(mi->fps_p) do_fps(mi);
+ glFinish();
+ glXSwapBuffers(disp, w);
+}
+
+XSCREENSAVER_MODULE_2 ("Endgame", endgame, chess)
+
+#endif
diff --git a/hacks/glx/endgame.man b/hacks/glx/endgame.man
new file mode 100644
index 0000000..93ca5c3
--- /dev/null
+++ b/hacks/glx/endgame.man
@@ -0,0 +1,72 @@
+.TH XScreenSaver 1 "5-May-2004"
+.SH NAME
+endgame \- endgame chess screensaver
+.SH SYNOPSIS
+.B endgame
+[\-display \fIhost:display.screen\fP]
+[\-window]
+[\-root]
+[\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fImicroseconds\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+endgame replays a brilliant chess ending
+.SH OPTIONS
+.I endgame
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-shadows
+Project pieces against the board with dark blend.
+.TP 8
+.B \-reflections
+Reflect pieces in light board squares.
+.TP 8
+.B \-classic
+Use the original low-polygon piece models.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH BUGS
+It's not unknown for this and other OpenGL hacks to fail under hardware accelaration (UtahGLX) and take the X server with them. Texture images must be 16x16 or 32x32 or 64x64 etc.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Blair Tennessy. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Blair Tennessy <tennessb@unbc.ca>, 20-April-2002.
+
diff --git a/hacks/glx/energystream.c b/hacks/glx/energystream.c
new file mode 100644
index 0000000..7221f0d
--- /dev/null
+++ b/hacks/glx/energystream.c
@@ -0,0 +1,534 @@
+/* energystream, Copyright (c) 2016 Eugene Sandulenko <sev@scummvm.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Based on Public Domain code by konrad "yoghurt" zagorowicz
+ * for Tesla demo by Sunflower (http://www.pouet.net/prod.php?which=33)
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define release_stream 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "gltrackball.h"
+#include "rotator.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+static float change_time = 0;
+static float change_time1 = 25;
+static float change_time2 = 40;
+static float change_time3 = 60;
+
+#define DEF_STREAMS "16"
+
+#include <sys/time.h>
+#include <time.h>
+
+typedef struct timeval streamtime;
+
+#define GETSECS(t) ((t).tv_sec)
+#define GETMSECS(t) ((t).tv_usec/1000)
+
+#define DEF_SPIN "False"
+#define DEF_WANDER "False"
+#define DEF_SPEED "1.0"
+
+
+typedef struct {
+ float x, y, z;
+} Vector;
+
+typedef struct {
+ Vector *flares;
+ int num_flares;
+ GLuint flare_tex;
+ float speed;
+} flare_stream;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ time_t start_time;
+
+ int num_streams;
+ flare_stream *streams;
+
+} stream_configuration;
+
+static stream_configuration *ess = NULL;
+
+static int num_streams;
+static Bool do_spin;
+static GLfloat global_speed;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-streams", ".streams", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" }
+};
+
+static argtype vars[] = {
+ {&num_streams, "streams", "Streams", DEF_STREAMS, t_Int},
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&global_speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt stream_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+static void gettime(streamtime *t)
+{
+#ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(t, &tzp);
+#else /* !GETTIMEOFDAY_TWO_ARGS */
+ gettimeofday(t);
+#endif /* !GETTIMEOFDAY_TWO_ARGS */
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_stream (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+ gluLookAt (0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear (GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+stream_handle_event (ModeInfo *mi, XEvent *event)
+{
+ stream_configuration *es = &ess[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, es->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &es->button_down_p))
+ return True;
+
+ return False;
+}
+
+#define TEX_WIDTH 256
+#define TEX_HEIGHT 256
+#define COEFF 0.2
+
+static GLuint gen_texture (void)
+{
+ int x, y, i;
+ float color;
+ GLuint tex;
+
+ unsigned char *texture = (unsigned char *)calloc (TEX_WIDTH * TEX_HEIGHT, 4);
+ unsigned char *ptr = texture;
+
+ float tint[3];
+ for (i = 0; i < 3; i++)
+ tint[i] = 1.0 * random() / RAND_MAX;
+
+ for (y = 0; y < TEX_HEIGHT; y++) {
+ for (x = 0; x < TEX_WIDTH; x++) {
+ color = 255 - sqrt((x - TEX_WIDTH / 2) * (x - TEX_WIDTH / 2) / COEFF
+ + (y - TEX_HEIGHT / 2) * (y - TEX_HEIGHT / 2) / COEFF);
+
+ if (color < 0)
+ color = 0;
+
+ for (i = 0; i < 3; i++)
+ ptr[i] = (unsigned char)(color * tint[i]);
+ ptr[3] = color ? 255 : 0;
+
+ ptr += 4;
+ }
+ }
+
+ glGenTextures (1, &tex);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture (GL_TEXTURE_2D, tex);
+#endif /* HAVE_GLBINDTEXTURE */
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
+ clear_gl_error ();
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, TEX_WIDTH, TEX_HEIGHT,
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, texture);
+ check_gl_error ("texture");
+
+ /* Texture parameters, LINEAR scaling for better texture quality */
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ free (texture);
+
+ return tex;
+}
+
+static inline void vector_copy (Vector *a, Vector *b)
+{
+ a->x = b->x;
+ a->y = b->y;
+ a->z = b->z;
+}
+
+/* a += b */
+static inline void vector_add (Vector *a, Vector *b)
+{
+ a->x += b->x;
+ a->y += b->y;
+ a->z += b->z;
+}
+
+/* a -= b */
+static inline void vector_sub (Vector *a, Vector *b)
+{
+ a->x -= b->x;
+ a->y -= b->y;
+ a->z -= b->z;
+}
+
+static void init_flare_stream (flare_stream *s, int num_flares, float bx, float by, float bz, float speed)
+{
+ int i;
+
+ s->flares = (Vector *) calloc (num_flares, sizeof (Vector));
+ s->num_flares = num_flares;
+ s->flare_tex = gen_texture();
+ s->speed = speed;
+
+ for (i = 0; i != s->num_flares; i++)
+ {
+ s->flares[i].x = -800.0f * random() / RAND_MAX - 1150 + bx;
+ s->flares[i].y = 10.0f * random() / RAND_MAX - 20 + by;
+ s->flares[i].z = 10.0f * random() / RAND_MAX - 20 + bz;
+ }
+}
+
+static void render_flare_stream (flare_stream *s, float cur_time, Vector *vx, Vector *vy, float alpha)
+{
+ float fMultipler = 1;
+ int i;
+
+ if (s->flare_tex == -1)
+ return;
+ if (!s->num_flares)
+ return;
+
+ if (cur_time < change_time)
+ return;
+
+ cur_time -= change_time;
+
+ glColor4f (1.0, 1, 1, alpha);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture (GL_TEXTURE_2D, s->flare_tex);
+#endif
+
+ glBegin (GL_QUADS);
+
+ if (cur_time + change_time > change_time1)
+ {
+ if (cur_time + change_time > change_time2)
+ {
+ fMultipler = 2.5;
+ }
+ else
+ fMultipler = 2;
+ }
+
+ for (i = 0; i != s->num_flares; i++)
+ {
+ Vector flare_pos;
+ Vector cc;
+
+ flare_pos.x = fmod (s->flares[i].x + cur_time * s->speed * fMultipler, 800) - 400;
+ flare_pos.y = s->flares[i].y + 2 * sin (cur_time * 7 + s->flares[i].x);
+ flare_pos.z = s->flares[i].z + 2 * cos (cur_time * 7 + i * 3.14);
+
+ glTexCoord2f (0, 0);
+ vector_copy (&cc, &flare_pos);
+ vector_sub (&cc, vx);
+ vector_add (&cc, vy);
+ glVertex3fv ((float *)&cc);
+
+ glTexCoord2f ( 1, 0 );
+ vector_copy (&cc, &flare_pos);
+ vector_add (&cc, vx);
+ vector_add (&cc, vy);
+ glVertex3fv ((float *)&cc);
+
+ glTexCoord2f ( 1, 1 );
+ vector_copy (&cc, &flare_pos);
+ vector_add (&cc, vx);
+ vector_sub (&cc, vy);
+ glVertex3fv ((float *)&cc);
+
+ glTexCoord2f ( 0, 1 );
+ vector_copy (&cc, &flare_pos);
+ vector_sub (&cc, vx);
+ vector_sub (&cc, vy);
+ glVertex3fv ((float *)&cc);
+ }
+
+ glEnd ();
+}
+
+ENTRYPOINT void
+init_stream (ModeInfo *mi)
+{
+ stream_configuration *es;
+ streamtime current_time;
+
+ MI_INIT (mi, ess);
+
+ es = &ess[MI_SCREEN(mi)];
+
+ es->glx_context = init_GL (mi);
+
+ reshape_stream (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ gettime (&current_time);
+ es->start_time = GETSECS(current_time) * 1000 + GETMSECS(current_time);
+
+ es->num_streams = num_streams;
+
+ es->streams = (flare_stream *) calloc (es->num_streams, sizeof(flare_stream));
+
+ init_flare_stream (&es->streams[0], 150, 0, 50, 0, 300);
+ init_flare_stream (&es->streams[1], 150, 0, 0, 0, 150);
+ init_flare_stream (&es->streams[2], 150, 0, 90, 60, 250);
+ init_flare_stream (&es->streams[3], 150, 0, -100, 30, 160);
+ init_flare_stream (&es->streams[4], 150, 0, 50, -100, 340);
+ init_flare_stream (&es->streams[5], 150, 0, -50, 50, 270 );
+ init_flare_stream (&es->streams[6], 150, 0, 100, 50, 180);
+ init_flare_stream (&es->streams[7], 150, 0, -30, 90, 130);
+
+ init_flare_stream (&es->streams[8], 150, 0, 150, 10, 200);
+ init_flare_stream (&es->streams[9], 150, 0, 100, -100, 210);
+ init_flare_stream (&es->streams[10], 150, 0, 190, 160, 220);
+ init_flare_stream (&es->streams[11], 150, 0, -200, 130, 230);
+ init_flare_stream (&es->streams[12], 150, 0, 150, -200, 240);
+ init_flare_stream (&es->streams[13], 150, 0, -150, 250, 160);
+ init_flare_stream (&es->streams[14], 150, 0, 200, 150, 230);
+ init_flare_stream (&es->streams[15], 150, 0, -130, 190, 250);
+
+ {
+ double spin_speed = 0.5 * global_speed;
+ double wander_speed = 0.02 * global_speed;
+ double spin_accel = 1.1;
+
+ es->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ es->trackball = gltrackball_init (True);
+ }
+}
+
+ENTRYPOINT void
+free_stream (ModeInfo * mi)
+{
+ stream_configuration *es = &ess[MI_SCREEN(mi)];
+ int i;
+
+ if (es->glx_context) {
+ glXMakeCurrent (MI_DISPLAY(mi), MI_WINDOW(mi), *(es->glx_context));
+
+ for (i = 0; i < es->num_streams; i++) {
+ free (es->streams[i].flares);
+ glDeleteTextures (1, &es->streams[i].flare_tex);
+ }
+
+ free (es->streams);
+ }
+}
+
+
+static void inverse_matrix (float m[16]) {
+ double a,b,c,d,e,f,g,h,i,j,k,l;
+ register double dW;
+
+ a = m[ 0]; b = m[ 1]; c = m[ 2];
+ d = m[ 4]; e = m[ 5]; f = m[ 6];
+ g = m[ 8]; h = m[ 9]; i = m[10];
+ j = m[12]; k = m[13]; l = m[14];
+
+ dW = 1.0 / (a * (e * i - f * h)
+ - (b * (d * i - f * g)
+ + c * (e * g - d * h)));
+
+ m[ 0]= (float)((e * i - f * h) * dW);
+ m[ 1]= (float)((c * h - b * i) * dW);
+ m[ 2]= (float)((b * f - c * e) * dW);
+
+ m[ 4]= (float)((f * g - d * i) * dW);
+ m[ 5]= (float)((a * i - c * g) * dW);
+ m[ 6]= (float)((c * d - a * f) * dW);
+
+ m[ 8]= (float)((d * h - e * g) * dW);
+ m[ 9]= (float)((b * g - a * h) * dW);
+ m[10]= (float)((a * e - b * d) * dW);
+
+ m[12]= (float)((e * (g * l - i * j)
+ + f * (h * j - g * k)
+ - d * (h * l - i * k)) * dW);
+ m[13]= (float)((a * (h * l - i * k)
+ + b * (i * j - g * l)
+ + c * (g * k - h * j)) * dW);
+ m[14]= (float)((b * (d * l - f * j)
+ + c * (e * j - d * k)
+ - a * (e * l - f * k)) * dW);
+}
+
+ENTRYPOINT void
+draw_stream (ModeInfo *mi)
+{
+ stream_configuration *es = &ess[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ streamtime current_time;
+ float cur_time;
+ int i;
+ float alpha = 1.0;
+ Vector vx;
+ Vector vy;
+ GLfloat m[4*4];
+
+ if (!es->glx_context)
+ return;
+
+ gettime (&current_time);
+
+ cur_time = (float)(GETSECS(current_time) * 1000 + GETMSECS(current_time) - es->start_time) / 1000.0;
+ cur_time *= global_speed;
+
+ glXMakeCurrent (MI_DISPLAY(mi), MI_WINDOW(mi), *(es->glx_context));
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ glFrustum (-.6f, .6f, -.45f, .45f, 1, 1000);
+
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+
+ glEnable (GL_LIGHTING);
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE);
+ glDisable (GL_CULL_FACE);
+ glDisable (GL_DEPTH_TEST);
+ glDepthMask (0);
+
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
+
+ glTranslatef (0, 0, -300);
+ glRotatef (cur_time * 30, 1, 0, 0);
+ glRotatef (30 * sin(cur_time / 3) + 10, 0, 0, 1);
+
+ {
+ double x, y, z;
+ get_position (es->rot, &x, &y, &z, !es->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (es->trackball);
+
+ get_rotation (es->rot, &x, &y, &z, !es->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ if (cur_time > change_time1)
+ {
+ if (cur_time > change_time2)
+ {
+ glRotatef (90, 0, 1, 0);
+
+ if (cur_time > change_time3)
+ es->start_time = GETSECS(current_time) * 1000 + GETMSECS(current_time) - 5000;
+ }
+ else
+ {
+ glRotatef (180, 0, 1, 0);
+ }
+ }
+
+ glEnable ( GL_FOG);
+ glFogf (GL_FOG_START, 200);
+ glFogf (GL_FOG_END, 500);
+ glFogf (GL_FOG_MODE, GL_LINEAR);
+
+ glGetFloatv (GL_MODELVIEW_MATRIX, m);
+
+ inverse_matrix (m);
+
+ vx.x = m[0] * 10;
+ vx.y = m[1] * 10;
+ vx.z = m[2] * 10;
+
+ vy.x = m[4] * 10;
+ vy.y = m[5] * 10;
+ vy.z = m[6] * 10;
+
+ mi->polygon_count = 0;
+
+ for (i = 0; i != es->num_streams; i++)
+ {
+ mi->polygon_count += es->streams[i].num_flares;
+ render_flare_stream (&es->streams[i], cur_time, &vx, &vy, alpha);
+ }
+
+ glDisable (GL_TEXTURE_2D);
+ glDisable (GL_LIGHTING);
+ glDisable (GL_FOG);
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers (dpy, window);
+}
+
+XSCREENSAVER_MODULE_2("EnergyStream", energystream, stream)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/energystream.man b/hacks/glx/energystream.man
new file mode 100644
index 0000000..c2591f3
--- /dev/null
+++ b/hacks/glx/energystream.man
@@ -0,0 +1,56 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+energystream - a flow of particles which form an energy stream
+.SH SYNOPSIS
+.B energystream
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-no-wander]
+[\-no-spin]
+[\-fps]
+.SH DESCRIPTION
+Draws a set of flowing particles with camera flying around and through it.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-wander | \-no-wander
+Whether the camera should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the camera should spin.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Eugene Sandulenko. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Eugene Sandulenko.
diff --git a/hacks/glx/engine.c b/hacks/glx/engine.c
new file mode 100644
index 0000000..0f39b8d
--- /dev/null
+++ b/hacks/glx/engine.c
@@ -0,0 +1,1006 @@
+/*
+ * engine.c - GL representation of a 4 stroke engine
+ *
+ * version 2.00
+ *
+ * Copyright (C) 2001 Ben Buxton (bb@cactii.net)
+ * modified by Ed Beroset (beroset@mindspring.com)
+ * new to 2.0 version is:
+ * - command line argument to specify number of cylinders
+ * - command line argument to specify included angle of engine
+ * - removed broken command line argument to specify rotation speed
+ * - included crankshaft shapes and firing orders for real engines
+ * verified using the Bosch _Automotive Handbook_, 5th edition, pp 402,403
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+ "*titleFont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n" \
+
+# define free_engine 0
+# define release_engine 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#include "texfont.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+/* lifted from lament.c */
+#define RAND(n) ((long) ((random() & 0x7fffffff) % ((long) (n))))
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+
+#ifdef USE_GL
+
+#define DEF_ENGINE "(none)"
+#define DEF_TITLES "False"
+#define DEF_SPIN "True"
+#define DEF_MOVE "True"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static char *which_engine;
+static int move;
+static int spin;
+static Bool do_titles;
+
+static XrmOptionDescRec opts[] = {
+ {"-engine", ".engine.engine", XrmoptionSepArg, DEF_ENGINE },
+ {"-move", ".engine.move", XrmoptionNoArg, "True" },
+ {"+move", ".engine.move", XrmoptionNoArg, "False" },
+ {"-spin", ".engine.spin", XrmoptionNoArg, "True" },
+ {"+spin", ".engine.spin", XrmoptionNoArg, "False" },
+ { "-titles", ".engine.titles", XrmoptionNoArg, "True" },
+ { "+titles", ".engine.titles", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&which_engine, "engine", "Engine", DEF_ENGINE, t_String},
+ {&move, "move", "Move", DEF_MOVE, t_Bool},
+ {&spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_titles, "titles", "Titles", DEF_TITLES, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt engine_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct engine_description =
+{"engine", "init_engine", "draw_engine", NULL,
+ "draw_engine", "init_engine", NULL, &engine_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "A four stroke engine", 0, NULL};
+
+#endif
+
+/* these defines are used to provide symbolic means
+ * by which to refer to various portions or multiples
+ * of a cyle in degrees
+ */
+#define HALFREV 180
+#define ONEREV 360
+#define TWOREV 720
+
+#define MOVE_MULT 0.05
+
+#define RAND_RANGE(min, max) ((min) + (max - min) * f_rand())
+
+
+typedef struct {
+ GLXContext *glx_context;
+ Window window;
+ GLfloat x, y, z; /* position */
+ GLfloat dx, dy, dz; /* position */
+ GLfloat an1, an2, an3; /* internal angle */
+ GLfloat nx, ny, nz; /* spin vector */
+ GLfloat a; /* spin angle */
+ GLfloat da; /* spin speed */
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ texture_font_data *font_data;
+ char *engine_name;
+ int engineType;
+ int movepaused;
+
+ float crankOffset;
+ float crankWidth;
+
+ int win_w, win_h;
+
+ float sin_table[TWOREV];
+ float cos_table[TWOREV];
+ float tan_table[TWOREV];
+
+ GLfloat boom_red[4];
+ GLfloat boom_lpos[4];
+ GLfloat boom_d, boom_wd;
+ int boom_time;
+
+ GLfloat viewer[3], lookat[3];
+
+ int display_a;
+ GLfloat ln[730], yp[730], ang[730];
+ int ln_init;
+ int lastPlug;
+
+ GLuint shaft_list, piston_list;
+ int shaft_polys, piston_polys;
+
+} Engine;
+
+static Engine *engine = NULL;
+
+static const GLfloat lightpos[] = {7.0, 7.0, 12, 1.0};
+static const GLfloat light_sp[] = {0.8, 0.8, 0.8, 0.5};
+static const GLfloat red[] = {1.0, 0, 0, 1.0};
+static const GLfloat green[] = {0.0, 1, 0, 1.0};
+static const GLfloat blue[] = {0, 0, 1, 1.0};
+static const GLfloat white[] = {1.0, 1, 1, 1.0};
+static const GLfloat yellow_t[] = {1, 1, 0, 0.4};
+
+static GLvoid normal(GLfloat [], GLfloat [], GLfloat [],
+ GLfloat *, GLfloat *, GLfloat *);
+
+/*
+ * this table represents both the firing order and included angle of engine.
+ * To simplify things, we always number from 0 starting at the flywheel and
+ * moving down the crankshaft toward the back of the engine. This doesn't
+ * always match manufacturer's schemes. For example, the Porsche 911 engine
+ * is a flat six with the following configuration (Porsche's numbering):
+ *
+ * 3 2 1
+ * |= firing order is 1-6-2-4-3-5 in this diagram
+ * 6 5 4
+ *
+ * We renumber these using our scheme but preserve the effective firing order:
+ *
+ * 0 2 4
+ * |= firing order is 4-1-2-5-0-3 in this diagram
+ * 1 3 5
+ *
+ * To avoid going completely insane, we also reorder these so the newly
+ * renumbered cylinder 0 is always first: 0-3-4-1-2-5
+ *
+ * For a flat 6, the included angle is 180 degrees (0 would be a inline
+ * engine). Because these are all four-stroke engines, each piston goes
+ * through 720 degrees of rotation for each time the spark plug sparks,
+ * so in this case, we would use the following angles:
+ *
+ * cylinder firing order angle
+ * -------- ------------ -----
+ * 0 0 0
+ * 1 3 360
+ * 2 4 240
+ * 3 1 600
+ * 4 2 480
+ * 5 5 120
+ *
+ */
+
+typedef struct
+{
+ int cylinders;
+ int includedAngle;
+ int pistonAngle[12]; /* twelve cylinders should suffice... */
+ int speed; /* step size in degrees for engine speed */
+ const char *engineName; /* currently unused */
+} engine_type;
+
+static const engine_type engines[] = {
+ { 3, 0, { 0, 240, 480, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 }, 12,
+ "Honda Insight" },
+ { 4, 0, { 0, 180, 540, 360, 0, 0,
+ 0, 0, 0, 0, 0, 0 }, 12,
+ "BMW M3" },
+ { 4, 180, { 0, 360, 180, 540, 0, 0,
+ 0, 0, 0, 0, 0, 0 }, 12,
+ "VW Beetle" },
+ { 5, 0, { 0, 576, 144, 432, 288, 0,
+ 0, 0, 0, 0, 0, 0 }, 12,
+ "Audi Quattro" },
+ { 6, 0, { 0, 240, 480, 120, 600, 360,
+ 0, 0, 0, 0, 0, 0 }, 12,
+ "BMW M5" },
+ { 6, 90, { 0, 360, 480, 120, 240, 600,
+ 0, 0, 0, 0, 0, 0 }, 12,
+ "Subaru XT" },
+ { 6, 180, { 0, 360, 240, 600, 480, 120,
+ 0, 0, 0, 0, 0, 0 }, 12,
+ "Porsche 911" },
+ { 8, 90, { 0, 450, 90, 180, 270, 360,
+ 540, 630, 0, 0, 0, 0 }, 15,
+ "Corvette Z06" },
+ {10, 90, { 0, 72, 432, 504, 288, 360,
+ 144, 216, 576, 648, 0, 0 }, 12,
+ "Dodge Viper" },
+ {12, 60, { 0, 300, 240, 540, 480, 60,
+ 120, 420, 600, 180, 360, 660 }, 12,
+ "Jaguar XKE" },
+};
+
+/* this define is just a little shorter way of referring to members of the
+ * table above
+ */
+#define ENG engines[e->engineType]
+
+/* given a number of cylinders and an included angle, finds matching engine */
+static int
+find_engine(char *name)
+{
+ unsigned int i;
+ char *s;
+
+ if (!name || !*name || !strcasecmp (name, "(none)"))
+ return (random() % countof(engines));
+
+ for (s = name; *s; s++)
+ if (*s == '-' || *s == '_') *s = ' ';
+
+ for (i = 0; i < countof(engines); i++) {
+ if (!strcasecmp(name, engines[i].engineName))
+ return i;
+ }
+
+ fprintf (stderr, "%s: unknown engine type \"%s\"\n", progname, name);
+ fprintf (stderr, "%s: available models are:\n", progname);
+ for (i = 0; i < countof(engines); i++) {
+ fprintf (stderr, "\t %-13s (%d cylinders",
+ engines[i].engineName, engines[i].cylinders);
+ if (engines[i].includedAngle == 0)
+ fprintf (stderr, ")\n");
+ else if (engines[i].includedAngle == 180)
+ fprintf (stderr, ", flat)\n");
+ else
+ fprintf (stderr, ", V)\n");
+ }
+ exit(1);
+}
+
+/* we use trig tables to speed things up - 200 calls to sin()
+ in one frame can be a bit harsh..
+*/
+
+static void make_tables(Engine *e)
+{
+ int i;
+ float f;
+
+ f = ONEREV / (M_PI * 2);
+ for (i = 0 ; i < TWOREV ; i++) {
+ e->sin_table[i] = sin(i/f);
+ }
+ for (i = 0 ; i < TWOREV ; i++) {
+ e->cos_table[i] = cos(i/f);
+ }
+ for (i = 0 ; i < TWOREV ; i++) {
+ e->tan_table[i] = tan(i/f);
+ }
+}
+
+/* if inner and outer are the same, we draw a cylinder, not a tube */
+/* for a tube, endcaps is 0 (none), 1 (left), 2 (right) or 3(both) */
+/* angle is how far around the axis to go (up to 360) */
+
+static int cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
+ float length, float outer, float inner, int endcaps, int sang, int eang)
+{
+ int polys = 0;
+ int a; /* current angle around cylinder */
+ int b = 0; /* previous */
+ int angle, norm, step, sangle;
+ float z1, y1, z2, y2, ex=0;
+ float Z1, Y1, Z2, Y2, xl;
+ GLfloat y2c[TWOREV], z2c[TWOREV];
+ int nsegs, tube = 0;
+
+ glPushMatrix();
+ nsegs = outer*(MAX(e->win_w, e->win_h)/200);
+ nsegs = MAX(nsegs, 6);
+ nsegs = MAX(nsegs, 40);
+ if (nsegs % 2)
+ nsegs += 1;
+ sangle = sang;
+ angle = eang;
+ z1 = e->cos_table[sangle]*outer+z; y1 = e->sin_table[sangle] * outer+y;
+ Z1 = e->cos_table[sangle] * inner+z; Y1 = e->sin_table[sangle]*inner+y ;
+ Z2 = z;
+ Y2 = y;
+ xl = x + length;
+ if (inner < outer && endcaps < 3) tube = 1;
+ step = ONEREV/nsegs;
+
+ glBegin(GL_QUADS);
+ for (a = sangle ; a <= angle || b <= angle ; a+= step) {
+ y2=outer*(float)e->sin_table[a]+y;
+ z2=outer*(float)e->cos_table[a]+z;
+ if (endcaps) {
+ y2c[a] = y2;
+ z2c[a] = z2; /* cache for later */
+ }
+ if (tube) {
+ Y2=inner*(float)e->sin_table[a]+y;
+ Z2=inner*(float)e->cos_table[a]+z;
+ }
+ glNormal3f(0, y1, z1);
+ glVertex3f(x,y1,z1);
+ glVertex3f(xl,y1,z1);
+ glNormal3f(0, y2, z2);
+ glVertex3f(xl,y2,z2);
+ glVertex3f(x,y2,z2);
+ polys++;
+ if (a == sangle && angle - sangle < ONEREV) {
+ if (tube)
+ glVertex3f(x, Y1, Z1);
+ else
+ glVertex3f(x, y, z);
+ glVertex3f(x, y1, z1);
+ glVertex3f(xl, y1, z1);
+ if (tube)
+ glVertex3f(xl, Z1, Z1);
+ else
+ glVertex3f(xl, y, z);
+ polys++;
+ }
+ if (tube) {
+ if (endcaps != 1) {
+ glNormal3f(-1, 0, 0); /* left end */
+ glVertex3f(x, y1, z1);
+ glVertex3f(x, y2, z2);
+ glVertex3f(x, Y2, Z2);
+ glVertex3f(x, Y1, Z1);
+ polys++;
+ }
+
+ glNormal3f(0, -Y1, -Z1); /* inner surface */
+ glVertex3f(x, Y1, Z1);
+ glVertex3f(xl, Y1, Z1);
+ glNormal3f(0, -Y2, -Z2);
+ glVertex3f(xl, Y2, Z2);
+ glVertex3f(x, Y2, Z2);
+ polys++;
+
+ if (endcaps != 2) {
+ glNormal3f(1, 0, 0); /* right end */
+ glVertex3f(xl, y1, z1);
+ glVertex3f(xl, y2, z2);
+ glVertex3f(xl, Y2, Z2);
+ glVertex3f(xl, Y1, Z1);
+ polys++;
+ }
+ }
+
+ z1=z2; y1=y2;
+ Z1=Z2; Y1=Y2;
+ b = a;
+ }
+ glEnd();
+
+ if (angle - sangle < ONEREV) {
+ GLfloat nx, ny, nz;
+ GLfloat v1[3], v2[3], v3[3];
+ v1[0] = x; v1[1] = y; v1[2] = z;
+ v2[0] = x; v2[1] = y1; v2[2] = z1;
+ v3[0] = xl; v3[1] = y1; v3[2] = z1;
+ normal(&v2[0], &v1[0], &v3[0], &nx, &ny, &nz);
+ glBegin(GL_QUADS);
+ glNormal3f(nx, ny, nz);
+ glVertex3f(x, y, z);
+ glVertex3f(x, y1, z1);
+ glVertex3f(xl, y1, z1);
+ glVertex3f(xl, y, z);
+ polys++;
+ glEnd();
+ }
+ if (endcaps) {
+ GLfloat end, start;
+ if (tube) {
+ if (endcaps == 1) {
+ end = 0;
+ start = 0;
+ } else if (endcaps == 2) {
+ start = end = length+0.01;
+ } else {
+ end = length+0.02; start = -0.01;
+ }
+ norm = (ex == length+0.01) ? -1 : 1;
+ } else {
+ end = length;
+ start = 0;
+ norm = -1;
+ }
+
+ for(ex = start ; ex <= end ; ex += length) {
+ z1 = outer*e->cos_table[sangle]+z;
+ y1 = y+e->sin_table[sangle]*outer;
+ step = ONEREV/nsegs;
+ glBegin(GL_TRIANGLES);
+ b = 0;
+ for (a = sangle ; a <= angle || b <= angle; a+= step) {
+ glNormal3f(norm, 0, 0);
+ glVertex3f(x+ex,y, z);
+ glVertex3f(x+ex,y1,z1);
+ glVertex3f(x+ex,y2c[a],z2c[a]);
+ polys++;
+ y1 = y2c[a]; z1 = z2c[a];
+ b = a;
+ }
+ if (!tube) norm = 1;
+ glEnd();
+ }
+ }
+ glPopMatrix();
+ return polys;
+}
+
+/* this is just a convenience function to make a solid rod */
+static int rod (Engine *e, GLfloat x, GLfloat y, GLfloat z, float length, float diameter)
+{
+ return cylinder(e, x, y, z, length, diameter, diameter, 3, 0, ONEREV);
+}
+
+static GLvoid normal(GLfloat v1[], GLfloat v2[], GLfloat v3[],
+ GLfloat *nx, GLfloat *ny, GLfloat *nz)
+{
+ GLfloat x, y, z, X, Y, Z;
+
+ x = v2[0]-v1[0];
+ y = v2[1]-v1[1];
+ z = v2[2]-v1[2];
+ X = v3[0]-v1[0];
+ Y = v3[1]-v1[1];
+ Z = v3[2]-v1[2];
+
+ *nx = Y*z - Z*y;
+ *ny = Z*x - X*z;
+ *nz = X*y - Y*x;
+
+}
+
+
+
+static int Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
+ GLfloat t)
+{
+ int polys = 0;
+ GLfloat yh;
+ GLfloat xw;
+ GLfloat zt;
+
+ yh = y+h; xw = x+w; zt = z - t;
+
+ glBegin(GL_QUADS); /* front */
+ glNormal3f(0, 0, 1);
+ glVertex3f(x, y, z);
+ glVertex3f(x, yh, z);
+ glVertex3f(xw, yh, z);
+ glVertex3f(xw, y, z);
+ polys++;
+ /* back */
+ glNormal3f(0, 0, -1);
+ glVertex3f(x, y, zt);
+ glVertex3f(x, yh, zt);
+ glVertex3f(xw, yh, zt);
+ glVertex3f(xw, y, zt);
+ polys++;
+ /* top */
+ glNormal3f(0, 1, 0);
+ glVertex3f(x, yh, z);
+ glVertex3f(x, yh, zt);
+ glVertex3f(xw, yh, zt);
+ glVertex3f(xw, yh, z);
+ polys++;
+ /* bottom */
+ glNormal3f(0, -1, 0);
+ glVertex3f(x, y, z);
+ glVertex3f(x, y, zt);
+ glVertex3f(xw, y, zt);
+ glVertex3f(xw, y, z);
+ polys++;
+ /* left */
+ glNormal3f(-1, 0, 0);
+ glVertex3f(x, y, z);
+ glVertex3f(x, y, zt);
+ glVertex3f(x, yh, zt);
+ glVertex3f(x, yh, z);
+ polys++;
+ /* right */
+ glNormal3f(1, 0, 0);
+ glVertex3f(xw, y, z);
+ glVertex3f(xw, y, zt);
+ glVertex3f(xw, yh, zt);
+ glVertex3f(xw, yh, z);
+ polys++;
+ glEnd();
+ return polys;
+}
+
+static int makepiston(Engine *e)
+{
+ int polys = 0;
+ GLfloat colour[] = {0.6, 0.6, 0.6, 1.0};
+
+ /* if (e->piston_list) glDeleteLists(1, e->piston_list); */
+ if (! e->piston_list) e->piston_list = glGenLists(1);
+ glNewList(e->piston_list, GL_COMPILE);
+ glRotatef(90, 0, 0, 1);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, colour);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, colour);
+ glMateriali(GL_FRONT, GL_SHININESS, 20);
+ polys += cylinder(e, 0, 0, 0, 2, 1, 0.7, 2, 0, ONEREV); /* body */
+ colour[0] = colour[1] = colour[2] = 0.2;
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, colour);
+ polys += cylinder(e, 1.6, 0, 0, 0.1, 1.05, 1.05, 0, 0, ONEREV); /* ring */
+ polys += cylinder(e, 1.8, 0, 0, 0.1, 1.05, 1.05, 0, 0, ONEREV); /* ring */
+ glEndList();
+ return polys;
+}
+
+static int CrankBit(Engine *e, GLfloat x)
+{
+ int polys = 0;
+ polys += Rect(x, -1.4, 0.5, 0.2, 1.8, 1);
+ polys += cylinder(e, x, -0.5, 0, 0.2, 2, 2, 1, 60, 120);
+ return polys;
+}
+
+static int boom(Engine *e, GLfloat x, GLfloat y, int s)
+{
+ int polys = 0;
+ int flameOut = 720/ENG.speed/ENG.cylinders;
+
+ if (e->boom_time == 0 && s) {
+ e->boom_red[0] = e->boom_red[1] = 0;
+ e->boom_d = 0.05;
+ e->boom_time++;
+ glEnable(GL_LIGHT1);
+ } else if (e->boom_time == 0 && !s) {
+ return polys;
+ } else if (e->boom_time >= 8 && e->boom_time < flameOut && !s) {
+ e->boom_time++;
+ e->boom_red[0] -= 0.2; e->boom_red[1] -= 0.1;
+ e->boom_d-= 0.04;
+ } else if (e->boom_time >= flameOut) {
+ e->boom_time = 0;
+ glDisable(GL_LIGHT1);
+ return polys;
+ } else {
+ e->boom_red[0] += 0.2; e->boom_red[1] += 0.1;
+ e->boom_d += 0.04;
+ e->boom_time++;
+ }
+ e->boom_lpos[0] = x-e->boom_d; e->boom_lpos[1] = y;
+ glLightfv(GL_LIGHT1, GL_POSITION, e->boom_lpos);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, e->boom_red);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, e->boom_red);
+ glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 1.3);
+ glLighti(GL_LIGHT1, GL_CONSTANT_ATTENUATION, 0);
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, e->boom_red);
+ e->boom_wd = e->boom_d*3;
+ if (e->boom_wd > 0.7) e->boom_wd = 0.7;
+ glEnable(GL_BLEND);
+ glDepthMask(GL_FALSE);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ polys += rod(e, x, y, 0, e->boom_d, e->boom_wd);
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ return polys;
+}
+
+static int display(ModeInfo *mi)
+{
+ Engine *e = &engine[MI_SCREEN(mi)];
+ int polys = 0;
+ GLfloat zb, yb;
+ float rightSide;
+ int half;
+ int sides;
+ int j, b;
+
+ glEnable(GL_LIGHTING);
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+ gluLookAt(e->viewer[0], e->viewer[1], e->viewer[2],
+ e->lookat[0], e->lookat[1], e->lookat[2],
+ 0.0, 1.0, 0.0);
+ glPushMatrix();
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glLightfv(GL_LIGHT0, GL_POSITION, lightpos);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, light_sp);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, light_sp);
+
+ if (move) {
+ double x, y, z;
+ get_position (e->rot, &x, &y, &z, !e->button_down_p);
+ glTranslatef(x*16-9, y*14-7, z*16-10);
+ }
+
+ if (spin) {
+ double x, y, z;
+
+ gltrackball_rotate (e->trackball);
+
+ get_rotation(e->rot, &x, &y, &z, !e->button_down_p);
+ glRotatef(x*ONEREV, 1.0, 0.0, 0.0);
+ glRotatef(y*ONEREV, 0.0, 1.0, 0.0);
+ glRotatef(x*ONEREV, 0.0, 0.0, 1.0);
+ }
+
+/* So the rotation appears around the centre of the engine */
+ glTranslatef(-5, 0, 0);
+
+/* crankshaft */
+ glPushMatrix();
+ glRotatef(e->display_a, 1, 0, 0);
+ glCallList(e->shaft_list);
+ polys += e->shaft_polys;
+ glPopMatrix();
+
+ /* init the ln[] matrix for speed */
+ if (e->ln_init == 0) {
+ for (e->ln_init = 0 ; e->ln_init < countof(e->sin_table) ; e->ln_init++) {
+ zb = e->sin_table[e->ln_init];
+ yb = e->cos_table[e->ln_init];
+ /* y ordinate of piston */
+ e->yp[e->ln_init] = yb + sqrt(25 - (zb*zb));
+ /* length of rod */
+ e->ln[e->ln_init] = sqrt(zb*zb + (yb-e->yp[e->ln_init])*(yb-e->yp[e->ln_init]));
+ /* angle of connecting rod */
+ e->ang[e->ln_init] = asin(zb/5)*57;
+ e->ang[e->ln_init] *= -1;
+ }
+ }
+
+ glPushMatrix();
+ sides = (ENG.includedAngle == 0) ? 1 : 2;
+ for (half = 0; half < sides; half++, glRotatef(ENG.includedAngle,1,0,0))
+ {
+ /* pistons */
+ /* glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white); */
+ for (j = 0; j < ENG.cylinders; j += sides)
+ {
+ b = (e->display_a + ENG.pistonAngle[j+half]) % ONEREV;
+ glPushMatrix();
+ glTranslatef(e->crankWidth/2 + e->crankOffset*(j+half), e->yp[b]-0.3, 0);
+ glCallList(e->piston_list);
+ polys += e->piston_polys;
+ glPopMatrix();
+ }
+ /* spark plugs */
+ glPushMatrix();
+ glRotatef(90, 0, 0, 1);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
+ for (j = 0; j < ENG.cylinders; j += sides)
+ {
+ polys += cylinder(e, 8.5, -e->crankWidth/2-e->crankOffset*(j+half), 0,
+ 0.5, 0.4, 0.3, 1, 0, ONEREV);
+ }
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
+ for (j = 0; j < ENG.cylinders; j += sides)
+ {
+ polys += rod(e, 8, -e->crankWidth/2-e->crankOffset*(j+half), 0, 0.5, 0.2);
+ polys += rod(e, 9, -e->crankWidth/2-e->crankOffset*(j+half), 0, 1, 0.15);
+ }
+
+ /* rod */
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
+ for (j = 0; j < ENG.cylinders; j += sides)
+ {
+ b = (e->display_a+HALFREV+ENG.pistonAngle[j+half]) % TWOREV;
+ glPushMatrix();
+ glRotatef(e->ang[b], 0, 1, 0);
+ polys += rod(e,
+ -e->cos_table[b],
+ -e->crankWidth/2-e->crankOffset*(j+half),
+ -e->sin_table[b],
+ e->ln[b], 0.2);
+ glPopMatrix();
+ }
+ glPopMatrix();
+
+ /* engine block */
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, yellow_t);
+ glEnable(GL_BLEND);
+ glDepthMask(GL_FALSE);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ rightSide = (sides > 1) ? 0 : 1.6;
+ /* left plate */
+ polys += Rect(-e->crankWidth/2, -0.5, 1, 0.2, 9, 2);
+ /* right plate */
+ polys += Rect(0.3+e->crankOffset*ENG.cylinders-rightSide, -0.5, 1, 0.2, 9, 2);
+ /* head plate */
+ polys += Rect(-e->crankWidth/2+0.2, 8.3, 1,
+ e->crankWidth/2+0.1+e->crankOffset*ENG.cylinders-rightSide, 0.2, 2);
+ /* front rail */
+ polys += Rect(-e->crankWidth/2+0.2, 3, 1,
+ e->crankWidth/2+0.1+e->crankOffset*ENG.cylinders-rightSide, 0.2, 0.2);
+ /* back rail */
+ polys += Rect(-e->crankWidth/2+0.2, 3, -1+0.2,
+ e->crankWidth/2+0.1+e->crankOffset*ENG.cylinders-rightSide, 0.2, 0.2);
+ /* plates between cylinders */
+ for (j=0; j < ENG.cylinders - (sides == 1); j += sides)
+ polys += Rect(0.4+e->crankWidth+e->crankOffset*(j-half), 3, 1, 1, 5.3, 2);
+ glDepthMask(GL_TRUE);
+ }
+ glPopMatrix();
+
+ /* see which of our plugs should fire now, if any */
+ for (j = 0; j < ENG.cylinders; j++)
+ {
+ if (0 == ((e->display_a + ENG.pistonAngle[j]) % TWOREV))
+ {
+ glPushMatrix();
+ if (j & 1)
+ glRotatef(ENG.includedAngle,1,0,0);
+ glRotatef(90, 0, 0, 1);
+ polys += boom(e, 8, -e->crankWidth/2-e->crankOffset*j, 1);
+ e->lastPlug = j;
+ glPopMatrix();
+ }
+ }
+
+ if (e->lastPlug != j)
+ {
+ /* this code causes the last plug explosion to dim gradually */
+ if (e->lastPlug & 1)
+ glRotatef(ENG.includedAngle, 1, 0, 0);
+ glRotatef(90, 0, 0, 1);
+ polys += boom(e, 8, -e->crankWidth/2-e->crankOffset*e->lastPlug, 0);
+ }
+ glDisable(GL_BLEND);
+
+ e->display_a += ENG.speed;
+ if (e->display_a >= TWOREV)
+ e->display_a = 0;
+ glPopMatrix();
+ glFlush();
+ return polys;
+}
+
+static int makeshaft (Engine *e)
+{
+ int polys = 0;
+ int j;
+ float crankThick = 0.2;
+ float crankDiam = 0.3;
+
+ /* if (e->shaft_list) glDeleteLists(1, e->shaft_list); */
+ if (! e->shaft_list) e->shaft_list = glGenLists(1);
+ glNewList(e->shaft_list, GL_COMPILE);
+
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
+ /* draw the flywheel */
+ polys += cylinder(e, -2.5, 0, 0, 1, 3, 2.5, 0, 0, ONEREV);
+ polys += Rect(-2, -0.3, 2.8, 0.5, 0.6, 5.6);
+ polys += Rect(-2, -2.8, 0.3, 0.5, 5.6, 0.6);
+
+ /* now make each of the shaft bits between the cranks,
+ * starting from the flywheel end which is at X-coord 0.
+ * the first cranskhaft bit is always 2 units long
+ */
+ polys += rod(e, -2, 0, 0, 2, crankDiam);
+
+ /* Each crank is crankWidth units wide and the total width of a
+ * cylinder assembly is 3.3 units. For inline engines, there is just
+ * a single crank per cylinder width. For other engine
+ * configurations, there is a crank between each pair of adjacent
+ * cylinders on one side of the engine, so the crankOffset length is
+ * halved.
+ */
+ e->crankOffset = 3.3;
+ if (ENG.includedAngle != 0)
+ e->crankOffset /= 2;
+ for (j = 0; j < ENG.cylinders - 1; j++)
+ polys += rod(e,
+ e->crankWidth - crankThick + e->crankOffset*j, 0, 0,
+ e->crankOffset - e->crankWidth + 2 * crankThick, crankDiam);
+ /* the last bit connects to the engine wall on the non-flywheel end */
+ polys += rod(e, e->crankWidth - crankThick + e->crankOffset*j, 0, 0, 0.9, crankDiam);
+
+
+ for (j = 0; j < ENG.cylinders; j++)
+ {
+ glPushMatrix();
+ if (j & 1)
+ glRotatef(HALFREV+ENG.pistonAngle[j]+ENG.includedAngle,1,0,0);
+ else
+ glRotatef(HALFREV+ENG.pistonAngle[j],1,0,0);
+ /* draw wrist pin */
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
+ polys += rod(e, e->crankOffset*j, -1.0, 0.0, e->crankWidth, crankDiam);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
+ /* draw right part of crank */
+ polys += CrankBit(e, e->crankOffset*j);
+ /* draw left part of crank */
+ polys += CrankBit(e, e->crankWidth-crankThick+e->crankOffset*j);
+ glPopMatrix();
+ }
+ glEndList();
+ return polys;
+}
+
+
+ENTRYPOINT void reshape_engine(ModeInfo *mi, int width, int height)
+{
+ Engine *e = &engine[MI_SCREEN(mi)];
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(40, 1/h, 1.5, 70.0);
+ glMatrixMode(GL_MODELVIEW);
+ e->win_h = height;
+ e->win_w = width;
+}
+
+
+ENTRYPOINT void init_engine(ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ Engine *e;
+
+ MI_INIT(mi, engine);
+ e = &engine[screen];
+ e->window = MI_WINDOW(mi);
+
+ e->x = e->y = e->z = e->a = e->an1 = e->nx = e->ny = e->nz =
+ e->dx = e->dy = e->dz = e->da = 0;
+
+ if (move) {
+ e->dx = (float)(random() % 1000)/30000;
+ e->dy = (float)(random() % 1000)/30000;
+ e->dz = (float)(random() % 1000)/30000;
+ } else {
+ e->viewer[0] = 0; e->viewer[1] = 2; e->viewer[2] = 18;
+ e->lookat[0] = 0; e->lookat[1] = 0; e->lookat[2] = 0;
+
+ }
+ if (spin) {
+ e->da = (float)(random() % 1000)/125 - 4;
+ e->nx = (float)(random() % 100) / 100;
+ e->ny = (float)(random() % 100) / 100;
+ e->nz = (float)(random() % 100) / 100;
+ }
+
+ {
+ double spin_speed = 0.5;
+ double wander_speed = 0.01;
+
+ e->crankWidth = 1.5;
+ e->boom_red[3] = 0.9;
+ e->boom_lpos[3] = 1;
+
+ e->viewer[2] = 30;
+
+ e->rot = make_rotator (spin ? spin_speed : 0,
+ spin ? spin_speed : 0,
+ spin ? spin_speed : 0,
+ 1.0,
+ move ? wander_speed : 0,
+ True);
+
+ e->trackball = gltrackball_init (True);
+ }
+
+ if (!e->glx_context && /* re-initting breaks print_texture_label */
+ (e->glx_context = init_GL(mi)) != NULL) {
+ reshape_engine(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_NORMALIZE);
+ make_tables(e);
+ e->engineType = find_engine(which_engine);
+
+ if (!e->engine_name)
+ e->engine_name = malloc(200);
+ sprintf (e->engine_name,
+ "%s\n%s%d%s",
+ engines[e->engineType].engineName,
+ (engines[e->engineType].includedAngle == 0 ? "" :
+ engines[e->engineType].includedAngle == 180 ? "Flat " : "V"),
+ engines[e->engineType].cylinders,
+ (engines[e->engineType].includedAngle == 0 ? " Cylinder" : "")
+ );
+
+ e->shaft_polys = makeshaft(e);
+ e->piston_polys = makepiston(e);
+
+ if (!e->font_data)
+ e->font_data = load_texture_font (mi->dpy, "titleFont");
+}
+
+ENTRYPOINT Bool
+engine_handle_event (ModeInfo *mi, XEvent *event)
+{
+ Engine *e = &engine[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1) {
+ e->movepaused = 0;
+ }
+
+ if (gltrackball_event_handler (event, e->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &e->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ which_engine = NULL; /* randomize */
+ init_engine(mi);
+ return True;
+ }
+
+ return False;
+}
+
+ENTRYPOINT void draw_engine(ModeInfo *mi)
+{
+ Engine *e = &engine[MI_SCREEN(mi)];
+ Window w = MI_WINDOW(mi);
+ Display *disp = MI_DISPLAY(mi);
+
+ if (!e->glx_context)
+ return;
+
+ glXMakeCurrent(disp, w, *(e->glx_context));
+
+
+ mi->polygon_count = display(mi);
+
+ glColor3f (1, 1, 0);
+ if (do_titles)
+ print_texture_label (mi->dpy, e->font_data,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, e->engine_name);
+
+ if(mi->fps_p) do_fps(mi);
+ glFinish();
+ glXSwapBuffers(disp, w);
+}
+
+XSCREENSAVER_MODULE ("Engine", engine)
+
+#endif
diff --git a/hacks/glx/engine.man b/hacks/glx/engine.man
new file mode 100644
index 0000000..af794e5
--- /dev/null
+++ b/hacks/glx/engine.man
@@ -0,0 +1,80 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+engine - draws a 3D four-stroke engine.
+.SH SYNOPSIS
+.B engine
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-engine \fIname\fP]
+[\-delay \fInumber\fP]
+[\-no-move]
+[\-no-spin]
+[\-no-title]
+[\-fps]
+.SH DESCRIPTION
+Draws a simple four-stroke engine that floats around the screen.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-engine \fIname\fP
+What kind of engine to draw. Default: random.
+Known models are:
+"Honda Insight" (3),
+"BMW M3" (4),
+"VW Beetle" (flat 4),
+"Audi Quattro" (5),
+"BMW M5" (6),
+"Subaru XT" (V6),
+"Porsche 911" (flat 6),
+"Corvette Z06" (V8),
+"Dodge Viper" (V10),
+and
+"Jaguar XKE" (V12).
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-move | \-no-move
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the object should spin.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-title | \-no-title
+Whether to display the name of the engine being rendered.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Ben Buxton. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Ben Buxton.
diff --git a/hacks/glx/erase-gl.c b/hacks/glx/erase-gl.c
new file mode 100644
index 0000000..8515dd9
--- /dev/null
+++ b/hacks/glx/erase-gl.c
@@ -0,0 +1,38 @@
+/* Copyright (c) 2017 Dave Odell <dmo2118@gmail.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * xlockmore.c has references to erase_window, but it never calls these when
+ * running OpenGL hacks. Using this in place of regular utils/erase.c saves a
+ * tiny bit of code/disk space with a native X11 build, where everything is
+ * statically linked together.
+ *
+ * (Linux, amd64, CFLAGS='-O2 -g')
+ * Before: -rwxr-xr-x 1 david david 545848 Aug 9 20:42 hilbert
+ * After: -rwxr-xr-x 1 david david 519344 Aug 9 20:41 hilbert
+ *
+ * (Linux, amd64, CFLAGS=-O2)
+ * Before: -rwxr-xr-x 1 david david 150168 Aug 9 20:40 hilbert
+ * After: -rwxr-xr-x 1 david david 141256 Aug 9 20:39 hilbert
+ */
+
+#include "utils.h"
+#include "erase.h"
+
+void
+eraser_free (eraser_state *st)
+{
+}
+
+
+eraser_state *
+erase_window (Display *dpy, Window window, eraser_state *st)
+{
+ return st;
+}
diff --git a/hacks/glx/esper.c b/hacks/glx/esper.c
new file mode 100644
index 0000000..7a0bb0b
--- /dev/null
+++ b/hacks/glx/esper.c
@@ -0,0 +1,2412 @@
+/* esper, Copyright (c) 2017-2018 Jamie Zawinski <jwz@jwz.org>
+ * Enhance 224 to 176. Pull out track right. Center in pull back.
+ * Pull back. Wait a minute. Go right. Stop. Enhance 57 19. Track 45 left.
+ * Gimme a hardcopy right there.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/*
+ The Esper machine has a 4:3 display, about 12" diagonal.
+ The display is overlayed with a 10x7 grid of blue lines.
+ The scene goes approximately like this:
+
+ "Enhance 224 To 176."
+
+ ZM 0000 NS 0000 EW 0000
+
+ The reticle is displayed centered.
+ It moves in 8 steps with 3 frame blur to move to around to grid 1,4.
+
+ ZM 0000 NS 0000 EW 0000
+ ZM 0000 NS 0001 EW 0001
+ ZM 0000 NS 0001 EW 0002
+ ZM 0000 NS 0002 EW 0003
+ ZM 0000 NS 0003 EW 0005
+ ZM 0000 NS 0004 EW 0008
+ ZM 0000 NS 0015 EW 0011
+
+ These numbers appear to have little relation to what we are
+ actually seeing on the screen. Also the same numbers are
+ repeated later when looking at totally different parts of
+ the photograph.
+
+ ZM 0000 NS 0117 EW 0334
+
+ The box appears: 8 steps, final box is 1.5x2.25 at -0.5,4.0.
+
+ ZM 4086 NS 0117 EW 0334
+
+ The box blinks yellow 5x.
+ The image's zoom-and-pan takes 8 steps, with no text on the screen.
+ The zoom is in discreet steps, with flashes.
+ The grid stays the same size the whole time.
+ The flashes look like solarization to blue.
+ When the zoom is finished, there is still no text.
+
+ "Enhance." Goes 4 more ticks down the same hole?
+ "Stop." Moves up a little bit at the end.
+
+ Then with no instructions, it goes 20 ticks by itself, off camera.
+
+ "Move in." 10 ticks.
+ "Stop." (We are looking at a fist in the picture.)
+ "Pull out track right."
+ "Stop." (We are looking at a newspaper.)
+ "Center and pull back."
+ "Stop." (We just passed the round mirror.)
+ "Track 45 right."
+ "Stop."
+ "Center and stop."
+
+ This time there was no grid until it stopped, then the grid showed up.
+ There is video tearing at the bottom.
+
+ "Enhance 34 to 36."
+
+ ZM 0000 NS 0063 EW 0185
+ ZM 0000 NS 0197 EW 0334
+ ZM 3841 NS 0197 EW 0334
+
+ It kind of zooms in to the center wobbly and willy-nilly.
+ We are now looking at a glass.
+
+ "Pan right and pull back." (There is no grid while moving again.)
+ "Stop."
+
+ Ok, at this point, we enter fantasy-land. From here on, the images
+ shown are very high resolution with no noise. And suddenly the
+ UI on the Esper is *way* higher resolution. My theory is that from
+ this point on in the scene, we are not looking at the literal Esper
+ machine, but instead the movie is presenting Decard's perception of
+ it. We're seeing the room, not the photo of the room. The map has
+ become the territory.
+
+ "Enhance 34 to 46."
+
+ ZM 0000 NS 0197 EW 0334
+
+ This has the reticle and box only, no grid, ends with no grid.
+
+ "Pull back."
+ "Wait a minute. Go right."
+ "Stop."
+ Now it's going around the corner or something.
+
+ "Enhance 57 19."
+ This has a reticle then box, but the image started zooming early.
+
+ "Track 45 left."
+ zooms out and moves left
+
+ "Stop." (O hai Zhora.)
+ "Enhance 15 to 23."
+
+ ZM 3852 NS 0197 EW 0334
+
+ "Gimme a hardcopy right there."
+
+ The printer polaroid is WAY lower resolution than the image we see on
+ the "screen" -- in keeping with my theory that we were not seeing the
+ screen.
+
+
+ TODO:
+
+ * There's a glitch at the top/bottom of the texfont textures.
+ * "Pull back" isn't quite symmetric: zoom origin is slightly off.
+ * Maybe display text like "Pull right" and "Stop".
+*/
+
+
+/* Use a small point size to keep it nice and grainy. */
+#if defined(HAVE_COCOA) || defined(HAVE_ANDROID)
+# define TITLE_FONT "OCR A Std 10, Lucida Console 10, Monaco 10"
+#elif 0 /* real X11, XQueryFont() */
+# define TITLE_FONT "-*-courier-bold-r-*-*-*-100-*-*-m-*-*-*"
+#else /* real X11, load_font_retry() */
+# define TITLE_FONT "-*-ocr a std-medium-r-*-*-*-100-*-*-m-*-*-*"
+#endif
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*wireframe: False \n" \
+ "*showFPS: False \n" \
+ "*fpsTop: True \n" \
+ "*useSHM: True \n" \
+ "*titleFont: " TITLE_FONT "\n" \
+ "*desktopGrabber: xscreensaver-getimage -no-desktop %s\n" \
+ "*grabDesktopImages: False \n" \
+ "*chooseRandomImages: True \n" \
+ "*gridColor: #4444FF\n" \
+ "*reticleColor: #FFFF77\n" \
+ "*textColor: #FFFFBB\n" \
+
+# define free_esper 0
+# define refresh_esper 0
+# define release_esper 0
+# include "xlockmore.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#ifdef USE_GL
+
+#undef SMOOTH
+
+# define DEF_GRID_SIZE "11"
+# define DEF_GRID_THICKNESS "15"
+# define DEF_TITLES "True"
+# define DEF_SPEED "1.0"
+# define DEF_DEBUG "False"
+
+#include "grab-ximage.h"
+#include "texfont.h"
+
+#ifdef HAVE_XSHM_EXTENSION
+# include "xshm.h" /* to get <sys/shm.h> */
+#endif
+
+
+typedef struct {
+ double x, y, w, h;
+} rect;
+
+typedef struct {
+ ModeInfo *mi;
+ unsigned long id; /* unique */
+ char *title; /* the filename of this image */
+ int w, h; /* size in pixels of the image */
+ int tw, th; /* size in pixels of the texture */
+ XRectangle geom; /* where in the image the bits are */
+ Bool loaded_p; /* whether the image has finished loading */
+ Bool used_p; /* whether the image has yet appeared
+ on screen */
+ GLuint texid; /* which texture contains the image */
+ int refcount; /* how many sprites refer to this image */
+} image;
+
+
+typedef enum {
+ BLANK,
+ GRID_ON,
+ IMAGE_LOAD,
+ IMAGE_UNLOAD,
+ IMAGE_FORCE_UNLOAD,
+ REPOSITION,
+ RETICLE_ON,
+ RETICLE_MOVE,
+ BOX_MOVE,
+ IMAGE_ZOOM,
+ MANUAL_RETICLE_ON,
+ MANUAL_RETICLE,
+ MANUAL_BOX_ON,
+ MANUAL_BOX,
+} anim_state;
+
+typedef enum { NEW, IN, FULL, OUT, DEAD } sprite_state;
+typedef enum { IMAGE, RETICLE, BOX, GRID, FLASH, TEXT } sprite_type;
+
+typedef struct {
+ unsigned long id; /* unique */
+ sprite_type type;
+ image *img; /* type = IMAGE */
+ unsigned long text_id; /* type = TEXT */
+ char *text;
+ GLfloat opacity;
+ GLfloat thickness_scale; /* line and image types */
+ Bool throb_p;
+ double start_time; /* when this animation began */
+ double duration; /* lifetime of sprite in seconds; 0 = inf */
+ double fade_duration; /* speed of fade in and fade out */
+ double pause_duration; /* delay before fade-in starts */
+ Bool remain_p; /* pause forever before fade-out */
+ rect from, to, current; /* the journey this image is taking */
+ sprite_state state; /* the state we're in right now */
+ double state_time; /* time of last state change */
+ int frame_count; /* frames since last state change */
+ Bool fatbits_p; /* For image texture rendering */
+ Bool back_p; /* If BOX, zooming out, not in */
+} sprite;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ int nimages; /* how many images are loaded or loading now */
+ image *images[10]; /* pointers to the images */
+
+ int nsprites; /* how many sprites are animating right now */
+ sprite *sprites[100]; /* pointers to the live sprites */
+
+ double now; /* current time in seconds */
+ double dawn_of_time; /* when the program launched */
+ double image_load_time; /* time when we last loaded a new image */
+
+ texture_font_data *font_data;
+
+ int sprite_id, image_id; /* debugging id counters */
+
+ GLfloat grid_color[4], reticle_color[4], text_color[4];
+
+ anim_state anim_state; /* Counters for global animation state, */
+ double anim_start, anim_duration;
+
+ Bool button_down_p;
+
+} esper_state;
+
+static esper_state *sss = NULL;
+
+
+/* Command-line arguments
+ */
+static int grid_size;
+static int grid_thickness;
+
+static Bool do_titles; /* Display image titles. */
+static GLfloat speed;
+static Bool debug_p; /* Be loud and do weird things. */
+
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-titles", ".titles", XrmoptionNoArg, "True" },
+ { "-no-titles", ".titles", XrmoptionNoArg, "False" },
+ { "-debug", ".debug", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ { &grid_size, "gridSize", "GridSize", DEF_GRID_SIZE, t_Int},
+ { &grid_thickness,"gridThickness","GridThickness",DEF_GRID_THICKNESS, t_Int},
+ { &do_titles, "titles", "Titles", DEF_TITLES, t_Bool},
+ { &speed, "speed", "Speed", DEF_SPEED, t_Float},
+ { &debug_p, "debug", "Debug", DEF_DEBUG, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt esper_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+static const char *
+state_name (anim_state s)
+{
+ switch (s) {
+ case BLANK: return "BLANK";
+ case GRID_ON: return "GRID_ON";
+ case IMAGE_LOAD: return "IMAGE_LOAD";
+ case IMAGE_UNLOAD: return "IMAGE_UNLOAD";
+ case IMAGE_FORCE_UNLOAD: return "IMAGE_FORCE_UNLOAD";
+ case REPOSITION: return "REPOSITION";
+ case RETICLE_ON: return "RETICLE_ON";
+ case RETICLE_MOVE: return "RETICLE_MOVE";
+ case BOX_MOVE: return "BOX_MOVE";
+ case IMAGE_ZOOM: return "IMAGE_ZOOM";
+ case MANUAL_BOX_ON: return "MANUAL_BOX_ON";
+ case MANUAL_BOX: return "MANUAL_BOX";
+ case MANUAL_RETICLE_ON: return "MANUAL_RETICLE_ON";
+ case MANUAL_RETICLE: return "MANUAL_RETICLE";
+ default: return "UNKNOWN";
+ }
+}
+
+
+static void image_loaded_cb (const char *filename, XRectangle *geom,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure);
+
+
+/* Allocate an image structure and start a file loading in the background.
+ */
+static image *
+alloc_image (ModeInfo *mi)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ image *img = (image *) calloc (1, sizeof (*img));
+
+ img->id = ++ss->image_id;
+ img->loaded_p = False;
+ img->used_p = False;
+ img->mi = mi;
+
+ glGenTextures (1, &img->texid);
+ if (img->texid <= 0) abort();
+
+ ss->image_load_time = ss->now;
+
+ if (wire)
+ image_loaded_cb (0, 0, 0, 0, 0, 0, img);
+ else
+ {
+ /* If possible, load images at much higher resolution than the window,
+ to facilitate deep zooms.
+ */
+ int max_max = 4096; /* ~12 megapixels */
+ int max = 0;
+
+# if defined(HAVE_XSHM_EXTENSION) && \
+ !defined(HAVE_MOBILE) && \
+ !defined(HAVE_COCOA)
+
+ /* Try not to ask for an image larger than the SHM segment size.
+ If XSHM fails in a real-X11 world, it can take a staggeringly long
+ time to transfer the image bits from the server over Xproto -- like,
+ *18 seconds* for 4096 px and 8 seconds for 3072 px on MacOS XQuartz.
+ What madness is this?
+ */
+ unsigned long shmmax = 0;
+
+# if defined(SHMMAX)
+ /* Linux 2.6 defines this to be 0x2000000, but on CentOS 6.9,
+ "sysctl kernel.shmmax" reports a luxurious 0x1000000000. */
+ shmmax = SHMMAX;
+# elif defined(__APPLE__)
+ /* MacOS 10.13 "sysctl kern.sysv.shmmax" is paltry: */
+ shmmax = 0x400000;
+# endif /* !SHMMAX */
+
+ if (shmmax)
+ {
+ /* Roughly, bytes => NxN. b = (n/8)*4n = n*n*4, so n^2 = 2b, so: */
+ unsigned long n = sqrt(shmmax)/2;
+ if (n < max_max)
+ max_max = n;
+ }
+# endif /* HAVE_XSHM_EXTENSION and real X11 */
+
+ glGetIntegerv (GL_MAX_TEXTURE_SIZE, &max);
+ if (max > max_max) max = max_max;
+
+ /* Never ask for an image smaller than the window, even if that
+ will make XSHM fall back to Xproto. */
+ if (max < MI_WIDTH(mi) || max < MI_HEIGHT(mi))
+ max = 0;
+
+ load_texture_async (mi->xgwa.screen, mi->window, *ss->glx_context,
+ max, max, False, img->texid, image_loaded_cb, img);
+ }
+
+ ss->images[ss->nimages++] = img;
+ if (ss->nimages >= countof(ss->images)) abort();
+
+ return img;
+}
+
+
+/* Callback that tells us that the texture has been loaded.
+ */
+static void
+image_loaded_cb (const char *filename, XRectangle *geom,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ image *img = (image *) closure;
+ ModeInfo *mi = img->mi;
+ int ow, oh;
+ /* esper_state *ss = &sss[MI_SCREEN(mi)]; */
+
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (wire)
+ {
+ img->w = MI_WIDTH (mi) * (0.5 + frand (1.0));
+ img->h = MI_HEIGHT (mi);
+ img->geom.width = img->w;
+ img->geom.height = img->h;
+ goto DONE;
+ }
+
+ if (image_width == 0 || image_height == 0)
+ exit (1);
+
+ img->w = image_width;
+ img->h = image_height;
+ img->tw = texture_width;
+ img->th = texture_height;
+ img->geom = *geom;
+ img->title = (filename ? strdup (filename) : 0);
+
+ ow = img->geom.width;
+ oh = img->geom.height;
+
+ /* If the image's width doesn't come back as the width of the screen,
+ then the image must have been scaled down (due to insufficient
+ texture memory.) Scale up the coordinates to stretch the image
+ to fill the window.
+ */
+ if (img->w != MI_WIDTH(mi))
+ {
+ double scale = (double) MI_WIDTH(mi) / img->w;
+ img->w *= scale;
+ img->h *= scale;
+ img->tw *= scale;
+ img->th *= scale;
+ img->geom.x *= scale;
+ img->geom.y *= scale;
+ img->geom.width *= scale;
+ img->geom.height *= scale;
+ }
+
+ /* xscreensaver-getimage returns paths relative to the image directory
+ now, so leave the sub-directory part in. Unless it's an absolute path.
+ */
+ if (img->title && img->title[0] == '/')
+ {
+ /* strip filename to part between last "/" and last ".". */
+ char *s = strrchr (img->title, '/');
+ if (s) strcpy (img->title, s+1);
+ s = strrchr (img->title, '.');
+ if (s) *s = 0;
+ }
+
+# if !(__APPLE__ && TARGET_IPHONE_SIMULATOR || !defined(__OPTIMIZE__))
+ if (debug_p)
+# endif
+ fprintf (stderr, "%s: loaded %lu \"%s\" %dx%d\n",
+ progname, img->id, (img->title ? img->title : "(null)"),
+ ow, oh);
+ DONE:
+
+ img->loaded_p = True;
+}
+
+
+
+/* Free the image and texture, after nobody is referencing it.
+ */
+static void
+destroy_image (ModeInfo *mi, image *img)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ Bool freed_p = False;
+ int i;
+
+ if (!img) abort();
+ if (!img->loaded_p) abort();
+ if (!img->used_p) abort();
+ if (img->texid <= 0) abort();
+ if (img->refcount != 0) abort();
+
+ for (i = 0; i < ss->nimages; i++) /* unlink it from the list */
+ if (ss->images[i] == img)
+ {
+ int j;
+ for (j = i; j < ss->nimages-1; j++) /* pull remainder forward */
+ ss->images[j] = ss->images[j+1];
+ ss->images[j] = 0;
+ ss->nimages--;
+ freed_p = True;
+ break;
+ }
+
+ if (!freed_p) abort();
+
+ if (debug_p)
+ fprintf (stderr, "%s: unloaded img %2lu: \"%s\"\n",
+ progname, img->id, (img->title ? img->title : "(null)"));
+
+ if (img->title) free (img->title);
+ glDeleteTextures (1, &img->texid);
+ free (img);
+}
+
+
+/* Return an image to use for a sprite.
+ If it's time for a new one, get a new one.
+ Otherwise, use an old one.
+ Might return 0 if the machine is really slow.
+ */
+static image *
+get_image (ModeInfo *mi)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ image *img = 0;
+ image *loading_img = 0;
+ int i;
+
+ for (i = 0; i < ss->nimages; i++)
+ {
+ image *img2 = ss->images[i];
+ if (!img2) abort();
+ if (!img2->loaded_p)
+ loading_img = img2;
+ else
+ img = img2;
+ }
+
+ /* Make sure that there is always one unused image in the pipe.
+ */
+ if (!img && !loading_img)
+ alloc_image (mi);
+
+ return img;
+}
+
+
+/* Allocate a new sprite and start its animation going.
+ */
+static sprite *
+new_sprite (ModeInfo *mi, sprite_type type)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ image *img = (type == IMAGE ? get_image (mi) : 0);
+ sprite *sp;
+
+ if (type == IMAGE && !img)
+ {
+ /* Oops, no images yet! The machine is probably hurting bad.
+ Let's give it some time before thrashing again. */
+ usleep (250000);
+ return 0;
+ }
+
+ sp = (sprite *) calloc (1, sizeof (*sp));
+ sp->id = ++ss->sprite_id;
+ sp->type = type;
+ sp->start_time = ss->now;
+ sp->state_time = sp->start_time;
+ sp->thickness_scale = 1;
+ sp->throb_p = True;
+ sp->to.x = 0.5;
+ sp->to.y = 0.5;
+ sp->to.w = 1.0;
+ sp->to.h = 1.0;
+
+ if (img)
+ {
+ sp->img = img;
+ sp->img->refcount++;
+ sp->img->used_p = True;
+ sp->duration = 0; /* forever, until further notice */
+ sp->fade_duration = 0.5;
+
+ /* Scale the sprite so that the image bits fill the window. */
+ {
+ double w = MI_WIDTH(mi);
+ double h = MI_HEIGHT(mi);
+ double r;
+ r = ((img->geom.height / (double) img->geom.width) * (w / h));
+ if (r > 1)
+ sp->to.h *= r;
+ else
+ sp->to.w /= r;
+ }
+
+ /* Pan to a random spot */
+ if (sp->to.h > 1)
+ sp->to.y += frand ((sp->to.h - 1) / 2) * RANDSIGN();
+ if (sp->to.w > 1)
+ sp->to.x += frand ((sp->to.w - 1) / 2) * RANDSIGN();
+ }
+
+ sp->from = sp->current = sp->to;
+
+ ss->sprites[ss->nsprites++] = sp;
+ if (ss->nsprites >= countof(ss->sprites)) abort();
+
+ return sp;
+}
+
+
+static sprite *
+copy_sprite (ModeInfo *mi, sprite *old)
+{
+ sprite *sp = new_sprite (mi, (sprite_type) ~0L);
+ int id;
+ double tt = sp->start_time;
+ if (!sp) abort();
+ id = sp->id;
+ memcpy (sp, old, sizeof(*sp));
+ sp->id = id;
+ sp->state = NEW;
+ sp->state_time = sp->start_time = tt;
+ if (sp->img)
+ sp->img->refcount++;
+ return sp;
+}
+
+
+/* Free the given sprite, and decrement the reference count on its image.
+ */
+static void
+destroy_sprite (ModeInfo *mi, sprite *sp)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ Bool freed_p = False;
+ image *img;
+ int i;
+
+ if (!sp) abort();
+ if (sp->state != DEAD) abort();
+ img = sp->img;
+
+ if (sp->type != IMAGE)
+ {
+ if (img) abort();
+ }
+ else
+ {
+ if (!img) abort();
+ if (!img->loaded_p) abort();
+ if (!img->used_p) abort();
+ if (img->refcount <= 0) abort();
+ }
+
+ for (i = 0; i < ss->nsprites; i++) /* unlink it from the list */
+ if (ss->sprites[i] == sp)
+ {
+ int j;
+ for (j = i; j < ss->nsprites-1; j++) /* pull remainder forward */
+ ss->sprites[j] = ss->sprites[j+1];
+ ss->sprites[j] = 0;
+ ss->nsprites--;
+ freed_p = True;
+ break;
+ }
+
+ if (!freed_p) abort();
+ if (sp->text) free (sp->text);
+ free (sp);
+ sp = 0;
+
+ if (img)
+ {
+ img->refcount--;
+ if (img->refcount < 0) abort();
+ if (img->refcount == 0)
+ destroy_image (mi, img);
+ }
+}
+
+
+/* Updates the sprite for the current frame of the animation based on
+ its creation time compared to the current wall clock.
+ */
+static void
+tick_sprite (ModeInfo *mi, sprite *sp)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ image *img = sp->img;
+ double now = ss->now;
+ double secs;
+ double ratio;
+ GLfloat visible = sp->duration + sp->fade_duration * 2;
+ GLfloat total = sp->pause_duration + visible;
+
+ if (sp->type != IMAGE)
+ {
+ if (sp->img) abort();
+ }
+ else
+ {
+ if (! sp->img) abort();
+ if (! img->loaded_p) abort();
+ }
+
+ /* pause fade duration fade
+ |------------|------------|---------|-----------|
+ ....----====##########====----....
+ from current to
+ */
+
+ secs = now - sp->start_time;
+ ratio = (visible <= 0 ? 1 : ((secs - sp->pause_duration) / visible));
+ if (ratio < 0) ratio = 0;
+ else if (ratio > 1) ratio = 1;
+
+ sp->current.x = sp->from.x + ratio * (sp->to.x - sp->from.x);
+ sp->current.y = sp->from.y + ratio * (sp->to.y - sp->from.y);
+ sp->current.w = sp->from.w + ratio * (sp->to.w - sp->from.w);
+ sp->current.h = sp->from.h + ratio * (sp->to.h - sp->from.h);
+
+ sp->thickness_scale = 1;
+
+ if (secs < sp->pause_duration)
+ {
+ sp->state = IN;
+ sp->opacity = 0;
+ }
+ else if (secs < sp->pause_duration + sp->fade_duration)
+ {
+ sp->state = IN;
+ sp->opacity = (secs - sp->pause_duration) / (GLfloat) sp->fade_duration;
+ }
+ else if (sp->duration == 0 || /* 0 means infinite lifetime */
+ sp->remain_p ||
+ secs < sp->pause_duration + sp->fade_duration + sp->duration)
+ {
+ sp->state = FULL;
+ sp->opacity = 1;
+
+ /* Just after reaching full opacity, pulse the width up and down. */
+ if (sp->fade_duration > 0 &&
+ secs < sp->pause_duration + sp->fade_duration * 2)
+ {
+ GLfloat f = ((secs - (sp->pause_duration + sp->fade_duration)) /
+ sp->fade_duration);
+ if (sp->throb_p)
+ sp->thickness_scale = 1 + 3 * (f > 0.5 ? 1-f : f);
+ }
+ }
+ else if (secs < total)
+ {
+ sp->state = OUT;
+ sp->opacity = (total - secs) / sp->fade_duration;
+ }
+ else
+ {
+ sp->state = DEAD;
+ sp->opacity = 0;
+ }
+
+ sp->frame_count++;
+}
+
+
+/* Draw the given sprite at the phase of its animation dictated by
+ its creation time compared to the current wall clock.
+ */
+static void
+draw_image_sprite (ModeInfo *mi, sprite *sp)
+{
+ /* esper_state *ss = &sss[MI_SCREEN(mi)]; */
+ int wire = MI_IS_WIREFRAME(mi);
+ image *img = sp->img;
+
+ if (! sp->img) abort();
+ if (! img->loaded_p) abort();
+
+ glPushMatrix();
+ {
+ GLfloat s = 1 + (sp->thickness_scale - 1) / 40.0;
+ glTranslatef (0.5, 0.5, 0);
+ glScalef (s, s, 1);
+ glTranslatef (-0.5, -0.5, 0);
+
+ glTranslatef (sp->current.x, sp->current.y, 0);
+ glScalef (sp->current.w, sp->current.h, 1);
+
+ glTranslatef (-0.5, -0.5, 0);
+
+ if (wire) /* Draw a grid inside the box */
+ {
+ GLfloat dy = 0.1;
+ GLfloat dx = dy * img->w / img->h;
+ GLfloat x, y;
+
+ if (sp->id & 1)
+ glColor4f (sp->opacity, 0, 0, 1);
+ else
+ glColor4f (0, 0, sp->opacity, 1);
+
+ glBegin(GL_LINES);
+ glVertex3f (0, 0, 0); glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0); glVertex3f (0, 1, 0);
+
+ for (y = 0; y < 1+dy; y += dy)
+ {
+ GLfloat yy = (y > 1 ? 1 : y);
+ for (x = 0.5; x < 1+dx; x += dx)
+ {
+ GLfloat xx = (x > 1 ? 1 : x);
+ glVertex3f (0, xx, 0); glVertex3f (1, xx, 0);
+ glVertex3f (yy, 0, 0); glVertex3f (yy, 1, 0);
+ }
+ for (x = 0.5; x > -dx; x -= dx)
+ {
+ GLfloat xx = (x < 0 ? 0 : x);
+ glVertex3f (0, xx, 0); glVertex3f (1, xx, 0);
+ glVertex3f (yy, 0, 0); glVertex3f (yy, 1, 0);
+ }
+ }
+ glEnd();
+ }
+ else /* Draw the texture quad */
+ {
+ GLfloat texw = img->geom.width / (GLfloat) img->tw;
+ GLfloat texh = img->geom.height / (GLfloat) img->th;
+ GLfloat texx1 = img->geom.x / (GLfloat) img->tw;
+ GLfloat texy1 = img->geom.y / (GLfloat) img->th;
+ GLfloat texx2 = texx1 + texw;
+ GLfloat texy2 = texy1 + texh;
+ GLfloat o = sp->opacity;
+ GLint mag = (sp->fatbits_p ? GL_NEAREST : GL_LINEAR);
+
+ glBindTexture (GL_TEXTURE_2D, img->texid);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+
+ /* o = 1 - sin ((1 - o*o*o) * M_PI/2); */
+ glColor4f (1, 1, 1, o);
+
+ glNormal3f (0, 0, 1);
+ glBegin (GL_QUADS);
+ glTexCoord2f (texx1, texy2); glVertex3f (0, 0, 0);
+ glTexCoord2f (texx2, texy2); glVertex3f (1, 0, 0);
+ glTexCoord2f (texx2, texy1); glVertex3f (1, 1, 0);
+ glTexCoord2f (texx1, texy1); glVertex3f (0, 1, 0);
+ glEnd();
+
+ if (debug_p) /* Draw a border around the image */
+ {
+ if (!wire) glDisable (GL_TEXTURE_2D);
+ glColor4f (sp->opacity, 0, 0, 1);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glEnd();
+ if (!wire) glEnable (GL_TEXTURE_2D);
+ }
+ }
+ }
+ glPopMatrix();
+}
+
+
+static void
+draw_line_sprite (ModeInfo *mi, sprite *sp)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int w = MI_WIDTH(mi);
+ int h = MI_HEIGHT(mi);
+ int wh = (w > h ? w : h);
+ int gs = (sp->type == RETICLE ? grid_size+1 : grid_size);
+ int sx = wh / (gs + 1);
+ int sy;
+ int k;
+ GLfloat t = grid_thickness * sp->thickness_scale;
+ int fade;
+ GLfloat color[4];
+
+ GLfloat x = w * sp->current.x;
+ GLfloat y = h * sp->current.y;
+ GLfloat bw = w * sp->current.w;
+ GLfloat bh = h * sp->current.h;
+
+ if (MI_WIDTH(mi) > 2560) t *= 3; /* Retina displays */
+
+ if (sx < 10) sx = 10;
+ sy = sx;
+
+ if (t > sx/3) t = sx/3;
+ if (t < 1) t = 1;
+ fade = t;
+ if (fade < 1) fade = 1;
+
+ if (t <= 0 || sp->opacity <= 0) return;
+
+ glPushMatrix();
+ glLoadIdentity();
+
+ if (debug_p)
+ {
+ GLfloat s = 0.75;
+ glScalef (s, s, s);
+ }
+
+ glOrtho (0, w, 0, h, -1, 1);
+
+ switch (sp->type) {
+ case GRID: memcpy (color, ss->grid_color, sizeof(color)); break;
+ case RETICLE: memcpy (color, ss->reticle_color, sizeof(color)); break;
+ case BOX: memcpy (color, ss->reticle_color, sizeof(color)); break;
+ default: abort();
+ }
+
+ if (sp->type == GRID)
+ {
+ GLfloat s = 1 + (sp->thickness_scale - 1) / 120.0;
+ glTranslatef (w/2, h/2, 0);
+ glScalef (s, s, 1);
+ glTranslatef (-w/2, -h/2, 0);
+ }
+
+ glColor4fv (color);
+
+ if (!wire) glDisable (GL_TEXTURE_2D);
+
+ for (k = 0; k < fade; k++)
+ {
+ GLfloat t2 = t * (1 - (k / (fade * 1.0)));
+ if (t2 <= 0) break;
+ color[3] = sp->opacity / fade;
+ glColor4fv (color);
+
+ glBegin (wire ? GL_LINES : GL_QUADS);
+
+ switch (sp->type) {
+ case GRID:
+ {
+ GLfloat xoff = (w - sx * (w / sx)) / 2.0;
+ GLfloat yoff = (h - sy * (h / sy)) / 2.0;
+ for (y = -sy/2+t2/2; y < h; y += sy)
+ for (x = -sx/2-t2/2; x < w; x += sx)
+ {
+ glVertex3f (xoff+x+t2, yoff+y, 0);
+ glVertex3f (xoff+x+t2, yoff+y+sy-t2, 0);
+ glVertex3f (xoff+x, yoff+y+sy-t2, 0);
+ glVertex3f (xoff+x, yoff+y, 0);
+ mi->polygon_count++;
+
+ glVertex3f (xoff+x, yoff+y-t2, 0);
+ glVertex3f (xoff+x+sx, yoff+y-t2, 0);
+ glVertex3f (xoff+x+sx, yoff+y, 0);
+ glVertex3f (xoff+x, yoff+y, 0);
+ mi->polygon_count++;
+ }
+ }
+ break;
+
+ case BOX:
+ glVertex3f (x-bw/2-t2/2, y-bh/2-t2/2, 0);
+ glVertex3f (x+bw/2+t2/2, y-bh/2-t2/2, 0);
+ glVertex3f (x+bw/2+t2/2, y-bh/2+t2/2, 0);
+ glVertex3f (x-bw/2-t2/2, y-bh/2+t2/2, 0);
+ mi->polygon_count++;
+
+ glVertex3f (x-bw/2-t2/2, y+bh/2-t2/2, 0);
+ glVertex3f (x+bw/2+t2/2, y+bh/2-t2/2, 0);
+ glVertex3f (x+bw/2+t2/2, y+bh/2+t2/2, 0);
+ glVertex3f (x-bw/2-t2/2, y+bh/2+t2/2, 0);
+ mi->polygon_count++;
+
+ glVertex3f (x-bw/2+t2/2, y-bh/2+t2/2, 0);
+ glVertex3f (x-bw/2+t2/2, y+bh/2-t2/2, 0);
+ glVertex3f (x-bw/2-t2/2, y+bh/2-t2/2, 0);
+ glVertex3f (x-bw/2-t2/2, y-bh/2+t2/2, 0);
+ mi->polygon_count++;
+
+ glVertex3f (x+bw/2+t2/2, y-bh/2+t2/2, 0);
+ glVertex3f (x+bw/2+t2/2, y+bh/2-t2/2, 0);
+ glVertex3f (x+bw/2-t2/2, y+bh/2-t2/2, 0);
+ glVertex3f (x+bw/2-t2/2, y-bh/2+t2/2, 0);
+ mi->polygon_count++;
+ break;
+
+ case RETICLE:
+ glVertex3f (x+t2/2, y+sy/2-t2/2, 0);
+ glVertex3f (x+t2/2, h, 0);
+ glVertex3f (x-t2/2, h, 0);
+ glVertex3f (x-t2/2, y+sy/2-t2/2, 0);
+ mi->polygon_count++;
+
+ glVertex3f (x-t2/2, y-sy/2+t2/2, 0);
+ glVertex3f (x-t2/2, 0, 0);
+ glVertex3f (x+t2/2, 0, 0);
+ glVertex3f (x+t2/2, y-sy/2+t2/2, 0);
+ mi->polygon_count++;
+
+ glVertex3f (x-sx/2+t2/2, y+t2/2, 0);
+ glVertex3f (0, y+t2/2, 0);
+ glVertex3f (0, y-t2/2, 0);
+ glVertex3f (x-sx/2+t2/2, y-t2/2, 0);
+ mi->polygon_count++;
+
+ glVertex3f (x+sx/2-t2/2, y-t2/2, 0);
+ glVertex3f (w, y-t2/2, 0);
+ glVertex3f (w, y+t2/2, 0);
+ glVertex3f (x+sx/2-t2/2, y+t2/2, 0);
+ mi->polygon_count++;
+ break;
+
+ default: abort();
+ }
+ glEnd();
+ }
+
+ glPopMatrix();
+
+ if (!wire) glEnable (GL_TEXTURE_2D);
+}
+
+
+static sprite * find_newest_sprite (ModeInfo *, sprite_type);
+static void compute_image_rect (rect *, sprite *, Bool);
+
+static void
+draw_text_sprite (ModeInfo *mi, sprite *sp)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat w = MI_WIDTH(mi);
+ GLfloat h = MI_HEIGHT(mi);
+ GLfloat s;
+ int x, y, z;
+ XCharStruct e;
+ sprite *target = 0;
+ char text[255];
+ GLfloat color[4];
+ int i;
+
+ if (sp->opacity <= 0)
+ return;
+
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp2 = ss->sprites[i];
+ if (sp2->id == sp->text_id && sp2->state != DEAD)
+ {
+ target = sp2;
+ break;
+ }
+ }
+
+ if (target)
+ {
+ rect r;
+ sprite *img;
+
+ if (target->opacity <= 0 &&
+ (target->state == NEW || target->state == IN))
+ return;
+
+ r = target->current;
+
+ img = find_newest_sprite (mi, IMAGE);
+ if (img)
+ compute_image_rect (&r, img, target->back_p);
+
+ mi->recursion_depth = (img
+ ? MIN (img->current.w, img->current.h)
+ : 0);
+
+ x = abs ((int) (r.x * 10000)) % 10000;
+ y = abs ((int) (r.y * 10000)) % 10000;
+ z = abs ((int) (r.w * 10000)) % 10000;
+
+ sprintf (text, "ZM %04d NS %04d EW %04d", z, y, x);
+
+ if ((x == 0 || x == 5000) && /* startup */
+ (y == 0 || y == 5000) &&
+ (z == 0 || z == 5000))
+ *text = 0;
+
+ if (do_titles &&
+ target->type == IMAGE &&
+ target->remain_p) /* The initial background image */
+ {
+ char *s = (target->img &&
+ target->img->title && *target->img->title
+ ? target->img->title
+ : "Loading");
+ int L = strlen (s);
+ int i = (L > 23 ? L-23 : 0);
+ sprintf (text, ">>%-23s", target->img->title + i);
+ for (s = text; *s; s++)
+ if (*s >= 'a' && *s <= 'z') *s += ('A'-'a');
+ else if (*s == '/' || *s == '-' || *s == '.') *s = '_';
+ }
+
+ if (!*text) return;
+
+ if (sp->text) free (sp->text);
+ sp->text = strdup (text);
+ }
+ else if (sp->text && *sp->text)
+ /* The target sprite might be dead, but we saved our last text. */
+ strcpy (text, sp->text);
+ else
+ /* No target, no saved text. */
+ return;
+
+ texture_string_metrics (ss->font_data, text, &e, 0, 0);
+
+ glPushMatrix();
+ glLoadIdentity();
+ glOrtho (0, 1, 0, 1, -1, 1);
+
+ /* Scale the text to fit N characters horizontally. */
+ {
+# ifdef HAVE_MOBILE
+ GLfloat c = 25;
+# else /* desktop */
+ GLfloat c = (MI_WIDTH(mi) <= 640 ? 25 :
+ MI_WIDTH(mi) <= 1280 ? 32 : 64);
+# endif
+ s = w / (e.ascent * c);
+ }
+ w /= s;
+ h /= s;
+ x = (w - e.width) / 2;
+ y = e.ascent + e.descent * 2;
+
+ glScalef (1.0/w, 1.0/h, 1);
+ glTranslatef (x, y, 0);
+
+ memcpy (color, ss->text_color, sizeof(color));
+ color[3] = sp->opacity;
+ glColor4fv (color);
+
+ if (wire)
+ glEnable (GL_TEXTURE_2D);
+
+ print_texture_string (ss->font_data, text);
+ mi->polygon_count++;
+
+ if (wire)
+ glDisable (GL_TEXTURE_2D);
+ glPopMatrix();
+}
+
+
+static void
+draw_flash_sprite (ModeInfo *mi, sprite *sp)
+{
+ /* esper_state *ss = &sss[MI_SCREEN(mi)]; */
+ GLfloat o = sp->opacity;
+
+ if (o <= 0) return;
+ o = 0.7; /* Too fast to see, so keep it consistent */
+
+ glPushMatrix();
+ int wire = MI_IS_WIREFRAME(mi);
+ if (!wire)
+ glDisable (GL_TEXTURE_2D);
+ glColor4f (0, 0, 1, o);
+ glColorMask (0, 0, 1, 1); /* write only into blue and alpha channels */
+ glBegin (GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (1, 0, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (0, 1, 0);
+ glEnd();
+ glColorMask (1, 1, 1, 1);
+ if (!wire)
+ glEnable (GL_TEXTURE_2D);
+ glPopMatrix();
+}
+
+
+static void
+draw_sprite (ModeInfo *mi, sprite *sp)
+{
+ switch (sp->type) {
+ case IMAGE:
+ draw_image_sprite (mi, sp);
+ break;
+ case RETICLE:
+ case BOX:
+ case GRID:
+ draw_line_sprite (mi, sp);
+ break;
+ case TEXT:
+ draw_text_sprite (mi, sp);
+ break;
+ case FLASH:
+ draw_flash_sprite (mi, sp);
+ break;
+ default:
+ abort();
+ }
+}
+
+
+static void
+tick_sprites (ModeInfo *mi)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < ss->nsprites; i++)
+ tick_sprite (mi, ss->sprites[i]);
+
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp = ss->sprites[i];
+ if (sp->state == DEAD)
+ {
+ destroy_sprite (mi, sp);
+ i--;
+ }
+ }
+}
+
+
+static void
+draw_sprites (ModeInfo *mi)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+/*
+ {
+ GLfloat rot = current_device_rotation();
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef(rot, 0, 0, 1);
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+ glScalef (s, 1/s, 1);
+ }
+ glTranslatef (-0.5, -0.5, 0);
+ }
+*/
+
+ /* Draw the images first, then the overlays. */
+ for (i = 0; i < ss->nsprites; i++)
+ if (ss->sprites[i]->type == IMAGE)
+ draw_sprite (mi, ss->sprites[i]);
+ for (i = 0; i < ss->nsprites; i++)
+ if (ss->sprites[i]->type != IMAGE)
+ draw_sprite (mi, ss->sprites[i]);
+
+ glPopMatrix();
+
+ if (debug_p) /* draw a white box (the "screen") */
+ {
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (!wire) glDisable (GL_TEXTURE_2D);
+
+ glColor4f (1, 1, 1, 1);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glEnd();
+
+ if (!wire) glEnable (GL_TEXTURE_2D);
+ }
+}
+
+
+static void
+fadeout_sprite (ModeInfo *mi, sprite *sp)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+
+ /* If it hasn't faded in yet, don't fade out. */
+ if (ss->now <= sp->start_time + sp->pause_duration)
+ sp->fade_duration = 0;
+
+ /* Pretend it's at the point where it should fade out. */
+ sp->pause_duration = 0;
+ sp->duration = 9999;
+ sp->remain_p = False;
+ sp->start_time = ss->now - sp->duration;
+}
+
+static void
+fadeout_sprites (ModeInfo *mi, sprite_type type)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp = ss->sprites[i];
+ if (sp->type == type)
+ fadeout_sprite (mi, sp);
+ }
+}
+
+
+static sprite *
+find_newest_sprite (ModeInfo *mi, sprite_type type)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ sprite *sp = 0;
+ int i;
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp2 = ss->sprites[i];
+ if (sp2->type == type &&
+ (!sp ||
+ (sp->start_time < sp2->start_time &&
+ ss->now >= sp2->start_time + sp2->pause_duration)))
+ sp = sp2;
+ }
+ return sp;
+}
+
+
+/* Enqueue a text sprite describing the given sprite that runs at the
+ same time.
+ */
+static sprite *
+push_text_sprite (ModeInfo *mi, sprite *sp)
+{
+ /* esper_state *ss = &sss[MI_SCREEN(mi)]; */
+ sprite *sp2 = new_sprite (mi, TEXT);
+ if (!sp2) abort();
+ sp2->text_id = sp->id;
+ sp2->fade_duration = sp->fade_duration;
+ sp2->duration = sp->duration;
+ sp2->pause_duration = sp->pause_duration;
+ return sp2;
+}
+
+
+/* Enqueue a flash sprite that fires at the same time.
+ */
+#ifndef SMOOTH
+static sprite *
+push_flash_sprite (ModeInfo *mi, sprite *sp)
+{
+ /* esper_state *ss = &sss[MI_SCREEN(mi)]; */
+ sprite *sp2 = new_sprite (mi, FLASH);
+ if (!sp2) abort();
+ if (sp->type != IMAGE) abort();
+ sp2->text_id = sp->id;
+ sp2->duration = MAX (0.07 / speed, 0.07);
+ sp2->fade_duration = 0; /* Fading these is too fast to see */
+ sp2->pause_duration = sp->pause_duration + (sp->fade_duration * 0.3);
+ return sp2;
+}
+#endif /* !SMOOTH */
+
+
+/* Set the sprite's duration based on distance travelled.
+ */
+static void
+compute_sprite_duration (ModeInfo *mi, sprite *sp, Bool blink_p)
+{
+ /* Compute max distance traveled by any point (corners or center). */
+ /* (cpp is the devil) */
+# define L(F) (sp->F.x - sp->F.w/2) /* delta of left edge, from/to */
+# define R(F) (1-(sp->F.x + sp->F.w/2)) /* right */
+# define B(F) (sp->F.y - sp->F.h/2) /* top */
+# define T(F) (1-(sp->F.y + sp->F.h/2)) /* bottom */
+# define D(F,G) sqrt(F(from)*F(from) + G(to)*G(to)) /* corner traveled */
+ double BL = D(B,L);
+ double BR = D(B,R);
+ double TL = D(T,L);
+ double TR = D(T,R);
+ double cx = sp->to.x - sp->from.x;
+ double cy = sp->to.y - sp->from.y;
+ double C = sqrt(cx*cx + cy*cy);
+ double dist = MAX (BL, MAX (BR, MAX (TL, MAX (TR, C))));
+# undef L
+# undef R
+# undef B
+# undef T
+# undef D
+
+ int steps = 1 + dist * 28;
+ if (steps > 10) steps = 10;
+
+ sp->duration = steps * 0.2 / speed;
+
+# ifndef SMOOTH
+ sp->duration += 1.5 / speed; /* For linger added by animate_sprite_path() */
+ if (blink_p) sp->duration += 0.6 / speed;
+# endif
+}
+
+
+/* Convert the sprite to a jerky transition.
+ Instead of smoothly animating, move in discrete steps,
+ using multiple staggered sprites.
+ */
+static void
+animate_sprite_path (ModeInfo *mi, sprite *sp, Bool blink_p)
+{
+# ifndef SMOOTH
+ /* esper_state *ss = &sss[MI_SCREEN(mi)]; */
+ double dx = sp->to.x - sp->from.x;
+ double dy = sp->to.y - sp->from.y;
+ double dw = sp->to.w - sp->from.w;
+ double dh = sp->to.h - sp->from.h;
+ double linger = 1.5 / speed;
+ double blinger = 0.6 / speed;
+ double dur = sp->duration - linger - (blink_p ? blinger : 0);
+ int steps = dur / 0.3 * speed; /* step duration in seconds */
+ int i;
+
+ if (sp->type == IMAGE)
+ steps *= 0.8;
+
+ if (steps < 2) steps = 2;
+ if (steps > 10) steps = 10;
+
+ /* if (dur <= 0.01) abort(); */
+ if (dur < 0.01)
+ linger = blinger = 0;
+
+ for (i = 0; i <= steps; i++)
+ {
+ sprite *sp2 = copy_sprite (mi, sp);
+ if (!sp2) abort();
+
+ sp2->to.x = (sp->current.x + i * dx / steps);
+ sp2->to.y = (sp->current.y + i * dy / steps);
+ sp2->to.w = (sp->current.w + i * dw / steps);
+ sp2->to.h = (sp->current.h + i * dh / steps);
+ sp2->current = sp2->from = sp2->to;
+ sp2->duration = dur / steps;
+ sp2->pause_duration += i * sp2->duration;
+ sp2->remain_p = False;
+ sp2->fatbits_p = True;
+
+ if (i == steps)
+ sp2->duration += linger; /* last one lingers for a bit */
+
+ if (i == steps && !blink_p)
+ {
+ sp2->remain_p = sp->remain_p;
+ sp2->fatbits_p = False;
+ }
+
+ if (sp2->type == IMAGE && i > 0)
+ push_flash_sprite (mi, sp2);
+
+ if (sp2->type == RETICLE || sp2->type == BOX)
+ {
+ sp2 = push_text_sprite (mi, sp2);
+ if (i == steps)
+ sp2->duration += linger * 2;
+ }
+ }
+
+ if (blink_p && blinger) /* last one blinks before vanishing */
+ {
+ int blinkers = 3;
+ for (i = 1; i <= blinkers; i++)
+ {
+ sprite *sp2 = copy_sprite (mi, sp);
+ if (!sp2) abort();
+
+ sp2->current = sp2->from = sp->to;
+ sp2->duration = blinger / blinkers;
+ sp2->pause_duration += dur + linger + i * sp2->duration;
+ sp2->remain_p = False;
+ if (i == blinkers)
+ {
+ sp2->remain_p = sp->remain_p;
+ sp2->fatbits_p = False;
+ }
+ }
+ }
+
+ /* Fade out the template sprite. It might not have even appeared yet. */
+ fadeout_sprite (mi, sp);
+# endif
+}
+
+
+/* Input rect is of a reticle or box.
+ Output rect is what the image's rect should be so that the only part
+ visible is the part indicated by the input rect.
+ */
+static void
+compute_image_rect (rect *r, sprite *img, Bool inverse_p)
+{
+ double scale = (inverse_p ? 1/r->w : r->w);
+ double dx = r->x - 0.5;
+ double dy = r->y - 0.5;
+
+ /* Adjust size and center by zoom factor */
+ r->w = img->current.w / scale;
+ r->h = img->current.h / scale;
+ r->x = 0.5 + (img->current.x - 0.5) / scale;
+ r->y = 0.5 + (img->current.y - 0.5) / scale;
+
+ /* Move center */
+
+ if (inverse_p)
+ {
+ dx = -dx; /* #### Close but not quite right */
+ dy = -dy;
+ }
+
+ r->x -= dx / scale;
+ r->y -= dy / scale;
+}
+
+
+/* Sets 'to' such that the image zooms out so that the only part visible
+ is the part indicated by the box.
+ */
+static void
+track_box_with_image (ModeInfo *mi, sprite *sp, sprite *img)
+{
+ rect r = sp->current;
+ compute_image_rect (&r, img, sp->back_p);
+ img->to = r;
+
+ /* Never zoom out too far. */
+ if (img->to.w < 1 && img->to.h < 1)
+ {
+ if (img->to.w > img->to.h)
+ {
+ img->to.w = img->to.w / img->to.h;
+ img->to.h = 1;
+ }
+ else
+ {
+ img->to.h = img->to.h / img->to.w;
+ img->to.w = 1;
+ }
+ }
+
+ /* Never pan beyond the bounds of the image. */
+ if (img->to.x < -img->to.w/2+1) img->to.x = -img->to.w/2+1;
+ if (img->to.x > img->to.w/2) img->to.x = img->to.w/2;
+ if (img->to.y < -img->to.h/2+1) img->to.y = -img->to.h/2+1;
+ if (img->to.y > img->to.h/2) img->to.y = img->to.h/2;
+}
+
+
+static void
+tick_animation (ModeInfo *mi)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ anim_state prev_state = ss->anim_state;
+ sprite *sp = 0;
+ int i;
+
+ switch (ss->anim_state) {
+ case BLANK:
+ ss->anim_state = GRID_ON;
+ break;
+ case GRID_ON:
+ ss->anim_state = IMAGE_LOAD;
+ break;
+ case IMAGE_LOAD:
+ /* Only advance once an image has loaded. */
+ if (find_newest_sprite (mi, IMAGE))
+ ss->anim_state = RETICLE_ON;
+ else
+ ss->anim_state = IMAGE_LOAD;
+ break;
+ case RETICLE_ON:
+ ss->anim_state = RETICLE_MOVE;
+ break;
+ case RETICLE_MOVE:
+ if (random() % 6)
+ ss->anim_state = BOX_MOVE;
+ else
+ ss->anim_state = IMAGE_ZOOM;
+ break;
+ case BOX_MOVE:
+ ss->anim_state = IMAGE_ZOOM;
+ break;
+ case IMAGE_ZOOM:
+ {
+ sprite *sp = find_newest_sprite (mi, IMAGE);
+ double depth = (sp
+ ? MIN (sp->current.w, sp->current.h)
+ : 0);
+ if (depth > 20)
+ ss->anim_state = IMAGE_UNLOAD;
+ else
+ ss->anim_state = RETICLE_ON;
+ }
+ break;
+ case IMAGE_FORCE_UNLOAD:
+ ss->anim_state = IMAGE_UNLOAD;
+ break;
+ case IMAGE_UNLOAD:
+ ss->anim_state = IMAGE_LOAD;
+ break;
+ case MANUAL_BOX_ON:
+ ss->anim_state = MANUAL_BOX;
+ break;
+ case MANUAL_BOX:
+ break;
+ case MANUAL_RETICLE_ON:
+ ss->anim_state = MANUAL_RETICLE;
+ break;
+ case MANUAL_RETICLE:
+ break;
+ default:
+ abort();
+ break;
+ }
+
+ ss->anim_start = ss->now;
+ ss->anim_duration = 0;
+
+ if (debug_p)
+ fprintf (stderr, "%s: entering %s\n",
+ progname, state_name (ss->anim_state));
+
+ switch (ss->anim_state) {
+
+ case GRID_ON: /* Start the grid fading in. */
+ if (! find_newest_sprite (mi, GRID))
+ {
+ sp = new_sprite (mi, GRID);
+ if (!sp) abort();
+ sp->fade_duration = 1.0 / speed;
+ sp->duration = 2.0 / speed;
+ sp->remain_p = True;
+ ss->anim_duration = (sp->pause_duration + sp->fade_duration * 2 +
+ sp->duration);
+ }
+ break;
+
+ case IMAGE_LOAD:
+ fadeout_sprites (mi, IMAGE);
+ sp = new_sprite (mi, IMAGE);
+ if (! sp)
+ {
+ if (debug_p) fprintf (stderr, "%s: image load failed\n", progname);
+ break;
+ }
+
+ sp->fade_duration = 0.5 / speed;
+ sp->duration = sp->fade_duration * 3;
+ sp->remain_p = True;
+ /* If we zoom in, we lose the pulse at the end. */
+ /* sp->from.w = sp->from.h = 0.0001; */
+ sp->current = sp->from;
+
+ ss->anim_duration = (sp->pause_duration + sp->fade_duration * 2 +
+ sp->duration);
+
+ sp = push_text_sprite (mi, sp);
+ sp->fade_duration = 0.2 / speed;
+ sp->pause_duration = 0;
+ sp->duration = 2.5 / speed;
+ break;
+
+ case IMAGE_FORCE_UNLOAD:
+ break;
+
+ case IMAGE_UNLOAD:
+ sp = find_newest_sprite (mi, IMAGE);
+ if (sp)
+ sp->fade_duration = ((prev_state == IMAGE_FORCE_UNLOAD ? 0.2 : 3.0)
+ / speed);
+ fadeout_sprites (mi, IMAGE);
+ fadeout_sprites (mi, RETICLE);
+ fadeout_sprites (mi, BOX);
+ fadeout_sprites (mi, TEXT);
+ ss->anim_duration = (sp ? sp->fade_duration : 0) + 3.5 / speed;
+ break;
+
+ case RETICLE_ON: /* Display reticle at center. */
+ fadeout_sprites (mi, TEXT);
+ sp = new_sprite (mi, RETICLE);
+ if (!sp) abort();
+ sp->fade_duration = 0.2 / speed;
+ sp->pause_duration = 1.0 / speed;
+ sp->duration = 1.5 / speed;
+ ss->anim_duration = (sp->pause_duration + sp->fade_duration * 2 +
+ sp->duration);
+ ss->anim_duration -= sp->fade_duration * 2;
+ break;
+
+ case RETICLE_MOVE:
+ /* Reticle has faded in. Now move it to somewhere else.
+ Create N new reticle sprites, wih staggered pause_durations.
+ */
+ {
+ GLfloat ox = 0.5;
+ GLfloat oy = 0.5;
+ GLfloat nx, ny, dist;
+
+ do { /* pick a new position not too near the old */
+ nx = 0.3 + BELLRAND(0.4);
+ ny = 0.3 + BELLRAND(0.4);
+ dist = sqrt ((nx-ox)*(nx-ox) + (ny-oy)*(ny-oy));
+ } while (dist < 0.1);
+
+ sp = new_sprite (mi, RETICLE);
+ if (!sp) abort();
+
+ sp->from.x = ox;
+ sp->from.y = oy;
+ sp->current = sp->to = sp->from;
+ sp->to.x = nx;
+ sp->to.y = ny;
+ sp->fade_duration = 0.2 / speed;
+ sp->pause_duration = 0;
+ compute_sprite_duration (mi, sp, False);
+
+ ss->anim_duration = (sp->pause_duration + sp->fade_duration * 2 +
+ sp->duration - 0.1);
+ animate_sprite_path (mi, sp, False);
+ }
+ break;
+
+ case BOX_MOVE:
+ /* Reticle has moved, and faded out.
+ Start the box zooming into place.
+ */
+ {
+ GLfloat ox = 0.5;
+ GLfloat oy = 0.5;
+ GLfloat nx, ny;
+ GLfloat z;
+
+ /* Find the last-added reticle, for our destination position. */
+ sp = 0;
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp2 = ss->sprites[i];
+ if (sp2->type == RETICLE &&
+ (!sp || sp->start_time < sp2->start_time))
+ sp = sp2;
+ }
+ if (sp)
+ {
+ nx = sp->to.x;
+ ny = sp->to.y;
+ }
+ else
+ {
+ nx = ny = 0.5;
+ if (debug_p)
+ fprintf (stderr, "%s: no reticle before box?\n", progname);
+ }
+
+ z = 0.3 + frand(0.5);
+
+ /* Ensure that the selected box is contained within the screen */
+ {
+ double margin = 0.005;
+ double maxw = 2 * MIN (1 - margin - nx, nx - margin);
+ double maxh = 2 * MIN (1 - margin - ny, ny - margin);
+ double max = MIN (maxw, maxh);
+ if (z > max) z = max;
+ }
+
+ sp = new_sprite (mi, BOX);
+ if (!sp) abort();
+ sp->from.x = ox;
+ sp->from.y = oy;
+ sp->from.w = 1.0;
+ sp->from.h = 1.0;
+ sp->current = sp->from;
+ sp->to.x = nx;
+ sp->to.y = ny;
+ sp->to.w = z;
+ sp->to.h = z;
+
+ /* Maybe zoom out instead of in.
+ */
+ {
+ sprite *img = find_newest_sprite (mi, IMAGE);
+ double depth = MIN (img->current.w, img->current.h);
+ if (depth > 1 && /* if zoomed in */
+ (depth < 6 ? !(random() % 5) : /* 20% */
+ depth < 12 ? !(random() % 2) : /* 50% */
+ (random() % 3))) /* 66% */
+ {
+ sp->back_p = True;
+ if (depth < 1.5 && z < 0.8)
+ {
+ z = 0.8; /* don't zoom out much past 100% */
+ sp->to.w = z;
+ sp->to.h = z;
+ }
+ }
+ }
+
+ sp->fade_duration = 0.2 / speed;
+ sp->pause_duration = 2.0 / speed;
+ compute_sprite_duration (mi, sp, True);
+ ss->anim_duration = (sp->pause_duration + sp->fade_duration * 2 +
+ sp->duration - 0.1);
+ animate_sprite_path (mi, sp, True);
+ }
+ break;
+
+ case IMAGE_ZOOM:
+
+ /* Box has moved, and faded out.
+ Or, if no box, then just a reticle.
+ Zoom the underlying image to track the box's position. */
+ {
+ sprite *img, *img2;
+
+ /* Find latest box or reticle, for our destination position. */
+ sp = find_newest_sprite (mi, BOX);
+ if (! sp)
+ sp = find_newest_sprite (mi, RETICLE);
+ if (! sp)
+ {
+ if (debug_p)
+ fprintf (stderr, "%s: no box or reticle before image\n",
+ progname);
+ break;
+ }
+
+ img = find_newest_sprite (mi, IMAGE);
+ if (!img)
+ {
+ if (debug_p)
+ fprintf (stderr, "%s: no image?\n", progname);
+ break;
+ }
+
+ img2 = copy_sprite (mi, img);
+ if (!img2) abort();
+
+ img2->from = img->current;
+
+ fadeout_sprite (mi, img);
+
+ track_box_with_image (mi, sp, img2);
+
+ img2->fade_duration = 0.2 / speed;
+ img2->pause_duration = 0.5 / speed;
+ img2->remain_p = True;
+ img2->throb_p = False;
+ compute_sprite_duration (mi, img2, False);
+
+ img->start_time += img2->pause_duration;
+
+ ss->anim_duration = (img2->pause_duration + img2->fade_duration * 2 +
+ img2->duration);
+ animate_sprite_path (mi, img2, False);
+ fadeout_sprites (mi, TEXT);
+ }
+ break;
+
+ case MANUAL_BOX_ON:
+ case MANUAL_RETICLE_ON:
+ break;
+
+ case MANUAL_BOX:
+ case MANUAL_RETICLE:
+ {
+ sprite_type tt = (ss->anim_state == MANUAL_BOX ? BOX : RETICLE);
+ sprite *osp = find_newest_sprite (mi, tt);
+ fadeout_sprites (mi, RETICLE);
+ fadeout_sprites (mi, BOX);
+
+ sp = new_sprite (mi, tt);
+ if (!sp) abort();
+ if (osp)
+ sp->from = osp->current;
+ else
+ {
+ sp->from.x = 0.5;
+ sp->from.y = 0.5;
+ sp->from.w = 0.5;
+ sp->from.h = 0.5;
+ }
+ sp->to = sp->current = sp->from;
+ sp->fade_duration = 0.2 / speed;
+ sp->duration = 0.2 / speed;
+ sp->remain_p = True;
+ sp->throb_p = False;
+ ss->anim_duration = 9999;
+ }
+ break;
+
+ default:
+ fprintf (stderr,"%s: unknown state %d\n",
+ progname, (int) ss->anim_state);
+ abort();
+ }
+}
+
+
+/* Copied from gltrackball.c, sigh.
+ */
+static void
+adjust_for_device_rotation (double *x, double *y, double *w, double *h)
+{
+ int rot = (int) current_device_rotation();
+ int swap;
+
+ while (rot <= -180) rot += 360;
+ while (rot > 180) rot -= 360;
+
+ if (rot > 135 || rot < -135) /* 180 */
+ {
+ *x = *w - *x;
+ *y = *h - *y;
+ }
+ else if (rot > 45) /* 90 */
+ {
+ swap = *x; *x = *y; *y = swap;
+ swap = *w; *w = *h; *h = swap;
+ *x = *w - *x;
+ }
+ else if (rot < -45) /* 270 */
+ {
+ swap = *x; *x = *y; *y = swap;
+ swap = *w; *w = *h; *h = swap;
+ *y = *h - *y;
+ }
+}
+
+
+ENTRYPOINT Bool
+esper_handle_event (ModeInfo *mi, XEvent *event)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+
+ if (event->xany.type == Expose ||
+ event->xany.type == GraphicsExpose ||
+ event->xany.type == VisibilityNotify)
+ {
+ return False;
+ }
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ sprite *sp = 0;
+ double delta = 0.025;
+ double margin = 0.005;
+ Bool ok = False;
+
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+
+ if (c == '\t')
+ {
+ ss->anim_state = IMAGE_FORCE_UNLOAD;
+ return True;
+ }
+
+ if (! find_newest_sprite (mi, IMAGE))
+ return False; /* Too early */
+
+ ss->now = double_time();
+
+# define BONK() do { \
+ if (ss->anim_state != MANUAL_BOX_ON && \
+ ss->anim_state != MANUAL_BOX) { \
+ ss->anim_state = MANUAL_BOX_ON; \
+ tick_animation (mi); \
+ } \
+ sp = find_newest_sprite (mi, BOX); \
+ if (!sp) abort() ; \
+ sp->from = sp->current; \
+ sp->to = sp->from; \
+ sp->start_time = ss->now - sp->fade_duration; \
+ ok = True; \
+ } while(0)
+
+ if (keysym == XK_Left || c == ',' || c == '<')
+ {
+ BONK();
+ sp->to.x -= delta;
+ }
+ else if (keysym == XK_Right || c == '.' || c == '>')
+ {
+ BONK();
+ sp->to.x += delta;
+ }
+ else if (keysym == XK_Down || c == '-')
+ {
+ BONK();
+ sp->to.y -= delta;
+ }
+ else if (keysym == XK_Up || c == '=')
+ {
+ BONK();
+ sp->to.y += delta, ok = True;
+ }
+ else if (keysym == XK_Prior || c == '+')
+ {
+ BONK();
+ sp->to.w += delta;
+ sp->to.h = sp->to.w * sp->from.w / sp->from.h;
+ }
+ else if (keysym == XK_Next || c == '_')
+ {
+ BONK();
+ sp->to.w -= delta;
+ sp->to.h = sp->to.w * sp->from.w / sp->from.h;
+ }
+ else if ((c == ' ' || c == '\t') && debug_p &&
+ ss->anim_state == MANUAL_BOX)
+ {
+ BONK(); /* Null motion: just flash the current image. */
+ }
+ else if ((keysym == XK_Home || c == ' ' || c == '\t') &&
+ ss->anim_state == MANUAL_BOX)
+ {
+ BONK();
+ sp->to.x = 0.5;
+ sp->to.y = 0.5;
+ sp->to.w = 0.5;
+ sp->to.h = 0.5;
+ }
+ else if ((c == '\r' || c == '\n' || c == 033) &&
+ ss->anim_state == MANUAL_BOX)
+ {
+ BONK();
+ ss->anim_state = BOX_MOVE;
+ ss->anim_duration = 9999;
+ ss->anim_start = ss->now - ss->anim_duration;
+ fadeout_sprite (mi, sp);
+ return True;
+ }
+ else
+ return False;
+
+ if (! ok)
+ return False;
+
+ /* Keep it on screen */
+ if (sp->to.w > 1 - margin)
+ {
+ GLfloat r = sp->to.h / sp->to.w;
+ sp->to.w = 1-margin;
+ sp->to.h = (1-margin) * r;
+ }
+ if (sp->to.h > 1)
+ {
+ GLfloat r = sp->to.h / sp->to.w;
+ sp->to.w = (1-margin) / r;
+ sp->to.h = 1-margin;
+ }
+
+ if (sp->to.x - sp->to.w/2 < margin)
+ sp->to.x = sp->to.w/2 + margin;
+ if (sp->to.y - sp->to.h/2 < margin)
+ sp->to.y = sp->to.h/2 + margin;
+
+ if (sp->to.x + sp->to.w/2 >= 1 + margin)
+ sp->to.x = 1 - (sp->to.w/2 + margin);
+ if (sp->to.y + sp->to.h/2 >= 1 + margin)
+ sp->to.y = 1 - (sp->to.h/2 + margin);
+
+ /* Now let's give a momentary glimpse of what the image would do. */
+ if (debug_p)
+ {
+ sprite *img = 0;
+ int i;
+
+ /* Find the lingering image */
+ /* img = find__sprite (mi, IMAGE); */
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp2 = ss->sprites[i];
+ if (sp2->type == IMAGE &&
+ sp2->remain_p &&
+ (!img ||
+ (img->start_time < sp2->start_time &&
+ ss->now >= sp2->start_time + sp2->pause_duration)))
+ img = sp2;
+ }
+
+ if (!img) abort();
+ img = copy_sprite (mi, img);
+ img->pause_duration = 0;
+ img->fade_duration = 0.1 / speed;
+ img->duration = 0.5 / speed;
+ img->start_time = ss->now;
+ img->remain_p = False;
+ track_box_with_image (mi, sp, img);
+ img->from = img->current = img->to;
+ }
+
+ return True;
+ }
+ else if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ ss->button_down_p = 1;
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ ss->button_down_p = 0;
+
+ if (ss->anim_state == MANUAL_BOX)
+ {
+ sprite *sp = find_newest_sprite (mi, BOX);
+ if (sp) fadeout_sprite (mi, sp);
+ ss->anim_state = BOX_MOVE;
+ ss->anim_duration = 9999;
+ ss->anim_start = ss->now - ss->anim_duration;
+ }
+ else if (ss->anim_state == MANUAL_RETICLE)
+ {
+ sprite *sp = find_newest_sprite (mi, RETICLE);
+ if (sp) fadeout_sprite (mi, sp);
+ ss->anim_state = RETICLE_MOVE;
+ ss->anim_duration = 9999;
+ ss->anim_start = ss->now - ss->anim_duration;
+ }
+ return True;
+ }
+ else if (event->xany.type == MotionNotify &&
+ ss->button_down_p &&
+ (ss->anim_state == MANUAL_RETICLE ||
+ ss->anim_state == RETICLE_MOVE))
+ {
+ sprite *sp = 0;
+ double x = event->xmotion.x;
+ double y = event->xmotion.y;
+ double w = MI_WIDTH(mi);
+ double h = MI_HEIGHT(mi);
+
+ adjust_for_device_rotation (&x, &y, &w, &h);
+ x = x/w;
+ y = 1-y/h;
+
+ if (ss->anim_state != MANUAL_RETICLE_ON &&
+ ss->anim_state != MANUAL_RETICLE)
+ {
+ ss->anim_state = MANUAL_RETICLE_ON;
+ tick_animation (mi);
+ }
+ sp = find_newest_sprite (mi, RETICLE);
+ if (!sp) abort();
+ sp->from = sp->current;
+ sp->to = sp->from;
+ sp->start_time = ss->now - sp->fade_duration;
+ sp->remain_p = True;
+
+ sp->current.x = MIN (0.95, MAX (0.05, x));
+ sp->current.y = MIN (0.95, MAX (0.05, y));
+ sp->from = sp->to = sp->current;
+
+ /* Don't update the text sprite more often than once a second. */
+ {
+ sprite *sp2 = find_newest_sprite (mi, TEXT);
+ if (!sp2 || sp2->start_time < ss->now-1)
+ {
+ fadeout_sprites (mi, TEXT);
+ sp = push_text_sprite (mi, sp);
+ sp->remain_p = True;
+ }
+ }
+
+ return True;
+ }
+ else if (event->xany.type == MotionNotify &&
+ ss->button_down_p &&
+ (ss->anim_state == MANUAL_BOX ||
+ ss->anim_state == BOX_MOVE))
+ {
+ sprite *sp = 0;
+ double x = event->xmotion.x;
+ double y = event->xmotion.y;
+ double w = MI_WIDTH(mi);
+ double h = MI_HEIGHT(mi);
+ double max;
+ Bool ok = True;
+
+ adjust_for_device_rotation (&x, &y, &w, &h);
+ x = x/w;
+ y = 1-y/h;
+
+ BONK();
+ max = (2 * (0.5 - MAX (fabs (sp->current.x - 0.5),
+ fabs (sp->current.y - 0.5)))
+ * 0.95);
+
+ x = fabs (x - sp->current.x);
+ y = fabs (y - sp->current.y);
+
+ if (x > y)
+ sp->current.w = sp->current.h = MIN (max, MAX (0.05, 2*x));
+ else
+ sp->current.w = sp->current.h = MIN (max, MAX (0.05, 2*y));
+ sp->from = sp->to = sp->current;
+
+ /* Don't update the text sprite more often than once a second. */
+ {
+ sprite *sp2 = find_newest_sprite (mi, TEXT);
+ if (!sp2 || sp2->start_time < ss->now-1)
+ {
+ fadeout_sprites (mi, TEXT);
+ sp = push_text_sprite (mi, sp);
+ sp->remain_p = True;
+ }
+ }
+
+ return ok;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ ss->anim_state = IMAGE_FORCE_UNLOAD;
+ return True;
+ }
+# undef BONK
+
+ return False;
+}
+
+
+ENTRYPOINT void
+reshape_esper (ModeInfo *mi, int width, int height)
+{
+ GLfloat s;
+
+ glViewport (0, 0, width, height);
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity();
+ glRotatef (current_device_rotation(), 0, 0, 1);
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity();
+
+ s = 2;
+
+ if (debug_p)
+ {
+ s *= 0.75;
+ if (s < 0.1) s = 0.1;
+ }
+
+ glScalef (s, s, s);
+ glTranslatef (-0.5, -0.5, 0);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* Stretch each existing image to match new window aspect. */
+ {
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp = ss->sprites[i];
+ if (sp && sp->type == IMAGE && sp->img && sp->img->loaded_p)
+ {
+ GLfloat sp_asp = sp->current.h / sp->current.w;
+ GLfloat img_asp = (sp->img->geom.height /
+ (GLfloat) sp->img->geom.width);
+ GLfloat new_win = (MI_WIDTH(mi) / (double) MI_HEIGHT(mi));
+ GLfloat old_win = sp_asp / img_asp;
+ GLfloat r = old_win / new_win;
+ if (img_asp > 1)
+ {
+ sp->from.h /= r;
+ sp->current.h /= r;
+ sp->to.h /= r;
+ }
+ else
+ {
+ sp->from.w *= r;
+ sp->current.w *= r;
+ sp->to.w *= r;
+ }
+ }
+ }
+ }
+}
+
+
+static void
+parse_color (ModeInfo *mi, char *key, GLfloat color[4])
+{
+ XColor xcolor;
+ char *string = get_string_resource (mi->dpy, key, "EsperColor");
+ if (!XParseColor (mi->dpy, mi->xgwa.colormap, string, &xcolor))
+ {
+ fprintf (stderr, "%s: unparsable color in %s: %s\n", progname,
+ key, string);
+ exit (1);
+ }
+
+ color[0] = xcolor.red / 65536.0;
+ color[1] = xcolor.green / 65536.0;
+ color[2] = xcolor.blue / 65536.0;
+ color[3] = 1;
+}
+
+
+ENTRYPOINT void
+init_esper (ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ esper_state *ss;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, sss);
+ ss = &sss[screen];
+
+ if ((ss->glx_context = init_GL(mi)) != NULL) {
+ reshape_esper (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ parse_color (mi, "gridColor", ss->grid_color);
+ parse_color (mi, "reticleColor", ss->reticle_color);
+ parse_color (mi, "textColor", ss->text_color);
+
+ glDisable (GL_LIGHTING);
+ glDisable (GL_DEPTH_TEST);
+ glDepthMask (GL_FALSE);
+ glEnable (GL_CULL_FACE);
+ glCullFace (GL_BACK);
+
+ if (! wire)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glShadeModel (GL_SMOOTH);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ ss->font_data = load_texture_font (mi->dpy, "titleFont");
+
+ ss->now = double_time();
+ ss->dawn_of_time = ss->now;
+
+ alloc_image (mi);
+
+ ss->anim_state = BLANK;
+ ss->anim_start = 0;
+ ss->anim_duration = 0;
+}
+
+
+ENTRYPOINT void
+draw_esper (ModeInfo *mi)
+{
+ esper_state *ss = &sss[MI_SCREEN(mi)];
+
+ if (!ss->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(ss->glx_context));
+
+ mi->polygon_count = 0;
+
+ ss->now = double_time();
+
+ tick_sprites (mi);
+ draw_sprites (mi);
+ if (ss->now >= ss->anim_start + ss->anim_duration)
+ tick_animation (mi);
+
+ if (mi->fps_p) do_fps (mi);
+
+ glFinish();
+ glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi));
+}
+
+XSCREENSAVER_MODULE ("Esper", esper)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/esper.man b/hacks/glx/esper.man
new file mode 100644
index 0000000..4d994d9
--- /dev/null
+++ b/hacks/glx/esper.man
@@ -0,0 +1,68 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+esper - Enhance 224 to 176. Go right. Enhance 57 19. Track 45 left.
+.SH SYNOPSIS
+.B esper
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-titles]
+[\-fps]
+.SH DESCRIPTION
+"Enhance 224 to 176. Pull out track right. Center in pull back. Pull back.
+Wait a minute. Go right. Stop. Enhance 57 19. Track 45 left. Gimme a
+hardcopy right there."
+
+The Esper Machine was a voice-controlled forensic device used by LAPD
+in 2019, as documented in the 1982 film, \fIBlade Runner.\fP It was
+capable of enhancing photographs to an extreme degree, including
+reconstructing different viewpoints within the space from the
+reflections on various objects in the photograph.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-titles | \-no-titles
+Show file names. Boolean.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the top of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2017 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/extrusion-helix2.c b/hacks/glx/extrusion-helix2.c
new file mode 100644
index 0000000..7a7152f
--- /dev/null
+++ b/hacks/glx/extrusion-helix2.c
@@ -0,0 +1,47 @@
+
+/*
+ * helicoid (gernalized torus) demo
+ *
+ * FUNCTION:
+ * This code provides a very simple example of the helicoid primitive.
+ * Most of this code is required to set up OpenGL and GLUT, and very
+ * very little to set up the helix drawer. Don't blink!
+ *
+ * =======> MOUSE HOOKED UP TO RADIUS, DELTA-RADIUS < ========
+ *
+ * HISTORY:
+ * Written by Linas Vepstas, March 1995
+ */
+
+#include "extrusion.h"
+
+/* controls shape of object */
+extern float lastx;
+extern float lasty;
+
+void InitStuff_helix2 (void)
+{
+}
+
+/* draw the helix shape */
+void DrawStuff_helix2 (void)
+{
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glColor3f (0.6, 0.3, 0.8);
+
+ /* set up some matrices so that the object spins with the mouse */
+ glPushMatrix ();
+/* glTranslatef (0.0, 0.0, -80.0); */
+/* glRotatef (220.0, 0.0, 1.0, 0.0); */
+/* glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+ /* Phew. FINALLY, Draw the helix -- */
+ gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
+ gleHelicoid (0.01*lastx,
+ 6.0, (0.01*lasty - 2.0),
+ -3.0, 4.0, 0x0, 0x0, 0.0, 1080.0);
+
+ glPopMatrix ();
+
+}
+/* ------------------------- end of file ----------------- */
diff --git a/hacks/glx/extrusion-helix3.c b/hacks/glx/extrusion-helix3.c
new file mode 100644
index 0000000..7650f46
--- /dev/null
+++ b/hacks/glx/extrusion-helix3.c
@@ -0,0 +1,46 @@
+
+/*
+ * helicoid (gernalized torus) demo
+ *
+ * FUNCTION:
+ * This code provides a very simple example of the helicoid primitive.
+ * Most of this code is required to set up OpenGL and GLUT, and very
+ * very little to set up the helix drawer. Don't blink!
+ *
+ * =======> MOUSE HOOKED UP TO SWEEP, HEIGHT < ========
+ *
+ * HISTORY:
+ * Written by Linas Vepstas, March 1995
+ */
+
+#include "extrusion.h"
+
+/* controls shape of object */
+extern float lastx;
+extern float lasty;
+
+void InitStuff_helix3 (void)
+{
+}
+
+/* draw the helix shape */
+void DrawStuff_helix3 (void)
+{
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glColor3f (0.8, 0.3, 0.6);
+
+ /* set up some matrices so that the object spins with the mouse */
+ glPushMatrix ();
+/* glTranslatef (0.0, 0.0, -80.0); */
+/* glRotatef (220.0, 0.0, 1.0, 0.0); */
+/* glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+ /* Phew. FINALLY, Draw the helix -- */
+ gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
+ gleHelicoid (1.0, 6.0, -1.0,
+ 0.0, (0.02*lasty-2.0), 0x0, 0x0, 0.0, 6.0*lastx);
+
+ glPopMatrix ();
+
+}
+/* ------------------------- end of file ----------------- */
diff --git a/hacks/glx/extrusion-helix4.c b/hacks/glx/extrusion-helix4.c
new file mode 100644
index 0000000..fbf1602
--- /dev/null
+++ b/hacks/glx/extrusion-helix4.c
@@ -0,0 +1,63 @@
+
+/*
+ * helicoid (gernalized torus) demo
+ *
+ * FUNCTION:
+ * This code provides a very simple example of the helicoid primitive.
+ * Most of this code is required to set up OpenGL and GLUT, and very
+ * very little to set up the helix drawer. Don't blink!
+ *
+ * =======> MOUSE HOOKED UP TO AFFINE < ========
+ *
+ * HISTORY:
+ * Written by Linas Vepstas, March 1995
+ */
+
+#include "extrusion.h"
+
+/* controls shape of object */
+extern float lastx;
+extern float lasty;
+
+void InitStuff_helix4 (void)
+{
+}
+
+/* draw the helix shape */
+void DrawStuff_helix4 (void)
+{
+ double affine[2][3];
+ double delta_affine[2][3];
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glColor3f (0.7, 0.5, 0.3);
+
+ /* set up some matrices so that the object spins with the mouse */
+ glPushMatrix ();
+/* glTranslatef (0.0, 0.0, -80.0); */
+/* glRotatef (220.0, 0.0, 1.0, 0.0); */
+/* glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+ /* Phew. FINALLY, Draw the helix -- */
+ affine [0][0] = 1.0/ (0.01*lastx);
+ affine [1][0] = 0.0;
+ affine [0][1] = 0.0;
+ affine [1][1] = 0.01*lastx;
+ affine [0][2] = 0.0;
+ affine [1][2] = 0.0;
+
+ delta_affine [0][0] = 0.0;
+ delta_affine [1][0] = 0.03*lasty;
+ delta_affine [0][1] = -0.03*lasty;
+ delta_affine [1][1] = 0.0;
+ delta_affine [0][2] = 0.0;
+ delta_affine [1][2] = 0.0;
+
+ gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
+ gleHelicoid (1.0, 7.0, -1.0,
+ -4.0, 6.0, affine, delta_affine, 0.0, 980.0);
+
+ glPopMatrix ();
+
+}
+/* ------------------------- end of file ----------------- */
diff --git a/hacks/glx/extrusion-joinoffset.c b/hacks/glx/extrusion-joinoffset.c
new file mode 100644
index 0000000..89a60e2
--- /dev/null
+++ b/hacks/glx/extrusion-joinoffset.c
@@ -0,0 +1,148 @@
+
+/* cylinder drawing demo */
+/* this demo demonstrates the various join styles */
+
+#include "extrusion.h"
+
+/* ------------------------------------------------------- */
+
+/* the arrays in which we will store the polyline */
+#define NPTS 100
+static double points [NPTS][3];
+static float colors [NPTS][3];
+static int idx = 0;
+
+/* some utilities for filling that array */
+#define PSCALE 0.5
+#define PNT(x,y,z) { \
+ points[idx][0] = PSCALE * x; \
+ points[idx][1] = PSCALE * y; \
+ points[idx][2] = PSCALE * z; \
+ idx ++; \
+}
+
+#define COL(r,g,b) { \
+ colors[idx][0] = r; \
+ colors[idx][1] = g; \
+ colors[idx][2] = b; \
+}
+
+/* the arrays in which we will store the contour */
+#define NCONTOUR 100
+static double contour_points [NCONTOUR][2];
+static int cidx = 0;
+
+/* some utilities for filling that array */
+#define C_PNT(x,y) { \
+ contour_points[cidx][0] = x; \
+ contour_points[cidx][1] = y; \
+ cidx ++; \
+}
+
+
+/* ------------------------------------------------------- */
+/*
+ * Initialize a bent shape with three segments.
+ * The data format is a polyline.
+ *
+ * NOTE that neither the first, nor the last segment are drawn.
+ * The first & last segment serve only to determine that angle
+ * at which the endcaps are drawn.
+ */
+
+void InitStuff_joinoffset (void)
+{
+ COL (0.0, 0.0, 0.0);
+ PNT (16.0, 0.0, 0.0);
+
+ COL (0.2, 0.8, 0.5);
+ PNT (0.0, -16.0, 0.0);
+
+ COL (0.0, 0.8, 0.3);
+ PNT (-16.0, 0.0, 0.0);
+
+ COL (0.8, 0.3, 0.0);
+ PNT (0.0, 16.0, 0.0);
+
+ COL (0.2, 0.3, 0.9);
+ PNT (16.0, 0.0, 0.0);
+
+ COL (0.2, 0.8, 0.5);
+ PNT (0.0, -16.0, 0.0);
+
+ COL (0.0, 0.0, 0.0);
+ PNT (-16.0, 0.0, 0.0);
+
+ C_PNT (-0.8, -0.5);
+ C_PNT (-1.8, 0.0);
+ C_PNT (-1.2, 0.3);
+ C_PNT (-0.7, 0.8);
+ C_PNT (-0.2, 1.3);
+ C_PNT (0.0, 1.6);
+ C_PNT (0.2, 1.3);
+ C_PNT (0.7, 0.8);
+ C_PNT (1.2, 0.3);
+ C_PNT (1.8, 0.0);
+ C_PNT (0.8, -0.5);
+
+ gleSetJoinStyle (TUBE_JN_ANGLE | TUBE_CONTOUR_CLOSED | TUBE_JN_CAP);
+}
+
+static double up_vector[3] = {1.0, 0.0, 0.0};
+
+/* controls shape of object */
+extern float lastx;
+extern float lasty;
+
+/* ------------------------------------------------------- */
+/* draw the extrusion */
+
+void DrawStuff_joinoffset (void)
+{
+ double moved_contour [NCONTOUR][2];
+ int style, save_style;
+ int i;
+
+ for (i=0; i<cidx; i++) {
+ moved_contour[i][0] = contour_points [i][0];
+ moved_contour[i][1] = contour_points [i][1] + 0.05 * (lasty-200.0);
+ }
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* set up some matrices so that the object spins with the mouse */
+ glPushMatrix ();
+ glScalef (0.5, 0.5, 0.5);
+ glTranslatef (0, 4, 0);
+ /* glTranslatef (0.0, 4.0, -80.0); */
+ /* glRotatef (0.5*lastx, 0.0, 1.0, 0.0); */
+
+ gleExtrusion (cidx, moved_contour, contour_points, up_vector,
+ idx, points, colors);
+
+ glPopMatrix ();
+
+
+ /* draw a seond copy, this time with the raw style, to compare
+ * things against */
+ glPushMatrix ();
+ glScalef (0.5, 0.5, 0.5);
+ glTranslatef (0, -4, 0);
+ /* glTranslatef (0.0, -4.0, -80.0); */
+ /* glRotatef (0.5*lastx, 0.0, 1.0, 0.0); */
+
+ save_style = gleGetJoinStyle ();
+ style = save_style;
+ style &= ~TUBE_JN_MASK;
+ style |= TUBE_JN_RAW;
+ gleSetJoinStyle (style);
+
+ gleExtrusion (cidx, moved_contour, contour_points, up_vector,
+ idx, points, colors);
+
+ gleSetJoinStyle (save_style);
+ glPopMatrix ();
+
+}
+
+/* ------------------ end of file ----------------------------- */
diff --git a/hacks/glx/extrusion-screw.c b/hacks/glx/extrusion-screw.c
new file mode 100644
index 0000000..6724476
--- /dev/null
+++ b/hacks/glx/extrusion-screw.c
@@ -0,0 +1,114 @@
+/*
+ * screw.c
+ *
+ * FUNCTION:
+ * Draws a screw shape.
+ *
+ * HISTORY:
+ * -- created by Linas Vepstas October 1991
+ * -- heavily modified to draw more texas shapes, Feb 1993, Linas
+ * -- converted to use GLUT -- December 1995, Linas
+ *
+ */
+
+#include "extrusion.h"
+#include <stdlib.h>
+#include <math.h>
+
+/* =========================================================== */
+
+#define SCALE 1.3
+#define CONTOUR(x,y) { \
+ double ax, ay, alen; \
+ contour[i][0] = SCALE * (x); \
+ contour[i][1] = SCALE * (y); \
+ if (i!=0) { \
+ ax = contour[i][0] - contour[i-1][0]; \
+ ay = contour[i][1] - contour[i-1][1]; \
+ alen = 1.0 / sqrt (ax*ax + ay*ay); \
+ ax *= alen; ay *= alen; \
+ norms [i-1][0] = ay; \
+ norms [i-1][1] = -ax; \
+ } \
+ i++; \
+}
+
+#define NUM_PTS (25)
+
+static double contour [NUM_PTS][2];
+static double norms [NUM_PTS][2];
+
+static void init_contour (void)
+{
+ int i;
+
+ /* outline of extrusion */
+ i=0;
+ CONTOUR (1.0, 1.0);
+ CONTOUR (1.0, 2.9);
+ CONTOUR (0.9, 3.0);
+ CONTOUR (-0.9, 3.0);
+ CONTOUR (-1.0, 2.9);
+
+ CONTOUR (-1.0, 1.0);
+ CONTOUR (-2.9, 1.0);
+ CONTOUR (-3.0, 0.9);
+ CONTOUR (-3.0, -0.9);
+ CONTOUR (-2.9, -1.0);
+
+ CONTOUR (-1.0, -1.0);
+ CONTOUR (-1.0, -2.9);
+ CONTOUR (-0.9, -3.0);
+ CONTOUR (0.9, -3.0);
+ CONTOUR (1.0, -2.9);
+
+ CONTOUR (1.0, -1.0);
+ CONTOUR (2.9, -1.0);
+ CONTOUR (3.0, -0.9);
+ CONTOUR (3.0, 0.9);
+ CONTOUR (2.9, 1.0);
+
+ CONTOUR (1.0, 1.0); /* repeat so that last normal is computed */
+}
+
+/* =========================================================== */
+
+/* controls shape of object */
+extern float lastx;
+extern float lasty;
+
+void InitStuff_screw (void)
+{
+ int style;
+
+ /* configure the pipeline */
+ style = TUBE_JN_CAP;
+ style |= TUBE_CONTOUR_CLOSED;
+ style |= TUBE_NORM_FACET;
+ style |= TUBE_JN_ANGLE;
+ gleSetJoinStyle (style);
+
+ init_contour();
+}
+
+/* =========================================================== */
+
+void DrawStuff_screw (void) {
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glColor3f (0.5, 0.6, 0.6);
+
+ /* set up some matrices so that the object spins with the mouse */
+ glPushMatrix ();
+ /* glTranslatef (0.0, 0.0, -80.0); */
+ /* glRotatef (130.0, 0.0, 1.0, 0.0); */
+ /* glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+ /* draw the brand and the handle */
+ gleScrew (20, contour, norms,
+ NULL, -6.0, 9.0, lasty);
+
+ glPopMatrix ();
+}
+
+/* ===================== END OF FILE ================== */
diff --git a/hacks/glx/extrusion-taper.c b/hacks/glx/extrusion-taper.c
new file mode 100644
index 0000000..d2d05a1
--- /dev/null
+++ b/hacks/glx/extrusion-taper.c
@@ -0,0 +1,218 @@
+/*
+ * taper.c
+ *
+ * FUNCTION:
+ * Draws a tapered screw shape.
+ *
+ * HISTORY:
+ * -- created by Linas Vepstas October 1991
+ * -- heavily modified to draw more texas shapes, Feb 1993, Linas
+ * -- converted to use GLUT -- December 1995, Linas
+ *
+ */
+
+#include "extrusion.h"
+
+#include <math.h>
+#include <stdlib.h>
+
+#ifndef NULL
+#define NULL ((void *) 0x0)
+#endif /* NULL */
+
+/* Some <math.h> files do not define M_PI... */
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+/* =========================================================== */
+
+#define SCALE 3.33333
+#define CONTOUR(x,y) { \
+ double ax, ay, alen; \
+ contour[i][0] = SCALE * (x); \
+ contour[i][1] = SCALE * (y); \
+ if (i!=0) { \
+ ax = contour[i][0] - contour[i-1][0]; \
+ ay = contour[i][1] - contour[i-1][1]; \
+ alen = 1.0 / sqrt (ax*ax + ay*ay); \
+ ax *= alen; ay *= alen; \
+ norms [i-1][0] = ay; \
+ norms [i-1][1] = -ax; \
+ } \
+ i++; \
+}
+
+#define NUM_PTS (25)
+
+static double contour [NUM_PTS][2];
+static double norms [NUM_PTS][2];
+
+static void init_contour (void)
+{
+ int i;
+
+ /* outline of extrusion */
+ i=0;
+ CONTOUR (1.0, 1.0);
+ CONTOUR (1.0, 2.9);
+ CONTOUR (0.9, 3.0);
+ CONTOUR (-0.9, 3.0);
+ CONTOUR (-1.0, 2.9);
+
+ CONTOUR (-1.0, 1.0);
+ CONTOUR (-2.9, 1.0);
+ CONTOUR (-3.0, 0.9);
+ CONTOUR (-3.0, -0.9);
+ CONTOUR (-2.9, -1.0);
+
+ CONTOUR (-1.0, -1.0);
+ CONTOUR (-1.0, -2.9);
+ CONTOUR (-0.9, -3.0);
+ CONTOUR (0.9, -3.0);
+ CONTOUR (1.0, -2.9);
+
+ CONTOUR (1.0, -1.0);
+ CONTOUR (2.9, -1.0);
+ CONTOUR (3.0, -0.9);
+ CONTOUR (3.0, 0.9);
+ CONTOUR (2.9, 1.0);
+
+ CONTOUR (1.0, 1.0); /* repeat so that last normal is computed */
+}
+
+/* =========================================================== */
+
+#define PSIZE 40
+static double path[PSIZE][3];
+static double twist[PSIZE];
+static double taper[PSIZE];
+
+static void init_taper (void) {
+ int j;
+ double z, deltaz;
+ double ang, dang;
+
+ z = -10.0;
+ deltaz = 0.5;
+
+ ang = 0.0;
+ dang = 20.0;
+ for (j=0; j<40; j++) {
+ path[j][0] = 0x0;
+ path[j][1] = 0x0;
+ path[j][2] = z;
+
+ twist[j] = ang;
+ ang += dang;
+
+ taper[j] = 0.1 * sqrt (9.51*9.51 - z*z);
+
+ z += deltaz;
+ }
+
+ taper[0] = taper[1];
+ taper[39] = taper[38];
+
+}
+
+/* =========================================================== */
+
+/* controls shape of object */
+extern float lastx;
+extern float lasty;
+
+void InitStuff_taper (void)
+{
+ int style;
+
+ /* configure the pipeline */
+ style = TUBE_JN_CAP;
+ style |= TUBE_CONTOUR_CLOSED;
+ style |= TUBE_NORM_FACET;
+ style |= TUBE_JN_ANGLE;
+ gleSetJoinStyle (style);
+
+ init_contour();
+ init_taper();
+}
+
+/* =========================================================== */
+
+static void gleTaper (int ncp,
+ gleDouble contour[][2],
+ gleDouble cont_normal[][2],
+ gleDouble up[3],
+ int npoints,
+ gleDouble point_array[][3],
+ float color_array[][3],
+ gleDouble taper[],
+ gleDouble twist[])
+{
+ int j;
+ gleAffine *xforms;
+ double co, si, angle;
+
+ /* malloc the extrusion array and the twist array */
+ xforms = (gleAffine *) malloc (npoints * sizeof(gleAffine));
+
+ for (j=0; j<npoints; j++) {
+ angle = (M_PI/180.0) * twist[j];
+ si = sin (angle);
+ co = cos (angle);
+ xforms[j][0][0] = taper[j] * co;
+ xforms[j][0][1] = - taper[j] * si;
+ xforms[j][0][2] = 0.0;
+ xforms[j][1][0] = taper[j] * si;
+ xforms[j][1][1] = taper[j] * co;
+ xforms[j][1][2] = 0.0;
+ }
+
+ gleSuperExtrusion (ncp, /* number of contour points */
+ contour, /* 2D contour */
+ cont_normal, /* 2D contour normals */
+ up, /* up vector for contour */
+ npoints, /* numpoints in poly-line */
+ point_array, /* polyline */
+ color_array, /* color of polyline */
+ xforms);
+
+ free (xforms);
+}
+
+/* =========================================================== */
+
+void DrawStuff_taper (void) {
+ int j;
+ double ang, dang;
+ double z, deltaz;
+ double ponent;
+ z=-1.0;
+ deltaz = 1.999/38;
+ ang = 0.0;
+ dang = lasty/40.0;
+ ponent = fabs (lastx/540.0);
+ for (j=1; j<39; j++) {
+ twist[j] = ang;
+ ang += dang;
+
+ taper[j] = pow ((1.0 - pow (fabs(z), 1.0/ponent)), ponent);
+ z += deltaz;
+ }
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glColor3f (0.5, 0.6, 0.6);
+
+ /* set up some matrices so that the object spins with the mouse */
+ glPushMatrix ();
+ /* glTranslatef (0.0, 0.0, -80.0); */
+ /* glRotatef (130.0, 0.0, 1.0, 0.0); */
+ /* glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+ /* draw the brand and the handle */
+ gleTaper (20, contour, norms, NULL, 40, path, NULL, taper, twist);
+
+ glPopMatrix ();
+}
+
+/* ===================== END OF FILE ================== */
diff --git a/hacks/glx/extrusion-twistoid.c b/hacks/glx/extrusion-twistoid.c
new file mode 100644
index 0000000..82034af
--- /dev/null
+++ b/hacks/glx/extrusion-twistoid.c
@@ -0,0 +1,215 @@
+/*
+ * twistoid.c
+ *
+ * FUNCTION:
+ * Show extrusion of open contours. Also, show how torsion is applied.
+ *
+ * HISTORY:
+ * -- linas Vepstas October 1991
+ * -- heavily modified to draw corrugated surface, Feb 1993, Linas
+ * -- modified to demo twistoid March 1993
+ * -- port to glut Linas Vepstas March 1995
+ */
+
+#include "extrusion.h"
+
+#include <math.h>
+#include <stdlib.h>
+
+/* Some <math.h> files do not define M_PI... */
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+/* controls shape of object */
+extern float lastx;
+extern float lasty;
+
+#define OPENGL_10
+/* =========================================================== */
+
+#define NUM_TOID1_PTS 5
+static double toid1_points[NUM_TOID1_PTS][3];
+static float toid1_colors [NUM_TOID1_PTS][3];
+static double toid1_twists [NUM_TOID1_PTS];
+
+#define TSCALE (6.0)
+
+#define TPTS(x,y) { \
+ toid1_points[i][0] = TSCALE * (x); \
+ toid1_points[i][1] = TSCALE * (y); \
+ toid1_points[i][2] = TSCALE * (0.0); \
+ i++; \
+}
+
+#define TCOLS(r,g,b) { \
+ toid1_colors[i][0] = (r); \
+ toid1_colors[i][1] = (g); \
+ toid1_colors[i][2] = (b); \
+ i++; \
+}
+
+#define TXZERO() { \
+ toid1_twists[i] = 0.0; \
+ i++; \
+}
+
+static void init_toid1_line (void)
+{
+ int i;
+
+ i=0;
+ TPTS (-1.1, 0.0);
+ TPTS (-1.0, 0.0);
+ TPTS (0.0, 0.0);
+ TPTS (1.0, 0.0);
+ TPTS (1.1, 0.0);
+
+ i=0;
+ TCOLS (0.8, 0.8, 0.5);
+ TCOLS (0.8, 0.4, 0.5);
+ TCOLS (0.8, 0.8, 0.3);
+ TCOLS (0.4, 0.4, 0.5);
+ TCOLS (0.8, 0.8, 0.5);
+
+ i=0;
+ TXZERO ();
+ TXZERO ();
+ TXZERO ();
+ TXZERO ();
+ TXZERO ();
+}
+
+/* =========================================================== */
+
+#define SCALE 0.6
+#define TWIST(x,y) { \
+ double ax, ay, alen; \
+ twistation[i][0] = SCALE * (x); \
+ twistation[i][1] = SCALE * (y); \
+ if (i!=0) { \
+ ax = twistation[i][0] - twistation[i-1][0]; \
+ ay = twistation[i][1] - twistation[i-1][1]; \
+ alen = 1.0 / sqrt (ax*ax + ay*ay); \
+ ax *= alen; ay *= alen; \
+ twist_normal [i-1][0] = - ay; \
+ twist_normal [i-1][1] = ax; \
+ } \
+ i++; \
+}
+
+#define NUM_TWIS_PTS (20)
+
+static double twistation [NUM_TWIS_PTS][2];
+static double twist_normal [NUM_TWIS_PTS][2];
+
+static void init_tripples (void)
+{
+ int i;
+ double angle;
+ double co, si;
+
+ /* outline of extrusion */
+ i=0;
+ /* first, draw a semi-curcular "hump" */
+ while (i< 11) {
+ angle = M_PI * ((double) i) / 10.0;
+ co = cos (angle);
+ si = sin (angle);
+ TWIST ((-7.0 -3.0*co), 1.8*si);
+ }
+
+ /* now, a zig-zag corrugation */
+ while (1) {
+ if (i >= NUM_TWIS_PTS) break;
+ TWIST ((-10.0 +(double) i), 0.0);
+ if (i >= NUM_TWIS_PTS) break;
+ TWIST ((-9.5 +(double) i), 1.0);
+ }
+}
+
+
+/* =========================================================== */
+
+#define V3F(x,y,z) { \
+ float vvv[3]; \
+ vvv[0] = x; vvv[1] = y; vvv[2] = z; v3f (vvv); \
+}
+
+#define N3F(x,y,z) { \
+ float nnn[3]; \
+ nnn[0] = x; nnn[1] = y; nnn[2] = z; n3f (nnn); \
+}
+
+/* =========================================================== */
+
+void DrawStuff_twistoid (void) {
+ int i;
+
+ toid1_twists[2] = (lastx-121.0) / 8.0;
+
+ i=3;
+/*
+ TPTS (1.0, lasty /400.0);
+ TPTS (1.1, 1.1 * lasty / 400.0);
+*/
+ TPTS (1.0, -(lasty-121.0) /200.0);
+ TPTS (1.1, -1.1 * (lasty-121.0) / 200.0);
+
+#ifdef IBM_GL_32
+ rotate (230, 'x');
+ rotate (230, 'y');
+ scale (1.8, 1.8, 1.8);
+
+ if (mono_color) {
+ RGBcolor (178, 178, 204);
+ twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal,
+ NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists);
+ } else {
+ twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal,
+ NULL, NUM_TOID1_PTS, toid1_points, toid1_colors, toid1_twists);
+ }
+#endif
+
+#ifdef OPENGL_10
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glFrontFace(GL_CW); /* jwz */
+
+ /* set up some matrices so that the object spins with the mouse */
+ glPushMatrix ();
+/* glTranslatef (0.0, 0.0, -80.0); */
+/* glRotated (43.0, 1.0, 0.0, 0.0); */
+/* glRotated (43.0, 0.0, 1.0, 0.0); */
+ glScaled (1.8, 1.8, 1.8);
+ gleTwistExtrusion (NUM_TWIS_PTS, twistation, twist_normal,
+ NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists);
+ glPopMatrix ();
+#endif
+
+}
+
+/* =========================================================== */
+
+void InitStuff_twistoid (void)
+{
+ int js;
+
+ init_toid1_line ();
+ init_tripples ();
+
+#ifdef IBM_GL_32
+ js = getjoinstyle ();
+ js &= ~TUBE_CONTOUR_CLOSED;
+ setjoinstyle (js);
+#endif
+
+#ifdef OPENGL_10
+ js = gleGetJoinStyle ();
+ js &= ~TUBE_CONTOUR_CLOSED;
+ gleSetJoinStyle (js);
+#endif
+
+}
+
+/* ------------------ end of file -------------------- */
diff --git a/hacks/glx/extrusion.c b/hacks/glx/extrusion.c
new file mode 100644
index 0000000..3dee71c
--- /dev/null
+++ b/hacks/glx/extrusion.c
@@ -0,0 +1,556 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* extrusion --- extrusion module for xscreensaver */
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+
+ * Revision History:
+ * Tue Oct 19 22:24:47 PDT 1999 Initial creation by David Konerding
+ * <dek@cgl.ucsf.edu>
+ *
+ * Notes:
+ * This screensaver requires the GLE ("OpenGL Tubing and Extrusion Library")
+ * which can be obtained from http://www.linas.org/gle/index.html
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n"
+
+# define free_extrusion 0
+# define release_extrusion 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL /* whole file */
+
+#ifdef HAVE_XMU
+# ifndef VMS
+# include <X11/Xmu/Drawing.h>
+#else /* VMS */
+# include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "ximage-loader.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "extrusion.h"
+
+#define checkImageWidth 64
+#define checkImageHeight 64
+
+
+#define WIDTH 640
+#define HEIGHT 480
+
+#define DEF_LIGHT "True"
+#define DEF_TEXTURE "False"
+#define DEF_TEX_QUAL "False"
+#define DEF_MIPMAP "False"
+#define DEF_NAME "RANDOM"
+#define DEF_IMAGE "BUILTIN"
+
+static int do_light;
+static int do_texture;
+static int do_tex_qual;
+static int do_mipmap;
+static char *which_name;
+static char *which_image;
+
+static XrmOptionDescRec opts[] = {
+ {"-light", ".extrusion.light", XrmoptionNoArg, "true" },
+ {"+light", ".extrusion.light", XrmoptionNoArg, "false" },
+ {"-texture", ".extrusion.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".extrusion.texture", XrmoptionNoArg, "false" },
+ {"-texture", ".extrusion.texture", XrmoptionNoArg, "true" },
+ {"+texture_quality", ".extrusion.texture", XrmoptionNoArg, "false" },
+ {"-texture_quality", ".extrusion.texture", XrmoptionNoArg, "true" },
+ {"+mipmap", ".extrusion.mipmap", XrmoptionNoArg, "false" },
+ {"-mipmap", ".extrusion.mipmap", XrmoptionNoArg, "true" },
+ {"-name", ".extrusion.name", XrmoptionSepArg, 0 },
+ {"-image", ".extrusion.image", XrmoptionSepArg, 0 },
+};
+
+
+static argtype vars[] = {
+ {&do_light, "light", "Light", DEF_LIGHT, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_tex_qual, "texture_quality", "Texture_Quality", DEF_TEX_QUAL, t_Bool},
+ {&do_mipmap, "mipmap", "Mipmap", DEF_MIPMAP, t_Bool},
+ {&which_name, "name", "Name", DEF_NAME, t_String},
+ {&which_image, "image", "Image", DEF_IMAGE, t_String},
+};
+
+
+static OptionStruct desc[] =
+{
+ {"-name num", "example 'name' to draw (helix2, helix3, helix4, joinoffset, screw, taper, twistoid)"},
+ {"-/+ light", "whether to do enable lighting (slower)"},
+ {"-/+ texture", "whether to apply a texture (slower)"},
+ {"-image <filename>", "texture image to load"},
+ {"-/+ texture_quality", "whether to use texture smoothing (slower)"},
+ {"-/+ mipmap", "whether to use texture mipmap (slower)"},
+};
+
+ENTRYPOINT ModeSpecOpt extrusion_opts = {countof(opts), opts, countof(vars), vars, desc};
+
+#ifdef USE_MODULES
+ModStruct extrusion_description =
+{"extrusion", "init_extrusion", "draw_extrusion", NULL,
+ "draw_extrusion", "init_extrusion", NULL, &extrusion_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "OpenGL extrusion", 0, NULL};
+#endif
+
+
+/* structure for holding the extrusion data */
+typedef struct {
+ int screen_width, screen_height;
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool button2_down_p;
+ int mouse_start_x, mouse_start_y;
+ int mouse_x, mouse_y;
+ int mouse_dx, mouse_dy;
+ Window window;
+ XColor fg, bg;
+ int extrusion_number;
+} extrusionstruct;
+
+static extrusionstruct *Extrusion = NULL;
+
+
+
+/* set up a light */
+static const GLfloat lightOnePosition[] = {40.0, 40, 100.0, 0.0};
+static const GLfloat lightOneColor[] = {0.99, 0.99, 0.00, 1.0};
+
+static const GLfloat lightTwoPosition[] = {-40.0, 40, 100.0, 0.0};
+static const GLfloat lightTwoColor[] = {0.00, 0.99, 0.99, 1.0};
+
+float rot_x=0, rot_y=0, rot_z=0;
+float lastx=0, lasty=0;
+
+static float max_lastx=400, max_lasty=400;
+static float min_lastx=-400, min_lasty=-400;
+
+struct functions {
+ void (*InitStuff)(void);
+ void (*DrawStuff)(void);
+ char *name;
+};
+
+/* currently joinoffset and twistoid look funny-
+ like we're looking at them from the back or something
+*/
+
+static const struct functions funcs_ptr[] = {
+ {InitStuff_helix2, DrawStuff_helix2, "helix2"},
+ {InitStuff_helix3, DrawStuff_helix3, "helix3"},
+ {InitStuff_helix4, DrawStuff_helix4, "helix4"},
+ {InitStuff_joinoffset, DrawStuff_joinoffset, "joinoffset"},
+ {InitStuff_screw, DrawStuff_screw, "screw"},
+ {InitStuff_taper, DrawStuff_taper, "taper"},
+ {InitStuff_twistoid, DrawStuff_twistoid, "twistoid"},
+};
+
+static int num_extrusions = countof(funcs_ptr);
+
+
+/* BEGINNING OF FUNCTIONS */
+
+
+static GLubyte *
+Generate_Image(int *width, int *height, int *format)
+{
+ GLubyte *result;
+ int i, j, c;
+ int counter=0;
+
+ *width = checkImageWidth;
+ *height = checkImageHeight;
+ result = (GLubyte *)malloc(4 * (*width) * (*height));
+
+ counter = 0;
+ for (i = 0; i < checkImageWidth; i++) {
+ for (j = 0; j < checkImageHeight; j++) {
+ c = (((((i&0x8)==0))^(((j&0x8))==0)))*255;
+ result[counter++] = (GLubyte) c;
+ result[counter++] = (GLubyte) c;
+ result[counter++] = (GLubyte) c;
+ result[counter++] = (GLubyte) 255;
+ }
+ }
+
+ *format = GL_RGBA;
+ return result;
+}
+
+
+/* Create a texture in OpenGL. First an image is loaded
+ and stored in a raster buffer, then it's */
+static void Create_Texture(ModeInfo *mi, const char *filename)
+{
+ int height, width;
+ GLubyte *image;
+ int format;
+
+ if ( !strncmp(filename, "BUILTIN", 7))
+ {
+ BUILTIN:
+ image = Generate_Image(&width, &height, &format);
+ }
+ else
+ {
+ XImage *ximage = file_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ filename);
+ if (!ximage)
+ goto BUILTIN;
+ image = (GLubyte *) ximage->data;
+ width = ximage->width;
+ height = ximage->height;
+ format = GL_RGBA;
+ }
+
+ /* GL_MODULATE or GL_DECAL depending on what you want */
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ /* perhaps we can edge a bit more speed at the expense of quality */
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
+
+ if (do_tex_qual) {
+ /* with texture_quality, the min and mag filters look *much* nice but are *much* slower */
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ }
+ else {
+ /* default is to do it quick and dirty */
+ /* if you have mipmaps turned on, but not texture quality, nothing will happen! */
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ }
+
+ /* mipmaps make the image look much nicer */
+ if (do_mipmap)
+ {
+ int status;
+ clear_gl_error();
+ status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, format,
+ GL_UNSIGNED_BYTE, image);
+ if (status)
+ {
+ const char *s = (char *) gluErrorString (status);
+ fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+ progname, width, height,
+ (s ? s : "(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+ }
+ else
+ {
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0,
+ format, GL_UNSIGNED_BYTE, image);
+ check_gl_error("texture");
+ }
+}
+
+
+static void
+init_rotation (ModeInfo *mi)
+{
+ extrusionstruct *gp = &Extrusion[MI_SCREEN(mi)];
+ double spin_speed = 0.5;
+ gp->rot = make_rotator (spin_speed, spin_speed, spin_speed,
+ 0.2,
+ 0.005,
+ True);
+ gp->trackball = gltrackball_init (True);
+
+ lastx = (random() % (int) (max_lastx - min_lastx)) + min_lastx;
+ lasty = (random() % (int) (max_lasty - min_lasty)) + min_lasty;
+}
+
+
+/* draw the extrusion once */
+ENTRYPOINT void
+draw_extrusion(ModeInfo * mi)
+{
+ extrusionstruct *gp = &Extrusion[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ static const GLfloat color[4] = {0.6, 0.6, 0.4, 1.0};
+ /* static const GLfloat spec[4] = {0.6, 0.6, 0.6, 1.0}; */
+ /* static const GLfloat shiny = 40.0; */
+
+ double x, y, z;
+
+ if (!gp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(gp->glx_context));
+
+ glPushMatrix();
+
+ gltrackball_rotate (gp->trackball);
+
+ get_rotation (gp->rot, &x, &y, &z,
+ !(gp->button_down_p || gp->button2_down_p));
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+
+ /* track the mouse only if a button is down. */
+ if (gp->button2_down_p)
+ {
+ gp->mouse_dx += gp->mouse_x - gp->mouse_start_x;
+ gp->mouse_dy += gp->mouse_y - gp->mouse_start_y;
+ gp->mouse_start_x = gp->mouse_x;
+ gp->mouse_start_y = gp->mouse_y;
+ }
+
+ {
+ float scale = (max_lastx - min_lastx);
+ get_position (gp->rot, &x, &y, &z,
+ !(gp->button_down_p || gp->button2_down_p));
+ lastx = x * scale + min_lastx + gp->mouse_dx;
+ lasty = y * scale + min_lasty + gp->mouse_dy;
+ }
+
+ glScalef(0.5, 0.5, 0.5);
+
+ /* glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec); */
+ /* glMateriali (GL_FRONT_AND_BACK, GL_SHININESS, shiny); */
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glFrontFace(GL_CCW);
+
+ funcs_ptr[gp->extrusion_number].DrawStuff();
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glXSwapBuffers(display, window);
+}
+
+
+/* set up lighting conditions */
+static void
+SetupLight(void)
+{
+ glLightfv (GL_LIGHT0, GL_POSITION, lightOnePosition);
+ glLightfv (GL_LIGHT0, GL_DIFFUSE, lightOneColor);
+ glLightfv (GL_LIGHT1, GL_POSITION, lightTwoPosition);
+ glLightfv (GL_LIGHT1, GL_DIFFUSE, lightTwoColor);
+
+ glEnable (GL_LIGHT0);
+ glEnable (GL_LIGHT1);
+ glEnable (GL_LIGHTING);
+
+ glColorMaterial (GL_FRONT, GL_DIFFUSE);
+ glColorMaterial (GL_BACK, GL_DIFFUSE);
+ glEnable (GL_COLOR_MATERIAL);
+}
+
+/* Standard reshape function */
+ENTRYPOINT void
+reshape_extrusion (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+/* decide which extrusion example to run */
+static void
+chooseExtrusionExample (ModeInfo *mi)
+{
+ extrusionstruct *gp = &Extrusion[MI_SCREEN(mi)];
+ int i;
+ /* call the extrusion init routine */
+
+ if (!strncmp(which_name, "RANDOM", strlen(which_name))) {
+ gp->extrusion_number = random() % num_extrusions;
+ }
+ else {
+ gp->extrusion_number=-1;
+ for (i=0; i < num_extrusions; i++) {
+ if (!strncmp(which_name, funcs_ptr[i].name, strlen(which_name))) {
+ gp->extrusion_number = i;
+ }
+ }
+ }
+
+ if (gp->extrusion_number < 0 || gp->extrusion_number >= num_extrusions) {
+ fprintf(stderr, "%s: invalid extrusion example number!\n", progname);
+ fprintf(stderr, "%s: known extrusions:\n", progname);
+ for (i=0; i < num_extrusions; i++)
+ fprintf(stderr,"\t%s\n", funcs_ptr[i].name);
+ exit(1);
+ }
+ init_rotation(mi);
+ funcs_ptr[gp->extrusion_number].InitStuff();
+}
+
+
+/* main OpenGL initialization routine */
+static void
+initializeGL(ModeInfo *mi, GLsizei width, GLsizei height)
+{
+ int style;
+ int mode;
+
+ reshape_extrusion(mi, width, height);
+ glViewport( 0, 0, width, height );
+
+ glEnable(GL_DEPTH_TEST);
+ glDisable (GL_CULL_FACE);
+ glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, True);
+ glShadeModel(GL_SMOOTH);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ MI_IS_WIREFRAME(mi) = 0;
+# endif
+
+ if (do_light)
+ SetupLight();
+ if (MI_IS_WIREFRAME(mi)) {
+ glPolygonMode(GL_FRONT,GL_LINE);
+ glPolygonMode(GL_BACK,GL_LINE);
+ }
+ if (do_texture) {
+ Create_Texture(mi, which_image);
+ glEnable(GL_TEXTURE_2D);
+
+ /* configure the pipeline */
+ style = TUBE_JN_CAP;
+ style |= TUBE_CONTOUR_CLOSED;
+ style |= TUBE_NORM_FACET;
+ style |= TUBE_JN_ANGLE;
+ gleSetJoinStyle (style);
+
+ if (do_texture) {
+ mode = GLE_TEXTURE_ENABLE | GLE_TEXTURE_VERTEX_MODEL_FLAT;
+ glMatrixMode (GL_TEXTURE); glLoadIdentity ();
+ glScalef (0.25, 0.1, 1); glMatrixMode (GL_MODELVIEW);
+ gleTextureMode (mode);
+ }
+ }
+
+}
+
+ENTRYPOINT Bool
+extrusion_handle_event (ModeInfo *mi, XEvent *event)
+{
+ extrusionstruct *gp = &Extrusion[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress &&
+ (event->xbutton.button == Button4 ||
+ event->xbutton.button == Button5 ||
+ event->xbutton.button == Button6 ||
+ event->xbutton.button == Button7))
+ {
+ }
+ else if (event->xany.type == ButtonPress && /* rotate with left button */
+ !event->xbutton.state) /* if no modifier keys */
+ {
+ }
+ else if (event->xany.type == ButtonPress) /* deform with other buttons */
+ { /* or with modifier keys */
+ gp->button2_down_p = True;
+ }
+ else if (event->xany.type == ButtonRelease)
+ {
+ gp->button_down_p = False;
+ gp->button2_down_p = False;
+ }
+ else if (event->xany.type == MotionNotify)
+ {
+ if (gp->button2_down_p)
+ {
+ gp->mouse_x = event->xmotion.x;
+ gp->mouse_y = event->xmotion.y;
+ }
+ }
+
+ if (gltrackball_event_handler (event, gp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &gp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+/* xextrusion initialization routine */
+ENTRYPOINT void
+init_extrusion (ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+ extrusionstruct *gp;
+
+ if (MI_IS_WIREFRAME(mi)) do_light = 0;
+
+ MI_INIT(mi, Extrusion);
+ gp = &Extrusion[screen];
+
+ gp->window = MI_WINDOW(mi);
+ if ((gp->glx_context = init_GL(mi)) != NULL) {
+ reshape_extrusion(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ initializeGL(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ chooseExtrusionExample(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+}
+
+XSCREENSAVER_MODULE ("Extrusion", extrusion)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/extrusion.h b/hacks/glx/extrusion.h
new file mode 100644
index 0000000..226a442
--- /dev/null
+++ b/hacks/glx/extrusion.h
@@ -0,0 +1,55 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* extrusion --- extrusion module for xscreensaver */
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ */
+
+#ifndef __XSCREENSAVER_EXTRUSION_H__
+#define __XSCREENSAVER_EXTRUSION_H__
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef HAVE_COCOA
+# include <GLUT/tube.h> /* gle is included with GLUT on OSX */
+#else /* !HAVE_COCOA */
+# include <GL/gl.h>
+# include <GL/glu.h>
+# ifdef HAVE_GLE3
+# include <GL/gle.h>
+# else
+# include <GL/tube.h>
+# endif
+#endif /* !HAVE_COCOA */
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+extern void InitStuff_helix2(void);
+extern void DrawStuff_helix2(void);
+extern void InitStuff_helix3(void);
+extern void DrawStuff_helix3(void);
+extern void InitStuff_helix4(void);
+extern void DrawStuff_helix4(void);
+extern void InitStuff_joinoffset(void);
+extern void DrawStuff_joinoffset(void);
+extern void InitStuff_screw(void);
+extern void DrawStuff_screw(void);
+extern void InitStuff_taper(void);
+extern void DrawStuff_taper(void);
+extern void InitStuff_twistoid(void);
+extern void DrawStuff_twistoid(void);
+
+#endif /* __XSCREENSAVER_EXTRUSION_H__ */
diff --git a/hacks/glx/extrusion.man b/hacks/glx/extrusion.man
new file mode 100644
index 0000000..e01d573
--- /dev/null
+++ b/hacks/glx/extrusion.man
@@ -0,0 +1,71 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+extrusion - various rotating extruded shapes.
+.SH SYNOPSIS
+.B extrusion
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-name \fIwhich\fP]
+[\-no-light]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Draws various rotating extruded shapes that twist around, lengthen, and
+turn inside out.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-name \fIwhich\fP
+Which object to draw. Choices are: helix2, helix3, helix4, joinoffset,
+screw, taper, and twistoid.
+.TP 8
+.B \-light | \-no-light
+Whether to light the scene, or use flat coloring.
+.TP 8
+.B \-bitmap \fIfile\fP
+The texture map to use.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Linas Vepstas and David Konerding. Permission
+to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation. No representations are made about the suitability of
+this software for any purpose. It is provided "as is" without express
+or implied warranty.
+.SH AUTHOR
+This screensaver was created by David Konerding from the samples that
+come with the GL Extrusion library by Linas Vepstas.
diff --git a/hacks/glx/flipflop.c b/hacks/glx/flipflop.c
new file mode 100644
index 0000000..c26458c
--- /dev/null
+++ b/hacks/glx/flipflop.c
@@ -0,0 +1,859 @@
+/* flipflop, Copyright (c) 2003 Kevin Ogden <kogden1@hotmail.com>
+ * (c) 2006 Sergio Gutirrez "Sergut" <sergut@gmail.com>
+ * (c) 2008 Andrew Galante <a.drew7@gmail.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ *
+ * 2003 Kevin Odgen First version
+ * 2006 Sergio Gutirrez "Sergut" Made several parameters dynamic and selectable
+ * from the command line: size of the board,
+ * rotation speed and number of free squares; also
+ * added the "sticks" mode.
+ * 2008 Andrew Galante Added -textured option: textures the board with
+ * an image which gets scrambled as the tiles move
+ *
+ */
+
+#define DEF_MODE "tiles" /* Default mode (options: "tiles", "sticks") */
+#define DEF_SIZEX "9" /* Default width of the board */
+#define DEF_SIZEY "9" /* Default length of the board */
+
+#define DEF_BOARD_SIZE "0" /* "0" means "no value selected by user". It is changed */
+#define DEF_NUMSQUARES "0" /* in function init_flipflop() to its correct value (that */
+#define DEF_FREESQUARES "0" /* is a function of the size of the board and the mode)*/
+
+#define DEF_SPIN "0.1" /* Default angular velocity: PI/10 rads/s */
+
+#define DEF_TEXTURED "False" /* Default: do not grab an image for texturing */
+
+#define DEF_STICK_THICK 54 /* Thickness for the sticks mode (over 100) */
+#define DEF_STICK_RATIO 80 /* Ratio of sticks/total squares (over 100) */
+#define DEF_TILE_THICK 4 /* Thickness for the tiles mode (over 100) */
+#define DEF_TILE_RATIO 95 /* Ratio of tiles/total squares (over 100) */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n"
+
+# define release_flipflop 0
+# include "xlockmore.h"
+
+#else
+# include "xlock.h"
+#endif /* STANDALONE */
+
+#ifdef USE_GL
+
+#include "gltrackball.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static XrmOptionDescRec opts[] = {
+ {"-sticks", ".mode", XrmoptionNoArg, "sticks"},
+ {"-tiles", ".mode", XrmoptionNoArg, "tiles" },
+ {"-mode", ".mode", XrmoptionSepArg, 0 },
+ {"-size", ".size", XrmoptionSepArg, 0 },
+ {"-size-x", ".sizex", XrmoptionSepArg, 0 },
+ {"-size-y", ".sizey", XrmoptionSepArg, 0 },
+ {"-count", ".numsquares", XrmoptionSepArg, 0 },
+ {"-free", ".freesquares", XrmoptionSepArg, 0 },
+ {"-spin", ".spin", XrmoptionSepArg, 0 },
+ {"-texture", ".textured", XrmoptionNoArg, "True" },
+ {"+texture", ".textured", XrmoptionNoArg, "False" },
+};
+
+static int wire, clearbits;
+static int board_x_size, board_y_size, board_avg_size;
+static int numsquares, freesquares;
+static float half_thick;
+static float spin;
+static char* flipflopmode_str="tiles";
+static int textured;
+
+static argtype vars[] = {
+ { &flipflopmode_str, "mode", "Mode", DEF_MODE, t_String},
+ { &board_avg_size, "size", "Integer", DEF_BOARD_SIZE, t_Int},
+ { &board_x_size, "sizex", "Integer", DEF_SIZEX, t_Int},
+ { &board_y_size, "sizey", "Integer", DEF_SIZEY, t_Int},
+ { &numsquares, "numsquares", "Integer", DEF_NUMSQUARES, t_Int},
+ { &freesquares, "freesquares", "Integer", DEF_NUMSQUARES, t_Int},
+ { &spin, "spin", "Float", DEF_SPIN, t_Float},
+ { &textured, "textured", "Bool", DEF_TEXTURED, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt flipflop_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct flipflop_description =
+ {"flipflop", "init_flipflop", "draw_flipflop", NULL,
+ "draw_flipflop", "init_flipflop", "free_flipflop", &flipflop_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Flipflop", 0, NULL};
+
+#endif /* USE_MODULES */
+
+typedef struct {
+ /* array specifying which squares are where (to avoid collisions) */
+ /* -1 means empty otherwise integer represents square index 0 - n-1 */
+ /* occupied[x*board_y_size+y] is the tile [x][y] (i.e. that starts at column x and row y)*/
+ int *occupied; /* size: size_x * size_y */
+ /* an array of xpositions of the squares */
+ int *xpos; /* size: numsquares */
+ /* array of y positions of the squares */
+ int *ypos; /* size: numsquares */
+ /* integer representing the direction of movement of a square */
+ int *direction; /* 0 not, 1 x+, 2 y+, 3 x-, 4 y-*/ /* size: numsquares */
+ /* angle of moving square (during a flip) */
+ float *angle; /* size: numsquares */
+ /* array of colors for a square (RGB) */
+ /* eg. color[ 3*3 + 0 ] is the red component of square 3 */
+ /* eg. color[ 4*3 + 1 ] is the green component of square 4 */
+ /* eg. color[ 5*3 + 2 ] is the blue component of square 5 */
+ /* ^-- n is the number of square */
+ float *color; /* size: numsquares * 3 */
+ /* array of texcoords for each square */
+ /* tex[ n*4 + 0 ] is x texture coordinate of square n's left side */
+ /* tex[ n*4 + 1 ] is y texture coordinate of square n's top side */
+ /* tex[ n*4 + 2 ] is x texture coordinate of square n's right side */
+ /* tex[ n*4 + 3 ] is y texture coordinate of square n's bottom side */
+ float *tex; /* size: numsquares * 4 */
+} randsheet;
+
+typedef struct {
+ GLXContext *glx_context;
+ Window window;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ randsheet *sheet;
+
+ float theta; /* angle of rotation of the board */
+ float flipspeed; /* amount of flip; 1 is a entire flip */
+ float reldist; /* relative distace of camera from center */
+ float energy; /* likelyhood that a square will attempt to move */
+
+ /* texture rectangle */
+ float tex_x;
+ float tex_y;
+ float tex_width;
+ float tex_height;
+
+ /* id of texture in use */
+ GLuint texid;
+
+ Bool mipmap;
+ Bool got_texture;
+
+ GLfloat anisotropic;
+
+} Flipflopcreen;
+
+static Flipflopcreen *qs = NULL;
+
+#include "grab-ximage.h"
+
+static void randsheet_create( randsheet *rs );
+static void randsheet_initialize( randsheet *rs );
+static void randsheet_free( randsheet *rs );
+static int randsheet_new_move( randsheet* rs );
+static void randsheet_move( randsheet *rs, float rot );
+static int randsheet_draw( randsheet *rs );
+static void setup_lights(void);
+static int drawBoard(Flipflopcreen *);
+static int display(ModeInfo *mi);
+static int draw_sheet(float *tex);
+
+
+/* configure lighting */
+static void
+setup_lights(void)
+{
+ /* GLfloat position0[] = { board_avg_size*0.5, board_avg_size*0.1, board_avg_size*0.5, 1.0 }; */
+
+ /* GLfloat position0[] = { -board_avg_size*0.5, 0.2*board_avg_size, -board_avg_size*0.5, 1.0 }; */
+ GLfloat position0[4];
+ position0[0] = 0;
+ position0[1] = board_avg_size*0.3;
+ position0[2] = 0;
+ position0[3] = 1;
+
+ if (wire) return;
+
+ glEnable(GL_LIGHTING);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glEnable(GL_LIGHT0);
+}
+
+static void get_texture(ModeInfo *);
+
+
+ENTRYPOINT Bool
+flipflop_handle_event (ModeInfo *mi, XEvent *event)
+{
+ Flipflopcreen *c = &qs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, c->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &c->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ if (!textured || c->got_texture)
+ {
+ textured = 1;
+ c->got_texture = False;
+ get_texture (mi);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+/* draw board */
+static int
+drawBoard(Flipflopcreen *c)
+{
+ int i;
+ for( i=0; i < (c->energy) ; i++ ) {
+ randsheet_new_move( c->sheet );
+ }
+ randsheet_move( c->sheet, c->flipspeed * 3.14159 );
+ return randsheet_draw( c->sheet );
+}
+
+
+static int
+display(ModeInfo *mi)
+{
+ Flipflopcreen *c = &qs[MI_SCREEN(mi)];
+ GLfloat amb[] = { 0.8, 0.8, 0.8, 1.0 };
+ int polys = 0;
+
+
+ glClear(clearbits);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.2);
+ glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.15/board_avg_size );
+ glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.15/board_avg_size );
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+
+
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ /** setup perspectif */
+ glTranslatef(0.0, 0.0, -c->reldist*board_avg_size);
+ glRotatef(22.5, 1.0, 0.0, 0.0);
+ gltrackball_rotate (c->trackball);
+ glRotatef(c->theta*100, 0.0, 1.0, 0.0);
+ glTranslatef(-0.5*board_x_size, 0.0, -0.5*board_y_size); /* Center the board */
+
+ /* set texture */
+ if(textured)
+ glBindTexture(GL_TEXTURE_2D, c->texid);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ polys = drawBoard(c);
+
+ if (!c->button_down_p) {
+ c->theta += .01 * spin;
+ }
+
+ return polys;
+}
+
+ENTRYPOINT void
+reshape_flipflop(ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0,y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(45, 1/h, 1.0, 300.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ Flipflopcreen *c = (Flipflopcreen *)closure;
+ int i, j;
+ int index = 0;
+ randsheet *rs = c->sheet;
+
+ c->tex_x = (float)geometry->x / (float)texture_width;
+ c->tex_y = (float)geometry->y / (float)texture_height;
+ c->tex_width = (float)geometry->width / (float)texture_width;
+ c->tex_height = (float)geometry->height / (float)texture_height;
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ (c->mipmap ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
+
+ if(c->anisotropic >= 1)
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, c->anisotropic);
+
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ for(i = 0; i < board_x_size && index < numsquares; i++)
+ for(j = 0; j < board_y_size && index < numsquares; j++)
+ {
+ /* arrange squares to form loaded image */
+ rs->tex[ index*4 + 0 ] = c->tex_x + c->tex_width / board_x_size * (i + 0);
+ rs->tex[ index*4 + 1 ] = c->tex_y + c->tex_height / board_y_size * (j + 1);
+ rs->tex[ index*4 + 2 ] = c->tex_x + c->tex_width / board_x_size * (i + 1);
+ rs->tex[ index*4 + 3 ] = c->tex_y + c->tex_height / board_y_size * (j + 0);
+ rs->color[ index*3 + 0 ] = 1;
+ rs->color[ index*3 + 1 ] = 1;
+ rs->color[ index*3 + 2 ] = 1;
+ index++;
+ }
+
+ c->got_texture = True;
+}
+
+static void
+get_texture(ModeInfo *modeinfo)
+{
+ Flipflopcreen *c = &qs[MI_SCREEN(modeinfo)];
+
+ c->got_texture = False;
+ c->mipmap = True;
+ load_texture_async (modeinfo->xgwa.screen, modeinfo->window,
+ *c->glx_context, 0, 0, c->mipmap, c->texid,
+ image_loaded_cb, c);
+}
+
+ENTRYPOINT void
+init_flipflop(ModeInfo *mi)
+{
+ int screen;
+ Flipflopcreen *c;
+
+ if (MI_IS_WIREFRAME(mi)) textured = 0;
+
+ /* Set all constants to their correct values */
+ if (board_avg_size != 0) { /* general size specified by user */
+ board_x_size = board_avg_size;
+ board_y_size = board_avg_size;
+ } else {
+ board_avg_size = (board_x_size + board_y_size) / 2;
+ }
+ if ((numsquares == 0) && (freesquares != 0)) {
+ numsquares = board_x_size * board_y_size - freesquares;
+ }
+ if (strcmp(flipflopmode_str, "tiles")) {
+ textured = 0; /* textures look dumb in stick mode */
+ half_thick = 1.0 * DEF_STICK_THICK / 100.0;
+ if (numsquares == 0) { /* No value defined by user */
+ numsquares = board_x_size * board_y_size * DEF_STICK_RATIO / 100;
+ }
+ } else {
+ half_thick = 1.0 * DEF_TILE_THICK / 100.0;
+ if (numsquares == 0) { /* No value defined by user */
+ numsquares = board_x_size * board_y_size * DEF_TILE_RATIO/ 100;;
+ }
+ }
+ if (board_avg_size < 2) {
+ fprintf (stderr,"%s: the board must be at least 2x2.\n", progname);
+ exit(1);
+ }
+ if ((board_x_size < 1) || (board_y_size < 1) || (numsquares < 1)) {
+ fprintf (stderr,"%s: the number of elements ('-count') and the dimensions of the board ('-size-x', '-size-y') must be positive integers.\n", progname);
+ exit(1);
+ }
+ if (board_x_size * board_y_size <= numsquares) {
+ fprintf (stderr,"%s: the number of elements ('-count') that you specified is too big \n for the dimensions of the board ('-size-x', '-size-y'). Nothing will move.\n", progname);
+ }
+
+ screen = MI_SCREEN(mi);
+ wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT(mi, qs);
+
+ c = &qs[screen];
+ c->window = MI_WINDOW(mi);
+ c->trackball = gltrackball_init (False);
+
+ c->flipspeed = 0.03;
+ c->reldist = 1;
+ c->energy = 40;
+
+ if((c->glx_context = init_GL(mi)))
+ reshape_flipflop(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ else
+ MI_CLEARWINDOW(mi);
+
+ /* At this point, all the constants have already been set, */
+ /* so we can create the board */
+ c->sheet = (randsheet*) malloc(sizeof(randsheet));
+ randsheet_create( c->sheet );
+
+ clearbits = GL_COLOR_BUFFER_BIT;
+
+ glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
+ glEnable(GL_COLOR_MATERIAL);
+ setup_lights();
+
+ glEnable(GL_DEPTH_TEST);
+ clearbits |= GL_DEPTH_BUFFER_BIT;
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+
+ randsheet_initialize( c->sheet );
+ if( textured ){
+ /* check for anisotropic filtering */
+ if(strstr((char *)glGetString(GL_EXTENSIONS),
+ "GL_EXT_texture_filter_anisotropic"))
+ glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &c->anisotropic);
+ else
+ c->anisotropic = 0;
+
+ /* allocate a new texture and get it */
+ glGenTextures(1, &c->texid);
+ get_texture(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_flipflop(ModeInfo *mi)
+{
+ Flipflopcreen *c = &qs[MI_SCREEN(mi)];
+ Window w = MI_WINDOW(mi);
+ Display *disp = MI_DISPLAY(mi);
+
+ if(!c->glx_context || (textured && !c->got_texture))
+ return;
+
+ glXMakeCurrent(disp, w, *(c->glx_context));
+
+ mi->polygon_count = display(mi);
+
+ if(mi->fps_p){
+ do_fps(mi);
+ }
+
+ glFinish();
+ glXSwapBuffers(disp, w);
+
+
+}
+
+ENTRYPOINT void
+free_flipflop(ModeInfo *mi)
+{
+ Flipflopcreen *c = &qs[MI_SCREEN(mi)];
+ if (c->sheet) {
+ randsheet_free(c->sheet);
+ free (c->sheet);
+ }
+}
+
+/*** ADDED RANDSHEET FUNCTIONS ***/
+
+static int
+draw_sheet(float *tex)
+{
+ int polys = 0;
+ glBegin( wire ? GL_LINE_LOOP : GL_QUADS );
+
+ glNormal3f( 0, -1, 0 );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick);
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ polys++;
+
+ if (wire) { glEnd(); glBegin (GL_LINE_LOOP); }
+
+ /* back */
+ glNormal3f( 0, 1, 0 );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick);
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, half_thick, half_thick );
+ polys++;
+
+ if (wire) { glEnd(); return polys; }
+
+ /* 4 edges!!! weee.... */
+ glNormal3f( 0, 0, -1 );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, -half_thick, half_thick );
+ polys++;
+ glNormal3f( 0, 0, 1 );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+ polys++;
+ glNormal3f( 1, 0, 0 );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ polys++;
+ glNormal3f( -1, 0, 0 );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ polys++;
+ glEnd();
+
+ return polys;
+}
+
+/* Reserve memory for the randsheet */
+static void
+randsheet_create( randsheet *rs )
+{
+ rs -> occupied = (int*) malloc(board_x_size*board_y_size * sizeof(int));
+ rs -> xpos = (int*) malloc(numsquares * sizeof(int));
+ rs -> ypos = (int*) malloc(numsquares * sizeof(int));
+ rs -> direction = (int*) malloc(numsquares * sizeof(int));
+ rs -> angle = (float*) malloc(numsquares * sizeof(float));
+ rs -> color = (float*) malloc(numsquares*3 * sizeof(float));
+ rs -> tex = (float*) malloc(numsquares*4 * sizeof(float));
+}
+
+/* Free reserved memory for the randsheet */
+static void
+randsheet_free( randsheet *rs )
+{
+ free(rs->occupied);
+ free(rs->xpos);
+ free(rs->ypos);
+ free(rs->direction);
+ free(rs->angle);
+ free(rs->color);
+ free(rs->tex);
+}
+
+static void
+randsheet_initialize( randsheet *rs )
+{
+ int i, j, index;
+ index = 0;
+ /* put the moving sheets on the board */
+ for( i = 0; i < board_x_size; i++ )
+ {
+ for( j = 0; j < board_y_size; j++ )
+ {
+ /* initially fill up a corner with the moving squares */
+ if( index < numsquares )
+ {
+ rs->occupied[ i * board_y_size + j ] = index;
+ rs->xpos[ index ] = i;
+ rs->ypos[ index ] = j;
+ /* have the square colors start out as a pattern */
+ rs->color[ index*3 + 0 ] = ((i+j)%3 == 0)||((i+j+1)%3 == 0);
+ rs->color[ index*3 + 1 ] = ((i+j+1)%3 == 0);
+ rs->color[ index*3 + 2 ] = ((i+j+2)%3 == 0);
+ index++;
+ }
+ /* leave everything else empty*/
+ else
+ {
+ rs->occupied[ i * board_y_size + j ] = -1;
+ }
+ }
+ }
+ /* initially everything is at rest */
+ for( i=0; i<numsquares; i++ )
+ {
+ rs->direction[ i ] = 0;
+ rs->angle[ i ] = 0;
+ }
+}
+
+/* Pick and random square and direction and try to move it. */
+/* May not actually move anything, just attempt a random move. */
+/* Returns true if move was sucessful. */
+/* This could probably be implemented faster in a dequeue */
+/* to avoid trying to move a square which is already moving */
+/* but speed is most likely bottlenecked by rendering anyway... */
+static int
+randsheet_new_move( randsheet* rs )
+{
+ int i, j;
+ int num, dir;
+ /* pick a random square */
+ num = random( ) % numsquares;
+ i = rs->xpos[ num ];
+ j = rs->ypos[ num ];
+ /* pick a random direction */
+ dir = ( random( )% 4 ) + 1;
+
+ if( rs->direction[ num ] == 0 )
+ {
+ switch( dir )
+ {
+ case 1:
+ /* move up in x */
+ if( ( i + 1 ) < board_x_size )
+ {
+ if( rs->occupied[ (i + 1) * board_y_size + j ] == -1 )
+ {
+ rs->direction[ num ] = dir;
+ rs->occupied[ (i + 1) * board_y_size + j ] = num;
+ rs->occupied[ i * board_y_size + j ] = -1;
+ return 1;
+ }
+ }
+ return 0;
+ break;
+ case 2:
+ /* move up in y */
+ if( ( j + 1 ) < board_y_size )
+ {
+ if( rs->occupied[ i * board_y_size + (j + 1) ] == -1 )
+ {
+ rs->direction[ num ] = dir;
+ rs->occupied[ i * board_y_size + (j + 1) ] = num;
+ rs->occupied[ i * board_y_size + j ] = -1;
+ return 1;
+ }
+ }
+ return 0;
+ break;
+ case 3:
+ /* move down in x */
+ if( ( i - 1 ) >= 0 )
+ {
+ if( rs->occupied[ (i - 1) * board_y_size + j ] == -1 )
+ {
+ rs->direction[ num ] = dir;
+ rs->occupied[ (i - 1) * board_y_size + j ] = num;
+ rs->occupied[ i * board_y_size + j ] = -1;
+ return 1;
+ }
+ }
+ return 0;
+ break;
+ case 4:
+ /* move down in y */
+ if( ( j - 1 ) >= 0 )
+ {
+ if( rs->occupied[ i * board_y_size + (j - 1) ] == -1 )
+ {
+ rs->direction[ num ] = dir;
+ rs->occupied[ i * board_y_size + (j - 1) ] = num;
+ rs->occupied[ i * board_y_size + j ] = -1;
+ return 1;
+ }
+ }
+ return 0;
+ break;
+ default:
+ break;
+ }
+ }
+ return 0;
+}
+
+/* move a single frame. */
+/* Pass in the angle in rads the square rotates in a frame. */
+static void
+randsheet_move( randsheet *rs, float rot )
+{
+ int index;
+ float tmp;
+ for( index = 0 ; index < numsquares; index++ )
+ {
+ switch( rs->direction[ index ] )
+ {
+ case 0:
+ /* not moving */
+ break;
+ case 1:
+ /* move up in x */
+ if( textured && rs->angle[ index ] == 0 )
+ {
+ tmp = rs->tex[ index * 4 + 0 ];
+ rs->tex[ index * 4 + 0 ] = rs->tex[ index * 4 + 2 ];
+ rs->tex[ index * 4 + 2 ] = tmp;
+ }
+ rs->angle[ index ] += rot;
+ /* check to see if we have finished moving */
+ if( rs->angle[ index ] >= M_PI )
+ {
+ rs->xpos[ index ] += 1;
+ rs->direction[ index ] = 0;
+ rs->angle[ index ] = 0;
+ }
+ break;
+ case 2:
+ /* move up in y */
+ if( textured && rs->angle[ index ] == 0 )
+ {
+ tmp = rs->tex[ index * 4 + 1 ];
+ rs->tex[ index * 4 + 1 ] = rs->tex[ index * 4 + 3 ];
+ rs->tex[ index * 4 + 3 ] = tmp;
+ }
+ rs->angle[ index ] += rot;
+ /* check to see if we have finished moving */
+ if( rs->angle[ index ] >= M_PI )
+ {
+ rs->ypos[ index ] += 1;
+ rs->direction[ index ] = 0;
+ rs->angle[ index ] = 0;
+ }
+ break;
+ case 3:
+ /* down in x */
+ rs->angle[ index ] += rot;
+ /* check to see if we have finished moving */
+ if( rs->angle[ index ] >= M_PI )
+ {
+ rs->xpos[ index ] -= 1;
+ rs->direction[ index ] = 0;
+ rs->angle[ index ] = 0;
+ if( textured )
+ {
+ tmp = rs->tex[ index * 4 + 0 ];
+ rs->tex[ index * 4 + 0 ] = rs->tex[ index * 4 + 2 ];
+ rs->tex[ index * 4 + 2 ] = tmp;
+ }
+ }
+ break;
+ case 4:
+ /* down in y */
+ rs->angle[ index ] += rot;
+ /* check to see if we have finished moving */
+ if( rs->angle[ index ] >= M_PI )
+ {
+ rs->ypos[ index ] -= 1;
+ rs->direction[ index ] = 0;
+ rs->angle[ index ] = 0;
+ if( textured )
+ {
+ tmp = rs->tex[ index * 4 + 1 ];
+ rs->tex[ index * 4 + 1 ] = rs->tex[ index * 4 + 3 ];
+ rs->tex[ index * 4 + 3 ] = tmp;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+
+/* draw all the moving squares */
+static int
+randsheet_draw( randsheet *rs )
+{
+ int i, j, polys = 0;
+ int index;
+
+ /* for all moving squares ... */
+ for( index = 0; index < numsquares; index++ )
+ {
+ /* set color */
+ glColor3f( rs->color[ index*3 + 0 ],
+ rs->color[ index*3 + 1 ],
+ rs->color[ index*3 + 2 ] );
+ /* find x and y position */
+ i = rs->xpos[ index ];
+ j = rs->ypos[ index ];
+ glPushMatrix();
+ switch( rs->direction[ index ] )
+ {
+ case 0:
+
+ /* not moving */
+ /* front */
+ glTranslatef( i, 0, j );
+ break;
+ case 1:
+ glTranslatef( i+1, 0, j );
+ glRotatef( 180 - rs->angle[ index ]*180/M_PI, 0, 0, 1 );
+
+ break;
+ case 2:
+ glTranslatef( i, 0, j+1 );
+ glRotatef( 180 - rs->angle[ index ]*180/M_PI, -1, 0, 0 );
+
+ break;
+ case 3:
+ glTranslatef( i, 0, j );
+ glRotatef( rs->angle[ index ]*180/M_PI, 0, 0, 1 );
+ break;
+ case 4:
+ glTranslatef( i, 0, j );
+ glRotatef( rs->angle[ index ]*180/M_PI, -1, 0, 0 );
+ break;
+ default:
+ break;
+ }
+ polys += draw_sheet( rs->tex + index*4 );
+ glPopMatrix();
+
+ }
+ return polys;
+}
+
+/**** END RANDSHEET_BAK FUNCTIONS ***/
+
+XSCREENSAVER_MODULE ("FlipFlop", flipflop)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/flipflop.man b/hacks/glx/flipflop.man
new file mode 100644
index 0000000..17691bc
--- /dev/null
+++ b/hacks/glx/flipflop.man
@@ -0,0 +1,95 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+flipflop - draws a grid of 3D squares that change positions
+.SH SYNOPSIS
+.B flipflop
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-count \fInumber\fP | \-free \fInumber\fP]
+[\-size \fInumber\fP]
+[\-size-x \fInumber\fP]
+[\-size-y \fInumber\fP]
+[\-spin \fInumber\fP]
+[\-mode sticks | tiles]
+[\-delay \fInumber\fP]
+[\-wireframe]
+[\-fps]
+[\-texture]
+.SH DESCRIPTION
+Flipflop draws a grid of 3D colored tiles that change positions with
+each other.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fInumber\fP
+Number of tiles on the board. A value of "0" means "default". The
+default number of tiles depends on the size of the board and the mode:
+95% of total tiles for "tiles" mode and 80% of total sticks for
+"sticks" mode (e.g. 76 tiles or 64 sticks for a 9x9 board).
+.TP 8
+.B \-free \fInumber\fP
+Number of tiles missing from the board. See -count.
+.TP 8
+.B \-size \fInumber\fP
+Number of tiles on each side of the board. Takes precedence over
+-size-x and -size-y. Default: 9.
+.TP 8
+.B \-size-x \fInumber\fP
+Width (in tiles) of the board. Default: 9.
+.TP 8
+.B \-size-y \fInumber\fP
+Length (in tiles) of the board. Default: 9.
+.TP 8
+.B \-spin \fInumber\fP
+Angular velocity for the rotation of the board.
+.TP 8
+.B \-mode sticks
+Draw hopping sticks instead of flipping tiles.
+.TP 8
+.B \-mode tiles
+Draw flipping tiles. This is the default.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-fps | \-no\-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-wireframe
+Only draw outlines.
+.TP 8
+.B \-texture | \-no\-texture
+Whether to texture the tiles with a screen grab or an image.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Kevin Ogden. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Kevin Ogden <kogden1@hotmail.com>. Some additional code by Sergio
+Gutierrez <sergut@gmail.com>.
diff --git a/hacks/glx/flipscreen3d.c b/hacks/glx/flipscreen3d.c
new file mode 100644
index 0000000..e4db5df
--- /dev/null
+++ b/hacks/glx/flipscreen3d.c
@@ -0,0 +1,518 @@
+/*
+ * flipscreen3d - takes snapshots of the screen and flips it around
+ *
+ * version 1.0 - Oct 24, 2001
+ *
+ * Copyright (C) 2001 Ben Buxton (bb@cactii.net)
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*useSHM: True \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_screenflip 0
+# define release_screenflip 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+# include "gltrackball.h"
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+/* lifted from lament.c */
+#define RAND(n) ((long) ((random() & 0x7fffffff) % ((long) (n))))
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+
+#ifdef USE_GL
+
+/* Should be in <GL/glext.h> */
+# ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+# endif
+# ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
+#define DEF_ROTATE "True"
+static int rotate;
+
+#define QW 12
+#define QH 12
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+
+static XrmOptionDescRec opts[] = {
+ {"+rotate", ".screenflip.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".screenflip.rotate", XrmoptionNoArg, "true" },
+};
+
+
+static argtype vars[] = {
+ {&rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+};
+
+
+
+ENTRYPOINT ModeSpecOpt screenflip_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+#ifdef USE_MODULES
+ModStruct screenflip_description =
+{"screenflip", "init_screenflip", "draw_screenflip", NULL,
+ "draw_screenflip", "init_screenflip", NULL, &screenflip_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Screenflips", 0, NULL};
+
+#endif
+
+
+typedef struct {
+ GLXContext *glx_context;
+ Window window;
+
+ int winw, winh;
+ int tw, th; /* texture width, height */
+ GLfloat min_tx, min_ty;
+ GLfloat max_tx, max_ty;
+ GLfloat qx, qy, qw, qh; /* the quad we'll draw */
+
+ int regrab;
+ int fadetime; /* fade before regrab */
+
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLfloat show_colors[4];
+ GLfloat stretch_val_x, stretch_val_y;
+ GLfloat stretch_val_dx, stretch_val_dy;
+
+ GLfloat curx, cury, curz;
+
+ GLfloat rx, ry, rz;
+ GLfloat rot, drot, odrot, ddrot, orot;
+ float theta, rho, dtheta, drho, gamma, dgamma;
+
+ GLuint texid;
+ Bool mipmap_p;
+ Bool waiting_for_image_p;
+ Bool first_image_p;
+
+ GLfloat anisotropic;
+
+} Screenflip;
+
+static Screenflip *screenflip = NULL;
+
+#include "grab-ximage.h"
+
+static const GLfloat viewer[] = {0.0, 0.0, 15.0};
+
+
+static void getSnapshot (ModeInfo *);
+
+
+ENTRYPOINT Bool
+screenflip_handle_event (ModeInfo *mi, XEvent *event)
+{
+ Screenflip *c = &screenflip[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, c->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &c->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ if (!c->waiting_for_image_p)
+ {
+ getSnapshot (mi);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+/* draw the texture mapped quad (actually two back to back)*/
+static void showscreen(Screenflip *c, int frozen, int wire)
+{
+ GLfloat x, y, w, h;
+
+ if (c->fadetime) {
+/* r -= 0.02; g -= 0.02; b -= 0.02; */
+ c->show_colors[3] -= 0.02;
+ if (c->show_colors[3] < 0) {
+ c->regrab = 1;
+ c->fadetime = 0;
+ }
+ } else if (c->show_colors[3] < 0) {
+ c->show_colors[0] = c->show_colors[1] =
+ c->show_colors[2] = c->show_colors[3] = 1;
+ c->stretch_val_x = c->stretch_val_y =
+ c->stretch_val_dx = c->stretch_val_dy = 0;
+ }
+ if (c->stretch_val_dx == 0 && !frozen && !(random() % 25))
+ c->stretch_val_dx = (float)(random() % 100) / 5000;
+ if (c->stretch_val_dy == 0 && !frozen && !(random() % 25))
+ c->stretch_val_dy = (float)(random() % 100) / 5000;
+
+ x = c->qx;
+ y = c->qy;
+ w = c->qx+c->qw;
+ h = c->qy-c->qh;
+
+ if (!frozen) {
+ w *= sin (c->stretch_val_x) + 1;
+ x *= sin (c->stretch_val_x) + 1;
+ if (!c->button_down_p) {
+ if (!c->fadetime) c->stretch_val_x += c->stretch_val_dx;
+ if (c->stretch_val_x > 2*M_PI && !(random() % 5))
+ c->stretch_val_dx = (float)(random() % 100) / 5000;
+ else
+ c->stretch_val_x -= 2*M_PI;
+ }
+
+ if (!c->button_down_p && !c->fadetime) c->stretch_val_y += c->stretch_val_dy;
+ h *= sin (c->stretch_val_y) / 2 + 1;
+ y *= sin (c->stretch_val_y) / 2 + 1;
+ if (!c->button_down_p) {
+ if (c->stretch_val_y > 2*M_PI && !(random() % 5))
+ c->stretch_val_dy = (float)(random() % 100) / 5000;
+ else
+ c->stretch_val_y -= 2*M_PI;
+ }
+ }
+
+ glColor4f(c->show_colors[0], c->show_colors[1],
+ c->show_colors[2], c->show_colors[3]);
+
+ if (!wire)
+ {
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glDepthMask(GL_FALSE);
+ }
+
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(c->max_tx, c->max_ty); glVertex3f(w, h, 0);
+ glTexCoord2f(c->max_tx, c->min_ty); glVertex3f(w, y, 0);
+ glTexCoord2f(c->min_tx, c->min_ty); glVertex3f(x, y, 0);
+ glTexCoord2f(c->min_tx, c->max_ty); glVertex3f(x, h, 0);
+
+ glNormal3f(0, 0, -1);
+ glTexCoord2f(c->min_tx, c->min_ty); glVertex3f(x, y, -0.05);
+ glTexCoord2f(c->max_tx, c->min_ty); glVertex3f(w, y, -0.05);
+ glTexCoord2f(c->max_tx, c->max_ty); glVertex3f(w, h, -0.05);
+ glTexCoord2f(c->min_tx, c->max_ty); glVertex3f(x, h, -0.05);
+ glEnd();
+
+
+ glDisable(GL_TEXTURE_2D);
+ glDepthMask(GL_TRUE);
+
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(x, y, 0);
+ glVertex3f(x, h, 0);
+ glVertex3f(w, h, 0);
+ glVertex3f(w, y, 0);
+ glEnd();
+ glDisable(GL_BLEND);
+
+}
+
+/* This function is responsible for 'zooming back' the square after
+ * a new chunk has been grabbed with getSnapshot(), and positioning
+ * it suitably on the screen. Once positioned (where we begin to rotate),
+ * it just does a glTranslatef() and returns 1
+ */
+
+static int inposition(Screenflip *c)
+{
+ GLfloat wx;
+ GLfloat wy;
+ wx = 0 - (c->qw/2);
+ wy = (c->qh/2);
+
+ if (c->curx == 0) c->curx = c->qx;
+ if (c->cury == 0) c->cury = c->qy;
+ if (c->regrab) {
+ c->curz = 0;
+ c->curx = c->qx;
+ c->cury = c->qy;
+ c->regrab = 0;
+ }
+ if (c->curz > -10 || c->curx > wx + 0.1 || c->curx < wx - 0.1 ||
+ c->cury > wy + 0.1 || c->cury < wy - 0.1) {
+ if (c->curz > -10)
+ c->curz -= 0.05;
+ if (c->curx > wx) {
+ c->qx -= 0.02;
+ c->curx -= 0.02;
+ }
+ if (c->curx < wx) {
+ c->qx += 0.02;
+ c->curx += 0.02;
+ }
+ if (c->cury > wy) {
+ c->qy -= 0.02;
+ c->cury -= 0.02;
+ }
+ if (c->cury < wy) {
+ c->qy += 0.02;
+ c->cury += 0.02;
+ }
+ glTranslatef(0, 0, c->curz);
+ return 0;
+ }
+ glTranslatef(0, 0, c->curz);
+ return 1;
+
+}
+
+#if 0
+static void drawgrid(void)
+{
+ int i;
+
+ glColor3f(0, 0.7, 0);
+ glBegin(GL_LINES);
+ for (i = 0 ; i <= 50; i+=2) {
+ glVertex3f( -25, -15, i-70);
+ glVertex3f( 25, -15, i-70);
+ glVertex3f( i-25, -15, -70);
+ glVertex3f( i-25, -15, -20);
+ }
+ glEnd();
+}
+#endif
+
+
+static void display(Screenflip *c, int wire)
+{
+ int frozen;
+ GLfloat rot = current_device_rotation();
+
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+ gluLookAt(viewer[0], viewer[1], viewer[2], 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
+ glPushMatrix();
+
+/*
+ glRotatef(rot, 0, 0, 1);
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = c->winw / (GLfloat) c->winh;
+ glScalef (s, 1/s, 1);
+ }
+*/
+
+ if (inposition(c)) {
+ frozen = 0;
+ glTranslatef(5 * sin(c->theta), 5 * sin(c->rho), 10 * cos(c->gamma) - 10);
+/* randomly change the speed */
+ if (!c->button_down_p && !(random() % 300)) {
+ if (random() % 2)
+ c->drho = 1/60 - (float)(random() % 100)/3000;
+ if (random() % 2)
+ c->dtheta = 1/60 - (float)(random() % 100)/3000;
+ if (random() % 2)
+ c->dgamma = 1/60 - (float)(random() % 100)/3000;
+ }
+ glRotatef(rot, 0, 0, 1);
+ gltrackball_rotate (c->trackball);
+ glRotatef(-rot, 0, 0, 1);
+ if (rotate) glRotatef(c->rot, c->rx, c->ry, c->rz);
+/* update variables with each frame */
+ if(!c->button_down_p && !c->fadetime) {
+ c->theta += c->dtheta;
+ c->rho += c->drho;
+ c->gamma += c->dgamma;
+ c->rot += c->drot;
+ c->drot += c->ddrot;
+ }
+/* dont let our rotation speed get too high */
+ if (c->drot > 5 && c->ddrot > 0)
+ c->ddrot = 0 - (GLfloat)(random() % 100) / 1000;
+ else if (c->drot < -5 && c->ddrot < 0)
+ c->ddrot = (GLfloat)(random() % 100) / 1000;
+ } else { /* reset some paramaters */
+ c->ddrot = 0.05 - (GLfloat)(random() % 100) / 1000;
+ c->theta = c->rho = c->gamma = 0;
+ c->rot = 0;
+ frozen = 1;
+ }
+ if (!c->button_down_p && !c->fadetime && (c->rot >= 360 || c->rot <= -360) && !(random() % 7)) { /* rotate change */
+ c->rx = (GLfloat)(random() % 100) / 100;
+ c->ry = (GLfloat)(random() % 100) / 100;
+ c->rz = (GLfloat)(random() % 100) / 100;
+ }
+ if (c->odrot * c->drot < 0 && c->tw < c->winw && !(random() % 10)) {
+ c->fadetime = 1; /* randomly fade and get new snapshot */
+ }
+ c->orot = c->rot;
+ c->odrot = c->drot;
+ if (c->rot > 360 || c->rot < -360) /* dont overflow rotation! */
+ c->rot -= c->rot;
+ showscreen(c, frozen, wire);
+ glPopMatrix();
+ glFlush();
+}
+
+ENTRYPOINT void reshape_screenflip(ModeInfo *mi, int width, int height)
+{
+ Screenflip *c = &screenflip[MI_SCREEN(mi)];
+ glViewport(0,0,(GLint)width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(45, 1, 2.0, 85);
+ glMatrixMode(GL_MODELVIEW);
+ c->winw = width;
+ c->winh = height;
+}
+
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ Screenflip *c = (Screenflip *) closure;
+
+ c->tw = texture_width;
+ c->th = texture_height;
+ c->min_tx = (GLfloat) geometry->x / c->tw;
+ c->min_ty = (GLfloat) geometry->y / c->th;
+ c->max_tx = (GLfloat) (geometry->x + geometry->width) / c->tw;
+ c->max_ty = (GLfloat) (geometry->y + geometry->height) / c->th;
+
+ c->qx = -QW/2 + ((GLfloat) geometry->x * QW / image_width);
+ c->qy = QH/2 - ((GLfloat) geometry->y * QH / image_height);
+ c->qw = QW * ((GLfloat) geometry->width / image_width);
+ c->qh = QH * ((GLfloat) geometry->height / image_height);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ (c->mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
+
+ if (c->anisotropic >= 1.0)
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT,
+ c->anisotropic);
+
+ c->waiting_for_image_p = False;
+ c->first_image_p = False;
+}
+
+
+static void getSnapshot (ModeInfo *modeinfo)
+{
+ Screenflip *c = &screenflip[MI_SCREEN(modeinfo)];
+
+ if (MI_IS_WIREFRAME(modeinfo))
+ return;
+
+ c->waiting_for_image_p = True;
+ c->mipmap_p = True;
+ load_texture_async (modeinfo->xgwa.screen, modeinfo->window,
+ *c->glx_context, 0, 0, c->mipmap_p, c->texid,
+ image_loaded_cb, c);
+}
+
+ENTRYPOINT void init_screenflip(ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ Screenflip *c;
+
+ MI_INIT(mi, screenflip);
+ c = &screenflip[screen];
+ c->window = MI_WINDOW(mi);
+
+ c->trackball = gltrackball_init (False);
+
+ if ((c->glx_context = init_GL(mi)) != NULL) {
+ reshape_screenflip(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+ c->winh = MI_WIN_HEIGHT(mi);
+ c->winw = MI_WIN_WIDTH(mi);
+ c->qw = QW;
+ c->qh = QH;
+ c->qx = -6;
+ c->qy = 6;
+
+ c->rx = c->ry = 1;
+ c->odrot = 1;
+
+ c->show_colors[0] = c->show_colors[1] =
+ c->show_colors[2] = c->show_colors[3] = 1;
+
+ if (! MI_IS_WIREFRAME(mi))
+ {
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ glDisable(GL_LIGHTING);
+ }
+
+ if (strstr ((char *) glGetString(GL_EXTENSIONS),
+ "GL_EXT_texture_filter_anisotropic"))
+ glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &c->anisotropic);
+ else
+ c->anisotropic = 0.0;
+
+ glGenTextures(1, &c->texid);
+
+ c->first_image_p = True;
+ getSnapshot(mi);
+}
+
+ENTRYPOINT void draw_screenflip(ModeInfo *mi)
+{
+ Screenflip *c = &screenflip[MI_SCREEN(mi)];
+ Window w = MI_WINDOW(mi);
+ Display *disp = MI_DISPLAY(mi);
+
+ if (!c->glx_context)
+ return;
+
+ /* Wait for the first image; for subsequent images, load them in the
+ background while animating. */
+ if (c->waiting_for_image_p && c->first_image_p)
+ return;
+
+ glXMakeCurrent(disp, w, *(c->glx_context));
+
+ glBindTexture(GL_TEXTURE_2D, c->texid);
+
+ if (c->regrab)
+ getSnapshot(mi);
+
+ display(c, MI_IS_WIREFRAME(mi));
+
+ if(mi->fps_p) do_fps(mi);
+ glFinish();
+ glXSwapBuffers(disp, w);
+}
+
+XSCREENSAVER_MODULE_2 ("FlipScreen3D", flipscreen3d, screenflip)
+
+#endif
diff --git a/hacks/glx/flipscreen3d.man b/hacks/glx/flipscreen3d.man
new file mode 100644
index 0000000..fecd005
--- /dev/null
+++ b/hacks/glx/flipscreen3d.man
@@ -0,0 +1,61 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+flipscreen3d - rotates an image of the screen through 3 dimensions.
+.SH SYNOPSIS
+.B flipscreen3d
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-no-rotate]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Grabs an image of the desktop, turns it into a GL texture map, and spins it
+around and deforms it in various ways.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-rotate | \-no-rotate
+Whether to rotate.
+.TP 8
+.B \-wireframe
+Just render boxes instead of textures (for debugging).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Ben Buxton. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Ben Buxton.
diff --git a/hacks/glx/fliptext.c b/hacks/glx/fliptext.c
new file mode 100644
index 0000000..c233e8b
--- /dev/null
+++ b/hacks/glx/fliptext.c
@@ -0,0 +1,1001 @@
+/*
+ * fliptext, Copyright (c) 2005-2015 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#define DEF_FONT "-*-utopia-bold-r-normal-*-*-720-*-*-*-*-*-*"
+#define DEF_COLOR "#00CCFF"
+
+#define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*usePty: False \n" \
+ "*texFontCacheSize: 60 \n" \
+ "*font: " DEF_FONT "\n" \
+ ".foreground: " DEF_COLOR "\n" \
+ "*program: xscreensaver-text --cols 0" /* don't wrap */
+
+# define release_fliptext 0
+# define fliptext_handle_event xlockmore_no_events
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#include "xlockmore.h"
+#include "texfont.h"
+#include "textclient.h"
+
+#ifdef USE_GL /* whole file */
+
+/* Should be in <GL/glext.h> */
+# ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+# endif
+# ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
+
+#define DEF_LINES "8"
+#define DEF_FONT_SIZE "20"
+#define DEF_COLUMNS "80"
+#define DEF_ALIGNMENT "random"
+#define DEF_SPEED "1.0"
+#define TAB_WIDTH 8
+
+#define FONT_WEIGHT 14
+#define KEEP_ASPECT
+
+typedef enum { NEW, HESITATE, IN, LINGER, OUT, DEAD } line_state;
+typedef enum { SCROLL_BOTTOM, SCROLL_TOP, SPIN } line_anim_type;
+
+typedef struct { GLfloat x, y, z; } XYZ;
+
+typedef struct {
+ char *text;
+ GLfloat width, height; /* size */
+ XYZ from, to, current; /* start, end, and current position */
+ GLfloat fth, tth, cth; /* rotation around Z */
+
+ int cluster_size; /* how many lines in this cluster */
+ int cluster_pos; /* position of this line in the cluster */
+
+ line_state state; /* current motion model */
+ int step, steps; /* progress along this path */
+ GLfloat color[4];
+
+} line;
+
+
+typedef struct {
+ Display *dpy;
+ GLXContext *glx_context;
+
+ texture_font_data *texfont;
+ text_data *tc;
+
+ int alignment;
+
+ char *buf;
+ int buf_size;
+ int buf_tail;
+
+ int char_width; /* in font units */
+ int line_height; /* in font units */
+ double font_scale; /* convert font units to display units */
+
+ int font_wrap_pixels; /* in font units (for wrapping text) */
+
+ int top_margin, bottom_margin;
+ int left_margin, right_margin;
+
+ int nlines;
+ int lines_size;
+ line **lines;
+
+ line_anim_type anim_type;
+ XYZ in, mid, out;
+ XYZ rotation;
+ GLfloat color[4];
+
+} fliptext_configuration;
+
+
+static fliptext_configuration *scs = NULL;
+
+static int max_lines, min_lines;
+static float font_size;
+static int target_columns;
+static char *alignment_str;
+static int alignment_random_p;
+static GLfloat speed;
+
+static XrmOptionDescRec opts[] = {
+ {"-lines", ".lines", XrmoptionSepArg, 0 },
+ {"-size", ".fontSize", XrmoptionSepArg, 0 },
+ {"-columns", ".columns", XrmoptionSepArg, 0 },
+ {"-speed", ".speed", XrmoptionSepArg, 0 },
+/*{"-font", ".font", XrmoptionSepArg, 0 },*/
+ {"-alignment", ".alignment", XrmoptionSepArg, 0 },
+ {"-left", ".alignment", XrmoptionNoArg, "Left" },
+ {"-right", ".alignment", XrmoptionNoArg, "Right" },
+ {"-center", ".alignment", XrmoptionNoArg, "Center" },
+};
+
+static argtype vars[] = {
+ {&max_lines, "lines", "Integer", DEF_LINES, t_Int},
+ {&font_size, "fontSize", "Float", DEF_FONT_SIZE, t_Float},
+ {&target_columns, "columns", "Integer", DEF_COLUMNS, t_Int},
+ {&alignment_str, "alignment", "Alignment", DEF_ALIGNMENT, t_String},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt fliptext_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+/* Tabs are bad, mmmkay? */
+
+static char *
+untabify (const char *string)
+{
+ const char *ostring = string;
+ char *result = (char *) malloc ((strlen(string) * 8) + 1);
+ char *out = result;
+ int col = 0;
+ while (*string)
+ {
+ if (*string == '\t')
+ {
+ do {
+ col++;
+ *out++ = ' ';
+ } while (col % TAB_WIDTH);
+ string++;
+ }
+ else if (*string == '\r' || *string == '\n')
+ {
+ *out++ = *string++;
+ col = 0;
+ }
+ else if (*string == '\010') /* backspace */
+ {
+ if (string > ostring)
+ out--, string++;
+ }
+ else
+ {
+ *out++ = *string++;
+ col++;
+ }
+ }
+ *out = 0;
+
+ return result;
+}
+
+static void
+strip (char *s, Bool leading, Bool trailing)
+{
+ int L = strlen(s);
+ if (trailing)
+ while (L > 0 && (s[L-1] == ' ' || s[L-1] == '\t'))
+ s[L--] = 0;
+ if (leading)
+ {
+ char *s2 = s;
+ while (*s2 == ' ' || *s2 == '\t')
+ s2++;
+ if (s == s2)
+ return;
+ while (*s2)
+ *s++ = *s2++;
+ *s = 0;
+ }
+}
+
+
+static int
+char_width (fliptext_configuration *sc, char c)
+{
+ XCharStruct e;
+ char s[2];
+ s[0] = c;
+ s[1] = 0;
+ texture_string_metrics (sc->texfont, s, &e, 0, 0);
+ return e.width;
+}
+
+
+/* Returns a single line of text from the output buffer of the subprocess,
+ taking into account wrapping, centering, etc. Returns 0 if no complete
+ line is currently available.
+ */
+static char *
+get_one_line (fliptext_configuration *sc)
+{
+ char *result = 0;
+ int wrap_pix = sc->font_wrap_pixels;
+ int col = 0;
+ int col_pix = 0;
+ char *s = sc->buf;
+ int target = sc->buf_size - sc->buf_tail - 2;
+
+ /* Fill as much as we can into sc->buf, but stop at newline.
+ */
+ while (target > 0)
+ {
+ int c = textclient_getc (sc->tc);
+ if (c <= 0)
+ break;
+ sc->buf[sc->buf_tail++] = (char) c;
+ sc->buf[sc->buf_tail] = 0;
+ target--;
+ if (c == '\r' || c == '\n')
+ break;
+ }
+
+ while (!result)
+ {
+ int cw;
+
+ if (s >= sc->buf + sc->buf_tail)
+ /* Reached end of buffer before end of line. Bail. */
+ return 0;
+
+ cw = char_width (sc, *s);
+
+ if (*s == '\r' || *s == '\n' ||
+ col_pix + cw >= wrap_pix)
+ {
+ int L = s - sc->buf;
+
+ if (*s == '\r' || *s == '\n')
+ {
+ if (*s == '\r' && s[1] == '\n') /* swallow CRLF too */
+ *s++ = 0;
+
+ *s++ = 0;
+ }
+ else
+ {
+ /* We wrapped -- try to back up to the previous word boundary. */
+ char *s2 = s;
+ int n = 0;
+ while (s2 > sc->buf && *s2 != ' ' && *s2 != '\t')
+ s2--, n++;
+ if (s2 > sc->buf)
+ {
+ s = s2;
+ *s++ = 0;
+ L = s - sc->buf;
+ }
+ }
+
+ if (result) abort();
+ result = (char *) malloc (L+1);
+ memcpy (result, sc->buf, L);
+ result[L] = 0;
+
+ {
+ char *t = result;
+ char *ut = untabify (t);
+ strip (ut, (sc->alignment == 0), 1); /* if centering, strip
+ leading whitespace too */
+ result = ut;
+ free (t);
+ }
+
+ if (sc->buf_tail > (s - sc->buf))
+ {
+ int i = sc->buf_tail - (s - sc->buf);
+ memmove (sc->buf, s, i);
+ sc->buf_tail = i;
+ sc->buf[sc->buf_tail] = 0;
+ }
+ else
+ {
+ sc->buf_tail = 0;
+ }
+
+ sc->buf[sc->buf_tail] = 0;
+ s = sc->buf;
+ col = 0;
+ col_pix = 0;
+ }
+ else
+ {
+ col++;
+ col_pix += cw;
+ if (*s == '\t')
+ {
+ int tab_pix = TAB_WIDTH * sc->char_width;
+ col = TAB_WIDTH * ((col / TAB_WIDTH) + 1);
+ col_pix = tab_pix * ((col / tab_pix) + 1);
+ }
+ s++;
+ }
+ }
+
+ return result;
+}
+
+
+static Bool
+blank_p (const char *s)
+{
+ for (; *s; s++)
+ if (*s != ' ' && *s != '\t' && *s != '\r' && *s != '\n')
+ return False;
+ return True;
+}
+
+/* Reads some text from the subprocess, and creates and returns a `line'
+ object. Adds that object to the lines list. Returns 0 if no text
+ available yet.
+
+ If skip_blanks_p, then keep trying for new lines of text until we
+ get one that is not empty.
+ */
+static line *
+make_line (fliptext_configuration *sc, Bool skip_blanks_p)
+{
+ XCharStruct e;
+ line *ln;
+ char *s;
+
+ AGAIN:
+ s = get_one_line (sc);
+ if (s && skip_blanks_p && blank_p (s))
+ {
+ free (s);
+ goto AGAIN;
+ }
+
+ if (!s) return 0;
+
+ ln = (line *) calloc (1, sizeof(*ln));
+ ln->text = s;
+ ln->state = NEW;
+ texture_string_metrics (sc->texfont, s, &e, 0, 0);
+ ln->width = sc->font_scale * e.width;
+ ln->height = sc->font_scale * sc->line_height;
+
+ memcpy (ln->color, sc->color, sizeof(ln->color));
+
+ sc->nlines++;
+ if (sc->lines_size <= sc->nlines)
+ {
+ sc->lines_size = (sc->lines_size * 1.2) + sc->nlines;
+ sc->lines = (line **)
+ realloc (sc->lines, sc->lines_size * sizeof(*sc->lines));
+ if (! sc->lines)
+ {
+ fprintf (stderr, "%s: out of memory (%d lines)\n",
+ progname, sc->lines_size);
+ exit (1);
+ }
+ }
+
+ sc->lines[sc->nlines-1] = ln;
+ return ln;
+}
+
+
+/* frees the object and removes it from the list.
+ */
+static void
+free_line (fliptext_configuration *sc, line *line)
+{
+ int i;
+ for (i = 0; i < sc->nlines; i++)
+ if (sc->lines[i] == line)
+ break;
+ if (i == sc->nlines) abort();
+ for (; i < sc->nlines-1; i++)
+ sc->lines[i] = sc->lines[i+1];
+ sc->lines[i] = 0;
+ sc->nlines--;
+
+ free (line->text);
+ free (line);
+}
+
+
+static void
+draw_line (ModeInfo *mi, line *line)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ fliptext_configuration *sc = &scs[MI_SCREEN(mi)];
+
+ if (! line->text || !*line->text ||
+ line->state == NEW || line->state == HESITATE || line->state == DEAD)
+ return;
+
+ glPushMatrix();
+ glTranslatef (line->current.x, line->current.y, line->current.z);
+
+ glRotatef (line->cth, 0, 1, 0);
+
+ if (sc->alignment == 1)
+ glTranslatef (-line->width, 0, 0);
+ else if (sc->alignment == 0)
+ glTranslatef (-line->width/2, 0, 0);
+
+ glScalef (sc->font_scale, sc->font_scale, sc->font_scale);
+
+ glColor4f (line->color[0], line->color[1], line->color[2], line->color[3]);
+
+ if (!wire)
+ print_texture_string (sc->texfont, line->text);
+ else
+ {
+ int w, h;
+ char *s = line->text;
+ char c[2];
+ c[1]=0;
+ glDisable (GL_TEXTURE_2D);
+ glColor3f (0.4, 0.4, 0.4);
+ while (*s)
+ {
+ XCharStruct e;
+ *c = *s++;
+ texture_string_metrics (sc->texfont, c, &e, 0, 0);
+ w = e.width;
+ h = e.ascent + e.descent;
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (w, 0, 0);
+ glVertex3f (w, h, 0);
+ glVertex3f (0, h, 0);
+ glEnd();
+ glTranslatef (w, 0, 0);
+ }
+ }
+
+#if 0
+ glDisable (GL_TEXTURE_2D);
+ glColor3f (0.4, 0.4, 0.4);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (line->width/sc->font_scale, 0, 0);
+ glVertex3f (line->width/sc->font_scale, line->height/sc->font_scale, 0);
+ glVertex3f (0, line->height/sc->font_scale, 0);
+ glEnd();
+ if (!wire) glEnable (GL_TEXTURE_2D);
+#endif
+
+ glPopMatrix();
+
+ mi->polygon_count += strlen (line->text);
+}
+
+static void
+tick_line (fliptext_configuration *sc, line *line)
+{
+ int stagger = 30; /* frames of delay between line spin-outs */
+ int slide = 600; /* frames in a slide in/out */
+ int linger = 0; /* frames to pause with no motion */
+ double i, ii;
+
+ if (line->state >= DEAD) abort();
+ if (++line->step >= line->steps)
+ {
+ line->state++;
+ line->step = 0;
+
+ if (linger == 0 && line->state == LINGER)
+ line->state++;
+
+ if (sc->anim_type != SPIN)
+ stagger *= 2;
+
+ switch (line->state)
+ {
+ case HESITATE: /* entering state HESITATE */
+ switch (sc->anim_type)
+ {
+ case SPIN:
+ line->steps = (line->cluster_pos * stagger);
+ break;
+ case SCROLL_TOP:
+ line->steps = stagger * (line->cluster_size - line->cluster_pos);
+ break;
+ case SCROLL_BOTTOM:
+ line->steps = stagger * line->cluster_pos;
+ break;
+ default:
+ abort();
+ }
+ break;
+
+ case IN:
+ line->color[3] = 0;
+ switch (sc->anim_type)
+ {
+ case SCROLL_BOTTOM: /* entering state BOTTOM IN */
+ line->from = sc->in;
+ line->to = sc->mid;
+ line->from.y = (sc->bottom_margin -
+ (line->height *
+ (line->cluster_pos + 1)));
+ line->to.y += (line->height *
+ ((line->cluster_size/2.0) - line->cluster_pos));
+ line->steps = slide;
+ break;
+
+ case SCROLL_TOP: /* entering state TOP IN */
+ line->from = sc->in;
+ line->to = sc->mid;
+ line->from.y = (sc->top_margin +
+ (line->height *
+ (line->cluster_size - line->cluster_pos)));
+ line->to.y += (line->height *
+ ((line->cluster_size/2.0) - line->cluster_pos));
+ line->steps = slide;
+ break;
+
+ case SPIN: /* entering state SPIN IN */
+ line->from = sc->in;
+ line->to = sc->mid;
+ line->to.y += (line->height *
+ ((line->cluster_size/2.0) - line->cluster_pos));
+ line->from.y += (line->height *
+ ((line->cluster_size/2.0) - line->cluster_pos));
+
+ line->fth = 270;
+ line->tth = 0;
+ line->steps = slide;
+ break;
+
+ default:
+ abort();
+ }
+ break;
+
+ case OUT:
+ switch (sc->anim_type)
+ {
+ case SCROLL_BOTTOM: /* entering state BOTTOM OUT */
+ line->from = line->to;
+ line->to = sc->out;
+ line->to.y = (sc->top_margin +
+ (line->height *
+ (line->cluster_size - line->cluster_pos)));
+ line->steps = slide;
+ break;
+
+ case SCROLL_TOP: /* entering state TOP OUT */
+ line->from = line->to;
+ line->to = sc->out;
+ line->to.y = (sc->bottom_margin -
+ (line->height *
+ (line->cluster_pos + 1)));
+ line->steps = slide;
+ break;
+
+ case SPIN: /* entering state SPIN OUT */
+ line->from = line->to;
+ line->to = sc->out;
+ line->to.y += (line->height *
+ ((line->cluster_size/2.0) - line->cluster_pos));
+
+ line->fth = line->tth;
+ line->tth = -270;
+ line->steps = slide;
+ break;
+
+ default:
+ abort();
+ }
+ break;
+
+ case LINGER:
+ line->from = line->to;
+ line->steps = linger;
+ break;
+
+ default:
+ break;
+ }
+
+ line->steps /= speed;
+ }
+
+ switch (line->state)
+ {
+ case IN:
+ case OUT:
+ i = (double) line->step / line->steps;
+
+ /* Move along the path exponentially, slow side towards the middle. */
+ if (line->state == OUT)
+ ii = i * i;
+ else
+ ii = 1 - ((1-i) * (1-i));
+
+ line->current.x = line->from.x + (ii * (line->to.x - line->from.x));
+ line->current.y = line->from.y + (ii * (line->to.y - line->from.y));
+ line->current.z = line->from.z + (ii * (line->to.z - line->from.z));
+ line->cth = line->fth + (ii * (line->tth - line->fth));
+
+ if (line->state == OUT) ii = 1-ii;
+ line->color[3] = sc->color[3] * ii;
+ break;
+
+ case HESITATE:
+ case LINGER:
+ case DEAD:
+ break;
+ default:
+ abort();
+ }
+}
+
+
+/* Start a new cluster of lines going.
+ Pick their anim type, and in, mid, and out positions.
+ */
+static void
+reset_lines (ModeInfo *mi)
+{
+ fliptext_configuration *sc = &scs[MI_SCREEN(mi)];
+ int i;
+ line *prev = 0;
+ GLfloat minx, maxx, miny, maxy, minz, maxz, maxw, maxh;
+
+ sc->rotation.x = 5 - BELLRAND(10);
+ sc->rotation.y = 5 - BELLRAND(10);
+ sc->rotation.z = 5 - BELLRAND(10);
+
+ switch (random() % 8)
+ {
+ case 0: sc->anim_type = SCROLL_TOP; break;
+ case 1: sc->anim_type = SCROLL_BOTTOM; break;
+ default: sc->anim_type = SPIN; break;
+ }
+
+ minx = sc->left_margin * 0.9;
+ maxx = sc->right_margin * 0.9;
+
+ miny = sc->bottom_margin * 0.9;
+ maxy = sc->top_margin * 0.9;
+
+ minz = sc->left_margin * 5;
+ maxz = sc->right_margin * 2;
+
+ maxw = sc->font_wrap_pixels * sc->font_scale;
+ maxh = max_lines * sc->line_height * sc->font_scale;
+
+ if (maxw > maxx - minx)
+ maxw = maxx - minx;
+ if (maxh > maxy - miny)
+ maxh = maxy - miny;
+
+ if (alignment_random_p)
+ sc->alignment = (random() % 3) - 1;
+
+ if (sc->alignment == -1) maxx -= maxw;
+ else if (sc->alignment == 1) minx += maxw;
+ else minx += maxw/2, maxx -= maxw/2;
+
+ miny += maxh/2;
+ maxy -= maxh/2;
+
+ sc->mid.x = minx + frand (maxx - minx);
+ if (sc->anim_type == SPIN)
+ sc->mid.y = miny + BELLRAND (maxy - miny);
+ else
+ sc->mid.y = miny + frand (maxy - miny);
+
+ sc->in.x = BELLRAND(sc->right_margin * 2) - sc->right_margin;
+ sc->out.x = BELLRAND(sc->right_margin * 2) - sc->right_margin;
+
+ sc->in.y = miny + frand(maxy - miny);
+ sc->out.y = miny + frand(maxy - miny);
+
+ sc->in.z = minz + frand(maxz - minz);
+ sc->out.z = minz + frand(maxz - minz);
+
+ sc->mid.z = 0;
+
+ if (sc->anim_type == SPIN && sc->in.z > 0) sc->in.z /= 4;
+ if (sc->anim_type == SPIN && sc->out.z > 0) sc->out.z /= 4;
+
+ for (i = 0; i < max_lines; i++)
+ {
+ line *line = make_line (sc, (i == 0));
+ if (!line) break; /* no text available */
+ if (i >= min_lines &&
+ (!line->text || !*line->text)) /* blank after min */
+ break;
+ }
+
+ for (i = 0; i < sc->nlines; i++)
+ {
+ line *line = sc->lines[i];
+ if (!prev)
+ {
+ line->from.y = sc->bottom_margin;
+ line->to.y = 0;
+ }
+ else
+ {
+ line->from.y = prev->from.y - prev->height;
+ line->to.y = prev->to.y - prev->height;
+ }
+ line->cluster_pos = i;
+ line->cluster_size = sc->nlines;
+ prev = line;
+ }
+}
+
+
+static void
+parse_color (ModeInfo *mi, const char *name, const char *s, GLfloat *a)
+{
+ XColor c;
+ if (! XParseColor (MI_DISPLAY(mi), MI_COLORMAP(mi), s, &c))
+ {
+ fprintf (stderr, "%s: can't parse %s color %s", progname, name, s);
+ exit (1);
+ }
+ a[0] = c.red / 65536.0;
+ a[1] = c.green / 65536.0;
+ a[2] = c.blue / 65536.0;
+ a[3] = 1.0;
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_fliptext (ModeInfo *mi, int width, int height)
+{
+ fliptext_configuration *sc = &scs[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (60.0, 1/h, 0.01, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 2.6,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ sc->right_margin = sc->top_margin / h;
+ sc->left_margin = -sc->right_margin;
+}
+
+
+ENTRYPOINT void
+init_fliptext (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+
+ fliptext_configuration *sc;
+
+ MI_INIT(mi, scs);
+
+ sc = &scs[MI_SCREEN(mi)];
+ sc->lines = (line **) calloc (max_lines+1, sizeof(char *));
+
+ sc->dpy = MI_DISPLAY(mi);
+
+ if ((sc->glx_context = init_GL(mi)) != NULL) {
+ reshape_fliptext (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+ }
+
+ {
+ XCharStruct e;
+ int cw, lh, ascent, descent;
+ sc->texfont = load_texture_font (MI_DISPLAY(mi), "font");
+ check_gl_error ("loading font");
+ texture_string_metrics (sc->texfont, "n", &e, &ascent, &descent);
+ cw = e.width;
+ lh = ascent + descent;
+ sc->char_width = cw;
+ sc->line_height = lh;
+ }
+
+ if (!wire)
+ {
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+ glEnable (GL_ALPHA_TEST);
+ glEnable (GL_TEXTURE_2D);
+
+ /* "Anistropic filtering helps for quadrilateral-angled textures.
+ A sharper image is accomplished by interpolating and filtering
+ multiple samples from one or more mipmaps to better approximate
+ very distorted textures. This is the next level of filtering
+ after trilinear filtering." */
+ if (strstr ((char *) glGetString(GL_EXTENSIONS),
+ "GL_EXT_texture_filter_anisotropic"))
+ {
+ GLfloat anisotropic = 0.0;
+ glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &anisotropic);
+ if (anisotropic >= 1.0)
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT,
+ anisotropic);
+ }
+ }
+
+ /* The default font is (by fiat) "18 points".
+ Interpret the user's font size request relative to that.
+ */
+ sc->font_scale = 3 * (font_size / 18.0);
+
+ if (target_columns <= 2) target_columns = 2;
+
+ /* Figure out what the wrap column should be, in font-coordinate pixels.
+ Compute it from the given -columns value, but don't let it be wider
+ than the screen.
+ */
+ {
+ GLfloat maxw = 110 * sc->line_height / sc->font_scale; /* magic... */
+ sc->font_wrap_pixels = target_columns * sc->char_width;
+ if (sc->font_wrap_pixels > maxw ||
+ sc->font_wrap_pixels <= 0)
+ sc->font_wrap_pixels = maxw;
+ }
+
+ sc->buf_size = target_columns * max_lines;
+ sc->buf = (char *) calloc (1, sc->buf_size);
+
+ alignment_random_p = False;
+ if (!alignment_str || !*alignment_str ||
+ !strcasecmp(alignment_str, "left"))
+ sc->alignment = -1;
+ else if (!strcasecmp(alignment_str, "center") ||
+ !strcasecmp(alignment_str, "middle"))
+ sc->alignment = 0;
+ else if (!strcasecmp(alignment_str, "right"))
+ sc->alignment = 1;
+ else if (!strcasecmp(alignment_str, "random"))
+ sc->alignment = -1, alignment_random_p = True;
+
+ else
+ {
+ fprintf (stderr,
+ "%s: alignment must be left/center/right/random, not \"%s\"\n",
+ progname, alignment_str);
+ exit (1);
+ }
+
+ sc->tc = textclient_open (sc->dpy);
+
+ if (max_lines < 1) max_lines = 1;
+ min_lines = max_lines * 0.66;
+ if (min_lines > max_lines - 3) min_lines = max_lines - 4;
+ if (min_lines < 1) min_lines = 1;
+
+ parse_color (mi, "foreground",
+ get_string_resource(mi->dpy, "foreground", "Foreground"),
+ sc->color);
+
+ sc->top_margin = (sc->char_width * 100);
+ sc->bottom_margin = -sc->top_margin;
+ reshape_fliptext (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); /* compute left/right */
+}
+
+
+ENTRYPOINT void
+draw_fliptext (ModeInfo *mi)
+{
+ fliptext_configuration *sc = &scs[MI_SCREEN(mi)];
+/* XtAppContext app = XtDisplayToApplicationContext (sc->dpy);*/
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!sc->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sc->glx_context));
+
+#if 0
+ if (XtAppPending (app) & (XtIMTimer|XtIMAlternateInput))
+ XtAppProcessEvent (app, XtIMTimer|XtIMAlternateInput);
+#endif
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ mi->polygon_count = 0;
+
+ glPushMatrix();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ {
+ GLfloat s = 3.0 / (sc->top_margin - sc->bottom_margin);
+ glScalef(s, s, s);
+ }
+
+ glRotatef (sc->rotation.x, 1, 0, 0);
+ glRotatef (sc->rotation.y, 0, 1, 0);
+ glRotatef (sc->rotation.z, 0, 0, 1);
+
+#if 0
+ glDisable (GL_TEXTURE_2D);
+ glColor3f (1,1,1);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (sc->left_margin, sc->top_margin, 0);
+ glVertex3f (sc->right_margin, sc->top_margin, 0);
+ glVertex3f (sc->right_margin, sc->bottom_margin, 0);
+ glVertex3f (sc->left_margin, sc->bottom_margin, 0);
+ glEnd();
+ glBegin (GL_LINES);
+ glVertex3f (sc->in.x, sc->top_margin, sc->in.z);
+ glVertex3f (sc->in.x, sc->bottom_margin, sc->in.z);
+ glVertex3f (sc->mid.x, sc->top_margin, sc->mid.z);
+ glVertex3f (sc->mid.x, sc->bottom_margin, sc->mid.z);
+ glVertex3f (sc->out.x, sc->top_margin, sc->out.z);
+ glVertex3f (sc->out.x, sc->bottom_margin, sc->out.z);
+ glEnd();
+ glEnable (GL_TEXTURE_2D);
+#endif
+
+ for (i = 0; i < sc->nlines; i++)
+ {
+ line *line = sc->lines[i];
+ draw_line (mi, line);
+ tick_line (sc, line);
+ }
+
+ for (i = sc->nlines-1; i >= 0; i--)
+ {
+ line *line = sc->lines[i];
+ if (line->state == DEAD)
+ free_line (sc, line);
+ }
+
+ if (sc->nlines == 0)
+ reset_lines (mi);
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT void
+free_fliptext (ModeInfo *mi)
+{
+ fliptext_configuration *sc = &scs[MI_SCREEN(mi)];
+ if (sc->tc)
+ textclient_close (sc->tc);
+ free(sc->lines);
+
+ /* #### there's more to free here */
+}
+
+XSCREENSAVER_MODULE ("FlipText", fliptext)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/fliptext.man b/hacks/glx/fliptext.man
new file mode 100644
index 0000000..8d2915e
--- /dev/null
+++ b/hacks/glx/fliptext.man
@@ -0,0 +1,114 @@
+.TH XScreenSaver 1 "20-Mar-2005" "X Version 11"
+.SH NAME
+fliptext - draws pages of text whose lines transparently flip around
+.SH SYNOPSIS
+.B fliptext
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP]
+[\-delay \fImicroseconds\fP]
+[\-program \fIcommand\fP]
+[\-size \fIinteger\fP ]
+[\-columns \fIinteger\fP]
+[\-left | \-center | \-right]
+[\-lines \fIinteger\fP]
+[\-speed \fIfloat\fP]
+[\-delay \fIusecs\fP]
+[\-font \fIxlfd\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIfliptext\fP program runs another program to generate a stream of
+text, then animates the lines of that text transparently flipping in
+and out in 3D.
+.SH OPTIONS
+.I fliptext
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-program \fIsh-command\fP
+This program will be run periodically, and its output will be the text
+that is displayed. Default \fIxscreensaver\-text\fP.
+
+You can configure the text printed through the "Advanced" tab of
+.BR xscreensaver\-demo (1),
+or by editing your ~/.xscreensaver file.
+.TP 8
+.B \-size \fIinteger\fP
+How large a font to use, in points. (Well, in some arbitrary unit
+we're calling "points" for the sake of argument.) Default: 20.
+.TP 8
+.B \-columns \fIinteger\fP
+At (approximately) what column to wrap lines. Default 80. Wrapping is
+done by pixels, not characters, and lines will always wrap at the
+edge of the screen regardless.
+.TP 8
+.B \-left | \-center | \-right
+Whether to align the text flush left, centered, or flush right.
+The default is to choose randomly each time a new screen of text
+is displayed.
+.TP 8
+.B \-lines \fIinteger\fP
+How many lines of text should be shown at once. Default 8.
+.TP 8
+.B \-speed \fIratio\fP
+Change the animation speed; 0.5 to go half as fast, 2.0 to go twice as fast.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between frames of the animation; default is 10000 (1/10th second.)
+.TP 8
+.B \-font \fIfont-name\fP
+The name of the font to use. For best effect, this should be a large
+font (at least 36 points.) The bigger the font, the better looking the
+characters will be. Note that the size of this font affects only the
+clarity of the characters, not their size on the screen: for that, use
+the \fI\-size\fP or \fI\-columns\fP options.
+
+Default: -*-utopia-bold-r-normal-*-*-720-*-*-*-*-iso8859-1
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR xscreensaver (1),
+.BR xscreensaver-text (1),
+.BR fortune (1),
+.BR phosphor (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR fontglide (MANSUFFIX),
+.BR ljlatest (MANSUFFIX),
+.BR dadadodo (1),
+.BR webcollage (MANSUFFIX),
+.BR driftnet (1)
+.BR EtherPEG ,
+.BR EtherPeek
+.SH COPYRIGHT
+Copyright \(co 2005 by Jamie Zawinski.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>
diff --git a/hacks/glx/flurry-smoke.c b/hacks/glx/flurry-smoke.c
new file mode 100644
index 0000000..245e9f1
--- /dev/null
+++ b/hacks/glx/flurry-smoke.c
@@ -0,0 +1,1441 @@
+/*
+
+Copyright (c) 2002, Calum Robinson
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/* Smoke.cpp: implementation of the Smoke class. */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "flurry.h"
+
+#define MAXANGLES 16384
+#define NOT_QUITE_DEAD 3
+
+#define intensity 75000.0f;
+
+void InitSmoke(SmokeV *s)
+{
+ int i;
+ s->nextParticle = 0;
+ s->nextSubParticle = 0;
+ s->lastParticleTime = 0.25f;
+ s->firstTime = 1;
+ s->frame = 0;
+ for (i=0;i<3;i++) {
+ s->old[i] = RandFlt(-100.0, 100.0);
+ }
+}
+
+void UpdateSmoke_ScalarBase(global_info_t *global, flurry_info_t *flurry, SmokeV *s)
+{
+ int i,j,k;
+ float sx = flurry->star->position[0];
+ float sy = flurry->star->position[1];
+ float sz = flurry->star->position[2];
+ double frameRate;
+ double frameRateModifier;
+
+
+ s->frame++;
+
+ if(!s->firstTime) {
+ /* release 12 puffs every frame */
+ if(flurry->fTime - s->lastParticleTime >= 1.0f / 121.0f) {
+ float dx,dy,dz,deltax,deltay,deltaz;
+ float f;
+ float rsquared;
+ float mag;
+
+ dx = s->old[0] - sx;
+ dy = s->old[1] - sy;
+ dz = s->old[2] - sz;
+ mag = 5.0f;
+ deltax = (dx * mag);
+ deltay = (dy * mag);
+ deltaz = (dz * mag);
+ for(i=0;i<flurry->numStreams;i++) {
+ float streamSpeedCoherenceFactor;
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] = deltax;
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] = deltay;
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] = deltaz;
+ s->p[s->nextParticle].position[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].position[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].position[2].f[s->nextSubParticle] = sz;
+ s->p[s->nextParticle].oldposition[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].oldposition[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].oldposition[2].f[s->nextSubParticle] = sz;
+ streamSpeedCoherenceFactor = MAX_(0.0f,1.0f + RandBell(0.25f*incohesion));
+ dx = s->p[s->nextParticle].position[0].f[s->nextSubParticle] - flurry->spark[i]->position[0];
+ dy = s->p[s->nextParticle].position[1].f[s->nextSubParticle] - flurry->spark[i]->position[1];
+ dz = s->p[s->nextParticle].position[2].f[s->nextSubParticle] - flurry->spark[i]->position[2];
+ rsquared = (dx*dx+dy*dy+dz*dz);
+ f = streamSpeed * streamSpeedCoherenceFactor;
+
+ mag = f / (float) sqrt(rsquared);
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] -= (dx * mag);
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] -= (dy * mag);
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] -= (dz * mag);
+ s->p[s->nextParticle].color[0].f[s->nextSubParticle] = flurry->spark[i]->color[0] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[1].f[s->nextSubParticle] = flurry->spark[i]->color[1] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[2].f[s->nextSubParticle] = flurry->spark[i]->color[2] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[3].f[s->nextSubParticle] = 0.85f * (1.0f + RandBell(0.5f*colorIncoherence));
+ s->p[s->nextParticle].time.f[s->nextSubParticle] = flurry->fTime;
+ s->p[s->nextParticle].dead.i[s->nextSubParticle] = 0;
+ s->p[s->nextParticle].animFrame.i[s->nextSubParticle] = random()&63;
+ s->nextSubParticle++;
+ if (s->nextSubParticle==4) {
+ s->nextParticle++;
+ s->nextSubParticle=0;
+ }
+ if (s->nextParticle >= NUMSMOKEPARTICLES/4) {
+ s->nextParticle = 0;
+ s->nextSubParticle = 0;
+ }
+ }
+
+ s->lastParticleTime = flurry->fTime;
+ }
+ } else {
+ s->lastParticleTime = flurry->fTime;
+ s->firstTime = 0;
+ }
+
+ for(i=0;i<3;i++) {
+ s->old[i] = flurry->star->position[i];
+ }
+
+ frameRate = ((double) flurry->dframe)/(flurry->fTime);
+ frameRateModifier = 42.5f / frameRate;
+
+ for(i=0;i<NUMSMOKEPARTICLES/4;i++) {
+ for(k=0; k<4; k++) {
+ float dx,dy,dz;
+ float f;
+ float rsquared;
+ float mag;
+ float deltax;
+ float deltay;
+ float deltaz;
+
+ if (s->p[i].dead.i[k]) {
+ continue;
+ }
+
+ deltax = s->p[i].delta[0].f[k];
+ deltay = s->p[i].delta[1].f[k];
+ deltaz = s->p[i].delta[2].f[k];
+
+ for(j=0;j<flurry->numStreams;j++) {
+ dx = s->p[i].position[0].f[k] - flurry->spark[j]->position[0];
+ dy = s->p[i].position[1].f[k] - flurry->spark[j]->position[1];
+ dz = s->p[i].position[2].f[k] - flurry->spark[j]->position[2];
+ rsquared = (dx*dx+dy*dy+dz*dz);
+
+ f = (gravity/rsquared) * frameRateModifier;
+
+ if ((((i*4)+k) % flurry->numStreams) == j) {
+ f *= 1.0f + streamBias;
+ }
+ mag = f / (float) sqrt(rsquared);
+
+ deltax -= (dx * mag);
+ deltay -= (dy * mag);
+ deltaz -= (dz * mag);
+ }
+
+ /* slow this particle down by flurry->drag */
+ deltax *= flurry->drag;
+ deltay *= flurry->drag;
+ deltaz *= flurry->drag;
+
+ if((deltax*deltax+deltay*deltay+deltaz*deltaz) >= 25000000.0f) {
+ s->p[i].dead.i[k] = 1;
+ continue;
+ }
+
+ /* update the position */
+ s->p[i].delta[0].f[k] = deltax;
+ s->p[i].delta[1].f[k] = deltay;
+ s->p[i].delta[2].f[k] = deltaz;
+ for(j=0;j<3;j++) {
+ s->p[i].oldposition[j].f[k] = s->p[i].position[j].f[k];
+ s->p[i].position[j].f[k] += (s->p[i].delta[j].f[k])*flurry->fDeltaTime;
+ }
+ }
+ }
+}
+
+#if 0
+#ifdef __ppc__
+
+void UpdateSmoke_ScalarFrsqrte(global_info_t *global, flurry_info_t *flurry, SmokeV *s)
+{
+ int i,j,k;
+ float sx = flurry->star->position[0];
+ float sy = flurry->star->position[1];
+ float sz = flurry->star->position[2];
+ double frameRate;
+ double frameRateModifier;
+
+
+ s->frame++;
+
+ if(!s->firstTime) {
+ /* release 12 puffs every frame */
+ if(flurry->fTime - s->lastParticleTime >= 1.0f / 121.0f) {
+ float dx,dy,dz,deltax,deltay,deltaz;
+ float f;
+ float rsquared;
+ float mag;
+
+ dx = s->old[0] - sx;
+ dy = s->old[1] - sy;
+ dz = s->old[2] - sz;
+ mag = 5.0f;
+ deltax = (dx * mag);
+ deltay = (dy * mag);
+ deltaz = (dz * mag);
+ for(i=0;i<flurry->numStreams;i++) {
+ float streamSpeedCoherenceFactor;
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] = deltax;
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] = deltay;
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] = deltaz;
+ s->p[s->nextParticle].position[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].position[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].position[2].f[s->nextSubParticle] = sz;
+ s->p[s->nextParticle].oldposition[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].oldposition[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].oldposition[2].f[s->nextSubParticle] = sz;
+ streamSpeedCoherenceFactor = MAX_(0.0f,1.0f + RandBell(0.25f*incohesion));
+ dx = s->p[s->nextParticle].position[0].f[s->nextSubParticle] - flurry->spark[i]->position[0];
+ dy = s->p[s->nextParticle].position[1].f[s->nextSubParticle] - flurry->spark[i]->position[1];
+ dz = s->p[s->nextParticle].position[2].f[s->nextSubParticle] - flurry->spark[i]->position[2];
+ rsquared = (dx*dx+dy*dy+dz*dz);
+ f = streamSpeed * streamSpeedCoherenceFactor;
+
+ mag = f / (float) sqrt(rsquared);
+ /*
+ reciprocal square-root estimate replaced above divide and call to system sqrt()
+
+ asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared));
+ mag *= f;
+ */
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] -= (dx * mag);
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] -= (dy * mag);
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] -= (dz * mag);
+ s->p[s->nextParticle].color[0].f[s->nextSubParticle] = flurry->spark[i]->color[0] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[1].f[s->nextSubParticle] = flurry->spark[i]->color[1] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[2].f[s->nextSubParticle] = flurry->spark[i]->color[2] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[3].f[s->nextSubParticle] = 0.85f * (1.0f + RandBell(0.5f*colorIncoherence));
+ s->p[s->nextParticle].time.f[s->nextSubParticle] = flurry->fTime;
+ s->p[s->nextParticle].dead.i[s->nextSubParticle] = 0;
+ s->p[s->nextParticle].animFrame.i[s->nextSubParticle] = random()&63;
+ s->nextSubParticle++;
+ if (s->nextSubParticle==4) {
+ s->nextParticle++;
+ s->nextSubParticle=0;
+ }
+ if (s->nextParticle >= NUMSMOKEPARTICLES/4) {
+ s->nextParticle = 0;
+ s->nextSubParticle = 0;
+ }
+ }
+
+ s->lastParticleTime = flurry->fTime;
+ }
+ } else {
+ s->lastParticleTime = flurry->fTime;
+ s->firstTime = 0;
+ }
+
+ for(i=0;i<3;i++) {
+ s->old[i] = flurry->star->position[i];
+ }
+
+ frameRate = ((double) flurry->dframe)/(flurry->fTime);
+ frameRateModifier = 42.5f / frameRate;
+
+ for(i=0;i<NUMSMOKEPARTICLES/4;i++) {
+ for(k=0; k<4; k++) {
+ float dx,dy,dz;
+ float f;
+ float rsquared;
+ float mag;
+ float deltax;
+ float deltay;
+ float deltaz;
+
+ if (s->p[i].dead.i[k]) {
+ continue;
+ }
+
+ deltax = s->p[i].delta[0].f[k];
+ deltay = s->p[i].delta[1].f[k];
+ deltaz = s->p[i].delta[2].f[k];
+
+ for(j=0;j<flurry->numStreams;j++) {
+ dx = s->p[i].position[0].f[k] - flurry->spark[j]->position[0];
+ dy = s->p[i].position[1].f[k] - flurry->spark[j]->position[1];
+ dz = s->p[i].position[2].f[k] - flurry->spark[j]->position[2];
+ rsquared = (dx*dx+dy*dy+dz*dz);
+
+ /*
+ asm("fres %0, %1" : "=f" (f) : "f" (rsquared));
+ f *= gravity*frameRateModifier;
+ */
+ f = ( gravity * frameRateModifier ) / rsquared;
+
+ if((((i*4)+k) % flurry->numStreams) == j) {
+ f *= 1.0f + streamBias;
+ }
+
+ mag = f / (float) sqrt(rsquared);
+
+ /* reciprocal square-root estimate replaced above divide and call to system sqrt() */
+
+ deltax -= (dx * mag);
+ deltay -= (dy * mag);
+ deltaz -= (dz * mag);
+ }
+
+ /* slow this particle down by flurry->drag */
+ deltax *= flurry->drag;
+ deltay *= flurry->drag;
+ deltaz *= flurry->drag;
+
+ if((deltax*deltax+deltay*deltay+deltaz*deltaz) >= 25000000.0f) {
+ s->p[i].dead.i[k] = 1;
+ continue;
+ }
+
+ /* update the position */
+ s->p[i].delta[0].f[k] = deltax;
+ s->p[i].delta[1].f[k] = deltay;
+ s->p[i].delta[2].f[k] = deltaz;
+ for(j=0;j<3;j++) {
+ s->p[i].oldposition[j].f[k] = s->p[i].position[j].f[k];
+ s->p[i].position[j].f[k] += (s->p[i].delta[j].f[k])*flurry->fDeltaTime;
+ }
+ }
+ }
+}
+
+#endif
+
+#ifdef __VEC__
+
+void UpdateSmoke_VectorBase(global_info_t *global, flurry_info_t *flurry, SmokeV *s)
+{
+ unsigned int i,j;
+ float sx = flurry->star->position[0];
+ float sy = flurry->star->position[1];
+ float sz = flurry->star->position[2];
+ double frameRate;
+ floatToVector frameRateModifier;
+ floatToVector gravityV;
+ floatToVector dragV;
+ floatToVector deltaTimeV;
+ const vector float deadConst = (vector float) (25000000.0,25000000.0,25000000.0,25000000.0);
+ const vector float zero = (vector float)(0.0, 0.0, 0.0, 0.0);
+ const vector float biasConst = (vector float)(streamBias);
+
+ gravityV.f[0] = gravity;
+ gravityV.v = (vector float) vec_splat((vector unsigned int)gravityV.v, 0);
+
+ dragV.f[0] = flurry->drag;
+ dragV.v = (vector float) vec_splat((vector unsigned int)dragV.v, 0);
+
+ deltaTimeV.f[0] = flurry->fDeltaTime;
+ deltaTimeV.v = (vector float) vec_splat((vector unsigned int)deltaTimeV.v, 0);
+
+ s->frame++;
+
+ if(!s->firstTime) {
+ /* release 12 puffs every frame */
+ if(flurry->fTime - s->lastParticleTime >= 1.0f / 121.0f) {
+ float dx,dy,dz,deltax,deltay,deltaz;
+ float f;
+ float rsquared;
+ float mag;
+
+ dx = s->old[0] - sx;
+ dy = s->old[1] - sy;
+ dz = s->old[2] - sz;
+ mag = 5.0f;
+ deltax = (dx * mag);
+ deltay = (dy * mag);
+ deltaz = (dz * mag);
+ for(i=0;i<flurry->numStreams;i++) {
+ float streamSpeedCoherenceFactor;
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] = deltax;
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] = deltay;
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] = deltaz;
+ s->p[s->nextParticle].position[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].position[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].position[2].f[s->nextSubParticle] = sz;
+ s->p[s->nextParticle].oldposition[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].oldposition[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].oldposition[2].f[s->nextSubParticle] = sz;
+ streamSpeedCoherenceFactor = MAX_(0.0f,1.0f + RandBell(0.25f*incohesion));
+ dx = s->p[s->nextParticle].position[0].f[s->nextSubParticle] - flurry->spark[i]->position[0];
+ dy = s->p[s->nextParticle].position[1].f[s->nextSubParticle] - flurry->spark[i]->position[1];
+ dz = s->p[s->nextParticle].position[2].f[s->nextSubParticle] - flurry->spark[i]->position[2];
+ rsquared = (dx*dx+dy*dy+dz*dz);
+ f = streamSpeed * streamSpeedCoherenceFactor;
+
+ mag = f / (float) sqrt(rsquared);
+ /*
+ asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared));
+ mag *= f;
+ */
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] -= (dx * mag);
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] -= (dy * mag);
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] -= (dz * mag);
+ s->p[s->nextParticle].color[0].f[s->nextSubParticle] = flurry->spark[i]->color[0] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[1].f[s->nextSubParticle] = flurry->spark[i]->color[1] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[2].f[s->nextSubParticle] = flurry->spark[i]->color[2] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[3].f[s->nextSubParticle] = 0.85f * (1.0f + RandBell(0.5f*colorIncoherence));
+ s->p[s->nextParticle].time.f[s->nextSubParticle] = flurry->fTime;
+ s->p[s->nextParticle].dead.i[s->nextSubParticle] = 0;
+ s->p[s->nextParticle].animFrame.i[s->nextSubParticle] = random()&63;
+ s->nextSubParticle++;
+ if (s->nextSubParticle==4) {
+ s->nextParticle++;
+ s->nextSubParticle=0;
+ }
+ if (s->nextParticle >= NUMSMOKEPARTICLES/4) {
+ s->nextParticle = 0;
+ s->nextSubParticle = 0;
+ }
+ }
+
+ s->lastParticleTime = flurry->fTime;
+ }
+ } else {
+ s->lastParticleTime = flurry->fTime;
+ s->firstTime = 0;
+ }
+
+ for(i=0;i<3;i++) {
+ s->old[i] = flurry->star->position[i];
+ }
+
+ frameRate = ((double) flurry->dframe)/(flurry->fTime);
+ frameRateModifier.f[0] = 42.5f / frameRate;
+ frameRateModifier.v = (vector float) vec_splat((vector unsigned int)frameRateModifier.v, 0);
+
+ frameRateModifier.v = vec_madd(frameRateModifier.v, gravityV.v, zero);
+
+ for(i=0;i<NUMSMOKEPARTICLES/4;i++) {
+ /* floatToVector f; */
+ vector float deltax, deltay, deltaz;
+ vector float distTemp;
+ vector unsigned int deadTemp;
+ /* floatToVector infopos0, infopos1, infopos2; */
+ intToVector mod;
+ vector unsigned int jVec;
+
+
+ vec_dst((int *)(&(s->p[i+4])), 0x00020200, 3);
+
+ if (vec_all_ne(s->p[i].dead.v, (vector unsigned int)(0))) {
+ continue;
+ }
+
+ deltax = s->p[i].delta[0].v;
+ deltay = s->p[i].delta[1].v;
+ deltaz = s->p[i].delta[2].v;
+
+ mod.i[0] = (i<<2 + 0) % flurry->numStreams;
+ if(mod.i[0]+1 == flurry->numStreams) {
+ mod.i[1] = 0;
+ } else {
+ mod.i[1] = mod.i[0]+1;
+ }
+ if(mod.i[1]+1 == flurry->numStreams) {
+ mod.i[2] = 0;
+ } else {
+ mod.i[2] = mod.i[1]+1;
+ }
+ if(mod.i[2]+1 == flurry->numStreams) {
+ mod.i[3] = 0;
+ } else {
+ mod.i[3] = mod.i[2]+1;
+ }
+
+ jVec = vec_xor(jVec, jVec);
+
+ vec_dst( &flurry->spark[0]->position[0], 0x16020160, 3 );
+ for(j=0; j<flurry->numStreams;j++) {
+ vector float ip0, ip1 = (vector float)(0.0), ip2;
+ vector float dx, dy, dz;
+ vector float rsquared, f;
+ vector float one_over_rsquared;
+ vector float biasTemp;
+ vector float mag;
+ vector bool int biasOr;
+
+ ip0 = vec_ld(0, flurry->spark[j]->position);
+ if(((int)(flurry->spark[j]->position) & 0xF)>=8) {
+ ip1 = vec_ld(16, flurry->spark[j]->position);
+ }
+
+ ip0 = vec_perm(ip0, ip1, vec_lvsl(0, flurry->spark[j]->position));
+ ip1 = (vector float) vec_splat((vector unsigned int)ip0, 1);
+ ip2 = (vector float) vec_splat((vector unsigned int)ip0, 2);
+ ip0 = (vector float) vec_splat((vector unsigned int)ip0, 0);
+
+ dx = vec_sub(s->p[i].position[0].v, ip0);
+ dy = vec_sub(s->p[i].position[1].v, ip1);
+ dz = vec_sub(s->p[i].position[2].v, ip2);
+
+ rsquared = vec_madd(dx, dx, zero);
+ rsquared = vec_madd(dy, dy, rsquared);
+ rsquared = vec_madd(dz, dz, rsquared);
+
+ biasOr = vec_cmpeq(jVec, mod.v);
+ biasTemp = vec_add(vec_and(biasOr, biasConst), (vector float)(1.0));
+
+ f = vec_madd(biasTemp, frameRateModifier.v, zero);
+ one_over_rsquared = vec_re(rsquared);
+ f = vec_madd(f, one_over_rsquared, zero);
+
+ mag = vec_rsqrte(rsquared);
+ mag = vec_madd(mag, f, zero);
+
+ deltax = vec_nmsub(dx, mag, deltax);
+ deltay = vec_nmsub(dy, mag, deltay);
+ deltaz = vec_nmsub(dz, mag, deltaz);
+
+ jVec = vec_add(jVec, (vector unsigned int)(1));
+ }
+
+ /* slow this particle down by flurry->drag */
+ deltax = vec_madd(deltax, dragV.v, zero);
+ deltay = vec_madd(deltay, dragV.v, zero);
+ deltaz = vec_madd(deltaz, dragV.v, zero);
+
+ distTemp = vec_madd(deltax, deltax, zero);
+ distTemp = vec_madd(deltay, deltay, distTemp);
+ distTemp = vec_madd(deltaz, deltaz, distTemp);
+
+ deadTemp = (vector unsigned int) vec_cmpge(distTemp, deadConst);
+ deadTemp = vec_and((vector unsigned int)vec_splat_u32(1), deadTemp);
+ s->p[i].dead.v = vec_or(s->p[i].dead.v, deadTemp);
+ if (vec_all_ne(s->p[i].dead.v, (vector unsigned int)(0))) {
+ continue;
+ }
+
+ /* update the position */
+ s->p[i].delta[0].v = deltax;
+ s->p[i].delta[1].v = deltay;
+ s->p[i].delta[2].v = deltaz;
+ for(j=0;j<3;j++) {
+ s->p[i].oldposition[j].v = s->p[i].position[j].v;
+ s->p[i].position[j].v = vec_madd(s->p[i].delta[j].v, deltaTimeV.v, s->p[i].position[j].v);
+ }
+ }
+}
+
+void UpdateSmoke_VectorUnrolled(global_info_t *info, SmokeV *s)
+{
+ unsigned int i,j;
+ float sx = flurry->star->position[0];
+ float sy = flurry->star->position[1];
+ float sz = flurry->star->position[2];
+ double frameRate;
+ floatToVector frameRateModifier;
+ floatToVector gravityV;
+ floatToVector dragV;
+ floatToVector deltaTimeV;
+ const vector float deadConst = (vector float) (25000000.0,25000000.0,25000000.0,25000000.0);
+ const vector float zero = (vector float)(0.0, 0.0, 0.0, 0.0);
+ const vector float biasConst = (vector float)(streamBias);
+
+ gravityV.f[0] = gravity;
+ gravityV.v = (vector float) vec_splat((vector unsigned int)gravityV.v, 0);
+
+ dragV.f[0] = flurry->drag;
+ dragV.v = (vector float) vec_splat((vector unsigned int)dragV.v, 0);
+
+ deltaTimeV.f[0] = flurry->fDeltaTime;
+ deltaTimeV.v = (vector float) vec_splat((vector unsigned int)deltaTimeV.v, 0);
+
+ s->frame++;
+
+ if(!s->firstTime) {
+ /* release 12 puffs every frame */
+ if(flurry->fTime - s->lastParticleTime >= 1.0f / 121.0f) {
+ float dx,dy,dz,deltax,deltay,deltaz;
+ float f;
+ float rsquared;
+ float mag;
+
+ dx = s->old[0] - sx;
+ dy = s->old[1] - sy;
+ dz = s->old[2] - sz;
+ mag = 5.0f;
+ deltax = (dx * mag);
+ deltay = (dy * mag);
+ deltaz = (dz * mag);
+ for(i=0;i<flurry->numStreams;i++) {
+ float streamSpeedCoherenceFactor;
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] = deltax;
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] = deltay;
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] = deltaz;
+ s->p[s->nextParticle].position[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].position[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].position[2].f[s->nextSubParticle] = sz;
+ s->p[s->nextParticle].oldposition[0].f[s->nextSubParticle] = sx;
+ s->p[s->nextParticle].oldposition[1].f[s->nextSubParticle] = sy;
+ s->p[s->nextParticle].oldposition[2].f[s->nextSubParticle] = sz;
+ streamSpeedCoherenceFactor = MAX_(0.0f,1.0f + RandBell(0.25f*incohesion));
+ dx = s->p[s->nextParticle].position[0].f[s->nextSubParticle] - flurry->spark[i]->position[0];
+ dy = s->p[s->nextParticle].position[1].f[s->nextSubParticle] - flurry->spark[i]->position[1];
+ dz = s->p[s->nextParticle].position[2].f[s->nextSubParticle] - flurry->spark[i]->position[2];
+ rsquared = (dx*dx+dy*dy+dz*dz);
+ f = streamSpeed * streamSpeedCoherenceFactor;
+
+ mag = f / (float) sqrt(rsquared);
+ /*
+ asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared));
+ mag *= f;
+ */
+
+ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] -= (dx * mag);
+ s->p[s->nextParticle].delta[1].f[s->nextSubParticle] -= (dy * mag);
+ s->p[s->nextParticle].delta[2].f[s->nextSubParticle] -= (dz * mag);
+ s->p[s->nextParticle].color[0].f[s->nextSubParticle] = flurry->spark[i]->color[0] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[1].f[s->nextSubParticle] = flurry->spark[i]->color[1] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[2].f[s->nextSubParticle] = flurry->spark[i]->color[2] * (1.0f + RandBell(colorIncoherence));
+ s->p[s->nextParticle].color[3].f[s->nextSubParticle] = 0.85f * (1.0f + RandBell(0.5f*colorIncoherence));
+ s->p[s->nextParticle].time.f[s->nextSubParticle] = flurry->fTime;
+ s->p[s->nextParticle].dead.i[s->nextSubParticle] = 0;
+ s->p[s->nextParticle].animFrame.i[s->nextSubParticle] = random()&63;
+ s->nextSubParticle++;
+ if (s->nextSubParticle==4) {
+ s->nextParticle++;
+ s->nextSubParticle=0;
+ }
+ if (s->nextParticle >= NUMSMOKEPARTICLES/4) {
+ s->nextParticle = 0;
+ s->nextSubParticle = 0;
+ }
+ }
+
+ s->lastParticleTime = flurry->fTime;
+ }
+ } else {
+ s->lastParticleTime = flurry->fTime;
+ s->firstTime = 0;
+ }
+
+ for(i=0;i<3;i++) {
+ s->old[i] = flurry->star->position[i];
+ }
+
+ frameRate = ((double) flurry->dframe)/(flurry->fTime);
+ frameRateModifier.f[0] = 42.5f / frameRate;
+ frameRateModifier.v = (vector float) vec_splat((vector unsigned int)frameRateModifier.v, 0);
+
+ frameRateModifier.v = vec_madd(frameRateModifier.v, gravityV.v, zero);
+
+ for(i=0;i<NUMSMOKEPARTICLES/4;i++) {
+ /* floatToVector f; */
+ vector float deltax, deltay, deltaz;
+ vector float distTemp;
+ vector unsigned int deadTemp;
+ /* floatToVector infopos0, infopos1, infopos2; */
+ intToVector mod;
+ vector unsigned int jVec;
+ vector unsigned int intOne = vec_splat_u32(1);
+ vector float floatOne = vec_ctf(intOne, 0);
+
+
+ vec_dst((int *)(&(s->p[i+4])), 0x00020200, 3);
+
+ if (vec_all_ne(s->p[i].dead.v, (vector unsigned int)(0))) {
+ continue;
+ }
+
+ deltax = s->p[i].delta[0].v;
+ deltay = s->p[i].delta[1].v;
+ deltaz = s->p[i].delta[2].v;
+
+ mod.i[0] = (i<<2 + 0) % flurry->numStreams;
+ if(mod.i[0]+1 == flurry->numStreams) {
+ mod.i[1] = 0;
+ } else {
+ mod.i[1] = mod.i[0]+1;
+ }
+ if(mod.i[1]+1 == flurry->numStreams) {
+ mod.i[2] = 0;
+ } else {
+ mod.i[2] = mod.i[1]+1;
+ }
+ if(mod.i[2]+1 == flurry->numStreams) {
+ mod.i[3] = 0;
+ } else {
+ mod.i[3] = mod.i[2]+1;
+ }
+
+ jVec = vec_xor(jVec, jVec);
+
+ vec_dst( &flurry->spark[0]->position[0], 0x16020160, 3 );
+ for(j=0; j + 3 < flurry->numStreams;j+=4)
+ {
+ vector float dxa, dya, dza;
+ vector float dxb, dyb, dzb;
+ vector float dxc, dyc, dzc;
+ vector float dxd, dyd, dzd;
+ vector float ip0a, ip1a;
+ vector float ip0b, ip1b;
+ vector float ip0c, ip1c;
+ vector float ip0d, ip1d;
+ vector float rsquaredA;
+ vector float rsquaredB;
+ vector float rsquaredC;
+ vector float rsquaredD;
+ vector float fA, fB, fC, fD;
+ vector float biasTempA;
+ vector float biasTempB;
+ vector float biasTempC;
+ vector float biasTempD;
+ vector float magA;
+ vector float magB;
+ vector float magC;
+ vector float magD;
+
+ vector float one_over_rsquaredA;
+ vector float one_over_rsquaredB;
+ vector float one_over_rsquaredC;
+ vector float one_over_rsquaredD;
+ vector bool int biasOrA,biasOrB,biasOrC,biasOrD;
+
+ /* load vectors */
+ ip0a = vec_ld(0, flurry->spark[j]->position);
+ ip0b = vec_ld(0, flurry->spark[j+1]->position);
+ ip0c = vec_ld(0, flurry->spark[j+2]->position);
+ ip0d = vec_ld(0, flurry->spark[j+3]->position);
+ ip1a = vec_ld( 12, flurry->spark[j]->position );
+ ip1b = vec_ld( 12, flurry->spark[j+1]->position );
+ ip1c = vec_ld( 12, flurry->spark[j+2]->position );
+ ip1d = vec_ld( 12, flurry->spark[j+3]->position );
+
+ /* align them */
+ ip0a = vec_perm(ip0a, ip1a, vec_lvsl(0, flurry->spark[j]->position));
+ ip0b = vec_perm(ip0b, ip1b, vec_lvsl(0, flurry->spark[j+1]->position));
+ ip0c = vec_perm(ip0c, ip1c, vec_lvsl(0, flurry->spark[j+2]->position));
+ ip0d = vec_perm(ip0d, ip1d, vec_lvsl(0, flurry->spark[j+3]->position));
+
+ dxa = vec_splat( ip0a, 0 );
+ dxb = vec_splat( ip0b, 0 );
+ dxc = vec_splat( ip0c, 0 );
+ dxd = vec_splat( ip0d, 0 );
+ dxa = vec_sub( s->p[i].position[0].v, dxa );
+ dxb = vec_sub( s->p[i].position[0].v, dxb );
+ dxc = vec_sub( s->p[i].position[0].v, dxc );
+ dxd = vec_sub( s->p[i].position[0].v, dxd );
+
+ dya = vec_splat( ip0a, 1 );
+ dyb = vec_splat( ip0b, 1 );
+ dyc = vec_splat( ip0c, 1 );
+ dyd = vec_splat( ip0d, 1 );
+ dya = vec_sub( s->p[i].position[1].v, dya );
+ dyb = vec_sub( s->p[i].position[1].v, dyb );
+ dyc = vec_sub( s->p[i].position[1].v, dyc );
+ dyd = vec_sub( s->p[i].position[1].v, dyd );
+
+ dza = vec_splat( ip0a, 2 );
+ dzb = vec_splat( ip0b, 2 );
+ dzc = vec_splat( ip0c, 2 );
+ dzd = vec_splat( ip0d, 2 );
+ dza = vec_sub( s->p[i].position[2].v, dza );
+ dzb = vec_sub( s->p[i].position[2].v, dzb );
+ dzc = vec_sub( s->p[i].position[2].v, dzc );
+ dzd = vec_sub( s->p[i].position[2].v, dzd );
+
+ rsquaredA = vec_madd( dxa, dxa, zero );
+ rsquaredB = vec_madd( dxb, dxb, zero );
+ rsquaredC = vec_madd( dxc, dxc, zero );
+ rsquaredD = vec_madd( dxd, dxd, zero );
+
+ rsquaredA = vec_madd( dya, dya, rsquaredA );
+ rsquaredB = vec_madd( dyb, dyb, rsquaredB );
+ rsquaredC = vec_madd( dyc, dyc, rsquaredC );
+ rsquaredD = vec_madd( dyd, dyd, rsquaredD );
+
+ rsquaredA = vec_madd( dza, dza, rsquaredA );
+ rsquaredB = vec_madd( dzb, dzb, rsquaredB );
+ rsquaredC = vec_madd( dzc, dzc, rsquaredC );
+ rsquaredD = vec_madd( dzd, dzd, rsquaredD );
+
+ biasOrA = vec_cmpeq( jVec, mod.v );
+ jVec = vec_add(jVec, intOne);
+ biasOrB = vec_cmpeq( jVec, mod.v );
+ jVec = vec_add(jVec, intOne);
+ biasOrC = vec_cmpeq( jVec, mod.v );
+ jVec = vec_add(jVec, intOne);
+ biasOrD = vec_cmpeq( jVec, mod.v );
+ jVec = vec_add(jVec, intOne);
+
+ biasTempA = vec_add( vec_and( biasOrA, biasConst), floatOne);
+ biasTempB = vec_add( vec_and( biasOrB, biasConst), floatOne);
+ biasTempC = vec_add( vec_and( biasOrC, biasConst), floatOne);
+ biasTempD = vec_add( vec_and( biasOrD, biasConst), floatOne);
+
+ fA = vec_madd( biasTempA, frameRateModifier.v, zero);
+ fB = vec_madd( biasTempB, frameRateModifier.v, zero);
+ fC = vec_madd( biasTempC, frameRateModifier.v, zero);
+ fD = vec_madd( biasTempD, frameRateModifier.v, zero);
+ one_over_rsquaredA = vec_re( rsquaredA );
+ one_over_rsquaredB = vec_re( rsquaredB );
+ one_over_rsquaredC = vec_re( rsquaredC );
+ one_over_rsquaredD = vec_re( rsquaredD );
+ fA = vec_madd( fA, one_over_rsquaredA, zero);
+ fB = vec_madd( fB, one_over_rsquaredB, zero);
+ fC = vec_madd( fC, one_over_rsquaredC, zero);
+ fD = vec_madd( fD, one_over_rsquaredD, zero);
+ magA = vec_rsqrte( rsquaredA );
+ magB = vec_rsqrte( rsquaredB );
+ magC = vec_rsqrte( rsquaredC );
+ magD = vec_rsqrte( rsquaredD );
+ magA = vec_madd( magA, fA, zero );
+ magB = vec_madd( magB, fB, zero );
+ magC = vec_madd( magC, fC, zero );
+ magD = vec_madd( magD, fD, zero );
+ deltax = vec_nmsub( dxa, magA, deltax );
+ deltay = vec_nmsub( dya, magA, deltay );
+ deltaz = vec_nmsub( dza, magA, deltaz );
+
+ deltax = vec_nmsub( dxb, magB, deltax );
+ deltay = vec_nmsub( dyb, magB, deltay );
+ deltaz = vec_nmsub( dzb, magB, deltaz );
+
+ deltax = vec_nmsub( dxc, magC, deltax );
+ deltay = vec_nmsub( dyc, magC, deltay );
+ deltaz = vec_nmsub( dzc, magC, deltaz );
+
+ deltax = vec_nmsub( dxd, magD, deltax );
+ deltay = vec_nmsub( dyd, magD, deltay );
+ deltaz = vec_nmsub( dzd, magD, deltaz );
+ }
+
+
+ for(;j<flurry->numStreams;j++) {
+ vector float ip0, ip1 = (vector float)(0.0), ip2;
+ vector float dx, dy, dz;
+ vector float rsquared, f;
+ vector float one_over_rsquared;
+ vector float biasTemp;
+ vector float mag;
+ vector bool int biasOr;
+
+ ip0 = vec_ld(0, flurry->spark[j]->position);
+ if(((int)(flurry->spark[j]->position) & 0xF)>=8) {
+ ip1 = vec_ld(16, flurry->spark[j]->position);
+ }
+
+ ip0 = vec_perm(ip0, ip1, vec_lvsl(0, flurry->spark[j]->position));
+ ip1 = (vector float) vec_splat((vector unsigned int)ip0, 1);
+ ip2 = (vector float) vec_splat((vector unsigned int)ip0, 2);
+ ip0 = (vector float) vec_splat((vector unsigned int)ip0, 0);
+
+ dx = vec_sub(s->p[i].position[0].v, ip0);
+ dy = vec_sub(s->p[i].position[1].v, ip1);
+ dz = vec_sub(s->p[i].position[2].v, ip2);
+
+ rsquared = vec_madd(dx, dx, zero);
+ rsquared = vec_madd(dy, dy, rsquared);
+ rsquared = vec_madd(dz, dz, rsquared);
+
+ biasOr = vec_cmpeq(jVec, mod.v);
+ biasTemp = vec_add(vec_and(biasOr, biasConst), (vector float)(1.0));
+
+ f = vec_madd(biasTemp, frameRateModifier.v, zero);
+ one_over_rsquared = vec_re(rsquared);
+ f = vec_madd(f, one_over_rsquared, zero);
+
+ mag = vec_rsqrte(rsquared);
+ mag = vec_madd(mag, f, zero);
+
+ deltax = vec_nmsub(dx, mag, deltax);
+ deltay = vec_nmsub(dy, mag, deltay);
+ deltaz = vec_nmsub(dz, mag, deltaz);
+
+ jVec = vec_add(jVec, (vector unsigned int)(1));
+ }
+
+ /* slow this particle down by flurry->drag */
+ deltax = vec_madd(deltax, dragV.v, zero);
+ deltay = vec_madd(deltay, dragV.v, zero);
+ deltaz = vec_madd(deltaz, dragV.v, zero);
+
+ distTemp = vec_madd(deltax, deltax, zero);
+ distTemp = vec_madd(deltay, deltay, distTemp);
+ distTemp = vec_madd(deltaz, deltaz, distTemp);
+
+ deadTemp = (vector unsigned int) vec_cmpge(distTemp, deadConst);
+ deadTemp = vec_and((vector unsigned int)vec_splat_u32(1), deadTemp);
+ s->p[i].dead.v = vec_or(s->p[i].dead.v, deadTemp);
+ if (vec_all_ne(s->p[i].dead.v, (vector unsigned int)(0))) {
+ continue;
+ }
+
+ /* update the position */
+ s->p[i].delta[0].v = deltax;
+ s->p[i].delta[1].v = deltay;
+ s->p[i].delta[2].v = deltaz;
+ for(j=0;j<3;j++) {
+ s->p[i].oldposition[j].v = s->p[i].position[j].v;
+ s->p[i].position[j].v = vec_madd(s->p[i].delta[j].v, deltaTimeV.v, s->p[i].position[j].v);
+ }
+ }
+}
+
+#endif
+#endif /* 0 */
+
+void DrawSmoke_Scalar(global_info_t *global, flurry_info_t *flurry, SmokeV *s, float brightness)
+{
+ int svi = 0;
+ int sci = 0;
+ int sti = 0;
+ int si = 0;
+ float width;
+ float sx,sy;
+ float u0,v0,u1,v1;
+ float w,z;
+ float screenRatio = global->sys_glWidth / 1024.0f;
+ float hslash2 = global->sys_glHeight * 0.5f;
+ float wslash2 = global->sys_glWidth * 0.5f;
+ int i,k;
+
+ width = (streamSize+2.5f*flurry->streamExpansion) * screenRatio;
+
+ for (i=0;i<NUMSMOKEPARTICLES/4;i++)
+ {
+ for (k=0; k<4; k++) {
+ float thisWidth;
+ float oldz;
+
+ if (s->p[i].dead.i[k]) {
+ continue;
+ }
+ thisWidth = (streamSize + (flurry->fTime - s->p[i].time.f[k])*flurry->streamExpansion) * screenRatio;
+ if (thisWidth >= width)
+ {
+ s->p[i].dead.i[k] = 1;
+ continue;
+ }
+ z = s->p[i].position[2].f[k];
+ sx = s->p[i].position[0].f[k] * global->sys_glWidth / z + wslash2;
+ sy = s->p[i].position[1].f[k] * global->sys_glWidth / z + hslash2;
+ oldz = s->p[i].oldposition[2].f[k];
+ if (sx > global->sys_glWidth+50.0f || sx < -50.0f || sy > global->sys_glHeight+50.0f || sy < -50.0f || z < 25.0f || oldz < 25.0f)
+ {
+ continue;
+ }
+
+ w = MAX_(1.0f,thisWidth/z);
+ {
+ float oldx = s->p[i].oldposition[0].f[k];
+ float oldy = s->p[i].oldposition[1].f[k];
+ float oldscreenx = (oldx * global->sys_glWidth / oldz) + wslash2;
+ float oldscreeny = (oldy * global->sys_glWidth / oldz) + hslash2;
+ float dx = (sx-oldscreenx);
+ float dy = (sy-oldscreeny);
+
+ float d = FastDistance2D(dx, dy);
+
+ float sm, os, ow;
+ if (d)
+ {
+ sm = w/d;
+ }
+ else
+ {
+ sm = 0.0f;
+ }
+ ow = MAX_(1.0f,thisWidth/oldz);
+ if (d)
+ {
+ os = ow/d;
+ }
+ else
+ {
+ os = 0.0f;
+ }
+
+ {
+ floatToVector cmv;
+ float cm;
+ float m = 1.0f + sm;
+
+ float dxs = dx*sm;
+ float dys = dy*sm;
+ float dxos = dx*os;
+ float dyos = dy*os;
+ float dxm = dx*m;
+ float dym = dy*m;
+
+ s->p[i].animFrame.i[k]++;
+ if (s->p[i].animFrame.i[k] >= 64)
+ {
+ s->p[i].animFrame.i[k] = 0;
+ }
+
+ u0 = (s->p[i].animFrame.i[k]& 7) * 0.125f;
+ v0 = (s->p[i].animFrame.i[k]>>3) * 0.125f;
+ u1 = u0 + 0.125f;
+ v1 = v0 + 0.125f;
+ cm = (1.375f - thisWidth/width);
+ if (s->p[i].dead.i[k] == 3)
+ {
+ cm *= 0.125f;
+ s->p[i].dead.i[k] = 1;
+ }
+ si++;
+ cm *= brightness;
+ cmv.f[0] = s->p[i].color[0].f[k]*cm;
+ cmv.f[1] = s->p[i].color[1].f[k]*cm;
+ cmv.f[2] = s->p[i].color[2].f[k]*cm;
+ cmv.f[3] = s->p[i].color[3].f[k]*cm;
+
+#if 0
+ /* MDT we can't use vectors in the Scalar routine */
+ s->seraphimColors[sci++].v = cmv.v;
+ s->seraphimColors[sci++].v = cmv.v;
+ s->seraphimColors[sci++].v = cmv.v;
+ s->seraphimColors[sci++].v = cmv.v;
+#else
+ {
+ int ii, jj;
+ for (jj = 0; jj < 4; jj++) {
+ for (ii = 0; ii < 4; ii++) {
+ s->seraphimColors[sci].f[ii] = cmv.f[ii];
+ }
+ sci += 1;
+ }
+ }
+#endif
+
+ s->seraphimTextures[sti++] = u0;
+ s->seraphimTextures[sti++] = v0;
+ s->seraphimTextures[sti++] = u0;
+ s->seraphimTextures[sti++] = v1;
+
+ s->seraphimTextures[sti++] = u1;
+ s->seraphimTextures[sti++] = v1;
+ s->seraphimTextures[sti++] = u1;
+ s->seraphimTextures[sti++] = v0;
+
+ s->seraphimVertices[svi].f[0] = sx+dxm-dys;
+ s->seraphimVertices[svi].f[1] = sy+dym+dxs;
+ s->seraphimVertices[svi].f[2] = sx+dxm+dys;
+ s->seraphimVertices[svi].f[3] = sy+dym-dxs;
+ svi++;
+
+ s->seraphimVertices[svi].f[0] = oldscreenx-dxm+dyos;
+ s->seraphimVertices[svi].f[1] = oldscreeny-dym-dxos;
+ s->seraphimVertices[svi].f[2] = oldscreenx-dxm-dyos;
+ s->seraphimVertices[svi].f[3] = oldscreeny-dym+dxos;
+ svi++;
+ }
+ }
+ }
+ }
+ glColorPointer(4,GL_FLOAT,0,s->seraphimColors);
+ glVertexPointer(2,GL_FLOAT,0,s->seraphimVertices);
+ glTexCoordPointer(2,GL_FLOAT,0,s->seraphimTextures);
+ glDrawArrays(GL_QUADS,0,si*4);
+}
+
+#if 0
+#ifdef __VEC__
+
+void DrawSmoke_Vector(global_info_t *global, flurry_info_t *flurry, SmokeV *s, float brightness)
+{
+ const vector float zero = (vector float)(0.0);
+ int svi = 0;
+ int sci = 0;
+ int sti = 0;
+ int si = 0;
+ floatToVector width;
+ vector float sx,sy;
+ floatToVector u0,v0,u1,v1;
+ vector float one_over_z;
+ vector float w;
+ floatToVector z;
+ float screenRatio = global->sys_glWidth / 1024.0f;
+ float hslash2 = global->sys_glHeight * 0.5f;
+ float wslash2 = global->sys_glWidth * 0.5f;
+ int i,kk;
+ floatToVector briteV, fTimeV, expansionV, screenRatioV, hslash2V, wslash2V, streamSizeV;
+ floatToVector glWidthV;
+ floatToVector cm;
+ vector float cmv[4];
+ vector float svec[4], ovec[4];
+ vector float oldscreenx, oldscreeny;
+ vector float sm;
+ vector float frameAnd7;
+ vector float frameShift3;
+ vector float one_over_width;
+ vector float dx, dy;
+ vector float os;
+ vector unsigned int vSi = vec_splat_u32(0);
+ const vector float eighth = (vector float)(0.125);
+ float glWidth50 = global->sys_glWidth + 50.0f;
+ float glHeight50 = global->sys_glHeight + 50.0f;
+ vector float vGLWidth50, vGLHeight50;
+ unsigned int blitBool;
+
+ vec_dst((int *)(&(s->p[0])), 0x00020200, 2);
+
+ {
+ vector unsigned char permute1 = vec_lvsl( 0, &glWidth50 );
+ vector unsigned char permute2 = vec_lvsl( 0, &glHeight50 );
+ permute1 = (vector unsigned char) vec_splat( (vector unsigned int) permute1, 0 );
+ permute2 = (vector unsigned char) vec_splat( (vector unsigned int) permute2, 0 );
+ vGLWidth50 = vec_lde( 0, &glWidth50 );
+ vGLHeight50 = vec_lde( 0, &glHeight50 );
+ vGLWidth50 = vec_perm( vGLWidth50, vGLWidth50, permute1 );
+ vGLHeight50 = vec_perm( vGLHeight50, vGLHeight50, permute2 );
+ }
+
+ width.f[0] = (streamSize+2.5f*flurry->streamExpansion) * screenRatio;
+ width.v = (vector float) vec_splat((vector unsigned int)width.v, 0);
+
+ briteV.f[0] = brightness;
+ briteV.v = (vector float) vec_splat((vector unsigned int)briteV.v, 0);
+
+ fTimeV.f[0] = (float) flurry->fTime;
+ fTimeV.v = (vector float) vec_splat((vector unsigned int)fTimeV.v, 0);
+
+ expansionV.f[0] = flurry->streamExpansion;
+ expansionV.v = (vector float) vec_splat((vector unsigned int)expansionV.v, 0);
+
+ screenRatioV.f[0] = screenRatio;
+ screenRatioV.v = (vector float) vec_splat((vector unsigned int)screenRatioV.v, 0);
+
+ hslash2V.f[0] = hslash2;
+ hslash2V.v = (vector float) vec_splat((vector unsigned int)hslash2V.v, 0);
+
+ wslash2V.f[0] = wslash2;
+ wslash2V.v = (vector float) vec_splat((vector unsigned int)wslash2V.v, 0);
+
+ streamSizeV.f[0] = streamSize;
+ streamSizeV.v = (vector float) vec_splat((vector unsigned int)streamSizeV.v, 0);
+
+ glWidthV.f[0] = global->sys_glWidth;
+ glWidthV.v = (vector float) vec_splat((vector unsigned int)glWidthV.v, 0);
+
+ for (i=0;i<NUMSMOKEPARTICLES/4;i++) {
+ vector float thisWidth;
+ vector float oldz;
+ vector float oldx, oldy, one_over_oldz;
+ vector float xabs, yabs, mn;
+ vector float d;
+ vector float one_over_d;
+ vector bool int dnz;
+ vector float ow;
+
+ vec_dst((int *)(&(s->p[i+4])), 0x00020200, 2);
+
+ if (vec_all_eq(s->p[i].dead.v, (vector unsigned int)(1))) continue;
+
+ blitBool = 0; /* keep track of particles that actually need to be drawn */
+
+ thisWidth = vec_sub(fTimeV.v, s->p[i].time.v);
+ thisWidth = vec_madd(thisWidth, expansionV.v, streamSizeV.v);
+ thisWidth = vec_madd(thisWidth, screenRatioV.v, zero);
+
+ z.v = s->p[i].position[2].v;
+ one_over_z = vec_re(z.v);
+
+ sx = vec_madd(s->p[i].position[0].v, glWidthV.v, zero);
+ sx = vec_madd(sx, one_over_z, wslash2V.v);
+ sy = vec_madd(s->p[i].position[1].v, glWidthV.v, zero);
+ sy = vec_madd(sy, one_over_z, hslash2V.v);
+
+ oldz = s->p[i].oldposition[2].v;
+
+ w = vec_max((vector float)(1.0), vec_madd(thisWidth, one_over_z, zero));
+
+ oldx = s->p[i].oldposition[0].v;
+ oldy = s->p[i].oldposition[1].v;
+ one_over_oldz = vec_re(oldz);
+ oldscreenx = vec_madd(oldx, glWidthV.v, zero);
+ oldscreenx = vec_madd(oldscreenx, one_over_oldz, wslash2V.v);
+ oldscreeny = vec_madd(oldy, glWidthV.v, zero);
+ oldscreeny = vec_madd(oldscreeny, one_over_oldz, hslash2V.v);
+ dx = vec_sub(sx,oldscreenx);
+ dy = vec_sub(sy,oldscreeny);
+
+ xabs = vec_abs(dx);
+ yabs = vec_abs(dy);
+ mn = vec_min(xabs,yabs);
+ d = vec_add(xabs,yabs);
+ d = vec_madd(mn, (vector float)(-0.6875), d);
+
+ ow = vec_max((vector float)(1.0), vec_madd(thisWidth, one_over_oldz, zero));
+ one_over_d = vec_re(d);
+ dnz = vec_cmpgt(d, zero);
+ sm = vec_madd(w, one_over_d, zero);
+ sm = vec_and(sm, dnz);
+ os = vec_madd(ow, one_over_d, zero);
+ os = vec_and(os, dnz);
+
+ {
+ intToVector tempMask;
+ vector bool int mask = vec_cmpeq( s->p[i].dead.v, vec_splat_u32(1) ); /* -1 where true */
+ vector bool int gtMask = vec_cmpge( thisWidth, width.v ); /* -1 where true */
+ vector bool int glWidth50Test = vec_cmpgt( sx, (vector float)(vGLWidth50) ); /* -1 where true */
+ vector bool int glHeight50Test = vec_cmpgt( sy, (vector float)(vGLHeight50) ); /* -1 where true */
+ vector bool int test50x = vec_cmplt( sx, (vector float) (-50.0) );
+ vector bool int test50y = vec_cmplt( sy, (vector float) (-50.0) );
+ vector bool int testz = vec_cmplt( z.v, (vector float) (25.0) );
+ vector bool int testoldz = vec_cmplt( oldz, (vector float) (25.0) );
+ mask = vec_or( mask, gtMask );
+ s->p[i].dead.v = vec_and( mask, vec_splat_u32( 1 ) );
+ mask = vec_or( mask, glWidth50Test );
+ mask = vec_or( mask, glHeight50Test );
+ mask = vec_or( mask, test50x );
+ mask = vec_or( mask, test50y );
+ mask = vec_or( mask, testz );
+ mask = vec_or( mask, testoldz );
+ tempMask.v = (vector unsigned int)mask;
+
+ s->p[i].animFrame.v = vec_sub( s->p[i].animFrame.v, vec_nor( mask, mask ) );
+ s->p[i].animFrame.v = vec_and( s->p[i].animFrame.v, (vector unsigned int)(63) );
+
+ frameAnd7 = vec_ctf(vec_and(s->p[i].animFrame.v, (vector unsigned int)(7)),0);
+ u0.v = vec_madd(frameAnd7, eighth, zero);
+
+ frameShift3 = vec_ctf(vec_sr(s->p[i].animFrame.v, (vector unsigned int)(3)),0);
+ v0.v = vec_madd(frameAnd7, eighth, zero);
+
+ u1.v = vec_add(u0.v, eighth);
+ v1.v = vec_add(v0.v, eighth);
+
+ one_over_width = vec_re(width.v);
+ cm.v = vec_sel( vec_nmsub(thisWidth, one_over_width, (vector float)(1.375)), cm.v, mask );
+ cm.v = vec_madd(cm.v, briteV.v, zero);
+
+ vSi = vec_sub( vSi, vec_nor( mask, mask ) );
+ {
+ vector unsigned int blitMask = (vector unsigned int) (1, 2, 4, 8);
+ vector unsigned int temp = (vector unsigned int)mask;
+ temp = vec_andc( blitMask, temp );
+ temp = vec_add( temp, vec_sld( temp, temp, 8 ) );
+ temp = vec_add( temp, vec_sld( temp, temp, 4 ) );
+ vec_ste( temp, 0, &blitBool );
+
+ }
+
+ {
+ vector float temp1, temp2, temp3, temp4;
+ vector float result1a, result1b, result2a, result2b, result3a, result3b, result4a, result4b;
+
+ temp1 = vec_mergeh( u0.v, u0.v );
+ temp2 = vec_mergel( u0.v, u0.v );
+ temp3 = vec_mergeh( v0.v, v1.v );
+ temp4 = vec_mergel( v0.v, v1.v );
+
+ result1a = vec_mergeh( temp1, temp3 );
+ result1b = vec_mergel( temp1, temp3 );
+ result2a = vec_mergeh( temp2, temp4 );
+ result2b = vec_mergel( temp2, temp4 );
+
+ temp1 = vec_mergeh( u1.v, u1.v );
+ temp2 = vec_mergel( u1.v, u1.v );
+ temp3 = vec_mergeh( v1.v, v0.v );
+ temp4 = vec_mergel( v1.v, v0.v );
+
+ result3a = vec_mergeh( temp1, temp3 );
+ result3b = vec_mergel( temp1, temp3 );
+ result4a = vec_mergeh( temp2, temp4 );
+ result4b = vec_mergel( temp2, temp4 );
+
+ if( blitBool & 1 )
+ {
+ vec_st( result1a, 0, &s->seraphimTextures[sti] );
+ vec_st( result3a, 16, &s->seraphimTextures[sti]);
+ sti+= 8;
+ }
+ if( blitBool & 2 )
+ {
+ vec_st( result1b, 0, &s->seraphimTextures[sti]);
+ vec_st( result3b, 16, &s->seraphimTextures[sti]);
+ sti+= 8;
+ }
+ if( blitBool & 4 )
+ {
+ vec_st( result2a, 0, &s->seraphimTextures[sti]);
+ vec_st( result4a, 16, &s->seraphimTextures[sti]);
+ sti+= 8;
+ }
+ if( blitBool & 8 )
+ {
+ vec_st( result2b, 0, &s->seraphimTextures[sti]);
+ vec_st( result4b, 16, &s->seraphimTextures[sti]);
+ sti+= 8;
+ }
+ }
+ }
+
+ cmv[0] = vec_madd(s->p[i].color[0].v, cm.v, zero);
+ cmv[1] = vec_madd(s->p[i].color[1].v, cm.v, zero);
+ cmv[2] = vec_madd(s->p[i].color[2].v, cm.v, zero);
+ cmv[3] = vec_madd(s->p[i].color[3].v, cm.v, zero);
+ {
+ vector float vI0, vI1, vI2, vI3;
+
+ vI0 = vec_mergeh ( cmv[0], cmv[2] );
+ vI1 = vec_mergeh ( cmv[1], cmv[3] );
+ vI2 = vec_mergel ( cmv[0], cmv[2] );
+ vI3 = vec_mergel ( cmv[1], cmv[3] );
+
+ cmv[0] = vec_mergeh ( vI0, vI1 );
+ cmv[1] = vec_mergel ( vI0, vI1 );
+ cmv[2] = vec_mergeh ( vI2, vI3 );
+ cmv[3] = vec_mergel ( vI2, vI3 );
+ }
+
+ vec_dst( cmv, 0x0D0100D0, 1 );
+
+ {
+ vector float sxd, syd;
+ vector float sxdm, sxdp, sydm, sydp;
+ vector float oxd, oyd;
+ vector float oxdm, oxdp, oydm, oydp;
+ vector float vI0, vI1, vI2, vI3;
+ vector float dxs, dys;
+ vector float dxos, dyos;
+ vector float dxm, dym;
+ vector float m;
+
+ m = vec_add((vector float)(1.0), sm);
+
+ dxs = vec_madd(dx, sm, zero);
+ dys = vec_madd(dy, sm, zero);
+ dxos = vec_madd(dx, os, zero);
+ dyos = vec_madd(dy, os, zero);
+ dxm = vec_madd(dx, m, zero);
+ dym = vec_madd(dy, m, zero);
+
+ sxd = vec_add(sx, dxm);
+ sxdm = vec_sub(sxd, dys);
+ sxdp = vec_add(sxd, dys);
+
+ syd = vec_add(sy, dym);
+ sydm = vec_sub(syd, dxs);
+ sydp = vec_add(syd, dxs);
+
+ oxd = vec_sub(oldscreenx, dxm);
+ oxdm = vec_sub(oxd, dyos);
+ oxdp = vec_add(oxd, dyos);
+
+ oyd = vec_sub(oldscreeny, dym);
+ oydm = vec_sub(oyd, dxos);
+ oydp = vec_add(oyd, dxos);
+
+ vI0 = vec_mergeh ( sxdm, sxdp );
+ vI1 = vec_mergeh ( sydp, sydm );
+ vI2 = vec_mergel ( sxdm, sxdp );
+ vI3 = vec_mergel ( sydp, sydm );
+
+ svec[0] = vec_mergeh ( vI0, vI1 );
+ svec[1] = vec_mergel ( vI0, vI1 );
+ svec[2] = vec_mergeh ( vI2, vI3 );
+ svec[3] = vec_mergel ( vI2, vI3 );
+
+ vI0 = vec_mergeh ( oxdp, oxdm );
+ vI1 = vec_mergeh ( oydm, oydp );
+ vI2 = vec_mergel ( oxdp, oxdm );
+ vI3 = vec_mergel ( oydm, oydp );
+
+ ovec[0] = vec_mergeh ( vI0, vI1 );
+ ovec[1] = vec_mergel ( vI0, vI1 );
+ ovec[2] = vec_mergeh ( vI2, vI3 );
+ ovec[3] = vec_mergel ( vI2, vI3 );
+ }
+
+ {
+ int offset0 = (sci + 0) * sizeof( vector float );
+ int offset1 = (sci + 1) * sizeof( vector float );
+ int offset2 = (sci + 2) * sizeof( vector float );
+ int offset3 = (sci + 3) * sizeof( vector float );
+ int offset4 = (svi + 0) * sizeof( vector float );
+ int offset5 = (svi + 1) * sizeof( vector float );
+ vector float *colors = (vector float *)s->seraphimColors;
+ vector float *vertices = (vector float *)s->seraphimVertices;
+ for (kk=0; kk<4; kk++) {
+ if (blitBool>>kk & 1) {
+ vector float vcmv = cmv[kk];
+ vector float vsvec = svec[kk];
+ vector float vovec = ovec[kk];
+
+ vec_st( vcmv, offset0, colors );
+ vec_st( vcmv, offset1, colors );
+ vec_st( vcmv, offset2, colors );
+ vec_st( vcmv, offset3, colors );
+ vec_st( vsvec, offset4, vertices );
+ vec_st( vovec, offset5, vertices );
+ colors += 4;
+ vertices += 2;
+ sci += 4;
+ svi += 2;
+ }
+ }
+ }
+ }
+ vSi = vec_add( vSi, vec_sld( vSi, vSi, 8 ) );
+ vSi = vec_add( vSi, vec_sld( vSi, vSi, 4 ) );
+ vec_ste( (vector signed int) vSi, 0, &si );
+
+ glColorPointer(4,GL_FLOAT,0,s->seraphimColors);
+ glVertexPointer(2,GL_FLOAT,0,s->seraphimVertices);
+ glTexCoordPointer(2,GL_FLOAT,0,s->seraphimTextures);
+ glDrawArrays(GL_QUADS,0,si*4);
+}
+
+#endif
+#endif /* 0 */
diff --git a/hacks/glx/flurry-spark.c b/hacks/glx/flurry-spark.c
new file mode 100644
index 0000000..5b58b56
--- /dev/null
+++ b/hacks/glx/flurry-spark.c
@@ -0,0 +1,285 @@
+/*
+
+Copyright (c) 2002, Calum Robinson
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/* Spark.cpp: implementation of the Spark class. */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "flurry.h"
+
+void InitSpark(Spark *s)
+{
+ int i;
+ for (i=0;i<3;i++)
+ {
+ s->position[i] = RandFlt(-100.0, 100.0);
+ }
+}
+
+void DrawSpark(global_info_t *global, flurry_info_t *flurry, Spark *s)
+{
+ const float black[4] = {0.0f,0.0f,0.0f,1.0f};
+ float width,sx,sy;
+ float a;
+ float c = 0.0625f;
+ float screenx;
+ float screeny;
+ float w,z, scale;
+ int k;
+ width = 60000.0f * global->sys_glWidth / 1024.0f;
+
+ z = s->position[2];
+ sx = s->position[0] * global->sys_glWidth / z + global->sys_glWidth * 0.5f;
+ sy = s->position[1] * global->sys_glWidth / z + global->sys_glHeight * 0.5f;
+ w = width*4.0f / z;
+
+ screenx = sx;
+ screeny = sy;
+
+ glPushMatrix();
+ glTranslatef(screenx,screeny,0.0f);
+ scale = w/50.0f;
+ glScalef(scale,scale,0.0f);
+ for (k=0;k<12;k++)
+ {
+ a = ((float) (random() % 3600)) / 10.0f;
+ glRotatef(a,0.0f,0.0f,1.0f);
+ glBegin(GL_QUAD_STRIP);
+ glColor4fv(black);
+ glVertex2f(-3.0f,0.0f);
+ a = 2.0f + (float) (random() & 255) * c;
+ glVertex2f(-3.0f,a);
+ glColor4fv(s->color);
+ glVertex2f(0.0f,0.0f);
+ glColor4fv(black);
+ glVertex2f(0.0f,a);
+ glVertex2f(3.0f,0.0f);
+ glVertex2f(3.0f,a);
+ glEnd();
+ }
+ glPopMatrix();
+}
+
+#define BIGMYSTERY 1800.0
+#define MAXANGLES 16384
+
+void UpdateSparkColour(global_info_t *global, flurry_info_t *flurry, Spark *s)
+{
+ const float rotationsPerSecond = (float) (2.0*PI*fieldSpeed/MAXANGLES);
+ double thisPointInRadians;
+ double thisAngle = flurry->fTime*rotationsPerSecond;
+ float cf;
+ float cycleTime = 20.0f;
+ float colorRot;
+ float redPhaseShift;
+ float greenPhaseShift;
+ float bluePhaseShift;
+ float baseRed;
+ float baseGreen;
+ float baseBlue;
+ float colorTime;
+
+ if (flurry->currentColorMode == rainbowColorMode)
+ {
+ cycleTime = 1.5f;
+ }
+ else if (flurry->currentColorMode == tiedyeColorMode)
+ {
+ cycleTime = 4.5f;
+ }
+ else if (flurry->currentColorMode == cyclicColorMode)
+ {
+ cycleTime = 20.0f;
+ }
+ else if (flurry->currentColorMode == slowCyclicColorMode)
+ {
+ cycleTime = 120.0f;
+ }
+ colorRot = (float) (2.0*PI/cycleTime);
+ redPhaseShift = 0.0f; /* cycleTime * 0.0f / 3.0f */
+ greenPhaseShift = cycleTime / 3.0f;
+ bluePhaseShift = cycleTime * 2.0f / 3.0f ;
+ colorTime = flurry->fTime;
+ if (flurry->currentColorMode == whiteColorMode)
+ {
+ baseRed = 0.1875f;
+ baseGreen = 0.1875f;
+ baseBlue = 0.1875f;
+ }
+ else if (flurry->currentColorMode == multiColorMode)
+ {
+ baseRed = 0.0625f;
+ baseGreen = 0.0625f;
+ baseBlue = 0.0625f;
+ }
+ else if (flurry->currentColorMode == darkColorMode)
+ {
+ baseRed = 0.0f;
+ baseGreen = 0.0f;
+ baseBlue = 0.0f;
+ }
+ else
+ {
+ if (flurry->currentColorMode < slowCyclicColorMode)
+ {
+ colorTime = (flurry->currentColorMode / 6.0f) * cycleTime;
+ }
+ else
+ {
+ colorTime = flurry->fTime + flurry->flurryRandomSeed;
+ }
+ baseRed = 0.109375f * ((float) cos((colorTime+redPhaseShift)*colorRot)+1.0f);
+ baseGreen = 0.109375f * ((float) cos((colorTime+greenPhaseShift)*colorRot)+1.0f);
+ baseBlue = 0.109375f * ((float) cos((colorTime+bluePhaseShift)*colorRot)+1.0f);
+ }
+
+ cf = ((float) (cos(7.0*((flurry->fTime)*rotationsPerSecond))+cos(3.0*((flurry->fTime)*rotationsPerSecond))+cos(13.0*((flurry->fTime)*rotationsPerSecond))));
+ cf /= 6.0f;
+ cf += 2.0f;
+ thisPointInRadians = 2.0 * PI * (double) s->mystery / (double) BIGMYSTERY;
+
+ s->color[0] = baseRed + 0.0625f * (0.5f + (float) cos((15.0 * (thisPointInRadians + 3.0*thisAngle))) + (float) sin((7.0 * (thisPointInRadians + thisAngle))));
+ s->color[1] = baseGreen + 0.0625f * (0.5f + (float) sin(((thisPointInRadians) + thisAngle)));
+ s->color[2] = baseBlue + 0.0625f * (0.5f + (float) cos((37.0 * (thisPointInRadians + thisAngle))));
+}
+
+void UpdateSpark(global_info_t *global, flurry_info_t *flurry, Spark *s)
+{
+ const float rotationsPerSecond = (float) (2.0*PI*fieldSpeed/MAXANGLES);
+ double thisPointInRadians;
+ double thisAngle = flurry->fTime*rotationsPerSecond;
+ float cf;
+ int i;
+ double tmpX1,tmpY1,tmpZ1;
+ double tmpX2,tmpY2,tmpZ2;
+ double tmpX3,tmpY3,tmpZ3;
+ double tmpX4,tmpY4,tmpZ4;
+ double rotation;
+ double cr;
+ double sr;
+ float cycleTime = 20.0f;
+ float colorRot;
+ float redPhaseShift;
+ float greenPhaseShift;
+ float bluePhaseShift;
+ float baseRed;
+ float baseGreen;
+ float baseBlue;
+ float colorTime;
+
+ float old[3];
+
+ if (flurry->currentColorMode == rainbowColorMode) {
+ cycleTime = 1.5f;
+ } else if (flurry->currentColorMode == tiedyeColorMode) {
+ cycleTime = 4.5f;
+ } else if (flurry->currentColorMode == cyclicColorMode) {
+ cycleTime = 20.0f;
+ } else if (flurry->currentColorMode == slowCyclicColorMode) {
+ cycleTime = 120.0f;
+ }
+ colorRot = (float) (2.0*PI/cycleTime);
+ redPhaseShift = 0.0f; /* cycleTime * 0.0f / 3.0f */
+ greenPhaseShift = cycleTime / 3.0f;
+ bluePhaseShift = cycleTime * 2.0f / 3.0f ;
+ colorTime = flurry->fTime;
+ if (flurry->currentColorMode == whiteColorMode) {
+ baseRed = 0.1875f;
+ baseGreen = 0.1875f;
+ baseBlue = 0.1875f;
+ } else if (flurry->currentColorMode == multiColorMode) {
+ baseRed = 0.0625f;
+ baseGreen = 0.0625f;
+ baseBlue = 0.0625f;
+ } else if (flurry->currentColorMode == darkColorMode) {
+ baseRed = 0.0f;
+ baseGreen = 0.0f;
+ baseBlue = 0.0f;
+ } else {
+ if(flurry->currentColorMode < slowCyclicColorMode) {
+ colorTime = (flurry->currentColorMode / 6.0f) * cycleTime;
+ } else {
+ colorTime = flurry->fTime + flurry->flurryRandomSeed;
+ }
+ baseRed = 0.109375f * ((float) cos((colorTime+redPhaseShift)*colorRot)+1.0f);
+ baseGreen = 0.109375f * ((float) cos((colorTime+greenPhaseShift)*colorRot)+1.0f);
+ baseBlue = 0.109375f * ((float) cos((colorTime+bluePhaseShift)*colorRot)+1.0f);
+ }
+
+ for (i=0;i<3;i++) {
+ old[i] = s->position[i];
+ }
+
+ cf = ((float) (cos(7.0*((flurry->fTime)*rotationsPerSecond))+cos(3.0*((flurry->fTime)*rotationsPerSecond))+cos(13.0*((flurry->fTime)*rotationsPerSecond))));
+ cf /= 6.0f;
+ cf += 2.0f;
+ thisPointInRadians = 2.0 * PI * (double) s->mystery / (double) BIGMYSTERY;
+
+ s->color[0] = baseRed + 0.0625f * (0.5f + (float) cos((15.0 * (thisPointInRadians + 3.0*thisAngle))) + (float) sin((7.0 * (thisPointInRadians + thisAngle))));
+ s->color[1] = baseGreen + 0.0625f * (0.5f + (float) sin(((thisPointInRadians) + thisAngle)));
+ s->color[2] = baseBlue + 0.0625f * (0.5f + (float) cos((37.0 * (thisPointInRadians + thisAngle))));
+ s->position[0] = fieldRange * cf * (float) cos(11.0 * (thisPointInRadians + (3.0*thisAngle)));
+ s->position[1] = fieldRange * cf * (float) sin(12.0 * (thisPointInRadians + (4.0*thisAngle)));
+ s->position[2] = fieldRange * (float) cos((23.0 * (thisPointInRadians + (12.0*thisAngle))));
+
+ rotation = thisAngle*0.501 + 5.01 * (double) s->mystery / (double) BIGMYSTERY;
+ cr = cos(rotation);
+ sr = sin(rotation);
+ tmpX1 = s->position[0] * cr - s->position[1] * sr;
+ tmpY1 = s->position[1] * cr + s->position[0] * sr;
+ tmpZ1 = s->position[2];
+
+ tmpX2 = tmpX1 * cr - tmpZ1 * sr;
+ tmpY2 = tmpY1;
+ tmpZ2 = tmpZ1 * cr + tmpX1 * sr;
+
+ tmpX3 = tmpX2;
+ tmpY3 = tmpY2 * cr - tmpZ2 * sr;
+ tmpZ3 = tmpZ2 * cr + tmpY2 * sr + seraphDistance;
+
+ rotation = thisAngle*2.501 + 85.01 * (double) s->mystery / (double) BIGMYSTERY;
+ cr = cos(rotation);
+ sr = sin(rotation);
+ tmpX4 = tmpX3 * cr - tmpY3 * sr;
+ tmpY4 = tmpY3 * cr + tmpX3 * sr;
+ tmpZ4 = tmpZ3;
+
+ s->position[0] = (float) tmpX4 + RandBell(5.0f*fieldCoherence);
+ s->position[1] = (float) tmpY4 + RandBell(5.0f*fieldCoherence);
+ s->position[2] = (float) tmpZ4 + RandBell(5.0f*fieldCoherence);
+
+ for (i=0;i<3;i++) {
+ s->delta[i] = (s->position[i] - old[i])/flurry->fDeltaTime;
+ }
+}
diff --git a/hacks/glx/flurry-star.c b/hacks/glx/flurry-star.c
new file mode 100644
index 0000000..8d9cc41
--- /dev/null
+++ b/hacks/glx/flurry-star.c
@@ -0,0 +1,106 @@
+/*
+
+Copyright (c) 2002, Calum Robinson
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/* Star.c: implementation of the Star class. */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "flurry.h"
+
+/* Construction/Destruction */
+
+void InitStar(Star *s)
+{
+ int i;
+ for (i=0;i<3;i++) {
+ s->position[i] = RandFlt(-10000.0, 10000.0);
+ }
+ s->rotSpeed = RandFlt(0.4, 0.9);
+ s->mystery = RandFlt(0.0, 10.0);
+}
+
+#define BIGMYSTERY 1800.0
+#define MAXANGLES 16384
+
+void UpdateStar(global_info_t *global, flurry_info_t *flurry, Star *s)
+{
+ float rotationsPerSecond = (float) (2.0*PI*12.0/MAXANGLES) * s->rotSpeed /* speed control */;
+ double thisPointInRadians;
+ double thisAngle = flurry->fTime*rotationsPerSecond;
+ float cf;
+ double tmpX1,tmpY1,tmpZ1;
+ double tmpX2,tmpY2,tmpZ2;
+ double tmpX3,tmpY3,tmpZ3;
+ double tmpX4,tmpY4,tmpZ4;
+ double rotation;
+ double cr;
+ double sr;
+
+ s->ate = 0;
+
+ cf = ((float) (cos(7.0*((flurry->fTime)*rotationsPerSecond))+cos(3.0*((flurry->fTime)*rotationsPerSecond))+cos(13.0*((flurry->fTime)*rotationsPerSecond))));
+ cf /= 6.0f;
+ cf += 0.75f;
+ thisPointInRadians = 2.0 * PI * (double) s->mystery / (double) BIGMYSTERY;
+
+ s->position[0] = 250.0f * cf * (float) cos(11.0 * (thisPointInRadians + (3.0*thisAngle)));
+ s->position[1] = 250.0f * cf * (float) sin(12.0 * (thisPointInRadians + (4.0*thisAngle)));
+ s->position[2] = 250.0f * (float) cos((23.0 * (thisPointInRadians + (12.0*thisAngle))));
+
+ rotation = thisAngle*0.501 + 5.01 * (double) s->mystery / (double) BIGMYSTERY;
+ cr = cos(rotation);
+ sr = sin(rotation);
+ tmpX1 = s->position[0] * cr - s->position[1] * sr;
+ tmpY1 = s->position[1] * cr + s->position[0] * sr;
+ tmpZ1 = s->position[2];
+
+ tmpX2 = tmpX1 * cr - tmpZ1 * sr;
+ tmpY2 = tmpY1;
+ tmpZ2 = tmpZ1 * cr + tmpX1 * sr;
+
+ tmpX3 = tmpX2;
+ tmpY3 = tmpY2 * cr - tmpZ2 * sr;
+ tmpZ3 = tmpZ2 * cr + tmpY2 * sr + seraphDistance;
+
+ rotation = thisAngle*2.501 + 85.01 * (double) s->mystery / (double) BIGMYSTERY;
+ cr = cos(rotation);
+ sr = sin(rotation);
+ tmpX4 = tmpX3 * cr - tmpY3 * sr;
+ tmpY4 = tmpY3 * cr + tmpX3 * sr;
+ tmpZ4 = tmpZ3;
+
+ s->position[0] = (float) tmpX4;
+ s->position[1] = (float) tmpY4;
+ s->position[2] = (float) tmpZ4;
+}
diff --git a/hacks/glx/flurry-texture.c b/hacks/glx/flurry-texture.c
new file mode 100644
index 0000000..c787f59
--- /dev/null
+++ b/hacks/glx/flurry-texture.c
@@ -0,0 +1,224 @@
+/*
+
+Copyright (c) 2002, Calum Robinson
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/*
+ * Texture.c
+ * AppleFlurry
+ *
+ * Created by calumr on Sat Jul 07 2001.
+ * Copyright (c) 2001 __CompanyName__. All rights reserved.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "flurry.h"
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+#include <stdlib.h>
+#include <math.h>
+
+static GLubyte smallTextureArray[32][32];
+static GLubyte bigTextureArray[256][256][2];
+GLuint theTexture = 0;
+
+/* simple smoothing routine */
+static void SmoothTexture(void)
+{
+ GLubyte filter[32][32];
+ int i,j;
+ float t;
+ for (i=1;i<31;i++)
+ {
+ for (j=1;j<31;j++)
+ {
+ t = (float) smallTextureArray[i][j]*4;
+ t += (float) smallTextureArray[i-1][j];
+ t += (float) smallTextureArray[i+1][j];
+ t += (float) smallTextureArray[i][j-1];
+ t += (float) smallTextureArray[i][j+1];
+ t /= 8.0f;
+ filter[i][j] = (GLubyte) t;
+ }
+ }
+ for (i=1;i<31;i++)
+ {
+ for (j=1;j<31;j++)
+ {
+ smallTextureArray[i][j] = filter[i][j];
+ }
+ }
+}
+
+/* add some randomness to texture data */
+static void SpeckleTexture(void)
+{
+ int i,j;
+ int speck;
+ float t;
+ for (i=2;i<30;i++)
+ {
+ for (j=2;j<30;j++)
+ {
+ speck = 1;
+ while (speck <= 32 && random() % 2)
+ {
+ t = (float) MIN_(255,smallTextureArray[i][j]+speck);
+ smallTextureArray[i][j] = (GLubyte) t;
+ speck+=speck;
+ }
+ speck = 1;
+ while (speck <= 32 && random() % 2)
+ {
+ t = (float) MAX_(0,smallTextureArray[i][j]-speck);
+ smallTextureArray[i][j] = (GLubyte) t;
+ speck+=speck;
+ }
+ }
+ }
+}
+
+static void MakeSmallTexture(void)
+{
+ static int firstTime = 1;
+ int i,j;
+ float r,t;
+ if (firstTime)
+ {
+ firstTime = 0;
+ for (i=0;i<32;i++)
+ {
+ for (j=0;j<32;j++)
+ {
+ r = (float) sqrt((i-15.5)*(i-15.5)+(j-15.5)*(j-15.5));
+ if (r > 15.0f)
+ {
+ smallTextureArray[i][j] = 0;
+ }
+ else
+ {
+ t = 255.0f * (float) cos(r*M_PI/31.0);
+ smallTextureArray[i][j] = (GLubyte) t;
+ }
+ }
+ }
+ }
+ else
+ {
+ for (i=0;i<32;i++)
+ {
+ for (j=0;j<32;j++)
+ {
+ r = (float) sqrt((i-15.5)*(i-15.5)+(j-15.5)*(j-15.5));
+ if (r > 15.0f)
+ {
+ t = 0.0f;
+ }
+ else
+ {
+ t = 255.0f * (float) cos(r*M_PI/31.0);
+ }
+ smallTextureArray[i][j] = (GLubyte) MIN_(255,(t+smallTextureArray[i][j]+smallTextureArray[i][j])/3);
+ }
+ }
+ }
+ SpeckleTexture();
+ SmoothTexture();
+ SmoothTexture();
+}
+
+static void CopySmallTextureToBigTexture(int k, int l)
+{
+ int i,j;
+ for (i=0;i<32;i++)
+ {
+ for (j=0;j<32;j++)
+ {
+ bigTextureArray[i+k][j+l][0] = smallTextureArray[i][j];
+ bigTextureArray[i+k][j+l][1] = smallTextureArray[i][j];
+ }
+ }
+}
+
+static void AverageLastAndFirstTextures(void)
+{
+ int i,j;
+ int t;
+ for (i=0;i<32;i++)
+ {
+ for (j=0;j<32;j++)
+ {
+ t = (smallTextureArray[i][j] + bigTextureArray[i][j][0]) / 2;
+ smallTextureArray[i][j] = (GLubyte) MIN_(255,t);
+ }
+ }
+}
+
+void MakeTexture()
+{
+ int i,j;
+ for (i=0;i<8;i++)
+ {
+ for (j=0;j<8;j++)
+ {
+ if (i==7 && j==7)
+ {
+ AverageLastAndFirstTextures();
+ }
+ else
+ {
+ MakeSmallTexture();
+ }
+ CopySmallTextureToBigTexture(i*32,j*32);
+ }
+ }
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT,1);
+
+ glGenTextures(1, &theTexture);
+ glBindTexture(GL_TEXTURE_2D, theTexture);
+
+ /* Set the tiling mode (this is generally always GL_REPEAT). */
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ /* Set the filtering. */
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
+
+ gluBuild2DMipmaps(GL_TEXTURE_2D, 2, 256, 256, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, bigTextureArray);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+}
diff --git a/hacks/glx/flurry.c b/hacks/glx/flurry.c
new file mode 100644
index 0000000..c9008a9
--- /dev/null
+++ b/hacks/glx/flurry.c
@@ -0,0 +1,549 @@
+/* -*- Mode: C; tab-width: 4 c-basic-offset: 4 indent-tabs-mode: t -*- */
+/*
+ * vim: ts=8 sw=4 noet
+ */
+
+/*
+
+Copyright (c) 2002, Calum Robinson
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/* flurry */
+
+#if 0
+static const char sccsid[] = "@(#)flurry.c 4.07 97/11/24 xlockmore";
+#endif
+
+#define DEF_PRESET "random"
+#define DEF_BRIGHTNESS "8"
+
+# define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n"
+
+# define release_flurry 0
+# define flurry_handle_event xlockmore_no_events
+# include "xlockmore.h" /* from the xscreensaver distribution */
+
+#ifdef USE_GL
+
+static char *preset_str;
+
+static XrmOptionDescRec opts[] = {
+ { "-preset", ".preset", XrmoptionSepArg, 0 }
+};
+
+static argtype vars[] = {
+ {&preset_str, "preset", "Preset", DEF_PRESET, t_String},
+};
+
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+ENTRYPOINT ModeSpecOpt flurry_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct flurry_description = {
+ "flurry",
+ "init_flurry",
+ "draw_flurry",
+ NULL,
+ "draw_flurry",
+ "init_flurry",
+ "free_flurry",
+ &flurry_opts,
+ 1000, 1, 2, 1, 4, 1.0,
+ "",
+ "Flurry",
+ 0,
+ NULL
+};
+
+#endif
+
+#include "flurry.h"
+
+global_info_t *flurry_info = NULL;
+
+static
+double currentTime(void) {
+ struct timeval tv;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&tv, &tzp);
+# else
+ gettimeofday(&tv);
+# endif
+
+ return (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;
+}
+
+double TimeInSecondsSinceStart (const global_info_t *global) {
+ return currentTime() - global->gTimeCounter;
+}
+
+#if 0
+#ifdef __ppc__
+static int IsAltiVecAvailable(void)
+{
+ return 0;
+}
+#endif
+#endif
+
+
+static
+void delete_flurry_info(flurry_info_t *flurry)
+{
+ int i;
+
+ free(flurry->s);
+ free(flurry->star);
+ for (i=0;i<MAX_SPARKS;i++)
+ {
+ free(flurry->spark[i]);
+ }
+ /* free(flurry); */
+}
+
+static
+flurry_info_t *new_flurry_info(global_info_t *global, int streams, ColorModes colour, float thickness, float speed, double bf)
+{
+ int i,k;
+ flurry_info_t *flurry = (flurry_info_t *)malloc(sizeof(flurry_info_t));
+
+ if (!flurry) return NULL;
+
+ flurry->flurryRandomSeed = RandFlt(0.0, 300.0);
+
+ flurry->fOldTime = 0;
+ flurry->dframe = 0;
+ flurry->fTime = TimeInSecondsSinceStart(global) + flurry->flurryRandomSeed;
+ flurry->fDeltaTime = flurry->fTime - flurry->fOldTime;
+
+ flurry->numStreams = streams;
+ flurry->streamExpansion = thickness;
+ flurry->currentColorMode = colour;
+ flurry->briteFactor = bf;
+
+ flurry->s = malloc(sizeof(SmokeV));
+ InitSmoke(flurry->s);
+
+ flurry->star = malloc(sizeof(Star));
+ InitStar(flurry->star);
+ flurry->star->rotSpeed = speed;
+
+ for (i = 0;i < MAX_SPARKS; i++)
+ {
+ flurry->spark[i] = malloc(sizeof(Spark));
+ InitSpark(flurry->spark[i]);
+ flurry->spark[i]->mystery = 1800 * (i + 1) / 13; /* 100 * (i + 1) / (flurry->numStreams + 1); */
+ UpdateSpark(global, flurry, flurry->spark[i]);
+ }
+
+ for (i=0;i<NUMSMOKEPARTICLES/4;i++) {
+ for(k=0;k<4;k++) {
+ flurry->s->p[i].dead.i[k] = 1;
+ }
+ }
+
+ flurry->next = NULL;
+
+ return flurry;
+}
+
+static
+void GLSetupRC(global_info_t *global)
+{
+ /* setup the defaults for OpenGL */
+ glDisable(GL_DEPTH_TEST);
+ glAlphaFunc(GL_GREATER,0.0f);
+ glEnable(GL_ALPHA_TEST);
+ glShadeModel(GL_FLAT);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_CULL_FACE);
+ glEnable(GL_BLEND);
+
+ glViewport(0,0,(int) global->sys_glWidth,(int) global->sys_glHeight);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(0,global->sys_glWidth,0,global->sys_glHeight,-1,1);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glEnableClientState(GL_COLOR_ARRAY);
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+
+#if 0
+#ifdef __ppc__
+ global->optMode = OPT_MODE_SCALAR_FRSQRTE;
+
+#ifdef __VEC__
+ if (IsAltiVecAvailable()) global->optMode = OPT_MODE_VECTOR_UNROLLED;
+#endif
+
+#else
+ global->optMode = OPT_MODE_SCALAR_BASE;
+#endif
+#endif /* 0 */
+}
+
+static
+void GLRenderScene(global_info_t *global, flurry_info_t *flurry, double b)
+{
+ int i;
+
+ flurry->dframe++;
+
+ flurry->fOldTime = flurry->fTime;
+ flurry->fTime = TimeInSecondsSinceStart(global) + flurry->flurryRandomSeed;
+ flurry->fDeltaTime = flurry->fTime - flurry->fOldTime;
+
+ flurry->drag = (float) pow(0.9965,flurry->fDeltaTime*85.0);
+
+ UpdateStar(global, flurry, flurry->star);
+
+#ifdef DRAW_SPARKS
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+#endif
+
+ for (i=0;i<flurry->numStreams;i++) {
+ flurry->spark[i]->color[0]=1.0;
+ flurry->spark[i]->color[1]=1.0;
+ flurry->spark[i]->color[2]=1.0;
+ flurry->spark[i]->color[2]=1.0;
+ UpdateSpark(global, flurry, flurry->spark[i]);
+#ifdef DRAW_SPARKS
+ DrawSpark(global, flurry, flurry->spark[i]);
+#endif
+ }
+
+ switch(global->optMode) {
+ case OPT_MODE_SCALAR_BASE:
+ UpdateSmoke_ScalarBase(global, flurry, flurry->s);
+ break;
+#if 0
+#ifdef __ppc__
+ case OPT_MODE_SCALAR_FRSQRTE:
+ UpdateSmoke_ScalarFrsqrte(global, flurry, flurry->s);
+ break;
+#endif
+#ifdef __VEC__
+ case OPT_MODE_VECTOR_SIMPLE:
+ UpdateSmoke_VectorBase(global, flurry, flurry->s);
+ break;
+ case OPT_MODE_VECTOR_UNROLLED:
+ UpdateSmoke_VectorUnrolled(global, flurry, flurry->s);
+ break;
+#endif
+#endif /* 0 */
+
+ default:
+ break;
+ }
+
+ /* glDisable(GL_BLEND); */
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ glEnable(GL_TEXTURE_2D);
+
+ switch(global->optMode) {
+ case OPT_MODE_SCALAR_BASE:
+#if 0
+#ifdef __ppc__
+ case OPT_MODE_SCALAR_FRSQRTE:
+#endif
+#endif /* 0 */
+ DrawSmoke_Scalar(global, flurry, flurry->s, b);
+ break;
+#if 0
+#ifdef __VEC__
+ case OPT_MODE_VECTOR_SIMPLE:
+ case OPT_MODE_VECTOR_UNROLLED:
+ DrawSmoke_Vector(global, flurry, flurry->s, b);
+ break;
+#endif
+#endif /* 0 */
+ default:
+ break;
+ }
+
+ glDisable(GL_TEXTURE_2D);
+}
+
+static
+void GLResize(global_info_t *global, float w, float h)
+{
+ global->sys_glWidth = w;
+ global->sys_glHeight = h;
+}
+
+/* new window size or exposure */
+ENTRYPOINT void reshape_flurry(ModeInfo *mi, int width, int height)
+{
+ global_info_t *global = flurry_info + MI_SCREEN(mi);
+
+ glXMakeCurrent(MI_DISPLAY(mi), global->window, *(global->glx_context));
+
+ glViewport(0.0, 0.0, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(0, width, 0, height,-1,1);
+ glMatrixMode(GL_MODELVIEW);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glFlush();
+ GLResize(global, (float)width, (float)height);
+}
+
+ENTRYPOINT void
+init_flurry(ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+ int i;
+ global_info_t *global;
+ enum {
+ PRESET_INSANE = -1,
+ PRESET_WATER = 0,
+ PRESET_FIRE,
+ PRESET_PSYCHEDELIC,
+ PRESET_RGB,
+ PRESET_BINARY,
+ PRESET_CLASSIC,
+ PRESET_MAX
+ } preset_num;
+
+ MI_INIT (mi, flurry_info);
+
+ global = &flurry_info[screen];
+
+ global->gTimeCounter = currentTime();
+
+ global->window = MI_WINDOW(mi);
+
+ global->flurry = NULL;
+
+ if (!preset_str || !*preset_str) preset_str = DEF_PRESET;
+ if (!strcmp(preset_str, "random")) {
+ preset_num = random() % PRESET_MAX;
+ } else if (!strcmp(preset_str, "water")) {
+ preset_num = PRESET_WATER;
+ } else if (!strcmp(preset_str, "fire")) {
+ preset_num = PRESET_FIRE;
+ } else if (!strcmp(preset_str, "psychedelic")) {
+ preset_num = PRESET_PSYCHEDELIC;
+ } else if (!strcmp(preset_str, "rgb")) {
+ preset_num = PRESET_RGB;
+ } else if (!strcmp(preset_str, "binary")) {
+ preset_num = PRESET_BINARY;
+ } else if (!strcmp(preset_str, "classic")) {
+ preset_num = PRESET_CLASSIC;
+ } else if (!strcmp(preset_str, "insane")) {
+ preset_num = PRESET_INSANE;
+ } else {
+ fprintf(stderr, "%s: unknown preset %s\n", progname, preset_str);
+ exit(1);
+ }
+
+ switch (preset_num) {
+ case PRESET_WATER: {
+ for (i = 0; i < 9; i++) {
+ flurry_info_t *flurry;
+
+ flurry = new_flurry_info(global, 1, blueColorMode, 100.0, 2.0, 2.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+ }
+ break;
+ }
+ case PRESET_FIRE: {
+ flurry_info_t *flurry;
+
+ flurry = new_flurry_info(global, 12, slowCyclicColorMode, 10000.0, 0.2, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+ break;
+ }
+ case PRESET_PSYCHEDELIC: {
+ flurry_info_t *flurry;
+
+ flurry = new_flurry_info(global, 10, rainbowColorMode, 200.0, 2.0, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+ break;
+ }
+ case PRESET_RGB: {
+ flurry_info_t *flurry;
+
+ flurry = new_flurry_info(global, 3, redColorMode, 100.0, 0.8, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+
+ flurry = new_flurry_info(global, 3, greenColorMode, 100.0, 0.8, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+
+ flurry = new_flurry_info(global, 3, blueColorMode, 100.0, 0.8, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+ break;
+ }
+ case PRESET_BINARY: {
+ flurry_info_t *flurry;
+
+ flurry = new_flurry_info(global, 16, tiedyeColorMode, 1000.0, 0.5, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+
+ flurry = new_flurry_info(global, 16, tiedyeColorMode, 1000.0, 1.5, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+ break;
+ }
+ case PRESET_CLASSIC: {
+ flurry_info_t *flurry;
+
+ flurry = new_flurry_info(global, 5, tiedyeColorMode, 10000.0, 1.0, 1.0);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+ break;
+ }
+ case PRESET_INSANE: {
+ flurry_info_t *flurry;
+
+ flurry = new_flurry_info(global, 64, tiedyeColorMode, 1000.0, 0.5, 0.5);
+ flurry->next = global->flurry;
+ global->flurry = flurry;
+
+ break;
+ }
+ default: {
+ fprintf(stderr, "%s: unknown preset %s\n", progname, preset_str);
+ exit(1);
+ }
+ }
+
+ if ((global->glx_context = init_GL(mi)) != NULL) {
+ reshape_flurry(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ GLSetupRC(global);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ global->first = 1;
+ global->oldFrameTime = -1;
+}
+
+ENTRYPOINT void
+draw_flurry(ModeInfo * mi)
+{
+ double newFrameTime;
+ double deltaFrameTime = 0;
+ double brite;
+ GLfloat alpha;
+
+ global_info_t *global = flurry_info + MI_SCREEN(mi);
+ flurry_info_t *flurry;
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ newFrameTime = currentTime();
+ if (global->oldFrameTime == -1) {
+ /* special case the first frame -- clear to black */
+ alpha = 1.0;
+ } else {
+ /*
+ * this clamps the speed at below 60fps and, here
+ * at least, produces a reasonably accurate 50fps.
+ * (probably part CPU speed and part scheduler).
+ *
+ * Flurry is designed to run at this speed; much higher
+ * than that and the blending causes the display to
+ * saturate, which looks really ugly.
+ */
+ if (newFrameTime - global->oldFrameTime < 1/60.0) {
+ usleep(MAX_(1,(int)(20000 * (newFrameTime - global->oldFrameTime))));
+ return;
+
+ }
+ deltaFrameTime = newFrameTime - global->oldFrameTime;
+ alpha = 5.0 * deltaFrameTime;
+ }
+ global->oldFrameTime = newFrameTime;
+
+ if (alpha > 0.2) alpha = 0.2;
+
+ if (!global->glx_context)
+ return;
+
+ if (global->first) {
+ MakeTexture();
+ global->first = 0;
+ }
+ glDrawBuffer(GL_BACK);
+ glXMakeCurrent(display, window, *(global->glx_context));
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glColor4f(0.0, 0.0, 0.0, alpha);
+ glRectd(0, 0, global->sys_glWidth, global->sys_glHeight);
+
+ brite = pow(deltaFrameTime,0.75) * 10;
+ for (flurry = global->flurry; flurry; flurry=flurry->next) {
+ GLRenderScene(global, flurry, brite * flurry->briteFactor);
+ }
+
+ if (mi->fps_p) do_fps (mi);
+
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+ENTRYPOINT void
+free_flurry(ModeInfo * mi)
+{
+ global_info_t *global = &flurry_info[MI_SCREEN(mi)];
+ flurry_info_t *flurry;
+
+ if (global->glx_context) {
+ glXMakeCurrent(MI_DISPLAY(mi), global->window, *(global->glx_context));
+ }
+
+ for (flurry = global->flurry; flurry; flurry=flurry->next) {
+ delete_flurry_info(flurry);
+ }
+}
+
+XSCREENSAVER_MODULE ("Flurry", flurry)
+
+#endif
diff --git a/hacks/glx/flurry.h b/hacks/glx/flurry.h
new file mode 100644
index 0000000..9bbe4b2
--- /dev/null
+++ b/hacks/glx/flurry.h
@@ -0,0 +1,299 @@
+/*
+
+Copyright (c) 2002, Calum Robinson
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+/* -*- Mode: C; tab-width: 4 c-basic-offset: 4 indent-tabs-mode: t -*- */
+/* flurry */
+#ifndef __GLCODE__
+#define __GLCODE__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+# include <GL/glu.h>
+# include <GL/glx.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+
+#include <stdlib.h>
+#include <math.h>
+
+#include "yarandom.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+typedef struct _global_info_t global_info_t;
+typedef struct _flurry_info_t flurry_info_t;
+
+#define sqr(X) ((X) * (X))
+#define PI 3.14159265358979323846f
+#define DEG2RAD(X) (PI*(X)/180.0)
+#define RAD2DEG(X) ((X)*180.0/PI)
+#define rnd() (frand(1.0))
+
+/* fabs: Absolute function. */
+/* #undef abs */
+/* #define abs(a) ( (a) > 0 ? (a) : -(a) ) */
+
+/* Force sign clamping to (-1;0;1) */
+#define sgn(a) ((a)<0?-1:((a)?1:0))
+
+/* used to compute the min and max of two expresions */
+#define MIN_(a, b) (((a) < (b)) ? (a) : (b))
+#define MAX_(a, b) (((a) > (b)) ? (a) : (b))
+
+typedef union {
+ float f[4];
+#if 0
+#if __VEC__
+ vector float v;
+#endif
+#endif /* 0 */
+} floatToVector;
+
+typedef union {
+ unsigned int i[4];
+#if 0
+#if __VEC__
+ vector unsigned int v;
+#endif
+#endif /* 0 */
+} intToVector;
+
+typedef struct SmokeParticleV
+{
+ floatToVector color[4];
+ floatToVector position[3];
+ floatToVector oldposition[3];
+ floatToVector delta[3];
+ intToVector dead;
+ floatToVector time;
+ intToVector animFrame;
+} SmokeParticleV;
+
+#define NUMSMOKEPARTICLES 3600
+
+typedef struct SmokeV
+{
+ SmokeParticleV p[NUMSMOKEPARTICLES/4];
+ int nextParticle;
+ int nextSubParticle;
+ float lastParticleTime;
+ int firstTime;
+ long frame;
+ float old[3];
+ floatToVector seraphimVertices[NUMSMOKEPARTICLES*2+1];
+ floatToVector seraphimColors[NUMSMOKEPARTICLES*4+1];
+ float seraphimTextures[NUMSMOKEPARTICLES*2*4];
+} SmokeV;
+
+void InitSmoke(SmokeV *s);
+
+void UpdateSmoke_ScalarBase(global_info_t *global, flurry_info_t *flurry, SmokeV *s);
+#if 0
+#ifdef __ppc__
+void UpdateSmoke_ScalarFrsqrte(global_info_t *global, flurry_info_t *flurry, SmokeV *s);
+#endif
+#ifdef __VEC__
+void UpdateSmoke_VectorBase(global_info_t *global, flurry_info_t *flurry, SmokeV *s);
+void UpdateSmoke_VectorUnrolled(global_info_t *global, flurry_info_t *flurry, SmokeV *s);
+#endif
+#endif /* 0 */
+
+void DrawSmoke_Scalar(global_info_t *global, flurry_info_t *flurry, SmokeV *s, float);
+void DrawSmoke_Vector(global_info_t *global, flurry_info_t *flurry, SmokeV *s, float);
+
+typedef struct Star
+{
+ float position[3];
+ float mystery;
+ float rotSpeed;
+ int ate;
+} Star;
+
+void UpdateStar(global_info_t *global, flurry_info_t *flurry, Star *s);
+void InitStar(Star *s);
+
+typedef struct Spark
+{
+ float position[3];
+ int mystery;
+ float delta[3];
+ float color[4];
+} Spark;
+
+void UpdateSparkColour(global_info_t *info, flurry_info_t *flurry, Spark *s);
+void InitSpark(Spark *s);
+void UpdateSpark(global_info_t *info, flurry_info_t *flurry, Spark *s);
+void DrawSpark(global_info_t *info, flurry_info_t *flurry, Spark *s);
+
+/* #define FastDistance2D(x,y) hypot(x,y) */
+
+/* UInt8 sys_glBPP=32; */
+/* int SSMODE = FALSE; */
+/* int currentVideoMode = 0; */
+/* int cohesiveness = 7; */
+/* int fieldStrength; */
+/* int colorCoherence = 7; */
+/* int fieldIncoherence = 0; */
+/* int ifieldSpeed = 120; */
+
+static inline float FastDistance2D(float x, float y)
+{
+ /* this function computes the distance from 0,0 to x,y with ~3.5% error */
+ float mn;
+ /* first compute the absolute value of x,y */
+ x = (x < 0.0f) ? -x : x;
+ y = (y < 0.0f) ? -y : y;
+
+ /* compute the minimum of x,y */
+ mn = x<y?x:y;
+
+ /* return the distance */
+ return(x+y-(mn*0.5f)-(mn*0.25f)+(mn*0.0625f));
+}
+
+#if 0
+#ifdef __VEC__
+
+static vector float FastDistance2DV(vector float x, vector float y) {
+ vector float mn, temp;
+
+ x = vec_abs(x);
+ y = vec_abs(y);
+ mn = vec_min(x,y);
+ temp = vec_add(x,y);
+ temp = vec_madd(mn, (vector float)(-0.6875), temp);
+ return temp;
+}
+
+#endif
+#endif /* 0 */
+
+#define RandFlt(min, max) ((min) + frand((max) - (min)))
+
+#define RandBell(scale) ((scale) * (-(frand(.5) + frand(.5) + frand(.5))))
+
+extern GLuint theTexture;
+
+void MakeTexture(void);
+
+#define OPT_MODE_SCALAR_BASE 0x0
+
+#if 0
+#ifdef __ppc__
+#define OPT_MODE_SCALAR_FRSQRTE 0x1
+#endif
+
+#ifdef __VEC__
+#define OPT_MODE_VECTOR_SIMPLE 0x2
+#define OPT_MODE_VECTOR_UNROLLED 0x3
+#endif
+#endif /* 0 */
+
+typedef enum _ColorModes
+{
+ redColorMode = 0,
+ magentaColorMode,
+ blueColorMode,
+ cyanColorMode,
+ greenColorMode,
+ yellowColorMode,
+ slowCyclicColorMode,
+ cyclicColorMode,
+ tiedyeColorMode,
+ rainbowColorMode,
+ whiteColorMode,
+ multiColorMode,
+ darkColorMode
+} ColorModes;
+
+#define gravity 1500000.0f
+
+#define incohesion 0.07f
+#define colorIncoherence 0.15f
+#define streamSpeed 450.0
+#define fieldCoherence 0
+#define fieldSpeed 12.0f
+#define numParticles 250
+#define starSpeed 50
+#define seraphDistance 2000.0f
+#define streamSize 25000.0f
+#define fieldRange 1000.0f
+#define streamBias 7.0f
+
+#define MAX_SPARKS 64
+
+struct _flurry_info_t {
+ flurry_info_t *next;
+ ColorModes currentColorMode;
+ SmokeV *s;
+ Star *star;
+ Spark *spark[MAX_SPARKS];
+ float streamExpansion;
+ int numStreams;
+ double flurryRandomSeed;
+ double fTime;
+ double fOldTime;
+ double fDeltaTime;
+ double briteFactor;
+ float drag;
+ int dframe;
+};
+
+struct _global_info_t {
+ /* system values */
+ GLXContext *glx_context;
+ Window window;
+ int optMode;
+
+ float sys_glWidth;
+ float sys_glHeight;
+
+ double gTimeCounter;
+ int first;
+ double oldFrameTime;
+
+ flurry_info_t *flurry;
+};
+
+#define kNumSpectrumEntries 512
+
+double TimeInSecondsSinceStart(const global_info_t *global);
+
+#endif /* Include/Define */
diff --git a/hacks/glx/flurry.man b/hacks/glx/flurry.man
new file mode 100644
index 0000000..bec54d9
--- /dev/null
+++ b/hacks/glx/flurry.man
@@ -0,0 +1,73 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+flurry - a colorful particle system
+.SH SYNOPSIS
+.B flurry
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-preset <arg>]
+[\-fps]
+.SH DESCRIPTION
+This is a port of the OSX screensaver flurry.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-preset <arg>
+Select a preset (classic, fire, water, psychedelic, rgb, binary, random, insane)
+
+(Insane will never be selected at random, because it requires lots of CPU/GPU
+power)
+
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH AUTHORS
+OSX screensaver by Calum Robinson <calumr@mac.com>
+
+http://homepage.mac.com/calumr
+
+xscreensaver port by Tobias Sargeant <tobias.sargeant@bigpond.com>
+
+.SH POSTCARDS
+
+If you really like it, send me a postcard (after all, you're getting this for
+free!). Please check this address by downloading the latest version of Flurry
+just before you send me a postcard - I may have moved.
+
+.PD 0
+Calum Robinson
+.P
+133 Sydenham Avenue
+.P
+Belfast
+.P
+Northern Ireland
+.P
+BT4 2DQ
+.PD 0
+
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
diff --git a/hacks/glx/flyingtoasters.c b/hacks/glx/flyingtoasters.c
new file mode 100644
index 0000000..19a5897
--- /dev/null
+++ b/hacks/glx/flyingtoasters.c
@@ -0,0 +1,868 @@
+/* flyingtoasters, Copyright (c) 2003-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Draws 3D flying toasters, and toast. Inspired by the ancient
+ * Berkeley Systems / After Dark hack, but now updated to the wide
+ * wonderful workd of OpenGL and 3D!
+ *
+ * Code by jwz; object models by Baconmonkey.
+ *
+ * The original After Dark flying toasters, with the fluffy white wings,
+ * were a trademark of Berkeley Systems. Berkeley Systems ceased to exist
+ * some time in 1998, having been gobbled up by Sierra Online, who were
+ * subsequently gobbled up by Flipside and/or Vivendi (it's hard to tell
+ * exactly what happened when.)
+ *
+ * I doubt anyone even cares any more, but if they do, hopefully this homage,
+ * with the space-age 3D jet-plane toasters, will be considered different
+ * enough that whoever still owns the trademark to the fluffy-winged 2D
+ * bitmapped toasters won't get all huffy at us.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+/* #define DEBUG */
+
+# define free_toasters 0
+# define release_toasters 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_SPEED "1.0"
+#define DEF_NTOASTERS "20"
+#define DEF_NSLICES "25"
+#define DEF_TEXTURE "True"
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#include "xlockmore.h"
+#include "gltrackball.h"
+#include "ximage-loader.h"
+#include <ctype.h>
+
+#define HAVE_TEXTURE
+#ifdef HAVE_TEXTURE
+# include "images/gen/chromesphere_png.h"
+# include "images/gen/toast_png.h"
+#endif /* HAVE_TEXTURE */
+
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+extern const struct gllist
+ *toaster, *toaster_base, *toaster_handle, *toaster_handle2, *toaster_jet,
+ *toaster_knob, *toaster_slots, *toaster_wing, *toast, *toast2;
+
+static const struct gllist * const *all_objs[] = {
+ &toaster, &toaster_base, &toaster_handle, &toaster_handle2, &toaster_jet,
+ &toaster_knob, &toaster_slots, &toaster_wing, &toast, &toast2
+};
+
+#define BASE_TOASTER 0
+#define BASE 1
+#define HANDLE 2
+#define HANDLE_SLOT 3
+#define JET 4
+#define KNOB 5
+#define SLOTS 6
+#define JET_WING 7
+#define TOAST 8
+#define TOAST_BITTEN 9
+
+#define GRID_SIZE 60
+#define GRID_DEPTH 500
+
+
+static const struct { GLfloat x, y; } nice_views[] = {
+ { 0, 120 },
+ { 0, -120 },
+ { 12, 28 }, /* this is a list of viewer rotations that look nice. */
+ { 12, -28 }, /* every now and then we switch to a new one. */
+ {-10, -28 }, /* (but we only use the first two at start-up.) */
+ { 40, -60 },
+ {-40, -60 },
+ { 40, 60 },
+ {-40, 60 },
+ { 30, 0 },
+ {-30, 0 },
+};
+
+
+typedef struct {
+ GLfloat x, y, z;
+ GLfloat dx, dy, dz;
+ Bool toaster_p;
+ int toast_type; /* 0, 1 */
+ GLfloat handle_pos; /* 0.0 - 1.0 */
+ GLfloat knob_pos; /* degrees */
+ int loaded; /* 2 bits */
+} floater;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *user_trackball;
+ Bool button_down_p;
+
+ int last_view, target_view;
+ GLfloat view_x, view_y;
+ int view_steps, view_tick;
+ Bool auto_tracking_p;
+ int track_tick;
+
+ GLuint *dlists;
+
+# ifdef HAVE_TEXTURE
+ GLuint chrome_texture;
+ GLuint toast_texture;
+# endif
+
+ int nfloaters;
+ floater *floaters;
+
+} toaster_configuration;
+
+static toaster_configuration *bps = NULL;
+
+static GLfloat speed;
+static int ntoasters;
+static int nslices;
+static int do_texture;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-ntoasters", ".ntoasters", XrmoptionSepArg, 0 },
+ { "-nslices", ".nslices", XrmoptionSepArg, 0 },
+ {"-texture", ".texture", XrmoptionNoArg, "True" },
+ {"+texture", ".texture", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&ntoasters, "ntoasters", "Count", DEF_NTOASTERS, t_Int},
+ {&nslices, "nslices", "Count", DEF_NSLICES, t_Int},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt toasters_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static void
+reset_floater (ModeInfo *mi, floater *f)
+{
+/* toaster_configuration *bp = &bps[MI_SCREEN(mi)]; */
+
+ GLfloat n = GRID_SIZE/2.0;
+ GLfloat n2 = GRID_DEPTH/2.0;
+ GLfloat delta = GRID_SIZE * speed / 200.0;
+
+ f->dx = 0;
+ f->dy = 0;
+ f->dz = delta;
+
+ f->dz += BELLRAND(delta) - delta/3;
+
+ if (! (random() % 5)) {
+ f->dx += (BELLRAND(delta*2) - delta);
+ f->dy += (BELLRAND(delta*2) - delta);
+ }
+
+ if (! (random() % 40)) f->dz *= 10; /* occasional speedy one */
+
+ f->x = frand(n) - n/2;
+ f->y = frand(n) - n/2;
+ f->z = -n2 - frand(delta * 4);
+
+ if (f->toaster_p)
+ {
+ f->loaded = 0;
+ f->knob_pos = frand(180) - 90;
+ f->handle_pos = ((random() & 1) ? 0.0 : 1.0);
+
+ if (f->handle_pos > 0.8 && (! (random() % 5)))
+ f->loaded = (random() & 3); /* let's toast! */
+ }
+ else
+ {
+ if (! (random() % 10))
+ f->toast_type = 1; /* toast_bitten */
+ }
+}
+
+
+static void
+tick_floater (ModeInfo *mi, floater *f)
+{
+ toaster_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ GLfloat n1 = GRID_DEPTH/2.0;
+ GLfloat n2 = GRID_SIZE*4;
+
+ if (bp->button_down_p) return;
+
+ f->x += f->dx;
+ f->y += f->dy;
+ f->z += f->dz;
+
+ if (! (random() % 50000)) /* sudden gust of gravity */
+ f->dy -= 2.8;
+
+ if (f->x < -n2 || f->x > n2 ||
+ f->y < -n2 || f->y > n2 ||
+ f->z > n1)
+ reset_floater (mi, f);
+}
+
+
+static void
+auto_track_init (ModeInfo *mi)
+{
+ toaster_configuration *bp = &bps[MI_SCREEN(mi)];
+ bp->last_view = (random() % 2);
+ bp->target_view = bp->last_view + 2;
+ bp->view_x = nice_views[bp->last_view].x;
+ bp->view_y = nice_views[bp->last_view].y;
+ bp->view_steps = 100;
+ bp->view_tick = 0;
+ bp->auto_tracking_p = True;
+}
+
+
+static void
+auto_track (ModeInfo *mi)
+{
+ toaster_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (bp->button_down_p)
+ return;
+
+ /* if we're not moving, maybe start moving. Otherwise, do nothing. */
+ if (! bp->auto_tracking_p)
+ {
+ if (++bp->track_tick < 200/speed) return;
+ bp->track_tick = 0;
+ if (! (random() % 5))
+ bp->auto_tracking_p = True;
+ else
+ return;
+ }
+
+
+ {
+ GLfloat ox = nice_views[bp->last_view].x;
+ GLfloat oy = nice_views[bp->last_view].y;
+ GLfloat tx = nice_views[bp->target_view].x;
+ GLfloat ty = nice_views[bp->target_view].y;
+
+ /* move from A to B with sinusoidal deltas, so that it doesn't jerk
+ to a stop. */
+ GLfloat th = sin ((M_PI / 2) * (double) bp->view_tick / bp->view_steps);
+
+ bp->view_x = (ox + ((tx - ox) * th));
+ bp->view_y = (oy + ((ty - oy) * th));
+ bp->view_tick++;
+
+ if (bp->view_tick >= bp->view_steps)
+ {
+ bp->view_tick = 0;
+ bp->view_steps = (350.0 / speed);
+ bp->last_view = bp->target_view;
+ bp->target_view = (random() % (countof(nice_views) - 2)) + 2;
+ bp->auto_tracking_p = False;
+ }
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_toasters (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (40.0, 1/h, 1.0, 250);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 2.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+toasters_handle_event (ModeInfo *mi, XEvent *event)
+{
+ toaster_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->user_trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+#ifdef HAVE_TEXTURE
+
+static void
+load_textures (ModeInfo *mi)
+{
+ toaster_configuration *bp = &bps[MI_SCREEN(mi)];
+ XImage *xi;
+
+ xi = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ chromesphere_png, sizeof(chromesphere_png));
+ clear_gl_error();
+
+#ifndef HAVE_JWZGLES /* No SPHERE_MAP yet */
+ glGenTextures (1, &bp->chrome_texture);
+ glBindTexture (GL_TEXTURE_2D, bp->chrome_texture);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ xi->width, xi->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, xi->data);
+ check_gl_error("texture");
+ XDestroyImage (xi);
+ xi = 0;
+#endif
+
+ xi = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ toast_png, sizeof(toast_png));
+
+ glGenTextures (1, &bp->toast_texture);
+ glBindTexture (GL_TEXTURE_2D, bp->toast_texture);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ xi->width, xi->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, xi->data);
+ check_gl_error("texture");
+ XDestroyImage (xi);
+ xi = 0;
+}
+
+#endif /* HAVE_TEXTURE */
+
+
+
+ENTRYPOINT void
+init_toasters (ModeInfo *mi)
+{
+ toaster_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_toasters (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
+/* GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};*/
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+# ifdef HAVE_TEXTURE
+ if (!wire && do_texture)
+ load_textures (mi);
+# endif
+
+ bp->user_trackball = gltrackball_init (False);
+ auto_track_init (mi);
+
+ bp->dlists = (GLuint *) calloc (countof(all_objs)+1, sizeof(GLuint));
+ for (i = 0; i < countof(all_objs); i++)
+ bp->dlists[i] = glGenLists (1);
+
+ for (i = 0; i < countof(all_objs); i++)
+ {
+ const struct gllist *gll = *all_objs[i];
+
+ glNewList (bp->dlists[i], GL_COMPILE);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ glMatrixMode(GL_MODELVIEW);
+
+ glRotatef (-90, 1, 0, 0);
+ glRotatef (180, 0, 0, 1);
+ glScalef (6, 6, 6);
+
+ glBindTexture (GL_TEXTURE_2D, 0);
+ glDisable (GL_TEXTURE_2D);
+
+ if (i == BASE_TOASTER)
+ {
+ GLfloat color[4] = {1.00, 1.00, 1.00, 1.00};
+ GLfloat spec[4] = {1.00, 1.00, 1.00, 1.0};
+ GLfloat shiny = 20.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+#ifdef HAVE_TEXTURE
+ if (do_texture)
+ {
+#ifndef HAVE_JWZGLES /* No SPHERE_MAP yet */
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_TEXTURE_GEN_S);
+ glEnable (GL_TEXTURE_GEN_T);
+ glBindTexture (GL_TEXTURE_2D, bp->chrome_texture);
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+#endif
+ }
+# endif
+ }
+ else if (i == TOAST || i == TOAST_BITTEN)
+ {
+ GLfloat color[4] = {0.80, 0.80, 0.00, 1.0};
+ GLfloat spec[4] = {0.00, 0.00, 0.00, 1.0};
+ GLfloat shiny = 0.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+#ifdef HAVE_TEXTURE
+ if (do_texture)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_TEXTURE_GEN_S);
+ glEnable (GL_TEXTURE_GEN_T);
+ glBindTexture (GL_TEXTURE_2D, bp->toast_texture);
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+ }
+# endif
+
+ glMatrixMode(GL_TEXTURE);
+ glTranslatef(0.5, 0.5, 0);
+ glMatrixMode(GL_MODELVIEW);
+ }
+ else if (i == SLOTS || i == HANDLE_SLOT)
+ {
+ GLfloat color[4] = {0.30, 0.30, 0.40, 1.0};
+ GLfloat spec[4] = {0.40, 0.40, 0.70, 1.0};
+ GLfloat shiny = 128.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+ else if (i == HANDLE)
+ {
+ GLfloat color[4] = {0.80, 0.10, 0.10, 1.0};
+ GLfloat spec[4] = {1.00, 1.00, 1.00, 1.0};
+ GLfloat shiny = 20.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+ else if (i == KNOB)
+ {
+ GLfloat color[4] = {0.80, 0.10, 0.10, 1.0};
+ GLfloat spec[4] = {0.00, 0.00, 0.00, 1.0};
+ GLfloat shiny = 0.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+ else if (i == JET || i == JET_WING)
+ {
+ GLfloat color[4] = {0.70, 0.70, 0.70, 1.0};
+ GLfloat spec[4] = {1.00, 1.00, 1.00, 1.0};
+ GLfloat shiny = 20.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+ else if (i == BASE)
+ {
+ GLfloat color[4] = {0.50, 0.50, 0.50, 1.0};
+ GLfloat spec[4] = {1.00, 1.00, 1.00, 1.0};
+ GLfloat shiny = 20.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+ else
+ {
+ GLfloat color[4] = {1.00, 1.00, 1.00, 1.00};
+ GLfloat spec[4] = {1.00, 1.00, 1.00, 1.0};
+ GLfloat shiny = 128.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+
+ renderList (gll, wire);
+
+ glMatrixMode(GL_TEXTURE);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+
+ glEndList ();
+ }
+
+ bp->nfloaters = ntoasters + nslices;
+ bp->floaters = (floater *) calloc (bp->nfloaters, sizeof (floater));
+
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ /* arrange the list so that half the toasters are in front of bread,
+ and half are behind. */
+ f->toaster_p = ((i < ntoasters / 2) ||
+ (i >= (nslices + (ntoasters / 2))));
+ reset_floater (mi, f);
+
+ /* Position the first generation randomly, but make sure they aren't
+ on screen yet (until we rotate the view into position.)
+ */
+ {
+ GLfloat min = -GRID_DEPTH/2;
+ GLfloat max = GRID_DEPTH/3.5;
+ f->z = frand (max - min) + min;
+ }
+ }
+}
+
+
+static void
+draw_origin (ModeInfo *mi)
+{
+# ifdef DEBUG
+/* toaster_configuration *bp = &bps[MI_SCREEN(mi)];*/
+
+ if (!MI_IS_WIREFRAME(mi)) glDisable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glDisable(GL_TEXTURE_2D);
+
+ glPushMatrix();
+ glScalef (5, 5, 5);
+ glBegin(GL_LINES);
+ glVertex3f(-1, 0, 0); glVertex3f(1, 0, 0);
+ glVertex3f(0, -1, 0); glVertex3f(0, 1, 0);
+ glVertex3f(0, 0, -1); glVertex3f(0, 0, 1);
+ glEnd();
+ glPopMatrix();
+
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glEnable(GL_TEXTURE_2D);
+# endif /* DEBUG */
+}
+
+
+static void
+draw_grid (ModeInfo *mi)
+{
+# ifdef DEBUG
+/* toaster_configuration *bp = &bps[MI_SCREEN(mi)];*/
+
+ if (!MI_IS_WIREFRAME(mi)) glDisable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glDisable(GL_TEXTURE_2D);
+ glPushMatrix();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, 0);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, 0);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, 0);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, 0);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glEnd();
+ glBegin(GL_LINES);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glEnd();
+ glPopMatrix();
+
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glEnable(GL_TEXTURE_2D);
+# endif /* DEBUG */
+}
+
+
+static void
+draw_floater (ModeInfo *mi, floater *f)
+{
+ toaster_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat n;
+
+ glFrontFace(GL_CCW);
+
+ glPushMatrix();
+ glTranslatef (f->x, f->y, f->z);
+ if (f->toaster_p)
+ {
+ glPushMatrix();
+ glRotatef (180, 0, 1, 0);
+
+ glCallList (bp->dlists[BASE_TOASTER]);
+ mi->polygon_count += (*all_objs[BASE_TOASTER])->points / 3;
+ glPopMatrix();
+
+ glPushMatrix();
+ glTranslatef(0, 1.01, 0);
+ n = 0.91; glScalef(n,n,n);
+ glCallList (bp->dlists[SLOTS]);
+ mi->polygon_count += (*all_objs[SLOTS])->points / 3;
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef (180, 0, 1, 0);
+ glTranslatef(0, -0.4, -2.38);
+ n = 0.33; glScalef(n,n,n);
+ glCallList (bp->dlists[HANDLE_SLOT]);
+ mi->polygon_count += (*all_objs[HANDLE_SLOT])->points / 3;
+ glPopMatrix();
+
+ glPushMatrix();
+ glTranslatef(0, -1.1, 3);
+ n = 0.3; glScalef (n,n,n);
+ glTranslatef(0, f->handle_pos * 4.8, 0);
+ glCallList (bp->dlists[HANDLE]);
+ mi->polygon_count += (*all_objs[HANDLE])->points / 3;
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef (180, 0, 1, 0);
+ glTranslatef(0, -1.1, -3); /* where the handle is */
+ glTranslatef (1, -0.4, 0); /* down and to the left */
+ n = 0.08; glScalef (n,n,n);
+ glRotatef (f->knob_pos, 0, 0, 1);
+ glCallList (bp->dlists[KNOB]);
+ mi->polygon_count += (*all_objs[KNOB])->points / 3;
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef (180, 0, 1, 0);
+ glTranslatef (0, -2.3, 0);
+ glCallList (bp->dlists[BASE]);
+ mi->polygon_count += (*all_objs[BASE])->points / 3;
+ glPopMatrix();
+
+ glPushMatrix();
+ glTranslatef(-4.8, 0, 0);
+ glCallList (bp->dlists[JET_WING]);
+ mi->polygon_count += (*all_objs[JET_WING])->points / 3;
+ glScalef (0.5, 0.5, 0.5);
+ glTranslatef (-2, -1, 0);
+ glCallList (bp->dlists[JET]);
+ mi->polygon_count += (*all_objs[JET])->points / 3;
+ glPopMatrix();
+
+ glPushMatrix();
+ glTranslatef(4.8, 0, 0);
+ glScalef(-1, 1, 1);
+ glFrontFace(GL_CW);
+ glCallList (bp->dlists[JET_WING]);
+ mi->polygon_count += (*all_objs[JET_WING])->points / 3;
+ glScalef (0.5, 0.5, 0.5);
+ glTranslatef (-2, -1, 0);
+ glCallList (bp->dlists[JET]);
+ mi->polygon_count += (*all_objs[JET])->points / 3;
+ glFrontFace(GL_CCW);
+ glPopMatrix();
+
+ if (f->loaded)
+ {
+ glPushMatrix();
+ glTranslatef(0, 1.01, 0);
+ n = 0.91; glScalef(n,n,n);
+ glRotatef (90, 0, 0, 1);
+ glRotatef (90, 0, 1, 0);
+ glTranslatef(0, 0, -0.95);
+ glTranslatef(0, 0.72, 0);
+ if (f->loaded & 1)
+ {
+ glCallList (bp->dlists[TOAST]);
+ mi->polygon_count += (*all_objs[TOAST])->points / 3;
+ }
+ glTranslatef(0, -1.46, 0);
+ if (f->loaded & 2)
+ {
+ glCallList (bp->dlists[TOAST]);
+ mi->polygon_count += (*all_objs[TOAST])->points / 3;
+ }
+ glPopMatrix();
+ }
+ }
+ else
+ {
+ glScalef (0.7, 0.7, 0.7);
+ if (f->toast_type == 0)
+ {
+ glCallList (bp->dlists[TOAST]);
+ mi->polygon_count += (*all_objs[TOAST])->points / 3;
+ }
+ else
+ {
+ glCallList (bp->dlists[TOAST_BITTEN]);
+ mi->polygon_count += (*all_objs[TOAST_BITTEN])->points / 3;
+ }
+ }
+
+ glPopMatrix();
+}
+
+
+
+ENTRYPOINT void
+draw_toasters (ModeInfo *mi)
+{
+ toaster_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ glRotatef(bp->view_x, 1, 0, 0);
+ glRotatef(bp->view_y, 0, 1, 0);
+
+ /* Rotate the scene around a point that's a little deeper in. */
+ glTranslatef (0, 0, -50);
+ gltrackball_rotate (bp->user_trackball);
+ glTranslatef (0, 0, 50);
+
+#if 0
+ {
+ floater F;
+ F.toaster_p = 0;
+ F.toast_type = 1;
+ F.handle_pos = 0;
+ F.knob_pos = -90;
+ F.loaded = 3;
+ F.x = F.y = F.z = 0;
+ F.dx = F.dy = F.dz = 0;
+
+ glScalef(2,2,2);
+ if (!MI_IS_WIREFRAME(mi)) glDisable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glDisable(GL_TEXTURE_2D);
+ glBegin(GL_LINES);
+ glVertex3f(-10, 0, 0); glVertex3f(10, 0, 0);
+ glVertex3f(0, -10, 0); glVertex3f(0, 10, 0);
+ glVertex3f(0, 0, -10); glVertex3f(0, 0, 10);
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glEnable(GL_TEXTURE_2D);
+
+ draw_floater (mi, &F);
+ glPopMatrix ();
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(dpy, window);
+ return;
+ }
+#endif
+
+ glScalef (0.5, 0.5, 0.5);
+ draw_origin (mi);
+ glTranslatef (0, 0, -GRID_DEPTH/2.5);
+ draw_grid (mi);
+
+ mi->polygon_count = 0;
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ draw_floater (mi, f);
+ tick_floater (mi, f);
+ }
+ auto_track (mi);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("FlyingToasters", flyingtoasters, toasters)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/flyingtoasters.man b/hacks/glx/flyingtoasters.man
new file mode 100644
index 0000000..dbe5d5a
--- /dev/null
+++ b/hacks/glx/flyingtoasters.man
@@ -0,0 +1,86 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+flyingtoasters - 3d space-age jet-powered flying toasters (and toast)
+.SH SYNOPSIS
+.B flyingtoasters
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-ntoasters \fInumber\fP]
+[\-nslices \fInumber\fP]
+[\-no-texture]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Draws a squadron of shiny 3D space-age jet-powered flying toasters, and
+associated toast, flying across your screen.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+How fast the toasters fly. Larger for faster. Default: 1.0.
+.TP 8
+.B \-ntoasters \fInumber\fP
+How many toasters to draw. Default 20.
+.TP 8
+.B \-nslices \fInumber\fP
+How many slices of toast to draw. Default 25.
+.TP 8
+.B \-no-texture
+Turn off texture mapping (for slow machines.)
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR After Dark
+.SH COPYRIGHT
+Copyright \(co 2003 by Jamie Zawinski. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+
+The original After Dark flying toasters, with the fluffy white wings,
+were a trademark of Berkeley Systems. Berkeley Systems ceased to exist
+some time in 1998, having been gobbled up by Sierra Online, who were
+subsequently gobbled up by Flipside and/or Vivendi (it's hard to tell
+exactly what happened when.)
+
+I doubt anyone even cares any more, but if they do, hopefully this
+homage, with the space-age 3D jet-plane toasters, will be considered
+different enough that whoever still owns the trademark to the
+fluffy-winged 2D bitmapped toasters won't get all huffy at us.
+.SH AUTHOR
+Code by Jamie Zawinski. Object models by Baconmonkey.
diff --git a/hacks/glx/fps-gl.c b/hacks/glx/fps-gl.c
new file mode 100644
index 0000000..eb6b6de
--- /dev/null
+++ b/hacks/glx/fps-gl.c
@@ -0,0 +1,98 @@
+/* fps, Copyright (c) 2001-2015 Jamie Zawinski <jwz@jwz.org>
+ * Draw a frames-per-second display (Xlib and OpenGL).
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifdef HAVE_COCOA
+# include "jwxyz.h"
+#elif defined(HAVE_ANDROID)
+# include <GLES/gl.h>
+#else /* real Xlib */
+# include <GL/glx.h>
+# include <GL/glu.h>
+#endif /* !HAVE_COCOA */
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "xlockmoreI.h"
+#include "fpsI.h"
+#include "texfont.h"
+
+/* These are in xlock-gl.c */
+extern void clear_gl_error (void);
+extern void check_gl_error (const char *type);
+
+typedef struct {
+ texture_font_data *texfont;
+ int line_height;
+ Bool top_p;
+} gl_fps_data;
+
+
+static void
+xlockmore_gl_fps_init (fps_state *st)
+{
+ gl_fps_data *data = (gl_fps_data *) calloc (1, sizeof(*data));
+ int ascent, descent;
+ data->top_p = get_boolean_resource (st->dpy, "fpsTop", "FPSTop");
+ data->texfont = load_texture_font (st->dpy, "fpsFont");
+ texture_string_metrics (data->texfont, "M", 0, &ascent, &descent);
+ data->line_height = ascent + descent;
+ st->gl_fps_data = data;
+}
+
+
+/* Callback in xscreensaver_function_table, via xlockmore.c.
+ */
+void
+xlockmore_gl_compute_fps (Display *dpy, Window w, fps_state *fpst,
+ void *closure)
+{
+ ModeInfo *mi = (ModeInfo *) closure;
+ if (! mi->fpst)
+ {
+ mi->fpst = fpst;
+ xlockmore_gl_fps_init (fpst);
+ }
+
+ fps_compute (fpst, mi->polygon_count, mi->recursion_depth);
+}
+
+
+/* Called directly from GL programs (as `do_fps') before swapping buffers.
+ */
+void
+xlockmore_gl_draw_fps (ModeInfo *mi)
+{
+ fps_state *st = mi->fpst;
+ if (st) /* might be too early */
+ {
+ gl_fps_data *data = (gl_fps_data *) st->gl_fps_data;
+ XWindowAttributes xgwa;
+ int lines = 1;
+ const char *s;
+
+ XGetWindowAttributes (st->dpy, st->window, &xgwa);
+ for (s = st->string; *s; s++)
+ if (*s == '\n') lines++;
+
+ glColor3f (1, 1, 1);
+ print_texture_label (st->dpy, data->texfont,
+ xgwa.width, xgwa.height,
+ (data->top_p ? 1 : 2),
+ st->string);
+ }
+}
diff --git a/hacks/glx/gears.c b/hacks/glx/gears.c
new file mode 100644
index 0000000..3976f2f
--- /dev/null
+++ b/hacks/glx/gears.c
@@ -0,0 +1,938 @@
+/* gears, Copyright (c) 2007-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Originally written by Brian Paul in 1996 or earlier;
+ * rewritten by jwz in Nov 2007.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 0 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_gears 0
+# define release_gears 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "involute.h"
+#include "normals.h"
+#include "tube.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool planetary_p;
+
+ int ngears;
+ gear **gears;
+
+ GLuint armature_dlist;
+ int armature_polygons;
+
+ struct { GLfloat x1, y1, x2, y2; } bbox;
+
+} gears_configuration;
+
+static gears_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt gears_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_gears (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+free_gear (gear *g)
+{
+ if (g->dlist)
+ glDeleteLists (g->dlist, 1);
+ free (g);
+}
+
+
+/* Create and return a new gear sized for placement next to or on top of
+ the given parent gear (if any.) Returns 0 if out of memory.
+ [Mostly lifted from pinion.c]
+ */
+static gear *
+new_gear (ModeInfo *mi, gear *parent)
+{
+ gears_configuration *bp = &bps[MI_SCREEN(mi)];
+ gear *g = (gear *) calloc (1, sizeof (*g));
+ static unsigned long id = 0; /* only used in debugging output */
+
+ if (!g) return 0;
+ g->id = ++id;
+
+ /* Pick the size of the teeth.
+ */
+ if (parent) /* adjascent gears need matching teeth */
+ {
+ g->tooth_w = parent->tooth_w;
+ g->tooth_h = parent->tooth_h;
+ g->tooth_slope = -parent->tooth_slope;
+ }
+ else /* gears that begin trains get any size they want */
+ {
+ g->tooth_w = 0.007 * (1.0 + BELLRAND(4.0));
+ g->tooth_h = 0.005 * (1.0 + BELLRAND(8.0));
+/*
+ g->tooth_slope = ((random() % 8)
+ ? 0
+ : 0.5 + BELLRAND(1));
+ */
+ }
+
+ /* Pick the number of teeth, and thus, the radius.
+ */
+ {
+ double c;
+
+ if (!parent || bp->ngears > 4)
+ g->nteeth = 5 + BELLRAND (20);
+ else
+ g->nteeth = parent->nteeth * (0.5 + BELLRAND(2));
+
+ c = g->nteeth * g->tooth_w * 2; /* circumference = teeth + gaps */
+ g->r = c / (M_PI * 2); /* c = 2 pi r */
+ }
+
+ g->thickness = g->tooth_w + frand (g->r);
+ g->thickness2 = g->thickness * 0.7;
+ g->thickness3 = g->thickness;
+
+ /* Colorize
+ */
+ g->color[0] = 0.5 + frand(0.5);
+ g->color[1] = 0.5 + frand(0.5);
+ g->color[2] = 0.5 + frand(0.5);
+ g->color[3] = 1.0;
+
+ g->color2[0] = g->color[0] * 0.85;
+ g->color2[1] = g->color[1] * 0.85;
+ g->color2[2] = g->color[2] * 0.85;
+ g->color2[3] = g->color[3];
+
+
+ /* Decide on shape of gear interior:
+ - just a ring with teeth;
+ - that, plus a thinner in-set "plate" in the middle;
+ - that, plus a thin raised "lip" on the inner plate;
+ - or, a wide lip (really, a thicker third inner plate.)
+ */
+ if ((random() % 10) == 0)
+ {
+ /* inner_r can go all the way in; there's no inset disc. */
+ g->inner_r = (g->r * 0.1) + frand((g->r - g->tooth_h/2) * 0.8);
+ g->inner_r2 = 0;
+ g->inner_r3 = 0;
+ }
+ else
+ {
+ /* inner_r doesn't go in very far; inner_r2 is an inset disc. */
+ g->inner_r = (g->r * 0.5) + frand((g->r - g->tooth_h) * 0.4);
+ g->inner_r2 = (g->r * 0.1) + frand(g->inner_r * 0.5);
+ g->inner_r3 = 0;
+
+ if (g->inner_r2 > (g->r * 0.2))
+ {
+ int nn = (random() % 10);
+ if (nn <= 2)
+ g->inner_r3 = (g->r * 0.1) + frand(g->inner_r2 * 0.2);
+ else if (nn <= 7 && g->inner_r2 >= 0.1)
+ g->inner_r3 = g->inner_r2 - 0.01;
+ }
+ }
+
+ /* If we have three discs, sometimes make the middle disc be spokes.
+ */
+ if (g->inner_r3 && ((random() % 5) == 0))
+ {
+ g->spokes = 2 + BELLRAND (5);
+ g->spoke_thickness = 1 + frand(7.0);
+ if (g->spokes == 2 && g->spoke_thickness < 2)
+ g->spoke_thickness += 1;
+ }
+
+ /* Sometimes add little nubbly bits, if there is room.
+ */
+ if (g->nteeth > 5)
+ {
+ double size = 0;
+ involute_biggest_ring (g, 0, &size, 0);
+ if (size > g->r * 0.2 && (random() % 5) == 0)
+ {
+ g->nubs = 1 + (random() % 16);
+ if (g->nubs > 8) g->nubs = 1;
+ }
+ }
+
+ if (g->inner_r3 > g->inner_r2) abort();
+ if (g->inner_r2 > g->inner_r) abort();
+ if (g->inner_r > g->r) abort();
+
+ /* Decide how complex the polygon model should be.
+ */
+ {
+ double pix = g->tooth_h * MI_HEIGHT(mi); /* approx. tooth size in pixels */
+ if (pix <= 2.5) g->size = INVOLUTE_SMALL;
+ else if (pix <= 3.5) g->size = INVOLUTE_MEDIUM;
+ else if (pix <= 25) g->size = INVOLUTE_LARGE;
+ else g->size = INVOLUTE_HUGE;
+ }
+
+ g->base_p = !parent;
+
+ return g;
+}
+
+
+/* Given a newly-created gear, place it next to its parent in the scene,
+ with its teeth meshed and the proper velocity. Returns False if it
+ didn't work. (Call this a bunch of times until either it works, or
+ you decide it's probably not going to.)
+ [Mostly lifted from pinion.c]
+ */
+static Bool
+place_gear (ModeInfo *mi, gear *g, gear *parent)
+{
+ gears_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ /* Compute this gear's velocity.
+ */
+ if (! parent)
+ {
+ g->ratio = 0.8 + BELLRAND(0.4); /* 0.8-1.2 = 8-12rpm @ 60fps */
+ g->th = 1; /* not 0 */
+ }
+ else
+ {
+ /* Gearing ratio is the ratio of the number of teeth to previous gear
+ (which is also the ratio of the circumferences.)
+ */
+ g->ratio = (double) parent->nteeth / (double) g->nteeth;
+
+ /* Set our initial rotation to match that of the previous gear,
+ multiplied by the gearing ratio. (This is finessed later,
+ once we know the exact position of the gear relative to its
+ parent.)
+ */
+ g->th = -(parent->th * g->ratio);
+
+ if (g->nteeth & 1) /* rotate 1/2 tooth-size if odd number of teeth */
+ {
+ double off = (180.0 / g->nteeth);
+ if (g->th > 0)
+ g->th += off;
+ else
+ g->th -= off;
+ }
+
+ /* ratios are cumulative for all gears in the train. */
+ g->ratio *= parent->ratio;
+ }
+
+
+ if (parent) /* Place the gear next to the parent. */
+ {
+ double r_off = parent->r + g->r;
+ int angle;
+
+ angle = (random() % 360) - 180; /* -180 to +180 degrees */
+
+ g->x = parent->x + (cos ((double) angle * (M_PI / 180)) * r_off);
+ g->y = parent->y + (sin ((double) angle * (M_PI / 180)) * r_off);
+ g->z = parent->z;
+
+ /* avoid accidentally changing sign of "th" in the math below. */
+ g->th += (g->th > 0 ? 360 : -360);
+
+ /* Adjust the rotation of the gear so that its teeth line up with its
+ parent, based on the position of the gear and the current rotation
+ of the parent.
+ */
+ {
+ double p_c = 2 * M_PI * parent->r; /* circumference of parent */
+ double g_c = 2 * M_PI * g->r; /* circumference of g */
+
+ double p_t = p_c * (angle/360.0); /* distance travelled along
+ circumference of parent when
+ moving "angle" degrees along
+ parent. */
+ double g_rat = p_t / g_c; /* if travelling that distance
+ along circumference of g,
+ ratio of g's circumference
+ travelled. */
+ double g_th = 360.0 * g_rat; /* that ratio in degrees */
+
+ g->th += angle + g_th;
+ }
+ }
+
+ /* If the position we picked for this gear causes it to overlap
+ with any earlier gear in the train, give up.
+ */
+ {
+ int i;
+
+ for (i = bp->ngears-1; i >= 0; i--)
+ {
+ gear *og = bp->gears[i];
+
+ if (og == g) continue;
+ if (og == parent) continue;
+ if (g->z != og->z) continue; /* Ignore unless on same layer */
+
+ /* Collision detection without sqrt:
+ d = sqrt(a^2 + b^2) d^2 = a^2 + b^2
+ d < r1 + r2 d^2 < (r1 + r2)^2
+ */
+ if (((g->x - og->x) * (g->x - og->x) +
+ (g->y - og->y) * (g->y - og->y)) <
+ ((g->r + g->tooth_h + og->r + og->tooth_h) *
+ (g->r + g->tooth_h + og->r + og->tooth_h)))
+ return False;
+ }
+ }
+
+ return True;
+}
+
+
+/* Make a new gear, place it next to its parent in the scene,
+ with its teeth meshed and the proper velocity. Returns the gear;
+ or 0 if it didn't work. (Call this a bunch of times until either
+ it works, or you decide it's probably not going to.)
+ [Mostly lifted from pinion.c]
+ */
+static gear *
+place_new_gear (ModeInfo *mi, gear *parent)
+{
+ gears_configuration *bp = &bps[MI_SCREEN(mi)];
+ int loop_count = 0;
+ gear *g = 0;
+
+ while (1)
+ {
+ loop_count++;
+ if (loop_count >= 100)
+ {
+ if (g)
+ free_gear (g);
+ g = 0;
+ break;
+ }
+
+ g = new_gear (mi, parent);
+ if (!g) return 0; /* out of memory? */
+
+ if (place_gear (mi, g, parent))
+ break;
+ }
+
+ if (! g) return 0;
+
+ /* We got a gear, and it is properly positioned.
+ Insert it in the scene.
+ */
+ bp->gears[bp->ngears++] = g;
+ return g;
+}
+
+
+static int
+arm (GLfloat length,
+ GLfloat width1, GLfloat height1,
+ GLfloat width2, GLfloat height2,
+ Bool wire)
+{
+ int polys = 0;
+ glShadeModel(GL_FLAT);
+
+#if 0 /* don't need these - they're embedded in other objects */
+ /* draw end 1 */
+ glFrontFace(GL_CW);
+ glNormal3f(-1, 0, 0);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f(-length/2, -width1/2, -height1/2);
+ glVertex3f(-length/2, width1/2, -height1/2);
+ glVertex3f(-length/2, width1/2, height1/2);
+ glVertex3f(-length/2, -width1/2, height1/2);
+ polys++;
+ glEnd();
+
+ /* draw end 2 */
+ glFrontFace(GL_CCW);
+ glNormal3f(1, 0, 0);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f(length/2, -width2/2, -height2/2);
+ glVertex3f(length/2, width2/2, -height2/2);
+ glVertex3f(length/2, width2/2, height2/2);
+ glVertex3f(length/2, -width2/2, height2/2);
+ polys++;
+ glEnd();
+#endif
+
+ /* draw top */
+ glFrontFace(GL_CCW);
+ glNormal3f(0, 0, -1);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f(-length/2, -width1/2, -height1/2);
+ glVertex3f(-length/2, width1/2, -height1/2);
+ glVertex3f( length/2, width2/2, -height2/2);
+ glVertex3f( length/2, -width2/2, -height2/2);
+ polys++;
+ glEnd();
+
+ /* draw bottom */
+ glFrontFace(GL_CW);
+ glNormal3f(0, 0, 1);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f(-length/2, -width1/2, height1/2);
+ glVertex3f(-length/2, width1/2, height1/2);
+ glVertex3f( length/2, width2/2, height2/2);
+ glVertex3f( length/2, -width2/2, height2/2);
+ polys++;
+ glEnd();
+
+ /* draw left */
+ glFrontFace(GL_CW);
+ glNormal3f(0, -1, 0);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f(-length/2, -width1/2, -height1/2);
+ glVertex3f(-length/2, -width1/2, height1/2);
+ glVertex3f( length/2, -width2/2, height2/2);
+ glVertex3f( length/2, -width2/2, -height2/2);
+ polys++;
+ glEnd();
+
+ /* draw right */
+ glFrontFace(GL_CCW);
+ glNormal3f(0, 1, 0);
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f(-length/2, width1/2, -height1/2);
+ glVertex3f(-length/2, width1/2, height1/2);
+ glVertex3f( length/2, width2/2, height2/2);
+ glVertex3f( length/2, width2/2, -height2/2);
+ polys++;
+ glEnd();
+
+ glFrontFace(GL_CCW);
+
+ return polys;
+}
+
+
+static int
+ctube (GLfloat diameter, GLfloat width, Bool wire)
+{
+ tube (0, 0, width/2,
+ 0, 0, -width/2,
+ diameter, 0,
+ 32, True, True, wire);
+ return 0; /* #### */
+}
+
+static void
+armature (ModeInfo *mi)
+{
+ gears_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+
+ static const GLfloat spec[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat shiny = 128.0;
+ GLfloat color[4];
+
+ color[0] = 0.5 + frand(0.5);
+ color[1] = 0.5 + frand(0.5);
+ color[2] = 0.5 + frand(0.5);
+ color[3] = 1.0;
+
+ bp->armature_polygons = 0;
+
+ bp->armature_dlist = glGenLists (1);
+ if (! bp->armature_dlist)
+ {
+ check_gl_error ("glGenLists");
+ abort();
+ }
+
+ glNewList (bp->armature_dlist, GL_COMPILE);
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, spec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glColor3f (color[0], color[1], color[2]);
+
+ glPushMatrix();
+
+ {
+ GLfloat s = bp->gears[0]->r * 2.7;
+ s = s/5.6;
+ glScalef (s, s, s);
+ }
+
+ glTranslatef (0, 0, 1.4 + bp->gears[0]->thickness);
+ glRotatef (30, 0, 0, 1);
+
+ bp->armature_polygons += ctube (0.5, 10, wire); /* center axle */
+
+ glPushMatrix();
+ glTranslatef(0.0, 4.2, -1);
+ bp->armature_polygons += ctube (0.5, 3, wire); /* axle 1 */
+ glTranslatef(0, 0, 1.8);
+ bp->armature_polygons += ctube (0.7, 0.7, wire);
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef(120, 0.0, 0.0, 1.0);
+ glTranslatef(0.0, 4.2, -1);
+ bp->armature_polygons += ctube (0.5, 3, wire); /* axle 2 */
+ glTranslatef(0, 0, 1.8);
+ bp->armature_polygons += ctube (0.7, 0.7, wire);
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef(240, 0.0, 0.0, 1.0);
+ glTranslatef(0.0, 4.2, -1);
+ bp->armature_polygons += ctube (0.5, 3, wire); /* axle 3 */
+ glTranslatef(0, 0, 1.8);
+ bp->armature_polygons += ctube (0.7, 0.7, wire);
+ glPopMatrix();
+
+ glTranslatef(0, 0, 1.5); /* center disk */
+ bp->armature_polygons += ctube (1.5, 2, wire);
+
+ glPushMatrix();
+ glRotatef(270, 0, 0, 1);
+ glRotatef(-10, 0, 1, 0);
+ glTranslatef(-2.2, 0, 0);
+ bp->armature_polygons += arm (4.0, 1.0, 0.5,
+ 2.0, 1.0, wire); /* arm 1 */
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef(30, 0, 0, 1);
+ glRotatef(-10, 0, 1, 0);
+ glTranslatef(-2.2, 0, 0);
+ bp->armature_polygons += arm (4.0, 1.0, 0.5,
+ 2.0, 1.0, wire); /* arm 2 */
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef(150, 0, 0, 1);
+ glRotatef(-10, 0, 1, 0);
+ glTranslatef(-2.2, 0, 0);
+ bp->armature_polygons += arm (4.0, 1.0, 0.5,
+ 2.0, 1.0, wire); /* arm 3 */
+ glPopMatrix();
+
+ glPopMatrix();
+
+ glEndList ();
+}
+
+
+static void
+planetary_gears (ModeInfo *mi)
+{
+ gears_configuration *bp = &bps[MI_SCREEN(mi)];
+ gear *g0, *g1, *g2, *g3, *g4;
+ GLfloat distance = 2.02;
+
+ bp->planetary_p = True;
+
+ g0 = new_gear (mi, 0);
+ g1 = new_gear (mi, 0);
+ g2 = new_gear (mi, 0);
+ g3 = new_gear (mi, 0);
+ g4 = new_gear (mi, 0);
+
+ if (! place_gear (mi, g0, 0)) abort();
+ if (! place_gear (mi, g1, 0)) abort();
+ if (! place_gear (mi, g2, 0)) abort();
+ if (! place_gear (mi, g3, 0)) abort();
+ if (! place_gear (mi, g4, 0)) abort();
+
+ g0->nteeth = 12 + (3 * (random() % 10)); /* must be multiple of 3 */
+ g0->tooth_w = g0->r / g0->nteeth;
+ g0->tooth_h = g0->tooth_w * 2.8;
+
+# define COPY(F) g4->F = g3->F = g2->F = g1->F = g0->F
+ COPY(r);
+ COPY(th);
+ COPY(nteeth);
+ COPY(tooth_w);
+ COPY(tooth_h);
+ COPY(tooth_slope);
+ COPY(inner_r);
+ COPY(inner_r2);
+ COPY(inner_r3);
+ COPY(thickness);
+ COPY(thickness2);
+ COPY(thickness3);
+ COPY(ratio);
+ COPY(size);
+# undef COPY
+
+ g1->x = cos (M_PI * 2 / 3) * g1->r * distance;
+ g1->y = sin (M_PI * 2 / 3) * g1->r * distance;
+
+ g2->x = cos (M_PI * 4 / 3) * g2->r * distance;
+ g2->y = sin (M_PI * 4 / 3) * g2->r * distance;
+
+ g3->x = cos (M_PI * 6 / 3) * g3->r * distance;
+ g3->y = sin (M_PI * 6 / 3) * g3->r * distance;
+
+ g4->x = 0;
+ g4->y = 0;
+ g4->th = -g3->th;
+
+ /* rotate central gear 1/2 tooth-size if odd number of teeth */
+ if (g4->nteeth & 1)
+ g4->th -= (180.0 / g4->nteeth);
+
+ g0->inverted_p = True;
+ g0->x = 0;
+ g0->y = 0;
+ g0->nteeth = g1->nteeth * 3;
+ g0->r = g1->r * 3.05;
+ g0->inner_r = g0->r * 0.8;
+ g0->inner_r2 = 0;
+ g0->inner_r3 = 0;
+ g0->th = g1->th + (180 / g0->nteeth);
+ g0->ratio = g1->ratio / 3;
+
+ g0->tooth_slope = 0;
+ g0->nubs = 3;
+ g0->spokes = 0;
+ g0->size = INVOLUTE_LARGE;
+
+ bp->gears = (gear **) calloc (6, sizeof(**bp->gears));
+ bp->ngears = 0;
+
+ bp->gears[bp->ngears++] = g1;
+ bp->gears[bp->ngears++] = g2;
+ bp->gears[bp->ngears++] = g3;
+ bp->gears[bp->ngears++] = g4;
+ bp->gears[bp->ngears++] = g0;
+}
+
+
+
+
+ENTRYPOINT void
+init_gears (ModeInfo *mi)
+{
+ gears_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_gears (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ if (! bp->rot)
+ {
+ double spin_speed = 0.5;
+ double wander_speed = 0.01;
+ double spin_accel = 0.25;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True
+ );
+ bp->trackball = gltrackball_init (True);
+ }
+
+ if (bp->gears)
+ {
+ for (i = 0; i < bp->ngears; i++)
+ free_gear (bp->gears[i]);
+ free (bp->gears);
+ bp->gears = 0;
+ bp->ngears = 0;
+ }
+
+ if (!(random() % 8))
+ {
+ planetary_gears (mi);
+ }
+ else
+ {
+ gear *g = 0;
+ int total_gears = MI_COUNT (mi);
+
+ bp->planetary_p = False;
+
+ if (total_gears <= 0)
+ total_gears = 3 + fabs (BELLRAND (8) - 4); /* 3 - 7, mostly 3. */
+ bp->gears = (gear **) calloc (total_gears+2, sizeof(**bp->gears));
+ bp->ngears = 0;
+
+ for (i = 0; i < total_gears; i++)
+ g = place_new_gear (mi, g);
+ }
+
+
+ /* Center gears in scene. */
+ {
+ GLfloat minx=99999, miny=99999, maxx=-99999, maxy=-99999;
+ int i;
+ for (i = 0; i < bp->ngears; i++)
+ {
+ gear *g = bp->gears[i];
+ if (g->x - g->r < minx) minx = g->x - g->r;
+ if (g->x + g->r > maxx) maxx = g->x + g->r;
+ if (g->y - g->r < miny) miny = g->y - g->r;
+ if (g->y + g->r > maxy) maxy = g->y + g->r;
+ }
+ bp->bbox.x1 = minx;
+ bp->bbox.y1 = miny;
+ bp->bbox.x2 = maxx;
+ bp->bbox.y2 = maxy;
+ }
+
+ /* Now render each gear into its display list.
+ */
+ for (i = 0; i < bp->ngears; i++)
+ {
+ gear *g = bp->gears[i];
+ g->dlist = glGenLists (1);
+ if (! g->dlist)
+ {
+ check_gl_error ("glGenLists");
+ abort();
+ }
+
+ glNewList (g->dlist, GL_COMPILE);
+ g->polygons += draw_involute_gear (g, wire);
+ glEndList ();
+ }
+ if (bp->planetary_p)
+ armature (mi);
+}
+
+
+ENTRYPOINT void
+draw_gears (ModeInfo *mi)
+{
+ gears_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef ((x - 0.5) * 4,
+ (y - 0.5) * 4,
+ (z - 0.5) * 7);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+
+ /* add a little rotation for -no-spin mode */
+ x -= 0.14;
+ y -= 0.06;
+
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ /* Center the scene's bounding box in the window,
+ and scale it to fit.
+ */
+ {
+ GLfloat w = bp->bbox.x2 - bp->bbox.x1;
+ GLfloat h = bp->bbox.y2 - bp->bbox.y1;
+ GLfloat s = 10.0 / (w > h ? w : h);
+ glScalef (s, s, s);
+ glTranslatef (-(bp->bbox.x1 + w/2),
+ -(bp->bbox.y1 + h/2),
+ 0);
+ }
+
+ mi->polygon_count = 0;
+
+ for (i = 0; i < bp->ngears; i++)
+ {
+ gear *g = bp->gears[i];
+
+ glPushMatrix();
+
+ glTranslatef (g->x, g->y, g->z);
+ glRotatef (g->th, 0, 0, 1);
+
+ glCallList (g->dlist);
+ mi->polygon_count += g->polygons;
+
+ glPopMatrix ();
+ }
+
+ if (bp->planetary_p)
+ {
+ glCallList (bp->armature_dlist);
+ mi->polygon_count += bp->armature_polygons;
+ }
+
+ glPopMatrix ();
+
+ /* spin gears */
+ if (!bp->button_down_p)
+ for (i = 0; i < bp->ngears; i++)
+ {
+ gear *g = bp->gears[i];
+ double off = g->ratio * 5 * speed;
+ if (g->th > 0)
+ g->th += off;
+ else
+ g->th -= off;
+ }
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT Bool
+gears_handle_event (ModeInfo *mi, XEvent *event)
+{
+ gears_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ init_gears (mi);
+ return True;
+ }
+
+ return False;
+}
+
+XSCREENSAVER_MODULE ("Gears", gears)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/gears.man b/hacks/glx/gears.man
new file mode 100644
index 0000000..a54a6af
--- /dev/null
+++ b/hacks/glx/gears.man
@@ -0,0 +1,79 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+gears - draw interlocking gears, for xscreensaver.
+.SH SYNOPSIS
+.B gears
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fIusecs\fP]
+[\-speed \fIfloat\fP]
+[\-no\-spin]
+[\-no\-wander]
+[-count \fIinteger\fP]
+[-wireframe]
+[-fps]
+.SH DESCRIPTION
+This draws a set of rotating gears.
+.SH OPTIONS
+.I gears
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between frames of the animation, in microseconds.
+Default: 30000 (0.03 seconds.)
+.TP 8
+.B \-speed \fIfloat\fP
+Larger numbers mean run faster. Default: 1.0.
+.TP 8
+.B \-no\-spin
+Don't rotate the object.
+.TP 8
+.B \-no\-wander
+Don't wander the object around the screen.
+.TP 8
+.B \-count \fIinteger\fP
+How many gears to draw. Default: 0 for random.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2007 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
+
+An earlier version of this program by Brian Paul was written in 1997;
+this version was rewritten from scratch by jwz in 2007.
diff --git a/hacks/glx/geodesic.c b/hacks/glx/geodesic.c
new file mode 100644
index 0000000..9ef2696
--- /dev/null
+++ b/hacks/glx/geodesic.c
@@ -0,0 +1,816 @@
+/* geodesic, Copyright (c) 2013-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 4 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_geodesic 0
+# define release_geodesic 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_MODE "mesh"
+
+typedef struct { double a, o; } LL; /* latitude + longitude */
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ int ncolors;
+ XColor *colors;
+ int ccolor, ccolor2;
+ GLfloat color1[4], color2[4];
+
+ GLfloat depth;
+ GLfloat delta;
+
+ GLfloat thickness;
+ GLfloat thickdelta;
+
+ GLfloat morph_ratio;
+
+ Bool random_p;
+ enum { WIRE, MESH, SOLID, STELLATED, STELLATED2 } mode;
+
+} geodesic_configuration;
+
+static geodesic_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static char *mode_str;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+ { "-wireframe", ".mode", XrmoptionNoArg, "wire" },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&mode_str, "mode", "Mode", DEF_MODE, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt geodesic_opts = {
+ countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Renders a triangle specified by 3 cartesian endpoints.
+ */
+static void
+triangle0 (ModeInfo *mi, XYZ p1, XYZ p2, XYZ p3)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat r = bp->thickness;
+
+ if (bp->mode == SOLID || bp->mode == STELLATED || bp->mode == STELLATED2)
+ r = 1;
+
+ if (r <= 0.001) r = 0.001;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bp->color1);
+
+ if (wire) r = 1;
+
+ if (r <= 0)
+ ;
+ else if (r >= 1) /* solid triangular face */
+ {
+ glFrontFace (GL_CCW);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ do_normal (p1.x, p1.y, p1.z,
+ p2.x, p2.y, p2.z,
+ p3.x, p3.y, p3.z);
+ glVertex3f (p1.x, p1.y, p1.z);
+ glVertex3f (p2.x, p2.y, p2.z);
+ glVertex3f (p3.x, p3.y, p3.z);
+ glEnd();
+ mi->polygon_count++;
+ }
+ else /* mesh: triangular face with a triangular hole */
+ {
+ XYZ p1b, p2b, p3b, c;
+ GLfloat d = 0.98;
+
+ c.x = (p1.x + p2.x + p3.x) / 3;
+ c.y = (p1.y + p2.y + p3.y) / 3;
+ c.z = (p1.z + p2.z + p3.z) / 3;
+
+ p1b.x = p1.x + (r * (c.x - p1.x));
+ p1b.y = p1.y + (r * (c.y - p1.y));
+ p1b.z = p1.z + (r * (c.z - p1.z));
+
+ p2b.x = p2.x + (r * (c.x - p2.x));
+ p2b.y = p2.y + (r * (c.y - p2.y));
+ p2b.z = p2.z + (r * (c.z - p2.z));
+
+ p3b.x = p3.x + (r * (c.x - p3.x));
+ p3b.y = p3.y + (r * (c.y - p3.y));
+ p3b.z = p3.z + (r * (c.z - p3.z));
+
+ /* Outside faces */
+
+ do_normal (p1.x, p1.y, p1.z,
+ p2.x, p2.y, p2.z,
+ p3.x, p3.y, p3.z);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (p1.x, p1.y, p1.z);
+ glVertex3f (p1b.x, p1b.y, p1b.z);
+ glVertex3f (p3b.x, p3b.y, p3b.z);
+ glVertex3f (p3.x, p3.y, p3.z);
+ mi->polygon_count++;
+
+ glVertex3f (p1.x, p1.y, p1.z);
+ glVertex3f (p2.x, p2.y, p2.z);
+ glVertex3f (p2b.x, p2b.y, p2b.z);
+ glVertex3f (p1b.x, p1b.y, p1b.z);
+ mi->polygon_count++;
+
+ glVertex3f (p2.x, p2.y, p2.z);
+ glVertex3f (p3.x, p3.y, p3.z);
+ glVertex3f (p3b.x, p3b.y, p3b.z);
+ glVertex3f (p2b.x, p2b.y, p2b.z);
+ mi->polygon_count++;
+ glEnd();
+
+ /* Inside faces */
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bp->color2);
+
+ do_normal (p3.x, p3.y, p3.z,
+ p3b.x, p3b.y, p3b.z,
+ p1b.x, p1b.y, p1b.z);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (d * p3.x, d * p3.y, d * p3.z);
+ glVertex3f (d * p3b.x, d * p3b.y, d * p3b.z);
+ glVertex3f (d * p1b.x, d * p1b.y, d * p1b.z);
+ glVertex3f (d * p1.x, d * p1.y, d * p1.z);
+ mi->polygon_count++;
+
+ glVertex3f (d * p1b.x, d * p1b.y, d * p1b.z);
+ glVertex3f (d * p2b.x, d * p2b.y, d * p2b.z);
+ glVertex3f (d * p2.x, d * p2.y, d * p2.z);
+ glVertex3f (d * p1.x, d * p1.y, d * p1.z);
+ mi->polygon_count++;
+
+ glVertex3f (d * p2b.x, d * p2b.y, d * p2b.z);
+ glVertex3f (d * p3b.x, d * p3b.y, d * p3b.z);
+ glVertex3f (d * p3.x, d * p3.y, d * p3.z);
+ glVertex3f (d * p2.x, d * p2.y, d * p2.z);
+ mi->polygon_count++;
+ glEnd();
+
+
+ /* Connecting edges */
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bp->color1);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+
+ do_normal (p1b.x, p1b.y, p1b.z,
+ p2b.x, p2b.y, p2b.z,
+ p2b.x * d, p2b.y * d, p2b.z * d);
+ glVertex3f (p1b.x, p1b.y, p1b.z);
+ glVertex3f (p2b.x, p2b.y, p2b.z);
+ glVertex3f (p2b.x * d, p2b.y * d, p2b.z * d);
+ glVertex3f (p1b.x * d, p1b.y * d, p1b.z * d);
+ mi->polygon_count++;
+
+ do_normal (p2b.x, p2b.y, p2b.z,
+ p3b.x, p3b.y, p3b.z,
+ p3b.x * d, p3b.y * d, p3b.z * d);
+ glVertex3f (p2b.x, p2b.y, p2b.z);
+ glVertex3f (p3b.x, p3b.y, p3b.z);
+ glVertex3f (p3b.x * d, p3b.y * d, p3b.z * d);
+ glVertex3f (p2b.x * d, p2b.y * d, p2b.z * d);
+ mi->polygon_count++;
+
+ do_normal (p3b.x, p3b.y, p3b.z,
+ p1b.x, p1b.y, p1b.z,
+ p1b.x * d, p1b.y * d, p1b.z * d);
+ glVertex3f (p3b.x, p3b.y, p3b.z);
+ glVertex3f (p1b.x, p1b.y, p1b.z);
+ glVertex3f (p1b.x * d, p1b.y * d, p1b.z * d);
+ glVertex3f (p3b.x * d, p3b.y * d, p3b.z * d);
+ mi->polygon_count++;
+ glEnd();
+ }
+}
+
+
+/* Renders a triangle specified by 3 polar endpoints.
+ */
+static void
+triangle1 (ModeInfo *mi, LL v1, LL v2, LL v3)
+{
+ XYZ p1, p2, p3;
+
+ p1.x = cos (v1.a) * cos (v1.o);
+ p1.y = cos (v1.a) * sin (v1.o);
+ p1.z = sin (v1.a);
+
+ p2.x = cos (v2.a) * cos (v2.o);
+ p2.y = cos (v2.a) * sin (v2.o);
+ p2.z = sin (v2.a);
+
+ p3.x = cos (v3.a) * cos (v3.o);
+ p3.y = cos (v3.a) * sin (v3.o);
+ p3.z = sin (v3.a);
+
+ triangle0 (mi, p1, p2, p3);
+}
+
+
+/* Computes the midpoint of a line between two polar coords.
+ */
+static void
+midpoint2 (LL v1, LL v2, LL *vm_ret,
+ XYZ *p1_ret, XYZ *p2_ret, XYZ *pm_ret)
+{
+ XYZ p1, p2, pm;
+ LL vm;
+ GLfloat hyp;
+
+ p1.x = cos (v1.a) * cos (v1.o);
+ p1.y = cos (v1.a) * sin (v1.o);
+ p1.z = sin (v1.a);
+
+ p2.x = cos (v2.a) * cos (v2.o);
+ p2.y = cos (v2.a) * sin (v2.o);
+ p2.z = sin (v2.a);
+
+ pm.x = (p1.x + p2.x) / 2;
+ pm.y = (p1.y + p2.y) / 2;
+ pm.z = (p1.z + p2.z) / 2;
+
+ vm.o = atan2 (pm.y, pm.x);
+ hyp = sqrt (pm.x * pm.x + pm.y * pm.y);
+ vm.a = atan2 (pm.z, hyp);
+
+ *p1_ret = p1;
+ *p2_ret = p2;
+ *pm_ret = pm;
+ *vm_ret = vm;
+}
+
+
+/* Computes the midpoint of a triangle specified in polar coords.
+ */
+static void
+midpoint3 (LL v1, LL v2, LL v3, LL *vm_ret,
+ XYZ *p1_ret, XYZ *p2_ret, XYZ *p3_ret, XYZ *pm_ret)
+{
+ XYZ p1, p2, p3, pm;
+ LL vm;
+ GLfloat hyp;
+
+ p1.x = cos (v1.a) * cos (v1.o);
+ p1.y = cos (v1.a) * sin (v1.o);
+ p1.z = sin (v1.a);
+
+ p2.x = cos (v2.a) * cos (v2.o);
+ p2.y = cos (v2.a) * sin (v2.o);
+ p2.z = sin (v2.a);
+
+ p3.x = cos (v3.a) * cos (v3.o);
+ p3.y = cos (v3.a) * sin (v3.o);
+ p3.z = sin (v3.a);
+
+ pm.x = (p1.x + p2.x + p3.x) / 3;
+ pm.y = (p1.y + p2.y + p3.y) / 3;
+ pm.z = (p1.z + p2.z + p3.z) / 3;
+
+ vm.o = atan2 (pm.y, pm.x);
+ hyp = sqrt (pm.x * pm.x + pm.y * pm.y);
+ vm.a = atan2 (pm.z, hyp);
+
+ *p1_ret = p1;
+ *p2_ret = p2;
+ *p3_ret = p3;
+ *pm_ret = pm;
+ *vm_ret = vm;
+}
+
+
+/* Renders a triangular geodesic facet to the given depth.
+ */
+static void
+triangle (ModeInfo *mi, LL v1, LL v2, LL v3, int depth)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (depth <= 0)
+ triangle1 (mi, v1, v2, v3);
+ else
+ {
+ LL v12, v23, v13;
+ XYZ p1, p2, p3, p12, p23, p13;
+ GLfloat r = bp->morph_ratio;
+
+ midpoint2 (v1, v2, &v12, &p1, &p2, &p12);
+ midpoint2 (v2, v3, &v23, &p2, &p3, &p23);
+ midpoint2 (v1, v3, &v13, &p1, &p3, &p13);
+ depth--;
+
+ if (depth == 0 &&
+ r != 0 &&
+ (bp->mode == STELLATED || bp->mode == STELLATED2))
+ { /* morph between flat and stellated faces */
+ XYZ pc, pc2;
+ LL vc;
+ midpoint3 (v1, v2, v3, &vc, &p1, &p2, &p3, &pc);
+
+ pc2.x = cos (vc.a) * cos (vc.o);
+ pc2.y = cos (vc.a) * sin (vc.o);
+ pc2.z = sin (vc.a);
+
+ pc.x = pc.x + r * (pc2.x - pc.x);
+ pc.y = pc.y + r * (pc2.y - pc.y);
+ pc.z = pc.z + r * (pc2.z - pc.z);
+
+ triangle0 (mi, p1, p2, pc);
+ triangle0 (mi, p2, p3, pc);
+ triangle0 (mi, p3, p1, pc);
+ }
+ else if (depth == 0 && r < 1)
+ { /* morph between flat and sphere-oid faces */
+ XYZ p12b, p23b, p13b;
+
+ p12b.x = cos (v12.a) * cos (v12.o);
+ p12b.y = cos (v12.a) * sin (v12.o);
+ p12b.z = sin (v12.a);
+
+ p23b.x = cos (v23.a) * cos (v23.o);
+ p23b.y = cos (v23.a) * sin (v23.o);
+ p23b.z = sin (v23.a);
+
+ p13b.x = cos (v13.a) * cos (v13.o);
+ p13b.y = cos (v13.a) * sin (v13.o);
+ p13b.z = sin (v13.a);
+
+ p12.x = p12.x + r * (p12b.x - p12.x);
+ p12.y = p12.y + r * (p12b.y - p12.y);
+ p12.z = p12.z + r * (p12b.z - p12.z);
+
+ p23.x = p23.x + r * (p23b.x - p23.x);
+ p23.y = p23.y + r * (p23b.y - p23.y);
+ p23.z = p23.z + r * (p23b.z - p23.z);
+
+ p13.x = p13.x + r * (p13b.x - p13.x);
+ p13.y = p13.y + r * (p13b.y - p13.y);
+ p13.z = p13.z + r * (p13b.z - p13.z);
+
+ triangle0 (mi, p1, p12, p13);
+ triangle0 (mi, p12, p2, p23);
+ triangle0 (mi, p13, p23, p3);
+ triangle0 (mi, p12, p23, p13);
+ }
+ else
+ {
+ triangle (mi, v1, v12, v13, depth);
+ triangle (mi, v12, v2, v23, depth);
+ triangle (mi, v13, v23, v3, depth);
+ triangle (mi, v12, v23, v13, depth);
+ }
+ }
+}
+
+
+/* Renders a geodesic sphere to the given depth (frequency).
+ */
+static void
+make_geodesic (ModeInfo *mi, int depth)
+{
+ GLfloat th0 = atan (0.5); /* lat division: 26.57 deg */
+ GLfloat s = M_PI / 5; /* lon division: 72 deg */
+ int i;
+
+ for (i = 0; i < 10; i++)
+ {
+ GLfloat th1 = s * i;
+ GLfloat th2 = s * (i+1);
+ GLfloat th3 = s * (i+2);
+ LL v1, v2, v3, vc;
+ v1.a = th0; v1.o = th1;
+ v2.a = th0; v2.o = th3;
+ v3.a = -th0; v3.o = th2;
+ vc.a = M_PI/2; vc.o = th2;
+
+ if (i & 1) /* north */
+ {
+ triangle (mi, v1, v2, vc, depth);
+ triangle (mi, v2, v1, v3, depth);
+ }
+ else /* south */
+ {
+ v1.a = -v1.a;
+ v2.a = -v2.a;
+ v3.a = -v3.a;
+ vc.a = -vc.a;
+ triangle (mi, v2, v1, vc, depth);
+ triangle (mi, v1, v2, v3, depth);
+ }
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_geodesic (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+
+ENTRYPOINT void
+init_geodesic (ModeInfo *mi)
+{
+ geodesic_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_geodesic (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ /* This comes first because it sets wire. */
+ if (!mode_str || !*mode_str)
+ mode_str = DEF_MODE;
+ if (!strcasecmp(mode_str, "random")) {
+ bp->random_p = 1;
+ bp->mode = MESH + (random() % (STELLATED2 - MESH + 1));
+ } else if (!strcasecmp(mode_str, "mesh")) {
+ bp->mode = MESH;
+ } else if (!strcasecmp(mode_str, "solid")) {
+ bp->mode = SOLID;
+ } else if (!strcasecmp(mode_str, "stellated")) {
+ bp->mode = STELLATED;
+ } else if (!strcasecmp(mode_str, "stellated2")) {
+ bp->mode = STELLATED2;
+ } else if (!strcasecmp(mode_str, "wire")) {
+ bp->mode = WIRE;
+ MI_IS_WIREFRAME(mi) = wire = 1;
+ } else {
+ fprintf (stderr, "%s: unknown mode: %s\n", progname, mode_str);
+ exit (1);
+ }
+
+
+ {
+ static GLfloat cspec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat shiny = 128.0;
+
+ static GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ static GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ static GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ static GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, cspec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+
+ glLineWidth (3);
+ }
+
+ if (! wire)
+ {
+ glEnable (GL_DEPTH_TEST);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ /* Actually this looks pretty good in -wire with lighting! */
+ glEnable (GL_LIGHTING);
+ glEnable (GL_LIGHT0);
+
+ if (! bp->rot)
+ {
+ double spin_speed = 0.25 * speed;
+ double wander_speed = 0.01 * speed;
+ double spin_accel = 0.2;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ if (MI_COUNT(mi) < 1) MI_COUNT(mi) = 1;
+
+ bp->ncolors = 1024;
+ if (! bp->colors)
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ bp->ccolor = 0;
+ bp->depth = 1; /* start 1 up from the icosahedron */
+ bp->delta = 0.003;
+
+#if 0
+ bp->thickness = 1;
+ bp->thickdelta = 0.0007;
+#else
+ bp->thickness = 0.1;
+ bp->thickdelta = 0;
+#endif
+}
+
+
+ENTRYPOINT Bool
+geodesic_handle_event (ModeInfo *mi, XEvent *event)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ mode_str = "random";
+ init_geodesic (mi);
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+draw_geodesic (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ if (! wire)
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ bp->color1[0] = bp->colors[bp->ccolor].red / 65536.0;
+ bp->color1[1] = bp->colors[bp->ccolor].green / 65536.0;
+ bp->color1[2] = bp->colors[bp->ccolor].blue / 65536.0;
+ bp->color1[3] = 1;
+
+ bp->color2[0] = bp->colors[bp->ccolor2].red / 65536.0;
+ bp->color2[1] = bp->colors[bp->ccolor2].green / 65536.0;
+ bp->color2[2] = bp->colors[bp->ccolor2].blue / 65536.0;
+ bp->color2[3] = 1;
+
+ bp->ccolor = (bp->ccolor + 1) % bp->ncolors;
+ bp->ccolor2 = (bp->ccolor + bp->ncolors / 2) % bp->ncolors;
+
+ mi->polygon_count = 0;
+
+ glScalef (10, 10, 10);
+
+ {
+ GLfloat r = bp->depth - floor(bp->depth);
+ GLfloat alpha, morph1, morph2;
+ int d1, d2;
+
+ /* Two ranges: first for fading in the new segments.
+ Second for morphing the segments into position.
+ */
+ GLfloat range = 0.15;
+ GLfloat min1 = (0.5 - range) / 2;
+ GLfloat max1 = 0.5 - min1;
+ GLfloat min2 = 0.5 + min1;
+ GLfloat max2 = 0.5 + max1;
+
+ if (r < min1) /* old alone */
+ {
+ d1 = d2 = floor (bp->depth);
+ morph1 = morph2 = 1;
+ alpha = 1;
+ }
+ else if (r < max1 && /* fade to new flat */
+ (bp->mode == MESH ||
+ bp->mode == STELLATED ||
+ bp->mode == STELLATED2))
+ {
+ d1 = floor (bp->depth);
+ d2 = ceil (bp->depth);
+ morph1 = 1;
+ morph2 = 0;
+ alpha = (r - min1) / (max1 - min1);
+
+ if (bp->mode == STELLATED || bp->mode == STELLATED2)
+ {
+ morph1 = 1 - alpha; /* de-stellate while fading out */
+ morph1 = 2 * (morph1 - 0.5); /* do it faster */
+ if (morph1 < 0) morph1 = 0;
+ }
+ }
+ else if (r < min2) /* new flat */
+ {
+ d1 = d2 = ceil (bp->depth);
+ morph1 = morph2 = 0;
+ alpha = 1;
+ }
+ else if (r < max2) /* morph */
+ {
+ d1 = d2 = ceil (bp->depth);
+ morph1 = morph2 = (r - min2) / (max2 - min2);
+ alpha = 1;
+ }
+ else /* new alone */
+ {
+ d1 = d2 = ceil (bp->depth);
+ morph1 = morph2 = 1;
+ alpha = 1;
+ }
+
+ mi->recursion_depth = d2 + r;
+
+ if (bp->mode == STELLATED2)
+ {
+ morph1 = -morph1;
+ morph2 = -morph2;
+ }
+
+ if (d1 != d2)
+ {
+ if (alpha > 0.5) /* always draw the more transparent one first */
+ {
+ int s1; GLfloat s2;
+ s1 = d1; d1 = d2; d2 = s1;
+ s2 = morph1; morph1 = morph2; morph2 = s2;
+ alpha = 1 - alpha;
+ }
+ bp->color1[3] = 1 - alpha;
+ bp->color2[3] = 1 - alpha;
+
+ if (! wire)
+ glDisable (GL_POLYGON_OFFSET_FILL);
+
+ bp->morph_ratio = morph1;
+ make_geodesic (mi, d1);
+
+ /* Make the less-transparent object take precedence */
+ if (!wire)
+ {
+ glEnable (GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset (1.0, 1.0);
+ }
+ }
+
+ bp->color1[3] = alpha;
+ bp->color2[3] = alpha;
+
+ bp->morph_ratio = morph2;
+ make_geodesic (mi, d2);
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+
+
+ if (! bp->button_down_p)
+ {
+ bp->depth += speed * bp->delta;
+ bp->thickness += speed * bp->thickdelta;
+
+ if (bp->depth > MI_COUNT(mi)-1)
+ {
+ bp->depth = MI_COUNT(mi)-1;
+ bp->delta = -fabs (bp->delta);
+ }
+ else if (bp->depth < 0)
+ {
+ bp->depth = 0;
+ bp->delta = fabs (bp->delta);
+
+ /* Randomize the mode again when we hit the bottom state.
+ #### I wish this did a fade instead of a jump-cut.
+ */
+ if (bp->random_p)
+ bp->mode = MESH + (random() % (STELLATED2 - MESH + 1));
+ }
+
+ if (bp->thickness > 1)
+ {
+ bp->thickness = 1;
+ bp->thickdelta = -fabs (bp->thickdelta);
+ }
+ else if (bp->thickness < 0)
+ {
+ bp->thickness = 0;
+ bp->thickdelta = fabs (bp->thickdelta);
+ }
+ }
+}
+
+XSCREENSAVER_MODULE ("Geodesic", geodesic)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/geodesic.man b/hacks/glx/geodesic.man
new file mode 100644
index 0000000..4a408ca
--- /dev/null
+++ b/hacks/glx/geodesic.man
@@ -0,0 +1,79 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+geodesic - animates a mesh geodesic sphere.
+.SH SYNOPSIS
+.B geodesic
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-mode \fImode\fP]
+[\-no-wander]
+[\-no-spin]
+[\-fps]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+.SH DESCRIPTION
+Animates a mesh geodesic sphere of increasing and decreasing complexity. A
+geodesic sphere is an icosohedron whose equilateral faces are sub-divided
+into non-equilateral triangles to more closely approximate a sphere.
+
+The animation shows the equilateral triangles subdivided into four
+coplanar equilateral triangles; and then inflated outward, causing the
+sub-triangles to no longer be equilateral, but to more closely
+approximate the surface of a sphere.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mode mesh | solid | stellated | stellated2 | wire
+Face/edge display style. Default mesh.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the object should spin.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-count \fInumber\fP
+Depth (frequency) of the geodesic sphere. Default: 4.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2013 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/geodesicgears.c b/hacks/glx/geodesicgears.c
new file mode 100644
index 0000000..ecc7f26
--- /dev/null
+++ b/hacks/glx/geodesicgears.c
@@ -0,0 +1,1803 @@
+/* geodesicgears, Copyright (c) 2014-2015 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Inspired by http://bugman123.com/Gears/
+ * and by http://kennethsnelson.net/PortraitOfAnAtom.pdf
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 4 \n" \
+ "*wireframe: False \n" \
+ "*showFPS: False \n" \
+ "*texFontCacheSize: 100 \n" \
+ "*suppressRotationAnimation: True\n" \
+ "*font: -*-helvetica-medium-r-normal-*-*-160-*-*-*-*-*-*\n" \
+
+# define release_geodesic 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "involute.h"
+#include "colors.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+#include "texfont.h"
+
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_LABELS "False"
+#define DEF_NUMBERS "False"
+#define DEF_TIMEOUT "20"
+
+typedef struct { double a, o; } LL; /* latitude + longitude */
+
+/* 10:6 is a mismesh. */
+
+static const struct {
+ enum { PRISM, OCTO, DECA, G14, G18, G32, G92, G182 } type;
+ const GLfloat args[5];
+} gear_templates[] = {
+ { PRISM },
+ { OCTO },
+ { DECA },
+ { G14 },
+ { G18 },
+ { G32, { 15, 6, 0.4535 }}, /* teeth1, teeth2, radius1 */
+ { G32, { 15, 12, 0.3560 }},
+ { G32, { 20, 6, 0.4850 }},
+ { G32, { 20, 12, 0.3995 }}, /* double of 10:6 */
+ { G32, { 20, 18, 0.3375 }},
+ { G32, { 25, 6, 0.5065 }},
+ { G32, { 25, 12, 0.4300 }},
+ { G32, { 25, 18, 0.3725 }},
+ { G32, { 25, 24, 0.3270 }},
+ { G32, { 30, 12, 0.4535 }}, /* double of 15:6 */
+ { G32, { 30, 18, 0.3995 }},
+ { G32, { 30, 24, 0.3560 }}, /* double of 15:12 */
+ { G32, { 30, 30, 0.3205 }},
+ { G32, { 35, 12, 0.4710 }},
+ { G32, { 35, 18, 0.4208 }},
+ { G32, { 35, 24, 0.3800 }},
+ { G32, { 35, 30, 0.3450 }},
+ { G32, { 35, 36, 0.3160 }},
+ { G32, { 40, 12, 0.4850 }}, /* double of 20:6 */
+ { G32, { 40, 24, 0.3995 }}, /* double of 10:6, 20:12 */
+/*{ G32, { 40, 36, 0.3375 }},*/ /* double of 20:18 */
+ { G32, { 50, 12, 0.5065 }}, /* double of 25:6 */
+ { G32, { 50, 24, 0.4300 }}, /* double of 25:12 */
+
+ /* These all have phase errors and don't always mesh properly.
+ Maybe we should just omit them? */
+
+ { G92, { 35, 36, 16, 0.2660, 0.366 }}, /* teeth1, 2, 3, r1, pitch3 */
+ { G92, { 25, 36, 11, 0.2270, 0.315 }},
+/*{ G92, { 15, 15, 8, 0.2650, 0.356 }},*/
+/*{ G92, { 20, 21, 8, 0.2760, 0.355 }},*/
+ { G92, { 25, 27, 16, 0.2320, 0.359 }},
+ { G92, { 20, 36, 11, 0.1875, 0.283 }},
+ { G92, { 30, 30, 16, 0.2585, 0.374 }}, /* double of 15:15:8 */
+ { G92, { 20, 33, 11, 0.1970, 0.293 }},
+/*{ G92, { 10, 12, 8, 0.2030, 0.345 }},*/
+ { G92, { 30, 33, 16, 0.2455, 0.354 }},
+/*{ G92, { 25, 24, 8, 0.3050, 0.375 }},*/
+ { G92, { 20, 24, 16, 0.2030, 0.346 }},
+};
+
+
+typedef struct sphere_gear sphere_gear;
+struct sphere_gear {
+ int id; /* name, for debugging */
+ XYZ axis; /* the vector on which this gear's axis lies */
+ int direction; /* rotation, +1 or -1 */
+ GLfloat offset; /* rotational degrees from parent gear */
+ sphere_gear *parent; /* gear driving this one, or 0 for root */
+ sphere_gear **children; /* gears driven by this one (no loops) */
+ sphere_gear **neighbors; /* gears touching this one (circular!) */
+ int nchildren, children_size;
+ int nneighbors, neighbors_size;
+ const gear *g; /* shape of this gear (shared) */
+};
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ int ncolors;
+ XColor *colors;
+ GLfloat color1[4], color2[4];
+ texture_font_data *font;
+
+ int nshapes, shapes_size; /* how many 'gear' objects there are */
+ int ngears, gears_size; /* how many 'sphere_gear' objects there are */
+ gear *shapes;
+ sphere_gear *gears;
+
+ int which;
+ int mode; /* 0 = normal, 1 = out, 2 = in */
+ int mode_tick;
+ int next; /* 0 = random, -1 = back, 1 = forward */
+ time_t draw_time;
+ int draw_tick;
+ char *desc;
+
+ GLfloat th; /* rotation of the root sphere_gear in degrees. */
+
+} geodesic_configuration;
+
+static geodesic_configuration *bps = NULL;
+
+static int timeout;
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static Bool do_labels;
+static Bool do_numbers;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-labels", ".labels", XrmoptionNoArg, "True" },
+ { "+labels", ".labels", XrmoptionNoArg, "False" },
+ { "-numbers", ".numbers",XrmoptionNoArg, "True" },
+ { "+numbers", ".numbers",XrmoptionNoArg, "False" },
+ { "-timeout", ".timeout",XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&do_labels, "labels", "Labels", DEF_LABELS, t_Bool},
+ {&do_numbers,"numbers","Numbers",DEF_NUMBERS,t_Bool},
+ {&timeout, "timeout","Seconds",DEF_TIMEOUT,t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt geodesic_opts = {
+ countof(opts), opts, countof(vars), vars, NULL};
+
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+
+
+static XYZ
+cross_product (XYZ a, XYZ b)
+{
+ XYZ 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);
+ return c;
+}
+
+
+static GLfloat
+dot_product (XYZ a, XYZ b)
+{
+ return (a.x * b.x) + (a.y * b.y) + (a.z * b.z);
+}
+
+
+static XYZ
+normalize (XYZ v)
+{
+ GLfloat d = sqrt ((v.x * v.x) + (v.y * v.y) + (v.z * v.z));
+ if (d == 0)
+ v.x = v.y = v.z = 0;
+ else
+ {
+ v.x /= d;
+ v.y /= d;
+ v.z /= d;
+ }
+ return v;
+}
+
+
+static XYZ
+polar_to_cartesian (LL v)
+{
+ XYZ p;
+ p.x = cos (v.a) * cos (v.o);
+ p.y = cos (v.a) * sin (v.o);
+ p.z = sin (v.a);
+ return p;
+}
+
+
+
+
+static gear *
+add_gear_shape (ModeInfo *mi, GLfloat radius, int teeth)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ gear *g;
+ int i;
+
+ if (bp->nshapes >= bp->shapes_size - 1)
+ {
+ bp->shapes_size = bp->shapes_size * 1.2 + 4;
+ bp->shapes = (gear *)
+ realloc (bp->shapes, bp->shapes_size * sizeof(*bp->shapes));
+ }
+ g = &bp->shapes[bp->nshapes++];
+
+ memset (g, 0, sizeof(*g));
+
+ g->r = radius;
+ g->nteeth = teeth;
+ g->ratio = 1;
+
+ g->tooth_h = g->r / (teeth * 0.4);
+
+ if (g->tooth_h > 0.06) /* stubbier teeth when small tooth count. */
+ g->tooth_h *= 0.6;
+
+ g->thickness = 0.05 + BELLRAND(0.15);
+ g->thickness2 = g->thickness / 4;
+ g->thickness3 = g->thickness;
+ g->size = wire ? INVOLUTE_SMALL : INVOLUTE_LARGE;
+
+ /* Move the disc's origin inward to make the edge of the disc be tangent
+ to the unit sphere. */
+ g->z = 1 - sqrt (1 - (g->r * g->r));
+
+ /* #### This isn't quite right */
+ g->tooth_slope = 1 + ((g->z * 2) / g->r);
+
+
+ /* Decide on shape of gear interior:
+ - just a ring with teeth;
+ - that, plus a thinner in-set "plate" in the middle;
+ - that, plus a thin raised "lip" on the inner plate;
+ - or, a wide lip (really, a thicker third inner plate.)
+ */
+ if (wire)
+ ;
+ else if ((random() % 10) == 0)
+ {
+ /* inner_r can go all the way in; there's no inset disc. */
+ g->inner_r = (g->r * 0.3) + frand((g->r - g->tooth_h/2) * 0.6);
+ g->inner_r2 = 0;
+ g->inner_r3 = 0;
+ }
+ else
+ {
+ /* inner_r doesn't go in very far; inner_r2 is an inset disc. */
+ g->inner_r = (g->r * 0.5) + frand((g->r - g->tooth_h) * 0.4);
+ g->inner_r2 = (g->r * 0.1) + frand(g->inner_r * 0.5);
+ g->inner_r3 = 0;
+
+ if (g->inner_r2 > (g->r * 0.2))
+ {
+ int nn = (random() % 10);
+ if (nn <= 2)
+ g->inner_r3 = (g->r * 0.1) + frand(g->inner_r2 * 0.2);
+ else if (nn <= 7 && g->inner_r2 >= 0.1)
+ g->inner_r3 = g->inner_r2 - 0.01;
+ }
+ }
+
+ /* If we have three discs, sometimes make the middle disc be spokes.
+ */
+ if (g->inner_r3 && ((random() % 5) == 0))
+ {
+ g->spokes = 2 + BELLRAND (5);
+ g->spoke_thickness = 1 + frand(7.0);
+ if (g->spokes == 2 && g->spoke_thickness < 2)
+ g->spoke_thickness += 1;
+ }
+
+ /* Sometimes add little nubbly bits, if there is room.
+ */
+ if (!wire && g->nteeth > 5)
+ {
+ double size = 0;
+ involute_biggest_ring (g, 0, &size, 0);
+ if (size > g->r * 0.2 && (random() % 5) == 0)
+ {
+ g->nubs = 1 + (random() % 16);
+ if (g->nubs > 8) g->nubs = 1;
+ }
+ }
+
+ /* Decide how complex the polygon model should be.
+ */
+ {
+ double pix = g->tooth_h * MI_HEIGHT(mi); /* approx. tooth size in pixels */
+ if (pix <= 4) g->size = INVOLUTE_SMALL;
+ else if (pix <= 8) g->size = INVOLUTE_MEDIUM;
+ else if (pix <= 30) g->size = INVOLUTE_LARGE;
+ else g->size = INVOLUTE_HUGE;
+ }
+
+ if (g->inner_r3 > g->inner_r2) abort();
+ if (g->inner_r2 > g->inner_r) abort();
+ if (g->inner_r > g->r) abort();
+
+ i = random() % bp->ncolors;
+ g->color[0] = bp->colors[i].red / 65536.0;
+ g->color[1] = bp->colors[i].green / 65536.0;
+ g->color[2] = bp->colors[i].blue / 65536.0;
+ g->color[3] = 1;
+
+ i = (i + bp->ncolors / 2) % bp->ncolors;
+ g->color2[0] = bp->colors[i].red / 65536.0;
+ g->color2[1] = bp->colors[i].green / 65536.0;
+ g->color2[2] = bp->colors[i].blue / 65536.0;
+ g->color2[3] = 1;
+
+ g->dlist = glGenLists (1);
+ glNewList (g->dlist, GL_COMPILE);
+
+#if 1
+ {
+ gear G, *g2 = &G;
+ *g2 = *g;
+
+ /* Move the gear inward so that its outer edge is on the disc, instead
+ of its midpoint. */
+ g2->z += g2->thickness/2;
+
+ /* 'radius' is at the surface but 'g->r' is at the center, so we need
+ to reverse the slope computation that involute.c does. */
+ g2->r /= (1 + (g2->thickness * g2->tooth_slope / 2));
+
+ glPushMatrix();
+ glTranslatef(g2->x, g2->y, -g2->z);
+
+ /* Line up the center of the point of tooth 0 with "up". */
+ glRotatef (90, 0, 0, 1);
+ glRotatef (180, 0, 1, 0);
+ glRotatef (-360.0 / g2->nteeth / 4, 0, 0, 1);
+
+ g->polygons = draw_involute_gear (g2, wire);
+ glPopMatrix();
+ }
+# else /* draw discs */
+ {
+ glPushMatrix();
+ glTranslatef(g->x, g->y, -g->z);
+ glLineWidth (2);
+ glFrontFace (GL_CCW);
+ glNormal3f(0, 0, 1);
+ glColor3f(0, 0, 0);
+ glDisable (GL_LIGHTING);
+
+ glBegin(GL_LINES);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, radius, 0);
+ glEnd();
+
+ glColor3f(0.5, 0.5, 0.5);
+ glBegin(wire ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+ {
+ GLfloat th;
+ GLfloat step = M_PI * 2 / 128;
+ /* radius *= 1.005; */
+ glVertex3f (0, 0, 0);
+ for (th = 0; th < M_PI * 2 + step; th += step)
+ {
+ GLfloat x = cos(th) * radius;
+ GLfloat y = sin(th) * radius;
+ glVertex3f (x, y, 0);
+ }
+ }
+ glEnd();
+ if (!wire) glEnable(GL_LIGHTING);
+ glPopMatrix();
+ }
+# endif /* 0 */
+
+ glEndList ();
+
+ return g;
+}
+
+
+static void
+add_sphere_gear (ModeInfo *mi, gear *g, XYZ axis)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ sphere_gear *gg;
+ int i;
+
+ axis = normalize (axis);
+
+ /* If there's already a gear on this axis, don't duplicate it. */
+ for (i = 0; i < bp->ngears; i++)
+ {
+ XYZ o = bp->gears[i].axis;
+ if (o.x == axis.x && o.y == axis.y && o.z == axis.z)
+ return;
+ }
+
+ if (bp->ngears >= bp->gears_size - 1)
+ {
+ bp->gears_size = bp->gears_size * 1.2 + 10;
+ bp->gears = (sphere_gear *)
+ realloc (bp->gears, bp->gears_size * sizeof(*bp->gears));
+ }
+
+ gg = &bp->gears[bp->ngears];
+ memset (gg, 0, sizeof(*gg));
+ gg->id = bp->ngears;
+ gg->axis = axis;
+ gg->direction = 0;
+ gg->g = g;
+ bp->ngears++;
+}
+
+
+static void
+free_sphere_gears (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < bp->nshapes; i++)
+ {
+ if (bp->shapes[i].dlist)
+ glDeleteLists (bp->shapes[i].dlist, 1);
+ }
+ free (bp->shapes);
+ bp->nshapes = 0;
+ bp->shapes_size = 0;
+ bp->shapes = 0;
+
+ for (i = 0; i < bp->ngears; i++)
+ {
+ sphere_gear *g = &bp->gears[i];
+ if (g->children)
+ free (g->children);
+ if (g->neighbors)
+ free (g->neighbors);
+ }
+ free (bp->gears);
+ bp->ngears = 0;
+ bp->gears_size = 0;
+ bp->gears = 0;
+}
+
+
+
+/* Is the gear a member of the list?
+ */
+static Bool
+gear_list_member (sphere_gear *g, sphere_gear **list, int count)
+{
+ int i;
+ for (i = 0; i < count; i++)
+ if (list[i] == g) return True;
+ return False;
+}
+
+
+/* Add the gear to the list, resizing it as needed.
+ */
+static void
+gear_list_push (sphere_gear *g,
+ sphere_gear ***listP,
+ int *countP, int *sizeP)
+{
+ if (*countP >= (*sizeP) - 1)
+ {
+ *sizeP = (*sizeP) * 1.2 + 4;
+ *listP = (sphere_gear **) realloc (*listP, (*sizeP) * sizeof(**listP));
+ }
+ (*listP)[*countP] = g;
+ (*countP)++;
+}
+
+
+/* Mark child and parent as being mutual neighbors.
+ */
+static void
+link_neighbors (sphere_gear *parent, sphere_gear *child)
+{
+ if (child == parent) abort();
+
+ /* Add child to parent's list of neighbors */
+ if (! gear_list_member (child, parent->neighbors, parent->nneighbors))
+ {
+ gear_list_push (child,
+ &parent->neighbors,
+ &parent->nneighbors,
+ &parent->neighbors_size);
+ /* fprintf(stderr, "neighbor %2d -> %2d (%d)\n", parent->id, child->id,
+ parent->nneighbors); */
+ }
+
+ /* Add parent to child's list of neighbors */
+ if (! gear_list_member (parent, child->neighbors, child->nneighbors))
+ {
+ gear_list_push (parent,
+ &child->neighbors,
+ &child->nneighbors,
+ &child->neighbors_size);
+ /* fprintf(stderr, "neighbor %2d <- %2d\n", parent->id, child->id); */
+ }
+}
+
+/* Mark child as having parent, and vice versa.
+ */
+static void
+link_child (sphere_gear *parent, sphere_gear *child)
+{
+ if (child == parent) abort();
+ if (child->parent) return;
+
+ gear_list_push (child,
+ &parent->children,
+ &parent->nchildren,
+ &parent->children_size);
+ child->parent = parent;
+ /* fprintf(stderr, "child %2d -> %2d (%d)\n", parent->id, child->id,
+ parent->nchildren); */
+}
+
+
+
+static void link_children (sphere_gear *);
+
+static void
+link_children (sphere_gear *parent)
+{
+ int i;
+# if 1 /* depth first */
+ for (i = 0; i < parent->nneighbors; i++)
+ {
+ sphere_gear *child = parent->neighbors[i];
+ if (! child->parent)
+ {
+ link_child (parent, child);
+ link_children (child);
+ }
+ }
+# else /* breadth first */
+ for (i = 0; i < parent->nneighbors; i++)
+ {
+ sphere_gear *child = parent->neighbors[i];
+ if (! child->parent)
+ link_child (parent, child);
+ }
+ for (i = 0; i < parent->nchildren; i++)
+ {
+ sphere_gear *child = parent->children[i];
+ link_children (child);
+ }
+# endif
+}
+
+
+
+/* Whether the two gears touch.
+ */
+static Bool
+gears_touch_p (ModeInfo *mi, sphere_gear *a, sphere_gear *b)
+{
+ /* We need to know if the two discs on the surface overlap.
+
+ Find the angle between the axis of each disc, and a point on its edge:
+ the axis between the hypotenuse and adjacent of a right triangle between
+ the disc's radius and the origin.
+
+ R
+ _____
+ |_| /
+ | /
+ 1 | /
+ |t/ t = asin(R)
+ |/
+
+ Find the angle between the axes of the two discs.
+
+ |
+ | / angle = acos (v1 dot v2)
+ 1 | / axis = v1 cross v2
+ | / 1
+ | /
+ |/
+
+ If the sum of the first two angles is less than the third angle,
+ they touch.
+ */
+ XYZ p1 = a->axis;
+ XYZ p2 = b->axis;
+ double t1 = asin (a->g->r);
+ double t2 = asin (b->g->r);
+ double th = acos (dot_product (p1, p2));
+
+ return (t1 + t2 >= th);
+}
+
+
+/* Set the rotation direction for the gear and its kids.
+ */
+static void
+orient_gears (ModeInfo *mi, sphere_gear *g)
+{
+ int i;
+ if (g->parent)
+ g->direction = -g->parent->direction;
+ for (i = 0; i < g->nchildren; i++)
+ orient_gears (mi, g->children[i]);
+}
+
+
+/* Returns the global model coordinates of the given tooth of a gear.
+ */
+static XYZ
+tooth_coords (const sphere_gear *s, int tooth)
+{
+ const gear *g = s->g;
+ GLfloat off = s->offset * (M_PI / 180) * g->ratio * s->direction;
+ GLfloat th = (tooth * M_PI * 2 / g->nteeth) - off;
+ XYZ axis;
+ GLfloat angle;
+ XYZ from = { 0, 1, 0 };
+ XYZ to = s->axis;
+ XYZ p0, p1, p2;
+ GLfloat x, y, z, C, S, m[4][4];
+
+ axis = cross_product (from, to);
+ angle = acos (dot_product (from, to));
+
+ p0 = normalize (axis);
+ x = p0.x;
+ y = p0.y;
+ z = p0.z;
+ C = cos(angle);
+ S = sin(angle);
+
+ /* this is what glRotatef does */
+ m[0][0] = x*x * (1 - C) + C;
+ m[1][0] = x*y * (1 - C) - z*S;
+ m[2][0] = x*z * (1 - C) + y*S;
+ m[3][0] = 0;
+
+ m[0][1] = y*x * (1 - C) + z*S;
+ m[1][1] = y*y * (1 - C) + C;
+ m[2][1] = y*z * (1 - C) - x*S;
+ m[3][1] = 0;
+
+ m[0][2] = x*z * (1 - C) - y*S;
+ m[1][2] = y*z * (1 - C) + x*S;
+ m[2][2] = z*z * (1 - C) + C;
+ m[3][2] = 0;
+
+ m[0][3] = 0;
+ m[1][3] = 0;
+ m[2][3] = 0;
+ m[3][3] = 1;
+
+ /* The point to transform */
+ p1.x = g->r * sin (th);
+ p1.z = g->r * cos (th);
+ p1.y = 1 - g->z;
+ p1 = normalize (p1);
+
+ /* transformation result */
+ p2.x = p1.x * m[0][0] + p1.y * m[1][0] + p1.z * m[2][0] + m[3][0];
+ p2.y = p1.x * m[0][1] + p1.y * m[1][1] + p1.z * m[2][1] + m[3][1];
+ p2.z = p1.x * m[0][2] + p1.y * m[1][2] + p1.z * m[2][2] + m[3][2];
+
+ return p2;
+}
+
+
+/* Returns the number of the tooth of the first gear that is closest
+ to any tooth of its parent. Also the position of the parent tooth.
+ */
+static int
+parent_tooth (const sphere_gear *s, XYZ *parent)
+{
+ const sphere_gear *s2 = s->parent;
+ int i, j;
+ GLfloat min_dist = 99999;
+ int min_tooth = 0;
+ XYZ min_parent = { 0, 0, 0 };
+
+ if (s2)
+ for (i = 0; i < s->g->nteeth; i++)
+ {
+ XYZ p1 = tooth_coords (s, i);
+ for (j = 0; j < s2->g->nteeth; j++)
+ {
+ XYZ p2 = tooth_coords (s2, j);
+ XYZ d;
+ GLfloat dist;
+ d.x = p1.x - p2.x;
+ d.y = p1.y - p2.y;
+ d.z = p1.z - p2.z;
+
+ dist = sqrt (d.x*d.x + d.y*d.y + d.z*d.z);
+ if (dist < min_dist)
+ {
+ min_dist = dist;
+ min_parent = p2;
+ min_tooth = i;
+ }
+ }
+ }
+ *parent = min_parent;
+ return min_tooth;
+}
+
+
+/* Make all of the gear's children's teeth mesh properly.
+ */
+static void align_gear_teeth (sphere_gear *s);
+static void
+align_gear_teeth (sphere_gear *s)
+{
+ int i;
+ XYZ pc;
+
+ if (s->parent)
+ {
+ /* Iterate this gear's offset until we find a value for it that
+ minimizes the distance between this gear's parent-pointing
+ tooth, and the corresponding tooth on the parent.
+ */
+ int pt = parent_tooth (s, &pc);
+ GLfloat range = 360 / s->g->nteeth;
+ GLfloat steps = 64;
+ GLfloat min_dist = 999999;
+ GLfloat min_off = 0;
+ GLfloat off;
+
+ for (off = -range/2; off < range/2; off += range/steps)
+ {
+ XYZ tc, d;
+ GLfloat dist;
+ s->offset = off;
+ tc = tooth_coords (s, pt);
+ d.x = pc.x - tc.x;
+ d.y = pc.y - tc.y;
+ d.z = pc.z - tc.z;
+ dist = sqrt (d.x*d.x + d.y*d.y + d.z*d.z);
+ if (dist < min_dist)
+ {
+ min_dist = dist;
+ min_off = off;
+ }
+ }
+
+ s->offset = min_off;
+ }
+
+ /* Now do the children. We have to do it in parent/child order because
+ the offset we just computed for the parent affects everyone downstream.
+ */
+ for (i = 0; i < s->nchildren; i++)
+ align_gear_teeth (s->children[i]);
+}
+
+
+
+static void
+describe_gears (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ int gears_per_teeth[1000];
+ int i;
+ int lines = 0;
+ memset (gears_per_teeth, 0, sizeof(gears_per_teeth));
+ for (i = 0; i < bp->ngears; i++)
+ gears_per_teeth[bp->gears[i].g->nteeth]++;
+ if (bp->desc) free (bp->desc);
+ bp->desc = (char *) malloc (80 * bp->ngears);
+ *bp->desc = 0;
+ for (i = 0; i < countof(gears_per_teeth); i++)
+ if (gears_per_teeth[i])
+ {
+ sprintf (bp->desc + strlen(bp->desc),
+ "%s%d gears with %d teeth",
+ (lines > 0 ? ",\n" : ""),
+ gears_per_teeth[i], i);
+ lines++;
+ }
+ if (lines > 1)
+ sprintf (bp->desc + strlen(bp->desc), ",\n%d gears total", bp->ngears);
+ strcat (bp->desc, ".");
+}
+
+
+/* Takes the gears and makes an arbitrary DAG of them in order to compute
+ direction and gear ratios.
+ */
+static void
+sort_gears (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ sphere_gear *root = 0;
+ int i, j;
+
+ /* For each gear, compare it against every other gear.
+ If they touch, mark them as being each others' neighbors.
+ */
+ for (i = 0; i < bp->ngears; i++)
+ {
+ sphere_gear *a = &bp->gears[i];
+ for (j = 0; j < bp->ngears; j++)
+ {
+ sphere_gear *b = &bp->gears[j];
+ if (a == b) continue;
+ if (gears_touch_p (mi, a, b))
+ link_neighbors (a, b);
+ }
+ }
+
+ bp->gears[0].parent = &bp->gears[0]; /* don't give this one a parent */
+ link_children (&bp->gears[0]);
+ bp->gears[0].parent = 0;
+
+
+# if 0
+ for (i = 0; i < bp->ngears; i++)
+ {
+ fprintf (stderr, "%2d: p = %2d; k(%d, %d) = ",
+ i,
+ bp->gears[i].parent ? bp->gears[i].parent->id : -1,
+ bp->gears[i].nneighbors,
+ bp->gears[i].nchildren);
+ for (j = 0; j < bp->gears[i].nneighbors; j++)
+ fprintf (stderr, "%2d ", (int) bp->gears[i].neighbors[j]->id);
+ fprintf (stderr, "\t\t");
+ if (j < 5) fprintf (stderr, "\t");
+ for (j = 0; j < bp->gears[i].nchildren; j++)
+ fprintf (stderr, "%2d ", (int) bp->gears[i].children[j]->id);
+ fprintf (stderr,"\n");
+ }
+ fprintf (stderr,"\n");
+# endif /* 0 */
+
+
+ /* If there is more than one gear with no parent, we fucked up. */
+
+ root = 0;
+ for (i = 0; i < bp->ngears; i++)
+ {
+ sphere_gear *g = &bp->gears[i];
+ if (!g->parent)
+ root = g;
+ }
+
+ if (! root) abort();
+
+ root->direction = 1;
+ orient_gears (mi, root);
+
+ /* If there are any gears with no direction, they aren't reachable. */
+ for (i = 0; i < bp->ngears; i++)
+ {
+ sphere_gear *g = &bp->gears[i];
+ if (g->direction == 0)
+ fprintf(stderr,"INTERNAL ERROR: unreachable: %d\n", g->id);
+ }
+
+ align_gear_teeth (root);
+ describe_gears (mi);
+}
+
+
+/* Create 5 identical gears arranged on the faces of a uniform
+ triangular prism.
+ */
+static void
+make_prism (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ gear *g;
+ XYZ a;
+ int i;
+ int teeth = 4 * (4 + (int) (BELLRAND(20)));
+ if (teeth % 4) abort(); /* must be a multiple of 4 */
+
+ g = add_gear_shape (mi, 0.7075, teeth);
+
+ a.x = 0; a.y = 0; a.z = 1;
+ add_sphere_gear (mi, g, a);
+ a.z = -1;
+ add_sphere_gear (mi, g, a);
+
+ a.z = 0;
+ for (i = 0; i < 3; i++)
+ {
+ GLfloat th = i * M_PI * 2 / 3;
+ a.x = cos (th);
+ a.y = sin (th);
+ add_sphere_gear (mi, g, a);
+ }
+
+ if (bp->ngears != 5) abort();
+}
+
+
+/* Create 8 identical gears arranged on the faces of an octohedron
+ (or alternately, arranged on the diagonals of a cube.)
+ */
+static void
+make_octo (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ static const XYZ verts[] = {{ -1, -1, -1 },
+ { -1, -1, 1 },
+ { -1, 1, 1 },
+ { -1, 1, -1 },
+ { 1, -1, 1 },
+ { 1, -1, -1 },
+ { 1, 1, -1 },
+ { 1, 1, 1 }};
+ gear *g;
+ int i;
+ int teeth = 4 * (4 + (int) (BELLRAND(20)));
+ if (teeth % 4) abort(); /* must be a multiple of 4 */
+
+ g = add_gear_shape (mi, 0.578, teeth);
+ for (i = 0; i < countof(verts); i++)
+ add_sphere_gear (mi, g, verts[i]);
+
+ if (bp->ngears != 8) abort();
+}
+
+
+/* Create 10 identical gears arranged on the faces of ... something.
+ I'm not sure what polyhedron is the basis of this.
+ */
+static void
+make_deca (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ gear *g;
+ XYZ a;
+ int i, j;
+ int teeth = 4 * (4 + (int) (BELLRAND(15)));
+ if (teeth % 4) abort(); /* must be a multiple of 4 */
+
+ g = add_gear_shape (mi, 0.5415, teeth);
+
+ a.x = 0; a.y = 0; a.z = 1;
+ add_sphere_gear (mi, g, a);
+ a.z = -1;
+ add_sphere_gear (mi, g, a);
+
+ for (j = -1; j <= 1; j += 2)
+ {
+ GLfloat off = (j < 0 ? 0 : M_PI / 4);
+ LL v;
+ v.a = j * M_PI * 0.136; /* #### Empirical. What is this? */
+ for (i = 0; i < 4; i++)
+ {
+ v.o = i * M_PI / 2 + off;
+ a = polar_to_cartesian (v);
+ add_sphere_gear (mi, g, a);
+ }
+ }
+ if (bp->ngears != 10) abort();
+}
+
+
+/* Create 14 identical gears arranged on the faces of ... something.
+ I'm not sure what polyhedron is the basis of this.
+ */
+static void
+make_14 (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ gear *g;
+ XYZ a;
+ int i;
+ GLfloat r = 0.4610;
+ int teeth = 6 * (2 + (int) (BELLRAND(4)));
+ if (teeth % 6) abort(); /* must be a multiple of 6. I think? */
+ /* mismeshes: 24 30 34 36 42 48 54 60 */
+
+ /* North, south */
+ g = add_gear_shape (mi, r, teeth);
+ a.x = 0; a.y = 0; a.z = 1;
+ add_sphere_gear (mi, g, a);
+ a.z = -1;
+ add_sphere_gear (mi, g, a);
+
+ /* Equator */
+ a.z = 0;
+ for (i = 0; i < 4; i++)
+ {
+ GLfloat th = i * M_PI * 2 / 4 + (M_PI / 4);
+ a.x = cos(th);
+ a.y = sin(th);
+ add_sphere_gear (mi, g, a);
+ }
+
+ /* The other 8 */
+ g = add_gear_shape (mi, r, teeth);
+
+ for (i = 0; i < 4; i++)
+ {
+ LL v;
+ v.a = M_PI * 0.197; /* #### Empirical. Also, wrong. What is this? */
+ v.o = i * M_PI * 2 / 4;
+ a = polar_to_cartesian (v);
+ add_sphere_gear (mi, g, a);
+ v.a = -v.a;
+ a = polar_to_cartesian (v);
+ add_sphere_gear (mi, g, a);
+ }
+
+ if (bp->ngears != 14) abort();
+}
+
+
+/* Create 18 identical gears arranged on the faces of ... something.
+ I'm not sure what polyhedron is the basis of this.
+ */
+static void
+make_18 (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ gear *g, *g2;
+ XYZ a;
+ int i;
+ GLfloat r = 0.3830;
+ int sizes[] = { 8, 12, 16, 20 }; /* 10, 14, 18, 26 and 34 don't work */
+ int teeth = sizes[random() % countof(sizes)] * (1 + (random() % 4));
+
+ /* North, south */
+ g = add_gear_shape (mi, r, teeth);
+ a.x = 0; a.y = 0; a.z = 1;
+ add_sphere_gear (mi, g, a);
+ a.z = -1;
+ add_sphere_gear (mi, g, a);
+
+ /* Equator */
+ g2 = add_gear_shape (mi, r, teeth);
+ a.z = 0;
+ for (i = 0; i < 8; i++)
+ {
+ GLfloat th = i * M_PI * 2 / 8 + (M_PI / 4);
+ a.x = cos(th);
+ a.y = sin(th);
+ add_sphere_gear (mi, (i & 1 ? g : g2), a);
+ }
+
+ /* The other 16 */
+ g = add_gear_shape (mi, r, teeth);
+
+ for (i = 0; i < 4; i++)
+ {
+ LL v;
+ v.a = M_PI * 0.25;
+ v.o = i * M_PI * 2 / 4;
+ a = polar_to_cartesian (v);
+ add_sphere_gear (mi, g, a);
+ v.a = -v.a;
+ a = polar_to_cartesian (v);
+ add_sphere_gear (mi, g, a);
+ }
+
+ if (bp->ngears != 18) abort();
+}
+
+
+/* Create 32 gears arranged along a truncated icosahedron:
+ One gear on each of the 20 faces, and one on each of the 12 vertices.
+ */
+static void
+make_32 (ModeInfo *mi, const GLfloat *args)
+{
+ /* http://bugman123.com/Gears/32GearSpheres/ */
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat th0 = atan (0.5); /* lat division: 26.57 deg */
+ GLfloat s = M_PI / 5; /* lon division: 72 deg */
+ int i;
+
+ int teeth1 = args[0];
+ int teeth2 = args[1];
+ GLfloat r1 = args[2];
+ GLfloat ratio = teeth2 / (GLfloat) teeth1;
+ GLfloat r2 = r1 * ratio;
+
+ gear *gear1, *gear2;
+
+ if (teeth1 % 5) abort();
+ if (teeth2 % 6) abort();
+
+ gear1 = add_gear_shape (mi, r1, teeth1);
+ gear2 = add_gear_shape (mi, r2, teeth2);
+ gear2->ratio = 1 / ratio;
+
+ {
+ XYZ a = { 0, 0, 1 };
+ XYZ b = { 0, 0, -1 };
+ add_sphere_gear (mi, gear1, a);
+ add_sphere_gear (mi, gear1, b);
+ }
+
+ for (i = 0; i < 10; i++)
+ {
+ GLfloat th1 = s * i;
+ GLfloat th2 = s * (i+1);
+ GLfloat th3 = s * (i+2);
+ LL v1, v2, v3, vc;
+ XYZ p1, p2, p3, pc, pc2;
+ v1.a = th0; v1.o = th1;
+ v2.a = th0; v2.o = th3;
+ v3.a = -th0; v3.o = th2;
+ vc.a = M_PI/2; vc.o = th2;
+
+ if (! (i & 1)) /* southern hemisphere */
+ {
+ v1.a = -v1.a;
+ v2.a = -v2.a;
+ v3.a = -v3.a;
+ vc.a = -vc.a;
+ }
+
+ p1 = polar_to_cartesian (v1);
+ p2 = polar_to_cartesian (v2);
+ p3 = polar_to_cartesian (v3);
+ pc = polar_to_cartesian (vc);
+
+ /* Two faces: 123 and 12c. */
+
+ add_sphere_gear (mi, gear1, p1); /* left shared point of 2 triangles */
+
+ pc2.x = (p1.x + p2.x + p3.x) / 3; /* center of bottom triangle */
+ pc2.y = (p1.y + p2.y + p3.y) / 3;
+ pc2.z = (p1.z + p2.z + p3.z) / 3;
+ add_sphere_gear (mi, gear2, pc2);
+
+ pc2.x = (p1.x + p2.x + pc.x) / 3; /* center of top triangle */
+ pc2.y = (p1.y + p2.y + pc.y) / 3;
+ pc2.z = (p1.z + p2.z + pc.z) / 3;
+ add_sphere_gear (mi, gear2, pc2);
+ }
+
+ if (bp->ngears != 32) abort();
+}
+
+
+/* Create 92 gears arranged along a geodesic sphere: 20 + 12 + 60.
+ (frequency 3v, class-I geodesic tessellation of an icosahedron)
+ */
+static void
+make_92 (ModeInfo *mi, const GLfloat *args)
+{
+ /* http://bugman123.com/Gears/92GearSpheres/ */
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat th0 = atan (0.5); /* lat division: 26.57 deg */
+ GLfloat s = M_PI / 5; /* lon division: 72 deg */
+ int i;
+
+ int tscale = 2; /* These don't mesh properly, so let's increase the
+ number of teeth so that it's not so obvious. */
+
+ int teeth1 = args[0] * tscale;
+ int teeth2 = args[1] * tscale;
+ int teeth3 = args[2] * tscale;
+ GLfloat r1 = args[3];
+ GLfloat ratio2 = teeth2 / (GLfloat) teeth1;
+ GLfloat ratio3 = teeth3 / (GLfloat) teeth2;
+ GLfloat r2 = r1 * ratio2;
+ GLfloat r3 = r2 * ratio3;
+
+ GLfloat r4 = args[4]; /* #### Empirical. Not sure what its basis is. */
+ GLfloat r5 = 1 - r4;
+
+ gear *gear1, *gear2, *gear3;
+
+ gear1 = add_gear_shape (mi, r1, teeth1);
+ gear2 = add_gear_shape (mi, r2, teeth2);
+ gear3 = add_gear_shape (mi, r3, teeth3);
+ gear2->ratio = 1 / ratio2;
+ gear3->ratio = 1 / ratio3;
+
+ {
+ XYZ a = { 0, 0, 1 };
+ XYZ b = { 0, 0, -1 };
+ add_sphere_gear (mi, gear1, a);
+ add_sphere_gear (mi, gear1, b);
+ }
+
+ for (i = 0; i < 10; i++)
+ {
+ GLfloat th1 = s * i;
+ GLfloat th2 = s * (i+1);
+ GLfloat th3 = s * (i+2);
+ LL v1, v2, v3, vc;
+ XYZ p1, p2, p3, pc, pc2;
+ v1.a = th0; v1.o = th1;
+ v2.a = th0; v2.o = th3;
+ v3.a = -th0; v3.o = th2;
+ vc.a = M_PI/2; vc.o = th2;
+
+ if (! (i & 1)) /* southern hemisphere */
+ {
+ v1.a = -v1.a;
+ v2.a = -v2.a;
+ v3.a = -v3.a;
+ vc.a = -vc.a;
+ }
+
+ p1 = polar_to_cartesian (v1);
+ p2 = polar_to_cartesian (v2);
+ p3 = polar_to_cartesian (v3);
+ pc = polar_to_cartesian (vc);
+
+ /* Two faces: 123 and 12c. */
+
+ add_sphere_gear (mi, gear1, p1); /* left shared point of 2 triangles */
+
+ pc2.x = (p1.x + p2.x + p3.x) / 3; /* center of bottom triangle */
+ pc2.y = (p1.y + p2.y + p3.y) / 3;
+ pc2.z = (p1.z + p2.z + p3.z) / 3;
+ add_sphere_gear (mi, gear2, pc2);
+
+ pc2.x = (p1.x + p2.x + pc.x) / 3; /* center of top triangle */
+ pc2.y = (p1.y + p2.y + pc.y) / 3;
+ pc2.z = (p1.z + p2.z + pc.z) / 3;
+ add_sphere_gear (mi, gear2, pc2);
+
+ /* left edge of bottom triangle, 1/3 in */
+ pc2.x = p1.x + (p3.x - p1.x) * r4;
+ pc2.y = p1.y + (p3.y - p1.y) * r4;
+ pc2.z = p1.z + (p3.z - p1.z) * r4;
+ add_sphere_gear (mi, gear3, pc2);
+
+ /* left edge of bottom triangle, 2/3 in */
+ pc2.x = p1.x + (p3.x - p1.x) * r5;
+ pc2.y = p1.y + (p3.y - p1.y) * r5;
+ pc2.z = p1.z + (p3.z - p1.z) * r5;
+ add_sphere_gear (mi, gear3, pc2);
+
+ /* left edge of top triangle, 1/3 in */
+ pc2.x = p1.x + (pc.x - p1.x) * r4;
+ pc2.y = p1.y + (pc.y - p1.y) * r4;
+ pc2.z = p1.z + (pc.z - p1.z) * r4;
+ add_sphere_gear (mi, gear3, pc2);
+
+ /* left edge of top triangle, 2/3 in */
+ pc2.x = p1.x + (pc.x - p1.x) * r5;
+ pc2.y = p1.y + (pc.y - p1.y) * r5;
+ pc2.z = p1.z + (pc.z - p1.z) * r5;
+ add_sphere_gear (mi, gear3, pc2);
+
+ /* center of shared edge, 1/3 in */
+ pc2.x = p1.x + (p2.x - p1.x) * r4;
+ pc2.y = p1.y + (p2.y - p1.y) * r4;
+ pc2.z = p1.z + (p2.z - p1.z) * r4;
+ add_sphere_gear (mi, gear3, pc2);
+
+ /* center of shared edge, 2/3 in */
+ pc2.x = p1.x + (p2.x - p1.x) * r5;
+ pc2.y = p1.y + (p2.y - p1.y) * r5;
+ pc2.z = p1.z + (p2.z - p1.z) * r5;
+ add_sphere_gear (mi, gear3, pc2);
+ }
+
+ if (bp->ngears != 92) abort();
+}
+
+static void
+make_182 (ModeInfo *mi, const GLfloat *args)
+{
+ /* #### TODO: http://bugman123.com/Gears/182GearSpheres/ */
+ abort();
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_geodesic (ModeInfo *mi, int width, int height)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+pick_shape (ModeInfo *mi, time_t last)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ int count = countof (gear_templates);
+
+ if (bp->colors)
+ free (bp->colors);
+
+ bp->ncolors = 1024;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+ free_sphere_gears (mi);
+
+ if (last == 0)
+ {
+ bp->which = random() % count;
+ }
+ else if (bp->next < 0)
+ {
+ bp->which--;
+ if (bp->which < 0) bp->which = count-1;
+ bp->next = 0;
+ }
+ else if (bp->next > 0)
+ {
+ bp->which++;
+ if (bp->which >= count) bp->which = 0;
+ bp->next = 0;
+ }
+ else
+ {
+ int n = bp->which;
+ while (n == bp->which)
+ n = random() % count;
+ bp->which = n;
+ }
+
+ switch (gear_templates[bp->which].type) {
+ case PRISM: make_prism (mi); break;
+ case OCTO: make_octo (mi); break;
+ case DECA: make_deca (mi); break;
+ case G14: make_14 (mi); break;
+ case G18: make_18 (mi); break;
+ case G32: make_32 (mi, gear_templates[bp->which].args); break;
+ case G92: make_92 (mi, gear_templates[bp->which].args); break;
+ case G182: make_182(mi, gear_templates[bp->which].args); break;
+ default: abort(); break;
+ }
+
+ sort_gears (mi);
+}
+
+
+
+ENTRYPOINT void
+init_geodesic (ModeInfo *mi)
+{
+ geodesic_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_geodesic (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ {
+ static GLfloat cspec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat shiny = 128.0;
+
+ static GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ static GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ static GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ static GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, cspec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ }
+
+ if (! wire)
+ {
+ glEnable (GL_DEPTH_TEST);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_LIGHTING);
+ glEnable (GL_LIGHT0);
+ }
+
+ if (! bp->rot)
+ {
+ double spin_speed = 0.25 * speed;
+ double wander_speed = 0.01 * speed;
+ double spin_accel = 0.2;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->font = load_texture_font (MI_DISPLAY(mi), "font");
+
+ pick_shape (mi, 0);
+}
+
+
+ENTRYPOINT Bool
+geodesic_handle_event (ModeInfo *mi, XEvent *event)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else
+ {
+ if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '<' || c == ',' || c == '-' || c == '_' ||
+ keysym == XK_Left || keysym == XK_Up || keysym == XK_Prior)
+ {
+ bp->next = -1;
+ goto SWITCH;
+ }
+ else if (c == '>' || c == '.' || c == '=' || c == '+' ||
+ keysym == XK_Right || keysym == XK_Down ||
+ keysym == XK_Next)
+ {
+ bp->next = 1;
+ goto SWITCH;
+ }
+ }
+
+ if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ SWITCH:
+ bp->mode = 1;
+ bp->mode_tick = 4;
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+draw_geodesic (ModeInfo *mi)
+{
+ time_t now = time ((time_t *) 0);
+ int wire = MI_IS_WIREFRAME(mi);
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+
+ if (bp->draw_time == 0)
+ {
+ pick_shape (mi, bp->draw_time);
+ bp->draw_time = now;
+ }
+ else if (bp->mode == 0)
+ {
+ if (bp->draw_tick++ > 10)
+ {
+ if (bp->draw_time == 0) bp->draw_time = now;
+ bp->draw_tick = 0;
+
+ if (!bp->button_down_p &&
+ bp->draw_time + timeout <= now)
+ {
+ /* randomize every -timeout seconds */
+ bp->mode = 1; /* go out */
+ bp->mode_tick = 10 / speed;
+ bp->draw_time = now;
+ }
+ }
+ }
+ else if (bp->mode == 1) /* out */
+ {
+ if (--bp->mode_tick <= 0)
+ {
+ bp->mode_tick = 10 / speed;
+ bp->mode = 2; /* go in */
+ pick_shape (mi, bp->draw_time);
+ bp->draw_time = now;
+ }
+ }
+ else if (bp->mode == 2) /* in */
+ {
+ if (--bp->mode_tick <= 0)
+ bp->mode = 0; /* normal */
+ }
+ else
+ abort();
+
+
+ if (! wire)
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 17);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (6, 6, 6);
+
+ if (bp->ngears < 14)
+ glScalef (0.8, 0.8, 0.8); /* make these a little easier to see */
+
+ if (bp->mode != 0)
+ {
+ GLfloat s = (bp->mode == 1
+ ? bp->mode_tick / (10 / speed)
+ : ((10 / speed) - bp->mode_tick + 1) / (10 / speed));
+ glScalef (s, s, s);
+ }
+
+
+ {
+ int i;
+ for (i = 0; i < bp->ngears; i++)
+ {
+ const sphere_gear *s = &bp->gears[i];
+ const gear *g = s->g;
+
+ XYZ axis;
+ XYZ from = { 0, 1, 0 };
+ XYZ to = s->axis;
+ GLfloat angle;
+ GLfloat off = s->offset;
+
+ /* If an even number of teeth, offset by 1/2 tooth width. */
+ if (s->direction > 0 && !(g->nteeth & 1))
+ off += 360 / g->nteeth / 2;
+
+ axis = cross_product (from, to);
+ angle = acos (dot_product (from, to));
+
+ glPushMatrix();
+ glTranslatef (to.x, to.y, to.z);
+ glRotatef (angle / M_PI * 180, axis.x, axis.y, axis.z);
+ glRotatef (-90, 1, 0, 0);
+ glRotatef(180, 0, 0, 1);
+ glRotatef ((bp->th - off) * g->ratio * s->direction,
+ 0, 0, 1);
+
+ glCallList (g->dlist);
+ mi->polygon_count += g->polygons;
+ glPopMatrix();
+
+#if 0
+ { /* Draw tooth vectors */
+ GLfloat r = 1 - g->z;
+ XYZ pc;
+ int pt = parent_tooth (s, &pc);
+ int t;
+ glDisable(GL_LIGHTING);
+ glLineWidth (8);
+ for (t = 0; t < g->nteeth; t++)
+ {
+ XYZ p = tooth_coords (s, t);
+ XYZ p2;
+ p2.x = (r * s->axis.x + p.x) / 2;
+ p2.y = (r * s->axis.y + p.y) / 2;
+ p2.z = (r * s->axis.z + p.z) / 2;
+
+ if (t == pt)
+ glColor3f(1,0,1);
+ else
+ glColor3f(0,1,1);
+ glBegin(GL_LINES);
+ glVertex3f (p.x, p.y, p.z);
+ glVertex3f (p2.x, p2.y, p2.z);
+ glEnd();
+ }
+ if (!wire) glEnable(GL_LIGHTING);
+ glLineWidth (1);
+ }
+#endif
+
+#if 0
+ { /* Draw the parent/child DAG */
+ GLfloat s1 = 1.1;
+ GLfloat s2 = s->parent ? s1 : 1.5;
+ GLfloat s3 = 1.0;
+ XYZ p1 = s->axis;
+ XYZ p2 = s->parent ? s->parent->axis : p1;
+ glDisable(GL_LIGHTING);
+ glColor3f(0,0,1);
+ glBegin(GL_LINES);
+ glVertex3f (s1 * p1.x, s1 * p1.y, s1 * p1.z);
+ glVertex3f (s2 * p2.x, s2 * p2.y, s2 * p2.z);
+ glVertex3f (s1 * p1.x, s1 * p1.y, s1 * p1.z);
+ glVertex3f (s3 * p1.x, s3 * p1.y, s3 * p1.z);
+ glEnd();
+ if (!wire) glEnable(GL_LIGHTING);
+ }
+#endif
+ }
+
+ /* We need to draw the fonts in a second pass in order to make
+ transparency (as a result of anti-aliasing) work properly.
+ */
+ if (do_numbers && bp->mode == 0)
+ for (i = 0; i < bp->ngears; i++)
+ {
+ const sphere_gear *s = &bp->gears[i];
+ const gear *g = s->g;
+
+ XYZ axis;
+ XYZ from = { 0, 1, 0 };
+ XYZ to = s->axis;
+ GLfloat angle;
+ GLfloat off = s->offset;
+
+ int w, h, j;
+ char buf[100];
+ XCharStruct e;
+
+ /* If an even number of teeth, offset by 1/2 tooth width. */
+ if (s->direction > 0 /* && !(g->nteeth & 1) */)
+ off += 360 / g->nteeth / 2;
+
+ axis = cross_product (from, to);
+ angle = acos (dot_product (from, to));
+
+ glPushMatrix();
+ glTranslatef(to.x, to.y, to.z);
+ glRotatef (angle / M_PI * 180, axis.x, axis.y, axis.z);
+ glRotatef (-90, 1, 0, 0);
+ glRotatef(180, 0, 0, 1);
+ glRotatef ((bp->th - off) * g->ratio * s->direction,
+ 0, 0, 1);
+
+ glDisable (GL_LIGHTING);
+ glColor3f(1, 1, 0);
+ glPushMatrix();
+ glScalef(0.005, 0.005, 0.005);
+ sprintf (buf, "%d", i);
+ texture_string_metrics (bp->font, buf, &e, 0, 0);
+ w = e.width;
+ h = e.ascent + e.descent;
+ glTranslatef (-w/2, -h/2, 0);
+ print_texture_string (bp->font, buf);
+ glPopMatrix();
+
+# if 1
+ for (j = 0; j < g->nteeth; j++) /* Number the teeth */
+ {
+ GLfloat ss = 0.08 * g->r / g->nteeth;
+ GLfloat r = g->r * 0.88;
+ GLfloat th = M_PI - (j * M_PI * 2 / g->nteeth + M_PI/2);
+
+
+ glPushMatrix();
+ glTranslatef (r * cos(th), r * sin(th), -g->z + 0.01);
+ glScalef(ss, ss, ss);
+ sprintf (buf, "%d", j + 1);
+ texture_string_metrics (bp->font, buf, &e, 0, 0);
+ w = e.width;
+ h = e.ascent + e.descent;
+ glTranslatef (-w/2, -h/2, 0);
+ print_texture_string (bp->font, buf);
+ glPopMatrix();
+ }
+# endif
+ glPopMatrix();
+ if (!wire) glEnable(GL_LIGHTING);
+ }
+
+ bp->th += 0.7 * speed; /* Don't mod this to 360 - causes glitches. */
+ }
+
+ if (do_labels && bp->mode == 0)
+ {
+ glColor3f (1, 1, 0);
+ print_texture_label (mi->dpy, bp->font,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, bp->desc);
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT void
+free_geodesic (ModeInfo *mi)
+{
+ geodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ if (!bp->glx_context)
+ return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+ free_texture_font (bp->font);
+ free (bp->colors);
+ free_sphere_gears (mi);
+ if (bp->desc) free (bp->desc);
+}
+
+
+XSCREENSAVER_MODULE_2 ("GeodesicGears", geodesicgears, geodesic)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/geodesicgears.man b/hacks/glx/geodesicgears.man
new file mode 100644
index 0000000..b15cf90
--- /dev/null
+++ b/hacks/glx/geodesicgears.man
@@ -0,0 +1,78 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+geodesicgears - gears on the surface of a sphere.
+.SH SYNOPSIS
+.B geodesicgears
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-timeout \fInumber\fP]
+[\-labels]
+[\-numbers]
+[\-wireframe]
+[\-wander]
+[\-no-spin]
+[\-fps]
+.SH DESCRIPTION
+A set of meshed gears arranged on the surface of a sphere.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-timeout \fInumber\fP
+Duration before switching to a new model. 5 - 120 seconds. Default: 20.
+.TP 8
+.B \-labels | \-no-labels
+Whether to show the number of gears and teeth. Default: no.
+.TP 8
+.B \-numbers | \-no-numbers
+Whether to label the gears with ID numbers. Default: no.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the object should spin.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR geodesic (1),
+.BR pinion (1)
+.SH COPYRIGHT
+Copyright \(co 2014 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/gflux.c b/hacks/glx/gflux.c
new file mode 100644
index 0000000..dbbb11c
--- /dev/null
+++ b/hacks/glx/gflux.c
@@ -0,0 +1,803 @@
+/* -*- Mode: C; tab-width: 4 -*- emacs friendly */
+/* gflux - creates a fluctuating 3D grid
+ * requires OpenGL or MesaGL
+ *
+ * Copyright (c) Josiah Pease, 2000, 2003
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Thanks go to all those who worked on...
+ * MesaGL, OpenGL, UtahGLX, XFree86, gcc, vim, rxvt, the PNM (anymap) format
+ * xscreensaver and the thousands of other tools, apps and daemons that make
+ * linux usable
+ * Personal thanks to Kevin Moss, Paul Sheahee and Jamie Zawinski
+ *
+ * some xscreensaver code lifted from superquadrics. Most other glx hacks
+ * used as reference at some time.
+ *
+ * This hack and others can cause UtahGLX to crash my X server
+ * wireframe looks good with software only rendering anyway
+ * If anyone can work out why and supply a fix I'd love to hear from them
+ *
+ * Josiah Pease <gfluxcode@jpease.force9.co.uk> 21 July 2000
+ *
+ * History
+ * 10 June 2000 : wireframe rippling grid standalone written
+ * 18 June 2000 : xscreensaver code added
+ * 25 June 2000 : solid and light added
+ * 04 July 2000 : majour bug hunt, xscreensaver code rewritten
+ * 08 July 2000 : texture mapping, rotation and zoom added
+ * 21 July 2000 : cleaned up code from bug hunts, manpage written
+ * 24 November 2000 : fixed x co-ord calculation in solid - textured
+ * 05 March 2001 : put back non pnmlib code with #ifdefs
+ * 11 May 2002 : fixed image problems with large images
+ */
+
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000\n" \
+ "*showFPS: False\n" \
+ "*mode: grab\n" \
+ "*useSHM: True \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_gflux 0
+# define release_gflux 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL /* whole file */
+
+#ifdef HAVE_XMU
+# ifndef VMS
+# include <X11/Xmu/Drawing.h>
+#else /* VMS */
+# include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <math.h>
+
+#include "grab-ximage.h"
+#include "gltrackball.h"
+
+
+static enum {wire=0,solid,light,checker,grab} _draw;
+
+# define DEF_SQUARES "19"
+# define DEF_RESOLUTION "4"
+# define DEF_DRAW "2"
+# define DEF_FLAT "0"
+# define DEF_SPEED "0.05"
+# define DEF_ROTATIONX "0.01"
+# define DEF_ROTATIONY "0.0"
+# define DEF_ROTATIONZ "0.1"
+# define DEF_WAVES "3"
+# define DEF_WAVE_CHANGE "50"
+# define DEF_WAVE_HEIGHT "1.0"
+# define DEF_WAVE_FREQ "3.0"
+# define DEF_ZOOM "1.0"
+
+
+
+static int _squares; /* grid size */
+static int _resolution; /* wireframe resolution */
+static int _flat;
+
+static float _speed;
+static float _rotationx;
+static float _rotationy;
+static float _rotationz;
+static float _zoom;
+
+static int _waves;
+static int _waveChange;
+static float _waveHeight;
+static float _waveFreq;
+
+
+#define WIDTH 320
+#define HEIGHT 240
+
+static XrmOptionDescRec opts[] = {
+ {"-squares", ".gflux.squares", XrmoptionSepArg, 0},
+ {"-resolution", ".gflux.resolution", XrmoptionSepArg, 0},
+/* {"-draw", ".gflux.draw", XrmoptionSepArg, 0},*/
+ {"-mode", ".gflux.mode", XrmoptionSepArg, 0},
+ {"-wireframe", ".gflux.mode", XrmoptionNoArg, "wire"},
+ {"-flat", ".gflux.flat", XrmoptionSepArg, 0},
+ {"-speed", ".gflux.speed", XrmoptionSepArg, 0},
+ {"-rotationx", ".gflux.rotationx", XrmoptionSepArg, 0},
+ {"-rotationy", ".gflux.rotationy", XrmoptionSepArg, 0},
+ {"-rotationz", ".gflux.rotationz", XrmoptionSepArg, 0},
+ {"-waves", ".gflux.waves", XrmoptionSepArg, 0},
+ {"-waveChange", ".gflux.waveChange", XrmoptionSepArg, 0},
+ {"-waveHeight", ".gflux.waveHeight", XrmoptionSepArg, 0},
+ {"-waveFreq", ".gflux.waveFreq", XrmoptionSepArg, 0},
+ {"-zoom", ".gflux.zoom", XrmoptionSepArg, 0},
+};
+
+
+static argtype vars[] = {
+ {&_squares, "squares", "Squares", DEF_SQUARES, t_Int},
+ {&_resolution, "resolution", "Resolution", DEF_RESOLUTION, t_Int},
+/* {&_draw, "draw", "Draw", DEF_DRAW, t_Int},*/
+ {&_flat, "flat", "Flat", DEF_FLAT, t_Int},
+ {&_speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&_rotationx, "rotationx", "Rotationx", DEF_ROTATIONX, t_Float},
+ {&_rotationy, "rotationy", "Rotationy", DEF_ROTATIONY, t_Float},
+ {&_rotationz, "rotationz", "Rotationz", DEF_ROTATIONZ, t_Float},
+ {&_waves, "waves", "Waves", DEF_WAVES, t_Int},
+ {&_waveChange, "waveChange", "WaveChange", DEF_WAVE_CHANGE, t_Int},
+ {&_waveHeight, "waveHeight", "WaveHeight", DEF_WAVE_HEIGHT, t_Float},
+ {&_waveFreq, "waveFreq", "WaveFreq", DEF_WAVE_FREQ, t_Float},
+ {&_zoom, "zoom", "Zoom", DEF_ZOOM, t_Float},
+};
+
+
+static OptionStruct desc[] =
+{
+ {"-squares num", "size of grid in squares (19)"},
+ {"-resolution num", "detail of lines making grid, wireframe only (4)"},
+/* {"-draw num", "draw method to use: 0=wireframe 1=solid 2=lit (0)"},*/
+ {"-flat num", "shading method, not wireframe: 0=smooth 1=flat (0)"},
+ {"-speed num", "speed of waves (0.05)"},
+ {"-rotationx num", "speed of xrotation (0.01)"},
+ {"-rotationy num", "speed of yrotation (0.00)"},
+ {"-rotationz num", "speed of zrotation (0.10)"},
+ {"-waves num", "number of simultanious waves (3)"},
+ {"-waveChange num", "number of cyles for a wave to change (50)"},
+ {"-waveHeight num", "height of waves (1.0)"},
+ {"-waveFreq num", "max frequency of a wave (3.0)"},
+ {"-zoom num", "camera control (1.0)"},
+};
+
+ENTRYPOINT ModeSpecOpt gflux_opts = {countof(opts), opts, countof(vars), vars, desc};
+
+#ifdef USE_MODULES
+ModStruct gflux_description =
+{"gflux", "init_gflux", "draw_gflux", NULL,
+ "draw_gflux", "init_gflux", NULL, &gflux_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "GFlux: an OpenGL gflux", 0, NULL};
+#endif
+
+/* structure for holding the gflux data */
+typedef struct gfluxstruct {
+ ModeInfo *modeinfo;
+ int screen_width, screen_height;
+ GLXContext *glx_context;
+ Window window;
+ XColor fg, bg;
+#define MAXWAVES 10 /* should be dynamic */
+ double wa[MAXWAVES];
+ double freq[MAXWAVES];
+ double dispy[MAXWAVES];
+ double dispx[MAXWAVES];
+ GLfloat colour[3];
+ GLuint texName;
+ GLfloat tex_xscale;
+ GLfloat tex_yscale;
+ XRectangle img_geom;
+ int img_width, img_height;
+ int (*drawFunc)(struct gfluxstruct *);
+
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ double time;
+ double anglex;
+ double angley;
+ double anglez;
+
+ int counter;
+ int newWave;
+
+ Bool mipmap_p;
+ Bool waiting_for_image_p;
+
+} gfluxstruct;
+static gfluxstruct *gfluxes = NULL;
+
+/* prototypes */
+static void initLighting(void);
+static void grabTexture(gfluxstruct *);
+static void createTexture(gfluxstruct *);
+static int displaySolid(gfluxstruct *); /* drawFunc implementations */
+static int displayLight(gfluxstruct *);
+static int displayTexture(gfluxstruct *);
+static int displayWire(gfluxstruct *);
+static void calcGrid(gfluxstruct *);
+static double getGrid(gfluxstruct *,double,double,double);
+
+/* as macro for speed */
+/* could do with colour cycling here */
+/* void genColour(double);*/
+#define genColour(X) \
+{\
+ gp->colour[0] = 0.0;\
+ gp->colour[1] = 0.5+0.5*(X);\
+ gp->colour[2] = 0.5-0.5*(X);\
+}
+
+/* BEGINNING OF FUNCTIONS */
+
+
+ENTRYPOINT Bool
+gflux_handle_event (ModeInfo *mi, XEvent *event)
+{
+ gfluxstruct *gp = &gfluxes[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, gp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &gp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ if (_draw == grab) {
+ grabTexture(gp);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+static void
+userRot(gfluxstruct *gp)
+{
+ gltrackball_rotate (gp->trackball);
+}
+
+/* draw the gflux once */
+ENTRYPOINT void draw_gflux(ModeInfo * mi)
+{
+ gfluxstruct *gp = &gfluxes[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!gp->glx_context) return;
+
+ /* Just keep running before the texture has come in. */
+ /* if (gp->waiting_for_image_p) return; */
+
+ glXMakeCurrent(display, window, *(gp->glx_context));
+
+ calcGrid(gp);
+ mi->polygon_count = gp->drawFunc(gp);
+ if (mi->fps_p) do_fps (mi);
+ glXSwapBuffers(display, window);
+}
+
+
+/* Standard reshape function */
+ENTRYPOINT void
+reshape_gflux(ModeInfo *mi, int width, int height)
+{
+ glViewport( 0, 0, width, height );
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-_zoom,_zoom,-0.8*_zoom,0.8*_zoom,2,6);
+ glTranslatef(0.0,0.0,-4.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+}
+
+
+/* main OpenGL initialization routine */
+static void initializeGL(ModeInfo *mi, GLsizei width, GLsizei height)
+{
+ gfluxstruct *gp = &gfluxes[MI_SCREEN(mi)];
+
+ reshape_gflux(mi, width, height);
+ glViewport( 0, 0, width, height );
+
+ gp->tex_xscale = 1.0; /* maybe changed later */
+ gp->tex_yscale = 1.0;
+
+ switch(_draw) {
+ case solid :
+ gp->drawFunc = (displaySolid);
+ glEnable(GL_DEPTH_TEST);
+ break;
+ case light :
+ gp->drawFunc = (displayLight);
+ glEnable(GL_DEPTH_TEST);
+ initLighting();
+ break;
+ case checker :
+ gp->drawFunc = (displayTexture);
+ glEnable(GL_DEPTH_TEST);
+ createTexture(gp);
+ initLighting();
+ break;
+ case grab :
+ gp->drawFunc = (displayTexture);
+ glEnable(GL_DEPTH_TEST);
+ grabTexture(gp);
+ initLighting();
+ break;
+ case wire :
+ default :
+ gp->drawFunc = (displayWire);
+ glDisable(GL_DEPTH_TEST);
+ break;
+ }
+
+ if(_flat) glShadeModel(GL_FLAT);
+ else glShadeModel(GL_SMOOTH);
+
+}
+
+
+/* xgflux initialization routine */
+ENTRYPOINT void init_gflux(ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+ gfluxstruct *gp;
+
+ MI_INIT(mi, gfluxes);
+ gp = &gfluxes[screen];
+
+ gp->trackball = gltrackball_init (True);
+
+ gp->time = frand(1000.0); /* don't run two screens in lockstep */
+
+ {
+ char *s = get_string_resource (mi->dpy, "mode", "Mode");
+ if (!s || !*s) _draw = grab;
+ else if (!strcasecmp (s, "wire")) _draw = wire;
+ else if (!strcasecmp (s, "solid")) _draw = solid;
+ else if (!strcasecmp (s, "light")) _draw = light;
+ else if (!strcasecmp (s, "checker")) _draw = checker;
+ else if (!strcasecmp (s, "grab")) _draw = grab;
+ else
+ {
+ fprintf (stderr,
+ "%s: mode must be one of: wire, solid, "
+ "light, checker, or grab; not \"%s\"\n",
+ progname, s);
+ exit (1);
+ }
+ }
+
+ gp->modeinfo = mi;
+ gp->window = MI_WINDOW(mi);
+ if ((gp->glx_context = init_GL(mi)) != NULL) {
+ reshape_gflux(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ initializeGL(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+
+static void createTexture(gfluxstruct *gp)
+{
+ int size = 4;
+ unsigned int data[] = { 0xFFFFFFFF, 0xAAAAAAAA, 0xFFFFFFFF, 0xAAAAAAAA,
+ 0xAAAAAAAA, 0xFFFFFFFF, 0xAAAAAAAA, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xAAAAAAAA, 0xFFFFFFFF, 0xAAAAAAAA,
+ 0xAAAAAAAA, 0xFFFFFFFF, 0xAAAAAAAA, 0xFFFFFFFF };
+
+ gp->tex_xscale = size;
+ gp->tex_yscale = size;
+
+ glGenTextures (1, &gp->texName);
+ glBindTexture (GL_TEXTURE_2D, gp->texName);
+
+ glTexImage2D (GL_TEXTURE_2D, 0, 3, size, size, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, data);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+}
+
+
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ gfluxstruct *gp = (gfluxstruct *) closure;
+ gp->img_geom = *geometry;
+
+ gp->tex_xscale = (GLfloat) image_width / texture_width;
+ gp->tex_yscale = -(GLfloat) image_height / texture_height;
+ gp->img_width = image_width;
+ gp->img_height = image_height;
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ (gp->mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
+
+ gp->waiting_for_image_p = False;
+}
+
+static void
+grabTexture(gfluxstruct *gp)
+{
+ if (MI_IS_WIREFRAME(gp->modeinfo))
+ return;
+
+ gp->waiting_for_image_p = True;
+ gp->mipmap_p = True;
+ load_texture_async (gp->modeinfo->xgwa.screen, gp->modeinfo->window,
+ *gp->glx_context, 0, 0, gp->mipmap_p, gp->texName,
+ image_loaded_cb, gp);
+}
+
+
+static void initLighting(void)
+{
+ static const float ambientA[] = {0.0, 0.0, 0.0, 1.0};
+ static const float diffuseA[] = {1.0, 1.0, 1.0, 1.0};
+ static const float positionA[] = {5.0, 5.0, 15.0, 1.0};
+
+ static const float front_mat_shininess[] = {30.0};
+ static const float front_mat_specular[] = {0.5, 0.5, 0.5, 1.0};
+
+ static const float mat_diffuse[] = {0.5, 0.5, 0.5, 1.0};
+
+ glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambientA);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseA);
+ glLightfv(GL_LIGHT0, GL_POSITION, positionA);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightModelf(GL_LIGHT_MODEL_TWO_SIDE,1);
+
+ glEnable(GL_NORMALIZE); /* would it be faster ... */
+ glEnable(GL_COLOR_MATERIAL);
+ glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
+}
+
+/************************************/
+/* draw implementations */
+/* somewhat inefficient since they */
+/* all calculate previously */
+/* calculated values again */
+/* storing the values in an array */
+/* is a posibility */
+/************************************/
+static int displayTexture(gfluxstruct *gp)
+{
+ int polys = 0;
+ double x,y,u,v;
+ double z;
+ double dx = 2.0/((double)_squares);
+ double dy = 2.0/((double)_squares);
+
+ double du = 2.0/((double)_squares);
+ double dv = 2.0/((double)_squares);
+
+ double xs = gp->tex_xscale;
+ double ys = gp->tex_yscale;
+
+ double minx, miny, maxx, maxy;
+ double minu, minv;
+
+#if 0
+ minx = (GLfloat) gp->img_geom.x / gp->img_width;
+ miny = (GLfloat) gp->img_geom.y / gp->img_height;
+ maxx = ((GLfloat) (gp->img_geom.x + gp->img_geom.width) /
+ gp->img_width);
+ maxy = ((GLfloat) (gp->img_geom.y + gp->img_geom.height) /
+ gp->img_height);
+ minu = minx;
+ minv = miny;
+ minx = (minx * 2) - 1;
+ miny = (miny * 2) - 1;
+ maxx = (maxx * 2) - 1;
+ maxy = (maxy * 2) - 1;
+#else
+ minx = -1;
+ miny = -1;
+ maxx = 1;
+ maxy = 1;
+ minv = 0;
+ minu = 0;
+#endif
+
+ glMatrixMode (GL_TEXTURE);
+ glLoadIdentity ();
+ glTranslatef(-1,-1,0);
+ glScalef(0.5,0.5,1);
+ glMatrixMode (GL_MODELVIEW);
+
+ glLoadIdentity();
+ userRot(gp);
+ glRotatef(gp->anglex,1,0,0);
+ glRotatef(gp->angley,0,1,0);
+ glRotatef(gp->anglez,0,0,1);
+ glScalef(1,1,(GLfloat)_waveHeight);
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glEnable(GL_TEXTURE_2D);
+
+ clear_gl_error();
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glBindTexture(GL_TEXTURE_2D, gp->texName);
+ check_gl_error("texture binding");
+
+ glColor3f(0.5,0.5,0.5);
+
+ for(x = minx, u = minu; x < maxx - 0.01; x += dx, u += du) {
+ glBegin(GL_QUAD_STRIP);
+ for (y = miny, v = minv; y <= maxy + 0.01; y += dy, v += dv) {
+ z = getGrid(gp,x,y,gp->time);
+ glTexCoord2f(u*xs,v*ys);
+ glNormal3f(
+ getGrid(gp,x+dx,y,gp->time)-getGrid(gp, x-dx,y,gp->time),
+ getGrid(gp,x,y+dy,gp->time)-getGrid(gp, x,y-dy,gp->time),
+ 1
+ );
+ glVertex3f(x,y,z);
+
+ z = getGrid(gp,x+dx,y,gp->time);
+ glTexCoord2f((u+du)*xs,v*ys);
+ glNormal3f(
+ getGrid(gp,x+dx+dx,y,gp->time)-getGrid(gp, x,y,gp->time),
+ getGrid(gp,x+dx,y+dy,gp->time)-getGrid(gp, x+dx,y-dy,gp->time),
+ 1
+ );
+ glVertex3f(x+dx,y,z);
+ polys++;
+ }
+ glEnd();
+ }
+
+ /* Draw a border around the grid.
+ */
+ glColor3f(0.4, 0.4, 0.4);
+ glDisable(GL_TEXTURE_2D);
+ glEnable (GL_LINE_SMOOTH);
+
+ glBegin(GL_LINE_LOOP);
+ y = miny;
+ for (x = minx; x <= maxx; x += dx) {
+ glVertex3f (x, y, getGrid (gp, x, y, gp->time));
+ polys++;
+ }
+ x = maxx;
+ for (y = miny; y <= maxy; y += dy) {
+ glVertex3f (x, y, getGrid (gp, x, y, gp->time));
+ polys++;
+ }
+ y = maxy;
+ for (x = maxx; x >= minx; x -= dx) {
+ glVertex3f (x, y, getGrid (gp, x, y, gp->time));
+ polys++;
+ }
+ x = minx;
+ for (y = maxy; y >= miny; y -= dy) {
+ glVertex3f (x, y, getGrid (gp, x, y, gp->time));
+ polys++;
+ }
+ glEnd();
+ glEnable(GL_TEXTURE_2D);
+
+ if (! gp->button_down_p) {
+ gp->time -= _speed;
+ gp->anglex -= _rotationx;
+ gp->angley -= _rotationy;
+ gp->anglez -= _rotationz;
+ }
+ return polys;
+}
+
+static int displaySolid(gfluxstruct *gp)
+{
+ int polys = 0;
+ double x,y;
+ double z;
+ double dx = 2.0/((double)_squares);
+ double dy = 2.0/((double)_squares);
+
+ glLoadIdentity();
+ glRotatef(gp->anglex,1,0,0);
+ glRotatef(gp->angley,0,1,0);
+ glRotatef(gp->anglez,0,0,1);
+ userRot(gp);
+ glScalef(1,1,(GLfloat)_waveHeight);
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+
+ for(x=-1;x<0.9999;x+=dx) {
+ glBegin(GL_QUAD_STRIP);
+ for(y=-1;y<=1;y+=dy) {
+ z = getGrid(gp, x,y,gp->time);
+ genColour(z);
+ glColor3fv(gp->colour);
+ glVertex3f(x,y,z);
+
+ z = getGrid(gp, x+dx,y,gp->time);
+ genColour(z);
+ glColor3fv(gp->colour);
+ glVertex3f(x+dx,y,z);
+ polys++;
+ }
+ glEnd();
+ }
+
+ if (! gp->button_down_p) {
+ gp->time -= _speed;
+ gp->anglex -= _rotationx;
+ gp->angley -= _rotationy;
+ gp->anglez -= _rotationz;
+ }
+
+ return polys;
+}
+
+static int displayLight(gfluxstruct *gp)
+{
+ int polys = 0;
+ double x,y;
+ double z;
+ double dx = 2.0/((double)_squares);
+ double dy = 2.0/((double)_squares);
+
+ glLoadIdentity();
+ glRotatef(gp->anglex,1,0,0);
+ glRotatef(gp->angley,0,1,0);
+ glRotatef(gp->anglez,0,0,1);
+ userRot(gp);
+ glScalef(1,1,(GLfloat)_waveHeight);
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+
+ for(x=-1;x<0.9999;x+=dx) {
+ glBegin(GL_QUAD_STRIP);
+ for(y=-1;y<=1;y+=dy) {
+ z = getGrid(gp, x,y,gp->time);
+ genColour(z);
+ glColor3fv(gp->colour);
+ glNormal3f(
+ getGrid(gp, x+dx,y,gp->time)-getGrid(gp, x-dx,y,gp->time),
+ getGrid(gp, x,y+dy,gp->time)-getGrid(gp, x,y-dy,gp->time),
+ 1
+ );
+ glVertex3f(x,y,z);
+
+ z = getGrid(gp, x+dx,y,gp->time);
+ genColour(z);
+ glColor3fv(gp->colour);
+ glNormal3f(
+ getGrid(gp, x+dx+dx,y,gp->time)-getGrid(gp, x,y,gp->time),
+ getGrid(gp, x+dx,y+dy,gp->time)-getGrid(gp, x+dx,y-dy,gp->time),
+ 1
+ );
+ glVertex3f(x+dx,y,z);
+ polys++;
+ }
+ glEnd();
+ }
+
+ if (! gp->button_down_p) {
+ gp->time -= _speed;
+ gp->anglex -= _rotationx;
+ gp->angley -= _rotationy;
+ gp->anglez -= _rotationz;
+ }
+ return polys;
+}
+
+static int displayWire(gfluxstruct *gp)
+{
+ int polys = 0;
+ double x,y;
+ double z;
+ double dx1 = 2.0/((double)(_squares*_resolution)) - 0.00001;
+ double dy1 = 2.0/((double)(_squares*_resolution)) - 0.00001;
+ double dx2 = 2.0/((double)_squares) - 0.00001;
+ double dy2 = 2.0/((double)_squares) - 0.00001;
+
+ glLoadIdentity();
+ glRotatef(gp->anglex,1,0,0);
+ glRotatef(gp->angley,0,1,0);
+ glRotatef(gp->anglez,0,0,1);
+ userRot(gp);
+ glScalef(1,1,(GLfloat)_waveHeight);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ for(x=-1;x<=1;x+=dx2) {
+ glBegin(GL_LINE_STRIP);
+ for(y=-1;y<=1;y+=dy1) {
+ z = getGrid(gp, x,y,gp->time);
+ genColour(z);
+ glColor3fv(gp->colour);
+ glVertex3f(x,y,z);
+ polys++;
+ }
+ glEnd();
+ }
+ for(y=-1;y<=1;y+=dy2) {
+ glBegin(GL_LINE_STRIP);
+ for(x=-1;x<=1;x+=dx1) {
+ z = getGrid(gp, x,y,gp->time);
+ genColour(z);
+ glColor3fv(gp->colour);
+ glVertex3f(x,y,z);
+ polys++;
+ }
+ glEnd();
+ }
+
+ if (! gp->button_down_p) {
+ gp->time -= _speed;
+ gp->anglex -= _rotationx;
+ gp->angley -= _rotationy;
+ gp->anglez -= _rotationz;
+ }
+ return polys;
+}
+
+/* generates new ripples */
+static void calcGrid(gfluxstruct *gp)
+{
+ double tmp;
+
+ if (gp->button_down_p) return;
+
+ tmp = 1.0/((double)_waveChange);
+ if(!(gp->counter%_waveChange)) {
+ gp->newWave = ((int)(gp->counter*tmp))%_waves;
+ gp->dispx[gp->newWave] = -frand(1.0);
+ gp->dispy[gp->newWave] = -frand(1.0);
+ gp->freq[gp->newWave] = _waveFreq * frand(1.0);
+ gp->wa[gp->newWave] = 0.0;
+ }
+ gp->counter++;
+ gp->wa[gp->newWave] += tmp;
+ gp->wa[(gp->newWave+1)%_waves] -= tmp;
+}
+
+/* returns a height for the grid given time and x,y space co-ords */
+static double getGrid(gfluxstruct *gp, double x, double y, double a)
+{
+ register int i;
+ double retval=0.0;
+ double tmp;
+
+ tmp = 1.0/((float)_waves);
+ for(i=0;i<_waves;i++) {
+ retval += gp->wa[i] * tmp * sin( gp->freq[i]
+ * ( (x+gp->dispx[i]) * (x+gp->dispx[i])
+ + (y+gp->dispy[i]) * (y+gp->dispy[i]) +a ) );
+ }
+ return(retval);
+}
+
+
+XSCREENSAVER_MODULE ("GFlux", gflux)
+
+#endif
diff --git a/hacks/glx/gflux.man b/hacks/glx/gflux.man
new file mode 100644
index 0000000..654aeb4
--- /dev/null
+++ b/hacks/glx/gflux.man
@@ -0,0 +1,111 @@
+.TH XScreenSaver 1 "May 2004"
+.SH NAME
+gflux \- rippling surface graphics hack
+.SH SYNOPSIS
+.B gflux
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-squares \fInum\fP] [\-resolution \fInum\fP] [\-mode \fImode\fP]
+[\-flat \fInum\fP] [\-speed \fInum\fP]
+[\-rotationx \fInum\fP] [\-rotationy \fInum\fP] [\-rotationz \fInum\fP]
+[\-waves \fInum\fP] [\-waveChange \fInum\fP] [\-waveHeight \fInum\fP]
+[\-waveFreq \fInum\fP] [\-zoom \fInum\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIgflux\fP program draws a colourfull animated rippling square rotating in 3D space.
+.SH OPTIONS
+.I gflux
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-squares \fInum\fP\fP
+Specifies the size of the grid in squares. default 19
+.TP 8
+.B \-resolution \fInum\fP\fP
+Specifies the wireframe detail of the squares. default 4
+.TP 8
+.B \-mode \fImode\fP\fP
+Specifies the draw method: wireframe; solid (meaning a solid colored
+surface); light (same as solid, but with lighting effects);
+checker (a texture-mapped checkerboard pattern); or grab (meaning
+grab an image to manipulate.)
+
+When grabbing images, the image will be grabbed from the portion of
+the screen underlying the window, or from the system's video input,
+or from a random file on disk, as indicated by
+the \fIgrabDesktopImages\fP, \fIgrabVideoFrames\fP,
+and \fIchooseRandomImages\fP options in the \fI~/.xscreensaver\fP
+file; see
+.BR xscreensaver-demo (1)
+for more details.
+.TP 8
+.B \-wireframe
+Same as "-mode wire".
+.TP 8
+.B \-flat \fInum\fP\fP
+0 for smooth shading 1 for flat. default 0
+.TP 8
+.B \-speed \fInum\fP\fP
+Specifies speed of ripples flowing over the surface. default 0.05
+.TP 8
+.B \-rotationx \fInum\fP \-rotationy \fInum\fP \-rotationz \fInum\fP\fP
+Specifies the speed of rotation of the surface in these axis
+.TP 8
+.B \-waves \fInum\fP\fP
+Specifies the number of ripple centres at any one time. Values should be greater than 1. default 3
+.TP 8
+.B \-waveChange \fInum\fP\fP
+Specifies the duration of a ripple centre. after this they fade away to be reborn elsewhere with a different frequency. default 50
+.TP 8
+.B \-waveHeight \fInum\fP\fP
+Specifies the height of ripples on the surface. default 1.0
+.TP 8
+.B \-waveFreq \fInum\fP\fP
+Specifies the maximum frequency of ripples. default 3.0
+.TP 8
+.B \-zoom \fInum\fP\fP
+Specifies the size of the viewport. Smaller values fill the screen with rippling surface. default 1.0
+.TP 8
+.B \-delay \fImicroseconds\fP
+How long to pause between frames. Default is 20000, or 0.02 second.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 2000 by Josiah Pease. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Josiah Pease <gflux@jpease.force9.co.uk>, 10-Jun-2000.
+
diff --git a/hacks/glx/glblur.c b/hacks/glx/glblur.c
new file mode 100644
index 0000000..cee020c
--- /dev/null
+++ b/hacks/glx/glblur.c
@@ -0,0 +1,610 @@
+/* glblur --- radial blur using GL textures
+ * Copyright (c) 2002-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * This program draws a box and a few line segments, and generates a flowing
+ * radial blur outward from it -- this causes flowing field effects.
+ * It does this by rendering the scene into a small texture, then repeatedly
+ * rendering increasingly-enlarged and increasingly-transparent versions of
+ * that texture onto the frame buffer.
+ *
+ * As such, it's quite graphics intensive -- don't bother trying to run this
+ * if you don't have hardware-accelerated texture support.
+ *
+ * Inspired by Dario Corno's Radial Blur tutorial:
+ * http://nehe.gamedev.net/tutorials/lesson.asp?l=36
+ */
+
+#define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_glblur 0
+# define release_glblur 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef ABS
+#define ABS(n) ((n)<0?-(n):(n))
+#undef SIGNOF
+#define SIGNOF(n) ((n)<0?-1:1)
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPIN "XYZ"
+#define DEF_WANDER "True"
+#define DEF_BLUR_SIZE "15"
+
+typedef struct metaball metaball;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLuint obj_dlist0; /* east-west cube faces */
+ GLuint obj_dlist1; /* north-south cube faces */
+ GLuint obj_dlist2; /* up-down cube faces */
+ GLuint obj_dlist3; /* spikes coming out of the cube's corners */
+ GLuint scene_dlist1; /* the cube, rotated and translated */
+ GLuint scene_dlist2; /* the spikes, rotated and translated */
+ int scene_polys1; /* polygons in scene, not counting texture overlay */
+ int scene_polys2; /* polygons in scene, not counting texture overlay */
+
+ GLuint texture;
+ unsigned int *tex_data;
+ int tex_w, tex_h;
+
+ int ncolors;
+ XColor *colors0;
+ XColor *colors1;
+ XColor *colors2;
+ XColor *colors3;
+ int ccolor;
+
+ Bool show_cube_p;
+ Bool show_spikes_p;
+
+} glblur_configuration;
+
+static glblur_configuration *bps = NULL;
+
+static char *do_spin;
+static Bool do_wander;
+static int blursize;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-blursize", ".blurSize", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&blursize, "blurSize","BlurSize", DEF_BLUR_SIZE, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt glblur_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_glblur (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 8.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+
+/* Objects in the scene
+ */
+
+static void
+generate_object (ModeInfo *mi)
+{
+ glblur_configuration *bp = &bps[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME (mi);
+ int s = 10;
+
+ bp->scene_polys1 = 0;
+ bp->scene_polys2 = 0;
+
+ glNewList (bp->obj_dlist0, GL_COMPILE);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* front */
+ glNormal3f (0, 0, 1);
+ glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5, 0.5);
+ glTexCoord2f(0, 0); glVertex3f ( 0.5, 0.5, 0.5);
+ glTexCoord2f(0, 1); glVertex3f (-0.5, 0.5, 0.5);
+ glTexCoord2f(1, 1); glVertex3f (-0.5, -0.5, 0.5);
+ bp->scene_polys1++;
+ glEnd();
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* back */
+ glNormal3f (0, 0, -1);
+ glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+ glTexCoord2f(0, 1); glVertex3f (-0.5, 0.5, -0.5);
+ glTexCoord2f(1, 1); glVertex3f ( 0.5, 0.5, -0.5);
+ glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5, -0.5);
+ bp->scene_polys1++;
+ glEnd();
+ glEndList();
+
+ glNewList (bp->obj_dlist1, GL_COMPILE);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* left */
+ glNormal3f (-1, 0, 0);
+ glTexCoord2f(1, 1); glVertex3f (-0.5, 0.5, 0.5);
+ glTexCoord2f(1, 0); glVertex3f (-0.5, 0.5, -0.5);
+ glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+ glTexCoord2f(0, 1); glVertex3f (-0.5, -0.5, 0.5);
+ bp->scene_polys1++;
+ glEnd();
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* right */
+ glNormal3f (1, 0, 0);
+ glTexCoord2f(1, 1); glVertex3f ( 0.5, -0.5, -0.5);
+ glTexCoord2f(1, 0); glVertex3f ( 0.5, 0.5, -0.5);
+ glTexCoord2f(0, 0); glVertex3f ( 0.5, 0.5, 0.5);
+ glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5, 0.5);
+ bp->scene_polys1++;
+ glEnd();
+ glEndList();
+
+ glNewList (bp->obj_dlist2, GL_COMPILE);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* top */
+ glNormal3f (0, 1, 0);
+ glTexCoord2f(0, 0); glVertex3f ( 0.5, 0.5, 0.5);
+ glTexCoord2f(0, 1); glVertex3f ( 0.5, 0.5, -0.5);
+ glTexCoord2f(1, 1); glVertex3f (-0.5, 0.5, -0.5);
+ glTexCoord2f(1, 0); glVertex3f (-0.5, 0.5, 0.5);
+ bp->scene_polys1++;
+ glEnd();
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS); /* bottom */
+ glNormal3f (0, -1, 0);
+ glTexCoord2f(1, 0); glVertex3f (-0.5, -0.5, 0.5);
+ glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+ glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5, -0.5);
+ glTexCoord2f(1, 1); glVertex3f ( 0.5, -0.5, 0.5);
+ bp->scene_polys1++;
+ glEnd();
+ glEndList();
+
+ glNewList (bp->obj_dlist3, GL_COMPILE);
+ glLineWidth (1);
+ glBegin(GL_LINES);
+ glVertex3f(-s, 0, 0); glVertex3f(s, 0, 0); /* face spikes */
+ glVertex3f(0, -s, 0); glVertex3f(0, s, 0);
+ glVertex3f(0, 0, -s); glVertex3f(0, 0, s);
+ bp->scene_polys2 += 3;
+ glEnd();
+
+ glLineWidth (8);
+ glBegin(GL_LINES);
+ glVertex3f(-s, -s, -s); glVertex3f( s, s, s); /* corner spikes */
+ glVertex3f(-s, -s, s); glVertex3f( s, s, -s);
+ glVertex3f(-s, s, -s); glVertex3f( s, -s, s);
+ glVertex3f( s, -s, -s); glVertex3f(-s, s, s);
+ bp->scene_polys2 += 4;
+ glEnd();
+ glEndList ();
+
+ check_gl_error ("object generation");
+}
+
+
+static void
+init_texture (ModeInfo *mi)
+{
+ glblur_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (bp->tex_data) free (bp->tex_data);
+
+ bp->tex_w = 128;
+ bp->tex_h = 128;
+ bp->tex_data = (unsigned int *)
+ malloc (bp->tex_w * bp->tex_h * 4 * sizeof (unsigned int));
+
+ glGenTextures (1, &bp->texture);
+ glBindTexture (GL_TEXTURE_2D, bp->texture);
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ bp->tex_w, bp->tex_h, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, bp->tex_data);
+ check_gl_error ("texture generation");
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+}
+
+
+static void
+render_scene_to_texture (ModeInfo *mi)
+{
+ glblur_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ glViewport (0, 0, bp->tex_w, bp->tex_h);
+
+ glCallList (bp->scene_dlist1);
+ glCallList (bp->scene_dlist2);
+
+ glBindTexture (GL_TEXTURE_2D, bp->texture);
+ glCopyTexImage2D (GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0,
+ bp->tex_w, bp->tex_h, 0);
+ check_gl_error ("texture2D");
+
+ glViewport (0, 0, MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+static void
+overlay_blur_texture (ModeInfo *mi)
+{
+ glblur_configuration *bp = &bps[MI_SCREEN(mi)];
+ int w = MI_WIDTH (mi);
+ int h = MI_HEIGHT (mi);
+ int times = blursize;
+ int i;
+ GLfloat inc = 0.02 * (25.0 / times);
+
+ GLfloat spost = 0; /* starting texture coordinate offset */
+ GLfloat alpha_inc; /* transparency fade factor */
+ GLfloat alpha = 0.2; /* initial transparency */
+
+ glEnable (GL_TEXTURE_2D);
+ glDisable (GL_DEPTH_TEST);
+ glBlendFunc (GL_SRC_ALPHA,GL_ONE);
+ glEnable (GL_BLEND);
+ glBindTexture (GL_TEXTURE_2D, bp->texture);
+
+
+ /* switch to orthographic projection, saving both previous matrixes
+ on their respective stacks.
+ */
+ glMatrixMode (GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+ glOrtho (0, w, h, 0, -1, 1);
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+
+ alpha_inc = alpha / times;
+
+ mi->polygon_count = bp->scene_polys1 + bp->scene_polys2;
+
+ glBegin (GL_QUADS);
+ for (i = 0; i < times; i++)
+ {
+ glColor4f (1, 1, 1, alpha);
+ glTexCoord2f (0+spost, 1-spost); glVertex2f (0, 0);
+ glTexCoord2f (0+spost, 0+spost); glVertex2f (0, h);
+ glTexCoord2f (1-spost, 0+spost); glVertex2f (w, h);
+ glTexCoord2f (1-spost, 1-spost); glVertex2f (w, 0);
+ spost += inc;
+ alpha -= alpha_inc;
+ mi->polygon_count++;
+ }
+ glEnd();
+
+ /* Switch back to perspective projection, restoring the saved matrixes
+ */
+ glMatrixMode (GL_PROJECTION);
+ glPopMatrix();
+ glMatrixMode (GL_MODELVIEW);
+ glPopMatrix();
+
+ glEnable (GL_DEPTH_TEST);
+ glDisable (GL_BLEND);
+ glDisable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, 0);
+}
+
+
+
+/* Startup initialization
+ */
+
+ENTRYPOINT Bool
+glblur_handle_event (ModeInfo *mi, XEvent *event)
+{
+ glblur_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_glblur (ModeInfo *mi)
+{
+ glblur_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_glblur (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
+ if (!wire)
+ {
+ GLfloat gamb[4]= {0.2, 0.2, 0.2, 1.0};
+ GLfloat pos[4] = {0.0, 5.0, 10.0, 1.0};
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {0.3, 0.3, 0.3, 1.0};
+ GLfloat spc[4] = {0.8, 0.8, 0.8, 1.0};
+ GLfloat shiny = 128;
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_NORMALIZE);
+ glShadeModel(GL_SMOOTH);
+
+ glLightModelfv (GL_LIGHT_MODEL_AMBIENT, gamb);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glMaterialf(GL_FRONT, GL_SHININESS, shiny);
+ }
+
+ {
+ Bool spinx=False, spiny=False, spinz=False;
+ double spin_speed = 0.9;
+ double wander_speed = 0.06;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') spinx = True;
+ else if (*s == 'y' || *s == 'Y') spiny = True;
+ else if (*s == 'z' || *s == 'Z') spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ bp->rot = make_rotator (spinx ? spin_speed : 0,
+ spiny ? spin_speed : 0,
+ spinz ? spin_speed : 0,
+ 1.0,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ if (blursize < 0) blursize = 0;
+ if (blursize > 200) blursize = 200;
+
+ bp->ncolors = 128;
+ bp->colors0 = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ bp->colors1 = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ bp->colors2 = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ bp->colors3 = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0, bp->colors0, &bp->ncolors, False, 0, False);
+ make_smooth_colormap (0, 0, 0, bp->colors1, &bp->ncolors, False, 0, False);
+ make_smooth_colormap (0, 0, 0, bp->colors2, &bp->ncolors, False, 0, False);
+ make_smooth_colormap (0, 0, 0, bp->colors3, &bp->ncolors, False, 0, False);
+ bp->ccolor = 0;
+
+ bp->obj_dlist0 = glGenLists (1);
+ bp->obj_dlist1 = glGenLists (1);
+ bp->obj_dlist2 = glGenLists (1);
+ bp->obj_dlist3 = glGenLists (1);
+ bp->scene_dlist1 = glGenLists (1);
+ bp->scene_dlist2 = glGenLists (1);
+
+ init_texture (mi);
+
+ generate_object (mi);
+}
+
+
+/* Render one frame
+ */
+ENTRYPOINT void
+draw_glblur (ModeInfo *mi)
+{
+ glblur_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ GLfloat color0[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color1[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color2[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color3[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat spec[4] = {1.0, 1.0, 1.0, 1.0};
+
+ double rx, ry, rz;
+ double px, py, pz;
+ int extra_polys = 0;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ /* Decide what we're drawing
+ */
+ if (0 == (random() % 30))
+ {
+ bp->show_cube_p = (0 == (random() % 10));
+ bp->show_spikes_p = (0 == (random() % 20));
+ }
+
+ /* Select new colors for the various objects
+ */
+ color0[0] = bp->colors0[bp->ccolor].red / 65536.0;
+ color0[1] = bp->colors0[bp->ccolor].green / 65536.0;
+ color0[2] = bp->colors0[bp->ccolor].blue / 65536.0;
+
+ color1[0] = bp->colors1[bp->ccolor].red / 65536.0;
+ color1[1] = bp->colors1[bp->ccolor].green / 65536.0;
+ color1[2] = bp->colors1[bp->ccolor].blue / 65536.0;
+
+ color2[0] = bp->colors2[bp->ccolor].red / 65536.0;
+ color2[1] = bp->colors2[bp->ccolor].green / 65536.0;
+ color2[2] = bp->colors2[bp->ccolor].blue / 65536.0;
+
+ color3[0] = bp->colors3[bp->ccolor].red / 65536.0;
+ color3[1] = bp->colors3[bp->ccolor].green / 65536.0;
+ color3[2] = bp->colors3[bp->ccolor].blue / 65536.0;
+
+ bp->ccolor++;
+ if (bp->ccolor >= bp->ncolors) bp->ccolor = 0;
+
+
+ get_position (bp->rot, &px, &py, &pz, !bp->button_down_p);
+ get_rotation (bp->rot, &rx, &ry, &rz, !bp->button_down_p);
+
+ px = (px - 0.5) * 2;
+ py = (py - 0.5) * 2;
+ pz = (pz - 0.5) * 8;
+ rx *= 360;
+ ry *= 360;
+ rz *= 360;
+
+ /* Generate scene_dlist1, which contains the box (not spikes),
+ rotated into position.
+ */
+ glNewList (bp->scene_dlist1, GL_COMPILE);
+ {
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix ();
+ glTranslatef (px, py, pz);
+ gltrackball_rotate (bp->trackball);
+ glRotatef (rx, 1.0, 0.0, 0.0);
+ glRotatef (ry, 0.0, 1.0, 0.0);
+ glRotatef (rz, 0.0, 0.0, 1.0);
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color0);
+ glCallList (bp->obj_dlist0);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color1);
+ glCallList (bp->obj_dlist1);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color2);
+ glCallList (bp->obj_dlist2);
+
+ glMatrixMode (GL_MODELVIEW);
+ glPopMatrix ();
+ }
+ glEndList ();
+
+
+ /* Generate scene_dlist2, which contains the spikes (not box),
+ rotated into position.
+ */
+ glNewList (bp->scene_dlist2, GL_COMPILE);
+ {
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix ();
+ glTranslatef (px, py, pz);
+ gltrackball_rotate (bp->trackball);
+ glRotatef (rx, 1.0, 0.0, 0.0);
+ glRotatef (ry, 0.0, 1.0, 0.0);
+ glRotatef (rz, 0.0, 0.0, 1.0);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color3);
+ glCallList (bp->obj_dlist3);
+
+ glMatrixMode (GL_MODELVIEW);
+ glPopMatrix ();
+ }
+ glEndList ();
+
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ render_scene_to_texture (mi);
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (bp->show_cube_p || bp->button_down_p)
+ {
+ glCallList (bp->scene_dlist1);
+ extra_polys += bp->scene_polys1;
+ }
+ if (bp->show_spikes_p || bp->button_down_p)
+ {
+ glCallList (bp->scene_dlist2);
+ extra_polys += bp->scene_polys2;
+ }
+
+ overlay_blur_texture (mi);
+ mi->polygon_count += extra_polys;
+
+ glFlush ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("GLBlur", glblur)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/glblur.man b/hacks/glx/glblur.man
new file mode 100644
index 0000000..968f42f
--- /dev/null
+++ b/hacks/glx/glblur.man
@@ -0,0 +1,76 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+glblur - 3D radial blur texture fields
+.SH SYNOPSIS
+.B glblur
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-blursize \fInumber\fP]
+[\-no-wander]
+[\-no-spin]
+[\-spin \fI[XYZ]\fP]
+[\-fps]
+.SH DESCRIPTION
+This program draws a box and a few line segments, and generates a
+radial blur outward from it. This creates flowing field effects.
+
+This is done by rendering the scene into a small texture, then
+repeatedly rendering increasingly-enlarged and increasingly-transparent
+versions of that texture onto the frame buffer. As such, it's quite
+graphics intensive: don't bother trying to run this if you don't have
+hardware-accelerated texture support. It will hurt your machine bad.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-blursize \fInumber\fP
+How many copies of the scene should be laid down to make the vapor trail.
+Default: 15. Larger numbers create smoother fields, but are slower.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin [XYZ]
+Around which axes should the object spin?
+.TP 8
+.B \-no-spin
+None.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski, with inspiration from a tutorial by Dario Corno.
diff --git a/hacks/glx/glcells.c b/hacks/glx/glcells.c
new file mode 100644
index 0000000..adf9866
--- /dev/null
+++ b/hacks/glx/glcells.c
@@ -0,0 +1,1388 @@
+/* -*- Mode: C; tab-width: 2 -*- */
+/* glcells --- Cells growing on your screen */
+
+/*-
+ * Cells growing on your screen
+ *
+ * Copyright (c) 2007 by Matthias Toussaint
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * 2007: Written by Matthias Toussaint
+ * 0.1 Initial version
+ * 0.2 Bugfixes (threading) and code cleanup by Jamie Zawinski
+ * Window scaling bug + performance bug in tick()
+ */
+
+#include <sys/time.h> /* gettimeofday */
+
+#include "xlockmore.h"
+#include <math.h>
+
+/**********************************
+ DEFINES
+ **********************************/
+
+#define INDEX_OFFSET 100000
+#define NUM_CELL_SHAPES 10
+
+#define release_glcells 0
+#define glcells_handle_event xlockmore_no_events
+
+#define DEF_DELAY "20000"
+#define DEF_MAXCELLS "800"
+#define DEF_RADIUS "40"
+#define DEF_SEEDS "1"
+#define DEF_QUALITY "3"
+#define DEF_KEEPOLD "False"
+#define DEF_MINFOOD "5"
+#define DEF_MAXFOOD "20"
+#define DEF_DIVIDEAGE "20"
+#define DEF_MINDIST "1.4"
+#define DEF_PAUSE "50"
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#ifndef HAVE_JWZGLES /* glDrawElements unimplemented... */
+# define USE_VERTEX_ARRAY
+#endif
+
+#define TEX_SIZE 64
+
+/**********************************
+ TYPEDEFS
+ **********************************/
+
+typedef struct /* a 3-D vector */
+{
+ double x, y, z; /* 3-D coordinates (we don't need w here) */
+} Vector;
+
+typedef struct /* a triangle (indexes of vertexes in some list) */
+{
+ int i[3]; /* the three indexes for the triangle corners */
+} Triangle;
+
+typedef struct
+{
+ float *vertex;
+ float *normal;
+ unsigned *index;
+ int num_index;
+} VertexArray;
+
+typedef struct /* an 3-D object without normal vectors */
+{
+ Vector *vertex; /* the vertexes */
+ Triangle *triangle; /* triangle list */
+ int num_vertex; /* number of vertexes */
+ int num_triangle; /* number of triangles */
+} Object;
+
+typedef struct /* an 3-D object with smooth normal vectors */
+{
+ Vector *vertex; /* the vertexes */
+ Vector *normal; /* the vertex normal vectors */
+ Triangle *triangle; /* triangle list */
+ int num_vertex; /* number of vertexes */
+ int num_triangle; /* number of triangles */
+} ObjectSmooth;
+
+typedef struct /* Cell */
+{
+ double x, y; /* position */
+ double vx, vy; /* movement vector */
+ int age; /* cells age */
+ double min_dist; /* minimum distance to other cells */
+ int energy; /* health */
+ double rotation; /* random rot, so they don't look all the same */
+ double radius; /* current size of cell */
+ double growth; /* current growth rate. might be <1.0 while dividing,
+ >1.0 when finished dividing and food is available
+ and 1.0 when grown up */
+} Cell;
+
+typedef struct /* hacks state */
+{
+ GLXContext *glx_context;
+ int width, height; /* current size of viewport */
+ double screen_scale; /* we scale content with window size */
+ int num_cells; /* current number of cell in list */
+ Cell *cell; /* array of cells */
+ int cell_polys;
+ GLfloat color[4]; /* current cell color */
+ double radius; /* cell radius */
+ int move_dist; /* min distance from neighbours for forking */
+ int max_cells; /* maximum number of cells */
+ int num_seeds; /* number of initial seeds */
+ int keep_old_cells; /* draw dead cells? */
+ int divide_age; /* min age for division */
+ /* display lists for the cell stages */
+ int cell_list[NUM_CELL_SHAPES];
+ int nucleus_list;
+ int minfood; /* minimum amount of food per area unit */
+ int maxfood; /* maximum amount of food per area unit */
+ int pause; /* pause at end (all cells dead) */
+ int pause_counter;
+ int wire; /* draw wireframe? */
+ Object *sphere; /* the raw undisturbed sphere */
+ double *disturbance; /* disturbance values for the vertexes */
+ int *food; /* our petri dish (e.g. screen) */
+ GLubyte *texture; /* texture data for nucleus */
+ GLuint texture_name; /* texture name for binding */
+} State;
+
+/**********************************
+ STATIC STUFF
+ **********************************/
+
+static State *sstate = NULL;
+
+static XrmOptionDescRec opts[] = {
+ { "-maxcells", ".maxcells", XrmoptionSepArg, 0 },
+ { "-radius", ".radius", XrmoptionSepArg, 0 },
+ { "-seeds", ".seeds", XrmoptionSepArg, 0 },
+ { "-quality", ".quality", XrmoptionSepArg, 0 },
+ { "-minfood", ".minfood", XrmoptionSepArg, 0 },
+ { "-maxfood", ".maxfood", XrmoptionSepArg, 0 },
+ { "-divideage", ".divideage", XrmoptionSepArg, 0 },
+ { "-mindist", ".mindist", XrmoptionSepArg, 0 },
+ { "-pause", ".pause", XrmoptionSepArg, 0 },
+ { "-keepold", ".keepold", XrmoptionNoArg, "True" }
+};
+
+static int s_maxcells;
+static int s_radius;
+static int s_seeds;
+static int s_quality;
+static int s_minfood;
+static int s_maxfood;
+static int s_divideage;
+static int s_pause;
+static float s_min_dist;
+static Bool s_keepold;
+
+static argtype vars[] = {
+ {&s_maxcells, "maxcells", "Max Cells", DEF_MAXCELLS, t_Int},
+ {&s_radius, "radius", "Radius", DEF_RADIUS, t_Int},
+ {&s_seeds, "seeds", "Seeds", DEF_SEEDS, t_Int},
+ {&s_quality, "quality", "Quality", DEF_QUALITY, t_Int},
+ {&s_minfood, "minfood", "Min Food", DEF_MINFOOD, t_Int},
+ {&s_maxfood, "maxfood", "Max Food", DEF_MAXFOOD, t_Int},
+ {&s_pause, "pause", "Pause at end", DEF_PAUSE, t_Int},
+ {&s_divideage, "divideage", "Age for duplication (Ticks)", DEF_DIVIDEAGE, t_Int},
+ {&s_min_dist, "mindist", "Minimum preferred distance to other cells", DEF_MINDIST, t_Float},
+ {&s_keepold, "keepold", "Keep old cells", DEF_KEEPOLD, t_Bool}
+};
+
+/**********************************
+ PROTOTYPES
+ **********************************/
+
+/* render scene */
+static int render( State *st );
+/* create initial cells and fill petri dish with food */
+static void create_cells( State * );
+/* do one animation step */
+static void tick( State *st );
+/* draw a single cell */
+static void draw_cell( State *st, int shape );
+/* draw cells nucleus */
+static void draw_nucleus( State *st );
+/* return randum number in the interval min-max */
+static int random_interval( int min, int max );
+/* retunr random number in the interval 0-max */
+static int random_max( int max );
+/* create display list for given disturbance weighting factor */
+static int create_list( State *st, double fac );
+/* return length of vector */
+static double vector_length( Vector * );
+/* normalize vector */
+static void vector_normalize( Vector * );
+/* a += b */
+static void vector_add( Vector *a, Vector *b );
+/* a -= b */
+static void vector_sub( Vector *a, Vector *b );
+/* a *= fac */
+static void vector_mul( Vector *a, double fac );
+/* a.x = a.y = a.z = 0 */
+static void vector_clear( Vector *a );
+/* return crossproduct a*b in out */
+static void vector_crossprod( Vector *a, Vector *b, Vector *out );
+/* return 1 if vectors are equal (epsilon compare) otherwise 0 */
+static int vector_compare( Vector *a, Vector *b );
+/* compute normal vector of given triangle and return in out */
+static void triangle_normal( Vector *a, Vector *b, Vector *c, Vector *out );
+/* take an Object and create an ObjectSmooth out of it */
+static ObjectSmooth *create_ObjectSmooth( Object * );
+/* Subdivide the Object once (assuming it's supposed to be a shpere */
+static Object *subdivide( Object *obj );
+/* free an Object */
+static void free_Object( Object * );
+/* free an ObjectSmooth */
+static void free_ObjectSmooth( ObjectSmooth * );
+/* scale an Object. return pointer to the object */
+/*static Object *scale_Object( Object *obj, double scale );*/
+/* create a perfect sphere refining with divisions */
+static Object *create_sphere( State *st, int divisions );
+/* make a copy of the given Object */
+static Object *clone_Object( Object * );
+/* return 1 if cell is capable to divide */
+static int can_divide( State *st, Cell *cell );
+#ifdef USE_VERTEX_ARRAY
+static VertexArray *array_from_ObjectSmooth( ObjectSmooth * );
+#endif
+static void create_nucleus_texture( State *st );
+
+ENTRYPOINT ModeSpecOpt glcells_opts = { countof(opts), opts, countof(vars), vars,
+ NULL };
+
+
+/**********************************
+ INLINE FUNCTIONS
+ **********************************/
+/* create random numbers
+*/
+static inline int random_interval( int min, int max )
+{
+ int n = max - min;
+ if (n == 0) n = 1;
+ return min+(random()%n);
+}
+
+static inline int random_max( int max )
+{
+ return random()%max;
+}
+
+/* Vector stuff
+*/
+
+/* a += b */
+static inline void vector_add( Vector *a, Vector *b )
+{
+ a->x += b->x;
+ a->y += b->y;
+ a->z += b->z;
+}
+
+/* a -= b */
+static inline void vector_sub( Vector *a, Vector *b )
+{
+ a->x -= b->x;
+ a->y -= b->y;
+ a->z -= b->z;
+}
+
+/* a *= v */
+static inline void vector_mul( Vector *a, double v )
+{
+ a->x *= v;
+ a->y *= v;
+ a->z *= v;
+}
+
+/* set to 0 */
+static inline void vector_clear( Vector *vec )
+{
+ vec->x = vec->y = vec->z = 0;
+}
+
+/* return vector length */
+static inline double vector_length( Vector *vec )
+{
+ return sqrt( vec->x*vec->x + vec->y*vec->y + vec->z*vec->z );
+}
+
+/* normalize vector */
+static inline void vector_normalize( Vector *vec )
+{
+ double len = vector_length( vec );
+
+ if (len != 0.0) {
+ vector_mul( vec, 1.0 / len );
+ }
+}
+
+/* crossproduct */
+static inline void vector_crossprod( Vector *a, Vector *b, Vector *out )
+{
+ out->x = a->y*b->z - a->z*b->y;
+ out->y = a->z*b->x - a->x*b->z;
+ out->z = a->x*b->y - a->y*b->x;
+}
+
+/* epsilon compare of two vectors */
+static inline int vector_compare( Vector *a, Vector *b )
+{
+ const double epsilon = 0.0000001;
+ Vector delta = *a;
+
+ vector_sub( &delta, b );
+ if (fabs(delta.x) < epsilon &&
+ fabs(delta.y) < epsilon &&
+ fabs(delta.z) < epsilon) {
+ return 1;
+ }
+
+ return 0;
+}
+
+/* check if given cell is capable of dividing
+ needs space, must be old enough, grown up and healthy
+*/
+static inline int can_divide( State *st, Cell *cell )
+{
+ if (cell->min_dist > st->move_dist &&
+ cell->age >= st->divide_age &&
+ cell->radius > 0.99 * st->radius &&
+ cell->energy > 0) {
+ return 1;
+ }
+
+ return 0;
+}
+
+/**********************************
+ FUNCTIONS
+ **********************************/
+
+/* compute normal vector of given
+ triangle spanned by the points a, b, c
+*/
+static void triangle_normal( Vector *a, Vector *b, Vector *c, Vector *out )
+{
+ Vector v1 = *a;
+ Vector v2 = *a;
+
+ vector_sub( &v1, b );
+ vector_sub( &v2, c );
+ vector_crossprod( &v1, &v2, out );
+}
+
+/* free */
+static void free_Object( Object *obj )
+{
+ free( obj->vertex );
+ free( obj->triangle );
+ free( obj );
+}
+
+static void free_ObjectSmooth( ObjectSmooth *obj )
+{
+ free( obj->vertex );
+ free( obj->triangle );
+ free( obj->normal );
+ free( obj );
+}
+
+/* scale the given Object */
+#if 0
+static Object *scale_Object( Object *obj, double scale )
+{
+ int v;
+
+ for (v=0; v<obj->num_vertex; ++v) {
+ vector_mul( &obj->vertex[v], scale );
+ }
+
+ return obj;
+}
+#endif
+
+/* create a copy of the given Object */
+static Object *clone_Object( Object *obj )
+{
+ /* alloc */
+ Object *ret = (Object *) malloc( sizeof( Object ) );
+
+ ret->vertex =
+ (Vector *) malloc( obj->num_vertex*sizeof(Vector) );
+ ret->triangle =
+ (Triangle *) malloc( obj->num_triangle*sizeof(Triangle) );
+ ret->num_vertex = obj->num_vertex;
+ ret->num_triangle = obj->num_triangle;
+ /* copy */
+ memcpy( ret->vertex, obj->vertex,
+ obj->num_vertex*sizeof(Vector) );
+ memcpy( ret->triangle, obj->triangle,
+ obj->num_triangle*sizeof(Triangle) );
+
+ return ret;
+}
+
+#ifdef USE_VERTEX_ARRAY
+static VertexArray *array_from_ObjectSmooth( ObjectSmooth *obj )
+{
+ int i, j;
+ VertexArray *array = (VertexArray *) malloc( sizeof( VertexArray ) );
+
+ array->vertex = (float *) malloc( 3*sizeof(float)*obj->num_vertex );
+ array->normal = (float *) malloc( 3*sizeof(float)*obj->num_vertex );
+ array->index = (unsigned *) malloc( 3*sizeof(unsigned)*obj->num_triangle );
+ array->num_index = obj->num_triangle*3;
+
+ for (i=0, j=0; i<obj->num_vertex; ++i) {
+ array->vertex[j] = obj->vertex[i].x;
+ array->normal[j++] = obj->normal[i].x;
+ array->vertex[j] = obj->vertex[i].y;
+ array->normal[j++] = obj->normal[i].y;
+ array->vertex[j] = obj->vertex[i].z;
+ array->normal[j++] = obj->normal[i].z;
+ }
+
+ for (i=0, j=0; i<obj->num_triangle; ++i) {
+ array->index[j++] = obj->triangle[i].i[0];
+ array->index[j++] = obj->triangle[i].i[1];
+ array->index[j++] = obj->triangle[i].i[2];
+ }
+
+ return array;
+}
+#endif /* USE_VERTEX_ARRAY */
+
+
+/* create a smoothed version of the given Object
+ by computing average normal vectors for the vertexes
+*/
+static ObjectSmooth *create_ObjectSmooth( Object *obj )
+{
+ int t, v, i;
+ Vector *t_normal =
+ (Vector *) malloc( obj->num_triangle*sizeof(Vector) );
+ ObjectSmooth *ret =
+ (ObjectSmooth *) malloc( sizeof( ObjectSmooth ) );
+
+ /* fill in vertexes and triangles */
+ ret->num_vertex = obj->num_vertex;
+ ret->num_triangle = obj->num_triangle;
+ ret->vertex =
+ (Vector *) malloc( obj->num_vertex * sizeof( Vector ) );
+ ret->normal =
+ (Vector *) malloc( obj->num_vertex * sizeof( Vector ) );
+ ret->triangle =
+ (Triangle *) malloc( obj->num_triangle * sizeof( Triangle ) );
+
+ for (v=0; v<obj->num_vertex; ++v) {
+ ret->vertex[v] = obj->vertex[v];
+ }
+
+ for (t=0; t<obj->num_triangle; ++t) {
+ ret->triangle[t] = obj->triangle[t];
+ }
+
+ /* create normals (triangles) */
+ for (t=0; t<ret->num_triangle; ++t) {
+ triangle_normal( &ret->vertex[ret->triangle[t].i[0]],
+ &ret->vertex[ret->triangle[t].i[1]],
+ &ret->vertex[ret->triangle[t].i[2]],
+ &t_normal[t] );
+ }
+
+ /* create normals (vertex) by averaging triangle
+ normals at vertex
+ */
+ for (v=0; v<ret->num_vertex; ++v) {
+ vector_clear( &ret->normal[v] );
+ for (t=0; t<ret->num_triangle; ++t) {
+ for (i=0; i<3; ++i) {
+ if (ret->triangle[t].i[i] == v) {
+ vector_add( &ret->normal[v], &t_normal[t] );
+ }
+ }
+ }
+ /* as we have only a half sphere we force the
+ normals at the bortder to be perpendicular to z.
+ the simple algorithm above makes an error here.
+ */
+ if (fabs(ret->vertex[v].z) < 0.0001) {
+ ret->normal[v].z = 0.0;
+ }
+
+ vector_normalize( &ret->normal[v] );
+ }
+
+ free( t_normal );
+
+ return ret;
+}
+
+/* subdivide the triangles of the object once
+ The order of this algorithm is probably something like O(n^42) :)
+ but I can't think of something smarter at the moment
+*/
+static Object *subdivide( Object *obj )
+{
+ /* create for worst case (which I dont't know) */
+ int start, t, i, v;
+ int index_list[1000];
+ int index_cnt, index_found;
+ Object *tmp = (Object *)malloc( sizeof(Object) );
+ Object *ret = (Object *)malloc( sizeof(Object) );
+ Object *c_ret;
+
+ tmp->vertex =
+ (Vector *)malloc( 100*obj->num_vertex*sizeof( Vector ) );
+ tmp->triangle =
+ (Triangle *)malloc( 4*obj->num_triangle*sizeof( Triangle ) );
+ tmp->num_vertex = 0;
+ tmp->num_triangle = 0;
+ ret->vertex =
+ (Vector *)malloc( 100*obj->num_vertex*sizeof( Vector ) );
+ ret->triangle =
+ (Triangle *)malloc( 4*obj->num_triangle*sizeof( Triangle ) );
+ ret->num_vertex = 0;
+ ret->num_triangle = 0;
+#ifdef PRINT_STAT
+ fprintf( stderr, "in v=%d t=%d\n",
+ obj->num_vertex, obj->num_triangle );
+#endif
+ /* for each triangle create 3 new vertexes and the 4
+ corresponding triangles
+ */
+ for (t=0; t<obj->num_triangle; ++t) {
+ /* copy the three original vertexes */
+ for (i=0; i<3; ++i) {
+ tmp->vertex[tmp->num_vertex++] =
+ obj->vertex[obj->triangle[t].i[i]];
+ }
+
+ /* create 3 new */
+ tmp->vertex[tmp->num_vertex] =
+ obj->vertex[obj->triangle[t].i[0]];
+ vector_add( &tmp->vertex[tmp->num_vertex],
+ &obj->vertex[obj->triangle[t].i[1]] );
+ vector_mul( &tmp->vertex[tmp->num_vertex++], 0.5 );
+
+ tmp->vertex[tmp->num_vertex] =
+ obj->vertex[obj->triangle[t].i[1]];
+ vector_add( &tmp->vertex[tmp->num_vertex],
+ &obj->vertex[obj->triangle[t].i[2]] );
+ vector_mul( &tmp->vertex[tmp->num_vertex++], 0.5 );
+
+ tmp->vertex[tmp->num_vertex] =
+ obj->vertex[obj->triangle[t].i[2]];
+ vector_add( &tmp->vertex[tmp->num_vertex],
+ &obj->vertex[obj->triangle[t].i[0]] );
+ vector_mul( &tmp->vertex[tmp->num_vertex++], 0.5 );
+
+ /* create triangles */
+ start = tmp->num_vertex-6;
+
+ tmp->triangle[tmp->num_triangle].i[0] = start;
+ tmp->triangle[tmp->num_triangle].i[1] = start+3;
+ tmp->triangle[tmp->num_triangle++].i[2] = start+5;
+
+ tmp->triangle[tmp->num_triangle].i[0] = start+3;
+ tmp->triangle[tmp->num_triangle].i[1] = start+1;
+ tmp->triangle[tmp->num_triangle++].i[2] = start+4;
+
+ tmp->triangle[tmp->num_triangle].i[0] = start+5;
+ tmp->triangle[tmp->num_triangle].i[1] = start+4;
+ tmp->triangle[tmp->num_triangle++].i[2] = start+2;
+
+ tmp->triangle[tmp->num_triangle].i[0] = start+3;
+ tmp->triangle[tmp->num_triangle].i[1] = start+4;
+ tmp->triangle[tmp->num_triangle++].i[2] = start+5;
+ }
+
+ /* compress object eliminating double vertexes
+ (welcome to the not so smart section)
+ */
+ /* copy original triangle list */
+ for (t=0; t<tmp->num_triangle; ++t) {
+ ret->triangle[t] = tmp->triangle[t];
+ }
+ ret->num_triangle = tmp->num_triangle;
+
+ /* copy unique vertexes and correct triangle list */
+ for (v=0; v<tmp->num_vertex; ++v) {
+ /* create list of vertexes that are the same */
+ index_cnt = 0;
+ for (i=0; i<tmp->num_vertex; ++i) {
+ /* check if i and v are the same
+ first in the list is the smallest index
+ */
+ if (vector_compare( &tmp->vertex[v], &tmp->vertex[i] )) {
+ index_list[index_cnt++] = i;
+ }
+ }
+
+ /* check if vertex unknown so far */
+ index_found = 0;
+ for (i=0; i<ret->num_vertex; ++i) {
+ if (vector_compare( &ret->vertex[i],
+ &tmp->vertex[index_list[0]] )) {
+ index_found = 1;
+ break;
+ }
+ }
+
+ if (!index_found) {
+ ret->vertex[ret->num_vertex] = tmp->vertex[index_list[0]];
+
+ /* correct triangles
+ (we add an offset to the index, so we can tell them apart)
+ */
+ for (t=0; t<ret->num_triangle; ++t) {
+ for (i=0; i<index_cnt; ++i) {
+ if (ret->triangle[t].i[0] == index_list[i]) {
+ ret->triangle[t].i[0] = ret->num_vertex+INDEX_OFFSET;
+ }
+ if (ret->triangle[t].i[1] == index_list[i]) {
+ ret->triangle[t].i[1] = ret->num_vertex+INDEX_OFFSET;
+ }
+ if (ret->triangle[t].i[2] == index_list[i]) {
+ ret->triangle[t].i[2] = ret->num_vertex+INDEX_OFFSET;
+ }
+ }
+ }
+ ret->num_vertex++;
+ }
+ }
+
+ free_Object( tmp );
+
+ /* correct index offset */
+ for (t=0; t<ret->num_triangle; ++t) {
+ ret->triangle[t].i[0] -= INDEX_OFFSET;
+ ret->triangle[t].i[1] -= INDEX_OFFSET;
+ ret->triangle[t].i[2] -= INDEX_OFFSET;
+ }
+
+ /* normalize vertexes */
+ for (v=0; v<ret->num_vertex; ++v) {
+ vector_normalize( &ret->vertex[v] );
+ }
+#ifdef PRINT_STAT
+ fprintf( stderr, "out v=%d t=%d\n",
+ ret->num_vertex, ret->num_triangle );
+#endif
+ /* shrink the arrays by cloning */
+ c_ret = clone_Object( ret );
+ free_Object( ret );
+
+ return c_ret;
+}
+
+static int render( State *st )
+{
+#ifdef PRINT_STAT
+ struct timeval tv1, tv2;
+ int usec;
+#endif
+ GLfloat LightAmbient[]= { 0.1f, 0.1f, 0.1f, 1.0f };
+ GLfloat LightPosition[]= { -20.0f, -10.0f, -100.0f, 0.0f };
+ int b;
+ int num_paint = 0;
+
+ if (0 == st->food) return 0;
+#ifdef PRINT_STAT
+ gettimeofday( &tv1, NULL );
+#endif
+ /* life goes on... */
+ tick( st );
+#ifdef PRINT_STAT
+ gettimeofday( &tv2, NULL );
+ usec = (tv2.tv_sec-tv1.tv_sec)*1000000+(tv2.tv_usec-tv1.tv_usec);
+ fprintf( stderr, "tick %d\n", usec );
+ gettimeofday( &tv1, NULL );
+#endif
+
+ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
+ glDepthFunc(GL_LESS);
+ glEnable(GL_DEPTH_TEST);
+ glLightfv( GL_LIGHT0, GL_AMBIENT, LightAmbient );
+ glLightfv( GL_LIGHT0, GL_DIFFUSE, st->color );
+ glLightfv( GL_LIGHT0, GL_POSITION, LightPosition );
+
+ /* prepare lighting vs. wireframe */
+ if (!st->wire) {
+ glEnable( GL_LIGHT0 );
+ glEnable( GL_LIGHTING );
+ glEnable( GL_NORMALIZE );
+ glPolygonMode( GL_FRONT, GL_FILL );
+ } else {
+# ifndef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ glPolygonMode( GL_FRONT, GL_LINE );
+# endif
+ }
+
+# if 0
+ if (st->wire) {
+ glDisable(GL_DEPTH_TEST);
+ glColor3f (1, 1, 1);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(0, 0, 0); glVertex3f(st->width, 0, 0);
+ glVertex3f(st->width, st->height, 0); glVertex3f(0, st->height, 0);
+ glVertex3f(0, 0, 0); glVertex3f(st->width/4, 0, 0);
+ glVertex3f(st->width/4, st->height/4, 0); glVertex3f(0, st->height/4, 0);
+ glEnd();
+ }
+# endif
+
+ /* draw the dead cells if choosen */
+ if (st->keep_old_cells) {
+ for (b=0; b<st->num_cells; ++b) {
+ if (st->cell[b].energy <= 0) {
+ num_paint++;
+ glPushMatrix();
+ glTranslatef( st->cell[b].x, st->cell[b].y, 0.0 );
+ glRotatef( st->cell[b].rotation, 0.0, 0.0, 1.0 );
+ glScalef( st->cell[b].radius, st->cell[b].radius, st->cell[b].radius );
+ draw_cell( st, 9 );
+ glPopMatrix();
+ }
+ }
+ }
+
+ /* draw the living cells */
+ for (b=0; b<st->num_cells; ++b) {
+ if (st->cell[b].energy >0) {
+ double fac = (double)st->cell[b].energy / 50.0;
+ int shape;
+ if (fac < 0.0) fac = 0.0;
+ if (fac > 1.0) fac = 1.0;
+
+ shape = (int)(9.0*fac);
+ num_paint++;
+ /*glColor3f( fac, fac, fac );*/
+
+# if 0
+ if (st->wire) {
+ glBegin(GL_LINES);
+ glVertex3f(0, 0, 0);
+ glVertex3f(st->cell[b].x, st->cell[b].y, 0);
+ glEnd();
+ }
+# endif
+
+ glPushMatrix();
+ glTranslatef( st->cell[b].x, st->cell[b].y, 0.0 );
+ glRotatef( st->cell[b].rotation, 0.0, 0.0, 1.0 );
+ glScalef( st->cell[b].radius, st->cell[b].radius, st->cell[b].radius );
+ draw_cell( st, 9-shape );
+ glPopMatrix();
+ }
+ }
+
+ /* draw cell nuclei */
+ if (!st->wire)
+ {
+ glDisable( GL_LIGHT0 );
+ glDisable( GL_LIGHTING );
+
+ glEnable( GL_BLEND );
+ glDisable( GL_DEPTH_TEST );
+ glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
+ glEnable( GL_TEXTURE_2D );
+ glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
+ glBindTexture( GL_TEXTURE_2D, st->texture_name );
+
+ for (b=0; b<st->num_cells; ++b) {
+ if (st->cell[b].energy>0 || st->keep_old_cells) {
+ glPushMatrix();
+ glTranslatef( st->cell[b].x, st->cell[b].y, 0.0 );
+ glScalef( st->cell[b].radius, st->cell[b].radius, st->cell[b].radius );
+ draw_nucleus( st );
+ glPopMatrix();
+ }
+ }
+
+ glDisable( GL_TEXTURE_2D );
+ glDisable( GL_BLEND );
+ }
+
+#ifdef PRINT_STAT
+ gettimeofday( &tv2, NULL );
+ usec = (tv2.tv_sec-tv1.tv_sec)*1000000+(tv2.tv_usec-tv1.tv_usec);
+ fprintf( stderr, "OpenGL %d\n", usec );
+#endif
+ return num_paint * st->cell_polys;
+}
+
+/* this creates the initial subdivided half-dodecaedron */
+static Object *create_sphere( State *st, int divisions )
+{
+ int num_vertex = 9;
+ int num_triangle = 10;
+ int i, v, t;
+ double a, aStep = (double)M_PI / 3.0;
+ double e;
+ int vi[30] = { 0, 7, 1, 1, 7, 2, 2, 8, 3, 3, 8, 4, 4, 6, 5,
+ 5, 6, 0, 0, 6, 7, 2, 7, 8, 4, 8, 6, 6, 8, 7 };
+ Object *obj = (Object *)malloc( sizeof( Object ) );
+
+ obj->vertex = (Vector *)malloc( num_vertex*sizeof( Vector ) );
+ obj->triangle =
+ (Triangle *)malloc( num_triangle*sizeof( Triangle ) );
+ obj->num_vertex = num_vertex;
+ obj->num_triangle = num_triangle;
+
+ /* create vertexes for dodecaedron */
+ a = 0.0;
+ for (v=0; v<6; ++v) {
+ obj->vertex[v].x = sin( a );
+ obj->vertex[v].y = -cos( a );
+ obj->vertex[v].z = 0.0;
+
+ a += aStep;
+ }
+
+ a = -60.0/180.0*(double)M_PI;
+ e = 58.2825/180.0 * (double)M_PI;
+ for (;v<9; ++v) {
+ obj->vertex[v].x = sin( a )*cos( e );
+ obj->vertex[v].y = -cos( a )*cos( e );
+ obj->vertex[v].z = -sin( e );
+
+ a += 2.0*aStep;
+ }
+
+ /* create triangles */
+ for (t=0; t<obj->num_triangle; ++t) {
+ obj->triangle[t].i[0] = vi[3*t];
+ obj->triangle[t].i[1] = vi[3*t+1];
+ obj->triangle[t].i[2] = vi[3*t+2];
+ }
+
+ /* subdivide as specified */
+ for (i=0; i<divisions; ++i) {
+ Object *newObj = subdivide( obj );
+ free_Object( obj );
+ obj = newObj;
+ }
+
+ st->cell_polys = obj->num_triangle;
+
+ return obj;
+}
+
+static int create_list( State *st, double fac )
+{
+ int v;
+ Object *obj = clone_Object( st->sphere );
+ ObjectSmooth *smooth;
+#ifdef USE_VERTEX_ARRAY
+ VertexArray *vertex_array;
+#else
+ int t, i;
+#endif
+ int list = glGenLists(1);
+
+ /* apply wrinckle factor */
+ for (v=0; v<obj->num_vertex; ++v) {
+ vector_mul( &obj->vertex[v], 1.0+fac*st->disturbance[v] );
+ }
+
+ /* compute normals */
+ smooth = create_ObjectSmooth( obj );
+ free_Object( obj );
+
+ /* Create display list */
+ glNewList( list, GL_COMPILE );
+#ifdef USE_VERTEX_ARRAY
+ vertex_array = array_from_ObjectSmooth( smooth );
+ glEnableClientState( GL_VERTEX_ARRAY );
+ glEnableClientState( GL_NORMAL_ARRAY );
+ glVertexPointer( 3, GL_FLOAT, 0, vertex_array->vertex );
+ glNormalPointer( GL_FLOAT, 0, vertex_array->normal );
+ glDrawElements( GL_TRIANGLES, vertex_array->num_index,
+ GL_UNSIGNED_INT, vertex_array->index );
+ free( vertex_array );
+#else
+ glBegin( GL_TRIANGLES );
+
+ for (t=0; t<smooth->num_triangle; ++t) {
+ for (i=0; i<3; ++i) {
+ glNormal3f( smooth->normal[smooth->triangle[t].i[i]].x,
+ smooth->normal[smooth->triangle[t].i[i]].y,
+ smooth->normal[smooth->triangle[t].i[i]].z );
+ glVertex3f( smooth->vertex[smooth->triangle[t].i[i]].x,
+ smooth->vertex[smooth->triangle[t].i[i]].y,
+ smooth->vertex[smooth->triangle[t].i[i]].z );
+ }
+ }
+
+ glEnd();
+#endif
+ glEndList();
+
+ free_ObjectSmooth( smooth );
+
+ return list;
+}
+
+static void draw_cell( State *st, int shape )
+{
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ if (st->wire) {
+ glDisable(GL_DEPTH_TEST);
+ glColor3f (1, 1, 1);
+ glPushMatrix();
+ glScalef (0.33, 0.33, 1);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (-1, -1, 0); glVertex3f (-1, 1, 0);
+ glVertex3f ( 1, 1, 0); glVertex3f ( 1, -1, 0);
+ glEnd();
+ if (shape == 9) {
+ glBegin (GL_LINES);
+ glVertex3f (-1, -1, 0); glVertex3f (1, 1, 0);
+ glVertex3f (-1, 1, 0); glVertex3f (1, -1, 0);
+ glEnd();
+ }
+ glPopMatrix();
+ return;
+ }
+# endif
+
+ if (-1 == st->cell_list[shape]) {
+ st->cell_list[shape] = create_list( st, (double)shape/10.0 );
+ }
+
+ glCallList( st->cell_list[shape] );
+}
+
+static void create_nucleus_texture( State *st )
+{
+ int x, y;
+ int w2 = TEX_SIZE/2;
+ float s = w2*w2/4.0;
+
+ st->texture = (GLubyte *) malloc( 4*TEX_SIZE*TEX_SIZE );
+
+ for (y=0; y<TEX_SIZE; ++y) {
+ for (x=0; x<TEX_SIZE; ++x) {
+ float r2 = ((x-w2)*(x-w2)+(y-w2)*(y-w2));
+ float v = 120.0 * expf( -(r2) / s );
+ st->texture[4*(x+y*TEX_SIZE)] = (GLubyte)0;
+ st->texture[4*(x+y*TEX_SIZE)+1] = (GLubyte)0;
+ st->texture[4*(x+y*TEX_SIZE)+2] = (GLubyte)0;
+ st->texture[4*(x+y*TEX_SIZE)+3] = (GLubyte)v;
+ }
+ }
+
+ glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
+ glGenTextures( 1, &st->texture_name );
+ glBindTexture( GL_TEXTURE_2D, st->texture_name );
+
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
+ glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, TEX_SIZE, TEX_SIZE, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, st->texture );
+}
+
+static void draw_nucleus( State *st )
+{
+ if (-1 == st->nucleus_list) {
+ float z = -1.2f;
+ float r=1.0/2.0f;
+ st->nucleus_list = glGenLists( 1 );
+ glNewList( st->nucleus_list, GL_COMPILE );
+ glBegin( GL_QUADS );
+ glTexCoord2f( 0.0f, 0.0f ); glVertex3f( -r, -r, z );
+ glTexCoord2f( 0.0f, 1.0f ); glVertex3f( -r, r, z );
+ glTexCoord2f( 1.0f, 1.0f ); glVertex3f( r, r, z );
+ glTexCoord2f( 1.0f, 0.0f ); glVertex3f( r, -r, z );
+ glEnd();
+ glEndList();
+ }
+
+ glCallList( st->nucleus_list );
+}
+
+static void create_cells( State *st )
+{
+ int border = (int)(200.0 * st->screen_scale);
+ int i, foodcnt;
+ int w = st->width-2*border;
+ int h = st->height-2*border;
+
+ st->color[0] = 0.5 + random_max( 1000 ) * 0.0005;
+ st->color[1] = 0.5 + random_max( 1000 ) * 0.0005;
+ st->color[2] = 0.5 + random_max( 1000 ) * 0.0005;
+ st->color[3] = 1.0f;
+
+ /* allocate if startup */
+ if (!st->cell) {
+ st->cell = (Cell *) malloc( st->max_cells * sizeof(Cell));
+ }
+
+ /* fill the screen with random food for our little critters */
+ foodcnt = (st->width*st->height)/16;
+ for (i=0; i<foodcnt; ++i) {
+ st->food[i] = random_interval( st->minfood, st->maxfood );
+ }
+
+ /* create the requested seed-cells */
+ st->num_cells = st->num_seeds;
+
+ for (i=0; i<st->num_cells; ++i) {
+ st->cell[i].x = border + random_max( w );
+ st->cell[i].y = border + random_max( h );
+ st->cell[i].vx = 0.0;
+ st->cell[i].vy = 0.0;
+ st->cell[i].age = random_max( 0x0f );
+ st->cell[i].min_dist = 500.0;
+ st->cell[i].energy = random_interval( 5, 5+0x3f );
+ st->cell[i].rotation = ((double)random()/(double)RAND_MAX)*360.0;
+ st->cell[i].radius = st->radius;
+ st->cell[i].growth = 1.0;
+ }
+}
+
+/* all this is rather expensive :( */
+static void tick( State *st )
+{
+ int new_num_cells, num_cells=0;
+ int b, j;
+ int x, y, w4=st->width/4, h4=st->height/4, offset;
+ double min_dist;
+ int min_index;
+ int num_living = 0;
+ const double check_dist = 0.75*st->move_dist;
+ const double grow_dist = 0.75*st->radius;
+ const double adult_radius = st->radius;
+
+ /* find number of cells capable of division
+ and count living cells
+ */
+ for (b=0; b<st->num_cells; ++b) {
+ if (st->cell[b].energy > 0) num_living++;
+ if (can_divide( st, &st->cell[b] )) num_cells++;
+ }
+ new_num_cells = st->num_cells + num_cells;
+
+ /* end of simulation ? */
+ if (0 == num_living || new_num_cells >= st->max_cells) {
+ if (st->pause_counter > 0) st->pause_counter--;
+ if (st->pause_counter > 0) return;
+ create_cells( st );
+ st->pause_counter = st->pause;
+ } else if (num_cells) { /* any fertile candidates ? */
+ for (b=0, j=st->num_cells; b<st->num_cells; ++b) {
+ if (can_divide( st, &st->cell[b] )) {
+ st->cell[b].vx = random_interval( -50, 50 ) * 0.01;
+ st->cell[b].vy = random_interval( -50, 50 ) * 0.01;
+ st->cell[b].age = random_max( 0x0f );
+ /* half energy for both plus some bonus for forking */
+ st->cell[b].energy =
+ st->cell[b].energy/2 + random_max( 0x0f );
+ /* forking makes me shrink */
+ st->cell[b].growth = 0.995;
+
+ /* this one initially goes into the oposite direction */
+ st->cell[j].vx = -st->cell[b].vx;
+ st->cell[j].vy = -st->cell[b].vy;
+ /* same center */
+ st->cell[j].x = st->cell[b].x;
+ st->cell[j].y = st->cell[b].y;
+ st->cell[j].age = random_max( 0x0f );
+ st->cell[j].energy = (st->cell[b].energy);
+ st->cell[j].rotation =
+ ((double)random()/(double)RAND_MAX)*360.0;
+ st->cell[j].growth = st->cell[b].growth;
+ st->cell[j].radius = st->cell[b].radius;
+ ++j;
+ } else {
+ st->cell[b].vx = 0.0;
+ st->cell[b].vy = 0.0;
+ }
+ }
+
+ st->num_cells = new_num_cells;
+ }
+
+ /* for each find a direction to escape */
+ if (st->num_cells > 1) {
+ for (b=0; b<st->num_cells; ++b) {
+ if (st->cell[b].energy > 0) {
+ double vx;
+ double vy;
+ double len;
+
+ /* grow or shrink */
+ st->cell[b].radius *= st->cell[b].growth;
+ /* find closest neighbour */
+ min_dist = 100000.0;
+ min_index = 0;
+ for (j=0; j<st->num_cells; ++j) {
+ if (j!=b) {
+ const double dx = st->cell[b].x - st->cell[j].x;
+ const double dy = st->cell[b].y - st->cell[j].y;
+
+ if (fabs(dx) < check_dist || fabs(dy) < check_dist) {
+ const double dist = dx*dx+dy*dy;
+ /*const double dist = sqrt( dx*dx+dy*dy );*/
+ if (dist<min_dist) {
+ min_dist = dist;
+ min_index = j;
+ }
+ }
+ }
+ }
+ /* escape step is away from closest normalized with distance */
+ vx = st->cell[b].x - st->cell[min_index].x;
+ vy = st->cell[b].y - st->cell[min_index].y;
+ len = sqrt( vx*vx + vy*vy );
+ if (len > 0.0001) {
+ st->cell[b].vx = vx/len;
+ st->cell[b].vy = vy/len;
+ }
+ st->cell[b].min_dist = len;
+ /* if not adult (radius too small) */
+ if (st->cell[b].radius < adult_radius) {
+ /* if too small 60% stop shrinking */
+ if (st->cell[b].radius < adult_radius * 0.6) {
+ st->cell[b].growth = 1.0;
+ }
+ /* at safe distance we start growing again */
+ if (len > grow_dist) {
+ if (st->cell[b].energy > 30) {
+ st->cell[b].growth = 1.005;
+ }
+ }
+ } else { /* else keep size */
+ st->cell[b].growth = 1.0;
+ }
+ }
+ }
+ } else {
+ st->cell[0].min_dist = 2*st->move_dist;
+ }
+
+ /* now move em, snack and burn energy */
+ for (b=0; b<st->num_cells; ++b) {
+ /* if still alive */
+ if (st->cell[b].energy > 0) {
+ /* agility depends on amount of energy */
+ double fac = (double)st->cell[b].energy / 50.0;
+ if (fac < 0.0) fac = 0.0;
+ if (fac > 1.0) fac = 1.0;
+
+ st->cell[b].x += fac*(2.0 -
+ (4.0*(double)random() / (double)RAND_MAX) +
+ st->cell[b].vx);
+ st->cell[b].y += fac*(2.0 -
+ (4.0*(double)random() / (double)RAND_MAX) +
+ st->cell[b].vy);
+
+ /* get older and burn energy */
+ if (st->cell[b].energy > 0) {
+ st->cell[b].age++;
+ st->cell[b].energy--;
+ }
+
+ /* have a snack */
+ x = ((int)st->cell[b].x)/4;
+ if (x<0) x=0;
+ if (x>=w4) x = w4-1;
+ y = ((int)st->cell[b].y)/4;
+ if (y<0) y=0;
+ if (y>=h4) y = h4-1;
+
+ offset = x+y*w4;
+
+ /* don't eat if already satisfied */
+ if (st->cell[b].energy < 100 &&
+ st->food[offset] > 0) {
+ st->food[offset]--;
+ st->cell[b].energy++;
+ /* if you are hungry, eat more */
+ if (st->cell[b].energy < 50 &&
+ st->food[offset] > 0) {
+ st->food[offset]--;
+ st->cell[b].energy++;
+ }
+ }
+ }
+ }
+}
+
+ENTRYPOINT void
+reshape_glcells( ModeInfo *mi, int width, int height )
+{
+ State *st = &sstate[MI_SCREEN(mi)];
+# ifdef HAVE_MOBILE
+ int rot = current_device_rotation();
+# endif
+ st->height = height;
+ st->width = width;
+# ifdef HAVE_MOBILE
+ st->screen_scale = (double)(width < height ? width : height) / 1600.0;
+# else
+ st->screen_scale = (double)width / 1600.0;
+# endif
+
+ st->radius = s_radius;
+ if (st->radius < 5) st->radius = 5;
+ if (st->radius > 200) st->radius = 200;
+ st->radius *= st->screen_scale;
+
+ st->move_dist = s_min_dist;
+ if (st->move_dist < 1.0) st->move_dist = 1.0;
+ if (st->move_dist > 3.0) st->move_dist = 3.0;
+ st->move_dist *= st->radius;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho( 0, width, height, 0, 200, 0 );
+# ifdef HAVE_MOBILE
+ glRotatef (rot, 0, 0, 1);
+# endif
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ if (st->food) free( st->food );
+ st->food = (int *)malloc( ((width*height)/16)*sizeof(int) );
+ /* create_cells( st );*/
+
+# ifdef HAVE_MOBILE
+ glTranslatef (st->width/2, st->height/2, 0);
+ if (rot == 90 || rot == -90 || rot == 270 || rot == -270)
+ st->width = height, st->height = width;
+ glRotatef (rot, 0, 0, 1);
+ if (st->wire) glScalef(0.8, 0.8, 1);
+ glTranslatef (-st->width/2, -st->height/2, 0);
+# endif
+}
+
+ENTRYPOINT void
+init_glcells( ModeInfo *mi )
+{
+ int i, divisions;
+ State *st=0;
+
+ MI_INIT(mi, sstate);
+ st = &sstate[MI_SCREEN(mi)];
+
+ st->glx_context = init_GL(mi);
+ st->cell = 0;
+ st->num_cells = 0;
+ st->wire = MI_IS_WIREFRAME(mi);
+
+ /* get settings */
+ st->max_cells = s_maxcells;;
+ if (st->max_cells < 50) st->max_cells = 50;
+ if (st->max_cells > 10000) st->max_cells = 10000;
+
+ st->pause = s_pause;
+ if (st->pause < 0) st->pause = 0;
+ if (st->pause > 400) st->pause = 400;
+ st->pause_counter = st->pause;
+
+ st->radius = s_radius;
+ if (st->radius < 5) st->radius = 5;
+ if (st->radius > 200) st->radius = 200;
+
+ divisions = s_quality;
+ if (divisions < 0) divisions = 0;
+ if (divisions > 5) divisions = 5;
+
+ st->num_seeds = s_seeds;
+ if (st->num_seeds < 1) st->num_seeds = 1;
+ if (st->num_seeds > 16) st->num_seeds = 16;
+
+ st->minfood = s_minfood;
+ if (st->minfood < 0) st->minfood = 0;
+ if (st->minfood > 1000) st->minfood = 1000;
+
+ st->maxfood = s_maxfood;
+ if (st->maxfood < 0) st->maxfood = 0;
+ if (st->maxfood > 1000) st->maxfood = 1000;
+
+ if (st->maxfood < st->minfood) st->maxfood = st->minfood+1;
+
+ st->keep_old_cells = s_keepold;
+
+ st->divide_age = s_divideage;
+ if (st->divide_age < 1) st->divide_age = 1;
+ if (st->divide_age > 1000) st->divide_age = 1000;
+
+ st->move_dist = s_min_dist;
+ if (st->move_dist < 1.0) st->move_dist = 1.0;
+ if (st->move_dist > 3.0) st->move_dist = 3.0;
+ st->move_dist *= st->radius;
+
+ for (i=0; i<NUM_CELL_SHAPES; ++i) st->cell_list[i] = -1;
+ st->nucleus_list = -1;
+ st->food = 0;
+
+ st->sphere = create_sphere( st, divisions );
+ st->disturbance =
+ (double *) malloc( st->sphere->num_vertex*sizeof(double) );
+ for (i=0; i<st->sphere->num_vertex; ++i) {
+ st->disturbance[i] =
+ 0.05-((double)random()/(double)RAND_MAX*0.1);
+ }
+
+ create_nucleus_texture( st );
+
+ reshape_glcells (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+ENTRYPOINT void
+draw_glcells( ModeInfo *mi )
+{
+ State *st = &sstate[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!st->glx_context) return;
+
+ glXMakeCurrent( MI_DISPLAY(mi), MI_WINDOW(mi),
+ *(st->glx_context) );
+
+ mi->polygon_count = render( st );
+
+ if (mi->fps_p) do_fps (mi);
+
+ glFinish();
+ glXSwapBuffers( dpy, window );
+}
+
+ENTRYPOINT void
+free_glcells( ModeInfo *mi )
+{
+ int i;
+ State *st = &sstate[MI_SCREEN(mi)];
+
+ if (st->glx_context) {
+ glXMakeCurrent( MI_DISPLAY(mi), MI_WINDOW(mi),
+ *(st->glx_context) );
+
+ /* nuke everything before exit */
+ if (st->sphere) free_Object( st->sphere );
+ if (st->food) free( st->food );
+ for (i=0; i<NUM_CELL_SHAPES; ++i) {
+ if (st->cell_list[i] != -1) {
+ glDeleteLists( st->cell_list[i], 1 );
+ }
+ }
+ if (st->cell) free( st->cell );
+ free( st->disturbance );
+ glDeleteTextures( 1, &st->texture_name );
+ free( st->texture );
+ }
+}
+
+XSCREENSAVER_MODULE( "GLCells", glcells )
diff --git a/hacks/glx/glcells.man b/hacks/glx/glcells.man
new file mode 100644
index 0000000..6c1e7e9
--- /dev/null
+++ b/hacks/glx/glcells.man
@@ -0,0 +1,97 @@
+.TH XScreenSaver 1 "June 2007"
+.SH NAME
+glcells \- growing cells graphics hack
+.SH SYNOPSIS
+.B glcells
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fInum\fP] [\-pause \fInum\fP] [\-maxcells \fInum\fP]
+[\-radius \fInum\fP] [\-seeds \fInum\fP] [\-quality \fInum\fP]
+[\-minfood \fInum\fP] [\-maxfood \fInum\fP] [\-divideage \fInum\fP]
+[\-mindist \fInum\fP]
+[\-keepold]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIglcells\fP program draws cells that divide exponentially, eat and eventually die.
+.SH OPTIONS
+.I glcells
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-pause \fInum\fP\fP
+Specifies the pause at the end of the animation (all cells dead or maximum amount of cells reached). Unit is in frames, default 20.
+.TP 8
+.B \-maxcells \fInum\fP\fP
+Specifies the maximum number of cells on screen (dead cells also count, even if invisible). Default is 800.
+.TP 8
+.B \-radius \fInum\fP\fP
+Specifies the radius of the cells. Default is 40.
+.TP 8
+.B \-seeds \fInum\fP\fP
+Specifies the number of cells when animation starts. Default is 1.
+.TP 8
+.B \-quality \fInum\fP\fP
+Specifies subdivision quality of the spheres used to draw the cells [0...5]. Default is 3.
+.TP 8
+.B \-minfood \fInum\fP\fP
+Food is ditributed randomly on the screen (Yes, the cells need to eat). This parameter specifies the
+minimum amount of food per pixel. Default is 5.
+.TP 8
+.B \-maxfood \fInum\fP\fP
+Food is ditributed randomly on the screen (Yes, the cells need to eat). This parameter specifies the
+maximum amount of food per pixel. Default is 20.
+.TP 8
+.B \-divideage \fInum\fP\fP
+Specifies the minimum age in frames a cell needs to have before beeing able to divide. Default is 20
+.TP 8
+.B \-mindist \fInum\fP\fP
+Specifies the minimum distance between cells. Default 1.4
+.TP 8
+.B \-delay \fInum\fP
+How long to pause between frames. Default is 20000, or 0.02 second.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-wireframe
+Draw wireframe only.
+.TP 8
+.B \-keepold
+Dead cells stay on screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.SH COPYRIGHT
+Copyright \(co 2007 by Matthias Toussaint. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Matthias Toussaint <glcells@mtoussaint.de>, 17-Jun-2007, http://www.mtoussaint.de/bits.html.
+
diff --git a/hacks/glx/gleidescope.c b/hacks/glx/gleidescope.c
new file mode 100644
index 0000000..ec33388
--- /dev/null
+++ b/hacks/glx/gleidescope.c
@@ -0,0 +1,1624 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* vim: set ai ts=4 sw=4: */
+
+#if 0
+/*static const char sccsid[] = "@(#)gleidescope.c 1.0 03/06/27 xlockmore";*/
+#endif
+
+/* enable -grab switch for animations */
+#undef GRAB
+
+#undef DISPLAY_TEXTURE
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ *
+ * 20030627 1.0 acd First Release.
+ * Texture loading code from 'glplanet'
+ * by Jamie Zawinski <jwz@jwz.org>
+ * 20030810 1.1 acd Added size flag.
+ * Now grabs screen / video / picture
+ * (uses code from 'glslideshow' by
+ * Mike Oliphant, Ben Buxton, Jamie Zawinski).
+ * Added -duration.
+ * Added mouse code.
+ * Added fade code (also from glslideshow).
+ * 20031013 1.2 acd Migrated to compile without warnings under
+ * xscreensaver 4.13.
+ * 20031023 1.3 acd Better code to limit twisting speeds.
+ * Tweaked initial rotation values.
+ * Move, Rotate, Zoom now chosen at random if
+ * no preference is given.
+ * Made grid slightly bigger so you can't see
+ * the edge when zooming and moving.
+ * 20061226 1.4 acd Now uses GL Display Lists.
+ * 20070318 1.5 acd Generates textures.
+ * Fixed texture size problem (and introduced another).
+ * 20070412 1.6 acd Textures now have independant sizes.
+ * 20070413 1.7 acd Added Lissajous movement pattern.
+ * 20070414 1.8 acd Added corners movement pattern.
+ * 20080319 1.9 acd Changes to arguments for saner gleidescope.xml.
+ *
+ * TODO
+ * generate textures myself - render random shapes to 256x256 texture. (done)
+ * lower res for checks and random - use 256 and 4x4 or 8x8 pixels. (disabled for now)
+ * gnome-saver doesn't let you specify source directory so add that to this.
+ * image loading routine is too slow - rotation grinds to a halt - stop using it. (better in version 5)
+ * image loading also looks bad for non-square images - edges are black. (fixed)
+ * possible to see edge of the world on widescreen terminals - use larger grid and hidden hex removal?
+ * fading textures may have different max_tx - use two sets. (done)
+ * choice of movement patterns. (3 implemented, chooseable at compile time)
+ * look into rangle and tangle.
+ */
+
+/*
+**----------------------------------------------------------------------------
+** Defines
+**----------------------------------------------------------------------------
+*/
+
+#ifdef STANDALONE
+# define DEFAULTS \
+ "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*size: 0 \n" \
+ "*useSHM: True \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_gleidescope 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#include "colors.h"
+#include "ximage-loader.h"
+#include "grab-ximage.h"
+
+#ifdef GRAB
+void grab_frame(Display *display, Window window);
+#endif
+
+/* acd TODO should all these be in gleidestruct? */
+/* they can't be, because of the idiotic way the xlockmore "argtype vars"
+ interface works. -jwz */
+#ifdef GRAB
+static Bool grab; /* grab images */
+#endif
+static Bool move; /* moving camera */
+static Bool nomove; /* no moving camera */
+static Bool rotate; /* rotate in place */
+static Bool norotate; /* no rotate in place */
+static Bool zoom; /* zooming camera */
+static Bool nozoom; /* no zooming camera */
+static char *image_str; /* name of texture to load */
+static int duration; /* length of time to display grabbed image */
+
+#define MAX_CAM_SPEED 1.0
+#define MAX_ANGLE_VEL 1.0
+#define INITIAL_ANGLE_VEL 0.2
+#define INITIAL_ANGLE_ACC 0.001
+#define TWISTING_PROBABILITY 1000 /* 1 in ... of change of acceleration */
+
+#define RADIANS (M_PI / 180)
+#define ANGLE_120 (M_PI * 2 / 3)
+#define ANGLE_240 (M_PI * 4 / 3)
+
+#define DEF_GRAB "False"
+#define DEF_MOVE "False"
+#define DEF_NOMOVE "False"
+#define DEF_ROTATE "False"
+#define DEF_NOROTATE "False"
+#define DEF_ZOOM "False"
+#define DEF_NOZOOM "False"
+#define DEF_IMAGE "DEFAULT"
+#define DEF_DURATION "30"
+
+
+static XrmOptionDescRec opts[] =
+{
+#ifdef GRAB
+ {"-grab", ".gleidescope.grab", XrmoptionNoArg, "true"},
+#endif
+ {"-move", ".gleidescope.move", XrmoptionNoArg, "true"},
+ {"-no-move", ".gleidescope.nomove", XrmoptionNoArg, "true"},
+ {"-rotate", ".gleidescope.rotate", XrmoptionNoArg, "true"},
+ {"-no-rotate", ".gleidescope.norotate", XrmoptionNoArg, "true"},
+ {"-zoom", ".gleidescope.zoom", XrmoptionNoArg, "true"},
+ {"-no-zoom", ".gleidescope.nozoom", XrmoptionNoArg, "true"},
+ {"-image", ".gleidescope.image", XrmoptionSepArg, "DEFAULT"},
+ {"-duration", ".gleidescope.duration", XrmoptionSepArg, "30"},
+};
+
+
+static argtype vars[] = {
+#ifdef GRAB
+ {&grab, "grab", "Grab", DEF_GRAB, t_Bool},
+#endif
+ {&move, "move", "Move", DEF_MOVE, t_Bool},
+ {&nomove, "nomove", "noMove", DEF_NOMOVE, t_Bool},
+ {&rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+ {&norotate, "norotate", "noRotate", DEF_NOROTATE, t_Bool},
+ {&zoom, "zoom", "Zoom", DEF_ZOOM, t_Bool},
+ {&nozoom, "nozoom", "noZoom", DEF_NOZOOM, t_Bool},
+ {&image_str, "image", "Image", DEF_IMAGE, t_String},
+ {&duration, "duration", "Duration", DEF_DURATION, t_Int},
+};
+
+static OptionStruct desc[] = {
+#ifdef GRAB
+ {"-grab", "grab images to create animation"},
+#endif
+ {"-move", "camera will move"},
+ {"-no-move", "camera won't move"},
+ {"-rotate", "camera will rotate"},
+ {"-no-rotate", "camera won't rotate"},
+ {"-zoom", "camera will zoom"},
+ {"-no-zoom", "camera won't zoom"},
+ {"-image", "xpm / xbm image file to use for texture"},
+ {"-duration", "length of time texture will be used"},
+};
+
+ENTRYPOINT ModeSpecOpt gleidescope_opts = {
+ sizeof opts / sizeof opts[0], opts,
+ sizeof vars / sizeof vars[0], vars,
+ desc
+};
+
+#ifdef USE_MODULES
+ModStruct gleidescope_description = {
+ "gleidescope", "init_gleidescope", "draw_gleidescope", NULL,
+ "draw_gleidescope", "init_gleidescope", "free_gleidescope",
+ &gleidescope_opts, 1000, 1, 2, 1, 4, 1.0, "",
+ "GL Kaleidescope", 0, NULL};
+#endif
+
+/*
+**-----------------------------------------------------------------------------
+** Typedefs
+**-----------------------------------------------------------------------------
+*/
+
+typedef struct hex_s {
+ GLfloat x, y, z; /* position */
+} hex_t;
+
+typedef struct {
+ GLfloat x;
+ GLfloat y;
+ GLfloat z;
+} vectorf;
+
+typedef struct {
+ GLfloat x;
+ GLfloat y;
+} vector2f;
+
+typedef struct {
+ GLuint id; /* opengl texture id */
+ GLfloat width, height; /* texture width and height */
+ GLfloat min_tx, min_ty; /* minimum texture sizes */
+ GLfloat max_tx, max_ty; /* maximum texture sizes */
+ time_t start_time;
+ Bool button_down_p;
+ Bool mipmap_p;
+ Bool waiting_for_image_p;
+ /* r_phase is for triangle rotation speed */
+ GLfloat x_period, y_period, r_period;
+ GLfloat x_phase, y_phase, r_phase;
+} texture;
+
+#define MAX_FADE 500 /* number of fade cycles */
+
+typedef struct {
+ float cam_x_speed, cam_z_speed, cam_y_speed;
+ int cam_x_phase, cam_z_phase, cam_y_phase;
+ float tic;
+ GLXContext *glx_context;
+ Window window;
+ texture textures[2]; /* texture handles */
+ GLuint visible; /* index for current texture */
+ GLint fade;
+ time_t start_time;
+ Bool button_down_p;
+
+ int size;
+ int list;
+
+ float tangle; /* texture angle (degrees) */
+ float tangle_vel; /* texture velocity */
+ float tangle_acc; /* texture acceleration */
+
+ float rangle; /* rotate angle */
+ float rangle_vel; /* rotate velocity */
+ float rangle_acc; /* rotate acceleration */
+
+ /* mouse */
+ int xstart;
+ int ystart;
+ double xmouse;
+ double ymouse;
+
+ Bool mipmap_p;
+ Bool waiting_for_image_p;
+
+} gleidestruct;
+
+#define frandrange(x, y) (x + frand(y - x))
+
+#define XOFFSET (0.8660254f) /* sin 60' */
+#define YOFFSET (1.5000000f) /* cos 60' + 1 */
+
+#if 0
+
+#define SIZE 3
+
+/* generates a grid with edges of given size */
+/* acd TODO - replace hex[] with this and allow size and distance as parameters */
+
+int
+generate_grid(int size)
+
+ int i, x, y;
+
+ gp->size--;
+
+ i = gp->size;
+ for (y = -size ; y <= size ; y++) {
+ for (x = -i ; x <= i ; x += 2) {
+ printf("{XOFFSET * %d, YOFFSET * %d, 0},\n", x, y);
+ }
+ printf("\n");
+ if (y < 0) {
+ i++;
+ } else {
+ i--;
+ }
+ }
+ return 0;
+}
+#endif
+
+/* acd - this is terrible - 120+ hexes */
+static const hex_t hex[] = {
+ /* edges of size 7 */
+ /* number of hexagons required to cover screen depends on camera distance */
+ /* at a distance of 10 this is just about enough. */
+ {XOFFSET * -6, YOFFSET * -6, 0},
+ {XOFFSET * -4, YOFFSET * -6, 0},
+ {XOFFSET * -2, YOFFSET * -6, 0},
+ {XOFFSET * 0, YOFFSET * -6, 0},
+ {XOFFSET * 2, YOFFSET * -6, 0},
+ {XOFFSET * 4, YOFFSET * -6, 0},
+ {XOFFSET * 6, YOFFSET * -6, 0},
+
+ {XOFFSET * -7, YOFFSET * -5, 0},
+ {XOFFSET * -5, YOFFSET * -5, 0},
+ {XOFFSET * -3, YOFFSET * -5, 0},
+ {XOFFSET * -1, YOFFSET * -5, 0},
+ {XOFFSET * 1, YOFFSET * -5, 0},
+ {XOFFSET * 3, YOFFSET * -5, 0},
+ {XOFFSET * 5, YOFFSET * -5, 0},
+ {XOFFSET * 7, YOFFSET * -5, 0},
+
+ {XOFFSET * -8, YOFFSET * -4, 0},
+ {XOFFSET * -6, YOFFSET * -4, 0},
+ {XOFFSET * -4, YOFFSET * -4, 0},
+ {XOFFSET * -2, YOFFSET * -4, 0},
+ {XOFFSET * 0, YOFFSET * -4, 0},
+ {XOFFSET * 2, YOFFSET * -4, 0},
+ {XOFFSET * 4, YOFFSET * -4, 0},
+ {XOFFSET * 6, YOFFSET * -4, 0},
+ {XOFFSET * 8, YOFFSET * -4, 0},
+
+ {XOFFSET * -9, YOFFSET * -3, 0},
+ {XOFFSET * -7, YOFFSET * -3, 0},
+ {XOFFSET * -5, YOFFSET * -3, 0},
+ {XOFFSET * -3, YOFFSET * -3, 0},
+ {XOFFSET * -1, YOFFSET * -3, 0},
+ {XOFFSET * 1, YOFFSET * -3, 0},
+ {XOFFSET * 3, YOFFSET * -3, 0},
+ {XOFFSET * 5, YOFFSET * -3, 0},
+ {XOFFSET * 7, YOFFSET * -3, 0},
+ {XOFFSET * 9, YOFFSET * -3, 0},
+
+ {XOFFSET * -10, YOFFSET * -2, 0},
+ {XOFFSET * -8, YOFFSET * -2, 0},
+ {XOFFSET * -6, YOFFSET * -2, 0},
+ {XOFFSET * -4, YOFFSET * -2, 0},
+ {XOFFSET * -2, YOFFSET * -2, 0},
+ {XOFFSET * 0, YOFFSET * -2, 0},
+ {XOFFSET * 2, YOFFSET * -2, 0},
+ {XOFFSET * 4, YOFFSET * -2, 0},
+ {XOFFSET * 6, YOFFSET * -2, 0},
+ {XOFFSET * 8, YOFFSET * -2, 0},
+ {XOFFSET * 10, YOFFSET * -2, 0},
+
+ {XOFFSET * -11, YOFFSET * -1, 0},
+ {XOFFSET * -9, YOFFSET * -1, 0},
+ {XOFFSET * -7, YOFFSET * -1, 0},
+ {XOFFSET * -5, YOFFSET * -1, 0},
+ {XOFFSET * -3, YOFFSET * -1, 0},
+ {XOFFSET * -1, YOFFSET * -1, 0},
+ {XOFFSET * 1, YOFFSET * -1, 0},
+ {XOFFSET * 3, YOFFSET * -1, 0},
+ {XOFFSET * 5, YOFFSET * -1, 0},
+ {XOFFSET * 7, YOFFSET * -1, 0},
+ {XOFFSET * 9, YOFFSET * -1, 0},
+ {XOFFSET * 11, YOFFSET * -1, 0},
+
+ {XOFFSET * -12, YOFFSET * 0, 0},
+ {XOFFSET * -10, YOFFSET * 0, 0},
+ {XOFFSET * -8, YOFFSET * 0, 0},
+ {XOFFSET * -6, YOFFSET * 0, 0},
+ {XOFFSET * -4, YOFFSET * 0, 0},
+ {XOFFSET * -2, YOFFSET * 0, 0},
+ {XOFFSET * 0, YOFFSET * 0, 0},
+ {XOFFSET * 2, YOFFSET * 0, 0},
+ {XOFFSET * 4, YOFFSET * 0, 0},
+ {XOFFSET * 6, YOFFSET * 0, 0},
+ {XOFFSET * 8, YOFFSET * 0, 0},
+ {XOFFSET * 10, YOFFSET * 0, 0},
+ {XOFFSET * 12, YOFFSET * 0, 0},
+
+ {XOFFSET * -11, YOFFSET * 1, 0},
+ {XOFFSET * -9, YOFFSET * 1, 0},
+ {XOFFSET * -7, YOFFSET * 1, 0},
+ {XOFFSET * -5, YOFFSET * 1, 0},
+ {XOFFSET * -3, YOFFSET * 1, 0},
+ {XOFFSET * -1, YOFFSET * 1, 0},
+ {XOFFSET * 1, YOFFSET * 1, 0},
+ {XOFFSET * 3, YOFFSET * 1, 0},
+ {XOFFSET * 5, YOFFSET * 1, 0},
+ {XOFFSET * 7, YOFFSET * 1, 0},
+ {XOFFSET * 9, YOFFSET * 1, 0},
+ {XOFFSET * 11, YOFFSET * 1, 0},
+
+ {XOFFSET * -10, YOFFSET * 2, 0},
+ {XOFFSET * -8, YOFFSET * 2, 0},
+ {XOFFSET * -6, YOFFSET * 2, 0},
+ {XOFFSET * -4, YOFFSET * 2, 0},
+ {XOFFSET * -2, YOFFSET * 2, 0},
+ {XOFFSET * 0, YOFFSET * 2, 0},
+ {XOFFSET * 2, YOFFSET * 2, 0},
+ {XOFFSET * 4, YOFFSET * 2, 0},
+ {XOFFSET * 6, YOFFSET * 2, 0},
+ {XOFFSET * 8, YOFFSET * 2, 0},
+ {XOFFSET * 10, YOFFSET * 2, 0},
+
+ {XOFFSET * -9, YOFFSET * 3, 0},
+ {XOFFSET * -7, YOFFSET * 3, 0},
+ {XOFFSET * -5, YOFFSET * 3, 0},
+ {XOFFSET * -3, YOFFSET * 3, 0},
+ {XOFFSET * -1, YOFFSET * 3, 0},
+ {XOFFSET * 1, YOFFSET * 3, 0},
+ {XOFFSET * 3, YOFFSET * 3, 0},
+ {XOFFSET * 5, YOFFSET * 3, 0},
+ {XOFFSET * 7, YOFFSET * 3, 0},
+ {XOFFSET * 9, YOFFSET * 3, 0},
+
+ {XOFFSET * -8, YOFFSET * 4, 0},
+ {XOFFSET * -6, YOFFSET * 4, 0},
+ {XOFFSET * -4, YOFFSET * 4, 0},
+ {XOFFSET * -2, YOFFSET * 4, 0},
+ {XOFFSET * 0, YOFFSET * 4, 0},
+ {XOFFSET * 2, YOFFSET * 4, 0},
+ {XOFFSET * 4, YOFFSET * 4, 0},
+ {XOFFSET * 6, YOFFSET * 4, 0},
+ {XOFFSET * 8, YOFFSET * 4, 0},
+
+ {XOFFSET * -7, YOFFSET * 5, 0},
+ {XOFFSET * -5, YOFFSET * 5, 0},
+ {XOFFSET * -3, YOFFSET * 5, 0},
+ {XOFFSET * -1, YOFFSET * 5, 0},
+ {XOFFSET * 1, YOFFSET * 5, 0},
+ {XOFFSET * 3, YOFFSET * 5, 0},
+ {XOFFSET * 5, YOFFSET * 5, 0},
+ {XOFFSET * 7, YOFFSET * 5, 0},
+
+ {XOFFSET * -6, YOFFSET * 6, 0},
+ {XOFFSET * -4, YOFFSET * 6, 0},
+ {XOFFSET * -2, YOFFSET * 6, 0},
+ {XOFFSET * 0, YOFFSET * 6, 0},
+ {XOFFSET * 2, YOFFSET * 6, 0},
+ {XOFFSET * 4, YOFFSET * 6, 0},
+ {XOFFSET * 6, YOFFSET * 6, 0},
+};
+
+/*
+**----------------------------------------------------------------------------
+** Local Variables
+**----------------------------------------------------------------------------
+*/
+
+static gleidestruct *gleidescope = NULL;
+
+#if 0
+/*
+ *load defaults in config structure
+ */
+static void setdefaultconfig(void)
+{
+#ifdef GRAB
+ grab = False;
+#endif
+ move = False;
+ rotate = False;
+ zoom = False;
+ image = NULL;
+}
+#endif
+
+ENTRYPOINT Bool
+gleidescope_handle_event(ModeInfo *mi, XEvent *event)
+{
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+
+ /*
+ printf("event:%d\n", event->xany.type);
+ printf("button:%d\n", event->xbutton.button);
+ */
+ if (event->xany.type == ButtonPress)
+ {
+ if (event->xbutton.button == Button1 ||
+ event->xbutton.button == Button3)
+ {
+ /* store initial values of mouse */
+ gp->xstart = event->xbutton.x;
+ gp->ystart = event->xbutton.y;
+
+ /* button is down */
+ gp->button_down_p = True;
+ return True;
+ }
+#if 0 /* TODO */
+ else if (event->xbutton.button == Button4)
+ {
+ /* zoom in */
+ return True;
+ }
+ else if (event->xbutton.button == Button5)
+ {
+ /* zoom out */
+ return True;
+ }
+#endif
+ } else if (event->xany.type == ButtonRelease)
+ {
+ if (event->xbutton.button == Button1 ||
+ event->xbutton.button == Button3)
+ {
+ /* button is up */
+ gp->button_down_p = False;
+ return True;
+ }
+ } else if (event->xany.type == MotionNotify)
+ {
+ if (gp->button_down_p)
+ {
+ /* update mouse position */
+ gp->xmouse += (double)(event->xmotion.x - gp->xstart) / MI_WIDTH(mi);
+ gp->ymouse += (double)(event->xmotion.y - gp->ystart) / MI_HEIGHT(mi);
+ gp->xstart = event->xmotion.x;
+ gp->ystart = event->xmotion.y;
+
+ return True;
+ }
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ gp->start_time = -1;
+ gp->fade = 0;
+ return True;
+ }
+
+ return False;
+}
+
+
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ texture *tp = (texture *) closure;
+
+#if 0
+ gp->max_tx = (GLfloat) image_width / texture_width;
+ gp->max_ty = (GLfloat) image_height / texture_height;
+#endif
+
+ /* new - taken from flipscreen */
+ tp->width = texture_width;
+ tp->height = texture_height;
+ tp->min_tx = (GLfloat) geometry->x / tp->width;
+ tp->min_ty = (GLfloat) geometry->y / tp->height;
+ tp->max_tx = (GLfloat) (geometry->x + geometry->width) / tp->width;
+ tp->max_ty = (GLfloat) (geometry->y + geometry->height) / tp->height;
+
+#ifdef DEBUG
+ printf("Image w,h: (%d, %d)\n", image_width, image_height);
+ printf("Texture w,h: (%d, %d)\n", texture_width, texture_height);
+ printf("Geom x,y: (%d, %d)\n", geometry->x, geometry->y);
+ printf("Geom w,h: (%d, %d)\n", geometry->width, geometry->height);
+ printf("Max Tx,Ty: (%f, %f)\n", tp->max_tx, tp->max_ty);
+#endif
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ (tp->mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
+
+ tp->waiting_for_image_p = False;
+ tp->start_time = time ((time_t *) 0);
+}
+
+static void
+getSnapshot(ModeInfo *mi, texture *texture)
+{
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+
+#ifdef DEBUG
+ printf("getSnapshot");
+#endif
+
+ if (MI_IS_WIREFRAME(mi))
+ return;
+
+ gp->mipmap_p = True;
+ load_texture_async (mi->xgwa.screen, mi->window,
+ *gp->glx_context, 0, 0, gp->mipmap_p,
+ texture->id, image_loaded_cb, texture);
+ texture->start_time = time((time_t *)0);
+}
+
+#define TEXTURE_SIZE 256
+
+static void
+plot(unsigned char *buffer, int x, int y, int r, int g, int b, int a) {
+ int c;
+ if (x < 0 || x >= TEXTURE_SIZE || y < 0 || y >= TEXTURE_SIZE) {
+ return;
+ }
+ c = ((x * TEXTURE_SIZE) + y) * 4;
+ /*printf("(%d,%d)[%d]\n", x, y, c);*/
+ buffer[c + 0] = r;
+ buffer[c + 1] = g;
+ buffer[c + 2] = b;
+ buffer[c + 3] = a;
+}
+
+#if 0
+static void
+plot2(unsigned char *buffer, int x, int y, int r, int g, int b, int a) {
+ int c;
+ if (x < 0 || x >= TEXTURE_SIZE || y < 0 || y >= TEXTURE_SIZE) {
+ return;
+ }
+ c = ((x * TEXTURE_SIZE) + y) * 4;
+ /*printf("(%d,%d)[%d]\n", x, y, c);*/
+ buffer[c + 0] = r;
+ buffer[c + 1] = g;
+ buffer[c + 2] = b;
+ buffer[c + 3] = a;
+
+ if (y + 1 < TEXTURE_SIZE) {
+ buffer[c + 4] = r;
+ buffer[c + 5] = g;
+ buffer[c + 6] = b;
+ buffer[c + 7] = a;
+ }
+
+ if (x + 1 < TEXTURE_SIZE) {
+ c += (TEXTURE_SIZE * 4);
+ buffer[c + 0] = r;
+ buffer[c + 1] = g;
+ buffer[c + 2] = b;
+ buffer[c + 3] = a;
+ if (y + 1 < TEXTURE_SIZE) {
+ buffer[c + 4] = r;
+ buffer[c + 5] = g;
+ buffer[c + 6] = b;
+ buffer[c + 7] = a;
+ }
+ }
+}
+#endif
+
+/* draw geometric shapes to texture */
+/* modifies passed in buffer */
+static void
+draw_shapes (unsigned char *buffer) {
+ int a = 0xff;
+ int x, y, w, h;
+ int i, j;
+ int s;
+ float left, right;
+
+ for (i = 0 ; i < TEXTURE_SIZE * TEXTURE_SIZE * 4 ; i += 4) {
+ buffer[i + 0] = 0x00;
+ buffer[i + 1] = 0x00;
+ buffer[i + 2] = 0x00;
+ buffer[i + 3] = 0xff;
+ }
+
+ for (s = 0 ; s < 25 ; s++) {
+ int shape = random() % 3;
+
+ /* 8 bits */
+ int r = (random() & 0xff);
+ int g = (random() & 0xff);
+ int b = (random() & 0xff);
+
+ switch (shape) {
+ case 0:
+ /* rectangle */
+ x = (random() % TEXTURE_SIZE) - (TEXTURE_SIZE / 4); /* top left */
+ y = (random() % TEXTURE_SIZE) - (TEXTURE_SIZE / 4);
+ w = 10 + random() % (TEXTURE_SIZE / 4); /* size */
+ h = 10 + random() % (TEXTURE_SIZE / 4);
+#ifdef DEBUG
+ printf("Rectangle: (%d, %d)(%d, %d)\n", x, y, w, h);
+#endif
+ if (x < 0) {
+ x = 0;
+ }
+ if (y < 0) {
+ y = 0;
+ }
+ for (i = x ; i < x + w && i < TEXTURE_SIZE; i++) {
+ for (j = y ; j < y + h && j < TEXTURE_SIZE; j++) {
+ plot(buffer, i, j, r, g, b, a);
+ }
+ }
+ break;
+
+ case 1:
+ /* circle */
+ x = random() % TEXTURE_SIZE; /* centre */
+ y = random() % TEXTURE_SIZE;
+ h = 10 + random() % (TEXTURE_SIZE / 8); /* radius */
+#ifdef DEBUG
+ printf("Circle: %d, %d, %d\n", x, y, h);
+#endif
+ for (i = 0 ; i < h ; i++) {
+ int xdist = i * i;
+ for (j = 0 ; j < h ; j++) {
+ int ydist = j * j;
+ /*
+ printf("xdist: %d\n", xdist);
+ printf("ydist: %d\n", ydist);
+ printf("radius: %d\n", h * h);
+ */
+ if ((xdist + ydist) < (h * h)) {
+ plot(buffer, x + i, y + j, r, b, g, a);
+ /* check we haven't already done these */
+ if (j != 0) {
+ plot(buffer, x + i, y - j, r, b, g, a);
+ }
+ if (i != 0) {
+ plot(buffer, x - i, y + j, r, b, g, a);
+ if (j != 0) {
+ plot(buffer, x - i, y - j, r, b, g, a);
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ case 2:
+ /* triangle */
+ x = random() % TEXTURE_SIZE; /* top */
+ y = random() % TEXTURE_SIZE;
+ h = 10 + random() % (TEXTURE_SIZE / 4); /* height */
+#ifdef DEBUG
+ printf("Triangle: %d, %d, %d\n", x, y, h);
+#endif
+ left = x;
+ right = x;
+ for (i = 0 ; i < h ; i++) {
+ for (j = left ; j < right ; j++) {
+ plot(buffer, j, y + i, r, g, b, a);
+ }
+ left -= .5;
+ right += .5;
+ }
+ break;
+ }
+ }
+}
+
+static void
+setup_random_texture (ModeInfo *mi, texture *texture)
+{
+ int width = 0, height = 0;
+ char buf[1024];
+ unsigned char *my_data = NULL;
+#if 0
+ int i, j, c;
+ int style;
+ int r0, g0, b0, a0, r1, g1, b1, a1;
+#endif
+
+#ifdef DEBUG
+ printf("RandomTexture\n");
+#endif
+
+ /* use this texture */
+ glBindTexture(GL_TEXTURE_2D, texture->id);
+
+ clear_gl_error();
+
+ /*
+ * code for various generated patterns - noise, stripes, checks etc.
+ * random geometric shapes looked the best.
+ */
+
+#if 0
+ style = random() & 0x3;
+ r0 = random() & 0xff;
+ g0 = random() & 0xff;
+ b0 = random() & 0xff;
+ a0 = 0xff;
+ r1 = random() & 0xff;
+ g1 = random() & 0xff;
+ b1 = random() & 0xff;
+ a1 = 0xff;
+
+ switch (style) {
+ case 0: /* random */
+ printf("Random0\n");
+ height = width = TEXTURE_SIZE;
+ my_data = (void *)malloc(width * height * 4);
+ for (i = 0 ; i < width ; i += 2) {
+ for (j = 0 ; j < height ; j += 2) {
+ r0 = random() & 0xff;
+ g0 = random() & 0xff;
+ b0 = random() & 0xff;
+ a0 = 0xff;
+ plot2(my_data, i, j, r0, g0, b0, a0);
+ }
+ }
+ break;
+
+ case 1: /* shapes */
+#endif
+#ifdef DEBUG
+ printf("Shapes\n");
+#endif
+ height = width = TEXTURE_SIZE;
+ my_data = (void *)malloc(width * height * 4);
+ draw_shapes(my_data);
+#if 0
+ break;
+
+ case 2: /* check */
+ printf("Check\n");
+ height = width = TEXTURE_SIZE;
+ my_data = (void *)malloc(width * height * 4);
+ for (i = 0 ; i < height ; i += 2) {
+ for (j = 0 ; j < width ; j += 2) {
+ if (((i + j) & 0x3) == 0) {
+ plot2(my_data, i, j, r0, g0, b0, a0);
+ } else {
+ plot2(my_data, i, j, r1, g1, b1, a1);
+ }
+ }
+ }
+ break;
+
+ case 3: /* random stripes */
+ printf("Stripes 2\n");
+ height = width = TEXTURE_SIZE;
+ my_data = (void *)malloc(width * height * 4);
+ for (i = 0 ; i < height ; i += 2) {
+ r0 = random() & 0xff;
+ g0 = random() & 0xff;
+ b0 = random() & 0xff;
+ a0 = 0xff;
+ for (j = 0 ; j < width ; j += 2) {
+ plot2(my_data, i, j, r0, g0, b0, a0);
+ }
+ }
+ break;
+ }
+#endif
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ width, height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, my_data);
+ sprintf (buf, "random texture: (%dx%d)",
+ width, height);
+ check_gl_error(buf);
+
+ /* setup parameters for texturing */
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, width);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ if (random() & 0x1) {
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ } else {
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ }
+
+ if (my_data != NULL) {
+ free(my_data);
+ my_data = NULL;
+ }
+
+ /* use full texture */
+ /* acd - was 1.0 */
+ texture->min_tx = 0.0;
+ texture->max_tx = 2.0;
+ texture->min_ty = 0.0;
+ texture->max_ty = 2.0;
+ texture->start_time = time((time_t *)0);
+}
+
+static Bool
+setup_file_texture (ModeInfo *mi, char *filename, texture *texture)
+{
+ Display *dpy = mi->dpy;
+ Visual *visual = mi->xgwa.visual;
+ char buf[1024];
+
+ XImage *image = file_to_ximage (dpy, visual, filename);
+ if (!image) return False;
+
+#ifdef DEBUG
+ printf("FileTexture\n");
+#endif
+
+ /* use this texture */
+ glBindTexture(GL_TEXTURE_2D, texture->id);
+
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ image->width, image->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, image->data);
+ sprintf (buf, "texture: %.100s (%dx%d)",
+ filename, image->width, image->height);
+ check_gl_error(buf);
+
+ /* setup parameters for texturing */
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, image->width);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ /* use full texture */
+ texture->min_tx = 0.0;
+ texture->max_tx = 1.0;
+ texture->min_ty = 0.0;
+ texture->max_ty = 1.0;
+ texture->start_time = time((time_t *)0);
+ return True;
+}
+
+static void
+setup_texture(ModeInfo * mi, texture *texture)
+{
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+
+ if (!image_str || !*image_str || !strcmp(image_str, "DEFAULT")) {
+ BUILTIN:
+ /* no image specified - use system settings */
+#ifdef DEBUG
+ printf("SetupTexture: get_snapshot\n");
+#endif
+ getSnapshot(mi, texture);
+ } else {
+ if (strcmp(image_str, "GENERATE") == 0) {
+#ifdef DEBUG
+ printf("SetupTexture: random_texture\n");
+#endif
+ setup_random_texture(mi, texture);
+ } else {
+ /* use supplied image file */
+#ifdef DEBUG
+ printf("SetupTexture: file_texture\n");
+#endif
+ if (! setup_file_texture(mi, image_str, texture))
+ goto BUILTIN;
+ }
+ }
+ /* copy start time from texture */
+ gp->start_time = texture->start_time;
+
+ check_gl_error("texture initialization");
+
+ /* acd
+ * resultant loaded image is upside down BUT
+ * it's a kaledescope and half of the hexagon is backwards anyway...
+ */
+
+ /* TODO: values for lissajous movement */
+ texture->x_period = frandrange(-2.0, 2.0);
+ texture->y_period = frandrange(-2.0, 2.0);
+ texture->r_period = frandrange(-2.0, 2.0);
+ texture->x_phase = frand(M_PI * 2);
+ texture->y_phase = frand(M_PI * 2);
+ texture->r_phase = frand(M_PI * 2);
+#ifdef DEBUG
+ printf("XPeriod %f XPhase %f\n", texture->x_period, texture->x_phase);
+ printf("YPeriod %f YPhase %f\n", texture->y_period, texture->y_phase);
+ printf("RPeriod %f RPhase %f\n", texture->r_period, texture->r_phase);
+#endif
+}
+
+#define VERTEX0 glVertex3f( 0.0000f, 0.000f, 0.0f);
+#define VERTEX1 glVertex3f( 0.0000f, 1.000f, 0.0f);
+#define VERTEX2 glVertex3f( XOFFSET, 0.500f, 0.0f);
+#define VERTEX3 glVertex3f( XOFFSET, -0.500f, 0.0f);
+#define VERTEX4 glVertex3f( 0.0000f, -1.000f, 0.0f);
+#define VERTEX5 glVertex3f(-XOFFSET, -0.500f, 0.0f);
+#define VERTEX6 glVertex3f(-XOFFSET, 0.500f, 0.0f);
+
+/*
+** Three different functions for calculating texture coordinates
+** which modify how the texture triangle moves over the source image.
+** Choose one.
+*/
+
+#if 0
+/* the classic equilateral triangle rotating around centre */
+static void
+calculate_texture_coords(ModeInfo *mi, texture *texture, vector2f t[3]) {
+
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+ GLfloat centre_x = 0.5;
+ GLfloat centre_y = 0.5;
+ GLfloat radius_x = (texture->max_tx - texture->min_tx) / 2;
+ GLfloat radius_y = (texture->max_ty - texture->min_ty) / 2;
+ GLfloat tangle2;
+ t[0].x = centre_x;
+ t[0].y = centre_y;
+
+ /* t[1] */
+ t[1].x = centre_x + .95 * radius_x * cos((gp->ymouse * 2 * M_PI) + (gp->tangle * RADIANS));
+ t[1].y = centre_y + .95 * radius_y * sin((gp->ymouse * 2 * M_PI) + (gp->tangle * RADIANS));
+
+ /* t[2] is always 60' further around than t2 */
+ tangle2 = (gp->ymouse * 2 * M_PI) + (gp->tangle * RADIANS) + (M_PI * 2 / 6);
+ t[2].x = centre_x + .95 * radius_x * cos(tangle2);
+ t[2].y = centre_y + .95 * radius_y * sin(tangle2);
+#if 0
+ printf("texcoords:[%f,%f]->[%f,%f](%f,%f)\n", t[0].x, t[0].y, t[1].x, t[1].y, texture->max_tx, texture->max_ty);
+#endif
+}
+#endif
+
+#if 1
+/* new lissajous movement pattern */
+static void
+calculate_texture_coords(ModeInfo *mi, texture *texture, vector2f t[3]) {
+
+ /* equilateral triangle rotating around centre */
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+ GLfloat width = texture->max_tx - texture->min_tx;
+ GLfloat height = texture->max_ty - texture->min_ty;
+ /* centre */
+ GLfloat centre_x = texture->min_tx + (width * .5);
+ GLfloat centre_y = texture->min_ty + (height * .5);
+ /* m radius and t radius should be = .5 */
+ /* triangle radius is 30% available space */
+ GLfloat t_radius_x = width * .3;
+ GLfloat t_radius_y = height * .3;
+ /* movement radius is 30% available space */
+ GLfloat m_radius_x = width * .2;
+ GLfloat m_radius_y = height * .2;
+ GLfloat angle2;
+
+ /* centre of triangle */
+ GLfloat angle = (gp->ymouse * 2 * M_PI) + (gp->tangle * RADIANS); /* to radians */
+ GLfloat t_centre_x = centre_x + m_radius_x * cos(texture->x_period * angle + texture->x_phase);
+ GLfloat t_centre_y = centre_y + m_radius_y * sin(texture->y_period * angle + texture->y_phase);
+
+#if 0
+ printf("WH: %f, %f - tWH: %f, %f\n", width, height, texture->width, texture->height);
+ printf("size: (%f, %f)\n", width, height);
+ printf("centre: (%f, %f)\n", centre_x, centre_y);
+#endif
+
+ angle2 = texture->r_period * angle + texture->r_phase;
+ t[0].x = t_centre_x + t_radius_x * cos(angle2);
+ t[0].y = t_centre_y + t_radius_y * sin(angle2);
+ t[1].x = t_centre_x + t_radius_x * cos(angle2 + ANGLE_120);
+ t[1].y = t_centre_y + t_radius_y * sin(angle2 + ANGLE_120);
+ t[2].x = t_centre_x + t_radius_x * cos(angle2 + ANGLE_240);
+ t[2].y = t_centre_y + t_radius_y * sin(angle2 + ANGLE_240);
+
+#if 0
+ printf("texcoords:[%f,%f]->[%f,%f](%f,%f)\n", t[0].x, t[0].y, t[1].x, t[1].y, texture->max_tx, texture->max_ty);
+#endif
+}
+#endif
+
+#if 0
+/* corners into corners - meant to maximise coverage */
+static void
+calculate_texture_coords(ModeInfo *mi, texture *texture, vector2f t[3]) {
+
+ /* equilateral triangle rotating around centre */
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+ GLfloat width = texture->max_tx - texture->min_tx;
+ GLfloat height = texture->max_ty - texture->min_ty;
+ /* centre */
+ GLfloat centre_x = texture->min_tx + (width * .5);
+ GLfloat centre_y = texture->min_ty + (height * .5);
+ /* m radius and t radius should be = .5 */
+ /* triangle radius calculated using maths 8) */
+#define TRADIUS (M_SQRT2 - 1.0)
+#define MRADIUS (1.0 - (M_SQRT2 / 2.0))
+ GLfloat t_radius_x = width * TRADIUS * .95;
+ GLfloat t_radius_y = height * TRADIUS * .95;
+ /* movement radius also calculated using maths */
+ GLfloat m_radius_x = width * MRADIUS * .95;
+ GLfloat m_radius_y = height * MRADIUS * .95;
+ GLfloat angle, angle2;
+ GLfloat t_centre_x, t_centre_y;
+
+ /* centre of triangle */
+ angle = gp->tangle * RADIANS; /* to radians */
+ t_centre_x = centre_x + m_radius_x * cos(angle);
+ t_centre_y = centre_y + m_radius_y * sin(angle);
+#if 0
+ printf("angle: %f, %f\n", angle, gp->tangle);
+ printf("tcentre: %f,%f\n", t_centre_x, t_centre_y);
+ printf("tradius: %f,%f\n", t_radius_x, t_radius_y);
+
+ printf("size: (%f, %f)\n", width, height);
+ printf("centre: (%f, %f)\n", centre_x, centre_y);
+ printf("centre: (%f, %f)\n", centre_x, centre_y);
+ printf("TRADIUS: %f\n", TRADIUS);
+ printf("MRADIUS: %f\n", MRADIUS);
+#endif
+
+ /* angle2 is tied to tangle */
+ angle2 = (180.0 - ((30.0 / 90.0) * gp->tangle)) * RADIANS;
+#if 0
+ printf("Angle1: %f\tAngle2: %f\n", angle / RADIANS, angle2 / RADIANS);
+#endif
+ t[0].x = t_centre_x + t_radius_x * cos(angle2);
+ t[0].y = t_centre_y + t_radius_y * sin(angle2);
+ t[1].x = t_centre_x + t_radius_x * cos(angle2 + ANGLE_120);
+ t[1].y = t_centre_y + t_radius_y * sin(angle2 + ANGLE_120);
+ t[2].x = t_centre_x + t_radius_x * cos(angle2 + ANGLE_240);
+ t[2].y = t_centre_y + t_radius_y * sin(angle2 + ANGLE_240);
+
+#if 0
+ printf("texcoords:[%f,%f][%f,%f][%f,%f]\n", t[0].x, t[0].y, t[1].x, t[1].y, t[2].x, t[2].y);
+#endif
+}
+#endif
+
+static int
+draw_hexagons(ModeInfo *mi, int translucency, texture *texture)
+{
+ int polys = 0;
+ int i;
+ vector2f t[3];
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+
+ calculate_texture_coords(mi, texture, t);
+
+ glColor4f(1.0, 1.0, 1.0, (float)translucency / MAX_FADE);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glDepthMask(GL_FALSE);
+ glBindTexture(GL_TEXTURE_2D, texture->id);
+
+ if (gp->list == -1) {
+ gp->list = glGenLists(1);
+ }
+
+ /* compile new list */
+ glNewList(gp->list, GL_COMPILE);
+ glBegin(GL_TRIANGLES);
+
+ /*
+ ** six triangles to each hexagon
+ */
+
+ glTexCoord2f(t[0].x, t[0].y);
+ VERTEX0;
+ glTexCoord2f(t[1].x, t[1].y);
+ VERTEX1;
+ glTexCoord2f(t[2].x, t[2].y);
+ VERTEX6;
+
+ glTexCoord2f(t[0].x, t[0].y);
+ VERTEX0;
+ glTexCoord2f(t[2].x, t[2].y);
+ VERTEX6;
+ glTexCoord2f(t[1].x, t[1].y);
+ VERTEX5;
+
+ glTexCoord2f(t[0].x, t[0].y);
+ VERTEX0;
+ glTexCoord2f(t[1].x, t[1].y);
+ VERTEX5;
+ glTexCoord2f(t[2].x, t[2].y);
+ VERTEX4;
+
+ glTexCoord2f(t[0].x, t[0].y);
+ VERTEX0;
+ glTexCoord2f(t[2].x, t[2].y);
+ VERTEX4;
+ glTexCoord2f(t[1].x, t[1].y);
+ VERTEX3;
+
+ glTexCoord2f(t[0].x, t[0].y);
+ VERTEX0;
+ glTexCoord2f(t[1].x, t[1].y);
+ VERTEX3;
+ glTexCoord2f(t[2].x, t[2].y);
+ VERTEX2;
+
+ glTexCoord2f(t[0].x, t[0].y);
+ VERTEX0;
+ glTexCoord2f(t[2].x, t[2].y);
+ VERTEX2;
+ glTexCoord2f(t[1].x, t[1].y);
+ VERTEX1;
+
+ glEnd();
+ glEndList();
+
+ /* call the list n times */
+ for (i = 0 ; i < sizeof(hex) / sizeof(hex[0]) ; i++) {
+
+ glPushMatrix();
+
+ glTranslatef(hex[i].x, hex[i].y, 0.0);
+ glCallList(gp->list);
+ polys += 6;
+
+ glPopMatrix();
+ }
+
+#ifdef DISPLAY_TEXTURE
+ glPushMatrix();
+ /* acd debug - display (bigger, centred) texture */
+ glScalef(2.0, 2.0, 2.0);
+ glTranslatef(-0.5, -0.5, 0.0);
+ glBegin(GL_QUADS);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(0.0, 0.0, -0.1);
+ glTexCoord2f(1.0, 0.0);
+ glVertex3f(1.0, 0.0, -0.1);
+ glTexCoord2f(1.0, 1.0);
+ glVertex3f(1.0, 1.0, -0.1);
+ glTexCoord2f(0.0, 1.0);
+ glVertex3f(0.0, 1.0, -0.1);
+ polys++;
+ glEnd();
+ /* acd debug - display texture triangle */
+ glColor4f(1.0, 0.5, 1.0, 1.0);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(t[0].x, t[0].y, -0.11);
+ glVertex3f(t[1].x, t[1].y, -0.11);
+ glVertex3f(t[2].x, t[2].y, -0.11);
+ polys++;
+ glEnd();
+ glPopMatrix();
+#endif
+
+ glDisable(GL_TEXTURE_2D);
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ return polys;
+}
+
+/*
+ * main rendering loop
+ */
+static void
+draw(ModeInfo * mi)
+{
+ GLfloat x_angle, y_angle, z_angle;
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+ vectorf v1;
+
+ mi->polygon_count = 0;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ gp->tic += 0.005f;
+
+ x_angle = gp->cam_x_phase + gp->tic * gp->cam_x_speed;
+ y_angle = gp->cam_y_phase + gp->tic * gp->cam_y_speed;
+ z_angle = gp->cam_z_phase + gp->tic * gp->cam_z_speed;
+
+ if (move) {
+ v1.x = 1 * sin(x_angle);
+ v1.y = 1 * sin(y_angle);
+ } else {
+ v1.x = 0;
+ v1.y = 0;
+ }
+
+ /* size is changed in pinit() to be distance from plane */
+ gp->size = MI_SIZE(mi);
+ if (gp->size > 10) {
+ gp->size = 10;
+ }
+ if (gp->size <= 0) {
+ gp->size = 0;
+ }
+ if (gp->size > 0) {
+ /* user defined size */
+ v1.z = gp->size;
+ } else if (zoom) {
+ /* max distance given by adding the constant and the multiplier */
+ v1.z = 5.0 + 3.0 * sin(z_angle);
+ } else {
+ /* default */
+ v1.z = 7.0;
+ }
+
+ /* update rotation angle (but not if mouse button down) */
+ if (rotate && !gp->button_down_p)
+ {
+ float new_rangle_vel = 0.0;
+
+ /* update camera rotation angle and velocity */
+ gp->rangle += gp->rangle_vel;
+ new_rangle_vel = gp->rangle_vel + gp->rangle_acc;
+ if (new_rangle_vel > -MAX_ANGLE_VEL && new_rangle_vel < MAX_ANGLE_VEL)
+ {
+ /* new velocity is within limits */
+ gp->rangle_vel = new_rangle_vel;
+ }
+
+ /* randomly change twisting speed - 3ff = 1024 */
+ if ((random() % TWISTING_PROBABILITY) < 1.0) {
+ gp->rangle_acc = INITIAL_ANGLE_ACC * frand(1.0);
+ if (gp->rangle_vel > 0.0) {
+ gp->rangle_acc = -gp->rangle_acc;
+ }
+ }
+ }
+#if 0
+ printf("Rangle: %f : %f : %f\n", gp->rangle, gp->rangle_vel, gp->rangle_acc);
+ printf("Tangle: %f : %f : %f\n", gp->tangle, gp->tangle_vel, gp->tangle_acc);
+#endif
+
+#ifdef WOBBLE
+ /* this makes the image wobble - requires -move and a larger grid */
+ gluLookAt(0, 0, v1.z, v1.x, v1.y, 0.0, 0.0, 1.0, 0.0);
+#else
+ /* no wobble - camera always perpendicular to grid */
+
+ /* rotating camera rather than entire space - smoother */
+ gluLookAt(
+ v1.x, v1.y, v1.z,
+ v1.x, v1.y, 0.0,
+ sin((gp->xmouse * M_PI * 2) + gp->rangle * RADIANS),
+ cos((gp->xmouse * M_PI * 2) + gp->rangle * RADIANS),
+ 0.0);
+#endif
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ if (gp->fade == 0)
+ {
+ /* not fading */
+ mi->polygon_count +=
+ draw_hexagons(mi, MAX_FADE, &gp->textures[gp->visible]);
+ }
+ else
+ {
+ /* fading - show both textures with alpha
+ NB first is always max alpha */
+ mi->polygon_count +=
+ draw_hexagons(mi, MAX_FADE, &gp->textures[1 - gp->visible]);
+ mi->polygon_count +=
+ draw_hexagons(mi, MAX_FADE - gp->fade, &gp->textures[gp->visible]);
+
+ /* fade some more */
+ gp->fade++;
+
+ /* have we faded enough? */
+ if (gp->fade > MAX_FADE)
+ {
+ /* stop fading */
+ gp->fade = 0;
+ gp->visible = 1 - gp->visible;
+ }
+ }
+
+ /* increment texture angle based on time, velocity etc */
+ /* but only if button is not down */
+ if (!gp->button_down_p)
+ {
+ float new_tangle_vel = 0.0;
+
+ gp->tangle += gp->tangle_vel;
+
+ /* work out new texture angle velocity */
+ new_tangle_vel = gp->tangle_vel + gp->tangle_acc;
+ if (new_tangle_vel > -MAX_ANGLE_VEL && new_tangle_vel < MAX_ANGLE_VEL)
+ {
+ /* new velocity is inside limits */
+ gp->tangle_vel = new_tangle_vel;
+ }
+
+ /* randomly change twisting speed - 3ff = 1024 */
+ if ((random() % TWISTING_PROBABILITY) < 1.0) {
+ gp->tangle_acc = INITIAL_ANGLE_ACC * frand(1.0);
+ if (gp->tangle_vel > 0.0) {
+ gp->tangle_acc = -gp->tangle_acc;
+ }
+ }
+ }
+
+ glFlush();
+}
+
+/*
+ * new window size or exposure
+ */
+ENTRYPOINT void reshape_gleidescope(ModeInfo *mi, int width, int height)
+{
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(gp->glx_context));
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(50.0, 1/h, 0.1, 2000.0);
+ glMatrixMode (GL_MODELVIEW);
+ glLineWidth(1);
+ glPointSize(1);
+}
+
+static void
+pinit(ModeInfo * mi)
+{
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+
+ /* set start time - star_time = 0 implies non-dynamic texture */
+ gp->start_time = (time_t)0;
+
+ /* set the texture size to default */
+ /*
+ gp->max_tx = 1.0;
+ gp->max_ty = 1.0;
+ */
+
+ /* no fading */
+ gp->fade = 0;
+
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+
+ /* space for textures */
+ glGenTextures(1, &gp->textures[0].id);
+ glGenTextures(1, &gp->textures[1].id);
+ gp->visible = 0;
+
+ setup_texture(mi, &gp->textures[gp->visible]);
+
+ /*
+ ** want to choose a value for arg randomly if neither -arg nor -no-arg
+ ** is specified. xscreensaver libraries don't seem to let you do this -
+ ** if something isn't true then it is false (pesky two-state boolean values).
+ ** so, i've defined both -arg and -no-arg to arguments and added the
+ ** following logic.
+ ** (btw if both -arg and -no-arg are defined then arg is set to False)
+ */
+ if (zoom == False && nozoom == False)
+ {
+ /* no zoom preference - randomise */
+ zoom = (((random() & 0x1) == 0x1) ? True : False);
+ }
+ else if (nozoom == True)
+ {
+ /* definately no zoom */
+ zoom = False;
+ }
+
+ if (move == False && nomove == False)
+ {
+ /* no move preference - randomise */
+ move = (((random() & 0x1) == 0x1) ? True : False);
+ }
+ else if (nomove == True)
+ {
+ /* definately no move */
+ move = False;
+ }
+
+ if (rotate == False && norotate == False)
+ {
+ /* no rotate preference - randomise */
+ rotate = (((random() & 0x1) == 0x1) ? True : False);
+ }
+ else if (norotate == True)
+ {
+ /* definately no rotate */
+ rotate = False;
+ }
+
+ /* define cam variables */
+ gp->cam_x_speed = MAX_CAM_SPEED * frandrange(-.5, 0.5);
+ gp->cam_x_phase = random() % 360;
+ gp->cam_y_speed = MAX_CAM_SPEED * frandrange(-.5, 0.5);
+ gp->cam_y_phase = random() % 360;
+ gp->cam_z_speed = MAX_CAM_SPEED * frandrange(-.5, 0.5);
+ gp->cam_z_phase = random() % 360;
+
+ /* initial angular speeds */
+ gp->rangle_vel = INITIAL_ANGLE_VEL * frandrange(-.5, 0.5);
+ gp->tangle_vel = INITIAL_ANGLE_VEL * frandrange(-.5, 0.5);
+ gp->rangle_acc = INITIAL_ANGLE_ACC * frandrange(-.5, 0.5);
+ gp->tangle_acc = INITIAL_ANGLE_ACC * frandrange(-.5, 0.5);
+
+ /* jwz */
+#if 0
+ {
+ GLfloat speed = 15;
+ gp->rangle_vel *= speed;
+ gp->tangle_vel *= speed;
+ gp->rangle_acc *= speed;
+ gp->tangle_acc *= speed;
+ }
+#endif
+
+ /* distance is 11 - size */
+ if (gp->size != -1) {
+ if (zoom) {
+ fprintf(stderr, "-size given. ignoring -zoom.\n");
+ zoom = False;
+ }
+ if (gp->size < 1) {
+ gp->size = 1;
+ } else if (gp->size >= 10) {
+ gp->size = 10;
+ }
+ gp->size = 11 - gp->size;
+ }
+
+#ifdef DEBUG
+printf("phases [%d, %d, %d]\n", gp->cam_x_phase, gp->cam_y_phase, gp->cam_z_phase);
+#endif
+}
+
+ENTRYPOINT void
+init_gleidescope(ModeInfo * mi)
+{
+ gleidestruct *gp;
+ int screen = MI_SCREEN(mi);
+
+ MI_INIT(mi, gleidescope);
+ gp = &gleidescope[screen];
+ gp->window = MI_WINDOW(mi);
+ gp->size = -1;
+ gp->list = -1;
+
+ if ((gp->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_gleidescope(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
+ glDrawBuffer(GL_BACK);
+
+ /* do initialisation */
+ pinit(mi);
+
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_gleidescope(ModeInfo * mi)
+{
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+
+ if (!gp->glx_context)
+ return;
+
+ /* Just keep running before the texture has come in. */
+ /* if (gp->waiting_for_image_p) return; */
+
+ glDrawBuffer(GL_BACK);
+
+ glXMakeCurrent(display, window, *(gp->glx_context));
+ draw(mi);
+
+ if (mi->fps_p) {
+ do_fps (mi);
+ }
+
+ glFinish();
+ glXSwapBuffers(display, window);
+
+#ifdef GRAB
+ if (grab) {
+ grab_frame(display, window);
+ }
+#endif
+
+ /* need to change texture? */
+ if ((gp->start_time != 0) && (duration != -1) && gp->fade == 0) {
+ if (gp->start_time + duration <= time((time_t *)0)) {
+#ifdef DEBUG
+ printf("Start Time: %lu - Current Time: %lu\n", (unsigned long)gp->start_time, (unsigned long)time((time_t *)0));
+ printf("Changing Texture\n");
+#endif
+ /* get new snapshot (into back buffer) and start fade count */
+ setup_texture(mi, &gp->textures[1 - gp->visible]);
+ /* restart fading */
+ gp->fade = 1;
+ }
+ }
+}
+
+ENTRYPOINT void
+free_gleidescope(ModeInfo * mi)
+{
+ gleidestruct *gp = &gleidescope[MI_SCREEN(mi)];
+
+ /* acd - is this needed? */
+ if (gp->glx_context) {
+ /* Display lists MUST be freed while their glXContext is current. */
+ glXMakeCurrent(MI_DISPLAY(mi), gp->window, *(gp->glx_context));
+
+ /* acd - was code here for freeing things that are no longer in struct */
+ }
+}
+
+XSCREENSAVER_MODULE ("Gleidescope", gleidescope)
+
+#endif
diff --git a/hacks/glx/gleidescope.man b/hacks/glx/gleidescope.man
new file mode 100644
index 0000000..c0b9b15
--- /dev/null
+++ b/hacks/glx/gleidescope.man
@@ -0,0 +1,77 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+gleidescope - a tiled OpenGL kaleidescope
+.SH SYNOPSIS
+.B gleidescope
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[-delay \fInumber\fP]
+[-move]
+[-rotate]
+[-zoom]
+[-image \fIfile\fP]
+[-fps]
+[-size \fInumber\fP]
+[-duration \fInumber\fP]
+.SH DESCRIPTION
+A tiled kaleidescope using OpenGL.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-move
+Move the camera.
+.TP 8
+.B \-rotate
+Rotate the camera.
+.TP 8
+.B \-zoom
+Zoom the camera in and out.
+.TP 8
+.B \-image \fIfile\fP
+The texture map to use at the end of the kaleidescope.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-size \fInumber\fP
+The size of the hexagons being displayed [1(small)-10(large)]
+.TP 8
+.B \-duration \fInumber\fP
+The time in seconds before another image is chosen.
+.TP 8
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Andrew Dean Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Andrew Dean.
diff --git a/hacks/glx/glforestfire.c b/hacks/glx/glforestfire.c
new file mode 100644
index 0000000..bcc9ed7
--- /dev/null
+++ b/hacks/glx/glforestfire.c
@@ -0,0 +1,1097 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* fire --- 3D fire or rain landscape */
+
+#if 0
+static const char sccsid[] = "@(#)fire.c 5.02 2001/09/26 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 2001. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by David Bucciarelli
+ * (tech.hmw@plus.it) and could be found in the demo package
+ * of Mesa (Mesa-3.2/3Dfx/demos/). This mode is the result of the merge of
+ * two of the David's demos (fire and rain).
+ *
+ * Eric Lassauge (October-10-2000) <lassauge@users.sourceforge.net>
+ * http://lassauge.free.fr/linux.html
+ *
+ * REVISION HISTORY:
+ *
+ * E.Lassauge - 26-Sep-2001:
+ * - add wander option and code
+ * - cleanups for xscreensaver
+ *
+ * E.Lassauge - 09-Mar-2001:
+ * - get rid of my framerate options to use showfps
+ *
+ * E.Lassauge - 12-Jan-2001:
+ * - add rain particules, selected if count=0 (no fire means rain !)
+ *
+ * E.Lassauge - 28-Nov-2000:
+ * - modified release part to add freeing of GL objects
+ *
+ * E.Lassauge - 14-Nov-2000:
+ * - use new common xpm_to_ximage function
+ *
+ * E.Lassauge - 25-Oct-2000:
+ * - add the trees (with a new resource '-trees')
+ * - corrected handling of color (textured vs untextured)
+ * - corrected handling of endiannes for the xpm files
+ * - inverted ground pixmap file
+ * - use malloc-ed tree array
+ *
+ * TSchmidt - 23-Oct-2000:
+ * - added size option like used in sproingies mode
+ *
+ * E.Lassauge - 13-Oct-2000:
+ * - when trackmouse and window is iconified (login screen): stop tracking
+ * - add pure GLX handling of framerate display (erased GLUT stuff)
+ * - made count a per screen variable and update it only if framemode
+ * - changes for no_texture an wireframe modes
+ * - change no_texture color for the ground
+ * - add freeing of texture image
+ * - misc comments and little tweakings
+ *
+ * TODO:
+ * - perhaps use a user supplied xpm for ground image (or a whatever image
+ * file using ImageMagick ?)
+ * - random number of trees ? change trees at change_fire ?
+ * - fix wireframe mode: it's too CPU intensive.
+ * - look how we can get the Wheel events (Button4&5).
+ */
+
+
+#ifdef STANDALONE /* xscreensaver mode */
+#define DEFAULTS "*delay: 10000 \n" \
+ "*count: 800 \n" \
+ "*size: 0 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+#define MODE_fire
+#include "xlockmore.h" /* from the xscreensaver distribution */
+#include "gltrackball.h"
+#else /* !STANDALONE */
+#include "xlock.h" /* from the xlockmore distribution */
+#include "visgl.h"
+#endif /* !STANDALONE */
+
+#ifdef MODE_fire
+
+#define MINSIZE 32
+
+#if defined( USE_XPM ) || defined( USE_XPMINC ) || defined(STANDALONE)
+/* USE_XPM & USE_XPMINC in xlock mode ; HAVE_XPM in xscreensaver mode */
+#include "ximage-loader.h"
+#define I_HAVE_XPM
+
+#include "images/gen/ground_png.h"
+#include "images/gen/tree_png.h"
+#endif /* HAVE_XPM */
+
+/* vector utility macros */
+#define vinit(a,i,j,k) {\
+ (a)[0]=i;\
+ (a)[1]=j;\
+ (a)[2]=k;\
+}
+
+#define vinit4(a,i,j,k,w) {\
+ (a)[0]=i;\
+ (a)[1]=j;\
+ (a)[2]=k;\
+ (a)[3]=w;\
+}
+
+#define vadds(a,dt,b) {\
+ (a)[0]+=(dt)*(b)[0];\
+ (a)[1]+=(dt)*(b)[1];\
+ (a)[2]+=(dt)*(b)[2];\
+}
+
+#define vequ(a,b) {\
+ (a)[0]=(b)[0];\
+ (a)[1]=(b)[1];\
+ (a)[2]=(b)[2];\
+}
+
+#define vinter(a,dt,b,c) {\
+ (a)[0]=(dt)*(b)[0]+(1.0-dt)*(c)[0];\
+ (a)[1]=(dt)*(b)[1]+(1.0-dt)*(c)[1];\
+ (a)[2]=(dt)*(b)[2]+(1.0-dt)*(c)[2];\
+}
+
+#define clamp(a) ((a) < 0.0 ? 0.0 : ((a) < 1.0 ? (a) : 1.0))
+
+#define vclamp(v) {\
+ (v)[0]=clamp((v)[0]);\
+ (v)[1]=clamp((v)[1]);\
+ (v)[2]=clamp((v)[2]);\
+}
+
+/* Manage option vars */
+#define DEF_TEXTURE "True"
+#define DEF_FOG "False"
+#define DEF_SHADOWS "True"
+#define DEF_FRAMERATE "False"
+#define DEF_WANDER "True"
+#define DEF_TREES "5"
+#define MAX_TREES 20
+static Bool do_texture;
+static Bool do_fog;
+static Bool do_shadows;
+static Bool do_wander;
+static int num_trees;
+static XFontStruct *mode_font = None;
+
+static XrmOptionDescRec opts[] = {
+ {"-texture", ".fire.texture", XrmoptionNoArg, "on"},
+ {"+texture", ".fire.texture", XrmoptionNoArg, "off"},
+ {"-fog", ".fire.fog", XrmoptionNoArg, "on"},
+ {"+fog", ".fire.fog", XrmoptionNoArg, "off"},
+ {"-shadows", ".fire.shadows", XrmoptionNoArg, "on"},
+ {"+shadows", ".fire.shadows", XrmoptionNoArg, "off"},
+ {"-wander", ".fire.wander", XrmoptionNoArg, "on"},
+ {"+wander", ".fire.wander", XrmoptionNoArg, "off"},
+ {"-trees", ".fire.trees", XrmoptionSepArg, 0},
+ {"-rain", ".fire.count", XrmoptionNoArg, "0"},
+
+};
+
+static argtype vars[] = {
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_fog, "fog", "Fog", DEF_FOG, t_Bool},
+ {&do_shadows, "shadows", "Shadows", DEF_SHADOWS, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&num_trees, "trees", "Trees", DEF_TREES, t_Int},
+};
+
+static OptionStruct desc[] = {
+ {"-/+texture", "turn on/off texturing"},
+ {"-/+fog", "turn on/off fog"},
+ {"-/+shadows", "turn on/off shadows"},
+ {"-/+wander", "turn on/off wandering"},
+ {"-trees num", "number of trees (0 disables)"},
+};
+
+ENTRYPOINT ModeSpecOpt fire_opts =
+ { sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc };
+
+#ifdef USE_MODULES
+ModStruct fire_description =
+ { "fire", "init_fire", "draw_fire", "release_fire",
+ "draw_fire", "change_fire", (char *) NULL, &fire_opts,
+ 10000, 800, 1, 400, 64, 1.0, "",
+ "Shows a 3D fire-like image", 0, NULL
+};
+#endif /* USE_MODULES */
+
+/* misc defines */
+#define TREEINR 2.5 /* tree min distance */
+#define TREEOUTR 8.0 /* tree max distance */
+#define FRAME 50 /* frame count interval */
+#define DIMP 20.0 /* dimension of ground */
+#define DIMTP 16.0 /* dimension of ground texture */
+
+#define RIDCOL 0.4 /* factor for color blending */
+
+#define AGRAV -9.8 /* gravity */
+
+#define NUMPART 7500 /* rain particles */
+
+/* fire particle struct */
+typedef struct {
+ int age;
+ float p[3][3];
+ float v[3];
+ float c[3][4];
+} part;
+
+/* rain particle struct */
+typedef struct {
+ float age;
+ float acc[3];
+ float vel[3];
+ float pos[3];
+ float partLength;
+ float oldpos[3];
+} rain;
+
+/* colors */
+static const GLfloat black[3] = { 0.0, 0.0, 0.0 }; /* shadow color */
+static const GLfloat partcol1[3] = { 1.0, 0.2, 0.0 }; /* initial color: red-ish */
+static const GLfloat partcol2[3] = { 1.0, 1.0, 0.0 }; /* blending color: yellow-ish */
+static const GLfloat fogcolor[4] = { 0.9, 0.9, 1.0, 1.0 };
+
+/* ground */
+static const float q[4][3] = {
+ {-DIMP, 0.0, -DIMP},
+ {DIMP, 0.0, -DIMP},
+ {DIMP, 0.0, DIMP},
+ {-DIMP, 0.0, DIMP}
+};
+
+/* ground texture */
+static const float qt[4][2] = {
+ {-DIMTP, -DIMTP},
+ {DIMTP, -DIMTP},
+ {DIMTP, DIMTP},
+ {-DIMTP, DIMTP}
+};
+
+/* default values for observer */
+static const float DEF_OBS[3] = { 2.0f, 1.0f, 0.0f };
+#define DEV_V 0.0
+#define DEF_ALPHA -90.0
+#define DEF_BETA 90.0
+
+/* tree struct */
+typedef struct {
+ float x,y,z;
+} treestruct;
+
+/* the mode struct, contains all per screen variables */
+typedef struct {
+ GLint WIDTH, HEIGHT; /* display dimensions */
+ GLXContext *glx_context;
+
+ int np; /* number of fire particles : set it through 'count' resource */
+ float eject_r; /* emission radius */
+ float dt, maxage, eject_vy, eject_vl;
+ float ridtri; /* fire particle size */
+ Bool shadows; /* misc booleans: set them through specific resources */
+ Bool fog;
+
+ part *p; /* fire particles array */
+ rain *r; /* rain particles array */
+
+ XImage *gtexture; /* ground texture image bits */
+ XImage *ttexture; /* tree texture image bits */
+ GLuint groundid; /* ground texture id: GL world */
+ GLuint treeid; /* tree texture id: GL world */
+ GLuint fontbase; /* fontbase id: GL world */
+
+ int num_trees; /* number of trees: set it through 'trees' resource */
+ treestruct *treepos; /* trees positions: float treepos[num_trees][3] */
+
+ float min[3]; /* raining area */
+ float max[3];
+
+ float obs[3]; /* observer coordinates */
+ float dir[3]; /* view direction */
+ float v; /* observer velocity */
+ float alpha; /* observer angles */
+ float beta;
+
+ trackball_state *trackball;
+ Bool button_down_p;
+ int frame;
+
+} firestruct;
+
+/* array of firestruct indexed by screen number */
+static firestruct *fire = (firestruct *) NULL;
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Misc funcs.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/* utility function for the rain particles */
+static float gettimerain(void)
+{
+#if 0
+ /* Oh yeah, *that's* portable! WTF. */
+ /*
+ * I really thought clock() was standard ... EL
+ * I found this on the net:
+ * The clock() function conforms to ISO/IEC 9899:1990 (``ISO C89'')
+ * */
+
+ static clock_t told= (clock_t)0;
+ clock_t tnew,ris;
+
+ tnew=clock();
+
+ ris=tnew-told;
+
+ told=tnew;
+
+ return (0.0125 + ris/(float)CLOCKS_PER_SEC);
+#else
+ return 0.0150;
+#endif
+}
+
+/* my RAND */
+static float vrnd(void)
+{
+ return ((float) LRAND() / (float) MAXRAND);
+}
+
+/* initialise new fire particle */
+static void setnewpart(firestruct * fs, part * p)
+{
+ float a, vi[3];
+ const float *c;
+
+ p->age = 0;
+
+ a = vrnd() * M_PI * 2.0;
+
+ vinit(vi, sin(a) * fs->eject_r * vrnd(), 0.15, cos(a) * fs->eject_r * vrnd());
+ vinit(p->p[0], vi[0] + vrnd() * fs->ridtri, vi[1] + vrnd() * fs->ridtri, vi[2] + vrnd() * fs->ridtri);
+ vinit(p->p[1], vi[0] + vrnd() * fs->ridtri, vi[1] + vrnd() * fs->ridtri, vi[2] + vrnd() * fs->ridtri);
+ vinit(p->p[2], vi[0] + vrnd() * fs->ridtri, vi[1] + vrnd() * fs->ridtri, vi[2] + vrnd() * fs->ridtri);
+
+ vinit(p->v, vi[0] * fs->eject_vl / (fs->eject_r / 2),
+ vrnd() * fs->eject_vy + fs->eject_vy / 2,
+ vi[2] * fs->eject_vl / (fs->eject_r / 2));
+
+ c = partcol1;
+
+ vinit4(p->c[0], c[0] * ((1.0 - RIDCOL) + vrnd() * RIDCOL),
+ c[1] * ((1.0 - RIDCOL) + vrnd() * RIDCOL),
+ c[2] * ((1.0 - RIDCOL) + vrnd() * RIDCOL), 1.0);
+ vinit4(p->c[1], c[0] * ((1.0 - RIDCOL) + vrnd() * RIDCOL),
+ c[1] * ((1.0 - RIDCOL) + vrnd() * RIDCOL),
+ c[2] * ((1.0 - RIDCOL) + vrnd() * RIDCOL), 1.0);
+ vinit4(p->c[2], c[0] * ((1.0 - RIDCOL) + vrnd() * RIDCOL),
+ c[1] * ((1.0 - RIDCOL) + vrnd() * RIDCOL),
+ c[2] * ((1.0 - RIDCOL) + vrnd() * RIDCOL), 1.0);
+}
+
+/* initialise new rain particle */
+static void setnewrain(firestruct * fs, rain * r)
+{
+ r->age=0.0f;
+
+ vinit(r->acc,0.0f,-0.98f,0.0f);
+ vinit(r->vel,0.0f,0.0f,0.0f);
+
+ r->partLength=0.2f;
+
+ vinit(r->oldpos,fs->min[0]+(fs->max[0]-fs->min[0])*vrnd(),
+ fs->max[1]+0.2f*fs->max[1]*vrnd(),
+ fs->min[2]+(fs->max[2]-fs->min[2])*vrnd());
+ vequ(r->pos,r->oldpos);
+ vadds(r->oldpos,-(r->partLength),r->vel);
+
+ r->pos[1]=(fs->max[1]-fs->min[1])*vrnd()+fs->min[1];
+ r->oldpos[1]=r->pos[1]-r->partLength*r->vel[1];
+}
+
+/* set fire particle values */
+static void setpart(firestruct * fs, part * p)
+{
+ float fact;
+
+ if (p->p[0][1] < 0.1) {
+ setnewpart(fs, p);
+ return;
+ }
+
+ p->v[1] += AGRAV * fs->dt;
+
+ vadds(p->p[0], fs->dt, p->v);
+ vadds(p->p[1], fs->dt, p->v);
+ vadds(p->p[2], fs->dt, p->v);
+
+ p->age++;
+
+ if ((p->age) > fs->maxage) {
+ vequ(p->c[0], partcol2);
+ vequ(p->c[1], partcol2);
+ vequ(p->c[2], partcol2);
+ } else {
+ fact = 1.0 / fs->maxage;
+ vadds(p->c[0], fact, partcol2);
+ vclamp(p->c[0]);
+ p->c[0][3] = fact * (fs->maxage - p->age);
+
+ vadds(p->c[1], fact, partcol2);
+ vclamp(p->c[1]);
+ p->c[1][3] = fact * (fs->maxage - p->age);
+
+ vadds(p->c[2], fact, partcol2);
+ vclamp(p->c[2]);
+ p->c[2][3] = fact * (fs->maxage - p->age);
+ }
+}
+
+/* set rain particle values */
+static void setpartrain(firestruct * fs, rain * r, float dt)
+{
+ r->age += dt;
+
+ vadds(r->vel,dt,r->acc);
+ vadds(r->pos,dt,r->vel);
+
+ if(r->pos[0]<fs->min[0])
+ r->pos[0]=fs->max[0]-(fs->min[0]-r->pos[0]);
+ if(r->pos[2]<fs->min[2])
+ r->pos[2]=fs->max[2]-(fs->min[2]-r->pos[2]);
+
+ if(r->pos[0]>fs->max[0])
+ r->pos[0]=fs->min[0]+(r->pos[0]-fs->max[0]);
+ if(r->pos[2]>fs->max[2])
+ r->pos[2]=fs->min[2]+(r->pos[2]-fs->max[2]);
+
+ vequ(r->oldpos,r->pos);
+ vadds(r->oldpos,-(r->partLength),r->vel);
+ if(r->pos[1]<fs->min[1])
+ setnewrain(fs, r);
+}
+
+/* draw a tree */
+static int drawtree(float x, float y, float z)
+{
+ int polys = 0;
+ glBegin(GL_QUADS);
+ glTexCoord2f(0.0,0.0);
+ glVertex3f(x-1.5,y+0.0,z);
+
+ glTexCoord2f(1.0,0.0);
+ glVertex3f(x+1.5,y+0.0,z);
+
+ glTexCoord2f(1.0,1.0);
+ glVertex3f(x+1.5,y+3.0,z);
+
+ glTexCoord2f(0.0,1.0);
+ glVertex3f(x-1.5,y+3.0,z);
+ polys++;
+
+
+ glTexCoord2f(0.0,0.0);
+ glVertex3f(x,y+0.0,z-1.5);
+
+ glTexCoord2f(1.0,0.0);
+ glVertex3f(x,y+0.0,z+1.5);
+
+ glTexCoord2f(1.0,1.0);
+ glVertex3f(x,y+3.0,z+1.5);
+
+ glTexCoord2f(0.0,1.0);
+ glVertex3f(x,y+3.0,z-1.5);
+ polys++;
+
+ glEnd();
+
+ return polys;
+}
+
+/* calculate observer position : modified only if trackmouse is used */
+static void calcposobs(firestruct * fs)
+{
+ fs->dir[0] = sin(fs->alpha * M_PI / 180.0);
+ fs->dir[2] =
+ cos(fs->alpha * M_PI / 180.0) * sin(fs->beta * M_PI / 180.0);
+ fs->dir[1] = cos(fs->beta * M_PI / 180.0);
+
+ fs->obs[0] += fs->v * fs->dir[0];
+ fs->obs[1] += fs->v * fs->dir[1];
+ fs->obs[2] += fs->v * fs->dir[2];
+
+ if (!fs->np)
+ {
+ vinit(fs->min,fs->obs[0]-7.0f,-0.2f,fs->obs[2]-7.0f);
+ vinit(fs->max,fs->obs[0]+7.0f,8.0f,fs->obs[2]+7.0f);
+ }
+}
+
+
+/* initialise textures */
+static void inittextures(ModeInfo * mi)
+{
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+
+#if defined( I_HAVE_XPM )
+ if (do_texture) {
+
+ glGenTextures(1, &fs->groundid);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, fs->groundid);
+#endif /* HAVE_GLBINDTEXTURE */
+
+ if ((fs->gtexture = image_data_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+ ground_png,
+ sizeof(ground_png)))
+ == None) {
+ (void) fprintf(stderr, "Error reading the ground texture.\n");
+ glDeleteTextures(1, &fs->groundid);
+ do_texture = False;
+ fs->groundid = 0;
+ fs->treeid = 0;
+ return;
+ }
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ fs->gtexture->width, fs->gtexture->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, fs->gtexture->data);
+ check_gl_error("texture");
+
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+
+ if (fs->num_trees)
+ {
+ glGenTextures(1, &fs->treeid);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D,fs->treeid);
+#endif /* HAVE_GLBINDTEXTURE */
+ if ((fs->ttexture = image_data_to_ximage(MI_DISPLAY(mi),
+ MI_VISUAL(mi),
+ tree_png,
+ sizeof(tree_png)))
+ == None) {
+ (void)fprintf(stderr,"Error reading tree texture.\n");
+ glDeleteTextures(1, &fs->treeid);
+ fs->treeid = 0;
+ fs->num_trees = 0;
+ return;
+ }
+
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ fs->ttexture->width, fs->ttexture->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, fs->ttexture->data);
+ check_gl_error("texture");
+
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
+
+ glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
+ }
+ }
+ else
+ {
+ fs->groundid = 0; /* default textures */
+ fs->treeid = 0;
+ }
+#else /* !I_HAVE_XPM */
+ do_texture = False;
+ fs->groundid = 0; /* default textures */
+ fs->treeid = 0;
+#endif /* !I_HAVE_XPM */
+}
+
+/* init tree array and positions */
+static Bool inittree(ModeInfo * mi)
+{
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+ int i;
+ float dist;
+
+ /* allocate treepos array */
+ if ((fs->treepos = (treestruct *) malloc(fs->num_trees *
+ sizeof(treestruct))) == NULL) {
+ return False;
+ }
+ /* initialise positions */
+ for(i=0;i<fs->num_trees;i++) {
+ do {
+ fs->treepos[i].x =vrnd()*TREEOUTR*2.0-TREEOUTR;
+ fs->treepos[i].y =0.0;
+ fs->treepos[i].z =vrnd()*TREEOUTR*2.0-TREEOUTR;
+ dist = sqrt(fs->treepos[i].x * fs->treepos[i].x +
+ fs->treepos[i].z * fs->treepos[i].z);
+ } while((dist<TREEINR) || (dist>TREEOUTR));
+ }
+ return True;
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * GL funcs.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void reshape_fire(ModeInfo * mi, int width, int height)
+{
+
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+ int size = MI_SIZE(mi);
+
+ /* Viewport is specified size if size >= MINSIZE && size < screensize */
+ if (size <= 1) {
+ fs->WIDTH = MI_WIDTH(mi);
+ fs->HEIGHT = MI_HEIGHT(mi);
+ } else if (size < MINSIZE) {
+ fs->WIDTH = MINSIZE;
+ fs->HEIGHT = MINSIZE;
+ } else {
+ fs->WIDTH = (size > MI_WIDTH(mi)) ? MI_WIDTH(mi) : size;
+ fs->HEIGHT = (size > MI_HEIGHT(mi)) ? MI_HEIGHT(mi) : size;
+ }
+ glViewport((MI_WIDTH(mi) - fs->WIDTH) / 2, (MI_HEIGHT(mi) - fs->HEIGHT) / 2, fs->WIDTH, fs->HEIGHT);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(70.0, fs->WIDTH / (float) fs->HEIGHT, 0.1, 30.0);
+
+ glMatrixMode(GL_MODELVIEW);
+
+}
+
+static void DrawFire(ModeInfo * mi)
+{
+ int j;
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+
+ mi->polygon_count = 0;
+
+ if (do_wander && !fs->button_down_p)
+ {
+ GLfloat x, y, z;
+
+# define SINOID(SCALE,SIZE) \
+ ((((1 + sin((fs->frame * (SCALE)) / 2 * M_PI)) / 2.0) * (SIZE)) - (SIZE)/2)
+
+ x = SINOID(0.031, 0.85);
+ y = SINOID(0.017, 0.25);
+ z = SINOID(0.023, 0.85);
+ fs->frame++;
+ fs->obs[0] = x + DEF_OBS[0];
+ fs->obs[1] = y + DEF_OBS[1];
+ fs->obs[2] = z + DEF_OBS[2];
+ fs->dir[1] = y;
+ fs->dir[2] = z;
+ }
+
+ glEnable(GL_DEPTH_TEST);
+
+ if (fs->fog)
+ glEnable(GL_FOG);
+ else
+ glDisable(GL_FOG);
+
+ glDepthMask(GL_TRUE);
+ glClearColor(0.5, 0.5, 0.8, 1.0); /* sky in the distance */
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+ calcposobs(fs);
+
+ gltrackball_rotate (fs->trackball);
+
+ gluLookAt(fs->obs[0], fs->obs[1], fs->obs[2],
+ fs->obs[0] + fs->dir[0],
+ fs->obs[1] + fs->dir[1],
+ fs->obs[2] + fs->dir[2],
+ 0.0, 1.0, 0.0);
+
+ glEnable(GL_TEXTURE_2D);
+
+ /* draw ground using the computed texture */
+ if (do_texture) {
+ glColor4f(1.0,1.0,1.0,1.0); /* white to get texture in it's true color */
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, fs->groundid);
+#endif /* HAVE_GLBINDTEXTURE */
+ }
+ else
+ glColor4f(0.54, 0.27, 0.07, 1.0); /* untextured ground color */
+ glBegin(GL_QUADS);
+ glTexCoord2fv(qt[0]);
+ glVertex3fv(q[0]);
+ glTexCoord2fv(qt[1]);
+ glVertex3fv(q[1]);
+ glTexCoord2fv(qt[2]);
+ glVertex3fv(q[2]);
+ glTexCoord2fv(qt[3]);
+ glVertex3fv(q[3]);
+ mi->polygon_count++;
+ glEnd();
+
+ glAlphaFunc(GL_GEQUAL, 0.9);
+ if (fs->num_trees)
+ {
+ /* here do_texture IS True - and color used is white */
+ glEnable(GL_ALPHA_TEST);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D,fs->treeid);
+#endif /* HAVE_GLBINDTEXTURE */
+ for(j=0;j<fs->num_trees;j++)
+ mi->polygon_count += drawtree(fs->treepos[j].x ,fs->treepos[j].y ,fs->treepos[j].z );
+ glDisable(GL_ALPHA_TEST);
+ }
+ glDisable(GL_TEXTURE_2D);
+ glDepthMask(GL_FALSE);
+
+ if (fs->shadows) {
+ /* draw shadows with black color */
+ glBegin(wire ? GL_LINE_STRIP : GL_TRIANGLES);
+ for (j = 0; j < fs->np; j++) {
+ glColor4f(black[0], black[1], black[2], fs->p[j].c[0][3]);
+ glVertex3f(fs->p[j].p[0][0], 0.1, fs->p[j].p[0][2]);
+
+ glColor4f(black[0], black[1], black[2], fs->p[j].c[1][3]);
+ glVertex3f(fs->p[j].p[1][0], 0.1, fs->p[j].p[1][2]);
+
+ glColor4f(black[0], black[1], black[2], fs->p[j].c[2][3]);
+ glVertex3f(fs->p[j].p[2][0], 0.1, fs->p[j].p[2][2]);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+
+ glBegin(wire ? GL_LINE_STRIP : GL_TRIANGLES);
+ for (j = 0; j < fs->np; j++) {
+ /* draw particles: colors are computed in setpart */
+ glColor4fv(fs->p[j].c[0]);
+ glVertex3fv(fs->p[j].p[0]);
+
+ glColor4fv(fs->p[j].c[1]);
+ glVertex3fv(fs->p[j].p[1]);
+
+ glColor4fv(fs->p[j].c[2]);
+ glVertex3fv(fs->p[j].p[2]);
+ mi->polygon_count++;
+
+ setpart(fs, &fs->p[j]);
+ }
+ glEnd();
+
+ /* draw rain particles if no fire particles */
+ if (!fs->np)
+ {
+ float timeused = gettimerain();
+ glDisable(GL_TEXTURE_2D);
+ glShadeModel(GL_SMOOTH);
+ glBegin(GL_LINES);
+ for (j = 0; j < NUMPART; j++) {
+ glColor4f(0.7f,0.95f,1.0f,0.0f);
+ glVertex3fv(fs->r[j].oldpos);
+ glColor4f(0.3f,0.7f,1.0f,1.0f);
+ glVertex3fv(fs->r[j].pos);
+ setpartrain(fs, &fs->r[j],timeused);
+ mi->polygon_count++;
+ }
+ glEnd();
+ glShadeModel(GL_FLAT);
+ }
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_ALPHA_TEST);
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_FOG);
+
+ /* manage framerate display */
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glPopMatrix();
+}
+
+
+static Bool Init(ModeInfo * mi)
+{
+ int i;
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+
+ /* default settings */
+ fs->eject_r = 0.1 + NRAND(10) * 0.03;
+ fs->dt = 0.015;
+ fs->eject_vy = 4;
+ fs->eject_vl = 1;
+ fs->ridtri = 0.1 + NRAND(10) * 0.005;
+ fs->maxage = 1.0 / fs->dt;
+ vinit(fs->obs, DEF_OBS[0], DEF_OBS[1], DEF_OBS[2]);
+ fs->v = 0.0;
+ fs->alpha = DEF_ALPHA;
+ fs->beta = DEF_BETA;
+
+ /* initialise texture stuff */
+ if (do_texture)
+ inittextures(mi);
+ else
+ {
+ fs->ttexture = (XImage*) NULL;
+ fs->gtexture = (XImage*) NULL;
+ }
+
+ if (MI_IS_DEBUG(mi)) {
+ (void) fprintf(stderr,
+ "%s:\n\tnum_part=%d\n\ttrees=%d\n\tfog=%s\n\tshadows=%s\n\teject_r=%.3f\n\tridtri=%.3f\n",
+ MI_NAME(mi),
+ fs->np,
+ fs->num_trees,
+ fs->fog ? "on" : "off",
+ fs->shadows ? "on" : "off",
+ fs->eject_r, fs->ridtri);
+ }
+
+ /* initialise particles and trees */
+ for (i = 0; i < fs->np; i++) {
+ setnewpart(fs, &(fs->p[i]));
+ }
+
+ if (fs->num_trees)
+ if (!inittree(mi)) {
+ return False;
+ }
+
+ /* if no fire particles then initialise rain particles */
+ if (!fs->np)
+ {
+ vinit(fs->min,-7.0f,-0.2f,-7.0f);
+ vinit(fs->max,7.0f,8.0f,7.0f);
+ for (i = 0; i < NUMPART; i++) {
+ setnewrain(fs, &(fs->r[i]));
+ }
+ }
+
+ return True;
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+
+ENTRYPOINT void
+free_fire(ModeInfo * mi)
+{
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+
+ if (mode_font != None && fs->fontbase != None) {
+ glDeleteLists(fs->fontbase, mode_font->max_char_or_byte2 -
+ mode_font->min_char_or_byte2 + 1);
+ fs->fontbase = None;
+ }
+
+ if (fs->p != NULL) {
+ (void) free((void *) fs->p);
+ fs->p = (part *) NULL;
+ }
+ if (fs->r != NULL) {
+ (void) free((void *) fs->r);
+ fs->r = (rain *) NULL;
+ }
+ if (fs->treepos != NULL) {
+ (void) free((void *) fs->treepos);
+ fs->treepos = (treestruct *) NULL;
+ }
+ if (fs->ttexture != None) {
+ glDeleteTextures(1, &fs->treeid);
+ XDestroyImage(fs->ttexture);
+ fs->ttexture = None;
+ }
+ if (fs->gtexture != None) {
+ glDeleteTextures(1, &fs->groundid);
+ XDestroyImage(fs->gtexture);
+ fs->gtexture = None;
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize fire. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void
+init_fire(ModeInfo * mi)
+{
+ firestruct *fs;
+
+ MI_INIT (mi, fire);
+ fs = &fire[MI_SCREEN(mi)];
+ fs->np = MI_COUNT(mi);
+ fs->fog = do_fog;
+ fs->shadows = do_shadows;
+ /* initialise fire particles if any */
+ if ((fs->np)&&(fs->p == NULL)) {
+ if ((fs->p = (part *) calloc(fs->np, sizeof(part))) == NULL) {
+ free_fire(mi);
+ return;
+ }
+ }
+ else if (fs->r == NULL) {
+ /* initialise rain particles if no fire particles */
+ if ((fs->r = (rain *) calloc(NUMPART, sizeof(part))) == NULL) {
+ free_fire(mi);
+ return;
+ }
+ }
+
+ /* check tree number */
+ if (do_texture)
+ fs->num_trees = (num_trees<MAX_TREES)?num_trees:MAX_TREES;
+ else
+ fs->num_trees = 0;
+
+ fs->trackball = gltrackball_init (False);
+
+ /* xlock GL stuff */
+ if ((fs->glx_context = init_GL(mi)) != NULL) {
+
+#ifndef STANDALONE
+ Reshape(mi); /* xlock mode */
+#else
+ reshape_fire(mi,MI_WIDTH(mi),MI_HEIGHT(mi)); /* xscreensaver mode */
+#endif
+ glDrawBuffer(GL_BACK);
+ if (!Init(mi)) {
+ free_fire(mi);
+ return;
+ }
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void draw_fire(ModeInfo * mi)
+{
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ MI_IS_DRAWN(mi) = True;
+
+ if (!fs->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(fs->glx_context));
+
+ glShadeModel(GL_FLAT);
+ glEnable(GL_DEPTH_TEST);
+
+ /* makes particles blend with background */
+ if (!MI_IS_WIREFRAME(mi)||(!fs->np))
+ {
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ /* fog stuff */
+ glEnable(GL_FOG);
+ glFogi(GL_FOG_MODE, GL_EXP);
+ glFogfv(GL_FOG_COLOR, fogcolor);
+ glFogf(GL_FOG_DENSITY, 0.03);
+ glHint(GL_FOG_HINT, GL_NICEST);
+
+ glPushMatrix();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ DrawFire(mi);
+ glPopMatrix();
+#ifndef STANDALONE
+ Reshape(mi); /* xlock mode */
+#else
+ reshape_fire(mi,MI_WIDTH(mi),MI_HEIGHT(mi)); /* xscreensaver mode */
+#endif
+
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ * The display is being taken away from us. Free up malloc'ed
+ * memory and X resources that we've alloc'ed. Only called
+ * once, we must zap everything for every screen.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void release_fire(ModeInfo * mi)
+{
+ if (mode_font != None)
+ {
+ /* only free-ed when there are no more screens used */
+ XFreeFont(MI_DISPLAY(mi), mode_font);
+ mode_font = None;
+ }
+ FreeAllGL(mi);
+}
+
+ENTRYPOINT Bool
+fire_handle_event (ModeInfo *mi, XEvent *event)
+{
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, fs->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &fs->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+#ifndef STANDALONE
+ENTRYPOINT void change_fire(ModeInfo * mi)
+{
+ firestruct *fs = &fire[MI_SCREEN(mi)];
+
+ if (!fs->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(fs->glx_context));
+
+ /* if available, randomly change some values */
+ if (do_fog)
+ fs->fog = LRAND() & 1;
+ if (do_shadows)
+ fs->shadows = LRAND() & 1;
+ /* reset observer position */
+ frame = 0;
+ vinit(fs->obs, DEF_OBS[0], DEF_OBS[1], DEF_OBS[2]);
+ fs->v = 0.0;
+ /* particle randomisation */
+ fs->eject_r = 0.1 + NRAND(10) * 0.03;
+ fs->ridtri = 0.1 + NRAND(10) * 0.005;
+
+ if (MI_IS_DEBUG(mi)) {
+ (void) fprintf(stderr,
+ "%s:\n\tnum_part=%d\n\ttrees=%d\n\tfog=%s\n\tshadows=%s\n\teject_r=%.3f\n\tridtri=%.3f\n",
+ MI_NAME(mi),
+ fs->np,
+ fs->num_trees,
+ fs->fog ? "on" : "off",
+ fs->shadows ? "on" : "off",
+ fs->eject_r, fs->ridtri);
+ }
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE_2 ("GLForestFire", glforestfire, fire)
+
+#endif /* MODE_fire */
diff --git a/hacks/glx/glforestfire.man b/hacks/glx/glforestfire.man
new file mode 100644
index 0000000..aae3a25
--- /dev/null
+++ b/hacks/glx/glforestfire.man
@@ -0,0 +1,130 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "03-Oct-01" "X Version 11"
+.SH NAME
+glforestfire - draws a GL animation of sprinkling fire-like 3D triangles
+.SH SYNOPSIS
+.B glforestfire
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-count \fInumber_of_particles\fP]
+[\-trees \fInumber_of_trees\fP]
+[\-size \fIviewport_size\fP]
+[\-texture] [\-no-texture]
+[\-shadows] [\-no-shadows]
+[\-fog] [\-no-fog]
+[\-wireframe] [\-no-wireframe]
+[\-wander] [\-no-wander]
+[\-trackmouse] [\-no-trackmouse]
+[\-fps]
+.SH DESCRIPTION
+The \fIglforestfire\fP program draws an animation of sprinkling fire-like 3D triangles in
+a landscape filled with trees.
+.SH OPTIONS
+.I glforestfire
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-trees \fInumber_of_trees\fP\fP
+Specify how much trees are drawn in the landscape.
+.TP 8
+.B \-count \fInumber_of_particles\fP\fP
+Specify how much fire particles are drawn. A very special case is 0
+wich means that you get
+.B rain
+!
+.TP 8
+.B \-size \fIviewport_size\fP\fP
+Viewport of GL scene is specified size if greater than 32 and less than screensize. Default value is 0, meaning full screensize.
+.TP 8
+.B \-texture
+Show a textured ground and the trees. This is the default.
+.TP 8
+.B \-no\-texture
+Disables texturing the landscape. This implies that no trees are drawn.
+.TP 8
+.B \-shadows
+Show a shadow for each particle on the ground. This is the default.
+.TP 8
+.B \-no\-shadows
+Disables the drawing of the shadows.
+.TP 8
+.B \-fog
+Show a fog in the distance.
+.TP 8
+.B \-no\-fog
+Disables the fog. This is the default.
+.TP 8
+.B \-wander
+Move the observer around the landscape. This is the default.
+.TP 8
+.B \-no\-wander
+Keep the fire centered on the screen.
+.TP 8
+.B \-trackmouse
+Let the mouse be a joystick to change the view of the landscape.
+This implies
+.I \-no\-wander.
+.TP 8
+.B \-no\-trackmouse
+Disables mouse tracking. This is the default.
+.TP 8
+.B \-wire
+Draw a wireframe rendition of the fire: this will consist only of
+single-pixel lines for the triangles.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2001 by Eric Lassauge.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+
+The original code for this hack was written by David Bucciarelli
+(tech.hmw@plus.it) and could be found in the demo package
+of Mesa (Mesa-3.2/3Dfx/demos/). This hack is the result of the merge of
+two of the David's demos (fire and rain).
+
+.SH AUTHOR
+David Bucciarelli <tech.hmw@plus.it>
+Eric Lassauge <lassauge@mail.dotcom.fr>
diff --git a/hacks/glx/glhanoi.c b/hacks/glx/glhanoi.c
new file mode 100644
index 0000000..865930f
--- /dev/null
+++ b/hacks/glx/glhanoi.c
@@ -0,0 +1,2086 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* glhanoi, Copyright (c) 2005, 2009 Dave Atkinson <da@davea.org.uk>
+ * except noise function code Copyright (c) 2002 Ken Perlin
+ * Modified by Lars Huttar (c) 2010, to generalize to 4 or more poles
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#include <assert.h>
+
+#include "rotator.h"
+
+#define DEF_LIGHT "True"
+#define DEF_FOG "False"
+#define DEF_TEXTURE "True"
+#define DEF_POLES "0" /* choose random value */
+#define DEF_SPEED "1"
+#define DEF_TRAILS "2"
+
+#define DEFAULTS "*delay: 15000\n" \
+ "*count: 0\n" \
+ "*showFPS: False\n" \
+ "*wireframe: False\n"
+
+# define release_glhanoi 0
+
+/* polygon resolution of poles and disks */
+#define NSLICE 32
+#define NLOOPS 1
+
+/* How long to wait at start and finish (seconds). */
+#define START_DURATION 1.0
+#define FINISH_DURATION 1.0
+#define BASE_LENGTH 30.0
+#define BOARD_SQUARES 8
+
+/* Don't draw trail lines till they're this old (sec).
+ Helps trails not be "attached" to the disks. */
+#define TRAIL_START_DELAY 0.1
+
+#define MAX_CAMERA_RADIUS 250.0
+#define MIN_CAMERA_RADIUS 75.0
+
+#define MARBLE_SCALE 1.01
+
+#undef BELLRAND
+/* Return a double precision number in [0...n], with bell curve distribution. */
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+enum {
+ MARBLE_TEXURE,
+ N_TEXTURES
+};
+
+#define MARBLE_TEXTURE_SIZE 256
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include <math.h>
+#include "xlockmore.h"
+
+#ifdef USE_GL /* whole file */
+
+typedef struct timeval glhtime;
+
+static double getTime(void)
+{
+ struct timeval t;
+#ifdef GETTIMEOFDAY_TWO_ARGS
+ gettimeofday(&t, NULL);
+#else /* !GETTIMEOFDAY_TWO_ARGS */
+ gettimeofday(&t);
+#endif /* !GETTIMEOFDAY_TWO_ARGS */
+ return t.tv_sec + t.tv_usec / 1000000.0;
+}
+
+typedef enum {
+ START,
+ MOVE_DISK,
+ MOVE_FINISHED,
+ FINISHED,
+ MONEY_SHOT,
+ INVALID = -1
+} State;
+
+typedef struct {
+ int id;
+ GLuint displayList;
+ GLfloat position[3];
+ GLfloat rotation[3];
+ GLfloat color[4];
+ GLfloat base0;
+ GLfloat base1;
+ GLfloat height;
+ GLfloat xmin, xmax, ymin, zmin, zmax;
+ GLfloat u1, u2;
+ GLfloat t1, t2;
+ GLfloat ucostheta, usintheta;
+ GLfloat dx, dz;
+ GLdouble rotAngle; /* degree of "flipping" so far, during travel */
+ GLdouble phi; /* angle of motion in xz plane */
+ GLfloat speed;
+ int polys;
+} Disk;
+
+typedef struct {
+ Disk **data;
+ int count;
+ int size;
+ GLfloat position[3];
+} Pole;
+
+/* A SubProblem is a recursive subdivision of the problem, and means
+ "Move nDisks disks from src pole to dst pole, using the poles indicated in 'available'." */
+typedef struct {
+ int nDisks;
+ int src, dst;
+ unsigned long available; /* a bitmask of poles that have no smaller disks on them */
+} SubProblem;
+
+typedef struct {
+ GLfloat position[3];
+ double startTime, endTime;
+ Bool isEnd;
+} TrailPoint;
+
+typedef struct {
+ GLXContext *glx_context;
+ State state;
+ Bool wire;
+ Bool fog;
+ Bool light;
+ Bool layoutLinear;
+ GLfloat trailDuration;
+ double startTime;
+ double lastTime;
+ double duration;
+ int numberOfDisks;
+ int numberOfPoles;
+ int numberOfMoves;
+ int maxDiskIdx;
+ int magicNumber;
+ Disk *currentDisk;
+ int move;
+ /* src, tmp, dst: index of pole that is source / storage / destination for
+ current move */
+ int src;
+ int tmp;
+ int dst;
+ int oldsrc;
+ int oldtmp;
+ int olddst;
+ GLfloat speed; /* coefficient for how fast the disks move */
+ SubProblem *solveStack;
+ int solveStackSize, solveStackIdx;
+ Pole *pole;
+ float boardSize;
+ float baseLength;
+ float baseWidth;
+ float baseHeight;
+ float poleRadius;
+ float poleHeight;
+ float poleOffset;
+ float poleDist; /* distance of poles from center, for round layout */
+ float diskHeight;
+ float maxDiskRadius;
+ float *diskPos; /* pre-computed disk positions on rods */
+ Disk *disk;
+ GLint floorList;
+ GLint baseList;
+ GLint poleList;
+ int floorpolys, basepolys, polepolys;
+ int trailQSize;
+ TrailPoint *trailQ;
+ int trailQFront, trailQBack;
+ GLfloat camera[3];
+ GLfloat centre[3];
+ rotator *the_rotator;
+ Bool button_down_p;
+ Bool texture;
+ GLuint textureNames[N_TEXTURES];
+ int drag_x;
+ int drag_y;
+ int noise_initted;
+ int p[512];
+} glhcfg;
+
+static glhcfg *glhanoi_cfg = NULL;
+static Bool fog;
+static Bool light;
+static Bool texture;
+static GLfloat trails;
+static int poles;
+static GLfloat speed;
+
+static XrmOptionDescRec opts[] = {
+ {"-light", ".glhanoi.light", XrmoptionNoArg, "true"},
+ {"+light", ".glhanoi.light", XrmoptionNoArg, "false"},
+ {"-fog", ".glhanoi.fog", XrmoptionNoArg, "true"},
+ {"+fog", ".glhanoi.fog", XrmoptionNoArg, "false"},
+ {"-texture", ".glhanoi.texture", XrmoptionNoArg, "true"},
+ {"+texture", ".glhanoi.texture", XrmoptionNoArg, "false"},
+ {"-trails", ".glhanoi.trails", XrmoptionSepArg, 0},
+ {"-poles", ".glhanoi.poles", XrmoptionSepArg, 0 },
+ {"-speed", ".glhanoi.speed", XrmoptionSepArg, 0 }
+};
+
+static argtype vars[] = {
+ {&light, "light", "Light", DEF_LIGHT, t_Bool},
+ {&fog, "fog", "Fog", DEF_FOG, t_Bool},
+ {&texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&trails, "trails", "Trails", DEF_TRAILS, t_Float},
+ {&poles, "poles", "Poles", DEF_POLES, t_Int},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float}
+};
+
+static OptionStruct desc[] = {
+ {"+/-light", "whether to light the scene"},
+ {"+/-fog", "whether to apply fog to the scene"},
+ {"+/-texture", "whether to apply texture to the scene"},
+ {"-trails t", "how long of disk trails to show (sec.)"},
+ {"-poles r", "number of poles to move disks between"},
+ {"-speed s", "speed multiplier"}
+};
+
+ENTRYPOINT ModeSpecOpt glhanoi_opts = { countof(opts), opts, countof(vars), vars, desc };
+
+#ifdef USE_MODULES
+
+ModStruct glhanoi_description = {
+ "glhanoi", "init_glhanoi", "draw_glhanoi", NULL,
+ "draw_glhanoi", "init_glhanoi", "free_glhanoi", &glhanoi_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Towers of Hanoi", 0, NULL
+};
+
+#endif
+
+static const GLfloat cBlack[] = { 0.0, 0.0, 0.0, 1.0 };
+static const GLfloat cWhite[] = { 1.0, 1.0, 1.0, 1.0 };
+static const GLfloat poleColor[] = { 0.545, 0.137, 0.137 };
+static const GLfloat baseColor[] = { 0.34, 0.34, 0.48 };
+/* static const GLfloat baseColor[] = { 0.545, 0.137, 0.137 }; */
+static const GLfloat fogcolor[] = { 0.5, 0.5, 0.5 };
+static GLfloat trailColor[] = { 1.0, 1.0, 1.0, 0.5 };
+
+static const float left[] = { 1.0, 0.0, 0.0 };
+static const float up[] = { 0.0, 1.0, 0.0 };
+static const float front[] = { 0.0, 0.0, 1.0 };
+static const float right[] = { -1.0, 0.0, 0.0 };
+static const float down[] = { 0.0, -1.0, 0.0 };
+static const float back[] = { 0.0, 0.0, -1.0 };
+
+static const GLfloat pos0[4] = { 50.0, 50.0, 50.0, 0.0 };
+static const GLfloat amb0[4] = { 0.0, 0.0, 0.0, 1.0 };
+static const GLfloat dif0[4] = { 1.0, 1.0, 1.0, 1.0 };
+static const GLfloat spc0[4] = { 0.0, 1.0, 1.0, 1.0 };
+
+static const GLfloat pos1[4] = { -50.0, 50.0, -50.0, 0.0 };
+static const GLfloat amb1[4] = { 0.0, 0.0, 0.0, 1.0 };
+static const GLfloat dif1[4] = { 1.0, 1.0, 1.0, 1.0 };
+static const GLfloat spc1[4] = { 1.0, 1.0, 1.0, 1.0 };
+
+static float g = 3.0 * 9.80665; /* hmm, looks like we need more gravity, Scotty... */
+
+static void checkAllocAndExit(Bool item, char *descr) {
+ if (!item) {
+ fprintf(stderr, "%s: unable to allocate memory for %s\n",
+ progname, descr);
+ exit(EXIT_FAILURE);
+ }
+}
+
+#define DOPUSH(X, Y) (((X)->count) >= ((X)->size)) ? NULL : ((X)->data[(X)->count++] = (Y))
+#define DOPOP(X) (X)->count <= 0 ? NULL : ((X)->data[--((X)->count)])
+
+/* push disk d onto pole idx */
+static Disk *push(glhcfg *glhanoi, int idx, Disk * d)
+{
+ return DOPUSH(&glhanoi->pole[idx], d);
+}
+
+/* pop the top disk from pole idx */
+static Disk *pop(glhcfg *glhanoi, int idx)
+{
+ return DOPOP(&glhanoi->pole[idx]);
+}
+
+static inline void swap(int *x, int *y)
+{
+ *x = *x ^ *y;
+ *y = *x ^ *y;
+ *x = *x ^ *y;
+}
+
+/*
+ * magic - it's magic...
+ * Return 1 if the number of trailing zeroes on i is even, unless i is 1 or 0.
+ */
+static int magic(int i)
+{
+ int count = 0;
+ if(i <= 1)
+ return 0;
+ while((i & 0x01) == 0) {
+ i >>= 1;
+ count++;
+ }
+ return count % 2 == 0;
+}
+
+static float distance(float *p0, float *p1)
+{
+ float x, y, z;
+ x = p1[0] - p0[0];
+ y = p1[1] - p0[1];
+ z = p1[2] - p0[2];
+ return (float)sqrt(x * x + y * y + z * z);
+}
+
+/* What is this for?
+ = c / (a b - 0.25 (a^2 + 2 a b + b^2) )
+ = c / (-0.25 (a^2 - 2 a b + b^2) )
+ = c / (-0.25 ((a - b)(a - b)))
+ = -4 c / (a - b)^2
+static GLfloat A(GLfloat a, GLfloat b, GLfloat c)
+{
+ GLfloat sum = a + b;
+ return c / (a * b - 0.25 * sum * sum);
+}
+*/
+
+static void moveSetup(glhcfg *glhanoi, Disk * disk)
+{
+ float h, ymax;
+ float u;
+ int src = glhanoi->src;
+ int dst = glhanoi->dst;
+ GLfloat theta;
+ GLfloat sintheta, costheta;
+ double dh;
+ double dx, dz; /* total x and z distances from src to dst */
+ Pole *poleSrc, *poleDst;
+
+ poleSrc = &(glhanoi->pole[src]);
+ poleDst = &(glhanoi->pole[dst]);
+
+ disk->xmin = poleSrc->position[0];
+ /* glhanoi->poleOffset * (src - (glhanoi->numberOfPoles - 1.0f) * 0.5); */
+ disk->xmax = poleDst->position[0];
+ /* disk->xmax = glhanoi->poleOffset * (dst - (glhanoi->numberOfPoles - 1.0f) * 0.5); */
+ disk->ymin = glhanoi->poleHeight;
+ disk->zmin = poleSrc->position[2];
+ disk->zmax = poleDst->position[2];
+
+ dx = disk->xmax - disk->xmin;
+ dz = disk->zmax - disk->zmin;
+
+ if(glhanoi->state != FINISHED) {
+ double xxx = ((dx < 0) ? 180.0 : -180.0);
+ if(random() % 6 == 0) {
+ disk->rotAngle = xxx * (2 - 2 * random() % 2) * (random() % 3 + 1);
+ } else {
+ disk->rotAngle = xxx;
+ }
+ if(random() % 4 == 0) {
+ /* Backflip */
+ disk->rotAngle = -disk->rotAngle;
+ }
+ } else {
+ disk->rotAngle = -180.0;
+ }
+
+ disk->base0 = glhanoi->diskPos[poleSrc->count];
+ disk->base1 = (glhanoi->state == FINISHED) ?
+ disk->base0 : glhanoi->diskPos[poleDst->count];
+
+ /* horizontal distance to travel? */
+ /* was: absx = sqrt(disk->xmax - disk->xmin); */
+ dh = distance(poleSrc->position, poleDst->position);
+ /* absx = sqrt(dh); */
+ ymax = glhanoi->poleHeight + dh;
+ if(glhanoi->state == FINISHED) {
+ ymax += dh * (double)(glhanoi->numberOfDisks - disk->id);
+ }
+ h = ymax - disk->ymin;
+ /* A(a, b, c) = -4 c / (a - b)^2 */
+ /* theta = atan(4 h / (b - a)) */
+ theta = atan(4 * h / dh);
+ if(theta < 0.0)
+ theta += M_PI;
+ costheta = cos(theta);
+ sintheta = sin(theta);
+ u = (float)
+ sqrt(fabs
+ (-g /
+ /* (2.0 * A(disk->xmin, disk->xmax, h) * costheta * costheta))); */
+ (2.0 * -4 * h / (dh * dh) * costheta * costheta)));
+ disk->usintheta = u * sintheta;
+ disk->ucostheta = u * costheta;
+ /* Not to be confused: disk->dx is the per-time-unit portion of dx */
+ disk->dx = disk->ucostheta * dx / dh;
+ disk->dz = disk->ucostheta * dz / dh;
+ disk->t1 =
+ (-u + sqrt(u * u + 2.0 * g * fabs(disk->ymin - disk->base0))) / g;
+ disk->u1 = u + g * disk->t1;
+ disk->t2 = 2.0 * disk->usintheta / g;
+ disk->u2 = disk->usintheta - g * disk->t2;
+
+ /* Compute direction of travel, in the XZ plane. */
+ disk->phi = atan(dz / dx);
+ disk->phi *= 180.0 / M_PI; /* convert radians to degrees */
+}
+
+/* For debugging: show a value as a string of ones and zeroes
+static const char *byteToBinary(int x) {
+ static char b[9];
+ int i, z;
+
+ for (z = 128, i = 0; z > 0; z >>= 1, i++) {
+ b[i] = ((x & z) == z) ? '1' : '0';
+ }
+ b[i] = '\0';
+
+ return b;
+}
+*/
+
+static void pushMove(glhcfg *glhanoi, int n, int src, int dst, int avail) {
+ SubProblem *sp = &(glhanoi->solveStack[glhanoi->solveStackIdx++]);
+
+ if (glhanoi->solveStackIdx > glhanoi->solveStackSize) {
+ fprintf(stderr, "solveStack overflow: pushed index %d: %d from %d to %d, using %d\n",
+ glhanoi->solveStackIdx, n, src, dst, avail);
+ exit(EXIT_FAILURE);
+ }
+
+ sp->nDisks = n;
+ sp->src = src;
+ sp->dst = dst;
+ sp->available = avail & ~((unsigned long)(1 << src))
+ & ~((unsigned long)(1 << dst));
+ /*
+ fprintf(stderr, "Debug: > pushed solveStack %d: %d from %d to %d, using %s\n",
+ glhanoi->solveStackIdx - 1, n, src, dst, byteToBinary(sp->available));
+ */
+}
+
+static Bool solveStackEmpty(glhcfg *glhanoi) {
+ return (glhanoi->solveStackIdx < 1);
+}
+
+static SubProblem *popMove(glhcfg *glhanoi) {
+ SubProblem *sp;
+ if (solveStackEmpty(glhanoi)) return (SubProblem *)NULL;
+ sp = &(glhanoi->solveStack[--glhanoi->solveStackIdx]);
+ /* fprintf(stderr, "Debug: < popped solveStack %d: %d from %d to %d, using %s\n",
+ glhanoi->solveStackIdx, sp->nDisks, sp->src, sp->dst, byteToBinary(sp->available)); */
+ return sp;
+}
+
+/* Return number of bits set in b */
+static int numBits(unsigned long b) {
+ int count = 0;
+ while (b) {
+ count += b & 0x1u;
+ b >>= 1;
+ }
+ return count;
+}
+
+/* Return index (power of 2) of least significant 1 bit. */
+static int bitScan(unsigned long b) {
+ int count;
+ for (count = 0; b; count++, b >>= 1) {
+ if (b & 0x1u) return count;
+ }
+ return -1;
+}
+
+/* A bit pattern representing all poles */
+#define ALL_POLES ((1 << glhanoi->numberOfPoles) - 1)
+
+#define REMOVE_BIT(a, b) ((a) & ~(1 << (b)))
+#define ADD_BIT(a, b) ((a) | (1 << (b)))
+
+static void makeMove(glhcfg *glhanoi)
+{
+ if (glhanoi->numberOfPoles == 3) {
+ int fudge = glhanoi->move + 2;
+ int magicNumber = magic(fudge);
+
+
+ glhanoi->currentDisk = pop(glhanoi, glhanoi->src);
+ moveSetup(glhanoi, glhanoi->currentDisk);
+ push(glhanoi, glhanoi->dst, glhanoi->currentDisk);
+
+ fudge = fudge % 2;
+
+ if(fudge == 1 || magicNumber) {
+ swap(&glhanoi->src, &glhanoi->tmp);
+ }
+ if(fudge == 0 || glhanoi->magicNumber) {
+ swap(&glhanoi->dst, &glhanoi->tmp);
+ }
+ glhanoi->magicNumber = magicNumber;
+ } else {
+ SubProblem sp;
+ int tmp = 0;
+
+ if (glhanoi->move == 0) {
+ /* Initialize the solution stack. Original problem:
+ move all disks from pole 0 to furthest pole,
+ using all other poles. */
+ pushMove(glhanoi, glhanoi->numberOfDisks, 0,
+ glhanoi->numberOfPoles - 1,
+ REMOVE_BIT(REMOVE_BIT(ALL_POLES, 0), glhanoi->numberOfPoles - 1));
+ }
+
+ while (!solveStackEmpty(glhanoi)) {
+ int k, numAvail;
+ sp = *popMove(glhanoi);
+
+ if (sp.nDisks == 1) {
+ /* We have a single, concrete move to do. */
+ /* moveSetup uses glhanoi->src, dst. */
+ glhanoi->src = sp.src;
+ glhanoi->dst = sp.dst;
+ glhanoi->tmp = tmp; /* Probably unnecessary */
+
+ glhanoi->currentDisk = pop(glhanoi, sp.src);
+ moveSetup(glhanoi, glhanoi->currentDisk);
+ push(glhanoi, sp.dst, glhanoi->currentDisk);
+
+ return;
+ } else {
+ /* Divide and conquer, using Frame-Stewart algorithm, until we get to base case */
+ if (sp.nDisks == 1) break;
+
+ numAvail = numBits(sp.available);
+ if (numAvail < 2) k = sp.nDisks - 1;
+ else if(numAvail >= sp.nDisks - 2) k = 1;
+ /* heuristic for optimal k: sqrt(2n) (see http://www.cs.wm.edu/~pkstoc/boca.pdf) */
+ else k = (int)(sqrt(2 * sp.nDisks));
+
+ if (k >= sp.nDisks) k = sp.nDisks - 1;
+ else if (k < 1) k = 1;
+
+ tmp = bitScan(sp.available);
+ /* fprintf(stderr, "Debug: k is %d, tmp is %d\n", k, tmp); */
+ if (tmp == -1) {
+ fprintf(stderr, "Error: n > 1 (%d) and no poles available\n",
+ sp.nDisks);
+ }
+
+ /* Push on moves in reverse order, since this is a stack. */
+ pushMove(glhanoi, k, tmp, sp.dst,
+ REMOVE_BIT(ADD_BIT(sp.available, sp.src), tmp));
+ pushMove(glhanoi, sp.nDisks - k, sp.src, sp.dst,
+ REMOVE_BIT(sp.available, tmp));
+ pushMove(glhanoi, k, sp.src, tmp,
+ REMOVE_BIT(ADD_BIT(sp.available, sp.dst), tmp));
+
+ /* Repeat until we've found a move we can make. */
+ }
+ }
+ }
+}
+
+static double lerp(double alpha, double start, double end)
+{
+ return start + alpha * (end - start);
+}
+
+static void upfunc(GLdouble t, Disk * d)
+{
+ d->position[0] = d->xmin;
+ d->position[1] = d->base0 + (d->u1 - 0.5 * g * t) * t;
+ d->position[2] = d->zmin;
+
+ d->rotation[1] = 0.0;
+}
+
+static void parafunc(GLdouble t, Disk * d)
+{
+ /* ##was: d->position[0] = d->xmin + d->ucostheta * t; */
+ d->position[0] = d->xmin + d->dx * t;
+ d->position[2] = d->zmin + d->dz * t;
+ d->position[1] = d->ymin + (d->usintheta - 0.5 * g * t) * t;
+
+ d->rotation[1] = d->rotAngle * t / d->t2;
+ /* d->rotAngle * (d->position[0] - d->xmin) / (d->xmax - d->xmin); */
+}
+
+static void downfunc(GLdouble t, Disk * d)
+{
+ d->position[0] = d->xmax;
+ d->position[1] = d->ymin + (d->u2 - 0.5 * g * t) * t;
+ d->position[2] = d->zmax;
+
+ d->rotation[1] = 0.0;
+}
+
+#define normalizeQ(i) ((i) >= glhanoi->trailQSize ? (i) - glhanoi->trailQSize : (i))
+#define normalizeQNeg(i) ((i) < 0 ? (i) + glhanoi->trailQSize : (i))
+
+/* Add trail point at position posn at time t onto back of trail queue.
+ Removes old trails if necessary to make room. */
+static void enQTrail(glhcfg *glhanoi, GLfloat *posn)
+{
+ if (glhanoi->trailQSize && glhanoi->state != MONEY_SHOT) {
+ TrailPoint *tp = &(glhanoi->trailQ[glhanoi->trailQBack]);
+ double t = getTime();
+
+ tp->position[0] = posn[0];
+ tp->position[1] = posn[1] + glhanoi->diskHeight;
+ /* Slight jitter to prevent clashing with other trails */
+ tp->position[2] = posn[2] + (glhanoi->move % 23) * 0.01;
+ tp->startTime = t + TRAIL_START_DELAY;
+ tp->endTime = t + TRAIL_START_DELAY + glhanoi->trailDuration;
+ tp->isEnd = False;
+
+ /* Update queue back/front indices */
+ glhanoi->trailQBack = normalizeQ(glhanoi->trailQBack + 1);
+ if (glhanoi->trailQBack == glhanoi->trailQFront)
+ glhanoi->trailQFront = normalizeQ(glhanoi->trailQFront + 1);
+ }
+}
+
+/* Mark last trailpoint in queue as the end of a trail. */
+/* was: #define endTrail(glh) ((glh)->trailQ[(glh)->trailQBack].isEnd = True) */
+static void endTrail(glhcfg *glhanoi) {
+ if (glhanoi->trailQSize)
+ glhanoi->trailQ[normalizeQNeg(glhanoi->trailQBack - 1)].isEnd = True;
+}
+
+/* Update disk d's position and rotation based on time t.
+ Returns true iff move is finished. */
+static Bool computePosition(glhcfg *glhanoi, GLfloat t, Disk * d)
+{
+ Bool finished = False;
+
+ if(t < d->t1) {
+ upfunc(t, d);
+ } else if(t < d->t1 + d->t2) {
+ parafunc(t - d->t1, d);
+ enQTrail(glhanoi, d->position);
+ } else {
+ downfunc(t - d->t1 - d->t2, d);
+ if(d->position[1] <= d->base1) {
+ d->position[1] = d->base1;
+ finished = True;
+ endTrail(glhanoi);
+ }
+ }
+ return finished;
+}
+
+static void updateView(glhcfg *glhanoi)
+{
+ double longitude, latitude, radius;
+ double a, b, c, A, B;
+
+ get_position(glhanoi->the_rotator, NULL, NULL, &radius,
+ !glhanoi->button_down_p);
+ get_rotation(glhanoi->the_rotator, &longitude, &latitude, NULL,
+ !glhanoi->button_down_p);
+ longitude += glhanoi->camera[0];
+ latitude += glhanoi->camera[1];
+ radius += glhanoi->camera[2];
+ /* FUTURE: tweak this to be smooth: */
+ longitude = longitude - floor(longitude);
+ latitude = latitude - floor(latitude);
+ radius = radius - floor(radius);
+ if(latitude > 0.5) {
+ latitude = 1.0 - latitude;
+ }
+ if(radius > 0.5) {
+ radius = 1.0 - radius;
+ }
+
+ b = glhanoi->centre[1];
+ c = (MIN_CAMERA_RADIUS +
+ radius * (MAX_CAMERA_RADIUS - MIN_CAMERA_RADIUS));
+ A = M_PI / 4.0 * (1.0 - latitude);
+ a = sqrt(b * b + c * c - 2.0 * b * c * cos(A));
+ B = asin(sin(A) * b / a);
+ glRotatef(-B * 180 / M_PI, 1.0, 0.0, 0.0);
+
+ glTranslatef(0.0f, 0.0f,
+ -(MIN_CAMERA_RADIUS +
+ radius * (MAX_CAMERA_RADIUS - MIN_CAMERA_RADIUS)));
+ glRotatef(longitude * 360.0, 0.0f, 1.0f, 0.0f);
+ glRotatef(latitude * 180.0, cos(longitude * 2.0 * M_PI), 0.0,
+ sin(longitude * 2.0 * M_PI));
+}
+
+static void changeState(glhcfg *glhanoi, State state)
+{
+ glhanoi->state = state;
+ glhanoi->startTime = getTime();
+}
+
+static Bool finishedHanoi(glhcfg *glhanoi) {
+ /* use different criteria depending on algorithm */
+ return (glhanoi->numberOfPoles == 3 ?
+ glhanoi->move >= glhanoi->numberOfMoves :
+ solveStackEmpty(glhanoi));
+}
+
+static void update_glhanoi(glhcfg *glhanoi)
+{
+ double t = getTime() - glhanoi->startTime;
+ int i;
+ Bool done;
+
+ switch (glhanoi->state) {
+ case START:
+ if(t < glhanoi->duration) {
+ break;
+ }
+ glhanoi->move = 0;
+ if(glhanoi->numberOfDisks % 2 == 0) {
+ swap(&glhanoi->tmp, &glhanoi->dst);
+ }
+ glhanoi->magicNumber = 1;
+ makeMove(glhanoi);
+ changeState(glhanoi, MOVE_DISK);
+ break;
+
+ case MOVE_DISK:
+ if(computePosition(glhanoi, t * glhanoi->currentDisk->speed, glhanoi->currentDisk)) {
+ changeState(glhanoi, MOVE_FINISHED);
+ }
+ break;
+
+ case MOVE_FINISHED:
+ ++glhanoi->move;
+ if(!finishedHanoi(glhanoi)) {
+ makeMove(glhanoi);
+ changeState(glhanoi, MOVE_DISK);
+ } else {
+ glhanoi->duration = FINISH_DURATION;
+ changeState(glhanoi, FINISHED);
+ }
+ break;
+
+ case FINISHED:
+ if (t < glhanoi->duration)
+ break;
+ glhanoi->src = glhanoi->olddst;
+ glhanoi->dst = glhanoi->oldsrc;
+ for(i = 0; i < glhanoi->numberOfDisks; ++i) {
+ Disk *disk = pop(glhanoi, glhanoi->src);
+ assert(disk != NULL);
+ moveSetup(glhanoi, disk);
+ }
+ for(i = glhanoi->maxDiskIdx; i >= 0; --i) {
+ push(glhanoi, glhanoi->dst, &glhanoi->disk[i]);
+ }
+ changeState(glhanoi, MONEY_SHOT);
+ break;
+
+ case MONEY_SHOT:
+ done = True;
+ for(i = glhanoi->maxDiskIdx; i >= 0; --i) {
+ double delay = 0.25 * i;
+ int finished;
+
+ if(t - delay < 0) {
+ done = False;
+ continue;
+ }
+
+ finished = computePosition(glhanoi, t - delay, &glhanoi->disk[i]);
+ glhanoi->disk[i].rotation[1] = 0.0;
+
+ if(!finished) {
+ done = False;
+ }
+ }
+ if(done) {
+ glhanoi->src = glhanoi->oldsrc;
+ glhanoi->tmp = glhanoi->oldtmp;
+ glhanoi->dst = glhanoi->olddst;
+ changeState(glhanoi, START);
+ }
+ break;
+
+ case INVALID:
+ default:
+ fprintf(stderr, "Invalid state\n");
+ break;
+ }
+}
+
+static void HSVtoRGBf(GLfloat h, GLfloat s, GLfloat v,
+ GLfloat * r, GLfloat * g, GLfloat * b)
+{
+ if(s == 0.0) {
+ *r = v;
+ *g = v;
+ *b = v;
+ } else {
+ GLfloat i, f, p, q, t;
+ if(h >= 360.0) {
+ h = 0.0;
+ }
+ h /= 60.0; /* h now in [0,6). */
+ i = floor((double)h); /* i now largest integer <= h */
+ f = h - i; /* f is no fractional part of h */
+ p = v * (1.0 - s);
+ q = v * (1.0 - (s * f));
+ t = v * (1.0 - (s * (1.0 - f)));
+ switch ((int)i) {
+ case 0:
+ *r = v;
+ *g = t;
+ *b = p;
+ break;
+ case 1:
+ *r = q;
+ *g = v;
+ *b = p;
+ break;
+ case 2:
+ *r = p;
+ *g = v;
+ *b = t;
+ break;
+ case 3:
+ *r = p;
+ *g = q;
+ *b = v;
+ break;
+ case 4:
+ *r = t;
+ *g = p;
+ *b = v;
+ break;
+ case 5:
+ *r = v;
+ *g = p;
+ *b = q;
+ break;
+ }
+ }
+}
+
+static void HSVtoRGBv(GLfloat * hsv, GLfloat * rgb)
+{
+ HSVtoRGBf(hsv[0], hsv[1], hsv[2], &rgb[0], &rgb[1], &rgb[2]);
+}
+
+static void setMaterial(const GLfloat color[3], const GLfloat hlite[3], int shininess)
+{
+ glColor3fv(color);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, hlite);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glMateriali(GL_FRONT, GL_SHININESS, shininess); /* [0,128] */
+}
+
+/*
+ * drawTube: I know all this stuff is available in gluQuadrics
+ * but I'd originally intended to texture the poles with a 3D wood
+ * texture, but I was having difficulty getting wood... what? Why
+ * are all you Amercians laughing..? Anyway, I don't know if enough
+ * people's hardware supports 3D textures, so I didn't bother (xorg
+ * ATI server doesn't :-( )
+ */
+static int drawTube(GLdouble bottomRadius, GLdouble topRadius,
+ GLdouble bottomThickness, GLdouble topThickness,
+ GLdouble height, GLuint nSlice, GLuint nLoop)
+{
+ int polys = 0;
+ GLfloat y;
+ GLfloat *cosCache = malloc(sizeof(GLfloat) * nSlice);
+ GLfloat *sinCache = malloc(sizeof(GLfloat) * nSlice);
+ GLint slice;
+ GLuint loop;
+ GLint lastSlice = nSlice - 1;
+ GLfloat radius;
+ GLfloat innerRadius;
+
+ if(bottomThickness > bottomRadius) {
+ bottomThickness = bottomRadius;
+ }
+ if(topThickness > topRadius) {
+ topThickness = topRadius;
+ }
+ if(bottomThickness < 0.0) {
+ bottomThickness = 0.0;
+ }
+ if(topThickness < 0.0) {
+ topThickness = 0.0;
+ }
+/* if(topRadius >= bottomRadius) {
+ maxRadius = topRadius;
+ } else {
+ maxRadius = bottomRadius;
+ } */
+
+ /* bottom */
+ y = 0.0;
+ radius = bottomRadius;
+ innerRadius = bottomRadius - bottomThickness;
+ /* innerTexCoordSize = texCoordSize * innerRadius / maxRadius; */
+ /* outerTexCoordSize = texCoordSize * radius / maxRadius; */
+ /* yTexCoord = minTexCoord; */
+
+ glBegin(GL_QUAD_STRIP);
+
+ glNormal3f(0.0, -1.0, 0.0);
+
+ /* glTexCoord3f(midTexCoord, yTexCoord, midTexCoord + innerTexCoordSize); */
+ glVertex3f(0.0, y, innerRadius);
+
+ /* glTexCoord3f(midTexCoord, yTexCoord, midTexCoord + outerTexCoordSize); */
+ glVertex3f(0.0, y, radius);
+
+ for(slice = lastSlice; slice >= 0; --slice) {
+ GLfloat theta = 2.0 * M_PI * (double)slice / nSlice;
+
+ cosCache[slice] = cos(theta);
+ sinCache[slice] = sin(theta);
+
+ /* glTexCoord3f(midTexCoord + sinCache[slice] * innerTexCoordSize, */
+ /* yTexCoord, */
+ /* midTexCoord + cosCache[slice] * innerTexCoordSize); */
+ glVertex3f(innerRadius * sinCache[slice], y,
+ innerRadius * cosCache[slice]);
+ /* glTexCoord3f(midTexCoord + sinCache[slice] * outerTexCoordSize, */
+ /* yTexCoord, */
+ /* midTexCoord + cosCache[slice] * outerTexCoordSize); */
+ glVertex3f(radius * sinCache[slice], y, radius * cosCache[slice]);
+ polys++;
+ }
+ glEnd();
+
+ /* middle */
+ for(loop = 0; loop < nLoop; ++loop) {
+ GLfloat lowerRadius =
+ bottomRadius + (topRadius -
+ bottomRadius) * (float)loop / (nLoop);
+ GLfloat upperRadius =
+ bottomRadius + (topRadius - bottomRadius) * (float)(loop +
+ 1) /
+ (nLoop);
+ GLfloat lowerY = height * (float)loop / (nLoop);
+ GLfloat upperY = height * (float)(loop + 1) / (nLoop);
+ GLfloat factor = (topRadius - topThickness) -
+ (bottomRadius - bottomThickness);
+
+ /* outside */
+ glBegin(GL_QUAD_STRIP);
+ for(slice = 0; slice < nSlice; ++slice) {
+ glNormal3f(sinCache[slice], 0.0, cosCache[slice]);
+ glVertex3f(upperRadius * sinCache[slice], upperY,
+ upperRadius * cosCache[slice]);
+ glVertex3f(lowerRadius * sinCache[slice], lowerY,
+ lowerRadius * cosCache[slice]);
+ polys++;
+ }
+ glNormal3f(0.0, 0.0, 1.0);
+ glVertex3f(0.0, upperY, upperRadius);
+ glVertex3f(0.0, lowerY, lowerRadius);
+ polys++;
+ glEnd();
+
+ /* inside */
+ lowerRadius = bottomRadius - bottomThickness +
+ factor * (float)loop / (nLoop);
+ upperRadius = bottomRadius - bottomThickness +
+ factor * (float)(loop + 1) / (nLoop);
+
+ glBegin(GL_QUAD_STRIP);
+ glNormal3f(0.0, 0.0, -1.0);
+ glVertex3f(0.0, upperY, upperRadius);
+ glVertex3f(0.0, lowerY, lowerRadius);
+ for(slice = lastSlice; slice >= 0; --slice) {
+ glNormal3f(-sinCache[slice], 0.0, -cosCache[slice]);
+ glVertex3f(upperRadius * sinCache[slice], upperY,
+ upperRadius * cosCache[slice]);
+ glVertex3f(lowerRadius * sinCache[slice], lowerY,
+ lowerRadius * cosCache[slice]);
+ polys++;
+ }
+ glEnd();
+ }
+
+ /* top */
+ y = height;
+ radius = topRadius;
+ innerRadius = topRadius - topThickness;
+
+ glBegin(GL_QUAD_STRIP);
+ glNormal3f(0.0, 1.0, 0.0);
+ for(slice = 0; slice < nSlice; ++slice) {
+ glVertex3f(innerRadius * sinCache[slice], y,
+ innerRadius * cosCache[slice]);
+
+ glVertex3f(radius * sinCache[slice], y, radius * cosCache[slice]);
+ polys++;
+ }
+ glVertex3f(0.0, y, innerRadius);
+ glVertex3f(0.0, y, radius);
+ glEnd();
+ return polys;
+}
+
+static int drawPole(GLfloat radius, GLfloat length)
+{
+ return drawTube(radius, radius, radius, radius, length, NSLICE, NLOOPS);
+}
+
+static int drawDisk3D(GLdouble inner_radius, GLdouble outer_radius,
+ GLdouble height)
+{
+ return drawTube(outer_radius, outer_radius, outer_radius - inner_radius,
+ outer_radius - inner_radius, height, NSLICE, NLOOPS);
+}
+
+/* used for drawing base */
+static int drawCuboid(GLfloat length, GLfloat width, GLfloat height)
+{
+ GLfloat xmin = -length / 2.0f;
+ GLfloat xmax = length / 2.0f;
+ GLfloat zmin = -width / 2.0f;
+ GLfloat zmax = width / 2.0f;
+ GLfloat ymin = 0.0f;
+ GLfloat ymax = height;
+ int polys = 0;
+
+ glBegin(GL_QUADS);
+ /* front */
+ glNormal3fv(front);
+ glVertex3f(xmin, ymin, zmax); /* 0 */
+ glVertex3f(xmax, ymin, zmax); /* 1 */
+ glVertex3f(xmax, ymax, zmax); /* 2 */
+ glVertex3f(xmin, ymax, zmax); /* 3 */
+ polys++;
+ /* right */
+ glNormal3fv(right);
+ glVertex3f(xmax, ymin, zmax); /* 1 */
+ glVertex3f(xmax, ymin, zmin); /* 5 */
+ glVertex3f(xmax, ymax, zmin); /* 6 */
+ glVertex3f(xmax, ymax, zmax); /* 2 */
+ polys++;
+ /* back */
+ glNormal3fv(back);
+ glVertex3f(xmax, ymin, zmin); /* 5 */
+ glVertex3f(xmin, ymin, zmin); /* 4 */
+ glVertex3f(xmin, ymax, zmin); /* 7 */
+ glVertex3f(xmax, ymax, zmin); /* 6 */
+ polys++;
+ /* left */
+ glNormal3fv(left);
+ glVertex3f(xmin, ymin, zmin); /* 4 */
+ glVertex3f(xmin, ymin, zmax); /* 0 */
+ glVertex3f(xmin, ymax, zmax); /* 3 */
+ glVertex3f(xmin, ymax, zmin); /* 7 */
+ polys++;
+ /* top */
+ glNormal3fv(up);
+ glVertex3f(xmin, ymax, zmax); /* 3 */
+ glVertex3f(xmax, ymax, zmax); /* 2 */
+ glVertex3f(xmax, ymax, zmin); /* 6 */
+ glVertex3f(xmin, ymax, zmin); /* 7 */
+ polys++;
+ /* bottom */
+ glNormal3fv(down);
+ glVertex3f(xmin, ymin, zmin); /* 4 */
+ glVertex3f(xmax, ymin, zmin); /* 5 */
+ glVertex3f(xmax, ymin, zmax); /* 1 */
+ glVertex3f(xmin, ymin, zmax); /* 0 */
+ polys++;
+ glEnd();
+ return polys;
+}
+
+/* Set normal vector in xz plane, based on rotation around center. */
+static void setNormalV(glhcfg *glhanoi, GLfloat theta, int y1, int y2, int r1) {
+ if (y1 == y2) /* up/down */
+ glNormal3f(0.0, y1 ? 1.0 : -1.0, 0.0);
+ else if (!r1) /* inward */
+ glNormal3f(-cos(theta), 0.0, -sin(theta));
+ else /* outward */
+ glNormal3f(cos(theta), 0.0, sin(theta));
+}
+
+/* y1, r1, y2, r2 are indices into y, r, beg, end */
+static int drawBaseStrip(glhcfg *glhanoi, int y1, int r1, int y2, int r2,
+ GLfloat y[2], GLfloat r[2], GLfloat beg[2][2], GLfloat end[2][2]) {
+ int i;
+ GLfloat theta, costh, sinth, x[2], z[2];
+ GLfloat theta1 = (M_PI * 2) / (glhanoi->numberOfPoles + 1);
+
+ glBegin(GL_QUAD_STRIP);
+
+ /* beginning edge */
+ glVertex3f(beg[r1][0], y[y1], beg[r1][1]);
+ glVertex3f(beg[r2][0], y[y2], beg[r2][1]);
+ setNormalV(glhanoi, theta1, y1, y2, r1);
+
+ for (i = 1; i < glhanoi->numberOfPoles; i++) {
+ theta = theta1 * (i + 0.5);
+ costh = cos(theta);
+ sinth = sin(theta);
+ x[0] = costh * r[0];
+ x[1] = costh * r[1];
+ z[0] = sinth * r[0];
+ z[1] = sinth * r[1];
+
+ glVertex3f(x[r1], y[y1], z[r1]);
+ glVertex3f(x[r2], y[y2], z[r2]);
+
+ setNormalV(glhanoi, theta1 * (i + 1), y1, y2, r1);
+ }
+
+ /* end edge */
+ glVertex3f(end[r1][0], y[y1], end[r1][1]);
+ glVertex3f(end[r2][0], y[y2], end[r2][1]);
+ setNormalV(glhanoi, glhanoi->numberOfPoles, y1, y2, r1);
+
+ glEnd();
+ return glhanoi->numberOfPoles;
+}
+
+/* Draw base such that poles are distributed around a regular polygon. */
+static int drawRoundBase(glhcfg *glhanoi) {
+ int polys = 0;
+ GLfloat theta, sinth, costh;
+
+ /*
+ r[0] = (minimum) inner radius of base at vertices
+ r[1] = (minimum) outer radius of base at vertices
+ y[0] = bottom of base
+ y[1] = top of base */
+ GLfloat r[2], y[2];
+ /* positions of end points: beginning, end.
+ beg[0] is inner corner of beginning of base, beg[1] is outer corner.
+ beg[i][0] is x, [i][1] is z. */
+ GLfloat beg[2][2], end[2][2], begNorm, endNorm;
+ /* ratio of radius at base vertices to ratio at poles */
+ GLfloat longer = 1.0 / cos(M_PI / (glhanoi->numberOfPoles + 1));
+
+ r[0] = (glhanoi->poleDist - glhanoi->maxDiskRadius) * longer;
+ r[1] = (glhanoi->poleDist + glhanoi->maxDiskRadius) * longer;
+ y[0] = 0;
+ y[1] = glhanoi->baseHeight;
+
+ /* compute beg, end. Make the ends square. */
+ theta = M_PI * 2 / (glhanoi->numberOfPoles + 1);
+
+ costh = cos(theta);
+ sinth = sin(theta);
+ beg[0][0] = (glhanoi->poleDist - glhanoi->maxDiskRadius) * costh +
+ glhanoi->maxDiskRadius * sinth;
+ beg[1][0] = (glhanoi->poleDist + glhanoi->maxDiskRadius) * costh +
+ glhanoi->maxDiskRadius * sinth;
+ beg[0][1] = (glhanoi->poleDist - glhanoi->maxDiskRadius) * sinth -
+ glhanoi->maxDiskRadius * costh;
+ beg[1][1] = (glhanoi->poleDist + glhanoi->maxDiskRadius) * sinth -
+ glhanoi->maxDiskRadius * costh;
+ begNorm = theta - M_PI * 0.5;
+
+ theta = M_PI * 2 * glhanoi->numberOfPoles / (glhanoi->numberOfPoles + 1);
+
+ costh = cos(theta);
+ sinth = sin(theta);
+ end[0][0] = (glhanoi->poleDist - glhanoi->maxDiskRadius) * costh -
+ glhanoi->maxDiskRadius * sinth;
+ end[1][0] = (glhanoi->poleDist + glhanoi->maxDiskRadius) * costh -
+ glhanoi->maxDiskRadius * sinth;
+ end[0][1] = (glhanoi->poleDist - glhanoi->maxDiskRadius) * sinth +
+ glhanoi->maxDiskRadius * costh;
+ end[1][1] = (glhanoi->poleDist + glhanoi->maxDiskRadius) * sinth +
+ glhanoi->maxDiskRadius * costh;
+ endNorm = theta + M_PI * 0.5;
+
+ /* bottom: never seen
+ polys = drawBaseStrip(glhanoi, 0, 0, 0, 1, y, r, beg, end); */
+ /* outside edge */
+ polys += drawBaseStrip(glhanoi, 0, 1, 1, 1, y, r, beg, end);
+ /* top */
+ polys += drawBaseStrip(glhanoi, 1, 1, 1, 0, y, r, beg, end);
+ /* inside edge */
+ polys += drawBaseStrip(glhanoi, 1, 0, 0, 0, y, r, beg, end);
+
+ /* Draw ends */
+ glBegin(GL_QUADS);
+
+ glVertex3f(beg[0][0], y[1], beg[0][1]);
+ glVertex3f(beg[1][0], y[1], beg[1][1]);
+ glVertex3f(beg[1][0], y[0], beg[1][1]);
+ glVertex3f(beg[0][0], y[0], beg[0][1]);
+ glNormal3f(cos(begNorm), 0, sin(begNorm));
+
+ glVertex3f(end[0][0], y[0], end[0][1]);
+ glVertex3f(end[1][0], y[0], end[1][1]);
+ glVertex3f(end[1][0], y[1], end[1][1]);
+ glVertex3f(end[0][0], y[1], end[0][1]);
+ glNormal3f(cos(endNorm), 0, sin(endNorm));
+
+ polys += 2;
+
+ glEnd();
+
+ return polys;
+}
+
+static int drawDisks(glhcfg *glhanoi)
+{
+ int i;
+ int polys = 0;
+
+ glPushMatrix();
+ glTranslatef(0.0f, glhanoi->baseHeight, 0.0f);
+ for(i = glhanoi->maxDiskIdx; i >= 0; i--) {
+ Disk *disk = &glhanoi->disk[i];
+ GLfloat *pos = disk->position;
+ GLfloat *rot = disk->rotation;
+
+ glPushMatrix();
+ glTranslatef(pos[0], pos[1], pos[2]);
+ if(rot[1] != 0.0) {
+ glTranslatef(0.0, glhanoi->diskHeight / 2.0, 0.0);
+ /* rotate around different axis depending on phi */
+ if (disk->phi != 0.0)
+ glRotatef(-disk->phi, 0.0, 1.0, 0.0);
+ glRotatef(rot[1], 0.0, 0.0, 1.0);
+ if (disk->phi != 0.0)
+ glRotatef(disk->phi, 0.0, 1.0, 0.0);
+ glTranslatef(0.0, -glhanoi->diskHeight / 2.0, 0.0);
+ }
+ glCallList(disk->displayList);
+ polys += disk->polys;
+ glPopMatrix();
+ }
+ glPopMatrix();
+ return polys;
+}
+
+static GLfloat getDiskRadius(glhcfg *glhanoi, int i)
+{
+ GLfloat retVal = glhanoi->maxDiskRadius *
+ ((GLfloat) i + 3.0) / (glhanoi->numberOfDisks + 3.0);
+ return retVal;
+}
+
+static void initData(glhcfg *glhanoi)
+{
+ int i;
+ GLfloat sinPiOverNP;
+
+ glhanoi->baseLength = BASE_LENGTH;
+ if (glhanoi->layoutLinear) {
+ glhanoi->maxDiskRadius = glhanoi->baseLength /
+ (2 * 0.95 * glhanoi->numberOfPoles);
+ } else {
+ sinPiOverNP = sin(M_PI / (glhanoi->numberOfPoles + 1));
+ glhanoi->maxDiskRadius = (sinPiOverNP * glhanoi->baseLength * 0.5 * 0.95) / (1 + sinPiOverNP);
+ }
+
+ glhanoi->poleDist = glhanoi->baseLength * 0.5 - glhanoi->maxDiskRadius;
+ glhanoi->poleRadius = glhanoi->maxDiskRadius / (glhanoi->numberOfDisks + 3.0);
+ /* fprintf(stderr, "Debug: baseL = %f, maxDiskR = %f, poleR = %f\n",
+ glhanoi->baseLength, glhanoi->maxDiskRadius, glhanoi->poleRadius); */
+ glhanoi->baseWidth = 2.0 * glhanoi->maxDiskRadius;
+ glhanoi->poleOffset = 2.0 * getDiskRadius(glhanoi, glhanoi->maxDiskIdx);
+ glhanoi->diskHeight = 2.0 * glhanoi->poleRadius;
+ glhanoi->baseHeight = 2.0 * glhanoi->poleRadius;
+ glhanoi->poleHeight = glhanoi->numberOfDisks *
+ glhanoi->diskHeight + glhanoi->poleRadius;
+ /* numberOfMoves only applies if numberOfPoles = 3 */
+ glhanoi->numberOfMoves = (1 << glhanoi->numberOfDisks) - 1;
+ /* use golden ratio */
+ glhanoi->boardSize = glhanoi->baseLength * 0.5 * (1.0 + sqrt(5.0));
+
+ glhanoi->pole = (Pole *)calloc(glhanoi->numberOfPoles, sizeof(Pole));
+ checkAllocAndExit(!!glhanoi->pole, "poles");
+
+ for(i = 0; i < glhanoi->numberOfPoles; i++) {
+ checkAllocAndExit(
+ !!(glhanoi->pole[i].data = calloc(glhanoi->numberOfDisks, sizeof(Disk *))),
+ "disk stack");
+ glhanoi->pole[i].size = glhanoi->numberOfDisks;
+ }
+ checkAllocAndExit(
+ !!(glhanoi->diskPos = calloc(glhanoi->numberOfDisks, sizeof(double))),
+ "diskPos");
+
+ if (glhanoi->trailQSize) {
+ glhanoi->trailQ = (TrailPoint *)calloc(glhanoi->trailQSize, sizeof(TrailPoint));
+ checkAllocAndExit(!!glhanoi->trailQ, "trail queue");
+ } else glhanoi->trailQ = (TrailPoint *)NULL;
+ glhanoi->trailQFront = glhanoi->trailQBack = 0;
+
+ glhanoi->the_rotator = make_rotator(0.1, 0.025, 0, 1, 0.005, False);
+ /* or glhanoi->the_rotator = make_rotator(0.025, 0.025, 0.025, 0.5, 0.005, False); */
+ glhanoi->button_down_p = False;
+
+ glhanoi->src = glhanoi->oldsrc = 0;
+ glhanoi->tmp = glhanoi->oldtmp = 1;
+ glhanoi->dst = glhanoi->olddst = glhanoi->numberOfPoles - 1;
+
+ if (glhanoi->numberOfPoles > 3) {
+ glhanoi->solveStackSize = glhanoi->numberOfDisks + 2;
+ glhanoi->solveStack = (SubProblem *)calloc(glhanoi->solveStackSize, sizeof(SubProblem));
+ checkAllocAndExit(!!glhanoi->solveStack, "solving stack");
+ glhanoi->solveStackIdx = 0;
+ }
+}
+
+static void initView(glhcfg *glhanoi)
+{
+ glhanoi->camera[0] = 0.0;
+ glhanoi->camera[1] = 0.0;
+ glhanoi->camera[2] = 0.0;
+ glhanoi->centre[0] = 0.0;
+ glhanoi->centre[1] = glhanoi->poleHeight * 3.0;
+ glhanoi->centre[2] = 0.0;
+}
+
+/*
+ * noise_improved.c - based on ImprovedNoise.java
+ * JAVA REFERENCE IMPLEMENTATION OF IMPROVED NOISE - COPYRIGHT 2002 KEN PERLIN.
+ */
+static double fade(double t)
+{
+ return t * t * t * (t * (t * 6 - 15) + 10);
+}
+
+static double grad(int hash, double x, double y, double z)
+{
+ int h = hash & 15; /* CONVERT LO 4 BITS OF HASH CODE */
+ double u = h < 8 ? x : y, /* INTO 12 GRADIENT DIRECTIONS. */
+ v = h < 4 ? y : h == 12 || h == 14 ? x : z;
+ return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v);
+}
+
+static const int permutation[] = { 151, 160, 137, 91, 90, 15,
+ 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142,
+ 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26,
+ 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237,
+ 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71,
+ 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60,
+ 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143,
+ 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89,
+ 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198,
+ 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118,
+ 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189,
+ 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70,
+ 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108,
+ 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251,
+ 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145,
+ 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184,
+ 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205,
+ 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61,
+ 156, 180
+};
+
+static void initNoise(glhcfg *glhanoi)
+{
+ int i;
+ for(i = 0; i < 256; i++)
+ glhanoi->p[256 + i] = glhanoi->p[i] = permutation[i];
+}
+
+static double improved_noise(glhcfg *glhanoi, double x, double y, double z)
+{
+ double u, v, w;
+ int A, AA, AB, B, BA, BB;
+ int X = (int)floor(x) & 255, /* FIND UNIT CUBE THAT */
+ Y = (int)floor(y) & 255, /* CONTAINS POINT. */
+ Z = (int)floor(z) & 255;
+ if(!glhanoi->noise_initted) {
+ initNoise(glhanoi);
+ glhanoi->noise_initted = 1;
+ }
+ x -= floor(x); /* FIND RELATIVE X,Y,Z */
+ y -= floor(y); /* OF POINT IN CUBE. */
+ z -= floor(z);
+ u = fade(x), /* COMPUTE FADE CURVES */
+ v = fade(y), /* FOR EACH OF X,Y,Z. */
+ w = fade(z);
+ A = glhanoi->p[X] + Y;
+ AA = glhanoi->p[A] + Z;
+ AB = glhanoi->p[A + 1] + Z, /* HASH COORDINATES OF */
+ B = glhanoi->p[X + 1] + Y;
+ BA = glhanoi->p[B] + Z;
+ BB = glhanoi->p[B + 1] + Z; /* THE 8 CUBE CORNERS, */
+ return lerp(w, lerp(v, lerp(u, grad(glhanoi->p[AA], x, y, z),/* AND ADD */
+ grad(glhanoi->p[BA], x - 1, y, z)),/* BLENDED */
+ lerp(u, grad(glhanoi->p[AB], x, y - 1, z),/* RESULTS */
+ grad(glhanoi->p[BB], x - 1, y - 1, z))),/* FROM 8 CORNERS */
+ lerp(v, lerp(u, grad(glhanoi->p[AA + 1], x, y, z - 1), grad(glhanoi->p[BA + 1], x - 1, y, z - 1)), /* OF CUBE */
+ lerp(u, grad(glhanoi->p[AB + 1], x, y - 1, z - 1),
+ grad(glhanoi->p[BB + 1], x - 1, y - 1, z - 1))));
+}
+
+/*
+ * end noise_improved.c - based on ImprovedNoise.java
+ */
+
+struct tex_col_t {
+ GLuint *colours;
+ /* GLfloat *points; */
+ unsigned int ncols;
+};
+typedef struct tex_col_t tex_col_t;
+
+static GLubyte *makeTexture(glhcfg *glhanoi, int x_size, int y_size, int z_size,
+ GLuint(*texFunc) (glhcfg *, double, double, double,
+ tex_col_t *), tex_col_t * colours)
+{
+ int i, j, k;
+ GLubyte *textureData;
+ GLuint *texturePtr;
+ double x, y, z;
+ double xi, yi, zi;
+
+ if((textureData =
+ calloc(x_size * y_size * z_size, sizeof(GLuint))) == NULL) {
+ return NULL;
+ }
+
+ xi = 1.0 / x_size;
+ yi = 1.0 / y_size;
+ zi = 1.0 / z_size;
+
+ z = 0.0;
+ texturePtr = (void *)textureData;
+ for(k = 0; k < z_size; k++, z += zi) {
+ y = 0.0;
+ for(j = 0; j < y_size; j++, y += yi) {
+ x = 0.0;
+ for(i = 0; i < x_size; i++, x += xi) {
+ *texturePtr = texFunc(glhanoi, x, y, z, colours);
+ ++texturePtr;
+ }
+ }
+ }
+ return textureData;
+}
+
+static void freeTexCols(tex_col_t*p)
+{
+ free(p->colours);
+ free(p);
+}
+
+static tex_col_t *makeMarbleColours(void)
+{
+ tex_col_t *marbleColours;
+ int ncols = 2;
+
+ marbleColours = malloc(sizeof(tex_col_t));
+ if(marbleColours == NULL) return NULL;
+ marbleColours->colours = calloc(sizeof(GLuint), ncols);
+ if(marbleColours->colours == NULL) return NULL;
+ marbleColours->ncols = ncols;
+
+ marbleColours->colours[0] = 0x3f3f3f3f;
+ marbleColours->colours[1] = 0xffffffff;
+
+ return marbleColours;
+}
+
+static double turb(glhcfg *glhanoi, double x, double y, double z, int octaves)
+{
+ int oct, freq = 1;
+ double r = 0.0;
+
+ for(oct = 0; oct < octaves; ++oct) {
+ r += fabs(improved_noise(glhanoi, freq * x, freq * y, freq * z)) / freq;
+ freq <<= 1;
+ }
+ return r / 2.0;
+}
+
+static void perturb(glhcfg *glhanoi, double *x, double *y, double *z, double scale)
+{
+ double t = scale * turb(glhanoi, *x, *y, *z, 4);
+ *x += t;
+ *y += t;
+ *z += t;
+}
+
+static double f_m(double x, double y, double z)
+{
+ return sin(3.0 * M_PI * x);
+}
+
+static GLuint C_m(double x, const tex_col_t * tex_cols)
+{
+ int r = tex_cols->colours[0] & 0xff;
+ int g = tex_cols->colours[0] >> 8 & 0xff;
+ int b = tex_cols->colours[0] >> 16 & 0xff;
+ double factor;
+ int r1, g1, b1;
+ x = x - floor(x);
+
+ factor = (1.0 + sin(2.0 * M_PI * x)) / 2.0;
+
+ r1 = (tex_cols->colours[1] & 0xff);
+ g1 = (tex_cols->colours[1] >> 8 & 0xff);
+ b1 = (tex_cols->colours[1] >> 16 & 0xff);
+
+ r += (int)(factor * (r1 - r));
+ g += (int)(factor * (g1 - g));
+ b += (int)(factor * (b1 - b));
+
+ return 0xff000000 | (b << 16) | (g << 8) | r;
+}
+
+
+static GLuint makeMarbleTexture(glhcfg *glhanoi, double x, double y, double z, tex_col_t * colours)
+{
+ perturb(glhanoi, &x, &y, &z, MARBLE_SCALE);
+ return C_m(f_m(x, y, z), colours);
+}
+
+static void setTexture(glhcfg *glhanoi, int n)
+{
+ glBindTexture(GL_TEXTURE_2D, glhanoi->textureNames[n]);
+}
+
+/* returns 1 on failure, 0 on success */
+static int makeTextures(glhcfg *glhanoi)
+{
+ GLubyte *marbleTexture;
+ tex_col_t *marbleColours;
+
+ glGenTextures(N_TEXTURES, glhanoi->textureNames);
+
+ if((marbleColours = makeMarbleColours()) == NULL) {
+ return 1;
+ }
+ if((marbleTexture =
+ makeTexture(glhanoi, MARBLE_TEXTURE_SIZE, MARBLE_TEXTURE_SIZE, 1,
+ makeMarbleTexture, marbleColours)) == NULL) {
+ return 1;
+ }
+
+ glBindTexture(GL_TEXTURE_2D, glhanoi->textureNames[0]);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ MARBLE_TEXTURE_SIZE, MARBLE_TEXTURE_SIZE, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, marbleTexture);
+ free(marbleTexture);
+ freeTexCols(marbleColours);
+
+ return 0;
+}
+
+static void initFloor(glhcfg *glhanoi)
+{
+ int i, j;
+ float tileSize = glhanoi->boardSize / BOARD_SQUARES;
+ float x0, x1, z0, z1;
+ float tx0, tx1, tz0, tz1;
+ const float *col = cWhite;
+ float texIncr = 1.0 / BOARD_SQUARES;
+
+ glhanoi->floorpolys = 0;
+ checkAllocAndExit(!!(glhanoi->floorList = glGenLists(1)), "floor display list");
+ glNewList(glhanoi->floorList, GL_COMPILE);
+ x0 = -glhanoi->boardSize / 2.0;
+ tx0 = 0.0f;
+ setMaterial(col, cWhite, 128);
+ setTexture(glhanoi, 0);
+ glNormal3fv(up);
+ for(i = 0; i < BOARD_SQUARES; i++, x0 += tileSize, tx0 += texIncr) {
+ x1 = x0 + tileSize;
+ tx1 = tx0 + texIncr;
+ z0 = -glhanoi->boardSize / 2.0;
+ tz0 = 0.0f;
+ for(j = 0; j < BOARD_SQUARES; j++, z0 += tileSize, tz0 += texIncr) {
+ int colIndex = (i + j) & 0x1;
+
+ z1 = z0 + tileSize;
+ tz1 = tz0 + texIncr;
+
+ if(colIndex)
+ col = cWhite;
+ else
+ col = cBlack;
+
+ setMaterial(col, cWhite, 100);
+
+ glBegin(GL_QUADS);
+
+ glTexCoord2d(tx0, tz0);
+ glVertex3f(x0, 0.0, z0);
+
+ glTexCoord2d(tx0, tz1);
+ glVertex3f(x0, 0.0, z1);
+
+ glTexCoord2d(tx1, tz1);
+ glVertex3f(x1, 0.0, z1);
+
+ glTexCoord2d(tx1, tz0);
+ glVertex3f(x1, 0.0, z0);
+ glhanoi->floorpolys++;
+ glEnd();
+ }
+ }
+ glEndList();
+}
+
+static void initBase(glhcfg *glhanoi)
+{
+ checkAllocAndExit(!!(glhanoi->baseList = glGenLists(1)), "tower bases display list");
+
+ glNewList(glhanoi->baseList, GL_COMPILE);
+ setMaterial(baseColor, cWhite, 50);
+ if (glhanoi->layoutLinear) {
+ glhanoi->basepolys = drawCuboid(glhanoi->baseLength, glhanoi->baseWidth,
+ glhanoi->baseHeight);
+ } else {
+ glhanoi->basepolys = drawRoundBase(glhanoi);
+ }
+ glEndList();
+}
+
+static void initTowers(glhcfg *glhanoi)
+{
+ int i;
+
+ checkAllocAndExit(!!(glhanoi->poleList = glGenLists(1)), "poles display list\n");
+
+ glNewList(glhanoi->poleList, GL_COMPILE);
+ /* glTranslatef(-glhanoi->poleOffset * (glhanoi->numberOfPoles - 1.0f) * 0.5f, glhanoi->baseHeight, 0.0f); */
+ setMaterial(poleColor, cWhite, 50);
+ for (i = 0; i < glhanoi->numberOfPoles; i++) {
+ GLfloat *p = glhanoi->pole[i].position;
+ GLfloat rad = (M_PI * 2.0 * (i + 1)) / (glhanoi->numberOfPoles + 1);
+
+ p[1] = glhanoi->baseHeight;
+
+ if (glhanoi->layoutLinear) {
+ /* Linear: */
+ p[0] = -glhanoi->poleOffset * ((glhanoi->numberOfPoles - 1) * 0.5f - i);
+ p[2] = 0.0f;
+ } else {
+ /* Circular layout: */
+ p[0] = cos(rad) * glhanoi->poleDist;
+ p[2] = sin(rad) * glhanoi->poleDist;
+ }
+
+ glPushMatrix();
+ glTranslatef(p[0], p[1], p[2]);
+ glhanoi->polepolys = drawPole(glhanoi->poleRadius, glhanoi->poleHeight);
+ glPopMatrix();
+
+ }
+ glEndList();
+}
+
+/* Parameterized hue based on input 0.0 - 1.0. */
+static double cfunc(double x)
+{
+#define COMP <
+ if(x < 2.0 / 7.0) {
+ return (1.0 / 12.0) / (1.0 / 7.0) * x;
+ }
+ if(x < 3.0 / 7.0) {
+ /* (7x - 1) / 6 */
+ return (1.0 + 1.0 / 6.0) * x - 1.0 / 6.0;
+ }
+ if(x < 4.0 / 7.0) {
+ return (2.0 + 1.0 / 3.0) * x - 2.0 / 3.0;
+ }
+ if(x < 5.0 / 7.0) {
+ return (1.0 / 12.0) / (1.0 / 7.0) * x + 1.0 / 3.0;
+ }
+ return (1.0 / 12.0) / (1.0 / 7.0) * x + 1.0 / 3.0;
+}
+
+static void initDisks(glhcfg *glhanoi)
+{
+ int i;
+ glhanoi->disk = (Disk *) calloc(glhanoi->numberOfDisks, sizeof(Disk));
+ checkAllocAndExit(!!glhanoi->disk, "disks");
+
+ for(i = glhanoi->maxDiskIdx; i >= 0; i--) {
+ GLfloat height = (GLfloat) (glhanoi->maxDiskIdx - i);
+ double f = cfunc((GLfloat) i / (GLfloat) glhanoi->numberOfDisks);
+ GLfloat diskColor = f * 360.0;
+ GLfloat color[3];
+ Disk *disk = &glhanoi->disk[i];
+
+ disk->id = i;
+ disk->position[0] = glhanoi->pole[0].position[0]; /* -glhanoi->poleOffset * (glhanoi->numberOfPoles - 1.0f) * 0.5; */
+ disk->position[1] = glhanoi->diskHeight * height;
+ disk->position[2] = glhanoi->pole[0].position[2];
+ disk->rotation[0] = 0.0;
+ disk->rotation[1] = 0.0;
+ disk->rotation[2] = 0.0;
+ disk->polys = 0;
+
+ /* make smaller disks move faster */
+ disk->speed = lerp(((double)glhanoi->numberOfDisks - i) / glhanoi->numberOfDisks,
+ 1.0, glhanoi->speed);
+ /* fprintf(stderr, "disk id: %d, alpha: %0.2f, speed: %0.2f\n", disk->id,
+ ((double)(glhanoi->maxDiskIdx - i)) / glhanoi->numberOfDisks, disk->speed); */
+
+ color[0] = diskColor;
+ color[1] = 1.0f;
+ color[2] = 1.0f;
+ HSVtoRGBv(color, color);
+
+ checkAllocAndExit(!!(disk->displayList = glGenLists(1)), "disk display list");
+ glNewList(disk->displayList, GL_COMPILE);
+ setMaterial(color, cWhite, 100.0);
+ disk->polys += drawDisk3D(glhanoi->poleRadius,
+ getDiskRadius(glhanoi, i),
+ glhanoi->diskHeight);
+ /*fprintf(stderr, "Debug: disk %d has radius %f\n", i,
+ getDiskRadius(glhanoi, i)); */
+ glEndList();
+ }
+ for(i = glhanoi->maxDiskIdx; i >= 0; --i) {
+ GLfloat height = (GLfloat) (glhanoi->maxDiskIdx - i);
+ int h = glhanoi->maxDiskIdx - i;
+ glhanoi->diskPos[h] = glhanoi->diskHeight * height;
+ push(glhanoi, glhanoi->src, &glhanoi->disk[i]);
+ }
+}
+
+static void initLights(Bool state)
+{
+ if(state) {
+ glLightfv(GL_LIGHT0, GL_POSITION, pos0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb0);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif0);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc0);
+
+ glLightfv(GL_LIGHT1, GL_POSITION, pos1);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, amb1);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, dif1);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, spc1);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ } else {
+ glDisable(GL_LIGHTING);
+ }
+}
+
+static int drawFloor(glhcfg *glhanoi)
+{
+ glCallList(glhanoi->floorList);
+ return glhanoi->floorpolys;
+}
+
+static int drawTowers(glhcfg *glhanoi)
+{
+ glCallList(glhanoi->baseList);
+ glCallList(glhanoi->poleList);
+ return glhanoi->basepolys + glhanoi->polepolys;
+}
+
+static int drawTrails1(glhcfg *glhanoi, double t, double thickness, double alpha) {
+ int i, prev = -1, lines = 0;
+ Bool fresh = False;
+ GLfloat trailDurInv = 1.0f / glhanoi->trailDuration;
+
+ glLineWidth(thickness);
+
+ glBegin(GL_LINES);
+
+ for (i = glhanoi->trailQFront;
+ i != glhanoi->trailQBack;
+ i = normalizeQ(i + 1)) {
+ TrailPoint *tqi = &(glhanoi->trailQ[i]);
+
+ if (!fresh && t > tqi->endTime) {
+ glhanoi->trailQFront = normalizeQ(i + 1);
+ } else {
+ if (tqi->startTime > t) break;
+ /* Found trails that haven't timed out. */
+ if (!fresh) fresh = True;
+ if (prev > -1) {
+ /* Fade to invisible with age */
+ trailColor[3] = alpha * (tqi->endTime - t) * trailDurInv;
+ /* Can't use setMaterial(trailColor, cBlack, 0) because our color needs an alpha value. */
+ glColor4fv(trailColor);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, trailColor);
+ /* FUTURE: to really do this right, trails should be drawn in back-to-front
+ order, so that blending is done correctly.
+ Currently it looks poor when a faded trail is in front of, or coincident with,
+ a bright trail but is drawn first.
+ I think for now it's good enough to recommend shorter trails so they
+ never/rarely overlap.
+ A jitter per trail arc would also mitigate this problem, to a lesser degree. */
+ glVertex3fv(glhanoi->trailQ[prev].position);
+ glVertex3fv(glhanoi->trailQ[i].position);
+ lines++;
+ }
+ if (glhanoi->trailQ[i].isEnd)
+ prev = -1;
+ else
+ prev = i;
+ }
+ }
+
+ glEnd();
+
+ return lines;
+}
+
+static int drawTrails(glhcfg *glhanoi) {
+ int lines = 0;
+ double t = getTime();
+
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, cBlack);
+ glMateriali(GL_FRONT, GL_SHININESS, 0);
+
+ /* Draw them twice, with different widths and opacities, to make them smoother. */
+ lines = drawTrails1(glhanoi, t, 1.0, 0.75);
+ lines += drawTrails1(glhanoi, t, 2.5, 0.5);
+
+ glDisable (GL_BLEND);
+
+ /* fprintf(stderr, "Drew trails: %d lines\n", lines); */
+ return lines;
+}
+
+/* Window management, etc
+ */
+ENTRYPOINT void reshape_glhanoi(ModeInfo * mi, int width, int height)
+{
+ glhcfg *glhanoi = &glhanoi_cfg[MI_SCREEN(mi)];
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(glhanoi->glx_context));
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(30.0, 1/h, 1.0,
+ 2 * MAX_CAMERA_RADIUS);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+ENTRYPOINT void init_glhanoi(ModeInfo * mi)
+{
+ glhcfg *glhanoi;
+ MI_INIT(mi, glhanoi_cfg);
+
+ glhanoi = &glhanoi_cfg[MI_SCREEN(mi)];
+ glhanoi->glx_context = init_GL(mi);
+ glhanoi->numberOfDisks = MI_BATCHCOUNT(mi);
+
+ if (glhanoi->numberOfDisks <= 1)
+ glhanoi->numberOfDisks = 3 + (int) BELLRAND(9);
+
+ /* magicnumber is a bitfield, so we can't have more than 31 discs
+ on a system with 4-byte ints. */
+ if (glhanoi->numberOfDisks >= 8 * sizeof(int))
+ glhanoi->numberOfDisks = (8 * sizeof(int)) - 1;
+
+ glhanoi->maxDiskIdx = glhanoi->numberOfDisks - 1;
+
+ glhanoi->numberOfPoles = get_integer_resource(MI_DISPLAY(mi), "poles", "Integer");
+ /* Set a number of poles from 3 to numberOfDisks + 1, biased toward lower values,
+ with probability decreasing linearly. */
+ if (glhanoi->numberOfPoles <= 2)
+ glhanoi->numberOfPoles = 3 +
+ (int)((1 - sqrt(frand(1.0))) * (glhanoi->numberOfDisks - 1));
+
+ glhanoi->wire = MI_IS_WIREFRAME(mi);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ glhanoi->wire = 0;
+# endif
+
+ glhanoi->light = light;
+ glhanoi->fog = fog;
+ glhanoi->texture = texture;
+ glhanoi->speed = speed;
+ glhanoi->trailDuration = trails;
+ /* set trailQSize based on 60 fps (a maximum, more or less) */
+ /* FUTURE: Should clamp framerate to 60 fps? See flurry.c's draw_flurry().
+ The only bad effect if we don't is that trail-ends could
+ show "unnatural" pauses at high fps. */
+ glhanoi->trailQSize = (int)(trails * 60.0);
+
+ reshape_glhanoi(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if(glhanoi->wire) {
+ glhanoi->light = False;
+ glhanoi->fog = False;
+ glhanoi->texture = False;
+ }
+
+ initLights(!glhanoi->wire && glhanoi->light);
+ checkAllocAndExit(!makeTextures(glhanoi), "textures\n");
+
+ /* Choose linear or circular layout. Could make this a user option. */
+ glhanoi->layoutLinear = (glhanoi->numberOfPoles == 3);
+
+ initData(glhanoi);
+ initView(glhanoi);
+ initFloor(glhanoi);
+ initBase(glhanoi);
+ initTowers(glhanoi);
+ initDisks(glhanoi);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+ glShadeModel(GL_SMOOTH);
+ if(glhanoi->fog) {
+ glClearColor(fogcolor[0], fogcolor[1], fogcolor[2], 1.0);
+ glFogi(GL_FOG_MODE, GL_LINEAR);
+ glFogfv(GL_FOG_COLOR, fogcolor);
+ glFogf(GL_FOG_DENSITY, 0.35f);
+ glHint(GL_FOG_HINT, GL_NICEST);
+ glFogf(GL_FOG_START, MIN_CAMERA_RADIUS);
+ glFogf(GL_FOG_END, MAX_CAMERA_RADIUS / 1.9);
+ glEnable(GL_FOG);
+ }
+
+ glhanoi->duration = START_DURATION;
+ changeState(glhanoi, START);
+}
+
+ENTRYPOINT void draw_glhanoi(ModeInfo * mi)
+{
+ glhcfg *glhanoi = &glhanoi_cfg[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if(!glhanoi->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(glhanoi->glx_context));
+
+ glPolygonMode(GL_FRONT, glhanoi->wire ? GL_LINE : GL_FILL);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ mi->polygon_count = 0;
+
+ glLoadIdentity();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ update_glhanoi(glhanoi);
+ updateView(glhanoi);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ if(!glhanoi->wire && glhanoi->texture) {
+ glEnable(GL_TEXTURE_2D);
+ }
+ mi->polygon_count += drawFloor(glhanoi);
+ glDisable(GL_TEXTURE_2D);
+
+ mi->polygon_count += drawTowers(glhanoi);
+ mi->polygon_count += drawDisks(glhanoi);
+
+ if (glhanoi->trailQSize) {
+ /* No polygons, just lines. So ignore the return count. */
+ (void)drawTrails(glhanoi);
+ }
+
+ if(mi->fps_p) {
+ do_fps(mi);
+ }
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT Bool glhanoi_handle_event(ModeInfo * mi, XEvent * event)
+{
+ glhcfg *glhanoi = &glhanoi_cfg[MI_SCREEN(mi)];
+
+ /* #### this is all wrong on iOS -- should be using gltrackball. */
+
+ if(event->xany.type == ButtonPress && event->xbutton.button == Button1) {
+ glhanoi->button_down_p = True;
+ glhanoi->drag_x = event->xbutton.x;
+ glhanoi->drag_y = event->xbutton.y;
+ return True;
+ } else if(event->xany.type == ButtonRelease
+ && event->xbutton.button == Button1) {
+ glhanoi->button_down_p = False;
+ return True;
+ } else if(event->xany.type == ButtonPress &&
+ (event->xbutton.button == Button4
+ || event->xbutton.button == Button5)) {
+ switch (event->xbutton.button) {
+ case Button4:
+ glhanoi->camera[2] += 0.01;
+ break;
+ case Button5:
+ glhanoi->camera[2] -= 0.01;
+ break;
+ default:
+ fprintf(stderr,
+ "glhanoi: unknown button in mousewheel handler\n");
+ }
+ return True;
+ } else if(event->xany.type == MotionNotify
+ && glhanoi_cfg->button_down_p) {
+ int x_diff, y_diff;
+
+ x_diff = event->xbutton.x - glhanoi->drag_x;
+ y_diff = event->xbutton.y - glhanoi->drag_y;
+
+ glhanoi->camera[0] = (float)x_diff / (float)MI_WIDTH(mi);
+ glhanoi->camera[1] = (float)y_diff / (float)MI_HEIGHT(mi);
+
+ return True;
+ }
+#if 0 /* #### doesn't work */
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ changeState(glhanoi, START);
+ return True;
+ }
+#endif
+ return False;
+}
+
+ENTRYPOINT void free_glhanoi(ModeInfo * mi)
+{
+ int i;
+ int j;
+ glhcfg *glh = &glhanoi_cfg[MI_SCREEN(mi)];
+ if (glh->glx_context) {
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(glh->glx_context));
+ glDeleteLists(glh->floorList, 1);
+ glDeleteLists(glh->baseList, 1);
+ glDeleteLists(glh->poleList, 1);
+ glDeleteLists(glh->textureNames[0], 2);
+ for(j = 0; j < glh->numberOfDisks; ++j) {
+ glDeleteLists(glh->disk[j].displayList, 1);
+ }
+ free(glh->disk);
+ for(i = 0; i < glh->numberOfPoles; i++) {
+ if(glh->pole[i].data != NULL) {
+ free(glh->pole[i].data);
+ }
+ }
+ }
+}
+
+XSCREENSAVER_MODULE ("GLHanoi", glhanoi)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/glhanoi.man b/hacks/glx/glhanoi.man
new file mode 100644
index 0000000..2060cde
--- /dev/null
+++ b/hacks/glx/glhanoi.man
@@ -0,0 +1,83 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+glhanoi - OpenGL Towers of Hanoi
+.SH SYNOPSIS
+.B glhanoi
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-count \fInumber\fP]
+[\-poles \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-wireframe]
+[\-light]
+[\-texture]
+[\-fog]
+[\-fps]
+.SH DESCRIPTION
+Implementation of Towers of Hanoi in OpenGL
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-count \fInumber\fP
+Number of disks. Default: 7.
+.TP 8
+.B \-poles \fInumber\fP
+Number of poles. Default: random from 3 to disks+1.
+.TP 8
+.B \-speed \fInumber\fP
+Speed multiplier (for smallest disks). Default: 1.
+.TP 8
+.B \-trails \fInumber\fP
+Length of disk trails, in seconds. Default: 2.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fog | \-no-fog
+Render in fog.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-light | -no-light
+Whether the scene is lit.
+.TP 8
+.B \-texture | \-no-texture
+Render with textures instead of solid.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2004 by Dave Atkinson. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Dave Atkinson.
diff --git a/hacks/glx/glknots.c b/hacks/glx/glknots.c
new file mode 100644
index 0000000..730cadb
--- /dev/null
+++ b/hacks/glx/glknots.c
@@ -0,0 +1,445 @@
+/* glknots, Copyright (c) 2003-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Generates some 3D knots (closed loops).
+ * Inspired by Paul Bourke <pbourke@swin.edu.au> at
+ * http://astronomy.swin.edu.au/~pbourke/curves/knot/
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_knot 0
+# define release_knot 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "tube.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPIN "XYZ"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_THICKNESS "0.3"
+#define DEF_SEGMENTS "800"
+#define DEF_DURATION "8"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLuint knot_list;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor;
+
+ int mode; /* 0 = normal, 1 = out, 2 = in */
+ int mode_tick;
+ Bool clear_p;
+
+ time_t last_time;
+ int draw_tick;
+
+} knot_configuration;
+
+static knot_configuration *bps = NULL;
+
+static char *do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static GLfloat thickness;
+static unsigned int segments;
+static int duration;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-segments", ".segments", XrmoptionSepArg, 0 },
+ { "-duration", ".duration", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&segments, "segments", "Segments", DEF_SEGMENTS, t_Int},
+ {&duration, "duration", "Duration", DEF_DURATION, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt knot_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static void
+make_knot (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+
+ GLfloat diam = (4 * thickness);
+ int faces = (wire ? 3 : 6);
+
+ unsigned int i;
+ double x, y, z, ox=0, oy=0, oz=0;
+ double mu;
+
+ double p[9];
+
+ Bool blobby_p = (0 == (random() % 5));
+ Bool type = (random() % 2);
+
+ for (i = 0; i < countof(p); i++)
+ {
+ p[i] = 1 + (random() % 4);
+ if (! (random() % 3))
+ p[i] += (random() % 5);
+ }
+
+ if (type == 1)
+ {
+ p[0] += 4;
+ p[1] *= ((p[0] + p[0]) / 10);
+ blobby_p = False;
+ }
+
+ mi->polygon_count = 0;
+
+ for (i = 0; i <= segments; i++)
+ {
+ if (type == 0)
+ {
+ mu = i * (M_PI * 2) / segments;
+ x = 10 * (cos(mu) + cos(p[0]*mu)) + cos(p[1]*mu) + cos(p[2]*mu);
+ y = 6 * sin(mu) + 10 * sin(p[3]*mu);
+ z = 16 * sin(p[4]*mu) * sin(p[5]*mu/2) + p[6]*sin(p[7]*mu) -
+ 2 * sin(p[8]*mu);
+ }
+ else if (type == 1)
+ {
+ mu = i * (M_PI * 2) * p[0] / (double) segments;
+ x = 10 * cos(mu) * (1 + cos(p[1] * mu/ p[0]) / 2.0);
+ y = 25 * sin(p[1] * mu / p[0]) / 2.0;
+ z = 10 * sin(mu) * (1 + cos(p[1] * mu/ p[0]) / 2.0);
+ }
+ else
+ abort();
+
+ if (i != 0)
+ {
+ GLfloat dist = sqrt ((x-ox)*(x-ox) +
+ (y-oy)*(y-oy) +
+ (z-oz)*(z-oz));
+ GLfloat di;
+ if (!blobby_p)
+ di = diam;
+ else
+ {
+ di = dist * (segments / 500.0);
+ di = (di * di * 3);
+ }
+
+ mi->polygon_count += tube (ox, oy, oz,
+ x, y, z,
+ di, dist/3,
+ faces, True, wire, wire);
+ }
+
+ ox = x;
+ oy = y;
+ oz = z;
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_knot (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+new_knot (ModeInfo *mi)
+{
+ knot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+
+ bp->clear_p = !!(random() % 15);
+
+ bp->ncolors = 128;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+ for (i = 0; i < bp->ncolors; i++)
+ {
+ /* make colors twice as bright */
+ bp->colors[i].red = (bp->colors[i].red >> 2) + 0x7FFF;
+ bp->colors[i].green = (bp->colors[i].green >> 2) + 0x7FFF;
+ bp->colors[i].blue = (bp->colors[i].blue >> 2) + 0x7FFF;
+ }
+
+ glNewList (bp->knot_list, GL_COMPILE);
+ make_knot (mi);
+ glEndList ();
+}
+
+
+ENTRYPOINT Bool
+knot_handle_event (ModeInfo *mi, XEvent *event)
+{
+ knot_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ bp->last_time = 1;
+ return True;
+ }
+
+ return False;
+}
+
+
+
+ENTRYPOINT void
+init_knot (ModeInfo *mi)
+{
+ knot_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ if (thickness <= 0) thickness = 0.001;
+ else if (thickness > 1) thickness = 1;
+
+ if (segments < 10) segments = 10;
+
+ reshape_knot (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ {
+ Bool spinx=False, spiny=False, spinz=False;
+ double spin_speed = 2.0;
+ double wander_speed = 0.05;
+ double spin_accel = 0.2;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') spinx = True;
+ else if (*s == 'y' || *s == 'Y') spiny = True;
+ else if (*s == 'z' || *s == 'Z') spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ bp->rot = make_rotator (spinx ? spin_speed : 0,
+ spiny ? spin_speed : 0,
+ spinz ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ (spinx && spiny && spinz));
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->knot_list = glGenLists (1);
+ new_knot(mi);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+ENTRYPOINT void
+draw_knot (ModeInfo *mi)
+{
+ knot_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ GLfloat bcolor[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat bshiny = 128.0;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ if (bp->mode == 0)
+ {
+ if (bp->draw_tick++ > 10)
+ {
+ time_t now = time((time_t *) 0);
+ if (bp->last_time == 0) bp->last_time = now;
+ bp->draw_tick = 0;
+ if (!bp->button_down_p &&
+ now - bp->last_time >= duration)
+ {
+ bp->mode = 1; /* go out */
+ bp->mode_tick = 10 / speed;
+ bp->last_time = now;
+ }
+ }
+ }
+ else if (bp->mode == 1) /* out */
+ {
+ if (--bp->mode_tick <= 0)
+ {
+ new_knot (mi);
+ bp->mode_tick = 10 / speed;
+ bp->mode = 2; /* go in */
+ }
+ }
+ else if (bp->mode == 2) /* in */
+ {
+ if (--bp->mode_tick <= 0)
+ bp->mode = 0; /* normal */
+ }
+ else
+ abort();
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (bp->clear_p)
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ bcolor[0] = bp->colors[bp->ccolor].red / 65536.0;
+ bcolor[1] = bp->colors[bp->ccolor].green / 65536.0;
+ bcolor[2] = bp->colors[bp->ccolor].blue / 65536.0;
+ bp->ccolor++;
+ if (bp->ccolor >= bp->ncolors) bp->ccolor = 0;
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT, GL_SHININESS, bshiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bcolor);
+
+ glScalef(0.25, 0.25, 0.25);
+
+ if (bp->mode != 0)
+ {
+ GLfloat s = (bp->mode == 1
+ ? bp->mode_tick / (10 / speed)
+ : ((10 / speed) - bp->mode_tick + 1) / (10 / speed));
+ glScalef (s, s, s);
+ }
+
+ glCallList (bp->knot_list);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("GLKnots", glknots, knot)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/glknots.man b/hacks/glx/glknots.man
new file mode 100644
index 0000000..c4f1d1a
--- /dev/null
+++ b/hacks/glx/glknots.man
@@ -0,0 +1,81 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+glknots - generates some twisting 3d knot patterns
+.SH SYNOPSIS
+.B glknots
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIfloat\fP]
+[\-segments \fIint\fP]
+[\-thickness \fIfloat\fP]
+[\-duration \fIseconds\fP]
+[\-no-wander]
+[\-spin \fIXYZ\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Generates some twisting 3d knot patterns. Spins 'em around.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Larger numbers mean run faster. Default: 1.0.
+.TP 8
+.B \-segments \fInumber\fP
+Number of segments in each path. Default 800. Larger numbers make the
+curves smoother, at the expense of a higher polygon count.
+.TP 8
+.B \-thickness \fIfloat\fP
+How thick the tubes should be. Default 0.3.
+.TP 8
+.B \-duration \fIseconds\fP
+How long to leave each knot up. Default 8 seconds.
+.TP 8
+.B \-wander | \-no-wander
+Whether the cubes should wander around the screen.
+.TP 8
+.B \-spin [XYZ] | \-no-spin
+Which axes, if any, to spin around on.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/gllist.c b/hacks/glx/gllist.c
new file mode 100644
index 0000000..342e381
--- /dev/null
+++ b/hacks/glx/gllist.c
@@ -0,0 +1,127 @@
+/* xscreensaver, Copyright (c) 1998-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#include "gllist.h"
+
+void
+renderList (const struct gllist *list, int wire_p)
+{
+ while (list)
+ {
+ if (!wire_p || list->primitive == GL_LINES ||
+ list->primitive == GL_POINTS)
+ {
+ glInterleavedArrays (list->format, 0, list->data);
+ glDrawArrays (list->primitive, 0, list->points);
+ }
+ else
+ {
+ /* For wireframe, do it the hard way: treat every tuple of
+ points as its own line loop.
+ */
+ const GLfloat *p = (GLfloat *) list->data;
+ int i, j, tick, skip, stride;
+
+ switch (list->primitive) {
+ case GL_QUADS: tick = 4; break;
+ case GL_TRIANGLES: tick = 3; break;
+ default: abort(); break; /* write me */
+ }
+
+ switch (list->format) {
+ case GL_C3F_V3F: case GL_N3F_V3F: skip = 3; stride = 6; break;
+ default: abort(); break; /* write me */
+ }
+
+ glBegin (GL_LINE_LOOP);
+ for (i = 0, j = skip;
+ i < list->points;
+ i++, j += stride)
+ {
+ if (i && !(i % tick))
+ {
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ }
+ glVertex3f (p[j], p[j+1], p[j+2]);
+ }
+ glEnd();
+ }
+ list = list->next;
+ }
+}
+
+
+void
+renderListNormals (const struct gllist *list, GLfloat length, int faces_p)
+{
+ while (list)
+ {
+ const GLfloat *p = (GLfloat *) list->data;
+ int i, j, tick, skip, stride;
+ GLfloat v[3], n[3];
+
+ if (list->primitive == GL_LINES) continue;
+
+ if (! faces_p)
+ tick = 1;
+ else
+ switch (list->primitive) {
+ case GL_QUADS: tick = 4; break;
+ case GL_TRIANGLES: tick = 3; break;
+ default: abort(); break; /* write me */
+ }
+
+ switch (list->format) {
+ case GL_N3F_V3F: skip = 0; stride = 6; break;
+ case GL_C3F_V3F: continue; break;
+ default: abort(); break; /* write me */
+ }
+
+ v[0] = v[1] = v[2] = 0;
+ n[0] = n[1] = n[2] = 0;
+
+ for (i = 0, j = skip;
+ i <= list->points;
+ i++, j += stride)
+ {
+ if (i && !(i % tick))
+ {
+ n[0] /= tick;
+ n[1] /= tick;
+ n[2] /= tick;
+ v[0] /= tick;
+ v[1] /= tick;
+ v[2] /= tick;
+ glPushMatrix();
+ glTranslatef (v[0], v[1], v[2]);
+ glScalef (length, length, length);
+ glBegin (GL_LINES);
+ glVertex3f (0, 0, 0);
+ glVertex3f (n[0], n[1], n[2]);
+ glEnd();
+ glPopMatrix();
+ v[0] = v[1] = v[2] = 0;
+ n[0] = n[1] = n[2] = 0;
+ }
+
+ if (i == list->points) break;
+ n[0] += p[j];
+ n[1] += p[j+1];
+ n[2] += p[j+2];
+ v[0] += p[j+3];
+ v[1] += p[j+4];
+ v[2] += p[j+5];
+
+ }
+ list = list->next;
+ }
+}
diff --git a/hacks/glx/gllist.h b/hacks/glx/gllist.h
new file mode 100644
index 0000000..1d6326a
--- /dev/null
+++ b/hacks/glx/gllist.h
@@ -0,0 +1,44 @@
+/* xscreensaver, Copyright (c) 1998-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __GLLIST_H__
+#define __GLLIST_H__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include <stdlib.h>
+
+#ifdef HAVE_COCOA
+#elif defined(HAVE_ANDROID)
+# include <GLES/gl.h>
+#else /* real X11 */
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+struct gllist
+{
+ GLenum format;
+ GLenum primitive;
+ int points;
+ const void *data;
+ struct gllist *next;
+};
+
+void renderList (const struct gllist *, int wire_p);
+void renderListNormals (const struct gllist *, GLfloat length, int facesp);
+
+#endif /* __GLLIST_H__ */
diff --git a/hacks/glx/glmatrix.c b/hacks/glx/glmatrix.c
new file mode 100644
index 0000000..6a9b1fe
--- /dev/null
+++ b/hacks/glx/glmatrix.c
@@ -0,0 +1,1068 @@
+/* glmatrix, Copyright (c) 2003-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * GLMatrix -- simulate the text scrolls from the movie "The Matrix".
+ *
+ * This program does a 3D rendering of the dropping characters that
+ * appeared in the title sequences of the movies. See also `xmatrix'
+ * for a simulation of what the computer monitors actually *in* the
+ * movie did.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_matrix 0
+# define release_matrix 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#include "xlockmore.h"
+#include "ximage-loader.h"
+
+#include "images/gen/matrix3_png.h"
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPEED "1.0"
+#define DEF_DENSITY "20"
+#define DEF_CLOCK "False"
+#define DEF_FOG "True"
+#define DEF_WAVES "True"
+#define DEF_ROTATE "True"
+#define DEF_TEXTURE "True"
+#define DEF_MODE "Matrix"
+#define DEF_TIMEFMT " %l%M%p "
+
+
+#define CHAR_COLS 16
+#define CHAR_ROWS 13
+
+static const int matrix_encoding[] = {
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+# if 0
+ 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207
+# else
+ 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175
+# endif
+ };
+static const int decimal_encoding[] = {
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 };
+static const int hex_encoding[] = {
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 33, 34, 35, 36, 37, 38 };
+static const int binary_encoding[] = { 16, 17 };
+static const int dna_encoding[] = { 33, 35, 39, 52 };
+
+static const unsigned char char_map[256] = {
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, /* 0 */
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, /* 16 */
+ 0, 1, 2, 96, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /* 32 */
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, /* 48 */
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, /* 64 */
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, /* 80 */
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 96 */
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, /* 112 */
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, /* 128 */
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, /* 144 */
+ 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, /* 160 */
+ 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, /* 176 */
+ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, /* 192 */
+ 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, /* 208 */
+#if 0
+ 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, /* 224 */
+ 176,177,178,195,180,181,182,183,184,185,186,187,188,189,190,191 /* 240 */
+#else /* see spank_image() */
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, /* 224 */
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, /* 240 */
+#endif
+};
+
+#define CURSOR_GLYPH 97
+
+/* #define DEBUG */
+
+#define GRID_SIZE 70 /* width and height of the arena */
+#define GRID_DEPTH 35 /* depth of the arena */
+#define WAVE_SIZE 22 /* periodicity of color (brightness) waves */
+#define SPLASH_RATIO 0.7 /* ratio of GRID_DEPTH where chars hit the screen */
+
+static const struct { GLfloat x, y; } nice_views[] = {
+ { 0, 0 },
+ { 0, -20 }, /* this is a list of viewer rotations that look nice. */
+ { 0, 20 }, /* every now and then we switch to a new one. */
+ { 25, 0 }, /* (but we only use the first one at start-up.) */
+ {-25, 0 },
+ { 25, 20 },
+ {-25, 20 },
+ { 25, -20 },
+ {-25, -20 },
+
+ { 10, 0 },
+ {-10, 0 },
+ { 0, 0 }, /* prefer these */
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+};
+
+
+typedef struct {
+ GLfloat x, y, z; /* position of strip */
+ GLfloat dx, dy, dz; /* velocity of strip */
+
+ Bool erasing_p; /* Whether this strip is on its way out. */
+
+ int spinner_glyph; /* the bottommost glyph -- the feeder */
+ GLfloat spinner_y; /* where on the strip the bottom glyph is */
+ GLfloat spinner_speed; /* how fast the bottom glyph drops */
+
+ int glyphs[GRID_SIZE]; /* the other glyphs on the strip, which will be
+ revealed by the dropping spinner.
+ 0 means no glyph; negative means "spinner".
+ If non-zero, real value is abs(G)-1. */
+
+ Bool highlight[GRID_SIZE];
+ /* some glyphs may be highlighted */
+
+ int spin_speed; /* Rotate all spinners every this-many frames */
+ int spin_tick; /* frame counter */
+
+ int wave_position; /* Waves of brightness wash down the strip. */
+ int wave_speed; /* every this-many frames. */
+ int wave_tick; /* frame counter. */
+
+} strip;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ Bool button_down_p;
+ GLuint texture;
+ int nstrips;
+ strip *strips;
+ const int *glyph_map;
+ int nglyphs;
+ GLfloat tex_char_width, tex_char_height;
+
+ /* auto-tracking direction of view */
+ int last_view, target_view;
+ GLfloat view_x, view_y;
+ int view_steps, view_tick;
+ Bool auto_tracking_p;
+ int track_tick;
+
+ int real_char_rows;
+ GLfloat brightness_ramp[WAVE_SIZE];
+
+} matrix_configuration;
+
+static matrix_configuration *mps = NULL;
+
+static GLfloat speed;
+static GLfloat density;
+static Bool do_clock;
+static char *timefmt;
+static Bool do_fog;
+static Bool do_waves;
+static Bool do_rotate;
+static Bool do_texture;
+static char *mode_str;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-density", ".density", XrmoptionSepArg, 0 },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+ { "-binary", ".mode", XrmoptionNoArg, "binary" },
+ { "-hexadecimal", ".mode", XrmoptionNoArg, "hexadecimal" },
+ { "-decimal", ".mode", XrmoptionNoArg, "decimal" },
+ { "-dna", ".mode", XrmoptionNoArg, "dna" },
+ { "-clock", ".clock", XrmoptionNoArg, "True" },
+ { "+clock", ".clock", XrmoptionNoArg, "False" },
+ { "-timefmt", ".timefmt", XrmoptionSepArg, 0 },
+ { "-fog", ".fog", XrmoptionNoArg, "True" },
+ { "+fog", ".fog", XrmoptionNoArg, "False" },
+ { "-waves", ".waves", XrmoptionNoArg, "True" },
+ { "+waves", ".waves", XrmoptionNoArg, "False" },
+ { "-rotate", ".rotate", XrmoptionNoArg, "True" },
+ { "+rotate", ".rotate", XrmoptionNoArg, "False" },
+ {"-texture", ".texture", XrmoptionNoArg, "True" },
+ {"+texture", ".texture", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&mode_str, "mode", "Mode", DEF_MODE, t_String},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&density, "density", "Density", DEF_DENSITY, t_Float},
+ {&do_clock, "clock", "Clock", DEF_CLOCK, t_Bool},
+ {&timefmt, "timefmt", "Timefmt", DEF_TIMEFMT, t_String},
+ {&do_fog, "fog", "Fog", DEF_FOG, t_Bool},
+ {&do_waves, "waves", "Waves", DEF_WAVES, t_Bool},
+ {&do_rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt matrix_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Re-randomize the state of one strip.
+ */
+static void
+reset_strip (ModeInfo *mi, strip *s)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+ int i;
+ Bool time_displayed_p = False; /* never display time twice in one strip */
+
+ memset (s, 0, sizeof(*s));
+ s->x = (GLfloat) (frand(GRID_SIZE) - (GRID_SIZE/2));
+ s->y = (GLfloat) (GRID_SIZE/2 + BELLRAND(0.5)); /* shift top slightly */
+ s->z = (GLfloat) (GRID_DEPTH * 0.2) - frand (GRID_DEPTH * 0.7);
+ s->spinner_y = 0;
+
+ s->dx = 0;
+/* s->dx = ((BELLRAND(0.01) - 0.005) * speed); */
+ s->dy = 0;
+ s->dz = (BELLRAND(0.02) * speed);
+
+ s->spinner_speed = (BELLRAND(0.3) * speed);
+
+ s->spin_speed = (int) BELLRAND(2.0 / speed) + 1;
+ s->spin_tick = 0;
+
+ s->wave_position = 0;
+ s->wave_speed = (int) BELLRAND(3.0 / speed) + 1;
+ s->wave_tick = 0;
+
+ for (i = 0; i < GRID_SIZE; i++)
+ if (do_clock &&
+ !time_displayed_p &&
+ (i < GRID_SIZE-5) && /* display approx. once per 5 strips */
+ !(random() % (GRID_SIZE-5)*5))
+ {
+ int j;
+ char text[80];
+ time_t now = time ((time_t *) 0);
+ struct tm *tm = localtime (&now);
+ strftime (text, sizeof(text)-1, timefmt, tm);
+
+ /* render time into the strip */
+ for (j = 0; j < strlen(text) && i < GRID_SIZE; j++, i++)
+ {
+ s->glyphs[i] = char_map [((unsigned char *) text)[j]] + 1;
+ s->highlight[i] = True;
+ }
+
+ time_displayed_p = True;
+ }
+ else
+ {
+ int draw_p = (random() % 7);
+ int spin_p = (draw_p && !(random() % 20));
+ int g = (draw_p
+ ? mp->glyph_map[(random() % mp->nglyphs)] + 1
+ : 0);
+ if (spin_p) g = -g;
+ s->glyphs[i] = g;
+ s->highlight[i] = False;
+ }
+
+ s->spinner_glyph = - (mp->glyph_map[(random() % mp->nglyphs)] + 1);
+}
+
+
+/* Animate the strip one step. Reset if it has reached the bottom.
+ */
+static void
+tick_strip (ModeInfo *mi, strip *s)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+ int i;
+
+ if (mp->button_down_p)
+ return;
+
+ s->x += s->dx;
+ s->y += s->dy;
+ s->z += s->dz;
+
+ if (s->z > GRID_DEPTH * SPLASH_RATIO) /* splashed into screen */
+ {
+ reset_strip (mi, s);
+ return;
+ }
+
+ s->spinner_y += s->spinner_speed;
+ if (s->spinner_y >= GRID_SIZE)
+ {
+ if (s->erasing_p)
+ {
+ reset_strip (mi, s);
+ return;
+ }
+ else
+ {
+ s->erasing_p = True;
+ s->spinner_y = 0;
+ s->spinner_speed /= 2; /* erase it slower than we drew it */
+ }
+ }
+
+ /* Spin the spinners. */
+ s->spin_tick++;
+ if (s->spin_tick > s->spin_speed)
+ {
+ s->spin_tick = 0;
+ s->spinner_glyph = - (mp->glyph_map[(random() % mp->nglyphs)] + 1);
+ for (i = 0; i < GRID_SIZE; i++)
+ if (s->glyphs[i] < 0)
+ {
+ s->glyphs[i] = -(mp->glyph_map[(random() % mp->nglyphs)] + 1);
+ if (! (random() % 800)) /* sometimes they stop spinning */
+ s->glyphs[i] = -s->glyphs[i];
+ }
+ }
+
+ /* Move the color (brightness) wave. */
+ s->wave_tick++;
+ if (s->wave_tick > s->wave_speed)
+ {
+ s->wave_tick = 0;
+ s->wave_position++;
+ if (s->wave_position >= WAVE_SIZE)
+ s->wave_position = 0;
+ }
+}
+
+
+/* Draw a single character at the given position and brightness.
+ */
+static void
+draw_glyph (ModeInfo *mi, int glyph, Bool highlight,
+ GLfloat x, GLfloat y, GLfloat z,
+ GLfloat brightness)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat w = mp->tex_char_width;
+ GLfloat h = mp->tex_char_height;
+ GLfloat cx = 0, cy = 0;
+ GLfloat S = 1;
+ Bool spinner_p = (glyph < 0);
+
+ if (glyph == 0) abort();
+ if (glyph < 0) glyph = -glyph;
+
+ if (spinner_p)
+ brightness *= 1.5;
+
+ if (!do_texture)
+ {
+ S = 0.8;
+ x += 0.1;
+ y += 0.1;
+ }
+ else
+ {
+ int ccx = ((glyph - 1) % CHAR_COLS);
+ int ccy = ((glyph - 1) / CHAR_COLS);
+
+ cx = ccx * w;
+ cy = (mp->real_char_rows - ccy - 1) * h;
+
+ if (do_fog)
+ {
+ GLfloat depth;
+ depth = (z / GRID_DEPTH) + 0.5; /* z ratio from back/front */
+ depth = 0.2 + (depth * 0.8); /* scale to range [0.2 - 1.0] */
+ brightness *= depth; /* so no row goes all black. */
+ }
+ }
+
+ {
+ GLfloat r, g, b, a;
+
+ if (highlight)
+ brightness *= 2;
+
+ if (!do_texture && !spinner_p)
+ r = b = 0, g = 1;
+ else
+ r = g = b = 1;
+
+ a = brightness;
+
+ /* If the glyph is very close to the screen (meaning it is very large,
+ and is about to splash into the screen and vanish) then start fading
+ it out, proportional to how close to the glass it is.
+ */
+ if (z > GRID_DEPTH/2)
+ {
+ GLfloat ratio = ((z - GRID_DEPTH/2) /
+ ((GRID_DEPTH * SPLASH_RATIO) - GRID_DEPTH/2));
+ int i = ratio * WAVE_SIZE;
+
+ if (i < 0) i = 0;
+ else if (i >= WAVE_SIZE) i = WAVE_SIZE-1;
+
+ a *= mp->brightness_ramp[i];
+ }
+
+ glColor4f (r,g,b,a);
+ }
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f (0, 0, 1);
+ glTexCoord2f (cx, cy); glVertex3f (x, y, z);
+ glTexCoord2f (cx+w, cy); glVertex3f (x+S, y, z);
+ glTexCoord2f (cx+w, cy+h); glVertex3f (x+S, y+S, z);
+ glTexCoord2f (cx, cy+h); glVertex3f (x, y+S, z);
+ glEnd ();
+
+ if (wire && spinner_p)
+ {
+ glBegin (GL_LINES);
+ glVertex3f (x, y, z);
+ glVertex3f (x+S, y+S, z);
+ glVertex3f (x, y+S, z);
+ glVertex3f (x+S, y, z);
+ glEnd();
+ }
+
+ mi->polygon_count++;
+}
+
+
+/* Draw all the visible glyphs in the strip.
+ */
+static void
+draw_strip (ModeInfo *mi, strip *s)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < GRID_SIZE; i++)
+ {
+ int g = s->glyphs[i];
+ Bool below_p = (s->spinner_y >= i);
+
+ if (s->erasing_p)
+ below_p = !below_p;
+
+ if (g && below_p) /* don't draw cells below the spinner */
+ {
+ GLfloat brightness;
+ if (!do_waves)
+ brightness = 1.0;
+ else
+ {
+ int j = WAVE_SIZE - ((i + (GRID_SIZE - s->wave_position))
+ % WAVE_SIZE);
+ brightness = mp->brightness_ramp[j];
+ }
+
+ draw_glyph (mi, g, s->highlight[i],
+ s->x, s->y - i, s->z, brightness);
+ }
+ }
+
+ if (!s->erasing_p)
+ draw_glyph (mi, s->spinner_glyph, False,
+ s->x, s->y - s->spinner_y, s->z, 1.0);
+}
+
+
+/* qsort comparator for sorting strips by z position */
+static int
+cmp_strips (const void *aa, const void *bb)
+{
+ const strip *a = *(strip **) aa;
+ const strip *b = *(strip **) bb;
+ return ((int) (a->z * 10000) -
+ (int) (b->z * 10000));
+}
+
+
+/* Auto-tracking
+ */
+
+static void
+auto_track_init (ModeInfo *mi)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+ mp->last_view = 0;
+ mp->target_view = 0;
+ mp->view_x = nice_views[mp->last_view].x;
+ mp->view_y = nice_views[mp->last_view].y;
+ mp->view_steps = 100;
+ mp->view_tick = 0;
+ mp->auto_tracking_p = False;
+}
+
+
+static void
+auto_track (ModeInfo *mi)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+
+ if (! do_rotate)
+ return;
+ if (mp->button_down_p)
+ return;
+
+ /* if we're not moving, maybe start moving. Otherwise, do nothing. */
+ if (! mp->auto_tracking_p)
+ {
+ if (++mp->track_tick < 20/speed) return;
+ mp->track_tick = 0;
+ if (! (random() % 20))
+ mp->auto_tracking_p = True;
+ else
+ return;
+ }
+
+
+ {
+ GLfloat ox = nice_views[mp->last_view].x;
+ GLfloat oy = nice_views[mp->last_view].y;
+ GLfloat tx = nice_views[mp->target_view].x;
+ GLfloat ty = nice_views[mp->target_view].y;
+
+ /* move from A to B with sinusoidal deltas, so that it doesn't jerk
+ to a stop. */
+ GLfloat th = sin ((M_PI / 2) * (double) mp->view_tick / mp->view_steps);
+
+ mp->view_x = (ox + ((tx - ox) * th));
+ mp->view_y = (oy + ((ty - oy) * th));
+ mp->view_tick++;
+
+ if (mp->view_tick >= mp->view_steps)
+ {
+ mp->view_tick = 0;
+ mp->view_steps = (350.0 / speed);
+ mp->last_view = mp->target_view;
+ mp->target_view = (random() % (countof(nice_views) - 1)) + 1;
+ mp->auto_tracking_p = False;
+ }
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_matrix (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (80.0, 1/h, 1.0, 100);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 25.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+matrix_handle_event (ModeInfo *mi, XEvent *event)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ mp->button_down_p = True;
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ mp->button_down_p = False;
+ return True;
+ }
+
+ return False;
+}
+
+
+#if 0
+static Bool
+bigendian (void)
+{
+ union { int i; char c[sizeof(int)]; } u;
+ u.i = 1;
+ return !u.c[0];
+}
+#endif
+
+
+/* The image with the characters in it is 512x598, meaning that it needs to
+ be copied into a 512x1024 texture. But some machines can't handle textures
+ that large... And it turns out that we aren't using most of the characters
+ in that image anyway, since this program doesn't do anything that makes use
+ of the full range of Latin1 characters. So... this function tosses out the
+ last 32 of the Latin1 characters, resulting in a 512x506 image, which we
+ can then stuff in a 512x512 texture. Voila.
+
+ If this hack ever grows into something that displays full Latin1 text,
+ well then, Something Else Will Need To Be Done.
+
+ Since currently GLMatrix does not run textclient / xscreensaver-text,
+ it's not an issue. (XMatrix does that.)
+
+ */
+static void
+spank_image (matrix_configuration *mp, XImage *xi)
+{
+ int ch = xi->height / CHAR_ROWS;
+ int cut = 2;
+ unsigned char *bits = (unsigned char *) xi->data;
+ unsigned char *from, *to, *s, *end;
+ int L = xi->bytes_per_line * ch;
+/* int i;*/
+
+ /* Copy row 12 into 10 (which really means, copy 2 into 0,
+ since texture data is upside down.).
+ */
+ to = bits + (L * cut);
+ from = bits;
+ end = from + L;
+ s = from;
+ while (s < end)
+ *to++ = *s++;
+
+ /* Then, pull all the bits down by 2 rows.
+ */
+ to = bits;
+ from = bits + (L * cut);
+ end = bits + (L * CHAR_ROWS);
+ s = from;
+ while (s < end)
+ *to++ = *s++;
+
+ /* And clear out the rest, for good measure.
+ */
+ from = bits + (L * (CHAR_ROWS - cut));
+ end = bits + (L * CHAR_ROWS);
+ s = from;
+ while (s < end)
+ *s++ = 0;
+
+ xi->height -= (cut * ch);
+ mp->real_char_rows -= cut;
+
+# if 0
+ /* Finally, pull the map indexes back to match the new bits.
+ */
+ for (i = 0; i < countof(matrix_encoding); i++)
+ if (matrix_encoding[i] > (CHAR_COLS * (CHAR_ROWS - cut)))
+ matrix_encoding[i] -= (cut * CHAR_COLS);
+# endif
+}
+
+
+static void
+load_textures (ModeInfo *mi, Bool flip_p)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+ XImage *xi;
+ int x, y;
+ int cw, ch;
+ int orig_w, orig_h;
+
+ /* The Matrix image is 512x598 -- but GL texture sizes must be powers of 2.
+ So we waste some padding rows to round up.
+ */
+ xi = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ matrix3_png, sizeof(matrix3_png));
+ orig_w = xi->width;
+ orig_h = xi->height;
+ mp->real_char_rows = CHAR_ROWS;
+ spank_image (mp, xi);
+
+ if (xi->height != 512 && xi->height != 1024)
+ {
+ xi->height = (xi->height < 512 ? 512 : 1024);
+ xi->data = realloc (xi->data, xi->height * xi->bytes_per_line);
+ if (!xi->data)
+ {
+ fprintf(stderr, "%s: out of memory\n", progname);
+ exit(1);
+ }
+ }
+
+ if (xi->width != 512) abort();
+ if (xi->height != 512 && xi->height != 1024) abort();
+
+ /* char size in pixels */
+ cw = orig_w / CHAR_COLS;
+ ch = orig_h / CHAR_ROWS;
+
+ /* char size in ratio of final (padded) texture size */
+ mp->tex_char_width = (GLfloat) cw / xi->width;
+ mp->tex_char_height = (GLfloat) ch / xi->height;
+
+ /* Flip each character's bits horizontally -- we could also just do this
+ by reversing the texture coordinates on the quads, but on some systems
+ that slows things down a lot.
+ */
+ if (flip_p)
+ {
+ int xx, col;
+ unsigned long buf[100];
+ for (y = 0; y < xi->height; y++)
+ for (col = 0, xx = 0; col < CHAR_COLS; col++, xx += cw)
+ {
+ for (x = 0; x < cw; x++)
+ buf[x] = XGetPixel (xi, xx+x, y);
+ for (x = 0; x < cw; x++)
+ XPutPixel (xi, xx+x, y, buf[cw-x-1]);
+ }
+ }
+
+ /* The pixmap is a color image with no transparency. Set the texture's
+ alpha to be the green channel, and set the green channel to be 100%.
+ */
+ {
+ int rpos, gpos, bpos, apos; /* bitfield positions */
+#if 0
+ /* #### Cherub says that the little-endian case must be taken on MacOSX,
+ or else the colors/alpha are the wrong way around. How can
+ that be the case?
+ */
+ if (bigendian())
+ rpos = 24, gpos = 16, bpos = 8, apos = 0;
+ else
+#endif
+ rpos = 0, gpos = 8, bpos = 16, apos = 24;
+
+ for (y = 0; y < xi->height; y++)
+ for (x = 0; x < xi->width; x++)
+ {
+ unsigned long p = XGetPixel (xi, x, y);
+ unsigned char r = (p >> rpos) & 0xFF;
+ unsigned char g = (p >> gpos) & 0xFF;
+ unsigned char b = (p >> bpos) & 0xFF;
+ unsigned char a = g;
+ g = 0xFF;
+ p = (r << rpos) | (g << gpos) | (b << bpos) | (a << apos);
+ XPutPixel (xi, x, y, p);
+ }
+ }
+
+ /* Now load the texture into GL.
+ */
+ clear_gl_error();
+ glGenTextures (1, &mp->texture);
+
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
+ /* messes up -fps */
+ /* glPixelStorei (GL_UNPACK_ROW_LENGTH, xi->width);*/
+ glBindTexture (GL_TEXTURE_2D, mp->texture);
+ check_gl_error ("texture init");
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, xi->width, xi->height, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, xi->data);
+ {
+ char buf[255];
+ sprintf (buf, "creating %dx%d texture:", xi->width, xi->height);
+ check_gl_error (buf);
+ }
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ /* I'd expect CLAMP to be the thing to do here, but oddly, we get a
+ faint solid green border around the texture if it is *not* REPEAT!
+ */
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ check_gl_error ("texture param");
+
+ XDestroyImage (xi);
+}
+
+
+ENTRYPOINT void
+init_matrix (ModeInfo *mi)
+{
+ matrix_configuration *mp;
+ int wire = MI_IS_WIREFRAME(mi);
+ Bool flip_p = 0;
+ int i;
+
+ if (wire)
+ do_texture = False;
+
+ MI_INIT (mi, mps);
+
+ mp = &mps[MI_SCREEN(mi)];
+ mp->glx_context = init_GL(mi);
+
+ if (!mode_str || !*mode_str || !strcasecmp(mode_str, "matrix"))
+ {
+ flip_p = 1;
+ mp->glyph_map = matrix_encoding;
+ mp->nglyphs = countof(matrix_encoding);
+ }
+ else if (!strcasecmp (mode_str, "dna"))
+ {
+ flip_p = 0;
+ mp->glyph_map = dna_encoding;
+ mp->nglyphs = countof(dna_encoding);
+ }
+ else if (!strcasecmp (mode_str, "bin") ||
+ !strcasecmp (mode_str, "binary"))
+ {
+ flip_p = 0;
+ mp->glyph_map = binary_encoding;
+ mp->nglyphs = countof(binary_encoding);
+ }
+ else if (!strcasecmp (mode_str, "hex") ||
+ !strcasecmp (mode_str, "hexadecimal"))
+ {
+ flip_p = 0;
+ mp->glyph_map = hex_encoding;
+ mp->nglyphs = countof(hex_encoding);
+ }
+ else if (!strcasecmp (mode_str, "dec") ||
+ !strcasecmp (mode_str, "decimal"))
+ {
+ flip_p = 0;
+ mp->glyph_map = decimal_encoding;
+ mp->nglyphs = countof(decimal_encoding);
+ }
+ else
+ {
+ fprintf (stderr,
+ "%s: `mode' must be matrix, dna, binary, or hex: not `%s'\n",
+ progname, mode_str);
+ exit (1);
+ }
+
+ reshape_matrix (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glShadeModel(GL_SMOOTH);
+
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_CULL_FACE);
+ glEnable(GL_NORMALIZE);
+
+ if (do_texture)
+ load_textures (mi, flip_p);
+
+ /* to scale coverage-percent to strips, this number looks about right... */
+ mp->nstrips = (int) (density * 2.2);
+ if (mp->nstrips < 1) mp->nstrips = 1;
+ else if (mp->nstrips > 2000) mp->nstrips = 2000;
+
+
+ mp->strips = calloc (mp->nstrips, sizeof(strip));
+ for (i = 0; i < mp->nstrips; i++)
+ {
+ strip *s = &mp->strips[i];
+ reset_strip (mi, s);
+
+ /* If we start all strips from zero at once, then the first few seconds
+ of the animation are much denser than normal. So instead, set all
+ the initial strips to erase-mode with random starting positions.
+ As these die off at random speeds and are re-created, we'll get a
+ more consistent density. */
+ s->erasing_p = True;
+ s->spinner_y = frand(GRID_SIZE);
+ memset (s->glyphs, 0, sizeof(s->glyphs)); /* no visible glyphs */
+ }
+
+ /* Compute the brightness ramp.
+ */
+ for (i = 0; i < WAVE_SIZE; i++)
+ {
+ GLfloat j = ((WAVE_SIZE - i) / (GLfloat) (WAVE_SIZE - 1));
+ j *= (M_PI / 2); /* j ranges from 0.0 - PI/2 */
+ j = sin (j); /* j ranges from 0.0 - 1.0 */
+ j = 0.2 + (j * 0.8); /* j ranges from 0.2 - 1.0 */
+ mp->brightness_ramp[i] = j;
+ /* printf("%2d %8.2f\n", i, j); */
+ }
+
+
+ auto_track_init (mi);
+}
+
+
+#ifdef DEBUG
+
+static void
+draw_grid (ModeInfo *mi)
+{
+ if (!MI_IS_WIREFRAME(mi))
+ {
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+ }
+ glPushMatrix();
+
+ glColor3f(1, 1, 1);
+ glBegin(GL_LINES);
+ glVertex3f(-GRID_SIZE, 0, 0); glVertex3f(GRID_SIZE, 0, 0);
+ glVertex3f(0, -GRID_SIZE, 0); glVertex3f(0, GRID_SIZE, 0);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, 0);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, 0);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, 0);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, 0);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glEnd();
+ glBegin(GL_LINES);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f(-GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, -GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, GRID_DEPTH/2);
+ glVertex3f( GRID_SIZE/2, GRID_SIZE/2, GRID_DEPTH/2);
+ glEnd();
+ glPopMatrix();
+ if (!MI_IS_WIREFRAME(mi))
+ {
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+ }
+}
+#endif /* DEBUG */
+
+
+ENTRYPOINT void
+draw_matrix (ModeInfo *mi)
+{
+ matrix_configuration *mp = &mps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!mp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(mp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ if (do_texture)
+ {
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+
+ /* Jeff Epler points out:
+ By using GL_ONE instead of GL_SRC_ONE_MINUS_ALPHA, glyphs are
+ added to each other, so that a bright glyph with a darker one
+ in front is a little brighter than the bright glyph alone.
+ */
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE);
+ }
+
+ if (do_rotate)
+ {
+ glRotatef (mp->view_x, 1, 0, 0);
+ glRotatef (mp->view_y, 0, 1, 0);
+ }
+
+#ifdef DEBUG
+# if 0
+ glScalef(0.5, 0.5, 0.5);
+# endif
+# if 0
+ glRotatef(-30, 0, 1, 0);
+# endif
+ draw_grid (mi);
+#endif
+
+ mi->polygon_count = 0;
+
+ /* Render (and tick) each strip, starting at the back
+ (draw the ones farthest from the camera first, to make
+ the alpha transparency work out right.)
+ */
+ {
+ strip **sorted = malloc (mp->nstrips * sizeof(*sorted));
+ for (i = 0; i < mp->nstrips; i++)
+ sorted[i] = &mp->strips[i];
+ qsort (sorted, i, sizeof(*sorted), cmp_strips);
+
+ for (i = 0; i < mp->nstrips; i++)
+ {
+ strip *s = sorted[i];
+ tick_strip (mi, s);
+ draw_strip (mi, s);
+ }
+ free (sorted);
+ }
+
+ auto_track (mi);
+
+#if 0
+ glBegin(GL_QUADS);
+ glColor3f(1,1,1);
+ glTexCoord2f (0,0); glVertex3f(-15,-15,0);
+ glTexCoord2f (0,1); glVertex3f(-15,15,0);
+ glTexCoord2f (1,1); glVertex3f(15,15,0);
+ glTexCoord2f (1,0); glVertex3f(15,-15,0);
+ glEnd();
+#endif
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("GLMatrix", glmatrix, matrix)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/glmatrix.man b/hacks/glx/glmatrix.man
new file mode 100644
index 0000000..9290290
--- /dev/null
+++ b/hacks/glx/glmatrix.man
@@ -0,0 +1,116 @@
+.TH XScreenSaver 1 "30-Oct-99" "X Version 11"
+.SH NAME
+glmatrix - simulates the title sequence effect of the movie
+.SH SYNOPSIS
+.B glmatrix
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fIusecs\fP]
+[\-speed \fIratio\fP]
+[\-density \fIpct\fP]
+[\-no\-fog]
+[\-no\-waves]
+[\-no\-rotate]
+[\-binary]
+[\-hexadecimal]
+[\-dna]
+[\-clock]
+[\-timefmt \fIfmt\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIglmatrix\fP program draws the 3D "digital rain" effect, as seen
+in the title sequence of the Wachowski brothers' film, "The Matrix".
+
+Also see
+.BR xmatrix (MANSUFFIX)
+for a 2D rendering of the similar effect that appeared on the
+computer monitors actually \fIin\fP the movie.
+.SH OPTIONS
+.I glmatrix
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between frames of the animation, in microseconds: default 30000.
+.TP 8
+.B \-speed \fIratio\fP
+How fast the glyphs should move; default 1.0. 2.0 means twice as fast,
+0.5 means half as fast.
+.TP 8
+.B \-density \fIpercentage\fP
+The approximate percentage of the screen that should be filled with
+characters at any given time. Default 20%.
+.TP 8
+.B \-no\-fog
+By default, glyphs are dimmer the farther away they are. This
+argument disables that.
+.TP 8
+.B \-no\-waves
+By default, waves of color roll down the columns of glyphs. This
+argument disables that.
+.TP 8
+.B \-no-rotate\fP
+By default, the scene slowly tilts and rotates. This
+argument disables that.
+.TP 8
+.B \-binary\fP
+Instead of displaying Matrix glyphs, only display ones and zeros.
+.TP 8
+.B \-hexadecimal\fP
+Instead of displaying Matrix glyphs, display hexadecimal digits.
+.TP 8
+.B \-dna\fP
+Instead of displaying Matrix glyphs, display genetic code
+(guanine, adenine, thymine, and cytosine.)
+.TP 8
+.B \-clock\fP
+Hide a clock displaying the current time somewhere in the glyphs.
+.TP 8
+.B \-timefmt\fP \fIstrftime-string\fP
+How to format the clock when \fI\-clock\fP is specified.
+Default "\ %l%M%p\ ".
+.TP 8
+.B \-speed \fIratio\fP
+Less than 1 for slower, greater than 1 for faster. Default 1.
+.TP 8
+.B \-wireframe
+Just draw boxes instead of textured characters.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR xmatrix (MANSUFFIX),
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1999-2003 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>, 8-Jun-2003.
diff --git a/hacks/glx/glplanet.c b/hacks/glx/glplanet.c
new file mode 100644
index 0000000..f26a4ad
--- /dev/null
+++ b/hacks/glx/glplanet.c
@@ -0,0 +1,847 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* glplanet --- 3D rotating planet, e.g., Earth.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ *
+ * 10-Nov-14: jwz@jwz.org Night map. Better stars.
+ * 16-Jan-02: jwz@jwz.org gdk_pixbuf support.
+ * 21-Mar-01: jwz@jwz.org Broke sphere routine out into its own file.
+ *
+ * 9-Oct-98: dek@cgl.ucsf.edu Added stars.
+ *
+ * 8-Oct-98: jwz@jwz.org Made the 512x512x1 xearth image be built in.
+ * Made it possible to load XPM or XBM files.
+ * Made the planet bounce and roll around.
+ *
+ * 8-Oct-98: Released initial version of "glplanet"
+ * (David Konerding, dek@cgl.ucsf.edu)
+ */
+
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*imageForeground: Green \n" \
+ "*imageBackground: Blue \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_planet 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL /* whole file */
+
+#include "sphere.h"
+
+#ifdef HAVE_XMU
+# ifndef VMS
+# include <X11/Xmu/Drawing.h>
+#else /* VMS */
+# include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#define DEF_ROTATE "True"
+#define DEF_ROLL "True"
+#define DEF_WANDER "True"
+#define DEF_SPIN "1.0"
+#define DEF_TEXTURE "True"
+#define DEF_STARS "True"
+#define DEF_RESOLUTION "128"
+#define DEF_IMAGE "BUILTIN"
+#define DEF_IMAGE2 "BUILTIN"
+
+#define BLENDED_TERMINATOR
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+static int do_rotate;
+static int do_roll;
+static int do_wander;
+static int do_texture;
+static int do_stars;
+static char *which_image;
+static char *which_image2;
+static int resolution;
+static GLfloat spin_arg;
+
+static XrmOptionDescRec opts[] = {
+ {"-rotate", ".rotate", XrmoptionNoArg, "true" },
+ {"+rotate", ".rotate", XrmoptionNoArg, "false" },
+ {"-roll", ".roll", XrmoptionNoArg, "true" },
+ {"+roll", ".roll", XrmoptionNoArg, "false" },
+ {"-wander", ".wander", XrmoptionNoArg, "true" },
+ {"+wander", ".wander", XrmoptionNoArg, "false" },
+ {"-texture", ".texture", XrmoptionNoArg, "true" },
+ {"+texture", ".texture", XrmoptionNoArg, "false" },
+ {"-stars", ".stars", XrmoptionNoArg, "true" },
+ {"+stars", ".stars", XrmoptionNoArg, "false" },
+ {"-spin", ".spin", XrmoptionSepArg, 0 },
+ {"-image", ".image", XrmoptionSepArg, 0 },
+ {"-image2", ".image2", XrmoptionSepArg, 0 },
+ {"-resolution", ".resolution", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+ {&do_roll, "roll", "Roll", DEF_ROLL, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_stars, "stars", "Stars", DEF_STARS, t_Bool},
+ {&spin_arg, "spin", "Spin", DEF_SPIN, t_Float},
+ {&which_image, "image", "Image", DEF_IMAGE, t_String},
+ {&which_image2,"image2", "Image", DEF_IMAGE2, t_String},
+ {&resolution, "resolution","Resolution", DEF_RESOLUTION, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt planet_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct planet_description =
+{"planet", "init_planet", "draw_planet", NULL,
+ "draw_planet", "init_planet", "free_planet", &planet_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Animates texture mapped sphere (planet)", 0, NULL};
+#endif
+
+#include "images/gen/earth_png.h"
+#include "images/gen/earth_night_png.h"
+
+#include "ximage-loader.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+
+/*-
+ * slices and stacks are used in the sphere parameterization routine.
+ * more slices and stacks will increase the quality of the sphere,
+ * at the expense of rendering speed
+ */
+
+/* structure for holding the planet data */
+typedef struct {
+ GLuint platelist;
+ GLuint shadowlist;
+ GLuint latlonglist;
+ GLuint starlist;
+ int starcount;
+ int screen_width, screen_height;
+ GLXContext *glx_context;
+ Window window;
+ GLfloat z;
+ GLfloat tilt;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ GLuint tex1, tex2;
+ int draw_axis;
+
+} planetstruct;
+
+
+static planetstruct *planets = NULL;
+
+
+/* Set up and enable texturing on our object */
+static void
+setup_xpm_texture (ModeInfo *mi, const unsigned char *data, unsigned long size)
+{
+ XImage *image = image_data_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ data, size);
+ char buf[1024];
+ clear_gl_error();
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ /* iOS invalid enum:
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, image->width);
+ */
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ image->width, image->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, image->data);
+ sprintf (buf, "builtin texture (%dx%d)", image->width, image->height);
+ check_gl_error(buf);
+}
+
+
+static Bool
+setup_file_texture (ModeInfo *mi, char *filename)
+{
+ Display *dpy = mi->dpy;
+ Visual *visual = mi->xgwa.visual;
+ char buf[1024];
+
+ XImage *image = file_to_ximage (dpy, visual, filename);
+ if (!image) return False;
+
+ clear_gl_error();
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, image->width);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ image->width, image->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, image->data);
+ sprintf (buf, "texture: %.100s (%dx%d)",
+ filename, image->width, image->height);
+ check_gl_error(buf);
+ return True;
+}
+
+
+static void
+setup_texture (ModeInfo * mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+
+ glGenTextures (1, &gp->tex1);
+ glBindTexture (GL_TEXTURE_2D, gp->tex1);
+
+ /* Must be after glBindTexture */
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ if (!which_image ||
+ !*which_image ||
+ !strcmp(which_image, "BUILTIN"))
+ {
+ BUILTIN1:
+ setup_xpm_texture (mi, earth_png, sizeof(earth_png));
+ }
+ else
+ {
+ if (! setup_file_texture (mi, which_image))
+ goto BUILTIN1;
+ }
+
+ check_gl_error("texture 1 initialization");
+
+ glGenTextures (1, &gp->tex2);
+ glBindTexture (GL_TEXTURE_2D, gp->tex2);
+
+ /* Must be after glBindTexture */
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ if (!which_image2 ||
+ !*which_image2 ||
+ !strcmp(which_image2, "BUILTIN"))
+ {
+ BUILTIN2:
+ setup_xpm_texture (mi, earth_night_png, sizeof(earth_night_png));
+ }
+ else
+ {
+ if (! setup_file_texture (mi, which_image2))
+ goto BUILTIN2;
+ }
+
+ check_gl_error("texture 2 initialization");
+
+ /* Need to flip the texture top for bottom for some reason. */
+ glMatrixMode (GL_TEXTURE);
+ glScalef (1, -1, 1);
+ glMatrixMode (GL_MODELVIEW);
+}
+
+
+static void
+init_stars (ModeInfo *mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ int i, j;
+ int width = MI_WIDTH(mi);
+ int height = MI_HEIGHT(mi);
+ int size = (width > height ? width : height);
+ int nstars = size * size / 80;
+ int max_size = 3;
+ GLfloat inc = 0.5;
+ int steps = max_size / inc;
+ GLfloat scale = 1;
+
+ if (MI_WIDTH(mi) > 2560) { /* Retina displays */
+ scale *= 2;
+ nstars /= 2;
+ }
+
+ gp->starlist = glGenLists(1);
+ glNewList(gp->starlist, GL_COMPILE);
+ for (j = 1; j <= steps; j++)
+ {
+ glPointSize(inc * j * scale);
+ glBegin (GL_POINTS);
+ for (i = 0; i < nstars / steps; i++)
+ {
+ GLfloat d = 0.1;
+ GLfloat r = 0.15 + frand(0.3);
+ GLfloat g = r + frand(d) - d;
+ GLfloat b = r + frand(d) - d;
+
+ GLfloat x = frand(1)-0.5;
+ GLfloat y = frand(1)-0.5;
+ GLfloat z = ((random() & 1)
+ ? frand(1)-0.5
+ : (BELLRAND(1)-0.5)/12); /* milky way */
+ d = sqrt (x*x + y*y + z*z);
+ x /= d;
+ y /= d;
+ z /= d;
+ glColor3f (r, g, b);
+ glVertex3f (x, y, z);
+ gp->starcount++;
+ }
+ glEnd ();
+ }
+ glEndList ();
+
+ check_gl_error("stars initialization");
+}
+
+
+#ifdef BLENDED_TERMINATOR
+static void
+terminator_tube (ModeInfo *mi, int resolution)
+{
+ Bool wire = MI_IS_WIREFRAME(mi);
+ GLfloat th;
+ GLfloat step = M_PI*2 / resolution;
+ GLfloat thickness = 0.1; /* Dusk is about an hour wide. */
+ GLfloat c1[] = { 0, 0, 0, 1 };
+ GLfloat c2[] = { 0, 0, 0, 0 };
+
+ glPushMatrix();
+ if (wire)
+ {
+ c1[0] = c1[1] = 0.5;
+ c2[2] = 0.5;
+ glLineWidth (4);
+ }
+ glRotatef (90, 1, 0, 0);
+ glScalef (1.02, 1.02, 1.02);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (th = 0; th < M_PI*2 + step; th += step)
+ {
+ GLfloat x = cos(th);
+ GLfloat y = sin(th);
+ glColor4fv (c1);
+ if (!do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c1);
+ glNormal3f (x, y, 0);
+ glVertex3f (x, y, thickness);
+ glColor4fv (c2);
+ if (!do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c2);
+ glVertex3f (x, y, -thickness);
+ }
+ glEnd();
+
+ /* There's a bit of a spike in the shading where the tube overlaps
+ the sphere, so extend the sphere a lot to try and avoid that. */
+# if 0 /* Nope, that doesn't help. */
+ glColor4fv (c1);
+ if (!do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c1);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (th = 0; th < M_PI*2 + step; th += step)
+ {
+ GLfloat x = cos(th);
+ GLfloat y = sin(th);
+ glNormal3f (x, y, 0);
+ glVertex3f (x, y, thickness);
+ glVertex3f (x, y, thickness + 10);
+ }
+ glEnd();
+
+ glColor4fv (c2);
+ if (!do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c2);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (th = 0; th < M_PI*2 + step; th += step)
+ {
+ GLfloat x = cos(th);
+ GLfloat y = sin(th);
+ glNormal3f (x, y, 0);
+ glVertex3f (x, y, -thickness);
+ glVertex3f (x, y, -thickness - 10);
+ }
+ glEnd();
+# endif /* 0 */
+
+ glPopMatrix();
+}
+#endif /* BLENDED_TERMINATOR */
+
+
+ENTRYPOINT void
+reshape_planet (ModeInfo *mi, int width, int height)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glXMakeCurrent(MI_DISPLAY(mi), gp->window, *(gp->glx_context));
+
+ glViewport(0, 0, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -h, h, 5.0, 200.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0, 0.0, -40);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (h, h, h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+planet_handle_event (ModeInfo *mi, XEvent *event)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, gp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &gp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_planet (ModeInfo * mi)
+{
+ planetstruct *gp;
+ int screen = MI_SCREEN(mi);
+ Bool wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, planets);
+ gp = &planets[screen];
+
+ gp->window = MI_WINDOW(mi);
+
+ if ((gp->glx_context = init_GL(mi)) != NULL) {
+ reshape_planet(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ {
+ char *f = get_string_resource(mi->dpy, "imageForeground", "Foreground");
+ char *b = get_string_resource(mi->dpy, "imageBackground", "Background");
+ char *s;
+ if (!f) f = strdup("white");
+ if (!b) b = strdup("black");
+
+ for (s = f + strlen(f)-1; s > f; s--)
+ if (*s == ' ' || *s == '\t')
+ *s = 0;
+ for (s = b + strlen(b)-1; s > b; s--)
+ if (*s == ' ' || *s == '\t')
+ *s = 0;
+
+ free (f);
+ free (b);
+ }
+
+ {
+ double spin_speed = 0.1;
+ double wander_speed = 0.005;
+ gp->rot = make_rotator (do_roll ? spin_speed : 0,
+ do_roll ? spin_speed : 0,
+ 0, 1,
+ do_wander ? wander_speed : 0,
+ True);
+ gp->z = frand (1.0);
+ gp->tilt = frand (23.4);
+ gp->trackball = gltrackball_init (True);
+ }
+
+ if (!wire && !do_texture)
+ {
+ GLfloat pos[4] = {1, 1, 1, 0};
+ GLfloat amb[4] = {0, 0, 0, 1};
+ GLfloat dif[4] = {1, 1, 1, 1};
+ GLfloat spc[4] = {0, 1, 1, 1};
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ if (wire)
+ do_texture = False;
+
+ if (do_texture)
+ setup_texture (mi);
+
+ if (do_stars)
+ init_stars (mi);
+
+ /* construct the polygons of the planet
+ */
+ gp->platelist = glGenLists(1);
+ glNewList (gp->platelist, GL_COMPILE);
+ glFrontFace(GL_CCW);
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (resolution, resolution, wire);
+ glPopMatrix();
+ glEndList();
+
+ gp->shadowlist = glGenLists(1);
+ glNewList (gp->shadowlist, GL_COMPILE);
+ glFrontFace(GL_CCW);
+
+ if (wire)
+ glColor4f (0.5, 0.5, 0, 1);
+# ifdef BLENDED_TERMINATOR
+ else
+ {
+ GLfloat c[] = { 0, 0, 0, 1 };
+ glColor4fv (c);
+ if (!do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ }
+# endif
+
+ glPushMatrix();
+ glScalef (1.01, 1.01, 1.01);
+ unit_dome (resolution, resolution, wire);
+
+# ifdef BLENDED_TERMINATOR
+ terminator_tube (mi, resolution);
+ if (!wire)
+ {
+ /* We have to draw the transparent side of the mask too,
+ though I'm not sure why. */
+ GLfloat c[] = { 0, 0, 0, 0 };
+ glColor4fv (c);
+ if (!do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ glRotatef (180, 1, 0, 0);
+ unit_dome (resolution, resolution, wire);
+ }
+# endif
+
+ glPopMatrix();
+ glEndList();
+
+ /* construct the polygons of the latitude/longitude/axis lines.
+ */
+ gp->latlonglist = glGenLists(1);
+ glNewList (gp->latlonglist, GL_COMPILE);
+ glPushMatrix ();
+ glRotatef (90, 1, 0, 0); /* unit_sphere is off by 90 */
+ glRotatef (8, 0, 1, 0); /* line up the time zones */
+ unit_sphere (12, 24, 1);
+ unit_sphere (12, 24, 1);
+ glBegin(GL_LINES);
+ glVertex3f(0, -2, 0);
+ glVertex3f(0, 2, 0);
+ glEnd();
+ glPopMatrix ();
+ glEndList();
+}
+
+
+ENTRYPOINT void
+draw_planet (ModeInfo * mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ double x, y, z;
+
+ if (!gp->glx_context)
+ return;
+
+ glDrawBuffer(GL_BACK);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glXMakeCurrent (dpy, window, *(gp->glx_context));
+
+ mi->polygon_count = 0;
+
+ if (gp->button_down_p)
+ gp->draw_axis = 60;
+ else if (!gp->draw_axis && !(random() % 1000))
+ gp->draw_axis = 60 + (random() % 90);
+
+ if (do_rotate && !gp->button_down_p)
+ {
+ gp->z -= 0.001 * spin_arg; /* the sun sets in the west */
+ if (gp->z < 0) gp->z += 1;
+ }
+
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_POINT_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+
+ glPushMatrix();
+
+ get_position (gp->rot, &x, &y, &z, !gp->button_down_p);
+ x = (x - 0.5) * 6;
+ y = (y - 0.5) * 6;
+ z = (z - 0.5) * 3;
+ glTranslatef(x, y, z);
+
+ gltrackball_rotate (gp->trackball);
+
+ if (do_roll)
+ {
+ get_rotation (gp->rot, &x, &y, 0, !gp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ }
+ else
+ glRotatef (current_device_rotation(), 0, 0, 1);
+
+ if (do_stars)
+ {
+ glDisable(GL_TEXTURE_2D);
+ glPushMatrix();
+ glScalef (60, 60, 60);
+ glRotatef (90, 1, 0, 0);
+ glRotatef (35, 1, 0, 0);
+ glCallList (gp->starlist);
+ mi->polygon_count += gp->starcount;
+ glPopMatrix();
+ glClear(GL_DEPTH_BUFFER_BIT);
+ }
+
+ glRotatef (90, 1, 0, 0);
+ glRotatef (35, 1, 0, 0);
+ glRotatef (10, 0, 1, 0);
+ glRotatef (120, 0, 0, 1);
+
+ glScalef (3, 3, 3);
+
+# ifdef HAVE_MOBILE
+ glScalef (2, 2, 2);
+# endif
+
+ if (wire)
+ glColor3f (0, 0, 0.5);
+ else if (do_texture)
+ {
+ glColor4f (1, 1, 1, 1);
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, gp->tex1);
+ }
+ else
+ {
+ GLfloat c[] = { 0, 0.5, 0, 1 };
+ glColor4fv (c);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ }
+
+ glPushMatrix();
+ glRotatef (gp->z * 360, 0, 0, 1);
+ glCallList (gp->platelist);
+ mi->polygon_count += resolution*resolution;
+ glPopMatrix();
+
+ if (wire)
+ {
+ glPushMatrix();
+ glRotatef (gp->tilt, 1, 0, 0);
+ glColor3f(1, 0, 0);
+ glLineWidth(4);
+ glCallList (gp->shadowlist);
+ glLineWidth(1);
+ mi->polygon_count += resolution*(resolution/2);
+ glPopMatrix();
+ }
+
+ else if (!do_texture || gp->tex2)
+ {
+ /* Originally we just used GL_LIGHT0 to produce the day/night sides of
+ the planet, but that always looked crappy, even with a vast number of
+ polygons, because the day/night terminator didn't exactly line up with
+ the polygon edges.
+ */
+
+#ifndef BLENDED_TERMINATOR
+
+ /* Method 1, use the depth buffer as a stencil.
+
+ - Draw the full "day" sphere;
+ - Clear the depth buffer;
+ - Draw a rotated/tilted half-sphere into the depth buffer only,
+ on the Eastern hemisphere, putting non-zero depth only on the
+ sunlit side;
+ - Draw the full "night" sphere, which will clip to dark parts only.
+
+ That lets us divide the sphere into the two maps, and the dividing
+ line can be at any angle, regardless of polygon layout.
+
+ The half-sphere is scaled slightly larger to avoid polygon fighting,
+ since those triangles won't exactly line up because of the rotation.
+
+ The downside of this is that the day/night terminator is 100% sharp.
+ */
+ glClear (GL_DEPTH_BUFFER_BIT);
+ glColorMask (0, 0, 0, 0);
+ glDisable (GL_TEXTURE_2D);
+ glPushMatrix();
+ glRotatef (gp->tilt, 1, 0, 0);
+ glScalef (1.01, 1.01, 1.01);
+ glCallList (gp->shadowlist); /* Fill in depth on sunlit side */
+ mi->polygon_count += resolution*(resolution/2);
+ glPopMatrix();
+ glColorMask (1, 1, 1, 1);
+
+ if (do_texture)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, gp->tex2);
+ }
+ else
+ {
+ GLfloat c[] = { 0, 0, 0.5, 1 };
+ glColor4fv (c);
+ if (! do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ }
+
+ glPushMatrix();
+ glRotatef (gp->z * 360, 0, 0, 1);
+ glCallList (gp->platelist); /* Fill in color on night side */
+ mi->polygon_count += resolution*resolution;
+ glPopMatrix();
+
+#else /* BLENDED_TERMINATOR */
+
+ /* Method 2, use the alpha buffer as a stencil.
+ - Draw the full "day" sphere;
+ - Clear the depth buffer;
+ - Clear the alpha buffer;
+ - Draw a rotated/tilted half-sphere into the alpha buffer only,
+ on the Eastern hemisphere, putting non-zero alpha only on the
+ sunlit side;
+ - Also draw a fuzzy terminator ring into the alpha buffer;
+ - Clear the depth buffer again;
+ - Draw the full "night" sphere, which will blend to dark parts only.
+ */
+ glColorMask (0, 0, 0, 1);
+ glClear (GL_COLOR_BUFFER_BIT);
+ glClear (GL_DEPTH_BUFFER_BIT);
+ glDisable (GL_TEXTURE_2D);
+
+ glPushMatrix();
+ glRotatef (gp->tilt, 1, 0, 0);
+ glScalef (1.01, 1.01, 1.01);
+ glCallList (gp->shadowlist); /* Fill in alpha on sunlit side */
+ mi->polygon_count += resolution*(resolution/2);
+ glPopMatrix();
+
+ glClear (GL_DEPTH_BUFFER_BIT);
+
+ glColorMask (1, 1, 1, 1);
+ {
+ GLfloat c[] = { 1, 1, 1, 1 };
+ glColor4fv (c);
+ if (! do_texture)
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ }
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA);
+
+ if (do_texture)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, gp->tex2);
+ }
+ else
+ {
+ GLfloat c[] = { 0, 0, 0.5, 1 };
+ glColor4fv (c);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ glEnable (GL_LIGHTING);
+ }
+
+ glPushMatrix();
+ glRotatef (gp->z * 360, 0, 0, 1);
+ glCallList (gp->platelist); /* Fill in color on night side */
+ mi->polygon_count += resolution*resolution;
+ glPopMatrix();
+ glDisable (GL_BLEND);
+ glBlendFunc (GL_ONE, GL_ZERO);
+
+#endif /* BLENDED_TERMINATOR */
+ }
+
+ if (gp->draw_axis)
+ {
+ glPushMatrix();
+ glRotatef (gp->z * 360, 0.0, 0.0, 1.0);
+ glScalef (1.02, 1.02, 1.02);
+ glDisable (GL_TEXTURE_2D);
+ glDisable (GL_LIGHTING);
+ glDisable (GL_LINE_SMOOTH);
+ glColor3f (0.1, 0.3, 0.1);
+ glCallList (gp->latlonglist);
+ mi->polygon_count += 24*24;
+ glPopMatrix();
+ if (!wire && !do_texture)
+ glEnable (GL_LIGHTING);
+ if (gp->draw_axis) gp->draw_axis--;
+ }
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_planet (ModeInfo * mi)
+{
+ planetstruct *gp = &planets[MI_SCREEN(mi)];
+
+ if (gp->glx_context) {
+ glXMakeCurrent(MI_DISPLAY(mi), gp->window, *(gp->glx_context));
+
+ if (glIsList(gp->platelist))
+ glDeleteLists(gp->platelist, 1);
+ if (glIsList(gp->starlist))
+ glDeleteLists(gp->starlist, 1);
+ }
+}
+
+
+XSCREENSAVER_MODULE_2 ("GLPlanet", glplanet, planet)
+
+#endif
diff --git a/hacks/glx/glplanet.man b/hacks/glx/glplanet.man
new file mode 100644
index 0000000..6a62dc9
--- /dev/null
+++ b/hacks/glx/glplanet.man
@@ -0,0 +1,75 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+glplanet - rotating 3d texture-mapped planet.
+.SH SYNOPSIS
+.B glplanet
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-image \fIfile\fP]
+[\-image2 \fIfile\fP]
+[\-resolution \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Draws a planet bouncing around in space. The built-in images are day and
+night maps of the Earth, but you can wrap any Equirectangular-projected
+map onto the sphere, e.g., the planetary textures included
+with \fIssystem.\fP
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-image \fIfile\fP
+The day texture map to wrap around the planet's surface.
+.TP 8
+.B \-image2 \fIfile\fP
+The night texture map to wrap around the planet's surface.
+The two will be blended together at the dusk terminator.
+.TP 8
+.B \-resolution
+The resolution of the planetary mesh. Default: 128.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR dymaxionmap (1)
+.BR ssystem (1)
+.SH COPYRIGHT
+Copyright \(co 2002-2018 by David Konerding and Jamie Zawinski.
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+David Konerding and Jamie Zawinski.
diff --git a/hacks/glx/glschool.c b/hacks/glx/glschool.c
new file mode 100644
index 0000000..49cfc11
--- /dev/null
+++ b/hacks/glx/glschool.c
@@ -0,0 +1,216 @@
+/* glschool.c, Copyright (c) 2005-2006 David C. Lambert <dcl@panix.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+#include "xlockmore.h"
+#include "glschool.h"
+
+#define sws_opts xlockmore_opts
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+#define free_glschool (0)
+#define release_glschool (0)
+#define glschool_handle_event (xlockmore_no_events)
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_NFISH "100"
+#define DEF_FOG "False"
+#define DEF_DRAWBBOX "True"
+#define DEF_DRAWGOAL "False"
+#define DEF_GOALCHGF "50"
+#define DEF_MAXVEL "7.0"
+#define DEF_MINVEL "1.0"
+#define DEF_ACCLIMIT "8.0"
+#define DEF_DISTEXP "2.2"
+#define DEF_AVOIDFACT "1.5"
+#define DEF_MATCHFACT "0.15"
+#define DEF_CENTERFACT "0.1"
+#define DEF_TARGETFACT "80"
+#define DEF_MINRADIUS "30.0"
+#define DEF_MOMENTUM "0.9"
+#define DEF_DISTCOMP "10.0"
+
+static int NFish;
+static Bool DoFog;
+static Bool DoDrawBBox;
+static Bool DoDrawGoal;
+static int GoalChgFreq;
+static float MinVel;
+static float MaxVel;
+static float DistExp;
+static float AccLimit;
+static float AvoidFact;
+static float MatchFact;
+static float TargetFact;
+static float CenterFact;
+static float MinRadius;
+static float Momentum;
+static float DistComp;
+
+static XrmOptionDescRec opts[] = {
+ { "-nfish", ".nfish", XrmoptionSepArg, 0 },
+ { "-fog", ".fog", XrmoptionNoArg, "True" },
+ { "+fog", ".fog", XrmoptionNoArg, "False" },
+ { "-drawgoal", ".drawgoal", XrmoptionNoArg, "True" },
+ { "+drawgoal", ".drawgoal", XrmoptionNoArg, "False" },
+ { "-drawbbox", ".drawbbox", XrmoptionNoArg, "True" },
+ { "+drawbbox", ".drawbbox", XrmoptionNoArg, "False" },
+ { "-goalchgf", ".goalchgf", XrmoptionSepArg, 0 },
+ { "-maxvel", ".maxvel", XrmoptionSepArg, 0 },
+ { "-minvel", ".minvel", XrmoptionSepArg, 0 },
+ { "-acclimit", ".acclimit", XrmoptionSepArg, 0 },
+ { "-distexp", ".distexp", XrmoptionSepArg, 0 },
+ { "-avoidfact", ".avoidfact", XrmoptionSepArg, 0 },
+ { "-matchfact", ".matchfact", XrmoptionSepArg, 0 },
+ { "-centerfact",".centerfact", XrmoptionSepArg, 0 },
+ { "-targetfact",".targetfact", XrmoptionSepArg, 0 },
+ { "-minradius", ".minradius", XrmoptionSepArg, 0 },
+ { "-distcomp", ".distcomp", XrmoptionSepArg, 0 },
+ { "-momentum", ".momentum", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&NFish, "nfish", "NFish", DEF_NFISH, t_Int},
+ {&DoFog, "fog", "DoFog", DEF_FOG, t_Bool},
+ {&DoDrawBBox, "drawbbox", "DoDrawBBox", DEF_DRAWBBOX, t_Bool},
+ {&DoDrawGoal, "drawgoal", "DoDrawGoal", DEF_DRAWGOAL, t_Bool},
+ {&GoalChgFreq, "goalchgf", "GoalChgFreq", DEF_GOALCHGF, t_Int},
+ {&MaxVel, "maxvel", "MaxVel", DEF_MAXVEL, t_Float},
+ {&MinVel, "minvel", "MinVel", DEF_MINVEL, t_Float},
+ {&AccLimit, "acclimit", "AccLimit", DEF_ACCLIMIT, t_Float},
+ {&DistExp, "distexp", "DistExp", DEF_DISTEXP, t_Float},
+ {&AvoidFact, "avoidfact", "AvoidFact", DEF_AVOIDFACT, t_Float},
+ {&MatchFact, "matchfact", "MatchFact", DEF_MATCHFACT, t_Float},
+ {&CenterFact, "centerfact", "CenterFact", DEF_CENTERFACT, t_Float},
+ {&TargetFact, "targetfact", "TargetFact", DEF_TARGETFACT, t_Float},
+ {&MinRadius, "minradius", "MinRadius", DEF_MINRADIUS, t_Float},
+ {&Momentum, "momentum", "Momentum", DEF_MOMENTUM, t_Float},
+ {&DistComp, "distcomp", "DistComp", DEF_DISTCOMP, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt glschool_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+typedef struct {
+ int nColors;
+ int rotCounter;
+ int goalCounter;
+ Bool drawGoal;
+ Bool drawBBox;
+ GLuint bboxList;
+ GLuint goalList;
+ GLuint fishList;
+ int fish_polys, box_polys;
+ XColor *colors;
+ School *school;
+ GLXContext *context;
+} glschool_configuration;
+
+static glschool_configuration *scs = NULL;
+
+ENTRYPOINT void
+reshape_glschool(ModeInfo *mi, int width, int height)
+{
+ Bool wire = MI_IS_WIREFRAME(mi);
+ double aspect = (double)width/(double)height;
+ glschool_configuration *sc = &scs[MI_SCREEN(mi)];
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sc->context));
+ if (sc->school != (School *)0) {
+ glschool_setBBox(sc->school, -aspect*160, aspect*160, -130, 130, -450, -50.0);
+ glDeleteLists(sc->bboxList, 1);
+ glschool_createBBoxList(&SCHOOL_BBOX(sc->school),
+ &sc->bboxList, wire);
+ }
+ glschool_reshape(width, height);
+}
+
+ENTRYPOINT void
+init_glschool(ModeInfo *mi)
+{
+ int width = MI_WIDTH(mi);
+ int height = MI_HEIGHT(mi);
+ Bool wire = MI_IS_WIREFRAME(mi);
+ glschool_configuration *sc;
+
+ MI_INIT (mi, scs);
+ sc = &scs[MI_SCREEN(mi)];
+
+ sc->drawGoal = DoDrawGoal;
+ sc->drawBBox = DoDrawBBox;
+
+ sc->nColors = 360;
+ sc->context = init_GL(mi);
+ sc->colors = (XColor *)calloc(sc->nColors, sizeof(XColor));
+ make_color_ramp(0, 0, 0,
+ 0.0, 1.0, 1.0,
+ 359.0, 1.0, 1.0,
+ sc->colors, &sc->nColors,
+ False, 0, False);
+
+ sc->school = glschool_initSchool(NFish, AccLimit, MaxVel, MinVel, DistExp, Momentum,
+ MinRadius, AvoidFact, MatchFact, CenterFact, TargetFact,
+ DistComp);
+ if (sc->school == (School *)0) {
+ fprintf(stderr, "couldn't initialize TheSchool, exiting\n");
+ exit(1);
+ }
+
+ reshape_glschool(mi, width, height);
+
+ glschool_initGLEnv(DoFog);
+ glschool_initFishes(sc->school);
+ glschool_createDrawLists(&SCHOOL_BBOX(sc->school),
+ &sc->bboxList, &sc->goalList, &sc->fishList,
+ &sc->fish_polys, &sc->box_polys, wire);
+ glschool_computeAccelerations(sc->school);
+}
+
+ENTRYPOINT void
+draw_glschool(ModeInfo *mi)
+{
+ Window window = MI_WINDOW(mi);
+ Display *dpy = MI_DISPLAY(mi);
+ glschool_configuration *sc = &scs[MI_SCREEN(mi)];
+
+ if (!sc->context) {
+ fprintf(stderr, "no context\n");
+ return;
+ }
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sc->context));
+
+ mi->polygon_count = 0;
+
+ if ((sc->goalCounter % GoalChgFreq) == 0)
+ glschool_newGoal(sc->school);
+ sc->goalCounter++;
+
+ sc->rotCounter++;
+ sc->rotCounter = (sc->rotCounter%360);
+
+ glschool_applyMovements(sc->school);
+ glschool_drawSchool(sc->colors, sc->school, sc->bboxList,
+ sc->goalList, sc->fishList, sc->rotCounter,
+ sc->drawGoal, sc->drawBBox,
+ sc->fish_polys, sc->box_polys,
+ &mi->polygon_count);
+ glschool_computeAccelerations(sc->school);
+
+ if (mi->fps_p)
+ do_fps(mi);
+
+ glFinish();
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE("GLSchool", glschool)
diff --git a/hacks/glx/glschool.h b/hacks/glx/glschool.h
new file mode 100644
index 0000000..b6ce7d5
--- /dev/null
+++ b/hacks/glx/glschool.h
@@ -0,0 +1,17 @@
+/* glschool.h, Copyright (c) 2005-2006 David C. Lambert <dcl@panix.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+#ifndef __GLSCHOOL_H__
+#define __GLSCHOOL_H__
+
+#include "glschool_alg.h"
+#include "glschool_gl.h"
+
+#endif /* __GLSCHOOL_H__ */
diff --git a/hacks/glx/glschool.man b/hacks/glx/glschool.man
new file mode 100644
index 0000000..8de00c4
--- /dev/null
+++ b/hacks/glx/glschool.man
@@ -0,0 +1,126 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+glschool - a 3D schooling simulation
+.SH SYNOPSIS
+.B glschool
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-wireframe]
+[\-fps]
+[\-delay \fInumber\fP]
+[\-nfish \fInumber\fP]
+[\-maxvel \fInumber\fP]
+[\-minvel \fInumber\fP]
+[\-acclimit \fInumber\fP]
+[\-avoidfact \fInumber\fP]
+[\-matchfact \fInumber\fP]
+[\-centerfact \fInumber\fP]
+[\-targetfact \fInumber\fP]
+[\-minradius \fInumber\fP]
+[\-momentum \fInumber\fP]
+[\-distexp \fInumber\fP]
+[\-goalchgf \fInumber\fP]
+[\-fog]
+[\-drawgoal]
+[\-drawbbox]
+.SH DESCRIPTION
+Uses Craig Reynolds Boids algorithm to simulate a 3d school of
+fish. See <http://www.red3d.com/cwr/boids> for a description
+of the algorithm and the original paper. This is a lightly modified
+version of the algorithm that supports goal attraction.
+
+Many different behaviors are possible by tweaking the parameters. No sanity checking is performed
+on the command line params, so if you want to use negative accelerations or minimum velocity that is
+larger than maximum velocity or that sort of thing, the simulation will try to digest it.
+
+It looks best with the highest number of fish that will give you an FPS of > 25 or so.
+
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.020 seconds.).
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-fog | \-no-fog
+ Whether to show foggy (cloudy) water.
+.TP 8
+.B \-drawgoal | \-no-drawgoal
+ Whether to show the school's attraction goal.
+.TP 8
+.B \-drawbbox | \-no-drawbbox
+ Whether to show the bounding box.
+.TP 8
+.B \-fog | \-no-fog
+ Whether to show foggy (cloudy) water.
+.TP 8
+.B \-nfish \fInumber\fP
+Number of fish. Defaults to 100
+.TP 8
+.B \-acclimit \fInumber\fP
+Acceleration limit. Defaults to 8.0
+.TP 8
+.B \-minvel \fInumber\fP
+Minimum velocity. Defaults to 1.0
+.TP 8
+.B \-maxvel \fInumber\fP
+Minimum velocity. Defaults to 7.0
+.TP 8
+.B \-goalchgf \fInumber\fP
+Goal change frequency. Defaults to 50 (frames)
+.TP 8
+.B \-avoidfact \fInumber\fP
+Avoidance acceleration factor. Defaults to 1.5
+.TP 8
+.B \-matchfact \fInumber\fP
+Match avg velocity acceleration factor. Defaults to 0.15
+.TP 8
+.B \-centerfact \fInumber\fP
+School centering acceleration factor. Defaults to 0.1
+.TP 8
+.B \-targetfact \fInumber\fP
+Target attraction acceleration factor. Defaults to 80
+.TP 8
+.B \-distexp \fInumber\fP
+Distance weighting exponent. Defaults to 2.2
+.TP 8
+.B \-momentum \fInumber\fP
+Momentum. Defaults to 0.9
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2005-2006 by David C. Lambert. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+David C. Lambert
diff --git a/hacks/glx/glschool_alg.c b/hacks/glx/glschool_alg.c
new file mode 100644
index 0000000..32b4a5f
--- /dev/null
+++ b/hacks/glx/glschool_alg.c
@@ -0,0 +1,364 @@
+/* school_alg.c, Copyright (c) 2005-2006 David C. Lambert <dcl@panix.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "yarandom.h"
+#include "glschool_alg.h"
+
+/* for xscreensaver */
+#undef drand48
+#define drand48() frand(1.0)
+
+#define RAD2DEG (180.0/3.1415926535)
+
+
+static inline double
+norm(double *dv)
+{
+ return sqrt(dv[0]*dv[0] + dv[1]*dv[1] + dv[2]*dv[2]);
+}
+
+
+static inline void
+addVector(double *v, double *d)
+{
+ v[0] += d[0];
+ v[1] += d[1];
+ v[2] += d[2];
+}
+
+
+static inline void
+clearVector(double *v)
+{
+ v[0] = v[1] = v[2] = 0.0;
+}
+
+
+static inline void
+scaleVector(double *v, double s)
+{
+ v[0] *= s;
+ v[1] *= s;
+ v[2] *= s;
+}
+
+
+static inline void
+addScaledVector(double *v, double *d, double s)
+{
+ v[0] += d[0]*s;
+ v[1] += d[1]*s;
+ v[2] += d[2]*s;
+}
+
+
+static inline void
+getDifferenceVector(double *v0, double *v1, double *diff)
+{
+ diff[0] = v0[0] - v1[0];
+ diff[1] = v0[1] - v1[1];
+ diff[2] = v0[2] - v1[2];
+}
+
+
+void
+glschool_initFish(Fish *f, double *mins, double *ranges)
+{
+ int i;
+
+ for(i = 0; i < 3; i++) {
+ FISH_IPOS(f, i) = mins[i] + drand48()*ranges[i];
+ FISH_IACC(f, i) = 0.0;
+ FISH_IVEL(f, i) = drand48();
+ FISH_IMAGIC(f, i) = 0.70 + 0.60*drand48();
+ FISH_IOLDVEL(f, i) = 0.0;
+ }
+}
+
+
+void
+glschool_initFishes(School *s)
+{
+ int i;
+ Fish *f = (Fish *)0;
+ int nFish = SCHOOL_NFISH(s);
+ BBox *bbox = &SCHOOL_BBOX(s);
+ double *mins = BBOX_MINS(bbox);
+ double *ranges = SCHOOL_BBRANGES(s);
+ Fish *theFishes = SCHOOL_FISHES(s);
+
+ for(i = 0, f = theFishes; i < nFish; i++, f++)
+ glschool_initFish(f, mins, ranges);
+}
+
+
+static void
+applyFishMovements(Fish *f, BBox *bbox, double minVel, double maxVel, double momentum)
+{
+ int i;
+ int oob = 0;
+ double vMag = 0.0;
+
+ for(i = 0; i < 3; i++) {
+ double pos = FISH_IPOS(f, i);
+ oob = (pos > BBOX_IMAX(bbox, i) || pos < BBOX_IMIN(bbox, i));
+ if (oob == 0) FISH_IVEL(f, i) += FISH_IACC(f, i) * FISH_IMAGIC(f, i);
+ vMag += (FISH_IVEL(f, i) * FISH_IVEL(f, i));
+ }
+ vMag = sqrt(vMag);
+
+ if (vMag > maxVel)
+ scaleVector(FISH_VEL(f), maxVel/vMag);
+ else if (vMag < minVel)
+ scaleVector(FISH_VEL(f), minVel/vMag);
+
+ for(i = 0; i < 3; i++) {
+ FISH_IVEL(f, i) = momentum * FISH_IOLDVEL(f, i) + (1.0-momentum) * FISH_IVEL(f, i);
+ FISH_IPOS(f, i) += FISH_IVEL(f, i);
+ FISH_IOLDVEL(f, i) = FISH_IVEL(f, i);
+
+ if (FISH_IPOS(f, i) < BBOX_IMIN(bbox, i))
+ FISH_IPOS(f, i) = BBOX_IMAX(bbox, i);
+ else if (FISH_IPOS(f, i) > BBOX_IMAX(bbox, i))
+ FISH_IPOS(f, i) = BBOX_IMIN(bbox, i);
+ }
+}
+
+
+void
+glschool_applyMovements(School *s)
+{
+ int i = 0;
+ Fish *f = (Fish *)0;
+ int nFish = SCHOOL_NFISH(s);
+ double minVel = SCHOOL_MINVEL(s);
+ double maxVel = SCHOOL_MAXVEL(s);
+ double momentum = SCHOOL_MOMENTUM(s);
+ BBox *bbox = &SCHOOL_BBOX(s);
+ Fish *theFishes = SCHOOL_FISHES(s);
+
+ for(i = 0, f = theFishes; i < nFish; i++, f++)
+ applyFishMovements(f, bbox, minVel, maxVel, momentum);
+}
+
+
+School *
+glschool_initSchool(int nFish, double accLimit, double maxV, double minV, double distExp, double momentum,
+ double minRadius, double avoidFact, double matchFact, double centerFact, double targetFact,
+ double distComp)
+{
+ School *s = (School *)0;
+
+ if ((s = (School *)malloc(sizeof(School))) == (School *)0) {
+ perror("initSchool School allocation failed: ");
+ return s;
+ }
+
+ if ((SCHOOL_FISHES(s) = (Fish *)malloc(sizeof(Fish)*nFish)) == (Fish *)0) {
+ perror("initSchool Fish array allocation failed: ");
+ free(s);
+ return (School *)0;
+ }
+
+ SCHOOL_NFISH(s) = nFish;
+ SCHOOL_ACCLIMIT(s) = accLimit;
+ SCHOOL_MAXVEL(s) = maxV;
+ SCHOOL_MINVEL(s) = minV;
+ SCHOOL_DISTEXP(s) = distExp;
+ SCHOOL_MOMENTUM(s) = momentum;
+ SCHOOL_MINRADIUS(s) = minRadius;
+ SCHOOL_MINRADIUSEXP(s) = pow(minRadius, distExp);
+ SCHOOL_MATCHFACT(s) = matchFact;
+ SCHOOL_AVOIDFACT(s) = avoidFact;
+ SCHOOL_CENTERFACT(s) = centerFact;
+ SCHOOL_TARGETFACT(s) = targetFact;
+ SCHOOL_DISTCOMP(s) = distComp;
+
+ return s;
+}
+
+void
+glschool_freeSchool(School *s)
+{
+ free(SCHOOL_FISHES(s));
+ free(s);
+}
+
+void
+glschool_setBBox(School *s, double xMin, double xMax, double yMin, double yMax, double zMin, double zMax)
+{
+ int i;
+ BBox *bbox = &SCHOOL_BBOX(s);
+
+ BBOX_XMIN(bbox) = xMin; BBOX_XMAX(bbox) = xMax;
+ BBOX_YMIN(bbox) = yMin; BBOX_YMAX(bbox) = yMax;
+ BBOX_ZMIN(bbox) = zMin; BBOX_ZMAX(bbox) = zMax;
+
+ for(i = 0; i < 3; i++) {
+ SCHOOL_IMID(s, i) = BBOX_IMID(bbox, i);
+ SCHOOL_IRANGE(s, i) = BBOX_IRANGE(bbox, i);
+ }
+}
+
+
+void
+glschool_newGoal(School *s)
+{
+ SCHOOL_IGOAL(s,0) = 0.85*(drand48()-0.5)*SCHOOL_IRANGE(s,0) + SCHOOL_IMID(s,0);
+ SCHOOL_IGOAL(s,1) = 0.40*(drand48()-0.5)*SCHOOL_IRANGE(s,1) + SCHOOL_IMID(s,1);
+ SCHOOL_IGOAL(s,2) = 0.85*(drand48()-0.5)*SCHOOL_IRANGE(s,2) + SCHOOL_IMID(s,2);
+}
+
+
+double
+glschool_computeNormalAndThetaToPlusZ(double *v, double *xV)
+{
+ double x1 = 0.0;
+ double y1 = 0.0;
+ double z1 = 1.0;
+ double x2 = v[0];
+ double y2 = v[1];
+ double z2 = v[2];
+ double theta = 0.0;
+ double xVNorm = 0.0;
+ double sinTheta = 0.0;
+ double v2Norm = norm(v);
+
+ if (v2Norm == 0.0) {
+ xV[1] = 1.0;
+ xV[0] = xV[2] = 0.0;
+ return theta;
+ }
+ xV[0] = (y1*z2 - z1*y2);
+ xV[1] = -(x1*z2 - z1*x2);
+ xV[2] = (x1*y2 - y1*x2);
+ xVNorm = norm(xV);
+
+ sinTheta = xVNorm/v2Norm;
+ return (asin(sinTheta) * RAD2DEG);
+}
+
+
+int
+glschool_computeGroupVectors(School *s, Fish *ref, double *avoidance, double *centroid, double *avgVel)
+{
+ int i;
+ double dist;
+ double adjDist;
+ double diffVect[3];
+ int neighborCount = 0;
+ Fish *test = (Fish *)0;
+ int nFish = SCHOOL_NFISH(s);
+ double distExp = SCHOOL_DISTEXP(s);
+ double distComp = SCHOOL_DISTCOMP(s);
+ double minRadiusExp = SCHOOL_MINRADIUSEXP(s);
+ Fish *fishes = SCHOOL_FISHES(s);
+
+ for(i = 0, test = fishes; i < nFish; i++, test++) {
+ if (test == ref) continue;
+
+ getDifferenceVector(FISH_POS(ref), FISH_POS(test), diffVect);
+
+ dist = norm(diffVect) - distComp;
+ if (dist < 0.0) dist = 0.1;
+
+ adjDist = pow(dist, distExp);
+ if (adjDist > minRadiusExp) continue;
+
+ neighborCount++;
+
+ addVector(avgVel, FISH_VEL(test));
+ addVector(centroid, FISH_POS(test));
+
+ addScaledVector(avoidance, diffVect, 1.0/adjDist);
+ }
+ if (neighborCount > 0) {
+ scaleVector(avgVel, 1.0/neighborCount);
+ scaleVector(centroid, 1.0/neighborCount);
+ }
+ return neighborCount;
+}
+
+
+void
+glschool_computeAccelerations(School *s)
+{
+ int i;
+ int j;
+ int neighborCount;
+ double dist;
+ double adjDist;
+ double accMag;
+ double avgVel[3];
+ double diffVect[3];
+ double centroid[3];
+ double avoidance[3];
+ Fish *ref = (Fish *)0;
+ int nFish = SCHOOL_NFISH(s);
+ double *goal = SCHOOL_GOAL(s);
+ double distExp = SCHOOL_DISTEXP(s);
+ double distComp = SCHOOL_DISTCOMP(s);
+ double avoidFact = SCHOOL_AVOIDFACT(s);
+ double matchFact = SCHOOL_MATCHFACT(s);
+ double centerFact = SCHOOL_CENTERFACT(s);
+ double targetFact = SCHOOL_TARGETFACT(s);
+ double accLimit = SCHOOL_ACCLIMIT(s);
+ double minRadius = SCHOOL_MINRADIUS(s);
+ Fish *fishes = SCHOOL_FISHES(s);
+
+ for(i = 0, ref = fishes; i < nFish; i++, ref++) {
+ clearVector(avgVel);
+ clearVector(centroid);
+ clearVector(avoidance);
+ clearVector(FISH_ACC(ref));
+ neighborCount = glschool_computeGroupVectors(s, ref, avoidance, centroid, avgVel);
+
+ /* avoidanceAccel[] = avoidance[] * AvoidFact */
+ scaleVector(avoidance, avoidFact);
+ addVector(FISH_ACC(ref), avoidance);
+
+ accMag = norm(FISH_ACC(ref));
+ if (neighborCount > 0 && accMag < accLimit) {
+ for(j = 0; j < 3; j++) {
+ FISH_IAVGVEL(ref, j) = avgVel[j];
+ FISH_IACC(ref, j) += ((avgVel[j] - FISH_IVEL(ref, j)) * matchFact);
+ }
+
+ accMag = norm(FISH_ACC(ref));
+ if (accMag < accLimit) {
+ for(j = 0; j < 3; j++)
+ FISH_IACC(ref, j) += ((centroid[j] - FISH_IPOS(ref, j)) * centerFact);
+ }
+ }
+
+ accMag = norm(FISH_ACC(ref));
+ if (accMag < accLimit) {
+ getDifferenceVector(goal, FISH_POS(ref), diffVect);
+
+ dist = norm(diffVect) - distComp;
+ if (dist < 0.0) dist = 0.1;
+
+ /*adjDist = pow(dist, distExp);*/
+ if (dist > minRadius) {
+ adjDist = pow(dist, distExp);
+ for(j = 0; j < 3; j++)
+ FISH_IACC(ref, j) += (diffVect[j]*targetFact/adjDist);
+ }
+ }
+ }
+}
diff --git a/hacks/glx/glschool_alg.h b/hacks/glx/glschool_alg.h
new file mode 100644
index 0000000..339e778
--- /dev/null
+++ b/hacks/glx/glschool_alg.h
@@ -0,0 +1,126 @@
+/* glschool_alg.h, Copyright (c) 2005-2006 David C. Lambert <dcl@panix.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+#ifndef __GLSCHOOL_ALG_H__
+#define __GLSCHOOL_ALG_H__
+
+typedef struct {
+ double mins[3];
+ double maxs[3];
+} BBox;
+
+#define BBOX_XMIN(b) ((b)->mins[0])
+#define BBOX_YMIN(b) ((b)->mins[1])
+#define BBOX_ZMIN(b) ((b)->mins[2])
+#define BBOX_MINS(b) ((b)->mins)
+#define BBOX_IMIN(b, i) ((b)->mins[(i)])
+
+#define BBOX_XMAX(b) ((b)->maxs[0])
+#define BBOX_YMAX(b) ((b)->maxs[1])
+#define BBOX_ZMAX(b) ((b)->maxs[2])
+#define BBOX_MAXS(b) ((b)->maxs)
+#define BBOX_IMAX(b, i) ((b)->maxs[(i)])
+
+#define BBOX_IMID(b, i) (((b)->maxs[(i)] + (b)->mins[(i)])/2.0)
+#define BBOX_IRANGE(b, i) ((b)->maxs[(i)] - (b)->mins[(i)])
+
+typedef struct {
+ double pos[3];
+ double vel[3];
+ double accel[3];
+ double oldVel[3];
+ double magic[3];
+ double avgVel[3];
+} Fish;
+
+#define FISH_POS(f) ((f)->pos)
+#define FISH_X(f) ((f)->pos[0])
+#define FISH_Y(f) ((f)->pos[1])
+#define FISH_Z(f) ((f)->pos[2])
+
+#define FISH_VEL(f) ((f)->vel)
+#define FISH_VX(f) ((f)->vel[0])
+#define FISH_VY(f) ((f)->vel[1])
+#define FISH_VZ(f) ((f)->vel[2])
+
+#define FISH_ACC(f) ((f)->accel)
+#define FISH_MAGIC(f) ((f)->magic)
+#define FISH_OLDVEL(f) ((f)->oldVel)
+#define FISH_AVGVEL(f) ((f)->avgVel)
+#define FISH_IPOS(f, i) ((f)->pos[(i)])
+#define FISH_IVEL(f, i) ((f)->vel[(i)])
+#define FISH_IACC(f, i) ((f)->accel[(i)])
+#define FISH_IMAGIC(f, i) ((f)->magic[(i)])
+#define FISH_IOLDVEL(f, i) ((f)->oldVel[(i)])
+#define FISH_IAVGVEL(f, i) ((f)->avgVel[(i)])
+
+typedef struct {
+ int nFish;
+ double maxVel;
+ double minVel;
+ double distExp;
+ double momentum;
+ double accLimit;
+ double minRadius;
+ double minRadiusExp;
+ double avoidFact;
+ double matchFact;
+ double centerFact;
+ double targetFact;
+ double distComp;
+ double goal[3];
+ double boxMids[3];
+ double boxRanges[3];
+ BBox theBox;
+ Fish *theFish;
+} School;
+
+#define SCHOOL_NFISH(s) ((s)->nFish)
+#define SCHOOL_MAXVEL(s) ((s)->maxVel)
+#define SCHOOL_MINVEL(s) ((s)->minVel)
+#define SCHOOL_DISTEXP(s) ((s)->distExp)
+#define SCHOOL_MOMENTUM(s) ((s)->momentum)
+#define SCHOOL_ACCLIMIT(s) ((s)->accLimit)
+#define SCHOOL_MINRADIUS(s) ((s)->minRadius)
+#define SCHOOL_MINRADIUSEXP(s) ((s)->minRadiusExp)
+#define SCHOOL_MATCHFACT(s) ((s)->matchFact)
+#define SCHOOL_AVOIDFACT(s) ((s)->avoidFact)
+#define SCHOOL_CENTERFACT(s) ((s)->centerFact)
+#define SCHOOL_TARGETFACT(s) ((s)->targetFact)
+#define SCHOOL_DISTCOMP(s) ((s)->distComp)
+#define SCHOOL_GOAL(s) ((s)->goal)
+#define SCHOOL_IGOAL(s,i) ((s)->goal[(i)])
+#define SCHOOL_BBMINS(s) ((s)->bbox.mins)
+#define SCHOOL_BBMAXS(s) ((s)->bbox.maxs)
+#define SCHOOL_BBMIDS(s) ((s)->boxMids)
+#define SCHOOL_IMID(s,i) ((s)->boxMids[(i)])
+#define SCHOOL_BBRANGES(s) ((s)->boxRanges)
+#define SCHOOL_IRANGE(s,i) ((s)->boxRanges[(i)])
+#define SCHOOL_BBOX(s) ((s)->theBox)
+#define SCHOOL_FISHES(s) ((s)->theFish)
+#define SCHOOL_IFISH(s,i) ((s)->theFish[i])
+
+extern void glschool_initFishes(School *);
+extern void glschool_initFish(Fish *, double *, double *);
+
+extern void glschool_applyMovements(School *);
+/* extern void applyFishMovements(Fish *, BBox *, double, double, double); */
+
+extern void glschool_freeSchool(School *);
+extern School *glschool_initSchool(int, double, double, double, double, double, double, double, double, double, double, double);
+
+extern void glschool_newGoal(School *);
+extern void glschool_setBBox(School *, double, double, double, double, double, double);
+
+extern void glschool_computeAccelerations(School *);
+extern double glschool_computeNormalAndThetaToPlusZ(double *, double *);
+int glschool_computeGroupVectors(School *, Fish *, double *, double *, double *);
+
+#endif /* __GLSCHOOL_ALG_H__ */
diff --git a/hacks/glx/glschool_gl.c b/hacks/glx/glschool_gl.c
new file mode 100644
index 0000000..660580b
--- /dev/null
+++ b/hacks/glx/glschool_gl.c
@@ -0,0 +1,274 @@
+/* glschool_gl.c, Copyright (c) 2005-2012 David C. Lambert <dcl@panix.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#include "sphere.h"
+#include "glschool_gl.h"
+#include "sphere.h"
+#include "tube.h"
+
+void
+glschool_drawGoal(double *goal, GLuint goalList)
+{
+ glColor3f(1.0, 0.0, 0.0);
+ glPushMatrix();
+ {
+ glTranslatef(goal[0], goal[1], goal[2]);
+ glColor3f(1.0, 0.0, 0.0);
+ glCallList(goalList);
+ }
+ glPopMatrix();
+}
+
+int
+glschool_drawBoundingBox(BBox *bbox, Bool wire)
+{
+ int polys = 0;
+ double xMin = BBOX_XMIN(bbox);
+ double yMin = BBOX_YMIN(bbox);
+ double zMin = BBOX_ZMIN(bbox);
+
+ double xMax = BBOX_XMAX(bbox);
+ double yMax = BBOX_YMAX(bbox);
+ double zMax = BBOX_ZMAX(bbox);
+
+ glFrontFace(GL_CCW);
+ if (wire) glLineWidth(5.0);
+
+ /* back */
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glColor3f(0.0, 0.0, .15);
+ glVertex3f(xMin, yMin, zMin);
+ glVertex3f(xMax, yMin, zMin);
+ glVertex3f(xMax, yMax, zMin);
+ glVertex3f(xMin, yMax, zMin);
+ polys++;
+ glEnd();
+
+ /* left */
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glColor3f(0.0, 0.0, .2);
+ glVertex3f(xMin, yMin, zMax);
+ glVertex3f(xMin, yMin, zMin);
+ glVertex3f(xMin, yMax, zMin);
+ glVertex3f(xMin, yMax, zMax);
+ polys++;
+ glEnd();
+
+ /* right */
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glColor3f(0.0, 0.0, .2);
+ glVertex3f(xMax, yMin, zMin);
+ glVertex3f(xMax, yMin, zMax);
+ glVertex3f(xMax, yMax, zMax);
+ glVertex3f(xMax, yMax, zMin);
+ polys++;
+ glEnd();
+
+ /* top */
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glColor3f(0.0, 0.0, .1);
+ glVertex3f(xMax, yMax, zMax);
+ glVertex3f(xMin, yMax, zMax);
+ glVertex3f(xMin, yMax, zMin);
+ glVertex3f(xMax, yMax, zMin);
+ polys++;
+ glEnd();
+
+ /* bottom */
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glColor3f(0.0, 0.0, .3);
+ glVertex3f(xMin, yMin, zMax);
+ glVertex3f(xMax, yMin, zMax);
+ glVertex3f(xMax, yMin, zMin);
+ glVertex3f(xMin, yMin, zMin);
+ polys++;
+ glEnd();
+
+ if (wire) glLineWidth(1.0);
+
+ return polys;
+}
+
+int
+glschool_createBBoxList(BBox *bbox, GLuint *bboxList, int wire)
+{
+ int polys = 0;
+ *bboxList = glGenLists(1);
+ glNewList(*bboxList, GL_COMPILE);
+ polys = glschool_drawBoundingBox(bbox, wire);
+ glEndList();
+ return polys;
+}
+
+void
+glschool_createDrawLists(BBox *bbox, GLuint *bboxList, GLuint *goalList, GLuint *fishList, int *fish_polys, int *box_polys, int wire)
+{
+
+ int faces = 16;
+
+ *box_polys = 0;
+ *fish_polys = 0;
+
+ *box_polys += glschool_createBBoxList(bbox, bboxList, wire);
+
+ *box_polys = 0;
+ *fish_polys = 0;
+
+ *goalList = glGenLists(1);
+ glNewList(*goalList, GL_COMPILE);
+ glScalef (5, 5, 5);
+ *box_polys += unit_sphere (10, 10, wire);
+ glEndList();
+
+ *fishList = glGenLists(1);
+ glNewList(*fishList, GL_COMPILE);
+ *fish_polys += cone (0, 0, 0,
+ 0, 0, 10,
+ 2, 0,
+ faces, True, (faces <= 3), /* cap */
+ wire);
+ glTranslatef (0, 0, -0.3);
+ glScalef (2, 2, 2);
+ glRotatef (90, 1, 0, 0);
+ if (faces > 3)
+ *fish_polys += unit_sphere (faces, faces, wire);
+ glEndList();
+}
+
+
+void
+glschool_initLights(void)
+{
+ GLfloat amb[4] = {0.1, 0.1, 0.1, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat pos[4] = {0.0, 50.0, -50.0, 1.0};
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHTING);
+}
+
+void
+glschool_initFog(void)
+{
+ GLfloat fog[4] = {0.0, 0.0, 0.15, 1.0};
+
+ glEnable(GL_FOG);
+ glFogi(GL_FOG_MODE, GL_EXP2);
+ glFogfv(GL_FOG_COLOR, fog);
+ glFogf(GL_FOG_DENSITY, .0025);
+ glFogf(GL_FOG_START, -100);
+}
+
+void
+glschool_initGLEnv(Bool doFog)
+{
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glClearDepth(1.0);
+ glDepthFunc(GL_LESS);
+
+ glEnable(GL_COLOR_MATERIAL);
+ glMateriali(GL_FRONT, GL_SHININESS, 128);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spc);
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, spc);
+
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_DEPTH_TEST);
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_CULL_FACE);
+
+ glschool_initLights();
+ if (doFog) glschool_initFog();
+}
+
+void
+glschool_reshape(int width, int height)
+{
+ GLfloat h = (GLfloat) width / (GLfloat) height;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(60.0, h, 0.1, 451.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+void
+glschool_getColorVect(XColor *colors, int index, double *colorVect)
+{
+ colorVect[0] = colors[index].red / 65535.0;
+ colorVect[1] = colors[index].green / 65535.0;
+ colorVect[2] = colors[index].blue / 65535.0;
+}
+
+void
+glschool_drawSchool(XColor *colors, School *s,
+ GLuint bboxList, GLuint goalList, GLuint fishList,
+ int rotCounter, Bool drawGoal_p, Bool drawBBox_p,
+ int fish_polys, int box_polys, unsigned long *polys)
+{
+ double xVect[3];
+ double colorVect[3];
+ int i = 0;
+ double rotTheta = 0.0;
+ double colTheta = 0.0;
+ Fish *f = (Fish *)0;
+ int nFish = SCHOOL_NFISH(s);
+ Fish *theFishes = SCHOOL_FISHES(s);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ if (drawBBox_p) {
+ glDisable(GL_LIGHTING);
+ glCallList(bboxList);
+ glEnable(GL_LIGHTING);
+ *polys += box_polys;
+ }
+
+ if (drawGoal_p) glschool_drawGoal(SCHOOL_GOAL(s), goalList);
+
+ for(i = 0, f = theFishes; i < nFish; i++, f++) {
+ colTheta = glschool_computeNormalAndThetaToPlusZ(FISH_AVGVEL(f), xVect);
+ rotTheta = glschool_computeNormalAndThetaToPlusZ(FISH_VEL(f), xVect);
+
+ if (FISH_IAVGVEL(f,2) < 0.0) colTheta = 180.0 - colTheta;
+ if (FISH_VZ(f) < 0.0) rotTheta = 180.0 - rotTheta;
+
+ glschool_getColorVect(colors, (int)(colTheta+240)%360, colorVect);
+ glColor3f(colorVect[0], colorVect[1], colorVect[2]);
+
+ glPushMatrix();
+ {
+ glTranslatef(FISH_X(f), FISH_Y(f), FISH_Z(f));
+ glRotatef(180.0+rotTheta, xVect[0], xVect[1], xVect[2]);
+ glCallList(fishList);
+ *polys += fish_polys;
+ }
+ glPopMatrix();
+ }
+
+ glFinish();
+}
diff --git a/hacks/glx/glschool_gl.h b/hacks/glx/glschool_gl.h
new file mode 100644
index 0000000..c5e2d38
--- /dev/null
+++ b/hacks/glx/glschool_gl.h
@@ -0,0 +1,51 @@
+/* glschool_gl.h, Copyright (c) 2005-2006 David C. Lambert <dcl@panix.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+#ifndef __GLSCHOOL_GL_H__
+#define __GLSCHOOL_GL_H__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+# ifndef HAVE_JWZGLES
+# include <OpenGL/glu.h>
+# endif
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_ANDROID
+#include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "glschool_alg.h"
+
+extern void glschool_initFog(void);
+extern void glschool_initGLEnv(Bool);
+extern void glschool_initLights(void);
+extern void glschool_reshape(int, int);
+extern void glschool_drawGoal(double *, GLuint);
+extern void glschool_getColorVect(XColor *, int, double *);
+extern int glschool_drawBoundingBox(BBox *, Bool);
+extern int glschool_createBBoxList(BBox *, GLuint *, int);
+extern void glschool_createDrawLists(BBox *, GLuint *, GLuint *, GLuint *, int *, int *, Bool);
+extern void glschool_drawSchool(XColor *, School *, GLuint, GLuint, GLuint, int, Bool, Bool,
+ int, int, unsigned long *);
+
+#endif /* __GLSCHOOL_GL_H__ */
diff --git a/hacks/glx/glslideshow.c b/hacks/glx/glslideshow.c
new file mode 100644
index 0000000..64b1494
--- /dev/null
+++ b/hacks/glx/glslideshow.c
@@ -0,0 +1,1222 @@
+/* glslideshow, Copyright (c) 2003-2014 Jamie Zawinski <jwz@jwz.org>
+ * Loads a sequence of images and smoothly pans around them; crossfades
+ * when loading new images.
+ *
+ * Originally written by Mike Oliphant <oliphant@gtk.org> (c) 2002, 2003.
+ * Rewritten by jwz, 21-Jun-2003.
+ * Rewritten by jwz again, 6-Feb-2005.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ *****************************************************************************
+ *
+ * TODO:
+ *
+ * - When a new image is loaded, there is a glitch: animation pauses during
+ * the period when we're loading the image-to-fade-in. On fast (2GHz)
+ * machines, this stutter is short but noticable (usually around 1/10th
+ * second.) On slower machines, it can be much more pronounced.
+ * This turns out to be hard to fix...
+ *
+ * Image loading happens in three stages:
+ *
+ * 1: Fork a process and run xscreensaver-getimage in the background.
+ * This writes image data to a server-side X pixmap.
+ *
+ * 2: When that completes, a callback informs us that the pixmap is ready.
+ * We must then download the pixmap data from the server with XGetImage
+ * (or XShmGetImage.)
+ *
+ * 3: Once we have the bits, we must convert them from server-native bitmap
+ * layout to 32 bit RGBA in client-endianness, to make them usable as
+ * OpenGL textures.
+ *
+ * 4: We must actually construct a texture.
+ *
+ * So, the speed of step 1 doesn't really matter, since that happens in
+ * the background. But steps 2, 3, and 4 happen in *this* process, and
+ * cause the visible glitch.
+ *
+ * Step 2 can't be moved to another process without opening a second
+ * connection to the X server, which is pretty heavy-weight. (That would
+ * be possible, though; the other process could open an X connection,
+ * retrieve the pixmap, and feed it back to us through a pipe or
+ * something.)
+ *
+ * Step 3 might be able to be optimized by coding tuned versions of
+ * grab-ximage.c:copy_ximage() for the most common depths and bit orders.
+ * (Or by moving it into the other process along with step 2.)
+ *
+ * Step 4 is the hard one, though. It might be possible to speed up this
+ * step if there is some way to allow two GL processes share texture
+ * data. Unless, of course, all the time being consumed by step 4 is
+ * because the graphics pipeline is flooded, in which case, that other
+ * process would starve the screen anyway.
+ *
+ * Is it possible to use a single GLX context in a multithreaded way?
+ * Or use a second GLX context, but allow the two contexts to share data?
+ * I can't find any documentation about this.
+ *
+ * How does Apple do this with their MacOSX slideshow screen saver?
+ * Perhaps it's easier for them because their OpenGL libraries have
+ * thread support at a lower level?
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*wireframe: False \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*useSHM: True \n" \
+ "*titleFont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n" \
+ "*desktopGrabber: xscreensaver-getimage -no-desktop %s\n" \
+ "*grabDesktopImages: False \n" \
+ "*chooseRandomImages: True \n"
+
+# define free_slideshow 0
+# define release_slideshow 0
+# include "xlockmore.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#ifdef USE_GL
+
+
+# define DEF_FADE_DURATION "2"
+# define DEF_PAN_DURATION "6"
+# define DEF_IMAGE_DURATION "30"
+# define DEF_ZOOM "75"
+# define DEF_FPS_CUTOFF "5"
+# define DEF_TITLES "False"
+# define DEF_LETTERBOX "True"
+# define DEF_DEBUG "False"
+# define DEF_MIPMAP "True"
+
+#include "grab-ximage.h"
+#include "texfont.h"
+
+typedef struct {
+ double x, y, w, h;
+} rect;
+
+typedef struct {
+ ModeInfo *mi;
+ int id; /* unique number for debugging */
+ char *title; /* the filename of this image */
+ int w, h; /* size in pixels of the image */
+ int tw, th; /* size in pixels of the texture */
+ XRectangle geom; /* where in the image the bits are */
+ Bool loaded_p; /* whether the image has finished loading */
+ Bool used_p; /* whether the image has yet appeared
+ on screen */
+ GLuint texid; /* which texture contains the image */
+ int refcount; /* how many sprites refer to this image */
+} image;
+
+
+typedef enum { NEW, IN, FULL, OUT, DEAD } sprite_state;
+
+typedef struct {
+ int id; /* unique number for debugging */
+ image *img; /* which image this animation displays */
+ GLfloat opacity; /* how to render it */
+ double start_time; /* when this animation began */
+ rect from, to, current; /* the journey this image is taking */
+ sprite_state state; /* the state we're in right now */
+ sprite_state prev_state; /* the state we were in previously */
+ double state_time; /* time of last state change */
+ int frame_count; /* frames since last state change */
+} sprite;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ int nimages; /* how many images are loaded or loading now */
+ image *images[10]; /* pointers to the images */
+
+ int nsprites; /* how many sprites are animating right now */
+ sprite *sprites[10]; /* pointers to the live sprites */
+
+ double now; /* current time in seconds */
+ double dawn_of_time; /* when the program launched */
+ double image_load_time; /* time when we last loaded a new image */
+ double prev_frame_time; /* time when we last drew a frame */
+
+ Bool awaiting_first_image_p; /* Early in startup: nothing to display yet */
+ Bool redisplay_needed_p; /* Sometimes we can get away with not
+ re-painting. Tick this if a redisplay
+ is required. */
+ Bool change_now_p; /* Set when the user clicks to ask for a new
+ image right now. */
+
+ GLfloat fps; /* approximate frame rate we're achieving */
+ GLfloat theoretical_fps; /* maximum frame rate that might be possible */
+ Bool checked_fps_p; /* Whether we have checked for a low
+ frame rate. */
+
+ texture_font_data *font_data; /* for printing image file names */
+
+ int sprite_id, image_id; /* debugging id counters */
+
+ double time_elapsed;
+ int frames_elapsed;
+
+} slideshow_state;
+
+static slideshow_state *sss = NULL;
+
+
+/* Command-line arguments
+ */
+static int fade_seconds; /* Duration in seconds of fade transitions.
+ If 0, jump-cut instead of fading. */
+static int pan_seconds; /* Duration of each pan through an image. */
+static int image_seconds; /* How many seconds until loading a new image. */
+static int zoom; /* How far in to zoom when panning, in percent of
+ image size: that is, 75 means "when zoomed all
+ the way in, 75% of the image will be visible."
+ */
+static int fps_cutoff; /* If the frame-rate falls below this, turn off
+ zooming.*/
+static Bool letterbox_p; /* When a loaded image is not the same aspect
+ ratio as the window, whether to display black
+ bars.
+ */
+static Bool mipmap_p; /* Use mipmaps instead of single textures. */
+static Bool do_titles; /* Display image titles. */
+static Bool debug_p; /* Be loud and do weird things. */
+
+
+static XrmOptionDescRec opts[] = {
+ {"-fade", ".fadeDuration", XrmoptionSepArg, 0 },
+ {"-pan", ".panDuration", XrmoptionSepArg, 0 },
+ {"-duration", ".imageDuration", XrmoptionSepArg, 0 },
+ {"-zoom", ".zoom", XrmoptionSepArg, 0 },
+ {"-cutoff", ".FPScutoff", XrmoptionSepArg, 0 },
+ {"-titles", ".titles", XrmoptionNoArg, "True" },
+ {"-letterbox", ".letterbox", XrmoptionNoArg, "True" },
+ {"-no-letterbox", ".letterbox", XrmoptionNoArg, "False" },
+ {"-clip", ".letterbox", XrmoptionNoArg, "False" },
+ {"-mipmaps", ".mipmap", XrmoptionNoArg, "True" },
+ {"-no-mipmaps", ".mipmap", XrmoptionNoArg, "False" },
+ {"-debug", ".debug", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ { &fade_seconds, "fadeDuration", "FadeDuration", DEF_FADE_DURATION, t_Int},
+ { &pan_seconds, "panDuration", "PanDuration", DEF_PAN_DURATION, t_Int},
+ { &image_seconds, "imageDuration","ImageDuration",DEF_IMAGE_DURATION, t_Int},
+ { &zoom, "zoom", "Zoom", DEF_ZOOM, t_Int},
+ { &mipmap_p, "mipmap", "Mipmap", DEF_MIPMAP, t_Bool},
+ { &letterbox_p, "letterbox", "Letterbox", DEF_LETTERBOX, t_Bool},
+ { &fps_cutoff, "FPScutoff", "FPSCutoff", DEF_FPS_CUTOFF, t_Int},
+ { &debug_p, "debug", "Debug", DEF_DEBUG, t_Bool},
+ { &do_titles, "titles", "Titles", DEF_TITLES, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt slideshow_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static const char *
+blurb (void)
+{
+# ifdef HAVE_JWXYZ
+ return "GLSlideshow";
+# else
+ static char buf[255];
+ time_t now = time ((time_t *) 0);
+ char *ct = (char *) ctime (&now);
+ int n = strlen(progname);
+ if (n > 100) n = 99;
+ strncpy(buf, progname, n);
+ buf[n++] = ':';
+ buf[n++] = ' ';
+ strncpy(buf+n, ct+11, 8);
+ strcpy(buf+n+9, ": ");
+ return buf;
+# endif
+}
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+static void image_loaded_cb (const char *filename, XRectangle *geom,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure);
+
+
+/* Allocate an image structure and start a file loading in the background.
+ */
+static image *
+alloc_image (ModeInfo *mi)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ image *img = (image *) calloc (1, sizeof (*img));
+
+ img->id = ++ss->image_id;
+ img->loaded_p = False;
+ img->used_p = False;
+ img->mi = mi;
+
+ glGenTextures (1, &img->texid);
+ if (img->texid <= 0) abort();
+
+ ss->image_load_time = ss->now;
+
+ if (wire)
+ image_loaded_cb (0, 0, 0, 0, 0, 0, img);
+ else
+ load_texture_async (mi->xgwa.screen, mi->window, *ss->glx_context,
+ 0, 0, mipmap_p, img->texid, image_loaded_cb, img);
+
+ ss->images[ss->nimages++] = img;
+ if (ss->nimages >= countof(ss->images)) abort();
+
+ return img;
+}
+
+
+/* Callback that tells us that the texture has been loaded.
+ */
+static void
+image_loaded_cb (const char *filename, XRectangle *geom,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ image *img = (image *) closure;
+ ModeInfo *mi = img->mi;
+ /* slideshow_state *ss = &sss[MI_SCREEN(mi)]; */
+
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (wire)
+ {
+ img->w = MI_WIDTH (mi) * (0.5 + frand (1.0));
+ img->h = MI_HEIGHT (mi);
+ img->geom.width = img->w;
+ img->geom.height = img->h;
+ goto DONE;
+ }
+
+ if (image_width == 0 || image_height == 0)
+ exit (1);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ img->w = image_width;
+ img->h = image_height;
+ img->tw = texture_width;
+ img->th = texture_height;
+ img->geom = *geom;
+ img->title = (filename ? strdup (filename) : 0);
+
+ /* If the image's width doesn't come back as the width of the screen,
+ then the image must have been scaled down (due to insufficient
+ texture memory.) Scale up the coordinates to stretch the image
+ to fill the window.
+ */
+ if (img->w != MI_WIDTH(mi))
+ {
+ double scale = (double) MI_WIDTH(mi) / img->w;
+ img->w *= scale;
+ img->h *= scale;
+ img->tw *= scale;
+ img->th *= scale;
+ img->geom.x *= scale;
+ img->geom.y *= scale;
+ img->geom.width *= scale;
+ img->geom.height *= scale;
+ }
+
+ /* xscreensaver-getimage returns paths relative to the image directory
+ now, so leave the sub-directory part in. Unless it's an absolute path.
+ */
+ if (img->title && img->title[0] == '/')
+ {
+ /* strip filename to part between last "/" and last ".". */
+ char *s = strrchr (img->title, '/');
+ if (s) strcpy (img->title, s+1);
+ s = strrchr (img->title, '.');
+ if (s) *s = 0;
+ }
+
+ if (debug_p)
+ fprintf (stderr, "%s: loaded img %2d: \"%s\"\n",
+ blurb(), img->id, (img->title ? img->title : "(null)"));
+ DONE:
+
+ img->loaded_p = True;
+}
+
+
+
+/* Free the image and texture, after nobody is referencing it.
+ */
+static void
+destroy_image (ModeInfo *mi, image *img)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ Bool freed_p = False;
+ int i;
+
+ if (!img) abort();
+ if (!img->loaded_p) abort();
+ if (!img->used_p) abort();
+ if (img->texid <= 0) abort();
+ if (img->refcount != 0) abort();
+
+ for (i = 0; i < ss->nimages; i++) /* unlink it from the list */
+ if (ss->images[i] == img)
+ {
+ int j;
+ for (j = i; j < ss->nimages-1; j++) /* pull remainder forward */
+ ss->images[j] = ss->images[j+1];
+ ss->images[j] = 0;
+ ss->nimages--;
+ freed_p = True;
+ break;
+ }
+
+ if (!freed_p) abort();
+
+ if (debug_p)
+ fprintf (stderr, "%s: unloaded img %2d: \"%s\"\n",
+ blurb(), img->id, (img->title ? img->title : "(null)"));
+
+ if (img->title) free (img->title);
+ glDeleteTextures (1, &img->texid);
+ free (img);
+}
+
+
+/* Return an image to use for a sprite.
+ If it's time for a new one, get a new one.
+ Otherwise, use an old one.
+ Might return 0 if the machine is really slow.
+ */
+static image *
+get_image (ModeInfo *mi)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ image *img = 0;
+ double now = ss->now;
+ Bool want_new_p = (ss->change_now_p ||
+ ss->image_load_time + image_seconds <= now);
+ image *new_img = 0;
+ image *old_img = 0;
+ image *loading_img = 0;
+ int i;
+
+ for (i = 0; i < ss->nimages; i++)
+ {
+ image *img2 = ss->images[i];
+ if (!img2) abort();
+ if (!img2->loaded_p)
+ loading_img = img2;
+ else if (!img2->used_p)
+ new_img = img2;
+ else
+ old_img = img2;
+ }
+
+ if (want_new_p && new_img)
+ img = new_img, new_img = 0, ss->change_now_p = False;
+ else if (old_img)
+ img = old_img, old_img = 0;
+ else if (new_img)
+ img = new_img, new_img = 0, ss->change_now_p = False;
+
+ /* Make sure that there is always one unused image in the pipe.
+ */
+ if (!new_img && !loading_img)
+ alloc_image (mi);
+
+ return img;
+}
+
+
+/* Pick random starting and ending positions for the given sprite.
+ */
+static void
+randomize_sprite (ModeInfo *mi, sprite *sp)
+{
+ int vp_w = MI_WIDTH(mi);
+ int vp_h = MI_HEIGHT(mi);
+ int img_w = sp->img->geom.width;
+ int img_h = sp->img->geom.height;
+ int min_w, max_w;
+ double ratio = (double) img_h / img_w;
+
+ if (letterbox_p)
+ {
+ min_w = img_w;
+ }
+ else
+ {
+ if (img_w < vp_w)
+ min_w = vp_w;
+ else
+ min_w = img_w * (float) vp_h / img_h;
+ }
+
+ max_w = min_w * 100 / zoom;
+
+ sp->from.w = min_w + frand ((max_w - min_w) * 0.4);
+ sp->to.w = max_w - frand ((max_w - min_w) * 0.4);
+ sp->from.h = sp->from.w * ratio;
+ sp->to.h = sp->to.w * ratio;
+
+ if (zoom == 100) /* only one box, and it is centered */
+ {
+ sp->from.x = (sp->from.w > vp_w
+ ? -(sp->from.w - vp_w) / 2
+ : (vp_w - sp->from.w) / 2);
+ sp->from.y = (sp->from.h > vp_h
+ ? -(sp->from.h - vp_h) / 2
+ : (vp_h - sp->from.h) / 2);
+ sp->to = sp->from;
+ }
+ else /* position both boxes randomly */
+ {
+ sp->from.x = (sp->from.w > vp_w
+ ? -frand (sp->from.w - vp_w)
+ : frand (vp_w - sp->from.w));
+ sp->from.y = (sp->from.h > vp_h
+ ? -frand (sp->from.h - vp_h)
+ : frand (vp_h - sp->from.h));
+ sp->to.x = (sp->to.w > vp_w
+ ? -frand (sp->to.w - vp_w)
+ : frand (vp_w - sp->to.w));
+ sp->to.y = (sp->to.h > vp_h
+ ? -frand (sp->to.h - vp_h)
+ : frand (vp_h - sp->to.h));
+ }
+
+ if (random() & 1)
+ {
+ rect swap = sp->to;
+ sp->to = sp->from;
+ sp->from = swap;
+ }
+
+ /* Make sure the aspect ratios are within 0.001 of each other.
+ */
+ {
+ int r1 = 0.5 + (sp->from.w * 1000 / sp->from.h);
+ int r2 = 0.5 + (sp->to.w * 1000 / sp->to.h);
+ if (r1 < r2-1 || r1 > r2+1)
+ {
+ fprintf (stderr,
+ "%s: botched aspect: %f x %f (%d) vs %f x %f (%d): %s\n",
+ progname,
+ sp->from.w, sp->from.h, r1,
+ sp->to.w, sp->to.h, r2,
+ (sp->img->title ? sp->img->title : "[null]"));
+ abort();
+ }
+ }
+
+ sp->from.x /= vp_w;
+ sp->from.y /= vp_h;
+ sp->from.w /= vp_w;
+ sp->from.h /= vp_h;
+ sp->to.x /= vp_w;
+ sp->to.y /= vp_h;
+ sp->to.w /= vp_w;
+ sp->to.h /= vp_h;
+}
+
+
+/* Allocate a new sprite and start its animation going.
+ */
+static sprite *
+new_sprite (ModeInfo *mi)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ image *img = get_image (mi);
+ sprite *sp;
+
+ if (!img)
+ {
+ /* Oops, no images yet! The machine is probably hurting bad.
+ Let's give it some time before thrashing again. */
+ usleep (250000);
+ return 0;
+ }
+
+ sp = (sprite *) calloc (1, sizeof (*sp));
+ sp->id = ++ss->sprite_id;
+ sp->start_time = ss->now;
+ sp->state_time = sp->start_time;
+ sp->state = sp->prev_state = NEW;
+ sp->img = img;
+
+ sp->img->refcount++;
+ sp->img->used_p = True;
+
+ ss->sprites[ss->nsprites++] = sp;
+ if (ss->nsprites >= countof(ss->sprites)) abort();
+
+ randomize_sprite (mi, sp);
+
+ return sp;
+}
+
+
+/* Free the given sprite, and decrement the reference count on its image.
+ */
+static void
+destroy_sprite (ModeInfo *mi, sprite *sp)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ Bool freed_p = False;
+ image *img;
+ int i;
+
+ if (!sp) abort();
+ if (sp->state != DEAD) abort();
+ img = sp->img;
+ if (!img) abort();
+ if (!img->loaded_p) abort();
+ if (!img->used_p) abort();
+ if (img->refcount <= 0) abort();
+
+ for (i = 0; i < ss->nsprites; i++) /* unlink it from the list */
+ if (ss->sprites[i] == sp)
+ {
+ int j;
+ for (j = i; j < ss->nsprites-1; j++) /* pull remainder forward */
+ ss->sprites[j] = ss->sprites[j+1];
+ ss->sprites[j] = 0;
+ ss->nsprites--;
+ freed_p = True;
+ break;
+ }
+
+ if (!freed_p) abort();
+ free (sp);
+ sp = 0;
+
+ img->refcount--;
+ if (img->refcount < 0) abort();
+ if (img->refcount == 0)
+ destroy_image (mi, img);
+}
+
+
+/* Updates the sprite for the current frame of the animation based on
+ its creation time compared to the current wall clock.
+ */
+static void
+tick_sprite (ModeInfo *mi, sprite *sp)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ image *img = sp->img;
+ double now = ss->now;
+ double secs;
+ double ratio;
+ rect prev_rect = sp->current;
+ GLfloat prev_opacity = sp->opacity;
+
+ if (! sp->img) abort();
+ if (! img->loaded_p) abort();
+
+ secs = now - sp->start_time;
+ ratio = secs / (pan_seconds + fade_seconds);
+ if (ratio > 1) ratio = 1;
+
+ sp->current.x = sp->from.x + ratio * (sp->to.x - sp->from.x);
+ sp->current.y = sp->from.y + ratio * (sp->to.y - sp->from.y);
+ sp->current.w = sp->from.w + ratio * (sp->to.w - sp->from.w);
+ sp->current.h = sp->from.h + ratio * (sp->to.h - sp->from.h);
+
+ sp->prev_state = sp->state;
+
+ if (secs < fade_seconds)
+ {
+ sp->state = IN;
+ sp->opacity = secs / (GLfloat) fade_seconds;
+ }
+ else if (secs < pan_seconds)
+ {
+ sp->state = FULL;
+ sp->opacity = 1;
+ }
+ else if (secs < pan_seconds + fade_seconds)
+ {
+ sp->state = OUT;
+ sp->opacity = 1 - ((secs - pan_seconds) / (GLfloat) fade_seconds);
+ }
+ else
+ {
+ sp->state = DEAD;
+ sp->opacity = 0;
+ }
+
+ if (sp->state != sp->prev_state &&
+ (sp->prev_state == IN ||
+ sp->prev_state == FULL))
+ {
+ double secs = now - sp->state_time;
+
+ if (debug_p)
+ fprintf (stderr,
+ "%s: %s %3d frames %2.0f sec %5.1f fps (%.1f fps?)\n",
+ blurb(),
+ (sp->prev_state == IN ? "fade" : "pan "),
+ sp->frame_count,
+ secs,
+ sp->frame_count / secs,
+ ss->theoretical_fps);
+
+ sp->state_time = now;
+ sp->frame_count = 0;
+ }
+
+ sp->frame_count++;
+
+ if (sp->state != DEAD &&
+ (prev_rect.x != sp->current.x ||
+ prev_rect.y != sp->current.y ||
+ prev_rect.w != sp->current.w ||
+ prev_rect.h != sp->current.h ||
+ prev_opacity != sp->opacity))
+ ss->redisplay_needed_p = True;
+}
+
+
+/* Draw the given sprite at the phase of its animation dictated by
+ its creation time compared to the current wall clock.
+ */
+static void
+draw_sprite (ModeInfo *mi, sprite *sp)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ image *img = sp->img;
+
+ if (! sp->img) abort();
+ if (! img->loaded_p) abort();
+
+ glPushMatrix();
+ {
+ glTranslatef (sp->current.x, sp->current.y, 0);
+ glScalef (sp->current.w, sp->current.h, 1);
+
+ if (wire) /* Draw a grid inside the box */
+ {
+ GLfloat dy = 0.1;
+ GLfloat dx = dy * img->w / img->h;
+ GLfloat x, y;
+
+ if (sp->id & 1)
+ glColor4f (sp->opacity, 0, 0, 1);
+ else
+ glColor4f (0, 0, sp->opacity, 1);
+
+ glBegin(GL_LINES);
+ glVertex3f (0, 0, 0); glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0); glVertex3f (0, 1, 0);
+
+ for (y = 0; y < 1+dy; y += dy)
+ {
+ GLfloat yy = (y > 1 ? 1 : y);
+ for (x = 0.5; x < 1+dx; x += dx)
+ {
+ GLfloat xx = (x > 1 ? 1 : x);
+ glVertex3f (0, xx, 0); glVertex3f (1, xx, 0);
+ glVertex3f (yy, 0, 0); glVertex3f (yy, 1, 0);
+ }
+ for (x = 0.5; x > -dx; x -= dx)
+ {
+ GLfloat xx = (x < 0 ? 0 : x);
+ glVertex3f (0, xx, 0); glVertex3f (1, xx, 0);
+ glVertex3f (yy, 0, 0); glVertex3f (yy, 1, 0);
+ }
+ }
+ glEnd();
+ }
+ else /* Draw the texture quad */
+ {
+ GLfloat texw = img->geom.width / (GLfloat) img->tw;
+ GLfloat texh = img->geom.height / (GLfloat) img->th;
+ GLfloat texx1 = img->geom.x / (GLfloat) img->tw;
+ GLfloat texy1 = img->geom.y / (GLfloat) img->th;
+ GLfloat texx2 = texx1 + texw;
+ GLfloat texy2 = texy1 + texh;
+
+ glBindTexture (GL_TEXTURE_2D, img->texid);
+ glColor4f (1, 1, 1, sp->opacity);
+ glNormal3f (0, 0, 1);
+ glBegin (GL_QUADS);
+ glTexCoord2f (texx1, texy2); glVertex3f (0, 0, 0);
+ glTexCoord2f (texx2, texy2); glVertex3f (1, 0, 0);
+ glTexCoord2f (texx2, texy1); glVertex3f (1, 1, 0);
+ glTexCoord2f (texx1, texy1); glVertex3f (0, 1, 0);
+ glEnd();
+
+ if (debug_p) /* Draw a border around the image */
+ {
+ if (!wire) glDisable (GL_TEXTURE_2D);
+
+ if (sp->id & 1)
+ glColor4f (sp->opacity, 0, 0, 1);
+ else
+ glColor4f (0, 0, sp->opacity, 1);
+
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glEnd();
+
+ if (!wire) glEnable (GL_TEXTURE_2D);
+ }
+ }
+
+
+ if (do_titles &&
+ img->title && *img->title &&
+ (sp->state == IN || sp->state == FULL))
+ {
+ glColor4f (1, 1, 1, sp->opacity);
+ print_texture_label (mi->dpy, ss->font_data,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, img->title);
+ }
+ }
+ glPopMatrix();
+
+ if (debug_p)
+ {
+ if (!wire) glDisable (GL_TEXTURE_2D);
+
+ if (sp->id & 1)
+ glColor4f (1, 0, 0, 1);
+ else
+ glColor4f (0, 0, 1, 1);
+
+ /* Draw the "from" and "to" boxes
+ */
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (sp->from.x, sp->from.y, 0);
+ glVertex3f (sp->from.x + sp->from.w, sp->from.y, 0);
+ glVertex3f (sp->from.x + sp->from.w, sp->from.y + sp->from.h, 0);
+ glVertex3f (sp->from.x, sp->from.y + sp->from.h, 0);
+ glEnd();
+
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (sp->to.x, sp->to.y, 0);
+ glVertex3f (sp->to.x + sp->to.w, sp->to.y, 0);
+ glVertex3f (sp->to.x + sp->to.w, sp->to.y + sp->to.h, 0);
+ glVertex3f (sp->to.x, sp->to.y + sp->to.h, 0);
+ glEnd();
+
+ if (!wire) glEnable (GL_TEXTURE_2D);
+ }
+}
+
+
+static void
+tick_sprites (ModeInfo *mi)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < ss->nsprites; i++)
+ tick_sprite (mi, ss->sprites[i]);
+}
+
+
+static void
+draw_sprites (ModeInfo *mi)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+/*
+ {
+ GLfloat rot = current_device_rotation();
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef(rot, 0, 0, 1);
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+ glScalef (s, 1/s, 1);
+ }
+ glTranslatef (-0.5, -0.5, 0);
+ }
+*/
+
+ for (i = 0; i < ss->nsprites; i++)
+ draw_sprite (mi, ss->sprites[i]);
+ glPopMatrix();
+
+ if (debug_p) /* draw a white box (the "screen") */
+ {
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (!wire) glDisable (GL_TEXTURE_2D);
+
+ glColor4f (1, 1, 1, 1);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glEnd();
+
+ if (!wire) glEnable (GL_TEXTURE_2D);
+ }
+}
+
+
+ENTRYPOINT void
+reshape_slideshow (ModeInfo *mi, int width, int height)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ GLfloat s;
+ glViewport (0, 0, width, height);
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity();
+ glRotatef (current_device_rotation(), 0, 0, 1);
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity();
+
+ s = 2;
+
+ if (debug_p)
+ {
+ s *= (zoom / 100.0) * 0.75;
+ if (s < 0.1) s = 0.1;
+ }
+
+ glScalef (s, s, s);
+ glTranslatef (-0.5, -0.5, 0);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ ss->redisplay_needed_p = True;
+}
+
+
+ENTRYPOINT Bool
+slideshow_handle_event (ModeInfo *mi, XEvent *event)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+
+ if (event->xany.type == Expose ||
+ event->xany.type == GraphicsExpose ||
+ event->xany.type == VisibilityNotify)
+ {
+ ss->redisplay_needed_p = True;
+ if (debug_p)
+ fprintf (stderr, "%s: exposure\n", blurb());
+ return False;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ ss->change_now_p = True;
+ return True;
+ }
+
+ return False;
+}
+
+
+/* Do some sanity checking on various user-supplied values, and make
+ sure they are all internally consistent.
+ */
+static void
+sanity_check (ModeInfo *mi)
+{
+ if (zoom < 1) zoom = 1; /* zoom is a positive percentage */
+ else if (zoom > 100) zoom = 100;
+
+ if (zoom == 100) /* with no zooming, there is no panning */
+ pan_seconds = 0;
+
+ if (pan_seconds < fade_seconds) /* pan is inclusive of fade */
+ pan_seconds = fade_seconds;
+
+ if (pan_seconds == 0) /* no zero-length cycles, please... */
+ pan_seconds = 1;
+
+ if (image_seconds < pan_seconds) /* we only change images at fade-time */
+ image_seconds = pan_seconds;
+
+ /* If we're not panning/zooming within the image, then there's no point
+ in crossfading the image with itself -- only do crossfades when changing
+ to a new image. */
+ if (zoom == 100 && pan_seconds < image_seconds)
+ pan_seconds = image_seconds;
+
+ /* No need to use mipmaps if we're not changing the image size much */
+ if (zoom >= 80) mipmap_p = False;
+
+ if (fps_cutoff < 0) fps_cutoff = 0;
+ else if (fps_cutoff > 30) fps_cutoff = 30;
+}
+
+
+static void
+check_fps (ModeInfo *mi)
+{
+#ifndef HAVE_JWXYZ /* always assume Cocoa and mobile are fast enough */
+
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+
+ double start_time, end_time, wall_elapsed, frame_duration, fps;
+ int i;
+
+ start_time = ss->now;
+ end_time = double_time();
+ frame_duration = end_time - start_time; /* time spent drawing this frame */
+ ss->time_elapsed += frame_duration; /* time spent drawing all frames */
+ ss->frames_elapsed++;
+
+ wall_elapsed = end_time - ss->dawn_of_time;
+ fps = ss->frames_elapsed / ss->time_elapsed;
+ ss->theoretical_fps = fps;
+
+ if (ss->checked_fps_p) return;
+
+ if (wall_elapsed <= 8) /* too early to be sure */
+ return;
+
+ ss->checked_fps_p = True;
+
+ if (fps >= fps_cutoff)
+ {
+ if (debug_p)
+ fprintf (stderr,
+ "%s: %.1f fps is fast enough (with %d frames in %.1f secs)\n",
+ blurb(), fps, ss->frames_elapsed, wall_elapsed);
+ return;
+ }
+
+ fprintf (stderr,
+ "%s: only %.1f fps! Turning off pan/fade to compensate...\n",
+ blurb(), fps);
+ zoom = 100;
+ fade_seconds = 0;
+
+ sanity_check (mi);
+
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp = ss->sprites[i];
+ randomize_sprite (mi, sp);
+ sp->state = FULL;
+ }
+
+ ss->redisplay_needed_p = True;
+
+ /* Need this in case zoom changed. */
+ reshape_slideshow (mi, mi->xgwa.width, mi->xgwa.height);
+#endif /* HAVE_JWXYZ */
+}
+
+
+/* Kludge to add "-v" to invocation of "xscreensaver-getimage" in -debug mode
+ */
+static void
+hack_resources (void)
+{
+#if 0
+ char *res = "desktopGrabber";
+ char *val = get_string_resource (res, "DesktopGrabber");
+ char buf1[255];
+ char buf2[255];
+ XrmValue value;
+ sprintf (buf1, "%.100s.%.100s", progclass, res);
+ sprintf (buf2, "%.200s -v", val);
+ value.addr = buf2;
+ value.size = strlen(buf2);
+ XrmPutResource (&db, buf1, "String", &value);
+#endif
+}
+
+
+ENTRYPOINT void
+init_slideshow (ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ slideshow_state *ss;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, sss);
+ ss = &sss[screen];
+
+ if ((ss->glx_context = init_GL(mi)) != NULL) {
+ reshape_slideshow (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ if (debug_p)
+ fprintf (stderr, "%s: pan: %d; fade: %d; img: %d; zoom: %d%%\n",
+ blurb(), pan_seconds, fade_seconds, image_seconds, zoom);
+
+ sanity_check(mi);
+
+ if (debug_p)
+ fprintf (stderr, "%s: pan: %d; fade: %d; img: %d; zoom: %d%%\n\n",
+ blurb(), pan_seconds, fade_seconds, image_seconds, zoom);
+
+ glDisable (GL_LIGHTING);
+ glDisable (GL_DEPTH_TEST);
+ glDepthMask (GL_FALSE);
+ glEnable (GL_CULL_FACE);
+ glCullFace (GL_BACK);
+
+ if (! wire)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glShadeModel (GL_SMOOTH);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ if (debug_p) glLineWidth (3);
+
+ ss->font_data = load_texture_font (mi->dpy, "titleFont");
+
+ if (debug_p)
+ hack_resources();
+
+ ss->now = double_time();
+ ss->dawn_of_time = ss->now;
+ ss->prev_frame_time = ss->now;
+
+ ss->awaiting_first_image_p = True;
+ alloc_image (mi);
+}
+
+
+ENTRYPOINT void
+draw_slideshow (ModeInfo *mi)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+
+ if (!ss->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(ss->glx_context));
+
+ if (ss->awaiting_first_image_p)
+ {
+ image *img = ss->images[0];
+ if (!img) abort();
+ if (!img->loaded_p)
+ return;
+
+ ss->awaiting_first_image_p = False;
+ ss->dawn_of_time = double_time();
+
+ /* start the very first sprite fading in */
+ new_sprite (mi);
+ }
+
+ ss->now = double_time();
+
+ /* Each sprite has three states: fading in, full, fading out.
+ The in/out states overlap like this:
+
+ iiiiiiFFFFFFFFFFFFoooooo . . . . . . . . . . . . . . . . .
+ . . . . . . . . . iiiiiiFFFFFFFFFFFFoooooo . . . . . . . .
+ . . . . . . . . . . . . . . . . . . iiiiiiFFFFFFFFFFFFooooo
+
+ So as soon as a sprite goes into the "out" state, we create
+ a new sprite (in the "in" state.)
+ */
+
+ if (ss->nsprites > 2) abort();
+
+ /* If a sprite is just entering the fade-out state,
+ then add a new sprite in the fade-in state.
+ */
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp = ss->sprites[i];
+ if (sp->state != sp->prev_state &&
+ sp->state == (fade_seconds == 0 ? DEAD : OUT))
+ new_sprite (mi);
+ }
+
+ tick_sprites (mi);
+
+ /* Now garbage collect the dead sprites.
+ */
+ for (i = 0; i < ss->nsprites; i++)
+ {
+ sprite *sp = ss->sprites[i];
+ if (sp->state == DEAD)
+ {
+ destroy_sprite (mi, sp);
+ i--;
+ }
+ }
+
+ /* We can only ever end up with no sprites at all if the machine is
+ being really slow and we hopped states directly from FULL to DEAD
+ without passing OUT... */
+ if (ss->nsprites == 0)
+ new_sprite (mi);
+
+ if (!ss->redisplay_needed_p)
+ return;
+
+ if (debug_p && ss->now - ss->prev_frame_time > 1)
+ fprintf (stderr, "%s: static screen for %.1f secs\n",
+ blurb(), ss->now - ss->prev_frame_time);
+
+ draw_sprites (mi);
+
+ if (mi->fps_p) do_fps (mi);
+
+ glFinish();
+ glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi));
+ ss->prev_frame_time = ss->now;
+ ss->redisplay_needed_p = False;
+ check_fps (mi);
+}
+
+XSCREENSAVER_MODULE_2 ("GLSlideshow", glslideshow, slideshow)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/glslideshow.man b/hacks/glx/glslideshow.man
new file mode 100644
index 0000000..4ce4672
--- /dev/null
+++ b/hacks/glx/glslideshow.man
@@ -0,0 +1,131 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+glslideshow - slideshow of images using smooth zooming and fades
+.SH SYNOPSIS
+.B glslideshow
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-duration \fIseconds\fP]
+[\-zoom \fIpercent\fP]
+[\-pan \fIseconds\fP]
+[\-fade \fIseconds\fP]
+[\-titles]
+[\-letterbox | \-clip]
+[\-delay \fIusecs\fP]
+[\-fps]
+[\-debug]
+[\-wireframe]
+[\-cutoff \fIint\fP]
+.SH DESCRIPTION
+Loads a random sequence of images and smoothly scans and zooms around
+in each, fading from pan to pan.
+
+This program requires a good video card capable of supporting large
+textures.
+
+To specify the directory that images are loaded from, run
+.BR xscreensaver-demo (1)
+and click on the "Advanced" tab.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-duration \fIseconds\fP
+How long each image will be displayed before loading a new one.
+Default 30 seconds.
+.TP 8
+.B \-pan \fIseconds\fP
+How long each pan-and-zoom should last. Default 6 seconds.
+
+With the default settings of \fI\-pan 6 \-duration 30\fP, each image
+will be displayed five times (30/6), and then a new image will be loaded.
+If you want a new image to be loaded at each fade, then set \fI\-pan\fP
+and \fI\-duration\fP to the same value.
+.TP 8
+.B \-fade \fIseconds\fP
+How long each cross-fade between images should last. Default 2 seconds.
+If set to 0, then no cross-fading will be done (all transitions
+will be jump-cuts.)
+
+Note that fades are included in the pan time, so \fI\-fade\fP cannot
+be larger than \fI\-pan\fP.
+.TP 8
+.B \-zoom \fInumber\fP
+Amount to zoom and pan as a percentage. Default: 75, meaning that
+75% or more of each image will always be visible. If set to 100%,
+then the images will always fill the screen, and no panning or
+zooming will occur. (Images will still smoothly fade from one
+to another if \fI\-fade\fP is non-zero.)
+.TP 8
+.B \-titles
+Whether to print the file name of the current image in the upper left corner.
+.TP 8
+.B \-letterbox
+In "letterbox" mode, when an image is not the same aspect ratio as the screen,
+black bars will appear at the top/bottom or left/right so that the whole
+image can be displayed. This is the default.
+.TP 8
+.B \-clip
+In "clip" mode, when an image is not the same aspect ratio as the screen,
+we will zoom in further until the image takes up the whole screen.
+This is the opposite of \fI\-letterbox\fP.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-cutoff \fInumber\fP
+If the frame rate we are achieving is lower than this, then panning,
+fading, and zooming will be disabled. Default 5 FPS.
+
+The idea here is that if your machine can't maintain a decent frame
+rate, then it must not have fast 3D hardware, so we might as well
+behave in a simpler manner. Set this to 0 to disable this check.
+.TP 8
+.B \-debug
+Prints debugging info to stderr.
+.TP 8
+.B \-wireframe
+Another debug mode.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver-demo (1),
+.BR xscreensaver-getimage (1),
+.BR xscreensaver (1),
+.BR carousel (MANSUFFIX)
+.BR photopile (MANSUFFIX)
+.SH COPYRIGHT
+Copyright \(co 2003-2005 by Jamie Zawinski, based on an earlier version
+that was
+Copyright \(co 2002 by Mike Oliphant.
+
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski and Mike Oliphant.
diff --git a/hacks/glx/glsnake.c b/hacks/glx/glsnake.c
new file mode 100644
index 0000000..5f20421
--- /dev/null
+++ b/hacks/glx/glsnake.c
@@ -0,0 +1,2694 @@
+/* glsnake.c - OpenGL imitation of Rubik's Snake
+ *
+ * (c) 2001-2005 Jamie Wilkinson <jaq@spacepants.org>
+ * (c) 2001-2003 Andrew Bennetts <andrew@puzzling.org>
+ * (c) 2001-2003 Peter Aylett <peter@ylett.com>
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+/* HAVE_GLUT defined if we're building a standalone glsnake,
+ * and not defined if we're building as an xscreensaver hack */
+#ifdef HAVE_GLUT
+# include <GL/glut.h>
+#else
+# ifdef HAVE_JWXYZ
+# define HAVE_GETTIMEOFDAY
+# else
+# include <GL/gl.h>
+# include <GL/glu.h>
+# endif
+#endif
+# ifdef HAVE_ANDROID
+# include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#ifdef STANDALONE
+# include "xlockmoreI.h"
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* angles */
+#define ZERO 0.0
+#define LEFT 90.0
+#define PIN 180.0
+#define RIGHT 270.0
+
+#ifdef HAVE_GETTIMEOFDAY
+# ifdef GETTIMEOFDAY_TWO_ARGS
+
+# include <sys/time.h>
+# include <time.h>
+ typedef struct timeval snaketime;
+# define GETSECS(t) ((t).tv_sec)
+# define GETMSECS(t) ((t).tv_usec/1000)
+
+# else /* !GETTIMEOFDAY_TWO_ARGS */
+
+# include <sys/time.h>
+# include <time.h>
+ typedef struct timeval snaketime;
+# define GETSECS(t) ((t).tv_sec)
+# define GETMSECS(t) ((t).tv_usec/1000)
+
+# endif /* GETTIMEOFDAY_TWO_ARGS */
+
+#else /* !HAVE_GETTIMEOFDAY */
+# ifdef HAVE_FTIME
+
+# include <sys/timeb.h>
+ typedef struct timeb snaketime;
+# define GETSECS(t) ((long)(t).time)
+# define GETMSECS(t) ((t).millitm/1000)
+
+# endif /* HAVE_FTIME */
+#endif /* HAVE_GETTIMEOFDAY */
+
+#include <math.h>
+
+#ifndef M_SQRT1_2 /* Win32 doesn't have this constant */
+#define M_SQRT1_2 0.70710678118654752440084436210485
+#endif
+
+#define NODE_COUNT 24
+
+#ifdef HAVE_GLUT
+#define DEF_YANGVEL 0.10
+#define DEF_ZANGVEL 0.14
+#define DEF_EXPLODE 0.03
+#define DEF_ANGVEL 1.0
+#define DEF_STATICTIME 5000
+#define DEF_ALTCOLOUR 0
+#define DEF_TITLES 0
+#define DEF_INTERACTIVE 0
+#define DEF_ZOOM 25.0
+#define DEF_WIREFRAME 0
+#define DEF_TRANSPARENT 1
+#else
+/* xscreensaver options doobies prefer strings */
+#define DEF_YANGVEL "0.10"
+#define DEF_ZANGVEL "0.14"
+#define DEF_EXPLODE "0.03"
+#define DEF_ANGVEL "1.0"
+#define DEF_STATICTIME "5000"
+#define DEF_ALTCOLOUR "False"
+#define DEF_TITLES "False"
+#define DEF_INTERACTIVE "False"
+#define DEF_ZOOM "25.0"
+#define DEF_WIREFRAME "False"
+#define DEF_TRANSPARENT "True"
+#endif
+
+/* static variables */
+
+static GLfloat explode;
+static long statictime;
+static GLfloat yspin = 60.0;
+static GLfloat zspin = -45.0;
+static GLfloat yangvel;
+static GLfloat zangvel;
+static Bool altcolour;
+static Bool titles;
+static Bool interactive;
+static Bool wireframe;
+static Bool transparent;
+static GLfloat zoom;
+static GLfloat angvel;
+
+#ifndef HAVE_GLUT
+
+#define glsnake_init init_glsnake
+#define glsnake_display draw_glsnake
+#define glsnake_reshape reshape_glsnake
+#define free_glsnake 0
+#define release_glsnake 0
+#define glsnake_handle_event xlockmore_no_events
+
+/* xscreensaver defaults */
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+ "*labelfont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n" \
+
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "texfont.h"
+
+static XrmOptionDescRec opts[] = {
+ { "-explode", ".explode", XrmoptionSepArg, DEF_EXPLODE },
+ { "-angvel", ".angvel", XrmoptionSepArg, DEF_ANGVEL },
+ { "-statictime", ".statictime", XrmoptionSepArg, DEF_STATICTIME },
+ { "-yangvel", ".yangvel", XrmoptionSepArg, DEF_YANGVEL },
+ { "-zangvel", ".zangvel", XrmoptionSepArg, DEF_ZANGVEL },
+ { "-altcolour", ".altcolour", XrmoptionNoArg, "True" },
+ { "-no-altcolour", ".altcolour", XrmoptionNoArg, "False" },
+ { "-titles", ".titles", XrmoptionNoArg, "True" },
+ { "-no-titles", ".titles", XrmoptionNoArg, "False" },
+ { "-zoom", ".zoom", XrmoptionSepArg, DEF_ZOOM },
+ { "-wireframe", ".wireframe", XrmoptionNoArg, "true" },
+ { "-no-wireframe", ".wireframe", XrmoptionNoArg, "false" },
+ { "-transparent", ".transparent", XrmoptionNoArg, "true" },
+ { "-no-transparent", ".transparent", XrmoptionNoArg, "false" },
+};
+
+static argtype vars[] = {
+ {&explode, "explode", "Explode", DEF_EXPLODE, t_Float},
+ {&angvel, "angvel", "Angular Velocity", DEF_ANGVEL, t_Float},
+ {&statictime, "statictime", "Static Time", DEF_STATICTIME, t_Int},
+ {&yangvel, "yangvel", "Angular Velocity about Y axis", DEF_YANGVEL, t_Float},
+ {&zangvel, "zangvel", "Angular Velocity about X axis", DEF_ZANGVEL, t_Float},
+ {&interactive, "interactive", "Interactive", DEF_INTERACTIVE, t_Bool},
+ {&altcolour, "altcolour", "Alternate Colour Scheme", DEF_ALTCOLOUR, t_Bool},
+ {&titles, "titles", "Titles", DEF_TITLES, t_Bool},
+ {&zoom, "zoom", "Zoom", DEF_ZOOM, t_Float},
+ {&wireframe, "wireframe", "Wireframe", DEF_WIREFRAME, t_Bool},
+ {&transparent, "transparent", "Transparent!", DEF_TRANSPARENT, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt glsnake_opts = {countof(opts), opts, countof(vars), vars, NULL};
+#endif
+
+struct model_s {
+ const char * name;
+ float node[NODE_COUNT];
+};
+
+struct glsnake_cfg {
+#ifndef HAVE_GLUT
+ GLXContext * glx_context;
+ texture_font_data *font_data;
+#else
+ /* font list number */
+ int font;
+#endif
+
+ /* window id */
+ int window;
+
+ /* is a morph in progress? */
+ int morphing;
+
+ /* has the model been paused? */
+ int paused;
+
+ /* snake metrics */
+ int is_cyclic;
+ int is_legal;
+ float last_turn;
+ int debug;
+
+ /* the shape of the model */
+ float node[NODE_COUNT];
+
+ /* currently selected node for interactive mode */
+ int selected;
+
+ /* models */
+ unsigned int prev_model;
+ unsigned int next_model;
+
+ /* model morphing */
+ int new_morph;
+
+ /* colours */
+ float colour[2][4];
+ int next_colour;
+ int prev_colour;
+
+ /* timing variables */
+ snaketime last_iteration;
+ snaketime last_morph;
+
+ /* window size */
+ int width, height;
+ int old_width, old_height;
+
+ /* the id of the display lists for drawing a node */
+ GLuint node_solid, node_wire;
+ int node_polys;
+
+ /* is the window fullscreen? */
+ int fullscreen;
+};
+
+#define COLOUR_CYCLIC 0
+#define COLOUR_ACYCLIC 1
+#define COLOUR_INVALID 2
+#define COLOUR_AUTHENTIC 3
+#define COLOUR_ORIGLOGO 4
+
+static const float colour[][2][4] = {
+ /* cyclic - green */
+ { { 0.4, 0.8, 0.2, 0.6 },
+ { 1.0, 1.0, 1.0, 0.6 } },
+ /* acyclic - blue */
+ { { 0.3, 0.1, 0.9, 0.6 },
+ { 1.0, 1.0, 1.0, 0.6 } },
+ /* invalid - grey */
+ { { 0.3, 0.1, 0.9, 0.6 },
+ { 1.0, 1.0, 1.0, 0.6 } },
+ /* authentic - purple and green */
+ { { 0.38, 0.0, 0.55, 0.7 },
+ { 0.0, 0.5, 0.34, 0.7 } },
+ /* old "authentic" colours from the logo */
+ { { 171/255.0, 0, 1.0, 1.0 },
+ { 46/255.0, 205/255.0, 227/255.0, 1.0 } }
+};
+
+static const struct model_s model[] = {
+#define STRAIGHT_MODEL 0
+ { "straight",
+ { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO, ZERO }
+ },
+ /* the models in the Rubik's snake manual */
+ { "ball",
+ { RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT,
+ RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT,
+ RIGHT, LEFT, RIGHT, LEFT, ZERO }
+ },
+#define START_MODEL 2
+ { "snow",
+ { RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT,
+ RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT,
+ RIGHT, LEFT, LEFT, LEFT, ZERO }
+ },
+ { "propellor",
+ { ZERO, ZERO, ZERO, RIGHT, LEFT, RIGHT, ZERO, LEFT, ZERO, ZERO,
+ ZERO, RIGHT, LEFT, RIGHT, ZERO, LEFT, ZERO, ZERO, ZERO, RIGHT,
+ LEFT, RIGHT, ZERO, LEFT }
+ },
+ { "flamingo",
+ { ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, RIGHT, PIN,
+ RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, ZERO, ZERO,
+ ZERO, PIN, ZERO }
+ },
+ { "cat",
+ { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN,
+ ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO }
+ },
+ { "rooster",
+ { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, LEFT, RIGHT, PIN, RIGHT,
+ ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, LEFT, ZERO,
+ PIN, ZERO }
+ },
+ /* These models were taken from Andrew and Peter's original snake.c
+ * as well as some newer ones made up by Jamie, Andrew and Peter. */
+ { "half balls",
+ { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT,
+ LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT,
+ RIGHT, LEFT, LEFT, LEFT, ZERO }
+ },
+ { "zigzag1",
+ { RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT,
+ LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT,
+ RIGHT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "zigzag2",
+ { PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN,
+ ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN,
+ ZERO }
+ },
+ { "zigzag3",
+ { PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN,
+ LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN,
+ ZERO }
+ },
+ { "caterpillar",
+ { RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT,
+ LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN,
+ LEFT, LEFT, ZERO }
+ },
+ { "bow",
+ { RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT,
+ LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT,
+ RIGHT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "turtle",
+ { ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT,
+ LEFT, RIGHT, LEFT, LEFT, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT,
+ RIGHT, RIGHT, RIGHT, ZERO }
+ },
+ { "basket",
+ { RIGHT, PIN, ZERO, ZERO, PIN, LEFT, ZERO, LEFT, LEFT, ZERO,
+ LEFT, PIN, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO,
+ PIN, LEFT, ZERO }
+ },
+ { "thing",
+ { PIN, RIGHT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT,
+ LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT,
+ RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "hexagon",
+ { ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO,
+ ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO,
+ LEFT, ZERO, ZERO, RIGHT }
+ },
+ { "tri1",
+ { ZERO, ZERO, LEFT, RIGHT, ZERO, LEFT, ZERO, RIGHT, ZERO, ZERO,
+ LEFT, RIGHT, ZERO, LEFT, ZERO, RIGHT, ZERO, ZERO, LEFT, RIGHT,
+ ZERO, LEFT, ZERO, RIGHT }
+ },
+ { "triangle",
+ { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO,
+ ZERO, ZERO, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO, LEFT, RIGHT }
+ },
+ { "flower",
+ { ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT,
+ RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN,
+ RIGHT, RIGHT, PIN }
+ },
+ { "crucifix",
+ { ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN,
+ PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN }
+ },
+ { "kayak",
+ { PIN, RIGHT, LEFT, PIN, LEFT, PIN, ZERO, ZERO, RIGHT, PIN, LEFT,
+ ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO,
+ PIN, RIGHT }
+ },
+ { "bird",
+ { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT,
+ ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT,
+ LEFT, ZERO, PIN, ZERO }
+ },
+ { "seal",
+ { RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO,
+ LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, PIN, RIGHT,
+ RIGHT, LEFT, ZERO }
+ },
+ { "dog",
+ { ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN,
+ ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO }
+ },
+ { "frog",
+ { RIGHT, RIGHT, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN, LEFT, PIN,
+ RIGHT, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT,
+ RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "quavers",
+ { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO, ZERO, ZERO,
+ RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, ZERO, LEFT, LEFT,
+ RIGHT, LEFT, RIGHT, RIGHT, ZERO }
+ },
+ { "fly",
+ { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO, PIN, ZERO, ZERO,
+ LEFT, PIN, RIGHT, ZERO, ZERO, PIN, ZERO, LEFT, LEFT, RIGHT, LEFT,
+ RIGHT, RIGHT, ZERO }
+ },
+ { "puppy",
+ { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO,
+ RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT,
+ LEFT, ZERO, ZERO }
+ },
+ { "stars",
+ { LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT,
+ ZERO, ZERO, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN,
+ RIGHT, LEFT, ZERO }
+ },
+ { "mountains",
+ { RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN,
+ LEFT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT,
+ PIN, LEFT, PIN }
+ },
+ { "quad1",
+ { RIGHT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN,
+ LEFT, PIN, RIGHT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, LEFT,
+ LEFT, PIN, LEFT, PIN }
+ },
+ { "quad2",
+ { ZERO, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN,
+ ZERO, PIN, ZERO, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT,
+ PIN, ZERO, PIN }
+ },
+ { "glasses",
+ { ZERO, PIN, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO, PIN,
+ ZERO, PIN, ZERO, PIN, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO,
+ PIN, ZERO, PIN }
+ },
+ { "em",
+ { ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN,
+ ZERO, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO,
+ PIN, ZERO, PIN }
+ },
+ { "quad3",
+ { ZERO, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT,
+ ZERO, PIN, ZERO, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO,
+ LEFT, ZERO, PIN }
+ },
+ { "vee",
+ { ZERO, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO,
+ ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO,
+ ZERO, ZERO, PIN }
+ },
+ { "square",
+ { ZERO, ZERO, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO, ZERO,
+ ZERO, PIN, ZERO, ZERO, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO,
+ ZERO, ZERO, PIN }
+ },
+ { "eagle",
+ { RIGHT, ZERO, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO, ZERO,
+ LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT,
+ ZERO, ZERO, LEFT, PIN }
+ },
+ { "volcano",
+ { RIGHT, ZERO, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT,
+ ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, RIGHT, RIGHT, PIN, LEFT,
+ LEFT, RIGHT, ZERO, LEFT, PIN }
+ },
+ { "saddle",
+ { RIGHT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO,
+ LEFT, PIN, RIGHT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT,
+ ZERO, LEFT, PIN }
+ },
+ { "c3d",
+ { ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, LEFT, ZERO,
+ ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, LEFT,
+ ZERO, ZERO, PIN }
+ },
+ { "block",
+ { ZERO, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN,
+ RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, LEFT,
+ PIN, RIGHT }
+ },
+ { "duck",
+ { LEFT, PIN, LEFT, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, LEFT,
+ PIN, RIGHT, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN,
+ LEFT, ZERO }
+ },
+ { "prayer",
+ { RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, ZERO,
+ ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, RIGHT, RIGHT, LEFT,
+ RIGHT, LEFT, LEFT, LEFT, PIN }
+ },
+ { "giraffe",
+ { ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, RIGHT,
+ RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT,
+ PIN, LEFT, LEFT, LEFT }
+ },
+ { "tie fighter",
+ { PIN, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, LEFT,
+ ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, LEFT, ZERO,
+ LEFT, RIGHT, ZERO, ZERO }
+ },
+ { "Strong Arms",
+ { PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, RIGHT,
+ RIGHT, PIN, RIGHT, RIGHT, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO,
+ ZERO, PIN, PIN, ZERO }
+ },
+
+ /* the following modesl were created during the slug/compsoc codefest
+ * febrray 2003 */
+ { "cool looking gegl",
+ { PIN, PIN, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT,
+ ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, ZERO,
+ ZERO, ZERO }
+ },
+ { "knuckledusters",
+ { ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN,
+ PIN, ZERO, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO,
+ RIGHT, ZERO }
+ },
+ { "k's turd",
+ { RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT,
+ RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN,
+ RIGHT, LEFT, RIGHT, PIN, ZERO }
+ },
+ { "lightsabre",
+ { ZERO, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO }
+ },
+ { "not a stairway",
+ { LEFT, ZERO, RIGHT, LEFT, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO,
+ RIGHT, LEFT, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT,
+ RIGHT, ZERO, LEFT, ZERO }
+ },
+ { "not very good (but accurate) gegl",
+ { ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO,
+ PIN, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO, PIN, PIN, ZERO,
+ PIN, ZERO }
+ },
+ { "box",
+ { ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO, ZERO }
+ },
+ { "kissy box",
+ { PIN, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO,
+ ZERO, PIN, ZERO }
+ },
+ { "erect penis", /* thanks benno */
+ { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN,
+ PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO }
+ },
+ { "flaccid penis",
+ { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN,
+ PIN, ZERO, ZERO, ZERO, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO,
+ ZERO, ZERO }
+ },
+ { "vagina",
+ { RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO,
+ LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT,
+ PIN, RIGHT, ZERO }
+ },
+ { "mask",
+ { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN,
+ ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO,
+ ZERO, ZERO, ZERO }
+ },
+ { "poles or columns or something",
+ { LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO,
+ ZERO, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO,
+ ZERO, LEFT, ZERO }
+ },
+ { "crooked v",
+ { ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO,
+ ZERO, LEFT, ZERO, LEFT, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO,
+ ZERO, ZERO, ZERO }
+ },
+ { "dog leg",
+ { ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO,
+ LEFT, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO,
+ ZERO, ZERO }
+ },
+ { "scrubby",
+ { ZERO, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO,
+ LEFT, RIGHT, ZERO, ZERO, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO,
+ LEFT, PIN, ZERO, ZERO }
+ },
+ { "voltron's eyes",
+ { ZERO, ZERO, PIN, RIGHT, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO,
+ LEFT, PIN, ZERO, ZERO, PIN, ZERO, LEFT, ZERO, RIGHT, LEFT, ZERO,
+ RIGHT, ZERO, ZERO }
+ },
+ { "flying toaster",
+ { PIN, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO,
+ RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO,
+ PIN, ZERO }
+ },
+ { "dubbya",
+ { PIN, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO,
+ ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO,
+ PIN, ZERO }
+ },
+ { "tap handle",
+ { PIN, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO,
+ LEFT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO,
+ PIN, ZERO }
+ },
+ { "wingnut",
+ { PIN, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO,
+ PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO,
+ PIN, ZERO }
+ },
+ { "tight twist",
+ { RIGHT, ZERO, ZERO, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT,
+ RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT,
+ ZERO, ZERO, RIGHT, ZERO }
+ },
+ { "double helix",
+ { RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT,
+ ZERO, RIGHT, ZERO, RIGHT, LEFT, RIGHT, PIN, ZERO, RIGHT, ZERO,
+ RIGHT, ZERO, RIGHT, ZERO, ZERO }
+ },
+
+ /* These models come from the website at
+ * http://www.geocities.com/stigeide/snake */
+#if 0
+ { "Abstract",
+ { RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO, ZERO }
+ },
+#endif
+ { "toadstool",
+ { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, ZERO }
+ },
+ { "AlanH2",
+ { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, ZERO }
+ },
+ { "AlanH3",
+ { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, ZERO }
+ },
+ { "AlanH4",
+ { ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, PIN, ZERO, ZERO, ZERO }
+ },
+ { "Alien",
+ { RIGHT, LEFT, RIGHT, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO, PIN, PIN, ZERO }
+ },
+ { "Angel",
+ { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO }
+ },
+ { "AnotherFigure",
+ { LEFT, PIN, RIGHT, ZERO, ZERO, PIN, RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO }
+ },
+ { "Ball",
+ { LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT , ZERO }
+ },
+ { "Basket",
+ { ZERO, RIGHT, RIGHT, ZERO, RIGHT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, ZERO, LEFT , ZERO }
+ },
+ { "Beetle",
+ { PIN, LEFT, RIGHT, ZERO, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO, LEFT, RIGHT, PIN, RIGHT , ZERO }
+ },
+ { "bone",
+ { PIN, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, PIN , ZERO }
+ },
+ { "Bow",
+ { LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT , ZERO }
+ },
+ { "bra",
+ { RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT , ZERO }
+ },
+ { "bronchosaurus",
+ { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, PIN , ZERO }
+ },
+ { "Cactus",
+ { PIN, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, ZERO , ZERO }
+ },
+ { "Camel",
+ { RIGHT, ZERO, PIN, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, ZERO, ZERO, LEFT , ZERO }
+ },
+ { "Candlestick",
+ { LEFT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT , ZERO }
+ },
+ { "Cat",
+ { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO , ZERO }
+ },
+ { "Cave",
+ { RIGHT, ZERO, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO , ZERO }
+ },
+ { "Chains",
+ { PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO , ZERO }
+ },
+ { "Chair",
+ { RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, LEFT, RIGHT, LEFT, LEFT , ZERO }
+ },
+ { "Chick",
+ { RIGHT, RIGHT, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, LEFT, LEFT , ZERO }
+ },
+ { "Clockwise",
+ { RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT , ZERO }
+ },
+ { "cobra",
+ { ZERO, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, LEFT, ZERO, LEFT, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT , ZERO }
+ },
+#if 0
+ { "Cobra2",
+ { LEFT, ZERO, PIN, ZERO, PIN, LEFT, ZERO, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, PIN, ZERO, RIGHT , ZERO }
+ },
+#endif
+ { "Cobra3",
+ { ZERO, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, LEFT , ZERO }
+ },
+ { "Compact1",
+ { ZERO, ZERO, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN , ZERO }
+ },
+ { "Compact2",
+ { LEFT, PIN, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO , ZERO }
+ },
+ { "Compact3",
+ { ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN , ZERO }
+ },
+ { "Compact4",
+ { PIN, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO , ZERO }
+ },
+ { "Compact5",
+ { LEFT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT , ZERO }
+ },
+ { "Contact",
+ { PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN, RIGHT, PIN , ZERO }
+ },
+ { "Contact2",
+ { RIGHT, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, LEFT , ZERO }
+ },
+ { "Cook",
+ { ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO, PIN , ZERO }
+ },
+ { "Counterclockwise",
+ { LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT , ZERO }
+ },
+ { "Cradle",
+ { LEFT, LEFT, ZERO, PIN, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, PIN, ZERO, RIGHT, RIGHT, LEFT, LEFT, ZERO, ZERO, RIGHT , ZERO }
+ },
+ { "Crankshaft",
+ { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, PIN, RIGHT , ZERO }
+ },
+ { "Cross",
+ { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN , ZERO }
+ },
+ { "Cross2",
+ { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO , ZERO }
+ },
+ { "Cross3",
+ { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "CrossVersion1",
+ { PIN, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, ZERO }
+ },
+ { "CrossVersion2",
+ { RIGHT, LEFT, PIN, LEFT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, LEFT, PIN, LEFT, RIGHT, ZERO }
+ },
+ { "Crown",
+ { LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, PIN, ZERO, ZERO }
+ },
+ { "DNAStrand",
+ { RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, ZERO }
+ },
+ { "Diamond",
+ { ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO }
+ },
+ { "Dog",
+ { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, LEFT, RIGHT, ZERO }
+ },
+ { "DogFace",
+ { ZERO, ZERO, PIN, PIN, ZERO, LEFT, LEFT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO }
+ },
+ { "DoublePeak",
+ { ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, LEFT, ZERO, PIN, ZERO, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT, ZERO }
+ },
+ { "DoubleRoof",
+ { ZERO, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO }
+ },
+ { "txoboggan",
+ { ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO }
+ },
+ { "Doubled",
+ { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO }
+ },
+ { "Doubled1",
+ { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO, RIGHT, ZERO, RIGHT, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO }
+ },
+ { "Doubled2",
+ { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, RIGHT, ZERO, RIGHT, LEFT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO }
+ },
+ { "DumblingSpoon",
+ { PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, ZERO }
+ },
+ { "Embrace",
+ { PIN, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO }
+ },
+ { "EndlessBelt",
+ { ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, LEFT, RIGHT, ZERO, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO }
+ },
+ { "Entrance",
+ { LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, ZERO }
+ },
+ { "Esthetic",
+ { LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, ZERO }
+ },
+ { "Explosion",
+ { RIGHT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, ZERO }
+ },
+ { "F-ZeroXCar",
+ { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, ZERO }
+ },
+ { "Face",
+ { ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO }
+ },
+ { "Fantasy",
+ { LEFT, LEFT, RIGHT, PIN, ZERO, RIGHT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, LEFT, ZERO, PIN, LEFT, RIGHT, RIGHT, RIGHT, PIN, ZERO }
+ },
+ { "Fantasy1",
+ { PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO }
+ },
+ { "FaserGun",
+ { ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, RIGHT, ZERO, PIN, ZERO }
+ },
+ { "FelixW",
+ { ZERO, RIGHT, ZERO, PIN, LEFT, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, RIGHT, PIN, ZERO, LEFT, ZERO, ZERO }
+ },
+ { "Flamingo",
+ { ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, ZERO, ZERO, ZERO, PIN, ZERO }
+ },
+ { "FlatOnTheTop",
+ { ZERO, PIN, PIN, ZERO, PIN, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO }
+ },
+ { "Fly",
+ { ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO }
+ },
+ { "Fountain",
+ { LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO }
+ },
+ { "Frog",
+ { LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, RIGHT, LEFT, RIGHT, RIGHT, ZERO }
+ },
+ { "Frog2",
+ { LEFT, ZERO, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, ZERO, RIGHT, ZERO }
+ },
+ { "Furby",
+ { PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO }
+ },
+ { "Gate",
+ { ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "Ghost",
+ { LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO }
+ },
+ { "Globus",
+ { RIGHT, LEFT, ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, PIN, ZERO, RIGHT, LEFT, ZERO, ZERO }
+ },
+ { "Grotto",
+ { PIN, PIN, ZERO, LEFT, RIGHT, LEFT, ZERO, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO }
+ },
+ { "H",
+ { PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "HeadOfDevil",
+ { PIN, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO, ZERO }
+ },
+ { "Heart",
+ { RIGHT, ZERO, ZERO, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, RIGHT, ZERO, PIN, ZERO, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO, ZERO, ZERO, LEFT, ZERO }
+ },
+ { "Heart2",
+ { ZERO, PIN, ZERO, ZERO, LEFT, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO }
+ },
+ { "Hexagon",
+ { ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO }
+ },
+ { "HoleInTheMiddle1",
+ { ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO }
+ },
+ { "HoleInTheMiddle2",
+ { ZERO, LEFT, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO }
+ },
+ { "HouseBoat",
+ { RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, ZERO }
+ },
+ { "HouseByHouse",
+ { LEFT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, ZERO }
+ },
+ { "Infinity",
+ { LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "Integral",
+ { RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "Iron",
+ { ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO }
+ },
+ { "just squares",
+ { RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "Kink",
+ { ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "Knot",
+ { LEFT, LEFT, PIN, LEFT, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, RIGHT, PIN, RIGHT, RIGHT, LEFT, ZERO }
+ },
+ { "Leaf",
+ { ZERO, PIN, PIN, ZERO, ZERO, LEFT, ZERO, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO }
+ },
+ { "LeftAsRight",
+ { RIGHT, PIN, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, PIN, LEFT, ZERO }
+ },
+ { "Long-necked",
+ { PIN, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "lunar module",
+ { PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, ZERO }
+ },
+ { "magnifying glass",
+ { ZERO, ZERO, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, ZERO }
+ },
+ { "Mask",
+ { ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, ZERO }
+ },
+ { "Microscope",
+ { PIN, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO }
+ },
+ { "Mirror",
+ { PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "MissPiggy",
+ { ZERO, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO, LEFT, PIN, RIGHT, RIGHT, ZERO, RIGHT, ZERO }
+ },
+ { "Mole",
+ { ZERO, RIGHT, ZERO, RIGHT, LEFT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, ZERO, RIGHT, RIGHT, PIN, LEFT, ZERO }
+ },
+ { "Monk",
+ { LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "Mountain",
+ { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, LEFT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO }
+ },
+ { "mountains",
+ { ZERO, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO }
+ },
+ { "MouseWithoutTail",
+ { ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "mushroom",
+ { PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, ZERO }
+ },
+ { "necklace",
+ { ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO }
+ },
+ { "NestledAgainst",
+ { LEFT, ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, ZERO }
+ },
+ { "NoClue",
+ { ZERO, RIGHT, PIN, LEFT, LEFT, LEFT, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO }
+ },
+ { "Noname",
+ { LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, ZERO }
+ },
+ { "Obelisk",
+ { PIN, ZERO, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO, ZERO, ZERO }
+ },
+ { "Ostrich",
+ { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, ZERO }
+ },
+ { "Ostrich2",
+ { PIN, PIN, ZERO, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
+ },
+ { "pair of glasses",
+ { ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
+ },
+ { "Parrot",
+ { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO }
+ },
+ { "Penis",
+ { PIN, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, PIN, ZERO }
+ },
+ { "PictureComingSoon",
+ { LEFT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, RIGHT, RIGHT, ZERO }
+ },
+ { "Pitti",
+ { LEFT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, ZERO }
+ },
+ { "Plait",
+ { LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, ZERO }
+ },
+ { "Platform",
+ { RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO }
+ },
+ { "PodRacer",
+ { ZERO, PIN, ZERO, PIN, RIGHT, PIN, ZERO, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, ZERO, PIN, LEFT, ZERO }
+ },
+#if 0
+ { "Pokemon",
+ { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO }
+ },
+#endif
+ { "Prawn",
+ { RIGHT, PIN, ZERO, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, PIN, ZERO, PIN, LEFT, ZERO }
+ },
+ { "Propeller",
+ { ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, ZERO }
+ },
+ { "Pyramid",
+ { ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, LEFT, ZERO }
+ },
+ { "QuarterbackTiltedAndReadyToHut",
+ { PIN, ZERO, RIGHT, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, LEFT, ZERO, PIN, ZERO }
+ },
+ { "Ra",
+ { PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "Rattlesnake",
+ { LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, RIGHT, ZERO, PIN, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, ZERO }
+ },
+ { "Revelation",
+ { ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, ZERO }
+ },
+ { "Revolution1",
+ { LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, ZERO }
+ },
+ { "Ribbon",
+ { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "Rocket",
+ { RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, ZERO }
+ },
+ { "Roofed",
+ { ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO }
+ },
+ { "Roofs",
+ { PIN, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, PIN, ZERO }
+ },
+ { "RowHouses",
+ { RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO }
+ },
+ { "Sculpture",
+ { RIGHT, LEFT, PIN, ZERO, ZERO, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO }
+ },
+ { "Seal",
+ { LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO }
+ },
+ { "Seal2",
+ { RIGHT, PIN, ZERO, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, ZERO }
+ },
+ { "Sheep",
+ { RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT, ZERO }
+ },
+ { "Shelter",
+ { LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO }
+ },
+ { "Ship",
+ { PIN, RIGHT, LEFT, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, LEFT, ZERO, PIN, PIN, ZERO }
+ },
+ { "Shpongle",
+ { LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, ZERO }
+ },
+ { "Slide",
+ { LEFT, RIGHT, LEFT, RIGHT, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, RIGHT, LEFT, ZERO }
+ },
+ { "SmallShip",
+ { ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, LEFT, ZERO }
+ },
+ { "SnakeReadyToStrike",
+ { LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, LEFT, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO }
+ },
+ { "Snakes14",
+ { RIGHT, RIGHT, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO }
+ },
+ { "Snakes15",
+ { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, PIN, RIGHT, ZERO }
+ },
+ { "Snakes18",
+ { PIN, PIN, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO }
+ },
+ { "Snowflake",
+ { LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, ZERO }
+ },
+ { "Snowman",
+ { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO }
+ },
+ { "Source",
+ { PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, ZERO }
+ },
+ { "Spaceship",
+ { PIN, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, PIN, ZERO }
+ },
+ { "Spaceship2",
+ { PIN, PIN, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, LEFT, LEFT, PIN, PIN, ZERO }
+ },
+ { "Speedboat",
+ { LEFT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, ZERO }
+ },
+ { "Speedboat2",
+ { PIN, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, ZERO, RIGHT, PIN, LEFT, ZERO }
+ },
+ { "Spider",
+ { RIGHT, RIGHT, ZERO, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, RIGHT, LEFT, RIGHT, ZERO, ZERO, LEFT, ZERO }
+ },
+ { "Spitzbergen",
+ { PIN, LEFT, ZERO, RIGHT, RIGHT, LEFT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, LEFT, LEFT, ZERO, ZERO }
+ },
+ { "Square",
+ { ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, ZERO }
+ },
+ { "SquareHole",
+ { PIN, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO }
+ },
+ { "Stage",
+ { RIGHT, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, ZERO }
+ },
+ { "Stairs",
+ { ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, ZERO }
+ },
+ { "Stairs2",
+ { ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
+ },
+ { "Straight",
+ { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO }
+ },
+ { "Swan",
+ { ZERO, PIN, ZERO, PIN, LEFT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, ZERO }
+ },
+ { "Swan2",
+ { PIN, ZERO, PIN, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO }
+ },
+ { "Swan3",
+ { PIN, PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO }
+ },
+ { "Symbol",
+ { RIGHT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, RIGHT, ZERO }
+ },
+ { "Symmetry",
+ { RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, LEFT, ZERO }
+ },
+ { "Symmetry2",
+ { ZERO, PIN, LEFT, LEFT, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, PIN, LEFT, ZERO }
+ },
+ { "TableFireworks",
+ { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, RIGHT, PIN, ZERO }
+ },
+ { "Tapering",
+ { ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO, ZERO }
+ },
+ { "TaperingTurned",
+ { ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO, ZERO }
+ },
+ { "TeaLightStick",
+ { RIGHT, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, ZERO }
+ },
+ { "thighmaster",
+ { RIGHT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO }
+ },
+ { "Terraces",
+ { RIGHT, LEFT, ZERO, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO }
+ },
+ { "Terrier",
+ { PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO }
+ },
+ { "Three-Legged",
+ { RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, PIN, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, ZERO }
+ },
+ { "ThreePeaks",
+ { RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, ZERO }
+ },
+ { "ToTheFront",
+ { ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, LEFT, LEFT, PIN, ZERO, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, ZERO }
+ },
+ { "Top",
+ { PIN, LEFT, LEFT, PIN, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO }
+ },
+ { "Transport",
+ { PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO }
+ },
+ { "Triangle",
+ { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO }
+ },
+ { "Tripple",
+ { PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, ZERO }
+ },
+#if 0
+ { "Turtle",
+ { RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO }
+ },
+#endif
+ { "Twins",
+ { ZERO, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO, ZERO }
+ },
+ { "TwoSlants",
+ { ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, ZERO }
+ },
+ { "TwoWings",
+ { PIN, LEFT, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, ZERO }
+ },
+ { "UFO",
+ { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
+ },
+ { "USS Enterprise",
+ { LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO }
+ },
+ { "UpAndDown",
+ { ZERO, PIN, ZERO, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, ZERO }
+ },
+ { "Upright",
+ { ZERO, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, ZERO }
+ },
+ { "Upside-down",
+ { PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO }
+ },
+ { "Valley",
+ { ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO }
+ },
+ { "Viaduct",
+ { PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO, PIN, RIGHT, ZERO, RIGHT, RIGHT, ZERO, RIGHT, PIN, ZERO, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, ZERO }
+ },
+ { "View",
+ { ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, ZERO }
+ },
+ { "Waterfall",
+ { LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO }
+ },
+ { "windwheel",
+ { PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO }
+ },
+ { "Window",
+ { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO }
+ },
+ { "WindowToTheWorld",
+ { PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
+ },
+ { "Windshield",
+ { PIN, PIN, ZERO, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, PIN, ZERO }
+ },
+ { "WingNut",
+ { ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO }
+ },
+ { "Wings2",
+ { RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO }
+ },
+ { "WithoutName",
+ { PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, ZERO }
+ },
+ { "Wolf",
+ { ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO }
+ },
+ { "X",
+ { LEFT, ZERO, ZERO, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, ZERO, ZERO, ZERO }
+ },
+};
+
+static size_t models = sizeof(model) / sizeof(struct model_s);
+
+#define VOFFSET 0.045
+
+#define X_MASK 1
+#define Y_MASK 2
+#define Z_MASK 4
+
+/* the connecting string that holds the snake together */
+#define MAGICAL_RED_STRING 0
+
+#define GETSCALAR(vec,mask) ((vec)==(mask) ? 1 : ((vec)==-(mask) ? -1 : 0 ))
+
+#ifndef MAX
+# define MAX(x, y) ((x) > (y) ? (x) : (y))
+#endif
+#ifndef MIN
+# define MIN(x, y) ((x) < (y) ? (x) : (y))
+#endif
+
+#define RAND(n) ((random() & 0x7fffffff) % ((long) (n)))
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+/* the triangular prism what makes up the basic unit */
+static const float solid_prism_v[][3] = {
+ /* first corner, bottom left front */
+ { VOFFSET, VOFFSET, 1.0 },
+ { VOFFSET, 0.00, 1.0 - VOFFSET },
+ { 0.00, VOFFSET, 1.0 - VOFFSET },
+ /* second corner, rear */
+ { VOFFSET, VOFFSET, 0.00 },
+ { VOFFSET, 0.00, VOFFSET },
+ { 0.00, VOFFSET, VOFFSET },
+ /* third, right front */
+ { 1.0 - VOFFSET / M_SQRT1_2, VOFFSET, 1.0 },
+ { 1.0 - VOFFSET / M_SQRT1_2, 0.0, 1.0 - VOFFSET },
+ { 1.0 - VOFFSET * M_SQRT1_2, VOFFSET, 1.0 - VOFFSET },
+ /* fourth, right rear */
+ { 1.0 - VOFFSET / M_SQRT1_2, VOFFSET, 0.0 },
+ { 1.0 - VOFFSET / M_SQRT1_2, 0.0, VOFFSET },
+ { 1.0 - VOFFSET * M_SQRT1_2, VOFFSET, VOFFSET },
+ /* fifth, upper front */
+ { VOFFSET, 1.0 - VOFFSET / M_SQRT1_2, 1.0 },
+ { VOFFSET / M_SQRT1_2, 1.0 - VOFFSET * M_SQRT1_2, 1.0 - VOFFSET },
+ { 0.0, 1.0 - VOFFSET / M_SQRT1_2, 1.0 - VOFFSET},
+ /* sixth, upper rear */
+ { VOFFSET, 1.0 - VOFFSET / M_SQRT1_2, 0.0 },
+ { VOFFSET / M_SQRT1_2, 1.0 - VOFFSET * M_SQRT1_2, VOFFSET },
+ { 0.0, 1.0 - VOFFSET / M_SQRT1_2, VOFFSET }};
+
+static const float solid_prism_n[][3] = {/* corners */
+ { -VOFFSET, -VOFFSET, VOFFSET },
+ { VOFFSET, -VOFFSET, VOFFSET },
+ { -VOFFSET, VOFFSET, VOFFSET },
+ { -VOFFSET, -VOFFSET, -VOFFSET },
+ { VOFFSET, -VOFFSET, -VOFFSET },
+ { -VOFFSET, VOFFSET, -VOFFSET },
+ /* edges */
+ { -VOFFSET, 0.0, VOFFSET },
+ { 0.0, -VOFFSET, VOFFSET },
+ { VOFFSET, VOFFSET, VOFFSET },
+ { -VOFFSET, 0.0, -VOFFSET },
+ { 0.0, -VOFFSET, -VOFFSET },
+ { VOFFSET, VOFFSET, -VOFFSET },
+ { -VOFFSET, -VOFFSET, 0.0 },
+ { VOFFSET, -VOFFSET, 0.0 },
+ { -VOFFSET, VOFFSET, 0.0 },
+ /* faces */
+ { 0.0, 0.0, 1.0 },
+ { 0.0, -1.0, 0.0 },
+ { M_SQRT1_2, M_SQRT1_2, 0.0 },
+ { -1.0, 0.0, 0.0 },
+ { 0.0, 0.0, -1.0 }};
+
+static const float wire_prism_v[][3] = {{ 0.0, 0.0, 1.0 },
+ { 1.0, 0.0, 1.0 },
+ { 0.0, 1.0, 1.0 },
+ { 0.0, 0.0, 0.0 },
+ { 1.0, 0.0, 0.0 },
+ { 0.0, 1.0, 0.0 }};
+
+/*
+static const float wire_prism_n[][3] = {{ 0.0, 0.0, 1.0},
+ { 0.0,-1.0, 0.0},
+ { M_SQRT1_2, M_SQRT1_2, 0.0},
+ {-1.0, 0.0, 0.0},
+ { 0.0, 0.0,-1.0}};
+*/
+
+static struct glsnake_cfg * glc = NULL;
+#ifdef HAVE_GLUT
+# define bp glc
+#endif
+
+typedef float (*morphFunc)(long);
+
+#ifdef HAVE_GLUT
+/* forward definitions for GLUT functions */
+static void calc_rotation();
+static inline void ui_mousedrag();
+#endif
+
+static const GLfloat white_light[] = { 1.0, 1.0, 1.0, 1.0 };
+static const GLfloat lmodel_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
+static const GLfloat mat_specular[] = { 0.1, 0.1, 0.1, 1.0 };
+static const GLfloat mat_shininess[] = { 20.0 };
+
+static void gl_init(
+#ifndef HAVE_GLUT
+ ModeInfo * mi
+#endif
+ )
+{
+ float light_pos[][3] = {{0.0, 10.0, 20.0}, {0.0, 20.0, -1.0}};
+ float light_dir[][3] = {{0.0, -10.0,-20.0}, {0.0,-20.0, 1.0}};
+
+ glEnable(GL_DEPTH_TEST);
+ glShadeModel(GL_SMOOTH);
+ glCullFace(GL_BACK);
+ /*glEnable(GL_CULL_FACE);*/
+ glEnable(GL_NORMALIZE);
+ if (transparent) {
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ }
+
+ if (!wireframe) {
+ /*glColor4f(1.0, 1.0, 1.0, 1.0);*/
+ glLightfv(GL_LIGHT0, GL_POSITION, light_pos[0]);
+ glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, light_dir[0]);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, white_light);
+ /*glLightfv(GL_LIGHT0, GL_SPECULAR, white_light);*/
+#if 1
+ glLightfv(GL_LIGHT1, GL_POSITION, light_pos[1]);
+ glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, light_dir[1]);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, white_light);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, white_light);
+#endif
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
+ glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ /*glEnable(GL_COLOR_MATERIAL);*/
+ }
+}
+
+static void gettime(snaketime *t)
+{
+#ifdef HAVE_GETTIMEOFDAY
+#ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(t, &tzp);
+#else /* !GETTIMEOFDAY_TWO_ARGS */
+ gettimeofday(t);
+#endif /* !GETTIMEOFDAY_TWO_ARGS */
+#else /* !HAVE_GETTIMEOFDAY */
+#ifdef HAVE_FTIME
+ ftime(t);
+#endif /* HAVE_FTIME */
+#endif /* !HAVE_GETTIMEOFDAY */
+}
+
+
+ENTRYPOINT void glsnake_reshape(
+#ifndef HAVE_GLUT
+ ModeInfo * mi,
+#endif
+ int w, int h);
+
+static void start_morph(struct glsnake_cfg *,
+ unsigned int model_index, int immediate);
+
+/* wot initialises it */
+ENTRYPOINT void glsnake_init(
+#ifndef HAVE_GLUT
+ModeInfo * mi
+#endif
+)
+{
+#ifndef HAVE_GLUT
+ struct glsnake_cfg * bp;
+
+ /* set up the conf struct and glx contexts */
+ MI_INIT(mi, glc);
+ bp = &glc[MI_SCREEN(mi)];
+
+ if ((bp->glx_context = init_GL(mi)) != NULL) {
+ gl_init(mi);
+ glsnake_reshape(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+#else
+ gl_init();
+#endif
+
+ /* initialise conf struct */
+ memset(&bp->node, 0, sizeof(float) * NODE_COUNT);
+
+ bp->selected = 11;
+ bp->is_cyclic = 0;
+ bp->is_legal = 1;
+ bp->last_turn = -1;
+ bp->morphing = 0;
+ bp->paused = 0;
+ bp->new_morph = 0;
+
+ gettime(&bp->last_iteration);
+ memcpy(&bp->last_morph, &bp->last_iteration, sizeof(bp->last_morph));
+
+ bp->prev_colour = bp->next_colour = COLOUR_ACYCLIC;
+ bp->next_model = RAND(models);
+ bp->prev_model = START_MODEL;
+ start_morph(bp, bp->prev_model, 1);
+
+ /* set up a font for the labels */
+#ifndef HAVE_GLUT
+ if (titles)
+ bp->font_data = load_texture_font (mi->dpy, "labelfont");
+#endif
+
+ /* build a solid display list */
+ bp->node_solid = glGenLists(1);
+ glNewList(bp->node_solid, GL_COMPILE);
+ /* corners */
+ glBegin(GL_TRIANGLES);
+ glNormal3fv(solid_prism_n[0]);
+ glVertex3fv(solid_prism_v[0]);
+ glVertex3fv(solid_prism_v[2]);
+ glVertex3fv(solid_prism_v[1]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[1]);
+ glVertex3fv(solid_prism_v[6]);
+ glVertex3fv(solid_prism_v[7]);
+ glVertex3fv(solid_prism_v[8]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[2]);
+ glVertex3fv(solid_prism_v[12]);
+ glVertex3fv(solid_prism_v[13]);
+ glVertex3fv(solid_prism_v[14]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[3]);
+ glVertex3fv(solid_prism_v[3]);
+ glVertex3fv(solid_prism_v[4]);
+ glVertex3fv(solid_prism_v[5]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[4]);
+ glVertex3fv(solid_prism_v[9]);
+ glVertex3fv(solid_prism_v[11]);
+ glVertex3fv(solid_prism_v[10]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[5]);
+ glVertex3fv(solid_prism_v[16]);
+ glVertex3fv(solid_prism_v[15]);
+ glVertex3fv(solid_prism_v[17]);
+ bp->node_polys++;
+ glEnd();
+
+ /* edges */
+ glBegin(GL_QUADS);
+ glNormal3fv(solid_prism_n[6]);
+ glVertex3fv(solid_prism_v[0]);
+ glVertex3fv(solid_prism_v[12]);
+ glVertex3fv(solid_prism_v[14]);
+ glVertex3fv(solid_prism_v[2]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[7]);
+ glVertex3fv(solid_prism_v[0]);
+ glVertex3fv(solid_prism_v[1]);
+ glVertex3fv(solid_prism_v[7]);
+ glVertex3fv(solid_prism_v[6]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[8]);
+ glVertex3fv(solid_prism_v[6]);
+ glVertex3fv(solid_prism_v[8]);
+ glVertex3fv(solid_prism_v[13]);
+ glVertex3fv(solid_prism_v[12]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[9]);
+ glVertex3fv(solid_prism_v[3]);
+ glVertex3fv(solid_prism_v[5]);
+ glVertex3fv(solid_prism_v[17]);
+ glVertex3fv(solid_prism_v[15]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[10]);
+ glVertex3fv(solid_prism_v[3]);
+ glVertex3fv(solid_prism_v[9]);
+ glVertex3fv(solid_prism_v[10]);
+ glVertex3fv(solid_prism_v[4]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[11]);
+ glVertex3fv(solid_prism_v[15]);
+ glVertex3fv(solid_prism_v[16]);
+ glVertex3fv(solid_prism_v[11]);
+ glVertex3fv(solid_prism_v[9]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[12]);
+ glVertex3fv(solid_prism_v[1]);
+ glVertex3fv(solid_prism_v[2]);
+ glVertex3fv(solid_prism_v[5]);
+ glVertex3fv(solid_prism_v[4]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[13]);
+ glVertex3fv(solid_prism_v[8]);
+ glVertex3fv(solid_prism_v[7]);
+ glVertex3fv(solid_prism_v[10]);
+ glVertex3fv(solid_prism_v[11]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[14]);
+ glVertex3fv(solid_prism_v[13]);
+ glVertex3fv(solid_prism_v[16]);
+ glVertex3fv(solid_prism_v[17]);
+ glVertex3fv(solid_prism_v[14]);
+ bp->node_polys++;
+ glEnd();
+
+ /* faces */
+ glBegin(GL_TRIANGLES);
+ glNormal3fv(solid_prism_n[15]);
+ glVertex3fv(solid_prism_v[0]);
+ glVertex3fv(solid_prism_v[6]);
+ glVertex3fv(solid_prism_v[12]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[19]);
+ glVertex3fv(solid_prism_v[3]);
+ glVertex3fv(solid_prism_v[15]);
+ glVertex3fv(solid_prism_v[9]);
+ bp->node_polys++;
+ glEnd();
+
+ glBegin(GL_QUADS);
+ glNormal3fv(solid_prism_n[16]);
+ glVertex3fv(solid_prism_v[1]);
+ glVertex3fv(solid_prism_v[4]);
+ glVertex3fv(solid_prism_v[10]);
+ glVertex3fv(solid_prism_v[7]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[17]);
+ glVertex3fv(solid_prism_v[8]);
+ glVertex3fv(solid_prism_v[11]);
+ glVertex3fv(solid_prism_v[16]);
+ glVertex3fv(solid_prism_v[13]);
+ bp->node_polys++;
+
+ glNormal3fv(solid_prism_n[18]);
+ glVertex3fv(solid_prism_v[2]);
+ glVertex3fv(solid_prism_v[14]);
+ glVertex3fv(solid_prism_v[17]);
+ glVertex3fv(solid_prism_v[5]);
+ bp->node_polys++;
+ glEnd();
+ glEndList();
+
+ /* build wire display list */
+ bp->node_wire = glGenLists(1);
+ glNewList(bp->node_wire, GL_COMPILE);
+ glBegin(GL_LINE_STRIP);
+ glVertex3fv(wire_prism_v[0]);
+ glVertex3fv(wire_prism_v[1]);
+ bp->node_polys++;
+ glVertex3fv(wire_prism_v[2]);
+ glVertex3fv(wire_prism_v[0]);
+ bp->node_polys++;
+ glVertex3fv(wire_prism_v[3]);
+ glVertex3fv(wire_prism_v[4]);
+ bp->node_polys++;
+ glVertex3fv(wire_prism_v[5]);
+ glVertex3fv(wire_prism_v[3]);
+ bp->node_polys++;
+ glEnd();
+ glBegin(GL_LINES);
+ glVertex3fv(wire_prism_v[1]);
+ glVertex3fv(wire_prism_v[4]);
+ bp->node_polys++;
+ glVertex3fv(wire_prism_v[2]);
+ glVertex3fv(wire_prism_v[5]);
+ bp->node_polys++;
+ glEnd();
+ glEndList();
+
+#ifdef HAVE_GLUT
+ /* initialise the rotation */
+ calc_rotation();
+#endif
+}
+
+static void draw_title(
+#ifndef HAVE_GLUT
+ ModeInfo * mi
+#endif
+ )
+{
+#ifndef HAVE_GLUT
+ struct glsnake_cfg * bp = &glc[MI_SCREEN(mi)];
+#endif
+
+ /* draw some text */
+
+/* glPushAttrib((GLbitfield) GL_TRANSFORM_BIT | GL_ENABLE_BIT);*/
+ glDisable(GL_LIGHTING);
+ glDisable(GL_DEPTH_TEST);
+ if (transparent) {
+ glDisable(GL_BLEND);
+ }
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+#ifdef HAVE_GLUT
+ glOrtho((GLdouble) 0., (GLdouble) bp->width, (GLdouble) 0., (GLdouble) bp->height, -1, 1);
+#else
+ glOrtho((GLdouble) 0., (GLdouble) mi->xgwa.width, (GLdouble) 0., (GLdouble) mi->xgwa.height, -1, 1);
+#endif
+
+ glColor4f(1.0, 1.0, 1.0, 1.0);
+ {
+ char interactstr[] = "interactive";
+ const char * s;
+#ifdef HAVE_GLUT
+ int w;
+#endif
+
+ if (interactive)
+ s = interactstr;
+ else
+ s = model[bp->next_model].name;
+
+#ifdef HAVE_GLUT
+ {
+ unsigned int i = 0;
+
+ w = glutBitmapLength(GLUT_BITMAP_HELVETICA_12, (const unsigned char *) s);
+ glRasterPos2f((GLfloat) (bp->width - w - 3), 4.0);
+ while (s[i] != '\0')
+ glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, s[i++]);
+ }
+#else
+ print_texture_label (mi->dpy, bp->font_data,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, s);
+#endif
+ }
+ glPopMatrix();
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+
+/* glPopAttrib();*/
+}
+
+/* apply the matrix to the origin and stick it in vec */
+static void matmult_origin(float rotmat[16], float vec[4])
+{
+#if 1
+ vec[0] = 0.5 * rotmat[0] + 0.5 * rotmat[4] + 0.5 * rotmat [8] + 1 * rotmat[12];
+ vec[1] = 0.5 * rotmat[1] + 0.5 * rotmat[5] + 0.5 * rotmat [9] + 1 * rotmat[13];
+ vec[2] = 0.5 * rotmat[2] + 0.5 * rotmat[6] + 0.5 * rotmat[10] + 1 * rotmat[14];
+ vec[3] = 0.5 * rotmat[3] + 0.5 * rotmat[7] + 0.5 * rotmat[11] + 1 * rotmat[15];
+#else
+ vec[0] = 0 * rotmat [0] + 0 * rotmat [1] + 0 * rotmat [2] + 1 * rotmat [3];
+ vec[1] = 0 * rotmat [4] + 0 * rotmat [5] + 0 * rotmat [6] + 1 * rotmat [7];
+ vec[2] = 0 * rotmat [8] + 0 * rotmat [9] + 0 * rotmat[10] + 1 * rotmat[11];
+ vec[3] = 0 * rotmat[12] + 0 * rotmat[13] + 0 * rotmat[14] + 1 * rotmat[15];
+#endif
+ vec[0] /= vec[3];
+ vec[1] /= vec[3];
+ vec[2] /= vec[3];
+ vec[3] = 1.0;
+}
+
+/* wot gets called when the winder is resized */
+ENTRYPOINT void glsnake_reshape(
+#ifndef HAVE_GLUT
+ ModeInfo * mi,
+#endif
+ int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ /* jwz: 0.05 was too close (left black rectangles) */
+ gluPerspective(zoom, 1/h, 1.0, 100.0);
+ gluLookAt(0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
+ glMatrixMode(GL_MODELVIEW);
+ /*gluLookAt(0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);*/
+ glLoadIdentity();
+#ifdef HAVE_GLUT
+ bp->width = width;
+ bp->height = height;
+#endif
+}
+
+/* Returns the new dst_dir for the given src_dir and dst_dir */
+static int cross_product(int src_dir, int dst_dir)
+{
+ return X_MASK*(GETSCALAR(src_dir,Y_MASK) * GETSCALAR(dst_dir,Z_MASK) -
+ GETSCALAR(src_dir,Z_MASK) * GETSCALAR(dst_dir,Y_MASK))+
+ Y_MASK*(GETSCALAR(src_dir,Z_MASK) * GETSCALAR(dst_dir,X_MASK) -
+ GETSCALAR(src_dir,X_MASK) * GETSCALAR(dst_dir,Z_MASK))+
+ Z_MASK*(GETSCALAR(src_dir,X_MASK) * GETSCALAR(dst_dir,Y_MASK) -
+ GETSCALAR(src_dir,Y_MASK) * GETSCALAR(dst_dir,X_MASK));
+}
+
+/* calculate orthogonal snake metrics
+ * is_legal = true if model does not pass through itself
+ * is_cyclic = true if last node connects back to first node
+ * last_turn = for cyclic snakes, specifes what the 24th turn would be
+ */
+static void calc_snake_metrics(struct glsnake_cfg *bp)
+{
+ int srcDir, dstDir;
+ int i, x, y, z;
+ int prevSrcDir = -Y_MASK;
+ int prevDstDir = Z_MASK;
+ int grid[25][25][25];
+
+ /* zero the grid */
+ memset(&grid, 0, sizeof(int) * 25*25*25);
+
+ bp->is_legal = 1;
+ x = y = z = 12;
+
+ /* trace path of snake - and keep record for is_legal */
+ for (i = 0; i < NODE_COUNT - 1; i++) {
+ /*int ang_card;*/ /* cardinal direction of node angle */
+ /* establish new state vars */
+ srcDir = -prevDstDir;
+ x += GETSCALAR(prevDstDir, X_MASK);
+ y += GETSCALAR(prevDstDir, Y_MASK);
+ z += GETSCALAR(prevDstDir, Z_MASK);
+
+ switch ((int) model[bp->next_model].node[i]) {
+ case (int) (ZERO):
+ dstDir = -prevSrcDir;
+ break;
+ case (int) (PIN):
+ dstDir = prevSrcDir;
+ break;
+ case (int) (RIGHT):
+ case (int) (LEFT):
+ dstDir = cross_product(prevSrcDir, prevDstDir);
+ if (model[bp->next_model].node[i] == (int) (RIGHT))
+ dstDir = -dstDir;
+ break;
+ default:
+ /* Prevent spurious "might be used
+ * uninitialised" warnings when compiling
+ * with -O2 */
+ dstDir = 0;
+ break;
+ }
+
+ if (grid[x][y][z] == 0)
+ grid[x][y][z] = srcDir + dstDir;
+ else if (grid[x][y][z] + srcDir + dstDir == 0)
+ grid[x][y][z] = 8;
+ else
+ bp->is_legal = 0;
+
+ prevSrcDir = srcDir;
+ prevDstDir = dstDir;
+ }
+
+ /* determine if the snake is cyclic */
+ bp->is_cyclic = (dstDir == Y_MASK && x == 12 && y == 11 && z == 12);
+
+ /* determine last_turn */
+ bp->last_turn = -1;
+ if (bp->is_cyclic)
+ switch (srcDir) {
+ case -Z_MASK: bp->last_turn = ZERO; break;
+ case Z_MASK: bp->last_turn = PIN; break;
+ case X_MASK: bp->last_turn = LEFT; break;
+ case -X_MASK: bp->last_turn = RIGHT; break;
+ }
+}
+
+/* work out how far through the current morph we are */
+static float morph_percent(struct glsnake_cfg *bp)
+{
+ float retval;
+ int i;
+
+ /* extend this function later with a case statement for each of the
+ * morph schemes */
+
+ /* when morphing all nodes at once, the longest morph will be the node
+ * that needs to rotate 180 degrees. For each node, work out how far it
+ * has to go, and store the maximum rotation and current largest angular
+ * difference, returning the angular difference over the maximum. */
+ {
+ float rot_max = 0.0, ang_diff_max = 0.0;
+
+ for (i = 0; i < NODE_COUNT - 1; i++) {
+ float rot, ang_diff;
+
+ /* work out the maximum rotation this node has to go through
+ * from the previous to the next model, taking into account that
+ * the snake always morphs through the smaller angle */
+ rot = fabs(model[bp->prev_model].node[i] -
+ model[bp->next_model].node[i]);
+ if (rot > 180.0) rot = 180.0 - rot;
+ /* work out the difference between the current position and the
+ * target */
+ ang_diff = fabs(bp->node[i] -
+ model[bp->next_model].node[i]);
+ if (ang_diff > 180.0) ang_diff = 180.0 - ang_diff;
+ /* if it's the biggest so far, record it */
+ if (rot > rot_max) rot_max = rot;
+ if (ang_diff > ang_diff_max) ang_diff_max = ang_diff;
+ }
+
+ /* ang_diff / rot approaches 0, we want the complement */
+ retval = 1.0 - (ang_diff_max / rot_max);
+ /* protect against naan */
+
+/* Apparently some systems (Solaris) don't have isinf() */
+#undef isinf
+#define isinf(x) (((x) > 999999999999.9) || ((x) < -999999999999.9))
+
+ if (isnan(retval) || isinf(retval)) retval = 1.0;
+ }
+ /*printf("morph_pct = %f\n", retval);*/
+ return retval;
+}
+
+static void morph_colour(struct glsnake_cfg *bp)
+{
+ float percent, compct; /* complement of percentage */
+
+ percent = morph_percent(bp);
+ compct = 1.0 - percent;
+
+ bp->colour[0][0] = colour[bp->prev_colour][0][0] * compct + colour[bp->next_colour][0][0] * percent;
+ bp->colour[0][1] = colour[bp->prev_colour][0][1] * compct + colour[bp->next_colour][0][1] * percent;
+ bp->colour[0][2] = colour[bp->prev_colour][0][2] * compct + colour[bp->next_colour][0][2] * percent;
+ bp->colour[0][3] = colour[bp->prev_colour][0][3] * compct + colour[bp->next_colour][0][3] * percent;
+
+ bp->colour[1][0] = colour[bp->prev_colour][1][0] * compct + colour[bp->next_colour][1][0] * percent;
+ bp->colour[1][1] = colour[bp->prev_colour][1][1] * compct + colour[bp->next_colour][1][1] * percent;
+ bp->colour[1][2] = colour[bp->prev_colour][1][2] * compct + colour[bp->next_colour][1][2] * percent;
+ bp->colour[1][3] = colour[bp->prev_colour][1][3] * compct + colour[bp->next_colour][1][3] * percent;
+}
+
+/* Start morph process to this model */
+static void start_morph(struct glsnake_cfg *bp,
+ unsigned int model_index, int immediate)
+{
+ /* if immediate, don't bother morphing, go straight to the next model */
+ if (immediate) {
+ int i;
+
+ for (i = 0; i < NODE_COUNT; i++)
+ bp->node[i] = model[model_index].node[i];
+ }
+
+ bp->prev_model = bp->next_model;
+ bp->next_model = model_index;
+ bp->prev_colour = bp->next_colour;
+
+ calc_snake_metrics(bp);
+ if (!bp->is_legal)
+ bp->next_colour = COLOUR_INVALID;
+ else if (altcolour)
+ bp->next_colour = COLOUR_AUTHENTIC;
+ else if (bp->is_cyclic)
+ bp->next_colour = COLOUR_CYCLIC;
+ else
+ bp->next_colour = COLOUR_ACYCLIC;
+
+ if (immediate) {
+ bp->colour[0][0] = colour[bp->next_colour][0][0];
+ bp->colour[0][1] = colour[bp->next_colour][0][1];
+ bp->colour[0][2] = colour[bp->next_colour][0][2];
+ bp->colour[0][3] = colour[bp->next_colour][0][3];
+ bp->colour[1][0] = colour[bp->next_colour][1][0];
+ bp->colour[1][1] = colour[bp->next_colour][1][1];
+ bp->colour[1][2] = colour[bp->next_colour][1][2];
+ bp->colour[1][3] = colour[bp->next_colour][1][3];
+ }
+ bp->morphing = 1;
+
+ morph_colour(bp);
+}
+
+#if 0
+/* Returns morph progress */
+static float morph(long iter_msec)
+{
+ /* work out the maximum angle for this iteration */
+ int still_morphing;
+ float iter_angle_max, largest_diff, largest_progress;
+ int i;
+
+ if (bp->new_morph)
+ bp->new_morph = 0;
+
+ iter_angle_max = 90.0 * (angvel/1000.0) * iter_msec;
+
+ still_morphing = 0;
+ largest_diff = largest_progress = 0.0;
+ for (i = 0; i < NODE_COUNT; i++) {
+ float curAngle = bp->node[i];
+ float destAngle = model[bp->next_model].node[i];
+ if (curAngle != destAngle) {
+ still_morphing = 1;
+ if (fabs(curAngle-destAngle) <= iter_angle_max)
+ bp->node[i] = destAngle;
+ else if (fmod(curAngle-destAngle+360,360) > 180)
+ bp->node[i] = fmod(curAngle + iter_angle_max, 360);
+ else
+ bp->node[i] = fmod(curAngle+360 - iter_angle_max, 360);
+ largest_diff = MAX(largest_diff, fabs(destAngle-bp->node[i]));
+ largest_progress = MAX(largest_diff, fabs(bp->node[i] - model[bp->prev_model].node[i]));
+ }
+ }
+
+ return MIN(largest_diff / largest_progress, 1.0);
+}
+#endif
+
+
+#ifdef HAVE_GLUT
+static void glsnake_idle();
+
+static restore_idle(int v __attribute__((__unused__)))
+{
+ glutIdleFunc(glsnake_idle);
+}
+#endif
+
+static void quick_sleep(void)
+{
+#ifdef HAVE_GLUT
+ /* By using glutTimerFunc we can keep responding to
+ * mouse and keyboard events, unlike using something like
+ * usleep. */
+ glutIdleFunc(NULL);
+ glutTimerFunc(1, restore_idle, 0);
+#else
+ usleep(1);
+#endif
+}
+
+static void glsnake_idle(
+#ifndef HAVE_GLUT
+ struct glsnake_cfg * bp
+#endif
+ )
+{
+ /* time since last iteration */
+ long iter_msec;
+ /* time since the beginning of last morph */
+ long morf_msec;
+ float iter_angle_max;
+ snaketime current_time;
+ /* morphFunc transition; */
+ int still_morphing;
+ int i;
+
+ /* Do nothing to the model if we are paused */
+ if (bp->paused) {
+ /* Avoid busy waiting when nothing is changing */
+ quick_sleep();
+#ifdef HAVE_GLUT
+ glutSwapBuffers();
+ glutPostRedisplay();
+#endif
+ return;
+ }
+
+ /* <spiv> Well, ftime gives time with millisecond resolution.
+ * <spiv> (or worse, perhaps... who knows what the OS will do)
+ * <spiv> So if no discernable amount of time has passed:
+ * <spiv> a) There's no point updating the screen, because
+ * it would be the same
+ * <spiv> b) The code will divide by zero
+ */
+ gettime(&current_time);
+
+ iter_msec = (long) GETMSECS(current_time) - GETMSECS(bp->last_iteration) +
+ ((long) GETSECS(current_time) - GETSECS(bp->last_iteration)) * 1000L;
+
+ if (iter_msec) {
+ /* save the current time */
+ memcpy(&bp->last_iteration, &current_time, sizeof(snaketime));
+
+ /* work out if we have to switch models */
+ morf_msec = GETMSECS(bp->last_iteration) - GETMSECS(bp->last_morph) +
+ ((long) (GETSECS(bp->last_iteration)-GETSECS(bp->last_morph)) * 1000L);
+
+ if ((morf_msec > statictime) && !interactive && !bp->morphing) {
+ /*printf("starting morph\n");*/
+ memcpy(&bp->last_morph, &(bp->last_iteration), sizeof(bp->last_morph));
+ start_morph(bp, RAND(models), 0);
+ }
+
+ if (interactive && !bp->morphing) {
+ quick_sleep();
+ return;
+ }
+
+ /* if (!bp->dragging && !bp->interactive) { */
+ if (!interactive) {
+
+ yspin += 360/((1000/yangvel)/iter_msec);
+ zspin += 360/((1000/zangvel)/iter_msec);
+ /*
+ yspin += 360 * (yangvel/1000.0) * iter_msec;
+ zspin += 360 * (zangvel/1000.0) * iter_msec;
+ */
+
+ /*printf("yspin: %f, zspin: %f\n", yspin, zspin);*/
+
+ }
+
+ /* work out the maximum angle we could turn this node in this
+ * timeslice, iter_msec milliseconds long */
+ iter_angle_max = 90.0 * (angvel/1000.0) * iter_msec;
+
+ still_morphing = 0;
+ for (i = 0; i < NODE_COUNT; i++) {
+ float cur_angle = bp->node[i];
+ float dest_angle = model[bp->next_model].node[i];
+ if (cur_angle != dest_angle) {
+ still_morphing = 1;
+ if (fabs(cur_angle - dest_angle) <= iter_angle_max)
+ bp->node[i] = dest_angle;
+ else if (fmod(cur_angle - dest_angle + 360, 360) > 180)
+ bp->node[i] = fmod(cur_angle + iter_angle_max, 360);
+ else
+ bp->node[i] = fmod(cur_angle + 360 - iter_angle_max, 360);
+ }
+ }
+
+ if (!still_morphing)
+ bp->morphing = 0;
+
+ /* colour cycling */
+ morph_colour(bp);
+
+#ifdef HAVE_GLUT
+ glutSwapBuffers();
+ glutPostRedisplay();
+#endif
+ } else {
+ /* We are going too fast, so we may as well let the
+ * cpu relax a little by sleeping for a millisecond. */
+ quick_sleep();
+ }
+}
+
+/* wot draws it */
+ENTRYPOINT void glsnake_display(
+#ifndef HAVE_GLUT
+ ModeInfo * mi
+#endif
+ )
+{
+#ifndef HAVE_GLUT
+ struct glsnake_cfg * bp = &glc[MI_SCREEN(mi)];
+ Display * dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+#endif
+
+ int i;
+ float ang;
+ float positions[NODE_COUNT][4]; /* origin points for each node */
+ float com[4]; /* it's the CENTRE of MASS */
+
+#ifndef HAVE_GLUT
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+#endif
+
+ gl_init(mi);
+
+ /* clear the buffer */
+ glClear((GLbitfield) GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* go into the modelview stack */
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ /* get the centre of each node, by moving through the snake and
+ * performing the rotations, then grabbing the matrix at each point
+ * and applying it to the origin */
+ glPushMatrix();
+
+#ifdef HAVE_GLUT
+ /* apply the mouse drag rotation */
+ ui_mousedrag();
+#endif
+
+ /* apply the continuous rotation */
+ glRotatef(yspin, 0.0, 1.0, 0.0);
+ glRotatef(zspin, 0.0, 0.0, 1.0);
+
+ com[0] = 0.0;
+ com[1] = 0.0;
+ com[2] = 0.0;
+ com[3] = 0.0;
+ for (i = 0; i < NODE_COUNT; i++) {
+ float rotmat[16];
+
+ ang = bp->node[i];
+
+ /*printf("ang = %f\n", ang);*/
+
+ glTranslatef(0.5, 0.5, 0.5); /* move to center */
+ glRotatef(90.0, 0.0, 0.0, -1.0); /* reorient */
+ glTranslatef(1.0 + explode, 0.0, 0.0); /* move to new pos. */
+ glRotatef(180.0 + ang, 1.0, 0.0, 0.0); /* pivot to new angle */
+ glTranslatef(-0.5, -0.5, -0.5); /* return from center */
+
+ glGetFloatv(GL_MODELVIEW_MATRIX, rotmat);
+
+ matmult_origin(rotmat, positions[i]);
+
+ /*printf("positions %f %f %f %f\n", positions[i][0], positions[i][1], positions[i][2], positions[i][3]);*/
+
+ com[0] += positions[i][0];
+ com[1] += positions[i][1];
+ com[2] += positions[i][2];
+ com[3] += positions[i][3];
+ }
+ glPopMatrix();
+ com[0] /= NODE_COUNT;
+ com[1] /= NODE_COUNT;
+ com[2] /= NODE_COUNT;
+ com[3] /= NODE_COUNT;
+
+ com[0] /= com[3];
+ com[1] /= com[3];
+ com[2] /= com[3];
+
+ /*printf("com: %f, %f, %f, %f\n", com[0], com[1], com[2], com[3]);*/
+
+#if MAGICAL_RED_STRING
+ glPushMatrix();
+ glTranslatef(-com[0], -com[1], -com[2]);
+
+ glDisable(GL_LIGHTING);
+ glColor4f(1.0, 0.0, 0.0, 1.0);
+ glBegin(GL_LINE_STRIP);
+ for (i = 0; i < NODE_COUNT - 1; i++) {
+ glVertex3fv(positions[i]);
+ }
+ glEnd();
+ glEnable(GL_LIGHTING);
+ /*glTranslatef(com[0], com[1], com[2]);*/
+ glPopMatrix();
+#endif
+
+ glPushMatrix();
+ glTranslatef(-com[0], -com[1], -com[2]);
+
+#ifdef HAVE_GLUT
+ /* apply the mouse drag rotation */
+ ui_mousedrag();
+#endif
+
+ /* apply the continuous rotation */
+ glRotatef(yspin, 0.0, 1.0, 0.0);
+ glRotatef(zspin, 0.0, 0.0, 1.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ /* now draw each node along the snake -- this is quite ugly :p */
+ mi->polygon_count = 0;
+ for (i = 0; i < NODE_COUNT; i++) {
+ /* choose a colour for this node */
+ if ((i == bp->selected || i == bp->selected+1) && interactive)
+ /* yellow */
+ glColor4f(1.0, 1.0, 0.0, 1.0);
+ else {
+ /*glColor4fv(bp->colour[(i+1)%2]);*/
+ glMaterialfv(GL_FRONT, GL_AMBIENT, bp->colour[(i+1)%2]);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, bp->colour[(i+1)%2]);
+ /*glMaterialfv(GL_FRONT, GL_SPECULAR, bp->colour[(i+1)%2]);*/
+ }
+
+ /* draw the node */
+ if (wireframe)
+ glCallList(bp->node_wire);
+ else
+ glCallList(bp->node_solid);
+ mi->polygon_count += bp->node_polys;
+
+ /* now work out where to draw the next one */
+
+ /* Interpolate between models */
+ ang = bp->node[i];
+
+ glTranslatef(0.5, 0.5, 0.5); /* move to center */
+ glRotatef(90.0, 0.0, 0.0, -1.0); /* reorient */
+ glTranslatef(1.0 + explode, 0.0, 0.0); /* move to new pos. */
+ glRotatef(180.0 + ang, 1.0, 0.0, 0.0); /* pivot to new angle */
+ glTranslatef(-0.5, -0.5, -0.5); /* return from center */
+ }
+
+ glPopMatrix();
+
+ if (titles)
+#ifdef HAVE_GLUT
+ draw_title();
+#else
+ draw_title(mi);
+#endif
+
+#ifndef HAVE_GLUT
+ glsnake_idle(bp);
+ if (mi->fps_p) do_fps(mi);
+#endif
+
+ glFlush();
+#ifdef HAVE_GLUT
+ glutSwapBuffers();
+#else
+ glXSwapBuffers(dpy, window);
+#endif
+}
+
+#ifdef HAVE_GLUT
+/* anything that needs to be cleaned up goes here */
+static void unmain()
+{
+ glutDestroyWindow(bp->window);
+ free(bp);
+}
+
+static void ui_init(int *, char **);
+
+int main(int argc, char ** argv)
+{
+ bp = malloc(sizeof(struct glsnake_cfg));
+ memset(bp, 0, sizeof(struct glsnake_cfg));
+
+ bp->width = 640;
+ bp->height = 480;
+
+ ui_init(&argc, argv);
+
+ gettime(&bp->last_iteration);
+ memcpy(&bp->last_morph, &bp->last_iteration, sizeof(snaketime));
+ srand((unsigned int)GETSECS(bp->last_iteration));
+
+ bp->prev_colour = bp->next_colour = COLOUR_ACYCLIC;
+ bp->next_model = RAND(models);
+ bp->prev_model = 0;
+ start_morph(bp->prev_model, 1);
+
+ glsnake_init();
+
+ atexit(unmain);
+ glutSwapBuffers();
+ glutMainLoop();
+
+ return 0;
+}
+#endif
+
+/*
+ * GLUT FUNCTIONS
+ */
+
+#ifdef HAVE_GLUT
+
+/* trackball quaternions */
+static float cumquat[4] = {0.0,0.0,0.0,0.0}, oldquat[4] = {0.0,0.0,0.0,0.1};
+
+/* rotation matrix */
+static float rotation[16];
+
+/* mouse drag vectors: start and end */
+static float mouse_start[3], mouse_end[3];
+
+/* dragging boolean */
+static int dragging = 0;
+
+/* this function calculates the rotation matrix based on the quaternions
+ * generated from the mouse drag vectors */
+static void calc_rotation()
+{
+ double Nq, s;
+ double xs, ys, zs, wx, wy, wz, xx, xy, xz, yy, yz, zz;
+
+ /* this bit ripped from Shoemake's quaternion notes from SIGGRAPH */
+ Nq = cumquat[0] * cumquat[0] + cumquat[1] * cumquat[1] +
+ cumquat[2] * cumquat[2] + cumquat[3] * cumquat[3];
+ s = (Nq > 0.0) ? (2.0 / Nq) : 0.0;
+ xs = cumquat[0] * s; ys = cumquat[1] * s; zs = cumquat[2] * s;
+ wx = cumquat[3] * xs; wy = cumquat[3] * ys; wz = cumquat[3] * zs;
+ xx = cumquat[0] * xs; xy = cumquat[0] * ys; xz = cumquat[0] * zs;
+ yy = cumquat[1] * ys; yz = cumquat[1] * zs; zz = cumquat[2] * zs;
+
+ rotation[0] = 1.0 - (yy + zz);
+ rotation[1] = xy + wz;
+ rotation[2] = xz - wy;
+ rotation[4] = xy - wz;
+ rotation[5] = 1.0 - (xx + zz);
+ rotation[6] = yz + wx;
+ rotation[8] = xz + wy;
+ rotation[9] = yz - wx;
+ rotation[10] = 1.0 - (xx + yy);
+ rotation[3] = rotation[7] = rotation[11] = 0.0;
+ rotation[12] = rotation[13] = rotation[14] = 0.0;
+ rotation[15] = 1.0;
+}
+
+static inline void ui_mousedrag()
+{
+ glMultMatrixf(rotation);
+}
+
+static void ui_keyboard(unsigned char c, int x__attribute__((__unused__)), int y __attribute__((__unused__)))
+{
+ int i;
+
+ switch (c) {
+ case 27: /* ESC */
+ case 'q':
+ exit(0);
+ break;
+ case 'e':
+ explode += DEF_EXPLODE;
+ glutPostRedisplay();
+ break;
+ case 'E':
+ explode -= DEF_EXPLODE;
+ if (explode < 0.0) explode = 0.0;
+ glutPostRedisplay();
+ break;
+ case '.':
+ /* next model */
+ bp->next_model++;
+ bp->next_model %= models;
+ start_morph(bp->next_model, 0);
+
+ /* Reset last_morph time */
+ gettime(&bp->last_morph);
+ break;
+ case ',':
+ /* previous model */
+ bp->next_model = (bp->next_model + (int)models - 1) % (int)models;
+ start_morph(bp->next_model, 0);
+
+ /* Reset bp->last_morph time */
+ gettime(&bp->last_morph);
+ break;
+ case '+':
+ angvel += DEF_ANGVEL;
+ break;
+ case '-':
+ if (angvel > DEF_ANGVEL)
+ angvel -= DEF_ANGVEL;
+ break;
+ case 'i':
+ if (interactive) {
+ /* Reset last_iteration and last_morph time */
+ gettime(&bp->last_iteration);
+ gettime(&bp->last_morph);
+ }
+ interactive = 1 - interactive;
+ glutPostRedisplay();
+ break;
+ case 'w':
+ wireframe = 1 - wireframe;
+ if (wireframe)
+ glDisable(GL_LIGHTING);
+ else
+ glEnable(GL_LIGHTING);
+ glutPostRedisplay();
+ break;
+ case 'a':
+ transparent = 1 - transparent;
+ if (transparent) {
+ glEnable(GL_BLEND);
+ } else {
+ glDisable(GL_BLEND);
+ }
+ break;
+ case 'p':
+ if (bp->paused) {
+ /* unpausing, reset last_iteration and last_morph time */
+ gettime(&bp->last_iteration);
+ gettime(&bp->last_morph);
+ }
+ bp->paused = 1 - bp->paused;
+ break;
+ case 'd':
+ /* dump the current model so we can add it! */
+ printf("# %s\nnoname:\t", model[bp->next_model].name);
+ {
+ int i;
+
+ for (i = 0; i < NODE_COUNT; i++) {
+ if (bp->node[i] == ZERO)
+ printf("Z");
+ else if (bp->node[i] == LEFT)
+ printf("L");
+ else if (bp->node[i] == PIN)
+ printf("P");
+ else if (bp->node[i] == RIGHT)
+ printf("R");
+ /*
+ else
+ printf("%f", node[i].curAngle);
+ */
+ if (i < NODE_COUNT - 1)
+ printf(" ");
+ }
+ }
+ printf("\n");
+ break;
+ case 'f':
+ bp->fullscreen = 1 - bp->fullscreen;
+ if (bp->fullscreen) {
+ bp->old_width = bp->width;
+ bp->old_height = bp->height;
+ glutFullScreen();
+ } else {
+ glutReshapeWindow(bp->old_width, bp->old_height);
+ glutPositionWindow(50,50);
+ }
+ break;
+ case 't':
+ titles = 1 - titles;
+ if (interactive || bp->paused)
+ glutPostRedisplay();
+ break;
+ case 'c':
+ altcolour = 1 - altcolour;
+ break;
+ case 'z':
+ zoom += 1.0;
+ glsnake_reshape(bp->width, bp->height);
+ break;
+ case 'Z':
+ zoom -= 1.0;
+ glsnake_reshape(bp->width, bp->height);
+ break;
+ default:
+ break;
+ }
+}
+
+static void ui_special(int key, int x__attribute__((__unused__)), int y __attribute__((__unused__)))
+{
+ float *destAngle = &(model[bp->next_model].node[bp->selected]);
+ int unknown_key = 0;
+
+ if (interactive) {
+ switch (key) {
+ case GLUT_KEY_UP:
+ bp->selected = (bp->selected + (NODE_COUNT - 2)) % (NODE_COUNT - 1);
+ break;
+ case GLUT_KEY_DOWN:
+ bp->selected = (bp->selected + 1) % (NODE_COUNT - 1);
+ break;
+ case GLUT_KEY_LEFT:
+ *destAngle = fmod(*destAngle+(LEFT), 360);
+ bp->morphing = bp->new_morph = 1;
+ break;
+ case GLUT_KEY_RIGHT:
+ *destAngle = fmod(*destAngle+(RIGHT), 360);
+ bp->morphing = bp->new_morph = 1;
+ break;
+ case GLUT_KEY_HOME:
+ start_morph(STRAIGHT_MODEL, 0);
+ break;
+ default:
+ unknown_key = 1;
+ break;
+ }
+ }
+ calc_snake_metrics();
+
+ if (!unknown_key)
+ glutPostRedisplay();
+}
+
+static void ui_mouse(int button, int state, int x, int y)
+{
+ if (button==0) {
+ switch (state) {
+ case GLUT_DOWN:
+ dragging = 1;
+ mouse_start[0] = M_SQRT1_2 *
+ (x - (bp->width / 2.0)) / (bp->width / 2.0);
+ mouse_start[1] = M_SQRT1_2 *
+ ((bp->height / 2.0) - y) / (bp->height / 2.0);
+ mouse_start[2] = sqrt((double)(1-(mouse_start[0]*mouse_start[0]+mouse_start[1]*mouse_start[1])));
+ break;
+ case GLUT_UP:
+ dragging = 0;
+ oldquat[0] = cumquat[0];
+ oldquat[1] = cumquat[1];
+ oldquat[2] = cumquat[2];
+ oldquat[3] = cumquat[3];
+ break;
+ default:
+ break;
+ }
+ }
+ glutPostRedisplay();
+}
+
+static void ui_motion(int x, int y)
+{
+ double norm;
+ float q[4];
+
+ if (dragging) {
+ /* construct the motion end vector from the x,y position on the
+ * window */
+ mouse_end[0] = M_SQRT1_2 * (x - (bp->width/ 2.0)) / (bp->width / 2.0);
+ mouse_end[1] = M_SQRT1_2 * ((bp->height / 2.0) - y) / (bp->height / 2.0);
+ /* calculate the normal of the vector... */
+ norm = mouse_end[0] * mouse_end[0] + mouse_end[1] * mouse_end[1];
+ /* check if norm is outside the sphere and wraparound if necessary */
+ if (norm > 1.0) {
+ mouse_end[0] = -mouse_end[0];
+ mouse_end[1] = -mouse_end[1];
+ mouse_end[2] = sqrt(norm - 1);
+ } else {
+ /* the z value comes from projecting onto an elliptical spheroid */
+ mouse_end[2] = sqrt(1 - norm);
+ }
+
+ /* now here, build a quaternion from mouse_start and mouse_end */
+ q[0] = mouse_start[1] * mouse_end[2] - mouse_start[2] * mouse_end[1];
+ q[1] = mouse_start[2] * mouse_end[0] - mouse_start[0] * mouse_end[2];
+ q[2] = mouse_start[0] * mouse_end[1] - mouse_start[1] * mouse_end[0];
+ q[3] = mouse_start[0] * mouse_end[0] + mouse_start[1] * mouse_end[1] + mouse_start[2] * mouse_end[2];
+
+ /* new rotation is the product of the new one and the old one */
+ cumquat[0] = q[3] * oldquat[0] + q[0] * oldquat[3] +
+ q[1] * oldquat[2] - q[2] * oldquat[1];
+ cumquat[1] = q[3] * oldquat[1] + q[1] * oldquat[3] +
+ q[2] * oldquat[0] - q[0] * oldquat[2];
+ cumquat[2] = q[3] * oldquat[2] + q[2] * oldquat[3] +
+ q[0] * oldquat[1] - q[1] * oldquat[0];
+ cumquat[3] = q[3] * oldquat[3] - q[0] * oldquat[0] -
+ q[1] * oldquat[1] - q[2] * oldquat[2];
+
+ calc_rotation();
+ }
+ glutPostRedisplay();
+}
+
+static void ui_init(int * argc, char ** argv)
+{
+ glutInit(argc, argv);
+ glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
+ glutInitWindowSize(bp->width, bp->height);
+ bp->window = glutCreateWindow("glsnake");
+
+ glutDisplayFunc(glsnake_display);
+ glutReshapeFunc(glsnake_reshape);
+ glutIdleFunc(glsnake_idle);
+ glutKeyboardFunc(ui_keyboard);
+ glutSpecialFunc(ui_special);
+ glutMouseFunc(ui_mouse);
+ glutMotionFunc(ui_motion);
+
+ yangvel = DEF_YANGVEL;
+ zangvel = DEF_ZANGVEL;
+ explode = DEF_EXPLODE;
+ angvel = DEF_ANGVEL;
+ statictime = DEF_STATICTIME;
+ altcolour = DEF_ALTCOLOUR;
+ titles = DEF_TITLES;
+ interactive = DEF_INTERACTIVE;
+ zoom = DEF_ZOOM;
+ wireframe = DEF_WIREFRAME;
+ transparent = DEF_TRANSPARENT;
+}
+#endif /* HAVE_GLUT */
+
+XSCREENSAVER_MODULE ("GLSnake", glsnake)
diff --git a/hacks/glx/glsnake.man b/hacks/glx/glsnake.man
new file mode 100644
index 0000000..217be2f
--- /dev/null
+++ b/hacks/glx/glsnake.man
@@ -0,0 +1,98 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH XScreenSaver 1 "January 15, 2001" "X Version 11"
+.SH NAME
+glsnake \- OpenGL enhanced Rubik's Snake cyclewaster.
+.SH SYNOPSIS
+.B glsnake
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
+[\-wireframe] [\-altcolour]
+[\-angvel \fIangular\fP]
+[\-explode \fIdistance\fP]
+[\-statictime \fImilliseconds\fP]
+[\-yangvel \fIangle\fP]
+[\-zangvel \fIangle\fP]
+.SH DESCRIPTION
+.PP
+.B glsnake
+is an imitation of Rubiks\' Snake, using OpenGL.
+.SH OPTIONS
+.I glsnake
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-wireframe
+Display the snake in wireframe mode, rather than the default solid mode.
+.TP 8
+.B \-altcolour
+Use the alternate colour scheme for the snake. Shape identification using
+colour will be disabled.
+.TP 8
+.B -angvel \fIangular\fP
+Change the speed at which the snake morphs to a new shape.
+.TP 8
+.B -explode \fIdistance\fP
+Change the distance between the nodes of a snake.
+.TP 8
+.B \-statictime \fImilliseconds\fP
+Change the time between morphs.
+.TP 8
+.B \-yangvel \fIangle\fP
+Change the angle of rotation around the Y axis per frame.
+.TP 8
+.B \-zangvel \fIangle\fP
+Change the angle of rotation around the Z axis per frame.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH FILES
+.TP
+\fB/usr/share/glsnake/*.glsnake\fP
+This XScreenSaver will attempt to read model files installed with the interactive \fBglsnake\fP.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR glsnake (MANSUFFIX)
+.PP
+.EX
+http://spacepants.org/src/glsnake/
+.EE
+.SH BUGS
+The snake will happily intersect itself while morphing (this is not a bug).
+.PP
+The rotation/camera position sucks.
+.SH COPYRIGHT
+Copyright \(co 2001,2002 by Jamie Wilkinson, Andrew Bennetts, and Peter Aylett.
+.PP
+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.
+.PP
+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.
+.SH AUTHOR
+Jamie Wilkinson <jaq@spacepants.org>, Andrew Bennetts <andrew@puzzling.org>,
+and Peter Aylett <peter@ylett.com>. Ported to XScreenSaver by Jamie Wilkinson.
diff --git a/hacks/glx/gltext.c b/hacks/glx/gltext.c
new file mode 100644
index 0000000..276c448
--- /dev/null
+++ b/hacks/glx/gltext.c
@@ -0,0 +1,660 @@
+/* gltext, Copyright (c) 2001-2017 Jamie Zawinski <jwz@jwz.orgq2
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*usePty: False \n" \
+
+# define release_text 0
+#define SMOOTH_TUBE /* whether to have smooth or faceted tubes */
+
+#ifdef SMOOTH_TUBE
+# define TUBE_FACES 12 /* how densely to render tubes */
+#else
+# define TUBE_FACES 8
+#endif
+
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "tube.h"
+#include "sphere.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "textclient.h"
+#include "utf8wc.h"
+
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_TEXT "(default)"
+#define DEF_PROGRAM "(default)"
+#define DEF_SCALE_FACTOR "0.01"
+#define DEF_WANDER_SPEED "0.02"
+#define DEF_MAX_LINES "8"
+#define DEF_SPIN "XYZ"
+#define DEF_WANDER "True"
+#define DEF_FACE_FRONT "True"
+#define DEF_USE_MONOSPACE "False"
+
+#ifdef HAVE_UNAME
+# include <sys/utsname.h>
+#endif /* HAVE_UNAME */
+
+#include "glutstroke.h"
+#include "glut_roman.h"
+#include "glut_mroman.h"
+#define GLUT_VARI_FONT (&glutStrokeRoman)
+#define GLUT_MONO_FONT (&glutStrokeMonoRoman)
+#define GLUT_FONT ((use_monospace) ? GLUT_MONO_FONT : GLUT_VARI_FONT)
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot, *rot2;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool spinx, spiny, spinz;
+
+ GLuint text_list;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor;
+
+ char *text;
+ int reload;
+
+ time_t last_update;
+ text_data *tc;
+
+} text_configuration;
+
+static text_configuration *tps = NULL;
+
+static char *text_fmt;
+static char *program_str;
+static float scale_factor;
+static int max_no_lines;
+static float wander_speed;
+static char *do_spin;
+static Bool do_wander;
+static Bool face_front_p;
+static Bool use_monospace;
+
+static XrmOptionDescRec opts[] = {
+ { "-text", ".text", XrmoptionSepArg, 0 },
+ { "-program", ".program", XrmoptionSepArg, 0 },
+ { "-scale", ".scaleFactor", XrmoptionSepArg, 0 },
+ { "-maxlines", ".maxLines", XrmoptionSepArg, 0 },
+ { "-wander-speed", ".wanderSpeed", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-front", ".faceFront", XrmoptionNoArg, "True" },
+ { "+front", ".faceFront", XrmoptionNoArg, "False" },
+ { "-mono", ".useMonoSpace", XrmoptionNoArg, "True" },
+ { "+mono", ".useMonoSpace", XrmoptionNoArg, "False" }
+};
+
+static argtype vars[] = {
+ {&text_fmt, "text", "Text", DEF_TEXT, t_String},
+ {&program_str, "program", "Program", DEF_PROGRAM, t_String},
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&scale_factor, "scaleFactor", "ScaleFactor", DEF_SCALE_FACTOR, t_Float},
+ {&max_no_lines, "maxLines", "MaxLines", DEF_MAX_LINES, t_Int},
+ {&wander_speed, "wanderSpeed", "WanderSpeed", DEF_WANDER_SPEED, t_Float},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&face_front_p, "faceFront", "FaceFront", DEF_FACE_FRONT, t_Bool},
+ {&use_monospace, "useMonoSpace", "UseMonoSpace", DEF_USE_MONOSPACE, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt text_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_text (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+gl_init (ModeInfo *mi)
+{
+ text_configuration *tp = &tps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+
+ static const GLfloat pos[4] = {5.0, 5.0, 10.0, 1.0};
+
+ if (!wire)
+ {
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ }
+
+ tp->text_list = glGenLists (1);
+ glNewList (tp->text_list, GL_COMPILE);
+ glEndList ();
+}
+
+
+static void
+parse_text (ModeInfo *mi)
+{
+ text_configuration *tp = &tps[MI_SCREEN(mi)];
+ char *old = tp->text;
+
+ if (program_str && *program_str && !!strcmp(program_str, "(default)"))
+ {
+ int max_lines = max_no_lines;
+ char buf[4096];
+ char *p = buf;
+ int lines = 0;
+
+ if (! tp->tc)
+ tp->tc = textclient_open (mi->dpy);
+
+ while (p < buf + sizeof(buf) - 1 &&
+ lines < max_lines)
+ {
+ int c = textclient_getc (tp->tc);
+ if (c == '\n')
+ lines++;
+ if (c > 0)
+ *p++ = (char) c;
+ else
+ break;
+ }
+ *p = 0;
+ if (lines == 0 && buf[0])
+ lines++;
+
+ tp->text = strdup (buf);
+
+ tp->reload = 7; /* Let this one linger for a few seconds */
+ if (!*tp->text)
+ tp->reload = 1;
+
+ }
+ else if (!text_fmt || !*text_fmt || !strcmp(text_fmt, "(default)"))
+ {
+# ifdef HAVE_UNAME
+ struct utsname uts;
+
+ if (uname (&uts) < 0)
+ {
+ tp->text = strdup("uname() failed");
+ }
+ else
+ {
+ char *s;
+ if ((s = strchr(uts.nodename, '.')))
+ *s = 0;
+ tp->text = (char *) malloc(strlen(uts.nodename) +
+ strlen(uts.sysname) +
+ strlen(uts.version) +
+ strlen(uts.release) + 10);
+# if defined(_AIX)
+ sprintf(tp->text, "%s\n%s %s.%s",
+ uts.nodename, uts.sysname, uts.version, uts.release);
+# elif defined(USE_IPHONE)
+ /* "My iPhone\n iPhone4,1\n Darwin 11.0.0" */
+ sprintf(tp->text, "%s\n%s\n%s %s",
+ uts.nodename, uts.machine, uts.sysname, uts.release);
+# elif defined(__APPLE__) /* MacOS X + XDarwin */
+ {
+ const char *file =
+ "/System/Library/CoreServices/SystemVersion.plist";
+ FILE *f = fopen (file, "r");
+ char *pbv = 0, *pn = 0, *puvv = 0;
+ if (f) {
+ char *s, buf[255];
+
+ while (fgets (buf, sizeof(buf)-1, f)) {
+# define GRAB(S,V) \
+ if (strstr(buf, S)) { \
+ fgets (buf, sizeof(buf)-1, f); \
+ if ((s = strchr (buf, '>'))) V = strdup(s+1); \
+ if ((s = strchr (V, '<'))) *s = 0; \
+ }
+ GRAB ("ProductName", pn)
+ GRAB ("ProductBuildVersion", pbv)
+ GRAB ("ProductUserVisibleVersion", puvv)
+# undef GRAB
+ }
+ }
+ if (pbv)
+ sprintf (tp->text, "%s\n%s\n%s\n%s",
+ uts.nodename, pn, puvv, uts.machine);
+ else
+ sprintf(tp->text, "%s\n%s %s\n%s",
+ uts.nodename, uts.sysname, uts.release, uts.machine);
+ }
+# else
+ sprintf(tp->text, "%s\n%s %s",
+ uts.nodename, uts.sysname, uts.release);
+# endif /* special system types */
+ }
+# else /* !HAVE_UNAME */
+# ifdef VMS
+ tp->text = strdup(getenv("SYS$NODE"));
+# else
+ tp->text = strdup("* *\n* * *\nxscreensaver\n* * *\n* *");
+# endif
+# endif /* !HAVE_UNAME */
+ }
+ else if (!strchr (text_fmt, '%'))
+ {
+ tp->text = strdup (text_fmt);
+ }
+ else
+ {
+ time_t now = time ((time_t *) 0);
+ struct tm *tm = localtime (&now);
+ int L = strlen(text_fmt) + 100;
+ tp->text = (char *) malloc (L);
+ *tp->text = 0;
+ strftime (tp->text, L-1, text_fmt, tm);
+ if (!*tp->text)
+ sprintf (tp->text, "strftime error:\n%s", text_fmt);
+ tp->reload = 1;
+ }
+
+ {
+ /* The GLUT font only has ASCII characters. */
+ char *s1 = utf8_to_latin1 (tp->text, True);
+ free (tp->text);
+ tp->text = s1;
+ }
+
+ /* If we had text before but got no text this time, hold on to the
+ old one, to avoid flickering.
+ */
+ if (old && *old && !*tp->text)
+ {
+ free (tp->text);
+ tp->text = old;
+ }
+ else if (old)
+ free (old);
+}
+
+
+ENTRYPOINT Bool
+text_handle_event (ModeInfo *mi, XEvent *event)
+{
+ text_configuration *tp = &tps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, tp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &tp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_text (ModeInfo *mi)
+{
+ text_configuration *tp;
+ int i;
+
+ MI_INIT (mi, tps);
+
+ tp = &tps[MI_SCREEN(mi)];
+
+ if ((tp->glx_context = init_GL(mi)) != NULL) {
+ gl_init(mi);
+ reshape_text (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ {
+ double spin_speed = 0.5;
+ double wander_speed = 0.02;
+ double tilt_speed = 0.03;
+ double spin_accel = 0.5;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') tp->spinx = True;
+ else if (*s == 'y' || *s == 'Y') tp->spiny = True;
+ else if (*s == 'z' || *s == 'Z') tp->spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ tp->rot = make_rotator (tp->spinx ? spin_speed : 0,
+ tp->spiny ? spin_speed : 0,
+ tp->spinz ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ tp->rot2 = (face_front_p
+ ? make_rotator (0, 0, 0, 0, tilt_speed, True)
+ : 0);
+ tp->trackball = gltrackball_init (False);
+ }
+
+ tp->ncolors = 255;
+ tp->colors = (XColor *) calloc(tp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ tp->colors, &tp->ncolors,
+ False, 0, False);
+
+ /* brighter colors, please... */
+ for (i = 0; i < tp->ncolors; i++)
+ {
+ tp->colors[i].red = (tp->colors[i].red / 2) + 32767;
+ tp->colors[i].green = (tp->colors[i].green / 2) + 32767;
+ tp->colors[i].blue = (tp->colors[i].blue / 2) + 32767;
+ }
+
+ parse_text (mi);
+
+}
+
+
+static int
+fill_character (GLUTstrokeFont font, int c, Bool wire, int *polysP)
+{
+ GLfloat tube_width = 10;
+
+ const StrokeCharRec *ch;
+ const StrokeRec *stroke;
+ const CoordRec *coord;
+ StrokeFontPtr fontinfo;
+ int i, j;
+
+ fontinfo = (StrokeFontPtr) font;
+
+ if (c < 0 || c >= fontinfo->num_chars)
+ return 0;
+ ch = &(fontinfo->ch[c]);
+ if (ch)
+ {
+ GLfloat lx=0, ly=0;
+ for (i = ch->num_strokes, stroke = ch->stroke;
+ i > 0; i--, stroke++) {
+ for (j = stroke->num_coords, coord = stroke->coord;
+ j > 0; j--, coord++)
+ {
+# ifdef SMOOTH_TUBE
+ int smooth = True;
+# else
+ int smooth = False;
+# endif
+
+ if (j != stroke->num_coords)
+ *polysP += tube (lx, ly, 0,
+ coord->x, coord->y, 0,
+ tube_width,
+ tube_width * 0.15,
+ TUBE_FACES, smooth, False, wire);
+ lx = coord->x;
+ ly = coord->y;
+
+ /* Put a sphere at the endpoint of every line segment. Wasteful
+ on curves like "0" but necessary on corners like "4". */
+ if (! wire)
+ {
+ glPushMatrix();
+ glTranslatef (lx, ly, 0);
+ glScalef (tube_width, tube_width, tube_width);
+ *polysP += unit_sphere (TUBE_FACES, TUBE_FACES, wire);
+ glPopMatrix();
+ }
+ }
+ }
+ return (int) (ch->right + tube_width);
+ }
+ return 0;
+}
+
+
+static int
+text_extents (const char *string, int *wP, int *hP)
+{
+ const char *s, *start;
+ int line_height = GLUT_FONT->top - GLUT_FONT->bottom;
+ int lines = 0;
+ *wP = 0;
+ *hP = 0;
+ start = string;
+ s = start;
+ while (1)
+ if (*s == '\n' || *s == 0)
+ {
+ int w = 0;
+ while (start < s)
+ {
+ w += glutStrokeWidth(GLUT_FONT, *start);
+ start++;
+ }
+ start = s+1;
+
+ if (w > *wP) *wP = w;
+ *hP += line_height;
+ lines++;
+ if (*s == 0) break;
+ s++;
+ }
+ else
+ s++;
+
+ return lines;
+}
+
+
+static unsigned long
+fill_string (const char *string, Bool wire)
+{
+ int polys = 0;
+ const char *s, *start;
+ int line_height = GLUT_FONT->top - GLUT_FONT->bottom;
+ int off;
+ GLfloat x = 0, y = 0;
+
+ int ow, oh;
+ text_extents (string, &ow, &oh);
+
+ y = oh / 2 - line_height;
+
+ start = string;
+ s = start;
+ while (1)
+ if (*s == '\n' || *s == 0)
+ {
+ int line_w = 0;
+ const char *s2;
+ const char *lstart = start;
+ const char *lend = s;
+
+ /* strip off whitespace at beginning and end of line
+ (since we're centering.) */
+ while (lend > lstart && isspace(lend[-1]))
+ lend--;
+ while (lstart < lend && isspace(*lstart))
+ lstart++;
+
+ for (s2 = lstart; s2 < lend; s2++)
+ line_w += glutStrokeWidth (GLUT_FONT, *s2);
+
+ x = (-ow/2) + ((ow-line_w)/2);
+ for (s2 = lstart; s2 < lend; s2++)
+ {
+ glPushMatrix();
+ glTranslatef(x, y, 0);
+ off = fill_character (GLUT_FONT, *s2, wire, &polys);
+ x += off;
+ glPopMatrix();
+ }
+
+ start = s+1;
+
+ y -= line_height;
+ if (*s == 0) break;
+ s++;
+ }
+ else
+ s++;
+ return polys;
+}
+
+
+ENTRYPOINT void
+draw_text (ModeInfo *mi)
+{
+ text_configuration *tp = &tps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+
+ GLfloat white[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat color[4] = {0.0, 0.0, 0.0, 1.0};
+
+ if (!tp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tp->glx_context));
+
+ if (tp->reload)
+ {
+ if (time ((time_t *) 0) >= tp->last_update + tp->reload)
+ {
+ parse_text (mi);
+ tp->last_update = time ((time_t *) 0);
+ }
+ }
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glScalef(1.1, 1.1, 1.1);
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ {
+ double x, y, z;
+ get_position (tp->rot, &x, &y, &z, !tp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 8);
+
+ gltrackball_rotate (tp->trackball);
+
+ if (face_front_p)
+ {
+ double max = 90;
+ get_position (tp->rot2, &x, &y, &z, !tp->button_down_p);
+ if (tp->spinx) glRotatef (max/2 - x*max, 1, 0, 0);
+ if (tp->spiny) glRotatef (max/2 - y*max, 0, 1, 0);
+ if (tp->spinz) glRotatef (max/2 - z*max, 0, 0, 1);
+ }
+ else
+ {
+ get_rotation (tp->rot, &x, &y, &z, !tp->button_down_p);
+ glRotatef (x * 360, 1, 0, 0);
+ glRotatef (y * 360, 0, 1, 0);
+ glRotatef (z * 360, 0, 0, 1);
+ }
+ }
+
+
+ glColor4fv (white);
+
+ color[0] = tp->colors[tp->ccolor].red / 65536.0;
+ color[1] = tp->colors[tp->ccolor].green / 65536.0;
+ color[2] = tp->colors[tp->ccolor].blue / 65536.0;
+ tp->ccolor++;
+ if (tp->ccolor >= tp->ncolors) tp->ccolor = 0;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+
+ glScalef(scale_factor, scale_factor, scale_factor);
+
+ mi->polygon_count = fill_string(tp->text, wire);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT void
+free_text(ModeInfo * mi)
+{
+ text_configuration *tp = &tps[MI_SCREEN(mi)];
+ if (tp->tc)
+ textclient_close (tp->tc);
+}
+
+
+XSCREENSAVER_MODULE_2 ("GLText", gltext, text)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/gltext.man b/hacks/glx/gltext.man
new file mode 100644
index 0000000..0d30c5f
--- /dev/null
+++ b/hacks/glx/gltext.man
@@ -0,0 +1,152 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "25-Jul-98" "X Version 11"
+.SH NAME
+gltext - draws text spinning around in 3D
+.SH SYNOPSIS
+.B gltext
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-text \fIstring\fP]
+[\-program \fIcommand\fP]
+[\-wander] [\-no-wander]
+[\-spin \fIaxes\fP]
+[\-no-spin]
+[\-front] [\-no\-front]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIgltext\fP program draws some text spinning around in 3D, using
+a font that appears to be made of solid tubes.
+.SH OPTIONS
+.I gltext
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-text \fIstring\fP
+The text to display. This may contain newlines, but it shouldn't be
+very long. The default is to display the machine name and OS version.
+
+This may also be a format string acceptable to
+.BR date (1)
+and
+.BR strftime (3) ,
+in which case, it will be updated once a second. So to make this
+program display a spinning digital clock, you could do this:
+.EX
+gltext -text "%A%n%d %b %Y%n%l:%M:%S %p"
+.EE
+To include a literal `%', you must double it: `%%'.
+
+See the man page for
+.BR strftime (3)
+for more details.
+.TP 8
+.B \-program \fIcommand\fP
+The given program is run, and its output is displayed.
+If specified, this overrides \fI\-text\fP.
+The output of this program will be repeatedely displayed, with new
+pages of text shifting in every few seconds. Lines should be relatively
+short. You might try:
+.EX
+-program 'xscreensaver-text --cols 20'
+.EE
+.TP 8
+.B \-maxlines
+Set the number of lines of text to display. By default,
+.I gltext
+will print 8 lines of text at a time. Use this option to increase or
+decrease that number. Be aware that
+.I gltext
+is designed to work with a fairly small amount of text, so setting this
+value too high might result in slow performance or strange behaviour
+stemming from buffer overflows. Increase at your own risk.
+.TP 8
+.B \-mono
+Display the text in a monospace font. Default is a variable-width font.
+.TP 8
+.B \-no\-mono
+Display the text in a variable-width font. This is the default.
+.TP 8
+.B \-wander
+Move the text around the screen. This is the default.
+.TP 8
+.B \-no\-wander
+Keep the text centered on the screen.
+.TP 8
+.B \-wander\-speed
+Sets the speed at which the text wanders around. Default is 0.02.
+.TP 8
+.B \-spin
+Which axes around which the text should spin. The default is "XYZ",
+meaning rotate it freely in space. "\fB\-spin Z\fP" would rotate the
+text in the plane of the screen while not rotating it into or out
+of the screen; etc.
+.TP 8
+.B \-no\-spin
+Don't spin the text at all: the same as \fB\-spin ""\fP.
+.TP 8
+.B \-front
+When spinning, never spin all the way around or upside down:
+always face mostly forward so that the text is easily readable.
+.TP 8
+.B \-no\-front
+Allow spins to go all the way around or upside down. This is the default.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-scale
+Sets the scale at which the text is rendered. Bigger values will result
+in bigger text; smaller values will result in smaller text. The default
+value is 0.01.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver-text (1)
+.SH COPYRIGHT
+Copyright \(co 2001-2014 by Jamie Zawinski.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>
diff --git a/hacks/glx/gltrackball.c b/hacks/glx/gltrackball.c
new file mode 100644
index 0000000..57b4b99
--- /dev/null
+++ b/hacks/glx/gltrackball.c
@@ -0,0 +1,337 @@
+/* gltrackball, Copyright (c) 2002-2017 Jamie Zawinski <jwz@jwz.org>
+ * GL-flavored wrapper for trackball.c
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_COCOA
+# include "jwxyz.h"
+#elif defined(HAVE_ANDROID)
+# include "jwxyz.h"
+# include <GLES/gl.h>
+#else /* real X11 */
+# include <X11/X.h>
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+#endif /* !HAVE_COCOA */
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+# define Button4 4 /* WTF */
+# define Button5 5
+# define Button6 6
+# define Button7 7
+
+#include "trackball.h"
+#include "gltrackball.h"
+
+#if defined(USE_IPHONE) || defined(HAVE_ANDROID)
+ /* Surely this should be defined somewhere more centrally... */
+# define HAVE_MOBILE
+#endif
+
+/* Bah, copied from ../fps.h */
+#ifdef HAVE_MOBILE
+ extern double current_device_rotation (void);
+#else
+# define current_device_rotation() (0)
+#endif
+
+
+struct trackball_state {
+ int ow, oh;
+ double x, y;
+ double dx, dy, ddx, ddy;
+ GLfloat q[4];
+ int button_down_p;
+ int ignore_device_rotation_p;
+};
+
+/* Returns a trackball_state object, which encapsulates the stuff necessary
+ to make dragging the mouse on the window of a GL program do the right thing.
+ */
+trackball_state *
+gltrackball_init (int ignore_device_rotation_p)
+{
+ trackball_state *ts = (trackball_state *) calloc (1, sizeof (*ts));
+ if (!ts) return 0;
+ ts->ignore_device_rotation_p = ignore_device_rotation_p;
+ trackball (ts->q, 0, 0, 0, 0);
+ return ts;
+}
+
+/* Device rotation interacts very strangely with mouse positions.
+ I'm not entirely sure this is the right fix.
+ */
+static void
+adjust_for_device_rotation (trackball_state *ts,
+ double *x, double *y, double *w, double *h)
+{
+ int rot = (int) current_device_rotation();
+ int swap;
+
+ if (ts->ignore_device_rotation_p) return;
+
+ while (rot <= -180) rot += 360;
+ while (rot > 180) rot -= 360;
+
+ if (rot > 135 || rot < -135) /* 180 */
+ {
+ *x = *w - *x;
+ *y = *h - *y;
+ }
+ else if (rot > 45) /* 90 */
+ {
+ swap = *x; *x = *y; *y = swap;
+ swap = *w; *w = *h; *h = swap;
+ *x = *w - *x;
+ }
+ else if (rot < -45) /* 270 */
+ {
+ swap = *x; *x = *y; *y = swap;
+ swap = *w; *w = *h; *h = swap;
+ *y = *h - *y;
+ }
+}
+
+
+/* Begin tracking the mouse: Call this when the mouse button goes down.
+ x and y are the mouse position relative to the window.
+ w and h are the size of the window.
+ */
+void
+gltrackball_start (trackball_state *ts, int x, int y, int w, int h)
+{
+ ts->x = x;
+ ts->y = y;
+ ts->button_down_p = 1;
+ ts->dx = ts->ddx = 0;
+ ts->dy = ts->ddy = 0;
+}
+
+/* Stop tracking the mouse: Call this when the mouse button goes up.
+ */
+void
+gltrackball_stop (trackball_state *ts)
+{
+ ts->button_down_p = 0;
+}
+
+static void
+gltrackball_track_1 (trackball_state *ts,
+ double x, double y,
+ int w, int h,
+ int ignore_device_rotation_p)
+{
+ double X = x;
+ double Y = y;
+ double W = w, W2 = w;
+ double H = h, H2 = h;
+ float q2[4];
+ double ox = ts->x;
+ double oy = ts->y;
+
+ ts->x = x;
+ ts->y = y;
+
+ if (! ignore_device_rotation_p)
+ {
+ adjust_for_device_rotation (ts, &ox, &oy, &W, &H);
+ adjust_for_device_rotation (ts, &X, &Y, &W2, &H2);
+ }
+ trackball (q2,
+ (2 * ox - W) / W,
+ (H - 2 * oy) / H,
+ (2 * X - W) / W,
+ (H - 2 * Y) / H);
+
+ add_quats (q2, ts->q, ts->q);
+}
+
+
+/* Track the mouse: Call this each time the mouse moves with the button down.
+ x and y are the new mouse position relative to the window.
+ w and h are the size of the window.
+ */
+void
+gltrackball_track (trackball_state *ts, int x, int y, int w, int h)
+{
+ double dampen = 0.01; /* This keeps it going for about 3 sec */
+ ts->dx = x - ts->x;
+ ts->dy = y - ts->y;
+ ts->ddx = ts->dx * dampen;
+ ts->ddy = ts->dy * dampen;
+ ts->ow = w;
+ ts->oh = h;
+ gltrackball_track_1 (ts, x, y, w, h, False);
+}
+
+
+static void
+gltrackball_dampen (double *n, double *dn)
+{
+ int pos = (*n > 0);
+ *n -= *dn;
+ if (pos != (*n > 0))
+ *n = *dn = 0;
+}
+
+
+/* Reset the trackball to the default unrotated state,
+ plus an optional initial rotation.
+ */
+void
+gltrackball_reset (trackball_state *ts, float x, float y)
+{
+ int bd = ts->button_down_p;
+ int ig = ts->ignore_device_rotation_p;
+ memset (ts, 0, sizeof(*ts));
+ ts->button_down_p = bd;
+ ts->ignore_device_rotation_p = ig;
+ trackball (ts->q, 0, 0, x, y);
+}
+
+
+/* Execute the rotations current encapsulated in the trackball_state:
+ this does something analagous to glRotatef().
+ */
+void
+gltrackball_rotate (trackball_state *ts)
+{
+ GLfloat m[4][4];
+ if (!ts->button_down_p &&
+ (ts->ddx != 0 ||
+ ts->ddy != 0))
+ {
+ /* Apply inertia: keep moving in the same direction as the last move. */
+ gltrackball_track_1 (ts,
+ ts->x + ts->dx,
+ ts->y + ts->dy,
+ ts->ow, ts->oh,
+ False);
+
+ /* Dampen inertia: gradually stop spinning. */
+ gltrackball_dampen (&ts->dx, &ts->ddx);
+ gltrackball_dampen (&ts->dy, &ts->ddy);
+ }
+
+ build_rotmatrix (m, ts->q);
+ glMultMatrixf (&m[0][0]);
+}
+
+
+/* Call this when a mouse-wheel click is detected.
+ Clicks act like horizontal or vertical drags.
+ Percent is the length of the drag as a percentage of the screen size.
+ Button is 'Button4' or 'Button5' (for the vertical wheel)
+ or 'Button5' or 'Button6' (for the horizontal wheel).
+ If `flip_p' is true, swap the horizontal and vertical axes.
+ */
+void
+gltrackball_mousewheel (trackball_state *ts,
+ int button, int percent, int flip_p)
+{
+ int up_p;
+ int horizontal_p;
+ int mx, my, move, scale;
+
+#ifdef HAVE_JWXYZ
+ flip_p = 0; /* MacOS has already handled this. */
+#endif
+
+ switch (button) {
+ case Button4: up_p = 1; horizontal_p = 0; break;
+ case Button5: up_p = 0; horizontal_p = 0; break;
+ case Button6: up_p = 1; horizontal_p = 1; break;
+ case Button7: up_p = 0; horizontal_p = 1; break;
+ default: abort(); break;
+ }
+
+ if (flip_p)
+ {
+ horizontal_p = !horizontal_p;
+ up_p = !up_p;
+ }
+
+ scale = mx = my = 1000;
+ move = (up_p
+ ? floor (scale * (1.0 - (percent / 100.0)))
+ : ceil (scale * (1.0 + (percent / 100.0))));
+ if (horizontal_p) mx = move;
+ else my = move;
+ gltrackball_start (ts, scale, scale, scale*2, scale*2);
+ gltrackball_track (ts, mx, my, scale*2, scale*2);
+}
+
+void
+gltrackball_get_quaternion (trackball_state *ts, float q[4])
+{
+ int i;
+ for (i=0; i<4; i++)
+ q[i] = ts->q[i];
+}
+
+
+/* A utility function for event-handler functions:
+ Handles the various motion and click events related to trackballs.
+ Returns True if the event was handled.
+ */
+Bool
+gltrackball_event_handler (XEvent *event,
+ trackball_state *ts,
+ int window_width, int window_height,
+ Bool *button_down_p)
+{
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ *button_down_p = True;
+ gltrackball_start (ts,
+ event->xbutton.x, event->xbutton.y,
+ window_width, window_height);
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ *button_down_p = False;
+ gltrackball_stop (ts);
+ return True;
+ }
+ else if (event->xany.type == ButtonPress &&
+ (event->xbutton.button == Button4 ||
+ event->xbutton.button == Button5 ||
+ event->xbutton.button == Button6 ||
+ event->xbutton.button == Button7))
+ {
+ gltrackball_mousewheel (ts, event->xbutton.button, 10,
+ !!event->xbutton.state);
+ return True;
+ }
+ else if (event->xany.type == MotionNotify &&
+ *button_down_p)
+ {
+ gltrackball_track (ts,
+ event->xmotion.x, event->xmotion.y,
+ window_width, window_height);
+ return True;
+ }
+
+ return False;
+}
diff --git a/hacks/glx/gltrackball.h b/hacks/glx/gltrackball.h
new file mode 100644
index 0000000..ba9e574
--- /dev/null
+++ b/hacks/glx/gltrackball.h
@@ -0,0 +1,72 @@
+/* gltrackball, Copyright (c) 2002-2017 Jamie Zawinski <jwz@jwz.org>
+ * GL-flavored wrapper for trackball.c
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __GLTRACKBALL_H__
+#define __GLTRACKBALL_H__
+
+typedef struct trackball_state trackball_state;
+
+/* Returns a trackball_state object, which encapsulates the stuff necessary
+ to make dragging the mouse on the window of a GL program do the right thing.
+ */
+extern trackball_state *gltrackball_init (int ignore_device_rotation_p);
+
+/* Begin tracking the mouse: Call this when the mouse button goes down.
+ x and y are the mouse position relative to the window.
+ w and h are the size of the window.
+ */
+extern void gltrackball_start (trackball_state *, int x, int y, int w, int h);
+
+/* Track the mouse: Call this each time the mouse moves with the button down.
+ x and y are the new mouse position relative to the window.
+ w and h are the size of the window.
+ */
+extern void gltrackball_track (trackball_state *, int x, int y, int w, int h);
+
+/* Stop tracking the mouse: Call this when the mouse button goes up.
+ */
+extern void gltrackball_stop (trackball_state *);
+
+/* Execute the rotations current encapsulated in the trackball_state:
+ this does something analagous to glRotatef().
+ */
+extern void gltrackball_rotate (trackball_state *);
+
+/* Call this when a mouse-wheel click is detected.
+ Clicks act like horizontal or vertical drags.
+ Percent is the length of the drag as a percentage of the screen size.
+ Button is 'Button4' or 'Button5' (for the vertical wheel)
+ or 'Button5' or 'Button6' (for the horizontal wheel).
+ If `flip_p' is true, swap the horizontal and vertical axes.
+ */
+void gltrackball_mousewheel (trackball_state *ts,
+ int button, int percent, int flip_p);
+
+/* Return the quaternion encapsulated by the trackball state.
+ */
+extern void gltrackball_get_quaternion (trackball_state *ts, float q[4]);
+
+/* Reset the trackball to the default unrotated state,
+ plus an optional initial rotation.
+ */
+extern void gltrackball_reset (trackball_state *ts, float x, float y);
+
+/* A utility function for event-handler functions:
+ Handles the various motion and click events related to trackballs.
+ Returns True if the event was handled.
+ */
+extern Bool gltrackball_event_handler (XEvent *,
+ trackball_state *,
+ int window_width, int window_height,
+ Bool *button_down_p);
+
+#endif /* __GLTRACKBALL_H__ */
diff --git a/hacks/glx/glut_mroman.h b/hacks/glx/glut_mroman.h
new file mode 100644
index 0000000..39eb171
--- /dev/null
+++ b/hacks/glx/glut_mroman.h
@@ -0,0 +1,2456 @@
+/* Roman monospaced simplex stroke font copyright (c) 1989, 1990, 1991
+ * by Sun Microsystems, Inc. and the X Consortium.
+ * Originally part of the GLUT library by Mark J. Kilgard.
+ * I have changed names so that this can be a .h rather than a .c file without
+ * causing name clashes with glut_roman.h
+ */
+
+#include "glutstroke.h"
+
+/* char: 33 '!' */
+
+static const CoordRec monoChar33_stroke0[] = {
+ { 52.381, 100 },
+ { 52.381, 33.3333 },
+};
+
+static const CoordRec monoChar33_stroke1[] = {
+ { 52.381, 9.5238 },
+ { 47.6191, 4.7619 },
+ { 52.381, 0 },
+ { 57.1429, 4.7619 },
+ { 52.381, 9.5238 },
+};
+
+static const StrokeRec monoChar33[] = {
+ { 2, monoChar33_stroke0 },
+ { 5, monoChar33_stroke1 },
+};
+
+/* char: 34 '"' */
+
+static const CoordRec monoChar34_stroke0[] = {
+ { 33.3334, 100 },
+ { 33.3334, 66.6667 },
+};
+
+static const CoordRec monoChar34_stroke1[] = {
+ { 71.4286, 100 },
+ { 71.4286, 66.6667 },
+};
+
+static const StrokeRec monoChar34[] = {
+ { 2, monoChar34_stroke0 },
+ { 2, monoChar34_stroke1 },
+};
+
+/* char: 35 '#' */
+
+static const CoordRec monoChar35_stroke0[] = {
+ { 54.7619, 119.048 },
+ { 21.4286, -33.3333 },
+};
+
+static const CoordRec monoChar35_stroke1[] = {
+ { 83.3334, 119.048 },
+ { 50, -33.3333 },
+};
+
+static const CoordRec monoChar35_stroke2[] = {
+ { 21.4286, 57.1429 },
+ { 88.0952, 57.1429 },
+};
+
+static const CoordRec monoChar35_stroke3[] = {
+ { 16.6667, 28.5714 },
+ { 83.3334, 28.5714 },
+};
+
+static const StrokeRec monoChar35[] = {
+ { 2, monoChar35_stroke0 },
+ { 2, monoChar35_stroke1 },
+ { 2, monoChar35_stroke2 },
+ { 2, monoChar35_stroke3 },
+};
+
+/* char: 36 '$' */
+
+static const CoordRec monoChar36_stroke0[] = {
+ { 42.8571, 119.048 },
+ { 42.8571, -19.0476 },
+};
+
+static const CoordRec monoChar36_stroke1[] = {
+ { 61.9047, 119.048 },
+ { 61.9047, -19.0476 },
+};
+
+static const CoordRec monoChar36_stroke2[] = {
+ { 85.7143, 85.7143 },
+ { 76.1905, 95.2381 },
+ { 61.9047, 100 },
+ { 42.8571, 100 },
+ { 28.5714, 95.2381 },
+ { 19.0476, 85.7143 },
+ { 19.0476, 76.1905 },
+ { 23.8095, 66.6667 },
+ { 28.5714, 61.9048 },
+ { 38.0952, 57.1429 },
+ { 66.6666, 47.619 },
+ { 76.1905, 42.8571 },
+ { 80.9524, 38.0952 },
+ { 85.7143, 28.5714 },
+ { 85.7143, 14.2857 },
+ { 76.1905, 4.7619 },
+ { 61.9047, 0 },
+ { 42.8571, 0 },
+ { 28.5714, 4.7619 },
+ { 19.0476, 14.2857 },
+};
+
+static const StrokeRec monoChar36[] = {
+ { 2, monoChar36_stroke0 },
+ { 2, monoChar36_stroke1 },
+ { 20, monoChar36_stroke2 },
+};
+
+/* char: 37 '%' */
+
+static const CoordRec monoChar37_stroke0[] = {
+ { 95.2381, 100 },
+ { 9.5238, 0 },
+};
+
+static const CoordRec monoChar37_stroke1[] = {
+ { 33.3333, 100 },
+ { 42.8571, 90.4762 },
+ { 42.8571, 80.9524 },
+ { 38.0952, 71.4286 },
+ { 28.5714, 66.6667 },
+ { 19.0476, 66.6667 },
+ { 9.5238, 76.1905 },
+ { 9.5238, 85.7143 },
+ { 14.2857, 95.2381 },
+ { 23.8095, 100 },
+ { 33.3333, 100 },
+ { 42.8571, 95.2381 },
+ { 57.1428, 90.4762 },
+ { 71.4286, 90.4762 },
+ { 85.7143, 95.2381 },
+ { 95.2381, 100 },
+};
+
+static const CoordRec monoChar37_stroke2[] = {
+ { 76.1905, 33.3333 },
+ { 66.6667, 28.5714 },
+ { 61.9048, 19.0476 },
+ { 61.9048, 9.5238 },
+ { 71.4286, 0 },
+ { 80.9524, 0 },
+ { 90.4762, 4.7619 },
+ { 95.2381, 14.2857 },
+ { 95.2381, 23.8095 },
+ { 85.7143, 33.3333 },
+ { 76.1905, 33.3333 },
+};
+
+static const StrokeRec monoChar37[] = {
+ { 2, monoChar37_stroke0 },
+ { 16, monoChar37_stroke1 },
+ { 11, monoChar37_stroke2 },
+};
+
+/* char: 38 '&' */
+
+static const CoordRec monoChar38_stroke0[] = {
+ { 100, 57.1429 },
+ { 100, 61.9048 },
+ { 95.2381, 66.6667 },
+ { 90.4762, 66.6667 },
+ { 85.7143, 61.9048 },
+ { 80.9524, 52.381 },
+ { 71.4286, 28.5714 },
+ { 61.9048, 14.2857 },
+ { 52.3809, 4.7619 },
+ { 42.8571, 0 },
+ { 23.8095, 0 },
+ { 14.2857, 4.7619 },
+ { 9.5238, 9.5238 },
+ { 4.7619, 19.0476 },
+ { 4.7619, 28.5714 },
+ { 9.5238, 38.0952 },
+ { 14.2857, 42.8571 },
+ { 47.619, 61.9048 },
+ { 52.3809, 66.6667 },
+ { 57.1429, 76.1905 },
+ { 57.1429, 85.7143 },
+ { 52.3809, 95.2381 },
+ { 42.8571, 100 },
+ { 33.3333, 95.2381 },
+ { 28.5714, 85.7143 },
+ { 28.5714, 76.1905 },
+ { 33.3333, 61.9048 },
+ { 42.8571, 47.619 },
+ { 66.6667, 14.2857 },
+ { 76.1905, 4.7619 },
+ { 85.7143, 0 },
+ { 95.2381, 0 },
+ { 100, 4.7619 },
+ { 100, 9.5238 },
+};
+
+static const StrokeRec monoChar38[] = {
+ { 34, monoChar38_stroke0 },
+};
+
+/* char: 39 ''' */
+
+static const CoordRec monoChar39_stroke0[] = {
+ { 52.381, 100 },
+ { 52.381, 66.6667 },
+};
+
+static const StrokeRec monoChar39[] = {
+ { 2, monoChar39_stroke0 },
+};
+
+/* char: 40 '(' */
+
+static const CoordRec monoChar40_stroke0[] = {
+ { 69.0476, 119.048 },
+ { 59.5238, 109.524 },
+ { 50, 95.2381 },
+ { 40.4762, 76.1905 },
+ { 35.7143, 52.381 },
+ { 35.7143, 33.3333 },
+ { 40.4762, 9.5238 },
+ { 50, -9.5238 },
+ { 59.5238, -23.8095 },
+ { 69.0476, -33.3333 },
+};
+
+static const StrokeRec monoChar40[] = {
+ { 10, monoChar40_stroke0 },
+};
+
+/* char: 41 ')' */
+
+static const CoordRec monoChar41_stroke0[] = {
+ { 35.7143, 119.048 },
+ { 45.2381, 109.524 },
+ { 54.7619, 95.2381 },
+ { 64.2857, 76.1905 },
+ { 69.0476, 52.381 },
+ { 69.0476, 33.3333 },
+ { 64.2857, 9.5238 },
+ { 54.7619, -9.5238 },
+ { 45.2381, -23.8095 },
+ { 35.7143, -33.3333 },
+};
+
+static const StrokeRec monoChar41[] = {
+ { 10, monoChar41_stroke0 },
+};
+
+/* char: 42 '*' */
+
+static const CoordRec monoChar42_stroke0[] = {
+ { 52.381, 71.4286 },
+ { 52.381, 14.2857 },
+};
+
+static const CoordRec monoChar42_stroke1[] = {
+ { 28.5715, 57.1429 },
+ { 76.1905, 28.5714 },
+};
+
+static const CoordRec monoChar42_stroke2[] = {
+ { 76.1905, 57.1429 },
+ { 28.5715, 28.5714 },
+};
+
+static const StrokeRec monoChar42[] = {
+ { 2, monoChar42_stroke0 },
+ { 2, monoChar42_stroke1 },
+ { 2, monoChar42_stroke2 },
+};
+
+/* char: 43 '+' */
+
+static const CoordRec monoChar43_stroke0[] = {
+ { 52.3809, 85.7143 },
+ { 52.3809, 0 },
+};
+
+static const CoordRec monoChar43_stroke1[] = {
+ { 9.5238, 42.8571 },
+ { 95.2381, 42.8571 },
+};
+
+static const StrokeRec monoChar43[] = {
+ { 2, monoChar43_stroke0 },
+ { 2, monoChar43_stroke1 },
+};
+
+/* char: 44 ',' */
+
+static const CoordRec monoChar44_stroke0[] = {
+ { 57.1429, 4.7619 },
+ { 52.381, 0 },
+ { 47.6191, 4.7619 },
+ { 52.381, 9.5238 },
+ { 57.1429, 4.7619 },
+ { 57.1429, -4.7619 },
+ { 52.381, -14.2857 },
+ { 47.6191, -19.0476 },
+};
+
+static const StrokeRec monoChar44[] = {
+ { 8, monoChar44_stroke0 },
+};
+
+/* char: 45 '-' */
+
+static const CoordRec monoChar45_stroke0[] = {
+ { 9.5238, 42.8571 },
+ { 95.2381, 42.8571 },
+};
+
+static const StrokeRec monoChar45[] = {
+ { 2, monoChar45_stroke0 },
+};
+
+/* char: 46 '.' */
+
+static const CoordRec monoChar46_stroke0[] = {
+ { 52.381, 9.5238 },
+ { 47.6191, 4.7619 },
+ { 52.381, 0 },
+ { 57.1429, 4.7619 },
+ { 52.381, 9.5238 },
+};
+
+static const StrokeRec monoChar46[] = {
+ { 5, monoChar46_stroke0 },
+};
+
+/* char: 47 '/' */
+
+static const CoordRec monoChar47_stroke0[] = {
+ { 19.0476, -14.2857 },
+ { 85.7143, 100 },
+};
+
+static const StrokeRec monoChar47[] = {
+ { 2, monoChar47_stroke0 },
+};
+
+/* char: 48 '0' */
+
+static const CoordRec monoChar48_stroke0[] = {
+ { 47.619, 100 },
+ { 33.3333, 95.2381 },
+ { 23.8095, 80.9524 },
+ { 19.0476, 57.1429 },
+ { 19.0476, 42.8571 },
+ { 23.8095, 19.0476 },
+ { 33.3333, 4.7619 },
+ { 47.619, 0 },
+ { 57.1428, 0 },
+ { 71.4286, 4.7619 },
+ { 80.9524, 19.0476 },
+ { 85.7143, 42.8571 },
+ { 85.7143, 57.1429 },
+ { 80.9524, 80.9524 },
+ { 71.4286, 95.2381 },
+ { 57.1428, 100 },
+ { 47.619, 100 },
+};
+
+static const StrokeRec monoChar48[] = {
+ { 17, monoChar48_stroke0 },
+};
+
+/* char: 49 '1' */
+
+static const CoordRec monoChar49_stroke0[] = {
+ { 40.4762, 80.9524 },
+ { 50, 85.7143 },
+ { 64.2857, 100 },
+ { 64.2857, 0 },
+};
+
+static const StrokeRec monoChar49[] = {
+ { 4, monoChar49_stroke0 },
+};
+
+/* char: 50 '2' */
+
+static const CoordRec monoChar50_stroke0[] = {
+ { 23.8095, 76.1905 },
+ { 23.8095, 80.9524 },
+ { 28.5714, 90.4762 },
+ { 33.3333, 95.2381 },
+ { 42.8571, 100 },
+ { 61.9047, 100 },
+ { 71.4286, 95.2381 },
+ { 76.1905, 90.4762 },
+ { 80.9524, 80.9524 },
+ { 80.9524, 71.4286 },
+ { 76.1905, 61.9048 },
+ { 66.6666, 47.619 },
+ { 19.0476, 0 },
+ { 85.7143, 0 },
+};
+
+static const StrokeRec monoChar50[] = {
+ { 14, monoChar50_stroke0 },
+};
+
+/* char: 51 '3' */
+
+static const CoordRec monoChar51_stroke0[] = {
+ { 28.5714, 100 },
+ { 80.9524, 100 },
+ { 52.3809, 61.9048 },
+ { 66.6666, 61.9048 },
+ { 76.1905, 57.1429 },
+ { 80.9524, 52.381 },
+ { 85.7143, 38.0952 },
+ { 85.7143, 28.5714 },
+ { 80.9524, 14.2857 },
+ { 71.4286, 4.7619 },
+ { 57.1428, 0 },
+ { 42.8571, 0 },
+ { 28.5714, 4.7619 },
+ { 23.8095, 9.5238 },
+ { 19.0476, 19.0476 },
+};
+
+static const StrokeRec monoChar51[] = {
+ { 15, monoChar51_stroke0 },
+};
+
+/* char: 52 '4' */
+
+static const CoordRec monoChar52_stroke0[] = {
+ { 64.2857, 100 },
+ { 16.6667, 33.3333 },
+ { 88.0952, 33.3333 },
+};
+
+static const CoordRec monoChar52_stroke1[] = {
+ { 64.2857, 100 },
+ { 64.2857, 0 },
+};
+
+static const StrokeRec monoChar52[] = {
+ { 3, monoChar52_stroke0 },
+ { 2, monoChar52_stroke1 },
+};
+
+/* char: 53 '5' */
+
+static const CoordRec monoChar53_stroke0[] = {
+ { 76.1905, 100 },
+ { 28.5714, 100 },
+ { 23.8095, 57.1429 },
+ { 28.5714, 61.9048 },
+ { 42.8571, 66.6667 },
+ { 57.1428, 66.6667 },
+ { 71.4286, 61.9048 },
+ { 80.9524, 52.381 },
+ { 85.7143, 38.0952 },
+ { 85.7143, 28.5714 },
+ { 80.9524, 14.2857 },
+ { 71.4286, 4.7619 },
+ { 57.1428, 0 },
+ { 42.8571, 0 },
+ { 28.5714, 4.7619 },
+ { 23.8095, 9.5238 },
+ { 19.0476, 19.0476 },
+};
+
+static const StrokeRec monoChar53[] = {
+ { 17, monoChar53_stroke0 },
+};
+
+/* char: 54 '6' */
+
+static const CoordRec monoChar54_stroke0[] = {
+ { 78.5714, 85.7143 },
+ { 73.8096, 95.2381 },
+ { 59.5238, 100 },
+ { 50, 100 },
+ { 35.7143, 95.2381 },
+ { 26.1905, 80.9524 },
+ { 21.4286, 57.1429 },
+ { 21.4286, 33.3333 },
+ { 26.1905, 14.2857 },
+ { 35.7143, 4.7619 },
+ { 50, 0 },
+ { 54.7619, 0 },
+ { 69.0476, 4.7619 },
+ { 78.5714, 14.2857 },
+ { 83.3334, 28.5714 },
+ { 83.3334, 33.3333 },
+ { 78.5714, 47.619 },
+ { 69.0476, 57.1429 },
+ { 54.7619, 61.9048 },
+ { 50, 61.9048 },
+ { 35.7143, 57.1429 },
+ { 26.1905, 47.619 },
+ { 21.4286, 33.3333 },
+};
+
+static const StrokeRec monoChar54[] = {
+ { 23, monoChar54_stroke0 },
+};
+
+/* char: 55 '7' */
+
+static const CoordRec monoChar55_stroke0[] = {
+ { 85.7143, 100 },
+ { 38.0952, 0 },
+};
+
+static const CoordRec monoChar55_stroke1[] = {
+ { 19.0476, 100 },
+ { 85.7143, 100 },
+};
+
+static const StrokeRec monoChar55[] = {
+ { 2, monoChar55_stroke0 },
+ { 2, monoChar55_stroke1 },
+};
+
+/* char: 56 '8' */
+
+static const CoordRec monoChar56_stroke0[] = {
+ { 42.8571, 100 },
+ { 28.5714, 95.2381 },
+ { 23.8095, 85.7143 },
+ { 23.8095, 76.1905 },
+ { 28.5714, 66.6667 },
+ { 38.0952, 61.9048 },
+ { 57.1428, 57.1429 },
+ { 71.4286, 52.381 },
+ { 80.9524, 42.8571 },
+ { 85.7143, 33.3333 },
+ { 85.7143, 19.0476 },
+ { 80.9524, 9.5238 },
+ { 76.1905, 4.7619 },
+ { 61.9047, 0 },
+ { 42.8571, 0 },
+ { 28.5714, 4.7619 },
+ { 23.8095, 9.5238 },
+ { 19.0476, 19.0476 },
+ { 19.0476, 33.3333 },
+ { 23.8095, 42.8571 },
+ { 33.3333, 52.381 },
+ { 47.619, 57.1429 },
+ { 66.6666, 61.9048 },
+ { 76.1905, 66.6667 },
+ { 80.9524, 76.1905 },
+ { 80.9524, 85.7143 },
+ { 76.1905, 95.2381 },
+ { 61.9047, 100 },
+ { 42.8571, 100 },
+};
+
+static const StrokeRec monoChar56[] = {
+ { 29, monoChar56_stroke0 },
+};
+
+/* char: 57 '9' */
+
+static const CoordRec monoChar57_stroke0[] = {
+ { 83.3334, 66.6667 },
+ { 78.5714, 52.381 },
+ { 69.0476, 42.8571 },
+ { 54.7619, 38.0952 },
+ { 50, 38.0952 },
+ { 35.7143, 42.8571 },
+ { 26.1905, 52.381 },
+ { 21.4286, 66.6667 },
+ { 21.4286, 71.4286 },
+ { 26.1905, 85.7143 },
+ { 35.7143, 95.2381 },
+ { 50, 100 },
+ { 54.7619, 100 },
+ { 69.0476, 95.2381 },
+ { 78.5714, 85.7143 },
+ { 83.3334, 66.6667 },
+ { 83.3334, 42.8571 },
+ { 78.5714, 19.0476 },
+ { 69.0476, 4.7619 },
+ { 54.7619, 0 },
+ { 45.2381, 0 },
+ { 30.9524, 4.7619 },
+ { 26.1905, 14.2857 },
+};
+
+static const StrokeRec monoChar57[] = {
+ { 23, monoChar57_stroke0 },
+};
+
+/* char: 58 ':' */
+
+static const CoordRec monoChar58_stroke0[] = {
+ { 52.381, 66.6667 },
+ { 47.6191, 61.9048 },
+ { 52.381, 57.1429 },
+ { 57.1429, 61.9048 },
+ { 52.381, 66.6667 },
+};
+
+static const CoordRec monoChar58_stroke1[] = {
+ { 52.381, 9.5238 },
+ { 47.6191, 4.7619 },
+ { 52.381, 0 },
+ { 57.1429, 4.7619 },
+ { 52.381, 9.5238 },
+};
+
+static const StrokeRec monoChar58[] = {
+ { 5, monoChar58_stroke0 },
+ { 5, monoChar58_stroke1 },
+};
+
+/* char: 59 ';' */
+
+static const CoordRec monoChar59_stroke0[] = {
+ { 52.381, 66.6667 },
+ { 47.6191, 61.9048 },
+ { 52.381, 57.1429 },
+ { 57.1429, 61.9048 },
+ { 52.381, 66.6667 },
+};
+
+static const CoordRec monoChar59_stroke1[] = {
+ { 57.1429, 4.7619 },
+ { 52.381, 0 },
+ { 47.6191, 4.7619 },
+ { 52.381, 9.5238 },
+ { 57.1429, 4.7619 },
+ { 57.1429, -4.7619 },
+ { 52.381, -14.2857 },
+ { 47.6191, -19.0476 },
+};
+
+static const StrokeRec monoChar59[] = {
+ { 5, monoChar59_stroke0 },
+ { 8, monoChar59_stroke1 },
+};
+
+/* char: 60 '<' */
+
+static const CoordRec monoChar60_stroke0[] = {
+ { 90.4762, 85.7143 },
+ { 14.2857, 42.8571 },
+ { 90.4762, 0 },
+};
+
+static const StrokeRec monoChar60[] = {
+ { 3, monoChar60_stroke0 },
+};
+
+/* char: 61 '=' */
+
+static const CoordRec monoChar61_stroke0[] = {
+ { 9.5238, 57.1429 },
+ { 95.2381, 57.1429 },
+};
+
+static const CoordRec monoChar61_stroke1[] = {
+ { 9.5238, 28.5714 },
+ { 95.2381, 28.5714 },
+};
+
+static const StrokeRec monoChar61[] = {
+ { 2, monoChar61_stroke0 },
+ { 2, monoChar61_stroke1 },
+};
+
+/* char: 62 '>' */
+
+static const CoordRec monoChar62_stroke0[] = {
+ { 14.2857, 85.7143 },
+ { 90.4762, 42.8571 },
+ { 14.2857, 0 },
+};
+
+static const StrokeRec monoChar62[] = {
+ { 3, monoChar62_stroke0 },
+};
+
+/* char: 63 '?' */
+
+static const CoordRec monoChar63_stroke0[] = {
+ { 23.8095, 76.1905 },
+ { 23.8095, 80.9524 },
+ { 28.5714, 90.4762 },
+ { 33.3333, 95.2381 },
+ { 42.8571, 100 },
+ { 61.9047, 100 },
+ { 71.4285, 95.2381 },
+ { 76.1905, 90.4762 },
+ { 80.9524, 80.9524 },
+ { 80.9524, 71.4286 },
+ { 76.1905, 61.9048 },
+ { 71.4285, 57.1429 },
+ { 52.3809, 47.619 },
+ { 52.3809, 33.3333 },
+};
+
+static const CoordRec monoChar63_stroke1[] = {
+ { 52.3809, 9.5238 },
+ { 47.619, 4.7619 },
+ { 52.3809, 0 },
+ { 57.1428, 4.7619 },
+ { 52.3809, 9.5238 },
+};
+
+static const StrokeRec monoChar63[] = {
+ { 14, monoChar63_stroke0 },
+ { 5, monoChar63_stroke1 },
+};
+
+/* char: 64 '@' */
+
+static const CoordRec monoChar64_stroke0[] = {
+ { 64.2857, 52.381 },
+ { 54.7619, 57.1429 },
+ { 45.2381, 57.1429 },
+ { 40.4762, 47.619 },
+ { 40.4762, 42.8571 },
+ { 45.2381, 33.3333 },
+ { 54.7619, 33.3333 },
+ { 64.2857, 38.0952 },
+};
+
+static const CoordRec monoChar64_stroke1[] = {
+ { 64.2857, 57.1429 },
+ { 64.2857, 38.0952 },
+ { 69.0476, 33.3333 },
+ { 78.5714, 33.3333 },
+ { 83.3334, 42.8571 },
+ { 83.3334, 47.619 },
+ { 78.5714, 61.9048 },
+ { 69.0476, 71.4286 },
+ { 54.7619, 76.1905 },
+ { 50, 76.1905 },
+ { 35.7143, 71.4286 },
+ { 26.1905, 61.9048 },
+ { 21.4286, 47.619 },
+ { 21.4286, 42.8571 },
+ { 26.1905, 28.5714 },
+ { 35.7143, 19.0476 },
+ { 50, 14.2857 },
+ { 54.7619, 14.2857 },
+ { 69.0476, 19.0476 },
+};
+
+static const StrokeRec monoChar64[] = {
+ { 8, monoChar64_stroke0 },
+ { 19, monoChar64_stroke1 },
+};
+
+/* char: 65 'A' */
+
+static const CoordRec monoChar65_stroke0[] = {
+ { 52.3809, 100 },
+ { 14.2857, 0 },
+};
+
+static const CoordRec monoChar65_stroke1[] = {
+ { 52.3809, 100 },
+ { 90.4762, 0 },
+};
+
+static const CoordRec monoChar65_stroke2[] = {
+ { 28.5714, 33.3333 },
+ { 76.1905, 33.3333 },
+};
+
+static const StrokeRec monoChar65[] = {
+ { 2, monoChar65_stroke0 },
+ { 2, monoChar65_stroke1 },
+ { 2, monoChar65_stroke2 },
+};
+
+/* char: 66 'B' */
+
+static const CoordRec monoChar66_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar66_stroke1[] = {
+ { 19.0476, 100 },
+ { 61.9047, 100 },
+ { 76.1905, 95.2381 },
+ { 80.9524, 90.4762 },
+ { 85.7143, 80.9524 },
+ { 85.7143, 71.4286 },
+ { 80.9524, 61.9048 },
+ { 76.1905, 57.1429 },
+ { 61.9047, 52.381 },
+};
+
+static const CoordRec monoChar66_stroke2[] = {
+ { 19.0476, 52.381 },
+ { 61.9047, 52.381 },
+ { 76.1905, 47.619 },
+ { 80.9524, 42.8571 },
+ { 85.7143, 33.3333 },
+ { 85.7143, 19.0476 },
+ { 80.9524, 9.5238 },
+ { 76.1905, 4.7619 },
+ { 61.9047, 0 },
+ { 19.0476, 0 },
+};
+
+static const StrokeRec monoChar66[] = {
+ { 2, monoChar66_stroke0 },
+ { 9, monoChar66_stroke1 },
+ { 10, monoChar66_stroke2 },
+};
+
+/* char: 67 'C' */
+
+static const CoordRec monoChar67_stroke0[] = {
+ { 88.0952, 76.1905 },
+ { 83.3334, 85.7143 },
+ { 73.8096, 95.2381 },
+ { 64.2857, 100 },
+ { 45.2381, 100 },
+ { 35.7143, 95.2381 },
+ { 26.1905, 85.7143 },
+ { 21.4286, 76.1905 },
+ { 16.6667, 61.9048 },
+ { 16.6667, 38.0952 },
+ { 21.4286, 23.8095 },
+ { 26.1905, 14.2857 },
+ { 35.7143, 4.7619 },
+ { 45.2381, 0 },
+ { 64.2857, 0 },
+ { 73.8096, 4.7619 },
+ { 83.3334, 14.2857 },
+ { 88.0952, 23.8095 },
+};
+
+static const StrokeRec monoChar67[] = {
+ { 18, monoChar67_stroke0 },
+};
+
+/* char: 68 'D' */
+
+static const CoordRec monoChar68_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar68_stroke1[] = {
+ { 19.0476, 100 },
+ { 52.3809, 100 },
+ { 66.6666, 95.2381 },
+ { 76.1905, 85.7143 },
+ { 80.9524, 76.1905 },
+ { 85.7143, 61.9048 },
+ { 85.7143, 38.0952 },
+ { 80.9524, 23.8095 },
+ { 76.1905, 14.2857 },
+ { 66.6666, 4.7619 },
+ { 52.3809, 0 },
+ { 19.0476, 0 },
+};
+
+static const StrokeRec monoChar68[] = {
+ { 2, monoChar68_stroke0 },
+ { 12, monoChar68_stroke1 },
+};
+
+/* char: 69 'E' */
+
+static const CoordRec monoChar69_stroke0[] = {
+ { 21.4286, 100 },
+ { 21.4286, 0 },
+};
+
+static const CoordRec monoChar69_stroke1[] = {
+ { 21.4286, 100 },
+ { 83.3334, 100 },
+};
+
+static const CoordRec monoChar69_stroke2[] = {
+ { 21.4286, 52.381 },
+ { 59.5238, 52.381 },
+};
+
+static const CoordRec monoChar69_stroke3[] = {
+ { 21.4286, 0 },
+ { 83.3334, 0 },
+};
+
+static const StrokeRec monoChar69[] = {
+ { 2, monoChar69_stroke0 },
+ { 2, monoChar69_stroke1 },
+ { 2, monoChar69_stroke2 },
+ { 2, monoChar69_stroke3 },
+};
+
+/* char: 70 'F' */
+
+static const CoordRec monoChar70_stroke0[] = {
+ { 21.4286, 100 },
+ { 21.4286, 0 },
+};
+
+static const CoordRec monoChar70_stroke1[] = {
+ { 21.4286, 100 },
+ { 83.3334, 100 },
+};
+
+static const CoordRec monoChar70_stroke2[] = {
+ { 21.4286, 52.381 },
+ { 59.5238, 52.381 },
+};
+
+static const StrokeRec monoChar70[] = {
+ { 2, monoChar70_stroke0 },
+ { 2, monoChar70_stroke1 },
+ { 2, monoChar70_stroke2 },
+};
+
+/* char: 71 'G' */
+
+static const CoordRec monoChar71_stroke0[] = {
+ { 88.0952, 76.1905 },
+ { 83.3334, 85.7143 },
+ { 73.8096, 95.2381 },
+ { 64.2857, 100 },
+ { 45.2381, 100 },
+ { 35.7143, 95.2381 },
+ { 26.1905, 85.7143 },
+ { 21.4286, 76.1905 },
+ { 16.6667, 61.9048 },
+ { 16.6667, 38.0952 },
+ { 21.4286, 23.8095 },
+ { 26.1905, 14.2857 },
+ { 35.7143, 4.7619 },
+ { 45.2381, 0 },
+ { 64.2857, 0 },
+ { 73.8096, 4.7619 },
+ { 83.3334, 14.2857 },
+ { 88.0952, 23.8095 },
+ { 88.0952, 38.0952 },
+};
+
+static const CoordRec monoChar71_stroke1[] = {
+ { 64.2857, 38.0952 },
+ { 88.0952, 38.0952 },
+};
+
+static const StrokeRec monoChar71[] = {
+ { 19, monoChar71_stroke0 },
+ { 2, monoChar71_stroke1 },
+};
+
+/* char: 72 'H' */
+
+static const CoordRec monoChar72_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar72_stroke1[] = {
+ { 85.7143, 100 },
+ { 85.7143, 0 },
+};
+
+static const CoordRec monoChar72_stroke2[] = {
+ { 19.0476, 52.381 },
+ { 85.7143, 52.381 },
+};
+
+static const StrokeRec monoChar72[] = {
+ { 2, monoChar72_stroke0 },
+ { 2, monoChar72_stroke1 },
+ { 2, monoChar72_stroke2 },
+};
+
+/* char: 73 'I' */
+
+static const CoordRec monoChar73_stroke0[] = {
+ { 52.381, 100 },
+ { 52.381, 0 },
+};
+
+static const StrokeRec monoChar73[] = {
+ { 2, monoChar73_stroke0 },
+};
+
+/* char: 74 'J' */
+
+static const CoordRec monoChar74_stroke0[] = {
+ { 76.1905, 100 },
+ { 76.1905, 23.8095 },
+ { 71.4286, 9.5238 },
+ { 66.6667, 4.7619 },
+ { 57.1429, 0 },
+ { 47.6191, 0 },
+ { 38.0953, 4.7619 },
+ { 33.3334, 9.5238 },
+ { 28.5715, 23.8095 },
+ { 28.5715, 33.3333 },
+};
+
+static const StrokeRec monoChar74[] = {
+ { 10, monoChar74_stroke0 },
+};
+
+/* char: 75 'K' */
+
+static const CoordRec monoChar75_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar75_stroke1[] = {
+ { 85.7143, 100 },
+ { 19.0476, 33.3333 },
+};
+
+static const CoordRec monoChar75_stroke2[] = {
+ { 42.8571, 57.1429 },
+ { 85.7143, 0 },
+};
+
+static const StrokeRec monoChar75[] = {
+ { 2, monoChar75_stroke0 },
+ { 2, monoChar75_stroke1 },
+ { 2, monoChar75_stroke2 },
+};
+
+/* char: 76 'L' */
+
+static const CoordRec monoChar76_stroke0[] = {
+ { 23.8095, 100 },
+ { 23.8095, 0 },
+};
+
+static const CoordRec monoChar76_stroke1[] = {
+ { 23.8095, 0 },
+ { 80.9524, 0 },
+};
+
+static const StrokeRec monoChar76[] = {
+ { 2, monoChar76_stroke0 },
+ { 2, monoChar76_stroke1 },
+};
+
+/* char: 77 'M' */
+
+static const CoordRec monoChar77_stroke0[] = {
+ { 14.2857, 100 },
+ { 14.2857, 0 },
+};
+
+static const CoordRec monoChar77_stroke1[] = {
+ { 14.2857, 100 },
+ { 52.3809, 0 },
+};
+
+static const CoordRec monoChar77_stroke2[] = {
+ { 90.4762, 100 },
+ { 52.3809, 0 },
+};
+
+static const CoordRec monoChar77_stroke3[] = {
+ { 90.4762, 100 },
+ { 90.4762, 0 },
+};
+
+static const StrokeRec monoChar77[] = {
+ { 2, monoChar77_stroke0 },
+ { 2, monoChar77_stroke1 },
+ { 2, monoChar77_stroke2 },
+ { 2, monoChar77_stroke3 },
+};
+
+/* char: 78 'N' */
+
+static const CoordRec monoChar78_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar78_stroke1[] = {
+ { 19.0476, 100 },
+ { 85.7143, 0 },
+};
+
+static const CoordRec monoChar78_stroke2[] = {
+ { 85.7143, 100 },
+ { 85.7143, 0 },
+};
+
+static const StrokeRec monoChar78[] = {
+ { 2, monoChar78_stroke0 },
+ { 2, monoChar78_stroke1 },
+ { 2, monoChar78_stroke2 },
+};
+
+/* char: 79 'O' */
+
+static const CoordRec monoChar79_stroke0[] = {
+ { 42.8571, 100 },
+ { 33.3333, 95.2381 },
+ { 23.8095, 85.7143 },
+ { 19.0476, 76.1905 },
+ { 14.2857, 61.9048 },
+ { 14.2857, 38.0952 },
+ { 19.0476, 23.8095 },
+ { 23.8095, 14.2857 },
+ { 33.3333, 4.7619 },
+ { 42.8571, 0 },
+ { 61.9047, 0 },
+ { 71.4286, 4.7619 },
+ { 80.9524, 14.2857 },
+ { 85.7143, 23.8095 },
+ { 90.4762, 38.0952 },
+ { 90.4762, 61.9048 },
+ { 85.7143, 76.1905 },
+ { 80.9524, 85.7143 },
+ { 71.4286, 95.2381 },
+ { 61.9047, 100 },
+ { 42.8571, 100 },
+};
+
+static const StrokeRec monoChar79[] = {
+ { 21, monoChar79_stroke0 },
+};
+
+/* char: 80 'P' */
+
+static const CoordRec monoChar80_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar80_stroke1[] = {
+ { 19.0476, 100 },
+ { 61.9047, 100 },
+ { 76.1905, 95.2381 },
+ { 80.9524, 90.4762 },
+ { 85.7143, 80.9524 },
+ { 85.7143, 66.6667 },
+ { 80.9524, 57.1429 },
+ { 76.1905, 52.381 },
+ { 61.9047, 47.619 },
+ { 19.0476, 47.619 },
+};
+
+static const StrokeRec monoChar80[] = {
+ { 2, monoChar80_stroke0 },
+ { 10, monoChar80_stroke1 },
+};
+
+/* char: 81 'Q' */
+
+static const CoordRec monoChar81_stroke0[] = {
+ { 42.8571, 100 },
+ { 33.3333, 95.2381 },
+ { 23.8095, 85.7143 },
+ { 19.0476, 76.1905 },
+ { 14.2857, 61.9048 },
+ { 14.2857, 38.0952 },
+ { 19.0476, 23.8095 },
+ { 23.8095, 14.2857 },
+ { 33.3333, 4.7619 },
+ { 42.8571, 0 },
+ { 61.9047, 0 },
+ { 71.4286, 4.7619 },
+ { 80.9524, 14.2857 },
+ { 85.7143, 23.8095 },
+ { 90.4762, 38.0952 },
+ { 90.4762, 61.9048 },
+ { 85.7143, 76.1905 },
+ { 80.9524, 85.7143 },
+ { 71.4286, 95.2381 },
+ { 61.9047, 100 },
+ { 42.8571, 100 },
+};
+
+static const CoordRec monoChar81_stroke1[] = {
+ { 57.1428, 19.0476 },
+ { 85.7143, -9.5238 },
+};
+
+static const StrokeRec monoChar81[] = {
+ { 21, monoChar81_stroke0 },
+ { 2, monoChar81_stroke1 },
+};
+
+/* char: 82 'R' */
+
+static const CoordRec monoChar82_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar82_stroke1[] = {
+ { 19.0476, 100 },
+ { 61.9047, 100 },
+ { 76.1905, 95.2381 },
+ { 80.9524, 90.4762 },
+ { 85.7143, 80.9524 },
+ { 85.7143, 71.4286 },
+ { 80.9524, 61.9048 },
+ { 76.1905, 57.1429 },
+ { 61.9047, 52.381 },
+ { 19.0476, 52.381 },
+};
+
+static const CoordRec monoChar82_stroke2[] = {
+ { 52.3809, 52.381 },
+ { 85.7143, 0 },
+};
+
+static const StrokeRec monoChar82[] = {
+ { 2, monoChar82_stroke0 },
+ { 10, monoChar82_stroke1 },
+ { 2, monoChar82_stroke2 },
+};
+
+/* char: 83 'S' */
+
+static const CoordRec monoChar83_stroke0[] = {
+ { 85.7143, 85.7143 },
+ { 76.1905, 95.2381 },
+ { 61.9047, 100 },
+ { 42.8571, 100 },
+ { 28.5714, 95.2381 },
+ { 19.0476, 85.7143 },
+ { 19.0476, 76.1905 },
+ { 23.8095, 66.6667 },
+ { 28.5714, 61.9048 },
+ { 38.0952, 57.1429 },
+ { 66.6666, 47.619 },
+ { 76.1905, 42.8571 },
+ { 80.9524, 38.0952 },
+ { 85.7143, 28.5714 },
+ { 85.7143, 14.2857 },
+ { 76.1905, 4.7619 },
+ { 61.9047, 0 },
+ { 42.8571, 0 },
+ { 28.5714, 4.7619 },
+ { 19.0476, 14.2857 },
+};
+
+static const StrokeRec monoChar83[] = {
+ { 20, monoChar83_stroke0 },
+};
+
+/* char: 84 'T' */
+
+static const CoordRec monoChar84_stroke0[] = {
+ { 52.3809, 100 },
+ { 52.3809, 0 },
+};
+
+static const CoordRec monoChar84_stroke1[] = {
+ { 19.0476, 100 },
+ { 85.7143, 100 },
+};
+
+static const StrokeRec monoChar84[] = {
+ { 2, monoChar84_stroke0 },
+ { 2, monoChar84_stroke1 },
+};
+
+/* char: 85 'U' */
+
+static const CoordRec monoChar85_stroke0[] = {
+ { 19.0476, 100 },
+ { 19.0476, 28.5714 },
+ { 23.8095, 14.2857 },
+ { 33.3333, 4.7619 },
+ { 47.619, 0 },
+ { 57.1428, 0 },
+ { 71.4286, 4.7619 },
+ { 80.9524, 14.2857 },
+ { 85.7143, 28.5714 },
+ { 85.7143, 100 },
+};
+
+static const StrokeRec monoChar85[] = {
+ { 10, monoChar85_stroke0 },
+};
+
+/* char: 86 'V' */
+
+static const CoordRec monoChar86_stroke0[] = {
+ { 14.2857, 100 },
+ { 52.3809, 0 },
+};
+
+static const CoordRec monoChar86_stroke1[] = {
+ { 90.4762, 100 },
+ { 52.3809, 0 },
+};
+
+static const StrokeRec monoChar86[] = {
+ { 2, monoChar86_stroke0 },
+ { 2, monoChar86_stroke1 },
+};
+
+/* char: 87 'W' */
+
+static const CoordRec monoChar87_stroke0[] = {
+ { 4.7619, 100 },
+ { 28.5714, 0 },
+};
+
+static const CoordRec monoChar87_stroke1[] = {
+ { 52.3809, 100 },
+ { 28.5714, 0 },
+};
+
+static const CoordRec monoChar87_stroke2[] = {
+ { 52.3809, 100 },
+ { 76.1905, 0 },
+};
+
+static const CoordRec monoChar87_stroke3[] = {
+ { 100, 100 },
+ { 76.1905, 0 },
+};
+
+static const StrokeRec monoChar87[] = {
+ { 2, monoChar87_stroke0 },
+ { 2, monoChar87_stroke1 },
+ { 2, monoChar87_stroke2 },
+ { 2, monoChar87_stroke3 },
+};
+
+/* char: 88 'X' */
+
+static const CoordRec monoChar88_stroke0[] = {
+ { 19.0476, 100 },
+ { 85.7143, 0 },
+};
+
+static const CoordRec monoChar88_stroke1[] = {
+ { 85.7143, 100 },
+ { 19.0476, 0 },
+};
+
+static const StrokeRec monoChar88[] = {
+ { 2, monoChar88_stroke0 },
+ { 2, monoChar88_stroke1 },
+};
+
+/* char: 89 'Y' */
+
+static const CoordRec monoChar89_stroke0[] = {
+ { 14.2857, 100 },
+ { 52.3809, 52.381 },
+ { 52.3809, 0 },
+};
+
+static const CoordRec monoChar89_stroke1[] = {
+ { 90.4762, 100 },
+ { 52.3809, 52.381 },
+};
+
+static const StrokeRec monoChar89[] = {
+ { 3, monoChar89_stroke0 },
+ { 2, monoChar89_stroke1 },
+};
+
+/* char: 90 'Z' */
+
+static const CoordRec monoChar90_stroke0[] = {
+ { 85.7143, 100 },
+ { 19.0476, 0 },
+};
+
+static const CoordRec monoChar90_stroke1[] = {
+ { 19.0476, 100 },
+ { 85.7143, 100 },
+};
+
+static const CoordRec monoChar90_stroke2[] = {
+ { 19.0476, 0 },
+ { 85.7143, 0 },
+};
+
+static const StrokeRec monoChar90[] = {
+ { 2, monoChar90_stroke0 },
+ { 2, monoChar90_stroke1 },
+ { 2, monoChar90_stroke2 },
+};
+
+/* char: 91 '[' */
+
+static const CoordRec monoChar91_stroke0[] = {
+ { 35.7143, 119.048 },
+ { 35.7143, -33.3333 },
+};
+
+static const CoordRec monoChar91_stroke1[] = {
+ { 40.4762, 119.048 },
+ { 40.4762, -33.3333 },
+};
+
+static const CoordRec monoChar91_stroke2[] = {
+ { 35.7143, 119.048 },
+ { 69.0476, 119.048 },
+};
+
+static const CoordRec monoChar91_stroke3[] = {
+ { 35.7143, -33.3333 },
+ { 69.0476, -33.3333 },
+};
+
+static const StrokeRec monoChar91[] = {
+ { 2, monoChar91_stroke0 },
+ { 2, monoChar91_stroke1 },
+ { 2, monoChar91_stroke2 },
+ { 2, monoChar91_stroke3 },
+};
+
+/* char: 92 '\' */
+
+static const CoordRec monoChar92_stroke0[] = {
+ { 19.0476, 100 },
+ { 85.7143, -14.2857 },
+};
+
+static const StrokeRec monoChar92[] = {
+ { 2, monoChar92_stroke0 },
+};
+
+/* char: 93 ']' */
+
+static const CoordRec monoChar93_stroke0[] = {
+ { 64.2857, 119.048 },
+ { 64.2857, -33.3333 },
+};
+
+static const CoordRec monoChar93_stroke1[] = {
+ { 69.0476, 119.048 },
+ { 69.0476, -33.3333 },
+};
+
+static const CoordRec monoChar93_stroke2[] = {
+ { 35.7143, 119.048 },
+ { 69.0476, 119.048 },
+};
+
+static const CoordRec monoChar93_stroke3[] = {
+ { 35.7143, -33.3333 },
+ { 69.0476, -33.3333 },
+};
+
+static const StrokeRec monoChar93[] = {
+ { 2, monoChar93_stroke0 },
+ { 2, monoChar93_stroke1 },
+ { 2, monoChar93_stroke2 },
+ { 2, monoChar93_stroke3 },
+};
+
+/* char: 94 '^' */
+
+static const CoordRec monoChar94_stroke0[] = {
+ { 52.3809, 109.524 },
+ { 14.2857, 42.8571 },
+};
+
+static const CoordRec monoChar94_stroke1[] = {
+ { 52.3809, 109.524 },
+ { 90.4762, 42.8571 },
+};
+
+static const StrokeRec monoChar94[] = {
+ { 2, monoChar94_stroke0 },
+ { 2, monoChar94_stroke1 },
+};
+
+/* char: 95 '_' */
+
+static const CoordRec monoChar95_stroke0[] = {
+ { 0, -33.3333 },
+ { 104.762, -33.3333 },
+ { 104.762, -28.5714 },
+ { 0, -28.5714 },
+ { 0, -33.3333 },
+};
+
+static const StrokeRec monoChar95[] = {
+ { 5, monoChar95_stroke0 },
+};
+
+/* char: 96 '`' */
+
+static const CoordRec monoChar96_stroke0[] = {
+ { 42.8572, 100 },
+ { 66.6667, 71.4286 },
+};
+
+static const CoordRec monoChar96_stroke1[] = {
+ { 42.8572, 100 },
+ { 38.0953, 95.2381 },
+ { 66.6667, 71.4286 },
+};
+
+static const StrokeRec monoChar96[] = {
+ { 2, monoChar96_stroke0 },
+ { 3, monoChar96_stroke1 },
+};
+
+/* char: 97 'a' */
+
+static const CoordRec monoChar97_stroke0[] = {
+ { 80.9524, 66.6667 },
+ { 80.9524, 0 },
+};
+
+static const CoordRec monoChar97_stroke1[] = {
+ { 80.9524, 52.381 },
+ { 71.4285, 61.9048 },
+ { 61.9047, 66.6667 },
+ { 47.619, 66.6667 },
+ { 38.0952, 61.9048 },
+ { 28.5714, 52.381 },
+ { 23.8095, 38.0952 },
+ { 23.8095, 28.5714 },
+ { 28.5714, 14.2857 },
+ { 38.0952, 4.7619 },
+ { 47.619, 0 },
+ { 61.9047, 0 },
+ { 71.4285, 4.7619 },
+ { 80.9524, 14.2857 },
+};
+
+static const StrokeRec monoChar97[] = {
+ { 2, monoChar97_stroke0 },
+ { 14, monoChar97_stroke1 },
+};
+
+/* char: 98 'b' */
+
+static const CoordRec monoChar98_stroke0[] = {
+ { 23.8095, 100 },
+ { 23.8095, 0 },
+};
+
+static const CoordRec monoChar98_stroke1[] = {
+ { 23.8095, 52.381 },
+ { 33.3333, 61.9048 },
+ { 42.8571, 66.6667 },
+ { 57.1428, 66.6667 },
+ { 66.6666, 61.9048 },
+ { 76.1905, 52.381 },
+ { 80.9524, 38.0952 },
+ { 80.9524, 28.5714 },
+ { 76.1905, 14.2857 },
+ { 66.6666, 4.7619 },
+ { 57.1428, 0 },
+ { 42.8571, 0 },
+ { 33.3333, 4.7619 },
+ { 23.8095, 14.2857 },
+};
+
+static const StrokeRec monoChar98[] = {
+ { 2, monoChar98_stroke0 },
+ { 14, monoChar98_stroke1 },
+};
+
+/* char: 99 'c' */
+
+static const CoordRec monoChar99_stroke0[] = {
+ { 80.9524, 52.381 },
+ { 71.4285, 61.9048 },
+ { 61.9047, 66.6667 },
+ { 47.619, 66.6667 },
+ { 38.0952, 61.9048 },
+ { 28.5714, 52.381 },
+ { 23.8095, 38.0952 },
+ { 23.8095, 28.5714 },
+ { 28.5714, 14.2857 },
+ { 38.0952, 4.7619 },
+ { 47.619, 0 },
+ { 61.9047, 0 },
+ { 71.4285, 4.7619 },
+ { 80.9524, 14.2857 },
+};
+
+static const StrokeRec monoChar99[] = {
+ { 14, monoChar99_stroke0 },
+};
+
+/* char: 100 'd' */
+
+static const CoordRec monoChar100_stroke0[] = {
+ { 80.9524, 100 },
+ { 80.9524, 0 },
+};
+
+static const CoordRec monoChar100_stroke1[] = {
+ { 80.9524, 52.381 },
+ { 71.4285, 61.9048 },
+ { 61.9047, 66.6667 },
+ { 47.619, 66.6667 },
+ { 38.0952, 61.9048 },
+ { 28.5714, 52.381 },
+ { 23.8095, 38.0952 },
+ { 23.8095, 28.5714 },
+ { 28.5714, 14.2857 },
+ { 38.0952, 4.7619 },
+ { 47.619, 0 },
+ { 61.9047, 0 },
+ { 71.4285, 4.7619 },
+ { 80.9524, 14.2857 },
+};
+
+static const StrokeRec monoChar100[] = {
+ { 2, monoChar100_stroke0 },
+ { 14, monoChar100_stroke1 },
+};
+
+/* char: 101 'e' */
+
+static const CoordRec monoChar101_stroke0[] = {
+ { 23.8095, 38.0952 },
+ { 80.9524, 38.0952 },
+ { 80.9524, 47.619 },
+ { 76.1905, 57.1429 },
+ { 71.4285, 61.9048 },
+ { 61.9047, 66.6667 },
+ { 47.619, 66.6667 },
+ { 38.0952, 61.9048 },
+ { 28.5714, 52.381 },
+ { 23.8095, 38.0952 },
+ { 23.8095, 28.5714 },
+ { 28.5714, 14.2857 },
+ { 38.0952, 4.7619 },
+ { 47.619, 0 },
+ { 61.9047, 0 },
+ { 71.4285, 4.7619 },
+ { 80.9524, 14.2857 },
+};
+
+static const StrokeRec monoChar101[] = {
+ { 17, monoChar101_stroke0 },
+};
+
+/* char: 102 'f' */
+
+static const CoordRec monoChar102_stroke0[] = {
+ { 71.4286, 100 },
+ { 61.9048, 100 },
+ { 52.381, 95.2381 },
+ { 47.6191, 80.9524 },
+ { 47.6191, 0 },
+};
+
+static const CoordRec monoChar102_stroke1[] = {
+ { 33.3334, 66.6667 },
+ { 66.6667, 66.6667 },
+};
+
+static const StrokeRec monoChar102[] = {
+ { 5, monoChar102_stroke0 },
+ { 2, monoChar102_stroke1 },
+};
+
+/* char: 103 'g' */
+
+static const CoordRec monoChar103_stroke0[] = {
+ { 80.9524, 66.6667 },
+ { 80.9524, -9.5238 },
+ { 76.1905, -23.8095 },
+ { 71.4285, -28.5714 },
+ { 61.9047, -33.3333 },
+ { 47.619, -33.3333 },
+ { 38.0952, -28.5714 },
+};
+
+static const CoordRec monoChar103_stroke1[] = {
+ { 80.9524, 52.381 },
+ { 71.4285, 61.9048 },
+ { 61.9047, 66.6667 },
+ { 47.619, 66.6667 },
+ { 38.0952, 61.9048 },
+ { 28.5714, 52.381 },
+ { 23.8095, 38.0952 },
+ { 23.8095, 28.5714 },
+ { 28.5714, 14.2857 },
+ { 38.0952, 4.7619 },
+ { 47.619, 0 },
+ { 61.9047, 0 },
+ { 71.4285, 4.7619 },
+ { 80.9524, 14.2857 },
+};
+
+static const StrokeRec monoChar103[] = {
+ { 7, monoChar103_stroke0 },
+ { 14, monoChar103_stroke1 },
+};
+
+/* char: 104 'h' */
+
+static const CoordRec monoChar104_stroke0[] = {
+ { 26.1905, 100 },
+ { 26.1905, 0 },
+};
+
+static const CoordRec monoChar104_stroke1[] = {
+ { 26.1905, 47.619 },
+ { 40.4762, 61.9048 },
+ { 50, 66.6667 },
+ { 64.2857, 66.6667 },
+ { 73.8095, 61.9048 },
+ { 78.5715, 47.619 },
+ { 78.5715, 0 },
+};
+
+static const StrokeRec monoChar104[] = {
+ { 2, monoChar104_stroke0 },
+ { 7, monoChar104_stroke1 },
+};
+
+/* char: 105 'i' */
+
+static const CoordRec monoChar105_stroke0[] = {
+ { 47.6191, 100 },
+ { 52.381, 95.2381 },
+ { 57.1429, 100 },
+ { 52.381, 104.762 },
+ { 47.6191, 100 },
+};
+
+static const CoordRec monoChar105_stroke1[] = {
+ { 52.381, 66.6667 },
+ { 52.381, 0 },
+};
+
+static const StrokeRec monoChar105[] = {
+ { 5, monoChar105_stroke0 },
+ { 2, monoChar105_stroke1 },
+};
+
+/* char: 106 'j' */
+
+static const CoordRec monoChar106_stroke0[] = {
+ { 57.1429, 100 },
+ { 61.9048, 95.2381 },
+ { 66.6667, 100 },
+ { 61.9048, 104.762 },
+ { 57.1429, 100 },
+};
+
+static const CoordRec monoChar106_stroke1[] = {
+ { 61.9048, 66.6667 },
+ { 61.9048, -14.2857 },
+ { 57.1429, -28.5714 },
+ { 47.6191, -33.3333 },
+ { 38.0953, -33.3333 },
+};
+
+static const StrokeRec monoChar106[] = {
+ { 5, monoChar106_stroke0 },
+ { 5, monoChar106_stroke1 },
+};
+
+/* char: 107 'k' */
+
+static const CoordRec monoChar107_stroke0[] = {
+ { 26.1905, 100 },
+ { 26.1905, 0 },
+};
+
+static const CoordRec monoChar107_stroke1[] = {
+ { 73.8095, 66.6667 },
+ { 26.1905, 19.0476 },
+};
+
+static const CoordRec monoChar107_stroke2[] = {
+ { 45.2381, 38.0952 },
+ { 78.5715, 0 },
+};
+
+static const StrokeRec monoChar107[] = {
+ { 2, monoChar107_stroke0 },
+ { 2, monoChar107_stroke1 },
+ { 2, monoChar107_stroke2 },
+};
+
+/* char: 108 'l' */
+
+static const CoordRec monoChar108_stroke0[] = {
+ { 52.381, 100 },
+ { 52.381, 0 },
+};
+
+static const StrokeRec monoChar108[] = {
+ { 2, monoChar108_stroke0 },
+};
+
+/* char: 109 'm' */
+
+static const CoordRec monoChar109_stroke0[] = {
+ { 0, 66.6667 },
+ { 0, 0 },
+};
+
+static const CoordRec monoChar109_stroke1[] = {
+ { 0, 47.619 },
+ { 14.2857, 61.9048 },
+ { 23.8095, 66.6667 },
+ { 38.0952, 66.6667 },
+ { 47.619, 61.9048 },
+ { 52.381, 47.619 },
+ { 52.381, 0 },
+};
+
+static const CoordRec monoChar109_stroke2[] = {
+ { 52.381, 47.619 },
+ { 66.6667, 61.9048 },
+ { 76.1905, 66.6667 },
+ { 90.4762, 66.6667 },
+ { 100, 61.9048 },
+ { 104.762, 47.619 },
+ { 104.762, 0 },
+};
+
+static const StrokeRec monoChar109[] = {
+ { 2, monoChar109_stroke0 },
+ { 7, monoChar109_stroke1 },
+ { 7, monoChar109_stroke2 },
+};
+
+/* char: 110 'n' */
+
+static const CoordRec monoChar110_stroke0[] = {
+ { 26.1905, 66.6667 },
+ { 26.1905, 0 },
+};
+
+static const CoordRec monoChar110_stroke1[] = {
+ { 26.1905, 47.619 },
+ { 40.4762, 61.9048 },
+ { 50, 66.6667 },
+ { 64.2857, 66.6667 },
+ { 73.8095, 61.9048 },
+ { 78.5715, 47.619 },
+ { 78.5715, 0 },
+};
+
+static const StrokeRec monoChar110[] = {
+ { 2, monoChar110_stroke0 },
+ { 7, monoChar110_stroke1 },
+};
+
+/* char: 111 'o' */
+
+static const CoordRec monoChar111_stroke0[] = {
+ { 45.2381, 66.6667 },
+ { 35.7143, 61.9048 },
+ { 26.1905, 52.381 },
+ { 21.4286, 38.0952 },
+ { 21.4286, 28.5714 },
+ { 26.1905, 14.2857 },
+ { 35.7143, 4.7619 },
+ { 45.2381, 0 },
+ { 59.5238, 0 },
+ { 69.0476, 4.7619 },
+ { 78.5714, 14.2857 },
+ { 83.3334, 28.5714 },
+ { 83.3334, 38.0952 },
+ { 78.5714, 52.381 },
+ { 69.0476, 61.9048 },
+ { 59.5238, 66.6667 },
+ { 45.2381, 66.6667 },
+};
+
+static const StrokeRec monoChar111[] = {
+ { 17, monoChar111_stroke0 },
+};
+
+/* char: 112 'p' */
+
+static const CoordRec monoChar112_stroke0[] = {
+ { 23.8095, 66.6667 },
+ { 23.8095, -33.3333 },
+};
+
+static const CoordRec monoChar112_stroke1[] = {
+ { 23.8095, 52.381 },
+ { 33.3333, 61.9048 },
+ { 42.8571, 66.6667 },
+ { 57.1428, 66.6667 },
+ { 66.6666, 61.9048 },
+ { 76.1905, 52.381 },
+ { 80.9524, 38.0952 },
+ { 80.9524, 28.5714 },
+ { 76.1905, 14.2857 },
+ { 66.6666, 4.7619 },
+ { 57.1428, 0 },
+ { 42.8571, 0 },
+ { 33.3333, 4.7619 },
+ { 23.8095, 14.2857 },
+};
+
+static const StrokeRec monoChar112[] = {
+ { 2, monoChar112_stroke0 },
+ { 14, monoChar112_stroke1 },
+};
+
+/* char: 113 'q' */
+
+static const CoordRec monoChar113_stroke0[] = {
+ { 80.9524, 66.6667 },
+ { 80.9524, -33.3333 },
+};
+
+static const CoordRec monoChar113_stroke1[] = {
+ { 80.9524, 52.381 },
+ { 71.4285, 61.9048 },
+ { 61.9047, 66.6667 },
+ { 47.619, 66.6667 },
+ { 38.0952, 61.9048 },
+ { 28.5714, 52.381 },
+ { 23.8095, 38.0952 },
+ { 23.8095, 28.5714 },
+ { 28.5714, 14.2857 },
+ { 38.0952, 4.7619 },
+ { 47.619, 0 },
+ { 61.9047, 0 },
+ { 71.4285, 4.7619 },
+ { 80.9524, 14.2857 },
+};
+
+static const StrokeRec monoChar113[] = {
+ { 2, monoChar113_stroke0 },
+ { 14, monoChar113_stroke1 },
+};
+
+/* char: 114 'r' */
+
+static const CoordRec monoChar114_stroke0[] = {
+ { 33.3334, 66.6667 },
+ { 33.3334, 0 },
+};
+
+static const CoordRec monoChar114_stroke1[] = {
+ { 33.3334, 38.0952 },
+ { 38.0953, 52.381 },
+ { 47.6191, 61.9048 },
+ { 57.1429, 66.6667 },
+ { 71.4286, 66.6667 },
+};
+
+static const StrokeRec monoChar114[] = {
+ { 2, monoChar114_stroke0 },
+ { 5, monoChar114_stroke1 },
+};
+
+/* char: 115 's' */
+
+static const CoordRec monoChar115_stroke0[] = {
+ { 78.5715, 52.381 },
+ { 73.8095, 61.9048 },
+ { 59.5238, 66.6667 },
+ { 45.2381, 66.6667 },
+ { 30.9524, 61.9048 },
+ { 26.1905, 52.381 },
+ { 30.9524, 42.8571 },
+ { 40.4762, 38.0952 },
+ { 64.2857, 33.3333 },
+ { 73.8095, 28.5714 },
+ { 78.5715, 19.0476 },
+ { 78.5715, 14.2857 },
+ { 73.8095, 4.7619 },
+ { 59.5238, 0 },
+ { 45.2381, 0 },
+ { 30.9524, 4.7619 },
+ { 26.1905, 14.2857 },
+};
+
+static const StrokeRec monoChar115[] = {
+ { 17, monoChar115_stroke0 },
+};
+
+/* char: 116 't' */
+
+static const CoordRec monoChar116_stroke0[] = {
+ { 47.6191, 100 },
+ { 47.6191, 19.0476 },
+ { 52.381, 4.7619 },
+ { 61.9048, 0 },
+ { 71.4286, 0 },
+};
+
+static const CoordRec monoChar116_stroke1[] = {
+ { 33.3334, 66.6667 },
+ { 66.6667, 66.6667 },
+};
+
+static const StrokeRec monoChar116[] = {
+ { 5, monoChar116_stroke0 },
+ { 2, monoChar116_stroke1 },
+};
+
+/* char: 117 'u' */
+
+static const CoordRec monoChar117_stroke0[] = {
+ { 26.1905, 66.6667 },
+ { 26.1905, 19.0476 },
+ { 30.9524, 4.7619 },
+ { 40.4762, 0 },
+ { 54.7619, 0 },
+ { 64.2857, 4.7619 },
+ { 78.5715, 19.0476 },
+};
+
+static const CoordRec monoChar117_stroke1[] = {
+ { 78.5715, 66.6667 },
+ { 78.5715, 0 },
+};
+
+static const StrokeRec monoChar117[] = {
+ { 7, monoChar117_stroke0 },
+ { 2, monoChar117_stroke1 },
+};
+
+/* char: 118 'v' */
+
+static const CoordRec monoChar118_stroke0[] = {
+ { 23.8095, 66.6667 },
+ { 52.3809, 0 },
+};
+
+static const CoordRec monoChar118_stroke1[] = {
+ { 80.9524, 66.6667 },
+ { 52.3809, 0 },
+};
+
+static const StrokeRec monoChar118[] = {
+ { 2, monoChar118_stroke0 },
+ { 2, monoChar118_stroke1 },
+};
+
+/* char: 119 'w' */
+
+static const CoordRec monoChar119_stroke0[] = {
+ { 14.2857, 66.6667 },
+ { 33.3333, 0 },
+};
+
+static const CoordRec monoChar119_stroke1[] = {
+ { 52.3809, 66.6667 },
+ { 33.3333, 0 },
+};
+
+static const CoordRec monoChar119_stroke2[] = {
+ { 52.3809, 66.6667 },
+ { 71.4286, 0 },
+};
+
+static const CoordRec monoChar119_stroke3[] = {
+ { 90.4762, 66.6667 },
+ { 71.4286, 0 },
+};
+
+static const StrokeRec monoChar119[] = {
+ { 2, monoChar119_stroke0 },
+ { 2, monoChar119_stroke1 },
+ { 2, monoChar119_stroke2 },
+ { 2, monoChar119_stroke3 },
+};
+
+/* char: 120 'x' */
+
+static const CoordRec monoChar120_stroke0[] = {
+ { 26.1905, 66.6667 },
+ { 78.5715, 0 },
+};
+
+static const CoordRec monoChar120_stroke1[] = {
+ { 78.5715, 66.6667 },
+ { 26.1905, 0 },
+};
+
+static const StrokeRec monoChar120[] = {
+ { 2, monoChar120_stroke0 },
+ { 2, monoChar120_stroke1 },
+};
+
+/* char: 121 'y' */
+
+static const CoordRec monoChar121_stroke0[] = {
+ { 26.1905, 66.6667 },
+ { 54.7619, 0 },
+};
+
+static const CoordRec monoChar121_stroke1[] = {
+ { 83.3334, 66.6667 },
+ { 54.7619, 0 },
+ { 45.2381, -19.0476 },
+ { 35.7143, -28.5714 },
+ { 26.1905, -33.3333 },
+ { 21.4286, -33.3333 },
+};
+
+static const StrokeRec monoChar121[] = {
+ { 2, monoChar121_stroke0 },
+ { 6, monoChar121_stroke1 },
+};
+
+/* char: 122 'z' */
+
+static const CoordRec monoChar122_stroke0[] = {
+ { 78.5715, 66.6667 },
+ { 26.1905, 0 },
+};
+
+static const CoordRec monoChar122_stroke1[] = {
+ { 26.1905, 66.6667 },
+ { 78.5715, 66.6667 },
+};
+
+static const CoordRec monoChar122_stroke2[] = {
+ { 26.1905, 0 },
+ { 78.5715, 0 },
+};
+
+static const StrokeRec monoChar122[] = {
+ { 2, monoChar122_stroke0 },
+ { 2, monoChar122_stroke1 },
+ { 2, monoChar122_stroke2 },
+};
+
+/* char: 123 '{' */
+
+static const CoordRec monoChar123_stroke0[] = {
+ { 64.2857, 119.048 },
+ { 54.7619, 114.286 },
+ { 50, 109.524 },
+ { 45.2381, 100 },
+ { 45.2381, 90.4762 },
+ { 50, 80.9524 },
+ { 54.7619, 76.1905 },
+ { 59.5238, 66.6667 },
+ { 59.5238, 57.1429 },
+ { 50, 47.619 },
+};
+
+static const CoordRec monoChar123_stroke1[] = {
+ { 54.7619, 114.286 },
+ { 50, 104.762 },
+ { 50, 95.2381 },
+ { 54.7619, 85.7143 },
+ { 59.5238, 80.9524 },
+ { 64.2857, 71.4286 },
+ { 64.2857, 61.9048 },
+ { 59.5238, 52.381 },
+ { 40.4762, 42.8571 },
+ { 59.5238, 33.3333 },
+ { 64.2857, 23.8095 },
+ { 64.2857, 14.2857 },
+ { 59.5238, 4.7619 },
+ { 54.7619, 0 },
+ { 50, -9.5238 },
+ { 50, -19.0476 },
+ { 54.7619, -28.5714 },
+};
+
+static const CoordRec monoChar123_stroke2[] = {
+ { 50, 38.0952 },
+ { 59.5238, 28.5714 },
+ { 59.5238, 19.0476 },
+ { 54.7619, 9.5238 },
+ { 50, 4.7619 },
+ { 45.2381, -4.7619 },
+ { 45.2381, -14.2857 },
+ { 50, -23.8095 },
+ { 54.7619, -28.5714 },
+ { 64.2857, -33.3333 },
+};
+
+static const StrokeRec monoChar123[] = {
+ { 10, monoChar123_stroke0 },
+ { 17, monoChar123_stroke1 },
+ { 10, monoChar123_stroke2 },
+};
+
+/* char: 124 '|' */
+
+static const CoordRec monoChar124_stroke0[] = {
+ { 52.381, 119.048 },
+ { 52.381, -33.3333 },
+};
+
+static const StrokeRec monoChar124[] = {
+ { 2, monoChar124_stroke0 },
+};
+
+/* char: 125 '}' */
+
+static const CoordRec monoChar125_stroke0[] = {
+ { 40.4762, 119.048 },
+ { 50, 114.286 },
+ { 54.7619, 109.524 },
+ { 59.5238, 100 },
+ { 59.5238, 90.4762 },
+ { 54.7619, 80.9524 },
+ { 50, 76.1905 },
+ { 45.2381, 66.6667 },
+ { 45.2381, 57.1429 },
+ { 54.7619, 47.619 },
+};
+
+static const CoordRec monoChar125_stroke1[] = {
+ { 50, 114.286 },
+ { 54.7619, 104.762 },
+ { 54.7619, 95.2381 },
+ { 50, 85.7143 },
+ { 45.2381, 80.9524 },
+ { 40.4762, 71.4286 },
+ { 40.4762, 61.9048 },
+ { 45.2381, 52.381 },
+ { 64.2857, 42.8571 },
+ { 45.2381, 33.3333 },
+ { 40.4762, 23.8095 },
+ { 40.4762, 14.2857 },
+ { 45.2381, 4.7619 },
+ { 50, 0 },
+ { 54.7619, -9.5238 },
+ { 54.7619, -19.0476 },
+ { 50, -28.5714 },
+};
+
+static const CoordRec monoChar125_stroke2[] = {
+ { 54.7619, 38.0952 },
+ { 45.2381, 28.5714 },
+ { 45.2381, 19.0476 },
+ { 50, 9.5238 },
+ { 54.7619, 4.7619 },
+ { 59.5238, -4.7619 },
+ { 59.5238, -14.2857 },
+ { 54.7619, -23.8095 },
+ { 50, -28.5714 },
+ { 40.4762, -33.3333 },
+};
+
+static const StrokeRec monoChar125[] = {
+ { 10, monoChar125_stroke0 },
+ { 17, monoChar125_stroke1 },
+ { 10, monoChar125_stroke2 },
+};
+
+/* char: 126 '~' */
+
+static const CoordRec monoChar126_stroke0[] = {
+ { 9.5238, 28.5714 },
+ { 9.5238, 38.0952 },
+ { 14.2857, 52.381 },
+ { 23.8095, 57.1429 },
+ { 33.3333, 57.1429 },
+ { 42.8571, 52.381 },
+ { 61.9048, 38.0952 },
+ { 71.4286, 33.3333 },
+ { 80.9524, 33.3333 },
+ { 90.4762, 38.0952 },
+ { 95.2381, 47.619 },
+};
+
+static const CoordRec monoChar126_stroke1[] = {
+ { 9.5238, 38.0952 },
+ { 14.2857, 47.619 },
+ { 23.8095, 52.381 },
+ { 33.3333, 52.381 },
+ { 42.8571, 47.619 },
+ { 61.9048, 33.3333 },
+ { 71.4286, 28.5714 },
+ { 80.9524, 28.5714 },
+ { 90.4762, 33.3333 },
+ { 95.2381, 47.619 },
+ { 95.2381, 57.1429 },
+};
+
+static const StrokeRec monoChar126[] = {
+ { 11, monoChar126_stroke0 },
+ { 11, monoChar126_stroke1 },
+};
+
+/* char: 127 */
+
+static const CoordRec monoChar127_stroke0[] = {
+ { 71.4286, 100 },
+ { 33.3333, -33.3333 },
+};
+
+static const CoordRec monoChar127_stroke1[] = {
+ { 47.619, 66.6667 },
+ { 33.3333, 61.9048 },
+ { 23.8095, 52.381 },
+ { 19.0476, 38.0952 },
+ { 19.0476, 23.8095 },
+ { 23.8095, 14.2857 },
+ { 33.3333, 4.7619 },
+ { 47.619, 0 },
+ { 57.1428, 0 },
+ { 71.4286, 4.7619 },
+ { 80.9524, 14.2857 },
+ { 85.7143, 28.5714 },
+ { 85.7143, 42.8571 },
+ { 80.9524, 52.381 },
+ { 71.4286, 61.9048 },
+ { 57.1428, 66.6667 },
+ { 47.619, 66.6667 },
+};
+
+static const StrokeRec monoChar127[] = {
+ { 2, monoChar127_stroke0 },
+ { 17, monoChar127_stroke1 },
+};
+
+static const StrokeCharRec monoChars[] = {
+ { 0, /* monoChar0 */ 0, 0, 0 },
+ { 0, /* monoChar1 */ 0, 0, 0 },
+ { 0, /* monoChar2 */ 0, 0, 0 },
+ { 0, /* monoChar3 */ 0, 0, 0 },
+ { 0, /* monoChar4 */ 0, 0, 0 },
+ { 0, /* monoChar5 */ 0, 0, 0 },
+ { 0, /* monoChar6 */ 0, 0, 0 },
+ { 0, /* monoChar7 */ 0, 0, 0 },
+ { 0, /* monoChar8 */ 0, 0, 0 },
+ { 0, /* monoChar9 */ 0, 0, 0 },
+ { 0, /* monoChar10 */ 0, 0, 0 },
+ { 0, /* monoChar11 */ 0, 0, 0 },
+ { 0, /* monoChar12 */ 0, 0, 0 },
+ { 0, /* monoChar13 */ 0, 0, 0 },
+ { 0, /* monoChar14 */ 0, 0, 0 },
+ { 0, /* monoChar15 */ 0, 0, 0 },
+ { 0, /* monoChar16 */ 0, 0, 0 },
+ { 0, /* monoChar17 */ 0, 0, 0 },
+ { 0, /* monoChar18 */ 0, 0, 0 },
+ { 0, /* monoChar19 */ 0, 0, 0 },
+ { 0, /* monoChar20 */ 0, 0, 0 },
+ { 0, /* monoChar21 */ 0, 0, 0 },
+ { 0, /* monoChar22 */ 0, 0, 0 },
+ { 0, /* monoChar23 */ 0, 0, 0 },
+ { 0, /* monoChar24 */ 0, 0, 0 },
+ { 0, /* monoChar25 */ 0, 0, 0 },
+ { 0, /* monoChar26 */ 0, 0, 0 },
+ { 0, /* monoChar27 */ 0, 0, 0 },
+ { 0, /* monoChar28 */ 0, 0, 0 },
+ { 0, /* monoChar29 */ 0, 0, 0 },
+ { 0, /* monoChar30 */ 0, 0, 0 },
+ { 0, /* monoChar31 */ 0, 0, 0 },
+ { 0, /* monoChar32 */ 0, 52.381, 104.762 },
+ { 2, monoChar33, 52.381, 104.762 },
+ { 2, monoChar34, 52.381, 104.762 },
+ { 4, monoChar35, 52.381, 104.762 },
+ { 3, monoChar36, 52.381, 104.762 },
+ { 3, monoChar37, 52.381, 104.762 },
+ { 1, monoChar38, 52.381, 104.762 },
+ { 1, monoChar39, 52.381, 104.762 },
+ { 1, monoChar40, 52.381, 104.762 },
+ { 1, monoChar41, 52.381, 104.762 },
+ { 3, monoChar42, 52.381, 104.762 },
+ { 2, monoChar43, 52.381, 104.762 },
+ { 1, monoChar44, 52.381, 104.762 },
+ { 1, monoChar45, 52.381, 104.762 },
+ { 1, monoChar46, 52.381, 104.762 },
+ { 1, monoChar47, 52.381, 104.762 },
+ { 1, monoChar48, 52.381, 104.762 },
+ { 1, monoChar49, 52.381, 104.762 },
+ { 1, monoChar50, 52.381, 104.762 },
+ { 1, monoChar51, 52.381, 104.762 },
+ { 2, monoChar52, 52.381, 104.762 },
+ { 1, monoChar53, 52.381, 104.762 },
+ { 1, monoChar54, 52.381, 104.762 },
+ { 2, monoChar55, 52.381, 104.762 },
+ { 1, monoChar56, 52.381, 104.762 },
+ { 1, monoChar57, 52.381, 104.762 },
+ { 2, monoChar58, 52.381, 104.762 },
+ { 2, monoChar59, 52.381, 104.762 },
+ { 1, monoChar60, 52.381, 104.762 },
+ { 2, monoChar61, 52.381, 104.762 },
+ { 1, monoChar62, 52.381, 104.762 },
+ { 2, monoChar63, 52.381, 104.762 },
+ { 2, monoChar64, 52.381, 104.762 },
+ { 3, monoChar65, 52.381, 104.762 },
+ { 3, monoChar66, 52.381, 104.762 },
+ { 1, monoChar67, 52.381, 104.762 },
+ { 2, monoChar68, 52.381, 104.762 },
+ { 4, monoChar69, 52.381, 104.762 },
+ { 3, monoChar70, 52.381, 104.762 },
+ { 2, monoChar71, 52.381, 104.762 },
+ { 3, monoChar72, 52.381, 104.762 },
+ { 1, monoChar73, 52.381, 104.762 },
+ { 1, monoChar74, 52.381, 104.762 },
+ { 3, monoChar75, 52.381, 104.762 },
+ { 2, monoChar76, 52.381, 104.762 },
+ { 4, monoChar77, 52.381, 104.762 },
+ { 3, monoChar78, 52.381, 104.762 },
+ { 1, monoChar79, 52.381, 104.762 },
+ { 2, monoChar80, 52.381, 104.762 },
+ { 2, monoChar81, 52.381, 104.762 },
+ { 3, monoChar82, 52.381, 104.762 },
+ { 1, monoChar83, 52.381, 104.762 },
+ { 2, monoChar84, 52.381, 104.762 },
+ { 1, monoChar85, 52.381, 104.762 },
+ { 2, monoChar86, 52.381, 104.762 },
+ { 4, monoChar87, 52.381, 104.762 },
+ { 2, monoChar88, 52.381, 104.762 },
+ { 2, monoChar89, 52.381, 104.762 },
+ { 3, monoChar90, 52.381, 104.762 },
+ { 4, monoChar91, 52.381, 104.762 },
+ { 1, monoChar92, 52.381, 104.762 },
+ { 4, monoChar93, 52.381, 104.762 },
+ { 2, monoChar94, 52.381, 104.762 },
+ { 1, monoChar95, 52.381, 104.762 },
+ { 2, monoChar96, 52.381, 104.762 },
+ { 2, monoChar97, 52.381, 104.762 },
+ { 2, monoChar98, 52.381, 104.762 },
+ { 1, monoChar99, 52.381, 104.762 },
+ { 2, monoChar100, 52.381, 104.762 },
+ { 1, monoChar101, 52.381, 104.762 },
+ { 2, monoChar102, 52.381, 104.762 },
+ { 2, monoChar103, 52.381, 104.762 },
+ { 2, monoChar104, 52.381, 104.762 },
+ { 2, monoChar105, 52.381, 104.762 },
+ { 2, monoChar106, 52.381, 104.762 },
+ { 3, monoChar107, 52.381, 104.762 },
+ { 1, monoChar108, 52.381, 104.762 },
+ { 3, monoChar109, 52.381, 104.762 },
+ { 2, monoChar110, 52.381, 104.762 },
+ { 1, monoChar111, 52.381, 104.762 },
+ { 2, monoChar112, 52.381, 104.762 },
+ { 2, monoChar113, 52.381, 104.762 },
+ { 2, monoChar114, 52.381, 104.762 },
+ { 1, monoChar115, 52.381, 104.762 },
+ { 2, monoChar116, 52.381, 104.762 },
+ { 2, monoChar117, 52.381, 104.762 },
+ { 2, monoChar118, 52.381, 104.762 },
+ { 4, monoChar119, 52.381, 104.762 },
+ { 2, monoChar120, 52.381, 104.762 },
+ { 2, monoChar121, 52.381, 104.762 },
+ { 3, monoChar122, 52.381, 104.762 },
+ { 3, monoChar123, 52.381, 104.762 },
+ { 1, monoChar124, 52.381, 104.762 },
+ { 3, monoChar125, 52.381, 104.762 },
+ { 2, monoChar126, 52.381, 104.762 },
+ { 2, monoChar127, 52.381, 104.762 },
+};
+
+static
+StrokeFontRec glutStrokeMonoRoman = { "Roman", 128, monoChars, 119.048, -33.3333 };
+
diff --git a/hacks/glx/glut_roman.h b/hacks/glx/glut_roman.h
new file mode 100644
index 0000000..93f9532
--- /dev/null
+++ b/hacks/glx/glut_roman.h
@@ -0,0 +1,2455 @@
+/* Roman simplex stroke font copyright (c) 1989, 1990, 1991
+ * by Sun Microsystems, Inc. and the X Consortium.
+ * Originally part of the GLUT library by Mark J. Kilgard.
+ */
+
+#include "glutstroke.h"
+
+/* char: 33 '!' */
+
+static const CoordRec char33_stroke0[] = {
+ { 13.3819, 100 },
+ { 13.3819, 33.3333 },
+};
+
+static const CoordRec char33_stroke1[] = {
+ { 13.3819, 9.5238 },
+ { 8.62, 4.7619 },
+ { 13.3819, 0 },
+ { 18.1438, 4.7619 },
+ { 13.3819, 9.5238 },
+};
+
+static const StrokeRec char33[] = {
+ { 2, char33_stroke0 },
+ { 5, char33_stroke1 },
+};
+
+/* char: 34 '"' */
+
+static const CoordRec char34_stroke0[] = {
+ { 4.02, 100 },
+ { 4.02, 66.6667 },
+};
+
+static const CoordRec char34_stroke1[] = {
+ { 42.1152, 100 },
+ { 42.1152, 66.6667 },
+};
+
+static const StrokeRec char34[] = {
+ { 2, char34_stroke0 },
+ { 2, char34_stroke1 },
+};
+
+/* char: 35 '#' */
+
+static const CoordRec char35_stroke0[] = {
+ { 41.2952, 119.048 },
+ { 7.9619, -33.3333 },
+};
+
+static const CoordRec char35_stroke1[] = {
+ { 69.8667, 119.048 },
+ { 36.5333, -33.3333 },
+};
+
+static const CoordRec char35_stroke2[] = {
+ { 7.9619, 57.1429 },
+ { 74.6286, 57.1429 },
+};
+
+static const CoordRec char35_stroke3[] = {
+ { 3.2, 28.5714 },
+ { 69.8667, 28.5714 },
+};
+
+static const StrokeRec char35[] = {
+ { 2, char35_stroke0 },
+ { 2, char35_stroke1 },
+ { 2, char35_stroke2 },
+ { 2, char35_stroke3 },
+};
+
+/* char: 36 '$' */
+
+static const CoordRec char36_stroke0[] = {
+ { 28.6295, 119.048 },
+ { 28.6295, -19.0476 },
+};
+
+static const CoordRec char36_stroke1[] = {
+ { 47.6771, 119.048 },
+ { 47.6771, -19.0476 },
+};
+
+static const CoordRec char36_stroke2[] = {
+ { 71.4867, 85.7143 },
+ { 61.9629, 95.2381 },
+ { 47.6771, 100 },
+ { 28.6295, 100 },
+ { 14.3438, 95.2381 },
+ { 4.82, 85.7143 },
+ { 4.82, 76.1905 },
+ { 9.5819, 66.6667 },
+ { 14.3438, 61.9048 },
+ { 23.8676, 57.1429 },
+ { 52.439, 47.619 },
+ { 61.9629, 42.8571 },
+ { 66.7248, 38.0952 },
+ { 71.4867, 28.5714 },
+ { 71.4867, 14.2857 },
+ { 61.9629, 4.7619 },
+ { 47.6771, 0 },
+ { 28.6295, 0 },
+ { 14.3438, 4.7619 },
+ { 4.82, 14.2857 },
+};
+
+static const StrokeRec char36[] = {
+ { 2, char36_stroke0 },
+ { 2, char36_stroke1 },
+ { 20, char36_stroke2 },
+};
+
+/* char: 37 '%' */
+
+static const CoordRec char37_stroke0[] = {
+ { 92.0743, 100 },
+ { 6.36, 0 },
+};
+
+static const CoordRec char37_stroke1[] = {
+ { 30.1695, 100 },
+ { 39.6933, 90.4762 },
+ { 39.6933, 80.9524 },
+ { 34.9314, 71.4286 },
+ { 25.4076, 66.6667 },
+ { 15.8838, 66.6667 },
+ { 6.36, 76.1905 },
+ { 6.36, 85.7143 },
+ { 11.1219, 95.2381 },
+ { 20.6457, 100 },
+ { 30.1695, 100 },
+ { 39.6933, 95.2381 },
+ { 53.979, 90.4762 },
+ { 68.2648, 90.4762 },
+ { 82.5505, 95.2381 },
+ { 92.0743, 100 },
+};
+
+static const CoordRec char37_stroke2[] = {
+ { 73.0267, 33.3333 },
+ { 63.5029, 28.5714 },
+ { 58.741, 19.0476 },
+ { 58.741, 9.5238 },
+ { 68.2648, 0 },
+ { 77.7886, 0 },
+ { 87.3124, 4.7619 },
+ { 92.0743, 14.2857 },
+ { 92.0743, 23.8095 },
+ { 82.5505, 33.3333 },
+ { 73.0267, 33.3333 },
+};
+
+static const StrokeRec char37[] = {
+ { 2, char37_stroke0 },
+ { 16, char37_stroke1 },
+ { 11, char37_stroke2 },
+};
+
+/* char: 38 '&' */
+
+static const CoordRec char38_stroke0[] = {
+ { 101.218, 57.1429 },
+ { 101.218, 61.9048 },
+ { 96.4562, 66.6667 },
+ { 91.6943, 66.6667 },
+ { 86.9324, 61.9048 },
+ { 82.1705, 52.381 },
+ { 72.6467, 28.5714 },
+ { 63.1229, 14.2857 },
+ { 53.599, 4.7619 },
+ { 44.0752, 0 },
+ { 25.0276, 0 },
+ { 15.5038, 4.7619 },
+ { 10.7419, 9.5238 },
+ { 5.98, 19.0476 },
+ { 5.98, 28.5714 },
+ { 10.7419, 38.0952 },
+ { 15.5038, 42.8571 },
+ { 48.8371, 61.9048 },
+ { 53.599, 66.6667 },
+ { 58.361, 76.1905 },
+ { 58.361, 85.7143 },
+ { 53.599, 95.2381 },
+ { 44.0752, 100 },
+ { 34.5514, 95.2381 },
+ { 29.7895, 85.7143 },
+ { 29.7895, 76.1905 },
+ { 34.5514, 61.9048 },
+ { 44.0752, 47.619 },
+ { 67.8848, 14.2857 },
+ { 77.4086, 4.7619 },
+ { 86.9324, 0 },
+ { 96.4562, 0 },
+ { 101.218, 4.7619 },
+ { 101.218, 9.5238 },
+};
+
+static const StrokeRec char38[] = {
+ { 34, char38_stroke0 },
+};
+
+/* char: 39 ''' */
+
+static const CoordRec char39_stroke0[] = {
+ { 4.44, 100 },
+ { 4.44, 66.6667 },
+};
+
+static const StrokeRec char39[] = {
+ { 2, char39_stroke0 },
+};
+
+/* char: 40 '(' */
+
+static const CoordRec char40_stroke0[] = {
+ { 40.9133, 119.048 },
+ { 31.3895, 109.524 },
+ { 21.8657, 95.2381 },
+ { 12.3419, 76.1905 },
+ { 7.58, 52.381 },
+ { 7.58, 33.3333 },
+ { 12.3419, 9.5238 },
+ { 21.8657, -9.5238 },
+ { 31.3895, -23.8095 },
+ { 40.9133, -33.3333 },
+};
+
+static const StrokeRec char40[] = {
+ { 10, char40_stroke0 },
+};
+
+/* char: 41 ')' */
+
+static const CoordRec char41_stroke0[] = {
+ { 5.28, 119.048 },
+ { 14.8038, 109.524 },
+ { 24.3276, 95.2381 },
+ { 33.8514, 76.1905 },
+ { 38.6133, 52.381 },
+ { 38.6133, 33.3333 },
+ { 33.8514, 9.5238 },
+ { 24.3276, -9.5238 },
+ { 14.8038, -23.8095 },
+ { 5.28, -33.3333 },
+};
+
+static const StrokeRec char41[] = {
+ { 10, char41_stroke0 },
+};
+
+/* char: 42 '*' */
+
+static const CoordRec char42_stroke0[] = {
+ { 30.7695, 71.4286 },
+ { 30.7695, 14.2857 },
+};
+
+static const CoordRec char42_stroke1[] = {
+ { 6.96, 57.1429 },
+ { 54.579, 28.5714 },
+};
+
+static const CoordRec char42_stroke2[] = {
+ { 54.579, 57.1429 },
+ { 6.96, 28.5714 },
+};
+
+static const StrokeRec char42[] = {
+ { 2, char42_stroke0 },
+ { 2, char42_stroke1 },
+ { 2, char42_stroke2 },
+};
+
+/* char: 43 '+' */
+
+static const CoordRec char43_stroke0[] = {
+ { 48.8371, 85.7143 },
+ { 48.8371, 0 },
+};
+
+static const CoordRec char43_stroke1[] = {
+ { 5.98, 42.8571 },
+ { 91.6943, 42.8571 },
+};
+
+static const StrokeRec char43[] = {
+ { 2, char43_stroke0 },
+ { 2, char43_stroke1 },
+};
+
+/* char: 44 ',' */
+
+static const CoordRec char44_stroke0[] = {
+ { 18.2838, 4.7619 },
+ { 13.5219, 0 },
+ { 8.76, 4.7619 },
+ { 13.5219, 9.5238 },
+ { 18.2838, 4.7619 },
+ { 18.2838, -4.7619 },
+ { 13.5219, -14.2857 },
+ { 8.76, -19.0476 },
+};
+
+static const StrokeRec char44[] = {
+ { 8, char44_stroke0 },
+};
+
+/* char: 45 '-' */
+
+static const CoordRec char45_stroke0[] = {
+ { 7.38, 42.8571 },
+ { 93.0943, 42.8571 },
+};
+
+static const StrokeRec char45[] = {
+ { 2, char45_stroke0 },
+};
+
+/* char: 46 '.' */
+
+static const CoordRec char46_stroke0[] = {
+ { 13.1019, 9.5238 },
+ { 8.34, 4.7619 },
+ { 13.1019, 0 },
+ { 17.8638, 4.7619 },
+ { 13.1019, 9.5238 },
+};
+
+static const StrokeRec char46[] = {
+ { 5, char46_stroke0 },
+};
+
+/* char: 47 '/' */
+
+static const CoordRec char47_stroke0[] = {
+ { 7.24, -14.2857 },
+ { 73.9067, 100 },
+};
+
+static const StrokeRec char47[] = {
+ { 2, char47_stroke0 },
+};
+
+/* char: 48 '0' */
+
+static const CoordRec char48_stroke0[] = {
+ { 33.5514, 100 },
+ { 19.2657, 95.2381 },
+ { 9.7419, 80.9524 },
+ { 4.98, 57.1429 },
+ { 4.98, 42.8571 },
+ { 9.7419, 19.0476 },
+ { 19.2657, 4.7619 },
+ { 33.5514, 0 },
+ { 43.0752, 0 },
+ { 57.361, 4.7619 },
+ { 66.8848, 19.0476 },
+ { 71.6467, 42.8571 },
+ { 71.6467, 57.1429 },
+ { 66.8848, 80.9524 },
+ { 57.361, 95.2381 },
+ { 43.0752, 100 },
+ { 33.5514, 100 },
+};
+
+static const StrokeRec char48[] = {
+ { 17, char48_stroke0 },
+};
+
+/* char: 49 '1' */
+
+static const CoordRec char49_stroke0[] = {
+ { 11.82, 80.9524 },
+ { 21.3438, 85.7143 },
+ { 35.6295, 100 },
+ { 35.6295, 0 },
+};
+
+static const StrokeRec char49[] = {
+ { 4, char49_stroke0 },
+};
+
+/* char: 50 '2' */
+
+static const CoordRec char50_stroke0[] = {
+ { 10.1819, 76.1905 },
+ { 10.1819, 80.9524 },
+ { 14.9438, 90.4762 },
+ { 19.7057, 95.2381 },
+ { 29.2295, 100 },
+ { 48.2771, 100 },
+ { 57.801, 95.2381 },
+ { 62.5629, 90.4762 },
+ { 67.3248, 80.9524 },
+ { 67.3248, 71.4286 },
+ { 62.5629, 61.9048 },
+ { 53.039, 47.619 },
+ { 5.42, 0 },
+ { 72.0867, 0 },
+};
+
+static const StrokeRec char50[] = {
+ { 14, char50_stroke0 },
+};
+
+/* char: 51 '3' */
+
+static const CoordRec char51_stroke0[] = {
+ { 14.5238, 100 },
+ { 66.9048, 100 },
+ { 38.3333, 61.9048 },
+ { 52.619, 61.9048 },
+ { 62.1429, 57.1429 },
+ { 66.9048, 52.381 },
+ { 71.6667, 38.0952 },
+ { 71.6667, 28.5714 },
+ { 66.9048, 14.2857 },
+ { 57.381, 4.7619 },
+ { 43.0952, 0 },
+ { 28.8095, 0 },
+ { 14.5238, 4.7619 },
+ { 9.7619, 9.5238 },
+ { 5, 19.0476 },
+};
+
+static const StrokeRec char51[] = {
+ { 15, char51_stroke0 },
+};
+
+/* char: 52 '4' */
+
+static const CoordRec char52_stroke0[] = {
+ { 51.499, 100 },
+ { 3.88, 33.3333 },
+ { 75.3086, 33.3333 },
+};
+
+static const CoordRec char52_stroke1[] = {
+ { 51.499, 100 },
+ { 51.499, 0 },
+};
+
+static const StrokeRec char52[] = {
+ { 3, char52_stroke0 },
+ { 2, char52_stroke1 },
+};
+
+/* char: 53 '5' */
+
+static const CoordRec char53_stroke0[] = {
+ { 62.0029, 100 },
+ { 14.3838, 100 },
+ { 9.6219, 57.1429 },
+ { 14.3838, 61.9048 },
+ { 28.6695, 66.6667 },
+ { 42.9552, 66.6667 },
+ { 57.241, 61.9048 },
+ { 66.7648, 52.381 },
+ { 71.5267, 38.0952 },
+ { 71.5267, 28.5714 },
+ { 66.7648, 14.2857 },
+ { 57.241, 4.7619 },
+ { 42.9552, 0 },
+ { 28.6695, 0 },
+ { 14.3838, 4.7619 },
+ { 9.6219, 9.5238 },
+ { 4.86, 19.0476 },
+};
+
+static const StrokeRec char53[] = {
+ { 17, char53_stroke0 },
+};
+
+/* char: 54 '6' */
+
+static const CoordRec char54_stroke0[] = {
+ { 62.7229, 85.7143 },
+ { 57.961, 95.2381 },
+ { 43.6752, 100 },
+ { 34.1514, 100 },
+ { 19.8657, 95.2381 },
+ { 10.3419, 80.9524 },
+ { 5.58, 57.1429 },
+ { 5.58, 33.3333 },
+ { 10.3419, 14.2857 },
+ { 19.8657, 4.7619 },
+ { 34.1514, 0 },
+ { 38.9133, 0 },
+ { 53.199, 4.7619 },
+ { 62.7229, 14.2857 },
+ { 67.4848, 28.5714 },
+ { 67.4848, 33.3333 },
+ { 62.7229, 47.619 },
+ { 53.199, 57.1429 },
+ { 38.9133, 61.9048 },
+ { 34.1514, 61.9048 },
+ { 19.8657, 57.1429 },
+ { 10.3419, 47.619 },
+ { 5.58, 33.3333 },
+};
+
+static const StrokeRec char54[] = {
+ { 23, char54_stroke0 },
+};
+
+/* char: 55 '7' */
+
+static const CoordRec char55_stroke0[] = {
+ { 72.2267, 100 },
+ { 24.6076, 0 },
+};
+
+static const CoordRec char55_stroke1[] = {
+ { 5.56, 100 },
+ { 72.2267, 100 },
+};
+
+static const StrokeRec char55[] = {
+ { 2, char55_stroke0 },
+ { 2, char55_stroke1 },
+};
+
+/* char: 56 '8' */
+
+static const CoordRec char56_stroke0[] = {
+ { 29.4095, 100 },
+ { 15.1238, 95.2381 },
+ { 10.3619, 85.7143 },
+ { 10.3619, 76.1905 },
+ { 15.1238, 66.6667 },
+ { 24.6476, 61.9048 },
+ { 43.6952, 57.1429 },
+ { 57.981, 52.381 },
+ { 67.5048, 42.8571 },
+ { 72.2667, 33.3333 },
+ { 72.2667, 19.0476 },
+ { 67.5048, 9.5238 },
+ { 62.7429, 4.7619 },
+ { 48.4571, 0 },
+ { 29.4095, 0 },
+ { 15.1238, 4.7619 },
+ { 10.3619, 9.5238 },
+ { 5.6, 19.0476 },
+ { 5.6, 33.3333 },
+ { 10.3619, 42.8571 },
+ { 19.8857, 52.381 },
+ { 34.1714, 57.1429 },
+ { 53.219, 61.9048 },
+ { 62.7429, 66.6667 },
+ { 67.5048, 76.1905 },
+ { 67.5048, 85.7143 },
+ { 62.7429, 95.2381 },
+ { 48.4571, 100 },
+ { 29.4095, 100 },
+};
+
+static const StrokeRec char56[] = {
+ { 29, char56_stroke0 },
+};
+
+/* char: 57 '9' */
+
+static const CoordRec char57_stroke0[] = {
+ { 68.5048, 66.6667 },
+ { 63.7429, 52.381 },
+ { 54.219, 42.8571 },
+ { 39.9333, 38.0952 },
+ { 35.1714, 38.0952 },
+ { 20.8857, 42.8571 },
+ { 11.3619, 52.381 },
+ { 6.6, 66.6667 },
+ { 6.6, 71.4286 },
+ { 11.3619, 85.7143 },
+ { 20.8857, 95.2381 },
+ { 35.1714, 100 },
+ { 39.9333, 100 },
+ { 54.219, 95.2381 },
+ { 63.7429, 85.7143 },
+ { 68.5048, 66.6667 },
+ { 68.5048, 42.8571 },
+ { 63.7429, 19.0476 },
+ { 54.219, 4.7619 },
+ { 39.9333, 0 },
+ { 30.4095, 0 },
+ { 16.1238, 4.7619 },
+ { 11.3619, 14.2857 },
+};
+
+static const StrokeRec char57[] = {
+ { 23, char57_stroke0 },
+};
+
+/* char: 58 ':' */
+
+static const CoordRec char58_stroke0[] = {
+ { 14.0819, 66.6667 },
+ { 9.32, 61.9048 },
+ { 14.0819, 57.1429 },
+ { 18.8438, 61.9048 },
+ { 14.0819, 66.6667 },
+};
+
+static const CoordRec char58_stroke1[] = {
+ { 14.0819, 9.5238 },
+ { 9.32, 4.7619 },
+ { 14.0819, 0 },
+ { 18.8438, 4.7619 },
+ { 14.0819, 9.5238 },
+};
+
+static const StrokeRec char58[] = {
+ { 5, char58_stroke0 },
+ { 5, char58_stroke1 },
+};
+
+/* char: 59 ';' */
+
+static const CoordRec char59_stroke0[] = {
+ { 12.9619, 66.6667 },
+ { 8.2, 61.9048 },
+ { 12.9619, 57.1429 },
+ { 17.7238, 61.9048 },
+ { 12.9619, 66.6667 },
+};
+
+static const CoordRec char59_stroke1[] = {
+ { 17.7238, 4.7619 },
+ { 12.9619, 0 },
+ { 8.2, 4.7619 },
+ { 12.9619, 9.5238 },
+ { 17.7238, 4.7619 },
+ { 17.7238, -4.7619 },
+ { 12.9619, -14.2857 },
+ { 8.2, -19.0476 },
+};
+
+static const StrokeRec char59[] = {
+ { 5, char59_stroke0 },
+ { 8, char59_stroke1 },
+};
+
+/* char: 60 '<' */
+
+static const CoordRec char60_stroke0[] = {
+ { 79.2505, 85.7143 },
+ { 3.06, 42.8571 },
+ { 79.2505, 0 },
+};
+
+static const StrokeRec char60[] = {
+ { 3, char60_stroke0 },
+};
+
+/* char: 61 '=' */
+
+static const CoordRec char61_stroke0[] = {
+ { 5.7, 57.1429 },
+ { 91.4143, 57.1429 },
+};
+
+static const CoordRec char61_stroke1[] = {
+ { 5.7, 28.5714 },
+ { 91.4143, 28.5714 },
+};
+
+static const StrokeRec char61[] = {
+ { 2, char61_stroke0 },
+ { 2, char61_stroke1 },
+};
+
+/* char: 62 '>' */
+
+static const CoordRec char62_stroke0[] = {
+ { 2.78, 85.7143 },
+ { 78.9705, 42.8571 },
+ { 2.78, 0 },
+};
+
+static const StrokeRec char62[] = {
+ { 3, char62_stroke0 },
+};
+
+/* char: 63 '?' */
+
+static const CoordRec char63_stroke0[] = {
+ { 8.42, 76.1905 },
+ { 8.42, 80.9524 },
+ { 13.1819, 90.4762 },
+ { 17.9438, 95.2381 },
+ { 27.4676, 100 },
+ { 46.5152, 100 },
+ { 56.039, 95.2381 },
+ { 60.801, 90.4762 },
+ { 65.5629, 80.9524 },
+ { 65.5629, 71.4286 },
+ { 60.801, 61.9048 },
+ { 56.039, 57.1429 },
+ { 36.9914, 47.619 },
+ { 36.9914, 33.3333 },
+};
+
+static const CoordRec char63_stroke1[] = {
+ { 36.9914, 9.5238 },
+ { 32.2295, 4.7619 },
+ { 36.9914, 0 },
+ { 41.7533, 4.7619 },
+ { 36.9914, 9.5238 },
+};
+
+static const StrokeRec char63[] = {
+ { 14, char63_stroke0 },
+ { 5, char63_stroke1 },
+};
+
+/* char: 64 '@' */
+
+static const CoordRec char64_stroke0[] = {
+ { 49.2171, 52.381 },
+ { 39.6933, 57.1429 },
+ { 30.1695, 57.1429 },
+ { 25.4076, 47.619 },
+ { 25.4076, 42.8571 },
+ { 30.1695, 33.3333 },
+ { 39.6933, 33.3333 },
+ { 49.2171, 38.0952 },
+};
+
+static const CoordRec char64_stroke1[] = {
+ { 49.2171, 57.1429 },
+ { 49.2171, 38.0952 },
+ { 53.979, 33.3333 },
+ { 63.5029, 33.3333 },
+ { 68.2648, 42.8571 },
+ { 68.2648, 47.619 },
+ { 63.5029, 61.9048 },
+ { 53.979, 71.4286 },
+ { 39.6933, 76.1905 },
+ { 34.9314, 76.1905 },
+ { 20.6457, 71.4286 },
+ { 11.1219, 61.9048 },
+ { 6.36, 47.619 },
+ { 6.36, 42.8571 },
+ { 11.1219, 28.5714 },
+ { 20.6457, 19.0476 },
+ { 34.9314, 14.2857 },
+ { 39.6933, 14.2857 },
+ { 53.979, 19.0476 },
+};
+
+static const StrokeRec char64[] = {
+ { 8, char64_stroke0 },
+ { 19, char64_stroke1 },
+};
+
+/* char: 65 'A' */
+
+static const CoordRec char65_stroke0[] = {
+ { 40.5952, 100 },
+ { 2.5, 0 },
+};
+
+static const CoordRec char65_stroke1[] = {
+ { 40.5952, 100 },
+ { 78.6905, 0 },
+};
+
+static const CoordRec char65_stroke2[] = {
+ { 16.7857, 33.3333 },
+ { 64.4048, 33.3333 },
+};
+
+static const StrokeRec char65[] = {
+ { 2, char65_stroke0 },
+ { 2, char65_stroke1 },
+ { 2, char65_stroke2 },
+};
+
+/* char: 66 'B' */
+
+static const CoordRec char66_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char66_stroke1[] = {
+ { 11.42, 100 },
+ { 54.2771, 100 },
+ { 68.5629, 95.2381 },
+ { 73.3248, 90.4762 },
+ { 78.0867, 80.9524 },
+ { 78.0867, 71.4286 },
+ { 73.3248, 61.9048 },
+ { 68.5629, 57.1429 },
+ { 54.2771, 52.381 },
+};
+
+static const CoordRec char66_stroke2[] = {
+ { 11.42, 52.381 },
+ { 54.2771, 52.381 },
+ { 68.5629, 47.619 },
+ { 73.3248, 42.8571 },
+ { 78.0867, 33.3333 },
+ { 78.0867, 19.0476 },
+ { 73.3248, 9.5238 },
+ { 68.5629, 4.7619 },
+ { 54.2771, 0 },
+ { 11.42, 0 },
+};
+
+static const StrokeRec char66[] = {
+ { 2, char66_stroke0 },
+ { 9, char66_stroke1 },
+ { 10, char66_stroke2 },
+};
+
+/* char: 67 'C' */
+
+static const CoordRec char67_stroke0[] = {
+ { 78.0886, 76.1905 },
+ { 73.3267, 85.7143 },
+ { 63.8029, 95.2381 },
+ { 54.279, 100 },
+ { 35.2314, 100 },
+ { 25.7076, 95.2381 },
+ { 16.1838, 85.7143 },
+ { 11.4219, 76.1905 },
+ { 6.66, 61.9048 },
+ { 6.66, 38.0952 },
+ { 11.4219, 23.8095 },
+ { 16.1838, 14.2857 },
+ { 25.7076, 4.7619 },
+ { 35.2314, 0 },
+ { 54.279, 0 },
+ { 63.8029, 4.7619 },
+ { 73.3267, 14.2857 },
+ { 78.0886, 23.8095 },
+};
+
+static const StrokeRec char67[] = {
+ { 18, char67_stroke0 },
+};
+
+/* char: 68 'D' */
+
+static const CoordRec char68_stroke0[] = {
+ { 11.96, 100 },
+ { 11.96, 0 },
+};
+
+static const CoordRec char68_stroke1[] = {
+ { 11.96, 100 },
+ { 45.2933, 100 },
+ { 59.579, 95.2381 },
+ { 69.1029, 85.7143 },
+ { 73.8648, 76.1905 },
+ { 78.6267, 61.9048 },
+ { 78.6267, 38.0952 },
+ { 73.8648, 23.8095 },
+ { 69.1029, 14.2857 },
+ { 59.579, 4.7619 },
+ { 45.2933, 0 },
+ { 11.96, 0 },
+};
+
+static const StrokeRec char68[] = {
+ { 2, char68_stroke0 },
+ { 12, char68_stroke1 },
+};
+
+/* char: 69 'E' */
+
+static const CoordRec char69_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char69_stroke1[] = {
+ { 11.42, 100 },
+ { 73.3248, 100 },
+};
+
+static const CoordRec char69_stroke2[] = {
+ { 11.42, 52.381 },
+ { 49.5152, 52.381 },
+};
+
+static const CoordRec char69_stroke3[] = {
+ { 11.42, 0 },
+ { 73.3248, 0 },
+};
+
+static const StrokeRec char69[] = {
+ { 2, char69_stroke0 },
+ { 2, char69_stroke1 },
+ { 2, char69_stroke2 },
+ { 2, char69_stroke3 },
+};
+
+/* char: 70 'F' */
+
+static const CoordRec char70_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char70_stroke1[] = {
+ { 11.42, 100 },
+ { 73.3248, 100 },
+};
+
+static const CoordRec char70_stroke2[] = {
+ { 11.42, 52.381 },
+ { 49.5152, 52.381 },
+};
+
+static const StrokeRec char70[] = {
+ { 2, char70_stroke0 },
+ { 2, char70_stroke1 },
+ { 2, char70_stroke2 },
+};
+
+/* char: 71 'G' */
+
+static const CoordRec char71_stroke0[] = {
+ { 78.4886, 76.1905 },
+ { 73.7267, 85.7143 },
+ { 64.2029, 95.2381 },
+ { 54.679, 100 },
+ { 35.6314, 100 },
+ { 26.1076, 95.2381 },
+ { 16.5838, 85.7143 },
+ { 11.8219, 76.1905 },
+ { 7.06, 61.9048 },
+ { 7.06, 38.0952 },
+ { 11.8219, 23.8095 },
+ { 16.5838, 14.2857 },
+ { 26.1076, 4.7619 },
+ { 35.6314, 0 },
+ { 54.679, 0 },
+ { 64.2029, 4.7619 },
+ { 73.7267, 14.2857 },
+ { 78.4886, 23.8095 },
+ { 78.4886, 38.0952 },
+};
+
+static const CoordRec char71_stroke1[] = {
+ { 54.679, 38.0952 },
+ { 78.4886, 38.0952 },
+};
+
+static const StrokeRec char71[] = {
+ { 19, char71_stroke0 },
+ { 2, char71_stroke1 },
+};
+
+/* char: 72 'H' */
+
+static const CoordRec char72_stroke0[] = {
+ { 11.42, 100 },
+ { 11.42, 0 },
+};
+
+static const CoordRec char72_stroke1[] = {
+ { 78.0867, 100 },
+ { 78.0867, 0 },
+};
+
+static const CoordRec char72_stroke2[] = {
+ { 11.42, 52.381 },
+ { 78.0867, 52.381 },
+};
+
+static const StrokeRec char72[] = {
+ { 2, char72_stroke0 },
+ { 2, char72_stroke1 },
+ { 2, char72_stroke2 },
+};
+
+/* char: 73 'I' */
+
+static const CoordRec char73_stroke0[] = {
+ { 10.86, 100 },
+ { 10.86, 0 },
+};
+
+static const StrokeRec char73[] = {
+ { 2, char73_stroke0 },
+};
+
+/* char: 74 'J' */
+
+static const CoordRec char74_stroke0[] = {
+ { 50.119, 100 },
+ { 50.119, 23.8095 },
+ { 45.3571, 9.5238 },
+ { 40.5952, 4.7619 },
+ { 31.0714, 0 },
+ { 21.5476, 0 },
+ { 12.0238, 4.7619 },
+ { 7.2619, 9.5238 },
+ { 2.5, 23.8095 },
+ { 2.5, 33.3333 },
+};
+
+static const StrokeRec char74[] = {
+ { 10, char74_stroke0 },
+};
+
+/* char: 75 'K' */
+
+static const CoordRec char75_stroke0[] = {
+ { 11.28, 100 },
+ { 11.28, 0 },
+};
+
+static const CoordRec char75_stroke1[] = {
+ { 77.9467, 100 },
+ { 11.28, 33.3333 },
+};
+
+static const CoordRec char75_stroke2[] = {
+ { 35.0895, 57.1429 },
+ { 77.9467, 0 },
+};
+
+static const StrokeRec char75[] = {
+ { 2, char75_stroke0 },
+ { 2, char75_stroke1 },
+ { 2, char75_stroke2 },
+};
+
+/* char: 76 'L' */
+
+static const CoordRec char76_stroke0[] = {
+ { 11.68, 100 },
+ { 11.68, 0 },
+};
+
+static const CoordRec char76_stroke1[] = {
+ { 11.68, 0 },
+ { 68.8229, 0 },
+};
+
+static const StrokeRec char76[] = {
+ { 2, char76_stroke0 },
+ { 2, char76_stroke1 },
+};
+
+/* char: 77 'M' */
+
+static const CoordRec char77_stroke0[] = {
+ { 10.86, 100 },
+ { 10.86, 0 },
+};
+
+static const CoordRec char77_stroke1[] = {
+ { 10.86, 100 },
+ { 48.9552, 0 },
+};
+
+static const CoordRec char77_stroke2[] = {
+ { 87.0505, 100 },
+ { 48.9552, 0 },
+};
+
+static const CoordRec char77_stroke3[] = {
+ { 87.0505, 100 },
+ { 87.0505, 0 },
+};
+
+static const StrokeRec char77[] = {
+ { 2, char77_stroke0 },
+ { 2, char77_stroke1 },
+ { 2, char77_stroke2 },
+ { 2, char77_stroke3 },
+};
+
+/* char: 78 'N' */
+
+static const CoordRec char78_stroke0[] = {
+ { 11.14, 100 },
+ { 11.14, 0 },
+};
+
+static const CoordRec char78_stroke1[] = {
+ { 11.14, 100 },
+ { 77.8067, 0 },
+};
+
+static const CoordRec char78_stroke2[] = {
+ { 77.8067, 100 },
+ { 77.8067, 0 },
+};
+
+static const StrokeRec char78[] = {
+ { 2, char78_stroke0 },
+ { 2, char78_stroke1 },
+ { 2, char78_stroke2 },
+};
+
+/* char: 79 'O' */
+
+static const CoordRec char79_stroke0[] = {
+ { 34.8114, 100 },
+ { 25.2876, 95.2381 },
+ { 15.7638, 85.7143 },
+ { 11.0019, 76.1905 },
+ { 6.24, 61.9048 },
+ { 6.24, 38.0952 },
+ { 11.0019, 23.8095 },
+ { 15.7638, 14.2857 },
+ { 25.2876, 4.7619 },
+ { 34.8114, 0 },
+ { 53.859, 0 },
+ { 63.3829, 4.7619 },
+ { 72.9067, 14.2857 },
+ { 77.6686, 23.8095 },
+ { 82.4305, 38.0952 },
+ { 82.4305, 61.9048 },
+ { 77.6686, 76.1905 },
+ { 72.9067, 85.7143 },
+ { 63.3829, 95.2381 },
+ { 53.859, 100 },
+ { 34.8114, 100 },
+};
+
+static const StrokeRec char79[] = {
+ { 21, char79_stroke0 },
+};
+
+/* char: 80 'P' */
+
+static const CoordRec char80_stroke0[] = {
+ { 12.1, 100 },
+ { 12.1, 0 },
+};
+
+static const CoordRec char80_stroke1[] = {
+ { 12.1, 100 },
+ { 54.9571, 100 },
+ { 69.2429, 95.2381 },
+ { 74.0048, 90.4762 },
+ { 78.7667, 80.9524 },
+ { 78.7667, 66.6667 },
+ { 74.0048, 57.1429 },
+ { 69.2429, 52.381 },
+ { 54.9571, 47.619 },
+ { 12.1, 47.619 },
+};
+
+static const StrokeRec char80[] = {
+ { 2, char80_stroke0 },
+ { 10, char80_stroke1 },
+};
+
+/* char: 81 'Q' */
+
+static const CoordRec char81_stroke0[] = {
+ { 33.8714, 100 },
+ { 24.3476, 95.2381 },
+ { 14.8238, 85.7143 },
+ { 10.0619, 76.1905 },
+ { 5.3, 61.9048 },
+ { 5.3, 38.0952 },
+ { 10.0619, 23.8095 },
+ { 14.8238, 14.2857 },
+ { 24.3476, 4.7619 },
+ { 33.8714, 0 },
+ { 52.919, 0 },
+ { 62.4429, 4.7619 },
+ { 71.9667, 14.2857 },
+ { 76.7286, 23.8095 },
+ { 81.4905, 38.0952 },
+ { 81.4905, 61.9048 },
+ { 76.7286, 76.1905 },
+ { 71.9667, 85.7143 },
+ { 62.4429, 95.2381 },
+ { 52.919, 100 },
+ { 33.8714, 100 },
+};
+
+static const CoordRec char81_stroke1[] = {
+ { 48.1571, 19.0476 },
+ { 76.7286, -9.5238 },
+};
+
+static const StrokeRec char81[] = {
+ { 21, char81_stroke0 },
+ { 2, char81_stroke1 },
+};
+
+/* char: 82 'R' */
+
+static const CoordRec char82_stroke0[] = {
+ { 11.68, 100 },
+ { 11.68, 0 },
+};
+
+static const CoordRec char82_stroke1[] = {
+ { 11.68, 100 },
+ { 54.5371, 100 },
+ { 68.8229, 95.2381 },
+ { 73.5848, 90.4762 },
+ { 78.3467, 80.9524 },
+ { 78.3467, 71.4286 },
+ { 73.5848, 61.9048 },
+ { 68.8229, 57.1429 },
+ { 54.5371, 52.381 },
+ { 11.68, 52.381 },
+};
+
+static const CoordRec char82_stroke2[] = {
+ { 45.0133, 52.381 },
+ { 78.3467, 0 },
+};
+
+static const StrokeRec char82[] = {
+ { 2, char82_stroke0 },
+ { 10, char82_stroke1 },
+ { 2, char82_stroke2 },
+};
+
+/* char: 83 'S' */
+
+static const CoordRec char83_stroke0[] = {
+ { 74.6667, 85.7143 },
+ { 65.1429, 95.2381 },
+ { 50.8571, 100 },
+ { 31.8095, 100 },
+ { 17.5238, 95.2381 },
+ { 8, 85.7143 },
+ { 8, 76.1905 },
+ { 12.7619, 66.6667 },
+ { 17.5238, 61.9048 },
+ { 27.0476, 57.1429 },
+ { 55.619, 47.619 },
+ { 65.1429, 42.8571 },
+ { 69.9048, 38.0952 },
+ { 74.6667, 28.5714 },
+ { 74.6667, 14.2857 },
+ { 65.1429, 4.7619 },
+ { 50.8571, 0 },
+ { 31.8095, 0 },
+ { 17.5238, 4.7619 },
+ { 8, 14.2857 },
+};
+
+static const StrokeRec char83[] = {
+ { 20, char83_stroke0 },
+};
+
+/* char: 84 'T' */
+
+static const CoordRec char84_stroke0[] = {
+ { 35.6933, 100 },
+ { 35.6933, 0 },
+};
+
+static const CoordRec char84_stroke1[] = {
+ { 2.36, 100 },
+ { 69.0267, 100 },
+};
+
+static const StrokeRec char84[] = {
+ { 2, char84_stroke0 },
+ { 2, char84_stroke1 },
+};
+
+/* char: 85 'U' */
+
+static const CoordRec char85_stroke0[] = {
+ { 11.54, 100 },
+ { 11.54, 28.5714 },
+ { 16.3019, 14.2857 },
+ { 25.8257, 4.7619 },
+ { 40.1114, 0 },
+ { 49.6352, 0 },
+ { 63.921, 4.7619 },
+ { 73.4448, 14.2857 },
+ { 78.2067, 28.5714 },
+ { 78.2067, 100 },
+};
+
+static const StrokeRec char85[] = {
+ { 10, char85_stroke0 },
+};
+
+/* char: 86 'V' */
+
+static const CoordRec char86_stroke0[] = {
+ { 2.36, 100 },
+ { 40.4552, 0 },
+};
+
+static const CoordRec char86_stroke1[] = {
+ { 78.5505, 100 },
+ { 40.4552, 0 },
+};
+
+static const StrokeRec char86[] = {
+ { 2, char86_stroke0 },
+ { 2, char86_stroke1 },
+};
+
+/* char: 87 'W' */
+
+static const CoordRec char87_stroke0[] = {
+ { 2.22, 100 },
+ { 26.0295, 0 },
+};
+
+static const CoordRec char87_stroke1[] = {
+ { 49.839, 100 },
+ { 26.0295, 0 },
+};
+
+static const CoordRec char87_stroke2[] = {
+ { 49.839, 100 },
+ { 73.6486, 0 },
+};
+
+static const CoordRec char87_stroke3[] = {
+ { 97.4581, 100 },
+ { 73.6486, 0 },
+};
+
+static const StrokeRec char87[] = {
+ { 2, char87_stroke0 },
+ { 2, char87_stroke1 },
+ { 2, char87_stroke2 },
+ { 2, char87_stroke3 },
+};
+
+/* char: 88 'X' */
+
+static const CoordRec char88_stroke0[] = {
+ { 2.5, 100 },
+ { 69.1667, 0 },
+};
+
+static const CoordRec char88_stroke1[] = {
+ { 69.1667, 100 },
+ { 2.5, 0 },
+};
+
+static const StrokeRec char88[] = {
+ { 2, char88_stroke0 },
+ { 2, char88_stroke1 },
+};
+
+/* char: 89 'Y' */
+
+static const CoordRec char89_stroke0[] = {
+ { 1.52, 100 },
+ { 39.6152, 52.381 },
+ { 39.6152, 0 },
+};
+
+static const CoordRec char89_stroke1[] = {
+ { 77.7105, 100 },
+ { 39.6152, 52.381 },
+};
+
+static const StrokeRec char89[] = {
+ { 3, char89_stroke0 },
+ { 2, char89_stroke1 },
+};
+
+/* char: 90 'Z' */
+
+static const CoordRec char90_stroke0[] = {
+ { 69.1667, 100 },
+ { 2.5, 0 },
+};
+
+static const CoordRec char90_stroke1[] = {
+ { 2.5, 100 },
+ { 69.1667, 100 },
+};
+
+static const CoordRec char90_stroke2[] = {
+ { 2.5, 0 },
+ { 69.1667, 0 },
+};
+
+static const StrokeRec char90[] = {
+ { 2, char90_stroke0 },
+ { 2, char90_stroke1 },
+ { 2, char90_stroke2 },
+};
+
+/* char: 91 '[' */
+
+static const CoordRec char91_stroke0[] = {
+ { 7.78, 119.048 },
+ { 7.78, -33.3333 },
+};
+
+static const CoordRec char91_stroke1[] = {
+ { 12.5419, 119.048 },
+ { 12.5419, -33.3333 },
+};
+
+static const CoordRec char91_stroke2[] = {
+ { 7.78, 119.048 },
+ { 41.1133, 119.048 },
+};
+
+static const CoordRec char91_stroke3[] = {
+ { 7.78, -33.3333 },
+ { 41.1133, -33.3333 },
+};
+
+static const StrokeRec char91[] = {
+ { 2, char91_stroke0 },
+ { 2, char91_stroke1 },
+ { 2, char91_stroke2 },
+ { 2, char91_stroke3 },
+};
+
+/* char: 92 '\' */
+
+static const CoordRec char92_stroke0[] = {
+ { 5.84, 100 },
+ { 72.5067, -14.2857 },
+};
+
+static const StrokeRec char92[] = {
+ { 2, char92_stroke0 },
+};
+
+/* char: 93 ']' */
+
+static const CoordRec char93_stroke0[] = {
+ { 33.0114, 119.048 },
+ { 33.0114, -33.3333 },
+};
+
+static const CoordRec char93_stroke1[] = {
+ { 37.7733, 119.048 },
+ { 37.7733, -33.3333 },
+};
+
+static const CoordRec char93_stroke2[] = {
+ { 4.44, 119.048 },
+ { 37.7733, 119.048 },
+};
+
+static const CoordRec char93_stroke3[] = {
+ { 4.44, -33.3333 },
+ { 37.7733, -33.3333 },
+};
+
+static const StrokeRec char93[] = {
+ { 2, char93_stroke0 },
+ { 2, char93_stroke1 },
+ { 2, char93_stroke2 },
+ { 2, char93_stroke3 },
+};
+
+/* char: 94 '^' */
+
+static const CoordRec char94_stroke0[] = {
+ { 44.0752, 109.524 },
+ { 5.98, 42.8571 },
+};
+
+static const CoordRec char94_stroke1[] = {
+ { 44.0752, 109.524 },
+ { 82.1705, 42.8571 },
+};
+
+static const StrokeRec char94[] = {
+ { 2, char94_stroke0 },
+ { 2, char94_stroke1 },
+};
+
+/* char: 95 '_' */
+
+static const CoordRec char95_stroke0[] = {
+ { -1.1, -33.3333 },
+ { 103.662, -33.3333 },
+ { 103.662, -28.5714 },
+ { -1.1, -28.5714 },
+ { -1.1, -33.3333 },
+};
+
+static const StrokeRec char95[] = {
+ { 5, char95_stroke0 },
+};
+
+/* char: 96 '`' */
+
+static const CoordRec char96_stroke0[] = {
+ { 33.0219, 100 },
+ { 56.8314, 71.4286 },
+};
+
+static const CoordRec char96_stroke1[] = {
+ { 33.0219, 100 },
+ { 28.26, 95.2381 },
+ { 56.8314, 71.4286 },
+};
+
+static const StrokeRec char96[] = {
+ { 2, char96_stroke0 },
+ { 3, char96_stroke1 },
+};
+
+/* char: 97 'a' */
+
+static const CoordRec char97_stroke0[] = {
+ { 63.8229, 66.6667 },
+ { 63.8229, 0 },
+};
+
+static const CoordRec char97_stroke1[] = {
+ { 63.8229, 52.381 },
+ { 54.299, 61.9048 },
+ { 44.7752, 66.6667 },
+ { 30.4895, 66.6667 },
+ { 20.9657, 61.9048 },
+ { 11.4419, 52.381 },
+ { 6.68, 38.0952 },
+ { 6.68, 28.5714 },
+ { 11.4419, 14.2857 },
+ { 20.9657, 4.7619 },
+ { 30.4895, 0 },
+ { 44.7752, 0 },
+ { 54.299, 4.7619 },
+ { 63.8229, 14.2857 },
+};
+
+static const StrokeRec char97[] = {
+ { 2, char97_stroke0 },
+ { 14, char97_stroke1 },
+};
+
+/* char: 98 'b' */
+
+static const CoordRec char98_stroke0[] = {
+ { 8.76, 100 },
+ { 8.76, 0 },
+};
+
+static const CoordRec char98_stroke1[] = {
+ { 8.76, 52.381 },
+ { 18.2838, 61.9048 },
+ { 27.8076, 66.6667 },
+ { 42.0933, 66.6667 },
+ { 51.6171, 61.9048 },
+ { 61.141, 52.381 },
+ { 65.9029, 38.0952 },
+ { 65.9029, 28.5714 },
+ { 61.141, 14.2857 },
+ { 51.6171, 4.7619 },
+ { 42.0933, 0 },
+ { 27.8076, 0 },
+ { 18.2838, 4.7619 },
+ { 8.76, 14.2857 },
+};
+
+static const StrokeRec char98[] = {
+ { 2, char98_stroke0 },
+ { 14, char98_stroke1 },
+};
+
+/* char: 99 'c' */
+
+static const CoordRec char99_stroke0[] = {
+ { 62.6629, 52.381 },
+ { 53.139, 61.9048 },
+ { 43.6152, 66.6667 },
+ { 29.3295, 66.6667 },
+ { 19.8057, 61.9048 },
+ { 10.2819, 52.381 },
+ { 5.52, 38.0952 },
+ { 5.52, 28.5714 },
+ { 10.2819, 14.2857 },
+ { 19.8057, 4.7619 },
+ { 29.3295, 0 },
+ { 43.6152, 0 },
+ { 53.139, 4.7619 },
+ { 62.6629, 14.2857 },
+};
+
+static const StrokeRec char99[] = {
+ { 14, char99_stroke0 },
+};
+
+/* char: 100 'd' */
+
+static const CoordRec char100_stroke0[] = {
+ { 61.7829, 100 },
+ { 61.7829, 0 },
+};
+
+static const CoordRec char100_stroke1[] = {
+ { 61.7829, 52.381 },
+ { 52.259, 61.9048 },
+ { 42.7352, 66.6667 },
+ { 28.4495, 66.6667 },
+ { 18.9257, 61.9048 },
+ { 9.4019, 52.381 },
+ { 4.64, 38.0952 },
+ { 4.64, 28.5714 },
+ { 9.4019, 14.2857 },
+ { 18.9257, 4.7619 },
+ { 28.4495, 0 },
+ { 42.7352, 0 },
+ { 52.259, 4.7619 },
+ { 61.7829, 14.2857 },
+};
+
+static const StrokeRec char100[] = {
+ { 2, char100_stroke0 },
+ { 14, char100_stroke1 },
+};
+
+/* char: 101 'e' */
+
+static const CoordRec char101_stroke0[] = {
+ { 5.72, 38.0952 },
+ { 62.8629, 38.0952 },
+ { 62.8629, 47.619 },
+ { 58.101, 57.1429 },
+ { 53.339, 61.9048 },
+ { 43.8152, 66.6667 },
+ { 29.5295, 66.6667 },
+ { 20.0057, 61.9048 },
+ { 10.4819, 52.381 },
+ { 5.72, 38.0952 },
+ { 5.72, 28.5714 },
+ { 10.4819, 14.2857 },
+ { 20.0057, 4.7619 },
+ { 29.5295, 0 },
+ { 43.8152, 0 },
+ { 53.339, 4.7619 },
+ { 62.8629, 14.2857 },
+};
+
+static const StrokeRec char101[] = {
+ { 17, char101_stroke0 },
+};
+
+/* char: 102 'f' */
+
+static const CoordRec char102_stroke0[] = {
+ { 38.7752, 100 },
+ { 29.2514, 100 },
+ { 19.7276, 95.2381 },
+ { 14.9657, 80.9524 },
+ { 14.9657, 0 },
+};
+
+static const CoordRec char102_stroke1[] = {
+ { 0.68, 66.6667 },
+ { 34.0133, 66.6667 },
+};
+
+static const StrokeRec char102[] = {
+ { 5, char102_stroke0 },
+ { 2, char102_stroke1 },
+};
+
+/* char: 103 'g' */
+
+static const CoordRec char103_stroke0[] = {
+ { 62.5029, 66.6667 },
+ { 62.5029, -9.5238 },
+ { 57.741, -23.8095 },
+ { 52.979, -28.5714 },
+ { 43.4552, -33.3333 },
+ { 29.1695, -33.3333 },
+ { 19.6457, -28.5714 },
+};
+
+static const CoordRec char103_stroke1[] = {
+ { 62.5029, 52.381 },
+ { 52.979, 61.9048 },
+ { 43.4552, 66.6667 },
+ { 29.1695, 66.6667 },
+ { 19.6457, 61.9048 },
+ { 10.1219, 52.381 },
+ { 5.36, 38.0952 },
+ { 5.36, 28.5714 },
+ { 10.1219, 14.2857 },
+ { 19.6457, 4.7619 },
+ { 29.1695, 0 },
+ { 43.4552, 0 },
+ { 52.979, 4.7619 },
+ { 62.5029, 14.2857 },
+};
+
+static const StrokeRec char103[] = {
+ { 7, char103_stroke0 },
+ { 14, char103_stroke1 },
+};
+
+/* char: 104 'h' */
+
+static const CoordRec char104_stroke0[] = {
+ { 9.6, 100 },
+ { 9.6, 0 },
+};
+
+static const CoordRec char104_stroke1[] = {
+ { 9.6, 47.619 },
+ { 23.8857, 61.9048 },
+ { 33.4095, 66.6667 },
+ { 47.6952, 66.6667 },
+ { 57.219, 61.9048 },
+ { 61.981, 47.619 },
+ { 61.981, 0 },
+};
+
+static const StrokeRec char104[] = {
+ { 2, char104_stroke0 },
+ { 7, char104_stroke1 },
+};
+
+/* char: 105 'i' */
+
+static const CoordRec char105_stroke0[] = {
+ { 10.02, 100 },
+ { 14.7819, 95.2381 },
+ { 19.5438, 100 },
+ { 14.7819, 104.762 },
+ { 10.02, 100 },
+};
+
+static const CoordRec char105_stroke1[] = {
+ { 14.7819, 66.6667 },
+ { 14.7819, 0 },
+};
+
+static const StrokeRec char105[] = {
+ { 5, char105_stroke0 },
+ { 2, char105_stroke1 },
+};
+
+/* char: 106 'j' */
+
+static const CoordRec char106_stroke0[] = {
+ { 17.3876, 100 },
+ { 22.1495, 95.2381 },
+ { 26.9114, 100 },
+ { 22.1495, 104.762 },
+ { 17.3876, 100 },
+};
+
+static const CoordRec char106_stroke1[] = {
+ { 22.1495, 66.6667 },
+ { 22.1495, -14.2857 },
+ { 17.3876, -28.5714 },
+ { 7.8638, -33.3333 },
+ { -1.66, -33.3333 },
+};
+
+static const StrokeRec char106[] = {
+ { 5, char106_stroke0 },
+ { 5, char106_stroke1 },
+};
+
+/* char: 107 'k' */
+
+static const CoordRec char107_stroke0[] = {
+ { 9.6, 100 },
+ { 9.6, 0 },
+};
+
+static const CoordRec char107_stroke1[] = {
+ { 57.219, 66.6667 },
+ { 9.6, 19.0476 },
+};
+
+static const CoordRec char107_stroke2[] = {
+ { 28.6476, 38.0952 },
+ { 61.981, 0 },
+};
+
+static const StrokeRec char107[] = {
+ { 2, char107_stroke0 },
+ { 2, char107_stroke1 },
+ { 2, char107_stroke2 },
+};
+
+/* char: 108 'l' */
+
+static const CoordRec char108_stroke0[] = {
+ { 10.02, 100 },
+ { 10.02, 0 },
+};
+
+static const StrokeRec char108[] = {
+ { 2, char108_stroke0 },
+};
+
+/* char: 109 'm' */
+
+static const CoordRec char109_stroke0[] = {
+ { 9.6, 66.6667 },
+ { 9.6, 0 },
+};
+
+static const CoordRec char109_stroke1[] = {
+ { 9.6, 47.619 },
+ { 23.8857, 61.9048 },
+ { 33.4095, 66.6667 },
+ { 47.6952, 66.6667 },
+ { 57.219, 61.9048 },
+ { 61.981, 47.619 },
+ { 61.981, 0 },
+};
+
+static const CoordRec char109_stroke2[] = {
+ { 61.981, 47.619 },
+ { 76.2667, 61.9048 },
+ { 85.7905, 66.6667 },
+ { 100.076, 66.6667 },
+ { 109.6, 61.9048 },
+ { 114.362, 47.619 },
+ { 114.362, 0 },
+};
+
+static const StrokeRec char109[] = {
+ { 2, char109_stroke0 },
+ { 7, char109_stroke1 },
+ { 7, char109_stroke2 },
+};
+
+/* char: 110 'n' */
+
+static const CoordRec char110_stroke0[] = {
+ { 9.18, 66.6667 },
+ { 9.18, 0 },
+};
+
+static const CoordRec char110_stroke1[] = {
+ { 9.18, 47.619 },
+ { 23.4657, 61.9048 },
+ { 32.9895, 66.6667 },
+ { 47.2752, 66.6667 },
+ { 56.799, 61.9048 },
+ { 61.561, 47.619 },
+ { 61.561, 0 },
+};
+
+static const StrokeRec char110[] = {
+ { 2, char110_stroke0 },
+ { 7, char110_stroke1 },
+};
+
+/* char: 111 'o' */
+
+static const CoordRec char111_stroke0[] = {
+ { 28.7895, 66.6667 },
+ { 19.2657, 61.9048 },
+ { 9.7419, 52.381 },
+ { 4.98, 38.0952 },
+ { 4.98, 28.5714 },
+ { 9.7419, 14.2857 },
+ { 19.2657, 4.7619 },
+ { 28.7895, 0 },
+ { 43.0752, 0 },
+ { 52.599, 4.7619 },
+ { 62.1229, 14.2857 },
+ { 66.8848, 28.5714 },
+ { 66.8848, 38.0952 },
+ { 62.1229, 52.381 },
+ { 52.599, 61.9048 },
+ { 43.0752, 66.6667 },
+ { 28.7895, 66.6667 },
+};
+
+static const StrokeRec char111[] = {
+ { 17, char111_stroke0 },
+};
+
+/* char: 112 'p' */
+
+static const CoordRec char112_stroke0[] = {
+ { 9.46, 66.6667 },
+ { 9.46, -33.3333 },
+};
+
+static const CoordRec char112_stroke1[] = {
+ { 9.46, 52.381 },
+ { 18.9838, 61.9048 },
+ { 28.5076, 66.6667 },
+ { 42.7933, 66.6667 },
+ { 52.3171, 61.9048 },
+ { 61.841, 52.381 },
+ { 66.6029, 38.0952 },
+ { 66.6029, 28.5714 },
+ { 61.841, 14.2857 },
+ { 52.3171, 4.7619 },
+ { 42.7933, 0 },
+ { 28.5076, 0 },
+ { 18.9838, 4.7619 },
+ { 9.46, 14.2857 },
+};
+
+static const StrokeRec char112[] = {
+ { 2, char112_stroke0 },
+ { 14, char112_stroke1 },
+};
+
+/* char: 113 'q' */
+
+static const CoordRec char113_stroke0[] = {
+ { 61.9829, 66.6667 },
+ { 61.9829, -33.3333 },
+};
+
+static const CoordRec char113_stroke1[] = {
+ { 61.9829, 52.381 },
+ { 52.459, 61.9048 },
+ { 42.9352, 66.6667 },
+ { 28.6495, 66.6667 },
+ { 19.1257, 61.9048 },
+ { 9.6019, 52.381 },
+ { 4.84, 38.0952 },
+ { 4.84, 28.5714 },
+ { 9.6019, 14.2857 },
+ { 19.1257, 4.7619 },
+ { 28.6495, 0 },
+ { 42.9352, 0 },
+ { 52.459, 4.7619 },
+ { 61.9829, 14.2857 },
+};
+
+static const StrokeRec char113[] = {
+ { 2, char113_stroke0 },
+ { 14, char113_stroke1 },
+};
+
+/* char: 114 'r' */
+
+static const CoordRec char114_stroke0[] = {
+ { 9.46, 66.6667 },
+ { 9.46, 0 },
+};
+
+static const CoordRec char114_stroke1[] = {
+ { 9.46, 38.0952 },
+ { 14.2219, 52.381 },
+ { 23.7457, 61.9048 },
+ { 33.2695, 66.6667 },
+ { 47.5552, 66.6667 },
+};
+
+static const StrokeRec char114[] = {
+ { 2, char114_stroke0 },
+ { 5, char114_stroke1 },
+};
+
+/* char: 115 's' */
+
+static const CoordRec char115_stroke0[] = {
+ { 57.081, 52.381 },
+ { 52.319, 61.9048 },
+ { 38.0333, 66.6667 },
+ { 23.7476, 66.6667 },
+ { 9.4619, 61.9048 },
+ { 4.7, 52.381 },
+ { 9.4619, 42.8571 },
+ { 18.9857, 38.0952 },
+ { 42.7952, 33.3333 },
+ { 52.319, 28.5714 },
+ { 57.081, 19.0476 },
+ { 57.081, 14.2857 },
+ { 52.319, 4.7619 },
+ { 38.0333, 0 },
+ { 23.7476, 0 },
+ { 9.4619, 4.7619 },
+ { 4.7, 14.2857 },
+};
+
+static const StrokeRec char115[] = {
+ { 17, char115_stroke0 },
+};
+
+/* char: 116 't' */
+
+static const CoordRec char116_stroke0[] = {
+ { 14.8257, 100 },
+ { 14.8257, 19.0476 },
+ { 19.5876, 4.7619 },
+ { 29.1114, 0 },
+ { 38.6352, 0 },
+};
+
+static const CoordRec char116_stroke1[] = {
+ { 0.54, 66.6667 },
+ { 33.8733, 66.6667 },
+};
+
+static const StrokeRec char116[] = {
+ { 5, char116_stroke0 },
+ { 2, char116_stroke1 },
+};
+
+/* char: 117 'u' */
+
+static const CoordRec char117_stroke0[] = {
+ { 9.46, 66.6667 },
+ { 9.46, 19.0476 },
+ { 14.2219, 4.7619 },
+ { 23.7457, 0 },
+ { 38.0314, 0 },
+ { 47.5552, 4.7619 },
+ { 61.841, 19.0476 },
+};
+
+static const CoordRec char117_stroke1[] = {
+ { 61.841, 66.6667 },
+ { 61.841, 0 },
+};
+
+static const StrokeRec char117[] = {
+ { 7, char117_stroke0 },
+ { 2, char117_stroke1 },
+};
+
+/* char: 118 'v' */
+
+static const CoordRec char118_stroke0[] = {
+ { 1.8, 66.6667 },
+ { 30.3714, 0 },
+};
+
+static const CoordRec char118_stroke1[] = {
+ { 58.9429, 66.6667 },
+ { 30.3714, 0 },
+};
+
+static const StrokeRec char118[] = {
+ { 2, char118_stroke0 },
+ { 2, char118_stroke1 },
+};
+
+/* char: 119 'w' */
+
+static const CoordRec char119_stroke0[] = {
+ { 2.5, 66.6667 },
+ { 21.5476, 0 },
+};
+
+static const CoordRec char119_stroke1[] = {
+ { 40.5952, 66.6667 },
+ { 21.5476, 0 },
+};
+
+static const CoordRec char119_stroke2[] = {
+ { 40.5952, 66.6667 },
+ { 59.6429, 0 },
+};
+
+static const CoordRec char119_stroke3[] = {
+ { 78.6905, 66.6667 },
+ { 59.6429, 0 },
+};
+
+static const StrokeRec char119[] = {
+ { 2, char119_stroke0 },
+ { 2, char119_stroke1 },
+ { 2, char119_stroke2 },
+ { 2, char119_stroke3 },
+};
+
+/* char: 120 'x' */
+
+static const CoordRec char120_stroke0[] = {
+ { 1.66, 66.6667 },
+ { 54.041, 0 },
+};
+
+static const CoordRec char120_stroke1[] = {
+ { 54.041, 66.6667 },
+ { 1.66, 0 },
+};
+
+static const StrokeRec char120[] = {
+ { 2, char120_stroke0 },
+ { 2, char120_stroke1 },
+};
+
+/* char: 121 'y' */
+
+static const CoordRec char121_stroke0[] = {
+ { 6.5619, 66.6667 },
+ { 35.1333, 0 },
+};
+
+static const CoordRec char121_stroke1[] = {
+ { 63.7048, 66.6667 },
+ { 35.1333, 0 },
+ { 25.6095, -19.0476 },
+ { 16.0857, -28.5714 },
+ { 6.5619, -33.3333 },
+ { 1.8, -33.3333 },
+};
+
+static const StrokeRec char121[] = {
+ { 2, char121_stroke0 },
+ { 6, char121_stroke1 },
+};
+
+/* char: 122 'z' */
+
+static const CoordRec char122_stroke0[] = {
+ { 56.821, 66.6667 },
+ { 4.44, 0 },
+};
+
+static const CoordRec char122_stroke1[] = {
+ { 4.44, 66.6667 },
+ { 56.821, 66.6667 },
+};
+
+static const CoordRec char122_stroke2[] = {
+ { 4.44, 0 },
+ { 56.821, 0 },
+};
+
+static const StrokeRec char122[] = {
+ { 2, char122_stroke0 },
+ { 2, char122_stroke1 },
+ { 2, char122_stroke2 },
+};
+
+/* char: 123 '{' */
+
+static const CoordRec char123_stroke0[] = {
+ { 31.1895, 119.048 },
+ { 21.6657, 114.286 },
+ { 16.9038, 109.524 },
+ { 12.1419, 100 },
+ { 12.1419, 90.4762 },
+ { 16.9038, 80.9524 },
+ { 21.6657, 76.1905 },
+ { 26.4276, 66.6667 },
+ { 26.4276, 57.1429 },
+ { 16.9038, 47.619 },
+};
+
+static const CoordRec char123_stroke1[] = {
+ { 21.6657, 114.286 },
+ { 16.9038, 104.762 },
+ { 16.9038, 95.2381 },
+ { 21.6657, 85.7143 },
+ { 26.4276, 80.9524 },
+ { 31.1895, 71.4286 },
+ { 31.1895, 61.9048 },
+ { 26.4276, 52.381 },
+ { 7.38, 42.8571 },
+ { 26.4276, 33.3333 },
+ { 31.1895, 23.8095 },
+ { 31.1895, 14.2857 },
+ { 26.4276, 4.7619 },
+ { 21.6657, 0 },
+ { 16.9038, -9.5238 },
+ { 16.9038, -19.0476 },
+ { 21.6657, -28.5714 },
+};
+
+static const CoordRec char123_stroke2[] = {
+ { 16.9038, 38.0952 },
+ { 26.4276, 28.5714 },
+ { 26.4276, 19.0476 },
+ { 21.6657, 9.5238 },
+ { 16.9038, 4.7619 },
+ { 12.1419, -4.7619 },
+ { 12.1419, -14.2857 },
+ { 16.9038, -23.8095 },
+ { 21.6657, -28.5714 },
+ { 31.1895, -33.3333 },
+};
+
+static const StrokeRec char123[] = {
+ { 10, char123_stroke0 },
+ { 17, char123_stroke1 },
+ { 10, char123_stroke2 },
+};
+
+/* char: 124 '|' */
+
+static const CoordRec char124_stroke0[] = {
+ { 11.54, 119.048 },
+ { 11.54, -33.3333 },
+};
+
+static const StrokeRec char124[] = {
+ { 2, char124_stroke0 },
+};
+
+/* char: 125 '}' */
+
+static const CoordRec char125_stroke0[] = {
+ { 9.18, 119.048 },
+ { 18.7038, 114.286 },
+ { 23.4657, 109.524 },
+ { 28.2276, 100 },
+ { 28.2276, 90.4762 },
+ { 23.4657, 80.9524 },
+ { 18.7038, 76.1905 },
+ { 13.9419, 66.6667 },
+ { 13.9419, 57.1429 },
+ { 23.4657, 47.619 },
+};
+
+static const CoordRec char125_stroke1[] = {
+ { 18.7038, 114.286 },
+ { 23.4657, 104.762 },
+ { 23.4657, 95.2381 },
+ { 18.7038, 85.7143 },
+ { 13.9419, 80.9524 },
+ { 9.18, 71.4286 },
+ { 9.18, 61.9048 },
+ { 13.9419, 52.381 },
+ { 32.9895, 42.8571 },
+ { 13.9419, 33.3333 },
+ { 9.18, 23.8095 },
+ { 9.18, 14.2857 },
+ { 13.9419, 4.7619 },
+ { 18.7038, 0 },
+ { 23.4657, -9.5238 },
+ { 23.4657, -19.0476 },
+ { 18.7038, -28.5714 },
+};
+
+static const CoordRec char125_stroke2[] = {
+ { 23.4657, 38.0952 },
+ { 13.9419, 28.5714 },
+ { 13.9419, 19.0476 },
+ { 18.7038, 9.5238 },
+ { 23.4657, 4.7619 },
+ { 28.2276, -4.7619 },
+ { 28.2276, -14.2857 },
+ { 23.4657, -23.8095 },
+ { 18.7038, -28.5714 },
+ { 9.18, -33.3333 },
+};
+
+static const StrokeRec char125[] = {
+ { 10, char125_stroke0 },
+ { 17, char125_stroke1 },
+ { 10, char125_stroke2 },
+};
+
+/* char: 126 '~' */
+
+static const CoordRec char126_stroke0[] = {
+ { 2.92, 28.5714 },
+ { 2.92, 38.0952 },
+ { 7.6819, 52.381 },
+ { 17.2057, 57.1429 },
+ { 26.7295, 57.1429 },
+ { 36.2533, 52.381 },
+ { 55.301, 38.0952 },
+ { 64.8248, 33.3333 },
+ { 74.3486, 33.3333 },
+ { 83.8724, 38.0952 },
+ { 88.6343, 47.619 },
+};
+
+static const CoordRec char126_stroke1[] = {
+ { 2.92, 38.0952 },
+ { 7.6819, 47.619 },
+ { 17.2057, 52.381 },
+ { 26.7295, 52.381 },
+ { 36.2533, 47.619 },
+ { 55.301, 33.3333 },
+ { 64.8248, 28.5714 },
+ { 74.3486, 28.5714 },
+ { 83.8724, 33.3333 },
+ { 88.6343, 47.619 },
+ { 88.6343, 57.1429 },
+};
+
+static const StrokeRec char126[] = {
+ { 11, char126_stroke0 },
+ { 11, char126_stroke1 },
+};
+
+/* char: 127 */
+
+static const CoordRec char127_stroke0[] = {
+ { 52.381, 100 },
+ { 14.2857, -33.3333 },
+};
+
+static const CoordRec char127_stroke1[] = {
+ { 28.5714, 66.6667 },
+ { 14.2857, 61.9048 },
+ { 4.7619, 52.381 },
+ { 0, 38.0952 },
+ { 0, 23.8095 },
+ { 4.7619, 14.2857 },
+ { 14.2857, 4.7619 },
+ { 28.5714, 0 },
+ { 38.0952, 0 },
+ { 52.381, 4.7619 },
+ { 61.9048, 14.2857 },
+ { 66.6667, 28.5714 },
+ { 66.6667, 42.8571 },
+ { 61.9048, 52.381 },
+ { 52.381, 61.9048 },
+ { 38.0952, 66.6667 },
+ { 28.5714, 66.6667 },
+};
+
+static const StrokeRec char127[] = {
+ { 2, char127_stroke0 },
+ { 17, char127_stroke1 },
+};
+
+static const StrokeCharRec chars[] = {
+ { 0, /* char0 */ 0, 0, 0 },
+ { 0, /* char1 */ 0, 0, 0 },
+ { 0, /* char2 */ 0, 0, 0 },
+ { 0, /* char3 */ 0, 0, 0 },
+ { 0, /* char4 */ 0, 0, 0 },
+ { 0, /* char5 */ 0, 0, 0 },
+ { 0, /* char6 */ 0, 0, 0 },
+ { 0, /* char7 */ 0, 0, 0 },
+ { 0, /* char8 */ 0, 0, 0 },
+ { 0, /* char9 */ 0, 0, 0 },
+ { 0, /* char10 */ 0, 0, 0 },
+ { 0, /* char11 */ 0, 0, 0 },
+ { 0, /* char12 */ 0, 0, 0 },
+ { 0, /* char13 */ 0, 0, 0 },
+ { 0, /* char14 */ 0, 0, 0 },
+ { 0, /* char15 */ 0, 0, 0 },
+ { 0, /* char16 */ 0, 0, 0 },
+ { 0, /* char17 */ 0, 0, 0 },
+ { 0, /* char18 */ 0, 0, 0 },
+ { 0, /* char19 */ 0, 0, 0 },
+ { 0, /* char20 */ 0, 0, 0 },
+ { 0, /* char21 */ 0, 0, 0 },
+ { 0, /* char22 */ 0, 0, 0 },
+ { 0, /* char23 */ 0, 0, 0 },
+ { 0, /* char24 */ 0, 0, 0 },
+ { 0, /* char25 */ 0, 0, 0 },
+ { 0, /* char26 */ 0, 0, 0 },
+ { 0, /* char27 */ 0, 0, 0 },
+ { 0, /* char28 */ 0, 0, 0 },
+ { 0, /* char29 */ 0, 0, 0 },
+ { 0, /* char30 */ 0, 0, 0 },
+ { 0, /* char31 */ 0, 0, 0 },
+ { 0, /* char32 */ 0, 35, 70 }, /* jwz: changed this to be 'n' width.
+ (it was 52.381, 104.762) */
+ { 2, char33, 13.3819, 26.6238 },
+ { 2, char34, 23.0676, 51.4352 },
+ { 4, char35, 36.5333, 79.4886 },
+ { 3, char36, 38.1533, 76.2067 },
+ { 3, char37, 49.2171, 96.5743 },
+ { 1, char38, 53.599, 101.758 },
+ { 1, char39, 4.44, 13.62 },
+ { 1, char40, 21.8657, 47.1733 },
+ { 1, char41, 24.3276, 47.5333 },
+ { 3, char42, 30.7695, 59.439 },
+ { 2, char43, 48.8371, 97.2543 },
+ { 1, char44, 13.5219, 26.0638 },
+ { 1, char45, 50.2371, 100.754 },
+ { 1, char46, 13.1019, 26.4838 },
+ { 1, char47, 40.5733, 82.1067 },
+ { 1, char48, 38.3133, 77.0667 },
+ { 1, char49, 30.8676, 66.5295 },
+ { 1, char50, 38.7533, 77.6467 },
+ { 1, char51, 38.3333, 77.0467 },
+ { 2, char52, 37.2133, 80.1686 },
+ { 1, char53, 38.1933, 77.6867 },
+ { 1, char54, 34.1514, 73.8048 },
+ { 2, char55, 38.8933, 77.2267 },
+ { 1, char56, 38.9333, 77.6667 },
+ { 1, char57, 39.9333, 74.0648 },
+ { 2, char58, 14.0819, 26.2238 },
+ { 2, char59, 12.9619, 26.3038 },
+ { 1, char60, 41.1552, 81.6105 },
+ { 2, char61, 48.5571, 97.2543 },
+ { 1, char62, 40.8752, 81.6105 },
+ { 2, char63, 36.9914, 73.9029 },
+ { 2, char64, 34.9314, 74.3648 },
+ { 3, char65, 40.5952, 80.4905 },
+ { 3, char66, 44.7533, 83.6267 },
+ { 1, char67, 39.9933, 84.4886 },
+ { 2, char68, 45.2933, 85.2867 },
+ { 4, char69, 39.9914, 78.1848 },
+ { 3, char70, 39.9914, 78.7448 },
+ { 2, char71, 40.3933, 89.7686 },
+ { 3, char72, 44.7533, 89.0867 },
+ { 1, char73, 10.86, 21.3 },
+ { 1, char74, 31.0714, 59.999 },
+ { 3, char75, 44.6133, 79.3267 },
+ { 2, char76, 40.2514, 71.3229 },
+ { 4, char77, 48.9552, 97.2105 },
+ { 3, char78, 44.4733, 88.8067 },
+ { 1, char79, 44.3352, 88.8305 },
+ { 2, char80, 45.4333, 85.6667 },
+ { 2, char81, 43.3952, 88.0905 },
+ { 3, char82, 45.0133, 82.3667 },
+ { 1, char83, 41.3333, 80.8267 },
+ { 2, char84, 35.6933, 71.9467 },
+ { 1, char85, 44.8733, 89.4867 },
+ { 2, char86, 40.4552, 81.6105 },
+ { 4, char87, 49.839, 100.518 },
+ { 2, char88, 35.8333, 72.3667 },
+ { 2, char89, 39.6152, 79.6505 },
+ { 3, char90, 35.8333, 73.7467 },
+ { 4, char91, 22.0657, 46.1133 },
+ { 1, char92, 39.1733, 78.2067 },
+ { 4, char93, 23.4876, 46.3933 },
+ { 2, char94, 44.0752, 90.2305 },
+ { 1, char95, 51.281, 104.062 },
+ { 2, char96, 42.5457, 83.5714 },
+ { 2, char97, 35.2514, 66.6029 },
+ { 2, char98, 37.3314, 70.4629 },
+ { 1, char99, 34.0914, 68.9229 },
+ { 2, char100, 33.2114, 70.2629 },
+ { 1, char101, 34.2914, 68.5229 },
+ { 2, char102, 14.9657, 38.6552 },
+ { 2, char103, 33.9314, 70.9829 },
+ { 2, char104, 33.4095, 71.021 },
+ { 2, char105, 14.7819, 28.8638 },
+ { 2, char106, 17.3876, 36.2314 },
+ { 3, char107, 33.4095, 62.521 },
+ { 1, char108, 10.02, 19.34 },
+ { 3, char109, 61.981, 123.962 },
+ { 2, char110, 32.9895, 70.881 },
+ { 1, char111, 33.5514, 71.7448 },
+ { 2, char112, 38.0314, 70.8029 },
+ { 2, char113, 33.4114, 70.7429 },
+ { 2, char114, 23.7457, 49.4952 },
+ { 1, char115, 28.5095, 62.321 },
+ { 2, char116, 14.8257, 39.3152 },
+ { 2, char117, 33.2695, 71.161 },
+ { 2, char118, 30.3714, 60.6029 },
+ { 4, char119, 40.5952, 80.4905 },
+ { 2, char120, 25.4695, 56.401 },
+ { 2, char121, 35.1333, 66.0648 },
+ { 3, char122, 28.2495, 61.821 },
+ { 3, char123, 21.6657, 41.6295 },
+ { 1, char124, 11.54, 23.78 },
+ { 3, char125, 18.7038, 41.4695 },
+ { 2, char126, 45.7771, 91.2743 },
+ { 2, char127, 33.3333, 66.6667 },
+};
+
+static
+StrokeFontRec glutStrokeRoman = { "Roman", 128, chars, 119.048, -33.3333 };
+
diff --git a/hacks/glx/glut_stroke.c b/hacks/glx/glut_stroke.c
new file mode 100644
index 0000000..59850ea
--- /dev/null
+++ b/hacks/glx/glut_stroke.c
@@ -0,0 +1,66 @@
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#if 0 /* for Mesa */
+# include "glutint.h"
+#else /* for xscreensaver */
+
+# ifdef HAVE_CONFIG_H
+# include "config.h"
+# endif
+
+# ifdef HAVE_COCOA
+# include "jwxyz.h"
+# elif defined(HAVE_ANDROID)
+# include "jwxyz.h"
+# include <GLES/gl.h>
+# else /* real X11 */
+# include <GL/gl.h>
+# endif
+
+# ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+# endif /* HAVE_JWZGLES */
+
+# undef APIENTRY
+# define APIENTRY /**/
+#endif
+
+#include "glutstroke.h"
+
+void APIENTRY
+glutStrokeCharacter(GLUTstrokeFont font, int c)
+{
+ const StrokeCharRec *ch;
+ const StrokeRec *stroke;
+ const CoordRec *coord;
+ StrokeFontPtr fontinfo;
+ int i, j;
+
+
+#if defined(_WIN32)
+ fontinfo = (StrokeFontPtr) __glutFont(font);
+#else
+ fontinfo = (StrokeFontPtr) font;
+#endif
+
+ if (c < 0 || c >= fontinfo->num_chars)
+ return;
+ ch = &(fontinfo->ch[c]);
+ if (ch) {
+ for (i = ch->num_strokes, stroke = ch->stroke;
+ i > 0; i--, stroke++) {
+ glBegin(GL_LINE_STRIP);
+ for (j = stroke->num_coords, coord = stroke->coord;
+ j > 0; j--, coord++) {
+ glVertex2f(coord->x, coord->y);
+ }
+ glEnd();
+ }
+ glTranslatef(ch->right, 0.0, 0.0);
+ }
+}
diff --git a/hacks/glx/glut_swidth.c b/hacks/glx/glut_swidth.c
new file mode 100644
index 0000000..b165a0a
--- /dev/null
+++ b/hacks/glx/glut_swidth.c
@@ -0,0 +1,77 @@
+
+/* Copyright (c) Mark J. Kilgard, 1995. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#if 0 /* for Mesa */
+# include "glutint.h"
+#else /* for xscreensaver */
+# ifdef HAVE_CONFIG_H
+# include "config.h"
+# endif
+# ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+# endif
+#ifdef HAVE_ANDROID
+#include <GLES/gl.h>
+#define Bool int
+#endif
+# ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+# endif /* HAVE_JWZGLES */
+# undef APIENTRY
+# define APIENTRY /**/
+#endif
+
+#include "glutstroke.h"
+
+/* CENTRY */
+int APIENTRY
+glutStrokeWidth(GLUTstrokeFont font, int c)
+{
+ StrokeFontPtr fontinfo;
+ const StrokeCharRec *ch;
+
+#if defined(_WIN32)
+ fontinfo = (StrokeFontPtr) __glutFont(font);
+#else
+ fontinfo = (StrokeFontPtr) font;
+#endif
+
+ if (c < 0 || c >= fontinfo->num_chars)
+ return 0;
+ ch = &(fontinfo->ch[c]);
+ if (ch)
+ return ch->right;
+ else
+ return 0;
+}
+
+int APIENTRY
+glutStrokeLength(GLUTstrokeFont font, const unsigned char *string)
+{
+ int c, length;
+ StrokeFontPtr fontinfo;
+ const StrokeCharRec *ch;
+
+#if defined(_WIN32)
+ fontinfo = (StrokeFontPtr) __glutFont(font);
+#else
+ fontinfo = (StrokeFontPtr) font;
+#endif
+
+ length = 0;
+ for (; *string != '\0'; string++) {
+ c = *string;
+ if (c >= 0 && c < fontinfo->num_chars) {
+ ch = &(fontinfo->ch[c]);
+ if (ch)
+ length += ch->right;
+ }
+ }
+ return length;
+}
+
+/* ENDCENTRY */
diff --git a/hacks/glx/glutstroke.h b/hacks/glx/glutstroke.h
new file mode 100644
index 0000000..43a645b
--- /dev/null
+++ b/hacks/glx/glutstroke.h
@@ -0,0 +1,47 @@
+#ifndef __glutstroke_h__
+#define __glutstroke_h__
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#if defined(_WIN32)
+#pragma warning (disable:4244) /* disable bogus conversion warnings */
+#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */
+#endif
+
+typedef struct {
+ float x;
+ float y;
+} CoordRec, *CoordPtr;
+
+typedef struct {
+ int num_coords;
+ const CoordRec *coord;
+} StrokeRec, *StrokePtr;
+
+typedef struct {
+ int num_strokes;
+ const StrokeRec *stroke;
+ float center;
+ float right;
+} StrokeCharRec, *StrokeCharPtr;
+
+typedef struct {
+ const char *name;
+ int num_chars;
+ const StrokeCharRec *ch;
+ float top;
+ float bottom;
+} StrokeFontRec, *StrokeFontPtr;
+
+typedef void *GLUTstrokeFont;
+
+/* for xscreensaver */
+extern void glutStrokeCharacter (GLUTstrokeFont font, int c);
+extern int glutStrokeWidth (GLUTstrokeFont font, int c);
+extern int glutStrokeLength (GLUTstrokeFont font, const unsigned char *string);
+
+#endif /* __glutstroke_h__ */
diff --git a/hacks/glx/grab-ximage.c b/hacks/glx/grab-ximage.c
new file mode 100644
index 0000000..0f71847
--- /dev/null
+++ b/hacks/glx/grab-ximage.c
@@ -0,0 +1,813 @@
+/* grab-ximage.c --- grab the screen to an XImage for use with OpenGL.
+ * xscreensaver, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#ifdef HAVE_ANDROID
+#include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+# ifndef HAVE_JWZGLES
+# include <OpenGL/glu.h>
+# endif
+#else
+# include <X11/Xlib.h>
+# include <X11/Xutil.h>
+# include <GL/gl.h> /* only for GLfloat */
+# include <GL/glu.h> /* for gluBuild2DMipmaps */
+# include <GL/glx.h> /* for glXMakeCurrent() */
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "grab-ximage.h"
+#include "grabscreen.h"
+#include "pow2.h"
+#include "visual.h"
+
+/* If REFORMAT_IMAGE_DATA is defined, then we convert Pixmaps to textures
+ like this:
+
+ - get Pixmap as an XImage in whatever form the server hands us;
+ - convert that XImage to 32-bit RGBA in client-local endianness;
+ - make the texture using RGBA, UNSIGNED_BYTE.
+
+ If undefined, we do this:
+
+ - get Pixmap as an XImage in whatever form the server hands us;
+ - figure out what OpenGL texture packing parameters correspond to
+ the image data that the server sent us and use that, e.g.,
+ BGRA, INT_8_8_8_8_REV.
+
+ You might expect the second method to be faster, since we're not making
+ a second copy of the data and iterating each pixel before we hand it
+ to GL. But, you'd be wrong. The first method is almost 6x faster.
+ I guess GL is reformatting it *again*, and doing it very inefficiently!
+*/
+#define REFORMAT_IMAGE_DATA
+
+
+#include "xshm.h"
+
+extern char *progname;
+
+#include <sys/time.h>
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xutil.h>
+#endif
+
+#undef MAX
+#define MAX(a,b) ((a)>(b)?(a):(b))
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+
+static int debug_p = 0;
+
+static Bool
+bigendian (void)
+{
+ union { int i; char c[sizeof(int)]; } u;
+ u.i = 1;
+ return !u.c[0];
+}
+
+
+#ifdef REFORMAT_IMAGE_DATA
+
+/* Given a bitmask, returns the position and width of the field.
+ */
+static void
+decode_mask (unsigned long mask, unsigned long *pos_ret,
+ unsigned long *size_ret)
+{
+ int i;
+ for (i = 0; i < 32; i++)
+ if (mask & (1L << i))
+ {
+ int j = 0;
+ *pos_ret = i;
+ for (; i < 32; i++, j++)
+ if (! (mask & (1L << i)))
+ break;
+ *size_ret = j;
+ return;
+ }
+}
+
+
+/* Given a value and a field-width, expands the field to fill out 8 bits.
+ */
+static unsigned char
+spread_bits (unsigned char value, unsigned char width)
+{
+ switch (width)
+ {
+ case 8: return value;
+ case 7: return (value << 1) | (value >> 6);
+ case 6: return (value << 2) | (value >> 4);
+ case 5: return (value << 3) | (value >> 2);
+ case 4: return (value << 4) | (value);
+ case 3: return (value << 5) | (value << 2) | (value >> 2);
+ case 2: return (value << 6) | (value << 4) | (value);
+ default: abort(); break;
+ }
+}
+
+
+static XImage *
+convert_ximage_to_rgba32 (Screen *screen, XImage *image)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ Visual *visual = DefaultVisualOfScreen (screen);
+
+ int x, y;
+ unsigned long crpos=0, cgpos=0, cbpos=0, capos=0; /* bitfield positions */
+ unsigned long srpos=0, sgpos=0, sbpos=0;
+ unsigned long srmsk=0, sgmsk=0, sbmsk=0;
+ unsigned long srsiz=0, sgsiz=0, sbsiz=0;
+ XColor *colors = 0;
+ unsigned char spread_map[3][256];
+
+ /* Note: height+2 in "to" to work around an array bounds overrun
+ in gluBuild2DMipmaps / gluScaleImage.
+ */
+ XImage *from = image;
+ XImage *to = XCreateImage (dpy, visual, 32, /* depth */
+ ZPixmap, 0, 0, from->width, from->height,
+ 32, /* bitmap pad */
+ 0);
+ to->data = (char *) calloc (to->height + 2, to->bytes_per_line);
+
+ /* Set the bit order in the XImage structure to whatever the
+ local host's native bit order is.
+ */
+ to->bitmap_bit_order =
+ to->byte_order =
+ (bigendian() ? MSBFirst : LSBFirst);
+
+ if (visual_class (screen, visual) == PseudoColor ||
+ visual_class (screen, visual) == GrayScale)
+ {
+ Colormap cmap = DefaultColormapOfScreen (screen);
+ int ncolors = visual_cells (screen, visual);
+ int i;
+ colors = (XColor *) calloc (sizeof (*colors), ncolors+1);
+ for (i = 0; i < ncolors; i++)
+ colors[i].pixel = i;
+ XQueryColors (dpy, cmap, colors, ncolors);
+ }
+
+ if (colors == 0) /* truecolor */
+ {
+ srmsk = to->red_mask;
+ sgmsk = to->green_mask;
+ sbmsk = to->blue_mask;
+
+ decode_mask (srmsk, &srpos, &srsiz);
+ decode_mask (sgmsk, &sgpos, &sgsiz);
+ decode_mask (sbmsk, &sbpos, &sbsiz);
+ }
+
+ /* Pack things in "RGBA" order in client endianness. */
+ if (bigendian())
+ crpos = 24, cgpos = 16, cbpos = 8, capos = 0;
+ else
+ crpos = 0, cgpos = 8, cbpos = 16, capos = 24;
+
+ if (colors == 0) /* truecolor */
+ {
+ int i;
+ for (i = 0; i < 256; i++)
+ {
+ spread_map[0][i] = spread_bits (i, srsiz);
+ spread_map[1][i] = spread_bits (i, sgsiz);
+ spread_map[2][i] = spread_bits (i, sbsiz);
+ }
+ }
+
+ /* trying to track down an intermittent crash in ximage_putpixel_32 */
+ if (to->width < from->width) abort();
+ if (to->height < from->height) abort();
+
+ for (y = 0; y < from->height; y++)
+ for (x = 0; x < from->width; x++)
+ {
+ unsigned long sp = XGetPixel (from, x, y);
+ unsigned char sr, sg, sb;
+ unsigned long cp;
+
+ if (colors)
+ {
+ sr = colors[sp].red & 0xFF;
+ sg = colors[sp].green & 0xFF;
+ sb = colors[sp].blue & 0xFF;
+ }
+ else
+ {
+ sr = (sp & srmsk) >> srpos;
+ sg = (sp & sgmsk) >> sgpos;
+ sb = (sp & sbmsk) >> sbpos;
+
+ sr = spread_map[0][sr];
+ sg = spread_map[1][sg];
+ sb = spread_map[2][sb];
+ }
+
+ cp = ((sr << crpos) |
+ (sg << cgpos) |
+ (sb << cbpos) |
+ (0xFF << capos));
+
+ XPutPixel (to, x, y, cp);
+ }
+
+ if (colors) free (colors);
+
+ return to;
+}
+
+#endif /* REFORMAT_IMAGE_DATA */
+
+/* Shrinks the XImage by a factor of two.
+ We use this when mipmapping fails on large textures.
+ */
+static void
+halve_image (XImage *ximage, XRectangle *geom)
+{
+ int w2 = ximage->width/2;
+ int h2 = ximage->height/2;
+ int x, y;
+ XImage *ximage2;
+
+ if (w2 <= 32 || h2 <= 32) /* let's not go crazy here, man. */
+ return;
+
+ if (debug_p)
+ fprintf (stderr, "%s: shrinking image %dx%d -> %dx%d\n",
+ progname, ximage->width, ximage->height, w2, h2);
+
+ ximage2 = (XImage *) calloc (1, sizeof (*ximage2));
+ *ximage2 = *ximage;
+ ximage2->width = w2;
+ ximage2->height = h2;
+ ximage2->bytes_per_line = 0;
+ ximage2->data = 0;
+ XInitImage (ximage2);
+
+ ximage2->data = (char *) calloc (h2, ximage2->bytes_per_line);
+ if (!ximage2->data)
+ {
+ fprintf (stderr, "%s: out of memory (scaling %dx%d image to %dx%d)\n",
+ progname, ximage->width, ximage->height, w2, h2);
+ exit (1);
+ }
+
+ for (y = 0; y < h2; y++)
+ for (x = 0; x < w2; x++)
+ XPutPixel (ximage2, x, y, XGetPixel (ximage, x*2, y*2));
+
+ free (ximage->data);
+ *ximage = *ximage2;
+ ximage2->data = 0;
+ XFree (ximage2);
+
+ if (geom)
+ {
+ geom->x /= 2;
+ geom->y /= 2;
+ geom->width /= 2;
+ geom->height /= 2;
+ }
+}
+
+
+#ifdef REFORMAT_IMAGE_DATA
+
+/* Pulls the Pixmap bits from the server and returns an XImage
+ in some format acceptable to OpenGL.
+ */
+static XImage *
+pixmap_to_gl_ximage (Screen *screen, Window window, Pixmap pixmap)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ Visual *visual = DefaultVisualOfScreen (screen);
+ unsigned int width, height, depth;
+
+ XShmSegmentInfo shm_info;
+
+ XImage *server_ximage = 0;
+ XImage *client_ximage = 0;
+
+ {
+ Window root;
+ int x, y;
+ unsigned int bw;
+ XGetGeometry (dpy, pixmap, &root, &x, &y, &width, &height, &bw, &depth);
+ }
+
+ if (width < 5 || height < 5) /* something's gone wrong somewhere... */
+ return 0;
+
+ /* Convert the server-side Pixmap to a client-side GL-ordered XImage.
+ */
+ server_ximage = create_xshm_image (dpy, visual, depth, ZPixmap, &shm_info,
+ width, height);
+ get_xshm_image (dpy, pixmap, server_ximage, 0, 0, ~0L, &shm_info);
+
+ client_ximage = convert_ximage_to_rgba32 (screen, server_ximage);
+
+ destroy_xshm_image (dpy, server_ximage, &shm_info);
+
+ return client_ximage;
+}
+
+
+# else /* ! REFORMAT_IMAGE_DATA */
+
+typedef struct {
+ unsigned int depth, red_mask, green_mask, blue_mask; /* when this... */
+ GLint type, format; /* ...use this. */
+} conversion_table;
+
+/* Abbreviate these so that the table entries all fit on one line...
+ */
+#define BYTE GL_UNSIGNED_BYTE
+#define BYTE_2_3_3_REV GL_UNSIGNED_BYTE_2_3_3_REV
+#define BYTE_3_3_2 GL_UNSIGNED_BYTE_3_3_2
+#define INT_10_10_10_2 GL_UNSIGNED_INT_10_10_10_2
+#define INT_2_10_10_10_REV GL_UNSIGNED_INT_2_10_10_10_REV
+#define INT_8_8_8_8 GL_UNSIGNED_INT_8_8_8_8
+#define INT_8_8_8_8_REV GL_UNSIGNED_INT_8_8_8_8_REV
+#define SHORT_1_5_5_5_REV GL_UNSIGNED_SHORT_1_5_5_5_REV
+#define SHORT_4_4_4_4 GL_UNSIGNED_SHORT_4_4_4_4
+#define SHORT_4_4_4_4_REV GL_UNSIGNED_SHORT_4_4_4_4_REV
+#define SHORT_5_5_5_1 GL_UNSIGNED_SHORT_5_5_5_1
+#define SHORT_5_6_5 GL_UNSIGNED_SHORT_5_6_5
+#define SHORT_5_6_5_REV GL_UNSIGNED_SHORT_5_6_5_REV
+
+static const conversion_table ctable[] = {
+ { 8, 0x000000E0, 0x0000001C, 0x00000003, BYTE_3_3_2, GL_RGB },
+ { 8, 0x00000007, 0x00000038, 0x000000C0, BYTE_2_3_3_REV, GL_RGB },
+ { 16, 0x0000F800, 0x000007E0, 0x0000001F, SHORT_5_6_5, GL_RGB },
+ { 16, 0x0000001F, 0x000007E0, 0x0000F800, SHORT_5_6_5_REV, GL_RGB },
+ { 16, 0x0000F000, 0x00000F00, 0x000000F0, SHORT_4_4_4_4, GL_RGBA },
+ { 16, 0x000000F0, 0x00000F00, 0x0000F000, SHORT_4_4_4_4, GL_BGRA },
+ { 16, 0x0000000F, 0x000000F0, 0x00000F00, SHORT_4_4_4_4, GL_ABGR_EXT },
+ { 16, 0x0000000F, 0x000000F0, 0x00000F00, SHORT_4_4_4_4_REV, GL_RGBA },
+ { 16, 0x00000F00, 0x000000F0, 0x0000000F, SHORT_4_4_4_4_REV, GL_BGRA },
+ { 16, 0x0000F800, 0x000007C0, 0x0000003E, SHORT_5_5_5_1, GL_RGBA },
+ { 16, 0x0000003E, 0x000007C0, 0x0000F800, SHORT_5_5_5_1, GL_BGRA },
+ { 16, 0x00000001, 0x0000003E, 0x000007C0, SHORT_5_5_5_1, GL_ABGR_EXT },
+ { 16, 0x0000001F, 0x000003E0, 0x00007C00, SHORT_1_5_5_5_REV, GL_RGBA },
+ { 16, 0x00007C00, 0x000003E0, 0x0000001F, SHORT_1_5_5_5_REV, GL_BGRA },
+ { 32, 0xFF000000, 0x00FF0000, 0x0000FF00, INT_8_8_8_8, GL_RGBA },
+ { 32, 0x0000FF00, 0x00FF0000, 0xFF000000, INT_8_8_8_8, GL_BGRA },
+ { 32, 0x000000FF, 0x0000FF00, 0x00FF0000, INT_8_8_8_8, GL_ABGR_EXT },
+ { 32, 0x000000FF, 0x0000FF00, 0x00FF0000, INT_8_8_8_8_REV, GL_RGBA },
+ { 32, 0x00FF0000, 0x0000FF00, 0x000000FF, INT_8_8_8_8_REV, GL_BGRA },
+ { 32, 0xFFC00000, 0x003FF000, 0x00000FFC, INT_10_10_10_2, GL_RGBA },
+ { 32, 0x00000FFC, 0x003FF000, 0xFFC00000, INT_10_10_10_2, GL_BGRA },
+ { 32, 0x00000003, 0x00000FFC, 0x003FF000, INT_10_10_10_2, GL_ABGR_EXT },
+ { 32, 0x000003FF, 0x000FFC00, 0x3FF00000, INT_2_10_10_10_REV, GL_RGBA },
+ { 32, 0x3FF00000, 0x000FFC00, 0x000003FF, INT_2_10_10_10_REV, GL_BGRA },
+ { 24, 0x000000FF, 0x0000FF00, 0x00FF0000, BYTE, GL_RGB },
+ { 24, 0x00FF0000, 0x0000FF00, 0x000000FF, BYTE, GL_BGR },
+};
+
+
+/* Given an XImage, returns the GL settings to use its data as a texture.
+ */
+static void
+gl_settings_for_ximage (XImage *image,
+ GLint *type_ret, GLint *format_ret, GLint *swap_ret)
+{
+ int i;
+ for (i = 0; i < countof(ctable); ++i)
+ {
+ if (image->bits_per_pixel == ctable[i].depth &&
+ image->red_mask == ctable[i].red_mask &&
+ image->green_mask == ctable[i].green_mask &&
+ image->blue_mask == ctable[i].blue_mask)
+ {
+ *type_ret = ctable[i].type;
+ *format_ret = ctable[i].format;
+
+ if (image->bits_per_pixel == 24)
+ {
+ /* don't know how to test this... */
+ *type_ret = (ctable[i].type == GL_RGB) ? GL_BGR : GL_RGB;
+ *swap_ret = 0;
+ }
+ else
+ {
+ *swap_ret = !!(image->byte_order == MSBFirst) ^ !!bigendian();
+ }
+
+ if (debug_p)
+ {
+ fprintf (stderr, "%s: using %s %s %d for %d %08lX %08lX %08lX\n",
+ progname,
+ (*format_ret == GL_RGB ? "RGB" :
+ *format_ret == GL_BGR ? "BGR" :
+ *format_ret == GL_RGBA ? "RGBA" :
+ *format_ret == GL_BGRA ? "BGRA" :
+ *format_ret == GL_ABGR_EXT ? "ABGR_EXT" :
+ "???"),
+ (*type_ret == BYTE ? "BYTE" :
+ *type_ret == BYTE_3_3_2 ? "BYTE_3_3_2" :
+ *type_ret == BYTE_2_3_3_REV ? "BYTE_2_3_3_REV" :
+ *type_ret == INT_8_8_8_8 ? "INT_8_8_8_8" :
+ *type_ret == INT_8_8_8_8_REV ? "INT_8_8_8_8_REV" :
+ *type_ret == INT_10_10_10_2 ? "INT_10_10_10_2" :
+ *type_ret == INT_2_10_10_10_REV ? "INT_2_10_10_10_REV":
+ *type_ret == SHORT_4_4_4_4 ? "SHORT_4_4_4_4" :
+ *type_ret == SHORT_4_4_4_4_REV ? "SHORT_4_4_4_4_REV" :
+ *type_ret == SHORT_5_5_5_1 ? "SHORT_5_5_5_1" :
+ *type_ret == SHORT_1_5_5_5_REV ? "SHORT_1_5_5_5_REV" :
+ *type_ret == SHORT_5_6_5 ? "SHORT_5_6_5" :
+ *type_ret == SHORT_5_6_5_REV ? "SHORT_5_6_5_REV" :
+ "???"),
+ *swap_ret,
+ image->bits_per_pixel,
+ image->red_mask, image->green_mask, image->blue_mask);
+ }
+
+ return;
+ }
+ }
+
+ /* Unknown RGB fields? */
+ abort();
+}
+
+#endif /* ! REFORMAT_IMAGE_DATA */
+
+typedef struct {
+ GLXContext glx_context;
+ Pixmap pixmap;
+ int pix_width, pix_height, pix_depth;
+ int texid;
+ Bool mipmap_p;
+ double load_time;
+
+ /* Used in async mode
+ */
+ void (*callback) (const char *filename, XRectangle *geometry,
+ int iw, int ih, int tw, int th,
+ void *closure);
+ void *closure;
+
+ /* Used in sync mode
+ */
+ char **filename_return;
+ XRectangle *geometry_return;
+ int *image_width_return;
+ int *image_height_return;
+ int *texture_width_return;
+ int *texture_height_return;
+
+} img_closure;
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+/* Loads the given XImage into GL's texture memory.
+ The image may be of any size.
+ If mipmap_p is true, then make mipmaps instead of just a single texture.
+ Writes to stderr and returns False on error.
+ */
+static Bool
+ximage_to_texture (XImage *ximage,
+ GLint type, GLint format,
+ int *width_return,
+ int *height_return,
+ XRectangle *geometry,
+ Bool mipmap_p)
+{
+ int max_reduction = 7;
+ int err_count = 0;
+ GLenum err = 0;
+ int orig_width = ximage->width;
+ int orig_height = ximage->height;
+ GLsizei tex_width = 0;
+ GLsizei tex_height = 0;
+
+ AGAIN:
+
+ if (mipmap_p)
+ {
+ /* gluBuild2DMipmaps doesn't require textures to be a power of 2. */
+ tex_width = ximage->width;
+ tex_height = ximage->height;
+
+ if (debug_p)
+ fprintf (stderr, "%s: mipmap %d x %d\n",
+ progname, ximage->width, ximage->height);
+
+ gluBuild2DMipmaps (GL_TEXTURE_2D, 3, ximage->width, ximage->height,
+ format, type, ximage->data);
+ err = glGetError();
+ }
+ else
+ {
+ /* glTexImage2D() requires the texture sizes to be powers of 2.
+ So first, create a texture of that size (but don't write any
+ data into it.)
+ */
+ tex_width = (GLsizei) to_pow2 (ximage->width);
+ tex_height = (GLsizei) to_pow2 (ximage->height);
+
+ if (debug_p)
+ fprintf (stderr, "%s: texture %d x %d (%d x %d)\n",
+ progname, ximage->width, ximage->height,
+ tex_width, tex_height);
+
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, tex_width, tex_height, 0,
+ format, type, 0);
+ err = glGetError();
+
+ /* Now load our non-power-of-2 image data into the existing texture. */
+ if (!err)
+ {
+ glTexSubImage2D (GL_TEXTURE_2D, 0, 0, 0,
+ ximage->width, ximage->height,
+ GL_RGBA, GL_UNSIGNED_BYTE, ximage->data);
+ err = glGetError();
+ }
+ }
+
+ if (err)
+ {
+ char buf[100];
+ const char *s = (char *) gluErrorString (err);
+
+ if (!s || !*s)
+ {
+ sprintf (buf, "unknown error %d", (int) err);
+ s = buf;
+ }
+
+ while (glGetError() != GL_NO_ERROR)
+ ; /* clear any lingering errors */
+
+ if (++err_count > max_reduction)
+ {
+ fprintf (stderr,
+ "\n"
+ "%s: %dx%d texture failed, even after reducing to %dx%d:\n"
+ "%s: The error was: \"%s\".\n"
+ "%s: probably this means "
+ "\"your video card is worthless and weak\"?\n\n",
+ progname, orig_width, orig_height,
+ ximage->width, ximage->height,
+ progname, s,
+ progname);
+ return False;
+ }
+ else
+ {
+ if (debug_p)
+ fprintf (stderr, "%s: mipmap error (%dx%d): %s\n",
+ progname, ximage->width, ximage->height, s);
+ halve_image (ximage, geometry);
+ goto AGAIN;
+ }
+ }
+
+ if (width_return) *width_return = tex_width;
+ if (height_return) *height_return = tex_height;
+ return True;
+}
+
+
+static void load_texture_async_cb (Screen *screen,
+ Window window, Drawable drawable,
+ const char *name, XRectangle *geometry,
+ void *closure);
+
+
+/* Grabs an image of the desktop (or another random image file) and
+ loads the image into GL's texture memory.
+ When the callback is called, the image data will have been loaded
+ into texture number `texid' (via glBindTexture.)
+
+ If an error occurred, width/height will be 0.
+ */
+void
+load_texture_async (Screen *screen, Window window,
+ GLXContext glx_context,
+ int desired_width, int desired_height,
+ Bool mipmap_p,
+ GLuint texid,
+ void (*callback) (const char *filename,
+ XRectangle *geometry,
+ int image_width,
+ int image_height,
+ int texture_width,
+ int texture_height,
+ void *closure),
+ void *closure)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XWindowAttributes xgwa;
+ img_closure *data = (img_closure *) calloc (1, sizeof(*data));
+
+ if (debug_p)
+ data->load_time = double_time();
+
+ data->texid = texid;
+ data->mipmap_p = mipmap_p;
+ data->glx_context = glx_context;
+ data->callback = callback;
+ data->closure = closure;
+
+ XGetWindowAttributes (dpy, window, &xgwa);
+ data->pix_width = xgwa.width;
+ data->pix_height = xgwa.height;
+ data->pix_depth = xgwa.depth;
+
+ /* Allow the pixmap to be larger than the window. Esper wants this. */
+ if (desired_width /* && desired_width < xgwa.width */)
+ data->pix_width = desired_width;
+ if (desired_height /* && desired_height < xgwa.height */)
+ data->pix_height = desired_height;
+
+ data->pixmap = XCreatePixmap (dpy, window, data->pix_width, data->pix_height,
+ data->pix_depth);
+ load_image_async (screen, window, data->pixmap,
+ load_texture_async_cb, data);
+}
+
+
+/* Once we have an XImage, this loads it into GL.
+ This is used in both synchronous and asynchronous mode.
+ */
+static void
+load_texture_async_cb (Screen *screen, Window window, Drawable drawable,
+ const char *name, XRectangle *geometry, void *closure)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ Bool ok;
+ XImage *ximage;
+ GLint type, format;
+ int iw=0, ih=0, tw=0, th=0;
+ double cvt_time=0, tex_time=0, done_time=0;
+ img_closure *data = (img_closure *) closure;
+ /* copy closure data to stack and free the original before running cb */
+ img_closure dd = *data;
+ memset (data, 0, sizeof (*data));
+ free (data);
+ data = 0;
+
+ if (dd.glx_context)
+ glXMakeCurrent (dpy, window, dd.glx_context);
+
+ if (geometry->width <= 0 || geometry->height <= 0)
+ {
+ /* This can happen if an old version of xscreensaver-getimage
+ is installed. Or if we have no image (checkerboard). */
+ geometry->x = 0;
+ geometry->y = 0;
+ geometry->width = dd.pix_width;
+ geometry->height = dd.pix_height;
+ }
+
+ if (geometry->width <= 0 || geometry->height <= 0)
+ abort();
+
+ if (debug_p)
+ cvt_time = double_time();
+
+# ifdef REFORMAT_IMAGE_DATA
+ ximage = pixmap_to_gl_ximage (screen, window, dd.pixmap);
+ format = GL_RGBA;
+ type = GL_UNSIGNED_BYTE;
+
+#else /* ! REFORMAT_IMAGE_DATA */
+ {
+ Visual *visual = DefaultVisualOfScreen (screen);
+ GLint swap;
+
+ ximage = XCreateImage (dpy, visual, dd.pix_depth, ZPixmap, 0, 0,
+ dd.pix_width, dd.pix_height, 32, 0);
+
+ /* Note: height+2 in "to" to be to work around an array bounds overrun
+ in gluBuild2DMipmaps / gluScaleImage. */
+ ximage->data = (char *) calloc (ximage->height+2, ximage->bytes_per_line);
+
+ if (!ximage->data ||
+ !XGetSubImage (dpy, dd.pixmap, 0, 0, ximage->width, ximage->height,
+ ~0L, ximage->format, ximage, 0, 0))
+ {
+ XDestroyImage (ximage);
+ ximage = 0;
+ }
+
+ gl_settings_for_ximage (ximage, &type, &format, &swap);
+ glPixelStorei (GL_UNPACK_SWAP_BYTES, !swap);
+ }
+#endif /* REFORMAT_IMAGE_DATA */
+
+ XFreePixmap (dpy, dd.pixmap);
+ dd.pixmap = 0;
+
+ if (debug_p)
+ tex_time = double_time();
+
+ if (! ximage)
+ ok = False;
+ else
+ {
+ iw = ximage->width;
+ ih = ximage->height;
+ if (dd.texid != -1)
+ glBindTexture (GL_TEXTURE_2D, dd.texid);
+
+ glPixelStorei (GL_UNPACK_ALIGNMENT, ximage->bitmap_pad / 8);
+ ok = ximage_to_texture (ximage, type, format, &tw, &th, geometry,
+ dd.mipmap_p);
+ if (ok)
+ {
+ iw = ximage->width; /* in case the image was shrunk */
+ ih = ximage->height;
+ }
+ }
+
+ if (ximage) XDestroyImage (ximage);
+
+ if (! ok)
+ iw = ih = tw = th = 0;
+
+ if (debug_p)
+ done_time = double_time();
+
+ if (debug_p)
+ fprintf (stderr,
+ /* prints: A + B + C = D
+ A = file I/O time (happens in background)
+ B = time to pull bits from server (this process)
+ C = time to convert bits to GL textures (this process)
+ D = total elapsed time from "want image" to "see image"
+
+ B+C is responsible for any frame-rate glitches.
+ */
+ "%s: loading elapsed: %.2f + %.2f + %.2f = %.2f sec\n",
+ progname,
+ cvt_time - dd.load_time,
+ tex_time - cvt_time,
+ done_time - tex_time,
+ done_time - dd.load_time);
+
+ if (dd.callback)
+ /* asynchronous mode */
+ dd.callback (name, geometry, iw, ih, tw, th, dd.closure);
+ else
+ {
+ /* synchronous mode */
+ if (dd.filename_return) *dd.filename_return = (char *) name;
+ if (dd.geometry_return) *dd.geometry_return = *geometry;
+ if (dd.image_width_return) *dd.image_width_return = iw;
+ if (dd.image_height_return) *dd.image_height_return = ih;
+ if (dd.texture_width_return) *dd.texture_width_return = tw;
+ if (dd.texture_height_return) *dd.texture_height_return = th;
+ }
+}
diff --git a/hacks/glx/grab-ximage.h b/hacks/glx/grab-ximage.h
new file mode 100644
index 0000000..2fd589f
--- /dev/null
+++ b/hacks/glx/grab-ximage.h
@@ -0,0 +1,76 @@
+/* grab-ximage.c --- grab the screen to an XImage for use with OpenGL.
+ * xscreensaver, Copyright (c) 2001-2006 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __GRAB_XIMAGE_H__
+#define __GRAB_XIMAGE_H__
+
+/* Grabs an image of the desktop (or another random image file) and
+ loads the image into GL's texture memory. Most of the work is done
+ in the background; when the image has been loaded, a callback is run.
+
+ As a side-effect, that image *may* be painted onto the given Window.
+
+ If mipmap_p is true, then make mipmaps instead of just a single texture.
+
+ If desired_width/height are non-zero, then (if possible) the image
+ will be scaled to fit in that rectangle. If they are 0, then the size
+ of the window is used. These parameters are so that you can hint to
+ the image loader that smaller images are acceptable (if you will never
+ be displaying the texture at 100% magnification, you can get away with
+ smaller textures.)
+
+ Returns the sizes of various things:
+
+ texture_width/height: The size of the texture itself, in pixels.
+ This will often be larger than the grabbed
+ image, since OpenGL sometimes requires texture
+ dimensions to be a power of 2.
+
+ image_width/height: The size of the image: this will usually be the
+ same as the desired_width/height you passed in
+ (but may be the size of the Window instead.)
+
+ geometry: The position in the texture of the image bits.
+ When image files are loaded, they are scaled up
+ to the size of the window, but if the image does
+ not have the same aspect ratio as the window,
+ there will be black bars on the top/bottom or
+ left/right. This geometry specification tells
+ you where the "real" image bits are.
+
+ So, don't use texture coordinates from 0.0 to 1.0. Instead use:
+
+ [0.0 - iw/tw] If you want to display a quad that is the same
+ [0.0 - ih/th] size as the window; or
+
+ [gx/tw - (gx+gw)/tw] If you want to display a quad that is the same
+ [gy/th - (gy+gh)/th] size as the loaded image file.
+
+ When the callback is called, the image data will have been loaded
+ into texture number `texid' (via glBindTexture.)
+
+ If an error occurred, width/height will be 0.
+ */
+void load_texture_async (Screen *, Window, GLXContext,
+ int desired_width, int desired_height,
+ Bool mipmap_p,
+ GLuint texid,
+ void (*callback) (const char *filename,
+ XRectangle *geometry,
+ int image_width,
+ int image_height,
+ int texture_width,
+ int texture_height,
+ void *closure),
+ void *closure);
+
+#endif /* __GRAB_XIMAGE_H__ */
diff --git a/hacks/glx/hexstrut.c b/hacks/glx/hexstrut.c
new file mode 100644
index 0000000..a547a76
--- /dev/null
+++ b/hacks/glx/hexstrut.c
@@ -0,0 +1,509 @@
+/* hexstrut, Copyright (c) 2016-2017 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*count: 20 \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_hexstrut 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_THICKNESS "0.2"
+
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+typedef struct { double a, o; } LL; /* latitude + longitude */
+
+typedef struct triangle triangle;
+struct triangle {
+ XYZ p[3];
+ triangle *next;
+ triangle *neighbors[6];
+ GLfloat orot, rot;
+ int delay, odelay;
+ int ccolor;
+};
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int count;
+ triangle *triangles;
+
+ int ncolors;
+ XColor *colors;
+
+} hexstrut_configuration;
+
+static hexstrut_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static GLfloat thickness;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt hexstrut_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+/* Add t1 to the neighbor list of t0. */
+static void
+link_neighbor (triangle *t0, triangle *t1)
+{
+ int k;
+ if (t0 == t1)
+ return;
+ for (k = 0; k < countof(t0->neighbors); k++)
+ {
+ if (t0->neighbors[k] == t1 ||
+ t0->neighbors[k] == 0)
+ {
+ t0->neighbors[k] = t1;
+ return;
+ }
+ }
+ fprintf (stderr, "too many neighbors\n");
+ abort();
+}
+
+
+static void
+make_plane (ModeInfo *mi)
+{
+ hexstrut_configuration *bp = &bps[MI_SCREEN(mi)];
+ int n = MI_COUNT(mi) * 2;
+ GLfloat size = 2.0 / n;
+ int x, y;
+ GLfloat w = size;
+ GLfloat h = size * sqrt(3) / 2;
+ triangle **grid = (triangle **) calloc (n * n, sizeof(*grid));
+
+ for (y = 0; y < n; y++)
+ for (x = 0; x < n; x++)
+ {
+ triangle *t;
+
+ t = (triangle *) calloc (1, sizeof(*t));
+ t->p[0].x = (x - n/2) * w;
+ t->p[0].y = (y - n/2) * h;
+
+ if (y & 1)
+ t->p[0].x += w / 2;
+
+ t->p[1].x = t->p[0].x - w/2;
+ t->p[2].x = t->p[0].x + w/2;
+ t->p[1].y = t->p[0].y + h;
+ t->p[2].y = t->p[0].y + h;
+
+ if (x > 0)
+ {
+ triangle *t2 = grid[y * n + (x-1)];
+ link_neighbor (t, t2);
+ link_neighbor (t2, t);
+ }
+ if (y > 0)
+ {
+ triangle *t2 = grid[(y-1) * n + x];
+ link_neighbor (t, t2);
+ link_neighbor (t2, t);
+
+ if (x < n-1)
+ {
+ t2 = grid[(y-1) * n + (x+1)];
+ link_neighbor (t, t2);
+ link_neighbor (t2, t);
+ }
+ }
+
+ t->next = bp->triangles;
+ bp->triangles = t;
+ grid[y * n + x] = t;
+ bp->count++;
+ }
+
+ free (grid);
+}
+
+
+static void
+tick_triangles (ModeInfo *mi)
+{
+ hexstrut_configuration *bp = &bps[MI_SCREEN(mi)];
+ triangle *t;
+ GLfloat step = 0.01 + (0.04 * speed);
+
+ if (! (random() % 80))
+ {
+ int n = random() % bp->count;
+ int i;
+ for (i = 0, t = bp->triangles; t && i < n; t = t->next, i++)
+ ;
+ if (! t->rot)
+ {
+ t->rot += step * ((random() & 1) ? 1 : -1);
+ t->odelay = t->delay = 4;
+ }
+ }
+
+ for (t = bp->triangles; t; t = t->next)
+ {
+ /* If this triangle is rotating, continue until done. */
+ if (t->rot)
+ {
+ t->rot += step * (t->rot > 0 ? 1 : -1);
+
+ t->ccolor++;
+ if (t->ccolor >= bp->ncolors)
+ t->ccolor = 0;
+
+ if (t->rot > 1 || t->rot < -1)
+ {
+ t->orot += (t->rot > 1 ? 1 : -1);
+ t->rot = 0;
+ }
+ }
+
+ /* If this triangle's propagation delay hasn't hit zero, decrement it.
+ When it does, start its neighbors rotating.
+ */
+ if (t->delay)
+ {
+ int i;
+ t->delay--;
+ if (t->delay == 0)
+ for (i = 0; i < countof(t->neighbors); i++)
+ {
+ if (t->neighbors[i] &&
+ t->neighbors[i]->rot == 0)
+ {
+ t->neighbors[i]->rot += step * (t->rot > 0 ? 1 : -1);
+ t->neighbors[i]->delay =
+ t->neighbors[i]->odelay = t->odelay;
+ }
+ }
+ }
+ }
+}
+
+
+static void
+draw_triangles (ModeInfo *mi)
+{
+ hexstrut_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ triangle *t;
+ GLfloat length = sqrt(3) / 3;
+ GLfloat t2 = length * thickness / 2;
+ GLfloat scale;
+
+ {
+ triangle *t = bp->triangles;
+ GLfloat X = t->p[0].x - t->p[1].x;
+ GLfloat Y = t->p[0].y - t->p[1].y;
+ GLfloat Z = t->p[0].z - t->p[1].z;
+ scale = sqrt(X*X + Y*Y + Z*Z);
+ }
+
+ glFrontFace (GL_CCW);
+
+ glBegin (wire ? GL_LINES : GL_QUADS);
+
+ glNormal3f (0, 0, 1);
+ for (t = bp->triangles; t; t = t->next)
+ {
+ int i;
+ XYZ c;
+ GLfloat color[4];
+
+ GLfloat angle = (M_PI * 2 / 3) * t->rot;
+ GLfloat cr = cos(angle), sr = sin(angle);
+
+ c.x = (t->p[0].x + t->p[1].x + t->p[2].x) / 3;
+ c.y = (t->p[0].y + t->p[1].y + t->p[2].y) / 3;
+ c.z = (t->p[0].z + t->p[1].z + t->p[2].z) / 3;
+
+ /* Actually we don't need normals at all, since no lighting.
+ do_normal (t->p[0].x, t->p[0].y, t->p[0].z,
+ t->p[1].x, t->p[1].y, t->p[1].z,
+ t->p[2].x, t->p[2].y, t->p[2].z);
+ */
+
+ color[0] = bp->colors[t->ccolor].red / 65535.0;
+ color[1] = bp->colors[t->ccolor].green / 65535.0;
+ color[2] = bp->colors[t->ccolor].blue / 65535.0;
+ color[3] = 1;
+
+ /* Brighter */
+ color[0] = color[0] * 0.75 + 0.25;
+ color[1] = color[1] * 0.75 + 0.25;
+ color[2] = color[2] * 0.75 + 0.25;
+
+ glColor4fv (color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+
+ for (i = 0; i < 3; i++)
+ {
+ /* Orient to direction of corner. */
+ GLfloat x = t->p[i].x - c.x;
+ GLfloat y = t->p[i].y - c.y;
+ GLfloat z = t->p[i].z - c.z;
+
+ GLfloat smc = sr * y - cr * x;
+ GLfloat spc = cr * y + sr * x;
+
+ GLfloat st2 = t2 * scale / sqrt(x*x + y*y);
+ GLfloat slength = length * scale / sqrt(x*x + y*y + z*z);
+
+ GLfloat xt2 = spc * st2;
+ GLfloat yt2 = smc * st2;
+ GLfloat xlength = c.x - slength * smc;
+ GLfloat ylength = c.y + slength * spc;
+ GLfloat zlength = c.z + slength * z;
+
+ if (! wire)
+ glVertex3f (c.x - xt2, c.y - yt2, c.z);
+
+ glVertex3f (c.x + xt2, c.y + yt2, c.z);
+ if (wire)
+ glVertex3f (xlength + xt2, ylength + yt2, zlength);
+
+ if (! wire)
+ glVertex3f (xlength + xt2, ylength + yt2, zlength);
+
+ glVertex3f (xlength - xt2, ylength - yt2, zlength);
+
+ if (wire)
+ glVertex3f (c.x - xt2, c.y - yt2, c.z);
+
+ mi->polygon_count++;
+ }
+ }
+
+ glEnd();
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_hexstrut (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 3) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+hexstrut_handle_event (ModeInfo *mi, XEvent *event)
+{
+ hexstrut_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ bp->ncolors = 64;
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_hexstrut (ModeInfo *mi)
+{
+ hexstrut_configuration *bp;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_hexstrut (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ {
+ double spin_speed = 0.002;
+ double wander_speed = 0.003;
+ double spin_accel = 1.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->trackball = gltrackball_init (True);
+ }
+
+
+ /* Let's tilt the scene a little. */
+ gltrackball_reset (bp->trackball,
+ -0.4 + frand(0.8),
+ -0.4 + frand(0.8));
+
+ if (thickness < 0.05) thickness = 0.05;
+ if (thickness < 0.05) MI_IS_WIREFRAME(mi) = True;
+ if (thickness > 1.7) thickness = 1.7;
+ if (speed > 2) speed = 2;
+
+ bp->ncolors = 64;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+ make_plane (mi);
+}
+
+
+ENTRYPOINT void
+draw_hexstrut (ModeInfo *mi)
+{
+ hexstrut_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glDisable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glDisable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 6,
+ (y - 0.5) * 6,
+ (z - 0.5) * 12);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (30, 30, 30);
+
+ if (! bp->button_down_p)
+ tick_triangles (mi);
+ draw_triangles (mi);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_hexstrut (ModeInfo *mi)
+{
+ hexstrut_configuration *bp = &bps[MI_SCREEN(mi)];
+ while (bp->triangles)
+ {
+ triangle *t = bp->triangles->next;
+ free (bp->triangles);
+ bp->triangles = t;
+ }
+}
+
+XSCREENSAVER_MODULE ("Hexstrut", hexstrut)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/hexstrut.man b/hacks/glx/hexstrut.man
new file mode 100644
index 0000000..19e49e0
--- /dev/null
+++ b/hacks/glx/hexstrut.man
@@ -0,0 +1,77 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+hexstrut - a grid of hexagons composed of rotating Y-shaped struts.
+.SH SYNOPSIS
+.B hexstrut
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-thickness \fInumber\fP]
+[\-no-wander]
+[\-no-spin]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+A grid of hexagons composed of rotating Y-shaped struts.
+Waves of rotation and color changes randomly propagate across the plane.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-count \fInumber\fP
+Approximate number of hexagons on the screen, horizontally. Default: 20.
+.TP 8
+.B \-thickness \fInumber\fP
+Relative thickness of the struts. 0.01 - 1.7. Default: 0.2.
+.TP 8
+.B \-wander | \-no-wander
+Whether the grid should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the grid should spin.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/hilbert.c b/hacks/glx/hilbert.c
new file mode 100644
index 0000000..dbb2ce6
--- /dev/null
+++ b/hacks/glx/hilbert.c
@@ -0,0 +1,1144 @@
+/* hilbert, Copyright (c) 2011-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * 2D and 3D Hilbert space-filling curves.
+ *
+ * Inspired by "Visualizing Hilbert Curves" by Nelson Max, 1998:
+ * https://e-reports-ext.llnl.gov/pdf/234149.pdf
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*geometry: 800x800\n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_hilbert 0
+# define release_hilbert 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "sphere.h"
+#include "tube.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "False"
+#define DEF_SPEED "1.0"
+#define DEF_MODE "random"
+#define DEF_ENDS "random"
+#define DEF_MAX_DEPTH "5"
+#define DEF_THICKNESS "0.25"
+
+#define PAUSE_TICKS 180
+
+typedef struct {
+ double x,y,z;
+} XYZ;
+
+typedef struct {
+ unsigned short x,y,z;
+} XYZb;
+
+typedef struct {
+ int size;
+ XYZb *values; /* assume max depth of 20 (2^16 on each side) */
+} hilbert_cache;
+
+
+static int dlist_faces[] = { 20, 10, 8, 4, 3 };
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot, *rot2;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool twodee_p;
+ Bool closed_p;
+ int ncolors;
+ XColor *colors;
+
+ int depth;
+ int depth_tick;
+
+ GLfloat path_start, path_end;
+ int path_tick;
+ int pause;
+ GLfloat diam;
+
+ hilbert_cache **caches; /* filled lazily */
+
+ GLuint dlists [40][2]; /* we don't actually alloc all of these */
+ int dlist_polys [40][2];
+
+} hilbert_configuration;
+
+static hilbert_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static char *mode_str;
+static char *ends_str;
+static int max_depth;
+static GLfloat thickness;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+ { "-2d", ".mode", XrmoptionNoArg, "2D" },
+ { "-3d", ".mode", XrmoptionNoArg, "3D" },
+ { "-ends", ".ends", XrmoptionSepArg, 0 },
+ { "-closed", ".ends", XrmoptionNoArg, "closed" },
+ { "-open", ".ends", XrmoptionNoArg, "open" },
+ { "-max-depth", ".maxDepth", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness",XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&mode_str, "mode", "Mode", DEF_MODE, t_String},
+ {&ends_str, "ends", "Ends", DEF_ENDS, t_String},
+ {&max_depth, "maxDepth", "MaxDepth", DEF_MAX_DEPTH, t_Int},
+ {&thickness, "thickness","Thickness",DEF_THICKNESS, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt hilbert_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* 2D Hilbert, and closed-loop variant.
+ */
+
+/* These arrays specify which bits of the T index contribute to the
+ X, Y and Z values. Higher order bits are defined recursively.
+ */
+static const int xbit2d[4] = { 0, 0, 1, 1 };
+static const int ybit2d[4] = { 0, 1, 1, 0 };
+
+static const int xbit3d[8] = { 0,0,0,0,1,1,1,1 };
+static const int ybit3d[8] = { 0,1,1,0,0,1,1,0 };
+static const int zbit3d[8] = { 0,0,1,1,1,1,0,0 };
+
+/* These matrixes encapsulate the necessary reflection and translation
+ of each 4 sub-squares or 8 sub-cubes. The r2d and r3d arrays are
+ the normal Hilbert descent, and the s2d and s3d arrays are the
+ modified curve used for only level 0 of a closed-form path.
+ */
+
+static int r2d[4][2][2] = {
+ /* _ _
+ | |..| |
+ :_ _:
+ _| |_
+
+ */
+ {{ 0, 1},
+ { 1, 0}},
+ {{ 1, 0},
+ { 0, 1}},
+ {{ 1, 0},
+ { 0, 1}},
+ {{ 0,-1},
+ {-1, 0}},
+};
+
+static int s2d[4][2][2] = {
+ /* __ __
+ | |..| | Used for outermost iteration only, in "closed" mode
+ : .. :
+ |__| |__|
+
+ */
+ {{-1, 0},
+ { 0,-1}},
+ {{ 1, 0},
+ { 0, 1}},
+ {{ 1, 0},
+ { 0, 1}},
+ {{-1, 0},
+ { 0,-1}},
+};
+
+
+static int r3d[8][3][3] = {
+ /*
+ /| /|
+ / | / |
+ /__|____/ |
+ | |
+ / /
+ / /
+ */
+ {{ 0, 1, 0},
+ { 1, 0, 0},
+ { 0, 0, 1}},
+ {{ 0, 0, 1},
+ { 0, 1, 0},
+ { 1, 0, 0}},
+ {{ 1, 0, 0},
+ { 0, 1, 0},
+ { 0, 0, 1}},
+ {{ 0, 0,-1},
+ {-1, 0, 0},
+ { 0, 1, 0}},
+ {{ 0, 0, 1},
+ { 1, 0, 0},
+ { 0, 1, 0}},
+ {{ 1, 0, 0},
+ { 0, 1, 0},
+ { 0, 0, 1}},
+ {{ 0, 0,-1},
+ { 0, 1, 0},
+ {-1, 0, 0}},
+ {{ 0,-1, 0},
+ {-1, 0, 0},
+ { 0, 0, 1}},
+};
+
+
+static int s3d[8][3][3] = {
+ /*
+ /| /| Used for outermost iteration only, in "closed" mode
+ / | / |
+ /__|____/ |
+ | |
+ / /
+ /_______/
+ */
+ {{-1, 0, 0},
+ { 0, 0,-1},
+ { 0, 1, 0}},
+ {{ 0, 0, 1},
+ { 0, 1, 0},
+ { 1, 0, 0}},
+ {{ 1, 0, 0},
+ { 0, 1, 0},
+ { 0, 0, 1}},
+ {{ 0, 0,-1},
+ {-1, 0, 0},
+ { 0, 1, 0}},
+ {{ 0, 0, 1},
+ { 1, 0, 0},
+ { 0, 1, 0}},
+ {{ 1, 0, 0},
+ { 0, 1, 0},
+ { 0, 0, 1}},
+ {{ 0, 0,-1},
+ { 0, 1, 0},
+ {-1, 0, 0}},
+
+ {{-1, 0, 0},
+ { 0, 0,-1},
+ { 0, 1, 0}},
+};
+
+
+
+/* Matrix utilities
+ */
+
+static void
+matrix_times_vector2d (int m[2][2], int v[2], int dest[2])
+{
+ dest[0] = m[0][0]*v[0] + m[0][1]*v[1];
+ dest[1] = m[1][0]*v[0] + m[1][1]*v[1];
+}
+
+static void
+matrix_times_vector3d (int m[3][3], int v[3], int dest[3])
+{
+ dest[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2];
+ dest[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2];
+ dest[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2];
+}
+
+
+static void
+matrix_multiply2d (int m1[2][2], int m2[2][2], int dest[2][2])
+{
+ dest[0][0] = m1[0][0] * m2[0][0] + m1[0][1] * m2[1][0];
+ dest[0][1] = m1[0][0] * m2[0][1] + m1[0][1] * m2[1][1];
+ dest[1][0] = m1[1][0] * m2[0][0] + m1[1][1] * m2[1][0];
+ dest[1][1] = m1[1][0] * m2[0][1] + m1[1][1] * m2[1][1];
+}
+
+static void
+matrix_multiply3d (int m1[3][3], int m2[3][3], int dest[3][3])
+{
+ int i, j, k;
+ for (i = 0; i < 3; i++)
+ for (j = 0; j < 3; j++)
+ {
+ dest[i][j] = 0;
+ for (k = 0; k < 3; k++)
+ dest[i][j] += m1[i][k] * m2[k][j];
+ }
+}
+
+static void
+identity_matrix2d (int m[2][2])
+{
+ m[0][0] = m[1][1] = 1;
+ m[0][1] = m[1][0] = 0;
+}
+
+static void
+identity_matrix3d (int m[3][3])
+{
+ m[0][0] = m[1][1] = m[2][2] = 1;
+ m[0][1] = m[0][2] = m[1][0] = m[1][2] = m[2][0] = m[2][1] = 0;
+}
+
+
+static void
+matrix_copy2d (int src[2][2], int dest[2][2])
+{
+ int i, j;
+ for (i = 0; i < 2; i++)
+ for (j = 0; j < 2; j++)
+ dest[i][j] = src[i][j];
+}
+
+
+static void
+matrix_copy3d (int src[3][3], int dest[3][3])
+{
+ int i, j;
+ for (i = 0; i < 3; i++)
+ for (j = 0; j < 3; j++)
+ dest[i][j] = src[i][j];
+}
+
+
+/* 2D and 3D Hilbert:
+ Given an index T along the curve, return the XY or XYZ coordinates.
+ N is depth of the curve.
+ */
+
+static void
+t_to_xy (int n, int t, int *x, int *y, Bool closed_p)
+{
+ int k, rt[2][2], rq[2][2], va[2], vb[2];
+ identity_matrix2d(rt);
+ *x = *y = 0;
+
+ for (k = n-1; k >= 0; k--)
+ {
+ int j = 3 & (t >> (2*k));
+ va[0] = 2 * xbit2d[j] - 1;
+ va[1] = 2 * ybit2d[j] - 1;
+ matrix_times_vector2d (rt, va, vb);
+ *x += ((vb[0] + 1) / 2) << k;
+ *y += ((vb[1] + 1) / 2) << k;
+ if (k > 0)
+ {
+ matrix_copy2d (rt, rq);
+ if (k == n-1 && closed_p)
+ matrix_multiply2d (rq, s2d[j], rt);
+ else
+ matrix_multiply2d (rq, r2d[j], rt);
+ }
+ }
+}
+
+
+static void
+t_to_xyz (int n, int t, int *x, int *y, int *z, Bool closed_p)
+{
+ int k, rt[3][3], rq[3][3], va[3], vb[3];
+ identity_matrix3d(rt);
+ *x = *y = *z = 0;
+
+ for (k = n-1; k >= 0; k--)
+ {
+ int j = 7 & (t >> (3*k));
+ va[0] = 2 * xbit3d[j] - 1;
+ va[1] = 2 * ybit3d[j] - 1;
+ va[2] = 2 * zbit3d[j] - 1;
+ matrix_times_vector3d (rt, va, vb);
+ *x += ((vb[0] + 1) / 2) << k;
+ *y += ((vb[1] + 1) / 2) << k;
+ *z += ((vb[2] + 1) / 2) << k;
+ if (k > 0)
+ {
+ matrix_copy3d (rt, rq);
+ if (k == n-1 && closed_p)
+ matrix_multiply3d (rq, s3d[j], rt);
+ else
+ matrix_multiply3d (rq, r3d[j], rt);
+ }
+ }
+}
+
+
+/* Rendering the curve
+ */
+
+
+/* Draw a sphere at the intersection of two tubes, to round off
+ the connection between them. Use one of our cache display lists
+ of unit spheres in various sizes.
+ */
+static int
+draw_joint (ModeInfo *mi, XYZ p, GLfloat diam, int faces, int wire)
+{
+ hilbert_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ diam *= 0.99; /* try to clean up the edges a bit */
+
+ if (faces <= 4) return 0; /* too small to see */
+
+ glPushMatrix();
+ glTranslatef (p.x, p.y, p.z);
+ glScalef (diam, diam, diam);
+
+ /* i = unit_sphere (faces, faces, wire);*/
+
+ /* if (!bp->dlists[faces][0]) abort(); */
+ /* if (!bp->dlist_polys[faces][0]) abort(); */
+
+ glCallList (bp->dlists[faces][0]);
+ i = bp->dlist_polys[faces][0];
+ glPopMatrix();
+ return i;
+}
+
+
+/* Draw a tube, and associated end caps. Use one of our cache display lists
+ of unit tubes in various sizes. Pick the resolution of the tube based
+ on how large it's being drawn. It's ok to get chunkier if the thing is
+ only a few pixels wide on the screen.
+ */
+static Bool
+draw_segment (ModeInfo *mi,
+ XYZ p0, XYZ p1, /* from, to */
+ int t, int end_t, /* value and range */
+ GLfloat path_start, GLfloat path_end, /* clipping */
+ Bool head_cap_p,
+ int *last_colorP)
+{
+ hilbert_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ double t0 = (double) (t-1) / end_t; /* ratio of p[01] along curve */
+ double t1 = (double) t / end_t;
+
+ int wire = MI_IS_WIREFRAME(mi);
+ int owire = wire;
+ GLfloat dd = bp->diam;
+ int faces;
+
+ if (path_start >= t1) /* whole segment is before clipping region */
+ return False;
+ if (path_end < t0) /* whole segment is after clipping region */
+ return False;
+
+
+ if (bp->twodee_p) dd *= 2; /* more polys in 2D mode */
+
+ faces = (dd > 0.040 ? dlist_faces[0] :
+ dd > 0.020 ? dlist_faces[1] :
+ dd > 0.010 ? dlist_faces[2] :
+ dd > 0.005 ? dlist_faces[3] :
+ dd > 0.002 ? dlist_faces[4] :
+ 1);
+
+ /* In 2d mode, we can drop into wireframe mode and it still looks ok... */
+ if (faces == 1)
+ {
+ if (bp->twodee_p)
+ wire = True;
+ else
+ faces = 3;
+ }
+
+ if (wire && !owire)
+ {
+ glDisable (GL_DEPTH_TEST);
+ glDisable (GL_CULL_FACE);
+ glDisable (GL_LIGHTING);
+ }
+
+ if (t0 < path_start)
+ {
+ XYZ p;
+ GLfloat seg_range = t1 - t0;
+ GLfloat clip_range = path_start - t0;
+ GLfloat ratio = clip_range / seg_range;
+ p.x = p0.x + ((p1.x - p0.x) * ratio);
+ p.y = p0.y + ((p1.y - p0.y) * ratio);
+ p.z = p0.z + ((p1.z - p0.z) * ratio);
+ p0 = p;
+ }
+
+ if (t1 > path_end)
+ {
+ XYZ p;
+ GLfloat seg_range = t1 - t0;
+ GLfloat clip_range = path_end - t0;
+ GLfloat ratio = clip_range / seg_range;
+ p.x = p0.x + ((p1.x - p0.x) * ratio);
+ p.y = p0.y + ((p1.y - p0.y) * ratio);
+ p.z = p0.z + ((p1.z - p0.z) * ratio);
+ p1 = p;
+ }
+
+ if (p0.x == p1.x &&
+ p0.y == p1.y &&
+ p0.z == p1.z)
+ return False;
+
+ {
+ int segs = bp->ncolors * (t1 - t0);
+ int i;
+ XYZ p0b, p1b;
+
+ if (segs < 1) segs = 1;
+
+ for (i = 0; i < segs; i++)
+ {
+ int j = i + 1;
+ GLfloat color[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat t0b;
+ int c;
+
+ p0b.x = p0.x + i * ((p1.x - p0.x) / segs);
+ p0b.y = p0.y + i * ((p1.y - p0.y) / segs);
+ p0b.z = p0.z + i * ((p1.z - p0.z) / segs);
+
+ p1b.x = p0.x + j * ((p1.x - p0.x) / segs);
+ p1b.y = p0.y + j * ((p1.y - p0.y) / segs);
+ p1b.z = p0.z + j * ((p1.z - p0.z) / segs);
+
+
+
+ /* #### this isn't quite right */
+ t0b = t0 + i * (t1 - t0) / segs;
+
+ c = bp->ncolors * t0b;
+ if (c >= bp->ncolors) c = bp->ncolors-1;
+
+ /* Above depth 6, was spending 5% of the time in glMateralfv,
+ so only set the color if it's different. */
+
+ if (c != *last_colorP)
+ {
+ color[0] = bp->colors[c].red / 65536.0;
+ color[1] = bp->colors[c].green / 65536.0;
+ color[2] = bp->colors[c].blue / 65536.0;
+ if (wire)
+ glColor3fv (color);
+ else
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ *last_colorP = c;
+ }
+
+
+ if (wire)
+ {
+ glBegin (GL_LINES);
+ glVertex3f (p0b.x, p0b.y, p0b.z);
+ glVertex3f (p1b.x, p1b.y, p1b.z);
+ glEnd ();
+ mi->polygon_count++;
+ }
+ else
+ {
+ /* mi->polygon_count += tube (p0b.x, p0b.y, p0b.z,
+ p1b.x, p1b.y, p1b.z,
+ bp->diam, 0, faces, True,
+ 0, wire);
+ */
+
+ /* Render a rotated and scaled prefab unit tube.
+
+ There's probably a slightly more concise way to do this,
+ but since they're all at right angles at least we don't
+ have to use atan().
+ */
+ GLfloat s;
+ glPushMatrix();
+ glTranslatef (p0b.x, p0b.y, p0b.z);
+
+ if (p1b.x > p0b.x)
+ {
+ s = p1b.x - p0b.x;
+ }
+ else if (p1b.x < p0b.x)
+ {
+ glRotatef (180, 0, 0, 1);
+ s = p0b.x - p1b.x;
+ }
+ else if (p1b.y > p0b.y) {
+ glRotatef (90, 0, 0, 1);
+ s = p1b.y - p0b.y;
+ }
+ else if (p1b.y < p0b.y)
+ {
+ glRotatef (-90, 0, 0, 1);
+ s = p0b.y - p1b.y;
+ }
+ else if (p1b.z > p0b.z)
+ {
+ glRotatef (-90, 0, 1, 0);
+ s = p1b.z - p0b.z;
+ }
+ else /* (p1b.z < p0b.z) */
+ {
+ glRotatef (90, 0, 1, 0);
+ s = p0b.z - p1b.z;
+ }
+
+ glScalef (s, bp->diam, bp->diam);
+ glCallList (bp->dlists[faces][1]);
+ mi->polygon_count += bp->dlist_polys[faces][1];
+ glPopMatrix();
+
+
+ /* If this is the bleeding edge, cap it too. */
+ if (head_cap_p) {
+ mi->polygon_count += draw_joint (mi, p0b, bp->diam, faces, wire);
+ head_cap_p = False;
+ }
+ }
+ }
+
+ /* If the path is closed, close it. This segment doesn't animate
+ like the others, but, oh well.
+ */
+ if (! wire)
+ mi->polygon_count += draw_joint (mi, p1b, bp->diam, faces, wire);
+ }
+
+ return True;
+}
+
+
+static void
+mem(void)
+{
+ fprintf (stderr, "%s: out of memory\n", progname);
+ exit (1);
+}
+
+
+/* Render the whole thing, but omit segments that lie outside of
+ the path_start and path_end ratios.
+ */
+static void
+hilbert (ModeInfo *mi, int size, GLfloat path_start, GLfloat path_end)
+{
+ hilbert_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+
+ GLfloat w = pow(2, size);
+ int end_t = (bp->twodee_p ? w * w : w * w * w);
+
+ XYZ prev = { 0, };
+ XYZ first = { 0, };
+ Bool first_p = False;
+ Bool any_p = False;
+ int t;
+ Bool fill_cache_p = False;
+ hilbert_cache *cc;
+ int last_color = -1;
+
+ /* Do this here since at higher resolutions, we turn wireframe on
+ and off. */
+
+ if (! wire)
+ {
+ glEnable (GL_NORMALIZE);
+ glEnable (GL_DEPTH_TEST);
+ glEnable (GL_CULL_FACE);
+ glEnable (GL_LIGHTING);
+ glEnable (GL_POLYGON_OFFSET_FILL);
+ }
+
+
+ if (!bp->caches)
+ {
+ bp->caches = (hilbert_cache **)
+ calloc (max_depth + 2, sizeof (*bp->caches));
+ if (!bp->caches) mem();
+ fill_cache_p = True;
+ }
+
+ cc = bp->caches[size];
+ if (! cc)
+ {
+ cc = (hilbert_cache *) calloc (1, sizeof (*cc));
+ cc->values = (XYZb *) calloc (end_t + 1, sizeof (*cc->values));
+ if (!cc->values) mem();
+ cc->size = end_t;
+ bp->caches[size] = cc;
+ fill_cache_p = True;
+ }
+
+ for (t = 0; t < end_t; t++)
+ {
+ int x, y, z;
+ XYZ c;
+ XYZb *cb;
+
+ if (!fill_cache_p)
+ {
+ cb = &cc->values[t];
+ x = cb->x;
+ y = cb->y;
+ z = cb->z;
+ }
+ else
+ {
+ if (!bp->twodee_p)
+ t_to_xyz (size, t, &x, &y, &z, bp->closed_p);
+ else
+ {
+ t_to_xy (size, t, &x, &y, bp->closed_p);
+ z = w/2;
+ }
+ cb = &cc->values[t];
+ cb->x = x;
+ cb->y = y;
+ cb->z = z;
+ }
+
+ c.x = (GLfloat) x / w - 0.5;
+ c.y = (GLfloat) y / w - 0.5;
+ c.z = (GLfloat) z / w - 0.5;
+
+ /* #### We could save some polygons by not drawing the spheres
+ between colinear segments. */
+
+ if (t > 0) {
+ if (draw_segment (mi, prev, c, t, end_t, path_start, path_end, !any_p,
+ &last_color))
+ any_p = True;
+ }
+ prev = c;
+ if (! first_p) {
+ first = c;
+ first_p = True;
+ }
+ }
+
+ if (bp->closed_p && path_end >= 1.0) {
+ draw_segment (mi, prev, first, t, end_t, path_start, path_end, !any_p,
+ &last_color);
+ }
+}
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_hilbert (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+hilbert_handle_event (ModeInfo *mi, XEvent *event)
+{
+ hilbert_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '+' || c == '=' ||
+ keysym == XK_Up || keysym == XK_Right || keysym == XK_Next)
+ {
+ bp->depth++;
+ if (bp->depth > max_depth) bp->depth = max_depth;
+ return True;
+ }
+ else if (c == '-' || c == '_' ||
+ keysym == XK_Down || keysym == XK_Left || keysym == XK_Prior)
+ {
+ bp->depth--;
+ if (bp->depth < 1) bp->depth = 1;
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ bp->depth += bp->depth_tick;
+ if (bp->depth > max_depth-1)
+ {
+ bp->depth = max_depth;
+ bp->depth_tick = -1;
+ }
+ else if (bp->depth <= 1)
+ {
+ bp->depth = 1;
+ bp->depth_tick = 1;
+ }
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_hilbert (ModeInfo *mi)
+{
+ hilbert_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->depth = 2;
+ bp->depth_tick = 1;
+ bp->path_start = 0.0;
+ bp->path_end = 0.0;
+ bp->path_tick = 1;
+
+ if (thickness < 0.01) thickness = 0.01;
+ if (thickness > 1.0) thickness = 1.0;
+
+ if (speed <= 0) speed = 0.0001;
+ if (max_depth < 2) max_depth = 2;
+ if (max_depth > 20) max_depth = 20; /* hard limit due to hilbert_cache */
+
+ if (bp->depth > max_depth-1) bp->depth = max_depth-1;
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_hilbert (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable (GL_LIGHTING);
+ glEnable (GL_LIGHT0);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ {
+ double spin_speed = 0.04;
+ double tilt_speed = spin_speed / 10;
+ double wander_speed = 0.008;
+ double spin_accel = 0.01;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ do_spin);
+ bp->rot2 = make_rotator (0, 0, 0, 0, tilt_speed, True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ if (mode_str && !strcasecmp(mode_str, "2d"))
+ bp->twodee_p = True;
+ else if (mode_str && (!strcasecmp(mode_str, "3d")))
+ bp->twodee_p = False;
+ else
+ {
+ if (! (mode_str && !strcasecmp(mode_str, "random")))
+ fprintf (stderr, "%s: 'mode' must be '2d', '3d', or 'random'\n",
+ progname);
+ bp->twodee_p = ((random() % 3) == 0);
+ }
+
+
+ if (ends_str && (!strcasecmp(ends_str, "closed")))
+ bp->closed_p = True;
+ else if (ends_str && (!strcasecmp(ends_str, "open")))
+ bp->closed_p = False;
+ else
+ {
+ if (! (ends_str && !strcasecmp(ends_str, "random")))
+ fprintf (stderr, "%s: 'ends' must be 'open', 'closed', or 'random'\n",
+ progname);
+ bp->closed_p = ((random() % 3) != 0);
+ }
+
+
+ /* More colors results in more polygons (more tube segments) so keeping
+ this small is worthwhile. */
+ bp->ncolors = (bp->twodee_p ? 1024 : 128);
+
+ if (bp->closed_p)
+ {
+ /* Since the path is closed, colors must also be a closed loop */
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ }
+ else
+ {
+ /* Since the path is open, first and last colors should differ. */
+ bp->ncolors *= 2;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_uniform_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ bp->ncolors /= 2;
+ }
+
+ /* Generate display lists for several different resolutions of
+ a unit tube and a unit sphere.
+ */
+ for (i = 0; i < countof(dlist_faces); i++)
+ {
+ int faces = dlist_faces[i];
+ bp->dlists[faces][0] = glGenLists (1);
+
+ glNewList (bp->dlists[faces][0], GL_COMPILE);
+ bp->dlist_polys[faces][0] = unit_sphere (faces, faces, wire);
+ glEndList ();
+
+ bp->dlists[faces][1] = glGenLists (1);
+
+ glNewList (bp->dlists[faces][1], GL_COMPILE);
+ bp->dlist_polys[faces][1] =
+ tube (0, 0, 0, 1, 0, 0,
+ 1, 0, faces, True, 0, wire);
+ glEndList ();
+ }
+}
+
+
+ENTRYPOINT void
+draw_hilbert (ModeInfo *mi)
+{
+ hilbert_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+
+ static const GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat bshiny = 128.0;
+ GLfloat bcolor[4] = {1.0, 1.0, 1.0, 1.0};
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ if (! wire)
+ {
+ glEnable (GL_NORMALIZE);
+ glEnable (GL_DEPTH_TEST);
+ glEnable (GL_CULL_FACE);
+ glEnable (GL_LIGHTING);
+ glEnable (GL_LIGHT0);
+ glEnable (GL_POLYGON_OFFSET_FILL);
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z, z2;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+
+ if (bp->twodee_p && do_spin) /* face front */
+ {
+ double max = 70;
+ get_position (bp->rot2, &x, &y, &z2, !bp->button_down_p);
+ glRotatef (max/2 - x*max, 1, 0, 0);
+ glRotatef (max/2 - y*max, 0, 1, 0);
+ glRotatef (z * 360, 0, 0, 1); /* but upside down is ok */
+ }
+ else
+ {
+ glRotatef (x * 360, 1, 0, 0);
+ glRotatef (y * 360, 0, 1, 0);
+ glRotatef (z * 360, 0, 0, 1);
+ }
+ }
+
+ mi->polygon_count = 0;
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT, GL_SHININESS, bshiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bcolor);
+
+ glScalef (8,8,8);
+ glTranslatef (0.1, 0.1, 0);
+
+ if (!do_spin && !bp->twodee_p)
+ {
+ /* tilt the cube a little, and make the start and end visible */
+ glTranslatef (-0.1, 0, 0);
+ glRotatef (140, 0, 1, 0);
+ glRotatef (30, 1, 0, 0);
+ }
+
+ if (wire)
+ glLineWidth (bp->depth > 4 ? 1.0 :
+ bp->depth > 3 ? 2.0 :
+ 3.0);
+
+ if (bp->path_tick > 0) /* advancing the end point, [0 - N) */
+ { /* drawing 1 partial path, 1st time only. */
+
+ if (!bp->button_down_p)
+ bp->path_end += 0.01 * speed;
+
+ if (bp->path_end >= 1.0)
+ {
+ bp->path_start = 0.0;
+ bp->path_end = 1.0;
+ bp->path_tick = -1;
+ bp->pause = PAUSE_TICKS;
+ }
+
+ bp->diam = thickness / pow (2, bp->depth);
+ hilbert (mi, bp->depth, bp->path_start, bp->path_end);
+ mi->recursion_depth = bp->depth + bp->path_start;
+ }
+
+ else /* advancing the start point, (N - 1] */
+ { /* drawing 2 paths at different rez. */
+ if (bp->pause)
+ {
+ bp->pause--;
+ }
+ else
+ {
+ if (!bp->button_down_p)
+ bp->path_start += 0.01 * speed;
+
+ if (bp->path_start > 1.0)
+ {
+ bp->path_start = 0.0;
+ bp->depth += bp->depth_tick;
+ bp->pause = PAUSE_TICKS;
+ if (bp->depth > max_depth-1)
+ {
+ bp->depth = max_depth;
+ bp->depth_tick = -1;
+ }
+ else if (bp->depth <= 1)
+ {
+ bp->depth = 1;
+ bp->depth_tick = 1;
+ }
+ }
+ }
+
+ {
+ GLfloat d1 = thickness / pow (2, bp->depth);
+ GLfloat d2 = thickness / pow (2, bp->depth + bp->depth_tick);
+ bp->diam = (d1 * (1 - bp->path_start) +
+ d2 * bp->path_start);
+ }
+
+ /* First time around, start is 0, and end animates forward.
+ Then, to display the next higher resolution, we render
+ depth=N while increasing start and leaving end=1.0;
+ and simultaneously animationg depth=N+1 with start=0 and
+ end increasing by the same amount.
+
+ The two paths aren't actually connected together at the
+ resolution-change interface, and sometimes they overlap,
+ but things go fast enough that it's hard to spot those
+ glitches, so it looks ok.
+ */
+ glPolygonOffset (0, 0);
+ hilbert (mi, bp->depth, bp->path_start, bp->path_end);
+
+ glPolygonOffset (1.0, 1.0);
+ hilbert (mi, bp->depth + bp->depth_tick, 0.0, bp->path_start);
+
+ mi->recursion_depth = bp->depth + (bp->depth_tick * bp->path_start);
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Hilbert", hilbert)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/hilbert.man b/hacks/glx/hilbert.man
new file mode 100644
index 0000000..8693dce
--- /dev/null
+++ b/hacks/glx/hilbert.man
@@ -0,0 +1,103 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+hilbert - 3D Hilbert fractal.
+.SH SYNOPSIS
+.B hilbert
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIratio\fP]
+[\-depth \fInumber\fP]
+[\-spin]
+[\-wander]
+[\-2d]
+[\-3d]
+[\-closed]
+[\-open]
+[\-max\-depth \fInumber\fP]
+[\-thickness \fIratio\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+This draws the recursive Hilbert space-filling curve, in both 2D and
+3D variants. It incrementally animates the growth and recursion to
+the maximum depth, then unwinds it back.
+
+The Hilbert path is a single contiguous line that can fill a volume
+without crossing itself. As a data structure, Hilbert paths are
+useful because ordering along the curve preserves locality: points
+that close together along the curve are also close together in space.
+The converse is often, but not always, true. The coloration
+reflects this.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+How fast the animation should run.
+Less than 1 for slower, greater than 1 for faster.
+.TP 8
+.B \-max\-depth \fInumber\fP
+Max depth to descend. Default: 5, which peaks at around half a
+million polygons.
+.TP 8
+.B \-spin
+.B \-no\-spin
+Whether to rotate the object. Default: true.
+.TP 8
+.B \-wander
+.B \-no\-wander
+Whether to wander the object around on the screen. Default: false;
+.TP 8
+.B \-2d
+.B \-3d
+Whether to draw the 2D or 3D variant. Default: random.
+.TP 8
+.B \-closed
+.B \-open
+Whether to draw the open or closed-path variant. Default: random.
+.TP 8
+.B \-thickness \fIratio\fP
+How thick the lines should be. Default: 0.25.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2011 by Jamie Zawinski. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/hydrostat.c b/hacks/glx/hydrostat.c
new file mode 100644
index 0000000..faf15a0
--- /dev/null
+++ b/hacks/glx/hydrostat.c
@@ -0,0 +1,809 @@
+/* hydrostat, Copyright (C) 2012 by Justin Windle
+ * Copyright (c) 2016 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * Tentacle simulation using inverse kinematics.
+ *
+ * http://soulwire.co.uk/experiments/muscular-hydrostats/
+ * https://github.com/soulwire/Muscular-Hydrostats/
+ *
+ * Ported to C from Javascript by jwz, May 2016
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*count: 3 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_hydrostat 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "sphere.h"
+#include "normals.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+/* It looks bad when you rotate it with the trackball, because it reveals
+ that the tentacles are moving in a 2d plane. But it's useful for
+ debugging. */
+#undef USE_TRACKBALL
+
+#define DEF_SPEED "1.0"
+#define DEF_PULSE "True"
+#define DEF_HEAD_RADIUS "60"
+#define DEF_TENTACLES "35"
+#define DEF_THICKNESS "18"
+#define DEF_LENGTH "55"
+#define DEF_GRAVITY "0.5"
+#define DEF_CURRENT "0.25"
+#define DEF_FRICTION "0.02"
+#define DEF_OPACITY "0.8"
+
+
+#define TENTACLE_FACES 5
+
+typedef struct {
+ XYZ pos, opos, v;
+} node;
+
+typedef struct {
+ int length;
+ GLfloat radius;
+ GLfloat spacing;
+ GLfloat friction;
+ GLfloat th;
+ node *nodes;
+ GLfloat color[4];
+} tentacle;
+
+typedef struct {
+ XYZ pos, from, to;
+ GLfloat ratio, pulse, rate;
+ GLfloat head_radius;
+ GLfloat thickness;
+ int ntentacles;
+ tentacle *tentacles;
+ GLfloat color[4];
+} squid;
+
+typedef struct {
+ GLXContext *glx_context;
+ Bool button_down_p;
+ int dragging;
+ squid **squids;
+ GLfloat cos_sin_table[2 * (TENTACLE_FACES + 1)];
+ GLuint head;
+ int head_polys;
+# ifdef USE_TRACKBALL
+ trackball_state *trackball;
+# endif
+} hydrostat_configuration;
+
+static hydrostat_configuration *bps = NULL;
+
+static Bool do_pulse;
+static GLfloat speed_arg;
+static GLfloat head_radius_arg;
+static GLfloat ntentacles_arg;
+static GLfloat thickness_arg;
+static GLfloat length_arg;
+static GLfloat gravity_arg;
+static GLfloat current_arg;
+static GLfloat friction_arg;
+static GLfloat opacity_arg;
+
+static XrmOptionDescRec opts[] = {
+ { "-pulse", ".pulse", XrmoptionNoArg, "True" },
+ { "+pulse", ".pulse", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-head-radius", ".headRadius", XrmoptionSepArg, 0 },
+ { "-tentacles", ".tentacles", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-length", ".length", XrmoptionSepArg, 0 },
+ { "-gravity", ".gravity", XrmoptionSepArg, 0 },
+ { "-current", ".current", XrmoptionSepArg, 0 },
+ { "-friction", ".friction", XrmoptionSepArg, 0 },
+ { "-opacity", ".opacity", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ { &do_pulse, "pulse", "Pulse", DEF_PULSE, t_Bool },
+ { &speed_arg, "speed", "Speed", DEF_SPEED, t_Float },
+ { &head_radius_arg, "headRadius", "HeadRadius", DEF_HEAD_RADIUS, t_Float },
+ { &ntentacles_arg, "tentacles", "Tentacles", DEF_TENTACLES, t_Float },
+ { &thickness_arg, "thickness", "Thickness", DEF_THICKNESS, t_Float },
+ { &length_arg, "length", "Length", DEF_LENGTH, t_Float },
+ { &gravity_arg, "gravity", "Gravity", DEF_GRAVITY, t_Float },
+ { &current_arg, "current", "Current", DEF_CURRENT, t_Float },
+ { &friction_arg, "friction", "Friction", DEF_FRICTION, t_Float },
+ { &opacity_arg, "opacity", "Opacity", DEF_OPACITY, t_Float },
+};
+
+ENTRYPOINT ModeSpecOpt hydrostat_opts = {countof(opts), opts,
+ countof(vars), vars, NULL};
+
+
+static void
+move_tentacle (squid *sq, tentacle *t)
+{
+ int i, j;
+ node *prev = &t->nodes[0];
+ int rot = (int) current_device_rotation();
+
+ for (i = 1, j = 0; i < t->length; i++, j++)
+ {
+ XYZ d, p;
+ GLfloat da;
+ node *n = &t->nodes[i];
+
+ /* Sadly, this is still computing motion in a 2d plane, so the
+ tentacles look dumb if the scene is rotated. */
+
+ n->pos.x += n->v.x;
+ n->pos.y += n->v.y;
+ n->pos.z += n->v.z;
+
+ d.x = prev->pos.x - n->pos.x;
+ d.y = prev->pos.y - n->pos.y;
+ d.z = prev->pos.z - n->pos.z;
+ da = atan2 (d.z, d.x);
+
+ p.x = n->pos.x + cos (da) * t->spacing * t->length;
+ p.y = n->pos.y + cos (da) * t->spacing * t->length;
+ p.z = n->pos.z + sin (da) * t->spacing * t->length;
+
+ n->pos.x = prev->pos.x - (p.x - n->pos.x);
+ n->pos.y = prev->pos.y - (p.y - n->pos.y);
+ n->pos.z = prev->pos.z - (p.z - n->pos.z);
+
+ n->v.x = n->pos.x - n->opos.x;
+ n->v.y = n->pos.y - n->opos.y;
+ n->v.z = n->pos.z - n->opos.z;
+
+ n->v.x *= t->friction * (1 - friction_arg);
+ n->v.y *= t->friction * (1 - friction_arg);
+ n->v.z *= t->friction * (1 - friction_arg);
+
+ switch (rot) {
+ case 90: case -270:
+ n->v.x += gravity_arg;
+ n->v.y -= current_arg;
+ n->v.z -= current_arg;
+ break;
+ case -90: case 270:
+ n->v.x -= gravity_arg;
+ n->v.y += current_arg;
+ n->v.z += current_arg;
+ break;
+ case 180: case -180:
+ n->v.x -= current_arg;
+ n->v.y -= current_arg;
+ n->v.z -= gravity_arg;
+ break;
+ default:
+ n->v.x += current_arg;
+ n->v.y += current_arg;
+ n->v.z += gravity_arg;
+ break;
+ }
+
+ n->opos.x = n->pos.x;
+ n->opos.y = n->pos.y;
+ n->opos.z = n->pos.z;
+
+ prev = n;
+ }
+}
+
+
+static GLfloat
+ease_fn (GLfloat r)
+{
+ return cos ((r/2 + 1) * M_PI) + 1; /* Smooth curve up, end at slope 1. */
+}
+
+
+/* Squirty motion: fast acceleration, then fade. */
+static GLfloat
+ease_ratio (GLfloat r)
+{
+ GLfloat ease = 0.05;
+ GLfloat ease2 = 1-ease;
+ if (r <= 0) r = 0;
+ else if (r >= 1) r = 1;
+ else if (r <= ease) r = ease * ease_fn (r / ease);
+ else r = 1 - ease2 * ease_fn ((1 - r) / ease2);
+ return r;
+}
+
+
+static void
+move_squid (ModeInfo *mi, squid *sq)
+{
+ hydrostat_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat step = M_PI * 2 / sq->ntentacles;
+ int i;
+ GLfloat radius = head_radius_arg;
+ GLfloat r;
+
+ /* Move to a new position */
+
+ if (! bp->button_down_p)
+ {
+ sq->ratio += speed_arg * 0.01;
+ if (sq->ratio >= 1)
+ {
+ sq->ratio = -(frand(2.0) + frand(2.0) + frand(2.0));
+ sq->from.x = sq->to.x;
+ sq->from.y = sq->to.y;
+ sq->from.z = sq->to.z;
+ sq->to.x = 250 - frand(500);
+ sq->to.y = 250 - frand(500);
+ sq->to.z = 250 - frand(500);
+ }
+
+ r = sq->ratio > 0 ? ease_ratio (sq->ratio) : 0;
+ sq->pos.x = sq->from.x + r * (sq->to.x - sq->from.x);
+ sq->pos.y = sq->from.y + r * (sq->to.y - sq->from.y);
+ sq->pos.z = sq->from.z + r * (sq->to.z - sq->from.z);
+ }
+
+ if (do_pulse)
+ {
+ GLfloat p = pow (sin (sq->pulse * M_PI), 18);
+ sq->head_radius = (head_radius_arg * 0.7 +
+ head_radius_arg * 0.3 * p);
+ radius = sq->head_radius * 0.25;
+ sq->pulse += sq->rate * speed_arg * 0.02;
+ if (sq->pulse > 1) sq->pulse = 0;
+ }
+
+ for (i = 0; i < sq->ntentacles; i++)
+ {
+ tentacle *tt = &sq->tentacles[i];
+ GLfloat th = i * step;
+ GLfloat px = cos (th) * radius;
+ GLfloat py = sin (th) * radius;
+ tt->th = th;
+ tt->nodes[0].pos.x = sq->pos.x + px;
+ tt->nodes[0].pos.y = sq->pos.y + py;
+ tt->nodes[0].pos.z = sq->pos.z;
+ move_tentacle (sq, tt);
+ }
+}
+
+
+/* Find the angle at which the head should be tilted in the XY plane.
+ */
+static GLfloat
+head_angle (ModeInfo *mi, squid *sq)
+{
+ int i;
+ XYZ sum = { 0, };
+
+ for (i = 0; i < sq->ntentacles; i++)
+ {
+ tentacle *t = &sq->tentacles[i];
+ int j = t->length / 3; /* Pick a node toward the top */
+ node *n = &t->nodes[j];
+ sum.x += n->pos.x;
+ sum.y += n->pos.y;
+ sum.z += n->pos.z;
+ }
+
+ sum.x /= sq->ntentacles;
+ sum.y /= sq->ntentacles;
+ sum.z /= sq->ntentacles;
+
+ sum.x -= sq->pos.x;
+ sum.y -= sq->pos.y;
+ sum.z -= sq->pos.z;
+
+ return (-atan2 (sum.x, sum.z) * (180 / M_PI));
+}
+
+
+static void
+draw_head (ModeInfo *mi, squid *sq, GLfloat scale)
+{
+ hydrostat_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat c2[4];
+ GLfloat angle = head_angle (mi, sq);
+
+ scale *= 1.1;
+
+ glPushMatrix();
+ glTranslatef (sq->pos.x, sq->pos.y, sq->pos.z);
+ glScalef (sq->head_radius, sq->head_radius, sq->head_radius);
+ glScalef (scale, scale, scale);
+ glRotatef (90, 1, 0, 0);
+
+ memcpy (c2, sq->color, sizeof(c2));
+ if (opacity_arg < 1.0 && scale >= 1.0)
+ c2[3] *= 0.6;
+ glColor4fv (c2);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c2);
+
+ glTranslatef (0, 0.3, 0);
+ glRotatef (angle, 0, 0, 1);
+
+ glCallList (bp->head);
+ mi->polygon_count += bp->head_polys;
+
+ glPopMatrix();
+}
+
+
+static void
+draw_squid (ModeInfo *mi, squid *sq)
+{
+ hydrostat_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+
+ if (opacity_arg < 1.0)
+ draw_head (mi, sq, 0.75);
+
+ if (!wire) {
+ glFrontFace (GL_CCW);
+ glBegin (GL_TRIANGLE_STRIP);
+ }
+
+ for (i = 0; i < sq->ntentacles; i++)
+ {
+ tentacle *t = &sq->tentacles[i];
+ int j;
+
+ glColor4fv (t->color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, t->color);
+
+ if (wire)
+ {
+ glBegin (GL_LINE_STRIP);
+ for (j = 0; j < t->length; j++)
+ glVertex3f (t->nodes[j].pos.x,
+ t->nodes[j].pos.y,
+ t->nodes[j].pos.z);
+ glEnd();
+ mi->polygon_count += t->length;
+ }
+ else
+ {
+ GLfloat radius = t->radius * thickness_arg;
+ GLfloat rstep = radius / t->length;
+ for (j = 0; j < t->length-1; j++)
+ {
+ int k;
+ node *n1 = &t->nodes[j];
+ node *n2 = &t->nodes[j+1];
+ GLfloat X = (n1->pos.x - n2->pos.x);
+ GLfloat Y = (n1->pos.y - n2->pos.y);
+ GLfloat Z = (n1->pos.z - n2->pos.z);
+ GLfloat L = sqrt (X*X + Y*Y + Z*Z);
+ GLfloat r2 = radius - rstep;
+ GLfloat L2 = sqrt (X*X + Y*Y);
+
+ for (k = 0; k <= TENTACLE_FACES; k++)
+ {
+ GLfloat c = bp->cos_sin_table[2 * k];
+ GLfloat s = bp->cos_sin_table[2 * k + 1];
+ GLfloat x1 = radius * c;
+ GLfloat y1 = radius * s;
+ GLfloat z1 = 0;
+ GLfloat x2 = r2 * c;
+ GLfloat y2 = r2 * s;
+ GLfloat z2 = L;
+
+ GLfloat x1t = (L2*X*z1-X*Z*y1+L*Y*x1)/(L*L2);
+ GLfloat z1t = (L2*Y*z1-Y*Z*y1-L*X*x1)/(L*L2);
+ GLfloat y1t = (Z*z1+L2*y1)/L;
+
+ GLfloat x2t = (L2*X*z2-X*Z*y2+L*Y*x2)/(L*L2) + n1->pos.x;
+ GLfloat z2t = (L2*Y*z2-Y*Z*y2-L*X*x2)/(L*L2) + n1->pos.y;
+ GLfloat y2t = (Z*z2+L2*y2)/L + n1->pos.z;
+
+ glNormal3f (x1t, z1t, y1t);
+
+ x1t += n1->pos.x;
+ z1t += n1->pos.y;
+ y1t += n1->pos.z;
+
+ if (k == 0)
+ glVertex3f (x1t, z1t, y1t);
+ glVertex3f (x1t, z1t, y1t);
+
+ glVertex3f (x2t, z2t, y2t);
+ if (k == TENTACLE_FACES)
+ glVertex3f (x2t, z2t, y2t);
+
+ mi->polygon_count++;
+ }
+ radius = r2;
+ }
+ }
+ }
+
+ if (!wire)
+ glEnd ();
+
+ draw_head (mi, sq, 1.0);
+
+ glPopMatrix();
+}
+
+
+static squid *
+make_squid (ModeInfo *mi, int which)
+{
+ squid *sq = calloc (1, sizeof(*sq));
+ int i;
+
+ sq->head_radius = head_radius_arg;
+ sq->thickness = thickness_arg;
+ sq->ntentacles = ntentacles_arg;
+
+ sq->color[0] = 0.1 + frand(0.7);
+ sq->color[1] = 0.5 + frand(0.5);
+ sq->color[2] = 0.1 + frand(0.7);
+ sq->color[3] = opacity_arg;
+
+ sq->from.x = sq->to.x = sq->pos.x = 200 - frand(400);
+ sq->from.y = sq->to.y = sq->pos.y = 200 - frand(400);
+ sq->from.z = sq->to.z = sq->pos.z = -frand(200);
+
+ sq->ratio = -frand(3);
+
+ if (which > 0) /* Start others off screen, and moving in */
+ {
+ sq->from.x = sq->to.x = sq->pos.x = 800 + frand(500)
+ * (random()&1 ? 1 : -1);
+ sq->from.y = sq->to.y = sq->pos.y = 800 + frand(500)
+ * (random()&1 ? 1 : -1);
+ sq->ratio = 0;
+ }
+
+ if (do_pulse)
+ sq->pulse = frand(1.0);
+ sq->rate = 0.8 + frand(0.2);
+
+ sq->tentacles = (tentacle *)
+ calloc (sq->ntentacles, sizeof(*sq->tentacles));
+ for (i = 0; i < sq->ntentacles; i++)
+ {
+ int j;
+ tentacle *t = &sq->tentacles[i];
+ GLfloat shade = 0.75 + frand(0.25);
+
+ t->length = 2 + length_arg * (0.8 + frand (0.4));
+ t->radius = 0.05 + frand (0.95);
+ t->spacing = 0.02 + frand (0.08);
+ t->friction = 0.7 + frand (0.18);
+ t->nodes = (node *) calloc (t->length + 1, sizeof (*t->nodes));
+
+ t->color[0] = shade * sq->color[0];
+ t->color[1] = shade * sq->color[1];
+ t->color[2] = shade * sq->color[2];
+ t->color[3] = sq->color[3];
+
+ for (j = 0; j < t->length; j++)
+ {
+ node *n = &t->nodes[j];
+ n->pos.x = sq->pos.x;
+ n->pos.y = sq->pos.y;
+ n->pos.z = sq->pos.z + j;
+ }
+ }
+
+ return sq;
+}
+
+/* qsort comparator for sorting squid by depth */
+static int
+cmp_squid (const void *aa, const void *bb)
+{
+ squid * const *a = aa;
+ squid * const *b = bb;
+ return ((int) ((*b)->pos.y * 10000) -
+ (int) ((*a)->pos.y * 10000));
+}
+
+
+static void
+free_squid (squid *sq)
+{
+ int i;
+ for (i = 0; i < sq->ntentacles; i++)
+ free (sq->tentacles[i].nodes);
+ free (sq->tentacles);
+ free (sq);
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_hydrostat (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+
+ENTRYPOINT Bool
+hydrostat_handle_event (ModeInfo *mi, XEvent *event)
+{
+ hydrostat_configuration *bp = &bps[MI_SCREEN(mi)];
+ int w = MI_WIDTH(mi);
+ int h = MI_HEIGHT(mi);
+ int x, y;
+
+# ifdef USE_TRACKBALL
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+# endif
+
+ switch (event->xany.type) {
+ case ButtonPress: case ButtonRelease:
+ x = event->xbutton.x;
+ y = event->xbutton.y;
+ break;
+ case MotionNotify:
+ x = event->xmotion.x;
+ y = event->xmotion.y;
+ break;
+ default:
+ x = y = 0;
+ }
+
+ x -= w/2;
+ y -= h/2;
+ x *= 0.7;
+ y *= 0.7;
+
+ if (event->xany.type == ButtonPress)
+ {
+ int i;
+ GLfloat D0 = 999999;
+
+ /* This is pretty halfassed hit detection, but it works ok... */
+ for (i = 0; i < MI_COUNT(mi); i++)
+ {
+ squid *s = bp->squids[i];
+ GLfloat X = s->pos.x - x;
+ GLfloat Y = s->pos.z - y;
+ GLfloat D = sqrt(X*X + Y*Y);
+ if (D < D0)
+ {
+ bp->dragging = i;
+ D0 = D;
+ }
+ }
+
+ if (D0 > 300) /* Too far away, missed hit */
+ {
+ bp->dragging = -1;
+ return False;
+ }
+
+ bp->squids[bp->dragging]->ratio = -3;
+ bp->button_down_p = True;
+
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease && bp->dragging >= 0)
+ {
+ bp->button_down_p = False;
+ bp->dragging = -1;
+ return True;
+ }
+ else if (event->xany.type == MotionNotify && bp->dragging >= 0)
+ {
+ squid *s = bp->squids[bp->dragging];
+ s->from.x = s->to.x = s->pos.x = x;
+ s->from.z = s->to.z = s->pos.z = y;
+ s->from.y = s->to.y = s->pos.y;
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_hydrostat (ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ hydrostat_configuration *bp;
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_hydrostat (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+ int k;
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ for (k = 0; k <= TENTACLE_FACES; k++)
+ {
+ GLfloat th = k * M_PI * 2 / TENTACLE_FACES;
+ bp->cos_sin_table[2 * k] = cos(th);
+ bp->cos_sin_table[2 * k + 1] = sin(th);
+ }
+ }
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+
+ if (MI_COUNT(mi) <= 0)
+ MI_COUNT(mi) = 1;
+
+ if (random() & 1)
+ current_arg = -current_arg;
+
+ if (MI_COUNT(mi) == 1 || wire)
+ opacity_arg = 1.0;
+ if (opacity_arg < 0.1) opacity_arg = 0.1;
+ if (opacity_arg > 1.0) opacity_arg = 1.0;
+
+ bp->squids = (squid **) calloc (MI_COUNT(mi), sizeof(*bp->squids));
+ for (i = 0; i < MI_COUNT(mi); i++)
+ bp->squids[i] = make_squid (mi, i);
+
+ bp->dragging = -1;
+
+ if (opacity_arg < 1.0)
+ {
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE);
+ }
+
+ i = wire ? 4 : 24;
+ bp->head = glGenLists (1);
+ glNewList (bp->head, GL_COMPILE);
+ glScalef (1, 1.1, 1);
+ bp->head_polys = unit_dome (wire ? 8 : 16, i, wire);
+ glRotatef (180, 0, 0, 1);
+ glScalef (1, 0.5, 1);
+ bp->head_polys += unit_dome (wire ? 8 : 8, i, wire);
+ glEndList ();
+
+# ifdef USE_TRACKBALL
+ bp->trackball = gltrackball_init (True);
+# endif
+}
+
+
+ENTRYPOINT void
+draw_hydrostat (ModeInfo *mi)
+{
+ hydrostat_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef (0.03, 0.03, 0.03);
+
+# ifdef USE_TRACKBALL
+ gltrackball_rotate (bp->trackball);
+# endif
+
+ mi->polygon_count = 0;
+
+ if (opacity_arg < 1.0)
+ qsort (bp->squids, MI_COUNT(mi), sizeof(*bp->squids), cmp_squid);
+
+ for (i = 0; i < MI_COUNT(mi); i++)
+ {
+ squid *sq = bp->squids[i];
+ move_squid (mi, sq);
+ draw_squid (mi, sq);
+ if (opacity_arg < 1.0)
+ glClear (GL_DEPTH_BUFFER_BIT);
+ }
+
+ if (! (random() % 700)) /* Reverse the flow every now and then */
+ current_arg = -current_arg;
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_hydrostat (ModeInfo *mi)
+{
+ hydrostat_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ if (!bp->squids)
+ return;
+ for (i = 0; i < MI_COUNT(mi); i++)
+ free_squid (bp->squids[i]);
+ free (bp->squids);
+}
+
+XSCREENSAVER_MODULE ("Hydrostat", hydrostat)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/hydrostat.man b/hacks/glx/hydrostat.man
new file mode 100644
index 0000000..de75525
--- /dev/null
+++ b/hacks/glx/hydrostat.man
@@ -0,0 +1,103 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+hydrostat - Wiggly squid or jellyfish with many tentacles.
+.SH SYNOPSIS
+.B hydrostat
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-head-radius \fInumber\fP]
+[\-tentacles \fInumber\fP]
+[\-thickness \fInumber\fP]
+[\-length \fInumber\fP]
+[\-gravity \fInumber\fP]
+[\-current \fInumber\fP]
+[\-friction \fInumber\fP]
+[\-no-pulse]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Wiggly squid or jellyfish with many tentacles. A muscular hydrostat
+is a biological structure used to move its host about, consisting of
+muscles with no skeletal support. It performs its hydraulic movement
+without fluid in a separate compartment, as in a hydrostatic
+skeleton.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-count \fInumber\fP
+Number of squid. 1 - 100. Default: 10.
+.TP 8
+.B \-head-radius \fInumber\fP
+Head size. 10 - 100. Default: 60.
+.TP 8
+.B \-tentacles \fInumber\fP
+Number of tentacles. 3 - 100. Default: 40.
+.TP 8
+.B \-thickness \fInumber\fP
+Thickness of tentacles. 3 - 40. Default: 18.
+.TP 8
+.B \-length \fInumber\fP
+Length of tentacles. 10 - 150. Default: 70.
+.TP 8
+.B \-gravity \fInumber\fP
+Strength of gravity. 0 - 10.0. Default: 0.5.
+.TP 8
+.B \-current \fInumber\fP
+Strength of current. 0.0 - 10.0. Default: 0.25.
+.TP 8
+.B \-friction \fInumber\fP
+Coefficient of friction. 0.0 - 0.1. Default: 0.02.
+.TP 8
+.B \-pulse | \-no-pulse
+Whether the squid should pulse. Default true.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+
+.BR http://soulwire.co.uk/experiments/muscular-hydrostats/
+.SH COPYRIGHT
+Copyright \(co 2016 by Justin Windle and Jamie Zawinski. Permission
+to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided
+that the above copyright notice appear in all copies and that both
+that copyright notice and this permission notice appear in supporting
+documentation. No representations are made about the suitability of
+this software for any purpose. It is provided "as is" without express
+or implied warranty.
+.SH AUTHOR
+Justin Windle and Jamie Zawinski.
diff --git a/hacks/glx/hypertorus.c b/hacks/glx/hypertorus.c
new file mode 100644
index 0000000..3ae6aad
--- /dev/null
+++ b/hacks/glx/hypertorus.c
@@ -0,0 +1,1016 @@
+/* hypertorus --- Shows a hypertorus that rotates in 4d */
+
+#if 0
+static const char sccsid[] = "@(#)hypertorus.c 1.2 05/09/28 xlockmore";
+#endif
+
+/* Copyright (c) 2003-2009 Carsten Steger <carsten@mirsanmir.org>. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * REVISION HISTORY:
+ * C. Steger - 03/05/18: Initial version
+ * C. Steger - 05/09/28: Added the spirals appearance mode
+ * and trackball support
+ * C. Steger - 07/01/23: Improved 4d trackball support
+ * C. Steger - 09/08/22: Removed check-config.pl warnings
+ */
+
+/*
+ * This program shows the Clifford torus as it rotates in 4d. The Clifford
+ * torus is a torus lies on the "surface" of the hypersphere in 4d. The
+ * program projects the 4d torus to 3d using either a perspective or an
+ * orthographic projection. Of the two alternatives, the perspecitve
+ * projection looks much more appealing. In orthographic projections the
+ * torus degenerates into a doubly covered cylinder for some angles. The
+ * projected 3d torus can then be projected to the screen either perspectively
+ * or orthographically. There are three display modes for the torus: mesh
+ * (wireframe), solid, or transparent. Furthermore, the appearance of the
+ * torus can be as a solid object or as a set of see-through bands or
+ * see-through spirals. Finally, the colors with with the torus is drawn can
+ * be set to either two-sided or to colorwheel. In the first case, the torus
+ * is drawn with red on the outside and green on the inside. This mode
+ * enables you to see that the torus turns inside-out as it rotates in 4d.
+ * The second mode draws the torus in a fully saturated color wheel. This
+ * gives a very nice effect when combined with the see-through bands or
+ * see-through spirals mode. The rotation speed for each of the six planes
+ * around which the torus rotates can be chosen. This program is very much
+ * inspired by Thomas Banchoff's book "Beyond the Third Dimension: Geometry,
+ * Computer Graphics, and Higher Dimensions", Scientific American Library,
+ * 1990.
+ */
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define DISP_WIREFRAME 0
+#define DISP_SURFACE 1
+#define DISP_TRANSPARENT 2
+
+#define APPEARANCE_SOLID 0
+#define APPEARANCE_BANDS 1
+#define APPEARANCE_SPIRALS 2
+
+#define COLORS_TWOSIDED 0
+#define COLORS_COLORWHEEL 1
+
+#define DISP_3D_PERSPECTIVE 0
+#define DISP_3D_ORTHOGRAPHIC 1
+
+#define DISP_4D_PERSPECTIVE 0
+#define DISP_4D_ORTHOGRAPHIC 1
+
+#define DEF_DISPLAY_MODE "surface"
+#define DEF_APPEARANCE "bands"
+#define DEF_COLORS "colorwheel"
+#define DEF_PROJECTION_3D "perspective"
+#define DEF_PROJECTION_4D "perspective"
+#define DEF_SPEEDWX "1.1"
+#define DEF_SPEEDWY "1.3"
+#define DEF_SPEEDWZ "1.5"
+#define DEF_SPEEDXY "1.7"
+#define DEF_SPEEDXZ "1.9"
+#define DEF_SPEEDYZ "2.1"
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 25000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_hypertorus 0
+# define release_hypertorus 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#include "gltrackball.h"
+
+
+#ifdef USE_MODULES
+ModStruct hypertorus_description =
+{"hypertorus", "init_hypertorus", "draw_hypertorus", NULL,
+ "draw_hypertorus", "change_hypertorus", NULL, &hypertorus_opts,
+ 25000, 1, 1, 1, 1.0, 4, "",
+ "Shows a hypertorus rotating in 4d", 0, NULL};
+
+#endif
+
+
+static char *mode;
+static int display_mode;
+static char *appear;
+static int appearance;
+static int num_spirals;
+static char *color_mode;
+static int colors;
+static char *proj_3d;
+static int projection_3d;
+static char *proj_4d;
+static int projection_4d;
+static float speed_wx;
+static float speed_wy;
+static float speed_wz;
+static float speed_xy;
+static float speed_xz;
+static float speed_yz;
+
+static const float offset4d[4] = { 0.0, 0.0, 0.0, 2.0 };
+static const float offset3d[4] = { 0.0, 0.0, -2.0, 0.0 };
+
+
+static XrmOptionDescRec opts[] =
+{
+ {"-mode", ".displayMode", XrmoptionSepArg, 0 },
+ {"-wireframe", ".displayMode", XrmoptionNoArg, "wireframe" },
+ {"-surface", ".displayMode", XrmoptionNoArg, "surface" },
+ {"-transparent", ".displayMode", XrmoptionNoArg, "transparent" },
+ {"-appearance", ".appearance", XrmoptionSepArg, 0 },
+ {"-solid", ".appearance", XrmoptionNoArg, "solid" },
+ {"-bands", ".appearance", XrmoptionNoArg, "bands" },
+ {"-spirals-1", ".appearance", XrmoptionNoArg, "spirals-1" },
+ {"-spirals-2", ".appearance", XrmoptionNoArg, "spirals-2" },
+ {"-spirals-4", ".appearance", XrmoptionNoArg, "spirals-4" },
+ {"-spirals-8", ".appearance", XrmoptionNoArg, "spirals-8" },
+ {"-spirals-16", ".appearance", XrmoptionNoArg, "spirals-16" },
+ {"-twosided", ".colors", XrmoptionNoArg, "twosided" },
+ {"-colorwheel", ".colors", XrmoptionNoArg, "colorwheel" },
+ {"-perspective-3d", ".projection3d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-3d", ".projection3d", XrmoptionNoArg, "orthographic" },
+ {"-perspective-4d", ".projection4d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-4d", ".projection4d", XrmoptionNoArg, "orthographic" },
+ {"-speed-wx", ".speedwx", XrmoptionSepArg, 0 },
+ {"-speed-wy", ".speedwy", XrmoptionSepArg, 0 },
+ {"-speed-wz", ".speedwz", XrmoptionSepArg, 0 },
+ {"-speed-xy", ".speedxy", XrmoptionSepArg, 0 },
+ {"-speed-xz", ".speedxz", XrmoptionSepArg, 0 },
+ {"-speed-yz", ".speedyz", XrmoptionSepArg, 0 }
+};
+
+static argtype vars[] =
+{
+ { &mode, "displayMode", "DisplayMode", DEF_DISPLAY_MODE, t_String },
+ { &appear, "appearance", "Appearance", DEF_APPEARANCE, t_String },
+ { &color_mode, "colors", "Colors", DEF_COLORS, t_String },
+ { &proj_3d, "projection3d", "Projection3d", DEF_PROJECTION_3D, t_String },
+ { &proj_4d, "projection4d", "Projection4d", DEF_PROJECTION_4D, t_String },
+ { &speed_wx, "speedwx", "Speedwx", DEF_SPEEDWX, t_Float},
+ { &speed_wy, "speedwy", "Speedwy", DEF_SPEEDWY, t_Float},
+ { &speed_wz, "speedwz", "Speedwz", DEF_SPEEDWZ, t_Float},
+ { &speed_xy, "speedxy", "Speedxy", DEF_SPEEDXY, t_Float},
+ { &speed_xz, "speedxz", "Speedxz", DEF_SPEEDXZ, t_Float},
+ { &speed_yz, "speedyz", "Speedyz", DEF_SPEEDYZ, t_Float}
+};
+
+static OptionStruct desc[] =
+{
+ { "-wireframe", "display the torus as a wireframe mesh" },
+ { "-surface", "display the torus as a solid surface" },
+ { "-transparent", "display the torus as a transparent surface" },
+ { "-solid", "display the torus as a solid object" },
+ { "-bands", "display the torus as see-through bands" },
+ { "-spirals-{1,2,4,8,16}", "display the torus as see-through spirals" },
+ { "-twosided", "display the torus with two colors" },
+ { "-colorwheel", "display the torus with a smooth color wheel" },
+ { "-perspective-3d", "project the torus perspectively from 3d to 2d" },
+ { "-orthographic-3d", "project the torus orthographically from 3d to 2d" },
+ { "-perspective-4d", "project the torus perspectively from 4d to 3d" },
+ { "-orthographic-4d", "project the torus orthographically from 4d to 3d" },
+ { "-speed-wx <arg>", "rotation speed around the wx plane" },
+ { "-speed-wy <arg>", "rotation speed around the wy plane" },
+ { "-speed-wz <arg>", "rotation speed around the wz plane" },
+ { "-speed-xy <arg>", "rotation speed around the xy plane" },
+ { "-speed-xz <arg>", "rotation speed around the xz plane" },
+ { "-speed-yz <arg>", "rotation speed around the yz plane" }
+};
+
+ENTRYPOINT ModeSpecOpt hypertorus_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+
+typedef struct {
+ GLint WindH, WindW;
+ GLXContext *glx_context;
+ /* 4D rotation angles */
+ float alpha, beta, delta, zeta, eta, theta;
+ /* Aspect ratio of the current window */
+ float aspect;
+ /* Trackball states */
+ trackball_state *trackballs[2];
+ int current_trackball;
+ Bool button_pressed;
+
+ float speed_scale;
+
+} hypertorusstruct;
+
+static hypertorusstruct *hyper = (hypertorusstruct *) NULL;
+
+
+/* Add a rotation around the wx-plane to the matrix m. */
+static void rotatewx(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][2];
+ m[i][1] = c*u+s*v;
+ m[i][2] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wy-plane to the matrix m. */
+static void rotatewy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][2];
+ m[i][0] = c*u-s*v;
+ m[i][2] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wz-plane to the matrix m. */
+static void rotatewz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][1];
+ m[i][0] = c*u+s*v;
+ m[i][1] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xy-plane to the matrix m. */
+static void rotatexy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][2];
+ v = m[i][3];
+ m[i][2] = c*u+s*v;
+ m[i][3] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xz-plane to the matrix m. */
+static void rotatexz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][3];
+ m[i][1] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the yz-plane to the matrix m. */
+static void rotateyz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][3];
+ m[i][0] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Compute the rotation matrix m from the rotation angles. */
+static void rotateall(float al, float be, float de, float ze, float et,
+ float th, float m[4][4])
+{
+ int i, j;
+
+ for (i=0; i<4; i++)
+ for (j=0; j<4; j++)
+ m[i][j] = (i==j);
+ rotatewx(m,al);
+ rotatewy(m,be);
+ rotatewz(m,de);
+ rotatexz(m,et);
+ rotatexy(m,ze);
+ rotateyz(m,th);
+}
+
+
+/* Multiply two rotation matrices: o=m*n. */
+static void mult_rotmat(float m[4][4], float n[4][4], float o[4][4])
+{
+ int i, j, k;
+
+ for (i=0; i<4; i++)
+ {
+ for (j=0; j<4; j++)
+ {
+ o[i][j] = 0.0;
+ for (k=0; k<4; k++)
+ o[i][j] += m[i][k]*n[k][j];
+ }
+ }
+}
+
+
+/* Compute a 4D rotation matrix from two unit quaternions. */
+static void quats_to_rotmat(float p[4], float q[4], float m[4][4])
+{
+ double al, be, de, ze, et, th;
+ double r00, r01, r02, r12, r22;
+
+ r00 = 1.0-2.0*(p[1]*p[1]+p[2]*p[2]);
+ r01 = 2.0*(p[0]*p[1]+p[2]*p[3]);
+ r02 = 2.0*(p[2]*p[0]-p[1]*p[3]);
+ r12 = 2.0*(p[1]*p[2]+p[0]*p[3]);
+ r22 = 1.0-2.0*(p[1]*p[1]+p[0]*p[0]);
+
+ al = atan2(-r12,r22)*180.0/M_PI;
+ be = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ de = atan2(-r01,r00)*180.0/M_PI;
+
+ r00 = 1.0-2.0*(q[1]*q[1]+q[2]*q[2]);
+ r01 = 2.0*(q[0]*q[1]+q[2]*q[3]);
+ r02 = 2.0*(q[2]*q[0]-q[1]*q[3]);
+ r12 = 2.0*(q[1]*q[2]+q[0]*q[3]);
+ r22 = 1.0-2.0*(q[1]*q[1]+q[0]*q[0]);
+
+ et = atan2(-r12,r22)*180.0/M_PI;
+ th = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ ze = atan2(-r01,r00)*180.0/M_PI;
+
+ rotateall(al,be,de,ze,et,-th,m);
+}
+
+
+/* Compute a fully saturated and bright color based on an angle. */
+static void color(double angle)
+{
+ int s;
+ double t;
+ float color[4];
+
+ if (colors != COLORS_COLORWHEEL)
+ return;
+
+ if (angle >= 0.0)
+ angle = fmod(angle,2*M_PI);
+ else
+ angle = fmod(angle,-2*M_PI);
+ s = floor(angle/(M_PI/3));
+ t = angle/(M_PI/3)-s;
+ if (s >= 6)
+ s = 0;
+ switch (s)
+ {
+ case 0:
+ color[0] = 1.0;
+ color[1] = t;
+ color[2] = 0.0;
+ break;
+ case 1:
+ color[0] = 1.0-t;
+ color[1] = 1.0;
+ color[2] = 0.0;
+ break;
+ case 2:
+ color[0] = 0.0;
+ color[1] = 1.0;
+ color[2] = t;
+ break;
+ case 3:
+ color[0] = 0.0;
+ color[1] = 1.0-t;
+ color[2] = 1.0;
+ break;
+ case 4:
+ color[0] = t;
+ color[1] = 0.0;
+ color[2] = 1.0;
+ break;
+ case 5:
+ color[0] = 1.0;
+ color[1] = 0.0;
+ color[2] = 1.0-t;
+ break;
+ }
+ if (display_mode == DISP_TRANSPARENT)
+ color[3] = 0.7;
+ else
+ color[3] = 1.0;
+ glColor3fv(color);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,color);
+}
+
+
+/* Draw a hypertorus projected into 3D. Note that the spirals appearance
+ will only work correctly if numu and numv are set to 64 or any higher
+ power of 2. Similarly, the banded appearance will only work correctly
+ if numu and numv are divisible by 4. */
+static int hypertorus(ModeInfo *mi, double umin, double umax, double vmin,
+ double vmax, int numu, int numv)
+{
+ int polys = 0;
+ static const GLfloat mat_diff_red[] = { 1.0, 0.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_green[] = { 0.0, 1.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_trans_red[] = { 1.0, 0.0, 0.0, 0.7 };
+ static const GLfloat mat_diff_trans_green[] = { 0.0, 1.0, 0.0, 0.7 };
+ float p[3], pu[3], pv[3], n[3], mat[4][4];
+ int i, j, k, l, m, b, skew;
+ double u, v, ur, vr;
+ double cu, su, cv, sv;
+ double xx[4], xxu[4], xxv[4], x[4], xu[4], xv[4];
+ double r, s, t;
+ float q1[4], q2[4], r1[4][4], r2[4][4];
+ hypertorusstruct *hp = &hyper[MI_SCREEN(mi)];
+
+ rotateall(hp->alpha,hp->beta,hp->delta,hp->zeta,hp->eta,hp->theta,r1);
+
+ gltrackball_get_quaternion(hp->trackballs[0],q1);
+ gltrackball_get_quaternion(hp->trackballs[1],q2);
+ quats_to_rotmat(q1,q2,r2);
+
+ mult_rotmat(r2,r1,mat);
+
+ if (colors != COLORS_COLORWHEEL)
+ {
+ glColor3fv(mat_diff_red);
+ if (display_mode == DISP_TRANSPARENT)
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_green);
+ }
+ else
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_green);
+ }
+ }
+
+#if 0 /* #### not working */
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+#endif
+
+ skew = num_spirals;
+ ur = umax-umin;
+ vr = vmax-vmin;
+ for (i=0; i<numu; i++)
+ {
+ if ((appearance == APPEARANCE_BANDS ||
+ appearance == APPEARANCE_SPIRALS) && ((i & 3) >= 2))
+ continue;
+ if (display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=numv; j++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = (i+k);
+ m = j;
+ u = ur*l/numu+umin;
+ v = vr*m/numv+vmin;
+ if (appearance == APPEARANCE_SPIRALS)
+ {
+ u += 4.0*skew/numv*v;
+ b = ((i/4)&(skew-1))*(numu/(4*skew));
+ color(ur*4*b/numu+umin);
+ }
+ else
+ {
+ color(u);
+ }
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ xx[0] = cu;
+ xx[1] = su;
+ xx[2] = cv;
+ xx[3] = sv;
+ xxu[0] = -su;
+ xxu[1] = cu;
+ xxu[2] = 0.0;
+ xxu[3] = 0.0;
+ xxv[0] = 0.0;
+ xxv[1] = 0.0;
+ xxv[2] = -sv;
+ xxv[3] = cv;
+ for (l=0; l<4; l++)
+ {
+ r = 0.0;
+ s = 0.0;
+ t = 0.0;
+ for (m=0; m<4; m++)
+ {
+ r += mat[l][m]*xx[m];
+ s += mat[l][m]*xxu[m];
+ t += mat[l][m]*xxv[m];
+ }
+ x[l] = r;
+ xu[l] = s;
+ xv[l] = t;
+ }
+ if (projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ p[l] = (x[l]+offset4d[l])/1.5+offset3d[l];
+ pu[l] = xu[l];
+ pv[l] = xv[l];
+ }
+ }
+ else
+ {
+ s = x[3]+offset4d[3];
+ t = s*s;
+ for (l=0; l<3; l++)
+ {
+ r = x[l]+offset4d[l];
+ p[l] = r/s+offset3d[l];
+ pu[l] = (xu[l]*s-r*xu[3])/t;
+ pv[l] = (xv[l]*s-r*xv[3])/t;
+ }
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);
+ n[0] /= t;
+ n[1] /= t;
+ n[2] /= t;
+ glNormal3fv(n);
+ glVertex3fv(p);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ polys /= 2;
+ return polys;
+}
+
+
+static void init(ModeInfo *mi)
+{
+ static const GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
+ static const GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
+ static const GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ hypertorusstruct *hp = &hyper[MI_SCREEN(mi)];
+
+ hp->alpha = 0.0;
+ hp->beta = 0.0;
+ hp->delta = 0.0;
+ hp->zeta = 0.0;
+ hp->eta = 0.0;
+ hp->theta = 0.0;
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (projection_3d == DISP_3D_PERSPECTIVE)
+ gluPerspective(60.0,1.0,0.1,100.0);
+ else
+ glOrtho(-1.0,1.0,-1.0,1.0,0.1,100.0);;
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ if (display_mode == DISP_WIREFRAME)
+ display_mode = DISP_SURFACE;
+# endif
+
+ if (display_mode == DISP_SURFACE)
+ {
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LESS);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ }
+ else if (display_mode == DISP_TRANSPARENT)
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_FALSE);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ }
+ else /* display_mode == DISP_WIREFRAME */
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_FLAT);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_BLEND);
+ }
+}
+
+
+/* Redisplay the hypertorus. */
+static void display_hypertorus(ModeInfo *mi)
+{
+ hypertorusstruct *hp = &hyper[MI_SCREEN(mi)];
+
+ if (!hp->button_pressed)
+ {
+ hp->alpha += speed_wx * hp->speed_scale;
+ if (hp->alpha >= 360.0)
+ hp->alpha -= 360.0;
+ hp->beta += speed_wy * hp->speed_scale;
+ if (hp->beta >= 360.0)
+ hp->beta -= 360.0;
+ hp->delta += speed_wz * hp->speed_scale;
+ if (hp->delta >= 360.0)
+ hp->delta -= 360.0;
+ hp->zeta += speed_xy * hp->speed_scale;
+ if (hp->zeta >= 360.0)
+ hp->zeta -= 360.0;
+ hp->eta += speed_xz * hp->speed_scale;
+ if (hp->eta >= 360.0)
+ hp->eta -= 360.0;
+ hp->theta += speed_yz * hp->speed_scale;
+ if (hp->theta >= 360.0)
+ hp->theta -= 360.0;
+ }
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (projection_3d == DISP_3D_ORTHOGRAPHIC)
+ {
+ if (hp->aspect >= 1.0)
+ glOrtho(-hp->aspect,hp->aspect,-1.0,1.0,0.1,100.0);
+ else
+ glOrtho(-1.0,1.0,-1.0/hp->aspect,1.0/hp->aspect,0.1,100.0);
+ }
+ else
+ {
+ gluPerspective(60.0,hp->aspect,0.1,100.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ mi->polygon_count = hypertorus(mi,0.0,2.0*M_PI,0.0,2.0*M_PI,64,64);
+}
+
+
+ENTRYPOINT void reshape_hypertorus(ModeInfo *mi, int width, int height)
+{
+ hypertorusstruct *hp = &hyper[MI_SCREEN(mi)];
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ hp->WindW = (GLint)width;
+ hp->WindH = (GLint)height;
+ glViewport(0,y,width,height);
+ hp->aspect = h;
+}
+
+
+ENTRYPOINT Bool hypertorus_handle_event(ModeInfo *mi, XEvent *event)
+{
+ hypertorusstruct *hp = &hyper[MI_SCREEN(mi)];
+ KeySym sym = 0;
+ char c = 0;
+
+ if (event->xany.type == KeyPress || event->xany.type == KeyRelease)
+ XLookupString (&event->xkey, &c, 1, &sym, 0);
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ hp->button_pressed = True;
+ gltrackball_start(hp->trackballs[hp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ hp->button_pressed = False;
+ return True;
+ }
+ else if (event->xany.type == KeyPress)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ hp->current_trackball = 1;
+ if (hp->button_pressed)
+ gltrackball_start(hp->trackballs[hp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == KeyRelease)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ hp->current_trackball = 0;
+ if (hp->button_pressed)
+ gltrackball_start(hp->trackballs[hp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == MotionNotify && hp->button_pressed)
+ {
+ gltrackball_track(hp->trackballs[hp->current_trackball],
+ event->xmotion.x, event->xmotion.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+
+ return False;
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize hypertorus. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void init_hypertorus(ModeInfo *mi)
+{
+ hypertorusstruct *hp;
+
+ MI_INIT(mi, hyper);
+ hp = &hyper[MI_SCREEN(mi)];
+
+
+ hp->trackballs[0] = gltrackball_init(True);
+ hp->trackballs[1] = gltrackball_init(True);
+ hp->current_trackball = 0;
+ hp->button_pressed = False;
+
+ /* Set the display mode. */
+ if (!strcasecmp(mode,"wireframe") || !strcasecmp(mode,"0"))
+ {
+ display_mode = DISP_WIREFRAME;
+ }
+ else if (!strcasecmp(mode,"surface") || !strcasecmp(mode,"1"))
+ {
+ display_mode = DISP_SURFACE;
+ }
+ else if (!strcasecmp(mode,"transparent") || !strcasecmp(mode,"2"))
+ {
+ display_mode = DISP_TRANSPARENT;
+ }
+ else
+ {
+ display_mode = DISP_SURFACE;
+ }
+
+ /* Set the appearance. */
+ if (!strcasecmp(appear,"solid") || !strcasecmp(appear,"0"))
+ {
+ appearance = APPEARANCE_SOLID;
+ }
+ else if (!strcasecmp(appear,"bands") || !strcasecmp(appear,"1"))
+ {
+ appearance = APPEARANCE_BANDS;
+ num_spirals = 0;
+ }
+ else if (!strcasecmp(appear,"spirals-1") || !strcasecmp(appear,"3"))
+ {
+ appearance = APPEARANCE_SPIRALS;
+ num_spirals = 1;
+ }
+ else if (!strcasecmp(appear,"spirals-2") || !strcasecmp(appear,"4"))
+ {
+ appearance = APPEARANCE_SPIRALS;
+ num_spirals = 2;
+ }
+ else if (!strcasecmp(appear,"spirals-4") || !strcasecmp(appear,"5"))
+ {
+ appearance = APPEARANCE_SPIRALS;
+ num_spirals = 4;
+ }
+ else if (!strcasecmp(appear,"spirals-8") || !strcasecmp(appear,"6"))
+ {
+ appearance = APPEARANCE_SPIRALS;
+ num_spirals = 8;
+ }
+ else if (!strcasecmp(appear,"spirals-16") || !strcasecmp(appear,"7"))
+ {
+ appearance = APPEARANCE_SPIRALS;
+ num_spirals = 16;
+ }
+ else
+ {
+ appearance = APPEARANCE_BANDS;
+ num_spirals = 0;
+ }
+
+ /* Set the color mode. */
+ if (!strcasecmp(color_mode,"twosided"))
+ {
+ colors = COLORS_TWOSIDED;
+ }
+ else if (!strcasecmp(color_mode,"colorwheel"))
+ {
+ colors = COLORS_COLORWHEEL;
+ }
+ else
+ {
+ colors = COLORS_COLORWHEEL;
+ }
+
+ /* Set the 3d projection mode. */
+ if (!strcasecmp(proj_3d,"perspective") || !strcasecmp(proj_3d,"0"))
+ {
+ projection_3d = DISP_3D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_3d,"orthographic") || !strcasecmp(proj_3d,"1"))
+ {
+ projection_3d = DISP_3D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ projection_3d = DISP_3D_PERSPECTIVE;
+ }
+
+ /* Set the 4d projection mode. */
+ if (!strcasecmp(proj_4d,"perspective") || !strcasecmp(proj_4d,"0"))
+ {
+ projection_4d = DISP_4D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_4d,"orthographic") || !strcasecmp(proj_4d,"1"))
+ {
+ projection_4d = DISP_4D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ projection_4d = DISP_4D_PERSPECTIVE;
+ }
+
+ /* make multiple screens rotate at slightly different rates. */
+ hp->speed_scale = 0.9 + frand(0.3);
+
+ if ((hp->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_hypertorus(mi,MI_WIDTH(mi),MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ init(mi);
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void draw_hypertorus(ModeInfo *mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ hypertorusstruct *hp;
+
+ if (hyper == NULL)
+ return;
+ hp = &hyper[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+ if (!hp->glx_context)
+ return;
+
+ glXMakeCurrent(display,window,*(hp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ display_hypertorus(mi);
+
+ if (MI_IS_FPS(mi))
+ do_fps (mi);
+
+ glFlush();
+
+ glXSwapBuffers(display,window);
+}
+
+
+#ifndef STANDALONE
+ENTRYPOINT void change_hypertorus(ModeInfo *mi)
+{
+ hypertorusstruct *hp = &hyper[MI_SCREEN(mi)];
+
+ if (!hp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi),MI_WINDOW(mi),*(hp->glx_context));
+ init(mi);
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("Hypertorus", hypertorus)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/hypertorus.man b/hacks/glx/hypertorus.man
new file mode 100644
index 0000000..8c7075f
--- /dev/null
+++ b/hacks/glx/hypertorus.man
@@ -0,0 +1,188 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+hypertorus - Draws a hypertorus that rotates in 4d
+.SH SYNOPSIS
+.B hypertorus
+[\-display \fIhost:display.screen\fP]
+[\-install]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fIusecs\fP]
+[\-fps]
+[\-wireframe]
+[\-surface]
+[\-transparent]
+[\-solid]
+[\-bands]
+[\-spirals-{1,2,4,8,16}]
+[\-twosided]
+[\-colorwheel]
+[\-perspective-3d]
+[\-orthographic-3d]
+[\-perspective-4d]
+[\-orthographic-4d]
+[\-speed-wx \fIfloat\fP]
+[\-speed-wy \fIfloat\fP]
+[\-speed-wz \fIfloat\fP]
+[\-speed-xy \fIfloat\fP]
+[\-speed-xz \fIfloat\fP]
+[\-speed-yz \fIfloat\fP]
+.SH DESCRIPTION
+The \fIhypertorus\fP program shows the Clifford torus as it rotates in
+4d. The Clifford torus is a torus lies on the "surface" of the
+hypersphere in 4d. The program projects the 4d torus to 3d using
+either a perspective or an orthographic projection. Of the two
+alternatives, the perspective projection looks much more appealing.
+In orthographic projections the torus degenerates into a doubly
+covered cylinder for some angles. The projected 3d torus can then be
+projected to the screen either perspectively or orthographically.
+There are three display modes for the torus: mesh (wireframe), solid,
+or transparent. Furthermore, the appearance of the torus can be as a
+solid object or as a set of see-through bands or see-through spirals.
+Finally, the colors with with the torus is drawn can be set to either
+two-sided or to a color wheel. In the first case, the torus is drawn
+with red on the outside and green on the inside. This mode enables
+you to see that the torus turns inside-out as it rotates in 4d. The
+second mode draws the torus with a fully saturated color wheel. This
+gives a very nice effect when combined with the see-through bands or
+see-through spirals mode. The rotation speed for each of the six
+planes around which the torus rotates can be chosen. This program is
+very much inspired by Thomas Banchoff's book "Beyond the Third
+Dimension: Geometry, Computer Graphics, and Higher Dimensions",
+Scientific American Library, 1990.
+.SH OPTIONS
+.I hypertorus
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class, or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How much of a delay should be introduced between steps of the
+animation. Default 25000, or 1/40th second.
+.PP
+The following three options are mutually exclusive. They determine
+how the torus is displayed.
+.TP 8
+.B \-wireframe
+Display the torus as a wireframe mesh.
+.TP 8
+.B \-surface
+Display the torus as a solid surface (default).
+.TP 8
+.B \-transparent
+Display the torus as a transparent surface.
+.PP
+The following seven options are mutually exclusive. They determine the
+appearance of the torus.
+.TP 8
+.B \-solid
+Display the torus as a solid object.
+.TP 8
+.B \-bands
+Display the torus as see-through bands (default).
+.TP 8
+.B \-spirals-1, \-spirals-2, \-spirals-4, \-spirals-8, \-spirals-16
+Display the torus as see-through spirals with the indicated number of
+spirals.
+.PP
+The following two options are mutually exclusive. They determine how
+to color the torus.
+.TP 8
+.B \-twosided
+Display the torus with two colors: red on the outside and green on
+the inside.
+.TP 8
+.B \-colorwheel
+Display the torus with a fully saturated color wheel (default). If
+the torus is displayed as see-through bands each band will be
+displayed with a different color. Likewise, if the torus is displayed
+as see-through spirals each spiral will receive a different color.
+.PP
+The following two options are mutually exclusive. They determine how
+the torus is projected from 3d to 2d (i.e., to the screen).
+.TP 8
+.B \-perspective-3d
+Project the torus from 3d to 2d using a perspective projection
+(default).
+.TP 8
+.B \-orthographic-3d
+Project the torus from 3d to 2d using an orthographic projection.
+.PP
+The following two options are mutually exclusive. They determine how
+the torus is projected from 4d to 3d.
+.TP 8
+.B \-perspective-4d
+Project the torus from 4d to 3d using a perspective projection
+(default).
+.TP 8
+.B \-orthographic-4d
+Project the torus from 4d to 3d using an orthographic projection.
+.PP
+The following six options determine the rotation speed of the torus
+around the six possible hyperplanes. The rotation speed is measured
+in degrees per frame. The speeds should be set to relatively small
+values, e.g., less than 4 in magnitude.
+.TP 8
+.B \-speed-wx \fIfloat\fP
+Rotation speed around the wx plane (default: 1.1).
+.TP 8
+.B \-speed-wy \fIfloat\fP
+Rotation speed around the wy plane (default: 1.3).
+.TP 8
+.B \-speed-wz \fIfloat\fP
+Rotation speed around the wz plane (default: 1.5).
+.TP 8
+.B \-speed-xy \fIfloat\fP
+Rotation speed around the xy plane (default: 1.7).
+.TP 8
+.B \-speed-xz \fIfloat\fP
+Rotation speed around the xz plane (default: 1.9).
+.TP 8
+.B \-speed-yz \fIfloat\fP
+Rotation speed around the yz plane (default: 2.1).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH INTERACTION
+If you run this program in standalone mode you can rotate the
+hypertorus by dragging the mouse while pressing the left mouse button.
+This rotates the hypertorus in 3D, i.e., around the wx, wy, and wz
+planes. If you press the shift key while dragging the mouse with the
+left button pressed the hypertorus is rotated in 4D, i.e., around the
+xy, xz, and yz planes. To examine the hypertorus at your leisure, it
+is best to set all speeds to 0. Otherwise, the hypertorus will rotate
+while the left mouse button is not pressed.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003-2005 by Carsten Steger. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Carsten Steger <carsten@mirsanmir.org>, 28-sep-2005.
diff --git a/hacks/glx/hypnowheel.c b/hacks/glx/hypnowheel.c
new file mode 100644
index 0000000..0602e6e
--- /dev/null
+++ b/hacks/glx/hypnowheel.c
@@ -0,0 +1,322 @@
+/* hypnowheel, Copyright (c) 2008 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Draws overlapping spirals, where the tightness of the spirals changes.
+ * Nice settings:
+ *
+ * -layers 7 -wander
+ * -count 3 -layers 50
+ * -twistiness 0.2 -layers 20
+ * -count 3 -layers 2 -speed 20 -twist 10 -wander
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*count: 13 \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_hypnowheel 0
+# define release_hypnowheel 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_WANDER "False"
+#define DEF_SYMMETRIC "False"
+#define DEF_SPEED "1.0"
+#define DEF_TWISTINESS "4.0"
+#define DEF_LAYERS "4"
+
+typedef struct {
+ int color;
+ GLfloat twist;
+ GLfloat alpha;
+ rotator *rot;
+} disc;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ disc *discs;
+ int ncolors;
+ XColor *colors;
+
+} hypnowheel_configuration;
+
+static hypnowheel_configuration *bps = NULL;
+
+static GLfloat speed;
+static GLfloat twistiness;
+static GLint nlayers;
+static Bool do_wander;
+static Bool do_symmetric;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-twistiness", ".twistiness", XrmoptionSepArg, 0 },
+ { "-layers", ".layers", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-symmetric", ".symmetric", XrmoptionNoArg, "True" },
+ { "+symmetric", ".symmetric", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&do_symmetric, "symmetric", "Symmetric", DEF_SYMMETRIC, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&twistiness, "twistiness", "Twistiness", DEF_TWISTINESS, t_Float},
+ {&nlayers, "layers", "Layers", DEF_LAYERS, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt hypnowheel_opts = {
+ countof(opts), opts, countof(vars), vars, NULL};
+
+
+static void
+draw_spiral (ModeInfo *mi, disc *d)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ hypnowheel_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat rr = 0.5;
+ int n = MI_COUNT(mi);
+ int steps = n * (wire ? 3 : (n < 5 ? 60 : n < 10 ? 20 : 10));
+ GLfloat dth = M_PI*2 / n;
+ GLfloat dr = rr / steps;
+ GLfloat th;
+ GLfloat twist = d->twist;
+ GLfloat dtwist = M_PI * 2 * twist / steps;
+ double cscale = 65536.0;
+
+ if (nlayers > 3 && !wire)
+ cscale *= (nlayers-2); /* don't wash out to white */
+
+ glColor4f (bp->colors[d->color].red / cscale,
+ bp->colors[d->color].green / cscale,
+ bp->colors[d->color].blue / cscale,
+ d->alpha);
+ for (th = 0; th < M_PI*2; th += dth)
+ {
+ GLfloat th1 = th;
+ GLfloat r;
+ glBegin (wire ? GL_LINE_STRIP : GL_QUAD_STRIP);
+ for (r = 0; r <= rr; r += dr)
+ {
+ GLfloat th2 = th1 + dth/2 + dtwist;
+ th1 += dtwist;
+ glVertex3f (r * cos(th1), r * sin(th1), 0);
+ if (! wire)
+ glVertex3f (r * cos(th2), r * sin(th2), 0);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+}
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_hypnowheel (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 3) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT void
+init_hypnowheel (ModeInfo *mi)
+{
+ hypnowheel_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_hypnowheel (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (! bp->rot)
+ bp->rot = make_rotator (0, 0, 0, 0, speed * 0.0025, False);
+
+ bp->ncolors = 1024;
+ if (!bp->colors)
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+ if (MI_COUNT(mi) < 2) MI_COUNT(mi) = 2;
+ if (nlayers < 1) nlayers = 1;
+ if (!bp->discs)
+ bp->discs = (disc *) calloc (nlayers, sizeof (disc));
+
+ for (i = 0; i < nlayers; i++)
+ {
+ double spin_speed = speed * 0.2;
+ double wander_speed = speed * 0.0012;
+ double spin_accel = 0.2;
+
+ bp->discs[i].twist = 0;
+ bp->discs[i].alpha = 1;
+ bp->discs[i].color = i * bp->ncolors / nlayers;
+
+ spin_speed += frand (spin_speed / 5);
+ wander_speed += frand (wander_speed * 3);
+
+ if (!bp->discs[i].rot)
+ bp->discs[i].rot = make_rotator (spin_speed, spin_speed, spin_speed,
+ spin_accel,
+ (do_wander ? wander_speed : 0),
+ True);
+ }
+
+ glDisable (GL_LIGHTING);
+ glDisable (GL_DEPTH_TEST);
+ glDepthMask (GL_FALSE);
+ glDisable (GL_CULL_FACE);
+
+ if (! wire)
+ {
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_ONE, GL_ONE);
+ }
+}
+
+
+ENTRYPOINT void
+draw_hypnowheel (ModeInfo *mi)
+{
+ hypnowheel_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, True);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ 0);
+
+ get_rotation (bp->rot, &x, &y, &z, True);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (45, 45, 45);
+
+ for (i = 0; i < nlayers; i++)
+ {
+ disc *d = &bp->discs[i];
+ double x, y, z;
+ rotator *rot = (do_symmetric ? bp->discs[(i & ~0x1)].rot : d->rot);
+ Bool tick = (!do_symmetric || i == 0);
+
+ glPushMatrix();
+
+ d->color++;
+ if (d->color >= bp->ncolors)
+ d->color = 0;
+
+ get_position (rot, &x, &y, &z, tick);
+ x -= 0.5;
+ y -= 0.5;
+ x *= 0.1;
+ y *= 0.1;
+
+ glTranslatef (x, y, 0);
+ d->twist = (z * twistiness *
+ ((i & 1) ? 1 : -1));
+
+ get_rotation (rot, &x, &y, &z, tick);
+
+ glRotatef (360 * z, 0, 0, 1); /* rotation of this disc */
+
+ draw_spiral (mi, &bp->discs[i]);
+ glPopMatrix();
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT Bool
+hypnowheel_handle_event (ModeInfo *mi, XEvent *event)
+{
+ if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ init_hypnowheel (mi);
+ return True;
+ }
+ return False;
+}
+
+
+XSCREENSAVER_MODULE ("Hypnowheel", hypnowheel)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/hypnowheel.man b/hacks/glx/hypnowheel.man
new file mode 100644
index 0000000..233c945
--- /dev/null
+++ b/hacks/glx/hypnowheel.man
@@ -0,0 +1,80 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+hypnowheel - draws overlapping, translucent spiral patterns
+.SH SYNOPSIS
+.B hypnowheel
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fIint\fP]
+[\-layers \fIint\fP]
+[\-count \fIint\fP]
+[\-twistiness \fIfloat\fP]
+[\-speed \fIfloat\fP]
+[\-wander\fP]
+[\-symmetric\fP]
+[\-fps]
+.SH DESCRIPTION
+Draws a series of overlapping, translucent spiral patterns.
+The tightness of their spirals fluctuates in and out.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fIint\fP
+Delay between frames, in microseconds. Default 20000.
+.TP 8
+.B \-layers \fIint\fP
+How many different spirals to draw at once. Default 4.
+.TP 8
+.B \-count \fIint\fP
+How many arms each spiral should have. Default 11.
+.TP 8
+.B \-twistiness \fIfloat\fP
+How tightly wound the spirals can become, measured in rotations.
+Default 4.0 (four times around).
+.TP 8
+.B \-speed \fIratio\fP
+Less than 1 for slower, greater than 1 for faster. Default 1.
+.TP 8
+.B \-wander
+If specified, then the centers of the spirals will wander around,
+rather than them all having the same origin.
+.TP 8
+.B \-symmetric
+If specified, then each pair of left-wrapping and right-wrapping
+spirals will be mirror images of each other.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2008 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/involute.c b/hacks/glx/involute.c
new file mode 100644
index 0000000..5b49bf0
--- /dev/null
+++ b/hacks/glx/involute.c
@@ -0,0 +1,998 @@
+/* involute, Copyright (c) 2004-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Utilities for rendering OpenGL gears with involute teeth.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include "screenhackI.h"
+
+#ifndef HAVE_JWXYZ
+# include <GL/glx.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_ANDROID
+# include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "involute.h"
+#include "normals.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+
+/* For debugging: if true then in wireframe, do not abbreviate. */
+static Bool wire_all_p = False;
+static Bool show_normals_p = False;
+
+
+/* Draws an uncapped tube of the given radius extending from top to bottom,
+ with faces pointing either in or out.
+ */
+static int
+draw_ring (int segments,
+ GLfloat r, GLfloat top, GLfloat bottom, GLfloat slope,
+ Bool in_p, Bool wire_p)
+{
+ int i;
+ int polys = 0;
+ GLfloat width = M_PI * 2 / segments;
+
+ GLfloat s1 = 1 + ((bottom-top) * slope / 2);
+ GLfloat s2 = 1 - ((bottom-top) * slope / 2);
+
+ if (top != bottom)
+ {
+ glFrontFace (in_p ? GL_CCW : GL_CW);
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < segments + (wire_p ? 0 : 1); i++)
+ {
+ GLfloat th = i * width;
+ GLfloat cth = cos(th);
+ GLfloat sth = sin(th);
+ if (in_p)
+ glNormal3f (-cth, -sth, 0);
+ else
+ glNormal3f (cth, sth, 0);
+ glVertex3f (s1 * cth * r, s1 * sth * r, top);
+ glVertex3f (s2 * cth * r, s2 * sth * r, bottom);
+ }
+ polys += segments;
+ glEnd();
+ }
+
+ if (wire_p)
+ {
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < segments; i++)
+ {
+ GLfloat th = i * width;
+ glVertex3f (cos(th) * r, sin(th) * r, top);
+ }
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < segments; i++)
+ {
+ GLfloat th = i * width;
+ glVertex3f (cos(th) * r, sin(th) * r, bottom);
+ }
+ glEnd();
+ }
+
+ return polys;
+}
+
+
+/* Draws a donut-shaped disc between the given radii,
+ with faces pointing either up or down.
+ The first radius may be 0, in which case, a filled disc is drawn.
+ */
+static int
+draw_disc (int segments,
+ GLfloat ra, GLfloat rb, GLfloat z,
+ Bool up_p, Bool wire_p)
+{
+ int i;
+ int polys = 0;
+ GLfloat width = M_PI * 2 / segments;
+
+ if (ra < 0) abort();
+ if (rb <= 0) abort();
+
+ if (ra == 0)
+ glFrontFace (up_p ? GL_CW : GL_CCW);
+ else
+ glFrontFace (up_p ? GL_CCW : GL_CW);
+
+ if (ra == 0)
+ glBegin (wire_p ? GL_LINES : GL_TRIANGLE_FAN);
+ else
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+
+ glNormal3f (0, 0, (up_p ? -1 : 1));
+
+ if (ra == 0 && !wire_p)
+ glVertex3f (0, 0, z);
+
+ for (i = 0; i < segments + (wire_p ? 0 : 1); i++)
+ {
+ GLfloat th = i * width;
+ GLfloat cth = cos(th);
+ GLfloat sth = sin(th);
+ if (wire_p || ra != 0)
+ glVertex3f (cth * ra, sth * ra, z);
+ glVertex3f (cth * rb, sth * rb, z);
+ }
+ polys += segments;
+ glEnd();
+ return polys;
+}
+
+
+/* Draws N thick radial lines between the given radii,
+ with faces pointing either up or down.
+ */
+static int
+draw_spokes (int n, GLfloat thickness, int segments,
+ GLfloat ra, GLfloat rb, GLfloat z1, GLfloat z2, GLfloat slope,
+ Bool wire_p)
+{
+ int i;
+ int polys = 0;
+ GLfloat width;
+ int segments2 = 0;
+ int insegs, outsegs;
+ int tick;
+ int state;
+
+ GLfloat s1 = 1 + ((z2-z1) * slope / 2);
+ GLfloat s2 = 1 - ((z2-z1) * slope / 2);
+
+ if (ra <= 0 || rb <= 0) abort();
+
+ segments *= 3;
+
+ while (segments2 < segments) /* need a multiple of N >= segments */
+ segments2 += n; /* (yes, this is a moronic way to find that) */
+
+ insegs = ((float) (segments2 / n) + 0.5) / thickness;
+ outsegs = (segments2 / n) - insegs;
+ if (insegs <= 0) insegs = 1;
+ if (outsegs <= 0) outsegs = 1;
+
+ segments2 = (insegs + outsegs) * n;
+ width = M_PI * 2 / segments2;
+
+ tick = 0;
+ state = 0;
+ for (i = 0; i < segments2; i++, tick++)
+ {
+ GLfloat th1 = i * width;
+ GLfloat th2 = th1 + width;
+ GLfloat cth1 = cos(th1);
+ GLfloat sth1 = sin(th1);
+ GLfloat cth2 = cos(th2);
+ GLfloat sth2 = sin(th2);
+ GLfloat orb = rb;
+
+ int changed = (i == 0);
+
+ if (state == 0 && tick == insegs)
+ tick = 0, state = 1, changed = 1;
+ else if (state == 1 && tick == outsegs)
+ tick = 0, state = 0, changed = 1;
+
+ if ((state == 1 || /* in */
+ (state == 0 && changed)) &&
+ (!wire_p || wire_all_p))
+ {
+ /* top */
+ glFrontFace (GL_CCW);
+ glBegin (wire_p ? GL_LINES : GL_QUADS);
+ glNormal3f (0, 0, -1);
+ glVertex3f (s1 * cth1 * ra, s1 * sth1 * ra, z1);
+ glVertex3f (s1 * cth1 * rb, s1 * sth1 * rb, z1);
+ glVertex3f (s1 * cth2 * rb, s1 * sth2 * rb, z1);
+ glVertex3f (s1 * cth2 * ra, s1 * sth2 * ra, z1);
+ polys++;
+ glEnd();
+
+ /* bottom */
+ glFrontFace (GL_CW);
+ glBegin (wire_p ? GL_LINES : GL_QUADS);
+ glNormal3f (0, 0, 1);
+ glVertex3f (s2 * cth1 * ra, s2 * sth1 * ra, z2);
+ glVertex3f (s2 * cth1 * rb, s2 * sth1 * rb, z2);
+ glVertex3f (s2 * cth2 * rb, s2 * sth2 * rb, z2);
+ glVertex3f (s2 * cth2 * ra, s2 * sth2 * ra, z2);
+ polys++;
+ glEnd();
+ }
+
+ if (state == 1 && changed) /* entering "in" state */
+ {
+ /* left */
+ glFrontFace (GL_CW);
+ glBegin (wire_p ? GL_LINES : GL_QUADS);
+ do_normal (s1 * cth1 * rb, s1 * sth1 * rb, z1,
+ s1 * cth1 * ra, s1 * sth1 * ra, z1,
+ s2 * cth1 * rb, s2 * sth1 * rb, z2);
+ glVertex3f (s1 * cth1 * ra, s1 * sth1 * ra, z1);
+ glVertex3f (s1 * cth1 * rb, s1 * sth1 * rb, z1);
+ glVertex3f (s2 * cth1 * rb, s2 * sth1 * rb, z2);
+ glVertex3f (s2 * cth1 * ra, s2 * sth1 * ra, z2);
+ polys++;
+ glEnd();
+ }
+
+ if (state == 0 && changed) /* entering "out" state */
+ {
+ /* right */
+ glFrontFace (GL_CCW);
+ glBegin (wire_p ? GL_LINES : GL_QUADS);
+ do_normal (s1 * cth2 * ra, s1 * sth2 * ra, z1,
+ s1 * cth2 * rb, s1 * sth2 * rb, z1,
+ s2 * cth2 * rb, s2 * sth2 * rb, z2);
+ glVertex3f (s1 * cth2 * ra, s1 * sth2 * ra, z1);
+ glVertex3f (s1 * cth2 * rb, s1 * sth2 * rb, z1);
+ glVertex3f (s2 * cth2 * rb, s2 * sth2 * rb, z2);
+ glVertex3f (s2 * cth2 * ra, s2 * sth2 * ra, z2);
+ polys++;
+ glEnd();
+ }
+
+ rb = orb;
+ }
+ return polys;
+}
+
+
+/* Draws some bumps (embedded cylinders) on the gear.
+ */
+static int
+draw_gear_nubs (gear *g, Bool wire_p)
+{
+ int polys = 0;
+ int i;
+ int steps = (g->size < INVOLUTE_LARGE ? 5 : 20);
+ double r, size, height;
+ GLfloat *cc;
+ int which;
+ GLfloat width, off;
+
+ if (! g->nubs) return 0;
+
+ which = involute_biggest_ring (g, &r, &size, &height);
+ size /= 5;
+ height *= 0.7;
+
+ cc = (which == 1 ? g->color : g->color2);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, cc);
+
+ if (g->inverted_p)
+ r = g->r + size + g->tooth_h;
+
+ width = M_PI * 2 / g->nubs;
+ off = M_PI / (g->nteeth * 2); /* align first nub with a tooth */
+
+ for (i = 0; i < g->nubs; i++)
+ {
+ GLfloat th = (i * width) + off;
+ glPushMatrix();
+
+ glRotatef (th * 180 / M_PI, 0, 0, 1);
+ glTranslatef (r, 0, 0);
+
+ if (g->inverted_p) /* nubs go on the outside rim */
+ {
+ size = g->thickness / 3;
+ height = (g->r - g->inner_r)/2;
+ glTranslatef (height, 0, 0);
+ glRotatef (90, 0, 1, 0);
+ }
+
+ if (wire_p && !wire_all_p)
+ polys += draw_ring ((g->size >= INVOLUTE_LARGE ? steps/2 : steps),
+ size, 0, 0, 0, False, wire_p);
+ else
+ {
+ polys += draw_disc (steps, 0, size, -height, True, wire_p);
+ polys += draw_disc (steps, 0, size, height, False, wire_p);
+ polys += draw_ring (steps, size, -height, height, 0, False, wire_p);
+ }
+ glPopMatrix();
+ }
+ return polys;
+}
+
+
+
+/* Draws a much simpler representation of a gear.
+ Returns the number of polygons.
+ */
+int
+draw_involute_schematic (gear *g, Bool wire_p)
+{
+ int polys = 0;
+ int i;
+ GLfloat width = M_PI * 2 / g->nteeth;
+
+ if (!wire_p) glDisable(GL_LIGHTING);
+ glColor3f (g->color[0] * 0.6, g->color[1] * 0.6, g->color[2] * 0.6);
+
+ glBegin (GL_LINES);
+ for (i = 0; i < g->nteeth; i++)
+ {
+ GLfloat th = (i * width) + (width/4);
+ glVertex3f (0, 0, -g->thickness/2);
+ glVertex3f (cos(th) * g->r, sin(th) * g->r, -g->thickness/2);
+ }
+ polys += g->nteeth;
+ glEnd();
+
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < g->nteeth; i++)
+ {
+ GLfloat th = (i * width) + (width/4);
+ glVertex3f (cos(th) * g->r, sin(th) * g->r, -g->thickness/2);
+ }
+ polys += g->nteeth;
+ glEnd();
+
+ if (!wire_p) glEnable(GL_LIGHTING);
+ return polys;
+}
+
+
+/* Renders all the interior (non-toothy) parts of a gear:
+ the discs, axles, etc.
+ */
+static int
+draw_gear_interior (gear *g, Bool wire_p)
+{
+ int polys = 0;
+
+ int steps = g->nteeth * 2;
+ if (steps < 10) steps = 10;
+ if ((wire_p && !wire_all_p) || g->size < INVOLUTE_LARGE) steps /= 2;
+ if (g->size < INVOLUTE_LARGE && steps > 16) steps = 16;
+
+ /* ring 1 (facing in) is done in draw_gear_teeth */
+
+ /* ring 2 (facing in) and disc 2
+ */
+ if (g->inner_r2)
+ {
+ GLfloat ra = g->inner_r * 1.04; /* slightly larger than inner_r */
+ GLfloat rb = g->inner_r2; /* since the points don't line up */
+ GLfloat za = -g->thickness2/2;
+ GLfloat zb = g->thickness2/2;
+ GLfloat s1 = 1 + (g->thickness2 * g->tooth_slope / 2);
+ GLfloat s2 = 1 - (g->thickness2 * g->tooth_slope / 2);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, g->color2);
+
+ if ((g->coax_p != 1 && !g->inner_r3) ||
+ (wire_p && wire_all_p))
+ polys += /* ring facing in */
+ draw_ring (steps, rb, za, zb, g->tooth_slope, True, wire_p);
+
+ if (wire_p && wire_all_p)
+ polys += /* ring facing in */
+ draw_ring (steps, ra, za, zb, g->tooth_slope, True, wire_p);
+
+ if (g->spokes)
+ polys += draw_spokes (g->spokes, g->spoke_thickness,
+ steps, ra, rb, za, zb, g->tooth_slope, wire_p);
+ else if (!wire_p || wire_all_p)
+ {
+ polys += /* top plate */
+ draw_disc (steps, s1*ra, s1*rb, za, True, wire_p);
+ polys += /* bottom plate */
+ draw_disc (steps, s2*ra, s2*rb, zb, False, wire_p);
+ }
+ }
+
+ /* ring 3 (facing in and out) and disc 3
+ */
+ if (g->inner_r3)
+ {
+ GLfloat ra = g->inner_r2;
+ GLfloat rb = g->inner_r3;
+ GLfloat za = -g->thickness3/2;
+ GLfloat zb = g->thickness3/2;
+ GLfloat s1 = 1 + (g->thickness3 * g->tooth_slope / 2);
+ GLfloat s2 = 1 - (g->thickness3 * g->tooth_slope / 2);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, g->color);
+
+ polys += /* ring facing out */
+ draw_ring (steps, ra, za, zb, g->tooth_slope, False, wire_p);
+
+ if (g->coax_p != 1 || (wire_p && wire_all_p))
+ polys += /* ring facing in */
+ draw_ring (steps, rb, za, zb, g->tooth_slope, True, wire_p);
+
+ if (!wire_p || wire_all_p)
+ {
+ polys += /* top plate */
+ draw_disc (steps, s1*ra, s1*rb, za, True, wire_p);
+ polys += /* bottom plate */
+ draw_disc (steps, s2*ra, s2*rb, zb, False, wire_p);
+ }
+ }
+
+ /* axle tube
+ */
+ if (g->coax_p == 1)
+ {
+ GLfloat cap_height = g->coax_thickness/3;
+
+ GLfloat ra = (g->inner_r3 ? g->inner_r3 :
+ g->inner_r2 ? g->inner_r2 :
+ g->inner_r);
+ GLfloat za = -(g->thickness/2 + cap_height);
+ GLfloat zb = g->coax_thickness/2 + g->coax_displacement + cap_height;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, g->color);
+
+ if (wire_p && !wire_all_p) steps /= 2;
+
+ polys +=
+ draw_ring (steps, ra, za, zb, g->tooth_slope, False, wire_p);
+
+ if (!wire_p || wire_all_p)
+ {
+ polys +=
+ draw_disc (steps, 0, ra, za, True, wire_p); /* top plate */
+ polys +=
+ draw_disc (steps, 0, ra, zb, False, wire_p); /* bottom plate */
+ }
+ }
+ return polys;
+}
+
+
+/* gear_teeth_geometry computes the vertices and normals of the teeth
+ of a gear. This is the heavy lifting: there are a ton of polygons
+ around the perimiter of a gear, and the normals are difficult (not
+ radial or right angles.)
+
+ It would be nice if we could cache this, but the numbers are
+ different for essentially every gear:
+
+ - Every gear has a different inner_r, so the vertices of the
+ inner ring (and thus, the triangle fans on the top and bottom
+ faces) are different in a non-scalable way.
+
+ - If the ratio between tooth_w and tooth_h changes, the normals
+ on the outside edges of the teeth are invalid (this can happen
+ every time we start a new train.)
+
+ So instead, we rely on OpenGL display lists to do the cacheing for
+ us -- we only compute all these normals once per gear, instead of
+ once per gear per frame.
+ */
+
+typedef struct {
+ int npoints;
+ XYZ *points;
+ XYZ *fnormals; /* face normals */
+ XYZ *pnormals; /* point normals */
+} tooth_face;
+
+
+static void
+tooth_normals (tooth_face *f, GLfloat tooth_slope)
+{
+ int i;
+
+ /* Compute the face normals for each facet. */
+ for (i = 0; i < f->npoints; i++)
+ {
+ XYZ p1, p2, p3;
+ int a = i;
+ int b = (i == f->npoints-1 ? 0 : i+1);
+ p1 = f->points[a];
+ p2 = f->points[b];
+ p3 = p1;
+ p3.x -= (p3.x * tooth_slope);
+ p3.y -= (p3.y * tooth_slope);
+ p3.z++;
+ f->fnormals[i] = calc_normal (p1, p2, p3);
+ }
+
+ /* From the face normals, compute the vertex normals
+ (by averaging the normals of adjascent faces.)
+ */
+ for (i = 0; i < f->npoints; i++)
+ {
+ int a = (i == 0 ? f->npoints-1 : i-1);
+ int b = i;
+ XYZ n1 = f->fnormals[a]; /* normal of [i-1 - i] face */
+ XYZ n2 = f->fnormals[b]; /* normal of [i - i+1] face */
+ f->pnormals[i].x = (n1.x + n2.x) / 2;
+ f->pnormals[i].y = (n1.y + n2.y) / 2;
+ f->pnormals[i].z = (n1.z + n2.z) / 2;
+ }
+}
+
+
+static void
+gear_teeth_geometry (gear *g,
+ tooth_face *orim, /* outer rim (the teeth) */
+ tooth_face *irim) /* inner rim (the hole) */
+{
+ int i;
+ int ppt = 20; /* max points per tooth */
+ GLfloat width = M_PI * 2 / g->nteeth;
+ GLfloat rh = g->tooth_h;
+ GLfloat tw = width;
+
+ /* Approximate shape of an "involute" gear tooth.
+
+ (TH)
+ th0 th2 th4 th6 th8 t10 t12 t14 th16 th18 th20
+ : : : : : : : : : : :
+ : : : : : : : : : : :
+ r0 ........:..:..:...___________...:..:..:......:......:..
+ : : : /: : :\ : : : : :
+ : : : / : : : \ : : : : :
+ : : :/ : : : \: : : : :
+ r2 ........:.....@...:....:....:...@..:..:......:......:..
+ : : @: : : : :@ : : : :
+ (R) ...........:...@.:...:....:....:...:.@..........:......:......
+ : :@ : : : : : @: : : :
+ r4 ........:..@..:...:....:....:...:..@:........:......:..
+ : /: : : : : : :\ : : :
+ :/ : : : : : : : \: : : /
+ r6 ......__/..:..:...:....:....:...:..:..\______________/
+ : : : : : : : : : : :
+ | : : : : : : : | : :
+ : : : : : : : : : : :
+ | : : : : : : : | : :
+ r8 ......__:_____________________________:________________
+ */
+
+ GLfloat r[30];
+ GLfloat th[30];
+ GLfloat R = g->r;
+
+ r[0] = R + (rh * 0.50);
+ r[1] = R + (rh * 0.40);
+ r[2] = R + (rh * 0.25);
+ r[3] = R + (rh * 0.05);
+ r[4] = R - (r[2]-R);
+ r[5] = R - (r[1]-R);
+ r[6] = R - (r[0]-R);
+ r[7] = r[6]; /* unused */
+ r[8] = g->inner_r;
+
+ th[0] = -tw * (g->size == INVOLUTE_SMALL ? 0.5 :
+ g->size == INVOLUTE_MEDIUM ? 0.41 : 0.45);
+ th[1] = -tw * 0.375;
+ th[2] = -tw * 0.300;
+ th[3] = -tw * 0.230;
+ th[4] = -tw * (g->nteeth >= 5 ? 0.16 : 0.12);
+ th[5] = -tw * 0.100;
+ th[6] = -tw * (g->size == INVOLUTE_MEDIUM ? 0.1 : 0.04);
+ th[7] = -tw * 0.020;
+ th[8] = 0;
+ th[9] = -th[7];
+ th[10] = -th[6];
+ th[11] = -th[5];
+ th[12] = -th[4];
+ th[13] = -th[3];
+ th[14] = -th[2];
+ th[15] = -th[1];
+ th[16] = -th[0];
+ th[17] = width * 0.47;
+ th[18] = width * 0.50;
+ th[19] = width * 0.53;
+ th[20] = th[0] + width; /* unused */
+
+ if (g->inverted_p) /* put the teeth on the inside */
+ {
+ for (i = 0; i < countof(th); i++)
+ th[i] = -th[i];
+ for (i = 0; i < countof(r); i++)
+ r[i] = R - (r[i] - R);
+ }
+
+ orim->npoints = 0;
+ orim->points = (XYZ *) calloc(ppt * g->nteeth+1, sizeof(*orim->points));
+ orim->fnormals = (XYZ *) calloc(ppt * g->nteeth+1, sizeof(*orim->fnormals));
+ orim->pnormals = (XYZ *) calloc(ppt * g->nteeth+1, sizeof(*orim->pnormals));
+
+ irim->npoints = 0;
+ irim->points = (XYZ *) calloc(ppt * g->nteeth+1, sizeof(*irim->points));
+ irim->fnormals = (XYZ *) calloc(ppt * g->nteeth+1, sizeof(*irim->fnormals));
+ irim->pnormals = (XYZ *) calloc(ppt * g->nteeth+1, sizeof(*irim->pnormals));
+
+ if (!orim->points || !orim->pnormals || !orim->fnormals ||
+ !irim->points || !irim->pnormals || !irim->fnormals)
+ {
+ fprintf (stderr, "%s: out of memory\n", progname);
+ exit (1);
+ }
+
+ /* First, compute the coordinates of every point used for every tooth.
+ */
+ for (i = 0; i < g->nteeth; i++)
+ {
+ GLfloat TH = (i * width) + (width/4);
+ int oon = orim->npoints;
+ int oin = irim->npoints;
+
+# undef PUSH
+# define PUSH(OPR,IPR,PTH) \
+ orim->points[orim->npoints].x = cos(TH+th[(PTH)]) * r[(OPR)]; \
+ orim->points[orim->npoints].y = sin(TH+th[(PTH)]) * r[(OPR)]; \
+ orim->npoints++; \
+ irim->points[irim->npoints].x = cos(TH+th[(PTH)]) * r[(IPR)]; \
+ irim->points[irim->npoints].y = sin(TH+th[(PTH)]) * r[(IPR)]; \
+ irim->npoints++
+
+ switch (g->size) {
+ case INVOLUTE_SMALL:
+ PUSH(6, 8, 0); /* tooth left 1 */
+ PUSH(0, 8, 8); /* tooth top middle */
+ break;
+ case INVOLUTE_MEDIUM:
+ PUSH(6, 8, 0); /* tooth left 1 */
+ PUSH(0, 8, 6); /* tooth top left */
+ PUSH(0, 8, 10); /* tooth top right */
+ PUSH(6, 8, 16); /* tooth right 6 */
+ break;
+ case INVOLUTE_LARGE:
+ PUSH(6, 8, 0); /* tooth left 1 */
+ PUSH(4, 8, 2); /* tooth left 3 */
+ PUSH(2, 8, 4); /* tooth left 5 */
+ PUSH(0, 8, 6); /* tooth top left */
+ PUSH(0, 8, 10); /* tooth top right */
+ PUSH(2, 8, 12); /* tooth right 1 */
+ PUSH(4, 8, 14); /* tooth right 3 */
+ PUSH(6, 8, 16); /* tooth right 5 */
+ PUSH(6, 8, 18); /* gap top */
+ break;
+ case INVOLUTE_HUGE:
+ PUSH(6, 8, 0); /* tooth left 1 */
+ PUSH(5, 8, 1); /* tooth left 2 */
+ PUSH(4, 8, 2); /* tooth left 3 */
+ PUSH(3, 8, 3); /* tooth left 4 */
+ PUSH(2, 8, 4); /* tooth left 5 */
+ PUSH(1, 8, 5); /* tooth left 6 */
+ PUSH(0, 8, 6); /* tooth top left */
+ PUSH(0, 8, 8); /* tooth top left */
+ PUSH(0, 8, 10); /* tooth top right */
+ PUSH(1, 8, 11); /* tooth top right */
+ PUSH(2, 8, 12); /* tooth right 1 */
+ PUSH(3, 8, 13); /* tooth right 2 */
+ PUSH(4, 8, 14); /* tooth right 3 */
+ PUSH(5, 8, 15); /* tooth right 4 */
+ PUSH(6, 8, 16); /* tooth right 5 */
+ PUSH(6, 8, 17); /* tooth right 6 */
+ PUSH(6, 8, 18); /* gap top */
+ PUSH(6, 8, 19); /* gap top */
+ break;
+ default:
+ abort();
+ }
+# undef PUSH
+
+ if (i == 0 && orim->npoints > ppt) abort(); /* go update "ppt"! */
+
+ if (g->inverted_p)
+ {
+ int start, end, j;
+ start = oon;
+ end = orim->npoints;
+ for (j = 0; j < (end-start)/2; j++)
+ {
+ XYZ swap = orim->points[end-j-1];
+ orim->points[end-j-1] = orim->points[start+j];
+ orim->points[start+j] = swap;
+ }
+
+ start = oin;
+ end = irim->npoints;
+ for (j = 0; j < (end-start)/2; j++)
+ {
+ XYZ swap = irim->points[end-j-1];
+ irim->points[end-j-1] = irim->points[start+j];
+ irim->points[start+j] = swap;
+ }
+ }
+ }
+
+ tooth_normals (orim, g->tooth_slope);
+ tooth_normals (irim, 0);
+
+ if (g->inverted_p) /* flip the normals */
+ {
+ for (i = 0; i < orim->npoints; i++)
+ {
+ orim->fnormals[i].x = -orim->fnormals[i].x;
+ orim->fnormals[i].y = -orim->fnormals[i].y;
+ orim->fnormals[i].z = -orim->fnormals[i].z;
+
+ orim->pnormals[i].x = -orim->pnormals[i].x;
+ orim->pnormals[i].y = -orim->pnormals[i].y;
+ orim->pnormals[i].z = -orim->pnormals[i].z;
+ }
+
+ for (i = 0; i < irim->npoints; i++)
+ {
+ irim->fnormals[i].x = -irim->fnormals[i].x;
+ irim->fnormals[i].y = -irim->fnormals[i].y;
+ irim->fnormals[i].z = -irim->fnormals[i].z;
+
+ irim->pnormals[i].x = -irim->pnormals[i].x;
+ irim->pnormals[i].y = -irim->pnormals[i].y;
+ irim->pnormals[i].z = -irim->pnormals[i].z;
+ }
+ }
+}
+
+
+/* Which of the gear's inside rings is the biggest?
+ */
+int
+involute_biggest_ring (gear *g, double *posP, double *sizeP, double *heightP)
+{
+ double r0 = (g->r - g->tooth_h/2);
+ double r1 = g->inner_r;
+ double r2 = g->inner_r2;
+ double r3 = g->inner_r3;
+ double w1 = (r1 ? r0 - r1 : r0);
+ double w2 = (r2 ? r1 - r2 : 0);
+ double w3 = (r3 ? r2 - r3 : 0);
+ double h1 = g->thickness;
+ double h2 = g->thickness2;
+ double h3 = g->thickness3;
+
+ if (g->spokes) w2 = 0;
+
+ if (w1 > w2 && w1 > w3)
+ {
+ if (posP) *posP = (r0+r1)/2;
+ if (sizeP) *sizeP = w1;
+ if (heightP) *heightP = h1;
+ return 0;
+ }
+ else if (w2 > w1 && w2 > w3)
+ {
+ if (posP) *posP = (r1+r2)/2;
+ if (sizeP) *sizeP = w2;
+ if (heightP) *heightP = h2;
+ return 1;
+ }
+ else
+ {
+ if (posP) *posP = (r2+r3)/2;
+ if (sizeP) *sizeP = w3;
+ if (heightP) *heightP = h3;
+ return 1;
+ }
+}
+
+
+/* Renders all teeth of a gear.
+ */
+static int
+draw_gear_teeth (gear *g, Bool wire_p)
+{
+ int polys = 0;
+ int i;
+
+ GLfloat z1 = -g->thickness/2;
+ GLfloat z2 = g->thickness/2;
+ GLfloat s1 = 1 + (g->thickness * g->tooth_slope / 2);
+ GLfloat s2 = 1 - (g->thickness * g->tooth_slope / 2);
+
+ tooth_face orim, irim;
+ gear_teeth_geometry (g, &orim, &irim);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, g->color);
+
+ /* Draw the outer rim (the teeth)
+ (In wire mode, this draws just the upright lines.)
+ */
+ glFrontFace (g->inverted_p ? GL_CCW : GL_CW);
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < orim.npoints; i++)
+ {
+ glNormal3f (orim.pnormals[i].x, orim.pnormals[i].y, orim.pnormals[i].z);
+ glVertex3f (s1*orim.points[i].x, s1*orim.points[i].y, z1);
+ glVertex3f (s2*orim.points[i].x, s2*orim.points[i].y, z2);
+
+ /* Show the face normal vectors */
+ if (0&&wire_p && show_normals_p)
+ {
+ XYZ n = orim.fnormals[i];
+ int a = i;
+ int b = (i == orim.npoints-1 ? 0 : i+1);
+ GLfloat x = (orim.points[a].x + orim.points[b].x) / 2;
+ GLfloat y = (orim.points[a].y + orim.points[b].y) / 2;
+ GLfloat z = (z1 + z2) / 2;
+ glVertex3f (x, y, z);
+ glVertex3f (x + n.x, y + n.y, z + n.z);
+ }
+
+ /* Show the vertex normal vectors */
+ if (wire_p && show_normals_p)
+ {
+ XYZ n = orim.pnormals[i];
+ GLfloat x = orim.points[i].x;
+ GLfloat y = orim.points[i].y;
+ GLfloat z = (z1 + z2) / 2;
+ glVertex3f (x, y, z);
+ glVertex3f (x + n.x, y + n.y, z + n.z);
+ }
+ }
+
+ if (!wire_p) /* close the quad loop */
+ {
+ glNormal3f (orim.pnormals[0].x, orim.pnormals[0].y, orim.pnormals[0].z);
+ glVertex3f (s1*orim.points[0].x, s1*orim.points[0].y, z1);
+ glVertex3f (s2*orim.points[0].x, s2*orim.points[0].y, z2);
+ }
+ polys += orim.npoints;
+ glEnd();
+
+ /* Draw the outer rim circles, in wire mode */
+ if (wire_p)
+ {
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < orim.npoints; i++)
+ glVertex3f (s1*orim.points[i].x, s1*orim.points[i].y, z1);
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < orim.npoints; i++)
+ glVertex3f (s2*orim.points[i].x, s2*orim.points[i].y, z2);
+ glEnd();
+ }
+
+ /* Draw the inner rim (the hole)
+ (In wire mode, this draws just the upright lines.)
+ */
+ glFrontFace (g->inverted_p ? GL_CW : GL_CCW);
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < irim.npoints; i++)
+ {
+ glNormal3f(-irim.pnormals[i].x, -irim.pnormals[i].y,-irim.pnormals[i].z);
+ glVertex3f (s1*irim.points[i].x, s1*irim.points[i].y, z1);
+ glVertex3f (s2*irim.points[i].x, s2*irim.points[i].y, z2);
+
+ /* Show the face normal vectors */
+ if (wire_p && show_normals_p)
+ {
+ XYZ n = irim.fnormals[i];
+ int a = i;
+ int b = (i == irim.npoints-1 ? 0 : i+1);
+ GLfloat x = (irim.points[a].x + irim.points[b].x) / 2;
+ GLfloat y = (irim.points[a].y + irim.points[b].y) / 2;
+ GLfloat z = (z1 + z2) / 2;
+ glVertex3f (x, y, z);
+ glVertex3f (x - n.x, y - n.y, z);
+ }
+
+ /* Show the vertex normal vectors */
+ if (wire_p && show_normals_p)
+ {
+ XYZ n = irim.pnormals[i];
+ GLfloat x = irim.points[i].x;
+ GLfloat y = irim.points[i].y;
+ GLfloat z = (z1 + z2) / 2;
+ glVertex3f (x, y, z);
+ glVertex3f (x - n.x, y - n.y, z);
+ }
+ }
+
+ if (!wire_p) /* close the quad loop */
+ {
+ glNormal3f (-irim.pnormals[0].x,-irim.pnormals[0].y,-irim.pnormals[0].z);
+ glVertex3f (s1*irim.points[0].x, s1*irim.points[0].y, z1);
+ glVertex3f (s2*irim.points[0].x, s2*irim.points[0].y, z2);
+ }
+ polys += irim.npoints;
+ glEnd();
+
+ /* Draw the inner rim circles, in wire mode
+ */
+ if (wire_p)
+ {
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < irim.npoints; i++)
+ glVertex3f (irim.points[i].x, irim.points[i].y, z1);
+ glEnd();
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < irim.npoints; i++)
+ glVertex3f (irim.points[i].x, irim.points[i].y, z2);
+ glEnd();
+ }
+
+ /* Draw the side (the flat bit)
+ */
+ if (!wire_p || wire_all_p)
+ {
+ GLfloat z;
+ if (irim.npoints != orim.npoints) abort();
+ for (z = z1; z <= z2; z += z2-z1)
+ {
+ GLfloat s = (z == z1 ? s1 : s2);
+ glFrontFace (((z == z1) ^ g->inverted_p) ? GL_CCW : GL_CW);
+ glNormal3f (0, 0, z);
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < orim.npoints; i++)
+ {
+ glVertex3f (s*orim.points[i].x, s*orim.points[i].y, z);
+ glVertex3f (s*irim.points[i].x, s*irim.points[i].y, z);
+ }
+ if (!wire_p) /* close the quad loop */
+ {
+ glVertex3f (s*orim.points[0].x, s*orim.points[0].y, z);
+ glVertex3f (s*irim.points[0].x, s*irim.points[0].y, z);
+ }
+ polys += orim.npoints;
+ glEnd();
+ }
+ }
+
+ free (irim.points);
+ free (irim.fnormals);
+ free (irim.pnormals);
+
+ free (orim.points);
+ free (orim.fnormals);
+ free (orim.pnormals);
+
+ return polys;
+}
+
+
+/* Render one gear, unrotated at 0,0.
+ Returns the number of polygons.
+ */
+int
+draw_involute_gear (gear *g, Bool wire_p)
+{
+ int polys = 0;
+
+ static const GLfloat spec[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat shiny = 128.0;
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, spec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, g->color);
+ glColor3f (g->color[0], g->color[1], g->color[2]);
+
+ if (wire_p > 1)
+ polys += draw_involute_schematic (g, wire_p);
+ else
+ {
+ glPushMatrix();
+ glRotatef (g->wobble, 1, 0, 0);
+ polys += draw_gear_teeth (g, wire_p);
+ polys += draw_gear_interior (g, wire_p);
+ polys += draw_gear_nubs (g, wire_p);
+ glPopMatrix();
+ }
+ return polys;
+}
diff --git a/hacks/glx/involute.h b/hacks/glx/involute.h
new file mode 100644
index 0000000..c6a3066
--- /dev/null
+++ b/hacks/glx/involute.h
@@ -0,0 +1,78 @@
+/* involute, Copyright (c) 2004-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Utilities for rendering OpenGL gears with involute teeth.
+ */
+
+#ifndef __GEAR_INVOLUTE_H__
+#define __GEAR_INVOLUTE_H__
+
+typedef struct {
+ unsigned long id; /* unique name */
+ double x, y, z; /* position */
+ double r; /* radius of the gear, at middle of teeth */
+ double th; /* rotation (degrees) */
+
+ GLint nteeth; /* how many teeth */
+ double tooth_w, tooth_h; /* size of teeth */
+
+ double tooth_slope; /* 0 for normal right-angle gear; 1 = 45 deg. */
+ double inner_r; /* radius of the (larger) inside hole */
+ double inner_r2; /* radius of the (smaller) inside hole, if any */
+ double inner_r3; /* yet another */
+
+ double thickness; /* height of the edge */
+ double thickness2; /* height of the (smaller) inside disc if any */
+ double thickness3; /* yet another */
+ int spokes; /* how many spokes inside, if any */
+ int nubs; /* how many little nubbly bits, if any */
+ double spoke_thickness; /* spoke versus hole */
+ double wobble; /* factory defect! */
+ int motion_blur_p; /* whether it's spinning too fast to draw */
+ int polygons; /* how many polys in this gear */
+
+ double ratio; /* gearing ratio with previous gears */
+ double rpm; /* approximate revolutions per minute */
+
+ Bool inverted_p; /* whether this gear has teeth on the inside */
+ Bool base_p; /* whether this gear begins a new train */
+ int coax_p; /* whether this is one of a pair of bound gears.
+ 1 for first, 2 for second. */
+ double coax_displacement; /* distance between gear planes */
+
+ double coax_thickness; /* thickness of the other gear in the pair */
+
+ enum { INVOLUTE_SMALL,
+ INVOLUTE_MEDIUM,
+ INVOLUTE_LARGE,
+ INVOLUTE_HUGE } size; /* Controls complexity of mesh. */
+ GLfloat color[4];
+ GLfloat color2[4];
+
+ GLuint dlist;
+} gear;
+
+/* Render one gear, unrotated at 0,0.
+ Returns the number of polygons.
+ */
+extern int draw_involute_gear (gear *g, Bool wire_p);
+
+/* Draws a much simpler representation of a gear.
+ Returns the number of polygons.
+ */
+extern int draw_involute_schematic (gear *g, Bool wire_p);
+
+/* Which of the gear's inside rings is the biggest?
+ */
+extern int involute_biggest_ring (gear *g,
+ double *posP, double *sizeP,
+ double *heightP);
+
+#endif /* __GEAR_INVOLUTE_H__ */
diff --git a/hacks/glx/jigglypuff.c b/hacks/glx/jigglypuff.c
new file mode 100644
index 0000000..fea13fd
--- /dev/null
+++ b/hacks/glx/jigglypuff.c
@@ -0,0 +1,1076 @@
+/* jigglypuff - a most, most, unfortunate screensaver.
+ *
+ * Copyright (c) 2003 Keith Macleod (kmacleod@primus.ca)
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Draws all varieties of obscene, spastic, puffy balls
+ * orbiting lazily about the screen. More of an accident
+ * than anything else.
+ *
+ * Apologies to anyone who thought they were getting a Pokemon
+ * out of this.
+ *
+ * Of course, if you modify it to do something interesting and/or
+ * funny, I'd appreciate receiving a copy.
+ *
+ * 04/06/2003 - Oops, figured out what was wrong with the sphere
+ * mapping. I had assumed it was done in model space,
+ * but of course I was totally wrong... Eye space you
+ * say? Yup. km
+ *
+ * 03/31/2003 - Added chrome to the color options. The mapping
+ * is anything but 'correct', but it's a pretty good
+ * effect anyways, as long as the surface is jiggling
+ * enough that you can't tell. Sure, it seems kind of odd
+ * that it's reflecting a sky that's obviously not there,
+ * but who has time to worry about silly details like
+ * that? Not me, ah rekkin'. km
+ *
+ */
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 20000\n" \
+ "*showFPS: False\n" \
+ "*wireframe: False\n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_jigglypuff 0
+# define release_jigglypuff 0
+# include "xlockmore.h"
+#else
+# include "xlock.h"
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "ximage-loader.h"
+#include "gltrackball.h"
+#include "images/gen/jigglymap_png.h"
+
+#ifdef USE_GL
+
+
+#define DEF_COLOR "cycle"
+#define DEF_SHININESS "100"
+#define DEF_COMPLEXITY "2"
+#define DEF_SPEED "500"
+#define DEF_DISTANCE "100"
+#define DEF_HOLD "800"
+#define DEF_SPHERISM "75"
+#define DEF_DAMPING "500"
+#define DEF_RANDOM "True"
+#define DEF_TETRA "False"
+#define DEF_SPOOKY "0"
+
+#ifndef max
+#define max(a,b) (((a)>(b))?(a):(b))
+#define min(a,b) (((a)<(b))?(a):(b))
+#endif
+
+/* Why isn't RAND_MAX correct in the first place? */
+#define REAL_RAND_MAX (2.0*(float)RAND_MAX)
+
+static int spherism;
+static int hold;
+static int distance;
+static int damping;
+
+static int complexity;
+static int speed;
+
+static int do_tetrahedron;
+static int spooky;
+static char *color;
+static int shininess;
+
+static int random_parms;
+
+typedef struct solid solid;
+
+typedef struct {
+ float stable_distance;
+ float hold_strength;
+ float spherify_strength;
+ float damping_velocity;
+ float damping_factor;
+
+ int do_wireframe;
+ int spooky;
+ int color_style;
+ GLint shininess;
+ GLfloat jiggly_color[4];
+ GLfloat color_dir[3];
+
+ solid *shape;
+
+ trackball_state *trackball;
+ int button_down;
+
+ float angle;
+ float axis;
+ float speed;
+
+ GLXContext *glx_context;
+} jigglystruct;
+
+static jigglystruct *jss = NULL;
+
+static XrmOptionDescRec opts[] = {
+ {"-random", ".Jigglypuff.random", XrmoptionNoArg, "true"},
+ {"+random", ".Jigglypuff.random", XrmoptionNoArg, "false"},
+ {"-tetra", ".Jigglypuff.tetra", XrmoptionNoArg, "true"},
+ {"+tetra", ".Jigglypuff.tetra", XrmoptionNoArg, "false"},
+ {"-spooky", ".Jigglypuff.spooky", XrmoptionSepArg, "0"},
+ {"-color", ".Jigglypuff.color", XrmoptionSepArg, DEF_COLOR},
+ {"-shininess", ".Jigglypuff.shininess", XrmoptionSepArg, DEF_SHININESS},
+ {"-complexity", ".Jigglypuff.complexity", XrmoptionSepArg, DEF_COMPLEXITY},
+ {"-speed", ".Jigglypuff.speed", XrmoptionSepArg, DEF_SPEED},
+ {"-spherism", ".Jigglypuff.spherism", XrmoptionSepArg, DEF_SPHERISM},
+ {"-hold", ".Jigglypuff.hold", XrmoptionSepArg, DEF_HOLD},
+ {"-distance", "Jigglypuff.distance", XrmoptionSepArg, DEF_DISTANCE},
+ {"-damping", "Jigglypuff.damping", XrmoptionSepArg, DEF_DAMPING}
+};
+
+static argtype vars[] = {
+ {&random_parms, "random", "Random", DEF_RANDOM, t_Bool},
+ {&do_tetrahedron, "tetra", "Tetra", DEF_TETRA, t_Bool},
+ {&spooky, "spooky", "Spooky", DEF_SPOOKY, t_Int},
+ {&color, "color", "Color", DEF_COLOR, t_String},
+ {&shininess, "shininess", "Shininess", DEF_SHININESS, t_Int},
+ {&complexity, "complexity", "Complexity", DEF_COMPLEXITY, t_Int},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Int},
+ {&spherism, "spherism", "Spherism", DEF_SPHERISM, t_Int},
+ {&hold, "hold", "Hold", DEF_HOLD, t_Int},
+ {&distance, "distance", "Distance", DEF_DISTANCE, t_Int},
+ {&damping, "damping", "Damping", DEF_DAMPING, t_Int}
+};
+
+#undef countof
+#define countof(x) ((int)(sizeof(x)/sizeof(*(x))))
+
+ENTRYPOINT ModeSpecOpt jigglypuff_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#define COLOR_STYLE_NORMAL 0
+#define COLOR_STYLE_CYCLE 1
+#define COLOR_STYLE_CLOWNBARF 2
+#define COLOR_STYLE_FLOWERBOX 3
+#define COLOR_STYLE_CHROME 4
+
+#define CLOWNBARF_NCOLORS 5
+
+static const GLfloat clownbarf_colors[CLOWNBARF_NCOLORS][4] = {
+ {0.7, 0.7, 0.0, 1.0},
+ {0.8, 0.1, 0.1, 1.0},
+ {0.1, 0.1, 0.8, 1.0},
+ {0.9, 0.9, 0.9, 1.0},
+ {0.0, 0.0, 0.0, 1.0}
+};
+
+static const GLfloat flowerbox_colors[4][4] = {
+ {0.7, 0.7, 0.0, 1.0},
+ {0.9, 0.0, 0.0, 1.0},
+ {0.0, 0.9, 0.0, 1.0},
+ {0.0, 0.0, 0.9, 1.0},
+};
+
+# if 0 /* I am not even going to *try* and make this bullshit compile
+ without warning under gcc -std=c89 -pedantic. -jwz. */
+#ifdef DEBUG
+# ifdef __GNUC__ /* GCC style */
+#define _DEBUG(msg, args...) do { \
+ fprintf(stderr, "%s : %d : " msg ,__FILE__,__LINE__ ,##args); \
+} while(0)
+# else /* C99 standard style */
+#define _DEBUG(msg, ...) do { \
+ fprintf(stderr, "%s : %d : " msg ,__FILE__,__LINE__,__VA_ARGS__); \
+} while(0)
+# endif
+#else
+# ifdef __GNUC__ /* GCC style */
+#define _DEBUG(msg, args...)
+# else /* C99 standard style */
+#define _DEBUG(msg, ...)
+# endif
+#endif
+#endif /* 0 */
+
+/* This is all the half-edge b-rep code (as well as basic geometry) */
+typedef struct face face;
+typedef struct edge edge;
+typedef struct hedge hedge;
+typedef struct vertex vertex;
+typedef GLfloat coord;
+typedef coord vector[3];
+
+struct solid {
+ face *faces;
+ edge *edges;
+ vertex *vertices;
+};
+
+struct face {
+ solid *s;
+ hedge *start;
+ const GLfloat *color;
+ face *next;
+};
+
+struct edge {
+ solid *s;
+ hedge *left;
+ hedge *right;
+ edge *next;
+};
+
+struct hedge {
+ face *f;
+ edge *e;
+ vertex *vtx;
+ hedge *next;
+ hedge *prev;
+};
+
+struct vertex {
+ solid *s;
+ hedge *h;
+ vector v;
+ vector n;
+ vector f;
+ vector vel;
+ vertex *next;
+};
+
+static inline void vector_init(vector v, coord x, coord y, coord z)
+{
+ v[0] = x;
+ v[1] = y;
+ v[2] = z;
+}
+
+static inline void vector_copy(vector d, vector s)
+{
+ d[0] = s[0];
+ d[1] = s[1];
+ d[2] = s[2];
+}
+
+static inline void vector_add(vector v1, vector v2, vector v)
+{
+ vector_init(v, v1[0]+v2[0], v1[1]+v2[1], v1[2]+v2[2]);
+}
+
+static inline void vector_add_to(vector v1, vector v2)
+{
+ v1[0] += v2[0];
+ v1[1] += v2[1];
+ v1[2] += v2[2];
+}
+
+static inline void vector_sub(vector v1, vector v2, vector v)
+{
+ vector_init(v, v1[0]-v2[0], v1[1]-v2[1], v1[2]-v2[2]);
+}
+
+static inline void vector_scale(vector v, coord s)
+{
+ v[0] *= s;
+ v[1] *= s;
+ v[2] *= s;
+}
+
+/*
+static inline coord dot(vector v1, vector v2)
+{
+ return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
+}
+*/
+
+static inline void cross(vector v1, vector v2, vector v)
+{
+ vector_init(v,
+ v1[1]*v2[2] - v2[1]*v1[2],
+ v1[2]*v2[0] - v2[2]*v1[0],
+ v1[0]*v2[1] - v2[0]*v1[1]);
+}
+
+static inline coord magnitude2(vector v)
+{
+ return v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
+}
+
+static inline coord magnitude(vector v)
+{
+ return sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
+}
+
+static inline void normalize(vector v)
+{
+ coord mag = 1.0/sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);
+
+ v[0] *= mag;
+ v[1] *= mag;
+ v[2] *= mag;
+}
+
+static inline void normalize_to(vector v, coord m)
+{
+ coord mag = 1.0/sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2])/m;
+
+ v[0] *= mag;
+ v[1] *= mag;
+ v[2] *= mag;
+}
+
+static inline void midpoint(vector v1, vector v2, vector v)
+{
+ vector_init(v,
+ v1[0] + 0.5 * (v2[0] - v1[0]),
+ v1[1] + 0.5 * (v2[1] - v1[1]),
+ v1[2] + 0.5 * (v2[2] - v1[2]));
+}
+
+static inline hedge *partner(hedge *h) {
+ if(!h->e)
+ return NULL;
+ if(h == h->e->left) {
+ return h->e->right;
+ }
+ else if(h == h->e->right) {
+ return h->e->left;
+ }
+ else {
+/* _DEBUG("Inconsistent edge detected. Presumably, this is a bug. Exiting.\n", NULL); */
+ exit(-1);
+ }
+}
+
+static vertex *vertex_new(solid *s, vector v)
+{
+ vertex *vtx = (vertex*)malloc(sizeof(vertex));
+
+ if(!vtx)
+ return NULL;
+ vtx->s = s;
+ vtx->next = s->vertices;
+ s->vertices = vtx;
+ vector_copy(vtx->v, v);
+ vector_init(vtx->f, 0, 0, 0);
+ vector_init(vtx->vel, 0, 0, 0);
+ return vtx;
+}
+
+/* insert a new halfedge after hafter. this is low-level,
+ * i.e. it is a helper for the split_* functions, which
+ * maintain the consistency of the solid.
+ */
+static hedge *hedge_new(hedge *hafter, vertex *vtx)
+{
+ hedge *h = (hedge*)malloc(sizeof(hedge));
+
+ if(!h) {
+/* _DEBUG("Out of memory in hedge_new()\n",NULL); */
+ return NULL;
+ }
+ h->f = hafter->f;
+ h->vtx = vtx;
+ h->e = NULL;
+ h->prev = hafter;
+ h->next = hafter->next;
+ hafter->next = h;
+ h->next->prev = h;
+ return h;
+}
+
+static edge *edge_new(solid *s)
+{
+ edge *e = (edge*)malloc(sizeof(edge));
+ if(!e) {
+/* _DEBUG("Out of memory in edge_new()\n",NULL);*/
+ exit(-1);
+ }
+ e->next = s->edges;
+ s->edges = e;
+ e-> s = s;
+ e->left = e->right = NULL;
+ return e;
+}
+
+static face *face_new(solid *s, hedge *h)
+{
+ face *f = (face*)malloc(sizeof(face));
+ if(!f) {
+/* _DEBUG("Out of memory in face_new()",NULL);*/
+ exit(-1);
+ }
+ f->s = s;
+ f->start = h;
+ f->next = s->faces;
+ s->faces = f;
+ return f;
+}
+
+/* split vertex vtx, creating a new edge after v on f
+ * that goes to a new vertex at v, adjoining whatever
+ * face is on the other side of the halfedge attached to
+ * v on f.
+ * Assumptions:
+ * there are at least 2 faces.
+ * partner(h)->next->vtx == vtx
+ * Post-assumptions:
+ * the new halfedge will be inserted AFTER the indicated
+ * halfedge. This means that f->start is guaranteed not to
+ * change.
+ * the vertex returned will have h==<the new halfedge>.
+ */
+
+static vertex *vertex_split(hedge *h, vector v)
+{
+ hedge *h2, *hn1, *hn2;
+ vertex *vtxn;
+ edge *en;
+ face *f1;
+
+ f1 = h->f;
+ h2 = partner(h);
+
+ vtxn = vertex_new(f1->s, v);
+ hn1 = hedge_new(h, vtxn);
+ vtxn->h = hn1;
+ hn2 = hedge_new(h2, vtxn);
+ hn2->e = h->e;
+
+ if(h2->e->left == h2)
+ h2->e->left = hn2;
+ else
+ h2->e->right = hn2;
+
+ en = edge_new(f1->s);
+ en->left = hn1;
+ en->right = h2;
+ hn1->e = en;
+ h2->e = en;
+ return vtxn;
+}
+
+static face *face_split(face *f, hedge *h1, hedge *h2)
+{
+ hedge *hn1, *hn2, *tmp;
+ edge *en;
+ face *fn;
+
+ if(h1->f != f || h2->f != f) {
+/* _DEBUG("Whoah, cap'n, yer usin' a bad halfedge!\n",NULL);*/
+ exit(-1);
+ }
+ if(h1 == h2) {
+/* _DEBUG("Trying to split a face at a single vertex\n",NULL);*/
+ exit(-1);
+ }
+ /* close the loops */
+ h1->prev->next = h2;
+ h2->prev->next = h1;
+ tmp = h1->prev;
+ h1->prev = h2->prev;
+ h2->prev = tmp;
+ /* insert halfedges & create edge */
+ hn1 = hedge_new(h2->prev, h1->vtx);
+ hn2 = hedge_new(h1->prev, h2->vtx);
+ en = edge_new(f->s);
+ en->left = hn1;
+ en->right = hn2;
+ hn1->e = en;
+ hn2->e = en;
+
+ /* make the new face, first find out which hedge is contained
+ * in the original face, then start the new face at the other */
+ tmp = f->start;
+ while(tmp != h1 && tmp != h2)
+ tmp = tmp->next;
+ tmp = (tmp == h1) ? h2 : h1 ;
+ fn = face_new(f->s, tmp);
+ do {
+ tmp->f = fn;
+ tmp = tmp->next;
+ } while(tmp != fn->start);
+ fn->color = f->color;
+ return fn;
+}
+
+static solid *solid_new(vector where)
+{
+ solid *s = (solid*)malloc(sizeof(solid));
+ face *f1, *f2;
+ edge *e;
+ vertex *vtx;
+ hedge *h1,*h2;
+
+ s->faces = NULL;
+ s->edges = NULL;
+ s->vertices = NULL;
+
+ h1 = (hedge*)malloc(sizeof(hedge));
+ h2 = (hedge*)malloc(sizeof(hedge));
+ h1->next = h1->prev = h1;
+ h2->next = h2->prev = h2;
+
+ vtx = vertex_new(s, where);
+ vtx->h = h1;
+ h1->vtx = vtx;
+ h2->vtx = vtx;
+
+ e = edge_new(s);
+ e->left = h1;
+ e->right = h2;
+ h1->e = e;
+ h2->e = e;
+
+ f1 = face_new(s, h1);
+ f2 = face_new(s, h2);
+ h1->f = f1;
+ h2->f = f2;
+
+ return s;
+}
+
+/* This is all the code directly related to constructing the jigglypuff */
+static void face_tessel2(face *f)
+{
+ hedge *h1=f->start->prev, *h2=f->start->next;
+
+ if(h1->next == h1)
+ return;
+ while(h2 != h1 && h2->next != h1) {
+ f = face_split(f, h1, h2);
+ h1 = f->start;
+ h2 = f->start->next->next;
+ }
+}
+
+/* This will only work with solids composed entirely of
+ * triangular faces. It first add a vertex to the middle
+ * of each edge, then walks the faces, connecting the
+ * dots.
+ * I'm abusing the fact that new faces and edges are always
+ * added at the head of the list. If that ever changes,
+ * this is borked.
+ */
+static void solid_tesselate(solid *s)
+{
+ edge *e = s->edges;
+ face *f = s->faces;
+
+ while(e) {
+ vector v;
+ midpoint(e->left->vtx->v, e->right->vtx->v, v);
+ vertex_split(e->left, v);
+ e = e->next;
+ }
+ while(f) {
+ face_tessel2(f);
+ f=f->next;
+ }
+}
+
+static void solid_spherify(solid * s, coord size)
+{
+ vertex *vtx = s->vertices;
+
+ while(vtx) {
+ normalize_to(vtx->v, size);
+ vtx = vtx->next;
+ }
+}
+
+static solid *tetrahedron(jigglystruct *js)
+{
+ solid *s;
+ vertex *vtx;
+ vector v;
+ hedge *h;
+ face *f;
+ int i;
+
+ vector_init(v, 1, 1, 1);
+ s = solid_new(v);
+ vector_init(v, -1, -1, 1);
+ h = s->faces->start;
+ vtx = vertex_split(h, v);
+ vector_init(v, -1, 1, -1);
+ vtx = vertex_split(vtx->h, v);
+ h = vtx->h;
+ f = face_split(s->faces, h, h->prev);
+ vector_init(v, 1, -1, -1);
+ vertex_split(f->start, v);
+ f = s->faces->next->next;
+ h = f->start;
+ face_split(f, h, h->next->next);
+
+ if(js->color_style == COLOR_STYLE_FLOWERBOX) {
+ f = s->faces;
+ for(i=0; i<4; i++) {
+ f->color = flowerbox_colors[i];
+ f = f->next;
+ }
+ }
+
+ return s;
+}
+
+static solid *tesselated_tetrahedron(coord size, int iter, jigglystruct *js) {
+ solid *s = tetrahedron(js);
+ int i;
+
+ for(i=0; i<iter; i++) {
+ solid_tesselate(s);
+ }
+ return s;
+}
+
+static void clownbarf_colorize(solid *s) {
+ face *f = s->faces;
+ while(f) {
+ f->color = clownbarf_colors[random() % CLOWNBARF_NCOLORS];
+ f = f->next;
+ }
+}
+
+/* Here be the rendering code */
+
+static inline void vertex_calcnormal(vertex *vtx, jigglystruct *js)
+{
+ hedge *start = vtx->h, *h=start;
+
+ vector_init(vtx->n, 0, 0, 0);
+ do {
+ vector u, v, norm;
+ vector_sub(h->prev->vtx->v, vtx->v, u);
+ vector_sub(h->next->vtx->v, vtx->v, v);
+ cross(u, v, norm);
+ vector_add_to(vtx->n, norm);
+ h = partner(h)->next;
+ } while(h != start);
+ if(!js->spooky)
+ normalize(vtx->n);
+ else
+ vector_scale(vtx->n, js->spooky);
+}
+
+static inline void vertex_render(vertex *vtx, jigglystruct *js)
+{
+ glNormal3fv(vtx->n);
+ glVertex3fv(vtx->v);
+}
+
+/* This can be optimized somewhat due to the fact that all
+ * the faces are triangles. I haven't actually tested to
+ * see what the cost is of calling glBegin/glEnd for each
+ * triangle.
+ */
+static inline int face_render(face *f, jigglystruct *js)
+{
+ hedge *h1, *h2, *hend;
+ int polys = 0;
+
+ h1 = f->start;
+ hend = h1->prev;
+ h2 = h1->next;
+
+ if(js->color_style == COLOR_STYLE_FLOWERBOX ||
+ js->color_style == COLOR_STYLE_CLOWNBARF)
+ glColor4fv(f->color);
+ glBegin(GL_TRIANGLES);
+ while(h1 != hend && h2 !=hend) {
+ vertex_render(h1->vtx, js);
+ vertex_render(h2->vtx, js);
+ vertex_render(hend->vtx, js);
+ h1 = h2;
+ h2 = h1->next;
+ polys++;
+ }
+ glEnd();
+ return polys;
+}
+
+static int jigglypuff_render(jigglystruct *js)
+{
+ int polys = 0;
+ face *f = js->shape->faces;
+ vertex *vtx = js->shape->vertices;
+
+ while(vtx) {
+ vertex_calcnormal(vtx, js);
+ vtx = vtx->next;
+ }
+ while(f) {
+ polys += face_render(f, js);
+ f=f->next;
+ }
+ return polys;
+}
+
+/* This is the jiggling code */
+
+/* stable distance when subdivs == 4 */
+#define STABLE_DISTANCE 0.088388347648
+
+static void update_shape(jigglystruct *js)
+{
+ vertex *vtx = js->shape->vertices;
+ edge *e = js->shape->edges;
+ vector zero;
+
+ vector_init(zero, 0, 0, 0);
+
+ /* sum all the vertex-vertex forces */
+ while(e) {
+ vector f;
+ coord mag;
+ vector_sub(e->left->vtx->v, e->right->vtx->v, f);
+ mag = js->stable_distance - magnitude(f);
+ vector_scale(f, mag);
+ vector_add_to(e->left->vtx->f, f);
+ vector_sub(zero, f, f);
+ vector_add_to(e->right->vtx->f, f);
+ e = e->next;
+ }
+
+ /* scale back the v-v force and add the spherical force
+ * then add the result to the vertex velocity, damping
+ * if necessary. Finally, move the vertex */
+ while(vtx) {
+ coord mag;
+ vector to_sphere;
+ vector_scale(vtx->f, js->hold_strength);
+ vector_copy(to_sphere, vtx->v);
+ mag = 1 - magnitude(to_sphere);
+ vector_scale(to_sphere, mag * js->spherify_strength);
+ vector_add_to(vtx->f, to_sphere);
+ vector_add_to(vtx->vel, vtx->f);
+ vector_init(vtx->f, 0, 0, 0);
+ mag = magnitude2(vtx->vel);
+ if(mag > js->damping_velocity)
+ vector_scale(vtx->vel, js->damping_factor);
+ vector_add_to(vtx->v, vtx->vel);
+ vtx = vtx->next;
+ }
+}
+
+/* These are the various initialization routines */
+
+static void init_texture(ModeInfo *mi)
+{
+ XImage *img = image_data_to_ximage(mi->dpy, mi->xgwa.visual,
+ jigglymap_png, sizeof(jigglymap_png));
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
+ img->width, img->height, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, img->data);
+
+ XDestroyImage(img);
+}
+
+static void setup_opengl(ModeInfo *mi, jigglystruct *js)
+{
+ const GLfloat lpos0[4] = {-12, 8, 12, 0};
+ const GLfloat lpos1[4] = {7, -5, 0, 0};
+ const GLfloat lcol0[4] = {0.7f, 0.7f, 0.65f, 1};
+ const GLfloat lcol1[4] = {0.3f, 0.2f, 0.1f, 1};
+ const GLfloat scolor[4]= {0.9f, 0.9f, 0.9f, 0.5f};
+
+ glDrawBuffer(GL_BACK);
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+
+ if(js->do_wireframe) {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ }
+ else {
+ glCullFace(GL_BACK);
+ glFrontFace(GL_CW);
+ glEnable(GL_CULL_FACE);
+ }
+
+ if(js->color_style != COLOR_STYLE_CHROME) {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, lpos0);
+ glLightfv(GL_LIGHT1, GL_POSITION, lpos1);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, lcol0);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, lcol1);
+
+ glEnable(GL_COLOR_MATERIAL);
+ glColor4fv(js->jiggly_color);
+
+ glMaterialfv(GL_FRONT, GL_SPECULAR, scolor);
+ glMateriali(GL_FRONT, GL_SHININESS, js->shininess);
+ }
+ else { /* chrome */
+ init_texture(mi);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ glEnable(GL_TEXTURE_2D);
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ }
+}
+
+static int parse_color(jigglystruct *js)
+{
+ unsigned int r, g, b;
+ if(!strcmp(color, "clownbarf")) {
+ js->color_style = COLOR_STYLE_CLOWNBARF;
+ return 1;
+ }
+ else if(!strcmp(color, "flowerbox")) {
+ js->color_style = COLOR_STYLE_FLOWERBOX;
+ return 1;
+ }
+# ifndef HAVE_JWZGLES /* SPHERE_MAP unimplemented */
+ else if(!strcmp(color, "chrome")) {
+ js->color_style = COLOR_STYLE_CHROME;
+ return 1;
+ }
+# endif
+ else if(!strcmp(color, "cycle")) {
+ js->color_style = COLOR_STYLE_CYCLE;
+ js->jiggly_color[0] = ((float)random()) / REAL_RAND_MAX * 0.7 + 0.3;
+ js->jiggly_color[1] = ((float)random()) / REAL_RAND_MAX * 0.7 + 0.3;
+ js->jiggly_color[2] = ((float)random()) / REAL_RAND_MAX * 0.7 + 0.3;
+ js->jiggly_color[3] = 1.0f;
+ js->color_dir[0] = ((float)random()) / REAL_RAND_MAX / 100.0;
+ js->color_dir[1] = ((float)random()) / REAL_RAND_MAX / 100.0;
+ js->color_dir[2] = ((float)random()) / REAL_RAND_MAX / 100.0;
+ return 1;
+ }
+ else
+ js->color_style = 0;
+ if(strlen(color) != 7)
+ return 0;
+ if(sscanf(color,"#%02x%02x%02x", &r, &g, &b) != 3) {
+ return 0;
+ }
+ js->jiggly_color[0] = ((float)r)/255;
+ js->jiggly_color[1] = ((float)g)/255;
+ js->jiggly_color[2] = ((float)b)/255;
+ js->jiggly_color[3] = 1.0f;
+
+ return 1;
+}
+
+static void randomize_parameters(jigglystruct *js) {
+ do_tetrahedron = random() & 1;
+# ifndef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ js->do_wireframe = !(random() & 3);
+# endif
+ js->color_style = random() % 5;
+# ifdef HAVE_JWZGLES /* #### SPHERE_MAP unimplemented */
+ while (js->color_style == COLOR_STYLE_CHROME)
+ js->color_style = random() % 5;;
+# endif
+ if(js->color_style == COLOR_STYLE_NORMAL
+ || js->color_style == COLOR_STYLE_CYCLE) {
+ js->jiggly_color[0] = ((float)random()) / REAL_RAND_MAX * 0.5 + 0.5;
+ js->jiggly_color[1] = ((float)random()) / REAL_RAND_MAX * 0.5 + 0.5;
+ js->jiggly_color[2] = ((float)random()) / REAL_RAND_MAX * 0.5 + 0.5;
+ js->jiggly_color[3] = 1.0f;
+ if(js->color_style == COLOR_STYLE_CYCLE) {
+ js->color_dir[0] = ((float)random()) / REAL_RAND_MAX / 100.0;
+ js->color_dir[1] = ((float)random()) / REAL_RAND_MAX / 100.0;
+ js->color_dir[2] = ((float)random()) / REAL_RAND_MAX / 100.0;
+ }
+ }
+ if((js->color_style != COLOR_STYLE_CHROME) && (random() & 1))
+ js->spooky = (random() % 6) + 4;
+ else
+ js->spooky = 0;
+ js->shininess = random() % 200;
+ speed = (random() % 700) + 50;
+ /* It' kind of dull if this is too high when it starts as a sphere */
+ spherism = do_tetrahedron ? (random() % 500) + 20 : (random() % 100) + 10;
+ hold = (random() % 800) + 100;
+ distance = (random() % 500) + 100;
+ damping = (random() % 800) + 50;
+}
+
+static void calculate_parameters(jigglystruct *js, int subdivs) {
+ /* try to compensate for the inherent instability at
+ * low complexity. */
+ float dist_factor = (subdivs == 6) ? 2 : (subdivs == 5) ? 1 : 0.5;
+
+ js->stable_distance = ((float)distance / 500.0)
+ * (STABLE_DISTANCE / dist_factor);
+ js->hold_strength = (float)hold / 10000.0;
+ js->spherify_strength = (float)spherism / 10000.0;
+ js->damping_velocity = (float)damping / 100000.0;
+ js->damping_factor =
+ 0.001/max(js->hold_strength, js->spherify_strength);
+
+ js->speed = (float)speed / 1000.0;
+}
+
+/* The screenhack related functions begin here */
+
+ENTRYPOINT Bool jigglypuff_handle_event(ModeInfo *mi, XEvent *event)
+{
+ jigglystruct *js = &jss[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, js->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &js->button_down))
+ return True;
+
+ return False;
+}
+
+ENTRYPOINT void reshape_jigglypuff(ModeInfo *mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-0.5*(1/h), 0.5*(1/h), -0.5, 0.5, 1, 20);
+}
+
+ENTRYPOINT void draw_jigglypuff(ModeInfo *mi)
+{
+ jigglystruct *js = &jss[MI_SCREEN(mi)];
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(js->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0,0,-10);
+
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glRotatef(js->angle, sin(js->axis), cos(js->axis), -sin(js->axis));
+ glTranslatef(0, 0, 5);
+ if(!(js->button_down)) {
+ if((js->angle += js->speed) >= 360.0f ) {
+ js->angle -= 360.0f;
+ }
+ if((js->axis+=0.01f) >= 2*M_PI ) {
+ js->axis -= 2*M_PI;
+ }
+ }
+
+ gltrackball_rotate(js->trackball);
+
+ if(js->color_style == COLOR_STYLE_CYCLE) {
+ int i;
+ vector_add(js->jiggly_color, js->color_dir, js->jiggly_color);
+
+ for(i=0; i<3; i++) {
+ if(js->jiggly_color[i] > 1.0 || js->jiggly_color[i] < 0.3) {
+ js->color_dir[i] = (-js->color_dir[i]);
+ js->jiggly_color[i] += js->color_dir[i];
+ }
+ }
+ glColor4fv(js->jiggly_color);
+ }
+
+ mi->polygon_count = jigglypuff_render(js);
+ if(MI_IS_FPS(mi))
+ do_fps(mi);
+ glFinish();
+ update_shape(js);
+ glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
+}
+
+ENTRYPOINT void init_jigglypuff(ModeInfo *mi)
+{
+ jigglystruct *js;
+ int subdivs;
+
+ MI_INIT(mi, jss);
+
+ js = &jss[MI_SCREEN(mi)];
+
+ js->do_wireframe = MI_IS_WIREFRAME(mi);
+# ifdef HAVE_JWZGLES
+ js->do_wireframe = 0; /* GL_LINE unimplemented */
+# endif
+
+ js->shininess = shininess;
+
+ subdivs = (complexity==1) ? 4 : (complexity==2) ? 5
+ : (complexity==3) ? 6 : 5;
+
+ js->spooky = spooky << (subdivs-3);
+
+ if(!parse_color(js)) {
+ fprintf(stderr, "%s: Bad color specification: '%s'.\n", progname, color);
+ exit(-1);
+ }
+
+ if(random_parms)
+ randomize_parameters(js);
+
+ js->angle = frand(180);
+ js->axis = frand(M_PI);
+
+ js->shape = tesselated_tetrahedron(1, subdivs, js);
+
+ if(!do_tetrahedron)
+ solid_spherify(js->shape, 1);
+
+ if(js->color_style == COLOR_STYLE_CLOWNBARF)
+ clownbarf_colorize(js->shape);
+
+ calculate_parameters(js, subdivs);
+
+ if((js->glx_context = init_GL(mi)) != NULL) {
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(js->glx_context));
+ setup_opengl(mi, js);
+ reshape_jigglypuff(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+ else {
+ MI_CLEARWINDOW(mi);
+ }
+ js->trackball = gltrackball_init(True);
+/* _DEBUG("distance : %f\nhold : %f\nspherify : %f\ndamping : %f\ndfact : %f\n",
+ js->stable_distance, js->hold_strength, js->spherify_strength,
+ js->damping_velocity, js->damping_factor);
+ _DEBUG("wire : %d\nspooky : %d\nstyle : %d\nshininess : %d\n",
+ js->do_wireframe, js->spooky, js->color_style, js->shininess);*/
+}
+
+XSCREENSAVER_MODULE ("JigglyPuff", jigglypuff)
+
+#endif /* USE_GL */
+
+/* This is the end of the file */
diff --git a/hacks/glx/jigglypuff.man b/hacks/glx/jigglypuff.man
new file mode 100644
index 0000000..4a5f8bf
--- /dev/null
+++ b/hacks/glx/jigglypuff.man
@@ -0,0 +1,121 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+jigglypuff - save your screen by tormenting your eyes.
+.SH SYNOPSIS
+.B jigglypuff
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[-delay \fInumber\fP]
+[-cycles \fInumber\fP]
+[-wireframe]
+[-fps]
+[-color \fIcolorspec\fP]
+[-spooky]
+[-complexity \fIn\fP]
+[-speed \fIn\fP]
+[-spherism \fIn\fP]
+[-hold \fIn\fP]
+[-distance \fIn\fP]
+[-damping \fIn\fP]
+.SH DESCRIPTION
+This draws all manners of obscene, spastic, puffy, vaguely ball-shaped
+objects orbiting lazily about the screen, with a dizzying array of
+mostly pointless options.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid. Default: render solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B -tetra | -no-tetra
+Whether to start the shape in the form of a tetrahedron. The default
+is to start as a sphere.
+.TP 8
+.B -color \fIcolorspec\fP
+Available options for colorspec are: cycle, flowerbox, clownpuke, chrome
+and #xxxxxx (i.e an (old-style) X color specification.) Default: cycle
+.TP 8
+.B -spooky \fIn\fP
+This option controls a kind of interesting effect obtained by
+using unnormalized normal vectors (how's that for an oxymoron?) in OpenGL.
+A value of zero disables the effect. Other values vary the lengths of
+the normals proportionally.
+Okay, so it's not very spooky. Sue me.
+Default: 0
+.TP 8
+.B -complexity \fIn\fP
+Valid options are 1, 2, and 3. Everything else is treated as though it
+were 2, which is the default. This controls the number of polygons in
+the 'thing'. A value of 1 yields 1024, and the values go up in powers
+of 4. (i.e. 4096, 16384.)
+ note: There is an inherent lack of stability
+at lower complexity, which can cause the shape to devolve into a 'flying
+snotrag'.
+.TP 8
+.B -speed \fIn\fP
+Controls how fast the blob moves around the screen. Default: 500.
+.TP 8
+.B -spherism, -hold, -distance, -damping
+These options control the 'jigglyness'. The best way to explain these is
+to explain how jigglypuff works. Basically, the shape is a tetrahedron
+whose faces are subdivided into a number of triangles, forming a mesh.
+Each of the vertices of the mesh has two different forces applied to it:
+one proportional to its distance from the surface of a sphere, and one
+proportional to the difference of the distance to each of its neighbors
+in the mesh to a given ideal distance. In short, one tries to move the
+points into the configuration of a sphere, and the other tries to push
+them back into a tetrahedron. The catch is that the points have inertia,
+so they always overshoot their target, and hence they oscillate. The
+magnitudes of the two forces is controlled by the options 'spherism' and
+\'hold'; 'distance' specifies the distance the vertices seek to keep from
+their neighbors, with 500 corresponding to the size of the start tetrahedron.
+e.g. if you were to give the options '-tetra -spherism 0 -distance 500', you
+would end up with a stable tetrahedron. The 'damping' option can help to
+keep the blob from collapsing or flying apart. The option specifies the
+speed at which damping starts, hence lower values mean more damping.
+Defaults: spherism: 75; hold: 800; distance: 100; damping: 500.
+.TP 8
+.B -random
+Probably the only parameter you'l ever need. Overrides almost all of the
+parameters with random values. The values affected are: speed, spherism,
+hold, distance, damping, spooky, color, wireframe and tetra.
+Default: off
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Keith Macleod. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+By Keith Macleod
diff --git a/hacks/glx/jigsaw.c b/hacks/glx/jigsaw.c
new file mode 100644
index 0000000..934dbcc
--- /dev/null
+++ b/hacks/glx/jigsaw.c
@@ -0,0 +1,1509 @@
+/* xscreensaver, Copyright (c) 1997-2017 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Written as an Xlib program some time in 1997.
+ * Rewritten as an OpenGL program 24-Aug-2008.
+ */
+
+/*
+ Currently, we do this:
+
+ - start pieces off screen and move them in.
+ - when they land, they fill the puzzle grid with a shuffled
+ puzzle (pieces are rotated, too).
+ - swap random pairs of pieces until the puzzle is solved.
+ - scatter the pieces off screen (resulting in black).
+ - load new image and repeat.
+
+ Another idea would be to show the puzzle being solved the way
+ a person would do it:
+
+ - start off with black screen.
+ - assume knowledge of size of grid (position of corners).
+ - find a corner piece, and place it.
+ - while puzzle unsolved:
+ - pick a random piece;
+ - if it is the correct piece for any open edge, place it;
+ - if it fits physically in any rotation at any open edge,
+ place it, then toss it back (show the fake-out).
+ - if it doesn't fit at all, don't animate it at all.
+
+ This would take a long time to solve, I think...
+
+ An even harder idea would involve building up completed "clumps"
+ and sliding them around (a coral growth / accretion approach)
+ */
+
+#define DEF_SPEED "1.0"
+#define DEF_COMPLEXITY "1.0"
+#define DEF_RESOLUTION "100"
+#define DEF_THICKNESS "0.06"
+#define DEF_WOBBLE "True"
+#define DEF_DEBUG "False"
+
+#define DEF_FONT "-*-helvetica-bold-r-normal-*-*-240-*-*-*-*-*-*"
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*font: " DEF_FONT"\n" \
+ "*wireframe: False \n" \
+ "*desktopGrabber: xscreensaver-getimage -no-desktop %s\n" \
+ "*grabDesktopImages: False \n" \
+ "*chooseRandomImages: True \n" \
+ "*suppressRotationAnimation: True\n" \
+
+
+# define free_jigsaw 0
+# define release_jigsaw 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#include "xlockmore.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "spline.h"
+#include "normals.h"
+#include "grab-ximage.h"
+#include "texfont.h"
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#else /* !HAVE_JWZGLES */
+# define HAVE_TESS
+#endif /* !HAVE_JWZGLES */
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#ifdef USE_GL /* whole file */
+
+#define TOP 0
+#define RIGHT 1
+#define BOTTOM 2
+#define LEFT 3
+
+#define IN -1
+#define FLAT 0
+#define OUT 1
+
+typedef struct jigsaw_configuration jigsaw_configuration;
+
+typedef struct {
+ double x,y,z,r; /* position and Z rotation (in degrees) */
+} XYZR;
+
+
+typedef struct {
+ jigsaw_configuration *jc;
+ int edge[4];
+ GLuint dlist;
+ int polys;
+
+ XYZR home; /* correct position in puzzle */
+ XYZR current; /* where it is right now */
+ XYZR from, to; /* in transit from A to B */
+ double tick; /* 0-1.0, how far from A to B */
+ double arc_height; /* height of apex of curved path from A to B */
+ double tilt, max_tilt;
+
+} puzzle_piece;
+
+
+struct jigsaw_configuration {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ rotator *rot;
+ Bool button_down_p;
+ texture_font_data *texfont;
+ GLuint loading_dlist;
+
+ int puzzle_width;
+ int puzzle_height;
+ puzzle_piece *puzzle;
+
+ enum { PUZZLE_LOADING_MSG,
+ PUZZLE_LOADING,
+ PUZZLE_UNSCATTER,
+ PUZZLE_SOLVE,
+ PUZZLE_SCATTER } state;
+ double pausing;
+ double tick_speed;
+
+ GLuint texid;
+ GLfloat tex_x, tex_y, tex_width, tex_height, aspect;
+
+ GLuint line_thickness;
+};
+
+static jigsaw_configuration *sps = NULL;
+
+static GLfloat speed;
+static GLfloat complexity_arg;
+static int resolution_arg;
+static GLfloat thickness_arg;
+static Bool wobble_p;
+static Bool debug_p;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-complexity", ".complexity", XrmoptionSepArg, 0 },
+ { "-resolution", ".resolution", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-wobble", ".wobble", XrmoptionNoArg, "True" },
+ { "+wobble", ".wobble", XrmoptionNoArg, "False" },
+ { "-debug", ".debug", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&complexity_arg, "complexity", "Complexity", DEF_COMPLEXITY, t_Float},
+ {&resolution_arg, "resolution", "Resolution", DEF_RESOLUTION, t_Int},
+ {&thickness_arg, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&wobble_p, "wobble", "Wobble", DEF_WOBBLE, t_Bool},
+ {&debug_p, "debug", "Debug", DEF_DEBUG, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt jigsaw_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Returns a spline describing one edge of a puzzle piece of the given length.
+ */
+static spline *
+make_puzzle_curve (int pixels)
+{
+ double x0 = 0.0000, y0 = 0.0000;
+ double x1 = 0.3333, y1 = 0.1000;
+ double x2 = 0.4333, y2 = 0.0333;
+ double x3 = 0.4666, y3 = -0.0666;
+ double x4 = 0.3333, y4 = -0.1666;
+ double x5 = 0.3666, y5 = -0.2900;
+ double x6 = 0.5000, y6 = -0.3333;
+
+ spline *s = make_spline(20);
+ s->n_controls = 0;
+
+# define PT(x,y) \
+ s->control_x[s->n_controls] = pixels * (x); \
+ s->control_y[s->n_controls] = pixels * (y); \
+ s->n_controls++
+ PT ( x0, y0);
+ PT ( x1, y1);
+ PT ( x2, y2);
+ PT ( x3, y3);
+ PT ( x4, y4);
+ PT ( x5, y5);
+ PT ( x6, y6);
+ PT (1-x5, y5);
+ PT (1-x4, y4);
+ PT (1-x3, y3);
+ PT (1-x2, y2);
+ PT (1-x1, y1);
+ PT (1-x0, y0);
+# undef PT
+
+ compute_spline (s);
+ return s;
+}
+
+
+#ifdef HAVE_TESS
+
+static void
+tess_error_cb (GLenum errorCode)
+{
+ fprintf (stderr, "%s: tesselation error: %s\n",
+ progname, gluErrorString(errorCode));
+ exit (0);
+}
+
+
+static void
+tess_combine_cb (GLdouble coords[3], GLdouble *d[4], GLfloat w[4],
+ GLdouble **dataOut)
+{
+ GLdouble *new = (GLdouble *) malloc (3 * sizeof(*new));
+ new[0] = coords[0];
+ new[1] = coords[1];
+ new[2] = coords[2];
+ *dataOut = new;
+}
+
+
+static void
+tess_vertex_cb (void *vertex_data, void *closure)
+{
+ puzzle_piece *p = (puzzle_piece *) closure;
+ GLdouble *v = (GLdouble *) vertex_data;
+ GLdouble x = v[0];
+ GLdouble y = v[1];
+ GLdouble z = v[2];
+
+ if (p)
+ {
+ GLfloat pw = p->jc->puzzle_width;
+ GLfloat ph = p->jc->puzzle_height;
+
+ GLfloat xx = x / (GLfloat) resolution_arg; /* 0-1 from piece origin */
+ GLfloat yy = y / (GLfloat) resolution_arg;
+ GLdouble tx = (p->home.x + xx) / pw; /* 0-1 from puzzle origin */
+ GLdouble ty = (ph - p->home.y - yy) / ph;
+
+ tx = p->jc->tex_x + (tx * p->jc->tex_width);
+ ty = p->jc->tex_y + (ty * p->jc->tex_height);
+
+ glTexCoord2d (tx, ty);
+ }
+
+ glVertex3d (x, y, z);
+}
+
+#else /* HAVE_TESS */
+
+/* Writes triangles into the array of floats.
+ Returns the number of floats written (triangles * 9).
+ */
+static int
+make_piece_eighth (jigsaw_configuration *jc, const spline *s,
+ int resolution, int type, GLfloat *out,
+ Bool flip_x, Bool flip_y, Bool rotate_p)
+{
+ GLfloat *oout = out;
+ int cx = resolution/2;
+ int cy = resolution/2;
+ int np = (s->n_points / 2) + 1;
+ int last_x = -999999, last_y = -999999;
+ Bool inflected = False;
+ int i;
+
+ if (type == FLAT)
+ {
+ *out++ = cx;
+ *out++ = 0;
+ *out++ = 0;
+
+ *out++ = cx;
+ *out++ = cy;
+ *out++ = 0;
+
+ *out++ = 0;
+ *out++ = 0;
+ *out++ = 0;
+
+ goto END;
+ }
+
+ for (i = (type == IN ? np-1 : 0);
+ (type == IN ? i >= 0 : i < np);
+ i += (type == IN ? -1 : 1))
+ {
+ int x = s->points[i].x;
+ int y = s->points[i].y;
+
+ if (type == IN)
+ y = -y;
+
+ if (last_x != -999999)
+ {
+ if (!inflected &&
+ (type == IN
+ ? x >= last_x
+ : x < last_x))
+ {
+ inflected = True;
+
+ *out++ = cx;
+ *out++ = cy;
+ *out++ = 0;
+
+ *out++ = last_x;
+ *out++ = last_y;
+ *out++ = 0;
+
+ if (type == IN)
+ {
+ cx = 0;
+ cy = 0;
+ }
+ else
+ {
+ cy = y;
+ }
+
+ *out++ = cx;
+ *out++ = cy;
+ *out++ = 0;
+ }
+
+ *out++ = cx;
+ *out++ = cy;
+ *out++ = 0;
+
+ *out++ = last_x;
+ *out++ = last_y;
+ *out++ = 0;
+
+ *out++ = x;
+ *out++ = y;
+ *out++ = 0;
+ }
+
+ last_x = x;
+ last_y = y;
+ }
+ END:
+
+ {
+ int count = out - oout;
+ Bool cw_p;
+
+ if (flip_x)
+ for (i = 0; i < count; i += 3)
+ oout[i] = resolution - oout[i];
+
+ if (flip_y)
+ for (i = 0; i < count; i += 3)
+ oout[i+1] = resolution - oout[i+1];
+
+ cw_p = (type == IN);
+ if (flip_x) cw_p = !cw_p;
+ if (flip_y) cw_p = !cw_p;
+
+ if (cw_p)
+ for (i = 0; i < count; i += 9)
+ {
+ GLfloat x1 = oout[i+0];
+ GLfloat y1 = oout[i+1];
+ GLfloat x2 = oout[i+3];
+ GLfloat y2 = oout[i+4];
+ GLfloat x3 = oout[i+6];
+ GLfloat y3 = oout[i+7];
+ oout[i+0] = x2;
+ oout[i+1] = y2;
+ oout[i+3] = x1;
+ oout[i+4] = y1;
+ oout[i+6] = x3;
+ oout[i+7] = y3;
+ }
+
+ if (rotate_p)
+ for (i = 0; i < count; i += 3)
+ {
+ GLfloat x = oout[i];
+ GLfloat y = oout[i+1];
+ oout[i] = resolution - y;
+ oout[i+1] = x;
+ }
+
+ return count;
+ }
+}
+
+#endif /* !HAVE_TESS */
+
+
+
+/* Draws a puzzle piece. The top/right/bottom/left_type args
+ indicate the direction the tabs point: 1 for out, -1 for in, 0 for flat.
+ */
+static int
+draw_piece (jigsaw_configuration *jc, puzzle_piece *p,
+ int resolution, GLfloat thickness,
+ int top_type, int right_type,
+ int bottom_type, int left_type,
+ Bool wire)
+{
+ spline *s = make_puzzle_curve (resolution);
+ GLdouble *pts = (GLdouble *) malloc (s->n_points * 4 * 3 * sizeof(*pts));
+ int polys = 0;
+ int i, o;
+ GLdouble z = resolution * thickness;
+
+ o = 0;
+ if (top_type == 0) {
+ pts[o++] = 0;
+ pts[o++] = 0;
+ pts[o++] = z;
+
+ pts[o++] = resolution;
+ pts[o++] = 0;
+ pts[o++] = z;
+ } else {
+ for (i = 0; i < s->n_points; i++) {
+ pts[o++] = s->points[i].x;
+ pts[o++] = s->points[i].y * top_type;
+ pts[o++] = z;
+ }
+ }
+
+ if (right_type == 0) {
+ pts[o++] = resolution;
+ pts[o++] = resolution;
+ pts[o++] = z;
+ } else {
+ for (i = 1; i < s->n_points; i++) {
+ pts[o++] = resolution + s->points[i].y * (-right_type);
+ pts[o++] = s->points[i].x;
+ pts[o++] = z;
+ }
+ }
+
+ if (bottom_type == 0) {
+ pts[o++] = 0;
+ pts[o++] = resolution;
+ pts[o++] = z;
+ } else {
+ for (i = 1; i < s->n_points; i++) {
+ pts[o++] = s->points[s->n_points-i-1].x;
+ pts[o++] = resolution + s->points[s->n_points-i-1].y * (-bottom_type);
+ pts[o++] = z;
+ }
+ }
+
+ if (left_type == 0) {
+ pts[o++] = 0;
+ pts[o++] = 0;
+ pts[o++] = z;
+ } else {
+ for (i = 1; i < s->n_points; i++) {
+ pts[o++] = s->points[s->n_points-i-1].y * left_type;
+ pts[o++] = s->points[s->n_points-i-1].x;
+ pts[o++] = z;
+ }
+ }
+
+ { GLfloat ss = 1.0 / resolution; glScalef (ss, ss, ss); }
+
+# ifndef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ glPolygonMode (GL_FRONT_AND_BACK, wire ? GL_LINE : GL_FILL);
+# endif
+
+ if (wire)
+ {
+ glDisable (GL_TEXTURE_2D);
+ glDisable (GL_BLEND);
+ glDisable (GL_LIGHTING);
+ }
+ else
+ {
+# ifdef HAVE_TESS
+
+# ifndef _GLUfuncptr
+# define _GLUfuncptr void(*)(void)
+# endif
+ GLUtesselator *tess = gluNewTess();
+ gluTessCallback(tess, GLU_TESS_BEGIN, (_GLUfuncptr)glBegin);
+ gluTessCallback(tess, GLU_TESS_VERTEX_DATA,(_GLUfuncptr)tess_vertex_cb);
+ gluTessCallback(tess, GLU_TESS_END, (_GLUfuncptr)glEnd);
+ gluTessCallback(tess, GLU_TESS_COMBINE, (_GLUfuncptr)tess_combine_cb);
+ gluTessCallback(tess, GLU_TESS_ERROR, (_GLUfuncptr)tess_error_cb);
+
+ /* front face */
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_BLEND);
+ glEnable (GL_LIGHTING);
+ glBindTexture(GL_TEXTURE_2D, jc->texid);
+ glFrontFace (GL_CCW);
+ glNormal3f (0, 0, 1);
+ gluTessBeginPolygon (tess, p);
+ gluTessBeginContour (tess);
+ for (i = 0; i < o; i += 3)
+ {
+ GLdouble *p = pts + i;
+ gluTessVertex (tess, p, p);
+ polys++; /* not quite right but close */
+ }
+ gluTessEndContour(tess);
+ gluTessEndPolygon(tess);
+
+ /* back face */
+ glDisable (GL_TEXTURE_2D);
+ glFrontFace (GL_CW);
+ glNormal3f (0, 0, -1);
+ gluTessBeginPolygon (tess, 0);
+ gluTessBeginContour (tess);
+ for (i = 0; i < o; i += 3)
+ {
+ GLdouble *p = pts + i;
+ p[2] = -p[2];
+ gluTessVertex (tess, p, p);
+ polys++; /* not quite right but close */
+ }
+ gluTessEndContour(tess);
+ gluTessEndPolygon(tess);
+ gluDeleteTess(tess);
+
+ /* Put it back */
+ for (i = 0; i < o; i += 3)
+ {
+ GLdouble *p = pts + i;
+ p[2] = -p[2];
+ }
+
+# else /* !HAVE_TESS */
+
+ GLfloat *tri = (GLfloat *)
+ (GLfloat *) malloc (s->n_points * 4 * 3 * 3 * sizeof(*pts));
+ GLfloat *otri = tri;
+ int count;
+ GLdouble zz;
+
+ tri += make_piece_eighth (jc, s, resolution, top_type, tri, 0, 0, 0);
+ tri += make_piece_eighth (jc, s, resolution, top_type, tri, 1, 0, 0);
+ tri += make_piece_eighth (jc, s, resolution, left_type, tri, 0, 1, 1);
+ tri += make_piece_eighth (jc, s, resolution, left_type, tri, 1, 1, 1);
+ tri += make_piece_eighth (jc, s, resolution, bottom_type, tri, 0, 1, 0);
+ tri += make_piece_eighth (jc, s, resolution, bottom_type, tri, 1, 1, 0);
+ tri += make_piece_eighth (jc, s, resolution, right_type, tri, 0, 0, 1);
+ tri += make_piece_eighth (jc, s, resolution, right_type, tri, 1, 0, 1);
+ count = (tri - otri) / 9;
+
+ if (! wire)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_BLEND);
+ glEnable (GL_LIGHTING);
+ glBindTexture(GL_TEXTURE_2D, jc->texid);
+ }
+
+ for (zz = z; zz >= -z; zz -= 2*z)
+ {
+ int i;
+ glFrontFace (zz > 0 ? GL_CCW : GL_CW);
+ glNormal3f (0, 0, (zz > 0 ? 1 : -1));
+
+ if (zz < 0)
+ glDisable (GL_TEXTURE_2D); /* back face */
+
+ glPushMatrix();
+ glTranslatef (0, 0, zz);
+
+ tri = otri;
+ if (wire)
+ {
+ for (i = 0; i < count; i++)
+ {
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (tri[0], tri[1], tri[2]); tri += 3;
+ glVertex3f (tri[0], tri[1], tri[2]); tri += 3;
+ glVertex3f (tri[0], tri[1], tri[2]); tri += 3;
+ glEnd();
+ }
+ }
+ else
+ {
+ GLfloat pw = p->jc->puzzle_width;
+ GLfloat ph = p->jc->puzzle_height;
+ GLfloat r = resolution;
+
+ glBegin (GL_TRIANGLES);
+ for (i = 0; i < count * 3; i++)
+ {
+ GLfloat x = *tri++;
+ GLfloat y = *tri++;
+ GLfloat z = *tri++;
+
+ /* 0-1 from piece origin */
+ GLfloat xx = x / r;
+ GLfloat yy = y / r;
+
+ /* 0-1 from puzzle origin */
+ GLfloat tx = (p->home.x + xx) / pw;
+ GLfloat ty = (ph - p->home.y - yy) / ph;
+
+ tx = p->jc->tex_x + (tx * p->jc->tex_width);
+ ty = p->jc->tex_y + (ty * p->jc->tex_height);
+
+ glTexCoord2f (tx, ty);
+ glVertex3f (x, y, z);
+ }
+ glEnd();
+ }
+
+ polys += count;
+ glPopMatrix();
+ }
+
+ free (otri);
+# endif /* !HAVE_TESS */
+ }
+
+ /* side faces */
+
+ glFrontFace (GL_CCW);
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < o; i += 3)
+ {
+ int j = (i+o-3) % o;
+ int k = (i+3) % o;
+ GLdouble *p = pts + i;
+ GLdouble *pj = pts + j;
+ GLdouble *pk = pts + k;
+
+ do_normal (pj[0], pj[1], pj[2],
+ pj[0], pj[1], -pj[2],
+ pk[0], pk[1], pk[2]);
+
+ glVertex3f (p[0], p[1], p[2]);
+ glVertex3f (p[0], p[1], -p[2]);
+ polys++;
+ }
+ glEnd();
+
+ if (! wire)
+ glColor3f (0.3, 0.3, 0.3);
+
+ /* outline the edges in gray */
+
+ glDisable (GL_TEXTURE_2D);
+ glDisable (GL_LIGHTING);
+ glLineWidth (jc->line_thickness);
+
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < o; i += 3)
+ glVertex3f (pts[i], pts[i+1], pts[i+2]);
+ glEnd();
+ polys += o/3;
+
+ glBegin (GL_LINE_LOOP);
+ for (i = 0; i < o; i += 3)
+ glVertex3f (pts[i], pts[i+1], -pts[i+2]);
+ glEnd();
+ polys += o/3;
+
+ free_spline (s);
+ free (pts);
+
+ return polys;
+}
+
+
+static void
+free_puzzle_grid (jigsaw_configuration *jc)
+{
+ int i;
+ for (i = 0; i < jc->puzzle_width * jc->puzzle_height; i++)
+ glDeleteLists (jc->puzzle[i].dlist, 1);
+ free (jc->puzzle);
+ jc->puzzle = 0;
+ jc->puzzle_width = 0;
+ jc->puzzle_height = 0;
+}
+
+
+static void
+make_puzzle_grid (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int x, y;
+ GLfloat size = (8 + (random() % 8)) * complexity_arg;
+
+ if (jc->puzzle)
+ free_puzzle_grid (jc);
+
+ if (wire)
+ jc->aspect = MI_WIDTH(mi) / (float) MI_HEIGHT(mi);
+
+ if (jc->aspect >= 1.0)
+ {
+ jc->puzzle_width = size;
+ jc->puzzle_height = (size + 0.5) / jc->aspect;
+ }
+ else
+ {
+ jc->puzzle_width = (size + 0.5) * jc->aspect;
+ jc->puzzle_height = size;
+ }
+
+ if (jc->puzzle_width < 1) jc->puzzle_width = 1;
+ if (jc->puzzle_height < 1) jc->puzzle_height = 1;
+
+ if (debug_p)
+ fprintf (stderr, "%s: grid %4d x %-4d (%.2f)\n", progname,
+ jc->puzzle_width, jc->puzzle_height,
+ ((float) jc->puzzle_width / jc->puzzle_height));
+
+ jc->puzzle = (puzzle_piece *)
+ calloc (jc->puzzle_width * (jc->puzzle_height+1), sizeof(*jc->puzzle));
+
+ /* Randomize the right and bottom edge of each piece.
+ Match the left edge of the piece to the right to our right edge.
+ Match the top edge of the piece to the bottom to our bottom edge.
+ */
+ for (y = 0; y < jc->puzzle_height; y++)
+ for (x = 0; x < jc->puzzle_width; x++)
+ {
+ puzzle_piece *p = &jc->puzzle [y * jc->puzzle_width + x];
+ puzzle_piece *r = &jc->puzzle [y * jc->puzzle_width + x+1];
+ puzzle_piece *b = &jc->puzzle [(y+1) * jc->puzzle_width + x];
+ p->edge[RIGHT] = (random() & 1) ? IN : OUT;
+ p->edge[BOTTOM] = (random() & 1) ? IN : OUT;
+ r->edge[LEFT] = p->edge[RIGHT] == IN ? OUT : IN;
+ b->edge[TOP] = p->edge[BOTTOM] == IN ? OUT : IN;
+ }
+
+ /* tell each piece where it belongs. */
+ for (y = 0; y < jc->puzzle_height; y++)
+ for (x = 0; x < jc->puzzle_width; x++)
+ {
+ puzzle_piece *p = &jc->puzzle [y * jc->puzzle_width + x];
+ p->jc = jc;
+ p->home.x = x;
+ p->home.y = y;
+ p->current = p->home;
+
+ /* make sure the outer border is flat */
+ if (p->home.x == 0) p->edge[LEFT] = FLAT;
+ if (p->home.y == 0) p->edge[TOP] = FLAT;
+ if (p->home.x == jc->puzzle_width-1) p->edge[RIGHT] = FLAT;
+ if (p->home.y == jc->puzzle_height-1) p->edge[BOTTOM] = FLAT;
+
+ /* generate the polygons */
+ p->dlist = glGenLists (1);
+ check_gl_error ("generating lists");
+ if (p->dlist <= 0) abort();
+
+ glNewList (p->dlist, GL_COMPILE);
+ p->polys += draw_piece (jc, p,
+ resolution_arg, thickness_arg,
+ p->edge[TOP], p->edge[RIGHT],
+ p->edge[BOTTOM], p->edge[LEFT],
+ wire);
+ glEndList();
+ }
+}
+
+
+static void shuffle_grid (ModeInfo *mi);
+
+
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ ModeInfo *mi = (ModeInfo *) closure;
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+
+ jc->tex_x = geometry->x / (float) texture_width;
+ jc->tex_y = geometry->y / (float) texture_height;
+ jc->tex_width = geometry->width / (float) texture_width;
+ jc->tex_height = geometry->height / (float) texture_height;
+ jc->aspect = geometry->width / (float) geometry->height;
+
+ if (debug_p)
+ {
+ fprintf (stderr, "%s: image %s\n", progname,
+ (filename ? filename : "(null)"));
+ fprintf (stderr, "%s: image %4d x %-4d + %4d + %-4d (%.2f)\n", progname,
+ geometry->width, geometry->height, geometry->x, geometry->y,
+ (float) geometry->width / geometry->height);
+ fprintf (stderr, "%s: tex %4d x %-4d\n", progname,
+ texture_width, texture_height);
+ fprintf (stderr, "%s: tex %4.2f x %4.2f + %4.2f + %4.2f (%.2f)\n",
+ progname,
+ jc->tex_width, jc->tex_height, jc->tex_x, jc->tex_y,
+ (jc->tex_width / jc->tex_height) *
+ (texture_width / texture_height));
+ }
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ make_puzzle_grid (mi);
+}
+
+
+static void
+load_image (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ load_texture_async (mi->xgwa.screen, mi->window,
+ *jc->glx_context, 0, 0,
+ False, jc->texid,
+ image_loaded_cb, mi);
+}
+
+
+/* Whether the two pieces are the same shape, when the second piece
+ is rotated by the given degrees.
+ */
+static Bool
+same_shape (puzzle_piece *p0, puzzle_piece *p1, int rotated_by)
+{
+ switch (rotated_by)
+ {
+ case 0:
+ return (p0->edge[0] == p1->edge[0] &&
+ p0->edge[1] == p1->edge[1] &&
+ p0->edge[2] == p1->edge[2] &&
+ p0->edge[3] == p1->edge[3]);
+ case 90:
+ return (p0->edge[0] == p1->edge[1] &&
+ p0->edge[1] == p1->edge[2] &&
+ p0->edge[2] == p1->edge[3] &&
+ p0->edge[3] == p1->edge[0]);
+ case 180:
+ return (p0->edge[0] == p1->edge[2] &&
+ p0->edge[1] == p1->edge[3] &&
+ p0->edge[2] == p1->edge[0] &&
+ p0->edge[3] == p1->edge[1]);
+ case 270:
+ return (p0->edge[0] == p1->edge[3] &&
+ p0->edge[1] == p1->edge[0] &&
+ p0->edge[2] == p1->edge[1] &&
+ p0->edge[3] == p1->edge[2]);
+ default:
+ abort();
+ }
+}
+
+
+/* Returns the proper rotation for the piece at the given position.
+ */
+static int
+proper_rotation (jigsaw_configuration *jc, puzzle_piece *p,
+ double x, double y)
+{
+ puzzle_piece *p1;
+ int cx = x;
+ int cy = y;
+ if (cx != x) abort(); /* must be in integral position! */
+ if (cy != y) abort();
+ p1 = &jc->puzzle [cy * jc->puzzle_width + cx];
+ if (same_shape (p, p1, 0)) return 0;
+ if (same_shape (p, p1, 90)) return 90;
+ if (same_shape (p, p1, 180)) return 180;
+ if (same_shape (p, p1, 270)) return 270;
+ abort(); /* these two pieces don't match in any rotation! */
+}
+
+
+/* Returns the piece currently at the given position.
+ */
+static puzzle_piece *
+piece_at (jigsaw_configuration *jc, double x, double y)
+{
+ int npieces = jc->puzzle_width * jc->puzzle_height;
+ int i;
+ int cx = x;
+ int cy = y;
+ if (cx != x) abort(); /* must be in integral position! */
+ if (cy != y) abort();
+
+ for (i = 0; i < npieces; i++)
+ {
+ puzzle_piece *p = &jc->puzzle [i];
+ if (p->current.x == cx &&
+ p->current.y == cy)
+ return p;
+ }
+ abort(); /* no piece at that position? */
+}
+
+
+static void
+shuffle_grid (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int max_tries = jc->puzzle_width * jc->puzzle_height;
+ int npieces = jc->puzzle_width * jc->puzzle_height;
+ int i;
+
+ for (i = 0; i < npieces; i++)
+ {
+ puzzle_piece *p0 = &jc->puzzle [i];
+ puzzle_piece *p1 = 0;
+ int k;
+
+ for (k = 0; k < max_tries; k++)
+ {
+ p1 = &jc->puzzle [random() % npieces];
+ if (same_shape (p0, p1, 0)) break;
+ if (same_shape (p0, p1, 90)) break;
+ if (same_shape (p0, p1, 180)) break;
+ if (same_shape (p0, p1, 270)) break;
+ p1 = 0; /* mismatch */
+ }
+ if (p1 && p0 != p1)
+ {
+ XYZR s;
+ s = p0->current; p0->current = p1->current; p1->current = s;
+ p0->current.r =
+ proper_rotation (jc, p0, p0->current.x, p0->current.y);
+ p1->current.r =
+ proper_rotation (jc, p1, p1->current.x, p1->current.y);
+ }
+ }
+}
+
+
+/* We tend to accumulate floating point errors, e.g., z being 0.000001
+ after a move. This makes sure float values that should be integral are.
+ */
+static void
+smooth_grid (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int npieces = jc->puzzle_width * jc->puzzle_height;
+ int i;
+
+ for (i = 0; i < npieces; i++)
+ {
+ puzzle_piece *p = &jc->puzzle [i];
+# define SMOOTH(P) \
+ P.x = (int) (P.x + 0.5); \
+ P.y = (int) (P.y + 0.5); \
+ P.z = (int) (P.z + 0.5); \
+ P.r = (int) (P.r + 0.5)
+ SMOOTH(p->home);
+ SMOOTH(p->current);
+ SMOOTH(p->from);
+ SMOOTH(p->to);
+ if (p->tick <= 0.0001) p->tick = 0.0;
+ if (p->tick >= 0.9999) p->tick = 1.0;
+ }
+}
+
+
+static void
+begin_scatter (ModeInfo *mi, Bool unscatter_p)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int npieces = jc->puzzle_width * jc->puzzle_height;
+ int i;
+ XYZR ctr = { 0, };
+ ctr.x = jc->puzzle_width / 2;
+ ctr.y = jc->puzzle_height / 2;
+
+ for (i = 0; i < npieces; i++)
+ {
+ puzzle_piece *p = &jc->puzzle [i];
+ XYZ a;
+ double d, r, th;
+ p->tick = -frand(1.0);
+ p->from = p->current;
+
+ a.x = p->from.x - ctr.x; /* position relative to center */
+ a.y = p->from.y - ctr.y;
+
+ r = sqrt (a.x*a.x + a.y*a.y);
+ th = atan2 (a.x, a.y);
+
+ d = MAX (jc->puzzle_width, jc->puzzle_height) * 2;
+ r = r*r + d;
+
+ p->to.x = ctr.x + (r * sin (th));
+ p->to.y = ctr.y + (r * cos (th));
+ p->to.z = p->from.z;
+ p->to.r = ((int) p->from.r + (random() % 180)) % 360;
+ p->arc_height = frand(10.0);
+
+ if (unscatter_p)
+ {
+ XYZR s = p->to; p->to = p->from; p->from = s;
+ p->current = p->from;
+ }
+ }
+}
+
+
+static Bool
+solved_p (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int npieces = jc->puzzle_width * jc->puzzle_height;
+ int i;
+
+ for (i = 0; i < npieces; i++)
+ {
+ puzzle_piece *p = &jc->puzzle [i];
+ if (p->current.x != p->home.x ||
+ p->current.y != p->home.y ||
+ p->current.z != p->home.z)
+ return False;
+ }
+ return True;
+}
+
+
+static void
+move_one_piece (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int npieces = jc->puzzle_width * jc->puzzle_height;
+ int i;
+
+ for (i = 0; i < npieces * 100; i++) /* shouldn't take that long */
+ {
+ int i = random() % npieces;
+ puzzle_piece *p0 = &jc->puzzle [i];
+ puzzle_piece *p1;
+
+ if (p0->current.x == p0->home.x &&
+ p0->current.y == p0->home.y &&
+ p0->current.z == p0->home.z)
+ continue; /* piece already solved - try again */
+
+ /* swap with the piece occupying p0's home cell. */
+ p1 = piece_at (jc, p0->home.x, p0->home.y);
+
+ if (p0 == p1) abort(); /* should have caught this above */
+
+ p0->tick = 0;
+ p0->from = p0->current;
+ p0->to = p1->current;
+ p0->to.r = proper_rotation (jc, p0, p0->to.x, p0->to.y);
+
+ p1->tick = 0;
+ p1->from = p1->current;
+ p1->to = p0->current;
+ p1->to.r = proper_rotation (jc, p1, p1->to.x, p1->to.y);
+
+ /* Try to avoid having them intersect each other in the air. */
+ p0->arc_height = 0;
+ p1->arc_height = 0;
+ while (fabs (p0->arc_height - p1->arc_height) < 1.5)
+ {
+ p0->arc_height = 0.5 + frand(3.0);
+ p1->arc_height = 1.0 + frand(3.0);
+ }
+
+# define RTILT(V) \
+ V = 90 - BELLRAND(180); \
+ if (! (random() % 5)) V *= 2; \
+ if (! (random() % 5)) V *= 2; \
+ if (! (random() % 5)) V *= 2
+ RTILT (p0->max_tilt);
+ RTILT (p1->max_tilt);
+# undef RTILT
+
+ if (debug_p)
+ fprintf (stderr, "%s: swapping %2d,%-2d with %2d,%d\n", progname,
+ (int) p0->from.x, (int) p0->from.y,
+ (int) p1->from.x, (int) p1->from.y);
+ return;
+ }
+
+ abort(); /* infinite loop! */
+}
+
+
+static Bool
+anim_tick (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int npieces = jc->puzzle_width * jc->puzzle_height;
+ int i;
+ Bool finished_p = True;
+
+ if (jc->pausing > 0)
+ {
+ jc->pausing -= jc->tick_speed * speed;
+ if (debug_p && jc->pausing <= 0)
+ fprintf (stderr, "%s: (done pausing)\n", progname);
+ return False;
+ }
+
+ for (i = 0; i < npieces; i++)
+ {
+ puzzle_piece *p = &jc->puzzle [i];
+ double tt;
+
+ if (p->tick >= 1.0) continue; /* this piece is done */
+ finished_p = False; /* not done */
+
+ p->tick += jc->tick_speed * speed;
+ if (p->tick > 1.0) p->tick = 1.0;
+
+ if (p->tick < 0.0) continue; /* not yet started */
+
+ tt = 1 - sin (M_PI/2 - p->tick * M_PI/2);
+
+ p->current.x = p->from.x + ((p->to.x - p->from.x) * tt);
+ p->current.y = p->from.y + ((p->to.y - p->from.y) * tt);
+ p->current.z = p->from.z + ((p->to.z - p->from.z) * tt);
+ p->current.r = p->from.r + ((p->to.r - p->from.r) * tt);
+
+ p->current.z += p->arc_height * sin (p->tick * M_PI);
+
+ p->tilt = p->max_tilt * sin (p->tick * M_PI);
+
+ }
+
+ return finished_p;
+}
+
+
+static void
+loading_msg (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ const char *text = "Loading...";
+ XCharStruct e;
+ int w, h;
+ texture_string_metrics (jc->texfont, text, &e, 0, 0);
+ w = e.width;
+ h = e.ascent + e.descent;
+
+ if (wire) return;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (! jc->loading_dlist)
+ {
+ GLfloat othick = jc->line_thickness;
+ puzzle_piece P = { 0, };
+ P.jc = jc;
+ jc->loading_dlist = glGenLists (1);
+ glNewList (jc->loading_dlist, GL_COMPILE);
+ jc->line_thickness = 1;
+ draw_piece (jc, &P,
+ resolution_arg, thickness_arg,
+ OUT, OUT, IN, OUT, True);
+ jc->line_thickness = othick;
+ glEndList();
+ }
+
+ glColor3f (0.2, 0.2, 0.4);
+
+ glPushMatrix();
+ {
+ double x, y, z;
+ get_position (jc->rot, &x, &y, &z, True);
+ glRotatef (x * 360, 1, 0, 0);
+ glRotatef (y * 360, 0, 1, 0);
+ glRotatef (z * 360, 0, 0, 1);
+ glScalef (5, 5, 5);
+ glTranslatef (-0.5, -0.5, 0);
+ glCallList (jc->loading_dlist);
+ }
+ glPopMatrix();
+
+ glColor3f (0.7, 0.7, 1);
+
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+ {
+ double rot = current_device_rotation();
+ glRotatef(rot, 0, 0, 1);
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+ glScalef (s, 1/s, 1);
+ }
+ }
+
+ glOrtho(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi), -1, 1);
+ glTranslatef ((MI_WIDTH(mi) - w) / 2,
+ (MI_HEIGHT(mi) - h) / 2,
+ 0);
+ glEnable (GL_TEXTURE_2D);
+ glPolygonMode (GL_FRONT, GL_FILL);
+ glDisable (GL_LIGHTING);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ print_texture_string (jc->texfont, text);
+ glEnable (GL_DEPTH_TEST);
+ glPopMatrix();
+
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ glMatrixMode(GL_MODELVIEW);
+}
+
+
+static void
+animate (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ double slow = 0.01;
+ double fast = 0.04;
+
+ if (jc->button_down_p && jc->state != PUZZLE_LOADING_MSG)
+ return;
+
+ switch (jc->state)
+ {
+ case PUZZLE_LOADING_MSG:
+ if (! jc->puzzle)
+ loading_msg (mi);
+ /* fall through */
+
+ case PUZZLE_LOADING:
+ if (!jc->puzzle) break; /* still loading */
+ jc->tick_speed = slow;
+ shuffle_grid (mi);
+ smooth_grid (mi);
+ begin_scatter (mi, True);
+ jc->pausing = 0;
+ jc->state = PUZZLE_UNSCATTER;
+ if (debug_p) fprintf (stderr, "%s: unscattering\n", progname);
+ break;
+
+ case PUZZLE_UNSCATTER:
+ jc->tick_speed = slow;
+ if (anim_tick (mi))
+ {
+ smooth_grid (mi);
+ jc->pausing = 1.0;
+ jc->state = PUZZLE_SOLVE;
+ if (debug_p) fprintf (stderr, "%s: solving\n", progname);
+ }
+ break;
+
+ case PUZZLE_SOLVE:
+ jc->tick_speed = fast;
+ if (anim_tick (mi))
+ {
+ smooth_grid (mi);
+ if (solved_p (mi))
+ {
+ if (debug_p) fprintf (stderr, "%s: solved!\n", progname);
+ begin_scatter (mi, False);
+ jc->state = PUZZLE_SCATTER;
+ jc->pausing = 3.0;
+ if (debug_p) fprintf (stderr, "%s: scattering\n", progname);
+ }
+ else
+ {
+ move_one_piece (mi);
+ jc->pausing = 0.3;
+ }
+ }
+ break;
+
+ case PUZZLE_SCATTER:
+ jc->tick_speed = slow;
+ if (anim_tick (mi))
+ {
+ free_puzzle_grid (jc);
+ load_image (mi);
+ jc->state = PUZZLE_LOADING;
+ jc->pausing = 1.0;
+ if (debug_p) fprintf (stderr, "%s: loading\n", progname);
+ }
+ break;
+
+ default:
+ abort();
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_jigsaw (ModeInfo *mi, int width, int height)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ jc->line_thickness = (MI_IS_WIREFRAME (mi) ? 1 : MAX (1, height / 300.0));
+}
+
+
+ENTRYPOINT Bool
+jigsaw_handle_event (ModeInfo *mi, XEvent *event)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, jc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &jc->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ begin_scatter (mi, False);
+ jc->state = PUZZLE_SCATTER;
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_jigsaw (ModeInfo *mi)
+{
+ jigsaw_configuration *jc;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, sps);
+ jc = &sps[MI_SCREEN(mi)];
+ jc->glx_context = init_GL(mi);
+
+ reshape_jigsaw (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.05, 0.07, 1.00, 0.0};
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ jc->trackball = gltrackball_init (False);
+ jc->rot = make_rotator (0, 0, 0, 0, speed * 0.002, True);
+ jc->texfont = load_texture_font (MI_DISPLAY(mi), "font");
+
+ jc->state = PUZZLE_LOADING_MSG;
+
+ resolution_arg /= complexity_arg;
+
+# ifndef HAVE_TESS
+ /* If it's not even, we get crosses. */
+ if (resolution_arg & 1)
+ resolution_arg++;
+# endif /* !HAVE_TESS */
+
+ if (wire)
+ make_puzzle_grid (mi);
+ else
+ load_image (mi);
+}
+
+
+ENTRYPOINT void
+draw_jigsaw (ModeInfo *mi)
+{
+ jigsaw_configuration *jc = &sps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (!jc->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(jc->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ mi->polygon_count = 0;
+
+ glPushMatrix ();
+/* glRotatef(current_device_rotation(), 0, 0, 1); */
+ gltrackball_rotate (jc->trackball);
+
+ animate (mi);
+
+ if (wobble_p && jc->puzzle)
+ {
+ double x, y, z;
+ double max = 60;
+ get_position (jc->rot, &x, &y, &z, !jc->button_down_p);
+ x = 1; /* always lean back */
+ glRotatef (max/2 - x*max, 1, 0, 0);
+ glRotatef (max/2 - z*max, 0, 1, 0);
+ }
+
+ if (jc->puzzle)
+ {
+ GLfloat s = 14.0 / jc->puzzle_height;
+ int x, y;
+
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_LINE_SMOOTH);
+
+ glScalef (s, s, s);
+ glTranslatef (-jc->puzzle_width / 2.0, -jc->puzzle_height / 2.0, 0);
+
+ if (! wire)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_BLEND);
+ glEnable (GL_LIGHTING);
+ glEnable (GL_LIGHT0);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ for (y = 0; y < jc->puzzle_height; y++)
+ for (x = 0; x < jc->puzzle_width; x++)
+ {
+ puzzle_piece *p = &jc->puzzle [y * jc->puzzle_width + x];
+ glPushMatrix();
+ glTranslatef (p->current.x, p->current.y, p->current.z);
+ glTranslatef (0.5, 0.5, 0);
+ glRotatef (p->current.r, 0, 0, 1);
+ glRotatef (p->tilt, 0, 1, 0);
+ glTranslatef (-0.5, -0.5, 0);
+ glCallList(p->dlist);
+ mi->polygon_count += p->polys;
+ glPopMatrix();
+ }
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Jigsaw", jigsaw)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/jigsaw.man b/hacks/glx/jigsaw.man
new file mode 100644
index 0000000..c7d3493
--- /dev/null
+++ b/hacks/glx/jigsaw.man
@@ -0,0 +1,90 @@
+.TH XScreenSaver 1 "25-Aug-2008" "X Version 11"
+.SH NAME
+jigsaw - permute an image like a jigsaw puzzle
+.SH SYNOPSIS
+.B jigsaw
+[\-display \fIhost:display.screen\fP]
+[\-delay \fIusecs\fP]
+[\-speed \fIratio\fP]
+[\-complexity \fIratio\fP]
+[\-resolution \fIint\fP]
+[\-thickness \fIfloat\fP]
+[\-no\-wobble]
+[\-fps]
+.SH DESCRIPTION
+The \fIjigsaw\fP program loads an image, carves it up into
+a jigsaw puzzle, shuffles it, and then solves it.
+
+The image that it manipulates will be grabbed from the portion of
+the screen underlying the window, or from the system's video input,
+or from a random file on disk, as indicated by
+the \fIgrabDesktopImages\fP, \fIgrabVideoFrames\fP,
+and \fIchooseRandomImages\fP options in the \fI~/.xscreensaver\fP
+file; see
+.BR xscreensaver-demo (1)
+for more details.
+.SH OPTIONS
+.I jigsaw
+accepts the following options:
+.TP 8
+.B \-delay \fImicroseconds\fP
+How long to wait between animation frames; default 20000.
+.TP 8
+.B \-speed \fIratio\fP
+Less than 1 for slower, greater than 1 for faster. Default 1.
+.TP 8
+.B \-complexity \fIratio\fP
+Less than 1 for simpler puzzles (fewer pieces), greater than 1 for
+more complex puzzles (more pieces). Default 1.
+.TP 8
+.B \-resolution \fIratio\fP
+Smoothness of the edges of the pieces. Less than 1 for rougher pieces
+(fewer polygons), greater than 1 for more smoother pieces (more polygons).
+Default 1.
+.TP 8
+.B \-thickness \fIfloat\fP
+Thickness of the puzzle pieces (relative to their width).
+Default 0.06.
+.TP 8
+.B \-no\-wobble
+Keep the display stationary instead of very slowly wobbling back and forth.
+.TP 8
+.B \-fps
+Display the current frame rate, polygon count, and CPU load.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 1997 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>, 25-Nov-97.
diff --git a/hacks/glx/juggler3d.c b/hacks/glx/juggler3d.c
new file mode 100644
index 0000000..0315029
--- /dev/null
+++ b/hacks/glx/juggler3d.c
@@ -0,0 +1,3022 @@
+/* juggle, Copyright (c) 1996-2009 Tim Auckland <tda10.geo@yahoo.com>
+ * and Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * NOTE: this program was originally called "juggle" and was 2D Xlib.
+ * There was another program called "juggler3d" that was OpenGL.
+ * In 2009, jwz converted "juggle" to OpenGL and renamed
+ * "juggle" to "juggler3d". The old "juggler3d" hack is gone.
+ *
+ * Revision History
+ * 09-Aug-2009: jwz: converted from Xlib to OpenGL.
+ * 13-Dec-2004: [TDA] Use -cycles and -count in a rational manner.
+ * Add -rings, -bballs. Add -describe. Finally made
+ * live pattern updates possible. Add refill_juggle(),
+ * change_juggle() and reshape_juggle(). Make
+ * init_juggle() non-destructive. Reorder erase/draw
+ * operations. Update xscreensaver xml and manpage.
+ * 15-Nov-2004: [TDA] Fix all memory leaks.
+ * 12-Nov-2004: [TDA] Add -torches and another new trail
+ * implementation, so that different objects can have
+ * different length trails.
+ * 11-Nov-2004: [TDA] Clap when all the balls are in the air.
+ * 10-Nov-2004: [TDA] Display pattern name converted to hight
+ * notation.
+ * 31-Oct-2004: [TDA] Add -clubs and new trail implementation.
+ * 02-Sep-2003: Non-real time to see what is happening without a
+ * strobe effect for slow machines.
+ * 01-Nov-2000: Allocation checks
+ * 1996: Written
+ */
+
+/*-
+ * TODO
+ * Implement the anonymously promised -uni option.
+ */
+
+
+/*
+ * Notes on Adam Chalcraft Juggling Notation (used by permission)
+ * a-> Adam's notation s-> Site swap (Cambridge) notation
+ *
+ * To define a map from a-notation to s-notation ("site-swap"), both
+ * of which look like doubly infinite sequences of natural numbers. In
+ * s-notation, there is a restriction on what is allowed, namely for
+ * the sequence s_n, the associated function f(n)=n+s_n must be a
+ * bijection. In a-notation, there is no restriction.
+ *
+ * To go from a-notation to s-notation, you start by mapping each a_n
+ * to a permutation of N, the natural numbers.
+ *
+ * 0 -> the identity
+ * 1 -> (10) [i.e. f(1)=0, f(0)=1]
+ * 2 -> (210) [i.e. f(2)=1, f(1)=0, f(0)=2]
+ * 3 -> (3210) [i.e. f(3)=2, f(2)=1, f(1)=0, f(0)=3]
+ * etc.
+ *
+ * Then for each n, you look at how long 0 takes to get back to 0
+ * again and you call this t_n. If a_n=0, for example, then since the
+ * identity leaves 0 alone, it gets back to 0 in 1 step, so t_n=1. If
+ * a_n=1, then f(0)=1. Now any further a_n=0 leave 1 alone, but the
+ * next a_n>0 sends 1 back to 0. Hence t_n is 2 + the number of 0's
+ * following the 1. Finally, set s_n = t_n - 1.
+ *
+ * To give some examples, it helps to have a notation for cyclic
+ * sequences. By (123), for example, I mean ...123123123123... . Now
+ * under the a-notation -> s-notation mapping we have some familiar
+ * examples:
+ *
+ * (0)->(0), (1)->(1), (2)->(2) etc.
+ * (21)->(31), (31)->(51), (41)->(71) etc.
+ * (10)->(20), (20)->(40), (30)->(60) etc.
+ * (331)->(441), (312)->(612), (303)->(504), (321)->(531)
+ * (43)->(53), (434)->(534), (433)->(633)
+ * (552)->(672)
+ *
+ * In general, the number of balls is the *average* of the s-notation,
+ * and the *maximum* of the a-notation. Another theorem is that the
+ * minimum values in the a-notation and the s-notation and equal, and
+ * preserved in the same positions.
+ *
+ * The usefulness of a-notation is the fact that there are no
+ * restrictions on what is allowed. This makes random juggle
+ * generation much easier. It also makes enumeration very
+ * easy. Another handy feature is computing changes. Suppose you can
+ * do (5) and want a neat change up to (771) in s-notation [Mike Day
+ * actually needed this example!]. Write them both in a-notation,
+ * which gives (5) and (551). Now concatenate them (in general, there
+ * may be more than one way to do this, but not in this example), to
+ * get
+ *
+ * ...55555555551551551551551...
+ *
+ * Now convert back to s-notation, to get
+ *
+ * ...55555566771771771771771...
+ *
+ * So the answer is to do two 6 throws and then go straight into
+ * (771). Coming back down of course,
+ *
+ * ...5515515515515515555555555...
+ *
+ * converts to
+ *
+ * ...7717717717716615555555555...
+ *
+ * so the answer is to do a single 661 and then drop straight down to
+ * (5).
+ *
+ * [The number of balls in the generated pattern occasionally changes.
+ * In order to decrease the number of balls I had to introduce a new
+ * symbol into the Adam notation, [*] which means 'lose the current
+ * ball'.]
+ */
+
+/* This code uses so many linked lists it's worth having a built-in
+ * leak-checker */
+#undef MEMTEST
+
+# define DEFAULTS "*delay: 10000 \n" \
+ "*count: 200 \n" \
+ "*cycles: 1000 \n" \
+ "*ncolors: 32 \n" \
+ "*titleFont: -*-helvetica-bold-r-normal-*-*-180-*-*-*-*-*-*\n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define release_juggle 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "sphere.h"
+#include "tube.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "texfont.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_PATTERN "random" /* All patterns */
+#define DEF_TAIL "1" /* No trace */
+#ifdef UNI
+/* Maybe a ROLA BOLA would be at a better angle for viewing */
+#define DEF_UNI "False" /* No unicycle */ /* Not implemented yet */
+#endif
+#define DEF_REAL "True"
+#define DEF_DESCRIBE "True"
+
+#define DEF_BALLS "True" /* Use Balls */
+#define DEF_CLUBS "True" /* Use Clubs */
+#define DEF_TORCHES "True" /* Use Torches */
+#define DEF_KNIVES "True" /* Use Knives */
+#define DEF_RINGS "True" /* Use Rings */
+#define DEF_BBALLS "True" /* Use Bowling Balls */
+
+static char *pattern;
+static int tail;
+#ifdef UNI
+static Bool uni;
+#endif
+static Bool real;
+static Bool describe;
+static Bool balls;
+static Bool clubs;
+static Bool torches;
+static Bool knives;
+static Bool rings;
+static Bool bballs;
+static char *only;
+
+static XrmOptionDescRec opts[] = {
+ {"-pattern", ".juggle.pattern", XrmoptionSepArg, NULL },
+ {"-tail", ".juggle.tail", XrmoptionSepArg, NULL },
+#ifdef UNI
+ {"-uni", ".juggle.uni", XrmoptionNoArg, "on" },
+ {"+uni", ".juggle.uni", XrmoptionNoArg, "off" },
+#endif
+ {"-real", ".juggle.real", XrmoptionNoArg, "on" },
+ {"+real", ".juggle.real", XrmoptionNoArg, "off" },
+ {"-describe", ".juggle.describe", XrmoptionNoArg, "on" },
+ {"+describe", ".juggle.describe", XrmoptionNoArg, "off" },
+ {"-balls", ".juggle.balls", XrmoptionNoArg, "on" },
+ {"+balls", ".juggle.balls", XrmoptionNoArg, "off" },
+ {"-clubs", ".juggle.clubs", XrmoptionNoArg, "on" },
+ {"+clubs", ".juggle.clubs", XrmoptionNoArg, "off" },
+ {"-torches", ".juggle.torches", XrmoptionNoArg, "on" },
+ {"+torches", ".juggle.torches", XrmoptionNoArg, "off" },
+ {"-knives", ".juggle.knives", XrmoptionNoArg, "on" },
+ {"+knives", ".juggle.knives", XrmoptionNoArg, "off" },
+ {"-rings", ".juggle.rings", XrmoptionNoArg, "on" },
+ {"+rings", ".juggle.rings", XrmoptionNoArg, "off" },
+ {"-bballs", ".juggle.bballs", XrmoptionNoArg, "on" },
+ {"+bballs", ".juggle.bballs", XrmoptionNoArg, "off" },
+ {"-only", ".juggle.only", XrmoptionSepArg, NULL },
+};
+
+static argtype vars[] = {
+ { &pattern, "pattern", "Pattern", DEF_PATTERN, t_String },
+ { &tail, "tail", "Tail", DEF_TAIL, t_Int },
+#ifdef UNI
+ { &uni, "uni", "Uni", DEF_UNI, t_Bool },
+#endif
+ { &real, "real", "Real", DEF_REAL, t_Bool },
+ { &describe, "describe", "Describe", DEF_DESCRIBE, t_Bool },
+ { &balls, "balls", "Clubs", DEF_BALLS, t_Bool },
+ { &clubs, "clubs", "Clubs", DEF_CLUBS, t_Bool },
+ { &torches, "torches", "Torches", DEF_TORCHES, t_Bool },
+ { &knives, "knives", "Knives", DEF_KNIVES, t_Bool },
+ { &rings, "rings", "Rings", DEF_RINGS, t_Bool },
+ { &bballs, "bballs", "BBalls", DEF_BBALLS, t_Bool },
+ { &only, "only", "BBalls", " ", t_String },
+};
+
+static OptionStruct desc[] =
+{
+ { "-pattern string", "Cambridge Juggling Pattern" },
+ { "-tail num", "Trace Juggling Patterns" },
+#ifdef UNI
+ { "-/+uni", "Unicycle" },
+#endif
+ { "-/+real", "Real-time" },
+ { "-/+describe", "turn on/off pattern descriptions." },
+ { "-/+balls", "turn on/off Balls." },
+ { "-/+clubs", "turn on/off Clubs." },
+ { "-/+torches", "turn on/off Flaming Torches." },
+ { "-/+knives", "turn on/off Knives." },
+ { "-/+rings", "turn on/off Rings." },
+ { "-/+bballs", "turn on/off Bowling Balls." },
+ { "-only", "Turn off all objects but the named one." },
+};
+
+ENTRYPOINT ModeSpecOpt juggle_opts =
+ {countof(opts), opts, countof(vars), vars, desc};
+
+
+/* Note: All "lengths" are scaled by sp->scale = MI_HEIGHT/480. All
+ "thicknesses" are scaled by sqrt(sp->scale) so that they are
+ proportionally thicker for smaller windows. Objects spinning out
+ of the plane (such as clubs) fake perspective by compressing their
+ horizontal coordinates by PERSPEC */
+
+/* Figure */
+#define ARMLENGTH 50
+#define ARMWIDTH ((int) (8.0 * sqrt(sp->scale)))
+#define POSE 10
+#define BALLRADIUS ARMWIDTH
+
+/* build all the models assuming a 480px high scene */
+#define SCENE_HEIGHT 480
+#define SCENE_WIDTH ((int)(SCENE_HEIGHT*(MI_WIDTH(mi)/(float)MI_HEIGHT(mi))))
+
+/*#define PERSPEC 0.4*/
+
+/* macros */
+#define GRAVITY(h, t) 4*(double)(h)/((t)*(t))
+
+/* Timing based on count. Units are milliseconds. Juggles per second
+ is: 2000 / THROW_CATCH_INTERVAL + CATCH_THROW_INTERVAL */
+
+#define THROW_CATCH_INTERVAL (sp->count)
+#define THROW_NULL_INTERVAL (sp->count * 0.5)
+#define CATCH_THROW_INTERVAL (sp->count * 0.2)
+
+/********************************************************************
+ * Trace Definitions *
+ * *
+ * These record rendering data so that a drawn object can be erased *
+ * later. Each object has its own Trace list. *
+ * *
+ ********************************************************************/
+
+typedef struct {double x, y; } DXPoint;
+typedef struct trace *TracePtr;
+typedef struct trace {
+ TracePtr next, prev;
+ double x, y;
+ double angle;
+ int divisions;
+ DXPoint dlast;
+#ifdef MEMTEST
+ char pad[1024];
+#endif
+} Trace;
+
+/*******************************************************************
+ * Object Definitions *
+ * *
+ * These describe the various types of Object that can be juggled *
+ * *
+ *******************************************************************/
+typedef int (DrawProc)(ModeInfo*, unsigned long, Trace *);
+
+static DrawProc show_ball, show_europeanclub, show_torch, show_knife;
+static DrawProc show_ring, show_bball;
+
+typedef enum {BALL, CLUB, TORCH, KNIFE, RING, BBALLS,
+ NUM_OBJECT_TYPES} ObjType;
+
+#define OBJMIXPROB 20 /* inverse of the chances of using an odd
+ object in the pattern */
+
+static const GLfloat body_color_1[4] = { 0.9, 0.7, 0.5, 1 };
+static const GLfloat body_color_2[4] = { 0.6, 0.4, 0.2, 1 };
+
+static const struct {
+ DrawProc *draw; /* Object Rendering function */
+ int handle; /* Length of object's handle */
+ int mintrail; /* Minimum trail length */
+ double cor; /* Coefficient of Restitution. perfect bounce = 1 */
+ double weight; /* Heavier objects don't get thrown as high */
+} ObjectDefs[] = {
+ { /* Ball */
+ show_ball,
+ 0,
+ 1,
+ 0.9,
+ 1.0,
+ },
+ { /* Club */
+ show_europeanclub,
+ 15,
+ 1,
+ 0.55, /* Clubs don't bounce too well */
+ 1.0,
+ },
+ { /* Torch */
+ show_torch,
+ 15,
+ 20, /* Torches need flames */
+ 0, /* Torches don't bounce -- fire risk! */
+ 1.0,
+ },
+ { /* Knife */
+ show_knife,
+ 15,
+ 1,
+ 0, /* Knives don't bounce */
+ 1.0,
+ },
+ { /* Ring */
+ show_ring,
+ 15,
+ 1,
+ 0.8,
+ 1.0,
+ },
+ { /* Bowling Ball */
+ show_bball,
+ 0,
+ 1,
+ 0.2,
+ 5.0,
+ },
+};
+
+/**************************
+ * Trajectory definitions *
+ **************************/
+
+typedef enum {HEIGHT, ADAM} Notation;
+typedef enum {Empty, Full, Ball} Throwable;
+typedef enum {LEFT, RIGHT} Hand;
+typedef enum {THROW, CATCH} Action;
+typedef enum {HAND, ELBOW, SHOULDER} Joint;
+typedef enum {ATCH, THRATCH, ACTION, LINKEDACTION,
+ PTHRATCH, BPREDICTOR, PREDICTOR} TrajectoryStatus;
+typedef struct {double a, b, c, d; } Spline;
+typedef DXPoint Arm[3];
+
+
+/* Object is an arbitrary object being juggled. Each Trajectory
+ * references an Object ("count" tracks this), and each Object is also
+ * linked into a global Objects list. Objects may include a Trace
+ * list for tracking erasures. */
+typedef struct object *ObjectPtr;
+typedef struct object {
+ ObjectPtr next, prev;
+
+ ObjType type;
+ int color;
+ int count; /* reference count */
+ Bool active; /* Object is in use */
+
+ Trace *trace;
+ int tracelen;
+ int tail;
+#ifdef MEMTEST
+ char pad[1024];
+#endif
+} Object;
+
+/* Trajectory is a segment of juggling action. A list of Trajectories
+ * defines the juggling performance. The Trajectory list goes through
+ * multiple processing steps to convert it from basic juggling
+ * notation into rendering data. */
+
+typedef struct trajectory *TrajectoryPtr;
+typedef struct trajectory {
+ TrajectoryPtr prev, next; /* for building list */
+ TrajectoryStatus status;
+
+ /* Throw */
+ char posn;
+ int height;
+ int adam;
+ char *pattern;
+ char *name;
+
+ /* Action */
+ Hand hand;
+ Action action;
+
+ /* LinkedAction */
+ int color;
+ Object *object;
+ int divisions;
+ double angle, spin;
+ TrajectoryPtr balllink;
+ TrajectoryPtr handlink;
+
+ /* PThratch */
+ double cx; /* Moving juggler */
+ double x, y; /* current position */
+ double dx, dy; /* initial velocity */
+
+ /* Predictor */
+ Throwable type;
+ unsigned long start, finish;
+ Spline xp, yp;
+
+#ifdef MEMTEST
+ char pad[1024];
+#endif
+} Trajectory;
+
+
+/*******************
+ * Pattern Library *
+ *******************/
+
+typedef struct {
+ const char * pattern;
+ const char * name;
+} patternstruct;
+
+/* List of popular patterns, in any order */
+/* Patterns should be given in Adam notation so the generator can
+ concatenate them safely. Null descriptions are ok. Height
+ notation will be displayed automatically. */
+/* Can't const this because it is qsorted. This *should* be reentrant,
+ I think... */
+static /*const*/ patternstruct portfolio[] = {
+ {"[+2 1]", /* +3 1 */ "Typical 2 ball juggler"},
+ {"[2 0]", /* 4 0 */ "2 in 1 hand"},
+ {"[2 0 1]", /* 5 0 1 */},
+ {"[+2 0 +2 0 0]" /* +5 0 +5 0 0 */},
+ {"[+2 0 1 2 2]", /* +4 0 1 2 3 */},
+ {"[2 0 1 1]", /* 6 0 1 1 */},
+
+ {"[3]", /* 3 */ "3 cascade"},
+ {"[+3]", /* +3 */ "reverse 3 cascade"},
+ {"[=3]", /* =3 */ "cascade 3 under arm"},
+ {"[&3]", /* &3 */ "cascade 3 catching under arm"},
+ {"[_3]", /* _3 */ "bouncing 3 cascade"},
+ {"[+3 x3 =3]", /* +3 x3 =3 */ "Mill's mess"},
+ {"[3 2 1]", /* 5 3 1" */},
+ {"[3 3 1]", /* 4 4 1" */},
+ {"[3 1 2]", /* 6 1 2 */ "See-saw"},
+ {"[=3 3 1 2]", /* =4 5 1 2 */},
+ {"[=3 2 2 3 1 2]", /* =6 2 2 5 1 2 */ "=4 5 1 2 stretched"},
+ {"[+3 3 1 3]", /* +4 4 1 3 */ "anemic shower box"},
+ {"[3 3 1]", /* 4 4 1 */},
+ {"[+3 2 3]", /* +4 2 3 */},
+ {"[+3 1]", /* +5 1 */ "3 shower"},
+ {"[_3 1]", /* _5 1 */ "bouncing 3 shower"},
+ {"[3 0 3 0 3]", /* 5 0 5 0 5 */ "shake 3 out of 5"},
+ {"[3 3 3 0 0]", /* 5 5 5 0 0 */ "flash 3 out of 5"},
+ {"[3 3 0]", /* 4 5 0 */ "complete waste of a 5 ball juggler"},
+ {"[3 3 3 0 0 0 0]", /* 7 7 7 0 0 0 0 */ "3 flash"},
+ {"[+3 0 +3 0 +3 0 0]", /* +7 0 +7 0 +7 0 0 */},
+ {"[3 2 2 0 3 2 0 2 3 0 2 2 0]", /* 7 3 3 0 7 3 0 3 7 0 3 3 0 */},
+ {"[3 0 2 0]", /* 8 0 4 0 */},
+ {"[_3 2 1]", /* _5 3 1 */},
+ {"[_3 0 1]", /* _8 0 1 */},
+ {"[1 _3 1 _3 0 1 _3 0]", /* 1 _7 1 _7 0 1 _7 0 */},
+ {"[_3 2 1 _3 1 2 1]", /* _6 3 1 _6 1 3 1 */},
+
+ {"[4]", /* 4 */ "4 cascade"},
+ {"[+4 3]", /* +5 3 */ "4 ball half shower"},
+ {"[4 4 2]", /* 5 5 2 */},
+ {"[+4 4 4 +4]", /* +4 4 4 +4 */ "4 columns"},
+ {"[+4 3 +4]", /* +5 3 +4 */},
+ {"[4 3 4 4]", /* 5 3 4 4 */},
+ {"[4 3 3 4]", /* 6 3 3 4 */},
+ {"[4 3 2 4", /* 6 4 2 4 */},
+ {"[+4 1]", /* +7 1 */ "4 shower"},
+ {"[4 4 4 4 0]", /* 5 5 5 5 0 */ "learning 5"},
+ {"[+4 x4 =4]", /* +4 x4 =4 */ "Mill's mess for 4"},
+ {"[+4 2 1 3]", /* +9 3 1 3 */},
+ {"[4 4 1 4 1 4]", /* 6 6 1 5 1 5, by Allen Knutson */},
+ {"[_4 _4 _4 1 _4 1]", /* _5 _6 _6 1 _5 1 */},
+ {"[_4 3 3]", /* _6 3 3 */},
+ {"[_4 3 1]", /* _7 4 1 */},
+ {"[_4 2 1]", /* _8 3 1 */},
+ {"[_4 3 3 3 0]", /* _8 4 4 4 0 */},
+ {"[_4 1 3 1]", /* _9 1 5 1 */},
+ {"[_4 1 3 1 2]", /* _10 1 6 1 2 */},
+
+ {"[5]", /* 5 */ "5 cascade"},
+ {"[_5 _5 _5 _5 _5 5 5 5 5 5]", /* _5 _5 _5 _5 _5 5 5 5 5 5 */},
+ {"[+5 x5 =5]", /* +5 x5 =5 */ "Mill's mess for 5"},
+ {"[5 4 4]", /* 7 4 4 */},
+ {"[_5 4 4]", /* _7 4 4 */},
+ {"[1 2 3 4 5 5 5 5 5]", /* 1 2 3 4 5 6 7 8 9 */ "5 ramp"},
+ {"[5 4 5 3 1]", /* 8 5 7 4 1, by Allen Knutson */},
+ {"[_5 4 1 +4]", /* _9 5 1 5 */},
+ {"[_5 4 +4 +4]", /* _8 4 +4 +4 */},
+ {"[_5 4 4 4 1]", /* _9 5 5 5 1 */},
+ {"[_5 4 4 5 1]",},
+ {"[_5 4 4 +4 4 0]", /*_10 5 5 +5 5 0 */},
+
+ {"[6]", /* 6 */ "6 cascade"},
+ {"[+6 5]", /* +7 5 */},
+ {"[6 4]", /* 8 4 */},
+ {"[+6 3]", /* +9 3 */},
+ {"[6 5 4 4]", /* 9 7 4 4 */},
+ {"[+6 5 5 5]", /* +9 5 5 5 */},
+ {"[6 0 6]", /* 9 0 9 */},
+ {"[_6 0 _6]", /* _9 0 _9 */},
+
+ {"[_7]", /* _7 */ "bouncing 7 cascade"},
+ {"[7]", /* 7 */ "7 cascade"},
+ {"[7 6 6 6 6]", /* 11 6 6 6 6 */ "Gatto's High Throw"},
+
+};
+
+
+
+typedef struct { int start; int number; } PatternIndex;
+
+struct patternindex {
+ int minballs;
+ int maxballs;
+ PatternIndex index[countof(portfolio)];
+};
+
+
+/* Jugglestruct: per-screen global data. The master Object
+ * and Trajectory lists are anchored here. */
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ double scale;
+ double cx;
+ double Gr;
+ Trajectory *head;
+ Arm arm[2][2];
+ char *pattern;
+ int count;
+ int num_balls;
+ time_t begintime; /* should make 'time' usable for at least 48 days
+ on a 32-bit machine */
+ unsigned long time; /* millisecond timer*/
+ ObjType objtypes;
+ Object *objects;
+ struct patternindex patternindex;
+ texture_font_data *font_data;
+} jugglestruct;
+
+static jugglestruct *juggles = (jugglestruct *) NULL;
+
+/*******************
+ * list management *
+ *******************/
+
+#define DUP_OBJECT(n, t) { \
+ (n)->object = (t)->object; \
+ if((n)->object != NULL) (n)->object->count++; \
+}
+
+/* t must point to an existing element. t must not be an
+ expression ending ->next or ->prev */
+#define REMOVE(t) { \
+ (t)->next->prev = (t)->prev; \
+ (t)->prev->next = (t)->next; \
+ free(t); \
+}
+
+/* t receives element to be created and added to the list. ot must
+ point to an existing element or be identical to t to start a new
+ list. Applicable to Trajectories, Objects and Traces. */
+#define ADD_ELEMENT(type, t, ot) \
+ if (((t) = (type*)calloc(1,sizeof(type))) != NULL) { \
+ (t)->next = (ot)->next; \
+ (t)->prev = (ot); \
+ (ot)->next = (t); \
+ (t)->next->prev = (t); \
+ }
+
+static void
+object_destroy(Object* o)
+{
+ if(o->trace != NULL) {
+ while(o->trace->next != o->trace) {
+ Trace *s = o->trace->next;
+ REMOVE(s); /* Don't eliminate 's' */
+ }
+ free(o->trace);
+ }
+ REMOVE(o);
+}
+
+static void
+trajectory_destroy(Trajectory *t) {
+ if(t->name != NULL) free(t->name);
+ if(t->pattern != NULL) free(t->pattern);
+ /* Reduce object link count and call destructor if necessary */
+ if(t->object != NULL && --t->object->count < 1 && t->object->tracelen == 0) {
+ object_destroy(t->object);
+ }
+ REMOVE(t); /* Unlink and free */
+}
+
+ENTRYPOINT void
+free_juggle(ModeInfo *mi) {
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+
+ if (sp->head != NULL) {
+ while (sp->head->next != sp->head) {
+ trajectory_destroy(sp->head->next);
+ }
+ free(sp->head);
+ sp->head = (Trajectory *) NULL;
+ }
+ if(sp->objects != NULL) {
+ while (sp->objects->next != sp->objects) {
+ object_destroy(sp->objects->next);
+ }
+ free(sp->objects);
+ sp->objects = (Object*)NULL;
+ }
+ if(sp->pattern != NULL) {
+ free(sp->pattern);
+ sp->pattern = NULL;
+ }
+}
+
+static Bool
+add_throw(ModeInfo *mi, char type, int h, Notation n, const char* name)
+{
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ Trajectory *t;
+
+ ADD_ELEMENT(Trajectory, t, sp->head->prev);
+ if(t == NULL){ /* Out of Memory */
+ free_juggle(mi);
+ return False;
+ }
+ t->object = NULL;
+ if(name != NULL)
+ t->name = strdup(name);
+ t->posn = type;
+ if (n == ADAM) {
+ t->adam = h;
+ t->height = 0;
+ t->status = ATCH;
+ } else {
+ t->height = h;
+ t->status = THRATCH;
+ }
+ return True;
+}
+
+/* add a Thratch to the performance */
+static Bool
+program(ModeInfo *mi, const char *patn, const char *name, int cycles)
+{
+ const char *p;
+ int w, h, i, seen;
+ Notation notation;
+ char type;
+
+ if (MI_IS_VERBOSE(mi)) {
+ (void) fprintf(stderr, "juggle[%d]: Programmed: %s x %d\n",
+ MI_SCREEN(mi), (name == NULL) ? patn : name, cycles);
+ }
+
+ for(w=i=0; i < cycles; i++, w++) { /* repeat until at least "cycles" throws
+ have been programmed */
+ /* title is the pattern name to be supplied to the first throw of
+ a sequence. If no name if given, use an empty title so that
+ the sequences are still delimited. */
+ const char *title = (name != NULL)? name : "";
+ type=' ';
+ h = 0;
+ seen = 0;
+ notation = HEIGHT;
+ for(p=patn; *p; p++) {
+ if (*p >= '0' && *p <='9') {
+ seen = 1;
+ h = 10*h + (*p - '0');
+ } else {
+ Notation nn = notation;
+ switch (*p) {
+ case '[': /* begin Adam notation */
+ notation = ADAM;
+ break;
+ case '-': /* Inside throw */
+ type = ' ';
+ break;
+ case '+': /* Outside throw */
+ case '=': /* Cross throw */
+ case '&': /* Cross catch */
+ case 'x': /* Cross throw and catch */
+ case '_': /* Bounce */
+ case 'k': /* Kickup */
+ type = *p;
+ break;
+ case '*': /* Lose ball */
+ seen = 1;
+ h = -1;
+ /* fall through */
+ case ']': /* end Adam notation */
+ nn = HEIGHT;
+ /* fall through */
+ case ' ':
+ if (seen) {
+ i++;
+ if (!add_throw(mi, type, h, notation, title))
+ return False;
+ title = NULL;
+ type=' ';
+ h = 0;
+ seen = 0;
+ }
+ notation = nn;
+ break;
+ default:
+ if(w == 0) { /* Only warn on first pass */
+ (void) fprintf(stderr,
+ "juggle[%d]: Unexpected pattern instruction: '%c'\n",
+ MI_SCREEN(mi), *p);
+ }
+ break;
+ }
+ }
+ }
+ if (seen) { /* end of sequence */
+ if (!add_throw(mi, type, h, notation, title))
+ return False;
+ title = NULL;
+ }
+ }
+ return True;
+}
+
+/*
+ ~~~~\~~~~~\~~~
+ \\~\\~\~\\\~~~
+ \\~\\\\~\\\~\~
+ \\\\\\\\\\\~\\
+
+[ 3 3 1 3 4 2 3 1 3 3 4 0 2 1 ]
+
+4 4 1 3 12 2 4 1 4 4 13 0 3 1
+
+*/
+#define BOUNCEOVER 10
+#define KICKMIN 7
+#define THROWMAX 20
+
+/* Convert Adam notation into heights */
+static void
+adam(jugglestruct *sp)
+{
+ Trajectory *t, *p;
+ for(t = sp->head->next; t != sp->head; t = t->next) {
+ if (t->status == ATCH) {
+ int a = t->adam;
+ t->height = 0;
+ for(p = t->next; a > 0; p = p->next) {
+ if(p == sp->head) {
+ t->height = -9; /* Indicate end of processing for name() */
+ return;
+ }
+ if (p->status != ATCH || p->adam < 0 || p->adam>= a) {
+ a--;
+ }
+ t->height++;
+ }
+ if(t->height > BOUNCEOVER && t->posn == ' '){
+ t->posn = '_'; /* high defaults can be bounced */
+ } else if(t->height < 3 && t->posn == '_') {
+ t->posn = ' '; /* Can't bounce short throws. */
+ }
+ if(t->height < KICKMIN && t->posn == 'k'){
+ t->posn = ' '; /* Can't kick short throws */
+ }
+ if(t->height > THROWMAX){
+ t->posn = 'k'; /* Use kicks for ridiculously high throws */
+ }
+ t->status = THRATCH;
+ }
+ }
+}
+
+/* Discover converted heights and update the sequence title */
+static void
+name(jugglestruct *sp)
+{
+ Trajectory *t, *p;
+ char buffer[BUFSIZ];
+ char *b;
+ for(t = sp->head->next; t != sp->head; t = t->next) {
+ if (t->status == THRATCH && t->name != NULL) {
+ b = buffer;
+ for(p = t; p == t || p->name == NULL; p = p->next) {
+ if(p == sp->head || p->height < 0) { /* end of reliable data */
+ return;
+ }
+ if(p->posn == ' ') {
+ b += sprintf(b, " %d", p->height);
+ } else {
+ b += sprintf(b, " %c%d", p->posn, p->height);
+ }
+ if(b - buffer > 500) break; /* otherwise this could eventually
+ overflow. It'll be too big to
+ display anyway. */
+ }
+ if(*t->name != 0) {
+ (void) sprintf(b, ", %s", t->name);
+ }
+ free(t->name); /* Don't need name any more, it's been converted
+ to pattern */
+ t->name = NULL;
+ if(t->pattern != NULL) free(t->pattern);
+ t->pattern = strdup(buffer);
+ }
+ }
+}
+
+/* Split Thratch notation into explicit throws and catches.
+ Usually Catch follows Throw in same hand, but take care of special
+ cases. */
+
+/* ..n1.. -> .. LTn RT1 LC RC .. */
+/* ..nm.. -> .. LTn LC RTm RC .. */
+
+static Bool
+part(ModeInfo *mi)
+{
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ Trajectory *t, *nt, *p;
+ Hand hand = (LRAND() & 1) ? RIGHT : LEFT;
+
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ if (t->status > THRATCH) {
+ hand = t->hand;
+ } else if (t->status == THRATCH) {
+ char posn = '=';
+
+ /* plausibility check */
+ if (t->height <= 2 && t->posn == '_') {
+ t->posn = ' '; /* no short bounces */
+ }
+ if (t->height <= 1 && (t->posn == '=' || t->posn == '&')) {
+ t->posn = ' '; /* 1's need close catches */
+ }
+
+ switch (t->posn) {
+ /* throw catch */
+ case ' ': posn = '-'; t->posn = '+'; break;
+ case '+': posn = '+'; t->posn = '-'; break;
+ case '=': posn = '='; t->posn = '+'; break;
+ case '&': posn = '+'; t->posn = '='; break;
+ case 'x': posn = '='; t->posn = '='; break;
+ case '_': posn = '_'; t->posn = '-'; break;
+ case 'k': posn = 'k'; t->posn = 'k'; break;
+ default:
+ (void) fprintf(stderr, "juggle: unexpected posn %c\n", t->posn);
+ break;
+ }
+ hand = (Hand) ((hand + 1) % 2);
+ t->status = ACTION;
+ t->hand = hand;
+ p = t->prev;
+
+ if (t->height == 1 && p != sp->head) {
+ p = p->prev; /* '1's are thrown earlier than usual */
+ }
+
+
+
+ t->action = CATCH;
+ ADD_ELEMENT(Trajectory, nt, p);
+ if(nt == NULL){
+ free_juggle(mi);
+ return False;
+ }
+ nt->object = NULL;
+ nt->status = ACTION;
+ nt->action = THROW;
+ nt->height = t->height;
+ nt->hand = hand;
+ nt->posn = posn;
+
+ }
+ }
+ return True;
+}
+
+static ObjType
+choose_object(void) {
+ ObjType o;
+ for (;;) {
+ o = (ObjType)NRAND((ObjType)NUM_OBJECT_TYPES);
+ if(balls && o == BALL) break;
+ if(clubs && o == CLUB) break;
+ if(torches && o == TORCH) break;
+ if(knives && o == KNIFE) break;
+ if(rings && o == RING) break;
+ if(bballs && o == BBALLS) break;
+ }
+ return o;
+}
+
+/* Connnect up throws and catches to figure out which ball goes where.
+ Do the same with the juggler's hands. */
+
+static void
+lob(ModeInfo *mi)
+{
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ Trajectory *t, *p;
+ int h;
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ if (t->status == ACTION) {
+ if (t->action == THROW) {
+ if (t->type == Empty) {
+ /* Create new Object */
+ ADD_ELEMENT(Object, t->object, sp->objects);
+ t->object->count = 1;
+ t->object->tracelen = 0;
+ t->object->active = False;
+ /* Initialise object's circular trace list */
+ ADD_ELEMENT(Trace, t->object->trace, t->object->trace);
+
+ if (MI_NPIXELS(mi) > 2) {
+ t->object->color = 1 + NRAND(MI_NPIXELS(mi) - 2);
+ } else {
+#ifdef STANDALONE
+ t->object->color = 1;
+#else
+ t->object->color = 0;
+#endif
+ }
+
+ /* Small chance of picking a random object instead of the
+ current theme. */
+ if(NRAND(OBJMIXPROB) == 0) {
+ t->object->type = choose_object();
+ } else {
+ t->object->type = sp->objtypes;
+ }
+
+ /* Check to see if we need trails for this object */
+ if(tail < ObjectDefs[t->object->type].mintrail) {
+ t->object->tail = ObjectDefs[t->object->type].mintrail;
+ } else {
+ t->object->tail = tail;
+ }
+ }
+
+ /* Balls can change divisions at each throw */
+ /* no, that looks stupid. -jwz */
+ if (t->divisions < 1)
+ t->divisions = 2 * (NRAND(2) + 1);
+
+ /* search forward for next catch in this hand */
+ for (p = t->next; t->handlink == NULL; p = p->next) {
+ if(p->status < ACTION || p == sp->head) return;
+ if (p->action == CATCH) {
+ if (t->handlink == NULL && p->hand == t->hand) {
+ t->handlink = p;
+ }
+ }
+ }
+
+ if (t->height > 0) {
+ h = t->height - 1;
+
+ /* search forward for next ball catch */
+ for (p = t->next; t->balllink == NULL; p = p->next) {
+ if(p->status < ACTION || p == sp->head) {
+ t->handlink = NULL;
+ return;
+ }
+ if (p->action == CATCH) {
+ if (t->balllink == NULL && --h < 1) { /* caught */
+ t->balllink = p; /* complete trajectory */
+# if 0
+ if (p->type == Full) {
+ (void) fprintf(stderr, "juggle[%d]: Dropped %d\n",
+ MI_SCREEN(mi), t->object->color);
+ }
+#endif
+ p->type = Full;
+ DUP_OBJECT(p, t); /* accept catch */
+ p->angle = t->angle;
+ p->divisions = t->divisions;
+ }
+ }
+ }
+ }
+ t->type = Empty; /* thrown */
+ } else if (t->action == CATCH) {
+ /* search forward for next throw from this hand */
+ for (p = t->next; t->handlink == NULL; p = p->next) {
+ if(p->status < ACTION || p == sp->head) return;
+ if (p->action == THROW && p->hand == t->hand) {
+ p->type = t->type; /* pass ball */
+ DUP_OBJECT(p, t); /* pass object */
+ p->divisions = t->divisions;
+ t->handlink = p;
+ }
+ }
+ }
+ t->status = LINKEDACTION;
+ }
+ }
+}
+
+/* Clap when both hands are empty */
+static void
+clap(jugglestruct *sp)
+{
+ Trajectory *t, *p;
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ if (t->status == LINKEDACTION &&
+ t->action == CATCH &&
+ t->type == Empty &&
+ t->handlink != NULL &&
+ t->handlink->height == 0) { /* Completely idle hand */
+
+ for (p = t->next; p != sp->head; p = p->next) {
+ if (p->status == LINKEDACTION &&
+ p->action == CATCH &&
+ p->hand != t->hand) { /* Next catch other hand */
+ if(p->type == Empty &&
+ p->handlink != NULL &&
+ p->handlink->height == 0) { /* Also completely idle */
+
+ t->handlink->posn = '^'; /* Move first hand's empty throw */
+ p->posn = '^'; /* to meet second hand's empty
+ catch */
+
+ }
+ break; /* Only need first catch */
+ }
+ }
+ }
+ }
+}
+
+#define CUBIC(s, t) ((((s).a * (t) + (s).b) * (t) + (s).c) * (t) + (s).d)
+
+/* Compute single spline from x0 with velocity dx0 at time t0 to x1
+ with velocity dx1 at time t1 */
+static Spline
+makeSpline(double x0, double dx0, int t0, double x1, double dx1, int t1)
+{
+ Spline s;
+ double a, b, c, d;
+ double x10;
+ double t10;
+
+ x10 = x1 - x0;
+ t10 = t1 - t0;
+ a = ((dx0 + dx1)*t10 - 2*x10) / (t10*t10*t10);
+ b = (3*x10 - (2*dx0 + dx1)*t10) / (t10*t10);
+ c = dx0;
+ d = x0;
+ s.a = a;
+ s.b = -3*a*t0 + b;
+ s.c = (3*a*t0 - 2*b)*t0 + c;
+ s.d = ((-a*t0 + b)*t0 - c)*t0 +d;
+ return s;
+}
+
+/* Compute a pair of splines. s1 goes from x0 vith velocity dx0 at
+ time t0 to x1 at time t1. s2 goes from x1 at time t1 to x2 with
+ velocity dx2 at time t2. The arrival and departure velocities at
+ x1, t1 must be the same. */
+static double
+makeSplinePair(Spline *s1, Spline *s2,
+ double x0, double dx0, int t0,
+ double x1, int t1,
+ double x2, double dx2, int t2)
+{
+ double x10, x21, t21, t10, t20, dx1;
+ x10 = x1 - x0;
+ x21 = x2 - x1;
+ t21 = t2 - t1;
+ t10 = t1 - t0;
+ t20 = t2 - t0;
+ dx1 = (3*x10*t21*t21 + 3*x21*t10*t10 + 3*dx0*t10*t21*t21
+ - dx2*t10*t10*t21 - 4*dx0*t10*t21*t21) /
+ (2*t10*t21*t20);
+ *s1 = makeSpline(x0, dx0, t0, x1, dx1, t1);
+ *s2 = makeSpline(x1, dx1, t1, x2, dx2, t2);
+ return dx1;
+}
+
+/* Compute a Ballistic path in a pair of degenerate splines. sx goes
+ from x at time t at constant velocity dx. sy goes from y at time t
+ with velocity dy and constant acceleration g. */
+static void
+makeParabola(Trajectory *n,
+ double x, double dx, double y, double dy, double g)
+{
+ double t = (double)n->start;
+ n->xp.a = 0;
+ n->xp.b = 0;
+ n->xp.c = dx;
+ n->xp.d = -dx*t + x;
+ n->yp.a = 0;
+ n->yp.b = g/2;
+ n->yp.c = -g*t + dy;
+ n->yp.d = g/2*t*t - dy*t + y;
+}
+
+
+
+
+#define SX 25 /* Shoulder Width */
+
+/* Convert hand position symbols into actual time/space coordinates */
+static void
+positions(jugglestruct *sp)
+{
+ Trajectory *t;
+ unsigned long now = sp->time; /* Make sure we're not lost in the past */
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ if (t->status >= PTHRATCH) {
+ now = t->start;
+ } else if (t->status == ACTION || t->status == LINKEDACTION) {
+ /* Allow ACTIONs to be annotated, but we won't mark them ready
+ for the next stage */
+
+ double xo = 0, yo;
+ double sx = SX;
+ double pose = SX/2;
+
+ /* time */
+ if (t->action == CATCH) { /* Throw-to-catch */
+ if (t->type == Empty) {
+ now += (int) THROW_NULL_INTERVAL; /* failed catch is short */
+ } else { /* successful catch */
+ now += (int)(THROW_CATCH_INTERVAL);
+ }
+ } else { /* Catch-to-throw */
+ if(t->object != NULL) {
+ now += (int) (CATCH_THROW_INTERVAL *
+ ObjectDefs[t->object->type].weight);
+ } else {
+ now += (int) (CATCH_THROW_INTERVAL);
+ }
+ }
+
+ if(t->start == 0)
+ t->start = now;
+ else /* Concatenated performances may need clock resync */
+ now = t->start;
+
+ t->cx = 0;
+
+ /* space */
+ yo = 90;
+
+ /* Add room for the handle */
+ if(t->action == CATCH && t->object != NULL)
+ yo -= ObjectDefs[t->object->type].handle;
+
+ switch (t->posn) {
+ case '-': xo = sx - pose; break;
+ case '_':
+ case 'k':
+ case '+': xo = sx + pose; break;
+ case '~':
+ case '=': xo = - sx - pose; yo += pose; break;
+ case '^': xo = 0; yo += pose*2; break; /* clap */
+ default:
+ (void) fprintf(stderr, "juggle: unexpected posn %c\n", t->posn);
+ break;
+ }
+
+#ifdef _2DSpinsDontWorkIn3D
+ t->angle = (((t->hand == LEFT) ^
+ (t->posn == '+' || t->posn == '_' || t->posn == 'k' ))?
+ -1 : 1) * M_PI/2;
+#else
+ t->angle = -M_PI/2;
+#endif
+
+ t->x = t->cx + ((t->hand == LEFT) ? xo : -xo);
+ t->y = yo;
+
+ /* Only mark complete if it was already linked */
+ if(t->status == LINKEDACTION) {
+ t->status = PTHRATCH;
+ }
+ }
+ }
+}
+
+
+/* Private physics functions */
+
+/* Compute the spin-rate for a trajectory. Different types of throw
+ (eg, regular thows, bounces, kicks, etc) have different spin
+ requirements.
+
+ type = type of object
+ h = trajectory of throwing hand (throws), or next throwing hand (catches)
+ old = earlier spin to consider
+ dt = time span of this trajectory
+ height = height of ball throw or 0 if based on old spin
+ turns = full club turns required during this operation
+ togo = partial club turns required to match hands
+*/
+static double
+spinrate(ObjType type, Trajectory *h, double old, double dt,
+ int height, int turns, double togo)
+{
+#ifdef _2DSpinsDontWorkIn3D
+ const int dir = (h->hand == LEFT) ^ (h->posn == '+')? -1 : 1;
+#else
+ const int dir = 1;
+#endif
+
+ if(ObjectDefs[type].handle != 0) { /* Clubs */
+ return (dir * turns * 2 * M_PI + togo) / dt;
+ } else if(height == 0) { /* Balls already spinning */
+ return old/2;
+ } else { /* Balls */
+ return dir * NRAND(height*10)/20/ObjectDefs[type].weight * 2 * M_PI / dt;
+ }
+}
+
+
+/* compute the angle at the end of a spinning trajectory */
+static double
+end_spin(Trajectory *t)
+{
+ return t->angle + t->spin * (t->finish - t->start);
+}
+
+/* Sets the initial angle of the catch following hand movement t to
+ the final angle of the throw n. Also sets the angle of the
+ subsequent throw to the same angle plus half a turn. */
+static void
+match_spins_on_catch(Trajectory *t, Trajectory *n)
+{
+ if(ObjectDefs[t->balllink->object->type].handle == 0) {
+ t->balllink->angle = end_spin(n);
+ if(t->balllink->handlink != NULL) {
+#ifdef _2DSpinsDontWorkIn3D
+ t->balllink->handlink->angle = t->balllink->angle + M_PI;
+#else
+ t->balllink->handlink->angle = t->balllink->angle;
+#endif
+ }
+ }
+}
+
+static double
+find_bounce(jugglestruct *sp,
+ double yo, double yf, double yc, double tc, double cor)
+{
+ double tb, i, dy = 0;
+ const double e = 1; /* permissible error in yc */
+
+ /*
+ tb = time to bounce
+ yt = height at catch time after one bounce
+ one or three roots according to timing
+ find one by interval bisection
+ */
+ tb = tc;
+ for(i = tc / 2; i > 0.0001; i/=2){
+ double dt, yt;
+ if(tb == 0){
+ (void) fprintf(stderr, "juggle: bounce div by zero!\n");
+ break;
+ }
+ dy = (yf - yo)/tb + sp->Gr/2*tb;
+ dt = tc - tb;
+ yt = -cor*dy*dt + sp->Gr/2*dt*dt + yf;
+ if(yt < yc + e){
+ tb-=i;
+ }else if(yt > yc - e){
+ tb+=i;
+ }else{
+ break;
+ }
+ }
+ if(dy*THROW_CATCH_INTERVAL < -200) { /* bounce too hard */
+ tb = -1;
+ }
+ return tb;
+}
+
+static Trajectory*
+new_predictor(const Trajectory *t, int start, int finish, double angle)
+{
+ Trajectory *n;
+ ADD_ELEMENT(Trajectory, n, t->prev);
+ if(n == NULL){
+ return NULL;
+ }
+ DUP_OBJECT(n, t);
+ n->divisions = t->divisions;
+ n->type = Ball;
+ n->status = PREDICTOR;
+
+ n->start = start;
+ n->finish = finish;
+ n->angle = angle;
+ return n;
+}
+
+/* Turn abstract timings into physically appropriate object trajectories. */
+static Bool
+projectile(jugglestruct *sp)
+{
+ Trajectory *t;
+ const int yf = 0; /* Floor height */
+
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ if (t->status != PTHRATCH || t->action != THROW) {
+ continue;
+ } else if (t->balllink == NULL) { /* Zero Throw */
+ t->status = BPREDICTOR;
+ } else if (t->balllink->handlink == NULL) { /* Incomplete */
+ return True;
+ } else if(t->balllink == t->handlink) {
+ /* '2' height - hold on to ball. Don't need to consider
+ flourishes, 'hands' will do that automatically anyway */
+
+ t->type = Full;
+ /* Zero spin to avoid wrist injuries */
+ t->spin = 0;
+ match_spins_on_catch(t, t);
+ t->dx = t->dy = 0;
+ t->status = BPREDICTOR;
+ continue;
+ } else {
+ if (t->posn == '_') { /* Bounce once */
+
+ const int tb = t->start +
+ find_bounce(sp, t->y, (double) yf, t->balllink->y,
+ (double) (t->balllink->start - t->start),
+ ObjectDefs[t->object->type].cor);
+
+ if(tb < t->start) { /* bounce too hard */
+ t->posn = '+'; /* Use regular throw */
+ } else {
+ Trajectory *n; /* First (throw) trajectory. */
+ double dt; /* Time span of a trajectory */
+ double dy; /* Distance span of a follow-on trajectory.
+ First trajectory uses t->dy */
+ /* dx is constant across both trajectories */
+ t->dx = (t->balllink->x - t->x) / (t->balllink->start - t->start);
+
+ { /* ball follows parabola down */
+ n = new_predictor(t, t->start, tb, t->angle);
+ if(n == NULL) return False;
+ dt = n->finish - n->start;
+ /* Ball rate 4, no flight or matching club turns */
+ n->spin = spinrate(t->object->type, t, 0.0, dt, 4, 0, 0.0);
+ t->dy = (yf - t->y)/dt - sp->Gr/2*dt;
+ makeParabola(n, t->x, t->dx, t->y, t->dy, sp->Gr);
+ }
+
+ { /* ball follows parabola up */
+ Trajectory *m = new_predictor(t, n->finish, t->balllink->start,
+ end_spin(n));
+ if(m == NULL) return False;
+ dt = m->finish - m->start;
+ /* Use previous ball rate, no flight club turns */
+ m->spin = spinrate(t->object->type, t, n->spin, dt, 0, 0,
+ t->balllink->angle - m->angle);
+ match_spins_on_catch(t, m);
+ dy = (t->balllink->y - yf)/dt - sp->Gr/2 * dt;
+ makeParabola(m, t->balllink->x - t->dx * dt,
+ t->dx, (double) yf, dy, sp->Gr);
+ }
+
+ t->status = BPREDICTOR;
+ continue;
+ }
+ } else if (t->posn == 'k') { /* Drop & Kick */
+ Trajectory *n; /* First (drop) trajectory. */
+ Trajectory *o; /* Second (rest) trajectory */
+ Trajectory *m; /* Third (kick) trajectory */
+ const int td = t->start + 2*THROW_CATCH_INTERVAL; /* Drop time */
+ const int tk = t->balllink->start - 5*THROW_CATCH_INTERVAL; /* Kick */
+ double dt, dy;
+
+ { /* Fall to ground */
+ n = new_predictor(t, t->start, td, t->angle);
+ if(n == NULL) return False;
+ dt = n->finish - n->start;
+ /* Ball spin rate 4, no flight club turns */
+ n->spin = spinrate(t->object->type, t, 0.0, dt, 4, 0,
+ t->balllink->angle - n->angle);
+ t->dx = (t->balllink->x - t->x) / dt;
+ t->dy = (yf - t->y)/dt - sp->Gr/2*dt;
+ makeParabola(n, t->x, t->dx, t->y, t->dy, sp->Gr);
+ }
+
+ { /* Rest on ground */
+ o = new_predictor(t, n->finish, tk, end_spin(n));
+ if(o == NULL) return False;
+ o->spin = 0;
+ makeParabola(o, t->balllink->x, 0.0, (double) yf, 0.0, 0.0);
+ }
+
+ /* Kick up */
+ {
+ m = new_predictor(t, o->finish, t->balllink->start, end_spin(o));
+ if(m == NULL) return False;
+ dt = m->finish - m->start;
+ /* Match receiving hand, ball rate 4, one flight club turn */
+ m->spin = spinrate(t->object->type, t->balllink->handlink, 0.0, dt,
+ 4, 1, t->balllink->angle - m->angle);
+ match_spins_on_catch(t, m);
+ dy = (t->balllink->y - yf)/dt - sp->Gr/2 * dt;
+ makeParabola(m, t->balllink->x, 0.0, (double) yf, dy, sp->Gr);
+ }
+
+ t->status = BPREDICTOR;
+ continue;
+ }
+
+ /* Regular flight, no bounce */
+ { /* ball follows parabola */
+ double dt;
+ Trajectory *n = new_predictor(t, t->start,
+ t->balllink->start, t->angle);
+ if(n == NULL) return False;
+ dt = t->balllink->start - t->start;
+ /* Regular spin */
+ n->spin = spinrate(t->object->type, t, 0.0, dt, t->height, t->height/2,
+ t->balllink->angle - n->angle);
+ match_spins_on_catch(t, n);
+ t->dx = (t->balllink->x - t->x) / dt;
+ t->dy = (t->balllink->y - t->y) / dt - sp->Gr/2 * dt;
+ makeParabola(n, t->x, t->dx, t->y, t->dy, sp->Gr);
+ }
+
+ t->status = BPREDICTOR;
+ }
+ }
+ return True;
+}
+
+/* Turn abstract hand motions into cubic splines. */
+static void
+hands(jugglestruct *sp)
+{
+ Trajectory *t, *u, *v;
+
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ /* no throw => no velocity */
+ if (t->status != BPREDICTOR) {
+ continue;
+ }
+
+ u = t->handlink;
+ if (u == NULL) { /* no next catch */
+ continue;
+ }
+ v = u->handlink;
+ if (v == NULL) { /* no next throw */
+ continue;
+ }
+
+ /* double spline takes hand from throw, thru catch, to
+ next throw */
+
+ t->finish = u->start;
+ t->status = PREDICTOR;
+
+ u->finish = v->start;
+ u->status = PREDICTOR;
+
+
+ /* FIXME: These adjustments leave a small glitch when alternating
+ balls and clubs. Just hope no-one notices. :-) */
+
+ /* make sure empty hand spin matches the thrown object in case it
+ had a handle */
+
+ t->spin = ((t->hand == LEFT)? -1 : 1 ) *
+ fabs((u->angle - t->angle)/(u->start - t->start));
+
+ u->spin = ((v->hand == LEFT) ^ (v->posn == '+')? -1 : 1 ) *
+ fabs((v->angle - u->angle)/(v->start - u->start));
+
+ (void) makeSplinePair(&t->xp, &u->xp,
+ t->x, t->dx, t->start,
+ u->x, u->start,
+ v->x, v->dx, v->start);
+ (void) makeSplinePair(&t->yp, &u->yp,
+ t->y, t->dy, t->start,
+ u->y, u->start,
+ v->y, v->dy, v->start);
+
+ t->status = PREDICTOR;
+ }
+}
+
+/* Given target x, y find_elbow puts hand at target if possible,
+ * otherwise makes hand point to the target */
+static void
+find_elbow(int armlength, DXPoint *h, DXPoint *e, DXPoint *p, DXPoint *s,
+ int z)
+{
+ double r, h2, t;
+ double x = p->x - s->x;
+ double y = p->y - s->y;
+ h2 = x*x + y*y + z*z;
+ if (h2 > 4 * armlength * armlength) {
+ t = armlength/sqrt(h2);
+ e->x = t*x + s->x;
+ e->y = t*y + s->y;
+ h->x = 2 * t * x + s->x;
+ h->y = 2 * t * y + s->y;
+ } else {
+ r = sqrt((double)(x*x + z*z));
+ t = sqrt(4 * armlength * armlength / h2 - 1);
+ e->x = x*(1 + y*t/r)/2 + s->x;
+ e->y = (y - r*t)/2 + s->y;
+ h->x = x + s->x;
+ h->y = y + s->y;
+ }
+}
+
+
+/* NOTE: returned x, y adjusted for arm reach */
+static void
+reach_arm(ModeInfo * mi, Hand side, DXPoint *p)
+{
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ DXPoint h, e;
+ find_elbow(40, &h, &e, p, &sp->arm[1][side][SHOULDER], 25);
+ *p = sp->arm[1][side][HAND] = h;
+ sp->arm[1][side][ELBOW] = e;
+}
+
+#if DEBUG
+/* dumps a human-readable rendition of the current state of the juggle
+ pipeline to stderr for debugging */
+static void
+dump(jugglestruct *sp)
+{
+ Trajectory *t;
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ switch (t->status) {
+ case ATCH:
+ (void) fprintf(stderr, "%p a %c%d\n", (void*)t, t->posn, t->adam);
+ break;
+ case THRATCH:
+ (void) fprintf(stderr, "%p T %c%d %s\n", (void*)t, t->posn, t->height,
+ t->pattern == NULL?"":t->pattern);
+ break;
+ case ACTION:
+ if (t->action == CATCH)
+ (void) fprintf(stderr, "%p A %c%cC\n",
+ (void*)t, t->posn,
+ t->hand ? 'R' : 'L');
+ else
+ (void) fprintf(stderr, "%p A %c%c%c%d\n",
+ (void*)t, t->posn,
+ t->hand ? 'R' : 'L',
+ (t->action == THROW)?'T':'N',
+ t->height);
+ break;
+ case LINKEDACTION:
+ (void) fprintf(stderr, "%p L %c%c%c%d %d %p %p\n",
+ (void*)t, t->posn,
+ t->hand?'R':'L',
+ (t->action == THROW)?'T':(t->action == CATCH?'C':'N'),
+ t->height, t->object == NULL?0:t->object->color,
+ (void*)t->handlink, (void*)t->balllink);
+ break;
+ case PTHRATCH:
+ (void) fprintf(stderr, "%p O %c%c%c%d %d %2d %6lu %6lu\n",
+ (void*)t, t->posn,
+ t->hand?'R':'L',
+ (t->action == THROW)?'T':(t->action == CATCH?'C':'N'),
+ t->height, t->type, t->object == NULL?0:t->object->color,
+ t->start, t->finish);
+ break;
+ case BPREDICTOR:
+ (void) fprintf(stderr, "%p B %c %2d %6lu %6lu %g\n",
+ (void*)t, t->type == Ball?'b':t->type == Empty?'e':'f',
+ t->object == NULL?0:t->object->color,
+ t->start, t->finish, t->yp.c);
+ break;
+ case PREDICTOR:
+ (void) fprintf(stderr, "%p P %c %2d %6lu %6lu %g\n",
+ (void*)t, t->type == Ball?'b':t->type == Empty?'e':'f',
+ t->object == NULL?0:t->object->color,
+ t->start, t->finish, t->yp.c);
+ break;
+ default:
+ (void) fprintf(stderr, "%p: status %d not implemented\n",
+ (void*)t, t->status);
+ break;
+ }
+ }
+ (void) fprintf(stderr, "---\n");
+}
+#endif
+
+static int get_num_balls(const char *j)
+{
+ int balls = 0;
+ const char *p;
+ int h = 0;
+ if (!j) abort();
+ for (p = j; *p; p++) {
+ if (*p >= '0' && *p <='9') { /* digit */
+ h = 10*h + (*p - '0');
+ } else {
+ if (h > balls) {
+ balls = h;
+ }
+ h = 0;
+ }
+ }
+ return balls;
+}
+
+static int
+compare_num_balls(const void *p1, const void *p2)
+{
+ int i, j;
+ i = get_num_balls(((patternstruct*)p1)->pattern);
+ j = get_num_balls(((patternstruct*)p2)->pattern);
+ if (i > j) {
+ return (1);
+ } else if (i < j) {
+ return (-1);
+ } else {
+ return (0);
+ }
+}
+
+
+/**************************************************************************
+ * Rendering Functions *
+ * *
+ **************************************************************************/
+
+static int
+show_arms(ModeInfo * mi)
+{
+ int polys = 0;
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ unsigned int i, j;
+ Hand side;
+ XPoint a[countof(sp->arm[0][0])];
+ int slices = 12;
+ int thickness = 7;
+ int soffx = 10;
+ int soffy = 11;
+
+ glFrontFace(GL_CCW);
+
+ j = 1;
+ for(side = LEFT; side <= RIGHT; side = (Hand)((int)side + 1)) {
+ /* Translate into device coords */
+ for(i = 0; i < countof(a); i++) {
+ a[i].x = (short)(SCENE_WIDTH/2 + sp->arm[j][side][i].x*sp->scale);
+ a[i].y = (short)(SCENE_HEIGHT - sp->arm[j][side][i].y*sp->scale);
+ if(j == 1)
+ sp->arm[0][side][i] = sp->arm[1][side][i];
+ }
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_1);
+
+ /* Upper arm */
+ polys += tube (a[2].x - (side == LEFT ? soffx : -soffx), a[2].y + soffy, 0,
+ a[1].x, a[1].y, ARMLENGTH/2,
+ thickness, 0, slices,
+ True, True, MI_IS_WIREFRAME(mi));
+
+ /* Lower arm */
+ polys += tube (a[1].x, a[1].y, ARMLENGTH/2,
+ a[0].x, a[0].y, ARMLENGTH,
+ thickness * 0.8, 0, slices,
+ True, True, MI_IS_WIREFRAME(mi));
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_2);
+
+ /* Shoulder */
+ glPushMatrix();
+ glTranslatef (a[2].x - (side == LEFT ? soffx : -soffx),
+ a[2].y + soffy,
+ 0);
+ glScalef(9, 9, 9);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Elbow */
+ glPushMatrix();
+ glTranslatef (a[1].x, a[1].y, ARMLENGTH/2);
+ glScalef(4, 4, 4);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Hand */
+ glPushMatrix();
+ glTranslatef (a[0].x, a[0].y, ARMLENGTH);
+ glScalef(8, 8, 8);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ }
+ return polys;
+}
+
+static int
+show_figure(ModeInfo * mi, Bool init)
+{
+ int polys = 0;
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ /*XPoint p[7];*/
+ int i;
+
+ /* +-----+ 9
+ | 6 |
+ 10 +--+--+
+ 2 +---+---+ 3
+ \ 5 /
+ \ /
+ \ /
+ 1 +
+ / \
+ / \
+ 0 +-----+ 4
+ | |
+ | |
+ | |
+ 7 + + 8
+ */
+
+ /* #### most of this is unused now */
+ static const XPoint figure[] = {
+ { 15, 70}, /* 0 Left Hip */
+ { 0, 90}, /* 1 Waist */
+ { SX, 130}, /* 2 Left Shoulder */
+ {-SX, 130}, /* 3 Right Shoulder */
+ {-15, 70}, /* 4 Right Hip */
+ { 0, 130}, /* 5 Neck */
+ { 0, 140}, /* 6 Chin */
+ { SX, 0}, /* 7 Left Foot */
+ {-SX, 0}, /* 8 Right Foot */
+ {-17, 174}, /* 9 Head1 */
+ { 17, 140}, /* 10 Head2 */
+ };
+ XPoint a[countof(figure)];
+ GLfloat gcolor[4] = { 1, 1, 1, 1 };
+
+ /* Translate into device coords */
+ for(i = 0; i < countof(figure); i++) {
+ a[i].x = (short)(SCENE_WIDTH/2 + (sp->cx + figure[i].x)*sp->scale);
+ a[i].y = (short)(SCENE_HEIGHT - figure[i].y*sp->scale);
+ }
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor);
+
+ glFrontFace(GL_CCW);
+
+ {
+ GLfloat scale = ((GLfloat) a[10].x - a[9].x) / 2;
+ int slices = 12;
+
+ glPushMatrix();
+ {
+ glTranslatef(a[6].x, a[6].y - scale, 0);
+ glScalef(scale, scale, scale);
+
+ /* Head */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_1);
+ glPushMatrix();
+ scale = 0.75;
+ glScalef(scale, scale, scale);
+ glTranslatef(0, 0.3, 0);
+ glPushMatrix();
+ glTranslatef(0, 0, 0.35);
+ polys += tube (0, 0, 0,
+ 0, 1.1, 0,
+ 0.64, 0,
+ slices, True, True, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+ glScalef(0.9, 0.9, 1);
+ polys += unit_sphere(2*slices, 2*slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Neck */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_2);
+ glTranslatef(0, 1.1, 0);
+ glPushMatrix();
+ scale = 0.35;
+ glScalef(scale, scale, scale);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Torso */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_1);
+ glTranslatef(0, 1.1, 0);
+ glPushMatrix();
+ glScalef(0.9, 1.0, 0.9);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Belly */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_2);
+ glTranslatef(0, 1.0, 0);
+ glPushMatrix();
+ scale = 0.6;
+ glScalef(scale, scale, scale);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Hips */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_1);
+ glTranslatef(0, 0.8, 0);
+ glPushMatrix();
+ scale = 0.85;
+ glScalef(scale, scale, scale);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+
+ /* Legs */
+ glTranslatef(0, 0.7, 0);
+
+ for (i = -1; i <= 1; i += 2) {
+ glPushMatrix();
+
+ glRotatef (i*10, 0, 0, 1);
+ glTranslatef(-i*0.65, 0, 0);
+
+ /* Hip socket */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_2);
+ scale = 0.45;
+ glScalef(scale, scale, scale);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+
+ /* Thigh */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_1);
+ glPushMatrix();
+ glTranslatef(0, 0.6, 0);
+ polys += tube (0, 0, 0,
+ 0, 3.5, 0,
+ 1, 0,
+ slices, True, True, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Knee */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_2);
+ glPushMatrix();
+ glTranslatef(0, 4.4, 0);
+ scale = 0.7;
+ glScalef(scale, scale, scale);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Calf */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_1);
+ glPushMatrix();
+ glTranslatef(0, 4.7, 0);
+ polys += tube (0, 0, 0,
+ 0, 4.7, 0,
+ 0.8, 0,
+ slices, True, True, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Ankle */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_2);
+ glPushMatrix();
+ glTranslatef(0, 9.7, 0);
+ scale = 0.5;
+ glScalef(scale, scale, scale);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ /* Foot */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, body_color_1);
+ glPushMatrix();
+ glRotatef (-i*10, 0, 0, 1);
+ glTranslatef(-i*1.75, 9.7, 0.9);
+
+ glScalef (0.4, 1, 1);
+ polys += tube (0, 0, 0,
+ 0, 0.6, 0,
+ 1.9, 0,
+ slices*4, True, True, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+
+ glPopMatrix();
+ }
+ }
+ glPopMatrix();
+ }
+
+ sp->arm[1][LEFT][SHOULDER].x = sp->cx + figure[2].x;
+ sp->arm[1][RIGHT][SHOULDER].x = sp->cx + figure[3].x;
+ if(init) {
+ /* Initialise arms */
+ unsigned int i;
+ for(i = 0; i < 2; i++){
+ sp->arm[i][LEFT][SHOULDER].y = figure[2].y;
+ sp->arm[i][LEFT][ELBOW].x = figure[2].x;
+ sp->arm[i][LEFT][ELBOW].y = figure[1].y;
+ sp->arm[i][LEFT][HAND].x = figure[0].x;
+ sp->arm[i][LEFT][HAND].y = figure[1].y;
+ sp->arm[i][RIGHT][SHOULDER].y = figure[3].y;
+ sp->arm[i][RIGHT][ELBOW].x = figure[3].x;
+ sp->arm[i][RIGHT][ELBOW].y = figure[1].y;
+ sp->arm[i][RIGHT][HAND].x = figure[4].x;
+ sp->arm[i][RIGHT][HAND].y = figure[1].y;
+ }
+ }
+ return polys;
+}
+
+typedef struct { GLfloat x, y, z; } XYZ;
+
+/* lifted from sphere.c */
+static int
+striped_unit_sphere (int stacks, int slices,
+ int stripes,
+ GLfloat *color1, GLfloat *color2,
+ int wire_p)
+{
+ int polys = 0;
+ int i,j;
+ double theta1, theta2, theta3;
+ XYZ e, p;
+ XYZ la = { 0, 0, 0 }, lb = { 0, 0, 0 };
+ XYZ c = {0, 0, 0}; /* center */
+ double r = 1.0; /* radius */
+ int stacks2 = stacks * 2;
+
+ if (r < 0)
+ r = -r;
+ if (slices < 0)
+ slices = -slices;
+
+ if (slices < 4 || stacks < 2 || r <= 0)
+ {
+ glBegin (GL_POINTS);
+ glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ return 1;
+ }
+
+ glFrontFace(GL_CW);
+
+ for (j = 0; j < stacks; j++)
+ {
+ theta1 = j * (M_PI+M_PI) / stacks2 - M_PI_2;
+ theta2 = (j + 1) * (M_PI+M_PI) / stacks2 - M_PI_2;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ ((j == 0 || j == stacks-1 ||
+ j % (stacks / (stripes+1)))
+ ? color1 : color2));
+
+ glBegin (wire_p ? GL_LINE_LOOP : GL_TRIANGLE_STRIP);
+ for (i = 0; i <= slices; i++)
+ {
+ theta3 = i * (M_PI+M_PI) / slices;
+
+ if (wire_p && i != 0)
+ {
+ glVertex3f (lb.x, lb.y, lb.z);
+ glVertex3f (la.x, la.y, la.z);
+ }
+
+ e.x = cos (theta2) * cos(theta3);
+ e.y = sin (theta2);
+ e.z = cos (theta2) * sin(theta3);
+ p.x = c.x + r * e.x;
+ p.y = c.y + r * e.y;
+ p.z = c.z + r * e.z;
+
+ glNormal3f (e.x, e.y, e.z);
+ glTexCoord2f (i / (double)slices,
+ 2*(j+1) / (double)stacks2);
+ glVertex3f (p.x, p.y, p.z);
+ if (wire_p) la = p;
+
+ e.x = cos(theta1) * cos(theta3);
+ e.y = sin(theta1);
+ e.z = cos(theta1) * sin(theta3);
+ p.x = c.x + r * e.x;
+ p.y = c.y + r * e.y;
+ p.z = c.z + r * e.z;
+
+ glNormal3f (e.x, e.y, e.z);
+ glTexCoord2f (i / (double)slices,
+ 2*j / (double)stacks2);
+ glVertex3f (p.x, p.y, p.z);
+ if (wire_p) lb = p;
+ polys++;
+ }
+ glEnd();
+ }
+ return polys;
+}
+
+
+
+static int
+show_ball(ModeInfo *mi, unsigned long color, Trace *s)
+{
+ int polys = 0;
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ /*int offset = (int)(s->angle*64*180/M_PI);*/
+ short x = (short)(SCENE_WIDTH/2 + s->x * sp->scale);
+ short y = (short)(SCENE_HEIGHT - s->y * sp->scale);
+ GLfloat gcolor1[4] = { 0, 0, 0, 1 };
+ GLfloat gcolor2[4] = { 0, 0, 0, 1 };
+ int slices = 24;
+
+ /* Avoid wrapping */
+ if(s->y*sp->scale > SCENE_HEIGHT * 2) return 0;
+
+ gcolor1[0] = mi->colors[color].red / 65536.0;
+ gcolor1[1] = mi->colors[color].green / 65536.0;
+ gcolor1[2] = mi->colors[color].blue / 65536.0;
+
+ gcolor2[0] = gcolor1[0] / 3;
+ gcolor2[1] = gcolor1[1] / 3;
+ gcolor2[2] = gcolor1[2] / 3;
+
+ glFrontFace(GL_CCW);
+
+ {
+ GLfloat scale = BALLRADIUS;
+ glPushMatrix();
+ glTranslatef(x, y, 0);
+ glScalef(scale, scale, scale);
+
+ glRotatef (s->angle / M_PI*180, 1, 1, 0);
+
+ polys += striped_unit_sphere (slices, slices, s->divisions,
+ gcolor1, gcolor2, MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+ }
+ return polys;
+}
+
+static int
+show_europeanclub(ModeInfo *mi, unsigned long color, Trace *s)
+{
+ int polys = 0;
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ /*int offset = (int)(s->angle*64*180/M_PI);*/
+ short x = (short)(SCENE_WIDTH/2 + s->x * sp->scale);
+ short y = (short)(SCENE_HEIGHT - s->y * sp->scale);
+ double radius = 12 * sp->scale;
+ GLfloat gcolor1[4] = { 0, 0, 0, 1 };
+ GLfloat gcolor2[4] = { 1, 1, 1, 1 };
+ int slices = 16;
+ int divs = 4;
+
+ /* 6 6
+ +-+
+ / \
+ 4 +-----+ 7
+ ////////\
+ 3 +---------+ 8
+ 2 +---------+ 9
+ |///////|
+ 1 +-------+ 10
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ +-+
+ 0 11 */
+
+ /* Avoid wrapping */
+ if(s->y*sp->scale > SCENE_HEIGHT * 2) return 0;
+
+ gcolor1[0] = mi->colors[color].red / 65536.0;
+ gcolor1[1] = mi->colors[color].green / 65536.0;
+ gcolor1[2] = mi->colors[color].blue / 65536.0;
+
+ glFrontFace(GL_CCW);
+
+ {
+ GLfloat scale = radius;
+ glPushMatrix();
+ glTranslatef(x, y, 0);
+ glScalef(scale, scale, scale);
+
+ glTranslatef (0, 0, 2); /* put end of handle in hand */
+
+ glRotatef (s->angle / M_PI*180, 1, 0, 0);
+
+ glPushMatrix();
+ glScalef (0.5, 1, 0.5);
+ polys += striped_unit_sphere (slices, slices, divs, gcolor2, gcolor1,
+ MI_IS_WIREFRAME(mi));
+ glPopMatrix();
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor2);
+ polys += tube (0, 0, 0,
+ 0, 2, 0,
+ 0.2, 0,
+ slices, True, True, MI_IS_WIREFRAME(mi));
+
+ glTranslatef (0, 2, 0);
+ glScalef (0.25, 0.25, 0.25);
+ polys += unit_sphere(slices, slices, MI_IS_WIREFRAME(mi));
+
+ glPopMatrix();
+ }
+ return polys;
+}
+
+
+static int
+show_torch(ModeInfo *mi, unsigned long color, Trace *s)
+{
+ int polys = 0;
+#if 0
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ XPoint head, tail, last;
+ DXPoint dhead, dlast;
+ const double sa = sin(s->angle);
+ const double ca = cos(s->angle);
+
+ const double TailLen = -24;
+ const double HeadLen = 16;
+ const short Width = (short)(5 * sqrt(sp->scale));
+
+ /*
+ +///+ head
+ last |
+ |
+ |
+ |
+ |
+ + tail
+ */
+
+ dhead.x = s->x + HeadLen * PERSPEC * sa;
+ dhead.y = s->y - HeadLen * ca;
+
+ if(color == MI_BLACK_PIXEL(mi)) { /* Use 'last' when erasing */
+ dlast = s->dlast;
+ } else { /* Store 'last' so we can use it later when s->prev has
+ gone */
+ if(s->prev != s->next) {
+ dlast.x = s->prev->x + HeadLen * PERSPEC * sin(s->prev->angle);
+ dlast.y = s->prev->y - HeadLen * cos(s->prev->angle);
+ } else {
+ dlast = dhead;
+ }
+ s->dlast = dlast;
+ }
+
+ /* Avoid wrapping (after last is stored) */
+ if(s->y*sp->scale > SCENE_HEIGHT * 2) return 0;
+
+ head.x = (short)(SCENE_WIDTH/2 + dhead.x*sp->scale);
+ head.y = (short)(SCENE_HEIGHT - dhead.y*sp->scale);
+
+ last.x = (short)(SCENE_WIDTH/2 + dlast.x*sp->scale);
+ last.y = (short)(SCENE_HEIGHT - dlast.y*sp->scale);
+
+ tail.x = (short)(SCENE_WIDTH/2 +
+ (s->x + TailLen * PERSPEC * sa)*sp->scale );
+ tail.y = (short)(SCENE_HEIGHT - (s->y - TailLen * ca)*sp->scale );
+
+ if(color != MI_BLACK_PIXEL(mi)) {
+ XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_BLACK_PIXEL(mi));
+ XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi),
+ Width, LineSolid, CapRound, JoinRound);
+ draw_line(mi, head.x, head.y, tail.x, tail.y);
+ }
+ XSetForeground(MI_DISPLAY(mi), MI_GC(mi), color);
+ XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi),
+ Width * 2, LineSolid, CapRound, JoinRound);
+
+ draw_line(mi, head.x, head.y, last.x, last.y);
+
+#endif /* 0 */
+ return polys;
+}
+
+
+static int
+show_knife(ModeInfo *mi, unsigned long color, Trace *s)
+{
+ int polys = 0;
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ /*int offset = (int)(s->angle*64*180/M_PI);*/
+ short x = (short)(SCENE_WIDTH/2 + s->x * sp->scale);
+ short y = (short)(SCENE_HEIGHT - s->y * sp->scale);
+ GLfloat gcolor1[4] = { 0, 0, 0, 1 };
+ GLfloat gcolor2[4] = { 1, 1, 1, 1 };
+ int slices = 8;
+
+ /* Avoid wrapping */
+ if(s->y*sp->scale > SCENE_HEIGHT * 2) return 0;
+
+ gcolor1[0] = mi->colors[color].red / 65536.0;
+ gcolor1[1] = mi->colors[color].green / 65536.0;
+ gcolor1[2] = mi->colors[color].blue / 65536.0;
+
+ glFrontFace(GL_CCW);
+
+ glPushMatrix();
+ glTranslatef(x, y, 0);
+ glScalef (2, 2, 2);
+
+ glTranslatef (0, 0, 2); /* put end of handle in hand */
+ glRotatef (s->angle / M_PI*180, 1, 0, 0);
+
+ glScalef (0.3, 1, 1); /* flatten blade */
+
+ glTranslatef(0, 6, 0);
+ glRotatef (180, 1, 0, 0);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor1);
+ polys += tube (0, 0, 0,
+ 0, 10, 0,
+ 1, 0,
+ slices, True, True, MI_IS_WIREFRAME(mi));
+
+ glTranslatef (0, 12, 0);
+ glScalef (0.7, 10, 0.7);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor2);
+ polys += unit_sphere (slices, slices, MI_IS_WIREFRAME(mi));
+
+ glPopMatrix();
+ return polys;
+}
+
+
+static int
+show_ring(ModeInfo *mi, unsigned long color, Trace *s)
+{
+ int polys = 0;
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ /*int offset = (int)(s->angle*64*180/M_PI);*/
+ short x = (short)(SCENE_WIDTH/2 + s->x * sp->scale);
+ short y = (short)(SCENE_HEIGHT - s->y * sp->scale);
+ double radius = 12 * sp->scale;
+ GLfloat gcolor1[4] = { 0, 0, 0, 1 };
+ GLfloat gcolor2[4] = { 0, 0, 0, 1 };
+ int slices = 24;
+ int i, j;
+ int wire_p = MI_IS_WIREFRAME(mi);
+ GLfloat width = M_PI * 2 / slices;
+ GLfloat ra = 1.0;
+ GLfloat rb = 0.7;
+ GLfloat thickness = 0.15;
+
+ /* Avoid wrapping */
+ if(s->y*sp->scale > SCENE_HEIGHT * 2) return 0;
+
+ gcolor1[0] = mi->colors[color].red / 65536.0;
+ gcolor1[1] = mi->colors[color].green / 65536.0;
+ gcolor1[2] = mi->colors[color].blue / 65536.0;
+
+ gcolor2[0] = gcolor1[0] / 3;
+ gcolor2[1] = gcolor1[1] / 3;
+ gcolor2[2] = gcolor1[2] / 3;
+
+ glFrontFace(GL_CCW);
+
+ glPushMatrix();
+ glTranslatef(0, 0, 12); /* back of ring in hand */
+
+ glTranslatef(x, y, 0);
+ glScalef(radius, radius, radius);
+
+ glRotatef (90, 0, 1, 0);
+ glRotatef (s->angle / M_PI*180, 0, 0, 1);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor1);
+
+ /* discs */
+ for (j = -1; j <= 1; j += 2)
+ {
+ GLfloat z = j * thickness/2;
+ glFrontFace (j < 0 ? GL_CCW : GL_CW);
+ glNormal3f (0, 0, j*1);
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < slices + (wire_p ? 0 : 1); i++) {
+ GLfloat th, cth, sth;
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ (i % (slices/3) ? gcolor1 : gcolor2));
+ th = i * width;
+ cth = cos(th);
+ sth = sin(th);
+ glVertex3f (cth * ra, sth * ra, z);
+ glVertex3f (cth * rb, sth * rb, z);
+ polys++;
+ }
+ glEnd();
+ }
+
+ /* outer ring */
+ glFrontFace (GL_CCW);
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < slices + (wire_p ? 0 : 1); i++)
+ {
+ GLfloat th = i * width;
+ GLfloat cth = cos(th);
+ GLfloat sth = sin(th);
+ glNormal3f (cth, sth, 0);
+ glVertex3f (cth * ra, sth * ra, thickness/2);
+ glVertex3f (cth * ra, sth * ra, -thickness/2);
+ polys++;
+ }
+ glEnd();
+
+ /* inner ring */
+ glFrontFace (GL_CW);
+ glBegin (wire_p ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i < slices + (wire_p ? 0 : 1); i++)
+ {
+ GLfloat th = i * width;
+ GLfloat cth = cos(th);
+ GLfloat sth = sin(th);
+ glNormal3f (-cth, -sth, 0);
+ glVertex3f (cth * rb, sth * ra, thickness/2);
+ glVertex3f (cth * rb, sth * ra, -thickness/2);
+ polys++;
+ }
+ glEnd();
+
+ glFrontFace (GL_CCW);
+ glPopMatrix();
+ return polys;
+}
+
+
+static int
+show_bball(ModeInfo *mi, unsigned long color, Trace *s)
+{
+ int polys = 0;
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ /*int offset = (int)(s->angle*64*180/M_PI);*/
+ short x = (short)(SCENE_WIDTH/2 + s->x * sp->scale);
+ short y = (short)(SCENE_HEIGHT - s->y * sp->scale);
+ double radius = 12 * sp->scale;
+ GLfloat gcolor1[4] = { 0, 0, 0, 1 };
+ GLfloat gcolor2[4] = { 0, 0, 0, 1 };
+ int slices = 16;
+ int i, j;
+
+ /* Avoid wrapping */
+ if(s->y*sp->scale > SCENE_HEIGHT * 2) return 0;
+
+ gcolor1[0] = mi->colors[color].red / 65536.0;
+ gcolor1[1] = mi->colors[color].green / 65536.0;
+ gcolor1[2] = mi->colors[color].blue / 65536.0;
+
+ glFrontFace(GL_CCW);
+
+ {
+ GLfloat scale = radius;
+ glPushMatrix();
+
+ glTranslatef(0, -6, 5); /* position on top of hand */
+
+ glTranslatef(x, y, 0);
+ glScalef(scale, scale, scale);
+ glRotatef (s->angle / M_PI*180, 1, 0, 1);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor1);
+ polys += unit_sphere (slices, slices, MI_IS_WIREFRAME(mi));
+
+ glRotatef (90, 0, 0, 1);
+ glTranslatef (0, 0, 0.81);
+ glScalef(0.15, 0.15, 0.15);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor2);
+ for (i = 0; i < 3; i++) {
+ glPushMatrix();
+ glTranslatef (0, 0, 1);
+ glRotatef (360 * i / 3, 0, 0, 1);
+ glTranslatef (2, 0, 0);
+ glRotatef (18, 0, 1, 0);
+ glBegin (MI_IS_WIREFRAME(mi) ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+ glVertex3f (0, 0, 0);
+ for (j = slices; j >= 0; j--) {
+ GLfloat th = j * M_PI*2 / slices;
+ glVertex3f (cos(th), sin(th), 0);
+ polys++;
+ }
+ glEnd();
+ glPopMatrix();
+ }
+
+ glPopMatrix();
+ }
+ return polys;
+}
+
+
+/**************************************************************************
+ * Public Functions *
+ * *
+ **************************************************************************/
+
+
+/* FIXME: refill_juggle currently just appends new throws to the
+ * programme. This is fine if the programme is empty, but if there
+ * are still some trajectories left then it really should take these
+ * into account */
+
+static void
+refill_juggle(ModeInfo * mi)
+{
+ jugglestruct *sp = NULL;
+ int i;
+
+ if (juggles == NULL)
+ return;
+ sp = &juggles[MI_SCREEN(mi)];
+
+ /* generate pattern */
+
+ if (pattern == NULL) {
+
+#define MAXPAT 10
+#define MAXREPEAT 300
+#define CHANGE_BIAS 8 /* larger makes num_ball changes less likely */
+#define POSITION_BIAS 20 /* larger makes hand movements less likely */
+
+ int count = 0;
+ while (count < MI_CYCLES(mi)) {
+ char buf[MAXPAT * 3 + 3], *b = buf;
+ int maxseen = 0;
+ int l = NRAND(MAXPAT) + 1;
+ int t = NRAND(MIN(MAXREPEAT, (MI_CYCLES(mi) - count))) + 1;
+
+ { /* vary number of balls */
+ int new_balls = sp->num_balls;
+ int change;
+
+ if (new_balls == 2) /* Do not juggle 2 that often */
+ change = NRAND(2 + CHANGE_BIAS / 4);
+ else
+ change = NRAND(2 + CHANGE_BIAS);
+ switch (change) {
+ case 0:
+ new_balls++;
+ break;
+ case 1:
+ new_balls--;
+ break;
+ default:
+ break; /* NO-OP */
+ }
+ if (new_balls < sp->patternindex.minballs) {
+ new_balls += 2;
+ }
+ if (new_balls > sp->patternindex.maxballs) {
+ new_balls -= 2;
+ }
+ if (new_balls < sp->num_balls) {
+ if (!program(mi, "[*]", NULL, 1)) /* lose ball */
+ return;
+ }
+ sp->num_balls = new_balls;
+ }
+
+ count += t;
+ if (NRAND(2) && sp->patternindex.index[sp->num_balls].number) {
+ /* Pick from PortFolio */
+ int p = sp->patternindex.index[sp->num_balls].start +
+ NRAND(sp->patternindex.index[sp->num_balls].number);
+ if (!program(mi, portfolio[p].pattern, portfolio[p].name, t))
+ return;
+ } else {
+ /* Invent a new pattern */
+ *b++='[';
+ for(i = 0; i < l; i++){
+ int n, m;
+ do { /* Triangular Distribution => high values more likely */
+ m = NRAND(sp->num_balls + 1);
+ n = NRAND(sp->num_balls + 1);
+ } while(m >= n);
+ if (n == sp->num_balls) {
+ maxseen = 1;
+ }
+ switch(NRAND(5 + POSITION_BIAS)){
+ case 0: /* Outside throw */
+ *b++ = '+'; break;
+ case 1: /* Cross throw */
+ *b++ = '='; break;
+ case 2: /* Cross catch */
+ *b++ = '&'; break;
+ case 3: /* Cross throw and catch */
+ *b++ = 'x'; break;
+ case 4: /* Bounce */
+ *b++ = '_'; break;
+ default:
+ break; /* Inside throw (default) */
+ }
+
+ *b++ = n + '0';
+ *b++ = ' ';
+ }
+ *b++ = ']';
+ *b = '\0';
+ if (maxseen) {
+ if (!program(mi, buf, NULL, t))
+ return;
+ }
+ }
+ }
+ } else { /* pattern supplied in height or 'a' notation */
+ if (!program(mi, pattern, NULL, MI_CYCLES(mi)))
+ return;
+ }
+
+ adam(sp);
+
+ name(sp);
+
+ if (!part(mi))
+ return;
+
+ lob(mi);
+
+ clap(sp);
+
+ positions(sp);
+
+ if (!projectile(sp)) {
+ free_juggle(mi);
+ return;
+ }
+
+ hands(sp);
+#ifdef DEBUG
+ if(MI_IS_DEBUG(mi)) dump(sp);
+#endif
+}
+
+static void
+change_juggle(ModeInfo * mi)
+{
+ jugglestruct *sp = NULL;
+ Trajectory *t;
+
+ if (juggles == NULL)
+ return;
+ sp = &juggles[MI_SCREEN(mi)];
+
+ /* Strip pending trajectories */
+ for (t = sp->head->next; t != sp->head; t = t->next) {
+ if(t->start > sp->time || t->finish < sp->time) {
+ Trajectory *n = t;
+ t=t->prev;
+ trajectory_destroy(n);
+ }
+ }
+
+ /* Pick the current object theme */
+ sp->objtypes = choose_object();
+
+ refill_juggle(mi);
+
+ mi->polygon_count += show_figure(mi, True);
+}
+
+
+ENTRYPOINT void
+reshape_juggle (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT void
+init_juggle (ModeInfo * mi)
+{
+ jugglestruct *sp = 0;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, juggles);
+
+ sp = &juggles[MI_SCREEN(mi)];
+
+ if (!sp->glx_context) /* re-initting breaks print_texture_label */
+ sp->glx_context = init_GL(mi);
+
+ sp->font_data = load_texture_font (mi->dpy, "titleFont");
+
+ reshape_juggle (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ make_random_colormap (0, 0, 0,
+ mi->colors, &MI_NPIXELS(mi),
+ True, False, 0, False);
+
+ {
+ double spin_speed = 0.05;
+ double wander_speed = 0.001;
+ double spin_accel = 0.05;
+ sp->rot = make_rotator (0, spin_speed, 0,
+ spin_accel, wander_speed, False);
+ sp->trackball = gltrackball_init (False);
+ }
+
+ if (only && *only && strcmp(only, " ")) {
+ balls = clubs = torches = knives = rings = bballs = False;
+ if (!strcasecmp (only, "balls")) balls = True;
+ else if (!strcasecmp (only, "clubs")) clubs = True;
+ else if (!strcasecmp (only, "torches")) torches = True;
+ else if (!strcasecmp (only, "knives")) knives = True;
+ else if (!strcasecmp (only, "rings")) rings = True;
+ else if (!strcasecmp (only, "bballs")) bballs = True;
+ else {
+ (void) fprintf (stderr,
+ "Juggle: -only must be one of: balls, clubs, torches, knives,\n"
+ "\t rings, or bballs (not \"%s\")\n", only);
+#ifdef STANDALONE /* xlock mustn't exit merely because of a bad argument */
+ exit (1);
+#endif
+ }
+ }
+
+ /* #### hard to make this look good in OpenGL... */
+ torches = False;
+
+
+ if (sp->head == 0) { /* first time initializing this juggler */
+
+ sp->count = ABS(MI_COUNT(mi));
+ if (sp->count == 0)
+ sp->count = 200;
+
+ /* record start time */
+ sp->begintime = time(NULL);
+ if(sp->patternindex.maxballs > 0) {
+ sp->num_balls = sp->patternindex.minballs +
+ NRAND(sp->patternindex.maxballs - sp->patternindex.minballs);
+ }
+
+ mi->polygon_count +=
+ show_figure(mi, True); /* Draw figure. Also discovers
+ information about the juggler's
+ proportions */
+
+ /* "7" should be about three times the height of the juggler's
+ shoulders */
+ sp->Gr = -GRAVITY(3 * sp->arm[0][RIGHT][SHOULDER].y,
+ 7 * THROW_CATCH_INTERVAL);
+
+ if(!balls && !clubs && !torches && !knives && !rings && !bballs)
+ balls = True; /* Have to juggle something! */
+
+ /* create circular trajectory list */
+ ADD_ELEMENT(Trajectory, sp->head, sp->head);
+ if(sp->head == NULL){
+ free_juggle(mi);
+ return;
+ }
+
+ /* create circular object list */
+ ADD_ELEMENT(Object, sp->objects, sp->objects);
+ if(sp->objects == NULL){
+ free_juggle(mi);
+ return;
+ }
+
+ sp->pattern = strdup(""); /* Initialise saved pattern with
+ free-able memory */
+ }
+
+ sp = &juggles[MI_SCREEN(mi)];
+
+ if (pattern &&
+ (!*pattern ||
+ !strcasecmp (pattern, ".") ||
+ !strcasecmp (pattern, "random")))
+ pattern = NULL;
+
+ if (pattern == NULL && sp->patternindex.maxballs == 0) {
+ /* pattern list needs indexing */
+ int nelements = countof(portfolio);
+ int numpat = 0;
+ int i;
+
+ /* sort according to number of balls */
+ qsort((void*)portfolio, nelements,
+ sizeof(portfolio[1]), compare_num_balls);
+
+ /* last pattern has most balls */
+ sp->patternindex.maxballs = get_num_balls(portfolio[nelements - 1].pattern);
+ /* run through sorted list, indexing start of each group
+ and number in group */
+ sp->patternindex.maxballs = 1;
+ for (i = 0; i < nelements; i++) {
+ int b = get_num_balls(portfolio[i].pattern);
+ if (b > sp->patternindex.maxballs) {
+ sp->patternindex.index[sp->patternindex.maxballs].number = numpat;
+ if(numpat == 0) sp->patternindex.minballs = b;
+ sp->patternindex.maxballs = b;
+ numpat = 1;
+ sp->patternindex.index[sp->patternindex.maxballs].start = i;
+ } else {
+ numpat++;
+ }
+ }
+ sp->patternindex.index[sp->patternindex.maxballs].number = numpat;
+ }
+
+ /* Set up programme */
+ change_juggle(mi);
+
+ /* Only put things here that won't interrupt the programme during
+ a window resize */
+
+ /* Use MIN so that users can resize in interesting ways, eg
+ narrow windows for tall patterns, etc */
+ sp->scale = MIN(SCENE_HEIGHT/480.0, SCENE_WIDTH/160.0);
+
+}
+
+ENTRYPOINT Bool
+juggle_handle_event (ModeInfo *mi, XEvent *event)
+{
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, sp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &sp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ change_juggle (mi);
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+draw_juggle (ModeInfo *mi)
+{
+ jugglestruct *sp = &juggles[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ Trajectory *traj = NULL;
+ Object *o = NULL;
+ unsigned long future = 0;
+ char *pattern = NULL;
+
+ if (!sp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ glTranslatef(0,-3,0);
+
+ {
+ double x, y, z;
+ get_position (sp->rot, &x, &y, &z, !sp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 3,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (sp->trackball);
+
+ get_rotation (sp->rot, &x, &y, &z, !sp->button_down_p);
+
+ if (y < 0.8) y = 0.8 - (y - 0.8); /* always face forward */
+ if (y > 1.2) y = 1.2 - (y - 1.2);
+
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ {
+ GLfloat scale = 20.0 / SCENE_HEIGHT;
+ glScalef(scale, scale, scale);
+ }
+
+ glRotatef (180, 0, 0, 1);
+ glTranslatef(-SCENE_WIDTH/2, -SCENE_HEIGHT/2, 0);
+ glTranslatef(0, -150, 0);
+
+ mi->polygon_count = 0;
+
+ /* Update timer */
+ if (real) {
+ struct timeval tv;
+ (void)gettimeofday(&tv, NULL);
+ sp->time = (int) ((tv.tv_sec - sp->begintime)*1000 + tv.tv_usec/1000);
+ } else {
+ sp->time += MI_DELAY(mi) / 1000;
+ }
+
+ /* First pass: Move arms and strip out expired elements */
+ for (traj = sp->head->next; traj != sp->head; traj = traj->next) {
+ if (traj->status != PREDICTOR) {
+ /* Skip any elements that need further processing */
+ /* We could remove them, but there shoudn't be many and they
+ would be needed if we ever got the pattern refiller
+ working */
+ continue;
+ }
+ if (traj->start > future) { /* Lookahead to the end of the show */
+ future = traj->start;
+ }
+ if (sp->time < traj->start) { /* early */
+ continue;
+ } else if (sp->time < traj->finish) { /* working */
+
+ /* Look for pattern name */
+ if(traj->pattern != NULL) {
+ pattern=traj->pattern;
+ }
+
+ if (traj->type == Empty || traj->type == Full) {
+ /* Only interested in hands on this pass */
+/* double angle = traj->angle + traj->spin * (sp->time - traj->start);*/
+ double xd = 0, yd = 0;
+ DXPoint p;
+
+ /* Find the catching offset */
+ if(traj->object != NULL) {
+#if 0
+ /* #### not sure what this is doing, but I'm guessing
+ that the use of PERSPEC means this isn't needed
+ in the OpenGL version? -jwz
+ */
+ if(ObjectDefs[traj->object->type].handle > 0) {
+ /* Handles Need to be oriented */
+ xd = ObjectDefs[traj->object->type].handle *
+ PERSPEC * sin(angle);
+ yd = ObjectDefs[traj->object->type].handle *
+ cos(angle);
+ } else
+#endif
+ {
+ /* Balls are always caught at the bottom */
+ xd = 0;
+ yd = -4;
+ }
+ }
+ p.x = (CUBIC(traj->xp, sp->time) - xd);
+ p.y = (CUBIC(traj->yp, sp->time) + yd);
+ reach_arm(mi, traj->hand, &p);
+
+ /* Store updated hand position */
+ traj->x = p.x + xd;
+ traj->y = p.y - yd;
+ }
+ if (traj->type == Ball || traj->type == Full) {
+ /* Only interested in objects on this pass */
+ double x, y;
+ Trace *s;
+
+ if(traj->type == Full) {
+ /* Adjusted these in the first pass */
+ x = traj->x;
+ y = traj->y;
+ } else {
+ x = CUBIC(traj->xp, sp->time);
+ y = CUBIC(traj->yp, sp->time);
+ }
+
+ ADD_ELEMENT(Trace, s, traj->object->trace->prev);
+ s->x = x;
+ s->y = y;
+ s->angle = traj->angle + traj->spin * (sp->time - traj->start);
+ s->divisions = traj->divisions;
+ traj->object->tracelen++;
+ traj->object->active = True;
+ }
+ } else { /* expired */
+ Trajectory *n = traj;
+ traj=traj->prev;
+ trajectory_destroy(n);
+ }
+ }
+
+
+ mi->polygon_count += show_figure(mi, False);
+ mi->polygon_count += show_arms(mi);
+
+ /* Draw Objects */
+ glTranslatef(0, 0, ARMLENGTH);
+ for (o = sp->objects->next; o != sp->objects; o = o->next) {
+ if(o->active) {
+ mi->polygon_count += ObjectDefs[o->type].draw(mi, o->color,
+ o->trace->prev);
+ o->active = False;
+ }
+ }
+
+
+ /* Save pattern name so we can erase it when it changes */
+ if(pattern != NULL && strcmp(sp->pattern, pattern) != 0 ) {
+ free(sp->pattern);
+ sp->pattern = strdup(pattern);
+
+ if (MI_IS_VERBOSE(mi)) {
+ (void) fprintf(stderr, "Juggle[%d]: Running: %s\n",
+ MI_SCREEN(mi), sp->pattern);
+ }
+ }
+
+ glColor3f (1, 1, 0);
+ print_texture_label (mi->dpy, sp->font_data,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, sp->pattern);
+
+#ifdef MEMTEST
+ if((int)(sp->time/10) % 1000 == 0)
+ (void) fprintf(stderr, "sbrk: %d\n", (int)sbrk(0));
+#endif
+
+ if (future < sp->time + 100 * THROW_CATCH_INTERVAL) {
+ refill_juggle(mi);
+ } else if (sp->time > 1<<30) { /* Hard Reset before the clock wraps */
+ init_juggle(mi);
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("Juggler3D", juggler3d, juggle)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/juggler3d.man b/hacks/glx/juggler3d.man
new file mode 100644
index 0000000..48d4716
--- /dev/null
+++ b/hacks/glx/juggler3d.man
@@ -0,0 +1,183 @@
+'\" t
+.\" ** The above line should force tbl to be used as a preprocessor **
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+juggler3d - juggling man screen saver.
+.SH SYNOPSIS
+.B juggler3d
+[\-display host:display.screen ]
+[\-root ]
+[\-window ]
+[\-mono ]
+[\-install | \-noinstall ]
+[\-visual visual ]
+[\-window\-id id ]
+[\-pattern pattern ]
+[\-tail number ]
+[\-real | \-no\-real ]
+[\-describe | \-no\-describe ]
+[\-balls | \-no\-balls ]
+[\-clubs | \-no\-clubs ]
+[\-torches | \-no\-torches ]
+[\-knives | \-no\-knives ]
+[\-rings | \-no\-rings ]
+[\-bballs | \-no\-bballs ]
+[\-count count ]
+[\-cycles cycles ]
+[\-delay delay ]
+[\-ncolors ncolors ]
+[\-fps]
+.SH DESCRIPTION
+Draws a stick-man juggling various collections of objects.
+.SH OPTIONS
+.I juggler3d
+accepts the following options:
+.TP 8
+.B \-display host:display.screen
+X11 display to use. Overrides
+.B DISPLAY
+environment variable.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-window
+Draw on a newly-created X window. This is the default.
+.TP 8
+.B \-mono
+Draw in monochrome.
+.TP 8
+.B \-install | \-noinstall
+Turn on/off installing colormap.
+.TP 8
+.B \-visual visual
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window\-id id
+Draw on an already existing X window.
+.TP 8
+.B \-pattern\ \(dq pattern \(dq
+Specify juggling pattern in annotated
+.B site-swap
+notation. In
+.B site-swap
+notation, the "height" of each throw is given. E.g., "3" is the height
+needed to juggle a 3\-Cascade. Note that these sequences need to be
+chosen carefully, to avoid collisions.
+
+Annotations indicate relative hand movements or tricks:
+.TS
+cb l.
+\&\- Inside throw (default)
++ Outside throw
+\&= Cross Throw
+& Cross Catch
+x Cross Throw and Catch
+\&_ Bounce
+.TE
+.TP 8
+.B \-pattern\ \(dq[ pattern ]\(dq
+Specify juggling pattern in annotated
+.B Adam
+notation. Adam notation is a little harder to visualize. Each
+integer
+.B n
+represents a cyclic permutation of (0...n). The equivalent
+.B site-swap
+value is determined by calculating how many of the permutations it
+takes to get back to the identity. The largest number used is the
+same as the number of objects in the pattern. The advantage of Adam
+notation is that these sequences do not need to be chosen carefully,
+since all possible sequences are juggle-able. Annotations are the same
+as in
+.B site-swap
+notation.
+
+For example, both of these describe a 3\-Shower:
+.IP
+.B \-pattern\ "+5 1"
+.IP
+.B \-pattern\ "[+3 1]"
+
+For further examples, see the
+.B portfolio
+list in the source code.
+.TP 8
+.B \-tail number
+Minimum Trail Length. 0 \- 100. Default: 1. Objects may override
+this, for example flaming torches always leave a trail.
+.TP 8
+.BR \-real | \-no\-real
+Turn on/off real-time juggling.
+.B Deprecated.
+There should be no need to turn off real-time juggling, even on slow
+systems. Adjust speed using
+.B \-count
+above.
+.TP 8
+.BR \-describe | \-no\-describe
+Turn on/off pattern descriptions.
+.TP 8
+.BR \-balls | \-no\-balls
+Turn on/off Balls.
+.TP 8
+.BR \-clubs | \-no\-clubs
+Turn on/off Clubs.
+.TP 8
+.BR \-torches | \-no\-torches
+Turn on/off Flaming Torches.
+.TP 8
+.BR \-knives | \-no\-knives
+Turn on/off Knives.
+.TP 8
+.BR \-rings | \-no\-rings
+Turn on/off Rings.
+.TP 8
+.BR \-bballs | \-no\-bballs
+Turn on/off Bowling Balls.
+.TP 8
+.B \-count number
+Speed. 50 \- 1000. Default: 200. This determines the expected time
+interval between a throw and the next catch, in milliseconds.
+.TP 8
+.B \-cycles number
+Performance Length. 50 \- 1000. Default: 1000. Setting this smaller
+will force the juggler to switch patterns (and objects) more often.
+.TP 8
+.B \-delay delay
+Additional delay between frames, in microseconds. Default: 10000.
+.B Deprecated.
+Adjust speed using
+.BR \-count .
+.TP 8
+.B \-ncolors ncolors
+Maximum number of colors to use. Default: 32.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1996,2000,2002,2004 by Tim Auckland. Permission to
+use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided
+that the above copyright notice appear in all copies and that both
+that copyright notice and this permission notice appear in supporting
+documentation. No representations are made about the suitability of
+this software for any purpose. It is provided "as is" without express
+or implied warranty.
+.SH AUTHOR
+Tim Auckland.
+
+Converted to OpenGL by Jamie Zawinski, 2009.
diff --git a/hacks/glx/kaleidocycle.c b/hacks/glx/kaleidocycle.c
new file mode 100644
index 0000000..884400f
--- /dev/null
+++ b/hacks/glx/kaleidocycle.c
@@ -0,0 +1,574 @@
+/* kaleidocycle, Copyright (c) 2013-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * A loop of rotating tetrahedra. Created by jwz, July 2013.
+ * Inspired by, and some math borrowed from:
+ * http://www.kaleidocycles.de/pdf/kaleidocycles_theory.pdf
+ * http://intothecontinuum.tumblr.com/post/50873970770/an-even-number-of-at-least-8-regular-tetrahedra
+ */
+
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 16 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_kaleidocycle 0
+# define release_kaleidocycle 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+#include <math.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPIN "Z"
+#define DEF_WANDER "False"
+#define DEF_SPEED "1.0"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot, *rot2;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int min_count, max_count;
+ Bool startup_p;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor;
+
+ GLfloat count;
+ GLfloat th, dth;
+
+ enum { STATIC, IN, OUT } mode, prev_mode;
+
+} kaleidocycle_configuration;
+
+static kaleidocycle_configuration *bps = NULL;
+
+static char *do_spin;
+static GLfloat speed;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt kaleidocycle_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_kaleidocycle (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+kaleidocycle_handle_event (ModeInfo *mi, XEvent *event)
+{
+ kaleidocycle_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '+' || c == '.' || c == '>' || c == '=' || c == '+' ||
+ keysym == XK_Right || keysym == XK_Up || keysym == XK_Next)
+ {
+ bp->mode = IN;
+ return True;
+ }
+ else if ((c == '-' || c == ',' || c == '<' || c == '-' || c == '_' ||
+ keysym == XK_Left || keysym == XK_Down || keysym == XK_Prior) &&
+ bp->count > bp->min_count)
+ {
+ bp->mode = OUT;
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ goto DEF;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ DEF:
+ if (bp->count <= bp->min_count)
+ bp->mode = IN;
+ else
+ bp->mode = (random() & 1) ? IN : OUT;
+ return True;
+ }
+
+ return False;
+}
+
+
+
+ENTRYPOINT void
+init_kaleidocycle (ModeInfo *mi)
+{
+ kaleidocycle_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_kaleidocycle (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glLineWidth (4);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ {
+ Bool spinx = False, spiny = False, spinz = False;
+ double spin_speed = 0.25;
+ double wander_speed = 0.005;
+ double spin_accel = 0.2;
+ double twist_speed = 0.25;
+ double twist_accel = 1.0;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') spinx = True;
+ else if (*s == 'y' || *s == 'Y') spiny = True;
+ else if (*s == 'z' || *s == 'Z') spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ bp->rot = make_rotator (spinx ? spin_speed : 0,
+ spiny ? spin_speed : 0,
+ spinz ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->rot2 = make_rotator (twist_speed, 0, 0, twist_accel, 0, True);
+
+ bp->trackball = gltrackball_init (True);
+ }
+
+ if (MI_COUNT(mi) < 8) MI_COUNT(mi) = 8;
+ if (MI_COUNT(mi) & 1) MI_COUNT(mi)++;
+
+ bp->min_count = 8;
+ bp->max_count = 12 + MI_COUNT(mi) * 1.3;
+ if (bp->max_count & 1) bp->max_count++;
+ bp->startup_p = True;
+
+ bp->count = 0;
+ bp->mode = IN;
+ bp->prev_mode = IN;
+
+/*
+ bp->count = MI_COUNT(mi);
+ bp->mode = STATIC;
+*/
+
+ bp->ncolors = 512;
+ if (! bp->colors)
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_uniform_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+ for (i = 0; i < bp->ncolors; i++)
+ {
+ /* make colors twice as bright */
+ bp->colors[i].red = (bp->colors[i].red >> 2) + 0x7FFF;
+ bp->colors[i].green = (bp->colors[i].green >> 2) + 0x7FFF;
+ bp->colors[i].blue = (bp->colors[i].blue >> 2) + 0x7FFF;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+
+/* t = toroidal rotation, a = radial position
+ colors = 4 colors, 4 channels each.
+ */
+static void
+draw_tetra (ModeInfo *mi, double t, double a, Bool reflect_p,
+ GLfloat *colors)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+
+ XYZ v1, v2, v3, P, Q;
+ XYZ verts[4];
+ int i;
+
+ double scale;
+ double sint = sin(t);
+ double cost = cos(t);
+ double tana = tan(a);
+ double sint2 = sint * sint;
+ double tana2 = tana * tana;
+
+ v1.x = cost;
+ v1.y = 0;
+ v1.z = sint;
+
+ scale = 1 / sqrt (1 + sint2 * tana2);
+ v2.x = scale * -sint;
+ v2.y = scale * -sint * tana;
+ v2.z = scale * cost;
+
+ v3.x = scale * -sint2 * tana;
+ v3.y = scale;
+ v3.z = scale * cost * sint * tana;
+
+ P.x = v3.y / tana - v3.x;
+ P.y = 0;
+ P.z = -v3.z / 2;
+
+ Q.x = v3.y / tana;
+ Q.y = v3.y;
+ Q.z = v3.z / 2;
+
+ verts[0] = P;
+ verts[1] = P;
+ verts[2] = Q;
+ verts[3] = Q;
+
+ scale = sqrt(2) / 2;
+ verts[0].x = P.x - scale * v1.x;
+ verts[0].y = P.y - scale * v1.y;
+ verts[0].z = P.z - scale * v1.z;
+
+ verts[1].x = P.x + scale * v1.x;
+ verts[1].y = P.y + scale * v1.y;
+ verts[1].z = P.z + scale * v1.z;
+
+ verts[2].x = Q.x - scale * v2.x;
+ verts[2].y = Q.y - scale * v2.y;
+ verts[2].z = Q.z - scale * v2.z;
+
+ verts[3].x = Q.x + scale * v2.x;
+ verts[3].y = Q.y + scale * v2.y;
+ verts[3].z = Q.z + scale * v2.z;
+
+ for (i = 0; i < 4; i++)
+ {
+ Bool reflect2_p = ((i + (reflect_p != 0)) & 1);
+ XYZ a = verts[(i+1) % 4];
+ XYZ b = verts[(i+2) % 4];
+ XYZ c = verts[(i+3) % 4];
+ XYZ n = ((i & 1)
+ ? calc_normal (b, a, c)
+ : calc_normal (a, b, c));
+ if (wire)
+ glColor4fv (colors + (i * 4));
+ else
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, colors + (i * 4));
+
+ glFrontFace (reflect2_p ? GL_CW : GL_CCW);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glNormal3f (n.x, n.y, n.z);
+ glVertex3f (a.x, a.y, a.z);
+ glVertex3f (b.x, b.y, b.z);
+ glVertex3f (c.x, c.y, c.z);
+ glEnd();
+ }
+}
+
+
+/* Reflect through the plane normal to the given vector.
+ */
+static void
+reflect (double x, double y, double z)
+{
+ GLfloat m[4][4];
+
+ m[0][0] = 1 - (2 * x * x);
+ m[1][0] = -2 * x * y;
+ m[2][0] = -2 * x * z;
+ m[3][0] = 0;
+
+ m[0][1] = -2 * x * y;
+ m[1][1] = 1 - (2 * y * y);
+ m[2][1] = -2 * y * z;
+ m[3][1] = 0;
+
+ m[0][2] = -2 * x * z;
+ m[1][2] = -2 * y * z;
+ m[2][2] = 1 - (2 * z * z);
+ m[3][2] = 0;
+
+ m[0][3] = 0;
+ m[1][3] = 0;
+ m[2][3] = 0;
+ m[3][3] = 1;
+
+ glMultMatrixf (&m[0][0]);
+}
+
+
+ENTRYPOINT void
+draw_kaleidocycle (ModeInfo *mi)
+{
+ kaleidocycle_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ GLfloat colors[4*4];
+ GLfloat count;
+ double t, a;
+ int i;
+
+ GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat bshiny = 128.0;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ mi->polygon_count = 0;
+
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 5,
+ (y - 0.5) * 5,
+ (z - 0.5) * 10);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1, 0, 0);
+ glRotatef (y * 360, 0, 1, 0);
+ glRotatef (z * 360, 0, 0, 1);
+
+ get_rotation (bp->rot2, &x, &y, &z, !bp->button_down_p);
+ bp->th = x * 360 * 10 * speed;
+
+ /* Make sure the twist is always in motion. Without this, the rotator
+ sometimes stops, and for too long, and it's boring looking.
+ */
+ bp->th += speed * bp->dth++;
+ while (bp->dth > 360) bp->dth -= 360;
+ while (bp->th > 360) bp->th -= 360;
+ }
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT, GL_SHININESS, bshiny);
+
+
+ /* Evenly spread the colors of the faces, and cycle them together.
+ */
+ for (i = 0; i < 4; i++)
+ {
+ int o = bp->ncolors / 4;
+ int c = (bp->ccolor + (o*i)) % bp->ncolors;
+ colors[i*4+0] = bp->colors[c].red / 65536.0;
+ colors[i*4+1] = bp->colors[c].green / 65536.0;
+ colors[i*4+2] = bp->colors[c].blue / 65536.0;
+ colors[i*4+3] = 1;
+ }
+ bp->ccolor++;
+ if (bp->ccolor >= bp->ncolors) bp->ccolor = 0;
+
+
+ count = (int) floor (bp->count);
+ while (count < 8) count++;
+ if (((int) floor (count)) & 1) count++;
+
+ a = 2 * M_PI / (bp->count < 8 ? 8 : bp->count);
+ t = bp->th / (180 / M_PI);
+
+ glScalef (3, 3, 3);
+ glScalef (a, a, a);
+ glRotatef (90, 0, 0, 1);
+/* glRotatef (45, 0, 1, 0); */
+
+ for (i = 0; i <= (int) floor (bp->count); i++)
+ {
+ Bool flip_p = (i & 1);
+ glPushMatrix();
+ glRotatef ((i/2) * 4 * 180 / bp->count, 0, 0, 1);
+ if (flip_p) reflect (-sin(a), cos(a), 0);
+
+ if (bp->mode != STATIC && i >= (int) floor (bp->count))
+ {
+ /* Fractional bp->count means the last piece is in transition */
+ GLfloat scale = bp->count - (int) floor (bp->count);
+ GLfloat tick = 0.07 * speed;
+ GLfloat ocount = bp->count;
+ GLfloat alpha;
+
+ /* Fill in faster if we're starting up */
+ if (bp->count < MI_COUNT(mi))
+ tick *= 2;
+
+ glScalef (scale, scale, scale);
+
+ switch (bp->mode) {
+ case IN: break;
+ case OUT: tick = -tick; break;
+ case STATIC: tick = 0; break;
+ }
+
+ bp->count += tick;
+
+ if (bp->mode == IN
+ ? floor (ocount) != floor (bp->count)
+ : ceil (ocount) != ceil (bp->count))
+ {
+ if (bp->mode == IN)
+ bp->count = floor (ocount) + 1;
+ else
+ bp->count = ceil (ocount) - 1;
+
+ if (((int) floor (bp->count)) & 1 ||
+ (bp->mode == IN &&
+ (bp->count < MI_COUNT(mi) &&
+ bp->startup_p)))
+ {
+ /* keep going if it's odd, or less than 8. */
+ bp->count = round(bp->count);
+ }
+ else
+ {
+ bp->mode = STATIC;
+ bp->startup_p = False;
+ }
+ }
+
+ alpha = (scale * scale * scale * scale);
+ if (alpha < 0.4) alpha = 0.4;
+ colors[3] = colors[7] = colors[11] = colors[15] = alpha;
+ }
+
+ draw_tetra (mi, t, a, flip_p, colors);
+ mi->polygon_count += 4;
+
+ glPopMatrix();
+ }
+
+ if (bp->mode == STATIC && !(random() % 200)) {
+ if (bp->count <= bp->min_count)
+ bp->mode = IN;
+ else if (bp->count >= bp->max_count)
+ bp->mode = OUT;
+ else
+ bp->mode = bp->prev_mode;
+
+ bp->prev_mode = bp->mode;
+ }
+
+
+ mi->recursion_depth = ceil (bp->count);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Kaleidocycle", kaleidocycle)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/kaleidocycle.man b/hacks/glx/kaleidocycle.man
new file mode 100644
index 0000000..874d82d
--- /dev/null
+++ b/hacks/glx/kaleidocycle.man
@@ -0,0 +1,96 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "25-Jul-98" "X Version 11"
+.SH NAME
+kaleidocycle - draws twistable rings of tetrahedra
+.SH SYNOPSIS
+.B kaleidocycle
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-count \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-wander] [\-no-wander]
+[\-spin \fIaxes\fP]
+[\-no-spin]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIkaleidocycle\fP program draws a ring composed of tetrahedra
+connected at the edges that twists and rotates toroidally. Segments
+are occasionally inserted or removed.
+.SH OPTIONS
+.I kaleidocycle
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-count \fInumber\fP
+The initial number of segments. Default 16. Must be 8 or greater, and
+an even number.
+.TP 8
+.B \-speed \fInumber\fP
+Adjust the animation speed. 0.5 for half as fast, 2.0 for twice as fast.
+.TP 8
+.B \-wander
+Move the text around the screen. This is the default.
+.TP 8
+.B \-no\-wander
+Keep the text centered on the screen.
+.TP 8
+.B \-spin
+Which axes around which the text should spin. The default is "Z",
+meaning rotate the object the plane of the screen only.
+.TP 8
+.B \-no\-spin
+Don't spin the text at all: the same as \fB\-spin ""\fP.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2001-2013 by Jamie Zawinski.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>
diff --git a/hacks/glx/klein.c b/hacks/glx/klein.c
new file mode 100644
index 0000000..1c042da
--- /dev/null
+++ b/hacks/glx/klein.c
@@ -0,0 +1,2099 @@
+/* klein --- Shows a Klein bottle that rotates in 4d or on which you
+ can walk */
+
+#if 0
+static const char sccsid[] = "@(#)klein.c 1.1 08/10/04 xlockmore";
+#endif
+
+/* Copyright (c) 2005-2014 Carsten Steger <carsten@mirsanmir.org>. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * REVISION HISTORY:
+ * C. Steger - 08/10/04: Initial version
+ * C. Steger - 09/08/03: Changes to the parameter handling
+ * C. Steger - 13/12/25: Added the squeezed torus Klein bottle
+ * C. Steger - 14/10/03: Moved the curlicue texture to curlicue.h
+ */
+
+/*
+ * This program shows three different Klein bottles in 4d: the figure-8 Klein
+ * bottle, the squeezed torus Klein bottle, or the Lawson Klein bottle. You
+ * can walk on the Klein bottle, see it turn in 4d, or walk on it while it
+ * turns in 4d. The figure-8 Klein bottle is well known in its 3d form. The
+ * 4d form used in this program is an extension of the 3d form to 4d that
+ * does not intersect itself in 4d (which can be seen in the depth colors
+ * mode). The squeezed torus Klein bottle also does not intersect itself in
+ * 4d (which can be seen in the depth colors mode). The Lawson Klein bottle,
+ * on the other hand, does intersect itself in 4d. Its primary use is that
+ * it has a nice appearance for walking and for turning in 3d. The Klein
+ * bottle is a non-orientable surface. To make this apparent, the two-sided
+ * color mode can be used. Alternatively, orientation markers (curling
+ * arrows) can be drawn as a texture map on the surface of the Klein bottle.
+ * While walking on the Klein bottle, you will notice that the orientation
+ * of the curling arrows changes (which it must because the Klein bottle is
+ * non-orientable). The program projects the 4d Klein bottle to 3d using
+ * either a perspective or an orthographic projection. Which of the two
+ * alternatives looks more appealing depends on the viewing mode and the
+ * Klein bottle. For example, the Lawson Klein bottle looks nicest when
+ * projected perspectively. The figure-8 Klein bottle, on the other
+ * hand, looks nicer while walking when projected orthographically from 4d.
+ * For the squeezed torus Klein bottle, both projection modes give equally
+ * acceptable projections. The projected Klein bottle can then be projected
+ * to the screen either perspectively or orthographically. When using the
+ * walking modes, perspective projection to the screen should be used. There
+ * are three display modes for the Klein bottle: mesh (wireframe), solid, or
+ * transparent. Furthermore, the appearance of the Klein bottle can be as
+ * a solid object or as a set of see-through bands. Finally, the colors
+ * with with the Klein bottle is drawn can be set to two-sided, rainbow, or
+ * depth. In the first case, the Klein bottle is drawn with red on one
+ * "side" and green on the "other side". Of course, the Klein bottle only
+ * has one side, so the color jumps from red to green along a curve on the
+ * surface of the Klein bottle. This mode enables you to see that the Klein
+ * bottle is non-orientable. The second mode draws the Klein bottle with
+ * fully saturated rainbow colors. This gives a very nice effect when
+ * combined with the see-through bands mode or with the orientation markers
+ * drawn. The third mode draws the Klein bottle with colors that are chosen
+ * according to the 4d "depth" of the points. This mode enables you to see
+ * that the figure-8 and squeezed torus Klein bottles do not intersect
+ * themselves in 4d, while the Lawson Klein bottle does intersect itself.
+ * The rotation speed for each of the six planes around which the Klein
+ * bottle rotates can be chosen. For the walk-and-turn more, only the
+ * rotation speeds around the true 4d planes are used (the xy, xz, and yz
+ * planes). Furthermore, in the walking modes the walking direction in the
+ * 2d base square of the Klein bottle and the walking speed can be chosen.
+ * This program is somewhat inspired by Thomas Banchoff's book "Beyond the
+ * Third Dimension: Geometry, Computer Graphics, and Higher Dimensions",
+ * Scientific American Library, 1990.
+ */
+
+#include "curlicue.h"
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define KLEIN_BOTTLE_FIGURE_8 0
+#define KLEIN_BOTTLE_SQUEEZED_TORUS 1
+#define KLEIN_BOTTLE_LAWSON 2
+#define NUM_KLEIN_BOTTLES 3
+
+#define DISP_WIREFRAME 0
+#define DISP_SURFACE 1
+#define DISP_TRANSPARENT 2
+#define NUM_DISPLAY_MODES 3
+
+#define APPEARANCE_SOLID 0
+#define APPEARANCE_BANDS 1
+#define NUM_APPEARANCES 2
+
+#define COLORS_TWOSIDED 0
+#define COLORS_RAINBOW 1
+#define COLORS_DEPTH 2
+#define NUM_COLORS 3
+
+#define VIEW_WALK 0
+#define VIEW_TURN 1
+#define VIEW_WALKTURN 2
+#define NUM_VIEW_MODES 3
+
+#define DISP_3D_PERSPECTIVE 0
+#define DISP_3D_ORTHOGRAPHIC 1
+#define NUM_DISP_3D_MODES 2
+
+#define DISP_4D_PERSPECTIVE 0
+#define DISP_4D_ORTHOGRAPHIC 1
+#define NUM_DISP_4D_MODES 2
+
+#define DEF_KLEIN_BOTTLE "random"
+#define DEF_DISPLAY_MODE "random"
+#define DEF_APPEARANCE "random"
+#define DEF_COLORS "random"
+#define DEF_VIEW_MODE "random"
+#define DEF_MARKS "False"
+#define DEF_PROJECTION_3D "random"
+#define DEF_PROJECTION_4D "random"
+#define DEF_SPEEDWX "1.1"
+#define DEF_SPEEDWY "1.3"
+#define DEF_SPEEDWZ "1.5"
+#define DEF_SPEEDXY "1.7"
+#define DEF_SPEEDXZ "1.9"
+#define DEF_SPEEDYZ "2.1"
+#define DEF_WALK_DIRECTION "7.0"
+#define DEF_WALK_SPEED "20.0"
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+
+# define free_klein 0
+# define release_klein 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#ifndef HAVE_JWXYZ
+# include <X11/keysym.h>
+#endif
+
+#include "gltrackball.h"
+
+
+#ifdef USE_MODULES
+ModStruct klein_description =
+{"klein", "init_klein", "draw_klein", NULL,
+ "draw_klein", "change_klein", NULL, &klein_opts,
+ 25000, 1, 1, 1, 1.0, 4, "",
+ "Rotate a Klein bottle in 4d or walk on it", 0, NULL};
+
+#endif
+
+
+static char *klein_bottle;
+static char *mode;
+static char *appear;
+static char *color_mode;
+static char *view_mode;
+static Bool marks;
+static char *proj_3d;
+static char *proj_4d;
+static float speed_wx;
+static float speed_wy;
+static float speed_wz;
+static float speed_xy;
+static float speed_xz;
+static float speed_yz;
+static float walk_direction;
+static float walk_speed;
+
+
+static XrmOptionDescRec opts[] =
+{
+ {"-klein-bottle", ".kleinBottle", XrmoptionSepArg, 0 },
+ {"-figure-8", ".kleinBottle", XrmoptionNoArg, "figure-8" },
+ {"-squeezed-torus", ".kleinBottle", XrmoptionNoArg, "squeezed-torus" },
+ {"-lawson", ".kleinBottle", XrmoptionNoArg, "lawson" },
+ {"-mode", ".displayMode", XrmoptionSepArg, 0 },
+ {"-wireframe", ".displayMode", XrmoptionNoArg, "wireframe" },
+ {"-surface", ".displayMode", XrmoptionNoArg, "surface" },
+ {"-transparent", ".displayMode", XrmoptionNoArg, "transparent" },
+ {"-appearance", ".appearance", XrmoptionSepArg, 0 },
+ {"-solid", ".appearance", XrmoptionNoArg, "solid" },
+ {"-bands", ".appearance", XrmoptionNoArg, "bands" },
+ {"-colors", ".colors", XrmoptionSepArg, 0 },
+ {"-twosided", ".colors", XrmoptionNoArg, "two-sided" },
+ {"-rainbow", ".colors", XrmoptionNoArg, "rainbow" },
+ {"-depth", ".colors", XrmoptionNoArg, "depth" },
+ {"-view-mode", ".viewMode", XrmoptionSepArg, 0 },
+ {"-walk", ".viewMode", XrmoptionNoArg, "walk" },
+ {"-turn", ".viewMode", XrmoptionNoArg, "turn" },
+ {"-walk-turn", ".viewMode", XrmoptionNoArg, "walk-turn" },
+ {"-orientation-marks", ".marks", XrmoptionNoArg, "on"},
+ {"+orientation-marks", ".marks", XrmoptionNoArg, "off"},
+ {"-projection-3d", ".projection3d", XrmoptionSepArg, 0 },
+ {"-perspective-3d", ".projection3d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-3d", ".projection3d", XrmoptionNoArg, "orthographic" },
+ {"-projection-4d", ".projection4d", XrmoptionSepArg, 0 },
+ {"-perspective-4d", ".projection4d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-4d", ".projection4d", XrmoptionNoArg, "orthographic" },
+ {"-speed-wx", ".speedwx", XrmoptionSepArg, 0 },
+ {"-speed-wy", ".speedwy", XrmoptionSepArg, 0 },
+ {"-speed-wz", ".speedwz", XrmoptionSepArg, 0 },
+ {"-speed-xy", ".speedxy", XrmoptionSepArg, 0 },
+ {"-speed-xz", ".speedxz", XrmoptionSepArg, 0 },
+ {"-speed-yz", ".speedyz", XrmoptionSepArg, 0 },
+ {"-walk-direction", ".walkDirection", XrmoptionSepArg, 0 },
+ {"-walk-speed", ".walkSpeed", XrmoptionSepArg, 0 }
+};
+
+static argtype vars[] =
+{
+ { &klein_bottle, "kleinBottle", "KleinBottle", DEF_KLEIN_BOTTLE, t_String },
+ { &mode, "displayMode", "DisplayMode", DEF_DISPLAY_MODE, t_String },
+ { &appear, "appearance", "Appearance", DEF_APPEARANCE, t_String },
+ { &color_mode, "colors", "Colors", DEF_COLORS, t_String },
+ { &view_mode, "viewMode", "ViewMode", DEF_VIEW_MODE, t_String },
+ { &marks, "marks", "Marks", DEF_MARKS, t_Bool },
+ { &proj_3d, "projection3d", "Projection3d", DEF_PROJECTION_3D, t_String },
+ { &proj_4d, "projection4d", "Projection4d", DEF_PROJECTION_4D, t_String },
+ { &speed_wx, "speedwx", "Speedwx", DEF_SPEEDWX, t_Float},
+ { &speed_wy, "speedwy", "Speedwy", DEF_SPEEDWY, t_Float},
+ { &speed_wz, "speedwz", "Speedwz", DEF_SPEEDWZ, t_Float},
+ { &speed_xy, "speedxy", "Speedxy", DEF_SPEEDXY, t_Float},
+ { &speed_xz, "speedxz", "Speedxz", DEF_SPEEDXZ, t_Float},
+ { &speed_yz, "speedyz", "Speedyz", DEF_SPEEDYZ, t_Float},
+ { &walk_direction, "walkDirection", "WalkDirection", DEF_WALK_DIRECTION, t_Float},
+ { &walk_speed, "walkSpeed", "WalkSpeed", DEF_WALK_SPEED, t_Float}
+};
+
+ENTRYPOINT ModeSpecOpt klein_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, NULL};
+
+
+/* Radius of the figure-8 Klein bottle */
+#define FIGURE_8_RADIUS 2.0
+
+/* Radius of the squeezed torus Klein bottle */
+#define SQUEEZED_TORUS_RADIUS 2.0
+
+/* Offset by which we walk above the Klein bottle */
+#define DELTAY 0.02
+
+/* Number of subdivisions of the Klein bottle */
+#define NUMU 128
+#define NUMV 128
+
+/* Number of subdivisions per band */
+#define NUMB 8
+
+
+typedef struct {
+ GLint WindH, WindW;
+ GLXContext *glx_context;
+ /* Options */
+ int bottle_type;
+ int display_mode;
+ int appearance;
+ int colors;
+ int view;
+ int projection_3d;
+ int projection_4d;
+ /* 4D rotation angles */
+ float alpha, beta, delta, zeta, eta, theta;
+ /* Movement parameters */
+ float umove, vmove, dumove, dvmove;
+ int side;
+ /* The viewing offset in 4d */
+ float offset4d[4];
+ /* The viewing offset in 3d */
+ float offset3d[4];
+ /* The 4d coordinates of the Klein bottle and their derivatives */
+ float x[(NUMU+1)*(NUMV+1)][4];
+ float xu[(NUMU+1)*(NUMV+1)][4];
+ float xv[(NUMU+1)*(NUMV+1)][4];
+ float pp[(NUMU+1)*(NUMV+1)][3];
+ float pn[(NUMU+1)*(NUMV+1)][3];
+ /* The precomputed colors of the Klein bottle */
+ float col[(NUMU+1)*(NUMV+1)][4];
+ /* The precomputed texture coordinates of the Klein bottle */
+ float tex[(NUMU+1)*(NUMV+1)][2];
+ /* The "curlicue" texture */
+ GLuint tex_name;
+ /* Aspect ratio of the current window */
+ float aspect;
+ /* Trackball states */
+ trackball_state *trackballs[2];
+ int current_trackball;
+ Bool button_pressed;
+ /* A random factor to modify the rotation speeds */
+ float speed_scale;
+} kleinstruct;
+
+static kleinstruct *klein = (kleinstruct *) NULL;
+
+
+/* Add a rotation around the wx-plane to the matrix m. */
+static void rotatewx(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][2];
+ m[i][1] = c*u+s*v;
+ m[i][2] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wy-plane to the matrix m. */
+static void rotatewy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][2];
+ m[i][0] = c*u-s*v;
+ m[i][2] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wz-plane to the matrix m. */
+static void rotatewz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][1];
+ m[i][0] = c*u+s*v;
+ m[i][1] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xy-plane to the matrix m. */
+static void rotatexy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][2];
+ v = m[i][3];
+ m[i][2] = c*u+s*v;
+ m[i][3] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xz-plane to the matrix m. */
+static void rotatexz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][3];
+ m[i][1] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the yz-plane to the matrix m. */
+static void rotateyz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][3];
+ m[i][0] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Compute the rotation matrix m from the rotation angles. */
+static void rotateall(float al, float be, float de, float ze, float et,
+ float th, float m[4][4])
+{
+ int i, j;
+
+ for (i=0; i<4; i++)
+ for (j=0; j<4; j++)
+ m[i][j] = (i==j);
+ rotatewx(m,al);
+ rotatewy(m,be);
+ rotatewz(m,de);
+ rotatexy(m,ze);
+ rotatexz(m,et);
+ rotateyz(m,th);
+}
+
+
+/* Compute the rotation matrix m from the 4d rotation angles. */
+static void rotateall4d(float ze, float et, float th, float m[4][4])
+{
+ int i, j;
+
+ for (i=0; i<4; i++)
+ for (j=0; j<4; j++)
+ m[i][j] = (i==j);
+ rotatexy(m,ze);
+ rotatexz(m,et);
+ rotateyz(m,th);
+}
+
+
+/* Multiply two rotation matrices: o=m*n. */
+static void mult_rotmat(float m[4][4], float n[4][4], float o[4][4])
+{
+ int i, j, k;
+
+ for (i=0; i<4; i++)
+ {
+ for (j=0; j<4; j++)
+ {
+ o[i][j] = 0.0;
+ for (k=0; k<4; k++)
+ o[i][j] += m[i][k]*n[k][j];
+ }
+ }
+}
+
+
+/* Compute a 4D rotation matrix from two unit quaternions. */
+static void quats_to_rotmat(float p[4], float q[4], float m[4][4])
+{
+ double al, be, de, ze, et, th;
+ double r00, r01, r02, r12, r22;
+
+ r00 = 1.0-2.0*(p[1]*p[1]+p[2]*p[2]);
+ r01 = 2.0*(p[0]*p[1]+p[2]*p[3]);
+ r02 = 2.0*(p[2]*p[0]-p[1]*p[3]);
+ r12 = 2.0*(p[1]*p[2]+p[0]*p[3]);
+ r22 = 1.0-2.0*(p[1]*p[1]+p[0]*p[0]);
+
+ al = atan2(-r12,r22)*180.0/M_PI;
+ be = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ de = atan2(-r01,r00)*180.0/M_PI;
+
+ r00 = 1.0-2.0*(q[1]*q[1]+q[2]*q[2]);
+ r01 = 2.0*(q[0]*q[1]+q[2]*q[3]);
+ r02 = 2.0*(q[2]*q[0]-q[1]*q[3]);
+ r12 = 2.0*(q[1]*q[2]+q[0]*q[3]);
+ r22 = 1.0-2.0*(q[1]*q[1]+q[0]*q[0]);
+
+ et = atan2(-r12,r22)*180.0/M_PI;
+ th = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ ze = atan2(-r01,r00)*180.0/M_PI;
+
+ rotateall(al,be,de,ze,et,-th,m);
+}
+
+
+/* Compute a fully saturated and bright color based on an angle. */
+static void color(kleinstruct *kb, double angle, float col[4])
+{
+ int s;
+ double t;
+
+ if (kb->colors == COLORS_TWOSIDED)
+ return;
+
+ if (angle >= 0.0)
+ angle = fmod(angle,2.0*M_PI);
+ else
+ angle = fmod(angle,-2.0*M_PI);
+ s = floor(angle/(M_PI/3));
+ t = angle/(M_PI/3)-s;
+ if (s >= 6)
+ s = 0;
+ switch (s)
+ {
+ case 0:
+ col[0] = 1.0;
+ col[1] = t;
+ col[2] = 0.0;
+ break;
+ case 1:
+ col[0] = 1.0-t;
+ col[1] = 1.0;
+ col[2] = 0.0;
+ break;
+ case 2:
+ col[0] = 0.0;
+ col[1] = 1.0;
+ col[2] = t;
+ break;
+ case 3:
+ col[0] = 0.0;
+ col[1] = 1.0-t;
+ col[2] = 1.0;
+ break;
+ case 4:
+ col[0] = t;
+ col[1] = 0.0;
+ col[2] = 1.0;
+ break;
+ case 5:
+ col[0] = 1.0;
+ col[1] = 0.0;
+ col[2] = 1.0-t;
+ break;
+ }
+ if (kb->display_mode == DISP_TRANSPARENT)
+ col[3] = 0.7;
+ else
+ col[3] = 1.0;
+}
+
+
+/* Set up the figure-8 Klein bottle coordinates, colors, and texture. */
+static void setup_figure8(ModeInfo *mi, double umin, double umax, double vmin,
+ double vmax)
+{
+ int i, j, k, l;
+ double u, v, ur, vr;
+ double cu, su, cv, sv, cv2, sv2, c2u, s2u;
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ ur = umax-umin;
+ vr = vmax-vmin;
+ for (i=0; i<=NUMU; i++)
+ {
+ for (j=0; j<=NUMV; j++)
+ {
+ k = i*(NUMV+1)+j;
+ u = -ur*j/NUMU+umin;
+ v = vr*i/NUMV+vmin;
+ if (kb->colors == COLORS_DEPTH)
+ color(kb,(cos(u)+1.0)*M_PI*2.0/3.0,kb->col[k]);
+ else
+ color(kb,v,kb->col[k]);
+ kb->tex[k][0] = -32*u/(2.0*M_PI);
+ kb->tex[k][1] = 32*v/(2.0*M_PI);
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ c2u = cos(2.0*u);
+ s2u = sin(2.0*u);
+ kb->x[k][0] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*cv;
+ kb->x[k][1] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*sv;
+ kb->x[k][2] = su*sv2+s2u*cv2;
+ kb->x[k][3] = cu;
+ kb->xu[k][0] = (cu*cv2-2.0*c2u*sv2)*cv;
+ kb->xu[k][1] = (cu*cv2-2.0*c2u*sv2)*sv;
+ kb->xu[k][2] = cu*sv2+2.0*c2u*cv2;
+ kb->xu[k][3] = -su;
+ kb->xv[k][0] = ((-0.5*su*sv2-0.5*s2u*cv2)*cv-
+ (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*sv);
+ kb->xv[k][1] = ((-0.5*su*sv2-0.5*s2u*cv2)*sv+
+ (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*cv);
+ kb->xv[k][2] = 0.5*su*cv2-0.5*s2u*sv2;
+ kb->xv[k][3] = 0.0;
+ for (l=0; l<4; l++)
+ {
+ kb->x[k][l] /= FIGURE_8_RADIUS+1.25;
+ kb->xu[k][l] /= FIGURE_8_RADIUS+1.25;
+ kb->xv[k][l] /= FIGURE_8_RADIUS+1.25;
+ }
+ }
+ }
+}
+
+
+/* Set up the squeezed torus Klein bottle coordinates, colors, and texture. */
+static void setup_squeezed_torus(ModeInfo *mi, double umin, double umax,
+ double vmin, double vmax)
+{
+ int i, j, k, l;
+ double u, v, ur, vr;
+ double cu, su, cv, sv, cv2, sv2;
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ ur = umax-umin;
+ vr = vmax-vmin;
+ for (i=0; i<=NUMU; i++)
+ {
+ for (j=0; j<=NUMV; j++)
+ {
+ k = i*(NUMV+1)+j;
+ u = -ur*j/NUMU+umin;
+ v = vr*i/NUMV+vmin;
+ if (kb->colors == COLORS_DEPTH)
+ color(kb,(sin(u)*sin(0.5*v)+1.0)*M_PI*2.0/3.0,kb->col[k]);
+ else
+ color(kb,v,kb->col[k]);
+ kb->tex[k][0] = -32*u/(2.0*M_PI);
+ kb->tex[k][1] = 32*v/(2.0*M_PI);
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ kb->x[k][0] = (SQUEEZED_TORUS_RADIUS+cu)*cv;
+ kb->x[k][1] = (SQUEEZED_TORUS_RADIUS+cu)*sv;
+ kb->x[k][2] = su*cv2;
+ kb->x[k][3] = su*sv2;
+ kb->xu[k][0] = -su*cv;
+ kb->xu[k][1] = -su*sv;
+ kb->xu[k][2] = cu*cv2;
+ kb->xu[k][3] = cu*sv2;
+ kb->xv[k][0] = -(SQUEEZED_TORUS_RADIUS+cu)*sv;
+ kb->xv[k][1] = (SQUEEZED_TORUS_RADIUS+cu)*cv;
+ kb->xv[k][2] = -0.5*su*sv2;
+ kb->xv[k][3] = 0.5*su*cv2;
+ for (l=0; l<4; l++)
+ {
+ kb->x[k][l] /= SQUEEZED_TORUS_RADIUS+1.25;
+ kb->xu[k][l] /= SQUEEZED_TORUS_RADIUS+1.25;
+ kb->xv[k][l] /= SQUEEZED_TORUS_RADIUS+1.25;
+ }
+ }
+ }
+}
+
+
+/* Set up the Lawson Klein bottle coordinates, colors, and texture. */
+static void setup_lawson(ModeInfo *mi, double umin, double umax, double vmin,
+ double vmax)
+{
+ int i, j, k;
+ double u, v, ur, vr;
+ double cu, su, cv, sv, cv2, sv2;
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ ur = umax-umin;
+ vr = vmax-vmin;
+ for (i=0; i<=NUMV; i++)
+ {
+ for (j=0; j<=NUMU; j++)
+ {
+ k = i*(NUMU+1)+j;
+ u = -ur*j/NUMU+umin;
+ v = vr*i/NUMV+vmin;
+ if (kb->colors == COLORS_DEPTH)
+ color(kb,(sin(u)*cos(0.5*v)+1.0)*M_PI*2.0/3.0,kb->col[k]);
+ else
+ color(kb,v,kb->col[k]);
+ kb->tex[k][0] = -32*u/(2.0*M_PI);
+ kb->tex[k][1] = 32*v/(2.0*M_PI);
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ kb->x[k][0] = cu*cv;
+ kb->x[k][1] = cu*sv;
+ kb->x[k][2] = su*sv2;
+ kb->x[k][3] = su*cv2;
+ kb->xu[k][0] = -su*cv;
+ kb->xu[k][1] = -su*sv;
+ kb->xu[k][2] = cu*sv2;
+ kb->xu[k][3] = cu*cv2;
+ kb->xv[k][0] = -cu*sv;
+ kb->xv[k][1] = cu*cv;
+ kb->xv[k][2] = su*cv2*0.5;
+ kb->xv[k][3] = -su*sv2*0.5;
+ }
+ }
+}
+
+
+/* Draw a figure-8 Klein bottle projected into 3D. */
+static int figure8(ModeInfo *mi, double umin, double umax, double vmin,
+ double vmax)
+{
+ int polys = 0;
+ static const GLfloat mat_diff_red[] = { 1.0, 0.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_green[] = { 0.0, 1.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_trans_red[] = { 1.0, 0.0, 0.0, 0.7 };
+ static const GLfloat mat_diff_trans_green[] = { 0.0, 1.0, 0.0, 0.7 };
+ float p[3], pu[3], pv[3], pm[3], n[3], b[3], mat[4][4];
+ int i, j, k, l, m, o;
+ double u, v;
+ double xx[4], xxu[4], xxv[4], y[4], yu[4], yv[4];
+ double q, r, s, t;
+ double cu, su, cv, sv, cv2, sv2, c2u, s2u;
+ float q1[4], q2[4], r1[4][4], r2[4][4];
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ if (kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ {
+ /* Compute the rotation that rotates the Klein bottle in 4D without the
+ trackball rotations. */
+ rotateall4d(kb->zeta,kb->eta,kb->theta,mat);
+
+ u = kb->umove;
+ v = kb->vmove;
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ c2u = cos(2.0*u);
+ s2u = sin(2.0*u);
+ xx[0] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*cv;
+ xx[1] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*sv;
+ xx[2] = su*sv2+s2u*cv2;
+ xx[3] = cu;
+ xxu[0] = (cu*cv2-2.0*c2u*sv2)*cv;
+ xxu[1] = (cu*cv2-2.0*c2u*sv2)*sv;
+ xxu[2] = cu*sv2+2.0*c2u*cv2;
+ xxu[3] = -su;
+ xxv[0] = ((-0.5*su*sv2-0.5*s2u*cv2)*cv-
+ (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*sv);
+ xxv[1] = ((-0.5*su*sv2-0.5*s2u*cv2)*sv+
+ (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*cv);
+ xxv[2] = 0.5*su*cv2-0.5*s2u*sv2;
+ xxv[3] = 0.0;
+ for (l=0; l<4; l++)
+ {
+ xx[l] /= FIGURE_8_RADIUS+1.25;
+ xxu[l] /= FIGURE_8_RADIUS+1.25;
+ xxv[l] /= FIGURE_8_RADIUS+1.25;
+ }
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*xx[0]+mat[l][1]*xx[1]+
+ mat[l][2]*xx[2]+mat[l][3]*xx[3]);
+ yu[l] = (mat[l][0]*xxu[0]+mat[l][1]*xxu[1]+
+ mat[l][2]*xxu[2]+mat[l][3]*xxu[3]);
+ yv[l] = (mat[l][0]*xxv[0]+mat[l][1]*xxv[1]+
+ mat[l][2]*xxv[2]+mat[l][3]*xxv[3]);
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ p[l] = y[l]+kb->offset4d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+kb->offset4d[l];
+ p[l] = r*q;
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/(kb->side*4.0*sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]));
+ n[0] *= t;
+ n[1] *= t;
+ n[2] *= t;
+ pm[0] = pu[0]*kb->dumove+pv[0]*kb->dvmove;
+ pm[1] = pu[1]*kb->dumove+pv[1]*kb->dvmove;
+ pm[2] = pu[2]*kb->dumove+pv[2]*kb->dvmove;
+ t = 1.0/(4.0*sqrt(pm[0]*pm[0]+pm[1]*pm[1]+pm[2]*pm[2]));
+ pm[0] *= t;
+ pm[1] *= t;
+ pm[2] *= t;
+ b[0] = n[1]*pm[2]-n[2]*pm[1];
+ b[1] = n[2]*pm[0]-n[0]*pm[2];
+ b[2] = n[0]*pm[1]-n[1]*pm[0];
+ t = 1.0/(4.0*sqrt(b[0]*b[0]+b[1]*b[1]+b[2]*b[2]));
+ b[0] *= t;
+ b[1] *= t;
+ b[2] *= t;
+
+ /* Compute alpha, beta, delta from the three basis vectors.
+ | -b[0] -b[1] -b[2] |
+ m = | n[0] n[1] n[2] |
+ | -pm[0] -pm[1] -pm[2] |
+ */
+ kb->alpha = atan2(-n[2],-pm[2])*180/M_PI;
+ kb->beta = atan2(-b[2],sqrt(b[0]*b[0]+b[1]*b[1]))*180/M_PI;
+ kb->delta = atan2(b[1],-b[0])*180/M_PI;
+
+ /* Compute the rotation that rotates the Klein bottle in 4D. */
+ rotateall(kb->alpha,kb->beta,kb->delta,kb->zeta,kb->eta,kb->theta,mat);
+
+ u = kb->umove;
+ v = kb->vmove;
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ /*c2u = cos(2.0*u);*/
+ s2u = sin(2.0*u);
+ xx[0] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*cv;
+ xx[1] = (su*cv2-s2u*sv2+FIGURE_8_RADIUS)*sv;
+ xx[2] = su*sv2+s2u*cv2;
+ xx[3] = cu;
+ for (l=0; l<4; l++)
+ xx[l] /= FIGURE_8_RADIUS+1.25;
+ for (l=0; l<4; l++)
+ {
+ r = 0.0;
+ for (m=0; m<4; m++)
+ r += mat[l][m]*xx[m];
+ y[l] = r;
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ p[l] = y[l]+kb->offset4d[l];
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ for (l=0; l<3; l++)
+ p[l] = (y[l]+kb->offset4d[l])/s;
+ }
+
+ kb->offset3d[0] = -p[0];
+ kb->offset3d[1] = -p[1]-DELTAY;
+ kb->offset3d[2] = -p[2];
+ }
+ else
+ {
+ /* Compute the rotation that rotates the Klein bottle in 4D, including
+ the trackball rotations. */
+ rotateall(kb->alpha,kb->beta,kb->delta,kb->zeta,kb->eta,kb->theta,r1);
+
+ gltrackball_get_quaternion(kb->trackballs[0],q1);
+ gltrackball_get_quaternion(kb->trackballs[1],q2);
+ quats_to_rotmat(q1,q2,r2);
+
+ mult_rotmat(r2,r1,mat);
+ }
+
+ /* Project the points from 4D to 3D. */
+ for (i=0; i<=NUMU; i++)
+ {
+ for (j=0; j<=NUMV; j++)
+ {
+ o = i*(NUMV+1)+j;
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*kb->x[o][0]+mat[l][1]*kb->x[o][1]+
+ mat[l][2]*kb->x[o][2]+mat[l][3]*kb->x[o][3]);
+ yu[l] = (mat[l][0]*kb->xu[o][0]+mat[l][1]*kb->xu[o][1]+
+ mat[l][2]*kb->xu[o][2]+mat[l][3]*kb->xu[o][3]);
+ yv[l] = (mat[l][0]*kb->xv[o][0]+mat[l][1]*kb->xv[o][1]+
+ mat[l][2]*kb->xv[o][2]+mat[l][3]*kb->xv[o][3]);
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ kb->pp[o][l] = (y[l]+kb->offset4d[l])+kb->offset3d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+kb->offset4d[l];
+ kb->pp[o][l] = r*q+kb->offset3d[l];
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ kb->pn[o][0] = pu[1]*pv[2]-pu[2]*pv[1];
+ kb->pn[o][1] = pu[2]*pv[0]-pu[0]*pv[2];
+ kb->pn[o][2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/sqrt(kb->pn[o][0]*kb->pn[o][0]+kb->pn[o][1]*kb->pn[o][1]+
+ kb->pn[o][2]*kb->pn[o][2]);
+ kb->pn[o][0] *= t;
+ kb->pn[o][1] *= t;
+ kb->pn[o][2] *= t;
+ }
+ }
+
+ if (kb->colors == COLORS_TWOSIDED)
+ {
+ glColor3fv(mat_diff_red);
+ if (kb->display_mode == DISP_TRANSPARENT)
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_green);
+ }
+ else
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_green);
+ }
+ }
+ glBindTexture(GL_TEXTURE_2D,kb->tex_name);
+
+ for (i=0; i<NUMU; i++)
+ {
+ if (kb->appearance == APPEARANCE_BANDS && ((i & (NUMB-1)) >= NUMB/2))
+ continue;
+ if (kb->display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=NUMV; j++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = (i+k);
+ m = j;
+ o = l*(NUMV+1)+m;
+ glNormal3fv(kb->pn[o]);
+ glTexCoord2fv(kb->tex[o]);
+ if (kb->colors != COLORS_TWOSIDED)
+ {
+ glColor3fv(kb->col[o]);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,kb->col[o]);
+ }
+ glVertex3fv(kb->pp[o]);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ polys /= 2;
+ return polys;
+}
+
+
+/* Draw a squeezed torus Klein bottle projected into 3D. */
+static int squeezed_torus(ModeInfo *mi, double umin, double umax, double vmin,
+ double vmax)
+{
+ int polys = 0;
+ static const GLfloat mat_diff_red[] = { 1.0, 0.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_green[] = { 0.0, 1.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_trans_red[] = { 1.0, 0.0, 0.0, 0.7 };
+ static const GLfloat mat_diff_trans_green[] = { 0.0, 1.0, 0.0, 0.7 };
+ float p[3], pu[3], pv[3], pm[3], n[3], b[3], mat[4][4];
+ int i, j, k, l, m, o;
+ double u, v;
+ double xx[4], xxu[4], xxv[4], y[4], yu[4], yv[4];
+ double q, r, s, t;
+ double cu, su, cv, sv, cv2, sv2;
+ float q1[4], q2[4], r1[4][4], r2[4][4];
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ if (kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ {
+ /* Compute the rotation that rotates the Klein bottle in 4D without the
+ trackball rotations. */
+ rotateall4d(kb->zeta,kb->eta,kb->theta,mat);
+
+ u = kb->umove;
+ v = kb->vmove;
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ xx[0] = (SQUEEZED_TORUS_RADIUS+cu)*cv;
+ xx[1] = (SQUEEZED_TORUS_RADIUS+cu)*sv;
+ xx[2] = su*cv2;
+ xx[3] = su*sv2;
+ xxu[0] = -su*cv;
+ xxu[1] = -su*sv;
+ xxu[2] = cu*cv2;
+ xxu[3] = cu*sv2;
+ xxv[0] = -(SQUEEZED_TORUS_RADIUS+cu)*sv;
+ xxv[1] = (SQUEEZED_TORUS_RADIUS+cu)*cv;
+ xxv[2] = -0.5*su*sv2;
+ xxv[3] = 0.5*su*cv2;
+ for (l=0; l<4; l++)
+ {
+ xx[l] /= SQUEEZED_TORUS_RADIUS+1.25;
+ xxu[l] /= SQUEEZED_TORUS_RADIUS+1.25;
+ xxv[l] /= SQUEEZED_TORUS_RADIUS+1.25;
+ }
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*xx[0]+mat[l][1]*xx[1]+
+ mat[l][2]*xx[2]+mat[l][3]*xx[3]);
+ yu[l] = (mat[l][0]*xxu[0]+mat[l][1]*xxu[1]+
+ mat[l][2]*xxu[2]+mat[l][3]*xxu[3]);
+ yv[l] = (mat[l][0]*xxv[0]+mat[l][1]*xxv[1]+
+ mat[l][2]*xxv[2]+mat[l][3]*xxv[3]);
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ p[l] = y[l]+kb->offset4d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+kb->offset4d[l];
+ p[l] = r*q;
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/(kb->side*4.0*sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]));
+ n[0] *= t;
+ n[1] *= t;
+ n[2] *= t;
+ pm[0] = pu[0]*kb->dumove+pv[0]*kb->dvmove;
+ pm[1] = pu[1]*kb->dumove+pv[1]*kb->dvmove;
+ pm[2] = pu[2]*kb->dumove+pv[2]*kb->dvmove;
+ t = 1.0/(4.0*sqrt(pm[0]*pm[0]+pm[1]*pm[1]+pm[2]*pm[2]));
+ pm[0] *= t;
+ pm[1] *= t;
+ pm[2] *= t;
+ b[0] = n[1]*pm[2]-n[2]*pm[1];
+ b[1] = n[2]*pm[0]-n[0]*pm[2];
+ b[2] = n[0]*pm[1]-n[1]*pm[0];
+ t = 1.0/(4.0*sqrt(b[0]*b[0]+b[1]*b[1]+b[2]*b[2]));
+ b[0] *= t;
+ b[1] *= t;
+ b[2] *= t;
+
+ /* Compute alpha, beta, delta from the three basis vectors.
+ | -b[0] -b[1] -b[2] |
+ m = | n[0] n[1] n[2] |
+ | -pm[0] -pm[1] -pm[2] |
+ */
+ kb->alpha = atan2(-n[2],-pm[2])*180/M_PI;
+ kb->beta = atan2(-b[2],sqrt(b[0]*b[0]+b[1]*b[1]))*180/M_PI;
+ kb->delta = atan2(b[1],-b[0])*180/M_PI;
+
+ /* Compute the rotation that rotates the Klein bottle in 4D. */
+ rotateall(kb->alpha,kb->beta,kb->delta,kb->zeta,kb->eta,kb->theta,mat);
+
+ u = kb->umove;
+ v = kb->vmove;
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ xx[0] = (SQUEEZED_TORUS_RADIUS+cu)*cv;
+ xx[1] = (SQUEEZED_TORUS_RADIUS+cu)*sv;
+ xx[2] = su*cv2;
+ xx[3] = su*sv2;
+ for (l=0; l<4; l++)
+ xx[l] /= SQUEEZED_TORUS_RADIUS+1.25;
+ for (l=0; l<4; l++)
+ {
+ r = 0.0;
+ for (m=0; m<4; m++)
+ r += mat[l][m]*xx[m];
+ y[l] = r;
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ p[l] = y[l]+kb->offset4d[l];
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ for (l=0; l<3; l++)
+ p[l] = (y[l]+kb->offset4d[l])/s;
+ }
+
+ kb->offset3d[0] = -p[0];
+ kb->offset3d[1] = -p[1]-DELTAY;
+ kb->offset3d[2] = -p[2];
+ }
+ else
+ {
+ /* Compute the rotation that rotates the Klein bottle in 4D, including
+ the trackball rotations. */
+ rotateall(kb->alpha,kb->beta,kb->delta,kb->zeta,kb->eta,kb->theta,r1);
+
+ gltrackball_get_quaternion(kb->trackballs[0],q1);
+ gltrackball_get_quaternion(kb->trackballs[1],q2);
+ quats_to_rotmat(q1,q2,r2);
+
+ mult_rotmat(r2,r1,mat);
+ }
+
+ /* Project the points from 4D to 3D. */
+ for (i=0; i<=NUMU; i++)
+ {
+ for (j=0; j<=NUMV; j++)
+ {
+ o = i*(NUMV+1)+j;
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*kb->x[o][0]+mat[l][1]*kb->x[o][1]+
+ mat[l][2]*kb->x[o][2]+mat[l][3]*kb->x[o][3]);
+ yu[l] = (mat[l][0]*kb->xu[o][0]+mat[l][1]*kb->xu[o][1]+
+ mat[l][2]*kb->xu[o][2]+mat[l][3]*kb->xu[o][3]);
+ yv[l] = (mat[l][0]*kb->xv[o][0]+mat[l][1]*kb->xv[o][1]+
+ mat[l][2]*kb->xv[o][2]+mat[l][3]*kb->xv[o][3]);
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ kb->pp[o][l] = (y[l]+kb->offset4d[l])+kb->offset3d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+kb->offset4d[l];
+ kb->pp[o][l] = r*q+kb->offset3d[l];
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ kb->pn[o][0] = pu[1]*pv[2]-pu[2]*pv[1];
+ kb->pn[o][1] = pu[2]*pv[0]-pu[0]*pv[2];
+ kb->pn[o][2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/sqrt(kb->pn[o][0]*kb->pn[o][0]+kb->pn[o][1]*kb->pn[o][1]+
+ kb->pn[o][2]*kb->pn[o][2]);
+ kb->pn[o][0] *= t;
+ kb->pn[o][1] *= t;
+ kb->pn[o][2] *= t;
+ }
+ }
+
+ if (kb->colors == COLORS_TWOSIDED)
+ {
+ glColor3fv(mat_diff_red);
+ if (kb->display_mode == DISP_TRANSPARENT)
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_green);
+ }
+ else
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_green);
+ }
+ }
+ glBindTexture(GL_TEXTURE_2D,kb->tex_name);
+
+ for (i=0; i<NUMU; i++)
+ {
+ if (kb->appearance == APPEARANCE_BANDS && ((i & (NUMB-1)) >= NUMB/2))
+ continue;
+ if (kb->display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=NUMV; j++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = (i+k);
+ m = j;
+ o = l*(NUMV+1)+m;
+ glNormal3fv(kb->pn[o]);
+ glTexCoord2fv(kb->tex[o]);
+ if (kb->colors != COLORS_TWOSIDED)
+ {
+ glColor3fv(kb->col[o]);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,kb->col[o]);
+ }
+ glVertex3fv(kb->pp[o]);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ polys /= 2;
+ return polys;
+}
+
+
+/* Draw a Lawson Klein bottle projected into 3D. */
+static int lawson(ModeInfo *mi, double umin, double umax, double vmin,
+ double vmax)
+{
+ int polys = 0;
+ static const GLfloat mat_diff_red[] = { 1.0, 0.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_green[] = { 0.0, 1.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_trans_red[] = { 1.0, 0.0, 0.0, 0.7 };
+ static const GLfloat mat_diff_trans_green[] = { 0.0, 1.0, 0.0, 0.7 };
+ float p[3], pu[3], pv[3], pm[3], n[3], b[3], mat[4][4];
+ int i, j, k, l, m, o;
+ double u, v;
+ double cu, su, cv, sv, cv2, sv2;
+ double xx[4], xxu[4], xxv[4], y[4], yu[4], yv[4];
+ double q, r, s, t;
+ float q1[4], q2[4], r1[4][4], r2[4][4];
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ if (kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ {
+ /* Compute the rotation that rotates the Klein bottle in 4D without the
+ trackball rotations. */
+ rotateall4d(kb->zeta,kb->eta,kb->theta,mat);
+
+ u = kb->umove;
+ v = kb->vmove;
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ xx[0] = cu*cv;
+ xx[1] = cu*sv;
+ xx[2] = su*sv2;
+ xx[3] = su*cv2;
+ xxu[0] = -su*cv;
+ xxu[1] = -su*sv;
+ xxu[2] = cu*sv2;
+ xxu[3] = cu*cv2;
+ xxv[0] = -cu*sv;
+ xxv[1] = cu*cv;
+ xxv[2] = su*cv2*0.5;
+ xxv[3] = -su*sv2*0.5;
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*xx[0]+mat[l][1]*xx[1]+
+ mat[l][2]*xx[2]+mat[l][3]*xx[3]);
+ yu[l] = (mat[l][0]*xxu[0]+mat[l][1]*xxu[1]+
+ mat[l][2]*xxu[2]+mat[l][3]*xxu[3]);
+ yv[l] = (mat[l][0]*xxv[0]+mat[l][1]*xxv[1]+
+ mat[l][2]*xxv[2]+mat[l][3]*xxv[3]);
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ p[l] = y[l]+kb->offset4d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+kb->offset4d[l];
+ p[l] = r*q;
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/(kb->side*4.0*sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]));
+ n[0] *= t;
+ n[1] *= t;
+ n[2] *= t;
+ pm[0] = pu[0]*kb->dumove+pv[0]*kb->dvmove;
+ pm[1] = pu[1]*kb->dumove+pv[1]*kb->dvmove;
+ pm[2] = pu[2]*kb->dumove+pv[2]*kb->dvmove;
+ t = 1.0/(4.0*sqrt(pm[0]*pm[0]+pm[1]*pm[1]+pm[2]*pm[2]));
+ pm[0] *= t;
+ pm[1] *= t;
+ pm[2] *= t;
+ b[0] = n[1]*pm[2]-n[2]*pm[1];
+ b[1] = n[2]*pm[0]-n[0]*pm[2];
+ b[2] = n[0]*pm[1]-n[1]*pm[0];
+ t = 1.0/(4.0*sqrt(b[0]*b[0]+b[1]*b[1]+b[2]*b[2]));
+ b[0] *= t;
+ b[1] *= t;
+ b[2] *= t;
+
+ /* Compute alpha, beta, delta from the three basis vectors.
+ | -b[0] -b[1] -b[2] |
+ m = | n[0] n[1] n[2] |
+ | -pm[0] -pm[1] -pm[2] |
+ */
+ kb->alpha = atan2(-n[2],-pm[2])*180/M_PI;
+ kb->beta = atan2(-b[2],sqrt(b[0]*b[0]+b[1]*b[1]))*180/M_PI;
+ kb->delta = atan2(b[1],-b[0])*180/M_PI;
+
+ /* Compute the rotation that rotates the Klein bottle in 4D. */
+ rotateall(kb->alpha,kb->beta,kb->delta,kb->zeta,kb->eta,kb->theta,mat);
+
+ u = kb->umove;
+ v = kb->vmove;
+ cu = cos(u);
+ su = sin(u);
+ cv = cos(v);
+ sv = sin(v);
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ xx[0] = cu*cv;
+ xx[1] = cu*sv;
+ xx[2] = su*sv2;
+ xx[3] = su*cv2;
+ for (l=0; l<4; l++)
+ {
+ r = 0.0;
+ for (m=0; m<4; m++)
+ r += mat[l][m]*xx[m];
+ y[l] = r;
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ p[l] = y[l]+kb->offset4d[l];
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ for (l=0; l<3; l++)
+ p[l] = (y[l]+kb->offset4d[l])/s;
+ }
+
+ kb->offset3d[0] = -p[0];
+ kb->offset3d[1] = -p[1]-DELTAY;
+ kb->offset3d[2] = -p[2];
+ }
+ else
+ {
+ /* Compute the rotation that rotates the Klein bottle in 4D, including
+ the trackball rotations. */
+ rotateall(kb->alpha,kb->beta,kb->delta,kb->zeta,kb->eta,kb->theta,r1);
+
+ gltrackball_get_quaternion(kb->trackballs[0],q1);
+ gltrackball_get_quaternion(kb->trackballs[1],q2);
+ quats_to_rotmat(q1,q2,r2);
+
+ mult_rotmat(r2,r1,mat);
+ }
+
+ /* Project the points from 4D to 3D. */
+ for (i=0; i<=NUMV; i++)
+ {
+ for (j=0; j<=NUMU; j++)
+ {
+ o = i*(NUMU+1)+j;
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*kb->x[o][0]+mat[l][1]*kb->x[o][1]+
+ mat[l][2]*kb->x[o][2]+mat[l][3]*kb->x[o][3]);
+ yu[l] = (mat[l][0]*kb->xu[o][0]+mat[l][1]*kb->xu[o][1]+
+ mat[l][2]*kb->xu[o][2]+mat[l][3]*kb->xu[o][3]);
+ yv[l] = (mat[l][0]*kb->xv[o][0]+mat[l][1]*kb->xv[o][1]+
+ mat[l][2]*kb->xv[o][2]+mat[l][3]*kb->xv[o][3]);
+ }
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ kb->pp[o][l] = (y[l]+kb->offset4d[l])+kb->offset3d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+kb->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+kb->offset4d[l];
+ kb->pp[o][l] = r*q+kb->offset3d[l];
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ kb->pn[o][0] = pu[1]*pv[2]-pu[2]*pv[1];
+ kb->pn[o][1] = pu[2]*pv[0]-pu[0]*pv[2];
+ kb->pn[o][2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/sqrt(kb->pn[o][0]*kb->pn[o][0]+kb->pn[o][1]*kb->pn[o][1]+
+ kb->pn[o][2]*kb->pn[o][2]);
+ kb->pn[o][0] *= t;
+ kb->pn[o][1] *= t;
+ kb->pn[o][2] *= t;
+ }
+ }
+
+ if (kb->colors == COLORS_TWOSIDED)
+ {
+ glColor3fv(mat_diff_red);
+ if (kb->display_mode == DISP_TRANSPARENT)
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_green);
+ }
+ else
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_green);
+ }
+ }
+ glBindTexture(GL_TEXTURE_2D,kb->tex_name);
+
+ for (i=0; i<NUMV; i++)
+ {
+ if (kb->appearance == APPEARANCE_BANDS && ((i & (NUMB-1)) >= NUMB/2))
+ continue;
+ if (kb->display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=NUMU; j++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = (i+k);
+ m = j;
+ o = l*(NUMU+1)+m;
+ glNormal3fv(kb->pn[o]);
+ glTexCoord2fv(kb->tex[o]);
+ if (kb->colors != COLORS_TWOSIDED)
+ {
+ glColor3fv(kb->col[o]);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,kb->col[o]);
+ }
+ glVertex3fv(kb->pp[o]);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ polys /= 2;
+ return polys;
+}
+
+
+/* Generate a texture image that shows the orientation reversal. */
+static void gen_texture(ModeInfo *mi)
+{
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ glGenTextures(1,&kb->tex_name);
+ glBindTexture(GL_TEXTURE_2D,kb->tex_name);
+ glPixelStorei(GL_UNPACK_ALIGNMENT,1);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
+ glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,TEX_DIMENSION,TEX_DIMENSION,0,
+ GL_LUMINANCE,GL_UNSIGNED_BYTE,texture);
+}
+
+
+static void init(ModeInfo *mi)
+{
+ static const GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
+ static const GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
+ static const GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ if (walk_speed == 0.0)
+ walk_speed = 20.0;
+
+ if (kb->view == VIEW_TURN)
+ {
+ kb->alpha = frand(360.0);
+ kb->beta = frand(360.0);
+ kb->delta = frand(360.0);
+ }
+ else
+ {
+ kb->alpha = 0.0;
+ kb->beta = 0.0;
+ kb->delta = 0.0;
+ }
+ kb->zeta = 0.0;
+ if (kb->bottle_type == KLEIN_BOTTLE_FIGURE_8 ||
+ kb->bottle_type == KLEIN_BOTTLE_SQUEEZED_TORUS)
+ kb->eta = 0.0;
+ else
+ kb->eta = 45.0;
+ kb->theta = 0.0;
+ kb->umove = frand(2.0*M_PI);
+ kb->vmove = frand(2.0*M_PI);
+ kb->dumove = 0.0;
+ kb->dvmove = 0.0;
+ kb->side = 1;
+
+ if (kb->bottle_type == KLEIN_BOTTLE_FIGURE_8)
+ {
+ kb->offset4d[0] = 0.0;
+ kb->offset4d[1] = 0.0;
+ kb->offset4d[2] = 0.0;
+ kb->offset4d[3] = 1.5;
+ kb->offset3d[0] = 0.0;
+ kb->offset3d[1] = 0.0;
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ kb->offset3d[2] = -2.1;
+ else
+ kb->offset3d[2] = -1.9;
+ kb->offset3d[3] = 0.0;
+ }
+ else if (kb->bottle_type == KLEIN_BOTTLE_SQUEEZED_TORUS)
+ {
+ kb->offset4d[0] = 0.0;
+ kb->offset4d[1] = 0.0;
+ kb->offset4d[2] = 0.0;
+ kb->offset4d[3] = 1.4;
+ kb->offset3d[0] = 0.0;
+ kb->offset3d[1] = 0.0;
+ kb->offset3d[2] = -2.0;
+ kb->offset3d[3] = 0.0;
+ }
+ else /* kb->bottle_type == KLEIN_BOTTLE_LAWSON */
+ {
+ kb->offset4d[0] = 0.0;
+ kb->offset4d[1] = 0.0;
+ kb->offset4d[2] = 0.0;
+ if (kb->projection_4d == DISP_4D_PERSPECTIVE &&
+ kb->projection_3d == DISP_3D_ORTHOGRAPHIC)
+ kb->offset4d[3] = 1.5;
+ else
+ kb->offset4d[3] = 1.1;
+ kb->offset3d[0] = 0.0;
+ kb->offset3d[1] = 0.0;
+ if (kb->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ kb->offset3d[2] = -2.0;
+ else
+ kb->offset3d[2] = -5.0;
+ kb->offset3d[3] = 0.0;
+ }
+
+ gen_texture(mi);
+ if (kb->bottle_type == KLEIN_BOTTLE_FIGURE_8)
+ setup_figure8(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+ else if (kb->bottle_type == KLEIN_BOTTLE_SQUEEZED_TORUS)
+ setup_squeezed_torus(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+ else /* kb->bottle_type == KLEIN_BOTTLE_LAWSON */
+ setup_lawson(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+
+ if (marks)
+ glEnable(GL_TEXTURE_2D);
+ else
+ glDisable(GL_TEXTURE_2D);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (kb->projection_3d == DISP_3D_PERSPECTIVE ||
+ kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ {
+ if (kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ gluPerspective(60.0,1.0,0.01,10.0);
+ else
+ gluPerspective(60.0,1.0,0.1,10.0);
+ }
+ else
+ {
+ glOrtho(-1.0,1.0,-1.0,1.0,0.1,10.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ if (kb->display_mode == DISP_WIREFRAME)
+ kb->display_mode = DISP_SURFACE;
+# endif
+
+ if (kb->display_mode == DISP_SURFACE)
+ {
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LESS);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ }
+ else if (kb->display_mode == DISP_TRANSPARENT)
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_FALSE);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ }
+ else /* kb->display_mode == DISP_WIREFRAME */
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_FLAT);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_BLEND);
+ }
+}
+
+
+/* Redisplay the Klein bottle. */
+static void display_klein(ModeInfo *mi)
+{
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ if (!kb->button_pressed)
+ {
+ if (kb->view == VIEW_TURN)
+ {
+ kb->alpha += speed_wx * kb->speed_scale;
+ if (kb->alpha >= 360.0)
+ kb->alpha -= 360.0;
+ kb->beta += speed_wy * kb->speed_scale;
+ if (kb->beta >= 360.0)
+ kb->beta -= 360.0;
+ kb->delta += speed_wz * kb->speed_scale;
+ if (kb->delta >= 360.0)
+ kb->delta -= 360.0;
+ kb->zeta += speed_xy * kb->speed_scale;
+ if (kb->zeta >= 360.0)
+ kb->zeta -= 360.0;
+ kb->eta += speed_xz * kb->speed_scale;
+ if (kb->eta >= 360.0)
+ kb->eta -= 360.0;
+ kb->theta += speed_yz * kb->speed_scale;
+ if (kb->theta >= 360.0)
+ kb->theta -= 360.0;
+ }
+ if (kb->view == VIEW_WALKTURN)
+ {
+ kb->zeta += speed_xy * kb->speed_scale;
+ if (kb->zeta >= 360.0)
+ kb->zeta -= 360.0;
+ kb->eta += speed_xz * kb->speed_scale;
+ if (kb->eta >= 360.0)
+ kb->eta -= 360.0;
+ kb->theta += speed_yz * kb->speed_scale;
+ if (kb->theta >= 360.0)
+ kb->theta -= 360.0;
+ }
+ if (kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ {
+ kb->dvmove = cos(walk_direction*M_PI/180.0)*walk_speed*M_PI/4096.0;
+ kb->vmove += kb->dvmove;
+ if (kb->vmove >= 2.0*M_PI)
+ {
+ kb->vmove -= 2.0*M_PI;
+ kb->umove = 2.0*M_PI-kb->umove;
+ kb->side = -kb->side;
+ }
+ kb->dumove = (kb->side*sin(walk_direction*M_PI/180.0)*
+ walk_speed*M_PI/4096.0);
+ kb->umove += kb->dumove;
+ if (kb->umove >= 2.0*M_PI)
+ kb->umove -= 2.0*M_PI;
+ if (kb->umove < 0.0)
+ kb->umove += 2.0*M_PI;
+ }
+ }
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (kb->projection_3d == DISP_3D_PERSPECTIVE ||
+ kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ {
+ if (kb->view == VIEW_WALK || kb->view == VIEW_WALKTURN)
+ gluPerspective(60.0,kb->aspect,0.01,10.0);
+ else
+ gluPerspective(60.0,kb->aspect,0.1,10.0);
+ }
+ else
+ {
+ if (kb->aspect >= 1.0)
+ glOrtho(-kb->aspect,kb->aspect,-1.0,1.0,0.1,10.0);
+ else
+ glOrtho(-1.0,1.0,-1.0/kb->aspect,1.0/kb->aspect,0.1,10.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ if (kb->bottle_type == KLEIN_BOTTLE_FIGURE_8)
+ mi->polygon_count = figure8(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+ else if (kb->bottle_type == KLEIN_BOTTLE_SQUEEZED_TORUS)
+ mi->polygon_count = squeezed_torus(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+ else /* kb->bottle_type == KLEIN_BOTTLE_LAWSON */
+ mi->polygon_count = lawson(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+}
+
+
+ENTRYPOINT void reshape_klein(ModeInfo *mi, int width, int height)
+{
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ kb->WindW = (GLint)width;
+ kb->WindH = (GLint)height;
+ glViewport(0,0,width,height);
+ kb->aspect = (GLfloat)width/(GLfloat)height;
+}
+
+
+ENTRYPOINT Bool klein_handle_event(ModeInfo *mi, XEvent *event)
+{
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+ KeySym sym = 0;
+ char c = 0;
+
+ if (event->xany.type == KeyPress || event->xany.type == KeyRelease)
+ XLookupString (&event->xkey, &c, 1, &sym, 0);
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ kb->button_pressed = True;
+ gltrackball_start(kb->trackballs[kb->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ kb->button_pressed = False;
+ return True;
+ }
+ else if (event->xany.type == KeyPress)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ kb->current_trackball = 1;
+ if (kb->button_pressed)
+ gltrackball_start(kb->trackballs[kb->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == KeyRelease)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ kb->current_trackball = 0;
+ if (kb->button_pressed)
+ gltrackball_start(kb->trackballs[kb->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == MotionNotify && kb->button_pressed)
+ {
+ gltrackball_track(kb->trackballs[kb->current_trackball],
+ event->xmotion.x, event->xmotion.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+
+ return False;
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize klein. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void init_klein(ModeInfo *mi)
+{
+ kleinstruct *kb;
+
+ MI_INIT(mi, klein);
+ kb = &klein[MI_SCREEN(mi)];
+
+
+ kb->trackballs[0] = gltrackball_init(True);
+ kb->trackballs[1] = gltrackball_init(True);
+ kb->current_trackball = 0;
+ kb->button_pressed = False;
+
+ /* Set the Klein bottle. */
+ if (!strcasecmp(klein_bottle,"random"))
+ {
+ kb->bottle_type = random() % NUM_KLEIN_BOTTLES;
+ }
+ else if (!strcasecmp(klein_bottle,"figure-8"))
+ {
+ kb->bottle_type = KLEIN_BOTTLE_FIGURE_8;
+ }
+ else if (!strcasecmp(klein_bottle,"squeezed-torus"))
+ {
+ kb->bottle_type = KLEIN_BOTTLE_SQUEEZED_TORUS;
+ }
+ else if (!strcasecmp(klein_bottle,"lawson"))
+ {
+ kb->bottle_type = KLEIN_BOTTLE_LAWSON;
+ }
+ else
+ {
+ kb->bottle_type = random() % NUM_KLEIN_BOTTLES;
+ }
+
+ /* Set the display mode. */
+ if (!strcasecmp(mode,"random"))
+ {
+ kb->display_mode = random() % NUM_DISPLAY_MODES;
+ }
+ else if (!strcasecmp(mode,"wireframe"))
+ {
+ kb->display_mode = DISP_WIREFRAME;
+ }
+ else if (!strcasecmp(mode,"surface"))
+ {
+ kb->display_mode = DISP_SURFACE;
+ }
+ else if (!strcasecmp(mode,"transparent"))
+ {
+ kb->display_mode = DISP_TRANSPARENT;
+ }
+ else
+ {
+ kb->display_mode = random() % NUM_DISPLAY_MODES;
+ }
+
+ /* Orientation marks don't make sense in wireframe mode. */
+ if (kb->display_mode == DISP_WIREFRAME)
+ marks = False;
+
+ /* Set the appearance. */
+ if (!strcasecmp(appear,"random"))
+ {
+ kb->appearance = random() % NUM_APPEARANCES;
+ }
+ else if (!strcasecmp(appear,"solid"))
+ {
+ kb->appearance = APPEARANCE_SOLID;
+ }
+ else if (!strcasecmp(appear,"bands"))
+ {
+ kb->appearance = APPEARANCE_BANDS;
+ }
+ else
+ {
+ kb->appearance = random() % NUM_APPEARANCES;
+ }
+
+ /* Set the color mode. */
+ if (!strcasecmp(color_mode,"random"))
+ {
+ kb->colors = random() % NUM_COLORS;
+ }
+ else if (!strcasecmp(color_mode,"two-sided"))
+ {
+ kb->colors = COLORS_TWOSIDED;
+ }
+ else if (!strcasecmp(color_mode,"rainbow"))
+ {
+ kb->colors = COLORS_RAINBOW;
+ }
+ else if (!strcasecmp(color_mode,"depth"))
+ {
+ kb->colors = COLORS_DEPTH;
+ }
+ else
+ {
+ kb->colors = random() % NUM_COLORS;
+ }
+
+ /* Set the view mode. */
+ if (!strcasecmp(view_mode,"random"))
+ {
+ kb->view = random() % NUM_VIEW_MODES;
+ }
+ else if (!strcasecmp(view_mode,"walk"))
+ {
+ kb->view = VIEW_WALK;
+ }
+ else if (!strcasecmp(view_mode,"turn"))
+ {
+ kb->view = VIEW_TURN;
+ }
+ else if (!strcasecmp(view_mode,"walk-turn"))
+ {
+ kb->view = VIEW_WALKTURN;
+ }
+ else
+ {
+ kb->view = random() % NUM_VIEW_MODES;
+ }
+
+ /* Set the 3d projection mode. */
+ if (!strcasecmp(proj_3d,"random"))
+ {
+ /* Orthographic projection only makes sense in turn mode. */
+ if (kb->view == VIEW_TURN)
+ kb->projection_3d = random() % NUM_DISP_3D_MODES;
+ else
+ kb->projection_3d = DISP_3D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_3d,"perspective"))
+ {
+ kb->projection_3d = DISP_3D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_3d,"orthographic"))
+ {
+ kb->projection_3d = DISP_3D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ /* Orthographic projection only makes sense in turn mode. */
+ if (kb->view == VIEW_TURN)
+ kb->projection_3d = random() % NUM_DISP_3D_MODES;
+ else
+ kb->projection_3d = DISP_3D_PERSPECTIVE;
+ }
+
+ /* Set the 4d projection mode. */
+ if (!strcasecmp(proj_4d,"random"))
+ {
+ kb->projection_4d = random() % NUM_DISP_4D_MODES;
+ }
+ else if (!strcasecmp(proj_4d,"perspective"))
+ {
+ kb->projection_4d = DISP_4D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_4d,"orthographic"))
+ {
+ kb->projection_4d = DISP_4D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ kb->projection_4d = random() % NUM_DISP_4D_MODES;
+ }
+
+ /* Modify the speeds to a useful range in walk-and-turn mode. */
+ if (kb->view == VIEW_WALKTURN)
+ {
+ speed_wx *= 0.2;
+ speed_wy *= 0.2;
+ speed_wz *= 0.2;
+ speed_xy *= 0.2;
+ speed_xz *= 0.2;
+ speed_yz *= 0.2;
+ }
+
+ /* make multiple screens rotate at slightly different rates. */
+ kb->speed_scale = 0.9 + frand(0.3);
+
+ if ((kb->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_klein(mi,MI_WIDTH(mi),MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ init(mi);
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void draw_klein(ModeInfo *mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ kleinstruct *kb;
+
+ if (klein == NULL)
+ return;
+ kb = &klein[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+ if (!kb->glx_context)
+ return;
+
+ glXMakeCurrent(display,window,*(kb->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ display_klein(mi);
+
+ if (MI_IS_FPS(mi))
+ do_fps (mi);
+
+ glFlush();
+
+ glXSwapBuffers(display,window);
+}
+
+
+#ifndef STANDALONE
+ENTRYPOINT void change_klein(ModeInfo *mi)
+{
+ kleinstruct *kb = &klein[MI_SCREEN(mi)];
+
+ if (!kb->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi),MI_WINDOW(mi),*(kb->glx_context));
+ init(mi);
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("Klein", klein)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/klein.man b/hacks/glx/klein.man
new file mode 100644
index 0000000..1b456bc
--- /dev/null
+++ b/hacks/glx/klein.man
@@ -0,0 +1,308 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+klein - Draws a 4d Klein bottle.
+.SH SYNOPSIS
+.B klein
+[\-display \fIhost:display.screen\fP]
+[\-install]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fIusecs\fP]
+[\-fps]
+[\-klein-bottle \fIbottle-name\fP]
+[-figure-8]
+[-squeezed-torus]
+[-lawson]
+[\-mode \fIdisplay-mode\fP]
+[\-wireframe]
+[\-surface]
+[\-transparent]
+[\-appearance \fIappearance\fP]
+[\-solid]
+[\-bands]
+[\-colors \fIcolor-scheme\fP]
+[\-twosided]
+[\-rainbow]
+[\-depth]
+[\-view-mode \fIview-mode\fP]
+[\-walk]
+[\-turn]
+[\-walk-turn]
+[\-orientation-marks]
+[\-projection-3d \fImode\fP]
+[\-perspective-3d]
+[\-orthographic-3d]
+[\-projection-4d \fImode\fP]
+[\-perspective-4d]
+[\-orthographic-4d]
+[\-speed-wx \fIfloat\fP]
+[\-speed-wy \fIfloat\fP]
+[\-speed-wz \fIfloat\fP]
+[\-speed-xy \fIfloat\fP]
+[\-speed-xz \fIfloat\fP]
+[\-speed-yz \fIfloat\fP]
+[\-walk-direction \fIfloat\fP]
+[\-walk-speed \fIfloat\fP]
+.SH DESCRIPTION
+The \fIklein\fP program shows three different Klein bottles in 4d: the
+figure-8 Klein bottle, the squeezed torus Klein bottle, or the Lawson
+Klein bottle. You can walk on the Klein bottle, see it turn in 4d, or
+walk on it while it turns in 4d. The figure-8 Klein bottle is well
+known in its 3d form. The 4d form used in this program is an
+extension of the 3d form to 4d that does not intersect itself in 4d
+(which can be seen in the depth colors mode). The squeezed torus
+Klein bottle also does not intersect itself in 4d (which can be seen
+in the depth colors mode). The Lawson Klein bottle, on the other
+hand, does intersect itself in 4d. Its primary use is that it has a
+nice appearance for walking and for turning in 3d. The Klein bottle
+is a non-orientable surface. To make this apparent, the two-sided
+color mode can be used. Alternatively, orientation markers (curling
+arrows) can be drawn as a texture map on the surface of the Klein
+bottle. While walking on the Klein bottle, you will notice that the
+orientation of the curling arrows changes (which it must because the
+Klein bottle is non-orientable). The program projects the 4d Klein
+bottle to 3d using either a perspective or an orthographic projection.
+Which of the two alternatives looks more appealing depends on the
+viewing mode and the Klein bottle. For example, the Lawson Klein
+bottle looks nicest when projected perspectively. The figure-8 Klein
+bottle, on the other hand, looks nicer while walking when projected
+orthographically from 4d. For the squeezed torus Klein bottle, both
+projection modes give equally acceptable projections. The projected
+Klein bottle can then be projected to the screen either perspectively
+or orthographically. When using the walking modes, perspective
+projection to the screen should be used. There are three display
+modes for the Klein bottle: mesh (wireframe), solid, or transparent.
+Furthermore, the appearance of the Klein bottle can be as a solid
+object or as a set of see-through bands. Finally, the colors with
+with the Klein bottle is drawn can be set to two-sided, rainbow, or
+depth. In the first case, the Klein bottle is drawn with red on one
+"side" and green on the "other side". Of course, the Klein bottle
+only has one side, so the color jumps from red to green along a curve
+on the surface of the Klein bottle. This mode enables you to see that
+the Klein bottle is non-orientable. The second mode draws the Klein
+bottle with fully saturated rainbow colors. This gives a very nice
+effect when combined with the see-through bands mode or with the
+orientation markers drawn. The third mode draws the Klein bottle with
+colors that are chosen according to the 4d "depth" of the points.
+This mode enables you to see that the figure-8 and squeezed torus
+Klein bottles do not intersect themselves in 4d, while the Lawson
+Klein bottle does intersect itself. The rotation speed for each of
+the six planes around which the Klein bottle rotates can be chosen.
+For the walk-and-turn mode, only the rotation speeds around the true
+4d planes are used (the xy, xz, and yz planes). Furthermore, in the
+walking modes the walking direction in the 2d base square of the Klein
+bottle and the walking speed can be chosen. This program is somewhat
+inspired by Thomas Banchoff's book "Beyond the Third Dimension:
+Geometry, Computer Graphics, and Higher Dimensions", Scientific
+American Library, 1990.
+.SH OPTIONS
+.I klein
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class, or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How much of a delay should be introduced between steps of the
+animation. Default 10000, or 1/100th second.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.PP
+The following three options are mutually exclusive. They determine
+which Klein bottle is displayed.
+.TP 8
+.B \-klein-bottle random
+Display a random Klein bottle (default).
+.TP 8
+.B \-klein-bottle figure-8 \fP(Shortcut: \fB\-figure-8\fP)
+Display the figure-8 Klein bottle.
+.TP 8
+.B \-klein-bottle squeezed-torus \fP(Shortcut: \fB\-squeezed-torus\fP)
+Display the squeezed torus Klein bottle.
+.TP 8
+.B \-klein-bottle lawson \fP(Shortcut: \fB\-lawson\fP)
+Display the Lawson Klein bottle.
+.PP
+The following four options are mutually exclusive. They determine
+how the Klein bottle is displayed.
+.TP 8
+.B \-mode random
+Display the Klein bottle in a random display mode (default).
+.TP 8
+.B \-mode wireframe \fP(Shortcut: \fB\-wireframe\fP)
+Display the Klein bottle as a wireframe mesh.
+.TP 8
+.B \-mode surface \fP(Shortcut: \fB\-surface\fP)
+Display the Klein bottle as a solid surface.
+.TP 8
+.B \-mode transparent \fP(Shortcut: \fB\-transparent\fP)
+Display the Klein bottle as a transparent surface.
+.PP
+The following three options are mutually exclusive. They determine the
+appearance of the Klein bottle.
+.TP 8
+.B \-appearance random
+Display the Klein bottle with a random appearance (default).
+.TP 8
+.B \-appearance solid \fP(Shortcut: \fB\-solid\fP)
+Display the Klein bottle as a solid object.
+.TP 8
+.B \-appearance bands \fP(Shortcut: \fB\-bands\fP)
+Display the Klein bottle as see-through bands.
+.PP
+The following four options are mutually exclusive. They determine
+how to color the Klein bottle.
+.TP 8
+.B \-colors random
+Display the Klein bottle with a random color scheme (default).
+.TP 8
+.B \-colors twosided \fP(Shortcut: \fB\-twosided\fP)
+Display the Klein bottle with two colors: red on one "side" and green
+on the "other side".
+.TP 8
+.B \-colors rainbow \fP(Shortcut: \fB\-rainbow\fP)
+Display the Klein bottle with fully saturated rainbow colors. If the
+Klein bottle is displayed as see-through bands, each band will be
+displayed with a different color.
+.TP 8
+.B \-colors depth \fP(Shortcut: \fB\-depth\fP)
+Display the Klein bottle with colors chosen depending on the 4d
+"depth" of the points.
+.PP
+The following four options are mutually exclusive. They determine
+how to view the Klein bottle.
+.TP 8
+.B \-view-mode random
+View the Klein bottle in a random view mode (default).
+.TP 8
+.B \-view-mode walk \fP(Shortcut: \fB\-walk\fP)
+View the Klein bottle as if walking on its surface.
+.TP 8
+.B \-view-mode turn \fP(Shortcut: \fB\-turn\fP)
+View the Klein bottle while it turns in 4d.
+.TP 8
+.B \-view-mode walk-turn \fP(Shortcut: \fB\-walk-turn\fP)
+View the Klein bottle as if walking on its surface. Additionally, the
+Klein bottle turns around the true 4d planes (the xy, xz, and yz
+planes).
+.PP
+The following options determine whether orientation marks are shown on
+the Klein bottle.
+.TP 8
+.B \-orientation-marks
+Display orientation marks on the Klein bottle.
+.TP 8
+.B \-no-orientation-marks
+Don't display orientation marks on the Klein bottle (default).
+.PP
+The following three options are mutually exclusive. They determine
+how the Klein bottle is projected from 3d to 2d (i.e., to the screen).
+.TP 8
+.B \-projection-3d random
+Project the Klein bottle from 3d to 2d using a random projection mode
+(default).
+.TP 8
+.B \-projection-3d perspective \fP(Shortcut: \fB\-perspective-3d\fP)
+Project the Klein bottle from 3d to 2d using a perspective projection.
+.TP 8
+.B \-projection-3d orthographic \fP(Shortcut: \fB\-orthographic-3d\fP)
+Project the Klein bottle from 3d to 2d using an orthographic
+projection.
+.PP
+The following three options are mutually exclusive. They determine
+how the Klein bottle is projected from 4d to 3d.
+.TP 8
+.B \-projection-4d random
+Project the Klein bottle from 4d to 3d using a random projection mode
+(default).
+.TP 8
+.B \-projection-4d perspective \fP(Shortcut: \fB\-perspective-4d\fP)
+Project the Klein bottle from 4d to 3d using a perspective projection.
+.TP 8
+.B \-projection-4d orthographic \fP(Shortcut: \fB\-orthographic-4d\fP)
+Project the Klein bottle from 4d to 3d using an orthographic
+projection.
+.PP
+The following six options determine the rotation speed of the Klein
+bottle around the six possible hyperplanes. The rotation speed is
+measured in degrees per frame. The speeds should be set to relatively
+small values, e.g., less than 4 in magnitude. In walk mode, all
+speeds are ignored. In walk-and-turn mode, the 3d rotation speeds are
+ignored (i.e., the wx, wy, and wz speeds). In walk-and-turn mode,
+smaller speeds must be used than in the turn mode to achieve a nice
+visualization. Therefore, in walk-and-turn mode the speeds you have
+selected are divided by 5 internally.
+.TP 8
+.B \-speed-wx \fIfloat\fP
+Rotation speed around the wx plane (default: 1.1).
+.TP 8
+.B \-speed-wy \fIfloat\fP
+Rotation speed around the wy plane (default: 1.3).
+.TP 8
+.B \-speed-wz \fIfloat\fP
+Rotation speed around the wz plane (default: 1.5).
+.TP 8
+.B \-speed-xy \fIfloat\fP
+Rotation speed around the xy plane (default: 1.7).
+.TP 8
+.B \-speed-xz \fIfloat\fP
+Rotation speed around the xz plane (default: 1.9).
+.TP 8
+.B \-speed-yz \fIfloat\fP
+Rotation speed around the yz plane (default: 2.1).
+.PP
+The following two options determine the walking speed and direction.
+.TP 8
+.B \-walk-direction \fIfloat\fP
+The walking direction is measured as an angle in degrees in the 2d
+square that forms the coordinate system of the surface of the Klein
+bottle (default: 7.0).
+.TP 8
+.B \-walk-speed \fIfloat\fP
+The walking speed is measured in percent of some sensible maximum
+speed (default: 20.0).
+.SH INTERACTION
+If you run this program in standalone mode in its turn mode, you can
+rotate the Klein bottle by dragging the mouse while pressing the left
+mouse button. This rotates the Klein bottle in 3D, i.e., around the
+wx, wy, and wz planes. If you press the shift key while dragging the
+mouse with the left button pressed the Klein bottle is rotated in 4D,
+i.e., around the xy, xz, and yz planes. To examine the Klein bottle
+at your leisure, it is best to set all speeds to 0. Otherwise, the
+Klein bottle will rotate while the left mouse button is not pressed.
+This kind of interaction is not available in the two walk modes.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2005-2014 by Carsten Steger. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Carsten Steger <carsten@mirsanmir.org>, 03-oct-2014.
diff --git a/hacks/glx/lament.c b/hacks/glx/lament.c
new file mode 100644
index 0000000..97ce18b
--- /dev/null
+++ b/hacks/glx/lament.c
@@ -0,0 +1,1786 @@
+/* xscreensaver, Copyright (c) 1998-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* Animates Lemarchand's Box, the Lament Configuration. By jwz, 25-Jul-98.
+
+ TODO:
+
+ * The gold leaf should appear to be raised up from the surface, but
+ I think this isn't possible with OpenGL. No bump maps.
+
+ * There should be strange lighting effects playing across the surface:
+ electric sparks, or little glittery blobs of light. Maybe like
+ http://www.opengl.org/archives/resources/features/KilgardTechniques/
+ LensFlare/
+
+ * Chains.
+
+ * Needs music. ("Hellraiser Themes" by Coil: TORSO CD161; also
+ duplicated on the "Unnatural History 2" compilation, WORLN M04699.)
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_lament 0
+# define release_lament 0
+#include "xlockmore.h"
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+/* #define DEBUG_MODE LAMENT_LEVIATHAN_COLLAPSE */
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+#undef MAX
+#define MAX(x, y) ((x) > (y) ? (x) : (y))
+#undef MIN
+#define MIN(x, y) ((x) < (y) ? (x) : (y))
+
+extern const struct gllist
+ *lament_model_box,
+ *lament_model_iso_base_a,
+ *lament_model_iso_base_b,
+ *lament_model_iso_den,
+ *lament_model_iso_dse,
+ *lament_model_iso_dwn,
+ *lament_model_iso_swd,
+ *lament_model_iso_une,
+ *lament_model_iso_unw,
+ *lament_model_iso_use,
+ *lament_model_iso_usw,
+ *lament_model_leviathan,
+ *lament_model_lid_a,
+ *lament_model_lid_b,
+ *lament_model_lid_base,
+ *lament_model_lid_c,
+ *lament_model_lid_d,
+ *lament_model_pillar_a,
+ *lament_model_pillar_b,
+ *lament_model_pillar_base,
+ *lament_model_star_d,
+ *lament_model_star_u,
+ *lament_model_taser_a,
+ *lament_model_taser_b,
+ *lament_model_taser_base,
+ *lament_model_tetra_base,
+ *lament_model_tetra_dse,
+ *lament_model_tetra_dwn,
+ *lament_model_tetra_une,
+ *lament_model_tetra_usw;
+
+static const struct gllist * const *all_objs[] = {
+ &lament_model_box,
+ &lament_model_iso_base_a,
+ &lament_model_iso_base_b,
+ &lament_model_iso_den,
+ &lament_model_iso_dse,
+ &lament_model_iso_dwn,
+ &lament_model_iso_swd,
+ &lament_model_iso_une,
+ &lament_model_iso_unw,
+ &lament_model_iso_use,
+ &lament_model_iso_usw,
+ &lament_model_leviathan,
+ &lament_model_lid_a,
+ &lament_model_lid_b,
+ &lament_model_lid_base,
+ &lament_model_lid_c,
+ &lament_model_lid_d,
+ &lament_model_pillar_a,
+ &lament_model_pillar_b,
+ &lament_model_pillar_base,
+ &lament_model_star_d,
+ &lament_model_star_u,
+ &lament_model_taser_a,
+ &lament_model_taser_b,
+ &lament_model_taser_base,
+ &lament_model_tetra_base,
+ &lament_model_tetra_dse,
+ &lament_model_tetra_dwn,
+ &lament_model_tetra_une,
+ &lament_model_tetra_usw
+};
+
+typedef enum { /* must be in the same order as in `all_objs'. */
+ OBJ_BOX = 0,
+ OBJ_ISO_BASE_A,
+ OBJ_ISO_BASE_B,
+ OBJ_ISO_DEN,
+ OBJ_ISO_DSE,
+ OBJ_ISO_DWN,
+ OBJ_ISO_SWD,
+ OBJ_ISO_UNE,
+ OBJ_ISO_UNW,
+ OBJ_ISO_USE,
+ OBJ_ISO_USW,
+ OBJ_LEVIATHAN,
+ OBJ_LID_A,
+ OBJ_LID_B,
+ OBJ_LID_BASE,
+ OBJ_LID_C,
+ OBJ_LID_D,
+ OBJ_PILLAR_A,
+ OBJ_PILLAR_B,
+ OBJ_PILLAR_BASE,
+ OBJ_STAR_D,
+ OBJ_STAR_U,
+ OBJ_TASER_A,
+ OBJ_TASER_B,
+ OBJ_TASER_BASE,
+ OBJ_TETRA_BASE,
+ OBJ_TETRA_DSE,
+ OBJ_TETRA_DWN,
+ OBJ_TETRA_UNE,
+ OBJ_TETRA_USW
+} lament_obj_index;
+
+
+#define DEF_TEXTURE "True"
+
+static int do_texture;
+
+static XrmOptionDescRec opts[] = {
+ {"-texture", ".lament.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".lament.texture", XrmoptionNoArg, "false" },
+};
+
+static argtype vars[] = {
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt lament_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#include "ximage-loader.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "normals.h"
+
+#include "images/gen/lament512_png.h"
+
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+typedef enum {
+ LAMENT_BOX,
+
+ LAMENT_STAR_OUT,
+ LAMENT_STAR_ROT,
+ LAMENT_STAR_ROT_IN,
+ LAMENT_STAR_ROT_OUT,
+ LAMENT_STAR_UNROT,
+ LAMENT_STAR_IN,
+
+ LAMENT_TETRA_UNE,
+ LAMENT_TETRA_USW,
+ LAMENT_TETRA_DWN,
+ LAMENT_TETRA_DSE,
+
+ LAMENT_LID_OPEN,
+ LAMENT_LID_CLOSE,
+ LAMENT_LID_ZOOM,
+
+ LAMENT_TASER_OUT,
+ LAMENT_TASER_SLIDE,
+ LAMENT_TASER_SLIDE_IN,
+ LAMENT_TASER_IN,
+
+ LAMENT_PILLAR_OUT,
+ LAMENT_PILLAR_SPIN,
+ LAMENT_PILLAR_IN,
+
+ LAMENT_SPHERE_OUT,
+ LAMENT_SPHERE_IN,
+
+ LAMENT_LEVIATHAN_SPIN,
+ LAMENT_LEVIATHAN_FADE,
+ LAMENT_LEVIATHAN_TWIST,
+ LAMENT_LEVIATHAN_COLLAPSE,
+ LAMENT_LEVIATHAN_EXPAND,
+ LAMENT_LEVIATHAN_UNTWIST,
+ LAMENT_LEVIATHAN_UNFADE,
+ LAMENT_LEVIATHAN_UNSPIN,
+
+} lament_type;
+
+static const GLfloat exterior_color[] =
+ { 0.33, 0.22, 0.03, 1.00, /* ambient */
+ 0.78, 0.57, 0.11, 1.00, /* specular */
+ 0.99, 0.91, 0.81, 1.00, /* diffuse */
+ 27.80 /* shininess */
+ };
+static const GLfloat interior_color[] =
+ { 0.20, 0.20, 0.15, 1.00, /* ambient */
+ 0.40, 0.40, 0.32, 1.00, /* specular */
+ 0.99, 0.99, 0.81, 1.00, /* diffuse */
+ 50.80 /* shininess */
+ };
+static const GLfloat leviathan_color[] =
+ { 0.30, 0.30, 0.30, 1.00, /* ambient */
+ 0.85, 0.85, 0.95, 1.00, /* specular */
+ 0.99, 0.99, 0.99, 1.00, /* diffuse */
+ 50.80 /* shininess */
+ };
+static const GLfloat black_color[] =
+ { 0.05, 0.05, 0.05, 1.00, /* ambient */
+ 0.05, 0.05, 0.05, 1.00, /* specular */
+ 0.05, 0.05, 0.05, 1.00, /* diffuse */
+ 80.00 /* shininess */
+ };
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ double rotx, roty, rotz;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool ffwdp;
+
+ GLuint dlists[countof(all_objs)];
+ GLuint polys[countof(all_objs)];
+
+ XImage *texture; /* image bits */
+ GLuint texids[8]; /* texture map IDs */
+ lament_type type; /* which mode of the object is current */
+
+ int anim_pause; /* countdown before animating again */
+ GLfloat anim_r, anim_y, anim_z; /* relative position during anims */
+ Bool facing_p;
+
+ int state, nstates;
+ lament_type *states;
+
+} lament_configuration;
+
+static lament_configuration *lcs = NULL;
+
+
+static Bool
+facing_screen_p (ModeInfo *mi)
+{
+ Bool facing_p;
+ GLdouble m[16], p[16], x, y, z;
+ GLint v[4];
+ glGetDoublev (GL_MODELVIEW_MATRIX, m);
+ glGetDoublev (GL_PROJECTION_MATRIX, p);
+ glGetIntegerv (GL_VIEWPORT, v);
+
+ /* See if a coordinate 5 units in front of the door is near the
+ center of the screen. */
+ gluProject (0, -5, 0, m, p, v, &x, &y, &z);
+ x = (x / MI_WIDTH(mi)) - 0.5;
+ y = (y / MI_HEIGHT(mi)) - 0.5;
+
+ facing_p = (z < 0.9 &&
+ x > -0.15 && x < 0.15 &&
+ y > -0.15 && y < 0.15);
+
+# ifdef DEBUG_MODE
+ glBindTexture(GL_TEXTURE_2D, 0);
+ glDisable (GL_LIGHTING);
+ glColor3f (1, (facing_p ? 1 : 0), 0);
+ glBegin (GL_LINES);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, -5, 0);
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi)) glEnable (GL_LIGHTING);
+# endif /* DEBUG_MODE */
+
+ return facing_p;
+}
+
+
+static void
+scale_for_window (ModeInfo *mi)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+
+ GLfloat target_size = 1.4 * (lc->texture ? lc->texture->width : 512);
+ GLfloat size = MI_WIDTH(mi) < MI_HEIGHT(mi) ? MI_WIDTH(mi) : MI_HEIGHT(mi);
+ GLfloat scale;
+
+ /* Make it take up roughly the full width of the window. */
+ scale = 20;
+
+ /* But if the window is wider than tall, make it only take up the
+ height of the window instead.
+ */
+ if (MI_WIDTH(mi) > MI_HEIGHT(mi))
+ scale /= MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+
+ /* If the window is super wide, make it bigger. */
+ if (scale < 8) scale = 8;
+
+ /* Constrain it to roughly life-sized on the screen, not huge.
+ */
+# ifdef HAVE_MOBILE
+ if (size > 768) /* iPad retina / iPhone 6 */
+ target_size *= 1.5;
+ else
+# endif
+ {
+ GLfloat max = 500; /* 3" on my screen... */
+
+ if (MI_WIDTH(mi) > 2560) { /* Retina displays */
+ target_size *= 2.5;
+ max *= 2.5;
+ }
+
+ if (target_size > max)
+ target_size = max;
+ }
+
+ /* But if that would make the image larger than target_size, scale it
+ back down again. The image-map bits we have are 512x512, so if the
+ image is magnified a lot, it looks pretty blocky. It's better to
+ have a 512x512 animation on a 1920x1080 screen that looks good
+ than a 1024x1024 animation that looks really pixelated.
+ */
+ if (size > target_size)
+ scale *= target_size / size;
+
+ glScalef (scale, scale, scale);
+}
+
+
+static void
+set_colors (const GLfloat *color)
+{
+ glMaterialfv(GL_FRONT, GL_AMBIENT, color + 0);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, color + 4);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, color + 8);
+ glMaterialfv(GL_FRONT, GL_SHININESS, color + 12);
+}
+
+static void
+set_colors_alpha (const GLfloat *color, GLfloat a)
+{
+ GLfloat c[countof(leviathan_color)];
+ memcpy (c, color, sizeof(c));
+ c[3] = c[7] = c[11] = a;
+ set_colors (c);
+}
+
+
+static void
+which_face (ModeInfo *mi, const GLfloat *f, int *face, int *outerp)
+{
+ GLfloat size = 3; /* 3" square */
+ const GLfloat *n = f; /* normal */
+ const GLfloat *v = f + 3; /* vertex */
+ GLfloat slack = 0.01;
+
+ /* First look at the normal to determine which direction this triangle
+ is facing (or is most-closely facing).
+ It's an outer surface if it is within epsilon of the cube wall that
+ it is facing. Otherwise, it's an inner surface.
+ */
+ if (n[1] < -0.5) *face = 1, *outerp = v[1] < slack; /* S */
+ else if (n[2] > 0.5) *face = 2, *outerp = v[2] > size-slack; /* U */
+ else if (n[1] > 0.5) *face = 3, *outerp = v[1] > size-slack; /* N */
+ else if (n[2] < -0.5) *face = 4, *outerp = v[2] < slack; /* D */
+ else if (n[0] < -0.5) *face = 5, *outerp = v[0] < slack; /* W */
+ else /* (n[0] > 0.5)*/ *face = 6, *outerp = v[0] > size-slack; /* E */
+
+ /* Faces that don't have normals parallel to the axes aren't external. */
+ if (*outerp &&
+ (n[0] > -0.95 && n[0] < 0.95 &&
+ n[1] > -0.95 && n[1] < 0.95 &&
+ n[2] > -0.95 && n[2] < 0.95))
+ *outerp = 0;
+}
+
+
+static void
+texturize_vert (ModeInfo *mi, int which, const GLfloat *v)
+{
+ GLfloat size = 3; /* 3" square */
+ GLfloat s = 0, q = 0;
+
+ /* Texture coordinates are surface coordinates,
+ on the plane of this cube wall. */
+ switch (which) {
+ case 0: break;
+ case 1: s = v[0], q = v[2]; break;
+ case 2: s = v[0], q = v[1]; break;
+ case 3: s = v[0], q = v[2]; q = size - q; break;
+ case 4: s = v[0], q = v[1]; q = size - q; break;
+ case 5: s = v[1], q = v[2]; break;
+ case 6: s = v[1], q = v[2]; break;
+ default: abort(); break;
+ }
+
+ glTexCoord2f (s / size, q / size);
+}
+
+
+static void
+leviathan (ModeInfo *mi, GLfloat ratio, GLfloat alpha, Bool top_p)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ GLfloat r = 0.34;
+ GLfloat z = 2 * ratio;
+ XYZ p[3];
+ int i;
+
+ GLfloat th = acos (2 / sqrt (6)); /* Line up with cube's diagonal */
+
+ glPushMatrix();
+
+ glRotatef (-45, 0, 1, 0);
+ glRotatef (-th * 180 / M_PI, 0, 0, 1);
+
+ if (!top_p)
+ glRotatef (180, 0, 0, 1);
+
+ for (i = 0; i < countof(p); i++)
+ {
+ GLfloat th = i * M_PI * 2 / countof(p);
+ p[i].x = cos(th) * r;
+ p[i].y = sin(th) * r;
+ }
+
+ glFrontFace (GL_CCW);
+ for (i = 0; i < countof(p); i++)
+ {
+ int j = (i + 1) % countof(p);
+/* if (top_p)*/
+ do_normal (z, 0, 0,
+ 0, p[i].x, p[i].y,
+ 0, p[j].x, p[j].y);
+/*
+ else
+ do_normal (z, 0, 0,
+ 0, p[j].y, p[j].z,
+ 0, p[i].y, p[i].z);
+*/
+
+ if (do_texture) /* Leviathan is the final texture */
+ glBindTexture (GL_TEXTURE_2D, lc->texids[countof(lc->texids) - 1]);
+
+ set_colors (leviathan_color);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glTexCoord2f (0.5, 1);
+ glVertex3f (z, 0, 0);
+
+ glTexCoord2f (0, 0);
+ glVertex3f (0, p[i].x, p[i].y);
+
+ glTexCoord2f (1, 0);
+ glVertex3f (0, p[j].x, p[j].y);
+ glEnd();
+ mi->polygon_count++;
+
+ /* Shield for fading */
+ if (alpha < 0.9 && !wire)
+ {
+ GLfloat a = 0.35;
+ GLfloat b = 0.69;
+
+ set_colors_alpha (black_color, 1-alpha);
+ glBindTexture (GL_TEXTURE_2D, 0);
+ if (!wire)
+ {
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+
+ glVertex3f (z*a, p[j].x * b, p[j].y * b);
+ glVertex3f (z*a, p[i].x * b, p[i].y * b);
+ glVertex3f (0, p[i].x * 1.01, p[i].y * 1.01);
+ glVertex3f (0, p[j].x * 1.01, p[j].y * 1.01);
+ glEnd();
+ mi->polygon_count++;
+ glDisable (GL_BLEND);
+ }
+ }
+
+ glPopMatrix();
+}
+
+
+static void
+folding_walls (ModeInfo *mi, GLfloat ratio, Bool top_p)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ const GLfloat pa[4][2] = {{ -0.5, -0.215833 },
+ { 0, 0.5 },
+ { 0.5, 0 },
+ { -0.215833, -0.5 }};
+ const int tex[6] = { 0, 5, 1, 4, 2, 3 };
+ const GLfloat top = -pa[0][1];
+ GLfloat end_angle = 30.85;
+ GLfloat rr = sin (ratio / 2 * M_PI);
+ GLfloat offa = 0.15 * rr;
+ GLfloat offb = 0.06 * rr;
+ GLfloat p[4][3];
+ GLfloat t[4][2];
+ int i;
+
+ glPushMatrix();
+
+ if (top_p)
+ {
+ glRotatef (60, 1, -1, 1);
+ glRotatef (180, 0, 1, 0);
+ glRotatef (90, 1, 0, 0);
+ }
+ else
+ {
+ glRotatef (180, 1, 0, 0);
+ }
+
+ /* Scale down the points near the axis */
+
+ p[0][0] = pa[0][0];
+ p[0][1] = 0.5;
+ p[0][2] = pa[0][1];
+
+ p[1][0] = pa[1][0] - offb;
+ p[1][1] = 0.5;
+ p[1][2] = pa[1][1] - offa;
+
+ p[2][0] = pa[2][0] - offa;
+ p[2][1] = 0.5;
+ p[2][2] = pa[2][1] - offb;
+
+ p[3][0] = pa[3][0];
+ p[3][1] = 0.5;
+ p[3][2] = pa[3][1];
+
+ if (!wire)
+ {
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ glPushMatrix();
+
+ if (i == 1)
+ {
+ glRotatef (-90, 1, 0, 0);
+ glRotatef (180, 1, 1, 0);
+ }
+ else if (i == 2)
+ {
+ glRotatef (-90, 1, 0, 0);
+ glRotatef (180, 0, 1, 0);
+ glRotatef (90, 0, 1, 0);
+ }
+
+ glRotatef (-90, 0, 1, 0);
+
+ glTranslatef (-(top/2 + 0.25), 0.5, -(top/2 + 0.25));
+ glRotatef (-45, 0, 1, 0);
+ glRotatef (ratio * -end_angle, 0, 0, 1);
+ glRotatef (45, 0, 1, 0);
+ glTranslatef (top/2 + 0.25, -0.5, top/2 + 0.25);
+
+ /* Get the texture coordinates right.
+ This is hairy and incomprehensible. */
+
+ t[0][0] = pa[0][1] + 0.5; t[0][1] = pa[0][0] + 0.5;
+ t[1][0] = pa[1][1] + 0.5; t[1][1] = pa[1][0] + 0.5;
+ t[2][0] = pa[2][1] + 0.5; t[2][1] = pa[2][0] + 0.5;
+ t[3][0] = pa[3][1] + 0.5; t[3][1] = pa[3][0] + 0.5;
+
+ if (i == 0 && !top_p)
+ {
+# define SWAP(A,B) A = 1-A, B = 1-B
+ SWAP(t[0][0], t[0][1]);
+ SWAP(t[1][0], t[1][1]);
+ SWAP(t[2][0], t[2][1]);
+ SWAP(t[3][0], t[3][1]);
+# undef SWAP
+ }
+ else if (i == 0 && top_p)
+ {
+ GLfloat ot[4][3];
+ memcpy (ot, t, sizeof(t));
+# define SWAP(A,B) A = 1-A, B = 1-B
+ SWAP(t[0][0], ot[2][1]);
+ SWAP(t[1][0], ot[3][1]);
+ SWAP(t[2][0], ot[0][1]);
+ SWAP(t[3][0], ot[1][1]);
+# undef SWAP
+ }
+ else if (i == 1)
+ {
+ GLfloat f;
+# define SWAP(A,B) f = A, A = B, B = -f
+ SWAP(t[0][0], t[0][1]);
+ SWAP(t[1][0], t[1][1]);
+ SWAP(t[2][0], t[2][1]);
+ SWAP(t[3][0], t[3][1]);
+# undef SWAP
+ }
+
+ set_colors_alpha (exterior_color, 1-ratio);
+ glBindTexture (GL_TEXTURE_2D, lc->texids[tex[i + (top_p ? 3 : 0)]]);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ do_normal (p[0][0], p[0][1], p[0][2],
+ p[1][0], p[1][1], p[1][2],
+ p[2][0], p[2][1], p[2][2]);
+ glTexCoord2fv(t[0]); glVertex3fv(p[0]);
+ glTexCoord2fv(t[1]); glVertex3fv(p[1]);
+ glTexCoord2fv(t[2]); glVertex3fv(p[2]);
+ glTexCoord2fv(t[3]); glVertex3fv(p[3]);
+ glEnd();
+ mi->polygon_count++;
+
+ /* The triangles between the quads */
+# if 0
+ /* #### There is a fucking gap between the two black triangles
+ that I can't figure out! So instead of drawing the triangles,
+ we build a black shield around the middle bit in leviathan()
+ and count on back-face culling to have roughly the same effect.
+ */
+ if (!wire)
+ {
+ GLfloat pp[4][3];
+ memcpy (pp, p, sizeof(pp));
+ memcpy (pp[2], pp[1], sizeof(pp[1]));
+ pp[2][0] -= 0.5 * (1-ratio);
+ pp[2][1] -= 0.5 * (1-ratio);
+
+ glBindTexture (GL_TEXTURE_2D, 0);
+ set_colors_alpha (black_color, 1-ratio);
+
+ glBegin(wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ do_normal (pp[0][0], pp[0][1], pp[0][2],
+ pp[2][0], pp[2][1], pp[2][2],
+ pp[1][0], pp[1][1], pp[1][2]);
+ glVertex3fv(pp[0]);
+ glVertex3fv(pp[2]);
+ glVertex3fv(pp[1]);
+ glEnd();
+ mi->polygon_count++;
+ }
+# endif
+
+ glPopMatrix();
+ }
+
+ if (! wire) glDisable (GL_BLEND);
+
+ glPopMatrix();
+}
+
+
+static int
+lament_sphere (ModeInfo *mi, GLfloat ratio)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ GLfloat size = 3; /* 3" square */
+ int polys = 0;
+ int facets = 16; /* NxN grid on each face */
+ int face;
+ static const GLfloat norms[6][3] = {{ 0, -1, 0 }, { 0, 0, 1 }, { 0, 1, 0 },
+ { 0, 0, -1 }, { -1, 0, 0 }, { 1, 0, 0 }};
+ GLfloat s = 1.0 / facets;
+
+ /* The ratio used for the normals: linger on the square normals. */
+ GLfloat ratio2 = 1 - sin ((1 - ratio) / 2 * M_PI);
+ GLfloat r1 = 1 - ratio2 / 2;
+ GLfloat r2 = ratio2 / 2;
+
+ glPushMatrix();
+ glTranslatef (-0.5, -0.5, -0.5);
+ glScalef (1/size, 1/size, 1/size);
+
+ set_colors (exterior_color);
+
+ for (face = 0; face < 6; face++)
+ {
+ GLfloat x0, y0;
+ for (y0 = 0; y0 < 1; y0 += s)
+ for (x0 = 0; x0 < 1; x0 += s)
+ {
+ int i;
+ GLfloat x1 = x0 + s;
+ GLfloat y1 = y0 + s;
+ GLfloat pa[4][3]; /* verts of the cube */
+ GLfloat pb[4][3]; /* verts of the transition to the sphere */
+ Bool frontp;
+ GLfloat norm[4][3]; /* normals of the transitional verts */
+
+ if (norms[face][0])
+ frontp = norms[face][0] < 0,
+ pa[0][1] = x0, pa[0][2] = y0, pa[0][0] = (frontp ? 0 : 1),
+ pa[1][1] = x1, pa[1][2] = y0, pa[1][0] = pa[0][0],
+ pa[2][1] = x1, pa[2][2] = y1, pa[2][0] = pa[0][0],
+ pa[3][1] = x0, pa[3][2] = y1, pa[3][0] = pa[0][0];
+ else if (norms[face][1])
+ frontp = norms[face][1] > 0,
+ pa[0][0] = x0, pa[0][2] = y0, pa[0][1] = (frontp ? 1 : 0),
+ pa[1][0] = x1, pa[1][2] = y0, pa[1][1] = pa[0][1],
+ pa[2][0] = x1, pa[2][2] = y1, pa[2][1] = pa[0][1],
+ pa[3][0] = x0, pa[3][2] = y1, pa[3][1] = pa[0][1];
+ else /* (norms[face][2]) */
+ frontp = norms[face][2] < 0,
+ pa[0][0] = x0, pa[0][1] = y0, pa[0][2] = (frontp ? 0 : 1),
+ pa[1][0] = x1, pa[1][1] = y0, pa[1][2] = pa[0][2],
+ pa[2][0] = x1, pa[2][1] = y1, pa[2][2] = pa[0][2],
+ pa[3][0] = x0, pa[3][1] = y1, pa[3][2] = pa[0][2];
+
+ for (i = 0; i < countof(pa); i++)
+ pa[i][0] *= size, pa[i][1] *= size, pa[i][2] *= size;
+
+ /* Convert square to sphere by treating as a normalized vector */
+ for (i = 0; i < countof(pa); i++)
+ {
+ GLfloat x = (pa[i][0] / size) - 0.5;
+ GLfloat y = (pa[i][1] / size) - 0.5;
+ GLfloat z = (pa[i][2] / size) - 0.5;
+ GLfloat d = sqrt (x*x + y*y + z*z) / 2;
+ x = x/d + size/2;
+ y = y/d + size/2;
+ z = z/d + size/2;
+
+ pb[i][0] = pa[i][0] + ((x - pa[i][0]) * ratio);
+ pb[i][1] = pa[i][1] + ((y - pa[i][1]) * ratio);
+ pb[i][2] = pa[i][2] + ((z - pa[i][2]) * ratio);
+ }
+
+ /* The normals of an intermediate point are the weighted average
+ of the cube's orthogonal normals, and the sphere's radial
+ normals: early in the sequence, the edges are sharp, but they
+ soften as it expands. */
+ {
+ XYZ na, pa0, pa1, pa2;
+ pa0.x = pa[0][0]; pa0.y = pa[0][1]; pa0.z = pa[0][2];
+ pa1.x = pa[1][0]; pa1.y = pa[1][1]; pa1.z = pa[1][2];
+ pa2.x = pa[2][0]; pa2.y = pa[2][1]; pa2.z = pa[2][2];
+ na = calc_normal (pa0, pa1, pa2);
+
+ for (i = 0; i < countof(pb); i++)
+ {
+ GLfloat d;
+ XYZ nb;
+
+ nb.x = pb[i][0];
+ nb.y = pb[i][1];
+ nb.z = pb[i][2];
+ d = sqrt (nb.x*nb.x + nb.y*nb.y + nb.z*nb.z); /* normalize */
+ nb.x /= d;
+ nb.y /= d;
+ nb.z /= d;
+
+ norm[i][0] = (na.x * r1) + (nb.x * r2); /* weighted */
+ norm[i][1] = (na.y * r1) + (nb.y * r2);
+ norm[i][2] = (na.z * r1) + (nb.z * r2);
+ }
+ }
+
+ if (! wire)
+ glBindTexture (GL_TEXTURE_2D, lc->texids[face]);
+
+ glFrontFace (frontp ? GL_CW : GL_CCW);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+
+ texturize_vert (mi, face+1, pa[0]);
+ glNormal3fv (norm[0]);
+ glVertex3fv (pb[0]);
+
+ texturize_vert (mi, face+1, pa[1]);
+ glNormal3fv (norm[1]);
+ glVertex3fv (pb[1]);
+
+ texturize_vert (mi, face+1, pa[2]);
+ glNormal3fv (norm[2]);
+ glVertex3fv (pb[2]);
+
+ texturize_vert (mi, face+1, pa[3]);
+ glNormal3fv (norm[3]);
+ glVertex3fv (pb[3]);
+
+ glEnd();
+ polys++;
+ }
+ }
+
+ glPopMatrix();
+
+ return polys;
+}
+
+
+static void
+draw (ModeInfo *mi)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+
+ mi->polygon_count = 0;
+
+ if (!wire)
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ else
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glPushMatrix();
+
+ gltrackball_rotate (lc->trackball);
+
+ /* Make into the screen be +Y, right be +X, and up be +Z. */
+ glRotatef (-90.0, 1.0, 0.0, 0.0);
+
+ scale_for_window (mi);
+
+ /* Apply rotation to the object. */
+ if (lc->type != LAMENT_LID_ZOOM)
+ get_rotation (lc->rot, &lc->rotx, &lc->roty, &lc->rotz,
+ !lc->button_down_p);
+# ifdef DEBUG_MODE
+ lc->rotx = 0.18;
+ lc->roty = 0.22;
+ lc->rotx = lc->roty = 0;
+ lc->rotz = 0;
+# endif
+
+ glRotatef (lc->rotx * 360, 1, 0, 0);
+ glRotatef (lc->roty * 360, 0, 1, 0);
+ glRotatef (lc->rotz * 360, 0, 0, 1);
+
+ glScalef (0.5, 0.5, 0.5);
+
+ switch (lc->type)
+ {
+ case LAMENT_BOX:
+ glCallList (lc->dlists[OBJ_BOX]);
+ mi->polygon_count += lc->polys[OBJ_BOX];
+ break;
+
+ case LAMENT_STAR_OUT:
+ case LAMENT_STAR_ROT:
+ case LAMENT_STAR_ROT_IN:
+ case LAMENT_STAR_ROT_OUT:
+ case LAMENT_STAR_UNROT:
+ case LAMENT_STAR_IN:
+ glTranslatef (0.0, 0.0, lc->anim_z/2);
+ glRotatef (lc->anim_r/2, 0.0, 0.0, 1.0);
+ glCallList (lc->dlists[OBJ_STAR_U]);
+ mi->polygon_count += lc->polys[OBJ_STAR_U];
+
+ glTranslatef (0.0, 0.0, -lc->anim_z);
+ glRotatef (-lc->anim_r, 0.0, 0.0, 1.0);
+ glCallList (lc->dlists[OBJ_STAR_D]);
+ mi->polygon_count += lc->polys[OBJ_STAR_D];
+ break;
+
+ case LAMENT_TETRA_UNE:
+ case LAMENT_TETRA_USW:
+ case LAMENT_TETRA_DWN:
+ case LAMENT_TETRA_DSE:
+ {
+ int magic;
+ GLfloat x, y, z;
+ switch (lc->type) {
+ case LAMENT_TETRA_UNE: magic = OBJ_TETRA_UNE; x= 1; y= 1; z= 1; break;
+ case LAMENT_TETRA_USW: magic = OBJ_TETRA_USW; x= 1; y= 1; z=-1; break;
+ case LAMENT_TETRA_DWN: magic = OBJ_TETRA_DWN; x= 1; y=-1; z= 1; break;
+ case LAMENT_TETRA_DSE: magic = OBJ_TETRA_DSE; x=-1; y= 1; z= 1; break;
+ default: abort(); break;
+ }
+ glCallList(lc->dlists[OBJ_TETRA_BASE]);
+ mi->polygon_count += lc->polys[OBJ_TETRA_BASE];
+ if (magic != OBJ_TETRA_UNE) glCallList (lc->dlists[OBJ_TETRA_UNE]);
+ if (magic != OBJ_TETRA_USW) glCallList (lc->dlists[OBJ_TETRA_USW]);
+ if (magic != OBJ_TETRA_DWN) glCallList (lc->dlists[OBJ_TETRA_DWN]);
+ if (magic != OBJ_TETRA_DSE) glCallList (lc->dlists[OBJ_TETRA_DSE]);
+ glRotatef (lc->anim_r, x, y, z);
+ glCallList (lc->dlists[magic]);
+ mi->polygon_count += lc->polys[magic] * 3;
+ }
+ break;
+
+ case LAMENT_LID_OPEN:
+ case LAMENT_LID_CLOSE:
+ case LAMENT_LID_ZOOM:
+ {
+ GLfloat d = 0.21582;
+ int i;
+ const int lists[4] = { OBJ_LID_A, OBJ_LID_B, OBJ_LID_C, OBJ_LID_D };
+
+ lc->facing_p = facing_screen_p (mi);
+
+ if (lc->anim_z < 0.5)
+ glTranslatef (0, -30 * lc->anim_z, 0); /* zoom */
+ else
+ glTranslatef (8 * (0.5 - (lc->anim_z - 0.5)), 0, 0);
+
+ glCallList (lc->dlists[OBJ_LID_BASE]);
+ mi->polygon_count += lc->polys[OBJ_LID_BASE];
+ for (i = 0; i < countof(lists); i++)
+ {
+ glPushMatrix();
+ glRotatef (90 * i, 0, 1, 0);
+ glTranslatef (-d, -0.5, d);
+ glRotatef (-45, 0, 1, 0);
+ glRotatef (-lc->anim_r, 1, 0, 0);
+ glRotatef (45, 0, 1, 0);
+ glTranslatef (d, 0.5, -d);
+ glRotatef (-90 * i, 0, 1, 0);
+ glCallList (lc->dlists[lists[i]]);
+ mi->polygon_count += lc->polys[lists[i]];
+ glPopMatrix();
+ }
+
+# ifdef DEBUG_MODE
+ if (lc->facing_p)
+ {
+ glColor3f(1, 0, 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (-0.49, 0.49, -0.49);
+ glVertex3f ( 0.49, 0.49, -0.49);
+ glVertex3f ( 0.49, 0.49, 0.49);
+ glVertex3f (-0.49, 0.49, 0.49);
+ glEnd();
+ mi->polygon_count++;
+ }
+# endif /* DEBUG_MODE */
+ }
+ break;
+
+ case LAMENT_TASER_OUT:
+ case LAMENT_TASER_SLIDE:
+ case LAMENT_TASER_SLIDE_IN:
+ case LAMENT_TASER_IN:
+
+ glTranslatef (0, -lc->anim_z/2, 0);
+ glCallList (lc->dlists[OBJ_TASER_BASE]);
+ mi->polygon_count += lc->polys[OBJ_TASER_BASE];
+
+ glTranslatef (0, lc->anim_z, 0);
+ glCallList (lc->dlists[OBJ_TASER_A]);
+ mi->polygon_count += lc->polys[OBJ_TASER_A];
+
+ glTranslatef (lc->anim_y, 0, 0);
+ glCallList (lc->dlists[OBJ_TASER_B]);
+ mi->polygon_count += lc->polys[OBJ_TASER_B];
+ break;
+
+ case LAMENT_PILLAR_OUT:
+ case LAMENT_PILLAR_SPIN:
+ case LAMENT_PILLAR_IN:
+
+ glCallList (lc->dlists[OBJ_PILLAR_BASE]);
+ mi->polygon_count += lc->polys[OBJ_PILLAR_BASE];
+
+ glPushMatrix();
+ if (lc->anim_z == 1 || lc->anim_z == 3)
+ {
+ glRotatef (lc->anim_r, 0, 0, 1);
+ glTranslatef (0, 0, lc->anim_y);
+ }
+ glCallList (lc->dlists[OBJ_PILLAR_A]);
+ mi->polygon_count += lc->polys[OBJ_PILLAR_A];
+ glPopMatrix();
+
+ glPushMatrix();
+ if (lc->anim_z == 2 || lc->anim_z == 3)
+ {
+ glRotatef (lc->anim_r, 0, 0, 1);
+ glTranslatef (0, 0, -lc->anim_y);
+ }
+ glCallList (lc->dlists[OBJ_PILLAR_B]);
+ mi->polygon_count += lc->polys[OBJ_PILLAR_B];
+ glPopMatrix();
+ break;
+
+ case LAMENT_SPHERE_OUT:
+ case LAMENT_SPHERE_IN:
+ mi->polygon_count += lament_sphere (mi, lc->anim_y);
+ break;
+
+ case LAMENT_LEVIATHAN_SPIN:
+ case LAMENT_LEVIATHAN_UNSPIN:
+ case LAMENT_LEVIATHAN_FADE:
+ case LAMENT_LEVIATHAN_UNFADE:
+ case LAMENT_LEVIATHAN_TWIST:
+ case LAMENT_LEVIATHAN_UNTWIST:
+ {
+ /* These normals are hard to compute, so I pulled them from the
+ model. */
+ const GLfloat axes[6][4] =
+ {{ OBJ_ISO_UNE, 0.633994, 0.442836, 0.633994 },
+ { OBJ_ISO_USW, 0.442836, 0.633994, -0.633994 },
+ { OBJ_ISO_DSE, -0.633994, 0.633994, 0.442836 },
+ { OBJ_ISO_SWD, -0.633994, -0.442836, -0.633994 },
+ { OBJ_ISO_DEN, -0.442836, -0.633994, 0.633994 },
+ { OBJ_ISO_UNW, 0.633994, -0.633994, -0.442836 }};
+ int i;
+
+ GLfloat s = (1 - lc->anim_z);
+ GLfloat s2 = MAX (0, 360 - lc->anim_r) / 360.0;
+ Bool blendp = 0;
+
+ switch (lc->type) {
+ case LAMENT_LEVIATHAN_SPIN: break;
+ case LAMENT_LEVIATHAN_UNSPIN: s2 = 1 - s2; break;
+ default: s2 = 0; blendp = 1; break;
+ }
+
+ if (wire) blendp = 0;
+
+ s = (s * 0.6) + 0.4;
+
+ leviathan (mi, 1 - s2, 1, True);
+ glCallList (lc->dlists[OBJ_ISO_BASE_A]);
+ mi->polygon_count += lc->polys[OBJ_ISO_BASE_A];
+
+ glPushMatrix();
+ glScalef (s2, s2, s2);
+ glCallList (lc->dlists[OBJ_ISO_USE]);
+ mi->polygon_count += lc->polys[OBJ_ISO_USE];
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef (lc->anim_y, 1, -1, 1);
+ glCallList (lc->dlists[OBJ_ISO_BASE_B]);
+ mi->polygon_count += lc->polys[OBJ_ISO_BASE_B];
+ leviathan (mi, 1 - s2, 1, False);
+ glPopMatrix();
+
+ if (blendp)
+ {
+# ifndef HAVE_JWZGLES /* no glBlendColor */
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_CONSTANT_ALPHA, GL_SRC_ALPHA);
+ glBlendColor (1, 1, 1, MAX(0, 1-(lc->anim_z * 3)));
+# endif
+ }
+
+ for (i = 0; i < countof(axes); i++)
+ {
+ glPushMatrix();
+ glRotatef (lc->anim_r, axes[i][1], axes[i][2], axes[i][3]);
+ glScalef (s, s, s);
+ glCallList (lc->dlists[(int) axes[i][0]]);
+ mi->polygon_count += lc->polys[(int) axes[i][0]];
+ glPopMatrix();
+ if (i == 2)
+ glRotatef (lc->anim_y, 1, -1, 1);
+ }
+
+ if (blendp) glDisable (GL_BLEND);
+
+ glPushMatrix();
+ glScalef (s2, s2, s2);
+ glCallList (lc->dlists[OBJ_ISO_DWN]);
+ mi->polygon_count += lc->polys[OBJ_ISO_DWN];
+ glPopMatrix();
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_COLLAPSE:
+ case LAMENT_LEVIATHAN_EXPAND:
+ {
+ glPushMatrix();
+ leviathan (mi, 1, lc->anim_y, True);
+ glRotatef (180, 1, -1, 1);
+ leviathan (mi, 1, lc->anim_y, False);
+ glPopMatrix();
+ folding_walls (mi, lc->anim_y, True);
+ folding_walls (mi, lc->anim_y, False);
+ }
+ break;
+
+ default:
+ abort();
+ break;
+ }
+
+ glPopMatrix();
+}
+
+
+/* Rather than just picking states randomly, pick an ordering randomly, do it,
+ and then re-randomize. That way one can be assured of seeing all states in
+ a short time period, though not always in the same order (it's frustrating
+ to see it pick the same state 5x in a row.) Though, that can still happen,
+ since states are in the list multiple times as a way of giving them
+ probabilities.
+ */
+static void
+shuffle_states (lament_configuration *lc)
+{
+ int i;
+ for (i = 0; i < lc->nstates; i++)
+ {
+ int a = random() % lc->nstates;
+ lament_type swap = lc->states[a];
+ lc->states[a] = lc->states[i];
+ lc->states[i] = swap;
+ }
+}
+
+
+static void
+animate (ModeInfo *mi)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+ int pause = 10;
+ int pause2 = 120;
+ GLfloat speed = (lc->ffwdp ? 20 : 1);
+
+ switch (lc->type)
+ {
+ case LAMENT_BOX:
+ {
+ lc->state++;
+ if (lc->state >= lc->nstates)
+ {
+ shuffle_states (lc);
+ lc->state = 0;
+ }
+ lc->type = lc->states[lc->state];
+
+ if (lc->type == LAMENT_BOX)
+ lc->anim_pause = pause2;
+
+ lc->anim_r = 0.0;
+ lc->anim_y = 0.0;
+ lc->anim_z = 0.0;
+ }
+ break;
+
+ /* -------------------------------------------------------------- */
+
+ case LAMENT_STAR_OUT:
+ lc->anim_z += 0.01 * speed;
+ if (lc->anim_z >= 1.0)
+ {
+ lc->anim_z = 1.0;
+ lc->type = LAMENT_STAR_ROT;
+ lc->anim_pause = pause;
+ }
+ break;
+
+ case LAMENT_STAR_ROT:
+ lc->anim_r += 1.0 * speed;
+ if (lc->anim_r >= 45.0)
+ {
+ lc->anim_r = 45.0;
+ lc->type = LAMENT_STAR_ROT_IN;
+ lc->anim_pause = pause;
+ }
+ break;
+
+ case LAMENT_STAR_ROT_IN:
+ lc->anim_z -= 0.01 * speed;
+ if (lc->anim_z <= 0.0)
+ {
+ lc->anim_z = 0.0;
+ lc->type = LAMENT_STAR_ROT_OUT;
+ lc->anim_pause = pause2 * (1 + frand(2) + frand(2));
+ }
+ break;
+
+ case LAMENT_STAR_ROT_OUT:
+ lc->anim_z += 0.01 * speed;
+ if (lc->anim_z >= 1.0)
+ {
+ lc->anim_z = 1.0;
+ lc->type = LAMENT_STAR_UNROT;
+ lc->anim_pause = pause;
+ }
+ break;
+
+ case LAMENT_STAR_UNROT:
+ lc->anim_r -= 1.0 * speed;
+ if (lc->anim_r <= 0.0)
+ {
+ lc->anim_r = 0.0;
+ lc->type = LAMENT_STAR_IN;
+ lc->anim_pause = pause;
+ }
+ break;
+
+ case LAMENT_STAR_IN:
+ lc->anim_z -= 0.01 * speed;
+ if (lc->anim_z <= 0.0)
+ {
+ lc->anim_z = 0.0;
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = pause2;
+ }
+ break;
+
+ /* -------------------------------------------------------------- */
+
+ case LAMENT_TETRA_UNE:
+ case LAMENT_TETRA_USW:
+ case LAMENT_TETRA_DWN:
+ case LAMENT_TETRA_DSE:
+
+ lc->anim_r += 1.0 * speed;
+ if (lc->anim_r >= 360.0)
+ {
+ lc->anim_r = 0.0;
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = pause2;
+ }
+ else if (lc->anim_r > 119.0 && lc->anim_r <= 120.0)
+ {
+ lc->anim_r = 120.0;
+ lc->anim_pause = pause;
+ }
+ else if (lc->anim_r > 239.0 && lc->anim_r <= 240.0)
+ {
+ lc->anim_r = 240.0;
+ lc->anim_pause = pause;
+ }
+ break;
+
+ /* -------------------------------------------------------------- */
+
+ case LAMENT_LID_OPEN:
+ lc->anim_r += 1.0 * speed;
+
+ if (lc->anim_r >= 112.0)
+ {
+ lc->anim_r = 112.0;
+ lc->anim_z = 0.0;
+ lc->anim_pause = pause2;
+ lc->type = (lc->facing_p ? LAMENT_LID_ZOOM : LAMENT_LID_CLOSE);
+ }
+ break;
+
+ case LAMENT_LID_CLOSE:
+ lc->anim_r -= 1.0 * speed;
+ if (lc->anim_r <= 0.0)
+ {
+ lc->anim_r = 0.0;
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = pause2;
+ }
+ break;
+
+ case LAMENT_LID_ZOOM:
+ lc->anim_z += 0.01 * speed;
+ if (lc->anim_z > 1.0)
+ {
+ lc->anim_r = 0.0;
+ lc->anim_z = 0.0;
+ lc->type = LAMENT_BOX;
+ }
+ break;
+
+ /* -------------------------------------------------------------- */
+
+ case LAMENT_TASER_OUT:
+ lc->anim_z += 0.005 * speed;
+ if (lc->anim_z >= 0.5)
+ {
+ lc->anim_z = 0.5;
+ lc->type = LAMENT_TASER_SLIDE;
+ lc->anim_pause = pause * (1 + frand(5) + frand(5));
+ }
+ break;
+
+ case LAMENT_TASER_SLIDE:
+ lc->anim_y += 0.005 * speed;
+ if (lc->anim_y >= 0.255)
+ {
+ lc->anim_y = 0.255;
+ lc->type = LAMENT_TASER_SLIDE_IN;
+ lc->anim_pause = pause2 * (1 + frand(5) + frand(5));
+ }
+ break;
+
+ case LAMENT_TASER_SLIDE_IN:
+ lc->anim_y -= 0.0025 * speed;
+ if (lc->anim_y <= 0.0)
+ {
+ lc->anim_y = 0.0;
+ lc->type = LAMENT_TASER_IN;
+ lc->anim_pause = pause;
+ }
+ break;
+
+ case LAMENT_TASER_IN:
+ lc->anim_z -= 0.0025 * speed;
+ if (lc->anim_z <= 0.0)
+ {
+ lc->anim_z = 0.0;
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = pause2;
+ }
+ break;
+
+ /* -------------------------------------------------------------- */
+
+ case LAMENT_PILLAR_OUT:
+
+ if (lc->anim_y == 0) /* mostly in */
+ lc->anim_y += 0.005 * ((random() % 5) ? -1 : 1) * speed;
+ else if (lc->anim_y > 0)
+ lc->anim_y += 0.005 * speed;
+ else
+ lc->anim_y -= 0.001 * speed;
+
+ if (lc->anim_z == 0)
+ {
+ int i = (random() % 7); /* A, B or both */
+ if (i == 0) lc->anim_z = 3;
+ else if (i < 5) lc->anim_z = 2;
+ else lc->anim_z = 1;
+
+ /* We can do quarter turns, because it's radially symmetrical. */
+ lc->anim_r = 90.0 * (1 + frand(6)) * RANDSIGN();
+ }
+ if (lc->anim_y > 0.4)
+ {
+ lc->anim_y = 0.4;
+ lc->type = LAMENT_PILLAR_SPIN;
+ lc->anim_pause = pause;
+ }
+ else if (lc->anim_y < -0.03)
+ {
+ lc->anim_y = -0.03;
+ lc->type = LAMENT_PILLAR_SPIN;
+ lc->anim_pause = pause;
+ }
+ break;
+
+ case LAMENT_PILLAR_SPIN:
+ {
+ Bool negp = (lc->anim_r < 0);
+ lc->anim_r += (negp ? 1 : -1) * speed;
+ if (negp ? lc->anim_r > 0 : lc->anim_r < 0)
+ {
+ lc->anim_r = 0;
+ lc->type = LAMENT_PILLAR_IN;
+ }
+ }
+ break;
+
+ case LAMENT_PILLAR_IN:
+ {
+ Bool negp = (lc->anim_y < 0);
+ lc->anim_y += (negp ? 1 : -1) * 0.005 * speed;
+ if (negp ? lc->anim_y > 0 : lc->anim_y < 0)
+ {
+ lc->anim_y = 0;
+ lc->anim_z = 0;
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = pause;
+ }
+ }
+ break;
+
+ /* -------------------------------------------------------------- */
+
+ case LAMENT_SPHERE_OUT:
+ {
+ lc->anim_y += 0.01 * speed;
+ if (lc->anim_y >= 1)
+ {
+ lc->anim_y = 1;
+ lc->type = LAMENT_SPHERE_IN;
+ lc->anim_pause = pause2 * (1 + frand(1) + frand(1));
+ }
+ }
+ break;
+
+ case LAMENT_SPHERE_IN:
+ {
+ lc->anim_y -= 0.01 * speed;
+ if (lc->anim_y <= 0)
+ {
+ lc->anim_y = 0;
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = pause;
+ }
+ }
+ break;
+
+ /* -------------------------------------------------------------- */
+
+ case LAMENT_LEVIATHAN_SPIN:
+ lc->anim_r += 3.5 * speed;
+ if (lc->anim_r >= 360 * 3)
+ {
+ lc->anim_r = 0;
+ lc->type = LAMENT_LEVIATHAN_FADE;
+ lc->anim_pause = 0;
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_FADE:
+ lc->anim_z += 0.01 * speed;
+ if (lc->anim_z >= 1)
+ {
+ lc->anim_z = 1;
+ lc->type = LAMENT_LEVIATHAN_TWIST;
+ lc->anim_pause = 0;
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_TWIST:
+ lc->anim_y += 2 * speed;
+ lc->anim_z = 1;
+ if (lc->anim_y >= 180)
+ {
+ lc->anim_y = 0;
+ lc->type = LAMENT_LEVIATHAN_COLLAPSE;
+ lc->anim_pause = 0;
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_COLLAPSE:
+ lc->anim_y += 0.01 * speed;
+ if (lc->anim_y >= 1)
+ {
+ lc->anim_y = 1.0;
+ lc->type = LAMENT_LEVIATHAN_EXPAND;
+ lc->anim_pause = pause2 * 4;
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_EXPAND:
+ lc->anim_y -= 0.005 * speed;
+ if (lc->anim_y <= 0)
+ {
+ lc->anim_y = 180;
+ lc->type = LAMENT_LEVIATHAN_UNTWIST;
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_UNTWIST:
+ lc->anim_y -= 2 * speed;
+ lc->anim_z = 1;
+ if (lc->anim_y <= 0)
+ {
+ lc->anim_y = 0;
+ lc->type = LAMENT_LEVIATHAN_UNFADE;
+ lc->anim_pause = 0;
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_UNFADE:
+ lc->anim_z -= 0.1 * speed;
+ if (lc->anim_z <= 0)
+ {
+ lc->anim_z = 0;
+ lc->type = LAMENT_LEVIATHAN_UNSPIN;
+ lc->anim_pause = 0;
+ }
+ break;
+
+ case LAMENT_LEVIATHAN_UNSPIN:
+ lc->anim_r += 3.5 * speed;
+ if (lc->anim_r >= 360 * 2)
+ {
+ lc->anim_r = 0;
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = pause2;
+ }
+ break;
+
+ default:
+ abort();
+ break;
+ }
+
+# ifdef DEBUG_MODE
+
+ lc->anim_pause = 0;
+
+ if (lc->type == LAMENT_BOX)
+ lc->type = DEBUG_MODE;
+
+ if (lc->ffwdp)
+ {
+ lc->ffwdp = 0;
+ while (lc->type != DEBUG_MODE)
+ animate (mi);
+ }
+
+# else /* !DEBUG_MODE */
+
+ if (lc->ffwdp && lc->type == LAMENT_BOX)
+ {
+ lc->ffwdp = 0;
+ while (lc->type == LAMENT_BOX)
+ animate (mi);
+ lc->anim_pause = 0;
+ }
+
+# endif /* !DEBUG_MODE */
+}
+
+
+static void
+gl_init (ModeInfo *mi)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ if (wire)
+ do_texture = False;
+
+ if (!wire)
+ {
+ static const GLfloat pos0[] = { -4.0, 2.0, 5.0, 1.0 };
+ static const GLfloat pos1[] = { 6.0, -1.0, 3.0, 1.0 };
+
+ static const GLfloat amb0[] = { 0.7, 0.7, 0.7, 1.0 };
+/* static const GLfloat amb1[] = { 0.7, 0.0, 0.0, 1.0 }; */
+ static const GLfloat dif0[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat dif1[] = { 0.3, 0.1, 0.1, 1.0 };
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos0);
+ glLightfv(GL_LIGHT1, GL_POSITION, pos1);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb0);
+/* glLightfv(GL_LIGHT1, GL_AMBIENT, amb1); */
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif0);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, dif1);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+/* glEnable(GL_LIGHT1); */
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+ }
+
+ if (do_texture)
+ {
+ int i;
+ for (i = 0; i < countof(lc->texids); i++)
+ glGenTextures(1, &lc->texids[i]);
+
+ lc->texture = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ lament512_png, sizeof(lament512_png));
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ /* messes up -fps */
+ /* glPixelStorei(GL_UNPACK_ROW_LENGTH, lc->texture->width); */
+
+ for (i = 0; i < countof(lc->texids); i++)
+ {
+ int height = lc->texture->width; /* assume square */
+ glBindTexture(GL_TEXTURE_2D, lc->texids[i]);
+
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ lc->texture->width, height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE,
+ (lc->texture->data +
+ (lc->texture->bytes_per_line * height * i)));
+ check_gl_error("texture");
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ check_gl_error("texture");
+
+ /* This makes scaled pixmaps tolerable to look at. */
+# if !defined(GL_TEXTURE_LOD_BIAS) && defined(GL_TEXTURE_LOD_BIAS_EXT)
+# define GL_TEXTURE_LOD_BIAS GL_TEXTURE_LOD_BIAS_EXT
+# endif
+# ifdef GL_TEXTURE_LOD_BIAS
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, 0.25);
+# endif
+ clear_gl_error(); /* invalid enum on iPad 3 */
+ }
+ }
+
+ for (i = 0; i < countof(all_objs); i++)
+ {
+ GLfloat s = 1/3.0; /* box is 3" square */
+ const struct gllist *L = *all_objs[i];
+ const GLfloat *f = (const GLfloat *) L->data;
+ int j;
+
+ lc->dlists[i] = glGenLists(1);
+ lc->polys[i] = L->points / 3;
+ glNewList(lc->dlists[i], GL_COMPILE);
+ if (L->primitive != GL_TRIANGLES) abort();
+ if (L->format != GL_N3F_V3F) abort();
+
+ glPushMatrix();
+ glTranslatef (-0.5, -0.5, -0.5);
+ glScalef (s, s, s);
+
+ for (j = 0; j < L->points; j += 3)
+ {
+ int face, outerp;
+ Bool blackp = (i == OBJ_ISO_BASE_A || i == OBJ_ISO_BASE_B);
+ which_face (mi, f, &face, &outerp); /* from norm of first vert */
+
+ set_colors (outerp ? exterior_color :
+ blackp ? black_color : interior_color);
+ glBindTexture (GL_TEXTURE_2D,
+ (outerp ? lc->texids[face-1] :
+ blackp ? 0 : lc->texids[6]));
+
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ if (face) texturize_vert (mi, face, f+3);
+ glNormal3fv (f); f += 3; glVertex3fv (f); f += 3;
+ if (face) texturize_vert (mi, face, f+3);
+ glNormal3fv (f); f += 3; glVertex3fv (f); f += 3;
+ if (face) texturize_vert (mi, face, f+3);
+ glNormal3fv (f); f += 3; glVertex3fv (f); f += 3;
+ glEnd();
+ }
+ glPopMatrix();
+
+ glEndList();
+ }
+}
+
+
+ENTRYPOINT Bool
+lament_handle_event (ModeInfo *mi, XEvent *event)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, lc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &lc->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ lc->ffwdp = True;
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+reshape_lament (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ glViewport(0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0, 0.0, -40.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT void
+init_lament (ModeInfo *mi)
+{
+ lament_configuration *lc;
+ int i;
+ MI_INIT (mi, lcs);
+
+ lc = &lcs[MI_SCREEN(mi)];
+
+ {
+ double rot_speed = 0.5;
+ lc->rot = make_rotator (rot_speed, rot_speed, rot_speed, 1, 0, True);
+ lc->trackball = gltrackball_init (True);
+ }
+
+ lc->type = LAMENT_BOX;
+ lc->anim_pause = 300 + (random() % 100);
+
+ if ((lc->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_lament(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ gl_init(mi);
+ }
+
+ lc->states = (lament_type *) calloc (200, sizeof (*lc->states));
+ lc->nstates = 0;
+
+# define PUSH(N,WHICH) \
+ for (i = 0; i < N; i++) lc->states[lc->nstates++] = WHICH
+
+ PUSH (4, LAMENT_TETRA_UNE); /* most common */
+ PUSH (4, LAMENT_TETRA_USW);
+ PUSH (4, LAMENT_TETRA_DWN);
+ PUSH (4, LAMENT_TETRA_DSE);
+
+ PUSH (8, LAMENT_STAR_OUT); /* pretty common */
+ PUSH (8, LAMENT_TASER_OUT);
+ PUSH (8, LAMENT_PILLAR_OUT);
+
+ PUSH (4, LAMENT_LID_OPEN); /* rare */
+ PUSH (2, LAMENT_SPHERE_OUT); /* rare */
+ PUSH (1, LAMENT_LEVIATHAN_SPIN); /* very rare */
+
+ PUSH (35, LAMENT_BOX); /* rest state */
+# undef PUSH
+
+ shuffle_states (lc);
+
+# ifdef DEBUG_MODE
+ lc->type = DEBUG_MODE;
+ lc->anim_pause = 0;
+# endif
+
+}
+
+
+ENTRYPOINT void
+draw_lament (ModeInfo *mi)
+{
+ lament_configuration *lc = &lcs[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!lc->glx_context)
+ return;
+
+ glDrawBuffer(GL_BACK);
+
+ glXMakeCurrent(dpy, window, *(lc->glx_context));
+ draw(mi);
+ if (mi->fps_p) do_fps (mi);
+
+ glFinish();
+ glXSwapBuffers(dpy, window);
+
+ if (!lc->ffwdp && lc->anim_pause)
+ lc->anim_pause--;
+ else
+ animate(mi);
+}
+
+XSCREENSAVER_MODULE ("Lament", lament)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/lament.dxf b/hacks/glx/lament.dxf
new file mode 100644
index 0000000..d23108c
--- /dev/null
+++ b/hacks/glx/lament.dxf
@@ -0,0 +1,163404 @@
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.205
+13
+3.0
+23
+3.0
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+0.205
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+0.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+0.205
+20
+3.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+tetra_une
+10
+1.5
+20
+3.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+0.205
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+0.205
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+3
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+3.0
+21
+0.0
+31
+3.0
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+3
+ 0
+3DFACE
+ 8
+tetra_une
+10
+0.8525
+20
+3.0
+30
+2.1475
+11
+3.0
+21
+0.0
+31
+3.0
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+tetra_une
+10
+0.205
+20
+3.0
+30
+2.795
+11
+3.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+0.205
+11
+2.795
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+tetra_une
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+tetra_une
+10
+0.205
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+0.8525
+20
+3.0
+30
+2.1475
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+3.0
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+tetra_une
+10
+1.5
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_une
+10
+2.795
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+3.0
+20
+0.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+3.0
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+3.0
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+3.0
+13
+2.795
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+0.0
+30
+2.795
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+0.205
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+3
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+0.0
+21
+3.0
+31
+3.0
+12
+2.1475
+22
+0.0
+32
+2.1475
+13
+2.1475
+23
+0.0
+33
+2.1475
+70
+3
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+0.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+2.795
+20
+0.0
+30
+2.795
+11
+0.0
+21
+3.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+0.205
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+2.795
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+3.0
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+2.795
+13
+0.205
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+0.0
+30
+2.795
+11
+0.205
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+1.5
+20
+0.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+2.795
+11
+1.5
+21
+0.0
+31
+3.0
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.205
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+tetra_usw
+10
+2.795
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.795
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+3.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+3.0
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+3.0
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+2.795
+20
+3.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+0.0
+30
+0.0
+11
+2.795
+21
+3.0
+31
+0.205
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+0.205
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+13
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+13
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+2.795
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+1.5
+20
+3.0
+30
+0.205
+11
+2.795
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+2.795
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+0.205
+11
+1.5
+21
+3.0
+31
+0.0
+12
+0.205
+22
+3.0
+32
+0.0
+13
+0.205
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+1.5
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dwn
+10
+0.205
+20
+3.0
+30
+1.5
+11
+1.5
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+2.795
+21
+0.0
+31
+1.5
+12
+2.1475
+22
+0.0
+32
+2.1475
+13
+2.1475
+23
+0.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+3.0
+30
+0.0
+11
+0.205
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+0.205
+20
+0.0
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+1.5
+20
+0.0
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+0.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+0.0
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+0.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.1475
+22
+0.0
+32
+2.1475
+13
+2.1475
+23
+0.0
+33
+2.1475
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+3.0
+21
+3.0
+31
+0.0
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+3.0
+21
+3.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+0.205
+20
+0.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+LINE
+ 8
+tetra_dse
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.0
+21
+0.0
+31
+2.795
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+0.205
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+0.0
+30
+0.205
+11
+2.795
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+1.5
+20
+0.0
+30
+0.205
+11
+0.205
+21
+0.0
+31
+0.0
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+0.205
+20
+0.0
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+0.205
+11
+1.5
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+1.5
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.795
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+tetra_dse
+10
+2.795
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+tetra_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+tetra_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+tetra_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+tetra_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+2.26629223953759
+21
+1.42452680194624
+31
+3.0
+12
+2.25520466591049
+22
+1.34978045204758
+32
+3.0
+13
+2.25520466591049
+23
+1.34978045204758
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.26629223953759
+20
+1.42452680194624
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+2.27
+22
+1.5
+32
+3.0
+13
+2.27
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.73
+20
+1.5
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.73
+21
+1.5
+31
+3.0
+12
+0.733707760462408
+22
+1.57547319805376
+32
+3.0
+13
+0.733707760462408
+23
+1.57547319805376
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.733707760462408
+21
+1.57547319805376
+31
+3.0
+12
+0.744795334089513
+22
+1.65021954795242
+32
+3.0
+13
+0.744795334089513
+23
+1.65021954795242
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.50226795687895
+20
+0.0
+30
+3.0
+11
+1.98848282880601
+21
+0.904781950910693
+31
+3.0
+12
+1.92778907942509
+22
+0.85976839852704
+32
+3.0
+13
+1.92778907942509
+23
+0.85976839852704
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.98848282880601
+20
+0.904781950910693
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.04447222151364
+22
+0.955527778486358
+32
+3.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+3.0
+13
+2.795
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+0.955527778486358
+30
+3.0
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+0.904781950910692
+22
+1.01151717119399
+32
+3.0
+13
+0.904781950910692
+23
+1.01151717119399
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.904781950910692
+21
+1.01151717119399
+31
+3.0
+12
+0.85976839852704
+22
+1.07221092057491
+32
+3.0
+13
+0.85976839852704
+23
+1.07221092057491
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+2.26629223953759
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.57547319805376
+21
+2.26629223953759
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.57547319805376
+21
+2.26629223953759
+31
+3.0
+12
+1.65021954795242
+22
+2.25520466591049
+32
+3.0
+13
+1.65021954795242
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.09521804908931
+20
+1.98848282880601
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.04447222151364
+22
+2.04447222151364
+32
+3.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.09521804908931
+21
+1.98848282880601
+31
+3.0
+12
+2.14023160147296
+22
+1.92778907942509
+32
+3.0
+13
+2.14023160147296
+23
+1.92778907942509
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.14023160147296
+21
+1.92778907942509
+31
+3.0
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.205
+22
+3.0
+32
+3.0
+13
+0.205
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+2.17367965644036
+11
+2.12132034355964
+21
+0.0
+31
+0.826320343559644
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.2368440585138
+20
+1.27648079851406
+30
+0.0
+11
+3.0
+21
+0.878679656440358
+31
+0.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+0.0
+13
+2.21138724003369
+23
+1.20533375707888
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.878679656440358
+30
+0.0
+11
+2.2368440585138
+21
+1.27648079851406
+31
+0.0
+12
+2.25520466591049
+22
+1.34978045204758
+32
+0.0
+13
+2.25520466591049
+23
+1.34978045204758
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.878679656440358
+30
+0.0
+11
+2.25520466591049
+21
+1.34978045204758
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+0.0
+13
+0.0
+23
+0.497732043121051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+-4.44089209850063e-16
+22
+0.878679656440356
+32
+3.0
+13
+-4.44089209850063e-16
+23
+0.878679656440356
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+-4.44089209850063e-16
+21
+0.878679656440356
+31
+3.0
+12
+0.0
+22
+0.878679656440356
+32
+0.0
+13
+0.0
+23
+0.878679656440356
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.955527778486358
+21
+2.04447222151364
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+0.955527778486358
+21
+2.04447222151364
+31
+3.0
+12
+1.01151717119399
+22
+2.09521804908931
+32
+3.0
+13
+1.01151717119399
+23
+2.09521804908931
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+1.01151717119399
+21
+2.09521804908931
+31
+3.0
+12
+1.07221092057491
+22
+2.14023160147296
+32
+3.0
+13
+1.07221092057491
+23
+2.14023160147296
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+3.0
+11
+1.34978045204758
+21
+0.744795334089513
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.34978045204758
+20
+0.744795334089513
+30
+3.0
+11
+1.5
+21
+0.0
+31
+3.0
+12
+1.42452680194624
+22
+0.733707760462408
+32
+3.0
+13
+1.42452680194624
+23
+0.733707760462408
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+0.733707760462408
+30
+3.0
+11
+1.5
+21
+0.0
+31
+3.0
+12
+1.5
+22
+0.73
+32
+3.0
+13
+1.5
+23
+0.73
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.20533375707888
+30
+0.0
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.878679656440356
+32
+0.0
+13
+0.0
+23
+0.878679656440356
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.788612759966309
+21
+1.20533375707888
+31
+0.0
+12
+0.820920626451767
+22
+1.13702451264398
+32
+0.0
+13
+0.820920626451767
+23
+1.13702451264398
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.820920626451767
+21
+1.13702451264398
+31
+0.0
+12
+0.85976839852704
+22
+1.07221092057491
+32
+0.0
+13
+0.85976839852704
+23
+1.07221092057491
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.07221092057491
+20
+0.85976839852704
+30
+3.0
+11
+1.01151717119399
+21
+0.904781950910692
+31
+1.5
+12
+1.07221092057491
+22
+0.85976839852704
+32
+1.5
+13
+1.07221092057491
+23
+0.85976839852704
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+0.904781950910692
+30
+1.5
+11
+1.07221092057491
+21
+0.85976839852704
+31
+3.0
+12
+1.01151717119399
+22
+0.904781950910692
+32
+3.0
+13
+1.01151717119399
+23
+0.904781950910692
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+2.17907937354823
+21
+1.86297548735602
+31
+0.0
+12
+2.14023160147296
+22
+1.92778907942509
+32
+0.0
+13
+2.14023160147296
+23
+1.92778907942509
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.17907937354823
+20
+1.86297548735602
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+0.0
+13
+2.21138724003369
+23
+1.79466624292112
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.5
+21
+2.27
+31
+1.5
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+2.27
+30
+1.5
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+2.27
+32
+0.0
+13
+1.5
+23
+2.27
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+2.27
+30
+0.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.26629223953759
+21
+1.42452680194624
+31
+0.0
+12
+2.26629223953759
+22
+1.42452680194624
+32
+1.5
+13
+2.26629223953759
+23
+1.42452680194624
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.26629223953759
+20
+1.42452680194624
+30
+0.0
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.27
+22
+1.5
+32
+0.0
+13
+2.27
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.2368440585138
+20
+1.27648079851406
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+0.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+1.5
+13
+2.21138724003369
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+0.0
+11
+2.2368440585138
+21
+1.27648079851406
+31
+1.5
+12
+2.2368440585138
+22
+1.27648079851406
+32
+0.0
+13
+2.2368440585138
+23
+1.27648079851406
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+2.795
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+2.795
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+2.17367965644036
+13
+2.12132034355964
+23
+0.0
+33
+2.17367965644036
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+2.17367965644036
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+0.826320343559644
+13
+2.12132034355964
+23
+0.0
+33
+0.826320343559644
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+0.826320343559644
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+0.205
+13
+2.12132034355964
+23
+0.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+0.205
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+0.0
+13
+1.79466624292112
+23
+0.788612759966309
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+0.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+1.5
+13
+1.79466624292112
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+0.904781950910692
+30
+3.0
+11
+0.955527778486358
+21
+0.955527778486358
+31
+1.5
+12
+1.01151717119399
+22
+0.904781950910692
+32
+1.5
+13
+1.01151717119399
+23
+0.904781950910692
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+0.955527778486358
+30
+1.5
+11
+1.01151717119399
+21
+0.904781950910692
+31
+3.0
+12
+0.955527778486358
+22
+0.955527778486358
+32
+3.0
+13
+0.955527778486358
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.17907937354823
+20
+1.13702451264398
+30
+1.5
+11
+2.14023160147296
+21
+1.07221092057491
+31
+3.0
+12
+2.14023160147296
+22
+1.07221092057491
+32
+1.5
+13
+2.14023160147296
+23
+1.07221092057491
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.07221092057491
+30
+3.0
+11
+2.17907937354823
+21
+1.13702451264398
+31
+1.5
+12
+2.17907937354823
+22
+1.13702451264398
+32
+3.0
+13
+2.17907937354823
+23
+1.13702451264398
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+0.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+1.79466624292112
+22
+2.21138724003369
+32
+3.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+0.205
+13
+2.12132034355964
+23
+3.0
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.826320343559643
+13
+2.12132034355964
+23
+3.0
+33
+0.826320343559643
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+0.826320343559643
+12
+2.12132034355964
+22
+3.0
+32
+2.17367965644036
+13
+2.12132034355964
+23
+3.0
+33
+2.17367965644036
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+2.17367965644036
+12
+2.12132034355964
+22
+3.0
+32
+2.795
+13
+2.12132034355964
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+2.09521804908931
+21
+1.98848282880601
+31
+0.0
+12
+2.09521804908931
+22
+1.98848282880601
+32
+1.5
+13
+2.09521804908931
+23
+1.98848282880601
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.09521804908931
+20
+1.98848282880601
+30
+0.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+2.04447222151364
+22
+2.04447222151364
+32
+0.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+2.21138724003369
+30
+3.0
+11
+1.27648079851406
+21
+2.2368440585138
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+1.5
+13
+1.20533375707888
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+2.2368440585138
+30
+1.5
+11
+1.20533375707888
+21
+2.21138724003369
+31
+3.0
+12
+1.27648079851406
+22
+2.2368440585138
+32
+3.0
+13
+1.27648079851406
+23
+2.2368440585138
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.2368440585138
+21
+1.72351920148594
+31
+3.0
+12
+2.2368440585138
+22
+1.72351920148594
+32
+1.5
+13
+2.2368440585138
+23
+1.72351920148594
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.2368440585138
+20
+1.72351920148594
+30
+3.0
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+2.21138724003369
+22
+1.79466624292112
+32
+3.0
+13
+2.21138724003369
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+0.733707760462408
+30
+3.0
+11
+1.5
+21
+0.73
+31
+1.5
+12
+1.57547319805376
+22
+0.733707760462408
+32
+1.5
+13
+1.57547319805376
+23
+0.733707760462408
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.73
+30
+1.5
+11
+1.57547319805376
+21
+0.733707760462408
+31
+3.0
+12
+1.5
+22
+0.73
+32
+3.0
+13
+1.5
+23
+0.73
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.04447222151364
+22
+0.955527778486358
+32
+0.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+0.205
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+2.04447222151364
+22
+0.955527778486358
+32
+3.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+3.0
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+2.795
+11
+2.04447222151364
+21
+0.955527778486358
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.09521804908931
+20
+1.98848282880601
+30
+1.5
+11
+2.14023160147296
+21
+1.92778907942509
+31
+0.0
+12
+2.14023160147296
+22
+1.92778907942509
+32
+1.5
+13
+2.14023160147296
+23
+1.92778907942509
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.92778907942509
+30
+0.0
+11
+2.09521804908931
+21
+1.98848282880601
+31
+1.5
+12
+2.09521804908931
+22
+1.98848282880601
+32
+0.0
+13
+2.09521804908931
+23
+1.98848282880601
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.65021954795242
+30
+1.5
+11
+2.26629223953759
+21
+1.57547319805376
+31
+3.0
+12
+2.26629223953759
+22
+1.57547319805376
+32
+1.5
+13
+2.26629223953759
+23
+1.57547319805376
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.26629223953759
+20
+1.57547319805376
+30
+3.0
+11
+2.25520466591049
+21
+1.65021954795242
+31
+1.5
+12
+2.25520466591049
+22
+1.65021954795242
+32
+3.0
+13
+2.25520466591049
+23
+1.65021954795242
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+1.5
+11
+1.27648079851406
+21
+0.763155941486199
+31
+0.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+0.0
+13
+1.20533375707888
+23
+0.788612759966309
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+0.763155941486199
+30
+0.0
+11
+1.20533375707888
+21
+0.788612759966309
+31
+1.5
+12
+1.27648079851406
+22
+0.763155941486199
+32
+1.5
+13
+1.27648079851406
+23
+0.763155941486199
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.65021954795242
+20
+2.25520466591049
+30
+1.5
+11
+1.57547319805376
+21
+2.26629223953759
+31
+0.0
+12
+1.65021954795242
+22
+2.25520466591049
+32
+0.0
+13
+1.65021954795242
+23
+2.25520466591049
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+2.26629223953759
+30
+0.0
+11
+1.65021954795242
+21
+2.25520466591049
+31
+1.5
+12
+1.57547319805376
+22
+2.26629223953759
+32
+1.5
+13
+1.57547319805376
+23
+2.26629223953759
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.72351920148594
+20
+2.2368440585138
+30
+1.5
+11
+1.65021954795242
+21
+2.25520466591049
+31
+0.0
+12
+1.72351920148594
+22
+2.2368440585138
+32
+0.0
+13
+1.72351920148594
+23
+2.2368440585138
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.65021954795242
+20
+2.25520466591049
+30
+0.0
+11
+1.72351920148594
+21
+2.2368440585138
+31
+1.5
+12
+1.65021954795242
+22
+2.25520466591049
+32
+1.5
+13
+1.65021954795242
+23
+2.25520466591049
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+2.26629223953759
+30
+1.5
+11
+1.5
+21
+2.27
+31
+0.0
+12
+1.57547319805376
+22
+2.26629223953759
+32
+0.0
+13
+1.57547319805376
+23
+2.26629223953759
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+2.27
+30
+0.0
+11
+1.57547319805376
+21
+2.26629223953759
+31
+1.5
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.904781950910692
+20
+1.01151717119399
+30
+0.0
+11
+0.955527778486358
+21
+0.955527778486358
+31
+1.5
+12
+0.955527778486358
+22
+0.955527778486358
+32
+0.0
+13
+0.955527778486358
+23
+0.955527778486358
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+0.955527778486358
+30
+1.5
+11
+0.904781950910692
+21
+1.01151717119399
+31
+0.0
+12
+0.904781950910692
+22
+1.01151717119399
+32
+1.5
+13
+0.904781950910692
+23
+1.01151717119399
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.86297548735602
+30
+3.0
+11
+0.788612759966309
+21
+1.79466624292112
+31
+1.5
+12
+0.788612759966309
+22
+1.79466624292112
+32
+3.0
+13
+0.788612759966309
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.79466624292112
+30
+1.5
+11
+0.820920626451767
+21
+1.86297548735602
+31
+3.0
+12
+0.820920626451767
+22
+1.86297548735602
+32
+1.5
+13
+0.820920626451767
+23
+1.86297548735602
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+-2.22044604925031e-16
+22
+2.12132034355964
+32
+3.0
+13
+-2.22044604925031e-16
+23
+2.12132034355964
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+-2.22044604925031e-16
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.72351920148594
+21
+2.2368440585138
+31
+0.0
+12
+1.65021954795242
+22
+2.25520466591049
+32
+0.0
+13
+1.65021954795242
+23
+2.25520466591049
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.72351920148594
+20
+2.2368440585138
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.79466624292112
+22
+2.21138724003369
+32
+0.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.86297548735602
+20
+0.820920626451767
+30
+0.0
+11
+2.12132034355964
+21
+0.0
+31
+0.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+0.0
+13
+1.79466624292112
+23
+0.788612759966309
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+1.86297548735602
+21
+0.820920626451767
+31
+0.0
+12
+1.92778907942509
+22
+0.85976839852704
+32
+0.0
+13
+1.92778907942509
+23
+0.85976839852704
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+1.92778907942509
+21
+0.85976839852704
+31
+0.0
+12
+2.50226795687895
+22
+0.0
+32
+0.0
+13
+2.50226795687895
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+-4.44089209850063e-16
+20
+0.878679656440356
+30
+3.0
+11
+0.788612759966309
+21
+1.20533375707888
+31
+0.0
+12
+0.0
+22
+0.878679656440356
+32
+0.0
+13
+0.0
+23
+0.878679656440356
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.20533375707888
+30
+0.0
+11
+-4.44089209850063e-16
+21
+0.878679656440356
+31
+3.0
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.20533375707888
+30
+1.5
+11
+-4.44089209850063e-16
+21
+0.878679656440356
+31
+3.0
+12
+0.788612759966309
+22
+1.20533375707888
+32
+3.0
+13
+0.788612759966309
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.73
+20
+1.5
+30
+1.5
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.73
+22
+1.5
+32
+0.0
+13
+0.73
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.73
+21
+1.5
+31
+1.5
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.73
+21
+1.5
+31
+1.5
+12
+0.73
+22
+1.5
+32
+3.0
+13
+0.73
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.04447222151364
+22
+2.04447222151364
+32
+0.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+2.04447222151364
+22
+2.04447222151364
+32
+3.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.878679656440358
+30
+3.0
+11
+2.21138724003369
+21
+1.20533375707888
+31
+0.0
+12
+3.0
+22
+0.878679656440358
+32
+0.0
+13
+3.0
+23
+0.878679656440358
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+0.0
+11
+3.0
+21
+0.878679656440358
+31
+3.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+1.5
+13
+2.21138724003369
+23
+1.20533375707888
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+3.0
+21
+0.878679656440358
+31
+3.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+3.0
+13
+2.21138724003369
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+3.0
+11
+1.13702451264398
+21
+0.820920626451767
+31
+1.5
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+0.820920626451767
+30
+1.5
+11
+1.20533375707888
+21
+0.788612759966309
+31
+3.0
+12
+1.13702451264398
+22
+0.820920626451767
+32
+3.0
+13
+1.13702451264398
+23
+0.820920626451767
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+0.0
+11
+1.20533375707888
+21
+2.21138724003369
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+0.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+2.21138724003369
+30
+1.5
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+3.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+2.21138724003369
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+0.878679656440356
+22
+3.0
+32
+0.205
+13
+0.878679656440356
+23
+3.0
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+0.205
+12
+0.878679656440356
+22
+3.0
+32
+0.826320343559644
+13
+0.878679656440356
+23
+3.0
+33
+0.826320343559644
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+0.826320343559644
+12
+0.878679656440356
+22
+3.0
+32
+2.17367965644036
+13
+0.878679656440356
+23
+3.0
+33
+2.17367965644036
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+2.17367965644036
+12
+0.878679656440356
+22
+3.0
+32
+2.795
+13
+0.878679656440356
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+3.0
+11
+0.904781950910692
+21
+1.98848282880601
+31
+1.5
+12
+0.904781950910692
+22
+1.98848282880601
+32
+3.0
+13
+0.904781950910692
+23
+1.98848282880601
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.904781950910692
+20
+1.98848282880601
+30
+1.5
+11
+0.955527778486358
+21
+2.04447222151364
+31
+3.0
+12
+0.955527778486358
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486358
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.42452680194624
+30
+3.0
+11
+0.744795334089513
+21
+1.34978045204758
+31
+1.5
+12
+0.744795334089513
+22
+1.34978045204758
+32
+3.0
+13
+0.744795334089513
+23
+1.34978045204758
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.744795334089513
+20
+1.34978045204758
+30
+1.5
+11
+0.733707760462408
+21
+1.42452680194624
+31
+3.0
+12
+0.733707760462408
+22
+1.42452680194624
+32
+1.5
+13
+0.733707760462408
+23
+1.42452680194624
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.955527778486358
+21
+2.04447222151364
+31
+1.5
+12
+0.955527778486358
+22
+2.04447222151364
+32
+3.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+1.5
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.955527778486358
+22
+2.04447222151364
+32
+0.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+0.0
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+2.09521804908931
+22
+1.98848282880601
+32
+1.5
+13
+2.09521804908931
+23
+1.98848282880601
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.09521804908931
+21
+1.98848282880601
+31
+1.5
+12
+2.14023160147296
+22
+1.92778907942509
+32
+1.5
+13
+2.14023160147296
+23
+1.92778907942509
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.14023160147296
+21
+1.92778907942509
+31
+1.5
+12
+2.17907937354823
+22
+1.86297548735602
+32
+1.5
+13
+2.17907937354823
+23
+1.86297548735602
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.72351920148594
+20
+0.763155941486199
+30
+3.0
+11
+1.65021954795242
+21
+0.744795334089513
+31
+1.5
+12
+1.72351920148594
+22
+0.763155941486199
+32
+1.5
+13
+1.72351920148594
+23
+0.763155941486199
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.65021954795242
+20
+0.744795334089513
+30
+1.5
+11
+1.72351920148594
+21
+0.763155941486199
+31
+3.0
+12
+1.65021954795242
+22
+0.744795334089513
+32
+3.0
+13
+1.65021954795242
+23
+0.744795334089513
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.13702451264398
+30
+0.0
+11
+0.85976839852704
+21
+1.07221092057491
+31
+1.5
+12
+0.85976839852704
+22
+1.07221092057491
+32
+0.0
+13
+0.85976839852704
+23
+1.07221092057491
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.85976839852704
+20
+1.07221092057491
+30
+1.5
+11
+0.820920626451767
+21
+1.13702451264398
+31
+0.0
+12
+0.820920626451767
+22
+1.13702451264398
+32
+1.5
+13
+0.820920626451767
+23
+1.13702451264398
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.07221092057491
+30
+1.5
+11
+2.09521804908931
+21
+1.01151717119399
+31
+3.0
+12
+2.09521804908931
+22
+1.01151717119399
+32
+1.5
+13
+2.09521804908931
+23
+1.01151717119399
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.09521804908931
+20
+1.01151717119399
+30
+3.0
+11
+2.14023160147296
+21
+1.07221092057491
+31
+1.5
+12
+2.14023160147296
+22
+1.07221092057491
+32
+3.0
+13
+2.14023160147296
+23
+1.07221092057491
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+0.0
+11
+1.07221092057491
+21
+2.14023160147296
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.07221092057491
+20
+2.14023160147296
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.13702451264398
+22
+2.17907937354823
+32
+0.0
+13
+1.13702451264398
+23
+2.17907937354823
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+2.17907937354823
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+0.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+2.795
+11
+0.878679656440357
+21
+1.53956708492942e-17
+31
+0.826320343559643
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440357
+20
+1.53956708492942e-17
+30
+0.826320343559643
+11
+1.5
+21
+0.0
+31
+2.795
+12
+0.878679656440357
+22
+4.01154803819637e-17
+32
+2.17367965644036
+13
+0.878679656440357
+23
+4.01154803819637e-17
+33
+2.17367965644036
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.73
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+0.205
+11
+1.5
+21
+0.73
+31
+0.0
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.5
+21
+0.73
+31
+0.0
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.73
+31
+0.0
+12
+1.5
+22
+0.73
+32
+3.0
+13
+1.5
+23
+0.73
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.73
+30
+3.0
+11
+1.5
+21
+0.73
+31
+0.0
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.26629223953759
+20
+1.42452680194624
+30
+1.5
+11
+2.25520466591049
+21
+1.34978045204758
+31
+0.0
+12
+2.25520466591049
+22
+1.34978045204758
+32
+1.5
+13
+2.25520466591049
+23
+1.34978045204758
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.34978045204758
+30
+0.0
+11
+2.26629223953759
+21
+1.42452680194624
+31
+1.5
+12
+2.26629223953759
+22
+1.42452680194624
+32
+0.0
+13
+2.26629223953759
+23
+1.42452680194624
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.2368440585138
+20
+1.72351920148594
+30
+1.5
+11
+2.25520466591049
+21
+1.65021954795242
+31
+3.0
+12
+2.25520466591049
+22
+1.65021954795242
+32
+1.5
+13
+2.25520466591049
+23
+1.65021954795242
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.65021954795242
+30
+3.0
+11
+2.2368440585138
+21
+1.72351920148594
+31
+1.5
+12
+2.2368440585138
+22
+1.72351920148594
+32
+3.0
+13
+2.2368440585138
+23
+1.72351920148594
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+2.2368440585138
+30
+3.0
+11
+1.34978045204758
+21
+2.25520466591049
+31
+1.5
+12
+1.27648079851406
+22
+2.2368440585138
+32
+1.5
+13
+1.27648079851406
+23
+2.2368440585138
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.34978045204758
+20
+2.25520466591049
+30
+1.5
+11
+1.27648079851406
+21
+2.2368440585138
+31
+3.0
+12
+1.34978045204758
+22
+2.25520466591049
+32
+3.0
+13
+1.34978045204758
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.17907937354823
+21
+1.13702451264398
+31
+3.0
+12
+2.17907937354823
+22
+1.13702451264398
+32
+1.5
+13
+2.17907937354823
+23
+1.13702451264398
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.17907937354823
+20
+1.13702451264398
+30
+3.0
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+2.21138724003369
+22
+1.20533375707888
+32
+3.0
+13
+2.21138724003369
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.98848282880601
+20
+2.09521804908931
+30
+3.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+1.98848282880601
+22
+2.09521804908931
+32
+1.5
+13
+1.98848282880601
+23
+2.09521804908931
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+1.98848282880601
+21
+2.09521804908931
+31
+3.0
+12
+2.04447222151364
+22
+2.04447222151364
+32
+3.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+2.26629223953759
+30
+3.0
+11
+1.5
+21
+2.27
+31
+1.5
+12
+1.42452680194624
+22
+2.26629223953759
+32
+1.5
+13
+1.42452680194624
+23
+2.26629223953759
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+2.27
+30
+1.5
+11
+1.42452680194624
+21
+2.26629223953759
+31
+3.0
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+3.0
+11
+1.86297548735602
+21
+2.17907937354823
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+1.5
+13
+1.79466624292112
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.86297548735602
+20
+2.17907937354823
+30
+1.5
+11
+1.79466624292112
+21
+2.21138724003369
+31
+3.0
+12
+1.86297548735602
+22
+2.17907937354823
+32
+3.0
+13
+1.86297548735602
+23
+2.17907937354823
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.5
+31
+0.0
+12
+2.27
+22
+1.5
+32
+0.0
+13
+2.27
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.5
+30
+0.0
+11
+2.27
+21
+1.5
+31
+1.5
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.5
+30
+3.0
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.27
+22
+1.5
+32
+3.0
+13
+2.27
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.57547319805376
+30
+0.0
+11
+0.73
+21
+1.5
+31
+1.5
+12
+0.73
+22
+1.5
+32
+0.0
+13
+0.73
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.73
+20
+1.5
+30
+1.5
+11
+0.733707760462408
+21
+1.57547319805376
+31
+0.0
+12
+0.733707760462408
+22
+1.57547319805376
+32
+1.5
+13
+0.733707760462408
+23
+1.57547319805376
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.85976839852704
+20
+1.92778907942509
+30
+3.0
+11
+0.820920626451767
+21
+1.86297548735602
+31
+1.5
+12
+0.820920626451767
+22
+1.86297548735602
+32
+3.0
+13
+0.820920626451767
+23
+1.86297548735602
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.86297548735602
+30
+1.5
+11
+0.85976839852704
+21
+1.92778907942509
+31
+3.0
+12
+0.85976839852704
+22
+1.92778907942509
+32
+1.5
+13
+0.85976839852704
+23
+1.92778907942509
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.73
+20
+1.5
+30
+3.0
+11
+0.733707760462408
+21
+1.42452680194624
+31
+1.5
+12
+0.733707760462408
+22
+1.42452680194624
+32
+3.0
+13
+0.733707760462408
+23
+1.42452680194624
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.42452680194624
+30
+1.5
+11
+0.73
+21
+1.5
+31
+3.0
+12
+0.73
+22
+1.5
+32
+1.5
+13
+0.73
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.744795334089513
+20
+1.34978045204758
+30
+3.0
+11
+0.763155941486199
+21
+1.27648079851406
+31
+1.5
+12
+0.763155941486199
+22
+1.27648079851406
+32
+3.0
+13
+0.763155941486199
+23
+1.27648079851406
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.27648079851406
+30
+1.5
+11
+0.744795334089513
+21
+1.34978045204758
+31
+3.0
+12
+0.744795334089513
+22
+1.34978045204758
+32
+1.5
+13
+0.744795334089513
+23
+1.34978045204758
+33
+1.5
+70
+1
+ 0
+LINE
+ 8
+star_u
+10
+3.0
+20
+0.878679656440358
+30
+3.0
+11
+3.00250198874351
+21
+0.87764329876989
+31
+3.0
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.72351920148594
+30
+0.0
+11
+0.744795334089513
+21
+1.65021954795242
+31
+1.5
+12
+0.744795334089513
+22
+1.65021954795242
+32
+0.0
+13
+0.744795334089513
+23
+1.65021954795242
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.744795334089513
+20
+1.65021954795242
+30
+1.5
+11
+0.763155941486199
+21
+1.72351920148594
+31
+0.0
+12
+0.763155941486199
+22
+1.72351920148594
+32
+1.5
+13
+0.763155941486199
+23
+1.72351920148594
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+3.0
+11
+1.72351920148594
+21
+0.763155941486199
+31
+1.5
+12
+1.79466624292112
+22
+0.788612759966309
+32
+1.5
+13
+1.79466624292112
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.72351920148594
+20
+0.763155941486199
+30
+1.5
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+1.72351920148594
+22
+0.763155941486199
+32
+3.0
+13
+1.72351920148594
+23
+0.763155941486199
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+0.955527778486358
+30
+0.0
+11
+0.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.955527778486358
+21
+0.955527778486358
+31
+0.0
+12
+0.955527778486358
+22
+0.955527778486358
+32
+3.0
+13
+0.955527778486358
+23
+0.955527778486358
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+0.955527778486358
+30
+3.0
+11
+0.955527778486358
+21
+0.955527778486358
+31
+0.0
+12
+0.955527778486358
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486358
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+2.09521804908931
+30
+1.5
+11
+0.955527778486358
+21
+2.04447222151364
+31
+0.0
+12
+1.01151717119399
+22
+2.09521804908931
+32
+0.0
+13
+1.01151717119399
+23
+2.09521804908931
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+0.0
+11
+1.01151717119399
+21
+2.09521804908931
+31
+1.5
+12
+0.955527778486358
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486358
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.86297548735602
+20
+0.820920626451767
+30
+1.5
+11
+1.92778907942509
+21
+0.85976839852704
+31
+0.0
+12
+1.86297548735602
+22
+0.820920626451767
+32
+0.0
+13
+1.86297548735602
+23
+0.820920626451767
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+0.85976839852704
+30
+0.0
+11
+1.86297548735602
+21
+0.820920626451767
+31
+1.5
+12
+1.92778907942509
+22
+0.85976839852704
+32
+1.5
+13
+1.92778907942509
+23
+0.85976839852704
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.34978045204758
+30
+1.5
+11
+2.2368440585138
+21
+1.27648079851406
+31
+0.0
+12
+2.2368440585138
+22
+1.27648079851406
+32
+1.5
+13
+2.2368440585138
+23
+1.27648079851406
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.2368440585138
+20
+1.27648079851406
+30
+0.0
+11
+2.25520466591049
+21
+1.34978045204758
+31
+1.5
+12
+2.25520466591049
+22
+1.34978045204758
+32
+0.0
+13
+2.25520466591049
+23
+1.34978045204758
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+1.86297548735602
+21
+0.820920626451767
+31
+0.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+0.0
+13
+1.79466624292112
+23
+0.788612759966309
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.86297548735602
+20
+0.820920626451767
+30
+0.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.86297548735602
+22
+0.820920626451767
+32
+1.5
+13
+1.86297548735602
+23
+0.820920626451767
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+0.733707760462408
+30
+1.5
+11
+1.5
+21
+0.73
+31
+0.0
+12
+1.42452680194624
+22
+0.733707760462408
+32
+0.0
+13
+1.42452680194624
+23
+0.733707760462408
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.73
+30
+0.0
+11
+1.42452680194624
+21
+0.733707760462408
+31
+1.5
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+0.820920626451767
+30
+3.0
+11
+1.07221092057491
+21
+0.85976839852704
+31
+1.5
+12
+1.13702451264398
+22
+0.820920626451767
+32
+1.5
+13
+1.13702451264398
+23
+0.820920626451767
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.07221092057491
+20
+0.85976839852704
+30
+1.5
+11
+1.13702451264398
+21
+0.820920626451767
+31
+3.0
+12
+1.07221092057491
+22
+0.85976839852704
+32
+3.0
+13
+1.07221092057491
+23
+0.85976839852704
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+2.17907937354823
+30
+1.5
+11
+1.07221092057491
+21
+2.14023160147296
+31
+0.0
+12
+1.13702451264398
+22
+2.17907937354823
+32
+0.0
+13
+1.13702451264398
+23
+2.17907937354823
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.07221092057491
+20
+2.14023160147296
+30
+0.0
+11
+1.13702451264398
+21
+2.17907937354823
+31
+1.5
+12
+1.07221092057491
+22
+2.14023160147296
+32
+1.5
+13
+1.07221092057491
+23
+2.14023160147296
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440357
+20
+3.68628738645072e-18
+30
+0.205
+11
+1.20533375707888
+21
+0.788612759966309
+31
+0.0
+12
+0.878679656440357
+22
+0.0
+32
+0.0
+13
+0.878679656440357
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+0.0
+11
+0.878679656440357
+21
+3.68628738645072e-18
+31
+0.205
+12
+0.878679656440357
+22
+1.53956708492942e-17
+32
+0.826320343559643
+13
+0.878679656440357
+23
+1.53956708492942e-17
+33
+0.826320343559643
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+0.0
+11
+0.878679656440357
+21
+1.53956708492942e-17
+31
+0.826320343559643
+12
+0.878679656440357
+22
+4.01154803819637e-17
+32
+2.17367965644036
+13
+0.878679656440357
+23
+4.01154803819637e-17
+33
+2.17367965644036
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+0.0
+11
+0.878679656440357
+21
+4.01154803819637e-17
+31
+2.17367965644036
+12
+0.878679656440357
+22
+5.18248638448071e-17
+32
+2.795
+13
+0.878679656440357
+23
+5.18248638448071e-17
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+0.0
+11
+0.878679656440357
+21
+5.18248638448071e-17
+31
+2.795
+12
+0.878679656440357
+22
+1.11022302462516e-16
+32
+3.0
+13
+0.878679656440357
+23
+1.11022302462516e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+0.0
+11
+0.878679656440357
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+3.0
+13
+1.20533375707888
+23
+0.788612759966309
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+0.0
+11
+1.20533375707888
+21
+0.788612759966309
+31
+3.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.09521804908931
+20
+1.01151717119399
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+3.0
+12
+2.04447222151364
+22
+0.955527778486358
+32
+1.5
+13
+2.04447222151364
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+3.0
+11
+2.09521804908931
+21
+1.01151717119399
+31
+1.5
+12
+2.09521804908931
+22
+1.01151717119399
+32
+3.0
+13
+2.09521804908931
+23
+1.01151717119399
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.86297548735602
+20
+2.17907937354823
+30
+3.0
+11
+1.92778907942509
+21
+2.14023160147296
+31
+1.5
+12
+1.86297548735602
+22
+2.17907937354823
+32
+1.5
+13
+1.86297548735602
+23
+2.17907937354823
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+2.14023160147296
+30
+1.5
+11
+1.86297548735602
+21
+2.17907937354823
+31
+3.0
+12
+1.92778907942509
+22
+2.14023160147296
+32
+3.0
+13
+1.92778907942509
+23
+2.14023160147296
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.21138724003369
+21
+1.79466624292112
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+1.5
+13
+2.21138724003369
+23
+1.79466624292112
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+3.0
+13
+2.21138724003369
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.65021954795242
+20
+0.744795334089513
+30
+3.0
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.5
+12
+1.65021954795242
+22
+0.744795334089513
+32
+1.5
+13
+1.65021954795242
+23
+0.744795334089513
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+0.733707760462408
+30
+1.5
+11
+1.65021954795242
+21
+0.744795334089513
+31
+3.0
+12
+1.57547319805376
+22
+0.733707760462408
+32
+3.0
+13
+1.57547319805376
+23
+0.733707760462408
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.27648079851406
+30
+3.0
+11
+0.788612759966309
+21
+1.20533375707888
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+3.0
+13
+0.788612759966309
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.20533375707888
+30
+1.5
+11
+0.763155941486199
+21
+1.27648079851406
+31
+3.0
+12
+0.763155941486199
+22
+1.27648079851406
+32
+1.5
+13
+0.763155941486199
+23
+1.27648079851406
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+0.763155941486199
+30
+1.5
+11
+1.34978045204758
+21
+0.744795334089513
+31
+0.0
+12
+1.27648079851406
+22
+0.763155941486199
+32
+0.0
+13
+1.27648079851406
+23
+0.763155941486199
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.34978045204758
+20
+0.744795334089513
+30
+0.0
+11
+1.27648079851406
+21
+0.763155941486199
+31
+1.5
+12
+1.34978045204758
+22
+0.744795334089513
+32
+1.5
+13
+1.34978045204758
+23
+0.744795334089513
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.26629223953759
+20
+1.57547319805376
+30
+1.5
+11
+2.27
+21
+1.5
+31
+3.0
+12
+2.27
+22
+1.5
+32
+1.5
+13
+2.27
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+3.0
+11
+2.26629223953759
+21
+1.57547319805376
+31
+1.5
+12
+2.26629223953759
+22
+1.57547319805376
+32
+3.0
+13
+2.26629223953759
+23
+1.57547319805376
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.744795334089513
+20
+1.65021954795242
+30
+0.0
+11
+0.733707760462408
+21
+1.57547319805376
+31
+1.5
+12
+0.733707760462408
+22
+1.57547319805376
+32
+0.0
+13
+0.733707760462408
+23
+1.57547319805376
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.57547319805376
+30
+1.5
+11
+0.744795334089513
+21
+1.65021954795242
+31
+0.0
+12
+0.744795334089513
+22
+1.65021954795242
+32
+1.5
+13
+0.744795334089513
+23
+1.65021954795242
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.20533375707888
+30
+0.0
+11
+0.820920626451767
+21
+1.13702451264398
+31
+1.5
+12
+0.820920626451767
+22
+1.13702451264398
+32
+0.0
+13
+0.820920626451767
+23
+1.13702451264398
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.13702451264398
+30
+1.5
+11
+0.788612759966309
+21
+1.20533375707888
+31
+0.0
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+2.21138724003369
+30
+1.5
+11
+1.13702451264398
+21
+2.17907937354823
+31
+0.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+0.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+2.17907937354823
+30
+0.0
+11
+1.20533375707888
+21
+2.21138724003369
+31
+1.5
+12
+1.13702451264398
+22
+2.17907937354823
+32
+1.5
+13
+1.13702451264398
+23
+2.17907937354823
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+1.72351920148594
+21
+2.2368440585138
+31
+0.0
+12
+1.79466624292112
+22
+2.21138724003369
+32
+0.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.72351920148594
+20
+2.2368440585138
+30
+0.0
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.72351920148594
+22
+2.2368440585138
+32
+1.5
+13
+1.72351920148594
+23
+2.2368440585138
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.17907937354823
+20
+1.86297548735602
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+0.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+1.5
+13
+2.21138724003369
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+0.0
+11
+2.17907937354823
+21
+1.86297548735602
+31
+1.5
+12
+2.17907937354823
+22
+1.86297548735602
+32
+0.0
+13
+2.17907937354823
+23
+1.86297548735602
+33
+0.0
+70
+1
+ 0
+LINE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+3.0
+11
+2.12187288805765
+21
+-0.0013339604208924
+31
+3.0
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+0.85976839852704
+30
+1.5
+11
+1.98848282880601
+21
+0.904781950910693
+31
+0.0
+12
+1.92778907942509
+22
+0.85976839852704
+32
+0.0
+13
+1.92778907942509
+23
+0.85976839852704
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.98848282880601
+20
+0.904781950910693
+30
+0.0
+11
+1.92778907942509
+21
+0.85976839852704
+31
+1.5
+12
+1.98848282880601
+22
+0.904781950910693
+32
+1.5
+13
+1.98848282880601
+23
+0.904781950910693
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.07221092057491
+20
+2.14023160147296
+30
+1.5
+11
+1.01151717119399
+21
+2.09521804908931
+31
+0.0
+12
+1.07221092057491
+22
+2.14023160147296
+32
+0.0
+13
+1.07221092057491
+23
+2.14023160147296
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+2.09521804908931
+30
+0.0
+11
+1.07221092057491
+21
+2.14023160147296
+31
+1.5
+12
+1.01151717119399
+22
+2.09521804908931
+32
+1.5
+13
+1.01151717119399
+23
+2.09521804908931
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.34978045204758
+20
+0.744795334089513
+30
+1.5
+11
+1.42452680194624
+21
+0.733707760462408
+31
+0.0
+12
+1.34978045204758
+22
+0.744795334089513
+32
+0.0
+13
+1.34978045204758
+23
+0.744795334089513
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+0.733707760462408
+30
+0.0
+11
+1.34978045204758
+21
+0.744795334089513
+31
+1.5
+12
+1.42452680194624
+22
+0.733707760462408
+32
+1.5
+13
+1.42452680194624
+23
+0.733707760462408
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+2.14023160147296
+30
+3.0
+11
+1.98848282880601
+21
+2.09521804908931
+31
+1.5
+12
+1.92778907942509
+22
+2.14023160147296
+32
+1.5
+13
+1.92778907942509
+23
+2.14023160147296
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.98848282880601
+20
+2.09521804908931
+30
+1.5
+11
+1.92778907942509
+21
+2.14023160147296
+31
+3.0
+12
+1.98848282880601
+22
+2.09521804908931
+32
+3.0
+13
+1.98848282880601
+23
+2.09521804908931
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+3.0
+21
+0.878679656440358
+31
+3.0
+12
+3.0
+22
+0.878679656440358
+32
+0.0
+13
+3.0
+23
+0.878679656440358
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.878679656440358
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.85976839852704
+20
+1.07221092057491
+30
+0.0
+11
+0.904781950910692
+21
+1.01151717119399
+31
+1.5
+12
+0.904781950910692
+22
+1.01151717119399
+32
+0.0
+13
+0.904781950910692
+23
+1.01151717119399
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.904781950910692
+20
+1.01151717119399
+30
+1.5
+11
+0.85976839852704
+21
+1.07221092057491
+31
+0.0
+12
+0.85976839852704
+22
+1.07221092057491
+32
+1.5
+13
+0.85976839852704
+23
+1.07221092057491
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.79466624292112
+30
+0.0
+11
+0.763155941486199
+21
+1.72351920148594
+31
+1.5
+12
+0.763155941486199
+22
+1.72351920148594
+32
+0.0
+13
+0.763155941486199
+23
+1.72351920148594
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.72351920148594
+30
+1.5
+11
+0.788612759966309
+21
+1.79466624292112
+31
+0.0
+12
+0.788612759966309
+22
+1.79466624292112
+32
+1.5
+13
+0.788612759966309
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.79466624292112
+30
+0.0
+11
+0.0
+21
+1.79836855106949
+31
+0.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.788612759966309
+21
+1.79466624292112
+31
+0.0
+12
+0.763155941486199
+22
+1.72351920148594
+32
+0.0
+13
+0.763155941486199
+23
+1.72351920148594
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.763155941486199
+21
+1.72351920148594
+31
+0.0
+12
+0.744795334089513
+22
+1.65021954795242
+32
+0.0
+13
+0.744795334089513
+23
+1.65021954795242
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+0.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+0.878679656440357
+22
+0.0
+32
+0.0
+13
+0.878679656440357
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.20533375707888
+21
+0.788612759966309
+31
+0.0
+12
+1.27648079851406
+22
+0.763155941486199
+32
+0.0
+13
+1.27648079851406
+23
+0.763155941486199
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.27648079851406
+21
+0.763155941486199
+31
+0.0
+12
+1.34978045204758
+22
+0.744795334089513
+32
+0.0
+13
+1.34978045204758
+23
+0.744795334089513
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+0.826320343559643
+11
+2.12132034355964
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+star_u
+10
+0.904781950910692
+20
+1.98848282880601
+30
+3.0
+11
+0.85976839852704
+21
+1.92778907942509
+31
+1.5
+12
+0.85976839852704
+22
+1.92778907942509
+32
+3.0
+13
+0.85976839852704
+23
+1.92778907942509
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.85976839852704
+20
+1.92778907942509
+30
+1.5
+11
+0.904781950910692
+21
+1.98848282880601
+31
+3.0
+12
+0.904781950910692
+22
+1.98848282880601
+32
+1.5
+13
+0.904781950910692
+23
+1.98848282880601
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.34978045204758
+20
+2.25520466591049
+30
+3.0
+11
+1.42452680194624
+21
+2.26629223953759
+31
+1.5
+12
+1.34978045204758
+22
+2.25520466591049
+32
+1.5
+13
+1.34978045204758
+23
+2.25520466591049
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+2.26629223953759
+30
+1.5
+11
+1.34978045204758
+21
+2.25520466591049
+31
+3.0
+12
+1.42452680194624
+22
+2.26629223953759
+32
+3.0
+13
+1.42452680194624
+23
+2.26629223953759
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+-2.22044604925031e-16
+20
+2.12132034355964
+30
+3.0
+11
+0.788612759966309
+21
+1.79466624292112
+31
+0.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.79466624292112
+30
+0.0
+11
+-2.22044604925031e-16
+21
+2.12132034355964
+31
+3.0
+12
+0.788612759966309
+22
+1.79466624292112
+32
+1.5
+13
+0.788612759966309
+23
+1.79466624292112
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.79466624292112
+30
+1.5
+11
+-2.22044604925031e-16
+21
+2.12132034355964
+31
+3.0
+12
+0.788612759966309
+22
+1.79466624292112
+32
+3.0
+13
+0.788612759966309
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.92778907942509
+30
+1.5
+11
+2.17907937354823
+21
+1.86297548735602
+31
+0.0
+12
+2.17907937354823
+22
+1.86297548735602
+32
+1.5
+13
+2.17907937354823
+23
+1.86297548735602
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.17907937354823
+20
+1.86297548735602
+30
+0.0
+11
+2.14023160147296
+21
+1.92778907942509
+31
+1.5
+12
+2.14023160147296
+22
+1.92778907942509
+32
+0.0
+13
+2.14023160147296
+23
+1.92778907942509
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.98848282880601
+20
+0.904781950910693
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+0.0
+12
+1.98848282880601
+22
+0.904781950910693
+32
+0.0
+13
+1.98848282880601
+23
+0.904781950910693
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+0.0
+11
+1.98848282880601
+21
+0.904781950910693
+31
+1.5
+12
+2.04447222151364
+22
+0.955527778486358
+32
+1.5
+13
+2.04447222151364
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.733707760462408
+21
+1.57547319805376
+31
+3.0
+12
+0.73
+22
+1.5
+32
+3.0
+13
+0.73
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.57547319805376
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.744795334089513
+22
+1.65021954795242
+32
+3.0
+13
+0.744795334089513
+23
+1.65021954795242
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.763155941486199
+21
+1.72351920148594
+31
+3.0
+12
+0.744795334089513
+22
+1.65021954795242
+32
+3.0
+13
+0.744795334089513
+23
+1.65021954795242
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.72351920148594
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.788612759966309
+22
+1.79466624292112
+32
+3.0
+13
+0.788612759966309
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+0.733707760462408
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.34978045204758
+22
+0.744795334089513
+32
+3.0
+13
+1.34978045204758
+23
+0.744795334089513
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42452680194624
+21
+0.733707760462408
+31
+3.0
+12
+1.5
+22
+0.73
+32
+3.0
+13
+1.5
+23
+0.73
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+0.763155941486199
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+3.0
+13
+1.20533375707888
+23
+0.788612759966309
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27648079851406
+21
+0.763155941486199
+31
+3.0
+12
+1.34978045204758
+22
+0.744795334089513
+32
+3.0
+13
+1.34978045204758
+23
+0.744795334089513
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.07221092057491
+30
+3.0
+11
+2.21138724003369
+21
+1.20533375707888
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+3.0
+11
+2.14023160147296
+21
+1.07221092057491
+31
+3.0
+12
+2.17907937354823
+22
+1.13702451264398
+32
+3.0
+13
+2.17907937354823
+23
+1.13702451264398
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+0.820920626451767
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.07221092057491
+22
+0.85976839852704
+32
+3.0
+13
+1.07221092057491
+23
+0.85976839852704
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.13702451264398
+21
+0.820920626451767
+31
+3.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+3.0
+13
+1.20533375707888
+23
+0.788612759966309
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+0.733707760462408
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+0.73
+32
+3.0
+13
+1.5
+23
+0.73
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.57547319805376
+21
+0.733707760462408
+31
+3.0
+12
+1.65021954795242
+22
+0.744795334089513
+32
+3.0
+13
+1.65021954795242
+23
+0.744795334089513
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.65021954795242
+20
+0.744795334089513
+30
+3.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+3.0
+11
+1.65021954795242
+21
+0.744795334089513
+31
+3.0
+12
+1.72351920148594
+22
+0.763155941486199
+32
+3.0
+13
+1.72351920148594
+23
+0.763155941486199
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.788612759966309
+21
+1.20533375707888
+31
+3.0
+12
+-4.44089209850063e-16
+22
+0.878679656440356
+32
+3.0
+13
+-4.44089209850063e-16
+23
+0.878679656440356
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.20533375707888
+30
+3.0
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.820920626451767
+22
+1.13702451264398
+32
+3.0
+13
+0.820920626451767
+23
+1.13702451264398
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.13702451264398
+30
+3.0
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.85976839852704
+22
+1.07221092057491
+32
+3.0
+13
+0.85976839852704
+23
+1.07221092057491
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.904781950910692
+20
+1.01151717119399
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.85976839852704
+22
+1.07221092057491
+32
+3.0
+13
+0.85976839852704
+23
+1.07221092057491
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.904781950910692
+21
+1.01151717119399
+31
+3.0
+12
+0.955527778486358
+22
+0.955527778486358
+32
+3.0
+13
+0.955527778486358
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.820920626451767
+21
+1.86297548735602
+31
+3.0
+12
+0.788612759966309
+22
+1.79466624292112
+32
+3.0
+13
+0.788612759966309
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.86297548735602
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.85976839852704
+22
+1.92778907942509
+32
+3.0
+13
+0.85976839852704
+23
+1.92778907942509
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+3.0
+11
+2.25520466591049
+21
+1.34978045204758
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.34978045204758
+30
+3.0
+11
+2.21138724003369
+21
+1.20533375707888
+31
+3.0
+12
+2.2368440585138
+22
+1.27648079851406
+32
+3.0
+13
+2.2368440585138
+23
+1.27648079851406
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+0.85976839852704
+30
+3.0
+11
+2.04447222151364
+21
+0.955527778486358
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+3.0
+11
+1.92778907942509
+21
+0.85976839852704
+31
+3.0
+12
+1.98848282880601
+22
+0.904781950910693
+32
+3.0
+13
+1.98848282880601
+23
+0.904781950910693
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.878679656440358
+30
+3.0
+11
+2.2368440585138
+21
+1.27648079851406
+31
+3.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+3.0
+13
+2.21138724003369
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.2368440585138
+20
+1.27648079851406
+30
+3.0
+11
+3.0
+21
+0.878679656440358
+31
+3.0
+12
+2.25520466591049
+22
+1.34978045204758
+32
+3.0
+13
+2.25520466591049
+23
+1.34978045204758
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.34978045204758
+30
+3.0
+11
+3.0
+21
+0.878679656440358
+31
+3.0
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.20533375707888
+21
+0.788612759966309
+31
+3.0
+12
+0.878679656440357
+22
+1.11022302462516e-16
+32
+3.0
+13
+0.878679656440357
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.27648079851406
+22
+0.763155941486199
+32
+3.0
+13
+1.27648079851406
+23
+0.763155941486199
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+0.763155941486199
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.34978045204758
+22
+0.744795334089513
+32
+3.0
+13
+1.34978045204758
+23
+0.744795334089513
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.65021954795242
+30
+3.0
+11
+2.21138724003369
+21
+1.79466624292112
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+3.0
+11
+2.25520466591049
+21
+1.65021954795242
+31
+3.0
+12
+2.2368440585138
+22
+1.72351920148594
+32
+3.0
+13
+2.2368440585138
+23
+1.72351920148594
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+3.0
+11
+2.14023160147296
+21
+1.92778907942509
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.92778907942509
+30
+3.0
+11
+2.21138724003369
+21
+1.79466624292112
+31
+3.0
+12
+2.17907937354823
+22
+1.86297548735602
+32
+3.0
+13
+2.17907937354823
+23
+1.86297548735602
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+3.0
+11
+2.25520466591049
+21
+1.65021954795242
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.65021954795242
+30
+3.0
+11
+2.27
+21
+1.5
+31
+3.0
+12
+2.26629223953759
+22
+1.57547319805376
+32
+3.0
+13
+2.26629223953759
+23
+1.57547319805376
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+3.0
+11
+1.86297548735602
+21
+0.820920626451767
+31
+3.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+3.0
+13
+1.79466624292112
+23
+0.788612759966309
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.86297548735602
+20
+0.820920626451767
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.92778907942509
+22
+0.85976839852704
+32
+3.0
+13
+1.92778907942509
+23
+0.85976839852704
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+0.85976839852704
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.72351920148594
+20
+2.2368440585138
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+1.65021954795242
+22
+2.25520466591049
+32
+3.0
+13
+1.65021954795242
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.72351920148594
+21
+2.2368440585138
+31
+3.0
+12
+1.79466624292112
+22
+2.21138724003369
+32
+3.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.79466624292112
+21
+2.21138724003369
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42452680194624
+21
+2.26629223953759
+31
+3.0
+12
+1.34978045204758
+22
+2.25520466591049
+32
+3.0
+13
+1.34978045204758
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+2.26629223953759
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27648079851406
+21
+2.2368440585138
+31
+3.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+3.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+2.2368440585138
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.34978045204758
+22
+2.25520466591049
+32
+3.0
+13
+1.34978045204758
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.57547319805376
+21
+2.26629223953759
+31
+3.0
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+2.26629223953759
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.65021954795242
+22
+2.25520466591049
+32
+3.0
+13
+1.65021954795242
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+3.0
+11
+1.65021954795242
+21
+2.25520466591049
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.65021954795242
+20
+2.25520466591049
+30
+3.0
+11
+1.79466624292112
+21
+2.21138724003369
+31
+3.0
+12
+1.72351920148594
+22
+2.2368440585138
+32
+3.0
+13
+1.72351920148594
+23
+2.2368440585138
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+2.14023160147296
+30
+3.0
+11
+1.79466624292112
+21
+2.21138724003369
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+3.0
+11
+1.92778907942509
+21
+2.14023160147296
+31
+3.0
+12
+1.86297548735602
+22
+2.17907937354823
+32
+3.0
+13
+1.86297548735602
+23
+2.17907937354823
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.13702451264398
+21
+2.17907937354823
+31
+3.0
+12
+1.07221092057491
+22
+2.14023160147296
+32
+3.0
+13
+1.07221092057491
+23
+2.14023160147296
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+2.17907937354823
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+3.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01151717119399
+21
+2.09521804908931
+31
+3.0
+12
+0.955527778486358
+22
+2.04447222151364
+32
+3.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+2.09521804908931
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.07221092057491
+22
+2.14023160147296
+32
+3.0
+13
+1.07221092057491
+23
+2.14023160147296
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.07221092057491
+20
+2.14023160147296
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.07221092057491
+21
+2.14023160147296
+31
+3.0
+12
+1.13702451264398
+22
+2.17907937354823
+32
+3.0
+13
+1.13702451264398
+23
+2.17907937354823
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.13702451264398
+21
+2.17907937354823
+31
+3.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+3.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.42452680194624
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.73
+22
+1.5
+32
+3.0
+13
+0.73
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.733707760462408
+21
+1.42452680194624
+31
+3.0
+12
+0.744795334089513
+22
+1.34978045204758
+32
+3.0
+13
+0.744795334089513
+23
+1.34978045204758
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.788612759966309
+21
+1.79466624292112
+31
+3.0
+12
+-2.22044604925031e-16
+22
+2.12132034355964
+32
+3.0
+13
+-2.22044604925031e-16
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.79466624292112
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.763155941486199
+22
+1.72351920148594
+32
+3.0
+13
+0.763155941486199
+23
+1.72351920148594
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.72351920148594
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.744795334089513
+22
+1.65021954795242
+32
+3.0
+13
+0.744795334089513
+23
+1.65021954795242
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+3.0
+11
+1.92778907942509
+21
+2.14023160147296
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+2.14023160147296
+30
+3.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+3.0
+12
+1.98848282880601
+22
+2.09521804908931
+32
+3.0
+13
+1.98848282880601
+23
+2.09521804908931
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.34978045204758
+30
+3.0
+11
+2.27
+21
+1.5
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+3.0
+11
+2.25520466591049
+21
+1.34978045204758
+31
+3.0
+12
+2.26629223953759
+22
+1.42452680194624
+32
+3.0
+13
+2.26629223953759
+23
+1.42452680194624
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+3.0
+11
+1.92778907942509
+21
+0.85976839852704
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+0.85976839852704
+30
+3.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+1.86297548735602
+22
+0.820920626451767
+32
+3.0
+13
+1.86297548735602
+23
+0.820920626451767
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.17907937354823
+20
+1.86297548735602
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+2.14023160147296
+22
+1.92778907942509
+32
+3.0
+13
+2.14023160147296
+23
+1.92778907942509
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.17907937354823
+21
+1.86297548735602
+31
+3.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+3.0
+13
+2.21138724003369
+23
+1.79466624292112
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.21138724003369
+21
+1.79466624292112
+31
+3.0
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+3.0
+11
+2.14023160147296
+21
+1.07221092057491
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.07221092057491
+30
+3.0
+11
+2.04447222151364
+21
+0.955527778486358
+31
+3.0
+12
+2.09521804908931
+22
+1.01151717119399
+32
+3.0
+13
+2.09521804908931
+23
+1.01151717119399
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.13702451264398
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.788612759966309
+22
+1.20533375707888
+32
+3.0
+13
+0.788612759966309
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.820920626451767
+21
+1.13702451264398
+31
+3.0
+12
+0.85976839852704
+22
+1.07221092057491
+32
+3.0
+13
+0.85976839852704
+23
+1.07221092057491
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+0.904781950910692
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.955527778486358
+22
+0.955527778486358
+32
+3.0
+13
+0.955527778486358
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01151717119399
+21
+0.904781950910692
+31
+3.0
+12
+1.07221092057491
+22
+0.85976839852704
+32
+3.0
+13
+1.07221092057491
+23
+0.85976839852704
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.27648079851406
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.744795334089513
+22
+1.34978045204758
+32
+3.0
+13
+0.744795334089513
+23
+1.34978045204758
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.763155941486199
+21
+1.27648079851406
+31
+3.0
+12
+0.788612759966309
+22
+1.20533375707888
+32
+3.0
+13
+0.788612759966309
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.92778907942509
+30
+3.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+3.0
+11
+2.14023160147296
+21
+1.92778907942509
+31
+3.0
+12
+2.09521804908931
+22
+1.98848282880601
+32
+3.0
+13
+2.09521804908931
+23
+1.98848282880601
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.904781950910692
+21
+1.98848282880601
+31
+3.0
+12
+0.85976839852704
+22
+1.92778907942509
+32
+3.0
+13
+0.85976839852704
+23
+1.92778907942509
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.904781950910692
+20
+1.98848282880601
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.955527778486358
+22
+2.04447222151364
+32
+3.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.09521804908931
+21
+1.98848282880601
+31
+0.0
+12
+2.04447222151364
+22
+2.04447222151364
+32
+0.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.09521804908931
+20
+1.98848282880601
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.14023160147296
+22
+1.92778907942509
+32
+0.0
+13
+2.14023160147296
+23
+1.92778907942509
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.92778907942509
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.57547319805376
+21
+2.26629223953759
+31
+0.0
+12
+1.5
+22
+2.27
+32
+0.0
+13
+1.5
+23
+2.27
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+2.26629223953759
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.79836855106949
+22
+3.0
+32
+0.0
+13
+1.79836855106949
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+2.26629223953759
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.65021954795242
+22
+2.25520466591049
+32
+0.0
+13
+1.65021954795242
+23
+2.25520466591049
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.26629223953759
+20
+1.42452680194624
+30
+0.0
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+2.25520466591049
+22
+1.34978045204758
+32
+0.0
+13
+2.25520466591049
+23
+1.34978045204758
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.26629223953759
+21
+1.42452680194624
+31
+0.0
+12
+2.27
+22
+1.5
+32
+0.0
+13
+2.27
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.27
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.34978045204758
+20
+0.744795334089513
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+0.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.34978045204758
+21
+0.744795334089513
+31
+0.0
+12
+1.42452680194624
+22
+0.733707760462408
+32
+0.0
+13
+1.42452680194624
+23
+0.733707760462408
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.42452680194624
+21
+0.733707760462408
+31
+0.0
+12
+1.5
+22
+0.73
+32
+0.0
+13
+1.5
+23
+0.73
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.98848282880601
+20
+0.904781950910693
+30
+0.0
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+1.92778907942509
+22
+0.85976839852704
+32
+0.0
+13
+1.92778907942509
+23
+0.85976839852704
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+1.98848282880601
+21
+0.904781950910693
+31
+0.0
+12
+2.04447222151364
+22
+0.955527778486358
+32
+0.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.04447222151364
+21
+0.955527778486358
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.744795334089513
+20
+1.65021954795242
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.744795334089513
+21
+1.65021954795242
+31
+0.0
+12
+0.733707760462408
+22
+1.57547319805376
+32
+0.0
+13
+0.733707760462408
+23
+1.57547319805376
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.733707760462408
+21
+1.57547319805376
+31
+0.0
+12
+0.73
+22
+1.5
+32
+0.0
+13
+0.73
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.955527778486358
+21
+2.04447222151364
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.01151717119399
+22
+2.09521804908931
+32
+0.0
+13
+1.01151717119399
+23
+2.09521804908931
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+2.09521804908931
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.07221092057491
+22
+2.14023160147296
+32
+0.0
+13
+1.07221092057491
+23
+2.14023160147296
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.85976839852704
+20
+1.07221092057491
+30
+0.0
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.497732043121051
+32
+0.0
+13
+0.0
+23
+0.497732043121051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.85976839852704
+21
+1.07221092057491
+31
+0.0
+12
+0.904781950910692
+22
+1.01151717119399
+32
+0.0
+13
+0.904781950910692
+23
+1.01151717119399
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.904781950910692
+21
+1.01151717119399
+31
+0.0
+12
+0.955527778486358
+22
+0.955527778486358
+32
+0.0
+13
+0.955527778486358
+23
+0.955527778486358
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+2.795
+11
+2.12132034355964
+21
+0.0
+31
+2.17367965644036
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+2.17367965644036
+11
+2.795
+21
+0.0
+31
+2.795
+12
+2.12132034355964
+22
+0.0
+32
+2.795
+13
+2.12132034355964
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+2.12132034355964
+22
+0.0
+32
+0.205
+13
+2.12132034355964
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.12132034355964
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+0.0
+30
+0.205
+11
+2.795
+21
+0.0
+31
+1.5
+12
+2.12132034355964
+22
+0.0
+32
+0.826320343559644
+13
+2.12132034355964
+23
+0.0
+33
+0.826320343559644
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+0.205
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.878679656440357
+22
+0.0
+32
+0.0
+13
+0.878679656440357
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440357
+20
+0.0
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.878679656440357
+22
+3.68628738645072e-18
+32
+0.205
+13
+0.878679656440357
+23
+3.68628738645072e-18
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440357
+20
+5.18248638448071e-17
+30
+2.795
+11
+0.878679656440357
+21
+4.01154803819637e-17
+31
+2.17367965644036
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440357
+20
+1.53956708492942e-17
+30
+0.826320343559643
+11
+0.878679656440357
+21
+3.68628738645072e-18
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+2.795
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+3.0
+13
+2.795
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+0.205
+11
+2.795
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.0
+30
+3.0
+11
+0.878679656440357
+21
+5.18248638448071e-17
+31
+2.795
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440357
+20
+5.18248638448071e-17
+30
+2.795
+11
+1.5
+21
+0.0
+31
+3.0
+12
+0.878679656440357
+22
+1.11022302462516e-16
+32
+3.0
+13
+0.878679656440357
+23
+1.11022302462516e-16
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440357
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.5
+21
+0.0
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.795
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+0.205
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.205
+13
+2.12132034355964
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+2.795
+11
+2.12132034355964
+21
+3.0
+31
+2.17367965644036
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+2.795
+11
+2.12132034355964
+21
+3.0
+31
+0.826320343559643
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+0.826320343559643
+11
+1.5
+21
+3.0
+31
+2.795
+12
+2.12132034355964
+22
+3.0
+32
+2.17367965644036
+13
+2.12132034355964
+23
+3.0
+33
+2.17367965644036
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+2.17367965644036
+11
+0.878679656440356
+21
+3.0
+31
+0.826320343559644
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.878679656440356
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.878679656440356
+22
+3.0
+32
+0.826320343559644
+13
+0.878679656440356
+23
+3.0
+33
+0.826320343559644
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.878679656440356
+21
+3.0
+31
+2.17367965644036
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+2.17367965644036
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.878679656440356
+22
+3.0
+32
+2.795
+13
+0.878679656440356
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.0
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.0
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+0.205
+22
+3.0
+32
+0.0
+13
+0.205
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.497732043121052
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.878679656440356
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.878679656440356
+22
+3.0
+32
+0.205
+13
+0.878679656440356
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+2.09521804908931
+22
+1.01151717119399
+32
+1.5
+13
+2.09521804908931
+23
+1.01151717119399
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.09521804908931
+20
+1.01151717119399
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+2.14023160147296
+22
+1.07221092057491
+32
+1.5
+13
+2.14023160147296
+23
+1.07221092057491
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.14023160147296
+20
+1.07221092057491
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+2.17907937354823
+22
+1.13702451264398
+32
+1.5
+13
+2.17907937354823
+23
+1.13702451264398
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.79466624292112
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.788612759966309
+22
+1.79466624292112
+32
+1.5
+13
+0.788612759966309
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.788612759966309
+21
+1.79466624292112
+31
+3.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+1.5
+13
+2.21138724003369
+23
+1.20533375707888
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+0.788612759966309
+21
+1.79466624292112
+31
+3.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+3.0
+13
+2.21138724003369
+23
+1.20533375707888
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+3.0
+11
+0.788612759966309
+21
+1.79466624292112
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+2.2368440585138
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+1.5
+13
+1.20533375707888
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27648079851406
+21
+2.2368440585138
+31
+1.5
+12
+1.34978045204758
+22
+2.25520466591049
+32
+1.5
+13
+1.34978045204758
+23
+2.25520466591049
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.34978045204758
+21
+2.25520466591049
+31
+1.5
+12
+1.42452680194624
+22
+2.26629223953759
+32
+1.5
+13
+1.42452680194624
+23
+2.26629223953759
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.42452680194624
+21
+2.26629223953759
+31
+1.5
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.733707760462408
+21
+1.42452680194624
+31
+1.5
+12
+0.73
+22
+1.5
+32
+1.5
+13
+0.73
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.42452680194624
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.744795334089513
+22
+1.34978045204758
+32
+1.5
+13
+0.744795334089513
+23
+1.34978045204758
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.744795334089513
+20
+1.34978045204758
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.763155941486199
+22
+1.27648079851406
+32
+1.5
+13
+0.763155941486199
+23
+1.27648079851406
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.763155941486199
+20
+1.27648079851406
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.20533375707888
+21
+0.788612759966309
+31
+3.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.20533375707888
+20
+0.788612759966309
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+1.5
+13
+1.79466624292112
+23
+2.21138724003369
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+3.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+2.09521804908931
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.955527778486358
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486358
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01151717119399
+21
+2.09521804908931
+31
+1.5
+12
+1.07221092057491
+22
+2.14023160147296
+32
+1.5
+13
+1.07221092057491
+23
+2.14023160147296
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.07221092057491
+21
+2.14023160147296
+31
+1.5
+12
+1.13702451264398
+22
+2.17907937354823
+32
+1.5
+13
+1.13702451264398
+23
+2.17907937354823
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.13702451264398
+21
+2.17907937354823
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+1.5
+13
+1.20533375707888
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27648079851406
+21
+0.763155941486199
+31
+1.5
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.27648079851406
+20
+0.763155941486199
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.34978045204758
+22
+0.744795334089513
+32
+1.5
+13
+1.34978045204758
+23
+0.744795334089513
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.34978045204758
+20
+0.744795334089513
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.42452680194624
+22
+0.733707760462408
+32
+1.5
+13
+1.42452680194624
+23
+0.733707760462408
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.42452680194624
+20
+0.733707760462408
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.79466624292112
+21
+0.788612759966309
+31
+3.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+1.5
+13
+1.79466624292112
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+1.5
+13
+1.20533375707888
+23
+2.21138724003369
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.20533375707888
+21
+2.21138724003369
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+3.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01151717119399
+21
+0.904781950910692
+31
+1.5
+12
+0.955527778486358
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486358
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.01151717119399
+20
+0.904781950910692
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.07221092057491
+22
+0.85976839852704
+32
+1.5
+13
+1.07221092057491
+23
+0.85976839852704
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.07221092057491
+20
+0.85976839852704
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.13702451264398
+22
+0.820920626451767
+32
+1.5
+13
+1.13702451264398
+23
+0.820920626451767
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.13702451264398
+20
+0.820920626451767
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.2368440585138
+22
+1.27648079851406
+32
+1.5
+13
+2.2368440585138
+23
+1.27648079851406
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.2368440585138
+20
+1.27648079851406
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.25520466591049
+22
+1.34978045204758
+32
+1.5
+13
+2.25520466591049
+23
+1.34978045204758
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.25520466591049
+20
+1.34978045204758
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.26629223953759
+22
+1.42452680194624
+32
+1.5
+13
+2.26629223953759
+23
+1.42452680194624
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.788612759966309
+20
+1.20533375707888
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.788612759966309
+21
+1.20533375707888
+31
+3.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+1.5
+13
+2.21138724003369
+23
+1.79466624292112
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+0.788612759966309
+21
+1.20533375707888
+31
+3.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+3.0
+13
+2.21138724003369
+23
+1.79466624292112
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+3.0
+11
+0.788612759966309
+21
+1.20533375707888
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+2.2368440585138
+22
+1.72351920148594
+32
+1.5
+13
+2.2368440585138
+23
+1.72351920148594
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.2368440585138
+21
+1.72351920148594
+31
+1.5
+12
+2.25520466591049
+22
+1.65021954795242
+32
+1.5
+13
+2.25520466591049
+23
+1.65021954795242
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.25520466591049
+21
+1.65021954795242
+31
+1.5
+12
+2.26629223953759
+22
+1.57547319805376
+32
+1.5
+13
+2.26629223953759
+23
+1.57547319805376
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.733707760462408
+20
+1.57547319805376
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.73
+22
+1.5
+32
+1.5
+13
+0.73
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.733707760462408
+21
+1.57547319805376
+31
+1.5
+12
+0.744795334089513
+22
+1.65021954795242
+32
+1.5
+13
+0.744795334089513
+23
+1.65021954795242
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.744795334089513
+21
+1.65021954795242
+31
+1.5
+12
+0.763155941486199
+22
+1.72351920148594
+32
+1.5
+13
+0.763155941486199
+23
+1.72351920148594
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.763155941486199
+21
+1.72351920148594
+31
+1.5
+12
+0.788612759966309
+22
+1.79466624292112
+32
+1.5
+13
+0.788612759966309
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.27
+20
+1.5
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+2.27
+22
+1.5
+32
+1.5
+13
+2.27
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+2.27
+21
+1.5
+31
+3.0
+12
+0.73
+22
+1.5
+32
+1.5
+13
+0.73
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.73
+20
+1.5
+30
+1.5
+11
+2.27
+21
+1.5
+31
+3.0
+12
+0.73
+22
+1.5
+32
+3.0
+13
+0.73
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.73
+20
+1.5
+30
+3.0
+11
+2.27
+21
+1.5
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.86297548735602
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.788612759966309
+22
+1.79466624292112
+32
+1.5
+13
+0.788612759966309
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.820920626451767
+21
+1.86297548735602
+31
+1.5
+12
+0.85976839852704
+22
+1.92778907942509
+32
+1.5
+13
+0.85976839852704
+23
+1.92778907942509
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.85976839852704
+21
+1.92778907942509
+31
+1.5
+12
+0.904781950910692
+22
+1.98848282880601
+32
+1.5
+13
+0.904781950910692
+23
+1.98848282880601
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.904781950910692
+21
+1.98848282880601
+31
+1.5
+12
+0.955527778486358
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486358
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+1.86297548735602
+22
+0.820920626451767
+32
+1.5
+13
+1.86297548735602
+23
+0.820920626451767
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.86297548735602
+20
+0.820920626451767
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+1.92778907942509
+22
+0.85976839852704
+32
+1.5
+13
+1.92778907942509
+23
+0.85976839852704
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.92778907942509
+20
+0.85976839852704
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+1.98848282880601
+22
+0.904781950910693
+32
+1.5
+13
+1.98848282880601
+23
+0.904781950910693
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+2.04447222151364
+22
+0.955527778486358
+32
+3.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.955527778486358
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486358
+23
+2.04447222151364
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+2.04447222151364
+30
+1.5
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.955527778486358
+22
+2.04447222151364
+32
+3.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+1.5
+21
+0.73
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.73
+30
+1.5
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.57547319805376
+22
+0.733707760462408
+32
+1.5
+13
+1.57547319805376
+23
+0.733707760462408
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+0.733707760462408
+30
+1.5
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.65021954795242
+22
+0.744795334089513
+32
+1.5
+13
+1.65021954795242
+23
+0.744795334089513
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.65021954795242
+20
+0.744795334089513
+30
+1.5
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.72351920148594
+22
+0.763155941486199
+32
+1.5
+13
+1.72351920148594
+23
+0.763155941486199
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.57547319805376
+20
+2.26629223953759
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.57547319805376
+21
+2.26629223953759
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+1.5
+13
+1.79466624292112
+23
+2.21138724003369
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+1.57547319805376
+21
+2.26629223953759
+31
+1.5
+12
+1.65021954795242
+22
+2.25520466591049
+32
+1.5
+13
+1.65021954795242
+23
+2.25520466591049
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+1.65021954795242
+21
+2.25520466591049
+31
+1.5
+12
+1.72351920148594
+22
+2.2368440585138
+32
+1.5
+13
+1.72351920148594
+23
+2.2368440585138
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+0.73
+31
+3.0
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+0.73
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+2.27
+31
+1.5
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.820920626451767
+21
+1.13702451264398
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.820920626451767
+20
+1.13702451264398
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.85976839852704
+22
+1.07221092057491
+32
+1.5
+13
+0.85976839852704
+23
+1.07221092057491
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.85976839852704
+20
+1.07221092057491
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.904781950910692
+22
+1.01151717119399
+32
+1.5
+13
+0.904781950910692
+23
+1.01151717119399
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+0.904781950910692
+20
+1.01151717119399
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.955527778486358
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486358
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.86297548735602
+22
+2.17907937354823
+32
+1.5
+13
+1.86297548735602
+23
+2.17907937354823
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+1.86297548735602
+21
+2.17907937354823
+31
+1.5
+12
+1.92778907942509
+22
+2.14023160147296
+32
+1.5
+13
+1.92778907942509
+23
+2.14023160147296
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+1.92778907942509
+21
+2.14023160147296
+31
+1.5
+12
+1.98848282880601
+22
+2.09521804908931
+32
+1.5
+13
+1.98848282880601
+23
+2.09521804908931
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+0.955527778486358
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486358
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_u
+10
+0.955527778486358
+20
+0.955527778486358
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+1.5
+31
+1.5
+12
+2.04447222151364
+22
+2.04447222151364
+32
+1.5
+13
+2.04447222151364
+23
+2.04447222151364
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_u
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+2.04447222151364
+22
+2.04447222151364
+32
+3.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+0.955527778486358
+30
+1.20736753927986e-15
+11
+0.205000000000001
+21
+0.0
+31
+-1.16573417585641e-15
+12
+1.19348975147204e-15
+22
+0.0
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+0.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+-1.16573417585641e-15
+11
+0.955527778486359
+21
+0.955527778486358
+31
+1.20736753927986e-15
+12
+0.497732043121054
+22
+0.0
+32
+1.19348975147204e-15
+13
+0.497732043121054
+23
+0.0
+33
+1.19348975147204e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.497732043121054
+20
+0.0
+30
+1.19348975147204e-15
+11
+0.955527778486359
+21
+0.955527778486358
+31
+1.20736753927986e-15
+12
+1.01151717119399
+22
+0.904781950910693
+32
+6.38378239159465e-16
+13
+1.01151717119399
+23
+0.904781950910693
+33
+6.38378239159465e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+0.497732043121054
+20
+0.0
+30
+1.19348975147204e-15
+11
+1.01151717119399
+21
+0.904781950910693
+31
+6.38378239159465e-16
+12
+1.07221092057491
+22
+0.85976839852704
+32
+-1.38777878078145e-17
+13
+1.07221092057491
+23
+0.85976839852704
+33
+-1.38777878078145e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.50226795687895
+20
+3.0
+30
+1.19348975147204e-15
+11
+1.98848282880601
+21
+2.09521804908931
+31
+-8.46545056276682e-16
+12
+1.92778907942509
+22
+2.14023160147296
+32
+-1.02695629777827e-15
+13
+1.92778907942509
+23
+2.14023160147296
+33
+-1.02695629777827e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.98848282880601
+20
+2.09521804908931
+30
+-8.46545056276682e-16
+11
+2.50226795687895
+21
+3.0
+31
+1.19348975147204e-15
+12
+2.04447222151364
+22
+2.04447222151364
+32
+-1.11022302462516e-16
+13
+2.04447222151364
+23
+2.04447222151364
+33
+-1.11022302462516e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+-1.11022302462516e-16
+11
+2.50226795687895
+21
+3.0
+31
+1.19348975147204e-15
+12
+3.0
+22
+3.0
+32
+1.19348975147204e-15
+13
+3.0
+23
+3.0
+33
+1.19348975147204e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+3.0
+30
+1.19348975147204e-15
+11
+2.50226795687895
+21
+3.0
+31
+1.19348975147204e-15
+12
+2.795
+22
+3.0
+32
+-1.16573417585641e-15
+13
+2.795
+23
+3.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.79836855106949
+30
+1.19348975147204e-15
+11
+2.26629223953759
+21
+1.57547319805376
+31
+-1.11022302462516e-16
+12
+2.25520466591049
+22
+1.65021954795242
+32
+-1.2490009027033e-15
+13
+2.25520466591049
+23
+1.65021954795242
+33
+-1.2490009027033e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.26629223953759
+20
+1.57547319805376
+30
+-1.11022302462516e-16
+11
+3.0
+21
+1.79836855106949
+31
+1.19348975147204e-15
+12
+2.27
+22
+1.5
+32
+-2.35922392732846e-16
+13
+2.27
+23
+1.5
+33
+-2.35922392732846e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+-2.35922392732846e-16
+11
+3.0
+21
+1.79836855106949
+31
+1.19348975147204e-15
+12
+3.0
+22
+1.5
+32
+1.19348975147204e-15
+13
+3.0
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+6.93889390390723e-16
+11
+1.34978045204758
+21
+2.25520466591049
+31
+-4.02455846426619e-16
+12
+1.20163144893051
+22
+3.0
+32
+1.19348975147204e-15
+13
+1.20163144893051
+23
+3.0
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.34978045204758
+20
+2.25520466591049
+30
+-4.02455846426619e-16
+11
+1.5
+21
+3.0
+31
+6.93889390390723e-16
+12
+1.42452680194624
+22
+2.26629223953759
+32
+-6.93889390390723e-16
+13
+1.42452680194624
+23
+2.26629223953759
+33
+-6.93889390390723e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+2.26629223953759
+30
+-6.93889390390723e-16
+11
+1.5
+21
+3.0
+31
+6.93889390390723e-16
+12
+1.5
+22
+2.27
+32
+6.93889390390723e-16
+13
+1.5
+23
+2.27
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+2.04447222151364
+30
+1.20736753927986e-15
+11
+1.33226762955019e-15
+21
+2.50226795687895
+31
+1.19348975147204e-15
+12
+1.19348975147204e-15
+22
+3.0
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+3.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+2.50226795687895
+30
+1.19348975147204e-15
+11
+0.955527778486359
+21
+2.04447222151364
+31
+1.20736753927986e-15
+12
+0.904781950910692
+22
+1.98848282880601
+32
+1.31838984174237e-15
+13
+0.904781950910692
+23
+1.98848282880601
+33
+1.31838984174237e-15
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+2.50226795687895
+30
+1.19348975147204e-15
+11
+0.904781950910692
+21
+1.98848282880601
+31
+1.31838984174237e-15
+12
+0.859768398527041
+22
+1.92778907942509
+32
+8.74300631892311e-16
+13
+0.859768398527041
+23
+1.92778907942509
+33
+8.74300631892311e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.09521804908931
+20
+1.01151717119399
+30
+7.63278329429795e-16
+11
+3.0
+21
+0.0
+31
+1.19348975147204e-15
+12
+2.04447222151364
+22
+0.955527778486358
+32
+-1.11022302462516e-16
+13
+2.04447222151364
+23
+0.955527778486358
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.0
+30
+1.19348975147204e-15
+11
+2.09521804908931
+21
+1.01151717119399
+31
+7.63278329429795e-16
+12
+2.14023160147296
+22
+1.07221092057491
+32
+-9.71445146547012e-16
+13
+2.14023160147296
+23
+1.07221092057491
+33
+-9.71445146547012e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.0
+30
+1.19348975147204e-15
+11
+2.14023160147296
+21
+1.07221092057491
+31
+-9.71445146547012e-16
+12
+3.0
+22
+0.497732043121051
+32
+1.19348975147204e-15
+13
+3.0
+23
+0.497732043121051
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+5.55111512312578e-17
+30
+0.826320343559641
+11
+1.5
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+0.204999999999999
+13
+1.5
+23
+0.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.12132034355964
+21
+5.55111512312578e-17
+31
+0.826320343559641
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+2.17367965644036
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+2.17367965644036
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.72351920148594
+21
+0.763155941486199
+31
+3.0
+12
+1.65021954795242
+22
+0.744795334089513
+32
+3.0
+13
+1.65021954795242
+23
+0.744795334089513
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.72351920148594
+20
+0.763155941486199
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+3.0
+13
+1.79466624292112
+23
+0.788612759966309
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+2.12132034355964
+22
+1.11022302462516e-16
+32
+3.0
+13
+2.12132034355964
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440357
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+0.878679656440357
+22
+3.0
+32
+2.795
+13
+0.878679656440357
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.878679656440357
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+2
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+3.0
+11
+1.07221092057491
+21
+0.85976839852704
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.07221092057491
+20
+0.85976839852704
+30
+3.0
+11
+0.878679656440356
+21
+0.0
+31
+3.0
+12
+1.13702451264398
+22
+0.820920626451767
+32
+3.0
+13
+1.13702451264398
+23
+0.820920626451767
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+0.820920626451767
+30
+3.0
+11
+0.878679656440356
+21
+0.0
+31
+3.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+3.0
+13
+1.20533375707888
+23
+0.788612759966309
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.79836855106949
+30
+1.19348975147204e-15
+11
+3.0
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+1.19348975147204e-15
+13
+3.0
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+1.19348975147204e-15
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+1.19348975147204e-15
+12
+3.0
+22
+2.12132034355964
+32
+1.19348975147204e-15
+13
+3.0
+23
+2.12132034355964
+33
+1.19348975147204e-15
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+3.0
+21
+2.12132034355964
+31
+1.19348975147204e-15
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+1.20163144893051
+30
+3.0
+11
+1.19348975147204e-15
+21
+0.878679656440358
+31
+-1.16573417585641e-15
+12
+2.77555756156289e-16
+22
+0.878679656440358
+32
+3.0
+13
+2.77555756156289e-16
+23
+0.878679656440358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.878679656440358
+30
+-1.16573417585641e-15
+11
+2.77555756156289e-16
+21
+1.20163144893051
+31
+3.0
+12
+1.33226762955019e-15
+22
+1.20163144893051
+32
+1.19348975147204e-15
+13
+1.33226762955019e-15
+23
+1.20163144893051
+33
+1.19348975147204e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+1.20163144893051
+30
+1.19348975147204e-15
+11
+2.77555756156289e-16
+21
+1.20163144893051
+31
+3.0
+12
+2.77555756156289e-16
+22
+1.5
+32
+3.0
+13
+2.77555756156289e-16
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+1.20163144893051
+30
+1.19348975147204e-15
+11
+2.77555756156289e-16
+21
+1.5
+31
+3.0
+12
+1.19348975147204e-15
+22
+1.5
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+1.5
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.2368440585138
+20
+1.72351920148594
+30
+3.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+3.0
+13
+2.21138724003369
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.2368440585138
+21
+1.72351920148594
+31
+3.0
+12
+2.25520466591049
+22
+1.65021954795242
+32
+3.0
+13
+2.25520466591049
+23
+1.65021954795242
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.25520466591049
+21
+1.65021954795242
+31
+3.0
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+0.733707760462408
+30
+1.38777878078145e-16
+11
+1.5
+21
+0.0
+31
+6.93889390390723e-16
+12
+1.5
+22
+0.73
+32
+6.93889390390723e-16
+13
+1.5
+23
+0.73
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+6.93889390390723e-16
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.38777878078145e-16
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+1.19348975147204e-15
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+1.19348975147204e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+1.19348975147204e-15
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.38777878078145e-16
+12
+1.65021954795242
+22
+0.744795334089513
+32
+-3.60822483003176e-16
+13
+1.65021954795242
+23
+0.744795334089513
+33
+-3.60822483003176e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+2.17907937354823
+21
+1.13702451264398
+31
+3.0
+12
+2.14023160147296
+22
+1.07221092057491
+32
+3.0
+13
+2.14023160147296
+23
+1.07221092057491
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.17907937354823
+20
+1.13702451264398
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+3.0
+13
+2.21138724003369
+23
+1.20533375707888
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+3.0
+22
+0.878679656440356
+32
+3.0
+13
+3.0
+23
+0.878679656440356
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.788612759966309
+20
+1.20533375707888
+30
+3.0
+11
+2.77555756156289e-16
+21
+1.20163144893051
+31
+3.0
+12
+2.77555756156289e-16
+22
+0.878679656440358
+32
+3.0
+13
+2.77555756156289e-16
+23
+0.878679656440358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+1.20163144893051
+30
+3.0
+11
+0.788612759966309
+21
+1.20533375707888
+31
+3.0
+12
+0.763155941486199
+22
+1.27648079851406
+32
+3.0
+13
+0.763155941486199
+23
+1.27648079851406
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+1.20163144893051
+30
+3.0
+11
+0.763155941486199
+21
+1.27648079851406
+31
+3.0
+12
+0.744795334089513
+22
+1.34978045204758
+32
+3.0
+13
+0.744795334089513
+23
+1.34978045204758
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.73
+20
+1.5
+30
+7.07767178198537e-16
+11
+1.33226762955019e-15
+21
+1.20163144893051
+31
+1.19348975147204e-15
+12
+1.19348975147204e-15
+22
+1.5
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+1.5
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+1.20163144893051
+30
+1.19348975147204e-15
+11
+0.73
+21
+1.5
+31
+7.07767178198537e-16
+12
+0.733707760462409
+22
+1.42452680194624
+32
+4.16333634234434e-16
+13
+0.733707760462409
+23
+1.42452680194624
+33
+4.16333634234434e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+1.20163144893051
+30
+1.19348975147204e-15
+11
+0.733707760462409
+21
+1.42452680194624
+31
+4.16333634234434e-16
+12
+0.744795334089513
+22
+1.34978045204758
+32
+4.71844785465692e-16
+13
+0.744795334089513
+23
+1.34978045204758
+33
+4.71844785465692e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+2.795
+11
+1.19348975147204e-15
+21
+0.0
+31
+1.5
+12
+0.205000000000001
+22
+0.0
+32
+1.5
+13
+0.205000000000001
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+1.5
+11
+0.205000000000001
+21
+0.0
+31
+2.795
+12
+1.19348975147204e-15
+22
+0.0
+32
+2.795
+13
+1.19348975147204e-15
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+2.50226795687895
+30
+3.0
+11
+1.19348975147204e-15
+21
+2.12132034355964
+31
+-1.16573417585641e-15
+12
+2.77555756156289e-16
+22
+2.12132034355964
+32
+3.0
+13
+2.77555756156289e-16
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+2.12132034355964
+30
+-1.16573417585641e-15
+11
+2.77555756156289e-16
+21
+2.50226795687895
+31
+3.0
+12
+1.33226762955019e-15
+22
+2.50226795687895
+32
+1.19348975147204e-15
+13
+1.33226762955019e-15
+23
+2.50226795687895
+33
+1.19348975147204e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+2.50226795687895
+30
+1.19348975147204e-15
+11
+2.77555756156289e-16
+21
+2.50226795687895
+31
+3.0
+12
+2.77555756156289e-16
+22
+3.0
+32
+3.0
+13
+2.77555756156289e-16
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+2.50226795687895
+30
+1.19348975147204e-15
+11
+2.77555756156289e-16
+21
+3.0
+31
+3.0
+12
+1.19348975147204e-15
+22
+3.0
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+3.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+2.14023160147296
+30
+-1.02695629777827e-15
+11
+2.04447222151364
+21
+2.04447222151364
+31
+-1.11022302462516e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+-1.11022302462516e-16
+11
+1.92778907942509
+21
+2.14023160147296
+31
+-1.02695629777827e-15
+12
+1.98848282880601
+22
+2.09521804908931
+32
+-8.46545056276682e-16
+13
+1.98848282880601
+23
+2.09521804908931
+33
+-8.46545056276682e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+2.21138724003369
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+0.878679656440357
+22
+3.0
+32
+3.0
+13
+0.878679656440357
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.20533375707888
+21
+2.21138724003369
+31
+3.0
+12
+1.27648079851406
+22
+2.2368440585138
+32
+3.0
+13
+1.27648079851406
+23
+2.2368440585138
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.27648079851406
+21
+2.2368440585138
+31
+3.0
+12
+1.34978045204758
+22
+2.25520466591049
+32
+3.0
+13
+1.34978045204758
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.497732043121051
+30
+1.19348975147204e-15
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+1.19348975147204e-15
+13
+3.0
+23
+0.0
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.0
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+1.19348975147204e-15
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+1.19348975147204e-15
+12
+3.0
+22
+0.878679656440356
+32
+1.19348975147204e-15
+13
+3.0
+23
+0.878679656440356
+33
+1.19348975147204e-15
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+0.878679656440356
+31
+1.19348975147204e-15
+12
+3.0
+22
+0.878679656440356
+32
+3.0
+13
+3.0
+23
+0.878679656440356
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+0.826320343559642
+11
+2.795
+21
+3.0
+31
+0.204999999999999
+12
+2.12132034355964
+22
+3.0
+32
+0.204999999999999
+13
+2.12132034355964
+23
+3.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+0.204999999999999
+11
+2.12132034355964
+21
+3.0
+31
+0.826320343559642
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+2.14023160147296
+30
+3.0
+11
+1.86297548735602
+21
+2.17907937354823
+31
+1.5
+12
+1.92778907942509
+22
+2.14023160147296
+32
+1.5
+13
+1.92778907942509
+23
+2.14023160147296
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.86297548735602
+20
+2.17907937354823
+30
+1.5
+11
+1.92778907942509
+21
+2.14023160147296
+31
+3.0
+12
+1.86297548735602
+22
+2.17907937354823
+32
+3.0
+13
+1.86297548735602
+23
+2.17907937354823
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+3.0
+11
+2.2368440585138
+21
+1.72351920148594
+31
+1.5
+12
+2.2368440585138
+22
+1.72351920148594
+32
+3.0
+13
+2.2368440585138
+23
+1.72351920148594
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.2368440585138
+20
+1.72351920148594
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+3.0
+12
+2.21138724003369
+22
+1.79466624292112
+32
+1.5
+13
+2.21138724003369
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+2.04447222151364
+30
+1.5
+11
+0.904781950910692
+21
+1.98848282880601
+31
+3.0
+12
+0.904781950910694
+22
+1.98848282880601
+32
+1.5
+13
+0.904781950910694
+23
+1.98848282880601
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.904781950910692
+20
+1.98848282880601
+30
+3.0
+11
+0.955527778486359
+21
+2.04447222151364
+31
+1.5
+12
+0.955527778486358
+22
+2.04447222151364
+32
+3.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.26629223953759
+20
+1.57547319805376
+30
+3.0
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.27
+22
+1.5
+32
+3.0
+13
+2.27
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.26629223953759
+21
+1.57547319805376
+31
+3.0
+12
+2.26629223953759
+22
+1.57547319805376
+32
+1.5
+13
+2.26629223953759
+23
+1.57547319805376
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.07221092057491
+30
+3.0
+11
+2.09521804908931
+21
+1.01151717119399
+31
+1.5
+12
+2.09521804908931
+22
+1.01151717119399
+32
+3.0
+13
+2.09521804908931
+23
+1.01151717119399
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.09521804908931
+20
+1.01151717119399
+30
+1.5
+11
+2.14023160147296
+21
+1.07221092057491
+31
+3.0
+12
+2.14023160147296
+22
+1.07221092057491
+32
+1.5
+13
+2.14023160147296
+23
+1.07221092057491
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.859768398527041
+20
+1.92778907942509
+30
+1.5
+11
+0.820920626451767
+21
+1.86297548735602
+31
+3.0
+12
+0.820920626451766
+22
+1.86297548735602
+32
+1.5
+13
+0.820920626451766
+23
+1.86297548735602
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451767
+20
+1.86297548735602
+30
+3.0
+11
+0.859768398527041
+21
+1.92778907942509
+31
+1.5
+12
+0.859768398527041
+22
+1.92778907942509
+32
+3.0
+13
+0.859768398527041
+23
+1.92778907942509
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.86297548735602
+20
+2.17907937354823
+30
+1.5
+11
+1.79466624292112
+21
+2.21138724003369
+31
+3.0
+12
+1.79466624292112
+22
+2.21138724003369
+32
+1.5
+13
+1.79466624292112
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+2.21138724003369
+30
+3.0
+11
+1.86297548735602
+21
+2.17907937354823
+31
+1.5
+12
+1.86297548735602
+22
+2.17907937354823
+32
+3.0
+13
+1.86297548735602
+23
+2.17907937354823
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.78861275996631
+20
+1.79466624292112
+30
+2.77555756156289e-17
+11
+2.77555756156289e-16
+21
+2.12132034355964
+31
+3.0
+12
+1.19348975147204e-15
+22
+2.12132034355964
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+2.12132034355964
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+2.12132034355964
+30
+3.0
+11
+0.78861275996631
+21
+1.79466624292112
+31
+2.77555756156289e-17
+12
+0.78861275996631
+22
+1.79466624292112
+32
+1.5
+13
+0.78861275996631
+23
+1.79466624292112
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+2.12132034355964
+30
+3.0
+11
+0.78861275996631
+21
+1.79466624292112
+31
+1.5
+12
+0.788612759966309
+22
+1.79466624292112
+32
+3.0
+13
+0.788612759966309
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851406
+20
+0.763155941486199
+30
+1.1518563880486e-15
+11
+1.20533375707888
+21
+0.788612759966309
+31
+1.5
+12
+1.20533375707888
+22
+0.788612759966309
+32
+2.63677968348475e-16
+13
+1.20533375707888
+23
+0.788612759966309
+33
+2.63677968348475e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+0.788612759966309
+30
+1.5
+11
+1.27648079851406
+21
+0.763155941486199
+31
+1.1518563880486e-15
+12
+1.27648079851406
+22
+0.763155941486199
+32
+1.5
+13
+1.27648079851406
+23
+0.763155941486199
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.73
+30
+3.0
+11
+1.5
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.5
+21
+0.73
+31
+3.0
+12
+1.5
+22
+0.0
+32
+0.204999999999999
+13
+1.5
+23
+0.0
+33
+0.204999999999999
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+0.204999999999999
+11
+1.5
+21
+0.73
+31
+3.0
+12
+1.5
+22
+0.0
+32
+6.93889390390723e-16
+13
+1.5
+23
+0.0
+33
+6.93889390390723e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+6.93889390390723e-16
+11
+1.5
+21
+0.73
+31
+3.0
+12
+1.5
+22
+0.73
+32
+6.93889390390723e-16
+13
+1.5
+23
+0.73
+33
+6.93889390390723e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.73
+30
+6.93889390390723e-16
+11
+1.5
+21
+0.73
+31
+3.0
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.09521804908931
+20
+1.98848282880601
+30
+7.63278329429795e-16
+11
+2.14023160147296
+21
+1.92778907942509
+31
+1.5
+12
+2.14023160147296
+22
+1.92778907942509
+32
+-9.71445146547012e-16
+13
+2.14023160147296
+23
+1.92778907942509
+33
+-9.71445146547012e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.92778907942509
+30
+1.5
+11
+2.09521804908931
+21
+1.98848282880601
+31
+7.63278329429795e-16
+12
+2.09521804908931
+22
+1.98848282880601
+32
+1.5
+13
+2.09521804908931
+23
+1.98848282880601
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+2.26629223953759
+30
+1.38777878078145e-16
+11
+1.65021954795242
+21
+2.25520466591049
+31
+1.5
+12
+1.65021954795242
+22
+2.25520466591049
+32
+-3.60822483003176e-16
+13
+1.65021954795242
+23
+2.25520466591049
+33
+-3.60822483003176e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.65021954795242
+20
+2.25520466591049
+30
+1.5
+11
+1.57547319805376
+21
+2.26629223953759
+31
+1.38777878078145e-16
+12
+1.57547319805376
+22
+2.26629223953759
+32
+1.5
+13
+1.57547319805376
+23
+2.26629223953759
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+3.0
+21
+2.12132034355964
+31
+1.19348975147204e-15
+12
+2.21138724003369
+22
+1.79466624292112
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.79466624292112
+33
+-6.66133814775094e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+2.12132034355964
+30
+1.19348975147204e-15
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+2.21138724003369
+22
+1.79466624292112
+32
+3.0
+13
+2.21138724003369
+23
+1.79466624292112
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.07221092057491
+20
+2.14023160147296
+30
+1.5
+11
+1.13702451264398
+21
+2.17907937354823
+31
+8.18789480661053e-16
+12
+1.07221092057491
+22
+2.14023160147296
+32
+3.19189119579733e-16
+13
+1.07221092057491
+23
+2.14023160147296
+33
+3.19189119579733e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+2.17907937354823
+30
+8.18789480661053e-16
+11
+1.07221092057491
+21
+2.14023160147296
+31
+1.5
+12
+1.13702451264398
+22
+2.17907937354823
+32
+1.5
+13
+1.13702451264398
+23
+2.17907937354823
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.86297548735602
+20
+0.820920626451767
+30
+1.58206781009085e-15
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.79466624292112
+22
+0.788612759966309
+32
+-1.38777878078145e-16
+13
+1.79466624292112
+23
+0.788612759966309
+33
+-1.38777878078145e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+1.86297548735602
+21
+0.820920626451767
+31
+1.58206781009085e-15
+12
+1.86297548735602
+22
+0.820920626451767
+32
+1.5
+13
+1.86297548735602
+23
+0.820920626451767
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.788612759966309
+20
+1.20533375707888
+30
+1.5
+11
+0.820920626451768
+21
+1.13702451264398
+31
+1.65145674912992e-15
+12
+0.820920626451766
+22
+1.13702451264398
+32
+1.5
+13
+0.820920626451766
+23
+1.13702451264398
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451768
+20
+1.13702451264398
+30
+1.65145674912992e-15
+11
+0.788612759966309
+21
+1.20533375707888
+31
+1.5
+12
+0.78861275996631
+22
+1.20533375707888
+32
+2.77555756156289e-17
+13
+0.78861275996631
+23
+1.20533375707888
+33
+2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+2.04447222151364
+30
+1.20736753927986e-15
+11
+1.01151717119399
+21
+2.09521804908931
+31
+1.5
+12
+1.01151717119399
+22
+2.09521804908931
+32
+6.38378239159465e-16
+13
+1.01151717119399
+23
+2.09521804908931
+33
+6.38378239159465e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+2.09521804908931
+30
+1.5
+11
+0.955527778486359
+21
+2.04447222151364
+31
+1.20736753927986e-15
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+2.27
+30
+6.93889390390723e-16
+11
+1.57547319805376
+21
+2.26629223953759
+31
+1.5
+12
+1.57547319805376
+22
+2.26629223953759
+32
+1.38777878078145e-16
+13
+1.57547319805376
+23
+2.26629223953759
+33
+1.38777878078145e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+2.26629223953759
+30
+1.5
+11
+1.5
+21
+2.27
+31
+6.93889390390723e-16
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+2.17907937354823
+30
+8.18789480661053e-16
+11
+1.20533375707888
+21
+2.21138724003369
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+-5.68989300120393e-16
+13
+1.20533375707888
+23
+2.21138724003369
+33
+-5.68989300120393e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+2.21138724003369
+30
+1.5
+11
+1.13702451264398
+21
+2.17907937354823
+31
+8.18789480661053e-16
+12
+1.13702451264398
+22
+2.17907937354823
+32
+1.5
+13
+1.13702451264398
+23
+2.17907937354823
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+0.85976839852704
+30
+1.5
+11
+1.86297548735602
+21
+0.820920626451767
+31
+1.58206781009085e-15
+12
+1.92778907942509
+22
+0.85976839852704
+32
+-1.02695629777827e-15
+13
+1.92778907942509
+23
+0.85976839852704
+33
+-1.02695629777827e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.86297548735602
+20
+0.820920626451767
+30
+1.58206781009085e-15
+11
+1.92778907942509
+21
+0.85976839852704
+31
+1.5
+12
+1.86297548735602
+22
+0.820920626451767
+32
+1.5
+13
+1.86297548735602
+23
+0.820920626451767
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+2.09521804908931
+30
+6.38378239159465e-16
+11
+1.07221092057491
+21
+2.14023160147296
+31
+1.5
+12
+1.07221092057491
+22
+2.14023160147296
+32
+3.19189119579733e-16
+13
+1.07221092057491
+23
+2.14023160147296
+33
+3.19189119579733e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.07221092057491
+20
+2.14023160147296
+30
+1.5
+11
+1.01151717119399
+21
+2.09521804908931
+31
+6.38378239159465e-16
+12
+1.01151717119399
+22
+2.09521804908931
+32
+1.5
+13
+1.01151717119399
+23
+2.09521804908931
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.17907937354823
+20
+1.13702451264398
+30
+3.0
+11
+2.14023160147296
+21
+1.07221092057491
+31
+1.5
+12
+2.14023160147296
+22
+1.07221092057491
+32
+3.0
+13
+2.14023160147296
+23
+1.07221092057491
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.07221092057491
+30
+1.5
+11
+2.17907937354823
+21
+1.13702451264398
+31
+3.0
+12
+2.17907937354823
+22
+1.13702451264398
+32
+1.5
+13
+2.17907937354823
+23
+1.13702451264398
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.859768398527041
+20
+1.07221092057491
+30
+1.5
+11
+0.904781950910692
+21
+1.01151717119399
+31
+1.31838984174237e-15
+12
+0.904781950910694
+22
+1.01151717119399
+32
+1.5
+13
+0.904781950910694
+23
+1.01151717119399
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.904781950910692
+20
+1.01151717119399
+30
+1.31838984174237e-15
+11
+0.859768398527041
+21
+1.07221092057491
+31
+1.5
+12
+0.859768398527041
+22
+1.07221092057491
+32
+8.74300631892311e-16
+13
+0.859768398527041
+23
+1.07221092057491
+33
+8.74300631892311e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+2.26629223953759
+30
+3.0
+11
+1.34978045204758
+21
+2.25520466591049
+31
+1.5
+12
+1.42452680194624
+22
+2.26629223953759
+32
+1.5
+13
+1.42452680194624
+23
+2.26629223953759
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.34978045204758
+20
+2.25520466591049
+30
+1.5
+11
+1.42452680194624
+21
+2.26629223953759
+31
+3.0
+12
+1.34978045204758
+22
+2.25520466591049
+32
+3.0
+13
+1.34978045204758
+23
+2.25520466591049
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.09521804908931
+20
+1.01151717119399
+30
+3.0
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+2.04447222151364
+22
+0.955527778486358
+32
+3.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+2.09521804908931
+21
+1.01151717119399
+31
+3.0
+12
+2.09521804908931
+22
+1.01151717119399
+32
+1.5
+13
+2.09521804908931
+23
+1.01151717119399
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.2368440585138
+20
+1.72351920148594
+30
+3.0
+11
+2.25520466591049
+21
+1.65021954795242
+31
+1.5
+12
+2.25520466591049
+22
+1.65021954795242
+32
+3.0
+13
+2.25520466591049
+23
+1.65021954795242
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.65021954795242
+30
+1.5
+11
+2.2368440585138
+21
+1.72351920148594
+31
+3.0
+12
+2.2368440585138
+22
+1.72351920148594
+32
+1.5
+13
+2.2368440585138
+23
+1.72351920148594
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+0.820920626451767
+30
+1.5
+11
+1.20533375707888
+21
+0.788612759966309
+31
+3.0
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+0.788612759966309
+30
+3.0
+11
+1.13702451264398
+21
+0.820920626451767
+31
+1.5
+12
+1.13702451264398
+22
+0.820920626451767
+32
+3.0
+13
+1.13702451264398
+23
+0.820920626451767
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.72351920148594
+20
+2.2368440585138
+30
+-5.27355936696949e-16
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+-1.4432899320127e-15
+13
+1.79466624292112
+23
+2.21138724003369
+33
+-1.4432899320127e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+1.72351920148594
+21
+2.2368440585138
+31
+-5.27355936696949e-16
+12
+1.72351920148594
+22
+2.2368440585138
+32
+1.5
+13
+1.72351920148594
+23
+2.2368440585138
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+0.955527778486358
+30
+1.5
+11
+1.01151717119399
+21
+0.904781950910693
+31
+3.0
+12
+1.01151717119399
+22
+0.904781950910693
+32
+1.5
+13
+1.01151717119399
+23
+0.904781950910693
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+0.904781950910693
+30
+3.0
+11
+0.955527778486359
+21
+0.955527778486358
+31
+1.5
+12
+0.955527778486358
+22
+0.955527778486358
+32
+3.0
+13
+0.955527778486358
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+6.93889390390723e-16
+11
+1.5
+21
+2.27
+31
+1.5
+12
+1.5
+22
+2.27
+32
+6.93889390390723e-16
+13
+1.5
+23
+2.27
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+2.27
+30
+1.5
+11
+1.5
+21
+3.0
+31
+6.93889390390723e-16
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+2.27
+30
+3.0
+11
+1.5
+21
+3.0
+31
+6.93889390390723e-16
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+6.93889390390723e-16
+12
+1.5
+22
+3.0
+32
+0.204999999999999
+13
+1.5
+23
+3.0
+33
+0.204999999999999
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+0.204999999999999
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.763155941486199
+20
+1.72351920148594
+30
+1.5
+11
+0.744795334089513
+21
+1.65021954795242
+31
+4.71844785465692e-16
+12
+0.744795334089513
+22
+1.65021954795242
+32
+1.5
+13
+0.744795334089513
+23
+1.65021954795242
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.744795334089513
+20
+1.65021954795242
+30
+4.71844785465692e-16
+11
+0.763155941486199
+21
+1.72351920148594
+31
+1.5
+12
+0.7631559414862
+22
+1.72351920148594
+32
+-2.77555756156289e-17
+13
+0.7631559414862
+23
+1.72351920148594
+33
+-2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451766
+20
+1.86297548735602
+30
+1.5
+11
+0.788612759966309
+21
+1.79466624292112
+31
+3.0
+12
+0.78861275996631
+22
+1.79466624292112
+32
+1.5
+13
+0.78861275996631
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.788612759966309
+20
+1.79466624292112
+30
+3.0
+11
+0.820920626451766
+21
+1.86297548735602
+31
+1.5
+12
+0.820920626451767
+22
+1.86297548735602
+32
+3.0
+13
+0.820920626451767
+23
+1.86297548735602
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.98848282880601
+20
+2.09521804908931
+30
+1.5
+11
+1.92778907942509
+21
+2.14023160147296
+31
+3.0
+12
+1.92778907942509
+22
+2.14023160147296
+32
+1.5
+13
+1.92778907942509
+23
+2.14023160147296
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+2.14023160147296
+30
+3.0
+11
+1.98848282880601
+21
+2.09521804908931
+31
+1.5
+12
+1.98848282880601
+22
+2.09521804908931
+32
+3.0
+13
+1.98848282880601
+23
+2.09521804908931
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486358
+20
+0.955527778486358
+30
+3.0
+11
+1.19348975147204e-15
+21
+0.0
+31
+2.795
+12
+2.77555756156289e-16
+22
+0.0
+32
+3.0
+13
+2.77555756156289e-16
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+2.795
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+1.19348975147204e-15
+22
+0.0
+32
+1.5
+13
+1.19348975147204e-15
+23
+0.0
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+1.5
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+1.19348975147204e-15
+22
+0.0
+32
+0.204999999999999
+13
+1.19348975147204e-15
+23
+0.0
+33
+0.204999999999999
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+0.204999999999999
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+1.19348975147204e-15
+22
+0.0
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+0.0
+33
+-1.16573417585641e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+-1.16573417585641e-15
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.20736753927986e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+0.955527778486358
+30
+1.20736753927986e-15
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.0
+30
+1.19348975147204e-15
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+2.04447222151364
+22
+0.955527778486358
+32
+-1.11022302462516e-16
+13
+2.04447222151364
+23
+0.955527778486358
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+3.0
+21
+0.0
+31
+1.19348975147204e-15
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.04447222151364
+22
+0.955527778486358
+32
+3.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+1.11022302462516e-16
+30
+-6.80011602582908e-16
+11
+2.12132034355964
+21
+5.55111512312578e-17
+31
+0.826320343559641
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+0.204999999999999
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+5.55111512312578e-17
+30
+0.826320343559641
+11
+2.12132034355964
+21
+1.11022302462516e-16
+31
+-6.80011602582908e-16
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+2.17367965644036
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+2.17367965644036
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+5.55111512312578e-17
+30
+2.17367965644036
+11
+2.12132034355964
+21
+1.11022302462516e-16
+31
+-6.80011602582908e-16
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+2.795
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+5.55111512312578e-17
+30
+2.795
+11
+2.12132034355964
+21
+1.11022302462516e-16
+31
+-6.80011602582908e-16
+12
+2.12132034355964
+22
+1.11022302462516e-16
+32
+3.0
+13
+2.12132034355964
+23
+1.11022302462516e-16
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+1.11022302462516e-16
+30
+3.0
+11
+2.12132034355964
+21
+1.11022302462516e-16
+31
+-6.80011602582908e-16
+12
+1.79466624292112
+22
+0.788612759966309
+32
+-1.38777878078145e-16
+13
+1.79466624292112
+23
+0.788612759966309
+33
+-1.38777878078145e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+-1.38777878078145e-16
+12
+1.79466624292112
+22
+0.788612759966309
+32
+3.0
+13
+1.79466624292112
+23
+0.788612759966309
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+3.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+-1.38777878078145e-16
+12
+1.79466624292112
+22
+0.788612759966309
+32
+1.5
+13
+1.79466624292112
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.26629223953759
+20
+1.42452680194624
+30
+-1.11022302462516e-16
+11
+2.25520466591049
+21
+1.34978045204758
+31
+1.5
+12
+2.25520466591049
+22
+1.34978045204758
+32
+-1.2490009027033e-15
+13
+2.25520466591049
+23
+1.34978045204758
+33
+-1.2490009027033e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.34978045204758
+30
+1.5
+11
+2.26629223953759
+21
+1.42452680194624
+31
+-1.11022302462516e-16
+12
+2.26629223953759
+22
+1.42452680194624
+32
+1.5
+13
+2.26629223953759
+23
+1.42452680194624
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+-2.35922392732846e-16
+11
+2.26629223953759
+21
+1.42452680194624
+31
+1.5
+12
+2.26629223953759
+22
+1.42452680194624
+32
+-1.11022302462516e-16
+13
+2.26629223953759
+23
+1.42452680194624
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.26629223953759
+20
+1.42452680194624
+30
+1.5
+11
+2.27
+21
+1.5
+31
+-2.35922392732846e-16
+12
+2.27
+22
+1.5
+32
+1.5
+13
+2.27
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.34978045204758
+30
+-1.2490009027033e-15
+11
+2.2368440585138
+21
+1.27648079851406
+31
+1.5
+12
+2.2368440585138
+22
+1.27648079851406
+32
+-1.06858966120171e-15
+13
+2.2368440585138
+23
+1.27648079851406
+33
+-1.06858966120171e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.2368440585138
+20
+1.27648079851406
+30
+1.5
+11
+2.25520466591049
+21
+1.34978045204758
+31
+-1.2490009027033e-15
+12
+2.25520466591049
+22
+1.34978045204758
+32
+1.5
+13
+2.25520466591049
+23
+1.34978045204758
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+2.09521804908931
+22
+1.01151717119399
+32
+1.5
+13
+2.09521804908931
+23
+1.01151717119399
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.09521804908931
+21
+1.01151717119399
+31
+1.5
+12
+2.14023160147296
+22
+1.07221092057491
+32
+1.5
+13
+2.14023160147296
+23
+1.07221092057491
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.14023160147296
+21
+1.07221092057491
+31
+1.5
+12
+2.17907937354823
+22
+1.13702451264398
+32
+1.5
+13
+2.17907937354823
+23
+1.13702451264398
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.73370776046241
+20
+1.42452680194624
+30
+1.5
+11
+0.744795334089513
+21
+1.34978045204758
+31
+3.0
+12
+0.744795334089513
+22
+1.34978045204758
+32
+1.5
+13
+0.744795334089513
+23
+1.34978045204758
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.744795334089513
+20
+1.34978045204758
+30
+3.0
+11
+0.73370776046241
+21
+1.42452680194624
+31
+1.5
+12
+0.733707760462408
+22
+1.42452680194624
+32
+3.0
+13
+0.733707760462408
+23
+1.42452680194624
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451766
+20
+1.13702451264398
+30
+1.5
+11
+0.859768398527041
+21
+1.07221092057491
+31
+8.74300631892311e-16
+12
+0.859768398527041
+22
+1.07221092057491
+32
+1.5
+13
+0.859768398527041
+23
+1.07221092057491
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.859768398527041
+20
+1.07221092057491
+30
+8.74300631892311e-16
+11
+0.820920626451766
+21
+1.13702451264398
+31
+1.5
+12
+0.820920626451768
+22
+1.13702451264398
+32
+1.65145674912992e-15
+13
+0.820920626451768
+23
+1.13702451264398
+33
+1.65145674912992e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440357
+20
+3.0
+30
+3.0
+11
+1.20533375707888
+21
+2.21138724003369
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+3.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+2.21138724003369
+30
+1.5
+11
+0.878679656440357
+21
+3.0
+31
+3.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+-5.68989300120393e-16
+13
+1.20533375707888
+23
+2.21138724003369
+33
+-5.68989300120393e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+2.21138724003369
+30
+-5.68989300120393e-16
+11
+0.878679656440357
+21
+3.0
+31
+3.0
+12
+0.878679656440358
+22
+3.0
+32
+9.29811783123569e-16
+13
+0.878679656440358
+23
+3.0
+33
+9.29811783123569e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440358
+20
+3.0
+30
+9.29811783123569e-16
+11
+0.878679656440357
+21
+3.0
+31
+3.0
+12
+0.878679656440357
+22
+3.0
+32
+2.795
+13
+0.878679656440357
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440358
+20
+3.0
+30
+9.29811783123569e-16
+11
+0.878679656440357
+21
+3.0
+31
+2.795
+12
+0.878679656440357
+22
+3.0
+32
+2.17367965644036
+13
+0.878679656440357
+23
+3.0
+33
+2.17367965644036
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440358
+20
+3.0
+30
+9.29811783123569e-16
+11
+0.878679656440357
+21
+3.0
+31
+2.17367965644036
+12
+0.878679656440358
+22
+3.0
+32
+0.826320343559643
+13
+0.878679656440358
+23
+3.0
+33
+0.826320343559643
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440358
+20
+3.0
+30
+9.29811783123569e-16
+11
+0.878679656440358
+21
+3.0
+31
+0.826320343559643
+12
+0.878679656440358
+22
+3.0
+32
+0.204999999999999
+13
+0.878679656440358
+23
+3.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+3.0
+21
+0.878679656440356
+31
+1.19348975147204e-15
+12
+2.21138724003369
+22
+1.20533375707888
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.20533375707888
+33
+-6.66133814775094e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.878679656440356
+30
+1.19348975147204e-15
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+3.0
+22
+0.878679656440356
+32
+3.0
+13
+3.0
+23
+0.878679656440356
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.878679656440356
+30
+3.0
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+2.21138724003369
+22
+1.20533375707888
+32
+3.0
+13
+2.21138724003369
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.5
+30
+1.19348975147204e-15
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.27
+22
+1.5
+32
+-2.35922392732846e-16
+13
+2.27
+23
+1.5
+33
+-2.35922392732846e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.5
+31
+1.19348975147204e-15
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.5
+31
+3.0
+12
+2.27
+22
+1.5
+32
+3.0
+13
+2.27
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.78861275996631
+20
+1.20533375707888
+30
+2.77555756156289e-17
+11
+2.77555756156289e-16
+21
+0.878679656440358
+31
+3.0
+12
+1.19348975147204e-15
+22
+0.878679656440358
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+0.878679656440358
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+0.878679656440358
+30
+3.0
+11
+0.78861275996631
+21
+1.20533375707888
+31
+2.77555756156289e-17
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+0.878679656440358
+30
+3.0
+11
+0.788612759966309
+21
+1.20533375707888
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+3.0
+13
+0.788612759966309
+23
+1.20533375707888
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+0.904781950910693
+30
+3.0
+11
+1.07221092057491
+21
+0.85976839852704
+31
+1.5
+12
+1.01151717119399
+22
+0.904781950910693
+32
+1.5
+13
+1.01151717119399
+23
+0.904781950910693
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.07221092057491
+20
+0.85976839852704
+30
+1.5
+11
+1.01151717119399
+21
+0.904781950910693
+31
+3.0
+12
+1.07221092057491
+22
+0.85976839852704
+32
+3.0
+13
+1.07221092057491
+23
+0.85976839852704
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.17907937354823
+20
+1.86297548735602
+30
+-1.2490009027033e-16
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+2.21138724003369
+22
+1.79466624292112
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.79466624292112
+33
+-6.66133814775094e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.17907937354823
+21
+1.86297548735602
+31
+-1.2490009027033e-16
+12
+2.17907937354823
+22
+1.86297548735602
+32
+1.5
+13
+2.17907937354823
+23
+1.86297548735602
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.98848282880601
+20
+0.904781950910692
+30
+-1.66533453693773e-16
+11
+1.92778907942509
+21
+0.85976839852704
+31
+1.5
+12
+1.92778907942509
+22
+0.85976839852704
+32
+-1.02695629777827e-15
+13
+1.92778907942509
+23
+0.85976839852704
+33
+-1.02695629777827e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+0.85976839852704
+30
+1.5
+11
+1.98848282880601
+21
+0.904781950910692
+31
+-1.66533453693773e-16
+12
+1.98848282880601
+22
+0.904781950910692
+32
+1.5
+13
+1.98848282880601
+23
+0.904781950910692
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851406
+20
+2.2368440585138
+30
+3.0
+11
+1.20533375707888
+21
+2.21138724003369
+31
+1.5
+12
+1.27648079851406
+22
+2.2368440585138
+32
+1.5
+13
+1.27648079851406
+23
+2.2368440585138
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+2.21138724003369
+30
+1.5
+11
+1.27648079851406
+21
+2.2368440585138
+31
+3.0
+12
+1.20533375707888
+22
+2.21138724003369
+32
+3.0
+13
+1.20533375707888
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.744795334089513
+20
+1.34978045204758
+30
+1.5
+11
+0.763155941486199
+21
+1.27648079851406
+31
+3.0
+12
+0.763155941486199
+22
+1.27648079851406
+32
+1.5
+13
+0.763155941486199
+23
+1.27648079851406
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.763155941486199
+20
+1.27648079851406
+30
+3.0
+11
+0.744795334089513
+21
+1.34978045204758
+31
+1.5
+12
+0.744795334089513
+22
+1.34978045204758
+32
+3.0
+13
+0.744795334089513
+23
+1.34978045204758
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.72351920148594
+20
+0.763155941486199
+30
+3.0
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.72351920148594
+22
+0.763155941486199
+32
+1.5
+13
+1.72351920148594
+23
+0.763155941486199
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+1.72351920148594
+21
+0.763155941486199
+31
+3.0
+12
+1.79466624292112
+22
+0.788612759966309
+32
+3.0
+13
+1.79466624292112
+23
+0.788612759966309
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+3.0
+11
+1.98848282880601
+21
+2.09521804908931
+31
+1.5
+12
+2.04447222151364
+22
+2.04447222151364
+32
+1.5
+13
+2.04447222151364
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.98848282880601
+20
+2.09521804908931
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+3.0
+12
+1.98848282880601
+22
+2.09521804908931
+32
+3.0
+13
+1.98848282880601
+23
+2.09521804908931
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.65021954795242
+20
+0.744795334089513
+30
+3.0
+11
+1.72351920148594
+21
+0.763155941486199
+31
+1.5
+12
+1.65021954795242
+22
+0.744795334089513
+32
+1.5
+13
+1.65021954795242
+23
+0.744795334089513
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.72351920148594
+20
+0.763155941486199
+30
+1.5
+11
+1.65021954795242
+21
+0.744795334089513
+31
+3.0
+12
+1.72351920148594
+22
+0.763155941486199
+32
+3.0
+13
+1.72351920148594
+23
+0.763155941486199
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+0.733707760462408
+30
+1.5
+11
+1.65021954795242
+21
+0.744795334089513
+31
+3.0
+12
+1.65021954795242
+22
+0.744795334089513
+32
+1.5
+13
+1.65021954795242
+23
+0.744795334089513
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.65021954795242
+20
+0.744795334089513
+30
+3.0
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.5
+12
+1.57547319805376
+22
+0.733707760462408
+32
+3.0
+13
+1.57547319805376
+23
+0.733707760462408
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+2.27
+30
+1.5
+11
+1.42452680194624
+21
+2.26629223953759
+31
+3.0
+12
+1.42452680194624
+22
+2.26629223953759
+32
+1.5
+13
+1.42452680194624
+23
+2.26629223953759
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+2.26629223953759
+30
+3.0
+11
+1.5
+21
+2.27
+31
+1.5
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.34978045204758
+20
+2.25520466591049
+30
+3.0
+11
+1.27648079851406
+21
+2.2368440585138
+31
+1.5
+12
+1.34978045204758
+22
+2.25520466591049
+32
+1.5
+13
+1.34978045204758
+23
+2.25520466591049
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851406
+20
+2.2368440585138
+30
+1.5
+11
+1.34978045204758
+21
+2.25520466591049
+31
+3.0
+12
+1.27648079851406
+22
+2.2368440585138
+32
+3.0
+13
+1.27648079851406
+23
+2.2368440585138
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.729999999999999
+20
+1.5
+30
+1.5
+11
+0.733707760462408
+21
+1.42452680194624
+31
+3.0
+12
+0.73370776046241
+22
+1.42452680194624
+32
+1.5
+13
+0.73370776046241
+23
+1.42452680194624
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.733707760462408
+20
+1.42452680194624
+30
+3.0
+11
+0.729999999999999
+21
+1.5
+31
+1.5
+12
+0.73
+22
+1.5
+32
+3.0
+13
+0.73
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.65021954795242
+30
+3.0
+11
+2.26629223953759
+21
+1.57547319805376
+31
+1.5
+12
+2.26629223953759
+22
+1.57547319805376
+32
+3.0
+13
+2.26629223953759
+23
+1.57547319805376
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.26629223953759
+20
+1.57547319805376
+30
+1.5
+11
+2.25520466591049
+21
+1.65021954795242
+31
+3.0
+12
+2.25520466591049
+22
+1.65021954795242
+32
+1.5
+13
+2.25520466591049
+23
+1.65021954795242
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+0.733707760462408
+30
+1.5
+11
+1.34978045204758
+21
+0.744795334089513
+31
+-4.02455846426619e-16
+12
+1.42452680194624
+22
+0.733707760462408
+32
+-6.93889390390723e-16
+13
+1.42452680194624
+23
+0.733707760462408
+33
+-6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.34978045204758
+20
+0.744795334089513
+30
+-4.02455846426619e-16
+11
+1.42452680194624
+21
+0.733707760462408
+31
+1.5
+12
+1.34978045204758
+22
+0.744795334089513
+32
+1.5
+13
+1.34978045204758
+23
+0.744795334089513
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+3.0
+11
+2.17907937354823
+21
+1.13702451264398
+31
+1.5
+12
+2.17907937354823
+22
+1.13702451264398
+32
+3.0
+13
+2.17907937354823
+23
+1.13702451264398
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.17907937354823
+20
+1.13702451264398
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+3.0
+12
+2.21138724003369
+22
+1.20533375707888
+32
+1.5
+13
+2.21138724003369
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.73
+30
+3.0
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.5
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+0.733707760462408
+30
+1.5
+11
+1.5
+21
+0.73
+31
+3.0
+12
+1.57547319805376
+22
+0.733707760462408
+32
+3.0
+13
+1.57547319805376
+23
+0.733707760462408
+33
+3.0
+70
+1
+ 0
+LINE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.878679656440358
+30
+-1.16573417585641e-15
+11
+-0.00250198874351172
+21
+0.87764329876989
+31
+-1.47104550762833e-15
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+-1.11022302462516e-16
+11
+1.98848282880601
+21
+0.904781950910692
+31
+1.5
+12
+1.98848282880601
+22
+0.904781950910692
+32
+-1.66533453693773e-16
+13
+1.98848282880601
+23
+0.904781950910692
+33
+-1.66533453693773e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.98848282880601
+20
+0.904781950910692
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+-1.11022302462516e-16
+12
+2.04447222151364
+22
+0.955527778486358
+32
+1.5
+13
+2.04447222151364
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.73
+30
+6.93889390390723e-16
+11
+1.42452680194624
+21
+0.733707760462408
+31
+1.5
+12
+1.42452680194624
+22
+0.733707760462408
+32
+-6.93889390390723e-16
+13
+1.42452680194624
+23
+0.733707760462408
+33
+-6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+0.733707760462408
+30
+1.5
+11
+1.5
+21
+0.73
+31
+6.93889390390723e-16
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.744795334089513
+20
+1.65021954795242
+30
+1.5
+11
+0.733707760462409
+21
+1.57547319805376
+31
+4.16333634234434e-16
+12
+0.73370776046241
+22
+1.57547319805376
+32
+1.5
+13
+0.73370776046241
+23
+1.57547319805376
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.733707760462409
+20
+1.57547319805376
+30
+4.16333634234434e-16
+11
+0.744795334089513
+21
+1.65021954795242
+31
+1.5
+12
+0.744795334089513
+22
+1.65021954795242
+32
+4.71844785465692e-16
+13
+0.744795334089513
+23
+1.65021954795242
+33
+4.71844785465692e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.78861275996631
+20
+1.79466624292112
+30
+1.5
+11
+0.7631559414862
+21
+1.72351920148594
+31
+-2.77555756156289e-17
+12
+0.763155941486199
+22
+1.72351920148594
+32
+1.5
+13
+0.763155941486199
+23
+1.72351920148594
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.7631559414862
+20
+1.72351920148594
+30
+-2.77555756156289e-17
+11
+0.78861275996631
+21
+1.79466624292112
+31
+1.5
+12
+0.78861275996631
+22
+1.79466624292112
+32
+2.77555756156289e-17
+13
+0.78861275996631
+23
+1.79466624292112
+33
+2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.34978045204758
+20
+0.744795334089513
+30
+1.5
+11
+1.27648079851406
+21
+0.763155941486199
+31
+1.1518563880486e-15
+12
+1.34978045204758
+22
+0.744795334089513
+32
+-4.02455846426619e-16
+13
+1.34978045204758
+23
+0.744795334089513
+33
+-4.02455846426619e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851406
+20
+0.763155941486199
+30
+1.1518563880486e-15
+11
+1.34978045204758
+21
+0.744795334089513
+31
+1.5
+12
+1.27648079851406
+22
+0.763155941486199
+32
+1.5
+13
+1.27648079851406
+23
+0.763155941486199
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+-1.11022302462516e-16
+11
+2.09521804908931
+21
+1.98848282880601
+31
+1.5
+12
+2.09521804908931
+22
+1.98848282880601
+32
+7.63278329429795e-16
+13
+2.09521804908931
+23
+1.98848282880601
+33
+7.63278329429795e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.09521804908931
+20
+1.98848282880601
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+-1.11022302462516e-16
+12
+2.04447222151364
+22
+2.04447222151364
+32
+1.5
+13
+2.04447222151364
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+LINE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+-7.35522753814166e-16
+11
+0.878127111942354
+21
+-0.0013339604208924
+31
+1.42941214420489e-15
+ 0
+3DFACE
+ 8
+star_d
+10
+0.904781950910694
+20
+1.01151717119399
+30
+1.5
+11
+0.955527778486359
+21
+0.955527778486358
+31
+1.20736753927986e-15
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+0.955527778486358
+30
+1.20736753927986e-15
+11
+0.904781950910694
+21
+1.01151717119399
+31
+1.5
+12
+0.904781950910692
+22
+1.01151717119399
+32
+1.31838984174237e-15
+13
+0.904781950910692
+23
+1.01151717119399
+33
+1.31838984174237e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.65021954795242
+20
+2.25520466591049
+30
+-3.60822483003176e-16
+11
+1.72351920148594
+21
+2.2368440585138
+31
+1.5
+12
+1.72351920148594
+22
+2.2368440585138
+32
+-5.27355936696949e-16
+13
+1.72351920148594
+23
+2.2368440585138
+33
+-5.27355936696949e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.72351920148594
+20
+2.2368440585138
+30
+1.5
+11
+1.65021954795242
+21
+2.25520466591049
+31
+-3.60822483003176e-16
+12
+1.65021954795242
+22
+2.25520466591049
+32
+1.5
+13
+1.65021954795242
+23
+2.25520466591049
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.73370776046241
+20
+1.57547319805376
+30
+1.5
+11
+0.73
+21
+1.5
+31
+7.07767178198537e-16
+12
+0.729999999999999
+22
+1.5
+32
+1.5
+13
+0.729999999999999
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.73
+20
+1.5
+30
+7.07767178198537e-16
+11
+0.73370776046241
+21
+1.57547319805376
+31
+1.5
+12
+0.733707760462409
+22
+1.57547319805376
+32
+4.16333634234434e-16
+13
+0.733707760462409
+23
+1.57547319805376
+33
+4.16333634234434e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+3.0
+30
+1.19348975147204e-15
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+2.04447222151364
+22
+2.04447222151364
+32
+-1.11022302462516e-16
+13
+2.04447222151364
+23
+2.04447222151364
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+3.0
+21
+3.0
+31
+1.19348975147204e-15
+12
+3.0
+22
+3.0
+32
+0.204999999999999
+13
+3.0
+23
+3.0
+33
+0.204999999999999
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.204999999999999
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.04447222151364
+22
+2.04447222151364
+32
+3.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.92778907942509
+30
+-9.71445146547012e-16
+11
+2.17907937354823
+21
+1.86297548735602
+31
+1.5
+12
+2.17907937354823
+22
+1.86297548735602
+32
+-1.2490009027033e-16
+13
+2.17907937354823
+23
+1.86297548735602
+33
+-1.2490009027033e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.17907937354823
+20
+1.86297548735602
+30
+1.5
+11
+2.14023160147296
+21
+1.92778907942509
+31
+-9.71445146547012e-16
+12
+2.14023160147296
+22
+1.92778907942509
+32
+1.5
+13
+2.14023160147296
+23
+1.92778907942509
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.2368440585138
+20
+1.27648079851406
+30
+-1.06858966120171e-15
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+2.21138724003369
+22
+1.20533375707888
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.20533375707888
+33
+-6.66133814775094e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.2368440585138
+21
+1.27648079851406
+31
+-1.06858966120171e-15
+12
+2.2368440585138
+22
+1.27648079851406
+32
+1.5
+13
+2.2368440585138
+23
+1.27648079851406
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+1.5
+30
+3.0
+11
+0.73
+21
+1.5
+31
+7.07767178198537e-16
+12
+1.19348975147204e-15
+22
+1.5
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+1.5
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.73
+20
+1.5
+30
+7.07767178198537e-16
+11
+2.77555756156289e-16
+21
+1.5
+31
+3.0
+12
+0.729999999999999
+22
+1.5
+32
+1.5
+13
+0.729999999999999
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.729999999999999
+20
+1.5
+30
+1.5
+11
+2.77555756156289e-16
+21
+1.5
+31
+3.0
+12
+0.73
+22
+1.5
+32
+3.0
+13
+0.73
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.07221092057491
+20
+0.85976839852704
+30
+3.0
+11
+1.13702451264398
+21
+0.820920626451767
+31
+1.5
+12
+1.07221092057491
+22
+0.85976839852704
+32
+1.5
+13
+1.07221092057491
+23
+0.85976839852704
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+0.820920626451767
+30
+1.5
+11
+1.07221092057491
+21
+0.85976839852704
+31
+3.0
+12
+1.13702451264398
+22
+0.820920626451767
+32
+3.0
+13
+1.13702451264398
+23
+0.820920626451767
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.763155941486199
+20
+1.27648079851406
+30
+1.5
+11
+0.788612759966309
+21
+1.20533375707888
+31
+3.0
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.788612759966309
+20
+1.20533375707888
+30
+3.0
+11
+0.763155941486199
+21
+1.27648079851406
+31
+1.5
+12
+0.763155941486199
+22
+1.27648079851406
+32
+3.0
+13
+0.763155941486199
+23
+1.27648079851406
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.904781950910694
+20
+1.98848282880601
+30
+1.5
+11
+0.859768398527041
+21
+1.92778907942509
+31
+3.0
+12
+0.859768398527041
+22
+1.92778907942509
+32
+1.5
+13
+0.859768398527041
+23
+1.92778907942509
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.859768398527041
+20
+1.92778907942509
+30
+3.0
+11
+0.904781950910694
+21
+1.98848282880601
+31
+1.5
+12
+0.904781950910692
+22
+1.98848282880601
+32
+3.0
+13
+0.904781950910692
+23
+1.98848282880601
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+0.788612759966309
+30
+2.63677968348475e-16
+11
+0.878679656440356
+21
+0.0
+31
+0.204999999999999
+12
+0.878679656440356
+22
+0.0
+32
+-7.35522753814166e-16
+13
+0.878679656440356
+23
+0.0
+33
+-7.35522753814166e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+0.204999999999999
+11
+1.20533375707888
+21
+0.788612759966309
+31
+2.63677968348475e-16
+12
+0.878679656440356
+22
+0.0
+32
+0.826320343559644
+13
+0.878679656440356
+23
+0.0
+33
+0.826320343559644
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+0.826320343559644
+11
+1.20533375707888
+21
+0.788612759966309
+31
+2.63677968348475e-16
+12
+0.878679656440356
+22
+0.0
+32
+2.17367965644035
+13
+0.878679656440356
+23
+0.0
+33
+2.17367965644035
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+2.17367965644035
+11
+1.20533375707888
+21
+0.788612759966309
+31
+2.63677968348475e-16
+12
+0.878679656440356
+22
+0.0
+32
+2.795
+13
+0.878679656440356
+23
+0.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+2.795
+11
+1.20533375707888
+21
+0.788612759966309
+31
+2.63677968348475e-16
+12
+0.878679656440356
+22
+0.0
+32
+3.0
+13
+0.878679656440356
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+3.0
+11
+1.20533375707888
+21
+0.788612759966309
+31
+2.63677968348475e-16
+12
+1.20533375707888
+22
+0.788612759966309
+32
+3.0
+13
+1.20533375707888
+23
+0.788612759966309
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+0.788612759966309
+30
+3.0
+11
+1.20533375707888
+21
+0.788612759966309
+31
+2.63677968348475e-16
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+1.20163144893051
+30
+1.19348975147204e-15
+11
+0.78861275996631
+21
+1.20533375707888
+31
+2.77555756156289e-17
+12
+1.19348975147204e-15
+22
+0.878679656440358
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+0.878679656440358
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.78861275996631
+20
+1.20533375707888
+30
+2.77555756156289e-17
+11
+1.33226762955019e-15
+21
+1.20163144893051
+31
+1.19348975147204e-15
+12
+0.7631559414862
+22
+1.27648079851406
+32
+-2.77555756156289e-17
+13
+0.7631559414862
+23
+1.27648079851406
+33
+-2.77555756156289e-17
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.7631559414862
+20
+1.27648079851406
+30
+-2.77555756156289e-17
+11
+1.33226762955019e-15
+21
+1.20163144893051
+31
+1.19348975147204e-15
+12
+0.744795334089513
+22
+1.34978045204758
+32
+4.71844785465692e-16
+13
+0.744795334089513
+23
+1.34978045204758
+33
+4.71844785465692e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+-1.11022302462516e-16
+11
+2.14023160147296
+21
+1.92778907942509
+31
+-9.71445146547012e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.92778907942509
+30
+-9.71445146547012e-16
+11
+2.04447222151364
+21
+2.04447222151364
+31
+-1.11022302462516e-16
+12
+2.09521804908931
+22
+1.98848282880601
+32
+7.63278329429795e-16
+13
+2.09521804908931
+23
+1.98848282880601
+33
+7.63278329429795e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.92778907942509
+30
+-9.71445146547012e-16
+11
+2.21138724003369
+21
+1.79466624292112
+31
+-6.66133814775094e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+-6.66133814775094e-16
+11
+2.14023160147296
+21
+1.92778907942509
+31
+-9.71445146547012e-16
+12
+2.17907937354823
+22
+1.86297548735602
+32
+-1.2490009027033e-16
+13
+2.17907937354823
+23
+1.86297548735602
+33
+-1.2490009027033e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.07221092057491
+20
+0.85976839852704
+30
+-1.38777878078145e-17
+11
+0.878679656440356
+21
+0.0
+31
+-7.35522753814166e-16
+12
+0.497732043121054
+22
+0.0
+32
+1.19348975147204e-15
+13
+0.497732043121054
+23
+0.0
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+-7.35522753814166e-16
+11
+1.07221092057491
+21
+0.85976839852704
+31
+-1.38777878078145e-17
+12
+1.13702451264398
+22
+0.820920626451767
+32
+8.18789480661053e-16
+13
+1.13702451264398
+23
+0.820920626451767
+33
+8.18789480661053e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+-7.35522753814166e-16
+11
+1.13702451264398
+21
+0.820920626451767
+31
+8.18789480661053e-16
+12
+1.20533375707888
+22
+0.788612759966309
+32
+2.63677968348475e-16
+13
+1.20533375707888
+23
+0.788612759966309
+33
+2.63677968348475e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.17907937354823
+20
+1.13702451264398
+30
+-1.2490009027033e-16
+11
+3.0
+21
+0.497732043121051
+31
+1.19348975147204e-15
+12
+2.14023160147296
+22
+1.07221092057491
+32
+-9.71445146547012e-16
+13
+2.14023160147296
+23
+1.07221092057491
+33
+-9.71445146547012e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.497732043121051
+30
+1.19348975147204e-15
+11
+2.17907937354823
+21
+1.13702451264398
+31
+-1.2490009027033e-16
+12
+2.21138724003369
+22
+1.20533375707888
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.20533375707888
+33
+-6.66133814775094e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.497732043121051
+30
+1.19348975147204e-15
+11
+2.21138724003369
+21
+1.20533375707888
+31
+-6.66133814775094e-16
+12
+3.0
+22
+0.878679656440356
+32
+1.19348975147204e-15
+13
+3.0
+23
+0.878679656440356
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+0.85976839852704
+30
+-1.02695629777827e-15
+11
+1.79466624292112
+21
+0.788612759966309
+31
+-1.38777878078145e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+-1.38777878078145e-16
+11
+1.92778907942509
+21
+0.85976839852704
+31
+-1.02695629777827e-15
+12
+1.86297548735602
+22
+0.820920626451767
+32
+1.58206781009085e-15
+13
+1.86297548735602
+23
+0.820920626451767
+33
+1.58206781009085e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+-1.38777878078145e-16
+11
+1.65021954795242
+21
+0.744795334089513
+31
+-3.60822483003176e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.65021954795242
+20
+0.744795334089513
+30
+-3.60822483003176e-16
+11
+1.79466624292112
+21
+0.788612759966309
+31
+-1.38777878078145e-16
+12
+1.72351920148594
+22
+0.763155941486199
+32
+-5.27355936696949e-16
+13
+1.72351920148594
+23
+0.763155941486199
+33
+-5.27355936696949e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.34978045204758
+30
+-1.2490009027033e-15
+11
+2.21138724003369
+21
+1.20533375707888
+31
+-6.66133814775094e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+-6.66133814775094e-16
+11
+2.25520466591049
+21
+1.34978045204758
+31
+-1.2490009027033e-15
+12
+2.2368440585138
+22
+1.27648079851406
+32
+-1.06858966120171e-15
+13
+2.2368440585138
+23
+1.27648079851406
+33
+-1.06858966120171e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451768
+20
+1.86297548735602
+30
+1.65145674912992e-15
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.78861275996631
+22
+1.79466624292112
+32
+2.77555756156289e-17
+13
+0.78861275996631
+23
+1.79466624292112
+33
+2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.820920626451768
+21
+1.86297548735602
+31
+1.65145674912992e-15
+12
+0.859768398527041
+22
+1.92778907942509
+32
+8.74300631892311e-16
+13
+0.859768398527041
+23
+1.92778907942509
+33
+8.74300631892311e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.904781950910692
+20
+1.98848282880601
+30
+1.31838984174237e-15
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.859768398527041
+22
+1.92778907942509
+32
+8.74300631892311e-16
+13
+0.859768398527041
+23
+1.92778907942509
+33
+8.74300631892311e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.904781950910692
+21
+1.98848282880601
+31
+1.31838984174237e-15
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.20736753927986e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.7631559414862
+20
+1.72351920148594
+30
+-2.77555756156289e-17
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.744795334089513
+22
+1.65021954795242
+32
+4.71844785465692e-16
+13
+0.744795334089513
+23
+1.65021954795242
+33
+4.71844785465692e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.7631559414862
+21
+1.72351920148594
+31
+-2.77555756156289e-17
+12
+0.78861275996631
+22
+1.79466624292112
+32
+2.77555756156289e-17
+13
+0.78861275996631
+23
+1.79466624292112
+33
+2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+2.21138724003369
+30
+-1.4432899320127e-15
+11
+1.92778907942509
+21
+2.14023160147296
+31
+-1.02695629777827e-15
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+2.14023160147296
+30
+-1.02695629777827e-15
+11
+1.79466624292112
+21
+2.21138724003369
+31
+-1.4432899320127e-15
+12
+1.86297548735602
+22
+2.17907937354823
+32
+1.58206781009085e-15
+13
+1.86297548735602
+23
+2.17907937354823
+33
+1.58206781009085e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.65021954795242
+20
+2.25520466591049
+30
+-3.60822483003176e-16
+11
+1.79466624292112
+21
+2.21138724003369
+31
+-1.4432899320127e-15
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+2.21138724003369
+30
+-1.4432899320127e-15
+11
+1.65021954795242
+21
+2.25520466591049
+31
+-3.60822483003176e-16
+12
+1.72351920148594
+22
+2.2368440585138
+32
+-5.27355936696949e-16
+13
+1.72351920148594
+23
+2.2368440585138
+33
+-5.27355936696949e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.72351920148594
+20
+0.763155941486199
+30
+-5.27355936696949e-16
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+1.19348975147204e-15
+12
+1.65021954795242
+22
+0.744795334089513
+32
+-3.60822483003176e-16
+13
+1.65021954795242
+23
+0.744795334089513
+33
+-3.60822483003176e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+1.19348975147204e-15
+11
+1.72351920148594
+21
+0.763155941486199
+31
+-5.27355936696949e-16
+12
+1.79466624292112
+22
+0.788612759966309
+32
+-1.38777878078145e-16
+13
+1.79466624292112
+23
+0.788612759966309
+33
+-1.38777878078145e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+1.19348975147204e-15
+11
+1.79466624292112
+21
+0.788612759966309
+31
+-1.38777878078145e-16
+12
+2.12132034355964
+22
+1.11022302462516e-16
+32
+-6.80011602582908e-16
+13
+2.12132034355964
+23
+1.11022302462516e-16
+33
+-6.80011602582908e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+-6.66133814775094e-16
+11
+2.25520466591049
+21
+1.65021954795242
+31
+-1.2490009027033e-15
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.65021954795242
+30
+-1.2490009027033e-15
+11
+2.21138724003369
+21
+1.79466624292112
+31
+-6.66133814775094e-16
+12
+2.2368440585138
+22
+1.72351920148594
+32
+-1.06858966120171e-15
+13
+2.2368440585138
+23
+1.72351920148594
+33
+-1.06858966120171e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.65021954795242
+30
+-1.2490009027033e-15
+11
+2.27
+21
+1.5
+31
+-2.35922392732846e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+-2.35922392732846e-16
+11
+2.25520466591049
+21
+1.65021954795242
+31
+-1.2490009027033e-15
+12
+2.26629223953759
+22
+1.57547319805376
+32
+-1.11022302462516e-16
+13
+2.26629223953759
+23
+1.57547319805376
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.01151717119399
+21
+0.904781950910693
+31
+6.38378239159465e-16
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.20736753927986e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+0.904781950910693
+30
+6.38378239159465e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.07221092057491
+22
+0.85976839852704
+32
+-1.38777878078145e-17
+13
+1.07221092057491
+23
+0.85976839852704
+33
+-1.38777878078145e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.13702451264398
+21
+0.820920626451767
+31
+8.18789480661053e-16
+12
+1.07221092057491
+22
+0.85976839852704
+32
+-1.38777878078145e-17
+13
+1.07221092057491
+23
+0.85976839852704
+33
+-1.38777878078145e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+0.820920626451767
+30
+8.18789480661053e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.20533375707888
+22
+0.788612759966309
+32
+2.63677968348475e-16
+13
+1.20533375707888
+23
+0.788612759966309
+33
+2.63677968348475e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.733707760462409
+21
+1.42452680194624
+31
+4.16333634234434e-16
+12
+0.73
+22
+1.5
+32
+7.07767178198537e-16
+13
+0.73
+23
+1.5
+33
+7.07767178198537e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.733707760462409
+20
+1.42452680194624
+30
+4.16333634234434e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.744795334089513
+22
+1.34978045204758
+32
+4.71844785465692e-16
+13
+0.744795334089513
+23
+1.34978045204758
+33
+4.71844785465692e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.27648079851406
+21
+0.763155941486199
+31
+1.1518563880486e-15
+12
+1.20533375707888
+22
+0.788612759966309
+32
+2.63677968348475e-16
+13
+1.20533375707888
+23
+0.788612759966309
+33
+2.63677968348475e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851406
+20
+0.763155941486199
+30
+1.1518563880486e-15
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.34978045204758
+22
+0.744795334089513
+32
+-4.02455846426619e-16
+13
+1.34978045204758
+23
+0.744795334089513
+33
+-4.02455846426619e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.7631559414862
+21
+1.27648079851406
+31
+-2.77555756156289e-17
+12
+0.744795334089513
+22
+1.34978045204758
+32
+4.71844785465692e-16
+13
+0.744795334089513
+23
+1.34978045204758
+33
+4.71844785465692e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.7631559414862
+20
+1.27648079851406
+30
+-2.77555756156289e-17
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.78861275996631
+22
+1.20533375707888
+32
+2.77555756156289e-17
+13
+0.78861275996631
+23
+1.20533375707888
+33
+2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.733707760462409
+20
+1.57547319805376
+30
+4.16333634234434e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.73
+22
+1.5
+32
+7.07767178198537e-16
+13
+0.73
+23
+1.5
+33
+7.07767178198537e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.733707760462409
+21
+1.57547319805376
+31
+4.16333634234434e-16
+12
+0.744795334089513
+22
+1.65021954795242
+32
+4.71844785465692e-16
+13
+0.744795334089513
+23
+1.65021954795242
+33
+4.71844785465692e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.820920626451768
+21
+1.13702451264398
+31
+1.65145674912992e-15
+12
+0.78861275996631
+22
+1.20533375707888
+32
+2.77555756156289e-17
+13
+0.78861275996631
+23
+1.20533375707888
+33
+2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451768
+20
+1.13702451264398
+30
+1.65145674912992e-15
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.859768398527041
+22
+1.07221092057491
+32
+8.74300631892311e-16
+13
+0.859768398527041
+23
+1.07221092057491
+33
+8.74300631892311e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+-2.35922392732846e-16
+11
+2.25520466591049
+21
+1.34978045204758
+31
+-1.2490009027033e-15
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.34978045204758
+30
+-1.2490009027033e-15
+11
+2.27
+21
+1.5
+31
+-2.35922392732846e-16
+12
+2.26629223953759
+22
+1.42452680194624
+32
+-1.11022302462516e-16
+13
+2.26629223953759
+23
+1.42452680194624
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.07221092057491
+30
+-9.71445146547012e-16
+11
+2.04447222151364
+21
+0.955527778486358
+31
+-1.11022302462516e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+-1.11022302462516e-16
+11
+2.14023160147296
+21
+1.07221092057491
+31
+-9.71445146547012e-16
+12
+2.09521804908931
+22
+1.01151717119399
+32
+7.63278329429795e-16
+13
+2.09521804908931
+23
+1.01151717119399
+33
+7.63278329429795e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+2.26629223953759
+30
+1.38777878078145e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+2.27
+32
+6.93889390390723e-16
+13
+1.5
+23
+2.27
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.57547319805376
+21
+2.26629223953759
+31
+1.38777878078145e-16
+12
+1.65021954795242
+22
+2.25520466591049
+32
+-3.60822483003176e-16
+13
+1.65021954795242
+23
+2.25520466591049
+33
+-3.60822483003176e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+2.09521804908931
+30
+6.38378239159465e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.20736753927986e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.01151717119399
+21
+2.09521804908931
+31
+6.38378239159465e-16
+12
+1.07221092057491
+22
+2.14023160147296
+32
+3.19189119579733e-16
+13
+1.07221092057491
+23
+2.14023160147296
+33
+3.19189119579733e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+2.17907937354823
+30
+8.18789480661053e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.07221092057491
+22
+2.14023160147296
+32
+3.19189119579733e-16
+13
+1.07221092057491
+23
+2.14023160147296
+33
+3.19189119579733e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.13702451264398
+21
+2.17907937354823
+31
+8.18789480661053e-16
+12
+1.20533375707888
+22
+2.21138724003369
+32
+-5.68989300120393e-16
+13
+1.20533375707888
+23
+2.21138724003369
+33
+-5.68989300120393e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+-1.11022302462516e-16
+11
+1.92778907942509
+21
+0.85976839852704
+31
+-1.02695629777827e-15
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+0.85976839852704
+30
+-1.02695629777827e-15
+11
+2.04447222151364
+21
+0.955527778486358
+31
+-1.11022302462516e-16
+12
+1.98848282880601
+22
+0.904781950910692
+32
+-1.66533453693773e-16
+13
+1.98848282880601
+23
+0.904781950910692
+33
+-1.66533453693773e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851407
+20
+2.2368440585138
+30
+-1.80411241501588e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.20533375707888
+22
+2.21138724003369
+32
+-5.68989300120393e-16
+13
+1.20533375707888
+23
+2.21138724003369
+33
+-5.68989300120393e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.27648079851407
+21
+2.2368440585138
+31
+-1.80411241501588e-16
+12
+1.34978045204758
+22
+2.25520466591049
+32
+-4.02455846426619e-16
+13
+1.34978045204758
+23
+2.25520466591049
+33
+-4.02455846426619e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+2.26629223953759
+30
+-6.93889390390723e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.34978045204758
+22
+2.25520466591049
+32
+-4.02455846426619e-16
+13
+1.34978045204758
+23
+2.25520466591049
+33
+-4.02455846426619e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.42452680194624
+21
+2.26629223953759
+31
+-6.93889390390723e-16
+12
+1.5
+22
+2.27
+32
+6.93889390390723e-16
+13
+1.5
+23
+2.27
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+-6.66133814775094e-16
+11
+2.14023160147296
+21
+1.07221092057491
+31
+-9.71445146547012e-16
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.07221092057491
+30
+-9.71445146547012e-16
+11
+2.21138724003369
+21
+1.20533375707888
+31
+-6.66133814775094e-16
+12
+2.17907937354823
+22
+1.13702451264398
+32
+-1.2490009027033e-16
+13
+2.17907937354823
+23
+1.13702451264398
+33
+-1.2490009027033e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.904781950910692
+21
+1.01151717119399
+31
+1.31838984174237e-15
+12
+0.859768398527041
+22
+1.07221092057491
+32
+8.74300631892311e-16
+13
+0.859768398527041
+23
+1.07221092057491
+33
+8.74300631892311e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.904781950910692
+20
+1.01151717119399
+30
+1.31838984174237e-15
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.20736753927986e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.38777878078145e-16
+12
+1.5
+22
+0.73
+32
+6.93889390390723e-16
+13
+1.5
+23
+0.73
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+0.733707760462408
+30
+1.38777878078145e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.65021954795242
+22
+0.744795334089513
+32
+-3.60822483003176e-16
+13
+1.65021954795242
+23
+0.744795334089513
+33
+-3.60822483003176e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20163144893051
+20
+3.0
+30
+1.19348975147204e-15
+11
+1.20533375707888
+21
+2.21138724003369
+31
+-5.68989300120393e-16
+12
+0.878679656440358
+22
+3.0
+32
+9.29811783123569e-16
+13
+0.878679656440358
+23
+3.0
+33
+9.29811783123569e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+2.21138724003369
+30
+-5.68989300120393e-16
+11
+1.20163144893051
+21
+3.0
+31
+1.19348975147204e-15
+12
+1.27648079851407
+22
+2.2368440585138
+32
+-1.80411241501588e-16
+13
+1.27648079851407
+23
+2.2368440585138
+33
+-1.80411241501588e-16
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851407
+20
+2.2368440585138
+30
+-1.80411241501588e-16
+11
+1.20163144893051
+21
+3.0
+31
+1.19348975147204e-15
+12
+1.34978045204758
+22
+2.25520466591049
+32
+-4.02455846426619e-16
+13
+1.34978045204758
+23
+2.25520466591049
+33
+-4.02455846426619e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.33226762955019e-15
+20
+2.50226795687895
+30
+1.19348975147204e-15
+11
+0.78861275996631
+21
+1.79466624292112
+31
+2.77555756156289e-17
+12
+1.19348975147204e-15
+22
+2.12132034355964
+32
+-1.16573417585641e-15
+13
+1.19348975147204e-15
+23
+2.12132034355964
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.78861275996631
+20
+1.79466624292112
+30
+2.77555756156289e-17
+11
+1.33226762955019e-15
+21
+2.50226795687895
+31
+1.19348975147204e-15
+12
+0.820920626451768
+22
+1.86297548735602
+32
+1.65145674912992e-15
+13
+0.820920626451768
+23
+1.86297548735602
+33
+1.65145674912992e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451768
+20
+1.86297548735602
+30
+1.65145674912992e-15
+11
+1.33226762955019e-15
+21
+2.50226795687895
+31
+1.19348975147204e-15
+12
+0.859768398527041
+22
+1.92778907942509
+32
+8.74300631892311e-16
+13
+0.859768398527041
+23
+1.92778907942509
+33
+8.74300631892311e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+-1.56819002228303e-15
+11
+1.86297548735602
+21
+2.17907937354823
+31
+1.58206781009085e-15
+12
+1.79466624292112
+22
+2.21138724003369
+32
+-1.4432899320127e-15
+13
+1.79466624292112
+23
+2.21138724003369
+33
+-1.4432899320127e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.86297548735602
+20
+2.17907937354823
+30
+1.58206781009085e-15
+11
+2.12132034355964
+21
+3.0
+31
+-1.56819002228303e-15
+12
+1.92778907942509
+22
+2.14023160147296
+32
+-1.02695629777827e-15
+13
+1.92778907942509
+23
+2.14023160147296
+33
+-1.02695629777827e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+2.14023160147296
+30
+-1.02695629777827e-15
+11
+2.12132034355964
+21
+3.0
+31
+-1.56819002228303e-15
+12
+2.50226795687895
+22
+3.0
+32
+1.19348975147204e-15
+13
+2.50226795687895
+23
+3.0
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.42452680194624
+21
+0.733707760462408
+31
+-6.93889390390723e-16
+12
+1.34978045204758
+22
+0.744795334089513
+32
+-4.02455846426619e-16
+13
+1.34978045204758
+23
+0.744795334089513
+33
+-4.02455846426619e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+0.733707760462408
+30
+-6.93889390390723e-16
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+0.73
+32
+6.93889390390723e-16
+13
+1.5
+23
+0.73
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+2.12132034355964
+30
+1.19348975147204e-15
+11
+2.2368440585138
+21
+1.72351920148594
+31
+-1.06858966120171e-15
+12
+2.21138724003369
+22
+1.79466624292112
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.79466624292112
+33
+-6.66133814775094e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.2368440585138
+20
+1.72351920148594
+30
+-1.06858966120171e-15
+11
+3.0
+21
+2.12132034355964
+31
+1.19348975147204e-15
+12
+2.25520466591049
+22
+1.65021954795242
+32
+-1.2490009027033e-15
+13
+2.25520466591049
+23
+1.65021954795242
+33
+-1.2490009027033e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.65021954795242
+30
+-1.2490009027033e-15
+11
+3.0
+21
+2.12132034355964
+31
+1.19348975147204e-15
+12
+3.0
+22
+1.79836855106949
+32
+1.19348975147204e-15
+13
+3.0
+23
+1.79836855106949
+33
+1.19348975147204e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+3.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+1.79466624292112
+22
+2.21138724003369
+32
+-1.4432899320127e-15
+13
+1.79466624292112
+23
+2.21138724003369
+33
+-1.4432899320127e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+2.21138724003369
+30
+-1.4432899320127e-15
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+-1.56819002228303e-15
+13
+2.12132034355964
+23
+3.0
+33
+-1.56819002228303e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+-1.56819002228303e-15
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+2.795
+13
+2.12132034355964
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+-1.56819002228303e-15
+11
+2.12132034355964
+21
+3.0
+31
+2.795
+12
+2.12132034355964
+22
+3.0
+32
+2.17367965644036
+13
+2.12132034355964
+23
+3.0
+33
+2.17367965644036
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+-1.56819002228303e-15
+11
+2.12132034355964
+21
+3.0
+31
+2.17367965644036
+12
+2.12132034355964
+22
+3.0
+32
+0.826320343559642
+13
+2.12132034355964
+23
+3.0
+33
+0.826320343559642
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+-1.56819002228303e-15
+11
+2.12132034355964
+21
+3.0
+31
+0.826320343559642
+12
+2.12132034355964
+22
+3.0
+32
+0.204999999999999
+13
+2.12132034355964
+23
+3.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.86297548735602
+20
+2.17907937354823
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+1.79466624292112
+22
+2.21138724003369
+32
+3.0
+13
+1.79466624292112
+23
+2.21138724003369
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.86297548735602
+21
+2.17907937354823
+31
+3.0
+12
+1.92778907942509
+22
+2.14023160147296
+32
+3.0
+13
+1.92778907942509
+23
+2.14023160147296
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.92778907942509
+21
+2.14023160147296
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.788612759966309
+20
+1.79466624292112
+30
+3.0
+11
+2.77555756156289e-16
+21
+2.50226795687895
+31
+3.0
+12
+2.77555756156289e-16
+22
+2.12132034355964
+32
+3.0
+13
+2.77555756156289e-16
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+2.50226795687895
+30
+3.0
+11
+0.788612759966309
+21
+1.79466624292112
+31
+3.0
+12
+0.820920626451767
+22
+1.86297548735602
+32
+3.0
+13
+0.820920626451767
+23
+1.86297548735602
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+2.50226795687895
+30
+3.0
+11
+0.820920626451767
+21
+1.86297548735602
+31
+3.0
+12
+0.859768398527041
+22
+1.92778907942509
+32
+3.0
+13
+0.859768398527041
+23
+1.92778907942509
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+3.0
+30
+-1.16573417585641e-15
+11
+0.955527778486359
+21
+2.04447222151364
+31
+1.5
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.20736753927986e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+2.04447222151364
+30
+1.5
+11
+1.19348975147204e-15
+21
+3.0
+31
+-1.16573417585641e-15
+12
+0.955527778486358
+22
+2.04447222151364
+32
+3.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486358
+20
+2.04447222151364
+30
+3.0
+11
+1.19348975147204e-15
+21
+3.0
+31
+-1.16573417585641e-15
+12
+2.77555756156289e-16
+22
+3.0
+32
+3.0
+13
+2.77555756156289e-16
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.859768398527041
+20
+1.92778907942509
+30
+3.0
+11
+2.77555756156289e-16
+21
+3.0
+31
+3.0
+12
+2.77555756156289e-16
+22
+2.50226795687895
+32
+3.0
+13
+2.77555756156289e-16
+23
+2.50226795687895
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+3.0
+30
+3.0
+11
+0.859768398527041
+21
+1.92778907942509
+31
+3.0
+12
+0.904781950910692
+22
+1.98848282880601
+32
+3.0
+13
+0.904781950910692
+23
+1.98848282880601
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+3.0
+30
+3.0
+11
+0.904781950910692
+21
+1.98848282880601
+31
+3.0
+12
+0.955527778486358
+22
+2.04447222151364
+32
+3.0
+13
+0.955527778486358
+23
+2.04447222151364
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.34978045204758
+20
+2.25520466591049
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.34978045204758
+21
+2.25520466591049
+31
+3.0
+12
+1.42452680194624
+22
+2.26629223953759
+32
+3.0
+13
+1.42452680194624
+23
+2.26629223953759
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.42452680194624
+21
+2.26629223953759
+31
+3.0
+12
+1.5
+22
+2.27
+32
+3.0
+13
+1.5
+23
+2.27
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.26629223953759
+20
+1.57547319805376
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+3.0
+12
+2.25520466591049
+22
+1.65021954795242
+32
+3.0
+13
+2.25520466591049
+23
+1.65021954795242
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.26629223953759
+21
+1.57547319805376
+31
+3.0
+12
+2.27
+22
+1.5
+32
+3.0
+13
+2.27
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.27
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+3.0
+11
+0.955527778486358
+21
+0.955527778486358
+31
+3.0
+12
+2.77555756156289e-16
+22
+0.0
+32
+3.0
+13
+2.77555756156289e-16
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486358
+20
+0.955527778486358
+30
+3.0
+11
+0.205000000000001
+21
+0.0
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486358
+20
+0.955527778486358
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.01151717119399
+22
+0.904781950910693
+32
+3.0
+13
+1.01151717119399
+23
+0.904781950910693
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+0.904781950910693
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.07221092057491
+22
+0.85976839852704
+32
+3.0
+13
+1.07221092057491
+23
+0.85976839852704
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.744795334089513
+20
+1.34978045204758
+30
+3.0
+11
+2.77555756156289e-16
+21
+1.5
+31
+3.0
+12
+2.77555756156289e-16
+22
+1.20163144893051
+32
+3.0
+13
+2.77555756156289e-16
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+1.5
+30
+3.0
+11
+0.744795334089513
+21
+1.34978045204758
+31
+3.0
+12
+0.733707760462408
+22
+1.42452680194624
+32
+3.0
+13
+0.733707760462408
+23
+1.42452680194624
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.77555756156289e-16
+20
+1.5
+30
+3.0
+11
+0.733707760462408
+21
+1.42452680194624
+31
+3.0
+12
+0.73
+22
+1.5
+32
+3.0
+13
+0.73
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.98848282880601
+20
+2.09521804908931
+30
+3.0
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+1.92778907942509
+22
+2.14023160147296
+32
+3.0
+13
+1.92778907942509
+23
+2.14023160147296
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.98848282880601
+21
+2.09521804908931
+31
+3.0
+12
+2.04447222151364
+22
+2.04447222151364
+32
+3.0
+13
+2.04447222151364
+23
+2.04447222151364
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+2.04447222151364
+21
+2.04447222151364
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.5
+21
+0.73
+31
+3.0
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.73
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.57547319805376
+22
+0.733707760462408
+32
+3.0
+13
+1.57547319805376
+23
+0.733707760462408
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+0.733707760462408
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.65021954795242
+22
+0.744795334089513
+32
+3.0
+13
+1.65021954795242
+23
+0.744795334089513
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.09521804908931
+21
+1.01151717119399
+31
+3.0
+12
+2.04447222151364
+22
+0.955527778486358
+32
+3.0
+13
+2.04447222151364
+23
+0.955527778486358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.09521804908931
+20
+1.01151717119399
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.14023160147296
+22
+1.07221092057491
+32
+3.0
+13
+2.14023160147296
+23
+1.07221092057491
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.07221092057491
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+2.17367965644036
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.12132034355964
+22
+3.0
+32
+0.826320343559642
+13
+2.12132034355964
+23
+3.0
+33
+0.826320343559642
+70
+0
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+2.17367965644036
+11
+2.795
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.12132034355964
+21
+3.0
+31
+2.17367965644036
+12
+2.12132034355964
+22
+3.0
+32
+2.795
+13
+2.12132034355964
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+0.204999999999999
+11
+3.0
+21
+3.0
+31
+1.19348975147204e-15
+12
+2.795
+22
+3.0
+32
+-1.16573417585641e-15
+13
+2.795
+23
+3.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+3.0
+30
+1.19348975147204e-15
+11
+2.795
+21
+3.0
+31
+0.204999999999999
+12
+3.0
+22
+3.0
+32
+0.204999999999999
+13
+3.0
+23
+3.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+0.204999999999999
+11
+2.50226795687895
+21
+3.0
+31
+1.19348975147204e-15
+12
+2.12132034355964
+22
+3.0
+32
+-1.56819002228303e-15
+13
+2.12132034355964
+23
+3.0
+33
+-1.56819002228303e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.50226795687895
+20
+3.0
+30
+1.19348975147204e-15
+11
+2.795
+21
+3.0
+31
+0.204999999999999
+12
+2.795
+22
+3.0
+32
+-1.16573417585641e-15
+13
+2.795
+23
+3.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+0.204999999999999
+11
+2.50226795687895
+21
+3.0
+31
+1.19348975147204e-15
+12
+2.12132034355964
+22
+3.0
+32
+0.204999999999999
+13
+2.12132034355964
+23
+3.0
+33
+0.204999999999999
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.204999999999999
+12
+2.795
+22
+3.0
+32
+0.204999999999999
+13
+2.795
+23
+3.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+3.0
+30
+0.204999999999999
+11
+2.795
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440358
+20
+3.0
+30
+0.826320343559643
+11
+1.5
+21
+3.0
+31
+0.204999999999999
+12
+0.878679656440358
+22
+3.0
+32
+0.204999999999999
+13
+0.878679656440358
+23
+3.0
+33
+0.204999999999999
+70
+0
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.878679656440357
+21
+3.0
+31
+2.17367965644036
+12
+0.878679656440357
+22
+3.0
+32
+2.795
+13
+0.878679656440357
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440358
+20
+3.0
+30
+0.826320343559643
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+0.204999999999999
+13
+1.5
+23
+3.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.878679656440358
+21
+3.0
+31
+0.826320343559643
+12
+0.878679656440357
+22
+3.0
+32
+2.17367965644036
+13
+0.878679656440357
+23
+3.0
+33
+2.17367965644036
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440358
+20
+3.0
+30
+0.204999999999999
+11
+1.20163144893051
+21
+3.0
+31
+1.19348975147204e-15
+12
+0.878679656440358
+22
+3.0
+32
+9.29811783123569e-16
+13
+0.878679656440358
+23
+3.0
+33
+9.29811783123569e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20163144893051
+20
+3.0
+30
+1.19348975147204e-15
+11
+1.5
+21
+3.0
+31
+0.204999999999999
+12
+1.5
+22
+3.0
+32
+6.93889390390723e-16
+13
+1.5
+23
+3.0
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+3.0
+30
+0.204999999999999
+11
+1.20163144893051
+21
+3.0
+31
+1.19348975147204e-15
+12
+0.878679656440358
+22
+3.0
+32
+0.204999999999999
+13
+0.878679656440358
+23
+3.0
+33
+0.204999999999999
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+2.12132034355964
+22
+3.0
+32
+2.795
+13
+2.12132034355964
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.795
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+5.55111512312578e-17
+30
+0.204999999999999
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+1.19348975147204e-15
+12
+2.12132034355964
+22
+1.11022302462516e-16
+32
+-6.80011602582908e-16
+13
+2.12132034355964
+23
+1.11022302462516e-16
+33
+-6.80011602582908e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+1.19348975147204e-15
+11
+1.5
+21
+0.0
+31
+0.204999999999999
+12
+1.5
+22
+0.0
+32
+6.93889390390723e-16
+13
+1.5
+23
+0.0
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+0.204999999999999
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+1.19348975147204e-15
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+0.204999999999999
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+0.204999999999999
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.5
+21
+0.0
+31
+2.795
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+2.795
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.12132034355964
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.12132034355964
+20
+5.55111512312578e-17
+30
+0.826320343559641
+11
+1.5
+21
+0.0
+31
+0.204999999999999
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+0.204999999999999
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+0.204999999999999
+70
+0
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+2.17367965644035
+11
+0.205000000000001
+21
+0.0
+31
+1.5
+12
+0.878679656440356
+22
+0.0
+32
+0.826320343559644
+13
+0.878679656440356
+23
+0.0
+33
+0.826320343559644
+70
+0
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+3.0
+11
+1.19348975147204e-15
+21
+0.0
+31
+2.795
+12
+0.205000000000001
+22
+0.0
+32
+2.795
+13
+0.205000000000001
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+2.795
+11
+0.205000000000001
+21
+0.0
+31
+3.0
+12
+2.77555756156289e-16
+22
+0.0
+32
+3.0
+13
+2.77555756156289e-16
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+1.5
+11
+1.19348975147204e-15
+21
+0.0
+31
+0.204999999999999
+12
+0.205000000000001
+22
+0.0
+32
+0.204999999999999
+13
+0.205000000000001
+23
+0.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+0.204999999999999
+11
+0.205000000000001
+21
+0.0
+31
+1.5
+12
+1.19348975147204e-15
+22
+0.0
+32
+1.5
+13
+1.19348975147204e-15
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+0.204999999999999
+11
+1.19348975147204e-15
+21
+0.0
+31
+-1.16573417585641e-15
+12
+0.205000000000001
+22
+0.0
+32
+-1.16573417585641e-15
+13
+0.205000000000001
+23
+0.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.19348975147204e-15
+20
+0.0
+30
+-1.16573417585641e-15
+11
+0.205000000000001
+21
+0.0
+31
+0.204999999999999
+12
+1.19348975147204e-15
+22
+0.0
+32
+0.204999999999999
+13
+1.19348975147204e-15
+23
+0.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+3.0
+11
+0.205000000000001
+21
+0.0
+31
+2.795
+12
+0.878679656440356
+22
+0.0
+32
+2.795
+13
+0.878679656440356
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+2.795
+11
+0.878679656440356
+21
+0.0
+31
+3.0
+12
+0.205000000000001
+22
+0.0
+32
+3.0
+13
+0.205000000000001
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+3.0
+11
+0.878679656440356
+21
+0.0
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+0.204999999999999
+11
+0.497732043121054
+21
+0.0
+31
+1.19348975147204e-15
+12
+0.878679656440356
+22
+0.0
+32
+-7.35522753814166e-16
+13
+0.878679656440356
+23
+0.0
+33
+-7.35522753814166e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.497732043121054
+20
+0.0
+30
+1.19348975147204e-15
+11
+0.205000000000001
+21
+0.0
+31
+0.204999999999999
+12
+0.205000000000001
+22
+0.0
+32
+-1.16573417585641e-15
+13
+0.205000000000001
+23
+0.0
+33
+-1.16573417585641e-15
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+0.204999999999999
+11
+0.497732043121054
+21
+0.0
+31
+1.19348975147204e-15
+12
+0.878679656440356
+22
+0.0
+32
+0.204999999999999
+13
+0.878679656440356
+23
+0.0
+33
+0.204999999999999
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+2.17367965644035
+11
+0.205000000000001
+21
+0.0
+31
+2.795
+12
+0.205000000000001
+22
+0.0
+32
+1.5
+13
+0.205000000000001
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+2.795
+11
+0.878679656440356
+21
+0.0
+31
+2.17367965644035
+12
+0.878679656440356
+22
+0.0
+32
+2.795
+13
+0.878679656440356
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.878679656440356
+20
+0.0
+30
+0.826320343559644
+11
+0.205000000000001
+21
+0.0
+31
+0.204999999999999
+12
+0.878679656440356
+22
+0.0
+32
+0.204999999999999
+13
+0.878679656440356
+23
+0.0
+33
+0.204999999999999
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.205000000000001
+20
+0.0
+30
+0.204999999999999
+11
+0.878679656440356
+21
+0.0
+31
+0.826320343559644
+12
+0.205000000000001
+22
+0.0
+32
+1.5
+13
+0.205000000000001
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.12132034355964
+21
+5.55111512312578e-17
+31
+2.17367965644036
+12
+2.12132034355964
+22
+5.55111512312578e-17
+32
+2.795
+13
+2.12132034355964
+23
+5.55111512312578e-17
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.86297548735602
+22
+0.820920626451767
+32
+1.5
+13
+1.86297548735602
+23
+0.820920626451767
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+1.86297548735602
+21
+0.820920626451767
+31
+1.5
+12
+1.92778907942509
+22
+0.85976839852704
+32
+1.5
+13
+1.92778907942509
+23
+0.85976839852704
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+1.92778907942509
+21
+0.85976839852704
+31
+1.5
+12
+1.98848282880601
+22
+0.904781950910692
+32
+1.5
+13
+1.98848282880601
+23
+0.904781950910692
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+2.04447222151364
+21
+0.955527778486358
+31
+1.5
+12
+2.04447222151364
+22
+0.955527778486358
+32
+-1.11022302462516e-16
+13
+2.04447222151364
+23
+0.955527778486358
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+0.955527778486358
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.20736753927986e-15
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.955527778486359
+21
+2.04447222151364
+31
+1.20736753927986e-15
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27648079851406
+21
+2.2368440585138
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+1.5
+13
+1.20533375707888
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851406
+20
+2.2368440585138
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.34978045204758
+22
+2.25520466591049
+32
+1.5
+13
+1.34978045204758
+23
+2.25520466591049
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.34978045204758
+20
+2.25520466591049
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.42452680194624
+22
+2.26629223953759
+32
+1.5
+13
+1.42452680194624
+23
+2.26629223953759
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.42452680194624
+20
+2.26629223953759
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.820920626451766
+21
+1.86297548735602
+31
+1.5
+12
+0.78861275996631
+22
+1.79466624292112
+32
+1.5
+13
+0.78861275996631
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451766
+20
+1.86297548735602
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.859768398527041
+22
+1.92778907942509
+32
+1.5
+13
+0.859768398527041
+23
+1.92778907942509
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.859768398527041
+20
+1.92778907942509
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.904781950910694
+22
+1.98848282880601
+32
+1.5
+13
+0.904781950910694
+23
+1.98848282880601
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.904781950910694
+20
+1.98848282880601
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+2.21138724003369
+22
+1.20533375707888
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.20533375707888
+33
+-6.66133814775094e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.78861275996631
+21
+1.79466624292112
+31
+1.5
+12
+0.78861275996631
+22
+1.79466624292112
+32
+2.77555756156289e-17
+13
+0.78861275996631
+23
+1.79466624292112
+33
+2.77555756156289e-17
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.78861275996631
+20
+1.79466624292112
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+2.21138724003369
+22
+1.20533375707888
+32
+1.5
+13
+2.21138724003369
+23
+1.20533375707888
+33
+1.5
+70
+15
+ 0
+3DFACE
+ 8
+star_d
+10
+0.78861275996631
+20
+1.79466624292112
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01151717119399
+21
+2.09521804908931
+31
+1.5
+12
+0.955527778486359
+22
+2.04447222151364
+32
+1.5
+13
+0.955527778486359
+23
+2.04447222151364
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+2.09521804908931
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.07221092057491
+22
+2.14023160147296
+32
+1.5
+13
+1.07221092057491
+23
+2.14023160147296
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.07221092057491
+20
+2.14023160147296
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.13702451264398
+22
+2.17907937354823
+32
+1.5
+13
+1.13702451264398
+23
+2.17907937354823
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.13702451264398
+20
+2.17907937354823
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20533375707888
+22
+2.21138724003369
+32
+1.5
+13
+1.20533375707888
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.27648079851406
+20
+0.763155941486199
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27648079851406
+21
+0.763155941486199
+31
+1.5
+12
+1.34978045204758
+22
+0.744795334089513
+32
+1.5
+13
+1.34978045204758
+23
+0.744795334089513
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.34978045204758
+21
+0.744795334089513
+31
+1.5
+12
+1.42452680194624
+22
+0.733707760462408
+32
+1.5
+13
+1.42452680194624
+23
+0.733707760462408
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.42452680194624
+21
+0.733707760462408
+31
+1.5
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.79466624292112
+21
+0.788612759966309
+31
+1.5
+12
+1.79466624292112
+22
+0.788612759966309
+32
+-1.38777878078145e-16
+13
+1.79466624292112
+23
+0.788612759966309
+33
+-1.38777878078145e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.20533375707888
+22
+2.21138724003369
+32
+-5.68989300120393e-16
+13
+1.20533375707888
+23
+2.21138724003369
+33
+-5.68989300120393e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.20533375707888
+21
+2.21138724003369
+31
+-5.68989300120393e-16
+12
+1.20533375707888
+22
+2.21138724003369
+32
+1.5
+13
+1.20533375707888
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+0.733707760462408
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+0.73
+32
+1.5
+13
+1.5
+23
+0.73
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.5
+12
+1.79466624292112
+22
+0.788612759966309
+32
+1.5
+13
+1.79466624292112
+23
+0.788612759966309
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+1.57547319805376
+21
+0.733707760462408
+31
+1.5
+12
+1.65021954795242
+22
+0.744795334089513
+32
+1.5
+13
+1.65021954795242
+23
+0.744795334089513
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+0.788612759966309
+30
+1.5
+11
+1.65021954795242
+21
+0.744795334089513
+31
+1.5
+12
+1.72351920148594
+22
+0.763155941486199
+32
+1.5
+13
+1.72351920148594
+23
+0.763155941486199
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.79466624292112
+20
+2.21138724003369
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+1.86297548735602
+22
+2.17907937354823
+32
+1.5
+13
+1.86297548735602
+23
+2.17907937354823
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.86297548735602
+20
+2.17907937354823
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+1.92778907942509
+22
+2.14023160147296
+32
+1.5
+13
+1.92778907942509
+23
+2.14023160147296
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.92778907942509
+20
+2.14023160147296
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+1.98848282880601
+22
+2.09521804908931
+32
+1.5
+13
+1.98848282880601
+23
+2.09521804908931
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.5
+21
+0.73
+31
+1.5
+12
+1.5
+22
+0.73
+32
+6.93889390390723e-16
+13
+1.5
+23
+0.73
+33
+6.93889390390723e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+0.73
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+2.27
+32
+6.93889390390723e-16
+13
+1.5
+23
+2.27
+33
+6.93889390390723e-16
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+2.27
+31
+6.93889390390723e-16
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.820920626451766
+20
+1.13702451264398
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.820920626451766
+21
+1.13702451264398
+31
+1.5
+12
+0.859768398527041
+22
+1.07221092057491
+32
+1.5
+13
+0.859768398527041
+23
+1.07221092057491
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.859768398527041
+21
+1.07221092057491
+31
+1.5
+12
+0.904781950910694
+22
+1.01151717119399
+32
+1.5
+13
+0.904781950910694
+23
+1.01151717119399
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.904781950910694
+21
+1.01151717119399
+31
+1.5
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.57547319805376
+21
+2.26629223953759
+31
+1.5
+12
+1.5
+22
+2.27
+32
+1.5
+13
+1.5
+23
+2.27
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+2.26629223953759
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.79466624292112
+22
+2.21138724003369
+32
+1.5
+13
+1.79466624292112
+23
+2.21138724003369
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.57547319805376
+20
+2.26629223953759
+30
+1.5
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.65021954795242
+22
+2.25520466591049
+32
+1.5
+13
+1.65021954795242
+23
+2.25520466591049
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.65021954795242
+20
+2.25520466591049
+30
+1.5
+11
+1.79466624292112
+21
+2.21138724003369
+31
+1.5
+12
+1.72351920148594
+22
+2.2368440585138
+32
+1.5
+13
+1.72351920148594
+23
+2.2368440585138
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+1.20533375707888
+21
+0.788612759966309
+31
+1.5
+12
+1.20533375707888
+22
+0.788612759966309
+32
+2.63677968348475e-16
+13
+1.20533375707888
+23
+0.788612759966309
+33
+2.63677968348475e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.20533375707888
+20
+0.788612759966309
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.79466624292112
+22
+2.21138724003369
+32
+-1.4432899320127e-15
+13
+1.79466624292112
+23
+2.21138724003369
+33
+-1.4432899320127e-15
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.79466624292112
+21
+2.21138724003369
+31
+-1.4432899320127e-15
+12
+1.79466624292112
+22
+2.21138724003369
+32
+1.5
+13
+1.79466624292112
+23
+2.21138724003369
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.2368440585138
+22
+1.72351920148594
+32
+1.5
+13
+2.2368440585138
+23
+1.72351920148594
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.2368440585138
+20
+1.72351920148594
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.25520466591049
+22
+1.65021954795242
+32
+1.5
+13
+2.25520466591049
+23
+1.65021954795242
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.25520466591049
+20
+1.65021954795242
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.26629223953759
+22
+1.57547319805376
+32
+1.5
+13
+2.26629223953759
+23
+1.57547319805376
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.01151717119399
+20
+0.904781950910693
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01151717119399
+21
+0.904781950910693
+31
+1.5
+12
+1.07221092057491
+22
+0.85976839852704
+32
+1.5
+13
+1.07221092057491
+23
+0.85976839852704
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.07221092057491
+21
+0.85976839852704
+31
+1.5
+12
+1.13702451264398
+22
+0.820920626451767
+32
+1.5
+13
+1.13702451264398
+23
+0.820920626451767
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.13702451264398
+21
+0.820920626451767
+31
+1.5
+12
+1.20533375707888
+22
+0.788612759966309
+32
+1.5
+13
+1.20533375707888
+23
+0.788612759966309
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+2.04447222151364
+22
+2.04447222151364
+32
+-1.11022302462516e-16
+13
+2.04447222151364
+23
+2.04447222151364
+33
+-1.11022302462516e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.20736753927986e-15
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.20736753927986e-15
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+0.955527778486358
+30
+1.20736753927986e-15
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+0.955527778486359
+22
+0.955527778486358
+32
+1.5
+13
+0.955527778486359
+23
+0.955527778486358
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.955527778486359
+20
+0.955527778486358
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.73370776046241
+21
+1.57547319805376
+31
+1.5
+12
+0.729999999999999
+22
+1.5
+32
+1.5
+13
+0.729999999999999
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.73370776046241
+20
+1.57547319805376
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.744795334089513
+22
+1.65021954795242
+32
+1.5
+13
+0.744795334089513
+23
+1.65021954795242
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.744795334089513
+20
+1.65021954795242
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.763155941486199
+22
+1.72351920148594
+32
+1.5
+13
+0.763155941486199
+23
+1.72351920148594
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+0.763155941486199
+20
+1.72351920148594
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.78861275996631
+22
+1.79466624292112
+32
+1.5
+13
+0.78861275996631
+23
+1.79466624292112
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+2.04447222151364
+21
+2.04447222151364
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.04447222151364
+20
+2.04447222151364
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+2.09521804908931
+22
+1.98848282880601
+32
+1.5
+13
+2.09521804908931
+23
+1.98848282880601
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.09521804908931
+20
+1.98848282880601
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+2.14023160147296
+22
+1.92778907942509
+32
+1.5
+13
+2.14023160147296
+23
+1.92778907942509
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+star_d
+10
+2.14023160147296
+20
+1.92778907942509
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+2.17907937354823
+22
+1.86297548735602
+32
+1.5
+13
+2.17907937354823
+23
+1.86297548735602
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.79466624292112
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+2.21138724003369
+22
+1.79466624292112
+32
+-6.66133814775094e-16
+13
+2.21138724003369
+23
+1.79466624292112
+33
+-6.66133814775094e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+15
+ 0
+3DFACE
+ 8
+star_d
+10
+0.788612759966309
+20
+1.20533375707888
+30
+1.5
+11
+2.21138724003369
+21
+1.79466624292112
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.788612759966309
+20
+1.20533375707888
+30
+1.5
+11
+0.78861275996631
+21
+1.20533375707888
+31
+2.77555756156289e-17
+12
+1.5
+22
+1.5
+32
+1.19348975147204e-15
+13
+1.5
+23
+1.5
+33
+1.19348975147204e-15
+70
+12
+ 0
+3DFACE
+ 8
+star_d
+10
+0.73370776046241
+20
+1.42452680194624
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.729999999999999
+22
+1.5
+32
+1.5
+13
+0.729999999999999
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.73370776046241
+21
+1.42452680194624
+31
+1.5
+12
+0.744795334089513
+22
+1.34978045204758
+32
+1.5
+13
+0.744795334089513
+23
+1.34978045204758
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.744795334089513
+21
+1.34978045204758
+31
+1.5
+12
+0.763155941486199
+22
+1.27648079851406
+32
+1.5
+13
+0.763155941486199
+23
+1.27648079851406
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.763155941486199
+21
+1.27648079851406
+31
+1.5
+12
+0.788612759966309
+22
+1.20533375707888
+32
+1.5
+13
+0.788612759966309
+23
+1.20533375707888
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.21138724003369
+20
+1.20533375707888
+30
+1.5
+11
+2.27
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.21138724003369
+21
+1.20533375707888
+31
+1.5
+12
+2.2368440585138
+22
+1.27648079851406
+32
+1.5
+13
+2.2368440585138
+23
+1.27648079851406
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.2368440585138
+21
+1.27648079851406
+31
+1.5
+12
+2.25520466591049
+22
+1.34978045204758
+32
+1.5
+13
+2.25520466591049
+23
+1.34978045204758
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+2.25520466591049
+21
+1.34978045204758
+31
+1.5
+12
+2.26629223953759
+22
+1.42452680194624
+32
+1.5
+13
+2.26629223953759
+23
+1.42452680194624
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+0.729999999999999
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+0.73
+22
+1.5
+32
+7.07767178198537e-16
+13
+0.73
+23
+1.5
+33
+7.07767178198537e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+0.729999999999999
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+star_d
+10
+1.5
+20
+1.5
+30
+1.19348975147204e-15
+11
+2.27
+21
+1.5
+31
+1.5
+12
+2.27
+22
+1.5
+32
+-2.35922392732846e-16
+13
+2.27
+23
+1.5
+33
+-2.35922392732846e-16
+70
+1
+ 0
+3DFACE
+ 8
+star_d
+10
+2.27
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.19348975147204e-15
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.795
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+0.205
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+1.5
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+3.0
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+0.205
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+0.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+2.545
+21
+0.25
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.545
+20
+0.25
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.0225
+22
+0.25
+32
+2.0225
+13
+2.0225
+23
+0.25
+33
+2.0225
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.1475
+20
+0.0
+30
+0.8525
+11
+1.5
+21
+0.25
+31
+0.455
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.25
+30
+0.455
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+2.0225
+22
+0.25
+32
+0.9775
+13
+2.0225
+23
+0.25
+33
+0.9775
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.9775
+20
+0.25
+30
+2.0225
+11
+1.5
+21
+0.0
+31
+2.795
+12
+0.8525
+22
+0.0
+32
+2.1475
+13
+0.8525
+23
+0.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+2.795
+11
+0.9775
+21
+0.25
+31
+2.0225
+12
+1.5
+22
+0.25
+32
+2.545
+13
+1.5
+23
+0.25
+33
+2.545
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.9775
+20
+0.25
+30
+0.9775
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.9775
+21
+0.25
+31
+0.9775
+12
+0.454999999999999
+22
+0.25
+32
+1.5
+13
+0.454999999999999
+23
+0.25
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+0.205
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+1.5
+21
+0.0
+31
+3.0
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.0
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+0.74
+20
+1.5
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.20163144893051
+22
+3.0
+32
+0.0
+13
+1.20163144893051
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+2.26
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+0.0
+11
+2.12132034355964
+21
+0.0
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+2.50226795687895
+22
+0.0
+32
+0.0
+13
+2.50226795687895
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+0.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+0.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+0.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+0.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+0.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.497732043121051
+32
+0.0
+13
+0.0
+23
+0.497732043121051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+0.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+0.0
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+0.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+0.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.74
+20
+1.5
+30
+0.0
+11
+0.0
+21
+1.20163144893051
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.74
+21
+1.5
+31
+0.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+0.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+0.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+0.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.878679656440357
+32
+0.0
+13
+0.0
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+0.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.0
+21
+2.12132034355964
+31
+0.0
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.12132034355964
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+1.79836855106949
+32
+0.0
+13
+3.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.26
+20
+1.5
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.35173135526774
+30
+0.0
+11
+0.0
+21
+0.878679656440357
+31
+0.0
+12
+0.0
+22
+1.20163144893051
+32
+0.0
+13
+0.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+0.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+0.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+3.0
+22
+0.497732043121051
+32
+0.0
+13
+3.0
+23
+0.497732043121051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.0
+21
+1.79836855106949
+31
+0.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+0.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.743659607729131
+20
+1.57449302665047
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.743659607729131
+20
+1.42550697334953
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.743659607729131
+20
+1.42550697334953
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.35173135526774
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+0.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.35173135526774
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+0.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.772725344843521
+20
+1.27938364528661
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.772725344843521
+20
+1.27938364528661
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+0.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.82973983909525
+20
+1.14173848001224
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.82973983909525
+20
+1.14173848001224
+30
+0.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+0.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+0.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.01786110403563
+20
+0.91251205544432
+30
+0.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.01786110403563
+20
+0.91251205544432
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+0.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.14173848001224
+20
+0.82973983909525
+30
+0.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.14173848001224
+20
+0.82973983909525
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+0.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.27938364528661
+20
+0.772725344843521
+30
+0.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.27938364528661
+20
+0.772725344843521
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+0.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+0.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+0.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+0.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+0.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+0.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+0.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+0.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+0.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+0.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+0.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+0.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+0.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+0.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+0.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+0.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.878679656440357
+30
+0.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.878679656440357
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440356
+20
+3.0
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+0.74
+20
+1.5
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+2.26
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+ 0
+LINE
+ 8
+lid_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.26
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.0
+21
+2.795
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+3.0
+13
+3.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+3.0
+22
+0.878679656440357
+32
+3.0
+13
+3.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.5
+22
+0.0
+32
+3.0
+13
+1.5
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+3.0
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.878679656440357
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.878679656440357
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+0.0
+30
+3.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+3.0
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.20163144893051
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+3.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.20163144893051
+30
+3.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.0
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+3.0
+11
+1.5
+21
+0.0
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+0.0
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.205
+21
+0.0
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+3.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+3.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+3.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+3.0
+11
+3.0
+21
+0.878679656440357
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+3.0
+21
+0.878679656440357
+31
+3.0
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+0.0
+30
+3.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+3.0
+13
+2.795
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.74
+20
+1.5
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.74
+21
+1.5
+31
+3.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+3.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+1.79836855106949
+32
+3.0
+13
+0.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+3.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+3.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.0
+21
+0.205
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+3.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.35173135526774
+30
+3.0
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+3.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.743659607729131
+20
+1.42550697334953
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.743659607729131
+20
+1.57449302665047
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.743659607729131
+20
+1.57449302665047
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+3.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+3.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+3.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.772725344843521
+20
+1.72061635471339
+30
+3.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.772725344843521
+20
+1.72061635471339
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+3.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+3.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.01786110403563
+20
+2.08748794455568
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+3.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.14173848001224
+20
+2.17026016090475
+30
+3.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+3.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+3.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+3.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.64826864473226
+20
+2.24539681310645
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+3.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.64826864473226
+20
+2.24539681310645
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+3.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+3.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+3.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+3.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+3.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+3.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+3.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+3.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+3.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+3.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+3.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+3.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+2.795
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+0.205
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+0.205
+22
+3.0
+32
+0.0
+13
+0.205
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.497732043121052
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.878679656440356
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.20163144893051
+22
+3.0
+32
+0.0
+13
+1.20163144893051
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+0.205
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.497732043121052
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+15
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.795
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.8525
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+1.5
+11
+1.5
+21
+3.0
+31
+0.205
+12
+0.8525
+22
+3.0
+32
+0.8525
+13
+0.8525
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+2.795
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.8525
+20
+3.0
+30
+2.1475
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.8525
+22
+0.0
+32
+2.1475
+13
+0.8525
+23
+0.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.1475
+20
+0.0
+30
+0.8525
+11
+1.5
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+2.795
+13
+0.205
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.795
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+0.205
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.25
+30
+0.455
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+1.5
+21
+0.25
+31
+0.455
+12
+0.9775
+22
+0.25
+32
+0.9775
+13
+0.9775
+23
+0.25
+33
+0.9775
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+1.5
+20
+0.25
+30
+2.545
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+1.5
+21
+0.25
+31
+2.545
+12
+2.0225
+22
+0.25
+32
+2.0225
+13
+2.0225
+23
+0.25
+33
+2.0225
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.0225
+21
+0.25
+31
+0.9775
+12
+2.1475
+22
+0.0
+32
+0.8525
+13
+2.1475
+23
+0.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+2.0225
+20
+0.25
+30
+0.9775
+11
+2.795
+21
+0.0
+31
+1.5
+12
+2.545
+22
+0.25
+32
+1.5
+13
+2.545
+23
+0.25
+33
+1.5
+70
+1
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+2.795
+31
+0.205
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+ 0
+LINE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.5
+31
+0.205
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.878679656440357
+32
+3.0
+13
+3.0
+23
+0.878679656440357
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+1.5
+13
+3.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.0
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+2.795
+13
+3.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+0.205
+13
+3.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+3.0
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+15
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+1.5
+31
+0.205
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+0.205
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+2.795
+31
+0.205
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.205
+32
+0.0
+13
+0.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+0.878679656440357
+32
+0.0
+13
+0.0
+23
+0.878679656440357
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.20163144893051
+32
+0.0
+13
+0.0
+23
+1.20163144893051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+1.5
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+1.5
+13
+0.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+0.0
+13
+0.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+2.795
+13
+0.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.454999999999999
+20
+0.25
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_base
+10
+0.8525
+20
+0.0
+30
+2.1475
+11
+0.454999999999999
+21
+0.25
+31
+1.5
+12
+0.9775
+22
+0.25
+32
+2.0225
+13
+0.9775
+23
+0.25
+33
+2.0225
+70
+1
+ 0
+3DFACE
+ 8
+lid_b
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.5
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_b
+10
+2.795
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0
+31
+1.5
+12
+2.7325
+22
+0.0625
+32
+1.5
+13
+2.7325
+23
+0.0625
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_b
+10
+1.5
+20
+0.0625
+30
+2.7325
+11
+1.5
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+lid_b
+10
+1.5
+20
+0.0625
+30
+2.7325
+11
+2.7325
+21
+0.0625
+31
+1.5
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_b
+10
+2.7325
+20
+0.0625
+30
+1.5
+11
+1.5
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_b
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.7325
+21
+0.0625
+31
+1.5
+12
+1.5
+22
+0.0625
+32
+2.7325
+13
+1.5
+23
+0.0625
+33
+2.7325
+70
+1
+ 0
+3DFACE
+ 8
+lid_c
+10
+1.5
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_c
+10
+1.5
+20
+0.0625
+30
+0.2675
+11
+1.5
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_c
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.7325
+21
+0.0625000000000004
+31
+1.5
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_c
+10
+2.7325
+20
+0.0625000000000004
+30
+1.5
+11
+1.5
+21
+0.0625
+31
+0.2675
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_c
+10
+1.5
+20
+0.0625
+30
+0.2675
+11
+2.795
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_c
+10
+2.795
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0625
+31
+0.2675
+12
+2.7325
+22
+0.0625000000000004
+32
+1.5
+13
+2.7325
+23
+0.0625000000000004
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_d
+10
+0.205
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_d
+10
+1.5
+20
+0.0
+30
+1.5
+11
+0.2675
+21
+0.0625
+31
+1.5
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_d
+10
+1.5
+20
+0.0625
+30
+0.2675
+11
+1.5
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+lid_d
+10
+1.5
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0625
+31
+0.2675
+12
+0.2675
+22
+0.0625
+32
+1.5
+13
+0.2675
+23
+0.0625
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_d
+10
+0.205
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0625
+31
+0.2675
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+lid_d
+10
+1.5
+20
+0.0625
+30
+0.2675
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.2675
+22
+0.0625
+32
+1.5
+13
+0.2675
+23
+0.0625
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_a
+10
+1.5
+20
+0.0
+30
+2.795
+11
+0.205
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_a
+10
+1.5
+20
+0.0625
+30
+2.7325
+11
+1.5
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_a
+10
+1.5
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.2675
+22
+0.0625
+32
+1.5
+13
+0.2675
+23
+0.0625
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+lid_a
+10
+1.5
+20
+0.0
+30
+2.795
+11
+0.2675
+21
+0.0625
+31
+1.5
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+lid_a
+10
+0.2675
+20
+0.0625
+30
+1.5
+11
+1.5
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0625
+32
+2.7325
+13
+1.5
+23
+0.0625
+33
+2.7325
+70
+1
+ 0
+3DFACE
+ 8
+lid_a
+10
+1.5
+20
+0.0625
+30
+2.7325
+11
+1.5
+21
+0.0
+31
+1.5
+12
+0.2675
+22
+0.0625
+32
+1.5
+13
+0.2675
+23
+0.0625
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.61135857342883
+20
+3.0
+30
+1.20801452412167
+11
+1.58220277009702
+21
+1.5
+31
+1.1985054650771
+12
+1.58220277009702
+22
+3.0
+32
+1.1985054650771
+13
+1.58220277009702
+23
+3.0
+33
+1.1985054650771
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.58220277009702
+20
+1.5
+30
+1.1985054650771
+11
+1.61135857342883
+21
+3.0
+31
+1.20801452412167
+12
+1.61135857342883
+22
+1.5
+32
+1.20801452412167
+13
+1.61135857342883
+23
+1.5
+33
+1.20801452412167
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.5
+30
+-6.93889390390723e-17
+11
+1.5
+21
+1.5
+31
+1.18780925188093
+12
+1.71583333333333
+22
+1.5
+32
+0.8525
+13
+1.71583333333333
+23
+1.5
+33
+0.8525
+70
+15
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+1.18780925188093
+11
+1.295
+21
+1.5
+31
+-6.93889390390723e-17
+12
+1.295
+22
+1.5
+32
+3.0
+13
+1.295
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+1.18780925188093
+11
+1.295
+21
+1.5
+31
+3.0
+12
+1.5
+22
+1.5
+32
+1.81219074811907
+13
+1.5
+23
+1.5
+33
+1.81219074811907
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+1.81219074811907
+11
+1.295
+21
+1.5
+31
+3.0
+12
+1.50885609734932
+22
+1.5
+32
+1.81237448605758
+13
+1.50885609734932
+23
+1.5
+33
+1.81237448605758
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.50885609734932
+20
+1.5
+30
+1.81237448605758
+11
+1.295
+21
+1.5
+31
+3.0
+12
+1.71583333333333
+22
+1.5
+32
+2.1475
+13
+1.71583333333333
+23
+1.5
+33
+2.1475
+70
+15
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.295
+21
+1.5
+31
+3.0
+12
+2.1475
+22
+1.5
+32
+2.1475
+13
+2.1475
+23
+1.5
+33
+2.1475
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+2.1475
+11
+2.1475
+21
+1.5
+31
+1.71583333333333
+12
+1.71583333333333
+22
+1.5
+32
+2.1475
+13
+1.71583333333333
+23
+1.5
+33
+2.1475
+70
+12
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.70501413192602
+20
+1.5
+30
+1.73585049440402
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.71583333333333
+22
+1.5
+32
+1.72547110140021
+13
+1.71583333333333
+23
+1.5
+33
+1.72547110140021
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.70501413192602
+21
+1.5
+31
+1.73585049440402
+12
+1.68090954183794
+22
+1.5
+32
+1.7548097087475
+13
+1.68090954183794
+23
+1.5
+33
+1.7548097087475
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.68090954183794
+21
+1.5
+31
+1.7548097087475
+12
+1.65506269396675
+22
+1.5
+32
+1.77131496630259
+13
+1.65506269396675
+23
+1.5
+33
+1.77131496630259
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.65506269396675
+21
+1.5
+31
+1.77131496630259
+12
+1.62772250758676
+22
+1.5
+32
+1.78520731241634
+13
+1.62772250758676
+23
+1.5
+33
+1.78520731241634
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.62772250758676
+21
+1.5
+31
+1.78520731241634
+12
+1.59915228363849
+22
+1.5
+32
+1.79635295620134
+13
+1.59915228363849
+23
+1.5
+33
+1.79635295620134
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.59915228363849
+21
+1.5
+31
+1.79635295620134
+12
+1.56962716899663
+22
+1.5
+32
+1.80464455901512
+13
+1.56962716899663
+23
+1.5
+33
+1.80464455901512
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.56962716899663
+21
+1.5
+31
+1.80464455901512
+12
+1.53943150665524
+22
+1.5
+32
+1.81000226818992
+13
+1.53943150665524
+23
+1.5
+33
+1.81000226818992
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.53943150665524
+21
+1.5
+31
+1.81000226818992
+12
+1.50885609734932
+22
+1.5
+32
+1.81237448605758
+13
+1.50885609734932
+23
+1.5
+33
+1.81237448605758
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+1.71461991087043
+21
+1.5
+31
+1.27285567614847
+12
+1.71583333333333
+22
+1.5
+32
+1.27412051524007
+13
+1.71583333333333
+23
+1.5
+33
+1.27412051524007
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+1.5
+30
+1.27285567614847
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.69132242027198
+22
+1.5
+32
+1.25291300823137
+13
+1.69132242027198
+23
+1.5
+33
+1.25291300823137
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.69132242027198
+20
+1.5
+30
+1.25291300823137
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.66618239017884
+22
+1.5
+32
+1.23534992311649
+13
+1.66618239017884
+23
+1.5
+33
+1.23534992311649
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.66618239017884
+20
+1.5
+30
+1.23534992311649
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.63944193282374
+22
+1.5
+32
+1.22033556291445
+13
+1.63944193282374
+23
+1.5
+33
+1.22033556291445
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.63944193282374
+20
+1.5
+30
+1.22033556291445
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.61135857342883
+22
+1.5
+32
+1.20801452412167
+13
+1.61135857342883
+23
+1.5
+33
+1.20801452412167
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.61135857342883
+20
+1.5
+30
+1.20801452412167
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.58220277009702
+22
+1.5
+32
+1.1985054650771
+13
+1.58220277009702
+23
+1.5
+33
+1.1985054650771
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.58220277009702
+20
+1.5
+30
+1.1985054650771
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.55225530915257
+22
+1.5
+32
+1.19189996321751
+13
+1.55225530915257
+23
+1.5
+33
+1.19189996321751
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.55225530915257
+20
+1.5
+30
+1.19189996321751
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.52180460101532
+22
+1.5
+32
+1.18826163313676
+13
+1.52180460101532
+23
+1.5
+33
+1.18826163313676
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.52180460101532
+20
+1.5
+30
+1.18826163313676
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.5
+22
+1.5
+32
+1.18780925188093
+13
+1.5
+23
+1.5
+33
+1.18780925188093
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+1.5
+32
+-6.93889390390723e-17
+13
+1.295
+23
+1.5
+33
+-6.93889390390723e-17
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+0.8525
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+2.1475
+22
+1.5
+32
+1.28416666666667
+13
+2.1475
+23
+1.5
+33
+1.28416666666667
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.19319581865357
+31
+-2.75981973074096e-17
+12
+1.295
+22
+1.295
+32
+-2.99528920185329e-17
+13
+1.295
+23
+1.295
+33
+-2.99528920185329e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.56962716899663
+20
+1.5
+30
+1.80464455901512
+11
+1.53943150665524
+21
+3.0
+31
+1.81000226818992
+12
+1.53943150665524
+22
+1.5
+32
+1.81000226818992
+13
+1.53943150665524
+23
+1.5
+33
+1.81000226818992
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.53943150665524
+20
+3.0
+30
+1.81000226818992
+11
+1.56962716899663
+21
+1.5
+31
+1.80464455901512
+12
+1.56962716899663
+22
+3.0
+32
+1.80464455901512
+13
+1.56962716899663
+23
+3.0
+33
+1.80464455901512
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.68090954183794
+20
+1.5
+30
+1.7548097087475
+11
+1.65506269396675
+21
+3.0
+31
+1.77131496630259
+12
+1.65506269396675
+22
+1.5
+32
+1.77131496630259
+13
+1.65506269396675
+23
+1.5
+33
+1.77131496630259
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.65506269396675
+20
+3.0
+30
+1.77131496630259
+11
+1.68090954183794
+21
+1.5
+31
+1.7548097087475
+12
+1.68090954183794
+22
+3.0
+32
+1.7548097087475
+13
+1.68090954183794
+23
+3.0
+33
+1.7548097087475
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.52180460101532
+20
+3.0
+30
+1.18826163313676
+11
+1.5
+21
+1.5
+31
+1.18780925188093
+12
+1.5
+22
+3.0
+32
+1.18780925188093
+13
+1.5
+23
+3.0
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+1.18780925188093
+11
+1.52180460101532
+21
+3.0
+31
+1.18826163313676
+12
+1.52180460101532
+22
+1.5
+32
+1.18826163313676
+13
+1.52180460101532
+23
+1.5
+33
+1.18826163313676
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+1.81219074811907
+11
+1.5
+21
+1.5
+31
+1.18780925188093
+12
+1.5
+22
+1.5
+32
+1.81219074811907
+13
+1.5
+23
+1.5
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+1.18780925188093
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.5
+22
+3.0
+32
+1.18780925188093
+13
+1.5
+23
+3.0
+33
+1.18780925188093
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+1.18780925188093
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+3.0
+30
+2.1475
+11
+1.71583333333333
+21
+1.5
+31
+1.72547110140021
+12
+1.71583333333333
+22
+1.5
+32
+2.1475
+13
+1.71583333333333
+23
+1.5
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+1.72547110140021
+11
+1.71583333333333
+21
+3.0
+31
+2.1475
+12
+1.71583333333333
+22
+3.0
+32
+1.72547110140021
+13
+1.71583333333333
+23
+3.0
+33
+1.72547110140021
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.58220277009702
+20
+3.0
+30
+1.1985054650771
+11
+1.55225530915257
+21
+1.5
+31
+1.19189996321751
+12
+1.55225530915257
+22
+3.0
+32
+1.19189996321751
+13
+1.55225530915257
+23
+3.0
+33
+1.19189996321751
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.55225530915257
+20
+1.5
+30
+1.19189996321751
+11
+1.58220277009702
+21
+3.0
+31
+1.1985054650771
+12
+1.58220277009702
+22
+1.5
+32
+1.1985054650771
+13
+1.58220277009702
+23
+1.5
+33
+1.1985054650771
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+1.71583333333333
+11
+1.71583333333333
+21
+3.0
+31
+2.1475
+12
+1.71583333333333
+22
+1.5
+32
+2.1475
+13
+1.71583333333333
+23
+1.5
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+3.0
+30
+2.1475
+11
+2.1475
+21
+1.5
+31
+1.71583333333333
+12
+2.1475
+22
+3.0
+32
+1.71583333333333
+13
+2.1475
+23
+3.0
+33
+1.71583333333333
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.66618239017884
+20
+3.0
+30
+1.23534992311649
+11
+1.63944193282374
+21
+1.5
+31
+1.22033556291445
+12
+1.63944193282374
+22
+3.0
+32
+1.22033556291445
+13
+1.63944193282374
+23
+3.0
+33
+1.22033556291445
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.63944193282374
+20
+1.5
+30
+1.22033556291445
+11
+1.66618239017884
+21
+3.0
+31
+1.23534992311649
+12
+1.66618239017884
+22
+1.5
+32
+1.23534992311649
+13
+1.66618239017884
+23
+1.5
+33
+1.23534992311649
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.69132242027198
+20
+3.0
+30
+1.25291300823137
+11
+1.66618239017884
+21
+1.5
+31
+1.23534992311649
+12
+1.66618239017884
+22
+3.0
+32
+1.23534992311649
+13
+1.66618239017884
+23
+3.0
+33
+1.23534992311649
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.66618239017884
+20
+1.5
+30
+1.23534992311649
+11
+1.69132242027198
+21
+3.0
+31
+1.25291300823137
+12
+1.69132242027198
+22
+1.5
+32
+1.25291300823137
+13
+1.69132242027198
+23
+1.5
+33
+1.25291300823137
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.27285567614847
+11
+1.69132242027198
+21
+1.5
+31
+1.25291300823137
+12
+1.69132242027198
+22
+3.0
+32
+1.25291300823137
+13
+1.69132242027198
+23
+3.0
+33
+1.25291300823137
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.69132242027198
+20
+1.5
+30
+1.25291300823137
+11
+1.71461991087043
+21
+3.0
+31
+1.27285567614847
+12
+1.71461991087043
+22
+1.5
+32
+1.27285567614847
+13
+1.71461991087043
+23
+1.5
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+3.0
+30
+0.8525
+11
+2.1475
+21
+1.5
+31
+1.28416666666667
+12
+1.71583333333333
+22
+1.5
+32
+0.8525
+13
+1.71583333333333
+23
+1.5
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+1.28416666666667
+11
+1.71583333333333
+21
+3.0
+31
+0.8525
+12
+2.1475
+22
+3.0
+32
+1.28416666666667
+13
+2.1475
+23
+3.0
+33
+1.28416666666667
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+2.1475
+21
+1.5
+31
+1.71583333333333
+12
+2.1475
+22
+1.5
+32
+2.1475
+13
+2.1475
+23
+1.5
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+1.71583333333333
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+2.1475
+22
+3.0
+32
+1.71583333333333
+13
+2.1475
+23
+3.0
+33
+1.71583333333333
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.53943150665524
+20
+1.5
+30
+1.81000226818992
+11
+1.50885609734932
+21
+3.0
+31
+1.81237448605758
+12
+1.50885609734932
+22
+1.5
+32
+1.81237448605758
+13
+1.50885609734932
+23
+1.5
+33
+1.81237448605758
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.50885609734932
+20
+3.0
+30
+1.81237448605758
+11
+1.53943150665524
+21
+1.5
+31
+1.81000226818992
+12
+1.53943150665524
+22
+3.0
+32
+1.81000226818992
+13
+1.53943150665524
+23
+3.0
+33
+1.81000226818992
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.50885609734932
+20
+1.5
+30
+1.81237448605758
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.5
+22
+1.5
+32
+1.81219074811907
+13
+1.5
+23
+1.5
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+1.81219074811907
+11
+1.50885609734932
+21
+1.5
+31
+1.81237448605758
+12
+1.50885609734932
+22
+3.0
+32
+1.81237448605758
+13
+1.50885609734932
+23
+3.0
+33
+1.81237448605758
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.62772250758676
+20
+1.5
+30
+1.78520731241634
+11
+1.59915228363849
+21
+3.0
+31
+1.79635295620134
+12
+1.59915228363849
+22
+1.5
+32
+1.79635295620134
+13
+1.59915228363849
+23
+1.5
+33
+1.79635295620134
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.59915228363849
+20
+3.0
+30
+1.79635295620134
+11
+1.62772250758676
+21
+1.5
+31
+1.78520731241634
+12
+1.62772250758676
+22
+3.0
+32
+1.78520731241634
+13
+1.62772250758676
+23
+3.0
+33
+1.78520731241634
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.59915228363849
+20
+1.5
+30
+1.79635295620134
+11
+1.56962716899663
+21
+3.0
+31
+1.80464455901512
+12
+1.56962716899663
+22
+1.5
+32
+1.80464455901512
+13
+1.56962716899663
+23
+1.5
+33
+1.80464455901512
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.56962716899663
+20
+3.0
+30
+1.80464455901512
+11
+1.59915228363849
+21
+1.5
+31
+1.79635295620134
+12
+1.59915228363849
+22
+3.0
+32
+1.79635295620134
+13
+1.59915228363849
+23
+3.0
+33
+1.79635295620134
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+3.0
+30
+1.27412051524007
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.71583333333333
+22
+1.5
+32
+1.27412051524007
+13
+1.71583333333333
+23
+1.5
+33
+1.27412051524007
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+1.71583333333333
+21
+3.0
+31
+1.27412051524007
+12
+1.71583333333333
+22
+3.0
+32
+0.8525
+13
+1.71583333333333
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.65506269396675
+20
+1.5
+30
+1.77131496630259
+11
+1.62772250758676
+21
+3.0
+31
+1.78520731241634
+12
+1.62772250758676
+22
+1.5
+32
+1.78520731241634
+13
+1.62772250758676
+23
+1.5
+33
+1.78520731241634
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.62772250758676
+20
+3.0
+30
+1.78520731241634
+11
+1.65506269396675
+21
+1.5
+31
+1.77131496630259
+12
+1.65506269396675
+22
+3.0
+32
+1.77131496630259
+13
+1.65506269396675
+23
+3.0
+33
+1.77131496630259
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.55225530915257
+20
+3.0
+30
+1.19189996321751
+11
+1.52180460101532
+21
+1.5
+31
+1.18826163313676
+12
+1.52180460101532
+22
+3.0
+32
+1.18826163313676
+13
+1.52180460101532
+23
+3.0
+33
+1.18826163313676
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.52180460101532
+20
+1.5
+30
+1.18826163313676
+11
+1.55225530915257
+21
+3.0
+31
+1.19189996321751
+12
+1.55225530915257
+22
+1.5
+32
+1.19189996321751
+13
+1.55225530915257
+23
+1.5
+33
+1.19189996321751
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.54077703531283
+30
+3.0
+11
+2.1475
+21
+1.5
+31
+2.1475
+12
+1.295
+22
+1.5
+32
+3.0
+13
+1.295
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+2.1475
+11
+1.295
+21
+1.54077703531283
+31
+3.0
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+1.54077703531283
+31
+3.0
+12
+1.295
+22
+1.58491378028648
+32
+3.0
+13
+1.295
+23
+1.58491378028648
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+1.58491378028648
+31
+3.0
+12
+1.295
+22
+1.63697662077346
+32
+3.0
+13
+1.295
+23
+1.63697662077346
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+1.63697662077346
+31
+3.0
+12
+1.295
+22
+1.705
+32
+3.0
+13
+1.295
+23
+1.705
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+1.705
+31
+3.0
+12
+1.295
+22
+1.80680418134643
+32
+3.0
+13
+1.295
+23
+1.80680418134643
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+1.80680418134643
+31
+3.0
+12
+1.295
+22
+1.99491378028649
+32
+3.0
+13
+1.295
+23
+1.99491378028649
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+1.99491378028649
+31
+3.0
+12
+1.295
+22
+2.2311863483779
+32
+3.0
+13
+1.295
+23
+2.2311863483779
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+2.2311863483779
+31
+3.0
+12
+1.295
+22
+2.5306045958858
+32
+3.0
+13
+1.295
+23
+2.5306045958858
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+2.5306045958858
+31
+3.0
+12
+1.295
+22
+3.0
+32
+3.0
+13
+1.295
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.54077703531283
+31
+3.0
+12
+1.295
+22
+1.5
+32
+3.0
+13
+1.295
+23
+1.5
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.28416666666667
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+2.1475
+22
+1.5
+32
+1.28416666666667
+13
+2.1475
+23
+1.5
+33
+1.28416666666667
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+0.8525
+11
+2.1475
+21
+3.0
+31
+1.28416666666667
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.70501413192602
+20
+1.5
+30
+1.73585049440402
+11
+1.68090954183794
+21
+3.0
+31
+1.7548097087475
+12
+1.68090954183794
+22
+1.5
+32
+1.7548097087475
+13
+1.68090954183794
+23
+1.5
+33
+1.7548097087475
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.68090954183794
+20
+3.0
+30
+1.7548097087475
+11
+1.70501413192602
+21
+1.5
+31
+1.73585049440402
+12
+1.70501413192602
+22
+3.0
+32
+1.73585049440402
+13
+1.70501413192602
+23
+3.0
+33
+1.73585049440402
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.63944193282374
+20
+3.0
+30
+1.22033556291445
+11
+1.61135857342883
+21
+1.5
+31
+1.20801452412167
+12
+1.61135857342883
+22
+3.0
+32
+1.20801452412167
+13
+1.61135857342883
+23
+3.0
+33
+1.20801452412167
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.61135857342883
+20
+1.5
+30
+1.20801452412167
+11
+1.63944193282374
+21
+3.0
+31
+1.22033556291445
+12
+1.63944193282374
+22
+1.5
+32
+1.22033556291445
+13
+1.63944193282374
+23
+1.5
+33
+1.22033556291445
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.27285567614847
+11
+1.71583333333333
+21
+1.5
+31
+1.27412051524007
+12
+1.71461991087043
+22
+1.5
+32
+1.27285567614847
+13
+1.71461991087043
+23
+1.5
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+1.27412051524007
+11
+1.71461991087043
+21
+3.0
+31
+1.27285567614847
+12
+1.71583333333333
+22
+3.0
+32
+1.27412051524007
+13
+1.71583333333333
+23
+3.0
+33
+1.27412051524007
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+1.5
+30
+1.72547110140021
+11
+1.70501413192602
+21
+3.0
+31
+1.73585049440402
+12
+1.70501413192602
+22
+1.5
+32
+1.73585049440402
+13
+1.70501413192602
+23
+1.5
+33
+1.73585049440402
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.70501413192602
+20
+3.0
+30
+1.73585049440402
+11
+1.71583333333333
+21
+1.5
+31
+1.72547110140021
+12
+1.71461991087043
+22
+3.0
+32
+1.72547110140021
+13
+1.71461991087043
+23
+3.0
+33
+1.72547110140021
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.72547110140021
+11
+1.71583333333333
+21
+1.5
+31
+1.72547110140021
+12
+1.71583333333333
+22
+3.0
+32
+1.72547110140021
+13
+1.71583333333333
+23
+3.0
+33
+1.72547110140021
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+1.5
+30
+0.8525
+11
+1.295
+21
+1.54077703531283
+31
+-3.67694180123813e-17
+12
+1.295
+22
+1.5
+32
+-6.93889390390723e-17
+13
+1.295
+23
+1.5
+33
+-6.93889390390723e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.54077703531283
+30
+-3.67694180123813e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+1.58491378028649
+32
+-3.90153260770453e-17
+13
+1.295
+23
+1.58491378028649
+33
+-3.90153260770453e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.58491378028649
+30
+-3.90153260770453e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+1.63697662077346
+32
+-4.16645552711963e-17
+13
+1.295
+23
+1.63697662077346
+33
+-4.16645552711963e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.63697662077346
+30
+-4.16645552711963e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+1.705
+32
+-4.51259400217434e-17
+13
+1.295
+23
+1.705
+33
+-4.51259400217434e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.705
+30
+-4.51259400217434e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+1.80680418134643
+32
+-5.03062683862146e-17
+13
+1.295
+23
+1.80680418134643
+33
+-5.03062683862146e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.80680418134643
+30
+-5.03062683862146e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+1.99491378028649
+32
+-5.98782670814598e-17
+13
+1.295
+23
+1.99491378028649
+33
+-5.98782670814598e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.99491378028649
+30
+-5.98782670814598e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+2.2311863483779
+32
+-7.19010491523201e-17
+13
+1.295
+23
+2.2311863483779
+33
+-7.19010491523201e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+2.2311863483779
+30
+-7.19010491523201e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+2.5306045958858
+32
+-8.71370131362283e-17
+13
+1.295
+23
+2.5306045958858
+33
+-8.71370131362283e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+2.5306045958858
+30
+-8.71370131362283e-17
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.295
+22
+3.0
+32
+-2.22044604925031e-16
+13
+1.295
+23
+3.0
+33
+-2.22044604925031e-16
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+3.0
+30
+-2.22044604925031e-16
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+0.205
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+0.740000000000001
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291423
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+2.03740115370178
+20
+0.962598846298225
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893546
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+0.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.295
+31
+-2.99528920185329e-17
+12
+1.295
+22
+1.36302337922654
+32
+-3.1526248723327e-17
+13
+1.295
+23
+1.36302337922654
+33
+-3.1526248723327e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.45922296468717
+31
+-3.37513111136975e-17
+12
+1.295
+22
+1.5
+32
+-6.93889390390723e-17
+13
+1.295
+23
+1.5
+33
+-6.93889390390723e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.80680418134643
+31
+-5.03062683862146e-17
+12
+1.295
+22
+1.99491378028649
+32
+-5.98782670814598e-17
+13
+1.295
+23
+1.99491378028649
+33
+-5.98782670814598e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.41508621971352
+31
+-3.27304438115775e-17
+12
+1.295
+22
+1.45922296468717
+32
+-3.37513111136975e-17
+13
+1.295
+23
+1.45922296468717
+33
+-3.37513111136975e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.5
+31
+-6.93889390390723e-17
+12
+1.295
+22
+1.54077703531283
+32
+-3.67694180123813e-17
+13
+1.295
+23
+1.54077703531283
+33
+-3.67694180123813e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+2.24539681310646
+30
+0.0
+11
+1.295
+21
+2.2311863483779
+31
+-7.19010491523201e-17
+12
+1.295
+22
+2.5306045958858
+32
+-8.71370131362283e-17
+13
+1.295
+23
+2.5306045958858
+33
+-8.71370131362283e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+2.24539681310646
+30
+0.0
+11
+1.295
+21
+1.99491378028649
+31
+-5.98782670814598e-17
+12
+1.295
+22
+2.2311863483779
+32
+-7.19010491523201e-17
+13
+1.295
+23
+2.2311863483779
+33
+-7.19010491523201e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.99491378028649
+30
+-5.98782670814598e-17
+11
+1.35173135526774
+21
+2.24539681310646
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.58491378028649
+31
+-3.90153260770453e-17
+12
+1.295
+22
+1.63697662077346
+32
+-4.16645552711963e-17
+13
+1.295
+23
+1.63697662077346
+33
+-4.16645552711963e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.63697662077346
+31
+-4.16645552711963e-17
+12
+1.295
+22
+1.705
+32
+-4.51259400217434e-17
+13
+1.295
+23
+1.705
+33
+-4.51259400217434e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298225
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298225
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+3.0
+22
+0.497732043121052
+32
+0.0
+13
+3.0
+23
+0.497732043121052
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.497732043121052
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+3.0
+21
+0.497732043121052
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.497732043121052
+30
+0.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.497732043121052
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+3.0
+22
+0.878679656440358
+32
+0.0
+13
+3.0
+23
+0.878679656440358
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+3.0
+21
+0.878679656440358
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.878679656440358
+30
+0.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.878679656440358
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.295
+21
+2.5306045958858
+31
+-8.71370131362283e-17
+12
+1.295
+22
+3.0
+32
+-2.22044604925031e-16
+13
+1.295
+23
+3.0
+33
+-2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+2.5306045958858
+30
+-8.71370131362283e-17
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310646
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310646
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+2.24539681310646
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+2.26
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+0.754603186893546
+30
+0.0
+11
+1.295
+21
+0.0
+31
+0.0
+12
+1.295
+22
+0.469395404114199
+32
+-1.0856949693767e-17
+13
+1.295
+23
+0.469395404114199
+33
+-1.0856949693767e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893546
+31
+0.0
+12
+1.5
+22
+4.9960036108132e-16
+32
+0.0
+13
+1.5
+23
+4.9960036108132e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+4.9960036108132e-16
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893546
+31
+0.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+0.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+4.9960036108132e-16
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.5
+22
+0.740000000000001
+32
+0.0
+13
+1.5
+23
+0.740000000000001
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+4.9960036108132e-16
+31
+0.0
+12
+1.5
+22
+0.740000000000001
+32
+0.0
+13
+1.5
+23
+0.740000000000001
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+4.9960036108132e-16
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.79836855106949
+22
+4.9960036108132e-16
+32
+0.0
+13
+1.79836855106949
+23
+4.9960036108132e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+4.9960036108132e-16
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893546
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893546
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.705
+31
+-4.51259400217434e-17
+12
+1.295
+22
+1.80680418134643
+32
+-5.03062683862146e-17
+13
+1.295
+23
+1.80680418134643
+33
+-5.03062683862146e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.36302337922654
+31
+-3.1526248723327e-17
+12
+1.295
+22
+1.41508621971352
+32
+-3.27304438115775e-17
+13
+1.295
+23
+1.41508621971352
+33
+-3.27304438115775e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+0.829739839095251
+30
+0.0
+11
+2.12132034355964
+21
+4.44089209850063e-16
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291423
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291423
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+4.44089209850063e-16
+30
+0.0
+11
+1.85826151998776
+21
+0.829739839095251
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+4.44089209850063e-16
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+2.50226795687895
+22
+4.44089209850063e-16
+32
+0.0
+13
+2.50226795687895
+23
+4.44089209850063e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+0.772725344843522
+30
+0.0
+11
+1.79836855106949
+21
+4.9960036108132e-16
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893546
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893546
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+4.9960036108132e-16
+30
+0.0
+11
+1.72061635471339
+21
+0.772725344843522
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291423
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291423
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+4.9960036108132e-16
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291423
+31
+0.0
+12
+2.12132034355964
+22
+4.44089209850063e-16
+32
+0.0
+13
+2.12132034355964
+23
+4.44089209850063e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.26
+20
+1.5
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+2.795
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+0.754603186893546
+30
+0.0
+11
+1.295
+21
+0.469395404114199
+31
+-1.0856949693767e-17
+12
+1.295
+22
+0.768813651622095
+32
+-1.77823878682707e-17
+13
+1.295
+23
+0.768813651622095
+33
+-1.77823878682707e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+0.768813651622095
+31
+-1.77823878682707e-17
+12
+1.295
+22
+1.00508621971351
+32
+-2.32472888095709e-17
+13
+1.295
+23
+1.00508621971351
+33
+-2.32472888095709e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.768813651622095
+30
+-1.77823878682707e-17
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893546
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893546
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.12132034355964
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+1.79836855106949
+32
+0.0
+13
+3.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+0.912512055444321
+30
+0.0
+11
+2.50226795687895
+21
+4.44089209850063e-16
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+4.44089209850063e-16
+30
+0.0
+11
+1.98213889596437
+21
+0.912512055444321
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298225
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298225
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+4.44089209850063e-16
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298225
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310646
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310646
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+0.740000000000001
+32
+0.0
+13
+1.5
+23
+0.740000000000001
+33
+0.0
+70
+15
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+0.740000000000001
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+0.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893546
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893546
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.64826864473226
+20
+0.754603186893546
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+0.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+0.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.64826864473226
+20
+0.754603186893546
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.72061635471339
+22
+0.772725344843522
+32
+0.0
+13
+1.72061635471339
+23
+0.772725344843522
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+0.772725344843522
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+0.772725344843522
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291423
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291423
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79083940859747
+20
+0.797851555291423
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+0.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79083940859747
+20
+0.797851555291423
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.85826151998776
+22
+0.829739839095251
+32
+0.0
+13
+1.85826151998776
+23
+0.829739839095251
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+0.829739839095251
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+0.829739839095251
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+0.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.98213889596437
+22
+0.912512055444321
+32
+0.0
+13
+1.98213889596437
+23
+0.912512055444321
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+0.912512055444321
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+0.912512055444321
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298225
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298225
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.03740115370178
+20
+0.962598846298225
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+0.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.03740115370178
+20
+0.962598846298225
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+0.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+0.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+0.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+0.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+0.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+0.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893546
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893546
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.5
+22
+0.740000000000001
+32
+0.0
+13
+1.5
+23
+0.740000000000001
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.00508621971351
+31
+-2.32472888095709e-17
+12
+1.295
+22
+1.19319581865357
+32
+-2.75981973074096e-17
+13
+1.295
+23
+1.19319581865357
+33
+-2.75981973074096e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.295
+21
+1.54077703531283
+31
+-3.67694180123813e-17
+12
+1.295
+22
+1.58491378028649
+32
+-3.90153260770453e-17
+13
+1.295
+23
+1.58491378028649
+33
+-3.90153260770453e-17
+70
+0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+0.740000000000001
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893546
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+2.03740115370178
+20
+0.962598846298225
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291423
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+2.26
+31
+3.0
+ 0
+LINE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.5
+31
+3.0
+12
+1.295
+22
+1.45922296468717
+32
+3.0
+13
+1.295
+23
+1.45922296468717
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+2.24539681310646
+30
+3.0
+11
+1.295
+21
+2.5306045958858
+31
+3.0
+12
+1.295
+22
+2.2311863483779
+32
+3.0
+13
+1.295
+23
+2.2311863483779
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+2.2311863483779
+31
+3.0
+12
+1.295
+22
+1.99491378028649
+32
+3.0
+13
+1.295
+23
+1.99491378028649
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+2.2311863483779
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310646
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.36302337922654
+31
+3.0
+12
+1.295
+22
+1.295
+32
+3.0
+13
+1.295
+23
+1.295
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+4.9960036108132e-16
+30
+3.0
+11
+1.295
+21
+0.469395404114199
+31
+3.0
+12
+1.295
+22
+0.0
+32
+3.0
+13
+1.295
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.469395404114199
+30
+3.0
+11
+1.5
+21
+4.9960036108132e-16
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893546
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893546
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+0.754603186893546
+30
+3.0
+11
+1.5
+21
+4.9960036108132e-16
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+4.9960036108132e-16
+31
+3.0
+12
+1.5
+22
+0.740000000000001
+32
+3.0
+13
+1.5
+23
+0.740000000000001
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.41508621971352
+31
+3.0
+12
+1.295
+22
+1.36302337922654
+32
+3.0
+13
+1.295
+23
+1.36302337922654
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.295
+31
+3.0
+12
+1.295
+22
+1.19319581865357
+32
+3.0
+13
+1.295
+23
+1.19319581865357
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298225
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298225
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.497732043121052
+32
+3.0
+13
+3.0
+23
+0.497732043121052
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.497732043121052
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+3.0
+13
+3.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.497732043121052
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+3.0
+21
+0.497732043121052
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+3.0
+21
+0.497732043121052
+31
+3.0
+12
+3.0
+22
+0.878679656440358
+32
+3.0
+13
+3.0
+23
+0.878679656440358
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.58491378028648
+31
+3.0
+12
+1.295
+22
+1.54077703531283
+32
+3.0
+13
+1.295
+23
+1.54077703531283
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.45922296468717
+31
+3.0
+12
+1.295
+22
+1.41508621971352
+32
+3.0
+13
+1.295
+23
+1.41508621971352
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.19319581865357
+31
+3.0
+12
+1.295
+22
+1.00508621971351
+32
+3.0
+13
+1.295
+23
+1.00508621971351
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+0.754603186893546
+30
+3.0
+11
+1.295
+21
+0.768813651622095
+31
+3.0
+12
+1.295
+22
+0.469395404114199
+32
+3.0
+13
+1.295
+23
+0.469395404114199
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.878679656440358
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+3.0
+11
+3.0
+21
+0.878679656440358
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+3.0
+21
+0.878679656440358
+31
+3.0
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.80680418134643
+31
+3.0
+12
+1.295
+22
+1.705
+32
+3.0
+13
+1.295
+23
+1.705
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.99491378028649
+31
+3.0
+12
+1.295
+22
+1.80680418134643
+32
+3.0
+13
+1.295
+23
+1.80680418134643
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.705
+31
+3.0
+12
+1.295
+22
+1.63697662077346
+32
+3.0
+13
+1.295
+23
+1.63697662077346
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.295
+21
+1.63697662077346
+31
+3.0
+12
+1.295
+22
+1.58491378028648
+32
+3.0
+13
+1.295
+23
+1.58491378028648
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+2.24539681310646
+30
+3.0
+11
+1.295
+21
+3.0
+31
+3.0
+12
+1.295
+22
+2.5306045958858
+32
+3.0
+13
+1.295
+23
+2.5306045958858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+3.0
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310646
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310646
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+4.44089209850063e-16
+30
+3.0
+11
+1.85826151998776
+21
+0.829739839095251
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291423
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291423
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+0.829739839095251
+30
+3.0
+11
+2.12132034355964
+21
+4.44089209850063e-16
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.12132034355964
+21
+4.44089209850063e-16
+31
+3.0
+12
+2.50226795687895
+22
+4.44089209850063e-16
+32
+3.0
+13
+2.50226795687895
+23
+4.44089209850063e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+4.44089209850063e-16
+30
+3.0
+11
+1.98213889596437
+21
+0.912512055444321
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+0.912512055444321
+30
+3.0
+11
+2.50226795687895
+21
+4.44089209850063e-16
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298225
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298225
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.03740115370178
+20
+0.962598846298225
+30
+3.0
+11
+2.50226795687895
+21
+4.44089209850063e-16
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.35173135526774
+20
+0.754603186893546
+30
+3.0
+11
+1.295
+21
+1.00508621971351
+31
+3.0
+12
+1.295
+22
+0.768813651622095
+32
+3.0
+13
+1.295
+23
+0.768813651622095
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.00508621971351
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893546
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+4.9960036108132e-16
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843522
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893546
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893546
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+0.772725344843522
+30
+3.0
+11
+1.79836855106949
+21
+4.9960036108132e-16
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291423
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291423
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79083940859747
+20
+0.797851555291423
+30
+3.0
+11
+1.79836855106949
+21
+4.9960036108132e-16
+31
+3.0
+12
+2.12132034355964
+22
+4.44089209850063e-16
+32
+3.0
+13
+2.12132034355964
+23
+4.44089209850063e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.26
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+4.9960036108132e-16
+30
+3.0
+11
+1.5
+21
+0.740000000000001
+31
+3.0
+12
+1.5
+22
+4.9960036108132e-16
+32
+3.0
+13
+1.5
+23
+4.9960036108132e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+0.740000000000001
+30
+3.0
+11
+1.79836855106949
+21
+4.9960036108132e-16
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.79836855106949
+21
+4.9960036108132e-16
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893546
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893546
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893546
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893546
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+0.740000000000001
+32
+3.0
+13
+1.5
+23
+0.740000000000001
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.5
+21
+0.740000000000001
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+15
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+3.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893546
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893546
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893546
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.64826864473226
+20
+2.24539681310646
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893546
+31
+3.0
+12
+1.72061635471339
+22
+0.772725344843522
+32
+3.0
+13
+1.72061635471339
+23
+0.772725344843522
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.64826864473226
+20
+2.24539681310646
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843522
+31
+3.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+3.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843522
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291423
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291423
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291423
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291423
+31
+3.0
+12
+1.85826151998776
+22
+0.829739839095251
+32
+3.0
+13
+1.85826151998776
+23
+0.829739839095251
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.85826151998776
+21
+0.829739839095251
+31
+3.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+3.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+1.85826151998776
+21
+0.829739839095251
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+3.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+0.912512055444321
+32
+3.0
+13
+1.98213889596437
+23
+0.912512055444321
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+1.98213889596437
+21
+0.912512055444321
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298225
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298225
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298225
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298225
+31
+3.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+3.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+3.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+3.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+3.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+3.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+3.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+3.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310646
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.0
+30
+0.205
+11
+2.50226795687895
+21
+4.44089209850063e-16
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+4.44089209850063e-16
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+2.12132034355964
+22
+4.44089209850063e-16
+32
+0.0
+13
+2.12132034355964
+23
+4.44089209850063e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+4.44089209850063e-16
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+1.79836855106949
+22
+4.9960036108132e-16
+32
+0.0
+13
+1.79836855106949
+23
+4.9960036108132e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+4.9960036108132e-16
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+1.5
+22
+4.9960036108132e-16
+32
+0.0
+13
+1.5
+23
+4.9960036108132e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+4.9960036108132e-16
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+1.295
+22
+0.0
+32
+0.0
+13
+1.295
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+1.295
+22
+0.0
+32
+3.0
+13
+1.295
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+4.44089209850063e-16
+32
+3.0
+13
+2.50226795687895
+23
+4.44089209850063e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+3.0
+11
+2.50226795687895
+21
+4.44089209850063e-16
+31
+3.0
+12
+2.12132034355964
+22
+4.44089209850063e-16
+32
+3.0
+13
+2.12132034355964
+23
+4.44089209850063e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+3.0
+11
+2.12132034355964
+21
+4.44089209850063e-16
+31
+3.0
+12
+1.79836855106949
+22
+4.9960036108132e-16
+32
+3.0
+13
+1.79836855106949
+23
+4.9960036108132e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+3.0
+11
+1.79836855106949
+21
+4.9960036108132e-16
+31
+3.0
+12
+1.5
+22
+4.9960036108132e-16
+32
+3.0
+13
+1.5
+23
+4.9960036108132e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.469395404114199
+30
+3.0
+11
+1.295
+21
+0.0
+31
+0.0
+12
+1.295
+22
+0.0
+32
+3.0
+13
+1.295
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.0
+30
+0.0
+11
+1.295
+21
+0.469395404114199
+31
+3.0
+12
+1.295
+22
+0.469395404114199
+32
+-1.0856949693767e-17
+13
+1.295
+23
+0.469395404114199
+33
+-1.0856949693767e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.469395404114199
+30
+-1.0856949693767e-17
+11
+1.295
+21
+0.469395404114199
+31
+3.0
+12
+1.295
+22
+0.768813651622095
+32
+-1.77823878682707e-17
+13
+1.295
+23
+0.768813651622095
+33
+-1.77823878682707e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.768813651622095
+30
+-1.77823878682707e-17
+11
+1.295
+21
+0.469395404114199
+31
+3.0
+12
+1.295
+22
+0.768813651622095
+32
+3.0
+13
+1.295
+23
+0.768813651622095
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.768813651622095
+30
+-1.77823878682707e-17
+11
+1.295
+21
+0.768813651622095
+31
+3.0
+12
+1.295
+22
+1.00508621971351
+32
+3.0
+13
+1.295
+23
+1.00508621971351
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+0.768813651622095
+30
+-1.77823878682707e-17
+11
+1.295
+21
+1.00508621971351
+31
+3.0
+12
+1.295
+22
+1.00508621971351
+32
+-2.32472888095709e-17
+13
+1.295
+23
+1.00508621971351
+33
+-2.32472888095709e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.00508621971351
+30
+-2.32472888095709e-17
+11
+1.295
+21
+1.00508621971351
+31
+3.0
+12
+1.295
+22
+1.19319581865357
+32
+-2.75981973074096e-17
+13
+1.295
+23
+1.19319581865357
+33
+-2.75981973074096e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.19319581865357
+30
+-2.75981973074096e-17
+11
+1.295
+21
+1.00508621971351
+31
+3.0
+12
+1.295
+22
+1.19319581865357
+32
+3.0
+13
+1.295
+23
+1.19319581865357
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.19319581865357
+30
+-2.75981973074096e-17
+11
+1.295
+21
+1.19319581865357
+31
+3.0
+12
+1.295
+22
+1.295
+32
+-2.99528920185329e-17
+13
+1.295
+23
+1.295
+33
+-2.99528920185329e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.295
+30
+-2.99528920185329e-17
+11
+1.295
+21
+1.19319581865357
+31
+3.0
+12
+1.295
+22
+1.295
+32
+3.0
+13
+1.295
+23
+1.295
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.295
+30
+-2.99528920185329e-17
+11
+1.295
+21
+1.295
+31
+3.0
+12
+1.295
+22
+1.36302337922654
+32
+-3.1526248723327e-17
+13
+1.295
+23
+1.36302337922654
+33
+-3.1526248723327e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.36302337922654
+30
+-3.1526248723327e-17
+11
+1.295
+21
+1.295
+31
+3.0
+12
+1.295
+22
+1.36302337922654
+32
+3.0
+13
+1.295
+23
+1.36302337922654
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.36302337922654
+30
+-3.1526248723327e-17
+11
+1.295
+21
+1.36302337922654
+31
+3.0
+12
+1.295
+22
+1.41508621971352
+32
+3.0
+13
+1.295
+23
+1.41508621971352
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.36302337922654
+30
+-3.1526248723327e-17
+11
+1.295
+21
+1.41508621971352
+31
+3.0
+12
+1.295
+22
+1.41508621971352
+32
+-3.27304438115775e-17
+13
+1.295
+23
+1.41508621971352
+33
+-3.27304438115775e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.41508621971352
+30
+-3.27304438115775e-17
+11
+1.295
+21
+1.41508621971352
+31
+3.0
+12
+1.295
+22
+1.45922296468717
+32
+3.0
+13
+1.295
+23
+1.45922296468717
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.41508621971352
+30
+-3.27304438115775e-17
+11
+1.295
+21
+1.45922296468717
+31
+3.0
+12
+1.295
+22
+1.45922296468717
+32
+-3.37513111136975e-17
+13
+1.295
+23
+1.45922296468717
+33
+-3.37513111136975e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.45922296468717
+30
+-3.37513111136975e-17
+11
+1.295
+21
+1.45922296468717
+31
+3.0
+12
+1.295
+22
+1.5
+32
+3.0
+13
+1.295
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.295
+20
+1.45922296468717
+30
+-3.37513111136975e-17
+11
+1.295
+21
+1.5
+31
+3.0
+12
+1.295
+22
+1.5
+32
+-6.93889390390723e-17
+13
+1.295
+23
+1.5
+33
+-6.93889390390723e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.295
+22
+3.0
+32
+3.0
+13
+1.295
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+0.205
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.295
+22
+3.0
+32
+-2.22044604925031e-16
+13
+1.295
+23
+3.0
+33
+-2.22044604925031e-16
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+0.205
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.795
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+2.795
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.71583333333333
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+1.5
+13
+2.1475
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+1.71583333333333
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+15
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.28416666666667
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+1.28416666666667
+12
+2.1475
+22
+3.0
+32
+1.5
+13
+2.1475
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.5
+11
+1.71583333333333
+21
+3.0
+31
+1.27412051524007
+12
+1.71461991087043
+22
+3.0
+32
+1.27285567614847
+13
+1.71461991087043
+23
+3.0
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71583333333333
+20
+3.0
+30
+1.27412051524007
+11
+1.71461991087043
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+1.28416666666667
+13
+2.1475
+23
+3.0
+33
+1.28416666666667
+70
+15
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.28416666666667
+11
+1.71461991087043
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+1.5
+13
+2.1475
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.28416666666667
+11
+1.71583333333333
+21
+3.0
+31
+0.8525
+12
+1.71583333333333
+22
+3.0
+32
+1.27412051524007
+13
+1.71583333333333
+23
+3.0
+33
+1.27412051524007
+70
+12
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.72547110140021
+11
+2.1475
+21
+3.0
+31
+1.5
+12
+1.71461991087043
+22
+3.0
+32
+1.5
+13
+1.71461991087043
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.5
+11
+1.71461991087043
+21
+3.0
+31
+1.72547110140021
+12
+2.1475
+22
+3.0
+32
+1.71583333333333
+13
+2.1475
+23
+3.0
+33
+1.71583333333333
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.71583333333333
+11
+1.71461991087043
+21
+3.0
+31
+1.72547110140021
+12
+1.71583333333333
+22
+3.0
+32
+1.72547110140021
+13
+1.71583333333333
+23
+3.0
+33
+1.72547110140021
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.1475
+20
+3.0
+30
+1.71583333333333
+11
+1.71583333333333
+21
+3.0
+31
+1.72547110140021
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+1.5
+11
+1.52180460101532
+21
+3.0
+31
+1.18826163313676
+12
+1.5
+22
+3.0
+32
+1.18780925188093
+13
+1.5
+23
+3.0
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.52180460101532
+20
+3.0
+30
+1.18826163313676
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.55225530915257
+22
+3.0
+32
+1.19189996321751
+13
+1.55225530915257
+23
+3.0
+33
+1.19189996321751
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.55225530915257
+20
+3.0
+30
+1.19189996321751
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.58220277009702
+22
+3.0
+32
+1.1985054650771
+13
+1.58220277009702
+23
+3.0
+33
+1.1985054650771
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.58220277009702
+20
+3.0
+30
+1.1985054650771
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.61135857342883
+22
+3.0
+32
+1.20801452412167
+13
+1.61135857342883
+23
+3.0
+33
+1.20801452412167
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.61135857342883
+20
+3.0
+30
+1.20801452412167
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.63944193282374
+22
+3.0
+32
+1.22033556291445
+13
+1.63944193282374
+23
+3.0
+33
+1.22033556291445
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.63944193282374
+20
+3.0
+30
+1.22033556291445
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.66618239017884
+22
+3.0
+32
+1.23534992311649
+13
+1.66618239017884
+23
+3.0
+33
+1.23534992311649
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.66618239017884
+20
+3.0
+30
+1.23534992311649
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.69132242027198
+22
+3.0
+32
+1.25291300823137
+13
+1.69132242027198
+23
+3.0
+33
+1.25291300823137
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.69132242027198
+20
+3.0
+30
+1.25291300823137
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.71461991087043
+22
+3.0
+32
+1.27285567614847
+13
+1.71461991087043
+23
+3.0
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.5
+20
+3.0
+30
+1.81219074811907
+11
+1.71461991087043
+21
+3.0
+31
+1.72547110140021
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.72547110140021
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.70501413192602
+22
+3.0
+32
+1.73585049440402
+13
+1.70501413192602
+23
+3.0
+33
+1.73585049440402
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.70501413192602
+20
+3.0
+30
+1.73585049440402
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.68090954183794
+22
+3.0
+32
+1.7548097087475
+13
+1.68090954183794
+23
+3.0
+33
+1.7548097087475
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.68090954183794
+20
+3.0
+30
+1.7548097087475
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.65506269396675
+22
+3.0
+32
+1.77131496630259
+13
+1.65506269396675
+23
+3.0
+33
+1.77131496630259
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.65506269396675
+20
+3.0
+30
+1.77131496630259
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.62772250758676
+22
+3.0
+32
+1.78520731241634
+13
+1.62772250758676
+23
+3.0
+33
+1.78520731241634
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.62772250758676
+20
+3.0
+30
+1.78520731241634
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.59915228363849
+22
+3.0
+32
+1.79635295620134
+13
+1.59915228363849
+23
+3.0
+33
+1.79635295620134
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.59915228363849
+20
+3.0
+30
+1.79635295620134
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.56962716899663
+22
+3.0
+32
+1.80464455901512
+13
+1.56962716899663
+23
+3.0
+33
+1.80464455901512
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.56962716899663
+20
+3.0
+30
+1.80464455901512
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.53943150665524
+22
+3.0
+32
+1.81000226818992
+13
+1.53943150665524
+23
+3.0
+33
+1.81000226818992
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.53943150665524
+20
+3.0
+30
+1.81000226818992
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.50885609734932
+22
+3.0
+32
+1.81237448605758
+13
+1.50885609734932
+23
+3.0
+33
+1.81237448605758
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.72547110140021
+11
+1.71461991087043
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+1.71461991087043
+20
+3.0
+30
+1.5
+11
+1.71461991087043
+21
+3.0
+31
+1.27285567614847
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+0.205
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+0
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.5
+31
+0.205
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+2.795
+31
+0.205
+ 0
+LINE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+1.5
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+1.5
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.497732043121052
+32
+3.0
+13
+3.0
+23
+0.497732043121052
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.497732043121052
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.878679656440358
+32
+3.0
+13
+3.0
+23
+0.878679656440358
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.878679656440358
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.0
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+1.5
+13
+3.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+0.205
+13
+3.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+15
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.497732043121052
+30
+0.0
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.497732043121052
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.497732043121052
+31
+0.0
+12
+3.0
+22
+0.878679656440358
+32
+0.0
+13
+3.0
+23
+0.878679656440358
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.878679656440358
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+2.795
+13
+3.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+1.5
+30
+0.0
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.79836855106949
+32
+0.0
+13
+3.0
+23
+1.79836855106949
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+3.0
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.0
+22
+1.79836855106949
+32
+3.0
+13
+0.0
+23
+1.79836855106949
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+0.205
+32
+2.795
+13
+0.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+2.277
+13
+0.0
+23
+1.5
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.53125
+21
+3.0
+31
+0.723
+12
+0.205
+22
+3.0
+32
+0.723
+13
+0.205
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+0.723
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.53125
+22
+3.0
+32
+0.982
+13
+0.53125
+23
+3.0
+33
+0.982
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+0.982
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.53125
+22
+3.0
+32
+1.17375
+13
+0.53125
+23
+3.0
+33
+1.17375
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.777
+21
+1.5
+31
+3.0
+12
+0.777
+22
+1.5
+32
+2.795
+13
+0.777
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.5
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.777
+22
+1.64381364161549
+32
+3.0
+13
+0.777
+23
+1.64381364161549
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.64381364161549
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.777
+22
+1.79947640559575
+32
+3.0
+13
+0.777
+23
+1.79947640559575
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.79947640559575
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.777
+22
+1.98309315521565
+32
+3.0
+13
+0.777
+23
+1.98309315521565
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.98309315521565
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.777
+22
+2.223
+32
+3.0
+13
+0.777
+23
+2.223
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+2.223
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.777
+22
+2.58204596640715
+32
+3.0
+13
+0.777
+23
+2.58204596640715
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+2.58204596640715
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.777
+22
+3.0
+32
+3.0
+13
+0.777
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+0.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+2.22044604925031e-16
+12
+1.295
+22
+0.0
+32
+2.22044604925031e-16
+13
+1.295
+23
+0.0
+33
+2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.0
+30
+2.22044604925031e-16
+11
+1.295
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.0
+30
+0.205
+11
+1.295
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.0
+30
+1.5
+11
+1.295
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.0
+30
+2.795
+11
+1.295
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.98309315521565
+30
+3.0
+11
+0.0
+21
+2.795
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+3.0
+11
+0.777
+21
+1.98309315521565
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.777
+21
+1.98309315521565
+31
+3.0
+12
+0.777
+22
+2.223
+32
+3.0
+13
+0.777
+23
+2.223
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.0
+21
+2.795
+31
+0.723
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+0.723
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+0.723
+13
+0.0
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+2.018
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.53125
+22
+1.5
+32
+2.018
+13
+0.53125
+23
+1.5
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+1.5
+30
+2.277
+11
+0.53125
+21
+3.0
+31
+2.018
+12
+0.53125
+22
+3.0
+32
+2.277
+13
+0.53125
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.0
+21
+3.0
+31
+3.0
+12
+0.205
+22
+3.0
+32
+3.0
+13
+0.205
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+1.82625
+11
+0.796875
+21
+3.0
+31
+1.5
+12
+0.53125
+22
+3.0
+32
+1.5
+13
+0.53125
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.5
+11
+0.53125
+21
+3.0
+31
+1.82625
+12
+0.796875
+22
+3.0
+32
+1.759
+13
+0.796875
+23
+3.0
+33
+1.759
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.759
+11
+0.53125
+21
+3.0
+31
+1.82625
+12
+0.796875
+22
+3.0
+32
+2.018
+13
+0.796875
+23
+3.0
+33
+2.018
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+2.018
+11
+0.53125
+21
+3.0
+31
+1.82625
+12
+0.723000000000001
+22
+3.0
+32
+2.018
+13
+0.723000000000001
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.723
+20
+3.0
+30
+0.982
+11
+0.53125
+21
+1.5
+31
+0.982
+12
+0.53125
+22
+3.0
+32
+0.982
+13
+0.53125
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+1.5
+30
+0.982
+11
+0.723
+21
+3.0
+31
+0.982
+12
+0.796875
+22
+1.5
+32
+0.982
+13
+0.796875
+23
+1.5
+33
+0.982
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+0.723
+21
+3.0
+31
+0.982
+12
+0.796875
+22
+3.0
+32
+0.982
+13
+0.796875
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.777
+22
+1.5
+32
+2.795
+13
+0.777
+23
+1.5
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.5
+30
+2.795
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.777
+22
+3.0
+32
+2.795
+13
+0.777
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+1.52655665885959e-16
+11
+1.295
+21
+0.0
+31
+3.0
+12
+1.295
+22
+0.0
+32
+2.22044604925031e-16
+13
+1.295
+23
+0.0
+33
+2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+0.0
+30
+3.0
+11
+1.295
+21
+1.5
+31
+1.52655665885959e-16
+12
+1.295
+22
+1.5
+32
+3.0
+13
+1.295
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.98309315521565
+30
+4.44089209850063e-17
+11
+0.0
+21
+2.12132034355964
+31
+0.0
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.776999999999999
+21
+1.98309315521565
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+1.79947640559575
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.79947640559575
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+0.205
+32
+2.22044604925031e-16
+13
+0.0
+23
+0.205
+33
+2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+0.723
+11
+0.53125
+21
+1.5
+31
+0.982
+12
+0.53125
+22
+1.5
+32
+0.723
+13
+0.53125
+23
+1.5
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+1.5
+30
+0.982
+11
+0.53125
+21
+3.0
+31
+0.723
+12
+0.53125
+22
+3.0
+32
+0.982
+13
+0.53125
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+1.5
+30
+2.277
+11
+0.0
+21
+2.277
+31
+2.277
+12
+0.0
+22
+1.5
+32
+2.277
+13
+0.0
+23
+1.5
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.277
+30
+2.277
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.0
+22
+2.795
+32
+2.277
+13
+0.0
+23
+2.795
+33
+2.277
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+2.277
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.0
+22
+3.0
+32
+2.277
+13
+0.0
+23
+3.0
+33
+2.277
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+2.277
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.205
+22
+3.0
+32
+2.277
+13
+0.205
+23
+3.0
+33
+2.277
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+2.277
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.53125
+22
+3.0
+32
+2.277
+13
+0.53125
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.759
+11
+0.796875
+21
+1.5
+31
+2.018
+12
+0.796875
+22
+1.5
+32
+1.759
+13
+0.796875
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+2.018
+11
+0.796875
+21
+3.0
+31
+1.759
+12
+0.796875
+22
+3.0
+32
+2.018
+13
+0.796875
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.5
+11
+1.0625
+21
+3.0
+31
+1.241
+12
+0.796875
+22
+3.0
+32
+1.241
+13
+0.796875
+23
+3.0
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+3.0
+30
+1.241
+11
+0.796875
+21
+3.0
+31
+1.5
+12
+1.0625
+22
+3.0
+32
+1.5
+13
+1.0625
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.79947640559575
+30
+3.0
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.777
+21
+1.79947640559575
+31
+3.0
+12
+0.777
+22
+1.98309315521565
+32
+3.0
+13
+0.777
+23
+1.98309315521565
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.205
+21
+3.0
+31
+0.723
+12
+0.0
+22
+3.0
+32
+0.723
+13
+0.0
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+0.723
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+0.982
+11
+0.796875
+21
+1.5
+31
+1.241
+12
+0.796875
+22
+1.5
+32
+0.982
+13
+0.796875
+23
+1.5
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+1.241
+11
+0.796875
+21
+3.0
+31
+0.982
+12
+0.796875
+22
+3.0
+32
+1.241
+13
+0.796875
+23
+3.0
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+1.5
+13
+0.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+1.5
+30
+1.759
+11
+0.796875
+21
+3.0
+31
+1.759
+12
+0.796875
+22
+1.5
+32
+1.759
+13
+0.796875
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.759
+11
+1.0625
+21
+1.5
+31
+1.759
+12
+1.0625
+22
+3.0
+32
+1.759
+13
+1.0625
+23
+3.0
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+2.22044604925031e-16
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+2.277
+11
+0.0
+21
+2.795
+31
+1.5
+12
+0.0
+22
+2.795
+32
+2.277
+13
+0.0
+23
+2.795
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.277
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.777
+22
+3.0
+32
+3.0
+13
+0.777
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.259
+22
+3.0
+32
+3.0
+13
+0.259
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+3.0
+30
+3.0
+11
+0.259
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+3.0
+30
+3.0
+11
+0.497732043121052
+21
+3.0
+31
+3.0
+12
+0.518
+22
+3.0
+32
+3.0
+13
+0.518
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+1.17375
+11
+0.723
+21
+3.0
+31
+0.982
+12
+0.53125
+22
+3.0
+32
+0.982
+13
+0.53125
+23
+3.0
+33
+0.982
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+1.5
+32
+0.723
+13
+0.0
+23
+1.5
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.5
+30
+0.205
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+0.205
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+2.018
+11
+0.53125
+21
+3.0
+31
+2.018
+12
+0.53125
+22
+1.5
+32
+2.018
+13
+0.53125
+23
+1.5
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+2.018
+11
+0.796875
+21
+1.5
+31
+2.018
+12
+0.723000000000001
+22
+3.0
+32
+2.018
+13
+0.723000000000001
+23
+3.0
+33
+2.018
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.723000000000001
+20
+3.0
+30
+2.018
+11
+0.796875
+21
+1.5
+31
+2.018
+12
+0.796875
+22
+3.0
+32
+2.018
+13
+0.796875
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+2.22044604925031e-16
+13
+0.0
+23
+2.795
+33
+2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.64381364161549
+30
+3.0
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+1.79836855106949
+32
+3.0
+13
+0.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.777
+21
+1.64381364161549
+31
+3.0
+12
+0.777
+22
+1.79947640559575
+32
+3.0
+13
+0.777
+23
+1.79947640559575
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.79947640559575
+30
+4.44089209850063e-17
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.776999999999999
+21
+1.79947640559575
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+1.5
+32
+8.88178419700126e-17
+13
+0.776999999999999
+23
+1.5
+33
+8.88178419700126e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.0
+31
+2.22044604925031e-16
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+2.22044604925031e-16
+11
+0.776999999999999
+21
+3.0
+31
+8.88178419700126e-17
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+3.0
+30
+8.88178419700126e-17
+11
+0.205
+21
+3.0
+31
+2.22044604925031e-16
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+2.22044604925031e-16
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+2.22044604925031e-16
+11
+0.0
+21
+2.795
+31
+2.22044604925031e-16
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+2.22044604925031e-16
+11
+0.776999999999999
+21
+2.223
+31
+4.44089209850063e-17
+12
+0.0
+22
+3.0
+32
+2.22044604925031e-16
+13
+0.0
+23
+3.0
+33
+2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+2.223
+30
+4.44089209850063e-17
+11
+0.205
+21
+3.0
+31
+2.22044604925031e-16
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+2.223
+30
+4.44089209850063e-17
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+0.776999999999999
+22
+2.58204596640715
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.58204596640715
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+1.82625
+11
+0.53125
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.5
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.777
+21
+1.5
+31
+3.0
+12
+0.777
+22
+1.64381364161549
+32
+3.0
+13
+0.777
+23
+1.64381364161549
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.723000000000001
+20
+3.0
+30
+2.018
+11
+0.53125
+21
+3.0
+31
+1.82625
+12
+0.53125
+22
+3.0
+32
+2.018
+13
+0.53125
+23
+3.0
+33
+2.018
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+1.17375
+11
+0.796875
+21
+3.0
+31
+0.982
+12
+0.723
+22
+3.0
+32
+0.982
+13
+0.723
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+0.982
+11
+0.53125
+21
+3.0
+31
+1.17375
+12
+0.796875
+22
+3.0
+32
+1.241
+13
+0.796875
+23
+3.0
+33
+1.241
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.241
+11
+0.53125
+21
+3.0
+31
+1.17375
+12
+0.53125
+22
+3.0
+32
+1.5
+13
+0.53125
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.241
+11
+0.53125
+21
+3.0
+31
+1.5
+12
+0.796875
+22
+3.0
+32
+1.5
+13
+0.796875
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+3.0
+30
+8.88178419700126e-17
+11
+0.776999999999999
+21
+2.58204596640715
+31
+4.44089209850063e-17
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+0.723
+11
+0.0
+21
+2.795
+31
+0.723
+12
+0.0
+22
+3.0
+32
+0.723
+13
+0.0
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+0.723
+11
+0.205
+21
+3.0
+31
+0.723
+12
+0.0
+22
+2.277
+32
+0.723
+13
+0.0
+23
+2.277
+33
+0.723
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.277
+30
+0.723
+11
+0.205
+21
+3.0
+31
+0.723
+12
+0.0
+22
+1.5
+32
+0.723
+13
+0.0
+23
+1.5
+33
+0.723
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+0.723
+11
+0.205
+21
+3.0
+31
+0.723
+12
+0.53125
+22
+1.5
+32
+0.723
+13
+0.53125
+23
+1.5
+33
+0.723
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+1.5
+30
+0.723
+11
+0.205
+21
+3.0
+31
+0.723
+12
+0.53125
+22
+3.0
+32
+0.723
+13
+0.53125
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.277
+30
+0.723
+11
+0.0
+21
+1.5
+31
+0.723
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+2.277
+11
+0.53125
+21
+3.0
+31
+1.82625
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+1.82625
+11
+0.205
+21
+3.0
+31
+2.277
+12
+0.53125
+22
+3.0
+32
+2.018
+13
+0.53125
+23
+3.0
+33
+2.018
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+2.018
+11
+0.205
+21
+3.0
+31
+2.277
+12
+0.53125
+22
+3.0
+32
+2.277
+13
+0.53125
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+3.0
+30
+1.241
+11
+1.0625
+21
+1.5
+31
+1.759
+12
+1.0625
+22
+1.5
+32
+1.241
+13
+1.0625
+23
+1.5
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+1.5
+30
+1.759
+11
+1.0625
+21
+3.0
+31
+1.241
+12
+1.0625
+22
+3.0
+32
+1.759
+13
+1.0625
+23
+3.0
+33
+1.759
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+3.0
+30
+1.759
+11
+1.0625
+21
+3.0
+31
+1.241
+12
+1.0625
+22
+3.0
+32
+1.5
+13
+1.0625
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+2.277
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.277
+12
+0.205
+22
+3.0
+32
+2.277
+13
+0.205
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.79947640559575
+30
+4.44089209850063e-17
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.776999999999999
+22
+1.5
+32
+8.88178419700126e-17
+13
+0.776999999999999
+23
+1.5
+33
+8.88178419700126e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.5
+30
+0.205
+11
+0.776999999999999
+21
+1.79947640559575
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+3.0
+30
+0.205
+11
+0.776999999999999
+21
+1.79947640559575
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+1.98309315521565
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.98309315521565
+33
+4.44089209850063e-17
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+3.0
+30
+0.205
+11
+0.776999999999999
+21
+1.98309315521565
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+2.223
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.223
+33
+4.44089209850063e-17
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+3.0
+30
+0.205
+11
+0.776999999999999
+21
+2.223
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+2.58204596640715
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.58204596640715
+33
+4.44089209850063e-17
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+3.0
+30
+0.205
+11
+0.776999999999999
+21
+2.58204596640715
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+3.0
+32
+8.88178419700126e-17
+13
+0.776999999999999
+23
+3.0
+33
+8.88178419700126e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+2.223
+30
+4.44089209850063e-17
+11
+0.0
+21
+2.795
+31
+2.22044604925031e-16
+12
+0.0
+22
+3.0
+32
+2.22044604925031e-16
+13
+0.0
+23
+3.0
+33
+2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+2.22044604925031e-16
+11
+0.776999999999999
+21
+2.223
+31
+4.44089209850063e-17
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.776999999999999
+21
+2.223
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+1.98309315521565
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.98309315521565
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+2.22044604925031e-16
+12
+0.0
+22
+3.0
+32
+2.22044604925031e-16
+13
+0.0
+23
+3.0
+33
+2.22044604925031e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+2.22044604925031e-16
+11
+0.0
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+2.223
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.777
+21
+2.223
+31
+3.0
+12
+0.259
+22
+3.0
+32
+3.0
+13
+0.259
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.259
+20
+3.0
+30
+3.0
+11
+0.777
+21
+2.223
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+0.777
+21
+2.223
+31
+3.0
+12
+0.777
+22
+2.58204596640715
+32
+3.0
+13
+0.777
+23
+2.58204596640715
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+2.795
+13
+0.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+3.0
+30
+1.5
+11
+0.53125
+21
+3.0
+31
+1.17375
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.277
+30
+2.277
+11
+0.0
+21
+2.795
+31
+1.5
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+2.277
+31
+2.277
+12
+0.0
+22
+2.795
+32
+2.277
+13
+0.0
+23
+2.795
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.205
+31
+2.22044604925031e-16
+12
+0.0
+22
+0.0
+32
+2.22044604925031e-16
+13
+0.0
+23
+0.0
+33
+2.22044604925031e-16
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+3.0
+30
+1.241
+11
+0.796875
+21
+1.5
+31
+1.241
+12
+0.796875
+22
+3.0
+32
+1.241
+13
+0.796875
+23
+3.0
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+1.241
+11
+1.0625
+21
+3.0
+31
+1.241
+12
+1.0625
+22
+1.5
+32
+1.241
+13
+1.0625
+23
+1.5
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+2.58204596640715
+30
+3.0
+11
+0.518
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.518
+20
+3.0
+30
+3.0
+11
+0.777
+21
+2.58204596640715
+31
+3.0
+12
+0.777
+22
+3.0
+32
+3.0
+13
+0.777
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+3.0
+30
+1.759
+11
+1.0625
+21
+3.0
+31
+1.5
+12
+0.796875
+22
+3.0
+32
+1.5
+13
+0.796875
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+3.0
+30
+1.5
+11
+0.796875
+21
+3.0
+31
+1.759
+12
+1.0625
+22
+3.0
+32
+1.759
+13
+1.0625
+23
+3.0
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+2.018
+11
+1.0625
+21
+1.5
+31
+1.759
+12
+0.796875
+22
+1.5
+32
+1.759
+13
+0.796875
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+1.5
+30
+2.277
+11
+0.796875
+21
+1.5
+31
+2.018
+12
+0.53125
+22
+1.5
+32
+2.018
+13
+0.53125
+23
+1.5
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.0
+22
+1.5
+32
+2.277
+13
+0.0
+23
+1.5
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.5
+30
+0.205
+11
+1.295
+21
+1.5
+31
+1.52655665885959e-16
+12
+0.776999999999999
+22
+1.5
+32
+8.88178419700126e-17
+13
+0.776999999999999
+23
+1.5
+33
+8.88178419700126e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+1.52655665885959e-16
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+1.0625
+22
+1.5
+32
+1.241
+13
+1.0625
+23
+1.5
+33
+1.241
+70
+15
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+1.52655665885959e-16
+11
+1.0625
+21
+1.5
+31
+1.241
+12
+1.295
+22
+1.5
+32
+3.0
+13
+1.295
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+1.5
+30
+1.241
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.796875
+22
+1.5
+32
+0.982
+13
+0.796875
+23
+1.5
+33
+0.982
+70
+15
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.53125
+22
+1.5
+32
+0.723
+13
+0.53125
+23
+1.5
+33
+0.723
+70
+15
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.53125
+20
+1.5
+30
+0.723
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.723
+13
+0.0
+23
+1.5
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+0.53125
+21
+1.5
+31
+0.723
+12
+0.53125
+22
+1.5
+32
+0.982
+13
+0.53125
+23
+1.5
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.0625
+20
+1.5
+30
+1.241
+11
+0.796875
+21
+1.5
+31
+0.982
+12
+0.796875
+22
+1.5
+32
+1.241
+13
+0.796875
+23
+1.5
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+3.0
+11
+1.0625
+21
+1.5
+31
+1.241
+12
+1.0625
+22
+1.5
+32
+1.759
+13
+1.0625
+23
+1.5
+33
+1.759
+70
+13
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+3.0
+11
+1.0625
+21
+1.5
+31
+1.759
+12
+0.796875
+22
+1.5
+32
+2.018
+13
+0.796875
+23
+1.5
+33
+2.018
+70
+15
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+3.0
+11
+0.796875
+21
+1.5
+31
+2.018
+12
+0.53125
+22
+1.5
+32
+2.277
+13
+0.53125
+23
+1.5
+33
+2.277
+70
+15
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+3.0
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.777
+22
+1.5
+32
+2.795
+13
+0.777
+23
+1.5
+33
+2.795
+70
+15
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.5
+30
+2.795
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+1.5
+30
+3.0
+11
+0.777
+21
+1.5
+31
+2.795
+12
+0.777
+22
+1.5
+32
+3.0
+13
+0.777
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+2.277
+31
+0.723
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.277
+30
+0.723
+11
+0.0
+21
+2.795
+31
+1.5
+12
+0.0
+22
+2.795
+32
+0.723
+13
+0.0
+23
+2.795
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+2.277
+30
+2.277
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+1.5
+32
+2.277
+13
+0.0
+23
+1.5
+33
+2.277
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+0.205
+32
+1.5
+13
+0.0
+23
+0.205
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+0.0
+30
+3.0
+11
+0.0
+21
+0.205
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+3.0
+11
+1.295
+21
+0.0
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.295
+21
+0.0
+31
+3.0
+12
+0.777
+22
+1.5
+32
+3.0
+13
+0.777
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.5
+30
+3.0
+11
+1.295
+21
+0.0
+31
+3.0
+12
+1.295
+22
+1.5
+32
+3.0
+13
+1.295
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.777
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.777
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.777
+22
+1.5
+32
+3.0
+13
+0.777
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.5
+30
+8.88178419700126e-17
+11
+0.0
+21
+0.205
+31
+2.22044604925031e-16
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.205
+30
+2.22044604925031e-16
+11
+0.776999999999999
+21
+1.5
+31
+8.88178419700126e-17
+12
+0.0
+22
+0.0
+32
+2.22044604925031e-16
+13
+0.0
+23
+0.0
+33
+2.22044604925031e-16
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+0.0
+30
+2.22044604925031e-16
+11
+0.776999999999999
+21
+1.5
+31
+8.88178419700126e-17
+12
+1.295
+22
+0.0
+32
+2.22044604925031e-16
+13
+1.295
+23
+0.0
+33
+2.22044604925031e-16
+70
+3
+ 0
+3DFACE
+ 8
+taser_a
+10
+1.295
+20
+0.0
+30
+2.22044604925031e-16
+11
+0.776999999999999
+21
+1.5
+31
+8.88178419700126e-17
+12
+1.295
+22
+1.5
+32
+1.52655665885959e-16
+13
+1.295
+23
+1.5
+33
+1.52655665885959e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.776999999999999
+21
+1.5
+31
+8.88178419700126e-17
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_a
+10
+0.776999999999999
+20
+1.5
+30
+8.88178419700126e-17
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.776999999999999
+22
+1.5
+32
+0.205
+13
+0.776999999999999
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.777
+21
+2.223
+31
+3.0
+12
+0.777
+22
+1.98309315521565
+32
+3.0
+13
+0.777
+23
+1.98309315521565
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+2.223
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+2.223
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+1.295
+21
+1.705
+31
+6.58963624407723e-17
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.705
+30
+6.58963624407723e-17
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.705
+30
+6.58963624407723e-17
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+1.295
+22
+1.80680418134643
+32
+6.07160340763011e-17
+13
+1.295
+23
+1.80680418134643
+33
+6.07160340763011e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.464
+13
+0.0
+23
+3.0
+33
+0.464
+70
+2
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+0.723
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.723
+13
+0.0
+23
+1.5
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.723
+12
+0.0
+22
+3.0
+32
+0.464
+13
+0.0
+23
+3.0
+33
+0.464
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+0.982
+11
+0.53125
+21
+1.5
+31
+0.723
+12
+0.53125
+22
+1.5
+32
+0.982
+13
+0.53125
+23
+1.5
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+0.723
+11
+0.53125
+21
+3.0
+31
+0.982
+12
+0.53125
+22
+3.0
+32
+0.723
+13
+0.53125
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+1.5
+30
+1.241
+11
+0.796875
+21
+3.0
+31
+1.241
+12
+0.796875
+22
+1.5
+32
+1.241
+13
+0.796875
+23
+1.5
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+3.0
+30
+1.241
+11
+1.0625
+21
+1.5
+31
+1.241
+12
+1.0625
+22
+3.0
+32
+1.241
+13
+1.0625
+23
+3.0
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+3.0
+30
+1.759
+11
+0.796875
+21
+1.5
+31
+1.759
+12
+0.796875
+22
+3.0
+32
+1.759
+13
+0.796875
+23
+3.0
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+1.759
+11
+1.0625
+21
+3.0
+31
+1.759
+12
+1.0625
+22
+1.5
+32
+1.759
+13
+1.0625
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.64381364161549
+30
+3.0
+11
+0.777
+21
+1.5
+31
+2.795
+12
+0.777
+22
+1.5
+32
+3.0
+13
+0.777
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.5
+30
+2.795
+11
+0.777
+21
+1.64381364161549
+31
+3.0
+12
+0.777
+22
+3.0
+32
+2.795
+13
+0.777
+23
+3.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.777
+21
+1.64381364161549
+31
+3.0
+12
+0.777
+22
+1.73256321554271
+32
+3.0
+13
+0.777
+23
+1.73256321554271
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.777
+21
+1.73256321554271
+31
+3.0
+12
+0.777
+22
+1.79947640559575
+32
+3.0
+13
+0.777
+23
+1.79947640559575
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.777
+21
+1.79947640559575
+31
+3.0
+12
+0.777
+22
+1.98309315521565
+32
+3.0
+13
+0.777
+23
+1.98309315521565
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.777
+21
+1.98309315521565
+31
+3.0
+12
+0.777
+22
+2.223
+32
+3.0
+13
+0.777
+23
+2.223
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.777
+21
+2.223
+31
+3.0
+12
+0.777
+22
+2.58204596640715
+32
+3.0
+13
+0.777
+23
+2.58204596640715
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+2.795
+11
+0.777
+21
+2.58204596640715
+31
+3.0
+12
+0.777
+22
+3.0
+32
+3.0
+13
+0.777
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+2.277
+11
+0.53125
+21
+1.5
+31
+2.018
+12
+0.53125
+22
+1.5
+32
+2.277
+13
+0.53125
+23
+1.5
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+2.018
+11
+0.53125
+21
+3.0
+31
+2.277
+12
+0.53125
+22
+3.0
+32
+2.018
+13
+0.53125
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+3.0
+30
+1.241
+11
+0.796875
+21
+1.5
+31
+0.982
+12
+0.796875
+22
+1.5
+32
+1.241
+13
+0.796875
+23
+1.5
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+0.796875
+21
+3.0
+31
+1.241
+12
+0.796875
+22
+3.0
+32
+0.982
+13
+0.796875
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+3.0
+30
+1.759
+11
+1.0625
+21
+1.5
+31
+1.5
+12
+1.0625
+22
+1.5
+32
+1.759
+13
+1.0625
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+1.5
+30
+1.5
+11
+1.0625
+21
+3.0
+31
+1.759
+12
+1.0625
+22
+1.5
+32
+1.241
+13
+1.0625
+23
+1.5
+33
+1.241
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+1.5
+30
+1.241
+11
+1.0625
+21
+3.0
+31
+1.759
+12
+1.0625
+22
+3.0
+32
+1.241
+13
+1.0625
+23
+3.0
+33
+1.241
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+3.0
+30
+1.241
+11
+1.0625
+21
+3.0
+31
+1.759
+12
+1.0625
+22
+3.0
+32
+1.5
+13
+1.0625
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+3.0
+30
+2.018
+11
+0.796875
+21
+1.5
+31
+1.759
+12
+0.796875
+22
+1.5
+32
+2.018
+13
+0.796875
+23
+1.5
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+1.759
+11
+0.796875
+21
+3.0
+31
+2.018
+12
+0.796875
+22
+3.0
+32
+1.759
+13
+0.796875
+23
+3.0
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.723000000000001
+20
+3.0
+30
+2.018
+11
+0.53125
+21
+1.5
+31
+2.018
+12
+0.53125
+22
+3.0
+32
+2.018
+13
+0.53125
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+2.018
+11
+0.723000000000001
+21
+3.0
+31
+2.018
+12
+0.796875
+22
+1.5
+32
+2.018
+13
+0.796875
+23
+1.5
+33
+2.018
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+2.018
+11
+0.723000000000001
+21
+3.0
+31
+2.018
+12
+0.796875
+22
+3.0
+32
+2.018
+13
+0.796875
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+1.5
+31
+2.277
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+1.5
+30
+2.277
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.277
+13
+0.0
+23
+3.0
+33
+2.277
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+2.277
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.536
+13
+0.0
+23
+3.0
+33
+2.536
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+0.53125
+21
+3.0
+31
+0.982
+12
+0.53125
+22
+1.5
+32
+0.982
+13
+0.53125
+23
+1.5
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+0.982
+11
+0.796875
+21
+1.5
+31
+0.982
+12
+0.723000000000001
+22
+3.0
+32
+0.982
+13
+0.723000000000001
+23
+3.0
+33
+0.982
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.723000000000001
+20
+3.0
+30
+0.982
+11
+0.796875
+21
+1.5
+31
+0.982
+12
+0.796875
+22
+3.0
+32
+0.982
+13
+0.796875
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+0.0
+11
+1.295
+21
+1.63697662077346
+31
+6.93577471913193e-17
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.63697662077346
+30
+6.93577471913193e-17
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.63697662077346
+30
+6.93577471913193e-17
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+1.295
+22
+1.705
+32
+6.58963624407723e-17
+13
+1.295
+23
+1.705
+33
+6.58963624407723e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.295
+21
+1.99491378028649
+31
+5.11440353810559e-17
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.99491378028649
+30
+5.11440353810559e-17
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.295
+22
+2.2311863483779
+32
+3.91212533101955e-17
+13
+1.295
+23
+2.2311863483779
+33
+3.91212533101955e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+1.295
+21
+1.80680418134643
+31
+6.07160340763011e-17
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.80680418134643
+30
+6.07160340763011e-17
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.80680418134643
+30
+6.07160340763011e-17
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+1.295
+22
+1.99491378028649
+32
+5.11440353810559e-17
+13
+1.295
+23
+1.99491378028649
+33
+5.11440353810559e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+0.0
+11
+1.295
+21
+1.58491378028649
+31
+7.20069763854704e-17
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.58491378028649
+30
+7.20069763854704e-17
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.58491378028649
+30
+7.20069763854704e-17
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+1.295
+22
+1.63697662077346
+32
+6.93577471913193e-17
+13
+1.295
+23
+1.63697662077346
+33
+6.93577471913193e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.54077703531283
+30
+7.42528844501344e-17
+11
+0.776999999999999
+21
+1.5
+31
+8.88178419700126e-17
+12
+0.776999999999999
+22
+1.64381364161549
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.64381364161549
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.5
+30
+8.88178419700126e-17
+11
+1.295
+21
+1.54077703531283
+31
+7.42528844501344e-17
+12
+1.295
+22
+1.5
+32
+1.52655665885959e-16
+13
+1.295
+23
+1.5
+33
+1.52655665885959e-16
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.776999999999999
+21
+1.64381364161549
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+1.73256321554271
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.73256321554271
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.64381364161549
+30
+4.44089209850063e-17
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+1.295
+22
+1.54077703531283
+32
+7.42528844501344e-17
+13
+1.295
+23
+1.54077703531283
+33
+7.42528844501344e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.54077703531283
+30
+7.42528844501344e-17
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+1.295
+22
+1.58491378028649
+32
+7.20069763854704e-17
+13
+1.295
+23
+1.58491378028649
+33
+7.20069763854704e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+2.5306045958858
+30
+2.38852893262874e-17
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.295
+22
+3.0
+32
+0.0
+13
+1.295
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.295
+22
+2.5306045958858
+32
+2.38852893262874e-17
+13
+1.295
+23
+2.5306045958858
+33
+2.38852893262874e-17
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.295
+21
+2.5306045958858
+31
+2.38852893262874e-17
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.295
+21
+2.5306045958858
+31
+2.38852893262874e-17
+12
+1.295
+22
+2.2311863483779
+32
+3.91212533101955e-17
+13
+1.295
+23
+2.2311863483779
+33
+3.91212533101955e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+3.0
+30
+8.88178419700126e-17
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+0.776999999999999
+22
+2.58204596640715
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.58204596640715
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.776999999999999
+21
+3.0
+31
+8.88178419700126e-17
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.776999999999999
+21
+1.79947640559575
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+1.98309315521565
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.98309315521565
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.79947640559575
+30
+4.44089209850063e-17
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.79947640559575
+30
+4.44089209850063e-17
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.776999999999999
+21
+1.98309315521565
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+2.223
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.223
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.98309315521565
+30
+4.44089209850063e-17
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.98309315521565
+30
+4.44089209850063e-17
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.776999999999999
+21
+2.223
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+2.58204596640715
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.58204596640715
+33
+4.44089209850063e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+2.223
+30
+4.44089209850063e-17
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+2.223
+30
+4.44089209850063e-17
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.776999999999999
+21
+1.73256321554271
+31
+4.44089209850063e-17
+12
+0.776999999999999
+22
+1.79947640559575
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.79947640559575
+33
+4.44089209850063e-17
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+0.777
+21
+2.58204596640715
+31
+3.0
+12
+0.777
+22
+2.223
+32
+3.0
+13
+0.777
+23
+2.223
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+2.58204596640715
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+2.58204596640715
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.777
+21
+1.98309315521565
+31
+3.0
+12
+0.777
+22
+1.79947640559575
+32
+3.0
+13
+0.777
+23
+1.79947640559575
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.98309315521565
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.98309315521565
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.5
+30
+3.0
+11
+0.777
+21
+1.64381364161549
+31
+3.0
+12
+0.777
+22
+1.5
+32
+3.0
+13
+0.777
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.64381364161549
+30
+3.0
+11
+1.295
+21
+1.5
+31
+3.0
+12
+1.295
+22
+1.54077703531283
+32
+3.0
+13
+1.295
+23
+1.54077703531283
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+0.777
+21
+3.0
+31
+3.0
+12
+0.777
+22
+2.58204596640715
+32
+3.0
+13
+0.777
+23
+2.58204596640715
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+3.0
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+1.295
+22
+2.5306045958858
+32
+3.0
+13
+1.295
+23
+2.5306045958858
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.705
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+3.0
+11
+1.295
+21
+1.705
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+1.295
+21
+1.705
+31
+3.0
+12
+1.295
+22
+1.80680418134643
+32
+3.0
+13
+1.295
+23
+1.80680418134643
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.63697662077346
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+1.295
+21
+1.63697662077346
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+1.295
+21
+1.63697662077346
+31
+3.0
+12
+1.295
+22
+1.705
+32
+3.0
+13
+1.295
+23
+1.705
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.80680418134643
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+3.0
+11
+1.295
+21
+1.80680418134643
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.295
+21
+1.80680418134643
+31
+3.0
+12
+1.295
+22
+1.99491378028649
+32
+3.0
+13
+1.295
+23
+1.99491378028649
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.58491378028648
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+1.295
+21
+1.58491378028648
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+1.295
+21
+1.58491378028648
+31
+3.0
+12
+1.295
+22
+1.63697662077346
+32
+3.0
+13
+1.295
+23
+1.63697662077346
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.036
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.036
+20
+3.0
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.295
+22
+2.5306045958858
+32
+3.0
+13
+1.295
+23
+2.5306045958858
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+2.5306045958858
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+2.5306045958858
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.295
+22
+2.2311863483779
+32
+3.0
+13
+1.295
+23
+2.2311863483779
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.99491378028649
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.295
+21
+1.99491378028649
+31
+3.0
+12
+1.295
+22
+2.2311863483779
+32
+3.0
+13
+1.295
+23
+2.2311863483779
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.54077703531283
+30
+3.0
+11
+0.777
+21
+1.73256321554271
+31
+3.0
+12
+0.777
+22
+1.64381364161549
+32
+3.0
+13
+0.777
+23
+1.64381364161549
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.73256321554271
+30
+3.0
+11
+1.295
+21
+1.54077703531283
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+1.295
+21
+1.54077703531283
+31
+3.0
+12
+1.295
+22
+1.58491378028648
+32
+3.0
+13
+1.295
+23
+1.58491378028648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.777
+21
+1.79947640559575
+31
+3.0
+12
+0.777
+22
+1.73256321554271
+32
+3.0
+13
+0.777
+23
+1.73256321554271
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.5
+30
+2.795
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.777
+21
+1.5
+31
+2.795
+12
+0.205000000000001
+22
+3.0
+32
+2.795
+13
+0.205000000000001
+23
+3.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+2.795
+11
+0.777
+21
+1.5
+31
+2.795
+12
+0.777
+22
+3.0
+32
+2.795
+13
+0.777
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+2.277
+11
+0.0
+21
+1.5
+31
+2.277
+12
+0.0
+22
+3.0
+32
+2.277
+13
+0.0
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+1.5
+30
+2.277
+11
+0.205000000000001
+21
+3.0
+31
+2.277
+12
+0.53125
+22
+1.5
+32
+2.277
+13
+0.53125
+23
+1.5
+33
+2.277
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+2.277
+11
+0.205000000000001
+21
+3.0
+31
+2.277
+12
+0.53125
+22
+3.0
+32
+2.277
+13
+0.53125
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+0.723
+11
+0.0
+21
+3.0
+31
+0.723
+12
+0.0
+22
+1.5
+32
+0.723
+13
+0.0
+23
+1.5
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+0.723
+11
+0.53125
+21
+1.5
+31
+0.723
+12
+0.205
+22
+3.0
+32
+0.723
+13
+0.205
+23
+3.0
+33
+0.723
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205
+20
+3.0
+30
+0.723
+11
+0.53125
+21
+1.5
+31
+0.723
+12
+0.53125
+22
+3.0
+32
+0.723
+13
+0.53125
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+3.0
+30
+0.205
+11
+0.776999999999999
+21
+1.5
+31
+8.88178419700126e-17
+12
+0.776999999999999
+22
+1.5
+32
+0.205
+13
+0.776999999999999
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.5
+30
+8.88178419700126e-17
+11
+0.776999999999999
+21
+3.0
+31
+0.205
+12
+0.776999999999999
+22
+1.64381364161549
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.64381364161549
+33
+4.44089209850063e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.64381364161549
+30
+4.44089209850063e-17
+11
+0.776999999999999
+21
+3.0
+31
+0.205
+12
+0.776999999999999
+22
+1.73256321554271
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.73256321554271
+33
+4.44089209850063e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.73256321554271
+30
+4.44089209850063e-17
+11
+0.776999999999999
+21
+3.0
+31
+0.205
+12
+0.776999999999999
+22
+1.79947640559575
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.79947640559575
+33
+4.44089209850063e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.79947640559575
+30
+4.44089209850063e-17
+11
+0.776999999999999
+21
+3.0
+31
+0.205
+12
+0.776999999999999
+22
+1.98309315521565
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+1.98309315521565
+33
+4.44089209850063e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.98309315521565
+30
+4.44089209850063e-17
+11
+0.776999999999999
+21
+3.0
+31
+0.205
+12
+0.776999999999999
+22
+2.223
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.223
+33
+4.44089209850063e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+2.223
+30
+4.44089209850063e-17
+11
+0.776999999999999
+21
+3.0
+31
+0.205
+12
+0.776999999999999
+22
+2.58204596640715
+32
+4.44089209850063e-17
+13
+0.776999999999999
+23
+2.58204596640715
+33
+4.44089209850063e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+2.58204596640715
+30
+4.44089209850063e-17
+11
+0.776999999999999
+21
+3.0
+31
+0.205
+12
+0.776999999999999
+22
+3.0
+32
+8.88178419700126e-17
+13
+0.776999999999999
+23
+3.0
+33
+8.88178419700126e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+0.205000000000001
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.205000000000001
+21
+3.0
+31
+0.205000000000001
+12
+0.776999999999999
+22
+1.5
+32
+0.205
+13
+0.776999999999999
+23
+1.5
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.5
+30
+0.205
+11
+0.205000000000001
+21
+3.0
+31
+0.205000000000001
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+0.205000000000001
+11
+1.295
+21
+2.5306045958858
+31
+2.38852893262874e-17
+12
+1.295
+22
+3.0
+32
+0.0
+13
+1.295
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+2.5306045958858
+30
+2.38852893262874e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+2.2311863483779
+32
+3.91212533101955e-17
+13
+1.295
+23
+2.2311863483779
+33
+3.91212533101955e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+2.2311863483779
+30
+3.91212533101955e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+1.99491378028649
+32
+5.11440353810559e-17
+13
+1.295
+23
+1.99491378028649
+33
+5.11440353810559e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.99491378028649
+30
+5.11440353810559e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+1.80680418134643
+32
+6.07160340763011e-17
+13
+1.295
+23
+1.80680418134643
+33
+6.07160340763011e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.80680418134643
+30
+6.07160340763011e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+1.705
+32
+6.58963624407723e-17
+13
+1.295
+23
+1.705
+33
+6.58963624407723e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.705
+30
+6.58963624407723e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+1.63697662077346
+32
+6.93577471913193e-17
+13
+1.295
+23
+1.63697662077346
+33
+6.93577471913193e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.63697662077346
+30
+6.93577471913193e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+1.58491378028649
+32
+7.20069763854704e-17
+13
+1.295
+23
+1.58491378028649
+33
+7.20069763854704e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.58491378028649
+30
+7.20069763854704e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+1.54077703531283
+32
+7.42528844501344e-17
+13
+1.295
+23
+1.54077703531283
+33
+7.42528844501344e-17
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.54077703531283
+30
+7.42528844501344e-17
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.295
+22
+1.5
+32
+1.52655665885959e-16
+13
+1.295
+23
+1.5
+33
+1.52655665885959e-16
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.5
+30
+1.52655665885959e-16
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+2.1475
+22
+1.5
+32
+0.8525
+13
+2.1475
+23
+1.5
+33
+0.8525
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+1.5
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.1475
+21
+1.5
+31
+1.28416666666667
+12
+2.1475
+22
+1.5
+32
+0.8525
+13
+2.1475
+23
+1.5
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+1.5
+30
+1.28416666666667
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+2.1475
+22
+3.0
+32
+1.28416666666667
+13
+2.1475
+23
+3.0
+33
+1.28416666666667
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+1.71583333333333
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+2.1475
+21
+3.0
+31
+1.71583333333333
+12
+2.1475
+22
+1.5
+32
+1.71583333333333
+13
+2.1475
+23
+1.5
+33
+1.71583333333333
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+1.71583333333333
+11
+2.1475
+21
+1.5
+31
+2.1475
+12
+2.1475
+22
+1.5
+32
+1.71583333333333
+13
+2.1475
+23
+1.5
+33
+1.71583333333333
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+1.5
+30
+2.1475
+11
+2.1475
+21
+3.0
+31
+1.71583333333333
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.295
+21
+1.5
+31
+3.0
+12
+2.1475
+22
+1.5
+32
+2.1475
+13
+2.1475
+23
+1.5
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.5
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+1.54077703531283
+32
+3.0
+13
+1.295
+23
+1.54077703531283
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.54077703531283
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+1.58491378028648
+32
+3.0
+13
+1.295
+23
+1.58491378028648
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.58491378028648
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+1.63697662077346
+32
+3.0
+13
+1.295
+23
+1.63697662077346
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.63697662077346
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+1.705
+32
+3.0
+13
+1.295
+23
+1.705
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.705
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+1.80680418134643
+32
+3.0
+13
+1.295
+23
+1.80680418134643
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.80680418134643
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+1.99491378028649
+32
+3.0
+13
+1.295
+23
+1.99491378028649
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.99491378028649
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+2.2311863483779
+32
+3.0
+13
+1.295
+23
+2.2311863483779
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+2.2311863483779
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+2.5306045958858
+32
+3.0
+13
+1.295
+23
+2.5306045958858
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+2.5306045958858
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.295
+22
+3.0
+32
+3.0
+13
+1.295
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+3.0
+30
+3.0
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.81219074811907
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.81219074811907
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+1.81219074811907
+13
+1.5
+23
+3.0
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.50885609734932
+21
+3.0
+31
+1.81237448605758
+12
+1.5
+22
+3.0
+32
+1.81219074811907
+13
+1.5
+23
+3.0
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.70501413192602
+20
+3.0
+30
+1.73585049440402
+11
+1.60791666666667
+21
+3.0
+31
+1.97984537405954
+12
+1.71583333333333
+22
+3.0
+32
+1.72547110140021
+13
+1.71583333333333
+23
+3.0
+33
+1.72547110140021
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.70501413192602
+21
+3.0
+31
+1.73585049440402
+12
+1.68090954183794
+22
+3.0
+32
+1.7548097087475
+13
+1.68090954183794
+23
+3.0
+33
+1.7548097087475
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.68090954183794
+21
+3.0
+31
+1.7548097087475
+12
+1.65506269396675
+22
+3.0
+32
+1.77131496630259
+13
+1.65506269396675
+23
+3.0
+33
+1.77131496630259
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.65506269396675
+21
+3.0
+31
+1.77131496630259
+12
+1.62772250758676
+22
+3.0
+32
+1.78520731241634
+13
+1.62772250758676
+23
+3.0
+33
+1.78520731241634
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.62772250758676
+21
+3.0
+31
+1.78520731241634
+12
+1.59915228363849
+22
+3.0
+32
+1.79635295620134
+13
+1.59915228363849
+23
+3.0
+33
+1.79635295620134
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.59915228363849
+21
+3.0
+31
+1.79635295620134
+12
+1.56962716899663
+22
+3.0
+32
+1.80464455901512
+13
+1.56962716899663
+23
+3.0
+33
+1.80464455901512
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.56962716899663
+21
+3.0
+31
+1.80464455901512
+12
+1.53943150665524
+22
+3.0
+32
+1.81000226818992
+13
+1.53943150665524
+23
+3.0
+33
+1.81000226818992
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.53943150665524
+21
+3.0
+31
+1.81000226818992
+12
+1.50885609734932
+22
+3.0
+32
+1.81237448605758
+13
+1.50885609734932
+23
+3.0
+33
+1.81237448605758
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.81219074811907
+11
+1.0625
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+1.5
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.81219074811907
+12
+1.0625
+22
+1.5
+32
+1.759
+13
+1.0625
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.5
+31
+2.277
+12
+0.53125
+22
+1.5
+32
+2.277
+13
+0.53125
+23
+1.5
+33
+2.277
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.53125
+21
+1.5
+31
+2.277
+12
+0.777
+22
+1.5
+32
+2.795
+13
+0.777
+23
+1.5
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.5
+30
+2.795
+11
+0.53125
+21
+1.5
+31
+2.018
+12
+0.796875
+22
+1.5
+32
+2.018
+13
+0.796875
+23
+1.5
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+2.018
+11
+0.777
+21
+1.5
+31
+2.795
+12
+0.53125
+22
+1.5
+32
+2.277
+13
+0.53125
+23
+1.5
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+2.1475
+21
+1.5
+31
+1.71583333333333
+12
+2.1475
+22
+1.5
+32
+2.1475
+13
+2.1475
+23
+1.5
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.5
+30
+3.0
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+2.1475
+22
+1.5
+32
+2.1475
+13
+2.1475
+23
+1.5
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+1.5
+30
+3.0
+11
+0.777
+21
+1.5
+31
+2.795
+12
+1.71583333333333
+22
+1.5
+32
+2.1475
+13
+1.71583333333333
+23
+1.5
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+1.5
+30
+2.795
+11
+1.295
+21
+1.5
+31
+3.0
+12
+0.777
+22
+1.5
+32
+3.0
+13
+0.777
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+0.796875
+21
+1.5
+31
+2.018
+12
+0.796875
+22
+1.5
+32
+1.759
+13
+0.796875
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+2.018
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+0.777
+22
+1.5
+32
+2.795
+13
+0.777
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.81219074811907
+11
+0.796875
+21
+1.5
+31
+1.759
+12
+1.0625
+22
+1.5
+32
+1.759
+13
+1.0625
+23
+1.5
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+1.759
+11
+1.5
+21
+1.5
+31
+1.81219074811907
+12
+1.71583333333333
+22
+1.5
+32
+2.1475
+13
+1.71583333333333
+23
+1.5
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+1.5
+30
+0.723
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.53125
+22
+1.5
+32
+0.723
+13
+0.53125
+23
+1.5
+33
+0.723
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+0.723
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.776999999999999
+22
+1.5
+32
+0.205
+13
+0.776999999999999
+23
+1.5
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+0.53125
+21
+1.5
+31
+0.723
+12
+0.776999999999999
+22
+1.5
+32
+0.205
+13
+0.776999999999999
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+1.5
+30
+0.723
+11
+0.796875
+21
+1.5
+31
+0.982
+12
+0.53125
+22
+1.5
+32
+0.982
+13
+0.53125
+23
+1.5
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+1.5
+30
+1.28416666666667
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+2.1475
+22
+1.5
+32
+0.8525
+13
+2.1475
+23
+1.5
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+1.295
+21
+1.5
+31
+1.52655665885959e-16
+12
+2.1475
+22
+1.5
+32
+0.8525
+13
+2.1475
+23
+1.5
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+0.776999999999999
+21
+1.5
+31
+8.88178419700126e-17
+12
+1.295
+22
+1.5
+32
+1.52655665885959e-16
+13
+1.295
+23
+1.5
+33
+1.52655665885959e-16
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.776999999999999
+22
+1.5
+32
+8.88178419700126e-17
+13
+0.776999999999999
+23
+1.5
+33
+8.88178419700126e-17
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.5
+30
+0.205
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+0.796875
+22
+1.5
+32
+0.982
+13
+0.796875
+23
+1.5
+33
+0.982
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+0.982
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+0.796875
+22
+1.5
+32
+1.241
+13
+0.796875
+23
+1.5
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.18780925188093
+11
+0.796875
+21
+1.5
+31
+1.241
+12
+1.71583333333333
+22
+1.5
+32
+0.8525
+13
+1.71583333333333
+23
+1.5
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+1.5
+30
+1.241
+11
+1.5
+21
+1.5
+31
+1.18780925188093
+12
+1.0625
+22
+1.5
+32
+1.241
+13
+1.0625
+23
+1.5
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+1.72547110140021
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.71583333333333
+22
+1.5
+32
+1.72547110140021
+13
+1.71583333333333
+23
+1.5
+33
+1.72547110140021
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.71583333333333
+21
+3.0
+31
+1.72547110140021
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.50885609734932
+20
+3.0
+30
+1.81237448605758
+11
+1.5
+21
+1.5
+31
+1.81219074811907
+12
+1.5
+22
+3.0
+32
+1.81219074811907
+13
+1.5
+23
+3.0
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.81219074811907
+11
+1.50885609734932
+21
+3.0
+31
+1.81237448605758
+12
+1.50885609734932
+22
+1.5
+32
+1.81237448605758
+13
+1.50885609734932
+23
+1.5
+33
+1.81237448605758
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+1.72547110140021
+11
+1.70501413192602
+21
+1.5
+31
+1.73585049440402
+12
+1.70501413192602
+22
+3.0
+32
+1.73585049440402
+13
+1.70501413192602
+23
+3.0
+33
+1.73585049440402
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.70501413192602
+20
+1.5
+30
+1.73585049440402
+11
+1.71583333333333
+21
+3.0
+31
+1.72547110140021
+12
+1.71583333333333
+22
+1.5
+32
+1.72547110140021
+13
+1.71583333333333
+23
+1.5
+33
+1.72547110140021
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.70501413192602
+20
+3.0
+30
+1.73585049440402
+11
+1.68090954183794
+21
+1.5
+31
+1.7548097087475
+12
+1.68090954183794
+22
+3.0
+32
+1.7548097087475
+13
+1.68090954183794
+23
+3.0
+33
+1.7548097087475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.68090954183794
+20
+1.5
+30
+1.7548097087475
+11
+1.70501413192602
+21
+3.0
+31
+1.73585049440402
+12
+1.70501413192602
+22
+1.5
+32
+1.73585049440402
+13
+1.70501413192602
+23
+1.5
+33
+1.73585049440402
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.68090954183794
+20
+3.0
+30
+1.7548097087475
+11
+1.65506269396675
+21
+1.5
+31
+1.77131496630259
+12
+1.65506269396675
+22
+3.0
+32
+1.77131496630259
+13
+1.65506269396675
+23
+3.0
+33
+1.77131496630259
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.65506269396675
+20
+1.5
+30
+1.77131496630259
+11
+1.68090954183794
+21
+3.0
+31
+1.7548097087475
+12
+1.68090954183794
+22
+1.5
+32
+1.7548097087475
+13
+1.68090954183794
+23
+1.5
+33
+1.7548097087475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.65506269396675
+20
+3.0
+30
+1.77131496630259
+11
+1.62772250758676
+21
+1.5
+31
+1.78520731241634
+12
+1.62772250758676
+22
+3.0
+32
+1.78520731241634
+13
+1.62772250758676
+23
+3.0
+33
+1.78520731241634
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.62772250758676
+20
+1.5
+30
+1.78520731241634
+11
+1.65506269396675
+21
+3.0
+31
+1.77131496630259
+12
+1.65506269396675
+22
+1.5
+32
+1.77131496630259
+13
+1.65506269396675
+23
+1.5
+33
+1.77131496630259
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.62772250758676
+20
+3.0
+30
+1.78520731241634
+11
+1.59915228363849
+21
+1.5
+31
+1.79635295620134
+12
+1.59915228363849
+22
+3.0
+32
+1.79635295620134
+13
+1.59915228363849
+23
+3.0
+33
+1.79635295620134
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.59915228363849
+20
+1.5
+30
+1.79635295620134
+11
+1.62772250758676
+21
+3.0
+31
+1.78520731241634
+12
+1.62772250758676
+22
+1.5
+32
+1.78520731241634
+13
+1.62772250758676
+23
+1.5
+33
+1.78520731241634
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.59915228363849
+20
+3.0
+30
+1.79635295620134
+11
+1.56962716899663
+21
+1.5
+31
+1.80464455901512
+12
+1.56962716899663
+22
+3.0
+32
+1.80464455901512
+13
+1.56962716899663
+23
+3.0
+33
+1.80464455901512
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.56962716899663
+20
+1.5
+30
+1.80464455901512
+11
+1.59915228363849
+21
+3.0
+31
+1.79635295620134
+12
+1.59915228363849
+22
+1.5
+32
+1.79635295620134
+13
+1.59915228363849
+23
+1.5
+33
+1.79635295620134
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.56962716899663
+20
+3.0
+30
+1.80464455901512
+11
+1.53943150665524
+21
+1.5
+31
+1.81000226818992
+12
+1.53943150665524
+22
+3.0
+32
+1.81000226818992
+13
+1.53943150665524
+23
+3.0
+33
+1.81000226818992
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.53943150665524
+20
+1.5
+30
+1.81000226818992
+11
+1.56962716899663
+21
+3.0
+31
+1.80464455901512
+12
+1.56962716899663
+22
+1.5
+32
+1.80464455901512
+13
+1.56962716899663
+23
+1.5
+33
+1.80464455901512
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.53943150665524
+20
+3.0
+30
+1.81000226818992
+11
+1.50885609734932
+21
+1.5
+31
+1.81237448605758
+12
+1.50885609734932
+22
+3.0
+32
+1.81237448605758
+13
+1.50885609734932
+23
+3.0
+33
+1.81237448605758
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.50885609734932
+20
+1.5
+30
+1.81237448605758
+11
+1.53943150665524
+21
+3.0
+31
+1.81000226818992
+12
+1.53943150665524
+22
+1.5
+32
+1.81000226818992
+13
+1.53943150665524
+23
+1.5
+33
+1.81000226818992
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.036
+20
+3.0
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+2
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.777
+20
+3.0
+30
+2.795
+11
+1.295
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+3.0
+30
+3.0
+11
+0.777
+21
+3.0
+31
+2.795
+12
+0.777
+22
+3.0
+32
+3.0
+13
+0.777
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+3.0
+30
+3.0
+11
+0.777
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.81219074811907
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.5
+22
+1.5
+32
+1.81219074811907
+13
+1.5
+23
+1.5
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+2.1475
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.60791666666667
+22
+3.0
+32
+1.97984537405954
+13
+1.60791666666667
+23
+3.0
+33
+1.97984537405954
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.02015462594046
+11
+1.69132242027198
+21
+3.0
+31
+1.25291300823137
+12
+1.71461991087043
+22
+3.0
+32
+1.27285567614847
+13
+1.71461991087043
+23
+3.0
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.69132242027198
+20
+3.0
+30
+1.25291300823137
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.66618239017884
+22
+3.0
+32
+1.23534992311649
+13
+1.66618239017884
+23
+3.0
+33
+1.23534992311649
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.66618239017884
+20
+3.0
+30
+1.23534992311649
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.63944193282374
+22
+3.0
+32
+1.22033556291445
+13
+1.63944193282374
+23
+3.0
+33
+1.22033556291445
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.63944193282374
+20
+3.0
+30
+1.22033556291445
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.61135857342883
+22
+3.0
+32
+1.20801452412167
+13
+1.61135857342883
+23
+3.0
+33
+1.20801452412167
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.61135857342883
+20
+3.0
+30
+1.20801452412167
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.58220277009702
+22
+3.0
+32
+1.1985054650771
+13
+1.58220277009702
+23
+3.0
+33
+1.1985054650771
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.58220277009702
+20
+3.0
+30
+1.1985054650771
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.55225530915257
+22
+3.0
+32
+1.19189996321751
+13
+1.55225530915257
+23
+3.0
+33
+1.19189996321751
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.55225530915257
+20
+3.0
+30
+1.19189996321751
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.52180460101532
+22
+3.0
+32
+1.18826163313676
+13
+1.52180460101532
+23
+3.0
+33
+1.18826163313676
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.52180460101532
+20
+3.0
+30
+1.18826163313676
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.5
+22
+3.0
+32
+1.18780925188093
+13
+1.5
+23
+3.0
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+1.5
+31
+1.18780925188093
+12
+1.71583333333333
+22
+1.5
+32
+0.8525
+13
+1.71583333333333
+23
+1.5
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.18780925188093
+11
+1.71583333333333
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+1.18780925188093
+13
+1.5
+23
+3.0
+33
+1.18780925188093
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.18780925188093
+11
+1.71583333333333
+21
+3.0
+31
+0.8525
+12
+1.60791666666667
+22
+3.0
+32
+1.02015462594046
+13
+1.60791666666667
+23
+3.0
+33
+1.02015462594046
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+0.8525
+11
+1.71583333333333
+21
+1.5
+31
+1.27412051524007
+12
+1.71583333333333
+22
+1.5
+32
+0.8525
+13
+1.71583333333333
+23
+1.5
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+1.27412051524007
+11
+1.71583333333333
+21
+3.0
+31
+0.8525
+12
+1.71583333333333
+22
+3.0
+32
+1.27412051524007
+13
+1.71583333333333
+23
+3.0
+33
+1.27412051524007
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.52180460101532
+20
+1.5
+30
+1.18826163313676
+11
+1.5
+21
+3.0
+31
+1.18780925188093
+12
+1.5
+22
+1.5
+32
+1.18780925188093
+13
+1.5
+23
+1.5
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.18780925188093
+11
+1.52180460101532
+21
+1.5
+31
+1.18826163313676
+12
+1.52180460101532
+22
+3.0
+32
+1.18826163313676
+13
+1.52180460101532
+23
+3.0
+33
+1.18826163313676
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.55225530915257
+20
+1.5
+30
+1.19189996321751
+11
+1.52180460101532
+21
+3.0
+31
+1.18826163313676
+12
+1.52180460101532
+22
+1.5
+32
+1.18826163313676
+13
+1.52180460101532
+23
+1.5
+33
+1.18826163313676
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.52180460101532
+20
+3.0
+30
+1.18826163313676
+11
+1.55225530915257
+21
+1.5
+31
+1.19189996321751
+12
+1.55225530915257
+22
+3.0
+32
+1.19189996321751
+13
+1.55225530915257
+23
+3.0
+33
+1.19189996321751
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.58220277009702
+20
+1.5
+30
+1.1985054650771
+11
+1.55225530915257
+21
+3.0
+31
+1.19189996321751
+12
+1.55225530915257
+22
+1.5
+32
+1.19189996321751
+13
+1.55225530915257
+23
+1.5
+33
+1.19189996321751
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.55225530915257
+20
+3.0
+30
+1.19189996321751
+11
+1.58220277009702
+21
+1.5
+31
+1.1985054650771
+12
+1.58220277009702
+22
+3.0
+32
+1.1985054650771
+13
+1.58220277009702
+23
+3.0
+33
+1.1985054650771
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.61135857342883
+20
+1.5
+30
+1.20801452412167
+11
+1.58220277009702
+21
+3.0
+31
+1.1985054650771
+12
+1.58220277009702
+22
+1.5
+32
+1.1985054650771
+13
+1.58220277009702
+23
+1.5
+33
+1.1985054650771
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.58220277009702
+20
+3.0
+30
+1.1985054650771
+11
+1.61135857342883
+21
+1.5
+31
+1.20801452412167
+12
+1.61135857342883
+22
+3.0
+32
+1.20801452412167
+13
+1.61135857342883
+23
+3.0
+33
+1.20801452412167
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.63944193282374
+20
+1.5
+30
+1.22033556291445
+11
+1.61135857342883
+21
+3.0
+31
+1.20801452412167
+12
+1.61135857342883
+22
+1.5
+32
+1.20801452412167
+13
+1.61135857342883
+23
+1.5
+33
+1.20801452412167
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.61135857342883
+20
+3.0
+30
+1.20801452412167
+11
+1.63944193282374
+21
+1.5
+31
+1.22033556291445
+12
+1.63944193282374
+22
+3.0
+32
+1.22033556291445
+13
+1.63944193282374
+23
+3.0
+33
+1.22033556291445
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.66618239017884
+20
+1.5
+30
+1.23534992311649
+11
+1.63944193282374
+21
+3.0
+31
+1.22033556291445
+12
+1.63944193282374
+22
+1.5
+32
+1.22033556291445
+13
+1.63944193282374
+23
+1.5
+33
+1.22033556291445
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.63944193282374
+20
+3.0
+30
+1.22033556291445
+11
+1.66618239017884
+21
+1.5
+31
+1.23534992311649
+12
+1.66618239017884
+22
+3.0
+32
+1.23534992311649
+13
+1.66618239017884
+23
+3.0
+33
+1.23534992311649
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.69132242027198
+20
+1.5
+30
+1.25291300823137
+11
+1.66618239017884
+21
+3.0
+31
+1.23534992311649
+12
+1.66618239017884
+22
+1.5
+32
+1.23534992311649
+13
+1.66618239017884
+23
+1.5
+33
+1.23534992311649
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.66618239017884
+20
+3.0
+30
+1.23534992311649
+11
+1.69132242027198
+21
+1.5
+31
+1.25291300823137
+12
+1.69132242027198
+22
+3.0
+32
+1.25291300823137
+13
+1.69132242027198
+23
+3.0
+33
+1.25291300823137
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71461991087043
+20
+1.5
+30
+1.27285567614847
+11
+1.69132242027198
+21
+3.0
+31
+1.25291300823137
+12
+1.69132242027198
+22
+1.5
+32
+1.25291300823137
+13
+1.69132242027198
+23
+1.5
+33
+1.25291300823137
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.69132242027198
+20
+3.0
+30
+1.25291300823137
+11
+1.71461991087043
+21
+1.5
+31
+1.27285567614847
+12
+1.71461991087043
+22
+3.0
+32
+1.27285567614847
+13
+1.71461991087043
+23
+3.0
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+1.27412051524007
+11
+1.71461991087043
+21
+1.5
+31
+1.27285567614847
+12
+1.71583333333333
+22
+1.5
+32
+1.27412051524007
+13
+1.71583333333333
+23
+1.5
+33
+1.27412051524007
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71461991087043
+20
+1.5
+30
+1.27285567614847
+11
+1.71583333333333
+21
+3.0
+31
+1.27412051524007
+12
+1.71461991087043
+22
+3.0
+32
+1.27285567614847
+13
+1.71461991087043
+23
+3.0
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.70501413192602
+21
+1.5
+31
+1.73585049440402
+12
+1.71583333333333
+22
+1.5
+32
+1.72547110140021
+13
+1.71583333333333
+23
+1.5
+33
+1.72547110140021
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.70501413192602
+20
+1.5
+30
+1.73585049440402
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.68090954183794
+22
+1.5
+32
+1.7548097087475
+13
+1.68090954183794
+23
+1.5
+33
+1.7548097087475
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.68090954183794
+20
+1.5
+30
+1.7548097087475
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.65506269396675
+22
+1.5
+32
+1.77131496630259
+13
+1.65506269396675
+23
+1.5
+33
+1.77131496630259
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.65506269396675
+20
+1.5
+30
+1.77131496630259
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.62772250758676
+22
+1.5
+32
+1.78520731241634
+13
+1.62772250758676
+23
+1.5
+33
+1.78520731241634
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.62772250758676
+20
+1.5
+30
+1.78520731241634
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.59915228363849
+22
+1.5
+32
+1.79635295620134
+13
+1.59915228363849
+23
+1.5
+33
+1.79635295620134
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.59915228363849
+20
+1.5
+30
+1.79635295620134
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.56962716899663
+22
+1.5
+32
+1.80464455901512
+13
+1.56962716899663
+23
+1.5
+33
+1.80464455901512
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.56962716899663
+20
+1.5
+30
+1.80464455901512
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.53943150665524
+22
+1.5
+32
+1.81000226818992
+13
+1.53943150665524
+23
+1.5
+33
+1.81000226818992
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.53943150665524
+20
+1.5
+30
+1.81000226818992
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.50885609734932
+22
+1.5
+32
+1.81237448605758
+13
+1.50885609734932
+23
+1.5
+33
+1.81237448605758
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+1.5
+21
+1.5
+31
+1.81219074811907
+12
+1.50885609734932
+22
+1.5
+32
+1.81237448605758
+13
+1.50885609734932
+23
+1.5
+33
+1.81237448605758
+70
+12
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+1.52180460101532
+21
+1.5
+31
+1.18826163313676
+12
+1.5
+22
+1.5
+32
+1.18780925188093
+13
+1.5
+23
+1.5
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.52180460101532
+20
+1.5
+30
+1.18826163313676
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.55225530915257
+22
+1.5
+32
+1.19189996321751
+13
+1.55225530915257
+23
+1.5
+33
+1.19189996321751
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.55225530915257
+20
+1.5
+30
+1.19189996321751
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.58220277009702
+22
+1.5
+32
+1.1985054650771
+13
+1.58220277009702
+23
+1.5
+33
+1.1985054650771
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.58220277009702
+20
+1.5
+30
+1.1985054650771
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.61135857342883
+22
+1.5
+32
+1.20801452412167
+13
+1.61135857342883
+23
+1.5
+33
+1.20801452412167
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.61135857342883
+20
+1.5
+30
+1.20801452412167
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.63944193282374
+22
+1.5
+32
+1.22033556291445
+13
+1.63944193282374
+23
+1.5
+33
+1.22033556291445
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.63944193282374
+20
+1.5
+30
+1.22033556291445
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.66618239017884
+22
+1.5
+32
+1.23534992311649
+13
+1.66618239017884
+23
+1.5
+33
+1.23534992311649
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.66618239017884
+20
+1.5
+30
+1.23534992311649
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.69132242027198
+22
+1.5
+32
+1.25291300823137
+13
+1.69132242027198
+23
+1.5
+33
+1.25291300823137
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.69132242027198
+20
+1.5
+30
+1.25291300823137
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.71461991087043
+22
+1.5
+32
+1.27285567614847
+13
+1.71461991087043
+23
+1.5
+33
+1.27285567614847
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71461991087043
+20
+1.5
+30
+1.27285567614847
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+1.71583333333333
+22
+1.5
+32
+1.27412051524007
+13
+1.71583333333333
+23
+1.5
+33
+1.27412051524007
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+2.536
+11
+0.205000000000001
+21
+3.0
+31
+2.277
+12
+0.0
+22
+3.0
+32
+2.277
+13
+0.0
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+2.277
+11
+0.0
+21
+3.0
+31
+2.536
+12
+0.205000000000001
+22
+3.0
+32
+2.795
+13
+0.205000000000001
+23
+3.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+2.795
+11
+0.0
+21
+3.0
+31
+2.536
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.0
+20
+3.0
+30
+0.464
+11
+0.205000000000001
+21
+3.0
+31
+0.205000000000001
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+0.205000000000001
+11
+0.0
+21
+3.0
+31
+0.464
+12
+0.205
+22
+3.0
+32
+0.723
+13
+0.205
+23
+3.0
+33
+0.723
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205
+20
+3.0
+30
+0.723
+11
+0.0
+21
+3.0
+31
+0.464
+12
+0.0
+22
+3.0
+32
+0.723
+13
+0.0
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+3.0
+30
+8.88178419700126e-17
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+0.776999999999999
+21
+3.0
+31
+8.88178419700126e-17
+12
+1.295
+22
+3.0
+32
+0.0
+13
+1.295
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.295
+20
+3.0
+30
+0.0
+11
+0.776999999999999
+21
+3.0
+31
+8.88178419700126e-17
+12
+1.5
+22
+3.0
+32
+0.205000000000001
+13
+1.5
+23
+3.0
+33
+0.205000000000001
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+0.205000000000001
+11
+0.776999999999999
+21
+3.0
+31
+8.88178419700126e-17
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+2.1475
+21
+3.0
+31
+1.71583333333333
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+2.795
+11
+0.53125
+21
+3.0
+31
+2.277
+12
+0.205000000000001
+22
+3.0
+32
+2.277
+13
+0.205000000000001
+23
+3.0
+33
+2.277
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+2.277
+11
+0.205000000000001
+21
+3.0
+31
+2.795
+12
+0.777
+22
+3.0
+32
+2.795
+13
+0.777
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+0.723
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+0.205000000000001
+11
+0.53125
+21
+3.0
+31
+0.723
+12
+0.723000000000001
+22
+3.0
+32
+0.982
+13
+0.723000000000001
+23
+3.0
+33
+0.982
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.723000000000001
+20
+3.0
+30
+0.982
+11
+0.53125
+21
+3.0
+31
+0.723
+12
+0.53125
+22
+3.0
+32
+0.982
+13
+0.53125
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+3.0
+30
+1.241
+11
+1.5
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+1.18780925188093
+13
+1.5
+23
+3.0
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.5
+11
+1.0625
+21
+3.0
+31
+1.241
+12
+1.0625
+22
+3.0
+32
+1.5
+13
+1.0625
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.18780925188093
+11
+1.71583333333333
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+0.205000000000001
+13
+1.5
+23
+3.0
+33
+0.205000000000001
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+1.18780925188093
+12
+1.60791666666667
+22
+3.0
+32
+1.02015462594046
+13
+1.60791666666667
+23
+3.0
+33
+1.02015462594046
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+3.0
+30
+1.5
+11
+1.5
+21
+3.0
+31
+1.81219074811907
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.81219074811907
+11
+1.0625
+21
+3.0
+31
+1.5
+12
+1.0625
+22
+3.0
+32
+1.759
+13
+1.0625
+23
+3.0
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+0.205000000000001
+11
+0.796875
+21
+3.0
+31
+0.982
+12
+0.796875
+22
+3.0
+32
+1.241
+13
+0.796875
+23
+3.0
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+3.0
+30
+0.982
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+0.723000000000001
+22
+3.0
+32
+0.982
+13
+0.723000000000001
+23
+3.0
+33
+0.982
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+1.0625
+21
+3.0
+31
+1.759
+12
+0.796875
+22
+3.0
+32
+1.759
+13
+0.796875
+23
+3.0
+33
+1.759
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+3.0
+30
+1.759
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+1.81219074811907
+13
+1.5
+23
+3.0
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+1.60791666666667
+21
+3.0
+31
+1.97984537405954
+12
+1.5
+22
+3.0
+32
+1.81219074811907
+13
+1.5
+23
+3.0
+33
+1.81219074811907
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.97984537405954
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+0.205000000000001
+12
+1.71583333333333
+22
+3.0
+32
+0.8525
+13
+1.71583333333333
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+1.28416666666667
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.71583333333333
+22
+3.0
+32
+0.8525
+13
+1.71583333333333
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+1.5
+30
+0.8525
+11
+1.71583333333333
+21
+3.0
+31
+0.8525
+12
+1.71583333333333
+22
+1.5
+32
+0.8525
+13
+1.71583333333333
+23
+1.5
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+0.8525
+11
+2.1475
+21
+1.5
+31
+0.8525
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+1.71583333333333
+21
+1.5
+31
+2.1475
+12
+1.71583333333333
+22
+3.0
+32
+2.1475
+13
+1.71583333333333
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+2.1475
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+2.1475
+22
+1.5
+32
+2.1475
+13
+2.1475
+23
+1.5
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.796875
+20
+3.0
+30
+1.241
+11
+1.5
+21
+3.0
+31
+1.18780925188093
+12
+1.5
+22
+3.0
+32
+0.205000000000001
+13
+1.5
+23
+3.0
+33
+0.205000000000001
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.18780925188093
+11
+0.796875
+21
+3.0
+31
+1.241
+12
+1.0625
+22
+3.0
+32
+1.241
+13
+1.0625
+23
+3.0
+33
+1.241
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.796875
+21
+3.0
+31
+2.018
+12
+0.723000000000001
+22
+3.0
+32
+2.018
+13
+0.723000000000001
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.796875
+21
+3.0
+31
+1.759
+12
+0.796875
+22
+3.0
+32
+2.018
+13
+0.796875
+23
+3.0
+33
+2.018
+70
+12
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.205000000000001
+20
+3.0
+30
+0.205000000000001
+11
+0.53125
+21
+3.0
+31
+0.723
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+0.723
+11
+0.205000000000001
+21
+3.0
+31
+0.205000000000001
+12
+0.205
+22
+3.0
+32
+0.723
+13
+0.205
+23
+3.0
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+0.723
+11
+0.776999999999999
+21
+1.5
+31
+0.205
+12
+0.53125
+22
+1.5
+32
+0.723
+13
+0.53125
+23
+1.5
+33
+0.723
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.776999999999999
+20
+1.5
+30
+0.205
+11
+0.53125
+21
+3.0
+31
+0.723
+12
+0.776999999999999
+22
+3.0
+32
+0.205
+13
+0.776999999999999
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.53125
+20
+3.0
+30
+2.277
+11
+0.723000000000001
+21
+3.0
+31
+2.018
+12
+0.53125
+22
+3.0
+32
+2.018
+13
+0.53125
+23
+3.0
+33
+2.018
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+0.723000000000001
+20
+3.0
+30
+2.018
+11
+0.53125
+21
+3.0
+31
+2.277
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.53125
+21
+3.0
+31
+2.277
+12
+0.777
+22
+3.0
+32
+2.795
+13
+0.777
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.0625
+21
+1.5
+31
+1.241
+12
+1.5
+22
+1.5
+32
+1.18780925188093
+13
+1.5
+23
+1.5
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.0625
+20
+1.5
+30
+1.241
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.0625
+22
+1.5
+32
+1.5
+13
+1.0625
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+3.0
+30
+1.18780925188093
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.18780925188093
+13
+1.5
+23
+1.5
+33
+1.18780925188093
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.5
+21
+3.0
+31
+1.18780925188093
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+2.1475
+11
+1.71583333333333
+21
+3.0
+31
+1.72547110140021
+12
+1.60791666666667
+22
+3.0
+32
+1.97984537405954
+13
+1.60791666666667
+23
+3.0
+33
+1.97984537405954
+70
+0
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.60791666666667
+20
+3.0
+30
+1.02015462594046
+11
+1.71583333333333
+21
+3.0
+31
+1.27412051524007
+12
+1.71583333333333
+22
+3.0
+32
+0.8525
+13
+1.71583333333333
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+3.0
+30
+1.27412051524007
+11
+1.60791666666667
+21
+3.0
+31
+1.02015462594046
+12
+1.71461991087043
+22
+3.0
+32
+1.27285567614847
+13
+1.71461991087043
+23
+3.0
+33
+1.27285567614847
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+2.1475
+20
+3.0
+30
+1.28416666666667
+11
+1.71583333333333
+21
+1.5
+31
+0.8525
+12
+2.1475
+22
+1.5
+32
+1.28416666666667
+13
+2.1475
+23
+1.5
+33
+1.28416666666667
+70
+1
+ 0
+3DFACE
+ 8
+taser_b
+10
+1.71583333333333
+20
+1.5
+30
+0.8525
+11
+2.1475
+21
+3.0
+31
+1.28416666666667
+12
+1.71583333333333
+22
+3.0
+32
+0.8525
+13
+1.71583333333333
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.74
+20
+1.5
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.74
+21
+1.5
+31
+3.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+3.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+0.205
+22
+3.0
+32
+0.0
+13
+0.205
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.497732043121052
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.878679656440357
+22
+3.0
+32
+0.0
+13
+0.878679656440357
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440357
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.20163144893051
+22
+3.0
+32
+0.0
+13
+1.20163144893051
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+0.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+0.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+0.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.743659607729131
+20
+1.42550697334953
+30
+0.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.754603186893545
+20
+1.35173135526774
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+3.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.754603186893545
+20
+1.35173135526774
+30
+0.0
+11
+0.772725344843522
+21
+1.27938364528661
+31
+3.0
+12
+0.772725344843522
+22
+1.27938364528661
+32
+0.0
+13
+0.772725344843522
+23
+1.27938364528661
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.772725344843522
+20
+1.27938364528661
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.772725344843522
+20
+1.27938364528661
+30
+0.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+3.0
+11
+0.772725344843522
+21
+1.27938364528661
+31
+0.0
+12
+0.772725344843522
+22
+1.27938364528661
+32
+3.0
+13
+0.772725344843522
+23
+1.27938364528661
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+0.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.82973983909525
+20
+1.14173848001224
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+0.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+3.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.82973983909525
+20
+1.14173848001224
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.74
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+0.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.743659607729131
+20
+1.42550697334953
+30
+3.0
+11
+0.74
+21
+1.5
+31
+0.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+0.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+0.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.743659607729131
+20
+1.57449302665047
+30
+0.0
+11
+0.74
+21
+1.5
+31
+3.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.74
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+3.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+0.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.743659607729131
+20
+1.57449302665047
+30
+3.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.772725344843521
+20
+1.72061635471339
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+3.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+0.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.772725344843521
+20
+1.72061635471339
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.82973983909525
+20
+1.85826151998776
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.91251205544432
+20
+1.98213889596437
+30
+0.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+2.26
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+3.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.14173848001224
+20
+2.17026016090475
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.01786110403563
+20
+2.08748794455568
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+3.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+0.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+0.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.64826864473226
+20
+2.24539681310646
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.64826864473226
+20
+2.24539681310646
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+3.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+3.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+2.26
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+0.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+3.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+3.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+3.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+3.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+3.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+0.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+3.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+3.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+0.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+3.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+0.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.64826864473226
+20
+0.754603186893545
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+3.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+0.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+0.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+0.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+3.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+3.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+0.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+0.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.91251205544432
+20
+1.01786110403563
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.01786110403563
+20
+0.91251205544432
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+3.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+3.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+3.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.14173848001224
+20
+0.82973983909525
+30
+0.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+3.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+3.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+0.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+0.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+0.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+3.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+3.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+0.74
+31
+0.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+0.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+0.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+3.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+3.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.27938364528661
+20
+0.772725344843521
+30
+0.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+3.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+0.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+0.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+0.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+0.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+3.0
+22
+0.497732043121051
+32
+0.0
+13
+3.0
+23
+0.497732043121051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.79836855106949
+22
+0.0
+32
+0.0
+13
+1.79836855106949
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+0.0
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.74
+20
+1.5
+30
+0.0
+11
+2.77555756156289e-17
+21
+1.20163144893051
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.77555756156289e-17
+20
+1.20163144893051
+30
+0.0
+11
+0.74
+21
+1.5
+31
+0.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+0.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.77555756156289e-17
+20
+1.20163144893051
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+0.205
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+0.497732043121053
+22
+-5.55111512312578e-17
+32
+0.0
+13
+0.497732043121053
+23
+-5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.497732043121053
+20
+-5.55111512312578e-17
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+0.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.497732043121053
+20
+-5.55111512312578e-17
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.20163144893051
+22
+3.0
+32
+0.0
+13
+1.20163144893051
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.26
+20
+1.5
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+-1.11022302462516e-16
+21
+2.50226795687895
+31
+0.0
+12
+0.0
+22
+2.795
+32
+0.0
+13
+0.0
+23
+2.795
+33
+0.0
+70
+12
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.878679656440357
+30
+0.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.878679656440357
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.0
+21
+1.79836855106949
+31
+0.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+0.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+-1.11022302462516e-16
+22
+0.878679656440357
+32
+0.0
+13
+-1.11022302462516e-16
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+0.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.20163144893051
+21
+5.55111512312578e-17
+31
+0.0
+12
+0.878679656440358
+22
+1.11022302462516e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.11022302462516e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+0.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+0.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+0.0
+11
+2.12132034355964
+21
+-5.55111512312578e-17
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+-5.55111512312578e-17
+30
+0.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+-5.55111512312578e-17
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+2.50226795687895
+22
+-4.16333634234434e-17
+32
+0.0
+13
+2.50226795687895
+23
+-4.16333634234434e-17
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440357
+20
+3.0
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.878679656440357
+21
+3.0
+31
+0.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+0.878679656440357
+21
+3.0
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+0.878679656440357
+22
+3.0
+32
+0.0
+13
+0.878679656440357
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.79836855106949
+22
+3.0
+32
+0.0
+13
+1.79836855106949
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.12132034355964
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+1.79836855106949
+32
+0.0
+13
+3.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+2.50226795687895
+21
+-4.16333634234434e-17
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+-4.16333634234434e-17
+30
+0.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+-4.16333634234434e-17
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+0.0
+11
+1.79836855106949
+21
+0.0
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+0.0
+30
+0.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+0.0
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+2.12132034355964
+22
+-5.55111512312578e-17
+32
+0.0
+13
+2.12132034355964
+23
+-5.55111512312578e-17
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.0
+12
+1.20163144893051
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.20163144893051
+23
+5.55111512312578e-17
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+0.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+0.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+0.878679656440358
+21
+1.11022302462516e-16
+31
+0.0
+12
+0.497732043121053
+22
+-5.55111512312578e-17
+32
+0.0
+13
+0.497732043121053
+23
+-5.55111512312578e-17
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440358
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+0.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+0.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440358
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.497732043121051
+32
+0.0
+13
+0.0
+23
+0.497732043121051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+0.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.77555756156289e-17
+20
+1.20163144893051
+30
+0.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+12
+-1.11022302462516e-16
+22
+0.878679656440357
+32
+0.0
+13
+-1.11022302462516e-16
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+2.77555756156289e-17
+21
+1.20163144893051
+31
+0.0
+12
+0.772725344843522
+22
+1.27938364528661
+32
+0.0
+13
+0.772725344843522
+23
+1.27938364528661
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.772725344843522
+20
+1.27938364528661
+30
+0.0
+11
+2.77555756156289e-17
+21
+1.20163144893051
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+0.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.0
+21
+2.12132034355964
+31
+0.0
+12
+-1.11022302462516e-16
+22
+2.50226795687895
+32
+0.0
+13
+-1.11022302462516e-16
+23
+2.50226795687895
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.0
+21
+2.795
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.754603186893545
+20
+1.35173135526774
+30
+3.0
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+3.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.42550697334953
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.26
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+0.754603186893545
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.35173135526774
+20
+2.24539681310645
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+3.0
+22
+0.878679656440357
+32
+3.0
+13
+3.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.868083094650066
+20
+1.0777666229051
+30
+3.0
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.878679656440357
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.878679656440357
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+0.0
+30
+3.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.98213889596437
+20
+0.91251205544432
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+3.0
+13
+2.795
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+0.772725344843521
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+0.0
+30
+3.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+0.82973983909525
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.27938364528661
+30
+3.0
+11
+3.0
+21
+0.878679656440357
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+3.0
+21
+0.878679656440357
+31
+3.0
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.01786110403563
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+3.0
+13
+3.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+1.79836855106949
+32
+3.0
+13
+0.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+3.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+3.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20916059140253
+20
+0.797851555291422
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+3.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.0
+21
+0.205
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+3.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.0777666229051
+20
+0.868083094650066
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+3.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.205
+21
+0.0
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+3.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.797851555291422
+20
+1.20916059140253
+30
+3.0
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.20163144893051
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.772725344843522
+22
+1.27938364528661
+32
+3.0
+13
+0.772725344843522
+23
+1.27938364528661
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.20163144893051
+30
+3.0
+11
+0.772725344843522
+21
+1.27938364528661
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.795
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+3.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.795
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+0.205
+11
+1.20163144893051
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.20163144893051
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.878679656440358
+22
+1.11022302462516e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.11022302462516e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.878679656440358
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.497732043121053
+22
+-5.55111512312578e-17
+32
+0.0
+13
+0.497732043121053
+23
+-5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.497732043121053
+20
+-5.55111512312578e-17
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.50226795687895
+21
+-4.16333634234434e-17
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+-4.16333634234434e-17
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+2.12132034355964
+22
+-5.55111512312578e-17
+32
+0.0
+13
+2.12132034355964
+23
+-5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+-5.55111512312578e-17
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.79836855106949
+22
+0.0
+32
+0.0
+13
+1.79836855106949
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.0
+13
+1.5
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+2.795
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+2.795
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+0.205
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+1.5
+11
+1.5
+21
+3.0
+31
+0.205
+12
+0.8525
+22
+3.0
+32
+0.8525
+13
+0.8525
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.497732043121052
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+1.5
+31
+0.205
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+0.205
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+2.795
+31
+0.205
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.205
+32
+0.0
+13
+0.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+-1.11022302462516e-16
+22
+0.878679656440357
+32
+0.0
+13
+-1.11022302462516e-16
+23
+0.878679656440357
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+-1.11022302462516e-16
+20
+0.878679656440357
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+2.77555756156289e-17
+22
+1.20163144893051
+32
+0.0
+13
+2.77555756156289e-17
+23
+1.20163144893051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.77555756156289e-17
+20
+1.20163144893051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+1.5
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+1.5
+13
+0.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+-1.11022302462516e-16
+22
+2.50226795687895
+32
+0.0
+13
+-1.11022302462516e-16
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+-1.11022302462516e-16
+20
+2.50226795687895
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+0.0
+13
+0.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+2.795
+13
+0.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.5
+31
+0.205
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+2.795
+31
+0.205
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+1.5
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+ 0
+LINE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+1.5
+13
+3.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+1.5
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+3.0
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.878679656440357
+32
+3.0
+13
+3.0
+23
+0.878679656440357
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+2.795
+13
+3.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+0.205
+13
+3.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+15
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.8525
+20
+3.0
+30
+2.1475
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.8525
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.795
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+2.795
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.5
+21
+0.0
+31
+1.5
+12
+2.1475
+22
+0.0
+32
+2.1475
+13
+2.1475
+23
+0.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+0.205
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+1.5
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.1475
+20
+0.0
+30
+0.8525
+11
+1.5
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0
+31
+0.205
+12
+2.1475
+22
+0.0
+32
+0.8525
+13
+2.1475
+23
+0.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.795
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+2.795
+13
+0.205
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.8525
+22
+0.0
+32
+2.1475
+13
+0.8525
+23
+0.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+0.205
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.8525
+20
+0.0
+30
+2.1475
+11
+0.205
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+0.205
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+pillar_base
+10
+1.5
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+1.5
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.85826151998776
+30
+1.5
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+1.5
+13
+0.868083094650066
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+1.5
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.797851555291422
+20
+1.79083940859747
+30
+1.5
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+1.5
+13
+0.82973983909525
+23
+1.85826151998776
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.74365960772913
+21
+1.57449302665047
+31
+1.5
+12
+0.743659607729131
+22
+1.57449302665047
+32
+3.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.74365960772913
+20
+1.57449302665047
+30
+1.5
+11
+0.754603186893545
+21
+1.64826864473226
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+1.5
+13
+0.754603186893545
+23
+1.64826864473226
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+2.24539681310646
+30
+3.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+1.5
+12
+1.64826864473226
+22
+2.24539681310646
+32
+1.5
+13
+1.64826864473226
+23
+2.24539681310646
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.72061635471339
+20
+2.22727465515648
+30
+1.5
+11
+1.64826864473226
+21
+2.24539681310646
+31
+3.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+3.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+1.5
+12
+1.57449302665047
+22
+2.25634039227087
+32
+1.5
+13
+1.57449302665047
+23
+2.25634039227087
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+2.24539681310646
+30
+1.5
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+1.5
+12
+0.962598846298224
+22
+2.03740115370178
+32
+1.5
+13
+0.962598846298224
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+2.08748794455568
+30
+1.5
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+1.5
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.98213889596437
+30
+1.5
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+1.5
+13
+0.962598846298224
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.22727465515648
+20
+1.72061635471339
+30
+1.5
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+3.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+1.5
+12
+2.20214844470858
+22
+1.79083940859747
+32
+1.5
+13
+2.20214844470858
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.35173135526774
+20
+0.754603186893545
+30
+3.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+1.5
+12
+1.35173135526774
+22
+0.754603186893545
+32
+1.5
+13
+1.35173135526774
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+0.772725344843521
+30
+1.5
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+3.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.42550697334953
+21
+0.74365960772913
+31
+1.5
+12
+1.5
+22
+0.74
+32
+1.5
+13
+1.5
+23
+0.74
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+0.74365960772913
+30
+1.5
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+0.74
+31
+1.5
+12
+1.57449302665047
+22
+0.743659607729131
+32
+1.5
+13
+1.57449302665047
+23
+0.743659607729131
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+0.74
+30
+1.5
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.08748794455568
+20
+1.01786110403563
+30
+1.5
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+3.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+1.5
+12
+2.13191690534993
+22
+1.0777666229051
+32
+1.5
+13
+2.13191690534993
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+1.5
+12
+1.27938364528661
+22
+0.772725344843521
+32
+1.5
+13
+1.27938364528661
+23
+0.772725344843521
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.20916059140253
+20
+0.797851555291422
+30
+1.5
+11
+1.27938364528661
+21
+0.772725344843521
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.25634039227087
+20
+1.57449302665047
+30
+1.5
+11
+2.26
+21
+1.5
+31
+3.0
+12
+2.26
+22
+1.5
+32
+1.5
+13
+2.26
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+1.5
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+1.5
+12
+1.42550697334953
+22
+0.74365960772913
+32
+1.5
+13
+1.42550697334953
+23
+0.74365960772913
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.35173135526774
+20
+0.754603186893545
+30
+1.5
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.85826151998776
+20
+0.82973983909525
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+1.5
+12
+1.85826151998776
+22
+0.829739839095251
+32
+1.5
+13
+1.85826151998776
+23
+0.829739839095251
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+1.5
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+1.5
+12
+1.0777666229051
+22
+2.13191690534993
+32
+1.5
+13
+1.0777666229051
+23
+2.13191690534993
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+2.17026016090475
+30
+1.5
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+2.08748794455568
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+1.5
+12
+1.01786110403563
+22
+2.08748794455568
+32
+1.5
+13
+1.01786110403563
+23
+2.08748794455568
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.0777666229051
+20
+2.13191690534993
+30
+1.5
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534994
+31
+1.5
+12
+1.85826151998776
+22
+2.17026016090475
+32
+1.5
+13
+1.85826151998776
+23
+2.17026016090475
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+2.13191690534994
+30
+1.5
+11
+1.85826151998776
+21
+2.17026016090475
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+0.962598846298225
+30
+1.5
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.08748794455568
+20
+1.01786110403563
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298225
+31
+1.5
+12
+2.08748794455568
+22
+1.01786110403563
+32
+1.5
+13
+2.08748794455568
+23
+1.01786110403563
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.64826864473226
+30
+1.5
+11
+2.22727465515648
+21
+1.72061635471339
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+2.24539681310646
+21
+1.64826864473226
+31
+1.5
+12
+2.22727465515648
+22
+1.72061635471339
+32
+1.5
+13
+2.22727465515648
+23
+1.72061635471339
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.25634039227087
+20
+1.42550697334953
+30
+1.5
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+1.5
+13
+2.24539681310646
+23
+1.35173135526774
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+1.5
+12
+2.25634039227087
+22
+1.42550697334953
+32
+3.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.20916059140253
+20
+0.797851555291422
+30
+3.0
+11
+1.14173848001224
+21
+0.829739839095251
+31
+1.5
+12
+1.20916059140253
+22
+0.797851555291422
+32
+1.5
+13
+1.20916059140253
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+0.829739839095251
+30
+1.5
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+3.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.772725344843522
+21
+1.72061635471339
+31
+1.5
+12
+0.772725344843521
+22
+1.72061635471339
+32
+3.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843522
+20
+1.72061635471339
+30
+1.5
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+1.5
+13
+0.797851555291422
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+1.5
+12
+1.5
+22
+2.26
+32
+1.5
+13
+1.5
+23
+2.26
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.57449302665047
+20
+2.25634039227087
+30
+1.5
+11
+1.5
+21
+2.26
+31
+3.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+3.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+2.26
+31
+1.5
+12
+1.42550697334953
+22
+2.25634039227087
+32
+1.5
+13
+1.42550697334953
+23
+2.25634039227087
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+2.26
+30
+1.5
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.35173135526774
+20
+2.24539681310645
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+1.5
+12
+1.35173135526774
+22
+2.24539681310646
+32
+1.5
+13
+1.35173135526774
+23
+2.24539681310646
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+2.25634039227087
+30
+1.5
+11
+1.35173135526774
+21
+2.24539681310645
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310646
+31
+1.5
+12
+1.27938364528661
+22
+2.22727465515648
+32
+1.5
+13
+1.27938364528661
+23
+2.22727465515648
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.35173135526774
+20
+2.24539681310646
+30
+1.5
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+1.5
+12
+1.20916059140253
+22
+2.20214844470858
+32
+1.5
+13
+1.20916059140253
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+2.22727465515648
+30
+1.5
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.17026016090475
+20
+1.85826151998776
+30
+1.5
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+3.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+1.5
+12
+2.13191690534993
+22
+1.9222333770949
+32
+1.5
+13
+2.13191690534993
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+1.5
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.868083094650066
+20
+1.9222333770949
+30
+1.5
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+1.5
+13
+0.91251205544432
+23
+1.98213889596437
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+1.85826151998776
+21
+0.829739839095251
+31
+1.5
+12
+1.9222333770949
+22
+0.868083094650066
+32
+1.5
+13
+1.9222333770949
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.85826151998776
+20
+0.829739839095251
+30
+1.5
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+3.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.98213889596437
+20
+0.91251205544432
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+1.5
+12
+1.98213889596437
+22
+0.91251205544432
+32
+1.5
+13
+1.98213889596437
+23
+0.91251205544432
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+1.5
+11
+1.98213889596437
+21
+0.91251205544432
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+1.5
+12
+2.03740115370178
+22
+0.962598846298225
+32
+1.5
+13
+2.03740115370178
+23
+0.962598846298225
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.98213889596437
+20
+0.91251205544432
+30
+1.5
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+3.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+1.5
+12
+1.01786110403563
+22
+0.91251205544432
+32
+1.5
+13
+1.01786110403563
+23
+0.91251205544432
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.962598846298224
+20
+0.962598846298224
+30
+1.5
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+1.5
+12
+1.79083940859747
+22
+2.20214844470858
+32
+1.5
+13
+1.79083940859747
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.85826151998776
+20
+2.17026016090475
+30
+1.5
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+3.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+1.5
+11
+2.08748794455568
+21
+1.98213889596437
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+1.5
+12
+2.08748794455568
+22
+1.98213889596437
+32
+1.5
+13
+2.08748794455568
+23
+1.98213889596437
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.25634039227087
+20
+1.57449302665047
+30
+1.5
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+1.5
+12
+2.24539681310646
+22
+1.64826864473226
+32
+1.5
+13
+2.24539681310646
+23
+1.64826864473226
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+1.5
+12
+1.9222333770949
+22
+2.13191690534994
+32
+1.5
+13
+1.9222333770949
+23
+2.13191690534994
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.98213889596437
+20
+2.08748794455568
+30
+1.5
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+3.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+1.5
+12
+1.98213889596437
+22
+2.08748794455568
+32
+1.5
+13
+1.98213889596437
+23
+2.08748794455568
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+1.5
+11
+1.98213889596437
+21
+2.08748794455568
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+1.5
+12
+1.72061635471339
+22
+2.22727465515648
+32
+1.5
+13
+1.72061635471339
+23
+2.22727465515648
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+1.5
+11
+1.72061635471339
+21
+2.22727465515648
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+1.5
+11
+2.17026016090475
+21
+1.85826151998776
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+1.5
+12
+2.17026016090475
+22
+1.85826151998776
+32
+1.5
+13
+2.17026016090475
+23
+1.85826151998776
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+1.5
+12
+1.14173848001224
+22
+0.829739839095251
+32
+1.5
+13
+1.14173848001224
+23
+0.829739839095251
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.0777666229051
+20
+0.868083094650066
+30
+1.5
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843522
+31
+1.5
+12
+1.79083940859747
+22
+0.797851555291422
+32
+1.5
+13
+1.79083940859747
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.72061635471339
+20
+0.772725344843522
+30
+1.5
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+3.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.743659607729131
+20
+1.57449302665047
+30
+3.0
+11
+0.74
+21
+1.5
+31
+1.5
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.74
+20
+1.5
+30
+1.5
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.74365960772913
+22
+1.57449302665047
+32
+1.5
+13
+0.74365960772913
+23
+1.57449302665047
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843521
+20
+1.72061635471339
+30
+3.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+1.5
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.754603186893545
+20
+1.64826864473226
+30
+1.5
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.772725344843522
+22
+1.72061635471339
+32
+1.5
+13
+0.772725344843522
+23
+1.72061635471339
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.08748794455568
+20
+1.98213889596437
+30
+1.5
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+3.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+1.5
+12
+2.03740115370178
+22
+2.03740115370178
+32
+1.5
+13
+2.03740115370178
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.72061635471339
+20
+0.772725344843521
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+1.5
+12
+1.72061635471339
+22
+0.772725344843522
+32
+1.5
+13
+1.72061635471339
+23
+0.772725344843522
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+0.754603186893545
+30
+1.5
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+1.5
+12
+0.962598846298224
+22
+0.962598846298224
+32
+1.5
+13
+0.962598846298224
+23
+0.962598846298224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.01786110403563
+30
+1.5
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+3.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.797851555291422
+20
+1.20916059140253
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+1.5
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.14173848001224
+30
+1.5
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+1.5
+13
+0.797851555291422
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+1.5
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+1.5
+12
+2.17026016090475
+22
+1.14173848001224
+32
+1.5
+13
+2.17026016090475
+23
+1.14173848001224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+1.5
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+1.5
+13
+2.17026016090475
+23
+1.14173848001224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+1.5
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.868083094650066
+20
+1.0777666229051
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+1.5
+12
+0.868083094650066
+22
+1.0777666229051
+32
+1.5
+13
+0.868083094650066
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.14173848001224
+30
+1.5
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+1.5
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+1.5
+13
+2.22727465515648
+23
+1.27938364528661
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.22727465515648
+20
+1.27938364528661
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+1.5
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.22727465515648
+20
+1.27938364528661
+30
+1.5
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+1.5
+13
+2.20214844470858
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+1.5
+12
+2.22727465515648
+22
+1.27938364528661
+32
+3.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.26
+20
+1.5
+30
+1.5
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+1.5
+13
+2.25634039227087
+23
+1.42550697334953
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.25634039227087
+20
+1.42550697334953
+30
+3.0
+11
+2.26
+21
+1.5
+31
+1.5
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+0.754603186893545
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+1.5
+12
+1.64826864473226
+22
+0.754603186893545
+32
+1.5
+13
+1.64826864473226
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.57449302665047
+20
+0.743659607729131
+30
+1.5
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.01786110403563
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+1.5
+12
+0.91251205544432
+22
+1.01786110403563
+32
+1.5
+13
+0.91251205544432
+23
+1.01786110403563
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.868083094650066
+20
+1.0777666229051
+30
+1.5
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.0777666229051
+20
+0.868083094650066
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+1.5
+12
+1.0777666229051
+22
+0.868083094650066
+32
+1.5
+13
+1.0777666229051
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+0.91251205544432
+30
+1.5
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+3.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.74
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+1.5
+12
+0.743659607729131
+22
+1.42550697334953
+32
+3.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.743659607729131
+20
+1.42550697334953
+30
+1.5
+11
+0.74
+21
+1.5
+31
+3.0
+12
+0.74
+22
+1.5
+32
+1.5
+13
+0.74
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.743659607729131
+20
+1.42550697334953
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+1.5
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.754603186893545
+20
+1.35173135526774
+30
+1.5
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+1.5
+13
+0.743659607729131
+23
+1.42550697334953
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.754603186893545
+20
+1.35173135526774
+30
+3.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+1.5
+12
+0.772725344843522
+22
+1.27938364528661
+32
+3.0
+13
+0.772725344843522
+23
+1.27938364528661
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843521
+20
+1.27938364528661
+30
+1.5
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+1.5
+13
+0.754603186893545
+23
+1.35173135526774
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843522
+20
+1.27938364528661
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+1.5
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.797851555291422
+20
+1.20916059140253
+30
+1.5
+11
+0.772725344843522
+21
+1.27938364528661
+31
+3.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+1.5
+13
+0.772725344843521
+23
+1.27938364528661
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+2.17026016090475
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+1.5
+12
+1.14173848001224
+22
+2.17026016090475
+32
+1.5
+13
+1.14173848001224
+23
+2.17026016090475
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.20916059140253
+20
+2.20214844470858
+30
+1.5
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+3.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+3.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843522
+20
+1.27938364528661
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.772725344843522
+21
+1.27938364528661
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.14173848001224
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.743659607729131
+20
+1.57449302665047
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.01786110403563
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+3.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+0.754603186893545
+30
+3.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+2.24539681310646
+30
+3.0
+11
+1.5
+21
+2.26
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+3.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+3.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+2.24539681310646
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+3.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+2.17026016090475
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+3.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+3.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+0.754603186893545
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+3.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+2.08748794455568
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+3.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+3.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+3.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+3.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+3.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+3.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843521
+20
+1.72061635471339
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.743659607729131
+20
+1.42550697334953
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+1.5
+11
+2.20214844470858
+21
+1.20916059140253
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+1.5
+11
+2.24539681310646
+21
+1.35173135526774
+31
+1.5
+12
+2.22727465515648
+22
+1.27938364528661
+32
+1.5
+13
+2.22727465515648
+23
+1.27938364528661
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.26
+20
+1.5
+30
+1.5
+11
+2.24539681310646
+21
+1.35173135526774
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+1.5
+11
+2.26
+21
+1.5
+31
+1.5
+12
+2.25634039227087
+22
+1.42550697334953
+32
+1.5
+13
+2.25634039227087
+23
+1.42550697334953
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+1.5
+11
+2.03740115370178
+21
+0.962598846298225
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+0.962598846298225
+30
+1.5
+11
+2.13191690534993
+21
+1.0777666229051
+31
+1.5
+12
+2.08748794455568
+22
+1.01786110403563
+32
+1.5
+13
+2.08748794455568
+23
+1.01786110403563
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+1.5
+11
+2.13191690534993
+21
+1.0777666229051
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+1.5
+11
+2.20214844470858
+21
+1.20916059140253
+31
+1.5
+12
+2.17026016090475
+22
+1.14173848001224
+32
+1.5
+13
+2.17026016090475
+23
+1.14173848001224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+2.25634039227087
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.35173135526774
+22
+2.24539681310646
+32
+1.5
+13
+1.35173135526774
+23
+2.24539681310646
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.42550697334953
+21
+2.25634039227087
+31
+1.5
+12
+1.5
+22
+2.26
+32
+1.5
+13
+1.5
+23
+2.26
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+2.22727465515648
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20916059140253
+22
+2.20214844470858
+32
+1.5
+13
+1.20916059140253
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27938364528661
+21
+2.22727465515648
+31
+1.5
+12
+1.35173135526774
+22
+2.24539681310646
+32
+1.5
+13
+1.35173135526774
+23
+2.24539681310646
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+1.5
+11
+2.24539681310646
+21
+1.64826864473226
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.64826864473226
+30
+1.5
+11
+2.20214844470858
+21
+1.79083940859747
+31
+1.5
+12
+2.22727465515648
+22
+1.72061635471339
+32
+1.5
+13
+2.22727465515648
+23
+1.72061635471339
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.24539681310646
+20
+1.64826864473226
+30
+1.5
+11
+2.26
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.26
+20
+1.5
+30
+1.5
+11
+2.24539681310646
+21
+1.64826864473226
+31
+1.5
+12
+2.25634039227087
+22
+1.57449302665047
+32
+1.5
+13
+2.25634039227087
+23
+1.57449302665047
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+1.5
+11
+1.64826864473226
+21
+0.754603186893545
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+0.754603186893545
+30
+1.5
+11
+1.79083940859747
+21
+0.797851555291422
+31
+1.5
+12
+1.72061635471339
+22
+0.772725344843522
+32
+1.5
+13
+1.72061635471339
+23
+0.772725344843522
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+1.5
+11
+1.79083940859747
+21
+0.797851555291422
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+1.5
+11
+1.9222333770949
+21
+0.868083094650066
+31
+1.5
+12
+1.85826151998776
+22
+0.829739839095251
+32
+1.5
+13
+1.85826151998776
+23
+0.829739839095251
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+2.13191690534994
+30
+1.5
+11
+2.03740115370178
+21
+2.03740115370178
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+1.5
+11
+1.9222333770949
+21
+2.13191690534994
+31
+1.5
+12
+1.98213889596437
+22
+2.08748794455568
+32
+1.5
+13
+1.98213889596437
+23
+2.08748794455568
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+1.5
+11
+2.13191690534993
+21
+1.9222333770949
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+1.5
+11
+2.03740115370178
+21
+2.03740115370178
+31
+1.5
+12
+2.08748794455568
+22
+1.98213889596437
+32
+1.5
+13
+2.08748794455568
+23
+1.98213889596437
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.91251205544432
+21
+1.01786110403563
+31
+1.5
+12
+0.868083094650066
+22
+1.0777666229051
+32
+1.5
+13
+0.868083094650066
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.01786110403563
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.962598846298224
+22
+0.962598846298224
+32
+1.5
+13
+0.962598846298224
+23
+0.962598846298224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.82973983909525
+21
+1.14173848001224
+31
+1.5
+12
+0.797851555291422
+22
+1.20916059140253
+32
+1.5
+13
+0.797851555291422
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.14173848001224
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.868083094650066
+22
+1.0777666229051
+32
+1.5
+13
+0.868083094650066
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01786110403563
+21
+0.91251205544432
+31
+1.5
+12
+0.962598846298224
+22
+0.962598846298224
+32
+1.5
+13
+0.962598846298224
+23
+0.962598846298224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+0.91251205544432
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.0777666229051
+22
+0.868083094650066
+32
+1.5
+13
+1.0777666229051
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.14173848001224
+21
+0.829739839095251
+31
+1.5
+12
+1.0777666229051
+22
+0.868083094650066
+32
+1.5
+13
+1.0777666229051
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+0.829739839095251
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20916059140253
+22
+0.797851555291422
+32
+1.5
+13
+1.20916059140253
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.42550697334953
+21
+0.74365960772913
+31
+1.5
+12
+1.35173135526774
+22
+0.754603186893545
+32
+1.5
+13
+1.35173135526774
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.42550697334953
+20
+0.74365960772913
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+0.74
+32
+1.5
+13
+1.5
+23
+0.74
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.57449302665047
+21
+0.743659607729131
+31
+1.5
+12
+1.5
+22
+0.74
+32
+1.5
+13
+1.5
+23
+0.74
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.57449302665047
+20
+0.743659607729131
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.64826864473226
+22
+0.754603186893545
+32
+1.5
+13
+1.64826864473226
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.57449302665047
+20
+2.25634039227087
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+2.26
+32
+1.5
+13
+1.5
+23
+2.26
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.57449302665047
+21
+2.25634039227087
+31
+1.5
+12
+1.64826864473226
+22
+2.24539681310646
+32
+1.5
+13
+1.64826864473226
+23
+2.24539681310646
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.64826864473226
+20
+2.24539681310646
+30
+1.5
+11
+1.79083940859747
+21
+2.20214844470858
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+1.5
+11
+1.64826864473226
+21
+2.24539681310646
+31
+1.5
+12
+1.72061635471339
+22
+2.22727465515648
+32
+1.5
+13
+1.72061635471339
+23
+2.22727465515648
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.743659607729131
+21
+1.42550697334953
+31
+1.5
+12
+0.74
+22
+1.5
+32
+1.5
+13
+0.74
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.743659607729131
+20
+1.42550697334953
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.754603186893545
+22
+1.35173135526774
+32
+1.5
+13
+0.754603186893545
+23
+1.35173135526774
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.74365960772913
+20
+1.57449302665047
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.74
+22
+1.5
+32
+1.5
+13
+0.74
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.74365960772913
+21
+1.57449302665047
+31
+1.5
+12
+0.754603186893545
+22
+1.64826864473226
+32
+1.5
+13
+0.754603186893545
+23
+1.64826864473226
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.82973983909525
+20
+1.85826151998776
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.797851555291422
+22
+1.79083940859747
+32
+1.5
+13
+0.797851555291422
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.82973983909525
+21
+1.85826151998776
+31
+1.5
+12
+0.868083094650066
+22
+1.9222333770949
+32
+1.5
+13
+0.868083094650066
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843522
+20
+1.72061635471339
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.754603186893545
+22
+1.64826864473226
+32
+1.5
+13
+0.754603186893545
+23
+1.64826864473226
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.772725344843522
+21
+1.72061635471339
+31
+1.5
+12
+0.797851555291422
+22
+1.79083940859747
+32
+1.5
+13
+0.797851555291422
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.01786110403563
+20
+2.08748794455568
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.962598846298224
+22
+2.03740115370178
+32
+1.5
+13
+0.962598846298224
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01786110403563
+21
+2.08748794455568
+31
+1.5
+12
+1.0777666229051
+22
+2.13191690534993
+32
+1.5
+13
+1.0777666229051
+23
+2.13191690534993
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.91251205544432
+20
+1.98213889596437
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.868083094650066
+22
+1.9222333770949
+32
+1.5
+13
+0.868083094650066
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.91251205544432
+21
+1.98213889596437
+31
+1.5
+12
+0.962598846298224
+22
+2.03740115370178
+32
+1.5
+13
+0.962598846298224
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+1.5
+11
+1.9222333770949
+21
+2.13191690534994
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+2.13191690534994
+30
+1.5
+11
+1.79083940859747
+21
+2.20214844470858
+31
+1.5
+12
+1.85826151998776
+22
+2.17026016090475
+32
+1.5
+13
+1.85826151998776
+23
+2.17026016090475
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27938364528661
+21
+0.772725344843521
+31
+1.5
+12
+1.20916059140253
+22
+0.797851555291422
+32
+1.5
+13
+1.20916059140253
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.27938364528661
+20
+0.772725344843521
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.35173135526774
+22
+0.754603186893545
+32
+1.5
+13
+1.35173135526774
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+1.5
+11
+2.20214844470858
+21
+1.79083940859747
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+1.5
+11
+2.13191690534993
+21
+1.9222333770949
+31
+1.5
+12
+2.17026016090475
+22
+1.85826151998776
+32
+1.5
+13
+2.17026016090475
+23
+1.85826151998776
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+2.03740115370178
+20
+0.962598846298225
+30
+1.5
+11
+1.9222333770949
+21
+0.868083094650066
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+1.5
+11
+2.03740115370178
+21
+0.962598846298225
+31
+1.5
+12
+1.98213889596437
+22
+0.91251205544432
+32
+1.5
+13
+1.98213889596437
+23
+0.91251205544432
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.14173848001224
+20
+2.17026016090475
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.0777666229051
+22
+2.13191690534993
+32
+1.5
+13
+1.0777666229051
+23
+2.13191690534993
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.14173848001224
+21
+2.17026016090475
+31
+1.5
+12
+1.20916059140253
+22
+2.20214844470858
+32
+1.5
+13
+1.20916059140253
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.772725344843521
+21
+1.27938364528661
+31
+1.5
+12
+0.754603186893545
+22
+1.35173135526774
+32
+1.5
+13
+0.754603186893545
+23
+1.35173135526774
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_a
+10
+0.772725344843521
+20
+1.27938364528661
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.797851555291422
+22
+1.20916059140253
+32
+1.5
+13
+0.797851555291422
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.64826864473226
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+1.5
+12
+2.24539681310645
+22
+1.64826864473226
+32
+1.5
+13
+2.24539681310645
+23
+1.64826864473226
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.22727465515648
+20
+1.72061635471339
+30
+1.5
+11
+2.24539681310646
+21
+1.64826864473226
+31
+0.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+0.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+1.5
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+1.5
+12
+1.0777666229051
+22
+2.13191690534993
+32
+1.5
+13
+1.0777666229051
+23
+2.13191690534993
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.85826151998776
+20
+2.17026016090475
+30
+1.5
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+0.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+1.5
+12
+1.9222333770949
+22
+2.13191690534993
+32
+1.5
+13
+1.9222333770949
+23
+2.13191690534993
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.85826151998776
+20
+0.82973983909525
+30
+1.5
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.85826151998776
+22
+0.829739839095251
+32
+0.0
+13
+1.85826151998776
+23
+0.829739839095251
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+1.5
+12
+1.79083940859747
+22
+0.797851555291422
+32
+1.5
+13
+1.79083940859747
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+1.5
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+1.5
+12
+1.14173848001224
+22
+2.17026016090475
+32
+1.5
+13
+1.14173848001224
+23
+2.17026016090475
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.35173135526774
+20
+0.754603186893545
+30
+1.5
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+0.772725344843521
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+1.5
+12
+1.27938364528661
+22
+0.772725344843521
+32
+1.5
+13
+1.27938364528661
+23
+0.772725344843521
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+0.743659607729131
+30
+1.5
+11
+1.35173135526774
+21
+0.754603186893545
+31
+0.0
+12
+1.42550697334953
+22
+0.74365960772913
+32
+0.0
+13
+1.42550697334953
+23
+0.74365960772913
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+1.5
+12
+1.35173135526774
+22
+0.754603186893545
+32
+1.5
+13
+1.35173135526774
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+0.74
+30
+1.5
+11
+1.42550697334953
+21
+0.74365960772913
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+0.74365960772913
+30
+0.0
+11
+1.5
+21
+0.74
+31
+1.5
+12
+1.42550697334953
+22
+0.743659607729131
+32
+1.5
+13
+1.42550697334953
+23
+0.743659607729131
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.57449302665047
+20
+0.743659607729131
+30
+1.5
+11
+1.5
+21
+0.74
+31
+0.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+0.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+1.5
+12
+1.5
+22
+0.74
+32
+1.5
+13
+1.5
+23
+0.74
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+1.5
+12
+2.08748794455568
+22
+1.01786110403563
+32
+1.5
+13
+2.08748794455568
+23
+1.01786110403563
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+1.5
+11
+2.08748794455568
+21
+1.01786110403563
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+0.772725344843521
+30
+1.5
+11
+1.20916059140253
+21
+0.797851555291422
+31
+0.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+0.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+1.5
+12
+1.20916059140253
+22
+0.797851555291422
+32
+1.5
+13
+1.20916059140253
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+1.5
+12
+2.26
+22
+1.5
+32
+1.5
+13
+2.26
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.25634039227087
+20
+1.57449302665047
+30
+1.5
+11
+2.26
+21
+1.5
+31
+0.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+0.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.754603186893545
+20
+1.64826864473226
+30
+1.5
+11
+0.74365960772913
+21
+1.57449302665047
+31
+0.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+1.5
+13
+0.743659607729131
+23
+1.57449302665047
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.74365960772913
+20
+1.57449302665047
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+1.5
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+2.24539681310646
+30
+1.5
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310646
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310646
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+1.5
+12
+1.72061635471339
+22
+2.22727465515648
+32
+1.5
+13
+1.72061635471339
+23
+2.22727465515648
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.57449302665047
+20
+2.25634039227087
+30
+1.5
+11
+1.64826864473226
+21
+2.24539681310646
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+2.24539681310646
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+1.5
+12
+1.64826864473226
+22
+2.24539681310646
+32
+1.5
+13
+1.64826864473226
+23
+2.24539681310646
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.962598846298224
+20
+2.03740115370178
+30
+1.5
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+1.5
+12
+1.01786110403563
+22
+2.08748794455568
+32
+1.5
+13
+1.01786110403563
+23
+2.08748794455568
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.962598846298224
+20
+2.03740115370178
+30
+1.5
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+1.5
+13
+0.91251205544432
+23
+1.98213889596437
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+1.5
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+1.5
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+1.5
+12
+0.868083094650066
+22
+1.9222333770949
+32
+1.5
+13
+0.868083094650066
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+1.5
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+1.5
+13
+0.797851555291422
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+1.5
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+1.5
+11
+0.772725344843522
+21
+1.72061635471339
+31
+0.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+1.5
+13
+0.772725344843521
+23
+1.72061635471339
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843522
+20
+1.72061635471339
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+1.5
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+2.26
+30
+1.5
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+2.26
+31
+1.5
+12
+1.57449302665047
+22
+2.25634039227087
+32
+1.5
+13
+1.57449302665047
+23
+2.25634039227087
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+2.25634039227087
+30
+1.5
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+2.26
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+1.5
+12
+1.5
+22
+2.26
+32
+1.5
+13
+1.5
+23
+2.26
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.35173135526774
+20
+2.24539681310645
+30
+1.5
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+1.5
+12
+1.42550697334953
+22
+2.25634039227087
+32
+1.5
+13
+1.42550697334953
+23
+2.25634039227087
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+1.5
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.35173135526774
+20
+2.24539681310645
+30
+0.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+1.5
+12
+1.35173135526774
+22
+2.24539681310645
+32
+1.5
+13
+1.35173135526774
+23
+2.24539681310645
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.20916059140253
+20
+2.20214844470858
+30
+1.5
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+1.5
+12
+1.27938364528661
+22
+2.22727465515648
+32
+1.5
+13
+1.27938364528661
+23
+2.22727465515648
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.17026016090475
+20
+1.85826151998776
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+1.5
+12
+2.17026016090475
+22
+1.85826151998776
+32
+1.5
+13
+2.17026016090475
+23
+1.85826151998776
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+1.5
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+1.5
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+1.5
+13
+0.868083094650066
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+1.5
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+1.5
+11
+1.85826151998776
+21
+0.829739839095251
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.85826151998776
+20
+0.829739839095251
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+1.5
+12
+1.85826151998776
+22
+0.82973983909525
+32
+1.5
+13
+1.85826151998776
+23
+0.82973983909525
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.98213889596437
+20
+0.91251205544432
+30
+1.5
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+0.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+1.5
+12
+1.9222333770949
+22
+0.868083094650066
+32
+1.5
+13
+1.9222333770949
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+0.962598846298224
+30
+1.5
+11
+1.98213889596437
+21
+0.91251205544432
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298225
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298225
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+1.5
+12
+1.98213889596437
+22
+0.91251205544432
+32
+1.5
+13
+1.98213889596437
+23
+0.91251205544432
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+0.91251205544432
+30
+1.5
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+0.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+1.5
+12
+0.962598846298224
+22
+0.962598846298224
+32
+1.5
+13
+0.962598846298224
+23
+0.962598846298224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+1.5
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+1.5
+12
+1.85826151998776
+22
+2.17026016090475
+32
+1.5
+13
+1.85826151998776
+23
+2.17026016090475
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.08748794455568
+20
+1.98213889596437
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+1.5
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+1.5
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+1.5
+13
+2.08748794455568
+23
+1.98213889596437
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.25634039227087
+20
+1.57449302665047
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+1.5
+12
+2.25634039227087
+22
+1.57449302665047
+32
+1.5
+13
+2.25634039227087
+23
+1.57449302665047
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310645
+20
+1.64826864473226
+30
+1.5
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.24539681310646
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310646
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+1.5
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+1.5
+12
+1.98213889596437
+22
+2.08748794455568
+32
+1.5
+13
+1.98213889596437
+23
+2.08748794455568
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.98213889596437
+20
+2.08748794455568
+30
+1.5
+11
+2.03740115370177
+21
+2.03740115370178
+31
+0.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+0.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370177
+20
+2.03740115370178
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+1.5
+12
+2.03740115370178
+22
+2.03740115370178
+32
+1.5
+13
+2.03740115370178
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.72061635471339
+20
+2.22727465515648
+30
+1.5
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+0.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+1.5
+12
+1.79083940859747
+22
+2.20214844470858
+32
+1.5
+13
+1.79083940859747
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+1.5
+12
+2.20214844470858
+22
+1.79083940859747
+32
+1.5
+13
+2.20214844470858
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.17026016090475
+20
+1.85826151998776
+30
+1.5
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+0.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+0.82973983909525
+30
+1.5
+11
+1.0777666229051
+21
+0.868083094650066
+31
+0.0
+12
+1.14173848001224
+22
+0.829739839095251
+32
+0.0
+13
+1.14173848001224
+23
+0.829739839095251
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+1.5
+12
+1.0777666229051
+22
+0.868083094650066
+32
+1.5
+13
+1.0777666229051
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+1.5
+11
+1.72061635471339
+21
+0.772725344843522
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.72061635471339
+20
+0.772725344843522
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+1.5
+12
+1.72061635471339
+22
+0.772725344843521
+32
+1.5
+13
+1.72061635471339
+23
+0.772725344843521
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.743659607729131
+20
+1.57449302665047
+30
+1.5
+11
+0.74
+21
+1.5
+31
+0.0
+12
+0.74
+22
+1.5
+32
+1.5
+13
+0.74
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.74
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+1.5
+12
+0.74365960772913
+22
+1.57449302665047
+32
+0.0
+13
+0.74365960772913
+23
+1.57449302665047
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.754603186893545
+20
+1.64826864473226
+30
+1.5
+11
+0.772725344843522
+21
+1.72061635471339
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843522
+20
+1.72061635471339
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+1.5
+12
+0.772725344843521
+22
+1.72061635471339
+32
+1.5
+13
+0.772725344843521
+23
+1.72061635471339
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370177
+20
+2.03740115370178
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+1.5
+12
+2.08748794455568
+22
+1.98213889596437
+32
+0.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.08748794455568
+20
+1.98213889596437
+30
+1.5
+11
+2.03740115370177
+21
+2.03740115370178
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+1.5
+13
+2.03740115370178
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.72061635471339
+20
+0.772725344843521
+30
+1.5
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.72061635471339
+22
+0.772725344843522
+32
+0.0
+13
+1.72061635471339
+23
+0.772725344843522
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+1.5
+12
+1.64826864473226
+22
+0.754603186893545
+32
+1.5
+13
+1.64826864473226
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.962598846298224
+20
+0.962598846298224
+30
+1.5
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+1.5
+12
+0.91251205544432
+22
+1.01786110403563
+32
+1.5
+13
+0.91251205544432
+23
+1.01786110403563
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.797851555291422
+20
+1.20916059140253
+30
+1.5
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+1.5
+13
+0.82973983909525
+23
+1.14173848001224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.14173848001224
+30
+0.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+1.5
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+1.5
+12
+2.13191690534993
+22
+1.0777666229051
+32
+1.5
+13
+2.13191690534993
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.17026016090475
+20
+1.14173848001224
+30
+1.5
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+1.5
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.17026016090475
+20
+1.14173848001224
+30
+1.5
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+1.5
+13
+2.20214844470858
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.14173848001224
+30
+1.5
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+1.5
+13
+0.868083094650066
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+1.5
+12
+0.82973983909525
+22
+1.14173848001224
+32
+0.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+1.5
+12
+2.22727465515648
+22
+1.27938364528661
+32
+1.5
+13
+2.22727465515648
+23
+1.27938364528661
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+1.5
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+1.5
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+1.5
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+1.5
+13
+2.22727465515648
+23
+1.27938364528661
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+1.5
+12
+2.25634039227087
+22
+1.42550697334953
+32
+0.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.25634039227087
+20
+1.42550697334953
+30
+1.5
+11
+2.26
+21
+1.5
+31
+0.0
+12
+2.26
+22
+1.5
+32
+1.5
+13
+2.26
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+1.5
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+1.5
+12
+1.57449302665047
+22
+0.743659607729131
+32
+1.5
+13
+1.57449302665047
+23
+0.743659607729131
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.868083094650066
+20
+1.0777666229051
+30
+1.5
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+1.5
+13
+0.91251205544432
+23
+1.01786110403563
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+1.5
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.0777666229051
+20
+0.868083094650066
+30
+1.5
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+0.91251205544432
+30
+0.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+1.5
+12
+1.01786110403563
+22
+0.91251205544432
+32
+1.5
+13
+1.01786110403563
+23
+0.91251205544432
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.74
+20
+1.5
+30
+1.5
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+1.5
+13
+0.743659607729131
+23
+1.42550697334953
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.743659607729131
+20
+1.42550697334953
+30
+0.0
+11
+0.74
+21
+1.5
+31
+1.5
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.743659607729131
+20
+1.42550697334953
+30
+1.5
+11
+0.754603186893545
+21
+1.35173135526774
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+1.5
+13
+0.754603186893545
+23
+1.35173135526774
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.754603186893545
+20
+1.35173135526774
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+1.5
+12
+0.743659607729131
+22
+1.42550697334953
+32
+0.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.754603186893545
+20
+1.35173135526774
+30
+1.5
+11
+0.772725344843521
+21
+1.27938364528661
+31
+0.0
+12
+0.772725344843522
+22
+1.27938364528661
+32
+1.5
+13
+0.772725344843522
+23
+1.27938364528661
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843521
+20
+1.27938364528661
+30
+0.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+1.5
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843522
+20
+1.27938364528661
+30
+1.5
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+1.5
+13
+0.797851555291422
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.772725344843522
+21
+1.27938364528661
+31
+1.5
+12
+0.772725344843521
+22
+1.27938364528661
+32
+0.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+1.5
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+1.5
+12
+1.20916059140253
+22
+2.20214844470858
+32
+1.5
+13
+1.20916059140253
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+0.74365960772913
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+0.74365960772913
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+1.5
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+1.5
+11
+2.25634039227087
+21
+1.42550697334953
+31
+0.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+1.5
+13
+2.25634039227087
+23
+1.42550697334953
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+0.962598846298225
+30
+0.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+1.5
+12
+2.03740115370178
+22
+0.962598846298224
+32
+1.5
+13
+2.03740115370178
+23
+0.962598846298224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.08748794455568
+20
+1.01786110403563
+30
+1.5
+11
+2.03740115370178
+21
+0.962598846298225
+31
+0.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+0.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.22727465515648
+20
+1.72061635471339
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+1.5
+12
+2.22727465515648
+22
+1.72061635471339
+32
+1.5
+13
+2.22727465515648
+23
+1.72061635471339
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+1.5
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.20916059140253
+20
+0.797851555291422
+30
+1.5
+11
+1.14173848001224
+21
+0.829739839095251
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+0.829739839095251
+30
+0.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+1.5
+12
+1.14173848001224
+22
+0.82973983909525
+32
+1.5
+13
+1.14173848001224
+23
+0.82973983909525
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310645
+20
+1.64826864473226
+30
+1.5
+11
+2.20214844470858
+21
+1.79083940859747
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+1.5
+11
+2.24539681310645
+21
+1.64826864473226
+31
+1.5
+12
+2.22727465515648
+22
+1.72061635471339
+32
+1.5
+13
+2.22727465515648
+23
+1.72061635471339
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.74365960772913
+20
+1.57449302665047
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.74365960772913
+21
+1.57449302665047
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+2.24539681310646
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+0.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+0.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+0.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.14173848001224
+21
+0.829739839095251
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+0.829739839095251
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+2.26
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310646
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+2.24539681310646
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+2.03740115370177
+21
+2.03740115370178
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370177
+20
+2.03740115370178
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+0.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+0.772725344843521
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+0.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+0.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+0.91251205544432
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843521
+20
+1.27938364528661
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370177
+20
+2.03740115370178
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.03740115370177
+21
+2.03740115370178
+31
+0.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+0.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.14173848001224
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.64826864473226
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.24539681310646
+21
+1.64826864473226
+31
+0.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+0.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.743659607729131
+20
+1.42550697334953
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.24539681310646
+21
+1.64826864473226
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.64826864473226
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+0.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+0.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843522
+20
+1.72061635471339
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.772725344843522
+21
+1.72061635471339
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298225
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+0.962598846298225
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+0.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.85826151998776
+22
+0.829739839095251
+32
+0.0
+13
+1.85826151998776
+23
+0.829739839095251
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+0.962598846298225
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298225
+31
+0.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+0.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.5
+21
+0.74
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+0.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.72061635471339
+22
+0.772725344843522
+32
+0.0
+13
+1.72061635471339
+23
+0.772725344843522
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+1.5
+11
+2.13191690534993
+21
+1.9222333770949
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+1.5
+11
+2.20214844470858
+21
+1.79083940859747
+31
+1.5
+12
+2.17026016090475
+22
+1.85826151998776
+32
+1.5
+13
+2.17026016090475
+23
+1.85826151998776
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+1.5
+11
+1.79083940859747
+21
+2.20214844470858
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+1.5
+11
+1.9222333770949
+21
+2.13191690534993
+31
+1.5
+12
+1.85826151998776
+22
+2.17026016090475
+32
+1.5
+13
+1.85826151998776
+23
+2.17026016090475
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.91251205544432
+21
+1.98213889596437
+31
+1.5
+12
+0.868083094650066
+22
+1.9222333770949
+32
+1.5
+13
+0.868083094650066
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.962598846298224
+22
+2.03740115370178
+32
+1.5
+13
+0.962598846298224
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+1.5
+11
+1.64826864473226
+21
+2.24539681310646
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+2.24539681310646
+30
+1.5
+11
+1.79083940859747
+21
+2.20214844470858
+31
+1.5
+12
+1.72061635471339
+22
+2.22727465515648
+32
+1.5
+13
+1.72061635471339
+23
+2.22727465515648
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+1.5
+11
+2.03740115370178
+21
+2.03740115370178
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+2.03740115370178
+30
+1.5
+11
+2.13191690534993
+21
+1.9222333770949
+31
+1.5
+12
+2.08748794455568
+22
+1.98213889596437
+32
+1.5
+13
+2.08748794455568
+23
+1.98213889596437
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+2.24539681310646
+30
+1.5
+11
+1.5
+21
+2.26
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+2.26
+30
+1.5
+11
+1.64826864473226
+21
+2.24539681310646
+31
+1.5
+12
+1.57449302665047
+22
+2.25634039227087
+32
+1.5
+13
+1.57449302665047
+23
+2.25634039227087
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01786110403563
+21
+2.08748794455568
+31
+1.5
+12
+0.962598846298224
+22
+2.03740115370178
+32
+1.5
+13
+0.962598846298224
+23
+2.03740115370178
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.0777666229051
+22
+2.13191690534993
+32
+1.5
+13
+1.0777666229051
+23
+2.13191690534993
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.01786110403563
+20
+0.91251205544432
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.962598846298224
+22
+0.962598846298224
+32
+1.5
+13
+0.962598846298224
+23
+0.962598846298224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.01786110403563
+21
+0.91251205544432
+31
+1.5
+12
+1.0777666229051
+22
+0.868083094650066
+32
+1.5
+13
+1.0777666229051
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.14173848001224
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.797851555291422
+22
+1.20916059140253
+32
+1.5
+13
+0.797851555291422
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.82973983909525
+21
+1.14173848001224
+31
+1.5
+12
+0.868083094650066
+22
+1.0777666229051
+32
+1.5
+13
+0.868083094650066
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+1.5
+11
+2.03740115370178
+21
+0.962598846298224
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+0.962598846298224
+30
+1.5
+11
+1.9222333770949
+21
+0.868083094650066
+31
+1.5
+12
+1.98213889596437
+22
+0.91251205544432
+32
+1.5
+13
+1.98213889596437
+23
+0.91251205544432
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.91251205544432
+20
+1.01786110403563
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.868083094650066
+22
+1.0777666229051
+32
+1.5
+13
+0.868083094650066
+23
+1.0777666229051
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.91251205544432
+21
+1.01786110403563
+31
+1.5
+12
+0.962598846298224
+22
+0.962598846298224
+32
+1.5
+13
+0.962598846298224
+23
+0.962598846298224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+0.772725344843521
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20916059140253
+22
+0.797851555291422
+32
+1.5
+13
+1.20916059140253
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27938364528661
+21
+0.772725344843521
+31
+1.5
+12
+1.35173135526774
+22
+0.754603186893545
+32
+1.5
+13
+1.35173135526774
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+1.5
+11
+1.9222333770949
+21
+0.868083094650066
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+1.5
+11
+1.79083940859747
+21
+0.797851555291422
+31
+1.5
+12
+1.85826151998776
+22
+0.82973983909525
+32
+1.5
+13
+1.85826151998776
+23
+0.82973983909525
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+1.5
+11
+2.20214844470858
+21
+1.20916059140253
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+1.5
+11
+2.13191690534993
+21
+1.0777666229051
+31
+1.5
+12
+2.17026016090475
+22
+1.14173848001224
+32
+1.5
+13
+2.17026016090475
+23
+1.14173848001224
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+0.82973983909525
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.0777666229051
+22
+0.868083094650066
+32
+1.5
+13
+1.0777666229051
+23
+0.868083094650066
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.14173848001224
+21
+0.82973983909525
+31
+1.5
+12
+1.20916059140253
+22
+0.797851555291422
+32
+1.5
+13
+1.20916059140253
+23
+0.797851555291422
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+1.5
+11
+1.79083940859747
+21
+0.797851555291422
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+1.5
+11
+1.64826864473226
+21
+0.754603186893545
+31
+1.5
+12
+1.72061635471339
+22
+0.772725344843521
+32
+1.5
+13
+1.72061635471339
+23
+0.772725344843521
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.772725344843521
+21
+1.72061635471339
+31
+1.5
+12
+0.754603186893545
+22
+1.64826864473226
+32
+1.5
+13
+0.754603186893545
+23
+1.64826864473226
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843521
+20
+1.72061635471339
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.797851555291422
+22
+1.79083940859747
+32
+1.5
+13
+0.797851555291422
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.14173848001224
+21
+2.17026016090475
+31
+1.5
+12
+1.0777666229051
+22
+2.13191690534993
+32
+1.5
+13
+1.0777666229051
+23
+2.13191690534993
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.20916059140253
+22
+2.20214844470858
+32
+1.5
+13
+1.20916059140253
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.743659607729131
+21
+1.57449302665047
+31
+1.5
+12
+0.74
+22
+1.5
+32
+1.5
+13
+0.74
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.743659607729131
+20
+1.57449302665047
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.754603186893545
+22
+1.64826864473226
+32
+1.5
+13
+0.754603186893545
+23
+1.64826864473226
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.82973983909525
+21
+1.85826151998776
+31
+1.5
+12
+0.797851555291422
+22
+1.79083940859747
+32
+1.5
+13
+0.797851555291422
+23
+1.79083940859747
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.868083094650066
+22
+1.9222333770949
+32
+1.5
+13
+0.868083094650066
+23
+1.9222333770949
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.743659607729131
+20
+1.42550697334953
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.74
+22
+1.5
+32
+1.5
+13
+0.74
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.743659607729131
+21
+1.42550697334953
+31
+1.5
+12
+0.754603186893545
+22
+1.35173135526774
+32
+1.5
+13
+0.754603186893545
+23
+1.35173135526774
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+0.772725344843522
+20
+1.27938364528661
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+0.754603186893545
+22
+1.35173135526774
+32
+1.5
+13
+0.754603186893545
+23
+1.35173135526774
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+0.772725344843522
+21
+1.27938364528661
+31
+1.5
+12
+0.797851555291422
+22
+1.20916059140253
+32
+1.5
+13
+0.797851555291422
+23
+1.20916059140253
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.42550697334953
+21
+2.25634039227087
+31
+1.5
+12
+1.35173135526774
+22
+2.24539681310645
+32
+1.5
+13
+1.35173135526774
+23
+2.24539681310645
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+2.25634039227087
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.5
+22
+2.26
+32
+1.5
+13
+1.5
+23
+2.26
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+2.03740115370178
+30
+1.5
+11
+1.9222333770949
+21
+2.13191690534993
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+1.5
+11
+2.03740115370178
+21
+2.03740115370178
+31
+1.5
+12
+1.98213889596437
+22
+2.08748794455568
+32
+1.5
+13
+1.98213889596437
+23
+2.08748794455568
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.03740115370178
+20
+0.962598846298224
+30
+1.5
+11
+2.13191690534993
+21
+1.0777666229051
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+1.5
+11
+2.03740115370178
+21
+0.962598846298224
+31
+1.5
+12
+2.08748794455568
+22
+1.01786110403563
+32
+1.5
+13
+2.08748794455568
+23
+1.01786110403563
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.26
+20
+1.5
+30
+1.5
+11
+2.24539681310645
+21
+1.64826864473226
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310645
+20
+1.64826864473226
+30
+1.5
+11
+2.26
+21
+1.5
+31
+1.5
+12
+2.25634039227087
+22
+1.57449302665047
+32
+1.5
+13
+2.25634039227087
+23
+1.57449302665047
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.42550697334953
+20
+0.743659607729131
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.35173135526774
+22
+0.754603186893545
+32
+1.5
+13
+1.35173135526774
+23
+0.754603186893545
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.42550697334953
+21
+0.743659607729131
+31
+1.5
+12
+1.5
+22
+0.74
+32
+1.5
+13
+1.5
+23
+0.74
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+0.74
+30
+1.5
+11
+1.64826864473226
+21
+0.754603186893545
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+1.5
+11
+1.5
+21
+0.74
+31
+1.5
+12
+1.57449302665047
+22
+0.743659607729131
+32
+1.5
+13
+1.57449302665047
+23
+0.743659607729131
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+1.5
+11
+2.24539681310646
+21
+1.35173135526774
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+1.5
+11
+2.20214844470858
+21
+1.20916059140253
+31
+1.5
+12
+2.22727465515648
+22
+1.27938364528661
+32
+1.5
+13
+2.22727465515648
+23
+1.27938364528661
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.5
+20
+1.5
+30
+1.5
+11
+1.27938364528661
+21
+2.22727465515648
+31
+1.5
+12
+1.20916059140253
+22
+2.20214844470858
+32
+1.5
+13
+1.20916059140253
+23
+2.20214844470858
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+1.5
+11
+1.5
+21
+1.5
+31
+1.5
+12
+1.35173135526774
+22
+2.24539681310645
+32
+1.5
+13
+1.35173135526774
+23
+2.24539681310645
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+1.5
+11
+2.26
+21
+1.5
+31
+1.5
+12
+1.5
+22
+1.5
+32
+1.5
+13
+1.5
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+pillar_b
+10
+2.26
+20
+1.5
+30
+1.5
+11
+2.24539681310646
+21
+1.35173135526774
+31
+1.5
+12
+2.25634039227087
+22
+1.42550697334953
+32
+1.5
+13
+2.25634039227087
+23
+1.42550697334953
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+leviathan
+10
+2.25005874840729
+20
+3.0007189449114
+30
+2.25038878031282
+11
+6.83599400219787
+21
+-3.83207178618818
+31
+6.83197759827438
+12
+2.25309854396822
+22
+0.752182882434337
+32
+-0.00106460677458386
+13
+2.25309854396822
+23
+0.752182882434337
+33
+-0.00106460677458386
+70
+0
+ 0
+3DFACE
+ 8
+leviathan
+10
+2.25005874840729
+20
+3.0007189449114
+30
+2.25038878031282
+11
+2.25309854396822
+21
+0.752182882434337
+31
+-0.00106460677458386
+12
+-3.83269312832729
+22
+6.83333584417703
+32
+-3.83401461964133
+13
+-3.83269312832729
+23
+6.83333584417703
+33
+-3.83401461964133
+70
+0
+ 0
+3DFACE
+ 8
+leviathan
+10
+6.83599400219787
+20
+-3.83207178618818
+30
+6.83197759827438
+11
+0.00179401843026383
+21
+0.748994259637591
+31
+2.24762029441129
+12
+2.25309854396822
+22
+0.752182882434337
+32
+-0.00106460677458386
+13
+2.25309854396822
+23
+0.752182882434337
+33
+-0.00106460677458386
+70
+0
+ 0
+3DFACE
+ 8
+leviathan
+10
+6.83599400219787
+20
+-3.83207178618818
+30
+6.83197759827438
+11
+2.25005874840729
+21
+3.0007189449114
+31
+2.25038878031282
+12
+0.00179401843026383
+22
+0.748994259637591
+32
+2.24762029441129
+13
+0.00179401843026383
+23
+0.748994259637591
+33
+2.24762029441129
+70
+0
+ 0
+3DFACE
+ 8
+leviathan
+10
+0.00179401843026383
+20
+0.748994259637591
+30
+2.24762029441129
+11
+2.25005874840729
+21
+3.0007189449114
+31
+2.25038878031282
+12
+-3.83269312832729
+22
+6.83333584417703
+32
+-3.83401461964133
+13
+-3.83269312832729
+23
+6.83333584417703
+33
+-3.83401461964133
+70
+0
+ 0
+3DFACE
+ 8
+leviathan
+10
+0.00179401843026383
+20
+0.748994259637591
+30
+2.24762029441129
+11
+-3.83269312832729
+21
+6.83333584417703
+31
+-3.83401461964133
+12
+2.25309854396822
+22
+0.752182882434337
+32
+-0.00106460677458386
+13
+2.25309854396822
+23
+0.752182882434337
+33
+-0.00106460677458386
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.878679656440357
+32
+3.0
+13
+3.0
+23
+0.878679656440357
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.795
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+3.0
+22
+0.497732043121051
+32
+0.0
+13
+3.0
+23
+0.497732043121051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.17026016090475
+20
+1.85826151998776
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.12132034355964
+30
+0.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.22727465515648
+20
+1.72061635471339
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+1.79836855106949
+32
+0.0
+13
+3.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.497732043121051
+32
+0.0
+13
+0.0
+23
+0.497732043121051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+0.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.878679656440357
+32
+0.0
+13
+0.0
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+0.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.25634039227087
+20
+1.57449302665047
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.26
+20
+1.5
+30
+0.0
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+0.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+0.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+0.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.08748794455568
+20
+1.98213889596437
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.0
+21
+2.12132034355964
+31
+0.0
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.72061635471339
+20
+0.772725344843521
+30
+0.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.85826151998776
+20
+0.82973983909525
+30
+0.0
+11
+2.12132034355964
+21
+0.0
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+2.50226795687895
+22
+0.0
+32
+0.0
+13
+2.50226795687895
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.20163144893051
+22
+3.0
+32
+0.0
+13
+1.20163144893051
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.35173135526774
+20
+2.24539681310645
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.74
+20
+1.5
+30
+0.0
+11
+0.0
+21
+1.20163144893051
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.74
+21
+1.5
+31
+0.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+0.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.878679656440357
+30
+0.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.878679656440357
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.754603186893545
+20
+1.64826864473226
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+0.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+0.0
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+0.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+0.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+0.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+0.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.754603186893545
+20
+1.35173135526774
+30
+0.0
+11
+0.0
+21
+0.878679656440357
+31
+0.0
+12
+0.0
+22
+1.20163144893051
+32
+0.0
+13
+0.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+0.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+0.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+0.205
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+0.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440356
+20
+3.0
+30
+0.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+0.878679656440356
+21
+3.0
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+2.26
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.0
+21
+1.79836855106949
+31
+0.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+0.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.72061635471339
+20
+0.772725344843521
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.34882660079146
+22
+2.26
+32
+3.0
+13
+1.34882660079146
+23
+2.26
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.34882660079146
+20
+2.26
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.34882660079146
+20
+2.26
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+0.0
+30
+3.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.98213889596437
+20
+0.91251205544432
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+3.0
+13
+2.795
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.34882660079146
+20
+2.26
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.34882660079146
+21
+2.26
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+0.0
+30
+3.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.85826151998776
+20
+0.82973983909525
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.205
+21
+0.0
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+3.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.0777666229051
+20
+0.868083094650066
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+3.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+0.0
+21
+0.205
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+3.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20916059140253
+20
+0.797851555291422
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+3.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.35173135526774
+20
+0.754603186893545
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+1.79836855106949
+32
+3.0
+13
+0.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+3.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+3.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.797851555291422
+20
+1.20916059140253
+30
+3.0
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.20163144893051
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+3.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.20163144893051
+30
+3.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.868083094650066
+20
+1.0777666229051
+30
+3.0
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.878679656440357
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.878679656440357
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.22727465515648
+20
+1.27938364528661
+30
+3.0
+11
+3.0
+21
+0.878679656440357
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+3.0
+21
+0.878679656440357
+31
+3.0
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.25634039227087
+20
+1.42550697334953
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.26
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.0
+21
+2.795
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.754603186893545
+20
+1.35173135526774
+30
+3.0
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+3.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.74
+20
+1.5
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.74
+21
+1.5
+31
+3.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+3.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.08748794455568
+20
+1.01786110403563
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+3.0
+13
+3.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+3.0
+21
+0.497732043121051
+31
+3.0
+12
+3.0
+22
+0.878679656440357
+32
+3.0
+13
+3.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.795
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+3.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.795
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+0.205
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+0.0
+11
+1.5
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+2.795
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+2.795
+11
+2.795
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.497732043121052
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+0.205
+11
+2.795
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+0.205
+22
+3.0
+32
+0.0
+13
+0.205
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.497732043121052
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.878679656440356
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.20163144893051
+22
+3.0
+32
+0.0
+13
+1.20163144893051
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+0.205
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+2.795
+13
+0.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.205
+32
+0.0
+13
+0.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+0.878679656440357
+32
+0.0
+13
+0.0
+23
+0.878679656440357
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.20163144893051
+32
+0.0
+13
+0.0
+23
+1.20163144893051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+1.5
+13
+0.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+1.5
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+0.0
+13
+0.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+0.205
+32
+1.5
+13
+0.0
+23
+0.205
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.5
+31
+0.205
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+1.5
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+2.795
+31
+0.205
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+1.5
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+3.0
+31
+0.205
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+3.0
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+0.205
+13
+3.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+15
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+1.5
+13
+3.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+2.795
+13
+3.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+1.5
+11
+1.5
+21
+0.0
+31
+0.205
+12
+2.1475
+22
+0.0
+32
+0.8525
+13
+2.1475
+23
+0.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.1475
+20
+0.0
+30
+0.8525
+11
+1.5
+21
+0.0
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.8525
+20
+0.0
+30
+2.1475
+11
+0.205
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.5
+21
+0.0
+31
+1.5
+12
+2.1475
+22
+0.0
+32
+2.1475
+13
+2.1475
+23
+0.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+2.795
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+1.5
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.0
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+2.795
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+2.795
+13
+0.205
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.205
+21
+0.0
+31
+1.5
+12
+0.8525
+22
+0.0
+32
+2.1475
+13
+0.8525
+23
+0.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.205
+21
+0.0
+31
+0.205
+12
+0.8525
+22
+0.0
+32
+0.8525
+13
+0.8525
+23
+0.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+0.205
+21
+0.0
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.8525
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+2.795
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+1.5
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+0.205
+12
+2.1475
+22
+3.0
+32
+0.8525
+13
+2.1475
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+1.5
+11
+1.5
+21
+3.0
+31
+0.205
+12
+0.8525
+22
+3.0
+32
+0.8525
+13
+0.8525
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.8525
+20
+3.0
+30
+2.1475
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+3.0
+30
+1.5
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.795
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+box
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.795
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+LINE
+ 8
+box
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.14173848001224
+20
+0.82973983909525
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+0.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.772725344843521
+20
+1.72061635471339
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.5
+21
+0.74
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+0.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.772725344843521
+20
+1.27938364528661
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.64826864473226
+20
+2.24539681310645
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+0.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+0.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+0.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.42550697334953
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.01786110403563
+20
+0.91251205544432
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+0.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.27938364528661
+20
+0.772725344843521
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+0.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+0.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+0.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.91251205544432
+20
+1.98213889596437
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+0.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+0.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.82973983909525
+20
+1.85826151998776
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+0.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.743659607729131
+20
+1.57449302665047
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+0.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.743659607729131
+20
+1.42550697334953
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+0.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.82973983909525
+20
+1.14173848001224
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+0.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.14173848001224
+20
+2.17026016090475
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.64826864473226
+20
+0.754603186893545
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+3.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+3.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+3.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+3.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.01786110403563
+20
+2.08748794455568
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+3.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.772725344843521
+20
+1.72061635471339
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+3.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.743659607729131
+20
+1.42550697334953
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+3.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+3.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.743659607729131
+20
+1.57449302665047
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.82973983909525
+20
+1.14173848001224
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+3.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.772725344843521
+20
+1.27938364528661
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+3.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+0.91251205544432
+20
+1.01786110403563
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+3.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+3.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.64826864473226
+20
+2.24539681310645
+30
+3.0
+11
+1.5
+21
+2.26
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+3.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+3.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+box
+10
+1.64826864473226
+20
+2.24539681310645
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+3.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+3.0
+30
+0.7275
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.7275
+12
+0.205
+22
+3.0
+32
+0.6475
+13
+0.205
+23
+3.0
+33
+0.6475
+70
+3
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.205
+20
+3.0
+30
+0.6475
+11
+0.0
+21
+3.0
+31
+0.7275
+12
+0.0
+22
+3.0
+32
+0.8525
+13
+0.0
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+0.205
+22
+3.0
+32
+0.0
+13
+0.205
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.497732043121052
+20
+3.0
+30
+0.0
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.8525
+22
+3.0
+32
+3.33066907387547e-16
+13
+0.8525
+23
+3.0
+33
+3.33066907387547e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.8525
+20
+3.0
+30
+3.33066907387547e-16
+11
+0.205
+21
+3.0
+31
+0.205
+12
+0.6475
+22
+3.0
+32
+0.205
+13
+0.6475
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.42625
+20
+3.0
+30
+0.42625
+11
+0.6475
+21
+3.0
+31
+0.205
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.8525
+20
+3.0
+30
+3.33066907387547e-16
+11
+0.639832154473908
+21
+2.78733215447391
+31
+2.22163676695763e-16
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.212667845526092
+20
+2.36016784552609
+30
+1.10903230691784e-16
+11
+0.0
+21
+2.2725
+31
+0.0
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.2725
+30
+0.0
+11
+0.212667845526092
+21
+2.36016784552609
+31
+1.10903230691784e-16
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+3.0
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+2.57375
+31
+0.42625
+12
+0.0
+22
+2.795
+32
+0.6475
+13
+0.0
+23
+2.795
+33
+0.6475
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.205
+20
+3.0
+30
+0.0
+11
+0.42625
+21
+2.57375
+31
+1.66533453693774e-16
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.42625
+20
+2.57375
+30
+1.66533453693774e-16
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.497732043121052
+22
+3.0
+32
+0.0
+13
+0.497732043121052
+23
+3.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.42625
+20
+2.57375
+30
+1.66533453693774e-16
+11
+0.497732043121052
+21
+3.0
+31
+0.0
+12
+0.639832154473908
+22
+2.78733215447391
+32
+2.22163676695763e-16
+13
+0.639832154473908
+23
+2.78733215447391
+33
+2.22163676695763e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.42625
+20
+2.57375
+30
+1.66533453693774e-16
+11
+0.0
+21
+2.795
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.795
+30
+0.0
+11
+0.42625
+21
+2.57375
+31
+1.66533453693774e-16
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.42625
+21
+2.57375
+31
+1.66533453693774e-16
+12
+0.212667845526092
+22
+2.36016784552609
+32
+1.10903230691784e-16
+13
+0.212667845526092
+23
+2.36016784552609
+33
+1.10903230691784e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.0
+21
+2.2725
+31
+0.0
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.2725
+30
+0.0
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.0
+22
+2.50226795687895
+32
+0.0
+13
+0.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.0
+22
+2.795
+32
+0.205
+13
+0.0
+23
+2.795
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.50226795687895
+30
+0.0
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+0.0
+13
+0.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.205
+20
+3.0
+30
+0.205
+11
+0.205
+21
+3.0
+31
+0.0
+12
+0.0
+22
+3.0
+32
+0.0
+13
+0.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.0
+22
+2.57375
+32
+0.42625
+13
+0.0
+23
+2.57375
+33
+0.42625
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.205
+20
+3.0
+30
+0.6475
+11
+0.42625
+21
+3.0
+31
+0.42625
+12
+0.205
+22
+3.0
+32
+0.205
+13
+0.205
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+0.0
+21
+2.795
+31
+0.205
+12
+0.0
+22
+2.795
+32
+0.6475
+13
+0.0
+23
+2.795
+33
+0.6475
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.795
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.8525
+12
+0.0
+22
+3.0
+32
+0.205
+13
+0.0
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+3.0
+30
+0.205
+11
+0.0
+21
+3.0
+31
+0.8525
+12
+0.0
+22
+3.0
+32
+0.7275
+13
+0.0
+23
+3.0
+33
+0.7275
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.212667845526092
+20
+2.36016784552609
+30
+1.10903230691784e-16
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.212667845526092
+21
+2.36016784552609
+31
+1.10903230691784e-16
+12
+0.42625
+22
+2.57375
+32
+1.66533453693774e-16
+13
+0.42625
+23
+2.57375
+33
+1.66533453693774e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.42625
+21
+2.57375
+31
+1.66533453693774e-16
+12
+0.639832154473908
+22
+2.78733215447391
+32
+2.22163676695763e-16
+13
+0.639832154473908
+23
+2.78733215447391
+33
+2.22163676695763e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.639832154473908
+21
+2.78733215447391
+31
+2.22163676695763e-16
+12
+0.8525
+22
+3.0
+32
+3.33066907387547e-16
+13
+0.8525
+23
+3.0
+33
+3.33066907387547e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.8525
+21
+3.0
+31
+3.33066907387547e-16
+12
+0.6475
+22
+3.0
+32
+0.205
+13
+0.6475
+23
+3.0
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.6475
+21
+3.0
+31
+0.205
+12
+0.42625
+22
+3.0
+32
+0.42625
+13
+0.42625
+23
+3.0
+33
+0.42625
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.42625
+21
+3.0
+31
+0.42625
+12
+0.0
+22
+2.57375
+32
+0.42625
+13
+0.0
+23
+2.57375
+33
+0.42625
+70
+3
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.57375
+30
+0.42625
+11
+0.42625
+21
+3.0
+31
+0.42625
+12
+0.205
+22
+3.0
+32
+0.6475
+13
+0.205
+23
+3.0
+33
+0.6475
+70
+13
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.57375
+30
+0.42625
+11
+0.205
+21
+3.0
+31
+0.6475
+12
+0.0
+22
+2.795
+32
+0.6475
+13
+0.0
+23
+2.795
+33
+0.6475
+70
+3
+ 0
+3DFACE
+ 8
+iso_dwn
+10
+0.0
+20
+2.795
+30
+0.6475
+11
+0.205
+21
+3.0
+31
+0.6475
+12
+0.0
+22
+3.0
+32
+0.8525
+13
+0.0
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+1.26776612947519
+22
+0.332481491301359
+32
+-1.32155935006511e-16
+13
+1.26776612947519
+23
+0.332481491301359
+33
+-1.32155935006511e-16
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.205
+13
+0.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+0.205
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.205
+32
+0.0
+13
+0.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+0.878679656440357
+32
+0.0
+13
+0.0
+23
+0.878679656440357
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.20163144893051
+32
+0.0
+13
+0.0
+23
+1.20163144893051
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.283212517800539
+20
+1.74203407868223
+30
+1.35872768146951e-17
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.283212517800539
+21
+1.74203407868223
+31
+1.35872768146951e-17
+12
+0.452270081490105
+22
+1.5
+32
+-1.14382698113301e-17
+13
+0.452270081490105
+23
+1.5
+33
+-1.14382698113301e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.452270081490105
+20
+1.5
+30
+-1.14382698113301e-17
+11
+0.0
+21
+1.20163144893051
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.0
+13
+0.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.20163144893051
+30
+0.0
+11
+0.452270081490105
+21
+1.5
+31
+-1.14382698113301e-17
+12
+0.580081389077038
+22
+1.31701681130471
+32
+-3.03581440100583e-17
+13
+0.580081389077038
+23
+1.31701681130471
+33
+-3.03581440100583e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.580081389077038
+20
+1.31701681130471
+30
+-3.03581440100583e-17
+11
+0.0
+21
+0.878679656440357
+31
+0.0
+12
+0.0
+22
+1.20163144893051
+32
+0.0
+13
+0.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.878679656440357
+30
+0.0
+11
+0.580081389077038
+21
+1.31701681130471
+31
+-3.03581440100583e-17
+12
+0.687379562118009
+22
+1.16340159356772
+32
+-4.6241464304765e-17
+13
+0.687379562118009
+23
+1.16340159356772
+33
+-4.6241464304765e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0257305779793495
+20
+2.1106623891929
+30
+5.17022605499795e-17
+11
+0.0
+21
+1.79836855106949
+31
+0.0
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.0257305779793495
+21
+2.1106623891929
+31
+5.17022605499795e-17
+12
+0.283212517800539
+22
+1.74203407868223
+32
+1.35872768146951e-17
+13
+0.283212517800539
+23
+1.74203407868223
+33
+1.35872768146951e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.785661664350193
+20
+1.02269438387197
+30
+-6.07901380123296e-17
+11
+0.0
+21
+0.205
+31
+0.0
+12
+0.0
+22
+0.497732043121051
+32
+0.0
+13
+0.0
+23
+0.497732043121051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+0.0
+11
+0.785661664350193
+21
+1.02269438387197
+31
+-6.07901380123296e-17
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.0
+30
+0.0
+11
+0.785661664350193
+21
+1.02269438387197
+31
+-6.07901380123296e-17
+12
+0.883139136394791
+22
+0.883139136394791
+32
+-7.52197025251519e-17
+13
+0.883139136394791
+23
+0.883139136394791
+33
+-7.52197025251519e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.987752578969539
+20
+0.733367557775276
+30
+-9.07056028760568e-17
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+0.0
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+0.987752578969539
+21
+0.733367557775276
+31
+-9.07056028760568e-17
+12
+1.10997225325072
+22
+0.558389724096058
+32
+-1.08797749069277e-16
+13
+1.10997225325072
+23
+0.558389724096058
+33
+-1.08797749069277e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+1.10997225325072
+20
+0.558389724096058
+30
+-1.08797749069277e-16
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.10997225325072
+21
+0.558389724096058
+31
+-1.08797749069277e-16
+12
+1.26776612947519
+22
+0.332481491301359
+32
+-1.32155935006511e-16
+13
+1.26776612947519
+23
+0.332481491301359
+33
+-1.32155935006511e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.205
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+0.0
+22
+1.5
+32
+0.452270081490105
+13
+0.0
+23
+1.5
+33
+0.452270081490105
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+0.0
+21
+0.205
+31
+0.205
+12
+0.0
+22
+0.205
+32
+1.35681024447031
+13
+0.0
+23
+0.205
+33
+1.35681024447031
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.85400833333333
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.5
+32
+0.205
+13
+0.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.0
+11
+0.0
+21
+1.85400833333333
+31
+0.205
+12
+0.0
+22
+1.79836855106949
+32
+0.0
+13
+0.0
+23
+1.79836855106949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.79836855106949
+30
+0.0
+11
+0.0
+21
+1.85400833333333
+31
+0.205
+12
+0.0
+22
+2.12132034355964
+32
+0.0
+13
+0.0
+23
+2.12132034355964
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+2.12132034355964
+30
+0.0
+11
+0.0
+21
+1.85400833333333
+31
+0.205
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.85400833333333
+30
+0.205
+11
+0.0
+21
+1.5
+31
+0.205
+12
+0.0
+22
+1.5
+32
+0.452270081490105
+13
+0.0
+23
+1.5
+33
+0.452270081490105
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+1.35681024447031
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.205
+31
+1.35681024447031
+12
+0.0
+22
+0.205
+32
+0.205
+13
+0.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.687379562118009
+20
+1.16340159356772
+30
+-4.6241464304765e-17
+11
+0.0
+21
+0.497732043121051
+31
+0.0
+12
+0.0
+22
+0.878679656440357
+32
+0.0
+13
+0.0
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.497732043121051
+30
+0.0
+11
+0.687379562118009
+21
+1.16340159356772
+31
+-4.6241464304765e-17
+12
+0.785661664350193
+22
+1.02269438387197
+32
+-6.07901380123296e-17
+13
+0.785661664350193
+23
+1.02269438387197
+33
+-6.07901380123296e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.883139136394791
+20
+0.883139136394791
+30
+-7.52197025251519e-17
+11
+0.205
+21
+0.0
+31
+0.0
+12
+0.0
+22
+0.0
+32
+0.0
+13
+0.0
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.205
+20
+0.0
+30
+0.0
+11
+0.883139136394791
+21
+0.883139136394791
+31
+-7.52197025251519e-17
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+0.883139136394791
+21
+0.883139136394791
+31
+-7.52197025251519e-17
+12
+0.987752578969539
+22
+0.733367557775276
+32
+-9.07056028760568e-17
+13
+0.987752578969539
+23
+0.733367557775276
+33
+-9.07056028760568e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.75
+20
+1.38777878078145e-17
+30
+0.75
+11
+0.205
+21
+0.0
+31
+0.205
+12
+1.295
+22
+2.39623136148263e-17
+32
+0.205
+13
+1.295
+23
+2.39623136148263e-17
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.205
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.205
+20
+3.79326200080262e-18
+30
+1.295
+11
+0.0
+21
+0.0
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.205
+21
+3.79326200080262e-18
+31
+1.295
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+1.295
+20
+2.39623136148263e-17
+30
+0.205
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+0.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+0.0
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+0.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+0.0
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+0.497732043121053
+22
+0.0
+32
+0.0
+13
+0.497732043121053
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.497732043121053
+20
+0.0
+30
+0.0
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.0
+13
+0.205
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.205
+20
+0.0
+30
+0.0
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.205
+20
+3.79326200080262e-18
+30
+1.295
+11
+0.205
+21
+0.0
+31
+0.205
+12
+0.75
+22
+1.38777878078145e-17
+32
+0.75
+13
+0.75
+23
+1.38777878078145e-17
+33
+0.75
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.0
+30
+0.205
+11
+0.0
+21
+0.0
+31
+0.0
+12
+0.205
+22
+0.0
+32
+0.205
+13
+0.205
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0257305779793495
+20
+2.1106623891929
+30
+5.17022605499795e-17
+11
+0.0
+21
+2.12132034355964
+31
+0.0
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.205
+20
+3.79326200080262e-18
+30
+1.295
+11
+0.0
+21
+0.205
+31
+1.35681024447031
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+1.35681024447031
+11
+0.205
+21
+3.79326200080262e-18
+31
+1.295
+12
+0.75
+22
+1.38777878078145e-17
+32
+0.75
+13
+0.75
+23
+1.38777878078145e-17
+33
+0.75
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+1.35681024447031
+11
+0.75
+21
+1.38777878078145e-17
+31
+0.75
+12
+1.295
+22
+2.39623136148263e-17
+32
+0.205
+13
+1.295
+23
+2.39623136148263e-17
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+1.35681024447031
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+1.5
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+1.35681024447031
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.26776612947519
+22
+0.332481491301359
+32
+-1.32155935006511e-16
+13
+1.26776612947519
+23
+0.332481491301359
+33
+-1.32155935006511e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.205
+30
+1.35681024447031
+11
+1.26776612947519
+21
+0.332481491301359
+31
+-1.32155935006511e-16
+12
+0.0
+22
+0.883139136394791
+32
+0.883139136394791
+13
+0.0
+23
+0.883139136394791
+33
+0.883139136394791
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+1.26776612947519
+21
+0.332481491301359
+31
+-1.32155935006511e-16
+12
+1.10997225325072
+22
+0.558389724096058
+32
+-1.08797749069277e-16
+13
+1.10997225325072
+23
+0.558389724096058
+33
+-1.08797749069277e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+1.10997225325072
+21
+0.558389724096058
+31
+-1.08797749069277e-16
+12
+0.987752578969539
+22
+0.733367557775276
+32
+-9.07056028760568e-17
+13
+0.987752578969539
+23
+0.733367557775276
+33
+-9.07056028760568e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+0.987752578969539
+21
+0.733367557775276
+31
+-9.07056028760568e-17
+12
+0.883139136394791
+22
+0.883139136394791
+32
+-7.52197025251519e-17
+13
+0.883139136394791
+23
+0.883139136394791
+33
+-7.52197025251519e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+0.883139136394791
+21
+0.883139136394791
+31
+-7.52197025251519e-17
+12
+0.785661664350193
+22
+1.02269438387197
+32
+-6.07901380123296e-17
+13
+0.785661664350193
+23
+1.02269438387197
+33
+-6.07901380123296e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+0.785661664350193
+21
+1.02269438387197
+31
+-6.07901380123296e-17
+12
+0.0
+22
+1.5
+32
+0.452270081490105
+13
+0.0
+23
+1.5
+33
+0.452270081490105
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.452270081490105
+11
+0.785661664350193
+21
+1.02269438387197
+31
+-6.07901380123296e-17
+12
+0.687379562118009
+22
+1.16340159356772
+32
+-4.6241464304765e-17
+13
+0.687379562118009
+23
+1.16340159356772
+33
+-4.6241464304765e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.452270081490105
+11
+0.687379562118009
+21
+1.16340159356772
+31
+-4.6241464304765e-17
+12
+0.580081389077038
+22
+1.31701681130471
+32
+-3.03581440100583e-17
+13
+0.580081389077038
+23
+1.31701681130471
+33
+-3.03581440100583e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.452270081490105
+11
+0.580081389077038
+21
+1.31701681130471
+31
+-3.03581440100583e-17
+12
+0.452270081490105
+22
+1.5
+32
+-1.14382698113301e-17
+13
+0.452270081490105
+23
+1.5
+33
+-1.14382698113301e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.452270081490105
+11
+0.452270081490105
+21
+1.5
+31
+-1.14382698113301e-17
+12
+0.283212517800539
+22
+1.74203407868223
+32
+1.35872768146951e-17
+13
+0.283212517800539
+23
+1.74203407868223
+33
+1.35872768146951e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.5
+30
+0.452270081490105
+11
+0.283212517800539
+21
+1.74203407868223
+31
+1.35872768146951e-17
+12
+0.0
+22
+1.85400833333333
+32
+0.205
+13
+0.0
+23
+1.85400833333333
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.85400833333333
+30
+0.205
+11
+0.283212517800539
+21
+1.74203407868223
+31
+1.35872768146951e-17
+12
+0.0257305779793495
+22
+2.1106623891929
+32
+5.17022605499795e-17
+13
+0.0257305779793495
+23
+2.1106623891929
+33
+5.17022605499795e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_swd
+10
+0.0
+20
+1.85400833333333
+30
+0.205
+11
+0.0257305779793495
+21
+2.1106623891929
+31
+5.17022605499795e-17
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.452270081490105
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+0.452270081490105
+12
+2.11686086360521
+22
+3.0
+32
+0.883139136394791
+13
+2.11686086360521
+23
+3.0
+33
+0.883139136394791
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.83659840643228
+21
+2.31262043788199
+31
+1.75803140620266e-16
+12
+1.68298318869529
+22
+2.41991861092296
+32
+1.91686460914973e-16
+13
+1.68298318869529
+23
+2.41991861092296
+33
+1.91686460914973e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.83659840643228
+20
+2.31262043788199
+30
+1.75803140620266e-16
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.97730561612803
+21
+2.2143383356498
+31
+1.61254466912702e-16
+12
+1.83659840643228
+22
+2.31262043788199
+32
+1.75803140620266e-16
+13
+1.83659840643228
+23
+2.31262043788199
+33
+1.75803140620266e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.97730561612803
+20
+2.2143383356498
+30
+1.61254466912702e-16
+11
+2.12132034355964
+21
+3.0
+31
+0.0
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+2.11686086360521
+21
+2.11686086360521
+31
+1.46824902399879e-16
+12
+1.97730561612803
+22
+2.2143383356498
+32
+1.61254466912702e-16
+13
+1.97730561612803
+23
+2.2143383356498
+33
+1.61254466912702e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.11686086360521
+20
+2.11686086360521
+30
+1.46824902399879e-16
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.50226795687895
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.452270081490105
+11
+1.5
+21
+3.0
+31
+0.205
+12
+1.35441740918437
+22
+3.0
+32
+0.350582590815627
+13
+1.35441740918437
+23
+3.0
+33
+0.350582590815627
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.795
+21
+3.0
+31
+1.35681024447031
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.795
+20
+3.0
+30
+1.35681024447031
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+2.32009652509653
+22
+3.0
+32
+1.02509652509653
+13
+2.32009652509653
+23
+3.0
+33
+1.02509652509653
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.1475
+20
+3.0
+30
+0.8525
+11
+2.795
+21
+3.0
+31
+0.205
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.35441740918437
+20
+3.0
+30
+0.350582590815627
+11
+1.5
+21
+3.0
+31
+0.205
+12
+1.14599166666667
+22
+3.0
+32
+0.205
+13
+1.14599166666667
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+2.44161027590394
+21
+1.89002774674928
+31
+1.13246855855755e-16
+12
+2.26663244222472
+22
+2.01224742103046
+32
+1.31339002048974e-16
+13
+2.26663244222472
+23
+2.01224742103046
+33
+1.31339002048974e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.44161027590394
+20
+1.89002774674928
+30
+1.13246855855755e-16
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.795
+20
+3.0
+30
+1.35681024447031
+11
+3.0
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+0.205
+11
+2.795
+21
+3.0
+31
+1.35681024447031
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+2.54772991850989
+31
+2.10606335113701e-16
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+2.54772991850989
+30
+2.10606335113701e-16
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.68298318869529
+22
+2.41991861092296
+32
+1.91686460914973e-16
+13
+1.68298318869529
+23
+2.41991861092296
+33
+1.91686460914973e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+1.5
+30
+0.0
+11
+2.66751850869864
+21
+1.73223387052481
+31
+8.98886699185201e-17
+12
+3.0
+22
+1.79836855106949
+32
+0.0
+13
+3.0
+23
+1.79836855106949
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+0.0
+11
+2.26663244222472
+21
+2.01224742103046
+31
+1.31339002048974e-16
+12
+2.11686086360521
+22
+2.11686086360521
+32
+1.46824902399879e-16
+13
+2.11686086360521
+23
+2.11686086360521
+33
+1.46824902399879e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.26663244222472
+20
+2.01224742103046
+30
+1.31339002048974e-16
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.50226795687895
+30
+0.0
+11
+3.0
+21
+3.0
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+0.889337610807103
+21
+2.97426942202065
+31
+2.73746865475011e-16
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+0.889337610807103
+20
+2.97426942202065
+30
+2.73746865475011e-16
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+1.25796592131777
+22
+2.71678748219946
+32
+2.35631881739726e-16
+13
+1.25796592131777
+23
+2.71678748219946
+33
+2.35631881739726e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.795
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+1.79836855106949
+30
+0.0
+11
+3.0
+21
+1.705
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+1.705
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+1.79836855106949
+31
+0.0
+12
+3.0
+22
+2.12132034355964
+32
+0.0
+13
+3.0
+23
+2.12132034355964
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+2.50226795687895
+32
+0.0
+13
+3.0
+23
+2.50226795687895
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.50226795687895
+31
+0.0
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+0.8525
+20
+3.0
+30
+3.33066907387547e-16
+11
+1.20163144893051
+21
+3.0
+31
+0.0
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.20163144893051
+20
+3.0
+30
+0.0
+11
+0.8525
+21
+3.0
+31
+3.33066907387547e-16
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.0
+11
+0.8525
+21
+3.0
+31
+3.33066907387547e-16
+12
+1.5
+22
+3.0
+32
+0.205
+13
+1.5
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.205
+11
+0.8525
+21
+3.0
+31
+3.33066907387547e-16
+12
+1.14599166666667
+22
+3.0
+32
+0.205
+13
+1.14599166666667
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.0
+11
+1.25796592131777
+21
+2.71678748219946
+31
+2.35631881739726e-16
+12
+1.20163144893051
+22
+3.0
+32
+0.0
+13
+1.20163144893051
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.25796592131777
+20
+2.71678748219946
+30
+2.35631881739726e-16
+11
+1.5
+21
+3.0
+31
+0.0
+12
+1.5
+22
+2.54772991850989
+32
+2.10606335113701e-16
+13
+1.5
+23
+2.54772991850989
+33
+2.10606335113701e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.12132034355964
+30
+0.0
+11
+2.66751850869864
+21
+1.73223387052481
+31
+8.98886699185201e-17
+12
+2.44161027590394
+22
+1.89002774674928
+32
+1.13246855855755e-16
+13
+2.44161027590394
+23
+1.89002774674928
+33
+1.13246855855755e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.66751850869864
+20
+1.73223387052481
+30
+8.98886699185201e-17
+11
+3.0
+21
+2.12132034355964
+31
+0.0
+12
+3.0
+22
+1.79836855106949
+32
+0.0
+13
+3.0
+23
+1.79836855106949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.795
+30
+0.205
+11
+3.0
+21
+2.25
+31
+0.75
+12
+3.0
+22
+1.705
+32
+0.205
+13
+3.0
+23
+1.705
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+3.0
+32
+0.0
+13
+3.0
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+3.0
+31
+0.0
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+0.0
+11
+3.0
+21
+2.795
+31
+0.205
+12
+3.0
+22
+2.795
+32
+0.0
+13
+3.0
+23
+2.795
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.795
+30
+1.295
+11
+3.0
+21
+2.25
+31
+0.75
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.205
+11
+1.79836855106949
+21
+3.0
+31
+0.0
+12
+1.5
+22
+3.0
+32
+0.0
+13
+1.5
+23
+3.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.79836855106949
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.12132034355964
+22
+3.0
+32
+0.0
+13
+2.12132034355964
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.12132034355964
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.50226795687895
+22
+3.0
+32
+0.0
+13
+2.50226795687895
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.50226795687895
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.0
+13
+2.795
+23
+3.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.795
+20
+3.0
+30
+0.0
+11
+1.5
+21
+3.0
+31
+0.205
+12
+2.795
+22
+3.0
+32
+0.205
+13
+2.795
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+0.205
+11
+3.0
+21
+2.795
+31
+1.295
+12
+3.0
+22
+2.795
+32
+0.205
+13
+3.0
+23
+2.795
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+2.795
+30
+1.295
+11
+3.0
+21
+3.0
+31
+0.205
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.32009652509653
+20
+3.0
+30
+1.02509652509653
+11
+2.1475
+21
+3.0
+31
+0.8525
+12
+2.11686086360521
+22
+3.0
+32
+0.883139136394791
+13
+2.11686086360521
+23
+3.0
+33
+0.883139136394791
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+0.889337610807103
+20
+2.97426942202065
+30
+2.73746865475011e-16
+11
+0.8525
+21
+3.0
+31
+3.33066907387547e-16
+12
+0.878679656440356
+22
+3.0
+32
+0.0
+13
+0.878679656440356
+23
+3.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_den
+10
+0.889337610807103
+20
+2.97426942202065
+30
+2.73746865475011e-16
+11
+1.14599166666667
+21
+3.0
+31
+0.205
+12
+0.8525
+22
+3.0
+32
+3.33066907387547e-16
+13
+0.8525
+23
+3.0
+33
+3.33066907387547e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.14599166666667
+20
+3.0
+30
+0.205
+11
+0.889337610807103
+21
+2.97426942202065
+31
+2.73746865475011e-16
+12
+1.25796592131777
+22
+2.71678748219946
+32
+2.35631881739726e-16
+13
+1.25796592131777
+23
+2.71678748219946
+33
+2.35631881739726e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.14599166666667
+20
+3.0
+30
+0.205
+11
+1.25796592131777
+21
+2.71678748219946
+31
+2.35631881739726e-16
+12
+1.35441740918437
+22
+3.0
+32
+0.350582590815627
+13
+1.35441740918437
+23
+3.0
+33
+0.350582590815627
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.35441740918437
+20
+3.0
+30
+0.350582590815627
+11
+1.25796592131777
+21
+2.71678748219946
+31
+2.35631881739726e-16
+12
+1.5
+22
+2.54772991850989
+32
+2.10606335113701e-16
+13
+1.5
+23
+2.54772991850989
+33
+2.10606335113701e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.35441740918437
+20
+3.0
+30
+0.350582590815627
+11
+1.5
+21
+2.54772991850989
+31
+2.10606335113701e-16
+12
+1.5
+22
+3.0
+32
+0.452270081490105
+13
+1.5
+23
+3.0
+33
+0.452270081490105
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.452270081490105
+11
+1.5
+21
+2.54772991850989
+31
+2.10606335113701e-16
+12
+1.68298318869529
+22
+2.41991861092296
+32
+1.91686460914973e-16
+13
+1.68298318869529
+23
+2.41991861092296
+33
+1.91686460914973e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+1.5
+20
+3.0
+30
+0.452270081490105
+11
+1.68298318869529
+21
+2.41991861092296
+31
+1.91686460914973e-16
+12
+2.11686086360521
+22
+3.0
+32
+0.883139136394791
+13
+2.11686086360521
+23
+3.0
+33
+0.883139136394791
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.11686086360521
+20
+3.0
+30
+0.883139136394791
+11
+1.68298318869529
+21
+2.41991861092296
+31
+1.91686460914973e-16
+12
+1.83659840643228
+22
+2.31262043788199
+32
+1.75803140620266e-16
+13
+1.83659840643228
+23
+2.31262043788199
+33
+1.75803140620266e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.11686086360521
+20
+3.0
+30
+0.883139136394791
+11
+1.83659840643228
+21
+2.31262043788199
+31
+1.75803140620266e-16
+12
+1.97730561612803
+22
+2.2143383356498
+32
+1.61254466912702e-16
+13
+1.97730561612803
+23
+2.2143383356498
+33
+1.61254466912702e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.11686086360521
+20
+3.0
+30
+0.883139136394791
+11
+1.97730561612803
+21
+2.2143383356498
+31
+1.61254466912702e-16
+12
+2.11686086360521
+22
+2.11686086360521
+32
+1.46824902399879e-16
+13
+2.11686086360521
+23
+2.11686086360521
+33
+1.46824902399879e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.11686086360521
+20
+3.0
+30
+0.883139136394791
+11
+2.11686086360521
+21
+2.11686086360521
+31
+1.46824902399879e-16
+12
+2.26663244222472
+22
+2.01224742103046
+32
+1.31339002048974e-16
+13
+2.26663244222472
+23
+2.01224742103046
+33
+1.31339002048974e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.11686086360521
+20
+3.0
+30
+0.883139136394791
+11
+2.26663244222472
+21
+2.01224742103046
+31
+1.31339002048974e-16
+12
+2.32009652509653
+22
+3.0
+32
+1.02509652509653
+13
+2.32009652509653
+23
+3.0
+33
+1.02509652509653
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.32009652509653
+20
+3.0
+30
+1.02509652509653
+11
+2.26663244222472
+21
+2.01224742103046
+31
+1.31339002048974e-16
+12
+2.44161027590394
+22
+1.89002774674928
+32
+1.13246855855755e-16
+13
+2.44161027590394
+23
+1.89002774674928
+33
+1.13246855855755e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.32009652509653
+20
+3.0
+30
+1.02509652509653
+11
+2.44161027590394
+21
+1.89002774674928
+31
+1.13246855855755e-16
+12
+2.795
+22
+3.0
+32
+1.35681024447031
+13
+2.795
+23
+3.0
+33
+1.35681024447031
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.795
+20
+3.0
+30
+1.35681024447031
+11
+2.44161027590394
+21
+1.89002774674928
+31
+1.13246855855755e-16
+12
+2.66751850869864
+22
+1.73223387052481
+32
+8.98886699185201e-17
+13
+2.66751850869864
+23
+1.73223387052481
+33
+8.98886699185201e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.795
+20
+3.0
+30
+1.35681024447031
+11
+2.66751850869864
+21
+1.73223387052481
+31
+8.98886699185201e-17
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+2.795
+20
+3.0
+30
+1.35681024447031
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.705
+32
+0.205
+13
+3.0
+23
+1.705
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+1.705
+31
+0.205
+12
+3.0
+22
+2.25
+32
+0.75
+13
+3.0
+23
+2.25
+33
+0.75
+70
+13
+ 0
+3DFACE
+ 8
+iso_den
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.25
+31
+0.75
+12
+3.0
+22
+2.795
+32
+1.295
+13
+3.0
+23
+2.795
+33
+1.295
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.350582590815627
+21
+3.0
+31
+1.35441740918437
+12
+0.205
+22
+3.0
+32
+1.14599166666667
+13
+0.205
+23
+3.0
+33
+1.14599166666667
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.8525
+20
+3.0
+30
+2.1475
+11
+0.452270081490105
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.452270081490105
+20
+3.0
+30
+1.5
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.883139136394791
+22
+3.0
+32
+2.11686086360521
+13
+0.883139136394791
+23
+3.0
+33
+2.11686086360521
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.205
+21
+3.0
+31
+1.14599166666667
+12
+0.0
+22
+3.0
+32
+0.8525
+13
+0.0
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+1.14599166666667
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.75
+20
+2.25
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.75
+21
+2.25
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.497732043121052
+20
+3.0
+30
+3.0
+11
+0.75
+21
+2.25
+31
+3.0
+12
+0.899184275534744
+22
+2.39918427553474
+32
+3.0
+13
+0.899184275534744
+23
+2.39918427553474
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.600815724465256
+20
+2.10081572446526
+30
+3.0
+11
+0.0
+21
+2.795
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+3.0
+11
+0.600815724465256
+21
+2.10081572446526
+31
+3.0
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.600815724465256
+21
+2.10081572446526
+31
+3.0
+12
+0.75
+22
+2.25
+32
+3.0
+13
+0.75
+23
+2.25
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.899184275534744
+20
+2.39918427553474
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.878679656440356
+20
+3.0
+30
+3.0
+11
+0.899184275534744
+21
+2.39918427553474
+31
+3.0
+12
+1.06066017177982
+22
+2.56066017177982
+32
+3.0
+13
+1.06066017177982
+23
+2.56066017177982
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.248866021560526
+20
+1.74886602156053
+30
+3.0
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.439339828220179
+20
+1.93933982822018
+30
+3.0
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.50226795687895
+30
+3.0
+11
+0.439339828220179
+21
+1.93933982822018
+31
+3.0
+12
+0.600815724465256
+22
+2.10081572446526
+32
+3.0
+13
+0.600815724465256
+23
+2.10081572446526
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+2.795
+13
+0.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+2.795
+11
+0.8525
+21
+3.0
+31
+2.1475
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.5477299185099
+31
+1.5
+12
+0.0
+22
+2.11686086360521
+32
+2.11686086360521
+13
+0.0
+23
+2.11686086360521
+33
+2.11686086360521
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.5477299185099
+30
+1.5
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+3.0
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+1.5
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+0.0
+22
+1.64318975552969
+32
+2.795
+13
+0.0
+23
+1.64318975552969
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+1.5
+11
+0.0
+21
+2.795
+31
+1.14599166666667
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+1.14599166666667
+11
+0.0
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+0.8525
+13
+0.0
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+2.795
+11
+1.02509652509652
+21
+3.0
+31
+2.32009652509652
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.02509652509652
+20
+3.0
+30
+2.32009652509652
+11
+0.205
+21
+3.0
+31
+2.795
+12
+1.35681024447031
+22
+3.0
+32
+2.795
+13
+1.35681024447031
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.06066017177982
+20
+2.56066017177982
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.20163144893051
+20
+3.0
+30
+3.0
+11
+1.06066017177982
+21
+2.56066017177982
+31
+3.0
+12
+1.25113397843947
+22
+2.75113397843947
+32
+3.0
+13
+1.25113397843947
+23
+2.75113397843947
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.452270081490105
+20
+3.0
+30
+1.5
+11
+0.350582590815627
+21
+3.0
+31
+1.35441740918437
+12
+0.205
+22
+3.0
+32
+1.5
+13
+0.205
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+3.0
+11
+1.35681024447031
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.35681024447031
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+3.0
+12
+0.497732043121052
+22
+3.0
+32
+3.0
+13
+0.497732043121052
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.497732043121052
+21
+3.0
+31
+3.0
+12
+0.878679656440356
+22
+3.0
+32
+3.0
+13
+0.878679656440356
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.878679656440356
+21
+3.0
+31
+3.0
+12
+1.20163144893051
+22
+3.0
+32
+3.0
+13
+1.20163144893051
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.248866021560526
+20
+1.74886602156053
+30
+3.0
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+1.79836855106949
+32
+3.0
+13
+0.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.12132034355964
+30
+3.0
+11
+0.248866021560526
+21
+1.74886602156053
+31
+3.0
+12
+0.439339828220179
+22
+1.93933982822018
+32
+3.0
+13
+0.439339828220179
+23
+1.93933982822018
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+1.14599166666667
+11
+0.0
+21
+2.5477299185099
+31
+1.5
+12
+0.0
+22
+2.795
+32
+1.5
+13
+0.0
+23
+2.795
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.0
+21
+2.795
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+1.79836855106949
+30
+3.0
+11
+0.0
+21
+1.64318975552969
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+1.64318975552969
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.795
+32
+2.795
+13
+0.0
+23
+2.795
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+1.79836855106949
+31
+3.0
+12
+0.0
+22
+2.12132034355964
+32
+3.0
+13
+0.0
+23
+2.12132034355964
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.12132034355964
+31
+3.0
+12
+0.0
+22
+2.50226795687895
+32
+3.0
+13
+0.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+2.795
+30
+2.795
+11
+0.0
+21
+2.50226795687895
+31
+3.0
+12
+0.0
+22
+2.795
+32
+3.0
+13
+0.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+3.0
+11
+0.205
+21
+3.0
+31
+2.795
+12
+0.0
+22
+3.0
+32
+3.0
+13
+0.0
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.20163144893051
+21
+3.0
+31
+3.0
+12
+1.25113397843947
+22
+2.75113397843947
+32
+3.0
+13
+1.25113397843947
+23
+2.75113397843947
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+2.795
+11
+0.205
+21
+3.0
+31
+1.5
+12
+0.0
+22
+3.0
+32
+1.5
+13
+0.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.205
+20
+3.0
+30
+1.5
+11
+0.0
+21
+3.0
+31
+2.795
+12
+0.205
+22
+3.0
+32
+2.795
+13
+0.205
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.02509652509652
+20
+3.0
+30
+2.32009652509652
+11
+0.883139136394791
+21
+3.0
+31
+2.11686086360521
+12
+0.8525
+22
+3.0
+32
+2.1475
+13
+0.8525
+23
+3.0
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+1.35681024447031
+21
+3.0
+31
+2.795
+12
+0.0
+22
+2.795
+32
+1.14599166666667
+13
+0.0
+23
+2.795
+33
+1.14599166666667
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.35681024447031
+20
+3.0
+30
+2.795
+11
+0.0
+21
+3.0
+31
+0.8525
+12
+1.02509652509652
+22
+3.0
+32
+2.32009652509652
+13
+1.02509652509652
+23
+3.0
+33
+2.32009652509652
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.02509652509652
+20
+3.0
+30
+2.32009652509652
+11
+0.0
+21
+3.0
+31
+0.8525
+12
+0.205
+22
+3.0
+32
+1.14599166666667
+13
+0.205
+23
+3.0
+33
+1.14599166666667
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.02509652509652
+20
+3.0
+30
+2.32009652509652
+11
+0.205
+21
+3.0
+31
+1.14599166666667
+12
+0.350582590815627
+22
+3.0
+32
+1.35441740918437
+13
+0.350582590815627
+23
+3.0
+33
+1.35441740918437
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.02509652509652
+20
+3.0
+30
+2.32009652509652
+11
+0.350582590815627
+21
+3.0
+31
+1.35441740918437
+12
+0.452270081490105
+22
+3.0
+32
+1.5
+13
+0.452270081490105
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.02509652509652
+20
+3.0
+30
+2.32009652509652
+11
+0.452270081490105
+21
+3.0
+31
+1.5
+12
+0.883139136394791
+22
+3.0
+32
+2.11686086360521
+13
+0.883139136394791
+23
+3.0
+33
+2.11686086360521
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.0
+20
+1.64318975552969
+30
+2.795
+11
+0.248866021560526
+21
+1.74886602156053
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.248866021560526
+20
+1.74886602156053
+30
+3.0
+11
+0.0
+21
+1.64318975552969
+31
+2.795
+12
+0.0
+22
+2.11686086360521
+32
+2.11686086360521
+13
+0.0
+23
+2.11686086360521
+33
+2.11686086360521
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.248866021560526
+20
+1.74886602156053
+30
+3.0
+11
+0.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+0.439339828220179
+22
+1.93933982822018
+32
+3.0
+13
+0.439339828220179
+23
+1.93933982822018
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.439339828220179
+20
+1.93933982822018
+30
+3.0
+11
+0.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+0.600815724465256
+22
+2.10081572446526
+32
+3.0
+13
+0.600815724465256
+23
+2.10081572446526
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.600815724465256
+20
+2.10081572446526
+30
+3.0
+11
+0.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+0.75
+22
+2.25
+32
+3.0
+13
+0.75
+23
+2.25
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.75
+20
+2.25
+30
+3.0
+11
+0.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+0.0
+22
+2.5477299185099
+32
+1.5
+13
+0.0
+23
+2.5477299185099
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.75
+20
+2.25
+30
+3.0
+11
+0.0
+21
+2.5477299185099
+31
+1.5
+12
+0.899184275534744
+22
+2.39918427553474
+32
+3.0
+13
+0.899184275534744
+23
+2.39918427553474
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+0.899184275534744
+20
+2.39918427553474
+30
+3.0
+11
+0.0
+21
+2.5477299185099
+31
+1.5
+12
+1.06066017177982
+22
+2.56066017177982
+32
+3.0
+13
+1.06066017177982
+23
+2.56066017177982
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.06066017177982
+20
+2.56066017177982
+30
+3.0
+11
+0.0
+21
+2.5477299185099
+31
+1.5
+12
+0.0
+22
+2.795
+32
+1.14599166666667
+13
+0.0
+23
+2.795
+33
+1.14599166666667
+70
+13
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.06066017177982
+20
+2.56066017177982
+30
+3.0
+11
+0.0
+21
+2.795
+31
+1.14599166666667
+12
+1.25113397843947
+22
+2.75113397843947
+32
+3.0
+13
+1.25113397843947
+23
+2.75113397843947
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.25113397843947
+20
+2.75113397843947
+30
+3.0
+11
+0.0
+21
+2.795
+31
+1.14599166666667
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_unw
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.0
+21
+2.795
+31
+1.14599166666667
+12
+1.35681024447031
+22
+3.0
+32
+2.795
+13
+1.35681024447031
+23
+3.0
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.50226795687895
+20
+0.0
+30
+3.0
+11
+2.57375
+21
+0.426250000000001
+31
+3.0
+12
+2.36016784552609
+22
+0.212667845526093
+32
+3.0
+13
+2.36016784552609
+23
+0.212667845526093
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.57375
+20
+0.426250000000001
+30
+3.0
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.795
+22
+0.0
+32
+3.0
+13
+2.795
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.57375
+20
+0.426250000000001
+30
+3.0
+11
+2.795
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+2.99999999999999
+21
+0.852499999999996
+31
+3.0
+12
+2.7873321544739
+22
+0.639832154473909
+32
+3.0
+13
+2.7873321544739
+23
+0.639832154473909
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.0
+30
+2.795
+11
+2.795
+21
+1.79190321753102e-16
+31
+2.35249999999999
+12
+2.99999999999999
+22
+4.71844785465692e-16
+32
+2.1475
+13
+2.99999999999999
+23
+4.71844785465692e-16
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.795
+20
+1.79190321753102e-16
+30
+2.35249999999999
+11
+3.0
+21
+0.0
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.795
+20
+0.0
+30
+3.0
+11
+2.3525
+21
+5.67320709797468e-17
+31
+2.795
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.3525
+20
+5.67320709797468e-17
+30
+2.795
+11
+2.795
+21
+0.0
+31
+3.0
+12
+2.50226795687895
+22
+0.0
+32
+3.0
+13
+2.50226795687895
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.3525
+20
+5.67320709797468e-17
+30
+2.795
+11
+2.50226795687895
+21
+0.0
+31
+3.0
+12
+2.14749999999999
+22
+0.0
+32
+3.0
+13
+2.14749999999999
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.795
+20
+0.0
+30
+2.795
+11
+2.57375
+21
+1.17961196366424e-16
+31
+2.57375
+12
+2.795
+22
+1.79190321753102e-16
+32
+2.35249999999999
+13
+2.795
+23
+1.79190321753102e-16
+33
+2.35249999999999
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.795
+20
+0.0
+30
+3.0
+11
+2.795
+21
+0.0
+31
+2.795
+12
+3.0
+22
+0.0
+32
+3.0
+13
+3.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.205
+30
+2.795
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.99999999999999
+20
+4.71844785465692e-16
+30
+2.1475
+11
+3.0
+21
+0.205
+31
+2.795
+12
+3.0
+22
+0.0
+32
+2.795
+13
+3.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.205
+30
+2.795
+11
+2.99999999999999
+21
+4.71844785465692e-16
+31
+2.1475
+12
+3.0
+22
+0.205
+32
+2.3525
+13
+3.0
+23
+0.205
+33
+2.3525
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.205
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.99999999999999
+20
+0.647499999999997
+30
+2.795
+11
+3.0
+21
+0.205
+31
+3.0
+12
+3.0
+22
+0.205
+32
+2.795
+13
+3.0
+23
+0.205
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.205
+30
+3.0
+11
+2.99999999999999
+21
+0.647499999999997
+31
+2.795
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+2.99999999999999
+21
+0.647499999999997
+31
+2.795
+12
+2.99999999999999
+22
+0.852499999999996
+32
+3.0
+13
+2.99999999999999
+23
+0.852499999999996
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.99999999999999
+20
+0.647499999999997
+30
+2.795
+11
+3.0
+21
+0.205
+31
+2.795
+12
+3.0
+22
+0.426249999999999
+32
+2.57375
+13
+3.0
+23
+0.426249999999999
+33
+2.57375
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.50226795687895
+20
+0.0
+30
+3.0
+11
+2.36016784552609
+21
+0.212667845526093
+31
+3.0
+12
+2.14749999999999
+22
+0.0
+32
+3.0
+13
+2.14749999999999
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.426249999999999
+30
+2.57375
+11
+3.0
+21
+0.205
+31
+2.795
+12
+3.0
+22
+0.205
+32
+2.3525
+13
+3.0
+23
+0.205
+33
+2.3525
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.0
+30
+3.0
+11
+2.7873321544739
+21
+0.639832154473909
+31
+3.0
+12
+2.57375
+22
+0.426250000000001
+32
+3.0
+13
+2.57375
+23
+0.426250000000001
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.7873321544739
+20
+0.639832154473909
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.497732043121051
+32
+3.0
+13
+3.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.497732043121051
+30
+3.0
+11
+3.0
+21
+0.0
+31
+3.0
+12
+3.0
+22
+0.205
+32
+3.0
+13
+3.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.3525
+20
+5.67320709797468e-17
+30
+2.795
+11
+2.57375
+21
+1.17961196366424e-16
+31
+2.57375
+12
+2.795
+22
+0.0
+32
+2.795
+13
+2.795
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.795
+20
+1.79190321753102e-16
+30
+2.35249999999999
+11
+3.0
+21
+0.205
+31
+2.3525
+12
+2.99999999999999
+22
+4.71844785465692e-16
+32
+2.1475
+13
+2.99999999999999
+23
+4.71844785465692e-16
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.205
+30
+2.3525
+11
+2.795
+21
+1.79190321753102e-16
+31
+2.35249999999999
+12
+2.57375
+22
+1.17961196366424e-16
+32
+2.57375
+13
+2.57375
+23
+1.17961196366424e-16
+33
+2.57375
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.205
+30
+2.3525
+11
+2.57375
+21
+1.17961196366424e-16
+31
+2.57375
+12
+3.0
+22
+0.426249999999999
+32
+2.57375
+13
+3.0
+23
+0.426249999999999
+33
+2.57375
+70
+3
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.426249999999999
+30
+2.57375
+11
+2.57375
+21
+1.17961196366424e-16
+31
+2.57375
+12
+2.3525
+22
+5.67320709797468e-17
+32
+2.795
+13
+2.3525
+23
+5.67320709797468e-17
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+3.0
+20
+0.426249999999999
+30
+2.57375
+11
+2.3525
+21
+5.67320709797468e-17
+31
+2.795
+12
+2.99999999999999
+22
+0.647499999999997
+32
+2.795
+13
+2.99999999999999
+23
+0.647499999999997
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.99999999999999
+20
+0.647499999999997
+30
+2.795
+11
+2.3525
+21
+5.67320709797468e-17
+31
+2.795
+12
+2.14749999999999
+22
+0.0
+32
+3.0
+13
+2.14749999999999
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.99999999999999
+20
+0.647499999999997
+30
+2.795
+11
+2.14749999999999
+21
+0.0
+31
+3.0
+12
+2.36016784552609
+22
+0.212667845526093
+32
+3.0
+13
+2.36016784552609
+23
+0.212667845526093
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+2.99999999999999
+21
+0.852499999999996
+31
+3.0
+12
+2.99999999999999
+22
+0.647499999999997
+32
+2.795
+13
+2.99999999999999
+23
+0.647499999999997
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.99999999999999
+20
+0.852499999999996
+30
+3.0
+11
+2.36016784552609
+21
+0.212667845526093
+31
+3.0
+12
+2.57375
+22
+0.426250000000001
+32
+3.0
+13
+2.57375
+23
+0.426250000000001
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_use
+10
+2.99999999999999
+20
+0.852499999999996
+30
+3.0
+11
+2.57375
+21
+0.426250000000001
+31
+3.0
+12
+2.7873321544739
+22
+0.639832154473909
+32
+3.0
+13
+2.7873321544739
+23
+0.639832154473909
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.332481491301358
+20
+1.26776612947518
+30
+3.0
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.883139136394789
+20
+0.883139136394789
+30
+3.0
+11
+0.0
+21
+0.205
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.205
+30
+3.0
+11
+0.883139136394789
+21
+0.883139136394789
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.883139136394789
+21
+0.883139136394789
+31
+3.0
+12
+0.733367557775275
+22
+0.987752578969537
+32
+3.0
+13
+0.733367557775275
+23
+0.987752578969537
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.31701681130471
+21
+0.580081389077034
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.31701681130471
+20
+0.580081389077034
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.5
+22
+0.452270081490099
+32
+3.0
+13
+1.5
+23
+0.452270081490099
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.878679656440358
+20
+1.66533453693773e-16
+30
+3.0
+11
+1.02269438387197
+21
+0.78566166435019
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.02269438387197
+20
+0.78566166435019
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+1.16340159356772
+22
+0.687379562118006
+32
+3.0
+13
+1.16340159356772
+23
+0.687379562118006
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.64558259081562
+21
+1.06434958002245e-16
+31
+2.64941740918438
+12
+1.85400833333332
+22
+6.2236879303386e-17
+32
+2.795
+13
+1.85400833333332
+23
+6.2236879303386e-17
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+3.0
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+2.795
+13
+0.205
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.679903474903479
+20
+3.11213701008545e-16
+30
+1.97490347490348
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.205
+22
+4.11920172793637e-16
+32
+1.64318975552968
+13
+0.205
+23
+4.11920172793637e-16
+33
+1.64318975552968
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.679903474903479
+21
+3.11213701008545e-16
+31
+1.97490347490348
+12
+0.8525
+22
+0.0
+32
+2.1475
+13
+0.8525
+23
+0.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.497732043121051
+30
+3.0
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+3.0
+13
+0.0
+23
+0.205
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+1.295
+32
+2.795
+13
+0.0
+23
+1.295
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+1.295
+30
+2.795
+11
+0.0
+21
+0.497732043121051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+1.295
+30
+2.795
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+1.20163144893051
+32
+3.0
+13
+0.0
+23
+1.20163144893051
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+1.295
+30
+2.795
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.0
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.75
+30
+2.25
+11
+0.0
+21
+0.205
+31
+1.705
+12
+0.0
+22
+0.205
+32
+2.795
+13
+0.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.205
+30
+2.795
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.0
+22
+0.0
+32
+2.795
+13
+0.0
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.0
+21
+0.205
+31
+2.795
+12
+0.0
+22
+0.205
+32
+1.705
+13
+0.0
+23
+0.205
+33
+1.705
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+1.295
+30
+2.795
+11
+0.0
+21
+0.75
+31
+2.25
+12
+0.0
+22
+0.205
+32
+2.795
+13
+0.0
+23
+0.205
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+0.0
+30
+2.795
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.14749999999999
+20
+0.0
+30
+3.0
+11
+1.5
+21
+0.0
+31
+2.795
+12
+1.85400833333332
+22
+6.2236879303386e-17
+32
+2.795
+13
+1.85400833333332
+23
+6.2236879303386e-17
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+0.0
+30
+2.795
+11
+2.14749999999999
+21
+0.0
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.12132034355964
+20
+0.0
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.12132034355964
+21
+0.0
+31
+3.0
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.883139136394789
+21
+0.883139136394789
+31
+3.0
+12
+0.0
+22
+0.0
+32
+3.0
+13
+0.0
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.883139136394789
+20
+0.883139136394789
+30
+3.0
+11
+0.205
+21
+0.0
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.883139136394789
+20
+0.883139136394789
+30
+3.0
+11
+0.497732043121053
+21
+0.0
+31
+3.0
+12
+1.02269438387197
+22
+0.78566166435019
+32
+3.0
+13
+1.02269438387197
+23
+0.78566166435019
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.20163144893051
+20
+1.11022302462516e-16
+30
+3.0
+11
+1.16340159356772
+21
+0.687379562118006
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.16340159356772
+20
+0.687379562118006
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+1.31701681130471
+22
+0.580081389077034
+32
+3.0
+13
+1.31701681130471
+23
+0.580081389077034
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+1.5
+21
+0.452270081490099
+31
+3.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+3.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+0.452270081490099
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.74203407868223
+22
+0.283212517800531
+32
+3.0
+13
+1.74203407868223
+23
+0.283212517800531
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+3.0
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+1.74203407868223
+22
+0.283212517800531
+32
+3.0
+13
+1.74203407868223
+23
+0.283212517800531
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.733367557775275
+20
+0.987752578969537
+30
+3.0
+11
+0.0
+21
+0.878679656440357
+31
+3.0
+12
+0.0
+22
+0.497732043121051
+32
+3.0
+13
+0.0
+23
+0.497732043121051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.878679656440357
+30
+3.0
+11
+0.733367557775275
+21
+0.987752578969537
+31
+3.0
+12
+0.558389724096057
+22
+1.10997225325071
+32
+3.0
+13
+0.558389724096057
+23
+1.10997225325071
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.558389724096057
+20
+1.10997225325071
+30
+3.0
+11
+0.0
+21
+1.20163144893051
+31
+3.0
+12
+0.0
+22
+0.878679656440357
+32
+3.0
+13
+0.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+1.20163144893051
+30
+3.0
+11
+0.558389724096057
+21
+1.10997225325071
+31
+3.0
+12
+0.332481491301358
+22
+1.26776612947518
+32
+3.0
+13
+0.332481491301358
+23
+1.26776612947518
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+4.11920172793637e-16
+30
+1.64318975552968
+11
+0.0
+21
+0.0
+31
+2.795
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.0
+30
+2.795
+11
+0.205
+21
+4.11920172793637e-16
+31
+1.64318975552968
+12
+0.205
+22
+0.0
+32
+2.795
+13
+0.205
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+5.55111512312578e-17
+30
+3.0
+11
+0.205
+21
+0.0
+31
+2.795
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+0.0
+30
+2.795
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+0.205
+22
+0.0
+32
+3.0
+13
+0.205
+23
+0.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+3.0
+12
+1.20163144893051
+22
+1.11022302462516e-16
+32
+3.0
+13
+1.20163144893051
+23
+1.11022302462516e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+0.0
+30
+3.0
+11
+1.20163144893051
+21
+1.11022302462516e-16
+31
+3.0
+12
+0.878679656440358
+22
+1.66533453693773e-16
+32
+3.0
+13
+0.878679656440358
+23
+1.66533453693773e-16
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+0.0
+30
+3.0
+11
+0.878679656440358
+21
+1.66533453693773e-16
+31
+3.0
+12
+0.497732043121053
+22
+0.0
+32
+3.0
+13
+0.497732043121053
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+0.0
+30
+2.795
+11
+1.5
+21
+1.37306724264545e-16
+31
+2.5477299185099
+12
+1.64558259081562
+22
+1.06434958002245e-16
+32
+2.64941740918438
+13
+1.64558259081562
+23
+1.06434958002245e-16
+33
+2.64941740918438
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+1.37306724264545e-16
+30
+2.5477299185099
+11
+0.8525
+21
+0.0
+31
+2.1475
+12
+0.88313913639479
+22
+2.68116213853163e-16
+32
+2.11686086360521
+13
+0.88313913639479
+23
+2.68116213853163e-16
+33
+2.11686086360521
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.8525
+20
+0.0
+30
+2.1475
+11
+1.5
+21
+1.37306724264545e-16
+31
+2.5477299185099
+12
+1.5
+22
+0.0
+32
+2.795
+13
+1.5
+23
+0.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.8525
+20
+0.0
+30
+2.1475
+11
+0.679903474903479
+21
+3.11213701008545e-16
+31
+1.97490347490348
+12
+0.88313913639479
+22
+2.68116213853163e-16
+32
+2.11686086360521
+13
+0.88313913639479
+23
+2.68116213853163e-16
+33
+2.11686086360521
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.14749999999999
+20
+0.0
+30
+3.0
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+2.12132034355964
+22
+0.0
+32
+3.0
+13
+2.12132034355964
+23
+0.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.0
+20
+0.205
+30
+1.705
+11
+0.205
+21
+4.11920172793637e-16
+31
+1.64318975552968
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.205
+20
+4.11920172793637e-16
+30
+1.64318975552968
+11
+0.0
+21
+0.205
+31
+1.705
+12
+0.679903474903479
+22
+3.11213701008545e-16
+32
+1.97490347490348
+13
+0.679903474903479
+23
+3.11213701008545e-16
+33
+1.97490347490348
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.679903474903479
+20
+3.11213701008545e-16
+30
+1.97490347490348
+11
+0.0
+21
+0.205
+31
+1.705
+12
+0.0
+22
+0.75
+32
+2.25
+13
+0.0
+23
+0.75
+33
+2.25
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.679903474903479
+20
+3.11213701008545e-16
+30
+1.97490347490348
+11
+0.0
+21
+0.75
+31
+2.25
+12
+0.88313913639479
+22
+2.68116213853163e-16
+32
+2.11686086360521
+13
+0.88313913639479
+23
+2.68116213853163e-16
+33
+2.11686086360521
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+0.88313913639479
+20
+2.68116213853163e-16
+30
+2.11686086360521
+11
+0.0
+21
+0.75
+31
+2.25
+12
+1.5
+22
+1.37306724264545e-16
+32
+2.5477299185099
+13
+1.5
+23
+1.37306724264545e-16
+33
+2.5477299185099
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+1.37306724264545e-16
+30
+2.5477299185099
+11
+0.0
+21
+0.75
+31
+2.25
+12
+0.0
+22
+1.295
+32
+2.795
+13
+0.0
+23
+1.295
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.5
+20
+1.37306724264545e-16
+30
+2.5477299185099
+11
+0.0
+21
+1.295
+31
+2.795
+12
+1.64558259081562
+22
+1.06434958002245e-16
+32
+2.64941740918438
+13
+1.64558259081562
+23
+1.06434958002245e-16
+33
+2.64941740918438
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.64558259081562
+20
+1.06434958002245e-16
+30
+2.64941740918438
+11
+0.0
+21
+1.295
+31
+2.795
+12
+1.85400833333332
+22
+6.2236879303386e-17
+32
+2.795
+13
+1.85400833333332
+23
+6.2236879303386e-17
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.85400833333332
+20
+6.2236879303386e-17
+30
+2.795
+11
+0.0
+21
+1.295
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.85400833333332
+20
+6.2236879303386e-17
+30
+2.795
+11
+0.0
+21
+1.5
+31
+3.0
+12
+2.1106623891929
+22
+0.0257305779793383
+32
+3.0
+13
+2.1106623891929
+23
+0.0257305779793383
+33
+3.0
+70
+15
+ 0
+3DFACE
+ 8
+iso_usw
+10
+1.85400833333332
+20
+6.2236879303386e-17
+30
+2.795
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+2.14749999999999
+22
+0.0
+32
+3.0
+13
+2.14749999999999
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.332481491301358
+22
+1.26776612947518
+32
+3.0
+13
+0.332481491301358
+23
+1.26776612947518
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+0.332481491301358
+21
+1.26776612947518
+31
+3.0
+12
+0.558389724096057
+22
+1.10997225325071
+32
+3.0
+13
+0.558389724096057
+23
+1.10997225325071
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+0.558389724096057
+21
+1.10997225325071
+31
+3.0
+12
+0.733367557775275
+22
+0.987752578969537
+32
+3.0
+13
+0.733367557775275
+23
+0.987752578969537
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+0.733367557775275
+21
+0.987752578969537
+31
+3.0
+12
+0.883139136394789
+22
+0.883139136394789
+32
+3.0
+13
+0.883139136394789
+23
+0.883139136394789
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+0.883139136394789
+21
+0.883139136394789
+31
+3.0
+12
+1.02269438387197
+22
+0.78566166435019
+32
+3.0
+13
+1.02269438387197
+23
+0.78566166435019
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+1.02269438387197
+21
+0.78566166435019
+31
+3.0
+12
+1.16340159356772
+22
+0.687379562118006
+32
+3.0
+13
+1.16340159356772
+23
+0.687379562118006
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+1.16340159356772
+21
+0.687379562118006
+31
+3.0
+12
+1.31701681130471
+22
+0.580081389077034
+32
+3.0
+13
+1.31701681130471
+23
+0.580081389077034
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+1.31701681130471
+21
+0.580081389077034
+31
+3.0
+12
+1.5
+22
+0.452270081490099
+32
+3.0
+13
+1.5
+23
+0.452270081490099
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_usw
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+1.5
+21
+0.452270081490099
+31
+3.0
+12
+1.74203407868223
+22
+0.283212517800531
+32
+3.0
+13
+1.74203407868223
+23
+0.283212517800531
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.74886602156053
+22
+0.248866021560525
+32
+-1.29693882069326e-16
+13
+1.74886602156053
+23
+0.248866021560525
+33
+-1.29693882069326e-16
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.10081572446526
+20
+0.600815724465256
+30
+-7.75948602460171e-17
+11
+2.12132034355964
+21
+0.0
+31
+0.0
+12
+1.93933982822018
+22
+0.439339828220178
+32
+-1.0149809463712e-16
+13
+1.93933982822018
+23
+0.439339828220178
+33
+-1.0149809463712e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+2.10081572446526
+21
+0.600815724465256
+31
+-7.75948602460171e-17
+12
+2.50226795687895
+22
+0.0
+32
+0.0
+13
+2.50226795687895
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.93933982822018
+20
+0.439339828220178
+30
+-1.0149809463712e-16
+11
+1.79836855106949
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.74886602156053
+22
+0.248866021560525
+32
+-1.29693882069326e-16
+13
+1.74886602156053
+23
+0.248866021560525
+33
+-1.29693882069326e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.93933982822018
+21
+0.439339828220178
+31
+-1.0149809463712e-16
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.64941740918437
+20
+1.80782203615711e-16
+30
+1.64558259081563
+11
+2.54772991850989
+21
+1.64788632875096e-16
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.1475
+20
+0.0
+30
+0.8525
+11
+1.64318975552969
+21
+2.25211131595965e-17
+31
+0.205
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.64318975552969
+20
+2.25211131595965e-17
+30
+0.205
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+1.97490347490348
+22
+7.46935760775808e-17
+32
+0.679903474903477
+13
+1.97490347490348
+23
+7.46935760775808e-17
+33
+0.679903474903477
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.11686086360521
+21
+9.70208606166603e-17
+31
+0.883139136394791
+12
+2.1475
+22
+0.0
+32
+0.8525
+13
+2.1475
+23
+0.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.11686086360521
+20
+9.70208606166603e-17
+30
+0.883139136394791
+11
+2.795
+21
+0.0
+31
+1.5
+12
+2.54772991850989
+22
+1.64788632875096e-16
+32
+1.5
+13
+2.54772991850989
+23
+1.64788632875096e-16
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+2.12132034355964
+22
+0.0
+32
+0.0
+13
+2.12132034355964
+23
+0.0
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.12132034355964
+20
+0.0
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.79836855106949
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.79836855106949
+23
+5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.79836855106949
+20
+5.55111512312578e-17
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.5
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+2.795
+21
+0.0
+31
+0.205
+12
+1.64318975552969
+22
+2.25211131595965e-17
+32
+0.205
+13
+1.64318975552969
+23
+2.25211131595965e-17
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.0
+30
+1.5
+11
+2.795
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+0.205
+13
+3.0
+23
+0.205
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.205
+30
+1.5
+11
+3.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+3.0
+22
+0.452270081490106
+32
+1.5
+13
+3.0
+23
+0.452270081490106
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+0.0
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.56066017177982
+20
+1.06066017177982
+30
+-9.52420782539579e-18
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+2.39918427553474
+22
+0.899184275534743
+32
+-3.34274422164983e-17
+13
+2.39918427553474
+23
+0.899184275534743
+33
+-3.34274422164983e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+2.56066017177982
+21
+1.06066017177982
+31
+-9.52420782539579e-18
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.25
+20
+0.75
+30
+-5.55111512312576e-17
+11
+2.50226795687895
+21
+0.0
+31
+0.0
+12
+2.10081572446526
+22
+0.600815724465256
+32
+-7.75948602460171e-17
+13
+2.10081572446526
+23
+0.600815724465256
+33
+-7.75948602460171e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+2.25
+21
+0.75
+31
+-5.55111512312576e-17
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.50226795687895
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.795
+22
+0.0
+32
+0.0
+13
+2.795
+23
+0.0
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+1.20163144893051
+30
+0.0
+11
+2.75113397843947
+21
+1.25113397843947
+31
+1.86715796068105e-17
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.39918427553474
+20
+0.899184275534743
+30
+-3.34274422164983e-17
+11
+3.0
+21
+0.0
+31
+0.0
+12
+2.25
+22
+0.75
+32
+-5.55111512312576e-17
+13
+2.25
+23
+0.75
+33
+-5.55111512312576e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.0
+30
+0.0
+11
+2.39918427553474
+21
+0.899184275534743
+31
+-3.34274422164983e-17
+12
+3.0
+22
+0.497732043121051
+32
+0.0
+13
+3.0
+23
+0.497732043121051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.0
+30
+0.0
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.75113397843947
+20
+1.25113397843947
+30
+1.86715796068105e-17
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+2.56066017177982
+22
+1.06066017177982
+32
+-9.52420782539579e-18
+13
+2.56066017177982
+23
+1.06066017177982
+33
+-9.52420782539579e-18
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.878679656440357
+30
+0.0
+11
+2.75113397843947
+21
+1.25113397843947
+31
+1.86715796068105e-17
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.97490347490348
+20
+7.46935760775808e-17
+30
+0.679903474903477
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.64318975552969
+22
+2.25211131595965e-17
+32
+0.205
+13
+1.64318975552969
+23
+2.25211131595965e-17
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.97490347490348
+21
+7.46935760775808e-17
+31
+0.679903474903477
+12
+1.74886602156053
+22
+0.248866021560525
+32
+-1.29693882069326e-16
+13
+1.74886602156053
+23
+0.248866021560525
+33
+-1.29693882069326e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+1.97490347490348
+21
+7.46935760775808e-17
+31
+0.679903474903477
+12
+2.11686086360521
+22
+9.70208606166603e-17
+32
+0.883139136394791
+13
+2.11686086360521
+23
+9.70208606166603e-17
+33
+0.883139136394791
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+2.11686086360521
+21
+9.70208606166603e-17
+31
+0.883139136394791
+12
+2.54772991850989
+22
+1.64788632875096e-16
+32
+1.5
+13
+2.54772991850989
+23
+1.64788632875096e-16
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+2.54772991850989
+21
+1.64788632875096e-16
+31
+1.5
+12
+2.64941740918437
+22
+1.80782203615711e-16
+32
+1.64558259081563
+13
+2.64941740918437
+23
+1.80782203615711e-16
+33
+1.64558259081563
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+2.64941740918437
+21
+1.80782203615711e-16
+31
+1.64558259081563
+12
+2.795
+22
+2.03679665726025e-16
+32
+1.85400833333335
+13
+2.795
+23
+2.03679665726025e-16
+33
+1.85400833333335
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+2.795
+21
+2.03679665726025e-16
+31
+1.85400833333335
+12
+2.99999999999999
+22
+4.71844785465692e-16
+32
+2.1475
+13
+2.99999999999999
+23
+4.71844785465692e-16
+33
+2.1475
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+2.99999999999999
+21
+4.71844785465692e-16
+31
+2.1475
+12
+3.0
+22
+0.205
+32
+1.85400833333334
+13
+3.0
+23
+0.205
+33
+1.85400833333334
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+3.0
+21
+0.205
+31
+1.85400833333334
+12
+3.0
+22
+0.452270081490106
+32
+1.5
+13
+3.0
+23
+0.452270081490106
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+3.0
+21
+0.452270081490106
+31
+1.5
+12
+1.93933982822018
+22
+0.439339828220178
+32
+-1.0149809463712e-16
+13
+1.93933982822018
+23
+0.439339828220178
+33
+-1.0149809463712e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+1.93933982822018
+20
+0.439339828220178
+30
+-1.0149809463712e-16
+11
+3.0
+21
+0.452270081490106
+31
+1.5
+12
+2.10081572446526
+22
+0.600815724465256
+32
+-7.75948602460171e-17
+13
+2.10081572446526
+23
+0.600815724465256
+33
+-7.75948602460171e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.10081572446526
+20
+0.600815724465256
+30
+-7.75948602460171e-17
+11
+3.0
+21
+0.452270081490106
+31
+1.5
+12
+3.0
+22
+0.883139136394791
+32
+0.883139136394791
+13
+3.0
+23
+0.883139136394791
+33
+0.883139136394791
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.10081572446526
+20
+0.600815724465256
+30
+-7.75948602460171e-17
+11
+3.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+2.25
+22
+0.75
+32
+-5.55111512312576e-17
+13
+2.25
+23
+0.75
+33
+-5.55111512312576e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.25
+20
+0.75
+30
+-5.55111512312576e-17
+11
+3.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+2.39918427553474
+22
+0.899184275534743
+32
+-3.34274422164983e-17
+13
+2.39918427553474
+23
+0.899184275534743
+33
+-3.34274422164983e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.39918427553474
+20
+0.899184275534743
+30
+-3.34274422164983e-17
+11
+3.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+3.0
+22
+1.35681024447031
+32
+0.205
+13
+3.0
+23
+1.35681024447031
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.39918427553474
+20
+0.899184275534743
+30
+-3.34274422164983e-17
+11
+3.0
+21
+1.35681024447031
+31
+0.205
+12
+2.56066017177982
+22
+1.06066017177982
+32
+-9.52420782539579e-18
+13
+2.56066017177982
+23
+1.06066017177982
+33
+-9.52420782539579e-18
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.56066017177982
+20
+1.06066017177982
+30
+-9.52420782539579e-18
+11
+3.0
+21
+1.35681024447031
+31
+0.205
+12
+2.75113397843947
+22
+1.25113397843947
+32
+1.86715796068105e-17
+13
+2.75113397843947
+23
+1.25113397843947
+33
+1.86715796068105e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.75113397843947
+20
+1.25113397843947
+30
+1.86715796068105e-17
+11
+3.0
+21
+1.35681024447031
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.205
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.452270081490106
+30
+1.5
+11
+3.0
+21
+0.205
+31
+1.85400833333334
+12
+3.0
+22
+0.205
+32
+1.5
+13
+3.0
+23
+0.205
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+0.0
+30
+0.205
+11
+2.795
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.0
+32
+0.0
+13
+3.0
+23
+0.0
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+0.205
+13
+3.0
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.0
+30
+1.5
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+1.5
+13
+3.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+2.03679665726025e-16
+30
+1.85400833333335
+11
+2.64941740918437
+21
+1.80782203615711e-16
+31
+1.64558259081563
+12
+2.795
+22
+0.0
+32
+1.5
+13
+2.795
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.1475
+21
+0.0
+31
+0.8525
+12
+2.795
+22
+0.0
+32
+0.205
+13
+2.795
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+1.35681024447031
+30
+0.205
+11
+3.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+3.0
+22
+0.205
+32
+0.205
+13
+3.0
+23
+0.205
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.497732043121051
+30
+0.0
+11
+3.0
+21
+0.205
+31
+0.205
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+1.35681024447031
+32
+0.205
+13
+3.0
+23
+1.35681024447031
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+1.35681024447031
+30
+0.205
+11
+3.0
+21
+0.497732043121051
+31
+0.0
+12
+3.0
+22
+0.878679656440357
+32
+0.0
+13
+3.0
+23
+0.878679656440357
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+1.35681024447031
+30
+0.205
+11
+3.0
+21
+0.878679656440357
+31
+0.0
+12
+3.0
+22
+1.20163144893051
+32
+0.0
+13
+3.0
+23
+1.20163144893051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+1.35681024447031
+30
+0.205
+11
+3.0
+21
+1.20163144893051
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.205
+30
+1.5
+11
+2.99999999999999
+21
+4.71844785465692e-16
+31
+2.1475
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.99999999999999
+20
+4.71844785465692e-16
+30
+2.1475
+11
+3.0
+21
+0.205
+31
+1.5
+12
+3.0
+22
+0.205
+32
+1.85400833333334
+13
+3.0
+23
+0.205
+33
+1.85400833333334
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+3.0
+20
+0.205
+30
+0.205
+11
+3.0
+21
+0.0
+31
+0.0
+12
+3.0
+22
+0.205
+32
+0.0
+13
+3.0
+23
+0.205
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.99999999999999
+20
+4.71844785465692e-16
+30
+2.1475
+11
+2.795
+21
+0.0
+31
+1.5
+12
+3.0
+22
+0.0
+32
+1.5
+13
+3.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.795
+20
+0.0
+30
+1.5
+11
+2.99999999999999
+21
+4.71844785465692e-16
+31
+2.1475
+12
+2.795
+22
+2.03679665726025e-16
+32
+1.85400833333335
+13
+2.795
+23
+2.03679665726025e-16
+33
+1.85400833333335
+70
+1
+ 0
+3DFACE
+ 8
+iso_dse
+10
+2.11686086360521
+20
+9.70208606166603e-17
+30
+0.883139136394791
+11
+1.97490347490348
+21
+7.46935760775808e-17
+31
+0.679903474903477
+12
+2.1475
+22
+0.0
+32
+0.8525
+13
+2.1475
+23
+0.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.41991861092296
+20
+1.68298318869529
+30
+3.0
+11
+3.0
+21
+2.12132034355964
+31
+3.0
+12
+2.31262043788199
+22
+1.83659840643228
+32
+3.0
+13
+2.31262043788199
+23
+1.83659840643228
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+2.41991861092296
+21
+1.68298318869529
+31
+3.0
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.54772991850989
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.79836855106949
+31
+3.0
+12
+2.41991861092296
+22
+1.68298318869529
+32
+3.0
+13
+2.41991861092296
+23
+1.68298318869529
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+2.54772991850989
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.97426942202063
+20
+0.889337610807109
+30
+3.0
+11
+3.0
+21
+1.20163144893051
+31
+3.0
+12
+2.71678748219945
+22
+1.25796592131777
+32
+3.0
+13
+2.71678748219945
+23
+1.25796592131777
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+2.97426942202063
+21
+0.889337610807109
+31
+3.0
+12
+3.0
+22
+0.878679656440357
+32
+3.0
+13
+3.0
+23
+0.878679656440357
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.71678748219945
+20
+1.25796592131777
+30
+3.0
+11
+3.0
+21
+1.5
+31
+3.0
+12
+2.54772991850989
+22
+1.5
+32
+3.0
+13
+2.54772991850989
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.5
+30
+3.0
+11
+2.71678748219945
+21
+1.25796592131777
+31
+3.0
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+1.5
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+1.705
+22
+3.0
+32
+2.795
+13
+1.705
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.795
+20
+3.0
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.795
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.79836855106949
+22
+3.0
+32
+3.0
+13
+1.79836855106949
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.795
+20
+3.0
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.795
+20
+3.0
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.795
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.14599166666666
+30
+2.795
+11
+3.0
+21
+0.878679656440357
+31
+3.0
+12
+2.99999999999999
+22
+0.852499999999996
+32
+3.0
+13
+2.99999999999999
+23
+0.852499999999996
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+3.0
+21
+1.14599166666666
+31
+2.795
+12
+3.0
+22
+1.20163144893051
+32
+3.0
+13
+3.0
+23
+1.20163144893051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.14599166666666
+31
+2.795
+12
+3.0
+22
+1.5
+32
+2.795
+13
+3.0
+23
+1.5
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.20163144893051
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.5
+32
+3.0
+13
+3.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+1.5
+31
+3.0
+12
+3.0
+22
+1.5
+32
+2.795
+13
+3.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+1.79836855106949
+32
+3.0
+13
+3.0
+23
+1.79836855106949
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.79836855106949
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.12132034355964
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.25
+21
+3.0
+31
+2.25
+12
+1.705
+22
+3.0
+32
+2.795
+13
+1.705
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.795
+20
+3.0
+30
+1.705
+11
+3.0
+21
+3.0
+31
+2.795
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+1.705
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+3.0
+21
+1.5
+31
+2.795
+12
+3.0
+22
+1.5
+32
+2.54772991850989
+13
+3.0
+23
+1.5
+33
+2.54772991850989
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.795
+31
+2.795
+12
+3.0
+22
+2.795
+32
+1.64318975552969
+13
+3.0
+23
+2.795
+33
+1.64318975552969
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+2.795
+13
+3.0
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+2.795
+12
+2.795
+22
+3.0
+32
+2.795
+13
+2.795
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.795
+20
+3.0
+30
+2.795
+11
+2.795
+21
+3.0
+31
+1.705
+12
+2.25
+22
+3.0
+32
+2.25
+13
+2.25
+23
+3.0
+33
+2.25
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.795
+30
+2.795
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+3.0
+22
+2.795
+32
+1.64318975552969
+13
+3.0
+23
+2.795
+33
+1.64318975552969
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.31262043788199
+20
+1.83659840643228
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+2.2143383356498
+22
+1.97730561612803
+32
+3.0
+13
+2.2143383356498
+23
+1.97730561612803
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.50226795687895
+30
+3.0
+11
+2.31262043788199
+21
+1.83659840643228
+31
+3.0
+12
+3.0
+22
+2.12132034355964
+32
+3.0
+13
+3.0
+23
+2.12132034355964
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.01224742103046
+20
+2.26663244222472
+30
+3.0
+11
+2.12132034355964
+21
+3.0
+31
+3.0
+12
+1.89002774674928
+22
+2.44161027590394
+32
+3.0
+13
+1.89002774674928
+23
+2.44161027590394
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.12132034355964
+20
+3.0
+30
+3.0
+11
+2.01224742103046
+21
+2.26663244222472
+31
+3.0
+12
+2.50226795687895
+22
+3.0
+32
+3.0
+13
+2.50226795687895
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+1.89002774674928
+20
+2.44161027590394
+30
+3.0
+11
+1.79836855106949
+21
+3.0
+31
+3.0
+12
+1.73223387052482
+22
+2.66751850869864
+32
+3.0
+13
+1.73223387052482
+23
+2.66751850869864
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.89002774674928
+21
+2.44161027590394
+31
+3.0
+12
+2.12132034355964
+22
+3.0
+32
+3.0
+13
+2.12132034355964
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.11686086360521
+20
+2.11686086360521
+30
+3.0
+11
+2.50226795687895
+21
+3.0
+31
+3.0
+12
+2.01224742103046
+22
+2.26663244222472
+32
+3.0
+13
+2.01224742103046
+23
+2.26663244222472
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+2.11686086360521
+21
+2.11686086360521
+31
+3.0
+12
+3.0
+22
+3.0
+32
+3.0
+13
+3.0
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.50226795687895
+20
+3.0
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.795
+22
+3.0
+32
+3.0
+13
+2.795
+23
+3.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.2143383356498
+20
+1.97730561612803
+30
+3.0
+11
+3.0
+21
+3.0
+31
+3.0
+12
+2.11686086360521
+22
+2.11686086360521
+32
+3.0
+13
+2.11686086360521
+23
+2.11686086360521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+2.2143383356498
+21
+1.97730561612803
+31
+3.0
+12
+3.0
+22
+2.50226795687895
+32
+3.0
+13
+3.0
+23
+2.50226795687895
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.50226795687895
+31
+3.0
+12
+3.0
+22
+2.795
+32
+3.0
+13
+3.0
+23
+2.795
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.5
+30
+2.795
+11
+3.0
+21
+1.14599166666666
+31
+2.795
+12
+3.0
+22
+1.5
+32
+2.54772991850989
+13
+3.0
+23
+1.5
+33
+2.54772991850989
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+1.79836855106949
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.73223387052482
+22
+2.66751850869864
+32
+3.0
+13
+1.73223387052482
+23
+2.66751850869864
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+3.0
+12
+3.0
+22
+2.795
+32
+2.795
+13
+3.0
+23
+2.795
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+0.878679656440357
+30
+3.0
+11
+2.97426942202063
+21
+0.889337610807109
+31
+3.0
+12
+2.99999999999999
+22
+0.852499999999996
+32
+3.0
+13
+2.99999999999999
+23
+0.852499999999996
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_une
+10
+2.97426942202063
+20
+0.889337610807109
+30
+3.0
+11
+3.0
+21
+1.14599166666666
+31
+2.795
+12
+2.99999999999999
+22
+0.852499999999996
+32
+3.0
+13
+2.99999999999999
+23
+0.852499999999996
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.14599166666666
+30
+2.795
+11
+2.97426942202063
+21
+0.889337610807109
+31
+3.0
+12
+2.71678748219945
+22
+1.25796592131777
+32
+3.0
+13
+2.71678748219945
+23
+1.25796592131777
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.14599166666666
+30
+2.795
+11
+2.71678748219945
+21
+1.25796592131777
+31
+3.0
+12
+3.0
+22
+1.5
+32
+2.54772991850989
+13
+3.0
+23
+1.5
+33
+2.54772991850989
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.5
+30
+2.54772991850989
+11
+2.71678748219945
+21
+1.25796592131777
+31
+3.0
+12
+2.54772991850989
+22
+1.5
+32
+3.0
+13
+2.54772991850989
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.5
+30
+2.54772991850989
+11
+2.54772991850989
+21
+1.5
+31
+3.0
+12
+2.41991861092296
+22
+1.68298318869529
+32
+3.0
+13
+2.41991861092296
+23
+1.68298318869529
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+1.5
+30
+2.54772991850989
+11
+2.41991861092296
+21
+1.68298318869529
+31
+3.0
+12
+3.0
+22
+2.11686086360521
+32
+2.11686086360521
+13
+3.0
+23
+2.11686086360521
+33
+2.11686086360521
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+2.41991861092296
+21
+1.68298318869529
+31
+3.0
+12
+2.31262043788199
+22
+1.83659840643228
+32
+3.0
+13
+2.31262043788199
+23
+1.83659840643228
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+2.31262043788199
+21
+1.83659840643228
+31
+3.0
+12
+2.2143383356498
+22
+1.97730561612803
+32
+3.0
+13
+2.2143383356498
+23
+1.97730561612803
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+2.2143383356498
+21
+1.97730561612803
+31
+3.0
+12
+2.11686086360521
+22
+2.11686086360521
+32
+3.0
+13
+2.11686086360521
+23
+2.11686086360521
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+2.11686086360521
+21
+2.11686086360521
+31
+3.0
+12
+2.01224742103046
+22
+2.26663244222472
+32
+3.0
+13
+2.01224742103046
+23
+2.26663244222472
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+2.01224742103046
+21
+2.26663244222472
+31
+3.0
+12
+3.0
+22
+2.795
+32
+1.64318975552969
+13
+3.0
+23
+2.795
+33
+1.64318975552969
+70
+3
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.795
+30
+1.64318975552969
+11
+2.01224742103046
+21
+2.26663244222472
+31
+3.0
+12
+1.89002774674928
+22
+2.44161027590394
+32
+3.0
+13
+1.89002774674928
+23
+2.44161027590394
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.795
+30
+1.64318975552969
+11
+1.89002774674928
+21
+2.44161027590394
+31
+3.0
+12
+1.73223387052482
+22
+2.66751850869864
+32
+3.0
+13
+1.73223387052482
+23
+2.66751850869864
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.795
+30
+1.64318975552969
+11
+1.73223387052482
+21
+2.66751850869864
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+2.795
+30
+1.64318975552969
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.705
+22
+3.0
+32
+2.795
+13
+1.705
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+1.705
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+3.0
+22
+2.795
+32
+1.64318975552969
+13
+3.0
+23
+2.795
+33
+1.64318975552969
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+1.5
+11
+1.705
+21
+3.0
+31
+2.795
+12
+2.25
+22
+3.0
+32
+2.25
+13
+2.25
+23
+3.0
+33
+2.25
+70
+13
+ 0
+3DFACE
+ 8
+iso_une
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.25
+21
+3.0
+31
+2.25
+12
+2.795
+22
+3.0
+32
+1.705
+13
+2.795
+23
+3.0
+33
+1.705
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.88313913639479
+20
+2.68116213853163e-16
+30
+2.11686086360521
+11
+0.205
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.88313913639479
+21
+2.68116213853163e-16
+31
+2.11686086360521
+12
+0.679903474903479
+22
+3.11213701008545e-16
+32
+1.97490347490348
+13
+0.679903474903479
+23
+3.11213701008545e-16
+33
+1.97490347490348
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.5
+30
+1.5
+11
+2.99999999999999
+21
+0.647499999999997
+31
+2.795
+12
+3.0
+22
+0.426249999999999
+32
+2.57375
+13
+3.0
+23
+0.426249999999999
+33
+2.57375
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.99999999999999
+20
+0.647499999999997
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+12
+3.0
+22
+1.14599166666666
+32
+2.795
+13
+3.0
+23
+1.14599166666666
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.14599166666666
+30
+2.795
+11
+3.0
+21
+1.5
+31
+1.5
+12
+3.0
+22
+1.5
+32
+2.54772991850989
+13
+3.0
+23
+1.5
+33
+2.54772991850989
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.705
+30
+0.205
+11
+3.0
+21
+1.5
+31
+1.5
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.705
+31
+0.205
+12
+3.0
+22
+2.25
+32
+0.75
+13
+3.0
+23
+2.25
+33
+0.75
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.64941740918437
+20
+1.80782203615711e-16
+30
+1.64558259081563
+11
+1.5
+21
+0.0
+31
+1.5
+12
+2.54772991850989
+22
+1.64788632875096e-16
+32
+1.5
+13
+2.54772991850989
+23
+1.64788632875096e-16
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+0.0
+30
+1.5
+11
+2.64941740918437
+21
+1.80782203615711e-16
+31
+1.64558259081563
+12
+2.1475
+22
+0.0
+32
+2.1475
+13
+2.1475
+23
+0.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+1.5
+21
+1.37306724264545e-16
+31
+2.5477299185099
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.37306724264545e-16
+30
+2.5477299185099
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+1.64558259081562
+22
+1.06434958002245e-16
+32
+2.64941740918438
+13
+1.64558259081562
+23
+1.06434958002245e-16
+33
+2.64941740918438
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.57375
+20
+1.17961196366424e-16
+30
+2.57375
+11
+1.64558259081562
+21
+1.06434958002245e-16
+31
+2.64941740918438
+12
+2.1475
+22
+0.0
+32
+2.1475
+13
+2.1475
+23
+0.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.64558259081562
+20
+1.06434958002245e-16
+30
+2.64941740918438
+11
+2.57375
+21
+1.17961196366424e-16
+31
+2.57375
+12
+2.3525
+22
+5.67320709797468e-17
+32
+2.795
+13
+2.3525
+23
+5.67320709797468e-17
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.64558259081562
+20
+1.06434958002245e-16
+30
+2.64941740918438
+11
+2.3525
+21
+5.67320709797468e-17
+31
+2.795
+12
+1.85400833333332
+22
+6.2236879303386e-17
+32
+2.795
+13
+1.85400833333332
+23
+6.2236879303386e-17
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.97490347490348
+20
+7.46935760775808e-17
+30
+0.679903474903477
+11
+1.5
+21
+0.0
+31
+0.205
+12
+1.64318975552969
+22
+2.25211131595965e-17
+32
+0.205
+13
+1.64318975552969
+23
+2.25211131595965e-17
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+0.452270081490106
+30
+1.5
+11
+3.0
+21
+0.205
+31
+2.3525
+12
+3.0
+22
+0.205
+32
+1.85400833333334
+13
+3.0
+23
+0.205
+33
+1.85400833333334
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+0.205
+30
+2.3525
+11
+3.0
+21
+0.452270081490106
+31
+1.5
+12
+3.0
+22
+0.426249999999999
+32
+2.57375
+13
+3.0
+23
+0.426249999999999
+33
+2.57375
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+0.426249999999999
+30
+2.57375
+11
+3.0
+21
+0.452270081490106
+31
+1.5
+12
+3.0
+22
+1.5
+32
+1.5
+13
+3.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.14599166666666
+30
+2.795
+11
+2.99999999999999
+21
+0.852499999999996
+31
+3.0
+12
+2.99999999999999
+22
+0.647499999999997
+32
+2.795
+13
+2.99999999999999
+23
+0.647499999999997
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+0.452270081490106
+31
+1.5
+12
+3.0
+22
+0.883139136394791
+32
+0.883139136394791
+13
+3.0
+23
+0.883139136394791
+33
+0.883139136394791
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.35681024447031
+30
+0.205
+11
+3.0
+21
+1.5
+31
+1.5
+12
+3.0
+22
+0.883139136394791
+32
+0.883139136394791
+13
+3.0
+23
+0.883139136394791
+33
+0.883139136394791
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.5
+30
+1.5
+11
+3.0
+21
+1.35681024447031
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.205
+13
+3.0
+23
+1.5
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.772725344843521
+20
+1.72061635471339
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.205
+20
+0.0
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.42550697334953
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.64826864473226
+20
+2.24539681310645
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+3.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+0.0
+30
+1.5
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.295
+20
+2.39623136148263e-17
+30
+0.205
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+0.75
+22
+1.38777878078145e-17
+32
+0.75
+13
+0.75
+23
+1.38777878078145e-17
+33
+0.75
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.91251205544432
+20
+1.98213889596437
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+3.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+3.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.743659607729131
+20
+1.42550697334953
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+3.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.82973983909525
+20
+1.14173848001224
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.91251205544432
+20
+1.01786110403563
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.85826151998776
+20
+2.17026016090475
+30
+3.0
+11
+1.89002774674928
+21
+2.44161027590394
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.89002774674928
+20
+2.44161027590394
+30
+3.0
+11
+1.85826151998776
+21
+2.17026016090475
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.89002774674928
+20
+2.44161027590394
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+2.01224742103046
+22
+2.26663244222472
+32
+3.0
+13
+2.01224742103046
+23
+2.26663244222472
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+3.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.17026016090475
+20
+1.85826151998776
+30
+3.0
+11
+2.2143383356498
+21
+1.97730561612803
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.2143383356498
+20
+1.97730561612803
+30
+3.0
+11
+2.17026016090475
+21
+1.85826151998776
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.2143383356498
+20
+1.97730561612803
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+2.31262043788199
+22
+1.83659840643228
+32
+3.0
+13
+2.31262043788199
+23
+1.83659840643228
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.31701681130471
+20
+0.580081389077034
+30
+3.0
+11
+1.20916059140253
+21
+0.797851555291422
+31
+3.0
+12
+1.16340159356772
+22
+0.687379562118006
+32
+3.0
+13
+1.16340159356772
+23
+0.687379562118006
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.20916059140253
+20
+0.797851555291422
+30
+3.0
+11
+1.31701681130471
+21
+0.580081389077034
+31
+3.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+3.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.31701681130471
+21
+0.580081389077034
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+1.98213889596437
+21
+0.91251205544432
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.98213889596437
+20
+0.91251205544432
+30
+3.0
+11
+2.36016784552609
+21
+0.212667845526093
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+2.36016784552609
+21
+0.212667845526093
+31
+3.0
+12
+2.57375
+22
+0.426250000000001
+32
+3.0
+13
+2.57375
+23
+0.426250000000001
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.57449302665047
+20
+2.25634039227087
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.73223387052482
+22
+2.66751850869864
+32
+3.0
+13
+1.73223387052482
+23
+2.66751850869864
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.73223387052482
+20
+2.66751850869864
+30
+3.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+3.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+3.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.27938364528661
+20
+0.772725344843521
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+3.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+3.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+0.0
+30
+1.5
+11
+0.205
+21
+3.79326200080262e-18
+31
+1.295
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+3.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.16340159356772
+20
+0.687379562118006
+30
+3.0
+11
+1.0777666229051
+21
+0.868083094650066
+31
+3.0
+12
+1.02269438387197
+22
+0.78566166435019
+32
+3.0
+13
+1.02269438387197
+23
+0.78566166435019
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.0777666229051
+20
+0.868083094650066
+30
+3.0
+11
+1.16340159356772
+21
+0.687379562118006
+31
+3.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+3.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+1.16340159356772
+21
+0.687379562118006
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.08748794455568
+20
+1.98213889596437
+30
+3.0
+11
+2.11686086360521
+21
+2.11686086360521
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.11686086360521
+20
+2.11686086360521
+30
+3.0
+11
+2.08748794455568
+21
+1.98213889596437
+31
+3.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+3.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.11686086360521
+20
+2.11686086360521
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+2.2143383356498
+22
+1.97730561612803
+32
+3.0
+13
+2.2143383356498
+23
+1.97730561612803
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.71678748219945
+20
+1.25796592131777
+30
+3.0
+11
+2.25634039227087
+21
+1.42550697334953
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.25634039227087
+20
+1.42550697334953
+30
+3.0
+11
+2.71678748219945
+21
+1.25796592131777
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.26
+20
+1.5
+30
+3.0
+11
+2.71678748219945
+21
+1.25796592131777
+31
+3.0
+12
+2.54772991850989
+22
+1.5
+32
+3.0
+13
+2.54772991850989
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.772725344843521
+20
+1.27938364528661
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.797851555291422
+20
+1.79083940859747
+30
+3.0
+11
+0.600815724465256
+21
+2.10081572446526
+31
+3.0
+12
+0.439339828220179
+22
+1.93933982822018
+32
+3.0
+13
+0.439339828220179
+23
+1.93933982822018
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.600815724465256
+20
+2.10081572446526
+30
+3.0
+11
+0.797851555291422
+21
+1.79083940859747
+31
+3.0
+12
+0.82973983909525
+22
+1.85826151998776
+32
+3.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.600815724465256
+20
+2.10081572446526
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.558389724096057
+20
+1.10997225325071
+30
+3.0
+11
+0.754603186893545
+21
+1.35173135526774
+31
+3.0
+12
+0.332481491301358
+22
+1.26776612947518
+32
+3.0
+13
+0.332481491301358
+23
+1.26776612947518
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.754603186893545
+20
+1.35173135526774
+30
+3.0
+11
+0.558389724096057
+21
+1.10997225325071
+31
+3.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+3.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.772725344843521
+20
+1.27938364528661
+30
+3.0
+11
+0.558389724096057
+21
+1.10997225325071
+31
+3.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+3.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.733367557775275
+20
+0.987752578969537
+30
+3.0
+11
+0.797851555291422
+21
+1.20916059140253
+31
+3.0
+12
+0.558389724096057
+22
+1.10997225325071
+32
+3.0
+13
+0.558389724096057
+23
+1.10997225325071
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.797851555291422
+20
+1.20916059140253
+30
+3.0
+11
+0.733367557775275
+21
+0.987752578969537
+31
+3.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+3.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.82973983909525
+20
+1.14173848001224
+30
+3.0
+11
+0.733367557775275
+21
+0.987752578969537
+31
+3.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+3.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.97426942202063
+20
+0.889337610807109
+30
+3.0
+11
+2.22727465515648
+21
+1.27938364528661
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.22727465515648
+20
+1.27938364528661
+30
+3.0
+11
+2.97426942202063
+21
+0.889337610807109
+31
+3.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+3.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.24539681310646
+20
+1.35173135526774
+30
+3.0
+11
+2.97426942202063
+21
+0.889337610807109
+31
+3.0
+12
+2.71678748219945
+22
+1.25796592131777
+32
+3.0
+13
+2.71678748219945
+23
+1.25796592131777
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.868083094650066
+20
+1.9222333770949
+30
+3.0
+11
+0.75
+21
+2.25
+31
+3.0
+12
+0.600815724465256
+22
+2.10081572446526
+32
+3.0
+13
+0.600815724465256
+23
+2.10081572446526
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.75
+20
+2.25
+30
+3.0
+11
+0.868083094650066
+21
+1.9222333770949
+31
+3.0
+12
+0.91251205544432
+22
+1.98213889596437
+32
+3.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.75
+20
+2.25
+30
+3.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.332481491301358
+20
+1.26776612947518
+30
+3.0
+11
+0.74
+21
+1.5
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.74
+20
+1.5
+30
+3.0
+11
+0.332481491301358
+21
+1.26776612947518
+31
+3.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+3.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.743659607729131
+20
+1.42550697334953
+30
+3.0
+11
+0.332481491301358
+21
+1.26776612947518
+31
+3.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+3.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.57375
+20
+0.426250000000001
+30
+3.0
+11
+2.08748794455568
+21
+1.01786110403563
+31
+3.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+3.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.08748794455568
+20
+1.01786110403563
+30
+3.0
+11
+2.57375
+21
+0.426250000000001
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.57375
+21
+0.426250000000001
+31
+3.0
+12
+2.7873321544739
+22
+0.639832154473909
+32
+3.0
+13
+2.7873321544739
+23
+0.639832154473909
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.7873321544739
+20
+0.639832154473909
+30
+3.0
+11
+2.17026016090475
+21
+1.14173848001224
+31
+3.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+3.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.17026016090475
+20
+1.14173848001224
+30
+3.0
+11
+2.7873321544739
+21
+0.639832154473909
+31
+3.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+3.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.20214844470858
+20
+1.20916059140253
+30
+3.0
+11
+2.7873321544739
+21
+0.639832154473909
+31
+3.0
+12
+2.97426942202063
+22
+0.889337610807109
+32
+3.0
+13
+2.97426942202063
+23
+0.889337610807109
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.97426942202063
+20
+0.889337610807109
+30
+3.0
+11
+2.7873321544739
+21
+0.639832154473909
+31
+3.0
+12
+2.99999999999999
+22
+0.852499999999996
+32
+3.0
+13
+2.99999999999999
+23
+0.852499999999996
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.74
+20
+1.5
+30
+3.0
+11
+0.248866021560526
+21
+1.74886602156053
+31
+3.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.248866021560526
+20
+1.74886602156053
+30
+3.0
+11
+0.74
+21
+1.5
+31
+3.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+3.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.248866021560526
+20
+1.74886602156053
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+0.452270081490099
+30
+3.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+3.0
+12
+1.31701681130471
+22
+0.580081389077034
+32
+3.0
+13
+1.31701681130471
+23
+0.580081389077034
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.35173135526774
+20
+0.754603186893545
+30
+3.0
+11
+1.5
+21
+0.452270081490099
+31
+3.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+3.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.42550697334953
+20
+0.743659607729131
+30
+3.0
+11
+1.5
+21
+0.452270081490099
+31
+3.0
+12
+1.5
+22
+0.74
+32
+3.0
+13
+1.5
+23
+0.74
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.5
+30
+0.205
+11
+3.0
+21
+1.35681024447031
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+3.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.01786110403563
+20
+2.08748794455568
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.1106623891929
+20
+0.0257305779793383
+30
+3.0
+11
+1.85826151998776
+21
+0.82973983909525
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.85826151998776
+20
+0.82973983909525
+30
+3.0
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+3.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+2.36016784552609
+22
+0.212667845526093
+32
+3.0
+13
+2.36016784552609
+23
+0.212667845526093
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+2.14749999999999
+22
+0.0
+32
+3.0
+13
+2.14749999999999
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.74203407868223
+20
+0.283212517800531
+30
+3.0
+11
+1.72061635471339
+21
+0.772725344843521
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.72061635471339
+20
+0.772725344843521
+30
+3.0
+11
+1.74203407868223
+21
+0.283212517800531
+31
+3.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+3.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.74203407868223
+21
+0.283212517800531
+31
+3.0
+12
+2.1106623891929
+22
+0.0257305779793383
+32
+3.0
+13
+2.1106623891929
+23
+0.0257305779793383
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.0777666229051
+20
+2.13191690534993
+30
+3.0
+11
+1.06066017177982
+21
+2.56066017177982
+31
+3.0
+12
+0.899184275534744
+22
+2.39918427553474
+32
+3.0
+13
+0.899184275534744
+23
+2.39918427553474
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.06066017177982
+20
+2.56066017177982
+30
+3.0
+11
+1.0777666229051
+21
+2.13191690534993
+31
+3.0
+12
+1.14173848001224
+22
+2.17026016090475
+32
+3.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.06066017177982
+20
+2.56066017177982
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.20916059140253
+20
+2.20214844470858
+30
+3.0
+11
+1.25113397843947
+21
+2.75113397843947
+31
+3.0
+12
+1.06066017177982
+22
+2.56066017177982
+32
+3.0
+13
+1.06066017177982
+23
+2.56066017177982
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.25113397843947
+20
+2.75113397843947
+30
+3.0
+11
+1.20916059140253
+21
+2.20214844470858
+31
+3.0
+12
+1.27938364528661
+22
+2.22727465515648
+32
+3.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.25113397843947
+20
+2.75113397843947
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.34882660079146
+22
+2.26
+32
+3.0
+13
+1.34882660079146
+23
+2.26
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.34882660079146
+20
+2.26
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.795
+31
+1.5
+12
+3.0
+22
+2.795
+32
+1.295
+13
+3.0
+23
+2.795
+33
+1.295
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.705
+30
+0.205
+11
+3.0
+21
+1.5
+31
+0.205
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.25
+30
+0.75
+11
+3.0
+21
+2.795
+31
+1.5
+12
+3.0
+22
+1.5
+32
+1.5
+13
+3.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+2.25
+31
+0.75
+12
+3.0
+22
+2.795
+32
+1.295
+13
+3.0
+23
+2.795
+33
+1.295
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.74203407868223
+20
+0.283212517800531
+30
+3.0
+11
+1.5
+21
+0.74
+31
+3.0
+12
+1.5
+22
+0.452270081490099
+32
+3.0
+13
+1.5
+23
+0.452270081490099
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+0.74
+30
+3.0
+11
+1.74203407868223
+21
+0.283212517800531
+31
+3.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+3.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.57449302665047
+20
+0.743659607729131
+30
+3.0
+11
+1.74203407868223
+21
+0.283212517800531
+31
+3.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+3.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.72061635471339
+20
+2.22727465515648
+30
+3.0
+11
+1.73223387052482
+21
+2.66751850869864
+31
+3.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+3.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.73223387052482
+20
+2.66751850869864
+30
+3.0
+11
+1.72061635471339
+21
+2.22727465515648
+31
+3.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+3.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.73223387052482
+20
+2.66751850869864
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.89002774674928
+22
+2.44161027590394
+32
+3.0
+13
+1.89002774674928
+23
+2.44161027590394
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.02269438387197
+20
+0.78566166435019
+30
+3.0
+11
+0.962598846298224
+21
+0.962598846298224
+31
+3.0
+12
+0.883139136394789
+22
+0.883139136394789
+32
+3.0
+13
+0.883139136394789
+23
+0.883139136394789
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.962598846298224
+20
+0.962598846298224
+30
+3.0
+11
+1.02269438387197
+21
+0.78566166435019
+31
+3.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+3.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.01786110403563
+20
+0.91251205544432
+30
+3.0
+11
+1.02269438387197
+21
+0.78566166435019
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.14173848001224
+20
+2.17026016090475
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.79083940859747
+20
+2.20214844470858
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+3.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.13191690534993
+20
+1.9222333770949
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+3.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.34882660079146
+20
+2.26
+30
+3.0
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.25113397843947
+22
+2.75113397843947
+32
+3.0
+13
+1.25113397843947
+23
+2.75113397843947
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.34882660079146
+21
+2.26
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.35173135526774
+21
+2.24539681310645
+31
+3.0
+12
+1.42550697334953
+22
+2.25634039227087
+32
+3.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+3.0
+12
+1.5
+22
+2.26
+32
+3.0
+13
+1.5
+23
+2.26
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.64826864473226
+20
+0.754603186893545
+30
+3.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.79083940859747
+20
+0.797851555291422
+30
+3.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+3.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+3.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+3.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+3.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.27938364528661
+20
+2.22727465515648
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+3.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.24539681310645
+20
+1.64826864473226
+30
+3.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.20214844470858
+20
+1.79083940859747
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+3.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+3.0
+21
+1.5
+31
+2.54772991850989
+12
+3.0
+22
+1.5
+32
+1.5
+13
+3.0
+23
+1.5
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.795
+30
+1.5
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+3.0
+22
+1.5
+32
+1.5
+13
+3.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+3.0
+21
+2.795
+31
+1.5
+12
+3.0
+22
+2.795
+32
+1.64318975552969
+13
+3.0
+23
+2.795
+33
+1.64318975552969
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+3.0
+30
+1.5
+11
+3.0
+21
+2.795
+31
+1.64318975552969
+12
+3.0
+22
+2.795
+32
+1.5
+13
+3.0
+23
+2.795
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.205
+20
+4.11920172793637e-16
+30
+1.64318975552968
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.37306724264545e-16
+30
+2.5477299185099
+11
+0.88313913639479
+21
+2.68116213853163e-16
+31
+2.11686086360521
+12
+1.5
+22
+0.0
+32
+1.5
+13
+1.5
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+0.205
+30
+2.3525
+11
+2.99999999999999
+21
+4.71844785465692e-16
+31
+2.1475
+12
+3.0
+22
+0.205
+32
+1.85400833333334
+13
+3.0
+23
+0.205
+33
+1.85400833333334
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.64318975552969
+20
+2.25211131595965e-17
+30
+0.205
+11
+1.5
+21
+0.0
+31
+0.205
+12
+1.5
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+0.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.679903474903479
+20
+3.11213701008545e-16
+30
+1.97490347490348
+11
+0.205
+21
+4.11920172793637e-16
+31
+1.64318975552968
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.8525
+20
+0.0
+30
+0.8525
+11
+0.205
+21
+3.79326200080262e-18
+31
+1.295
+12
+0.75
+22
+1.38777878078145e-17
+32
+0.75
+13
+0.75
+23
+1.38777878078145e-17
+33
+0.75
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.205
+20
+3.79326200080262e-18
+30
+1.295
+11
+0.8525
+21
+0.0
+31
+0.8525
+12
+0.205
+22
+0.0
+32
+1.5
+13
+0.205
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.97490347490348
+20
+7.46935760775808e-17
+30
+0.679903474903477
+11
+1.5
+21
+0.0
+31
+1.5
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+0.0
+30
+1.5
+11
+1.97490347490348
+21
+7.46935760775808e-17
+31
+0.679903474903477
+12
+2.11686086360521
+22
+9.70208606166603e-17
+32
+0.883139136394791
+13
+2.11686086360521
+23
+9.70208606166603e-17
+33
+0.883139136394791
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.795
+20
+1.79190321753102e-16
+30
+2.35249999999999
+11
+2.795
+21
+2.03679665726025e-16
+31
+1.85400833333335
+12
+2.99999999999999
+22
+4.71844785465692e-16
+32
+2.1475
+13
+2.99999999999999
+23
+4.71844785465692e-16
+33
+2.1475
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+0.0
+30
+1.5
+11
+2.11686086360521
+21
+9.70208606166603e-17
+31
+0.883139136394791
+12
+2.54772991850989
+22
+1.64788632875096e-16
+32
+1.5
+13
+2.54772991850989
+23
+1.64788632875096e-16
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.795
+20
+2.03679665726025e-16
+30
+1.85400833333335
+11
+2.1475
+21
+0.0
+31
+2.1475
+12
+2.64941740918437
+22
+1.80782203615711e-16
+32
+1.64558259081563
+13
+2.64941740918437
+23
+1.80782203615711e-16
+33
+1.64558259081563
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+2.795
+21
+2.03679665726025e-16
+31
+1.85400833333335
+12
+2.795
+22
+1.79190321753102e-16
+32
+2.35249999999999
+13
+2.795
+23
+1.79190321753102e-16
+33
+2.35249999999999
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.1475
+20
+0.0
+30
+2.1475
+11
+2.795
+21
+1.79190321753102e-16
+31
+2.35249999999999
+12
+2.57375
+22
+1.17961196366424e-16
+32
+2.57375
+13
+2.57375
+23
+1.17961196366424e-16
+33
+2.57375
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.14749999999999
+20
+0.0
+30
+3.0
+11
+1.85400833333332
+21
+6.2236879303386e-17
+31
+2.795
+12
+2.3525
+22
+5.67320709797468e-17
+32
+2.795
+13
+2.3525
+23
+5.67320709797468e-17
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+3.0
+12
+0.74
+22
+1.5
+32
+3.0
+13
+0.74
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.743659607729131
+20
+1.57449302665047
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+3.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.13191690534993
+20
+1.0777666229051
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+3.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.98213889596437
+20
+2.08748794455568
+30
+3.0
+11
+2.01224742103046
+21
+2.26663244222472
+31
+3.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+3.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.01224742103046
+20
+2.26663244222472
+30
+3.0
+11
+1.98213889596437
+21
+2.08748794455568
+31
+3.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+3.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.01224742103046
+20
+2.26663244222472
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+2.11686086360521
+22
+2.11686086360521
+32
+3.0
+13
+2.11686086360521
+23
+2.11686086360521
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.03740115370178
+20
+2.03740115370178
+30
+3.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.9222333770949
+20
+2.13191690534993
+30
+3.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+3.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+3.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.25634039227087
+20
+1.57449302665047
+30
+3.0
+11
+2.41991861092296
+21
+1.68298318869529
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.41991861092296
+20
+1.68298318869529
+30
+3.0
+11
+2.25634039227087
+21
+1.57449302665047
+31
+3.0
+12
+2.26
+22
+1.5
+32
+3.0
+13
+2.26
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.41991861092296
+20
+1.68298318869529
+30
+3.0
+11
+2.26
+21
+1.5
+31
+3.0
+12
+2.54772991850989
+22
+1.5
+32
+3.0
+13
+2.54772991850989
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.22727465515648
+20
+1.72061635471339
+30
+3.0
+11
+2.31262043788199
+21
+1.83659840643228
+31
+3.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+3.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.31262043788199
+20
+1.83659840643228
+30
+3.0
+11
+2.22727465515648
+21
+1.72061635471339
+31
+3.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+3.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.31262043788199
+20
+1.83659840643228
+30
+3.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+3.0
+12
+2.41991861092296
+22
+1.68298318869529
+32
+3.0
+13
+2.41991861092296
+23
+1.68298318869529
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.64826864473226
+20
+2.24539681310645
+30
+3.0
+11
+1.5
+21
+2.26
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+2.26
+30
+3.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+3.0
+12
+1.57449302665047
+22
+2.25634039227087
+32
+3.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.82973983909525
+20
+1.85826151998776
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+3.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.754603186893545
+20
+1.64826864473226
+30
+3.0
+11
+0.439339828220179
+21
+1.93933982822018
+31
+3.0
+12
+0.248866021560526
+22
+1.74886602156053
+32
+3.0
+13
+0.248866021560526
+23
+1.74886602156053
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.439339828220179
+20
+1.93933982822018
+30
+3.0
+11
+0.754603186893545
+21
+1.64826864473226
+31
+3.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+3.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.439339828220179
+20
+1.93933982822018
+30
+3.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+3.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+3.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.14173848001224
+20
+0.82973983909525
+30
+3.0
+11
+1.5
+21
+1.5
+31
+3.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+3.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+1.5
+30
+3.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+3.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+3.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.295
+20
+2.39623136148263e-17
+30
+0.205
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.5
+22
+0.0
+32
+0.205
+13
+1.5
+23
+0.0
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.883139136394789
+20
+0.883139136394789
+30
+3.0
+11
+0.868083094650066
+21
+1.0777666229051
+31
+3.0
+12
+0.733367557775275
+22
+0.987752578969537
+32
+3.0
+13
+0.733367557775275
+23
+0.987752578969537
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.868083094650066
+20
+1.0777666229051
+30
+3.0
+11
+0.883139136394789
+21
+0.883139136394789
+31
+3.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+3.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.91251205544432
+20
+1.01786110403563
+30
+3.0
+11
+0.883139136394789
+21
+0.883139136394789
+31
+3.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+3.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.9222333770949
+20
+0.868083094650066
+30
+3.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+3.0
+12
+1.5
+22
+1.5
+32
+3.0
+13
+1.5
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.03740115370178
+20
+0.962598846298224
+30
+3.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+3.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+3.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.962598846298224
+20
+2.03740115370178
+30
+3.0
+11
+0.899184275534744
+21
+2.39918427553474
+31
+3.0
+12
+0.75
+22
+2.25
+32
+3.0
+13
+0.75
+23
+2.25
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.899184275534744
+20
+2.39918427553474
+30
+3.0
+11
+0.962598846298224
+21
+2.03740115370178
+31
+3.0
+12
+1.01786110403563
+22
+2.08748794455568
+32
+3.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.899184275534744
+20
+2.39918427553474
+30
+3.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+3.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+3.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.14749999999999
+20
+0.0
+30
+3.0
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+1.85400833333332
+22
+6.2236879303386e-17
+32
+2.795
+13
+1.85400833333332
+23
+6.2236879303386e-17
+33
+2.795
+70
+2
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.205
+20
+4.11920172793637e-16
+30
+1.64318975552968
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.205
+21
+4.11920172793637e-16
+31
+1.64318975552968
+12
+0.679903474903479
+22
+3.11213701008545e-16
+32
+1.97490347490348
+13
+0.679903474903479
+23
+3.11213701008545e-16
+33
+1.97490347490348
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.679903474903479
+21
+3.11213701008545e-16
+31
+1.97490347490348
+12
+0.88313913639479
+22
+2.68116213853163e-16
+32
+2.11686086360521
+13
+0.88313913639479
+23
+2.68116213853163e-16
+33
+2.11686086360521
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.88313913639479
+21
+2.68116213853163e-16
+31
+2.11686086360521
+12
+1.5
+22
+1.37306724264545e-16
+32
+2.5477299185099
+13
+1.5
+23
+1.37306724264545e-16
+33
+2.5477299185099
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.5
+21
+1.37306724264545e-16
+31
+2.5477299185099
+12
+1.64558259081562
+22
+1.06434958002245e-16
+32
+2.64941740918438
+13
+1.64558259081562
+23
+1.06434958002245e-16
+33
+2.64941740918438
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.64558259081562
+21
+1.06434958002245e-16
+31
+2.64941740918438
+12
+1.85400833333332
+22
+6.2236879303386e-17
+32
+2.795
+13
+1.85400833333332
+23
+6.2236879303386e-17
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.85400833333332
+21
+6.2236879303386e-17
+31
+2.795
+12
+2.1106623891929
+22
+0.0257305779793383
+32
+3.0
+13
+2.1106623891929
+23
+0.0257305779793383
+33
+3.0
+70
+15
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+2.1106623891929
+21
+0.0257305779793383
+31
+3.0
+12
+1.74203407868223
+22
+0.283212517800531
+32
+3.0
+13
+1.74203407868223
+23
+0.283212517800531
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.74203407868223
+21
+0.283212517800531
+31
+3.0
+12
+1.5
+22
+0.452270081490099
+32
+3.0
+13
+1.5
+23
+0.452270081490099
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.5
+21
+0.452270081490099
+31
+3.0
+12
+1.31701681130471
+22
+0.580081389077034
+32
+3.0
+13
+1.31701681130471
+23
+0.580081389077034
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.31701681130471
+21
+0.580081389077034
+31
+3.0
+12
+1.16340159356772
+22
+0.687379562118006
+32
+3.0
+13
+1.16340159356772
+23
+0.687379562118006
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.16340159356772
+21
+0.687379562118006
+31
+3.0
+12
+1.02269438387197
+22
+0.78566166435019
+32
+3.0
+13
+1.02269438387197
+23
+0.78566166435019
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+1.02269438387197
+21
+0.78566166435019
+31
+3.0
+12
+0.883139136394789
+22
+0.883139136394789
+32
+3.0
+13
+0.883139136394789
+23
+0.883139136394789
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.883139136394789
+21
+0.883139136394789
+31
+3.0
+12
+0.733367557775275
+22
+0.987752578969537
+32
+3.0
+13
+0.733367557775275
+23
+0.987752578969537
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.733367557775275
+21
+0.987752578969537
+31
+3.0
+12
+0.558389724096057
+22
+1.10997225325071
+32
+3.0
+13
+0.558389724096057
+23
+1.10997225325071
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+0.0
+20
+1.5
+30
+3.0
+11
+0.558389724096057
+21
+1.10997225325071
+31
+3.0
+12
+0.332481491301358
+22
+1.26776612947518
+32
+3.0
+13
+0.332481491301358
+23
+1.26776612947518
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.14599166666666
+30
+2.795
+11
+2.97426942202063
+21
+0.889337610807109
+31
+3.0
+12
+2.99999999999999
+22
+0.852499999999996
+32
+3.0
+13
+2.99999999999999
+23
+0.852499999999996
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.97426942202063
+20
+0.889337610807109
+30
+3.0
+11
+3.0
+21
+1.14599166666666
+31
+2.795
+12
+2.71678748219945
+22
+1.25796592131777
+32
+3.0
+13
+2.71678748219945
+23
+1.25796592131777
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.71678748219945
+20
+1.25796592131777
+30
+3.0
+11
+3.0
+21
+1.14599166666666
+31
+2.795
+12
+3.0
+22
+1.5
+32
+2.54772991850989
+13
+3.0
+23
+1.5
+33
+2.54772991850989
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.71678748219945
+20
+1.25796592131777
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.54772991850989
+12
+2.54772991850989
+22
+1.5
+32
+3.0
+13
+2.54772991850989
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.54772991850989
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.5
+31
+2.54772991850989
+12
+3.0
+22
+2.11686086360521
+32
+2.11686086360521
+13
+3.0
+23
+2.11686086360521
+33
+2.11686086360521
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.54772991850989
+20
+1.5
+30
+3.0
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+2.41991861092296
+22
+1.68298318869529
+32
+3.0
+13
+2.41991861092296
+23
+1.68298318869529
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.41991861092296
+20
+1.68298318869529
+30
+3.0
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+2.31262043788199
+22
+1.83659840643228
+32
+3.0
+13
+2.31262043788199
+23
+1.83659840643228
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.31262043788199
+20
+1.83659840643228
+30
+3.0
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+2.2143383356498
+22
+1.97730561612803
+32
+3.0
+13
+2.2143383356498
+23
+1.97730561612803
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.2143383356498
+20
+1.97730561612803
+30
+3.0
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+2.11686086360521
+22
+2.11686086360521
+32
+3.0
+13
+2.11686086360521
+23
+2.11686086360521
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.11686086360521
+20
+2.11686086360521
+30
+3.0
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+2.01224742103046
+22
+2.26663244222472
+32
+3.0
+13
+2.01224742103046
+23
+2.26663244222472
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.01224742103046
+20
+2.26663244222472
+30
+3.0
+11
+3.0
+21
+2.11686086360521
+31
+2.11686086360521
+12
+3.0
+22
+2.795
+32
+1.64318975552969
+13
+3.0
+23
+2.795
+33
+1.64318975552969
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.01224742103046
+20
+2.26663244222472
+30
+3.0
+11
+3.0
+21
+2.795
+31
+1.64318975552969
+12
+1.89002774674928
+22
+2.44161027590394
+32
+3.0
+13
+1.89002774674928
+23
+2.44161027590394
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.89002774674928
+20
+2.44161027590394
+30
+3.0
+11
+3.0
+21
+2.795
+31
+1.64318975552969
+12
+1.73223387052482
+22
+2.66751850869864
+32
+3.0
+13
+1.73223387052482
+23
+2.66751850869864
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.73223387052482
+20
+2.66751850869864
+30
+3.0
+11
+3.0
+21
+2.795
+31
+1.64318975552969
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+3.0
+21
+2.795
+31
+1.64318975552969
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.295
+20
+2.39623136148263e-17
+30
+0.205
+11
+3.0
+21
+1.5
+31
+0.0
+12
+1.5
+22
+5.55111512312578e-17
+32
+0.0
+13
+1.5
+23
+5.55111512312578e-17
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.5
+30
+0.0
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+3.0
+22
+1.705
+32
+0.205
+13
+3.0
+23
+1.705
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.705
+30
+0.205
+11
+1.295
+21
+2.39623136148263e-17
+31
+0.205
+12
+0.75
+22
+1.38777878078145e-17
+32
+0.75
+13
+0.75
+23
+1.38777878078145e-17
+33
+0.75
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+1.705
+30
+0.205
+11
+0.75
+21
+1.38777878078145e-17
+31
+0.75
+12
+3.0
+22
+2.25
+32
+0.75
+13
+3.0
+23
+2.25
+33
+0.75
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.25
+30
+0.75
+11
+0.75
+21
+1.38777878078145e-17
+31
+0.75
+12
+0.205
+22
+3.79326200080262e-18
+32
+1.295
+13
+0.205
+23
+3.79326200080262e-18
+33
+1.295
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.25
+30
+0.75
+11
+0.205
+21
+3.79326200080262e-18
+31
+1.295
+12
+3.0
+22
+2.795
+32
+1.295
+13
+3.0
+23
+2.795
+33
+1.295
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.795
+30
+1.295
+11
+0.205
+21
+3.79326200080262e-18
+31
+1.295
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+2.795
+30
+1.295
+11
+0.0
+21
+0.0
+31
+1.5
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+3.0
+30
+1.5
+11
+0.0
+21
+0.0
+31
+1.5
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+3.0
+30
+1.5
+11
+0.0
+21
+1.5
+31
+3.0
+12
+1.5
+22
+3.0
+32
+3.0
+13
+1.5
+23
+3.0
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.0
+21
+1.5
+31
+3.0
+12
+0.248866021560526
+22
+1.74886602156053
+32
+3.0
+13
+0.248866021560526
+23
+1.74886602156053
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.248866021560526
+21
+1.74886602156053
+31
+3.0
+12
+0.439339828220179
+22
+1.93933982822018
+32
+3.0
+13
+0.439339828220179
+23
+1.93933982822018
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.439339828220179
+21
+1.93933982822018
+31
+3.0
+12
+0.600815724465256
+22
+2.10081572446526
+32
+3.0
+13
+0.600815724465256
+23
+2.10081572446526
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.600815724465256
+21
+2.10081572446526
+31
+3.0
+12
+0.75
+22
+2.25
+32
+3.0
+13
+0.75
+23
+2.25
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.75
+21
+2.25
+31
+3.0
+12
+0.899184275534744
+22
+2.39918427553474
+32
+3.0
+13
+0.899184275534744
+23
+2.39918427553474
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.899184275534744
+21
+2.39918427553474
+31
+3.0
+12
+1.06066017177982
+22
+2.56066017177982
+32
+3.0
+13
+1.06066017177982
+23
+2.56066017177982
+33
+3.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.06066017177982
+21
+2.56066017177982
+31
+3.0
+12
+1.25113397843947
+22
+2.75113397843947
+32
+3.0
+13
+1.25113397843947
+23
+2.75113397843947
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.97490347490348
+21
+7.46935760775808e-17
+31
+0.679903474903477
+12
+1.64318975552969
+22
+2.25211131595965e-17
+32
+0.205
+13
+1.64318975552969
+23
+2.25211131595965e-17
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.97490347490348
+20
+7.46935760775808e-17
+30
+0.679903474903477
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+1.97490347490348
+20
+7.46935760775808e-17
+30
+0.679903474903477
+11
+3.0
+21
+1.5
+31
+0.0
+12
+2.11686086360521
+22
+9.70208606166603e-17
+32
+0.883139136394791
+13
+2.11686086360521
+23
+9.70208606166603e-17
+33
+0.883139136394791
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.11686086360521
+20
+9.70208606166603e-17
+30
+0.883139136394791
+11
+3.0
+21
+1.5
+31
+0.0
+12
+2.54772991850989
+22
+1.64788632875096e-16
+32
+1.5
+13
+2.54772991850989
+23
+1.64788632875096e-16
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.54772991850989
+20
+1.64788632875096e-16
+30
+1.5
+11
+3.0
+21
+1.5
+31
+0.0
+12
+2.64941740918437
+22
+1.80782203615711e-16
+32
+1.64558259081563
+13
+2.64941740918437
+23
+1.80782203615711e-16
+33
+1.64558259081563
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.64941740918437
+20
+1.80782203615711e-16
+30
+1.64558259081563
+11
+3.0
+21
+1.5
+31
+0.0
+12
+2.795
+22
+2.03679665726025e-16
+32
+1.85400833333335
+13
+2.795
+23
+2.03679665726025e-16
+33
+1.85400833333335
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.795
+20
+2.03679665726025e-16
+30
+1.85400833333335
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+0.205
+32
+1.85400833333334
+13
+3.0
+23
+0.205
+33
+1.85400833333334
+70
+15
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.795
+20
+2.03679665726025e-16
+30
+1.85400833333335
+11
+3.0
+21
+0.205
+31
+1.85400833333334
+12
+2.99999999999999
+22
+4.71844785465692e-16
+32
+2.1475
+13
+2.99999999999999
+23
+4.71844785465692e-16
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+0.205
+30
+1.85400833333334
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+0.883139136394791
+32
+0.883139136394791
+13
+3.0
+23
+0.883139136394791
+33
+0.883139136394791
+70
+15
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+0.205
+30
+1.85400833333334
+11
+3.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+3.0
+22
+0.452270081490106
+32
+1.5
+13
+3.0
+23
+0.452270081490106
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+3.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.35681024447031
+32
+0.205
+13
+3.0
+23
+1.35681024447031
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.3525
+20
+5.67320709797468e-17
+30
+2.795
+11
+2.36016784552609
+21
+0.212667845526093
+31
+3.0
+12
+2.14749999999999
+22
+0.0
+32
+3.0
+13
+2.14749999999999
+23
+0.0
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+2.3525
+21
+5.67320709797468e-17
+31
+2.795
+12
+2.57375
+22
+1.17961196366424e-16
+32
+2.57375
+13
+2.57375
+23
+1.17961196366424e-16
+33
+2.57375
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+2.57375
+21
+1.17961196366424e-16
+31
+2.57375
+12
+2.795
+22
+1.79190321753102e-16
+32
+2.35249999999999
+13
+2.795
+23
+1.79190321753102e-16
+33
+2.35249999999999
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+2.795
+21
+1.79190321753102e-16
+31
+2.35249999999999
+12
+2.99999999999999
+22
+4.71844785465692e-16
+32
+2.1475
+13
+2.99999999999999
+23
+4.71844785465692e-16
+33
+2.1475
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+2.99999999999999
+21
+4.71844785465692e-16
+31
+2.1475
+12
+3.0
+22
+0.205
+32
+2.3525
+13
+3.0
+23
+0.205
+33
+2.3525
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+3.0
+21
+0.205
+31
+2.3525
+12
+3.0
+22
+0.426249999999999
+32
+2.57375
+13
+3.0
+23
+0.426249999999999
+33
+2.57375
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.36016784552609
+20
+0.212667845526093
+30
+3.0
+11
+3.0
+21
+0.426249999999999
+31
+2.57375
+12
+2.57375
+22
+0.426250000000001
+32
+3.0
+13
+2.57375
+23
+0.426250000000001
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.57375
+20
+0.426250000000001
+30
+3.0
+11
+3.0
+21
+0.426249999999999
+31
+2.57375
+12
+2.99999999999999
+22
+0.647499999999997
+32
+2.795
+13
+2.99999999999999
+23
+0.647499999999997
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.57375
+20
+0.426250000000001
+30
+3.0
+11
+2.99999999999999
+21
+0.647499999999997
+31
+2.795
+12
+2.7873321544739
+22
+0.639832154473909
+32
+3.0
+13
+2.7873321544739
+23
+0.639832154473909
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_a
+10
+2.7873321544739
+20
+0.639832154473909
+30
+3.0
+11
+2.99999999999999
+21
+0.647499999999997
+31
+2.795
+12
+2.99999999999999
+22
+0.852499999999996
+32
+3.0
+13
+2.99999999999999
+23
+0.852499999999996
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.14599166666667
+20
+3.0
+30
+0.205
+11
+0.889337610807103
+21
+2.97426942202065
+31
+2.73746865475011e-16
+12
+0.8525
+22
+3.0
+32
+3.33066907387547e-16
+13
+0.8525
+23
+3.0
+33
+3.33066907387547e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.889337610807103
+20
+2.97426942202065
+30
+2.73746865475011e-16
+11
+1.14599166666667
+21
+3.0
+31
+0.205
+12
+1.25796592131777
+22
+2.71678748219946
+32
+2.35631881739726e-16
+13
+1.25796592131777
+23
+2.71678748219946
+33
+2.35631881739726e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.25796592131777
+20
+2.71678748219946
+30
+2.35631881739726e-16
+11
+1.14599166666667
+21
+3.0
+31
+0.205
+12
+1.35441740918437
+22
+3.0
+32
+0.350582590815627
+13
+1.35441740918437
+23
+3.0
+33
+0.350582590815627
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.25796592131777
+20
+2.71678748219946
+30
+2.35631881739726e-16
+11
+1.35441740918437
+21
+3.0
+31
+0.350582590815627
+12
+1.5
+22
+2.54772991850989
+32
+2.10606335113701e-16
+13
+1.5
+23
+2.54772991850989
+33
+2.10606335113701e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+2.54772991850989
+30
+2.10606335113701e-16
+11
+1.35441740918437
+21
+3.0
+31
+0.350582590815627
+12
+1.5
+22
+3.0
+32
+0.452270081490105
+13
+1.5
+23
+3.0
+33
+0.452270081490105
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+2.54772991850989
+30
+2.10606335113701e-16
+11
+1.5
+21
+3.0
+31
+0.452270081490105
+12
+2.11686086360521
+22
+3.0
+32
+0.883139136394791
+13
+2.11686086360521
+23
+3.0
+33
+0.883139136394791
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+2.54772991850989
+30
+2.10606335113701e-16
+11
+2.11686086360521
+21
+3.0
+31
+0.883139136394791
+12
+1.68298318869529
+22
+2.41991861092296
+32
+1.91686460914973e-16
+13
+1.68298318869529
+23
+2.41991861092296
+33
+1.91686460914973e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.68298318869529
+20
+2.41991861092296
+30
+1.91686460914973e-16
+11
+2.11686086360521
+21
+3.0
+31
+0.883139136394791
+12
+1.83659840643228
+22
+2.31262043788199
+32
+1.75803140620266e-16
+13
+1.83659840643228
+23
+2.31262043788199
+33
+1.75803140620266e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.83659840643228
+20
+2.31262043788199
+30
+1.75803140620266e-16
+11
+2.11686086360521
+21
+3.0
+31
+0.883139136394791
+12
+1.97730561612803
+22
+2.2143383356498
+32
+1.61254466912702e-16
+13
+1.97730561612803
+23
+2.2143383356498
+33
+1.61254466912702e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.97730561612803
+20
+2.2143383356498
+30
+1.61254466912702e-16
+11
+2.11686086360521
+21
+3.0
+31
+0.883139136394791
+12
+2.11686086360521
+22
+2.11686086360521
+32
+1.46824902399879e-16
+13
+2.11686086360521
+23
+2.11686086360521
+33
+1.46824902399879e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.11686086360521
+20
+2.11686086360521
+30
+1.46824902399879e-16
+11
+2.11686086360521
+21
+3.0
+31
+0.883139136394791
+12
+2.26663244222472
+22
+2.01224742103046
+32
+1.31339002048974e-16
+13
+2.26663244222472
+23
+2.01224742103046
+33
+1.31339002048974e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.26663244222472
+20
+2.01224742103046
+30
+1.31339002048974e-16
+11
+2.11686086360521
+21
+3.0
+31
+0.883139136394791
+12
+2.32009652509653
+22
+3.0
+32
+1.02509652509653
+13
+2.32009652509653
+23
+3.0
+33
+1.02509652509653
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.26663244222472
+20
+2.01224742103046
+30
+1.31339002048974e-16
+11
+2.32009652509653
+21
+3.0
+31
+1.02509652509653
+12
+2.44161027590394
+22
+1.89002774674928
+32
+1.13246855855755e-16
+13
+2.44161027590394
+23
+1.89002774674928
+33
+1.13246855855755e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.44161027590394
+20
+1.89002774674928
+30
+1.13246855855755e-16
+11
+2.32009652509653
+21
+3.0
+31
+1.02509652509653
+12
+2.795
+22
+3.0
+32
+1.35681024447031
+13
+2.795
+23
+3.0
+33
+1.35681024447031
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.44161027590394
+20
+1.89002774674928
+30
+1.13246855855755e-16
+11
+2.795
+21
+3.0
+31
+1.35681024447031
+12
+2.66751850869864
+22
+1.73223387052481
+32
+8.98886699185201e-17
+13
+2.66751850869864
+23
+1.73223387052481
+33
+8.98886699185201e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.66751850869864
+20
+1.73223387052481
+30
+8.98886699185201e-17
+11
+2.795
+21
+3.0
+31
+1.35681024447031
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+3.0
+20
+1.5
+30
+0.0
+11
+2.795
+21
+3.0
+31
+1.35681024447031
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.57449302665047
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.74886602156053
+22
+0.248866021560525
+32
+-1.29693882069326e-16
+13
+1.74886602156053
+23
+0.248866021560525
+33
+-1.29693882069326e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+1.57449302665047
+21
+0.743659607729131
+31
+0.0
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+1.5
+11
+2.11686086360521
+21
+3.0
+31
+0.883139136394791
+12
+1.5
+22
+3.0
+32
+0.452270081490105
+13
+1.5
+23
+3.0
+33
+0.452270081490105
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.72061635471339
+22
+0.772725344843521
+32
+0.0
+13
+1.72061635471339
+23
+0.772725344843521
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+1.02509652509652
+21
+3.0
+31
+2.32009652509652
+12
+1.35681024447031
+22
+3.0
+32
+2.795
+13
+1.35681024447031
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.883139136394791
+20
+3.0
+30
+2.11686086360521
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+0.883139136394791
+21
+3.0
+31
+2.11686086360521
+12
+1.02509652509652
+22
+3.0
+32
+2.32009652509652
+13
+1.02509652509652
+23
+3.0
+33
+2.32009652509652
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.68298318869529
+20
+2.41991861092296
+30
+1.91686460914973e-16
+11
+1.5
+21
+2.26
+31
+0.0
+12
+1.5
+22
+2.54772991850989
+32
+2.10606335113701e-16
+13
+1.5
+23
+2.54772991850989
+33
+2.10606335113701e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+2.26
+30
+0.0
+11
+1.68298318869529
+21
+2.41991861092296
+31
+1.91686460914973e-16
+12
+1.57449302665047
+22
+2.25634039227087
+32
+0.0
+13
+1.57449302665047
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.68298318869529
+21
+2.41991861092296
+31
+1.91686460914973e-16
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.212667845526092
+20
+2.36016784552609
+30
+1.10903230691784e-16
+11
+0.0257305779793495
+21
+2.1106623891929
+31
+5.17022605499795e-17
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0257305779793495
+20
+2.1106623891929
+30
+5.17022605499795e-17
+11
+0.212667845526092
+21
+2.36016784552609
+31
+1.10903230691784e-16
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.212667845526092
+21
+2.36016784552609
+31
+1.10903230691784e-16
+12
+0.82973983909525
+22
+1.85826151998776
+32
+0.0
+13
+0.82973983909525
+23
+1.85826151998776
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+0.0
+11
+0.212667845526092
+21
+2.36016784552609
+31
+1.10903230691784e-16
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.74
+20
+1.5
+30
+0.0
+11
+0.580081389077038
+21
+1.31701681130471
+31
+-3.03581440100583e-17
+12
+0.452270081490105
+22
+1.5
+32
+-1.14382698113301e-17
+13
+0.452270081490105
+23
+1.5
+33
+-1.14382698113301e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.580081389077038
+20
+1.31701681130471
+30
+-3.03581440100583e-17
+11
+0.74
+21
+1.5
+31
+0.0
+12
+0.743659607729131
+22
+1.42550697334953
+32
+0.0
+13
+0.743659607729131
+23
+1.42550697334953
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.580081389077038
+20
+1.31701681130471
+30
+-3.03581440100583e-17
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+2.08748794455568
+22
+1.98213889596437
+32
+0.0
+13
+2.08748794455568
+23
+1.98213889596437
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.72061635471339
+20
+0.772725344843521
+30
+0.0
+11
+1.74886602156053
+21
+0.248866021560525
+31
+-1.29693882069326e-16
+12
+1.64826864473226
+22
+0.754603186893545
+32
+0.0
+13
+1.64826864473226
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+1.72061635471339
+21
+0.772725344843521
+31
+0.0
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.74886602156053
+20
+0.248866021560525
+30
+-1.29693882069326e-16
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.93933982822018
+22
+0.439339828220178
+32
+-1.0149809463712e-16
+13
+1.93933982822018
+23
+0.439339828220178
+33
+-1.0149809463712e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.17026016090475
+20
+1.14173848001224
+30
+0.0
+11
+2.39918427553474
+21
+0.899184275534743
+31
+-3.34274422164983e-17
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.39918427553474
+20
+0.899184275534743
+30
+-3.34274422164983e-17
+11
+2.17026016090475
+21
+1.14173848001224
+31
+0.0
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.39918427553474
+20
+0.899184275534743
+30
+-3.34274422164983e-17
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+2.56066017177982
+22
+1.06066017177982
+32
+-9.52420782539579e-18
+13
+2.56066017177982
+23
+1.06066017177982
+33
+-9.52420782539579e-18
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.25634039227087
+20
+1.42550697334953
+30
+0.0
+11
+2.75113397843947
+21
+1.25113397843947
+31
+1.86715796068105e-17
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.75113397843947
+20
+1.25113397843947
+30
+1.86715796068105e-17
+11
+2.25634039227087
+21
+1.42550697334953
+31
+0.0
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.75113397843947
+20
+1.25113397843947
+30
+1.86715796068105e-17
+11
+2.26
+21
+1.5
+31
+0.0
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.42625
+20
+2.57375
+30
+1.66533453693774e-16
+11
+0.868083094650066
+21
+1.9222333770949
+31
+0.0
+12
+0.212667845526092
+22
+2.36016784552609
+32
+1.10903230691784e-16
+13
+0.212667845526092
+23
+2.36016784552609
+33
+1.10903230691784e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.868083094650066
+20
+1.9222333770949
+30
+0.0
+11
+0.42625
+21
+2.57375
+31
+1.66533453693774e-16
+12
+0.91251205544432
+22
+1.98213889596437
+32
+0.0
+13
+0.91251205544432
+23
+1.98213889596437
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+0.0
+11
+0.42625
+21
+2.57375
+31
+1.66533453693774e-16
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.1475
+30
+0.0
+11
+0.0
+21
+1.85400833333333
+31
+0.205
+12
+0.0
+22
+2.1475
+32
+0.205
+13
+0.0
+23
+2.1475
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+2.22727465515648
+22
+1.27938364528661
+32
+0.0
+13
+2.22727465515648
+23
+1.27938364528661
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.14173848001224
+21
+2.17026016090475
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+2.08748794455568
+22
+1.01786110403563
+32
+0.0
+13
+2.08748794455568
+23
+1.01786110403563
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.03740115370178
+20
+0.962598846298224
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+1.98213889596437
+22
+0.91251205544432
+32
+0.0
+13
+1.98213889596437
+23
+0.91251205544432
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.91251205544432
+20
+1.98213889596437
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.91251205544432
+21
+1.98213889596437
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.772725344843521
+20
+1.72061635471339
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.350582590815627
+20
+3.0
+30
+1.35441740918437
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.8525
+22
+3.0
+32
+0.8525
+13
+0.8525
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+1.5
+11
+0.350582590815627
+21
+3.0
+31
+1.35441740918437
+12
+0.452270081490105
+22
+3.0
+32
+1.5
+13
+0.452270081490105
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.772725344843521
+21
+1.27938364528661
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.772725344843521
+20
+1.27938364528661
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.64826864473226
+20
+2.24539681310645
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.64826864473226
+21
+2.24539681310645
+31
+0.0
+12
+1.72061635471339
+22
+2.22727465515648
+32
+0.0
+13
+1.72061635471339
+23
+2.22727465515648
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+2.795
+11
+2.25
+21
+3.0
+31
+2.25
+12
+2.1475
+22
+3.0
+32
+2.1475
+13
+2.1475
+23
+3.0
+33
+2.1475
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.25
+20
+3.0
+30
+2.25
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.705
+22
+3.0
+32
+2.795
+13
+1.705
+23
+3.0
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.6475
+20
+3.0
+30
+0.205
+11
+1.35441740918437
+21
+3.0
+31
+0.350582590815627
+12
+1.14599166666667
+22
+3.0
+32
+0.205
+13
+1.14599166666667
+23
+3.0
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.35441740918437
+20
+3.0
+30
+0.350582590815627
+11
+0.6475
+21
+3.0
+31
+0.205
+12
+0.42625
+22
+3.0
+32
+0.42625
+13
+0.42625
+23
+3.0
+33
+0.42625
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.35441740918437
+20
+3.0
+30
+0.350582590815627
+11
+0.42625
+21
+3.0
+31
+0.42625
+12
+0.8525
+22
+3.0
+32
+0.8525
+13
+0.8525
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+2.795
+21
+3.0
+31
+1.5
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+1.5
+11
+2.32009652509653
+21
+3.0
+31
+1.02509652509653
+12
+2.11686086360521
+22
+3.0
+32
+0.883139136394791
+13
+2.11686086360521
+23
+3.0
+33
+0.883139136394791
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.32009652509653
+20
+3.0
+30
+1.02509652509653
+11
+1.5
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+2.03740115370178
+21
+2.03740115370178
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.03740115370178
+20
+2.03740115370178
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.98213889596437
+22
+2.08748794455568
+32
+0.0
+13
+1.98213889596437
+23
+2.08748794455568
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.64826864473226
+20
+0.754603186893545
+30
+0.0
+11
+1.5
+21
+0.74
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+0.74
+30
+0.0
+11
+1.64826864473226
+21
+0.754603186893545
+31
+0.0
+12
+1.57449302665047
+22
+0.743659607729131
+32
+0.0
+13
+1.57449302665047
+23
+0.743659607729131
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.205
+20
+3.0
+30
+0.6475
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+0.42625
+22
+3.0
+32
+0.42625
+13
+0.42625
+23
+3.0
+33
+0.42625
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.8525
+20
+3.0
+30
+0.8525
+11
+0.205
+21
+3.0
+31
+0.6475
+12
+0.205
+22
+3.0
+32
+1.14599166666667
+13
+0.205
+23
+3.0
+33
+1.14599166666667
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.8525
+20
+3.0
+30
+0.8525
+11
+0.205
+21
+3.0
+31
+1.14599166666667
+12
+0.350582590815627
+22
+3.0
+32
+1.35441740918437
+13
+0.350582590815627
+23
+3.0
+33
+1.35441740918437
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.42550697334953
+20
+0.743659607729131
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.1475
+20
+3.0
+30
+2.1475
+11
+2.795
+21
+3.0
+31
+1.705
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.795
+20
+3.0
+30
+1.705
+11
+2.1475
+21
+3.0
+31
+2.1475
+12
+2.25
+22
+3.0
+32
+2.25
+13
+2.25
+23
+3.0
+33
+2.25
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.795
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+1.35681024447031
+12
+2.32009652509653
+22
+3.0
+32
+1.02509652509653
+13
+2.32009652509653
+23
+3.0
+33
+1.02509652509653
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.14173848001224
+21
+0.82973983909525
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.14173848001224
+20
+0.82973983909525
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.8525
+20
+3.0
+30
+0.8525
+11
+1.5
+21
+3.0
+31
+0.452270081490105
+12
+1.35441740918437
+22
+3.0
+32
+0.350582590815627
+13
+1.35441740918437
+23
+3.0
+33
+0.350582590815627
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+0.452270081490105
+11
+0.8525
+21
+3.0
+31
+0.8525
+12
+1.5
+22
+3.0
+32
+1.5
+13
+1.5
+23
+3.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.962598846298224
+22
+2.03740115370178
+32
+0.0
+13
+0.962598846298224
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.01786110403563
+21
+2.08748794455568
+31
+0.0
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.883139136394791
+20
+3.0
+30
+2.11686086360521
+11
+1.5
+21
+3.0
+31
+1.5
+12
+0.452270081490105
+22
+3.0
+32
+1.5
+13
+0.452270081490105
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.205
+20
+3.0
+30
+1.14599166666667
+11
+0.205
+21
+3.0
+31
+0.6475
+12
+0.0
+22
+3.0
+32
+0.8525
+13
+0.0
+23
+3.0
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.42550697334953
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.743659607729131
+20
+1.42550697334953
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.754603186893545
+22
+1.35173135526774
+32
+0.0
+13
+0.754603186893545
+23
+1.35173135526774
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.27938364528661
+21
+2.22727465515648
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+0.452270081490105
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.79083940859747
+20
+2.20214844470858
+30
+0.0
+11
+1.9222333770949
+21
+2.13191690534993
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.9222333770949
+20
+2.13191690534993
+30
+0.0
+11
+1.79083940859747
+21
+2.20214844470858
+31
+0.0
+12
+1.85826151998776
+22
+2.17026016090475
+32
+0.0
+13
+1.85826151998776
+23
+2.17026016090475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.205
+30
+1.35681024447031
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+0.0
+21
+0.205
+31
+1.35681024447031
+12
+1.26776612947519
+22
+0.332481491301359
+32
+-1.32155935006511e-16
+13
+1.26776612947519
+23
+0.332481491301359
+33
+-1.32155935006511e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.26776612947519
+20
+0.332481491301359
+30
+-1.32155935006511e-16
+11
+0.0
+21
+0.205
+31
+1.35681024447031
+12
+0.0
+22
+0.883139136394791
+32
+0.883139136394791
+13
+0.0
+23
+0.883139136394791
+33
+0.883139136394791
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.26776612947519
+20
+0.332481491301359
+30
+-1.32155935006511e-16
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+1.10997225325072
+22
+0.558389724096058
+32
+-1.08797749069277e-16
+13
+1.10997225325072
+23
+0.558389724096058
+33
+-1.08797749069277e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.10997225325072
+20
+0.558389724096058
+30
+-1.08797749069277e-16
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+0.987752578969539
+22
+0.733367557775276
+32
+-9.07056028760568e-17
+13
+0.987752578969539
+23
+0.733367557775276
+33
+-9.07056028760568e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.987752578969539
+20
+0.733367557775276
+30
+-9.07056028760568e-17
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+0.883139136394791
+22
+0.883139136394791
+32
+-7.52197025251519e-17
+13
+0.883139136394791
+23
+0.883139136394791
+33
+-7.52197025251519e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.883139136394791
+20
+0.883139136394791
+30
+-7.52197025251519e-17
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+0.785661664350193
+22
+1.02269438387197
+32
+-6.07901380123296e-17
+13
+0.785661664350193
+23
+1.02269438387197
+33
+-6.07901380123296e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.785661664350193
+20
+1.02269438387197
+30
+-6.07901380123296e-17
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+0.0
+22
+1.5
+32
+0.452270081490105
+13
+0.0
+23
+1.5
+33
+0.452270081490105
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.785661664350193
+20
+1.02269438387197
+30
+-6.07901380123296e-17
+11
+0.0
+21
+1.5
+31
+0.452270081490105
+12
+0.687379562118009
+22
+1.16340159356772
+32
+-4.6241464304765e-17
+13
+0.687379562118009
+23
+1.16340159356772
+33
+-4.6241464304765e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.687379562118009
+20
+1.16340159356772
+30
+-4.6241464304765e-17
+11
+0.0
+21
+1.5
+31
+0.452270081490105
+12
+0.580081389077038
+22
+1.31701681130471
+32
+-3.03581440100583e-17
+13
+0.580081389077038
+23
+1.31701681130471
+33
+-3.03581440100583e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.580081389077038
+20
+1.31701681130471
+30
+-3.03581440100583e-17
+11
+0.0
+21
+1.5
+31
+0.452270081490105
+12
+0.452270081490105
+22
+1.5
+32
+-1.14382698113301e-17
+13
+0.452270081490105
+23
+1.5
+33
+-1.14382698113301e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.452270081490105
+20
+1.5
+30
+-1.14382698113301e-17
+11
+0.0
+21
+1.5
+31
+0.452270081490105
+12
+0.0
+22
+1.85400833333333
+32
+0.205
+13
+0.0
+23
+1.85400833333333
+33
+0.205
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.452270081490105
+20
+1.5
+30
+-1.14382698113301e-17
+11
+0.0
+21
+1.85400833333333
+31
+0.205
+12
+0.283212517800539
+22
+1.74203407868223
+32
+1.35872768146951e-17
+13
+0.283212517800539
+23
+1.74203407868223
+33
+1.35872768146951e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.283212517800539
+20
+1.74203407868223
+30
+1.35872768146951e-17
+11
+0.0
+21
+1.85400833333333
+31
+0.205
+12
+0.0257305779793495
+22
+2.1106623891929
+32
+5.17022605499795e-17
+13
+0.0257305779793495
+23
+2.1106623891929
+33
+5.17022605499795e-17
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0257305779793495
+20
+2.1106623891929
+30
+5.17022605499795e-17
+11
+0.0
+21
+1.85400833333333
+31
+0.205
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.83659840643228
+20
+2.31262043788199
+30
+1.75803140620266e-16
+11
+1.85826151998776
+21
+2.17026016090475
+31
+0.0
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+1.83659840643228
+21
+2.31262043788199
+31
+1.75803140620266e-16
+12
+1.97730561612803
+22
+2.2143383356498
+32
+1.61254466912702e-16
+13
+1.97730561612803
+23
+2.2143383356498
+33
+1.61254466912702e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.85826151998776
+20
+2.17026016090475
+30
+0.0
+11
+1.97730561612803
+21
+2.2143383356498
+31
+1.61254466912702e-16
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.98213889596437
+20
+0.91251205544432
+30
+0.0
+11
+2.10081572446526
+21
+0.600815724465256
+31
+-7.75948602460171e-17
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.10081572446526
+20
+0.600815724465256
+30
+-7.75948602460171e-17
+11
+1.98213889596437
+21
+0.91251205544432
+31
+0.0
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.10081572446526
+20
+0.600815724465256
+30
+-7.75948602460171e-17
+11
+2.03740115370178
+21
+0.962598846298224
+31
+0.0
+12
+2.25
+22
+0.75
+32
+-5.55111512312576e-17
+13
+2.25
+23
+0.75
+33
+-5.55111512312576e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.08748794455568
+20
+1.01786110403563
+30
+0.0
+11
+2.25
+21
+0.75
+31
+-5.55111512312576e-17
+12
+2.03740115370178
+22
+0.962598846298224
+32
+0.0
+13
+2.03740115370178
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.25
+20
+0.75
+30
+-5.55111512312576e-17
+11
+2.08748794455568
+21
+1.01786110403563
+31
+0.0
+12
+2.13191690534993
+22
+1.0777666229051
+32
+0.0
+13
+2.13191690534993
+23
+1.0777666229051
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.25
+20
+0.75
+30
+-5.55111512312576e-17
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+2.39918427553474
+22
+0.899184275534743
+32
+-3.34274422164983e-17
+13
+2.39918427553474
+23
+0.899184275534743
+33
+-3.34274422164983e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.26663244222472
+20
+2.01224742103046
+30
+1.31339002048974e-16
+11
+2.17026016090475
+21
+1.85826151998776
+31
+0.0
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.17026016090475
+20
+1.85826151998776
+30
+0.0
+11
+2.26663244222472
+21
+2.01224742103046
+31
+1.31339002048974e-16
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.26663244222472
+21
+2.01224742103046
+31
+1.31339002048974e-16
+12
+2.44161027590394
+22
+1.89002774674928
+32
+1.13246855855755e-16
+13
+2.44161027590394
+23
+1.89002774674928
+33
+1.13246855855755e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.44161027590394
+20
+1.89002774674928
+30
+1.13246855855755e-16
+11
+2.22727465515648
+21
+1.72061635471339
+31
+0.0
+12
+2.20214844470858
+22
+1.79083940859747
+32
+0.0
+13
+2.20214844470858
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.22727465515648
+20
+1.72061635471339
+30
+0.0
+11
+2.44161027590394
+21
+1.89002774674928
+31
+1.13246855855755e-16
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+2.44161027590394
+21
+1.89002774674928
+31
+1.13246855855755e-16
+12
+2.66751850869864
+22
+1.73223387052481
+32
+8.98886699185201e-17
+13
+2.66751850869864
+23
+1.73223387052481
+33
+8.98886699185201e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.868083094650066
+20
+1.0777666229051
+30
+0.0
+11
+0.883139136394791
+21
+0.883139136394791
+31
+-7.52197025251519e-17
+12
+0.785661664350193
+22
+1.02269438387197
+32
+-6.07901380123296e-17
+13
+0.785661664350193
+23
+1.02269438387197
+33
+-6.07901380123296e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.883139136394791
+20
+0.883139136394791
+30
+-7.52197025251519e-17
+11
+0.868083094650066
+21
+1.0777666229051
+31
+0.0
+12
+0.91251205544432
+22
+1.01786110403563
+32
+0.0
+13
+0.91251205544432
+23
+1.01786110403563
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.883139136394791
+20
+0.883139136394791
+30
+-7.52197025251519e-17
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.962598846298224
+20
+0.962598846298224
+30
+0.0
+11
+0.987752578969539
+21
+0.733367557775276
+31
+-9.07056028760568e-17
+12
+0.883139136394791
+22
+0.883139136394791
+32
+-7.52197025251519e-17
+13
+0.883139136394791
+23
+0.883139136394791
+33
+-7.52197025251519e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.987752578969539
+20
+0.733367557775276
+30
+-9.07056028760568e-17
+11
+0.962598846298224
+21
+0.962598846298224
+31
+0.0
+12
+1.01786110403563
+22
+0.91251205544432
+32
+0.0
+13
+1.01786110403563
+23
+0.91251205544432
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.987752578969539
+20
+0.733367557775276
+30
+-9.07056028760568e-17
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+2.54772991850989
+30
+2.10606335113701e-16
+11
+1.35173135526774
+21
+2.24539681310645
+31
+0.0
+12
+1.25796592131777
+22
+2.71678748219946
+32
+2.35631881739726e-16
+13
+1.25796592131777
+23
+2.71678748219946
+33
+2.35631881739726e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.35173135526774
+20
+2.24539681310645
+30
+0.0
+11
+1.5
+21
+2.54772991850989
+31
+2.10606335113701e-16
+12
+1.42550697334953
+22
+2.25634039227087
+32
+0.0
+13
+1.42550697334953
+23
+2.25634039227087
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+2.54772991850989
+31
+2.10606335113701e-16
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.0777666229051
+20
+0.868083094650066
+30
+0.0
+11
+1.10997225325072
+21
+0.558389724096058
+31
+-1.08797749069277e-16
+12
+0.987752578969539
+22
+0.733367557775276
+32
+-9.07056028760568e-17
+13
+0.987752578969539
+23
+0.733367557775276
+33
+-9.07056028760568e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.10997225325072
+20
+0.558389724096058
+30
+-1.08797749069277e-16
+11
+1.0777666229051
+21
+0.868083094650066
+31
+0.0
+12
+1.14173848001224
+22
+0.82973983909525
+32
+0.0
+13
+1.14173848001224
+23
+0.82973983909525
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.10997225325072
+20
+0.558389724096058
+30
+-1.08797749069277e-16
+11
+1.14173848001224
+21
+0.82973983909525
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.66751850869864
+20
+1.73223387052481
+30
+8.98886699185201e-17
+11
+2.25634039227087
+21
+1.57449302665047
+31
+0.0
+12
+2.24539681310645
+22
+1.64826864473226
+32
+0.0
+13
+2.24539681310645
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.25634039227087
+20
+1.57449302665047
+30
+0.0
+11
+2.66751850869864
+21
+1.73223387052481
+31
+8.98886699185201e-17
+12
+2.26
+22
+1.5
+32
+0.0
+13
+2.26
+23
+1.5
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.66751850869864
+21
+1.73223387052481
+31
+8.98886699185201e-17
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+2.25634039227087
+22
+1.57449302665047
+32
+0.0
+13
+2.25634039227087
+23
+1.57449302665047
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.85826151998776
+20
+0.82973983909525
+30
+0.0
+11
+1.93933982822018
+21
+0.439339828220178
+31
+-1.0149809463712e-16
+12
+1.79083940859747
+22
+0.797851555291422
+32
+0.0
+13
+1.79083940859747
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.93933982822018
+20
+0.439339828220178
+30
+-1.0149809463712e-16
+11
+1.85826151998776
+21
+0.82973983909525
+31
+0.0
+12
+1.9222333770949
+22
+0.868083094650066
+32
+0.0
+13
+1.9222333770949
+23
+0.868083094650066
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.93933982822018
+20
+0.439339828220178
+30
+-1.0149809463712e-16
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+2.10081572446526
+22
+0.600815724465256
+32
+-7.75948602460171e-17
+13
+2.10081572446526
+23
+0.600815724465256
+33
+-7.75948602460171e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.68298318869529
+20
+2.41991861092296
+30
+1.91686460914973e-16
+11
+1.72061635471339
+21
+2.22727465515648
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.68298318869529
+21
+2.41991861092296
+31
+1.91686460914973e-16
+12
+1.83659840643228
+22
+2.31262043788199
+32
+1.75803140620266e-16
+13
+1.83659840643228
+23
+2.31262043788199
+33
+1.75803140620266e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.72061635471339
+20
+2.22727465515648
+30
+0.0
+11
+1.83659840643228
+21
+2.31262043788199
+31
+1.75803140620266e-16
+12
+1.79083940859747
+22
+2.20214844470858
+32
+0.0
+13
+1.79083940859747
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.9222333770949
+20
+0.868083094650066
+30
+0.0
+11
+1.79083940859747
+21
+0.797851555291422
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.79083940859747
+20
+0.797851555291422
+30
+0.0
+11
+1.9222333770949
+21
+0.868083094650066
+31
+0.0
+12
+1.85826151998776
+22
+0.82973983909525
+32
+0.0
+13
+1.85826151998776
+23
+0.82973983909525
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.743659607729131
+20
+1.57449302665047
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.35173135526774
+20
+0.754603186893545
+30
+0.0
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.26776612947519
+22
+0.332481491301359
+32
+-1.32155935006511e-16
+13
+1.26776612947519
+23
+0.332481491301359
+33
+-1.32155935006511e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.35173135526774
+21
+0.754603186893545
+31
+0.0
+12
+1.42550697334953
+22
+0.743659607729131
+32
+0.0
+13
+1.42550697334953
+23
+0.743659607729131
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+1.42550697334953
+21
+0.743659607729131
+31
+0.0
+12
+1.5
+22
+0.74
+32
+0.0
+13
+1.5
+23
+0.74
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+5.55111512312578e-17
+30
+0.0
+11
+0.0
+21
+0.205
+31
+1.705
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.205
+30
+1.705
+11
+1.5
+21
+5.55111512312578e-17
+31
+0.0
+12
+1.74886602156053
+22
+0.248866021560525
+32
+-1.29693882069326e-16
+13
+1.74886602156053
+23
+0.248866021560525
+33
+-1.29693882069326e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.205
+30
+1.705
+11
+1.74886602156053
+21
+0.248866021560525
+31
+-1.29693882069326e-16
+12
+0.0
+22
+0.75
+32
+2.25
+13
+0.0
+23
+0.75
+33
+2.25
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.75
+30
+2.25
+11
+1.74886602156053
+21
+0.248866021560525
+31
+-1.29693882069326e-16
+12
+1.93933982822018
+22
+0.439339828220178
+32
+-1.0149809463712e-16
+13
+1.93933982822018
+23
+0.439339828220178
+33
+-1.0149809463712e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.75
+30
+2.25
+11
+1.93933982822018
+21
+0.439339828220178
+31
+-1.0149809463712e-16
+12
+2.10081572446526
+22
+0.600815724465256
+32
+-7.75948602460171e-17
+13
+2.10081572446526
+23
+0.600815724465256
+33
+-7.75948602460171e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.75
+30
+2.25
+11
+2.10081572446526
+21
+0.600815724465256
+31
+-7.75948602460171e-17
+12
+2.25
+22
+0.75
+32
+-5.55111512312576e-17
+13
+2.25
+23
+0.75
+33
+-5.55111512312576e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.75
+30
+2.25
+11
+2.25
+21
+0.75
+31
+-5.55111512312576e-17
+12
+2.39918427553474
+22
+0.899184275534743
+32
+-3.34274422164983e-17
+13
+2.39918427553474
+23
+0.899184275534743
+33
+-3.34274422164983e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.75
+30
+2.25
+11
+2.39918427553474
+21
+0.899184275534743
+31
+-3.34274422164983e-17
+12
+0.0
+22
+1.295
+32
+2.795
+13
+0.0
+23
+1.295
+33
+2.795
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.295
+30
+2.795
+11
+2.39918427553474
+21
+0.899184275534743
+31
+-3.34274422164983e-17
+12
+2.56066017177982
+22
+1.06066017177982
+32
+-9.52420782539579e-18
+13
+2.56066017177982
+23
+1.06066017177982
+33
+-9.52420782539579e-18
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.295
+30
+2.795
+11
+2.56066017177982
+21
+1.06066017177982
+31
+-9.52420782539579e-18
+12
+2.75113397843947
+22
+1.25113397843947
+32
+1.86715796068105e-17
+13
+2.75113397843947
+23
+1.25113397843947
+33
+1.86715796068105e-17
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.295
+30
+2.795
+11
+2.75113397843947
+21
+1.25113397843947
+31
+1.86715796068105e-17
+12
+3.0
+22
+1.5
+32
+0.0
+13
+3.0
+23
+1.5
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.295
+30
+2.795
+11
+3.0
+21
+1.5
+31
+0.0
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+1.5
+31
+0.0
+12
+3.0
+22
+3.0
+32
+1.5
+13
+3.0
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+3.0
+11
+3.0
+21
+3.0
+31
+1.5
+12
+1.705
+22
+3.0
+32
+2.795
+13
+1.705
+23
+3.0
+33
+2.795
+70
+15
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.705
+20
+3.0
+30
+2.795
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.25
+22
+3.0
+32
+2.25
+13
+2.25
+23
+3.0
+33
+2.25
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.25
+20
+3.0
+30
+2.25
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.705
+13
+2.795
+23
+3.0
+33
+1.705
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.0
+21
+1.5
+31
+3.0
+12
+1.705
+22
+3.0
+32
+2.795
+13
+1.705
+23
+3.0
+33
+2.795
+70
+2
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+3.0
+11
+0.0
+21
+1.64318975552969
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.64318975552969
+30
+2.795
+11
+1.5
+21
+3.0
+31
+3.0
+12
+0.0
+22
+2.11686086360521
+32
+2.11686086360521
+13
+0.0
+23
+2.11686086360521
+33
+2.11686086360521
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.11686086360521
+30
+2.11686086360521
+11
+1.5
+21
+3.0
+31
+3.0
+12
+0.0
+22
+2.5477299185099
+32
+1.5
+13
+0.0
+23
+2.5477299185099
+33
+1.5
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.5477299185099
+30
+1.5
+11
+1.5
+21
+3.0
+31
+3.0
+12
+0.0
+22
+2.795
+32
+1.14599166666667
+13
+0.0
+23
+2.795
+33
+1.14599166666667
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.795
+30
+1.14599166666667
+11
+1.5
+21
+3.0
+31
+3.0
+12
+1.35681024447031
+22
+3.0
+32
+2.795
+13
+1.35681024447031
+23
+3.0
+33
+2.795
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.35681024447031
+20
+3.0
+30
+2.795
+11
+0.0
+21
+3.0
+31
+0.8525
+12
+0.0
+22
+2.795
+32
+1.14599166666667
+13
+0.0
+23
+2.795
+33
+1.14599166666667
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+1.35681024447031
+21
+3.0
+31
+2.795
+12
+1.02509652509652
+22
+3.0
+32
+2.32009652509652
+13
+1.02509652509652
+23
+3.0
+33
+2.32009652509652
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+1.02509652509652
+21
+3.0
+31
+2.32009652509652
+12
+0.883139136394791
+22
+3.0
+32
+2.11686086360521
+13
+0.883139136394791
+23
+3.0
+33
+2.11686086360521
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+0.883139136394791
+21
+3.0
+31
+2.11686086360521
+12
+0.452270081490105
+22
+3.0
+32
+1.5
+13
+0.452270081490105
+23
+3.0
+33
+1.5
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+0.452270081490105
+21
+3.0
+31
+1.5
+12
+0.350582590815627
+22
+3.0
+32
+1.35441740918437
+13
+0.350582590815627
+23
+3.0
+33
+1.35441740918437
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+0.350582590815627
+21
+3.0
+31
+1.35441740918437
+12
+0.205
+22
+3.0
+32
+1.14599166666667
+13
+0.205
+23
+3.0
+33
+1.14599166666667
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+2.795
+11
+0.0
+21
+1.295
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.5477299185099
+30
+1.5
+11
+0.0
+21
+2.57375
+31
+0.42625
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.57375
+30
+0.42625
+11
+0.0
+21
+2.5477299185099
+31
+1.5
+12
+0.0
+22
+2.795
+32
+1.14599166666667
+13
+0.0
+23
+2.795
+33
+1.14599166666667
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.57375
+30
+0.42625
+11
+0.0
+21
+2.795
+31
+1.14599166666667
+12
+0.0
+22
+2.795
+32
+0.6475
+13
+0.0
+23
+2.795
+33
+0.6475
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.795
+30
+0.6475
+11
+0.0
+21
+2.795
+31
+1.14599166666667
+12
+0.0
+22
+2.795
+32
+0.8525
+13
+0.0
+23
+2.795
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.64318975552969
+30
+2.795
+11
+0.0
+21
+1.5
+31
+2.795
+12
+0.0
+22
+1.5
+32
+3.0
+13
+0.0
+23
+1.5
+33
+3.0
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+0.0
+21
+2.795
+31
+0.8525
+12
+0.0
+22
+2.795
+32
+1.14599166666667
+13
+0.0
+23
+2.795
+33
+1.14599166666667
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.64318975552969
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+1.64318975552969
+31
+2.795
+12
+0.0
+22
+2.11686086360521
+32
+2.11686086360521
+13
+0.0
+23
+2.11686086360521
+33
+2.11686086360521
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.57375
+30
+0.42625
+11
+0.0
+21
+1.5
+31
+0.452270081490105
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+0.452270081490105
+11
+0.0
+21
+2.57375
+31
+0.42625
+12
+0.0
+22
+1.85400833333333
+32
+0.205
+13
+0.0
+23
+1.85400833333333
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.85400833333333
+30
+0.205
+11
+0.0
+21
+2.57375
+31
+0.42625
+12
+0.0
+22
+2.1475
+32
+0.205
+13
+0.0
+23
+2.1475
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.1475
+30
+0.205
+11
+0.0
+21
+2.57375
+31
+0.42625
+12
+0.0
+22
+2.3525
+32
+0.205
+13
+0.0
+23
+2.3525
+33
+0.205
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.205
+30
+1.705
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+3.0
+30
+0.8525
+11
+0.0
+21
+2.795
+31
+0.6475
+12
+0.0
+22
+2.795
+32
+0.8525
+13
+0.0
+23
+2.795
+33
+0.8525
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.20916059140253
+20
+0.797851555291422
+30
+0.0
+11
+1.26776612947519
+21
+0.332481491301359
+31
+-1.32155935006511e-16
+12
+1.10997225325072
+22
+0.558389724096058
+32
+-1.08797749069277e-16
+13
+1.10997225325072
+23
+0.558389724096058
+33
+-1.08797749069277e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.26776612947519
+20
+0.332481491301359
+30
+-1.32155935006511e-16
+11
+1.20916059140253
+21
+0.797851555291422
+31
+0.0
+12
+1.27938364528661
+22
+0.772725344843521
+32
+0.0
+13
+1.27938364528661
+23
+0.772725344843521
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.26776612947519
+20
+0.332481491301359
+30
+-1.32155935006511e-16
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.25796592131777
+20
+2.71678748219946
+30
+2.35631881739726e-16
+11
+1.20916059140253
+21
+2.20214844470858
+31
+0.0
+12
+0.889337610807103
+22
+2.97426942202065
+32
+2.73746865475011e-16
+13
+0.889337610807103
+23
+2.97426942202065
+33
+2.73746865475011e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.20916059140253
+20
+2.20214844470858
+30
+0.0
+11
+1.25796592131777
+21
+2.71678748219946
+31
+2.35631881739726e-16
+12
+1.27938364528661
+22
+2.22727465515648
+32
+0.0
+13
+1.27938364528661
+23
+2.22727465515648
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.27938364528661
+20
+2.22727465515648
+30
+0.0
+11
+1.25796592131777
+21
+2.71678748219946
+31
+2.35631881739726e-16
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.01786110403563
+21
+0.91251205544432
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.01786110403563
+20
+0.91251205544432
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.0777666229051
+22
+0.868083094650066
+32
+0.0
+13
+1.0777666229051
+23
+0.868083094650066
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.91251205544432
+21
+1.01786110403563
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.91251205544432
+20
+1.01786110403563
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.962598846298224
+22
+0.962598846298224
+32
+0.0
+13
+0.962598846298224
+23
+0.962598846298224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.11686086360521
+20
+2.11686086360521
+30
+1.46824902399879e-16
+11
+2.08748794455568
+21
+1.98213889596437
+31
+0.0
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.08748794455568
+20
+1.98213889596437
+30
+0.0
+11
+2.11686086360521
+21
+2.11686086360521
+31
+1.46824902399879e-16
+12
+2.13191690534993
+22
+1.9222333770949
+32
+0.0
+13
+2.13191690534993
+23
+1.9222333770949
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.11686086360521
+21
+2.11686086360521
+31
+1.46824902399879e-16
+12
+2.26663244222472
+22
+2.01224742103046
+32
+1.31339002048974e-16
+13
+2.26663244222472
+23
+2.01224742103046
+33
+1.31339002048974e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.795
+20
+3.0
+30
+1.705
+11
+3.0
+21
+3.0
+31
+1.5
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.754603186893545
+20
+1.35173135526774
+30
+0.0
+11
+0.687379562118009
+21
+1.16340159356772
+31
+-4.6241464304765e-17
+12
+0.580081389077038
+22
+1.31701681130471
+32
+-3.03581440100583e-17
+13
+0.580081389077038
+23
+1.31701681130471
+33
+-3.03581440100583e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.687379562118009
+20
+1.16340159356772
+30
+-4.6241464304765e-17
+11
+0.754603186893545
+21
+1.35173135526774
+31
+0.0
+12
+0.772725344843521
+22
+1.27938364528661
+32
+0.0
+13
+0.772725344843521
+23
+1.27938364528661
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.687379562118009
+20
+1.16340159356772
+30
+-4.6241464304765e-17
+11
+0.772725344843521
+21
+1.27938364528661
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.754603186893545
+20
+1.64826864473226
+30
+0.0
+11
+0.452270081490105
+21
+1.5
+31
+-1.14382698113301e-17
+12
+0.283212517800539
+22
+1.74203407868223
+32
+1.35872768146951e-17
+13
+0.283212517800539
+23
+1.74203407868223
+33
+1.35872768146951e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.452270081490105
+20
+1.5
+30
+-1.14382698113301e-17
+11
+0.754603186893545
+21
+1.64826864473226
+31
+0.0
+12
+0.743659607729131
+22
+1.57449302665047
+32
+0.0
+13
+0.743659607729131
+23
+1.57449302665047
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.452270081490105
+20
+1.5
+30
+-1.14382698113301e-17
+11
+0.743659607729131
+21
+1.57449302665047
+31
+0.0
+12
+0.74
+22
+1.5
+32
+0.0
+13
+0.74
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.22727465515648
+20
+1.27938364528661
+30
+0.0
+11
+2.56066017177982
+21
+1.06066017177982
+31
+-9.52420782539579e-18
+12
+2.20214844470858
+22
+1.20916059140253
+32
+0.0
+13
+2.20214844470858
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.56066017177982
+20
+1.06066017177982
+30
+-9.52420782539579e-18
+11
+2.22727465515648
+21
+1.27938364528661
+31
+0.0
+12
+2.24539681310646
+22
+1.35173135526774
+32
+0.0
+13
+2.24539681310646
+23
+1.35173135526774
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.56066017177982
+20
+1.06066017177982
+30
+-9.52420782539579e-18
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+2.75113397843947
+22
+1.25113397843947
+32
+1.86715796068105e-17
+13
+2.75113397843947
+23
+1.25113397843947
+33
+1.86715796068105e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.26
+20
+1.5
+30
+0.0
+11
+2.24539681310646
+21
+1.35173135526774
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.24539681310646
+20
+1.35173135526774
+30
+0.0
+11
+2.26
+21
+1.5
+31
+0.0
+12
+2.25634039227087
+22
+1.42550697334953
+32
+0.0
+13
+2.25634039227087
+23
+1.42550697334953
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.797851555291422
+22
+1.20916059140253
+32
+0.0
+13
+0.797851555291422
+23
+1.20916059140253
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.82973983909525
+20
+1.14173848001224
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.13191690534993
+20
+1.9222333770949
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.13191690534993
+21
+1.9222333770949
+31
+0.0
+12
+2.17026016090475
+22
+1.85826151998776
+32
+0.0
+13
+2.17026016090475
+23
+1.85826151998776
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.8525
+20
+3.0
+30
+3.33066907387547e-16
+11
+1.0777666229051
+21
+2.13191690534993
+31
+0.0
+12
+0.639832154473908
+22
+2.78733215447391
+32
+2.22163676695763e-16
+13
+0.639832154473908
+23
+2.78733215447391
+33
+2.22163676695763e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.8525
+21
+3.0
+31
+3.33066907387547e-16
+12
+0.889337610807103
+22
+2.97426942202065
+32
+2.73746865475011e-16
+13
+0.889337610807103
+23
+2.97426942202065
+33
+2.73746865475011e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.0777666229051
+20
+2.13191690534993
+30
+0.0
+11
+0.889337610807103
+21
+2.97426942202065
+31
+2.73746865475011e-16
+12
+1.14173848001224
+22
+2.17026016090475
+32
+0.0
+13
+1.14173848001224
+23
+2.17026016090475
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.14173848001224
+20
+2.17026016090475
+30
+0.0
+11
+0.889337610807103
+21
+2.97426942202065
+31
+2.73746865475011e-16
+12
+1.20916059140253
+22
+2.20214844470858
+32
+0.0
+13
+1.20916059140253
+23
+2.20214844470858
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.20214844470858
+20
+1.79083940859747
+30
+0.0
+11
+2.24539681310645
+21
+1.64826864473226
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.24539681310645
+20
+1.64826864473226
+30
+0.0
+11
+2.20214844470858
+21
+1.79083940859747
+31
+0.0
+12
+2.22727465515648
+22
+1.72061635471339
+32
+0.0
+13
+2.22727465515648
+23
+1.72061635471339
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.42550697334953
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+2.24539681310645
+32
+0.0
+13
+1.35173135526774
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.42550697334953
+21
+2.25634039227087
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+3.0
+20
+3.0
+30
+1.5
+11
+2.795
+21
+3.0
+31
+1.35681024447031
+12
+2.795
+22
+3.0
+32
+1.5
+13
+2.795
+23
+3.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.212667845526092
+21
+2.36016784552609
+31
+1.10903230691784e-16
+12
+0.0
+22
+2.1475
+32
+0.0
+13
+0.0
+23
+2.1475
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.212667845526092
+20
+2.36016784552609
+30
+1.10903230691784e-16
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.42625
+22
+2.57375
+32
+1.66533453693774e-16
+13
+0.42625
+23
+2.57375
+33
+1.66533453693774e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.42625
+20
+2.57375
+30
+1.66533453693774e-16
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.639832154473908
+22
+2.78733215447391
+32
+2.22163676695763e-16
+13
+0.639832154473908
+23
+2.78733215447391
+33
+2.22163676695763e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.639832154473908
+20
+2.78733215447391
+30
+2.22163676695763e-16
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.8525
+22
+3.0
+32
+3.33066907387547e-16
+13
+0.8525
+23
+3.0
+33
+3.33066907387547e-16
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.8525
+20
+3.0
+30
+3.33066907387547e-16
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.6475
+22
+3.0
+32
+0.205
+13
+0.6475
+23
+3.0
+33
+0.205
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.6475
+20
+3.0
+30
+0.205
+11
+0.0
+21
+2.3525
+31
+0.205
+12
+0.0
+22
+2.57375
+32
+0.42625
+13
+0.0
+23
+2.57375
+33
+0.42625
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.6475
+20
+3.0
+30
+0.205
+11
+0.0
+21
+2.57375
+31
+0.42625
+12
+0.42625
+22
+3.0
+32
+0.42625
+13
+0.42625
+23
+3.0
+33
+0.42625
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.42625
+20
+3.0
+30
+0.42625
+11
+0.0
+21
+2.57375
+31
+0.42625
+12
+0.0
+22
+2.795
+32
+0.6475
+13
+0.0
+23
+2.795
+33
+0.6475
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.42625
+20
+3.0
+30
+0.42625
+11
+0.0
+21
+2.795
+31
+0.6475
+12
+0.205
+22
+3.0
+32
+0.6475
+13
+0.205
+23
+3.0
+33
+0.6475
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.205
+20
+3.0
+30
+0.6475
+11
+0.0
+21
+2.795
+31
+0.6475
+12
+0.0
+22
+3.0
+32
+0.8525
+13
+0.0
+23
+3.0
+33
+0.8525
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.27938364528661
+21
+0.772725344843521
+31
+0.0
+12
+1.20916059140253
+22
+0.797851555291422
+32
+0.0
+13
+1.20916059140253
+23
+0.797851555291422
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.27938364528661
+20
+0.772725344843521
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.35173135526774
+22
+0.754603186893545
+32
+0.0
+13
+1.35173135526774
+23
+0.754603186893545
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.82973983909525
+20
+1.85826151998776
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+0.797851555291422
+22
+1.79083940859747
+32
+0.0
+13
+0.797851555291422
+23
+1.79083940859747
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+0.82973983909525
+21
+1.85826151998776
+31
+0.0
+12
+0.868083094650066
+22
+1.9222333770949
+32
+0.0
+13
+0.868083094650066
+23
+1.9222333770949
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.797851555291422
+20
+1.79083940859747
+30
+0.0
+11
+0.283212517800539
+21
+1.74203407868223
+31
+1.35872768146951e-17
+12
+0.0257305779793495
+22
+2.1106623891929
+32
+5.17022605499795e-17
+13
+0.0257305779793495
+23
+2.1106623891929
+33
+5.17022605499795e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.283212517800539
+20
+1.74203407868223
+30
+1.35872768146951e-17
+11
+0.797851555291422
+21
+1.79083940859747
+31
+0.0
+12
+0.772725344843521
+22
+1.72061635471339
+32
+0.0
+13
+0.772725344843521
+23
+1.72061635471339
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.283212517800539
+20
+1.74203407868223
+30
+1.35872768146951e-17
+11
+0.772725344843521
+21
+1.72061635471339
+31
+0.0
+12
+0.754603186893545
+22
+1.64826864473226
+32
+0.0
+13
+0.754603186893545
+23
+1.64826864473226
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.97730561612803
+20
+2.2143383356498
+30
+1.61254466912702e-16
+11
+1.98213889596437
+21
+2.08748794455568
+31
+0.0
+12
+1.9222333770949
+22
+2.13191690534993
+32
+0.0
+13
+1.9222333770949
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+1.97730561612803
+21
+2.2143383356498
+31
+1.61254466912702e-16
+12
+2.11686086360521
+22
+2.11686086360521
+32
+1.46824902399879e-16
+13
+2.11686086360521
+23
+2.11686086360521
+33
+1.46824902399879e-16
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.98213889596437
+20
+2.08748794455568
+30
+0.0
+11
+2.11686086360521
+21
+2.11686086360521
+31
+1.46824902399879e-16
+12
+2.03740115370178
+22
+2.03740115370178
+32
+0.0
+13
+2.03740115370178
+23
+2.03740115370178
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.639832154473908
+20
+2.78733215447391
+30
+2.22163676695763e-16
+11
+0.962598846298224
+21
+2.03740115370178
+31
+0.0
+12
+0.42625
+22
+2.57375
+32
+1.66533453693774e-16
+13
+0.42625
+23
+2.57375
+33
+1.66533453693774e-16
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.962598846298224
+20
+2.03740115370178
+30
+0.0
+11
+0.639832154473908
+21
+2.78733215447391
+31
+2.22163676695763e-16
+12
+1.01786110403563
+22
+2.08748794455568
+32
+0.0
+13
+1.01786110403563
+23
+2.08748794455568
+33
+0.0
+70
+3
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.01786110403563
+20
+2.08748794455568
+30
+0.0
+11
+0.639832154473908
+21
+2.78733215447391
+31
+2.22163676695763e-16
+12
+1.0777666229051
+22
+2.13191690534993
+32
+0.0
+13
+1.0777666229051
+23
+2.13191690534993
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.6475
+20
+3.0
+30
+0.205
+11
+1.14599166666667
+21
+3.0
+31
+0.205
+12
+0.8525
+22
+3.0
+32
+3.33066907387547e-16
+13
+0.8525
+23
+3.0
+33
+3.33066907387547e-16
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.57449302665047
+20
+2.25634039227087
+30
+0.0
+11
+1.5
+21
+1.5
+31
+0.0
+12
+1.5
+22
+2.26
+32
+0.0
+13
+1.5
+23
+2.26
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+1.5
+30
+0.0
+11
+1.57449302665047
+21
+2.25634039227087
+31
+0.0
+12
+1.64826864473226
+22
+2.24539681310645
+32
+0.0
+13
+1.64826864473226
+23
+2.24539681310645
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+0.205
+31
+1.35681024447031
+12
+0.0
+22
+0.0
+32
+1.5
+13
+0.0
+23
+0.0
+33
+1.5
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.797851555291422
+20
+1.20916059140253
+30
+0.0
+11
+0.785661664350193
+21
+1.02269438387197
+31
+-6.07901380123296e-17
+12
+0.687379562118009
+22
+1.16340159356772
+32
+-4.6241464304765e-17
+13
+0.687379562118009
+23
+1.16340159356772
+33
+-4.6241464304765e-17
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.785661664350193
+20
+1.02269438387197
+30
+-6.07901380123296e-17
+11
+0.797851555291422
+21
+1.20916059140253
+31
+0.0
+12
+0.82973983909525
+22
+1.14173848001224
+32
+0.0
+13
+0.82973983909525
+23
+1.14173848001224
+33
+0.0
+70
+13
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.785661664350193
+20
+1.02269438387197
+30
+-6.07901380123296e-17
+11
+0.82973983909525
+21
+1.14173848001224
+31
+0.0
+12
+0.868083094650066
+22
+1.0777666229051
+32
+0.0
+13
+0.868083094650066
+23
+1.0777666229051
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.20214844470858
+20
+1.20916059140253
+30
+0.0
+11
+2.13191690534993
+21
+1.0777666229051
+31
+0.0
+12
+1.5
+22
+1.5
+32
+0.0
+13
+1.5
+23
+1.5
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+2.13191690534993
+20
+1.0777666229051
+30
+0.0
+11
+2.20214844470858
+21
+1.20916059140253
+31
+0.0
+12
+2.17026016090475
+22
+1.14173848001224
+32
+0.0
+13
+2.17026016090475
+23
+1.14173848001224
+33
+0.0
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.5
+21
+3.0
+31
+2.795
+12
+1.35681024447031
+22
+3.0
+32
+2.795
+13
+1.35681024447031
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.205
+30
+1.5
+11
+0.0
+21
+0.883139136394791
+31
+0.883139136394791
+12
+0.0
+22
+0.205
+32
+1.35681024447031
+13
+0.0
+23
+0.205
+33
+1.35681024447031
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.883139136394791
+30
+0.883139136394791
+11
+0.0
+21
+0.205
+31
+1.5
+12
+0.0
+22
+1.5
+32
+1.5
+13
+0.0
+23
+1.5
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+1.5
+20
+3.0
+30
+3.0
+11
+1.705
+21
+3.0
+31
+2.795
+12
+1.5
+22
+3.0
+32
+2.795
+13
+1.5
+23
+3.0
+33
+2.795
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.5477299185099
+30
+1.5
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+2.11686086360521
+32
+2.11686086360521
+13
+0.0
+23
+2.11686086360521
+33
+2.11686086360521
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+2.3525
+30
+0.205
+11
+0.0
+21
+2.1475
+31
+0.0
+12
+0.0
+22
+2.1475
+32
+0.205
+13
+0.0
+23
+2.1475
+33
+0.205
+70
+0
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+0.205
+30
+1.705
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+0.205
+32
+1.5
+13
+0.0
+23
+0.205
+33
+1.5
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+0.205
+31
+1.705
+12
+0.0
+22
+0.75
+32
+2.25
+13
+0.0
+23
+0.75
+33
+2.25
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.295
+30
+2.795
+11
+0.0
+21
+1.5
+31
+1.5
+12
+0.0
+22
+0.75
+32
+2.25
+13
+0.0
+23
+0.75
+33
+2.25
+70
+1
+ 0
+3DFACE
+ 8
+iso_base_b
+10
+0.0
+20
+1.5
+30
+1.5
+11
+0.0
+21
+1.295
+31
+2.795
+12
+0.0
+22
+1.5
+32
+2.795
+13
+0.0
+23
+1.5
+33
+2.795
+70
+1
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/hacks/glx/lament.man b/hacks/glx/lament.man
new file mode 100644
index 0000000..2077dd6
--- /dev/null
+++ b/hacks/glx/lament.man
@@ -0,0 +1,68 @@
+.TH XScreenSaver 1 "25-Jul-98" "X Version 11"
+.SH NAME
+lament - animates the Lament Configuration
+.SH SYNOPSIS
+.B lament
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
+[\-texture] [\-no\-texture] [\-wireframe]
+.SH DESCRIPTION
+The \fIlament\fP program draws an animation of a particular puzzle box
+repeatedly solving itself.
+.SH OPTIONS
+.I lament
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-texture
+Use texture maps. This is the default.
+.TP 8
+.B \-no\-texture
+Do not use texture maps. This is boring and wrong.
+.TP 8
+.B \-wireframe
+Only draw outlines.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How long to pause between frames. Default is 20000, or 0.02 second.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH BUGS
+This hack is glacially slow on machines lacking hardware texture support.
+
+Occasionally opens doors, admitting theologians of the Order of the Gash.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1998 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>, 25-Jul-98.
diff --git a/hacks/glx/lament_model.c b/hacks/glx/lament_model.c
new file mode 100644
index 0000000..d127599
--- /dev/null
+++ b/hacks/glx/lament_model.c
@@ -0,0 +1,16258 @@
+/* Generated from "lament.dxf" on Aug-25-2014.
+ Smoothed vertex normals.
+ Components: box, iso_base_a, iso_base_b, iso_den, iso_dse, iso_dwn,
+ iso_swd, iso_une, iso_unw, iso_use, iso_usw, leviathan, lid_a, lid_b,
+ lid_base, lid_c, lid_d, pillar_a, pillar_b, pillar_base, star_d,
+ star_u, taser_a, taser_b, taser_base, tetra_base, tetra_dse,
+ tetra_dwn, tetra_une, tetra_usw.
+ */
+
+#include "gllist.h"
+
+static const float lament_model_box_data[] = {
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.077767,2.131917,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,3,3,0,
+ 0.408248,0.408248,-0.816497,3,3,0,
+ 0,0.447214,-0.894427,2.502268,3,0,
+ 0,1,0,2.795,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,-0.447214,-0.894427,2.502268,0,0,
+ 0.408248,-0.408248,-0.816497,3,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0.408248,-0.408248,-0.816497,3,0,0,
+ 0.6,0,-0.8,3,0.497732,0,
+ 1,0,0,3,0.205,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,2.502268,0,
+ 0.447214,0,-0.894427,3,2.502268,0,
+ 0.408248,0.408248,-0.816497,3,3,0,
+ 1,0,0,3,2.795,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,3,0,3,
+ 0.408248,-0.408248,0.816497,3,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,-0.948683,-0.316228,2.795,0,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.502268,3,3,
+ 0.408248,0.408248,0.816497,3,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0.408248,0.408248,0.816497,3,3,3,
+ 0.447214,0,0.894427,3,2.502268,3,
+ 1,0,0,3,2.795,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,0.497732,3,
+ 0.447214,0,0.894427,3,0.497732,3,
+ 0.408248,-0.408248,0.816497,3,0,3,
+ 1,0,0,3,0.205,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,3,0.87868,3,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,3,
+ 0,0,-1,1.5,0,3,
+ 0,0,-1,2.795,0,3,
+ 0,0,-1,2.502268,0,3,
+ 0,0,-1,1.5,0,3,
+ 0,0,-1,2.502268,0,3,
+ 0,0,-1,2.12132,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.798369,0,3,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,-1,0.205,0,3,
+ 0,0,-1,0.87868,0,3,
+ 0,0,-1,0.497732,0,3,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,3,3,3,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0.447214,0.894427,1.5,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,2.502268,3,3,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,3,
+ 0,0.447214,0.894427,1.5,3,3,
+ 0,0.83205,0.5547,0.205,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0.447214,0.894427,1.5,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0.447214,0.894427,1.5,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,3,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,3,3,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0,0,
+ -1,0,0,0,3,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,3,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,3,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,0.205,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,3,0,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,3,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,3,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0,
+ 0,1,0,0,3,0.205,
+ 0,1,0,3,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.720616,2.227275,3
+};
+static const struct gllist lament_model_box_frame = { GL_N3F_V3F, GL_TRIANGLES, 1584, lament_model_box_data, 0 };
+const struct gllist *lament_model_box = &lament_model_box_frame;
+
+static const float lament_model_iso_base_a_data[] = {
+ 0,-1,0,0.883139,0,2.116861,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.883139,0,2.116861,
+ 0,-1,0,0.679903,0,1.974903,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,0.6475,2.795,
+ 1,0,0,3,0.42625,2.57375,
+ 1,0,0,3,0.6475,2.795,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,1.145992,2.795,
+ 1,0,0,3,1.145992,2.795,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,1.5,2.54773,
+ 1,0,0,3,1.705,0.205,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,1.705,0.205,
+ 1,0,0,3,2.25,0.75,
+ 0,-1,0,2.649417,0,1.645583,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.54773,0,1.5,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.649417,0,1.645583,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,1.5,0,2.54773,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,2.54773,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,1.645583,0,2.649417,
+ 0,-1,0,2.57375,0,2.57375,
+ 0,-1,0,1.645583,0,2.649417,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,1.645583,0,2.649417,
+ 0,-1,0,2.57375,0,2.57375,
+ 0,-1,0,2.3525,0,2.795,
+ 0,-1,0,1.645583,0,2.649417,
+ 0,-1,0,2.3525,0,2.795,
+ 0,-1,0,1.854008,0,2.795,
+ 0,-1,0,1.974903,0,0.679903,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.64319,0,0.205,
+ 1,0,0,3,0.45227,1.5,
+ 1,0,0,3,0.205,2.3525,
+ 1,0,0,3,0.205,1.854008,
+ 1,0,0,3,0.205,2.3525,
+ 1,0,0,3,0.45227,1.5,
+ 1,0,0,3,0.42625,2.57375,
+ 1,0,0,3,0.42625,2.57375,
+ 1,0,0,3,0.45227,1.5,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,1.145992,2.795,
+ 1,0,0,3,0.8525,3,
+ 1,0,0,3,0.6475,2.795,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,0.45227,1.5,
+ 1,0,0,3,0.883139,0.883139,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,0.883139,0.883139,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,1.5,0.205,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.5,0,1.5,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.75,0,0.75,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.890028,2.44161,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.890028,2.44161,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.890028,2.44161,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.012247,2.266632,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.214338,1.977306,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.214338,1.977306,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.214338,1.977306,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.31262,1.836598,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.732234,2.667519,3,
+ 0,0,1,1.732234,2.667519,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,1.295,
+ 0,-1,0,0.205,0,1.5,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.116861,2.116861,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.116861,2.116861,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.116861,2.116861,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.214338,1.977306,3,
+ 0,0,1,2.716787,1.257966,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.716787,1.257966,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.716787,1.257966,3,
+ 0,0,1,2.54773,1.5,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0.43934,1.93934,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.332481,1.267766,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.733368,0.987753,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.733368,0.987753,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.733368,0.987753,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,2.716787,1.257966,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.332481,1.267766,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.332481,1.267766,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.332481,1.267766,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,0,1,3,0.8525,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,1.5,0.74,3,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,1.5,0,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,2.1475,0,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.06066,2.56066,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,1,1.06066,2.56066,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.06066,2.56066,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.251134,2.751134,3,
+ 0,0,1,1.06066,2.56066,3,
+ 0,0,1,1.251134,2.751134,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.251134,2.751134,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.351731,2.245397,3,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,1.295,
+ 1,0,0,3,1.705,0.205,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,2.25,0.75,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.25,0.75,
+ 1,0,0,3,2.795,1.295,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.732234,2.667519,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.732234,2.667519,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.732234,2.667519,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.890028,2.44161,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.251134,2.751134,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.348827,2.26,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.227275,1.720616,3,
+ 1,0,0,3,2.116861,2.116861,
+ 1,0,0,3,1.5,2.54773,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.116861,2.116861,
+ 1,0,0,3,1.5,1.5,
+ 1,0,0,3,2.116861,2.116861,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,1.64319,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,2.795,1.64319,
+ 1,0,0,3,2.795,1.5,
+ 0,-1,0,0.205,0,1.64319,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,2.54773,
+ 0,-1,0,0.883139,0,2.116861,
+ 0,-1,0,1.5,0,1.5,
+ 1,0,0,3,0.205,2.3525,
+ 1,0,0,3,0,2.1475,
+ 1,0,0,3,0.205,1.854008,
+ 0,-1,0,1.64319,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,0.679903,0,1.974903,
+ 0,-1,0,0.205,0,1.64319,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,1.295,
+ 0,-1,0,0.75,0,0.75,
+ 0,-1,0,0.205,0,1.295,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.974903,0,0.679903,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.974903,0,0.679903,
+ 0,-1,0,2.116861,0,0.883139,
+ 0,-1,0,2.795,0,2.3525,
+ 0,-1,0,2.795,0,1.854008,
+ 0,-1,0,3,0,2.1475,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.116861,0,0.883139,
+ 0,-1,0,2.54773,0,1.5,
+ 0,-1,0,2.795,0,1.854008,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.649417,0,1.645583,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,1.854008,
+ 0,-1,0,2.795,0,2.3525,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,2.3525,
+ 0,-1,0,2.57375,0,2.57375,
+ 0,-1,0,2.1475,0,3,
+ 0,-1,0,1.854008,0,2.795,
+ 0,-1,0,2.3525,0,2.795,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.012247,2.266632,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.012247,2.266632,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.012247,2.266632,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.116861,2.116861,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.419919,1.682983,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.419919,1.682983,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.419919,1.682983,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.54773,1.5,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.31262,1.836598,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.31262,1.836598,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.31262,1.836598,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.419919,1.682983,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.43934,1.93934,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0.43934,1.93934,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.43934,1.93934,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.733368,0.987753,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.077767,2.131917,3,
+ -0.442836,-0.633994,0.633994,2.1475,0,3,
+ -0.442836,-0.633994,0.633994,2.110662,0.025731,3,
+ -0.442836,-0.633994,0.633994,1.854008,0,2.795,
+ -0.442836,-0.633994,0.633994,0.205,0,1.64319,
+ -0.442836,-0.633994,0.633994,0,1.5,3,
+ -0.442836,-0.633994,0.633994,0,0,1.5,
+ -0.442836,-0.633994,0.633994,0,1.5,3,
+ -0.442836,-0.633994,0.633994,0.205,0,1.64319,
+ -0.442836,-0.633994,0.633994,0.679903,0,1.974903,
+ -0.442836,-0.633994,0.633994,0,1.5,3,
+ -0.442836,-0.633994,0.633994,0.679903,0,1.974903,
+ -0.442836,-0.633994,0.633994,0.883139,0,2.116861,
+ -0.442836,-0.633994,0.633994,0,1.5,3,
+ -0.442836,-0.633994,0.633994,0.883139,0,2.116861,
+ -0.442836,-0.633994,0.633994,1.5,0,2.54773,
+ -0.442836,-0.633994,0.633994,0,1.5,3,
+ -0.442836,-0.633994,0.633994,1.5,0,2.54773,
+ -0.442836,-0.633994,0.633994,1.645583,0,2.649417,
+ -0.442836,-0.633994,0.633994,0,1.5,3,
+ -0.442836,-0.633994,0.633994,1.645583,0,2.649417,
+ -0.442836,-0.633994,0.633994,1.854008,0,2.795,
+ -0.442836,-0.633994,0.633994,0,1.5,3,
+ -0.442836,-0.633994,0.633994,1.854008,0,2.795,
+ -0.442836,-0.633994,0.633994,2.110662,0.025731,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,0,-1,0,1.5,3,
+ 0,0,-1,1.163402,0.68738,3,
+ 0,0,-1,1.022694,0.785662,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,-1,0,1.5,3,
+ 0,0,-1,0.883139,0.883139,3,
+ 0,0,-1,0.733368,0.987753,3,
+ 0,0,-1,0,1.5,3,
+ 0,0,-1,0.733368,0.987753,3,
+ 0,0,-1,0.55839,1.109972,3,
+ 0,0,-1,0,1.5,3,
+ 0,0,-1,0.55839,1.109972,3,
+ 0,0,-1,0.332481,1.267766,3,
+ 0.633994,0.442836,0.633994,3,1.145992,2.795,
+ 0.633994,0.442836,0.633994,2.974269,0.889338,3,
+ 0.633994,0.442836,0.633994,3,0.8525,3,
+ 0.633994,0.442836,0.633994,2.974269,0.889338,3,
+ 0.633994,0.442836,0.633994,3,1.145992,2.795,
+ 0.633994,0.442836,0.633994,2.716787,1.257966,3,
+ 0.633994,0.442836,0.633994,2.716787,1.257966,3,
+ 0.633994,0.442836,0.633994,3,1.145992,2.795,
+ 0.633994,0.442836,0.633994,3,1.5,2.54773,
+ 0.633994,0.442836,0.633994,2.716787,1.257966,3,
+ 0.633994,0.442836,0.633994,3,1.5,2.54773,
+ 0.633994,0.442836,0.633994,2.54773,1.5,3,
+ 0.633994,0.442836,0.633994,2.54773,1.5,3,
+ 0.633994,0.442836,0.633994,3,1.5,2.54773,
+ 0.633994,0.442836,0.633994,3,2.116861,2.116861,
+ 0.633994,0.442836,0.633994,2.54773,1.5,3,
+ 0.633994,0.442836,0.633994,3,2.116861,2.116861,
+ 0.633994,0.442836,0.633994,2.419919,1.682983,3,
+ 0.633994,0.442836,0.633994,2.419919,1.682983,3,
+ 0.633994,0.442836,0.633994,3,2.116861,2.116861,
+ 0.633994,0.442836,0.633994,2.31262,1.836598,3,
+ 0.633994,0.442836,0.633994,2.31262,1.836598,3,
+ 0.633994,0.442836,0.633994,3,2.116861,2.116861,
+ 0.633994,0.442836,0.633994,2.214338,1.977306,3,
+ 0.633994,0.442836,0.633994,2.214338,1.977306,3,
+ 0.633994,0.442836,0.633994,3,2.116861,2.116861,
+ 0.633994,0.442836,0.633994,2.116861,2.116861,3,
+ 0.633994,0.442836,0.633994,2.116861,2.116861,3,
+ 0.633994,0.442836,0.633994,3,2.116861,2.116861,
+ 0.633994,0.442836,0.633994,2.012247,2.266632,3,
+ 0.633994,0.442836,0.633994,2.012247,2.266632,3,
+ 0.633994,0.442836,0.633994,3,2.116861,2.116861,
+ 0.633994,0.442836,0.633994,3,2.795,1.64319,
+ 0.633994,0.442836,0.633994,2.012247,2.266632,3,
+ 0.633994,0.442836,0.633994,3,2.795,1.64319,
+ 0.633994,0.442836,0.633994,1.890028,2.44161,3,
+ 0.633994,0.442836,0.633994,1.890028,2.44161,3,
+ 0.633994,0.442836,0.633994,3,2.795,1.64319,
+ 0.633994,0.442836,0.633994,1.732234,2.667519,3,
+ 0.633994,0.442836,0.633994,1.732234,2.667519,3,
+ 0.633994,0.442836,0.633994,3,2.795,1.64319,
+ 0.633994,0.442836,0.633994,1.5,3,3,
+ 0.633994,0.442836,0.633994,1.5,3,3,
+ 0.633994,0.442836,0.633994,3,2.795,1.64319,
+ 0.633994,0.442836,0.633994,3,3,1.5,
+ -0.57735,0.57735,-0.57735,1.295,0,0.205,
+ -0.57735,0.57735,-0.57735,3,1.5,0,
+ -0.57735,0.57735,-0.57735,1.5,0,0,
+ -0.57735,0.57735,-0.57735,3,1.5,0,
+ -0.57735,0.57735,-0.57735,1.295,0,0.205,
+ -0.57735,0.57735,-0.57735,3,1.705,0.205,
+ -0.57735,0.57735,-0.57735,3,1.705,0.205,
+ -0.57735,0.57735,-0.57735,1.295,0,0.205,
+ -0.57735,0.57735,-0.57735,0.75,0,0.75,
+ -0.57735,0.57735,-0.57735,3,1.705,0.205,
+ -0.57735,0.57735,-0.57735,0.75,0,0.75,
+ -0.57735,0.57735,-0.57735,3,2.25,0.75,
+ -0.57735,0.57735,-0.57735,3,2.25,0.75,
+ -0.57735,0.57735,-0.57735,0.75,0,0.75,
+ -0.57735,0.57735,-0.57735,0.205,0,1.295,
+ -0.57735,0.57735,-0.57735,3,2.25,0.75,
+ -0.57735,0.57735,-0.57735,0.205,0,1.295,
+ -0.57735,0.57735,-0.57735,3,2.795,1.295,
+ -0.57735,0.57735,-0.57735,3,2.795,1.295,
+ -0.57735,0.57735,-0.57735,0.205,0,1.295,
+ -0.57735,0.57735,-0.57735,0,0,1.5,
+ -0.57735,0.57735,-0.57735,3,2.795,1.295,
+ -0.57735,0.57735,-0.57735,0,0,1.5,
+ -0.57735,0.57735,-0.57735,3,3,1.5,
+ -0.57735,0.57735,-0.57735,3,3,1.5,
+ -0.57735,0.57735,-0.57735,0,0,1.5,
+ -0.57735,0.57735,-0.57735,0,1.5,3,
+ -0.57735,0.57735,-0.57735,3,3,1.5,
+ -0.57735,0.57735,-0.57735,0,1.5,3,
+ -0.57735,0.57735,-0.57735,1.5,3,3,
+ 0,0,-1,1.5,3,3,
+ 0,0,-1,0,1.5,3,
+ 0,0,-1,0.248866,1.748866,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0.43934,1.93934,3,
+ 0,0,-1,1.5,3,3,
+ 0,0,-1,0.43934,1.93934,3,
+ 0,0,-1,0.600816,2.100816,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,-1,1.5,3,3,
+ 0,0,-1,0.899184,2.399184,3,
+ 0,0,-1,1.06066,2.56066,3,
+ 0,0,-1,1.5,3,3,
+ 0,0,-1,1.06066,2.56066,3,
+ 0,0,-1,1.251134,2.751134,3,
+ 0.012176,0.99989,-0.008505,1.5,0,0,
+ 0.012176,0.99989,-0.008505,1.974903,0,0.679903,
+ 0.012176,0.99989,-0.008505,1.64319,0,0.205,
+ 0.633994,-0.633994,-0.442836,1.974903,0,0.679903,
+ 0.633994,-0.633994,-0.442836,1.5,0,0,
+ 0.633994,-0.633994,-0.442836,3,1.5,0,
+ 0.633994,-0.633994,-0.442836,1.974903,0,0.679903,
+ 0.633994,-0.633994,-0.442836,3,1.5,0,
+ 0.633994,-0.633994,-0.442836,2.116861,0,0.883139,
+ 0.633994,-0.633994,-0.442836,2.116861,0,0.883139,
+ 0.633994,-0.633994,-0.442836,3,1.5,0,
+ 0.633994,-0.633994,-0.442836,2.54773,0,1.5,
+ 0.633994,-0.633994,-0.442836,2.54773,0,1.5,
+ 0.633994,-0.633994,-0.442836,3,1.5,0,
+ 0.633994,-0.633994,-0.442836,2.649417,0,1.645583,
+ 0.633994,-0.633994,-0.442836,2.649417,0,1.645583,
+ 0.633994,-0.633994,-0.442836,3,1.5,0,
+ 0.633994,-0.633994,-0.442836,2.795,0,1.854008,
+ 0.633994,-0.633994,-0.442836,2.795,0,1.854008,
+ 0.633994,-0.633994,-0.442836,3,1.5,0,
+ 0.633994,-0.633994,-0.442836,3,0.205,1.854008,
+ 0.633994,-0.633994,-0.442836,2.795,0,1.854008,
+ 0.633994,-0.633994,-0.442836,3,0.205,1.854008,
+ 0.633994,-0.633994,-0.442836,3,0,2.1475,
+ -1,0,0,3,0.205,1.854008,
+ -1,0,0,3,1.5,0,
+ -1,0,0,3,0.883139,0.883139,
+ -1,0,0,3,0.205,1.854008,
+ -1,0,0,3,0.883139,0.883139,
+ -1,0,0,3,0.45227,1.5,
+ -1,0,0,3,0.883139,0.883139,
+ -1,0,0,3,1.5,0,
+ -1,0,0,3,1.35681,0.205,
+ 0.57735,-0.57735,0.57735,2.3525,0,2.795,
+ 0.57735,-0.57735,0.57735,2.360168,0.212668,3,
+ 0.57735,-0.57735,0.57735,2.1475,0,3,
+ 0.57735,-0.57735,0.57735,2.360168,0.212668,3,
+ 0.57735,-0.57735,0.57735,2.3525,0,2.795,
+ 0.57735,-0.57735,0.57735,2.57375,0,2.57375,
+ 0.57735,-0.57735,0.57735,2.360168,0.212668,3,
+ 0.57735,-0.57735,0.57735,2.57375,0,2.57375,
+ 0.57735,-0.57735,0.57735,2.795,0,2.3525,
+ 0.57735,-0.57735,0.57735,2.360168,0.212668,3,
+ 0.57735,-0.57735,0.57735,2.795,0,2.3525,
+ 0.57735,-0.57735,0.57735,3,0,2.1475,
+ 0.57735,-0.57735,0.57735,2.360168,0.212668,3,
+ 0.57735,-0.57735,0.57735,3,0,2.1475,
+ 0.57735,-0.57735,0.57735,3,0.205,2.3525,
+ 0.57735,-0.57735,0.57735,2.360168,0.212668,3,
+ 0.57735,-0.57735,0.57735,3,0.205,2.3525,
+ 0.57735,-0.57735,0.57735,3,0.42625,2.57375,
+ 0.57735,-0.57735,0.57735,2.360168,0.212668,3,
+ 0.57735,-0.57735,0.57735,3,0.42625,2.57375,
+ 0.57735,-0.57735,0.57735,2.57375,0.42625,3,
+ 0.57735,-0.57735,0.57735,2.57375,0.42625,3,
+ 0.57735,-0.57735,0.57735,3,0.42625,2.57375,
+ 0.57735,-0.57735,0.57735,3,0.6475,2.795,
+ 0.57735,-0.57735,0.57735,2.57375,0.42625,3,
+ 0.57735,-0.57735,0.57735,3,0.6475,2.795,
+ 0.57735,-0.57735,0.57735,2.787332,0.639832,3,
+ 0.57735,-0.57735,0.57735,2.787332,0.639832,3,
+ 0.57735,-0.57735,0.57735,3,0.6475,2.795,
+ 0.57735,-0.57735,0.57735,3,0.8525,3
+};
+static const struct gllist lament_model_iso_base_a_frame = { GL_N3F_V3F, GL_TRIANGLES, 858, lament_model_iso_base_a_data, 0 };
+const struct gllist *lament_model_iso_base_a = &lament_model_iso_base_a_frame;
+
+static const float lament_model_iso_base_b_data[] = {
+ 0.442836,0.633994,-0.633994,1.145992,3,0.205,
+ 0.442836,0.633994,-0.633994,0.889338,2.974269,0,
+ 0.442836,0.633994,-0.633994,0.8525,3,0,
+ 0.442836,0.633994,-0.633994,0.889338,2.974269,0,
+ 0.442836,0.633994,-0.633994,1.145992,3,0.205,
+ 0.442836,0.633994,-0.633994,1.257966,2.716787,0,
+ 0.442836,0.633994,-0.633994,1.257966,2.716787,0,
+ 0.442836,0.633994,-0.633994,1.145992,3,0.205,
+ 0.442836,0.633994,-0.633994,1.354417,3,0.350583,
+ 0.442836,0.633994,-0.633994,1.257966,2.716787,0,
+ 0.442836,0.633994,-0.633994,1.354417,3,0.350583,
+ 0.442836,0.633994,-0.633994,1.5,2.54773,0,
+ 0.442836,0.633994,-0.633994,1.5,2.54773,0,
+ 0.442836,0.633994,-0.633994,1.354417,3,0.350583,
+ 0.442836,0.633994,-0.633994,1.5,3,0.45227,
+ 0.442836,0.633994,-0.633994,1.5,2.54773,0,
+ 0.442836,0.633994,-0.633994,1.5,3,0.45227,
+ 0.442836,0.633994,-0.633994,2.116861,3,0.883139,
+ 0.442836,0.633994,-0.633994,1.5,2.54773,0,
+ 0.442836,0.633994,-0.633994,2.116861,3,0.883139,
+ 0.442836,0.633994,-0.633994,1.682983,2.419919,0,
+ 0.442836,0.633994,-0.633994,1.682983,2.419919,0,
+ 0.442836,0.633994,-0.633994,2.116861,3,0.883139,
+ 0.442836,0.633994,-0.633994,1.836598,2.31262,0,
+ 0.442836,0.633994,-0.633994,1.836598,2.31262,0,
+ 0.442836,0.633994,-0.633994,2.116861,3,0.883139,
+ 0.442836,0.633994,-0.633994,1.977306,2.214338,0,
+ 0.442836,0.633994,-0.633994,1.977306,2.214338,0,
+ 0.442836,0.633994,-0.633994,2.116861,3,0.883139,
+ 0.442836,0.633994,-0.633994,2.116861,2.116861,0,
+ 0.442836,0.633994,-0.633994,2.116861,2.116861,0,
+ 0.442836,0.633994,-0.633994,2.116861,3,0.883139,
+ 0.442836,0.633994,-0.633994,2.266632,2.012247,0,
+ 0.442836,0.633994,-0.633994,2.266632,2.012247,0,
+ 0.442836,0.633994,-0.633994,2.116861,3,0.883139,
+ 0.442836,0.633994,-0.633994,2.320097,3,1.025097,
+ 0.442836,0.633994,-0.633994,2.266632,2.012247,0,
+ 0.442836,0.633994,-0.633994,2.320097,3,1.025097,
+ 0.442836,0.633994,-0.633994,2.44161,1.890028,0,
+ 0.442836,0.633994,-0.633994,2.44161,1.890028,0,
+ 0.442836,0.633994,-0.633994,2.320097,3,1.025097,
+ 0.442836,0.633994,-0.633994,2.795,3,1.35681,
+ 0.442836,0.633994,-0.633994,2.44161,1.890028,0,
+ 0.442836,0.633994,-0.633994,2.795,3,1.35681,
+ 0.442836,0.633994,-0.633994,2.667519,1.732234,0,
+ 0.442836,0.633994,-0.633994,2.667519,1.732234,0,
+ 0.442836,0.633994,-0.633994,2.795,3,1.35681,
+ 0.442836,0.633994,-0.633994,3,1.5,0,
+ 0.442836,0.633994,-0.633994,3,1.5,0,
+ 0.442836,0.633994,-0.633994,2.795,3,1.35681,
+ 0.442836,0.633994,-0.633994,3,3,1.5,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.748866,0.248866,0,
+ 0,0,-1,1.748866,0.248866,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.116861,3,0.883139,
+ 0,1,0,1.5,3,0.45227,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,1.35681,3,2.795,
+ 0,1,0,0.883139,3,2.116861,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.883139,3,2.116861,
+ 0,1,0,1.025097,3,2.320097,
+ 0,0,-1,1.682983,2.419919,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,2.54773,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.682983,2.419919,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.682983,2.419919,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,0.212668,2.360168,0,
+ 0,0,-1,0.025731,2.110662,0,
+ 0,0,-1,0,2.1475,0,
+ 0,0,-1,0.025731,2.110662,0,
+ 0,0,-1,0.212668,2.360168,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.212668,2.360168,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.212668,2.360168,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.580081,1.317017,0,
+ 0,0,-1,0.45227,1.5,0,
+ 0,0,-1,0.580081,1.317017,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.580081,1.317017,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.748866,0.248866,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.748866,0.248866,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.748866,0.248866,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.93934,0.43934,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.399184,0.899184,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.399184,0.899184,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.399184,0.899184,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.56066,1.06066,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.751134,1.251134,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.751134,1.251134,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.751134,1.251134,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.212668,2.360168,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0.962599,2.037401,0,
+ -1,0,0,0,2.1475,0,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,2.1475,0.205,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,1,0,0.350583,3,1.354417,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.350583,3,1.354417,
+ 0,1,0,0.45227,3,1.5,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.25,3,2.25,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.25,3,2.25,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.705,3,2.795,
+ 0,1,0,0.6475,3,0.205,
+ 0,1,0,1.354417,3,0.350583,
+ 0,1,0,1.145992,3,0.205,
+ 0,1,0,1.354417,3,0.350583,
+ 0,1,0,0.6475,3,0.205,
+ 0,1,0,0.42625,3,0.42625,
+ 0,1,0,1.354417,3,0.350583,
+ 0,1,0,0.42625,3,0.42625,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.320097,3,1.025097,
+ 0,1,0,2.116861,3,0.883139,
+ 0,1,0,2.320097,3,1.025097,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,1,0,0.205,3,0.6475,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.42625,3,0.42625,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,0.6475,
+ 0,1,0,0.205,3,1.145992,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,1.145992,
+ 0,1,0,0.350583,3,1.354417,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,1.705,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,1.705,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.25,3,2.25,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,1.35681,
+ 0,1,0,2.320097,3,1.025097,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,1.5,3,0.45227,
+ 0,1,0,1.354417,3,0.350583,
+ 0,1,0,1.5,3,0.45227,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,1.5,3,1.5,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,1,0,0.883139,3,2.116861,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.45227,3,1.5,
+ 0,1,0,0.205,3,1.145992,
+ 0,1,0,0.205,3,0.6475,
+ 0,1,0,0,3,0.8525,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.351731,2.245397,0,
+ -1,0,0,0,1.5,0.45227,
+ -1,0,0,0,0.883139,0.883139,
+ -1,0,0,0,1.5,1.5,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ -0.633994,-0.442836,-0.633994,0,0.205,1.35681,
+ -0.633994,-0.442836,-0.633994,1.5,0,0,
+ -0.633994,-0.442836,-0.633994,0,0,1.5,
+ -0.633994,-0.442836,-0.633994,1.5,0,0,
+ -0.633994,-0.442836,-0.633994,0,0.205,1.35681,
+ -0.633994,-0.442836,-0.633994,1.267766,0.332481,0,
+ -0.633994,-0.442836,-0.633994,1.267766,0.332481,0,
+ -0.633994,-0.442836,-0.633994,0,0.205,1.35681,
+ -0.633994,-0.442836,-0.633994,0,0.883139,0.883139,
+ -0.633994,-0.442836,-0.633994,1.267766,0.332481,0,
+ -0.633994,-0.442836,-0.633994,0,0.883139,0.883139,
+ -0.633994,-0.442836,-0.633994,1.109972,0.55839,0,
+ -0.633994,-0.442836,-0.633994,1.109972,0.55839,0,
+ -0.633994,-0.442836,-0.633994,0,0.883139,0.883139,
+ -0.633994,-0.442836,-0.633994,0.987753,0.733368,0,
+ -0.633994,-0.442836,-0.633994,0.987753,0.733368,0,
+ -0.633994,-0.442836,-0.633994,0,0.883139,0.883139,
+ -0.633994,-0.442836,-0.633994,0.883139,0.883139,0,
+ -0.633994,-0.442836,-0.633994,0.883139,0.883139,0,
+ -0.633994,-0.442836,-0.633994,0,0.883139,0.883139,
+ -0.633994,-0.442836,-0.633994,0.785662,1.022694,0,
+ -0.633994,-0.442836,-0.633994,0.785662,1.022694,0,
+ -0.633994,-0.442836,-0.633994,0,0.883139,0.883139,
+ -0.633994,-0.442836,-0.633994,0,1.5,0.45227,
+ -0.633994,-0.442836,-0.633994,0.785662,1.022694,0,
+ -0.633994,-0.442836,-0.633994,0,1.5,0.45227,
+ -0.633994,-0.442836,-0.633994,0.68738,1.163402,0,
+ -0.633994,-0.442836,-0.633994,0.68738,1.163402,0,
+ -0.633994,-0.442836,-0.633994,0,1.5,0.45227,
+ -0.633994,-0.442836,-0.633994,0.580081,1.317017,0,
+ -0.633994,-0.442836,-0.633994,0.580081,1.317017,0,
+ -0.633994,-0.442836,-0.633994,0,1.5,0.45227,
+ -0.633994,-0.442836,-0.633994,0.45227,1.5,0,
+ -0.633994,-0.442836,-0.633994,0.45227,1.5,0,
+ -0.633994,-0.442836,-0.633994,0,1.5,0.45227,
+ -0.633994,-0.442836,-0.633994,0,1.854008,0.205,
+ -0.633994,-0.442836,-0.633994,0.45227,1.5,0,
+ -0.633994,-0.442836,-0.633994,0,1.854008,0.205,
+ -0.633994,-0.442836,-0.633994,0.283213,1.742034,0,
+ -0.633994,-0.442836,-0.633994,0.283213,1.742034,0,
+ -0.633994,-0.442836,-0.633994,0,1.854008,0.205,
+ -0.633994,-0.442836,-0.633994,0.025731,2.110662,0,
+ -0.633994,-0.442836,-0.633994,0.025731,2.110662,0,
+ -0.633994,-0.442836,-0.633994,0,1.854008,0.205,
+ -0.633994,-0.442836,-0.633994,0,2.1475,0,
+ 0,0,-1,1.836598,2.31262,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.836598,2.31262,0,
+ 0,0,-1,1.977306,2.214338,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.977306,2.214338,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.100816,0.600816,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.100816,0.600816,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.100816,0.600816,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.25,0.75,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.25,0.75,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.25,0.75,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.25,0.75,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.399184,0.899184,0,
+ 0,0,-1,2.266632,2.012247,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.266632,2.012247,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.266632,2.012247,0,
+ 0,0,-1,2.44161,1.890028,0,
+ 0,0,-1,2.44161,1.890028,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.44161,1.890028,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.44161,1.890028,0,
+ 0,0,-1,2.667519,1.732234,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.987753,0.733368,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.987753,0.733368,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,0.987753,0.733368,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.5,2.54773,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.257966,2.716787,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,2.54773,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,2.54773,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.109972,0.55839,0,
+ 0,0,-1,0.987753,0.733368,0,
+ 0,0,-1,1.109972,0.55839,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.109972,0.55839,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,2.667519,1.732234,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.667519,1.732234,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.667519,1.732234,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.93934,0.43934,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.93934,0.43934,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.93934,0.43934,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.100816,0.600816,0,
+ 0,0,-1,1.682983,2.419919,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.682983,2.419919,0,
+ 0,0,-1,1.836598,2.31262,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.836598,2.31262,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.267766,0.332481,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0.74,0,
+ 0.57735,-0.57735,0.57735,1.5,0,0,
+ 0.57735,-0.57735,0.57735,0,0.205,1.705,
+ 0.57735,-0.57735,0.57735,0,0,1.5,
+ 0.57735,-0.57735,0.57735,0,0.205,1.705,
+ 0.57735,-0.57735,0.57735,1.5,0,0,
+ 0.57735,-0.57735,0.57735,1.748866,0.248866,0,
+ 0.57735,-0.57735,0.57735,0,0.205,1.705,
+ 0.57735,-0.57735,0.57735,1.748866,0.248866,0,
+ 0.57735,-0.57735,0.57735,0,0.75,2.25,
+ 0.57735,-0.57735,0.57735,0,0.75,2.25,
+ 0.57735,-0.57735,0.57735,1.748866,0.248866,0,
+ 0.57735,-0.57735,0.57735,1.93934,0.43934,0,
+ 0.57735,-0.57735,0.57735,0,0.75,2.25,
+ 0.57735,-0.57735,0.57735,1.93934,0.43934,0,
+ 0.57735,-0.57735,0.57735,2.100816,0.600816,0,
+ 0.57735,-0.57735,0.57735,0,0.75,2.25,
+ 0.57735,-0.57735,0.57735,2.100816,0.600816,0,
+ 0.57735,-0.57735,0.57735,2.25,0.75,0,
+ 0.57735,-0.57735,0.57735,0,0.75,2.25,
+ 0.57735,-0.57735,0.57735,2.25,0.75,0,
+ 0.57735,-0.57735,0.57735,2.399184,0.899184,0,
+ 0.57735,-0.57735,0.57735,0,0.75,2.25,
+ 0.57735,-0.57735,0.57735,2.399184,0.899184,0,
+ 0.57735,-0.57735,0.57735,0,1.295,2.795,
+ 0.57735,-0.57735,0.57735,0,1.295,2.795,
+ 0.57735,-0.57735,0.57735,2.399184,0.899184,0,
+ 0.57735,-0.57735,0.57735,2.56066,1.06066,0,
+ 0.57735,-0.57735,0.57735,0,1.295,2.795,
+ 0.57735,-0.57735,0.57735,2.56066,1.06066,0,
+ 0.57735,-0.57735,0.57735,2.751134,1.251134,0,
+ 0.57735,-0.57735,0.57735,0,1.295,2.795,
+ 0.57735,-0.57735,0.57735,2.751134,1.251134,0,
+ 0.57735,-0.57735,0.57735,3,1.5,0,
+ 0.57735,-0.57735,0.57735,0,1.295,2.795,
+ 0.57735,-0.57735,0.57735,3,1.5,0,
+ 0.57735,-0.57735,0.57735,0,1.5,3,
+ 0.57735,-0.57735,0.57735,0,1.5,3,
+ 0.57735,-0.57735,0.57735,3,1.5,0,
+ 0.57735,-0.57735,0.57735,3,3,1.5,
+ 0.57735,-0.57735,0.57735,0,1.5,3,
+ 0.57735,-0.57735,0.57735,3,3,1.5,
+ 0.57735,-0.57735,0.57735,1.705,3,2.795,
+ 0.627963,0.459701,0.627963,1.705,3,2.795,
+ 0.713615,0.660796,0.232598,3,3,1.5,
+ 0,1,0,2.25,3,2.25,
+ 0,1,0,2.25,3,2.25,
+ 0.713615,0.660796,0.232598,3,3,1.5,
+ 0,1,0,2.795,3,1.705,
+ 0.57735,-0.57735,0.57735,1.5,3,3,
+ 0.57735,-0.57735,0.57735,0,1.5,3,
+ 0.57735,-0.57735,0.57735,1.705,3,2.795,
+ -0.633994,0.633994,0.442836,1.5,3,3,
+ -0.633994,0.633994,0.442836,0,1.64319,2.795,
+ -0.633994,0.633994,0.442836,0,1.5,3,
+ -0.633994,0.633994,0.442836,0,1.64319,2.795,
+ -0.633994,0.633994,0.442836,1.5,3,3,
+ -0.633994,0.633994,0.442836,0,2.116861,2.116861,
+ -0.633994,0.633994,0.442836,0,2.116861,2.116861,
+ -0.633994,0.633994,0.442836,1.5,3,3,
+ -0.633994,0.633994,0.442836,0,2.54773,1.5,
+ -0.633994,0.633994,0.442836,0,2.54773,1.5,
+ -0.633994,0.633994,0.442836,1.5,3,3,
+ -0.633994,0.633994,0.442836,0,2.795,1.145992,
+ -0.633994,0.633994,0.442836,0,2.795,1.145992,
+ -0.633994,0.633994,0.442836,1.5,3,3,
+ -0.633994,0.633994,0.442836,1.35681,3,2.795,
+ -0.633994,0.633994,0.442836,1.35681,3,2.795,
+ -0.633994,0.633994,0.442836,0,3,0.8525,
+ -0.633994,0.633994,0.442836,0,2.795,1.145992,
+ 0,1,0,0,3,0.8525,
+ 0,1,0,1.35681,3,2.795,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,0,3,0.8525,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,0.883139,3,2.116861,
+ 0,1,0,0,3,0.8525,
+ 0,1,0,0.883139,3,2.116861,
+ 0,1,0,0.45227,3,1.5,
+ 0,1,0,0,3,0.8525,
+ 0,1,0,0.45227,3,1.5,
+ 0,1,0,0.350583,3,1.354417,
+ 0,-1,0,0,3,0.8525,
+ 0,-1,0,0.350583,3,1.354417,
+ 0,-1,0,0.205,3,1.145992,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,2.54773,1.5,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,2.54773,1.5,
+ -1,0,0,0,2.795,1.145992,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,2.795,1.145992,
+ -1,0,0,0,2.795,0.6475,
+ -0.836014,0.387995,-0.387995,0,2.795,0.6475,
+ -0.903879,0.350707,0.244964,0,2.795,1.145992,
+ -1,0,0,0,2.795,0.8525,
+ -1,0,0,0,1.64319,2.795,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,3,0.8525,
+ -1,0,0,0,2.795,0.8525,
+ -1,0,0,0,2.795,1.145992,
+ -1,0,0,0,1.64319,2.795,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.64319,2.795,
+ -1,0,0,0,2.116861,2.116861,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,1.5,0.45227,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.5,0.45227,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,2.1475,0.205,
+ -1,0,0,0,2.1475,0.205,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,2.3525,0.205,
+ -1,0,0,0,0.205,1.705,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,3,0.8525,
+ -1,0,0,0,2.795,0.6475,
+ -1,0,0,0,2.795,0.8525,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.267766,0.332481,0,
+ 0,0,-1,1.109972,0.55839,0,
+ 0,0,-1,1.267766,0.332481,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.267766,0.332481,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.257966,2.716787,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.889338,2.974269,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.257966,2.716787,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.257966,2.716787,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,2.266632,2.012247,0,
+ 0,1,0,2.795,3,1.705,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.68738,1.163402,0,
+ 0,0,-1,0.580081,1.317017,0,
+ 0,0,-1,0.68738,1.163402,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.68738,1.163402,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.45227,1.5,0,
+ 0,0,-1,0.283213,1.742034,0,
+ 0,0,-1,0.45227,1.5,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.45227,1.5,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.56066,1.06066,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.56066,1.06066,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.56066,1.06066,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.751134,1.251134,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,0.8525,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.639832,2.787332,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.8525,3,0,
+ 0,0,-1,0.889338,2.974269,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.889338,2.974269,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,0.889338,2.974269,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.35681,
+ 0,1,0,2.795,3,1.5,
+ -0.57735,0.57735,-0.57735,0,2.3525,0.205,
+ -0.57735,0.57735,-0.57735,0.212668,2.360168,0,
+ -0.57735,0.57735,-0.57735,0,2.1475,0,
+ -0.57735,0.57735,-0.57735,0.212668,2.360168,0,
+ -0.57735,0.57735,-0.57735,0,2.3525,0.205,
+ -0.57735,0.57735,-0.57735,0.42625,2.57375,0,
+ -0.57735,0.57735,-0.57735,0.42625,2.57375,0,
+ -0.57735,0.57735,-0.57735,0,2.3525,0.205,
+ -0.57735,0.57735,-0.57735,0.639832,2.787332,0,
+ -0.57735,0.57735,-0.57735,0.639832,2.787332,0,
+ -0.57735,0.57735,-0.57735,0,2.3525,0.205,
+ -0.57735,0.57735,-0.57735,0.8525,3,0,
+ -0.57735,0.57735,-0.57735,0.8525,3,0,
+ -0.57735,0.57735,-0.57735,0,2.3525,0.205,
+ -0.57735,0.57735,-0.57735,0.6475,3,0.205,
+ -0.57735,0.57735,-0.57735,0.6475,3,0.205,
+ -0.57735,0.57735,-0.57735,0,2.3525,0.205,
+ -0.57735,0.57735,-0.57735,0,2.57375,0.42625,
+ -0.57735,0.57735,-0.57735,0.6475,3,0.205,
+ -0.57735,0.57735,-0.57735,0,2.57375,0.42625,
+ -0.57735,0.57735,-0.57735,0.42625,3,0.42625,
+ -0.57735,0.57735,-0.57735,0.42625,3,0.42625,
+ -0.57735,0.57735,-0.57735,0,2.57375,0.42625,
+ -0.57735,0.57735,-0.57735,0,2.795,0.6475,
+ -0.57735,0.57735,-0.57735,0.42625,3,0.42625,
+ -0.57735,0.57735,-0.57735,0,2.795,0.6475,
+ -0.57735,0.57735,-0.57735,0.205,3,0.6475,
+ -0.57735,0.57735,-0.57735,0.205,3,0.6475,
+ -0.57735,0.57735,-0.57735,0,2.795,0.6475,
+ -0.57735,0.57735,-0.57735,0,3,0.8525,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.283213,1.742034,0,
+ 0,0,-1,0.025731,2.110662,0,
+ 0,0,-1,0.283213,1.742034,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.283213,1.742034,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,1.977306,2.214338,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.977306,2.214338,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,0.639832,2.787332,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.639832,2.787332,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,0.639832,2.787332,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,1,0,0.6475,3,0.205,
+ 0,1,0,1.145992,3,0.205,
+ 0,1,0,0.8525,3,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.648269,2.245397,0,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,1.35681,
+ -1,0,0,0,0,1.5,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0.68738,1.163402,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,1,0,1.5,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.35681,3,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.883139,0.883139,
+ -1,0,0,0,0.205,1.35681,
+ -1,0,0,0,0.883139,0.883139,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,1.5,1.5,
+ 0,1,0,1.5,3,3,
+ 0,1,0,1.705,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ -1,0,0,0,2.54773,1.5,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,2.116861,2.116861,
+ -1,0,0,0,2.3525,0.205,
+ -1,0,0,0,2.1475,0,
+ -1,0,0,0,2.1475,0.205,
+ -1,0,0,0,0.205,1.705,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,1.705,
+ -1,0,0,0,0.75,2.25,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.75,2.25,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,1.5,2.795
+};
+static const struct gllist lament_model_iso_base_b_frame = { GL_N3F_V3F, GL_TRIANGLES, 864, lament_model_iso_base_b_data, 0 };
+const struct gllist *lament_model_iso_base_b = &lament_model_iso_base_b_frame;
+
+static const float lament_model_iso_den_data[] = {
+ 0,1,0,1.5,3,0.45227,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,0.45227,
+ 0,1,0,2.116861,3,0.883139,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.836598,2.31262,0,
+ 0,0,-1,1.682983,2.419919,0,
+ 0,0,-1,1.836598,2.31262,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.977306,2.214338,0,
+ 0,0,-1,1.836598,2.31262,0,
+ 0,0,-1,1.977306,2.214338,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,1.977306,2.214338,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,3,3,0,
+ 0.485071,0.485071,-0.727607,3,3,0,
+ 0,0.5547,-0.83205,2.502268,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.45227,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.354417,3,0.350583,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,1.35681,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.795,3,1.35681,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.320097,3,1.025097,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.354417,3,0.350583,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.145992,3,0.205,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.44161,1.890028,0,
+ 0,0,-1,2.266632,2.012247,0,
+ 0,0,-1,2.44161,1.890028,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,3,2.12132,0,
+ 0,1,0,2.795,3,1.35681,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,1.35681,
+ 0,1,0,3,3,1.5,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.5,2.54773,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.54773,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.682983,2.419919,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,2.667519,1.732234,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.266632,2.012247,0,
+ 0,0,-1,2.116861,2.116861,0,
+ 0,0,-1,2.266632,2.012247,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,2.502268,0,
+ 0.5547,0,-0.83205,3,2.502268,0,
+ 0.485071,0.485071,-0.727607,3,3,0,
+ 1,0,0,3,2.795,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,0.889338,2.974269,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,0.889338,2.974269,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.257966,2.716787,0,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,1.705,0.205,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.705,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0,
+ 0,1,0,0.8525,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.8525,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,0.8525,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.8525,3,0,
+ 0,1,0,1.145992,3,0.205,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.257966,2.716787,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.257966,2.716787,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.54773,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.667519,1.732234,0,
+ 0,0,-1,2.44161,1.890028,0,
+ 0,0,-1,2.667519,1.732234,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,1.798369,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.25,0.75,
+ 1,0,0,3,1.705,0.205,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,3,0,
+ 0,1,0,3,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0.205,
+ 1,0,0,3,3,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,2.795,1.295,
+ 1,0,0,3,2.25,0.75,
+ 1,0,0,3,2.795,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,1.295,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.295,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,3,1.5,
+ 0,1,0,2.320097,3,1.025097,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.116861,3,0.883139,
+ 0,0,-1,0.889338,2.974269,0,
+ 0,0,-1,0.8525,3,0,
+ 0,0,-1,0.87868,3,0,
+ -0.442836,-0.633994,0.633994,0.889338,2.974269,0,
+ -0.442836,-0.633994,0.633994,1.145992,3,0.205,
+ -0.442836,-0.633994,0.633994,0.8525,3,0,
+ -0.442836,-0.633994,0.633994,1.145992,3,0.205,
+ -0.442836,-0.633994,0.633994,0.889338,2.974269,0,
+ -0.442836,-0.633994,0.633994,1.257966,2.716787,0,
+ -0.442836,-0.633994,0.633994,1.145992,3,0.205,
+ -0.442836,-0.633994,0.633994,1.257966,2.716787,0,
+ -0.442836,-0.633994,0.633994,1.354417,3,0.350583,
+ -0.442836,-0.633994,0.633994,1.354417,3,0.350583,
+ -0.442836,-0.633994,0.633994,1.257966,2.716787,0,
+ -0.442836,-0.633994,0.633994,1.5,2.54773,0,
+ -0.442836,-0.633994,0.633994,1.354417,3,0.350583,
+ -0.442836,-0.633994,0.633994,1.5,2.54773,0,
+ -0.442836,-0.633994,0.633994,1.5,3,0.45227,
+ -0.442836,-0.633994,0.633994,1.5,3,0.45227,
+ -0.442836,-0.633994,0.633994,1.5,2.54773,0,
+ -0.442836,-0.633994,0.633994,1.682983,2.419919,0,
+ -0.442836,-0.633994,0.633994,1.5,3,0.45227,
+ -0.442836,-0.633994,0.633994,1.682983,2.419919,0,
+ -0.442836,-0.633994,0.633994,2.116861,3,0.883139,
+ -0.442836,-0.633994,0.633994,2.116861,3,0.883139,
+ -0.442836,-0.633994,0.633994,1.682983,2.419919,0,
+ -0.442836,-0.633994,0.633994,1.836598,2.31262,0,
+ -0.442836,-0.633994,0.633994,2.116861,3,0.883139,
+ -0.442836,-0.633994,0.633994,1.836598,2.31262,0,
+ -0.442836,-0.633994,0.633994,1.977306,2.214338,0,
+ -0.442836,-0.633994,0.633994,2.116861,3,0.883139,
+ -0.442836,-0.633994,0.633994,1.977306,2.214338,0,
+ -0.442836,-0.633994,0.633994,2.116861,2.116861,0,
+ -0.442836,-0.633994,0.633994,2.116861,3,0.883139,
+ -0.442836,-0.633994,0.633994,2.116861,2.116861,0,
+ -0.442836,-0.633994,0.633994,2.266632,2.012247,0,
+ -0.442836,-0.633994,0.633994,2.116861,3,0.883139,
+ -0.442836,-0.633994,0.633994,2.266632,2.012247,0,
+ -0.442836,-0.633994,0.633994,2.320097,3,1.025097,
+ -0.442836,-0.633994,0.633994,2.320097,3,1.025097,
+ -0.442836,-0.633994,0.633994,2.266632,2.012247,0,
+ -0.442836,-0.633994,0.633994,2.44161,1.890028,0,
+ -0.442836,-0.633994,0.633994,2.320097,3,1.025097,
+ -0.442836,-0.633994,0.633994,2.44161,1.890028,0,
+ -0.442836,-0.633994,0.633994,2.795,3,1.35681,
+ -0.442836,-0.633994,0.633994,2.795,3,1.35681,
+ -0.442836,-0.633994,0.633994,2.44161,1.890028,0,
+ -0.442836,-0.633994,0.633994,2.667519,1.732234,0,
+ -0.442836,-0.633994,0.633994,2.795,3,1.35681,
+ -0.442836,-0.633994,0.633994,2.667519,1.732234,0,
+ -0.442836,-0.633994,0.633994,3,1.5,0,
+ -0.442836,-0.633994,0.633994,2.795,3,1.35681,
+ -0.442836,-0.633994,0.633994,3,1.5,0,
+ -0.442836,-0.633994,0.633994,3,3,1.5,
+ 0.605634,0.397847,0.689148,3,3,1.5,
+ 0.087875,-0.974602,0.205981,3,1.5,0,
+ 1,0,0,3,1.705,0.205,
+ 0.605634,0.397847,0.689148,3,3,1.5,
+ 1,0,0,3,1.705,0.205,
+ 1,0,0,3,2.25,0.75,
+ 0.605634,0.397847,0.689148,3,3,1.5,
+ 1,0,0,3,2.25,0.75,
+ 1,0,0,3,2.795,1.295
+};
+static const struct gllist lament_model_iso_den_frame = { GL_N3F_V3F, GL_TRIANGLES, 222, lament_model_iso_den_data, 0 };
+const struct gllist *lament_model_iso_den = &lament_model_iso_den_frame;
+
+static const float lament_model_iso_dse_data[] = {
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.748866,0.248866,0,
+ 0,0,-1,2.100816,0.600816,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.93934,0.43934,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,2.100816,0.600816,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.93934,0.43934,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.748866,0.248866,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.93934,0.43934,0,
+ 0,0,-1,2.12132,0,0,
+ 0,-1,0,2.649417,0,1.645583,
+ 0,-1,0,2.54773,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ -0.003005,-0.999993,0.002099,1.64319,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ -0.003005,-0.999993,0.002099,1.64319,0,0.205,
+ 0,-1,0,2.1475,0,0.8525,
+ -0.004007,-0.999988,0.002799,1.974903,0,0.679903,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.116861,0,0.883139,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.116861,0,0.883139,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.54773,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,2.795,0,0.205,
+ -0.004007,-0.999988,0.002799,1.5,0,0,
+ -0.004007,-0.999988,0.002799,1.5,0,0,
+ 0,-1,0,2.795,0,0.205,
+ -0.003005,-0.999993,0.002099,1.64319,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 1,0,0,3,0.883139,0.883139,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.883139,0.883139,
+ 1,0,0,3,0.45227,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,0,-1,2.56066,1.06066,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.399184,0.899184,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.56066,1.06066,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.25,0.75,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,2.100816,0.600816,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,2.25,0.75,0,
+ 0,0,-1,3,0,0,
+ 0,-0.5547,-0.83205,2.502268,0,0,
+ 0.485071,-0.485071,-0.727607,3,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.751134,1.251134,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,2.399184,0.899184,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.25,0.75,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.399184,0.899184,0,
+ 0,0,-1,3,0.497732,0,
+ 0.485071,-0.485071,-0.727607,3,0,0,
+ 0.707107,0,-0.707107,3,0.497732,0,
+ 1,0,0,3,0.205,0,
+ 0,0,-1,2.751134,1.251134,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.56066,1.06066,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.751134,1.251134,0,
+ 0,0,-1,3,1.201631,0,
+ -0.004007,-0.999988,0.002799,1.974903,0,0.679903,
+ -0.004007,-0.999988,0.002799,1.5,0,0,
+ -0.003005,-0.999993,0.002099,1.64319,0,0.205,
+ -0.633994,0.633994,0.442836,1.5,0,0,
+ -0.633994,0.633994,0.442836,1.974903,0,0.679903,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,1.974903,0,0.679903,
+ -0.633994,0.633994,0.442836,2.116861,0,0.883139,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,2.116861,0,0.883139,
+ -0.633994,0.633994,0.442836,2.54773,0,1.5,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,2.54773,0,1.5,
+ -0.633994,0.633994,0.442836,2.649417,0,1.645583,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,2.649417,0,1.645583,
+ -0.633994,0.633994,0.442836,2.795,0,1.854008,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,2.795,0,1.854008,
+ -0.633994,0.633994,0.442836,3,0,2.1475,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,3,0,2.1475,
+ -0.633994,0.633994,0.442836,3,0.205,1.854008,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,3,0.205,1.854008,
+ -0.633994,0.633994,0.442836,3,0.45227,1.5,
+ -0.633994,0.633994,0.442836,1.748866,0.248866,0,
+ -0.633994,0.633994,0.442836,3,0.45227,1.5,
+ -0.633994,0.633994,0.442836,1.93934,0.43934,0,
+ -0.633994,0.633994,0.442836,1.93934,0.43934,0,
+ -0.633994,0.633994,0.442836,3,0.45227,1.5,
+ -0.633994,0.633994,0.442836,2.100816,0.600816,0,
+ -0.633994,0.633994,0.442836,2.100816,0.600816,0,
+ -0.633994,0.633994,0.442836,3,0.45227,1.5,
+ -0.633994,0.633994,0.442836,3,0.883139,0.883139,
+ -0.633994,0.633994,0.442836,2.100816,0.600816,0,
+ -0.633994,0.633994,0.442836,3,0.883139,0.883139,
+ -0.633994,0.633994,0.442836,2.25,0.75,0,
+ -0.633994,0.633994,0.442836,2.25,0.75,0,
+ -0.633994,0.633994,0.442836,3,0.883139,0.883139,
+ -0.633994,0.633994,0.442836,2.399184,0.899184,0,
+ -0.633994,0.633994,0.442836,2.399184,0.899184,0,
+ -0.633994,0.633994,0.442836,3,0.883139,0.883139,
+ -0.633994,0.633994,0.442836,3,1.35681,0.205,
+ -0.633994,0.633994,0.442836,2.399184,0.899184,0,
+ -0.633994,0.633994,0.442836,3,1.35681,0.205,
+ -0.633994,0.633994,0.442836,2.56066,1.06066,0,
+ -0.633994,0.633994,0.442836,2.56066,1.06066,0,
+ -0.633994,0.633994,0.442836,3,1.35681,0.205,
+ -0.633994,0.633994,0.442836,2.751134,1.251134,0,
+ -0.633994,0.633994,0.442836,2.751134,1.251134,0,
+ -0.633994,0.633994,0.442836,3,1.35681,0.205,
+ -0.633994,0.633994,0.442836,3,1.5,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.45227,1.5,
+ 1,0,0,3,0.205,1.854008,
+ 1,0,0,3,0.205,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 0,-1,0,2.795,0,1.854008,
+ 0,-1,0,2.649417,0,1.645583,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.795,0,0.205,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,0.883139,0.883139,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.35681,0.205,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0,2.1475,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,2.1475,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,1.854008,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0,
+ 0,-1,0,3,0,2.1475,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,2.1475,
+ 0,-1,0,2.795,0,1.854008,
+ 0,-1,0,2.116861,0,0.883139,
+ -0.004007,-0.999988,0.002799,1.974903,0,0.679903,
+ 0,-1,0,2.1475,0,0.8525
+};
+static const struct gllist lament_model_iso_dse_frame = { GL_N3F_V3F, GL_TRIANGLES, 204, lament_model_iso_dse_data, 0 };
+const struct gllist *lament_model_iso_dse = &lament_model_iso_dse_frame;
+
+static const float lament_model_iso_dwn_data[] = {
+ 0,1,0,0,3,0.7275,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.7275,
+ 0,1,0,0.205,3,0.6475,
+ 0,1,0,0.205,3,0.6475,
+ 0,1,0,0,3,0.7275,
+ 0,1,0,0,3,0.8525,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.8525,3,0,
+ 0,1,0,0.8525,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.6475,3,0.205,
+ 0,1,0,0.42625,3,0.42625,
+ 0,1,0,0.6475,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,0,-1,0.8525,3,0,
+ 0,0,-1,0.639832,2.787332,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.212668,2.360168,0,
+ 0,0,-1,0,2.2725,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.2725,0,
+ 0,0,-1,0.212668,2.360168,0,
+ 0,0,-1,0,2.1475,0,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0,
+ 0,1,0,0,3,0.205,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.57375,0.42625,
+ -1,0,0,0,2.795,0.6475,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.639832,2.787332,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.42625,2.57375,0,
+ 0,0,-1,0.212668,2.360168,0,
+ -1,0,0,0,2.3525,0.205,
+ -1,0,0,0,2.2725,0,
+ -1,0,0,0,2.1475,0,
+ -1,0,0,0,2.2725,0,
+ -1,0,0,0,2.3525,0.205,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.3525,0.205,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.3525,0.205,
+ -1,0,0,0,2.57375,0.42625,
+ 0,1,0,0.205,3,0.6475,
+ 0,1,0,0.42625,3,0.42625,
+ 0,1,0,0.205,3,0.205,
+ -1,0,0,0,3,0.8525,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0.6475,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,0.8525,
+ -1,0,0,0,3,0.205,
+ -0.707107,0.707107,0,0,3,0.205,
+ -0.893371,0.265408,0.362555,0,3,0.8525,
+ 0,1,0,0,3,0.7275,
+ 0.57735,-0.57735,0.57735,0.212668,2.360168,0,
+ 0.57735,-0.57735,0.57735,0,2.3525,0.205,
+ 0.57735,-0.57735,0.57735,0,2.1475,0,
+ 0.57735,-0.57735,0.57735,0,2.3525,0.205,
+ 0.57735,-0.57735,0.57735,0.212668,2.360168,0,
+ 0.57735,-0.57735,0.57735,0.42625,2.57375,0,
+ 0.57735,-0.57735,0.57735,0,2.3525,0.205,
+ 0.57735,-0.57735,0.57735,0.42625,2.57375,0,
+ 0.57735,-0.57735,0.57735,0.639832,2.787332,0,
+ 0.57735,-0.57735,0.57735,0,2.3525,0.205,
+ 0.57735,-0.57735,0.57735,0.639832,2.787332,0,
+ 0.57735,-0.57735,0.57735,0.8525,3,0,
+ 0.57735,-0.57735,0.57735,0,2.3525,0.205,
+ 0.57735,-0.57735,0.57735,0.8525,3,0,
+ 0.57735,-0.57735,0.57735,0.6475,3,0.205,
+ 0.57735,-0.57735,0.57735,0,2.3525,0.205,
+ 0.57735,-0.57735,0.57735,0.6475,3,0.205,
+ 0.57735,-0.57735,0.57735,0.42625,3,0.42625,
+ 0.57735,-0.57735,0.57735,0,2.3525,0.205,
+ 0.57735,-0.57735,0.57735,0.42625,3,0.42625,
+ 0.57735,-0.57735,0.57735,0,2.57375,0.42625,
+ 0.57735,-0.57735,0.57735,0,2.57375,0.42625,
+ 0.57735,-0.57735,0.57735,0.42625,3,0.42625,
+ 0.57735,-0.57735,0.57735,0.205,3,0.6475,
+ 0.57735,-0.57735,0.57735,0,2.57375,0.42625,
+ 0.57735,-0.57735,0.57735,0.205,3,0.6475,
+ 0.57735,-0.57735,0.57735,0,2.795,0.6475,
+ 0.57735,-0.57735,0.57735,0,2.795,0.6475,
+ 0.57735,-0.57735,0.57735,0.205,3,0.6475,
+ 0.57735,-0.57735,0.57735,0,3,0.8525
+};
+static const struct gllist lament_model_iso_dwn_frame = { GL_N3F_V3F, GL_TRIANGLES, 120, lament_model_iso_dwn_data, 0 };
+const struct gllist *lament_model_iso_dwn = &lament_model_iso_dwn_frame;
+
+static const float lament_model_iso_swd_data[] = {
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.267766,0.332481,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ 0,0,-1,0.283213,1.742034,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.283213,1.742034,0,
+ 0,0,-1,0.45227,1.5,0,
+ 0,0,-1,0.45227,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.45227,1.5,0,
+ 0,0,-1,0.580081,1.317017,0,
+ 0,0,-1,0.580081,1.317017,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0.580081,1.317017,0,
+ 0,0,-1,0.68738,1.163402,0,
+ 0,0,-1,0.025731,2.110662,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.025731,2.110662,0,
+ 0,0,-1,0.283213,1.742034,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.987753,0.733368,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,0.987753,0.733368,0,
+ 0,0,-1,1.109972,0.55839,0,
+ 0,0,-1,1.109972,0.55839,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.109972,0.55839,0,
+ 0,0,-1,1.267766,0.332481,0,
+ -1,0,0,0,0.883139,0.883139,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.883139,0.883139,
+ -1,0,0,0,1.5,0.45227,
+ -1,0,0,0,0.883139,0.883139,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,1.35681,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,2.1475,0,
+ -1,0,0,0,1.854008,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0.45227,
+ -1,0,0,0,0.205,1.35681,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0.205,1.35681,
+ -1,0,0,0,0.205,0.205,
+ 0,0,-1,0.68738,1.163402,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.68738,1.163402,0,
+ 0,0,-1,0.785662,1.022694,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.883139,0.883139,0,
+ 0,0,-1,0.987753,0.733368,0,
+ 0,-1,0,0.75,0,0.75,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,0.205,0,1.295,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,1.295,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,1.295,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.205,0,1.295,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.75,0,0.75,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,0,-1,0.025731,2.110662,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,2.1475,0,
+ 0.633994,0.442836,0.633994,0.205,0,1.295,
+ 0.633994,0.442836,0.633994,0,0.205,1.35681,
+ 0.633994,0.442836,0.633994,0,0,1.5,
+ 0.633994,0.442836,0.633994,0,0.205,1.35681,
+ 0.633994,0.442836,0.633994,0.205,0,1.295,
+ 0.633994,0.442836,0.633994,0.75,0,0.75,
+ 0.633994,0.442836,0.633994,0,0.205,1.35681,
+ 0.633994,0.442836,0.633994,0.75,0,0.75,
+ 0.633994,0.442836,0.633994,1.295,0,0.205,
+ 0.633994,0.442836,0.633994,0,0.205,1.35681,
+ 0.633994,0.442836,0.633994,1.295,0,0.205,
+ 0.633994,0.442836,0.633994,1.5,0,0,
+ 0.633994,0.442836,0.633994,0,0.205,1.35681,
+ 0.633994,0.442836,0.633994,1.5,0,0,
+ 0.633994,0.442836,0.633994,1.267766,0.332481,0,
+ 0.633994,0.442836,0.633994,0,0.205,1.35681,
+ 0.633994,0.442836,0.633994,1.267766,0.332481,0,
+ 0.633994,0.442836,0.633994,0,0.883139,0.883139,
+ 0.633994,0.442836,0.633994,0,0.883139,0.883139,
+ 0.633994,0.442836,0.633994,1.267766,0.332481,0,
+ 0.633994,0.442836,0.633994,1.109972,0.55839,0,
+ 0.633994,0.442836,0.633994,0,0.883139,0.883139,
+ 0.633994,0.442836,0.633994,1.109972,0.55839,0,
+ 0.633994,0.442836,0.633994,0.987753,0.733368,0,
+ 0.633994,0.442836,0.633994,0,0.883139,0.883139,
+ 0.633994,0.442836,0.633994,0.987753,0.733368,0,
+ 0.633994,0.442836,0.633994,0.883139,0.883139,0,
+ 0.633994,0.442836,0.633994,0,0.883139,0.883139,
+ 0.633994,0.442836,0.633994,0.883139,0.883139,0,
+ 0.633994,0.442836,0.633994,0.785662,1.022694,0,
+ 0.633994,0.442836,0.633994,0,0.883139,0.883139,
+ 0.633994,0.442836,0.633994,0.785662,1.022694,0,
+ 0.633994,0.442836,0.633994,0,1.5,0.45227,
+ 0.633994,0.442836,0.633994,0,1.5,0.45227,
+ 0.633994,0.442836,0.633994,0.785662,1.022694,0,
+ 0.633994,0.442836,0.633994,0.68738,1.163402,0,
+ 0.633994,0.442836,0.633994,0,1.5,0.45227,
+ 0.633994,0.442836,0.633994,0.68738,1.163402,0,
+ 0.633994,0.442836,0.633994,0.580081,1.317017,0,
+ 0.633994,0.442836,0.633994,0,1.5,0.45227,
+ 0.633994,0.442836,0.633994,0.580081,1.317017,0,
+ 0.633994,0.442836,0.633994,0.45227,1.5,0,
+ 0.633994,0.442836,0.633994,0,1.5,0.45227,
+ 0.633994,0.442836,0.633994,0.45227,1.5,0,
+ 0.633994,0.442836,0.633994,0.283213,1.742034,0,
+ 0.633994,0.442836,0.633994,0,1.5,0.45227,
+ 0.633994,0.442836,0.633994,0.283213,1.742034,0,
+ 0.633994,0.442836,0.633994,0,1.854008,0.205,
+ 0.633994,0.442836,0.633994,0,1.854008,0.205,
+ 0.633994,0.442836,0.633994,0.283213,1.742034,0,
+ 0.633994,0.442836,0.633994,0.025731,2.110662,0,
+ 0.633994,0.442836,0.633994,0,1.854008,0.205,
+ 0.633994,0.442836,0.633994,0.025731,2.110662,0,
+ 0.633994,0.442836,0.633994,0,2.1475,0
+};
+static const struct gllist lament_model_iso_swd_frame = { GL_N3F_V3F, GL_TRIANGLES, 204, lament_model_iso_swd_data, 0 };
+const struct gllist *lament_model_iso_swd = &lament_model_iso_swd_frame;
+
+static const float lament_model_iso_une_data[] = {
+ 0,0,1,2.419919,1.682983,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.31262,1.836598,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.419919,1.682983,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.54773,1.5,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.419919,1.682983,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.54773,1.5,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.716787,1.257966,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.716787,1.257966,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,2.54773,1.5,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,2.716787,1.257966,3,
+ 0,0,1,3,1.201631,3,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.705,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,3,
+ 0,1,0,2.795,3,3,
+ -0.741864,0.651962,-0.156792,1.5,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,2.502268,3,3,
+ 0,1,0,3,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,3,
+ 1,0,0,3,1.145992,2.795,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,0.8525,3,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,1.145992,2.795,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.145992,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.25,3,2.25,
+ 0,1,0,1.705,3,2.795,
+ 0,1,0,2.795,3,1.705,
+ 0,1,0,3,3,2.795,
+ 0,1,0,3,3,1.5,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,1.705,
+ 0,1,0,2.795,3,2.795,
+ 1,0,0,3,2.116861,2.116861,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,2.54773,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,2.116861,2.116861,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,1.64319,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,3,2.795,
+ 0,1,0,3,3,3,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.705,
+ 0,1,0,2.25,3,2.25,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.116861,2.116861,
+ 1,0,0,3,2.795,1.64319,
+ 0,0,1,2.31262,1.836598,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.214338,1.977306,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.31262,1.836598,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.012247,2.266632,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.890028,2.44161,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,2.012247,2.266632,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.890028,2.44161,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.732234,2.667519,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.890028,2.44161,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,2.116861,2.116861,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.012247,2.266632,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.116861,2.116861,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.502268,3,3,
+ 0.485071,0.485071,0.727607,3,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,2.214338,1.977306,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.116861,2.116861,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.214338,1.977306,3,
+ 0,0,1,3,2.502268,3,
+ 0.485071,0.485071,0.727607,3,3,3,
+ 0.5547,0,0.83205,3,2.502268,3,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.145992,2.795,
+ 1,0,0,3,1.5,2.54773,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.732234,2.667519,3,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,2.795,2.795,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.974269,0.889338,3,
+ 0,0,1,3,0.8525,3,
+ -0.633994,-0.442836,-0.633994,2.974269,0.889338,3,
+ -0.633994,-0.442836,-0.633994,3,1.145992,2.795,
+ -0.633994,-0.442836,-0.633994,3,0.8525,3,
+ -0.633994,-0.442836,-0.633994,3,1.145992,2.795,
+ -0.633994,-0.442836,-0.633994,2.974269,0.889338,3,
+ -0.633994,-0.442836,-0.633994,2.716787,1.257966,3,
+ -0.633994,-0.442836,-0.633994,3,1.145992,2.795,
+ -0.633994,-0.442836,-0.633994,2.716787,1.257966,3,
+ -0.633994,-0.442836,-0.633994,3,1.5,2.54773,
+ -0.633994,-0.442836,-0.633994,3,1.5,2.54773,
+ -0.633994,-0.442836,-0.633994,2.716787,1.257966,3,
+ -0.633994,-0.442836,-0.633994,2.54773,1.5,3,
+ -0.633994,-0.442836,-0.633994,3,1.5,2.54773,
+ -0.633994,-0.442836,-0.633994,2.54773,1.5,3,
+ -0.633994,-0.442836,-0.633994,2.419919,1.682983,3,
+ -0.633994,-0.442836,-0.633994,3,1.5,2.54773,
+ -0.633994,-0.442836,-0.633994,2.419919,1.682983,3,
+ -0.633994,-0.442836,-0.633994,3,2.116861,2.116861,
+ -0.633994,-0.442836,-0.633994,3,2.116861,2.116861,
+ -0.633994,-0.442836,-0.633994,2.419919,1.682983,3,
+ -0.633994,-0.442836,-0.633994,2.31262,1.836598,3,
+ -0.633994,-0.442836,-0.633994,3,2.116861,2.116861,
+ -0.633994,-0.442836,-0.633994,2.31262,1.836598,3,
+ -0.633994,-0.442836,-0.633994,2.214338,1.977306,3,
+ -0.633994,-0.442836,-0.633994,3,2.116861,2.116861,
+ -0.633994,-0.442836,-0.633994,2.214338,1.977306,3,
+ -0.633994,-0.442836,-0.633994,2.116861,2.116861,3,
+ -0.633994,-0.442836,-0.633994,3,2.116861,2.116861,
+ -0.633994,-0.442836,-0.633994,2.116861,2.116861,3,
+ -0.633994,-0.442836,-0.633994,2.012247,2.266632,3,
+ -0.633994,-0.442836,-0.633994,3,2.116861,2.116861,
+ -0.633994,-0.442836,-0.633994,2.012247,2.266632,3,
+ -0.633994,-0.442836,-0.633994,3,2.795,1.64319,
+ -0.633994,-0.442836,-0.633994,3,2.795,1.64319,
+ -0.633994,-0.442836,-0.633994,2.012247,2.266632,3,
+ -0.633994,-0.442836,-0.633994,1.890028,2.44161,3,
+ -0.633994,-0.442836,-0.633994,3,2.795,1.64319,
+ -0.633994,-0.442836,-0.633994,1.890028,2.44161,3,
+ -0.633994,-0.442836,-0.633994,1.732234,2.667519,3,
+ -0.633994,-0.442836,-0.633994,3,2.795,1.64319,
+ -0.633994,-0.442836,-0.633994,1.732234,2.667519,3,
+ -0.633994,-0.442836,-0.633994,1.5,3,3,
+ -0.633994,-0.442836,-0.633994,3,2.795,1.64319,
+ -0.633994,-0.442836,-0.633994,1.5,3,3,
+ -0.633994,-0.442836,-0.633994,1.705,3,2.795,
+ -0.633994,-0.442836,-0.633994,1.705,3,2.795,
+ -0.633994,-0.442836,-0.633994,3,3,1.5,
+ -0.633994,-0.442836,-0.633994,3,2.795,1.64319,
+ 0.85071,0.346986,-0.394833,3,3,1.5,
+ -0.600591,0.527809,-0.600591,1.705,3,2.795,
+ 0,1,0,2.25,3,2.25,
+ 0.85071,0.346986,-0.394833,3,3,1.5,
+ 0,1,0,2.25,3,2.25,
+ 0,1,0,2.795,3,1.705
+};
+static const struct gllist lament_model_iso_une_frame = { GL_N3F_V3F, GL_TRIANGLES, 204, lament_model_iso_une_data, 0 };
+const struct gllist *lament_model_iso_une = &lament_model_iso_une_frame;
+
+static const float lament_model_iso_unw_data[] = {
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.350583,3,1.354417,
+ 0,1,0,0.205,3,1.145992,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.45227,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.45227,3,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.883139,3,2.116861,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.145992,
+ 0,1,0,0,3,0.8525,
+ 0,1,0,0.205,3,1.145992,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,0,1,0.75,2.25,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,0.899184,2.399184,3,
+ 0,0,1,1.06066,2.56066,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.43934,1.93934,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.43934,1.93934,3,
+ 0,0,1,0.600816,2.100816,3,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.54773,1.5,
+ -1,0,0,0,2.116861,2.116861,
+ -1,0,0,0,2.54773,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,3,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,3,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.116861,2.116861,
+ -1,0,0,0,1.64319,2.795,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,2.795,1.145992,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,1.145992,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,3,0.8525,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.35681,3,2.795,
+ 0,0,1,1.06066,2.56066,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.06066,2.56066,3,
+ 0,0,1,1.251134,2.751134,3,
+ 0,1,0,0.45227,3,1.5,
+ 0,1,0,0.350583,3,1.354417,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.35681,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.35681,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,3,
+ 0.974602,-0.205981,0.087875,1.5,3,3,
+ 0,0.83205,0.5547,0.205,3,3,
+ 0,0,1,0.497732,3,3,
+ 0.974602,-0.205981,0.087875,1.5,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0.974602,-0.205981,0.087875,1.5,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.248866,1.748866,3,
+ 0,0,1,0.43934,1.93934,3,
+ -1,0,0,0,2.795,1.145992,
+ -1,0,0,0,2.54773,1.5,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,3,3,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,1.64319,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.64319,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,3,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.251134,2.751134,3,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,0.883139,3,2.116861,
+ 0,1,0,0.8525,3,2.1475,
+ 0.633994,-0.633994,-0.442836,0,3,0.8525,
+ 0.633994,-0.633994,-0.442836,1.35681,3,2.795,
+ 0.633994,-0.633994,-0.442836,0,2.795,1.145992,
+ 0,-1,0,1.35681,3,2.795,
+ 0,-1,0,0,3,0.8525,
+ 0,-1,0,1.025097,3,2.320097,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,0,3,0.8525,
+ 0,1,0,0.205,3,1.145992,
+ 0,-1,0,1.025097,3,2.320097,
+ 0,-1,0,0.205,3,1.145992,
+ 0,-1,0,0.350583,3,1.354417,
+ 0,1,0,1.025097,3,2.320097,
+ 0,1,0,0.350583,3,1.354417,
+ 0,1,0,0.45227,3,1.5,
+ 0,-1,0,1.025097,3,2.320097,
+ 0,-1,0,0.45227,3,1.5,
+ 0,-1,0,0.883139,3,2.116861,
+ 0.633994,-0.633994,-0.442836,0,1.64319,2.795,
+ 0.633994,-0.633994,-0.442836,0.248866,1.748866,3,
+ 0.633994,-0.633994,-0.442836,0,1.5,3,
+ 0.633994,-0.633994,-0.442836,0.248866,1.748866,3,
+ 0.633994,-0.633994,-0.442836,0,1.64319,2.795,
+ 0.633994,-0.633994,-0.442836,0,2.116861,2.116861,
+ 0.633994,-0.633994,-0.442836,0.248866,1.748866,3,
+ 0.633994,-0.633994,-0.442836,0,2.116861,2.116861,
+ 0.633994,-0.633994,-0.442836,0.43934,1.93934,3,
+ 0.633994,-0.633994,-0.442836,0.43934,1.93934,3,
+ 0.633994,-0.633994,-0.442836,0,2.116861,2.116861,
+ 0.633994,-0.633994,-0.442836,0.600816,2.100816,3,
+ 0.633994,-0.633994,-0.442836,0.600816,2.100816,3,
+ 0.633994,-0.633994,-0.442836,0,2.116861,2.116861,
+ 0.633994,-0.633994,-0.442836,0.75,2.25,3,
+ 0.633994,-0.633994,-0.442836,0.75,2.25,3,
+ 0.633994,-0.633994,-0.442836,0,2.116861,2.116861,
+ 0.633994,-0.633994,-0.442836,0,2.54773,1.5,
+ 0.633994,-0.633994,-0.442836,0.75,2.25,3,
+ 0.633994,-0.633994,-0.442836,0,2.54773,1.5,
+ 0.633994,-0.633994,-0.442836,0.899184,2.399184,3,
+ 0.633994,-0.633994,-0.442836,0.899184,2.399184,3,
+ 0.633994,-0.633994,-0.442836,0,2.54773,1.5,
+ 0.633994,-0.633994,-0.442836,1.06066,2.56066,3,
+ 0.633994,-0.633994,-0.442836,1.06066,2.56066,3,
+ 0.633994,-0.633994,-0.442836,0,2.54773,1.5,
+ 0.633994,-0.633994,-0.442836,0,2.795,1.145992,
+ 0.633994,-0.633994,-0.442836,1.06066,2.56066,3,
+ 0.633994,-0.633994,-0.442836,0,2.795,1.145992,
+ 0.633994,-0.633994,-0.442836,1.251134,2.751134,3,
+ 0.633994,-0.633994,-0.442836,1.251134,2.751134,3,
+ 0.633994,-0.633994,-0.442836,0,2.795,1.145992,
+ 0.633994,-0.633994,-0.442836,1.5,3,3,
+ 0.633994,-0.633994,-0.442836,1.5,3,3,
+ 0.633994,-0.633994,-0.442836,0,2.795,1.145992,
+ 0.633994,-0.633994,-0.442836,1.35681,3,2.795
+};
+static const struct gllist lament_model_iso_unw_frame = { GL_N3F_V3F, GL_TRIANGLES, 204, lament_model_iso_unw_data, 0 };
+const struct gllist *lament_model_iso_unw = &lament_model_iso_unw_frame;
+
+static const float lament_model_iso_use_data[] = {
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.795,0,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,2.795,0,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,3,0.8525,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.3525,
+ 0,-1,0,3,0,2.1475,
+ 0,-1,0,2.795,0,2.3525,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.3525,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.3525,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.502268,0,3,
+ 0,-1,0,2.3525,0,2.795,
+ 0,-1,0,2.502268,0,3,
+ 0,-1,0,2.1475,0,3,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.57375,0,2.57375,
+ 0,-1,0,2.795,0,2.3525,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0,2.1475,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0,2.1475,
+ 1,0,0,3,0.205,2.3525,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.6475,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0.6475,2.795,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.6475,2.795,
+ 1,0,0,3,0.8525,3,
+ 1,0,0,3,0.6475,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.42625,2.57375,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,2.1475,0,3,
+ 1,0,0,3,0.42625,2.57375,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,2.3525,
+ 0,0,1,3,0,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,1,2.787332,0.639832,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,0.497732,3,
+ 0.707107,0,0.707107,3,0.497732,3,
+ 0.485071,-0.485071,0.727607,3,0,3,
+ 1,0,0,3,0.205,3,
+ 0,-1,0,2.3525,0,2.795,
+ 0,-1,0,2.57375,0,2.57375,
+ 0,-1,0,2.795,0,2.795,
+ -0.57735,0.57735,-0.57735,2.795,0,2.3525,
+ -0.57735,0.57735,-0.57735,3,0.205,2.3525,
+ -0.57735,0.57735,-0.57735,3,0,2.1475,
+ -0.57735,0.57735,-0.57735,3,0.205,2.3525,
+ -0.57735,0.57735,-0.57735,2.795,0,2.3525,
+ -0.57735,0.57735,-0.57735,2.57375,0,2.57375,
+ -0.57735,0.57735,-0.57735,3,0.205,2.3525,
+ -0.57735,0.57735,-0.57735,2.57375,0,2.57375,
+ -0.57735,0.57735,-0.57735,3,0.42625,2.57375,
+ -0.57735,0.57735,-0.57735,3,0.42625,2.57375,
+ -0.57735,0.57735,-0.57735,2.57375,0,2.57375,
+ -0.57735,0.57735,-0.57735,2.3525,0,2.795,
+ -0.57735,0.57735,-0.57735,3,0.42625,2.57375,
+ -0.57735,0.57735,-0.57735,2.3525,0,2.795,
+ -0.57735,0.57735,-0.57735,3,0.6475,2.795,
+ -0.57735,0.57735,-0.57735,3,0.6475,2.795,
+ -0.57735,0.57735,-0.57735,2.3525,0,2.795,
+ -0.57735,0.57735,-0.57735,2.1475,0,3,
+ -0.57735,0.57735,-0.57735,3,0.6475,2.795,
+ -0.57735,0.57735,-0.57735,2.1475,0,3,
+ -0.57735,0.57735,-0.57735,2.360168,0.212668,3,
+ -0.57735,0.57735,-0.57735,2.360168,0.212668,3,
+ -0.57735,0.57735,-0.57735,3,0.8525,3,
+ -0.57735,0.57735,-0.57735,3,0.6475,2.795,
+ 0,0,1,3,0.8525,3,
+ 0,0,1,2.360168,0.212668,3,
+ 0,0,1,2.57375,0.42625,3,
+ 0,0,-1,3,0.8525,3,
+ 0,0,-1,2.57375,0.42625,3,
+ 0,0,-1,2.787332,0.639832,3
+};
+static const struct gllist lament_model_iso_use_frame = { GL_N3F_V3F, GL_TRIANGLES, 108, lament_model_iso_use_data, 0 };
+const struct gllist *lament_model_iso_use = &lament_model_iso_use_frame;
+
+static const float lament_model_iso_usw_data[] = {
+ 0,0,1,0.332481,1.267766,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0.733368,0.987753,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.645583,0,2.649417,
+ 0,-1,0,1.854008,0,2.795,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0.205,3,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.679903,0,1.974903,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,1.64319,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.679903,0,1.974903,
+ 0,-1,0,0.8525,0,2.1475,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,3,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,3,
+ -1,0,0,0,0.75,2.25,
+ -1,0,0,0,0.205,1.705,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,1.705,
+ -1,0,0,0,1.295,2.795,
+ -1,0,0,0,0.75,2.25,
+ -1,0,0,0,0.205,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.1475,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.854008,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.1475,0,3,
+ 0,-1,0,2.12132,0,3,
+ 0,-1,0,2.12132,0,3,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,0,1,1.5,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.163402,0.68738,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,1.742034,0.283213,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,0.733368,0.987753,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.733368,0.987753,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,1,0.332481,1.267766,3,
+ 0,-1,0,0.205,0,1.64319,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,1.64319,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,-1,0.205,0,3,
+ 0,0,-1,0.87868,0,3,
+ 0,0,-1,0.497732,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.5,0,2.54773,
+ 0,-1,0,1.645583,0,2.649417,
+ 0,-1,0,1.5,0,2.54773,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,0.883139,0,2.116861,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,1.5,0,2.54773,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,0.679903,0,1.974903,
+ 0,-1,0,0.883139,0,2.116861,
+ 0,0,1,2.1475,0,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,2.12132,0,3,
+ 0.442836,0.633994,-0.633994,0,0.205,1.705,
+ 0.442836,0.633994,-0.633994,0.205,0,1.64319,
+ 0.442836,0.633994,-0.633994,0,0,1.5,
+ 0.442836,0.633994,-0.633994,0.205,0,1.64319,
+ 0.442836,0.633994,-0.633994,0,0.205,1.705,
+ 0.442836,0.633994,-0.633994,0.679903,0,1.974903,
+ 0.442836,0.633994,-0.633994,0.679903,0,1.974903,
+ 0.442836,0.633994,-0.633994,0,0.205,1.705,
+ 0.442836,0.633994,-0.633994,0,0.75,2.25,
+ 0.442836,0.633994,-0.633994,0.679903,0,1.974903,
+ 0.442836,0.633994,-0.633994,0,0.75,2.25,
+ 0.442836,0.633994,-0.633994,0.883139,0,2.116861,
+ 0.442836,0.633994,-0.633994,0.883139,0,2.116861,
+ 0.442836,0.633994,-0.633994,0,0.75,2.25,
+ 0.442836,0.633994,-0.633994,1.5,0,2.54773,
+ 0.442836,0.633994,-0.633994,1.5,0,2.54773,
+ 0.442836,0.633994,-0.633994,0,0.75,2.25,
+ 0.442836,0.633994,-0.633994,0,1.295,2.795,
+ 0.442836,0.633994,-0.633994,1.5,0,2.54773,
+ 0.442836,0.633994,-0.633994,0,1.295,2.795,
+ 0.442836,0.633994,-0.633994,1.645583,0,2.649417,
+ 0.442836,0.633994,-0.633994,1.645583,0,2.649417,
+ 0.442836,0.633994,-0.633994,0,1.295,2.795,
+ 0.442836,0.633994,-0.633994,1.854008,0,2.795,
+ 0.442836,0.633994,-0.633994,1.854008,0,2.795,
+ 0.442836,0.633994,-0.633994,0,1.295,2.795,
+ 0.442836,0.633994,-0.633994,0,1.5,3,
+ 0.442836,0.633994,-0.633994,1.854008,0,2.795,
+ 0.442836,0.633994,-0.633994,0,1.5,3,
+ 0.442836,0.633994,-0.633994,2.110662,0.025731,3,
+ 0.442836,0.633994,-0.633994,1.854008,0,2.795,
+ 0.442836,0.633994,-0.633994,2.110662,0.025731,3,
+ 0.442836,0.633994,-0.633994,2.1475,0,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.332481,1.267766,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,0.332481,1.267766,3,
+ 0,0,1,0.55839,1.109972,3,
+ 0,0,-1,2.110662,0.025731,3,
+ 0,0,-1,0.55839,1.109972,3,
+ 0,0,-1,0.733368,0.987753,3,
+ 0,0,-1,2.110662,0.025731,3,
+ 0,0,-1,0.733368,0.987753,3,
+ 0,0,-1,0.883139,0.883139,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,0.883139,0.883139,3,
+ 0,0,1,1.022694,0.785662,3,
+ 0,0,-1,2.110662,0.025731,3,
+ 0,0,-1,1.022694,0.785662,3,
+ 0,0,-1,1.163402,0.68738,3,
+ 0,0,-1,2.110662,0.025731,3,
+ 0,0,-1,1.163402,0.68738,3,
+ 0,0,-1,1.317017,0.580081,3,
+ 0,0,1,2.110662,0.025731,3,
+ 0,0,1,1.317017,0.580081,3,
+ 0,0,1,1.5,0.45227,3,
+ 0,0,-1,2.110662,0.025731,3,
+ 0,0,-1,1.5,0.45227,3,
+ 0,0,-1,1.742034,0.283213,3
+};
+static const struct gllist lament_model_iso_usw_frame = { GL_N3F_V3F, GL_TRIANGLES, 222, lament_model_iso_usw_data, 0 };
+const struct gllist *lament_model_iso_usw = &lament_model_iso_usw_frame;
+
+static const float lament_model_leviathan_data[] = {
+ 0.81642,0.40914,-0.407508,2.250059,3.000719,2.250389,
+ 0.869552,0.350012,-0.348384,6.835994,-3.832072,6.831978,
+ 0.81642,0.40914,-0.407508,2.253099,0.752183,-0.001065,
+ 0.81642,0.40914,-0.407508,2.250059,3.000719,2.250389,
+ 0.81642,0.40914,-0.407508,2.253099,0.752183,-0.001065,
+ 0.755275,0.464254,-0.462632,-3.832693,6.833336,-3.834015,
+ -0.348245,-0.869659,-0.349884,6.835994,-3.832072,6.831978,
+ -0.407383,-0.816545,-0.409015,0.001794,0.748994,2.24762,
+ -0.407383,-0.816545,-0.409015,2.253099,0.752183,-0.001065,
+ -0.349891,0.348284,0.86964,6.835994,-3.832072,6.831978,
+ -0.409037,0.407405,0.816523,2.250059,3.000719,2.250389,
+ -0.409037,0.407405,0.816523,0.001794,0.748994,2.24762,
+ -0.409037,0.407405,0.816523,0.001794,0.748994,2.24762,
+ -0.409037,0.407405,0.816523,2.250059,3.000719,2.250389,
+ -0.464168,0.462527,0.755392,-3.832693,6.833336,-3.834015,
+ -0.407383,-0.816545,-0.409015,0.001794,0.748994,2.24762,
+ -0.462522,-0.755417,-0.464132,-3.832693,6.833336,-3.834015,
+ -0.407383,-0.816545,-0.409015,2.253099,0.752183,-0.001065
+};
+static const struct gllist lament_model_leviathan_frame = { GL_N3F_V3F, GL_TRIANGLES, 18, lament_model_leviathan_data, 0 };
+const struct gllist *lament_model_leviathan = &lament_model_leviathan_frame;
+
+static const float lament_model_lid_a_data[] = {
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,1.5,
+ 1,0,0,1.5,0.0625,2.7325,
+ 1,0,0,1.5,0,2.795,
+ 1,0,0,1.5,0,1.5,
+ 0,0,-1,1.5,0,1.5,
+ 0,0,-1,0.205,0,1.5,
+ 0,0,-1,0.2675,0.0625,1.5,
+ -0.57735,0.57735,0.57735,1.5,0,2.795,
+ -0.57735,0.57735,0.57735,0.2675,0.0625,1.5,
+ -0.57735,0.57735,0.57735,0.205,0,1.5,
+ -0.57735,0.57735,0.57735,0.2675,0.0625,1.5,
+ -0.57735,0.57735,0.57735,1.5,0,2.795,
+ -0.57735,0.57735,0.57735,1.5,0.0625,2.7325,
+ 0.05058,0.997438,-0.05058,1.5,0.0625,2.7325,
+ 0.05058,0.997438,-0.05058,1.5,0,1.5,
+ 0.05058,0.997438,-0.05058,0.2675,0.0625,1.5
+};
+static const struct gllist lament_model_lid_a_frame = { GL_N3F_V3F, GL_TRIANGLES, 18, lament_model_lid_a_data, 0 };
+const struct gllist *lament_model_lid_a = &lament_model_lid_a_frame;
+
+static const float lament_model_lid_b_data[] = {
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,0,-1,2.795,0,1.5,
+ 0,0,-1,1.5,0,1.5,
+ 0,0,-1,2.7325,0.0625,1.5,
+ -1,0,0,1.5,0.0625,2.7325,
+ -1,0,0,1.5,0,1.5,
+ -1,0,0,1.5,0,2.795,
+ -0.05058,0.997438,-0.05058,1.5,0.0625,2.7325,
+ -0.05058,0.997438,-0.05058,2.7325,0.0625,1.5,
+ -0.05058,0.997438,-0.05058,1.5,0,1.5,
+ 0.57735,0.57735,0.57735,2.7325,0.0625,1.5,
+ 0.57735,0.57735,0.57735,1.5,0,2.795,
+ 0.57735,0.57735,0.57735,2.795,0,1.5,
+ 0.57735,0.57735,0.57735,1.5,0,2.795,
+ 0.57735,0.57735,0.57735,2.7325,0.0625,1.5,
+ 0.57735,0.57735,0.57735,1.5,0.0625,2.7325
+};
+static const struct gllist lament_model_lid_b_frame = { GL_N3F_V3F, GL_TRIANGLES, 18, lament_model_lid_b_data, 0 };
+const struct gllist *lament_model_lid_b = &lament_model_lid_b_frame;
+
+static const float lament_model_lid_base_data[] = {
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0.447214,0.894427,2.502268,3,3,
+ 0.408248,0.408248,0.816497,3,3,3,
+ 0,1,0,2.795,3,3,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,3,1.5,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,3,
+ 0,-0.447214,0.894427,1.5,0,3,
+ 0,-1,0,2.795,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,-0.447214,0.894427,1.5,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.798369,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,2.795,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,3,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.077767,0.868083,0,
+ -0.57735,-0.57735,-0.57735,2.1475,0,2.1475,
+ -0.57735,-0.57735,-0.57735,2.545,0.25,1.5,
+ -0.57735,-0.57735,-0.57735,2.795,0,1.5,
+ -0.57735,-0.57735,-0.57735,2.545,0.25,1.5,
+ -0.57735,-0.57735,-0.57735,2.1475,0,2.1475,
+ -0.57735,-0.57735,-0.57735,2.0225,0.25,2.0225,
+ -0.57735,-0.57735,0.57735,2.1475,0,0.8525,
+ -0.57735,-0.57735,0.57735,1.5,0.25,0.455,
+ -0.57735,-0.57735,0.57735,1.5,0,0.205,
+ -0.57735,-0.57735,0.57735,1.5,0.25,0.455,
+ -0.57735,-0.57735,0.57735,2.1475,0,0.8525,
+ -0.57735,-0.57735,0.57735,2.0225,0.25,0.9775,
+ 0.57735,-0.57735,-0.57735,0.9775,0.25,2.0225,
+ 0.57735,-0.57735,-0.57735,1.5,0,2.795,
+ 0.57735,-0.57735,-0.57735,0.8525,0,2.1475,
+ 0.57735,-0.57735,-0.57735,1.5,0,2.795,
+ 0.57735,-0.57735,-0.57735,0.9775,0.25,2.0225,
+ 0.57735,-0.57735,-0.57735,1.5,0.25,2.545,
+ 0.57735,-0.57735,0.57735,0.9775,0.25,0.9775,
+ 0.57735,-0.57735,0.57735,0.205,0,1.5,
+ 0.57735,-0.57735,0.57735,0.8525,0,0.8525,
+ 0.57735,-0.57735,0.57735,0.205,0,1.5,
+ 0.57735,-0.57735,0.57735,0.9775,0.25,0.9775,
+ 0.57735,-0.57735,0.57735,0.455,0.25,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,-1,0.205,0,3,
+ 0,0,-1,0.87868,0,3,
+ 0,0,-1,0.497732,0,3,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,3,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,-0.447214,-0.894427,2.502268,0,0,
+ 0.408248,-0.408248,-0.816497,3,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,3,3,0,
+ 0.408248,0.408248,-0.816497,3,3,0,
+ 0,0.447214,-0.894427,2.502268,3,0,
+ 0,1,0,2.795,3,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,2.502268,0,
+ 0.447214,0,-0.894427,3,2.502268,0,
+ 0.408248,0.408248,-0.816497,3,3,0,
+ 1,0,0,3,2.795,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0.408248,-0.408248,-0.816497,3,0,0,
+ 0.6,0,-0.8,3,0.497732,0,
+ 1,0,0,3,0.205,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0.408248,0.408248,0.816497,3,3,3,
+ 0.447214,0,0.894427,3,2.502268,3,
+ 1,0,0,3,2.795,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,0.497732,3,
+ 0.447214,0,0.894427,3,0.497732,3,
+ 0.408248,-0.408248,0.816497,3,0,3,
+ 1,0,0,3,0.205,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,3,0,3,
+ 0.408248,-0.408248,0.816497,3,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,-1,0,2.795,0,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,3,3,3,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.497732,3,3,
+ 0,1,0,0.497732,3,3,
+ 0,1,0,1.5,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0.447214,0.894427,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.502268,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.502268,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0.447214,0.894427,2.502268,3,3,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0.447214,0.894427,2.502268,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,3,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0,
+ 0,1,0,0,3,0.205,
+ 0,1,0,2.795,3,3,
+ 0,1,0,3,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,2.795,
+ 0.57735,-0.57735,0.57735,1.5,0.25,0.455,
+ 0.57735,-0.57735,0.57735,0.8525,0,0.8525,
+ 0.57735,-0.57735,0.57735,1.5,0,0.205,
+ 0.57735,-0.57735,0.57735,0.8525,0,0.8525,
+ 0.57735,-0.57735,0.57735,1.5,0.25,0.455,
+ 0.57735,-0.57735,0.57735,0.9775,0.25,0.9775,
+ -0.57735,-0.57735,-0.57735,1.5,0.25,2.545,
+ -0.57735,-0.57735,-0.57735,2.1475,0,2.1475,
+ -0.57735,-0.57735,-0.57735,1.5,0,2.795,
+ -0.57735,-0.57735,-0.57735,2.1475,0,2.1475,
+ -0.57735,-0.57735,-0.57735,1.5,0.25,2.545,
+ -0.57735,-0.57735,-0.57735,2.0225,0.25,2.0225,
+ -0.57735,-0.57735,0.57735,2.795,0,1.5,
+ -0.57735,-0.57735,0.57735,2.0225,0.25,0.9775,
+ -0.57735,-0.57735,0.57735,2.1475,0,0.8525,
+ -0.57735,-0.57735,0.57735,2.0225,0.25,0.9775,
+ -0.57735,-0.57735,0.57735,2.795,0,1.5,
+ -0.57735,-0.57735,0.57735,2.545,0.25,1.5,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,3,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,3,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0,0,
+ -1,0,0,0,3,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,3,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,3,3,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0,0.205,
+ 0.57735,-0.57735,-0.57735,0.455,0.25,1.5,
+ 0.57735,-0.57735,-0.57735,0.8525,0,2.1475,
+ 0.57735,-0.57735,-0.57735,0.205,0,1.5,
+ 0.57735,-0.57735,-0.57735,0.8525,0,2.1475,
+ 0.57735,-0.57735,-0.57735,0.455,0.25,1.5,
+ 0.57735,-0.57735,-0.57735,0.9775,0.25,2.0225
+};
+static const struct gllist lament_model_lid_base_frame = { GL_N3F_V3F, GL_TRIANGLES, 1584, lament_model_lid_base_data, 0 };
+const struct gllist *lament_model_lid_base = &lament_model_lid_base_frame;
+
+static const float lament_model_lid_c_data[] = {
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,1.5,
+ -1,0,0,1.5,0.0625,0.2675,
+ -1,0,0,1.5,0,0.205,
+ -1,0,0,1.5,0,1.5,
+ 0,0,1,2.795,0,1.5,
+ 0,0,1,2.7325,0.0625,1.5,
+ 0,0,1,1.5,0,1.5,
+ -0.05058,0.997438,0.05058,2.7325,0.0625,1.5,
+ -0.05058,0.997438,0.05058,1.5,0.0625,0.2675,
+ -0.05058,0.997438,0.05058,1.5,0,1.5,
+ 0.57735,0.57735,-0.57735,1.5,0.0625,0.2675,
+ 0.57735,0.57735,-0.57735,2.795,0,1.5,
+ 0.57735,0.57735,-0.57735,1.5,0,0.205,
+ 0.57735,0.57735,-0.57735,2.795,0,1.5,
+ 0.57735,0.57735,-0.57735,1.5,0.0625,0.2675,
+ 0.57735,0.57735,-0.57735,2.7325,0.0625,1.5
+};
+static const struct gllist lament_model_lid_c_frame = { GL_N3F_V3F, GL_TRIANGLES, 18, lament_model_lid_c_data, 0 };
+const struct gllist *lament_model_lid_c = &lament_model_lid_c_frame;
+
+static const float lament_model_lid_d_data[] = {
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.5,0,1.5,
+ 0,0,1,1.5,0,1.5,
+ 0,0,1,0.2675,0.0625,1.5,
+ 0,0,1,0.205,0,1.5,
+ 1,0,0,1.5,0.0625,0.2675,
+ 1,0,0,1.5,0,1.5,
+ 1,0,0,1.5,0,0.205,
+ 0.05058,0.997438,0.05058,1.5,0,1.5,
+ 0.05058,0.997438,0.05058,1.5,0.0625,0.2675,
+ 0.05058,0.997438,0.05058,0.2675,0.0625,1.5,
+ -0.57735,0.57735,-0.57735,0.205,0,1.5,
+ -0.57735,0.57735,-0.57735,1.5,0.0625,0.2675,
+ -0.57735,0.57735,-0.57735,1.5,0,0.205,
+ -0.57735,0.57735,-0.57735,1.5,0.0625,0.2675,
+ -0.57735,0.57735,-0.57735,0.205,0,1.5,
+ -0.57735,0.57735,-0.57735,0.2675,0.0625,1.5
+};
+static const struct gllist lament_model_lid_d_frame = { GL_N3F_V3F, GL_TRIANGLES, 18, lament_model_lid_d_data, 0 };
+const struct gllist *lament_model_lid_d = &lament_model_lid_d_frame;
+
+static const float lament_model_pillar_a_data[] = {
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0.74,3,
+ -0.840455,0.541882,0,0.868083,1.922233,3,
+ -0.874085,0.485774,0,0.82974,1.858262,1.5,
+ -0.889521,0.456893,0,0.82974,1.858262,3,
+ -0.874085,0.485774,0,0.82974,1.858262,1.5,
+ -0.840455,0.541882,0,0.868083,1.922233,3,
+ -0.822262,0.56911,0,0.868083,1.922233,1.5,
+ -0.889521,0.456893,0,0.82974,1.858262,3,
+ -0.91749,0.397759,0,0.797852,1.790839,1.5,
+ -0.930022,0.367505,0,0.797852,1.790839,3,
+ -0.91749,0.397759,0,0.797852,1.790839,1.5,
+ -0.889521,0.456893,0,0.82974,1.858262,3,
+ -0.874085,0.485774,0,0.82974,1.858262,1.5,
+ -0.983848,0.179005,0,0.754603,1.648269,3,
+ -0.993446,0.114299,0,0.74366,1.574493,1.5,
+ -0.996656,0.081709,0,0.74366,1.574493,3,
+ -0.993446,0.114299,0,0.74366,1.574493,1.5,
+ -0.983848,0.179005,0,0.754603,1.648269,3,
+ -0.97746,0.211123,0,0.754603,1.648269,1.5,
+ 0.211123,0.97746,0,1.648269,2.245397,3,
+ 0.274577,0.961565,0,1.720616,2.227275,1.5,
+ 0.179005,0.983848,0,1.648269,2.245397,1.5,
+ 0.274577,0.961565,0,1.720616,2.227275,1.5,
+ 0.211123,0.97746,0,1.648269,2.245397,3,
+ 0.305914,0.952059,0,1.720616,2.227275,3,
+ 0.114299,0.993446,0,1.574493,2.25634,3,
+ 0.179005,0.983848,0,1.648269,2.245397,1.5,
+ 0.081709,0.996656,0,1.574493,2.25634,1.5,
+ 0.179005,0.983848,0,1.648269,2.245397,1.5,
+ 0.114299,0.993446,0,1.574493,2.25634,3,
+ 0.211123,0.97746,0,1.648269,2.245397,3,
+ -0.707107,0.707107,0,0.962599,2.037401,3,
+ -0.646965,0.76252,0,1.017861,2.087488,1.5,
+ -0.707107,0.707107,0,0.962599,2.037401,1.5,
+ -0.646965,0.76252,0,1.017861,2.087488,1.5,
+ -0.707107,0.707107,0,0.962599,2.037401,3,
+ -0.621651,0.783294,0,1.017861,2.087488,3,
+ -0.707107,0.707107,0,0.962599,2.037401,3,
+ -0.76252,0.646965,0,0.912512,1.982139,1.5,
+ -0.783294,0.621651,0,0.912512,1.982139,3,
+ -0.76252,0.646965,0,0.912512,1.982139,1.5,
+ -0.707107,0.707107,0,0.962599,2.037401,3,
+ -0.707107,0.707107,0,0.962599,2.037401,1.5,
+ 0.952059,0.305914,0,2.227275,1.720616,1.5,
+ 0.930022,0.367505,0,2.202148,1.790839,3,
+ 0.961565,0.274577,0,2.227275,1.720616,3,
+ 0.930022,0.367505,0,2.202148,1.790839,3,
+ 0.952059,0.305914,0,2.227275,1.720616,1.5,
+ 0.91749,0.397759,0,2.202148,1.790839,1.5,
+ -0.211123,-0.97746,0,1.351731,0.754603,3,
+ -0.274577,-0.961565,0,1.279384,0.772725,1.5,
+ -0.179005,-0.983848,0,1.351731,0.754603,1.5,
+ -0.274577,-0.961565,0,1.279384,0.772725,1.5,
+ -0.211123,-0.97746,0,1.351731,0.754603,3,
+ -0.305914,-0.952059,0,1.279384,0.772725,3,
+ -0.016373,-0.999866,0,1.5,0.74,3,
+ -0.081709,-0.996656,0,1.425507,0.74366,1.5,
+ 0.016373,-0.999866,0,1.5,0.74,1.5,
+ -0.081709,-0.996656,0,1.425507,0.74366,1.5,
+ -0.016373,-0.999866,0,1.5,0.74,3,
+ -0.114299,-0.993446,0,1.425507,0.74366,3,
+ 0.081709,-0.996656,0,1.574493,0.74366,3,
+ 0.016373,-0.999866,0,1.5,0.74,1.5,
+ 0.114299,-0.993446,0,1.574493,0.74366,1.5,
+ 0.016373,-0.999866,0,1.5,0.74,1.5,
+ 0.081709,-0.996656,0,1.574493,0.74366,3,
+ -0.016373,-0.999866,0,1.5,0.74,3,
+ 0.783294,-0.621651,0,2.087488,1.017861,1.5,
+ 0.822262,-0.56911,0,2.131917,1.077767,3,
+ 0.76252,-0.646965,0,2.087488,1.017861,3,
+ 0.822262,-0.56911,0,2.131917,1.077767,3,
+ 0.783294,-0.621651,0,2.087488,1.017861,1.5,
+ 0.840455,-0.541882,0,2.131917,1.077767,1.5,
+ -0.305914,-0.952059,0,1.279384,0.772725,3,
+ -0.367505,-0.930022,0,1.209161,0.797852,1.5,
+ -0.274577,-0.961565,0,1.279384,0.772725,1.5,
+ -0.367505,-0.930022,0,1.209161,0.797852,1.5,
+ -0.305914,-0.952059,0,1.279384,0.772725,3,
+ -0.397759,-0.91749,0,1.209161,0.797852,3,
+ 0.995185,0.098017,0,2.25634,1.574493,1.5,
+ 0.999866,0.016373,0,2.26,1.5,3,
+ 0.999866,-0.016373,0,2.26,1.5,1.5,
+ 0.999866,0.016373,0,2.26,1.5,3,
+ 0.995185,0.098017,0,2.25634,1.574493,1.5,
+ 0.995185,0.098017,0,2.25634,1.574493,3,
+ -0.114299,-0.993446,0,1.425507,0.74366,3,
+ -0.179005,-0.983848,0,1.351731,0.754603,1.5,
+ -0.081709,-0.996656,0,1.425507,0.74366,1.5,
+ -0.179005,-0.983848,0,1.351731,0.754603,1.5,
+ -0.114299,-0.993446,0,1.425507,0.74366,3,
+ -0.211123,-0.97746,0,1.351731,0.754603,3,
+ 0.456893,-0.889521,0,1.858262,0.82974,3,
+ 0.397759,-0.91749,0,1.790839,0.797852,1.5,
+ 0.485774,-0.874085,0,1.858262,0.82974,1.5,
+ 0.397759,-0.91749,0,1.790839,0.797852,1.5,
+ 0.456893,-0.889521,0,1.858262,0.82974,3,
+ 0.367505,-0.930022,0,1.790839,0.797852,3,
+ -0.541882,0.840455,0,1.077767,2.131917,3,
+ -0.485774,0.874085,0,1.141738,2.17026,1.5,
+ -0.56911,0.822262,0,1.077767,2.131917,1.5,
+ -0.485774,0.874085,0,1.141738,2.17026,1.5,
+ -0.541882,0.840455,0,1.077767,2.131917,3,
+ -0.456893,0.889521,0,1.141738,2.17026,3,
+ -0.621651,0.783294,0,1.017861,2.087488,3,
+ -0.56911,0.822262,0,1.077767,2.131917,1.5,
+ -0.646965,0.76252,0,1.017861,2.087488,1.5,
+ -0.56911,0.822262,0,1.077767,2.131917,1.5,
+ -0.621651,0.783294,0,1.017861,2.087488,3,
+ -0.541882,0.840455,0,1.077767,2.131917,3,
+ 0.485774,0.874085,0,1.858262,2.17026,3,
+ 0.541882,0.840455,0,1.922233,2.131917,1.5,
+ 0.456893,0.889521,0,1.858262,2.17026,1.5,
+ 0.541882,0.840455,0,1.922233,2.131917,1.5,
+ 0.485774,0.874085,0,1.858262,2.17026,3,
+ 0.56911,0.822262,0,1.922233,2.131917,3,
+ 0.71859,-0.695434,0,2.037401,0.962599,1.5,
+ 0.76252,-0.646965,0,2.087488,1.017861,3,
+ 0.695434,-0.71859,0,2.037401,0.962599,3,
+ 0.76252,-0.646965,0,2.087488,1.017861,3,
+ 0.71859,-0.695434,0,2.037401,0.962599,1.5,
+ 0.783294,-0.621651,0,2.087488,1.017861,1.5,
+ 0.97746,0.211123,0,2.245397,1.648269,1.5,
+ 0.961565,0.274577,0,2.227275,1.720616,3,
+ 0.983848,0.179005,0,2.245397,1.648269,3,
+ 0.961565,0.274577,0,2.227275,1.720616,3,
+ 0.97746,0.211123,0,2.245397,1.648269,1.5,
+ 0.952059,0.305914,0,2.227275,1.720616,1.5,
+ 0.993446,-0.114299,0,2.25634,1.425507,1.5,
+ 0.983848,-0.179005,0,2.245397,1.351731,3,
+ 0.97746,-0.211123,0,2.245397,1.351731,1.5,
+ 0.983848,-0.179005,0,2.245397,1.351731,3,
+ 0.993446,-0.114299,0,2.25634,1.425507,1.5,
+ 0.996656,-0.081709,0,2.25634,1.425507,3,
+ -0.397759,-0.91749,0,1.209161,0.797852,3,
+ -0.456893,-0.889521,0,1.141738,0.82974,1.5,
+ -0.367505,-0.930022,0,1.209161,0.797852,1.5,
+ -0.456893,-0.889521,0,1.141738,0.82974,1.5,
+ -0.397759,-0.91749,0,1.209161,0.797852,3,
+ -0.485774,-0.874085,0,1.141738,0.82974,3,
+ -0.930022,0.367505,0,0.797852,1.790839,3,
+ -0.952059,0.305914,0,0.772725,1.720616,1.5,
+ -0.961565,0.274577,0,0.772725,1.720616,3,
+ -0.952059,0.305914,0,0.772725,1.720616,1.5,
+ -0.930022,0.367505,0,0.797852,1.790839,3,
+ -0.91749,0.397759,0,0.797852,1.790839,1.5,
+ 0.016373,0.999866,0,1.5,2.26,3,
+ 0.081709,0.996656,0,1.574493,2.25634,1.5,
+ -0.016373,0.999866,0,1.5,2.26,1.5,
+ 0.081709,0.996656,0,1.574493,2.25634,1.5,
+ 0.016373,0.999866,0,1.5,2.26,3,
+ 0.114299,0.993446,0,1.574493,2.25634,3,
+ -0.081709,0.996656,0,1.425507,2.25634,3,
+ -0.016373,0.999866,0,1.5,2.26,1.5,
+ -0.114299,0.993446,0,1.425507,2.25634,1.5,
+ -0.016373,0.999866,0,1.5,2.26,1.5,
+ -0.081709,0.996656,0,1.425507,2.25634,3,
+ 0.016373,0.999866,0,1.5,2.26,3,
+ -0.179005,0.983848,0,1.351731,2.245397,3,
+ -0.114299,0.993446,0,1.425507,2.25634,1.5,
+ -0.211123,0.97746,0,1.351731,2.245397,1.5,
+ -0.114299,0.993446,0,1.425507,2.25634,1.5,
+ -0.179005,0.983848,0,1.351731,2.245397,3,
+ -0.081709,0.996656,0,1.425507,2.25634,3,
+ -0.274577,0.961565,0,1.279384,2.227275,3,
+ -0.211123,0.97746,0,1.351731,2.245397,1.5,
+ -0.305914,0.952059,0,1.279384,2.227275,1.5,
+ -0.211123,0.97746,0,1.351731,2.245397,1.5,
+ -0.274577,0.961565,0,1.279384,2.227275,3,
+ -0.179005,0.983848,0,1.351731,2.245397,3,
+ -0.367505,0.930022,0,1.209161,2.202148,3,
+ -0.305914,0.952059,0,1.279384,2.227275,1.5,
+ -0.397759,0.91749,0,1.209161,2.202148,1.5,
+ -0.305914,0.952059,0,1.279384,2.227275,1.5,
+ -0.367505,0.930022,0,1.209161,2.202148,3,
+ -0.274577,0.961565,0,1.279384,2.227275,3,
+ 0.874085,0.485774,0,2.17026,1.858262,1.5,
+ 0.840455,0.541882,0,2.131917,1.922233,3,
+ 0.889521,0.456893,0,2.17026,1.858262,3,
+ 0.840455,0.541882,0,2.131917,1.922233,3,
+ 0.874085,0.485774,0,2.17026,1.858262,1.5,
+ 0.822262,0.56911,0,2.131917,1.922233,1.5,
+ -0.783294,0.621651,0,0.912512,1.982139,3,
+ -0.822262,0.56911,0,0.868083,1.922233,1.5,
+ -0.840455,0.541882,0,0.868083,1.922233,3,
+ -0.822262,0.56911,0,0.868083,1.922233,1.5,
+ -0.783294,0.621651,0,0.912512,1.982139,3,
+ -0.76252,0.646965,0,0.912512,1.982139,1.5,
+ 0.541882,-0.840455,0,1.922233,0.868083,3,
+ 0.485774,-0.874085,0,1.858262,0.82974,1.5,
+ 0.56911,-0.822262,0,1.922233,0.868083,1.5,
+ 0.485774,-0.874085,0,1.858262,0.82974,1.5,
+ 0.541882,-0.840455,0,1.922233,0.868083,3,
+ 0.456893,-0.889521,0,1.858262,0.82974,3,
+ 0.621651,-0.783294,0,1.982139,0.912512,3,
+ 0.56911,-0.822262,0,1.922233,0.868083,1.5,
+ 0.646965,-0.76252,0,1.982139,0.912512,1.5,
+ 0.56911,-0.822262,0,1.922233,0.868083,1.5,
+ 0.621651,-0.783294,0,1.982139,0.912512,3,
+ 0.541882,-0.840455,0,1.922233,0.868083,3,
+ 0.695434,-0.71859,0,2.037401,0.962599,3,
+ 0.646965,-0.76252,0,1.982139,0.912512,1.5,
+ 0.71859,-0.695434,0,2.037401,0.962599,1.5,
+ 0.646965,-0.76252,0,1.982139,0.912512,1.5,
+ 0.695434,-0.71859,0,2.037401,0.962599,3,
+ 0.621651,-0.783294,0,1.982139,0.912512,3,
+ -0.646965,-0.76252,0,1.017861,0.912512,3,
+ -0.695434,-0.71859,0,0.962599,0.962599,1.5,
+ -0.621651,-0.783294,0,1.017861,0.912512,1.5,
+ -0.695434,-0.71859,0,0.962599,0.962599,1.5,
+ -0.646965,-0.76252,0,1.017861,0.912512,3,
+ -0.71859,-0.695434,0,0.962599,0.962599,3,
+ 0.397759,0.91749,0,1.790839,2.202148,3,
+ 0.456893,0.889521,0,1.858262,2.17026,1.5,
+ 0.367505,0.930022,0,1.790839,2.202148,1.5,
+ 0.456893,0.889521,0,1.858262,2.17026,1.5,
+ 0.397759,0.91749,0,1.790839,2.202148,3,
+ 0.485774,0.874085,0,1.858262,2.17026,3,
+ 0.822262,0.56911,0,2.131917,1.922233,1.5,
+ 0.783294,0.621651,0,2.087488,1.982139,3,
+ 0.840455,0.541882,0,2.131917,1.922233,3,
+ 0.783294,0.621651,0,2.087488,1.982139,3,
+ 0.822262,0.56911,0,2.131917,1.922233,1.5,
+ 0.76252,0.646965,0,2.087488,1.982139,1.5,
+ 0.995185,0.098017,0,2.25634,1.574493,1.5,
+ 0.983848,0.179005,0,2.245397,1.648269,3,
+ 0.995185,0.098017,0,2.25634,1.574493,3,
+ 0.983848,0.179005,0,2.245397,1.648269,3,
+ 0.995185,0.098017,0,2.25634,1.574493,1.5,
+ 0.97746,0.211123,0,2.245397,1.648269,1.5,
+ 0.56911,0.822262,0,1.922233,2.131917,3,
+ 0.621651,0.783294,0,1.982139,2.087488,1.5,
+ 0.541882,0.840455,0,1.922233,2.131917,1.5,
+ 0.621651,0.783294,0,1.982139,2.087488,1.5,
+ 0.56911,0.822262,0,1.922233,2.131917,3,
+ 0.646965,0.76252,0,1.982139,2.087488,3,
+ 0.646965,0.76252,0,1.982139,2.087488,3,
+ 0.695434,0.71859,0,2.037401,2.037401,1.5,
+ 0.621651,0.783294,0,1.982139,2.087488,1.5,
+ 0.695434,0.71859,0,2.037401,2.037401,1.5,
+ 0.646965,0.76252,0,1.982139,2.087488,3,
+ 0.71859,0.695434,0,2.037401,2.037401,3,
+ 0.305914,0.952059,0,1.720616,2.227275,3,
+ 0.367505,0.930022,0,1.790839,2.202148,1.5,
+ 0.274577,0.961565,0,1.720616,2.227275,1.5,
+ 0.367505,0.930022,0,1.790839,2.202148,1.5,
+ 0.305914,0.952059,0,1.720616,2.227275,3,
+ 0.397759,0.91749,0,1.790839,2.202148,3,
+ 0.91749,0.397759,0,2.202148,1.790839,1.5,
+ 0.889521,0.456893,0,2.17026,1.858262,3,
+ 0.930022,0.367505,0,2.202148,1.790839,3,
+ 0.889521,0.456893,0,2.17026,1.858262,3,
+ 0.91749,0.397759,0,2.202148,1.790839,1.5,
+ 0.874085,0.485774,0,2.17026,1.858262,1.5,
+ -0.485774,-0.874085,0,1.141738,0.82974,3,
+ -0.541882,-0.840455,0,1.077767,0.868083,1.5,
+ -0.456893,-0.889521,0,1.141738,0.82974,1.5,
+ -0.541882,-0.840455,0,1.077767,0.868083,1.5,
+ -0.485774,-0.874085,0,1.141738,0.82974,3,
+ -0.56911,-0.822262,0,1.077767,0.868083,3,
+ 0.367505,-0.930022,0,1.790839,0.797852,3,
+ 0.305914,-0.952059,0,1.720616,0.772725,1.5,
+ 0.397759,-0.91749,0,1.790839,0.797852,1.5,
+ 0.305914,-0.952059,0,1.720616,0.772725,1.5,
+ 0.367505,-0.930022,0,1.790839,0.797852,3,
+ 0.274577,-0.961565,0,1.720616,0.772725,3,
+ -0.996656,0.081709,0,0.74366,1.574493,3,
+ -0.999866,0.016373,0,0.74,1.5,1.5,
+ -0.999866,-0.016373,0,0.74,1.5,3,
+ -0.999866,0.016373,0,0.74,1.5,1.5,
+ -0.996656,0.081709,0,0.74366,1.574493,3,
+ -0.993446,0.114299,0,0.74366,1.574493,1.5,
+ -0.961565,0.274577,0,0.772725,1.720616,3,
+ -0.97746,0.211123,0,0.754603,1.648269,1.5,
+ -0.983848,0.179005,0,0.754603,1.648269,3,
+ -0.97746,0.211123,0,0.754603,1.648269,1.5,
+ -0.961565,0.274577,0,0.772725,1.720616,3,
+ -0.952059,0.305914,0,0.772725,1.720616,1.5,
+ 0.76252,0.646965,0,2.087488,1.982139,1.5,
+ 0.71859,0.695434,0,2.037401,2.037401,3,
+ 0.783294,0.621651,0,2.087488,1.982139,3,
+ 0.71859,0.695434,0,2.037401,2.037401,3,
+ 0.76252,0.646965,0,2.087488,1.982139,1.5,
+ 0.695434,0.71859,0,2.037401,2.037401,1.5,
+ 0.274577,-0.961565,0,1.720616,0.772725,3,
+ 0.211123,-0.97746,0,1.648269,0.754603,1.5,
+ 0.305914,-0.952059,0,1.720616,0.772725,1.5,
+ 0.211123,-0.97746,0,1.648269,0.754603,1.5,
+ 0.274577,-0.961565,0,1.720616,0.772725,3,
+ 0.179005,-0.983848,0,1.648269,0.754603,3,
+ -0.71859,-0.695434,0,0.962599,0.962599,3,
+ -0.76252,-0.646965,0,0.912512,1.017861,1.5,
+ -0.695434,-0.71859,0,0.962599,0.962599,1.5,
+ -0.76252,-0.646965,0,0.912512,1.017861,1.5,
+ -0.71859,-0.695434,0,0.962599,0.962599,3,
+ -0.783294,-0.621651,0,0.912512,1.017861,3,
+ -0.91749,-0.397759,0,0.797852,1.209161,3,
+ -0.881921,-0.471397,0,0.82974,1.141738,1.5,
+ -0.881921,-0.471397,0,0.82974,1.141738,3,
+ -0.881921,-0.471397,0,0.82974,1.141738,1.5,
+ -0.91749,-0.397759,0,0.797852,1.209161,3,
+ -0.930022,-0.367505,0,0.797852,1.209161,1.5,
+ 0.840455,-0.541882,0,2.131917,1.077767,1.5,
+ 0.881921,-0.471397,0,2.17026,1.141738,3,
+ 0.822262,-0.56911,0,2.131917,1.077767,3,
+ 0.881921,-0.471397,0,2.17026,1.141738,3,
+ 0.840455,-0.541882,0,2.131917,1.077767,1.5,
+ 0.881921,-0.471397,0,2.17026,1.141738,1.5,
+ 0.91749,-0.397759,0,2.202148,1.209161,1.5,
+ 0.881921,-0.471397,0,2.17026,1.141738,3,
+ 0.881921,-0.471397,0,2.17026,1.141738,1.5,
+ 0.881921,-0.471397,0,2.17026,1.141738,3,
+ 0.91749,-0.397759,0,2.202148,1.209161,1.5,
+ 0.930022,-0.367505,0,2.202148,1.209161,3,
+ -0.840455,-0.541882,0,0.868083,1.077767,3,
+ -0.881921,-0.471397,0,0.82974,1.141738,1.5,
+ -0.822262,-0.56911,0,0.868083,1.077767,1.5,
+ -0.881921,-0.471397,0,0.82974,1.141738,1.5,
+ -0.840455,-0.541882,0,0.868083,1.077767,3,
+ -0.881921,-0.471397,0,0.82974,1.141738,3,
+ 0.97746,-0.211123,0,2.245397,1.351731,1.5,
+ 0.961565,-0.274577,0,2.227275,1.279384,3,
+ 0.952059,-0.305914,0,2.227275,1.279384,1.5,
+ 0.961565,-0.274577,0,2.227275,1.279384,3,
+ 0.97746,-0.211123,0,2.245397,1.351731,1.5,
+ 0.983848,-0.179005,0,2.245397,1.351731,3,
+ 0.952059,-0.305914,0,2.227275,1.279384,1.5,
+ 0.930022,-0.367505,0,2.202148,1.209161,3,
+ 0.91749,-0.397759,0,2.202148,1.209161,1.5,
+ 0.930022,-0.367505,0,2.202148,1.209161,3,
+ 0.952059,-0.305914,0,2.227275,1.279384,1.5,
+ 0.961565,-0.274577,0,2.227275,1.279384,3,
+ 0.999866,-0.016373,0,2.26,1.5,1.5,
+ 0.996656,-0.081709,0,2.25634,1.425507,3,
+ 0.993446,-0.114299,0,2.25634,1.425507,1.5,
+ 0.996656,-0.081709,0,2.25634,1.425507,3,
+ 0.999866,-0.016373,0,2.26,1.5,1.5,
+ 0.999866,0.016373,0,2.26,1.5,3,
+ 0.179005,-0.983848,0,1.648269,0.754603,3,
+ 0.114299,-0.993446,0,1.574493,0.74366,1.5,
+ 0.211123,-0.97746,0,1.648269,0.754603,1.5,
+ 0.114299,-0.993446,0,1.574493,0.74366,1.5,
+ 0.179005,-0.983848,0,1.648269,0.754603,3,
+ 0.081709,-0.996656,0,1.574493,0.74366,3,
+ -0.783294,-0.621651,0,0.912512,1.017861,3,
+ -0.822262,-0.56911,0,0.868083,1.077767,1.5,
+ -0.76252,-0.646965,0,0.912512,1.017861,1.5,
+ -0.822262,-0.56911,0,0.868083,1.077767,1.5,
+ -0.783294,-0.621651,0,0.912512,1.017861,3,
+ -0.840455,-0.541882,0,0.868083,1.077767,3,
+ -0.56911,-0.822262,0,1.077767,0.868083,3,
+ -0.621651,-0.783294,0,1.017861,0.912512,1.5,
+ -0.541882,-0.840455,0,1.077767,0.868083,1.5,
+ -0.621651,-0.783294,0,1.017861,0.912512,1.5,
+ -0.56911,-0.822262,0,1.077767,0.868083,3,
+ -0.646965,-0.76252,0,1.017861,0.912512,3,
+ -0.999866,-0.016373,0,0.74,1.5,3,
+ -0.996656,-0.081709,0,0.74366,1.425507,1.5,
+ -0.993446,-0.114299,0,0.74366,1.425507,3,
+ -0.996656,-0.081709,0,0.74366,1.425507,1.5,
+ -0.999866,-0.016373,0,0.74,1.5,3,
+ -0.999866,0.016373,0,0.74,1.5,1.5,
+ -0.993446,-0.114299,0,0.74366,1.425507,3,
+ -0.983848,-0.179005,0,0.754603,1.351731,1.5,
+ -0.97746,-0.211123,0,0.754603,1.351731,3,
+ -0.983848,-0.179005,0,0.754603,1.351731,1.5,
+ -0.993446,-0.114299,0,0.74366,1.425507,3,
+ -0.996656,-0.081709,0,0.74366,1.425507,1.5,
+ -0.97746,-0.211123,0,0.754603,1.351731,3,
+ -0.961565,-0.274577,0,0.772725,1.279384,1.5,
+ -0.952059,-0.305914,0,0.772725,1.279384,3,
+ -0.961565,-0.274577,0,0.772725,1.279384,1.5,
+ -0.97746,-0.211123,0,0.754603,1.351731,3,
+ -0.983848,-0.179005,0,0.754603,1.351731,1.5,
+ -0.952059,-0.305914,0,0.772725,1.279384,3,
+ -0.930022,-0.367505,0,0.797852,1.209161,1.5,
+ -0.91749,-0.397759,0,0.797852,1.209161,3,
+ -0.930022,-0.367505,0,0.797852,1.209161,1.5,
+ -0.952059,-0.305914,0,0.772725,1.279384,3,
+ -0.961565,-0.274577,0,0.772725,1.279384,1.5,
+ -0.456893,0.889521,0,1.141738,2.17026,3,
+ -0.397759,0.91749,0,1.209161,2.202148,1.5,
+ -0.485774,0.874085,0,1.141738,2.17026,1.5,
+ -0.397759,0.91749,0,1.209161,2.202148,1.5,
+ -0.456893,0.889521,0,1.141738,2.17026,3,
+ -0.367505,0.930022,0,1.209161,2.202148,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,-1,2.245397,1.351731,1.5,
+ 0,0,-1,2.202148,1.209161,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.202148,1.209161,1.5,
+ 0,0,-1,2.245397,1.351731,1.5,
+ 0,0,-1,2.227275,1.279384,1.5,
+ 0,0,-1,2.26,1.5,1.5,
+ 0,0,-1,2.245397,1.351731,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.245397,1.351731,1.5,
+ 0,0,-1,2.26,1.5,1.5,
+ 0,0,-1,2.25634,1.425507,1.5,
+ 0,0,-1,2.131917,1.077767,1.5,
+ 0,0,-1,2.037401,0.962599,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.037401,0.962599,1.5,
+ 0,0,-1,2.131917,1.077767,1.5,
+ 0,0,-1,2.087488,1.017861,1.5,
+ 0,0,-1,2.202148,1.209161,1.5,
+ 0,0,-1,2.131917,1.077767,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.131917,1.077767,1.5,
+ 0,0,-1,2.202148,1.209161,1.5,
+ 0,0,-1,2.17026,1.141738,1.5,
+ 0,0,-1,1.425507,2.25634,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.351731,2.245397,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.425507,2.25634,1.5,
+ 0,0,-1,1.5,2.26,1.5,
+ 0,0,-1,1.279384,2.227275,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.209161,2.202148,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.279384,2.227275,1.5,
+ 0,0,-1,1.351731,2.245397,1.5,
+ 0,0,-1,2.202148,1.790839,1.5,
+ 0,0,-1,2.245397,1.648269,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.245397,1.648269,1.5,
+ 0,0,-1,2.202148,1.790839,1.5,
+ 0,0,-1,2.227275,1.720616,1.5,
+ 0,0,-1,2.245397,1.648269,1.5,
+ 0,0,-1,2.26,1.5,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.26,1.5,1.5,
+ 0,0,-1,2.245397,1.648269,1.5,
+ 0,0,-1,2.25634,1.574493,1.5,
+ 0,0,-1,1.790839,0.797852,1.5,
+ 0,0,-1,1.648269,0.754603,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.648269,0.754603,1.5,
+ 0,0,-1,1.790839,0.797852,1.5,
+ 0,0,-1,1.720616,0.772725,1.5,
+ 0,0,-1,1.922233,0.868083,1.5,
+ 0,0,-1,1.790839,0.797852,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.790839,0.797852,1.5,
+ 0,0,-1,1.922233,0.868083,1.5,
+ 0,0,-1,1.858262,0.82974,1.5,
+ 0,0,-1,1.922233,2.131917,1.5,
+ 0,0,-1,2.037401,2.037401,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.037401,2.037401,1.5,
+ 0,0,-1,1.922233,2.131917,1.5,
+ 0,0,-1,1.982139,2.087488,1.5,
+ 0,0,-1,2.037401,2.037401,1.5,
+ 0,0,-1,2.131917,1.922233,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.131917,1.922233,1.5,
+ 0,0,-1,2.037401,2.037401,1.5,
+ 0,0,-1,2.087488,1.982139,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.912512,1.017861,1.5,
+ 0,0,-1,0.868083,1.077767,1.5,
+ 0,0,-1,0.912512,1.017861,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.962599,0.962599,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.82974,1.141738,1.5,
+ 0,0,-1,0.797852,1.209161,1.5,
+ 0,0,-1,0.82974,1.141738,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.868083,1.077767,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.017861,0.912512,1.5,
+ 0,0,-1,0.962599,0.962599,1.5,
+ 0,0,-1,1.017861,0.912512,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.077767,0.868083,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.141738,0.82974,1.5,
+ 0,0,-1,1.077767,0.868083,1.5,
+ 0,0,-1,1.141738,0.82974,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.209161,0.797852,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.425507,0.74366,1.5,
+ 0,0,-1,1.351731,0.754603,1.5,
+ 0,0,-1,1.425507,0.74366,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.5,0.74,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.574493,0.74366,1.5,
+ 0,0,-1,1.5,0.74,1.5,
+ 0,0,-1,1.574493,0.74366,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.648269,0.754603,1.5,
+ 0,0,-1,1.574493,2.25634,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.5,2.26,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.574493,2.25634,1.5,
+ 0,0,-1,1.648269,2.245397,1.5,
+ 0,0,-1,1.648269,2.245397,1.5,
+ 0,0,-1,1.790839,2.202148,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.790839,2.202148,1.5,
+ 0,0,-1,1.648269,2.245397,1.5,
+ 0,0,-1,1.720616,2.227275,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.74366,1.425507,1.5,
+ 0,0,-1,0.74,1.5,1.5,
+ 0,0,-1,0.74366,1.425507,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.754603,1.351731,1.5,
+ 0,0,-1,0.74366,1.574493,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.74,1.5,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.74366,1.574493,1.5,
+ 0,0,-1,0.754603,1.648269,1.5,
+ 0,0,-1,0.82974,1.858262,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.797852,1.790839,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.82974,1.858262,1.5,
+ 0,0,-1,0.868083,1.922233,1.5,
+ 0,0,-1,0.772725,1.720616,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.754603,1.648269,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.772725,1.720616,1.5,
+ 0,0,-1,0.797852,1.790839,1.5,
+ 0,0,-1,1.017861,2.087488,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.962599,2.037401,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.017861,2.087488,1.5,
+ 0,0,-1,1.077767,2.131917,1.5,
+ 0,0,-1,0.912512,1.982139,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.868083,1.922233,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.912512,1.982139,1.5,
+ 0,0,-1,0.962599,2.037401,1.5,
+ 0,0,-1,1.790839,2.202148,1.5,
+ 0,0,-1,1.922233,2.131917,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.922233,2.131917,1.5,
+ 0,0,-1,1.790839,2.202148,1.5,
+ 0,0,-1,1.858262,2.17026,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.279384,0.772725,1.5,
+ 0,0,-1,1.209161,0.797852,1.5,
+ 0,0,-1,1.279384,0.772725,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.351731,0.754603,1.5,
+ 0,0,-1,2.131917,1.922233,1.5,
+ 0,0,-1,2.202148,1.790839,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.202148,1.790839,1.5,
+ 0,0,-1,2.131917,1.922233,1.5,
+ 0,0,-1,2.17026,1.858262,1.5,
+ 0,0,-1,2.037401,0.962599,1.5,
+ 0,0,-1,1.922233,0.868083,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.922233,0.868083,1.5,
+ 0,0,-1,2.037401,0.962599,1.5,
+ 0,0,-1,1.982139,0.912512,1.5,
+ 0,0,-1,1.141738,2.17026,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.077767,2.131917,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.141738,2.17026,1.5,
+ 0,0,-1,1.209161,2.202148,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.772725,1.279384,1.5,
+ 0,0,-1,0.754603,1.351731,1.5,
+ 0,0,-1,0.772725,1.279384,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.797852,1.209161,1.5
+};
+static const struct gllist lament_model_pillar_a_frame = { GL_N3F_V3F, GL_TRIANGLES, 768, lament_model_pillar_a_data, 0 };
+const struct gllist *lament_model_pillar_a = &lament_model_pillar_a_frame;
+
+static const float lament_model_pillar_b_data[] = {
+ 0.97746,0.211123,0,2.245397,1.648269,0,
+ 0.961565,0.274577,0,2.227275,1.720616,1.5,
+ 0.983848,0.179005,0,2.245397,1.648269,1.5,
+ 0.961565,0.274577,0,2.227275,1.720616,1.5,
+ 0.97746,0.211123,0,2.245397,1.648269,0,
+ 0.952059,0.305914,0,2.227275,1.720616,0,
+ -0.621651,0.783294,0,1.017861,2.087488,1.5,
+ -0.56911,0.822262,0,1.077767,2.131917,0,
+ -0.646965,0.76252,0,1.017861,2.087488,0,
+ -0.56911,0.822262,0,1.077767,2.131917,0,
+ -0.621651,0.783294,0,1.017861,2.087488,1.5,
+ -0.541882,0.840455,0,1.077767,2.131917,1.5,
+ 0.485774,0.874085,0,1.858262,2.17026,1.5,
+ 0.541882,0.840455,0,1.922233,2.131917,0,
+ 0.456893,0.889521,0,1.858262,2.17026,0,
+ 0.541882,0.840455,0,1.922233,2.131917,0,
+ 0.485774,0.874085,0,1.858262,2.17026,1.5,
+ 0.56911,0.822262,0,1.922233,2.131917,1.5,
+ 0.456893,-0.889521,0,1.858262,0.82974,1.5,
+ 0.397759,-0.91749,0,1.790839,0.797852,0,
+ 0.485774,-0.874085,0,1.858262,0.82974,0,
+ 0.397759,-0.91749,0,1.790839,0.797852,0,
+ 0.456893,-0.889521,0,1.858262,0.82974,1.5,
+ 0.367505,-0.930022,0,1.790839,0.797852,1.5,
+ -0.541882,0.840455,0,1.077767,2.131917,1.5,
+ -0.485774,0.874085,0,1.141738,2.17026,0,
+ -0.56911,0.822262,0,1.077767,2.131917,0,
+ -0.485774,0.874085,0,1.141738,2.17026,0,
+ -0.541882,0.840455,0,1.077767,2.131917,1.5,
+ -0.456893,0.889521,0,1.141738,2.17026,1.5,
+ -0.211123,-0.97746,0,1.351731,0.754603,1.5,
+ -0.274577,-0.961565,0,1.279384,0.772725,0,
+ -0.179005,-0.983848,0,1.351731,0.754603,0,
+ -0.274577,-0.961565,0,1.279384,0.772725,0,
+ -0.211123,-0.97746,0,1.351731,0.754603,1.5,
+ -0.305914,-0.952059,0,1.279384,0.772725,1.5,
+ -0.114299,-0.993446,0,1.425507,0.74366,1.5,
+ -0.179005,-0.983848,0,1.351731,0.754603,0,
+ -0.081709,-0.996656,0,1.425507,0.74366,0,
+ -0.179005,-0.983848,0,1.351731,0.754603,0,
+ -0.114299,-0.993446,0,1.425507,0.74366,1.5,
+ -0.211123,-0.97746,0,1.351731,0.754603,1.5,
+ -0.016373,-0.999866,0,1.5,0.74,1.5,
+ -0.081709,-0.996656,0,1.425507,0.74366,0,
+ 0.016373,-0.999866,0,1.5,0.74,0,
+ -0.081709,-0.996656,0,1.425507,0.74366,0,
+ -0.016373,-0.999866,0,1.5,0.74,1.5,
+ -0.114299,-0.993446,0,1.425507,0.74366,1.5,
+ 0.081709,-0.996656,0,1.574493,0.74366,1.5,
+ 0.016373,-0.999866,0,1.5,0.74,0,
+ 0.114299,-0.993446,0,1.574493,0.74366,0,
+ 0.016373,-0.999866,0,1.5,0.74,0,
+ 0.081709,-0.996656,0,1.574493,0.74366,1.5,
+ -0.016373,-0.999866,0,1.5,0.74,1.5,
+ 0.783294,-0.621651,0,2.087488,1.017861,0,
+ 0.822262,-0.56911,0,2.131917,1.077767,1.5,
+ 0.76252,-0.646965,0,2.087488,1.017861,1.5,
+ 0.822262,-0.56911,0,2.131917,1.077767,1.5,
+ 0.783294,-0.621651,0,2.087488,1.017861,0,
+ 0.840455,-0.541882,0,2.131917,1.077767,0,
+ -0.305914,-0.952059,0,1.279384,0.772725,1.5,
+ -0.367505,-0.930022,0,1.209161,0.797852,0,
+ -0.274577,-0.961565,0,1.279384,0.772725,0,
+ -0.367505,-0.930022,0,1.209161,0.797852,0,
+ -0.305914,-0.952059,0,1.279384,0.772725,1.5,
+ -0.397759,-0.91749,0,1.209161,0.797852,1.5,
+ 1,0,0,2.26,1.5,0,
+ 0.996656,0.081709,0,2.25634,1.574493,1.5,
+ 1,0,0,2.26,1.5,1.5,
+ 0.996656,0.081709,0,2.25634,1.574493,1.5,
+ 1,0,0,2.26,1.5,0,
+ 0.993446,0.114299,0,2.25634,1.574493,0,
+ -0.980785,0.19509,0,0.754603,1.648269,1.5,
+ -0.993446,0.114299,0,0.74366,1.574493,0,
+ -0.996656,0.081709,0,0.74366,1.574493,1.5,
+ -0.993446,0.114299,0,0.74366,1.574493,0,
+ -0.980785,0.19509,0,0.754603,1.648269,1.5,
+ -0.980785,0.19509,0,0.754603,1.648269,0,
+ 0.211123,0.97746,0,1.648269,2.245397,1.5,
+ 0.274577,0.961565,0,1.720616,2.227275,0,
+ 0.179005,0.983848,0,1.648269,2.245397,0,
+ 0.274577,0.961565,0,1.720616,2.227275,0,
+ 0.211123,0.97746,0,1.648269,2.245397,1.5,
+ 0.305914,0.952059,0,1.720616,2.227275,1.5,
+ 0.114299,0.993446,0,1.574493,2.25634,1.5,
+ 0.179005,0.983848,0,1.648269,2.245397,0,
+ 0.081709,0.996656,0,1.574493,2.25634,0,
+ 0.179005,0.983848,0,1.648269,2.245397,0,
+ 0.114299,0.993446,0,1.574493,2.25634,1.5,
+ 0.211123,0.97746,0,1.648269,2.245397,1.5,
+ -0.707107,0.707107,0,0.962599,2.037401,1.5,
+ -0.646965,0.76252,0,1.017861,2.087488,0,
+ -0.707107,0.707107,0,0.962599,2.037401,0,
+ -0.646965,0.76252,0,1.017861,2.087488,0,
+ -0.707107,0.707107,0,0.962599,2.037401,1.5,
+ -0.621651,0.783294,0,1.017861,2.087488,1.5,
+ -0.707107,0.707107,0,0.962599,2.037401,1.5,
+ -0.76252,0.646965,0,0.912512,1.982139,0,
+ -0.783294,0.621651,0,0.912512,1.982139,1.5,
+ -0.76252,0.646965,0,0.912512,1.982139,0,
+ -0.707107,0.707107,0,0.962599,2.037401,1.5,
+ -0.707107,0.707107,0,0.962599,2.037401,0,
+ -0.881921,0.471397,0,0.82974,1.858262,1.5,
+ -0.83147,0.55557,0,0.868083,1.922233,0,
+ -0.881921,0.471397,0,0.82974,1.858262,0,
+ -0.83147,0.55557,0,0.868083,1.922233,0,
+ -0.881921,0.471397,0,0.82974,1.858262,1.5,
+ -0.83147,0.55557,0,0.868083,1.922233,1.5,
+ -0.881921,0.471397,0,0.82974,1.858262,1.5,
+ -0.91749,0.397759,0,0.797852,1.790839,0,
+ -0.930022,0.367505,0,0.797852,1.790839,1.5,
+ -0.91749,0.397759,0,0.797852,1.790839,0,
+ -0.881921,0.471397,0,0.82974,1.858262,1.5,
+ -0.881921,0.471397,0,0.82974,1.858262,0,
+ -0.930022,0.367505,0,0.797852,1.790839,1.5,
+ -0.95694,0.290285,0,0.772725,1.720616,0,
+ -0.95694,0.290285,0,0.772725,1.720616,1.5,
+ -0.95694,0.290285,0,0.772725,1.720616,0,
+ -0.930022,0.367505,0,0.797852,1.790839,1.5,
+ -0.91749,0.397759,0,0.797852,1.790839,0,
+ 0.016373,0.999866,0,1.5,2.26,1.5,
+ 0.081709,0.996656,0,1.574493,2.25634,0,
+ -0.016373,0.999866,0,1.5,2.26,0,
+ 0.081709,0.996656,0,1.574493,2.25634,0,
+ 0.016373,0.999866,0,1.5,2.26,1.5,
+ 0.114299,0.993446,0,1.574493,2.25634,1.5,
+ -0.081709,0.996656,0,1.425507,2.25634,1.5,
+ -0.016373,0.999866,0,1.5,2.26,0,
+ -0.114299,0.993446,0,1.425507,2.25634,0,
+ -0.016373,0.999866,0,1.5,2.26,0,
+ -0.081709,0.996656,0,1.425507,2.25634,1.5,
+ 0.016373,0.999866,0,1.5,2.26,1.5,
+ -0.179005,0.983848,0,1.351731,2.245397,1.5,
+ -0.114299,0.993446,0,1.425507,2.25634,0,
+ -0.211123,0.97746,0,1.351731,2.245397,0,
+ -0.114299,0.993446,0,1.425507,2.25634,0,
+ -0.179005,0.983848,0,1.351731,2.245397,1.5,
+ -0.081709,0.996656,0,1.425507,2.25634,1.5,
+ -0.274577,0.961565,0,1.279384,2.227275,1.5,
+ -0.211123,0.97746,0,1.351731,2.245397,0,
+ -0.305914,0.952059,0,1.279384,2.227275,0,
+ -0.211123,0.97746,0,1.351731,2.245397,0,
+ -0.274577,0.961565,0,1.279384,2.227275,1.5,
+ -0.179005,0.983848,0,1.351731,2.245397,1.5,
+ -0.367505,0.930022,0,1.209161,2.202148,1.5,
+ -0.305914,0.952059,0,1.279384,2.227275,0,
+ -0.397759,0.91749,0,1.209161,2.202148,0,
+ -0.305914,0.952059,0,1.279384,2.227275,0,
+ -0.367505,0.930022,0,1.209161,2.202148,1.5,
+ -0.274577,0.961565,0,1.279384,2.227275,1.5,
+ 0.874085,0.485774,0,2.17026,1.858262,0,
+ 0.83147,0.55557,0,2.131917,1.922233,1.5,
+ 0.889521,0.456893,0,2.17026,1.858262,1.5,
+ 0.83147,0.55557,0,2.131917,1.922233,1.5,
+ 0.874085,0.485774,0,2.17026,1.858262,0,
+ 0.83147,0.55557,0,2.131917,1.922233,0,
+ -0.783294,0.621651,0,0.912512,1.982139,1.5,
+ -0.83147,0.55557,0,0.868083,1.922233,0,
+ -0.83147,0.55557,0,0.868083,1.922233,1.5,
+ -0.83147,0.55557,0,0.868083,1.922233,0,
+ -0.783294,0.621651,0,0.912512,1.982139,1.5,
+ -0.76252,0.646965,0,0.912512,1.982139,0,
+ 0.541882,-0.840455,0,1.922233,0.868083,1.5,
+ 0.485774,-0.874085,0,1.858262,0.82974,0,
+ 0.56911,-0.822262,0,1.922233,0.868083,0,
+ 0.485774,-0.874085,0,1.858262,0.82974,0,
+ 0.541882,-0.840455,0,1.922233,0.868083,1.5,
+ 0.456893,-0.889521,0,1.858262,0.82974,1.5,
+ 0.621651,-0.783294,0,1.982139,0.912512,1.5,
+ 0.56911,-0.822262,0,1.922233,0.868083,0,
+ 0.646965,-0.76252,0,1.982139,0.912512,0,
+ 0.56911,-0.822262,0,1.922233,0.868083,0,
+ 0.621651,-0.783294,0,1.982139,0.912512,1.5,
+ 0.541882,-0.840455,0,1.922233,0.868083,1.5,
+ 0.695434,-0.71859,0,2.037401,0.962599,1.5,
+ 0.646965,-0.76252,0,1.982139,0.912512,0,
+ 0.71859,-0.695434,0,2.037401,0.962599,0,
+ 0.646965,-0.76252,0,1.982139,0.912512,0,
+ 0.695434,-0.71859,0,2.037401,0.962599,1.5,
+ 0.621651,-0.783294,0,1.982139,0.912512,1.5,
+ -0.646965,-0.76252,0,1.017861,0.912512,1.5,
+ -0.695434,-0.71859,0,0.962599,0.962599,0,
+ -0.621651,-0.783294,0,1.017861,0.912512,0,
+ -0.695434,-0.71859,0,0.962599,0.962599,0,
+ -0.646965,-0.76252,0,1.017861,0.912512,1.5,
+ -0.71859,-0.695434,0,0.962599,0.962599,1.5,
+ 0.397759,0.91749,0,1.790839,2.202148,1.5,
+ 0.456893,0.889521,0,1.858262,2.17026,0,
+ 0.367505,0.930022,0,1.790839,2.202148,0,
+ 0.456893,0.889521,0,1.858262,2.17026,0,
+ 0.397759,0.91749,0,1.790839,2.202148,1.5,
+ 0.485774,0.874085,0,1.858262,2.17026,1.5,
+ 0.783294,0.621651,0,2.087488,1.982139,0,
+ 0.83147,0.55557,0,2.131917,1.922233,1.5,
+ 0.83147,0.55557,0,2.131917,1.922233,0,
+ 0.83147,0.55557,0,2.131917,1.922233,1.5,
+ 0.783294,0.621651,0,2.087488,1.982139,0,
+ 0.76252,0.646965,0,2.087488,1.982139,1.5,
+ 0.993446,0.114299,0,2.25634,1.574493,0,
+ 0.983848,0.179005,0,2.245397,1.648269,1.5,
+ 0.996656,0.081709,0,2.25634,1.574493,1.5,
+ 0.983848,0.179005,0,2.245397,1.648269,1.5,
+ 0.993446,0.114299,0,2.25634,1.574493,0,
+ 0.97746,0.211123,0,2.245397,1.648269,0,
+ 0.56911,0.822262,0,1.922233,2.131917,1.5,
+ 0.621651,0.783294,0,1.982139,2.087488,0,
+ 0.541882,0.840455,0,1.922233,2.131917,0,
+ 0.621651,0.783294,0,1.982139,2.087488,0,
+ 0.56911,0.822262,0,1.922233,2.131917,1.5,
+ 0.646965,0.76252,0,1.982139,2.087488,1.5,
+ 0.646965,0.76252,0,1.982139,2.087488,1.5,
+ 0.707107,0.707107,0,2.037401,2.037401,0,
+ 0.621651,0.783294,0,1.982139,2.087488,0,
+ 0.707107,0.707107,0,2.037401,2.037401,0,
+ 0.646965,0.76252,0,1.982139,2.087488,1.5,
+ 0.707107,0.707107,0,2.037401,2.037401,1.5,
+ 0.305914,0.952059,0,1.720616,2.227275,1.5,
+ 0.367505,0.930022,0,1.790839,2.202148,0,
+ 0.274577,0.961565,0,1.720616,2.227275,0,
+ 0.367505,0.930022,0,1.790839,2.202148,0,
+ 0.305914,0.952059,0,1.720616,2.227275,1.5,
+ 0.397759,0.91749,0,1.790839,2.202148,1.5,
+ 0.91749,0.397759,0,2.202148,1.790839,0,
+ 0.889521,0.456893,0,2.17026,1.858262,1.5,
+ 0.930022,0.367505,0,2.202148,1.790839,1.5,
+ 0.889521,0.456893,0,2.17026,1.858262,1.5,
+ 0.91749,0.397759,0,2.202148,1.790839,0,
+ 0.874085,0.485774,0,2.17026,1.858262,0,
+ -0.485774,-0.874085,0,1.141738,0.82974,1.5,
+ -0.541882,-0.840455,0,1.077767,0.868083,0,
+ -0.456893,-0.889521,0,1.141738,0.82974,0,
+ -0.541882,-0.840455,0,1.077767,0.868083,0,
+ -0.485774,-0.874085,0,1.141738,0.82974,1.5,
+ -0.56911,-0.822262,0,1.077767,0.868083,1.5,
+ 0.367505,-0.930022,0,1.790839,0.797852,1.5,
+ 0.305914,-0.952059,0,1.720616,0.772725,0,
+ 0.397759,-0.91749,0,1.790839,0.797852,0,
+ 0.305914,-0.952059,0,1.720616,0.772725,0,
+ 0.367505,-0.930022,0,1.790839,0.797852,1.5,
+ 0.274577,-0.961565,0,1.720616,0.772725,1.5,
+ -0.996656,0.081709,0,0.74366,1.574493,1.5,
+ -0.999866,0.016373,0,0.74,1.5,0,
+ -0.999866,-0.016373,0,0.74,1.5,1.5,
+ -0.999866,0.016373,0,0.74,1.5,0,
+ -0.996656,0.081709,0,0.74366,1.574493,1.5,
+ -0.993446,0.114299,0,0.74366,1.574493,0,
+ -0.980785,0.19509,0,0.754603,1.648269,1.5,
+ -0.95694,0.290285,0,0.772725,1.720616,0,
+ -0.980785,0.19509,0,0.754603,1.648269,0,
+ -0.95694,0.290285,0,0.772725,1.720616,0,
+ -0.980785,0.19509,0,0.754603,1.648269,1.5,
+ -0.95694,0.290285,0,0.772725,1.720616,1.5,
+ 0.707107,0.707107,0,2.037401,2.037401,0,
+ 0.76252,0.646965,0,2.087488,1.982139,1.5,
+ 0.783294,0.621651,0,2.087488,1.982139,0,
+ 0.76252,0.646965,0,2.087488,1.982139,1.5,
+ 0.707107,0.707107,0,2.037401,2.037401,0,
+ 0.707107,0.707107,0,2.037401,2.037401,1.5,
+ 0.274577,-0.961565,0,1.720616,0.772725,1.5,
+ 0.211123,-0.97746,0,1.648269,0.754603,0,
+ 0.305914,-0.952059,0,1.720616,0.772725,0,
+ 0.211123,-0.97746,0,1.648269,0.754603,0,
+ 0.274577,-0.961565,0,1.720616,0.772725,1.5,
+ 0.179005,-0.983848,0,1.648269,0.754603,1.5,
+ -0.71859,-0.695434,0,0.962599,0.962599,1.5,
+ -0.77301,-0.634393,0,0.912512,1.017861,0,
+ -0.695434,-0.71859,0,0.962599,0.962599,0,
+ -0.77301,-0.634393,0,0.912512,1.017861,0,
+ -0.71859,-0.695434,0,0.962599,0.962599,1.5,
+ -0.77301,-0.634393,0,0.912512,1.017861,1.5,
+ -0.91749,-0.397759,0,0.797852,1.209161,1.5,
+ -0.889521,-0.456893,0,0.82974,1.141738,0,
+ -0.874085,-0.485774,0,0.82974,1.141738,1.5,
+ -0.889521,-0.456893,0,0.82974,1.141738,0,
+ -0.91749,-0.397759,0,0.797852,1.209161,1.5,
+ -0.930022,-0.367505,0,0.797852,1.209161,0,
+ 0.840455,-0.541882,0,2.131917,1.077767,0,
+ 0.881921,-0.471397,0,2.17026,1.141738,1.5,
+ 0.822262,-0.56911,0,2.131917,1.077767,1.5,
+ 0.881921,-0.471397,0,2.17026,1.141738,1.5,
+ 0.840455,-0.541882,0,2.131917,1.077767,0,
+ 0.881921,-0.471397,0,2.17026,1.141738,0,
+ 0.91749,-0.397759,0,2.202148,1.209161,0,
+ 0.881921,-0.471397,0,2.17026,1.141738,1.5,
+ 0.881921,-0.471397,0,2.17026,1.141738,0,
+ 0.881921,-0.471397,0,2.17026,1.141738,1.5,
+ 0.91749,-0.397759,0,2.202148,1.209161,0,
+ 0.930022,-0.367505,0,2.202148,1.209161,1.5,
+ -0.874085,-0.485774,0,0.82974,1.141738,1.5,
+ -0.840455,-0.541882,0,0.868083,1.077767,0,
+ -0.822262,-0.56911,0,0.868083,1.077767,1.5,
+ -0.840455,-0.541882,0,0.868083,1.077767,0,
+ -0.874085,-0.485774,0,0.82974,1.141738,1.5,
+ -0.889521,-0.456893,0,0.82974,1.141738,0,
+ 0.95694,-0.290285,0,2.227275,1.279384,0,
+ 0.980785,-0.19509,0,2.245397,1.351731,1.5,
+ 0.95694,-0.290285,0,2.227275,1.279384,1.5,
+ 0.980785,-0.19509,0,2.245397,1.351731,1.5,
+ 0.95694,-0.290285,0,2.227275,1.279384,0,
+ 0.980785,-0.19509,0,2.245397,1.351731,0,
+ 0.95694,-0.290285,0,2.227275,1.279384,0,
+ 0.930022,-0.367505,0,2.202148,1.209161,1.5,
+ 0.91749,-0.397759,0,2.202148,1.209161,0,
+ 0.930022,-0.367505,0,2.202148,1.209161,1.5,
+ 0.95694,-0.290285,0,2.227275,1.279384,0,
+ 0.95694,-0.290285,0,2.227275,1.279384,1.5,
+ 1,0,0,2.26,1.5,0,
+ 0.996656,-0.081709,0,2.25634,1.425507,1.5,
+ 0.993446,-0.114299,0,2.25634,1.425507,0,
+ 0.996656,-0.081709,0,2.25634,1.425507,1.5,
+ 1,0,0,2.26,1.5,0,
+ 1,0,0,2.26,1.5,1.5,
+ 0.179005,-0.983848,0,1.648269,0.754603,1.5,
+ 0.114299,-0.993446,0,1.574493,0.74366,0,
+ 0.211123,-0.97746,0,1.648269,0.754603,0,
+ 0.114299,-0.993446,0,1.574493,0.74366,0,
+ 0.179005,-0.983848,0,1.648269,0.754603,1.5,
+ 0.081709,-0.996656,0,1.574493,0.74366,1.5,
+ -0.822262,-0.56911,0,0.868083,1.077767,1.5,
+ -0.77301,-0.634393,0,0.912512,1.017861,0,
+ -0.77301,-0.634393,0,0.912512,1.017861,1.5,
+ -0.77301,-0.634393,0,0.912512,1.017861,0,
+ -0.822262,-0.56911,0,0.868083,1.077767,1.5,
+ -0.840455,-0.541882,0,0.868083,1.077767,0,
+ -0.56911,-0.822262,0,1.077767,0.868083,1.5,
+ -0.621651,-0.783294,0,1.017861,0.912512,0,
+ -0.541882,-0.840455,0,1.077767,0.868083,0,
+ -0.621651,-0.783294,0,1.017861,0.912512,0,
+ -0.56911,-0.822262,0,1.077767,0.868083,1.5,
+ -0.646965,-0.76252,0,1.017861,0.912512,1.5,
+ -0.999866,-0.016373,0,0.74,1.5,1.5,
+ -0.996656,-0.081709,0,0.74366,1.425507,0,
+ -0.993446,-0.114299,0,0.74366,1.425507,1.5,
+ -0.996656,-0.081709,0,0.74366,1.425507,0,
+ -0.999866,-0.016373,0,0.74,1.5,1.5,
+ -0.999866,0.016373,0,0.74,1.5,0,
+ -0.993446,-0.114299,0,0.74366,1.425507,1.5,
+ -0.983848,-0.179005,0,0.754603,1.351731,0,
+ -0.97746,-0.211123,0,0.754603,1.351731,1.5,
+ -0.983848,-0.179005,0,0.754603,1.351731,0,
+ -0.993446,-0.114299,0,0.74366,1.425507,1.5,
+ -0.996656,-0.081709,0,0.74366,1.425507,0,
+ -0.97746,-0.211123,0,0.754603,1.351731,1.5,
+ -0.961565,-0.274577,0,0.772725,1.279384,0,
+ -0.952059,-0.305914,0,0.772725,1.279384,1.5,
+ -0.961565,-0.274577,0,0.772725,1.279384,0,
+ -0.97746,-0.211123,0,0.754603,1.351731,1.5,
+ -0.983848,-0.179005,0,0.754603,1.351731,0,
+ -0.952059,-0.305914,0,0.772725,1.279384,1.5,
+ -0.930022,-0.367505,0,0.797852,1.209161,0,
+ -0.91749,-0.397759,0,0.797852,1.209161,1.5,
+ -0.930022,-0.367505,0,0.797852,1.209161,0,
+ -0.952059,-0.305914,0,0.772725,1.279384,1.5,
+ -0.961565,-0.274577,0,0.772725,1.279384,0,
+ -0.456893,0.889521,0,1.141738,2.17026,1.5,
+ -0.397759,0.91749,0,1.209161,2.202148,0,
+ -0.485774,0.874085,0,1.141738,2.17026,0,
+ -0.397759,0.91749,0,1.209161,2.202148,0,
+ -0.456893,0.889521,0,1.141738,2.17026,1.5,
+ -0.367505,0.930022,0,1.209161,2.202148,1.5,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.74,0,
+ 0.993446,-0.114299,0,2.25634,1.425507,0,
+ 0.980785,-0.19509,0,2.245397,1.351731,1.5,
+ 0.980785,-0.19509,0,2.245397,1.351731,0,
+ 0.980785,-0.19509,0,2.245397,1.351731,1.5,
+ 0.993446,-0.114299,0,2.25634,1.425507,0,
+ 0.996656,-0.081709,0,2.25634,1.425507,1.5,
+ 0.71859,-0.695434,0,2.037401,0.962599,0,
+ 0.76252,-0.646965,0,2.087488,1.017861,1.5,
+ 0.695434,-0.71859,0,2.037401,0.962599,1.5,
+ 0.76252,-0.646965,0,2.087488,1.017861,1.5,
+ 0.71859,-0.695434,0,2.037401,0.962599,0,
+ 0.783294,-0.621651,0,2.087488,1.017861,0,
+ 0.952059,0.305914,0,2.227275,1.720616,0,
+ 0.930022,0.367505,0,2.202148,1.790839,1.5,
+ 0.961565,0.274577,0,2.227275,1.720616,1.5,
+ 0.930022,0.367505,0,2.202148,1.790839,1.5,
+ 0.952059,0.305914,0,2.227275,1.720616,0,
+ 0.91749,0.397759,0,2.202148,1.790839,0,
+ -0.397759,-0.91749,0,1.209161,0.797852,1.5,
+ -0.456893,-0.889521,0,1.141738,0.82974,0,
+ -0.367505,-0.930022,0,1.209161,0.797852,0,
+ -0.456893,-0.889521,0,1.141738,0.82974,0,
+ -0.397759,-0.91749,0,1.209161,0.797852,1.5,
+ -0.485774,-0.874085,0,1.141738,0.82974,1.5,
+ 0,0,1,2.245397,1.648269,1.5,
+ 0,0,1,2.202148,1.790839,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.202148,1.790839,1.5,
+ 0,0,1,2.245397,1.648269,1.5,
+ 0,0,1,2.227275,1.720616,1.5,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,1,2.202148,1.790839,1.5,
+ 0,0,1,2.131917,1.922233,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.131917,1.922233,1.5,
+ 0,0,1,2.202148,1.790839,1.5,
+ 0,0,1,2.17026,1.858262,1.5,
+ 0,0,1,1.922233,2.131917,1.5,
+ 0,0,1,1.790839,2.202148,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.790839,2.202148,1.5,
+ 0,0,1,1.922233,2.131917,1.5,
+ 0,0,1,1.858262,2.17026,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.912512,1.982139,1.5,
+ 0,0,1,0.868083,1.922233,1.5,
+ 0,0,1,0.912512,1.982139,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.962599,2.037401,1.5,
+ 0,0,1,1.790839,2.202148,1.5,
+ 0,0,1,1.648269,2.245397,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.648269,2.245397,1.5,
+ 0,0,1,1.790839,2.202148,1.5,
+ 0,0,1,1.720616,2.227275,1.5,
+ 0,0,1,2.131917,1.922233,1.5,
+ 0,0,1,2.037401,2.037401,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.037401,2.037401,1.5,
+ 0,0,1,2.131917,1.922233,1.5,
+ 0,0,1,2.087488,1.982139,1.5,
+ 0,0,1,1.648269,2.245397,1.5,
+ 0,0,1,1.5,2.26,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.5,2.26,1.5,
+ 0,0,1,1.648269,2.245397,1.5,
+ 0,0,1,1.574493,2.25634,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.017861,2.087488,1.5,
+ 0,0,1,0.962599,2.037401,1.5,
+ 0,0,1,1.017861,2.087488,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.077767,2.131917,1.5,
+ 0,0,1,1.017861,0.912512,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.962599,0.962599,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.017861,0.912512,1.5,
+ 0,0,1,1.077767,0.868083,1.5,
+ 0,0,1,0.82974,1.141738,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.797852,1.209161,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.82974,1.141738,1.5,
+ 0,0,1,0.868083,1.077767,1.5,
+ 0,0,1,1.922233,0.868083,1.5,
+ 0,0,1,2.037401,0.962599,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.037401,0.962599,1.5,
+ 0,0,1,1.922233,0.868083,1.5,
+ 0,0,1,1.982139,0.912512,1.5,
+ 0,0,1,0.912512,1.017861,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.868083,1.077767,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.912512,1.017861,1.5,
+ 0,0,1,0.962599,0.962599,1.5,
+ 0,0,1,1.279384,0.772725,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.209161,0.797852,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.279384,0.772725,1.5,
+ 0,0,1,1.351731,0.754603,1.5,
+ 0,0,1,1.790839,0.797852,1.5,
+ 0,0,1,1.922233,0.868083,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.922233,0.868083,1.5,
+ 0,0,1,1.790839,0.797852,1.5,
+ 0,0,1,1.858262,0.82974,1.5,
+ 0,0,1,2.131917,1.077767,1.5,
+ 0,0,1,2.202148,1.209161,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.202148,1.209161,1.5,
+ 0,0,1,2.131917,1.077767,1.5,
+ 0,0,1,2.17026,1.141738,1.5,
+ 0,0,1,1.141738,0.82974,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.077767,0.868083,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.141738,0.82974,1.5,
+ 0,0,1,1.209161,0.797852,1.5,
+ 0,0,1,1.648269,0.754603,1.5,
+ 0,0,1,1.790839,0.797852,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.790839,0.797852,1.5,
+ 0,0,1,1.648269,0.754603,1.5,
+ 0,0,1,1.720616,0.772725,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.772725,1.720616,1.5,
+ 0,0,1,0.754603,1.648269,1.5,
+ 0,0,1,0.772725,1.720616,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.797852,1.790839,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.141738,2.17026,1.5,
+ 0,0,1,1.077767,2.131917,1.5,
+ 0,0,1,1.141738,2.17026,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.209161,2.202148,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.74366,1.574493,1.5,
+ 0,0,1,0.74,1.5,1.5,
+ 0,0,1,0.74366,1.574493,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.754603,1.648269,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.82974,1.858262,1.5,
+ 0,0,1,0.797852,1.790839,1.5,
+ 0,0,1,0.82974,1.858262,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.868083,1.922233,1.5,
+ 0,0,1,0.74366,1.425507,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.74,1.5,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.74366,1.425507,1.5,
+ 0,0,1,0.754603,1.351731,1.5,
+ 0,0,1,0.772725,1.279384,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.754603,1.351731,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.772725,1.279384,1.5,
+ 0,0,1,0.797852,1.209161,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.425507,2.25634,1.5,
+ 0,0,1,1.351731,2.245397,1.5,
+ 0,0,1,1.425507,2.25634,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.5,2.26,1.5,
+ 0,0,1,2.037401,2.037401,1.5,
+ 0,0,1,1.922233,2.131917,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.922233,2.131917,1.5,
+ 0,0,1,2.037401,2.037401,1.5,
+ 0,0,1,1.982139,2.087488,1.5,
+ 0,0,1,2.037401,0.962599,1.5,
+ 0,0,1,2.131917,1.077767,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.131917,1.077767,1.5,
+ 0,0,1,2.037401,0.962599,1.5,
+ 0,0,1,2.087488,1.017861,1.5,
+ 0,0,1,2.26,1.5,1.5,
+ 0,0,1,2.245397,1.648269,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.245397,1.648269,1.5,
+ 0,0,1,2.26,1.5,1.5,
+ 0,0,1,2.25634,1.574493,1.5,
+ 0,0,1,1.425507,0.74366,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.351731,0.754603,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.425507,0.74366,1.5,
+ 0,0,1,1.5,0.74,1.5,
+ 0,0,1,1.5,0.74,1.5,
+ 0,0,1,1.648269,0.754603,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.648269,0.754603,1.5,
+ 0,0,1,1.5,0.74,1.5,
+ 0,0,1,1.574493,0.74366,1.5,
+ 0,0,1,2.202148,1.209161,1.5,
+ 0,0,1,2.245397,1.351731,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.245397,1.351731,1.5,
+ 0,0,1,2.202148,1.209161,1.5,
+ 0,0,1,2.227275,1.279384,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.279384,2.227275,1.5,
+ 0,0,1,1.209161,2.202148,1.5,
+ 0,0,1,1.279384,2.227275,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.351731,2.245397,1.5,
+ 0,0,1,2.245397,1.351731,1.5,
+ 0,0,1,2.26,1.5,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.26,1.5,1.5,
+ 0,0,1,2.245397,1.351731,1.5,
+ 0,0,1,2.25634,1.425507,1.5
+};
+static const struct gllist lament_model_pillar_b_frame = { GL_N3F_V3F, GL_TRIANGLES, 768, lament_model_pillar_b_data, 0 };
+const struct gllist *lament_model_pillar_b = &lament_model_pillar_b_frame;
+
+static const float lament_model_pillar_base_data[] = {
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.74366,1.574493,3,
+ 0,0,1,0.754603,1.648269,3,
+ -1,0,0,0,3,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,3,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0.621651,0.783294,0,1.017861,0.912512,3,
+ 0.56911,0.822262,0,1.077767,0.868083,0,
+ 0.646965,0.76252,0,1.017861,0.912512,0,
+ 0.56911,0.822262,0,1.077767,0.868083,0,
+ 0.621651,0.783294,0,1.017861,0.912512,3,
+ 0.541882,0.840455,0,1.077767,0.868083,3,
+ -0.456893,-0.889521,0,1.858262,2.17026,3,
+ -0.397759,-0.91749,0,1.790839,2.202148,0,
+ -0.485774,-0.874085,0,1.858262,2.17026,0,
+ -0.397759,-0.91749,0,1.790839,2.202148,0,
+ -0.456893,-0.889521,0,1.858262,2.17026,3,
+ -0.367505,-0.930022,0,1.790839,2.202148,3,
+ 0.993446,0.114299,0,0.74366,1.425507,0,
+ 0.983848,0.179005,0,0.754603,1.351731,3,
+ 0.97746,0.211123,0,0.754603,1.351731,0,
+ 0.983848,0.179005,0,0.754603,1.351731,3,
+ 0.993446,0.114299,0,0.74366,1.425507,0,
+ 0.996656,0.081709,0,0.74366,1.425507,3,
+ 0.97746,0.211123,0,0.754603,1.351731,0,
+ 0.961565,0.274577,0,0.772725,1.279384,3,
+ 0.952059,0.305914,0,0.772725,1.279384,0,
+ 0.961565,0.274577,0,0.772725,1.279384,3,
+ 0.97746,0.211123,0,0.754603,1.351731,0,
+ 0.983848,0.179005,0,0.754603,1.351731,3,
+ 0.952059,0.305914,0,0.772725,1.279384,0,
+ 0.930022,0.367505,0,0.797852,1.209161,3,
+ 0.91749,0.397759,0,0.797852,1.209161,0,
+ 0.930022,0.367505,0,0.797852,1.209161,3,
+ 0.952059,0.305914,0,0.772725,1.279384,0,
+ 0.961565,0.274577,0,0.772725,1.279384,3,
+ 0.91749,0.397759,0,0.797852,1.209161,0,
+ 0.889521,0.456893,0,0.82974,1.141738,3,
+ 0.874085,0.485774,0,0.82974,1.141738,0,
+ 0.889521,0.456893,0,0.82974,1.141738,3,
+ 0.91749,0.397759,0,0.797852,1.209161,0,
+ 0.930022,0.367505,0,0.797852,1.209161,3,
+ -0.874085,0.485774,0,2.17026,1.141738,3,
+ -0.840455,0.541882,0,2.131917,1.077767,0,
+ -0.822262,0.56911,0,2.131917,1.077767,3,
+ -0.840455,0.541882,0,2.131917,1.077767,0,
+ -0.874085,0.485774,0,2.17026,1.141738,3,
+ -0.889521,0.456893,0,2.17026,1.141738,0,
+ -0.91749,0.397759,0,2.202148,1.209161,3,
+ -0.889521,0.456893,0,2.17026,1.141738,0,
+ -0.874085,0.485774,0,2.17026,1.141738,3,
+ -0.889521,0.456893,0,2.17026,1.141738,0,
+ -0.91749,0.397759,0,2.202148,1.209161,3,
+ -0.930022,0.367505,0,2.202148,1.209161,0,
+ 0.874085,0.485774,0,0.82974,1.141738,0,
+ 0.840455,0.541882,0,0.868083,1.077767,3,
+ 0.822262,0.56911,0,0.868083,1.077767,0,
+ 0.840455,0.541882,0,0.868083,1.077767,3,
+ 0.874085,0.485774,0,0.82974,1.141738,0,
+ 0.889521,0.456893,0,0.82974,1.141738,3,
+ 0.999866,0.016373,0,0.74,1.5,0,
+ 0.996656,0.081709,0,0.74366,1.425507,3,
+ 0.993446,0.114299,0,0.74366,1.425507,0,
+ 0.996656,0.081709,0,0.74366,1.425507,3,
+ 0.999866,0.016373,0,0.74,1.5,0,
+ 0.999866,-0.016373,0,0.74,1.5,3,
+ 0.456893,0.889521,0,1.141738,0.82974,3,
+ 0.397759,0.91749,0,1.209161,0.797852,0,
+ 0.485774,0.874085,0,1.141738,0.82974,0,
+ 0.397759,0.91749,0,1.209161,0.797852,0,
+ 0.456893,0.889521,0,1.141738,0.82974,3,
+ 0.367505,0.930022,0,1.209161,0.797852,3,
+ 0.996656,-0.081709,0,0.74366,1.574493,0,
+ 0.999866,-0.016373,0,0.74,1.5,3,
+ 0.999866,0.016373,0,0.74,1.5,0,
+ 0.999866,-0.016373,0,0.74,1.5,3,
+ 0.996656,-0.081709,0,0.74366,1.574493,0,
+ 0.993446,-0.114299,0,0.74366,1.574493,3,
+ 0.983848,-0.179005,0,0.754603,1.648269,0,
+ 0.993446,-0.114299,0,0.74366,1.574493,3,
+ 0.996656,-0.081709,0,0.74366,1.574493,0,
+ 0.993446,-0.114299,0,0.74366,1.574493,3,
+ 0.983848,-0.179005,0,0.754603,1.648269,0,
+ 0.97746,-0.211123,0,0.754603,1.648269,3,
+ 0.961565,-0.274577,0,0.772725,1.720616,0,
+ 0.97746,-0.211123,0,0.754603,1.648269,3,
+ 0.983848,-0.179005,0,0.754603,1.648269,0,
+ 0.97746,-0.211123,0,0.754603,1.648269,3,
+ 0.961565,-0.274577,0,0.772725,1.720616,0,
+ 0.952059,-0.305914,0,0.772725,1.720616,3,
+ 0.930022,-0.367505,0,0.797852,1.790839,0,
+ 0.952059,-0.305914,0,0.772725,1.720616,3,
+ 0.961565,-0.274577,0,0.772725,1.720616,0,
+ 0.952059,-0.305914,0,0.772725,1.720616,3,
+ 0.930022,-0.367505,0,0.797852,1.790839,0,
+ 0.91749,-0.397759,0,0.797852,1.790839,3,
+ 0.889521,-0.456893,0,0.82974,1.858262,0,
+ 0.91749,-0.397759,0,0.797852,1.790839,3,
+ 0.930022,-0.367505,0,0.797852,1.790839,0,
+ 0.91749,-0.397759,0,0.797852,1.790839,3,
+ 0.889521,-0.456893,0,0.82974,1.858262,0,
+ 0.874085,-0.485774,0,0.82974,1.858262,3,
+ 0.840455,-0.541882,0,0.868083,1.922233,0,
+ 0.874085,-0.485774,0,0.82974,1.858262,3,
+ 0.889521,-0.456893,0,0.82974,1.858262,0,
+ 0.874085,-0.485774,0,0.82974,1.858262,3,
+ 0.840455,-0.541882,0,0.868083,1.922233,0,
+ 0.822262,-0.56911,0,0.868083,1.922233,3,
+ 0.783294,-0.621651,0,0.912512,1.982139,0,
+ 0.822262,-0.56911,0,0.868083,1.922233,3,
+ 0.840455,-0.541882,0,0.868083,1.922233,0,
+ 0.822262,-0.56911,0,0.868083,1.922233,3,
+ 0.783294,-0.621651,0,0.912512,1.982139,0,
+ 0.76252,-0.646965,0,0.912512,1.982139,3,
+ 0.707107,-0.707107,0,0.962599,2.037401,0,
+ 0.76252,-0.646965,0,0.912512,1.982139,3,
+ 0.783294,-0.621651,0,0.912512,1.982139,0,
+ 0.76252,-0.646965,0,0.912512,1.982139,3,
+ 0.707107,-0.707107,0,0.962599,2.037401,0,
+ 0.707107,-0.707107,0,0.962599,2.037401,3,
+ 0.016373,-0.999866,0,1.5,2.26,3,
+ 0.081709,-0.996656,0,1.425507,2.25634,0,
+ -0.016373,-0.999866,0,1.5,2.26,0,
+ 0.081709,-0.996656,0,1.425507,2.25634,0,
+ 0.016373,-0.999866,0,1.5,2.26,3,
+ 0.114299,-0.993446,0,1.425507,2.25634,3,
+ 0.114299,-0.993446,0,1.425507,2.25634,3,
+ 0.179005,-0.983848,0,1.351731,2.245397,0,
+ 0.081709,-0.996656,0,1.425507,2.25634,0,
+ 0.179005,-0.983848,0,1.351731,2.245397,0,
+ 0.114299,-0.993446,0,1.425507,2.25634,3,
+ 0.211123,-0.97746,0,1.351731,2.245397,3,
+ 0.211123,-0.97746,0,1.351731,2.245397,3,
+ 0.274577,-0.961565,0,1.279384,2.227275,0,
+ 0.179005,-0.983848,0,1.351731,2.245397,0,
+ 0.274577,-0.961565,0,1.279384,2.227275,0,
+ 0.211123,-0.97746,0,1.351731,2.245397,3,
+ 0.305914,-0.952059,0,1.279384,2.227275,3,
+ 0.305914,-0.952059,0,1.279384,2.227275,3,
+ 0.367505,-0.930022,0,1.209161,2.202148,0,
+ 0.274577,-0.961565,0,1.279384,2.227275,0,
+ 0.367505,-0.930022,0,1.209161,2.202148,0,
+ 0.305914,-0.952059,0,1.279384,2.227275,3,
+ 0.397759,-0.91749,0,1.209161,2.202148,3,
+ 0.76252,0.646965,0,0.912512,1.017861,0,
+ 0.707107,0.707107,0,0.962599,0.962599,3,
+ 0.707107,0.707107,0,0.962599,0.962599,0,
+ 0.707107,0.707107,0,0.962599,0.962599,3,
+ 0.76252,0.646965,0,0.912512,1.017861,0,
+ 0.783294,0.621651,0,0.912512,1.017861,3,
+ 0.397759,-0.91749,0,1.209161,2.202148,3,
+ 0.456893,-0.889521,0,1.141738,2.17026,0,
+ 0.367505,-0.930022,0,1.209161,2.202148,0,
+ 0.456893,-0.889521,0,1.141738,2.17026,0,
+ 0.397759,-0.91749,0,1.209161,2.202148,3,
+ 0.485774,-0.874085,0,1.141738,2.17026,3,
+ 0.485774,-0.874085,0,1.141738,2.17026,3,
+ 0.541882,-0.840455,0,1.077767,2.131917,0,
+ 0.456893,-0.889521,0,1.141738,2.17026,0,
+ 0.541882,-0.840455,0,1.077767,2.131917,0,
+ 0.485774,-0.874085,0,1.141738,2.17026,3,
+ 0.56911,-0.822262,0,1.077767,2.131917,3,
+ 0.56911,-0.822262,0,1.077767,2.131917,3,
+ 0.621651,-0.783294,0,1.017861,2.087488,0,
+ 0.541882,-0.840455,0,1.077767,2.131917,0,
+ 0.621651,-0.783294,0,1.017861,2.087488,0,
+ 0.56911,-0.822262,0,1.077767,2.131917,3,
+ 0.646965,-0.76252,0,1.017861,2.087488,3,
+ 0.646965,-0.76252,0,1.017861,2.087488,3,
+ 0.707107,-0.707107,0,0.962599,2.037401,0,
+ 0.621651,-0.783294,0,1.017861,2.087488,0,
+ 0.707107,-0.707107,0,0.962599,2.037401,0,
+ 0.646965,-0.76252,0,1.017861,2.087488,3,
+ 0.707107,-0.707107,0,0.962599,2.037401,3,
+ -0.367505,-0.930022,0,1.790839,2.202148,3,
+ -0.305914,-0.952059,0,1.720616,2.227275,0,
+ -0.397759,-0.91749,0,1.790839,2.202148,0,
+ -0.305914,-0.952059,0,1.720616,2.227275,0,
+ -0.367505,-0.930022,0,1.790839,2.202148,3,
+ -0.274577,-0.961565,0,1.720616,2.227275,3,
+ -0.274577,-0.961565,0,1.720616,2.227275,3,
+ -0.211123,-0.97746,0,1.648269,2.245397,0,
+ -0.305914,-0.952059,0,1.720616,2.227275,0,
+ -0.211123,-0.97746,0,1.648269,2.245397,0,
+ -0.274577,-0.961565,0,1.720616,2.227275,3,
+ -0.179005,-0.983848,0,1.648269,2.245397,3,
+ -0.179005,-0.983848,0,1.648269,2.245397,3,
+ -0.114299,-0.993446,0,1.574493,2.25634,0,
+ -0.211123,-0.97746,0,1.648269,2.245397,0,
+ -0.114299,-0.993446,0,1.574493,2.25634,0,
+ -0.179005,-0.983848,0,1.648269,2.245397,3,
+ -0.081709,-0.996656,0,1.574493,2.25634,3,
+ -0.081709,-0.996656,0,1.574493,2.25634,3,
+ -0.016373,-0.999866,0,1.5,2.26,0,
+ -0.114299,-0.993446,0,1.574493,2.25634,0,
+ -0.016373,-0.999866,0,1.5,2.26,0,
+ -0.081709,-0.996656,0,1.574493,2.25634,3,
+ 0.016373,-0.999866,0,1.5,2.26,3,
+ -0.621651,-0.783294,0,1.982139,2.087488,3,
+ -0.56911,-0.822262,0,1.922233,2.131917,0,
+ -0.646965,-0.76252,0,1.982139,2.087488,0,
+ -0.56911,-0.822262,0,1.922233,2.131917,0,
+ -0.621651,-0.783294,0,1.982139,2.087488,3,
+ -0.541882,-0.840455,0,1.922233,2.131917,3,
+ -0.541882,-0.840455,0,1.922233,2.131917,3,
+ -0.485774,-0.874085,0,1.858262,2.17026,0,
+ -0.56911,-0.822262,0,1.922233,2.131917,0,
+ -0.485774,-0.874085,0,1.858262,2.17026,0,
+ -0.541882,-0.840455,0,1.922233,2.131917,3,
+ -0.456893,-0.889521,0,1.858262,2.17026,3,
+ -0.707107,-0.707107,0,2.037401,2.037401,3,
+ -0.646965,-0.76252,0,1.982139,2.087488,0,
+ -0.707107,-0.707107,0,2.037401,2.037401,0,
+ -0.646965,-0.76252,0,1.982139,2.087488,0,
+ -0.707107,-0.707107,0,2.037401,2.037401,3,
+ -0.621651,-0.783294,0,1.982139,2.087488,3,
+ -0.707107,-0.707107,0,2.037401,2.037401,3,
+ -0.76252,-0.646965,0,2.087488,1.982139,0,
+ -0.783294,-0.621651,0,2.087488,1.982139,3,
+ -0.76252,-0.646965,0,2.087488,1.982139,0,
+ -0.707107,-0.707107,0,2.037401,2.037401,3,
+ -0.707107,-0.707107,0,2.037401,2.037401,0,
+ -0.930022,-0.367505,0,2.202148,1.790839,3,
+ -0.952059,-0.305914,0,2.227275,1.720616,0,
+ -0.961565,-0.274577,0,2.227275,1.720616,3,
+ -0.952059,-0.305914,0,2.227275,1.720616,0,
+ -0.930022,-0.367505,0,2.202148,1.790839,3,
+ -0.91749,-0.397759,0,2.202148,1.790839,0,
+ -0.889521,-0.456893,0,2.17026,1.858262,3,
+ -0.91749,-0.397759,0,2.202148,1.790839,0,
+ -0.930022,-0.367505,0,2.202148,1.790839,3,
+ -0.91749,-0.397759,0,2.202148,1.790839,0,
+ -0.889521,-0.456893,0,2.17026,1.858262,3,
+ -0.874085,-0.485774,0,2.17026,1.858262,0,
+ -0.840455,-0.541882,0,2.131917,1.922233,3,
+ -0.874085,-0.485774,0,2.17026,1.858262,0,
+ -0.889521,-0.456893,0,2.17026,1.858262,3,
+ -0.874085,-0.485774,0,2.17026,1.858262,0,
+ -0.840455,-0.541882,0,2.131917,1.922233,3,
+ -0.822262,-0.56911,0,2.131917,1.922233,0,
+ -0.783294,-0.621651,0,2.087488,1.982139,3,
+ -0.822262,-0.56911,0,2.131917,1.922233,0,
+ -0.840455,-0.541882,0,2.131917,1.922233,3,
+ -0.822262,-0.56911,0,2.131917,1.922233,0,
+ -0.783294,-0.621651,0,2.087488,1.982139,3,
+ -0.76252,-0.646965,0,2.087488,1.982139,0,
+ -0.961565,-0.274577,0,2.227275,1.720616,3,
+ -0.97746,-0.211123,0,2.245397,1.648269,0,
+ -0.983848,-0.179005,0,2.245397,1.648269,3,
+ -0.97746,-0.211123,0,2.245397,1.648269,0,
+ -0.961565,-0.274577,0,2.227275,1.720616,3,
+ -0.952059,-0.305914,0,2.227275,1.720616,0,
+ -0.211123,0.97746,0,1.648269,0.754603,3,
+ -0.274577,0.961565,0,1.720616,0.772725,0,
+ -0.179005,0.983848,0,1.648269,0.754603,0,
+ -0.274577,0.961565,0,1.720616,0.772725,0,
+ -0.211123,0.97746,0,1.648269,0.754603,3,
+ -0.305914,0.952059,0,1.720616,0.772725,3,
+ -0.114299,0.993446,0,1.574493,0.74366,3,
+ -0.179005,0.983848,0,1.648269,0.754603,0,
+ -0.081709,0.996656,0,1.574493,0.74366,0,
+ -0.179005,0.983848,0,1.648269,0.754603,0,
+ -0.114299,0.993446,0,1.574493,0.74366,3,
+ -0.211123,0.97746,0,1.648269,0.754603,3,
+ -0.993446,0.114299,0,2.25634,1.425507,3,
+ -0.983848,0.179005,0,2.245397,1.351731,0,
+ -0.97746,0.211123,0,2.245397,1.351731,3,
+ -0.983848,0.179005,0,2.245397,1.351731,0,
+ -0.993446,0.114299,0,2.25634,1.425507,3,
+ -0.996656,0.081709,0,2.25634,1.425507,0,
+ -0.999866,0.016373,0,2.26,1.5,3,
+ -0.996656,0.081709,0,2.25634,1.425507,0,
+ -0.993446,0.114299,0,2.25634,1.425507,3,
+ -0.996656,0.081709,0,2.25634,1.425507,0,
+ -0.999866,0.016373,0,2.26,1.5,3,
+ -0.999866,-0.016373,0,2.26,1.5,0,
+ -0.996656,-0.081709,0,2.25634,1.574493,3,
+ -0.999866,-0.016373,0,2.26,1.5,0,
+ -0.999866,0.016373,0,2.26,1.5,3,
+ -0.999866,-0.016373,0,2.26,1.5,0,
+ -0.996656,-0.081709,0,2.25634,1.574493,3,
+ -0.993446,-0.114299,0,2.25634,1.574493,0,
+ -0.983848,-0.179005,0,2.245397,1.648269,3,
+ -0.993446,-0.114299,0,2.25634,1.574493,0,
+ -0.996656,-0.081709,0,2.25634,1.574493,3,
+ -0.993446,-0.114299,0,2.25634,1.574493,0,
+ -0.983848,-0.179005,0,2.245397,1.648269,3,
+ -0.97746,-0.211123,0,2.245397,1.648269,0,
+ 0.822262,0.56911,0,0.868083,1.077767,0,
+ 0.783294,0.621651,0,0.912512,1.017861,3,
+ 0.76252,0.646965,0,0.912512,1.017861,0,
+ 0.783294,0.621651,0,0.912512,1.017861,3,
+ 0.822262,0.56911,0,0.868083,1.077767,0,
+ 0.840455,0.541882,0,0.868083,1.077767,3,
+ 0.707107,0.707107,0,0.962599,0.962599,3,
+ 0.646965,0.76252,0,1.017861,0.912512,0,
+ 0.707107,0.707107,0,0.962599,0.962599,0,
+ 0.646965,0.76252,0,1.017861,0.912512,0,
+ 0.707107,0.707107,0,0.962599,0.962599,3,
+ 0.621651,0.783294,0,1.017861,0.912512,3,
+ -0.97746,0.211123,0,2.245397,1.351731,3,
+ -0.961565,0.274577,0,2.227275,1.279384,0,
+ -0.952059,0.305914,0,2.227275,1.279384,3,
+ -0.961565,0.274577,0,2.227275,1.279384,0,
+ -0.97746,0.211123,0,2.245397,1.351731,3,
+ -0.983848,0.179005,0,2.245397,1.351731,0,
+ 0.541882,0.840455,0,1.077767,0.868083,3,
+ 0.485774,0.874085,0,1.141738,0.82974,0,
+ 0.56911,0.822262,0,1.077767,0.868083,0,
+ 0.485774,0.874085,0,1.141738,0.82974,0,
+ 0.541882,0.840455,0,1.077767,0.868083,3,
+ 0.456893,0.889521,0,1.141738,0.82974,3,
+ -0.56911,0.822262,0,1.922233,0.868083,3,
+ -0.621651,0.783294,0,1.982139,0.912512,0,
+ -0.541882,0.840455,0,1.922233,0.868083,0,
+ -0.621651,0.783294,0,1.982139,0.912512,0,
+ -0.56911,0.822262,0,1.922233,0.868083,3,
+ -0.646965,0.76252,0,1.982139,0.912512,3,
+ -0.646965,0.76252,0,1.982139,0.912512,3,
+ -0.707107,0.707107,0,2.037401,0.962599,0,
+ -0.621651,0.783294,0,1.982139,0.912512,0,
+ -0.707107,0.707107,0,2.037401,0.962599,0,
+ -0.646965,0.76252,0,1.982139,0.912512,3,
+ -0.707107,0.707107,0,2.037401,0.962599,3,
+ -0.952059,0.305914,0,2.227275,1.279384,3,
+ -0.930022,0.367505,0,2.202148,1.209161,0,
+ -0.91749,0.397759,0,2.202148,1.209161,3,
+ -0.930022,0.367505,0,2.202148,1.209161,0,
+ -0.952059,0.305914,0,2.227275,1.279384,3,
+ -0.961565,0.274577,0,2.227275,1.279384,0,
+ -0.485774,0.874085,0,1.858262,0.82974,3,
+ -0.541882,0.840455,0,1.922233,0.868083,0,
+ -0.456893,0.889521,0,1.858262,0.82974,0,
+ -0.541882,0.840455,0,1.922233,0.868083,0,
+ -0.485774,0.874085,0,1.858262,0.82974,3,
+ -0.56911,0.822262,0,1.922233,0.868083,3,
+ -0.397759,0.91749,0,1.790839,0.797852,3,
+ -0.456893,0.889521,0,1.858262,0.82974,0,
+ -0.367505,0.930022,0,1.790839,0.797852,0,
+ -0.456893,0.889521,0,1.858262,0.82974,0,
+ -0.397759,0.91749,0,1.790839,0.797852,3,
+ -0.485774,0.874085,0,1.858262,0.82974,3,
+ 0.179005,0.983848,0,1.351731,0.754603,3,
+ 0.114299,0.993446,0,1.425507,0.74366,0,
+ 0.211123,0.97746,0,1.351731,0.754603,0,
+ 0.114299,0.993446,0,1.425507,0.74366,0,
+ 0.179005,0.983848,0,1.351731,0.754603,3,
+ 0.081709,0.996656,0,1.425507,0.74366,3,
+ 0.081709,0.996656,0,1.425507,0.74366,3,
+ 0.016373,0.999866,0,1.5,0.74,0,
+ 0.114299,0.993446,0,1.425507,0.74366,0,
+ 0.016373,0.999866,0,1.5,0.74,0,
+ 0.081709,0.996656,0,1.425507,0.74366,3,
+ -0.016373,0.999866,0,1.5,0.74,3,
+ -0.822262,0.56911,0,2.131917,1.077767,3,
+ -0.783294,0.621651,0,2.087488,1.017861,0,
+ -0.76252,0.646965,0,2.087488,1.017861,3,
+ -0.783294,0.621651,0,2.087488,1.017861,0,
+ -0.822262,0.56911,0,2.131917,1.077767,3,
+ -0.840455,0.541882,0,2.131917,1.077767,0,
+ 0.367505,0.930022,0,1.209161,0.797852,3,
+ 0.305914,0.952059,0,1.279384,0.772725,0,
+ 0.397759,0.91749,0,1.209161,0.797852,0,
+ 0.305914,0.952059,0,1.279384,0.772725,0,
+ 0.367505,0.930022,0,1.209161,0.797852,3,
+ 0.274577,0.961565,0,1.279384,0.772725,3,
+ 0.274577,0.961565,0,1.279384,0.772725,3,
+ 0.211123,0.97746,0,1.351731,0.754603,0,
+ 0.305914,0.952059,0,1.279384,0.772725,0,
+ 0.211123,0.97746,0,1.351731,0.754603,0,
+ 0.274577,0.961565,0,1.279384,0.772725,3,
+ 0.179005,0.983848,0,1.351731,0.754603,3,
+ -0.305914,0.952059,0,1.720616,0.772725,3,
+ -0.367505,0.930022,0,1.790839,0.797852,0,
+ -0.274577,0.961565,0,1.720616,0.772725,0,
+ -0.367505,0.930022,0,1.790839,0.797852,0,
+ -0.305914,0.952059,0,1.720616,0.772725,3,
+ -0.397759,0.91749,0,1.790839,0.797852,3,
+ -0.76252,0.646965,0,2.087488,1.017861,3,
+ -0.707107,0.707107,0,2.037401,0.962599,0,
+ -0.707107,0.707107,0,2.037401,0.962599,3,
+ -0.707107,0.707107,0,2.037401,0.962599,0,
+ -0.76252,0.646965,0,2.087488,1.017861,3,
+ -0.783294,0.621651,0,2.087488,1.017861,0,
+ -0.016373,0.999866,0,1.5,0.74,3,
+ -0.081709,0.996656,0,1.574493,0.74366,0,
+ 0.016373,0.999866,0,1.5,0.74,0,
+ -0.081709,0.996656,0,1.574493,0.74366,0,
+ -0.016373,0.999866,0,1.5,0.74,3,
+ -0.114299,0.993446,0,1.574493,0.74366,3,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0.408248,-0.408248,-0.816497,3,0,0,
+ 0.6,0,-0.8,3,0.497732,0,
+ 1,0,0,3,0.205,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,3,3,0,
+ 0.408248,0.408248,-0.816497,3,3,0,
+ 0,0.447214,-0.894427,2.502268,3,0,
+ 0,1,0,2.795,3,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.74366,1.425507,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,1.017861,0.912512,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.772725,1.720616,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.82974,1.141738,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.279384,0.772725,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,2.502268,0,
+ 0.447214,0,-0.894427,3,2.502268,0,
+ 0.408248,0.408248,-0.816497,3,3,0,
+ 1,0,0,3,2.795,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.795,0,0,
+ 0,0,-1,2.795,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.077767,0.868083,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.141738,0.82974,0,
+ 0,0,-1,1.209161,0.797852,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.868083,1.077767,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.912512,1.017861,0,
+ 0,0,-1,0.962599,0.962599,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0.797852,1.209161,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0.772725,1.279384,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.754603,1.351731,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.754603,1.648269,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.74366,1.574493,0,
+ 0,0,-1,0.74,1.5,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.74366,1.425507,3,
+ 0,0,1,0.74,1.5,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.82974,1.141738,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.502268,3,3,
+ 0.408248,0.408248,0.816497,3,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,3,0,3,
+ 0.408248,-0.408248,0.816497,3,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,-0.948683,-0.316228,2.795,0,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,0.497732,3,
+ 0.447214,0,0.894427,3,0.497732,3,
+ 0.408248,-0.408248,0.816497,3,0,3,
+ 1,0,0,3,0.205,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.754603,1.648269,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.772725,1.720616,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0.408248,0.408248,0.816497,3,3,3,
+ 0.447214,0,0.894427,3,2.502268,3,
+ 1,0,0,3,2.795,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.279384,0.772725,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.912512,1.017861,3,
+ 0,0,1,0.868083,1.077767,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,1.141738,0.82974,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.209161,0.797852,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,0.962599,0.962599,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,1.017861,0.912512,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.077767,0.868083,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.797852,1.209161,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.772725,1.279384,3,
+ 0,0,1,0.754603,1.351731,3,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,3,
+ 0,0,-1,1.5,0,3,
+ 0,0,-1,2.795,0,3,
+ 0,0,-1,2.502268,0,3,
+ 0,0,-1,1.5,0,3,
+ 0,0,-1,2.502268,0,3,
+ 0,0,-1,2.12132,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.798369,0,3,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,3,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,3,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,-1,0.205,0,3,
+ 0,0,-1,0.87868,0,3,
+ 0,0,-1,0.497732,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,1.5,0,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,3,3,3,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,3,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0.83205,0.5547,0.205,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,2.502268,3,3,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0,0,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,3,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,3,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,3,0,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,3,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,1.5,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.1475,0,0.8525,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.8525,0,2.1475,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,3,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,3,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,0.8525,3,0.8525,
+ 0,1,0,0.205,3,1.5
+};
+static const struct gllist lament_model_pillar_base_frame = { GL_N3F_V3F, GL_TRIANGLES, 1572, lament_model_pillar_base_data, 0 };
+const struct gllist *lament_model_pillar_base = &lament_model_pillar_base_frame;
+
+static const float lament_model_star_d_data[] = {
+ 0,0,-1,0.955528,0.955528,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0.955528,0.955528,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.955528,0.955528,0,
+ 0,0,-1,1.011517,0.904782,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,1.011517,0.904782,0,
+ 0,0,-1,1.072211,0.859768,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,1.988483,2.095218,0,
+ 0,0,-1,1.927789,2.140232,0,
+ 0,0,-1,1.988483,2.095218,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.044472,2.044472,0,
+ 0,0,-1,2.044472,2.044472,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,3,3,0,
+ 0,-1,0,3,3,0,
+ 0,-1,0,2.502268,3,0,
+ 0,-1,0,2.795,3,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.266292,1.575473,0,
+ 0,0,-1,2.255205,1.65022,0,
+ 0,0,-1,2.266292,1.575473,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.34978,2.255205,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.34978,2.255205,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.424527,2.266292,0,
+ 0,0,-1,1.424527,2.266292,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.27,0,
+ 0,0,-1,0.955528,2.044472,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.955528,2.044472,0,
+ 0,0,-1,0.904782,1.988483,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.904782,1.988483,0,
+ 0,0,-1,0.859768,1.927789,0,
+ 0,0,-1,2.095218,1.011517,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.044472,0.955528,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.095218,1.011517,0,
+ 0,0,-1,2.140232,1.072211,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.140232,1.072211,0,
+ 0,0,-1,3,0.497732,0,
+ 0,-1,0,2.12132,0,0.82632,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.12132,0,0.82632,
+ 0,-1,0,2.12132,0,2.17368,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.723519,0.763156,3,
+ 0,0,1,1.65022,0.744795,3,
+ 0,0,1,1.723519,0.763156,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.794666,0.788613,3,
+ 0,0,1,1.794666,0.788613,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,1,0,0.87868,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.87868,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.87868,3,3,
+ 0,1,0,1.201631,3,3,
+ 0,1,0,1.5,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.201631,3,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.072211,0.859768,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.072211,0.859768,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.137025,0.820921,3,
+ 0,0,1,1.137025,0.820921,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.205334,0.788613,3,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.12132,3,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,0.87868,0,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.201631,3,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.201631,0,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.5,0,
+ 0,0,1,2.236844,1.723519,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.236844,1.723519,3,
+ 0,0,1,2.255205,1.65022,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.255205,1.65022,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,-1,1.575473,0.733708,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0.73,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.575473,0.733708,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.575473,0.733708,0,
+ 0,0,-1,1.65022,0.744795,0,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.179079,1.137025,3,
+ 0,0,1,2.140232,1.072211,3,
+ 0,0,1,2.179079,1.137025,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.211387,1.205334,3,
+ 0,0,1,2.211387,1.205334,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,0.788613,1.205334,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.788613,1.205334,3,
+ 0,0,1,0.763156,1.276481,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0.763156,1.276481,3,
+ 0,0,1,0.744795,1.34978,3,
+ 0,0,-1,0.73,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.73,1.5,0,
+ 0,0,-1,0.733708,1.424527,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.733708,1.424527,0,
+ 0,0,-1,0.744795,1.34978,0,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,2.795,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,3,3,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,3,3,
+ -1,0,0,0,3,0,
+ 0,0,-1,1.927789,2.140232,0,
+ 0,0,-1,2.044472,2.044472,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.044472,2.044472,0,
+ 0,0,-1,1.927789,2.140232,0,
+ 0,0,-1,1.988483,2.095218,0,
+ 0,0,1,1.205334,2.211387,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.205334,2.211387,3,
+ 0,0,1,1.276481,2.236844,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.276481,2.236844,3,
+ 0,0,1,1.34978,2.255205,3,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,0.87868,3,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.12132,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,2.795,3,1.5,
+ -0.55557,-0.83147,0,1.927789,2.140232,3,
+ -0.471397,-0.881921,0,1.862975,2.179079,1.5,
+ -0.55557,-0.83147,0,1.927789,2.140232,1.5,
+ -0.471397,-0.881921,0,1.862975,2.179079,1.5,
+ -0.55557,-0.83147,0,1.927789,2.140232,3,
+ -0.471397,-0.881921,0,1.862975,2.179079,3,
+ -0.941544,-0.33689,0,2.211387,1.794666,3,
+ -0.952059,-0.305914,0,2.236844,1.723519,1.5,
+ -0.961565,-0.274577,0,2.236844,1.723519,3,
+ -0.952059,-0.305914,0,2.236844,1.723519,1.5,
+ -0.941544,-0.33689,0,2.211387,1.794666,3,
+ -0.941544,-0.33689,0,2.211387,1.794666,1.5,
+ 0.740951,-0.671559,0,0.955528,2.044472,1.5,
+ 0.76252,-0.646965,0,0.904782,1.988483,3,
+ 0.783294,-0.621651,0,0.904782,1.988483,1.5,
+ 0.76252,-0.646965,0,0.904782,1.988483,3,
+ 0.740951,-0.671559,0,0.955528,2.044472,1.5,
+ 0.740951,-0.671559,0,0.955528,2.044472,3,
+ -0.996656,-0.081709,0,2.266292,1.575473,3,
+ -0.998795,-0.049068,0,2.27,1.5,1.5,
+ -0.998795,-0.049068,0,2.27,1.5,3,
+ -0.998795,-0.049068,0,2.27,1.5,1.5,
+ -0.996656,-0.081709,0,2.266292,1.575473,3,
+ -0.993446,-0.114299,0,2.266292,1.575473,1.5,
+ -0.822262,0.56911,0,2.140232,1.072211,3,
+ -0.783294,0.621651,0,2.095218,1.011517,1.5,
+ -0.76252,0.646965,0,2.095218,1.011517,3,
+ -0.783294,0.621651,0,2.095218,1.011517,1.5,
+ -0.822262,0.56911,0,2.140232,1.072211,3,
+ -0.840455,0.541882,0,2.140232,1.072211,1.5,
+ 0.840455,-0.541882,0,0.859768,1.927789,1.5,
+ 0.874085,-0.485774,0,0.820921,1.862975,3,
+ 0.889521,-0.456893,0,0.820921,1.862975,1.5,
+ 0.874085,-0.485774,0,0.820921,1.862975,3,
+ 0.840455,-0.541882,0,0.859768,1.927789,1.5,
+ 0.822262,-0.56911,0,0.859768,1.927789,3,
+ -0.471397,-0.881921,0,1.862975,2.179079,1.5,
+ -0.427555,-0.903989,0,1.794666,2.211387,3,
+ -0.427555,-0.903989,0,1.794666,2.211387,1.5,
+ -0.427555,-0.903989,0,1.794666,2.211387,3,
+ -0.471397,-0.881921,0,1.862975,2.179079,1.5,
+ -0.471397,-0.881921,0,1.862975,2.179079,3,
+ -0.382683,-0.92388,0,0.788613,1.794666,0,
+ -0.382683,-0.92388,0,0,2.12132,3,
+ -0.382683,-0.92388,0,0,2.12132,0,
+ -0.382683,-0.92388,0,0,2.12132,3,
+ -0.382683,-0.92388,0,0.788613,1.794666,0,
+ -0.382683,-0.92388,0,0.788613,1.794666,1.5,
+ -0.382683,-0.92388,0,0,2.12132,3,
+ -0.382683,-0.92388,0,0.788613,1.794666,1.5,
+ -0.382683,-0.92388,0,0.788613,1.794666,3,
+ -0.290285,-0.95694,0,1.276481,0.763156,0,
+ -0.33689,-0.941544,0,1.205334,0.788613,1.5,
+ -0.33689,-0.941544,0,1.205334,0.788613,0,
+ -0.33689,-0.941544,0,1.205334,0.788613,1.5,
+ -0.290285,-0.95694,0,1.276481,0.763156,0,
+ -0.290285,-0.95694,0,1.276481,0.763156,1.5,
+ -1,0,0,1.5,0.73,3,
+ -1,0,0,1.5,0,2.795,
+ -1,0,0,1.5,0,3,
+ -1,0,0,1.5,0,2.795,
+ -1,0,0,1.5,0.73,3,
+ -1,0,0,1.5,0,0.205,
+ -1,0,0,1.5,0,0.205,
+ -1,0,0,1.5,0.73,3,
+ -1,0,0,1.5,0,0,
+ -1,0,0,1.5,0,0,
+ -1,0,0,1.5,0.73,3,
+ -1,0,0,1.5,0.73,0,
+ -0.027218,-0.554032,-0.83205,1.5,0.73,0,
+ -0.823173,0.401247,0.401731,1.5,0.73,3,
+ 0.689105,0,0.724662,1.5,0.73,1.5,
+ 0.783294,0.621651,0,2.095218,1.988483,0,
+ 0.822262,0.56911,0,2.140232,1.927789,1.5,
+ 0.840455,0.541882,0,2.140232,1.927789,0,
+ 0.822262,0.56911,0,2.140232,1.927789,1.5,
+ 0.783294,0.621651,0,2.095218,1.988483,0,
+ 0.76252,0.646965,0,2.095218,1.988483,1.5,
+ 0.114299,0.993446,0,1.575473,2.266292,0,
+ 0.179005,0.983848,0,1.65022,2.255205,1.5,
+ 0.211123,0.97746,0,1.65022,2.255205,0,
+ 0.179005,0.983848,0,1.65022,2.255205,1.5,
+ 0.114299,0.993446,0,1.575473,2.266292,0,
+ 0.081709,0.996656,0,1.575473,2.266292,1.5,
+ -0.382683,0.92388,0,2.211387,1.794666,1.5,
+ -0.382683,0.92388,0,3,2.12132,0,
+ -0.382683,0.92388,0,2.211387,1.794666,0,
+ -0.382683,0.92388,0,3,2.12132,0,
+ -0.382683,0.92388,0,2.211387,1.794666,1.5,
+ -0.382683,0.92388,0,3,2.12132,3,
+ -0.382683,0.92388,0,3,2.12132,3,
+ -0.382683,0.92388,0,2.211387,1.794666,1.5,
+ -0.382683,0.92388,0,2.211387,1.794666,3,
+ -0.55557,0.83147,0,1.072211,2.140232,1.5,
+ -0.471397,0.881921,0,1.137025,2.179079,0,
+ -0.55557,0.83147,0,1.072211,2.140232,0,
+ -0.471397,0.881921,0,1.137025,2.179079,0,
+ -0.55557,0.83147,0,1.072211,2.140232,1.5,
+ -0.471397,0.881921,0,1.137025,2.179079,1.5,
+ 0.471397,-0.881921,0,1.862975,0.820921,0,
+ 0.427555,-0.903989,0,1.794666,0.788613,1.5,
+ 0.427555,-0.903989,0,1.794666,0.788613,0,
+ 0.427555,-0.903989,0,1.794666,0.788613,1.5,
+ 0.471397,-0.881921,0,1.862975,0.820921,0,
+ 0.471397,-0.881921,0,1.862975,0.820921,1.5,
+ -0.903989,-0.427555,0,0.788613,1.205334,1.5,
+ -0.889521,-0.456893,0,0.820921,1.137025,0,
+ -0.874085,-0.485774,0,0.820921,1.137025,1.5,
+ -0.889521,-0.456893,0,0.820921,1.137025,0,
+ -0.903989,-0.427555,0,0.788613,1.205334,1.5,
+ -0.903989,-0.427555,0,0.788613,1.205334,0,
+ -0.671559,0.740951,0,0.955528,2.044472,0,
+ -0.646965,0.76252,0,1.011517,2.095218,1.5,
+ -0.621651,0.783294,0,1.011517,2.095218,0,
+ -0.646965,0.76252,0,1.011517,2.095218,1.5,
+ -0.671559,0.740951,0,0.955528,2.044472,0,
+ -0.671559,0.740951,0,0.955528,2.044472,1.5,
+ 0.049068,0.998795,0,1.5,2.27,0,
+ 0.081709,0.996656,0,1.575473,2.266292,1.5,
+ 0.114299,0.993446,0,1.575473,2.266292,0,
+ 0.081709,0.996656,0,1.575473,2.266292,1.5,
+ 0.049068,0.998795,0,1.5,2.27,0,
+ 0.049068,0.998795,0,1.5,2.27,1.5,
+ -0.471397,0.881921,0,1.137025,2.179079,0,
+ -0.427555,0.903989,0,1.205334,2.211387,1.5,
+ -0.427555,0.903989,0,1.205334,2.211387,0,
+ -0.427555,0.903989,0,1.205334,2.211387,1.5,
+ -0.471397,0.881921,0,1.137025,2.179079,0,
+ -0.471397,0.881921,0,1.137025,2.179079,1.5,
+ 0.55557,-0.83147,0,1.927789,0.859768,1.5,
+ 0.471397,-0.881921,0,1.862975,0.820921,0,
+ 0.55557,-0.83147,0,1.927789,0.859768,0,
+ 0.471397,-0.881921,0,1.862975,0.820921,0,
+ 0.55557,-0.83147,0,1.927789,0.859768,1.5,
+ 0.471397,-0.881921,0,1.862975,0.820921,1.5,
+ -0.621651,0.783294,0,1.011517,2.095218,0,
+ -0.55557,0.83147,0,1.072211,2.140232,1.5,
+ -0.55557,0.83147,0,1.072211,2.140232,0,
+ -0.55557,0.83147,0,1.072211,2.140232,1.5,
+ -0.621651,0.783294,0,1.011517,2.095218,0,
+ -0.646965,0.76252,0,1.011517,2.095218,1.5,
+ -0.874085,0.485774,0,2.179079,1.137025,3,
+ -0.840455,0.541882,0,2.140232,1.072211,1.5,
+ -0.822262,0.56911,0,2.140232,1.072211,3,
+ -0.840455,0.541882,0,2.140232,1.072211,1.5,
+ -0.874085,0.485774,0,2.179079,1.137025,3,
+ -0.889521,0.456893,0,2.179079,1.137025,1.5,
+ -0.822262,-0.56911,0,0.859768,1.072211,1.5,
+ -0.783294,-0.621651,0,0.904782,1.011517,0,
+ -0.76252,-0.646965,0,0.904782,1.011517,1.5,
+ -0.783294,-0.621651,0,0.904782,1.011517,0,
+ -0.822262,-0.56911,0,0.859768,1.072211,1.5,
+ -0.840455,-0.541882,0,0.859768,1.072211,0,
+ 0.098017,-0.995185,0,1.424527,2.266292,3,
+ 0.179005,-0.983848,0,1.34978,2.255205,1.5,
+ 0.098017,-0.995185,0,1.424527,2.266292,1.5,
+ 0.179005,-0.983848,0,1.34978,2.255205,1.5,
+ 0.098017,-0.995185,0,1.424527,2.266292,3,
+ 0.211123,-0.97746,0,1.34978,2.255205,3,
+ -0.76252,0.646965,0,2.095218,1.011517,3,
+ -0.740951,0.671559,0,2.044472,0.955528,1.5,
+ -0.740951,0.671559,0,2.044472,0.955528,3,
+ -0.740951,0.671559,0,2.044472,0.955528,1.5,
+ -0.76252,0.646965,0,2.095218,1.011517,3,
+ -0.783294,0.621651,0,2.095218,1.011517,1.5,
+ -0.961565,-0.274577,0,2.236844,1.723519,3,
+ -0.97746,-0.211123,0,2.255205,1.65022,1.5,
+ -0.983848,-0.179005,0,2.255205,1.65022,3,
+ -0.97746,-0.211123,0,2.255205,1.65022,1.5,
+ -0.961565,-0.274577,0,2.236844,1.723519,3,
+ -0.952059,-0.305914,0,2.236844,1.723519,1.5,
+ 0.471397,0.881921,0,1.137025,0.820921,1.5,
+ 0.427555,0.903989,0,1.205334,0.788613,3,
+ 0.427555,0.903989,0,1.205334,0.788613,1.5,
+ 0.427555,0.903989,0,1.205334,0.788613,3,
+ 0.471397,0.881921,0,1.137025,0.820921,1.5,
+ 0.471397,0.881921,0,1.137025,0.820921,3,
+ 0.305914,0.952059,0,1.723519,2.236844,0,
+ 0.33689,0.941544,0,1.794666,2.211387,1.5,
+ 0.33689,0.941544,0,1.794666,2.211387,0,
+ 0.33689,0.941544,0,1.794666,2.211387,1.5,
+ 0.305914,0.952059,0,1.723519,2.236844,0,
+ 0.274577,0.961565,0,1.723519,2.236844,1.5,
+ 0.671559,0.740951,0,0.955528,0.955528,1.5,
+ 0.634393,0.77301,0,1.011517,0.904782,3,
+ 0.634393,0.77301,0,1.011517,0.904782,1.5,
+ 0.634393,0.77301,0,1.011517,0.904782,3,
+ 0.671559,0.740951,0,0.955528,0.955528,1.5,
+ 0.671559,0.740951,0,0.955528,0.955528,3,
+ 1,0,0,1.5,3,0,
+ 1,0,0,1.5,2.27,1.5,
+ 1,0,0,1.5,2.27,0,
+ 1,0,0,1.5,2.27,1.5,
+ 1,0,0,1.5,3,0,
+ 1,0,0,1.5,2.27,3,
+ 1,0,0,1.5,2.27,3,
+ 1,0,0,1.5,3,0,
+ 1,0,0,1.5,3,3,
+ 0.301511,0.301511,0.904534,1.5,3,3,
+ 0.688247,0.229416,-0.688247,1.5,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0.301511,0.301511,0.904534,1.5,3,3,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.5,3,2.795,
+ -0.961565,0.274577,0,0.763156,1.723519,1.5,
+ -0.97746,0.211123,0,0.744795,1.65022,0,
+ -0.983848,0.179005,0,0.744795,1.65022,1.5,
+ -0.97746,0.211123,0,0.744795,1.65022,0,
+ -0.961565,0.274577,0,0.763156,1.723519,1.5,
+ -0.952059,0.305914,0,0.763156,1.723519,0,
+ 0.889521,-0.456893,0,0.820921,1.862975,1.5,
+ 0.903989,-0.427555,0,0.788613,1.794666,3,
+ 0.903989,-0.427555,0,0.788613,1.794666,1.5,
+ 0.903989,-0.427555,0,0.788613,1.794666,3,
+ 0.889521,-0.456893,0,0.820921,1.862975,1.5,
+ 0.874085,-0.485774,0,0.820921,1.862975,3,
+ -0.634393,-0.77301,0,1.988483,2.095218,1.5,
+ -0.55557,-0.83147,0,1.927789,2.140232,3,
+ -0.55557,-0.83147,0,1.927789,2.140232,1.5,
+ -0.55557,-0.83147,0,1.927789,2.140232,3,
+ -0.634393,-0.77301,0,1.988483,2.095218,1.5,
+ -0.634393,-0.77301,0,1.988483,2.095218,3,
+ -0.707107,0.707107,0,0.955528,0.955528,3,
+ -0.707107,0.707107,0,0,0,2.795,
+ -0.707107,0.707107,0,0,0,3,
+ -0.707107,0.707107,0,0,0,2.795,
+ -0.707107,0.707107,0,0.955528,0.955528,3,
+ -0.707107,0.707107,0,0,0,1.5,
+ -0.707107,0.707107,0,0,0,1.5,
+ -0.707107,0.707107,0,0.955528,0.955528,3,
+ -0.707107,0.707107,0,0,0,0.205,
+ -0.707107,0.707107,0,0,0,0.205,
+ -0.707107,0.707107,0,0.955528,0.955528,3,
+ -0.707107,0.707107,0,0,0,0,
+ -0.707107,0.707107,0,0,0,0,
+ -0.707107,0.707107,0,0.955528,0.955528,3,
+ -0.707107,0.707107,0,0.955528,0.955528,0,
+ 0,1,0,0.955528,0.955528,0,
+ 0,1,0,0.955528,0.955528,3,
+ 0,1,0,0.955528,0.955528,1.5,
+ -0.707107,-0.707107,0,3,0,0,
+ -0.707107,-0.707107,0,2.044472,0.955528,1.5,
+ -0.707107,-0.707107,0,2.044472,0.955528,0,
+ -0.707107,-0.707107,0,2.044472,0.955528,1.5,
+ -0.707107,-0.707107,0,3,0,0,
+ -0.707107,-0.707107,0,3,0,3,
+ -0.707107,-0.707107,0,2.044472,0.955528,1.5,
+ -0.707107,-0.707107,0,3,0,3,
+ -0.707107,-0.707107,0,2.044472,0.955528,3,
+ 0.996993,0.077486,0,2.12132,0,0,
+ 1,0,0,2.12132,0,0.82632,
+ 1,0,0,2.12132,0,0.205,
+ 1,0,0,2.12132,0,0.82632,
+ 0.996993,0.077486,0,2.12132,0,0,
+ 1,0,0,2.12132,0,2.17368,
+ 1,0,0,2.12132,0,2.17368,
+ 0.996993,0.077486,0,2.12132,0,0,
+ 1,0,0,2.12132,0,2.795,
+ 1,0,0,2.12132,0,2.795,
+ 0.996993,0.077486,0,2.12132,0,0,
+ 0.96573,0.259551,0,2.12132,0,3,
+ 0.96573,0.259551,0,2.12132,0,3,
+ 0.996993,0.077486,0,2.12132,0,0,
+ 0.92388,0.382683,0,1.794666,0.788613,0,
+ 0.96573,0.259551,0,2.12132,0,3,
+ 0.92388,0.382683,0,1.794666,0.788613,0,
+ 0.92388,0.382683,0,1.794666,0.788613,3,
+ 0.237702,0.536246,0.8099,1.794666,0.788613,3,
+ 0.470193,0.03587,-0.881834,1.794666,0.788613,0,
+ 0.371553,0.153902,0.915567,1.794666,0.788613,1.5,
+ 0.993446,-0.114299,0,2.266292,1.424527,0,
+ 0.983848,-0.179005,0,2.255205,1.34978,1.5,
+ 0.97746,-0.211123,0,2.255205,1.34978,0,
+ 0.983848,-0.179005,0,2.255205,1.34978,1.5,
+ 0.993446,-0.114299,0,2.266292,1.424527,0,
+ 0.996656,-0.081709,0,2.266292,1.424527,1.5,
+ 0.998795,-0.049068,0,2.27,1.5,0,
+ 0.996656,-0.081709,0,2.266292,1.424527,1.5,
+ 0.993446,-0.114299,0,2.266292,1.424527,0,
+ 0.996656,-0.081709,0,2.266292,1.424527,1.5,
+ 0.998795,-0.049068,0,2.27,1.5,0,
+ 0.998795,-0.049068,0,2.27,1.5,1.5,
+ 0.97746,-0.211123,0,2.255205,1.34978,0,
+ 0.961565,-0.274577,0,2.236844,1.276481,1.5,
+ 0.952059,-0.305914,0,2.236844,1.276481,0,
+ 0.961565,-0.274577,0,2.236844,1.276481,1.5,
+ 0.97746,-0.211123,0,2.255205,1.34978,0,
+ 0.983848,-0.179005,0,2.255205,1.34978,1.5,
+ 0,0,1,2.044472,0.955528,1.5,
+ 0,0,1,2.211387,1.205334,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.211387,1.205334,1.5,
+ 0,0,1,2.044472,0.955528,1.5,
+ 0,0,1,2.095218,1.011517,1.5,
+ 0,0,1,2.211387,1.205334,1.5,
+ 0,0,1,2.095218,1.011517,1.5,
+ 0,0,1,2.140232,1.072211,1.5,
+ 0,0,1,2.211387,1.205334,1.5,
+ 0,0,1,2.140232,1.072211,1.5,
+ 0,0,1,2.179079,1.137025,1.5,
+ 0.993446,0.114299,0,0.733708,1.424527,1.5,
+ 0.983848,0.179005,0,0.744795,1.34978,3,
+ 0.97746,0.211123,0,0.744795,1.34978,1.5,
+ 0.983848,0.179005,0,0.744795,1.34978,3,
+ 0.993446,0.114299,0,0.733708,1.424527,1.5,
+ 0.996656,0.081709,0,0.733708,1.424527,3,
+ -0.874085,-0.485774,0,0.820921,1.137025,1.5,
+ -0.840455,-0.541882,0,0.859768,1.072211,0,
+ -0.822262,-0.56911,0,0.859768,1.072211,1.5,
+ -0.840455,-0.541882,0,0.859768,1.072211,0,
+ -0.874085,-0.485774,0,0.820921,1.137025,1.5,
+ -0.889521,-0.456893,0,0.820921,1.137025,0,
+ -0.92388,-0.382683,0,0.87868,3,3,
+ -0.92388,-0.382683,0,1.205334,2.211387,1.5,
+ -0.92388,-0.382683,0,1.205334,2.211387,3,
+ -0.92388,-0.382683,0,1.205334,2.211387,1.5,
+ -0.92388,-0.382683,0,0.87868,3,3,
+ -0.92388,-0.382683,0,1.205334,2.211387,0,
+ -0.92388,-0.382683,0,1.205334,2.211387,0,
+ -0.92388,-0.382683,0,0.87868,3,3,
+ -0.92388,-0.382683,0,0.87868,3,0,
+ 0,-1,0,0.87868,3,0,
+ 0,-1,0,0.87868,3,3,
+ 0,-1,0,0.87868,3,2.795,
+ 0,-1,0,0.87868,3,0,
+ 0,-1,0,0.87868,3,2.795,
+ 0,-1,0,0.87868,3,2.17368,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.87868,3,2.17368,
+ 0,1,0,0.87868,3,0.82632,
+ -0.653281,-0.270598,-0.707107,0.87868,3,0,
+ 0,1,0,0.87868,3,0.82632,
+ 0,1,0,0.87868,3,0.205,
+ 0.382683,0.92388,0,2.211387,1.205334,1.5,
+ 0.382683,0.92388,0,3,0.87868,0,
+ 0.382683,0.92388,0,2.211387,1.205334,0,
+ 0.382683,0.92388,0,3,0.87868,0,
+ 0.382683,0.92388,0,2.211387,1.205334,1.5,
+ 0.382683,0.92388,0,3,0.87868,3,
+ 0.382683,0.92388,0,3,0.87868,3,
+ 0.382683,0.92388,0,2.211387,1.205334,1.5,
+ 0.382683,0.92388,0,2.211387,1.205334,3,
+ 0,-1,0,3,1.5,0,
+ 0,-1,0,2.27,1.5,1.5,
+ 0,-1,0,2.27,1.5,0,
+ 0,-1,0,2.27,1.5,1.5,
+ 0,-1,0,3,1.5,0,
+ 0,-1,0,3,1.5,3,
+ 0,-1,0,2.27,1.5,1.5,
+ 0,-1,0,3,1.5,3,
+ 0,-1,0,2.27,1.5,3,
+ 0.382683,-0.92388,0,0.788613,1.205334,0,
+ 0.382683,-0.92388,0,0,0.87868,3,
+ 0.382683,-0.92388,0,0,0.87868,0,
+ 0.382683,-0.92388,0,0,0.87868,3,
+ 0.382683,-0.92388,0,0.788613,1.205334,0,
+ 0.382683,-0.92388,0,0.788613,1.205334,1.5,
+ 0.382683,-0.92388,0,0,0.87868,3,
+ 0.382683,-0.92388,0,0.788613,1.205334,1.5,
+ 0.382683,-0.92388,0,0.788613,1.205334,3,
+ 0.634393,0.77301,0,1.011517,0.904782,3,
+ 0.56911,0.822262,0,1.072211,0.859768,1.5,
+ 0.634393,0.77301,0,1.011517,0.904782,1.5,
+ 0.56911,0.822262,0,1.072211,0.859768,1.5,
+ 0.634393,0.77301,0,1.011517,0.904782,3,
+ 0.541882,0.840455,0,1.072211,0.859768,3,
+ 0.889521,0.456893,0,2.179079,1.862975,0,
+ 0.903989,0.427555,0,2.211387,1.794666,1.5,
+ 0.903989,0.427555,0,2.211387,1.794666,0,
+ 0.903989,0.427555,0,2.211387,1.794666,1.5,
+ 0.889521,0.456893,0,2.179079,1.862975,0,
+ 0.874085,0.485774,0,2.179079,1.862975,1.5,
+ 0.621651,-0.783294,0,1.988483,0.904782,0,
+ 0.55557,-0.83147,0,1.927789,0.859768,1.5,
+ 0.55557,-0.83147,0,1.927789,0.859768,0,
+ 0.55557,-0.83147,0,1.927789,0.859768,1.5,
+ 0.621651,-0.783294,0,1.988483,0.904782,0,
+ 0.646965,-0.76252,0,1.988483,0.904782,1.5,
+ 0.305914,-0.952059,0,1.276481,2.236844,3,
+ 0.33689,-0.941544,0,1.205334,2.211387,1.5,
+ 0.274577,-0.961565,0,1.276481,2.236844,1.5,
+ 0.33689,-0.941544,0,1.205334,2.211387,1.5,
+ 0.305914,-0.952059,0,1.276481,2.236844,3,
+ 0.33689,-0.941544,0,1.205334,2.211387,3,
+ 0.97746,0.211123,0,0.744795,1.34978,1.5,
+ 0.961565,0.274577,0,0.763156,1.276481,3,
+ 0.952059,0.305914,0,0.763156,1.276481,1.5,
+ 0.961565,0.274577,0,0.763156,1.276481,3,
+ 0.97746,0.211123,0,0.744795,1.34978,1.5,
+ 0.983848,0.179005,0,0.744795,1.34978,3,
+ -0.305914,0.952059,0,1.723519,0.763156,3,
+ -0.33689,0.941544,0,1.794666,0.788613,1.5,
+ -0.274577,0.961565,0,1.723519,0.763156,1.5,
+ -0.33689,0.941544,0,1.794666,0.788613,1.5,
+ -0.305914,0.952059,0,1.723519,0.763156,3,
+ -0.33689,0.941544,0,1.794666,0.788613,3,
+ -0.671559,-0.740951,0,2.044472,2.044472,3,
+ -0.634393,-0.77301,0,1.988483,2.095218,1.5,
+ -0.671559,-0.740951,0,2.044472,2.044472,1.5,
+ -0.634393,-0.77301,0,1.988483,2.095218,1.5,
+ -0.671559,-0.740951,0,2.044472,2.044472,3,
+ -0.634393,-0.77301,0,1.988483,2.095218,3,
+ -0.19509,0.980785,0,1.65022,0.744795,3,
+ -0.274577,0.961565,0,1.723519,0.763156,1.5,
+ -0.19509,0.980785,0,1.65022,0.744795,1.5,
+ -0.274577,0.961565,0,1.723519,0.763156,1.5,
+ -0.19509,0.980785,0,1.65022,0.744795,3,
+ -0.305914,0.952059,0,1.723519,0.763156,3,
+ -0.098017,0.995185,0,1.575473,0.733708,1.5,
+ -0.19509,0.980785,0,1.65022,0.744795,3,
+ -0.19509,0.980785,0,1.65022,0.744795,1.5,
+ -0.19509,0.980785,0,1.65022,0.744795,3,
+ -0.098017,0.995185,0,1.575473,0.733708,1.5,
+ -0.098017,0.995185,0,1.575473,0.733708,3,
+ 0.049068,-0.998795,0,1.5,2.27,1.5,
+ 0.098017,-0.995185,0,1.424527,2.266292,3,
+ 0.098017,-0.995185,0,1.424527,2.266292,1.5,
+ 0.098017,-0.995185,0,1.424527,2.266292,3,
+ 0.049068,-0.998795,0,1.5,2.27,1.5,
+ 0.049068,-0.998795,0,1.5,2.27,3,
+ 0.211123,-0.97746,0,1.34978,2.255205,3,
+ 0.274577,-0.961565,0,1.276481,2.236844,1.5,
+ 0.179005,-0.983848,0,1.34978,2.255205,1.5,
+ 0.274577,-0.961565,0,1.276481,2.236844,1.5,
+ 0.211123,-0.97746,0,1.34978,2.255205,3,
+ 0.305914,-0.952059,0,1.276481,2.236844,3,
+ 0.998795,0.049068,0,0.73,1.5,1.5,
+ 0.996656,0.081709,0,0.733708,1.424527,3,
+ 0.993446,0.114299,0,0.733708,1.424527,1.5,
+ 0.996656,0.081709,0,0.733708,1.424527,3,
+ 0.998795,0.049068,0,0.73,1.5,1.5,
+ 0.998795,0.049068,0,0.73,1.5,3,
+ -0.983848,-0.179005,0,2.255205,1.65022,3,
+ -0.993446,-0.114299,0,2.266292,1.575473,1.5,
+ -0.996656,-0.081709,0,2.266292,1.575473,3,
+ -0.993446,-0.114299,0,2.266292,1.575473,1.5,
+ -0.983848,-0.179005,0,2.255205,1.65022,3,
+ -0.97746,-0.211123,0,2.255205,1.65022,1.5,
+ -0.098017,-0.995185,0,1.424527,0.733708,1.5,
+ -0.179005,-0.983848,0,1.34978,0.744795,0,
+ -0.098017,-0.995185,0,1.424527,0.733708,0,
+ -0.179005,-0.983848,0,1.34978,0.744795,0,
+ -0.098017,-0.995185,0,1.424527,0.733708,1.5,
+ -0.211123,-0.97746,0,1.34978,0.744795,1.5,
+ -0.903989,0.427555,0,2.211387,1.205334,3,
+ -0.889521,0.456893,0,2.179079,1.137025,1.5,
+ -0.874085,0.485774,0,2.179079,1.137025,3,
+ -0.889521,0.456893,0,2.179079,1.137025,1.5,
+ -0.903989,0.427555,0,2.211387,1.205334,3,
+ -0.903989,0.427555,0,2.211387,1.205334,1.5,
+ -0.049068,0.998795,0,1.5,0.73,3,
+ -0.098017,0.995185,0,1.575473,0.733708,1.5,
+ -0.049068,0.998795,0,1.5,0.73,1.5,
+ -0.098017,0.995185,0,1.575473,0.733708,1.5,
+ -0.049068,0.998795,0,1.5,0.73,3,
+ -0.098017,0.995185,0,1.575473,0.733708,3,
+ 0.671559,-0.740951,0,2.044472,0.955528,0,
+ 0.646965,-0.76252,0,1.988483,0.904782,1.5,
+ 0.621651,-0.783294,0,1.988483,0.904782,0,
+ 0.646965,-0.76252,0,1.988483,0.904782,1.5,
+ 0.671559,-0.740951,0,2.044472,0.955528,0,
+ 0.671559,-0.740951,0,2.044472,0.955528,1.5,
+ -0.049068,-0.998795,0,1.5,0.73,0,
+ -0.098017,-0.995185,0,1.424527,0.733708,1.5,
+ -0.098017,-0.995185,0,1.424527,0.733708,0,
+ -0.098017,-0.995185,0,1.424527,0.733708,1.5,
+ -0.049068,-0.998795,0,1.5,0.73,0,
+ -0.049068,-0.998795,0,1.5,0.73,1.5,
+ -0.983848,0.179005,0,0.744795,1.65022,1.5,
+ -0.993446,0.114299,0,0.733708,1.575473,0,
+ -0.996656,0.081709,0,0.733708,1.575473,1.5,
+ -0.993446,0.114299,0,0.733708,1.575473,0,
+ -0.983848,0.179005,0,0.744795,1.65022,1.5,
+ -0.97746,0.211123,0,0.744795,1.65022,0,
+ -0.941544,0.33689,0,0.788613,1.794666,1.5,
+ -0.952059,0.305914,0,0.763156,1.723519,0,
+ -0.961565,0.274577,0,0.763156,1.723519,1.5,
+ -0.952059,0.305914,0,0.763156,1.723519,0,
+ -0.941544,0.33689,0,0.788613,1.794666,1.5,
+ -0.941544,0.33689,0,0.788613,1.794666,0,
+ -0.211123,-0.97746,0,1.34978,0.744795,1.5,
+ -0.290285,-0.95694,0,1.276481,0.763156,0,
+ -0.179005,-0.983848,0,1.34978,0.744795,0,
+ -0.290285,-0.95694,0,1.276481,0.763156,0,
+ -0.211123,-0.97746,0,1.34978,0.744795,1.5,
+ -0.290285,-0.95694,0,1.276481,0.763156,1.5,
+ 0.740951,0.671559,0,2.044472,2.044472,0,
+ 0.76252,0.646965,0,2.095218,1.988483,1.5,
+ 0.783294,0.621651,0,2.095218,1.988483,0,
+ 0.76252,0.646965,0,2.095218,1.988483,1.5,
+ 0.740951,0.671559,0,2.044472,2.044472,0,
+ 0.740951,0.671559,0,2.044472,2.044472,1.5,
+ -0.76252,-0.646965,0,0.904782,1.011517,1.5,
+ -0.740951,-0.671559,0,0.955528,0.955528,0,
+ -0.740951,-0.671559,0,0.955528,0.955528,1.5,
+ -0.740951,-0.671559,0,0.955528,0.955528,0,
+ -0.76252,-0.646965,0,0.904782,1.011517,1.5,
+ -0.783294,-0.621651,0,0.904782,1.011517,0,
+ 0.211123,0.97746,0,1.65022,2.255205,0,
+ 0.274577,0.961565,0,1.723519,2.236844,1.5,
+ 0.305914,0.952059,0,1.723519,2.236844,0,
+ 0.274577,0.961565,0,1.723519,2.236844,1.5,
+ 0.211123,0.97746,0,1.65022,2.255205,0,
+ 0.179005,0.983848,0,1.65022,2.255205,1.5,
+ -0.996656,0.081709,0,0.733708,1.575473,1.5,
+ -0.998795,0.049068,0,0.73,1.5,0,
+ -0.998795,0.049068,0,0.73,1.5,1.5,
+ -0.998795,0.049068,0,0.73,1.5,0,
+ -0.996656,0.081709,0,0.733708,1.575473,1.5,
+ -0.993446,0.114299,0,0.733708,1.575473,0,
+ 0.707107,-0.707107,0,3,3,0,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,2.044472,2.044472,0,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,3,3,0,
+ 0.707107,-0.707107,0,3,3,0.205,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,3,3,0.205,
+ 0.707107,-0.707107,0,3,3,1.5,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,3,3,1.5,
+ 0.707107,-0.707107,0,3,3,2.795,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,3,3,2.795,
+ 0.707107,-0.707107,0,2.044472,2.044472,3,
+ 0.707107,-0.707107,0,2.044472,2.044472,3,
+ 0.707107,-0.707107,0,3,3,2.795,
+ 0.707107,-0.707107,0,3,3,3,
+ 0.840455,0.541882,0,2.140232,1.927789,0,
+ 0.874085,0.485774,0,2.179079,1.862975,1.5,
+ 0.889521,0.456893,0,2.179079,1.862975,0,
+ 0.874085,0.485774,0,2.179079,1.862975,1.5,
+ 0.840455,0.541882,0,2.140232,1.927789,0,
+ 0.822262,0.56911,0,2.140232,1.927789,1.5,
+ 0.952059,-0.305914,0,2.236844,1.276481,0,
+ 0.941544,-0.33689,0,2.211387,1.205334,1.5,
+ 0.941544,-0.33689,0,2.211387,1.205334,0,
+ 0.941544,-0.33689,0,2.211387,1.205334,1.5,
+ 0.952059,-0.305914,0,2.236844,1.276481,0,
+ 0.961565,-0.274577,0,2.236844,1.276481,1.5,
+ 0,1,0,0,1.5,3,
+ 0,1,0,0.73,1.5,0,
+ 0,1,0,0,1.5,0,
+ 0,1,0,0.73,1.5,0,
+ 0,1,0,0,1.5,3,
+ 0,1,0,0.73,1.5,1.5,
+ 0,1,0,0.73,1.5,1.5,
+ 0,1,0,0,1.5,3,
+ 0,1,0,0.73,1.5,3,
+ 0.541882,0.840455,0,1.072211,0.859768,3,
+ 0.471397,0.881921,0,1.137025,0.820921,1.5,
+ 0.56911,0.822262,0,1.072211,0.859768,1.5,
+ 0.471397,0.881921,0,1.137025,0.820921,1.5,
+ 0.541882,0.840455,0,1.072211,0.859768,3,
+ 0.471397,0.881921,0,1.137025,0.820921,3,
+ 0.952059,0.305914,0,0.763156,1.276481,1.5,
+ 0.941544,0.33689,0,0.788613,1.205334,3,
+ 0.941544,0.33689,0,0.788613,1.205334,1.5,
+ 0.941544,0.33689,0,0.788613,1.205334,3,
+ 0.952059,0.305914,0,0.763156,1.276481,1.5,
+ 0.961565,0.274577,0,0.763156,1.276481,3,
+ 0.783294,-0.621651,0,0.904782,1.988483,1.5,
+ 0.822262,-0.56911,0,0.859768,1.927789,3,
+ 0.840455,-0.541882,0,0.859768,1.927789,1.5,
+ 0.822262,-0.56911,0,0.859768,1.927789,3,
+ 0.783294,-0.621651,0,0.904782,1.988483,1.5,
+ 0.76252,-0.646965,0,0.904782,1.988483,3,
+ 0.92388,-0.382683,0,1.205334,0.788613,0,
+ 0.92388,-0.382683,0,0.87868,0,0.205,
+ 0.92388,-0.382683,0,0.87868,0,0,
+ 0.92388,-0.382683,0,0.87868,0,0.205,
+ 0.92388,-0.382683,0,1.205334,0.788613,0,
+ 0.92388,-0.382683,0,0.87868,0,0.82632,
+ 0.92388,-0.382683,0,0.87868,0,0.82632,
+ 0.92388,-0.382683,0,1.205334,0.788613,0,
+ 0.92388,-0.382683,0,0.87868,0,2.17368,
+ 0.92388,-0.382683,0,0.87868,0,2.17368,
+ 0.92388,-0.382683,0,1.205334,0.788613,0,
+ 0.92388,-0.382683,0,0.87868,0,2.795,
+ 0.92388,-0.382683,0,0.87868,0,2.795,
+ 0.92388,-0.382683,0,1.205334,0.788613,0,
+ 0.92388,-0.382683,0,0.87868,0,3,
+ 0.92388,-0.382683,0,0.87868,0,3,
+ 0.92388,-0.382683,0,1.205334,0.788613,0,
+ 0.92388,-0.382683,0,1.205334,0.788613,3,
+ 0.714674,0.572585,0.401731,1.205334,0.788613,3,
+ 0.793487,-0.468606,-0.388313,1.205334,0.788613,0,
+ 0.516676,-0.562787,0.645226,1.205334,0.788613,1.5,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.788613,1.205334,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0.788613,1.205334,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.763156,1.276481,0,
+ 0,0,-1,0.763156,1.276481,0,
+ 0,0,-1,0,1.201631,0,
+ 0,0,-1,0.744795,1.34978,0,
+ 0,0,-1,2.044472,2.044472,0,
+ 0,0,-1,2.140232,1.927789,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.140232,1.927789,0,
+ 0,0,-1,2.044472,2.044472,0,
+ 0,0,-1,2.095218,1.988483,0,
+ 0,0,-1,2.140232,1.927789,0,
+ 0,0,-1,2.211387,1.794666,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.211387,1.794666,0,
+ 0,0,-1,2.140232,1.927789,0,
+ 0,0,-1,2.179079,1.862975,0,
+ 0,0,-1,1.072211,0.859768,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,0.497732,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.072211,0.859768,0,
+ 0,0,-1,1.137025,0.820921,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.137025,0.820921,0,
+ 0,0,-1,1.205334,0.788613,0,
+ 0,0,-1,2.179079,1.137025,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.140232,1.072211,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.179079,1.137025,0,
+ 0,0,-1,2.211387,1.205334,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.211387,1.205334,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,1.927789,0.859768,0,
+ 0,0,-1,1.794666,0.788613,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.794666,0.788613,0,
+ 0,0,-1,1.927789,0.859768,0,
+ 0,0,-1,1.862975,0.820921,0,
+ 0,0,-1,1.794666,0.788613,0,
+ 0,0,-1,1.65022,0.744795,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.65022,0.744795,0,
+ 0,0,-1,1.794666,0.788613,0,
+ 0,0,-1,1.723519,0.763156,0,
+ 0,0,-1,2.255205,1.34978,0,
+ 0,0,-1,2.211387,1.205334,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.211387,1.205334,0,
+ 0,0,-1,2.255205,1.34978,0,
+ 0,0,-1,2.236844,1.276481,0,
+ 0,0,-1,0.820921,1.862975,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.788613,1.794666,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.820921,1.862975,0,
+ 0,0,-1,0.859768,1.927789,0,
+ 0,0,-1,0.904782,1.988483,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.859768,1.927789,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.904782,1.988483,0,
+ 0,0,-1,0.955528,2.044472,0,
+ 0,0,-1,0.763156,1.723519,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.744795,1.65022,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.763156,1.723519,0,
+ 0,0,-1,0.788613,1.794666,0,
+ 0,0,-1,1.794666,2.211387,0,
+ 0,0,-1,1.927789,2.140232,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.927789,2.140232,0,
+ 0,0,-1,1.794666,2.211387,0,
+ 0,0,-1,1.862975,2.179079,0,
+ 0,0,-1,1.65022,2.255205,0,
+ 0,0,-1,1.794666,2.211387,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.794666,2.211387,0,
+ 0,0,-1,1.65022,2.255205,0,
+ 0,0,-1,1.723519,2.236844,0,
+ 0,0,-1,1.723519,0.763156,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.65022,0.744795,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.723519,0.763156,0,
+ 0,0,-1,1.794666,0.788613,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.794666,0.788613,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,2.211387,1.794666,0,
+ 0,0,-1,2.255205,1.65022,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.255205,1.65022,0,
+ 0,0,-1,2.211387,1.794666,0,
+ 0,0,-1,2.236844,1.723519,0,
+ 0,0,-1,2.255205,1.65022,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,2.255205,1.65022,0,
+ 0,0,-1,2.266292,1.575473,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.011517,0.904782,0,
+ 0,0,-1,0.955528,0.955528,0,
+ 0,0,-1,1.011517,0.904782,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.072211,0.859768,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.137025,0.820921,0,
+ 0,0,-1,1.072211,0.859768,0,
+ 0,0,-1,1.137025,0.820921,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.205334,0.788613,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.733708,1.424527,0,
+ 0,0,-1,0.73,1.5,0,
+ 0,0,-1,0.733708,1.424527,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.744795,1.34978,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.276481,0.763156,0,
+ 0,0,-1,1.205334,0.788613,0,
+ 0,0,-1,1.276481,0.763156,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.34978,0.744795,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.763156,1.276481,0,
+ 0,0,-1,0.744795,1.34978,0,
+ 0,0,-1,0.763156,1.276481,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.788613,1.205334,0,
+ 0,0,-1,0.733708,1.575473,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.73,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.733708,1.575473,0,
+ 0,0,-1,0.744795,1.65022,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.820921,1.137025,0,
+ 0,0,-1,0.788613,1.205334,0,
+ 0,0,-1,0.820921,1.137025,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.859768,1.072211,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,2.255205,1.34978,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.255205,1.34978,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,2.266292,1.424527,0,
+ 0,0,-1,2.140232,1.072211,0,
+ 0,0,-1,2.044472,0.955528,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.044472,0.955528,0,
+ 0,0,-1,2.140232,1.072211,0,
+ 0,0,-1,2.095218,1.011517,0,
+ 0,0,-1,1.575473,2.266292,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,2.27,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.575473,2.266292,0,
+ 0,0,-1,1.65022,2.255205,0,
+ 0,0,-1,1.011517,2.095218,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.955528,2.044472,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.011517,2.095218,0,
+ 0,0,-1,1.072211,2.140232,0,
+ 0,0,-1,1.137025,2.179079,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.072211,2.140232,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.137025,2.179079,0,
+ 0,0,-1,1.205334,2.211387,0,
+ 0,0,-1,2.044472,0.955528,0,
+ 0,0,-1,1.927789,0.859768,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.927789,0.859768,0,
+ 0,0,-1,2.044472,0.955528,0,
+ 0,0,-1,1.988483,0.904782,0,
+ 0,0,-1,1.276481,2.236844,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.205334,2.211387,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.276481,2.236844,0,
+ 0,0,-1,1.34978,2.255205,0,
+ 0,0,-1,1.424527,2.266292,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.34978,2.255205,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.424527,2.266292,0,
+ 0,0,-1,1.5,2.27,0,
+ 0,0,-1,2.211387,1.205334,0,
+ 0,0,-1,2.140232,1.072211,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,2.140232,1.072211,0,
+ 0,0,-1,2.211387,1.205334,0,
+ 0,0,-1,2.179079,1.137025,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.904782,1.011517,0,
+ 0,0,-1,0.859768,1.072211,0,
+ 0,0,-1,0.904782,1.011517,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,0.955528,0.955528,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.575473,0.733708,0,
+ 0,0,-1,1.5,0.73,0,
+ 0,0,-1,1.575473,0.733708,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.65022,0.744795,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.205334,2.211387,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.205334,2.211387,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.276481,2.236844,0,
+ 0,0,-1,1.276481,2.236844,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.34978,2.255205,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.788613,1.794666,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.788613,1.794666,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.820921,1.862975,0,
+ 0,0,-1,0.820921,1.862975,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.859768,1.927789,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.862975,2.179079,0,
+ 0,0,-1,1.794666,2.211387,0,
+ 0,0,-1,1.862975,2.179079,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.927789,2.140232,0,
+ 0,0,-1,1.927789,2.140232,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.424527,0.733708,0,
+ 0,0,-1,1.34978,0.744795,0,
+ 0,0,-1,1.424527,0.733708,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.73,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.236844,1.723519,0,
+ 0,0,-1,2.211387,1.794666,0,
+ 0,0,-1,2.236844,1.723519,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.255205,1.65022,0,
+ 0,0,-1,2.255205,1.65022,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,1.798369,0,
+ -0.92388,0.382683,0,2.12132,3,3,
+ -0.92388,0.382683,0,1.794666,2.211387,1.5,
+ -0.92388,0.382683,0,1.794666,2.211387,3,
+ -0.92388,0.382683,0,1.794666,2.211387,1.5,
+ -0.92388,0.382683,0,2.12132,3,3,
+ -0.92388,0.382683,0,1.794666,2.211387,0,
+ -0.92388,0.382683,0,1.794666,2.211387,0,
+ -0.92388,0.382683,0,2.12132,3,3,
+ -0.92388,0.382683,0,2.12132,3,0,
+ -0.269347,0.403107,-0.874618,2.12132,3,0,
+ -0.537476,0.61047,0.58176,2.12132,3,3,
+ 0,1,0,2.12132,3,2.795,
+ -0.269347,0.403107,-0.874618,2.12132,3,0,
+ 0,1,0,2.12132,3,2.795,
+ 0,1,0,2.12132,3,2.17368,
+ -0.269347,0.403107,-0.874618,2.12132,3,0,
+ 0,1,0,2.12132,3,2.17368,
+ 0,1,0,2.12132,3,0.82632,
+ -0.269347,0.403107,-0.874618,2.12132,3,0,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,2.12132,3,0.205,
+ 0,0,1,1.862975,2.179079,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.794666,2.211387,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.862975,2.179079,3,
+ 0,0,1,1.927789,2.140232,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.927789,2.140232,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,0.788613,1.794666,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.788613,1.794666,3,
+ 0,0,1,0.820921,1.862975,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.820921,1.862975,3,
+ 0,0,1,0.859768,1.927789,3,
+ 0.707107,0.707107,0,0,3,0,
+ 0.707107,0.707107,0,0.955528,2.044472,1.5,
+ 0.707107,0.707107,0,0.955528,2.044472,0,
+ 0.707107,0.707107,0,0.955528,2.044472,1.5,
+ 0.707107,0.707107,0,0,3,0,
+ 0.707107,0.707107,0,0.955528,2.044472,3,
+ 0.707107,0.707107,0,0.955528,2.044472,3,
+ 0.707107,0.707107,0,0,3,0,
+ 0.707107,0.707107,0,0,3,3,
+ 0,0,1,0.859768,1.927789,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.859768,1.927789,3,
+ 0,0,1,0.904782,1.988483,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.904782,1.988483,3,
+ 0,0,1,0.955528,2.044472,3,
+ 0,0,1,1.34978,2.255205,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.34978,2.255205,3,
+ 0,0,1,1.424527,2.266292,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.424527,2.266292,3,
+ 0,0,1,1.5,2.27,3,
+ 0,0,1,2.266292,1.575473,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.255205,1.65022,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.266292,1.575473,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.955528,0.955528,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0.955528,0.955528,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,0.955528,0.955528,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.011517,0.904782,3,
+ 0,0,1,1.011517,0.904782,3,
+ 0,0,1,0.497732,0,3,
+ 0,0,1,1.072211,0.859768,3,
+ 0,0,1,0.744795,1.34978,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.201631,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.744795,1.34978,3,
+ 0,0,1,0.733708,1.424527,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0.733708,1.424527,3,
+ 0,0,1,0.73,1.5,3,
+ 0,0,1,1.988483,2.095218,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.927789,2.140232,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.988483,2.095218,3,
+ 0,0,1,2.044472,2.044472,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.044472,2.044472,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.502268,3,3,
+ 0.561517,0.232588,0.794104,3,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.5,0.73,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.73,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.575473,0.733708,3,
+ 0,0,1,1.575473,0.733708,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.65022,0.744795,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.095218,1.011517,3,
+ 0,0,1,2.044472,0.955528,3,
+ 0,0,1,2.095218,1.011517,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.140232,1.072211,3,
+ 0,0,1,2.140232,1.072211,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,0.497732,3,
+ 0,1,0,2.12132,3,2.17368,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,2.12132,3,2.17368,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.12132,3,2.17368,
+ 0,1,0,2.12132,3,2.795,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.12132,3,0.205,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.795,3,0,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.12132,3,0.205,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,0.87868,3,0.82632,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.87868,3,0.205,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.87868,3,2.17368,
+ 0,1,0,0.87868,3,2.795,
+ 0,1,0,0.87868,3,0.82632,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.87868,3,0.82632,
+ 0,1,0,0.87868,3,2.17368,
+ 0,1,0,2.795,3,3,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,3,
+ 0,1,0,3,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,0.87868,3,0.205,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.87868,3,0.205,
+ 0,1,0,2.12132,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.12132,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.12132,3,3,
+ 0,1,0,2.795,3,3,
+ 0,1,0,2.795,3,3,
+ -0.537476,0.61047,0.58176,2.12132,3,3,
+ 0,0,1,2.502268,3,3,
+ 0,-1,0,2.12132,0,0.205,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,2.12132,0,0.205,
+ 0,-1,0,2.12132,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.12132,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.12132,0,3,
+ 0,-1,0,1.798369,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,1.798369,0,3,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,2.12132,0,0.82632,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.12132,0,0.205,
+ 0,-1,0,0.87868,0,2.17368,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.87868,0,0.82632,
+ 0,-1,0,0.205,0,3,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,3,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.87868,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.87868,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.87868,0,3,
+ 0,-1,0,0.205,0,3,
+ 0,-0.83205,0.5547,0.205,0,3,
+ 0.412538,-0.617407,0.669792,0.87868,0,3,
+ 0,0,1,0.497732,0,3,
+ 0,-1,0,0.87868,0,0.205,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.497732,0,0,
+ 0,-1,0,0.87868,0,0.205,
+ 0,-1,0,0.87868,0,2.17368,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.87868,0,2.17368,
+ 0,-1,0,0.87868,0,2.795,
+ 0,-1,0,0.87868,0,0.82632,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.87868,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.87868,0,0.82632,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.12132,0,2.17368,
+ 0,-1,0,2.12132,0,2.795,
+ 0,0,1,1.794666,0.788613,1.5,
+ 0,0,1,2.044472,0.955528,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.044472,0.955528,1.5,
+ 0,0,1,1.794666,0.788613,1.5,
+ 0,0,1,1.862975,0.820921,1.5,
+ 0,0,1,2.044472,0.955528,1.5,
+ 0,0,1,1.862975,0.820921,1.5,
+ 0,0,1,1.927789,0.859768,1.5,
+ 0,0,1,2.044472,0.955528,1.5,
+ 0,0,1,1.927789,0.859768,1.5,
+ 0,0,1,1.988483,0.904782,1.5,
+ 0.83147,0.55557,0,1.5,1.5,0,
+ 0.707107,0.707107,0,2.044472,0.955528,1.5,
+ 0.707107,0.707107,0,2.044472,0.955528,0,
+ 0.707107,0.707107,0,2.044472,0.955528,1.5,
+ 0.83147,0.55557,0,1.5,1.5,0,
+ 0.83147,0.55557,0,1.5,1.5,1.5,
+ 0.83147,0.55557,0,1.5,1.5,1.5,
+ 0.83147,0.55557,0,1.5,1.5,0,
+ 0.707107,0.707107,0,0.955528,2.044472,0,
+ 0.83147,0.55557,0,1.5,1.5,1.5,
+ 0.707107,0.707107,0,0.955528,2.044472,0,
+ 0.707107,0.707107,0,0.955528,2.044472,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.276481,2.236844,1.5,
+ 0,0,1,1.205334,2.211387,1.5,
+ 0,0,1,1.276481,2.236844,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.34978,2.255205,1.5,
+ 0,0,1,1.34978,2.255205,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.424527,2.266292,1.5,
+ 0,0,1,1.424527,2.266292,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.5,2.27,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.820921,1.862975,1.5,
+ 0,0,1,0.788613,1.794666,1.5,
+ 0,0,1,0.820921,1.862975,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.859768,1.927789,1.5,
+ 0,0,1,0.859768,1.927789,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.904782,1.988483,1.5,
+ 0,0,1,0.904782,1.988483,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.955528,2.044472,1.5,
+ -0.382683,-0.92388,0,2.211387,1.205334,1.5,
+ -0.382683,-0.92388,0,1.5,1.5,0,
+ -0.382683,-0.92388,0,2.211387,1.205334,0,
+ -0.382683,-0.92388,0,1.5,1.5,0,
+ -0.382683,-0.92388,0,0.788613,1.794666,1.5,
+ -0.382683,-0.92388,0,0.788613,1.794666,0,
+ -0.382683,-0.92388,0,0.788613,1.794666,1.5,
+ -0.382683,-0.92388,0,1.5,1.5,0,
+ -0.382683,-0.92388,0,2.211387,1.205334,1.5,
+ -0.53272,-0.732123,0.424506,0.788613,1.794666,1.5,
+ 0.220004,0.109479,0.969336,2.211387,1.205334,1.5,
+ 0.245003,0.094681,0.964888,1.5,1.5,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.011517,2.095218,1.5,
+ 0,0,1,0.955528,2.044472,1.5,
+ 0,0,1,1.011517,2.095218,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.072211,2.140232,1.5,
+ 0,0,1,1.072211,2.140232,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.137025,2.179079,1.5,
+ 0,0,1,1.137025,2.179079,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.205334,2.211387,1.5,
+ 0,0,1,1.276481,0.763156,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.205334,0.788613,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.276481,0.763156,1.5,
+ 0,0,1,1.34978,0.744795,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.34978,0.744795,1.5,
+ 0,0,1,1.424527,0.733708,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.424527,0.733708,1.5,
+ 0,0,1,1.5,0.73,1.5,
+ 0.92388,0.382683,0,1.5,1.5,0,
+ 0.92388,0.382683,0,1.794666,0.788613,1.5,
+ 0.92388,0.382683,0,1.794666,0.788613,0,
+ 0.92388,0.382683,0,1.794666,0.788613,1.5,
+ 0.92388,0.382683,0,1.5,1.5,0,
+ 0.92388,0.382683,0,1.5,1.5,1.5,
+ 0.92388,0.382683,0,1.5,1.5,1.5,
+ 0.92388,0.382683,0,1.5,1.5,0,
+ 0.92388,0.382683,0,1.205334,2.211387,0,
+ 0.92388,0.382683,0,1.5,1.5,1.5,
+ 0.92388,0.382683,0,1.205334,2.211387,0,
+ 0.92388,0.382683,0,1.205334,2.211387,1.5,
+ 0,0,1,1.575473,0.733708,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.5,0.73,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.575473,0.733708,1.5,
+ 0,0,1,1.794666,0.788613,1.5,
+ 0,0,1,1.794666,0.788613,1.5,
+ 0,0,1,1.575473,0.733708,1.5,
+ 0,0,1,1.65022,0.744795,1.5,
+ 0,0,1,1.794666,0.788613,1.5,
+ 0,0,1,1.65022,0.744795,1.5,
+ 0,0,1,1.723519,0.763156,1.5,
+ 0,0,1,2.044472,2.044472,1.5,
+ 0,0,1,1.794666,2.211387,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.794666,2.211387,1.5,
+ 0,0,1,2.044472,2.044472,1.5,
+ 0,0,1,1.862975,2.179079,1.5,
+ 0,0,1,1.862975,2.179079,1.5,
+ 0,0,1,2.044472,2.044472,1.5,
+ 0,0,1,1.927789,2.140232,1.5,
+ 0,0,1,1.927789,2.140232,1.5,
+ 0,0,1,2.044472,2.044472,1.5,
+ 0,0,1,1.988483,2.095218,1.5,
+ 1,0,0,1.5,1.5,0,
+ 1,0,0,1.5,0.73,1.5,
+ 1,0,0,1.5,0.73,0,
+ 1,0,0,1.5,0.73,1.5,
+ 1,0,0,1.5,1.5,0,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,1.5,0,
+ 1,0,0,1.5,2.27,0,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,2.27,0,
+ 1,0,0,1.5,2.27,1.5,
+ 0,0,1,0.820921,1.137025,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.788613,1.205334,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.820921,1.137025,1.5,
+ 0,0,1,0.859768,1.072211,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.859768,1.072211,1.5,
+ 0,0,1,0.904782,1.011517,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.904782,1.011517,1.5,
+ 0,0,1,0.955528,0.955528,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.575473,2.266292,1.5,
+ 0,0,1,1.5,2.27,1.5,
+ 0,0,1,1.575473,2.266292,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.794666,2.211387,1.5,
+ 0,0,1,1.575473,2.266292,1.5,
+ 0,0,1,1.794666,2.211387,1.5,
+ 0,0,1,1.65022,2.255205,1.5,
+ 0,0,1,1.65022,2.255205,1.5,
+ 0,0,1,1.794666,2.211387,1.5,
+ 0,0,1,1.723519,2.236844,1.5,
+ 0.941913,-0.335858,0,1.5,1.5,0,
+ 0.92388,-0.382683,0,1.205334,0.788613,1.5,
+ 0.92388,-0.382683,0,1.205334,0.788613,0,
+ 0.92388,-0.382683,0,1.205334,0.788613,1.5,
+ 0.941913,-0.335858,0,1.5,1.5,0,
+ 0.980785,-0.19509,0,1.5,1.5,1.5,
+ 0.980785,-0.19509,0,1.5,1.5,1.5,
+ 0.941913,-0.335858,0,1.5,1.5,0,
+ 0.92388,-0.382683,0,1.794666,2.211387,0,
+ 0.980785,-0.19509,0,1.5,1.5,1.5,
+ 0.92388,-0.382683,0,1.794666,2.211387,0,
+ 0.92388,-0.382683,0,1.794666,2.211387,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,2.211387,1.794666,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.211387,1.794666,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,2.236844,1.723519,1.5,
+ 0,0,1,2.236844,1.723519,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,2.255205,1.65022,1.5,
+ 0,0,1,2.255205,1.65022,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,2.266292,1.575473,1.5,
+ 0,0,1,1.011517,0.904782,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.955528,0.955528,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.011517,0.904782,1.5,
+ 0,0,1,1.072211,0.859768,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.072211,0.859768,1.5,
+ 0,0,1,1.137025,0.820921,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.137025,0.820921,1.5,
+ 0,0,1,1.205334,0.788613,1.5,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,1.5,1.5,0,
+ 0.707107,-0.707107,0,2.044472,2.044472,0,
+ 0.707107,-0.707107,0,1.5,1.5,0,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,0.955528,0.955528,0,
+ 0.707107,-0.707107,0,0.955528,0.955528,0,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,0.955528,0.955528,1.5,
+ 0,0,1,0.955528,0.955528,1.5,
+ 0,0,1,2.044472,2.044472,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.733708,1.575473,1.5,
+ 0,0,1,0.73,1.5,1.5,
+ 0,0,1,0.733708,1.575473,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.744795,1.65022,1.5,
+ 0,0,1,0.744795,1.65022,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.763156,1.723519,1.5,
+ 0,0,1,0.763156,1.723519,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.788613,1.794666,1.5,
+ 0,0,1,2.211387,1.794666,1.5,
+ 0,0,1,2.044472,2.044472,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.044472,2.044472,1.5,
+ 0,0,1,2.211387,1.794666,1.5,
+ 0,0,1,2.095218,1.988483,1.5,
+ 0,0,1,2.095218,1.988483,1.5,
+ 0,0,1,2.211387,1.794666,1.5,
+ 0,0,1,2.140232,1.927789,1.5,
+ 0,0,1,2.140232,1.927789,1.5,
+ 0,0,1,2.211387,1.794666,1.5,
+ 0,0,1,2.179079,1.862975,1.5,
+ 0.382683,-0.92388,0,2.211387,1.794666,1.5,
+ 0.522079,-0.852897,0,1.5,1.5,0,
+ 0.382683,-0.92388,0,2.211387,1.794666,0,
+ 0.522079,-0.852897,0,1.5,1.5,0,
+ 0.382683,-0.92388,0,2.211387,1.794666,1.5,
+ 0.382683,-0.92388,0,0.788613,1.205334,1.5,
+ 0,0,-1,0.788613,1.205334,1.5,
+ 0,0,-1,2.211387,1.794666,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0.382683,-0.92388,0,0.788613,1.205334,1.5,
+ 0.382683,-0.92388,0,0.788613,1.205334,0,
+ 0.522079,-0.852897,0,1.5,1.5,0,
+ 0,0,1,0.733708,1.424527,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.73,1.5,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.733708,1.424527,1.5,
+ 0,0,1,0.744795,1.34978,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.744795,1.34978,1.5,
+ 0,0,1,0.763156,1.276481,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,0.763156,1.276481,1.5,
+ 0,0,1,0.788613,1.205334,1.5,
+ 0,0,1,2.211387,1.205334,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,1.5,1.5,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,2.211387,1.205334,1.5,
+ 0,0,1,2.236844,1.276481,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,2.236844,1.276481,1.5,
+ 0,0,1,2.255205,1.34978,1.5,
+ 0,0,1,2.27,1.5,1.5,
+ 0,0,1,2.255205,1.34978,1.5,
+ 0,0,1,2.266292,1.424527,1.5,
+ 0,1,0,0.73,1.5,1.5,
+ 0,1,0,1.5,1.5,0,
+ 0,1,0,0.73,1.5,0,
+ 0,1,0,1.5,1.5,0,
+ 0,1,0,0.73,1.5,1.5,
+ 0,1,0,1.5,1.5,1.5,
+ 0,1,0,1.5,1.5,0,
+ 0,1,0,2.27,1.5,1.5,
+ 0,1,0,2.27,1.5,0,
+ 0,1,0,2.27,1.5,1.5,
+ 0,1,0,1.5,1.5,0,
+ 0,1,0,1.5,1.5,1.5
+};
+static const struct gllist lament_model_star_d_frame = { GL_N3F_V3F, GL_TRIANGLES, 1608, lament_model_star_d_data, 0 };
+const struct gllist *lament_model_star_d = &lament_model_star_d_frame;
+
+static const float lament_model_star_u_data[] = {
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.266292,1.424527,3,
+ 0,0,1,2.255205,1.34978,3,
+ 0,0,1,2.266292,1.424527,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,0.73,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.73,1.5,3,
+ 0,0,1,0.733708,1.575473,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.733708,1.575473,3,
+ 0,0,1,0.744795,1.65022,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.988483,0.904782,3,
+ 0,0,1,1.927789,0.859768,3,
+ 0,0,1,1.988483,0.904782,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.044472,0.955528,3,
+ 0,0,1,2.044472,0.955528,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,3,0,3,
+ 0.397052,-0.725981,0.561517,3,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,-1,0,2.795,0,3,
+ 0,0,1,0.955528,0.955528,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.955528,0.955528,3,
+ 0,0,1,0.904782,1.011517,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.904782,1.011517,3,
+ 0,0,1,0.859768,1.072211,3,
+ 0,0,1,1.575473,2.266292,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,2.27,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.575473,2.266292,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.575473,2.266292,3,
+ 0,0,1,1.65022,2.255205,3,
+ 0,0,1,2.095218,1.988483,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.044472,2.044472,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.095218,1.988483,3,
+ 0,0,1,2.140232,1.927789,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.140232,1.927789,3,
+ 0,0,1,3,2.502268,3,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,3,
+ 0,-1,0,2.12132,0,2.17368,
+ 0,-1,0,2.12132,0,0.82632,
+ 0,-1,0,2.795,0,1.5,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,3,0,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,3,0,
+ 1,0,0,3,3,3,
+ 0,0,-1,2.236844,1.276481,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.211387,1.205334,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.236844,1.276481,0,
+ 0,0,-1,2.255205,1.34978,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.255205,1.34978,0,
+ 0,0,-1,3,1.201631,0,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.497732,3,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,0.497732,0,
+ -1,0,0,0,0.87868,3,
+ -1,0,0,0,0.87868,0,
+ 0,0,1,0.955528,2.044472,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0.955528,2.044472,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.955528,2.044472,3,
+ 0,0,1,1.011517,2.095218,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,1.011517,2.095218,3,
+ 0,0,1,1.072211,2.140232,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.34978,0.744795,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.34978,0.744795,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.424527,0.733708,3,
+ 0,0,1,1.424527,0.733708,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.73,3,
+ 0,0,-1,0.788613,1.205334,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0.87868,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.788613,1.205334,0,
+ 0,0,-1,0.820921,1.137025,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0.820921,1.137025,0,
+ 0,0,-1,0.859768,1.072211,0,
+ -0.56911,-0.822262,0,1.072211,0.859768,3,
+ -0.621651,-0.783294,0,1.011517,0.904782,1.5,
+ -0.541882,-0.840455,0,1.072211,0.859768,1.5,
+ -0.621651,-0.783294,0,1.011517,0.904782,1.5,
+ -0.56911,-0.822262,0,1.072211,0.859768,3,
+ -0.646965,-0.76252,0,1.011517,0.904782,3,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.179079,1.862975,0,
+ 0,0,-1,2.140232,1.927789,0,
+ 0,0,-1,2.179079,1.862975,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.211387,1.794666,0,
+ 0,0,-1,2.211387,1.794666,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,3,2.12132,0,
+ -1,0,0,1.5,3,3,
+ -1,0,0,1.5,2.27,1.5,
+ -1,0,0,1.5,2.27,3,
+ -1,0,0,1.5,2.27,1.5,
+ -1,0,0,1.5,3,3,
+ -1,0,0,1.5,2.27,0,
+ -1,0,0,1.5,2.27,0,
+ -1,0,0,1.5,3,3,
+ -1,0,0,1.5,3,0,
+ -0.408248,0.408248,-0.816497,1.5,3,0,
+ -0.727607,0.485071,0.485071,1.5,3,3,
+ 0,1,0,1.5,3,2.795,
+ -0.408248,0.408248,-0.816497,1.5,3,0,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,0.205,
+ -0.998795,0.049068,0,2.27,1.5,1.5,
+ -0.996656,0.081709,0,2.266292,1.424527,0,
+ -0.993446,0.114299,0,2.266292,1.424527,1.5,
+ -0.996656,0.081709,0,2.266292,1.424527,0,
+ -0.998795,0.049068,0,2.27,1.5,1.5,
+ -0.998795,0.049068,0,2.27,1.5,0,
+ -0.952059,0.305914,0,2.236844,1.276481,1.5,
+ -0.941544,0.33689,0,2.211387,1.205334,0,
+ -0.941544,0.33689,0,2.211387,1.205334,1.5,
+ -0.941544,0.33689,0,2.211387,1.205334,0,
+ -0.952059,0.305914,0,2.236844,1.276481,1.5,
+ -0.961565,0.274577,0,2.236844,1.276481,0,
+ -0.92388,-0.382683,0,1.794666,0.788613,3,
+ -0.92388,-0.382683,0,2.12132,0,2.795,
+ -0.92388,-0.382683,0,2.12132,0,3,
+ -0.92388,-0.382683,0,2.12132,0,2.795,
+ -0.92388,-0.382683,0,1.794666,0.788613,3,
+ -0.92388,-0.382683,0,2.12132,0,2.17368,
+ -0.92388,-0.382683,0,2.12132,0,2.17368,
+ -0.92388,-0.382683,0,1.794666,0.788613,3,
+ -0.92388,-0.382683,0,2.12132,0,0.82632,
+ -0.92388,-0.382683,0,2.12132,0,0.82632,
+ -0.92388,-0.382683,0,1.794666,0.788613,3,
+ -0.92388,-0.382683,0,2.12132,0,0.205,
+ -0.92388,-0.382683,0,2.12132,0,0.205,
+ -0.92388,-0.382683,0,1.794666,0.788613,3,
+ -0.92388,-0.382683,0,2.12132,0,0,
+ -0.92388,-0.382683,0,2.12132,0,0,
+ -0.92388,-0.382683,0,1.794666,0.788613,3,
+ -0.92388,-0.382683,0,1.794666,0.788613,0,
+ -0.767794,0.296171,-0.568133,1.794666,0.788613,0,
+ -0.446575,-0.504521,0.738938,1.794666,0.788613,3,
+ 0.066046,0.203371,-0.976872,1.794666,0.788613,1.5,
+ -0.646965,-0.76252,0,1.011517,0.904782,3,
+ -0.671559,-0.740951,0,0.955528,0.955528,1.5,
+ -0.621651,-0.783294,0,1.011517,0.904782,1.5,
+ -0.671559,-0.740951,0,0.955528,0.955528,1.5,
+ -0.646965,-0.76252,0,1.011517,0.904782,3,
+ -0.671559,-0.740951,0,0.955528,0.955528,3,
+ 0.874085,-0.485774,0,2.179079,1.137025,1.5,
+ 0.840455,-0.541882,0,2.140232,1.072211,3,
+ 0.822262,-0.56911,0,2.140232,1.072211,1.5,
+ 0.840455,-0.541882,0,2.140232,1.072211,3,
+ 0.874085,-0.485774,0,2.179079,1.137025,1.5,
+ 0.889521,-0.456893,0,2.179079,1.137025,3,
+ 0.92388,-0.382683,0,2.12132,3,0,
+ 0.92388,-0.382683,0,1.794666,2.211387,1.5,
+ 0.92388,-0.382683,0,1.794666,2.211387,0,
+ 0.92388,-0.382683,0,1.794666,2.211387,1.5,
+ 0.92388,-0.382683,0,2.12132,3,0,
+ 0.92388,-0.382683,0,1.794666,2.211387,3,
+ 0.92388,-0.382683,0,1.794666,2.211387,3,
+ 0.92388,-0.382683,0,2.12132,3,0,
+ 0.92388,-0.382683,0,2.12132,3,3,
+ 0.618034,0.412957,0.668955,2.12132,3,3,
+ 0.903634,0.27776,-0.326029,2.12132,3,0,
+ 0,1,0,2.12132,3,0.205,
+ 0.618034,0.412957,0.668955,2.12132,3,3,
+ 0,1,0,2.12132,3,0.205,
+ 0,1,0,2.12132,3,0.82632,
+ 0.618034,0.412957,0.668955,2.12132,3,3,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,2.12132,3,2.17368,
+ 0.618034,0.412957,0.668955,2.12132,3,3,
+ 0,1,0,2.12132,3,2.17368,
+ 0,1,0,2.12132,3,2.795,
+ -0.740951,-0.671559,0,2.044472,2.044472,1.5,
+ -0.76252,-0.646965,0,2.095218,1.988483,0,
+ -0.783294,-0.621651,0,2.095218,1.988483,1.5,
+ -0.76252,-0.646965,0,2.095218,1.988483,0,
+ -0.740951,-0.671559,0,2.044472,2.044472,1.5,
+ -0.740951,-0.671559,0,2.044472,2.044472,0,
+ -0.33689,0.941544,0,1.205334,2.211387,3,
+ -0.305914,0.952059,0,1.276481,2.236844,1.5,
+ -0.33689,0.941544,0,1.205334,2.211387,1.5,
+ -0.305914,0.952059,0,1.276481,2.236844,1.5,
+ -0.33689,0.941544,0,1.205334,2.211387,3,
+ -0.274577,0.961565,0,1.276481,2.236844,3,
+ 0.941544,0.33689,0,2.211387,1.794666,1.5,
+ 0.952059,0.305914,0,2.236844,1.723519,3,
+ 0.961565,0.274577,0,2.236844,1.723519,1.5,
+ 0.952059,0.305914,0,2.236844,1.723519,3,
+ 0.941544,0.33689,0,2.211387,1.794666,1.5,
+ 0.941544,0.33689,0,2.211387,1.794666,3,
+ 0.081709,-0.996656,0,1.575473,0.733708,3,
+ 0.049068,-0.998795,0,1.5,0.73,1.5,
+ 0.114299,-0.993446,0,1.575473,0.733708,1.5,
+ 0.049068,-0.998795,0,1.5,0.73,1.5,
+ 0.081709,-0.996656,0,1.575473,0.733708,3,
+ 0.049068,-0.998795,0,1.5,0.73,3,
+ 0.707107,0.707107,0,2.044472,0.955528,1.5,
+ 0.707107,0.707107,0,3,0,0,
+ 0.707107,0.707107,0,2.044472,0.955528,0,
+ 0.707107,0.707107,0,3,0,0,
+ 0.707107,0.707107,0,2.044472,0.955528,1.5,
+ 0.707107,0.707107,0,3,0,0.205,
+ 0.707107,0.707107,0,3,0,0.205,
+ 0.707107,0.707107,0,2.044472,0.955528,1.5,
+ 0.707107,0.707107,0,3,0,1.5,
+ 0.707107,0.707107,0,3,0,1.5,
+ 0.707107,0.707107,0,2.044472,0.955528,1.5,
+ 0.707107,0.707107,0,2.044472,0.955528,3,
+ 0.707107,0.707107,0,3,0,1.5,
+ 0.707107,0.707107,0,2.044472,0.955528,3,
+ 0.707107,0.707107,0,3,0,2.795,
+ 0.707107,0.707107,0,3,0,2.795,
+ 0.707107,0.707107,0,2.044472,0.955528,3,
+ 0.707107,0.707107,0,3,0,3,
+ -0.783294,-0.621651,0,2.095218,1.988483,1.5,
+ -0.822262,-0.56911,0,2.140232,1.927789,0,
+ -0.840455,-0.541882,0,2.140232,1.927789,1.5,
+ -0.822262,-0.56911,0,2.140232,1.927789,0,
+ -0.783294,-0.621651,0,2.095218,1.988483,1.5,
+ -0.76252,-0.646965,0,2.095218,1.988483,0,
+ 0.983848,0.179005,0,2.255205,1.65022,1.5,
+ 0.993446,0.114299,0,2.266292,1.575473,3,
+ 0.996656,0.081709,0,2.266292,1.575473,1.5,
+ 0.993446,0.114299,0,2.266292,1.575473,3,
+ 0.983848,0.179005,0,2.255205,1.65022,1.5,
+ 0.97746,0.211123,0,2.255205,1.65022,3,
+ 0.33689,0.941544,0,1.205334,0.788613,1.5,
+ 0.305914,0.952059,0,1.276481,0.763156,0,
+ 0.33689,0.941544,0,1.205334,0.788613,0,
+ 0.305914,0.952059,0,1.276481,0.763156,0,
+ 0.33689,0.941544,0,1.205334,0.788613,1.5,
+ 0.274577,0.961565,0,1.276481,0.763156,1.5,
+ -0.179005,-0.983848,0,1.65022,2.255205,1.5,
+ -0.114299,-0.993446,0,1.575473,2.266292,0,
+ -0.211123,-0.97746,0,1.65022,2.255205,0,
+ -0.114299,-0.993446,0,1.575473,2.266292,0,
+ -0.179005,-0.983848,0,1.65022,2.255205,1.5,
+ -0.081709,-0.996656,0,1.575473,2.266292,1.5,
+ -0.274577,-0.961565,0,1.723519,2.236844,1.5,
+ -0.211123,-0.97746,0,1.65022,2.255205,0,
+ -0.305914,-0.952059,0,1.723519,2.236844,0,
+ -0.211123,-0.97746,0,1.65022,2.255205,0,
+ -0.274577,-0.961565,0,1.723519,2.236844,1.5,
+ -0.179005,-0.983848,0,1.65022,2.255205,1.5,
+ -0.081709,-0.996656,0,1.575473,2.266292,1.5,
+ -0.049068,-0.998795,0,1.5,2.27,0,
+ -0.114299,-0.993446,0,1.575473,2.266292,0,
+ -0.049068,-0.998795,0,1.5,2.27,0,
+ -0.081709,-0.996656,0,1.575473,2.266292,1.5,
+ -0.049068,-0.998795,0,1.5,2.27,1.5,
+ 0.76252,0.646965,0,0.904782,1.011517,0,
+ 0.740951,0.671559,0,0.955528,0.955528,1.5,
+ 0.740951,0.671559,0,0.955528,0.955528,0,
+ 0.740951,0.671559,0,0.955528,0.955528,1.5,
+ 0.76252,0.646965,0,0.904782,1.011517,0,
+ 0.783294,0.621651,0,0.904782,1.011517,1.5,
+ -0.889521,0.456893,0,0.820921,1.862975,3,
+ -0.903989,0.427555,0,0.788613,1.794666,1.5,
+ -0.903989,0.427555,0,0.788613,1.794666,3,
+ -0.903989,0.427555,0,0.788613,1.794666,1.5,
+ -0.889521,0.456893,0,0.820921,1.862975,3,
+ -0.874085,0.485774,0,0.820921,1.862975,1.5,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,1.798369,0,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.12132,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.723519,2.236844,0,
+ 0,0,-1,1.65022,2.255205,0,
+ 0,0,-1,1.723519,2.236844,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.794666,2.211387,0,
+ 0,0,-1,1.794666,2.211387,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.862975,0.820921,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.794666,0.788613,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.862975,0.820921,0,
+ 0,0,-1,1.927789,0.859768,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.927789,0.859768,0,
+ 0,0,-1,2.502268,0,0,
+ -0.382683,0.92388,0,0,0.87868,3,
+ -0.382683,0.92388,0,0.788613,1.205334,0,
+ -0.382683,0.92388,0,0,0.87868,0,
+ -0.382683,0.92388,0,0.788613,1.205334,0,
+ -0.382683,0.92388,0,0,0.87868,3,
+ -0.382683,0.92388,0,0.788613,1.205334,1.5,
+ -0.382683,0.92388,0,0.788613,1.205334,1.5,
+ -0.382683,0.92388,0,0,0.87868,3,
+ -0.382683,0.92388,0,0.788613,1.205334,3,
+ 0,-1,0,0.73,1.5,1.5,
+ 0,-1,0,0,1.5,0,
+ 0,-1,0,0.73,1.5,0,
+ 0,-1,0,0,1.5,0,
+ 0,-1,0,0.73,1.5,1.5,
+ 0,-1,0,0,1.5,3,
+ 0,-1,0,0,1.5,3,
+ 0,-1,0,0.73,1.5,1.5,
+ 0,-1,0,0.73,1.5,3,
+ -0.707107,0.707107,0,2.044472,2.044472,1.5,
+ -0.707107,0.707107,0,3,3,0,
+ -0.707107,0.707107,0,2.044472,2.044472,0,
+ -0.707107,0.707107,0,3,3,0,
+ -0.707107,0.707107,0,2.044472,2.044472,1.5,
+ -0.707107,0.707107,0,3,3,3,
+ -0.707107,0.707107,0,3,3,3,
+ -0.707107,0.707107,0,2.044472,2.044472,1.5,
+ -0.707107,0.707107,0,2.044472,2.044472,3,
+ -0.382683,-0.92388,0,3,0.87868,3,
+ -0.382683,-0.92388,0,2.211387,1.205334,0,
+ -0.382683,-0.92388,0,3,0.87868,0,
+ -0.382683,-0.92388,0,2.211387,1.205334,0,
+ -0.382683,-0.92388,0,3,0.87868,3,
+ -0.382683,-0.92388,0,2.211387,1.205334,1.5,
+ -0.382683,-0.92388,0,2.211387,1.205334,1.5,
+ -0.382683,-0.92388,0,3,0.87868,3,
+ -0.382683,-0.92388,0,2.211387,1.205334,3,
+ -0.427555,-0.903989,0,1.205334,0.788613,3,
+ -0.456893,-0.889521,0,1.137025,0.820921,1.5,
+ -0.427555,-0.903989,0,1.205334,0.788613,1.5,
+ -0.456893,-0.889521,0,1.137025,0.820921,1.5,
+ -0.427555,-0.903989,0,1.205334,0.788613,3,
+ -0.485774,-0.874085,0,1.137025,0.820921,3,
+ 0.92388,0.382683,0,0.87868,3,0,
+ 0.92388,0.382683,0,1.205334,2.211387,1.5,
+ 0.92388,0.382683,0,1.205334,2.211387,0,
+ 0.92388,0.382683,0,1.205334,2.211387,1.5,
+ 0.92388,0.382683,0,0.87868,3,0,
+ 0.92388,0.382683,0,1.205334,2.211387,3,
+ 0.92388,0.382683,0,1.205334,2.211387,3,
+ 0.92388,0.382683,0,0.87868,3,0,
+ 0.92388,0.382683,0,0.87868,3,3,
+ 0.269347,0.403107,0.874618,0.87868,3,3,
+ 0.537476,0.61047,-0.58176,0.87868,3,0,
+ 0,1,0,0.87868,3,0.205,
+ 0.269347,0.403107,0.874618,0.87868,3,3,
+ 0,1,0,0.87868,3,0.205,
+ 0,1,0,0.87868,3,0.82632,
+ 0.269347,0.403107,0.874618,0.87868,3,3,
+ 0,1,0,0.87868,3,0.82632,
+ 0,1,0,0.87868,3,2.17368,
+ 0.269347,0.403107,0.874618,0.87868,3,3,
+ 0,1,0,0.87868,3,2.17368,
+ 0,1,0,0.87868,3,2.795,
+ -0.740951,0.671559,0,0.955528,2.044472,3,
+ -0.76252,0.646965,0,0.904782,1.988483,1.5,
+ -0.783294,0.621651,0,0.904782,1.988483,3,
+ -0.76252,0.646965,0,0.904782,1.988483,1.5,
+ -0.740951,0.671559,0,0.955528,2.044472,3,
+ -0.740951,0.671559,0,0.955528,2.044472,1.5,
+ -0.993446,-0.114299,0,0.733708,1.424527,3,
+ -0.983848,-0.179005,0,0.744795,1.34978,1.5,
+ -0.97746,-0.211123,0,0.744795,1.34978,3,
+ -0.983848,-0.179005,0,0.744795,1.34978,1.5,
+ -0.993446,-0.114299,0,0.733708,1.424527,3,
+ -0.996656,-0.081709,0,0.733708,1.424527,1.5,
+ -0.707107,-0.707107,0,0,3,3,
+ -0.707107,-0.707107,0,0.955528,2.044472,1.5,
+ -0.707107,-0.707107,0,0.955528,2.044472,3,
+ -0.707107,-0.707107,0,0.955528,2.044472,1.5,
+ -0.707107,-0.707107,0,0,3,3,
+ -0.707107,-0.707107,0,0.955528,2.044472,0,
+ -0.707107,-0.707107,0,0.955528,2.044472,0,
+ -0.707107,-0.707107,0,0,3,3,
+ -0.707107,-0.707107,0,0,3,0,
+ -0.561517,0.232588,-0.794104,0,3,0,
+ -0.903326,-0.051662,0.425832,0,3,3,
+ 0,1,0,0,3,2.795,
+ -0.561517,0.232588,-0.794104,0,3,0,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0,3,1.5,
+ -0.561517,0.232588,-0.794104,0,3,0,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0,3,0.205,
+ 0,0,-1,2.044472,2.044472,1.5,
+ 0,0,-1,2.211387,1.794666,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.211387,1.794666,1.5,
+ 0,0,-1,2.044472,2.044472,1.5,
+ 0,0,-1,2.095218,1.988483,1.5,
+ 0,0,-1,2.211387,1.794666,1.5,
+ 0,0,-1,2.095218,1.988483,1.5,
+ 0,0,-1,2.140232,1.927789,1.5,
+ 0,0,-1,2.211387,1.794666,1.5,
+ 0,0,-1,2.140232,1.927789,1.5,
+ 0,0,-1,2.179079,1.862975,1.5,
+ 0.274577,-0.961565,0,1.723519,0.763156,3,
+ 0.211123,-0.97746,0,1.65022,0.744795,1.5,
+ 0.305914,-0.952059,0,1.723519,0.763156,1.5,
+ 0.211123,-0.97746,0,1.65022,0.744795,1.5,
+ 0.274577,-0.961565,0,1.723519,0.763156,3,
+ 0.179005,-0.983848,0,1.65022,0.744795,3,
+ 0.874085,0.485774,0,0.820921,1.137025,0,
+ 0.840455,0.541882,0,0.859768,1.072211,1.5,
+ 0.822262,0.56911,0,0.859768,1.072211,0,
+ 0.840455,0.541882,0,0.859768,1.072211,1.5,
+ 0.874085,0.485774,0,0.820921,1.137025,0,
+ 0.889521,0.456893,0,0.820921,1.137025,1.5,
+ 0.822262,-0.56911,0,2.140232,1.072211,1.5,
+ 0.783294,-0.621651,0,2.095218,1.011517,3,
+ 0.76252,-0.646965,0,2.095218,1.011517,1.5,
+ 0.783294,-0.621651,0,2.095218,1.011517,3,
+ 0.822262,-0.56911,0,2.140232,1.072211,1.5,
+ 0.840455,-0.541882,0,2.140232,1.072211,3,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.072211,2.140232,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.072211,2.140232,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.137025,2.179079,0,
+ 0,0,-1,1.137025,2.179079,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.205334,2.211387,0,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.87868,0,0.82632,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.87868,0,0.82632,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.87868,0,2.17368,
+ 1,0,0,1.5,0.73,0,
+ 1,0,0,1.5,0,0.205,
+ 1,0,0,1.5,0,0,
+ 1,0,0,1.5,0,0.205,
+ 1,0,0,1.5,0.73,0,
+ 1,0,0,1.5,0,2.795,
+ 1,0,0,1.5,0,2.795,
+ 1,0,0,1.5,0.73,0,
+ 1,0,0,1.5,0,3,
+ 1,0,0,1.5,0,3,
+ 1,0,0,1.5,0.73,0,
+ 1,0,0,1.5,0.73,3,
+ 0.694147,-0.227384,0.682976,1.5,0.73,3,
+ 0.878025,0.427983,-0.21425,1.5,0.73,0,
+ 0.341066,-0.296944,-0.891907,1.5,0.73,1.5,
+ -0.993446,0.114299,0,2.266292,1.424527,1.5,
+ -0.983848,0.179005,0,2.255205,1.34978,0,
+ -0.97746,0.211123,0,2.255205,1.34978,1.5,
+ -0.983848,0.179005,0,2.255205,1.34978,0,
+ -0.993446,0.114299,0,2.266292,1.424527,1.5,
+ -0.996656,0.081709,0,2.266292,1.424527,0,
+ 0.961565,0.274577,0,2.236844,1.723519,1.5,
+ 0.97746,0.211123,0,2.255205,1.65022,3,
+ 0.983848,0.179005,0,2.255205,1.65022,1.5,
+ 0.97746,0.211123,0,2.255205,1.65022,3,
+ 0.961565,0.274577,0,2.236844,1.723519,1.5,
+ 0.952059,0.305914,0,2.236844,1.723519,3,
+ -0.274577,0.961565,0,1.276481,2.236844,3,
+ -0.211123,0.97746,0,1.34978,2.255205,1.5,
+ -0.305914,0.952059,0,1.276481,2.236844,1.5,
+ -0.211123,0.97746,0,1.34978,2.255205,1.5,
+ -0.274577,0.961565,0,1.276481,2.236844,3,
+ -0.179005,0.983848,0,1.34978,2.255205,3,
+ 0.903989,-0.427555,0,2.211387,1.205334,1.5,
+ 0.889521,-0.456893,0,2.179079,1.137025,3,
+ 0.874085,-0.485774,0,2.179079,1.137025,1.5,
+ 0.889521,-0.456893,0,2.179079,1.137025,3,
+ 0.903989,-0.427555,0,2.211387,1.205334,1.5,
+ 0.903989,-0.427555,0,2.211387,1.205334,3,
+ 0.646965,0.76252,0,1.988483,2.095218,3,
+ 0.671559,0.740951,0,2.044472,2.044472,1.5,
+ 0.621651,0.783294,0,1.988483,2.095218,1.5,
+ 0.671559,0.740951,0,2.044472,2.044472,1.5,
+ 0.646965,0.76252,0,1.988483,2.095218,3,
+ 0.671559,0.740951,0,2.044472,2.044472,3,
+ -0.081709,0.996656,0,1.424527,2.266292,3,
+ -0.049068,0.998795,0,1.5,2.27,1.5,
+ -0.114299,0.993446,0,1.424527,2.266292,1.5,
+ -0.049068,0.998795,0,1.5,2.27,1.5,
+ -0.081709,0.996656,0,1.424527,2.266292,3,
+ -0.049068,0.998795,0,1.5,2.27,3,
+ 0.427555,0.903989,0,1.794666,2.211387,3,
+ 0.456893,0.889521,0,1.862975,2.179079,1.5,
+ 0.427555,0.903989,0,1.794666,2.211387,1.5,
+ 0.456893,0.889521,0,1.862975,2.179079,1.5,
+ 0.427555,0.903989,0,1.794666,2.211387,3,
+ 0.485774,0.874085,0,1.862975,2.179079,3,
+ 0,1,0,2.27,1.5,1.5,
+ 0,1,0,3,1.5,0,
+ 0,1,0,2.27,1.5,0,
+ 0,1,0,3,1.5,0,
+ 0,1,0,2.27,1.5,1.5,
+ 0,1,0,3,1.5,3,
+ 0,1,0,3,1.5,3,
+ 0,1,0,2.27,1.5,1.5,
+ 0,1,0,2.27,1.5,3,
+ 0.996656,-0.081709,0,0.733708,1.575473,0,
+ 0.998795,-0.049068,0,0.73,1.5,1.5,
+ 0.998795,-0.049068,0,0.73,1.5,0,
+ 0.998795,-0.049068,0,0.73,1.5,1.5,
+ 0.996656,-0.081709,0,0.733708,1.575473,0,
+ 0.993446,-0.114299,0,0.733708,1.575473,1.5,
+ -0.840455,0.541882,0,0.859768,1.927789,3,
+ -0.874085,0.485774,0,0.820921,1.862975,1.5,
+ -0.889521,0.456893,0,0.820921,1.862975,3,
+ -0.874085,0.485774,0,0.820921,1.862975,1.5,
+ -0.840455,0.541882,0,0.859768,1.927789,3,
+ -0.822262,0.56911,0,0.859768,1.927789,1.5,
+ -0.998795,-0.049068,0,0.73,1.5,3,
+ -0.996656,-0.081709,0,0.733708,1.424527,1.5,
+ -0.993446,-0.114299,0,0.733708,1.424527,3,
+ -0.996656,-0.081709,0,0.733708,1.424527,1.5,
+ -0.998795,-0.049068,0,0.73,1.5,3,
+ -0.998795,-0.049068,0,0.73,1.5,1.5,
+ -0.97746,-0.211123,0,0.744795,1.34978,3,
+ -0.961565,-0.274577,0,0.763156,1.276481,1.5,
+ -0.952059,-0.305914,0,0.763156,1.276481,3,
+ -0.961565,-0.274577,0,0.763156,1.276481,1.5,
+ -0.97746,-0.211123,0,0.744795,1.34978,3,
+ -0.983848,-0.179005,0,0.744795,1.34978,1.5,
+ 0.961565,-0.274577,0,0.763156,1.723519,0,
+ 0.97746,-0.211123,0,0.744795,1.65022,1.5,
+ 0.983848,-0.179005,0,0.744795,1.65022,0,
+ 0.97746,-0.211123,0,0.744795,1.65022,1.5,
+ 0.961565,-0.274577,0,0.763156,1.723519,0,
+ 0.952059,-0.305914,0,0.763156,1.723519,1.5,
+ 0.33689,-0.941544,0,1.794666,0.788613,3,
+ 0.305914,-0.952059,0,1.723519,0.763156,1.5,
+ 0.33689,-0.941544,0,1.794666,0.788613,1.5,
+ 0.305914,-0.952059,0,1.723519,0.763156,1.5,
+ 0.33689,-0.941544,0,1.794666,0.788613,3,
+ 0.274577,-0.961565,0,1.723519,0.763156,3,
+ 0.707107,-0.707107,0,0.955528,0.955528,0,
+ 0.707107,-0.707107,0,0,0,3,
+ 0.707107,-0.707107,0,0,0,0,
+ 0.707107,-0.707107,0,0,0,3,
+ 0.707107,-0.707107,0,0.955528,0.955528,0,
+ 0.707107,-0.707107,0,0.955528,0.955528,3,
+ 0.282725,-0.558186,0.780061,0.955528,0.955528,3,
+ 0.865795,-0.298347,-0.401731,0.955528,0.955528,0,
+ 0.362971,-0.362971,-0.858198,0.955528,0.955528,1.5,
+ 0.646965,-0.76252,0,1.011517,2.095218,1.5,
+ 0.671559,-0.740951,0,0.955528,2.044472,0,
+ 0.621651,-0.783294,0,1.011517,2.095218,0,
+ 0.671559,-0.740951,0,0.955528,2.044472,0,
+ 0.646965,-0.76252,0,1.011517,2.095218,1.5,
+ 0.671559,-0.740951,0,0.955528,2.044472,1.5,
+ -0.485774,0.874085,0,1.862975,0.820921,1.5,
+ -0.541882,0.840455,0,1.927789,0.859768,0,
+ -0.456893,0.889521,0,1.862975,0.820921,0,
+ -0.541882,0.840455,0,1.927789,0.859768,0,
+ -0.485774,0.874085,0,1.862975,0.820921,1.5,
+ -0.56911,0.822262,0,1.927789,0.859768,1.5,
+ -0.97746,0.211123,0,2.255205,1.34978,1.5,
+ -0.961565,0.274577,0,2.236844,1.276481,0,
+ -0.952059,0.305914,0,2.236844,1.276481,1.5,
+ -0.961565,0.274577,0,2.236844,1.276481,0,
+ -0.97746,0.211123,0,2.255205,1.34978,1.5,
+ -0.983848,0.179005,0,2.255205,1.34978,0,
+ -0.427555,0.903989,0,1.794666,0.788613,1.5,
+ -0.456893,0.889521,0,1.862975,0.820921,0,
+ -0.427555,0.903989,0,1.794666,0.788613,0,
+ -0.456893,0.889521,0,1.862975,0.820921,0,
+ -0.427555,0.903989,0,1.794666,0.788613,1.5,
+ -0.485774,0.874085,0,1.862975,0.820921,1.5,
+ 0.081709,0.996656,0,1.424527,0.733708,1.5,
+ 0.049068,0.998795,0,1.5,0.73,0,
+ 0.114299,0.993446,0,1.424527,0.733708,0,
+ 0.049068,0.998795,0,1.5,0.73,0,
+ 0.081709,0.996656,0,1.424527,0.733708,1.5,
+ 0.049068,0.998795,0,1.5,0.73,1.5,
+ -0.485774,-0.874085,0,1.137025,0.820921,3,
+ -0.541882,-0.840455,0,1.072211,0.859768,1.5,
+ -0.456893,-0.889521,0,1.137025,0.820921,1.5,
+ -0.541882,-0.840455,0,1.072211,0.859768,1.5,
+ -0.485774,-0.874085,0,1.137025,0.820921,3,
+ -0.56911,-0.822262,0,1.072211,0.859768,3,
+ 0.485774,-0.874085,0,1.137025,2.179079,1.5,
+ 0.541882,-0.840455,0,1.072211,2.140232,0,
+ 0.456893,-0.889521,0,1.137025,2.179079,0,
+ 0.541882,-0.840455,0,1.072211,2.140232,0,
+ 0.485774,-0.874085,0,1.137025,2.179079,1.5,
+ 0.56911,-0.822262,0,1.072211,2.140232,1.5,
+ -0.92388,0.382683,0,0.87868,0,0.205,
+ -0.92388,0.382683,0,1.205334,0.788613,0,
+ -0.92388,0.382683,0,0.87868,0,0,
+ -0.92388,0.382683,0,1.205334,0.788613,0,
+ -0.92388,0.382683,0,0.87868,0,0.205,
+ -0.92388,0.382683,0,0.87868,0,0.82632,
+ -0.92388,0.382683,0,1.205334,0.788613,0,
+ -0.92388,0.382683,0,0.87868,0,0.82632,
+ -0.92388,0.382683,0,0.87868,0,2.17368,
+ -0.92388,0.382683,0,1.205334,0.788613,0,
+ -0.92388,0.382683,0,0.87868,0,2.17368,
+ -0.92388,0.382683,0,0.87868,0,2.795,
+ -0.92388,0.382683,0,1.205334,0.788613,0,
+ -0.92388,0.382683,0,0.87868,0,2.795,
+ -0.92388,0.382683,0,0.87868,0,3,
+ -0.92388,0.382683,0,1.205334,0.788613,0,
+ -0.92388,0.382683,0,0.87868,0,3,
+ -0.92388,0.382683,0,1.205334,0.788613,3,
+ -0.807325,0.502043,-0.310129,1.205334,0.788613,0,
+ 0.015077,-0.480291,0.876979,1.205334,0.788613,3,
+ 0.489038,0.249268,-0.835887,1.205334,0.788613,1.5,
+ 0.76252,-0.646965,0,2.095218,1.011517,1.5,
+ 0.740951,-0.671559,0,2.044472,0.955528,3,
+ 0.740951,-0.671559,0,2.044472,0.955528,1.5,
+ 0.740951,-0.671559,0,2.044472,0.955528,3,
+ 0.76252,-0.646965,0,2.095218,1.011517,1.5,
+ 0.783294,-0.621651,0,2.095218,1.011517,3,
+ 0.485774,0.874085,0,1.862975,2.179079,3,
+ 0.541882,0.840455,0,1.927789,2.140232,1.5,
+ 0.456893,0.889521,0,1.862975,2.179079,1.5,
+ 0.541882,0.840455,0,1.927789,2.140232,1.5,
+ 0.485774,0.874085,0,1.862975,2.179079,3,
+ 0.56911,0.822262,0,1.927789,2.140232,3,
+ 0.382683,-0.92388,0,3,2.12132,3,
+ 0.382683,-0.92388,0,2.211387,1.794666,0,
+ 0.382683,-0.92388,0,3,2.12132,0,
+ 0.382683,-0.92388,0,2.211387,1.794666,0,
+ 0.382683,-0.92388,0,3,2.12132,3,
+ 0.382683,-0.92388,0,2.211387,1.794666,1.5,
+ 0.382683,-0.92388,0,2.211387,1.794666,1.5,
+ 0.382683,-0.92388,0,3,2.12132,3,
+ 0.382683,-0.92388,0,2.211387,1.794666,3,
+ 0.179005,-0.983848,0,1.65022,0.744795,3,
+ 0.114299,-0.993446,0,1.575473,0.733708,1.5,
+ 0.211123,-0.97746,0,1.65022,0.744795,1.5,
+ 0.114299,-0.993446,0,1.575473,0.733708,1.5,
+ 0.179005,-0.983848,0,1.65022,0.744795,3,
+ 0.081709,-0.996656,0,1.575473,0.733708,3,
+ -0.952059,-0.305914,0,0.763156,1.276481,3,
+ -0.941544,-0.33689,0,0.788613,1.205334,1.5,
+ -0.941544,-0.33689,0,0.788613,1.205334,3,
+ -0.941544,-0.33689,0,0.788613,1.205334,1.5,
+ -0.952059,-0.305914,0,0.763156,1.276481,3,
+ -0.961565,-0.274577,0,0.763156,1.276481,1.5,
+ 0.274577,0.961565,0,1.276481,0.763156,1.5,
+ 0.211123,0.97746,0,1.34978,0.744795,0,
+ 0.305914,0.952059,0,1.276481,0.763156,0,
+ 0.211123,0.97746,0,1.34978,0.744795,0,
+ 0.274577,0.961565,0,1.276481,0.763156,1.5,
+ 0.179005,0.983848,0,1.34978,0.744795,1.5,
+ 0.996656,0.081709,0,2.266292,1.575473,1.5,
+ 0.998795,0.049068,0,2.27,1.5,3,
+ 0.998795,0.049068,0,2.27,1.5,1.5,
+ 0.998795,0.049068,0,2.27,1.5,3,
+ 0.996656,0.081709,0,2.266292,1.575473,1.5,
+ 0.993446,0.114299,0,2.266292,1.575473,3,
+ 0.983848,-0.179005,0,0.744795,1.65022,0,
+ 0.993446,-0.114299,0,0.733708,1.575473,1.5,
+ 0.996656,-0.081709,0,0.733708,1.575473,0,
+ 0.993446,-0.114299,0,0.733708,1.575473,1.5,
+ 0.983848,-0.179005,0,0.744795,1.65022,0,
+ 0.97746,-0.211123,0,0.744795,1.65022,1.5,
+ 0.903989,0.427555,0,0.788613,1.205334,0,
+ 0.889521,0.456893,0,0.820921,1.137025,1.5,
+ 0.874085,0.485774,0,0.820921,1.137025,0,
+ 0.889521,0.456893,0,0.820921,1.137025,1.5,
+ 0.903989,0.427555,0,0.788613,1.205334,0,
+ 0.903989,0.427555,0,0.788613,1.205334,1.5,
+ 0.427555,-0.903989,0,1.205334,2.211387,1.5,
+ 0.456893,-0.889521,0,1.137025,2.179079,0,
+ 0.427555,-0.903989,0,1.205334,2.211387,0,
+ 0.456893,-0.889521,0,1.137025,2.179079,0,
+ 0.427555,-0.903989,0,1.205334,2.211387,1.5,
+ 0.485774,-0.874085,0,1.137025,2.179079,1.5,
+ -0.33689,-0.941544,0,1.794666,2.211387,1.5,
+ -0.305914,-0.952059,0,1.723519,2.236844,0,
+ -0.33689,-0.941544,0,1.794666,2.211387,0,
+ -0.305914,-0.952059,0,1.723519,2.236844,0,
+ -0.33689,-0.941544,0,1.794666,2.211387,1.5,
+ -0.274577,-0.961565,0,1.723519,2.236844,1.5,
+ -0.889521,-0.456893,0,2.179079,1.862975,1.5,
+ -0.903989,-0.427555,0,2.211387,1.794666,0,
+ -0.903989,-0.427555,0,2.211387,1.794666,1.5,
+ -0.903989,-0.427555,0,2.211387,1.794666,0,
+ -0.889521,-0.456893,0,2.179079,1.862975,1.5,
+ -0.874085,-0.485774,0,2.179079,1.862975,0,
+ -0.56911,0.822262,0,1.927789,0.859768,1.5,
+ -0.621651,0.783294,0,1.988483,0.904782,0,
+ -0.541882,0.840455,0,1.927789,0.859768,0,
+ -0.621651,0.783294,0,1.988483,0.904782,0,
+ -0.56911,0.822262,0,1.927789,0.859768,1.5,
+ -0.646965,0.76252,0,1.988483,0.904782,1.5,
+ 0.56911,-0.822262,0,1.072211,2.140232,1.5,
+ 0.621651,-0.783294,0,1.011517,2.095218,0,
+ 0.541882,-0.840455,0,1.072211,2.140232,0,
+ 0.621651,-0.783294,0,1.011517,2.095218,0,
+ 0.56911,-0.822262,0,1.072211,2.140232,1.5,
+ 0.646965,-0.76252,0,1.011517,2.095218,1.5,
+ 0.179005,0.983848,0,1.34978,0.744795,1.5,
+ 0.114299,0.993446,0,1.424527,0.733708,0,
+ 0.211123,0.97746,0,1.34978,0.744795,0,
+ 0.114299,0.993446,0,1.424527,0.733708,0,
+ 0.179005,0.983848,0,1.34978,0.744795,1.5,
+ 0.081709,0.996656,0,1.424527,0.733708,1.5,
+ 0.56911,0.822262,0,1.927789,2.140232,3,
+ 0.621651,0.783294,0,1.988483,2.095218,1.5,
+ 0.541882,0.840455,0,1.927789,2.140232,1.5,
+ 0.621651,0.783294,0,1.988483,2.095218,1.5,
+ 0.56911,0.822262,0,1.927789,2.140232,3,
+ 0.646965,0.76252,0,1.988483,2.095218,3,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.5,3,
+ 0.822262,0.56911,0,0.859768,1.072211,0,
+ 0.783294,0.621651,0,0.904782,1.011517,1.5,
+ 0.76252,0.646965,0,0.904782,1.011517,0,
+ 0.783294,0.621651,0,0.904782,1.011517,1.5,
+ 0.822262,0.56911,0,0.859768,1.072211,0,
+ 0.840455,0.541882,0,0.859768,1.072211,1.5,
+ 0.941544,-0.33689,0,0.788613,1.794666,0,
+ 0.952059,-0.305914,0,0.763156,1.723519,1.5,
+ 0.961565,-0.274577,0,0.763156,1.723519,0,
+ 0.952059,-0.305914,0,0.763156,1.723519,1.5,
+ 0.941544,-0.33689,0,0.788613,1.794666,0,
+ 0.941544,-0.33689,0,0.788613,1.794666,1.5,
+ 0,0,-1,0.788613,1.794666,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.788613,1.794666,0,
+ 0,0,-1,0.763156,1.723519,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0.763156,1.723519,0,
+ 0,0,-1,0.744795,1.65022,0,
+ 0,0,-1,1.205334,0.788613,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,0.87868,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.205334,0.788613,0,
+ 0,0,-1,1.276481,0.763156,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.276481,0.763156,0,
+ 0,0,-1,1.34978,0.744795,0,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,2.12132,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ -0.783294,0.621651,0,0.904782,1.988483,3,
+ -0.822262,0.56911,0,0.859768,1.927789,1.5,
+ -0.840455,0.541882,0,0.859768,1.927789,3,
+ -0.822262,0.56911,0,0.859768,1.927789,1.5,
+ -0.783294,0.621651,0,0.904782,1.988483,3,
+ -0.76252,0.646965,0,0.904782,1.988483,1.5,
+ -0.179005,0.983848,0,1.34978,2.255205,3,
+ -0.114299,0.993446,0,1.424527,2.266292,1.5,
+ -0.211123,0.97746,0,1.34978,2.255205,1.5,
+ -0.114299,0.993446,0,1.424527,2.266292,1.5,
+ -0.179005,0.983848,0,1.34978,2.255205,3,
+ -0.081709,0.996656,0,1.424527,2.266292,3,
+ 0.382683,0.92388,0,0,2.12132,3,
+ 0.382683,0.92388,0,0.788613,1.794666,0,
+ 0.382683,0.92388,0,0,2.12132,0,
+ 0.382683,0.92388,0,0.788613,1.794666,0,
+ 0.382683,0.92388,0,0,2.12132,3,
+ 0.382683,0.92388,0,0.788613,1.794666,1.5,
+ 0.382683,0.92388,0,0.788613,1.794666,1.5,
+ 0.382683,0.92388,0,0,2.12132,3,
+ 0.382683,0.92388,0,0.788613,1.794666,3,
+ -0.840455,-0.541882,0,2.140232,1.927789,1.5,
+ -0.874085,-0.485774,0,2.179079,1.862975,0,
+ -0.889521,-0.456893,0,2.179079,1.862975,1.5,
+ -0.874085,-0.485774,0,2.179079,1.862975,0,
+ -0.840455,-0.541882,0,2.140232,1.927789,1.5,
+ -0.822262,-0.56911,0,2.140232,1.927789,0,
+ -0.646965,0.76252,0,1.988483,0.904782,1.5,
+ -0.671559,0.740951,0,2.044472,0.955528,0,
+ -0.621651,0.783294,0,1.988483,0.904782,0,
+ -0.671559,0.740951,0,2.044472,0.955528,0,
+ -0.646965,0.76252,0,1.988483,0.904782,1.5,
+ -0.671559,0.740951,0,2.044472,0.955528,1.5,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.733708,1.575473,3,
+ 0,0,1,0.73,1.5,3,
+ 0,0,1,0.733708,1.575473,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.744795,1.65022,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.763156,1.723519,3,
+ 0,0,1,0.744795,1.65022,3,
+ 0,0,1,0.763156,1.723519,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.788613,1.794666,3,
+ 0,0,1,1.424527,0.733708,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.34978,0.744795,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.424527,0.733708,3,
+ 0,0,1,1.5,0.73,3,
+ 0,0,1,1.276481,0.763156,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.205334,0.788613,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.276481,0.763156,3,
+ 0,0,1,1.34978,0.744795,3,
+ 0,0,1,2.140232,1.072211,3,
+ 0,0,1,2.211387,1.205334,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.211387,1.205334,3,
+ 0,0,1,2.140232,1.072211,3,
+ 0,0,1,2.179079,1.137025,3,
+ 0,0,1,1.137025,0.820921,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.072211,0.859768,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.137025,0.820921,3,
+ 0,0,1,1.205334,0.788613,3,
+ 0,0,1,1.575473,0.733708,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,0.73,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.575473,0.733708,3,
+ 0,0,1,1.65022,0.744795,3,
+ 0,0,1,1.65022,0.744795,3,
+ 0,0,1,1.794666,0.788613,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.794666,0.788613,3,
+ 0,0,1,1.65022,0.744795,3,
+ 0,0,1,1.723519,0.763156,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.788613,1.205334,3,
+ 0,0,1,0,0.87868,3,
+ 0,0,1,0.788613,1.205334,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.820921,1.137025,3,
+ 0,0,1,0.820921,1.137025,3,
+ 0,0,1,0,0.497732,3,
+ 0,0,1,0.859768,1.072211,3,
+ 0,0,1,0.904782,1.011517,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.859768,1.072211,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.904782,1.011517,3,
+ 0,0,1,0.955528,0.955528,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.820921,1.862975,3,
+ 0,0,1,0.788613,1.794666,3,
+ 0,0,1,0.820921,1.862975,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.859768,1.927789,3,
+ 0,0,1,2.211387,1.205334,3,
+ 0,0,1,2.255205,1.34978,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.255205,1.34978,3,
+ 0,0,1,2.211387,1.205334,3,
+ 0,0,1,2.236844,1.276481,3,
+ 0,0,1,1.927789,0.859768,3,
+ 0,0,1,2.044472,0.955528,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.044472,0.955528,3,
+ 0,0,1,1.927789,0.859768,3,
+ 0,0,1,1.988483,0.904782,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.236844,1.276481,3,
+ 0,0,1,2.211387,1.205334,3,
+ 0,0,1,2.236844,1.276481,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.255205,1.34978,3,
+ 0,0,1,2.255205,1.34978,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.205334,0.788613,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.205334,0.788613,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.276481,0.763156,3,
+ 0,0,1,1.276481,0.763156,3,
+ 0,0,1,1.201631,0,3,
+ 0,0,1,1.34978,0.744795,3,
+ 0,0,1,2.255205,1.65022,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,2.255205,1.65022,3,
+ 0,0,1,2.236844,1.723519,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,2.140232,1.927789,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.140232,1.927789,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,2.179079,1.862975,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,2.255205,1.65022,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.255205,1.65022,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,2.266292,1.575473,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.862975,0.820921,3,
+ 0,0,1,1.794666,0.788613,3,
+ 0,0,1,1.862975,0.820921,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.927789,0.859768,3,
+ 0,0,1,1.927789,0.859768,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.723519,2.236844,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.65022,2.255205,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.723519,2.236844,3,
+ 0,0,1,1.794666,2.211387,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.794666,2.211387,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.424527,2.266292,3,
+ 0,0,1,1.34978,2.255205,3,
+ 0,0,1,1.424527,2.266292,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.27,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.276481,2.236844,3,
+ 0,0,1,1.205334,2.211387,3,
+ 0,0,1,1.276481,2.236844,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.34978,2.255205,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.575473,2.266292,3,
+ 0,0,1,1.5,2.27,3,
+ 0,0,1,1.575473,2.266292,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.65022,2.255205,3,
+ 0,0,1,1.794666,2.211387,3,
+ 0,0,1,1.65022,2.255205,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.65022,2.255205,3,
+ 0,0,1,1.794666,2.211387,3,
+ 0,0,1,1.723519,2.236844,3,
+ 0,0,1,1.927789,2.140232,3,
+ 0,0,1,1.794666,2.211387,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.794666,2.211387,3,
+ 0,0,1,1.927789,2.140232,3,
+ 0,0,1,1.862975,2.179079,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.137025,2.179079,3,
+ 0,0,1,1.072211,2.140232,3,
+ 0,0,1,1.137025,2.179079,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.205334,2.211387,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.011517,2.095218,3,
+ 0,0,1,0.955528,2.044472,3,
+ 0,0,1,1.011517,2.095218,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.072211,2.140232,3,
+ 0,0,1,1.072211,2.140232,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.072211,2.140232,3,
+ 0,0,1,1.137025,2.179079,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.137025,2.179079,3,
+ 0,0,1,1.205334,2.211387,3,
+ 0,0,1,0.733708,1.424527,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.73,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.733708,1.424527,3,
+ 0,0,1,0.744795,1.34978,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.788613,1.794666,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.788613,1.794666,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.763156,1.723519,3,
+ 0,0,1,0.763156,1.723519,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.744795,1.65022,3,
+ 0,0,1,2.044472,2.044472,3,
+ 0,0,1,1.927789,2.140232,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.927789,2.140232,3,
+ 0,0,1,2.044472,2.044472,3,
+ 0,0,1,1.988483,2.095218,3,
+ 0,0,1,2.255205,1.34978,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.27,1.5,3,
+ 0,0,1,2.255205,1.34978,3,
+ 0,0,1,2.266292,1.424527,3,
+ 0,0,1,1.794666,0.788613,3,
+ 0,0,1,1.927789,0.859768,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.927789,0.859768,3,
+ 0,0,1,1.794666,0.788613,3,
+ 0,0,1,1.862975,0.820921,3,
+ 0,0,1,2.179079,1.862975,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.140232,1.927789,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.179079,1.862975,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.044472,0.955528,3,
+ 0,0,1,2.140232,1.072211,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.140232,1.072211,3,
+ 0,0,1,2.044472,0.955528,3,
+ 0,0,1,2.095218,1.011517,3,
+ 0,0,1,0.820921,1.137025,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.788613,1.205334,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.820921,1.137025,3,
+ 0,0,1,0.859768,1.072211,3,
+ 0,0,1,1.011517,0.904782,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.955528,0.955528,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.011517,0.904782,3,
+ 0,0,1,1.072211,0.859768,3,
+ 0,0,1,0.763156,1.276481,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.744795,1.34978,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.763156,1.276481,3,
+ 0,0,1,0.788613,1.205334,3,
+ 0,0,1,2.140232,1.927789,3,
+ 0,0,1,2.044472,2.044472,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.044472,2.044472,3,
+ 0,0,1,2.140232,1.927789,3,
+ 0,0,1,2.095218,1.988483,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.904782,1.988483,3,
+ 0,0,1,0.859768,1.927789,3,
+ 0,0,1,0.904782,1.988483,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,0.955528,2.044472,3,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.095218,1.988483,0,
+ 0,0,-1,2.044472,2.044472,0,
+ 0,0,-1,2.095218,1.988483,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.140232,1.927789,0,
+ 0,0,-1,2.140232,1.927789,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.575473,2.266292,0,
+ 0,0,-1,1.5,2.27,0,
+ 0,0,-1,1.575473,2.266292,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.575473,2.266292,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.65022,2.255205,0,
+ 0,0,-1,2.266292,1.424527,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.255205,1.34978,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.266292,1.424527,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.27,1.5,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,1.34978,0.744795,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.201631,0,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.34978,0.744795,0,
+ 0,0,-1,1.424527,0.733708,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.424527,0.733708,0,
+ 0,0,-1,1.5,0.73,0,
+ 0,0,-1,1.988483,0.904782,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.927789,0.859768,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.988483,0.904782,0,
+ 0,0,-1,2.044472,0.955528,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,2.044472,0.955528,0,
+ 0,0,-1,3,0,0,
+ 0,-0.447214,-0.894427,2.502268,0,0,
+ 0.794104,0.232588,-0.561517,3,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,0,-1,0.744795,1.65022,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,1.798369,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.744795,1.65022,0,
+ 0,0,-1,0.733708,1.575473,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.733708,1.575473,0,
+ 0,0,-1,0.73,1.5,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.955528,2.044472,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0.955528,2.044472,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.955528,2.044472,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.011517,2.095218,0,
+ 0,0,-1,1.011517,2.095218,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,1.072211,2.140232,0,
+ 0,0,-1,0.859768,1.072211,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0,0.497732,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.859768,1.072211,0,
+ 0,0,-1,0.904782,1.011517,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.904782,1.011517,0,
+ 0,0,-1,0.955528,0.955528,0,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.12132,0,2.17368,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.12132,0,2.17368,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.12132,0,2.795,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.12132,0,0.205,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.12132,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.12132,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.12132,0,3,
+ -0.269347,-0.403107,0.874618,2.12132,0,3,
+ 0,-1,0,2.795,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.12132,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,2.12132,0,0.205,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.12132,0,0.82632,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.201631,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,0.87868,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.87868,0,0.205,
+ 0,-1,0,0.87868,0,2.795,
+ 0,-1,0,0.87868,0,2.17368,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.87868,0,0.82632,
+ 0,-1,0,0.87868,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.87868,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.87868,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.87868,0,3,
+ 0,0,1,0.87868,0,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.201631,0,3,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0.205,
+ 0,1,0,2.12132,3,2.795,
+ 0,1,0,2.12132,3,2.17368,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0.82632,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.12132,3,2.17368,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.12132,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.12132,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.12132,3,3,
+ 0.618034,0.412957,0.668955,2.12132,3,3,
+ -0.727607,0.485071,0.485071,1.5,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,1,0,0.87868,3,2.17368,
+ 0,1,0,0.87868,3,0.82632,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.87868,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.87868,3,0.205,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.87868,3,0.82632,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.87868,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.87868,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.87868,3,3,
+ 0.269347,0.403107,0.874618,0.87868,3,3,
+ 0,0.83205,0.5547,0.205,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.87868,3,2.17368,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.87868,3,2.17368,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.87868,3,2.795,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.87868,3,0.205,
+ 0,0,-1,2.211387,1.205334,1.5,
+ 0,0,-1,2.044472,0.955528,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.044472,0.955528,1.5,
+ 0,0,-1,2.211387,1.205334,1.5,
+ 0,0,-1,2.095218,1.011517,1.5,
+ 0,0,-1,2.095218,1.011517,1.5,
+ 0,0,-1,2.211387,1.205334,1.5,
+ 0,0,-1,2.140232,1.072211,1.5,
+ 0,0,-1,2.140232,1.072211,1.5,
+ 0,0,-1,2.211387,1.205334,1.5,
+ 0,0,-1,2.179079,1.137025,1.5,
+ 0.382683,0.92388,0,0.788613,1.794666,3,
+ 0.382683,0.92388,0,1.5,1.5,1.5,
+ 0.382683,0.92388,0,0.788613,1.794666,1.5,
+ 0.382683,0.92388,0,1.5,1.5,1.5,
+ 0.382683,0.92388,0,0.788613,1.794666,3,
+ 0.382683,0.92388,0,2.211387,1.205334,1.5,
+ 0.382683,0.92388,0,2.211387,1.205334,1.5,
+ 0.382683,0.92388,0,0.788613,1.794666,3,
+ 0.382683,0.92388,0,2.211387,1.205334,3,
+ 0,0,-1,2.211387,1.205334,3,
+ 0,0,-1,0.788613,1.794666,3,
+ 0,0,-1,1.5,1.5,3,
+ 0,0,-1,1.276481,2.236844,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.205334,2.211387,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.276481,2.236844,1.5,
+ 0,0,-1,1.34978,2.255205,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.34978,2.255205,1.5,
+ 0,0,-1,1.424527,2.266292,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.424527,2.266292,1.5,
+ 0,0,-1,1.5,2.27,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.733708,1.424527,1.5,
+ 0,0,-1,0.73,1.5,1.5,
+ 0,0,-1,0.733708,1.424527,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.744795,1.34978,1.5,
+ 0,0,-1,0.744795,1.34978,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.763156,1.276481,1.5,
+ 0,0,-1,0.763156,1.276481,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.788613,1.205334,1.5,
+ 0.92388,-0.382683,0,1.5,1.5,1.5,
+ 0.92388,-0.382683,0,1.205334,0.788613,3,
+ 0.92388,-0.382683,0,1.205334,0.788613,1.5,
+ 0.92388,-0.382683,0,1.205334,0.788613,3,
+ 0.92388,-0.382683,0,1.5,1.5,1.5,
+ 0.92388,-0.382683,0,1.5,1.5,3,
+ 0.92388,-0.382683,0,1.5,1.5,3,
+ 0.92388,-0.382683,0,1.5,1.5,1.5,
+ 0.92388,-0.382683,0,1.794666,2.211387,1.5,
+ 0.92388,-0.382683,0,1.5,1.5,3,
+ 0.92388,-0.382683,0,1.794666,2.211387,1.5,
+ 0.92388,-0.382683,0,1.794666,2.211387,3,
+ 0,0,-1,1.011517,2.095218,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.955528,2.044472,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.011517,2.095218,1.5,
+ 0,0,-1,1.072211,2.140232,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.072211,2.140232,1.5,
+ 0,0,-1,1.137025,2.179079,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.137025,2.179079,1.5,
+ 0,0,-1,1.205334,2.211387,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.276481,0.763156,1.5,
+ 0,0,-1,1.205334,0.788613,1.5,
+ 0,0,-1,1.276481,0.763156,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.34978,0.744795,1.5,
+ 0,0,-1,1.34978,0.744795,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.424527,0.733708,1.5,
+ 0,0,-1,1.424527,0.733708,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.5,0.73,1.5,
+ 0.980785,0.19509,0,1.5,1.5,1.5,
+ 0.92388,0.382683,0,1.794666,0.788613,3,
+ 0.92388,0.382683,0,1.794666,0.788613,1.5,
+ 0.92388,0.382683,0,1.794666,0.788613,3,
+ 0.980785,0.19509,0,1.5,1.5,1.5,
+ 0.980785,0.19509,0,1.5,1.5,3,
+ 0.980785,0.19509,0,1.5,1.5,3,
+ 0.980785,0.19509,0,1.5,1.5,1.5,
+ 0.92388,0.382683,0,1.205334,2.211387,1.5,
+ 0.980785,0.19509,0,1.5,1.5,3,
+ 0.92388,0.382683,0,1.205334,2.211387,1.5,
+ 0.92388,0.382683,0,1.205334,2.211387,3,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.011517,0.904782,1.5,
+ 0,0,-1,0.955528,0.955528,1.5,
+ 0,0,-1,1.011517,0.904782,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.072211,0.859768,1.5,
+ 0,0,-1,1.072211,0.859768,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.137025,0.820921,1.5,
+ 0,0,-1,1.137025,0.820921,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.205334,0.788613,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,2.211387,1.205334,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.211387,1.205334,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,2.236844,1.276481,1.5,
+ 0,0,-1,2.236844,1.276481,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,2.255205,1.34978,1.5,
+ 0,0,-1,2.255205,1.34978,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,2.266292,1.424527,1.5,
+ -0.382683,0.92388,0,0.788613,1.205334,3,
+ -0.382683,0.92388,0,1.5,1.5,1.5,
+ -0.382683,0.92388,0,0.788613,1.205334,1.5,
+ -0.382683,0.92388,0,1.5,1.5,1.5,
+ -0.382683,0.92388,0,0.788613,1.205334,3,
+ -0.382683,0.92388,0,2.211387,1.794666,1.5,
+ -0.382683,0.92388,0,2.211387,1.794666,1.5,
+ -0.382683,0.92388,0,0.788613,1.205334,3,
+ -0.382683,0.92388,0,2.211387,1.794666,3,
+ 0,0,1,2.211387,1.794666,3,
+ 0,0,1,0.788613,1.205334,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,-1,2.211387,1.794666,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,2.211387,1.794666,1.5,
+ 0,0,-1,2.236844,1.723519,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,2.236844,1.723519,1.5,
+ 0,0,-1,2.255205,1.65022,1.5,
+ 0,0,-1,2.27,1.5,1.5,
+ 0,0,-1,2.255205,1.65022,1.5,
+ 0,0,-1,2.266292,1.575473,1.5,
+ 0,0,-1,0.733708,1.575473,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.73,1.5,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.733708,1.575473,1.5,
+ 0,0,-1,0.744795,1.65022,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.744795,1.65022,1.5,
+ 0,0,-1,0.763156,1.723519,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.763156,1.723519,1.5,
+ 0,0,-1,0.788613,1.794666,1.5,
+ 0,-1,0,2.27,1.5,3,
+ 0,-1,0,1.5,1.5,1.5,
+ 0,-1,0,2.27,1.5,1.5,
+ 0,-1,0,1.5,1.5,1.5,
+ 0,-1,0,2.27,1.5,3,
+ 0,-1,0,0.73,1.5,1.5,
+ 0,-1,0,0.73,1.5,1.5,
+ 0,-1,0,2.27,1.5,3,
+ 0,-1,0,0.73,1.5,3,
+ -0.404462,-0.42482,0.8099,0.73,1.5,3,
+ 0.302501,-0.288004,0.908596,2.27,1.5,3,
+ 0.154098,-0.097337,0.983249,1.5,1.5,3,
+ 0,0,-1,0.820921,1.862975,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.788613,1.794666,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.820921,1.862975,1.5,
+ 0,0,-1,0.859768,1.927789,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.859768,1.927789,1.5,
+ 0,0,-1,0.904782,1.988483,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.904782,1.988483,1.5,
+ 0,0,-1,0.955528,2.044472,1.5,
+ 0,0,-1,2.044472,0.955528,1.5,
+ 0,0,-1,1.794666,0.788613,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.794666,0.788613,1.5,
+ 0,0,-1,2.044472,0.955528,1.5,
+ 0,0,-1,1.862975,0.820921,1.5,
+ 0,0,-1,1.862975,0.820921,1.5,
+ 0,0,-1,2.044472,0.955528,1.5,
+ 0,0,-1,1.927789,0.859768,1.5,
+ 0,0,-1,1.927789,0.859768,1.5,
+ 0,0,-1,2.044472,0.955528,1.5,
+ 0,0,-1,1.988483,0.904782,1.5,
+ -0.707107,-0.707107,0,1.5,1.5,3,
+ -0.707107,-0.707107,0,2.044472,0.955528,1.5,
+ -0.707107,-0.707107,0,2.044472,0.955528,3,
+ -0.707107,-0.707107,0,2.044472,0.955528,1.5,
+ -0.707107,-0.707107,0,1.5,1.5,3,
+ -0.707107,-0.707107,0,1.5,1.5,1.5,
+ -0.707107,-0.707107,0,1.5,1.5,1.5,
+ -0.707107,-0.707107,0,1.5,1.5,3,
+ -0.707107,-0.707107,0,0.955528,2.044472,1.5,
+ -0.707107,-0.707107,0,0.955528,2.044472,1.5,
+ -0.707107,-0.707107,0,1.5,1.5,3,
+ -0.707107,-0.707107,0,0.955528,2.044472,3,
+ 0,0,-1,1.794666,0.788613,1.5,
+ 0,0,-1,1.5,0.73,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.5,0.73,1.5,
+ 0,0,-1,1.794666,0.788613,1.5,
+ 0,0,-1,1.575473,0.733708,1.5,
+ 0,0,-1,1.575473,0.733708,1.5,
+ 0,0,-1,1.794666,0.788613,1.5,
+ 0,0,-1,1.65022,0.744795,1.5,
+ 0,0,-1,1.65022,0.744795,1.5,
+ 0,0,-1,1.794666,0.788613,1.5,
+ 0,0,-1,1.723519,0.763156,1.5,
+ 0,0,-1,1.575473,2.266292,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.5,2.27,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,1.575473,2.266292,1.5,
+ 0,0,-1,1.794666,2.211387,1.5,
+ 0,0,-1,1.794666,2.211387,1.5,
+ 0,0,-1,1.575473,2.266292,1.5,
+ 0,0,-1,1.65022,2.255205,1.5,
+ 0,0,-1,1.794666,2.211387,1.5,
+ 0,0,-1,1.65022,2.255205,1.5,
+ 0,0,-1,1.723519,2.236844,1.5,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,0.73,3,
+ 1,0,0,1.5,0.73,1.5,
+ 1,0,0,1.5,0.73,3,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,1.5,3,
+ 1,0,0,1.5,1.5,3,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,2.27,1.5,
+ 1,0,0,1.5,1.5,3,
+ 1,0,0,1.5,2.27,1.5,
+ 1,0,0,1.5,2.27,3,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.820921,1.137025,1.5,
+ 0,0,-1,0.788613,1.205334,1.5,
+ 0,0,-1,0.820921,1.137025,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.859768,1.072211,1.5,
+ 0,0,-1,0.859768,1.072211,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.904782,1.011517,1.5,
+ 0,0,-1,0.904782,1.011517,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,0.955528,0.955528,1.5,
+ 0,0,-1,1.794666,2.211387,1.5,
+ 0,0,-1,2.044472,2.044472,1.5,
+ 0,0,-1,1.5,1.5,1.5,
+ 0,0,-1,2.044472,2.044472,1.5,
+ 0,0,-1,1.794666,2.211387,1.5,
+ 0,0,-1,1.862975,2.179079,1.5,
+ 0,0,-1,2.044472,2.044472,1.5,
+ 0,0,-1,1.862975,2.179079,1.5,
+ 0,0,-1,1.927789,2.140232,1.5,
+ 0,0,-1,2.044472,2.044472,1.5,
+ 0,0,-1,1.927789,2.140232,1.5,
+ 0,0,-1,1.988483,2.095218,1.5,
+ 0.83147,-0.55557,0,1.5,1.5,1.5,
+ 0.707107,-0.707107,0,0.955528,0.955528,3,
+ 0.707107,-0.707107,0,0.955528,0.955528,1.5,
+ 0.707107,-0.707107,0,0.955528,0.955528,3,
+ 0.83147,-0.55557,0,1.5,1.5,1.5,
+ 0.83147,-0.55557,0,1.5,1.5,3,
+ 0.83147,-0.55557,0,1.5,1.5,3,
+ 0.83147,-0.55557,0,1.5,1.5,1.5,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.83147,-0.55557,0,1.5,1.5,3,
+ 0.707107,-0.707107,0,2.044472,2.044472,1.5,
+ 0.707107,-0.707107,0,2.044472,2.044472,3
+};
+static const struct gllist lament_model_star_u_frame = { GL_N3F_V3F, GL_TRIANGLES, 1608, lament_model_star_u_data, 0 };
+const struct gllist *lament_model_star_u = &lament_model_star_u_frame;
+
+static const float lament_model_taser_a_data[] = {
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,1.798369,3,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.12132,3,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.502268,3,
+ -1,0,0,0,2.795,3,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,1.5,1.5,
+ -0.639602,0.639602,-0.426401,0,1.5,2.795,
+ -0.57735,0.57735,0.57735,0,1.5,2.277,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.53125,3,0.723,
+ 0,1,0,0.205,3,0.723,
+ 0,1,0,0.53125,3,0.723,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.53125,3,0.982,
+ 0,1,0,0.53125,3,0.982,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.53125,3,1.17375,
+ 1,0,0,0.777,3,2.795,
+ 1,0,0,0.777,1.5,3,
+ 1,0,0,0.777,1.5,2.795,
+ 1,0,0,0.777,1.5,3,
+ 1,0,0,0.777,3,2.795,
+ 1,0,0,0.777,1.643814,3,
+ 1,0,0,0.777,1.643814,3,
+ 1,0,0,0.777,3,2.795,
+ 1,0,0,0.777,1.799476,3,
+ 1,0,0,0.777,1.799476,3,
+ 1,0,0,0.777,3,2.795,
+ 1,0,0,0.777,1.983093,3,
+ 1,0,0,0.777,1.983093,3,
+ 1,0,0,0.777,3,2.795,
+ 1,0,0,0.777,2.223,3,
+ 1,0,0,0.777,2.223,3,
+ 1,0,0,0.777,3,2.795,
+ 1,0,0,0.777,2.582046,3,
+ 1,0,0,0.777,2.582046,3,
+ 1,0,0,0.777,3,2.795,
+ 1,0,0,0.777,3,3,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,0,0,0,
+ 0,-1,0,1.295,0,0,
+ 0,-1,0,0,0,0,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,0,0,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.795,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,0,1,0.777,2.223,3,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,2.795,0.723,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,0.723,
+ -1,0,0,0,3,1.5,
+ -1,0,0,0,3,0.723,
+ 1,0,0,0.53125,3,2.018,
+ 1,0,0,0.53125,1.5,2.277,
+ 1,0,0,0.53125,1.5,2.018,
+ 1,0,0,0.53125,1.5,2.277,
+ 1,0,0,0.53125,3,2.018,
+ 1,0,0,0.53125,3,2.277,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0.205,3,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.796875,3,1.5,
+ 0,1,0,0.53125,3,1.5,
+ 0,1,0,0.796875,3,1.5,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.796875,3,1.759,
+ 0,1,0,0.796875,3,1.759,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.796875,3,2.018,
+ 0,1,0,0.796875,3,2.018,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.723,3,2.018,
+ 0,0,-1,0.723,3,0.982,
+ 0,0,-1,0.53125,1.5,0.982,
+ 0,0,-1,0.53125,3,0.982,
+ 0,0,-1,0.53125,1.5,0.982,
+ 0,0,-1,0.723,3,0.982,
+ 0,0,-1,0.796875,1.5,0.982,
+ 0,0,-1,0.796875,1.5,0.982,
+ 0,0,-1,0.723,3,0.982,
+ 0,0,-1,0.796875,3,0.982,
+ 0,0,-1,0.205,3,2.795,
+ 0,0,-1,0,2.795,2.795,
+ 0,0,-1,0,3,2.795,
+ 0,0,-1,0,2.795,2.795,
+ 0,0,-1,0.205,3,2.795,
+ 0,0,-1,0,1.5,2.795,
+ 0,0,-1,0,1.5,2.795,
+ 0,0,-1,0.205,3,2.795,
+ 0,0,-1,0.777,1.5,2.795,
+ 0,0,-1,0.777,1.5,2.795,
+ 0,0,-1,0.205,3,2.795,
+ 0,0,-1,0.777,3,2.795,
+ 1,0,0,1.295,1.5,0,
+ 1,0,0,1.295,0,3,
+ 1,0,0,1.295,0,0,
+ 1,0,0,1.295,0,3,
+ 1,0,0,1.295,1.5,0,
+ 1,0,0,1.295,1.5,3,
+ 0,0,-1,0.777,1.983093,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0.777,1.983093,0,
+ 0,0,-1,0.777,1.799476,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,0.205,
+ 1,0,0,0.53125,3,0.723,
+ 1,0,0,0.53125,1.5,0.982,
+ 1,0,0,0.53125,1.5,0.723,
+ 1,0,0,0.53125,1.5,0.982,
+ 1,0,0,0.53125,3,0.723,
+ 1,0,0,0.53125,3,0.982,
+ 0,0,1,0.53125,1.5,2.277,
+ 0,0,1,0,2.277,2.277,
+ 0,0,1,0,1.5,2.277,
+ 0,0,1,0,2.277,2.277,
+ 0,0,1,0.53125,1.5,2.277,
+ 0,0,1,0,2.795,2.277,
+ 0,0,1,0,2.795,2.277,
+ 0,0,1,0.53125,1.5,2.277,
+ 0,0,1,0,3,2.277,
+ 0,0,1,0,3,2.277,
+ 0,0,1,0.53125,1.5,2.277,
+ 0,0,1,0.205,3,2.277,
+ 0,0,1,0.205,3,2.277,
+ 0,0,1,0.53125,1.5,2.277,
+ 0,0,1,0.53125,3,2.277,
+ 1,0,0,0.796875,3,1.759,
+ 1,0,0,0.796875,1.5,2.018,
+ 1,0,0,0.796875,1.5,1.759,
+ 1,0,0,0.796875,1.5,2.018,
+ 1,0,0,0.796875,3,1.759,
+ 1,0,0,0.796875,3,2.018,
+ 0,1,0,0.796875,3,1.5,
+ 0,1,0,1.0625,3,1.241,
+ 0,1,0,0.796875,3,1.241,
+ 0,1,0,1.0625,3,1.241,
+ 0,1,0,0.796875,3,1.5,
+ 0,1,0,1.0625,3,1.5,
+ 0,0,1,0.777,1.799476,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,2.502268,3,
+ 0,0,1,0.777,1.799476,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,0.723,
+ 0,1,0,0,3,0.723,
+ 0,1,0,0.205,3,0.723,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 1,0,0,0.796875,3,0.982,
+ 1,0,0,0.796875,1.5,1.241,
+ 1,0,0,0.796875,1.5,0.982,
+ 1,0,0,0.796875,1.5,1.241,
+ 1,0,0,0.796875,3,0.982,
+ 1,0,0,0.796875,3,1.241,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,1.5,
+ 0,0,1,1.0625,1.5,1.759,
+ 0,0,1,0.796875,3,1.759,
+ 0,0,1,0.796875,1.5,1.759,
+ 0,0,1,0.796875,3,1.759,
+ 0,0,1,1.0625,1.5,1.759,
+ 0,0,1,1.0625,3,1.759,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,3,2.277,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,2.277,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,3,2.277,
+ -1,0,0,0,3,1.5,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.777,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.777,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.777,3,3,
+ 0.57735,0.57735,0.57735,0.777,3,3,
+ 0,0.83205,0.5547,0.205,3,3,
+ 0,0,1,0.259,3,3,
+ 0.57735,0.57735,0.57735,0.777,3,3,
+ 0,0,1,0.259,3,3,
+ 0,0,1,0.497732,3,3,
+ 0.57735,0.57735,0.57735,0.777,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.518,3,3,
+ 0,1,0,0.53125,3,1.17375,
+ 0,1,0,0.723,3,0.982,
+ 0,1,0,0.53125,3,0.982,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,0.205,0.205,
+ -0.588348,0.784465,0.196116,0,1.5,0.205,
+ -1,0,0,0,1.5,1.5,
+ -0.408248,0.408248,-0.816497,0,1.5,0.723,
+ 0,0,1,0.777,1.5,0.205,
+ 0,0,1,0,2.795,0.205,
+ 0,0,1,0,1.5,0.205,
+ 0,0,1,0,2.795,0.205,
+ 0,0,1,0.777,1.5,0.205,
+ 0,0,1,0,3,0.205,
+ 0,0,1,0,3,0.205,
+ 0,0,1,0.777,1.5,0.205,
+ 0,0,1,0.205,3,0.205,
+ 0,0,1,0.205,3,0.205,
+ 0,0,1,0.777,1.5,0.205,
+ 0,0,1,0.777,3,0.205,
+ 0,0,1,0.796875,1.5,2.018,
+ 0,0,1,0.53125,3,2.018,
+ 0,0,1,0.53125,1.5,2.018,
+ 0,0,1,0.53125,3,2.018,
+ 0,0,1,0.796875,1.5,2.018,
+ 0,0,1,0.723,3,2.018,
+ 0,0,1,0.723,3,2.018,
+ 0,0,1,0.796875,1.5,2.018,
+ 0,0,1,0.796875,3,2.018,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.12132,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.502268,0,
+ -1,0,0,0,2.795,0.205,
+ -1,0,0,0,2.795,0,
+ 0,0,1,0.777,1.643814,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,2.12132,3,
+ 0,0,1,0.777,1.643814,3,
+ 0,0,1,0.777,1.799476,3,
+ 0,0,-1,0.777,1.799476,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,2.12132,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0.777,1.799476,0,
+ 0,0,-1,0.777,1.5,0,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0,0,
+ -1,0,0,0,0,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.777,3,0,
+ 0,1,0,0.497732,3,0,
+ 0,1,0,0.777,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.777,3,0.205,
+ 0,1,0,0.777,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0.205,3,0.205,
+ -1,0,0,0,3,0,
+ -1,0,0,0,2.795,0,
+ -1,0,0,0,2.795,0.205,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0.497732,3,0,
+ 0,0,-1,0.777,2.582046,0,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.53125,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,0,1,0.777,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.798369,3,
+ 0,0,1,0.777,1.5,3,
+ 0,0,1,0.777,1.643814,3,
+ 0,1,0,0.723,3,2.018,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.53125,3,2.018,
+ 0,1,0,0.53125,3,1.17375,
+ 0,1,0,0.796875,3,0.982,
+ 0,1,0,0.723,3,0.982,
+ 0,1,0,0.796875,3,0.982,
+ 0,1,0,0.53125,3,1.17375,
+ 0,1,0,0.796875,3,1.241,
+ 0,1,0,0.796875,3,1.241,
+ 0,1,0,0.53125,3,1.17375,
+ 0,1,0,0.53125,3,1.5,
+ 0,1,0,0.796875,3,1.241,
+ 0,1,0,0.53125,3,1.5,
+ 0,1,0,0.796875,3,1.5,
+ 0,0,-1,0.777,3,0,
+ 0,0,-1,0.777,2.582046,0,
+ 0,0,-1,0.497732,3,0,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0.205,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,1.5,3,
+ -1,0,0,0,1.5,2.795,
+ 0,0,-1,0.205,3,0.723,
+ 0,0,-1,0,2.795,0.723,
+ 0,0,-1,0,3,0.723,
+ 0,0,-1,0,2.795,0.723,
+ 0,0,-1,0.205,3,0.723,
+ 0,0,-1,0,2.277,0.723,
+ 0,0,-1,0,2.277,0.723,
+ 0,0,-1,0.205,3,0.723,
+ 0,0,-1,0,1.5,0.723,
+ 0,0,-1,0,1.5,0.723,
+ 0,0,-1,0.205,3,0.723,
+ 0,0,-1,0.53125,1.5,0.723,
+ 0,0,-1,0.53125,1.5,0.723,
+ 0,0,-1,0.205,3,0.723,
+ 0,0,-1,0.53125,3,0.723,
+ -1,0,0,0,2.277,0.723,
+ -1,0,0,0,1.5,0.723,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,3,3,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,2.795,3,
+ 0,1,0,0.205,3,2.277,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.53125,3,1.82625,
+ 0,1,0,0.205,3,2.277,
+ 0,1,0,0.53125,3,2.018,
+ 0,1,0,0.53125,3,2.018,
+ 0,1,0,0.205,3,2.277,
+ 0,1,0,0.53125,3,2.277,
+ 1,0,0,1.0625,3,1.241,
+ 1,0,0,1.0625,1.5,1.759,
+ 1,0,0,1.0625,1.5,1.241,
+ 1,0,0,1.0625,1.5,1.759,
+ 1,0,0,1.0625,3,1.241,
+ 1,0,0,1.0625,3,1.759,
+ 0.57735,0.57735,0.57735,1.0625,3,1.759,
+ 0.57735,0.57735,-0.57735,1.0625,3,1.241,
+ 0,1,0,1.0625,3,1.5,
+ 0,1,0,0,3,2.277,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,2.277,
+ 0,1,0,0.205,3,2.277,
+ 1,0,0,0.777,1.799476,0,
+ 1,0,0,0.777,1.5,0.205,
+ 1,0,0,0.777,1.5,0,
+ 1,0,0,0.777,1.5,0.205,
+ 1,0,0,0.777,1.799476,0,
+ 1,0,0,0.777,3,0.205,
+ 1,0,0,0.777,3,0.205,
+ 1,0,0,0.777,1.799476,0,
+ 1,0,0,0.777,1.983093,0,
+ 1,0,0,0.777,3,0.205,
+ 1,0,0,0.777,1.983093,0,
+ 1,0,0,0.777,2.223,0,
+ 1,0,0,0.777,3,0.205,
+ 1,0,0,0.777,2.223,0,
+ 1,0,0,0.777,2.582046,0,
+ 1,0,0,0.777,3,0.205,
+ 1,0,0,0.777,2.582046,0,
+ 1,0,0,0.777,3,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0,2.795,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0,2.502268,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0.777,1.983093,0,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.259,3,3,
+ 0,0,1,0.259,3,3,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.777,2.582046,3,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,1.5,
+ -1,0,0,0,0.205,2.795,
+ 0,1,0,0.53125,3,1.5,
+ 0,1,0,0.53125,3,1.17375,
+ 0,1,0,0.205,3,1.5,
+ -1,0,0,0,2.277,2.277,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.277,2.277,
+ -1,0,0,0,2.795,2.277,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,0,
+ -1,0,0,0,0,0,
+ 0,0,-1,1.0625,3,1.241,
+ 0,0,-1,0.796875,1.5,1.241,
+ 0,0,-1,0.796875,3,1.241,
+ 0,0,-1,0.796875,1.5,1.241,
+ 0,0,-1,1.0625,3,1.241,
+ 0,0,-1,1.0625,1.5,1.241,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,2.795,2.795,
+ -1,0,0,0,3,3,
+ 0,0,1,0.777,2.582046,3,
+ 0,0,1,0.518,3,3,
+ 0,0,1,0.497732,3,3,
+ 0,0,1,0.518,3,3,
+ 0,0,1,0.777,2.582046,3,
+ 0,0,1,0.777,3,3,
+ -1,0,0,0,0.205,2.795,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,3,
+ 0,1,0,0.796875,3,1.759,
+ 0,1,0,1.0625,3,1.5,
+ 0,1,0,0.796875,3,1.5,
+ 0,1,0,1.0625,3,1.5,
+ 0,1,0,0.796875,3,1.759,
+ 0,1,0,1.0625,3,1.759,
+ 0,1,0,0.796875,1.5,2.018,
+ 0,1,0,1.0625,1.5,1.759,
+ 0,1,0,0.796875,1.5,1.759,
+ 0,1,0,0.53125,1.5,2.277,
+ 0,1,0,0.796875,1.5,2.018,
+ 0,1,0,0.53125,1.5,2.018,
+ 0,1,0,0,1.5,2.795,
+ 0,1,0,0.53125,1.5,2.277,
+ 0,1,0,0,1.5,2.277,
+ 0,1,0,0.777,1.5,0.205,
+ 0,1,0,1.295,1.5,0,
+ 0,1,0,0.777,1.5,0,
+ 0,1,0,1.295,1.5,0,
+ 0,1,0,0.777,1.5,0.205,
+ 0,1,0,1.0625,1.5,1.241,
+ 0,1,0,1.295,1.5,0,
+ 0,1,0,1.0625,1.5,1.241,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,1.0625,1.5,1.241,
+ 0,1,0,0.777,1.5,0.205,
+ 0,1,0,0.796875,1.5,0.982,
+ 0,1,0,0.796875,1.5,0.982,
+ 0,1,0,0.777,1.5,0.205,
+ 0,1,0,0,1.5,0.205,
+ 0.218218,0.872872,-0.436436,0.796875,1.5,0.982,
+ -0.588348,0.784465,0.196116,0,1.5,0.205,
+ 0.333333,0.666667,-0.666667,0.53125,1.5,0.723,
+ 0,1,0,0.53125,1.5,0.723,
+ 0,1,0,0,1.5,0.205,
+ 0,1,0,0,1.5,0.723,
+ 0,1,0,0.796875,1.5,0.982,
+ 0,1,0,0.53125,1.5,0.723,
+ 0,1,0,0.53125,1.5,0.982,
+ 0,1,0,1.0625,1.5,1.241,
+ 0,1,0,0.796875,1.5,0.982,
+ 0,1,0,0.796875,1.5,1.241,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,1.0625,1.5,1.241,
+ 0,1,0,1.0625,1.5,1.759,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,1.0625,1.5,1.759,
+ 0,1,0,0.796875,1.5,2.018,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,0.796875,1.5,2.018,
+ 0,1,0,0.53125,1.5,2.277,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,0.53125,1.5,2.277,
+ 0,1,0,0.777,1.5,2.795,
+ 0,1,0,0.777,1.5,2.795,
+ 0,1,0,0.53125,1.5,2.277,
+ 0,1,0,0,1.5,2.795,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,0.777,1.5,2.795,
+ 0,1,0,0.777,1.5,3,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.277,0.723,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,2.277,0.723,
+ -1,0,0,0,2.795,1.5,
+ -1,0,0,0,2.795,0.723,
+ -1,0,0,0,2.277,2.277,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,1.5,2.277,
+ -1,0,0,0,1.5,1.5,
+ -1,0,0,0,0.205,0.205,
+ -1,0,0,0,0.205,1.5,
+ 0,0,1,1.295,0,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0,0.205,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,0,1.5,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,0.777,1.5,3,
+ 0,0,1,0.777,1.5,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,1.295,1.5,3,
+ 0,1,0,0,1.5,3,
+ 0,1,0,0.777,1.5,2.795,
+ 0,1,0,0,1.5,2.795,
+ 0,1,0,0.777,1.5,2.795,
+ 0,1,0,0,1.5,3,
+ 0,1,0,0.777,1.5,3,
+ 0,0,-1,0.777,1.5,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0,1.5,0,
+ 0,0,-1,0,0.205,0,
+ 0,0,-1,0.777,1.5,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.777,1.5,0,
+ 0,0,-1,1.295,0,0,
+ 0,0,-1,1.295,0,0,
+ 0,0,-1,0.777,1.5,0,
+ 0,0,-1,1.295,1.5,0,
+ 0,1,0,0,1.5,0.205,
+ 0,1,0,0.777,1.5,0,
+ 0,1,0,0,1.5,0,
+ 0,1,0,0.777,1.5,0,
+ 0,1,0,0,1.5,0.205,
+ 0,1,0,0.777,1.5,0.205
+};
+static const struct gllist lament_model_taser_a_frame = { GL_N3F_V3F, GL_TRIANGLES, 582, lament_model_taser_a_data, 0 };
+const struct gllist *lament_model_taser_a = &lament_model_taser_a_frame;
+
+static const float lament_model_taser_b_data[] = {
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.295,1.705,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,1.295,1.705,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.295,1.705,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.295,1.806804,0,
+ -1,0,0,0,3,0.205,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,3,0.464,
+ -1,0,0,0,3,0.723,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,1.5,0.723,
+ -1,0,0,0,1.5,0.205,
+ -1,0,0,0,3,0.723,
+ -1,0,0,0,3,0.464,
+ -1,0,0,0.53125,3,0.982,
+ -0.989278,0,-0.146043,0.53125,1.5,0.723,
+ -1,0,0,0.53125,1.5,0.982,
+ -0.989278,0,-0.146043,0.53125,1.5,0.723,
+ -1,0,0,0.53125,3,0.982,
+ -0.956392,0,-0.292087,0.53125,3,0.723,
+ 0,0,1,1.0625,1.5,1.241,
+ 0,0,1,0.796875,3,1.241,
+ 0,0,1,0.796875,1.5,1.241,
+ 0,0,1,0.796875,3,1.241,
+ 0,0,1,1.0625,1.5,1.241,
+ 0,0,1,1.0625,3,1.241,
+ 0,0,-1,1.0625,3,1.759,
+ 0,0,-1,0.796875,1.5,1.759,
+ 0,0,-1,0.796875,3,1.759,
+ 0,0,-1,0.796875,1.5,1.759,
+ 0,0,-1,1.0625,3,1.759,
+ 0,0,-1,1.0625,1.5,1.759,
+ -1,0,0,0.777,1.643814,3,
+ -1,0,0,0.777,1.5,2.795,
+ -1,0,0,0.777,1.5,3,
+ -1,0,0,0.777,1.5,2.795,
+ -1,0,0,0.777,1.643814,3,
+ -1,0,0,0.777,3,2.795,
+ -1,0,0,0.777,3,2.795,
+ -1,0,0,0.777,1.643814,3,
+ -1,0,0,0.777,1.732563,3,
+ -1,0,0,0.777,3,2.795,
+ -1,0,0,0.777,1.732563,3,
+ -1,0,0,0.777,1.799476,3,
+ -1,0,0,0.777,3,2.795,
+ -1,0,0,0.777,1.799476,3,
+ -1,0,0,0.777,1.983093,3,
+ -1,0,0,0.777,3,2.795,
+ -1,0,0,0.777,1.983093,3,
+ -1,0,0,0.777,2.223,3,
+ -1,0,0,0.777,3,2.795,
+ -1,0,0,0.777,2.223,3,
+ -1,0,0,0.777,2.582046,3,
+ -1,0,0,0.777,3,2.795,
+ -1,0,0,0.777,2.582046,3,
+ -1,0,0,0.777,3,3,
+ -1,0,0,0.53125,3,2.277,
+ -1,0,0,0.53125,1.5,2.018,
+ -1,0,0,0.53125,1.5,2.277,
+ -1,0,0,0.53125,1.5,2.018,
+ -1,0,0,0.53125,3,2.277,
+ -1,0,0,0.53125,3,2.018,
+ -1,0,0,0.796875,3,1.241,
+ -1,0,0,0.796875,1.5,0.982,
+ -1,0,0,0.796875,1.5,1.241,
+ -1,0,0,0.796875,1.5,0.982,
+ -1,0,0,0.796875,3,1.241,
+ -1,0,0,0.796875,3,0.982,
+ -1,0,0,1.0625,3,1.759,
+ -1,0,0,1.0625,1.5,1.5,
+ -1,0,0,1.0625,1.5,1.759,
+ -1,0,0,1.0625,1.5,1.5,
+ -1,0,0,1.0625,3,1.759,
+ -1,0,0,1.0625,1.5,1.241,
+ -1,0,0,1.0625,1.5,1.241,
+ -1,0,0,1.0625,3,1.759,
+ -1,0,0,1.0625,3,1.241,
+ -0.301511,0.904534,0.301511,1.0625,3,1.241,
+ -0.639602,0.639602,-0.426401,1.0625,3,1.759,
+ 0,1,0,1.0625,3,1.5,
+ -1,0,0,0.796875,3,2.018,
+ -1,0,0,0.796875,1.5,1.759,
+ -1,0,0,0.796875,1.5,2.018,
+ -1,0,0,0.796875,1.5,1.759,
+ -1,0,0,0.796875,3,2.018,
+ -1,0,0,0.796875,3,1.759,
+ 0,0,-1,0.723,3,2.018,
+ 0,0,-1,0.53125,1.5,2.018,
+ 0,0,-1,0.53125,3,2.018,
+ 0,0,-1,0.53125,1.5,2.018,
+ 0,0,-1,0.723,3,2.018,
+ 0,0,-1,0.796875,1.5,2.018,
+ 0,0,-1,0.796875,1.5,2.018,
+ 0,0,-1,0.723,3,2.018,
+ 0,0,-1,0.796875,3,2.018,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,1.5,2.277,
+ -1,0,0,0,1.5,2.795,
+ -1,0,0,0,1.5,2.277,
+ -1,0,0,0,3,2.795,
+ -1,0,0,0,3,2.277,
+ -0.57735,0.57735,-0.57735,0,3,2.277,
+ -0.666667,0.333333,0.666667,0,3,2.795,
+ 0,1,0,0,3,2.536,
+ 0,0,1,0.796875,1.5,0.982,
+ 0,0,1,0.53125,3,0.982,
+ 0,0,1,0.53125,1.5,0.982,
+ 0,0,1,0.53125,3,0.982,
+ 0,0,1,0.796875,1.5,0.982,
+ 0,0,1,0.723,3,0.982,
+ 0,0,1,0.723,3,0.982,
+ 0,0,1,0.796875,1.5,0.982,
+ 0,0,1,0.796875,3,0.982,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,1.295,1.636977,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,1.295,1.636977,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,1.295,1.636977,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,1.295,1.705,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.295,1.994914,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.295,1.994914,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.295,2.231186,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.295,1.806804,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.295,1.806804,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.295,1.806804,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.295,1.994914,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,1.295,1.584914,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.295,1.584914,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,1.295,1.584914,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,1.295,1.636977,0,
+ 0,0,-1,1.295,1.540777,0,
+ 0,0,-1,0.777,1.5,0,
+ 0,0,-1,0.777,1.643814,0,
+ 0,0,-1,0.777,1.5,0,
+ 0,0,-1,1.295,1.540777,0,
+ 0,0,-1,1.295,1.5,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.777,1.643814,0,
+ 0,0,-1,0.777,1.732563,0,
+ 0,0,-1,0.777,1.643814,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.295,1.540777,0,
+ 0,0,-1,1.295,1.540777,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,1.295,1.584914,0,
+ 0,0,-1,1.295,2.530605,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.295,3,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.201631,3,0,
+ 0,0,-1,1.295,2.530605,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,1.295,2.530605,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.279384,2.227275,0,
+ 0,0,-1,1.295,2.530605,0,
+ 0,0,-1,1.295,2.231186,0,
+ 0,0,-1,0.777,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.777,2.582046,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.777,3,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,1.141738,2.17026,0,
+ 0,0,-1,0.87868,3,0,
+ 0,0,-1,1.209161,2.202148,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.777,1.799476,0,
+ 0,0,-1,0.777,1.983093,0,
+ 0,0,-1,0.777,1.799476,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.777,1.799476,0,
+ 0,0,-1,0.82974,1.858262,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.777,1.983093,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0.777,1.983093,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.777,1.983093,0,
+ 0,0,-1,0.912512,1.982139,0,
+ 0,0,-1,0.868083,1.922233,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,0.777,2.582046,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,1.077767,2.131917,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,0.777,2.223,0,
+ 0,0,-1,1.017861,2.087488,0,
+ 0,0,-1,0.962599,2.037401,0,
+ 0,0,-1,0.797852,1.790839,0,
+ 0,0,-1,0.777,1.732563,0,
+ 0,0,-1,0.777,1.799476,0,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.777,2.582046,3,
+ 0,0,1,0.777,2.223,3,
+ 0,0,1,0.777,2.582046,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.777,2.582046,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,0,1,0.777,1.799476,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.777,1.983093,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,1.295,1.5,3,
+ 0,0,1,0.777,1.643814,3,
+ 0,0,1,0.777,1.5,3,
+ 0,0,1,0.777,1.643814,3,
+ 0,0,1,1.295,1.5,3,
+ 0,0,1,1.295,1.540777,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,0.777,3,3,
+ 0,0,1,0.777,2.582046,3,
+ 0,0,1,0.777,3,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.295,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.295,2.530605,3,
+ 0,0,1,1.295,1.705,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.017861,2.087488,3,
+ 0,0,1,1.295,1.705,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.295,1.705,3,
+ 0,0,1,1.295,1.806804,3,
+ 0,0,1,1.295,1.636977,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.912512,1.982139,3,
+ 0,0,1,1.295,1.636977,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,0.962599,2.037401,3,
+ 0,0,1,1.295,1.636977,3,
+ 0,0,1,1.295,1.705,3,
+ 0,0,1,1.295,1.806804,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.077767,2.131917,3,
+ 0,0,1,1.141738,2.17026,3,
+ 0,0,1,1.295,1.806804,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.295,1.806804,3,
+ 0,0,1,1.295,1.994914,3,
+ 0,0,1,1.295,1.584914,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.82974,1.858262,3,
+ 0,0,1,1.295,1.584914,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,0.868083,1.922233,3,
+ 0,0,1,1.295,1.584914,3,
+ 0,0,1,1.295,1.636977,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.036,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.036,3,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.295,2.530605,3,
+ 0,0,1,1.295,2.530605,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.295,2.530605,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.295,2.231186,3,
+ 0,0,1,1.295,1.994914,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.209161,2.202148,3,
+ 0,0,1,1.279384,2.227275,3,
+ 0,0,1,1.295,1.994914,3,
+ 0,0,1,1.295,2.231186,3,
+ 0,0,1,1.295,1.540777,3,
+ 0,0,1,0.777,1.732563,3,
+ 0,0,1,0.777,1.643814,3,
+ 0,0,1,0.777,1.732563,3,
+ 0,0,1,1.295,1.540777,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,1.295,1.540777,3,
+ 0,0,1,1.295,1.584914,3,
+ 0,0,1,0.797852,1.790839,3,
+ 0,0,1,0.777,1.799476,3,
+ 0,0,1,0.777,1.732563,3,
+ 0,0,1,0.777,1.5,2.795,
+ 0,0,1,0,3,2.795,
+ 0,0,1,0,1.5,2.795,
+ 0,0,1,0,3,2.795,
+ 0,0,1,0.777,1.5,2.795,
+ 0,0,1,0.205,3,2.795,
+ 0,0,1,0.205,3,2.795,
+ 0,0,1,0.777,1.5,2.795,
+ 0,0,1,0.777,3,2.795,
+ 0,0,-1,0.205,3,2.277,
+ 0,0,-1,0,1.5,2.277,
+ 0,0,-1,0,3,2.277,
+ 0,0,-1,0,1.5,2.277,
+ 0,0,-1,0.205,3,2.277,
+ 0,0,-1,0.53125,1.5,2.277,
+ 0,0,-1,0.53125,1.5,2.277,
+ 0,0,-1,0.205,3,2.277,
+ 0,0,-1,0.53125,3,2.277,
+ 0,0,1,0.53125,1.5,0.723,
+ 0,0,1,0,3,0.723,
+ 0,0,1,0,1.5,0.723,
+ 0,0,1,0,3,0.723,
+ 0,0,1,0.53125,1.5,0.723,
+ 0,0,1,0.205,3,0.723,
+ 0,0,1,0.205,3,0.723,
+ 0,0,1,0.53125,1.5,0.723,
+ 0,0,1,0.53125,3,0.723,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,1.5,0,
+ -0.956392,0,-0.292087,0.777,1.5,0.205,
+ -1,0,0,0.777,1.5,0,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,1.643814,0,
+ -1,0,0,0.777,1.643814,0,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,1.732563,0,
+ -1,0,0,0.777,1.732563,0,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,1.799476,0,
+ -1,0,0,0.777,1.799476,0,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,1.983093,0,
+ -1,0,0,0.777,1.983093,0,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,2.223,0,
+ -1,0,0,0.777,2.223,0,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,2.582046,0,
+ -1,0,0,0.777,2.582046,0,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ -1,0,0,0.777,3,0,
+ 0,0,-1,0.205,3,0.205,
+ 0,0,-1,0,1.5,0.205,
+ 0,0,-1,0,3,0.205,
+ 0,0,-1,0,1.5,0.205,
+ 0,0,-1,0.205,3,0.205,
+ 0,0,-1,0.777,1.5,0.205,
+ 0,0,-1,0.777,1.5,0.205,
+ 0,0,-1,0.205,3,0.205,
+ 0,0,-1,0.777,3,0.205,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,2.530605,0,
+ 0.707107,0,-0.707107,1.295,3,0,
+ 0.707107,0,-0.707107,1.295,2.530605,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,2.231186,0,
+ 0.707107,0,-0.707107,1.295,2.231186,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,1.994914,0,
+ 0.707107,0,-0.707107,1.295,1.994914,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,1.806804,0,
+ 0.707107,0,-0.707107,1.295,1.806804,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,1.705,0,
+ 0.707107,0,-0.707107,1.295,1.705,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,1.636977,0,
+ 0.707107,0,-0.707107,1.295,1.636977,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,1.584914,0,
+ 0.707107,0,-0.707107,1.295,1.584914,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,1.540777,0,
+ 0.707107,0,-0.707107,1.295,1.540777,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,1.295,1.5,0,
+ 0.707107,0,-0.707107,1.295,1.5,0,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,2.1475,1.5,0.8525,
+ 0.707107,0,-0.707107,2.1475,1.5,0.8525,
+ 0.707107,0,-0.707107,1.5,3,0.205,
+ 0.707107,0,-0.707107,2.1475,3,0.8525,
+ 1,0,0,2.1475,3,0.8525,
+ 1,0,0,2.1475,1.5,1.284167,
+ 1,0,0,2.1475,1.5,0.8525,
+ 1,0,0,2.1475,1.5,1.284167,
+ 1,0,0,2.1475,3,0.8525,
+ 1,0,0,2.1475,3,1.284167,
+ -0.707107,0,-0.707107,2.1475,3,1.715833,
+ -0.707107,0,-0.707107,1.715833,1.5,2.1475,
+ -0.707107,0,-0.707107,1.715833,3,2.1475,
+ -0.707107,0,-0.707107,1.715833,1.5,2.1475,
+ -0.707107,0,-0.707107,2.1475,3,1.715833,
+ -0.707107,0,-0.707107,2.1475,1.5,1.715833,
+ 1,0,0,2.1475,3,1.715833,
+ 1,0,0,2.1475,1.5,2.1475,
+ 1,0,0,2.1475,1.5,1.715833,
+ 1,0,0,2.1475,1.5,2.1475,
+ 1,0,0,2.1475,3,1.715833,
+ 1,0,0,2.1475,3,2.1475,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,1.5,3,
+ 0.707107,0,0.707107,2.1475,1.5,2.1475,
+ 0.707107,0,0.707107,1.295,1.5,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,1.540777,3,
+ 0.707107,0,0.707107,1.295,1.540777,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,1.584914,3,
+ 0.707107,0,0.707107,1.295,1.584914,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,1.636977,3,
+ 0.707107,0,0.707107,1.295,1.636977,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,1.705,3,
+ 0.707107,0,0.707107,1.295,1.705,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,1.806804,3,
+ 0.707107,0,0.707107,1.295,1.806804,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,1.994914,3,
+ 0.707107,0,0.707107,1.295,1.994914,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,2.231186,3,
+ 0.707107,0,0.707107,1.295,2.231186,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,2.530605,3,
+ 0.707107,0,0.707107,1.295,2.530605,3,
+ 0.707107,0,0.707107,2.1475,3,2.1475,
+ 0.707107,0,0.707107,1.295,3,3,
+ 0.259688,0.73451,0.626943,1.295,3,3,
+ 0.828694,0.205349,0.52067,2.1475,3,2.1475,
+ 0,1,0,1.5,3,2.795,
+ 1,0,0,1.5,3,1.5,
+ 1,0,0,1.5,1.5,1.812191,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,1.5,1.812191,
+ 1,0,0,1.5,3,1.5,
+ 1,0,0,1.5,3,1.812191,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.508856,3,1.812374,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.705014,3,1.73585,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.715833,3,1.725471,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.705014,3,1.73585,
+ 0,1,0,1.68091,3,1.75481,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.68091,3,1.75481,
+ 0,1,0,1.655063,3,1.771315,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.655063,3,1.771315,
+ 0,1,0,1.627723,3,1.785207,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.627723,3,1.785207,
+ 0,1,0,1.599152,3,1.796353,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.599152,3,1.796353,
+ 0,1,0,1.569627,3,1.804645,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.569627,3,1.804645,
+ 0,1,0,1.539432,3,1.810002,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.539432,3,1.810002,
+ 0,1,0,1.508856,3,1.812374,
+ 0,-1,0,1.5,1.5,1.812191,
+ 0,-1,0,1.0625,1.5,1.5,
+ 0,-1,0,1.5,1.5,1.5,
+ 0,-1,0,1.0625,1.5,1.5,
+ 0,-1,0,1.5,1.5,1.812191,
+ 0,-1,0,1.0625,1.5,1.759,
+ 0,-1,0,0,1.5,2.795,
+ 0,-1,0,0,1.5,2.277,
+ 0,-1,0,0.53125,1.5,2.277,
+ 0,-1,0,0,1.5,2.795,
+ 0,-1,0,0.53125,1.5,2.277,
+ 0,-1,0,0.777,1.5,2.795,
+ 0,-1,0,0.777,1.5,2.795,
+ 0,-1,0,0.53125,1.5,2.018,
+ 0,-1,0,0.796875,1.5,2.018,
+ 0,-1,0,0.53125,1.5,2.018,
+ 0,-1,0,0.777,1.5,2.795,
+ 0,-1,0,0.53125,1.5,2.277,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,2.1475,1.5,1.715833,
+ 0,-1,0,2.1475,1.5,2.1475,
+ 0,-1,0,1.295,1.5,3,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,2.1475,1.5,2.1475,
+ 0,-1,0,1.295,1.5,3,
+ 0,-1,0,0.777,1.5,2.795,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,0.777,1.5,2.795,
+ 0,-1,0,1.295,1.5,3,
+ 0,-1,0,0.777,1.5,3,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,0.796875,1.5,2.018,
+ 0,-1,0,0.796875,1.5,1.759,
+ 0,-1,0,0.796875,1.5,2.018,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,0.777,1.5,2.795,
+ 0,-1,0,1.5,1.5,1.812191,
+ 0,-1,0,0.796875,1.5,1.759,
+ 0,-1,0,1.0625,1.5,1.759,
+ 0,-1,0,0.796875,1.5,1.759,
+ 0,-1,0,1.5,1.5,1.812191,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,0,1.5,0.723,
+ 0,-1,0,0,1.5,0.205,
+ 0,-1,0,0.53125,1.5,0.723,
+ 0,-1,0,0.53125,1.5,0.723,
+ 0,-1,0,0,1.5,0.205,
+ 0,-1,0,0.777,1.5,0.205,
+ 0,-1,0,0.796875,1.5,0.982,
+ 0,-1,0,0.53125,1.5,0.723,
+ 0,-1,0,0.777,1.5,0.205,
+ 0,-1,0,0.53125,1.5,0.723,
+ 0,-1,0,0.796875,1.5,0.982,
+ 0,-1,0,0.53125,1.5,0.982,
+ 0,-1,0,2.1475,1.5,1.284167,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,2.1475,1.5,0.8525,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.295,1.5,0,
+ 0,-1,0,2.1475,1.5,0.8525,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,0.777,1.5,0,
+ 0,-1,0,1.295,1.5,0,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,0.777,1.5,0.205,
+ 0,-1,0,0.777,1.5,0,
+ 0,-1,0,0.777,1.5,0.205,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,0.796875,1.5,0.982,
+ 0,-1,0,0.796875,1.5,0.982,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,0.796875,1.5,1.241,
+ 0,-1,0,1.5,1.5,1.187809,
+ 0,-1,0,0.796875,1.5,1.241,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,0.796875,1.5,1.241,
+ 0,-1,0,1.5,1.5,1.187809,
+ 0,-1,0,1.0625,1.5,1.241,
+ 1,0,0,1.715833,3,1.725471,
+ 1,0,0,1.715833,1.5,2.1475,
+ 1,0,0,1.715833,1.5,1.725471,
+ 1,0,0,1.715833,1.5,2.1475,
+ 1,0,0,1.715833,3,1.725471,
+ 1,0,0,1.715833,3,2.1475,
+ -0.011969,0,-0.999928,1.508856,3,1.812374,
+ 0.020743,0,-0.999785,1.5,1.5,1.812191,
+ 0.020743,0,-0.999785,1.5,3,1.812191,
+ 0.020743,0,-0.999785,1.5,1.5,1.812191,
+ -0.011969,0,-0.999928,1.508856,3,1.812374,
+ -0.044703,0,-0.999,1.508856,1.5,1.812374,
+ -0.692287,0,-0.721622,1.715833,3,1.725471,
+ -0.668315,0,-0.743879,1.705014,1.5,1.73585,
+ -0.6436,0,-0.765362,1.705014,3,1.73585,
+ -0.668315,0,-0.743879,1.705014,1.5,1.73585,
+ -0.692287,0,-0.721622,1.715833,3,1.725471,
+ -0.692287,0,-0.721622,1.715833,1.5,1.725471,
+ -0.6436,0,-0.765362,1.705014,3,1.73585,
+ -0.592184,0,-0.805803,1.68091,1.5,1.75481,
+ -0.565482,0,-0.824761,1.68091,3,1.75481,
+ -0.592184,0,-0.805803,1.68091,1.5,1.75481,
+ -0.6436,0,-0.765362,1.705014,3,1.73585,
+ -0.668315,0,-0.743879,1.705014,1.5,1.73585,
+ -0.565482,0,-0.824761,1.68091,3,1.75481,
+ -0.51035,0,-0.859967,1.655063,1.5,1.771315,
+ -0.481919,0,-0.876216,1.655063,3,1.771315,
+ -0.51035,0,-0.859967,1.655063,1.5,1.771315,
+ -0.565482,0,-0.824761,1.68091,3,1.75481,
+ -0.592184,0,-0.805803,1.68091,1.5,1.75481,
+ -0.481919,0,-0.876216,1.655063,3,1.771315,
+ -0.423601,0,-0.905849,1.627723,1.5,1.785207,
+ -0.393714,0,-0.919233,1.627723,3,1.785207,
+ -0.423601,0,-0.905849,1.627723,1.5,1.785207,
+ -0.481919,0,-0.876216,1.655063,3,1.771315,
+ -0.51035,0,-0.859967,1.655063,1.5,1.771315,
+ -0.393714,0,-0.919233,1.627723,3,1.785207,
+ -0.332772,0,-0.943007,1.599152,1.5,1.796353,
+ -0.301717,0,-0.953397,1.599152,3,1.796353,
+ -0.332772,0,-0.943007,1.599152,1.5,1.796353,
+ -0.393714,0,-0.919233,1.627723,3,1.785207,
+ -0.423601,0,-0.905849,1.627723,1.5,1.785207,
+ -0.301717,0,-0.953397,1.599152,3,1.796353,
+ -0.238739,0,-0.971084,1.569627,1.5,1.804645,
+ -0.206815,0,-0.97838,1.569627,3,1.804645,
+ -0.238739,0,-0.971084,1.569627,1.5,1.804645,
+ -0.301717,0,-0.953397,1.599152,3,1.796353,
+ -0.332772,0,-0.943007,1.599152,1.5,1.796353,
+ -0.206815,0,-0.97838,1.569627,3,1.804645,
+ -0.142406,0,-0.989808,1.539432,1.5,1.810002,
+ -0.109921,0,-0.99394,1.539432,3,1.810002,
+ -0.142406,0,-0.989808,1.539432,1.5,1.810002,
+ -0.206815,0,-0.97838,1.569627,3,1.804645,
+ -0.238739,0,-0.971084,1.569627,1.5,1.804645,
+ -0.109921,0,-0.99394,1.539432,3,1.810002,
+ -0.044703,0,-0.999,1.508856,1.5,1.812374,
+ -0.011969,0,-0.999928,1.508856,3,1.812374,
+ -0.044703,0,-0.999,1.508856,1.5,1.812374,
+ -0.109921,0,-0.99394,1.539432,3,1.810002,
+ -0.142406,0,-0.989808,1.539432,1.5,1.810002,
+ 0,0,1,1.036,3,3,
+ 0,0,1,1.201631,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,1,0,0.777,3,2.795,
+ 0,1,0,1.295,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.295,3,3,
+ 0,1,0,0.777,3,2.795,
+ 0,1,0,0.777,3,3,
+ 0.259688,0.73451,0.626943,1.295,3,3,
+ -0.408248,0.408248,0.816497,0.777,3,3,
+ 0,0,1,0.87868,3,3,
+ 0.259688,0.73451,0.626943,1.295,3,3,
+ 0,0,1,0.87868,3,3,
+ 0,0,1,1.201631,3,3,
+ 0.840862,0,-0.54125,1.5,3,1.812191,
+ 0.840862,0,-0.54125,1.715833,1.5,2.1475,
+ 0.840862,0,-0.54125,1.5,1.5,1.812191,
+ 0.840862,0,-0.54125,1.715833,1.5,2.1475,
+ 0.840862,0,-0.54125,1.5,3,1.812191,
+ 0.840862,0,-0.54125,1.715833,3,2.1475,
+ 0,-1,0,1.715833,3,2.1475,
+ 0,-1,0,1.5,3,1.812191,
+ 0,-1,0,1.607917,3,1.979845,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.691322,3,1.252913,
+ 0,1,0,1.71462,3,1.272856,
+ 0,1,0,1.691322,3,1.252913,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.666182,3,1.23535,
+ 0,1,0,1.666182,3,1.23535,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.639442,3,1.220336,
+ 0,1,0,1.639442,3,1.220336,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.611359,3,1.208015,
+ 0,1,0,1.611359,3,1.208015,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.582203,3,1.198505,
+ 0,1,0,1.582203,3,1.198505,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.552255,3,1.1919,
+ 0,1,0,1.552255,3,1.1919,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.521805,3,1.188262,
+ 0,1,0,1.521805,3,1.188262,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.5,3,1.187809,
+ 0.840862,0,0.54125,1.715833,3,0.8525,
+ 0.840862,0,0.54125,1.5,1.5,1.187809,
+ 0.840862,0,0.54125,1.715833,1.5,0.8525,
+ 0.840862,0,0.54125,1.5,1.5,1.187809,
+ 0.840862,0,0.54125,1.715833,3,0.8525,
+ 0.840862,0,0.54125,1.5,3,1.187809,
+ 0,-1,0,1.5,3,1.187809,
+ 0,-1,0,1.715833,3,0.8525,
+ 0,-1,0,1.607917,3,1.020155,
+ 1,0,0,1.715833,3,0.8525,
+ 1,0,0,1.715833,1.5,1.274121,
+ 1,0,0,1.715833,1.5,0.8525,
+ 1,0,0,1.715833,1.5,1.274121,
+ 1,0,0,1.715833,3,0.8525,
+ 1,0,0,1.715833,3,1.274121,
+ -0.053432,0,0.998571,1.521805,1.5,1.188262,
+ -0.020743,0,0.999785,1.5,3,1.187809,
+ -0.020743,0,0.999785,1.5,1.5,1.187809,
+ -0.020743,0,0.999785,1.5,3,1.187809,
+ -0.053432,0,0.998571,1.521805,1.5,1.188262,
+ -0.086099,0,0.996287,1.521805,3,1.188262,
+ -0.151052,0,0.988526,1.552255,1.5,1.1919,
+ -0.086099,0,0.996287,1.521805,3,1.188262,
+ -0.053432,0,0.998571,1.521805,1.5,1.188262,
+ -0.086099,0,0.996287,1.521805,3,1.188262,
+ -0.151052,0,0.988526,1.552255,1.5,1.1919,
+ -0.183337,0,0.98305,1.552255,3,1.1919,
+ -0.247217,0,0.96896,1.582203,1.5,1.198505,
+ -0.183337,0,0.98305,1.552255,3,1.1919,
+ -0.151052,0,0.988526,1.552255,1.5,1.1919,
+ -0.183337,0,0.98305,1.552255,3,1.1919,
+ -0.247217,0,0.96896,1.582203,1.5,1.198505,
+ -0.27881,0,0.960346,1.582203,3,1.198505,
+ -0.341001,0,0.940063,1.611359,1.5,1.208015,
+ -0.27881,0,0.960346,1.582203,3,1.198505,
+ -0.247217,0,0.96896,1.582203,1.5,1.198505,
+ -0.27881,0,0.960346,1.582203,3,1.198505,
+ -0.341001,0,0.940063,1.611359,1.5,1.208015,
+ -0.371598,0,0.928394,1.611359,3,1.208015,
+ -0.431501,0,0.902112,1.639442,1.5,1.220336,
+ -0.371598,0,0.928394,1.611359,3,1.208015,
+ -0.341001,0,0.940063,1.611359,1.5,1.208015,
+ -0.371598,0,0.928394,1.611359,3,1.208015,
+ -0.431501,0,0.902112,1.639442,1.5,1.220336,
+ -0.460807,0,0.8875,1.639442,3,1.220336,
+ -0.517846,0,0.855474,1.666182,1.5,1.23535,
+ -0.460807,0,0.8875,1.639442,3,1.220336,
+ -0.431501,0,0.902112,1.639442,1.5,1.220336,
+ -0.460807,0,0.8875,1.639442,3,1.220336,
+ -0.517846,0,0.855474,1.666182,1.5,1.23535,
+ -0.545579,0,0.83806,1.666182,3,1.23535,
+ -0.599204,0,0.800597,1.691322,1.5,1.252913,
+ -0.545579,0,0.83806,1.666182,3,1.23535,
+ -0.517846,0,0.855474,1.666182,1.5,1.23535,
+ -0.545579,0,0.83806,1.666182,3,1.23535,
+ -0.599204,0,0.800597,1.691322,1.5,1.252913,
+ -0.625096,0,0.780548,1.691322,3,1.252913,
+ -0.686784,0,0.726862,1.71462,1.5,1.272856,
+ -0.625096,0,0.780548,1.691322,3,1.252913,
+ -0.599204,0,0.800597,1.691322,1.5,1.252913,
+ -0.625096,0,0.780548,1.691322,3,1.252913,
+ -0.686784,0,0.726862,1.71462,1.5,1.272856,
+ -0.686784,0,0.726862,1.71462,3,1.272856,
+ -0.721622,0,0.692287,1.715833,3,1.274121,
+ -0.686784,0,0.726862,1.71462,1.5,1.272856,
+ -0.721622,0,0.692287,1.715833,1.5,1.274121,
+ -0.686784,0,0.726862,1.71462,1.5,1.272856,
+ -0.721622,0,0.692287,1.715833,3,1.274121,
+ -0.686784,0,0.726862,1.71462,3,1.272856,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.705014,1.5,1.73585,
+ 0,-1,0,1.715833,1.5,1.725471,
+ 0,-1,0,1.705014,1.5,1.73585,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.68091,1.5,1.75481,
+ 0,-1,0,1.68091,1.5,1.75481,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.655063,1.5,1.771315,
+ 0,-1,0,1.655063,1.5,1.771315,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.627723,1.5,1.785207,
+ 0,-1,0,1.627723,1.5,1.785207,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.599152,1.5,1.796353,
+ 0,-1,0,1.599152,1.5,1.796353,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.569627,1.5,1.804645,
+ 0,-1,0,1.569627,1.5,1.804645,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.539432,1.5,1.810002,
+ 0,-1,0,1.539432,1.5,1.810002,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.508856,1.5,1.812374,
+ 0,-1,0,1.715833,1.5,2.1475,
+ 0,-1,0,1.5,1.5,1.812191,
+ 0,-1,0,1.508856,1.5,1.812374,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.521805,1.5,1.188262,
+ 0,-1,0,1.5,1.5,1.187809,
+ 0,-1,0,1.521805,1.5,1.188262,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.552255,1.5,1.1919,
+ 0,-1,0,1.552255,1.5,1.1919,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.582203,1.5,1.198505,
+ 0,-1,0,1.582203,1.5,1.198505,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.611359,1.5,1.208015,
+ 0,-1,0,1.611359,1.5,1.208015,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.639442,1.5,1.220336,
+ 0,-1,0,1.639442,1.5,1.220336,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.666182,1.5,1.23535,
+ 0,-1,0,1.666182,1.5,1.23535,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.691322,1.5,1.252913,
+ 0,-1,0,1.691322,1.5,1.252913,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.71462,1.5,1.272856,
+ 0,-1,0,1.71462,1.5,1.272856,
+ 0,-1,0,1.715833,1.5,0.8525,
+ 0,-1,0,1.715833,1.5,1.274121,
+ 0,1,0,0,3,2.536,
+ 0,1,0,0.205,3,2.277,
+ 0,1,0,0,3,2.277,
+ 0,1,0,0.205,3,2.277,
+ 0,1,0,0,3,2.536,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.536,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0,3,0.464,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.464,
+ 0,1,0,0.205,3,0.723,
+ 0,1,0,0.205,3,0.723,
+ 0,1,0,0,3,0.464,
+ 0,1,0,0,3,0.723,
+ 0,1,0,0.777,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.87868,3,0,
+ 0,1,0,1.201631,3,0,
+ 0,1,0,0.777,3,0,
+ 0,1,0,1.295,3,0,
+ 0,1,0,1.295,3,0,
+ 0,1,0,0.777,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.777,3,0,
+ 0,1,0,0.777,3,0.205,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.1475,3,1.715833,
+ 0,1,0,1.715833,3,2.1475,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.53125,3,2.277,
+ 0,1,0,0.205,3,2.277,
+ 0,1,0,0.53125,3,2.277,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.777,3,2.795,
+ 0,1,0,0.53125,3,0.723,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.777,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.53125,3,0.723,
+ 0,1,0,0.723,3,0.982,
+ 0,1,0,0.723,3,0.982,
+ 0,1,0,0.53125,3,0.723,
+ 0,1,0,0.53125,3,0.982,
+ 0,1,0,1.0625,3,1.241,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,1.187809,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.0625,3,1.241,
+ 0,1,0,1.0625,3,1.5,
+ 0,1,0,1.5,3,1.187809,
+ 0,1,0,1.715833,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.715833,3,0.8525,
+ 0,1,0,1.5,3,1.187809,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.0625,3,1.5,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.0625,3,1.5,
+ 0,1,0,1.0625,3,1.759,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.796875,3,0.982,
+ 0,1,0,0.796875,3,1.241,
+ 0,1,0,0.796875,3,0.982,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.723,3,0.982,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.0625,3,1.759,
+ 0,1,0,0.796875,3,1.759,
+ 0,1,0,1.0625,3,1.759,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.715833,3,2.1475,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.715833,3,0.8525,
+ 0,1,0,2.1475,3,1.284167,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.715833,3,0.8525,
+ 0,0,1,2.1475,1.5,0.8525,
+ 0,0,1,1.715833,3,0.8525,
+ 0,0,1,1.715833,1.5,0.8525,
+ 0,0,1,1.715833,3,0.8525,
+ 0,0,1,2.1475,1.5,0.8525,
+ 0,0,1,2.1475,3,0.8525,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.715833,3,2.1475,
+ 0,0,-1,2.1475,3,2.1475,
+ 0,0,-1,1.715833,1.5,2.1475,
+ 0,0,-1,1.715833,3,2.1475,
+ 0,0,-1,1.715833,1.5,2.1475,
+ 0,0,-1,2.1475,3,2.1475,
+ 0,0,-1,2.1475,1.5,2.1475,
+ 0,1,0,0.796875,3,1.241,
+ 0,1,0,1.5,3,1.187809,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.5,3,1.187809,
+ 0,1,0,0.796875,3,1.241,
+ 0,1,0,1.0625,3,1.241,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.796875,3,2.018,
+ 0,1,0,0.723,3,2.018,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.796875,3,1.759,
+ 0,1,0,0.796875,3,2.018,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.53125,3,0.723,
+ 0,1,0,0.777,3,0.205,
+ 0,1,0,0.53125,3,0.723,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0.205,3,0.723,
+ -0.956392,0,-0.292087,0.53125,3,0.723,
+ -0.956392,0,-0.292087,0.777,1.5,0.205,
+ -0.989278,0,-0.146043,0.53125,1.5,0.723,
+ -0.956392,0,-0.292087,0.777,1.5,0.205,
+ -0.956392,0,-0.292087,0.53125,3,0.723,
+ -0.998843,0,-0.048086,0.777,3,0.205,
+ 0,1,0,0.53125,3,2.277,
+ 0,1,0,0.723,3,2.018,
+ 0,1,0,0.53125,3,2.018,
+ 0,1,0,0.723,3,2.018,
+ 0,1,0,0.53125,3,2.277,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.53125,3,2.277,
+ 0,1,0,0.777,3,2.795,
+ 0,-1,0,1.5,1.5,1.5,
+ 0,-1,0,1.0625,1.5,1.241,
+ 0,-1,0,1.5,1.5,1.187809,
+ 0,-1,0,1.0625,1.5,1.241,
+ 0,-1,0,1.5,1.5,1.5,
+ 0,-1,0,1.0625,1.5,1.5,
+ 1,0,0,1.5,3,1.187809,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,1.5,1.187809,
+ 1,0,0,1.5,1.5,1.5,
+ 1,0,0,1.5,3,1.187809,
+ 1,0,0,1.5,3,1.5,
+ 0,1,0,1.715833,3,2.1475,
+ 0,1,0,1.715833,3,1.725471,
+ 0,1,0,1.607917,3,1.979845,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.715833,3,1.274121,
+ 0,1,0,1.715833,3,0.8525,
+ 0,1,0,1.715833,3,1.274121,
+ 0,1,0,1.607917,3,1.020155,
+ 0,1,0,1.71462,3,1.272856,
+ -0.707107,0,0.707107,2.1475,3,1.284167,
+ -0.707107,0,0.707107,1.715833,1.5,0.8525,
+ -0.707107,0,0.707107,2.1475,1.5,1.284167,
+ -0.707107,0,0.707107,1.715833,1.5,0.8525,
+ -0.707107,0,0.707107,2.1475,3,1.284167,
+ -0.707107,0,0.707107,1.715833,3,0.8525
+};
+static const struct gllist lament_model_taser_b_frame = { GL_N3F_V3F, GL_TRIANGLES, 990, lament_model_taser_b_data, 0 };
+const struct gllist *lament_model_taser_b = &lament_model_taser_b_frame;
+
+static const float lament_model_taser_base_data[] = {
+ 0.341001,0,-0.940063,1.611359,3,1.208015,
+ 0.27881,0,-0.960346,1.582203,1.5,1.198505,
+ 0.247217,0,-0.96896,1.582203,3,1.198505,
+ 0.27881,0,-0.960346,1.582203,1.5,1.198505,
+ 0.341001,0,-0.940063,1.611359,3,1.208015,
+ 0.371598,0,-0.928394,1.611359,1.5,1.208015,
+ 0,1,0,1.295,1.5,0,
+ 0,1,0,1.5,1.5,1.187809,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.5,1.5,1.187809,
+ 0,1,0,1.295,1.5,0,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,1.5,1.5,1.187809,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,1.5,1.5,1.812191,
+ 0,1,0,1.5,1.5,1.812191,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,1.508856,1.5,1.812374,
+ 0,1,0,1.508856,1.5,1.812374,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.295,1.5,3,
+ 0,1,0,2.1475,1.5,2.1475,
+ 0,1,0,2.1475,1.5,2.1475,
+ 0,1,0,2.1475,1.5,1.715833,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.705014,1.5,1.73585,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.715833,1.5,1.725471,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.705014,1.5,1.73585,
+ 0,1,0,1.68091,1.5,1.75481,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.68091,1.5,1.75481,
+ 0,1,0,1.655063,1.5,1.771315,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.655063,1.5,1.771315,
+ 0,1,0,1.627723,1.5,1.785207,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.627723,1.5,1.785207,
+ 0,1,0,1.599152,1.5,1.796353,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.599152,1.5,1.796353,
+ 0,1,0,1.569627,1.5,1.804645,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.569627,1.5,1.804645,
+ 0,1,0,1.539432,1.5,1.810002,
+ 0,1,0,1.715833,1.5,2.1475,
+ 0,1,0,1.539432,1.5,1.810002,
+ 0,1,0,1.508856,1.5,1.812374,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.71462,1.5,1.272856,
+ 0,1,0,1.715833,1.5,1.274121,
+ 0,1,0,1.71462,1.5,1.272856,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.691322,1.5,1.252913,
+ 0,1,0,1.691322,1.5,1.252913,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.666182,1.5,1.23535,
+ 0,1,0,1.666182,1.5,1.23535,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.639442,1.5,1.220336,
+ 0,1,0,1.639442,1.5,1.220336,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.611359,1.5,1.208015,
+ 0,1,0,1.611359,1.5,1.208015,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.582203,1.5,1.198505,
+ 0,1,0,1.582203,1.5,1.198505,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.552255,1.5,1.1919,
+ 0,1,0,1.552255,1.5,1.1919,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.521805,1.5,1.188262,
+ 0,1,0,1.521805,1.5,1.188262,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,1.5,1.5,1.187809,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,2.1475,1.5,0.8525,
+ 0,1,0,1.295,1.5,0,
+ 0,1,0,2.1475,1.5,0.8525,
+ 0,1,0,1.715833,1.5,0.8525,
+ 0,1,0,2.1475,1.5,1.284167,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.193196,0,
+ 0,0,-1,1.295,1.295,0,
+ 0.206815,0,0.97838,1.569627,1.5,1.804645,
+ 0.142406,0,0.989808,1.539432,3,1.810002,
+ 0.109921,0,0.99394,1.539432,1.5,1.810002,
+ 0.142406,0,0.989808,1.539432,3,1.810002,
+ 0.206815,0,0.97838,1.569627,1.5,1.804645,
+ 0.238739,0,0.971084,1.569627,3,1.804645,
+ 0.565482,0,0.824761,1.68091,1.5,1.75481,
+ 0.51035,0,0.859967,1.655063,3,1.771315,
+ 0.481919,0,0.876216,1.655063,1.5,1.771315,
+ 0.51035,0,0.859967,1.655063,3,1.771315,
+ 0.565482,0,0.824761,1.68091,1.5,1.75481,
+ 0.592184,0,0.805803,1.68091,3,1.75481,
+ 0.053432,0,-0.998571,1.521805,3,1.188262,
+ 0.020743,0,-0.999785,1.5,1.5,1.187809,
+ 0.020743,0,-0.999785,1.5,3,1.187809,
+ 0.020743,0,-0.999785,1.5,1.5,1.187809,
+ 0.053432,0,-0.998571,1.521805,3,1.188262,
+ 0.086099,0,-0.996287,1.521805,1.5,1.188262,
+ -1,0,0,1.5,3,1.812191,
+ -1,0,0,1.5,1.5,1.187809,
+ -1,0,0,1.5,1.5,1.812191,
+ -1,0,0,1.5,1.5,1.187809,
+ -1,0,0,1.5,3,1.812191,
+ -1,0,0,1.5,3,1.187809,
+ -0.569325,0.581384,-0.581259,1.5,3,1.187809,
+ -0.216196,0.95311,0.211757,1.5,3,1.812191,
+ 0,1,0,1.5,3,1.5,
+ -1,0,0,1.715833,3,2.1475,
+ -1,0,0,1.715833,1.5,1.725471,
+ -1,0,0,1.715833,1.5,2.1475,
+ -1,0,0,1.715833,1.5,1.725471,
+ -1,0,0,1.715833,3,2.1475,
+ -1,0,0,1.715833,3,1.725471,
+ 0.247217,0,-0.96896,1.582203,3,1.198505,
+ 0.183337,0,-0.98305,1.552255,1.5,1.1919,
+ 0.151052,0,-0.988526,1.552255,3,1.1919,
+ 0.183337,0,-0.98305,1.552255,1.5,1.1919,
+ 0.247217,0,-0.96896,1.582203,3,1.198505,
+ 0.27881,0,-0.960346,1.582203,1.5,1.198505,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,2.1475,
+ 0.707107,0,0.707107,2.1475,1.5,1.715833,
+ 0.707107,0,0.707107,1.715833,3,2.1475,
+ 0.707107,0,0.707107,1.715833,1.5,2.1475,
+ 0.707107,0,0.707107,1.715833,3,2.1475,
+ 0.707107,0,0.707107,2.1475,1.5,1.715833,
+ 0.707107,0,0.707107,2.1475,3,1.715833,
+ 0.517846,0,-0.855474,1.666182,3,1.23535,
+ 0.460807,0,-0.8875,1.639442,1.5,1.220336,
+ 0.431501,0,-0.902112,1.639442,3,1.220336,
+ 0.460807,0,-0.8875,1.639442,1.5,1.220336,
+ 0.517846,0,-0.855474,1.666182,3,1.23535,
+ 0.545579,0,-0.83806,1.666182,1.5,1.23535,
+ 0.599204,0,-0.800597,1.691322,3,1.252913,
+ 0.545579,0,-0.83806,1.666182,1.5,1.23535,
+ 0.517846,0,-0.855474,1.666182,3,1.23535,
+ 0.545579,0,-0.83806,1.666182,1.5,1.23535,
+ 0.599204,0,-0.800597,1.691322,3,1.252913,
+ 0.625096,0,-0.780548,1.691322,1.5,1.252913,
+ 0.686784,0,-0.726862,1.71462,3,1.272856,
+ 0.625096,0,-0.780548,1.691322,1.5,1.252913,
+ 0.599204,0,-0.800597,1.691322,3,1.252913,
+ 0.625096,0,-0.780548,1.691322,1.5,1.252913,
+ 0.686784,0,-0.726862,1.71462,3,1.272856,
+ 0.686784,0,-0.726862,1.71462,1.5,1.272856,
+ 0.707107,0,-0.707107,1.715833,3,0.8525,
+ 0.707107,0,-0.707107,2.1475,1.5,1.284167,
+ 0.707107,0,-0.707107,1.715833,1.5,0.8525,
+ 0.707107,0,-0.707107,2.1475,1.5,1.284167,
+ 0.707107,0,-0.707107,1.715833,3,0.8525,
+ 0.707107,0,-0.707107,2.1475,3,1.284167,
+ -1,0,0,2.1475,3,2.1475,
+ -1,0,0,2.1475,1.5,1.715833,
+ -1,0,0,2.1475,1.5,2.1475,
+ -1,0,0,2.1475,1.5,1.715833,
+ -1,0,0,2.1475,3,2.1475,
+ -1,0,0,2.1475,3,1.715833,
+ 0.109921,0,0.99394,1.539432,1.5,1.810002,
+ 0.044703,0,0.999,1.508856,3,1.812374,
+ 0.011969,0,0.999928,1.508856,1.5,1.812374,
+ 0.044703,0,0.999,1.508856,3,1.812374,
+ 0.109921,0,0.99394,1.539432,1.5,1.810002,
+ 0.142406,0,0.989808,1.539432,3,1.810002,
+ 0.011969,0,0.999928,1.508856,1.5,1.812374,
+ -0.020743,0,0.999785,1.5,3,1.812191,
+ -0.020743,0,0.999785,1.5,1.5,1.812191,
+ -0.020743,0,0.999785,1.5,3,1.812191,
+ 0.011969,0,0.999928,1.508856,1.5,1.812374,
+ 0.044703,0,0.999,1.508856,3,1.812374,
+ 0.393714,0,0.919233,1.627723,1.5,1.785207,
+ 0.332772,0,0.943007,1.599152,3,1.796353,
+ 0.301717,0,0.953397,1.599152,1.5,1.796353,
+ 0.332772,0,0.943007,1.599152,3,1.796353,
+ 0.393714,0,0.919233,1.627723,1.5,1.785207,
+ 0.423601,0,0.905849,1.627723,3,1.785207,
+ 0.301717,0,0.953397,1.599152,1.5,1.796353,
+ 0.238739,0,0.971084,1.569627,3,1.804645,
+ 0.206815,0,0.97838,1.569627,1.5,1.804645,
+ 0.238739,0,0.971084,1.569627,3,1.804645,
+ 0.301717,0,0.953397,1.599152,1.5,1.796353,
+ 0.332772,0,0.943007,1.599152,3,1.796353,
+ -1,0,0,1.715833,3,1.274121,
+ -1,0,0,1.715833,1.5,0.8525,
+ -1,0,0,1.715833,1.5,1.274121,
+ -1,0,0,1.715833,1.5,0.8525,
+ -1,0,0,1.715833,3,1.274121,
+ -1,0,0,1.715833,3,0.8525,
+ 0.481919,0,0.876216,1.655063,1.5,1.771315,
+ 0.423601,0,0.905849,1.627723,3,1.785207,
+ 0.393714,0,0.919233,1.627723,1.5,1.785207,
+ 0.423601,0,0.905849,1.627723,3,1.785207,
+ 0.481919,0,0.876216,1.655063,1.5,1.771315,
+ 0.51035,0,0.859967,1.655063,3,1.771315,
+ 0.151052,0,-0.988526,1.552255,3,1.1919,
+ 0.086099,0,-0.996287,1.521805,1.5,1.188262,
+ 0.053432,0,-0.998571,1.521805,3,1.188262,
+ 0.086099,0,-0.996287,1.521805,1.5,1.188262,
+ 0.151052,0,-0.988526,1.552255,3,1.1919,
+ 0.183337,0,-0.98305,1.552255,1.5,1.1919,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0.205,0,
+ -0.707107,0,-0.707107,1.295,1.540777,3,
+ -0.707107,0,-0.707107,2.1475,1.5,2.1475,
+ -0.707107,0,-0.707107,1.295,1.5,3,
+ -0.707107,0,-0.707107,2.1475,1.5,2.1475,
+ -0.707107,0,-0.707107,1.295,1.540777,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,1.540777,3,
+ -0.707107,0,-0.707107,1.295,1.584914,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,1.584914,3,
+ -0.707107,0,-0.707107,1.295,1.636977,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,1.636977,3,
+ -0.707107,0,-0.707107,1.295,1.705,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,1.705,3,
+ -0.707107,0,-0.707107,1.295,1.806804,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,1.806804,3,
+ -0.707107,0,-0.707107,1.295,1.994914,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,1.994914,3,
+ -0.707107,0,-0.707107,1.295,2.231186,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,2.231186,3,
+ -0.707107,0,-0.707107,1.295,2.530605,3,
+ -0.707107,0,-0.707107,2.1475,3,2.1475,
+ -0.707107,0,-0.707107,1.295,2.530605,3,
+ -0.707107,0,-0.707107,1.295,3,3,
+ -0.765259,0.274484,-0.582269,2.1475,3,2.1475,
+ -0.397052,0.561517,0.725981,1.295,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.540777,3,
+ 0,0,1,1.295,1.5,3,
+ -1,0,0,2.1475,3,1.284167,
+ -1,0,0,2.1475,1.5,0.8525,
+ -1,0,0,2.1475,1.5,1.284167,
+ -1,0,0,2.1475,1.5,0.8525,
+ -1,0,0,2.1475,3,1.284167,
+ -1,0,0,2.1475,3,0.8525,
+ 0.6436,0,0.765362,1.705014,1.5,1.73585,
+ 0.592184,0,0.805803,1.68091,3,1.75481,
+ 0.565482,0,0.824761,1.68091,1.5,1.75481,
+ 0.592184,0,0.805803,1.68091,3,1.75481,
+ 0.6436,0,0.765362,1.705014,1.5,1.73585,
+ 0.682921,0.000198,0.730492,1.705014,3,1.73585,
+ 0.431501,0,-0.902112,1.639442,3,1.220336,
+ 0.371598,0,-0.928394,1.611359,1.5,1.208015,
+ 0.341001,0,-0.940063,1.611359,3,1.208015,
+ 0.371598,0,-0.928394,1.611359,1.5,1.208015,
+ 0.431501,0,-0.902112,1.639442,3,1.220336,
+ 0.460807,0,-0.8875,1.639442,1.5,1.220336,
+ 0.686784,0,-0.726862,1.71462,3,1.272856,
+ 0.721622,0,-0.692287,1.715833,1.5,1.274121,
+ 0.686784,0,-0.726862,1.71462,1.5,1.272856,
+ 0.721622,0,-0.692287,1.715833,1.5,1.274121,
+ 0.686784,0,-0.726862,1.71462,3,1.272856,
+ 0.721622,0,-0.692287,1.715833,3,1.274121,
+ 0.713423,0.000297,0.700733,1.715833,1.5,1.725471,
+ 0.682921,0.000198,0.730492,1.705014,3,1.73585,
+ 0.6436,0,0.765362,1.705014,1.5,1.73585,
+ 0.682921,0.000198,0.730492,1.705014,3,1.73585,
+ 0.713423,0.000297,0.700733,1.715833,1.5,1.725471,
+ 0.733929,0.000594,0.679226,1.71462,3,1.725471,
+ 0,0,1,1.71462,3,1.725471,
+ 0,0,1,1.715833,1.5,1.725471,
+ 0,0,1,1.715833,3,1.725471,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,1.540777,0,
+ -0.707107,0,0.707107,1.295,1.5,0,
+ -0.707107,0,0.707107,1.295,1.540777,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,1.584914,0,
+ -0.707107,0,0.707107,1.295,1.584914,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,1.636977,0,
+ -0.707107,0,0.707107,1.295,1.636977,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,1.705,0,
+ -0.707107,0,0.707107,1.295,1.705,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,1.806804,0,
+ -0.707107,0,0.707107,1.295,1.806804,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,1.994914,0,
+ -0.707107,0,0.707107,1.295,1.994914,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,2.231186,0,
+ -0.707107,0,0.707107,1.295,2.231186,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,2.530605,0,
+ -0.707107,0,0.707107,1.295,2.530605,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.295,3,0,
+ -0.707107,0,0.707107,1.295,3,0,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,1.5,3,0.205,
+ -0.707107,0,0.707107,1.5,3,0.205,
+ -0.707107,0,0.707107,2.1475,1.5,0.8525,
+ -0.707107,0,0.707107,2.1475,3,0.8525,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.295,0,
+ 0,0,-1,1.295,1.363023,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.459223,0,
+ 0,0,-1,1.295,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.806804,0,
+ 0,0,-1,1.295,1.994914,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.415086,0,
+ 0,0,-1,1.295,1.459223,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.5,0,
+ 0,0,-1,1.295,1.540777,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.295,2.231186,0,
+ 0,0,-1,1.295,2.530605,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.295,1.994914,0,
+ 0,0,-1,1.295,2.231186,0,
+ 0,0,-1,1.295,1.994914,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.584914,0,
+ 0,0,-1,1.295,1.636977,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.636977,0,
+ 0,0,-1,1.295,1.705,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0.436436,-0.218218,-0.872872,3,0,0,
+ 0.6,0,-0.8,3,0.497732,0,
+ 1,0,0,3,0.205,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.497732,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,0.87868,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.201631,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.295,2.530605,0,
+ 0,0,-1,1.295,3,0,
+ 0,0,-1,1.295,2.530605,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,3,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.295,0,0,
+ 0,0,-1,1.295,0.469395,0,
+ 0,0,-1,1.295,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.705,0,
+ 0,0,-1,1.295,1.806804,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.798369,3,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.363023,0,
+ 0,0,-1,1.295,1.415086,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.798369,0,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,2.12132,0,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,2.12132,3,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,3,1.5,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.502268,3,0,
+ 0,0,-1,2.795,3,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.795,3,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,2.502268,0,
+ 0.447214,0,-0.894427,3,2.502268,0,
+ 0.408248,0.408248,-0.816497,3,3,0,
+ 1,0,0,3,2.795,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.295,0.469395,0,
+ 0,0,-1,1.295,0.768814,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,0.768814,0,
+ 0,0,-1,1.295,1.005086,0,
+ 0,0,-1,1.295,0.768814,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,3,2.502268,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,3,2.12132,0,
+ 0,0,-1,3,1.798369,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.502268,0,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,3,0,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.351731,2.245397,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,2.25634,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,2.26,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.574493,2.25634,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.574493,0.74366,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.648269,2.245397,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.648269,0.754603,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.720616,2.227275,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.720616,0.772725,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.790839,2.202148,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.790839,0.797852,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.858262,2.17026,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.858262,0.82974,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.922233,2.131917,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.922233,0.868083,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,1.982139,2.087488,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,1.982139,0.912512,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.037401,2.037401,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.037401,0.962599,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.087488,1.982139,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.087488,1.017861,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.131917,1.922233,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.131917,1.077767,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.17026,1.858262,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.17026,1.141738,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.202148,1.790839,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.202148,1.209161,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.227275,1.720616,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.227275,1.279384,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.245397,1.648269,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.245397,1.351731,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.25634,1.425507,0,
+ 0,0,-1,2.25634,1.574493,0,
+ 0,0,-1,2.26,1.5,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.351731,0.754603,0,
+ 0,0,-1,1.425507,0.74366,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.5,0.74,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.005086,0,
+ 0,0,-1,1.295,1.193196,0,
+ 0,0,-1,1.5,1.5,0,
+ 0,0,-1,1.295,1.540777,0,
+ 0,0,-1,1.295,1.584914,0,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.5,3,
+ 0,0,1,1.295,1.459223,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.295,2.530605,3,
+ 0,0,1,1.295,2.231186,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,2.231186,3,
+ 0,0,1,1.295,1.994914,3,
+ 0,0,1,1.295,2.231186,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.363023,3,
+ 0,0,1,1.295,1.295,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.295,0.469395,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,1.295,0.469395,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.415086,3,
+ 0,0,1,1.295,1.363023,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.295,3,
+ 0,0,1,1.295,1.193196,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,0.497732,3,
+ 0.447214,0,0.894427,3,0.497732,3,
+ 0.365148,-0.182574,0.912871,3,0,3,
+ 1,0,0,3,0.205,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,3,0.497732,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.584914,3,
+ 0,0,1,1.295,1.540777,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.459223,3,
+ 0,0,1,1.295,1.415086,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.193196,3,
+ 0,0,1,1.295,1.005086,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.295,0.768814,3,
+ 0,0,1,1.295,0.469395,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,3,0.87868,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.502268,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.806804,3,
+ 0,0,1,1.295,1.705,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.994914,3,
+ 0,0,1,1.295,1.806804,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.705,3,
+ 0,0,1,1.295,1.636977,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.295,1.636977,3,
+ 0,0,1,1.295,1.584914,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.295,3,3,
+ 0,0,1,1.295,2.530605,3,
+ 0,0,1,1.295,3,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,3,0,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.295,1.005086,3,
+ 0,0,1,1.295,0.768814,3,
+ 0,0,1,1.295,1.005086,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,2.12132,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.201631,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.798369,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,3,1.5,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,0,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,3,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,3,2.502268,3,
+ 0.408248,0.408248,0.816497,3,3,3,
+ 0.447214,0,0.894427,3,2.502268,3,
+ 1,0,0,3,2.795,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.795,3,3,
+ 0,0,1,2.795,3,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,3,3,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.12132,3,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,2.502268,3,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.351731,0.754603,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,0.74366,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,0.74,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.5,2.26,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.574493,0.74366,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.574493,2.25634,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.648269,0.754603,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.648269,2.245397,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.720616,0.772725,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.720616,2.227275,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.790839,0.797852,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.790839,2.202148,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.858262,0.82974,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.858262,2.17026,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.922233,2.131917,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.922233,0.868083,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,1.982139,0.912512,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,1.982139,2.087488,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.037401,0.962599,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.037401,2.037401,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.087488,1.017861,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.087488,1.982139,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.131917,1.077767,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.131917,1.922233,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.17026,1.141738,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.17026,1.858262,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.202148,1.209161,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.202148,1.790839,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.227275,1.279384,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.227275,1.720616,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.245397,1.648269,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.245397,1.351731,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.25634,1.574493,3,
+ 0,0,1,2.25634,1.425507,3,
+ 0,0,1,2.26,1.5,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.351731,2.245397,3,
+ 0,0,1,1.425507,2.25634,3,
+ 0,0,1,1.5,1.5,3,
+ 0,0,1,1.5,2.26,3,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,3,0,0,
+ 0,-1,0,2.502268,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,2.12132,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,1.798369,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,1.295,0,0,
+ 0,-1,0,1.295,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,1.295,0,3,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,3,0,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,2.502268,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,2.12132,0,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.295,0,3,
+ 0,0,1,1.798369,0,3,
+ 0,0,1,1.5,0,3,
+ -1,0,0,1.295,0.469395,3,
+ -1,0,0,1.295,0,0,
+ -1,0,0,1.295,0,3,
+ -1,0,0,1.295,0,0,
+ -1,0,0,1.295,0.469395,3,
+ -1,0,0,1.295,0.469395,0,
+ -1,0,0,1.295,0.469395,0,
+ -1,0,0,1.295,0.469395,3,
+ -1,0,0,1.295,0.768814,0,
+ -1,0,0,1.295,0.768814,0,
+ -1,0,0,1.295,0.469395,3,
+ -1,0,0,1.295,0.768814,3,
+ -1,0,0,1.295,0.768814,0,
+ -1,0,0,1.295,0.768814,3,
+ -1,0,0,1.295,1.005086,3,
+ -1,0,0,1.295,0.768814,0,
+ -1,0,0,1.295,1.005086,3,
+ -1,0,0,1.295,1.005086,0,
+ -1,0,0,1.295,1.005086,0,
+ -1,0,0,1.295,1.005086,3,
+ -1,0,0,1.295,1.193196,0,
+ -1,0,0,1.295,1.193196,0,
+ -1,0,0,1.295,1.005086,3,
+ -1,0,0,1.295,1.193196,3,
+ -1,0,0,1.295,1.193196,0,
+ -1,0,0,1.295,1.193196,3,
+ -1,0,0,1.295,1.295,0,
+ -1,0,0,1.295,1.295,0,
+ -1,0,0,1.295,1.193196,3,
+ -1,0,0,1.295,1.295,3,
+ -1,0,0,1.295,1.295,0,
+ -1,0,0,1.295,1.295,3,
+ -1,0,0,1.295,1.363023,0,
+ -1,0,0,1.295,1.363023,0,
+ -1,0,0,1.295,1.295,3,
+ -1,0,0,1.295,1.363023,3,
+ -1,0,0,1.295,1.363023,0,
+ -1,0,0,1.295,1.363023,3,
+ -1,0,0,1.295,1.415086,3,
+ -1,0,0,1.295,1.363023,0,
+ -1,0,0,1.295,1.415086,3,
+ -1,0,0,1.295,1.415086,0,
+ -1,0,0,1.295,1.415086,0,
+ -1,0,0,1.295,1.415086,3,
+ -1,0,0,1.295,1.459223,3,
+ -1,0,0,1.295,1.415086,0,
+ -1,0,0,1.295,1.459223,3,
+ -1,0,0,1.295,1.459223,0,
+ -1,0,0,1.295,1.459223,0,
+ -1,0,0,1.295,1.459223,3,
+ -1,0,0,1.295,1.5,3,
+ -1,0,0,1.295,1.459223,0,
+ -1,0,0,1.295,1.5,3,
+ -1,0,0,1.295,1.5,0,
+ 0,1,0,1.5,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.295,3,3,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.295,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,1.798369,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,2.12132,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,2.502268,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,3,3,3,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.1475,3,1.715833,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,1.715833,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.502268,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.502268,3,3,
+ 0,1,0,2.795,3,3,
+ 0,0.447214,0.894427,2.502268,3,3,
+ 0,0.514496,0.857493,1.5,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0.447214,0.894427,2.502268,3,3,
+ 0,0,1,1.798369,3,3,
+ 0,0,1,2.12132,3,3,
+ 0,1,0,2.1475,3,1.284167,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,1.284167,
+ 0,1,0,2.1475,3,1.5,
+ 0,1,0,1.71462,3,1.5,
+ 0,1,0,1.715833,3,1.274121,
+ 0,1,0,1.71462,3,1.272856,
+ 0,1,0,1.715833,3,1.274121,
+ 0,1,0,1.71462,3,1.5,
+ 0,1,0,2.1475,3,1.284167,
+ 0,1,0,2.1475,3,1.284167,
+ 0,1,0,1.71462,3,1.5,
+ 0,1,0,2.1475,3,1.5,
+ 0,1,0,2.1475,3,1.284167,
+ 0,1,0,1.715833,3,0.8525,
+ 0,1,0,1.715833,3,1.274121,
+ 0,1,0,1.71462,3,1.725471,
+ 0,1,0,2.1475,3,1.5,
+ 0,1,0,1.71462,3,1.5,
+ 0,1,0,2.1475,3,1.5,
+ 0,1,0,1.71462,3,1.725471,
+ 0,1,0,2.1475,3,1.715833,
+ 0,1,0,2.1475,3,1.715833,
+ 0,1,0,1.71462,3,1.725471,
+ 0,1,0,1.715833,3,1.725471,
+ 0,1,0,2.1475,3,1.715833,
+ 0,1,0,1.715833,3,1.725471,
+ 0,1,0,1.715833,3,2.1475,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.521805,3,1.188262,
+ 0,1,0,1.5,3,1.187809,
+ 0,1,0,1.521805,3,1.188262,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.552255,3,1.1919,
+ 0,1,0,1.552255,3,1.1919,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.582203,3,1.198505,
+ 0,1,0,1.582203,3,1.198505,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.611359,3,1.208015,
+ 0,1,0,1.611359,3,1.208015,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.639442,3,1.220336,
+ 0,1,0,1.639442,3,1.220336,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.666182,3,1.23535,
+ 0,1,0,1.666182,3,1.23535,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.691322,3,1.252913,
+ 0,1,0,1.691322,3,1.252913,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.71462,3,1.272856,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.71462,3,1.725471,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.71462,3,1.725471,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.705014,3,1.73585,
+ 0,1,0,1.705014,3,1.73585,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.68091,3,1.75481,
+ 0,1,0,1.68091,3,1.75481,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.655063,3,1.771315,
+ 0,1,0,1.655063,3,1.771315,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.627723,3,1.785207,
+ 0,1,0,1.627723,3,1.785207,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.599152,3,1.796353,
+ 0,1,0,1.599152,3,1.796353,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.569627,3,1.804645,
+ 0,1,0,1.569627,3,1.804645,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.539432,3,1.810002,
+ 0,1,0,1.539432,3,1.810002,
+ 0,1,0,1.5,3,1.812191,
+ 0,1,0,1.508856,3,1.812374,
+ 0,1,0,1.71462,3,1.725471,
+ 0,1,0,1.71462,3,1.5,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,1.71462,3,1.5,
+ 0,1,0,1.71462,3,1.272856,
+ 0,1,0,1.5,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.1475,3,2.1475,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.795,3,3,
+ 0,1,0,3,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,3,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0.205,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,1.5,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,0.497732,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,0.87868,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.201631,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0.205,3,
+ 1,0,0,3,0,3,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,3,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,3,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,2.795,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,0.205,1.5,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,1.5,
+ 1,0,0,3,3,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,3,2.795,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.205,0,
+ 1,0,0,3,0.205,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.497732,0,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,0.87868,0,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,1.201631,0,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,1.5,2.795,
+ 1,0,0,3,1.5,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,1.798369,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.12132,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.502268,3,
+ 1,0,0,3,2.795,2.795,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.5,0.205,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.5,0,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,1.798369,0,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.12132,0,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0.205,
+ 1,0,0,3,2.502268,0,
+ 1,0,0,3,2.795,0,
+ 1,0,0,3,3,3,
+ 1,0,0,3,2.795,3,
+ 1,0,0,3,2.795,2.795
+};
+static const struct gllist lament_model_taser_base_frame = { GL_N3F_V3F, GL_TRIANGLES, 1362, lament_model_taser_base_data, 0 };
+const struct gllist *lament_model_taser_base = &lament_model_taser_base_frame;
+
+static const float lament_model_tetra_base_data[] = {
+ 0.57735,0.57735,0.57735,0,3,3,
+ 0.57735,0.57735,0.57735,3,0,3,
+ 0.57735,0.57735,0.57735,3,3,0,
+ -0.57735,-0.57735,0.57735,0,3,3,
+ -0.57735,-0.57735,0.57735,0,0,0,
+ -0.57735,-0.57735,0.57735,3,0,3,
+ -0.57735,0.57735,-0.57735,3,3,0,
+ -0.57735,0.57735,-0.57735,0,0,0,
+ -0.57735,0.57735,-0.57735,0,3,3,
+ 0.57735,-0.57735,-0.57735,3,3,0,
+ 0.57735,-0.57735,-0.57735,3,0,3,
+ 0.57735,-0.57735,-0.57735,0,0,0
+};
+static const struct gllist lament_model_tetra_base_frame = { GL_N3F_V3F, GL_TRIANGLES, 12, lament_model_tetra_base_data, 0 };
+const struct gllist *lament_model_tetra_base = &lament_model_tetra_base_frame;
+
+static const float lament_model_tetra_dse_data[] = {
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,0,-1,3,3,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.205,0,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,1.5,0,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,2.795,0,0,
+ 0,0,-1,2.795,0,0,
+ 0,0,-1,3,3,0,
+ 0,0,-1,3,0,0,
+ 1,0,0,3,3,0,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,0,0,
+ 1,0,0,3,0,0.205,
+ 1,0,0,3,3,0,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,0,1.5,
+ 1,0,0,3,3,0,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,0,2.795,
+ 1,0,0,3,3,0,
+ 1,0,0,3,0,3,
+ -0.57735,0.57735,0.57735,3,3,0,
+ -0.57735,0.57735,0.57735,2.795,0,2.795,
+ -0.57735,0.57735,0.57735,3,0,3,
+ -0.57735,0.57735,0.57735,2.795,0,2.795,
+ -0.57735,0.57735,0.57735,3,3,0,
+ -0.57735,0.57735,0.57735,2.1475,0,2.1475,
+ -0.57735,0.57735,0.57735,2.1475,0,2.1475,
+ -0.57735,0.57735,0.57735,3,3,0,
+ -0.57735,0.57735,0.57735,0.8525,0,0.8525,
+ -0.57735,0.57735,0.57735,0.8525,0,0.8525,
+ -0.57735,0.57735,0.57735,3,3,0,
+ -0.57735,0.57735,0.57735,0.205,0,0.205,
+ -0.57735,0.57735,0.57735,0.205,0,0.205,
+ -0.57735,0.57735,0.57735,3,3,0,
+ -0.57735,0.57735,0.57735,0,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,3,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,0.205,0,0,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,3,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,2.795,0,0,
+ 0,-1,0,1.5,0,0,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,0.205,
+ 0,-1,0,2.795,0,0.205,
+ 0,-1,0,3,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,2.795,0,1.5,
+ 0,-1,0,1.5,0,0.205,
+ 0,-1,0,2.795,0,0.205
+};
+static const struct gllist lament_model_tetra_dse_frame = { GL_N3F_V3F, GL_TRIANGLES, 90, lament_model_tetra_dse_data, 0 };
+const struct gllist *lament_model_tetra_dse = &lament_model_tetra_dse_frame;
+
+static const float lament_model_tetra_dwn_data[] = {
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ -1,0,0,0,3,3,
+ -1,0,0,0,3,0,
+ -1,0,0,0,0,0,
+ -0.57735,0.57735,-0.57735,0,3,0,
+ -0.265408,0.893371,0.362555,0,3,3,
+ 0,1,0,0,3,2.795,
+ -0.57735,0.57735,-0.57735,0,3,0,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0,3,1.5,
+ -0.57735,0.57735,-0.57735,0,3,0,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0,3,0.205,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0,3,0,
+ 0,0,-1,0,0,0,
+ 0,0,-1,0.205,3,0,
+ 0,0,-1,3,3,0,
+ 0.694747,0.50859,-0.50859,3,3,0,
+ 0,0.83205,-0.5547,0.205,3,0,
+ 0,1,0,1.5,3,0,
+ 0.694747,0.50859,-0.50859,3,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,2.795,3,0,
+ 0.57735,-0.57735,0.57735,2.795,3,0.205,
+ 0.57735,-0.57735,0.57735,0,0,0,
+ 0.57735,-0.57735,0.57735,3,3,0,
+ 0.57735,-0.57735,0.57735,0,0,0,
+ 0.57735,-0.57735,0.57735,2.795,3,0.205,
+ 0.57735,-0.57735,0.57735,0,3,3,
+ -0.265408,0.893371,0.362555,0,3,3,
+ 0.468609,0.748873,0.468609,2.795,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ -0.265408,0.893371,0.362555,0,3,3,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0,3,3,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,2.795,3,0,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,0.205,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,0,3,1.5,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0,
+ 0,1,0,0.205,3,0,
+ 0,1,0,1.5,3,0,
+ 0,1,0,0.205,3,0.205,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,1.5,
+ 0,1,0,1.5,3,0.205,
+ 0,1,0,0.205,3,0.205
+};
+static const struct gllist lament_model_tetra_dwn_frame = { GL_N3F_V3F, GL_TRIANGLES, 90, lament_model_tetra_dwn_data, 0 };
+const struct gllist *lament_model_tetra_dwn = &lament_model_tetra_dwn_frame;
+
+static const float lament_model_tetra_une_data[] = {
+ 1,0,0,3,3,0,
+ 1,0,0,3,3,3,
+ 1,0,0,3,0,3,
+ 0.57735,0.57735,0.57735,3,3,3,
+ 0.50859,0.50859,-0.694747,3,3,0,
+ 0,1,0,3,3,0.205,
+ 0.57735,0.57735,0.57735,3,3,3,
+ 0,1,0,3,3,0.205,
+ 0,1,0,3,3,1.5,
+ 0.57735,0.57735,0.57735,3,3,3,
+ 0,1,0,3,3,1.5,
+ 0,1,0,3,3,2.795,
+ 0,0,1,3,0,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,3,3,
+ 0,0,1,3,0,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,1.5,3,3,
+ 0,0,1,3,0,3,
+ 0,0,1,2.795,3,3,
+ 0,0,1,2.795,3,3,
+ 0,0,1,3,0,3,
+ 0,0,1,3,3,3,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,3,3,0.205,
+ 0,1,0,3,3,0,
+ 0,1,0,2.795,3,0.205,
+ -0.57735,-0.57735,-0.57735,3,0,3,
+ -0.57735,-0.57735,-0.57735,2.795,3,0.205,
+ -0.57735,-0.57735,-0.57735,3,3,0,
+ -0.57735,-0.57735,-0.57735,2.795,3,0.205,
+ -0.57735,-0.57735,-0.57735,3,0,3,
+ -0.57735,-0.57735,-0.57735,2.1475,3,0.8525,
+ -0.57735,-0.57735,-0.57735,2.1475,3,0.8525,
+ -0.57735,-0.57735,-0.57735,3,0,3,
+ -0.57735,-0.57735,-0.57735,0.8525,3,2.1475,
+ -0.57735,-0.57735,-0.57735,0.8525,3,2.1475,
+ -0.57735,-0.57735,-0.57735,3,0,3,
+ -0.57735,-0.57735,-0.57735,0.205,3,2.795,
+ -0.57735,-0.57735,-0.57735,0.205,3,2.795,
+ -0.57735,-0.57735,-0.57735,3,0,3,
+ -0.57735,-0.57735,-0.57735,0,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,0.205,
+ 0,1,0,3,3,0.205,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,3,3,1.5,
+ 0,1,0,0.205,3,3,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,0.205,3,3,
+ 0,1,0,1.5,3,3,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,2.1475,3,0.8525,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,0.8525,3,2.1475,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.795,3,3,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,3,3,2.795,
+ 0,1,0,2.795,3,3,
+ 0,1,0,3,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,2.795,3,1.5,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,2.795,
+ 0,1,0,2.795,3,2.795,
+ 0,1,0,1.5,3,3,
+ 0,1,0,2.795,3,3
+};
+static const struct gllist lament_model_tetra_une_frame = { GL_N3F_V3F, GL_TRIANGLES, 90, lament_model_tetra_une_data, 0 };
+const struct gllist *lament_model_tetra_une = &lament_model_tetra_une_frame;
+
+static const float lament_model_tetra_usw_data[] = {
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,1.5,0,2.795,
+ 0,0,1,0.205,0,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0,0,3,
+ 0,0,1,0,3,3,
+ 0,0,1,0.205,0,3,
+ 0,0,1,3,0,3,
+ 0.694747,-0.50859,0.50859,3,0,3,
+ 0,-0.83205,0.5547,0.205,0,3,
+ 0,-1,0,1.5,0,3,
+ 0.694747,-0.50859,0.50859,3,0,3,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,2.795,0,3,
+ -1,0,0,0,3,3,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,0,3,
+ -1,0,0,0,0,2.795,
+ -1,0,0,0,3,3,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,0,1.5,
+ -1,0,0,0,3,3,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,0,0.205,
+ -1,0,0,0,3,3,
+ -1,0,0,0,0,0,
+ 0.57735,0.57735,-0.57735,0,3,3,
+ 0.57735,0.57735,-0.57735,0.205,0,0.205,
+ 0.57735,0.57735,-0.57735,0,0,0,
+ 0.57735,0.57735,-0.57735,0.205,0,0.205,
+ 0.57735,0.57735,-0.57735,0,3,3,
+ 0.57735,0.57735,-0.57735,0.8525,0,0.8525,
+ 0.57735,0.57735,-0.57735,0.8525,0,0.8525,
+ 0.57735,0.57735,-0.57735,0,3,3,
+ 0.57735,0.57735,-0.57735,2.1475,0,2.1475,
+ 0.57735,0.57735,-0.57735,2.1475,0,2.1475,
+ 0.57735,0.57735,-0.57735,0,3,3,
+ 0.57735,0.57735,-0.57735,2.795,0,2.795,
+ 0.57735,0.57735,-0.57735,2.795,0,2.795,
+ 0.57735,0.57735,-0.57735,0,3,3,
+ 0.57735,0.57735,-0.57735,3,0,3,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.8525,0,0.8525,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.1475,0,2.1475,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0,0,0,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0.205,0,3,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,0.205,0,3,
+ 0,-1,0,0,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,1.5,0,3,
+ 0,-1,0,0.205,0,3,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,0.205,
+ 0,-1,0,0,0,0.205,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,0,0,1.5,
+ 0,-1,0,0.205,0,2.795,
+ 0,-1,0,0.205,0,1.5,
+ 0,-1,0,1.5,0,2.795,
+ 0,-1,0,2.795,0,3,
+ 0,-1,0,2.795,0,2.795,
+ 0,-1,0,3,0,3
+};
+static const struct gllist lament_model_tetra_usw_frame = { GL_N3F_V3F, GL_TRIANGLES, 90, lament_model_tetra_usw_data, 0 };
+const struct gllist *lament_model_tetra_usw = &lament_model_tetra_usw_frame;
diff --git a/hacks/glx/lavalite.c b/hacks/glx/lavalite.c
new file mode 100644
index 0000000..73d5805
--- /dev/null
+++ b/hacks/glx/lavalite.c
@@ -0,0 +1,1539 @@
+/* lavalite --- 3D Simulation a Lava Lite, written by jwz.
+ *
+ * This software Copyright (c) 2002-2017 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * LAVA, LAVA LITE, LAVA WORLD INTERNATIONAL and the configuration of the
+ * LAVA brand motion lamp are registered trademarks of Haggerty Enterprises,
+ * Inc. The configuration of the globe and base of the motion lamp are
+ * registered trademarks of Haggerty Enterprises, Inc. in the U.S.A. and in
+ * other countries around the world.
+ *
+ * Official Lava Lite web site: http://www.lavaworld.com/
+ *
+ * Implementation details:
+ *
+ * The blobs are generated using metaballs. For an explanation of what
+ * those are, see http://astronomy.swin.edu.au/~pbourke/modelling/implicitsurf/
+ * or http://www.fifi.org/doc/povray-manual/pov30005.htm
+ *
+ * Basically, each bubble of lava is a few (4) overlapping spherical metaballs
+ * of various sizes following similar but slightly different steep, slow
+ * parabolic arcs from the bottom to the top and back.
+ *
+ * We then polygonize the surface of the lava using the marching squares
+ * algorithm implemented in marching.c.
+ *
+ * Like real lavalites, this program is very slow.
+ *
+ * Surprisingly, it's loading the CPU and not the graphics engine: the speed
+ * bottleneck is in *computing* the scene rather than *rendering* it. We
+ * actually don't use a huge number of polygons, but computing the mesh for
+ * the surface takes a lot of cycles.
+ *
+ * I eliminated all the square roots, but there is still a lot of
+ * floating-point multiplication in here. I tried optimizing away the
+ * fp divisions, but that didn't seem to make a difference.
+ *
+ * -style lamp shape: classic, giant, cone, rocket, or random.
+ * -speed frequency at which new blobs launch.
+ * -resolution density of the polygon mesh.
+ * -count max number of blobs allowed at once.
+ * -wander, -spin whether to roll the scene around the screen.
+ * -lava-color color of the blobbies
+ * -fluid-color color of the stuff the blobbies float in
+ * -base-color color of the base of the lamp
+ * -table-color color of the table under the lamp
+ * -impatient at startup, skip forward in the animation so
+ * that at least one blob is fully exposed.
+ *
+ * TODO:
+ *
+ * - make the table look better, somehow.
+ * - should the lava be emissive? should the one at the bottom be
+ * more brightly colored than the ones at the top? light distance?
+ * - is there some way to put a specular reflection on the front glass
+ * itself? Maybe render it twice with FRONT/BACK tweaked, or alpha
+ * with depth buffering turned off?
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*geometry: 600x900\n" \
+ "*count: " DEF_COUNT " \n" \
+
+# define free_lavalite 0
+# define release_lavalite 0
+
+
+#define BLOBS_PER_GROUP 4
+
+#define GRAVITY 0.000013 /* odwnward acceleration */
+#define CONVECTION 0.005 /* initial upward velocity (bell curve) */
+#define TILT 0.00166666 /* horizontal velocity (bell curve) */
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef ABS
+#define ABS(n) ((n)<0?-(n):(n))
+#undef SIGNOF
+#define SIGNOF(n) ((n)<0?-1:1)
+
+#include "xlockmore.h"
+#include "marching.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "ximage-loader.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "Z"
+#define DEF_WANDER "False"
+#define DEF_SPEED "0.003"
+#define DEF_RESOLUTION "40"
+#define DEF_SMOOTH "True"
+#define DEF_COUNT "3"
+#define DEF_STYLE "random"
+#define DEF_IMPATIENT "False"
+#define DEF_LCOLOR "#FF0000" /* lava */
+#define DEF_FCOLOR "#00AAFF" /* fluid */
+#define DEF_BCOLOR "#666666" /* base */
+#define DEF_TCOLOR "#000000" /*"#00FF00"*/ /* table */
+
+#define DEF_FTEX "(none)"
+#define DEF_BTEX "(none)"
+#define DEF_TTEX "(none)"
+
+typedef struct metaball metaball;
+
+struct metaball {
+
+ Bool alive_p;
+ Bool static_p;
+
+ double r; /* hard radius */
+ double R; /* radius of field of influence */
+
+ double z; /* vertical position */
+ double pos_r; /* position on horizontal circle */
+ double pos_th; /* position on horizontal circle */
+ double dr, dz; /* current velocity */
+
+ double x, y; /* h planar position - compused from the above */
+
+ metaball *leader; /* stay close to this other ball */
+};
+
+
+typedef enum { CLASSIC = 0, GIANT, CONE, ROCKET } lamp_style;
+typedef enum { CAP = 100, BOTTLE, BASE } lamp_part;
+
+typedef struct {
+ lamp_part part;
+ GLfloat elevation;
+ GLfloat radius;
+ GLfloat texture_elevation;
+} lamp_geometry;
+
+static const lamp_geometry classic_lamp[] = {
+ { CAP, 1.16, 0.089, 0.00 },
+ { BOTTLE, 0.97, 0.120, 0.40 },
+ { BOTTLE, 0.13, 0.300, 0.87 },
+ { BOTTLE, 0.07, 0.300, 0.93 },
+ { BASE, 0.00, 0.280, 0.00 },
+ { BASE, -0.40, 0.120, 0.50 },
+ { BASE, -0.80, 0.280, 1.00 },
+ { 0, 0, 0, 0 },
+};
+
+static const lamp_geometry giant_lamp[] = {
+ { CAP, 1.12, 0.105, 0.00 },
+ { BOTTLE, 0.97, 0.130, 0.30 },
+ { BOTTLE, 0.20, 0.300, 0.87 },
+ { BOTTLE, 0.15, 0.300, 0.93 },
+ { BASE, 0.00, 0.230, 0.00 },
+ { BASE, -0.18, 0.140, 0.20 },
+ { BASE, -0.80, 0.280, 1.00 },
+ { 0, 0, 0, 0 },
+};
+
+static const lamp_geometry cone_lamp[] = {
+ { CAP, 1.35, 0.001, 0.00 },
+ { CAP, 1.35, 0.020, 0.00 },
+ { CAP, 1.30, 0.055, 0.05 },
+ { BOTTLE, 0.97, 0.120, 0.40 },
+ { BOTTLE, 0.13, 0.300, 0.87 },
+ { BASE, 0.00, 0.300, 0.00 },
+ { BASE, -0.04, 0.320, 0.04 },
+ { BASE, -0.60, 0.420, 0.50 },
+ { 0, 0, 0, 0 },
+};
+
+static const lamp_geometry rocket_lamp[] = {
+ { CAP, 1.35, 0.001, 0.00 },
+ { CAP, 1.34, 0.020, 0.00 },
+ { CAP, 1.30, 0.055, 0.05 },
+ { BOTTLE, 0.97, 0.120, 0.40 },
+ { BOTTLE, 0.13, 0.300, 0.87 },
+ { BOTTLE, 0.07, 0.300, 0.93 },
+ { BASE, 0.00, 0.280, 0.00 },
+ { BASE, -0.50, 0.180, 0.50 },
+ { BASE, -0.75, 0.080, 0.75 },
+ { BASE, -0.80, 0.035, 0.80 },
+ { BASE, -0.90, 0.035, 1.00 },
+ { 0, 0, 0, 0 },
+};
+
+
+
+typedef struct {
+ GLXContext *glx_context;
+ lamp_style style;
+ const lamp_geometry *model;
+ rotator *rot;
+ rotator *rot2;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLfloat max_bottle_radius; /* radius of widest part of the bottle */
+
+ GLfloat launch_chance; /* how often to percolate */
+ int blobs_per_group; /* how many metaballs we launch at once */
+ Bool just_started_p; /* so we launch some goo right away */
+
+ int grid_size; /* resolution for marching-cubes */
+ int nballs;
+ metaball *balls;
+
+ GLuint bottle_list;
+ GLuint ball_list;
+
+ int bottle_poly_count; /* polygons in the bottle only */
+
+} lavalite_configuration;
+
+static lavalite_configuration *bps = NULL;
+
+static char *do_spin;
+static char *do_style;
+static GLfloat speed;
+static Bool do_wander;
+static int resolution;
+static Bool do_smooth;
+static Bool do_impatient;
+
+static char *lava_color_str, *fluid_color_str, *base_color_str,
+ *table_color_str;
+static char *fluid_tex, *base_tex, *table_tex;
+
+static GLfloat lava_color[4], fluid_color[4], base_color[4], table_color[4];
+
+static const GLfloat lava_spec[4] = {1.0, 1.0, 1.0, 1.0};
+static const GLfloat lava_shininess = 128.0;
+static const GLfloat foot_color[4] = {0.2, 0.2, 0.2, 1.0};
+
+static const GLfloat light0_pos[4] = {-0.6, 0.0, 1.0, 0.0};
+static const GLfloat light1_pos[4] = { 1.0, 0.0, 0.2, 0.0};
+static const GLfloat light2_pos[4] = { 0.6, 0.0, 1.0, 0.0};
+
+
+
+static XrmOptionDescRec opts[] = {
+ { "-style", ".style", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-resolution", ".resolution", XrmoptionSepArg, 0 },
+ { "-smooth", ".smooth", XrmoptionNoArg, "True" },
+ { "+smooth", ".smooth", XrmoptionNoArg, "False" },
+ { "-impatient", ".impatient", XrmoptionNoArg, "True" },
+ { "+impatient", ".impatient", XrmoptionNoArg, "False" },
+
+ { "-lava-color", ".lavaColor", XrmoptionSepArg, 0 },
+ { "-fluid-color", ".fluidColor", XrmoptionSepArg, 0 },
+ { "-base-color", ".baseColor", XrmoptionSepArg, 0 },
+ { "-table-color", ".tableColor", XrmoptionSepArg, 0 },
+
+ { "-fluid-texture",".fluidTexture", XrmoptionSepArg, 0 },
+ { "-base-texture", ".baseTexture", XrmoptionSepArg, 0 },
+ { "-table-texture",".tableTexture", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_style, "style", "Style", DEF_STYLE, t_String},
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&resolution, "resolution", "Resolution", DEF_RESOLUTION, t_Int},
+ {&do_smooth, "smooth", "Smooth", DEF_SMOOTH, t_Bool},
+ {&do_impatient, "impatient", "Impatient", DEF_IMPATIENT, t_Bool},
+
+ {&lava_color_str, "lavaColor", "LavaColor", DEF_LCOLOR, t_String},
+ {&fluid_color_str, "fluidColor", "FluidColor", DEF_FCOLOR, t_String},
+ {&base_color_str, "baseColor", "BaseColor", DEF_BCOLOR, t_String},
+ {&table_color_str, "tableColor", "TableColor", DEF_TCOLOR, t_String},
+
+ {&fluid_tex, "fluidTexture", "FluidTexture", DEF_FTEX, t_String},
+ {&base_tex, "baseTexture", "BaseTexture", DEF_BTEX, t_String},
+ {&table_tex, "tableTexture", "BaseTexture", DEF_TTEX, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt lavalite_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_lavalite (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 3;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+
+/* Textures
+ */
+
+static Bool
+load_texture (ModeInfo *mi, const char *filename)
+{
+ Display *dpy = mi->dpy;
+ Visual *visual = mi->xgwa.visual;
+ char buf[1024];
+ XImage *image;
+
+ if (!filename ||
+ !*filename ||
+ !strcasecmp (filename, "(none)"))
+ {
+ glDisable (GL_TEXTURE_2D);
+ return False;
+ }
+
+ image = file_to_ximage (dpy, visual, filename);
+ if (!image) return False;
+
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ image->width, image->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, image->data);
+ sprintf (buf, "texture: %.100s (%dx%d)",
+ filename, image->width, image->height);
+ check_gl_error(buf);
+
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
+ glPixelStorei (GL_UNPACK_ROW_LENGTH, image->width);
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ glEnable (GL_TEXTURE_2D);
+ return True;
+}
+
+
+
+/* Generating the lamp's bottle, caps, and base.
+ */
+
+static int
+draw_disc (GLfloat r, GLfloat z, int faces, Bool up_p, Bool wire)
+{
+ int j;
+ GLfloat th;
+ GLfloat step = M_PI * 2 / faces;
+ int polys = 0;
+ GLfloat x, y;
+
+ glFrontFace (up_p ? GL_CW : GL_CCW);
+ glNormal3f (0, (up_p ? 1 : -1), 0);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+
+ x = r;
+ y = 0;
+
+ for (j = 0, th = 0; j <= faces; j++)
+ {
+ glTexCoord2f (-j / (GLfloat) faces, 1);
+ glVertex3f (0, z, 0);
+
+ glTexCoord2f (-j / (GLfloat) faces, 0);
+ glVertex3f (x, z, y);
+
+ th += step;
+ x = r * cos (th);
+ y = r * sin (th);
+
+ glTexCoord2f (-j / (GLfloat) faces, 0);
+ glVertex3f (x, z, y);
+
+ polys++;
+ }
+ glEnd();
+
+ return polys;
+}
+
+
+static int
+draw_tube (GLfloat r0, GLfloat r1,
+ GLfloat z0, GLfloat z1,
+ GLfloat t0, GLfloat t1,
+ int faces, Bool inside_out_p, Bool smooth_p, Bool wire)
+{
+ int polys = 0;
+ GLfloat th;
+ GLfloat x, y, x0=0, y0=0;
+ GLfloat step = M_PI * 2 / faces;
+ GLfloat s2 = step/2;
+ int i;
+
+ glFrontFace (inside_out_p ? GL_CW : GL_CCW);
+ glBegin (wire ? GL_LINES : (smooth_p ? GL_QUAD_STRIP : GL_QUADS));
+
+ th = 0;
+ x = 1;
+ y = 0;
+
+ if (!smooth_p)
+ {
+ x0 = cos (s2);
+ y0 = sin (s2);
+ }
+
+ if (smooth_p) faces++;
+
+ for (i = 0; i < faces; i++)
+ {
+ int nsign = (inside_out_p ? -1 : 1);
+
+ if (smooth_p)
+ glNormal3f (x * nsign, z1, y * nsign);
+ else
+ glNormal3f (x0 * nsign, z1, y0 * nsign);
+
+ glTexCoord2f (nsign * -i / (GLfloat) faces, 1-t1);
+ glVertex3f (x * r1, z1, y * r1);
+
+ glTexCoord2f (nsign * -i / (GLfloat) faces, 1-t0);
+ glVertex3f (x * r0, z0, y * r0);
+
+ th += step;
+ x = cos (th);
+ y = sin (th);
+
+ if (!smooth_p)
+ {
+ x0 = cos (th + s2);
+ y0 = sin (th + s2);
+
+ glTexCoord2f (nsign * -(i+1) / (double) faces, 1-t0);
+ glVertex3f (x * r0, z0, y * r0);
+
+ glTexCoord2f (nsign * -(i+1) / (double) faces, 1-t1);
+ glVertex3f (x * r1, z1, y * r1);
+ }
+
+ polys++;
+ }
+ glEnd();
+
+ return polys;
+}
+
+
+static int
+draw_table (GLfloat z, Bool wire)
+{
+ GLfloat faces = 6;
+ GLfloat step = M_PI * 2 / faces;
+ GLfloat s = 8;
+ GLfloat th;
+ int j;
+ int polys = 0;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, table_color);
+
+ glFrontFace(GL_CW);
+ glNormal3f(0, 1, 0);
+ glBegin(wire ? GL_LINE_LOOP : GL_TRIANGLE_FAN);
+
+ if (! wire)
+ {
+ glTexCoord2f (-0.5, 0.5);
+ glVertex3f(0, z, 0);
+ }
+
+ for (j = 0, th = 0; j <= faces; j++)
+ {
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+ glTexCoord2f (-(x+1)/2.0, (y+1)/2.0);
+ glVertex3f(x*s, z, y*s);
+ th += step;
+ polys++;
+ }
+ glEnd();
+ return polys;
+}
+
+
+static int
+draw_wing (GLfloat w, GLfloat h, GLfloat d, Bool wire)
+{
+ static const int coords[2][8][2] = {
+ { { 0, 0 },
+ { 10, 10 },
+ { 20, 23 },
+ { 30, 41 },
+ { 40, 64 },
+ { 45, 81 },
+ { 50, 103 },
+ { 53, 134 } },
+ { { 0, 54 },
+ { 10, 57 },
+ { 20, 64 },
+ { 30, 75 },
+ { 40, 92 },
+ { 45, 104 },
+ { 50, 127 },
+ { 51, 134 }
+ }
+ };
+
+ int polys = 0;
+ int maxx = coords[0][countof(coords[0])-1][0];
+ int maxy = coords[0][countof(coords[0])-1][1];
+ unsigned int x;
+
+ for (x = 1; x < countof(coords[0]); x++)
+ {
+ GLfloat px0 = (GLfloat) coords[0][x-1][0] / maxx * w;
+ GLfloat py0 = (GLfloat) coords[0][x-1][1] / maxy * h;
+ GLfloat px1 = (GLfloat) coords[1][x-1][0] / maxx * w;
+ GLfloat py1 = (GLfloat) coords[1][x-1][1] / maxy * h;
+ GLfloat px2 = (GLfloat) coords[0][x ][0] / maxx * w;
+ GLfloat py2 = (GLfloat) coords[0][x ][1] / maxy * h;
+ GLfloat px3 = (GLfloat) coords[1][x ][0] / maxx * w;
+ GLfloat py3 = (GLfloat) coords[1][x ][1] / maxy * h;
+ GLfloat zz = d/2;
+
+ /* Left side
+ */
+ glFrontFace (GL_CW);
+ glNormal3f (0, 0, -1);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+
+ glTexCoord2f (px0, py0); glVertex3f (px0, -py0, -zz);
+ glTexCoord2f (px1, py1); glVertex3f (px1, -py1, -zz);
+ glTexCoord2f (px3, py3); glVertex3f (px3, -py3, -zz);
+ glTexCoord2f (px2, py2); glVertex3f (px2, -py2, -zz);
+ polys++;
+ glEnd();
+
+ /* Right side
+ */
+ glFrontFace (GL_CCW);
+ glNormal3f (0, 0, -1);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(px0, py0); glVertex3f (px0, -py0, zz);
+ glTexCoord2f(px1, py1); glVertex3f (px1, -py1, zz);
+ glTexCoord2f(px3, py3); glVertex3f (px3, -py3, zz);
+ glTexCoord2f(px2, py2); glVertex3f (px2, -py2, zz);
+ polys++;
+ glEnd();
+
+ /* Top edge
+ */
+ glFrontFace (GL_CCW);
+ glNormal3f (1, -1, 0); /* #### wrong */
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(px0, py0); glVertex3f (px0, -py0, -zz);
+ glTexCoord2f(px0, py0); glVertex3f (px0, -py0, zz);
+ glTexCoord2f(px2, py2); glVertex3f (px2, -py2, zz);
+ glTexCoord2f(px2, py2); glVertex3f (px2, -py2, -zz);
+ polys++;
+ glEnd();
+
+ /* Bottom edge
+ */
+ glFrontFace (GL_CW);
+ glNormal3f (-1, 1, 0); /* #### wrong */
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f(px1, py1); glVertex3f (px1, -py1, -zz);
+ glTexCoord2f(px1, py1); glVertex3f (px1, -py1, zz);
+ glTexCoord2f(px3, py3); glVertex3f (px3, -py3, zz);
+ glTexCoord2f(px3, py3); glVertex3f (px3, -py3, -zz);
+ polys++;
+ glEnd();
+
+
+ }
+
+ return polys;
+
+}
+
+
+static void
+generate_bottle (ModeInfo *mi)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int faces = resolution * 1.5;
+ Bool smooth = do_smooth;
+
+ const lamp_geometry *top_slice = bp->model;
+ const char *current_texture = 0;
+ lamp_part last_part = 0;
+
+ if (faces < 3) faces = 3;
+ else if (wire && faces > 20) faces = 20;
+ else if (faces > 60) faces = 60;
+
+ bp->bottle_poly_count = 0;
+
+ glNewList (bp->bottle_list, GL_COMPILE);
+ glPushMatrix();
+
+ glRotatef (90, 1, 0, 0);
+ glTranslatef (0, -0.5, 0);
+
+ /* All parts of the lamp use the same specularity and shininess. */
+ glMaterialfv (GL_FRONT, GL_SPECULAR, lava_spec);
+ glMateriali (GL_FRONT, GL_SHININESS, lava_shininess);
+
+ while (1)
+ {
+ const lamp_geometry *bot_slice = top_slice + 1;
+
+ const char *texture = 0;
+ GLfloat *color = 0;
+ GLfloat t0, t1;
+
+ glDisable (GL_LIGHT2);
+
+ switch (top_slice->part)
+ {
+ case CAP:
+ case BASE:
+ texture = base_tex;
+ color = base_color;
+ break;
+ case BOTTLE:
+ texture = fluid_tex;
+ color = fluid_color;
+ if (!wire) glEnable (GL_LIGHT2); /* light2 affects only fluid */
+ break;
+ default:
+ abort();
+ break;
+ }
+
+ if (!wire && texture && texture != current_texture)
+ {
+ current_texture = texture;
+ load_texture (mi, current_texture);
+ }
+
+ /* Color the discs darker than the tube walls. */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, foot_color);
+
+ /* Do a top disc if this is the first slice of the CAP or BASE.
+ */
+ if ((top_slice->part == CAP && last_part == 0) ||
+ (top_slice->part == BASE && last_part == BOTTLE))
+ bp->bottle_poly_count +=
+ draw_disc (top_slice->radius, top_slice->elevation, faces,
+ True, wire);
+
+ /* Do a bottom disc if this is the last slice of the CAP or BASE.
+ */
+ if ((top_slice->part == CAP && bot_slice->part == BOTTLE) ||
+ (top_slice->part == BASE && bot_slice->part == 0))
+ {
+ const lamp_geometry *sl = (bot_slice->part == 0
+ ? top_slice : bot_slice);
+ bp->bottle_poly_count +=
+ draw_disc (sl->radius, sl->elevation, faces, False, wire);
+ }
+
+ if (bot_slice->part == 0) /* done! */
+ break;
+
+ /* Do a tube or cone
+ */
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+
+ t0 = top_slice->texture_elevation;
+ t1 = bot_slice->texture_elevation;
+
+ /* Restart the texture coordinates for the glass.
+ */
+ if (top_slice->part == BOTTLE)
+ {
+ Bool first_p = (top_slice[-1].part != BOTTLE);
+ Bool last_p = (bot_slice->part != BOTTLE);
+ if (first_p) t0 = 0;
+ if (last_p) t1 = 1;
+ }
+
+ bp->bottle_poly_count +=
+ draw_tube (top_slice->radius, bot_slice->radius,
+ top_slice->elevation, bot_slice->elevation,
+ t0, t1,
+ faces,
+ (top_slice->part == BOTTLE),
+ smooth, wire);
+
+ last_part = top_slice->part;
+ top_slice++;
+ }
+
+ if (bp->style == ROCKET)
+ {
+ int i;
+ for (i = 0; i < 3; i++)
+ {
+ glPushMatrix();
+ glRotatef (120 * i, 0, 1, 0);
+ glTranslatef (0.14, -0.05, 0);
+ bp->bottle_poly_count += draw_wing (0.4, 0.95, 0.02, wire);
+ glPopMatrix();
+ }
+ glTranslatef (0, -0.1, 0); /* move floor down a little */
+ }
+
+
+ if (!wire) load_texture (mi, table_tex);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, table_color);
+ bp->bottle_poly_count += draw_table (top_slice->elevation, wire);
+
+
+ glPopMatrix ();
+ glDisable (GL_TEXTURE_2D); /* done with textured objects */
+ glEndList ();
+}
+
+
+
+
+/* Generating blobbies
+ */
+
+static double
+bellrand (double extent) /* like frand(), but a bell curve. */
+{
+ return (((frand(extent) + frand(extent) + frand(extent)) / 3)
+ - (extent/2));
+}
+
+
+static void move_ball (ModeInfo *mi, metaball *b);
+
+/* Bring a ball into play, and re-randomize its values.
+ */
+static void
+reset_ball (ModeInfo *mi, metaball *b)
+{
+/* lavalite_configuration *bp = &bps[MI_SCREEN(mi)]; */
+
+ b->r = 0.00001;
+ b->R = 0.12 + bellrand(0.10);
+
+ b->pos_r = bellrand (0.9);
+ b->pos_th = frand(M_PI*2);
+ b->z = 0;
+
+ b->dr = bellrand(TILT);
+ b->dz = CONVECTION;
+
+ b->leader = 0;
+
+ if (!b->alive_p)
+ b->alive_p = True;
+
+ move_ball (mi, b);
+}
+
+
+/* returns the first metaball that is not in use, or 0.
+ */
+static metaball *
+get_ball (ModeInfo *mi)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < bp->nballs; i++)
+ {
+ metaball *b = &bp->balls[i];
+ if (!b->alive_p)
+ return b;
+ }
+ return 0;
+}
+
+
+/* Generate the blobs that don't move: the ones at teh top and bottom
+ that are part of the scenery.
+ */
+static void
+generate_static_blobs (ModeInfo *mi)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ metaball *b0, *b1;
+ int i;
+
+ b0 = get_ball (mi);
+ if (!b0) abort();
+ b0->static_p = True;
+ b0->alive_p = True;
+ b0->R = 0.6;
+ b0->r = 0.3;
+
+ /* the giant blob at the bottom of the bottle.
+ */
+ b0->pos_r = 0;
+ b0->pos_th = 0;
+ b0->dr = 0;
+ b0->dz = 0;
+ b0->x = 0;
+ b0->y = 0;
+ b0->z = -0.43;
+
+ /* the small blob at the top of the bottle.
+ */
+ b1 = get_ball (mi);
+ if (!b1) abort();
+
+ *b1 = *b0;
+ b1->R = 0.16;
+ b1->r = 0.135;
+ b1->z = 1.078;
+
+ /* Some extra blobs at the bottom of the bottle, to jumble the surface.
+ */
+ for (i = 0; i < bp->blobs_per_group; i++)
+ {
+ b1 = get_ball (mi);
+ if (!b1) abort();
+ reset_ball (mi, b1);
+ b1->static_p = True;
+ b1->z = frand(0.04);
+ b1->dr = 0;
+ b1->dz = 0;
+ }
+}
+
+
+static GLfloat
+max_bottle_radius (lavalite_configuration *bp)
+{
+ GLfloat r = 0;
+ const lamp_geometry *slice;
+ for (slice = bp->model; slice->part != 0; slice++)
+ {
+ if (slice->part == BOTTLE && slice->radius > r)
+ r = slice->radius; /* top */
+ if (slice[1].radius > r)
+ r = slice[1].radius; /* bottom */
+ }
+ return r;
+}
+
+
+static GLfloat
+bottle_radius_at (lavalite_configuration *bp, GLfloat z)
+{
+ GLfloat topz = -999, botz = -999, topr = 0, botr = 0;
+ const lamp_geometry *slice;
+ GLfloat ratio;
+
+ for (slice = bp->model; slice->part != 0; slice++)
+ if (z > slice->elevation)
+ {
+ slice--;
+ topz = slice->elevation;
+ topr = slice->radius;
+ break;
+ }
+ if (topz == -999) return 0;
+
+ for (; slice->part != 0; slice++)
+ if (z > slice->elevation)
+ {
+ botz = slice->elevation;
+ botr = slice->radius;
+ break;
+ }
+ if (botz == -999) return 0;
+
+ ratio = (z - botz) / (topz - botz);
+
+ return (botr + ((topr - botr) * ratio));
+}
+
+
+static void
+move_ball (ModeInfo *mi, metaball *b)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ double gravity = GRAVITY;
+ double real_r;
+
+ if (b->static_p) return;
+
+ b->pos_r += b->dr;
+ b->z += b->dz;
+
+ b->dz -= gravity;
+
+ if (b->pos_r > 0.9)
+ {
+ b->pos_r = 0.9;
+ b->dr = -b->dr;
+ }
+ else if (b->pos_r < 0)
+ {
+ b->pos_r = -b->pos_r;
+ b->dr = -b->dr;
+ }
+
+ real_r = b->pos_r * bottle_radius_at (bp, b->z);
+
+ b->x = cos (b->pos_th) * real_r;
+ b->y = sin (b->pos_th) * real_r;
+
+ if (b->z < -b->R) /* dropped below bottom of glass - turn it off */
+ b->alive_p = False;
+}
+
+
+/* This function makes sure that balls that are part of a group always stay
+ relatively close to each other.
+ */
+static void
+clamp_balls (ModeInfo *mi)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < bp->nballs; i++)
+ {
+ metaball *b = &bp->balls[i];
+ if (b->alive_p && b->leader)
+ {
+ double zslack = 0.1;
+ double minz = b->leader->z - zslack;
+ double maxz = b->leader->z + zslack;
+
+ /* Try to keep the Z values near those of the leader.
+ Don't let it go out of range (above or below) and clamp it
+ if it does. If we've clamped it, make sure dz will be
+ moving it in the right direction (back toward the leader.)
+
+ We aren't currently clamping r, only z -- doesn't seem to
+ be needed.
+
+ This is kind of flaky, I think. Sometimes you can see
+ the blobbies "twitch". That's no good.
+ */
+
+ if (b->z < minz)
+ {
+ if (b->dz < 0) b->dz = -b->dz;
+ b->z = minz - b->dz;
+ }
+
+ if (b->z > maxz)
+ {
+ if (b->dz > 0) b->dz = -b->dz;
+ b->z = maxz + b->dz;
+ }
+ }
+ }
+}
+
+
+static void
+move_balls (ModeInfo *mi) /* for great justice */
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ for (i = 0; i < bp->nballs; i++)
+ {
+ metaball *b = &bp->balls[i];
+ if (b->alive_p)
+ move_ball (mi, b);
+ }
+
+ clamp_balls (mi);
+}
+
+
+
+/* Rendering blobbies using marching cubes.
+ */
+
+static double
+compute_metaball_influence (lavalite_configuration *bp,
+ double x, double y, double z,
+ int nballs, metaball *balls)
+{
+ double vv = 0;
+ int i;
+
+ for (i = 0; i < nballs; i++)
+ {
+ metaball *b = &balls[i];
+ double dx, dy, dz;
+ double d2, r, R, r2, R2;
+
+ if (!b->alive_p) continue;
+
+ dx = x - b->x;
+ dy = y - b->y;
+ dz = z - b->z;
+ R = b->R;
+
+ if (dx > R || dx < -R || /* quick check before multiplying */
+ dy > R || dy < -R ||
+ dz > R || dz < -R)
+ continue;
+
+ d2 = (dx*dx + dy*dy + dz*dz);
+ r = b->r;
+
+ r2 = r*r;
+ R2 = R*R;
+
+ if (d2 <= r2) /* (d <= r) inside the hard radius */
+ vv += 1;
+ else if (d2 > R2) /* (d > R) outside the radius of influence */
+ ;
+ else /* somewhere in between: linear drop-off from r=1 to R=0 */
+ {
+ /* was: vv += 1 - ((d-r) / (R-r)); */
+ vv += 1 - ((d2-r2) / (R2-r2));
+ }
+ }
+
+ return vv;
+}
+
+
+/* callback for marching_cubes() */
+static void *
+obj_init (double grid_size, void *closure)
+{
+ lavalite_configuration *bp = (lavalite_configuration *) closure;
+ bp->grid_size = grid_size;
+
+ return closure;
+}
+
+
+/* Returns True if the given point is outside of the glass tube.
+ */
+static double
+clipped_by_glass_p (double x, double y, double z,
+ lavalite_configuration *bp)
+{
+ double d2, or, or2, ir2;
+
+ or = bp->max_bottle_radius;
+
+ if (x > or || x < -or || /* quick check before multiplying */
+ y > or || y < -or)
+ return 0;
+
+ d2 = (x*x + y*y);
+ or = bottle_radius_at (bp, z);
+
+ or2 = or*or;
+
+ if (d2 > or2) /* (sqrt(d) > or) */
+ return 0;
+
+ ir2 = or2 * 0.7;
+
+ if (d2 > ir2) /* (sqrt(d) > ir) */
+ {
+ double dr1 = or2;
+ double dr2 = ir2;
+ /* was: (1 - (d-ratio2) / (ratio1-ratio2)) */
+ return (1 - (d2-dr2) / (dr1-dr2));
+ }
+
+ return 1;
+}
+
+
+
+/* callback for marching_cubes() */
+static double
+obj_compute (double x, double y, double z, void *closure)
+{
+ lavalite_configuration *bp = (lavalite_configuration *) closure;
+ double clip;
+
+ x /= bp->grid_size; /* convert from 0-N to 0-1. */
+ y /= bp->grid_size;
+ z /= bp->grid_size;
+
+ x -= 0.5; /* X and Y range from -.5 to +.5; z ranges from 0-1. */
+ y -= 0.5;
+
+ clip = clipped_by_glass_p (x, y, z, bp);
+ if (clip == 0) return 0;
+
+ return (clip *
+ compute_metaball_influence (bp, x, y, z, bp->nballs, bp->balls));
+}
+
+
+/* callback for marching_cubes() */
+static void
+obj_free (void *closure)
+{
+}
+
+
+/* Send a new blob travelling upward.
+ This blob will actually be composed of N metaballs that are near
+ each other.
+ */
+static void
+launch_balls (ModeInfo *mi)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ metaball *b0 = get_ball (mi);
+ int i;
+
+ if (!b0) return;
+ reset_ball (mi, b0);
+
+ for (i = 0; i < bp->blobs_per_group; i++)
+ {
+ metaball *b1 = get_ball (mi);
+ if (!b1) break;
+ *b1 = *b0;
+
+ reset_ball (mi, b1);
+ b1->leader = b0;
+
+# define FROB(FIELD,AMT) \
+ b1->FIELD += (bellrand(AMT) * b0->FIELD)
+
+ /* FROB (pos_r, 0.7); */
+ /* FROB (pos_th, 0.7); */
+ FROB (dr, 0.8);
+ FROB (dz, 0.6);
+# undef FROB
+ }
+
+}
+
+
+static void
+animate_lava (ModeInfo *mi)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ Bool just_started_p = bp->just_started_p;
+
+ double isolevel = 0.3;
+
+ /* Maybe bubble a new blobby to the surface.
+ */
+ if (just_started_p ||
+ frand(1.0) < bp->launch_chance)
+ {
+ bp->just_started_p = False;
+ launch_balls (mi);
+
+ if (do_impatient && just_started_p)
+ while (1)
+ {
+ int i;
+ move_balls (mi);
+ for (i = 0; i < bp->nballs; i++)
+ {
+ metaball *b = &bp->balls[i];
+ if (b->alive_p && !b->static_p && !b->leader &&
+ b->z > 0.5)
+ goto DONE;
+ }
+ }
+ DONE: ;
+ }
+
+ move_balls (mi);
+
+ glNewList (bp->ball_list, GL_COMPILE);
+ glPushMatrix();
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, lava_spec);
+ glMateriali (GL_FRONT, GL_SHININESS, lava_shininess);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, lava_color);
+
+ /* For the blobbies, the origin is on the axis at the bottom of the
+ glass bottle; and the top of the bottle is +1 on Z.
+ */
+ glTranslatef (0, 0, -0.5);
+
+ mi->polygon_count = 0;
+ {
+ double s;
+ if (bp->grid_size == 0) bp->grid_size = 1; /* first time through */
+ s = 1.0/bp->grid_size;
+
+ glPushMatrix();
+ glTranslatef (-0.5, -0.5, 0);
+ glScalef (s, s, s);
+ marching_cubes (resolution, isolevel, wire, do_smooth,
+ obj_init, obj_compute, obj_free, bp,
+ &mi->polygon_count);
+ glPopMatrix();
+ }
+
+ mi->polygon_count += bp->bottle_poly_count;
+
+ glPopMatrix();
+ glEndList ();
+}
+
+
+
+/* Startup initialization
+ */
+
+ENTRYPOINT Bool
+lavalite_handle_event (ModeInfo *mi, XEvent *event)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+static void
+parse_color (ModeInfo *mi, const char *name, const char *s, GLfloat *a)
+{
+ XColor c;
+ a[3] = 1.0; /* alpha */
+
+ if (! XParseColor (MI_DISPLAY(mi), MI_COLORMAP(mi), s, &c))
+ {
+ fprintf (stderr, "%s: can't parse %s color %s", progname, name, s);
+ exit (1);
+ }
+ a[0] = c.red / 65536.0;
+ a[1] = c.green / 65536.0;
+ a[2] = c.blue / 65536.0;
+}
+
+
+ENTRYPOINT void
+init_lavalite (ModeInfo *mi)
+{
+ lavalite_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_lavalite (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ {
+ char *s = do_style;
+ if (!s || !*s || !strcasecmp (s, "classic")) bp->style = CLASSIC;
+ else if (!strcasecmp (s, "giant")) bp->style = GIANT;
+ else if (!strcasecmp (s, "cone")) bp->style = CONE;
+ else if (!strcasecmp (s, "rocket")) bp->style = ROCKET;
+ else if (!strcasecmp (s, "random"))
+ {
+ if (random() & 1) bp->style = CLASSIC; /* half the time */
+ else bp->style = (random() % ((int) ROCKET+1));
+ }
+ else
+ {
+ fprintf (stderr,
+ "%s: style must be Classic, Giant, Cone, or Rocket (not \"%s\")\n",
+ progname, s);
+ exit (1);
+ }
+ }
+
+ parse_color (mi, "lava", lava_color_str, lava_color);
+ parse_color (mi, "fluid", fluid_color_str, fluid_color);
+ parse_color (mi, "base", base_color_str, base_color);
+ parse_color (mi, "table", table_color_str, table_color);
+
+ if (!wire)
+ {
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc0[4] = {0.0, 1.0, 1.0, 1.0};
+ GLfloat spc1[4] = {1.0, 0.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_NORMALIZE);
+ glShadeModel(GL_SMOOTH);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc0);
+
+ glLightfv(GL_LIGHT1, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT1, GL_SPECULAR, spc1);
+
+ glLightfv(GL_LIGHT2, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT2, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT2, GL_SPECULAR, spc0);
+ }
+
+ {
+ Bool spinx=False, spiny=False, spinz=False;
+ double spin_speed = 0.4;
+ double wander_speed = 0.03;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') spinx = True;
+ else if (*s == 'y' || *s == 'Y') spiny = True;
+ else if (*s == 'z' || *s == 'Z') spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ bp->rot = make_rotator (spinx ? spin_speed : 0,
+ spiny ? spin_speed : 0,
+ spinz ? spin_speed : 0,
+ 1.0,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->rot2 = make_rotator (spin_speed, 0, 0,
+ 1, 0.1,
+ False);
+ bp->trackball = gltrackball_init (False);
+
+ /* Tilt the scene a bit: lean the normal lamps toward the viewer,
+ and the huge lamps away. */
+ gltrackball_reset (bp->trackball,
+ -0.3 + frand(0.6),
+ (bp->style == ROCKET || bp->style == GIANT
+ ? frand (0.2)
+ : -frand (0.6)));
+ }
+
+ switch (bp->style)
+ {
+ case CLASSIC: bp->model = classic_lamp; break;
+ case GIANT: bp->model = giant_lamp; break;
+ case CONE: bp->model = cone_lamp; break;
+ case ROCKET: bp->model = rocket_lamp; break;
+ default: abort(); break;
+ }
+
+ bp->max_bottle_radius = max_bottle_radius (bp);
+
+ bp->launch_chance = speed;
+ bp->blobs_per_group = BLOBS_PER_GROUP;
+ bp->just_started_p = True;
+
+ bp->nballs = (((MI_COUNT (mi) + 1) * bp->blobs_per_group)
+ + 2);
+ bp->balls = (metaball *) calloc (sizeof(*bp->balls), bp->nballs+1);
+
+ bp->bottle_list = glGenLists (1);
+ bp->ball_list = glGenLists (1);
+
+ generate_bottle (mi);
+ generate_static_blobs (mi);
+}
+
+
+/* Render one frame
+ */
+
+ENTRYPOINT void
+draw_lavalite (ModeInfo *mi)
+{
+ lavalite_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix ();
+
+ {
+ double cx, cy, cz; /* camera position, 0-1. */
+ double px, py, pz; /* object position, 0-1. */
+ double rx, ry, rz; /* object rotation, 0-1. */
+
+ get_position (bp->rot2, 0, &cy, &cz, !bp->button_down_p);
+ get_rotation (bp->rot2, &cx, 0, 0, !bp->button_down_p);
+
+ get_position (bp->rot, &px, &py, &pz, !bp->button_down_p);
+ get_rotation (bp->rot, &rx, &ry, &rz, !bp->button_down_p);
+
+#if 1
+ cx = 0.5;
+ cy = 0.5;
+ cz = 1.0;
+
+#else /* #### this crud doesn't really work yet */
+
+
+ /* We have c[xyz] parameters describing a camera position, but we don't
+ want to just map those to points in space: the lamp doesn't look very
+ good from the inside, or from underneath...
+
+ Good observation points form a ring around the lamp: basically, a
+ torus ringing the lamp, parallel to the lamp's floor.
+
+ We interpret cz as distance from the origin.
+ cy as elevation.
+ cx is then used as position in the torus (theta).
+ */
+
+ {
+ double cx2, cy2, cz2;
+ double d;
+
+ cx2 = 0.5;
+ cy2 = 0.5;
+ cz2 = 1.0;
+
+ cy2 = (cy * 0.4); /* cam elevation: 0.0 (table) - 0.4 up. */
+ d = 0.9 + cz; /* cam distance: 0.9 - 1.9. */
+
+ cz2 = 0.5 + (d * cos (cx * M_PI * 2));
+ cx2 = 0.5 + (d * sin (cx * M_PI * 2));
+
+
+ cx = cx2;
+ cy = cy2;
+ cz = cz2;
+ }
+#endif /* 0 */
+
+ glLoadIdentity();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ gluLookAt ((cx - 0.5) * 8, /* Position the camera */
+ (cy - 0.5) * 8,
+ (cz - 0.5) * 8,
+ 0, 0, 0,
+ 0, 1, 0);
+
+ gltrackball_rotate (bp->trackball); /* Apply mouse-based camera position */
+
+ glRotatef (-90, 1, 0, 0); /* Right side up */
+
+
+ /* Place the lights relative to the object, before the object has
+ been rotated or wandered within the scene. */
+ glLightfv(GL_LIGHT0, GL_POSITION, light0_pos);
+ glLightfv(GL_LIGHT1, GL_POSITION, light1_pos);
+ glLightfv(GL_LIGHT2, GL_POSITION, light2_pos);
+
+
+ /* Position the lamp in the scene according to the "wander" settings */
+ glTranslatef ((px - 0.5), (py - 0.5), (pz - 0.5));
+
+ /* Rotate the object according to the "spin" settings */
+ glRotatef (rx * 360, 1.0, 0.0, 0.0);
+ glRotatef (ry * 360, 0.0, 1.0, 0.0);
+ glRotatef (rz * 360, 0.0, 0.0, 1.0);
+
+ /* Move the lamp up slightly: make 0,0 be at its vertical center. */
+ switch (bp->style)
+ {
+ case CLASSIC: glTranslatef (0, 0, 0.33); break;
+ case GIANT: glTranslatef (0, 0, 0.33); break;
+ case CONE: glTranslatef (0, 0, 0.16); break;
+ case ROCKET: glTranslatef (0, 0, 0.30);
+ glScalef (0.85,0.85,0.85); break;
+ default: abort(); break;
+ }
+ }
+
+ animate_lava (mi);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glCallList (bp->bottle_list);
+ glCallList (bp->ball_list);
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Lavalite", lavalite)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/lavalite.man b/hacks/glx/lavalite.man
new file mode 100644
index 0000000..3d7aad5
--- /dev/null
+++ b/hacks/glx/lavalite.man
@@ -0,0 +1,160 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "18-May-2002" "X Version 11"
+.SH NAME
+lavalite - 3D OpenGL simulation of a Lavalite.
+.SH SYNOPSIS
+.B lavalite
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
+[\-style \fIstyle\fP ]
+[\-spin \fIxyz\fP ] [\-no-spin ]
+[\-speed \fIfloat\fP ]
+[\-resolution \fIinteger\fP ]
+[\-count \fIinteger\fP ]
+[\-no-smooth ]
+[\-wireframe ]
+[\-impatient ]
+[\-lava-color \fIcolor\fP ]
+[\-fluid-color \fIcolor\fP ]
+[\-base-color \fIcolor\fP ]
+[\-table-color \fIcolor\fP ]
+[\-fluid-texture \fIfilename\fP ]
+[\-base-texture \fIfilename\fP ]
+[\-table-texture \fIfilename\fP ]
+.SH DESCRIPTION
+The \fIlavalite\fP program displays a 3D simulation of the famous lamp
+of the same name. It requires a fast computer with fast OpenGL support.
+.SH OPTIONS
+.I lavalite
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-style \fIstyle\fP\fP
+Specify which model of lamp to draw. Available models
+are: \fBClassic\fP, \fBGiant\fP, \fBCone\fP, and \fBRocket\fP.
+Default: random.
+.TP 8
+.B \-spin \fIxyz\fP
+Around which axes the model should auto-spin. Defaults to "Z", meaning
+it rotates horizontally, but otherwise pitch or roll.
+.TP 8
+.B \-no-spin
+Same as \fB\-spin ''\fP.
+.TP 8
+.B \-speed \fIfloat\fP
+A number controlling the frequency at which new blobs launch: you can
+think of this as being related to the the heat of the lightbulb in
+the base. Default: 0.003.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between steps of the animation; default is 30000 (0.03 second.)
+.TP 8
+.B \-resolution \fIinteger\fP
+The size of the grid from which the mesh is created that is used
+to polygonize the blobs. higher values will give very smooth looking
+blobs, at the expense of speed. Default: 40.
+
+The options "-resolution 10 -no-smooth" look kind of interesting.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-count \fIinteger\fP
+The maximum number of blobs that can be in motion at once.
+Default: 3.
+.TP 8
+.B \-no-smooth
+Turn off smoothing: the objects in the scene will be facetted.
+.TP 8
+.B \-wireframe
+Render all objects in wireframe instead of as solids.
+.TP 8
+.B \-impatient
+Provide this option if you are. This will pre-warm the lamp, so when it
+starts up, the first frame will show a blob already halfway up the lamp.
+.TP 8
+.B \-lava-color \fIcolor\fP
+Specifies the color of the blobbies. Default: red.
+.TP 8
+.B \-fluid-color \fIcolor\fP
+Specifies the color of the fluid that the blobbies float in.
+Default: light blue.
+.TP 8
+.B \-base-color \fIcolor\fP
+Specifies the color of the lamp base, and the cap on top of the bottle.
+Default: very dark gray.
+.TP 8
+.B \-table-color \fIcolor\fP
+Specifies the color of the table that the lamp is sitting on.
+Default: black (meaning it is invisible.)
+.TP 8
+.B \-fluid-texture \fIfilename\fP
+An image file to wrap around the glass.
+
+Note that on most systems, GL textures must have dimensions that are a
+power of two.
+
+Note also that colors and textures are both applied: so, if you apply a
+texture and it isn't showing up, try specifying the corresponding color
+as "white". Otherwise, the combination of the two might be too dark to
+see.
+.TP 8
+.B \-base-texture \fIfilename\fP
+An image file to wrap around the base of the lamp, and the cap on top
+of the bottle.
+.TP 8
+.B \-table-texture \fItexture\fP
+An image file to spread across the table that the lamp is sitting on.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+ http://www.lavaworld.com/
+ http://www.lavarnd.org/
+.SH COPYRIGHT
+Copyright \(co 2002 by Jamie Zawinski.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+
+LAVA LITE\(rg and the configuration of the LAVA\(rg brand motion lamp
+are registered trademarks of Haggerty Enterprises, Inc. The
+configuration of the globe and base of the motion lamp are registered
+trademarks of Haggerty Enterprises, Inc. in the U.S.A. and in other
+countries around the world.
+
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>
diff --git a/hacks/glx/lockward.c b/hacks/glx/lockward.c
new file mode 100644
index 0000000..f15374b
--- /dev/null
+++ b/hacks/glx/lockward.c
@@ -0,0 +1,970 @@
+/*
+ * lockward.c: First attempt at an Xscreensaver.
+ *
+ * Leo L. Schwab 2007.08.17
+ ****
+ * Copyright (c) 2007 Leo L. Schwab
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to permit
+ * persons to whom the Software is furnished to do so, subject to the
+ * following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+ * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+#include <ctype.h>
+#include <strings.h>
+
+#include "xlockmore.h"
+#include "colors.h"
+
+
+/***************************************************************************
+ * #defines
+ */
+#ifdef USE_GL /* whole file */
+
+#define DEFAULTS "*delay: 20000 \n"\
+ "*showFPS: False \n"
+
+#define release_lockward 0
+
+
+#define NUMOF(x) (sizeof ((x)) / sizeof ((*x)))
+
+#define NBLADES 12
+#define NSPINNERS 4
+#define NRADII 8
+#define COLORIDX_SHF 4
+#define SUBDIV 6
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+
+/***************************************************************************
+ * Structure definitions.
+ */
+struct lockward_context; /* Forward declaration. */
+
+#define int8_t char
+#define int16_t short
+#define int32_t int
+#define uint8_t unsigned char
+#define uint16_t unsigned short
+#define uint32_t unsigned int
+
+typedef struct bladestate {
+ uint8_t outer, inner; /* Radii */
+} bladestate;
+
+typedef struct spinnerstate {
+ GLfloat rot; /* Terminal rotation after count expires */
+ GLfloat rotinc; /* Per-frame increment to rot. */
+ XColor *colors;
+ bladestate *bladeidx;
+ int ncolors; /* n.4 fixed-point */
+ int ccolor; /* n.4 fixed-point */
+ int colorinc; /* n.4 fixed-point */
+ int rotcount;
+ uint8_t nblades;
+} spinnerstate;
+
+typedef struct blinkstate {
+ int (*drawfunc) (struct lockward_context *ctx,
+ struct blinkstate *bs);
+ uint32_t *noise; /* For draw_blink_segment_scatter() */
+ GLfloat color[4];
+ uint32_t val;
+ int16_t dwell; /* <0: sharp >0: decay */
+ int16_t dwellcnt;
+ uint8_t type;
+ int8_t counter;
+ int8_t direction;
+ int8_t radius;
+} blinkstate;
+
+enum blinktype {
+ BTYPE_RADIAL_SINGLE = 0,
+ BTYPE_RADIAL_RANDOM,
+ BTYPE_RADIAL_SEQ,
+ BTYPE_RADIAL_DOUBLESEQ,
+ BTYPE_SEGMENT_SINGLE,
+ BTYPE_SEGMENT_RANDOM,
+ BTYPE_CONCENTRIC_SINGLE,
+ BTYPE_CONCENTRIC_RANDOM,
+ BTYPE_CONCENTRIC_SEQ,
+ BTYPE_SEGMENT_SCATTER,
+ MAX_BTYPE
+};
+
+typedef struct { GLfloat x,y,z; } XYZ;
+
+typedef struct lockward_context {
+ GLXContext *glx_context;
+
+ spinnerstate spinners[NSPINNERS];
+ blinkstate blink;
+
+ /* This used to put vertexes into lists without putting begin/end
+ into the same list! I didn't even know that worked. Well, it
+ doesn't work with jwzgles, so I changed it to not do that. */
+ /* GLuint blades_outer, blades_inner; */
+ XYZ points_outer[NRADII][SUBDIV+1];
+ XYZ points_inner[NRADII][SUBDIV+1];
+
+ GLuint rings;
+ Bool blendmode;
+ int nextblink;
+ int fps;
+
+} lockward_context;
+
+
+/***************************************************************************
+ * Prototypes.
+ */
+ENTRYPOINT void free_lockward (ModeInfo *mi);
+
+
+/***************************************************************************
+ * Global variables.
+ */
+static lockward_context *g_ctx = NULL;
+static Bool g_blink_p = True;
+static int g_blades = NBLADES;
+static int g_rotateidle_min,
+ g_rotateidle_max;
+static int g_blinkidle_min,
+ g_blinkidle_max;
+static int g_blinkdwell_min,
+ g_blinkdwell_max;
+
+#define DEF_BLINK "True"
+#define DEF_ROTATEIDLEMIN "1000"
+#define DEF_ROTATEIDLEMAX "6000"
+#define DEF_BLINKIDLEMIN "1000"
+#define DEF_BLINKIDLEMAX "9000"
+#define DEF_BLINKDWELLMIN "100"
+#define DEF_BLINKDWELLMAX "600"
+
+
+static XrmOptionDescRec opts[] = {
+ { "-blink", ".blink", XrmoptionNoArg, "on" },
+ { "+blink", ".blink", XrmoptionNoArg, "off" },
+ { "-rotateidle-min", ".rotateidlemin", XrmoptionSepArg, 0 },
+ { "-rotateidle-max", ".rotateidlemax", XrmoptionSepArg, 0 },
+ { "-blinkidle-min", ".blinkidlemin", XrmoptionSepArg, 0 },
+ { "-blinkidle-max", ".blinkidlemax", XrmoptionSepArg, 0 },
+ { "-blinkdwell-min", ".blinkdwellmin", XrmoptionSepArg, 0 },
+ { "-blinkdwell-max", ".blinkdwellmax", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ { &g_blink_p, "blink", "Blink", DEF_BLINK, t_Bool },
+ { &g_rotateidle_min, "rotateidlemin", "Rotateidlemin", DEF_ROTATEIDLEMIN, t_Int },
+ { &g_rotateidle_max, "rotateidlemax", "Rotateidlemax", DEF_ROTATEIDLEMAX, t_Int },
+ { &g_blinkidle_min, "blinkidlemin", "Blinkidlemin", DEF_BLINKIDLEMIN, t_Int },
+ { &g_blinkidle_max, "blinkidlemax", "Blinkidlemax", DEF_BLINKIDLEMAX, t_Int },
+ { &g_blinkdwell_min, "blinkdwellmin", "Blinkdwellmin", DEF_BLINKDWELLMIN, t_Int },
+ { &g_blinkdwell_max, "blinkdwellmax", "Blinkdwellmax", DEF_BLINKDWELLMAX, t_Int },
+};
+
+static OptionStruct desc[] = {
+ { "-/+blink", "Turn on/off blinking effects." },
+ { "-rotateidle-min", "Minimum idle time for rotators, in milliseconds." },
+ { "-rotateidle-max", "Maximum idle time for rotators, in milliseconds." },
+ { "-blinkidle-min", "Minimum idle time between blink effects, in milliseconds." },
+ { "-blinkidle-max", "Maximum idle time between blink effects, in milliseconds." },
+ { "-blinkdwell-min", "Minimum dwell time for blink effects, in milliseconds." },
+ { "-blinkdwell-max", "Maximum dwell time for blink effects, in milliseconds." },
+};
+
+ENTRYPOINT ModeSpecOpt lockward_opts = {
+ NUMOF(opts), opts, NUMOF(vars), vars, desc
+};
+
+
+/***************************************************************************
+ * Window management.
+ */
+ENTRYPOINT void
+reshape_lockward (ModeInfo *mi, int width, int height)
+{
+ lockward_context *ctx = &g_ctx[MI_SCREEN (mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glXMakeCurrent (MI_DISPLAY (mi), MI_WINDOW (mi),
+ *(ctx->glx_context));
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ if (height > width)
+ glOrtho (-8.0, 8.0, -8.0 * h, 8.0 * h, -1, 1);
+ else
+ glOrtho (-8.0 / h, 8.0 / h, -8.0, 8.0, -1, 1);
+
+ glMatrixMode (GL_MODELVIEW);
+}
+
+ENTRYPOINT Bool
+lockward_handle_event (ModeInfo *mi, XEvent *event)
+{
+ lockward_context *ctx = &g_ctx[MI_SCREEN (mi)];
+
+ if (event->xany.type == KeyPress) {
+ KeySym keysym;
+ char c = 0;
+
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t') {
+ ctx->blendmode ^= 1;
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+/***************************************************************************
+ * "Blade" routines.
+ */
+static void
+random_blade_rot (lockward_context *ctx, struct spinnerstate *ss)
+{
+ /*
+ * The circle is divided up in to g_blades divisions. The idea here
+ * is to rotate to an exact division point.
+ *
+ * The target rotation is computed via random numbers.
+ *
+ * The time it takes to get there is a maximum of six seconds per
+ * division, and a minimum of one second (no matter how far away it
+ * is), and is selected by random numbers.
+ *
+ * The time value is converted into frames, and a per-frame rotation
+ * is computed.
+ *
+ * During rendering, we approach the target rotation by subtracting
+ * from it the per-frame rotation times the number of outstanding
+ * ticks. Doing it this way means we'll hit the target rotation
+ * exactly, without low-order errors creeping in to the values (at
+ * least not nearly as quickly).
+ */
+ GLfloat d;
+ int dist;
+
+ dist = random() % g_blades + 1;
+
+ ss->rotcount = random() % (6 * dist * ctx->fps - ctx->fps)
+ + ctx->fps;
+
+ if (random() & 4)
+ dist = -dist;
+ d = dist * 360.0 / (GLfloat) g_blades;
+ ss->rot += d;
+ ss->rotinc = d / (GLfloat) ss->rotcount;
+}
+
+
+/*
+ * A "blade" is pie-wedge shaped flat thing that is rotated around where the
+ * apex is/would be. Initially envisioned as 1/12th of a circle, but that
+ * could be configurable. The inner and outer edges are rounded off using
+ * six subdivisions so that, when multiple blades are assembled, it looks
+ * more like a circle and less like a polygon.
+ *
+ * The blade is assembled as a tri-fan. It is oriented centered at 3
+ * o'clock. The blade is composed of two display lists -- arcs, essentially
+ * -- the outer and the inner one. The outer one *must* be called before
+ * the inner one, or the blade clockwise-ness will be wrong, and become
+ * invisible. Arcs of various radii are compiled.
+ */
+
+static void
+gen_blade_arcs (lockward_context *ctx)
+{
+ GLfloat here, there, step;
+ int i, n;
+
+ here = 0;
+ there = M_PI * 2.0 / g_blades;
+ step = there / SUBDIV;
+ here -= SUBDIV * step / 2.0;
+
+ /*
+ * Build outer blade arcs.
+ * Start at left side of outer radius. Strike all its vertices.
+ */
+ for (n = 0; n < NRADII; ++n) {
+ /* glNewList (ctx->blades_outer + n, GL_COMPILE); */
+ XYZ *a = ctx->points_outer[n];
+ int j = 0;
+ for (i = SUBDIV; i >= 0; --i) {
+ /* glVertex3f (cos (here + step * i) * (n + 1.0),
+ sin (here + step * i) * (n + 1.0), 0); */
+ a[j].x = cos (here + step * i) * (n + 1.0);
+ a[j].y = sin (here + step * i) * (n + 1.0);
+ a[j].z = 0;
+ j++;
+ }
+ if (j != SUBDIV+1) abort();
+ /* glEndList (); */
+ }
+
+ /*
+ * Build inner blade arcs.
+ * Move to inner radius, strike all vertices in opposite order.
+ */
+ for (n = 0; n < NRADII; ++n) {
+ /* glNewList (ctx->blades_inner + n, GL_COMPILE); */
+ XYZ *a = ctx->points_inner[n];
+ int j = 0;
+ for (i = 0; i <= SUBDIV; ++i) {
+ /* glVertex3f (cos (here + step * i) * (n + 1.0),
+ sin (here + step * i) * (n + 1.0), 0); */
+ a[j].x = cos (here + step * i) * (n + 1.0);
+ a[j].y = sin (here + step * i) * (n + 1.0);
+ a[j].z = 0;
+ j++;
+ }
+ if (j != SUBDIV+1) abort();
+ /* glEndList (); */
+ }
+}
+
+static void
+gen_rings (lockward_context *ctx)
+{
+ GLfloat step;
+ int i, n;
+
+ step = M_PI * 2.0 / (g_blades * SUBDIV);
+
+ for (n = 0; n < NRADII - 1; ++n) {
+ glNewList (ctx->rings + n, GL_COMPILE);
+ glBegin (GL_TRIANGLE_STRIP);
+ for (i = g_blades * SUBDIV; i >= 0; --i) {
+ glVertex3f (cos (step * i) * (n + 1.0),
+ sin (step * i) * (n + 1.0), 0);
+ glVertex3f (cos (step * i) * (n + 2.0),
+ sin (step * i) * (n + 2.0), 0);
+ }
+ glEnd();
+ glEndList ();
+ }
+}
+
+
+/***************************************************************************
+ * "Blink" routines.
+ */
+static int
+calc_interval_frames (lockward_context *ctx, int min, int max)
+{
+ /*
+ * Compute random interval between min and max milliseconds.
+ * Returned value is in frames.
+ */
+ register int i;
+
+ i = min;
+ if (max > min)
+ i += random() % (max - min);
+
+ return i * ctx->fps / 1000;
+}
+
+static void
+set_alpha_by_dwell (struct blinkstate *bs)
+{
+ if (bs->dwell > 0)
+ bs->color[3] = (GLfloat) bs->dwellcnt / (GLfloat) bs->dwell;
+ else
+ bs->color[3] = bs->dwellcnt > (-bs->dwell >> 2) ? 1.0 : 0.0;
+}
+
+
+static void
+draw_blink_blade (lockward_context *ctx, int inner, int outer,
+ Bool begin_p)
+{
+ int i;
+ if (begin_p) glBegin (GL_TRIANGLE_FAN);
+ /* glCallList (ctx->blades_outer + outer); */
+ for (i = 0; i < countof(*ctx->points_outer); i++)
+ glVertex3f(ctx->points_outer[outer][i].x,
+ ctx->points_outer[outer][i].y,
+ ctx->points_outer[outer][i].z);
+
+ /* glCallList (ctx->blades_inner + inner); */
+ for (i = 0; i < countof(*ctx->points_inner); i++)
+ glVertex3f(ctx->points_inner[inner][i].x,
+ ctx->points_inner[inner][i].y,
+ ctx->points_inner[inner][i].z);
+ if (begin_p) glEnd();
+}
+
+static int
+draw_blink_radial_random (lockward_context *ctx, struct blinkstate *bs)
+{
+ int i;
+
+ /*
+ * There is no sense of direction in a random sweep, so re-use the
+ * 'direction' field to hold the current blade we're messing with.
+ */
+ if (bs->dwellcnt < 0) {
+ if (bs->counter <= 0) {
+ bs->drawfunc = NULL;
+ return 0;
+ }
+
+ /*
+ * Find available blade. Potentially very slow, depending on
+ * how unlucky we are.
+ */
+ do {
+ i = random() % g_blades;
+ } while (bs->val & (1 << i));
+ bs->val |= (1 << i); /* Mark as used. */
+ bs->direction = i;
+ if ((bs->dwellcnt = bs->dwell) < 0)
+ bs->dwellcnt = -bs->dwellcnt;
+
+ if ( bs->type == BTYPE_SEGMENT_SINGLE
+ || bs->type == BTYPE_SEGMENT_RANDOM)
+ bs->radius = random() % (NRADII - 1);
+
+ --bs->counter;
+ }
+
+ set_alpha_by_dwell (bs);
+ glBlendFunc (GL_DST_COLOR, GL_SRC_ALPHA);
+ glColor4fv (bs->color);
+ glRotatef (bs->direction * 360.0 / (GLfloat) g_blades, 0, 0, 1);
+ if (bs->radius >= 0)
+ draw_blink_blade (ctx, bs->radius, bs->radius + 1, True);
+ else
+ draw_blink_blade (ctx, 0, NRADII - 1, True);
+
+ --bs->dwellcnt;
+
+ return SUBDIV + SUBDIV;
+}
+
+static int
+draw_blink_radial_sequential (lockward_context *ctx, struct blinkstate *bs)
+{
+ if (bs->dwellcnt < 0) {
+ if (bs->counter <= 0) {
+ bs->drawfunc = NULL;
+ return 0;
+ }
+ if ((bs->dwellcnt = bs->dwell) < 0)
+ bs->dwellcnt = -bs->dwellcnt;
+ --bs->counter;
+ }
+
+ set_alpha_by_dwell (bs);
+ glBlendFunc (GL_DST_COLOR, GL_SRC_ALPHA);
+ glColor4fv (bs->color);
+ glRotatef ((bs->counter * bs->direction + (int) bs->val)
+ * 360.0 / (GLfloat) g_blades,
+ 0, 0, 1);
+ draw_blink_blade (ctx, 0, NRADII - 1, True);
+
+ --bs->dwellcnt;
+
+ return SUBDIV + SUBDIV;
+}
+
+static int
+draw_blink_radial_doubleseq (lockward_context *ctx, struct blinkstate *bs)
+{
+ int polys;
+
+ if (bs->dwellcnt < 0) {
+ if (bs->counter <= 0) {
+ bs->drawfunc = NULL;
+ return 0;
+ }
+ if ((bs->dwellcnt = bs->dwell) < 0)
+ bs->dwellcnt = -bs->dwellcnt;
+ --bs->counter;
+ }
+
+ set_alpha_by_dwell (bs);
+ glBlendFunc (GL_DST_COLOR, GL_SRC_ALPHA);
+ glColor4fv (bs->color);
+
+ glPushMatrix ();
+ glRotatef (((int) bs->val + bs->counter) * 360.0 / (GLfloat) g_blades,
+ 0, 0, 1);
+ draw_blink_blade (ctx, 0, NRADII - 1, True);
+ glPopMatrix ();
+ polys = SUBDIV + SUBDIV;
+
+ if (bs->counter && bs->counter < g_blades / 2) {
+ glRotatef (((int) bs->val - bs->counter)
+ * 360.0 / (GLfloat) g_blades,
+ 0, 0, 1);
+ draw_blink_blade (ctx, 0, NRADII - 1, True);
+ polys += SUBDIV + SUBDIV;
+ }
+
+ --bs->dwellcnt;
+
+ return polys;
+}
+
+static int
+draw_blink_concentric_random (lockward_context *ctx, struct blinkstate *bs)
+{
+ int i;
+
+ if (bs->dwellcnt < 0) {
+ if (bs->counter <= 0) {
+ bs->drawfunc = NULL;
+ return 0;
+ }
+
+ do {
+ i = random() % (NRADII - 1);
+ } while (bs->val & (1 << i));
+ bs->val |= (1 << i);
+ bs->direction = i;
+ if ((bs->dwellcnt = bs->dwell) < 0)
+ bs->dwellcnt = -bs->dwellcnt;
+
+ --bs->counter;
+ }
+
+ set_alpha_by_dwell (bs);
+ glBlendFunc (GL_DST_COLOR, GL_SRC_ALPHA);
+ glColor4fv (bs->color);
+ glCallList (ctx->rings + bs->direction);
+
+ --bs->dwellcnt;
+
+ return g_blades * SUBDIV * 2;
+}
+
+static int
+draw_blink_concentric_sequential (lockward_context *ctx, struct blinkstate *bs)
+{
+ if (bs->dwellcnt < 0) {
+ if (bs->counter <= 0) {
+ bs->drawfunc = NULL;
+ return 0;
+ }
+ if ((bs->dwellcnt = bs->dwell) < 0)
+ bs->dwellcnt = -bs->dwellcnt;
+ --bs->counter;
+ }
+
+ set_alpha_by_dwell (bs);
+ glBlendFunc (GL_DST_COLOR, GL_SRC_ALPHA);
+ glColor4fv (bs->color);
+ if (bs->direction > 0)
+ glCallList (ctx->rings + (NRADII - 2) - bs->counter);
+ else
+ glCallList (ctx->rings + bs->counter);
+
+ --bs->dwellcnt;
+
+ return g_blades * SUBDIV * 2;
+}
+
+static int
+draw_blink_segment_scatter (lockward_context *ctx, struct blinkstate *bs)
+{
+ int i, polys = 0;
+
+ if (bs->dwellcnt < 0) {
+ if (bs->counter <= 0) {
+ bs->drawfunc = NULL;
+ return 0;
+ }
+
+ /*
+ * Init random noise array. On average, 1/4 of the bits will
+ * be set, which should look nice. (1/2 looks too busy.)
+ */
+ for (i = g_blades; --i >= 0; )
+ bs->noise[i] = random() & random()
+ & ((1 << (NRADII - 1)) - 1);
+
+ if ((bs->dwellcnt = bs->dwell) < 0)
+ bs->dwellcnt = -bs->dwellcnt;
+ --bs->counter;
+ }
+
+ set_alpha_by_dwell (bs);
+ glBlendFunc (GL_DST_COLOR, GL_SRC_ALPHA);
+ glColor4fv (bs->color);
+
+ for (i = g_blades; --i >= 0; ) {
+ register uint32_t bits;
+ int inner, outer;
+
+ /*
+ * Find consecutive runs of 1 bits. Keep going until we run
+ * out of them.
+ */
+ for (bits = bs->noise[i]; bits; ) {
+ inner = ffs (bits) - 1;
+ bits = ~bits & ~((1 << inner) - 1);
+ outer = ffs (bits) - 1;
+ bits = ~bits & ~((1 << outer) - 1);
+
+ glPushMatrix ();
+ glRotatef (i * 360.0 / (GLfloat) g_blades, 0, 0, 1);
+ draw_blink_blade (ctx, inner, outer, True);
+ glPopMatrix ();
+
+ polys += SUBDIV + SUBDIV;
+ }
+ }
+
+ --bs->dwellcnt;
+
+ return polys;
+}
+
+static void
+random_blink (lockward_context *ctx, struct blinkstate *bs)
+{
+ bs->color[0] =
+ bs->color[1] =
+ bs->color[2] =
+ bs->color[3] = 1.0;
+ bs->dwellcnt = -1;
+ bs->radius = -1;
+ bs->dwell = calc_interval_frames
+ (ctx, g_blinkdwell_min, g_blinkdwell_max);
+ if (random() & 2)
+ bs->dwell = -bs->dwell;
+
+ bs->type = random() % MAX_BTYPE;
+
+ switch (bs->type) {
+ case BTYPE_RADIAL_SINGLE:
+ case BTYPE_SEGMENT_SINGLE:
+ bs->drawfunc = draw_blink_radial_random;
+ bs->val = 0;
+ bs->counter = 1;
+ break;
+ case BTYPE_RADIAL_RANDOM:
+ case BTYPE_SEGMENT_RANDOM:
+ bs->drawfunc = draw_blink_radial_random;
+ bs->val = 0;
+ bs->counter = g_blades;
+ break;
+ case BTYPE_RADIAL_SEQ:
+ bs->drawfunc = draw_blink_radial_sequential;
+ bs->val = random() % g_blades; /* Initial offset */
+ bs->direction = random() & 8 ? 1 : -1;
+ bs->counter = g_blades;
+ break;
+ case BTYPE_RADIAL_DOUBLESEQ:
+ bs->drawfunc = draw_blink_radial_doubleseq;
+ bs->val = random() % g_blades; /* Initial offset */
+ bs->counter = g_blades / 2 + 1;
+ break;
+ case BTYPE_CONCENTRIC_SINGLE:
+ bs->drawfunc = draw_blink_concentric_random;
+ bs->val = 0;
+ bs->counter = 1;
+ break;
+ case BTYPE_CONCENTRIC_RANDOM:
+ bs->drawfunc = draw_blink_concentric_random;
+ bs->val = 0;
+ bs->counter = NRADII - 1;
+ break;
+ case BTYPE_CONCENTRIC_SEQ:
+ bs->drawfunc = draw_blink_concentric_sequential;
+ bs->direction = random() & 8 ? 1 : -1;
+ bs->counter = NRADII - 1;
+ break;
+ case BTYPE_SEGMENT_SCATTER:
+ bs->drawfunc = draw_blink_segment_scatter;
+ bs->counter = random() % (g_blades / 2) + (g_blades / 2) + 1;
+ break;
+ }
+}
+
+
+/***************************************************************************
+ * Main rendering routine.
+ */
+ENTRYPOINT void
+draw_lockward (ModeInfo *mi)
+{
+ lockward_context *ctx = &g_ctx[MI_SCREEN (mi)];
+ spinnerstate *ss;
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i, n;
+
+ GLfloat scolor[4] = {0.0, 0.0, 0.0, 0.5};
+
+ if (!ctx->glx_context)
+ return;
+
+ glXMakeCurrent (MI_DISPLAY (mi), MI_WINDOW (mi), *(ctx->glx_context));
+
+
+ glClear (GL_COLOR_BUFFER_BIT);
+
+ if (ctx->blendmode)
+ glBlendFunc (GL_ONE, GL_ONE);
+ else
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glPushMatrix ();
+ glLoadIdentity ();
+
+ mi->polygon_count = 0;
+
+ for (n = NSPINNERS; --n >= 0; ) {
+ ss = &ctx->spinners[n];
+
+ /* Set color. */
+ i = ss->ccolor >> COLORIDX_SHF;
+ scolor[0] = ss->colors[i].red / 65535.0;
+ scolor[1] = ss->colors[i].green / 65535.0;
+ scolor[2] = ss->colors[i].blue / 65535.0;
+ glColor4fv (scolor);
+
+ glPushMatrix ();
+ glRotatef (ss->rot - ss->rotcount * ss->rotinc, 0, 0, 1);
+ for (i = ss->nblades; --i >= 0; ) {
+ glPushMatrix ();
+ glRotatef (360.0 * i / ss->nblades, 0, 0, 1);
+
+ glBegin (GL_TRIANGLE_FAN);
+ /* glCallList (ctx->blades_outer + ss->bladeidx[i].outer); */
+ /* glCallList (ctx->blades_inner + ss->bladeidx[i].inner); */
+ draw_blink_blade (ctx,
+ ss->bladeidx[i].inner,
+ ss->bladeidx[i].outer,
+ False);
+ glEnd ();
+
+ glPopMatrix ();
+ mi->polygon_count += SUBDIV + SUBDIV;
+ }
+ glPopMatrix ();
+
+ /* Advance rotation. */
+ if (ss->rotcount) {
+ if (ss->rotcount > 0)
+ --ss->rotcount;
+ } else {
+ if (ss->rotinc == 0.0)
+ random_blade_rot (ctx, ss);
+ else {
+ /* Compute # of ticks to sit idle. */
+ ss->rotinc = 0.0;
+ ss->rotcount =
+ calc_interval_frames (ctx,
+ g_rotateidle_min,
+ g_rotateidle_max);
+ }
+ }
+
+ /* Advance colors. */
+ if ((ss->ccolor += ss->colorinc) >= ss->ncolors)
+ ss->ccolor -= ss->ncolors;
+ else if (ss->ccolor < 0)
+ ss->ccolor += ss->ncolors;
+ }
+
+ if (g_blink_p) {
+ if (ctx->blink.drawfunc) {
+ mi->polygon_count +=
+ ctx->blink.drawfunc (ctx, &ctx->blink);
+ } else {
+ if (ctx->nextblink > 0)
+ --ctx->nextblink;
+ else {
+ /* Compute # of frames for blink idle time. */
+ ctx->nextblink =
+ calc_interval_frames (ctx,
+ g_blinkidle_min,
+ g_blinkidle_max);
+ random_blink (ctx, &ctx->blink);
+ }
+ }
+ }
+ glPopMatrix ();
+
+ if (MI_IS_FPS (mi)) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers (dpy, window);
+}
+
+
+/***************************************************************************
+ * Initialization/teardown.
+ */
+ENTRYPOINT void
+init_lockward (ModeInfo *mi)
+{
+ lockward_context *ctx;
+ int i, n;
+
+ MI_INIT (mi, g_ctx);
+ ctx = &g_ctx[MI_SCREEN (mi)];
+
+ ctx->glx_context = init_GL (mi);
+
+ reshape_lockward (mi, MI_WIDTH (mi), MI_HEIGHT (mi));
+
+ glEnable (GL_CULL_FACE);
+ glEnable (GL_BLEND);
+ glDisable (GL_DEPTH_TEST);
+
+ glShadeModel (GL_FLAT);
+ glFrontFace (GL_CW);
+
+ /* ctx->blades_outer = glGenLists (NRADII); */
+ /* ctx->blades_inner = glGenLists (NRADII); */
+ ctx->rings = glGenLists (NRADII - 1);
+ ctx->blendmode = 0;
+/* WTF? ctx->fps = 1000000 / MI_DELAY (mi); */
+ ctx->fps = 60;
+ ctx->nextblink = calc_interval_frames
+ (ctx, g_blinkidle_min, g_blinkidle_max);
+ ctx->blink.drawfunc = NULL;
+ ctx->blink.noise = malloc (sizeof (uint32_t) * g_blades);
+ if (!ctx->blink.noise) {
+ fprintf (stderr, "Can't allocate noise array.\n");
+ exit (1);
+ }
+
+ gen_blade_arcs (ctx);
+ gen_rings (ctx);
+
+ for (i = NSPINNERS; --i >= 0; ) {
+ spinnerstate *ss = &ctx->spinners[i];
+
+ ss->rot = 0.0;
+ ss->rotcount = -1;
+
+ /* Establish rotation */
+ random_blade_rot (ctx, ss);
+
+ /*
+ * Establish color cycling path and rate. Rate avoids zero.
+ */
+ ss->ncolors = 128;
+ ss->colorinc = (random() & ((2 << COLORIDX_SHF) - 1))
+ - (1 << COLORIDX_SHF);
+ if (ss->colorinc >= 0)
+ ++ss->colorinc;
+
+ ss->colors = (XColor *) calloc (ss->ncolors, sizeof (XColor));
+ if (!ss->colors) {
+ fprintf (stderr,
+ "Can't allocate XColors for spinner %d.\n",
+ i);
+ exit (1);
+ }
+ make_smooth_colormap (0, 0, 0,
+ ss->colors, &ss->ncolors,
+ False, 0, False);
+ ss->ncolors <<= COLORIDX_SHF;
+
+ /*
+ * Create blades.
+ */
+ ss->nblades = g_blades;
+ ss->bladeidx = malloc (sizeof (bladestate) * g_blades);
+ if (!ss->bladeidx) {
+ fprintf (stderr, "Can't allocate blades.\n");
+ exit (1);
+ }
+ for (n = g_blades; --n >= 0; ) {
+ /*
+ * Establish blade radii. Can't be equal. Ensure
+ * outer > inner.
+ */
+ do {
+ ss->bladeidx[n].outer = random() & 7;
+ ss->bladeidx[n].inner = random() & 7;
+ } while (ss->bladeidx[n].outer ==
+ ss->bladeidx[n].inner);
+
+ if (ss->bladeidx[n].outer < ss->bladeidx[n].inner) {
+ uint8_t tmp;
+
+ tmp = ss->bladeidx[n].outer;
+ ss->bladeidx[n].outer = ss->bladeidx[n].inner;
+ ss->bladeidx[n].inner = tmp;
+ }
+ }
+ }
+}
+
+ENTRYPOINT void
+free_lockward (ModeInfo *mi)
+{
+ lockward_context *ctx = &g_ctx[MI_SCREEN (mi)];
+ int i;
+
+ if (!ctx->glx_context)
+ return;
+
+ glXMakeCurrent (MI_DISPLAY (mi), MI_WINDOW (mi),
+ *(ctx->glx_context));
+
+ if (ctx->blink.noise)
+ free (ctx->blink.noise);
+ if (glIsList (ctx->rings))
+ glDeleteLists (ctx->rings, NRADII - 1);
+ /* if (glIsList (ctx->blades_outer))
+ glDeleteLists (ctx->blades_outer, NRADII);
+ if (glIsList (ctx->blades_inner))
+ glDeleteLists (ctx->blades_inner, NRADII); */
+
+ for (i = NSPINNERS; --i >= 0; ) {
+ spinnerstate *ss = &ctx->spinners[i];
+
+ if (ss->colors)
+ free (ss->colors);
+ if (ss->bladeidx)
+ free (ss->bladeidx);
+ }
+}
+
+
+XSCREENSAVER_MODULE ("Lockward", lockward)
+
+#endif /* USE_GL */
+
+/* vim:se ts=8 sts=8 sw=8: */
diff --git a/hacks/glx/lockward.man b/hacks/glx/lockward.man
new file mode 100644
index 0000000..f55e5be
--- /dev/null
+++ b/hacks/glx/lockward.man
@@ -0,0 +1,79 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+lockward - Rotating spinning color-cycling things
+.SH SYNOPSIS
+.B lockward
+[\-display \fIdisplayspec\fP]
+[\-root]
+[\-window]
+[\-visual \fIarg\fP]
+[\-window-id \fIarg\fP]
+[\-delay \fIusec\fP]
+[\-pair]
+[\-fps]
+[\-blink | \-no-blink]
+[\-rotateidle-min \fImsec\fP]
+[\-rotateidle-max \fImsec\fP]
+[\-blinkidle-min \fImsec\fP]
+[\-blinkidle-max \fImsec\fP]
+[\-blinkdwell-min \fImsec\fP]
+[\-blinkdwell-max \fImsec\fP]
+.SH DESCRIPTION
+.B lockward
+draws a spinning, rotating set of notched wheels overlaid with some flashing
+effects, using OpenGL. It's a sort of cross between the wards in a
+combination lock and those old information displays that animated via
+polarized light.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the ID number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window (default).
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fImicroseconds\fP
+Per-frame delay, in microseconds. Default: 20000 (50 frames/sec).
+.TP 8
+.B \-blink | \-no-blink
+Enables/disables the blinking effects. Default: Enabled.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-rotateidle-min \fImilliseconds
+.TP 8
+.B \-rotateidle-max \fImilliseconds
+The minimum and maximum time each spinner will sit idle, in milliseconds.
+Defaults: Min 1000, max 6000.
+.TP 8
+.B \-blinkidle-min \fImilliseconds
+.TP 8
+.B \-blinkidle-max \fImilliseconds
+The minimum and maximum time between blinking effects, in milliseconds.
+Defaults: Min 1000, max 9000.
+.TP 8
+.B \-blinkdwell-min \fImilliseconds
+.TP 8
+.B \-blinkdwell-max \fImilliseconds
+The minimum and maximum dwell time for the blinking effects, in
+milliseconds. This affects how quickly the blinks actually happen.
+Defaults: Min 100, max 600.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+Default host and display number.
+.TP 8
+.B XENVIRONMENT
+Name of a resource file that overrides the global resources stored in the
+RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH AUTHORS
+Leo L. Schwab <ewhac@best.com>
diff --git a/hacks/glx/marching.c b/hacks/glx/marching.c
new file mode 100644
index 0000000..b3357dd
--- /dev/null
+++ b/hacks/glx/marching.c
@@ -0,0 +1,645 @@
+/* xscreensaver, Copyright (c) 2002 Jamie Zawinski <jwz@jwz.org>
+ * Utility functions to create "marching cubes" meshes from 3d fields.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Marching cubes implementation by Paul Bourke <pbourke@swin.edu.au>
+ * http://astronomy.swin.edu.au/~pbourke/modelling/polygonise/
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_ANDROID
+# include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "marching.h"
+#include "normals.h"
+
+extern char *progname;
+
+#undef ABS
+#define ABS(x) ((x)<0?(-(x)):(x))
+
+typedef struct {
+ XYZ p[3];
+} TRIANGLE;
+
+typedef struct {
+ XYZ p[8];
+ double val[8];
+} GRIDCELL;
+
+
+/* Indexing convention:
+
+ Vertices: Edges:
+
+ 4 ______________ 5 ______________
+ /| /| /| 4 /|
+ / | 6 / | 7 / |8 5 / |
+ 7 /_____________/ | /______________/ | 9
+ | | | | | | 6 | |
+ | 0 |_________|___| 1 | |_________|10_|
+ | / | / 11 | 3/ 0 | /
+ | / | / | / | / 1
+ 3 |/____________|/ 2 |/____________|/
+ 2
+ */
+
+static const int edgeTable[256] = {
+ 0x0 , 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c,
+ 0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00,
+ 0x190, 0x99 , 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c,
+ 0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90,
+ 0x230, 0x339, 0x33 , 0x13a, 0x636, 0x73f, 0x435, 0x53c,
+ 0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30,
+ 0x3a0, 0x2a9, 0x1a3, 0xaa , 0x7a6, 0x6af, 0x5a5, 0x4ac,
+ 0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0,
+ 0x460, 0x569, 0x663, 0x76a, 0x66 , 0x16f, 0x265, 0x36c,
+ 0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60,
+ 0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff , 0x3f5, 0x2fc,
+ 0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0,
+ 0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55 , 0x15c,
+ 0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950,
+ 0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc ,
+ 0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0,
+ 0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc,
+ 0xcc , 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0,
+ 0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c,
+ 0x15c, 0x55 , 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650,
+ 0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc,
+ 0x2fc, 0x3f5, 0xff , 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0,
+ 0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c,
+ 0x36c, 0x265, 0x16f, 0x66 , 0x76a, 0x663, 0x569, 0x460,
+ 0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac,
+ 0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa , 0x1a3, 0x2a9, 0x3a0,
+ 0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c,
+ 0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33 , 0x339, 0x230,
+ 0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c,
+ 0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99 , 0x190,
+ 0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c,
+ 0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x0
+};
+
+static const int triTable[256][16] = {
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 8, 3, 9, 8, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 3, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 2, 10, 0, 2, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 8, 3, 2, 10, 8, 10, 9, 8, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 11, 2, 8, 11, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 9, 0, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 11, 2, 1, 9, 11, 9, 8, 11, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 10, 1, 11, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 10, 1, 0, 8, 10, 8, 11, 10, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 9, 0, 3, 11, 9, 11, 10, 9, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 3, 0, 7, 3, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 1, 9, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 1, 9, 4, 7, 1, 7, 3, 1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 10, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 4, 7, 3, 0, 4, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 2, 10, 9, 0, 2, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4, -1, -1, -1, -1},
+ { 8, 4, 7, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ {11, 4, 7, 11, 2, 4, 2, 0, 4, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 0, 1, 8, 4, 7, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1, -1, -1, -1, -1},
+ { 3, 10, 1, 3, 11, 10, 7, 8, 4, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4, -1, -1, -1, -1},
+ { 4, 7, 8, 9, 0, 11, 9, 11, 10, 11, 0, 3, -1, -1, -1, -1},
+ { 4, 7, 11, 4, 11, 9, 9, 11, 10, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 5, 4, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 5, 4, 1, 5, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 5, 4, 8, 3, 5, 3, 1, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 10, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 0, 8, 1, 2, 10, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 2, 10, 5, 4, 2, 4, 0, 2, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8, -1, -1, -1, -1},
+ { 9, 5, 4, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 11, 2, 0, 8, 11, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 5, 4, 0, 1, 5, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5, -1, -1, -1, -1},
+ {10, 3, 11, 10, 1, 3, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 9, 5, 0, 8, 1, 8, 10, 1, 8, 11, 10, -1, -1, -1, -1},
+ { 5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3, -1, -1, -1, -1},
+ { 5, 4, 8, 5, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 7, 8, 5, 7, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 3, 0, 9, 5, 3, 5, 7, 3, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 7, 8, 0, 1, 7, 1, 5, 7, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 7, 8, 9, 5, 7, 10, 1, 2, -1, -1, -1, -1, -1, -1, -1},
+ {10, 1, 2, 9, 5, 0, 5, 3, 0, 5, 7, 3, -1, -1, -1, -1},
+ { 8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2, -1, -1, -1, -1},
+ { 2, 10, 5, 2, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1},
+ { 7, 9, 5, 7, 8, 9, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11, -1, -1, -1, -1},
+ { 2, 3, 11, 0, 1, 8, 1, 7, 8, 1, 5, 7, -1, -1, -1, -1},
+ {11, 2, 1, 11, 1, 7, 7, 1, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 5, 8, 8, 5, 7, 10, 1, 3, 10, 3, 11, -1, -1, -1, -1},
+ { 5, 7, 0, 5, 0, 9, 7, 11, 0, 1, 0, 10, 11, 10, 0, -1},
+ {11, 10, 0, 11, 0, 3, 10, 5, 0, 8, 0, 7, 5, 7, 0, -1},
+ {11, 10, 5, 7, 11, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ {10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 3, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 0, 1, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 8, 3, 1, 9, 8, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 6, 5, 2, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 6, 5, 1, 2, 6, 3, 0, 8, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 6, 5, 9, 0, 6, 0, 2, 6, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8, -1, -1, -1, -1},
+ { 2, 3, 11, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ {11, 0, 8, 11, 2, 0, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 1, 9, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 10, 6, 1, 9, 2, 9, 11, 2, 9, 8, 11, -1, -1, -1, -1},
+ { 6, 3, 11, 6, 5, 3, 5, 1, 3, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6, -1, -1, -1, -1},
+ { 3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9, -1, -1, -1, -1},
+ { 6, 5, 9, 6, 9, 11, 11, 9, 8, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 10, 6, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 3, 0, 4, 7, 3, 6, 5, 10, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 9, 0, 5, 10, 6, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1},
+ {10, 6, 5, 1, 9, 7, 1, 7, 3, 7, 9, 4, -1, -1, -1, -1},
+ { 6, 1, 2, 6, 5, 1, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 5, 5, 2, 6, 3, 0, 4, 3, 4, 7, -1, -1, -1, -1},
+ { 8, 4, 7, 9, 0, 5, 0, 6, 5, 0, 2, 6, -1, -1, -1, -1},
+ { 7, 3, 9, 7, 9, 4, 3, 2, 9, 5, 9, 6, 2, 6, 9, -1},
+ { 3, 11, 2, 7, 8, 4, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 10, 6, 4, 7, 2, 4, 2, 0, 2, 7, 11, -1, -1, -1, -1},
+ { 0, 1, 9, 4, 7, 8, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1},
+ { 9, 2, 1, 9, 11, 2, 9, 4, 11, 7, 11, 4, 5, 10, 6, -1},
+ { 8, 4, 7, 3, 11, 5, 3, 5, 1, 5, 11, 6, -1, -1, -1, -1},
+ { 5, 1, 11, 5, 11, 6, 1, 0, 11, 7, 11, 4, 0, 4, 11, -1},
+ { 0, 5, 9, 0, 6, 5, 0, 3, 6, 11, 6, 3, 8, 4, 7, -1},
+ { 6, 5, 9, 6, 9, 11, 4, 7, 9, 7, 11, 9, -1, -1, -1, -1},
+ {10, 4, 9, 6, 4, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 10, 6, 4, 9, 10, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1},
+ {10, 0, 1, 10, 6, 0, 6, 4, 0, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10, -1, -1, -1, -1},
+ { 1, 4, 9, 1, 2, 4, 2, 6, 4, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 0, 8, 1, 2, 9, 2, 4, 9, 2, 6, 4, -1, -1, -1, -1},
+ { 0, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 3, 2, 8, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1},
+ {10, 4, 9, 10, 6, 4, 11, 2, 3, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 2, 2, 8, 11, 4, 9, 10, 4, 10, 6, -1, -1, -1, -1},
+ { 3, 11, 2, 0, 1, 6, 0, 6, 4, 6, 1, 10, -1, -1, -1, -1},
+ { 6, 4, 1, 6, 1, 10, 4, 8, 1, 2, 1, 11, 8, 11, 1, -1},
+ { 9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3, -1, -1, -1, -1},
+ { 8, 11, 1, 8, 1, 0, 11, 6, 1, 9, 1, 4, 6, 4, 1, -1},
+ { 3, 11, 6, 3, 6, 0, 0, 6, 4, -1, -1, -1, -1, -1, -1, -1},
+ { 6, 4, 8, 11, 6, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 7, 10, 6, 7, 8, 10, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10, -1, -1, -1, -1},
+ {10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0, -1, -1, -1, -1},
+ {10, 6, 7, 10, 7, 1, 1, 7, 3, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7, -1, -1, -1, -1},
+ { 2, 6, 9, 2, 9, 1, 6, 7, 9, 0, 9, 3, 7, 3, 9, -1},
+ { 7, 8, 0, 7, 0, 6, 6, 0, 2, -1, -1, -1, -1, -1, -1, -1},
+ { 7, 3, 2, 6, 7, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 3, 11, 10, 6, 8, 10, 8, 9, 8, 6, 7, -1, -1, -1, -1},
+ { 2, 0, 7, 2, 7, 11, 0, 9, 7, 6, 7, 10, 9, 10, 7, -1},
+ { 1, 8, 0, 1, 7, 8, 1, 10, 7, 6, 7, 10, 2, 3, 11, -1},
+ {11, 2, 1, 11, 1, 7, 10, 6, 1, 6, 7, 1, -1, -1, -1, -1},
+ { 8, 9, 6, 8, 6, 7, 9, 1, 6, 11, 6, 3, 1, 3, 6, -1},
+ { 0, 9, 1, 11, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 7, 8, 0, 7, 0, 6, 3, 11, 0, 11, 6, 0, -1, -1, -1, -1},
+ { 7, 11, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 0, 8, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 1, 9, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 1, 9, 8, 3, 1, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1},
+ {10, 1, 2, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 10, 3, 0, 8, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 9, 0, 2, 10, 9, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1},
+ { 6, 11, 7, 2, 10, 3, 10, 8, 3, 10, 9, 8, -1, -1, -1, -1},
+ { 7, 2, 3, 6, 2, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 7, 0, 8, 7, 6, 0, 6, 2, 0, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 7, 6, 2, 3, 7, 0, 1, 9, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6, -1, -1, -1, -1},
+ {10, 7, 6, 10, 1, 7, 1, 3, 7, -1, -1, -1, -1, -1, -1, -1},
+ {10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8, -1, -1, -1, -1},
+ { 0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7, -1, -1, -1, -1},
+ { 7, 6, 10, 7, 10, 8, 8, 10, 9, -1, -1, -1, -1, -1, -1, -1},
+ { 6, 8, 4, 11, 8, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 6, 11, 3, 0, 6, 0, 4, 6, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 6, 11, 8, 4, 6, 9, 0, 1, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6, -1, -1, -1, -1},
+ { 6, 8, 4, 6, 11, 8, 2, 10, 1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 10, 3, 0, 11, 0, 6, 11, 0, 4, 6, -1, -1, -1, -1},
+ { 4, 11, 8, 4, 6, 11, 0, 2, 9, 2, 10, 9, -1, -1, -1, -1},
+ {10, 9, 3, 10, 3, 2, 9, 4, 3, 11, 3, 6, 4, 6, 3, -1},
+ { 8, 2, 3, 8, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 9, 0, 2, 3, 4, 2, 4, 6, 4, 3, 8, -1, -1, -1, -1},
+ { 1, 9, 4, 1, 4, 2, 2, 4, 6, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1, -1, -1, -1, -1},
+ {10, 1, 0, 10, 0, 6, 6, 0, 4, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 6, 3, 4, 3, 8, 6, 10, 3, 0, 3, 9, 10, 9, 3, -1},
+ {10, 9, 4, 6, 10, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 9, 5, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 3, 4, 9, 5, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 0, 1, 5, 4, 0, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1},
+ {11, 7, 6, 8, 3, 4, 3, 5, 4, 3, 1, 5, -1, -1, -1, -1},
+ { 9, 5, 4, 10, 1, 2, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1},
+ { 6, 11, 7, 1, 2, 10, 0, 8, 3, 4, 9, 5, -1, -1, -1, -1},
+ { 7, 6, 11, 5, 4, 10, 4, 2, 10, 4, 0, 2, -1, -1, -1, -1},
+ { 3, 4, 8, 3, 5, 4, 3, 2, 5, 10, 5, 2, 11, 7, 6, -1},
+ { 7, 2, 3, 7, 6, 2, 5, 4, 9, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 5, 4, 0, 8, 6, 0, 6, 2, 6, 8, 7, -1, -1, -1, -1},
+ { 3, 6, 2, 3, 7, 6, 1, 5, 0, 5, 4, 0, -1, -1, -1, -1},
+ { 6, 2, 8, 6, 8, 7, 2, 1, 8, 4, 8, 5, 1, 5, 8, -1},
+ { 9, 5, 4, 10, 1, 6, 1, 7, 6, 1, 3, 7, -1, -1, -1, -1},
+ { 1, 6, 10, 1, 7, 6, 1, 0, 7, 8, 7, 0, 9, 5, 4, -1},
+ { 4, 0, 10, 4, 10, 5, 0, 3, 10, 6, 10, 7, 3, 7, 10, -1},
+ { 7, 6, 10, 7, 10, 8, 5, 4, 10, 4, 8, 10, -1, -1, -1, -1},
+ { 6, 9, 5, 6, 11, 9, 11, 8, 9, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5, -1, -1, -1, -1},
+ { 0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11, -1, -1, -1, -1},
+ { 6, 11, 3, 6, 3, 5, 5, 3, 1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 10, 9, 5, 11, 9, 11, 8, 11, 5, 6, -1, -1, -1, -1},
+ { 0, 11, 3, 0, 6, 11, 0, 9, 6, 5, 6, 9, 1, 2, 10, -1},
+ {11, 8, 5, 11, 5, 6, 8, 0, 5, 10, 5, 2, 0, 2, 5, -1},
+ { 6, 11, 3, 6, 3, 5, 2, 10, 3, 10, 5, 3, -1, -1, -1, -1},
+ { 5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2, -1, -1, -1, -1},
+ { 9, 5, 6, 9, 6, 0, 0, 6, 2, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 5, 8, 1, 8, 0, 5, 6, 8, 3, 8, 2, 6, 2, 8, -1},
+ { 1, 5, 6, 2, 1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 3, 6, 1, 6, 10, 3, 8, 6, 5, 6, 9, 8, 9, 6, -1},
+ {10, 1, 0, 10, 0, 6, 9, 5, 0, 5, 6, 0, -1, -1, -1, -1},
+ { 0, 3, 8, 5, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ {10, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ {11, 5, 10, 7, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ {11, 5, 10, 11, 7, 5, 8, 3, 0, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 11, 7, 5, 10, 11, 1, 9, 0, -1, -1, -1, -1, -1, -1, -1},
+ {10, 7, 5, 10, 11, 7, 9, 8, 1, 8, 3, 1, -1, -1, -1, -1},
+ {11, 1, 2, 11, 7, 1, 7, 5, 1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 3, 1, 2, 7, 1, 7, 5, 7, 2, 11, -1, -1, -1, -1},
+ { 9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7, -1, -1, -1, -1},
+ { 7, 5, 2, 7, 2, 11, 5, 9, 2, 3, 2, 8, 9, 8, 2, -1},
+ { 2, 5, 10, 2, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5, -1, -1, -1, -1},
+ { 9, 0, 1, 5, 10, 3, 5, 3, 7, 3, 10, 2, -1, -1, -1, -1},
+ { 9, 8, 2, 9, 2, 1, 8, 7, 2, 10, 2, 5, 7, 5, 2, -1},
+ { 1, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 7, 0, 7, 1, 1, 7, 5, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 0, 3, 9, 3, 5, 5, 3, 7, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 8, 7, 5, 9, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 8, 4, 5, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1},
+ { 5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0, -1, -1, -1, -1},
+ { 0, 1, 9, 8, 4, 10, 8, 10, 11, 10, 4, 5, -1, -1, -1, -1},
+ {10, 11, 4, 10, 4, 5, 11, 3, 4, 9, 4, 1, 3, 1, 4, -1},
+ { 2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8, -1, -1, -1, -1},
+ { 0, 4, 11, 0, 11, 3, 4, 5, 11, 2, 11, 1, 5, 1, 11, -1},
+ { 0, 2, 5, 0, 5, 9, 2, 11, 5, 4, 5, 8, 11, 8, 5, -1},
+ { 9, 4, 5, 2, 11, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4, -1, -1, -1, -1},
+ { 5, 10, 2, 5, 2, 4, 4, 2, 0, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 10, 2, 3, 5, 10, 3, 8, 5, 4, 5, 8, 0, 1, 9, -1},
+ { 5, 10, 2, 5, 2, 4, 1, 9, 2, 9, 4, 2, -1, -1, -1, -1},
+ { 8, 4, 5, 8, 5, 3, 3, 5, 1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 4, 5, 1, 0, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 8, 4, 5, 8, 5, 3, 9, 0, 5, 0, 3, 5, -1, -1, -1, -1},
+ { 9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 11, 7, 4, 9, 11, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 8, 3, 4, 9, 7, 9, 11, 7, 9, 10, 11, -1, -1, -1, -1},
+ { 1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11, -1, -1, -1, -1},
+ { 3, 1, 4, 3, 4, 8, 1, 10, 4, 7, 4, 11, 10, 11, 4, -1},
+ { 4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2, -1, -1, -1, -1},
+ { 9, 7, 4, 9, 11, 7, 9, 1, 11, 2, 11, 1, 0, 8, 3, -1},
+ {11, 7, 4, 11, 4, 2, 2, 4, 0, -1, -1, -1, -1, -1, -1, -1},
+ {11, 7, 4, 11, 4, 2, 8, 3, 4, 3, 2, 4, -1, -1, -1, -1},
+ { 2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9, -1, -1, -1, -1},
+ { 9, 10, 7, 9, 7, 4, 10, 2, 7, 8, 7, 0, 2, 0, 7, -1},
+ { 3, 7, 10, 3, 10, 2, 7, 4, 10, 1, 10, 0, 4, 0, 10, -1},
+ { 1, 10, 2, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 9, 1, 4, 1, 7, 7, 1, 3, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 9, 1, 4, 1, 7, 0, 8, 1, 8, 7, 1, -1, -1, -1, -1},
+ { 4, 0, 3, 7, 4, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 0, 9, 3, 9, 11, 11, 9, 10, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 1, 10, 0, 10, 8, 8, 10, 11, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 1, 10, 11, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 2, 11, 1, 11, 9, 9, 11, 8, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 0, 9, 3, 9, 11, 1, 2, 9, 2, 11, 9, -1, -1, -1, -1},
+ { 0, 2, 11, 8, 0, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 3, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 3, 8, 2, 8, 10, 10, 8, 9, -1, -1, -1, -1, -1, -1, -1},
+ { 9, 10, 2, 0, 9, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 2, 3, 8, 2, 8, 10, 0, 1, 8, 1, 10, 8, -1, -1, -1, -1},
+ { 1, 10, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 1, 3, 8, 9, 1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ { 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
+};
+
+
+
+/* Linearly interpolate the position where an isosurface cuts
+ an edge between two vertices, each with their own scalar value
+*/
+static XYZ
+interp_vertex (double isolevel, XYZ p1, XYZ p2, double valp1, double valp2)
+{
+ double mu;
+ XYZ p;
+
+ if (ABS(isolevel-valp1) < 0.00001)
+ return(p1);
+ if (ABS(isolevel-valp2) < 0.00001)
+ return(p2);
+ if (ABS(valp1-valp2) < 0.00001)
+ return(p1);
+ mu = (isolevel - valp1) / (valp2 - valp1);
+ p.x = p1.x + mu * (p2.x - p1.x);
+ p.y = p1.y + mu * (p2.y - p1.y);
+ p.z = p1.z + mu * (p2.z - p1.z);
+
+ return(p);
+}
+
+
+/* Given a grid cell and an isolevel, calculate the triangular
+ facets required to represent the isosurface through the cell.
+ Return the number of triangular facets.
+ `triangles' will be loaded up with the vertices at most 5 triangular facets.
+ 0 will be returned if the grid cell is either totally above
+ of totally below the isolevel.
+
+ By Paul Bourke <pbourke@swin.edu.au>
+*/
+static int
+march_one_cube (GRIDCELL grid, double isolevel, TRIANGLE *triangles)
+{
+ int i, ntriang;
+ int cubeindex;
+ XYZ vertlist[12];
+
+ /*
+ Determine the index into the edge table which
+ tells us which vertices are inside of the surface
+ */
+ cubeindex = 0;
+ if (grid.val[0] < isolevel) cubeindex |= 1;
+ if (grid.val[1] < isolevel) cubeindex |= 2;
+ if (grid.val[2] < isolevel) cubeindex |= 4;
+ if (grid.val[3] < isolevel) cubeindex |= 8;
+ if (grid.val[4] < isolevel) cubeindex |= 16;
+ if (grid.val[5] < isolevel) cubeindex |= 32;
+ if (grid.val[6] < isolevel) cubeindex |= 64;
+ if (grid.val[7] < isolevel) cubeindex |= 128;
+
+ /* Cube is entirely in/out of the surface */
+ if (edgeTable[cubeindex] == 0)
+ return(0);
+
+ /* Find the vertices where the surface intersects the cube */
+ if (edgeTable[cubeindex] & 1)
+ vertlist[0] =
+ interp_vertex (isolevel,grid.p[0],grid.p[1],grid.val[0],grid.val[1]);
+ if (edgeTable[cubeindex] & 2)
+ vertlist[1] =
+ interp_vertex (isolevel,grid.p[1],grid.p[2],grid.val[1],grid.val[2]);
+ if (edgeTable[cubeindex] & 4)
+ vertlist[2] =
+ interp_vertex (isolevel,grid.p[2],grid.p[3],grid.val[2],grid.val[3]);
+ if (edgeTable[cubeindex] & 8)
+ vertlist[3] =
+ interp_vertex (isolevel,grid.p[3],grid.p[0],grid.val[3],grid.val[0]);
+ if (edgeTable[cubeindex] & 16)
+ vertlist[4] =
+ interp_vertex (isolevel,grid.p[4],grid.p[5],grid.val[4],grid.val[5]);
+ if (edgeTable[cubeindex] & 32)
+ vertlist[5] =
+ interp_vertex (isolevel,grid.p[5],grid.p[6],grid.val[5],grid.val[6]);
+ if (edgeTable[cubeindex] & 64)
+ vertlist[6] =
+ interp_vertex (isolevel,grid.p[6],grid.p[7],grid.val[6],grid.val[7]);
+ if (edgeTable[cubeindex] & 128)
+ vertlist[7] =
+ interp_vertex (isolevel,grid.p[7],grid.p[4],grid.val[7],grid.val[4]);
+ if (edgeTable[cubeindex] & 256)
+ vertlist[8] =
+ interp_vertex (isolevel,grid.p[0],grid.p[4],grid.val[0],grid.val[4]);
+ if (edgeTable[cubeindex] & 512)
+ vertlist[9] =
+ interp_vertex (isolevel,grid.p[1],grid.p[5],grid.val[1],grid.val[5]);
+ if (edgeTable[cubeindex] & 1024)
+ vertlist[10] =
+ interp_vertex (isolevel,grid.p[2],grid.p[6],grid.val[2],grid.val[6]);
+ if (edgeTable[cubeindex] & 2048)
+ vertlist[11] =
+ interp_vertex (isolevel,grid.p[3],grid.p[7],grid.val[3],grid.val[7]);
+
+ /* Create the triangle */
+ ntriang = 0;
+ for (i=0; triTable[cubeindex][i] != -1; i+=3)
+ {
+ triangles[ntriang].p[0] = vertlist[triTable[cubeindex][i ]];
+ triangles[ntriang].p[1] = vertlist[triTable[cubeindex][i+1]];
+ triangles[ntriang].p[2] = vertlist[triTable[cubeindex][i+2]];
+ ntriang++;
+ }
+
+ return(ntriang);
+}
+
+
+/* Walking the grid. By jwz.
+ */
+
+
+/* Computes the normal of the scalar field at the given point,
+ for vertex normals (as opposed to face normals.)
+ */
+static void
+do_function_normal (double x, double y, double z,
+ double (*compute_fn) (double x, double y, double z,
+ void *closure),
+ void *c)
+{
+ XYZ n;
+ double off = 0.5;
+ n.x = compute_fn (x-off, y, z, c) - compute_fn (x+off, y, z, c);
+ n.y = compute_fn (x, y-off, z, c) - compute_fn (x, y+off, z, c);
+ n.z = compute_fn (x, y, z-off, c) - compute_fn (x, y, z+off, c);
+ /* normalize (&n); */
+ glNormal3f (n.x, n.y, n.z);
+}
+
+
+/* Given a function capable of generating a value at any XYZ position,
+ creates OpenGL faces for the solids defined.
+
+ init_fn is called at the beginning for initial, and returns an object.
+ free_fn is called at the end.
+
+ compute_fn is called for each XYZ in the specified grid, and returns
+ the double value of that coordinate. If smoothing is on, then
+ compute_fn will also be called twice more for each emitted vertex,
+ in order to calculate vertex normals (so don't assume it will only
+ be called with values falling on the grid boundaries.)
+
+ Points are inside an object if the are less than `isolevel', and
+ outside otherwise.
+*/
+void
+marching_cubes (int grid_size, /* density of the mesh */
+ double isolevel, /* cutoff point for "in" versus "out" */
+ int wireframe_p, /* wireframe, or solid */
+ int smooth_p, /* smooth, or faceted */
+
+ void * (*init_fn) (double grid_size, void *closure1),
+ double (*compute_fn) (double x, double y, double z,
+ void *closure2),
+ void (*free_fn) (void *closure2),
+ void *closure1,
+
+ unsigned long *polygon_count)
+{
+ int planesize = grid_size * grid_size;
+ int x, y, z;
+ void *closure2 = 0;
+ unsigned long polys = 0;
+ double *layers;
+
+ layers = (double *) calloc (sizeof (*layers), planesize * 2);
+ if (!layers)
+ {
+ fprintf (stderr, "%s: out of memory for %dx%dx%d grid\n",
+ progname, grid_size, grid_size, 2);
+ exit (1);
+ }
+
+ if (init_fn)
+ closure2 = init_fn (grid_size, closure1);
+
+ glFrontFace(GL_CCW);
+ if (!wireframe_p)
+ glBegin (GL_TRIANGLES);
+
+ for (z = 0; z < grid_size; z++)
+ {
+ double *layer0 = (z & 1 ? layers+planesize : layers);
+ double *layer1 = (z & 1 ? layers : layers+planesize);
+ double *row;
+
+ /* Fill in the XY grid on the currently-bottommost layer. */
+ row = layer1;
+ for (y = 0; y < grid_size; y++, row += grid_size)
+ {
+ double *cell = row;
+ for (x = 0; x < grid_size; x++, cell++)
+ *cell = compute_fn (x, y, z, closure2);
+ }
+
+ /* Now we've completed one layer (an XY slice of Z.) Now we can
+ generate the polygons that fill the space between this layer
+ and the previous one (unless this is the first layer.)
+ */
+ if (z == 0) continue;
+
+ for (y = 1; y < grid_size; y += 1)
+ for (x = 1; x < grid_size; x += 1)
+ {
+ TRIANGLE tri[6];
+ int i, ntri;
+ GRIDCELL cell;
+
+ /* This is kinda hokey, there ought to be a more efficient
+ way to do this... */
+ cell.p[0].x = x-1; cell.p[0].y = y-1; cell.p[0].z = z-1;
+ cell.p[1].x = x ; cell.p[1].y = y-1; cell.p[1].z = z-1;
+ cell.p[2].x = x ; cell.p[2].y = y ; cell.p[2].z = z-1;
+ cell.p[3].x = x-1; cell.p[3].y = y ; cell.p[3].z = z-1;
+ cell.p[4].x = x-1; cell.p[4].y = y-1; cell.p[4].z = z ;
+ cell.p[5].x = x ; cell.p[5].y = y-1; cell.p[5].z = z ;
+ cell.p[6].x = x ; cell.p[6].y = y ; cell.p[6].z = z ;
+ cell.p[7].x = x-1; cell.p[7].y = y ; cell.p[7].z = z ;
+
+# define GRID(X,Y,WHICH) ((WHICH) \
+ ? layer1[((Y)*grid_size) + ((X))] \
+ : layer0[((Y)*grid_size) + ((X))])
+
+ cell.val[0] = GRID (x-1, y-1, 0);
+ cell.val[1] = GRID (x , y-1, 0);
+ cell.val[2] = GRID (x , y , 0);
+ cell.val[3] = GRID (x-1, y , 0);
+ cell.val[4] = GRID (x-1, y-1, 1);
+ cell.val[5] = GRID (x , y-1, 1);
+ cell.val[6] = GRID (x , y , 1);
+ cell.val[7] = GRID (x-1, y , 1);
+# undef GRID
+
+ /* Now generate the triangles for this cubic segment,
+ and emit the GL faces.
+ */
+ ntri = march_one_cube (cell, isolevel, tri);
+ polys += ntri;
+ for (i = 0; i < ntri; i++)
+ {
+ if (wireframe_p) glBegin (GL_LINE_LOOP);
+
+ /* If we're smoothing, we need to call the field function
+ again for each vertex (via function_normal().) If we're
+ not smoothing, then we can just compute the normal from
+ this triangle.
+ */
+ if (!smooth_p)
+ do_normal (tri[i].p[0].x, tri[i].p[0].y, tri[i].p[0].z,
+ tri[i].p[1].x, tri[i].p[1].y, tri[i].p[1].z,
+ tri[i].p[2].x, tri[i].p[2].y, tri[i].p[2].z);
+
+# define VERT(X,Y,Z) \
+ if (smooth_p) \
+ do_function_normal ((X), (Y), (Z), compute_fn, closure2); \
+ glVertex3f ((X), (Y), (Z))
+
+ VERT (tri[i].p[0].x, tri[i].p[0].y, tri[i].p[0].z);
+ VERT (tri[i].p[1].x, tri[i].p[1].y, tri[i].p[1].z);
+ VERT (tri[i].p[2].x, tri[i].p[2].y, tri[i].p[2].z);
+# undef VERT
+ if (wireframe_p) glEnd ();
+ }
+ }
+ }
+
+ if (!wireframe_p)
+ glEnd ();
+
+ free (layers);
+
+ if (free_fn)
+ free_fn (closure2);
+
+ if (polygon_count)
+ *polygon_count = polys;
+}
diff --git a/hacks/glx/marching.h b/hacks/glx/marching.h
new file mode 100644
index 0000000..755545d
--- /dev/null
+++ b/hacks/glx/marching.h
@@ -0,0 +1,48 @@
+/* xscreensaver, Copyright (c) 2002 Jamie Zawinski <jwz@jwz.org>
+ * Utility functions to create "marching cubes" meshes from 3d fields.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __MARCHING_H__
+#define __MARCHING_H__
+
+/* Given a function capable of generating a value at any XYZ position,
+ creates OpenGL faces for the solids defined.
+
+ init_fn is called at the beginning for initial, and returns an object.
+ free_fn is called at the end.
+
+ compute_fn is called for each XYZ in the specified grid, and returns
+ the double value of that coordinate. If smoothing is on, then
+ compute_fn will also be called twice more for each emitted vertex,
+ in order to calculate vertex normals (so don't assume it will only
+ be called with values falling on the grid boundaries.)
+
+ Points are inside an object if the are less than `isolevel', and
+ outside otherwise.
+
+ If polygon_count is specified, the number of faces generated will be
+ returned there.
+*/
+extern void
+marching_cubes (int grid_size, /* density of the mesh */
+ double isolevel, /* cutoff point for "in" versus "out" */
+ int wireframe_p, /* wireframe, or solid */
+ int smooth_p, /* smooth, or faceted */
+
+ void * (*init_fn) (double grid_size, void *closure1),
+ double (*compute_fn) (double x, double y, double z,
+ void *closure2),
+ void (*free_fn) (void *closure2),
+ void *closure1,
+
+ unsigned long *polygon_count);
+
+#endif /* __MARCHING_H__ */
diff --git a/hacks/glx/maze3d.c b/hacks/glx/maze3d.c
new file mode 100755
index 0000000..255839e
--- /dev/null
+++ b/hacks/glx/maze3d.c
@@ -0,0 +1,1955 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* maze3d --- A recreation of the old 3D maze screensaver from Windows 95.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ *
+ * 03-Apr-2018: Released initial version of "3D Maze"
+ * (sudoer@riseup.net)
+ */
+
+#undef USE_FLOATING_IMAGES
+#undef USE_FRACTAL_IMAGES
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+
+#define release_maze 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+#include <math.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_ANGULAR_CONVERSION_FACTOR 90
+#define DEF_SPEED "1.0"
+#define DEF_NUM_ROWS "12"
+#define DEF_NUM_COLUMNS "12"
+#define DEF_NUM_RATS "1"
+#define DEF_NUM_INVERTERS "10"
+#define DEF_SHOW_OVERLAY "False"
+#define DEF_DROP_ACID "False"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "../images/gen/brick1_png.h"
+#include "../images/gen/brick2_png.h"
+#include "../images/gen/wood2_png.h"
+#include "../images/gen/start_png.h"
+#include "../images/gen/bob_png.h"
+#include "../images/gen/logo-32_png.h"
+
+#ifdef USE_FLOATING_IMAGES
+# include "../images/gen/opengltxt_png.h"
+# include "../images/gen/openglbook_png.h"
+#endif
+#ifdef USE_FRACTAL_IMAGES
+# include "../images/gen/fractal1_png.h"
+# include "../images/gen/fractal2_png.h"
+# include "../images/gen/fractal3_png.h"
+# include "../images/gen/fractal4_png.h"
+#endif
+
+#include "ximage-loader.h"
+
+static int dropAcid, dropAcidWalls, dropAcidCeiling, dropAcidFloor, numInverters, numRats;
+#ifdef USE_FLOATING_IMAGES
+static int numGl3dTexts, numGlRedbooks;
+#endif
+static int shouldDrawOverlay, numRows, numColumns;
+static char *wallTexture, *floorTexture, *ceilingTexture;
+static GLfloat speed;
+
+static XrmOptionDescRec opts[] = {
+ {"-drop-acid", ".maze3d.dropAcid", XrmoptionNoArg, "true"},
+ {"-drop-acid-walls", ".maze3d.dropAcidWalls", XrmoptionNoArg, "true"},
+ {"-drop-acid-floor", ".maze3d.dropAcidFloor", XrmoptionNoArg, "true"},
+ {"-drop-acid-ceiling", ".maze3d.dropAcidCeiling", XrmoptionNoArg, "true"},
+ {"-wall-texture", ".maze3d.wallTexture", XrmoptionSepArg, 0},
+ {"-floor-texture", ".maze3d.floorTexture", XrmoptionSepArg, 0},
+ {"-ceiling-texture", ".maze3d.ceilingTexture", XrmoptionSepArg, 0},
+ {"-rows", ".maze3d.numRows", XrmoptionSepArg, 0},
+ {"-columns", ".maze3d.numColumns", XrmoptionSepArg, 0},
+ {"-inverters", ".maze3d.numInverters", XrmoptionSepArg, 0},
+ {"-rats", ".maze3d.numRats", XrmoptionSepArg, 0},
+# ifdef USE_FLOATING_IMAGES
+ {"-gl-3d-texts", ".maze3d.numGl3dTexts", XrmoptionSepArg, 0},
+ {"-gl-redbooks", ".maze3d.numGlRedbooks", XrmoptionSepArg, 0},
+# endif
+ {"-overlay", ".maze3d.showOverlay", XrmoptionNoArg, "true"},
+ {"-speed", ".maze3d.speed", XrmoptionSepArg, 0},
+};
+
+static argtype vars[] = {
+ {&dropAcid, "dropAcid", "Drop Acid", DEF_DROP_ACID, t_Bool},
+ {&dropAcidWalls, "dropAcidWalls", "Drop Acid Walls", "False", t_Bool},
+ {&dropAcidFloor, "dropAcidFloor", "Drop Acid Floor", "False", t_Bool},
+ {&dropAcidCeiling, "dropAcidCeiling", "Drop Acid Ceiling", "False", t_Bool},
+ {&wallTexture, "wallTexture", "Wall Texture", "brick-wall", t_String},
+ {&floorTexture, "floorTexture", "Floor Texture", "wood-floor", t_String},
+ {&ceilingTexture, "ceilingTexture", "Ceiling Texture", "ceiling-tiles",
+ t_String},
+ {&numRows, "numRows", "Number of Rows", DEF_NUM_ROWS, t_Int},
+ {&numColumns, "numColumns", "Number of Columns", DEF_NUM_COLUMNS, t_Int},
+ {&numInverters, "numInverters", "Number of Inverters", DEF_NUM_INVERTERS, t_Int},
+ {&numRats, "numRats", "Number of Rats", DEF_NUM_RATS, t_Int},
+# ifdef USE_FLOATING_IMAGES
+ {&numGl3dTexts, "numGl3dTexts", "Number of GL 3D Texts", "3", t_Int},
+ {&numGlRedbooks, "numGlRedbooks", "Number of GL Redbooks", "3", t_Int},
+# endif
+ {&shouldDrawOverlay, "showOverlay", "Show Overlay", DEF_SHOW_OVERLAY, t_Bool},
+ {&speed, "speed", "speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt maze_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+enum cellTypes
+{
+ WALL, CELL_UNVISITED, CELL, START, FINISH, GL_3D_TEXT, INVERTER_TETRAHEDRON,
+ INVERTER_OCTAHEDRON, INVERTER_DODECAHEDRON, INVERTER_ICOSAHEDRON,
+ WALL_GL_REDBOOK
+};
+
+enum programStates
+{
+ STARTING, WALKING, TURNING_LEFT, TURNING_RIGHT, TURNING_AROUND, INVERTING,
+ FINISHING
+};
+
+enum overlayLists
+{
+ ARROW = 15, SQUARE, STAR, TRIANGLE
+};
+
+enum directions
+{
+ NORTH = 0, EAST = 90, SOUTH = 180, WEST = 270
+};
+
+typedef struct
+{
+ unsigned row, column;
+} Tuple;
+
+typedef struct
+{
+ GLfloat x, z;
+} Tuplef;
+
+typedef struct
+{
+ GLfloat red, green, blue;
+} Color;
+
+typedef struct
+{
+ Tuplef position;
+ GLfloat rotation, desiredRotation, inversion, remainingDistanceToTravel;
+ unsigned char state, isCamera;
+} Rat;
+
+
+/* structure for holding the maze data */
+typedef struct
+{
+ GLXContext *glx_context;
+
+ unsigned char **mazeGrid;
+ Tuple *wallList;
+ unsigned wallListSize;
+ Tuple startPosition, finishPosition, *inverterPosition,
+ *gl3dTextPosition;
+ GLuint wallTexture, floorTexture, ceilingTexture, startTexture,
+ finishTexture, ratTexture;
+ Rat camera;
+ Rat *rats;
+# ifdef USE_FLOATING_IMAGES
+ GLuint gl3dTextTexture, glTextbookTexture;
+# endif
+# ifdef USE_FRACTAL_IMAGES
+ GLuint fractal1Texture, fractal2Texture, fractal3Texture, fractal4Texture;
+# endif
+ Color acidColor;
+ float acidHue;
+ GLfloat wallHeight, inverterRotation;
+ Bool button_down_p;
+ int numRows, numColumns, numGlRedbooks;
+ GLuint dlists[30]; /* ARROW etc index into this */
+
+} maze_configuration;
+
+static maze_configuration *mazes = NULL;
+
+static void newMaze(maze_configuration* maze);
+static void constructLists(ModeInfo *);
+static void initializeGrid(maze_configuration* maze);
+static float roundToNearestHalf(float num);
+static unsigned isOdd(unsigned num);
+static unsigned isEven(unsigned num);
+static void buildMaze(maze_configuration* maze);
+static void addWallsToList(Tuple cell, maze_configuration* maze);
+static unsigned char isRemovableWall(Tuple coordinates,
+ maze_configuration* maze);
+static void addCells(Tuple cellToAdd, Tuple currentWall,
+ maze_configuration* maze);
+static void removeWallFromList(unsigned index, maze_configuration* maze);
+static void placeMiscObjects(maze_configuration* maze);
+static Tuple placeObject(maze_configuration* maze, unsigned char type);
+static void shiftAcidColor(maze_configuration* maze);
+static void refreshRemainingDistanceToTravel(ModeInfo * mi);
+static void step(Rat* rat, maze_configuration* maze);
+static void walk(Rat* rat, char axis, int sign, maze_configuration* maze);
+static void turn(Rat* rat, maze_configuration* maze);
+static void turnAround(Rat* rat, maze_configuration* maze);
+static void invert(maze_configuration* maze);
+static void changeState(Rat* rat, maze_configuration* maze);
+static void updateInverterRotation(maze_configuration* maze);
+static void drawInverter(maze_configuration* maze, Tuple coordinates);
+static void drawWalls(ModeInfo * mi);
+static void drawWall(Tuple startCoordinates, Tuple endCoordinates,
+ maze_configuration* maze);
+static void drawCeiling(ModeInfo * mi);
+static void drawFloor(ModeInfo * mi);
+static void drawPane(ModeInfo *, GLuint texture, Tuple position);
+static void drawRat(Tuplef position, maze_configuration* maze);
+static void drawOverlay(ModeInfo *);
+
+/* Set up and enable texturing on our object */
+static void
+setup_png_texture (ModeInfo *mi, const unsigned char *png_data,
+ unsigned long data_size)
+{
+ XImage *image = image_data_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ png_data, data_size);
+ char buf[1024];
+ clear_gl_error();
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ /* iOS invalid enum:
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, image->width);
+ */
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ image->width, image->height, 0,
+ GL_RGBA,
+ /* GL_UNSIGNED_BYTE, */
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+ image->data);
+ sprintf (buf, "builtin texture (%dx%d)", image->width, image->height);
+ check_gl_error(buf);
+}
+
+
+static Bool
+setup_file_texture (ModeInfo *mi, char *filename)
+{
+ Display *dpy = mi->dpy;
+ Visual *visual = mi->xgwa.visual;
+ char buf[1024];
+
+ XImage *image = file_to_ximage (dpy, visual, filename);
+ if (!image) return False;
+
+ clear_gl_error();
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, image->width);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ image->width, image->height, 0,
+ GL_RGBA,
+ GL_UNSIGNED_BYTE, image->data);
+ sprintf (buf, "texture: %.100s (%dx%d)",
+ filename, image->width, image->height);
+ check_gl_error(buf);
+ return True;
+}
+
+static void
+setup_textures(ModeInfo * mi)
+{
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ GLint mag = GL_NEAREST; /* GL_LINEAR */
+
+ glGenTextures(1, &maze->finishTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->finishTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, logo_32_png, sizeof(logo_32_png));
+
+ glGenTextures(1, &maze->ratTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->ratTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, bob_png, sizeof(bob_png));
+
+# ifdef USE_FLOATING_IMAGES
+ glGenTextures(1, &maze->glTextbookTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->glTextbookTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, openglbook_png, sizeof(openglbook_png));
+
+ glGenTextures(1, &maze->gl3dTextTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->gl3dTextTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, opengltxt_png, sizeof(opengltxt_png));
+# endif
+
+# ifdef USE_FRACTAL_IMAGES
+ glGenTextures(1, &maze->fractal1Texture);
+ glBindTexture(GL_TEXTURE_2D, maze->fractal1Texture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, fractal1_png, sizeof(fractal1_png));
+
+ glGenTextures(1, &maze->fractal2Texture);
+ glBindTexture(GL_TEXTURE_2D, maze->fractal2Texture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, fractal2_png, sizeof(fractal2_png));
+
+ glGenTextures(1, &maze->fractal3Texture);
+ glBindTexture(GL_TEXTURE_2D, maze->fractal3Texture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, fractal3_png, sizeof(fractal3_png));
+
+ glGenTextures(1, &maze->fractal4Texture);
+ glBindTexture(GL_TEXTURE_2D, maze->fractal4Texture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, fractal4_png, sizeof(fractal4_png));
+# endif
+
+ glGenTextures(1, &maze->startTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->startTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ setup_png_texture(mi, start_png, sizeof(start_png));
+
+ glGenTextures(1, &maze->ceilingTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->ceilingTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ if (!ceilingTexture || !*ceilingTexture
+ || !strcmp(ceilingTexture, "ceiling-tiles")) {
+ DEFAULT_CEILING_TEXTURE:
+ setup_png_texture(mi, brick2_png, sizeof(brick2_png));
+ } else if (!strcmp(ceilingTexture, "brick-wall")) {
+ setup_png_texture(mi, brick1_png, sizeof(brick1_png));
+ } else if (!strcmp(ceilingTexture, "wood-floor")) {
+ setup_png_texture(mi, wood2_png, sizeof(wood2_png));
+# ifdef USE_FRACTAL_IMAGES
+ } else if (!strcmp(ceilingTexture, "fractal-1")) {
+ setup_png_texture(mi, fractal1_png, sizeof(fractal1_png));
+ dropAcidCeiling = 1;
+ } else if (!strcmp(ceilingTexture, "fractal-2")) {
+ setup_png_texture(mi, fractal2_png, sizeof(fractal2_png));
+ dropAcidCeiling = 1;
+ } else if (!strcmp(ceilingTexture, "fractal-3")) {
+ setup_png_texture(mi, fractal3_png, sizeof(fractal3_png));
+ dropAcidCeiling = 1;
+ } else if (!strcmp(ceilingTexture, "fractal-4")) {
+ setup_png_texture(mi, fractal4_png, sizeof(fractal4_png));
+ dropAcidCeiling = 1;
+# endif
+ } else {
+ if (!setup_file_texture(mi, ceilingTexture))
+ goto DEFAULT_CEILING_TEXTURE;
+ }
+
+ glGenTextures(1, &maze->floorTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->floorTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ if (!floorTexture || !*floorTexture
+ || !strcmp(floorTexture, "wood-floor")) {
+ DEFAULT_FLOOR_TEXTURE:
+ setup_png_texture(mi, wood2_png, sizeof(wood2_png));
+ } else if (!strcmp(floorTexture, "ceiling-tiles")) {
+ setup_png_texture(mi, brick2_png, sizeof(brick2_png));
+ } else if (!strcmp(floorTexture, "brick-wall")) {
+ setup_png_texture(mi, brick1_png, sizeof(brick1_png));
+# ifdef USE_FRACTAL_IMAGES
+ } else if (!strcmp(floorTexture, "fractal-1")) {
+ setup_png_texture(mi, fractal1_png, sizeof(fractal1_png));
+ dropAcidFloor = 1;
+ } else if (!strcmp(floorTexture, "fractal-2")) {
+ setup_png_texture(mi, fractal2_png, sizeof(fractal2_png));
+ dropAcidFloor = 1;
+ } else if (!strcmp(floorTexture, "fractal-3")) {
+ setup_png_texture(mi, fractal3_png, sizeof(fractal3_png));
+ dropAcidFloor = 1;
+ } else if (!strcmp(floorTexture, "fractal-4")) {
+ setup_png_texture(mi, fractal4_png, sizeof(fractal4_png));
+ dropAcidFloor = 1;
+# endif
+ } else {
+ if (!setup_file_texture(mi, floorTexture))
+ goto DEFAULT_FLOOR_TEXTURE;
+ }
+
+ glGenTextures(1, &maze->wallTexture);
+ glBindTexture(GL_TEXTURE_2D, maze->wallTexture);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mag);
+ if (!wallTexture || !*wallTexture || !strcmp(wallTexture, "brick-wall")) {
+ DEFAULT_WALL_TEXTURE:
+ setup_png_texture(mi, brick1_png, sizeof(brick1_png));
+ } else if (!strcmp(wallTexture, "ceiling-tiles")) {
+ setup_png_texture(mi, brick2_png, sizeof(brick2_png));
+ } else if (!strcmp(wallTexture, "wood-floor")) {
+ setup_png_texture(mi, wood2_png, sizeof(wood2_png));
+# ifdef USE_FRACTAL_IMAGES
+ } else if (!strcmp(wallTexture, "fractal-1")) {
+ setup_png_texture(mi, fractal1_png, sizeof(fractal1_png));
+ dropAcidWalls = 1;
+ } else if (!strcmp(wallTexture, "fractal-2")) {
+ setup_png_texture(mi, fractal2_png, sizeof(fractal2_png));
+ dropAcidWalls = 1;
+ } else if (!strcmp(wallTexture, "fractal-3")) {
+ setup_png_texture(mi, fractal3_png, sizeof(fractal3_png));
+ dropAcidWalls = 1;
+ } else if (!strcmp(wallTexture, "fractal-4")) {
+ setup_png_texture(mi, fractal4_png, sizeof(fractal4_png));
+ dropAcidWalls = 1;
+# endif
+ } else {
+ if (!setup_file_texture(mi, wallTexture))
+ goto DEFAULT_WALL_TEXTURE;
+ }
+}
+
+static void
+initializeGrid(maze_configuration* maze)
+{
+ unsigned i, j;
+
+ for (i = 0; i < maze->numRows; i++) {
+ for (j = 0; j < maze->numColumns; j++) {
+ if (isOdd(i) && isOdd(j))
+ maze->mazeGrid[i][j] = CELL_UNVISITED;
+ else
+ maze->mazeGrid[i][j] = WALL;
+ }
+ }
+}
+
+static float
+roundToNearestHalf(float num)
+{
+ return roundf(2.0 * num) / 2.0;
+}
+
+static unsigned
+isOdd(unsigned num)
+{
+ return num % 2;
+}
+
+static unsigned
+isEven(unsigned num)
+{
+ return !isOdd(num);
+}
+
+/*This is the randomized Prim's algorithm.*/
+static void
+buildMaze(maze_configuration* maze)
+{
+ Tuple cellToAdd, firstCell = {1, 1};
+ maze->mazeGrid[1][1] = CELL;
+
+ addWallsToList(firstCell, maze);
+
+ while (maze->wallListSize > 0) {
+ unsigned randomNum = random() % maze->wallListSize;
+ Tuple currentWall = maze->wallList[randomNum];
+
+ if (isEven(currentWall.row)) {
+ if (maze->mazeGrid[currentWall.row - 1][currentWall.column]
+ == CELL
+ && maze->mazeGrid[currentWall.row + 1][currentWall.column]
+ == CELL_UNVISITED
+ ) {
+ cellToAdd.row = currentWall.row + 1;
+ cellToAdd.column = currentWall.column;
+ addCells(cellToAdd, currentWall, maze);
+ }
+ else if (maze->mazeGrid[currentWall.row + 1][currentWall.column]
+ == CELL
+ && maze->mazeGrid[currentWall.row - 1][currentWall.column]
+ == CELL_UNVISITED
+ ) {
+ cellToAdd.row = currentWall.row - 1;
+ cellToAdd.column = currentWall.column;
+ addCells(cellToAdd, currentWall, maze);
+ }
+ } else {
+ if (maze->mazeGrid[currentWall.row][currentWall.column - 1]
+ == CELL
+ && maze->mazeGrid[currentWall.row][currentWall.column + 1]
+ == CELL_UNVISITED
+ ) {
+ cellToAdd.row = currentWall.row;
+ cellToAdd.column = currentWall.column + 1;
+ addCells(cellToAdd, currentWall, maze);
+ }
+ else if (maze->mazeGrid[currentWall.row][currentWall.column + 1]
+ == CELL
+ && maze->mazeGrid[currentWall.row][currentWall.column - 1]
+ == CELL_UNVISITED
+ ) {
+ cellToAdd.row = currentWall.row;
+ cellToAdd.column = currentWall.column - 1;
+ addCells(cellToAdd, currentWall, maze);
+ }
+ }
+
+ removeWallFromList(randomNum, maze);
+ }
+}
+
+static void
+addWallsToList(Tuple cell, maze_configuration* maze)
+{
+ unsigned i;
+ Tuple walls[4];
+ walls[0].row = cell.row - 1;
+ walls[0].column = cell.column;
+ walls[1].row = cell.row + 1;
+ walls[1].column = cell.column;
+ walls[2].row = cell.row;
+ walls[2].column = cell.column - 1;
+ walls[3].row = cell.row;
+ walls[3].column = cell.column + 1;
+
+ for (i = 0; i < 4; i++) {
+ if (isRemovableWall(walls[i], maze)) {
+ maze->wallList[maze->wallListSize] = walls[i];
+ maze->wallListSize++;
+ }
+ }
+}
+
+static unsigned char
+isRemovableWall(Tuple coordinates, maze_configuration* maze)
+{
+ if (maze->mazeGrid[coordinates.row][coordinates.column] == WALL
+ && coordinates.row > 0
+ && coordinates.row < maze->numRows - 1
+ && coordinates.column > 0
+ && coordinates.column < maze->numColumns - 1
+ )
+ return 1;
+ else
+ return 0;
+}
+
+static void
+addCells(Tuple cellToAdd, Tuple currentWall, maze_configuration* maze)
+{
+ maze->mazeGrid[currentWall.row][currentWall.column] = CELL;
+ maze->mazeGrid[cellToAdd.row][cellToAdd.column] = CELL;
+ addWallsToList(cellToAdd, maze);
+}
+
+static void
+removeWallFromList(unsigned index, maze_configuration* maze)
+{
+ unsigned i;
+ for (i = index + 1; i < maze->wallListSize; i++)
+ maze->wallList[i - 1] = maze->wallList[i];
+
+ maze->wallListSize--;
+}
+
+static void
+placeMiscObjects(maze_configuration* maze)
+{
+ Rat* rat;
+ Tuple temp;
+ unsigned char object;
+ unsigned numSurroundingWalls = 3;
+ unsigned i;
+
+ while (numSurroundingWalls >= 3) {
+ numSurroundingWalls = 0;
+ maze->startPosition = placeObject(maze, CELL);
+
+ object = maze->mazeGrid[maze->startPosition.row]
+ [maze->startPosition.column + 1];
+ if (object == WALL || object == WALL_GL_REDBOOK)
+ numSurroundingWalls++;
+ object = maze->mazeGrid[maze->startPosition.row - 1]
+ [maze->startPosition.column];
+ if (object == WALL || object == WALL_GL_REDBOOK)
+ numSurroundingWalls++;
+ object = maze->mazeGrid[maze->startPosition.row]
+ [maze->startPosition.column - 1];
+ if (object == WALL || object == WALL_GL_REDBOOK)
+ numSurroundingWalls++;
+ object = maze->mazeGrid[maze->startPosition.row + 1]
+ [maze->startPosition.column];
+ if (object == WALL || object == WALL_GL_REDBOOK)
+ numSurroundingWalls++;
+ }
+ maze->mazeGrid[maze->startPosition.row][maze->startPosition.column] = START;
+
+ if (maze->mazeGrid[maze->startPosition.row][maze->startPosition.column + 1]
+ != WALL && maze->mazeGrid[maze->startPosition.row]
+ [maze->startPosition.column + 1] != WALL_GL_REDBOOK) {
+ maze->camera.position.x = (maze->startPosition.column + 1) / 2.0;
+ maze->camera.position.z = maze->startPosition.row / 2.0;
+ maze->camera.rotation = WEST;
+ }
+ else if (maze->mazeGrid[maze->startPosition.row - 1]
+ [maze->startPosition.column] != WALL
+ && maze->mazeGrid[maze->startPosition.row - 1]
+ [maze->startPosition.column] != WALL_GL_REDBOOK) {
+ maze->camera.position.x = maze->startPosition.column / 2.0;
+ maze->camera.position.z = (maze->startPosition.row - 1) / 2.0;
+ maze->camera.rotation = SOUTH;
+ }
+ else if (maze->mazeGrid[maze->startPosition.row]
+ [maze->startPosition.column - 1] != WALL
+ && maze->mazeGrid[maze->startPosition.row]
+ [maze->startPosition.column - 1] != WALL_GL_REDBOOK) {
+ maze->camera.position.x = (maze->startPosition.column - 1) / 2.0;
+ maze->camera.position.z = maze->startPosition.row / 2.0;
+ maze->camera.rotation = EAST;
+ }
+ else {
+ maze->camera.position.x = maze->startPosition.column / 2.0;
+ maze->camera.position.z = (maze->startPosition.row + 1) / 2.0;
+ maze->camera.rotation = NORTH;
+ }
+
+ maze->finishPosition = placeObject(maze, FINISH);
+
+ for (i = 0; i < numInverters; i++)
+ maze->inverterPosition[i] =
+ placeObject(maze, random() % 4 + INVERTER_TETRAHEDRON);
+
+ temp.row = 0;
+ temp.column = 0;
+
+# ifdef USE_FLOATING_IMAGES
+ for (i = 0; i < numGl3dTexts; i++)
+ maze->gl3dTextPosition[i] =
+ placeObject(maze, GL_3D_TEXT);
+# endif
+
+ for (i = 0; i < numRats; i++) {
+ rat = &(maze->rats[i]);
+ temp = placeObject(maze, CELL);
+ rat->position.x = temp.column / 2.0;
+ rat->position.z = temp.row / 2.0;
+ rat->state = WALKING;
+
+ if (temp.row == 0 && temp.column == 0) {
+ continue;
+ }
+
+ if (maze->mazeGrid[(int)(rat->position.z * 2)]
+ [(int)(rat->position.x * 2) + 1]
+ != WALL && maze->mazeGrid[(int)(rat->position.z * 2)]
+ [(int)(rat->position.x * 2) + 1] != WALL_GL_REDBOOK)
+ rat->rotation = EAST;
+ else if (maze->mazeGrid[(int)(rat->position.z * 2) - 1]
+ [(int)(rat->position.x * 2)]
+ != WALL && maze->mazeGrid[(int)(rat->position.z * 2) - 1]
+ [(int)(rat->position.x * 2)] != WALL_GL_REDBOOK)
+ rat->rotation = NORTH;
+ else if (maze->mazeGrid[(int)(rat->position.z * 2)]
+ [(int)(rat->position.x * 2) - 1]
+ != WALL && maze->mazeGrid[(int)(rat->position.z * 2)]
+ [(int)(rat->position.x * 2) - 1] != WALL_GL_REDBOOK)
+ rat->rotation = WEST;
+ else
+ rat->rotation = SOUTH;
+ }
+
+# ifdef USE_FLOATING_IMAGES
+ for (i = 0; i < numGlRedbooks; i++) {
+ while (!(((isOdd(temp.row) && isEven(temp.column))
+ || (isEven(temp.row) && isOdd(temp.column)))
+ && maze->mazeGrid[temp.row][temp.column] == WALL)) {
+ temp.row = random() % maze->numRows;
+ temp.column = random() % maze->numColumns;
+ }
+
+ maze->mazeGrid[temp.row][temp.column] = WALL_GL_REDBOOK;
+ }
+# endif
+}
+
+static Tuple
+placeObject(maze_configuration* maze, unsigned char type)
+{
+ Tuple position = {0, 0};
+
+ while (!(maze->mazeGrid[position.row][position.column] == CELL
+ && isOdd(position.row) && isOdd(position.column))) {
+ position.row = random() % maze->numRows;
+ position.column = random() % maze->numColumns;
+ }
+
+ maze->mazeGrid[position.row][position.column] = type;
+ return position;
+}
+
+ENTRYPOINT void
+reshape_maze (ModeInfo *mi, int width, int height)
+{
+ glViewport(0, 0, (GLint) width, (GLint) height);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+maze_handle_event (ModeInfo *mi, XEvent *event)
+{
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ if (event->xany.type == ButtonPress)
+ {
+ maze->button_down_p = True;
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease)
+ {
+ maze->button_down_p = False;
+ return True;
+ }
+ return False;
+}
+
+ENTRYPOINT void
+init_maze (ModeInfo * mi)
+{
+ unsigned i;
+ maze_configuration *maze;
+ GLfloat ambient[] = {0, 0, 0, 1},
+ diffuse[] = {1, 1, 1, 1},
+ position[] = {0, 2, 0, 0},
+ mcolor[] = {1, 1, 1, 1};
+
+ MI_INIT(mi, mazes);
+ maze = &mazes[MI_SCREEN(mi)];
+
+ maze->glx_context = init_GL(mi);
+
+ reshape_maze(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ for (i = 0; i < countof(maze->dlists); i++)
+ maze->dlists[i] = glGenLists (1);
+
+ maze->numRows = (numRows < 2 ? 5 : numRows * 2 + 1);
+ maze->numColumns = (numColumns < 2 ? 5 : numColumns * 2 + 1);
+
+ i = (maze->numRows / 2) * (maze->numColumns / 2) - 2;
+ if (i < numInverters) {
+ numInverters = i;
+ i = 0;
+ } else i -= numInverters;
+
+ if (i < numRats) {
+ numRats = i;
+ i = 0;
+ } else i -= numRats;
+# ifdef USE_FLOATING_IMAGES
+ if (i < numGl3dTexts) {
+ numGl3dTexts = i;
+ i = 0;
+ } else i -= numGl3dTexts;
+
+ if (((maze->numRows - 1) + (maze->numColumns - 1)
+ + ((maze->numRows / 2 - 1) * (maze->numColumns / 2 - 1))) < maze->numGlRedbooks)
+ maze->numGlRedbooks = (maze->numRows - 1) + (maze->numColumns - 1)
+ + ((maze->numRows / 2 - 1) * (maze->numColumns / 2 - 1));
+# endif
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_LIGHT0);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, mcolor);
+
+ glShadeModel(GL_FLAT);
+
+ maze->mazeGrid = calloc(maze->numRows, sizeof(unsigned char*));
+ for (i = 0; i < maze->numRows; i++)
+ maze->mazeGrid[i] = calloc(maze->numColumns, sizeof(unsigned char));
+ maze->wallList = calloc(((maze->numColumns - 2) / 2) * ((maze->numRows - 2) / 2 + 1)
+ + ((maze->numColumns - 2) / 2 + 1) * ((maze->numRows - 2) / 2), sizeof(Tuple));
+ maze->inverterPosition = calloc(numInverters, sizeof(Tuple));
+ maze->rats = calloc(numRats, sizeof(Rat));
+# ifdef USE_FLOATING_IMAGES
+ maze->gl3dTextPosition = calloc(numGl3dTexts, sizeof(Tuple));
+#endif
+
+ setup_textures(mi);
+
+ newMaze(maze);
+
+ constructLists(mi);
+ refreshRemainingDistanceToTravel(mi);
+
+ maze->camera.isCamera = 1;
+ for (i = 0; i < numRats; i++)
+ maze->rats[i].isCamera = 0;
+}
+
+static void
+newMaze(maze_configuration* maze)
+{
+ maze->camera.state = STARTING;
+ maze->camera.inversion = 0;
+ maze->wallHeight = 0;
+ maze->inverterRotation = 0;
+ maze->acidHue = 0;
+
+ initializeGrid(maze);
+ buildMaze(maze);
+ placeMiscObjects(maze);
+}
+
+static void
+constructLists(ModeInfo *mi)
+{
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+
+ glNewList(maze->dlists[ARROW], GL_COMPILE);
+ glBegin(GL_POLYGON);
+ glVertex2f(0, -0.25);
+ glVertex2f(0.146946313, 0.202254249);
+ glVertex2f(0, 0.125);
+ glVertex2f(-0.146946313, 0.202254249);
+ glEnd();
+ glEndList();
+
+ glNewList(maze->dlists[SQUARE], GL_COMPILE);
+ glBegin(GL_QUADS);
+ glVertex2f(-0.176776695, -0.176776695);
+ glVertex2f(0.176776695, -0.176776695);
+ glVertex2f(0.176776695, 0.176776695);
+ glVertex2f(-0.176776695, 0.176776695);
+ glEnd();
+ glEndList();
+
+ glNewList(maze->dlists[STAR], GL_COMPILE);
+ glBegin(GL_TRIANGLE_FAN);
+ glVertex2f(0, 0);
+ glVertex2f(0, -0.25);
+ glVertex2f(0.073473157, -0.101127124);
+ glVertex2f(0.237764129, -0.077254249);
+ glVertex2f(0.118882065, 0.038627124);
+ glVertex2f(0.146946313, 0.202254249);
+ glVertex2f(0, 0.125);
+ glVertex2f(-0.146946313, 0.202254249);
+ glVertex2f(-0.118882065, 0.038627124);
+ glVertex2f(-0.237764129, -0.077254249);
+ glVertex2f(-0.073473157, -0.101127124);
+ glVertex2f(0, -0.25);
+ glEnd();
+ glEndList();
+
+ glNewList(maze->dlists[TRIANGLE], GL_COMPILE);
+ glBegin(GL_POLYGON);
+ glVertex2f(0, -0.25);
+ glVertex2f(0.216506351, 0.125);
+ glVertex2f(-0.216506351, 0.125);
+ glEnd();
+ glEndList();
+
+ glNewList(maze->dlists[INVERTER_TETRAHEDRON], GL_COMPILE);
+ glBegin(GL_TRIANGLES);
+ glNormal3f(0.471404521, 0.816496581, 0.333333333);
+ glVertex3f(0, 0, 0.25);
+ glVertex3f(0.23570226, 0, -0.083333333);
+ glVertex3f(-0.11785113, 0.204124145, -0.083333333);
+
+ glNormal3f(-0.942809042, 0, 0.333333333);
+ glVertex3f(0, 0, 0.25);
+ glVertex3f(-0.11785113, 0.204124145, -0.083333333);
+ glVertex3f(-0.11785113, -0.204124145, -0.083333333);
+
+ glNormal3f(0.471404521, -0.816496581, 0.333333333);
+ glVertex3f(0, 0, 0.25);
+ glVertex3f(-0.11785113, -0.204124145, -0.083333333);
+ glVertex3f(0.23570226, 0, -0.083333333);
+
+ glNormal3f(0, 0, -1);
+ glVertex3f(0.23570226, 0, -0.083333333);
+ glVertex3f(-0.11785113, -0.204124145, -0.083333333);
+ glVertex3f(-0.11785113, 0.204124145, -0.083333333);
+ glEnd();
+ glEndList();
+
+ glNewList(maze->dlists[INVERTER_OCTAHEDRON], GL_COMPILE);
+ glBegin(GL_TRIANGLES);
+ glNormal3f(0.577350269, 0.577350269, 0.577350269);
+ glVertex3f(0, 0, 0.25);
+ glVertex3f(0.25, 0, 0);
+ glVertex3f(0, 0.25, 0);
+
+ glNormal3f(-0.577350269, 0.577350269, 0.577350269);
+ glVertex3f(0, 0, 0.25);
+ glVertex3f(0, 0.25, 0);
+ glVertex3f(-0.25, 0, 0);
+
+ glNormal3f(-0.577350269, -0.577350269, 0.577350269);
+ glVertex3f(0, 0, 0.25);
+ glVertex3f(-0.25, 0, 0);
+ glVertex3f(0, -0.25, 0);
+
+ glNormal3f(0.577350269, -0.577350269, 0.577350269);
+ glVertex3f(0, 0, 0.25);
+ glVertex3f(0, -0.25, 0);
+ glVertex3f(0.25, 0, 0);
+
+ glNormal3f(0.577350269, -0.577350269, -0.577350269);
+ glVertex3f(0.25, 0, 0);
+ glVertex3f(0, -0.25, 0);
+ glVertex3f(0, 0, -0.25);
+
+ glNormal3f(0.577350269, 0.577350269, -0.577350269);
+ glVertex3f(0.25, 0, 0);
+ glVertex3f(0, 0, -0.25);
+ glVertex3f(0, 0.25, 0);
+
+ glNormal3f(-0.577350269, 0.577350269, -0.577350269);
+ glVertex3f(0, 0.25, 0);
+ glVertex3f(0, 0, -0.25);
+ glVertex3f(-0.25, 0, 0);
+
+ glNormal3f(-0.577350269, -0.577350269, -0.577350269);
+ glVertex3f(-0.25, 0, 0);
+ glVertex3f(0, 0, -0.25);
+ glVertex3f(0, -0.25, 0);
+ glEnd();
+ glEndList();
+
+ glNewList(maze->dlists[INVERTER_DODECAHEDRON], GL_COMPILE);
+ glBegin(GL_POLYGON);
+ glNormal3f(0.000000000, 0.000000000, 1.000000000);
+ glVertex3f(0.122780868, 0.089205522, 0.198663618);
+ glVertex3f(-0.046898119, 0.144337567, 0.198663618);
+ glVertex3f(-0.151765500, 0.000000000, 0.198663618);
+ glVertex3f(-0.046898119, -0.144337567, 0.198663618);
+ glVertex3f(0.122780868, -0.089205522, 0.198663618);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(0.894427191, 0.000000000, 0.447213595);
+ glVertex3f(0.198663618, -0.144337567, 0.046898119);
+ glVertex3f(0.245561737, 0.000000000, -0.046898119);
+ glVertex3f(0.198663618, 0.144337567, 0.046898119);
+ glVertex3f(0.122780868, 0.089205522, 0.198663618);
+ glVertex3f(0.122780868, -0.089205522, 0.198663618);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(0.276393202, 0.850650808, 0.447213595);
+ glVertex3f(0.198663618, 0.144337567, 0.046898119);
+ glVertex3f(0.075882750, 0.233543090, -0.046898119);
+ glVertex3f(-0.075882750, 0.233543090, 0.046898119);
+ glVertex3f(-0.046898119, 0.144337567, 0.198663618);
+ glVertex3f(0.122780868, 0.089205522, 0.198663618);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(-0.723606798, 0.525731112, 0.447213595);
+ glVertex3f(-0.075882750, 0.233543090, 0.046898119);
+ glVertex3f(-0.198663618, 0.144337567, -0.046898119);
+ glVertex3f(-0.245561737, 0.000000000, 0.046898119);
+ glVertex3f(-0.151765500, 0.000000000, 0.198663618);
+ glVertex3f(-0.046898119, 0.144337567, 0.198663618);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(-0.723606798, -0.525731112, 0.447213595);
+ glVertex3f(-0.245561737, 0.000000000, 0.046898119);
+ glVertex3f(-0.198663618, -0.144337567, -0.046898119);
+ glVertex3f(-0.075882750, -0.233543090, 0.046898119);
+ glVertex3f(-0.046898119, -0.144337567, 0.198663618);
+ glVertex3f(-0.151765500, 0.000000000, 0.198663618);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(0.276393202, -0.850650808, 0.447213595);
+ glVertex3f(-0.075882750, -0.233543090, 0.046898119);
+ glVertex3f(0.075882750, -0.233543090, -0.046898119);
+ glVertex3f(0.198663618, -0.144337567, 0.046898119);
+ glVertex3f(0.122780868, -0.089205522, 0.198663618);
+ glVertex3f(-0.046898119, -0.144337567, 0.198663618);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(0.723606798, 0.525731112, -0.447213595);
+ glVertex3f(0.245561737, 0.000000000, -0.046898119);
+ glVertex3f(0.151765500, 0.000000000, -0.198663618);
+ glVertex3f(0.046898119, 0.144337567, -0.198663618);
+ glVertex3f(0.075882750, 0.233543090, -0.046898119);
+ glVertex3f(0.198663618, 0.144337567, 0.046898119);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(0.723606798, -0.525731112, -0.447213595);
+ glVertex3f(0.198663618, -0.144337567, 0.046898119);
+ glVertex3f(0.075882750, -0.233543090, -0.046898119);
+ glVertex3f(0.046898119, -0.144337567, -0.198663618);
+ glVertex3f(0.151765500, 0.000000000, -0.198663618);
+ glVertex3f(0.245561737, 0.000000000, -0.046898119);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(-0.276393202, 0.850650808, -0.447213595);
+ glVertex3f(0.075882750, 0.233543090, -0.046898119);
+ glVertex3f(0.046898119, 0.144337567, -0.198663618);
+ glVertex3f(-0.122780868, 0.089205522, -0.198663618);
+ glVertex3f(-0.198663618, 0.144337567, -0.046898119);
+ glVertex3f(-0.075882750, 0.233543090, 0.046898119);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(-0.894427191, 0.000000000, -0.447213595);
+ glVertex3f(-0.198663618, 0.144337567, -0.046898119);
+ glVertex3f(-0.122780868, 0.089205522, -0.198663618);
+ glVertex3f(-0.122780868, -0.089205522, -0.198663618);
+ glVertex3f(-0.198663618, -0.144337567, -0.046898119);
+ glVertex3f(-0.245561737, 0.000000000, 0.046898119);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(-0.276393202, -0.850650808, -0.447213595);
+ glVertex3f(-0.198663618, -0.144337567, -0.046898119);
+ glVertex3f(-0.122780868, -0.089205522, -0.198663618);
+ glVertex3f(0.046898119, -0.144337567, -0.198663618);
+ glVertex3f(0.075882750, -0.233543090, -0.046898119);
+ glVertex3f(-0.075882750, -0.233543090, 0.046898119);
+ glEnd();
+
+ glBegin(GL_POLYGON);
+ glNormal3f(0.000000000, 0.000000000, -1.000000000);
+ glVertex3f(0.046898119, -0.144337567, -0.198663618);
+ glVertex3f(-0.122780868, -0.089205522, -0.198663618);
+ glVertex3f(-0.122780868, 0.089205522, -0.198663618);
+ glVertex3f(0.046898119, 0.144337567, -0.198663618);
+ glVertex3f(0.151765500, 0.000000000, -0.198663618);
+ glEnd();
+ glEndList();
+
+ glNewList(maze->dlists[INVERTER_ICOSAHEDRON], GL_COMPILE);
+ glBegin(GL_TRIANGLES);
+ glNormal3f(0.491123473, 0.356822090, 0.794654473);
+ glVertex3f(0.000000000, 0.000000000, 0.250000000);
+ glVertex3f(0.223606798, 0.000000000, 0.111803399);
+ glVertex3f(0.069098301, 0.212662702, 0.111803399);
+
+ glNormal3f(-0.187592474, 0.577350269, 0.794654473);
+ glVertex3f(0.000000000, 0.000000000, 0.250000000);
+ glVertex3f(0.069098301, 0.212662702, 0.111803399);
+ glVertex3f(-0.180901699, 0.131432778, 0.111803399);
+
+ glNormal3f(-0.607061998, 0.000000000, 0.794654473);
+ glVertex3f(0.000000000, 0.000000000, 0.250000000);
+ glVertex3f(-0.180901699, 0.131432778, 0.111803399);
+ glVertex3f(-0.180901699, -0.131432778, 0.111803399);
+
+ glNormal3f(-0.187592474, -0.577350269, 0.794654473);
+ glVertex3f(0.000000000, 0.000000000, 0.250000000);
+ glVertex3f(-0.180901699, -0.131432778, 0.111803399);
+ glVertex3f(0.069098301, -0.212662702, 0.111803399);
+
+ glNormal3f(0.491123473, -0.356822090, 0.794654473);
+ glVertex3f(0.000000000, 0.000000000, 0.250000000);
+ glVertex3f(0.069098301, -0.212662702, 0.111803399);
+ glVertex3f(0.223606798, 0.000000000, 0.111803399);
+
+ glNormal3f(0.794654473, -0.577350269, 0.187592474);
+ glVertex3f(0.223606798, 0.000000000, 0.111803399);
+ glVertex3f(0.069098301, -0.212662702, 0.111803399);
+ glVertex3f(0.180901699, -0.131432778, -0.111803399);
+
+ glNormal3f(0.982246947, 0.000000000, -0.187592474);
+ glVertex3f(0.223606798, 0.000000000, 0.111803399);
+ glVertex3f(0.180901699, -0.131432778, -0.111803399);
+ glVertex3f(0.180901699, 0.131432778, -0.111803399);
+
+ glNormal3f(0.794654473, 0.577350269, 0.187592474);
+ glVertex3f(0.223606798, 0.000000000, 0.111803399);
+ glVertex3f(0.180901699, 0.131432778, -0.111803399);
+ glVertex3f(0.069098301, 0.212662702, 0.111803399);
+
+ glNormal3f(0.303530999, 0.934172359, -0.187592474);
+ glVertex3f(0.069098301, 0.212662702, 0.111803399);
+ glVertex3f(0.180901699, 0.131432778, -0.111803399);
+ glVertex3f(-0.069098301, 0.212662702, -0.111803399);
+
+ glNormal3f(-0.303530999, 0.934172359, 0.187592474);
+ glVertex3f(0.069098301, 0.212662702, 0.111803399);
+ glVertex3f(-0.069098301, 0.212662702, -0.111803399);
+ glVertex3f(-0.180901699, 0.131432778, 0.111803399);
+
+ glNormal3f(-0.794654473, 0.577350269, -0.187592474);
+ glVertex3f(-0.180901699, 0.131432778, 0.111803399);
+ glVertex3f(-0.069098301, 0.212662702, -0.111803399);
+ glVertex3f(-0.223606798, 0.000000000, -0.111803399);
+
+ glNormal3f(-0.982246947, 0.000000000, 0.187592474);
+ glVertex3f(-0.180901699, 0.131432778, 0.111803399);
+ glVertex3f(-0.223606798, 0.000000000, -0.111803399);
+ glVertex3f(-0.180901699, -0.131432778, 0.111803399);
+
+ glNormal3f(-0.794654473, -0.577350269, -0.187592474);
+ glVertex3f(-0.180901699, -0.131432778, 0.111803399);
+ glVertex3f(-0.223606798, 0.000000000, -0.111803399);
+ glVertex3f(-0.069098301, -0.212662702, -0.111803399);
+
+ glNormal3f(-0.303530999, -0.934172359, 0.187592474);
+ glVertex3f(-0.180901699, -0.131432778, 0.111803399);
+ glVertex3f(-0.069098301, -0.212662702, -0.111803399);
+ glVertex3f(0.069098301, -0.212662702, 0.111803399);
+
+ glNormal3f(0.303530999, -0.934172359, -0.187592474);
+ glVertex3f(0.069098301, -0.212662702, 0.111803399);
+ glVertex3f(-0.069098301, -0.212662702, -0.111803399);
+ glVertex3f(0.180901699, -0.131432778, -0.111803399);
+
+ glNormal3f(0.607061998, 0.000000000, -0.794654473);
+ glVertex3f(0.180901699, 0.131432778, -0.111803399);
+ glVertex3f(0.180901699, -0.131432778, -0.111803399);
+ glVertex3f(0.000000000, 0.000000000, -0.250000000);
+
+ glNormal3f(0.187592474, 0.577350269, -0.794654473);
+ glVertex3f(0.180901699, 0.131432778, -0.111803399);
+ glVertex3f(0.000000000, 0.000000000, -0.250000000);
+ glVertex3f(-0.069098301, 0.212662702, -0.111803399);
+
+ glNormal3f(0.187592474, -0.577350269, -0.794654473);
+ glVertex3f(0.180901699, -0.131432778, -0.111803399);
+ glVertex3f(-0.069098301, -0.212662702, -0.111803399);
+ glVertex3f(0.000000000, 0.000000000, -0.250000000);
+
+ glNormal3f(-0.491123473, 0.356822090, -0.794654473);
+ glVertex3f(-0.069098301, 0.212662702, -0.111803399);
+ glVertex3f(0.000000000, 0.000000000, -0.250000000);
+ glVertex3f(-0.223606798, 0.000000000, -0.111803399);
+
+ glNormal3f(-0.491123473, -0.356822090, -0.794654473);
+ glVertex3f(-0.223606798, 0.000000000, -0.111803399);
+ glVertex3f(0.000000000, 0.000000000, -0.250000000);
+ glVertex3f(-0.069098301, -0.212662702, -0.111803399);
+ glEnd();
+ glEndList();
+}
+
+ENTRYPOINT void
+draw_maze (ModeInfo * mi)
+{
+ unsigned i;
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) MI_HEIGHT(mi) / MI_WIDTH(mi);
+
+ if (!maze->glx_context)
+ return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(maze->glx_context));
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(90, 1/h, 0.05, 100);
+
+ if (MI_WIDTH(mi) > 2560) /* Retina displays */
+ glLineWidth (6);
+ else
+# ifdef HAVE_MOBILE
+ glLineWidth (4);
+# else
+ glLineWidth (2);
+# endif
+
+ glRotatef(maze->camera.inversion, 0, 0, 1);
+ glRotatef(maze->camera.rotation, 0, 1, 0);
+ glTranslatef(-1 * maze->camera.position.x, -0.5,
+ -1 * maze->camera.position.z);
+
+ refreshRemainingDistanceToTravel(mi);
+
+ updateInverterRotation(maze);
+ shiftAcidColor(maze);
+ step(&maze->camera, maze);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ drawWalls(mi);
+ drawCeiling(mi);
+ drawFloor(mi);
+
+ for (i = 0; i < numInverters; i++)
+ drawInverter(maze, maze->inverterPosition[i]);
+
+# ifdef USE_FLOATING_IMAGES
+ for (i = 0; i < numGl3dTexts; i++)
+ drawPane(mi, maze->gl3dTextTexture, maze->gl3dTextPosition[i]);
+# endif
+
+ for (i = 0; i < numRats; i++) {
+ step(&maze->rats[i], maze);
+ drawRat(maze->rats[i].position, maze);
+ }
+
+ drawPane(mi, maze->finishTexture, maze->finishPosition);
+ drawPane(mi, maze->startTexture, maze->startPosition);
+
+ if (shouldDrawOverlay || maze->button_down_p)
+ drawOverlay(mi);
+
+ if (mi->fps_p) do_fps(mi);
+ glFinish();
+ glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
+}
+
+static void
+shiftAcidColor(maze_configuration* maze)
+{
+ GLfloat x = 1 - fabs(fmod(maze->acidHue / 60.0, 2) - 1);
+
+ if (0 <= maze->acidHue && maze->acidHue <= 60) {
+ maze->acidColor.red = 1;
+ maze->acidColor.green = x;
+ maze->acidColor.blue = 0;
+ } else if (60 <= maze->acidHue && maze->acidHue <= 120) {
+ maze->acidColor.red = x;
+ maze->acidColor.green = 1;
+ maze->acidColor.blue = 0;
+ } else if (120 <= maze->acidHue && maze->acidHue <= 180) {
+ maze->acidColor.red = 0;
+ maze->acidColor.green = 1;
+ maze->acidColor.blue = x;
+ } else if (180 <= maze->acidHue && maze->acidHue <= 240) {
+ maze->acidColor.red = 0;
+ maze->acidColor.green = x;
+ maze->acidColor.blue = 1;
+ } else if (240 <= maze->acidHue && maze->acidHue <= 300) {
+ maze->acidColor.red = x;
+ maze->acidColor.green = 0;
+ maze->acidColor.blue = 1;
+ } else {
+ maze->acidColor.red = 1;
+ maze->acidColor.green = 0;
+ maze->acidColor.blue = x;
+ }
+
+ maze->acidHue += 75 * maze->camera.remainingDistanceToTravel;
+ if (maze->acidHue >= 360) maze->acidHue -= 360;
+}
+
+static void
+refreshRemainingDistanceToTravel(ModeInfo * mi)
+{
+ unsigned i;
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ maze->camera.remainingDistanceToTravel
+ = speed * 1.6 * (MI_DELAY(mi) / 1000000.0);
+ for (i = 0; i < numRats; i++)
+ maze->rats[i].remainingDistanceToTravel =
+ maze->camera.remainingDistanceToTravel;
+}
+
+static void
+step(Rat* rat, maze_configuration* maze)
+{
+ GLfloat previousWallHeight = maze->wallHeight;
+
+ if (!rat->isCamera && (maze->wallHeight < 1
+ || (rat->position.x == 0 && rat->position.z == 0)))
+ return;
+
+ while (rat->remainingDistanceToTravel > 0) {
+ switch(rat->state) {
+ case WALKING:
+ switch((int)rat->rotation) {
+ case NORTH:
+ walk(rat, 'z', -1, maze);
+ break;
+ case EAST:
+ walk(rat, 'x', 1, maze);
+ break;
+ case SOUTH:
+ walk(rat, 'z', 1, maze);
+ break;
+ case WEST:
+ walk(rat, 'x', -1, maze);
+ break;
+ default:
+ rat->rotation = 90 * roundf(rat->rotation / 90.0);
+ break;
+ }
+ break;
+ case TURNING_LEFT:
+ turn(rat, maze);
+ break;
+ case TURNING_RIGHT:
+ turn(rat, maze);
+ break;
+ case TURNING_AROUND:
+ turnAround(rat, maze);
+ break;
+ case INVERTING:
+ invert(maze);
+ break;
+ case STARTING:
+ maze->wallHeight += 0.48 * rat->remainingDistanceToTravel;
+ if (maze->wallHeight > 1.0) {
+ maze->wallHeight = 1.0;
+ rat->remainingDistanceToTravel =
+ fabs(previousWallHeight - maze->wallHeight);
+ changeState(&maze->camera, maze);
+ } else
+ rat->remainingDistanceToTravel = 0;
+ break;
+ case FINISHING:
+ if (maze->wallHeight == 0) {
+ newMaze(maze);
+ rat->remainingDistanceToTravel = 0;
+ }
+ else if (maze->wallHeight < 0) {
+ maze->wallHeight = 0;
+ rat->remainingDistanceToTravel =
+ fabs(previousWallHeight - maze->wallHeight);
+ }
+ else {
+ maze->wallHeight -= 0.48 * rat->remainingDistanceToTravel;
+ rat->remainingDistanceToTravel = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+static void
+walk(Rat* rat, char axis, int sign, maze_configuration* maze)
+{
+ GLfloat* component = (axis == 'x' ? &rat->position.x : &rat->position.z);
+ GLfloat previousPosition = *component;
+ int isMultipleOfOneHalf = 0;
+ unsigned temp = (unsigned)((*component) * 2.0);
+
+ if (((*component) * 2) == roundf((*component) * 2))
+ isMultipleOfOneHalf = 1;
+ *component += sign * rat->remainingDistanceToTravel;
+
+ if (!isMultipleOfOneHalf && ((unsigned)((*component) * 2.0)) != temp) {
+ *component = roundToNearestHalf(*component);
+ rat->remainingDistanceToTravel -=
+ fabs((*component) - previousPosition);
+ changeState(rat, maze);
+ } else
+ rat->remainingDistanceToTravel = 0;
+
+}
+
+static void
+turn(Rat* rat, maze_configuration* maze)
+{
+ Tuplef rotatingAround;
+ GLfloat tangentVectorDirection, previousRotation
+ = rat->rotation;
+
+ if (rat->state == TURNING_LEFT) {
+ tangentVectorDirection = rat->rotation * (M_PI / 180) + M_PI;
+ rotatingAround.x = roundToNearestHalf(rat->position.x
+ + 0.5 * cos(tangentVectorDirection));
+ rotatingAround.z = roundToNearestHalf(rat->position.z
+ + 0.5 * sin(tangentVectorDirection));
+
+ rat->rotation -= DEF_ANGULAR_CONVERSION_FACTOR
+ * rat->remainingDistanceToTravel;
+
+ if (previousRotation > WEST && rat->rotation <= WEST) {
+ rat->rotation = WEST;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ } else if (previousRotation > SOUTH && rat->rotation <= SOUTH) {
+ rat->rotation = SOUTH;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ } else if (previousRotation > EAST && rat->rotation <= EAST) {
+ rat->rotation = EAST;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ } else if (previousRotation > NORTH && rat->rotation <= NORTH) {
+ rat->rotation = NORTH;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ } else
+ rat->remainingDistanceToTravel = 0;
+
+ tangentVectorDirection = rat->rotation * (M_PI / 180);
+ }
+ else {
+ tangentVectorDirection = rat->rotation * (M_PI / 180);
+ rotatingAround.x = roundToNearestHalf(rat->position.x
+ + 0.5 * cos(tangentVectorDirection));
+ rotatingAround.z = roundToNearestHalf(rat->position.z
+ + 0.5 * sin(tangentVectorDirection));
+
+ rat->rotation += DEF_ANGULAR_CONVERSION_FACTOR
+ * rat->remainingDistanceToTravel;
+
+ if (rat->rotation >= 360) {
+ rat->rotation = NORTH;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - 360);
+ } else if (previousRotation < WEST && rat->rotation >= WEST) {
+ rat->rotation = WEST;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ } else if (previousRotation < SOUTH && rat->rotation >= SOUTH) {
+ rat->rotation = SOUTH;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ } else if (previousRotation < EAST && rat->rotation >= EAST) {
+ rat->rotation = EAST;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ } else
+ rat->remainingDistanceToTravel = 0;
+
+ tangentVectorDirection = rat->rotation * (M_PI / 180) + M_PI;
+ }
+
+ rat->position.x = rotatingAround.x + 0.5 * cos(tangentVectorDirection);
+ rat->position.z = rotatingAround.z + 0.5 * sin(tangentVectorDirection);
+
+ if (rat->rotation < 0)
+ rat->rotation += 360;
+
+ if (rat->rotation == NORTH || rat->rotation == EAST
+ || rat->rotation == SOUTH || rat->rotation == WEST) {
+ rat->position.x = roundToNearestHalf(rat->position.x);
+ rat->position.z = roundToNearestHalf(rat->position.z);
+ changeState(rat, maze);
+ }
+}
+
+static void
+turnAround(Rat* rat, maze_configuration* maze)
+{
+ GLfloat previousRotation = rat->rotation;
+
+ rat->rotation -= 1.5 * DEF_ANGULAR_CONVERSION_FACTOR
+ * rat->remainingDistanceToTravel;
+
+ if (previousRotation > rat->desiredRotation
+ && rat->rotation <= rat->desiredRotation) {
+ rat->rotation = rat->desiredRotation;
+ rat->remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousRotation - rat->rotation);
+ changeState(rat, maze);
+ }
+ else {
+ rat->remainingDistanceToTravel = 0;
+ if (rat->rotation < 0) rat->rotation += 360;
+ }
+}
+
+static void
+invert(maze_configuration* maze)
+{
+ GLfloat previousInversion = maze->camera.inversion;
+ int shouldChangeState = 0;
+ unsigned cameraX = (unsigned)roundf(maze->camera.position.x * 2),
+ cameraZ = (unsigned)roundf(maze->camera.position.z * 2);
+
+ maze->camera.inversion += 1.5 * DEF_ANGULAR_CONVERSION_FACTOR
+ * maze->camera.remainingDistanceToTravel;
+ if (previousInversion < 180 && maze->camera.inversion >= 180) {
+ maze->camera.inversion = 180;
+ maze->camera.remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousInversion - maze->camera.inversion);
+ shouldChangeState = 1;
+ }
+ else if (maze->camera.inversion >= 360) {
+ maze->camera.inversion = 0;
+ maze->camera.remainingDistanceToTravel -= (M_PI / 180)
+ * fabs(previousInversion - maze->camera.inversion);
+ shouldChangeState = 1;
+ } else
+ maze->camera.remainingDistanceToTravel = 0;
+
+ if (shouldChangeState) {
+ switch ((int)maze->camera.rotation) {
+ case NORTH:
+ maze->mazeGrid[cameraZ - 1][cameraX] = CELL;
+ break;
+ case EAST:
+ maze->mazeGrid[cameraZ][cameraX + 1] = CELL;
+ break;
+ case SOUTH:
+ maze->mazeGrid[cameraZ + 1][cameraX] = CELL;
+ break;
+ case WEST:
+ maze->mazeGrid[cameraZ][cameraX - 1] = CELL;
+ break;
+ default:
+ break;
+ }
+
+ changeState(&maze->camera, maze);
+ }
+}
+
+static void
+changeState(Rat* rat, maze_configuration* maze)
+{
+ unsigned char inFrontOfRat, toTheLeft, straightAhead, toTheRight;
+ unsigned ratX = (unsigned)roundf(rat->position.x * 2),
+ ratZ = (unsigned)roundf(rat->position.z * 2);
+
+ switch ((int)rat->rotation) {
+ case NORTH:
+ inFrontOfRat = maze->mazeGrid[ratZ - 1][ratX];
+ toTheLeft = maze->mazeGrid[ratZ - 1][ratX - 1];
+ straightAhead = maze->mazeGrid[ratZ - 2][ratX];
+ toTheRight = maze->mazeGrid[ratZ - 1][ratX + 1];
+ break;
+ case EAST:
+ inFrontOfRat = maze->mazeGrid[ratZ][ratX + 1];
+ toTheLeft = maze->mazeGrid[ratZ - 1][ratX + 1];
+ straightAhead = maze->mazeGrid[ratZ][ratX + 2];
+ toTheRight = maze->mazeGrid[ratZ + 1][ratX + 1];
+ break;
+ case SOUTH:
+ inFrontOfRat = maze->mazeGrid[ratZ + 1][ratX];
+ toTheLeft = maze->mazeGrid[ratZ + 1][ratX + 1];
+ straightAhead = maze->mazeGrid[ratZ + 2][ratX];
+ toTheRight = maze->mazeGrid[ratZ + 1][ratX - 1];
+ break;
+ case WEST:
+ inFrontOfRat = maze->mazeGrid[ratZ][ratX - 1];
+ toTheLeft = maze->mazeGrid[ratZ + 1][ratX - 1];
+ straightAhead = maze->mazeGrid[ratZ][ratX - 2];
+ toTheRight = maze->mazeGrid[ratZ - 1][ratX - 1];
+ break;
+ default:
+ inFrontOfRat = toTheLeft = straightAhead = toTheRight = CELL;
+ break;
+ }
+
+ if (rat->isCamera && inFrontOfRat == FINISH)
+ rat->state = FINISHING;
+ else if (rat->isCamera && inFrontOfRat >= INVERTER_TETRAHEDRON
+ && inFrontOfRat <= INVERTER_ICOSAHEDRON)
+ rat->state = INVERTING;
+ else if (toTheLeft != WALL && toTheLeft != WALL_GL_REDBOOK)
+ rat->state = TURNING_LEFT;
+ else if (straightAhead != WALL && straightAhead != WALL_GL_REDBOOK)
+ rat->state = WALKING;
+ else if (toTheRight != WALL && toTheRight != WALL_GL_REDBOOK)
+ rat->state = TURNING_RIGHT;
+ else {
+ rat->state = TURNING_AROUND;
+
+ switch ((int)rat->rotation) {
+ case NORTH:
+ rat->desiredRotation = SOUTH;
+ break;
+ case EAST:
+ rat->desiredRotation = WEST;
+ break;
+ case SOUTH:
+ rat->desiredRotation = NORTH;
+ break;
+ case WEST:
+ rat->desiredRotation = EAST;
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+static void
+updateInverterRotation(maze_configuration* maze)
+{
+ maze->inverterRotation += 45 * maze->camera.remainingDistanceToTravel;
+}
+
+static void drawInverter(maze_configuration* maze, Tuple coordinates)
+{
+ unsigned char type = maze->mazeGrid[coordinates.row][coordinates.column];
+
+ if (maze->wallHeight < 1 ||
+ type < INVERTER_TETRAHEDRON || type > INVERTER_ICOSAHEDRON
+ || (coordinates.row == 0 && coordinates.column == 0))
+ return;
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_CULL_FACE);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+
+ glTranslatef(coordinates.column / 2.0, 0.25, coordinates.row / 2.0);
+ glRotatef(0.618033989 * maze->inverterRotation, 0, 1, 0);
+ glRotatef(maze->inverterRotation, 1, 0, 0);
+
+ if (type >= countof(maze->dlists)) abort();
+ glCallList(maze->dlists[type]);
+
+ glPopMatrix();
+
+ glDisable(GL_LIGHTING);
+ glDisable(GL_CULL_FACE);
+}
+
+static void
+drawWalls(ModeInfo * mi)
+{
+ unsigned i, j;
+ Tuple startCoordinates, endCoordinates;
+
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+
+ for (i = 0; i < maze->numRows; i++) {
+ for (j = 0; j < maze->numColumns; j++) {
+ if (maze->mazeGrid[i][j] == WALL
+ || maze->mazeGrid[i][j] == WALL_GL_REDBOOK) {
+ if (maze->mazeGrid[i][j] == WALL) {
+ glBindTexture(GL_TEXTURE_2D, maze->wallTexture);
+ if (dropAcid || dropAcidWalls)
+ glColor3f(maze->acidColor.red, maze->acidColor.green,
+ maze->acidColor.blue);
+# ifdef USE_FLOATING_IMAGES
+ } else {
+ glBindTexture(GL_TEXTURE_2D, maze->glTextbookTexture);
+ glColor3f(1, 1, 1);
+# endif
+ }
+
+ if (isOdd(i) && isEven(j)) {
+ startCoordinates.row = i / 2;
+ startCoordinates.column = j / 2;
+ endCoordinates.row = i / 2 + 1;
+ endCoordinates.column = j / 2;
+ drawWall(startCoordinates, endCoordinates, maze);
+ } else if (isEven(i) && isOdd(j)) {
+ startCoordinates.row = i / 2;
+ startCoordinates.column = j / 2;
+ endCoordinates.row = i / 2;
+ endCoordinates.column = j / 2 + 1;
+ drawWall(startCoordinates, endCoordinates, maze);
+ }
+ }
+ }
+ }
+
+ glBindTexture(GL_TEXTURE_2D, 0);
+ glColor3f(1, 1, 1);
+}
+
+static void
+drawWall(Tuple startCoordinates, Tuple endCoordinates, maze_configuration* maze)
+{
+ GLfloat wallHeight = maze->wallHeight;
+
+ glBegin(GL_QUADS);
+ if (startCoordinates.row == endCoordinates.row) {
+ glTexCoord2f(0, 0);
+ glVertex3f(startCoordinates.column, 0, startCoordinates.row);
+ glTexCoord2f(1, 0);
+ glVertex3f(endCoordinates.column, 0, startCoordinates.row);
+ glTexCoord2f(1, 1);
+ glVertex3f(endCoordinates.column, wallHeight, endCoordinates.row);
+ glTexCoord2f(0, 1);
+ glVertex3f(startCoordinates.column, wallHeight, endCoordinates.row);
+ } else {
+ glTexCoord2f(0, 0);
+ glVertex3f(startCoordinates.column, 0, startCoordinates.row);
+ glTexCoord2f(1, 0);
+ glVertex3f(startCoordinates.column, 0, endCoordinates.row);
+ glTexCoord2f(1, 1);
+ glVertex3f(endCoordinates.column, wallHeight, endCoordinates.row);
+ glTexCoord2f(0, 1);
+ glVertex3f(endCoordinates.column, wallHeight, startCoordinates.row);
+ }
+ glEnd();
+}
+
+static void
+drawCeiling(ModeInfo * mi)
+{
+ Tuple farRightCorner;
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ farRightCorner.row = maze->numRows / 2;
+ farRightCorner.column = maze->numColumns / 2;
+ glBindTexture(GL_TEXTURE_2D, maze->ceilingTexture);
+
+ glBegin(GL_QUADS);
+ if (dropAcid || dropAcidCeiling)
+ glColor3f(maze->acidColor.red, maze->acidColor.green,
+ maze->acidColor.blue);
+ glTexCoord2f(0, 0);
+ glVertex3f(0, 1, 0);
+ glTexCoord2f(farRightCorner.column, 0);
+ glVertex3f(farRightCorner.column, 1, 0);
+ glTexCoord2f(farRightCorner.column, farRightCorner.row);
+ glVertex3f(farRightCorner.column, 1, farRightCorner.row);
+ glTexCoord2f(0, farRightCorner.row);
+ glVertex3f(0, 1, farRightCorner.row);
+ glColor3f(1, 1, 1);
+ glEnd();
+
+ glBindTexture(GL_TEXTURE_2D, 0);
+}
+
+static void
+drawFloor(ModeInfo * mi)
+{
+ Tuple farRightCorner;
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ farRightCorner.row = maze->numRows / 2;
+ farRightCorner.column = maze->numColumns / 2;
+ glBindTexture(GL_TEXTURE_2D, maze->floorTexture);
+
+ glBegin(GL_QUADS);
+ if (dropAcid || dropAcidFloor)
+ glColor3f(maze->acidColor.red, maze->acidColor.green,
+ maze->acidColor.blue);
+ glTexCoord2f(0, 0);
+ glVertex3f(0, 0, 0);
+ glTexCoord2f(farRightCorner.column, 0);
+ glVertex3f(farRightCorner.column, 0, 0);
+ glTexCoord2f(farRightCorner.column, farRightCorner.row);
+ glVertex3f(farRightCorner.column, 0, farRightCorner.row);
+ glTexCoord2f(0, farRightCorner.row);
+ glVertex3f(0, 0, farRightCorner.row);
+ glColor3f(1, 1, 1);
+ glEnd();
+
+ glBindTexture(GL_TEXTURE_2D, 0);
+}
+
+static void
+drawPane(ModeInfo *mi, GLuint texture, Tuple position)
+{
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ if (position.row == 0 && position.column == 0) return;
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glBindTexture(GL_TEXTURE_2D, texture);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glTranslatef(position.column / 2.0, 0, position.row / 2.0);
+ glRotatef(-1 * maze->camera.rotation - 90, 0, 1, 0);
+
+ if (MI_WIDTH(mi) < MI_HEIGHT(mi))
+ {
+ /* Keep the Start button readable in phone portrait mode. */
+ glScalef (0.5, 0.5, 0.5);
+ glTranslatef (0, 0.5, 0);
+ }
+
+ glBegin(GL_QUADS);
+ glColor4f(1, 1, 1, 0.9);
+ glTexCoord2f(0, 0);
+ glVertex3f(0, 0, 0.5);
+ glTexCoord2f(1, 0);
+ glVertex3f(0, 0, -0.5);
+ glTexCoord2f(1, 1);
+ glVertex3f(0, maze->wallHeight, -0.5);
+ glTexCoord2f(0, 1);
+ glVertex3f(0, maze->wallHeight, 0.5);
+ glColor3f(1, 1, 1);
+ glEnd();
+
+ glPopMatrix();
+ glBindTexture(GL_TEXTURE_2D, 0);
+ glDisable(GL_BLEND);
+}
+
+static void
+drawRat(Tuplef position, maze_configuration* maze)
+{
+ if (position.x == 0 && position.z == 0) return;
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glBindTexture(GL_TEXTURE_2D, maze->ratTexture);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glTranslatef(position.x, 0, position.z);
+ glRotatef(-1 * maze->camera.rotation - 90, 0, 1, 0);
+
+ glScalef (0.25, 0.25, 0.25);
+ glBegin(GL_QUADS);
+ glTexCoord2f(0, 0);
+ glVertex3f(0, 0, 0.5);
+ glTexCoord2f(1, 0);
+ glVertex3f(0, 0, -0.5);
+ glTexCoord2f(1, 1);
+ glVertex3f(0, maze->wallHeight, -0.5);
+ glTexCoord2f(0, 1);
+ glVertex3f(0, maze->wallHeight, 0.5);
+ glEnd();
+
+ glPopMatrix();
+ glBindTexture(GL_TEXTURE_2D, 0);
+ glDisable(GL_BLEND);
+}
+
+
+static void drawOverlay(ModeInfo *mi)
+{
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+ unsigned i, j;
+ GLfloat h = (GLfloat) MI_HEIGHT(mi) / MI_WIDTH(mi);
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+ glOrtho(-1/h, 1/h, 1, -1, -1, 1);
+
+ glEnable(GL_BLEND);
+ glColor4f(0, 0, 1, 0.75);
+ glScalef(0.25, 0.25, 0.25);
+
+ glCallList(maze->dlists[ARROW]);
+
+ glRotatef(maze->camera.inversion, 0, 1, 0);
+ glRotatef(maze->camera.rotation, 0, 0, -1);
+ glTranslatef(-maze->camera.position.x, -maze->camera.position.z, 0);
+ glColor4f(1, 1, 1, 0.75);
+
+ glBegin(GL_LINES);
+ for (i = 0; i < maze->numRows; i++) {
+ for (j = 0; j < maze->numColumns; j++) {
+ if (maze->mazeGrid[i][j] == WALL
+ || maze->mazeGrid[i][j] == WALL_GL_REDBOOK) {
+ if (isOdd(i) && isEven(j)) {
+ glVertex2f(j / 2, i / 2);
+ glVertex2f(j / 2, i / 2 + 1);
+ } else if (isEven(i) && isOdd(j)) {
+ glVertex2f(j / 2, i / 2);
+ glVertex2f(j / 2 + 1, i / 2);
+ }
+ }
+ }
+ }
+ glEnd();
+
+ glColor4f(1, 0, 0, 0.75);
+
+ glPushMatrix();
+ glTranslatef(maze->startPosition.column / 2.0,
+ maze->startPosition.row / 2.0, 0);
+ glCallList(maze->dlists[SQUARE]);
+ glPopMatrix();
+
+ glColor4f(1, 1, 0, 0.75);
+
+ glPushMatrix();
+ glTranslatef(maze->finishPosition.column / 2.0,
+ maze->finishPosition.row / 2.0, 0);
+ glCallList(maze->dlists[STAR]);
+ glPopMatrix();
+
+ glColor4f(1, 0.607843137, 0, 0.75);
+
+ for (i = 0; i < numRats; i++) {
+ if (maze->rats[i].position.x == 0 && maze->rats[i].position.z == 0)
+ continue;
+ glPushMatrix();
+ glTranslatef(maze->rats[i].position.x, maze->rats[i].position.z, 0);
+ glRotatef(maze->rats[i].rotation, 0, 0, 1);
+ glCallList(maze->dlists[ARROW]);
+ glPopMatrix();
+ }
+
+ glColor4f(1, 1, 1, 1);
+
+ for (i = 0; i < numInverters; i++) {
+ j = maze->mazeGrid[maze->inverterPosition[i].row]
+ [maze->inverterPosition[i].column];
+ if (j >= INVERTER_TETRAHEDRON && j <= INVERTER_ICOSAHEDRON) {
+ glPushMatrix();
+ glTranslatef(maze->inverterPosition[i].column / 2.0,
+ maze->inverterPosition[i].row / 2.0, 0);
+ glRotatef(1.5 * maze->inverterRotation, 0, 0, 1);
+ glCallList(maze->dlists[TRIANGLE]);
+ glPopMatrix();
+ }
+ }
+
+ glDisable(GL_BLEND);
+
+ glPopMatrix();
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+}
+
+ENTRYPOINT void
+free_maze (ModeInfo * mi)
+{
+ maze_configuration *maze = &mazes[MI_SCREEN(mi)];
+
+ glDeleteTextures(1, &maze->wallTexture);
+ glDeleteTextures(1, &maze->floorTexture);
+ glDeleteTextures(1, &maze->ceilingTexture);
+ glDeleteTextures(1, &maze->startTexture);
+ glDeleteTextures(1, &maze->ratTexture);
+ glDeleteTextures(1, &maze->finishTexture);
+# ifdef USE_FLOATING_IMAGES
+ glDeleteTextures(1, &maze->glTextbookTexture);
+ glDeleteTextures(1, &maze->gl3dTextTexture);
+# endif
+# ifdef USE_FRACTAL_IMAGES
+ glDeleteTextures(1, &maze->fractal1Texture);
+ glDeleteTextures(1, &maze->fractal2Texture);
+ glDeleteTextures(1, &maze->fractal3Texture);
+ glDeleteTextures(1, &maze->fractal4Texture);
+# endif
+
+ glDeleteLists(maze->dlists[ARROW], 4);
+ glDeleteLists(maze->dlists[INVERTER_TETRAHEDRON], 4);
+
+ free(maze->mazeGrid);
+ free(maze->wallList);
+ free(maze->inverterPosition);
+ free(maze->gl3dTextPosition);
+ free(maze->rats);
+
+ memset(maze, 0, sizeof(*maze));
+}
+
+
+XSCREENSAVER_MODULE_2 ("Maze3D", maze3d, maze)
+
+#endif
diff --git a/hacks/glx/maze3d.man b/hacks/glx/maze3d.man
new file mode 100755
index 0000000..c60fd65
--- /dev/null
+++ b/hacks/glx/maze3d.man
@@ -0,0 +1,116 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+maze3d - A 3D maze.
+.SH SYNOPSIS
+.B maze3d
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-speed \fIfloat\fP]
+[\-delay \fInumber\fP]
+[\-fps]
+[\-rows \fInumber\fP]
+[\-columns \fInumber\fP]
+[\-overlay]
+[\-wall-texture \fItexture\fP]
+[\-floor-texture \fItexture\fP]
+[\-ceiling-texture \fItexture\fP]
+[\-drop-acid]
+[\-drop-acid-walls]
+[\-drop-acid-floor]
+[\-drop-acid-ceiling]
+[\-inverters \fInumber\fP]
+[\-rats \fInumber\fP]
+.SH DESCRIPTION
+A recreation of the 3D Maze screensaver from Windows 95.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-speed \fInumber\fP
+Speed of the dungeon crawl. 2 is twice as fast, 0.5 is half as fast.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-fps | \-no-fps
+Display the current frame rate and CPU load.
+.TP 8
+.B \-rows \fInumber\fP
+The number of rows in the maze. Default: 12.
+.TP 8
+.B \-columns \fInumber\fP
+The number of columns in the maze. Default: 12.
+.TP 8
+.B \-overlay
+Overlays a minimap of the maze on the screen.
+.TP 8
+.B \-wall-texture \fItexture\fP
+Sets the wall texture. \fItexture\fP can be a path to an image file, or it can be one of the built-in textures (see TEXTURES below).
+.TP 8
+.B \-floor-texture \fItexture\fP
+Sets the floor texture. \fItexture\fP can be a path to an image file, or it can be one of the built-in textures (see TEXTURES below).
+.TP 8
+.B \-ceiling-texture \fItexture\fP
+Sets the ceiling texture. \fItexture\fP can be a path to an image file, or it can be one of the built-in textures (see TEXTURES below).
+.TP 8
+.B \-drop-acid-walls
+Continuously shifts the hue of the wall texture. (This looks like an LSD trip, hence the name.)
+.TP 8
+.B \-drop-acid-floor
+Continuously shifts the hue of the floor texture.
+.TP 8
+.B \-drop-acid-ceiling
+Continuously shifts the hue of the ceiling texture.
+.TP 8
+.B \-drop-acid
+Turns on all three.
+.TP 8
+.B \-inverters \fInumber\fP
+Sets the number of inverters (the spinny grey things that flip the camera upside-down) in the maze. Default: 10.
+.TP 8
+.B \-rats \fInumber\fP
+Sets the number of rats, or rather "Bobs", in the maze. Default: 1.
+.TP 8
+.SH TEXTURES
+The wall, ceiling, and floor textures can be set to one of the following:
+.TP 8
+.B brick-wall
+A brick wall. This is the default wall texture.
+.TP 8
+.B wood-floor
+A wooden floor. This is the default floor texture.
+.TP 8
+.B ceiling-tiles
+Ceiling tiles. This is the default ceiling texture.
+.TP 8
+You can also specify a path to an image file, instead of using one of the built-in textures.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2018 by sudoer@riseup.net. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
diff --git a/hacks/glx/menger.c b/hacks/glx/menger.c
new file mode 100644
index 0000000..249d224
--- /dev/null
+++ b/hacks/glx/menger.c
@@ -0,0 +1,562 @@
+/* menger, Copyright (c) 2001-2014 Jamie Zawinski <jwz@jwz.org>
+ * Copyright (c) 2002 Aurelien Jacobs <aurel@gnuage.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Generates a 3D Menger Sponge gasket:
+ *
+ * ___+._______
+ * __-"" -- __"""----._____
+ * __.--"" -- ___--+---_____. __ .+'|
+ * _.-'"" __ +:"__ | ._..+"" __ .+' F
+ * J"--.____ __ """""+" .+' .J F
+ * J """""---.___ -- .+'" F' F
+ * L """""--...+' .J F
+ * L F"9 --. | . F' J
+ * L -_J L_J F"9 | ;'J .+J .J J
+ * | L_J | F.' .'| J F' J
+ * | |"""--.__ | ' |"" J J
+ * J ._ J ;;; | "L | . |-___J |
+ * J L J J ;-' | L | .'J |_ .' . |
+ * J "" J .---_L F"9 | F.' | .' FJ |
+ * L J .-' __ | L_J | ' :' ' .+
+ * L '--.___ | | .J .'
+ * | F"9 """' | . F' .'
+ * | -_J F"9 | .'J .'
+ * +__ -_J F"9 | F.' .'
+ * """--___ L_J | ' .'
+ * """---___ | .'
+ * ""---._|.'
+ *
+ * The straightforward way to generate this object creates way more polygons
+ * than are needed, since there end up being many buried, interior faces.
+ * So during the recursive building of the object we store which face of
+ * each unitary cube we need to draw. Doing this reduces the polygon count
+ * by 40% - 60%.
+ *
+ * Another optimization we could do to reduce the polygon count would be to
+ * merge adjascent coplanar squares together into rectangles. This would
+ * result in the outer faces being composed of 1xN strips. It's tricky to
+ * to find these adjascent faces in non-exponential time, though.
+ *
+ * We could actually simulate large depths with a texture map -- if the
+ * depth is such that the smallest holes are only a few pixels across,
+ * just draw them as spots on the surface! It would look the same.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+
+# define free_sponge 0
+# define release_sponge 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "150"
+#define DEF_MAX_DEPTH "3"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+ GLuint sponge_list0; /* we store X, Y, and Z-facing surfaces */
+ GLuint sponge_list1; /* in their own lists, to make it easy */
+ GLuint sponge_list2; /* to color them differently. */
+
+ unsigned long squares_fp;
+
+ int current_depth;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor0;
+ int ccolor1;
+ int ccolor2;
+
+ int draw_tick;
+
+} sponge_configuration;
+
+static sponge_configuration *sps = NULL;
+
+static Bool do_spin;
+static Bool do_wander;
+static int speed;
+static int max_depth;
+
+static XrmOptionDescRec opts[] = {
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-depth", ".maxDepth", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Int},
+ {&max_depth, "maxDepth", "MaxDepth", DEF_MAX_DEPTH, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt sponge_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_sponge (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+#define X0 0x01
+#define X1 0x02
+#define Y0 0x04
+#define Y1 0x08
+#define Z0 0x10
+#define Z1 0x20
+
+static int
+cube (float x0, float x1, float y0, float y1, float z0, float z1,
+ int faces, int wireframe)
+{
+ int n = 0;
+
+ if (faces & X0)
+ {
+ glBegin (wireframe ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3f (-1.0, 0.0, 0.0);
+ glVertex3f (x0, y1, z0);
+ glVertex3f (x0, y0, z0);
+ glVertex3f (x0, y0, z1);
+ glVertex3f (x0, y1, z1);
+ glEnd ();
+ n++;
+ }
+ if (faces & X1)
+ {
+ glBegin (wireframe ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3f (1.0, 0.0, 0.0);
+ glVertex3f (x1, y1, z1);
+ glVertex3f (x1, y0, z1);
+ glVertex3f (x1, y0, z0);
+ glVertex3f (x1, y1, z0);
+ glEnd ();
+ n++;
+ }
+ if (faces & Y0)
+ {
+ glBegin (wireframe ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3f (0.0, -1.0, 0.0);
+ glVertex3f (x0, y0, z0);
+ glVertex3f (x0, y0, z1);
+ glVertex3f (x1, y0, z1);
+ glVertex3f (x1, y0, z0);
+ glEnd ();
+ n++;
+ }
+ if (faces & Y1)
+ {
+ glBegin (wireframe ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3f (0.0, 1.0, 0.0);
+ glVertex3f (x0, y1, z0);
+ glVertex3f (x0, y1, z1);
+ glVertex3f (x1, y1, z1);
+ glVertex3f (x1, y1, z0);
+ glEnd ();
+ n++;
+ }
+ if (faces & Z0)
+ {
+ glBegin (wireframe ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3f (0.0, 0.0, -1.0);
+ glVertex3f (x1, y1, z0);
+ glVertex3f (x1, y0, z0);
+ glVertex3f (x0, y0, z0);
+ glVertex3f (x0, y1, z0);
+ glEnd ();
+ n++;
+ }
+ if (faces & Z1)
+ {
+ glBegin (wireframe ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3f (0.0, 0.0, 1.0);
+ glVertex3f (x0, y1, z1);
+ glVertex3f (x0, y0, z1);
+ glVertex3f (x1, y0, z1);
+ glVertex3f (x1, y1, z1);
+ glEnd ();
+ n++;
+ }
+
+ return n;
+}
+
+static int
+menger_recurs_1 (int level, float x0, float x1, float y0, float y1,
+ float z0, float z1, int faces, Bool wireframe,
+ int orig, int forig)
+{
+ float xi, yi, zi;
+ int f, x, y, z;
+ int n = 0;
+
+ if (orig)
+ {
+ if (wireframe)
+ n += cube (x0, x1, y0, y1, z0, z1,
+ faces & (X0 | X1 | Y0 | Y1), wireframe);
+ }
+
+ if (level == 0)
+ {
+ if (!wireframe)
+ n += cube (x0, x1, y0, y1, z0, z1, faces, wireframe);
+ }
+ else
+ {
+ xi = (x1 - x0) / 3;
+ yi = (y1 - y0) / 3;
+ zi = (z1 - z0) / 3;
+
+ for (x = 0; x < 3; x++)
+ for (y = 0; y < 3; y++)
+ for (z = 0; z < 3; z++)
+ {
+ if ((x != 1 && y != 1)
+ || (y != 1 && z != 1)
+ || (x != 1 && z != 1))
+ {
+ f = faces;
+
+ if (x == 1 || (x == 2 && (y != 1 && z != 1)))
+ f &= ~X0;
+ if (x == 1 || (x == 0 && (y != 1 && z != 1)))
+ f &= ~X1;
+ if (forig & X0 && x == 2 && (y == 1 || z == 1))
+ f |= X0;
+ if (forig & X1 && x == 0 && (y == 1 || z == 1))
+ f |= X1;
+
+ if (y == 1 || (y == 2 && (x != 1 && z != 1)))
+ f &= ~Y0;
+ if (y == 1 || (y == 0 && (x != 1 && z != 1)))
+ f &= ~Y1;
+ if (forig & Y0 && y == 2 && (x == 1 || z == 1))
+ f |= Y0;
+ if (forig & Y1 && y == 0 && (x == 1 || z == 1))
+ f |= Y1;
+
+ if (z == 1 || (z == 2 && (x != 1 && y != 1)))
+ f &= ~Z0;
+ if (z == 1 || (z == 0 && (x != 1 && y != 1)))
+ f &= ~Z1;
+ if (forig & Z0 && z == 2 && (x == 1 || y == 1))
+ f |= Z0;
+ if (forig & Z1 && z == 0 && (x == 1 || y == 1))
+ f |= Z1;
+
+ n += menger_recurs_1 (level-1,
+ x0+x*xi, x0+(x+1)*xi,
+ y0+y*yi, y0+(y+1)*yi,
+ z0+z*zi, z0+(z+1)*zi, f, wireframe, 0,
+ forig);
+ }
+ else if (wireframe && (x != 1 || y != 1 || z != 1))
+ n += cube (x0+x*xi, x0+(x+1)*xi,
+ y0+y*yi, y0+(y+1)*yi,
+ z0+z*zi, z0+(z+1)*zi,
+ forig & (X0 | X1 | Y0 | Y1), wireframe);
+ }
+ }
+
+ return n;
+}
+
+static int
+menger_recurs (int level, float x0, float x1, float y0, float y1,
+ float z0, float z1, int faces, Bool wireframe,
+ int orig)
+{
+ return menger_recurs_1 (level, x0, x1, y0, y1, z0, z1, faces,
+ wireframe, orig, faces);
+}
+
+
+static void
+build_sponge (sponge_configuration *sp, Bool wireframe, int level)
+{
+ glDeleteLists (sp->sponge_list0, 1);
+ glNewList(sp->sponge_list0, GL_COMPILE);
+ sp->squares_fp = menger_recurs (level, -1.5, 1.5, -1.5, 1.5, -1.5, 1.5,
+ X0 | X1, wireframe,1);
+ glEndList();
+
+ glDeleteLists (sp->sponge_list1, 1);
+ glNewList(sp->sponge_list1, GL_COMPILE);
+ sp->squares_fp += menger_recurs (level, -1.5, 1.5, -1.5, 1.5, -1.5, 1.5,
+ Y0 | Y1, wireframe,1);
+ glEndList();
+
+ glDeleteLists (sp->sponge_list2, 1);
+ glNewList(sp->sponge_list2, GL_COMPILE);
+ sp->squares_fp += menger_recurs (level, -1.5, 1.5, -1.5, 1.5, -1.5, 1.5,
+ Z0 | Z1, wireframe,1);
+ glEndList();
+}
+
+
+ENTRYPOINT Bool
+sponge_handle_event (ModeInfo *mi, XEvent *event)
+{
+ sponge_configuration *sp = &sps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, sp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &sp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '+' || c == '=' ||
+ keysym == XK_Up || keysym == XK_Right || keysym == XK_Next)
+ {
+ sp->draw_tick = speed;
+ sp->current_depth += (sp->current_depth > 0 ? 1 : -1);
+ sp->current_depth--;
+ return True;
+ }
+ else if (c == '-' || c == '_' ||
+ keysym == XK_Down || keysym == XK_Left || keysym == XK_Prior)
+ {
+ sp->draw_tick = speed;
+ sp->current_depth -= (sp->current_depth > 0 ? 1 : -1);
+ sp->current_depth--;
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ goto DEF;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ DEF:
+ sp->draw_tick = speed;
+ return True;
+ }
+
+ return False;
+}
+
+
+
+ENTRYPOINT void
+init_sponge (ModeInfo *mi)
+{
+ sponge_configuration *sp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, sps);
+
+ sp = &sps[MI_SCREEN(mi)];
+
+ if ((sp->glx_context = init_GL(mi)) != NULL) {
+ reshape_sponge (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ if (!wire)
+ {
+ static const GLfloat pos0[4] = {-1.0, -1.0, 1.0, 0.1};
+ static const GLfloat pos1[4] = { 1.0, -0.2, 0.2, 0.1};
+ static const GLfloat dif0[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat dif1[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos0);
+ glLightfv(GL_LIGHT1, GL_POSITION, pos1);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif0);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, dif1);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+
+ glShadeModel(GL_SMOOTH);
+ }
+
+ {
+ double spin_speed = 1.0;
+ double wander_speed = 0.03;
+ sp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ 1.0,
+ do_wander ? wander_speed : 0,
+ True);
+ sp->trackball = gltrackball_init (True);
+ }
+
+ sp->ncolors = 128;
+ sp->colors = (XColor *) calloc(sp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ sp->colors, &sp->ncolors,
+ False, 0, False);
+ sp->ccolor0 = 0;
+ sp->ccolor1 = sp->ncolors / 3;
+ sp->ccolor2 = sp->ccolor1 * 2;
+
+ sp->sponge_list0 = glGenLists (1);
+ sp->sponge_list1 = glGenLists (1);
+ sp->sponge_list2 = glGenLists (1);
+
+ sp->draw_tick = 9999999;
+}
+
+
+ENTRYPOINT void
+draw_sponge (ModeInfo *mi)
+{
+ sponge_configuration *sp = &sps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ GLfloat color0[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color1[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color2[4] = {0.0, 0.0, 0.0, 1.0};
+
+ if (!sp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (sp->rot, &x, &y, &z, !sp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 6,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (sp->trackball);
+
+ get_rotation (sp->rot, &x, &y, &z, !sp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ color0[0] = sp->colors[sp->ccolor0].red / 65536.0;
+ color0[1] = sp->colors[sp->ccolor0].green / 65536.0;
+ color0[2] = sp->colors[sp->ccolor0].blue / 65536.0;
+
+ color1[0] = sp->colors[sp->ccolor1].red / 65536.0;
+ color1[1] = sp->colors[sp->ccolor1].green / 65536.0;
+ color1[2] = sp->colors[sp->ccolor1].blue / 65536.0;
+
+ color2[0] = sp->colors[sp->ccolor2].red / 65536.0;
+ color2[1] = sp->colors[sp->ccolor2].green / 65536.0;
+ color2[2] = sp->colors[sp->ccolor2].blue / 65536.0;
+
+
+ sp->ccolor0++;
+ sp->ccolor1++;
+ sp->ccolor2++;
+ if (sp->ccolor0 >= sp->ncolors) sp->ccolor0 = 0;
+ if (sp->ccolor1 >= sp->ncolors) sp->ccolor1 = 0;
+ if (sp->ccolor2 >= sp->ncolors) sp->ccolor2 = 0;
+
+ if (sp->draw_tick++ >= speed)
+ {
+ sp->draw_tick = 0;
+ if (sp->current_depth >= max_depth)
+ sp->current_depth = -max_depth;
+ sp->current_depth++;
+ build_sponge (sp,
+ MI_IS_WIREFRAME(mi),
+ (sp->current_depth < 0
+ ? -sp->current_depth : sp->current_depth));
+
+ mi->polygon_count = sp->squares_fp; /* for FPS display */
+ mi->recursion_depth = (sp->current_depth < 0
+ ? -sp->current_depth : sp->current_depth);
+ }
+
+ glScalef (2.0, 2.0, 2.0);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color0);
+ glCallList (sp->sponge_list0);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color1);
+ glCallList (sp->sponge_list1);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color2);
+ glCallList (sp->sponge_list2);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("Menger", menger, sponge)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/menger.man b/hacks/glx/menger.man
new file mode 100644
index 0000000..c2c2141
--- /dev/null
+++ b/hacks/glx/menger.man
@@ -0,0 +1,78 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+menger - 3D menger gasket fractal.
+.SH SYNOPSIS
+.B menger
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-depth \fInumber\fP]
+[\-no-wander]
+[\-no-spin]
+[\-spin \fI[XYZ]\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+This draws the three-dimensional variant of the recursive Menger Gasket, a
+cube-based fractal object analagous to the Sierpinski Tetrahedron.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Number of frames before changing shape. Default: 150.
+.TP 8
+.B \-depth \fInumber\fP
+Max depth to descend. Default: 3. You probably don't have enough
+memory for 6.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin [XYZ]
+Around which axes should the object spin?
+.TP 8
+.B \-no-spin
+None.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/mirrorblob.c b/hacks/glx/mirrorblob.c
new file mode 100644
index 0000000..eb746d1
--- /dev/null
+++ b/hacks/glx/mirrorblob.c
@@ -0,0 +1,1841 @@
+/* mirrorblob Copyright (c) 2003 Jon Dowdall <jon.dowdall@bigpond.com> */
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ * 23-Sep-2003: jon.dowdall@bigpond.com Created module "blob"
+ * 19-Oct-2003: jon.dowdall@bigpond.com Added texturing
+ * 21-Oct-2003: Renamed to mirrorblob
+ * 10-Feb-2004: jon.dowdall@bigpond.com Added motion blur
+ * 28-Jan-2006: jon.dowdall@bigpond.com Big clean up and bug fixes
+ * 13-Apr-2009: jon.dowdall@gmail.com Fixed Mac version
+ *
+ * The mirrorblob screensaver draws a pulsing blob on the screen. Options
+ * include adding a background (via screen_to_texture), texturing the blob,
+ * making the blob semi-transparent and varying the resolution of the blob
+ * tessellation.
+ *
+ * The blob was inspired by a lavalamp is in no way a simulation. The code is
+ * just an attempt to generate some eye-candy.
+ *
+ * Much of xmirrorblob code framework is taken from the pulsar module by David
+ * Konerding and the glslideshow by Mike Oliphant and Jamie Zawinski.
+ *
+ */
+
+#include <math.h>
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: " DEF_DELAY "\n" \
+ "*showFPS: " DEF_FPS "\n" \
+ "*useSHM: True \n" \
+ "*desktopGrabber: xscreensaver-getimage -no-desktop %s\n" \
+ "*grabDesktopImages: True \n" \
+ "*chooseRandomImages: True \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_mirrorblob 0
+# include "xlockmore.h"
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_DELAY "10000"
+#define DEF_FPS "False"
+#define DEF_WIRE "False"
+#define DEF_BLEND "1.0"
+#define DEF_FOG "False"
+#define DEF_ANTIALIAS "False"
+#define DEF_WALLS "False"
+#define DEF_COLOUR "False"
+#define DEF_ASYNC "True"
+#define DEF_TEXTURE "True"
+#define DEF_OFFSET_TEXTURE "False"
+#define DEF_PAINT_BACKGROUND "True"
+#define DEF_RESOLUTION "30"
+#define DEF_BUMPS "10"
+#define DEF_MOTION_BLUR "0.0"
+#define DEF_INCREMENTAL "0"
+#define DEF_HOLD_TIME "30.0"
+#define DEF_FADE_TIME "5.0"
+#define DEF_ZOOM "1.0"
+
+#ifdef HAVE_XMU
+# ifndef VMS
+# include <X11/Xmu/Drawing.h>
+#else /* VMS */
+# include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#include "gltrackball.h"
+#include "grab-ximage.h"
+
+#undef countof
+#define countof(x) (sizeof((x)) / sizeof((*x)))
+
+#define PI 3.1415926535897
+
+/* Options from command line */
+static GLfloat blend;
+static Bool wireframe;
+static Bool do_fog;
+static Bool do_antialias;
+static Bool do_walls;
+static Bool do_texture;
+static Bool do_paint_background;
+static Bool do_colour;
+static Bool offset_texture;
+static int resolution;
+static int bumps;
+static float motion_blur;
+static float fade_time;
+static float hold_time;
+static float zoom;
+
+/* Internal parameters based on supplied options */
+static Bool culling;
+static Bool load_textures;
+
+static XrmOptionDescRec opts[] = {
+ {"-wire", ".blob.wire", XrmoptionNoArg, "true" },
+ {"+wire", ".blob.wire", XrmoptionNoArg, "false" },
+ {"-blend", ".blob.blend", XrmoptionSepArg, 0 },
+ {"-fog", ".blob.fog", XrmoptionNoArg, "true" },
+ {"+fog", ".blob.fog", XrmoptionNoArg, "false" },
+ {"-antialias", ".blob.antialias", XrmoptionNoArg, "true" },
+ {"+antialias", ".blob.antialias", XrmoptionNoArg, "false" },
+ {"-walls", ".blob.walls", XrmoptionNoArg, "true" },
+ {"+walls", ".blob.walls", XrmoptionNoArg, "false" },
+ {"-texture", ".blob.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".blob.texture", XrmoptionNoArg, "false" },
+ {"-colour", ".blob.colour", XrmoptionNoArg, "true" },
+ {"+colour", ".blob.colour", XrmoptionNoArg, "false" },
+ {"-offset-texture", ".blob.offsetTexture", XrmoptionNoArg, "true" },
+ {"+offset-texture", ".blob.offsetTexture", XrmoptionNoArg, "false" },
+ {"-paint-background", ".blob.paintBackground", XrmoptionNoArg, "true" },
+ {"+paint-background", ".blob.paintBackground", XrmoptionNoArg, "false" },
+ {"-resolution", ".blob.resolution", XrmoptionSepArg, NULL },
+ {"-bumps", ".blob.bumps", XrmoptionSepArg, NULL },
+ {"-motion-blur", ".blob.motionBlur", XrmoptionSepArg, 0 },
+ {"-fade-time", ".blob.fadeTime", XrmoptionSepArg, 0 },
+ {"-hold-time", ".blob.holdTime", XrmoptionSepArg, 0 },
+ {"-zoom", ".blob.zoom", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&wireframe, "wire", "Wire", DEF_WIRE, t_Bool},
+ {&blend, "blend", "Blend", DEF_BLEND, t_Float},
+ {&do_fog, "fog", "Fog", DEF_FOG, t_Bool},
+ {&do_antialias, "antialias", "Antialias", DEF_ANTIALIAS, t_Bool},
+ {&do_walls, "walls", "Walls", DEF_WALLS, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_colour, "colour", "Colour", DEF_COLOUR, t_Bool},
+ {&offset_texture, "offsetTexture","OffsetTexture", DEF_OFFSET_TEXTURE, t_Bool},
+ {&do_paint_background,"paintBackground","PaintBackground", DEF_PAINT_BACKGROUND, t_Bool},
+ {&resolution, "resolution", "Resolution", DEF_RESOLUTION, t_Int},
+ {&bumps, "bumps", "Bump", DEF_BUMPS, t_Int},
+ {&motion_blur, "motionBlur", "MotionBlur", DEF_MOTION_BLUR, t_Float},
+ {&fade_time, "fadeTime", "FadeTime", DEF_FADE_TIME, t_Float},
+ {&hold_time, "holdTime", "HoldTime", DEF_HOLD_TIME, t_Float},
+ {&zoom, "zoom", "Zoom", DEF_ZOOM, t_Float},
+};
+
+
+static OptionStruct desc[] =
+{
+ {"-/+ wire", "whether to do use wireframe instead of filled (faster)"},
+ {"-/+ blend", "whether to do enable blending (slower)"},
+ {"-/+ fog", "whether to do enable fog (slower)"},
+ {"-/+ antialias", "whether to do enable antialiased lines (slower)"},
+ {"-/+ walls", "whether to add walls to the blob space (slower)"},
+ {"-/+ texture", "whether to add a texture to the blob (slower)"},
+ {"-/+ colour", "whether to colour the blob"},
+ {"-/+ offset_texture", "whether to offset texture co-ordinates"},
+ {"-/+ paint_background", "whether to display a background texture (slower)"},
+ {"-resolution", "Resolution of blob tesselation"},
+ {"-bumps", "Number of bumps used to disturb blob"},
+ {"-motion_blur", "Fade blob images (higher number = faster fade)"},
+ {"-fade_time", "Number of frames to transistion to next image"},
+ {"-hold_time", "Number of frames before next image"},
+};
+
+ENTRYPOINT ModeSpecOpt mirrorblob_opts = {countof(opts), opts, countof(vars), vars, desc};
+
+#ifdef USE_MODULES
+ModStruct mirrorblob_description =
+{"mirrorblob", "init_mirrorblob", "draw_mirrorblob", NULL,
+ "draw_mirrorblob", "init_mirrorblob", "free_mirrorblob", &mirrorblob_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "OpenGL mirrorblob", 0, NULL};
+#endif
+
+/*****************************************************************************
+ * Types used in blob code
+ *****************************************************************************/
+
+typedef struct
+{
+ GLfloat x, y;
+} Vector2D;
+
+typedef struct
+{
+ GLfloat x, y, z;
+} Vector3D;
+
+typedef struct
+{
+ GLfloat w;
+ GLfloat x;
+ GLfloat y;
+ GLfloat z;
+} Quaternion;
+
+typedef struct
+{
+ GLubyte red, green, blue, alpha;
+} Colour;
+
+typedef struct
+{
+ Vector3D initial_position;
+ Vector3D position;
+ Vector3D normal;
+} Node_Data;
+
+typedef struct
+{
+ int node1, node2, node3;
+ Vector3D normal;
+ double length1, length2, length3;
+} Face_Data;
+
+/* Structure to hold data about bumps used to distortion sphere */
+typedef struct
+{
+ double cx, cy, cpower, csize;
+ double ax, ay, power, size;
+ double mx, my, mpower, msize;
+ double vx, vy, vpower, vsize;
+ Vector3D pos;
+} Bump_Data;
+
+/* Vertices of a tetrahedron */
+#define sqrt_3 0.5773502692
+/*#undef sqrt_3
+#define sqrt_3 1.0*/
+#define PPP { sqrt_3, sqrt_3, sqrt_3 } /* +X, +Y, +Z */
+#define MMP { -sqrt_3, -sqrt_3, sqrt_3 } /* -X, -Y, +Z */
+#define MPM { -sqrt_3, sqrt_3, -sqrt_3 } /* -X, +Y, -Z */
+#define PMM { sqrt_3, -sqrt_3, -sqrt_3 } /* +X, -Y, -Z */
+
+/* Structure describing a tetrahedron */
+static Vector3D tetrahedron[4][3] = {
+ {PPP, MMP, MPM},
+ {PMM, MPM, MMP},
+ {PPP, MPM, PMM},
+ {PPP, PMM, MMP}
+};
+
+/*****************************************************************************
+ * Static blob data
+ *****************************************************************************/
+
+static const Vector3D zero_vector = { 0.0, 0.0, 0.0 };
+
+/* Use 2 textures to allow a gradual fade between images */
+#define NUM_TEXTURES 2
+#define BUMP_ARRAY_SIZE 1024
+
+typedef enum
+{
+ INITIALISING,
+ HOLDING,
+ LOADING,
+ TRANSITIONING
+} Frame_State;
+
+/* structure for holding the mirrorblob data */
+typedef struct {
+ int screen_width, screen_height;
+ GLXContext *glx_context;
+ Window window;
+ XColor fg, bg;
+
+ /* Parameters controlling the position of the blob as a whole */
+ Vector3D blob_center;
+ Vector3D blob_anchor;
+ Vector3D blob_velocity;
+ Vector3D blob_force;
+
+ /* Count of the total number of nodes and faces used to tesselate the blob */
+ int num_nodes;
+ int num_faces;
+
+ Node_Data *nodes;
+ Face_Data *faces;
+
+ Vector3D *dots;
+ Vector3D *normals;
+ Colour *colours;
+ Vector2D *tex_coords;
+
+ /* Pointer to the bump function results */
+ double *bump_shape, *wall_shape;
+
+ Bump_Data *bump_data;
+
+ /* Use 2 textures to allow a gradual fade between images */
+ int current_texture;
+
+ /* Ratio of used texture size to total texture size */
+ GLfloat tex_width[NUM_TEXTURES], tex_height[NUM_TEXTURES];
+ GLuint textures[NUM_TEXTURES];
+
+ Frame_State state;
+ double state_start_time;
+
+ int colour_cycle;
+
+ Bool mipmap_p;
+ Bool waiting_for_image_p;
+ Bool first_image_p;
+
+ trackball_state *trackball;
+ int button_down;
+
+} mirrorblobstruct;
+
+static mirrorblobstruct *Mirrorblob = NULL;
+
+/******************************************************************************
+ *
+ * Returns the current time in seconds as a double. Shamelessly borrowed from
+ * glslideshow.
+ *
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+/******************************************************************************
+ *
+ * Change to the projection matrix and set our viewing volume.
+ *
+ */
+static void
+reset_projection(int width, int height)
+{
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ gluPerspective (60.0, 1.0, 1.0, 1024.0 );
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+}
+
+/******************************************************************************
+ *
+ * Calculate the dot product of two vectors u and v
+ * Dot product u.v = |u||v|cos(theta)
+ * Where theta = angle between u and v
+ */
+static inline double
+dot (const Vector3D u, const Vector3D v)
+{
+ return (u.x * v.x) + (u.y * v.y) + (u.z * v.z);
+}
+
+/******************************************************************************
+ *
+ * Calculate the cross product of two vectors.
+ * Gives a vector perpendicular to u and v with magnitude |u||v|sin(theta)
+ * Where theta = angle between u and v
+ */
+static inline Vector3D
+cross (const Vector3D u, const Vector3D v)
+{
+ Vector3D result;
+
+ result.x = (u.y * v.z - u.z * v.y);
+ result.y = (u.z * v.x - u.x * v.z);
+ result.z = (u.x * v.y - u.y * v.x);
+
+ return result;
+}
+
+/******************************************************************************
+ *
+ * Add vector v to vector u
+ */
+static inline void
+add (Vector3D *u, const Vector3D v)
+{
+ u->x = u->x + v.x;
+ u->y = u->y + v.y;
+ u->z = u->z + v.z;
+}
+
+/******************************************************************************
+ *
+ * Subtract vector v from vector u
+ */
+static inline Vector3D
+subtract (const Vector3D u, const Vector3D v)
+{
+ Vector3D result;
+
+ result.x = u.x - v.x;
+ result.y = u.y - v.y;
+ result.z = u.z - v.z;
+
+ return result;
+}
+
+/******************************************************************************
+ *
+ * multiply vector v by scalar s
+ */
+static inline Vector3D
+scale (const Vector3D v, const double s)
+{
+ Vector3D result;
+
+ result.x = v.x * s;
+ result.y = v.y * s;
+ result.z = v.z * s;
+ return result;
+}
+
+/******************************************************************************
+ *
+ * normalise vector v
+ */
+static inline Vector3D
+normalise (const Vector3D v)
+{
+ Vector3D result;
+ double magnitude;
+
+ magnitude = sqrt (dot(v, v));
+
+ if (magnitude > 1e-300)
+ {
+ result = scale (v, 1.0 / magnitude);
+ }
+ else
+ {
+ printf("zero\n");
+ result = zero_vector;
+ }
+ return result;
+}
+
+/******************************************************************************
+ *
+ * Calculate the transform matrix for the given quaternion
+ */
+static void
+quaternion_transform (Quaternion q, GLfloat * transform)
+{
+ GLfloat x, y, z, w;
+ x = q.x;
+ y = q.y;
+ z = q.z;
+ w = q.w;
+
+ transform[0] = (w * w) + (x * x) - (y * y) - (z * z);
+ transform[1] = (2.0 * x * y) + (2.0 * w * z);
+ transform[2] = (2.0 * x * z) - (2.0 * w * y);
+ transform[3] = 0.0;
+
+ transform[4] = (2.0 * x * y) - (2.0 * w * z);
+ transform[5] = (w * w) - (x * x) + (y * y) - (z * z);
+ transform[6] = (2.0 * y * z) + (2.0 * w * x);
+ transform[7] = 0.0;
+
+ transform[8] = (2.0 * x * z) + (2.0 * w * y);
+ transform[9] = (2.0 * y * z) - (2.0 * w * x);
+ transform[10] = (w * w) - (x * x) - (y * y) + (z * z);
+ transform[11] = 0.0;
+
+ transform[12] = 0.0;
+ transform[13] = 0.0;
+ transform[14] = 0.0;
+ transform[15] = (w * w) + (x * x) + (y * y) + (z * z);
+}
+
+/******************************************************************************
+ *
+ * Apply a matrix transform to the given vector
+ */
+static inline Vector3D
+vector_transform (Vector3D u, GLfloat * t)
+{
+ Vector3D result;
+
+ result.x = (u.x * t[0] + u.y * t[4] + u.z * t[8] + 1.0 * t[12]);
+ result.y = (u.x * t[1] + u.y * t[5] + u.z * t[9] + 1.0 * t[13]);
+ result.z = (u.x * t[2] + u.y * t[6] + u.z * t[10] + 1.0 * t[14]);
+
+ return result;
+}
+
+/******************************************************************************
+ *
+ * Return a node that is on an arc between node1 and node2, where distance
+ * is the proportion of the distance from node1 to the total arc.
+ */
+static Vector3D
+partial (Vector3D node1, Vector3D node2, double distance)
+{
+ Vector3D result;
+ Vector3D rotation_axis;
+ GLfloat transformation[16];
+ double angle;
+ Quaternion rotation;
+
+ rotation_axis = normalise (cross (node1, node2));
+ angle = acos (dot (node1, node2)) * distance;
+
+ rotation.x = rotation_axis.x * sin (angle / 2.0);
+ rotation.y = rotation_axis.y * sin (angle / 2.0);
+ rotation.z = rotation_axis.z * sin (angle / 2.0);
+ rotation.w = cos (angle / 2.0);
+
+ quaternion_transform (rotation, transformation);
+
+ result = vector_transform (node1, transformation);
+
+ return result;
+}
+
+/****************************************************************************
+ *
+ * Callback indicating a texture has loaded
+ */
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ mirrorblobstruct *mp = (mirrorblobstruct *) closure;
+ GLint texid = -1;
+ int texture_index = -1;
+ int i;
+
+ glGetIntegerv (GL_TEXTURE_BINDING_2D, &texid);
+ if (texid < 0) abort();
+
+ for (i = 0; i < NUM_TEXTURES; i++) {
+ if (mp->textures[i] == texid) {
+ texture_index = i;
+ break;
+ }
+ }
+ if (texture_index < 0) abort();
+
+ mp->tex_width [texture_index] = (GLfloat) image_width / texture_width;
+ mp->tex_height[texture_index] = -(GLfloat) image_height / texture_height;
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ (mp->mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ mp->waiting_for_image_p = False;
+ mp->first_image_p = True;
+}
+
+/* Load a new file into a texture
+ */
+static void
+grab_texture(ModeInfo *mi, int texture_index)
+{
+ mirrorblobstruct *mp = &Mirrorblob[MI_SCREEN(mi)];
+
+ {
+ int w = (MI_WIDTH(mi) / 2) - 1;
+ int h = (MI_HEIGHT(mi) / 2) - 1;
+ if (w <= 10) w = 10;
+ if (h <= 10) h = 10;
+
+ mp->waiting_for_image_p = True;
+ mp->mipmap_p = True;
+ load_texture_async (mi->xgwa.screen, mi->window,
+ *mp->glx_context, w, h, mp->mipmap_p,
+ mp->textures[texture_index],
+ image_loaded_cb, mp);
+ }
+}
+
+/******************************************************************************
+ *
+ * Generate internal parameters based on supplied options the parameters to
+ * ensure they are consistant.
+ */
+static void
+set_parameters(void)
+{
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ wireframe = 0;
+# endif
+
+ /* In wire frame mode do not draw a texture */
+ if (wireframe)
+ {
+ do_texture = False;
+ blend = 1.0;
+ }
+
+ /* Need to load textures if either the blob or the backgound has an image */
+ if (do_texture || do_paint_background)
+ {
+ load_textures = True;
+ }
+ else
+ {
+ load_textures = False;
+ }
+
+ /* If theres no texture don't calculate co-ordinates. */
+ if (!do_texture)
+ {
+ offset_texture = False;
+ }
+
+ culling = True;
+}
+
+/******************************************************************************
+ *
+ * Initialise the openGL state data.
+ */
+static void
+initialize_gl(ModeInfo *mi, GLsizei width, GLsizei height)
+{
+ mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
+
+ /* Lighting values */
+ GLfloat ambientLight[] = { 0.2f, 0.2f, 0.2f, 1.0f };
+
+ GLfloat lightPos0[] = {500.0f, 100.0f, 200.0f, 1.0f };
+ GLfloat whiteLight0[] = { 0.0f, 0.0f, 0.0f, 1.0f };
+ GLfloat sourceLight0[] = { 0.6f, 0.6f, 0.6f, 1.0f };
+ GLfloat specularLight0[] = { 0.8f, 0.8f, 0.9f, 1.0f };
+
+ GLfloat lightPos1[] = {-50.0f, -100.0f, 2500.0f, 1.0f };
+ GLfloat whiteLight1[] = { 0.0f, 0.0f, 0.0f, 1.0f };
+ GLfloat sourceLight1[] = { 0.6f, 0.6f, 0.6f, 1.0f };
+ GLfloat specularLight1[] = { 0.7f, 0.7f, 0.7f, 1.0f };
+
+ GLfloat specref[] = { 1.0f, 1.0f, 1.0f, 1.0f };
+
+ GLfloat fogColor[4] = { 0.4, 0.4, 0.5, 0.1 };
+
+ /* Set the internal parameters based on the configuration settings */
+ set_parameters();
+
+ /* Set the viewport to the width and heigh of the window */
+ glViewport (0, 0, width, height );
+
+ if (do_antialias)
+ {
+ blend = 1.0;
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_POLYGON_SMOOTH);
+ }
+
+ /* The blend function is used for trasitioning between two images even when
+ * blend is not selected.
+ */
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ if (do_fog)
+ {
+ glEnable(GL_FOG);
+ glFogfv(GL_FOG_COLOR, fogColor);
+ glFogf(GL_FOG_DENSITY, 0.50);
+ glFogf(GL_FOG_START, 15.0);
+ glFogf(GL_FOG_END, 30.0);
+ }
+
+ /* Set the shading model to smooth (Gouraud shading). */
+ glShadeModel (GL_SMOOTH);
+
+ glLightModelfv (GL_LIGHT_MODEL_AMBIENT, ambientLight);
+ glLightfv (GL_LIGHT0, GL_AMBIENT, whiteLight0);
+ glLightfv (GL_LIGHT0, GL_DIFFUSE, sourceLight0);
+ glLightfv (GL_LIGHT0, GL_SPECULAR, specularLight0);
+ glLightfv (GL_LIGHT0, GL_POSITION, lightPos0);
+ glEnable (GL_LIGHT0);
+ glLightfv (GL_LIGHT1, GL_AMBIENT, whiteLight1);
+ glLightfv (GL_LIGHT1, GL_DIFFUSE, sourceLight1);
+ glLightfv (GL_LIGHT1, GL_SPECULAR, specularLight1);
+ glLightfv (GL_LIGHT1, GL_POSITION, lightPos1);
+ glEnable (GL_LIGHT1);
+ glEnable (GL_LIGHTING);
+
+ /* Enable color tracking */
+ glEnable (GL_COLOR_MATERIAL);
+
+ /* Set Material properties to follow glColor values */
+ glColorMaterial (GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
+
+ /* Set all materials to have specular reflectivity */
+ glMaterialfv (GL_FRONT, GL_SPECULAR, specref);
+ glMateriali (GL_FRONT, GL_SHININESS, 32);
+
+ /* Let GL implementation scale normal vectors. */
+ glEnable (GL_NORMALIZE);
+
+ /* Enable Arrays */
+ if (load_textures)
+ {
+ glLightModeli (GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
+ glEnable (GL_TEXTURE_2D);
+
+ gp->current_texture = 0;
+ glGenTextures(NUM_TEXTURES, gp->textures);
+ grab_texture(mi, gp->current_texture);
+
+ glMatrixMode (GL_TEXTURE);
+ glRotated (180.0, 1.0, 0.0, 0.0);
+ glMatrixMode (GL_MODELVIEW);
+ }
+
+ /* Clear the buffer since this is not done during a draw with motion blur */
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+/******************************************************************************
+ *
+ * Initialise the openGL state data.
+ */
+static void
+set_blob_gl_state(GLfloat alpha)
+{
+ if (do_antialias)
+ {
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_POLYGON_SMOOTH);
+ }
+
+ if (wireframe)
+ {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ }
+ else
+ {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ }
+
+ /* The blend function is used for trasitioning between two images even when
+ * blend is not selected.
+ */
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ /* Culling. */
+ if (culling)
+ {
+ glCullFace (GL_BACK);
+ glEnable (GL_CULL_FACE);
+ glFrontFace (GL_CCW);
+ }
+ else
+ {
+ glDisable (GL_CULL_FACE);
+ }
+
+ if (blend < 1.0)
+ {
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ /* Set the default blob colour to off-white. */
+ glColor4f (0.9, 0.9, 1.0, alpha);
+ }
+ else
+ {
+ glDisable(GL_BLEND);
+ glColor4f (0.9, 0.9, 1.0, 1.0);
+ }
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_LIGHTING);
+}
+
+/******************************************************************************
+ *
+ * Initialise the data required to draw the blob allocating the memory as
+ * necessary.
+ *
+ * Return 0 on success.
+ */
+static int
+initialise_blob(mirrorblobstruct *gp,
+ int width,
+ int height,
+ int bump_array_size)
+{
+ /* Loop variables */
+ int i, u, v, node, side, face, base, base2 = 0;
+ int nodes_on_edge = resolution;
+ Vector3D node1, node2, result;
+
+ if (nodes_on_edge < 2)
+ return -1;
+
+ gp->num_nodes = 2 * nodes_on_edge * nodes_on_edge - 4 * nodes_on_edge + 4;
+ gp->num_faces = 4 * (nodes_on_edge - 1) * (nodes_on_edge - 1);
+
+ gp->nodes = (Node_Data *) malloc (gp->num_nodes * sizeof (Node_Data));
+ if (!gp->nodes)
+ {
+ fprintf (stderr, "Couldn't allocate gp->nodes buffer\n");
+ return -1;
+ }
+
+ gp->faces = (Face_Data *) malloc (gp->num_faces * sizeof (Face_Data));
+ if (!gp->faces)
+ {
+ fprintf (stderr, "Couldn't allocate faces data buffer\n");
+ return -1;
+ }
+
+ gp->bump_data = (Bump_Data *) malloc (bumps * sizeof (Bump_Data));
+ if (!gp->bump_data)
+ {
+ fprintf(stderr, "Couldn't allocate bump data buffer\n");
+ return -1;
+ }
+
+ gp->bump_shape = (double *)malloc(bump_array_size * sizeof(double));
+ if (!gp->bump_shape)
+ {
+ fprintf(stderr, "Couldn't allocate bump buffer\n");
+ return -1;
+ }
+
+ gp->wall_shape = (double *)malloc(bump_array_size * sizeof(double));
+ if (!gp->wall_shape)
+ {
+ fprintf(stderr, "Couldn't allocate wall bump buffer\n");
+ return -1;
+ }
+
+
+ gp->dots = (Vector3D *)malloc(gp->num_nodes * sizeof(Vector3D));
+ if (!gp->dots)
+ {
+ fprintf(stderr, "Couldn't allocate nodes buffer\n");
+ return -1;
+ }
+
+ gp->normals = (Vector3D *)malloc(gp->num_nodes * sizeof(Vector3D));
+ if (!gp->normals)
+ {
+ fprintf(stderr, "Couldn't allocate normals buffer\n");
+ return -1;
+ }
+
+ gp->colours = (Colour *)malloc(gp->num_nodes * sizeof(Colour));
+ if (!gp->colours)
+ {
+ fprintf(stderr, "Couldn't allocate colours buffer\n");
+ return -1;
+ }
+
+ gp->tex_coords = (Vector2D *)malloc(gp->num_nodes * sizeof(Vector2D));
+ if (!gp->tex_coords)
+ {
+ fprintf(stderr, "Couldn't allocate gp->tex_coords buffer\n");
+ return -1;
+ }
+
+
+ /* Initialise bump data */
+ for (i = 0; i < bumps; i++)
+ {
+ gp->bump_data[i].ax = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+ gp->bump_data[i].ay = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+ gp->bump_data[i].power = (5.0 / pow(bumps, 0.75)) * (((double)random() / (double)RAND_MAX) - 0.5);
+ gp->bump_data[i].size = 0.1 + 0.5 * (((double)random() / (double)RAND_MAX));
+
+ gp->bump_data[i].pos.x = 1.5 * sin(PI * gp->bump_data[i].ay)
+ * cos(PI * gp->bump_data[i].ax);
+ gp->bump_data[i].pos.y = 1.5 * cos(PI * gp->bump_data[i].ay);
+ gp->bump_data[i].pos.z = 1.5 * sin(PI * gp->bump_data[i].ay)
+ * sin(PI * gp->bump_data[i].ax);
+
+ gp->bump_data[i].cx = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+ gp->bump_data[i].cy = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+ gp->bump_data[i].cpower = (5.0 / pow(bumps, 0.75)) * (((double)random() / (double)RAND_MAX) - 0.5);
+ gp->bump_data[i].csize = 0.35; /*0.1 + 0.25 * (((double)random() / (double)RAND_MAX));*/
+
+ gp->bump_data[i].vx = 0.0;
+ gp->bump_data[i].vy = 0.0;
+ gp->bump_data[i].vpower = 0.0;
+ gp->bump_data[i].vsize = 0.0;
+
+ gp->bump_data[i].mx = 0.003 * ((double)random() / (double)RAND_MAX);
+ gp->bump_data[i].my = 0.003 * ((double)random() / (double)RAND_MAX);
+ gp->bump_data[i].mpower = 0.003 * ((double)random() / (double)RAND_MAX);
+ gp->bump_data[i].msize = 0.003 * ((double)random() / (double)RAND_MAX);
+ }
+
+ /* Initialise lookup table of bump strength */
+ for (i = 0; i < bump_array_size; i++)
+ {
+ double xd, xd2;
+ xd = i / (double)bump_array_size;
+
+ xd2 = 48.0 * xd * xd;
+ gp->bump_shape[i] = 0.1 / (xd2 + 0.1);
+
+ xd2 = 40.0 * xd * xd * xd * xd;
+ gp->wall_shape[i] = 0.4 / (xd2 + 0.1);
+ }
+
+ node = 0;
+ face = 0;
+ for (side = 0; side < 4; side++)
+ {
+ base = node;
+ if (side == 2)
+ {
+ base2 = node;
+ }
+ /*
+ * The start and end of the for loops below are modified based on the
+ * side of the tetrahedron that is being calculated to avoid duplication
+ * of the gp->nodes that are on the edges of the tetrahedron.
+ */
+ for (u = (side > 1); u < (nodes_on_edge - (side > 0)); u++)
+ {
+ node1 = partial (normalise (tetrahedron[side][0]),
+ normalise (tetrahedron[side][1]),
+ u / (double) (nodes_on_edge - 1));
+ node2 = partial (normalise (tetrahedron[side][0]),
+ normalise (tetrahedron[side][2]),
+ u / (double) (nodes_on_edge - 1));
+
+ for (v = (side > 1); v <= (u - (side > 2)); v++)
+ {
+ if (u > 0)
+ result = partial (node1, node2, v / (double) u);
+ else
+ result = node1;
+
+ gp->nodes[node].position = normalise (result);
+ gp->nodes[node].initial_position = gp->nodes[node].position;
+ gp->nodes[node].normal = zero_vector;
+ node++;
+ }
+ }
+
+ /*
+ * Determine which nodes make up each face. The complexity is caused
+ * by having to determine the correct nodes for the edges of the
+ * tetrahedron since the common nodes on the edges are only calculated
+ * once (see above).
+ */
+ for (u = 0; u < (nodes_on_edge - 1); u++)
+ {
+ for (v = 0; v <= u; v++)
+ {
+ {
+ if (side < 2)
+ {
+ gp->faces[face].node1 = base + ((u * (u + 1)) / 2) + v;
+ gp->faces[face].node2 =
+ base + ((u + 1) * (u + 2)) / 2 + v + 1;
+ gp->faces[face].node3 =
+ base + ((u + 1) * (u + 2)) / 2 + v;
+
+ if ((side == 1) && (u == (nodes_on_edge - 2)))
+ {
+ gp->faces[face].node3 =
+ ((u + 1) * (u + 2)) / 2 +
+ nodes_on_edge - v - 1;
+ gp->faces[face].node2 =
+ ((u + 1) * (u + 2)) / 2 +
+ nodes_on_edge - v - 2;
+ }
+ }
+ else if (side < 3)
+ {
+ gp->faces[face].node1 =
+ base + (((u - 1) * u) / 2) + v - 1;
+ gp->faces[face].node2 = base + ((u) * (u + 1)) / 2 + v;
+ gp->faces[face].node3 =
+ base + ((u) * (u + 1)) / 2 + v - 1;
+
+ if (u == (nodes_on_edge - 2))
+ {
+ int n = nodes_on_edge - v - 1;
+ gp->faces[face].node2 =
+ ((nodes_on_edge *
+ (nodes_on_edge + 1)) / 2) +
+ ((n - 1) * (n + 0)) / 2;
+ gp->faces[face].node3 =
+ ((nodes_on_edge *
+ (nodes_on_edge + 1)) / 2) +
+ ((n + 0) * (n + 1)) / 2;
+ }
+ if (v == 0)
+ {
+ gp->faces[face].node1 = (((u + 1) * (u + 2)) / 2) - 1;
+ gp->faces[face].node3 = (((u + 2) * (u + 3)) / 2) - 1;
+ }
+ }
+ else
+ {
+ gp->faces[face].node1 =
+ base + (((u - 2) * (u - 1)) / 2) + v - 1;
+ gp->faces[face].node2 = base + ((u - 1) * u) / 2 + v;
+ gp->faces[face].node3 = base + ((u - 1) * u) / 2 + v - 1;
+
+ if (v == 0)
+ {
+ gp->faces[face].node1 =
+ base2 + ((u * (u + 1)) / 2) - 1;
+ gp->faces[face].node3 =
+ base2 + ((u + 1) * (u + 2)) / 2 - 1;
+ }
+ if (u == (nodes_on_edge - 2))
+ {
+ gp->faces[face].node3 =
+ ((nodes_on_edge *
+ (nodes_on_edge + 1)) / 2) +
+ ((v + 1) * (v + 2)) / 2 - 1;
+ gp->faces[face].node2 =
+ ((nodes_on_edge *
+ (nodes_on_edge + 1)) / 2) +
+ ((v + 2) * (v + 3)) / 2 - 1;
+ }
+ if (v == u)
+ {
+ gp->faces[face].node1 = (u * (u + 1)) / 2;
+ gp->faces[face].node2 = ((u + 1) * (u + 2)) / 2;
+ }
+ }
+ face++;
+ }
+
+ if (v < u)
+ {
+ if (side < 2)
+ {
+ gp->faces[face].node1 = base + ((u * (u + 1)) / 2) + v;
+ gp->faces[face].node2 =
+ base + ((u * (u + 1)) / 2) + v + 1;
+ gp->faces[face].node3 =
+ base + (((u + 1) * (u + 2)) / 2) + v + 1;
+
+ if ((side == 1) && (u == (nodes_on_edge - 2)))
+ {
+ gp->faces[face].node3 =
+ ((u + 1) * (u + 2)) / 2 +
+ nodes_on_edge - v - 2;
+ }
+ }
+ else if (side < 3)
+ {
+ gp->faces[face].node1 =
+ base + ((u * (u - 1)) / 2) + v - 1;
+ gp->faces[face].node2 = base + ((u * (u - 1)) / 2) + v;
+ gp->faces[face].node3 = base + ((u * (u + 1)) / 2) + v;
+
+ if (u == (nodes_on_edge - 2))
+ {
+ int n = nodes_on_edge - v - 1;
+ gp->faces[face].node3 =
+ ((nodes_on_edge *
+ (nodes_on_edge + 1)) / 2) +
+ ((n + 0) * (n - 1)) / 2;
+ }
+ if (v == 0)
+ {
+ gp->faces[face].node1 = (((u + 1) * (u + 2)) / 2) - 1;
+ }
+ }
+ else
+ {
+ gp->faces[face].node1 =
+ base + (((u - 2) * (u - 1)) / 2) + v - 1;
+ gp->faces[face].node2 =
+ base + (((u - 2) * (u - 1)) / 2) + v;
+ gp->faces[face].node3 = base + (((u - 1) * u) / 2) + v;
+
+ if (v == 0)
+ {
+ gp->faces[face].node1 = base2 + (u * (u + 1)) / 2 - 1;
+ }
+ if (u == (nodes_on_edge - 2))
+ {
+ gp->faces[face].node3 =
+ ((nodes_on_edge * (nodes_on_edge + 1)) / 2) +
+ ((v + 2) * (v + 3)) / 2 - 1;
+ }
+ if (v == (u - 1))
+ {
+ gp->faces[face].node2 = (u * (u + 1)) / 2;
+ }
+ }
+ face++;
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+/******************************************************************************
+ *
+ * Return the magnitude of the given vector
+ */
+#if 0
+static inline double
+length (Vector3D u)
+{
+ return sqrt (u.x * u.x + u.y * u.y + u.z * u.z);
+}
+#endif
+
+/******************************************************************************
+ *
+ * Calculate the blob shape.
+ */
+static void
+calc_blob(mirrorblobstruct *gp,
+ int width,
+ int height,
+ int bump_array_size,
+ float limit,
+ double fade)
+{
+ /* Loop variables */
+ int i, index, face;
+ /* position of a node */
+ Vector3D node;
+ Vector3D offset;
+ Vector3D bump_vector;
+ int dist;
+
+ /* Update position and strength of bumps used to distort the blob */
+ for (i = 0; i < bumps; i++)
+ {
+ gp->bump_data[i].vx += gp->bump_data[i].mx*(gp->bump_data[i].cx - gp->bump_data[i].ax);
+ gp->bump_data[i].vy += gp->bump_data[i].my*(gp->bump_data[i].cy - gp->bump_data[i].ay);
+ gp->bump_data[i].vpower += gp->bump_data[i].mpower
+ * (gp->bump_data[i].cpower - gp->bump_data[i].power);
+ gp->bump_data[i].vsize += gp->bump_data[i].msize
+ * (gp->bump_data[i].csize - gp->bump_data[i].size);
+
+ gp->bump_data[i].ax += 0.1 * gp->bump_data[i].vx;
+ gp->bump_data[i].ay += 0.1 * gp->bump_data[i].vy;
+ gp->bump_data[i].power += 0.1 * gp->bump_data[i].vpower;
+ gp->bump_data[i].size += 0.1 * gp->bump_data[i].vsize;
+
+ gp->bump_data[i].pos.x = 1.0 * sin(PI * gp->bump_data[i].ay)
+ * cos(PI * gp->bump_data[i].ax);
+ gp->bump_data[i].pos.y = 1.0 * cos(PI * gp->bump_data[i].ay);
+ gp->bump_data[i].pos.z = 1.0 * sin(PI * gp->bump_data[i].ay)
+ * sin(PI * gp->bump_data[i].ax);
+ }
+
+ /* Update calculate new position for each vertex based on an offset from
+ * the initial position
+ */
+ gp->blob_force = zero_vector;
+ for (index = 0; index < gp->num_nodes; ++index)
+ {
+ node = gp->nodes[index].initial_position;
+ gp->nodes[index].normal = node;
+
+ offset = zero_vector;
+ for ( i = 0; i < bumps; i++)
+ {
+ bump_vector = subtract(gp->bump_data[i].pos, node);
+
+ dist = bump_array_size * dot(bump_vector, bump_vector) * gp->bump_data[i].size;
+
+ if (dist < bump_array_size)
+ {
+ add(&offset, scale(node, gp->bump_data[i].power * gp->bump_shape[dist]));
+ add(&gp->blob_force, scale(node, gp->bump_data[i].power * gp->bump_shape[dist]));
+ }
+ }
+
+ add(&node, offset);
+ node = scale(node, zoom);
+ add(&node, gp->blob_center);
+
+ if (do_walls)
+ {
+ if (node.z < -limit) node.z = -limit;
+ if (node.z > limit) node.z = limit;
+
+ dist = bump_array_size * (node.z + limit) * (node.z + limit) * 0.5;
+ if (dist < bump_array_size)
+ {
+ node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+ node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+ gp->blob_force.z += (node.z + limit);
+ }
+ else
+ {
+ dist = bump_array_size * (node.z - limit) * (node.z - limit) * 0.5;
+ if (dist < bump_array_size)
+ {
+ node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+ node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+ gp->blob_force.z -= (node.z - limit);
+ }
+
+ if (node.y < -limit) node.y = -limit;
+ if (node.y > limit) node.y = limit;
+
+ dist = bump_array_size * (node.y + limit) * (node.y + limit) * 0.5;
+ if (dist < bump_array_size)
+ {
+ node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+ node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+ gp->blob_force.y += (node.y + limit);
+ }
+ else
+ {
+ dist = bump_array_size * (node.y - limit) * (node.y - limit) * 0.5;
+ if (dist < bump_array_size)
+ {
+ node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+ node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+ gp->blob_force.y -= (node.y - limit);
+ }
+ }
+
+ if (node.x < -limit) node.x = -limit;
+ if (node.x > limit) node.x = limit;
+
+ dist = bump_array_size * (node.x + limit) * (node.x + limit) * 0.5;
+ if (dist < bump_array_size)
+ {
+ node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+ node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+ gp->blob_force.x += (node.x + limit);
+ }
+ else
+ {
+ dist = bump_array_size * (node.x - limit) * (node.x - limit) * 0.5;
+ if (dist < bump_array_size)
+ {
+ node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+ node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+ gp->blob_force.x -= (node.x - limit);
+ }
+ }
+
+ if (node.y < -limit) node.y = -limit;
+ if (node.y > limit) node.y = limit;
+ }
+ }
+ gp->dots[index] = node;
+ }
+
+ /* Determine the normal for each face */
+ for (face = 0; face < gp->num_faces; face++)
+ {
+ /* Use pointers to indexed nodes to help readability */
+ int index1 = gp->faces[face].node1;
+ int index2 = gp->faces[face].node2;
+ int index3 = gp->faces[face].node3;
+
+ gp->faces[face].normal = cross(subtract(gp->dots[index2], gp->dots[index1]),
+ subtract(gp->dots[index3], gp->dots[index1]));
+
+ /* Add the normal for the face onto the normal for the verticies of
+ the face */
+ add(&gp->nodes[index1].normal, gp->faces[face].normal);
+ add(&gp->nodes[index2].normal, gp->faces[face].normal);
+ add(&gp->nodes[index3].normal, gp->faces[face].normal);
+ }
+
+ /* Use the normal to set the colour and texture */
+ if (do_colour || do_texture)
+ {
+ for (index = 0; index < gp->num_nodes; ++index)
+ {
+ gp->normals[index] = normalise(gp->nodes[index].normal);
+
+ if (do_colour)
+ {
+ gp->colours[index].red = (int)(255.0 * fabs(gp->normals[index].x));
+ gp->colours[index].green = (int)(255.0 * fabs(gp->normals[index].y));
+ gp->colours[index].blue = (int)(255.0 * fabs(gp->normals[index].z));
+ gp->colours[index].alpha = (int)(255.0 * fade);
+ }
+ if (do_texture)
+ {
+ if (offset_texture)
+ {
+ const float cube_size = 100.0;
+ Vector3D eye = {0.0, 0.0, 50.0};
+ Vector3D eye_r = normalise(subtract(gp->dots[index], eye));
+ Vector3D reference = subtract(eye_r, scale(gp->normals[index], 2.0 * dot(eye_r, gp->normals[index])));
+ double x = 0.0;
+ double y = 0.0;
+ double n, n_min = 10000.0, sign = 1.0;
+ if (fabs(reference.z) > 1e-9)
+ {
+ n = (cube_size - gp->dots[index].z) / reference.z;
+ if (n < 0.0)
+ {
+ n = (-cube_size - gp->dots[index].z) / reference.z;
+ sign = 3.0;
+ }
+ if (n > 0.0)
+ {
+ x = sign * (gp->dots[index].x + n * reference.x);
+ y = sign * (gp->dots[index].y + n * reference.y);
+ n_min = n;
+ }
+ }
+ if (fabs(reference.x) > 1e-9)
+ {
+ n = (cube_size - gp->dots[index].x) / reference.x;
+ sign = 1.0;
+ if (n < 0.0)
+ {
+ n = (-cube_size - gp->dots[index].x) / reference.x;
+ sign = -1.0;
+ }
+ if ((n > 0.0) && (n < n_min))
+ {
+ x = sign * (2.0 * cube_size - (gp->dots[index].z + n * reference.z));
+ y = sign * x * (gp->dots[index].y + n * reference.y) / cube_size;
+ n_min = n;
+ }
+ }
+ if (fabs(reference.y) > 1e-9)
+ {
+ n = (cube_size - gp->dots[index].y) / reference.y;
+ sign = 1.0;
+ if (n < 0.0)
+ {
+ n = (-cube_size - gp->dots[index].y) / reference.y;
+ sign = -1.0;
+ }
+ if ((n > 0.0) && (n < n_min))
+ {
+ y = sign * (2.0 * cube_size -( gp->dots[index].z + n * reference.z));
+ x = sign * y * (gp->dots[index].x + n * reference.x) / cube_size;
+ }
+ }
+
+ gp->tex_coords[index].x = 0.5 + x / (cube_size * 6.0);
+ gp->tex_coords[index].y = 0.5 - y / (cube_size * 6.0);
+ }
+ else
+ {
+ gp->tex_coords[index].x = 0.5
+ * (1.0 + asin(gp->normals[index].x) / (0.5 * PI));
+ gp->tex_coords[index].y = -0.5
+ * (1.0 + asin(gp->normals[index].y) / (0.5 * PI));
+ }
+ /* Adjust the texture co-ordinates to from range 0..1 to
+ * 0..width or 0..height as appropriate
+ */
+ gp->tex_coords[index].x *= gp->tex_width[gp->current_texture];
+ gp->tex_coords[index].y *= gp->tex_height[gp->current_texture];
+ }
+ }
+ }
+
+ /* Update the center of the whole blob */
+ add(&gp->blob_velocity, scale (subtract (gp->blob_anchor, gp->blob_center), 1.0 / 80.0));
+ add(&gp->blob_velocity, scale (gp->blob_force, 0.01 / gp->num_nodes));
+
+ add(&gp->blob_center, scale(gp->blob_velocity, 0.5));
+
+ gp->blob_velocity = scale(gp->blob_velocity, 0.999);
+}
+
+static void
+draw_vertex(mirrorblobstruct *gp, int index)
+{
+ if (do_colour)
+ {
+ glColor3ub(gp->colours[index].red,
+ gp->colours[index].green,
+ gp->colours[index].blue);
+ }
+ if (load_textures)
+ {
+ glTexCoord2fv(&gp->tex_coords[index].x);
+ }
+ glNormal3fv(&gp->normals[index].x);
+ glVertex3fv(&gp->dots[index].x);
+}
+
+/******************************************************************************
+ *
+ * Draw the blob shape.
+ *
+ */
+static void
+draw_blob (mirrorblobstruct *gp)
+{
+ int face;
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+/* glRotatef(current_device_rotation(), 0, 0, 1); */
+
+ /* Move down the z-axis. */
+ glTranslatef (0.0, 0.0, -4.0);
+
+ gltrackball_rotate (gp->trackball);
+
+ /* glColor4ub (255, 0, 0, 128); */
+ glBegin(GL_TRIANGLES);
+ for (face = 0; face < gp->num_faces; face++)
+ {
+ draw_vertex(gp, gp->faces[face].node1);
+ draw_vertex(gp, gp->faces[face].node2);
+ draw_vertex(gp, gp->faces[face].node3);
+ }
+ glEnd();
+
+#if 0
+ glBegin(GL_LINES);
+ for (face = 0; face < gp->num_faces; face++)
+ {
+ if (gp->normals[gp->faces[face].node1].z > 0.0)
+ {
+ Vector3D end = gp->dots[gp->faces[face].node1];
+ glVertex3dv(&end);
+ add(&end, scale(gp->normals[gp->faces[face].node1], 0.25));
+ glVertex3dv(&end);
+ }
+ }
+ glEnd();
+#endif
+
+ glLoadIdentity();
+}
+
+/******************************************************************************
+ *
+ * Draw the background image simply map a texture onto a full screen quad.
+ */
+static void
+draw_background (ModeInfo *mi)
+{
+ mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
+ GLfloat rot = current_device_rotation();
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+ glEnable (GL_TEXTURE_2D);
+ glDisable(GL_LIGHTING);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+
+ /* Reset the projection matrix to make it easier to get the size of the quad
+ * correct
+ */
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+
+ glRotatef (-rot, 0, 0, 1);
+/*
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+ glScalef (s, 1/s, 1);
+ }
+*/
+
+ glOrtho(0.0, MI_WIDTH(mi), MI_HEIGHT(mi), 0.0, -1000.0, 1000.0);
+
+ glBegin (GL_QUADS);
+
+ glTexCoord2f (0.0, 0.0);
+ glVertex2i (0, 0);
+
+ glTexCoord2f (0.0, gp->tex_height[gp->current_texture]);
+ glVertex2i (0, MI_HEIGHT(mi));
+
+ glTexCoord2f (gp->tex_width[gp->current_texture], gp->tex_height[gp->current_texture]);
+ glVertex2i (MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glTexCoord2f (gp->tex_width[gp->current_texture], 0.0);
+ glVertex2i (MI_WIDTH(mi), 0);
+ glEnd();
+
+ glPopMatrix ();
+ glMatrixMode (GL_MODELVIEW);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+}
+
+/******************************************************************************
+ *
+ * Update the scene.
+ */
+static GLvoid
+draw_scene(ModeInfo * mi)
+{
+ mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
+
+ double fade = 0.0;
+ double current_time;
+ check_gl_error ("draw_scene");
+
+ mi->polygon_count = 0;
+ glColor4f (1.0, 1.0, 1.0, 1.0);
+
+ current_time = double_time();
+ switch (gp->state)
+ {
+ case INITIALISING:
+ glColor4f (0.0, 0.0, 0.0, 1.0);
+ fade = 1.0;
+ break;
+
+ case TRANSITIONING:
+ fade = 1.0 - (current_time - gp->state_start_time) / fade_time;
+ break;
+
+ case LOADING: /* FALL-THROUGH */
+ case HOLDING:
+ fade = 1.0;
+ break;
+ }
+
+ /* Set the correct texture, when transitioning this ensures that the first draw
+ * is the original texture (which has the new texture drawn over it with decreasing
+ * transparency)
+ */
+ if (load_textures)
+ {
+ glBindTexture(GL_TEXTURE_2D, gp->textures[gp->current_texture]);
+ }
+
+ glDisable (GL_DEPTH_TEST);
+ if (do_paint_background)
+ {
+ glEnable (GL_TEXTURE_2D);
+ if (motion_blur > 0.0)
+ {
+ glClear(GL_DEPTH_BUFFER_BIT);
+ glEnable (GL_BLEND);
+ glColor4f (1.0, 1.0, 1.0, motion_blur);
+ }
+ else
+ {
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ }
+ draw_background (mi);
+ mi->polygon_count++;
+
+ /* When transitioning between two images paint the new image over the old
+ * image with a varying alpha value to get a smooth fade.
+ */
+ if (gp->state == TRANSITIONING)
+ {
+ glEnable (GL_BLEND);
+ /* Select the texture to transition to */
+ glBindTexture (GL_TEXTURE_2D, gp->textures[1 - gp->current_texture]);
+ glColor4f (1.0, 1.0, 1.0, 1.0 - fade);
+
+ draw_background (mi);
+ mi->polygon_count++;
+
+ /* Select the original texture to draw the blob */
+ glBindTexture (GL_TEXTURE_2D, gp->textures[gp->current_texture]);
+ }
+ /* Clear the depth buffer bit so the backgound is behind the blob */
+ glClear(GL_DEPTH_BUFFER_BIT);
+ }
+ else if (motion_blur > 0.0)
+ {
+ glEnable (GL_BLEND);
+ glColor4f (0.0, 0.0, 0.0, motion_blur);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ glTranslatef (0.0, 0.0, -4.0);
+ glRectd (-10.0, -10.0, 10.0, 10.0);
+ if (wireframe)
+ {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ }
+ glClear(GL_DEPTH_BUFFER_BIT);
+ }
+ else
+ {
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ }
+
+ if (!do_texture)
+ {
+ fade = 1.0;
+ glDisable (GL_TEXTURE_2D);
+ }
+
+ calc_blob(gp, MI_WIDTH(mi), MI_HEIGHT(mi), BUMP_ARRAY_SIZE, 2.5, fade * blend);
+
+ set_blob_gl_state(fade * blend);
+
+ if (blend < 1.0)
+ {
+ /* Disable the colour chanels so that only the depth buffer is updated */
+ glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ draw_blob(gp);
+ mi->polygon_count += gp->num_faces;
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ }
+
+ glDepthFunc(GL_LEQUAL);
+ draw_blob(gp);
+ mi->polygon_count += gp->num_faces;
+
+ /* While transitioning between images draw a second blob with a modified
+ * alpha value.
+ */
+ if (load_textures && (hold_time > 0))
+ {
+ switch (gp->state)
+ {
+ case INITIALISING:
+ if (!gp->waiting_for_image_p)
+ {
+ gp->state = HOLDING;
+ }
+ break;
+
+ case HOLDING:
+ if ((current_time - gp->state_start_time) > hold_time)
+ {
+ grab_texture(mi, 1 - gp->current_texture);
+ gp->state = LOADING;
+ }
+ break;
+
+ case LOADING:
+ /* Once the image has loaded move to the TRANSITIONING STATE */
+ if (!gp->waiting_for_image_p)
+ {
+ gp->state = TRANSITIONING;
+ /* Get the time again rather than using the current time so
+ * that the time taken by the grab_texture function is not part
+ * of the fade time
+ */
+ gp->state_start_time = double_time();
+ }
+ break;
+
+ case TRANSITIONING:
+
+ /* If the blob is textured draw over existing blob to fade between
+ * images
+ */
+ if (do_texture)
+ {
+ /* Select the texture to transition to */
+ glBindTexture (GL_TEXTURE_2D, gp->textures[1 - gp->current_texture]);
+ glEnable (GL_BLEND);
+
+ /* If colour is enabled update the alpha data in the buffer and
+ * use that in the blending since the alpha of the incomming
+ * verticies will not be correct
+ */
+ if (do_colour)
+ {
+ glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
+ glClearColor(0.0, 0.0, 0.0, (1.0 - fade) * blend);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);
+ }
+ else
+ {
+ glColor4f (0.9, 0.9, 1.0, (1.0 - fade) * blend);
+ }
+
+ draw_blob (gp);
+ mi->polygon_count += gp->num_faces;
+
+ if (do_colour)
+ {
+ /* Restore the 'standard' blend functions. */
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ }
+
+ if ((current_time - gp->state_start_time) > fade_time)
+ {
+ gp->state = HOLDING;
+ gp->state_start_time = current_time;
+ gp->current_texture = 1 - gp->current_texture;
+ }
+ break;
+
+ }
+ }
+}
+
+/******************************************************************************
+ *
+ * XMirrorblob screen update entry
+ */
+ENTRYPOINT void
+draw_mirrorblob(ModeInfo * mi)
+{
+ mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!gp->glx_context)
+ return;
+
+ /* Wait for the first image; for subsequent images, load them in the
+ background while animating. */
+ if (gp->waiting_for_image_p && gp->first_image_p)
+ return;
+
+ glXMakeCurrent(display, window, *(gp->glx_context));
+ draw_scene(mi);
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+/******************************************************************************
+ *
+ * XMirrorblob screen resize entry
+ */
+ENTRYPOINT void
+reshape_mirrorblob(ModeInfo *mi, int width, int height)
+{
+ glViewport( 0, 0, MI_WIDTH(mi), MI_HEIGHT(mi) );
+ reset_projection(width, height);
+}
+
+/****************************************************************************
+ *
+ * Handle Mouse events
+ */
+ENTRYPOINT Bool
+mirrorblob_handle_event (ModeInfo * mi, XEvent * event)
+{
+ mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN (mi)];
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button4)
+ {
+ zoom *= 1.1;
+ return True;
+ }
+ else if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button5)
+ {
+
+ zoom *= 0.9;
+ return True;
+ }
+ else if (gltrackball_event_handler (event, gp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &gp->button_down))
+ {
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ gp->state_start_time = 0;
+ gp->state = HOLDING;
+ return True;
+ }
+
+ return False;
+}
+
+/******************************************************************************
+ *
+ * XMirrorblob initialise entry
+ */
+ENTRYPOINT void
+init_mirrorblob(ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+
+ mirrorblobstruct *gp;
+
+ MI_INIT(mi, Mirrorblob);
+ gp = &Mirrorblob[screen];
+
+ gp->window = MI_WINDOW(mi);
+ if ((gp->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_mirrorblob(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ initialize_gl(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+ gp->trackball = gltrackball_init(False);
+
+ initialise_blob(gp, MI_WIDTH(mi), MI_HEIGHT(mi), BUMP_ARRAY_SIZE);
+ gp->state = INITIALISING;
+ gp->state_start_time = double_time();
+
+ gp->first_image_p = True;
+}
+
+/******************************************************************************
+ *
+ * XMirrorblob cleanup entry
+ */
+ENTRYPOINT void
+free_mirrorblob(ModeInfo * mi)
+{
+ mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
+ if (gp->nodes) free(gp->nodes);
+ if (gp->faces) free(gp->faces);
+ if (gp->bump_data) free(gp->bump_data);
+ if (gp->colours) free(gp->colours);
+ if (gp->tex_coords) free(gp->tex_coords);
+ if (gp->dots) free(gp->dots);
+ if (gp->wall_shape) free(gp->wall_shape);
+ if (gp->bump_shape) free(gp->bump_shape);
+}
+
+XSCREENSAVER_MODULE ("MirrorBlob", mirrorblob)
+
+#endif
diff --git a/hacks/glx/mirrorblob.man b/hacks/glx/mirrorblob.man
new file mode 100644
index 0000000..c61f7a6
--- /dev/null
+++ b/hacks/glx/mirrorblob.man
@@ -0,0 +1,107 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+mirrorblob - Draws a wobbly blob that distorts the image behind it.
+.SH SYNOPSIS
+.B mirrorblob
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-wire]
+[\-delay \fInumber\fP]
+[\-fog]
+[\-walls]
+[\-colour]
+[\-texture]
+[\-offset-texture]
+[\-blend]
+[\-antialias]
+[\-resolution \fInumber\fP]
+[\-bumps \fInumber\fP]
+[\-fade-time \fInumber\fP]
+[\-hold-time \fInumber\fP]
+[\-zoom \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+Draws a wobbling blob, making use of alpha blending, fog,
+textures, and lighting, plus a ``frames per second'' meter so that you can
+tell how fast your graphics card is... Requires OpenGL.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.B \-wire
+Render in wireframe instead of solid.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-fog | \-no-fog
+Whether to enable fog.
+.TP 8
+.B \-walls | \-no-walls
+Add walls for blob to hit.
+.TP 8
+.B \-colour | \-no-colour
+Draw coloured blob. If also textured, the texture will have color mixed in.
+.TP 8
+.B \-texture | \-no-texture
+Whether to wrap a texture image on the blob.
+.TP 8
+.B \-offset_texture | \-no-offset_texture
+Whether to ofset the texture calculations to only use a region of the image
+ under the blob. This works well with a semi-transparent blob.
+.TP 8
+.B \-blend | \-no-blend
+Whether to draw a transparent blob. (see also offset_texture above)
+.TP 8
+.B \-antialias | \-no-antialias
+Whether to antialias lines.
+.TP 8
+.B \-resolution \fInumber\fP
+Resolution of the tessellation used to calculate and draw the blob. Larger
+ numbers give a smoother blob but increase calculation times exponentially.
+.TP 8
+.B \-bumps \fInumber\fP
+Number of bumps used to distort the blob.
+.TP 8
+.B \-hold-time \fInumber\fP
+Time until loading a new image.
+.TP 8
+.B \-fade-time \fInumber\fP
+Time taken to transition between images.
+.TP 8
+.B \-zoom \fInumber\fP
+Size multiplier for blob.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003 by Jon Dowdall. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jon Dowdall.
diff --git a/hacks/glx/moebius.c b/hacks/glx/moebius.c
new file mode 100644
index 0000000..5ef2c0d
--- /dev/null
+++ b/hacks/glx/moebius.c
@@ -0,0 +1,788 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* moebius --- Moebius Strip II, an Escher-like GL scene with ants. */
+
+#if 0
+static const char sccsid[] = "@(#)moebius.c 5.01 2001/03/01 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The RotateAroundU() routine was adapted from the book
+ * "Computer Graphics Principles and Practice
+ * Foley - vanDam - Feiner - Hughes
+ * Second Edition" Pag. 227, exercise 5.15.
+ *
+ * This mode shows some interesting scenes that are impossible OR very
+ * wierd to build in the real universe. Much of the scenes are inspirated
+ * on Mauritz Cornelis Escher's works which derivated the mode's name.
+ * M.C. Escher (1898-1972) was a dutch artist and many people prefer to
+ * say he was a mathematician.
+ *
+ * Thanks goes to Brian Paul for making it possible and inexpensive to use
+ * OpenGL at home.
+ *
+ * Since I'm not a native English speaker, my apologies for any grammatical
+ * mistakes.
+ *
+ * My e-mail address is
+ * mfvianna@centroin.com.br
+ *
+ * Marcelo F. Vianna (Jun-01-1997)
+ *
+ * Revision History:
+ * 05-Apr-2002: Removed all gllist uses (fix some bug with nvidia driver)
+ * 01-Mar-2001: backported from xscreensaver by lassauge@mail.dotcom.fr
+ * Feb-2001: Made motion and rotation be smoother Jamie Zawinski
+ * <jwz@jwz.org>
+ * 01-Nov-2000: Allocation checks
+ * 01-Jan-1998: Mode separated from escher and renamed
+ * 08-Jun-1997: New scene implemented: "Impossible Cage" based in a M.C.
+ * Escher's painting with the same name (quite similar). The
+ * first GL mode to use texture mapping.
+ * The "Impossible Cage" scene doesn't use DEPTH BUFFER, the
+ * wood planks are drawn consistently using GL_CULL_FACE, and
+ * the painter's algorithm is used to sort the planks.
+ * Marcelo F. Vianna.
+ * 07-Jun-1997: Speed ups in Moebius Strip using GL_CULL_FACE.
+ * Marcelo F. Vianna.
+ * 03-Jun-1997: Initial Release (Only one scene: "Moebius Strip")
+ * The Moebius Strip scene was inspirated in a M.C. Escher's
+ * painting named Moebius Strip II in wich ants walk across a
+ * Moebius Strip path, sometimes meeting each other and sometimes
+ * being in "opposite faces" (note that the moebius strip has
+ * only one face and one edge).
+ * Marcelo F. Vianna.
+ */
+
+/*-
+ * Texture mapping is only available on RGBA contexts, Mono and color index
+ * visuals DO NOT support texture mapping in OpenGL.
+ *
+ * BUT Mesa do implements RGBA contexts in pseudo color visuals, so texture
+ * mapping shuld work on PseudoColor, DirectColor, TrueColor using Mesa. Mono
+ * is not officially supported for both OpenGL and Mesa, but seems to not crash
+ * Mesa.
+ *
+ * In real OpenGL, PseudoColor DO NOT support texture map (as far as I know).
+ */
+
+#ifdef STANDALONE
+# define MODE_moebius
+# define free_moebius 0
+# define release_moebius 0
+# define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#ifdef MODE_moebius
+
+#if 0 /* Hey, this never actually used the texture at all! */
+#if 0
+#include "e_textures.h"
+#else
+#include "ximage-loader.h"
+#include "images/gen/wood_png.h"
+#endif
+#endif /* 0 */
+
+#include "sphere.h"
+#include "tube.h"
+
+#include "rotator.h"
+#include "gltrackball.h"
+
+#define DEF_SOLIDMOEBIUS "False"
+#define DEF_DRAWANTS "True"
+
+static int solidmoebius;
+static int drawants;
+
+static XrmOptionDescRec opts[] =
+{
+ {"-solidmoebius", ".moebius.solidmoebius", XrmoptionNoArg, "on"},
+ {"+solidmoebius", ".moebius.solidmoebius", XrmoptionNoArg, "off"},
+ {"-ants", ".moebius.drawants", XrmoptionNoArg, "on"},
+ {"+ants", ".moebius.drawants", XrmoptionNoArg, "off"}
+};
+static argtype vars[] =
+{
+ {&solidmoebius, "solidmoebius", "Solidmoebius", DEF_SOLIDMOEBIUS, t_Bool},
+ {&drawants, "drawants", "Drawants", DEF_DRAWANTS, t_Bool}
+
+};
+static OptionStruct desc[] =
+{
+ {"-/+solidmoebius", "select between a SOLID or a NET Moebius Strip"},
+ {"-/+drawants", "turn on/off walking ants"}
+};
+
+ENTRYPOINT ModeSpecOpt moebius_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+#ifdef USE_MODULES
+ModStruct moebius_description =
+{"moebius", "init_moebius", "draw_moebius", (char *) NULL,
+ "draw_moebius", "change_moebius", (char *) NULL, &moebius_opts,
+ 1000, 1, 1, 1, 4, 1.0, "",
+ "Shows Moebius Strip II, an Escher-like GL scene with ants", 0, NULL};
+
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 0.4
+
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+#define ObjMoebiusStrip 0
+#define ObjAntBody 1
+#define MaxObj 2
+
+/*************************************************************************/
+
+typedef struct {
+ GLint WindH, WindW;
+ GLfloat step;
+ GLfloat ant_position;
+ float ant_step;
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+} moebiusstruct;
+
+static const float front_shininess[] = {60.0};
+static const float front_specular[] = {0.7, 0.7, 0.7, 1.0};
+static const float ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const float diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const float position0[] = {1.0, 1.0, 1.0, 0.0};
+static const float position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const float lmodel_twoside[] = {GL_TRUE};
+
+static const float MaterialRed[] = {0.7, 0.0, 0.0, 1.0};
+static const float MaterialGreen[] = {0.1, 0.5, 0.2, 1.0};
+static const float MaterialBlue[] = {0.0, 0.0, 0.7, 1.0};
+static const float MaterialCyan[] = {0.2, 0.5, 0.7, 1.0};
+static const float MaterialYellow[] = {0.7, 0.7, 0.0, 1.0};
+static const float MaterialMagenta[] = {0.6, 0.2, 0.5, 1.0};
+static const float MaterialWhite[] = {0.7, 0.7, 0.7, 1.0};
+static const float MaterialGray[] = {0.2, 0.2, 0.2, 1.0};
+static const float MaterialGray5[] = {0.5, 0.5, 0.5, 1.0};
+static const float MaterialGray6[] = {0.6, 0.6, 0.6, 1.0};
+static const float MaterialGray8[] = {0.8, 0.8, 0.8, 1.0};
+
+static moebiusstruct *moebius = (moebiusstruct *) NULL;
+
+#define NUM_SCENES 2
+
+static Bool
+mySphere(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if ((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluSphere(quadObj, radius, 16, 16);
+ gluDeleteQuadric(quadObj);
+#else
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ unit_sphere (16, 16, False);
+ glPopMatrix();
+#endif
+ return True;
+}
+
+static Bool
+myCone(float radius)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ if ((quadObj = gluNewQuadric()) == 0)
+ return False;
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluCylinder(quadObj, radius, 0, radius * 3, 8, 1);
+ gluDeleteQuadric(quadObj);
+#else
+ cone (0, 0, 0,
+ 0, 0, radius * 3,
+ radius, 0,
+ 8, True, True, False);
+#endif
+ return True;
+}
+
+static Bool
+draw_moebius_ant(moebiusstruct * mp, const float *Material, int mono)
+{
+ float cos1 = cos(mp->ant_step);
+ float cos2 = cos(mp->ant_step + 2 * Pi / 3);
+ float cos3 = cos(mp->ant_step + 4 * Pi / 3);
+ float sin1 = sin(mp->ant_step);
+ float sin2 = sin(mp->ant_step + 2 * Pi / 3);
+ float sin3 = sin(mp->ant_step + 4 * Pi / 3);
+
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray5);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, Material);
+ glEnable(GL_CULL_FACE);
+ glPushMatrix();
+ glScalef(1, 1.3, 1);
+ if (!mySphere(0.18))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glTranslatef(0.00, 0.30, 0.00);
+ if (!mySphere(0.2))
+ return False;
+
+ glTranslatef(-0.05, 0.17, 0.05);
+ glRotatef(-90, 1, 0, 0);
+ glRotatef(-25, 0, 1, 0);
+ if (!myCone(0.05))
+ return False;
+ glTranslatef(0.00, 0.10, 0.00);
+ if (!myCone(0.05))
+ return False;
+ glRotatef(25, 0, 1, 0);
+ glRotatef(90, 1, 0, 0);
+
+ glScalef(1, 1.3, 1);
+ glTranslatef(0.15, -0.65, 0.05);
+ if (!mySphere(0.25))
+ return False;
+ glScalef(1, 1 / 1.3, 1);
+ glPopMatrix();
+ glDisable(GL_CULL_FACE);
+
+ glDisable(GL_LIGHTING);
+ /* ANTENNAS */
+ glBegin(GL_LINES);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, 0.40);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.30, 0.00);
+ glColor3fv(MaterialGray);
+ glVertex3f(0.40, 0.70, -0.40);
+ glEnd();
+ glBegin(GL_POINTS);
+ if (mono)
+ glColor3fv(MaterialGray6);
+ else
+ glColor3fv(MaterialRed);
+ glVertex3f(0.40, 0.70, 0.40);
+ glVertex3f(0.40, 0.70, -0.40);
+ glEnd();
+
+ /* LEFT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos1, 0.15, 0.25);
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+ glEnd();
+
+ /* LEFT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.00, 0.18);
+ glVertex3f(0.35 + 0.05 * cos2, 0.00, 0.25);
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+ glEnd();
+
+ /* LEFT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, -0.05, 0.18);
+ glVertex3f(0.35 + 0.05 * cos3, -0.15, 0.25);
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+ glEnd();
+
+ /* RIGHT-FRONT ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin1, 0.15, -0.25);
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+ glEnd();
+
+ /* RIGHT-CENTER ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, 0.00, -0.18);
+ glVertex3f(0.35 - 0.05 * sin2, 0.00, -0.25);
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+ glEnd();
+
+ /* RIGHT-BACK ARM */
+ glBegin(GL_LINE_STRIP);
+ if (mono)
+ glColor3fv(MaterialGray5);
+ else
+ glColor3fv(Material);
+ glVertex3f(0.00, -0.05, -0.18);
+ glVertex3f(0.35 - 0.05 * sin3, -0.15, -0.25);
+ glColor3fv(MaterialGray);
+ glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+ glEnd();
+
+ glBegin(GL_POINTS);
+ if (mono)
+ glColor3fv(MaterialGray8);
+ else
+ glColor3fv(MaterialMagenta);
+ glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+ glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+ glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+ glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+ glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+ glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+ glEnd();
+
+ glEnable(GL_LIGHTING);
+
+ mp->ant_step += 0.3;
+ return True;
+}
+
+static void
+RotateAaroundU(float Ax, float Ay, float Az,
+ float Ux, float Uy, float Uz,
+ float *Cx, float *Cy, float *Cz,
+ float Theta)
+{
+ float cosO = cos(Theta);
+ float sinO = sin(Theta);
+ float one_cosO = 1 - cosO;
+ float Ux2 = sqr(Ux);
+ float Uy2 = sqr(Uy);
+ float Uz2 = sqr(Uz);
+ float UxUy = Ux * Uy;
+ float UxUz = Ux * Uz;
+ float UyUz = Uy * Uz;
+
+ *Cx = (Ux2 + cosO * (1 - Ux2)) * Ax + (UxUy * one_cosO - Uz * sinO) * Ay + (UxUz * one_cosO + Uy * sinO) * Az;
+ *Cy = (UxUy * one_cosO + Uz * sinO) * Ax + (Uy2 + cosO * (1 - Uy2)) * Ay + (UyUz * one_cosO - Ux * sinO) * Az;
+ *Cz = (UxUz * one_cosO - Uy * sinO) * Ax + (UyUz * one_cosO + Ux * sinO) * Ay + (Uz2 + cosO * (1 - Uz2)) * Az;
+}
+
+#define MoebiusDivisions 40
+#define MoebiusTransversals 4
+static Bool
+draw_moebius_strip(ModeInfo * mi)
+{
+ GLfloat Phi, Theta;
+ GLfloat cPhi, sPhi;
+ moebiusstruct *mp = &moebius[MI_SCREEN(mi)];
+ int i, j;
+ int mono = MI_IS_MONO(mi);
+
+ float Cx, Cy, Cz;
+
+#ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ solidmoebius = True;
+#endif
+
+ if (solidmoebius) {
+ glBegin(GL_QUAD_STRIP);
+ Phi = 0;
+ i = 0;
+ while (i < (MoebiusDivisions * 2 + 1)) {
+ Theta = Phi / 2;
+ cPhi = cos(Phi);
+ sPhi = sin(Phi);
+
+ i++;
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
+ else if (i % 2)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialRed);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+
+ RotateAaroundU(cPhi, sPhi, 0, -sPhi, cPhi, 0, &Cx, &Cy, &Cz, Theta);
+ glNormal3f(Cx, Cy, Cz);
+ RotateAaroundU(0, 0, 1, -sPhi, cPhi, 0, &Cx, &Cy, &Cz, Theta);
+ glVertex3f(cPhi * 3 + Cx, sPhi * 3 + Cy, +Cz);
+ glVertex3f(cPhi * 3 - Cx, sPhi * 3 - Cy, -Cz);
+
+ Phi += Pi / MoebiusDivisions;
+ }
+ glEnd();
+ } else {
+ for (j = -MoebiusTransversals; j < MoebiusTransversals; j++) {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ glBegin(GL_QUAD_STRIP);
+ Phi = 0;
+ i = 0;
+ while (i < (MoebiusDivisions * 2 + 1)) {
+ Theta = Phi / 2;
+ cPhi = cos(Phi);
+ sPhi = sin(Phi);
+
+ RotateAaroundU(cPhi, sPhi, 0, -sPhi, cPhi, 0, &Cx, &Cy, &Cz, Theta);
+ glNormal3f(Cx, Cy, Cz);
+ RotateAaroundU(0, 0, 1, -sPhi, cPhi, 0, &Cx, &Cy, &Cz, Theta);
+ j++;
+ if (j == MoebiusTransversals || mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
+ else if (i % 2)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialRed);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+ glVertex3f(cPhi * 3 + Cx / MoebiusTransversals * j, sPhi * 3 + Cy / MoebiusTransversals * j, +Cz / MoebiusTransversals * j);
+ j--;
+ if (j == -MoebiusTransversals || mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
+ else if (i % 2)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialRed);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+ glVertex3f(cPhi * 3 + Cx / MoebiusTransversals * j, sPhi * 3 + Cy / MoebiusTransversals * j, +Cz / MoebiusTransversals * j);
+
+ Phi += Pi / MoebiusDivisions;
+ i++;
+ }
+ glEnd();
+ }
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ }
+
+ if (drawants) {
+ /* DRAW BLUE ANT */
+ glPushMatrix();
+ glRotatef(mp->ant_position + 180, 0, 0, 1);
+ glTranslatef(3, 0, 0);
+ glRotatef(mp->ant_position / 2 + 90, 0, 1, 0);
+ glTranslatef(0.28, 0, -0.45);
+ if (!draw_moebius_ant(mp, MaterialYellow, mono))
+ return False;
+ glPopMatrix();
+
+ /* DRAW YELLOW ANT */
+ glPushMatrix();
+ glRotatef(mp->ant_position, 0, 0, 1);
+ glTranslatef(3, 0, 0);
+ glRotatef(mp->ant_position / 2, 0, 1, 0);
+ glTranslatef(0.28, 0, -0.45);
+ if (!draw_moebius_ant(mp, MaterialBlue, mono))
+ return False;
+ glPopMatrix();
+
+ /* DRAW GREEN ANT */
+ glPushMatrix();
+ glRotatef(-mp->ant_position, 0, 0, 1);
+ glTranslatef(3, 0, 0);
+ glRotatef(-mp->ant_position / 2, 0, 1, 0);
+ glTranslatef(0.28, 0, 0.45);
+ glRotatef(180, 1, 0, 0);
+ if (!draw_moebius_ant(mp, MaterialGreen, mono))
+ return False;
+ glPopMatrix();
+
+ /* DRAW CYAN ANT */
+ glPushMatrix();
+ glRotatef(-mp->ant_position + 180, 0, 0, 1);
+ glTranslatef(3, 0, 0);
+ glRotatef(-mp->ant_position / 2 + 90, 0, 1, 0);
+ glTranslatef(0.28, 0, 0.45);
+ glRotatef(180, 1, 0, 0);
+ if (!draw_moebius_ant(mp, MaterialCyan, mono))
+ return False;
+ glPopMatrix();
+ }
+ mp->ant_position += 1;
+ return True;
+}
+#undef MoebiusDivisions
+#undef MoebiusTransversals
+
+ENTRYPOINT void
+reshape_moebius (ModeInfo * mi, int width, int height)
+{
+ moebiusstruct *mp = &moebius[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ }
+
+ glViewport(0, y, mp->WindW = (GLint) width, mp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0);
+ glMatrixMode(GL_MODELVIEW);
+ if (width >= 1024) {
+ glLineWidth(3);
+ glPointSize(3);
+ } else if (width >= 512) {
+ glLineWidth(2);
+ glPointSize(2);
+ } else {
+ glLineWidth(1);
+ glPointSize(1);
+ }
+}
+
+static void
+pinit(ModeInfo *mi)
+{
+ /* int status; */
+ glClearDepth(1.0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_NORMALIZE);
+ glFrontFace(GL_CCW);
+ glCullFace(GL_BACK);
+
+ /* moebius */
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glDisable(GL_CULL_FACE);
+
+#if 0
+ glEnable(GL_TEXTURE_2D);
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+#if 0
+ clear_gl_error();
+ status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
+ WoodTextureWidth, WoodTextureHeight,
+ GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+ if (status)
+ {
+ const char *s = (char *) gluErrorString (status);
+ fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+ progname, WoodTextureWidth, WoodTextureHeight,
+ (s ? s : "(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+#else
+ {
+ XImage *img = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ wood_png, sizeof(wood_png));
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ img->width, img->height, 0,
+ GL_RGBA,
+ /* GL_UNSIGNED_BYTE, */
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+ img->data);
+ check_gl_error("texture");
+ XDestroyImage (img);
+ }
+#endif
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+#endif
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+}
+
+
+ENTRYPOINT Bool
+moebius_handle_event (ModeInfo *mi, XEvent *event)
+{
+ moebiusstruct *mp = &moebius[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, mp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &mp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_moebius (ModeInfo * mi)
+{
+ moebiusstruct *mp;
+
+ MI_INIT (mi, moebius);
+ mp = &moebius[MI_SCREEN(mi)];
+ mp->step = NRAND(90);
+ mp->ant_position = NRAND(90);
+
+ {
+ double rot_speed = 0.3;
+ mp->rot = make_rotator (rot_speed, rot_speed, rot_speed, 1, 0, True);
+ mp->trackball = gltrackball_init (True);
+ }
+
+ if ((mp->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_moebius(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ pinit(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_moebius (ModeInfo * mi)
+{
+ moebiusstruct *mp;
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (moebius == NULL)
+ return;
+ mp = &moebius[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+
+ if (!mp->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(mp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+
+ glTranslatef(0.0, 0.0, -10.0);
+
+ gltrackball_rotate (mp->trackball);
+
+ if (!MI_IS_ICONIC(mi)) {
+ glScalef(Scale4Window * mp->WindH / mp->WindW, Scale4Window, Scale4Window);
+ } else {
+ glScalef(Scale4Iconic * mp->WindH / mp->WindW, Scale4Iconic, Scale4Iconic);
+ }
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180) {
+ glScalef (1/h, h, 1); /* #### not quite right */
+ h = 1.7;
+ glScalef (h, h, h);
+ }
+ }
+# endif
+
+ {
+ double x, y, z;
+ get_rotation (mp->rot, &x, &y, &z, !mp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ /* moebius */
+ if (!draw_moebius_strip(mi)) {
+ MI_ABORT(mi);
+ return;
+ }
+
+ glPopMatrix();
+
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+
+ glXSwapBuffers(display, window);
+
+ mp->step += 0.025;
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_moebius (ModeInfo * mi)
+{
+ moebiusstruct *mp = &moebius[MI_SCREEN(mi)];
+
+ if (!mp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(mp->glx_context));
+ pinit();
+}
+#endif /* !STANDALONE */
+
+
+XSCREENSAVER_MODULE ("Moebius", moebius)
+
+#endif
diff --git a/hacks/glx/moebius.man b/hacks/glx/moebius.man
new file mode 100644
index 0000000..696e0d6
--- /dev/null
+++ b/hacks/glx/moebius.man
@@ -0,0 +1,65 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+moebius - Escher's Moebuis Strip II, with ants.
+.SH SYNOPSIS
+.B moebius
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[-delay \fInumber\fP]
+[-solidmoebius]
+[-wireframe]
+[-noants]
+[-fps]
+.SH DESCRIPTION
+Another M. C. Escher hack by Marcelo Vianna, this one draws ``Moebius Strip
+II,'' a GL image of ants walking along the surface of a moebius strip.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-solidmoebius
+Solid Floor.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-noants | \-no-noants
+Draw Ants. Boolean.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Marcelo Vianna. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Marcelo Vianna.
diff --git a/hacks/glx/moebiusgears.c b/hacks/glx/moebiusgears.c
new file mode 100644
index 0000000..0f058b8
--- /dev/null
+++ b/hacks/glx/moebiusgears.c
@@ -0,0 +1,437 @@
+/* moebiusgears, Copyright (c) 2007-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 17 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_mgears 0
+# define release_mgears 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "involute.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_ROLL "True"
+#define DEF_SPEED "1.0"
+#define DEF_TEETH "15"
+
+typedef struct {
+
+ gear g;
+ GLfloat pos_th; /* position on ring of gear system */
+ GLfloat pos_thz; /* rotation out of plane of gear system */
+} mogear;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int ngears;
+ mogear *gears;
+ GLfloat ring_r; /* radius of gear system */
+ GLfloat roll_th;
+
+} mgears_configuration;
+
+static mgears_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static Bool do_roll;
+static int teeth_arg;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-roll", ".roll", XrmoptionNoArg, "True" },
+ { "+roll", ".roll", XrmoptionNoArg, "False" },
+ { "-teeth", ".teeth", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&do_roll, "roll", "Roll", DEF_ROLL, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&teeth_arg, "teeth", "Teeth", DEF_TEETH, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt mgears_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_mgears (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+reset_mgears (ModeInfo *mi)
+{
+ mgears_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int total_gears = MI_COUNT(mi);
+ double gears_per_turn;
+ double gear_r, tw, th, thick, slope;
+ int i, nubs, size;
+
+ if (! (total_gears & 1))
+ total_gears++; /* must be odd or gears intersect */
+
+ /* Number of teeth must be odd if number of gears is odd, or teeth don't
+ mesh when the loop closes. And since number of gears must be odd...
+ */
+ if (! (teeth_arg & 1)) teeth_arg++;
+ if (teeth_arg < 7) teeth_arg = 7;
+
+ if (total_gears < 13) /* gear mesh angle is too steep with less */
+ total_gears = 13;
+
+ thick = 0.2;
+ nubs = (random() & 3) ? 0 : (random() % teeth_arg) / 2;
+
+ slope = 0;
+
+ /* Sloping gears are incompatible with "-roll" ... */
+ /* slope= -M_PI * 2 / total_gears; */
+
+ gears_per_turn = total_gears / 2.0;
+
+ bp->ring_r = 3;
+ gear_r = M_PI * bp->ring_r / gears_per_turn;
+ tw = 0;
+ th = gear_r * 2.5 / teeth_arg;
+
+ /* If the gears are small, use a lower density mesh. */
+ size = (gear_r > 0.60 ? INVOLUTE_HUGE :
+ gear_r > 0.32 ? INVOLUTE_LARGE :
+ gear_r > 0.13 ? INVOLUTE_MEDIUM :
+ INVOLUTE_SMALL);
+
+ /* If there are lots of teeth, use a lower density mesh. */
+ if (teeth_arg > 77)
+ size = INVOLUTE_SMALL;
+ if (teeth_arg > 45 && size >= INVOLUTE_HUGE)
+ size = INVOLUTE_MEDIUM;
+
+ if (bp->gears)
+ {
+ for (i = 0; i < bp->ngears; i++)
+ glDeleteLists (bp->gears[i].g.dlist, 1);
+ free (bp->gears);
+ bp->gears = 0;
+ }
+
+ bp->ngears = total_gears;
+
+ bp->gears = (mogear *) calloc (bp->ngears, sizeof(*bp->gears));
+ for (i = 0; i < bp->ngears; i++)
+ {
+ mogear *mg = &bp->gears[i];
+ gear *g = &mg->g;
+
+ g->r = gear_r;
+ g->size = size;
+ g->nteeth = teeth_arg;
+ g->tooth_w = tw;
+ g->tooth_h = th;
+ g->tooth_slope = slope;
+ g->thickness = g->r * thick;
+ g->thickness2 = g->thickness * 0.1;
+ g->thickness3 = g->thickness;
+ g->inner_r = g->r * 0.80;
+ g->inner_r2 = g->r * 0.60;
+ g->inner_r3 = g->r * 0.55;
+ g->nubs = nubs;
+ mg->pos_th = (M_PI * 2 / gears_per_turn) * i;
+ mg->pos_thz = (M_PI / 2 / gears_per_turn) * i;
+
+ g->th = ((i & 1)
+ ? (M_PI * 2 / g->nteeth)
+ : 0);
+
+ /* Colorize
+ */
+ g->color[0] = 0.7 + frand(0.3);
+ g->color[1] = 0.7 + frand(0.3);
+ g->color[2] = 0.7 + frand(0.3);
+ g->color[3] = 1.0;
+
+ g->color2[0] = g->color[0] * 0.85;
+ g->color2[1] = g->color[1] * 0.85;
+ g->color2[2] = g->color[2] * 0.85;
+ g->color2[3] = g->color[3];
+
+ /* Now render the gear into its display list.
+ */
+ g->dlist = glGenLists (1);
+ if (! g->dlist)
+ {
+ check_gl_error ("glGenLists");
+ abort();
+ }
+
+ glNewList (g->dlist, GL_COMPILE);
+ g->polygons += draw_involute_gear (g, wire);
+ glEndList ();
+ }
+}
+
+
+ENTRYPOINT void
+init_mgears (ModeInfo *mi)
+{
+ mgears_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_mgears (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ {
+ double spin_speed = 0.5;
+ double wander_speed = 0.01;
+ double spin_accel = 2.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False /* don't randomize */
+ );
+ bp->trackball = gltrackball_init (True);
+ }
+
+ reset_mgears (mi);
+}
+
+
+ENTRYPOINT Bool
+mgears_handle_event (ModeInfo *mi, XEvent *event)
+{
+ mgears_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '+' || c == '=' ||
+ keysym == XK_Up || keysym == XK_Right || keysym == XK_Next)
+ {
+ MI_COUNT(mi) += 2;
+ reset_mgears (mi);
+ return True;
+ }
+ else if (c == '-' || c == '_' ||
+ keysym == XK_Down || keysym == XK_Left || keysym == XK_Prior)
+ {
+ if (MI_COUNT(mi) <= 13)
+ return False;
+ MI_COUNT(mi) -= 2;
+ reset_mgears (mi);
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ goto DEF;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ DEF:
+ MI_COUNT(mi) = 13 + (2 * (random() % 10));
+ reset_mgears (mi);
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+draw_mgears (ModeInfo *mi)
+{
+ mgears_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef ((x - 0.5) * 4,
+ (y - 0.5) * 4,
+ (z - 0.5) * 7);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+
+ /* add a little rotation for -no-spin mode */
+ x -= 0.14;
+ y -= 0.06;
+
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (1.5, 1.5, 1.5);
+
+/*#define DEBUG*/
+
+#ifdef DEBUG
+ glScalef (.5, .5, .5);
+ glTranslatef (0, -bp->gears[0].g.r * bp->ngears, 0);
+#endif
+
+ for (i = 0; i < bp->ngears; i++)
+ {
+ mogear *mg = &bp->gears[i];
+ gear *g = &mg->g;
+
+ glPushMatrix();
+#ifndef DEBUG
+ glRotatef (mg->pos_th * 180 / M_PI, 0, 0, 1); /* rotation on ring */
+ glTranslatef (bp->ring_r, 0, 0); /* position on ring */
+ glRotatef (mg->pos_thz * 180 / M_PI, 0, 1, 0); /* twist a bit */
+
+ if (do_roll)
+ {
+ glRotatef (bp->roll_th * 180 / M_PI, 0, 1, 0);
+ bp->roll_th += speed * 0.0005;
+ }
+#else
+ glTranslatef (0, i * 2 * g->r, 0);
+#endif
+ glRotatef (g->th * 180 / M_PI, 0, 0, 1);
+
+ glCallList (g->dlist);
+ mi->polygon_count += g->polygons;
+ glPopMatrix ();
+ }
+
+ glPopMatrix ();
+
+#ifndef DEBUG
+ /* spin gears */
+ for (i = 0; i < bp->ngears; i++)
+ {
+ mogear *mg = &bp->gears[i];
+ mg->g.th += speed * (M_PI / 100) * (i & 1 ? 1 : -1);
+ }
+#endif
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("MoebiusGears", moebiusgears, mgears)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/moebiusgears.man b/hacks/glx/moebiusgears.man
new file mode 100644
index 0000000..a45519a
--- /dev/null
+++ b/hacks/glx/moebiusgears.man
@@ -0,0 +1,86 @@
+.TH XScreenSaver 1 "30-Oct-99" "X Version 11"
+.SH NAME
+moebiusgears - draw a moebius strip of interlocking gears.
+.SH SYNOPSIS
+.B moebiusgears
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fIusecs\fP]
+[\-speed \fIfloat\fP]
+[\-no\-spin]
+[\-no\-wander]
+[\-no\-roll]
+[-count \fIinteger\fP]
+[-teeth \fIinteger\fP]
+[-wireframe]
+[-fps]
+.SH DESCRIPTION
+The \fImoebiusgears\fP program draws a closed, interlinked chain of
+rotating gears. The layout of the gears follows the path of a
+moebius strip.
+.SH OPTIONS
+.I moebiusgears
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between frames of the animation, in microseconds.
+Default: 30000 (0.03 seconds.)
+.TP 8
+.B \-speed \fIfloat\fP
+Larger numbers mean run faster. Default: 1.0.
+.TP 8
+.B \-no\-spin
+Don't rotate the object.
+.TP 8
+.B \-no\-wander
+Don't wander the object around the screen.
+.TP 8
+.B \-no\-roll
+Don't slowly roll the moebius strip inside out.
+.TP 8
+.B \-count \fIinteger\fP
+How many gears to draw. Default: 17. Minimum 11, must be odd.
+.TP 8
+.B \-teeth \fIinteger\fP
+How many teeth to draw on each draw. Default: 15. Minimum 7, must be odd.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2007 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/molecule.c b/hacks/glx/molecule.c
new file mode 100644
index 0000000..d8bc1d8
--- /dev/null
+++ b/hacks/glx/molecule.c
@@ -0,0 +1,1682 @@
+/* molecule, Copyright (c) 2001-2016 Jamie Zawinski <jwz@jwz.org>
+ * Draws molecules, based on coordinates from PDB (Protein Data Base) files.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+
+/* Documentation on the PDB file format:
+ https://en.wikipedia.org/wiki/Protein_Data_Bank_%28file_format%29
+ http://www.wwpdb.org/docs.html
+ http://www.wwpdb.org/documentation/format32/v3.2.html
+ http://www.wwpdb.org/documentation/format32/sect9.html
+ http://www.rcsb.org/pdb/file_formats/pdb/pdbguide2.2/guide2.2_frame.html
+
+ Good source of PDB files:
+ http://www.sci.ouc.bc.ca/chem/molecule/molecule.html
+ http://www.umass.edu/microbio/rasmol/whereget.htm
+ http://www.wwpdb.org/docs.html
+ */
+
+#define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*atomFont: -*-helvetica-medium-r-normal-*-*-240-*-*-*-*-*-*\n" \
+ "*titleFont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n" \
+ "*noLabelThreshold: 150 \n" \
+ "*wireframeThreshold: 150 \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_molecule 0
+# define release_molecule 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "sphere.h"
+#include "tube.h"
+#include "texfont.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+#ifdef USE_GL /* whole file */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <ctype.h>
+
+#define DEF_TIMEOUT "20"
+#define DEF_SPIN "XYZ"
+#define DEF_WANDER "False"
+#define DEF_LABELS "True"
+#define DEF_TITLES "True"
+#define DEF_ATOMS "True"
+#define DEF_BONDS "True"
+#define DEF_ESHELLS "True"
+#define DEF_BBOX "False"
+#define DEF_SHELL_ALPHA "0.3"
+#define DEF_MOLECULE "(default)"
+#define DEF_VERBOSE "False"
+
+#define SPHERE_SLICES 48 /* how densely to render spheres */
+#define SPHERE_STACKS 24
+
+#define SMOOTH_TUBE /* whether to have smooth or faceted tubes */
+
+#ifdef SMOOTH_TUBE
+# define TUBE_FACES 12 /* how densely to render tubes */
+#else
+# define TUBE_FACES 8
+#endif
+
+#define SPHERE_SLICES_2 14
+#define SPHERE_STACKS_2 8
+#define TUBE_FACES_2 6
+
+
+# ifdef __GNUC__
+ __extension__ /* don't warn about "string length is greater than the length
+ ISO C89 compilers are required to support" when includng
+ the following data file... */
+# endif
+static const char * const builtin_pdb_data[] = {
+# include "molecules.h"
+};
+
+
+#ifndef HAVE_MOBILE
+# define LOAD_FILES
+#endif
+
+
+typedef struct {
+ const char *name;
+ GLfloat size, size2;
+ const char *color;
+ const char *text_color;
+ GLfloat gl_color[8];
+} atom_data;
+
+
+/* These are the traditional colors used to render these atoms,
+ and their approximate size in angstroms.
+ */
+static const atom_data all_atom_data[] = {
+ { "H", 1.17, 0.40, "#FFFFFF", "#000000", { 0, }},
+ { "C", 1.75, 0.58, "#999999", "#FFFFFF", { 0, }},
+ { "CA", 1.80, 0.60, "#0000FF", "#ADD8E6", { 0, }},
+ { "N", 1.55, 0.52, "#A2B5CD", "#EE99FF", { 0, }},
+ { "O", 1.40, 0.47, "#FF0000", "#FFB6C1", { 0, }},
+ { "P", 1.28, 0.43, "#9370DB", "#DB7093", { 0, }},
+ { "S", 1.80, 0.60, "#8B8B00", "#FFFF00", { 0, }},
+ { "bond", 0, 0, "#B3B3B3", "#FFFF00", { 0, }},
+ { "*", 1.40, 0.47, "#008B00", "#90EE90", { 0, }}
+};
+
+
+typedef struct {
+ int id; /* sequence number in the PDB file */
+ const char *label; /* The atom name */
+ GLfloat x, y, z; /* position in 3-space (angstroms) */
+ const atom_data *data; /* computed: which style of atom this is */
+} molecule_atom;
+
+typedef struct {
+ int from, to; /* atom sequence numbers */
+ int strength; /* how many bonds are between these two atoms */
+} molecule_bond;
+
+
+typedef struct {
+ const char *label; /* description of this compound */
+ int natoms, atoms_size;
+ int nbonds, bonds_size;
+ molecule_atom *atoms;
+ molecule_bond *bonds;
+} molecule;
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLfloat molecule_size; /* max dimension of molecule bounding box */
+
+ GLfloat no_label_threshold; /* Things happen when molecules are huge */
+ GLfloat wireframe_threshold;
+
+ int which; /* which of the molecules is being shown */
+ int nmolecules;
+ molecule *molecules;
+
+ int mode; /* 0 = normal, 1 = out, 2 = in */
+ int mode_tick;
+ int next; /* 0 = random, -1 = back, 1 = forward */
+
+ GLuint molecule_dlist;
+ GLuint shell_dlist;
+
+ texture_font_data *atom_font, *title_font;
+
+ int polygon_count;
+
+ time_t draw_time;
+ int draw_tick;
+
+ GLfloat overall_scale;
+ int low_rez_p;
+
+} molecule_configuration;
+
+
+static molecule_configuration *mcs = NULL;
+
+static int timeout;
+static char *molecule_str;
+static char *do_spin;
+static Bool do_wander;
+static Bool do_titles;
+static Bool do_labels;
+static Bool do_atoms;
+static Bool do_bonds;
+static Bool do_shells;
+static Bool do_bbox;
+static Bool verbose_p;
+static GLfloat shell_alpha;
+
+/* saved to reset */
+static Bool orig_do_labels, orig_do_atoms, orig_do_bonds, orig_do_shells,
+ orig_wire;
+
+
+static XrmOptionDescRec opts[] = {
+ { "-molecule", ".molecule", XrmoptionSepArg, 0 },
+ { "-timeout", ".timeout", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-labels", ".labels", XrmoptionNoArg, "True" },
+ { "+labels", ".labels", XrmoptionNoArg, "False" },
+ { "-titles", ".titles", XrmoptionNoArg, "True" },
+ { "+titles", ".titles", XrmoptionNoArg, "False" },
+ { "-atoms", ".atoms", XrmoptionNoArg, "True" },
+ { "+atoms", ".atoms", XrmoptionNoArg, "False" },
+ { "-bonds", ".bonds", XrmoptionNoArg, "True" },
+ { "+bonds", ".bonds", XrmoptionNoArg, "False" },
+ { "-shells", ".eshells", XrmoptionNoArg, "True" },
+ { "+shells", ".eshells", XrmoptionNoArg, "False" },
+ { "-shell-alpha", ".shellAlpha", XrmoptionSepArg, 0 },
+ { "-bbox", ".bbox", XrmoptionNoArg, "True" },
+ { "+bbox", ".bbox", XrmoptionNoArg, "False" },
+ { "-verbose", ".verbose", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ {&molecule_str, "molecule", "Molecule", DEF_MOLECULE, t_String},
+ {&timeout, "timeout", "Seconds", DEF_TIMEOUT, t_Int},
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&do_atoms, "atoms", "Atoms", DEF_ATOMS, t_Bool},
+ {&do_bonds, "bonds", "Bonds", DEF_BONDS, t_Bool},
+ {&do_shells, "eshells", "EShells", DEF_ESHELLS, t_Bool},
+ {&do_labels, "labels", "Labels", DEF_LABELS, t_Bool},
+ {&do_titles, "titles", "Titles", DEF_TITLES, t_Bool},
+ {&do_bbox, "bbox", "BBox", DEF_BBOX, t_Bool},
+ {&shell_alpha, "shellAlpha", "ShellAlpha", DEF_SHELL_ALPHA, t_Float},
+ {&verbose_p, "verbose", "Verbose", DEF_VERBOSE, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt molecule_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+
+/* shapes */
+
+static int
+sphere (molecule_configuration *mc,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat diameter, Bool wire)
+{
+ int stacks = (mc->low_rez_p ? SPHERE_STACKS_2 : SPHERE_STACKS);
+ int slices = (mc->low_rez_p ? SPHERE_SLICES_2 : SPHERE_SLICES);
+
+ glPushMatrix ();
+ glTranslatef (x, y, z);
+ glScalef (diameter, diameter, diameter);
+ unit_sphere (stacks, slices, wire);
+ glPopMatrix ();
+
+ return stacks * slices;
+}
+
+
+static void
+load_fonts (ModeInfo *mi)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+ mc->atom_font = load_texture_font (mi->dpy, "atomFont");
+ mc->title_font = load_texture_font (mi->dpy, "titleFont");
+}
+
+
+static const atom_data *
+get_atom_data (const char *atom_name)
+{
+ int i;
+ const atom_data *d = 0;
+ char *n = strdup (atom_name);
+ char *n2 = n;
+ int L;
+
+ while (!isalpha(*n)) n++;
+ L = strlen(n);
+ while (L > 0 && !isalpha(n[L-1]))
+ n[--L] = 0;
+
+ for (i = 0; i < countof(all_atom_data); i++)
+ {
+ d = &all_atom_data[i];
+ if (!strcasecmp (n, all_atom_data[i].name))
+ break;
+ }
+
+ free (n2);
+ return d;
+}
+
+
+static void
+set_atom_color (ModeInfo *mi, const molecule_atom *a,
+ Bool font_p, GLfloat alpha)
+{
+ const atom_data *d;
+ GLfloat gl_color[4];
+
+ if (a)
+ d = a->data;
+ else
+ d = get_atom_data ("bond");
+
+ if (font_p)
+ {
+ gl_color[0] = d->gl_color[4];
+ gl_color[1] = d->gl_color[5];
+ gl_color[2] = d->gl_color[6];
+ gl_color[3] = d->gl_color[7];
+ }
+ else
+ {
+ gl_color[0] = d->gl_color[0];
+ gl_color[1] = d->gl_color[1];
+ gl_color[2] = d->gl_color[2];
+ gl_color[3] = d->gl_color[3];
+ }
+
+ if (gl_color[3] == 0)
+ {
+ const char *string = !font_p ? d->color : d->text_color;
+ XColor xcolor;
+ if (!XParseColor (mi->dpy, mi->xgwa.colormap, string, &xcolor))
+ {
+ fprintf (stderr, "%s: unparsable color in %s: %s\n", progname,
+ (a ? a->label : d->name), string);
+ exit (1);
+ }
+
+ gl_color[0] = xcolor.red / 65536.0;
+ gl_color[1] = xcolor.green / 65536.0;
+ gl_color[2] = xcolor.blue / 65536.0;
+ }
+
+ gl_color[3] = alpha;
+
+ /* If we're not drawing atoms, and the color is black, use white instead.
+ This is a kludge so that H can have black text over its white ball,
+ but the text still shows up if balls are off.
+ */
+ if (font_p && !do_atoms &&
+ gl_color[0] == 0 && gl_color[1] == 0 && gl_color[2] == 0)
+ {
+ gl_color[0] = gl_color[1] = gl_color[2] = 1;
+ }
+
+ if (font_p)
+ glColor4f (gl_color[0], gl_color[1], gl_color[2], gl_color[3]);
+ else
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gl_color);
+}
+
+
+static GLfloat
+atom_size (const molecule_atom *a)
+{
+ if (do_bonds)
+ return a->data->size2;
+ else
+ return a->data->size;
+}
+
+
+static molecule_atom *
+get_atom (molecule_atom *atoms, int natoms, int id)
+{
+ int i;
+
+ /* quick short-circuit */
+ if (id < natoms)
+ {
+ if (atoms[id].id == id)
+ return &atoms[id];
+ if (id > 0 && atoms[id-1].id == id)
+ return &atoms[id-1];
+ if (id < natoms-1 && atoms[id+1].id == id)
+ return &atoms[id+1];
+ }
+
+ for (i = 0; i < natoms; i++)
+ if (id == atoms[i].id)
+ return &atoms[i];
+
+ fprintf (stderr, "%s: no atom %d\n", progname, id);
+ abort();
+}
+
+
+static void
+molecule_bounding_box (ModeInfo *mi,
+ GLfloat *x1, GLfloat *y1, GLfloat *z1,
+ GLfloat *x2, GLfloat *y2, GLfloat *z2)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+ molecule *m = &mc->molecules[mc->which];
+ int i;
+
+ if (m->natoms == 0)
+ {
+ *x1 = *y1 = *z1 = *x2 = *y2 = *z2 = 0;
+ }
+ else
+ {
+ *x1 = *x2 = m->atoms[0].x;
+ *y1 = *y2 = m->atoms[0].y;
+ *z1 = *z2 = m->atoms[0].z;
+ }
+
+ for (i = 1; i < m->natoms; i++)
+ {
+ if (m->atoms[i].x < *x1) *x1 = m->atoms[i].x;
+ if (m->atoms[i].y < *y1) *y1 = m->atoms[i].y;
+ if (m->atoms[i].z < *z1) *z1 = m->atoms[i].z;
+
+ if (m->atoms[i].x > *x2) *x2 = m->atoms[i].x;
+ if (m->atoms[i].y > *y2) *y2 = m->atoms[i].y;
+ if (m->atoms[i].z > *z2) *z2 = m->atoms[i].z;
+ }
+
+ *x1 -= 1.5;
+ *y1 -= 1.5;
+ *z1 -= 1.5;
+ *x2 += 1.5;
+ *y2 += 1.5;
+ *z2 += 1.5;
+}
+
+
+static void
+draw_bounding_box (ModeInfo *mi)
+{
+ static const GLfloat c1[4] = { 0.2, 0.2, 0.4, 1.0 };
+ static const GLfloat c2[4] = { 1.0, 0.0, 0.0, 1.0 };
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat x1, y1, z1, x2, y2, z2;
+ molecule_bounding_box (mi, &x1, &y1, &z1, &x2, &y2, &z2);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c1);
+ glFrontFace(GL_CCW);
+
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, 1, 0);
+ glVertex3f(x1, y1, z1); glVertex3f(x1, y1, z2);
+ glVertex3f(x2, y1, z2); glVertex3f(x2, y1, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, -1, 0);
+ glVertex3f(x2, y2, z1); glVertex3f(x2, y2, z2);
+ glVertex3f(x1, y2, z2); glVertex3f(x1, y2, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, 0, 1);
+ glVertex3f(x1, y1, z1); glVertex3f(x2, y1, z1);
+ glVertex3f(x2, y2, z1); glVertex3f(x1, y2, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, 0, -1);
+ glVertex3f(x1, y2, z2); glVertex3f(x2, y2, z2);
+ glVertex3f(x2, y1, z2); glVertex3f(x1, y1, z2);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(1, 0, 0);
+ glVertex3f(x1, y2, z1); glVertex3f(x1, y2, z2);
+ glVertex3f(x1, y1, z2); glVertex3f(x1, y1, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(-1, 0, 0);
+ glVertex3f(x2, y1, z1); glVertex3f(x2, y1, z2);
+ glVertex3f(x2, y2, z2); glVertex3f(x2, y2, z1);
+ glEnd();
+
+ glDisable (GL_LIGHTING);
+
+ glColor3f (c2[0], c2[1], c2[2]);
+ glBegin(GL_LINES);
+ if (x1 > 0) x1 = 0;
+ if (x2 < 0) x2 = 0;
+ if (y1 > 0) y1 = 0;
+ if (y2 < 0) y2 = 0;
+ if (z1 > 0) z1 = 0;
+ if (z2 < 0) z2 = 0;
+ glVertex3f(x1, 0, 0); glVertex3f(x2, 0, 0);
+ glVertex3f(0 , y1, 0); glVertex3f(0, y2, 0);
+ glVertex3f(0, 0, z1); glVertex3f(0, 0, z2);
+ glEnd();
+
+ if (!wire)
+ glEnable (GL_LIGHTING);
+}
+
+
+/* Since PDB files don't always have the molecule centered around the
+ origin, and since some molecules are pretty large, scale and/or
+ translate so that the whole molecule is visible in the window.
+ */
+static void
+ensure_bounding_box_visible (ModeInfo *mi)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+
+ GLfloat x1, y1, z1, x2, y2, z2;
+ GLfloat w, h, d;
+ GLfloat size;
+ GLfloat max_size = 10; /* don't bother scaling down if the molecule
+ is already smaller than this */
+
+ molecule_bounding_box (mi, &x1, &y1, &z1, &x2, &y2, &z2);
+ w = x2-x1;
+ h = y2-y1;
+ d = z2-z1;
+
+ size = (w > h ? w : h);
+ size = (size > d ? size : d);
+
+ mc->molecule_size = size;
+
+ mc->low_rez_p = 0;
+ mc->overall_scale = 1;
+
+ if (size > max_size)
+ {
+ mc->overall_scale = max_size / size;
+ glScalef (mc->overall_scale, mc->overall_scale, mc->overall_scale);
+
+ mc->low_rez_p = mc->overall_scale < 0.3;
+ }
+
+ glTranslatef (-(x1 + w/2),
+ -(y1 + h/2),
+ -(z1 + d/2));
+}
+
+
+
+/* Constructs the GL shapes of the current molecule
+ */
+static void
+build_molecule (ModeInfo *mi, Bool transparent_p)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+ GLfloat alpha = transparent_p ? shell_alpha : 1.0;
+ int polys = 0;
+
+ molecule *m = &mc->molecules[mc->which];
+
+ if (wire)
+ {
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_NORMALIZE);
+ glDisable(GL_CULL_FACE);
+ }
+ else
+ {
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+ }
+
+ if (!wire)
+ set_atom_color (mi, 0, False, alpha);
+
+ if (do_bonds)
+ for (i = 0; i < m->nbonds; i++)
+ {
+ const molecule_bond *b = &m->bonds[i];
+ const molecule_atom *from = get_atom (m->atoms, m->natoms, b->from);
+ const molecule_atom *to = get_atom (m->atoms, m->natoms, b->to);
+
+ if (wire)
+ {
+ glBegin(GL_LINES);
+ glVertex3f(from->x, from->y, from->z);
+ glVertex3f(to->x, to->y, to->z);
+ glEnd();
+ polys++;
+ }
+ else
+ {
+ int faces = (mc->low_rez_p ? TUBE_FACES_2 : TUBE_FACES);
+# ifdef SMOOTH_TUBE
+ int smooth = True;
+# else
+ int smooth = False;
+# endif
+ Bool cap_p = (!do_atoms || do_shells);
+ GLfloat base = 0.07;
+ GLfloat thickness = base * b->strength;
+ GLfloat cap_size = (cap_p ? base / 2 : 0);
+ if (thickness > 0.3)
+ thickness = 0.3;
+
+ polys += tube (from->x, from->y, from->z,
+ to->x, to->y, to->z,
+ thickness, cap_size,
+ faces, smooth, cap_p, wire);
+ }
+ }
+
+ if (!wire && do_atoms)
+ for (i = 0; i < m->natoms; i++)
+ {
+ const molecule_atom *a = &m->atoms[i];
+ GLfloat size = atom_size (a);
+ set_atom_color (mi, a, False, alpha);
+ polys += sphere (mc, a->x, a->y, a->z, size, wire);
+ }
+
+ if (do_bbox && !transparent_p)
+ {
+ draw_bounding_box (mi);
+ polys += 4;
+ }
+
+ mc->polygon_count += polys;
+}
+
+
+
+/* loading */
+
+static void
+push_atom (molecule *m,
+ int id, const char *label,
+ GLfloat x, GLfloat y, GLfloat z)
+{
+ m->natoms++;
+ if (m->atoms_size < m->natoms)
+ {
+ m->atoms_size += 20;
+ m->atoms = (molecule_atom *) realloc (m->atoms,
+ m->atoms_size * sizeof(*m->atoms));
+ }
+ m->atoms[m->natoms-1].id = id;
+ m->atoms[m->natoms-1].label = label;
+ m->atoms[m->natoms-1].x = x;
+ m->atoms[m->natoms-1].y = y;
+ m->atoms[m->natoms-1].z = z;
+ m->atoms[m->natoms-1].data = get_atom_data (label);
+}
+
+
+static void
+push_bond (molecule *m, int from, int to)
+{
+ int i;
+
+ for (i = 0; i < m->nbonds; i++)
+ if ((m->bonds[i].from == from && m->bonds[i].to == to) ||
+ (m->bonds[i].to == from && m->bonds[i].from == to))
+ {
+ m->bonds[i].strength++;
+ return;
+ }
+
+ m->nbonds++;
+ if (m->bonds_size < m->nbonds)
+ {
+ m->bonds_size += 20;
+ m->bonds = (molecule_bond *) realloc (m->bonds,
+ m->bonds_size * sizeof(*m->bonds));
+ }
+ m->bonds[m->nbonds-1].from = from;
+ m->bonds[m->nbonds-1].to = to;
+ m->bonds[m->nbonds-1].strength = 1;
+}
+
+
+static void
+parse_error (const char *file, int lineno, const char *line)
+{
+ fprintf (stderr, "%s: %s: parse error, line %d: %s\n",
+ progname, file, lineno, line);
+ exit (1);
+}
+
+
+/* This function is crap.
+ */
+static void
+parse_pdb_data (molecule *m, const char *data, const char *filename, int line)
+{
+ const char *s = data;
+ char *ss;
+ while (*s)
+ {
+ if ((!m->label || !*m->label) &&
+ (!strncmp (s, "HEADER", 6) || !strncmp (s, "COMPND", 6)))
+ {
+ char *name = calloc (1, 100);
+ char *n2 = name;
+ int L = strlen(s);
+ if (L > 99) L = 99;
+
+ strncpy (n2, s, L);
+ n2 += 7;
+ while (isspace(*n2)) n2++;
+
+ ss = strchr (n2, '\n');
+ if (ss) *ss = 0;
+ ss = strchr (n2, '\r');
+ if (ss) *ss = 0;
+
+ ss = n2+strlen(n2)-1;
+ while (isspace(*ss) && ss > n2)
+ *ss-- = 0;
+
+ if (strlen (n2) > 4 &&
+ !strcmp (n2 + strlen(n2) - 4, ".pdb"))
+ n2[strlen(n2)-4] = 0;
+
+ if (m->label) free ((char *) m->label);
+ m->label = strdup (n2);
+ free (name);
+ }
+ else if (!strncmp (s, "TITLE ", 6) ||
+ !strncmp (s, "HEADER", 6) ||
+ !strncmp (s, "COMPND", 6) ||
+ !strncmp (s, "AUTHOR", 6) ||
+ !strncmp (s, "REVDAT", 6) ||
+ !strncmp (s, "SOURCE", 6) ||
+ !strncmp (s, "EXPDTA", 6) ||
+ !strncmp (s, "JRNL ", 6) ||
+ !strncmp (s, "REMARK", 6) ||
+ !strncmp (s, "SEQRES", 6) ||
+ !strncmp (s, "HET ", 6) ||
+ !strncmp (s, "FORMUL", 6) ||
+ !strncmp (s, "CRYST1", 6) ||
+ !strncmp (s, "ORIGX1", 6) ||
+ !strncmp (s, "ORIGX2", 6) ||
+ !strncmp (s, "ORIGX3", 6) ||
+ !strncmp (s, "SCALE1", 6) ||
+ !strncmp (s, "SCALE2", 6) ||
+ !strncmp (s, "SCALE3", 6) ||
+ !strncmp (s, "MASTER", 6) ||
+ !strncmp (s, "KEYWDS", 6) ||
+ !strncmp (s, "DBREF ", 6) ||
+ !strncmp (s, "HETNAM", 6) ||
+ !strncmp (s, "HETSYN", 6) ||
+ !strncmp (s, "HELIX ", 6) ||
+ !strncmp (s, "LINK ", 6) ||
+ !strncmp (s, "MTRIX1", 6) ||
+ !strncmp (s, "MTRIX2", 6) ||
+ !strncmp (s, "MTRIX3", 6) ||
+ !strncmp (s, "SHEET ", 6) ||
+ !strncmp (s, "CISPEP", 6) ||
+/*
+ !strncmp (s, "SEQADV", 6) ||
+ !strncmp (s, "SITE ", 5) ||
+ !strncmp (s, "FTNOTE", 6) ||
+ !strncmp (s, "MODEL ", 5) ||
+ !strncmp (s, "ENDMDL", 6) ||
+ !strncmp (s, "SPRSDE", 6) ||
+ !strncmp (s, "MODRES", 6) ||
+ */
+ !strncmp (s, "GENERATED BY", 12) ||
+ !strncmp (s, "TER ", 4) ||
+ !strncmp (s, "END ", 4) ||
+ !strncmp (s, "TER\n", 4) ||
+ !strncmp (s, "END\n", 4) ||
+ !strncmp (s, "\n", 1))
+ /* ignored. */
+ ;
+ else if (!strncmp (s, "ATOM ", 7))
+ {
+ int id;
+ const char *end = strchr (s, '\n');
+ int L = end - s;
+ char *name = (char *) calloc (1, 4);
+ GLfloat x = -999, y = -999, z = -999;
+
+ if (1 != sscanf (s+7, " %d ", &id))
+ parse_error (filename, line, s);
+
+ /* Use the "atom name" field if that is all that is available. */
+ strncpy (name, s+12, 3);
+
+ /* But prefer the "element" field. */
+ if (L > 77 && !isspace(s[77])) {
+ /* fprintf(stderr, " \"%s\" -> ", name); */
+ name[0] = s[76];
+ name[1] = s[77];
+ name[2] = 0;
+ /* fprintf(stderr, "\"%s\"\n", name); */
+ }
+
+ while (isspace(*name)) name++;
+ ss = name + strlen(name)-1;
+ while (isspace(*ss) && ss > name)
+ *ss-- = 0;
+ ss = name + 1;
+ while(*ss)
+ {
+ *ss = tolower(*ss);
+ ss++;
+ }
+ if (3 != sscanf (s + 32, " %f %f %f ", &x, &y, &z))
+ parse_error (filename, line, s);
+
+/*
+ fprintf (stderr, "%s: %s: %d: atom: %d \"%s\" %9.4f %9.4f %9.4f\n",
+ progname, filename, line,
+ id, name, x, y, z);
+*/
+ push_atom (m, id, name, x, y, z);
+ }
+ else if (!strncmp (s, "HETATM ", 7))
+ {
+ int id;
+ char *name = (char *) calloc (1, 4);
+ GLfloat x = -999, y = -999, z = -999;
+
+ if (1 != sscanf (s+7, " %d ", &id))
+ parse_error (filename, line, s);
+
+ strncpy (name, s+12, 3);
+ while (isspace(*name)) name++;
+ ss = name + strlen(name)-1;
+ while (isspace(*ss) && ss > name)
+ *ss-- = 0;
+ if (3 != sscanf (s + 30, " %f %f %f ", &x, &y, &z))
+ parse_error (filename, line, s);
+/*
+ fprintf (stderr, "%s: %s: %d: atom: %d \"%s\" %9.4f %9.4f %9.4f\n",
+ progname, filename, line,
+ id, name, x, y, z);
+*/
+ push_atom (m, id, name, x, y, z);
+ }
+ else if (!strncmp (s, "CONECT ", 7))
+ {
+ int atoms[11];
+ int i = sscanf (s + 8, " %d %d %d %d %d %d %d %d %d %d %d %d ",
+ &atoms[0], &atoms[1], &atoms[2], &atoms[3],
+ &atoms[4], &atoms[5], &atoms[6], &atoms[7],
+ &atoms[8], &atoms[9], &atoms[10], &atoms[11]);
+ int j;
+ for (j = 1; j < i; j++)
+ if (atoms[j] > 0)
+ {
+/*
+ fprintf (stderr, "%s: %s: %d: bond: %d %d\n",
+ progname, filename, line, atoms[0], atoms[j]);
+*/
+ push_bond (m, atoms[0], atoms[j]);
+ }
+ }
+ else
+ {
+ char *s1 = strdup (s);
+ for (ss = s1; *ss && *ss != '\n'; ss++)
+ ;
+ *ss = 0;
+ fprintf (stderr, "%s: %s: %d: unrecognised line: %s\n",
+ progname, filename, line, s1);
+ }
+
+ while (*s && *s != '\n')
+ s++;
+ if (*s == '\n')
+ s++;
+ line++;
+ }
+}
+
+
+#ifdef LOAD_FILES
+static int
+parse_pdb_file (molecule *m, const char *name)
+{
+ FILE *in;
+ int buf_size = 40960;
+ char *buf;
+ int line = 1;
+
+ in = fopen(name, "r");
+ if (!in)
+ {
+ char *buf = (char *) malloc(1024 + strlen(name));
+ sprintf(buf, "%s: error reading \"%s\"", progname, name);
+ perror(buf);
+ return -1;
+ }
+
+ buf = (char *) malloc (buf_size);
+
+ while (fgets (buf, buf_size-1, in))
+ {
+ char *s;
+ for (s = buf; *s; s++)
+ if (*s == '\r') *s = '\n';
+ parse_pdb_data (m, buf, name, line++);
+ }
+
+ free (buf);
+ fclose (in);
+
+ if (!m->natoms)
+ {
+ fprintf (stderr, "%s: file %s contains no atomic coordinates!\n",
+ progname, name);
+ return -1;
+ }
+
+ if (!m->nbonds && do_bonds)
+ {
+ fprintf (stderr, "%s: warning: file %s contains no atomic bond info.\n",
+ progname, name);
+ do_bonds = 0;
+ }
+
+ return 0;
+}
+#endif /* LOAD_FILES */
+
+
+typedef struct { char *atom; int count; } atom_and_count;
+
+/* When listing the components of a molecule, the convention is to put the
+ carbon atoms first, the hydrogen atoms second, and the other atom types
+ sorted alphabetically after that (although for some molecules, the usual
+ order is different: we special-case a few of those.)
+ */
+static int
+cmp_atoms (const void *aa, const void *bb)
+{
+ const atom_and_count *a = (atom_and_count *) aa;
+ const atom_and_count *b = (atom_and_count *) bb;
+ if (!a->atom) return 1;
+ if (!b->atom) return -1;
+ if (!strcmp(a->atom, "C")) return -1;
+ if (!strcmp(b->atom, "C")) return 1;
+ if (!strcmp(a->atom, "H")) return -1;
+ if (!strcmp(b->atom, "H")) return 1;
+ return strcmp (a->atom, b->atom);
+}
+
+static void special_case_formula (char *f);
+
+static void
+generate_molecule_formula (molecule *m)
+{
+ char *buf = (char *) malloc (m->natoms * 10);
+ char *s = buf;
+ int i;
+ atom_and_count counts[200];
+ memset (counts, 0, sizeof(counts));
+ *s = 0;
+ for (i = 0; i < m->natoms; i++)
+ {
+ int j = 0;
+ char *a = (char *) m->atoms[i].label;
+ char *e;
+ while (!isalpha(*a)) a++;
+ a = strdup (a);
+ for (e = a; isalpha(*e); e++);
+ *e = 0;
+ while (counts[j].atom && !!strcmp(a, counts[j].atom))
+ j++;
+ if (counts[j].atom)
+ free (a);
+ else
+ counts[j].atom = a;
+ counts[j].count++;
+ }
+
+ i = 0;
+ while (counts[i].atom) i++;
+ qsort (counts, i, sizeof(*counts), cmp_atoms);
+
+ i = 0;
+ while (counts[i].atom)
+ {
+ strcat (s, counts[i].atom);
+ free (counts[i].atom);
+ s += strlen (s);
+ if (counts[i].count > 1)
+ sprintf (s, "[%d]", counts[i].count); /* use [] to get subscripts */
+ s += strlen (s);
+ i++;
+ }
+
+ special_case_formula (buf);
+
+ if (!m->label) m->label = strdup("");
+ s = (char *) malloc (strlen (m->label) + strlen (buf) + 2);
+ strcpy (s, m->label);
+ strcat (s, "\n");
+ strcat (s, buf);
+ free ((char *) m->label);
+ free (buf);
+ m->label = s;
+}
+
+/* thanks to Rene Uittenbogaard <ruittenb@wish.nl> */
+static void
+special_case_formula (char *f)
+{
+ if (!strcmp(f, "H[2]Be")) strcpy(f, "BeH[2]");
+ else if (!strcmp(f, "H[3]B")) strcpy(f, "BH[3]");
+ else if (!strcmp(f, "H[3]N")) strcpy(f, "NH[3]");
+ else if (!strcmp(f, "CHN")) strcpy(f, "HCN");
+ else if (!strcmp(f, "CKN")) strcpy(f, "KCN");
+ else if (!strcmp(f, "H[4]N[2]")) strcpy(f, "N[2]H[4]");
+ else if (!strcmp(f, "Cl[3]P")) strcpy(f, "PCl[3]");
+ else if (!strcmp(f, "Cl[5]P")) strcpy(f, "PCl[5]");
+}
+
+
+static void
+insert_vertical_whitespace (char *string)
+{
+ while (*string)
+ {
+ if ((string[0] == ',' ||
+ string[0] == ';' ||
+ string[0] == ':') &&
+ string[1] == ' ')
+ string[0] = ' ', string[1] = '\n';
+ string++;
+ }
+}
+
+
+/* Construct the molecule data from either: the builtins; or from
+ the (one) .pdb file specified with -molecule.
+ */
+static void
+load_molecules (ModeInfo *mi)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+ int i;
+
+ mc->nmolecules = 0;
+# ifdef LOAD_FILES
+ if (molecule_str && *molecule_str &&
+ strcmp(molecule_str, "(default)")) /* try external PDB files */
+ {
+ /* The -molecule option can point to a .pdb file, or to
+ a directory of them.
+ */
+ int wire = MI_IS_WIREFRAME(mi);
+ struct stat st;
+ int nfiles = 0;
+ int list_size = 0;
+ char **files = 0;
+ int molecule_ctr;
+
+ if (!stat (molecule_str, &st) &&
+ S_ISDIR (st.st_mode))
+ {
+ char buf [255];
+ DIR *pdb_dir;
+ struct dirent *dentry;
+
+ pdb_dir = opendir (molecule_str);
+ if (! pdb_dir)
+ {
+ sprintf (buf, "%.100s: %.100s", progname, molecule_str);
+ perror (buf);
+ exit (1);
+ }
+
+ if (verbose_p)
+ fprintf (stderr, "%s: directory %s\n", progname, molecule_str);
+
+ nfiles = 0;
+ list_size = 100;
+ files = (char **) calloc (sizeof(*files), list_size);
+
+ while ((dentry = readdir (pdb_dir)))
+ {
+ int L = strlen (dentry->d_name);
+ if (L > 4 && !strcasecmp (dentry->d_name + L - 4, ".pdb"))
+ {
+ char *fn;
+ if (nfiles >= list_size-1)
+ {
+ list_size = (list_size + 10) * 1.2;
+ files = (char **)
+ realloc (files, list_size * sizeof(*files));
+ if (!files)
+ {
+ OOM:
+ fprintf (stderr, "%s: out of memory (%d files)\n",
+ progname, nfiles);
+ exit (1);
+ }
+ }
+
+ fn = (char *) malloc (strlen (molecule_str) + L + 10);
+ if (!fn) goto OOM;
+ strcpy (fn, molecule_str);
+ if (fn[strlen(fn)-1] != '/') strcat (fn, "/");
+ strcat (fn, dentry->d_name);
+ files[nfiles++] = fn;
+ if (verbose_p)
+ fprintf (stderr, "%s: file %s\n", progname, fn);
+ }
+ }
+ closedir (pdb_dir);
+
+ if (nfiles == 0)
+ fprintf (stderr, "%s: no .pdb files in directory %s\n",
+ progname, molecule_str);
+ }
+ else
+ {
+ files = (char **) malloc (sizeof (*files));
+ nfiles = 1;
+ files[0] = strdup (molecule_str);
+ if (verbose_p)
+ fprintf (stderr, "%s: file %s\n", progname, molecule_str);
+ }
+
+ mc->nmolecules = nfiles;
+ mc->molecules = (molecule *) calloc (sizeof (molecule), mc->nmolecules);
+ molecule_ctr = 0;
+ for (i = 0; i < mc->nmolecules; i++)
+ {
+ if (verbose_p)
+ fprintf (stderr, "%s: reading %s\n", progname, files[i]);
+ if (!parse_pdb_file (&mc->molecules[molecule_ctr], files[i]))
+ {
+ if ((wire || !do_atoms) &&
+ !do_labels &&
+ mc->molecules[molecule_ctr].nbonds == 0)
+ {
+ /* If we're not drawing atoms (e.g., wireframe mode), and
+ there is no bond info, then make sure labels are turned
+ on, or we'll be looking at a black screen... */
+ fprintf (stderr, "%s: %s: no bonds: turning -label on.\n",
+ progname, files[i]);
+ do_labels = 1;
+ }
+ free (files[i]);
+ files[i] = 0;
+ molecule_ctr++;
+ }
+ }
+
+ free (files);
+ files = 0;
+ mc->nmolecules = molecule_ctr;
+ }
+# endif /* LOAD_FILES */
+
+ if (mc->nmolecules == 0) /* do the builtins if no files */
+ {
+ mc->nmolecules = countof(builtin_pdb_data);
+ mc->molecules = (molecule *) calloc (sizeof (molecule), mc->nmolecules);
+ for (i = 0; i < mc->nmolecules; i++)
+ {
+ char name[100];
+ sprintf (name, "<builtin-%d>", i);
+ if (verbose_p) fprintf (stderr, "%s: reading %s\n", progname, name);
+ parse_pdb_data (&mc->molecules[i], builtin_pdb_data[i], name, 1);
+ }
+ }
+
+ for (i = 0; i < mc->nmolecules; i++)
+ {
+ generate_molecule_formula (&mc->molecules[i]);
+ insert_vertical_whitespace ((char *) mc->molecules[i].label);
+ }
+}
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_molecule (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 20.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+gl_init (ModeInfo *mi)
+{
+ static const GLfloat pos[4] = {1.0, 0.4, 0.9, 0.0};
+ static const GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ static const GLfloat dif[4] = {0.8, 0.8, 0.8, 1.0};
+ static const GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+}
+
+
+static void
+startup_blurb (ModeInfo *mi)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+ const char *s = "Constructing molecules...";
+ print_texture_label (mi->dpy, mc->title_font,
+ mi->xgwa.width, mi->xgwa.height,
+ 0, s);
+ glFinish();
+ glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
+}
+
+ENTRYPOINT Bool
+molecule_handle_event (ModeInfo *mi, XEvent *event)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, mc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &mc->button_down_p))
+ return True;
+ else
+ {
+ if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '<' || c == ',' || c == '-' || c == '_' ||
+ keysym == XK_Left || keysym == XK_Up || keysym == XK_Prior)
+ {
+ mc->next = -1;
+ goto SWITCH;
+ }
+ else if (c == '>' || c == '.' || c == '=' || c == '+' ||
+ keysym == XK_Right || keysym == XK_Down ||
+ keysym == XK_Next)
+ {
+ mc->next = 1;
+ goto SWITCH;
+ }
+ }
+
+ if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ SWITCH:
+ mc->mode = 1;
+ mc->mode_tick = 4;
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_molecule (ModeInfo *mi)
+{
+ molecule_configuration *mc;
+ int wire;
+
+ MI_INIT (mi, mcs);
+
+ mc = &mcs[MI_SCREEN(mi)];
+
+ if ((mc->glx_context = init_GL(mi)) != NULL) {
+ gl_init(mi);
+ reshape_molecule (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ load_fonts (mi);
+ startup_blurb (mi);
+
+ wire = MI_IS_WIREFRAME(mi);
+
+ {
+ Bool spinx=False, spiny=False, spinz=False;
+ double spin_speed = 0.5;
+ double spin_accel = 0.3;
+ double wander_speed = 0.01;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') spinx = True;
+ else if (*s == 'y' || *s == 'Y') spiny = True;
+ else if (*s == 'z' || *s == 'Z') spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ mc->rot = make_rotator (spinx ? spin_speed : 0,
+ spiny ? spin_speed : 0,
+ spinz ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ (spinx && spiny && spinz));
+ mc->trackball = gltrackball_init (True);
+ }
+
+ orig_do_labels = do_labels;
+ orig_do_atoms = do_atoms;
+ orig_do_bonds = do_bonds;
+ orig_do_shells = do_shells;
+ orig_wire = MI_IS_WIREFRAME(mi);
+
+ mc->molecule_dlist = glGenLists(1);
+ if (do_shells)
+ mc->shell_dlist = glGenLists(1);
+
+ load_molecules (mi);
+ mc->which = random() % mc->nmolecules;
+
+ mc->no_label_threshold = get_float_resource (mi->dpy, "noLabelThreshold",
+ "NoLabelThreshold");
+ mc->wireframe_threshold = get_float_resource (mi->dpy, "wireframeThreshold",
+ "WireframeThreshold");
+ mc->mode = 0;
+
+ if (wire)
+ do_bonds = 1;
+}
+
+
+/* Put the labels on the atoms.
+ This can't be a part of the display list because of the games
+ we play with the translation matrix.
+ */
+static void
+draw_labels (ModeInfo *mi)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ molecule *m = &mc->molecules[mc->which];
+ int i;
+
+ if (!do_labels)
+ return;
+
+ for (i = 0; i < m->natoms; i++)
+ {
+ molecule_atom *a = &m->atoms[i];
+ GLfloat size = atom_size (a);
+ GLfloat m[4][4];
+
+ glPushMatrix();
+
+ if (!wire)
+ set_atom_color (mi, a, True, 1);
+
+ /* First, we translate the origin to the center of the atom.
+
+ Then we retrieve the prevailing modelview matrix, which
+ includes any rotation, wandering, and user-trackball-rolling
+ of the scene.
+
+ We set the top 3x3 cells of that matrix to be the identity
+ matrix. This removes all rotation from the matrix, while
+ leaving the translation alone. This has the effect of
+ leaving the prevailing coordinate system perpendicular to
+ the camera view: were we to draw a square face, it would
+ be in the plane of the screen.
+
+ Now we translate by `size' toward the viewer -- so that the
+ origin is *just in front* of the ball.
+
+ Then we draw the label text, allowing the depth buffer to
+ do its work: that way, labels on atoms will be occluded
+ properly when other atoms move in front of them.
+
+ This technique (of neutralizing rotation relative to the
+ observer, after both rotations and translations have been
+ applied) is known as "billboarding".
+ */
+
+ glTranslatef(a->x, a->y, a->z); /* get matrix */
+ glGetFloatv (GL_MODELVIEW_MATRIX, &m[0][0]); /* load rot. identity */
+ m[0][0] = 1; m[1][0] = 0; m[2][0] = 0;
+ m[0][1] = 0; m[1][1] = 1; m[2][1] = 0;
+ m[0][2] = 0; m[1][2] = 0; m[2][2] = 1;
+ glLoadIdentity(); /* reset modelview */
+ glMultMatrixf (&m[0][0]); /* replace with ours */
+
+ glTranslatef (0, 0, (size * 1.1)); /* move toward camera */
+
+ glRotatef (current_device_rotation(), 0, 0, 1); /* right side up */
+
+ {
+ XCharStruct e;
+ int w, h;
+ GLfloat s;
+
+ texture_string_metrics (mc->atom_font, a->label, &e, 0, 0);
+ w = e.width;
+ h = e.ascent + e.descent;
+
+ s = 1.0 / h; /* Scale to unit */
+ s *= mc->overall_scale; /* Scale to size of atom */
+ s *= 0.8; /* Shrink a bit */
+ glScalef (s, s, 1);
+ glTranslatef (-w/2, -h/2, 0);
+ print_texture_string (mc->atom_font, a->label);
+ }
+
+ glPopMatrix();
+ }
+}
+
+
+static void
+pick_new_molecule (ModeInfo *mi, time_t last)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+
+ if (mc->nmolecules == 1)
+ {
+ if (last != 0) return;
+ mc->which = 0;
+ }
+ else if (last == 0)
+ {
+ mc->which = random() % mc->nmolecules;
+ }
+ else if (mc->next < 0)
+ {
+ mc->which--;
+ if (mc->which < 0) mc->which = mc->nmolecules-1;
+ mc->next = 0;
+ }
+ else if (mc->next > 0)
+ {
+ mc->which++;
+ if (mc->which >= mc->nmolecules) mc->which = 0;
+ mc->next = 0;
+ }
+ else
+ {
+ int n = mc->which;
+ while (n == mc->which)
+ n = random() % mc->nmolecules;
+ mc->which = n;
+ }
+
+ if (verbose_p)
+ {
+ char *name = strdup (mc->molecules[mc->which].label);
+ char *s = strpbrk (name, "\r\n");
+ if (s) *s = 0;
+ fprintf (stderr, "%s: drawing %s (%d)\n", progname, name, mc->which);
+ free (name);
+ }
+
+ mc->polygon_count = 0;
+
+ glNewList (mc->molecule_dlist, GL_COMPILE);
+ ensure_bounding_box_visible (mi);
+
+ do_labels = orig_do_labels;
+ do_atoms = orig_do_atoms;
+ do_bonds = orig_do_bonds;
+ do_shells = orig_do_shells;
+ MI_IS_WIREFRAME(mi) = orig_wire;
+
+ if (mc->molecule_size > mc->no_label_threshold)
+ do_labels = 0;
+ if (mc->molecule_size > mc->wireframe_threshold)
+ MI_IS_WIREFRAME(mi) = 1;
+
+ if (MI_IS_WIREFRAME(mi))
+ do_bonds = 1, do_shells = 0;
+
+ if (!do_bonds)
+ do_shells = 0;
+
+ if (! (do_bonds || do_atoms || do_labels))
+ {
+ /* Make sure *something* shows up! */
+ MI_IS_WIREFRAME(mi) = 1;
+ do_bonds = 1;
+ }
+
+ build_molecule (mi, False);
+ glEndList();
+
+ if (do_shells)
+ {
+ glNewList (mc->shell_dlist, GL_COMPILE);
+ ensure_bounding_box_visible (mi);
+
+ do_labels = 0;
+ do_atoms = 1;
+ do_bonds = 0;
+
+ build_molecule (mi, True);
+
+ glEndList();
+ do_bonds = orig_do_bonds;
+ do_atoms = orig_do_atoms;
+ do_labels = orig_do_labels;
+ }
+}
+
+
+ENTRYPOINT void
+draw_molecule (ModeInfo *mi)
+{
+ time_t now = time ((time_t *) 0);
+ GLfloat speed = 4.0; /* speed at which the zoom out/in happens */
+
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!mc->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(mc->glx_context));
+
+ if (mc->draw_time == 0)
+ {
+ pick_new_molecule (mi, mc->draw_time);
+ mc->draw_time = now;
+ }
+ else if (mc->mode == 0)
+ {
+ if (mc->draw_tick++ > 10)
+ {
+ time_t now = time((time_t *) 0);
+ if (mc->draw_time == 0) mc->draw_time = now;
+ mc->draw_tick = 0;
+
+ if (!mc->button_down_p &&
+ mc->nmolecules > 1 &&
+ mc->draw_time + timeout <= now)
+ {
+ /* randomize molecules every -timeout seconds */
+ mc->mode = 1; /* go out */
+ mc->mode_tick = 80 / speed;
+ mc->draw_time = now;
+ }
+ }
+ }
+ else if (mc->mode == 1) /* out */
+ {
+ if (--mc->mode_tick <= 0)
+ {
+ mc->mode_tick = 80 / speed;
+ mc->mode = 2; /* go in */
+ pick_new_molecule (mi, mc->draw_time);
+ }
+ }
+ else if (mc->mode == 2) /* in */
+ {
+ if (--mc->mode_tick <= 0)
+ mc->mode = 0; /* normal */
+ }
+ else
+ abort();
+
+ glPushMatrix ();
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (mc->rot, &x, &y, &z, !mc->button_down_p);
+ glTranslatef((x - 0.5) * 9,
+ (y - 0.5) * 9,
+ (z - 0.5) * 9);
+
+ gltrackball_rotate (mc->trackball);
+
+ get_rotation (mc->rot, &x, &y, &z, !mc->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (mc->mode != 0)
+ {
+ GLfloat s = (mc->mode == 1
+ ? mc->mode_tick / (80 / speed)
+ : ((80 / speed) - mc->mode_tick + 1) / (80 / speed));
+ glScalef (s, s, s);
+ }
+
+ glPushMatrix();
+ glCallList (mc->molecule_dlist);
+
+ if (mc->mode == 0)
+ {
+ molecule *m = &mc->molecules[mc->which];
+
+ draw_labels (mi);
+
+ /* This can't go in the display list, or the characters are spaced
+ wrongly when the window is resized. */
+ if (do_titles && m->label && *m->label)
+ {
+ set_atom_color (mi, 0, True, 1);
+ print_texture_label (mi->dpy, mc->title_font,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, m->label);
+ }
+ }
+ glPopMatrix();
+
+ if (do_shells)
+ {
+ glColorMask (GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ glPushMatrix();
+ glCallList (mc->shell_dlist);
+ glPopMatrix();
+ glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+
+ glDepthFunc (GL_EQUAL);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glPushMatrix();
+ glCallList (mc->shell_dlist);
+ glPopMatrix();
+ glDepthFunc (GL_LESS);
+ glDisable (GL_BLEND);
+ }
+
+ glPopMatrix ();
+
+ mi->polygon_count = mc->polygon_count;
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Molecule", molecule)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/molecule.man b/hacks/glx/molecule.man
new file mode 100644
index 0000000..6ec8328
--- /dev/null
+++ b/hacks/glx/molecule.man
@@ -0,0 +1,160 @@
+.TH XScreenSaver 1 "13-Mar-01" "X Version 11"
+.SH NAME
+molecule - draws 3D molecular structures
+.SH SYNOPSIS
+.B molecule
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-wander] [\-no-wander]
+[\-spin \fIaxes\fP]
+[\-no-spin]
+[\-timeout \fIseconds\fP]
+[\-labels] [\-no-labels]
+[\-titles] [\-no-titles]
+[\-atoms] [\-no-atoms]
+[\-bonds] [\-no-bonds]
+[\-shells] [\-no-shells]
+[\-molecule \fIfile-or-directory\fP]
+[\-verbose]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fImolecule\fP program draws several different representations of
+molecules. Some common molecules are built in, and it can read PDB
+(Protein Data Base) files as input.
+.SH OPTIONS
+.I molecule
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-verbose
+Print debugging info on stderr about files being loaded, etc.
+.TP 8
+.B \-wander
+Move the molecules around the screen.
+.TP 8
+.B \-no\-wander
+Keep the molecule centered on the screen. This is the default.
+.TP 8
+.B \-spin
+Which axes around which the molecule should spin. The default is "XYZ",
+meaning rotate it freely in space. "\fB\-spin Z\fP" would rotate the
+molecule in the plane of the screen while not rotating it into or out
+of the screen; etc.
+.TP 8
+.B \-no\-spin
+Don't spin it at all: the same as \fB\-spin ""\fP.
+.TP 8
+.B \-labels
+Draw labels on the atoms (or the spot where the atoms would be.)
+This is the default.
+.TP 8
+.B \-no\-labels
+Do not draw labels on the atoms.
+.TP 8
+.B \-titles
+Print the name of the molecule and its chemical formula at the top of
+the screen.
+.TP 8
+.B \-no\-titles
+Do not print the molecule name.
+.TP 8
+.B \-atoms
+Represent the atoms as shaded spheres of appropriate sizes.
+This is the default.
+.TP 8
+.B \-no\-atoms
+Do not draw spheres for the atoms: only draw bond lines.
+.TP 8
+.B \-bonds
+Represent the atomic bonds as solid tubes of appropriate thicknesses.
+This is the default.
+.TP 8
+.B \-no\-bonds
+Do not draw the bonds: instead, make the spheres for the atoms be
+larger, for a "space-filling" representation of the molecule.
+.TP 8
+.B \-shells
+Draw transparent electron shells around the atoms. This only works
+if bonds are also being drawn.
+.TP 8
+.B \-no\-shells
+Do not draw electron shells. This is the default.
+.TP 8
+.B \-shell\-alpha
+When drawing shells, how transparent to make them. Default 0.4.
+.TP 8
+.B \-wireframe
+Draw a wireframe rendition of the molecule: this will consist only of
+single-pixel lines for the bonds, and text labels where the atoms go.
+This will be very fast.
+.TP 8
+.B \-timeout \fIseconds\fP
+When using the built-in data set, change to a new molecule every
+this-many seconds. Default is 20 seconds.
+.TP 8
+.B \-molecule \fIfile-or-directory\fP
+Instead of using the built-in molecules, read one from the given file.
+This file must be in PDB (Protein Data Base) format. (Note that it's
+not uncommon for PDB files to contain only the atoms, with no (or
+little) information about the atomic bonds.)
+
+This can also be a directory, in which case, all of the .pdb files in
+that directory will be loaded. A new one will be displayed at random
+every few seconds (as per the \fI\-timeout\fP option.)
+.PP
+When the molecule is too large (bigger than about 30 angstroms from
+side to side), the \fI\-label\fP option will be automatically turned
+off, because otherwise, the labels would overlap and completely obscure
+the display.
+
+When the molecule is around 150 angstroms from side to side, wireframe
+mode will be turned on (because otherwise it would be too slow.)
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.PP
+Documentation on the PDB file format:
+
+ http://www.wwpdb.org/docs.html
+ http://www.rcsb.org/pdb/docs/format/pdbguide2.2/guide2.2_frame.html
+
+A good source of PDB files:
+
+ http://www.umass.edu/microbio/rasmol/whereget.htm
+ http://www.wwpdb.org/docs.html
+.SH COPYRIGHT
+Copyright \(co 2001-2005 by Jamie Zawinski.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>
diff --git a/hacks/glx/molecules.sh b/hacks/glx/molecules.sh
new file mode 100755
index 0000000..4f417c3
--- /dev/null
+++ b/hacks/glx/molecules.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+TARGET=$1
+shift
+SRCS=$*
+
+TMP=molecules.h.$$
+rm -f $TMP
+trap "rm -f $TMP" 1 2 3 15 EXIT
+
+if [ -z "$UTILS_SRC" ]; then UTILS_SRC="../../utils"; fi
+
+for f in $SRCS ; do
+ sh "$UTILS_SRC/ad2c" "$f" |
+ sed 's/",$/\\n"/' >> $TMP
+ echo ',' >> $TMP
+done
+
+if cmp -s $TMP $TARGET ; then
+ rm $TMP
+else
+ mv $TMP $TARGET
+fi
diff --git a/hacks/glx/morph3d.c b/hacks/glx/morph3d.c
new file mode 100644
index 0000000..0780444
--- /dev/null
+++ b/hacks/glx/morph3d.c
@@ -0,0 +1,837 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* morph3d --- Shows 3D morphing objects */
+
+#if 0
+static const char sccsid[] = "@(#)morph3d.c 5.01 2001/03/01 xlockmore";
+#endif
+
+#undef DEBUG_CULL_FACE
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Marcelo Fernandes Vianna
+ * (me...) and was inspired on a WindowsNT(R)'s screen saver (Flower Box).
+ * It was written from scratch and it was not based on any other source code.
+ *
+ * Porting it to xlock (the final objective of this code since the moment I
+ * decided to create it) was possible by comparing the original Mesa's gear
+ * demo with it's ported version to xlock, so thanks for Danny Sung (look at
+ * gear.c) for his indirect help.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * If you are interested in the original version of this program (not a xlock
+ * mode, please refer to the Mesa package (ftp iris.ssec.wisc.edu on /pub/Mesa)
+ *
+ * Since I'm not a native English speaker, my apologies for any grammatical
+ * mistakes.
+ *
+ * My e-mail address is
+ * mfvianna@centroin.com.br
+ *
+ * Marcelo F. Vianna (Feb-13-1997)
+ *
+ * Revision History:
+ * 05-Apr-2002: Removed all gllist uses (fix some bug with nvidia driver)
+ * 01-Mar-2001: Added FPS stuff E.Lassauge <lassauge@mail.dotcom.fr>
+ * 27-Jul-1997: Speed ups by Marcelo F. Vianna.
+ * 08-May-1997: Speed ups by Marcelo F. Vianna.
+ *
+ */
+
+#ifdef STANDALONE
+# define MODE_moebius
+# define DEFAULTS "*delay: 40000 \n" \
+ "*showFPS: False \n" \
+ "*count: 0 \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_morph3d 0
+# define release_morph3d 0
+# define morph3d_handle_event xlockmore_no_events
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef MODE_moebius
+
+ENTRYPOINT ModeSpecOpt morph3d_opts =
+{0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL};
+
+#ifdef USE_MODULES
+ModStruct morph3d_description =
+{"morph3d", "init_morph3d", "draw_morph3d", (char *) NULL,
+ "draw_morph3d", "change_morph3d", (char *) NULL, &morph3d_opts,
+ 1000, 0, 1, 1, 4, 1.0, "",
+ "Shows GL morphing polyhedra", 0, NULL};
+
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 1.0
+
+#define VectMul(X1,Y1,Z1,X2,Y2,Z2) (Y1)*(Z2)-(Z1)*(Y2),(Z1)*(X2)-(X1)*(Z2),(X1)*(Y2)-(Y1)*(X2)
+#define sqr(A) ((A)*(A))
+
+/* Increasing this values produces better image quality, the price is speed. */
+#define tetradivisions 23
+#define cubedivisions 20
+#define octadivisions 21
+#define dodecadivisions 10
+#define icodivisions 15
+
+#define tetraangle 109.47122063449069174
+#define cubeangle 90.000000000000000000
+#define octaangle 109.47122063449069174
+#define dodecaangle 63.434948822922009981
+#define icoangle 41.810314895778596167
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+#define SQRT2 1.4142135623730951455
+#define SQRT3 1.7320508075688771932
+#define SQRT5 2.2360679774997898051
+#define SQRT6 2.4494897427831778813
+#define SQRT15 3.8729833462074170214
+#define cossec36_2 0.8506508083520399322
+#define cos72 0.3090169943749474241
+#define sin72 0.9510565162951535721
+#define cos36 0.8090169943749474241
+#define sin36 0.5877852522924731292
+
+/*************************************************************************/
+
+typedef struct {
+ GLint WindH, WindW;
+ GLfloat step;
+ GLfloat seno;
+ int object;
+ int edgedivisions;
+ int VisibleSpikes;
+ void (*draw_object) (ModeInfo * mi);
+ float Magnitude;
+ const float *MaterialColor[20];
+ GLXContext *glx_context;
+ int arrayninit;
+
+} morph3dstruct;
+
+static const GLfloat front_shininess[] = {60.0};
+static const GLfloat front_specular[] = {0.7, 0.7, 0.7, 1.0};
+static const GLfloat ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const GLfloat diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const GLfloat position0[] = {1.0, 1.0, 1.0, 0.0};
+static const GLfloat position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const GLfloat lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const GLfloat lmodel_twoside[] = {GL_TRUE};
+
+static const GLfloat MaterialRed[] = {0.7, 0.0, 0.0, 1.0};
+static const GLfloat MaterialGreen[] = {0.1, 0.5, 0.2, 1.0};
+static const GLfloat MaterialBlue[] = {0.0, 0.0, 0.7, 1.0};
+static const GLfloat MaterialCyan[] = {0.2, 0.5, 0.7, 1.0};
+static const GLfloat MaterialYellow[] = {0.7, 0.7, 0.0, 1.0};
+static const GLfloat MaterialMagenta[] = {0.6, 0.2, 0.5, 1.0};
+static const GLfloat MaterialWhite[] = {0.7, 0.7, 0.7, 1.0};
+static const GLfloat MaterialGray[] = {0.5, 0.5, 0.5, 1.0};
+
+static morph3dstruct *morph3d = (morph3dstruct *) NULL;
+
+#define TRIANGLE(Edge, Amp, Divisions, Z, VS) \
+{ \
+ GLfloat Xf,Yf,Xa,Yb=0.0,Xf2=0.0,Yf2=0.0,Yf_2=0.0,Yb2,Yb_2; \
+ GLfloat Factor=0.0,Factor1,Factor2; \
+ GLfloat VertX,VertY,VertZ,NeiAX,NeiAY,NeiAZ,NeiBX,NeiBY,NeiBZ; \
+ GLfloat Ax,Ay; \
+ int Ri,Ti; \
+ GLfloat Vr=(Edge)*SQRT3/3; \
+ GLfloat AmpVr2=(Amp)/sqr(Vr); \
+ GLfloat Zf=(Edge)*(Z); \
+ \
+ Ax=(Edge)*(+0.5/(Divisions)), Ay=(Edge)*(-SQRT3/(2*Divisions)); \
+ \
+ Yf=Vr+Ay; Yb=Yf+0.001; \
+ for (Ri=1; Ri<=(Divisions); Ri++) { \
+ glBegin(GL_TRIANGLE_STRIP); \
+ Xf=(float)Ri*Ax; Xa=Xf+0.001; \
+ Yf2=sqr(Yf); Yf_2=sqr(Yf-Ay); \
+ Yb2=sqr(Yb); Yb_2=sqr(Yb-Ay); \
+ for (Ti=0; Ti<Ri; Ti++) { \
+ Factor=1-(((Xf2=sqr(Xf))+Yf2)*AmpVr2); \
+ Factor1=1-((sqr(Xa)+Yf2)*AmpVr2); \
+ Factor2=1-((Xf2+Yb2)*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Yf; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ mi->polygon_count++; \
+ \
+ Xf-=Ax; Yf-=Ay; Xa-=Ax; Yb-=Ay; \
+ \
+ Factor=1-(((Xf2=sqr(Xf))+Yf_2)*AmpVr2); \
+ Factor1=1-((sqr(Xa)+Yf_2)*AmpVr2); \
+ Factor2=1-((Xf2+Yb_2)*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Yf; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ mi->polygon_count++; \
+ \
+ Xf-=Ax; Yf+=Ay; Xa-=Ax; Yb+=Ay; \
+ } \
+ Factor=1-(((Xf2=sqr(Xf))+(Yf2=sqr(Yf)))*AmpVr2); \
+ Factor1=1-((sqr(Xa)+Yf2)*AmpVr2); \
+ Factor2=1-((Xf2+sqr(Yb))*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Yf; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ Yf+=Ay; Yb+=Ay; \
+ glEnd(); \
+ } \
+ VS=(Factor<0); \
+}
+
+#define SQUARE(Edge, Amp, Divisions, Z, VS) \
+{ \
+ int Xi,Yi; \
+ GLfloat Xf,Yf,Y,Xf2,Yf2,Y2,Xa,Xa2,Yb; \
+ GLfloat Factor=0.0,Factor1,Factor2; \
+ GLfloat VertX,VertY,VertZ,NeiAX,NeiAY,NeiAZ,NeiBX,NeiBY,NeiBZ; \
+ GLfloat Zf=(Edge)*(Z); \
+ GLfloat AmpVr2=(Amp)/sqr((Edge)*SQRT2/2); \
+ \
+ for (Yi=0; Yi<(Divisions); Yi++) { \
+ Yf=-((Edge)/2.0) + ((float)Yi)/(Divisions)*(Edge); \
+ Yf2=sqr(Yf); \
+ Y=Yf+1.0/(Divisions)*(Edge); \
+ Y2=sqr(Y); \
+ glBegin(GL_QUAD_STRIP); \
+ for (Xi=0; Xi<=(Divisions); Xi++) { \
+ Xf=-((Edge)/2.0) + ((float)Xi)/(Divisions)*(Edge); \
+ Xf2=sqr(Xf); \
+ \
+ Xa=Xf+0.001; Yb=Y+0.001; \
+ Factor=1-((Xf2+Y2)*AmpVr2); \
+ Factor1=1-(((Xa2=sqr(Xa))+Y2)*AmpVr2); \
+ Factor2=1-((Xf2+sqr(Yb))*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Y; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Y-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ \
+ Yb=Yf+0.001; \
+ Factor=1-((Xf2+Yf2)*AmpVr2); \
+ Factor1=1-((Xa2+Yf2)*AmpVr2); \
+ Factor2=1-((Xf2+sqr(Yb))*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Yf; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ mi->polygon_count++; \
+ } \
+ glEnd(); \
+ } \
+ VS=(Factor<0); \
+}
+
+#define PENTAGON(Edge, Amp, Divisions, Z, VS) \
+{ \
+ int Ri,Ti,Fi; \
+ GLfloat Xf,Yf,Xa,Yb,Xf2,Yf2; \
+ GLfloat Factor=0.0,Factor1,Factor2; \
+ GLfloat VertX,VertY,VertZ,NeiAX,NeiAY,NeiAZ,NeiBX,NeiBY,NeiBZ; \
+ GLfloat Zf=(Edge)*(Z); \
+ GLfloat AmpVr2=(Amp)/sqr((Edge)*cossec36_2); \
+ \
+ GLfloat x[6],y[6]; \
+ \
+ for(Fi=0;Fi<6;Fi++) { \
+ x[Fi]=-cos( Fi*2*Pi/5 + Pi/10 )/(Divisions)*cossec36_2*(Edge); \
+ y[Fi]=sin( Fi*2*Pi/5 + Pi/10 )/(Divisions)*cossec36_2*(Edge); \
+ } \
+ \
+ for (Ri=1; Ri<=(Divisions); Ri++) { \
+ for (Fi=0; Fi<5; Fi++) { \
+ glBegin(GL_TRIANGLE_STRIP); \
+ for (Ti=0; Ti<Ri; Ti++) { \
+ Xf=(float)(Ri-Ti)*x[Fi] + (float)Ti*x[Fi+1]; \
+ Yf=(float)(Ri-Ti)*y[Fi] + (float)Ti*y[Fi+1]; \
+ Xa=Xf+0.001; Yb=Yf+0.001; \
+ Factor=1-(((Xf2=sqr(Xf))+(Yf2=sqr(Yf)))*AmpVr2); \
+ Factor1=1-((sqr(Xa)+Yf2)*AmpVr2); \
+ Factor2=1-((Xf2+sqr(Yb))*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Yf; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ mi->polygon_count++; \
+ \
+ Xf-=x[Fi]; Yf-=y[Fi]; Xa-=x[Fi]; Yb-=y[Fi]; \
+ \
+ Factor=1-(((Xf2=sqr(Xf))+(Yf2=sqr(Yf)))*AmpVr2); \
+ Factor1=1-((sqr(Xa)+Yf2)*AmpVr2); \
+ Factor2=1-((Xf2+sqr(Yb))*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Yf; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ mi->polygon_count++; \
+ \
+ } \
+ Xf=(float)Ri*x[Fi+1]; \
+ Yf=(float)Ri*y[Fi+1]; \
+ Xa=Xf+0.001; Yb=Yf+0.001; \
+ Factor=1-(((Xf2=sqr(Xf))+(Yf2=sqr(Yf)))*AmpVr2); \
+ Factor1=1-((sqr(Xa)+Yf2)*AmpVr2); \
+ Factor2=1-((Xf2+sqr(Yb))*AmpVr2); \
+ VertX=Factor*Xf; VertY=Factor*Yf; VertZ=Factor*Zf; \
+ NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ; \
+ NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ; \
+ glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ)); \
+ glVertex3f(VertX, VertY, VertZ); \
+ glEnd(); \
+ } \
+ } \
+ VS=(Factor<0); \
+}
+
+static void
+draw_tetra(ModeInfo * mi)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[0]);
+
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 0.5 / SQRT6, mp->VisibleSpikes);
+
+ glPushMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-tetraangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[1]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 0.5 / SQRT6, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + tetraangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[2]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 0.5 / SQRT6, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + tetraangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[3]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 0.5 / SQRT6, mp->VisibleSpikes);
+}
+
+static void
+draw_cube(ModeInfo * mi)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[0]);
+
+ SQUARE(2, mp->seno, mp->edgedivisions, 0.5, mp->VisibleSpikes)
+
+ glRotatef(cubeangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[1]);
+ SQUARE(2, mp->seno, mp->edgedivisions, 0.5, mp->VisibleSpikes)
+ glRotatef(cubeangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[2]);
+ SQUARE(2, mp->seno, mp->edgedivisions, 0.5, mp->VisibleSpikes)
+ glRotatef(cubeangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[3]);
+ SQUARE(2, mp->seno, mp->edgedivisions, 0.5, mp->VisibleSpikes)
+ glRotatef(cubeangle, 0, 1, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[4]);
+ SQUARE(2, mp->seno, mp->edgedivisions, 0.5, mp->VisibleSpikes)
+ glRotatef(2 * cubeangle, 0, 1, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[5]);
+ SQUARE(2, mp->seno, mp->edgedivisions, 0.5, mp->VisibleSpikes)
+}
+
+static void
+draw_octa(ModeInfo * mi)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[0]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+
+ glPushMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-180 + octaangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[1]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-octaangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[2]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-octaangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[3]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[4]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-180 + octaangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[5]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-octaangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[6]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-octaangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[7]);
+ TRIANGLE(2, mp->seno, mp->edgedivisions, 1 / SQRT6, mp->VisibleSpikes);
+}
+
+static void
+draw_dodeca(ModeInfo * mi)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+
+#define TAU ((SQRT5+1)/2)
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[0]);
+
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+
+ glPushMatrix();
+ glRotatef(180, 0, 0, 1);
+ glPushMatrix();
+ glRotatef(-dodecaangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[1]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(-dodecaangle, cos72, sin72, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[2]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(-dodecaangle, cos72, -sin72, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[3]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(dodecaangle, cos36, -sin36, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[4]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(dodecaangle, cos36, sin36, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[5]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[6]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glRotatef(180, 0, 0, 1);
+ glPushMatrix();
+ glRotatef(-dodecaangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[7]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(-dodecaangle, cos72, sin72, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[8]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(-dodecaangle, cos72, -sin72, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[9]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(dodecaangle, cos36, -sin36, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[10]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(dodecaangle, cos36, sin36, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[11]);
+ PENTAGON(1, mp->seno, mp->edgedivisions, sqr(TAU) * sqrt((TAU + 2) / 5) / 2, mp->VisibleSpikes);
+}
+
+static void
+draw_icosa(ModeInfo * mi)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[0]);
+
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+
+ glPushMatrix();
+
+ glPushMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-icoangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[1]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[2]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[3]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[4]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[5]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-icoangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[6]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[7]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[8]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-icoangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[9]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[10]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-icoangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[11]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[12]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[13]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[14]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[15]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-icoangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[16]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[17]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPushMatrix();
+ glRotatef(180, 0, 1, 0);
+ glRotatef(-180 + icoangle, 0.5, -SQRT3 / 2, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[18]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+ glPopMatrix();
+ glRotatef(180, 0, 0, 1);
+ glRotatef(-icoangle, 1, 0, 0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mp->MaterialColor[19]);
+ TRIANGLE(1.5, mp->seno, mp->edgedivisions, (3 * SQRT3 + SQRT15) / 12, mp->VisibleSpikes);
+}
+
+ENTRYPOINT void
+reshape_morph3d(ModeInfo * mi, int width, int height)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ }
+
+ glViewport(0, y, mp->WindW = (GLint) width, mp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+static void
+pinit(ModeInfo * mi)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+
+ glClearDepth(1.0);
+ glColor3f(1.0, 1.0, 1.0);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+
+ glShadeModel(GL_SMOOTH);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+
+ switch (mp->object) {
+ case 2:
+ mp->draw_object = draw_cube;
+ mp->MaterialColor[0] = MaterialRed;
+ mp->MaterialColor[1] = MaterialGreen;
+ mp->MaterialColor[2] = MaterialCyan;
+ mp->MaterialColor[3] = MaterialMagenta;
+ mp->MaterialColor[4] = MaterialYellow;
+ mp->MaterialColor[5] = MaterialBlue;
+ mp->edgedivisions = cubedivisions;
+ mp->Magnitude = 2.0;
+ break;
+ case 3:
+ mp->draw_object = draw_octa;
+ mp->MaterialColor[0] = MaterialRed;
+ mp->MaterialColor[1] = MaterialGreen;
+ mp->MaterialColor[2] = MaterialBlue;
+ mp->MaterialColor[3] = MaterialWhite;
+ mp->MaterialColor[4] = MaterialCyan;
+ mp->MaterialColor[5] = MaterialMagenta;
+ mp->MaterialColor[6] = MaterialGray;
+ mp->MaterialColor[7] = MaterialYellow;
+ mp->edgedivisions = octadivisions;
+ mp->Magnitude = 2.5;
+ break;
+ case 4:
+ mp->draw_object = draw_dodeca;
+ mp->MaterialColor[0] = MaterialRed;
+ mp->MaterialColor[1] = MaterialGreen;
+ mp->MaterialColor[2] = MaterialCyan;
+ mp->MaterialColor[3] = MaterialBlue;
+ mp->MaterialColor[4] = MaterialMagenta;
+ mp->MaterialColor[5] = MaterialYellow;
+ mp->MaterialColor[6] = MaterialGreen;
+ mp->MaterialColor[7] = MaterialCyan;
+ mp->MaterialColor[8] = MaterialRed;
+ mp->MaterialColor[9] = MaterialMagenta;
+ mp->MaterialColor[10] = MaterialBlue;
+ mp->MaterialColor[11] = MaterialYellow;
+ mp->edgedivisions = dodecadivisions;
+ mp->Magnitude = 2.0;
+ break;
+ case 5:
+ mp->draw_object = draw_icosa;
+ mp->MaterialColor[0] = MaterialRed;
+ mp->MaterialColor[1] = MaterialGreen;
+ mp->MaterialColor[2] = MaterialBlue;
+ mp->MaterialColor[3] = MaterialCyan;
+ mp->MaterialColor[4] = MaterialYellow;
+ mp->MaterialColor[5] = MaterialMagenta;
+ mp->MaterialColor[6] = MaterialRed;
+ mp->MaterialColor[7] = MaterialGreen;
+ mp->MaterialColor[8] = MaterialBlue;
+ mp->MaterialColor[9] = MaterialWhite;
+ mp->MaterialColor[10] = MaterialCyan;
+ mp->MaterialColor[11] = MaterialYellow;
+ mp->MaterialColor[12] = MaterialMagenta;
+ mp->MaterialColor[13] = MaterialRed;
+ mp->MaterialColor[14] = MaterialGreen;
+ mp->MaterialColor[15] = MaterialBlue;
+ mp->MaterialColor[16] = MaterialCyan;
+ mp->MaterialColor[17] = MaterialYellow;
+ mp->MaterialColor[18] = MaterialMagenta;
+ mp->MaterialColor[19] = MaterialGray;
+ mp->edgedivisions = icodivisions;
+ mp->Magnitude = 2.5;
+ break;
+ default:
+ mp->draw_object = draw_tetra;
+ mp->MaterialColor[0] = MaterialRed;
+ mp->MaterialColor[1] = MaterialGreen;
+ mp->MaterialColor[2] = MaterialBlue;
+ mp->MaterialColor[3] = MaterialWhite;
+ mp->edgedivisions = tetradivisions;
+ mp->Magnitude = 2.5;
+ break;
+ }
+ if (MI_IS_MONO(mi)) {
+ int loop;
+
+ for (loop = 0; loop < 20; loop++)
+ mp->MaterialColor[loop] = MaterialGray;
+ }
+}
+
+ENTRYPOINT void
+init_morph3d(ModeInfo * mi)
+{
+ morph3dstruct *mp;
+
+ MI_INIT (mi, morph3d);
+ mp = &morph3d[MI_SCREEN(mi)];
+ mp->step = NRAND(90);
+ mp->VisibleSpikes = 1;
+
+ if ((mp->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_morph3d(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ mp->object = MI_COUNT(mi);
+ if (mp->object <= 0 || mp->object > 5)
+ mp->object = NRAND(5) + 1;
+ pinit(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_morph3d(ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ morph3dstruct *mp;
+
+ if (morph3d == NULL)
+ return;
+ mp = &morph3d[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+
+ if (!mp->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+ glXMakeCurrent(display, window, *(mp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+ glTranslatef(0.0, 0.0, -10.0);
+
+ if (!MI_IS_ICONIC(mi)) {
+ glScalef(Scale4Window * mp->WindH / mp->WindW, Scale4Window, Scale4Window);
+ glTranslatef(2.5 * mp->WindW / mp->WindH * sin(mp->step * 1.11), 2.5 * cos(mp->step * 1.25 * 1.11), 0);
+ } else {
+ glScalef(Scale4Iconic * mp->WindH / mp->WindW, Scale4Iconic, Scale4Iconic);
+ }
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, h, 1);
+ }
+# endif
+
+ glRotatef(mp->step * 100, 1, 0, 0);
+ glRotatef(mp->step * 95, 0, 1, 0);
+ glRotatef(mp->step * 90, 0, 0, 1);
+
+ mp->seno = (sin(mp->step) + 1.0 / 3.0) * (4.0 / 5.0) * mp->Magnitude;
+
+ if (mp->VisibleSpikes) {
+#ifdef DEBUG_CULL_FACE
+ int loop;
+
+ for (loop = 0; loop < 20; loop++)
+ mp->MaterialColor[loop] = MaterialGray;
+#endif
+ glDisable(GL_CULL_FACE);
+ } else {
+#ifdef DEBUG_CULL_FACE
+ int loop;
+
+ for (loop = 0; loop < 20; loop++)
+ mp->MaterialColor[loop] = MaterialWhite;
+#endif
+ glEnable(GL_CULL_FACE);
+ }
+
+ mp->draw_object(mi);
+
+ glPopMatrix();
+
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glXSwapBuffers(display, window);
+
+ mp->step += 0.05;
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_morph3d(ModeInfo * mi)
+{
+ morph3dstruct *mp = &morph3d[MI_SCREEN(mi)];
+
+ if (!mp->glx_context)
+ return;
+
+ mp->object = (mp->object) % 5 + 1;
+ pinit(mi);
+}
+#endif /* !STANDALONE */
+
+#endif
+
+XSCREENSAVER_MODULE ("Morph3D", morph3d)
diff --git a/hacks/glx/morph3d.man b/hacks/glx/morph3d.man
new file mode 100644
index 0000000..21af78c
--- /dev/null
+++ b/hacks/glx/morph3d.man
@@ -0,0 +1,57 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+morph3d - 3d morphing objects.
+.SH SYNOPSIS
+.B morph3d
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fInumber\fP]
+[\-delay \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+Another 3d shape-changing GL hack. It has the same shiny-plastic feel
+as Superquadrics, as many computer-generated objects do...
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fInumber\fP
+0 - 20. Default: 0.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 40000 (0.04 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Marcelo Vianna. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Marcelo Vianna.
diff --git a/hacks/glx/noof.c b/hacks/glx/noof.c
new file mode 100644
index 0000000..4e42840
--- /dev/null
+++ b/hacks/glx/noof.c
@@ -0,0 +1,519 @@
+/* noof, Copyright (c) 2004-2018 Bill Torzewski <billt@worksitez.com>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Originally a demo included with GLUT;
+ * (Apparently this was called "diatoms" on Irix.)
+ * ported to raw GL and xscreensaver by jwz, 12-Feb-2004.
+ */
+
+#define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*doubleBuffer: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_noof 0
+# define release_noof 0
+# define noof_handle_event 0
+#include "xlockmore.h"
+#include "pow2.h"
+
+#ifdef USE_GL /* whole file */
+
+#define N_SHAPES 7
+
+ENTRYPOINT ModeSpecOpt noof_opts = {0, NULL, 0, NULL, NULL};
+
+typedef struct {
+ GLXContext *glx_context;
+
+ float pos[N_SHAPES * 3];
+ float dir[N_SHAPES * 3];
+ float acc[N_SHAPES * 3];
+ float col[N_SHAPES * 3];
+ float hsv[N_SHAPES * 3];
+ float hpr[N_SHAPES * 3];
+ float ang[N_SHAPES];
+ float spn[N_SHAPES];
+ float sca[N_SHAPES];
+ float geep[N_SHAPES];
+ float peep[N_SHAPES];
+ float speedsq[N_SHAPES];
+ int blad[N_SHAPES];
+
+ float ht, wd;
+
+ int tko;
+
+ GLuint screenshot_texture, tex_w, tex_h;
+
+} noof_configuration;
+
+static noof_configuration *bps = NULL;
+
+
+static void
+initshapes(noof_configuration *bp, int i)
+{
+ int k;
+ float f;
+
+ /* random init of pos, dir, color */
+ for (k = i * 3; k <= i * 3 + 2; k++) {
+ f = random() / (double) RAND_MAX;
+ bp->pos[k] = f;
+ f = random() / (double) RAND_MAX;
+ f = (f - 0.5) * 0.05;
+ bp->dir[k] = f;
+ f = random() / (double) RAND_MAX;
+ f = (f - 0.5) * 0.0002;
+ bp->acc[k] = f;
+ f = random() / (double) RAND_MAX;
+ bp->col[k] = f;
+ }
+
+ bp->speedsq[i] = bp->dir[i * 3] * bp->dir[i * 3] + bp->dir[i * 3 + 1] * bp->dir[i * 3 + 1];
+ f = random() / (double) RAND_MAX;
+ bp->blad[i] = 2 + (int) (f * 17.0);
+ f = random() / (double) RAND_MAX;
+ bp->ang[i] = f;
+ f = random() / (double) RAND_MAX;
+ bp->spn[i] = (f - 0.5) * 40.0 / (10 + bp->blad[i]);
+ f = random() / (double) RAND_MAX;
+ bp->sca[i] = (f * 0.1 + 0.08);
+ bp->dir[i * 3] *= bp->sca[i];
+ bp->dir[i * 3 + 1] *= bp->sca[i];
+
+ f = random() / (double) RAND_MAX;
+ bp->hsv[i * 3] = f * 360.0;
+
+ f = random() / (double) RAND_MAX;
+ bp->hsv[i * 3 + 1] = f * 0.6 + 0.4;
+
+ f = random() / (double) RAND_MAX;
+ bp->hsv[i * 3 + 2] = f * 0.7 + 0.3;
+
+ f = random() / (double) RAND_MAX;
+ bp->hpr[i * 3] = f * 0.005 * 360.0;
+ f = random() / (double) RAND_MAX;
+ bp->hpr[i * 3 + 1] = f * 0.03;
+ f = random() / (double) RAND_MAX;
+ bp->hpr[i * 3 + 2] = f * 0.02;
+
+ bp->geep[i] = 0;
+ f = random() / (double) RAND_MAX;
+ bp->peep[i] = 0.01 + f * 0.2;
+}
+
+static const float bladeratio[] =
+{
+ /* nblades = 2..7 */
+ 0.0, 0.0, 3.00000, 1.73205, 1.00000, 0.72654, 0.57735, 0.48157,
+ /* 8..13 */
+ 0.41421, 0.36397, 0.19076, 0.29363, 0.26795, 0.24648,
+ /* 14..19 */
+ 0.22824, 0.21256, 0.19891, 0.18693, 0.17633, 0.16687,
+};
+
+static int
+drawleaf(noof_configuration *bp, int l)
+{
+ int polys = 0;
+ int b, blades;
+ float x, y;
+ float wobble;
+
+ blades = bp->blad[l];
+
+ y = 0.10 * sin(bp->geep[l] * M_PI / 180.0) + 0.099 * sin(bp->geep[l] * 5.12 * M_PI / 180.0);
+ if (y < 0)
+ y = -y;
+ x = 0.15 * cos(bp->geep[l] * M_PI / 180.0) + 0.149 * cos(bp->geep[l] * 5.12 * M_PI / 180.0);
+ if (x < 0.0)
+ x = 0.0 - x;
+ if (y < 0.001 && x > 0.000002 && ((bp->tko & 0x1) == 0)) {
+ initshapes(bp, l); /* let it become reborn as something
+ else */
+ bp->tko++;
+ return polys;
+ } {
+ float w1 = sin(bp->geep[l] * 15.3 * M_PI / 180.0);
+ wobble = 3.0 + 2.00 * sin(bp->geep[l] * 0.4 * M_PI / 180.0) + 3.94261 * w1;
+ }
+
+ /**
+ if(blades == 2) if (y > 3.000*x) y = x*3.000;
+ if(blades == 3) if (y > 1.732*x) y = x*1.732;
+ if(blades == 4) if (y > x) y = x;
+ if(blades == 5) if (y > 0.726*x) y = x*0.726;
+ if(blades == 6) if (y > 0.577*x) y = x*0.577;
+ if(blades == 7) if (y > 0.481*x) y = x*0.481;
+ if(blades == 8) if (y > 0.414*x) y = x*0.414;
+ */
+ if (y > x * bladeratio[blades])
+ y = x * bladeratio[blades];
+
+ for (b = 0; b < blades; b++) {
+ glPushMatrix();
+ glTranslatef(bp->pos[l * 3], bp->pos[l * 3 + 1], bp->pos[l * 3 + 2]);
+ glRotatef(bp->ang[l] + b * (360.0 / blades), 0.0, 0.0, 1.0);
+ glScalef(wobble * bp->sca[l], wobble * bp->sca[l], wobble * bp->sca[l]);
+ /**
+ if(tko & 0x40000) glColor3f(col[l*3], col[l*3+1], col[l*3+2]);
+ else
+ */
+ glColor4ub(0, 0, 0, 0x60);
+
+ /* constrain geep cooridinates here XXX */
+ glEnable(GL_BLEND);
+
+ glBegin(GL_TRIANGLE_STRIP);
+ glVertex2f(x * bp->sca[l], 0.0);
+ glVertex2f(x, y);
+ glVertex2f(x, -y); /* C */
+ glVertex2f(0.3, 0.0); /* D */
+ polys += 2;
+ glEnd();
+
+ /**
+ if(tko++ & 0x40000) glColor3f(0,0,0);
+ else
+ */
+ glColor3f(bp->col[l * 3], bp->col[l * 3 + 1], bp->col[l * 3 + 2]);
+ glBegin(GL_LINE_LOOP);
+ glVertex2f(x * bp->sca[l], 0.0);
+ glVertex2f(x, y);
+ glVertex2f(0.3, 0.0); /* D */
+ glVertex2f(x, -y); /* C */
+ polys += 3;
+ glEnd();
+ glDisable(GL_BLEND);
+
+ glPopMatrix();
+ }
+ return polys;
+}
+
+static void
+motionUpdate(noof_configuration *bp, int t)
+{
+ if (bp->pos[t * 3] < -bp->sca[t] * bp->wd && bp->dir[t * 3] < 0.0) {
+ bp->dir[t * 3] = -bp->dir[t * 3];
+ /**
+ acc[t*3+1] += 0.8*acc[t*3];
+ acc[t*3] = -0.8*acc[t*3];
+ */
+ } else if (bp->pos[t * 3] > (1 + bp->sca[t]) * bp->wd && bp->dir[t * 3] > 0.0) {
+ bp->dir[t * 3] = -bp->dir[t * 3];
+ /**
+ acc[t*3+1] += 0.8*acc[t*3];
+ acc[t*3] = -0.8*acc[t*3];
+ */
+ } else if (bp->pos[t * 3 + 1] < -bp->sca[t] * bp->ht && bp->dir[t * 3 + 1] < 0.0) {
+ bp->dir[t * 3 + 1] = -bp->dir[t * 3 + 1];
+ /**
+ acc[t*3] += 0.8*acc[t*3+1];
+ acc[t*3+1] = -0.8*acc[t*3+1];
+ */
+ } else if (bp->pos[t * 3 + 1] > (1 + bp->sca[t]) * bp->ht && bp->dir[t * 3 + 1] > 0.0) {
+ bp->dir[t * 3 + 1] = -bp->dir[t * 3 + 1];
+ /**
+ acc[t*3] += 0.8*acc[t*3+1];
+ acc[t*3+1] = -0.8*acc[t*3+1];
+ */
+ }
+
+ bp->pos[t * 3] += bp->dir[t * 3];
+ bp->pos[t * 3 + 1] += bp->dir[t * 3 + 1];
+ /**
+ dir[t*3] += acc[t*3];
+ dir[t*3+1] += acc[t*3+1];
+ */
+ bp->ang[t] += bp->spn[t];
+ bp->geep[t] += bp->peep[t];
+ if (bp->geep[t] > 360 * 5.0)
+ bp->geep[t] -= 360 * 5.0;
+ if (bp->ang[t] < 0.0) {
+ bp->ang[t] += 360.0;
+ }
+ if (bp->ang[t] > 360.0) {
+ bp->ang[t] -= 360.0;
+ }
+}
+
+static void
+colorUpdate(noof_configuration *bp, int i)
+{
+ if (bp->hsv[i * 3 + 1] <= 0.5 && bp->hpr[i * 3 + 1] < 0.0)
+ bp->hpr[i * 3 + 1] = -bp->hpr[i * 3 + 1]; /* adjust s */
+ if (bp->hsv[i * 3 + 1] >= 1.0 && bp->hpr[i * 3 + 1] > 0.0)
+ bp->hpr[i * 3 + 1] = -bp->hpr[i * 3 + 1]; /* adjust s */
+ if (bp->hsv[i * 3 + 2] <= 0.4 && bp->hpr[i * 3 + 2] < 0.0)
+ bp->hpr[i * 3 + 2] = -bp->hpr[i * 3 + 2]; /* adjust s */
+ if (bp->hsv[i * 3 + 2] >= 1.0 && bp->hpr[i * 3 + 2] > 0.0)
+ bp->hpr[i * 3 + 2] = -bp->hpr[i * 3 + 2]; /* adjust s */
+
+ bp->hsv[i * 3] += bp->hpr[i * 3];
+ bp->hsv[i * 3 + 1] += bp->hpr[i * 3 + 1];
+ bp->hsv[i * 3 + 2] += bp->hpr[i * 3 + 2];
+
+ /* --- hsv -> rgb --- */
+#define H(hhh) hhh[i*3 ]
+#define S(hhh) hhh[i*3+1]
+#define V(hhh) hhh[i*3+2]
+
+#define R(hhh) hhh[i*3 ]
+#define G(hhh) hhh[i*3+1]
+#define B(hhh) hhh[i*3+2]
+
+ if (V(bp->hsv) < 0.0)
+ V(bp->hsv) = 0.0;
+ if (V(bp->hsv) > 1.0)
+ V(bp->hsv) = 1.0;
+ if (S(bp->hsv) <= 0.0) {
+ R(bp->col) = V(bp->hsv);
+ G(bp->col) = V(bp->hsv);
+ B(bp->col) = V(bp->hsv);
+ } else {
+ float f, h, p, q, t, v;
+ int hi;
+
+ while (H(bp->hsv) < 0.0)
+ H(bp->hsv) += 360.0;
+ while (H(bp->hsv) >= 360.0)
+ H(bp->hsv) -= 360.0;
+
+ if (S(bp->hsv) < 0.0)
+ S(bp->hsv) = 0.0;
+ if (S(bp->hsv) > 1.0)
+ S(bp->hsv) = 1.0;
+
+ h = H(bp->hsv) / 60.0;
+ hi = (int) (h);
+ f = h - hi;
+ v = V(bp->hsv);
+ p = V(bp->hsv) * (1 - S(bp->hsv));
+ q = V(bp->hsv) * (1 - S(bp->hsv) * f);
+ t = V(bp->hsv) * (1 - S(bp->hsv) * (1 - f));
+
+ if (hi <= 0) {
+ R(bp->col) = v;
+ G(bp->col) = t;
+ B(bp->col) = p;
+ } else if (hi == 1) {
+ R(bp->col) = q;
+ G(bp->col) = v;
+ B(bp->col) = p;
+ } else if (hi == 2) {
+ R(bp->col) = p;
+ G(bp->col) = v;
+ B(bp->col) = t;
+ } else if (hi == 3) {
+ R(bp->col) = p;
+ G(bp->col) = q;
+ B(bp->col) = v;
+ } else if (hi == 4) {
+ R(bp->col) = t;
+ G(bp->col) = p;
+ B(bp->col) = v;
+ } else {
+ R(bp->col) = v;
+ G(bp->col) = p;
+ B(bp->col) = q;
+ }
+ }
+}
+
+static void
+gravity(noof_configuration *bp, float fx)
+{
+ int a, b;
+
+ for (a = 0; a < N_SHAPES; a++) {
+ for (b = 0; b < a; b++) {
+ float t, d2;
+
+ t = bp->pos[b * 3] - bp->pos[a * 3];
+ d2 = t * t;
+ t = bp->pos[b * 3 + 1] - bp->pos[a * 3 + 1];
+ d2 += t * t;
+ if (d2 < 0.000001)
+ d2 = 0.00001;
+ if (d2 < 0.1) {
+
+ float v0, v1, z;
+ v0 = bp->pos[b * 3] - bp->pos[a * 3];
+ v1 = bp->pos[b * 3 + 1] - bp->pos[a * 3 + 1];
+
+ z = 0.00000001 * fx / (d2);
+
+ bp->dir[a * 3] += v0 * z * bp->sca[b];
+ bp->dir[b * 3] += -v0 * z * bp->sca[a];
+ bp->dir[a * 3 + 1] += v1 * z * bp->sca[b];
+ bp->dir[b * 3 + 1] += -v1 * z * bp->sca[a];
+
+ }
+ }
+ /** apply brakes
+ if(dir[a*3]*dir[a*3] + dir[a*3+1]*dir[a*3+1]
+ > 0.0001) {
+ dir[a*3] *= 0.9;
+ dir[a*3+1] *= 0.9;
+ }
+ */
+ }
+}
+
+ENTRYPOINT void
+draw_noof (ModeInfo *mi)
+{
+ int i;
+ noof_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (!bp->glx_context)
+ return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* In the olden days, one could just render directly into the front buffer,
+ or fail to clear the back buffer and assume that one's bits were still
+ there. Not so on modern devices, particularly mobile. So to achieve
+ the effect of frame N+1 accumulating atop frame N, we must save and
+ restore a screenshot of frame N.
+ */
+ if (bp->screenshot_texture)
+ {
+ GLfloat tw = MI_WIDTH(mi) / (GLfloat) bp->tex_w;
+ GLfloat th = MI_HEIGHT(mi) / (GLfloat) bp->tex_h;
+ glDisable (GL_BLEND);
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, bp->screenshot_texture);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glBegin (GL_QUADS);
+ glTexCoord2f (0, 0); glVertex3f (0, 0, 0);
+ glTexCoord2f (tw, 0); glVertex3f (bp->wd, 0, 0);
+ glTexCoord2f (tw, th); glVertex3f (bp->wd, bp->ht, 0);
+ glTexCoord2f (0, th); glVertex3f (0, bp->ht, 0);
+ glEnd();
+ glDisable (GL_TEXTURE_2D);
+ glClear (GL_DEPTH_BUFFER_BIT);
+ }
+
+ mi->polygon_count = 0;
+
+ /**
+ if((random() & 0xff) == 0x34){
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
+
+ if((tko & 0x1f) == 0x1f){
+ glEnable(GL_BLEND);
+ glColor4f(0.0, 0.0, 0.0, 0.09);
+ glRectf(0.0, 0.0, wd, ht);
+ glDisable(GL_BLEND);
+#ifdef __sgi
+ sginap(0);
+#endif
+ }
+ */
+
+ gravity(bp, -2.0);
+ for (i = 0; i < N_SHAPES; i++) {
+ motionUpdate(bp, i);
+ colorUpdate(bp, i);
+ mi->polygon_count += drawleaf(bp, i);
+ }
+
+ if (bp->screenshot_texture) /* Store a screenshot into the texture. */
+ {
+ glDisable (GL_BLEND);
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, bp->screenshot_texture);
+ glCopyTexSubImage2D (GL_TEXTURE_2D, 0, 0, 0, 0, 0,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ check_gl_error("screenshot texture");
+ glDisable (GL_TEXTURE_2D);
+ }
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
+}
+
+
+ENTRYPOINT void
+reshape_noof(ModeInfo *mi, int w, int h)
+{
+ noof_configuration *bp = &bps[MI_SCREEN(mi)];
+ char *s;
+ glViewport(0, 0, w, h);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (w <= h) {
+ bp->wd = 1.0;
+ bp->ht = (GLfloat) h / (GLfloat) w;
+ glOrtho(0.0, 1.0,
+ 0.0, 1.0 * (GLfloat) h / (GLfloat) w,
+ -16.0, 4.0);
+ } else {
+ bp->wd = (GLfloat) w / (GLfloat) h;
+ bp->ht = 1.0;
+ glOrtho(0.0, 1.0 * (GLfloat) w / (GLfloat) h,
+ 0.0, 1.0,
+ -16.0, 4.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ if (!bp->screenshot_texture)
+ glGenTextures (1, &bp->screenshot_texture);
+
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, bp->screenshot_texture);
+
+ bp->tex_w = to_pow2 (MI_WIDTH(mi));
+ bp->tex_h = to_pow2 (MI_HEIGHT(mi));
+ s = calloc (4, bp->tex_w * bp->tex_h); /* init with black */
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, bp->tex_w, bp->tex_h, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, s);
+ check_gl_error ("texture generation");
+ free (s);
+ glDisable (GL_TEXTURE_2D);
+ glClear (GL_COLOR_BUFFER_BIT);
+}
+
+ENTRYPOINT void
+init_noof (ModeInfo *mi)
+{
+ int i;
+ noof_configuration *bp;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ glEnable(GL_LINE_SMOOTH);
+ glShadeModel(GL_FLAT);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ for (i = 0; i < N_SHAPES; i++)
+ initshapes(bp, i);
+
+ reshape_noof (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+
+XSCREENSAVER_MODULE ("Noof", noof)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/noof.man b/hacks/glx/noof.man
new file mode 100644
index 0000000..f414571
--- /dev/null
+++ b/hacks/glx/noof.man
@@ -0,0 +1,52 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+noof - draw rotatey patterns
+.SH SYNOPSIS
+.B dangerball
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+Draws some rotatey patterns, using OpenGL.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2004 by Mark Kilgard. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Mark Kilgard <mjk@nvidia.com>
diff --git a/hacks/glx/normals.c b/hacks/glx/normals.c
new file mode 100644
index 0000000..16b9040
--- /dev/null
+++ b/hacks/glx/normals.c
@@ -0,0 +1,52 @@
+/* normals, Copyright (c) 2002-2004 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Compute normal vectors for arbitrary triangles.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "normals.h"
+
+/* Calculate the unit normal at p given two other points p1,p2 on the
+ surface. The normal points in the direction of p1 crossproduct p2
+ */
+XYZ
+calc_normal (XYZ p, XYZ p1, XYZ p2)
+{
+ XYZ n, pa, pb;
+ pa.x = p1.x - p.x;
+ pa.y = p1.y - p.y;
+ pa.z = p1.z - p.z;
+ pb.x = p2.x - p.x;
+ pb.y = p2.y - p.y;
+ pb.z = p2.z - p.z;
+ n.x = pa.y * pb.z - pa.z * pb.y;
+ n.y = pa.z * pb.x - pa.x * pb.z;
+ n.z = pa.x * pb.y - pa.y * pb.x;
+ return (n);
+}
+
+/* Call glNormal3f() with a normal of the indicated triangle.
+ */
+void
+do_normal(GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat x3, GLfloat y3, GLfloat z3)
+{
+ XYZ p1, p2, p3, p;
+ p1.x = x1; p1.y = y1; p1.z = z1;
+ p2.x = x2; p2.y = y2; p2.z = z2;
+ p3.x = x3; p3.y = y3; p3.z = z3;
+ p = calc_normal (p1, p2, p3);
+ glNormal3f (p.x, p.y, p.z);
+}
diff --git a/hacks/glx/normals.h b/hacks/glx/normals.h
new file mode 100644
index 0000000..2200dfe
--- /dev/null
+++ b/hacks/glx/normals.h
@@ -0,0 +1,48 @@
+/* normals, Copyright (c) 2002-2012 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Compute normal vectors for arbitrary triangles.
+ */
+
+#ifndef __NORMALS_H__
+#define __NORMALS_H__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_ANDROID
+# include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+typedef struct {
+ double x,y,z;
+} XYZ;
+
+/* Calculate the unit normal at p given two other points p1,p2 on the
+ surface. The normal points in the direction of p1 crossproduct p2
+ */
+extern XYZ calc_normal (XYZ p, XYZ p1, XYZ p2);
+
+/* Call glNormal3f() with a normal of the indicated triangle.
+ */
+extern void do_normal (GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat x3, GLfloat y3, GLfloat z3);
+
+#endif /* __NORMALS_H__ */
diff --git a/hacks/glx/peepers.c b/hacks/glx/peepers.c
new file mode 100644
index 0000000..02ebab8
--- /dev/null
+++ b/hacks/glx/peepers.c
@@ -0,0 +1,1455 @@
+/* peepers, Copyright (c) 2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Created: 14 Feb 2018, jwz.
+ *
+ * Floating eyeballs!
+ *
+ * Inspired by @PaintYourDragon's Adafruit Snake Eyes Raspberry Pi Bonnet
+ * https://learn.adafruit.com/animated-snake-eyes-bonnet-for-raspberry-pi/
+ * which is excellent.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 0 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_peepers 0
+# define release_peepers 0
+
+#define DEF_SPEED "1.0"
+#define DEF_MODE "random"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+#include "xlockmore.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "ximage-loader.h"
+#include <ctype.h>
+
+#ifndef HAVE_JWXYZ
+# include <X11/Xatom.h>
+#endif
+
+#include "images/gen/sclera_png.h"
+#include "images/gen/iris_png.h"
+
+#ifdef USE_GL /* whole file */
+
+typedef struct { double a, o; } LL; /* latitude + longitude */
+
+typedef struct {
+ int idx;
+ GLfloat x, y, z;
+ GLfloat dx, dy, dz;
+ GLfloat ddx, ddy, ddz;
+ rotator *rot;
+ struct { GLfloat from, to, current, tick; } dilation;
+ enum { ROTATE, SPIN, TRACK } focus;
+ XYZ track;
+ GLfloat tilt, roll;
+ GLfloat scale;
+ GLfloat color[4];
+ int jaundice;
+} floater;
+
+typedef enum { RETINA, IRIS, SCLERA, LENS, TICK } component;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+
+ Bool button_down_p;
+ XYZ mouse, last_mouse, fake_mouse;
+ time_t last_mouse_time;
+ int mouse_dx, mouse_dy;
+
+ GLuint retina_list, sclera_list, lens_list, iris_list;
+ GLuint sclera_texture, iris_texture;
+ int eye_polys;
+
+ int nfloaters;
+ floater *floaters;
+ enum { BOUNCE, SCROLL_LEFT, SCROLL_RIGHT, XEYES, BEHOLDER } mode;
+
+} peepers_configuration;
+
+static peepers_configuration *bps = NULL;
+
+static GLfloat speed;
+const char *mode_opt;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&mode_opt, "mode", "Mode", DEF_MODE, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt peepers_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Bottom edge of screen is -0.5; left and right scale by aspect. */
+#define BOTTOM (-1.6)
+#define LEFT (BOTTOM * MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi))
+
+static void
+reset_floater (ModeInfo *mi, floater *f)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat r = ((bp->mode == BOUNCE ? LEFT : BOTTOM) *
+ (bp->nfloaters < 10 ? 0.3: 0.6));
+ GLfloat x, y;
+
+ if (bp->nfloaters <= 2)
+ {
+ x = frand(LEFT) * RANDSIGN() * 0.3;
+ y = 0;
+ }
+ else
+ {
+ /* Position them off screen in a circle */
+ GLfloat th = f->idx * (M_PI + (M_PI/6)) * 2 / bp->nfloaters;
+ x = r * cos (th);
+ y = r * sin (th) * 1.5; /* Oval */
+ }
+
+ switch (bp->mode) {
+ case BOUNCE:
+ f->x = x;
+ f->y = BOTTOM;
+ f->z = y;
+
+ /* Yes, I know I'm varying the force of gravity instead of varying the
+ launch velocity. That's intentional: empirical studies indicate
+ that it's way, way funnier that way. */
+
+ f->dy = 0.1;
+ f->dx = 0;
+ f->dz = 0;
+
+ {
+ GLfloat min = -0.004;
+ GLfloat max = -0.0019;
+ f->ddy = min + frand (max - min);
+ f->ddx = 0;
+ f->ddz = 0;
+ }
+
+ if (! (random() % (10 * bp->nfloaters)))
+ {
+ f->dx = BELLRAND(0.03) * RANDSIGN();
+ f->dz = BELLRAND(0.03) * RANDSIGN();
+ }
+ break;
+
+ case SCROLL_LEFT:
+ case SCROLL_RIGHT:
+
+ f->x = (bp->mode == SCROLL_LEFT ? -LEFT : LEFT);
+ f->y = x;
+ f->z = y;
+
+ f->dx = (1.0 + frand(2.0)) * 0.020 * (bp->mode == SCROLL_LEFT ? -1 : 1);
+ f->dy = (1.0 + frand(2.0)) * 0.002 * RANDSIGN();
+ f->dz = (1.0 + frand(2.0)) * 0.002 * RANDSIGN();
+ f->ddy = 0;
+ f->ddz = 0;
+ break;
+
+ case XEYES: /* This happens in layout_grid() */
+ break;
+ case BEHOLDER: /* This happens in layout_geodesic() */
+ break;
+
+ default:
+ abort();
+ }
+
+ f->focus = ((random() % 8) ? ROTATE :
+ (random() % 4) ? TRACK : SPIN);
+ f->track.x = 8 - frand(16);
+ f->track.y = 8 - frand(16);
+ f->track.z = 8 + frand(16);
+
+ f->tilt = 45 - BELLRAND(90);
+ f->roll = frand(180);
+ f->dilation.to = f->dilation.from = f->dilation.current = frand(1.0);
+ f->dilation.tick = 1;
+
+ f->scale = 0.8 + BELLRAND(0.2);
+
+ if (bp->nfloaters == 1) f->scale *= 0.5;
+ else if (bp->nfloaters <= 3) f->scale *= 0.4;
+ else if (bp->nfloaters <= 9) f->scale *= 0.3;
+ else if (bp->nfloaters <= 15) f->scale *= 0.2;
+ else if (bp->nfloaters <= 25) f->scale *= 0.15;
+ else if (bp->nfloaters <= 90) f->scale *= 0.12;
+ else f->scale *= 0.07;
+
+ if (MI_WIDTH(mi) < MI_HEIGHT(mi))
+ {
+ f->scale /= MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi) * 1.2;
+ }
+
+ {
+ static const struct { GLfloat pct; unsigned long c; } c[] = {
+ /* All of the articles that I found with percentages in them only
+ added up to around 70%, so who knows what that means. */
+# if 0
+ { 55, 0x985A07 }, /* brown -- supposedly real global percentage */
+# else
+ { 20, 0x985A07 }, /* brown -- but that's a lot of brown... */
+# endif
+ { 8, 0xD5AD68 }, /* hazel */
+ { 8, 0x777F92 }, /* blue */
+ { 2, 0x6B7249 }, /* green */
+ { 1, 0x7F7775 }, /* gray */
+ { 0.5, 0x9E8042 }, /* amber */
+ { 0.1, 0xFFAA88 }, /* red */
+ };
+ GLfloat p = 0, t = 0;
+ GLfloat s = 1 - frand(0.3);
+ int i;
+ for (i = 0; i < countof(c); i++)
+ p += c[i].pct;
+ p = frand(p);
+
+ for (i = 0; i < countof(c); i++)
+ {
+ if (t > p) break;
+ t += c[i].pct;
+ }
+
+ if (c[i].c == 0xFFAA88) f->jaundice = 2;
+ else if (!(random() % 20)) f->jaundice = 1;
+
+ f->color[0] = ((c[i].c >> 16) & 0xFF) / 255.0 * s;
+ f->color[1] = ((c[i].c >> 8) & 0xFF) / 255.0 * s;
+ f->color[2] = ((c[i].c >> 0) & 0xFF) / 255.0 * s;
+ f->color[3] = 1;
+ }
+}
+
+
+/* Place a grid of eyeballs on the screen, maximizing use of space.
+ */
+static void
+layout_grid (ModeInfo *mi)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ /* Distribute the eyes into a rectangular grid that fills the window.
+ There may be some empty cells. N items in a W x H rectangle:
+ N = W * H
+ N = W * W * R
+ N/R = W*W
+ W = sqrt(N/R)
+ */
+ GLfloat aspect = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi);
+ int nlines = sqrt (bp->nfloaters / aspect) + 0.5;
+ int *cols = (int *) calloc (nlines, sizeof(*cols));
+ int i, x, y, max = 0;
+ GLfloat scale, spacing;
+
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ cols[i % nlines]++;
+ if (cols[i % nlines] > max) max = cols[i % nlines];
+ }
+
+ /* That gave us, e.g. 7777666. Redistribute to 6767767. */
+ for (i = 0; i < nlines / 2; i += 2)
+ {
+ int j = nlines-i-1;
+ int swap = cols[i];
+ cols[i] = cols[j];
+ cols[j] = swap;
+ }
+
+ scale = 1.0 / nlines; /* Scale for height */
+ if (scale * max > aspect) /* Shrink if overshot width */
+ scale *= aspect / (scale * max);
+
+ scale *= 0.9; /* Add padding */
+ spacing = scale * 2.2;
+
+ if (bp->nfloaters == 1) spacing = 0;
+
+ i = 0;
+ for (y = 0; y < nlines; y++)
+ for (x = 0; x < cols[y]; x++)
+ {
+ floater *f = &bp->floaters[i];
+ f->scale = scale;
+ f->x = spacing * (x - cols[y] / 2.0) + spacing/2;
+ f->y = spacing * (y - nlines / 2.0) + spacing/2;
+ f->z = 0;
+ i++;
+ }
+ free (cols);
+}
+
+
+/* Computes the midpoint of a line between two polar coords.
+ */
+static void
+midpoint2 (LL v1, LL v2, LL *vm_ret,
+ XYZ *p1_ret, XYZ *p2_ret, XYZ *pm_ret)
+{
+ XYZ p1, p2, pm;
+ LL vm;
+ GLfloat hyp;
+
+ p1.x = cos (v1.a) * cos (v1.o);
+ p1.y = cos (v1.a) * sin (v1.o);
+ p1.z = sin (v1.a);
+
+ p2.x = cos (v2.a) * cos (v2.o);
+ p2.y = cos (v2.a) * sin (v2.o);
+ p2.z = sin (v2.a);
+
+ pm.x = (p1.x + p2.x) / 2;
+ pm.y = (p1.y + p2.y) / 2;
+ pm.z = (p1.z + p2.z) / 2;
+
+ vm.o = atan2 (pm.y, pm.x);
+ hyp = sqrt (pm.x * pm.x + pm.y * pm.y);
+ vm.a = atan2 (pm.z, hyp);
+
+ *p1_ret = p1;
+ *p2_ret = p2;
+ *pm_ret = pm;
+ *vm_ret = vm;
+}
+
+
+/* Computes the midpoint of a triangle specified in polar coords.
+ */
+static void
+midpoint3 (LL v1, LL v2, LL v3, LL *vm_ret,
+ XYZ *p1_ret, XYZ *p2_ret, XYZ *p3_ret, XYZ *pm_ret)
+{
+ XYZ p1, p2, p3, pm;
+ LL vm;
+ GLfloat hyp;
+
+ p1.x = cos (v1.a) * cos (v1.o);
+ p1.y = cos (v1.a) * sin (v1.o);
+ p1.z = sin (v1.a);
+
+ p2.x = cos (v2.a) * cos (v2.o);
+ p2.y = cos (v2.a) * sin (v2.o);
+ p2.z = sin (v2.a);
+
+ p3.x = cos (v3.a) * cos (v3.o);
+ p3.y = cos (v3.a) * sin (v3.o);
+ p3.z = sin (v3.a);
+
+ pm.x = (p1.x + p2.x + p3.x) / 3;
+ pm.y = (p1.y + p2.y + p3.y) / 3;
+ pm.z = (p1.z + p2.z + p3.z) / 3;
+
+ vm.o = atan2 (pm.y, pm.x);
+ hyp = sqrt (pm.x * pm.x + pm.y * pm.y);
+ vm.a = atan2 (pm.z, hyp);
+
+ *p1_ret = p1;
+ *p2_ret = p2;
+ *p3_ret = p3;
+ *pm_ret = pm;
+ *vm_ret = vm;
+}
+
+
+/* Place the eyeballs on a sphere (geodesic)
+ */
+static void
+layout_geodesic_triangle (ModeInfo *mi, LL v1, LL v2, LL v3, int depth,
+ int *i)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (depth <= 0)
+ {
+ floater *f = &bp->floaters[*i];
+ GLfloat s2 = 0.7;
+ LL vc;
+ XYZ p1, p2, p3, pc;
+ if (*i >= bp->nfloaters) abort();
+
+ midpoint3 (v1, v2, v3, &vc, &p1, &p2, &p3, &pc);
+
+ switch (bp->nfloaters) { /* This is lame. */
+ case 20: f->scale = 0.26; break;
+ case 80: f->scale = 0.13; break;
+ case 320: f->scale = 0.065; break;
+ case 1280: f->scale = 0.0325; break;
+ default: abort();
+ }
+
+ f->z = s2 * cos (vc.a) * cos (vc.o);
+ f->x = s2 * cos (vc.a) * sin (vc.o);
+ f->y = s2 * sin (vc.a);
+ (*i)++;
+ }
+ else
+ {
+ LL v12, v23, v13;
+ XYZ p1, p2, p3, p12, p23, p13;
+
+ midpoint2 (v1, v2, &v12, &p1, &p2, &p12);
+ midpoint2 (v2, v3, &v23, &p2, &p3, &p23);
+ midpoint2 (v1, v3, &v13, &p1, &p3, &p13);
+ depth--;
+
+ layout_geodesic_triangle (mi, v1, v12, v13, depth, i);
+ layout_geodesic_triangle (mi, v12, v2, v23, depth, i);
+ layout_geodesic_triangle (mi, v13, v23, v3, depth, i);
+ layout_geodesic_triangle (mi, v12, v23, v13, depth, i);
+ }
+}
+
+
+/* Creates triangles of a geodesic to the given depth (frequency).
+ */
+static void
+layout_geodesic (ModeInfo *mi)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ int depth;
+ GLfloat th0 = atan (0.5); /* lat division: 26.57 deg */
+ GLfloat s = M_PI / 5; /* lon division: 72 deg */
+ int i;
+ int ii = 0;
+
+ switch (bp->nfloaters) { /* This is lame. */
+ case 20: depth = 0; break;
+ case 80: depth = 1; break;
+ case 320: depth = 2; break;
+ case 1280: depth = 3; break;
+ default: abort();
+ }
+
+ for (i = 0; i < 10; i++)
+ {
+ GLfloat th1 = s * i;
+ GLfloat th2 = s * (i+1);
+ GLfloat th3 = s * (i+2);
+ LL v1, v2, v3, vc;
+ v1.a = th0; v1.o = th1;
+ v2.a = th0; v2.o = th3;
+ v3.a = -th0; v3.o = th2;
+ vc.a = M_PI/2; vc.o = th2;
+
+ if (i & 1) /* north */
+ {
+ layout_geodesic_triangle (mi, v1, v2, vc, depth, &ii);
+ layout_geodesic_triangle (mi, v2, v1, v3, depth, &ii);
+ }
+ else /* south */
+ {
+ v1.a = -v1.a;
+ v2.a = -v2.a;
+ v3.a = -v3.a;
+ vc.a = -vc.a;
+ layout_geodesic_triangle (mi, v2, v1, vc, depth, &ii);
+ layout_geodesic_triangle (mi, v1, v2, v3, depth, &ii);
+ }
+ }
+
+ bp->floaters[0].dx = BELLRAND(0.01) * RANDSIGN();
+}
+
+
+/* Advance the animation by one step.
+ */
+static void
+tick_floater (ModeInfo *mi, floater *f)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ /* if (bp->button_down_p) return;*/
+
+ f->dx += f->ddx * speed * 0.5;
+ f->dy += f->ddy * speed * 0.5;
+ f->dz += f->ddz * speed * 0.5;
+
+ if (bp->mode != BEHOLDER)
+ {
+ f->x += f->dx * speed * 0.5;
+ f->y += f->dy * speed * 0.5;
+ f->z += f->dz * speed * 0.5;
+ }
+
+ f->dilation.tick += 0.1 * speed;
+ if (f->dilation.tick > 1) f->dilation.tick = 1;
+ if (f->dilation.tick < 0) f->dilation.tick = 0;
+
+ f->dilation.current = (f->dilation.from +
+ ((f->dilation.to - f->dilation.from) *
+ f->dilation.tick));
+
+ if (f->dilation.tick == 1 && !(random() % 20))
+ {
+ f->dilation.from = f->dilation.to;
+ f->dilation.to = frand(1.0);
+ f->dilation.tick = 0;
+ }
+
+ switch (bp->mode) {
+ case BOUNCE:
+ if (f->y < BOTTOM ||
+ f->x < LEFT || f->x > -LEFT)
+ reset_floater (mi, f);
+ break;
+ case SCROLL_LEFT:
+ if (f->x < LEFT)
+ reset_floater (mi, f);
+ break;
+ case SCROLL_RIGHT:
+ if (f->x > -LEFT)
+ reset_floater (mi, f);
+ break;
+ case XEYES:
+ break;
+ case BEHOLDER:
+ {
+ GLfloat x = f->x;
+ GLfloat y = f->z;
+ GLfloat th = atan2 (y, x);
+ GLfloat r = sqrt(x*x + y*y);
+ th += bp->floaters[0].dx;
+ f->x = r*cos(th);
+ f->z = r*sin(th);
+
+ if (! (random() % 100))
+ bp->floaters[0].dx += frand(0.0001) * RANDSIGN();
+ }
+ break;
+ default:
+ abort();
+ }
+}
+
+
+/* Make sure none of the eyeballs overlap.
+ */
+static void
+de_collide (ModeInfo *mi)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i, j;
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f0 = &bp->floaters[i];
+ for (j = i+1; j < bp->nfloaters; j++)
+ {
+ floater *f1 = &bp->floaters[j];
+ GLfloat X = f1->x - f0->x;
+ GLfloat Y = f1->y - f0->y;
+ GLfloat Z = f1->z - f0->z;
+ GLfloat min = (f0->scale + f1->scale);
+ GLfloat d2 = X*X + Y*Y + Z*Z;
+ if (d2 < min*min)
+ {
+ GLfloat d = sqrt (d2);
+ GLfloat dd = 0.5 * (min - d) / 2;
+ GLfloat dx = X * dd;
+ GLfloat dy = Y * dd;
+ GLfloat dz = Z * dd;
+ f0->x -= dx; f0->y -= dy; f0->z -= dz;
+ f1->x += dx; f1->y += dy; f1->z += dz;
+ }
+ }
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_peepers (ModeInfo *mi, int width, int height)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ if (bp->mode == XEYES)
+ layout_grid (mi);
+}
+
+
+/* Find the mouse pointer on the screen and note its position in the scene.
+ */
+static void
+track_mouse (ModeInfo *mi)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ Window r, c;
+ int x, y, rx, ry;
+ unsigned int m;
+ int w = MI_WIDTH(mi);
+ int h = MI_HEIGHT(mi);
+ int rot = (int) current_device_rotation();
+ int swap;
+ GLfloat ys = 2.0;
+ GLfloat xs = ys * w / h;
+ time_t now = time ((time_t *) 0);
+
+ XQueryPointer (MI_DISPLAY (mi), MI_WINDOW (mi),
+ &r, &c, &rx, &ry, &x, &y, &m);
+
+ if (x != bp->last_mouse.x && y != bp->last_mouse.y)
+ {
+ bp->last_mouse_time = now;
+ bp->fake_mouse.x = x;
+ bp->fake_mouse.y = y;
+ bp->mouse_dx = 0;
+ bp->mouse_dy = 0;
+ bp->last_mouse.x = x;
+ bp->last_mouse.y = y;
+ }
+ else if (now > bp->last_mouse_time + 10)
+ {
+ /* Mouse isn't moving. Bored now. */
+ if (! (random() % 20)) bp->mouse_dx += (random() % 2) * RANDSIGN();
+ if (! (random() % 20)) bp->mouse_dy += (random() % 2) * RANDSIGN();
+ bp->fake_mouse.x += bp->mouse_dx;
+ bp->fake_mouse.y += bp->mouse_dy;
+ x = bp->fake_mouse.x;
+ y = bp->fake_mouse.y;
+ }
+
+ while (rot <= -180) rot += 360;
+ while (rot > 180) rot -= 360;
+
+ if (rot > 135 || rot < -135) /* 180 */
+ {
+ x = w - x;
+ y = h - y;
+ }
+ else if (rot > 45) /* 90 */
+ {
+ swap = x; x = y; y = swap;
+ swap = w; w = h; h = swap;
+ xs = ys;
+ ys = xs * w / h;
+ x = w - x;
+ }
+ else if (rot < -45) /* 270 */
+ {
+ swap = x; x = y; y = swap;
+ swap = w; w = h; h = swap;
+ xs = ys;
+ ys = xs * w / h;
+ y = h - y;
+ }
+
+ /* Put the mouse directly on the glass. */
+ x = x - w / 2;
+ y = h / 2 - y;
+ bp->mouse.x = xs * x / w;
+ bp->mouse.y = ys * y / h;
+ bp->mouse.z = 0;
+
+# if 0
+ glPushMatrix();
+ glTranslatef (bp->mouse.x, bp->mouse.y, bp->mouse.z);
+ if (!MI_IS_WIREFRAME(mi)) glDisable(GL_LIGHTING);
+ glColor3f(1,1,1);
+ glBegin(GL_LINES);
+ glVertex3f(-1,0,0); glVertex3f(1,0,0);
+ glVertex3f(0,-1,0); glVertex3f(0,1,0);
+ glVertex3f(0,0,-1); glVertex3f(0,0,1);
+ glEnd();
+ glPopMatrix();
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+# endif
+
+ /* Move it farther into the scene: on the glass is too far away.
+ But keep it farther away the farther outside the window the
+ mouse is, so the eyes don''t turn 90 degrees sideways.
+ */
+ bp->mouse.x *= 0.8;
+ bp->mouse.y *= 0.8;
+ bp->mouse.z += 0.7;
+
+ bp->mouse.z = MAX (0.7,
+ sqrt (bp->mouse.x * bp->mouse.x +
+ bp->mouse.y * bp->mouse.y));
+
+ if (bp->mode == BEHOLDER)
+ bp->mouse.z += 0.25;
+
+
+# if 0
+ glPushMatrix();
+ glTranslatef (bp->mouse.x, bp->mouse.y, bp->mouse.z);
+ if (!MI_IS_WIREFRAME(mi)) glDisable(GL_LIGHTING);
+ glColor3f(1,0,1);
+ glBegin(GL_LINES);
+ glVertex3f(-1,0,0); glVertex3f(1,0,0);
+ glVertex3f(0,-1,0); glVertex3f(0,1,0);
+ glVertex3f(0,0,-1); glVertex3f(0,0,1);
+ glEnd();
+ glPopMatrix();
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+# endif
+}
+
+
+ENTRYPOINT Bool
+peepers_handle_event (ModeInfo *mi, XEvent *event)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ {
+ if (bp->button_down_p) /* Aim each eyeball at the mouse. */
+ {
+ int i;
+ track_mouse (mi);
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ f->track = bp->mouse;
+ f->focus = TRACK;
+ }
+ }
+
+ return True;
+ }
+
+ return False;
+}
+
+
+/* Generate the polygons for the display lists.
+ This routine generates the various styles of sphere-oid we use.
+ */
+static int
+draw_ball (ModeInfo *mi, component which)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+
+ GLfloat iris_ratio = 0.42; /* Size of the iris. */
+ /* The lens bulges out, but the iris bulges in, sorta. */
+ GLfloat lens_bulge = (which == IRIS ? -0.50 : 0.32);
+
+ GLfloat xstep = 32; /* Facets on the sphere */
+ GLfloat ystep = 32;
+ XYZ *stacks, *normals;
+ GLfloat x, y, z;
+ int i, j;
+ int xstart, xstop;
+
+ if (bp->nfloaters > 16 || wire)
+ xstep = ystep = 16;
+
+ if (bp->nfloaters > 96 && which == LENS)
+ return 0;
+
+ switch (which) {
+ case LENS: xstart = 0; xstop = xstep; break;
+ case SCLERA: xstart = 0; xstop = xstep * (1 - iris_ratio/2); break;
+ case IRIS: xstart = xstep * (1 - iris_ratio/2 * 1.2); xstop = xstep; break;
+ case RETINA: xstart = xstep * (1 - iris_ratio/2 * 1.2); xstop = 0; break;
+ default: abort(); break;
+ }
+
+ stacks = (XYZ *) calloc (sizeof(*stacks), xstep + 1);
+ normals = (XYZ *) calloc (sizeof(*stacks), xstep + 1);
+
+ if (which == RETINA)
+ {
+ GLfloat c1[4] = { 0, 0, 0, 1 };
+ GLfloat c2[4] = { 0.15, 0, 0, 1 };
+ GLfloat th = M_PI * (1.0 - iris_ratio/2);
+ GLfloat z1 = cos(th);
+ GLfloat z2 = 0.9;
+ GLfloat r1 = sin(th);
+ GLfloat r2 = r1 * 0.3;
+
+ if (!wire)
+ {
+ glColor4fv (c1);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c1);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, c1);
+ }
+
+ /* Draw a black cone to occlude the interior of the eye. */
+
+ glBegin (wire ? GL_LINES : GL_QUAD_STRIP);
+ for (i = 0; i <= xstep; i++)
+ {
+ GLfloat th2 = i * M_PI * 2 / xstep;
+ GLfloat x = cos(th2);
+ GLfloat y = sin(th2);
+ glNormal3f (0, 0, 1);
+ glVertex3f (z1, r1 * x, r1 * y);
+ glNormal3f (0, 0, 1);
+ glVertex3f (z2, r2 * x, r2 * y);
+ polys++;
+ }
+ glEnd();
+
+ if (!wire)
+ {
+ glColor4fv (c2);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c2);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, c2);
+ }
+
+ /* Draw a small red circle at the base of the cone. */
+
+ glBegin (wire ? GL_LINES : GL_TRIANGLE_FAN);
+ glVertex3f (z2, 0, 0);
+ glNormal3f (0, 0, 1);
+ for (i = xstep; i >= 0; i--)
+ {
+ GLfloat th2 = i * M_PI * 2 / xstep;
+ GLfloat x = cos(th2);
+ GLfloat y = sin(th2);
+ glVertex3f (z2, r2 * x, r2 * y);
+ polys++;
+ }
+ glEnd();
+ return polys;
+ }
+
+ for (i = xstart; i <= xstop; i++)
+ {
+ GLfloat th = i * M_PI / xstep;
+ GLfloat x = cos(th);
+ GLfloat y = sin(th);
+
+ /* Bulge the lens, or dimple the iris. */
+ if (th > M_PI * (1.0 - iris_ratio/2) &&
+ th < M_PI * (1.0 + iris_ratio/2))
+ {
+ GLfloat r = (1 - th / M_PI) / iris_ratio * 2;
+ r = cos (M_PI * r / 2);
+ r *= lens_bulge;
+ r = r * r * (lens_bulge < 0 ? -1 : 1);
+ x *= 1+r;
+ y *= 1+r;
+ }
+
+ stacks[i].x = x;
+ stacks[i].y = y;
+ stacks[i].z = 0;
+ }
+
+ /* Fill normals with the normal at the center of each face. */
+ for (i = xstart; i < xstop; i++)
+ {
+ GLfloat dx = stacks[i+1].x - stacks[i].x;
+ GLfloat dy = stacks[i+1].y - stacks[i].y;
+ y = dy/dx;
+ z = sqrt (1 + y*y);
+ normals[i].x = -y/z;
+ normals[i].y = 1/z;
+ normals[i].z = 0;
+
+ if (lens_bulge < 0 && i > xstep * (1 - iris_ratio/2) + 1)
+ {
+ normals[i].x *= -1;
+ normals[i].y *= -1;
+ }
+ }
+
+ if (!wire)
+ glBegin (GL_QUADS);
+
+ for (i = xstart; i < xstop; i++)
+ {
+ GLfloat x0 = stacks[i].x;
+ GLfloat x1 = stacks[i+1].x;
+ GLfloat r0 = stacks[i].y;
+ GLfloat r1 = stacks[i+1].y;
+
+ for (j = 0; j < ystep*2; j++)
+ {
+ GLfloat tha = j * M_PI / ystep;
+ GLfloat thb = (j+1) * M_PI / ystep;
+ GLfloat xa = cos (tha);
+ GLfloat ya = sin (tha);
+ GLfloat xb = cos (thb);
+ GLfloat yb = sin (thb);
+
+ /* Each vertex normal is average of adjacent face normals. */
+
+ XYZ p1, p2, p3, p4;
+ XYZ n1, n2, n3, n4;
+ p1.x = x0; p1.y = r0 * ya; p1.z = r0 * xa;
+ p2.x = x1; p2.y = r1 * ya; p2.z = r1 * xa;
+ p3.x = x1; p3.y = r1 * yb; p3.z = r1 * xb;
+ p4.x = x0; p4.y = r0 * yb; p4.z = r0 * xb;
+
+ if (i == 0)
+ {
+ n1.x = 1; n1.y = 0; n1.z = 0;
+ n4.x = 1; n4.y = 0; n4.z = 0;
+ }
+ else
+ {
+ x = (normals[i-1].x + normals[i].x) / 2;
+ y = (normals[i-1].y + normals[i].y) / 2;
+ n1.x = x; n1.z = y * xa; n1.y = y * ya;
+ n4.x = x; n4.z = y * xb; n4.y = y * yb;
+ }
+
+ if (i == xstep-1)
+ {
+ n2.x = -1; n2.y = 0; n2.z = 0;
+ n3.x = -1; n3.y = 0; n3.z = 0;
+ }
+ else
+ {
+ x = (normals[i+1].x + normals[i].x) / 2;
+ y = (normals[i+1].y + normals[i].y) / 2;
+ n2.x = x; n2.z = y * xa; n2.y = y * ya;
+ n3.x = x; n3.z = y * xb; n3.y = y * yb;
+ }
+
+#if 0
+ /* Render normals as lines for debugging */
+ glBegin(GL_LINES);
+ glVertex3f(p1.x, p1.y, p1.z);
+ glVertex3f(p1.x + n1.x * 0.3, p1.y + n1.y * 0.3, p1.z + n1.z * 0.3);
+ glEnd();
+
+ glBegin(GL_LINES);
+ glVertex3f(p2.x, p2.y, p2.z);
+ glVertex3f(p2.x + n2.x * 0.3, p2.y + n2.y * 0.3, p2.z + n2.z * 0.3);
+ glEnd();
+
+ glBegin(GL_LINES);
+ glVertex3f(p3.x, p3.y, p3.z);
+ glVertex3f(p3.x + n3.x * 0.3, p3.y + n3.y * 0.3, p3.z + n3.z * 0.3);
+ glEnd();
+
+ glBegin(GL_LINES);
+ glVertex3f(p4.x, p4.y, p4.z);
+ glVertex3f(p4.x + n4.x * 0.3, p4.y + n4.y * 0.3, p4.z + n4.z * 0.3);
+ glEnd();
+#endif
+
+ if (wire)
+ glBegin (GL_LINE_LOOP);
+
+ glTexCoord2f ((j+1) / (GLfloat) ystep / 2,
+ (i - xstart) / (GLfloat) (xstop - xstart));
+
+ glNormal3f (n4.x, n4.y, n4.z);
+ glVertex3f (p4.x, p4.y, p4.z);
+
+ glTexCoord2f ((j+1) / (GLfloat) ystep / 2,
+ ((i+1) - xstart) / (GLfloat) (xstop - xstart));
+
+ glNormal3f (n3.x, n3.y, n3.z);
+ glVertex3f (p3.x, p3.y, p3.z);
+
+ glTexCoord2f (j / (GLfloat) ystep / 2,
+ ((i+1) - xstart) / (GLfloat) (xstop - xstart));
+
+ glNormal3f (n2.x, n2.y, n2.z);
+ glVertex3f (p2.x, p2.y, p2.z);
+
+ glTexCoord2f (j / (GLfloat) ystep / 2,
+ (i - xstart) / (GLfloat) (xstop - xstart));
+
+ glNormal3f (n1.x, n1.y, n1.z);
+ glVertex3f (p1.x, p1.y, p1.z);
+
+ polys++;
+
+ if (wire)
+ glEnd();
+ }
+ }
+
+ if (!wire)
+ glEnd();
+
+ free (stacks);
+ free (normals);
+
+ return polys;
+}
+
+
+ENTRYPOINT void
+init_peepers (ModeInfo *mi)
+{
+ peepers_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_peepers (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+
+ if (!wire)
+ {
+ XImage *xi;
+ GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
+ GLfloat amb[4] = {0.1, 0.1, 0.1, 1.0};
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+
+ glEnable (GL_LIGHTING);
+ glEnable (GL_LIGHT0);
+ glEnable (GL_DEPTH_TEST);
+ glEnable (GL_CULL_FACE);
+ glEnable (GL_BLEND);
+
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+
+ xi = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ sclera_png, sizeof(sclera_png));
+ glGenTextures (1, &bp->sclera_texture);
+ glBindTexture (GL_TEXTURE_2D, bp->sclera_texture);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ xi->width, xi->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, xi->data);
+ check_gl_error("texture");
+ XDestroyImage (xi);
+
+ xi = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ iris_png, sizeof(iris_png));
+
+ glGenTextures (1, &bp->iris_texture);
+ glBindTexture (GL_TEXTURE_2D, bp->iris_texture);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ xi->width, xi->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, xi->data);
+ check_gl_error("texture");
+ XDestroyImage (xi);
+
+
+ }
+
+ bp->lens_list = glGenLists (1);
+ glNewList (bp->lens_list, GL_COMPILE);
+ bp->eye_polys += draw_ball (mi, LENS);
+ glEndList ();
+
+ bp->sclera_list = glGenLists (1);
+ glNewList (bp->sclera_list, GL_COMPILE);
+ bp->eye_polys += draw_ball (mi, SCLERA);
+ glEndList ();
+
+ bp->iris_list = glGenLists (1);
+ glNewList (bp->iris_list, GL_COMPILE);
+ bp->eye_polys += draw_ball (mi, IRIS);
+ glEndList ();
+
+ bp->retina_list = glGenLists (1);
+ glNewList (bp->retina_list, GL_COMPILE);
+ bp->eye_polys += draw_ball (mi, RETINA);
+ glEndList ();
+
+ bp->trackball = gltrackball_init (False);
+
+ if (!mode_opt || !*mode_opt || !strcasecmp (mode_opt, "random"))
+ bp->mode = ((random() & 1) ? BOUNCE :
+ ((random() & 1) ? SCROLL_LEFT : SCROLL_RIGHT));
+ else if (!strcasecmp (mode_opt, "bounce"))
+ bp->mode = BOUNCE;
+ else if (!strcasecmp (mode_opt, "scroll"))
+ bp->mode = (random() & 1) ? SCROLL_LEFT : SCROLL_RIGHT;
+ else if (!strcasecmp (mode_opt, "xeyes"))
+ bp->mode = XEYES;
+ else if (!strcasecmp (mode_opt, "beholder") ||
+ !strcasecmp (mode_opt, "ball"))
+ bp->mode = BEHOLDER;
+ else
+ {
+ fprintf (stderr,
+ "%s: mode must be bounce, scroll, random, xeyes or beholder,"
+ " not \"%s\"\n",
+ progname, mode_opt);
+ exit (1);
+ }
+
+ bp->nfloaters = MI_COUNT (mi);
+
+ if (bp->nfloaters <= 0)
+ {
+ if (bp->mode == XEYES)
+ bp->nfloaters = 2 + (random() % 30);
+ else if (bp->mode == BEHOLDER)
+ bp->nfloaters = 20 * pow (4, (random() % 4));
+ else
+ bp->nfloaters = 2 + (random() % 6);
+ }
+
+ if (bp->mode == BEHOLDER)
+ {
+ if (bp->nfloaters <= 20) bp->nfloaters = 20; /* This is lame */
+ else if (bp->nfloaters <= 80) bp->nfloaters = 80;
+ else if (bp->nfloaters <= 320) bp->nfloaters = 320;
+ else bp->nfloaters = 1280;
+ }
+
+ bp->floaters = (floater *) calloc (bp->nfloaters, sizeof (floater));
+
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ f->idx = i;
+ f->rot = make_rotator (10.0, 0, 0,
+ 4, 0.05 * speed,
+ True);
+ if (bp->nfloaters == 2)
+ {
+ f->x = 10 * (i ? 1 : -1);
+ }
+ else if (i != 0)
+ {
+ double th = (i - 1) * M_PI*2 / (bp->nfloaters-1);
+ double r = LEFT * 0.3;
+ f->x = r * cos(th);
+ f->z = r * sin(th);
+ }
+
+ if (bp->mode == SCROLL_LEFT || bp->mode == SCROLL_RIGHT)
+ {
+ f->y = f->x;
+ f->x = 0;
+ }
+
+ reset_floater (mi, f);
+ }
+
+ if (bp->mode == XEYES)
+ layout_grid (mi);
+ else if (bp->mode == BEHOLDER)
+ layout_geodesic (mi);
+
+# ifndef HAVE_JWXYZ /* Real X11 */
+# if 0 /* I wonder if this works? */
+ if (bp->mode == XEYES && MI_WIN_IS_INWINDOW (mi))
+ {
+ uint32_t ca = 0;
+ glClearColor (0, 0, 0, 0);
+ XChangeProperty (MI_DISPLAY(mi), MI_WINDOW(mi),
+ XInternAtom (MI_DISPLAY(mi),
+ "_NET_WM_WINDOW_OPACITY", 0),
+ XA_CARDINAL, 32, PropModeReplace,
+ (uint8_t *) &ca, 1);
+ }
+# endif
+# endif
+}
+
+
+static void
+draw_floater (ModeInfo *mi, floater *f, component which)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ double x, y, z;
+
+ GLfloat spc[4] = { 1.0, 1.0, 1.0, 1.0 };
+ GLfloat c2[4] = { 1.0, 1.0, 1.0, 1.0 };
+ GLfloat c2b[4] = { 1.0, 0.6, 0.6, 1.0 };
+ GLfloat c2c[4] = { 1.0, 1.0, 0.65, 1.0 };
+ GLfloat c3[4] = { 0.6, 0.6, 0.6, 0.25 };
+
+ get_position (f->rot, &x, &y, &z,
+ which == LENS && !bp->button_down_p);
+
+ if (bp->nfloaters == 2 &&
+ f != &bp->floaters[0] &&
+ (bp->mode == BOUNCE || bp->mode == XEYES))
+ {
+ /* When there are exactly two eyes, track them together. */
+ floater *f0 = &bp->floaters[0];
+ double x0, y0, z0;
+ get_position (f0->rot, &x0, &y0, &z0, 0);
+ x = x0;
+ y = 1-y0; /* This is rotation: what the eye is looking at */
+ z = z0;
+ if (bp->mode != XEYES)
+ {
+ f->x = f0->x + f0->scale * 3;
+ f->y = f0->y;
+ f->z = f0->z;
+ }
+ f->dilation = f0->dilation;
+ f->focus = f0->focus;
+ f->track = f0->track;
+ f->tilt = f0->tilt;
+ f->scale = f0->scale;
+ f->jaundice = f0->jaundice;
+ if (f->focus == ROTATE)
+ f->focus = f0->focus = TRACK;
+ memcpy (f->color, f0->color, sizeof(f0->color));
+ }
+
+ glPushMatrix();
+ glTranslatef (f->x, f->y, f->z);
+
+ /* gltrackball_rotate (bp->trackball); */
+
+ switch (f->focus) {
+ case ROTATE:
+ glRotatef (y * 180, 0, 1, 0);
+ glRotatef (f->tilt, 0, 0, 1);
+ break;
+ case SPIN:
+ glRotatef (y * 360 + 90, 0, 1, 0);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ break;
+ case TRACK:
+ {
+ GLfloat X, Y, Z;
+ X = f->track.x - f->x;
+ Y = f->track.z - f->z;
+ Z = f->track.y - f->y;
+ if (X != 0 || Y != 0)
+ {
+ GLfloat facing = atan2 (X, Y) * (180 / M_PI);
+ GLfloat pitch = atan2 (Z, sqrt(X*X + Y*Y)) * (180 / M_PI);
+ glRotatef (90, 0, 1, 0);
+ glRotatef (facing, 0, 1, 0);
+ glRotatef (-pitch, 0, 0, 1);
+ }
+ }
+
+ break;
+ default:
+ abort();
+ }
+
+ glRotatef (f->roll, 1, 0, 0);
+ glScalef (f->scale, f->scale, f->scale);
+
+ if (! wire)
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ switch (which) {
+ case RETINA:
+ if (!wire)
+ {
+ glScalef (0.96, 0.96, 0.96);
+ glCallList (bp->retina_list);
+ }
+ break;
+
+ case IRIS:
+ glColor4fv (f->color);
+ if (! wire)
+ {
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spc);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 10);
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, f->color);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 20);
+
+ glEnable (GL_TEXTURE_2D);
+ glBindTexture (GL_TEXTURE_2D, bp->iris_texture);
+ glMatrixMode (GL_TEXTURE);
+ glLoadIdentity();
+ glScalef (1, 1.25 + f->dilation.current * 0.3, 1);
+ glMatrixMode (GL_MODELVIEW);
+ }
+ glScalef (0.96, 0.96, 0.96);
+ glCallList (bp->iris_list);
+
+ if (! wire)
+ {
+ glMatrixMode (GL_TEXTURE);
+ glLoadIdentity();
+ glMatrixMode (GL_MODELVIEW);
+ }
+ break;
+
+ case SCLERA:
+ if (! wire)
+ {
+ GLfloat *c = (f->jaundice == 2 ? c2b : f->jaundice == 1 ? c2c : c2);
+ glColor4fv (c);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ glBindTexture (GL_TEXTURE_2D, bp->sclera_texture);
+
+ glScalef (0.98, 0.98, 0.98);
+ glCallList (bp->sclera_list);
+ }
+ break;
+
+ case LENS:
+ glColor4fv (c3);
+ if (! wire)
+ {
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c3);
+ glDisable (GL_TEXTURE_2D);
+ }
+ glCallList (bp->lens_list);
+ break;
+
+ default:
+ abort();
+ break;
+ }
+
+ glPopMatrix();
+}
+
+
+ENTRYPOINT void
+draw_peepers (ModeInfo *mi)
+{
+ peepers_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glRotatef (current_device_rotation(), 0, 0, 1);
+
+
+ /* Scale so that screen is 1 high and w/h wide. */
+ glScalef (8, 8, 8);
+
+ mi->polygon_count = 0;
+
+ if (bp->mode == XEYES || bp->mode == BEHOLDER)
+ {
+ int i;
+ track_mouse (mi);
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ f->track = bp->mouse;
+ f->focus = TRACK;
+ }
+ }
+
+# if 0
+ {
+ /* Draw just one */
+ component j;
+ floater F;
+ reset_floater(mi, &F);
+ F.x = F.y = F.z = 0;
+ F.dx = F.dy = F.dz = 0;
+ F.ddx = F.ddy = F.ddz = 0;
+ F.scale = 1;
+ F.focus = TRACK;
+ F.dilation.current = 0;
+ F.track.x = F.track.y = F.track.z = 0;
+ F.rot = make_rotator (0, 0, 0, 1, 0, False);
+ glRotatef(180,0,1,0);
+ glRotatef(15,1,0,0);
+ for (j = RETINA; j <= LENS; j++)
+ draw_floater (mi, &F, j);
+ mi->polygon_count += bp->eye_polys;
+ }
+# else
+ {
+ component j;
+ int i;
+ for (j = RETINA; j <= TICK; j++)
+ for (i = 0; i < bp->nfloaters; i++)
+ {
+ floater *f = &bp->floaters[i];
+ if (j == TICK)
+ tick_floater (mi, f);
+ else
+ draw_floater (mi, f, j);
+ }
+
+ if (bp->mode != BEHOLDER)
+ de_collide (mi);
+
+ mi->polygon_count += bp->eye_polys * bp->nfloaters;
+ }
+# endif
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Peepers", peepers)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/peepers.man b/hacks/glx/peepers.man
new file mode 100644
index 0000000..d30c883
--- /dev/null
+++ b/hacks/glx/peepers.man
@@ -0,0 +1,80 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+peepers - floating eyeballs.
+.SH SYNOPSIS
+.B peepers
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-mode bounce | scroll | random]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Eyeballs. They float. They bounce. They stare at your cursor.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-count \fInumber\fP
+Number of eyes. 0 means random.
+.TP 8
+.B \-mode bounce
+The eyeballs bounce onto the screen from the bottom. Like a cow.
+.TP 8
+.B \-mode scroll
+The eyeballs scroll in from the left and right.
+.TP 8
+.B \-mode xeyes
+The eyeballs remain stationary, but always turn to stare at the mouse
+pointer, wherever it happens to be on the screen. Perhaps best used
+in conjunction with \fI\-count 2\fP.
+.TP 8
+.B \-mode beholder
+Render a ball made of eyeballs, all looking at you. Valid \fI\-count\fP
+values are 20, 80, 320 or 1280.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2018 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/photopile.c b/hacks/glx/photopile.c
new file mode 100644
index 0000000..e060f25
--- /dev/null
+++ b/hacks/glx/photopile.c
@@ -0,0 +1,833 @@
+/* photopile, Copyright (c) 2008-2018 Jens Kilian <jjk@acm.org>
+ * Based on carousel, Copyright (c) 2005-2008 Jamie Zawinski <jwz@jwz.org>
+ * Loads a sequence of images and shuffles them into a pile.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#if defined(HAVE_COCOA) || defined(HAVE_ANDROID)
+# define DEF_FONT "OCR A Std 48, Lucida Console 48, Monaco 48"
+#elif 0 /* real X11, XQueryFont() */
+# define DEF_FONT "-*-helvetica-bold-r-normal-*-*-480-*-*-*-*-*-*"
+#else /* real X11, load_font_retry() */
+# define DEF_FONT "-*-ocr a std-medium-r-*-*-*-480-*-*-m-*-*-*"
+#endif
+
+#define DEFAULTS "*count: 7 \n" \
+ "*delay: 10000 \n" \
+ "*wireframe: False \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*useSHM: True \n" \
+ "*font: " DEF_FONT "\n" \
+ "*desktopGrabber: xscreensaver-getimage -no-desktop %s\n" \
+ "*grabDesktopImages: False \n" \
+ "*chooseRandomImages: True \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_photopile 0
+# define release_photopile 0
+# define photopile_handle_event xlockmore_no_events
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#ifndef HAVE_JWXYZ
+# include <X11/Intrinsic.h> /* for XrmDatabase in -debug mode */
+#endif
+#include <math.h>
+
+#include "xlockmore.h"
+#include "grab-ximage.h"
+#include "texfont.h"
+#include "dropshadow.h"
+
+#ifdef USE_GL
+
+# define DEF_SCALE "0.4"
+# define DEF_MAX_TILT "50"
+# define DEF_SPEED "1.0"
+# define DEF_DURATION "5"
+# define DEF_MIPMAP "True"
+# define DEF_TITLES "True"
+# define DEF_POLAROID "True"
+# define DEF_CLIP "True"
+# define DEF_SHADOWS "True"
+# define DEF_DEBUG "False"
+
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+typedef struct {
+ GLfloat x, y; /* position on screen */
+ GLfloat angle; /* rotation angle */
+
+} position;
+
+typedef struct {
+ Bool loaded_p; /* true if image can be drawn */
+
+ char *title; /* the filename of this image */
+ int w, h; /* size in pixels of the image */
+ int tw, th; /* size in pixels of the texture */
+ XRectangle geom; /* where in the image the bits are */
+
+ position pos[4]; /* control points for calculating position */
+
+ GLuint texid; /* GL texture ID */
+
+} image;
+
+
+typedef enum { EARLY, SHUFFLE, NORMAL, LOADING } fade_mode;
+static int fade_ticks = 60;
+
+typedef struct {
+ ModeInfo *mi;
+ GLXContext *glx_context;
+
+ image *frames; /* pointer to array of images */
+ int nframe; /* image being (resp. next to be) loaded */
+
+ GLuint shadow;
+ texture_font_data *texfont;
+ int loading_sw, loading_sh;
+
+ time_t last_time, now;
+ int draw_tick;
+ fade_mode mode;
+ int mode_tick;
+
+} photopile_state;
+
+static photopile_state *sss = NULL;
+
+
+/* Command-line arguments
+ */
+static GLfloat scale; /* Scale factor for loading images. */
+static GLfloat max_tilt; /* Maximum angle from vertical. */
+static GLfloat speed; /* Animation speed scale factor. */
+static int duration; /* Reload images after this long. */
+static Bool mipmap_p; /* Use mipmaps instead of single textures. */
+static Bool titles_p; /* Display image titles. */
+static Bool polaroid_p; /* Use instant-film look for images. */
+static Bool clip_p; /* Clip images instead of scaling for -polaroid. */
+static Bool shadows_p; /* Draw drop shadows. */
+static Bool debug_p; /* Be loud and do weird things. */
+
+
+static XrmOptionDescRec opts[] = {
+ {"-scale", ".scale", XrmoptionSepArg, 0 },
+ {"-maxTilt", ".maxTilt", XrmoptionSepArg, 0 },
+ {"-speed", ".speed", XrmoptionSepArg, 0 },
+ {"-duration", ".duration", XrmoptionSepArg, 0 },
+ {"-mipmaps", ".mipmap", XrmoptionNoArg, "True" },
+ {"-no-mipmaps", ".mipmap", XrmoptionNoArg, "False" },
+ {"-titles", ".titles", XrmoptionNoArg, "True" },
+ {"-no-titles", ".titles", XrmoptionNoArg, "False" },
+ {"-polaroid", ".polaroid", XrmoptionNoArg, "True" },
+ {"-no-polaroid", ".polaroid", XrmoptionNoArg, "False" },
+ {"-clip", ".clip", XrmoptionNoArg, "True" },
+ {"-no-clip", ".clip", XrmoptionNoArg, "False" },
+ {"-shadows", ".shadows", XrmoptionNoArg, "True" },
+ {"-no-shadows", ".shadows", XrmoptionNoArg, "False" },
+ {"-debug", ".debug", XrmoptionNoArg, "True" },
+ {"-font", ".font", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ { &scale, "scale", "Scale", DEF_SCALE, t_Float},
+ { &max_tilt, "maxTilt", "MaxTilt", DEF_MAX_TILT, t_Float},
+ { &speed, "speed", "Speed", DEF_SPEED, t_Float},
+ { &duration, "duration", "Duration", DEF_DURATION, t_Int},
+ { &mipmap_p, "mipmap", "Mipmap", DEF_MIPMAP, t_Bool},
+ { &titles_p, "titles", "Titles", DEF_TITLES, t_Bool},
+ { &polaroid_p, "polaroid", "Polaroid", DEF_POLAROID, t_Bool},
+ { &clip_p, "clip", "Clip", DEF_CLIP, t_Bool},
+ { &shadows_p, "shadows", "Shadows", DEF_SHADOWS, t_Bool},
+ { &debug_p, "debug", "Debug", DEF_DEBUG, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt photopile_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Functions to interpolate between image positions.
+ */
+static position
+add_pos(position p, position q)
+{
+ p.x += q.x;
+ p.y += q.y;
+ p.angle += q.angle;
+ return p;
+}
+
+static position
+scale_pos(GLfloat t, position p)
+{
+ p.x *= t;
+ p.y *= t;
+ p.angle *= t;
+ return p;
+}
+
+static position
+linear_combination(GLfloat t, position p, position q)
+{
+ return add_pos(scale_pos(1.0 - t, p), scale_pos(t, q));
+}
+
+static position
+interpolate(GLfloat t, position p[4])
+{
+ /* de Casteljau's algorithm, 4 control points */
+ position p10 = linear_combination(t, p[0], p[1]);
+ position p11 = linear_combination(t, p[1], p[2]);
+ position p12 = linear_combination(t, p[2], p[3]);
+
+ position p20 = linear_combination(t, p10, p11);
+ position p21 = linear_combination(t, p11, p12);
+
+ return linear_combination(t, p20, p21);
+}
+
+static position
+offset_pos(position p, GLfloat th, GLfloat r)
+{
+ p.x += cos(th) * r;
+ p.y += sin(th) * r;
+ p.angle = (frand(2.0) - 1.0) * max_tilt;
+ return p;
+}
+
+/* Calculate new positions for all images.
+ */
+static void
+set_new_positions(photopile_state *ss)
+{
+ ModeInfo *mi = ss->mi;
+ int i;
+
+ for (i = 0; i < MI_COUNT(mi)+1; ++i)
+ {
+ image *frame = ss->frames + i;
+ GLfloat w = frame->w;
+ GLfloat h = frame->h;
+ GLfloat d = sqrt(w*w + h*h);
+ GLfloat leave = frand(M_PI * 2.0);
+ GLfloat enter = frand(M_PI * 2.0);
+
+ /* start position */
+ frame->pos[0] = frame->pos[3];
+
+ /* end position */
+ frame->pos[3].x = BELLRAND(MI_WIDTH(mi));
+ frame->pos[3].y = BELLRAND(MI_HEIGHT(mi));
+ frame->pos[3].angle = (frand(2.0) - 1.0) * max_tilt;
+
+ /* Try to keep the images mostly inside the screen bounds */
+ frame->pos[3].x = MAX(0.5*w, MIN(MI_WIDTH(mi)-0.5*w, frame->pos[3].x));
+ frame->pos[3].y = MAX(0.5*h, MIN(MI_HEIGHT(mi)-0.5*h, frame->pos[3].y));
+
+ /* intermediate points */
+ frame->pos[1] = offset_pos(frame->pos[0], leave, d * (0.5 + frand(1.0)));
+ frame->pos[2] = offset_pos(frame->pos[3], enter, d * (0.5 + frand(1.0)));
+ }
+}
+
+/* Callback that tells us that the texture has been loaded.
+ */
+static void
+image_loaded_cb (const char *filename, XRectangle *geom,
+ int image_width, int image_height,
+ int texture_width, int texture_height,
+ void *closure)
+{
+ photopile_state *ss = (photopile_state *) closure;
+ ModeInfo *mi = ss->mi;
+ int wire = MI_IS_WIREFRAME(mi);
+ image *frame = ss->frames + ss->nframe;
+
+ if (wire)
+ {
+ if (random() % 2)
+ {
+ frame->w = (int)(MI_WIDTH(mi) * scale) - 1;
+ frame->h = (int)(MI_HEIGHT(mi) * scale) - 1;
+ }
+ else
+ {
+ frame->w = (int)(MI_HEIGHT(mi) * scale) - 1;
+ frame->h = (int)(MI_WIDTH(mi) * scale) - 1;
+ }
+ if (frame->w <= 10) frame->w = 10;
+ if (frame->h <= 10) frame->h = 10;
+ frame->geom.width = frame->w;
+ frame->geom.height = frame->h;
+ goto DONE;
+ }
+
+ if (image_width == 0 || image_height == 0)
+ exit (1);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR);
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ frame->w = image_width;
+ frame->h = image_height;
+ frame->tw = texture_width;
+ frame->th = texture_height;
+ frame->geom = *geom;
+
+ if (frame->title)
+ free (frame->title);
+ frame->title = (filename ? strdup (filename) : 0);
+
+ /* xscreensaver-getimage returns paths relative to the image directory
+ now, so leave the sub-directory part in. Unless it's an absolute path.
+ */
+ if (frame->title && frame->title[0] == '/')
+ {
+ /* strip filename to part after last /. */
+ char *s = strrchr (frame->title, '/');
+ if (s) strcpy (frame->title, s+1);
+ }
+
+ if (debug_p)
+ fprintf (stderr, "%s: loaded %4d x %-4d %4d x %-4d \"%s\"\n",
+ progname,
+ frame->geom.width,
+ frame->geom.height,
+ frame->tw, frame->th,
+ (frame->title ? frame->title : "(null)"));
+
+ DONE:
+ frame->loaded_p = True;
+}
+
+
+/* Load a new file.
+ */
+static void
+load_image (ModeInfo *mi)
+{
+ photopile_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ image *frame = ss->frames + ss->nframe;
+
+ if (debug_p && !wire && frame->w != 0)
+ fprintf (stderr, "%s: dropped %4d x %-4d %4d x %-4d \"%s\"\n",
+ progname,
+ frame->geom.width,
+ frame->geom.height,
+ frame->tw, frame->th,
+ (frame->title ? frame->title : "(null)"));
+
+ frame->loaded_p = False;
+
+ if (wire)
+ image_loaded_cb (0, 0, 0, 0, 0, 0, ss);
+ else
+ {
+ int w = MI_WIDTH(mi);
+ int h = MI_HEIGHT(mi);
+ int size = (int)((w > h ? w : h) * scale);
+ if (size <= 10) size = 10;
+ load_texture_async (mi->xgwa.screen, mi->window, *ss->glx_context,
+ size, size,
+ mipmap_p, frame->texid,
+ image_loaded_cb, ss);
+ }
+}
+
+
+static void
+loading_msg (ModeInfo *mi)
+{
+ photopile_state *ss = &sss[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ const char text[] = "Loading...";
+
+ if (wire) return;
+
+ if (ss->loading_sw == 0) /* only do this once */
+ {
+ XCharStruct e;
+ texture_string_metrics (ss->texfont, text, &e, 0, 0);
+ ss->loading_sw = e.width;
+ ss->loading_sh = e.ascent + e.descent;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+ glOrtho(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi), -1, 1);
+
+ glTranslatef ((MI_WIDTH(mi) - ss->loading_sw) / 2,
+ (MI_HEIGHT(mi) - ss->loading_sh) / 2,
+ 0);
+ glColor3f (1, 1, 0);
+ glEnable (GL_TEXTURE_2D);
+ glDisable (GL_DEPTH_TEST);
+ print_texture_string (ss->texfont, text);
+ glEnable (GL_DEPTH_TEST);
+ glPopMatrix();
+
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ glMatrixMode(GL_MODELVIEW);
+
+ glFinish();
+ glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi));
+}
+
+
+static Bool
+loading_initial_image (ModeInfo *mi)
+{
+ photopile_state *ss = &sss[MI_SCREEN(mi)];
+
+ if (ss->frames[ss->nframe].loaded_p)
+ {
+ /* The initial image has been fully loaded, start fading it in. */
+ int i;
+
+ for (i = 0; i < ss->nframe; ++i)
+ {
+ ss->frames[i].pos[3].x = MI_WIDTH(mi) * 0.5;
+ ss->frames[i].pos[3].y = MI_HEIGHT(mi) * 0.5;
+ ss->frames[i].pos[3].angle = 0.0;
+ }
+ set_new_positions(ss);
+
+ ss->mode = SHUFFLE;
+ ss->mode_tick = fade_ticks / speed;
+ }
+ else
+ {
+ loading_msg(mi);
+ }
+
+ return (ss->mode == EARLY);
+}
+
+
+ENTRYPOINT void
+reshape_photopile (ModeInfo *mi, int width, int height)
+{
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glOrtho(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi), -1, 1);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, h, 1);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+/* Kludge to add "-v" to invocation of "xscreensaver-getimage" in -debug mode
+ */
+static void
+hack_resources (Display *dpy)
+{
+# ifndef HAVE_JWXYZ
+ char *res = "desktopGrabber";
+ char *val = get_string_resource (dpy, res, "DesktopGrabber");
+ char buf1[255];
+ char buf2[255];
+ XrmValue value;
+ XrmDatabase db = XtDatabase (dpy);
+ sprintf (buf1, "%.100s.%.100s", progname, res);
+ sprintf (buf2, "%.200s -v", val);
+ value.addr = buf2;
+ value.size = strlen(buf2);
+ XrmPutResource (&db, buf1, "String", &value);
+# endif /* !HAVE_JWXYZ */
+}
+
+
+ENTRYPOINT void
+init_photopile (ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ photopile_state *ss;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, sss);
+ ss = &sss[screen];
+ ss->mi = mi;
+
+ if ((ss->glx_context = init_GL(mi)) != NULL) {
+ reshape_photopile (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ ss->shadow = init_drop_shadow();
+ ss->texfont = load_texture_font (MI_DISPLAY(mi), "font");
+
+ if (debug_p)
+ hack_resources (MI_DISPLAY (mi));
+
+ ss->frames = (image *)calloc (MI_COUNT(mi) + 1, sizeof(image));
+ ss->nframe = 0;
+ if (!wire)
+ {
+ int i;
+ for (i = 0; i < MI_COUNT(mi) + 1; ++i)
+ {
+ glGenTextures (1, &(ss->frames[i].texid));
+ if (ss->frames[i].texid <= 0) abort();
+ }
+ }
+
+ ss->mode = EARLY;
+ load_image(mi); /* start loading the first image */
+}
+
+
+static void
+draw_image (ModeInfo *mi, int i, GLfloat t, GLfloat s, GLfloat z)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ photopile_state *ss = &sss[MI_SCREEN(mi)];
+ image *frame = ss->frames + i;
+
+ position pos = interpolate(t, frame->pos);
+ GLfloat w = frame->geom.width * 0.5;
+ GLfloat h = frame->geom.height * 0.5;
+ GLfloat z1 = z - 0.25 / (MI_COUNT(mi) + 1);
+ GLfloat z2 = z - 0.5 / (MI_COUNT(mi) + 1);
+ GLfloat w1 = w;
+ GLfloat h1 = h;
+ GLfloat h2 = h;
+
+ if (polaroid_p)
+ {
+ GLfloat minSize = MIN(w, h);
+ GLfloat maxSize = MAX(w, h);
+
+ /* Clip or scale image to fit in the frame.
+ */
+ if (clip_p)
+ {
+ w = h = minSize;
+ }
+ else
+ {
+ GLfloat scale = minSize / maxSize;
+ w *= scale;
+ h *= scale;
+ }
+
+ w1 = minSize * 1.16; /* enlarge frame border */
+ h1 = minSize * 1.5;
+ h2 = w1;
+ s /= 1.5; /* compensate for border size */
+ }
+
+ glPushMatrix();
+
+ /* Position and scale this image.
+ */
+ glTranslatef (pos.x, pos.y, 0);
+ glRotatef (pos.angle, 0, 0, 1);
+ glScalef (s, s, 1);
+
+ /* Draw the drop shadow. */
+ if (shadows_p && !wire)
+ {
+ glColor3f (0, 0, 0);
+ draw_drop_shadow(ss->shadow, -w1, -h1, z2, 2.0 * w1, h1 + h2, 20.0);
+ glDisable (GL_BLEND);
+ }
+
+ glDisable (GL_LIGHTING);
+ glEnable (GL_DEPTH_TEST);
+ glDisable (GL_CULL_FACE);
+
+ /* Draw the retro instant-film frame.
+ */
+ if (polaroid_p)
+ {
+ if (! wire)
+ {
+ glShadeModel (GL_SMOOTH);
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+
+ glColor3f (1, 1, 1);
+ glBegin (GL_QUADS);
+ glVertex3f (-w1, -h1, z2);
+ glVertex3f ( w1, -h1, z2);
+ glVertex3f ( w1, h2, z2);
+ glVertex3f (-w1, h2, z2);
+ glEnd();
+ }
+
+ glLineWidth (1.0);
+ glColor3f (0.5, 0.5, 0.5);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (-w1, -h1, z);
+ glVertex3f ( w1, -h1, z);
+ glVertex3f ( w1, h2, z);
+ glVertex3f (-w1, h2, z);
+ glEnd();
+ }
+
+ /* Draw the image quad.
+ */
+ if (! wire)
+ {
+ GLfloat texw = w / frame->tw;
+ GLfloat texh = h / frame->th;
+ GLfloat texx = (frame->geom.x + 0.5 * frame->geom.width) / frame->tw;
+ GLfloat texy = (frame->geom.y + 0.5 * frame->geom.height) / frame->th;
+
+ glBindTexture (GL_TEXTURE_2D, frame->texid);
+ glEnable (GL_TEXTURE_2D);
+ glColor3f (1, 1, 1);
+ glBegin (GL_QUADS);
+ glTexCoord2f (texx - texw, texy + texh); glVertex3f (-w, -h, z1);
+ glTexCoord2f (texx + texw, texy + texh); glVertex3f ( w, -h, z1);
+ glTexCoord2f (texx + texw, texy - texh); glVertex3f ( w, h, z1);
+ glTexCoord2f (texx - texw, texy - texh); glVertex3f (-w, h, z1);
+ glEnd();
+ glDisable (GL_TEXTURE_2D);
+ }
+
+ /* Draw a box around it.
+ */
+ if (! wire)
+ {
+ glShadeModel (GL_SMOOTH);
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ }
+ glLineWidth (1.0);
+ glColor3f (0.5, 0.5, 0.5);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (-w, -h, z);
+ glVertex3f ( w, -h, z);
+ glVertex3f ( w, h, z);
+ glVertex3f (-w, h, z);
+ glEnd();
+
+ /* Draw a title under the image.
+ */
+ if (titles_p)
+ {
+ int sw = 0, sh = 0;
+ int ascent, descent;
+ GLfloat tw = w * 2;
+ GLfloat th = h1 - h;
+ GLfloat scale = 1;
+ const char *title = frame->title ? frame->title : "(untitled)";
+ XCharStruct e;
+
+ texture_string_metrics (ss->texfont, title, &e, &ascent, &descent);
+ sw = e.width;
+ sh = ascent; /* + descent; */
+
+ /* Scale the text to match the pixel size of the photo */
+ scale *= w / 150.0;
+
+# if defined(HAVE_COCOA)
+ scale /= 2;
+ if (MI_WIDTH(mi) > 2560) scale /= 2; /* Retina displays */
+# endif
+
+# if defined(HAVE_MOBILE)
+ scale /= 2;
+# endif
+
+ /* Clip characters off the left end of the string until it fits. */
+ if (clip_p || polaroid_p)
+ while (sw * scale > tw && strlen (title) > 10)
+ {
+ title++;
+ texture_string_metrics (ss->texfont, title, &e, &ascent, &descent);
+ sw = e.width;
+ }
+
+ if (th <= 0) /* Non-polaroid */
+ th = -sh * 1.2;
+
+ glTranslatef (-w, -h1, 0);
+ glTranslatef ((tw - sw*scale) / 2, (th - sh*scale) / 2, 0);
+
+ glScalef (scale, scale, 1);
+
+ if (wire || !polaroid_p)
+ {
+ glColor3f (1, 1, 1);
+ }
+ else
+ {
+ glColor3f (0.5, 0.5, 0.5);
+ }
+
+ if (!wire)
+ {
+ glEnable (GL_TEXTURE_2D);
+ glEnable (GL_BLEND);
+ glDisable (GL_DEPTH_TEST);
+ print_texture_string (ss->texfont, title);
+ glEnable (GL_DEPTH_TEST);
+ }
+ else
+ {
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (sw, 0, 0);
+ glVertex3f (sw, sh, 0);
+ glVertex3f (0, sh, 0);
+ glEnd();
+ }
+
+ }
+
+ glPopMatrix();
+}
+
+
+ENTRYPOINT void
+draw_photopile (ModeInfo *mi)
+{
+ photopile_state *ss = &sss[MI_SCREEN(mi)];
+ int i;
+
+ if (!ss->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(ss->glx_context));
+
+ if (ss->mode == EARLY)
+ if (loading_initial_image (mi))
+ return;
+
+ /* Only check the wall clock every 10 frames */
+ if (ss->now == 0 || ss->draw_tick++ > 10)
+ {
+ ss->now = time((time_t *) 0);
+ if (ss->last_time == 0) ss->last_time = ss->now;
+ ss->draw_tick = 0;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ {
+ GLfloat t;
+
+ glPushMatrix();
+ glTranslatef (MI_WIDTH(mi)/2, MI_HEIGHT(mi)/2, 0);
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ glTranslatef (-MI_WIDTH(mi)/2, -MI_HEIGHT(mi)/2, 0);
+
+ /* Handle state transitions. */
+ switch (ss->mode)
+ {
+ case SHUFFLE:
+ if (--ss->mode_tick <= 0)
+ {
+ ss->nframe = (ss->nframe+1) % (MI_COUNT(mi)+1);
+
+ ss->mode = NORMAL;
+ ss->last_time = time((time_t *) 0);
+ }
+ break;
+ case NORMAL:
+ if (ss->now - ss->last_time > duration)
+ {
+ ss->mode = LOADING;
+ load_image(mi);
+ }
+ break;
+ case LOADING:
+ if (ss->frames[ss->nframe].loaded_p)
+ {
+ set_new_positions(ss);
+ ss->mode = SHUFFLE;
+ ss->mode_tick = fade_ticks / speed;
+ }
+ break;
+ default:
+ abort();
+ }
+
+ t = 1.0 - ss->mode_tick / (fade_ticks / speed);
+ t = 0.5 * (1.0 - cos(M_PI * t));
+
+ /* Draw the images. */
+ for (i = 0; i < MI_COUNT(mi) + (ss->mode == SHUFFLE); ++i)
+ {
+ int j = (ss->nframe + i + 1) % (MI_COUNT(mi) + 1);
+
+ if (ss->frames[j].loaded_p)
+ {
+ GLfloat s = 1.0;
+ GLfloat z = (GLfloat)i / (MI_COUNT(mi) + 1);
+
+ switch (ss->mode)
+ {
+ case SHUFFLE:
+ if (i == MI_COUNT(mi))
+ {
+ s *= t;
+ }
+ else if (i == 0)
+ {
+ s *= 1.0 - t;
+ }
+ break;
+ case NORMAL:
+ case LOADING:
+ t = 1.0;
+ break;
+ default:
+ abort();
+ }
+
+ draw_image(mi, j, t, s, z);
+ }
+ }
+ glPopMatrix();
+ }
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi));
+}
+
+XSCREENSAVER_MODULE ("Photopile", photopile)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/photopile.man b/hacks/glx/photopile.man
new file mode 100644
index 0000000..c3dc601
--- /dev/null
+++ b/hacks/glx/photopile.man
@@ -0,0 +1,113 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+photopile - displays multiple images in a periodically shuffled pile
+.SH SYNOPSIS
+.B photopile
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fIint\fP]
+[\-scale \fIfactor\fP]
+[\-maxTilt \fIdegrees\fP]
+[\-titles | \-no\-titles]
+[\-polaroid | \-no\-polaroid]
+[\-shadows | \-no\-shadows]
+[\-font \fIfont\fP]
+[\-speed \fIratio\fP]
+[\-duration \fIseconds\fP]
+[\-fps]
+[\-debug]
+[\-wireframe]
+.SH DESCRIPTION
+Loads several random images, and displays them as if lying in a random pile.
+The pile is periodically reshuffled, with new images coming in and old ones
+being thrown out.
+
+This program requires a good video card capable of supporting large
+textures.
+
+To specify the directory that images are loaded from, run
+.BR xscreensaver-demo (1)
+and click on the "Advanced" tab.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fIint\fP
+How many images to display. Default 7.
+.TP 8
+.B \-scale \fIfactor\fP
+Size of images in relation to the size of the window. Default 0.4.
+.TP 8
+.B \-maxTilt \fIdegrees\fP
+Maximum deviation from vertical. Default 50 degrees.
+.TP 8
+.B \-duration \fIseconds\fP
+Every \fIduration\fP seconds, one of the images will be replaced
+with a new one. Default 5 seconds.
+.TP 8
+.B \-speed \fIratio\fP
+Speed up or slow down the animation. 0.5 means half as fast as the
+default; 2.0 means twice as fast.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-titles \fB| \-no\-titles\fP
+Whether to display the file names of the images beneath them. Default: yes.
+.TP 8
+.B \-polaroid \fB| \-no\-polaroid\fP
+Whether to simulate images taken by an instant camera. Default: yes.
+.TP 8
+.B \-shadows \fB| \-no\-shadows\fP
+Whether to draw images with drop shadows. Default: no.
+.TP 8
+.B \-font \fIfont-name\fP
+The font to use for the initial loading screen and for image titles.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-debug
+Prints debugging info to stderr.
+.TP 8
+.B \-wireframe
+Another debug mode.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver-demo (1)
+.BR xscreensaver-getimage (1)
+.BR xscreensaver (1)
+.BR carousel (MANSUFFIX)
+.BR glslideshow (MANSUFFIX)
+.SH COPYRIGHT
+Copyright \(co 2005 by Jamie Zawinski.
+Copyright \(co 2008 by Jens Kilian.
+
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jens Kilian.
diff --git a/hacks/glx/pinion.c b/hacks/glx/pinion.c
new file mode 100644
index 0000000..f6793eb
--- /dev/null
+++ b/hacks/glx/pinion.c
@@ -0,0 +1,1470 @@
+/* pinion, Copyright (c) 2004-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 15000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*titleFont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n" \
+ "*titleFont2: -*-helvetica-medium-r-normal-*-*-120-*-*-*-*-*-*\n" \
+ "*titleFont3: -*-helvetica-medium-r-normal-*-*-80-*-*-*-*-*-*\n" \
+
+# define free_pinion 0
+# define release_pinion 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#include "xlockmore.h"
+#include "normals.h"
+#include "gltrackball.h"
+#include "texfont.h"
+#include "involute.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPIN_SPEED "1.0"
+#define DEF_SCROLL_SPEED "1.0"
+#define DEF_GEAR_SIZE "1.0"
+#define DEF_MAX_RPM "900"
+
+typedef struct {
+ GLXContext *glx_context;
+ GLfloat vp_left, vp_right, vp_top, vp_bottom; /* default visible area */
+ GLfloat vp_width, vp_height;
+ GLfloat render_left, render_right; /* area in which gears are displayed */
+ GLfloat layout_left, layout_right; /* layout region, on the right side */
+
+ int ngears;
+ int gears_size;
+ gear **gears;
+
+ trackball_state *trackball;
+ Bool button_down_p;
+ unsigned long mouse_gear_id;
+
+ texture_font_data *font1, *font2, *font3;
+
+ int draw_tick;
+
+ GLfloat plane_displacement; /* distance between coaxial gears */
+
+ int debug_size_failures; /* for debugging messages */
+ int debug_position_failures;
+ unsigned long current_length; /* gear count in current train */
+ unsigned long current_blur_length; /* how long have we been blurring? */
+
+} pinion_configuration;
+
+
+static pinion_configuration *pps = NULL;
+
+/* command line arguments */
+static GLfloat spin_speed, scroll_speed, gear_size, max_rpm;
+
+static Bool verbose_p = False; /* print progress on stderr */
+static Bool debug_p = False; /* render as flat schematic */
+
+/* internal debugging variables */
+static Bool debug_placement_p = False; /* extreme verbosity on stderr */
+static Bool debug_one_gear_p = False; /* draw one big stationary gear */
+
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spinSpeed", XrmoptionSepArg, 0 },
+ { "-scroll", ".scrollSpeed", XrmoptionSepArg, 0 },
+ { "-size", ".gearSize", XrmoptionSepArg, 0 },
+ { "-max-rpm",".maxRPM", XrmoptionSepArg, 0 },
+ { "-debug", ".debug", XrmoptionNoArg, "True" },
+ { "-verbose",".verbose", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ {&spin_speed, "spinSpeed", "SpinSpeed", DEF_SPIN_SPEED, t_Float},
+ {&scroll_speed, "scrollSpeed", "ScrollSpeed", DEF_SCROLL_SPEED, t_Float},
+ {&gear_size, "gearSize", "GearSize", DEF_GEAR_SIZE, t_Float},
+ {&max_rpm, "maxRPM", "MaxRPM", DEF_MAX_RPM, t_Float},
+ {&debug_p, "debug", "Debug", "False", t_Bool},
+ {&verbose_p, "verbose", "Verbose", "False", t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt pinion_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Font stuff
+ */
+
+static void
+load_fonts (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ pp->font1 = load_texture_font (mi->dpy, "titleFont");
+ pp->font2 = load_texture_font (mi->dpy, "titleFont2");
+ pp->font3 = load_texture_font (mi->dpy, "titleFont3");
+}
+
+
+
+static void rpm_string (double rpm, char *s);
+
+static void
+draw_label (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ char label[1024];
+ int i;
+ gear *g = 0;
+
+ if (pp->mouse_gear_id)
+ for (i = 0; i < pp->ngears; i++)
+ if (pp->gears[i]->id == pp->mouse_gear_id)
+ {
+ g = pp->gears[i];
+ break;
+ }
+
+ if (!g)
+ *label = 0;
+ else
+ {
+ sprintf (label, "%d teeth\n", (int) g->nteeth);
+ rpm_string (g->rpm, label + strlen(label));
+ if (debug_p)
+ sprintf (label + strlen (label), "\nPolys: %d\nModel: %s (%.2f)\n",
+ g->polygons,
+ (g->size == INVOLUTE_SMALL ? "small" :
+ g->size == INVOLUTE_MEDIUM ? "medium"
+ : "large"),
+ g->tooth_h * MI_HEIGHT(mi));
+ }
+
+ if (*label)
+ {
+ texture_font_data *fd;
+ if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375)
+ fd = pp->font1;
+ else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260)
+ fd = pp->font2;
+ else
+ fd = pp->font3;
+
+ glColor3f (0.8, 0.8, 0);
+ print_texture_label (mi->dpy, fd,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, label);
+ }
+}
+
+
+/* Some utilities
+ */
+
+
+/* Find the gear in the scene that is farthest to the right or left.
+ */
+static gear *
+farthest_gear (ModeInfo *mi, Bool left_p)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ int i;
+ gear *rg = 0;
+ double x = (left_p ? 999999 : -999999);
+ for (i = 0; i < pp->ngears; i++)
+ {
+ gear *g = pp->gears[i];
+ double gx = g->x + ((g->r + g->tooth_h) * (left_p ? -1 : 1));
+ if (left_p ? (x > gx) : (x < gx))
+ {
+ rg = g;
+ x = gx;
+ }
+ }
+ return rg;
+}
+
+
+/* Compute the revolutions per minute of a gear.
+ */
+static void
+compute_rpm (ModeInfo *mi, gear *g)
+{
+ double fps, rpf, rps;
+ fps = (MI_PAUSE(mi) == 0 ? 999999 : 1000000.0 / MI_PAUSE(mi));
+
+ if (fps > 150) fps = 150; /* let's be reasonable... */
+ if (fps < 10) fps = 10;
+
+ rpf = (g->ratio * spin_speed) / 360.0; /* rotations per frame */
+ rps = rpf * fps; /* rotations per second */
+ g->rpm = rps * 60;
+}
+
+/* Prints the RPM into a string, doing fancy float formatting.
+ */
+static void
+rpm_string (double rpm, char *s)
+{
+ char buf[30];
+ int L;
+ if (rpm >= 0.1) sprintf (buf, "%.2f", rpm);
+ else if (rpm >= 0.001) sprintf (buf, "%.4f", rpm);
+ else if (rpm >= 0.00001) sprintf (buf, "%.8f", rpm);
+ else sprintf (buf, "%.16f",rpm);
+
+ L = strlen(buf);
+ while (buf[L-1] == '0') buf[--L] = 0;
+ if (buf[L-1] == '.') buf[--L] = 0;
+ strcpy (s, buf);
+ strcat (s, " RPM");
+}
+
+
+
+/* Layout and stuff.
+ */
+
+
+/* Create and return a new gear sized for placement next to or on top of
+ the given parent gear (if any.) Returns 0 if out of memory.
+ */
+static gear *
+new_gear (ModeInfo *mi, gear *parent, Bool coaxial_p)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ gear *g = (gear *) calloc (1, sizeof (*g));
+ int loop_count = 0;
+ static unsigned long id = 0; /* only used in debugging output */
+
+ if (!g) return 0;
+ if (coaxial_p && !parent) abort();
+ g->id = ++id;
+
+ g->coax_displacement = pp->plane_displacement;
+
+ while (1)
+ {
+ loop_count++;
+ if (loop_count > 1000)
+ /* The only time we loop in here is when making a coaxial gear, and
+ trying to pick a radius that is either significantly larger or
+ smaller than its parent. That shouldn't be hard, so something
+ must be really wrong if we can't do that in only a few tries.
+ */
+ abort();
+
+ /* Pick the size of the teeth.
+ */
+ if (parent && !coaxial_p) /* adjascent gears need matching teeth */
+ {
+ g->tooth_w = parent->tooth_w;
+ g->tooth_h = parent->tooth_h;
+ g->thickness = parent->thickness;
+ g->thickness2 = parent->thickness2;
+ g->thickness3 = parent->thickness3;
+ }
+ else /* gears that begin trains get any size they want */
+ {
+ double scale = (1.0 + BELLRAND(4.0)) * gear_size;
+ g->tooth_w = 0.007 * scale;
+ g->tooth_h = 0.005 * scale;
+ g->thickness = g->tooth_h * (0.1 + BELLRAND(1.5));
+ g->thickness2 = g->thickness / 4;
+ g->thickness3 = g->thickness;
+ }
+
+ /* Pick the number of teeth, and thus, the radius.
+ */
+ {
+ double c;
+
+ AGAIN:
+ g->nteeth = 3 + (random() % 97); /* from 3 to 100 teeth */
+
+ if (g->nteeth < 7 && (random() % 5) != 0)
+ goto AGAIN; /* Let's make very small tooth-counts more rare */
+
+ c = g->nteeth * g->tooth_w * 2; /* circumference = teeth + gaps */
+ g->r = c / (M_PI * 2); /* c = 2 pi r */
+ }
+
+
+ /* Are we done now?
+ */
+ if (! coaxial_p) break; /* yes */
+ if (g->nteeth == parent->nteeth) continue; /* ugly */
+ if (g->r < parent->r * 0.6) break; /* g much smaller than parent */
+ if (parent->r < g->r * 0.6) break; /* g much larger than parent */
+ }
+
+ /* g->tooth_slope = (parent ? -parent->tooth_slope : 4); */
+
+ if (debug_one_gear_p)
+ g->tooth_slope = frand(20)-10;
+
+
+ /* Colorize
+ */
+ g->color[0] = 0.5 + frand(0.5);
+ g->color[1] = 0.5 + frand(0.5);
+ g->color[2] = 0.5 + frand(0.5);
+ g->color[3] = 1.0;
+
+ g->color2[0] = g->color[0] * 0.85;
+ g->color2[1] = g->color[1] * 0.85;
+ g->color2[2] = g->color[2] * 0.85;
+ g->color2[3] = g->color[3];
+
+
+ /* Decide on shape of gear interior:
+ - just a ring with teeth;
+ - that, plus a thinner in-set "plate" in the middle;
+ - that, plus a thin raised "lip" on the inner plate;
+ - or, a wide lip (really, a thicker third inner plate.)
+ */
+ if ((random() % 10) == 0)
+ {
+ /* inner_r can go all the way in; there's no inset disc. */
+ g->inner_r = (g->r * 0.1) + frand((g->r - g->tooth_h/2) * 0.8);
+ g->inner_r2 = 0;
+ g->inner_r3 = 0;
+ }
+ else
+ {
+ /* inner_r doesn't go in very far; inner_r2 is an inset disc. */
+ g->inner_r = (g->r * 0.5) + frand((g->r - g->tooth_h) * 0.4);
+ g->inner_r2 = (g->r * 0.1) + frand(g->inner_r * 0.5);
+ g->inner_r3 = 0;
+
+ if (g->inner_r2 > (g->r * 0.2))
+ {
+ int nn = (random() % 10);
+ if (nn <= 2)
+ g->inner_r3 = (g->r * 0.1) + frand(g->inner_r2 * 0.2);
+ else if (nn <= 7 && g->inner_r2 >= 0.1)
+ g->inner_r3 = g->inner_r2 - 0.01;
+ }
+ }
+
+ /* Coaxial gears need to have the same innermost hole size (for the axle.)
+ Use whichever of the two is smaller. (Modifies parent.)
+ */
+ if (coaxial_p)
+ {
+ double hole1 = (g->inner_r3 ? g->inner_r3 :
+ g->inner_r2 ? g->inner_r2 :
+ g->inner_r);
+ double hole2 = (parent->inner_r3 ? parent->inner_r3 :
+ parent->inner_r2 ? parent->inner_r2 :
+ parent->inner_r);
+ double hole = (hole1 < hole2 ? hole1 : hole2);
+ if (hole <= 0) abort();
+
+ if (g->inner_r3) g->inner_r3 = hole;
+ else if (g->inner_r2) g->inner_r2 = hole;
+ else g->inner_r = hole;
+
+ if (parent->inner_r3) parent->inner_r3 = hole;
+ else if (parent->inner_r2) parent->inner_r2 = hole;
+ else parent->inner_r = hole;
+ }
+
+ /* If we have three discs, sometimes make the middle disc be spokes.
+ */
+ if (g->inner_r3 && ((random() % 5) == 0))
+ {
+ g->spokes = 2 + BELLRAND (5);
+ g->spoke_thickness = 1 + frand(7.0);
+ if (g->spokes == 2 && g->spoke_thickness < 2)
+ g->spoke_thickness += 1;
+ }
+
+ /* Sometimes add little nubbly bits, if there is room.
+ */
+ if (g->nteeth > 5)
+ {
+ double size = 0;
+ involute_biggest_ring (g, 0, &size, 0);
+ if (size > g->r * 0.2 && (random() % 5) == 0)
+ {
+ g->nubs = 1 + (random() % 16);
+ if (g->nubs > 8) g->nubs = 1;
+ }
+ }
+
+ if (g->inner_r3 > g->inner_r2) abort();
+ if (g->inner_r2 > g->inner_r) abort();
+ if (g->inner_r > g->r) abort();
+
+ /* Decide how complex the polygon model should be.
+ */
+ {
+ double pix = g->tooth_h * MI_HEIGHT(mi); /* approx. tooth size in pixels */
+ if (pix <= 2.5) g->size = INVOLUTE_SMALL;
+ else if (pix <= 3.5) g->size = INVOLUTE_MEDIUM;
+ else if (pix <= 25) g->size = INVOLUTE_LARGE;
+ else g->size = INVOLUTE_HUGE;
+ }
+
+ g->base_p = !parent;
+
+ return g;
+}
+
+
+/* Given a newly-created gear, place it next to its parent in the scene,
+ with its teeth meshed and the proper velocity. Returns False if it
+ didn't work. (Call this a bunch of times until either it works, or
+ you decide it's probably not going to.)
+ */
+static Bool
+place_gear (ModeInfo *mi, gear *g, gear *parent, Bool coaxial_p)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+
+ /* If this gear takes up more than 1/3rd of the screen, it's no good.
+ */
+ if (((g->r + g->tooth_h) * (6 / gear_size)) >= pp->vp_width ||
+ ((g->r + g->tooth_h) * (6 / gear_size)) >= pp->vp_height)
+ {
+ if (verbose_p && debug_placement_p && 0)
+ fprintf (stderr,
+ "%s: placement: too big: %.2f @ %.2f vs %.2f x %.2f\n",
+ progname,
+ (g->r + g->tooth_h), gear_size,
+ pp->vp_width, pp->vp_height);
+ pp->debug_size_failures++;
+ return False;
+ }
+
+ /* Compute this gear's velocity.
+ */
+ if (! parent)
+ {
+ g->ratio = 0.8 + BELLRAND(0.4); /* 0.8-1.2 = 8-12rpm @ 60fps */
+ g->th = frand (90) * ((random() & 1) ? 1.0 : -1.0);
+ }
+ else if (coaxial_p)
+ {
+ g->ratio = parent->ratio; /* bound gears have the same ratio */
+ g->th = parent->th;
+ g->rpm = parent->rpm;
+ g->wobble = parent->wobble;
+ }
+ else
+ {
+ /* Gearing ratio is the ratio of the number of teeth to previous gear
+ (which is also the ratio of the circumferences.)
+ */
+ g->ratio = (double) parent->nteeth / (double) g->nteeth;
+
+ /* Set our initial rotation to match that of the previous gear,
+ multiplied by the gearing ratio. (This is finessed later,
+ once we know the exact position of the gear relative to its
+ parent.)
+ */
+ g->th = -(parent->th * g->ratio);
+
+ if (g->nteeth & 1) /* rotate 1/2 tooth-size if odd number of teeth */
+ {
+ double off = (180.0 / g->nteeth);
+ if (g->th > 0)
+ g->th += off;
+ else
+ g->th -= off;
+ }
+
+ /* ratios are cumulative for all gears in the train. */
+ g->ratio *= parent->ratio;
+ }
+
+
+ /* Place the gear relative to the parent.
+ */
+
+ if (! parent)
+ {
+ gear *rg = farthest_gear (mi, False);
+ double right = (rg ? rg->x + rg->r + rg->tooth_h : 0);
+ if (right < pp->layout_left) /* place off screen */
+ right = pp->layout_left;
+
+ g->x = right + g->r + g->tooth_h + (0.01 / gear_size);
+ g->y = 0;
+ g->z = 0;
+
+ if (debug_one_gear_p)
+ g->x = 0;
+ }
+ else if (coaxial_p)
+ {
+ double off = pp->plane_displacement;
+
+ g->x = parent->x;
+ g->y = parent->y;
+ g->z = parent->z + (g->r > parent->r /* small gear on top */
+ ? -off : off);
+
+ if (parent->r > g->r) /* mark which is top and which is bottom */
+ {
+ parent->coax_p = 1;
+ g->coax_p = 2;
+ parent->wobble = 0; /* looks bad when axle moves */
+ }
+ else
+ {
+ parent->coax_p = 2;
+ g->coax_p = 1;
+ g->wobble = 0;
+ }
+
+ g->coax_thickness = parent->thickness;
+ parent->coax_thickness = g->thickness;
+
+ /* Don't let the train get too close to or far from the screen.
+ If we're getting too close, give up on this gear.
+ (But getting very far away is fine.)
+ */
+ if (g->z >= off * 4 ||
+ g->z <= -off * 4)
+ {
+ if (verbose_p && debug_placement_p)
+ fprintf (stderr, "%s: placement: bad depth: %.2f\n",
+ progname, g->z);
+ pp->debug_position_failures++;
+ return False;
+ }
+ }
+ else /* position it somewhere next to the parent. */
+ {
+ double r_off = parent->r + g->r;
+ int angle;
+
+ if ((random() % 3) != 0)
+ angle = (random() % 240) - 120; /* mostly -120 to +120 degrees */
+ else
+ angle = (random() % 360) - 180; /* sometimes -180 to +180 degrees */
+
+ g->x = parent->x + (cos ((double) angle * (M_PI / 180)) * r_off);
+ g->y = parent->y + (sin ((double) angle * (M_PI / 180)) * r_off);
+ g->z = parent->z;
+
+ /* If the angle we picked would have positioned this gear
+ more than halfway off screen, that's no good. */
+ if (g->y > pp->vp_top ||
+ g->y < pp->vp_bottom)
+ {
+ if (verbose_p && debug_placement_p)
+ fprintf (stderr, "%s: placement: out of bounds: %s\n",
+ progname, (g->y > pp->vp_top ? "top" : "bottom"));
+ pp->debug_position_failures++;
+ return False;
+ }
+
+ /* avoid accidentally changing sign of "th" in the math below. */
+ g->th += (g->th > 0 ? 360 : -360);
+
+ /* Adjust the rotation of the gear so that its teeth line up with its
+ parent, based on the position of the gear and the current rotation
+ of the parent.
+ */
+ {
+ double p_c = 2 * M_PI * parent->r; /* circumference of parent */
+ double g_c = 2 * M_PI * g->r; /* circumference of g */
+
+ double p_t = p_c * (angle/360.0); /* distance travelled along
+ circumference of parent when
+ moving "angle" degrees along
+ parent. */
+ double g_rat = p_t / g_c; /* if travelling that distance
+ along circumference of g,
+ ratio of g's circumference
+ travelled. */
+ double g_th = 360.0 * g_rat; /* that ratio in degrees */
+
+ g->th += angle + g_th;
+ }
+ }
+
+ if (debug_one_gear_p)
+ {
+ compute_rpm (mi, g);
+ return True;
+ }
+
+ /* If the position we picked for this gear would cause it to already
+ be visible on the screen, give up. This can happen when the train
+ is growing backwards, and we don't want to see gears flash into
+ existence.
+ */
+ if (g->x - g->r - g->tooth_h < pp->render_right)
+ {
+ if (verbose_p && debug_placement_p)
+ fprintf (stderr, "%s: placement: out of bounds: left\n", progname);
+ pp->debug_position_failures++;
+ return False;
+ }
+
+ /* If the position we picked for this gear causes it to overlap
+ with any earlier gear in the train, give up.
+ */
+ {
+ int i;
+
+ for (i = pp->ngears-1; i >= 0; i--)
+ {
+ gear *og = pp->gears[i];
+
+ if (og == g) continue;
+ if (og == parent) continue;
+ if (g->z != og->z) continue; /* Ignore unless on same layer */
+
+ /* Collision detection without sqrt:
+ d = sqrt(a^2 + b^2) d^2 = a^2 + b^2
+ d < r1 + r2 d^2 < (r1 + r2)^2
+ */
+ if (((g->x - og->x) * (g->x - og->x) +
+ (g->y - og->y) * (g->y - og->y)) <
+ ((g->r + g->tooth_h + og->r + og->tooth_h) *
+ (g->r + g->tooth_h + og->r + og->tooth_h)))
+ {
+ if (verbose_p && debug_placement_p)
+ fprintf (stderr, "%s: placement: collision with %lu\n",
+ progname, og->id);
+ pp->debug_position_failures++;
+ return False;
+ }
+ }
+ }
+
+ compute_rpm (mi, g);
+
+
+ /* Make deeper gears be darker.
+ */
+ {
+ double depth = g->z / pp->plane_displacement;
+ double brightness = 1 + (depth / 6);
+ double limit = 0.4;
+ if (brightness < limit) brightness = limit;
+ if (brightness > 1/limit) brightness = 1/limit;
+ g->color[0] *= brightness;
+ g->color[1] *= brightness;
+ g->color[2] *= brightness;
+ g->color2[0] *= brightness;
+ g->color2[1] *= brightness;
+ g->color2[2] *= brightness;
+ }
+
+ /* If a single frame of animation would cause the gear to rotate by
+ more than 1/2 the size of a single tooth, then it won't look right:
+ the gear will appear to be turning at some lower harmonic of its
+ actual speed.
+ */
+ {
+ double ratio = g->ratio * spin_speed;
+ double blur_limit = 180.0 / g->nteeth;
+
+ if (ratio > blur_limit)
+ g->motion_blur_p = 1;
+
+ if (!coaxial_p)
+ {
+ /* ride until the wheels fall off... */
+ if (ratio > blur_limit * 0.7) g->wobble += (random() % 2);
+ if (ratio > blur_limit * 0.9) g->wobble += (random() % 2);
+ if (ratio > blur_limit * 1.1) g->wobble += (random() % 2);
+ if (ratio > blur_limit * 1.3) g->wobble += (random() % 2);
+ if (ratio > blur_limit * 1.5) g->wobble += (random() % 2);
+ if (ratio > blur_limit * 1.7) g->wobble += (random() % 2);
+ }
+ }
+
+ return True;
+}
+
+static void
+free_gear (gear *g)
+{
+ if (g->dlist)
+ glDeleteLists (g->dlist, 1);
+ free (g);
+}
+
+
+/* Make a new gear, place it next to its parent in the scene,
+ with its teeth meshed and the proper velocity. Returns the gear;
+ or 0 if it didn't work. (Call this a bunch of times until either
+ it works, or you decide it's probably not going to.)
+ */
+static gear *
+place_new_gear (ModeInfo *mi, gear *parent, Bool coaxial_p)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ int loop_count = 0;
+ gear *g = 0;
+
+ while (1)
+ {
+ loop_count++;
+ if (loop_count >= 100)
+ {
+ if (g)
+ free_gear (g);
+ g = 0;
+ break;
+ }
+
+ g = new_gear (mi, parent, coaxial_p);
+ if (!g) return 0; /* out of memory? */
+
+ if (place_gear (mi, g, parent, coaxial_p))
+ break;
+ }
+
+ if (! g) return 0;
+
+ /* We got a gear, and it is properly positioned.
+ Insert it in the scene.
+ */
+ if (pp->ngears + 2 >= pp->gears_size)
+ {
+ pp->gears_size += 100;
+ pp->gears = (gear **) realloc (pp->gears,
+ pp->gears_size * sizeof (*pp->gears));
+ if (! pp->gears)
+ {
+ fprintf (stderr, "%s: out of memory (%d gears)\n",
+ progname, pp->gears_size);
+ }
+ }
+
+ pp->gears[pp->ngears++] = g;
+ return g;
+}
+
+
+static void delete_gear (ModeInfo *mi, gear *g);
+
+static void
+push_gear (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ gear *g;
+ gear *parent = (pp->ngears <= 0 ? 0 : pp->gears[pp->ngears-1]);
+
+ Bool tried_coaxial_p = False;
+ Bool coaxial_p = False;
+ Bool last_ditch_coax_p = False;
+ int loop_count = 0;
+
+ pp->debug_size_failures = 0;
+ pp->debug_position_failures = 0;
+
+ AGAIN:
+ loop_count++;
+ if (loop_count > 100) abort(); /* we're doomed! */
+
+ g = 0;
+
+ /* If the gears are turning at LUDICROUS SPEED, unhook the train to
+ reset things to a sane velocity.
+
+ 10,000 RPM at 30 FPS = 5.5 rotations per frame.
+ 1,000 RPM at 30 FPS = 0.5 rotations per frame.
+ 600 RPM at 30 FPS = 3 frames per rotation.
+ 200 RPM at 30 FPS = 9 frames per rotation.
+ 100 RPM at 30 FPS = 18 frames per rotation.
+ 50 RPM at 30 FPS = 36 frames per rotation.
+ 10 RPM at 30 FPS = 3 sec per rotation.
+ 1 RPM at 30 FPS = 30 sec per rotation.
+ .5 RPM at 30 FPS = 1 min per rotation.
+ .1 RPM at 30 FPS = 5 min per rotation.
+ */
+ if (parent && parent->rpm > max_rpm)
+ {
+ if (verbose_p)
+ {
+ char buf[100];
+ rpm_string (parent->rpm, buf);
+ fprintf (stderr, "%s: ludicrous speed! %s\n\n", progname, buf);
+ }
+ parent = 0;
+ }
+
+ /* If the last N gears we've placed have all been motion-blurred, then
+ it's a safe guess that we've wandered off into the woods and aren't
+ coming back. Bail on this train.
+ */
+ if (pp->current_blur_length >= 10)
+ {
+ if (verbose_p)
+ fprintf (stderr, "%s: it's a blurpocalypse!\n\n", progname);
+ parent = 0;
+ }
+
+
+
+ /* Sometimes, try to make a coaxial gear.
+ */
+ if (parent && !parent->coax_p && (random() % 40) == 0)
+ {
+ tried_coaxial_p = True;
+ coaxial_p = True;
+ g = place_new_gear (mi, parent, coaxial_p);
+ }
+
+ /* Try to make a regular gear.
+ */
+ if (!g)
+ {
+ coaxial_p = False;
+ g = place_new_gear (mi, parent, coaxial_p);
+ }
+
+ /* If we couldn't make a regular gear, then try to make a coxial gear
+ (unless we already tried that.)
+ */
+ if (!g && !tried_coaxial_p && parent && !parent->coax_p)
+ {
+ tried_coaxial_p = True;
+ coaxial_p = True;
+ g = place_new_gear (mi, parent, coaxial_p);
+ if (g)
+ last_ditch_coax_p = True;
+ }
+
+ /* If we couldn't do that either, then the train has hit a dead end:
+ start a new train.
+ */
+ if (!g)
+ {
+ coaxial_p = False;
+ if (verbose_p)
+ fprintf (stderr, "%s: dead end!\n\n", progname);
+ parent = 0;
+ g = place_new_gear (mi, parent, coaxial_p);
+ }
+
+ if (! g)
+ {
+ /* Unable to make/place any gears at all!
+ This can happen if we've backed ourself into a corner very near
+ the top-right or bottom-right corner of the growth zone.
+ It's time to add a gear, but there's no room to add one!
+ In that case, let's just wipe all the gears that are in the
+ growth zone and try again.
+ */
+ int i;
+
+ if (verbose_p && debug_placement_p)
+ fprintf (stderr,
+ "%s: placement: resetting growth zone! "
+ "failed: %d size, %d pos\n",
+ progname,
+ pp->debug_size_failures, pp->debug_position_failures);
+ for (i = pp->ngears-1; i >= 0; i--)
+ {
+ gear *g = pp->gears[i];
+ if (g->x - g->r - g->tooth_h < pp->render_left)
+ delete_gear (mi, g);
+ }
+ goto AGAIN;
+ }
+
+ if (g->coax_p)
+ {
+ if (!parent) abort();
+ if (g->x != parent->x) abort();
+ if (g->y != parent->y) abort();
+ if (g->z == parent->z) abort();
+ if (g->r == parent->r) abort();
+ if (g->th != parent->th) abort();
+ if (g->ratio != parent->ratio) abort();
+ if (g->rpm != parent->rpm) abort();
+ }
+
+ if (verbose_p)
+ {
+ fprintf (stderr, "%s: %5lu ", progname, g->id);
+
+ fputc ((g->motion_blur_p ? '*' : ' '), stderr);
+ fputc (((g->coax_p && last_ditch_coax_p) ? '2' :
+ g->coax_p ? '1' : ' '),
+ stderr);
+
+ fprintf (stderr, " %2d%%",
+ (int) (g->r * 2 * 100 / pp->vp_height));
+ fprintf (stderr, " %2d teeth", (int) g->nteeth);
+ fprintf (stderr, " %3.0f rpm;", g->rpm);
+
+ {
+ char buf1[50], buf2[50], buf3[100];
+ *buf1 = 0; *buf2 = 0; *buf3 = 0;
+ if (pp->debug_size_failures)
+ sprintf (buf1, "%3d sz", pp->debug_size_failures);
+ if (pp->debug_position_failures)
+ sprintf (buf2, "%2d pos", pp->debug_position_failures);
+ if (*buf1 || *buf2)
+ sprintf (buf3, " tries: %-7s%s", buf1, buf2);
+ fprintf (stderr, "%-21s", buf3);
+ }
+
+ if (g->base_p) fprintf (stderr, " RESET %lu", pp->current_length);
+ fprintf (stderr, "\n");
+ }
+
+ if (g->base_p)
+ pp->current_length = 1;
+ else
+ pp->current_length++;
+
+ if (g->motion_blur_p)
+ pp->current_blur_length++;
+ else
+ pp->current_blur_length = 0;
+}
+
+
+
+/* Remove the given gear from the scene and free it.
+ */
+static void
+delete_gear (ModeInfo *mi, gear *g)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ int i;
+
+ for (i = 0; i < pp->ngears; i++) /* find this gear in the list */
+ if (pp->gears[i] == g) break;
+ if (pp->gears[i] != g) abort();
+
+ for (; i < pp->ngears-1; i++) /* pull later entries forward */
+ pp->gears[i] = pp->gears[i+1];
+ pp->gears[i] = 0;
+ pp->ngears--;
+ free_gear (g);
+}
+
+
+/* Update the position of each gear in the scene.
+ */
+static void
+scroll_gears (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ int i;
+
+ for (i = 0; i < pp->ngears; i++)
+ pp->gears[i]->x -= (scroll_speed * 0.002);
+
+ /* if the right edge of any gear is off screen to the left, delete it.
+ */
+ for (i = pp->ngears-1; i >= 0; i--)
+ {
+ gear *g = pp->gears[i];
+ if (g->x + g->r + g->tooth_h < pp->render_left)
+ delete_gear (mi, g);
+ }
+
+ /* if the right edge of the last-added gear is left of the right edge
+ of the layout area, add another gear.
+ */
+ i = 0;
+ while (1)
+ {
+ gear *g = (pp->ngears <= 0 ? 0 : pp->gears[pp->ngears-1]);
+ if (!g || g->x + g->r + g->tooth_h < pp->layout_right)
+ push_gear (mi);
+ else
+ break;
+ i++;
+ if (debug_one_gear_p) break;
+ }
+
+ /*
+ if (i > 1 && verbose_p)
+ fprintf (stderr, "%s: pushed %d gears\n", progname, i);
+ */
+}
+
+
+/* Update the rotation of each gear in the scene.
+ */
+static void
+spin_gears (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ int i;
+
+ for (i = 0; i < pp->ngears; i++)
+ {
+ gear *g = pp->gears[i];
+ double off = (g->ratio * spin_speed);
+
+ if (g->th > 0)
+ g->th += off;
+ else
+ g->th -= off;
+ }
+}
+
+
+/* Run the animation fast (without displaying anything) until the first
+ gear is just about to come on screen. This is to avoid a big delay
+ with a blank screen when -scroll is low.
+ */
+static void
+ffwd (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ if (debug_one_gear_p) return;
+ while (1)
+ {
+ gear *g = farthest_gear (mi, True);
+ if (g && g->x - g->r - g->tooth_h/2 <= pp->vp_right * 0.88)
+ break;
+ scroll_gears (mi);
+ }
+}
+
+
+
+/* Render one gear in the proper position, creating the gear's
+ display list first if necessary.
+ */
+static void
+draw_gear (ModeInfo *mi, int which)
+{
+ Bool wire_p = MI_IS_WIREFRAME(mi);
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ gear *g = pp->gears[which];
+ GLfloat th;
+
+ Bool visible_p = (g->x + g->r + g->tooth_h >= pp->render_left &&
+ g->x - g->r - g->tooth_h <= pp->render_right);
+
+ if (!visible_p && !debug_p)
+ return;
+
+ if (! g->dlist)
+ {
+ g->dlist = glGenLists (1);
+ if (! g->dlist)
+ {
+ /* I don't know how many display lists a GL implementation
+ is supposed to provide, but hopefully it's more than
+ "a few hundred", or we'll be in trouble...
+ */
+ check_gl_error ("glGenLists");
+ abort();
+ }
+
+ glNewList (g->dlist, GL_COMPILE);
+ g->polygons = draw_involute_gear (g, (wire_p && debug_p ? 2 : wire_p));
+ glEndList ();
+ }
+
+ glPushMatrix();
+
+ glTranslatef (g->x, g->y, g->z);
+
+ if (g->motion_blur_p && !pp->button_down_p)
+ {
+ /* If we're in motion-blur mode, then draw the gear so that each
+ frame rotates it by exactly one half tooth-width, so that it
+ looks flickery around the edges. But, revert to the normal
+ way when the mouse button is down lest the user see overlapping
+ polygons.
+ */
+ th = g->motion_blur_p * 180.0 / g->nteeth * (g->th > 0 ? 1 : -1);
+ g->motion_blur_p++;
+ }
+ else
+ th = g->th;
+
+ glRotatef (th, 0, 0, 1);
+
+ glPushName (g->id);
+
+ if (! visible_p)
+ mi->polygon_count += draw_involute_schematic (g, wire_p);
+ else
+ {
+ glCallList (g->dlist);
+ mi->polygon_count += g->polygons;
+ }
+
+ glPopName();
+ glPopMatrix();
+}
+
+
+/* Render all gears.
+ */
+static void
+draw_gears (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ Bool wire_p = MI_IS_WIREFRAME(mi);
+ int i;
+
+ glColor4f (1, 1, 0.8, 1);
+
+ glInitNames();
+
+ for (i = 0; i < pp->ngears; i++)
+ draw_gear (mi, i);
+
+ /* draw a line connecting gears that are, uh, geared. */
+ if (debug_p)
+ {
+ static const GLfloat color[4] = {1.0, 0.0, 0.0, 1.0};
+ GLfloat off = 0.1;
+ GLfloat ox=0, oy=0, oz=0;
+
+ if (!wire_p) glDisable(GL_LIGHTING);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glColor3f (color[0], color[1], color[2]);
+
+ for (i = 0; i < pp->ngears; i++)
+ {
+ gear *g = pp->gears[i];
+ glBegin(GL_LINE_STRIP);
+ glVertex3f (g->x, g->y, g->z - off);
+ glVertex3f (g->x, g->y, g->z + off);
+ if (i > 0 && !g->base_p)
+ glVertex3f (ox, oy, oz + off);
+ glEnd();
+ ox = g->x;
+ oy = g->y;
+ oz = g->z;
+ }
+ if (!wire_p) glEnable(GL_LIGHTING);
+ }
+}
+
+
+/* Mouse hit detection
+ */
+static void
+find_mouse_gear (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+
+# ifndef HAVE_JWZGLES
+
+ int screen_width = MI_WIDTH (mi);
+ int screen_height = MI_HEIGHT (mi);
+ GLfloat h = (GLfloat) screen_height / (GLfloat) screen_width;
+ int x, y;
+ int hits;
+
+ pp->mouse_gear_id = 0;
+
+ /* Poll mouse position */
+ {
+ Window r, c;
+ int rx, ry;
+ unsigned int m;
+ XQueryPointer (MI_DISPLAY (mi), MI_WINDOW (mi),
+ &r, &c, &rx, &ry, &x, &y, &m);
+ }
+
+ if (x < 0 || y < 0 || x > screen_width || y > screen_height)
+ return; /* out of window */
+
+ /* Run OpenGL hit detector */
+ {
+ GLint vp[4];
+ GLuint selbuf[512];
+
+ glSelectBuffer (sizeof(selbuf), selbuf); /* set up "select" mode */
+ glRenderMode (GL_SELECT);
+ glMatrixMode (GL_PROJECTION);
+ glPushMatrix();
+ glLoadIdentity();
+ glGetIntegerv (GL_VIEWPORT, vp); /* save old vp */
+ gluPickMatrix (x, vp[3]-y, 5, 5, vp);
+ gluPerspective (30.0, 1/h, 1.0, 100.0); /* must match reshape_pinion() */
+ glMatrixMode (GL_MODELVIEW);
+
+ draw_gears (mi); /* render into "select" buffer */
+
+ glMatrixMode (GL_PROJECTION); /* restore old vp */
+ glPopMatrix ();
+ glMatrixMode (GL_MODELVIEW);
+ glFlush();
+ hits = glRenderMode (GL_RENDER); /* done selecting */
+
+ if (hits > 0)
+ {
+ int i;
+ GLuint name_count = 0;
+ GLuint *p = (GLuint *) selbuf;
+ GLuint *pnames = 0;
+ GLuint min_z = ~0;
+
+ for (i = 0; i < hits; i++)
+ {
+ int names = *p++;
+ if (*p < min_z) /* find match closest to screen */
+ {
+ name_count = names;
+ min_z = *p;
+ pnames = p+2;
+ }
+ p += names+2;
+ }
+
+ if (name_count > 0) /* take first hit */
+ pp->mouse_gear_id = pnames[0];
+ }
+ }
+
+#else /* HAVE_JWZGLES */
+ /* #### not yet implemented */
+ pp->mouse_gear_id = (pp->ngears > 1 ? pp->gears[1]->id : 0);
+ return;
+#endif /* HAVE_JWZGLES */
+
+
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_pinion (ModeInfo *mi, int width, int height)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ {
+ GLfloat render_width, layout_width;
+ pp->vp_height = 1.0;
+ pp->vp_width = 1/h;
+
+ pp->vp_left = -pp->vp_width/2;
+ pp->vp_right = pp->vp_width/2;
+ pp->vp_top = pp->vp_height/2;
+ pp->vp_bottom = -pp->vp_height/2;
+
+ render_width = pp->vp_width * 2;
+ layout_width = pp->vp_width * 0.8 * gear_size;
+
+ pp->render_left = -render_width/2;
+ pp->render_right = render_width/2;
+
+ pp->layout_left = pp->render_right;
+ pp->layout_right = pp->layout_left + layout_width;
+ }
+}
+
+
+ENTRYPOINT Bool
+pinion_handle_event (ModeInfo *mi, XEvent *event)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, pp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &pp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' && debug_one_gear_p && pp->ngears)
+ {
+ delete_gear (mi, pp->gears[0]);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_pinion (ModeInfo *mi)
+{
+ pinion_configuration *pp;
+
+ MI_INIT (mi, pps);
+
+ pp = &pps[MI_SCREEN(mi)];
+
+ pp->glx_context = init_GL(mi);
+
+ load_fonts (mi);
+ reshape_pinion (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
+ pp->ngears = 0;
+ pp->gears_size = 0;
+ pp->gears = 0;
+
+ pp->plane_displacement = gear_size * 0.1;
+
+ pp->trackball = gltrackball_init (False);
+
+ ffwd (mi);
+}
+
+
+ENTRYPOINT void
+draw_pinion (ModeInfo *mi)
+{
+ pinion_configuration *pp = &pps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ Bool wire_p = MI_IS_WIREFRAME(mi);
+
+ if (!pp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(pp->glx_context));
+
+ glPushMatrix();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ if (!wire_p)
+ {
+ GLfloat pos[4] = {-3.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = { 0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = { 1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = { 1.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ if (!pp->button_down_p)
+ {
+ if (!debug_one_gear_p || pp->ngears == 0)
+ scroll_gears (mi);
+ spin_gears (mi);
+ }
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ {
+ gltrackball_rotate (pp->trackball);
+ mi->polygon_count = 0;
+
+ glScalef (16, 16, 16); /* map vp_width/height to the screen */
+
+ if (debug_one_gear_p) /* zoom in */
+ glScalef (3, 3, 3);
+ else if (debug_p) /* show the "visible" and "layout" areas */
+ {
+ GLfloat ow = pp->layout_right - pp->render_left;
+ GLfloat rw = pp->render_right - pp->render_left;
+ GLfloat s = (pp->vp_width / ow) * 0.85;
+ glScalef (s, s, s);
+ glTranslatef (-(ow - rw) / 2, 0, 0);
+ }
+ else
+ {
+ GLfloat s = 1.2;
+ glScalef (s, s, s); /* zoom in a little more */
+ glRotatef (-35, 1, 0, 0); /* tilt back */
+ glRotatef ( 8, 0, 1, 0); /* tilt left */
+ glTranslatef (0.02, 0.1, 0); /* pan up */
+ }
+
+ draw_gears (mi);
+
+ if (debug_p)
+ {
+ if (!wire_p) glDisable(GL_LIGHTING);
+ glColor3f (0.6, 0, 0);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f (pp->render_left, pp->vp_top, 0);
+ glVertex3f (pp->render_right, pp->vp_top, 0);
+ glVertex3f (pp->render_right, pp->vp_bottom, 0);
+ glVertex3f (pp->render_left, pp->vp_bottom, 0);
+ glEnd();
+ glColor3f (0.4, 0, 0);
+ glBegin(GL_LINES);
+ glVertex3f (pp->vp_left, pp->vp_top, 0);
+ glVertex3f (pp->vp_left, pp->vp_bottom, 0);
+ glVertex3f (pp->vp_right, pp->vp_top, 0);
+ glVertex3f (pp->vp_right, pp->vp_bottom, 0);
+ glEnd();
+ glColor3f (0, 0.4, 0);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f (pp->layout_left, pp->vp_top, 0);
+ glVertex3f (pp->layout_right, pp->vp_top, 0);
+ glVertex3f (pp->layout_right, pp->vp_bottom, 0);
+ glVertex3f (pp->layout_left, pp->vp_bottom, 0);
+ glEnd();
+ if (!wire_p) glEnable(GL_LIGHTING);
+ }
+
+ if (pp->draw_tick++ > 10) /* only do this every N frames */
+ {
+ pp->draw_tick = 0;
+ find_mouse_gear (mi);
+ }
+ }
+ glPopMatrix ();
+
+ draw_label (mi);
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Pinion", pinion)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/pinion.man b/hacks/glx/pinion.man
new file mode 100644
index 0000000..3ae6eff
--- /dev/null
+++ b/hacks/glx/pinion.man
@@ -0,0 +1,82 @@
+.TH XScreenSaver 1 "30-Oct-99" "X Version 11"
+.SH NAME
+pinion - draws a scrolling sequence of interconnected gears
+.SH SYNOPSIS
+.B pinion
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fIusecs\fP]
+[\-scroll \fIratio\fP]
+[\-spin \fIratio\fP]
+[\-size \fIratio\fP]
+[\-max-rpm \fIint\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIpinion\fP program draws an interconnected set of gears moving
+across the screen.
+.SH OPTIONS
+.I pinion
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between frames of the animation, in microseconds: default 15000.
+.TP 8
+.B \-spin \fIratio\fP
+How fast the gears should spin; default 1.0. 2.0 means twice as fast,
+0.5 means half as fast.
+.TP 8
+.B \-scroll \fIratio\fP
+How fast the gears should scroll past the screen; default 1.0.
+2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-size \fIratio\fP
+How big the gears should be, on average; default 1.0.
+2.0 means twice as large, 0.5 means half as large.
+.TP 8
+.B \-max\-rpm \fIinteger\fP
+If any gear exceeds the maximum RPM, the current gear train is broken there,
+and we start a new train. Default: 900 RPM. (At 30 FPS, that's about half
+a rotation per frame.)
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR gears (MANSUFFIX),
+.BR xscreensaver (1),
+.BR X (1)
+.SH COPYRIGHT
+Copyright \(co 2004 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>, 12-Dec-2004.
diff --git a/hacks/glx/pipeobjs.c b/hacks/glx/pipeobjs.c
new file mode 100644
index 0000000..8874a04
--- /dev/null
+++ b/hacks/glx/pipeobjs.c
@@ -0,0 +1,3262 @@
+#if 0
+static const char sccsid[] = "@(#)pipeobjs.c 4.04 97/07/28 xlockmore";
+#endif
+
+/*-
+ * Points, polygons, and normal vectors to render objects for pipes.
+ *
+ * Generated by lw2ogl.
+ */
+
+#ifndef STANDALONE
+#include "xlock.h"
+#endif
+
+#ifdef USE_GL
+
+#include "buildlwo.h"
+
+static const GLfloat BigValve_PNTS[] =
+{
+ 0.756788, 0.614672, 0,
+ 0.779498, 0.599497, 0,
+ 0.794672, 0.576788, 0,
+ 0.8, 0.55, 0,
+ 0.794672, 0.523212, 0,
+ 0.779498, 0.500503, 0,
+ 0.756788, 0.485328, 0,
+ 0.73, 0.48, 0,
+ 0.703212, 0.485328, 0,
+ 0.680503, 0.500503, 0,
+ 0.665328, 0.523212, 0,
+ 0.66, 0.55, 0,
+ 0.665328, 0.576788, 0,
+ 0.680503, 0.599497, 0,
+ 0.703212, 0.614672, 0,
+ 0.73, 0.62, 0,
+ 0.756788, 0.602861, 0.119916,
+ 0.779498, 0.587978, 0.116956,
+ 0.794672, 0.565705, 0.112526,
+ 0.8, 0.539432, 0.1073,
+ 0.794672, 0.513159, 0.102074,
+ 0.779498, 0.490886, 0.097643,
+ 0.756788, 0.476003, 0.094683,
+ 0.73, 0.470777, 0.093643,
+ 0.703212, 0.476003, 0.094683,
+ 0.680503, 0.490886, 0.097643,
+ 0.665328, 0.513159, 0.102074,
+ 0.66, 0.539432, 0.1073,
+ 0.665328, 0.565705, 0.112526,
+ 0.680503, 0.587978, 0.116956,
+ 0.703212, 0.602861, 0.119916,
+ 0.73, 0.608087, 0.120956,
+ 0.756788, 0.567882, 0.235225,
+ 0.779498, 0.553863, 0.229418,
+ 0.794672, 0.532882, 0.220727,
+ 0.8, 0.508134, 0.210476,
+ 0.794672, 0.483385, 0.200225,
+ 0.779498, 0.462404, 0.191534,
+ 0.756788, 0.448385, 0.185727,
+ 0.73, 0.443462, 0.183688,
+ 0.703212, 0.448385, 0.185727,
+ 0.680503, 0.462404, 0.191534,
+ 0.665328, 0.483385, 0.200225,
+ 0.66, 0.508134, 0.210476,
+ 0.665328, 0.532882, 0.220727,
+ 0.680503, 0.553863, 0.229418,
+ 0.703212, 0.567882, 0.235225,
+ 0.73, 0.572805, 0.237264,
+ 0.756788, 0.511081, 0.341493,
+ 0.779498, 0.498464, 0.333063,
+ 0.794672, 0.479582, 0.320446,
+ 0.8, 0.457308, 0.305564,
+ 0.794672, 0.435035, 0.290681,
+ 0.779498, 0.416153, 0.278064,
+ 0.756788, 0.403536, 0.269634,
+ 0.73, 0.399105, 0.266674,
+ 0.703212, 0.403536, 0.269634,
+ 0.680503, 0.416153, 0.278064,
+ 0.665328, 0.435035, 0.290681,
+ 0.66, 0.457308, 0.305564,
+ 0.665328, 0.479582, 0.320446,
+ 0.680503, 0.498464, 0.333063,
+ 0.703212, 0.511081, 0.341493,
+ 0.73, 0.515511, 0.344454,
+ 0.756788, 0.434638, 0.434638,
+ 0.779498, 0.423909, 0.423909,
+ 0.794672, 0.407851, 0.407851,
+ 0.8, 0.388909, 0.388909,
+ 0.794672, 0.369967, 0.369967,
+ 0.779498, 0.353909, 0.353909,
+ 0.756788, 0.343179, 0.343179,
+ 0.73, 0.339411, 0.339411,
+ 0.703212, 0.343179, 0.343179,
+ 0.680503, 0.353909, 0.353909,
+ 0.665328, 0.369967, 0.369967,
+ 0.66, 0.388909, 0.388909,
+ 0.665328, 0.407851, 0.407851,
+ 0.680503, 0.423909, 0.423909,
+ 0.703212, 0.434638, 0.434638,
+ 0.73, 0.438406, 0.438406,
+ 0.756788, 0.341493, 0.511081,
+ 0.779498, 0.333063, 0.498464,
+ 0.794672, 0.320446, 0.479582,
+ 0.8, 0.305564, 0.457308,
+ 0.794672, 0.290681, 0.435035,
+ 0.779498, 0.278064, 0.416153,
+ 0.756788, 0.269634, 0.403536,
+ 0.73, 0.266674, 0.399105,
+ 0.703212, 0.269634, 0.403536,
+ 0.680503, 0.278064, 0.416153,
+ 0.665328, 0.290681, 0.435035,
+ 0.66, 0.305564, 0.457308,
+ 0.665328, 0.320446, 0.479582,
+ 0.680503, 0.333063, 0.498464,
+ 0.703212, 0.341493, 0.511081,
+ 0.73, 0.344454, 0.515511,
+ 0.756788, 0.235225, 0.567882,
+ 0.779498, 0.229418, 0.553863,
+ 0.794672, 0.220727, 0.532882,
+ 0.8, 0.210476, 0.508134,
+ 0.794672, 0.200225, 0.483385,
+ 0.779498, 0.191534, 0.462404,
+ 0.756788, 0.185727, 0.448385,
+ 0.73, 0.183688, 0.443462,
+ 0.703212, 0.185727, 0.448385,
+ 0.680503, 0.191534, 0.462404,
+ 0.665328, 0.200225, 0.483385,
+ 0.66, 0.210476, 0.508134,
+ 0.665328, 0.220727, 0.532882,
+ 0.680503, 0.229418, 0.553863,
+ 0.703212, 0.235225, 0.567882,
+ 0.73, 0.237264, 0.572805,
+ 0.756788, 0.119916, 0.602861,
+ 0.779498, 0.116956, 0.587978,
+ 0.794672, 0.112526, 0.565705,
+ 0.8, 0.1073, 0.539432,
+ 0.794672, 0.102074, 0.513159,
+ 0.779498, 0.097643, 0.490886,
+ 0.756788, 0.094683, 0.476003,
+ 0.73, 0.093643, 0.470777,
+ 0.703212, 0.094683, 0.476003,
+ 0.680503, 0.097643, 0.490886,
+ 0.665328, 0.102074, 0.513159,
+ 0.66, 0.1073, 0.539432,
+ 0.665328, 0.112526, 0.565705,
+ 0.680503, 0.116956, 0.587978,
+ 0.703212, 0.119916, 0.602861,
+ 0.73, 0.120956, 0.608087,
+ 0.756788, 0, 0.614672,
+ 0.779498, 0, 0.599497,
+ 0.794672, 0, 0.576788,
+ 0.8, 0, 0.55,
+ 0.794672, 0, 0.523212,
+ 0.779498, 0, 0.500503,
+ 0.756788, 0, 0.485328,
+ 0.73, 0, 0.48,
+ 0.703212, 0, 0.485328,
+ 0.680503, 0, 0.500503,
+ 0.665328, 0, 0.523212,
+ 0.66, 0, 0.55,
+ 0.665328, 0, 0.576788,
+ 0.680503, 0, 0.599497,
+ 0.703212, 0, 0.614672,
+ 0.73, 0, 0.62,
+ 0.756788, -0.119916, 0.602861,
+ 0.779498, -0.116956, 0.587978,
+ 0.794672, -0.112526, 0.565705,
+ 0.8, -0.1073, 0.539432,
+ 0.794672, -0.102074, 0.513159,
+ 0.779498, -0.097643, 0.490886,
+ 0.756788, -0.094683, 0.476003,
+ 0.73, -0.093643, 0.470777,
+ 0.703212, -0.094683, 0.476003,
+ 0.680503, -0.097643, 0.490886,
+ 0.665328, -0.102074, 0.513159,
+ 0.66, -0.1073, 0.539432,
+ 0.665328, -0.112526, 0.565705,
+ 0.680503, -0.116956, 0.587978,
+ 0.703212, -0.119916, 0.602861,
+ 0.73, -0.120956, 0.608087,
+ 0.756788, -0.235225, 0.567882,
+ 0.779498, -0.229418, 0.553863,
+ 0.794672, -0.220727, 0.532882,
+ 0.8, -0.210476, 0.508134,
+ 0.794672, -0.200225, 0.483385,
+ 0.779498, -0.191534, 0.462404,
+ 0.756788, -0.185727, 0.448385,
+ 0.73, -0.183688, 0.443462,
+ 0.703212, -0.185727, 0.448385,
+ 0.680503, -0.191534, 0.462404,
+ 0.665328, -0.200225, 0.483385,
+ 0.66, -0.210476, 0.508134,
+ 0.665328, -0.220727, 0.532882,
+ 0.680503, -0.229418, 0.553863,
+ 0.703212, -0.235225, 0.567882,
+ 0.73, -0.237264, 0.572805,
+ 0.756788, -0.341493, 0.511081,
+ 0.779498, -0.333063, 0.498464,
+ 0.794672, -0.320446, 0.479582,
+ 0.8, -0.305564, 0.457308,
+ 0.794672, -0.290681, 0.435035,
+ 0.779498, -0.278064, 0.416153,
+ 0.756788, -0.269634, 0.403536,
+ 0.73, -0.266674, 0.399105,
+ 0.703212, -0.269634, 0.403536,
+ 0.680503, -0.278064, 0.416153,
+ 0.665328, -0.290681, 0.435035,
+ 0.66, -0.305564, 0.457308,
+ 0.665328, -0.320446, 0.479582,
+ 0.680503, -0.333063, 0.498464,
+ 0.703212, -0.341493, 0.511081,
+ 0.73, -0.344454, 0.515511,
+ 0.756788, -0.434638, 0.434638,
+ 0.779498, -0.423909, 0.423909,
+ 0.794672, -0.407851, 0.407851,
+ 0.8, -0.388909, 0.388909,
+ 0.794672, -0.369967, 0.369967,
+ 0.779498, -0.353909, 0.353909,
+ 0.756788, -0.343179, 0.343179,
+ 0.73, -0.339411, 0.339411,
+ 0.703212, -0.343179, 0.343179,
+ 0.680503, -0.353909, 0.353909,
+ 0.665328, -0.369967, 0.369967,
+ 0.66, -0.388909, 0.388909,
+ 0.665328, -0.407851, 0.407851,
+ 0.680503, -0.423909, 0.423909,
+ 0.703212, -0.434638, 0.434638,
+ 0.73, -0.438406, 0.438406,
+ 0.756788, -0.511081, 0.341493,
+ 0.779498, -0.498464, 0.333063,
+ 0.794672, -0.479582, 0.320446,
+ 0.8, -0.457308, 0.305564,
+ 0.794672, -0.435035, 0.290681,
+ 0.779498, -0.416153, 0.278064,
+ 0.756788, -0.403536, 0.269634,
+ 0.73, -0.399105, 0.266674,
+ 0.703212, -0.403536, 0.269634,
+ 0.680503, -0.416153, 0.278064,
+ 0.665328, -0.435035, 0.290681,
+ 0.66, -0.457308, 0.305564,
+ 0.665328, -0.479582, 0.320446,
+ 0.680503, -0.498464, 0.333063,
+ 0.703212, -0.511081, 0.341493,
+ 0.73, -0.515511, 0.344454,
+ 0.756788, -0.567882, 0.235225,
+ 0.779498, -0.553863, 0.229418,
+ 0.794672, -0.532882, 0.220727,
+ 0.8, -0.508134, 0.210476,
+ 0.794672, -0.483385, 0.200225,
+ 0.779498, -0.462404, 0.191534,
+ 0.756788, -0.448385, 0.185727,
+ 0.73, -0.443462, 0.183688,
+ 0.703212, -0.448385, 0.185727,
+ 0.680503, -0.462404, 0.191534,
+ 0.665328, -0.483385, 0.200225,
+ 0.66, -0.508134, 0.210476,
+ 0.665328, -0.532882, 0.220727,
+ 0.680503, -0.553863, 0.229418,
+ 0.703212, -0.567882, 0.235225,
+ 0.73, -0.572805, 0.237264,
+ 0.756788, -0.602861, 0.119916,
+ 0.779498, -0.587978, 0.116956,
+ 0.794672, -0.565705, 0.112526,
+ 0.8, -0.539432, 0.1073,
+ 0.794672, -0.513159, 0.102074,
+ 0.779498, -0.490886, 0.097643,
+ 0.756788, -0.476003, 0.094683,
+ 0.73, -0.470777, 0.093643,
+ 0.703212, -0.476003, 0.094683,
+ 0.680503, -0.490886, 0.097643,
+ 0.665328, -0.513159, 0.102074,
+ 0.66, -0.539432, 0.1073,
+ 0.665328, -0.565705, 0.112526,
+ 0.680503, -0.587978, 0.116956,
+ 0.703212, -0.602861, 0.119916,
+ 0.73, -0.608087, 0.120956,
+ 0.756788, -0.614672, 0,
+ 0.779498, -0.599497, 0,
+ 0.794672, -0.576788, 0,
+ 0.8, -0.55, 0,
+ 0.794672, -0.523212, 0,
+ 0.779498, -0.500503, 0,
+ 0.756788, -0.485328, 0,
+ 0.73, -0.48, 0,
+ 0.703212, -0.485328, 0,
+ 0.680503, -0.500503, 0,
+ 0.665328, -0.523212, 0,
+ 0.66, -0.55, 0,
+ 0.665328, -0.576788, 0,
+ 0.680503, -0.599497, 0,
+ 0.703212, -0.614672, 0,
+ 0.73, -0.62, 0,
+ 0.756788, -0.602861, -0.119916,
+ 0.779498, -0.587978, -0.116956,
+ 0.794672, -0.565705, -0.112526,
+ 0.8, -0.539432, -0.1073,
+ 0.794672, -0.513159, -0.102074,
+ 0.779498, -0.490886, -0.097643,
+ 0.756788, -0.476003, -0.094683,
+ 0.73, -0.470777, -0.093643,
+ 0.703212, -0.476003, -0.094683,
+ 0.680503, -0.490886, -0.097643,
+ 0.665328, -0.513159, -0.102074,
+ 0.66, -0.539432, -0.1073,
+ 0.665328, -0.565705, -0.112526,
+ 0.680503, -0.587978, -0.116956,
+ 0.703212, -0.602861, -0.119916,
+ 0.73, -0.608087, -0.120956,
+ 0.756788, -0.567882, -0.235225,
+ 0.779498, -0.553863, -0.229418,
+ 0.794672, -0.532882, -0.220727,
+ 0.8, -0.508134, -0.210476,
+ 0.794672, -0.483385, -0.200225,
+ 0.779498, -0.462404, -0.191534,
+ 0.756788, -0.448385, -0.185727,
+ 0.73, -0.443462, -0.183688,
+ 0.703212, -0.448385, -0.185727,
+ 0.680503, -0.462404, -0.191534,
+ 0.665328, -0.483385, -0.200225,
+ 0.66, -0.508134, -0.210476,
+ 0.665328, -0.532882, -0.220727,
+ 0.680503, -0.553863, -0.229418,
+ 0.703212, -0.567882, -0.235225,
+ 0.73, -0.572805, -0.237264,
+ 0.756788, -0.511081, -0.341493,
+ 0.779498, -0.498464, -0.333063,
+ 0.794672, -0.479582, -0.320446,
+ 0.8, -0.457308, -0.305564,
+ 0.794672, -0.435035, -0.290681,
+ 0.779498, -0.416153, -0.278064,
+ 0.756788, -0.403536, -0.269634,
+ 0.73, -0.399105, -0.266674,
+ 0.703212, -0.403536, -0.269634,
+ 0.680503, -0.416153, -0.278064,
+ 0.665328, -0.435035, -0.290681,
+ 0.66, -0.457308, -0.305564,
+ 0.665328, -0.479582, -0.320446,
+ 0.680503, -0.498464, -0.333063,
+ 0.703212, -0.511081, -0.341493,
+ 0.73, -0.515511, -0.344454,
+ 0.756788, -0.434638, -0.434638,
+ 0.779498, -0.423909, -0.423909,
+ 0.794672, -0.407851, -0.407851,
+ 0.8, -0.388909, -0.388909,
+ 0.794672, -0.369967, -0.369967,
+ 0.779498, -0.353909, -0.353909,
+ 0.756788, -0.343179, -0.343179,
+ 0.73, -0.339411, -0.339411,
+ 0.703212, -0.343179, -0.343179,
+ 0.680503, -0.353909, -0.353909,
+ 0.665328, -0.369967, -0.369967,
+ 0.66, -0.388909, -0.388909,
+ 0.665328, -0.407851, -0.407851,
+ 0.680503, -0.423909, -0.423909,
+ 0.703212, -0.434638, -0.434638,
+ 0.73, -0.438406, -0.438406,
+ 0.756788, -0.341493, -0.511081,
+ 0.779498, -0.333063, -0.498464,
+ 0.794672, -0.320446, -0.479582,
+ 0.8, -0.305564, -0.457308,
+ 0.794672, -0.290681, -0.435035,
+ 0.779498, -0.278064, -0.416153,
+ 0.756788, -0.269634, -0.403536,
+ 0.73, -0.266674, -0.399105,
+ 0.703212, -0.269634, -0.403536,
+ 0.680503, -0.278064, -0.416153,
+ 0.665328, -0.290681, -0.435035,
+ 0.66, -0.305564, -0.457308,
+ 0.665328, -0.320446, -0.479582,
+ 0.680503, -0.333063, -0.498464,
+ 0.703212, -0.341493, -0.511081,
+ 0.73, -0.344454, -0.515511,
+ 0.756788, -0.235225, -0.567882,
+ 0.779498, -0.229418, -0.553863,
+ 0.794672, -0.220727, -0.532882,
+ 0.8, -0.210476, -0.508134,
+ 0.794672, -0.200225, -0.483385,
+ 0.779498, -0.191534, -0.462404,
+ 0.756788, -0.185727, -0.448385,
+ 0.73, -0.183688, -0.443462,
+ 0.703212, -0.185727, -0.448385,
+ 0.680503, -0.191534, -0.462404,
+ 0.665328, -0.200225, -0.483385,
+ 0.66, -0.210476, -0.508134,
+ 0.665328, -0.220727, -0.532882,
+ 0.680503, -0.229418, -0.553863,
+ 0.703212, -0.235225, -0.567882,
+ 0.73, -0.237264, -0.572805,
+ 0.756788, -0.119916, -0.602861,
+ 0.779498, -0.116956, -0.587978,
+ 0.794672, -0.112526, -0.565705,
+ 0.8, -0.1073, -0.539432,
+ 0.794672, -0.102074, -0.513159,
+ 0.779498, -0.097643, -0.490885,
+ 0.756788, -0.094683, -0.476003,
+ 0.73, -0.093643, -0.470777,
+ 0.703212, -0.094683, -0.476003,
+ 0.680503, -0.097643, -0.490885,
+ 0.665328, -0.102074, -0.513159,
+ 0.66, -0.1073, -0.539432,
+ 0.665328, -0.112526, -0.565705,
+ 0.680503, -0.116956, -0.587978,
+ 0.703212, -0.119916, -0.602861,
+ 0.73, -0.120956, -0.608087,
+ 0.756788, 0, -0.614672,
+ 0.779498, 0, -0.599497,
+ 0.794672, 0, -0.576788,
+ 0.8, 0, -0.55,
+ 0.794672, 0, -0.523212,
+ 0.779498, 0, -0.500503,
+ 0.756788, 0, -0.485328,
+ 0.73, 0, -0.48,
+ 0.703212, 0, -0.485328,
+ 0.680503, 0, -0.500503,
+ 0.665328, 0, -0.523212,
+ 0.66, 0, -0.55,
+ 0.665328, 0, -0.576788,
+ 0.680503, 0, -0.599497,
+ 0.703212, 0, -0.614672,
+ 0.73, 0, -0.62,
+ 0.756788, 0.119916, -0.602861,
+ 0.779498, 0.116956, -0.587978,
+ 0.794672, 0.112526, -0.565705,
+ 0.8, 0.1073, -0.539432,
+ 0.794672, 0.102074, -0.513159,
+ 0.779498, 0.097643, -0.490886,
+ 0.756788, 0.094683, -0.476003,
+ 0.73, 0.093643, -0.470777,
+ 0.703212, 0.094683, -0.476003,
+ 0.680503, 0.097643, -0.490886,
+ 0.665328, 0.102074, -0.513159,
+ 0.66, 0.1073, -0.539432,
+ 0.665328, 0.112526, -0.565705,
+ 0.680503, 0.116956, -0.587978,
+ 0.703212, 0.119916, -0.602861,
+ 0.73, 0.120956, -0.608087,
+ 0.756788, 0.235225, -0.567882,
+ 0.779498, 0.229418, -0.553863,
+ 0.794672, 0.220727, -0.532882,
+ 0.8, 0.210476, -0.508134,
+ 0.794672, 0.200225, -0.483385,
+ 0.779498, 0.191534, -0.462404,
+ 0.756788, 0.185727, -0.448385,
+ 0.73, 0.183688, -0.443462,
+ 0.703212, 0.185727, -0.448385,
+ 0.680503, 0.191534, -0.462404,
+ 0.665328, 0.200225, -0.483385,
+ 0.66, 0.210476, -0.508134,
+ 0.665328, 0.220727, -0.532882,
+ 0.680503, 0.229418, -0.553863,
+ 0.703212, 0.235225, -0.567882,
+ 0.73, 0.237264, -0.572805,
+ 0.756788, 0.341493, -0.511081,
+ 0.779498, 0.333063, -0.498464,
+ 0.794672, 0.320446, -0.479582,
+ 0.8, 0.305564, -0.457308,
+ 0.794672, 0.290681, -0.435035,
+ 0.779498, 0.278064, -0.416153,
+ 0.756788, 0.269634, -0.403536,
+ 0.73, 0.266674, -0.399105,
+ 0.703212, 0.269634, -0.403536,
+ 0.680503, 0.278064, -0.416153,
+ 0.665328, 0.290681, -0.435035,
+ 0.66, 0.305564, -0.457308,
+ 0.665328, 0.320446, -0.479582,
+ 0.680503, 0.333063, -0.498464,
+ 0.703212, 0.341493, -0.511081,
+ 0.73, 0.344454, -0.515511,
+ 0.756788, 0.434638, -0.434638,
+ 0.779498, 0.423909, -0.423909,
+ 0.794672, 0.407851, -0.407851,
+ 0.8, 0.388909, -0.388909,
+ 0.794672, 0.369967, -0.369967,
+ 0.779498, 0.353909, -0.353909,
+ 0.756788, 0.343179, -0.343179,
+ 0.73, 0.339411, -0.339411,
+ 0.703212, 0.343179, -0.343179,
+ 0.680503, 0.353909, -0.353909,
+ 0.665328, 0.369967, -0.369967,
+ 0.66, 0.388909, -0.388909,
+ 0.665328, 0.407851, -0.407851,
+ 0.680503, 0.423909, -0.423909,
+ 0.703212, 0.434638, -0.434638,
+ 0.73, 0.438406, -0.438406,
+ 0.756788, 0.511081, -0.341493,
+ 0.779498, 0.498464, -0.333063,
+ 0.794672, 0.479582, -0.320446,
+ 0.8, 0.457308, -0.305564,
+ 0.794672, 0.435035, -0.290681,
+ 0.779498, 0.416153, -0.278064,
+ 0.756788, 0.403536, -0.269634,
+ 0.73, 0.399105, -0.266674,
+ 0.703212, 0.403536, -0.269634,
+ 0.680503, 0.416153, -0.278064,
+ 0.665328, 0.435035, -0.290681,
+ 0.66, 0.457308, -0.305564,
+ 0.665328, 0.479582, -0.320446,
+ 0.680503, 0.498464, -0.333063,
+ 0.703212, 0.511081, -0.341493,
+ 0.73, 0.515511, -0.344454,
+ 0.756788, 0.567882, -0.235225,
+ 0.779498, 0.553863, -0.229418,
+ 0.794672, 0.532882, -0.220727,
+ 0.8, 0.508134, -0.210476,
+ 0.794672, 0.483385, -0.200225,
+ 0.779498, 0.462404, -0.191534,
+ 0.756788, 0.448385, -0.185727,
+ 0.73, 0.443462, -0.183688,
+ 0.703212, 0.448385, -0.185727,
+ 0.680503, 0.462404, -0.191534,
+ 0.665328, 0.483385, -0.200225,
+ 0.66, 0.508134, -0.210476,
+ 0.665328, 0.532882, -0.220727,
+ 0.680503, 0.553863, -0.229418,
+ 0.703212, 0.567882, -0.235225,
+ 0.73, 0.572805, -0.237264,
+ 0.756788, 0.602861, -0.119916,
+ 0.779498, 0.587978, -0.116956,
+ 0.794672, 0.565705, -0.112526,
+ 0.8, 0.539432, -0.1073,
+ 0.794672, 0.513159, -0.102074,
+ 0.779498, 0.490885, -0.097643,
+ 0.756788, 0.476003, -0.094683,
+ 0.73, 0.470777, -0.093643,
+ 0.703212, 0.476003, -0.094683,
+ 0.680503, 0.490885, -0.097643,
+ 0.665328, 0.513159, -0.102074,
+ 0.66, 0.539432, -0.1073,
+ 0.665328, 0.565705, -0.112526,
+ 0.680503, 0.587978, -0.116956,
+ 0.703212, 0.602861, -0.119916,
+ 0.73, 0.608087, -0.120956,
+ 0.42, 0, -0.2,
+ 0.42, 0.051764, -0.193185,
+ 0.42, 0.1, -0.173205,
+ 0.42, 0.141421, -0.141421,
+ 0.42, 0.173205, -0.1,
+ 0.42, 0.193185, -0.051764,
+ 0.42, 0.2, 0,
+ 0.42, 0.193185, 0.051764,
+ 0.42, 0.173205, 0.1,
+ 0.42, 0.141421, 0.141421,
+ 0.42, 0.1, 0.173205,
+ 0.42, 0.051764, 0.193185,
+ 0.42, 0, 0.2,
+ 0.42, -0.051764, 0.193185,
+ 0.42, -0.1, 0.173205,
+ 0.42, -0.141421, 0.141421,
+ 0.42, -0.173205, 0.1,
+ 0.42, -0.193185, 0.051764,
+ 0.42, -0.2, 0,
+ 0.42, -0.193185, -0.051764,
+ 0.42, -0.173205, -0.1,
+ 0.42, -0.141421, -0.141421,
+ 0.42, -0.1, -0.173205,
+ 0.42, -0.051764, -0.193185,
+ 0.54, 0, -0.2,
+ 0.54, 0.051764, -0.193185,
+ 0.54, 0.1, -0.173205,
+ 0.54, 0.141421, -0.141421,
+ 0.54, 0.173205, -0.1,
+ 0.54, 0.193185, -0.051764,
+ 0.54, 0.2, 0,
+ 0.54, 0.193185, 0.051764,
+ 0.54, 0.173205, 0.1,
+ 0.54, 0.141421, 0.141421,
+ 0.54, 0.1, 0.173205,
+ 0.54, 0.051764, 0.193185,
+ 0.54, 0, 0.2,
+ 0.54, -0.051764, 0.193185,
+ 0.54, -0.1, 0.173205,
+ 0.54, -0.141421, 0.141421,
+ 0.54, -0.173205, 0.1,
+ 0.54, -0.193185, 0.051764,
+ 0.54, -0.2, 0,
+ 0.54, -0.193185, -0.051764,
+ 0.54, -0.173205, -0.1,
+ 0.54, -0.141421, -0.141421,
+ 0.54, -0.1, -0.173205,
+ 0.54, -0.051764, -0.193185,
+ 0.79, 0.06, 0,
+ 0.785433, 0.06, -0.022961,
+ 0.772426, 0.06, -0.042426,
+ 0.752961, 0.06, -0.055433,
+ 0.73, 0.06, -0.06,
+ 0.707039, 0.06, -0.055433,
+ 0.687574, 0.06, -0.042426,
+ 0.674567, 0.06, -0.022961,
+ 0.67, 0.06, 0,
+ 0.674567, 0.06, 0.022961,
+ 0.687574, 0.06, 0.042426,
+ 0.707039, 0.06, 0.055433,
+ 0.73, 0.06, 0.06,
+ 0.752961, 0.06, 0.055433,
+ 0.772426, 0.06, 0.042426,
+ 0.785433, 0.06, 0.022961,
+ 0.79, 0.55, 0,
+ 0.785433, 0.55, -0.022961,
+ 0.772426, 0.55, -0.042426,
+ 0.752961, 0.55, -0.055433,
+ 0.73, 0.55, -0.06,
+ 0.707039, 0.55, -0.055433,
+ 0.687574, 0.55, -0.042426,
+ 0.674567, 0.55, -0.022961,
+ 0.67, 0.55, 0,
+ 0.674567, 0.55, 0.022961,
+ 0.687574, 0.55, 0.042426,
+ 0.707039, 0.55, 0.055433,
+ 0.73, 0.55, 0.06,
+ 0.752961, 0.55, 0.055433,
+ 0.772426, 0.55, 0.042426,
+ 0.785433, 0.55, 0.022961,
+ 0.79, 0, 0.06,
+ 0.785433, 0.022961, 0.06,
+ 0.772426, 0.042426, 0.06,
+ 0.752961, 0.055433, 0.06,
+ 0.707039, 0.055433, 0.06,
+ 0.687574, 0.042426, 0.06,
+ 0.674567, 0.022961, 0.06,
+ 0.67, 0, 0.06,
+ 0.674567, -0.022961, 0.06,
+ 0.687574, -0.042426, 0.06,
+ 0.707039, -0.055433, 0.06,
+ 0.73, -0.06, 0.06,
+ 0.752961, -0.055433, 0.06,
+ 0.772426, -0.042426, 0.06,
+ 0.785433, -0.022961, 0.06,
+ 0.79, 0, 0.55,
+ 0.785433, 0.022961, 0.55,
+ 0.772426, 0.042426, 0.55,
+ 0.752961, 0.055433, 0.55,
+ 0.73, 0.06, 0.55,
+ 0.707039, 0.055433, 0.55,
+ 0.687574, 0.042426, 0.55,
+ 0.674567, 0.022961, 0.55,
+ 0.67, 0, 0.55,
+ 0.674567, -0.022961, 0.55,
+ 0.687574, -0.042426, 0.55,
+ 0.707039, -0.055433, 0.55,
+ 0.73, -0.06, 0.55,
+ 0.752961, -0.055433, 0.55,
+ 0.772426, -0.042426, 0.55,
+ 0.785433, -0.022961, 0.55,
+ 0.79, -0.06, 0,
+ 0.785433, -0.06, 0.022961,
+ 0.772426, -0.06, 0.042426,
+ 0.752961, -0.06, 0.055433,
+ 0.707039, -0.06, 0.055433,
+ 0.687574, -0.06, 0.042426,
+ 0.674567, -0.06, 0.022961,
+ 0.67, -0.06, 0,
+ 0.674567, -0.06, -0.022961,
+ 0.687574, -0.06, -0.042426,
+ 0.707039, -0.06, -0.055433,
+ 0.73, -0.06, -0.06,
+ 0.752961, -0.06, -0.055433,
+ 0.772426, -0.06, -0.042426,
+ 0.785433, -0.06, -0.022961,
+ 0.79, -0.55, 0,
+ 0.785433, -0.55, 0.022961,
+ 0.772426, -0.55, 0.042426,
+ 0.752961, -0.55, 0.055433,
+ 0.73, -0.55, 0.06,
+ 0.707039, -0.55, 0.055433,
+ 0.687574, -0.55, 0.042426,
+ 0.674567, -0.55, 0.022961,
+ 0.67, -0.55, 0,
+ 0.674567, -0.55, -0.022961,
+ 0.687574, -0.55, -0.042426,
+ 0.707039, -0.55, -0.055433,
+ 0.73, -0.55, -0.06,
+ 0.752961, -0.55, -0.055433,
+ 0.772426, -0.55, -0.042426,
+ 0.785433, -0.55, -0.022961,
+ 0.79, 0, -0.06,
+ 0.785433, -0.022961, -0.06,
+ 0.772426, -0.042426, -0.06,
+ 0.752961, -0.055433, -0.06,
+ 0.707039, -0.055433, -0.06,
+ 0.687574, -0.042426, -0.06,
+ 0.674567, -0.022961, -0.06,
+ 0.67, 0, -0.06,
+ 0.674567, 0.022961, -0.06,
+ 0.687574, 0.042426, -0.06,
+ 0.707039, 0.055433, -0.06,
+ 0.752961, 0.055433, -0.06,
+ 0.772426, 0.042426, -0.06,
+ 0.785433, 0.022961, -0.06,
+ 0.79, 0, -0.55,
+ 0.785433, -0.022961, -0.55,
+ 0.772426, -0.042426, -0.55,
+ 0.752961, -0.055433, -0.55,
+ 0.73, -0.06, -0.55,
+ 0.707039, -0.055433, -0.55,
+ 0.687574, -0.042426, -0.55,
+ 0.674567, -0.022961, -0.55,
+ 0.67, 0, -0.55,
+ 0.674567, 0.022961, -0.55,
+ 0.687574, 0.042426, -0.55,
+ 0.707039, 0.055433, -0.55,
+ 0.73, 0.06, -0.55,
+ 0.752961, 0.055433, -0.55,
+ 0.772426, 0.042426, -0.55,
+ 0.785433, 0.022961, -0.55,
+ 0.54, 0, -0.1,
+ 0.54, 0.038268, -0.092388,
+ 0.54, 0.070711, -0.070711,
+ 0.54, 0.092388, -0.038268,
+ 0.54, 0.1, 0,
+ 0.54, 0.092388, 0.038268,
+ 0.54, 0.070711, 0.070711,
+ 0.54, 0.038268, 0.092388,
+ 0.54, 0, 0.1,
+ 0.54, -0.038268, 0.092388,
+ 0.54, -0.070711, 0.070711,
+ 0.54, -0.092388, 0.038268,
+ 0.54, -0.1, 0,
+ 0.54, -0.092388, -0.038268,
+ 0.54, -0.070711, -0.070711,
+ 0.54, -0.038268, -0.092388,
+ 0.8, 0, -0.1,
+ 0.8, 0.038268, -0.092388,
+ 0.8, 0.070711, -0.070711,
+ 0.8, 0.092388, -0.038268,
+ 0.8, 0.1, 0,
+ 0.8, 0.092388, 0.038268,
+ 0.8, 0.070711, 0.070711,
+ 0.8, 0.038268, 0.092388,
+ 0.8, 0, 0.1,
+ 0.8, -0.038268, 0.092388,
+ 0.8, -0.070711, 0.070711,
+ 0.8, -0.092388, 0.038268,
+ 0.8, -0.1, 0,
+ 0.8, -0.092388, -0.038268,
+ 0.8, -0.070711, -0.070711,
+ 0.8, -0.038268, -0.092388,
+};
+
+static const GLfloat BigValve_normals[] =
+{
+ -1, 0, 0,
+ 0, 0.19509, -0.980785,
+ 0, 0.55557, -0.83147,
+ 0, 0.83147, -0.55557,
+ 0, 0.980785, -0.19509,
+ 0, 0.980785, 0.19509,
+ 0, 0.83147, 0.55557,
+ 0, 0.55557, 0.83147,
+ 0, 0.19509, 0.980785,
+ 0, -0.19509, 0.980785,
+ 0, -0.55557, 0.83147,
+ 0, -0.83147, 0.55557,
+ 0, -0.980785, 0.19509,
+ 0, -0.980785, -0.19509,
+ 0, -0.83147, -0.55557,
+ 0, -0.55557, -0.83147,
+ 0, -0.19509, -0.980785,
+ 1, 0, 0,
+ 0.980785, -0.195092, 0,
+ 0.83147, -0.555569, 0,
+ 0.555569, -0.83147, 0,
+ 0.195091, -0.980785, 0,
+ -0.19509, -0.980785, 0,
+ -0.55557, -0.831469, 0,
+ -0.831469, -0.555571, 0,
+ -0.980785, -0.195089, 0,
+ -0.980785, 0.195089, 0,
+ -0.831469, 0.555571, 0,
+ -0.55557, 0.831469, 0,
+ -0.19509, 0.980785, 0,
+ 0.195091, 0.980785, 0,
+ 0.555569, 0.83147, 0,
+ 0.83147, 0.555569, 0,
+ 0.980785, 0.195092, 0,
+ 0.980785, 0, 0.195092,
+ 0.83147, 0, 0.555569,
+ 0.555569, 0, 0.83147,
+ 0.195091, 0, 0.980785,
+ -0.19509, 0, 0.980785,
+ -0.55557, 0, 0.831469,
+ -0.831469, 0, 0.555571,
+ -0.980785, 0, 0.195089,
+ -0.980785, 0, -0.195089,
+ -0.831469, 0, -0.555571,
+ -0.55557, 0, -0.831469,
+ -0.19509, 0, -0.980785,
+ 0.195091, 0, -0.980785,
+ 0.555569, 0, -0.83147,
+ 0.83147, 0, -0.555569,
+ 0.980785, 0, -0.195092,
+ 0.980785, 0.195092, 0,
+ 0.83147, 0.555569, 0,
+ 0.555569, 0.83147, 0,
+ 0.195091, 0.980785, 0,
+ -0.19509, 0.980785, 0,
+ -0.55557, 0.831469, 0,
+ -0.831469, 0.555571, 0,
+ -0.980785, 0.195089, 0,
+ -0.980785, -0.195089, 0,
+ -0.831469, -0.555571, 0,
+ -0.55557, -0.831469, 0,
+ -0.19509, -0.980785, 0,
+ 0.195091, -0.980785, 0,
+ 0.555569, -0.83147, 0,
+ 0.83147, -0.555569, 0,
+ 0.980785, -0.195092, 0,
+ 0.980785, 0, -0.195092,
+ 0.83147, 0, -0.555569,
+ 0.555569, 0, -0.83147,
+ 0.195091, 0, -0.980785,
+ -0.19509, 0, -0.980785,
+ -0.55557, 0, -0.831469,
+ -0.831469, 0, -0.555571,
+ -0.980785, 0, -0.195089,
+ -0.980785, 0, 0.195089,
+ -0.831469, 0, 0.555571,
+ -0.55557, 0, 0.831469,
+ -0.19509, 0, 0.980785,
+ 0.195091, 0, 0.980785,
+ 0.555569, 0, 0.83147,
+ 0.83147, 0, 0.555569,
+ 0.980785, 0, 0.195092,
+ -1, 0, 0,
+ 0, 0.130526, -0.991445,
+ 0, 0.382684, -0.92388,
+ 0, 0.608761, -0.793353,
+ 0, 0.793353, -0.608761,
+ 0, 0.92388, -0.382684,
+ 0, 0.991445, -0.130526,
+ 0, 0.991445, 0.130526,
+ 0, 0.92388, 0.382684,
+ 0, 0.793353, 0.608761,
+ 0, 0.608761, 0.793353,
+ 0, 0.382684, 0.92388,
+ 0, 0.130526, 0.991445,
+ 0, -0.130526, 0.991445,
+ 0, -0.382684, 0.92388,
+ 0, -0.608761, 0.793353,
+ 0, -0.793353, 0.608761,
+ 0, -0.92388, 0.382684,
+ 0, -0.991445, 0.130526,
+ 0, -0.991445, -0.130526,
+ 0, -0.92388, -0.382684,
+ 0, -0.793353, -0.608761,
+ 0, -0.608761, -0.793353,
+ 0, -0.382684, -0.92388,
+ 0, -0.130526, -0.991445,
+ 1, 0, 0,
+ 0.194185, 0.976241, 0.096151,
+ -0.194185, 0.976241, 0.096151,
+ -0.553718, 0.828695, 0.081619,
+ -0.830228, 0.55474, 0.054637,
+ -0.980604, 0.195054, 0.019211,
+ -0.980605, -0.195053, -0.019211,
+ -0.830227, -0.554741, -0.054637,
+ -0.553717, -0.828695, -0.081619,
+ -0.194187, -0.976241, -0.096151,
+ 0.194188, -0.976241, -0.096151,
+ 0.553716, -0.828696, -0.081619,
+ 0.830227, -0.554741, -0.054637,
+ 0.980604, -0.195053, -0.019211,
+ 0.980604, 0.195054, 0.019211,
+ 0.830228, 0.55474, 0.054637,
+ 0.553717, 0.828695, 0.081619,
+ 0.194186, 0.938725, 0.284759,
+ -0.194185, 0.938725, 0.284759,
+ -0.553717, 0.796849, 0.241721,
+ -0.830228, 0.533421, 0.161812,
+ -0.980604, 0.187558, 0.056895,
+ -0.980604, -0.187558, -0.056895,
+ -0.830227, -0.533422, -0.161812,
+ -0.553717, -0.796849, -0.241722,
+ -0.194186, -0.938725, -0.284759,
+ 0.194187, -0.938724, -0.284759,
+ 0.553716, -0.796849, -0.241722,
+ 0.830227, -0.533422, -0.161812,
+ 0.980604, -0.187558, -0.056895,
+ 0.980604, 0.187558, 0.056895,
+ 0.830228, 0.533421, 0.161811,
+ 0.553716, 0.79685, 0.241722,
+ 0.194186, 0.865134, 0.462423,
+ -0.194185, 0.865134, 0.462424,
+ -0.553717, 0.73438, 0.392534,
+ -0.830228, 0.491604, 0.262768,
+ -0.980604, 0.172854, 0.092393,
+ -0.980604, -0.172854, -0.092393,
+ -0.830227, -0.491605, -0.262768,
+ -0.553717, -0.73438, -0.392534,
+ -0.194187, -0.865134, -0.462424,
+ 0.194187, -0.865134, -0.462423,
+ 0.553716, -0.734381, -0.392534,
+ 0.830227, -0.491605, -0.262768,
+ 0.980604, -0.172854, -0.092393,
+ 0.980604, 0.172854, 0.092393,
+ 0.830228, 0.491604, 0.262768,
+ 0.553716, 0.734381, 0.392535,
+ 0.194186, 0.758296, 0.622317,
+ -0.194186, 0.758296, 0.622318,
+ -0.553717, 0.64369, 0.528263,
+ -0.830228, 0.430895, 0.353626,
+ -0.980604, 0.151508, 0.12434,
+ -0.980604, -0.151508, -0.124339,
+ -0.830227, -0.430895, -0.353627,
+ -0.553717, -0.64369, -0.528263,
+ -0.194186, -0.758296, -0.622317,
+ 0.194186, -0.758296, -0.622318,
+ 0.553716, -0.64369, -0.528263,
+ 0.830227, -0.430895, -0.353627,
+ 0.980604, -0.151508, -0.124339,
+ 0.980604, 0.151508, 0.12434,
+ 0.830228, 0.430895, 0.353626,
+ 0.553716, 0.64369, 0.528263,
+ 0.194186, 0.622317, 0.758296,
+ -0.194185, 0.622318, 0.758296,
+ -0.553717, 0.528263, 0.64369,
+ -0.830228, 0.353626, 0.430895,
+ -0.980604, 0.124339, 0.151508,
+ -0.980604, -0.124339, -0.151508,
+ -0.830227, -0.353627, -0.430895,
+ -0.553717, -0.528262, -0.643689,
+ -0.194187, -0.622317, -0.758296,
+ 0.194187, -0.622317, -0.758296,
+ 0.553716, -0.528263, -0.64369,
+ 0.830227, -0.353627, -0.430895,
+ 0.980604, -0.124339, -0.151508,
+ 0.980604, 0.12434, 0.151508,
+ 0.830228, 0.353626, 0.430895,
+ 0.553716, 0.528263, 0.64369,
+ 0.194186, 0.462423, 0.865134,
+ -0.194185, 0.462424, 0.865134,
+ -0.553717, 0.392534, 0.73438,
+ -0.830228, 0.262768, 0.491604,
+ -0.980604, 0.092393, 0.172855,
+ -0.980604, -0.092392, -0.172854,
+ -0.830227, -0.262768, -0.491605,
+ -0.553717, -0.392534, -0.73438,
+ -0.194186, -0.462424, -0.865134,
+ 0.194187, -0.462423, -0.865134,
+ 0.553716, -0.392535, -0.734381,
+ 0.830227, -0.262768, -0.491605,
+ 0.980604, -0.092392, -0.172854,
+ 0.980604, 0.092393, 0.172855,
+ 0.830228, 0.262768, 0.491604,
+ 0.553716, 0.392535, 0.734381,
+ 0.194185, 0.284759, 0.938725,
+ -0.194185, 0.284759, 0.938725,
+ -0.553718, 0.241721, 0.796848,
+ -0.830228, 0.161812, 0.533422,
+ -0.980604, 0.056895, 0.187558,
+ -0.980604, -0.056895, -0.187558,
+ -0.830227, -0.161812, -0.533423,
+ -0.553717, -0.241722, -0.796849,
+ -0.194187, -0.284759, -0.938725,
+ 0.194188, -0.284759, -0.938724,
+ 0.553716, -0.241722, -0.796849,
+ 0.830227, -0.161812, -0.533423,
+ 0.980604, -0.056895, -0.187557,
+ 0.980604, 0.056895, 0.187558,
+ 0.830228, 0.161812, 0.533422,
+ 0.553717, 0.241722, 0.796849,
+ 0.194186, 0.096151, 0.976241,
+ -0.194186, 0.096151, 0.976241,
+ -0.553717, 0.081619, 0.828695,
+ -0.830228, 0.054637, 0.55474,
+ -0.980604, 0.019211, 0.195054,
+ -0.980604, -0.019211, -0.195054,
+ -0.830227, -0.054637, -0.554741,
+ -0.553717, -0.081619, -0.828695,
+ -0.194187, -0.096151, -0.976241,
+ 0.194187, -0.096151, -0.976241,
+ 0.553716, -0.081619, -0.828696,
+ 0.830227, -0.054637, -0.554741,
+ 0.980604, -0.019211, -0.195054,
+ 0.980604, 0.019211, 0.195054,
+ 0.830228, 0.054637, 0.55474,
+ 0.553716, 0.081619, 0.828696,
+ 0.194185, -0.096151, 0.976241,
+ -0.194185, -0.096151, 0.976241,
+ -0.553718, -0.081619, 0.828695,
+ -0.830228, -0.054637, 0.55474,
+ -0.980604, -0.019211, 0.195054,
+ -0.980605, 0.019211, -0.195053,
+ -0.830227, 0.054637, -0.554741,
+ -0.553717, 0.081619, -0.828695,
+ -0.194187, 0.096151, -0.976241,
+ 0.194188, 0.096151, -0.976241,
+ 0.553716, 0.081619, -0.828696,
+ 0.830227, 0.054637, -0.554741,
+ 0.980604, 0.019211, -0.195053,
+ 0.980604, -0.019211, 0.195054,
+ 0.830228, -0.054637, 0.55474,
+ 0.553717, -0.081619, 0.828695,
+ 0.194186, -0.284759, 0.938725,
+ -0.194185, -0.284759, 0.938725,
+ -0.553717, -0.241721, 0.796849,
+ -0.830228, -0.161812, 0.533421,
+ -0.980604, -0.056895, 0.187558,
+ -0.980604, 0.056895, -0.187558,
+ -0.830227, 0.161812, -0.533422,
+ -0.553717, 0.241722, -0.796849,
+ -0.194186, 0.284759, -0.938725,
+ 0.194187, 0.284759, -0.938724,
+ 0.553716, 0.241722, -0.796849,
+ 0.830227, 0.161812, -0.533422,
+ 0.980604, 0.056895, -0.187558,
+ 0.980604, -0.056895, 0.187558,
+ 0.830228, -0.161811, 0.533421,
+ 0.553716, -0.241722, 0.79685,
+ 0.194186, -0.462423, 0.865134,
+ -0.194185, -0.462424, 0.865134,
+ -0.553717, -0.392534, 0.73438,
+ -0.830228, -0.262768, 0.491604,
+ -0.980604, -0.092393, 0.172854,
+ -0.980604, 0.092393, -0.172854,
+ -0.830227, 0.262768, -0.491605,
+ -0.553717, 0.392534, -0.73438,
+ -0.194187, 0.462424, -0.865134,
+ 0.194187, 0.462423, -0.865134,
+ 0.553716, 0.392534, -0.734381,
+ 0.830227, 0.262768, -0.491605,
+ 0.980604, 0.092393, -0.172854,
+ 0.980604, -0.092393, 0.172854,
+ 0.830228, -0.262768, 0.491604,
+ 0.553716, -0.392535, 0.734381,
+ 0.194186, -0.622317, 0.758296,
+ -0.194186, -0.622318, 0.758296,
+ -0.553717, -0.528263, 0.64369,
+ -0.830228, -0.353626, 0.430895,
+ -0.980604, -0.12434, 0.151508,
+ -0.980604, 0.124339, -0.151508,
+ -0.830227, 0.353627, -0.430895,
+ -0.553717, 0.528263, -0.64369,
+ -0.194186, 0.622317, -0.758296,
+ 0.194186, 0.622318, -0.758296,
+ 0.553716, 0.528263, -0.64369,
+ 0.830227, 0.353627, -0.430895,
+ 0.980604, 0.124339, -0.151508,
+ 0.980604, -0.12434, 0.151508,
+ 0.830228, -0.353626, 0.430895,
+ 0.553716, -0.528263, 0.64369,
+ 0.194186, -0.758296, 0.622317,
+ -0.194185, -0.758296, 0.622318,
+ -0.553717, -0.64369, 0.528263,
+ -0.830228, -0.430895, 0.353626,
+ -0.980604, -0.151508, 0.124339,
+ -0.980604, 0.151508, -0.124339,
+ -0.830227, 0.430895, -0.353627,
+ -0.553717, 0.643689, -0.528262,
+ -0.194187, 0.758296, -0.622317,
+ 0.194187, 0.758296, -0.622317,
+ 0.553716, 0.64369, -0.528263,
+ 0.830227, 0.430895, -0.353627,
+ 0.980604, 0.151508, -0.124339,
+ 0.980604, -0.151508, 0.12434,
+ 0.830228, -0.430895, 0.353626,
+ 0.553716, -0.64369, 0.528263,
+ 0.194186, -0.865134, 0.462423,
+ -0.194185, -0.865134, 0.462424,
+ -0.553717, -0.73438, 0.392534,
+ -0.830228, -0.491604, 0.262768,
+ -0.980604, -0.172855, 0.092393,
+ -0.980604, 0.172854, -0.092393,
+ -0.830227, 0.491605, -0.262768,
+ -0.553717, 0.73438, -0.392534,
+ -0.194186, 0.865134, -0.462424,
+ 0.194187, 0.865134, -0.462423,
+ 0.553716, 0.734381, -0.392535,
+ 0.830228, 0.491605, -0.262768,
+ 0.980604, 0.172854, -0.092393,
+ 0.980604, -0.172855, 0.092393,
+ 0.830228, -0.491604, 0.262768,
+ 0.553716, -0.734381, 0.392535,
+ 0.194185, -0.938725, 0.284759,
+ -0.194185, -0.938725, 0.284759,
+ -0.553718, -0.796848, 0.241721,
+ -0.830228, -0.533422, 0.161812,
+ -0.980604, -0.187558, 0.056895,
+ -0.980605, 0.187557, -0.056895,
+ -0.830227, 0.533423, -0.161812,
+ -0.553717, 0.796849, -0.241722,
+ -0.194187, 0.938725, -0.284759,
+ 0.194188, 0.938724, -0.284759,
+ 0.553716, 0.796849, -0.241722,
+ 0.830227, 0.533423, -0.161812,
+ 0.980604, 0.187557, -0.056895,
+ 0.980604, -0.187558, 0.056895,
+ 0.830228, -0.533422, 0.161812,
+ 0.553717, -0.796849, 0.241722,
+ 0.194186, -0.976241, 0.096151,
+ -0.194186, -0.976241, 0.096151,
+ -0.553717, -0.828695, 0.081619,
+ -0.830228, -0.55474, 0.054637,
+ -0.980604, -0.195054, 0.019211,
+ -0.980604, 0.195054, -0.019211,
+ -0.830227, 0.554741, -0.054637,
+ -0.553717, 0.828695, -0.081619,
+ -0.194187, 0.976241, -0.096151,
+ 0.194187, 0.976241, -0.096151,
+ 0.553716, 0.828696, -0.081619,
+ 0.830227, 0.554741, -0.054637,
+ 0.980604, 0.195054, -0.019211,
+ 0.980604, -0.195054, 0.019211,
+ 0.830228, -0.55474, 0.054637,
+ 0.553716, -0.828696, 0.081619,
+ 0.194185, -0.976241, -0.096151,
+ -0.194185, -0.976241, -0.096151,
+ -0.553718, -0.828695, -0.081619,
+ -0.830228, -0.55474, -0.054637,
+ -0.980604, -0.195054, -0.019211,
+ -0.980605, 0.195053, 0.019211,
+ -0.830227, 0.554741, 0.054637,
+ -0.553717, 0.828695, 0.081619,
+ -0.194187, 0.976241, 0.096151,
+ 0.194188, 0.976241, 0.096151,
+ 0.553716, 0.828696, 0.081619,
+ 0.830227, 0.554741, 0.054637,
+ 0.980604, 0.195053, 0.019211,
+ 0.980604, -0.195054, -0.019211,
+ 0.830228, -0.55474, -0.054637,
+ 0.553717, -0.828695, -0.081619,
+ 0.194186, -0.938725, -0.284759,
+ -0.194185, -0.938725, -0.284759,
+ -0.553717, -0.796849, -0.241721,
+ -0.830228, -0.533421, -0.161812,
+ -0.980604, -0.187558, -0.056895,
+ -0.980604, 0.187558, 0.056895,
+ -0.830227, 0.533422, 0.161812,
+ -0.553717, 0.796849, 0.241722,
+ -0.194186, 0.938725, 0.284759,
+ 0.194187, 0.938724, 0.284759,
+ 0.553716, 0.796849, 0.241722,
+ 0.830227, 0.533422, 0.161812,
+ 0.980604, 0.187558, 0.056895,
+ 0.980604, -0.187558, -0.056895,
+ 0.830228, -0.533421, -0.161811,
+ 0.553716, -0.79685, -0.241722,
+ 0.194186, -0.865134, -0.462423,
+ -0.194185, -0.865134, -0.462424,
+ -0.553717, -0.73438, -0.392534,
+ -0.830228, -0.491604, -0.262768,
+ -0.980604, -0.172854, -0.092393,
+ -0.980604, 0.172854, 0.092393,
+ -0.830227, 0.491605, 0.262768,
+ -0.553717, 0.73438, 0.392534,
+ -0.194187, 0.865134, 0.462424,
+ 0.194187, 0.865134, 0.462423,
+ 0.553716, 0.734381, 0.392534,
+ 0.830227, 0.491605, 0.262768,
+ 0.980604, 0.172854, 0.092393,
+ 0.980604, -0.172854, -0.092393,
+ 0.830228, -0.491604, -0.262768,
+ 0.553716, -0.734381, -0.392535,
+ 0.194186, -0.758296, -0.622317,
+ -0.194186, -0.758296, -0.622318,
+ -0.553717, -0.64369, -0.528263,
+ -0.830228, -0.430895, -0.353626,
+ -0.980604, -0.151508, -0.12434,
+ -0.980604, 0.151508, 0.124339,
+ -0.830227, 0.430895, 0.353627,
+ -0.553717, 0.64369, 0.528263,
+ -0.194186, 0.758296, 0.622317,
+ 0.194186, 0.758296, 0.622318,
+ 0.553716, 0.64369, 0.528263,
+ 0.830227, 0.430895, 0.353627,
+ 0.980604, 0.151508, 0.124339,
+ 0.980604, -0.151508, -0.12434,
+ 0.830228, -0.430895, -0.353626,
+ 0.553716, -0.64369, -0.528263,
+ 0.194186, -0.622317, -0.758296,
+ -0.194185, -0.622318, -0.758296,
+ -0.553717, -0.528263, -0.64369,
+ -0.830228, -0.353626, -0.430895,
+ -0.980604, -0.124339, -0.151508,
+ -0.980604, 0.124339, 0.151508,
+ -0.830227, 0.353627, 0.430895,
+ -0.553717, 0.528262, 0.643689,
+ -0.194187, 0.622317, 0.758296,
+ 0.194187, 0.622317, 0.758296,
+ 0.553716, 0.528263, 0.64369,
+ 0.830227, 0.353627, 0.430895,
+ 0.980604, 0.124339, 0.151508,
+ 0.980604, -0.12434, -0.151508,
+ 0.830228, -0.353626, -0.430895,
+ 0.553716, -0.528263, -0.64369,
+ 0.194186, -0.462423, -0.865134,
+ -0.194185, -0.462424, -0.865134,
+ -0.553717, -0.392534, -0.73438,
+ -0.830228, -0.262768, -0.491604,
+ -0.980604, -0.092393, -0.172855,
+ -0.980604, 0.092393, 0.172854,
+ -0.830227, 0.262768, 0.491605,
+ -0.553717, 0.392534, 0.73438,
+ -0.194186, 0.462424, 0.865134,
+ 0.194187, 0.462423, 0.865134,
+ 0.553716, 0.392535, 0.734381,
+ 0.830228, 0.262768, 0.491605,
+ 0.980604, 0.092393, 0.172854,
+ 0.980604, -0.092393, -0.172855,
+ 0.830228, -0.262768, -0.491604,
+ 0.553716, -0.392535, -0.734381,
+ 0.194185, -0.284759, -0.938725,
+ -0.194185, -0.284759, -0.938725,
+ -0.553718, -0.241721, -0.796848,
+ -0.830228, -0.161812, -0.533422,
+ -0.980604, -0.056895, -0.187558,
+ -0.980605, 0.056895, 0.187557,
+ -0.830227, 0.161812, 0.533422,
+ -0.553716, 0.241722, 0.796849,
+ -0.194187, 0.284759, 0.938725,
+ 0.194188, 0.284759, 0.938724,
+ 0.553716, 0.241722, 0.79685,
+ 0.830227, 0.161812, 0.533423,
+ 0.980604, 0.056895, 0.187557,
+ 0.980604, -0.056895, -0.187558,
+ 0.830228, -0.161812, -0.533422,
+ 0.553717, -0.241722, -0.796849,
+ 0.194186, -0.096151, -0.976241,
+ -0.194186, -0.096151, -0.976241,
+ -0.553717, -0.081619, -0.828695,
+ -0.830228, -0.054637, -0.55474,
+ -0.980604, -0.019211, -0.195054,
+ -0.980604, 0.019211, 0.195054,
+ -0.830227, 0.054637, 0.554741,
+ -0.553717, 0.081619, 0.828695,
+ -0.194187, 0.096151, 0.976241,
+ 0.194187, 0.096151, 0.976241,
+ 0.553716, 0.08162, 0.828696,
+ 0.830227, 0.054637, 0.554741,
+ 0.980604, 0.019211, 0.195054,
+ 0.980604, -0.019211, -0.195054,
+ 0.830228, -0.054637, -0.55474,
+ 0.553716, -0.081619, -0.828696,
+ 0.194185, 0.096151, -0.976241,
+ -0.194185, 0.096151, -0.976241,
+ -0.553718, 0.081619, -0.828695,
+ -0.830228, 0.054637, -0.55474,
+ -0.980604, 0.019211, -0.195054,
+ -0.980605, -0.019211, 0.195053,
+ -0.830227, -0.054637, 0.554741,
+ -0.553717, -0.081619, 0.828695,
+ -0.194187, -0.096151, 0.976241,
+ 0.194188, -0.096151, 0.976241,
+ 0.553716, -0.081619, 0.828696,
+ 0.830227, -0.054637, 0.554741,
+ 0.980604, -0.019211, 0.195053,
+ 0.980604, 0.019211, -0.195054,
+ 0.830228, 0.054637, -0.55474,
+ 0.553717, 0.081619, -0.828695,
+ 0.194186, 0.284759, -0.938725,
+ -0.194185, 0.284759, -0.938725,
+ -0.553717, 0.241721, -0.796849,
+ -0.830228, 0.161812, -0.533421,
+ -0.980604, 0.056895, -0.187558,
+ -0.980604, -0.056895, 0.187558,
+ -0.830227, -0.161812, 0.533422,
+ -0.553717, -0.241722, 0.796849,
+ -0.194186, -0.284759, 0.938725,
+ 0.194187, -0.284759, 0.938724,
+ 0.553716, -0.241722, 0.796849,
+ 0.830227, -0.161812, 0.533422,
+ 0.980604, -0.056895, 0.187558,
+ 0.980604, 0.056895, -0.187558,
+ 0.830228, 0.161811, -0.533421,
+ 0.553716, 0.241722, -0.79685,
+ 0.194186, 0.462423, -0.865134,
+ -0.194185, 0.462424, -0.865134,
+ -0.553717, 0.392534, -0.73438,
+ -0.830228, 0.262768, -0.491604,
+ -0.980604, 0.092393, -0.172854,
+ -0.980604, -0.092393, 0.172854,
+ -0.830227, -0.262768, 0.491605,
+ -0.553717, -0.392534, 0.73438,
+ -0.194187, -0.462424, 0.865134,
+ 0.194187, -0.462423, 0.865134,
+ 0.553716, -0.392534, 0.734381,
+ 0.830227, -0.262768, 0.491605,
+ 0.980604, -0.092393, 0.172854,
+ 0.980604, 0.092393, -0.172854,
+ 0.830228, 0.262768, -0.491604,
+ 0.553716, 0.392535, -0.734381,
+ 0.194186, 0.622317, -0.758296,
+ -0.194186, 0.622318, -0.758296,
+ -0.553717, 0.528263, -0.64369,
+ -0.830228, 0.353626, -0.430895,
+ -0.980604, 0.12434, -0.151508,
+ -0.980604, -0.124339, 0.151508,
+ -0.830227, -0.353627, 0.430895,
+ -0.553717, -0.528263, 0.64369,
+ -0.194186, -0.622317, 0.758296,
+ 0.194186, -0.622318, 0.758296,
+ 0.553716, -0.528263, 0.64369,
+ 0.830227, -0.353627, 0.430895,
+ 0.980604, -0.124339, 0.151508,
+ 0.980604, 0.12434, -0.151508,
+ 0.830228, 0.353626, -0.430895,
+ 0.553716, 0.528263, -0.64369,
+ 0.194186, 0.758296, -0.622317,
+ -0.194185, 0.758296, -0.622318,
+ -0.553717, 0.64369, -0.528263,
+ -0.830228, 0.430895, -0.353626,
+ -0.980604, 0.151508, -0.124339,
+ -0.980604, -0.151508, 0.124339,
+ -0.830227, -0.430895, 0.353627,
+ -0.553717, -0.643689, 0.528262,
+ -0.194187, -0.758296, 0.622317,
+ 0.194187, -0.758296, 0.622317,
+ 0.553716, -0.64369, 0.528263,
+ 0.830227, -0.430895, 0.353627,
+ 0.980604, -0.151508, 0.124339,
+ 0.980604, 0.151508, -0.12434,
+ 0.830228, 0.430895, -0.353626,
+ 0.553716, 0.64369, -0.528263,
+ 0.194186, 0.865134, -0.462423,
+ -0.194185, 0.865134, -0.462424,
+ -0.553717, 0.73438, -0.392534,
+ -0.830228, 0.491604, -0.262768,
+ -0.980604, 0.172855, -0.092393,
+ -0.980604, -0.172854, 0.092393,
+ -0.830227, -0.491605, 0.262768,
+ -0.553717, -0.73438, 0.392534,
+ -0.194186, -0.865134, 0.462424,
+ 0.194187, -0.865134, 0.462423,
+ 0.553716, -0.734381, 0.392535,
+ 0.830228, -0.491605, 0.262768,
+ 0.980604, -0.172854, 0.092393,
+ 0.980604, 0.172855, -0.092393,
+ 0.830228, 0.491604, -0.262768,
+ 0.553716, 0.734381, -0.392535,
+ 0.194185, 0.938725, -0.284759,
+ -0.194185, 0.938725, -0.284759,
+ -0.553718, 0.796848, -0.241721,
+ -0.830228, 0.533422, -0.161812,
+ -0.980604, 0.187558, -0.056895,
+ -0.980605, -0.187557, 0.056895,
+ -0.830227, -0.533422, 0.161812,
+ -0.553716, -0.796849, 0.241722,
+ -0.194187, -0.938725, 0.284759,
+ 0.194188, -0.938724, 0.284759,
+ 0.553716, -0.79685, 0.241722,
+ 0.830227, -0.533423, 0.161812,
+ 0.980604, -0.187557, 0.056895,
+ 0.980604, 0.187558, -0.056895,
+ 0.830228, 0.533422, -0.161812,
+ 0.553717, 0.796849, -0.241722,
+ 0.194186, 0.976241, -0.096151,
+ -0.194186, 0.976241, -0.096151,
+ -0.553717, 0.828695, -0.081619,
+ -0.830228, 0.55474, -0.054637,
+ -0.980604, 0.195054, -0.019211,
+ -0.980604, -0.195054, 0.019211,
+ -0.830227, -0.554741, 0.054637,
+ -0.553717, -0.828695, 0.081619,
+ -0.194187, -0.976241, 0.096151,
+ 0.194187, -0.976241, 0.096151,
+ 0.553716, -0.828696, 0.08162,
+ 0.830227, -0.554741, 0.054637,
+ 0.980604, -0.195054, 0.019211,
+ 0.980604, 0.195054, -0.019211,
+ 0.830228, 0.55474, -0.054637,
+ 0.553716, 0.828696, -0.081619,
+};
+
+static const unsigned short int BigValve_POLS[] =
+{
+ 16, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 1, 4, 700,
+ 701, 685, 684, 1, 4, 701, 702, 686, 685, 1, 4, 702, 703, 687, 686, 1, 4, 703, 704, 688,
+ 687, 1, 4, 704, 705, 689, 688, 1, 4, 705, 706, 690, 689, 1, 4, 706, 707, 691, 690, 1,
+ 4, 707, 708, 692, 691, 1, 4, 708, 709, 693, 692, 1, 4, 709, 710, 694, 693, 1, 4, 710,
+ 711, 695, 694, 1, 4, 711, 712, 696, 695, 1, 4, 712, 713, 697, 696, 1, 4, 713, 714, 698,
+ 697, 1, 4, 714, 715, 699, 698, 1, 4, 715, 700, 684, 699, 1, 16, 700, 715, 714, 713, 712,
+ 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 1, 4, 668, 669, 655, 654, 1, 4, 669,
+ 670, 656, 655, 1, 4, 670, 671, 657, 656, 1, 4, 671, 672, 634, 657, 1, 4, 672, 673, 658,
+ 634, 1, 4, 673, 674, 659, 658, 1, 4, 674, 675, 660, 659, 1, 4, 675, 676, 661, 660, 1,
+ 4, 676, 677, 662, 661, 1, 4, 677, 678, 663, 662, 1, 4, 678, 679, 664, 663, 1, 4, 679,
+ 680, 564, 664, 1, 4, 680, 681, 665, 564, 1, 4, 681, 682, 666, 665, 1, 4, 682, 683, 667,
+ 666, 1, 4, 683, 668, 654, 667, 1, 4, 638, 639, 624, 623, 1, 4, 639, 640, 625, 624, 1,
+ 4, 640, 641, 626, 625, 1, 4, 641, 642, 603, 626, 1, 4, 642, 643, 627, 603, 1, 4, 643,
+ 644, 628, 627, 1, 4, 644, 645, 629, 628, 1, 4, 645, 646, 630, 629, 1, 4, 646, 647, 631,
+ 630, 1, 4, 647, 648, 632, 631, 1, 4, 648, 649, 633, 632, 1, 4, 649, 650, 634, 633, 1,
+ 4, 650, 651, 635, 634, 1, 4, 651, 652, 636, 635, 1, 4, 652, 653, 637, 636, 1, 4, 653,
+ 638, 623, 637, 1, 4, 607, 608, 593, 592, 1, 4, 608, 609, 594, 593, 1, 4, 609, 610, 595,
+ 594, 1, 4, 610, 611, 572, 595, 1, 4, 611, 612, 596, 572, 1, 4, 612, 613, 597, 596, 1,
+ 4, 613, 614, 598, 597, 1, 4, 614, 615, 599, 598, 1, 4, 615, 616, 600, 599, 1, 4, 616,
+ 617, 601, 600, 1, 4, 617, 618, 602, 601, 1, 4, 618, 619, 603, 602, 1, 4, 619, 620, 604,
+ 603, 1, 4, 620, 621, 605, 604, 1, 4, 621, 622, 606, 605, 1, 4, 622, 607, 592, 606, 1,
+ 4, 576, 577, 561, 560, 1, 4, 577, 578, 562, 561, 1, 4, 578, 579, 563, 562, 1, 4, 579,
+ 580, 564, 563, 1, 4, 580, 581, 565, 564, 1, 4, 581, 582, 566, 565, 1, 4, 582, 583, 567,
+ 566, 1, 4, 583, 584, 568, 567, 1, 4, 584, 585, 569, 568, 1, 4, 585, 586, 570, 569, 1,
+ 4, 586, 587, 571, 570, 1, 4, 587, 588, 572, 571, 1, 4, 588, 589, 573, 572, 1, 4, 589,
+ 590, 574, 573, 1, 4, 590, 591, 575, 574, 1, 4, 591, 576, 560, 575, 1, 24, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
+ 535, 1, 4, 536, 537, 513, 512, 1, 4, 537, 538, 514, 513, 1, 4, 538, 539, 515, 514, 1,
+ 4, 539, 540, 516, 515, 1, 4, 540, 541, 517, 516, 1, 4, 541, 542, 518, 517, 1, 4, 542,
+ 543, 519, 518, 1, 4, 543, 544, 520, 519, 1, 4, 544, 545, 521, 520, 1, 4, 545, 546, 522,
+ 521, 1, 4, 546, 547, 523, 522, 1, 4, 547, 548, 524, 523, 1, 4, 548, 549, 525, 524, 1,
+ 4, 549, 550, 526, 525, 1, 4, 550, 551, 527, 526, 1, 4, 551, 552, 528, 527, 1, 4, 552,
+ 553, 529, 528, 1, 4, 553, 554, 530, 529, 1, 4, 554, 555, 531, 530, 1, 4, 555, 556, 532,
+ 531, 1, 4, 556, 557, 533, 532, 1, 4, 557, 558, 534, 533, 1, 4, 558, 559, 535, 534, 1,
+ 4, 559, 536, 512, 535, 1, 24, 536, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548,
+ 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 1, 4, 16, 31, 15, 0, 1, 4, 31,
+ 30, 14, 15, 1, 4, 30, 29, 13, 14, 1, 4, 29, 28, 12, 13, 1, 4, 28, 27, 11,
+ 12, 1, 4, 27, 26, 10, 11, 1, 4, 26, 25, 9, 10, 1, 4, 25, 24, 8, 9, 1,
+ 4, 24, 23, 7, 8, 1, 4, 23, 22, 6, 7, 1, 4, 22, 21, 5, 6, 1, 4, 21,
+ 20, 4, 5, 1, 4, 20, 19, 3, 4, 1, 4, 19, 18, 2, 3, 1, 4, 18, 17, 1,
+ 2, 1, 4, 17, 16, 0, 1, 1, 4, 32, 47, 31, 16, 1, 4, 47, 46, 30, 31, 1,
+ 4, 46, 45, 29, 30, 1, 4, 45, 44, 28, 29, 1, 4, 44, 43, 27, 28, 1, 4, 43,
+ 42, 26, 27, 1, 4, 42, 41, 25, 26, 1, 4, 41, 40, 24, 25, 1, 4, 40, 39, 23,
+ 24, 1, 4, 39, 38, 22, 23, 1, 4, 38, 37, 21, 22, 1, 4, 37, 36, 20, 21, 1,
+ 4, 36, 35, 19, 20, 1, 4, 35, 34, 18, 19, 1, 4, 34, 33, 17, 18, 1, 4, 33,
+ 32, 16, 17, 1, 4, 48, 63, 47, 32, 1, 4, 63, 62, 46, 47, 1, 4, 62, 61, 45,
+ 46, 1, 4, 61, 60, 44, 45, 1, 4, 60, 59, 43, 44, 1, 4, 59, 58, 42, 43, 1,
+ 4, 58, 57, 41, 42, 1, 4, 57, 56, 40, 41, 1, 4, 56, 55, 39, 40, 1, 4, 55,
+ 54, 38, 39, 1, 4, 54, 53, 37, 38, 1, 4, 53, 52, 36, 37, 1, 4, 52, 51, 35,
+ 36, 1, 4, 51, 50, 34, 35, 1, 4, 50, 49, 33, 34, 1, 4, 49, 48, 32, 33, 1,
+ 4, 64, 79, 63, 48, 1, 4, 79, 78, 62, 63, 1, 4, 78, 77, 61, 62, 1, 4, 77,
+ 76, 60, 61, 1, 4, 76, 75, 59, 60, 1, 4, 75, 74, 58, 59, 1, 4, 74, 73, 57,
+ 58, 1, 4, 73, 72, 56, 57, 1, 4, 72, 71, 55, 56, 1, 4, 71, 70, 54, 55, 1,
+ 4, 70, 69, 53, 54, 1, 4, 69, 68, 52, 53, 1, 4, 68, 67, 51, 52, 1, 4, 67,
+ 66, 50, 51, 1, 4, 66, 65, 49, 50, 1, 4, 65, 64, 48, 49, 1, 4, 80, 95, 79,
+ 64, 1, 4, 95, 94, 78, 79, 1, 4, 94, 93, 77, 78, 1, 4, 93, 92, 76, 77, 1,
+ 4, 92, 91, 75, 76, 1, 4, 91, 90, 74, 75, 1, 4, 90, 89, 73, 74, 1, 4, 89,
+ 88, 72, 73, 1, 4, 88, 87, 71, 72, 1, 4, 87, 86, 70, 71, 1, 4, 86, 85, 69,
+ 70, 1, 4, 85, 84, 68, 69, 1, 4, 84, 83, 67, 68, 1, 4, 83, 82, 66, 67, 1,
+ 4, 82, 81, 65, 66, 1, 4, 81, 80, 64, 65, 1, 4, 96, 111, 95, 80, 1, 4, 111,
+ 110, 94, 95, 1, 4, 110, 109, 93, 94, 1, 4, 109, 108, 92, 93, 1, 4, 108, 107, 91,
+92, 1, 4, 107, 106, 90, 91, 1, 4, 106, 105, 89, 90, 1, 4, 105, 104, 88, 89, 1,
+ 4, 104, 103, 87, 88, 1, 4, 103, 102, 86, 87, 1, 4, 102, 101, 85, 86, 1, 4, 101,
+ 100, 84, 85, 1, 4, 100, 99, 83, 84, 1, 4, 99, 98, 82, 83, 1, 4, 98, 97, 81,
+ 82, 1, 4, 97, 96, 80, 81, 1, 4, 112, 127, 111, 96, 1, 4, 127, 126, 110, 111, 1,
+ 4, 126, 125, 109, 110, 1, 4, 125, 124, 108, 109, 1, 4, 124, 123, 107, 108, 1, 4, 123,
+ 122, 106, 107, 1, 4, 122, 121, 105, 106, 1, 4, 121, 120, 104, 105, 1, 4, 120, 119, 103,
+ 104, 1, 4, 119, 118, 102, 103, 1, 4, 118, 117, 101, 102, 1, 4, 117, 116, 100, 101, 1,
+ 4, 116, 115, 99, 100, 1, 4, 115, 114, 98, 99, 1, 4, 114, 113, 97, 98, 1, 4, 113,
+ 112, 96, 97, 1, 4, 128, 143, 127, 112, 1, 4, 143, 142, 126, 127, 1, 4, 142, 141, 125,
+ 126, 1, 4, 141, 140, 124, 125, 1, 4, 140, 139, 123, 124, 1, 4, 139, 138, 122, 123, 1,
+ 4, 138, 137, 121, 122, 1, 4, 137, 136, 120, 121, 1, 4, 136, 135, 119, 120, 1, 4, 135,
+ 134, 118, 119, 1, 4, 134, 133, 117, 118, 1, 4, 133, 132, 116, 117, 1, 4, 132, 131, 115,
+ 116, 1, 4, 131, 130, 114, 115, 1, 4, 130, 129, 113, 114, 1, 4, 129, 128, 112, 113, 1,
+ 4, 144, 159, 143, 128, 1, 4, 159, 158, 142, 143, 1, 4, 158, 157, 141, 142, 1, 4, 157,
+ 156, 140, 141, 1, 4, 156, 155, 139, 140, 1, 4, 155, 154, 138, 139, 1, 4, 154, 153, 137,
+ 138, 1, 4, 153, 152, 136, 137, 1, 4, 152, 151, 135, 136, 1, 4, 151, 150, 134, 135, 1,
+ 4, 150, 149, 133, 134, 1, 4, 149, 148, 132, 133, 1, 4, 148, 147, 131, 132, 1, 4, 147,
+ 146, 130, 131, 1, 4, 146, 145, 129, 130, 1, 4, 145, 144, 128, 129, 1, 4, 160, 175, 159,
+ 144, 1, 4, 175, 174, 158, 159, 1, 4, 174, 173, 157, 158, 1, 4, 173, 172, 156, 157, 1,
+ 4, 172, 171, 155, 156, 1, 4, 171, 170, 154, 155, 1, 4, 170, 169, 153, 154, 1, 4, 169,
+ 168, 152, 153, 1, 4, 168, 167, 151, 152, 1, 4, 167, 166, 150, 151, 1, 4, 166, 165, 149,
+ 150, 1, 4, 165, 164, 148, 149, 1, 4, 164, 163, 147, 148, 1, 4, 163, 162, 146, 147, 1,
+ 4, 162, 161, 145, 146, 1, 4, 161, 160, 144, 145, 1, 4, 176, 191, 175, 160, 1, 4, 191,
+ 190, 174, 175, 1, 4, 190, 189, 173, 174, 1, 4, 189, 188, 172, 173, 1, 4, 188, 187, 171,
+ 172, 1, 4, 187, 186, 170, 171, 1, 4, 186, 185, 169, 170, 1, 4, 185, 184, 168, 169, 1,
+ 4, 184, 183, 167, 168, 1, 4, 183, 182, 166, 167, 1, 4, 182, 181, 165, 166, 1, 4, 181,
+ 180, 164, 165, 1, 4, 180, 179, 163, 164, 1, 4, 179, 178, 162, 163, 1, 4, 178, 177, 161,
+ 162, 1, 4, 177, 176, 160, 161, 1, 4, 192, 207, 191, 176, 1, 4, 207, 206, 190, 191, 1,
+ 4, 206, 205, 189, 190, 1, 4, 205, 204, 188, 189, 1, 4, 204, 203, 187, 188, 1, 4, 203,
+ 202, 186, 187, 1, 4, 202, 201, 185, 186, 1, 4, 201, 200, 184, 185, 1, 4, 200, 199, 183,
+ 184, 1, 4, 199, 198, 182, 183, 1, 4, 198, 197, 181, 182, 1, 4, 197, 196, 180, 181, 1,
+ 4, 196, 195, 179, 180, 1, 4, 195, 194, 178, 179, 1, 4, 194, 193, 177, 178, 1, 4, 193,
+ 192, 176, 177, 1, 4, 208, 223, 207, 192, 1, 4, 223, 222, 206, 207, 1, 4, 222, 221, 205,
+ 206, 1, 4, 221, 220, 204, 205, 1, 4, 220, 219, 203, 204, 1, 4, 219, 218, 202, 203, 1,
+ 4, 218, 217, 201, 202, 1, 4, 217, 216, 200, 201, 1, 4, 216, 215, 199, 200, 1, 4, 215,
+ 214, 198, 199, 1, 4, 214, 213, 197, 198, 1, 4, 213, 212, 196, 197, 1, 4, 212, 211, 195,
+ 196, 1, 4, 211, 210, 194, 195, 1, 4, 210, 209, 193, 194, 1, 4, 209, 208, 192, 193, 1,
+ 4, 224, 239, 223, 208, 1, 4, 239, 238, 222, 223, 1, 4, 238, 237, 221, 222, 1, 4, 237,
+ 236, 220, 221, 1, 4, 236, 235, 219, 220, 1, 4, 235, 234, 218, 219, 1, 4, 234, 233, 217,
+ 218, 1, 4, 233, 232, 216, 217, 1, 4, 232, 231, 215, 216, 1, 4, 231, 230, 214, 215, 1,
+ 4, 230, 229, 213, 214, 1, 4, 229, 228, 212, 213, 1, 4, 228, 227, 211, 212, 1, 4, 227,
+ 226, 210, 211, 1, 4, 226, 225, 209, 210, 1, 4, 225, 224, 208, 209, 1, 4, 240, 255, 239,
+ 224, 1, 4, 255, 254, 238, 239, 1, 4, 254, 253, 237, 238, 1, 4, 253, 252, 236, 237, 1,
+ 4, 252, 251, 235, 236, 1, 4, 251, 250, 234, 235, 1, 4, 250, 249, 233, 234, 1, 4, 249,
+ 248, 232, 233, 1, 4, 248, 247, 231, 232, 1, 4, 247, 246, 230, 231, 1, 4, 246, 245, 229,
+ 230, 1, 4, 245, 244, 228, 229, 1, 4, 244, 243, 227, 228, 1, 4, 243, 242, 226, 227, 1,
+ 4, 242, 241, 225, 226, 1, 4, 241, 240, 224, 225, 1, 4, 256, 271, 255, 240, 1, 4, 271,
+ 270, 254, 255, 1, 4, 270, 269, 253, 254, 1, 4, 269, 268, 252, 253, 1, 4, 268, 267, 251,
+ 252, 1, 4, 267, 266, 250, 251, 1, 4, 266, 265, 249, 250, 1, 4, 265, 264, 248, 249, 1,
+ 4, 264, 263, 247, 248, 1, 4, 263, 262, 246, 247, 1, 4, 262, 261, 245, 246, 1, 4, 261,
+ 260, 244, 245, 1, 4, 260, 259, 243, 244, 1, 4, 259, 258, 242, 243, 1, 4, 258, 257, 241,
+ 242, 1, 4, 257, 256, 240, 241, 1, 4, 272, 287, 271, 256, 1, 4, 287, 286, 270, 271, 1,
+ 4, 286, 285, 269, 270, 1, 4, 285, 284, 268, 269, 1, 4, 284, 283, 267, 268, 1, 4, 283,
+ 282, 266, 267, 1, 4, 282, 281, 265, 266, 1, 4, 281, 280, 264, 265, 1, 4, 280, 279, 263,
+ 264, 1, 4, 279, 278, 262, 263, 1, 4, 278, 277, 261, 262, 1, 4, 277, 276, 260, 261, 1,
+ 4, 276, 275, 259, 260, 1, 4, 275, 274, 258, 259, 1, 4, 274, 273, 257, 258, 1, 4, 273,
+ 272, 256, 257, 1, 4, 288, 303, 287, 272, 1, 4, 303, 302, 286, 287, 1, 4, 302, 301, 285,
+ 286, 1, 4, 301, 300, 284, 285, 1, 4, 300, 299, 283, 284, 1, 4, 299, 298, 282, 283, 1,
+ 4, 298, 297, 281, 282, 1, 4, 297, 296, 280, 281, 1, 4, 296, 295, 279, 280, 1, 4, 295,
+ 294, 278, 279, 1, 4, 294, 293, 277, 278, 1, 4, 293, 292, 276, 277, 1, 4, 292, 291, 275,
+ 276, 1, 4, 291, 290, 274, 275, 1, 4, 290, 289, 273, 274, 1, 4, 289, 288, 272, 273, 1,
+ 4, 304, 319, 303, 288, 1, 4, 319, 318, 302, 303, 1, 4, 318, 317, 301, 302, 1, 4, 317,
+ 316, 300, 301, 1, 4, 316, 315, 299, 300, 1, 4, 315, 314, 298, 299, 1, 4, 314, 313, 297,
+ 298, 1, 4, 313, 312, 296, 297, 1, 4, 312, 311, 295, 296, 1, 4, 311, 310, 294, 295, 1,
+ 4, 310, 309, 293, 294, 1, 4, 309, 308, 292, 293, 1, 4, 308, 307, 291, 292, 1, 4, 307,
+ 306, 290, 291, 1, 4, 306, 305, 289, 290, 1, 4, 305, 304, 288, 289, 1, 4, 320, 335, 319,
+ 304, 1, 4, 335, 334, 318, 319, 1, 4, 334, 333, 317, 318, 1, 4, 333, 332, 316, 317, 1,
+ 4, 332, 331, 315, 316, 1, 4, 331, 330, 314, 315, 1, 4, 330, 329, 313, 314, 1, 4, 329,
+ 328, 312, 313, 1, 4, 328, 327, 311, 312, 1, 4, 327, 326, 310, 311, 1, 4, 326, 325, 309,
+ 310, 1, 4, 325, 324, 308, 309, 1, 4, 324, 323, 307, 308, 1, 4, 323, 322, 306, 307, 1,
+ 4, 322, 321, 305, 306, 1, 4, 321, 320, 304, 305, 1, 4, 336, 351, 335, 320, 1, 4, 351,
+ 350, 334, 335, 1, 4, 350, 349, 333, 334, 1, 4, 349, 348, 332, 333, 1, 4, 348, 347, 331,
+ 332, 1, 4, 347, 346, 330, 331, 1, 4, 346, 345, 329, 330, 1, 4, 345, 344, 328, 329, 1,
+ 4, 344, 343, 327, 328, 1, 4, 343, 342, 326, 327, 1, 4, 342, 341, 325, 326, 1, 4, 341,
+ 340, 324, 325, 1, 4, 340, 339, 323, 324, 1, 4, 339, 338, 322, 323, 1, 4, 338, 337, 321,
+ 322, 1, 4, 337, 336, 320, 321, 1, 4, 352, 367, 351, 336, 1, 4, 367, 366, 350, 351, 1,
+ 4, 366, 365, 349, 350, 1, 4, 365, 364, 348, 349, 1, 4, 364, 363, 347, 348, 1, 4, 363,
+ 362, 346, 347, 1, 4, 362, 361, 345, 346, 1, 4, 361, 360, 344, 345, 1, 4, 360, 359, 343,
+ 344, 1, 4, 359, 358, 342, 343, 1, 4, 358, 357, 341, 342, 1, 4, 357, 356, 340, 341, 1,
+ 4, 356, 355, 339, 340, 1, 4, 355, 354, 338, 339, 1, 4, 354, 353, 337, 338, 1, 4, 353,
+ 352, 336, 337, 1, 4, 368, 383, 367, 352, 1, 4, 383, 382, 366, 367, 1, 4, 382, 381, 365,
+ 366, 1, 4, 381, 380, 364, 365, 1, 4, 380, 379, 363, 364, 1, 4, 379, 378, 362, 363, 1,
+ 4, 378, 377, 361, 362, 1, 4, 377, 376, 360, 361, 1, 4, 376, 375, 359, 360, 1, 4, 375,
+ 374, 358, 359, 1, 4, 374, 373, 357, 358, 1, 4, 373, 372, 356, 357, 1, 4, 372, 371, 355,
+ 356, 1, 4, 371, 370, 354, 355, 1, 4, 370, 369, 353, 354, 1, 4, 369, 368, 352, 353, 1,
+ 4, 384, 399, 383, 368, 1, 4, 399, 398, 382, 383, 1, 4, 398, 397, 381, 382, 1, 4, 397,
+ 396, 380, 381, 1, 4, 396, 395, 379, 380, 1, 4, 395, 394, 378, 379, 1, 4, 394, 393, 377,
+ 378, 1, 4, 393, 392, 376, 377, 1, 4, 392, 391, 375, 376, 1, 4, 391, 390, 374, 375, 1,
+ 4, 390, 389, 373, 374, 1, 4, 389, 388, 372, 373, 1, 4, 388, 387, 371, 372, 1, 4, 387,
+ 386, 370, 371, 1, 4, 386, 385, 369, 370, 1, 4, 385, 384, 368, 369, 1, 4, 400, 415, 399,
+ 384, 1, 4, 415, 414, 398, 399, 1, 4, 414, 413, 397, 398, 1, 4, 413, 412, 396, 397, 1,
+ 4, 412, 411, 395, 396, 1, 4, 411, 410, 394, 395, 1, 4, 410, 409, 393, 394, 1, 4, 409,
+ 408, 392, 393, 1, 4, 408, 407, 391, 392, 1, 4, 407, 406, 390, 391, 1, 4, 406, 405, 389,
+ 390, 1, 4, 405, 404, 388, 389, 1, 4, 404, 403, 387, 388, 1, 4, 403, 402, 386, 387, 1,
+ 4, 402, 401, 385, 386, 1, 4, 401, 400, 384, 385, 1, 4, 416, 431, 415, 400, 1, 4, 431,
+ 430, 414, 415, 1, 4, 430, 429, 413, 414, 1, 4, 429, 428, 412, 413, 1, 4, 428, 427, 411,
+ 412, 1, 4, 427, 426, 410, 411, 1, 4, 426, 425, 409, 410, 1, 4, 425, 424, 408, 409, 1,
+ 4, 424, 423, 407, 408, 1, 4, 423, 422, 406, 407, 1, 4, 422, 421, 405, 406, 1, 4, 421,
+ 420, 404, 405, 1, 4, 420, 419, 403, 404, 1, 4, 419, 418, 402, 403, 1, 4, 418, 417, 401,
+ 402, 1, 4, 417, 416, 400, 401, 1, 4, 432, 447, 431, 416, 1, 4, 447, 446, 430, 431, 1,
+ 4, 446, 445, 429, 430, 1, 4, 445, 444, 428, 429, 1, 4, 444, 443, 427, 428, 1, 4, 443,
+ 442, 426, 427, 1, 4, 442, 441, 425, 426, 1, 4, 441, 440, 424, 425, 1, 4, 440, 439, 423,
+ 424, 1, 4, 439, 438, 422, 423, 1, 4, 438, 437, 421, 422, 1, 4, 437, 436, 420, 421, 1,
+ 4, 436, 435, 419, 420, 1, 4, 435, 434, 418, 419, 1, 4, 434, 433, 417, 418, 1, 4, 433,
+ 432, 416, 417, 1, 4, 448, 463, 447, 432, 1, 4, 463, 462, 446, 447, 1, 4, 462, 461, 445,
+ 446, 1, 4, 461, 460, 444, 445, 1, 4, 460, 459, 443, 444, 1, 4, 459, 458, 442, 443, 1,
+ 4, 458, 457, 441, 442, 1, 4, 457, 456, 440, 441, 1, 4, 456, 455, 439, 440, 1, 4, 455,
+ 454, 438, 439, 1, 4, 454, 453, 437, 438, 1, 4, 453, 452, 436, 437, 1, 4, 452, 451, 435,
+ 436, 1, 4, 451, 450, 434, 435, 1, 4, 450, 449, 433, 434, 1, 4, 449, 448, 432, 433, 1,
+ 4, 464, 479, 463, 448, 1, 4, 479, 478, 462, 463, 1, 4, 478, 477, 461, 462, 1, 4, 477,
+ 476, 460, 461, 1, 4, 476, 475, 459, 460, 1, 4, 475, 474, 458, 459, 1, 4, 474, 473, 457,
+ 458, 1, 4, 473, 472, 456, 457, 1, 4, 472, 471, 455, 456, 1, 4, 471, 470, 454, 455, 1,
+ 4, 470, 469, 453, 454, 1, 4, 469, 468, 452, 453, 1, 4, 468, 467, 451, 452, 1, 4, 467,
+ 466, 450, 451, 1, 4, 466, 465, 449, 450, 1, 4, 465, 464, 448, 449, 1, 4, 480, 495, 479,
+ 464, 1, 4, 495, 494, 478, 479, 1, 4, 494, 493, 477, 478, 1, 4, 493, 492, 476, 477, 1,
+ 4, 492, 491, 475, 476, 1, 4, 491, 490, 474, 475, 1, 4, 490, 489, 473, 474, 1, 4, 489,
+ 488, 472, 473, 1, 4, 488, 487, 471, 472, 1, 4, 487, 486, 470, 471, 1, 4, 486, 485, 469,
+ 470, 1, 4, 485, 484, 468, 469, 1, 4, 484, 483, 467, 468, 1, 4, 483, 482, 466, 467, 1,
+ 4, 482, 481, 465, 466, 1, 4, 481, 480, 464, 465, 1, 4, 496, 511, 495, 480, 1, 4, 511,
+ 510, 494, 495, 1, 4, 510, 509, 493, 494, 1, 4, 509, 508, 492, 493, 1, 4, 508, 507, 491,
+ 492, 1, 4, 507, 506, 490, 491, 1, 4, 506, 505, 489, 490, 1, 4, 505, 504, 488, 489, 1,
+ 4, 504, 503, 487, 488, 1, 4, 503, 502, 486, 487, 1, 4, 502, 501, 485, 486, 1, 4, 501,
+ 500, 484, 485, 1, 4, 500, 499, 483, 484, 1, 4, 499, 498, 482, 483, 1, 4, 498, 497, 481,
+ 482, 1, 4, 497, 496, 480, 481, 1, 4, 0, 15, 511, 496, 1, 4, 15, 14, 510, 511, 1,
+4, 14, 13, 509, 510, 1, 4, 13, 12, 508, 509, 1, 4, 12, 11, 507, 508, 1, 4, 11,
+ 10, 506, 507, 1, 4, 10, 9, 505, 506, 1, 4, 9, 8, 504, 505, 1, 4, 8, 7, 503,
+ 504, 1, 4, 7, 6, 502, 503, 1, 4, 6, 5, 501, 502, 1, 4, 5, 4, 500, 501, 1,
+ 4, 4, 3, 499, 500, 1, 4, 3, 2, 498, 499, 1, 4, 2, 1, 497, 498, 1, 4, 1,
+ 0, 496, 497, 1,
+ 0
+};
+
+struct lwo LWO_BigValve =
+{
+ 716, /* number of points */
+ BigValve_PNTS, BigValve_normals, BigValve_POLS, 0L
+};
+
+static const GLfloat Bolts3D_PNTS[] =
+{
+ -0.160704, 0.399, 0.6,
+ -0.160704, 0.399, -0.5,
+ -0.4, 0.160257, 0.6,
+ -0.4, 0.160257, -0.5,
+ -0.4, -0.170369, 0.6,
+ -0.4, -0.170369, -0.5,
+ -0.153738, -0.4, 0.6,
+ -0.153738, -0.4, -0.5,
+ 0.176887, -0.4, 0.6,
+ 0.176887, -0.4, -0.5,
+ 0.4, -0.163403, 0.6,
+ 0.4, -0.163403, -0.5,
+ 0.4, 0.167223, 0.6,
+ 0.4, 0.167223, -0.5,
+ 0.169922, 0.399, 0.6,
+ 0.169922, 0.399, -0.5,
+ -0.160704, 0.399, 0.5,
+ -0.160704, 0.399, -0.6,
+ -0.4, 0.160257, -0.6,
+ -0.4, 0.160257, 0.5,
+ -0.4, -0.170369, -0.6,
+ -0.4, -0.170369, 0.5,
+ -0.153738, -0.4, -0.6,
+ -0.153738, -0.4, 0.5,
+ 0.176887, -0.4, 0.5,
+ 0.176887, -0.4, -0.6,
+ 0.4, -0.163403, 0.5,
+ 0.4, -0.163403, -0.6,
+ 0.4, 0.167223, -0.6,
+ 0.4, 0.167223, 0.5,
+ 0.169922, 0.399, -0.6,
+ 0.169922, 0.399, 0.5,
+};
+
+static const GLfloat Bolts3D_normals[] =
+{
+ 0, 1, 0,
+ 0.709703, 0.704502, 0,
+ 1, 0, 0,
+ 0.727535, -0.68607, 0,
+ 0, -1, 0,
+ -0.68198, -0.73137, 0,
+ -1, 0, 0,
+ -0.706289, 0.707924, 0,
+ 0, 0, 1,
+ 0, 1, 0,
+ 0.709703, 0.704502, 0,
+ 1, 0, 0,
+ 0.727535, -0.68607, 0,
+ 0, -1, 0,
+ -0.68198, -0.73137, 0,
+ -1, 0, 0,
+ -0.706289, 0.707924, 0,
+ 0, 0, -1,
+};
+
+static const unsigned short int Bolts3D_POLS[] =
+{
+ 4, 16, 31, 14, 0, 1, 4, 31, 29, 12, 14, 1, 4, 29, 26, 10, 12, 1, 4, 26,
+ 24, 8, 10, 1, 4, 24, 23, 6, 8, 1, 4, 23, 21, 4, 6, 1, 4, 21, 19, 2,
+ 4, 1, 4, 19, 16, 0, 2, 1, 8, 14, 12, 10, 8, 6, 4, 2, 0, 1, 4, 17,
+ 30, 15, 1, 1, 4, 30, 28, 13, 15, 1, 4, 28, 27, 11, 13, 1, 4, 27, 25, 9,
+ 11, 1, 4, 25, 22, 7, 9, 1, 4, 22, 20, 5, 7, 1, 4, 20, 18, 3, 5, 1,
+ 4, 18, 17, 1, 3, 1, 8, 30, 17, 18, 20, 22, 25, 27, 28, 1,
+ 0
+};
+
+struct lwo LWO_Bolts3D =
+{
+ 32, /* number of points */
+ Bolts3D_PNTS, Bolts3D_normals, Bolts3D_POLS, 0L
+};
+
+static const GLfloat GuageConnector_PNTS[] =
+{
+ 0.2, 0.4, 0,
+ 0.2, 0.8, 0,
+ 0.193185, 0.4, -0.051764,
+ 0.193185, 0.8, -0.051764,
+ 0.173205, 0.4, -0.1,
+ 0.173205, 0.8, -0.1,
+ 0.141421, 0.8, -0.141421,
+ 0.141421, 0.4, -0.141421,
+ 0.1, 0.4, -0.173205,
+ 0.1, 0.8, -0.173205,
+ 0.051764, 0.8, -0.193185,
+ 0.051764, 0.4, -0.193185,
+ 0, 0.8, -0.2,
+ 0, 0.4, -0.2,
+ -0.051764, 0.8, -0.193185,
+ -0.051764, 0.4, -0.193185,
+ -0.1, 0.8, -0.173205,
+ -0.1, 0.4, -0.173205,
+ -0.141421, 0.4, -0.141421,
+ -0.141421, 0.8, -0.141421,
+ -0.173205, 0.8, -0.1,
+ -0.173205, 0.4, -0.1,
+ -0.193185, 0.4, -0.051764,
+ -0.193185, 0.8, -0.051764,
+ -0.2, 0.4, 0,
+ -0.2, 0.8, 0,
+ -0.193185, 0.4, 0.051764,
+ -0.193185, 0.8, 0.051764,
+ -0.173205, 0.4, 0.1,
+ -0.173205, 0.8, 0.1,
+ -0.141421, 0.8, 0.141421,
+ -0.141421, 0.4, 0.141421,
+ -0.1, 0.8, 0.173205,
+ -0.1, 0.4, 0.173205,
+ -0.051764, 0.8, 0.193185,
+ -0.051764, 0.4, 0.193185,
+ 0, 0.8, 0.2,
+ 0, 0.4, 0.2,
+ 0.051764, 0.8, 0.193185,
+ 0.051764, 0.4, 0.193185,
+ 0.1, 0.4, 0.173205,
+ 0.1, 0.8, 0.173205,
+ 0.141421, 0.4, 0.141421,
+ 0.141421, 0.8, 0.141421,
+ 0.173205, 0.8, 0.1,
+ 0.173205, 0.4, 0.1,
+ 0.193185, 0.4, 0.051764,
+ 0.193185, 0.8, 0.051764,
+ 0.2, 0.55, 0,
+ 0.193185, 0.55, -0.051764,
+ 0.173205, 0.55, -0.1,
+ 0.141421, 0.55, -0.141421,
+ 0.1, 0.55, -0.173205,
+ 0.051764, 0.55, -0.193185,
+ 0, 0.55, -0.2,
+ -0.051764, 0.55, -0.193185,
+ -0.1, 0.55, -0.173205,
+ -0.141421, 0.55, -0.141421,
+ -0.173205, 0.55, -0.1,
+ -0.193185, 0.55, -0.051764,
+ -0.2, 0.55, 0,
+ -0.193185, 0.55, 0.051764,
+ -0.173205, 0.55, 0.1,
+ -0.141421, 0.55, 0.141421,
+ -0.1, 0.55, 0.173205,
+ -0.051764, 0.55, 0.193185,
+ 0, 0.55, 0.2,
+ 0.051764, 0.55, 0.193185,
+ 0.1, 0.55, 0.173205,
+ 0.141421, 0.55, 0.141421,
+ 0.173205, 0.55, 0.1,
+ 0.193185, 0.55, 0.051764,
+ 0.15, 0.55, 0,
+ 0.144889, 0.55, -0.038823,
+ 0.129904, 0.55, -0.075,
+ 0.106066, 0.55, -0.106066,
+ 0.075, 0.55, -0.129904,
+ 0.038823, 0.55, -0.144889,
+ 0, 0.55, -0.15,
+ -0.038823, 0.55, -0.144889,
+ -0.075, 0.55, -0.129904,
+ -0.106066, 0.55, -0.106066,
+ -0.129904, 0.55, -0.075,
+ -0.144889, 0.55, -0.038823,
+ -0.15, 0.55, 0,
+ -0.144889, 0.55, 0.038823,
+ -0.129904, 0.55, 0.075,
+ -0.106066, 0.55, 0.106066,
+ -0.075, 0.55, 0.129904,
+ -0.038823, 0.55, 0.144889,
+ 0, 0.55, 0.15,
+ 0.038823, 0.55, 0.144889,
+ 0.075, 0.55, 0.129904,
+ 0.106066, 0.55, 0.106066,
+ 0.129904, 0.55, 0.075,
+ 0.144889, 0.55, 0.038823,
+ 0.15, 0.8, 0,
+ 0.144889, 0.8, -0.038823,
+ 0.129904, 0.8, -0.075,
+ 0.106066, 0.8, -0.106066,
+ 0.075, 0.8, -0.129904,
+ 0.038823, 0.8, -0.144889,
+ 0, 0.8, -0.15,
+ -0.038823, 0.8, -0.144889,
+ -0.075, 0.8, -0.129904,
+ -0.106066, 0.8, -0.106066,
+ -0.129904, 0.8, -0.075,
+ -0.144889, 0.8, -0.038823,
+ -0.15, 0.8, 0,
+ -0.144889, 0.8, 0.038823,
+ -0.129904, 0.8, 0.075,
+ -0.106066, 0.8, 0.106066,
+ -0.075, 0.8, 0.129904,
+ -0.038823, 0.8, 0.144889,
+ 0, 0.8, 0.15,
+ 0.038823, 0.8, 0.144889,
+ 0.075, 0.8, 0.129904,
+ 0.106066, 0.8, 0.106066,
+ 0.129904, 0.8, 0.075,
+ 0.144889, 0.8, 0.038823,
+ 0.2, 0.875988, 0,
+ 0.193185, 0.872346, -0.051764,
+ 0.191342, 0.87136, -0.056214,
+ 0.173205, 0.865859, -0.1,
+ 0.141421, 0.856217, -0.141421,
+ 0.1, 0.843652, -0.173205,
+ 0.097545, 0.842907, -0.174222,
+ 0.051764, 0.838398, -0.193185,
+ 0, 0.8333, -0.2,
+ -0.051764, 0.838398, -0.193185,
+ -0.097545, 0.842907, -0.174222,
+ -0.1, 0.843652, -0.173205,
+ -0.141421, 0.856217, -0.141421,
+ -0.173205, 0.865859, -0.1,
+ -0.191342, 0.87136, -0.056214,
+ -0.193185, 0.872346, -0.051764,
+ -0.2, 0.875988, 0,
+ -0.193185, 0.872346, 0.051764,
+ -0.173205, 0.865859, 0.1,
+ -0.191342, 0.87136, 0.056214,
+ -0.141421, 0.856217, 0.141421,
+ -0.1, 0.843652, 0.173205,
+ -0.051764, 0.838398, 0.193185,
+ -0.097545, 0.842907, 0.174222,
+ 0, 0.8333, 0.2,
+ 0.051764, 0.838398, 0.193185,
+ 0.1, 0.843652, 0.173205,
+ 0.097545, 0.842907, 0.174222,
+ 0.141421, 0.856217, 0.141421,
+ 0.173205, 0.865859, 0.1,
+ 0.193185, 0.872346, 0.051764,
+ 0.191342, 0.87136, 0.056214,
+};
+
+static const GLfloat GuageConnector_normals[] =
+{
+ 0.991445, 0, -0.130526,
+ 0.92388, 0, -0.382683,
+ 0.793353, 0, -0.608761,
+ 0.608761, 0, -0.793353,
+ 0.382683, 0, -0.92388,
+ 0.130526, 0, -0.991445,
+ -0.130526, 0, -0.991445,
+ -0.382683, 0, -0.92388,
+ -0.608761, 0, -0.793353,
+ -0.793353, 0, -0.608761,
+ -0.92388, 0, -0.382683,
+ -0.991445, 0, -0.130526,
+ -0.991445, 0, 0.130526,
+ -0.92388, 0, 0.382683,
+ -0.793353, 0, 0.608761,
+ -0.608761, 0, 0.793353,
+ -0.382683, 0, 0.92388,
+ -0.130526, 0, 0.991445,
+ 0.130526, 0, 0.991445,
+ 0.382683, 0, 0.92388,
+ 0.608761, 0, 0.793353,
+ 0.793353, 0, 0.608761,
+ 0.92388, 0, 0.382683,
+ 0.991445, 0, 0.130526,
+ 0.991445, 0, -0.130526,
+ 0.92388, 0, -0.382684,
+ 0.793353, 0, -0.608761,
+ 0.608761, 0, -0.793353,
+ 0.382684, 0, -0.92388,
+ 0.130526, 0, -0.991445,
+ -0.130526, 0, -0.991445,
+ -0.382684, 0, -0.92388,
+ -0.608761, 0, -0.793353,
+ -0.793353, 0, -0.608761,
+ -0.92388, 0, -0.382684,
+ -0.991445, 0, -0.130526,
+ -0.991445, 0, 0.130526,
+ -0.92388, 0, 0.382684,
+ -0.793353, 0, 0.608761,
+ -0.608761, 0, 0.793353,
+ -0.382684, 0, 0.92388,
+ -0.130526, 0, 0.991445,
+ 0.130526, 0, 0.991445,
+ 0.382684, 0, 0.92388,
+ 0.608761, 0, 0.793353,
+ 0.793353, 0, 0.608761,
+ 0.92388, 0, 0.382684,
+ 0.991445, 0, 0.130526,
+ 0, -1, 0,
+ 0.991445, 0, -0.130526,
+ 0.92388, 0, -0.382684,
+ 0.793353, 0, -0.608761,
+ 0.608761, 0, -0.793353,
+ 0.382684, 0, -0.92388,
+ 0.130526, 0, -0.991445,
+ -0.130526, 0, -0.991445,
+ -0.382684, 0, -0.92388,
+ -0.608761, 0, -0.793353,
+ -0.793353, 0, -0.608761,
+ -0.92388, 0, -0.382684,
+ -0.991445, 0, -0.130526,
+ -0.991445, 0, 0.130526,
+ -0.92388, 0, 0.382684,
+ -0.793353, 0, 0.608761,
+ -0.608761, 0, 0.793353,
+ -0.382684, 0, 0.92388,
+ -0.130526, 0, 0.991445,
+ 0.130526, 0, 0.991445,
+ 0.382684, 0, 0.92388,
+ 0.608761, 0, 0.793353,
+ 0.793353, 0, 0.608761,
+ 0.92388, 0, 0.382684,
+ 0.991445, 0, 0.130526,
+ 0, 1, 0,
+};
+
+static const unsigned short int GuageConnector_POLS[] =
+{
+ 4, 1, 120, 121, 3, 1, 5, 3, 121, 122, 123, 5, 1, 4, 5, 123, 124, 6, 1, 4,
+6, 124, 125, 9, 1, 5, 9, 125, 126, 127, 10, 1, 4, 10, 127, 128, 12, 1, 4, 14,
+ 12, 128, 129, 1, 5, 16, 14, 129, 130, 131, 1, 4, 19, 16, 131, 132, 1, 4, 20, 19,
+ 132, 133, 1, 5, 23, 20, 133, 134, 135, 1, 4, 25, 23, 135, 136, 1, 4, 25, 136, 137,
+ 27, 1, 5, 27, 137, 139, 138, 29, 1, 4, 29, 138, 140, 30, 1, 4, 30, 140, 141, 32,
+ 1, 5, 32, 141, 143, 142, 34, 1, 4, 34, 142, 144, 36, 1, 4, 38, 36, 144, 145, 1,
+ 5, 41, 38, 145, 147, 146, 1, 4, 43, 41, 146, 148, 1, 4, 44, 43, 148, 149, 1, 5,
+47, 44, 149, 151, 150, 1, 4, 1, 47, 150, 120, 1, 4, 96, 97, 73, 72, 1, 4, 97,
+ 98, 74, 73, 1, 4, 98, 99, 75, 74, 1, 4, 99, 100, 76, 75, 1, 4, 100, 101, 77,
+76, 1, 4, 101, 102, 78, 77, 1, 4, 102, 103, 79, 78, 1, 4, 103, 104, 80, 79, 1,
+ 4, 104, 105, 81, 80, 1, 4, 105, 106, 82, 81, 1, 4, 106, 107, 83, 82, 1, 4, 107,
+ 108, 84, 83, 1, 4, 108, 109, 85, 84, 1, 4, 109, 110, 86, 85, 1, 4, 110, 111, 87,
+86, 1, 4, 111, 112, 88, 87, 1, 4, 112, 113, 89, 88, 1, 4, 113, 114, 90, 89, 1,
+ 4, 114, 115, 91, 90, 1, 4, 115, 116, 92, 91, 1, 4, 116, 117, 93, 92, 1, 4, 117,
+ 118, 94, 93, 1, 4, 118, 119, 95, 94, 1, 4, 119, 96, 72, 95, 1, 24, 1, 3, 5,
+6, 9, 10, 12, 14, 16, 19, 20, 23, 25, 27, 29, 30, 32, 34, 36, 38, 41, 43, 44,
+ 47, 1, 4, 48, 49, 2, 0, 1, 4, 49, 50, 4, 2, 1, 4, 50, 51, 7, 4, 1,
+ 4, 51, 52, 8, 7, 1, 4, 52, 53, 11, 8, 1, 4, 53, 54, 13, 11, 1, 4, 54,
+ 55, 15, 13, 1, 4, 55, 56, 17, 15, 1, 4, 56, 57, 18, 17, 1, 4, 57, 58, 21,
+ 18, 1, 4, 58, 59, 22, 21, 1, 4, 59, 60, 24, 22, 1, 4, 60, 61, 26, 24, 1,
+ 4, 61, 62, 28, 26, 1, 4, 62, 63, 31, 28, 1, 4, 63, 64, 33, 31, 1, 4, 64,
+ 65, 35, 33, 1, 4, 65, 66, 37, 35, 1, 4, 66, 67, 39, 37, 1, 4, 67, 68, 40,
+ 39, 1, 4, 68, 69, 42, 40, 1, 4, 69, 70, 45, 42, 1, 4, 70, 71, 46, 45, 1,
+ 4, 71, 48, 0, 46, 1, 24, 48, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60,
+ 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 1,
+ 0
+};
+
+struct lwo LWO_GuageConnector =
+{
+ 152, /* number of points */
+ GuageConnector_PNTS, GuageConnector_normals, GuageConnector_POLS, 0L
+};
+
+static const GLfloat GuageDial_PNTS[] =
+{
+ 0, 0.05, 0.3,
+ 0.019134, 0.046194, 0.3,
+ 0.035355, 0.035355, 0.3,
+ 0.046194, 0.019134, 0.3,
+ 0.05, 0, 0.3,
+ 0.046194, -0.019134, 0.3,
+ 0.035355, -0.0354, 0.275,
+ 0.035355, -0.0354, 0.3,
+ 0.019134, -0.0462, 0.3,
+ 0, -0.05, 0.3,
+ -0.019134, -0.0462, 0.3,
+ -0.035355, -0.0354, 0.275,
+ -0.035355, -0.0354, 0.3,
+ -0.046194, -0.019134, 0.3,
+ -0.05, 0, 0.3,
+ -0.046194, 0.019134, 0.3,
+ -0.035355, 0.035355, 0.3,
+ -0.019134, 0.046194, 0.3,
+ 0, 0.05, 0.2,
+ 0.019134, 0.046194, 0.2,
+ 0.035355, 0.035355, 0.2,
+ 0.046194, 0.019134, 0.2,
+ 0.05, 0, 0.2,
+ 0.046194, -0.019134, 0.2,
+ 0.035355, -0.035355, 0.2,
+ 0.019134, -0.046194, 0.2,
+ 0, -0.05, 0.2,
+ -0.019134, -0.046194, 0.2,
+ -0.035355, -0.035355, 0.2,
+ -0.046194, -0.019134, 0.2,
+ -0.05, 0, 0.2,
+ -0.046194, 0.019134, 0.2,
+ -0.035355, 0.035355, 0.2,
+ -0.019134, 0.046194, 0.2,
+ 0, -0.3733, 0.275,
+};
+
+static const GLfloat GuageDial_normals[] =
+{
+ 0, 0, 1,
+ 0, 0, 1,
+ 0.195089, 0.980786, 0,
+ 0.55557, 0.83147, 0,
+ 0.83147, 0.55557, 0,
+ 0.980785, 0.19509, 0,
+ 0.980785, -0.19509, 0,
+ 0.83147, -0.55557, -0.000248,
+ 0.55557, -0.83147, -0.000051,
+ 0.195089, -0.980786, 0,
+ -0.195089, -0.980786, -0.00006,
+ -0.55557, -0.83147, -0.000371,
+ -0.83147, -0.55557, 0,
+ -0.980785, -0.19509, 0,
+ -0.980785, 0.19509, 0,
+ -0.83147, 0.55557, 0,
+ -0.55557, 0.83147, 0,
+ -0.195089, 0.980786, 0,
+};
+
+static const unsigned short int GuageDial_POLS[] =
+{
+ 3, 11, 6, 34, 1, 16, 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15,
+ 16, 17, 1, 4, 18, 19, 1, 0, 1, 4, 19, 20, 2, 1, 1, 4, 20, 21, 3, 2,
+ 1, 4, 21, 22, 4, 3, 1, 4, 22, 23, 5, 4, 1, 4, 23, 24, 7, 5, 1, 4,
+ 24, 25, 8, 7, 1, 4, 25, 26, 9, 8, 1, 4, 26, 27, 10, 9, 1, 4, 27, 28,
+ 12, 10, 1, 4, 28, 29, 13, 12, 1, 4, 29, 30, 14, 13, 1, 4, 30, 31, 15, 14,
+ 1, 4, 31, 32, 16, 15, 1, 4, 32, 33, 17, 16, 1, 4, 33, 18, 0, 17, 1,
+ 0
+};
+
+struct lwo LWO_GuageDial =
+{
+ 35, /* number of points */
+ GuageDial_PNTS, GuageDial_normals, GuageDial_POLS, 0L
+};
+
+static const GLfloat GuageFace_PNTS[] =
+{
+ 0, 1.7833, 0.2,
+ -0.087791, 1.774653, 0.2,
+ -0.172208, 1.749046, 0.2,
+ -0.250007, 1.707461, 0.2,
+ -0.318198, 1.651498, 0.2,
+ -0.374161, 1.583307, 0.2,
+ -0.415746, 1.505508, 0.2,
+ -0.441353, 1.421091, 0.2,
+ -0.45, 1.3333, 0.2,
+ -0.441353, 1.245509, 0.2,
+ -0.415746, 1.161092, 0.2,
+ -0.374161, 1.083293, 0.2,
+ -0.318198, 1.015102, 0.2,
+ -0.250007, 0.959139, 0.2,
+ -0.172208, 0.917554, 0.2,
+ -0.087791, 0.891947, 0.2,
+ 0, 0.8833, 0.2,
+ 0.087791, 0.891947, 0.2,
+ 0.172208, 0.917554, 0.2,
+ 0.250007, 0.959139, 0.2,
+ 0.318198, 1.015102, 0.2,
+ 0.374161, 1.083293, 0.2,
+ 0.415746, 1.161092, 0.2,
+ 0.441353, 1.245509, 0.2,
+ 0.45, 1.3333, 0.2,
+ 0.441353, 1.421091, 0.2,
+ 0.415746, 1.505508, 0.2,
+ 0.374161, 1.583307, 0.2,
+ 0.318198, 1.651498, 0.2,
+ 0.250007, 1.707461, 0.2,
+ 0.172208, 1.749046, 0.2,
+ 0.087791, 1.774653, 0.2,
+};
+
+static const GLfloat GuageFace_normals[] =
+{
+ 0, 0, 1,
+};
+
+static const unsigned short int GuageFace_POLS[] =
+{
+32, 0, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14,
+ 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1,
+ 0
+};
+
+struct lwo LWO_GuageFace =
+{
+ 32, /* number of points */
+ GuageFace_PNTS, GuageFace_normals, GuageFace_POLS, 0L
+};
+
+static const GLfloat GuageHead_PNTS[] =
+{
+ 0, 1.8333, 0.33333,
+ 0.097545, 1.823693, 0.33333,
+ 0.191342, 1.79524, 0.33333,
+ 0.277785, 1.749035, 0.33333,
+ 0.353553, 1.686853, 0.33333,
+ 0.415735, 1.611085, 0.33333,
+ 0.46194, 1.524642, 0.33333,
+ 0.490393, 1.430845, 0.33333,
+ 0.5, 1.3333, 0.33333,
+ 0.490393, 1.235755, 0.33333,
+ 0.46194, 1.141958, 0.33333,
+ 0.415735, 1.055515, 0.33333,
+ 0.353553, 0.979747, 0.33333,
+ 0.277785, 0.917565, 0.33333,
+ 0.191342, 0.87136, 0.33333,
+ 0.097545, 0.842907, 0.33333,
+ 0, 0.8333, 0.33333,
+ -0.097545, 0.842907, 0.33333,
+ -0.191342, 0.87136, 0.33333,
+ -0.277785, 0.917565, 0.33333,
+ -0.353553, 0.979747, 0.33333,
+ -0.415735, 1.055515, 0.33333,
+ -0.46194, 1.141958, 0.33333,
+ -0.490393, 1.235755, 0.33333,
+ -0.5, 1.3333, 0.33333,
+ -0.490393, 1.430845, 0.33333,
+ -0.46194, 1.524642, 0.33333,
+ -0.415735, 1.611085, 0.33333,
+ -0.353553, 1.686853, 0.33333,
+ -0.277785, 1.749035, 0.33333,
+ -0.191342, 1.79524, 0.33333,
+ -0.097545, 1.823693, 0.33333,
+ 0, 1.8333, -0.33333,
+ 0.097545, 1.823693, -0.33333,
+ 0.191342, 1.79524, -0.33333,
+ 0.277785, 1.749035, -0.33333,
+ 0.353553, 1.686853, -0.33333,
+ 0.415735, 1.611085, -0.33333,
+ 0.46194, 1.524642, -0.33333,
+ 0.490393, 1.430845, -0.33333,
+ 0.5, 1.3333, -0.33333,
+ 0.490393, 1.235755, -0.33333,
+ 0.46194, 1.141958, -0.33333,
+ 0.415735, 1.055515, -0.33333,
+ 0.353553, 0.979747, -0.33333,
+ 0.277785, 0.917565, -0.33333,
+ 0.191342, 0.87136, -0.33333,
+ 0.097545, 0.842907, -0.33333,
+ 0, 0.8333, -0.33333,
+ -0.097545, 0.842907, -0.33333,
+ -0.191342, 0.87136, -0.33333,
+ -0.277785, 0.917565, -0.33333,
+ -0.353553, 0.979747, -0.33333,
+ -0.415735, 1.055515, -0.33333,
+ -0.46194, 1.141958, -0.33333,
+ -0.490393, 1.235755, -0.33333,
+ -0.5, 1.3333, -0.33333,
+ -0.490393, 1.430845, -0.33333,
+ -0.46194, 1.524642, -0.33333,
+ -0.415735, 1.611085, -0.33333,
+ -0.353553, 1.686853, -0.33333,
+ -0.277785, 1.749035, -0.33333,
+ -0.191342, 1.79524, -0.33333,
+ -0.097545, 1.823693, -0.33333,
+ 0.087791, 1.774653, 0.33333,
+ 0, 1.7833, 0.33333,
+ 0.172208, 1.749046, 0.33333,
+ 0.250007, 1.707461, 0.33333,
+ 0.318198, 1.651498, 0.33333,
+ 0.374161, 1.583307, 0.33333,
+ 0.415746, 1.505508, 0.33333,
+ 0.441353, 1.421091, 0.33333,
+ 0.45, 1.3333, 0.33333,
+ 0.441353, 1.245509, 0.33333,
+ 0.415746, 1.161092, 0.33333,
+ 0.374161, 1.083293, 0.33333,
+ 0.318198, 1.015102, 0.33333,
+ 0.250007, 0.959139, 0.33333,
+ 0.172208, 0.917554, 0.33333,
+ 0.087791, 0.891947, 0.33333,
+ 0, 0.8833, 0.33333,
+ -0.087791, 0.891947, 0.33333,
+ -0.172208, 0.917554, 0.33333,
+ -0.250007, 0.959139, 0.33333,
+ -0.318198, 1.015102, 0.33333,
+ -0.374161, 1.083293, 0.33333,
+ -0.415746, 1.161092, 0.33333,
+ -0.441353, 1.245509, 0.33333,
+ -0.45, 1.3333, 0.33333,
+ -0.441353, 1.421091, 0.33333,
+ -0.415746, 1.505508, 0.33333,
+ -0.374161, 1.583307, 0.33333,
+ -0.318198, 1.651498, 0.33333,
+ -0.250007, 1.707461, 0.33333,
+ -0.172208, 1.749046, 0.33333,
+ -0.087791, 1.774653, 0.33333,
+ 0, 1.7833, 0.2,
+ -0.087791, 1.774653, 0.2,
+ -0.172208, 1.749046, 0.2,
+ -0.250007, 1.707461, 0.2,
+ -0.318198, 1.651498, 0.2,
+ -0.374161, 1.583307, 0.2,
+ -0.415746, 1.505508, 0.2,
+ -0.441353, 1.421091, 0.2,
+ -0.45, 1.3333, 0.2,
+ -0.441353, 1.245509, 0.2,
+ -0.415746, 1.161092, 0.2,
+ -0.374161, 1.083293, 0.2,
+ -0.318198, 1.015102, 0.2,
+ -0.250007, 0.959139, 0.2,
+ -0.172208, 0.917554, 0.2,
+ -0.087791, 0.891947, 0.2,
+ 0, 0.8833, 0.2,
+ 0.087791, 0.891947, 0.2,
+ 0.172208, 0.917554, 0.2,
+ 0.250007, 0.959139, 0.2,
+ 0.318198, 1.015102, 0.2,
+ 0.374161, 1.083293, 0.2,
+ 0.415746, 1.161092, 0.2,
+ 0.441353, 1.245509, 0.2,
+ 0.45, 1.3333, 0.2,
+ 0.441353, 1.421091, 0.2,
+ 0.415746, 1.505508, 0.2,
+ 0.374161, 1.583307, 0.2,
+ 0.318198, 1.651498, 0.2,
+ 0.250007, 1.707461, 0.2,
+ 0.172208, 1.749046, 0.2,
+ 0.087791, 1.774653, 0.2,
+};
+
+static const GLfloat GuageHead_normals[] =
+{
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0, 0, 1,
+ 0.098017, -0.995185, 0,
+ 0.290285, -0.95694, 0,
+ 0.471397, -0.881921, 0,
+ 0.634393, -0.77301, 0,
+ 0.773011, -0.634393, 0,
+ 0.881921, -0.471397, 0,
+ 0.95694, -0.290284, 0,
+ 0.995185, -0.098017, 0,
+ 0.995185, 0.098017, 0,
+ 0.95694, 0.290284, 0,
+ 0.881921, 0.471397, 0,
+ 0.773011, 0.634393, 0,
+ 0.634393, 0.773011, 0,
+ 0.471397, 0.881921, 0,
+ 0.290285, 0.95694, 0,
+ 0.098017, 0.995185, 0,
+ -0.098017, 0.995185, 0,
+ -0.290285, 0.95694, 0,
+ -0.471397, 0.881921, 0,
+ -0.634393, 0.773011, 0,
+ -0.773011, 0.634393, 0,
+ -0.881921, 0.471397, 0,
+ -0.95694, 0.290284, 0,
+ -0.995185, 0.098017, 0,
+ -0.995185, -0.098017, 0,
+ -0.95694, -0.290284, 0,
+ -0.881921, -0.471397, 0,
+ -0.773011, -0.634393, 0,
+ -0.634393, -0.77301, 0,
+ -0.471397, -0.881921, 0,
+ -0.290285, -0.95694, 0,
+ -0.098017, -0.995185, 0,
+ 0.098017, 0.995185, 0,
+ 0.290285, 0.95694, 0,
+ 0.471397, 0.881921, 0,
+ 0.634393, 0.773011, 0,
+ 0.773011, 0.634393, 0,
+ 0.881921, 0.471397, 0,
+ 0.95694, 0.290284, 0,
+ 0.995185, 0.098017, 0,
+ 0.995185, -0.098017, 0,
+ 0.95694, -0.290284, 0,
+ 0.881921, -0.471397, 0,
+ 0.773011, -0.634393, 0,
+ 0.634393, -0.77301, 0,
+ 0.471396, -0.881921, 0,
+ 0.290285, -0.95694, 0,
+ 0.098017, -0.995185, 0,
+ -0.098017, -0.995185, 0,
+ -0.290285, -0.95694, 0,
+ -0.471396, -0.881921, 0,
+ -0.634393, -0.77301, 0,
+ -0.773011, -0.634393, 0,
+ -0.881921, -0.471397, 0,
+ -0.95694, -0.290284, 0,
+ -0.995185, -0.098017, 0,
+ -0.995185, 0.098017, 0,
+ -0.95694, 0.290284, 0,
+ -0.881921, 0.471397, 0,
+ -0.773011, 0.634393, 0,
+ -0.634393, 0.773011, 0,
+ -0.471397, 0.881921, 0,
+ -0.290285, 0.95694, 0,
+ -0.098017, 0.995185, 0,
+ 0, 0, -1,
+};
+
+static const unsigned short int GuageHead_POLS[] =
+{
+ 3, 67, 3, 4, 1, 3, 68, 67, 4, 1, 3, 68, 4, 5, 1, 3, 69, 68, 5, 1,
+ 3, 70, 69, 5, 1, 3, 70, 5, 6, 1, 3, 70, 6, 7, 1, 3, 71, 70, 7, 1,
+ 3, 71, 7, 8, 1, 3, 72, 71, 8, 1, 3, 73, 72, 8, 1, 3, 73, 8, 9, 1,
+ 3, 74, 73, 9, 1, 3, 74, 9, 10, 1, 3, 74, 10, 11, 1, 3, 75, 74, 11, 1,
+ 3, 76, 75, 11, 1, 3, 76, 11, 12, 1, 3, 76, 12, 13, 1, 3, 77, 76, 13, 1,
+ 3, 78, 77, 13, 1, 3, 78, 13, 14, 1, 3, 78, 14, 15, 1, 3, 79, 78, 15, 1,
+ 3, 79, 15, 16, 1, 3, 80, 79, 16, 1, 3, 81, 80, 16, 1, 3, 81, 16, 17, 1,
+ 3, 82, 81, 17, 1, 3, 82, 17, 18, 1, 3, 82, 18, 19, 1, 3, 83, 82, 19, 1,
+ 3, 84, 83, 19, 1, 3, 84, 19, 20, 1, 3, 84, 20, 21, 1, 3, 85, 84, 21, 1,
+ 3, 86, 85, 21, 1, 3, 86, 21, 22, 1, 3, 86, 22, 23, 1, 3, 87, 86, 23, 1,
+ 3, 87, 23, 24, 1, 3, 88, 87, 24, 1, 3, 89, 88, 24, 1, 3, 89, 24, 25, 1,
+ 3, 90, 89, 25, 1, 3, 90, 25, 26, 1, 3, 90, 26, 27, 1, 3, 91, 90, 27, 1,
+ 3, 92, 91, 27, 1, 3, 92, 27, 28, 1, 3, 93, 92, 28, 1, 3, 93, 28, 29, 1,
+ 3, 2, 3, 67, 1, 3, 2, 67, 66, 1, 3, 1, 2, 66, 1, 3, 1, 66, 64, 1,
+ 3, 1, 64, 65, 1, 3, 0, 1, 65, 1, 3, 31, 0, 65, 1, 3, 31, 65, 95, 1,
+ 3, 31, 95, 94, 1, 3, 30, 31, 94, 1, 3, 30, 94, 93, 1, 3, 93, 29, 30, 1,
+ 4, 96, 97, 95, 65, 1, 4, 97, 98, 94, 95, 1, 4, 98, 99, 93, 94, 1, 4, 99,
+ 100, 92, 93, 1, 4, 100, 101, 91, 92, 1, 4, 101, 102, 90, 91, 1, 4, 102, 103, 89,
+90, 1, 4, 103, 104, 88, 89, 1, 4, 104, 105, 87, 88, 1, 4, 105, 106, 86, 87, 1,
+ 4, 106, 107, 85, 86, 1, 4, 107, 108, 84, 85, 1, 4, 108, 109, 83, 84, 1, 4, 109,
+ 110, 82, 83, 1, 4, 110, 111, 81, 82, 1, 4, 111, 112, 80, 81, 1, 4, 112, 113, 79,
+80, 1, 4, 113, 114, 78, 79, 1, 4, 114, 115, 77, 78, 1, 4, 115, 116, 76, 77, 1,
+ 4, 116, 117, 75, 76, 1, 4, 117, 118, 74, 75, 1, 4, 118, 119, 73, 74, 1, 4, 119,
+ 120, 72, 73, 1, 4, 120, 121, 71, 72, 1, 4, 121, 122, 70, 71, 1, 4, 122, 123, 69,
+70, 1, 4, 123, 124, 68, 69, 1, 4, 124, 125, 67, 68, 1, 4, 125, 126, 66, 67, 1,
+ 4, 126, 127, 64, 66, 1, 4, 127, 96, 65, 64, 1, 4, 32, 33, 1, 0, 1, 4, 33,
+ 34, 2, 1, 1, 4, 34, 35, 3, 2, 1, 4, 35, 36, 4, 3, 1, 4, 36, 37, 5,
+ 4, 1, 4, 37, 38, 6, 5, 1, 4, 38, 39, 7, 6, 1, 4, 39, 40, 8, 7, 1,
+ 4, 40, 41, 9, 8, 1, 4, 41, 42, 10, 9, 1, 4, 42, 43, 11, 10, 1, 4, 43,
+ 44, 12, 11, 1, 4, 44, 45, 13, 12, 1, 4, 45, 46, 14, 13, 1, 4, 46, 47, 15,
+ 14, 1, 4, 47, 48, 16, 15, 1, 4, 48, 49, 17, 16, 1, 4, 49, 50, 18, 17, 1,
+ 4, 50, 51, 19, 18, 1, 4, 51, 52, 20, 19, 1, 4, 52, 53, 21, 20, 1, 4, 53,
+ 54, 22, 21, 1, 4, 54, 55, 23, 22, 1, 4, 55, 56, 24, 23, 1, 4, 56, 57, 25,
+ 24, 1, 4, 57, 58, 26, 25, 1, 4, 58, 59, 27, 26, 1, 4, 59, 60, 28, 27, 1,
+ 4, 60, 61, 29, 28, 1, 4, 61, 62, 30, 29, 1, 4, 62, 63, 31, 30, 1, 4, 63,
+32, 0, 31, 1, 32, 32, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50,
+ 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 1,
+ 0
+};
+
+struct lwo LWO_GuageHead =
+{
+ 128, /* number of points */
+ GuageHead_PNTS, GuageHead_normals, GuageHead_POLS, 0L
+};
+
+static const GLfloat PipeBetweenBolts_PNTS[] =
+{
+ 0, 0.5, 0.5,
+ 0.12941, 0.482963, 0.5,
+ 0.25, 0.433013, 0.5,
+ 0.353553, 0.353553, 0.5,
+ 0.433013, 0.25, 0.5,
+ 0.482963, 0.12941, 0.5,
+ 0.5, 0, 0.5,
+ 0.482963, -0.12941, 0.5,
+ 0.433013, -0.25, 0.5,
+ 0.353553, -0.353553, 0.5,
+ 0.25, -0.433013, 0.5,
+ 0.12941, -0.482963, 0.5,
+ 0, -0.5, 0.5,
+ -0.12941, -0.482963, 0.5,
+ -0.25, -0.433013, 0.5,
+ -0.353553, -0.353553, 0.5,
+ -0.433013, -0.25, 0.5,
+ -0.482963, -0.12941, 0.5,
+ -0.5, 0, 0.5,
+ -0.482963, 0.12941, 0.5,
+ -0.433013, 0.25, 0.5,
+ -0.353553, 0.353553, 0.5,
+ -0.25, 0.433013, 0.5,
+ -0.12941, 0.482963, 0.5,
+ 0, 0.5, -0.5,
+ 0.12941, 0.482963, -0.5,
+ 0.25, 0.433013, -0.5,
+ 0.353553, 0.353553, -0.5,
+ 0.433013, 0.25, -0.5,
+ 0.482963, 0.12941, -0.5,
+ 0.5, 0, -0.5,
+ 0.482963, -0.12941, -0.5,
+ 0.433013, -0.25, -0.5,
+ 0.353553, -0.353553, -0.5,
+ 0.25, -0.433013, -0.5,
+ 0.12941, -0.482963, -0.5,
+ 0, -0.5, -0.5,
+ -0.12941, -0.482963, -0.5,
+ -0.25, -0.433013, -0.5,
+ -0.353553, -0.353553, -0.5,
+ -0.433013, -0.25, -0.5,
+ -0.482963, -0.12941, -0.5,
+ -0.5, 0, -0.5,
+ -0.482963, 0.12941, -0.5,
+ -0.433013, 0.25, -0.5,
+ -0.353553, 0.353553, -0.5,
+ -0.25, 0.433013, -0.5,
+ -0.12941, 0.482963, -0.5,
+};
+
+static const GLfloat PipeBetweenBolts_normals[] =
+{
+ 0, 0, 1,
+ 0.130526, 0.991445, 0,
+ 0.382683, 0.92388, 0,
+ 0.608761, 0.793353, 0,
+ 0.793353, 0.608761, 0,
+ 0.92388, 0.382683, 0,
+ 0.991445, 0.130526, 0,
+ 0.991445, -0.130526, 0,
+ 0.92388, -0.382683, 0,
+ 0.793353, -0.608761, 0,
+ 0.608761, -0.793353, 0,
+ 0.382683, -0.92388, 0,
+ 0.130526, -0.991445, 0,
+ -0.130526, -0.991445, 0,
+ -0.382683, -0.92388, 0,
+ -0.608761, -0.793353, 0,
+ -0.793353, -0.608761, 0,
+ -0.92388, -0.382683, 0,
+ -0.991445, -0.130526, 0,
+ -0.991445, 0.130526, 0,
+ -0.92388, 0.382683, 0,
+ -0.793353, 0.608761, 0,
+ -0.608761, 0.793353, 0,
+ -0.382683, 0.92388, 0,
+ -0.130526, 0.991445, 0,
+ 0, 0, -1,
+};
+
+static const unsigned short int PipeBetweenBolts_POLS[] =
+{
+ 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 1, 4, 24, 25, 1, 0, 1, 4, 25, 26, 2, 1, 1, 4, 26,
+ 27, 3, 2, 1, 4, 27, 28, 4, 3, 1, 4, 28, 29, 5, 4, 1, 4, 29, 30, 6,
+ 5, 1, 4, 30, 31, 7, 6, 1, 4, 31, 32, 8, 7, 1, 4, 32, 33, 9, 8, 1,
+ 4, 33, 34, 10, 9, 1, 4, 34, 35, 11, 10, 1, 4, 35, 36, 12, 11, 1, 4, 36,
+ 37, 13, 12, 1, 4, 37, 38, 14, 13, 1, 4, 38, 39, 15, 14, 1, 4, 39, 40, 16,
+ 15, 1, 4, 40, 41, 17, 16, 1, 4, 41, 42, 18, 17, 1, 4, 42, 43, 19, 18, 1,
+ 4, 43, 44, 20, 19, 1, 4, 44, 45, 21, 20, 1, 4, 45, 46, 22, 21, 1, 4, 46,
+ 47, 23, 22, 1, 4, 47, 24, 0, 23, 1, 24, 24, 47, 46, 45, 44, 43, 42, 41, 40,
+ 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 1,
+ 0
+};
+
+struct lwo LWO_PipeBetweenBolts =
+{
+ 48, /* number of points */
+ PipeBetweenBolts_PNTS, PipeBetweenBolts_normals, PipeBetweenBolts_POLS, 0L
+};
+
+static const GLfloat ElbowBolts_PNTS[] =
+{
+ 0.273122, -0.6, -0.403061,
+ 0.273122, 0.403061, -0.6,
+ 0.273122, 0.333061, -0.6,
+ 0.273122, -0.6, -0.333061,
+ 0.2125, 0.298061, -0.6,
+ 0.2125, -0.6, -0.298061,
+ 0.151878, 0.333061, -0.6,
+ 0.151878, -0.6, -0.333061,
+ 0.151878, 0.403061, -0.6,
+ 0.151878, -0.6, -0.403061,
+ 0.2125, -0.6, -0.438061,
+ 0.2125, 0.438061, -0.6,
+ 0.273122, -0.66, -0.403061,
+ 0.273122, 0.403061, -0.66,
+ 0.273122, -0.66, -0.333061,
+ 0.273122, 0.333061, -0.66,
+ 0.2125, 0.298061, -0.66,
+ 0.2125, -0.66, -0.298061,
+ 0.151878, -0.66, -0.333061,
+ 0.151878, 0.333061, -0.66,
+ 0.151878, 0.403061, -0.66,
+ 0.151878, -0.66, -0.403061,
+ 0.2125, -0.66, -0.438061,
+ 0.2125, 0.438061, -0.66,
+ 0.273122, 0.403061, -0.46,
+ 0.273122, -0.46, -0.403061,
+ 0.273122, 0.333061, -0.46,
+ 0.273122, -0.46, -0.333061,
+ 0.2125, 0.298061, -0.46,
+ 0.2125, -0.46, -0.298061,
+ 0.151878, 0.333061, -0.46,
+ 0.151878, -0.46, -0.333061,
+ 0.151878, 0.403061, -0.46,
+ 0.151878, -0.46, -0.403061,
+ 0.2125, -0.46, -0.438061,
+ 0.2125, 0.438061, -0.46,
+ 0.273122, 0.403061, -0.52,
+ 0.273122, -0.52, -0.403061,
+ 0.273122, -0.52, -0.333061,
+ 0.273122, 0.333061, -0.52,
+ 0.2125, 0.298061, -0.52,
+ 0.2125, -0.52, -0.298061,
+ 0.151878, 0.333061, -0.52,
+ 0.151878, -0.52, -0.333061,
+ 0.151878, 0.403061, -0.52,
+ 0.151878, -0.52, -0.403061,
+ 0.2125, -0.52, -0.438061,
+ 0.2125, 0.438061, -0.52,
+ 0.485622, -0.035, -0.46,
+ 0.485622, -0.46, 0.035,
+ 0.425, -0.07, -0.46,
+ 0.425, -0.46, 0.07,
+ 0.364378, -0.46, 0.035,
+ 0.364378, -0.035, -0.46,
+ 0.364378, 0.035, -0.46,
+ 0.364378, -0.46, -0.035,
+ 0.425, 0.07, -0.46,
+ 0.425, -0.46, -0.07,
+ 0.485622, 0.035, -0.46,
+ 0.485622, -0.46, -0.035,
+ 0.485622, -0.52, 0.035,
+ 0.485622, -0.035, -0.52,
+ 0.425, -0.07, -0.52,
+ 0.425, -0.52, 0.07,
+ 0.364378, -0.035, -0.52,
+ 0.364378, -0.52, 0.035,
+ 0.364378, -0.52, -0.035,
+ 0.364378, 0.035, -0.52,
+ 0.425, 0.07, -0.52,
+ 0.425, -0.52, -0.07,
+ 0.485622, 0.035, -0.52,
+ 0.485622, -0.52, -0.035,
+ 0.485622, -0.035, -0.6,
+ 0.485622, -0.6, 0.035,
+ 0.425, -0.6, 0.07,
+ 0.425, -0.07, -0.6,
+ 0.364378, -0.6, 0.035,
+ 0.364378, -0.035, -0.6,
+ 0.364378, 0.035, -0.6,
+ 0.364378, -0.6, -0.035,
+ 0.425, 0.07, -0.6,
+ 0.425, -0.6, -0.07,
+ 0.485622, -0.6, -0.035,
+ 0.485622, 0.035, -0.6,
+ 0.485622, -0.66, 0.035,
+ 0.485622, -0.035, -0.66,
+ 0.425, -0.66, 0.07,
+ 0.425, -0.07, -0.66,
+ 0.364378, -0.035, -0.66,
+ 0.364378, -0.66, 0.035,
+ 0.364378, -0.66, -0.035,
+ 0.364378, 0.035, -0.66,
+ 0.425, 0.07, -0.66,
+ 0.425, -0.66, -0.07,
+ 0.485622, -0.66, -0.035,
+ 0.485622, 0.035, -0.66,
+ 0.2125, -0.438061, -0.46,
+ 0.2125, -0.46, 0.438061,
+ 0.151878, -0.403061, -0.46,
+ 0.151878, -0.46, 0.403061,
+ 0.151878, -0.46, 0.333061,
+ 0.151878, -0.333061, -0.46,
+ 0.2125, -0.46, 0.298061,
+ 0.2125, -0.298061, -0.46,
+ 0.273122, -0.46, 0.333061,
+ 0.273122, -0.333061, -0.46,
+ 0.273122, -0.403061, -0.46,
+ 0.273122, -0.46, 0.403061,
+ 0.2125, -0.52, 0.438061,
+ 0.2125, -0.438061, -0.52,
+ 0.151878, -0.403061, -0.52,
+ 0.151878, -0.52, 0.403061,
+ 0.151878, -0.333061, -0.52,
+ 0.151878, -0.52, 0.333061,
+ 0.2125, -0.298061, -0.52,
+ 0.2125, -0.52, 0.298061,
+ 0.273122, -0.333061, -0.52,
+ 0.273122, -0.52, 0.333061,
+ 0.273122, -0.403061, -0.52,
+ 0.273122, -0.52, 0.403061,
+ 0.2125, -0.438061, -0.6,
+ 0.2125, -0.6, 0.438061,
+ 0.151878, -0.403061, -0.6,
+ 0.151878, -0.6, 0.403061,
+ 0.151878, -0.6, 0.333061,
+ 0.151878, -0.333061, -0.6,
+ 0.2125, -0.298061, -0.6,
+ 0.2125, -0.6, 0.298061,
+ 0.273122, -0.333061, -0.6,
+ 0.273122, -0.6, 0.333061,
+ 0.273122, -0.6, 0.403061,
+ 0.273122, -0.403061, -0.6,
+ 0.2125, -0.66, 0.438061,
+ 0.2125, -0.438061, -0.66,
+ 0.151878, -0.403061, -0.66,
+ 0.151878, -0.66, 0.403061,
+ 0.151878, -0.333061, -0.66,
+ 0.151878, -0.66, 0.333061,
+ 0.2125, -0.66, 0.298061,
+ 0.2125, -0.298061, -0.66,
+ 0.273122, -0.66, 0.333061,
+ 0.273122, -0.333061, -0.66,
+ 0.273122, -0.66, 0.403061,
+ 0.273122, -0.403061, -0.66,
+ -0.273122, -0.46, 0.403061,
+ -0.273122, -0.403061, -0.46,
+ -0.273122, -0.46, 0.333061,
+ -0.273122, -0.333061, -0.46,
+ -0.2125, -0.298061, -0.46,
+ -0.2125, -0.46, 0.298061,
+ -0.151878, -0.333061, -0.46,
+ -0.151878, -0.46, 0.333061,
+ -0.151878, -0.403061, -0.46,
+ -0.151878, -0.46, 0.403061,
+ -0.2125, -0.46, 0.438061,
+ -0.2125, -0.438061, -0.46,
+ -0.273122, -0.52, 0.403061,
+ -0.273122, -0.403061, -0.52,
+ -0.273122, -0.333061, -0.52,
+ -0.273122, -0.52, 0.333061,
+ -0.2125, -0.52, 0.298061,
+ -0.2125, -0.298061, -0.52,
+ -0.151878, -0.333061, -0.52,
+ -0.151878, -0.52, 0.333061,
+ -0.151878, -0.52, 0.403061,
+ -0.151878, -0.403061, -0.52,
+ -0.2125, -0.52, 0.438061,
+ -0.2125, -0.438061, -0.52,
+ -0.273122, -0.6, 0.403061,
+ -0.273122, -0.403061, -0.6,
+ -0.273122, -0.6, 0.333061,
+ -0.273122, -0.333061, -0.6,
+ -0.2125, -0.6, 0.298061,
+ -0.2125, -0.298061, -0.6,
+ -0.151878, -0.333061, -0.6,
+ -0.151878, -0.6, 0.333061,
+ -0.151878, -0.6, 0.403061,
+ -0.151878, -0.403061, -0.6,
+ -0.2125, -0.438061, -0.6,
+ -0.2125, -0.6, 0.438061,
+ -0.273122, -0.66, 0.403061,
+ -0.273122, -0.403061, -0.66,
+ -0.273122, -0.333061, -0.66,
+ -0.273122, -0.66, 0.333061,
+ -0.2125, -0.298061, -0.66,
+ -0.2125, -0.66, 0.298061,
+ -0.151878, -0.66, 0.333061,
+ -0.151878, -0.333061, -0.66,
+ -0.151878, -0.66, 0.403061,
+ -0.151878, -0.403061, -0.66,
+ -0.2125, -0.438061, -0.66,
+ -0.2125, -0.66, 0.438061,
+ -0.485622, -0.46, -0.035,
+ -0.485622, 0.035, -0.46,
+ -0.425, 0.07, -0.46,
+ -0.425, -0.46, -0.07,
+ -0.364378, 0.035, -0.46,
+ -0.364378, -0.46, -0.035,
+ -0.364378, -0.46, 0.035,
+ -0.364378, -0.035, -0.46,
+ -0.425, -0.46, 0.07,
+ -0.425, -0.07, -0.46,
+ -0.485622, -0.035, -0.46,
+ -0.485622, -0.46, 0.035,
+ -0.485622, -0.52, -0.035,
+ -0.485622, 0.035, -0.52,
+ -0.425, 0.07, -0.52,
+ -0.425, -0.52, -0.07,
+ -0.364378, 0.035, -0.52,
+ -0.364378, -0.52, -0.035,
+ -0.364378, -0.035, -0.52,
+ -0.364378, -0.52, 0.035,
+ -0.425, -0.52, 0.07,
+ -0.425, -0.07, -0.52,
+ -0.485622, -0.035, -0.52,
+ -0.485622, -0.52, 0.035,
+ -0.485622, 0.035, -0.6,
+ -0.485622, -0.6, -0.035,
+ -0.425, -0.6, -0.07,
+ -0.425, 0.07, -0.6,
+ -0.364378, -0.6, -0.035,
+ -0.364378, 0.035, -0.6,
+ -0.364378, -0.6, 0.035,
+ -0.364378, -0.035, -0.6,
+ -0.425, -0.6, 0.07,
+ -0.425, -0.07, -0.6,
+ -0.485622, -0.6, 0.035,
+ -0.485622, -0.035, -0.6,
+ -0.485622, -0.66, -0.035,
+ -0.485622, 0.035, -0.66,
+ -0.425, -0.66, -0.07,
+ -0.425, 0.07, -0.66,
+ -0.364378, 0.035, -0.66,
+ -0.364378, -0.66, -0.035,
+ -0.364378, -0.66, 0.035,
+ -0.364378, -0.035, -0.66,
+ -0.425, -0.07, -0.66,
+ -0.425, -0.66, 0.07,
+ -0.485622, -0.66, 0.035,
+ -0.485622, -0.035, -0.66,
+ -0.2125, -0.46, -0.438061,
+ -0.2125, 0.438061, -0.46,
+ -0.151878, 0.403061, -0.46,
+ -0.151878, -0.46, -0.403061,
+ -0.151878, -0.46, -0.333061,
+ -0.151878, 0.333061, -0.46,
+ -0.2125, 0.298061, -0.46,
+ -0.2125, -0.46, -0.298061,
+ -0.273122, 0.333061, -0.46,
+ -0.273122, -0.46, -0.333061,
+ -0.273122, -0.46, -0.403061,
+ -0.273122, 0.403061, -0.46,
+ -0.2125, -0.52, -0.438061,
+ -0.2125, 0.438061, -0.52,
+ -0.151878, 0.403061, -0.52,
+ -0.151878, -0.52, -0.403061,
+ -0.151878, -0.52, -0.333061,
+ -0.151878, 0.333061, -0.52,
+ -0.2125, 0.298061, -0.52,
+ -0.2125, -0.52, -0.298061,
+ -0.273122, 0.333061, -0.52,
+ -0.273122, -0.52, -0.333061,
+ -0.273122, 0.403061, -0.52,
+ -0.273122, -0.52, -0.403061,
+ -0.2125, 0.438061, -0.6,
+ -0.2125, -0.6, -0.438061,
+ -0.151878, -0.6, -0.403061,
+ -0.151878, 0.403061, -0.6,
+ -0.151878, 0.333061, -0.6,
+ -0.151878, -0.6, -0.333061,
+ -0.2125, -0.6, -0.298061,
+ -0.2125, 0.298061, -0.6,
+ -0.273122, -0.6, -0.333061,
+ -0.273122, 0.333061, -0.6,
+ -0.273122, -0.6, -0.403061,
+ -0.273122, 0.403061, -0.6,
+ -0.2125, -0.66, -0.438061,
+ -0.2125, 0.438061, -0.66,
+ -0.151878, -0.66, -0.403061,
+ -0.151878, 0.403061, -0.66,
+ -0.151878, -0.66, -0.333061,
+ -0.151878, 0.333061, -0.66,
+ -0.2125, -0.66, -0.298061,
+ -0.2125, 0.298061, -0.66,
+ -0.273122, -0.66, -0.333061,
+ -0.273122, 0.333061, -0.66,
+ -0.273122, 0.403061, -0.66,
+ -0.273122, -0.66, -0.403061,
+};
+
+static const GLfloat ElbowBolts_normals[] =
+{
+ 0, 0, 1,
+ 0.5, 0.866026, 0,
+ 1, 0, 0,
+ 0.5, -0.866025, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ -0.5, 0.866025, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ 0.499999, 0.866026, 0,
+ 1, 0, 0,
+ 0.5, -0.866025, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ -0.5, 0.866025, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ -0.5, 0.866025, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0.5, -0.866025, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ -0.5, 0.866025, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0.5, -0.866025, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ -1, 0, 0,
+ -0.5, 0.866026, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0.5, -0.866026, 0,
+ -0.5, -0.866025, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ -1, 0, 0,
+ -0.5, 0.866026, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0.5, -0.866025, 0,
+ -0.5, -0.866025, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ -0.5, -0.866026, 0,
+ -1, 0, 0,
+ -0.5, 0.866025, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0.5, -0.866025, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ -0.499999, -0.866026, 0,
+ -1, 0, 0,
+ -0.5, 0.866025, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0.5, -0.866025, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ 0.5, -0.866025, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ -0.5, 0.866025, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ 0.5, -0.866025, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ -0.5, 0.866025, 0,
+ 0.5, 0.866025, 0,
+ 1, 0, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ 1, 0, 0,
+ 0.5, -0.866026, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ -0.5, 0.866026, 0,
+ 0.5, 0.866025, 0,
+ 0, 0, -1,
+ 0, 0, 1,
+ 1, 0, 0,
+ 0.5, -0.866026, 0,
+ -0.5, -0.866025, 0,
+ -1, 0, 0,
+ -0.5, 0.866025, 0,
+ 0.5, 0.866025, 0,
+ 0, 0, -1,
+ 0, 1, 0,
+ 0.5, 0, -0.866026,
+ 1, 0, 0,
+ 0.5, 0, 0.866025,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ -0.5, 0, -0.866025,
+ 0, -1, 0,
+ 0, 1, 0,
+ 0.499999, 0, -0.866026,
+ 1, 0, 0,
+ 0.5, 0, 0.866025,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ -0.5, 0, -0.866025,
+ 0, -1, 0,
+ 0, 1, 0,
+ -0.5, 0, -0.866025,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0.5, 0, 0.866025,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ 0, -1, 0,
+ 0, 1, 0,
+ -0.5, 0, -0.866025,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0.5, 0, 0.866025,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ 0, -1, 0,
+ 0, 1, 0,
+ -1, 0, 0,
+ -0.5, 0, -0.866026,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0.5, 0, 0.866026,
+ -0.5, 0, 0.866025,
+ 0, -1, 0,
+ 0, 1, 0,
+ -1, 0, 0,
+ -0.5, 0, -0.866026,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0.5, 0, 0.866025,
+ -0.5, 0, 0.866025,
+ 0, -1, 0,
+ 0, 1, 0,
+ -0.5, 0, 0.866026,
+ -1, 0, 0,
+ -0.5, 0, -0.866025,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0.5, 0, 0.866025,
+ 0, -1, 0,
+ 0, 1, 0,
+ -0.499999, 0, 0.866026,
+ -1, 0, 0,
+ -0.5, 0, -0.866025,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0.5, 0, 0.866025,
+ 0, -1, 0,
+ 0, 1, 0,
+ 0.5, 0, 0.866025,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ -0.5, 0, -0.866025,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0, -1, 0,
+ 0, 1, 0,
+ 0.5, 0, 0.866025,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ -0.5, 0, -0.866025,
+ 0.5, 0, -0.866025,
+ 1, 0, 0,
+ 0, -1, 0,
+ 0, 1, 0,
+ 1, 0, 0,
+ 0.5, 0, 0.866026,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ -0.5, 0, -0.866026,
+ 0.5, 0, -0.866025,
+ 0, -1, 0,
+ 0, 1, 0,
+ 1, 0, 0,
+ 0.5, 0, 0.866026,
+ -0.5, 0, 0.866025,
+ -1, 0, 0,
+ -0.5, 0, -0.866025,
+ 0.5, 0, -0.866025,
+ 0, -1, 0,
+};
+
+static const unsigned short int ElbowBolts_POLS[] =
+{
+ 6, 241, 242, 245, 246, 248, 251, 1, 4, 253, 254, 242, 241, 1, 4, 254, 257, 245, 242, 1,
+ 4, 257, 258, 246, 245, 1, 4, 258, 260, 248, 246, 1, 4, 260, 262, 251, 248, 1, 4, 262,
+ 253, 241, 251, 1, 6, 253, 262, 260, 258, 257, 254, 1, 6, 264, 267, 268, 271, 273, 275, 1,
+ 4, 277, 279, 267, 264, 1, 4, 279, 281, 268, 267, 1, 4, 281, 283, 271, 268, 1, 4, 283,
+ 285, 273, 271, 1, 4, 285, 286, 275, 273, 1, 4, 286, 277, 264, 275, 1, 6, 277, 286, 285,
+ 283, 281, 279, 1, 6, 193, 194, 196, 199, 201, 202, 1, 4, 205, 206, 194, 193, 1, 4, 206,
+ 208, 196, 194, 1, 4, 208, 210, 199, 196, 1, 4, 210, 213, 201, 199, 1, 4, 213, 214, 202,
+ 201, 1, 4, 214, 205, 193, 202, 1, 6, 205, 214, 213, 210, 208, 206, 1, 6, 216, 219, 221,
+ 223, 225, 227, 1, 4, 229, 231, 219, 216, 1, 4, 231, 232, 221, 219, 1, 4, 232, 235, 223,
+ 221, 1, 4, 235, 236, 225, 223, 1, 4, 236, 239, 227, 225, 1, 4, 239, 229, 216, 227, 1,
+ 6, 229, 239, 236, 235, 232, 231, 1, 6, 145, 147, 148, 150, 152, 155, 1, 4, 157, 158, 147,
+ 145, 1, 4, 158, 161, 148, 147, 1, 4, 161, 162, 150, 148, 1, 4, 162, 165, 152, 150, 1,
+ 4, 165, 167, 155, 152, 1, 4, 167, 157, 145, 155, 1, 6, 157, 167, 165, 162, 161, 158, 1,
+ 6, 169, 171, 173, 174, 177, 178, 1, 4, 181, 182, 171, 169, 1, 4, 182, 184, 173, 171, 1,
+ 4, 184, 187, 174, 173, 1, 4, 187, 189, 177, 174, 1, 4, 189, 190, 178, 177, 1, 4, 190,
+ 181, 169, 178, 1, 6, 181, 190, 189, 187, 184, 182, 1, 6, 96, 98, 101, 103, 105, 106, 1,
+ 4, 109, 110, 98, 96, 1, 4, 110, 112, 101, 98, 1, 4, 112, 114, 103, 101, 1, 4, 114,
+ 116, 105, 103, 1, 4, 116, 118, 106, 105, 1, 4, 118, 109, 96, 106, 1, 6, 109, 118, 116,
+ 114, 112, 110, 1, 6, 120, 122, 125, 126, 128, 131, 1, 4, 133, 134, 122, 120, 1, 4, 134,
+ 136, 125, 122, 1, 4, 136, 139, 126, 125, 1, 4, 139, 141, 128, 126, 1, 4, 141, 143, 131,
+ 128, 1, 4, 143, 133, 120, 131, 1, 6, 133, 143, 141, 139, 136, 134, 1, 6, 48, 50, 53,
+ 54, 56, 58, 1, 4, 61, 62, 50, 48, 1, 4, 62, 64, 53, 50, 1, 4, 64, 67, 54,
+ 53, 1, 4, 67, 68, 56, 54, 1, 4, 68, 70, 58, 56, 1, 4, 70, 61, 48, 58, 1,
+ 6, 61, 70, 68, 67, 64, 62, 1, 6, 72, 75, 77, 78, 80, 83, 1, 4, 85, 87, 75,
+ 72, 1, 4, 87, 88, 77, 75, 1, 4, 88, 91, 78, 77, 1, 4, 91, 92, 80, 78, 1,
+ 4, 92, 95, 83, 80, 1, 4, 95, 85, 72, 83, 1, 6, 85, 95, 92, 91, 88, 87, 1,
+ 6, 24, 26, 28, 30, 32, 35, 1, 4, 36, 39, 26, 24, 1, 4, 39, 40, 28, 26, 1,
+ 4, 40, 42, 30, 28, 1, 4, 42, 44, 32, 30, 1, 4, 44, 47, 35, 32, 1, 4, 47,
+ 36, 24, 35, 1, 6, 36, 47, 44, 42, 40, 39, 1, 6, 1, 2, 4, 6, 8, 11, 1,
+ 4, 13, 15, 2, 1, 1, 4, 15, 16, 4, 2, 1, 4, 16, 19, 6, 4, 1, 4, 19,
+ 20, 8, 6, 1, 4, 20, 23, 11, 8, 1, 4, 23, 13, 1, 11, 1, 6, 13, 23, 20,
+ 19, 16, 15, 1, 6, 240, 243, 244, 247, 249, 250, 1, 4, 252, 255, 243, 240, 1, 4, 255,
+ 256, 244, 243, 1, 4, 256, 259, 247, 244, 1, 4, 259, 261, 249, 247, 1, 4, 261, 263, 250,
+ 249, 1, 4, 263, 252, 240, 250, 1, 6, 252, 263, 261, 259, 256, 255, 1, 6, 265, 266, 269,
+ 270, 272, 274, 1, 4, 276, 278, 266, 265, 1, 4, 278, 280, 269, 266, 1, 4, 280, 282, 270,
+ 269, 1, 4, 282, 284, 272, 270, 1, 4, 284, 287, 274, 272, 1, 4, 287, 276, 265, 274, 1,
+ 6, 276, 287, 284, 282, 280, 278, 1, 6, 192, 195, 197, 198, 200, 203, 1, 4, 204, 207, 195,
+ 192, 1, 4, 207, 209, 197, 195, 1, 4, 209, 211, 198, 197, 1, 4, 211, 212, 200, 198, 1,
+ 4, 212, 215, 203, 200, 1, 4, 215, 204, 192, 203, 1, 6, 204, 215, 212, 211, 209, 207, 1,
+ 6, 217, 218, 220, 222, 224, 226, 1, 4, 228, 230, 218, 217, 1, 4, 230, 233, 220, 218, 1,
+ 4, 233, 234, 222, 220, 1, 4, 234, 237, 224, 222, 1, 4, 237, 238, 226, 224, 1, 4, 238,
+ 228, 217, 226, 1, 6, 228, 238, 237, 234, 233, 230, 1, 6, 144, 146, 149, 151, 153, 154, 1,
+ 4, 156, 159, 146, 144, 1, 4, 159, 160, 149, 146, 1, 4, 160, 163, 151, 149, 1, 4, 163,
+ 164, 153, 151, 1, 4, 164, 166, 154, 153, 1, 4, 166, 156, 144, 154, 1, 6, 156, 166, 164,
+ 163, 160, 159, 1, 6, 168, 170, 172, 175, 176, 179, 1, 4, 180, 183, 170, 168, 1, 4, 183,
+ 185, 172, 170, 1, 4, 185, 186, 175, 172, 1, 4, 186, 188, 176, 175, 1, 4, 188, 191, 179,
+ 176, 1, 4, 191, 180, 168, 179, 1, 6, 180, 191, 188, 186, 185, 183, 1, 6, 97, 99, 100,
+ 102, 104, 107, 1, 4, 108, 111, 99, 97, 1, 4, 111, 113, 100, 99, 1, 4, 113, 115, 102,
+ 100, 1, 4, 115, 117, 104, 102, 1, 4, 117, 119, 107, 104, 1, 4, 119, 108, 97, 107, 1,
+ 6, 108, 119, 117, 115, 113, 111, 1, 6, 121, 123, 124, 127, 129, 130, 1, 4, 132, 135, 123,
+ 121, 1, 4, 135, 137, 124, 123, 1, 4, 137, 138, 127, 124, 1, 4, 138, 140, 129, 127, 1,
+ 4, 140, 142, 130, 129, 1, 4, 142, 132, 121, 130, 1, 6, 132, 142, 140, 138, 137, 135, 1,
+ 6, 49, 51, 52, 55, 57, 59, 1, 4, 60, 63, 51, 49, 1, 4, 63, 65, 52, 51, 1,
+ 4, 65, 66, 55, 52, 1, 4, 66, 69, 57, 55, 1, 4, 69, 71, 59, 57, 1, 4, 71,
+ 60, 49, 59, 1, 6, 60, 71, 69, 66, 65, 63, 1, 6, 73, 74, 76, 79, 81, 82, 1,
+ 4, 84, 86, 74, 73, 1, 4, 86, 89, 76, 74, 1, 4, 89, 90, 79, 76, 1, 4, 90,
+ 93, 81, 79, 1, 4, 93, 94, 82, 81, 1, 4, 94, 84, 73, 82, 1, 6, 84, 94, 93,
+ 90, 89, 86, 1, 6, 25, 27, 29, 31, 33, 34, 1, 4, 37, 38, 27, 25, 1, 4, 38,
+ 41, 29, 27, 1, 4, 41, 43, 31, 29, 1, 4, 43, 45, 33, 31, 1, 4, 45, 46, 34,
+ 33, 1, 4, 46, 37, 25, 34, 1, 6, 37, 46, 45, 43, 41, 38, 1, 6, 0, 3, 5,
+ 7, 9, 10, 1, 4, 12, 14, 3, 0, 1, 4, 14, 17, 5, 3, 1, 4, 17, 18, 7,
+ 5, 1, 4, 18, 21, 9, 7, 1, 4, 21, 22, 10, 9, 1, 4, 22, 12, 0, 10, 1,
+ 6, 12, 22, 21, 18, 17, 14, 1,
+ 0
+};
+
+struct lwo LWO_ElbowBolts =
+{
+ 288, /* number of points */
+ ElbowBolts_PNTS, ElbowBolts_normals, ElbowBolts_POLS, 0L
+};
+
+static const GLfloat ElbowCoins_PNTS[] =
+{
+ 0, -0.52, -0.5,
+ 0.097545, -0.52, -0.490393,
+ 0.191342, -0.52, -0.46194,
+ 0.277785, -0.52, -0.415735,
+ 0.353553, -0.52, -0.353553,
+ 0.415735, -0.52, -0.277785,
+ 0.46194, -0.52, -0.191342,
+ 0.490393, -0.52, -0.097545,
+ 0.5, -0.52, 0,
+ 0.490393, -0.52, 0.097545,
+ 0.46194, -0.52, 0.191342,
+ 0.415735, -0.52, 0.277785,
+ 0.353553, -0.52, 0.353553,
+ 0.277785, -0.52, 0.415735,
+ 0.191342, -0.52, 0.46194,
+ 0.097545, -0.52, 0.490393,
+ 0, -0.52, 0.5,
+ -0.097545, -0.52, 0.490393,
+ -0.191342, -0.52, 0.46194,
+ -0.277785, -0.52, 0.415735,
+ -0.353553, -0.52, 0.353553,
+ -0.415735, -0.52, 0.277785,
+ -0.46194, -0.52, 0.191342,
+ -0.490393, -0.52, 0.097545,
+ -0.5, -0.52, 0,
+ -0.490393, -0.52, -0.097545,
+ -0.46194, -0.52, -0.191342,
+ -0.415735, -0.52, -0.277785,
+ -0.353553, -0.52, -0.353553,
+ -0.277785, -0.52, -0.415735,
+ -0.191342, -0.52, -0.46194,
+ -0.097545, -0.52, -0.490393,
+ 0, -0.6, -0.5,
+ 0.097545, -0.6, -0.490393,
+ 0.191342, -0.6, -0.46194,
+ 0.277785, -0.6, -0.415735,
+ 0.353553, -0.6, -0.353553,
+ 0.415735, -0.6, -0.277785,
+ 0.46194, -0.6, -0.191342,
+ 0.490393, -0.6, -0.097545,
+ 0.5, -0.6, 0,
+ 0.490393, -0.6, 0.097545,
+ 0.46194, -0.6, 0.191342,
+ 0.415735, -0.6, 0.277785,
+ 0.353553, -0.6, 0.353553,
+ 0.277785, -0.6, 0.415735,
+ 0.191342, -0.6, 0.46194,
+ 0.097545, -0.6, 0.490393,
+ 0, -0.6, 0.5,
+ -0.097545, -0.6, 0.490393,
+ -0.191342, -0.6, 0.46194,
+ -0.277785, -0.6, 0.415735,
+ -0.353553, -0.6, 0.353553,
+ -0.415735, -0.6, 0.277785,
+ -0.46194, -0.6, 0.191342,
+ -0.490393, -0.6, 0.097545,
+ -0.5, -0.6, 0,
+ -0.490393, -0.6, -0.097545,
+ -0.46194, -0.6, -0.191342,
+ -0.415735, -0.6, -0.277785,
+ -0.353553, -0.6, -0.353553,
+ -0.277785, -0.6, -0.415735,
+ -0.191342, -0.6, -0.46194,
+ -0.097545, -0.6, -0.490393,
+ 0, 0.5, -0.52,
+ 0.097545, 0.490393, -0.52,
+ 0.191342, 0.46194, -0.52,
+ 0.277785, 0.415735, -0.52,
+ 0.353553, 0.353553, -0.52,
+ 0.415735, 0.277785, -0.52,
+ 0.46194, 0.191342, -0.52,
+ 0.490393, 0.097545, -0.52,
+ 0.5, 0, -0.52,
+ 0.490393, -0.097545, -0.52,
+ 0.46194, -0.191342, -0.52,
+ 0.415735, -0.277785, -0.52,
+ 0.353553, -0.353553, -0.52,
+ 0.277785, -0.415735, -0.52,
+ 0.191342, -0.46194, -0.52,
+ 0.097545, -0.490393, -0.52,
+ 0, -0.5, -0.52,
+ -0.097545, -0.490393, -0.52,
+ -0.191342, -0.46194, -0.52,
+ -0.277785, -0.415735, -0.52,
+ -0.353553, -0.353553, -0.52,
+ -0.415735, -0.277785, -0.52,
+ -0.46194, -0.191342, -0.52,
+ -0.490393, -0.097545, -0.52,
+ -0.5, 0, -0.52,
+ -0.490393, 0.097545, -0.52,
+ -0.46194, 0.191342, -0.52,
+ -0.415735, 0.277785, -0.52,
+ -0.353553, 0.353553, -0.52,
+ -0.277785, 0.415735, -0.52,
+ -0.191342, 0.46194, -0.52,
+ -0.097545, 0.490393, -0.52,
+ 0, 0.5, -0.6,
+ 0.097545, 0.490393, -0.6,
+ 0.191342, 0.46194, -0.6,
+ 0.277785, 0.415735, -0.6,
+ 0.353553, 0.353553, -0.6,
+ 0.415735, 0.277785, -0.6,
+ 0.46194, 0.191342, -0.6,
+ 0.490393, 0.097545, -0.6,
+ 0.5, 0, -0.6,
+ 0.490393, -0.097545, -0.6,
+ 0.46194, -0.191342, -0.6,
+ 0.415735, -0.277785, -0.6,
+ 0.353553, -0.353553, -0.6,
+ 0.277785, -0.415735, -0.6,
+ 0.191342, -0.46194, -0.6,
+ 0.097545, -0.490393, -0.6,
+ 0, -0.5, -0.6,
+ -0.097545, -0.490393, -0.6,
+ -0.191342, -0.46194, -0.6,
+ -0.277785, -0.415735, -0.6,
+ -0.353553, -0.353553, -0.6,
+ -0.415735, -0.277785, -0.6,
+ -0.46194, -0.191342, -0.6,
+ -0.490393, -0.097545, -0.6,
+ -0.5, 0, -0.6,
+ -0.490393, 0.097545, -0.6,
+ -0.46194, 0.191342, -0.6,
+ -0.415735, 0.277785, -0.6,
+ -0.353553, 0.353553, -0.6,
+ -0.277785, 0.415735, -0.6,
+ -0.191342, 0.46194, -0.6,
+ -0.097545, 0.490393, -0.6,
+};
+
+static const GLfloat ElbowCoins_normals[] =
+{
+ 0, 0, 1,
+ 0.098017, 0.995185, 0,
+ 0.290285, 0.95694, 0,
+ 0.471397, 0.881921, 0,
+ 0.634393, 0.77301, 0,
+ 0.77301, 0.634393, 0,
+ 0.881921, 0.471397, 0,
+ 0.95694, 0.290285, 0,
+ 0.995185, 0.098017, 0,
+ 0.995185, -0.098017, 0,
+ 0.95694, -0.290285, 0,
+ 0.881921, -0.471397, 0,
+ 0.77301, -0.634393, 0,
+ 0.634393, -0.77301, 0,
+ 0.471397, -0.881921, 0,
+ 0.290285, -0.95694, 0,
+ 0.098017, -0.995185, 0,
+ -0.098017, -0.995185, 0,
+ -0.290285, -0.95694, 0,
+ -0.471397, -0.881921, 0,
+ -0.634393, -0.77301, 0,
+ -0.77301, -0.634393, 0,
+ -0.881921, -0.471397, 0,
+ -0.95694, -0.290285, 0,
+ -0.995185, -0.098017, 0,
+ -0.995185, 0.098017, 0,
+ -0.95694, 0.290285, 0,
+ -0.881921, 0.471397, 0,
+ -0.77301, 0.634393, 0,
+ -0.634393, 0.77301, 0,
+ -0.471397, 0.881921, 0,
+ -0.290285, 0.95694, 0,
+ -0.098017, 0.995185, 0,
+ 0, 0, -1,
+ 0, 1, 0,
+ 0.098017, 0, -0.995185,
+ 0.290285, 0, -0.95694,
+ 0.471397, 0, -0.881921,
+ 0.634393, 0, -0.77301,
+ 0.77301, 0, -0.634393,
+ 0.881921, 0, -0.471397,
+ 0.95694, 0, -0.290285,
+ 0.995185, 0, -0.098017,
+ 0.995185, 0, 0.098017,
+ 0.95694, 0, 0.290285,
+ 0.881921, 0, 0.471397,
+ 0.77301, 0, 0.634393,
+ 0.634393, 0, 0.77301,
+ 0.471397, 0, 0.881921,
+ 0.290285, 0, 0.95694,
+ 0.098017, 0, 0.995185,
+ -0.098017, 0, 0.995185,
+ -0.290285, 0, 0.95694,
+ -0.471397, 0, 0.881921,
+ -0.634393, 0, 0.77301,
+ -0.77301, 0, 0.634393,
+ -0.881921, 0, 0.471397,
+ -0.95694, 0, 0.290285,
+ -0.995185, 0, 0.098017,
+ -0.995185, 0, -0.098017,
+ -0.95694, 0, -0.290285,
+ -0.881921, 0, -0.471397,
+ -0.77301, 0, -0.634393,
+ -0.634393, 0, -0.77301,
+ -0.471397, 0, -0.881921,
+ -0.290285, 0, -0.95694,
+ -0.098017, 0, -0.995185,
+ 0, -1, 0,
+};
+
+static const unsigned short int ElbowCoins_POLS[] =
+{
+ 32, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1, 4, 96, 97, 65, 64, 1,
+ 4, 97, 98, 66, 65, 1, 4, 98, 99, 67, 66, 1, 4, 99, 100, 68, 67, 1, 4, 100,
+ 101, 69, 68, 1, 4, 101, 102, 70, 69, 1, 4, 102, 103, 71, 70, 1, 4, 103, 104, 72,
+71, 1, 4, 104, 105, 73, 72, 1, 4, 105, 106, 74, 73, 1, 4, 106, 107, 75, 74, 1,
+ 4, 107, 108, 76, 75, 1, 4, 108, 109, 77, 76, 1, 4, 109, 110, 78, 77, 1, 4, 110,
+ 111, 79, 78, 1, 4, 111, 112, 80, 79, 1, 4, 112, 113, 81, 80, 1, 4, 113, 114, 82,
+81, 1, 4, 114, 115, 83, 82, 1, 4, 115, 116, 84, 83, 1, 4, 116, 117, 85, 84, 1,
+ 4, 117, 118, 86, 85, 1, 4, 118, 119, 87, 86, 1, 4, 119, 120, 88, 87, 1, 4, 120,
+ 121, 89, 88, 1, 4, 121, 122, 90, 89, 1, 4, 122, 123, 91, 90, 1, 4, 123, 124, 92,
+91, 1, 4, 124, 125, 93, 92, 1, 4, 125, 126, 94, 93, 1, 4, 126, 127, 95, 94, 1,
+ 4, 127, 96, 64, 95, 1, 32, 96, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116,
+ 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 1,
+ 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 4, 32, 33, 1, 0, 1,
+ 4, 33, 34, 2, 1, 1, 4, 34, 35, 3, 2, 1, 4, 35, 36, 4, 3, 1, 4, 36,
+ 37, 5, 4, 1, 4, 37, 38, 6, 5, 1, 4, 38, 39, 7, 6, 1, 4, 39, 40, 8,
+ 7, 1, 4, 40, 41, 9, 8, 1, 4, 41, 42, 10, 9, 1, 4, 42, 43, 11, 10, 1,
+ 4, 43, 44, 12, 11, 1, 4, 44, 45, 13, 12, 1, 4, 45, 46, 14, 13, 1, 4, 46,
+ 47, 15, 14, 1, 4, 47, 48, 16, 15, 1, 4, 48, 49, 17, 16, 1, 4, 49, 50, 18,
+ 17, 1, 4, 50, 51, 19, 18, 1, 4, 51, 52, 20, 19, 1, 4, 52, 53, 21, 20, 1,
+ 4, 53, 54, 22, 21, 1, 4, 54, 55, 23, 22, 1, 4, 55, 56, 24, 23, 1, 4, 56,
+ 57, 25, 24, 1, 4, 57, 58, 26, 25, 1, 4, 58, 59, 27, 26, 1, 4, 59, 60, 28,
+ 27, 1, 4, 60, 61, 29, 28, 1, 4, 61, 62, 30, 29, 1, 4, 62, 63, 31, 30, 1,
+ 4, 63, 32, 0, 31, 1, 32, 32, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52,
+51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 1,
+ 0
+};
+
+struct lwo LWO_ElbowCoins =
+{
+ 128, /* number of points */
+ ElbowCoins_PNTS, ElbowCoins_normals, ElbowCoins_POLS, 0L
+};
+
+#endif /* USE_GL */
+
+/* End of pipeobjs.c */
diff --git a/hacks/glx/pipes.c b/hacks/glx/pipes.c
new file mode 100644
index 0000000..24f9a2a
--- /dev/null
+++ b/hacks/glx/pipes.c
@@ -0,0 +1,1220 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* pipes --- 3D selfbuiding pipe system */
+
+#if 0
+static const char sccsid[] = "@(#)pipes.c 4.07 97/11/24 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * This program was inspired on a WindowsNT(R)'s screen saver. It was written
+ * from scratch and it was not based on any other source code.
+ *
+ * ==========================================================================
+ * The routine myElbow is derivated from the doughnut routine from the MesaGL
+ * library (more especifically the Mesaaux library) written by Brian Paul.
+ * ==========================================================================
+ *
+ * Thanks goes to Brian Paul for making it possible and inexpensive to use
+ * OpenGL at home.
+ *
+ * Since I'm not a native English speaker, my apologies for any grammatical
+ * mistake.
+ *
+ * My e-mail address is
+ * m-vianna@usa.net
+ * Marcelo F. Vianna (Apr-09-1997)
+ *
+ * Revision History:
+ * 24-Jun-12: Eliminate single-buffer dependency.
+ * 29-Apr-97: Factory equipment by Ed Mackey. Productive day today, eh?
+ * 29-Apr-97: Less tight turns Jeff Epler <jepler@inetnebr.com>
+ * 29-Apr-97: Efficiency speed-ups by Marcelo F. Vianna
+ */
+
+/* This program was originally written to be single-buffered: it kept
+ building up new objects in the front buffer by never clearing the
+ depth or color buffers at the end of each frame. In that way, it
+ was drawing a very small number of polygons per frame. However,
+ modern systems make it difficult to live in a single-buffered world
+ like that. So I changed it to re-generate the scene at every
+ frame, which makes it vastly less efficient, but also, makes it
+ work right on modern hardware. It generates the entire system up
+ front, putting each "frame" of the animation into its own display
+ list; then it draws successively more of those display lists each
+ time the redisplay method is called. When it reaches the end,
+ it regenerates a new system and re-populates the existing display
+ lists. -- jwz.
+ */
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 10000 \n" \
+ "*count: 2 \n" \
+ "*cycles: 5 \n" \
+ "*size: 500 \n" \
+ "*showFPS: False \n" \
+ "*fpsSolid: True \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_pipes 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "sphere.h"
+#include "buildlwo.h"
+#include "teapot.h"
+#include "gltrackball.h"
+
+#define DEF_FACTORY "2"
+#define DEF_FISHEYE "True"
+#define DEF_TIGHTTURNS "False"
+#define DEF_ROTATEPIPES "True"
+#define NofSysTypes 3
+
+static int factory;
+static Bool fisheye, tightturns, rotatepipes;
+
+static XrmOptionDescRec opts[] =
+{
+ {"-factory", ".pipes.factory", XrmoptionSepArg, 0},
+ {"-fisheye", ".pipes.fisheye", XrmoptionNoArg, "on"},
+ {"+fisheye", ".pipes.fisheye", XrmoptionNoArg, "off"},
+ {"-tightturns", ".pipes.tightturns", XrmoptionNoArg, "on"},
+ {"+tightturns", ".pipes.tightturns", XrmoptionNoArg, "off"},
+ {"-rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, "on"},
+ {"+rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, "off"},
+};
+static argtype vars[] =
+{
+ {&factory, "factory", "Factory", DEF_FACTORY, t_Int},
+ {&fisheye, "fisheye", "Fisheye", DEF_FISHEYE, t_Bool},
+ {&tightturns, "tightturns", "Tightturns", DEF_TIGHTTURNS, t_Bool},
+ {&rotatepipes, "rotatepipes", "Rotatepipes", DEF_ROTATEPIPES, t_Bool},
+};
+static OptionStruct desc[] =
+{
+ {"-factory num", "how much extra equipment in pipes (0 for none)"},
+ {"-/+fisheye", "turn on/off zoomed-in view of pipes"},
+ {"-/+tightturns", "turn on/off tight turns"},
+ {"-/+rotatepipes", "turn on/off pipe system rotation per screenful"},
+};
+
+ENTRYPOINT ModeSpecOpt pipes_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+#ifdef USE_MODULES
+ModStruct pipes_description =
+{"pipes", "init_pipes", "draw_pipes", NULL,
+ "draw_pipes",
+ "change_pipes", "free_pipes", &pipes_opts,
+ 1000, 2, 5, 500, 4, 1.0, "",
+ "Shows a selfbuilding pipe system", 0, NULL};
+
+#endif
+
+#define Scale4Window 0.1
+
+#define one_third 0.3333333333333333333
+
+#define dirNone -1
+#define dirUP 0
+#define dirDOWN 1
+#define dirLEFT 2
+#define dirRIGHT 3
+#define dirNEAR 4
+#define dirFAR 5
+
+#define HCELLS 33
+#define VCELLS 25
+#define DEFINEDCOLORS 7
+#define elbowradius 0.5
+
+/*************************************************************************/
+
+typedef struct {
+ int flip;
+
+ int Cells[HCELLS][VCELLS][HCELLS];
+ int usedcolors[DEFINEDCOLORS];
+ int directions[6];
+ int ndirections;
+ int nowdir, olddir;
+ int system_number;
+ int counter;
+ int PX, PY, PZ;
+ int number_of_systems;
+ int system_type;
+ int system_length;
+ int turncounter;
+ Window window;
+ const float *system_color;
+ GLfloat initial_rotation;
+ GLuint valve, bolts, betweenbolts, elbowbolts, elbowcoins;
+ GLuint guagehead, guageface, guagedial, guageconnector, teapot;
+ int teapot_polys;
+ GLXContext *glx_context;
+
+ Bool button_down_p;
+ trackball_state *trackball;
+ GLuint *dlists, *poly_counts;
+ int dlist_count, dlist_size;
+ int system_index, system_size;
+
+ int fadeout;
+
+} pipesstruct;
+
+extern struct lwo LWO_BigValve, LWO_PipeBetweenBolts, LWO_Bolts3D;
+extern struct lwo LWO_GuageHead, LWO_GuageFace, LWO_GuageDial, LWO_GuageConnector;
+extern struct lwo LWO_ElbowBolts, LWO_ElbowCoins;
+
+static const float front_shininess[] = {60.0};
+static const float front_specular[] = {0.7, 0.7, 0.7, 1.0};
+static const float ambient0[] = {0.4, 0.4, 0.4, 1.0};
+static const float diffuse0[] = {1.0, 1.0, 1.0, 1.0};
+static const float ambient1[] = {0.2, 0.2, 0.2, 1.0};
+static const float diffuse1[] = {0.5, 0.5, 0.5, 1.0};
+static const float position0[] = {1.0, 1.0, 1.0, 0.0};
+static const float position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const float lmodel_twoside[] = {GL_TRUE};
+
+static const float MaterialRed[] = {0.7, 0.0, 0.0, 1.0};
+static const float MaterialGreen[] = {0.1, 0.5, 0.2, 1.0};
+static const float MaterialBlue[] = {0.0, 0.0, 0.7, 1.0};
+static const float MaterialCyan[] = {0.2, 0.5, 0.7, 1.0};
+static const float MaterialYellow[] = {0.7, 0.7, 0.0, 1.0};
+static const float MaterialMagenta[] = {0.6, 0.2, 0.5, 1.0};
+static const float MaterialWhite[] = {0.7, 0.7, 0.7, 1.0};
+static const float MaterialGray[] = {0.2, 0.2, 0.2, 1.0};
+
+static pipesstruct *pipes = NULL;
+
+
+static void
+MakeTube(ModeInfo *mi, int direction)
+{
+ Bool wire = MI_IS_WIREFRAME(mi);
+ float an;
+ float SINan_3, COSan_3;
+ int facets = (wire ? 5 : 24);
+
+ /*dirUP = 00000000 */
+ /*dirDOWN = 00000001 */
+ /*dirLEFT = 00000010 */
+ /*dirRIGHT = 00000011 */
+ /*dirNEAR = 00000100 */
+ /*dirFAR = 00000101 */
+
+ if (!(direction & 4)) {
+ glRotatef(90.0, (direction & 2) ? 0.0 : 1.0,
+ (direction & 2) ? 1.0 : 0.0, 0.0);
+ }
+ glBegin(wire ? GL_LINE_STRIP : GL_QUAD_STRIP);
+ for (an = 0.0; an <= 2.0 * M_PI; an += M_PI * 2 / facets) {
+ glNormal3f((COSan_3 = cos(an) / 3.0), (SINan_3 = sin(an) / 3.0), 0.0);
+ glVertex3f(COSan_3, SINan_3, one_third);
+ glVertex3f(COSan_3, SINan_3, -one_third);
+ mi->polygon_count++;
+ }
+ glEnd();
+}
+
+static void
+mySphere(float radius, Bool wire)
+{
+#if 0
+ GLUquadricObj *quadObj;
+
+ quadObj = gluNewQuadric();
+ gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
+ gluSphere(quadObj, radius, 16, 16);
+ gluDeleteQuadric(quadObj);
+#else
+ glPushMatrix();
+ glScalef (radius, radius, radius);
+ glRotatef (90, 1, 0, 0);
+ unit_sphere (16, 16, wire);
+ glPopMatrix();
+#endif
+}
+
+static void
+myElbow(ModeInfo * mi, int bolted)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+
+ int nsides = (wire ? 6 : 25);
+ int rings = nsides;
+#define r one_third
+#define R one_third
+
+ int i, j;
+ GLfloat p0[3], p1[3], p2[3], p3[3];
+ GLfloat n0[3], n1[3], n2[3], n3[3];
+ GLfloat COSphi, COSphi1, COStheta, COStheta1;
+ GLfloat _SINtheta, _SINtheta1;
+
+ for (i = 0; i <= rings / 4; i++) {
+ GLfloat theta, theta1;
+
+ theta = (GLfloat) i *2.0 * M_PI / rings;
+
+ theta1 = (GLfloat) (i + 1) * 2.0 * M_PI / rings;
+ for (j = 0; j < nsides; j++) {
+ GLfloat phi, phi1;
+
+ phi = (GLfloat) j *2.0 * M_PI / nsides;
+
+ phi1 = (GLfloat) (j + 1) * 2.0 * M_PI / nsides;
+
+ p0[0] = (COStheta = cos(theta)) * (R + r * (COSphi = cos(phi)));
+ p0[1] = (_SINtheta = -sin(theta)) * (R + r * COSphi);
+
+ p1[0] = (COStheta1 = cos(theta1)) * (R + r * COSphi);
+ p1[1] = (_SINtheta1 = -sin(theta1)) * (R + r * COSphi);
+
+ p2[0] = COStheta1 * (R + r * (COSphi1 = cos(phi1)));
+ p2[1] = _SINtheta1 * (R + r * COSphi1);
+
+ p3[0] = COStheta * (R + r * COSphi1);
+ p3[1] = _SINtheta * (R + r * COSphi1);
+
+ n0[0] = COStheta * COSphi;
+ n0[1] = _SINtheta * COSphi;
+
+ n1[0] = COStheta1 * COSphi;
+ n1[1] = _SINtheta1 * COSphi;
+
+ n2[0] = COStheta1 * COSphi1;
+ n2[1] = _SINtheta1 * COSphi1;
+
+ n3[0] = COStheta * COSphi1;
+ n3[1] = _SINtheta * COSphi1;
+
+ p0[2] = p1[2] = r * (n0[2] = n1[2] = sin(phi));
+ p2[2] = p3[2] = r * (n2[2] = n3[2] = sin(phi1));
+
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3fv(n3);
+ glVertex3fv(p3);
+ glNormal3fv(n2);
+ glVertex3fv(p2);
+ glNormal3fv(n1);
+ glVertex3fv(p1);
+ glNormal3fv(n0);
+ glVertex3fv(p0);
+ mi->polygon_count++;
+ glEnd();
+ }
+ }
+
+ if (factory > 0 && bolted) {
+ /* Bolt the elbow onto the pipe system */
+ glFrontFace(GL_CW);
+ glPushMatrix();
+ glRotatef(90.0, 0.0, 0.0, -1.0);
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ glTranslatef(0.0, one_third, one_third);
+ glCallList(pp->elbowcoins);
+ mi->polygon_count += LWO_ElbowCoins.num_pnts/3;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+ glCallList(pp->elbowbolts);
+ mi->polygon_count += LWO_ElbowBolts.num_pnts/3;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, pp->system_color);
+ glPopMatrix();
+ glFrontFace(GL_CCW);
+ }
+#undef r
+#undef R
+#undef nsides
+#undef rings
+}
+
+static void
+FindNeighbors(ModeInfo * mi)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+ pp->ndirections = 0;
+ pp->directions[dirUP] = (!pp->Cells[pp->PX][pp->PY + 1][pp->PZ]) ? 1 : 0;
+ pp->ndirections += pp->directions[dirUP];
+ pp->directions[dirDOWN] = (!pp->Cells[pp->PX][pp->PY - 1][pp->PZ]) ? 1 : 0;
+ pp->ndirections += pp->directions[dirDOWN];
+ pp->directions[dirLEFT] = (!pp->Cells[pp->PX - 1][pp->PY][pp->PZ]) ? 1 : 0;
+ pp->ndirections += pp->directions[dirLEFT];
+ pp->directions[dirRIGHT] = (!pp->Cells[pp->PX + 1][pp->PY][pp->PZ]) ? 1 : 0;
+ pp->ndirections += pp->directions[dirRIGHT];
+ pp->directions[dirFAR] = (!pp->Cells[pp->PX][pp->PY][pp->PZ - 1]) ? 1 : 0;
+ pp->ndirections += pp->directions[dirFAR];
+ pp->directions[dirNEAR] = (!pp->Cells[pp->PX][pp->PY][pp->PZ + 1]) ? 1 : 0;
+ pp->ndirections += pp->directions[dirNEAR];
+}
+
+static int
+SelectNeighbor(ModeInfo * mi)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+ int dirlist[6];
+ int i, j;
+
+ for (i = 0, j = 0; i < 6; i++) {
+ if (pp->directions[i]) {
+ dirlist[j] = i;
+ j++;
+ }
+ }
+
+ return dirlist[NRAND(pp->ndirections)];
+}
+
+static void
+MakeValve(ModeInfo * mi, int newdir)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+ /* There is a glPopMatrix() right after this subroutine returns. */
+ switch (newdir) {
+ case dirUP:
+ case dirDOWN:
+ glRotatef(90.0, 1.0, 0.0, 0.0);
+ glRotatef(NRAND(3) * 90.0, 0.0, 0.0, 1.0);
+ break;
+ case dirLEFT:
+ case dirRIGHT:
+ glRotatef(90.0, 0.0, -1.0, 0.0);
+ glRotatef((NRAND(3) * 90.0) - 90.0, 0.0, 0.0, 1.0);
+ break;
+ case dirNEAR:
+ case dirFAR:
+ glRotatef(NRAND(4) * 90.0, 0.0, 0.0, 1.0);
+ break;
+ }
+ glFrontFace(GL_CW);
+ glCallList(pp->betweenbolts);
+ mi->polygon_count += LWO_PipeBetweenBolts.num_pnts/3;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+ glCallList(pp->bolts);
+ mi->polygon_count += LWO_Bolts3D.num_pnts/3;
+ if (!MI_IS_MONO(mi)) {
+ if (pp->system_color == MaterialRed) {
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, NRAND(2) ? MaterialYellow : MaterialBlue);
+ } else if (pp->system_color == MaterialBlue) {
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, NRAND(2) ? MaterialRed : MaterialYellow);
+ } else if (pp->system_color == MaterialYellow) {
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, NRAND(2) ? MaterialBlue : MaterialRed);
+ } else {
+ switch ((NRAND(3))) {
+ case 0:
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialRed);
+ break;
+ case 1:
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialBlue);
+ break;
+ case 2:
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialYellow);
+ }
+ }
+ }
+ glRotatef((GLfloat) (NRAND(90)), 1.0, 0.0, 0.0);
+ glCallList(pp->valve);
+ mi->polygon_count += LWO_BigValve.num_pnts/3;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, pp->system_color);
+ glFrontFace(GL_CCW);
+}
+
+static int
+MakeGuage(ModeInfo * mi, int newdir)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+ /* Can't have a guage on a vertical pipe. */
+ if ((newdir == dirUP) || (newdir == dirDOWN))
+ return (0);
+
+ /* Is there space above this pipe for a guage? */
+ if (!pp->directions[dirUP])
+ return (0);
+
+ /* Yes! Mark the space as used. */
+ pp->Cells[pp->PX][pp->PY + 1][pp->PZ] = 1;
+
+ glFrontFace(GL_CW);
+ glPushMatrix();
+ if ((newdir == dirLEFT) || (newdir == dirRIGHT))
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ glCallList(pp->betweenbolts);
+ mi->polygon_count += LWO_PipeBetweenBolts.num_pnts/3;
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+ glCallList(pp->bolts);
+ mi->polygon_count += LWO_Bolts3D.num_pnts/3;
+ glPopMatrix();
+
+ glCallList(pp->guageconnector);
+ mi->polygon_count += LWO_GuageConnector.num_pnts/3;
+ glPushMatrix();
+ glTranslatef(0.0, 1.33333, 0.0);
+ /* Do not change the above to 1 + ONE_THIRD, because */
+ /* the object really is centered on 1.3333300000. */
+ glRotatef(NRAND(270) + 45.0, 0.0, 0.0, -1.0);
+ /* Random rotation for the dial. I love it. */
+ glCallList(pp->guagedial);
+ mi->polygon_count += LWO_GuageDial.num_pnts/3;
+ glPopMatrix();
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, pp->system_color);
+ glCallList(pp->guagehead);
+ mi->polygon_count += LWO_GuageHead.num_pnts/3;
+
+ /* GuageFace is drawn last, in case of low-res depth buffers. */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
+ glCallList(pp->guageface);
+ mi->polygon_count += LWO_GuageFace.num_pnts/3;
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, pp->system_color);
+ glFrontFace(GL_CCW);
+
+ return (1);
+}
+
+
+static GLuint
+build_teapot(ModeInfo *mi)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+ GLuint list = glGenLists(1);
+ if (!list) return 0;
+ glNewList(list, GL_COMPILE);
+ pp->teapot_polys = unit_teapot (12, MI_IS_WIREFRAME(mi));
+ glEndList();
+ return list;
+}
+
+
+static void
+MakeTeapot(ModeInfo * mi, int newdir)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+ switch (newdir) {
+ case dirUP:
+ case dirDOWN:
+ glRotatef(90.0, 1.0, 0.0, 0.0);
+ glRotatef(NRAND(3) * 90.0, 0.0, 0.0, 1.0);
+ break;
+ case dirLEFT:
+ case dirRIGHT:
+ glRotatef(90.0, 0.0, -1.0, 0.0);
+ glRotatef((NRAND(3) * 90.0) - 90.0, 0.0, 0.0, 1.0);
+ break;
+ case dirNEAR:
+ case dirFAR:
+ glRotatef(NRAND(4) * 90.0, 0.0, 0.0, 1.0);
+ break;
+ }
+
+ glCallList(pp->teapot);
+ mi->polygon_count += pp->teapot_polys;
+ glFrontFace(GL_CCW);
+}
+
+
+static void
+MakeShape(ModeInfo * mi, int newdir)
+{
+ int n = NRAND(100);
+ if (n < 50) {
+ if (!MakeGuage(mi, newdir))
+ MakeTube(mi, newdir);
+ } else if (n < 98) {
+ MakeValve(mi, newdir);
+ } else {
+ MakeTeapot(mi,newdir);
+ }
+}
+
+static void
+pinit(ModeInfo * mi, int zera)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+ int X, Y, Z;
+
+ if (zera) {
+ pp->system_number = 1;
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ (void) memset(pp->Cells, 0, sizeof (pp->Cells));
+ for (X = 0; X < HCELLS; X++) {
+ for (Y = 0; Y < VCELLS; Y++) {
+ pp->Cells[X][Y][0] = 1;
+ pp->Cells[X][Y][HCELLS - 1] = 1;
+ pp->Cells[0][Y][X] = 1;
+ pp->Cells[HCELLS - 1][Y][X] = 1;
+ }
+ }
+ for (X = 0; X < HCELLS; X++) {
+ for (Z = 0; Z < HCELLS; Z++) {
+ pp->Cells[X][0][Z] = 1;
+ pp->Cells[X][VCELLS - 1][Z] = 1;
+ }
+ }
+ (void) memset(pp->usedcolors, 0, sizeof (pp->usedcolors));
+ }
+ pp->counter = 0;
+ pp->turncounter = 0;
+
+ if (!MI_IS_MONO(mi)) {
+ int collist[DEFINEDCOLORS];
+ int i, j, lower = 1000;
+
+ /* Avoid repeating colors on the same screen unless necessary */
+ for (i = 0; i < DEFINEDCOLORS; i++) {
+ if (lower > pp->usedcolors[i])
+ lower = pp->usedcolors[i];
+ }
+ for (i = 0, j = 0; i < DEFINEDCOLORS; i++) {
+ if (pp->usedcolors[i] == lower) {
+ collist[j] = i;
+ j++;
+ }
+ }
+ i = collist[NRAND(j)];
+ pp->usedcolors[i]++;
+ switch (i) {
+ case 0:
+ pp->system_color = MaterialRed;
+ break;
+ case 1:
+ pp->system_color = MaterialGreen;
+ break;
+ case 2:
+ pp->system_color = MaterialBlue;
+ break;
+ case 3:
+ pp->system_color = MaterialCyan;
+ break;
+ case 4:
+ pp->system_color = MaterialYellow;
+ break;
+ case 5:
+ pp->system_color = MaterialMagenta;
+ break;
+ case 6:
+ pp->system_color = MaterialWhite;
+ break;
+ }
+ } else {
+ pp->system_color = MaterialGray;
+ }
+
+ do {
+ pp->PX = NRAND((HCELLS - 1)) + 1;
+ pp->PY = NRAND((VCELLS - 1)) + 1;
+ pp->PZ = NRAND((HCELLS - 1)) + 1;
+ } while (pp->Cells[pp->PX][pp->PY][pp->PZ] ||
+ (pp->Cells[pp->PX + 1][pp->PY][pp->PZ] && pp->Cells[pp->PX - 1][pp->PY][pp->PZ] &&
+ pp->Cells[pp->PX][pp->PY + 1][pp->PZ] && pp->Cells[pp->PX][pp->PY - 1][pp->PZ] &&
+ pp->Cells[pp->PX][pp->PY][pp->PZ + 1] && pp->Cells[pp->PX][pp->PY][pp->PZ - 1]));
+ pp->Cells[pp->PX][pp->PY][pp->PZ] = 1;
+ pp->olddir = dirNone;
+
+ FindNeighbors(mi);
+
+ pp->nowdir = SelectNeighbor(mi);
+}
+
+
+ENTRYPOINT void
+reshape_pipes(ModeInfo * mi, int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+ glViewport(0, y, width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ /*glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0); */
+ gluPerspective(65.0, 1/h, 0.1, 20.0);
+ glMatrixMode(GL_MODELVIEW);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+ENTRYPOINT Bool
+pipes_handle_event (ModeInfo *mi, XEvent *event)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, pp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &pp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ pp->fadeout = 100;
+ return True;
+ }
+
+ return False;
+}
+
+
+
+static void generate_system (ModeInfo *);
+
+
+ENTRYPOINT void
+init_pipes (ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+ pipesstruct *pp;
+
+ MI_INIT (mi, pipes);
+ pp = &pipes[screen];
+
+ pp->window = MI_WINDOW(mi);
+ if ((pp->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_pipes(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ if (rotatepipes)
+ pp->initial_rotation = NRAND(180); /* jwz */
+ else
+ pp->initial_rotation = -10.0;
+ pinit(mi, 1);
+
+ if (factory > 0) {
+ pp->valve = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_BigValve);
+ pp->bolts = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_Bolts3D);
+ pp->betweenbolts = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_PipeBetweenBolts);
+
+ pp->elbowbolts = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_ElbowBolts);
+ pp->elbowcoins = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_ElbowCoins);
+
+ pp->guagehead = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_GuageHead);
+ pp->guageface = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_GuageFace);
+ pp->guagedial = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_GuageDial);
+ pp->guageconnector = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_GuageConnector);
+ pp->teapot = build_teapot(mi);
+ }
+ /* else they are all 0, thanks to calloc(). */
+
+ if (MI_COUNT(mi) < 1 || MI_COUNT(mi) > NofSysTypes + 1) {
+ pp->system_type = NRAND(NofSysTypes) + 1;
+ } else {
+ pp->system_type = MI_COUNT(mi);
+ }
+
+ if (MI_CYCLES(mi) > 0 && MI_CYCLES(mi) < 11) {
+ pp->number_of_systems = MI_CYCLES(mi);
+ } else {
+ pp->number_of_systems = 5;
+ }
+
+ if (MI_SIZE(mi) < 10) {
+ pp->system_length = 10;
+ } else if (MI_SIZE(mi) > 1000) {
+ pp->system_length = 1000;
+ } else {
+ pp->system_length = MI_SIZE(mi);
+ }
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ pp->trackball = gltrackball_init (True);
+ generate_system (mi);
+}
+
+
+static GLuint
+get_dlist (ModeInfo *mi, int i)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+ if (i >= pp->dlist_count)
+ {
+ pp->dlist_count++;
+ if (pp->dlist_count >= pp->dlist_size)
+ {
+ int s2 = (pp->dlist_size + 100) * 1.2;
+ pp->dlists = (GLuint *)
+ realloc (pp->dlists, s2 * sizeof(*pp->dlists));
+ if (! pp->dlists) abort();
+ pp->poly_counts = (GLuint *)
+ realloc (pp->poly_counts, s2 * sizeof(*pp->poly_counts));
+ if (! pp->poly_counts) abort();
+ pp->dlist_size = s2;
+ }
+ pp->dlists [i] = glGenLists (1);
+ pp->poly_counts [i] = 0;
+ }
+ return pp->dlists[i];
+}
+
+
+
+static void
+generate_system (ModeInfo * mi)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+
+ int newdir;
+ int OPX, OPY, OPZ;
+
+ Bool reset_p = False;
+
+ pp->system_index = 0;
+ pp->system_size = 0;
+ pinit (mi, 1);
+
+ while (1) {
+ glNewList (get_dlist (mi, pp->system_size++), GL_COMPILE);
+ mi->polygon_count = 0;
+
+ glPushMatrix();
+
+ FindNeighbors(mi);
+
+ if (wire)
+ glColor4fv (pp->system_color);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, pp->system_color);
+
+ /* If it's the begining of a system, draw a sphere */
+ if (pp->olddir == dirNone) {
+ glPushMatrix();
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0);
+ mySphere(0.6, wire);
+ glPopMatrix();
+ }
+ /* Check for stop conditions */
+ if (pp->ndirections == 0 || pp->counter > pp->system_length) {
+ glPushMatrix();
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0);
+ /* Finish the system with another sphere */
+ mySphere(0.6, wire);
+
+ glPopMatrix();
+
+ /* If the maximum number of system was drawn, restart (clearing the screen), */
+ /* else start a new system. */
+ if (++pp->system_number > pp->number_of_systems) {
+ reset_p = True;
+ } else {
+ pinit(mi, 0);
+ }
+
+ goto NEXT;
+ }
+ pp->counter++;
+ pp->turncounter++;
+
+ /* Do will the direction change? if so, determine the new one */
+ newdir = pp->nowdir;
+ if (!pp->directions[newdir]) { /* cannot proceed in the current direction */
+ newdir = SelectNeighbor(mi);
+ } else {
+ if (tightturns) {
+ /* random change (20% chance) */
+ if ((pp->counter > 1) && (NRAND(100) < 20)) {
+ newdir = SelectNeighbor(mi);
+ }
+ } else {
+ /* Chance to turn increases after each length of pipe drawn */
+ if ((pp->counter > 1) && NRAND(50) < NRAND(pp->turncounter + 1)) {
+ newdir = SelectNeighbor(mi);
+ pp->turncounter = 0;
+ }
+ }
+ }
+
+ /* Has the direction changed? */
+ if (newdir == pp->nowdir) {
+ /* If not, draw the cell's center pipe */
+ glPushMatrix();
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0);
+ /* Chance of factory shape here, if enabled. */
+ if ((pp->counter > 1) && (NRAND(100) < factory)) {
+ MakeShape(mi, newdir);
+ } else {
+ MakeTube(mi, newdir);
+ }
+ glPopMatrix();
+ } else {
+ /* If so, draw the cell's center elbow/sphere */
+ int sysT = pp->system_type;
+
+ if (sysT == NofSysTypes + 1) {
+ sysT = ((pp->system_number - 1) % NofSysTypes) + 1;
+ }
+ glPushMatrix();
+
+ switch (sysT) {
+ case 1:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0);
+ mySphere(elbowradius, wire);
+ break;
+ case 2:
+ case 3:
+ switch (pp->nowdir) {
+ case dirUP:
+ switch (newdir) {
+ case dirLEFT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ glRotatef(180.0, 1.0, 0.0, 0.0);
+ break;
+ case dirRIGHT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ glRotatef(180.0, 1.0, 0.0, 0.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ break;
+ case dirFAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ glRotatef(180.0, 0.0, 0.0, 1.0);
+ break;
+ case dirNEAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ glRotatef(180.0, 1.0, 0.0, 0.0);
+ break;
+ }
+ break;
+ case dirDOWN:
+ switch (newdir) {
+ case dirLEFT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ break;
+ case dirRIGHT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ break;
+ case dirFAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(270.0, 0.0, 1.0, 0.0);
+ break;
+ case dirNEAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ break;
+ }
+ break;
+ case dirLEFT:
+ switch (newdir) {
+ case dirUP:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ break;
+ case dirDOWN:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ glRotatef(180.0, 1.0, 0.0, 0.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ break;
+ case dirFAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ break;
+ case dirNEAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ glRotatef(180.0, 0.0, 0.0, 1.0);
+ break;
+ }
+ break;
+ case dirRIGHT:
+ switch (newdir) {
+ case dirUP:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ break;
+ case dirDOWN:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0);
+ glRotatef(180.0, 1.0, 0.0, 0.0);
+ break;
+ case dirFAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ break;
+ case dirNEAR:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(90.0, 1.0, 0.0, 0.0);
+ break;
+ }
+ break;
+ case dirNEAR:
+ switch (newdir) {
+ case dirLEFT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ break;
+ case dirRIGHT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ glRotatef(180.0, 0.0, 1.0, 0.0);
+ break;
+ case dirUP:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(270.0, 0.0, 1.0, 0.0);
+ break;
+ case dirDOWN:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0 - (one_third));
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ glRotatef(180.0, 0.0, 0.0, 1.0);
+ break;
+ }
+ break;
+ case dirFAR:
+ switch (newdir) {
+ case dirUP:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 + (one_third), (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ break;
+ case dirDOWN:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0 - (one_third), (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(90.0, 0.0, 1.0, 0.0);
+ glRotatef(180.0, 1.0, 0.0, 0.0);
+ break;
+ case dirLEFT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 - (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(90.0, 1.0, 0.0, 0.0);
+ break;
+ case dirRIGHT:
+ glTranslatef((pp->PX - 16) / 3.0 * 4.0 + (one_third), (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0 + (one_third));
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ glRotatef(180.0, 0.0, 0.0, 1.0);
+ break;
+ }
+ break;
+ }
+ myElbow(mi, (sysT == 2));
+ break;
+ }
+ glPopMatrix();
+ }
+
+ OPX = pp->PX;
+ OPY = pp->PY;
+ OPZ = pp->PZ;
+ pp->olddir = pp->nowdir;
+ pp->nowdir = newdir;
+ switch (pp->nowdir) {
+ case dirUP:
+ pp->PY++;
+ break;
+ case dirDOWN:
+ pp->PY--;
+ break;
+ case dirLEFT:
+ pp->PX--;
+ break;
+ case dirRIGHT:
+ pp->PX++;
+ break;
+ case dirNEAR:
+ pp->PZ++;
+ break;
+ case dirFAR:
+ pp->PZ--;
+ break;
+ }
+ pp->Cells[pp->PX][pp->PY][pp->PZ] = 1;
+
+ /* Cells'face pipe */
+ glTranslatef(((pp->PX + OPX) / 2.0 - 16) / 3.0 * 4.0, ((pp->PY + OPY) / 2.0 - 12) / 3.0 * 4.0, ((pp->PZ + OPZ) / 2.0 - 16) / 3.0 * 4.0);
+ MakeTube(mi, newdir);
+
+ NEXT:
+ glPopMatrix();
+ glEndList();
+ pp->poly_counts [pp->system_size-1] = mi->polygon_count;
+
+ if (reset_p)
+ break;
+ }
+}
+
+
+ENTRYPOINT void
+draw_pipes (ModeInfo * mi)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ Bool wire = MI_IS_WIREFRAME(mi);
+ int i = 0;
+
+ if (!pp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(pp->glx_context));
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glColor3f(1.0, 1.0, 1.0);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient0);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse0);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient1);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse1);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+
+ if (wire)
+ glDisable(GL_LIGHTING);
+ else
+ {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ /* This looks crappy. */
+ /* glEnable(GL_LIGHT1); */
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+ }
+
+ glShadeModel(GL_SMOOTH);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+
+ glPushMatrix();
+
+ pp->initial_rotation += 0.02;
+
+ glTranslatef(0.0, 0.0, fisheye ? -3.8 : -4.8);
+
+ gltrackball_rotate (pp->trackball);
+
+ if (rotatepipes)
+ glRotatef(pp->initial_rotation, 0.0, 1.0, 0.0);
+
+ glScalef(Scale4Window, Scale4Window, Scale4Window);
+
+ mi->polygon_count = 0;
+
+ if (pp->fadeout)
+ {
+ GLfloat s = (pp->fadeout * pp->fadeout) / 10000.0;
+ glScalef (s, s, s);
+ glRotatef (90 * (1 - (pp->fadeout/100.0)), 1, 0, 0.1);
+ pp->fadeout -= 4;
+ if (pp->fadeout <= 0)
+ {
+ pp->fadeout = 0;
+ generate_system (mi);
+ }
+ }
+ else if (pp->system_index < pp->system_size)
+ pp->system_index++;
+ else
+ pp->fadeout = 100;
+
+ for (i = 0; i < pp->system_index; i++)
+ {
+ glCallList (pp->dlists[i]);
+ mi->polygon_count += pp->poly_counts[i];
+ }
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(display, window);
+}
+
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_pipes (ModeInfo * mi)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+ if (!pp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(pp->glx_context));
+ pinit(mi, 1);
+}
+#endif /* !STANDALONE */
+
+
+ENTRYPOINT void
+free_pipes (ModeInfo * mi)
+{
+ pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+ if (pp->glx_context) {
+
+ /* Display lists MUST be freed while their glXContext is current. */
+ glXMakeCurrent(MI_DISPLAY(mi), pp->window, *(pp->glx_context));
+
+ if (pp->valve)
+ glDeleteLists(pp->valve, 1);
+ if (pp->bolts)
+ glDeleteLists(pp->bolts, 1);
+ if (pp->betweenbolts)
+ glDeleteLists(pp->betweenbolts, 1);
+
+ if (pp->elbowbolts)
+ glDeleteLists(pp->elbowbolts, 1);
+ if (pp->elbowcoins)
+ glDeleteLists(pp->elbowcoins, 1);
+
+ if (pp->guagehead)
+ glDeleteLists(pp->guagehead, 1);
+ if (pp->guageface)
+ glDeleteLists(pp->guageface, 1);
+ if (pp->guagedial)
+ glDeleteLists(pp->guagedial, 1);
+ if (pp->guageconnector)
+ glDeleteLists(pp->guageconnector, 1);
+ if (pp->teapot)
+ glDeleteLists(pp->teapot, 1);
+ if (pp->dlists)
+ {
+ int i;
+ for (i = 0; i < pp->dlist_count; i++)
+ glDeleteLists (pp->dlists[i], 1);
+ free (pp->dlists);
+ free (pp->poly_counts);
+ }
+ }
+}
+
+XSCREENSAVER_MODULE ("Pipes", pipes)
+
+#endif
diff --git a/hacks/glx/pipes.man b/hacks/glx/pipes.man
new file mode 100644
index 0000000..b58a511
--- /dev/null
+++ b/hacks/glx/pipes.man
@@ -0,0 +1,85 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+pipes - fill the screen with a plumbing system.
+.SH SYNOPSIS
+.B pipes
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[-count 0]
+[-count 1]
+[-cycles \fInumber\fP]
+[-size \fInumber\fP]
+[-factory \fInumber\fP]
+[-delay \fInumber\fP]
+[-no-fisheye]
+[-tightturns]
+[-db]
+[-fps]
+.SH DESCRIPTION
+If you've ever been in the same room as a Windows NT machine, you've
+probably seen this GL hack. It fills the screen with a plumbing system.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count 0
+Curved Pipes.
+.TP 8
+.B \-count 1
+Ball Joints.
+.TP 8
+.B \-cycles \fInumber\fP
+Number of pipe systems to draw at once. Default: 5.
+.TP 8
+.B \-size \fInumber\fP
+Length of each pipe system. Default: 500.
+.TP 8
+.B \-factory \fInumber\fP
+How much gadgetry to create; Useful range is 0-10. Default: 2.
+.TP 8
+.B \-delay \fInumber\fP
+How long (in microseconds) to sleep between frames. Default: 10000.
+.TP 8
+.B \-fisheye | \-no-fisheye
+Whether to use a fisheye lens.
+.TP 8
+.B \-tightturns | \-no-tightturns
+Whether to allow tight turns.
+.TP 8
+.B \-db | \-no-db
+Whether to double-buffer.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Marcelo Vianna. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Marcelo Vianna.
diff --git a/hacks/glx/polyhedra-gl.c b/hacks/glx/polyhedra-gl.c
new file mode 100644
index 0000000..507d295
--- /dev/null
+++ b/hacks/glx/polyhedra-gl.c
@@ -0,0 +1,683 @@
+/* polyhedra, Copyright (c) 2004-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Renders 160 different 3D solids, and displays some information about each.
+ * A new solid is chosen every few seconds.
+ *
+ * This file contains the OpenGL side; computation of the polyhedra themselves
+ * is in "polyhedra.c".
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*titleFont: -*-helvetica-medium-r-normal-*-*-140-*-*-*-*-*-*\n" \
+ "*titleFont2: -*-helvetica-medium-r-normal-*-*-100-*-*-*-*-*-*\n" \
+ "*titleFont3: -*-helvetica-medium-r-normal-*-*-80-*-*-*-*-*-*\n" \
+ "*suppressRotationAnimation: True\n" \
+
+
+# define free_polyhedra 0
+# define release_polyhedra 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_TITLES "True"
+#define DEF_DURATION "12"
+#define DEF_WHICH "random"
+
+#include "texfont.h"
+#include "normals.h"
+#include "polyhedra.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "teapot.h"
+
+#ifndef HAVE_JWXYZ
+# define XK_MISCELLANY
+# include <X11/keysymdef.h>
+#endif
+
+#ifndef HAVE_JWZGLES
+# define HAVE_TESS
+#endif
+
+
+#ifdef USE_GL /* whole file */
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int npolyhedra;
+ polyhedron **polyhedra;
+
+ int which;
+ int change_to;
+ GLuint object_list;
+
+ int mode; /* 0 = normal, 1 = out, 2 = in */
+ int mode_tick;
+
+ int ncolors;
+ XColor *colors;
+
+ texture_font_data *font1_data, *font2_data, *font3_data;
+
+ time_t last_change_time;
+ int change_tick;
+
+} polyhedra_configuration;
+
+static polyhedra_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static Bool do_titles;
+static int duration;
+static int do_which;
+static char *do_which_str;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-titles", ".titles", XrmoptionNoArg, "True" },
+ { "+titles", ".titles", XrmoptionNoArg, "False" },
+ { "-duration",".duration",XrmoptionSepArg, 0 },
+ { "-which", ".which", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&do_titles, "titles", "Titles", DEF_TITLES, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&duration,"duration","Duration",DEF_DURATION,t_Int},
+ {&do_which_str,"which", "Which", DEF_WHICH, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt polyhedra_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+/* Calculate the normals at each vertex of a face, and use the sum to
+ decide which normal to assign to the entire face. This also solves
+ problems caused by nonconvex faces, in most (but not all) cases.
+ */
+static void
+kludge_normal (int n, const int *indices, const point *points)
+{
+ XYZ normal = { 0, 0, 0 };
+ XYZ p = { 0, 0, 0 };
+ int i;
+
+ for (i = 0; i < n; ++i) {
+ int i1 = indices[i];
+ int i2 = indices[(i + 1) % n];
+ int i3 = indices[(i + 2) % n];
+ XYZ p1, p2, p3;
+
+ p1.x = points[i1].x; p1.y = points[i1].y; p1.z = points[i1].z;
+ p2.x = points[i2].x; p2.y = points[i2].y; p2.z = points[i2].z;
+ p3.x = points[i3].x; p3.y = points[i3].y; p3.z = points[i3].z;
+
+ p = calc_normal (p1, p2, p3);
+ normal.x += p.x;
+ normal.y += p.y;
+ normal.z += p.z;
+ }
+
+ /*normalize(&normal);*/
+ if (normal.x == 0 && normal.y == 0 && normal.z == 0) {
+ glNormal3f (p.x, p.y, p.z);
+ } else {
+ glNormal3f (normal.x, normal.y, normal.z);
+ }
+}
+
+
+static void
+load_fonts (ModeInfo *mi)
+{
+ polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+ bp->font1_data = load_texture_font (mi->dpy, "titleFont");
+ bp->font2_data = load_texture_font (mi->dpy, "titleFont2");
+ bp->font3_data = load_texture_font (mi->dpy, "titleFont3");
+}
+
+
+
+static void
+startup_blurb (ModeInfo *mi)
+{
+ polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+ const char *s = "Computing polyhedra...";
+ texture_font_data *f = bp->font1_data;
+
+ glColor3f (0.8, 0.8, 0);
+ print_texture_label (mi->dpy, f,
+ mi->xgwa.width, mi->xgwa.height,
+ 0, s);
+ glFinish();
+ glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
+}
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_polyhedra (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+polyhedra_handle_event (ModeInfo *mi, XEvent *event)
+{
+ polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+
+ bp->change_to = -1;
+ if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+ bp->change_to = random() % bp->npolyhedra;
+ else if (c == '>' || c == '.' || c == '+' || c == '=' ||
+ keysym == XK_Right || keysym == XK_Up || keysym == XK_Next)
+ bp->change_to = (bp->which + 1) % bp->npolyhedra;
+ else if (c == '<' || c == ',' || c == '-' || c == '_' ||
+ c == '\010' || c == '\177' ||
+ keysym == XK_Left || keysym == XK_Down || keysym == XK_Prior)
+ bp->change_to = (bp->which + bp->npolyhedra - 1) % bp->npolyhedra;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ goto DEF;
+
+ if (bp->change_to != -1)
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ DEF:
+ bp->change_to = random() % bp->npolyhedra;
+ return True;
+ }
+
+ return False;
+}
+
+
+static void
+draw_label (ModeInfo *mi)
+{
+ polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+ polyhedron *p = bp->which >= 0 ? bp->polyhedra[bp->which] : 0;
+ char label[1024];
+ char name2[255];
+ GLfloat color[4] = { 0.8, 0.8, 0.8, 1 };
+ texture_font_data *f;
+
+ if (!p || !do_titles) return;
+
+ strcpy (name2, p->name);
+ if (*p->class)
+ sprintf (name2 + strlen(name2), " (%s)", p->class);
+
+ sprintf (label,
+ "Polyhedron %d: \t%s\n\n"
+ "Wythoff Symbol:\t%s\n"
+ "Vertex Configuration:\t%s\n"
+ "Symmetry Group:\t%s\n"
+ /* "Dual of: \t%s\n" */
+ "\n"
+ "Faces:\t %d\n"
+ "Edges:\t %d\n"
+ "Vertices:\t %d\n"
+ "Density:\t %d\n"
+ "Euler:\t%s%d\n",
+ bp->which, name2, p->wythoff, p->config, p->group,
+ /* p->dual, */
+ p->logical_faces, p->nedges, p->logical_vertices,
+ p->density, (p->chi < 0 ? "" : " "), p->chi);
+
+ if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375)
+ f = bp->font1_data;
+ else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260)
+ f = bp->font2_data; /* small font */
+ else
+ f = bp->font3_data; /* tiny font */
+
+ glColor4fv (color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ print_texture_label (mi->dpy, f,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, label);
+}
+
+
+#ifdef HAVE_TESS
+static void
+tess_error (GLenum errorCode)
+{
+ fprintf (stderr, "%s: tesselation error: %s\n",
+ progname, gluErrorString(errorCode));
+ abort();
+}
+#endif /* HAVE_TESS */
+
+
+static void
+new_polyhedron (ModeInfo *mi)
+{
+ polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+ polyhedron *p;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ /* Use the GLU polygon tesselator so that nonconvex faces are displayed
+ correctly (e.g., for the "pentagrammic concave deltohedron").
+ */
+# ifdef HAVE_TESS
+ GLUtesselator *tobj = gluNewTess();
+ gluTessCallback (tobj, GLU_TESS_BEGIN, (void (*) (void)) &glBegin);
+ gluTessCallback (tobj, GLU_TESS_END, (void (*) (void)) &glEnd);
+ gluTessCallback (tobj, GLU_TESS_VERTEX, (void (*) (void)) &glVertex3dv);
+ gluTessCallback (tobj, GLU_TESS_ERROR, (void (*) (void)) &tess_error);
+# endif /* HAVE_TESS */
+
+ mi->polygon_count = 0;
+
+ bp->ncolors = 128;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_random_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ True, False, 0, False);
+
+ if (do_which >= bp->npolyhedra)
+ do_which = -1;
+
+ bp->which = (bp->change_to != -1 ? bp->change_to :
+ do_which >= 0 ? do_which :
+ (random() % bp->npolyhedra));
+ bp->change_to = -1;
+ p = bp->polyhedra[bp->which];
+
+ if (wire)
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+
+ glNewList (bp->object_list, GL_COMPILE);
+ if (bp->which == bp->npolyhedra-1)
+ {
+ GLfloat bcolor[4];
+ bcolor[0] = bp->colors[0].red / 65536.0;
+ bcolor[1] = bp->colors[0].green / 65536.0;
+ bcolor[2] = bp->colors[0].blue / 65536.0;
+ bcolor[3] = 1.0;
+ if (wire)
+ glColor3f (0, 1, 0);
+ else
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, bcolor);
+
+ glScalef (0.8, 0.8, 0.8);
+ p->nfaces = unit_teapot (6, wire);
+ p->nedges = p->nfaces * 3 / 2;
+ p->npoints = p->nfaces * 3;
+ p->logical_faces = p->nfaces;
+ p->logical_vertices = p->npoints;
+ }
+ else
+ {
+ glFrontFace (GL_CCW);
+ for (i = 0; i < p->nfaces; i++)
+ {
+ int j;
+ face *f = &p->faces[i];
+
+ if (f->color > 64 || f->color < 0) abort();
+ if (wire)
+ glColor3f (0, 1, 0);
+ else
+ {
+ GLfloat bcolor[4];
+ bcolor[0] = bp->colors[f->color].red / 65536.0;
+ bcolor[1] = bp->colors[f->color].green / 65536.0;
+ bcolor[2] = bp->colors[f->color].blue / 65536.0;
+ bcolor[3] = 1.0;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, bcolor);
+ }
+
+ kludge_normal (f->npoints, f->points, p->points);
+
+# ifdef HAVE_TESS
+ gluTessBeginPolygon (tobj, 0);
+ gluTessBeginContour (tobj);
+ for (j = 0; j < f->npoints; j++)
+ {
+ point *pp = &p->points[f->points[j]];
+ gluTessVertex (tobj, &pp->x, &pp->x);
+ }
+ gluTessEndContour (tobj);
+ gluTessEndPolygon (tobj);
+# else /* !HAVE_TESS */
+ glBegin (wire ? GL_LINE_LOOP :
+ f->npoints == 3 ? GL_TRIANGLES :
+ f->npoints == 4 ? GL_QUADS :
+ GL_POLYGON);
+ for (j = 0; j < f->npoints; j++)
+ {
+ point *pp = &p->points[f->points[j]];
+ glVertex3f (pp->x, pp->y, pp->z);
+ }
+ glEnd();
+# endif /* !HAVE_TESS */
+ }
+ }
+ glEndList ();
+
+ mi->polygon_count += p->nfaces;
+# ifdef HAVE_TESS
+ gluDeleteTess (tobj);
+# endif
+}
+
+
+static void
+construct_teapot (ModeInfo *mi)
+{
+ polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+ int n = bp->npolyhedra-1;
+ polyhedron *p = (polyhedron *) calloc (1, sizeof(*p));
+ p->number = n;
+ p->wythoff = strdup("X00398|1984");
+ p->name = strdup("Teapot");
+ p->dual = strdup("");
+ p->config = strdup("Melitta");
+ p->group = strdup("Teapotahedral (Newell[1975])");
+ p->class = strdup("Utah Teapotahedron");
+ bp->polyhedra[n] = p;
+}
+
+
+ENTRYPOINT void
+init_polyhedra (ModeInfo *mi)
+{
+ polyhedra_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ MI_IS_WIREFRAME(mi) = 0;
+ wire = 0;
+# endif
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ bp->which = -1;
+ load_fonts (mi);
+ startup_blurb (mi);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ /* glEnable(GL_CULL_FACE); */
+
+ /* We need two-sided lighting for polyhedra where both sides of
+ a face are simultaneously visible (e.g., the "X-hemi-Y-hedrons".)
+ */
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ {
+ double spin_speed = 2.0;
+ double wander_speed = 0.05;
+ double spin_accel = 0.2;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->npolyhedra = construct_polyhedra (&bp->polyhedra);
+ construct_teapot (mi);
+
+ bp->object_list = glGenLists (1);
+ bp->change_to = -1;
+
+ {
+ int x;
+ char c;
+ do_which = -1;
+ if (!strcasecmp (do_which_str, "random"))
+ ;
+ else if (1 == sscanf (do_which_str, " %d %c", &x, &c))
+ {
+ if (x >= 0 && x < bp->npolyhedra)
+ do_which = x;
+ else
+ fprintf (stderr,
+ "%s: polyhedron %d does not exist: there are only %d.\n",
+ progname, x, bp->npolyhedra-1);
+ }
+ else if (*do_which_str)
+ {
+ char *s;
+ for (s = do_which_str; *s; s++)
+ if (*s == '-' || *s == '_') *s = ' ';
+
+ for (x = 0; x < bp->npolyhedra; x++)
+ if (!strcasecmp (do_which_str, bp->polyhedra[x]->name) ||
+ !strcasecmp (do_which_str, bp->polyhedra[x]->class) ||
+ !strcasecmp (do_which_str, bp->polyhedra[x]->wythoff) ||
+ !strcasecmp (do_which_str, bp->polyhedra[x]->config))
+ {
+ do_which = x;
+ break;
+ }
+ if (do_which < 0)
+ {
+ fprintf (stderr, "%s: no such polyhedron: \"%s\"\n",
+ progname, do_which_str);
+ exit (1);
+ }
+ }
+ }
+
+ new_polyhedron (mi);
+ reshape_polyhedra (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
+}
+
+
+ENTRYPOINT void
+draw_polyhedra (ModeInfo *mi)
+{
+ polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ static const GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat bshiny = 128.0;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ if (bp->mode == 0 && do_which >= 0 && bp->change_to < 0)
+ ;
+ else if (bp->mode == 0)
+ {
+ if (bp->change_to >= 0)
+ bp->change_tick = 999, bp->last_change_time = 1;
+ if (bp->change_tick++ > 10)
+ {
+ time_t now = time((time_t *) 0);
+ if (bp->last_change_time == 0) bp->last_change_time = now;
+ bp->change_tick = 0;
+ if (!bp->button_down_p && now - bp->last_change_time >= duration)
+ {
+ bp->mode = 1; /* go out */
+ bp->mode_tick = 20 / speed;
+ bp->last_change_time = now;
+ }
+ }
+ }
+ else if (bp->mode == 1) /* out */
+ {
+ if (--bp->mode_tick <= 0)
+ {
+ new_polyhedron (mi);
+ bp->mode_tick = 20 / speed;
+ bp->mode = 2; /* go in */
+ }
+ }
+ else if (bp->mode == 2) /* in */
+ {
+ if (--bp->mode_tick <= 0)
+ bp->mode = 0; /* normal */
+ }
+ else
+ abort();
+
+ glShadeModel(GL_FLAT);
+ glEnable(GL_NORMALIZE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ glScalef (2.0, 2.0, 2.0);
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT_AND_BACK, GL_SHININESS, bshiny);
+
+ if (bp->mode != 0)
+ {
+ GLfloat s = (bp->mode == 1
+ ? bp->mode_tick / (20 / speed)
+ : ((20 / speed) - bp->mode_tick + 1) / (20 / speed));
+ glScalef (s, s, s);
+ }
+
+ glScalef (2, 2, 2);
+ glCallList (bp->object_list);
+ if (bp->mode == 0 && !bp->button_down_p)
+ draw_label (mi); /* print_texture_font can't go inside a display list */
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Polyhedra", polyhedra)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/polyhedra.c b/hacks/glx/polyhedra.c
new file mode 100644
index 0000000..a7699c9
--- /dev/null
+++ b/hacks/glx/polyhedra.c
@@ -0,0 +1,2457 @@
+/*****************************************************************************
+ * #ident "Id: main.c,v 3.27 2002-01-06 16:23:01+02 rl Exp "
+ * kaleido
+ *
+ * Kaleidoscopic construction of uniform polyhedra
+ * Copyright (c) 1991-2002 Dr. Zvi Har'El <rl@math.technion.ac.il>
+ *
+ * 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. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by
+ * Dr. Zvi Har'El (http://www.math.technion.ac.il/~rl/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the author be held liable for any
+ * damages arising from the use of this software.
+ *
+ * Author:
+ * Dr. Zvi Har'El,
+ * Deptartment of Mathematics,
+ * Technion, Israel Institue of Technology,
+ * Haifa 32000, Israel.
+ * E-Mail: rl@math.technion.ac.il
+ *
+ * ftp://ftp.math.technion.ac.il/kaleido/
+ * http://www.mathconsult.ch/showroom/unipoly/
+ *
+ * Adapted for xscreensaver by Jamie Zawinski <jwz@jwz.org> 25-Apr-2004
+ *
+ *****************************************************************************
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <math.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include "polyhedra.h"
+
+extern const char *progname;
+
+#ifndef MAXLONG
+#define MAXLONG 0x7FFFFFFF
+#endif
+#ifndef MAXDIGITS
+#define MAXDIGITS 10 /* (int)log10((double)MAXLONG) + 1 */
+#endif
+
+#ifndef DBL_EPSILON
+#define DBL_EPSILON 2.2204460492503131e-16
+#endif
+#define BIG_EPSILON 3e-2
+#define AZ M_PI/7 /* axis azimuth */
+#define EL M_PI/17 /* axis elevation */
+
+#define Err(x) do {\
+ fprintf (stderr, "%s: %s\n", progname, (x)); \
+ exit (1); \
+ } while(0)
+
+#define Free(lvalue) do {\
+ if (lvalue) {\
+ free((char*) lvalue);\
+ lvalue=0;\
+ }\
+ } while(0)
+
+#define Matfree(lvalue,n) do {\
+ if (lvalue) \
+ matfree((char*) lvalue, n);\
+ lvalue=0;\
+ } while(0)
+
+#define Malloc(lvalue,n,type) do {\
+ if (!(lvalue = (type*) calloc((n), sizeof(type)))) \
+ abort();\
+ } while(0)
+
+#define Realloc(lvalue,n,type) do {\
+ if (!(lvalue = (type*) realloc(lvalue, (n) * sizeof(type)))) \
+ abort();\
+ } while(0)
+
+#define Calloc(lvalue,n,type) do {\
+ if (!(lvalue = (type*) calloc(n, sizeof(type))))\
+ abort();\
+ } while(0)
+
+#define Matalloc(lvalue,n,m,type) do {\
+ if (!(lvalue = (type**) matalloc(n, (m) * sizeof(type))))\
+ abort();\
+ } while(0)
+
+#define Sprintfrac(lvalue,x) do {\
+ if (!(lvalue=sprintfrac(x)))\
+ return 0;\
+ } while(0)
+
+#define numerator(x) (frac(x), frax.n)
+#define denominator(x) (frac(x), frax.d)
+#define compl(x) (frac(x), (double) frax.n / (frax.n-frax.d))
+
+typedef struct {
+ double x, y, z;
+} Vector;
+
+typedef struct {
+ /* NOTE: some of the int's can be replaced by short's, char's,
+ or even bit fields, at the expense of readability!!!*/
+ int index; /* index to the standard list, the array uniform[] */
+ int N; /* number of faces types (atmost 5)*/
+ int M; /* vertex valency (may be big for dihedral polyhedra) */
+ int V; /* vertex count */
+ int E; /* edge count */
+ int F; /* face count */
+ int D; /* density */
+ int chi; /* Euler characteristic */
+ int g; /* order of symmetry group */
+ int K; /* symmetry type: D=2, T=3, O=4, I=5 */
+ int hemi;/* flag hemi polyhedron */
+ int onesided;/* flag onesided polyhedron */
+ int even; /* removed face in pqr| */
+ int *Fi; /* face counts by type (array N)*/
+ int *rot; /* vertex configuration (array M of 0..N-1) */
+ int *snub; /* snub triangle configuration (array M of 0..1) */
+ int *firstrot; /* temporary for vertex generation (array V) */
+ int *anti; /* temporary for direction of ideal vertices (array E) */
+ int *ftype; /* face types (array F) */
+ int **e; /* edges (matrix 2 x E of 0..V-1)*/
+ int **dual_e; /* dual edges (matrix 2 x E of 0..F-1)*/
+ int **incid; /* vertex-face incidence (matrix M x V of 0..F-1)*/
+ int **adj; /* vertex-vertex adjacency (matrix M x V of 0..V-1)*/
+ double p[4]; /* p, q and r; |=0 */
+ double minr; /* smallest nonzero inradius */
+ double gon; /* basis type for dihedral polyhedra */
+ double *n; /* number of side of a face of each type (array N) */
+ double *m; /* number of faces at a vertex of each type (array N) */
+ double *gamma; /* fundamental angles in radians (array N) */
+ char *polyform; /* printable Wythoff symbol */
+ char *config; /* printable vertex configuration */
+ char *group; /* printable group name */
+ char *name; /* name, standard or manifuctured */
+ char *dual_name; /* dual name, standard or manifuctured */
+ char *class;
+ char *dual_class;
+ Vector *v; /* vertex coordinates (array V) */
+ Vector *f; /* face coordinates (array F)*/
+} Polyhedron;
+
+typedef struct {
+ long n,d;
+} Fraction;
+
+static Polyhedron *polyalloc(void);
+static Vector rotate(Vector vertex, Vector axis, double angle);
+
+static Vector sum3(Vector a, Vector b, Vector c);
+static Vector scale(double k, Vector a);
+static Vector sum(Vector a, Vector b);
+static Vector diff(Vector a, Vector b);
+static Vector pole (double r, Vector a, Vector b, Vector c);
+static Vector cross(Vector a, Vector b);
+static double dot(Vector a, Vector b);
+static int same(Vector a, Vector b, double epsilon);
+
+static char *sprintfrac(double x);
+
+static void frac(double x);
+static void matfree(void *mat, int rows);
+static void *matalloc(int rows, int row_size);
+
+static Fraction frax;
+
+
+static const struct {
+ char *Wythoff, *name, *dual, *group, *class, *dual_class;
+ short Coxeter, Wenninger;
+} uniform[] = {
+
+ /****************************************************************************
+ * Dihedral Schwarz Triangles (D5 only)
+ ***************************************************************************/
+
+ /* 0 */ {"2 5|2", "Pentagonal Prism",
+ "Pentagonal Dipyramid",
+ "Dihedral (D[1/5])",
+ "",
+ "",
+ 0, 0},
+
+ /* 2 */ {"|2 2 5", "Pentagonal Antiprism",
+ "Pentagonal Deltohedron",
+ "Dihedral (D[1/5])",
+ "",
+ "",
+ 0, 0},
+ /* (2 2 5/2) (D2/5) */
+ /* 4 */ {"2 5/2|2", "Pentagrammic Prism",
+ "Pentagrammic Dipyramid",
+ "Dihedral (D[2/5])",
+ "",
+ "",
+ 0, 0},
+
+ /* 6 */ {"|2 2 5/2", "Pentagrammic Antiprism",
+ "Pentagrammic Deltohedron",
+ "Dihedral (D[2/5])",
+ "",
+ "",
+ 0, 0},
+ /* (5/3 2 2) (D3/5) */
+
+ /* 8 */ {"|2 2 5/3", "Pentagrammic Crossed Antiprism",
+ "Pentagrammic Concave Deltohedron",
+ "Dihedral (D[3/5])",
+ "",
+ "",
+ 0, 0},
+
+ /****************************************************************************
+ * Tetrahedral
+ ***************************************************************************/
+
+ /* (2 3 3) (T1) */
+ /* 10 */ {"3|2 3", "Tetrahedron",
+ "Tetrahedron",
+ "Tetrahedral (T[1])",
+ "Platonic Solid",
+ "Platonic Solid",
+ 15, 1},
+
+ /* 12 */ {"2 3|3", "Truncated Tetrahedron",
+ "Triakistetrahedron",
+ "Tetrahedral (T[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 16, 6},
+ /* (3/2 3 3) (T2) */
+ /* 14 */ {"3/2 3|3", "Octahemioctahedron",
+ "Octahemioctacron",
+ "Tetrahedral (T[2])",
+ "",
+ "",
+ 37, 68},
+
+ /* (3/2 2 3) (T3) */
+ /* 16 */ {"3/2 3|2", "Tetrahemihexahedron",
+ "Tetrahemihexacron",
+ "Tetrahedral (T[3])",
+ "",
+ "",
+ 36, 67},
+
+ /****************************************************************************
+ * Octahedral
+ ***************************************************************************/
+
+ /* (2 3 4) (O1) */
+ /* 18 */ {"4|2 3", "Octahedron",
+ "Cube",
+ "Octahedral (O[1])",
+ "Platonic Solid",
+ "Platonic Solid",
+ 17, 2},
+
+ /* 20 */ {"3|2 4", "Cube",
+ "Octahedron",
+ "Octahedral (O[1])",
+ "Platonic Solid",
+ "Platonic Solid",
+ 18, 3},
+
+ /* 22 */ {"2|3 4", "Cuboctahedron",
+ "Rhombic Dodecahedron",
+ "Octahedral (O[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 19, 11},
+
+ /* 24 */ {"2 4|3", "Truncated Octahedron",
+ "Tetrakishexahedron",
+ "Octahedral (O[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 20, 7},
+
+ /* 26 */ {"2 3|4", "Truncated Cube",
+ "Triakisoctahedron",
+ "Octahedral (O[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 21, 8},
+
+ /* 28 */ {"3 4|2", "Rhombicuboctahedron",
+ "Deltoidal Icositetrahedron",
+ "Octahedral (O[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 22, 13},
+
+ /* 30 */ {"2 3 4|", "Truncated Cuboctahedron",
+ "Disdyakisdodecahedron",
+ "Octahedral (O[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 23, 15},
+
+ /* 32, 33, 66, and 67 are chiral, existing in both left and right handed
+ (enantiomeric) forms, so it would make sense to display both versions.
+ */
+
+ /* 32 */ {"|2 3 4", "Snub Cube",
+ "Pentagonal Icositetrahedron",
+ "Octahedral (O[1]), Chiral",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 24, 17},
+ /* (3/2 4 4) (O2b) */
+
+ /* 34 */ {"3/2 4|4", "Small Cubicuboctahedron",
+ "Small Hexacronic Icositetrahedron",
+ "Octahedral (O[2b])",
+ "",
+ "",
+ 38, 69},
+ /* (4/3 3 4) (O4) */
+
+ /* 36 */ {"3 4|4/3", "Great Cubicuboctahedron",
+ "Great Hexacronic Icositetrahedron",
+ "Octahedral (O[4])",
+ "",
+ "",
+ 50, 77},
+
+ /* 38 */ {"4/3 4|3", "Cubohemioctahedron",
+ "Hexahemioctacron",
+ "Octahedral (O[4])",
+ "",
+ "",
+ 51, 78},
+
+ /* 40 */ {"4/3 3 4|", "Cubitruncated Cuboctahedron",
+ "Tetradyakishexahedron",
+ "Octahedral (O[4])",
+ "",
+ "",
+ 52, 79},
+ /* (3/2 2 4) (O5) */
+
+ /* 42 */ {"3/2 4|2", "Great Rhombicuboctahedron",
+ "Great Deltoidal Icositetrahedron",
+ "Octahedral (O[5])",
+ "",
+ "",
+ 59, 85},
+
+ /* 44 */ {"3/2 2 4|", "Small Rhombihexahedron",
+ "Small Rhombihexacron",
+ "Octahedral (O[5])",
+ "",
+ "",
+ 60, 86},
+ /* (4/3 2 3) (O7) */
+
+ /* 46 */ {"2 3|4/3", "Stellated Truncated Hexahedron",
+ "Great Triakisoctahedron",
+ "Octahedral (O[7])",
+ "",
+ "",
+ 66, 92},
+
+ /* 48 */ {"4/3 2 3|", "Great Truncated Cuboctahedron",
+ "Great Disdyakisdodecahedron",
+ "Octahedral (O[7])",
+ "",
+ "",
+ 67, 93},
+ /* (4/3 3/2 2) (O11) */
+
+ /* 50 */ {"4/3 3/2 2|", "Great Rhombihexahedron",
+ "Great Rhombihexacron",
+ "Octahedral (O[11])",
+ "",
+ "",
+ 82, 103},
+
+ /****************************************************************************
+ * Icosahedral
+ ***************************************************************************/
+
+ /* (2 3 5) (I1) */
+ /* 52 */ {"5|2 3", "Icosahedron",
+ "Dodecahedron",
+ "Icosahedral (I[1])",
+ "Platonic Solid",
+ "Platonic Solid",
+ 25, 4},
+
+ /* 54 */ {"3|2 5", "Dodecahedron",
+ "Icosahedron",
+ "Icosahedral (I[1])",
+ "Platonic Solid",
+ "Platonic Solid",
+ 26, 5},
+
+ /* 56 */ {"2|3 5", "Icosidodecahedron",
+ "Rhombic Triacontahedron",
+ "Icosahedral (I[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 28, 12},
+
+ /* 58 */ {"2 5|3", "Truncated Icosahedron",
+ "Pentakisdodecahedron",
+ "Icosahedral (I[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 27, 9},
+
+ /* 60 */ {"2 3|5", "Truncated Dodecahedron",
+ "Triakisicosahedron",
+ "Icosahedral (I[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 29, 10},
+
+ /* 62 */ {"3 5|2", "Rhombicosidodecahedron",
+ "Deltoidal Hexecontahedron",
+ "Icosahedral (I[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 30, 14},
+
+ /* 64 */ {"2 3 5|", "Truncated Icosidodecahedron",
+ "Disdyakistriacontahedron",
+ "Icosahedral (I[1])",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 31, 16},
+
+ /* 32, 33, 66, and 67 are chiral, existing in both left and right handed
+ (enantiomeric) forms, so it would make sense to display both versions.
+ */
+
+ /* 66 */ {"|2 3 5", "Snub Dodecahedron",
+ "Pentagonal Hexecontahedron",
+ "Icosahedral (I[1]), Chiral",
+ "Archimedean Solid",
+ "Catalan Solid",
+ 32, 18},
+ /* (5/2 3 3) (I2a) */
+
+ /* 68 */ {"3|5/2 3", "Small Ditrigonal Icosidodecahedron",
+ "Small Triambic Icosahedron",
+ "Icosahedral (I[2a])",
+ "",
+ "",
+ 39, 70},
+
+ /* 70 */ {"5/2 3|3", "Small Icosicosidodecahedron",
+ "Small Icosacronic Hexecontahedron",
+ "Icosahedral (I[2a])",
+ "",
+ "",
+ 40, 71},
+
+ /* 72 */ {"|5/2 3 3", "Small Snub Icosicosidodecahedron",
+ "Small Hexagonal Hexecontahedron",
+ "Icosahedral (I[2a])",
+ "",
+ "",
+ 41, 110},
+ /* (3/2 5 5) (I2b) */
+
+ /* 74 */ {"3/2 5|5", "Small Dodecicosidodecahedron",
+ "Small Dodecacronic Hexecontahedron",
+ "Icosahedral (I[2b])",
+ "",
+ "",
+ 42, 72},
+ /* (2 5/2 5) (I3) */
+
+ /* 76 */ {"5|2 5/2", "Small Stellated Dodecahedron",
+ "Great Dodecahedron",
+ "Icosahedral (I[3])",
+ "Kepler-Poinsot Solid",
+ "Kepler-Poinsot Solid",
+ 43, 20},
+
+ /* 78 */ {"5/2|2 5", "Great Dodecahedron",
+ "Small Stellated Dodecahedron",
+ "Icosahedral (I[3])",
+ "Kepler-Poinsot Solid",
+ "Kepler-Poinsot Solid",
+ 44, 21},
+
+ /* 80 */ {"2|5/2 5", "Great Dodecadodecahedron",
+ "Medial Rhombic Triacontahedron",
+ "Icosahedral (I[3])",
+ "",
+ "",
+ 45, 73},
+
+ /* 82 */ {"2 5/2|5", "Truncated Great Dodecahedron",
+ "Small Stellapentakisdodecahedron",
+ "Icosahedral (I[3])",
+ "",
+ "",
+ 47, 75},
+
+ /* 84 */ {"5/2 5|2", "Rhombidodecadodecahedron",
+ "Medial Deltoidal Hexecontahedron",
+ "Icosahedral (I[3])",
+ "",
+ "",
+ 48, 76},
+
+ /* 86 */ {"2 5/2 5|", "Small Rhombidodecahedron",
+ "Small Rhombidodecacron",
+ "Icosahedral (I[3])",
+ "",
+ "",
+ 46, 74},
+
+ /* 88 */ {"|2 5/2 5", "Snub Dodecadodecahedron",
+ "Medial Pentagonal Hexecontahedron",
+ "Icosahedral (I[3])",
+ "",
+ "",
+ 49, 111},
+ /* (5/3 3 5) (I4) */
+
+ /* 90 */ {"3|5/3 5", "Ditrigonal Dodecadodecahedron",
+ "Medial Triambic Icosahedron",
+ "Icosahedral (I[4])",
+ "",
+ "",
+ 53, 80},
+
+ /* 92 */ {"3 5|5/3", "Great Ditrigonal Dodecicosidodecahedron",
+ "Great Ditrigonal Dodecacronic Hexecontahedron",
+ "Icosahedral (I[4])",
+ "",
+ "",
+ 54, 81},
+
+ /* 94 */ {"5/3 3|5", "Small Ditrigonal Dodecicosidodecahedron",
+ "Small Ditrigonal Dodecacronic Hexecontahedron",
+ "Icosahedral (I[4])",
+ "",
+ "",
+ 55, 82},
+
+ /* 96 */ {"5/3 5|3", "Icosidodecadodecahedron",
+ "Medial Icosacronic Hexecontahedron",
+ "Icosahedral (I[4])",
+ "",
+ "",
+ 56, 83},
+
+ /* 98 */ {"5/3 3 5|", "Icositruncated Dodecadodecahedron",
+ "Tridyakisicosahedron",
+ "Icosahedral (I[4])",
+ "",
+ "",
+ 57, 84},
+
+ /* 100 */ {"|5/3 3 5", "Snub Icosidodecadodecahedron",
+ "Medial Hexagonal Hexecontahedron",
+ "Icosahedral (I[4])",
+ "",
+ "",
+ 58, 112},
+ /* (3/2 3 5) (I6b) */
+
+ /* 102 */ {"3/2|3 5", "Great Ditrigonal Icosidodecahedron",
+ "Great Triambic Icosahedron",
+ "Icosahedral (I[6b])",
+ "",
+ "",
+ 61, 87},
+
+ /* 104 */ {"3/2 5|3", "Great Icosicosidodecahedron",
+ "Great Icosacronic Hexecontahedron",
+ "Icosahedral (I[6b])",
+ "",
+ "",
+ 62, 88},
+
+ /* 106 */ {"3/2 3|5", "Small Icosihemidodecahedron",
+ "Small Icosihemidodecacron",
+ "Icosahedral (I[6b])",
+ "",
+ "",
+ 63, 89},
+
+ /* 108 */ {"3/2 3 5|", "Small Dodecicosahedron",
+ "Small Dodecicosacron",
+ "Icosahedral (I[6b])",
+ "",
+ "",
+ 64, 90},
+ /* (5/4 5 5) (I6c) */
+
+ /* 110 */ {"5/4 5|5", "Small Dodecahemidodecahedron",
+ "Small Dodecahemidodecacron",
+ "Icosahedral (I[6c])",
+ "",
+ "",
+ 65, 91},
+ /* (2 5/2 3) (I7) */
+
+ /* 112 */ {"3|2 5/2", "Great Stellated Dodecahedron",
+ "Great Icosahedron",
+ "Icosahedral (I[7])",
+ "Kepler-Poinsot Solid",
+ "Kepler-Poinsot Solid",
+ 68, 22},
+
+ /* 114 */ {"5/2|2 3", "Great Icosahedron",
+ "Great Stellated Dodecahedron",
+ "Icosahedral (I[7])",
+ "Kepler-Poinsot Solid",
+ "Kepler-Poinsot Solid",
+ 69, 41},
+
+ /* 116 */ {"2|5/2 3", "Great Icosidodecahedron",
+ "Great Rhombic Triacontahedron",
+ "Icosahedral (I[7])",
+ "",
+ "",
+ 70, 94},
+
+ /* 118 */ {"2 5/2|3", "Great Truncated Icosahedron",
+ "Great Stellapentakisdodecahedron",
+ "Icosahedral (I[7])",
+ "",
+ "",
+ 71, 95},
+
+ /* 120 */ {"2 5/2 3|", "Rhombicosahedron",
+ "Rhombicosacron",
+ "Icosahedral (I[7])",
+ "",
+ "",
+ 72, 96},
+
+ /* 122 */ {"|2 5/2 3", "Great Snub Icosidodecahedron",
+ "Great Pentagonal Hexecontahedron",
+ "Icosahedral (I[7])",
+ "",
+ "",
+ 73, 113},
+ /* (5/3 2 5) (I9) */
+
+ /* 124 */ {"2 5|5/3", "Small Stellated Truncated Dodecahedron",
+ "Great Pentakisdodecahedron",
+ "Icosahedral (I[9])",
+ "",
+ "",
+ 74, 97},
+
+ /* 126 */ {"5/3 2 5|", "Truncated Dodecadodecahedron",
+ "Medial Disdyakistriacontahedron",
+ "Icosahedral (I[9])",
+ "",
+ "",
+ 75, 98},
+
+ /* 128 */ {"|5/3 2 5", "Inverted Snub Dodecadodecahedron",
+ "Medial Inverted Pentagonal Hexecontahedron",
+ "Icosahedral (I[9])",
+ "",
+ "",
+ 76, 114},
+ /* (5/3 5/2 3) (I10a) */
+
+ /* 130 */ {"5/2 3|5/3", "Great Dodecicosidodecahedron",
+ "Great Dodecacronic Hexecontahedron",
+ "Icosahedral (I[10a])",
+ "",
+ "",
+ 77, 99},
+
+ /* 132 */ {"5/3 5/2|3", "Small Dodecahemicosahedron",
+ "Small Dodecahemicosacron",
+ "Icosahedral (I[10a])",
+ "",
+ "",
+ 78, 100},
+
+ /* 134 */ {"5/3 5/2 3|", "Great Dodecicosahedron",
+ "Great Dodecicosacron",
+ "Icosahedral (I[10a])",
+ "",
+ "",
+ 79, 101},
+
+ /* 136 */ {"|5/3 5/2 3", "Great Snub Dodecicosidodecahedron",
+ "Great Hexagonal Hexecontahedron",
+ "Icosahedral (I[10a])",
+ "",
+ "",
+ 80, 115},
+ /* (5/4 3 5) (I10b) */
+
+ /* 138 */ {"5/4 5|3", "Great Dodecahemicosahedron",
+ "Great Dodecahemicosacron",
+ "Icosahedral (I[10b])",
+ "",
+ "",
+ 81, 102},
+ /* (5/3 2 3) (I13) */
+
+ /* 140 */ {"2 3|5/3", "Great Stellated Truncated Dodecahedron",
+ "Great Triakisicosahedron",
+ "Icosahedral (I[13])",
+ "",
+ "",
+ 83, 104},
+
+ /* 142 */ {"5/3 3|2", "Great Rhombicosidodecahedron",
+ "Great Deltoidal Hexecontahedron",
+ "Icosahedral (I[13])",
+ "",
+ "",
+ 84, 105},
+
+ /* 144 */ {"5/3 2 3|", "Great Truncated Icosidodecahedron",
+ "Great Disdyakistriacontahedron",
+ "Icosahedral (I[13])",
+ "",
+ "",
+ 87, 108},
+
+ /* 146 */ {"|5/3 2 3", "Great Inverted Snub Icosidodecahedron",
+ "Great Inverted Pentagonal Hexecontahedron",
+ "Icosahedral (I[13])",
+ "",
+ "",
+ 88, 116},
+ /* (5/3 5/3 5/2) (I18a) */
+
+ /* 148 */ {"5/3 5/2|5/3", "Great Dodecahemidodecahedron",
+ "Great Dodecahemidodecacron",
+ "Icosahedral (I[18a])",
+ "",
+ "",
+ 86, 107},
+ /* (3/2 5/3 3) (I18b) */
+
+ /* 150 */ {"3/2 3|5/3", "Great Icosihemidodecahedron",
+ "Great Icosihemidodecacron",
+ "Icosahedral (I[18b])",
+ "",
+ "",
+ 85, 106},
+ /* (3/2 3/2 5/3) (I22) */
+
+ /* 152 */ {"|3/2 3/2 5/2","Small Retrosnub Icosicosidodecahedron",
+ "Small Hexagrammic Hexecontahedron",
+ "Icosahedral (I[22])",
+ "",
+ "",
+ 91, 118},
+ /* (3/2 5/3 2) (I23) */
+
+ /* 154 */ {"3/2 5/3 2|", "Great Rhombidodecahedron",
+ "Great Rhombidodecacron",
+ "Icosahedral (I[23])",
+ "",
+ "",
+ 89, 109},
+
+ /* 156 */ {"|3/2 5/3 2", "Great Retrosnub Icosidodecahedron",
+ "Great Pentagrammic Hexecontahedron",
+ "Icosahedral (I[23])",
+ "",
+ "",
+ 90, 117},
+
+ /****************************************************************************
+ * Last But Not Least
+ ***************************************************************************/
+
+ /* 158 */ {"3/2 5/3 3 5/2", "Great Dirhombicosidodecahedron",
+ "Great Dirhombicosidodecacron",
+ "Non-Wythoffian",
+ "",
+ "",
+ 92, 119}
+};
+
+static int last_uniform = sizeof (uniform) / sizeof (uniform[0]);
+
+
+
+static int unpacksym(const char *sym, Polyhedron *P);
+static int moebius(Polyhedron *P);
+static int decompose(Polyhedron *P);
+static int guessname(Polyhedron *P);
+static int newton(Polyhedron *P, int need_approx);
+static int exceptions(Polyhedron *P);
+static int count(Polyhedron *P);
+static int configuration(Polyhedron *P);
+static int vertices(Polyhedron *P);
+static int faces(Polyhedron *P);
+static int edgelist(Polyhedron *P);
+
+static Polyhedron *
+kaleido(const char *sym,
+ int need_coordinates, int need_edgelist, int need_approx,
+ int just_list)
+{
+ Polyhedron *P;
+ /*
+ * Allocate a Polyhedron structure P.
+ */
+ if (!(P = polyalloc()))
+ return 0;
+ /*
+ * Unpack input symbol into P.
+ */
+ if (!unpacksym(sym, P))
+ return 0;
+ /*
+ * Find Mebius triangle, its density and Euler characteristic.
+ */
+ if (!moebius(P))
+ return 0;
+ /*
+ * Decompose Schwarz triangle.
+ */
+ if (!decompose(P))
+ return 0;
+ /*
+ * Find the names of the polyhedron and its dual.
+ */
+ if (!guessname(P))
+ return 0;
+ if (just_list)
+ return P;
+ /*
+ * Solve Fundamental triangles, optionally printing approximations.
+ */
+ if (!newton(P,need_approx))
+ return 0;
+ /*
+ * Deal with exceptional polyhedra.
+ */
+ if (!exceptions(P))
+ return 0;
+ /*
+ * Count edges and faces, update density and characteristic if needed.
+ */
+ if (!count(P))
+ return 0;
+ /*
+ * Generate printable vertex configuration.
+ */
+ if (!configuration(P))
+ return 0;
+ /*
+ * Compute coordinates.
+ */
+ if (!need_coordinates && !need_edgelist)
+ return P;
+ if (!vertices(P))
+ return 0;
+ if (!faces (P))
+ return 0;
+ /*
+ * Compute edgelist.
+ */
+ if (!need_edgelist)
+ return P;
+ if (!edgelist(P))
+ return 0;
+ return P;
+}
+
+/*
+ * Allocate a blank Polyhedron structure and initialize some of its nonblank
+ * fields.
+ *
+ * Array and matrix field are allocated when needed.
+ */
+static Polyhedron *
+polyalloc()
+{
+ Polyhedron *P;
+ Calloc(P, 1, Polyhedron);
+ P->index = -1;
+ P->even = -1;
+ P->K = 2;
+ return P;
+}
+
+/*
+ * Free the struture allocated by polyalloc(), as well as all the array and
+ * matrix fields.
+ */
+static void
+polyfree(Polyhedron *P)
+{
+ Free(P->Fi);
+ Free(P->n);
+ Free(P->m);
+ Free(P->gamma);
+ Free(P->rot);
+ Free(P->snub);
+ Free(P->firstrot);
+ Free(P->anti);
+ Free(P->ftype);
+ Free(P->polyform);
+ Free(P->config);
+ if (P->index < 0) {
+ Free(P->name);
+ Free(P->dual_name);
+ }
+ Free(P->v);
+ Free(P->f);
+ Matfree(P->e, 2);
+ Matfree(P->dual_e, 2);
+ Matfree(P->incid, P->M);
+ Matfree(P->adj, P->M);
+ free(P);
+}
+
+static void *
+matalloc(int rows, int row_size)
+{
+ void **mat;
+ int i = 0;
+ if (!(mat = malloc(rows * sizeof (void *))))
+ return 0;
+ while ((mat[i] = malloc(row_size)) && ++i < rows)
+ ;
+ if (i == rows)
+ return (void *)mat;
+ while (--i >= 0)
+ free(mat[i]);
+ free(mat);
+ return 0;
+}
+
+static void
+matfree(void *mat, int rows)
+{
+ while (--rows >= 0)
+ free(((void **)mat)[rows]);
+ free(mat);
+}
+
+/*
+ * compute the mathematical modulus function.
+ */
+static int
+mod (int i, int j)
+{
+ return (i%=j)>=0?i:j<0?i-j:i+j;
+}
+
+
+/*
+ * Find the numerator and the denominator using the Euclidean algorithm.
+ */
+static void
+frac(double x)
+{
+ static const Fraction zero = {0,1}, inf = {1,0};
+ Fraction r0, r;
+ long f;
+ double s = x;
+ r = zero;
+ frax = inf;
+ for (;;) {
+ if (fabs(s) > (double) MAXLONG)
+ return;
+ f = (long) floor (s);
+ r0 = r;
+ r = frax;
+ frax.n = frax.n * f + r0.n;
+ frax.d = frax.d * f + r0.d;
+ if (x == (double)frax.n/(double)frax.d)
+ return;
+ s = 1 / (s - f);
+ }
+}
+
+
+/*
+ * Unpack input symbol: Wythoff symbol or an index to uniform[]. The symbol is
+ * a # followed by a number, or a three fractions and a bar in some order. We
+ * allow no bars only if it result from the input symbol #80.
+ */
+static int
+unpacksym(const char *sym, Polyhedron *P)
+{
+ int i = 0, n, d, bars = 0;
+ char c;
+ while ((c = *sym++) && isspace(c))
+ ;
+ if (!c) Err("no data");
+ if (c == '#') {
+ while ((c = *sym++) && isspace(c))
+ ;
+ if (!c)
+ Err("no digit after #");
+ if (!isdigit(c))
+ Err("not a digit");
+ n = c - '0';
+ while ((c = *sym++) && isdigit(c))
+ n = n * 10 + c - '0';
+ if (!n)
+ Err("zero index");
+ if (n > last_uniform)
+ Err("index too big");
+ sym--;
+ while ((c = *sym++) && isspace(c))
+ ;
+ if (c)
+ Err("data exceeded");
+ sym = uniform[P->index = n - 1].Wythoff;
+ } else
+ sym--;
+
+ for (;;) {
+ while ((c = *sym++) && isspace(c))
+ ;
+ if (!c) {
+ if (i == 4 && (bars || P->index == last_uniform - 1))
+ return 1;
+ if (!bars)
+ Err("no bars");
+ Err("not enough fractions");
+ }
+ if (i == 4)
+ Err("data exceeded");
+ if (c == '|'){
+ if (++bars > 1)
+ Err("too many bars");
+ P->p[i++] = 0;
+ continue;
+ }
+ if (!isdigit(c))
+ Err("not a digit");
+ n = c - '0';
+ while ((c = *sym++) && isdigit(c))
+ n = n * 10 + c - '0';
+ if (c && isspace (c))
+ while ((c = *sym++) && isspace(c))
+ ;
+ if (c != '/') {
+ sym--;
+ if ((P->p[i++] = n) <= 1)
+ Err("fraction<=1");
+ continue;
+ }
+ while ((c = *sym++) && isspace(c))
+ ;
+ if (!c || !isdigit(c))
+ return 0;
+ d = c - '0';
+ while ((c = *sym++) && isdigit(c))
+ d = d * 10 + c - '0';
+ if (!d)
+ Err("zero denominator");
+ sym--;
+ if ((P->p[i++] = (double) n / d) <= 1)
+ Err("fraction<=1");
+ }
+}
+
+/*
+ * Using Wythoff symbol (p|qr, pq|r, pqr| or |pqr), find the Moebius triangle
+ * (2 3 K) (or (2 2 n)) of the Schwarz triangle (pqr), the order g of its
+ * symmetry group, its Euler characteristic chi, and its covering density D.
+ * g is the number of copies of (2 3 K) covering the sphere, i.e.,
+ *
+ * g * pi * (1/2 + 1/3 + 1/K - 1) = 4 * pi
+ *
+ * D is the number of times g copies of (pqr) cover the sphere, i.e.
+ *
+ * D * 4 * pi = g * pi * (1/p + 1/q + 1/r - 1)
+ *
+ * chi is V - E + F, where F = g is the number of triangles, E = 3*g/2 is the
+ * number of triangle edges, and V = Vp+ Vq+ Vr, with Vp = g/(2*np) being the
+ * number of vertices with angle pi/p (np is the numerator of p).
+ */
+static int
+moebius(Polyhedron *P)
+{
+ int twos = 0, j, len = 1;
+ /*
+ * Arrange Wythoff symbol in a presentable form. In the same time check the
+ * restrictions on the three fractions: They all have to be greater then one,
+ * and the numerators 4 or 5 cannot occur together. We count the ocurrences
+ * of 2 in `two', and save the largest numerator in `P->K', since they
+ * reflect on the symmetry group.
+ */
+ P->K = 2;
+ if (P->index == last_uniform - 1) {
+ Malloc(P->polyform, ++len, char);
+ strcpy(P->polyform, "|");
+ } else
+ Calloc(P->polyform, len, char);
+ for (j = 0; j < 4; j++) {
+ if (P->p[j]) {
+ char *s;
+ Sprintfrac(s, P->p[j]);
+ if (j && P->p[j-1]) {
+ Realloc(P->polyform, len += strlen (s) + 1, char);
+ strcat(P->polyform, " ");
+ } else
+ Realloc (P->polyform, len += strlen (s), char);
+ strcat(P->polyform, s);
+ free(s);
+ if (P->p[j] != 2) {
+ int k;
+ if ((k = numerator (P->p[j])) > P->K) {
+ if (P->K == 4)
+ break;
+ P->K = k;
+ } else if (k < P->K && k == 4)
+ break;
+ } else
+ twos++;
+ } else {
+ Realloc(P->polyform, ++len, char);
+ strcat(P->polyform, "|");
+ }
+ }
+ /*
+ * Find the symmetry group P->K (where 2, 3, 4, 5 represent the dihedral,
+ * tetrahedral, octahedral and icosahedral groups, respectively), and its
+ * order P->g.
+ */
+ if (twos >= 2) {/* dihedral */
+ P->g = 4 * P->K;
+ P->K = 2;
+ } else {
+ if (P->K > 5)
+ Err("numerator too large");
+ P->g = 24 * P->K / (6 - P->K);
+ }
+ /*
+ * Compute the nominal density P->D and Euler characteristic P->chi.
+ * In few exceptional cases, these values will be modified later.
+ */
+ if (P->index != last_uniform - 1) {
+ int i;
+ P->D = P->chi = - P->g;
+ for (j = 0; j < 4; j++) if (P->p[j]) {
+ P->chi += i = P->g / numerator(P->p[j]);
+ P->D += i * denominator(P->p[j]);
+ }
+ P->chi /= 2;
+ P->D /= 4;
+ if (P->D <= 0)
+ Err("nonpositive density");
+ }
+ return 1;
+}
+
+/*
+ * Decompose Schwarz triangle into N right triangles and compute the vertex
+ * count V and the vertex valency M. V is computed from the number g of
+ * Schwarz triangles in the cover, divided by the number of triangles which
+ * share a vertex. It is halved for one-sided polyhedra, because the
+ * kaleidoscopic construction really produces a double orientable covering of
+ * such polyhedra. All q' q|r are of the "hemi" type, i.e. have equatorial {2r}
+ * faces, and therefore are (except 3/2 3|3 and the dihedra 2 2|r) one-sided. A
+ * well known example is 3/2 3|4, the "one-sided heptahedron". Also, all p q r|
+ * with one even denominator have a crossed parallelogram as a vertex figure,
+ * and thus are one-sided as well.
+ */
+static int
+decompose(Polyhedron *P)
+{
+ int j, J, *s, *t;
+ if (!P->p[1]) { /* p|q r */
+ P->N = 2;
+ P->M = 2 * numerator(P->p[0]);
+ P->V = P->g / P->M;
+ Malloc(P->n, P->N, double);
+ Malloc(P->m, P->N, double);
+ Malloc(P->rot, P->M, int);
+ s = P->rot;
+ for (j = 0; j < 2; j++) {
+ P->n[j] = P->p[j+2];
+ P->m[j] = P->p[0];
+ }
+ for (j = P->M / 2; j--;) {
+ *s++ = 0;
+ *s++ = 1;
+ }
+ } else if (!P->p[2]) { /* p q|r */
+ P->N = 3;
+ P->M = 4;
+ P->V = P->g / 2;
+ Malloc(P->n, P->N, double);
+ Malloc(P->m, P->N, double);
+ Malloc(P->rot, P->M, int);
+ s = P->rot;
+ P->n[0] = 2 * P->p[3];
+ P->m[0] = 2;
+ for (j = 1; j < 3; j++) {
+ P->n[j] = P->p[j-1];
+ P->m[j] = 1;
+ *s++ = 0;
+ *s++ = j;
+ }
+ if (fabs(P->p[0] - compl (P->p[1])) < DBL_EPSILON) {/* p = q' */
+ /* P->p[0]==compl(P->p[1]) should work. However, MSDOS
+ * yeilds a 7e-17 difference! Reported by Jim Buddenhagen
+ * <jb1556@daditz.sbc.com> */
+ P->hemi = 1;
+ P->D = 0;
+ if (P->p[0] != 2 && !(P->p[3] == 3 && (P->p[0] == 3 ||
+ P->p[1] == 3))) {
+ P->onesided = 1;
+ P->V /= 2;
+ P->chi /= 2;
+ }
+ }
+ } else if (!P->p[3]) { /* p q r| */
+ P->M = P->N = 3;
+ P->V = P->g;
+ Malloc(P->n, P->N, double);
+ Malloc(P->m, P->N, double);
+ Malloc(P->rot, P->M, int);
+ s = P->rot;
+ for (j = 0; j < 3; j++) {
+ if (!(denominator(P->p[j]) % 2)) {
+ /* what happens if there is more then one even denominator? */
+ if (P->p[(j+1)%3] != P->p[(j+2)%3]) { /* needs postprocessing */
+ P->even = j;/* memorize the removed face */
+ P->chi -= P->g / numerator(P->p[j]) / 2;
+ P->onesided = 1;
+ P->D = 0;
+ } else {/* for p = q we get a double 2 2r|p */
+ /* noted by Roman Maeder <maeder@inf.ethz.ch> for 4 4 3/2| */
+ /* Euler characteristic is still wrong */
+ P->D /= 2;
+ }
+ P->V /= 2;
+ }
+ P->n[j] = 2 * P->p[j];
+ P->m[j] = 1;
+ *s++ = j;
+ }
+ } else { /* |p q r - snub polyhedron */
+ P->N = 4;
+ P->M = 6;
+ P->V = P->g / 2;/* Only "white" triangles carry a vertex */
+ Malloc(P->n, P->N, double);
+ Malloc(P->m, P->N, double);
+ Malloc(P->rot, P->M, int);
+ Malloc(P->snub, P->M, int);
+ s = P->rot;
+ t = P->snub;
+ P->m[0] = P->n[0] = 3;
+ for (j = 1; j < 4; j++) {
+ P->n[j] = P->p[j];
+ P->m[j] = 1;
+ *s++ = 0;
+ *s++ = j;
+ *t++ = 1;
+ *t++ = 0;
+ }
+ }
+ /*
+ * Sort the fundamental triangles (using bubble sort) according to decreasing
+ * n[i], while pushing the trivial triangles (n[i] = 2) to the end.
+ */
+ J = P->N - 1;
+ while (J) {
+ int last;
+ last = J;
+ J = 0;
+ for (j = 0; j < last; j++) {
+ if ((P->n[j] < P->n[j+1] || P->n[j] == 2) && P->n[j+1] != 2) {
+ int i;
+ double temp;
+ temp = P->n[j];
+ P->n[j] = P->n[j+1];
+ P->n[j+1] = temp;
+ temp = P->m[j];
+ P->m[j] = P->m[j+1];
+ P->m[j+1] = temp;
+ for (i = 0; i < P->M; i++) {
+ if (P->rot[i] == j)
+ P->rot[i] = j+1;
+ else if (P->rot[i] == j+1)
+ P->rot[i] = j;
+ }
+ if (P->even != -1) {
+ if (P->even == j)
+ P->even = j+1;
+ else if (P->even == j+1)
+ P->even = j;
+ }
+ J = j;
+ }
+ }
+ }
+ /*
+ * Get rid of repeated triangles.
+ */
+ for (J = 0; J < P->N && P->n[J] != 2;J++) {
+ int k, i;
+ for (j = J+1; j < P->N && P->n[j]==P->n[J]; j++)
+ P->m[J] += P->m[j];
+ k = j - J - 1;
+ if (k) {
+ for (i = j; i < P->N; i++) {
+ P->n[i - k] = P->n[i];
+ P->m[i - k] = P->m[i];
+ }
+ P->N -= k;
+ for (i = 0; i < P->M; i++) {
+ if (P->rot[i] >= j)
+ P->rot[i] -= k;
+ else if (P->rot[i] > J)
+ P->rot[i] = J;
+ }
+ if (P->even >= j)
+ P->even -= k;
+ }
+ }
+ /*
+ * Get rid of trivial triangles.
+ */
+ if (!J)
+ J = 1; /* hosohedron */
+ if (J < P->N) {
+ int i;
+ P->N = J;
+ for (i = 0; i < P->M; i++) {
+ if (P->rot[i] >= P->N) {
+ for (j = i + 1; j < P->M; j++) {
+ P->rot[j-1] = P->rot[j];
+ if (P->snub)
+ P->snub[j-1] = P->snub[j];
+ }
+ P->M--;
+ }
+ }
+ }
+ /*
+ * Truncate arrays
+ */
+ Realloc(P->n, P->N, double);
+ Realloc(P->m, P->N, double);
+ Realloc(P->rot, P->M, int);
+ if (P->snub)
+ Realloc(P->snub, P->M, int);
+ return 1;
+}
+
+
+static int dihedral(Polyhedron *P, const char *name, const char *dual_name);
+
+
+/*
+ * Get the polyhedron name, using standard list or guesswork. Ideally, we
+ * should try to locate the Wythoff symbol in the standard list (unless, of
+ * course, it is dihedral), after doing few normalizations, such as sorting
+ * angles and splitting isoceles triangles.
+ */
+static int
+guessname(Polyhedron *P)
+{
+ if (P->index != -1) {/* tabulated */
+ P->name = uniform[P->index].name;
+ P->dual_name = uniform[P->index].dual;
+ P->group = uniform[P->index].group;
+ P->class = uniform[P->index].class;
+ P->dual_class = uniform[P->index].dual_class;
+ return 1;
+ } else if (P->K == 2) {/* dihedral nontabulated */
+ if (!P->p[0]) {
+ if (P->N == 1) {
+ Malloc(P->name, sizeof ("Octahedron"), char);
+ Malloc(P->dual_name, sizeof ("Cube"), char);
+ strcpy(P->name, "Octahedron");
+ strcpy(P->dual_name, "Cube");
+ return 1;
+ }
+ P->gon = P->n[0] == 3 ? P->n[1] : P->n[0];
+ if (P->gon >= 2)
+ return dihedral(P, "Antiprism", "Deltohedron");
+ else
+ return dihedral(P, "Crossed Antiprism", "Concave Deltohedron");
+ } else if (!P->p[3] ||
+ (!P->p[2] &&
+ P->p[3] == 2)) {
+ if (P->N == 1) {
+ Malloc(P->name, sizeof("Cube"), char);
+ Malloc(P->dual_name, sizeof("Octahedron"), char);
+ strcpy(P->name, "Cube");
+ strcpy(P->dual_name, "Octahedron");
+ return 1;
+ }
+ P->gon = P->n[0] == 4 ? P->n[1] : P->n[0];
+ return dihedral(P, "Prism", "Dipyramid");
+ } else if (!P->p[1] && P->p[0] != 2) {
+ P->gon = P->m[0];
+ return dihedral(P, "Hosohedron", "Dihedron");
+ } else {
+ P->gon = P->n[0];
+ return dihedral(P, "Dihedron", "Hosohedron");
+ }
+ } else {/* other nontabulated */
+ static const char *pre[] = {"Tetr", "Oct", "Icos"};
+ Malloc(P->name, 50, char);
+ Malloc(P->dual_name, 50, char);
+ sprintf(P->name, "%sahedral ", pre[P->K - 3]);
+ if (P->onesided)
+ strcat (P->name, "One-Sided ");
+ else if (P->D == 1)
+ strcat(P->name, "Convex ");
+ else
+ strcat(P->name, "Nonconvex ");
+ strcpy(P->dual_name, P->name);
+ strcat(P->name, "Isogonal Polyhedron");
+ strcat(P->dual_name, "Isohedral Polyhedron");
+ Realloc(P->name, strlen (P->name) + 1, char);
+ Realloc(P->dual_name, strlen (P->dual_name) + 1, char);
+ return 1;
+ }
+}
+
+static int
+dihedral(Polyhedron *P, const char *name, const char *dual_name)
+{
+ char *s;
+ int i;
+ Sprintfrac(s, P->gon < 2 ? compl (P->gon) : P->gon);
+ i = strlen(s) + sizeof ("-gonal ");
+ Malloc(P->name, i + strlen (name), char);
+ Malloc(P->dual_name, i + strlen (dual_name), char);
+ sprintf(P->name, "%s-gonal %s", s, name);
+ sprintf(P->dual_name, "%s-gonal %s", s, dual_name);
+ free(s);
+ return 1;
+}
+
+/*
+ * Solve the fundamental right spherical triangles.
+ * If need_approx is set, print iterations on standard error.
+ */
+static int
+newton(Polyhedron *P, int need_approx)
+{
+ /*
+ * First, we find initial approximations.
+ */
+ int j;
+ double cosa;
+ Malloc(P->gamma, P->N, double);
+ if (P->N == 1) {
+ P->gamma[0] = M_PI / P->m[0];
+ return 1;
+ }
+ for (j = 0; j < P->N; j++)
+ P->gamma[j] = M_PI / 2 - M_PI / P->n[j];
+ errno = 0; /* may be non-zero from some reason */
+ /*
+ * Next, iteratively find closer approximations for gamma[0] and compute
+ * other gamma[j]'s from Napier's equations.
+ */
+ if (need_approx)
+ fprintf(stderr, "Solving %s\n", P->polyform);
+ for (;;) {
+ double delta = M_PI, sigma = 0;
+ for (j = 0; j < P->N; j++) {
+ if (need_approx)
+ fprintf(stderr, "%-20.15f", P->gamma[j]);
+ delta -= P->m[j] * P->gamma[j];
+ }
+ if (need_approx)
+ printf("(%g)\n", delta);
+ if (fabs(delta) < 11 * DBL_EPSILON)
+ return 1;
+ /* On a RS/6000, fabs(delta)/DBL_EPSILON may occilate between 8 and
+ * 10. Reported by David W. Sanderson <dws@ssec.wisc.edu> */
+ for (j = 0; j < P->N; j++)
+ sigma += P->m[j] * tan(P->gamma[j]);
+ P->gamma[0] += delta * tan(P->gamma[0]) / sigma;
+ if (P->gamma[0] < 0 || P->gamma[0] > M_PI)
+ Err("gamma out of bounds");
+ cosa = cos(M_PI / P->n[0]) / sin(P->gamma[0]);
+ for (j = 1; j < P->N; j++)
+ P->gamma[j] = asin(cos(M_PI / P->n[j]) / cosa);
+ if (errno)
+ Err(strerror(errno));
+ }
+}
+
+/*
+ * Postprocess pqr| where r has an even denominator (cf. Coxeter &al. Sec.9).
+ * Remove the {2r} and add a retrograde {2p} and retrograde {2q}.
+ */
+static int
+exceptions(Polyhedron *P)
+{
+ int j;
+ if (P->even != -1) {
+ P->M = P->N = 4;
+ Realloc(P->n, P->N, double);
+ Realloc(P->m, P->N, double);
+ Realloc(P->gamma, P->N, double);
+ Realloc(P->rot, P->M, int);
+ for (j = P->even + 1; j < 3; j++) {
+ P->n[j-1] = P->n[j];
+ P->gamma[j-1] = P->gamma[j];
+ }
+ P->n[2] = compl(P->n[1]);
+ P->gamma[2] = - P->gamma[1];
+ P->n[3] = compl(P->n[0]);
+ P->m[3] = 1;
+ P->gamma[3] = - P->gamma[0];
+ P->rot[0] = 0;
+ P->rot[1] = 1;
+ P->rot[2] = 3;
+ P->rot[3] = 2;
+ }
+
+ /*
+ * Postprocess the last polyhedron |3/2 5/3 3 5/2 by taking a |5/3 3 5/2,
+ * replacing the three snub triangles by four equatorial squares and adding
+ * the missing {3/2} (retrograde triangle, cf. Coxeter &al. Sec. 11).
+ */
+ if (P->index == last_uniform - 1) {
+ P->N = 5;
+ P->M = 8;
+ Realloc(P->n, P->N, double);
+ Realloc(P->m, P->N, double);
+ Realloc(P->gamma, P->N, double);
+ Realloc(P->rot, P->M, int);
+ Realloc(P->snub, P->M, int);
+ P->hemi = 1;
+ P->D = 0;
+ for (j = 3; j; j--) {
+ P->m[j] = 1;
+ P->n[j] = P->n[j-1];
+ P->gamma[j] = P->gamma[j-1];
+ }
+ P->m[0] = P->n[0] = 4;
+ P->gamma[0] = M_PI / 2;
+ P->m[4] = 1;
+ P->n[4] = compl(P->n[1]);
+ P->gamma[4] = - P->gamma[1];
+ for (j = 1; j < 6; j += 2) P->rot[j]++;
+ P->rot[6] = 0;
+ P->rot[7] = 4;
+ P->snub[6] = 1;
+ P->snub[7] = 0;
+ }
+ return 1;
+}
+
+/*
+ * Compute edge and face counts, and update D and chi. Update D in the few
+ * cases the density of the polyhedron is meaningful but different than the
+ * density of the corresponding Schwarz triangle (cf. Coxeter &al., p. 418 and
+ * p. 425).
+ * In these cases, spherical faces of one type are concave (bigger than a
+ * hemisphere), and the actual density is the number of these faces less the
+ * computed density. Note that if j != 0, the assignment gamma[j] = asin(...)
+ * implies gamma[j] cannot be obtuse. Also, compute chi for the only
+ * non-Wythoffian polyhedron.
+ */
+static int
+count(Polyhedron *P)
+{
+ int j, temp;
+ Malloc(P->Fi, P->N, int);
+ for (j = 0; j < P->N; j++) {
+ P->E += temp = P->V * numerator(P->m[j]);
+ P->F += P->Fi[j] = temp / numerator(P->n[j]);
+ }
+ P->E /= 2;
+ if (P->D && P->gamma[0] > M_PI / 2)
+ P->D = P->Fi[0] - P->D;
+ if (P->index == last_uniform - 1)
+ P->chi = P->V - P->E + P->F;
+ return 1;
+}
+
+/*
+ * Generate a printable vertex configuration symbol.
+ */
+static int
+configuration(Polyhedron *P)
+{
+ int j, len = 2;
+ for (j = 0; j < P->M; j++) {
+ char *s;
+ Sprintfrac(s, P->n[P->rot[j]]);
+ len += strlen (s) + 2;
+ if (!j) {
+ Malloc(P->config, len, char);
+/* strcpy(P->config, "(");*/
+ strcpy(P->config, "");
+ } else {
+ Realloc(P->config, len, char);
+ strcat(P->config, ", ");
+ }
+ strcat(P->config, s);
+ free(s);
+ }
+/* strcat (P->config, ")");*/
+ if ((j = denominator (P->m[0])) != 1) {
+ char s[MAXDIGITS + 2];
+ sprintf(s, "/%d", j);
+ Realloc(P->config, len + strlen (s), char);
+ strcat(P->config, s);
+ }
+ return 1;
+}
+
+/*
+ * Compute polyhedron vertices and vertex adjecency lists.
+ * The vertices adjacent to v[i] are v[adj[0][i], v[adj[1][i], ...
+ * v[adj[M-1][i], ordered counterclockwise. The algorith is a BFS on the
+ * vertices, in such a way that the vetices adjacent to a givem vertex are
+ * obtained from its BFS parent by a cyclic sequence of rotations. firstrot[i]
+ * points to the first rotaion in the sequence when applied to v[i]. Note that
+ * for non-snub polyhedra, the rotations at a child are opposite in sense when
+ * compared to the rotations at the parent. Thus, we fill adj[*][i] from the
+ * end to signify clockwise rotations. The firstrot[] array is not needed for
+ * display thus it is freed after being used for face computations below.
+ */
+static int
+vertices(Polyhedron *P)
+{
+ int i, newV = 2;
+ double cosa;
+ Malloc(P->v, P->V, Vector);
+ Matalloc(P->adj, P->M, P->V, int);
+ Malloc(P->firstrot, P->V, int); /* temporary , put in Polyhedron
+ structure so that may be freed on
+ error */
+ cosa = cos(M_PI / P->n[0]) / sin(P->gamma[0]);
+ P->v[0].x = 0;
+ P->v[0].y = 0;
+ P->v[0].z = 1;
+ P->firstrot[0] = 0;
+ P->adj[0][0] = 1;
+ P->v[1].x = 2 * cosa * sqrt(1 - cosa * cosa);
+ P->v[1].y = 0;
+ P->v[1].z = 2 * cosa * cosa - 1;
+ if (!P->snub) {
+ P->firstrot[1] = 0;
+ P->adj[0][1] = -1;/* start the other side */
+ P->adj[P->M-1][1] = 0;
+ } else {
+ P->firstrot[1] = P->snub[P->M-1] ? 0 : P->M-1 ;
+ P->adj[0][1] = 0;
+ }
+ for (i = 0; i < newV; i++) {
+ int j, k;
+ int last, one, start, limit;
+ if (P->adj[0][i] == -1) {
+ one = -1; start = P->M-2; limit = -1;
+ } else {
+ one = 1; start = 1; limit = P->M;
+ }
+ k = P->firstrot[i];
+ for (j = start; j != limit; j += one) {
+ Vector temp;
+ int J;
+ temp = rotate (P->v[P->adj[j-one][i]], P->v[i],
+ one * 2 * P->gamma[P->rot[k]]);
+ for (J=0; J<newV && !same(P->v[J],temp,BIG_EPSILON); J++)
+ ;/* noop */
+ P->adj[j][i] = J;
+ last = k;
+ if (++k == P->M)
+ k = 0;
+ if (J == newV) { /* new vertex */
+ if (newV == P->V) Err ("too many vertices");
+ P->v[newV++] = temp;
+ if (!P->snub) {
+ P->firstrot[J] = k;
+ if (one > 0) {
+ P->adj[0][J] = -1;
+ P->adj[P->M-1][J] = i;
+ } else {
+ P->adj[0][J] = i;
+ }
+ } else {
+ P->firstrot[J] = !P->snub[last] ? last :
+ !P->snub[k] ? (k+1)%P->M : k ;
+ P->adj[0][J] = i;
+ }
+ }
+ }
+ }
+ return 1;
+}
+
+/*
+ * Compute polyhedron faces (dual vertices) and incidence matrices.
+ * For orientable polyhedra, we can distinguish between the two faces meeting
+ * at a given directed edge and identify the face on the left and the face on
+ * the right, as seen from the outside. For one-sided polyhedra, the vertex
+ * figure is a papillon (in Coxeter &al. terminology, a crossed parallelogram)
+ * and the two faces meeting at an edge can be identified as the side face
+ * (n[1] or n[2]) and the diagonal face (n[0] or n[3]).
+ */
+static int
+faces(Polyhedron *P)
+{
+ int i, newF = 0;
+ Malloc (P->f, P->F, Vector);
+ Malloc (P->ftype, P->F, int);
+ Matalloc (P->incid, P->M, P->V, int);
+ P->minr = 1 / fabs (tan (M_PI / P->n[P->hemi]) * tan (P->gamma[P->hemi]));
+ for (i = P->M; --i>=0;) {
+ int j;
+ for (j = P->V; --j>=0;)
+ P->incid[i][j] = -1;
+ }
+ for (i = 0; i < P->V; i++) {
+ int j;
+ for (j = 0; j < P->M; j++) {
+ int i0, J;
+ int pap=0;/* papillon edge type */
+ if (P->incid[j][i] != -1)
+ continue;
+ P->incid[j][i] = newF;
+ if (newF == P->F)
+ Err("too many faces");
+ P->f[newF] = pole(P->minr, P->v[i], P->v[P->adj[j][i]],
+ P->v[P->adj[mod(j + 1, P->M)][i]]);
+ P->ftype[newF] = P->rot[mod(P->firstrot[i] + ((P->adj[0][i] <
+ P->adj[P->M - 1][i])
+ ? j
+ : -j - 2),
+ P->M)];
+ if (P->onesided)
+ pap = (P->firstrot[i] + j) % 2;
+ i0 = i;
+ J = j;
+ for (;;) {
+ int k;
+ k = i0;
+ if ((i0 = P->adj[J][k]) == i) break;
+ for (J = 0; J < P->M && P->adj[J][i0] != k; J++)
+ ;/* noop */
+ if (J == P->M)
+ Err("too many faces");
+ if (P->onesided && (J + P->firstrot[i0]) % 2 == pap) {
+ P->incid [J][i0] = newF;
+ if (++J >= P->M)
+ J = 0;
+ } else {
+ if (--J < 0)
+ J = P->M - 1;
+ P->incid [J][i0] = newF;
+ }
+ }
+ newF++;
+ }
+ }
+ Free(P->firstrot);
+ Free(P->rot);
+ Free(P->snub);
+ return 1;
+}
+
+/*
+ * Compute edge list and graph polyhedron and dual.
+ * If the polyhedron is of the "hemi" type, each edge has one finite vertex and
+ * one ideal vertex. We make sure the latter is always the out-vertex, so that
+ * the edge becomes a ray (half-line). Each ideal vertex is represented by a
+ * unit Vector, and the direction of the ray is either parallel or
+ * anti-parallel this Vector. We flag this in the array P->anti[E].
+ */
+static int
+edgelist(Polyhedron *P)
+{
+ int i, j, *s, *t, *u;
+ Matalloc(P->e, 2, P->E, int);
+ Matalloc(P->dual_e, 2, P->E, int);
+ s = P->e[0];
+ t = P->e[1];
+ for (i = 0; i < P->V; i++)
+ for (j = 0; j < P->M; j++)
+ if (i < P->adj[j][i]) {
+ *s++ = i;
+ *t++ = P->adj[j][i];
+ }
+ s = P->dual_e[0];
+ t = P->dual_e[1];
+ if (!P->hemi)
+ P->anti = 0;
+ else
+ Malloc(P->anti, P->E, int);
+ u = P->anti;
+ for (i = 0; i < P->V; i++)
+ for (j = 0; j < P->M; j++)
+ if (i < P->adj[j][i])
+ {
+ if (!u) {
+ *s++ = P->incid[mod(j-1,P->M)][i];
+ *t++ = P->incid[j][i];
+ } else {
+ if (P->ftype[P->incid[j][i]]) {
+ *s = P->incid[j][i];
+ *t = P->incid[mod(j-1,P->M)][i];
+ } else {
+ *s = P->incid[mod(j-1,P->M)][i];
+ *t = P->incid[j][i];
+ }
+ *u++ = dot(P->f[*s++], P->f[*t++]) > 0;
+ }
+ }
+ return 1;
+}
+
+
+static char *
+sprintfrac(double x)
+{
+ char *s;
+ frac (x);
+ if (!frax.d) {
+ Malloc(s, sizeof ("infinity"), char);
+ strcpy(s, "infinity");
+ } else if (frax.d == 1) {
+ char n[MAXDIGITS + 1];
+ sprintf(n, "%ld", frax.n);
+ Malloc(s, strlen (n) + 1, char);
+ strcpy(s, n);
+ } else {
+ char n[MAXDIGITS + 1], d[MAXDIGITS + 1];
+ sprintf(n, "%ld", frax.n);
+ sprintf(d, "%ld", frax.d);
+ Malloc(s, strlen (n) + strlen (d) + 2, char);
+ sprintf(s, "%s/%s", n, d);
+ }
+ return s;
+}
+
+static double
+dot(Vector a, Vector b)
+{
+ return a.x * b.x + a.y * b.y + a.z * b.z;
+}
+
+static Vector
+scale(double k, Vector a)
+{
+ a.x *= k;
+ a.y *= k;
+ a.z *= k;
+ return a;
+}
+
+static Vector
+diff(Vector a, Vector b)
+{
+ a.x -= b.x;
+ a.y -= b.y;
+ a.z -= b.z;
+ return a;
+}
+
+static Vector
+cross(Vector a, Vector b)
+{
+ Vector p;
+ p.x = a.y * b.z - a.z * b.y;
+ p.y = a.z * b.x - a.x * b.z;
+ p.z = a.x * b.y - a.y * b.x;
+ return p;
+}
+
+static Vector
+sum(Vector a, Vector b)
+{
+ a.x += b.x;
+ a.y += b.y;
+ a.z += b.z;
+ return a;
+}
+
+static Vector
+sum3(Vector a, Vector b, Vector c)
+{
+ a.x += b.x + c.x;
+ a.y += b.y + c.y;
+ a.z += b.z + c.z;
+ return a;
+}
+
+static Vector
+rotate(Vector vertex, Vector axis, double angle)
+{
+ Vector p;
+ p = scale(dot (axis, vertex), axis);
+ return sum3(p, scale(cos(angle), diff(vertex, p)),
+ scale(sin(angle), cross(axis, vertex)));
+}
+
+static Vector x, y, z;
+
+/*
+ * rotate the standard frame
+ */
+static void
+rotframe(double azimuth, double elevation, double angle)
+{
+ static const Vector X = {1,0,0}, Y = {0,1,0}, Z = {0,0,1};
+ Vector axis;
+
+ axis = rotate(rotate (X, Y, elevation), Z, azimuth);
+ x = rotate(X, axis, angle);
+ y = rotate(Y, axis, angle);
+ z = rotate(Z, axis, angle);
+}
+
+/*
+ * rotate an array of n Vectors
+ */
+static void
+rotarray(Vector *new, Vector *old, int n)
+{
+ while (n--) {
+ *new++ = sum3(scale(old->x, x), scale(old->y, y), scale(old->z, z));
+ old++;
+ }
+}
+
+static int
+same(Vector a, Vector b, double epsilon)
+{
+ return fabs(a.x - b.x) < epsilon && fabs(a.y - b.y) < epsilon
+ && fabs(a.z - b.z) < epsilon;
+}
+
+/*
+ * Compute the polar reciprocal of the plane containing a, b and c:
+ *
+ * If this plane does not contain the origin, return p such that
+ * dot(p,a) = dot(p,b) = dot(p,b) = r.
+ *
+ * Otherwise, return p such that
+ * dot(p,a) = dot(p,b) = dot(p,c) = 0
+ * and
+ * dot(p,p) = 1.
+ */
+static Vector
+pole(double r, Vector a, Vector b, Vector c)
+{
+ Vector p;
+ double k;
+ p = cross(diff(b, a), diff(c, a));
+ k = dot(p, a);
+ if (fabs(k) < 1e-6)
+ return scale(1 / sqrt(dot(p, p)), p);
+ else
+ return scale(r/ k , p);
+}
+
+
+/* output */
+
+
+
+
+static void rotframe(double azimuth, double elevation, double angle);
+static void rotarray(Vector *new, Vector *old, int n);
+static int mod (int i, int j);
+
+
+static void
+push_point (polyhedron *p, Vector v)
+{
+ p->points[p->npoints].x = v.x;
+ p->points[p->npoints].y = v.y;
+ p->points[p->npoints].z = v.z;
+ p->npoints++;
+}
+
+static void
+push_face3 (polyhedron *p, int x, int y, int z)
+{
+ p->faces[p->nfaces].npoints = 3;
+ Malloc (p->faces[p->nfaces].points, 3, int);
+ p->faces[p->nfaces].points[0] = x;
+ p->faces[p->nfaces].points[1] = y;
+ p->faces[p->nfaces].points[2] = z;
+ p->nfaces++;
+}
+
+static void
+push_face4 (polyhedron *p, int x, int y, int z, int w)
+{
+ p->faces[p->nfaces].npoints = 4;
+ Malloc (p->faces[p->nfaces].points, 4, int);
+ p->faces[p->nfaces].points[0] = x;
+ p->faces[p->nfaces].points[1] = y;
+ p->faces[p->nfaces].points[2] = z;
+ p->faces[p->nfaces].points[3] = w;
+ p->nfaces++;
+}
+
+
+
+
+static polyhedron *
+construct_polyhedron (Polyhedron *P, Vector *v, int V, Vector *f, int F,
+ const char *name, const char *dual,
+ const char *class, const char *star,
+ double azimuth, double elevation, double freeze)
+{
+ int i, j, k=0, l, ll, ii, *hit=0, facelets;
+
+ polyhedron *result;
+ Vector *temp;
+
+ Malloc (result, 1, polyhedron);
+ memset (result, 0, sizeof(*result));
+
+ /*
+ * Rotate polyhedron
+ */
+ rotframe(azimuth, elevation, freeze);
+ Malloc(temp, V, Vector);
+ rotarray(temp, v, V);
+ v = temp;
+ Malloc(temp, F, Vector);
+ rotarray(temp, f, F);
+ f = temp;
+
+ result->number = P->index + 1;
+ result->name = strdup (name);
+ result->dual = strdup (dual);
+ result->wythoff = strdup (P->polyform);
+ result->config = strdup (P->config);
+ result->group = strdup (P->group);
+ result->class = strdup (class);
+
+ /*
+ * Vertex list
+ */
+ Malloc (result->points, V + F * 13, point);
+ result->npoints = 0;
+
+ result->nedges = P->E;
+ result->logical_faces = F;
+ result->logical_vertices = V;
+ result->density = P->D;
+ result->chi = P->chi;
+
+ for (i = 0; i < V; i++)
+ push_point (result, v[i]);
+
+ /*
+ * Auxiliary vertices (needed because current VRML browsers cannot handle
+ * non-simple polygons, i.e., ploygons with self intersections): Each
+ * non-simple face is assigned an auxiliary vertex. By connecting it to the
+ * rest of the vertices the face is triangulated. The circum-center is used
+ * for the regular star faces of uniform polyhedra. The in-center is used for
+ * the pentagram (#79) and hexagram (#77) of the high-density snub duals, and
+ * for the pentagrams (#40, #58) and hexagram (#52) of the stellated duals
+ * with configuration (....)/2. Finally, the self-intersection of the crossed
+ * parallelogram is used for duals with form p q r| with an even denominator.
+ *
+ * This method do not work for the hemi-duals, whose faces are not
+ * star-shaped and have two self-intersections each.
+ *
+ * Thus, for each face we need six auxiliary vertices: The self intersections
+ * and the terminal points of the truncations of the infinite edges. The
+ * ideal vertices are listed, but are not used by the face-list.
+ *
+ * Note that the face of the last dual (#80) is octagonal, and constists of
+ * two quadrilaterals of the infinite type.
+ */
+
+ if (*star && P->even != -1)
+ Malloc(hit, F, int);
+ for (i = 0; i < F; i++)
+ if ((!*star &&
+ (frac(P->n[P->ftype[i]]), frax.d != 1 && frax.d != frax.n - 1)) ||
+ (*star &&
+ P->K == 5 &&
+ (P->D > 30 ||
+ denominator (P->m[0]) != 1))) {
+ /* find the center of the face */
+ double h;
+ if (!*star && P->hemi && !P->ftype[i])
+ h = 0;
+ else
+ h = P->minr / dot(f[i],f[i]);
+ push_point(result, scale (h, f[i]));
+
+ } else if (*star && P->even != -1) {
+ /* find the self-intersection of a crossed parallelogram.
+ * hit is set if v0v1 intersects v2v3*/
+ Vector v0, v1, v2, v3, c0, c1, p;
+ double d0, d1;
+ v0 = v[P->incid[0][i]];
+ v1 = v[P->incid[1][i]];
+ v2 = v[P->incid[2][i]];
+ v3 = v[P->incid[3][i]];
+ d0 = sqrt(dot(diff(v0, v2), diff(v0, v2)));
+ d1 = sqrt(dot (diff(v1, v3), diff(v1, v3)));
+ c0 = scale(d1, sum(v0, v2));
+ c1 = scale(d0, sum(v1, v3));
+ p = scale(0.5 / (d0 + d1), sum(c0, c1));
+ push_point (result, p);
+ p = cross(diff(p, v2), diff(p, v3));
+ hit[i] = (dot(p, p) < 1e-6);
+ } else if (*star && P->hemi && P->index != last_uniform - 1) {
+ /* find the terminal points of the truncation and the
+ * self-intersections.
+ * v23 v0 v21
+ * | \ / \ / |
+ * | v0123 v0321 |
+ * | / \ / \ |
+ * v01 v2 v03
+ */
+ Vector v0, v1, v2, v3, v01, v03, v21, v23, v0123, v0321 ;
+ Vector u;
+ double t = 1.5;/* truncation adjustment factor */
+ j = !P->ftype[P->incid[0][i]];
+ v0 = v[P->incid[j][i]];/* real vertex */
+ v1 = v[P->incid[j+1][i]];/* ideal vertex (unit vector) */
+ v2 = v[P->incid[j+2][i]];/* real */
+ v3 = v[P->incid[(j+3)%4][i]];/* ideal */
+ /* compute intersections
+ * this uses the following linear algebra:
+ * v0123 = v0 + a v1 = v2 + b v3
+ * v0 x v3 + a (v1 x v3) = v2 x v3
+ * a (v1 x v3) = (v2 - v0) x v3
+ * a (v1 x v3) . (v1 x v3) = (v2 - v0) x v3 . (v1 x v3)
+ */
+ u = cross(v1, v3);
+ v0123 = sum(v0, scale(dot(cross(diff(v2, v0), v3), u) / dot(u,u),
+ v1));
+ v0321 = sum(v0, scale(dot(cross(diff(v0, v2), v1), u) / dot(u,u),
+ v3));
+ /* compute truncations */
+ v01 = sum(v0 , scale(t, diff(v0123, v0)));
+ v23 = sum(v2 , scale(t, diff(v0123, v2)));
+ v03 = sum(v0 , scale(t, diff(v0321, v0)));
+ v21 = sum(v2 , scale(t, diff(v0321, v2)));
+
+ push_point(result, v01);
+ push_point(result, v23);
+ push_point(result, v0123);
+ push_point(result, v03);
+ push_point(result, v21);
+ push_point(result, v0321);
+
+ } else if (*star && P->index == last_uniform - 1) {
+ /* find the terminal points of the truncation and the
+ * self-intersections.
+ * v23 v0 v21
+ * | \ / \ / |
+ * | v0123 v0721 |
+ * | / \ / \ |
+ * v01 v2 v07
+ *
+ * v65 v4 v67
+ * | \ / \ / |
+ * | v4365 v4567 |
+ * | / \ / \ |
+ * v43 v6 v45
+ */
+ Vector v0, v1, v2, v3, v4, v5, v6, v7, v01, v07, v21, v23;
+ Vector v43, v45, v65, v67, v0123, v0721, v4365, v4567;
+ double t = 1.5;/* truncation adjustment factor */
+ Vector u;
+ for (j = 0; j < 8; j++)
+ if (P->ftype[P->incid[j][i]] == 3)
+ break;
+ v0 = v[P->incid[j][i]];/* real {5/3} */
+ v1 = v[P->incid[(j+1)%8][i]];/* ideal */
+ v2 = v[P->incid[(j+2)%8][i]];/* real {3} */
+ v3 = v[P->incid[(j+3)%8][i]];/* ideal */
+ v4 = v[P->incid[(j+4)%8][i]];/* real {5/2} */
+ v5 = v[P->incid[(j+5)%8][i]];/* ideal */
+ v6 = v[P->incid[(j+6)%8][i]];/* real {3/2} */
+ v7 = v[P->incid[(j+7)%8][i]];/* ideal */
+ /* compute intersections */
+ u = cross(v1, v3);
+ v0123 = sum(v0, scale(dot(cross(diff(v2, v0), v3), u) / dot(u,u),
+ v1));
+ u = cross(v7, v1);
+ v0721 = sum(v0, scale(dot(cross(diff(v2, v0), v1), u) / dot(u,u),
+ v7));
+ u = cross(v5, v7);
+ v4567 = sum(v4, scale(dot(cross(diff(v6, v4), v7), u) / dot(u,u),
+ v5));
+ u = cross(v3, v5);
+ v4365 = sum(v4, scale(dot(cross(diff(v6, v4), v5), u) / dot(u,u),
+ v3));
+ /* compute truncations */
+ v01 = sum(v0 , scale(t, diff(v0123, v0)));
+ v23 = sum(v2 , scale(t, diff(v0123, v2)));
+ v07 = sum(v0 , scale(t, diff(v0721, v0)));
+ v21 = sum(v2 , scale(t, diff(v0721, v2)));
+ v45 = sum(v4 , scale(t, diff(v4567, v4)));
+ v67 = sum(v6 , scale(t, diff(v4567, v6)));
+ v43 = sum(v4 , scale(t, diff(v4365, v4)));
+ v65 = sum(v6 , scale(t, diff(v4365, v6)));
+
+ push_point(result, v01);
+ push_point(result, v23);
+ push_point(result, v0123);
+ push_point(result, v07);
+ push_point(result, v21);
+ push_point(result, v0721);
+ push_point(result, v45);
+ push_point(result, v67);
+ push_point(result, v4567);
+ push_point(result, v43);
+ push_point(result, v65);
+ push_point(result, v4365);
+ }
+
+ /*
+ * Face list:
+ * Each face is printed in a separate line, by listing the indices of its
+ * vertices. In the non-simple case, the polygon is represented by the
+ * triangulation, each triangle consists of two polyhedron vertices and one
+ * auxiliary vertex.
+ */
+ Malloc (result->faces, F * 10, face);
+ result->nfaces = 0;
+
+ ii = V;
+ facelets = 0;
+ for (i = 0; i < F; i++) {
+ if (*star) {
+ if (P->K == 5 &&
+ (P->D > 30 ||
+ denominator (P->m[0]) != 1)) {
+ for (j = 0; j < P->M - 1; j++) {
+ push_face3 (result, P->incid[j][i], P->incid[j+1][i], ii);
+ facelets++;
+ }
+
+ push_face3 (result, P->incid[j][i], P->incid[0][i], ii++);
+ facelets++;
+
+ } else if (P->even != -1) {
+ if (hit && hit[i]) {
+ push_face3 (result, P->incid[3][i], P->incid[0][i], ii);
+ push_face3 (result, P->incid[1][i], P->incid[2][i], ii);
+ } else {
+ push_face3 (result, P->incid[0][i], P->incid[1][i], ii);
+ push_face3 (result, P->incid[2][i], P->incid[3][i], ii);
+ }
+ ii++;
+ facelets += 2;
+
+ } else if (P->hemi && P->index != last_uniform - 1) {
+ j = !P->ftype[P->incid[0][i]];
+
+ push_face3 (result, ii, ii + 1, ii + 2);
+ push_face4 (result, P->incid[j][i], ii + 2, P->incid[j+2][i], ii + 5);
+ push_face3 (result, ii + 3, ii + 4, ii + 5);
+ ii += 6;
+ facelets += 3;
+ } else if (P->index == last_uniform - 1) {
+ for (j = 0; j < 8; j++)
+ if (P->ftype[P->incid[j][i]] == 3)
+ break;
+ push_face3 (result, ii, ii + 1, ii + 2);
+ push_face4 (result,
+ P->incid[j][i], ii + 2, P->incid[(j+2)%8][i], ii + 5);
+ push_face3 (result, ii + 3, ii + 4, ii + 5);
+
+ push_face3 (result, ii + 6, ii + 7, ii + 8);
+ push_face4 (result,
+ P->incid[(j+4)%8][i], ii + 8, P->incid[(j+6)%8][i],
+ ii + 11);
+ push_face3 (result, ii + 9, ii + 10, ii + 11);
+ ii += 12;
+ facelets += 6;
+ } else {
+
+ result->faces[result->nfaces].npoints = P->M;
+ Malloc (result->faces[result->nfaces].points, P->M, int);
+ for (j = 0; j < P->M; j++)
+ result->faces[result->nfaces].points[j] = P->incid[j][i];
+ result->nfaces++;
+ facelets++;
+ }
+ } else {
+ int split = (frac(P->n[P->ftype[i]]),
+ frax.d != 1 && frax.d != frax.n - 1);
+ for (j = 0; j < V; j++) {
+ for (k = 0; k < P->M; k++)
+ if (P->incid[k][j] == i)
+ break;
+ if (k != P->M)
+ break;
+ }
+ if (split) {
+ ll = j;
+ for (l = P->adj[k][j]; l != j; l = P->adj[k][l]) {
+ for (k = 0; k < P->M; k++)
+ if (P->incid[k][l] == i)
+ break;
+ if (P->adj[k][l] == ll)
+ k = mod(k + 1 , P->M);
+ push_face3 (result, ll, l, ii);
+ facelets++;
+ ll = l;
+ }
+ push_face3 (result, ll, j, ii++);
+ facelets++;
+
+ } else {
+
+ int *pp;
+ int pi = 0;
+ Malloc (pp, 100, int);
+
+ pp[pi++] = j;
+ ll = j;
+ for (l = P->adj[k][j]; l != j; l = P->adj[k][l]) {
+ for (k = 0; k < P->M; k++)
+ if (P->incid[k][l] == i)
+ break;
+ if (P->adj[k][l] == ll)
+ k = mod(k + 1 , P->M);
+ pp[pi++] = l;
+ ll = l;
+ }
+ result->faces[result->nfaces].npoints = pi;
+ result->faces[result->nfaces].points = pp;
+ result->nfaces++;
+ facelets++;
+ }
+ }
+ }
+
+ /*
+ * Face color indices - for polyhedra with multiple face types
+ * For non-simple faces, the index is repeated as many times as needed by the
+ * triangulation.
+ */
+ {
+ int ff = 0;
+ if (!*star && P->N != 1) {
+ for (i = 0; i < F; i++)
+ if (frac(P->n[P->ftype[i]]), frax.d == 1 || frax.d == frax.n - 1)
+ result->faces[ff++].color = P->ftype[i];
+ else
+ for (j = 0; j < frax.n; j++)
+ result->faces[ff++].color = P->ftype[i];
+ } else {
+ for (i = 0; i < facelets; i++)
+ result->faces[ff++].color = 0;
+ }
+ }
+
+ if (*star && P->even != -1)
+ free(hit);
+ free(v);
+ free(f);
+
+ return result;
+}
+
+
+
+/* External interface (jwz)
+ */
+
+void
+free_polyhedron (polyhedron *p)
+{
+ if (!p) return;
+ Free (p->wythoff);
+ Free (p->name);
+ Free (p->group);
+ Free (p->class);
+ if (p->faces)
+ {
+ int i;
+ for (i = 0; i < p->nfaces; i++)
+ Free (p->faces[i].points);
+ Free (p->faces);
+ }
+ Free (p);
+}
+
+
+int
+construct_polyhedra (polyhedron ***polyhedra_ret)
+{
+ double freeze = 0;
+ double azimuth = AZ;
+ double elevation = EL;
+ int index = 0;
+
+ int count = 0;
+ polyhedron **result;
+ Malloc (result, last_uniform * 2 + 3, polyhedron*);
+
+ while (index < last_uniform) {
+ char sym[4];
+ Polyhedron *P;
+
+ sprintf(sym, "#%d", index + 1);
+ if (!(P = kaleido(sym, 1, 0, 0, 0))) {
+ Err (strerror(errno));
+ }
+
+ result[count++] = construct_polyhedron (P, P->v, P->V, P->f, P->F,
+ P->name, P->dual_name,
+ P->class, "",
+ azimuth, elevation, freeze);
+
+ result[count++] = construct_polyhedron (P, P->f, P->F, P->v, P->V,
+ P->dual_name, P->name,
+ P->dual_class, "*",
+ azimuth, elevation, freeze);
+ polyfree(P);
+ index++;
+ }
+
+ *polyhedra_ret = result;
+ count++; /* leave room for teapot */
+ return count;
+}
diff --git a/hacks/glx/polyhedra.h b/hacks/glx/polyhedra.h
new file mode 100644
index 0000000..ace4ac7
--- /dev/null
+++ b/hacks/glx/polyhedra.h
@@ -0,0 +1,52 @@
+/* xscreensaver, Copyright (c) 2004 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __POLYHEDRA_H__
+#define __POLYHEDRA_H__
+
+typedef struct {
+ double x, y, z;
+} point;
+
+typedef struct {
+ int color;
+ int npoints;
+ int *points; /* indexes into point list */
+} face;
+
+typedef struct {
+
+ int number;
+ char *wythoff;
+ char *name;
+ char *dual;
+ char *config;
+ char *group;
+ char *class;
+
+ int nfaces;
+ int logical_faces;
+ int logical_vertices;
+ int nedges;
+ int npoints;
+ int density;
+ int chi;
+
+ point *points;
+ face *faces;
+
+} polyhedron;
+
+
+extern int construct_polyhedra (polyhedron ***polyhedra_ret);
+extern void free_polyhedron (polyhedron *p);
+
+#endif /* __POLYHEDRA_H__ */
diff --git a/hacks/glx/polyhedra.man b/hacks/glx/polyhedra.man
new file mode 100644
index 0000000..b4e1cca
--- /dev/null
+++ b/hacks/glx/polyhedra.man
@@ -0,0 +1,124 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+polyhedra - draws the 80 uniform polyhedra and their duals
+.SH SYNOPSIS
+.SH SYNOPSIS
+.B polyhedra
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIfloat\fP]
+[\-duration \fIseconds\fP]
+[\-no-wander]
+[\-spin \fIXYZ\fP]
+[\-wireframe]
+[\-no-titles]
+[\-which \fIname\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+This program renders 160 different 3D solids, and displays some
+information about each. A new solid is chosen every few seconds.
+
+There are 75 uniform polyhedra, plus an inifinite number of
+prisms and antiprisms:
+
+ * Convex Uniform Polyhedra:
+ * Platonic solids (5)
+ * Archimedean solids (13)
+ * Convex prisms and antiprisms (2 infinite families)
+ * Nonconvex Uniform Polyhedra:
+ * Kepler-Poinsot polyhedra (4)
+ * Nonconvex uniform polyhedra (53)
+ * Nonconvex prisms, antiprisms, and crossed antiprisms
+ (3 infinite families)
+
+Representative samples of the prism sets brings the total to 80 solids.
+Including the \fIdual\fP of each brings the total up to 160. (To
+create the "dual" of a polyhedron, faces are replaced with vertices,
+and vertices with faces.)
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Larger numbers mean run faster. Default: 1.0.
+.TP 8
+.B \-duration \fIseconds\fP
+How long before switching to a new polyhedron. Default 12 seconds.
+.TP 8
+.B \-wander | \-no-wander
+Whether the objects should wander around the screen.
+.TP 8
+.B \-spin [XYZ] | \-no-spin
+Which axes, if any, to spin around on.
+.TP 8
+.B \-titles | \-no-titles
+Whether to display text describing each object.
+.TP 8
+.B \-which \fIobject-name\fP
+Display only one particular object, identified by number, name, or
+Whthoff symbol.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH KEY BINDINGS
+When running in a window, you can rotate the object with the mouse.
+Also, the following keystrokes are defined:
+.TP 12
+.B SPC \fIor\fP TAB
+Select a new polyhedron at random.
+.TP 12
+.B + \fIor\fP >
+Select the next-higher-numbered polyhedron.
+.TP 12
+.B - \fIor\fP <
+Select the next-lower-numbered polyhedron.
+.TP 12
+.B ESC \fIor\fP ^C
+Quit.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1991-2002 Dr. Zvi Har'El.
+
+Copyright \(co 2004 Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Based on the program \fIkaleido\fP ("Kaleidoscopic construction of
+uniform polyhedra"), by Dr. Zvi Har'El <rl@math.technion.ac.il>
+ http://www.math.technion.ac.il/~rl/
+ ftp://ftp.math.technion.ac.il/kaleido/
+
+Adapted for OpenGL and XScreenSaver by Jamie Zawinski, 2004.
diff --git a/hacks/glx/polytopes.c b/hacks/glx/polytopes.c
new file mode 100644
index 0000000..76c1287
--- /dev/null
+++ b/hacks/glx/polytopes.c
@@ -0,0 +1,3189 @@
+/* polytopes --- Shows one of the six regular polytopes rotating in 4d */
+
+#if 0
+static const char sccsid[] = "@(#)polytopes.c 1.2 05/09/28 xlockmore";
+#endif
+
+/* Copyright (c) 2003-2009 Carsten Steger <carsten@mirsanmir.org>. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * REVISION HISTORY:
+ * C. Steger - 03/08/10: Initial version
+ * C. Steger - 05/09/28: Added trackball support
+ * C. Steger - 07/01/23: Improved 4d trackball support
+ * C. Steger - 09/08/23: Removed check-config.pl warnings
+ */
+
+/*
+ * This program shows one of the six regular 4D polytopes rotating in 4D.
+ * Written by Carsten Steger, inspired by H.S.M Coxeter's book "Regular
+ * Polytopes", 3rd Edition, Dover Publications, Inc., 1973, and Thomas
+ * Banchoff's book "Beyond the Third Dimension: Geometry, Computer
+ * Graphics, and Higher Dimensions", Scientific American Library, 1990.
+ */
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define SQRT15OVER4 1.93649167310370844259 /* sqrt(15/4) */
+#define SQRT10OVER3 1.82574185835055371152 /* sqrt(10/3) */
+#define SQRT5OVER2 1.58113883008418966600 /* sqrt(5/2) */
+#define SQRT5OVER6 0.91287092917527685576 /* sqrt(5/6) */
+#define SQRT5OVER12 0.64549722436790281420 /* sqrt(5/12) */
+#define SQRT2 1.41421356237309504880 /* sqrt(2) */
+#define GOLDEN 1.61803398874989484820 /* (sqrt(5)+1)/2 */
+#define GOLDENINV 0.61803398874989484820 /* (sqrt(5)-1)/2 */
+#define SQRT2INV 0.70710678118654752440 /* sqrt(1/2) */
+#define GOLDEN2 1.14412280563536859520 /* ((sqrt(5)+1)/2)/sqrt(2) */
+#define GOLDENINV2 0.43701602444882107080 /* ((sqrt(5)-1)/2)/sqrt(2) */
+#define GOLDEN22 1.85122958682191611960 /* (((sqrt(5)+1)/2)^2)/sqrt(2) */
+#define GOLDENINV22 0.27009075673772645360 /* (((sqrt(5)-1)/2)^2)/sqrt(2) */
+
+#define DISP_WIREFRAME 0
+#define DISP_SURFACE 1
+#define DISP_TRANSPARENT 2
+
+#define POLYTOPE_RANDOM -1
+#define POLYTOPE_5_CELL 0
+#define POLYTOPE_8_CELL 1
+#define POLYTOPE_16_CELL 2
+#define POLYTOPE_24_CELL 3
+#define POLYTOPE_120_CELL 4
+#define POLYTOPE_600_CELL 5
+#define POLYTOPE_LAST_CELL POLYTOPE_600_CELL
+
+#define COLORS_SINGLE 0
+#define COLORS_DEPTH 1
+
+#define DISP_3D_PERSPECTIVE 0
+#define DISP_3D_ORTHOGRAPHIC 1
+
+#define DISP_4D_PERSPECTIVE 0
+#define DISP_4D_PERSPECTIVE_STR "0"
+#define DISP_4D_ORTHOGRAPHIC 1
+#define DISP_4D_ORTHOGRAPHIC_STR "1"
+
+#define DEF_DISPLAY_MODE "transparent"
+#define DEF_POLYTOPE "random"
+#define DEF_COLORS "depth"
+#define DEF_PROJECTION_3D "perspective"
+#define DEF_PROJECTION_4D "perspective"
+#define DEF_SPEEDWX "1.1"
+#define DEF_SPEEDWY "1.3"
+#define DEF_SPEEDWZ "1.5"
+#define DEF_SPEEDXY "1.7"
+#define DEF_SPEEDXZ "1.9"
+#define DEF_SPEEDYZ "2.1"
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 25000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_polytopes 0
+# define release_polytopes 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#ifndef HAVE_JWXYZ
+# include <X11/keysym.h>
+#endif
+#include "gltrackball.h"
+
+
+#ifdef USE_MODULES
+ModStruct polytopes_description =
+{"polytopes", "init_polytopes", "draw_polytopes", NULL,
+ "draw_polytopes", "change_polytopes", NULL, &polytopes_opts,
+ 25000, 1, 1, 1, 1.0, 4, "",
+ "Shows one of the six regular 4d polytopes rotating in 4d", 0, NULL};
+
+#endif
+
+
+static char *mode;
+static int display_mode;
+static char *poly_str;
+static int polytope;
+static char *color_str;
+static int color_mode;
+static char *proj_3d;
+static int projection_3d;
+static char *proj_4d;
+static int projection_4d;
+static float speed_wx;
+static float speed_wy;
+static float speed_wz;
+static float speed_xy;
+static float speed_xz;
+static float speed_yz;
+
+static const float offset4d[4] = { 0.0, 0.0, 0.0, 3.0 };
+static const float offset3d[4] = { 0.0, 0.0, -2.0, 0.0 };
+
+
+static XrmOptionDescRec opts[] =
+{
+ {"-mode", ".displayMode", XrmoptionSepArg, 0 },
+ {"-wireframe", ".displayMode", XrmoptionNoArg, "wireframe" },
+ {"-surface", ".displayMode", XrmoptionNoArg, "surface" },
+ {"-transparent", ".displayMode", XrmoptionNoArg, "transparent" },
+ {"-polytope", ".polytope", XrmoptionSepArg, 0 },
+ {"-random", ".polytope", XrmoptionNoArg, "random" },
+ {"-5-cell", ".polytope", XrmoptionNoArg, "5-cell" },
+ {"-8-cell", ".polytope", XrmoptionNoArg, "8-cell" },
+ {"-16-cell", ".polytope", XrmoptionNoArg, "16-cell" },
+ {"-24-cell", ".polytope", XrmoptionNoArg, "24-cell" },
+ {"-120-cell", ".polytope", XrmoptionNoArg, "120-cell" },
+ {"-600-cell", ".polytope", XrmoptionNoArg, "600-cell" },
+ {"-single-color", ".colors", XrmoptionNoArg, "single" },
+ {"-depth-colors", ".colors", XrmoptionNoArg, "depth" },
+ {"-perspective-3d", ".projection3d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-3d", ".projection3d", XrmoptionNoArg, "orthographic" },
+ {"-perspective-4d", ".projection4d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-4d", ".projection4d", XrmoptionNoArg, "orthographic" },
+ {"-speed-wx", ".speedwx", XrmoptionSepArg, 0 },
+ {"-speed-wy", ".speedwy", XrmoptionSepArg, 0 },
+ {"-speed-wz", ".speedwz", XrmoptionSepArg, 0 },
+ {"-speed-xy", ".speedxy", XrmoptionSepArg, 0 },
+ {"-speed-xz", ".speedxz", XrmoptionSepArg, 0 },
+ {"-speed-yz", ".speedyz", XrmoptionSepArg, 0 }
+};
+
+static argtype vars[] =
+{
+ { &mode, "displayMode", "DisplayMode", DEF_DISPLAY_MODE, t_String },
+ { &poly_str, "polytope", "Polytope", DEF_POLYTOPE, t_String },
+ { &color_str, "colors", "Colors", DEF_COLORS, t_String },
+ { &proj_3d, "projection3d", "Projection3d",DEF_PROJECTION_3D, t_String },
+ { &proj_4d, "projection4d", "Projection4d",DEF_PROJECTION_4D, t_String },
+ { &speed_wx, "speedwx", "Speedwx", DEF_SPEEDWX, t_Float},
+ { &speed_wy, "speedwy", "Speedwy", DEF_SPEEDWY, t_Float},
+ { &speed_wz, "speedwz", "Speedwz", DEF_SPEEDWZ, t_Float},
+ { &speed_xy, "speedxy", "Speedxy", DEF_SPEEDXY, t_Float},
+ { &speed_xz, "speedxz", "Speedxz", DEF_SPEEDXZ, t_Float},
+ { &speed_yz, "speedyz", "Speedyz", DEF_SPEEDYZ, t_Float}
+};
+
+static OptionStruct desc[] =
+{
+ { "-wireframe", "display the polytope as a wireframe mesh" },
+ { "-surface", "display the polytope as a solid surface" },
+ { "-transparent", "display the polytope as a transparent surface" },
+ { "-solid", "display the polytope as a solid object" },
+ { "-bands", "display the polytope as see-through bands" },
+ { "-twosided", "display the polytope with two colors" },
+ { "-colorwheel", "display the polytope with a smooth color wheel" },
+ { "-perspective-3d", "project the polytope perspectively from 3d to 2d" },
+ { "-orthographic-3d", "project the polytope orthographically from 3d to 2d"},
+ { "-perspective-4d", "project the polytope perspectively from 4d to 3d" },
+ { "-orthographic-4d", "project the polytope orthographically from 4d to 3d"},
+ { "-speed-wx <arg>", "rotation speed around the wx plane" },
+ { "-speed-wy <arg>", "rotation speed around the wy plane" },
+ { "-speed-wz <arg>", "rotation speed around the wz plane" },
+ { "-speed-xy <arg>", "rotation speed around the xy plane" },
+ { "-speed-xz <arg>", "rotation speed around the xz plane" },
+ { "-speed-yz <arg>", "rotation speed around the yz plane" }
+};
+
+ENTRYPOINT ModeSpecOpt polytopes_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+
+/* 5-cell {3,3,3} */
+#define NUM_VERT_5 5
+#define NUM_EDGE_5 10
+#define NUM_FACE_5 10
+#define VERT_PER_FACE_5 3
+
+#define MIN_EDGE_DEPTH_5 (-0.5)
+#define MAX_EDGE_DEPTH_5 0.75
+#define MIN_FACE_DEPTH_5 (-0.5)
+#define MAX_FACE_DEPTH_5 (1.0/3.0)
+
+
+/* 8-cell {4,3,3} */
+#define NUM_VERT_8 16
+#define NUM_EDGE_8 32
+#define NUM_FACE_8 24
+#define VERT_PER_FACE_8 4
+
+#define MIN_EDGE_DEPTH_8 (-1.0)
+#define MAX_EDGE_DEPTH_8 1.0
+#define MIN_FACE_DEPTH_8 (-1.0)
+#define MAX_FACE_DEPTH_8 1.0
+
+/* 16-cell {3,3,4} */
+#define NUM_VERT_16 8
+#define NUM_EDGE_16 24
+#define NUM_FACE_16 32
+#define VERT_PER_FACE_16 3
+
+#define MIN_EDGE_DEPTH_16 (-1.0)
+#define MAX_EDGE_DEPTH_16 1.0
+#define MIN_FACE_DEPTH_16 (-2.0/3.0)
+#define MAX_FACE_DEPTH_16 (2.0/3.0)
+
+
+/* 24-cell {3,4,3} */
+#define NUM_VERT_24 24
+#define NUM_EDGE_24 96
+#define NUM_FACE_24 96
+#define VERT_PER_FACE_24 3
+
+#define MIN_EDGE_DEPTH_24 (-SQRT2)
+#define MAX_EDGE_DEPTH_24 SQRT2
+#define MIN_FACE_DEPTH_24 (-SQRT2)
+#define MAX_FACE_DEPTH_24 SQRT2
+
+
+/* 120-cell {5,3,3} */
+#define NUM_VERT_120 600
+#define NUM_EDGE_120 1200
+#define NUM_FACE_120 720
+#define VERT_PER_FACE_120 5
+
+#define MIN_EDGE_DEPTH_120 (-GOLDEN22)
+#define MAX_EDGE_DEPTH_120 GOLDEN22
+#define MIN_FACE_DEPTH_120 (-GOLDEN22)
+#define MAX_FACE_DEPTH_120 GOLDEN22
+
+
+/* 600-cell {3,3,5} */
+#define NUM_VERT_600 120
+#define NUM_EDGE_600 720
+#define NUM_FACE_600 1200
+#define VERT_PER_FACE_600 3
+
+#define MIN_EDGE_DEPTH_600 (-GOLDEN/2.0-1)
+#define MAX_EDGE_DEPTH_600 (GOLDEN/2.0+1)
+#define MIN_FACE_DEPTH_600 ((-2*GOLDEN-2)/3.0)
+#define MAX_FACE_DEPTH_600 ((2*GOLDEN+2)/3.0)
+
+
+typedef struct {
+ GLint WindH, WindW;
+ GLXContext *glx_context;
+ /* 4D rotation angles */
+ float alpha, beta, delta, zeta, eta, theta;
+ /* Aspect ratio of the current window */
+ float aspect;
+ /* Counter */
+ int tick, poly;
+ /* Trackball states */
+ trackball_state *trackballs[2];
+ int current_trackball;
+ Bool button_pressed;
+
+ float edge_color_5[NUM_EDGE_5][4];
+ float face_color_5[NUM_FACE_5][4];
+ float face_color_trans_5[NUM_FACE_5][4];
+
+ float edge_color_8[NUM_EDGE_8][4];
+ float face_color_8[NUM_FACE_8][4];
+ float face_color_trans_8[NUM_FACE_8][4];
+
+ float edge_color_16[NUM_EDGE_16][4];
+ float face_color_16[NUM_FACE_16][4];
+ float face_color_trans_16[NUM_FACE_16][4];
+
+ float edge_color_24[NUM_EDGE_24][4];
+ float face_color_24[NUM_FACE_24][4];
+ float face_color_trans_24[NUM_FACE_24][4];
+
+ float edge_color_120[NUM_EDGE_120][4];
+ float face_color_120[NUM_FACE_120][4];
+ float face_color_trans_120[NUM_FACE_120][4];
+
+ float edge_color_600[NUM_EDGE_600][4];
+ float face_color_600[NUM_FACE_600][4];
+ float face_color_trans_600[NUM_FACE_600][4];
+
+ float speed_scale;
+
+} polytopesstruct;
+
+static polytopesstruct *poly = (polytopesstruct *) NULL;
+
+
+/* Vertex, edge, and face data for the six regular polytopes. All the
+ polytopes are constructed with coordinates chosen such that their 4d
+ circumsphere has a radius of 2. */
+
+static const float vert_5[NUM_VERT_5][4] = {
+ { -SQRT5OVER2, -SQRT5OVER6, -SQRT5OVER12, -0.5 },
+ { SQRT5OVER2, -SQRT5OVER6, -SQRT5OVER12, -0.5 },
+ { 0.0, SQRT10OVER3, -SQRT5OVER12, -0.5 },
+ { 0.0, 0.0, SQRT15OVER4, -0.5 },
+ { 0.0, 0.0, 0.0, 2.0 }
+};
+
+static const int edge_5[NUM_EDGE_5][2] = {
+ { 0, 1 }, { 0, 2 }, { 0, 3 }, { 0, 4 }, { 1, 2 }, { 1, 3 }, { 1, 4 },
+ { 2, 3 }, { 2, 4 }, { 3, 4 }
+};
+
+static const int face_5[NUM_FACE_5][VERT_PER_FACE_5] = {
+ { 0, 1, 2 }, { 0, 1, 3 }, { 0, 1, 4 }, { 0, 2, 3 }, { 0, 2, 4 }, { 0, 3, 4 },
+ { 1, 2, 3 }, { 1, 2, 4 }, { 1, 3, 4 }, { 2, 3, 4 }
+};
+
+
+static const float vert_8[NUM_VERT_8][4] = {
+ { -1.0, -1.0, -1.0, -1.0 }, { 1.0, -1.0, -1.0, -1.0 },
+ { -1.0, 1.0, -1.0, -1.0 }, { 1.0, 1.0, -1.0, -1.0 },
+ { -1.0, -1.0, 1.0, -1.0 }, { 1.0, -1.0, 1.0, -1.0 },
+ { -1.0, 1.0, 1.0, -1.0 }, { 1.0, 1.0, 1.0, -1.0 },
+ { -1.0, -1.0, -1.0, 1.0 }, { 1.0, -1.0, -1.0, 1.0 },
+ { -1.0, 1.0, -1.0, 1.0 }, { 1.0, 1.0, -1.0, 1.0 },
+ { -1.0, -1.0, 1.0, 1.0 }, { 1.0, -1.0, 1.0, 1.0 },
+ { -1.0, 1.0, 1.0, 1.0 }, { 1.0, 1.0, 1.0, 1.0 }
+};
+
+static const int edge_8[NUM_EDGE_8][2] = {
+ { 0, 1 }, { 0, 2 }, { 0, 4 }, { 0, 8 }, { 1, 3 }, { 1, 5 },
+ { 1, 9 }, { 2, 3 }, { 2, 6 }, { 2, 10 }, { 3, 7 }, { 3, 11 },
+ { 4, 5 }, { 4, 6 }, { 4, 12 }, { 5, 7 }, { 5, 13 }, { 6, 7 },
+ { 6, 14 }, { 7, 15 }, { 8, 9 }, { 8, 10 }, { 8, 12 }, { 9, 11 },
+ { 9, 13 }, { 10, 11 }, { 10, 14 }, { 11, 15 }, { 12, 13 }, { 12, 14 },
+ { 13, 15 }, { 14, 15 }
+};
+
+static const int face_8[NUM_FACE_8][VERT_PER_FACE_8] = {
+ { 0, 1, 3, 2 }, { 0, 1, 5, 4 }, { 0, 1, 9, 8 },
+ { 0, 2, 6, 4 }, { 0, 2, 10, 8 }, { 0, 4, 12, 8 },
+ { 1, 3, 7, 5 }, { 1, 3, 11, 9 }, { 1, 5, 13, 9 },
+ { 2, 3, 7, 6 }, { 2, 3, 11, 10 }, { 2, 6, 14, 10 },
+ { 3, 7, 15, 11 }, { 4, 5, 7, 6 }, { 4, 5, 13, 12 },
+ { 4, 6, 14, 12 }, { 5, 7, 15, 13 }, { 6, 7, 15, 14 },
+ { 8, 9, 11, 10 }, { 8, 9, 13, 12 }, { 8, 10, 14, 12 },
+ { 9, 11, 15, 13 }, { 10, 11, 15, 14 }, { 12, 13, 15, 14 }
+};
+
+
+
+static const float vert_16[NUM_VERT_16][4] = {
+ { 0.0, 0.0, 0.0, -2.0 }, { 0.0, 0.0, -2.0, 0.0 },
+ { 0.0, -2.0, 0.0, 0.0 }, { -2.0, 0.0, 0.0, 0.0 },
+ { 2.0, 0.0, 0.0, 0.0 }, { 0.0, 2.0, 0.0, 0.0 },
+ { 0.0, 0.0, 2.0, 0.0 }, { 0.0, 0.0, 0.0, 2.0 }
+};
+
+static const int edge_16[NUM_EDGE_16][2] = {
+ { 0, 1 }, { 0, 2 }, { 0, 3 }, { 0, 4 }, { 0, 5 }, { 0, 6 }, { 1, 2 },
+ { 1, 3 }, { 1, 4 }, { 1, 5 }, { 1, 7 }, { 2, 3 }, { 2, 4 }, { 2, 6 },
+ { 2, 7 }, { 3, 5 }, { 3, 6 }, { 3, 7 }, { 4, 5 }, { 4, 6 }, { 4, 7 },
+ { 5, 6 }, { 5, 7 }, { 6, 7 }
+};
+
+static const int face_16[NUM_FACE_16][VERT_PER_FACE_16] = {
+ { 0, 1, 2 }, { 0, 1, 3 }, { 0, 1, 4 }, { 0, 1, 5 }, { 0, 2, 3 }, { 0, 2, 4 },
+ { 0, 2, 6 }, { 0, 3, 5 }, { 0, 3, 6 }, { 0, 4, 5 }, { 0, 4, 6 }, { 0, 5, 6 },
+ { 1, 2, 3 }, { 1, 2, 4 }, { 1, 2, 7 }, { 1, 3, 5 }, { 1, 3, 7 }, { 1, 4, 5 },
+ { 1, 4, 7 }, { 1, 5, 7 }, { 2, 3, 6 }, { 2, 3, 7 }, { 2, 4, 6 }, { 2, 4, 7 },
+ { 2, 6, 7 }, { 3, 5, 6 }, { 3, 5, 7 }, { 3, 6, 7 }, { 4, 5, 6 }, { 4, 5, 7 },
+ { 4, 6, 7 }, { 5, 6, 7 }
+};
+
+
+
+static const float vert_24[NUM_VERT_24][4] = {
+ { 0.0, 0.0, -SQRT2, -SQRT2 }, { 0.0, -SQRT2, 0.0, -SQRT2 },
+ { -SQRT2, 0.0, 0.0, -SQRT2 }, { SQRT2, 0.0, 0.0, -SQRT2 },
+ { 0.0, SQRT2, 0.0, -SQRT2 }, { 0.0, 0.0, SQRT2, -SQRT2 },
+ { 0.0, -SQRT2, -SQRT2, 0.0 }, { -SQRT2, 0.0, -SQRT2, 0.0 },
+ { SQRT2, 0.0, -SQRT2, 0.0 }, { 0.0, SQRT2, -SQRT2, 0.0 },
+ { -SQRT2, -SQRT2, 0.0, 0.0 }, { SQRT2, -SQRT2, 0.0, 0.0 },
+ { -SQRT2, SQRT2, 0.0, 0.0 }, { SQRT2, SQRT2, 0.0, 0.0 },
+ { 0.0, -SQRT2, SQRT2, 0.0 }, { -SQRT2, 0.0, SQRT2, 0.0 },
+ { SQRT2, 0.0, SQRT2, 0.0 }, { 0.0, SQRT2, SQRT2, 0.0 },
+ { 0.0, 0.0, -SQRT2, SQRT2 }, { 0.0, -SQRT2, 0.0, SQRT2 },
+ { -SQRT2, 0.0, 0.0, SQRT2 }, { SQRT2, 0.0, 0.0, SQRT2 },
+ { 0.0, SQRT2, 0.0, SQRT2 }, { 0.0, 0.0, SQRT2, SQRT2 }
+};
+
+static const int edge_24[NUM_EDGE_24][2] = {
+ { 0, 1 }, { 0, 2 }, { 0, 3 }, { 0, 4 }, { 0, 6 }, { 0, 7 },
+ { 0, 8 }, { 0, 9 }, { 1, 2 }, { 1, 3 }, { 1, 5 }, { 1, 6 },
+ { 1, 10 }, { 1, 11 }, { 1, 14 }, { 2, 4 }, { 2, 5 }, { 2, 7 },
+ { 2, 10 }, { 2, 12 }, { 2, 15 }, { 3, 4 }, { 3, 5 }, { 3, 8 },
+ { 3, 11 }, { 3, 13 }, { 3, 16 }, { 4, 5 }, { 4, 9 }, { 4, 12 },
+ { 4, 13 }, { 4, 17 }, { 5, 14 }, { 5, 15 }, { 5, 16 }, { 5, 17 },
+ { 6, 7 }, { 6, 8 }, { 6, 10 }, { 6, 11 }, { 6, 18 }, { 6, 19 },
+ { 7, 9 }, { 7, 10 }, { 7, 12 }, { 7, 18 }, { 7, 20 }, { 8, 9 },
+ { 8, 11 }, { 8, 13 }, { 8, 18 }, { 8, 21 }, { 9, 12 }, { 9, 13 },
+ { 9, 18 }, { 9, 22 }, { 10, 14 }, { 10, 15 }, { 10, 19 }, { 10, 20 },
+ { 11, 14 }, { 11, 16 }, { 11, 19 }, { 11, 21 }, { 12, 15 }, { 12, 17 },
+ { 12, 20 }, { 12, 22 }, { 13, 16 }, { 13, 17 }, { 13, 21 }, { 13, 22 },
+ { 14, 15 }, { 14, 16 }, { 14, 19 }, { 14, 23 }, { 15, 17 }, { 15, 20 },
+ { 15, 23 }, { 16, 17 }, { 16, 21 }, { 16, 23 }, { 17, 22 }, { 17, 23 },
+ { 18, 19 }, { 18, 20 }, { 18, 21 }, { 18, 22 }, { 19, 20 }, { 19, 21 },
+ { 19, 23 }, { 20, 22 }, { 20, 23 }, { 21, 22 }, { 21, 23 }, { 22, 23 }
+};
+
+static const int face_24[NUM_FACE_24][VERT_PER_FACE_24] = {
+ { 0, 1, 2 }, { 0, 1, 3 }, { 0, 1, 6 }, { 0, 2, 4 },
+ { 0, 2, 7 }, { 0, 3, 4 }, { 0, 3, 8 }, { 0, 4, 9 },
+ { 0, 6, 7 }, { 0, 6, 8 }, { 0, 7, 9 }, { 0, 8, 9 },
+ { 1, 2, 5 }, { 1, 2, 10 }, { 1, 3, 5 }, { 1, 3, 11 },
+ { 1, 5, 14 }, { 1, 6, 10 }, { 1, 6, 11 }, { 1, 10, 14 },
+ { 1, 11, 14 }, { 2, 4, 5 }, { 2, 4, 12 }, { 2, 5, 15 },
+ { 2, 7, 10 }, { 2, 7, 12 }, { 2, 10, 15 }, { 2, 12, 15 },
+ { 3, 4, 5 }, { 3, 4, 13 }, { 3, 5, 16 }, { 3, 8, 11 },
+ { 3, 8, 13 }, { 3, 11, 16 }, { 3, 13, 16 }, { 4, 5, 17 },
+ { 4, 9, 12 }, { 4, 9, 13 }, { 4, 12, 17 }, { 4, 13, 17 },
+ { 5, 14, 15 }, { 5, 14, 16 }, { 5, 15, 17 }, { 5, 16, 17 },
+ { 6, 7, 10 }, { 6, 7, 18 }, { 6, 8, 11 }, { 6, 8, 18 },
+ { 6, 10, 19 }, { 6, 11, 19 }, { 6, 18, 19 }, { 7, 9, 12 },
+ { 7, 9, 18 }, { 7, 10, 20 }, { 7, 12, 20 }, { 7, 18, 20 },
+ { 8, 9, 13 }, { 8, 9, 18 }, { 8, 11, 21 }, { 8, 13, 21 },
+ { 8, 18, 21 }, { 9, 12, 22 }, { 9, 13, 22 }, { 9, 18, 22 },
+ { 10, 14, 15 }, { 10, 14, 19 }, { 10, 15, 20 }, { 10, 19, 20 },
+ { 11, 14, 16 }, { 11, 14, 19 }, { 11, 16, 21 }, { 11, 19, 21 },
+ { 12, 15, 17 }, { 12, 15, 20 }, { 12, 17, 22 }, { 12, 20, 22 },
+ { 13, 16, 17 }, { 13, 16, 21 }, { 13, 17, 22 }, { 13, 21, 22 },
+ { 14, 15, 23 }, { 14, 16, 23 }, { 14, 19, 23 }, { 15, 17, 23 },
+ { 15, 20, 23 }, { 16, 17, 23 }, { 16, 21, 23 }, { 17, 22, 23 },
+ { 18, 19, 20 }, { 18, 19, 21 }, { 18, 20, 22 }, { 18, 21, 22 },
+ { 19, 20, 23 }, { 19, 21, 23 }, { 20, 22, 23 }, { 21, 22, 23 }
+};
+
+
+
+
+static const float vert_120[NUM_VERT_120][4] = {
+ { -GOLDENINV22, 0.0, -SQRT2INV, -GOLDEN22 },
+ { GOLDENINV22, 0.0, -SQRT2INV, -GOLDEN22 },
+ { -GOLDENINV2, -GOLDENINV2, -GOLDENINV2, -GOLDEN22 },
+ { GOLDENINV2, -GOLDENINV2, -GOLDENINV2, -GOLDEN22 },
+ { -GOLDENINV2, GOLDENINV2, -GOLDENINV2, -GOLDEN22 },
+ { GOLDENINV2, GOLDENINV2, -GOLDENINV2, -GOLDEN22 },
+ { 0.0, -SQRT2INV, -GOLDENINV22, -GOLDEN22 },
+ { 0.0, SQRT2INV, -GOLDENINV22, -GOLDEN22 },
+ { -SQRT2INV, -GOLDENINV22, 0.0, -GOLDEN22 },
+ { SQRT2INV, -GOLDENINV22, 0.0, -GOLDEN22 },
+ { -SQRT2INV, GOLDENINV22, 0.0, -GOLDEN22 },
+ { SQRT2INV, GOLDENINV22, 0.0, -GOLDEN22 },
+ { 0.0, -SQRT2INV, GOLDENINV22, -GOLDEN22 },
+ { 0.0, SQRT2INV, GOLDENINV22, -GOLDEN22 },
+ { -GOLDENINV2, -GOLDENINV2, GOLDENINV2, -GOLDEN22 },
+ { GOLDENINV2, -GOLDENINV2, GOLDENINV2, -GOLDEN22 },
+ { -GOLDENINV2, GOLDENINV2, GOLDENINV2, -GOLDEN22 },
+ { GOLDENINV2, GOLDENINV2, GOLDENINV2, -GOLDEN22 },
+ { -GOLDENINV22, 0.0, SQRT2INV, -GOLDEN22 },
+ { GOLDENINV22, 0.0, SQRT2INV, -GOLDEN22 },
+ { -GOLDENINV2, 0.0, -GOLDEN2, -SQRT5OVER2 },
+ { GOLDENINV2, 0.0, -GOLDEN2, -SQRT5OVER2 },
+ { -SQRT2INV, -SQRT2INV, -SQRT2INV, -SQRT5OVER2 },
+ { SQRT2INV, -SQRT2INV, -SQRT2INV, -SQRT5OVER2 },
+ { -SQRT2INV, SQRT2INV, -SQRT2INV, -SQRT5OVER2 },
+ { SQRT2INV, SQRT2INV, -SQRT2INV, -SQRT5OVER2 },
+ { 0.0, -GOLDEN2, -GOLDENINV2, -SQRT5OVER2 },
+ { 0.0, GOLDEN2, -GOLDENINV2, -SQRT5OVER2 },
+ { -GOLDEN2, -GOLDENINV2, 0.0, -SQRT5OVER2 },
+ { GOLDEN2, -GOLDENINV2, 0.0, -SQRT5OVER2 },
+ { -GOLDEN2, GOLDENINV2, 0.0, -SQRT5OVER2 },
+ { GOLDEN2, GOLDENINV2, 0.0, -SQRT5OVER2 },
+ { 0.0, -GOLDEN2, GOLDENINV2, -SQRT5OVER2 },
+ { 0.0, GOLDEN2, GOLDENINV2, -SQRT5OVER2 },
+ { -SQRT2INV, -SQRT2INV, SQRT2INV, -SQRT5OVER2 },
+ { SQRT2INV, -SQRT2INV, SQRT2INV, -SQRT5OVER2 },
+ { -SQRT2INV, SQRT2INV, SQRT2INV, -SQRT5OVER2 },
+ { SQRT2INV, SQRT2INV, SQRT2INV, -SQRT5OVER2 },
+ { -GOLDENINV2, 0.0, GOLDEN2, -SQRT5OVER2 },
+ { GOLDENINV2, 0.0, GOLDEN2, -SQRT5OVER2 },
+ { 0.0, 0.0, -SQRT2, -SQRT2 },
+ { -SQRT2INV, -GOLDENINV2, -GOLDEN2, -SQRT2 },
+ { SQRT2INV, -GOLDENINV2, -GOLDEN2, -SQRT2 },
+ { -SQRT2INV, GOLDENINV2, -GOLDEN2, -SQRT2 },
+ { SQRT2INV, GOLDENINV2, -GOLDEN2, -SQRT2 },
+ { -GOLDENINV2, -GOLDEN2, -SQRT2INV, -SQRT2 },
+ { GOLDENINV2, -GOLDEN2, -SQRT2INV, -SQRT2 },
+ { -GOLDENINV2, GOLDEN2, -SQRT2INV, -SQRT2 },
+ { GOLDENINV2, GOLDEN2, -SQRT2INV, -SQRT2 },
+ { -GOLDEN2, -SQRT2INV, -GOLDENINV2, -SQRT2 },
+ { GOLDEN2, -SQRT2INV, -GOLDENINV2, -SQRT2 },
+ { -GOLDEN2, SQRT2INV, -GOLDENINV2, -SQRT2 },
+ { GOLDEN2, SQRT2INV, -GOLDENINV2, -SQRT2 },
+ { 0.0, -SQRT2, 0.0, -SQRT2 },
+ { -SQRT2, 0.0, 0.0, -SQRT2 },
+ { SQRT2, 0.0, 0.0, -SQRT2 },
+ { 0.0, SQRT2, 0.0, -SQRT2 },
+ { -GOLDEN2, -SQRT2INV, GOLDENINV2, -SQRT2 },
+ { GOLDEN2, -SQRT2INV, GOLDENINV2, -SQRT2 },
+ { -GOLDEN2, SQRT2INV, GOLDENINV2, -SQRT2 },
+ { GOLDEN2, SQRT2INV, GOLDENINV2, -SQRT2 },
+ { -GOLDENINV2, -GOLDEN2, SQRT2INV, -SQRT2 },
+ { GOLDENINV2, -GOLDEN2, SQRT2INV, -SQRT2 },
+ { -GOLDENINV2, GOLDEN2, SQRT2INV, -SQRT2 },
+ { GOLDENINV2, GOLDEN2, SQRT2INV, -SQRT2 },
+ { -SQRT2INV, -GOLDENINV2, GOLDEN2, -SQRT2 },
+ { SQRT2INV, -GOLDENINV2, GOLDEN2, -SQRT2 },
+ { -SQRT2INV, GOLDENINV2, GOLDEN2, -SQRT2 },
+ { SQRT2INV, GOLDENINV2, GOLDEN2, -SQRT2 },
+ { 0.0, 0.0, SQRT2, -SQRT2 },
+ { 0.0, -GOLDENINV2, -SQRT5OVER2, -GOLDEN2 },
+ { 0.0, GOLDENINV2, -SQRT5OVER2, -GOLDEN2 },
+ { -GOLDENINV2, -SQRT2INV, -SQRT2, -GOLDEN2 },
+ { GOLDENINV2, -SQRT2INV, -SQRT2, -GOLDEN2 },
+ { -GOLDENINV2, SQRT2INV, -SQRT2, -GOLDEN2 },
+ { GOLDENINV2, SQRT2INV, -SQRT2, -GOLDEN2 },
+ { -GOLDENINV22, -GOLDEN2, -GOLDEN2, -GOLDEN2 },
+ { GOLDENINV22, -GOLDEN2, -GOLDEN2, -GOLDEN2 },
+ { -GOLDEN2, -GOLDENINV22, -GOLDEN2, -GOLDEN2 },
+ { GOLDEN2, -GOLDENINV22, -GOLDEN2, -GOLDEN2 },
+ { -GOLDEN2, GOLDENINV22, -GOLDEN2, -GOLDEN2 },
+ { GOLDEN2, GOLDENINV22, -GOLDEN2, -GOLDEN2 },
+ { -GOLDENINV22, GOLDEN2, -GOLDEN2, -GOLDEN2 },
+ { GOLDENINV22, GOLDEN2, -GOLDEN2, -GOLDEN2 },
+ { -SQRT2, -GOLDENINV2, -SQRT2INV, -GOLDEN2 },
+ { SQRT2, -GOLDENINV2, -SQRT2INV, -GOLDEN2 },
+ { -SQRT2, GOLDENINV2, -SQRT2INV, -GOLDEN2 },
+ { SQRT2, GOLDENINV2, -SQRT2INV, -GOLDEN2 },
+ { -SQRT2INV, -SQRT2, -GOLDENINV2, -GOLDEN2 },
+ { SQRT2INV, -SQRT2, -GOLDENINV2, -GOLDEN2 },
+ { -SQRT5OVER2, 0.0, -GOLDENINV2, -GOLDEN2 },
+ { SQRT5OVER2, 0.0, -GOLDENINV2, -GOLDEN2 },
+ { -SQRT2INV, SQRT2, -GOLDENINV2, -GOLDEN2 },
+ { SQRT2INV, SQRT2, -GOLDENINV2, -GOLDEN2 },
+ { -GOLDEN2, -GOLDEN2, -GOLDENINV22, -GOLDEN2 },
+ { GOLDEN2, -GOLDEN2, -GOLDENINV22, -GOLDEN2 },
+ { -GOLDEN2, GOLDEN2, -GOLDENINV22, -GOLDEN2 },
+ { GOLDEN2, GOLDEN2, -GOLDENINV22, -GOLDEN2 },
+ { -GOLDENINV2, -SQRT5OVER2, 0.0, -GOLDEN2 },
+ { GOLDENINV2, -SQRT5OVER2, 0.0, -GOLDEN2 },
+ { -GOLDENINV2, SQRT5OVER2, 0.0, -GOLDEN2 },
+ { GOLDENINV2, SQRT5OVER2, 0.0, -GOLDEN2 },
+ { -GOLDEN2, -GOLDEN2, GOLDENINV22, -GOLDEN2 },
+ { GOLDEN2, -GOLDEN2, GOLDENINV22, -GOLDEN2 },
+ { -GOLDEN2, GOLDEN2, GOLDENINV22, -GOLDEN2 },
+ { GOLDEN2, GOLDEN2, GOLDENINV22, -GOLDEN2 },
+ { -SQRT2INV, -SQRT2, GOLDENINV2, -GOLDEN2 },
+ { SQRT2INV, -SQRT2, GOLDENINV2, -GOLDEN2 },
+ { -SQRT5OVER2, 0.0, GOLDENINV2, -GOLDEN2 },
+ { SQRT5OVER2, 0.0, GOLDENINV2, -GOLDEN2 },
+ { -SQRT2INV, SQRT2, GOLDENINV2, -GOLDEN2 },
+ { SQRT2INV, SQRT2, GOLDENINV2, -GOLDEN2 },
+ { -SQRT2, -GOLDENINV2, SQRT2INV, -GOLDEN2 },
+ { SQRT2, -GOLDENINV2, SQRT2INV, -GOLDEN2 },
+ { -SQRT2, GOLDENINV2, SQRT2INV, -GOLDEN2 },
+ { SQRT2, GOLDENINV2, SQRT2INV, -GOLDEN2 },
+ { -GOLDENINV22, -GOLDEN2, GOLDEN2, -GOLDEN2 },
+ { GOLDENINV22, -GOLDEN2, GOLDEN2, -GOLDEN2 },
+ { -GOLDEN2, -GOLDENINV22, GOLDEN2, -GOLDEN2 },
+ { GOLDEN2, -GOLDENINV22, GOLDEN2, -GOLDEN2 },
+ { -GOLDEN2, GOLDENINV22, GOLDEN2, -GOLDEN2 },
+ { GOLDEN2, GOLDENINV22, GOLDEN2, -GOLDEN2 },
+ { -GOLDENINV22, GOLDEN2, GOLDEN2, -GOLDEN2 },
+ { GOLDENINV22, GOLDEN2, GOLDEN2, -GOLDEN2 },
+ { -GOLDENINV2, -SQRT2INV, SQRT2, -GOLDEN2 },
+ { GOLDENINV2, -SQRT2INV, SQRT2, -GOLDEN2 },
+ { -GOLDENINV2, SQRT2INV, SQRT2, -GOLDEN2 },
+ { GOLDENINV2, SQRT2INV, SQRT2, -GOLDEN2 },
+ { 0.0, -GOLDENINV2, SQRT5OVER2, -GOLDEN2 },
+ { 0.0, GOLDENINV2, SQRT5OVER2, -GOLDEN2 },
+ { 0.0, -GOLDENINV22, -GOLDEN22, -SQRT2INV },
+ { 0.0, GOLDENINV22, -GOLDEN22, -SQRT2INV },
+ { -SQRT2INV, -SQRT2INV, -SQRT5OVER2, -SQRT2INV },
+ { SQRT2INV, -SQRT2INV, -SQRT5OVER2, -SQRT2INV },
+ { -SQRT2INV, SQRT2INV, -SQRT5OVER2, -SQRT2INV },
+ { SQRT2INV, SQRT2INV, -SQRT5OVER2, -SQRT2INV },
+ { -GOLDEN2, -GOLDENINV2, -SQRT2, -SQRT2INV },
+ { GOLDEN2, -GOLDENINV2, -SQRT2, -SQRT2INV },
+ { -GOLDEN2, GOLDENINV2, -SQRT2, -SQRT2INV },
+ { GOLDEN2, GOLDENINV2, -SQRT2, -SQRT2INV },
+ { -GOLDENINV2, -SQRT2, -GOLDEN2, -SQRT2INV },
+ { GOLDENINV2, -SQRT2, -GOLDEN2, -SQRT2INV },
+ { -GOLDENINV2, SQRT2, -GOLDEN2, -SQRT2INV },
+ { GOLDENINV2, SQRT2, -GOLDEN2, -SQRT2INV },
+ { -SQRT2INV, -SQRT5OVER2, -SQRT2INV, -SQRT2INV },
+ { SQRT2INV, -SQRT5OVER2, -SQRT2INV, -SQRT2INV },
+ { -SQRT5OVER2, -SQRT2INV, -SQRT2INV, -SQRT2INV },
+ { SQRT5OVER2, -SQRT2INV, -SQRT2INV, -SQRT2INV },
+ { -SQRT5OVER2, SQRT2INV, -SQRT2INV, -SQRT2INV },
+ { SQRT5OVER2, SQRT2INV, -SQRT2INV, -SQRT2INV },
+ { -SQRT2INV, SQRT5OVER2, -SQRT2INV, -SQRT2INV },
+ { SQRT2INV, SQRT5OVER2, -SQRT2INV, -SQRT2INV },
+ { -SQRT2, -GOLDEN2, -GOLDENINV2, -SQRT2INV },
+ { SQRT2, -GOLDEN2, -GOLDENINV2, -SQRT2INV },
+ { -SQRT2, GOLDEN2, -GOLDENINV2, -SQRT2INV },
+ { SQRT2, GOLDEN2, -GOLDENINV2, -SQRT2INV },
+ { -GOLDEN22, 0.0, -GOLDENINV22, -SQRT2INV },
+ { GOLDEN22, 0.0, -GOLDENINV22, -SQRT2INV },
+ { -GOLDENINV22, -GOLDEN22, 0.0, -SQRT2INV },
+ { GOLDENINV22, -GOLDEN22, 0.0, -SQRT2INV },
+ { -GOLDENINV22, GOLDEN22, 0.0, -SQRT2INV },
+ { GOLDENINV22, GOLDEN22, 0.0, -SQRT2INV },
+ { -GOLDEN22, 0.0, GOLDENINV22, -SQRT2INV },
+ { GOLDEN22, 0.0, GOLDENINV22, -SQRT2INV },
+ { -SQRT2, -GOLDEN2, GOLDENINV2, -SQRT2INV },
+ { SQRT2, -GOLDEN2, GOLDENINV2, -SQRT2INV },
+ { -SQRT2, GOLDEN2, GOLDENINV2, -SQRT2INV },
+ { SQRT2, GOLDEN2, GOLDENINV2, -SQRT2INV },
+ { -SQRT2INV, -SQRT5OVER2, SQRT2INV, -SQRT2INV },
+ { SQRT2INV, -SQRT5OVER2, SQRT2INV, -SQRT2INV },
+ { -SQRT5OVER2, -SQRT2INV, SQRT2INV, -SQRT2INV },
+ { SQRT5OVER2, -SQRT2INV, SQRT2INV, -SQRT2INV },
+ { -SQRT5OVER2, SQRT2INV, SQRT2INV, -SQRT2INV },
+ { SQRT5OVER2, SQRT2INV, SQRT2INV, -SQRT2INV },
+ { -SQRT2INV, SQRT5OVER2, SQRT2INV, -SQRT2INV },
+ { SQRT2INV, SQRT5OVER2, SQRT2INV, -SQRT2INV },
+ { -GOLDENINV2, -SQRT2, GOLDEN2, -SQRT2INV },
+ { GOLDENINV2, -SQRT2, GOLDEN2, -SQRT2INV },
+ { -GOLDENINV2, SQRT2, GOLDEN2, -SQRT2INV },
+ { GOLDENINV2, SQRT2, GOLDEN2, -SQRT2INV },
+ { -GOLDEN2, -GOLDENINV2, SQRT2, -SQRT2INV },
+ { GOLDEN2, -GOLDENINV2, SQRT2, -SQRT2INV },
+ { -GOLDEN2, GOLDENINV2, SQRT2, -SQRT2INV },
+ { GOLDEN2, GOLDENINV2, SQRT2, -SQRT2INV },
+ { -SQRT2INV, -SQRT2INV, SQRT5OVER2, -SQRT2INV },
+ { SQRT2INV, -SQRT2INV, SQRT5OVER2, -SQRT2INV },
+ { -SQRT2INV, SQRT2INV, SQRT5OVER2, -SQRT2INV },
+ { SQRT2INV, SQRT2INV, SQRT5OVER2, -SQRT2INV },
+ { 0.0, -GOLDENINV22, GOLDEN22, -SQRT2INV },
+ { 0.0, GOLDENINV22, GOLDEN22, -SQRT2INV },
+ { -GOLDENINV2, -GOLDENINV2, -GOLDEN22, -GOLDENINV2 },
+ { GOLDENINV2, -GOLDENINV2, -GOLDEN22, -GOLDENINV2 },
+ { -GOLDENINV2, GOLDENINV2, -GOLDEN22, -GOLDENINV2 },
+ { GOLDENINV2, GOLDENINV2, -GOLDEN22, -GOLDENINV2 },
+ { -GOLDEN2, 0.0, -SQRT5OVER2, -GOLDENINV2 },
+ { GOLDEN2, 0.0, -SQRT5OVER2, -GOLDENINV2 },
+ { -SQRT2INV, -GOLDEN2, -SQRT2, -GOLDENINV2 },
+ { SQRT2INV, -GOLDEN2, -SQRT2, -GOLDENINV2 },
+ { -SQRT2INV, GOLDEN2, -SQRT2, -GOLDENINV2 },
+ { SQRT2INV, GOLDEN2, -SQRT2, -GOLDENINV2 },
+ { 0.0, -SQRT5OVER2, -GOLDEN2, -GOLDENINV2 },
+ { -SQRT2, -SQRT2INV, -GOLDEN2, -GOLDENINV2 },
+ { SQRT2, -SQRT2INV, -GOLDEN2, -GOLDENINV2 },
+ { -SQRT2, SQRT2INV, -GOLDEN2, -GOLDENINV2 },
+ { SQRT2, SQRT2INV, -GOLDEN2, -GOLDENINV2 },
+ { 0.0, SQRT5OVER2, -GOLDEN2, -GOLDENINV2 },
+ { -GOLDEN2, -SQRT2, -SQRT2INV, -GOLDENINV2 },
+ { GOLDEN2, -SQRT2, -SQRT2INV, -GOLDENINV2 },
+ { -GOLDEN2, SQRT2, -SQRT2INV, -GOLDENINV2 },
+ { GOLDEN2, SQRT2, -SQRT2INV, -GOLDENINV2 },
+ { -GOLDENINV2, -GOLDEN22, -GOLDENINV2, -GOLDENINV2 },
+ { GOLDENINV2, -GOLDEN22, -GOLDENINV2, -GOLDENINV2 },
+ { -GOLDEN22, -GOLDENINV2, -GOLDENINV2, -GOLDENINV2 },
+ { GOLDEN22, -GOLDENINV2, -GOLDENINV2, -GOLDENINV2 },
+ { -GOLDEN22, GOLDENINV2, -GOLDENINV2, -GOLDENINV2 },
+ { GOLDEN22, GOLDENINV2, -GOLDENINV2, -GOLDENINV2 },
+ { -GOLDENINV2, GOLDEN22, -GOLDENINV2, -GOLDENINV2 },
+ { GOLDENINV2, GOLDEN22, -GOLDENINV2, -GOLDENINV2 },
+ { -SQRT5OVER2, -GOLDEN2, 0.0, -GOLDENINV2 },
+ { SQRT5OVER2, -GOLDEN2, 0.0, -GOLDENINV2 },
+ { -SQRT5OVER2, GOLDEN2, 0.0, -GOLDENINV2 },
+ { SQRT5OVER2, GOLDEN2, 0.0, -GOLDENINV2 },
+ { -GOLDENINV2, -GOLDEN22, GOLDENINV2, -GOLDENINV2 },
+ { GOLDENINV2, -GOLDEN22, GOLDENINV2, -GOLDENINV2 },
+ { -GOLDEN22, -GOLDENINV2, GOLDENINV2, -GOLDENINV2 },
+ { GOLDEN22, -GOLDENINV2, GOLDENINV2, -GOLDENINV2 },
+ { -GOLDEN22, GOLDENINV2, GOLDENINV2, -GOLDENINV2 },
+ { GOLDEN22, GOLDENINV2, GOLDENINV2, -GOLDENINV2 },
+ { -GOLDENINV2, GOLDEN22, GOLDENINV2, -GOLDENINV2 },
+ { GOLDENINV2, GOLDEN22, GOLDENINV2, -GOLDENINV2 },
+ { -GOLDEN2, -SQRT2, SQRT2INV, -GOLDENINV2 },
+ { GOLDEN2, -SQRT2, SQRT2INV, -GOLDENINV2 },
+ { -GOLDEN2, SQRT2, SQRT2INV, -GOLDENINV2 },
+ { GOLDEN2, SQRT2, SQRT2INV, -GOLDENINV2 },
+ { 0.0, -SQRT5OVER2, GOLDEN2, -GOLDENINV2 },
+ { -SQRT2, -SQRT2INV, GOLDEN2, -GOLDENINV2 },
+ { SQRT2, -SQRT2INV, GOLDEN2, -GOLDENINV2 },
+ { -SQRT2, SQRT2INV, GOLDEN2, -GOLDENINV2 },
+ { SQRT2, SQRT2INV, GOLDEN2, -GOLDENINV2 },
+ { 0.0, SQRT5OVER2, GOLDEN2, -GOLDENINV2 },
+ { -SQRT2INV, -GOLDEN2, SQRT2, -GOLDENINV2 },
+ { SQRT2INV, -GOLDEN2, SQRT2, -GOLDENINV2 },
+ { -SQRT2INV, GOLDEN2, SQRT2, -GOLDENINV2 },
+ { SQRT2INV, GOLDEN2, SQRT2, -GOLDENINV2 },
+ { -GOLDEN2, 0.0, SQRT5OVER2, -GOLDENINV2 },
+ { GOLDEN2, 0.0, SQRT5OVER2, -GOLDENINV2 },
+ { -GOLDENINV2, -GOLDENINV2, GOLDEN22, -GOLDENINV2 },
+ { GOLDENINV2, -GOLDENINV2, GOLDEN22, -GOLDENINV2 },
+ { -GOLDENINV2, GOLDENINV2, GOLDEN22, -GOLDENINV2 },
+ { GOLDENINV2, GOLDENINV2, GOLDEN22, -GOLDENINV2 },
+ { -SQRT2INV, 0.0, -GOLDEN22, -GOLDENINV22 },
+ { SQRT2INV, 0.0, -GOLDEN22, -GOLDENINV22 },
+ { -GOLDEN2, -GOLDEN2, -GOLDEN2, -GOLDENINV22 },
+ { GOLDEN2, -GOLDEN2, -GOLDEN2, -GOLDENINV22 },
+ { -GOLDEN2, GOLDEN2, -GOLDEN2, -GOLDENINV22 },
+ { GOLDEN2, GOLDEN2, -GOLDEN2, -GOLDENINV22 },
+ { 0.0, -GOLDEN22, -SQRT2INV, -GOLDENINV22 },
+ { 0.0, GOLDEN22, -SQRT2INV, -GOLDENINV22 },
+ { -GOLDEN22, -SQRT2INV, 0.0, -GOLDENINV22 },
+ { GOLDEN22, -SQRT2INV, 0.0, -GOLDENINV22 },
+ { -GOLDEN22, SQRT2INV, 0.0, -GOLDENINV22 },
+ { GOLDEN22, SQRT2INV, 0.0, -GOLDENINV22 },
+ { 0.0, -GOLDEN22, SQRT2INV, -GOLDENINV22 },
+ { 0.0, GOLDEN22, SQRT2INV, -GOLDENINV22 },
+ { -GOLDEN2, -GOLDEN2, GOLDEN2, -GOLDENINV22 },
+ { GOLDEN2, -GOLDEN2, GOLDEN2, -GOLDENINV22 },
+ { -GOLDEN2, GOLDEN2, GOLDEN2, -GOLDENINV22 },
+ { GOLDEN2, GOLDEN2, GOLDEN2, -GOLDENINV22 },
+ { -SQRT2INV, 0.0, GOLDEN22, -GOLDENINV22 },
+ { SQRT2INV, 0.0, GOLDEN22, -GOLDENINV22 },
+ { -GOLDENINV22, -SQRT2INV, -GOLDEN22, 0.0 },
+ { GOLDENINV22, -SQRT2INV, -GOLDEN22, 0.0 },
+ { -GOLDENINV22, SQRT2INV, -GOLDEN22, 0.0 },
+ { GOLDENINV22, SQRT2INV, -GOLDEN22, 0.0 },
+ { -GOLDENINV2, -GOLDEN2, -SQRT5OVER2, 0.0 },
+ { GOLDENINV2, -GOLDEN2, -SQRT5OVER2, 0.0 },
+ { -GOLDENINV2, GOLDEN2, -SQRT5OVER2, 0.0 },
+ { GOLDENINV2, GOLDEN2, -SQRT5OVER2, 0.0 },
+ { 0.0, -SQRT2, -SQRT2, 0.0 },
+ { -SQRT2, 0.0, -SQRT2, 0.0 },
+ { SQRT2, 0.0, -SQRT2, 0.0 },
+ { 0.0, SQRT2, -SQRT2, 0.0 },
+ { -SQRT5OVER2, -GOLDENINV2, -GOLDEN2, 0.0 },
+ { SQRT5OVER2, -GOLDENINV2, -GOLDEN2, 0.0 },
+ { -SQRT5OVER2, GOLDENINV2, -GOLDEN2, 0.0 },
+ { SQRT5OVER2, GOLDENINV2, -GOLDEN2, 0.0 },
+ { -GOLDEN22, -GOLDENINV22, -SQRT2INV, 0.0 },
+ { GOLDEN22, -GOLDENINV22, -SQRT2INV, 0.0 },
+ { -GOLDEN22, GOLDENINV22, -SQRT2INV, 0.0 },
+ { GOLDEN22, GOLDENINV22, -SQRT2INV, 0.0 },
+ { -GOLDEN2, -SQRT5OVER2, -GOLDENINV2, 0.0 },
+ { GOLDEN2, -SQRT5OVER2, -GOLDENINV2, 0.0 },
+ { -GOLDEN2, SQRT5OVER2, -GOLDENINV2, 0.0 },
+ { GOLDEN2, SQRT5OVER2, -GOLDENINV2, 0.0 },
+ { -SQRT2INV, -GOLDEN22, -GOLDENINV22, 0.0 },
+ { SQRT2INV, -GOLDEN22, -GOLDENINV22, 0.0 },
+ { -SQRT2INV, GOLDEN22, -GOLDENINV22, 0.0 },
+ { SQRT2INV, GOLDEN22, -GOLDENINV22, 0.0 },
+ { -SQRT2, -SQRT2, 0.0, 0.0 },
+ { SQRT2, -SQRT2, 0.0, 0.0 },
+ { -SQRT2, SQRT2, 0.0, 0.0 },
+ { SQRT2, SQRT2, 0.0, 0.0 },
+ { -SQRT2INV, -GOLDEN22, GOLDENINV22, 0.0 },
+ { SQRT2INV, -GOLDEN22, GOLDENINV22, 0.0 },
+ { -SQRT2INV, GOLDEN22, GOLDENINV22, 0.0 },
+ { SQRT2INV, GOLDEN22, GOLDENINV22, 0.0 },
+ { -GOLDEN2, -SQRT5OVER2, GOLDENINV2, 0.0 },
+ { GOLDEN2, -SQRT5OVER2, GOLDENINV2, 0.0 },
+ { -GOLDEN2, SQRT5OVER2, GOLDENINV2, 0.0 },
+ { GOLDEN2, SQRT5OVER2, GOLDENINV2, 0.0 },
+ { -GOLDEN22, -GOLDENINV22, SQRT2INV, 0.0 },
+ { GOLDEN22, -GOLDENINV22, SQRT2INV, 0.0 },
+ { -GOLDEN22, GOLDENINV22, SQRT2INV, 0.0 },
+ { GOLDEN22, GOLDENINV22, SQRT2INV, 0.0 },
+ { -SQRT5OVER2, -GOLDENINV2, GOLDEN2, 0.0 },
+ { SQRT5OVER2, -GOLDENINV2, GOLDEN2, 0.0 },
+ { -SQRT5OVER2, GOLDENINV2, GOLDEN2, 0.0 },
+ { SQRT5OVER2, GOLDENINV2, GOLDEN2, 0.0 },
+ { 0.0, -SQRT2, SQRT2, 0.0 },
+ { -SQRT2, 0.0, SQRT2, 0.0 },
+ { SQRT2, 0.0, SQRT2, 0.0 },
+ { 0.0, SQRT2, SQRT2, 0.0 },
+ { -GOLDENINV2, -GOLDEN2, SQRT5OVER2, 0.0 },
+ { GOLDENINV2, -GOLDEN2, SQRT5OVER2, 0.0 },
+ { -GOLDENINV2, GOLDEN2, SQRT5OVER2, 0.0 },
+ { GOLDENINV2, GOLDEN2, SQRT5OVER2, 0.0 },
+ { -GOLDENINV22, -SQRT2INV, GOLDEN22, 0.0 },
+ { GOLDENINV22, -SQRT2INV, GOLDEN22, 0.0 },
+ { -GOLDENINV22, SQRT2INV, GOLDEN22, 0.0 },
+ { GOLDENINV22, SQRT2INV, GOLDEN22, 0.0 },
+ { -SQRT2INV, 0.0, -GOLDEN22, GOLDENINV22 },
+ { SQRT2INV, 0.0, -GOLDEN22, GOLDENINV22 },
+ { -GOLDEN2, -GOLDEN2, -GOLDEN2, GOLDENINV22 },
+ { GOLDEN2, -GOLDEN2, -GOLDEN2, GOLDENINV22 },
+ { -GOLDEN2, GOLDEN2, -GOLDEN2, GOLDENINV22 },
+ { GOLDEN2, GOLDEN2, -GOLDEN2, GOLDENINV22 },
+ { 0.0, -GOLDEN22, -SQRT2INV, GOLDENINV22 },
+ { 0.0, GOLDEN22, -SQRT2INV, GOLDENINV22 },
+ { -GOLDEN22, -SQRT2INV, 0.0, GOLDENINV22 },
+ { GOLDEN22, -SQRT2INV, 0.0, GOLDENINV22 },
+ { -GOLDEN22, SQRT2INV, 0.0, GOLDENINV22 },
+ { GOLDEN22, SQRT2INV, 0.0, GOLDENINV22 },
+ { 0.0, -GOLDEN22, SQRT2INV, GOLDENINV22 },
+ { 0.0, GOLDEN22, SQRT2INV, GOLDENINV22 },
+ { -GOLDEN2, -GOLDEN2, GOLDEN2, GOLDENINV22 },
+ { GOLDEN2, -GOLDEN2, GOLDEN2, GOLDENINV22 },
+ { -GOLDEN2, GOLDEN2, GOLDEN2, GOLDENINV22 },
+ { GOLDEN2, GOLDEN2, GOLDEN2, GOLDENINV22 },
+ { -SQRT2INV, 0.0, GOLDEN22, GOLDENINV22 },
+ { SQRT2INV, 0.0, GOLDEN22, GOLDENINV22 },
+ { -GOLDENINV2, -GOLDENINV2, -GOLDEN22, GOLDENINV2 },
+ { GOLDENINV2, -GOLDENINV2, -GOLDEN22, GOLDENINV2 },
+ { -GOLDENINV2, GOLDENINV2, -GOLDEN22, GOLDENINV2 },
+ { GOLDENINV2, GOLDENINV2, -GOLDEN22, GOLDENINV2 },
+ { -GOLDEN2, 0.0, -SQRT5OVER2, GOLDENINV2 },
+ { GOLDEN2, 0.0, -SQRT5OVER2, GOLDENINV2 },
+ { -SQRT2INV, -GOLDEN2, -SQRT2, GOLDENINV2 },
+ { SQRT2INV, -GOLDEN2, -SQRT2, GOLDENINV2 },
+ { -SQRT2INV, GOLDEN2, -SQRT2, GOLDENINV2 },
+ { SQRT2INV, GOLDEN2, -SQRT2, GOLDENINV2 },
+ { 0.0, -SQRT5OVER2, -GOLDEN2, GOLDENINV2 },
+ { -SQRT2, -SQRT2INV, -GOLDEN2, GOLDENINV2 },
+ { SQRT2, -SQRT2INV, -GOLDEN2, GOLDENINV2 },
+ { -SQRT2, SQRT2INV, -GOLDEN2, GOLDENINV2 },
+ { SQRT2, SQRT2INV, -GOLDEN2, GOLDENINV2 },
+ { 0.0, SQRT5OVER2, -GOLDEN2, GOLDENINV2 },
+ { -GOLDEN2, -SQRT2, -SQRT2INV, GOLDENINV2 },
+ { GOLDEN2, -SQRT2, -SQRT2INV, GOLDENINV2 },
+ { -GOLDEN2, SQRT2, -SQRT2INV, GOLDENINV2 },
+ { GOLDEN2, SQRT2, -SQRT2INV, GOLDENINV2 },
+ { -GOLDENINV2, -GOLDEN22, -GOLDENINV2, GOLDENINV2 },
+ { GOLDENINV2, -GOLDEN22, -GOLDENINV2, GOLDENINV2 },
+ { -GOLDEN22, -GOLDENINV2, -GOLDENINV2, GOLDENINV2 },
+ { GOLDEN22, -GOLDENINV2, -GOLDENINV2, GOLDENINV2 },
+ { -GOLDEN22, GOLDENINV2, -GOLDENINV2, GOLDENINV2 },
+ { GOLDEN22, GOLDENINV2, -GOLDENINV2, GOLDENINV2 },
+ { -GOLDENINV2, GOLDEN22, -GOLDENINV2, GOLDENINV2 },
+ { GOLDENINV2, GOLDEN22, -GOLDENINV2, GOLDENINV2 },
+ { -SQRT5OVER2, -GOLDEN2, 0.0, GOLDENINV2 },
+ { SQRT5OVER2, -GOLDEN2, 0.0, GOLDENINV2 },
+ { -SQRT5OVER2, GOLDEN2, 0.0, GOLDENINV2 },
+ { SQRT5OVER2, GOLDEN2, 0.0, GOLDENINV2 },
+ { -GOLDENINV2, -GOLDEN22, GOLDENINV2, GOLDENINV2 },
+ { GOLDENINV2, -GOLDEN22, GOLDENINV2, GOLDENINV2 },
+ { -GOLDEN22, -GOLDENINV2, GOLDENINV2, GOLDENINV2 },
+ { GOLDEN22, -GOLDENINV2, GOLDENINV2, GOLDENINV2 },
+ { -GOLDEN22, GOLDENINV2, GOLDENINV2, GOLDENINV2 },
+ { GOLDEN22, GOLDENINV2, GOLDENINV2, GOLDENINV2 },
+ { -GOLDENINV2, GOLDEN22, GOLDENINV2, GOLDENINV2 },
+ { GOLDENINV2, GOLDEN22, GOLDENINV2, GOLDENINV2 },
+ { -GOLDEN2, -SQRT2, SQRT2INV, GOLDENINV2 },
+ { GOLDEN2, -SQRT2, SQRT2INV, GOLDENINV2 },
+ { -GOLDEN2, SQRT2, SQRT2INV, GOLDENINV2 },
+ { GOLDEN2, SQRT2, SQRT2INV, GOLDENINV2 },
+ { 0.0, -SQRT5OVER2, GOLDEN2, GOLDENINV2 },
+ { -SQRT2, -SQRT2INV, GOLDEN2, GOLDENINV2 },
+ { SQRT2, -SQRT2INV, GOLDEN2, GOLDENINV2 },
+ { -SQRT2, SQRT2INV, GOLDEN2, GOLDENINV2 },
+ { SQRT2, SQRT2INV, GOLDEN2, GOLDENINV2 },
+ { 0.0, SQRT5OVER2, GOLDEN2, GOLDENINV2 },
+ { -SQRT2INV, -GOLDEN2, SQRT2, GOLDENINV2 },
+ { SQRT2INV, -GOLDEN2, SQRT2, GOLDENINV2 },
+ { -SQRT2INV, GOLDEN2, SQRT2, GOLDENINV2 },
+ { SQRT2INV, GOLDEN2, SQRT2, GOLDENINV2 },
+ { -GOLDEN2, 0.0, SQRT5OVER2, GOLDENINV2 },
+ { GOLDEN2, 0.0, SQRT5OVER2, GOLDENINV2 },
+ { -GOLDENINV2, -GOLDENINV2, GOLDEN22, GOLDENINV2 },
+ { GOLDENINV2, -GOLDENINV2, GOLDEN22, GOLDENINV2 },
+ { -GOLDENINV2, GOLDENINV2, GOLDEN22, GOLDENINV2 },
+ { GOLDENINV2, GOLDENINV2, GOLDEN22, GOLDENINV2 },
+ { 0.0, -GOLDENINV22, -GOLDEN22, SQRT2INV },
+ { 0.0, GOLDENINV22, -GOLDEN22, SQRT2INV },
+ { -SQRT2INV, -SQRT2INV, -SQRT5OVER2, SQRT2INV },
+ { SQRT2INV, -SQRT2INV, -SQRT5OVER2, SQRT2INV },
+ { -SQRT2INV, SQRT2INV, -SQRT5OVER2, SQRT2INV },
+ { SQRT2INV, SQRT2INV, -SQRT5OVER2, SQRT2INV },
+ { -GOLDEN2, -GOLDENINV2, -SQRT2, SQRT2INV },
+ { GOLDEN2, -GOLDENINV2, -SQRT2, SQRT2INV },
+ { -GOLDEN2, GOLDENINV2, -SQRT2, SQRT2INV },
+ { GOLDEN2, GOLDENINV2, -SQRT2, SQRT2INV },
+ { -GOLDENINV2, -SQRT2, -GOLDEN2, SQRT2INV },
+ { GOLDENINV2, -SQRT2, -GOLDEN2, SQRT2INV },
+ { -GOLDENINV2, SQRT2, -GOLDEN2, SQRT2INV },
+ { GOLDENINV2, SQRT2, -GOLDEN2, SQRT2INV },
+ { -SQRT2INV, -SQRT5OVER2, -SQRT2INV, SQRT2INV },
+ { SQRT2INV, -SQRT5OVER2, -SQRT2INV, SQRT2INV },
+ { -SQRT5OVER2, -SQRT2INV, -SQRT2INV, SQRT2INV },
+ { SQRT5OVER2, -SQRT2INV, -SQRT2INV, SQRT2INV },
+ { -SQRT5OVER2, SQRT2INV, -SQRT2INV, SQRT2INV },
+ { SQRT5OVER2, SQRT2INV, -SQRT2INV, SQRT2INV },
+ { -SQRT2INV, SQRT5OVER2, -SQRT2INV, SQRT2INV },
+ { SQRT2INV, SQRT5OVER2, -SQRT2INV, SQRT2INV },
+ { -SQRT2, -GOLDEN2, -GOLDENINV2, SQRT2INV },
+ { SQRT2, -GOLDEN2, -GOLDENINV2, SQRT2INV },
+ { -SQRT2, GOLDEN2, -GOLDENINV2, SQRT2INV },
+ { SQRT2, GOLDEN2, -GOLDENINV2, SQRT2INV },
+ { -GOLDEN22, 0.0, -GOLDENINV22, SQRT2INV },
+ { GOLDEN22, 0.0, -GOLDENINV22, SQRT2INV },
+ { -GOLDENINV22, -GOLDEN22, 0.0, SQRT2INV },
+ { GOLDENINV22, -GOLDEN22, 0.0, SQRT2INV },
+ { -GOLDENINV22, GOLDEN22, 0.0, SQRT2INV },
+ { GOLDENINV22, GOLDEN22, 0.0, SQRT2INV },
+ { -GOLDEN22, 0.0, GOLDENINV22, SQRT2INV },
+ { GOLDEN22, 0.0, GOLDENINV22, SQRT2INV },
+ { -SQRT2, -GOLDEN2, GOLDENINV2, SQRT2INV },
+ { SQRT2, -GOLDEN2, GOLDENINV2, SQRT2INV },
+ { -SQRT2, GOLDEN2, GOLDENINV2, SQRT2INV },
+ { SQRT2, GOLDEN2, GOLDENINV2, SQRT2INV },
+ { -SQRT2INV, -SQRT5OVER2, SQRT2INV, SQRT2INV },
+ { SQRT2INV, -SQRT5OVER2, SQRT2INV, SQRT2INV },
+ { -SQRT5OVER2, -SQRT2INV, SQRT2INV, SQRT2INV },
+ { SQRT5OVER2, -SQRT2INV, SQRT2INV, SQRT2INV },
+ { -SQRT5OVER2, SQRT2INV, SQRT2INV, SQRT2INV },
+ { SQRT5OVER2, SQRT2INV, SQRT2INV, SQRT2INV },
+ { -SQRT2INV, SQRT5OVER2, SQRT2INV, SQRT2INV },
+ { SQRT2INV, SQRT5OVER2, SQRT2INV, SQRT2INV },
+ { -GOLDENINV2, -SQRT2, GOLDEN2, SQRT2INV },
+ { GOLDENINV2, -SQRT2, GOLDEN2, SQRT2INV },
+ { -GOLDENINV2, SQRT2, GOLDEN2, SQRT2INV },
+ { GOLDENINV2, SQRT2, GOLDEN2, SQRT2INV },
+ { -GOLDEN2, -GOLDENINV2, SQRT2, SQRT2INV },
+ { GOLDEN2, -GOLDENINV2, SQRT2, SQRT2INV },
+ { -GOLDEN2, GOLDENINV2, SQRT2, SQRT2INV },
+ { GOLDEN2, GOLDENINV2, SQRT2, SQRT2INV },
+ { -SQRT2INV, -SQRT2INV, SQRT5OVER2, SQRT2INV },
+ { SQRT2INV, -SQRT2INV, SQRT5OVER2, SQRT2INV },
+ { -SQRT2INV, SQRT2INV, SQRT5OVER2, SQRT2INV },
+ { SQRT2INV, SQRT2INV, SQRT5OVER2, SQRT2INV },
+ { 0.0, -GOLDENINV22, GOLDEN22, SQRT2INV },
+ { 0.0, GOLDENINV22, GOLDEN22, SQRT2INV },
+ { 0.0, -GOLDENINV2, -SQRT5OVER2, GOLDEN2 },
+ { 0.0, GOLDENINV2, -SQRT5OVER2, GOLDEN2 },
+ { -GOLDENINV2, -SQRT2INV, -SQRT2, GOLDEN2 },
+ { GOLDENINV2, -SQRT2INV, -SQRT2, GOLDEN2 },
+ { -GOLDENINV2, SQRT2INV, -SQRT2, GOLDEN2 },
+ { GOLDENINV2, SQRT2INV, -SQRT2, GOLDEN2 },
+ { -GOLDENINV22, -GOLDEN2, -GOLDEN2, GOLDEN2 },
+ { GOLDENINV22, -GOLDEN2, -GOLDEN2, GOLDEN2 },
+ { -GOLDEN2, -GOLDENINV22, -GOLDEN2, GOLDEN2 },
+ { GOLDEN2, -GOLDENINV22, -GOLDEN2, GOLDEN2 },
+ { -GOLDEN2, GOLDENINV22, -GOLDEN2, GOLDEN2 },
+ { GOLDEN2, GOLDENINV22, -GOLDEN2, GOLDEN2 },
+ { -GOLDENINV22, GOLDEN2, -GOLDEN2, GOLDEN2 },
+ { GOLDENINV22, GOLDEN2, -GOLDEN2, GOLDEN2 },
+ { -SQRT2, -GOLDENINV2, -SQRT2INV, GOLDEN2 },
+ { SQRT2, -GOLDENINV2, -SQRT2INV, GOLDEN2 },
+ { -SQRT2, GOLDENINV2, -SQRT2INV, GOLDEN2 },
+ { SQRT2, GOLDENINV2, -SQRT2INV, GOLDEN2 },
+ { -SQRT2INV, -SQRT2, -GOLDENINV2, GOLDEN2 },
+ { SQRT2INV, -SQRT2, -GOLDENINV2, GOLDEN2 },
+ { -SQRT5OVER2, 0.0, -GOLDENINV2, GOLDEN2 },
+ { SQRT5OVER2, 0.0, -GOLDENINV2, GOLDEN2 },
+ { -SQRT2INV, SQRT2, -GOLDENINV2, GOLDEN2 },
+ { SQRT2INV, SQRT2, -GOLDENINV2, GOLDEN2 },
+ { -GOLDEN2, -GOLDEN2, -GOLDENINV22, GOLDEN2 },
+ { GOLDEN2, -GOLDEN2, -GOLDENINV22, GOLDEN2 },
+ { -GOLDEN2, GOLDEN2, -GOLDENINV22, GOLDEN2 },
+ { GOLDEN2, GOLDEN2, -GOLDENINV22, GOLDEN2 },
+ { -GOLDENINV2, -SQRT5OVER2, 0.0, GOLDEN2 },
+ { GOLDENINV2, -SQRT5OVER2, 0.0, GOLDEN2 },
+ { -GOLDENINV2, SQRT5OVER2, 0.0, GOLDEN2 },
+ { GOLDENINV2, SQRT5OVER2, 0.0, GOLDEN2 },
+ { -GOLDEN2, -GOLDEN2, GOLDENINV22, GOLDEN2 },
+ { GOLDEN2, -GOLDEN2, GOLDENINV22, GOLDEN2 },
+ { -GOLDEN2, GOLDEN2, GOLDENINV22, GOLDEN2 },
+ { GOLDEN2, GOLDEN2, GOLDENINV22, GOLDEN2 },
+ { -SQRT2INV, -SQRT2, GOLDENINV2, GOLDEN2 },
+ { SQRT2INV, -SQRT2, GOLDENINV2, GOLDEN2 },
+ { -SQRT5OVER2, 0.0, GOLDENINV2, GOLDEN2 },
+ { SQRT5OVER2, 0.0, GOLDENINV2, GOLDEN2 },
+ { -SQRT2INV, SQRT2, GOLDENINV2, GOLDEN2 },
+ { SQRT2INV, SQRT2, GOLDENINV2, GOLDEN2 },
+ { -SQRT2, -GOLDENINV2, SQRT2INV, GOLDEN2 },
+ { SQRT2, -GOLDENINV2, SQRT2INV, GOLDEN2 },
+ { -SQRT2, GOLDENINV2, SQRT2INV, GOLDEN2 },
+ { SQRT2, GOLDENINV2, SQRT2INV, GOLDEN2 },
+ { -GOLDENINV22, -GOLDEN2, GOLDEN2, GOLDEN2 },
+ { GOLDENINV22, -GOLDEN2, GOLDEN2, GOLDEN2 },
+ { -GOLDEN2, -GOLDENINV22, GOLDEN2, GOLDEN2 },
+ { GOLDEN2, -GOLDENINV22, GOLDEN2, GOLDEN2 },
+ { -GOLDEN2, GOLDENINV22, GOLDEN2, GOLDEN2 },
+ { GOLDEN2, GOLDENINV22, GOLDEN2, GOLDEN2 },
+ { -GOLDENINV22, GOLDEN2, GOLDEN2, GOLDEN2 },
+ { GOLDENINV22, GOLDEN2, GOLDEN2, GOLDEN2 },
+ { -GOLDENINV2, -SQRT2INV, SQRT2, GOLDEN2 },
+ { GOLDENINV2, -SQRT2INV, SQRT2, GOLDEN2 },
+ { -GOLDENINV2, SQRT2INV, SQRT2, GOLDEN2 },
+ { GOLDENINV2, SQRT2INV, SQRT2, GOLDEN2 },
+ { 0.0, -GOLDENINV2, SQRT5OVER2, GOLDEN2 },
+ { 0.0, GOLDENINV2, SQRT5OVER2, GOLDEN2 },
+ { 0.0, 0.0, -SQRT2, SQRT2 },
+ { -SQRT2INV, -GOLDENINV2, -GOLDEN2, SQRT2 },
+ { SQRT2INV, -GOLDENINV2, -GOLDEN2, SQRT2 },
+ { -SQRT2INV, GOLDENINV2, -GOLDEN2, SQRT2 },
+ { SQRT2INV, GOLDENINV2, -GOLDEN2, SQRT2 },
+ { -GOLDENINV2, -GOLDEN2, -SQRT2INV, SQRT2 },
+ { GOLDENINV2, -GOLDEN2, -SQRT2INV, SQRT2 },
+ { -GOLDENINV2, GOLDEN2, -SQRT2INV, SQRT2 },
+ { GOLDENINV2, GOLDEN2, -SQRT2INV, SQRT2 },
+ { -GOLDEN2, -SQRT2INV, -GOLDENINV2, SQRT2 },
+ { GOLDEN2, -SQRT2INV, -GOLDENINV2, SQRT2 },
+ { -GOLDEN2, SQRT2INV, -GOLDENINV2, SQRT2 },
+ { GOLDEN2, SQRT2INV, -GOLDENINV2, SQRT2 },
+ { 0.0, -SQRT2, 0.0, SQRT2 },
+ { -SQRT2, 0.0, 0.0, SQRT2 },
+ { SQRT2, 0.0, 0.0, SQRT2 },
+ { 0.0, SQRT2, 0.0, SQRT2 },
+ { -GOLDEN2, -SQRT2INV, GOLDENINV2, SQRT2 },
+ { GOLDEN2, -SQRT2INV, GOLDENINV2, SQRT2 },
+ { -GOLDEN2, SQRT2INV, GOLDENINV2, SQRT2 },
+ { GOLDEN2, SQRT2INV, GOLDENINV2, SQRT2 },
+ { -GOLDENINV2, -GOLDEN2, SQRT2INV, SQRT2 },
+ { GOLDENINV2, -GOLDEN2, SQRT2INV, SQRT2 },
+ { -GOLDENINV2, GOLDEN2, SQRT2INV, SQRT2 },
+ { GOLDENINV2, GOLDEN2, SQRT2INV, SQRT2 },
+ { -SQRT2INV, -GOLDENINV2, GOLDEN2, SQRT2 },
+ { SQRT2INV, -GOLDENINV2, GOLDEN2, SQRT2 },
+ { -SQRT2INV, GOLDENINV2, GOLDEN2, SQRT2 },
+ { SQRT2INV, GOLDENINV2, GOLDEN2, SQRT2 },
+ { 0.0, 0.0, SQRT2, SQRT2 },
+ { -GOLDENINV2, 0.0, -GOLDEN2, SQRT5OVER2 },
+ { GOLDENINV2, 0.0, -GOLDEN2, SQRT5OVER2 },
+ { -SQRT2INV, -SQRT2INV, -SQRT2INV, SQRT5OVER2 },
+ { SQRT2INV, -SQRT2INV, -SQRT2INV, SQRT5OVER2 },
+ { -SQRT2INV, SQRT2INV, -SQRT2INV, SQRT5OVER2 },
+ { SQRT2INV, SQRT2INV, -SQRT2INV, SQRT5OVER2 },
+ { 0.0, -GOLDEN2, -GOLDENINV2, SQRT5OVER2 },
+ { 0.0, GOLDEN2, -GOLDENINV2, SQRT5OVER2 },
+ { -GOLDEN2, -GOLDENINV2, 0.0, SQRT5OVER2 },
+ { GOLDEN2, -GOLDENINV2, 0.0, SQRT5OVER2 },
+ { -GOLDEN2, GOLDENINV2, 0.0, SQRT5OVER2 },
+ { GOLDEN2, GOLDENINV2, 0.0, SQRT5OVER2 },
+ { 0.0, -GOLDEN2, GOLDENINV2, SQRT5OVER2 },
+ { 0.0, GOLDEN2, GOLDENINV2, SQRT5OVER2 },
+ { -SQRT2INV, -SQRT2INV, SQRT2INV, SQRT5OVER2 },
+ { SQRT2INV, -SQRT2INV, SQRT2INV, SQRT5OVER2 },
+ { -SQRT2INV, SQRT2INV, SQRT2INV, SQRT5OVER2 },
+ { SQRT2INV, SQRT2INV, SQRT2INV, SQRT5OVER2 },
+ { -GOLDENINV2, 0.0, GOLDEN2, SQRT5OVER2 },
+ { GOLDENINV2, 0.0, GOLDEN2, SQRT5OVER2 },
+ { -GOLDENINV22, 0.0, -SQRT2INV, GOLDEN22 },
+ { GOLDENINV22, 0.0, -SQRT2INV, GOLDEN22 },
+ { -GOLDENINV2, -GOLDENINV2, -GOLDENINV2, GOLDEN22 },
+ { GOLDENINV2, -GOLDENINV2, -GOLDENINV2, GOLDEN22 },
+ { -GOLDENINV2, GOLDENINV2, -GOLDENINV2, GOLDEN22 },
+ { GOLDENINV2, GOLDENINV2, -GOLDENINV2, GOLDEN22 },
+ { 0.0, -SQRT2INV, -GOLDENINV22, GOLDEN22 },
+ { 0.0, SQRT2INV, -GOLDENINV22, GOLDEN22 },
+ { -SQRT2INV, -GOLDENINV22, 0.0, GOLDEN22 },
+ { SQRT2INV, -GOLDENINV22, 0.0, GOLDEN22 },
+ { -SQRT2INV, GOLDENINV22, 0.0, GOLDEN22 },
+ { SQRT2INV, GOLDENINV22, 0.0, GOLDEN22 },
+ { 0.0, -SQRT2INV, GOLDENINV22, GOLDEN22 },
+ { 0.0, SQRT2INV, GOLDENINV22, GOLDEN22 },
+ { -GOLDENINV2, -GOLDENINV2, GOLDENINV2, GOLDEN22 },
+ { GOLDENINV2, -GOLDENINV2, GOLDENINV2, GOLDEN22 },
+ { -GOLDENINV2, GOLDENINV2, GOLDENINV2, GOLDEN22 },
+ { GOLDENINV2, GOLDENINV2, GOLDENINV2, GOLDEN22 },
+ { -GOLDENINV22, 0.0, SQRT2INV, GOLDEN22 },
+ { GOLDENINV22, 0.0, SQRT2INV, GOLDEN22 }
+};
+
+static const int edge_120[NUM_EDGE_120][2] = {
+ { 0, 1 }, { 0, 2 }, { 0, 4 }, { 0, 20 }, { 1, 3 },
+ { 1, 5 }, { 1, 21 }, { 2, 6 }, { 2, 8 }, { 2, 22 },
+ { 3, 6 }, { 3, 9 }, { 3, 23 }, { 4, 7 }, { 4, 10 },
+ { 4, 24 }, { 5, 7 }, { 5, 11 }, { 5, 25 }, { 6, 12 },
+ { 6, 26 }, { 7, 13 }, { 7, 27 }, { 8, 10 }, { 8, 14 },
+ { 8, 28 }, { 9, 11 }, { 9, 15 }, { 9, 29 }, { 10, 16 },
+ { 10, 30 }, { 11, 17 }, { 11, 31 }, { 12, 14 }, { 12, 15 },
+ { 12, 32 }, { 13, 16 }, { 13, 17 }, { 13, 33 }, { 14, 18 },
+ { 14, 34 }, { 15, 19 }, { 15, 35 }, { 16, 18 }, { 16, 36 },
+ { 17, 19 }, { 17, 37 }, { 18, 19 }, { 18, 38 }, { 19, 39 },
+ { 20, 40 }, { 20, 41 }, { 20, 43 }, { 21, 40 }, { 21, 42 },
+ { 21, 44 }, { 22, 41 }, { 22, 45 }, { 22, 49 }, { 23, 42 },
+ { 23, 46 }, { 23, 50 }, { 24, 43 }, { 24, 47 }, { 24, 51 },
+ { 25, 44 }, { 25, 48 }, { 25, 52 }, { 26, 45 }, { 26, 46 },
+ { 26, 53 }, { 27, 47 }, { 27, 48 }, { 27, 56 }, { 28, 49 },
+ { 28, 54 }, { 28, 57 }, { 29, 50 }, { 29, 55 }, { 29, 58 },
+ { 30, 51 }, { 30, 54 }, { 30, 59 }, { 31, 52 }, { 31, 55 },
+ { 31, 60 }, { 32, 53 }, { 32, 61 }, { 32, 62 }, { 33, 56 },
+ { 33, 63 }, { 33, 64 }, { 34, 57 }, { 34, 61 }, { 34, 65 },
+ { 35, 58 }, { 35, 62 }, { 35, 66 }, { 36, 59 }, { 36, 63 },
+ { 36, 67 }, { 37, 60 }, { 37, 64 }, { 37, 68 }, { 38, 65 },
+ { 38, 67 }, { 38, 69 }, { 39, 66 }, { 39, 68 }, { 39, 69 },
+ { 40, 70 }, { 40, 71 }, { 41, 72 }, { 41, 78 }, { 42, 73 },
+ { 42, 79 }, { 43, 74 }, { 43, 80 }, { 44, 75 }, { 44, 81 },
+ { 45, 76 }, { 45, 88 }, { 46, 77 }, { 46, 89 }, { 47, 82 },
+ { 47, 92 }, { 48, 83 }, { 48, 93 }, { 49, 84 }, { 49, 94 },
+ { 50, 85 }, { 50, 95 }, { 51, 86 }, { 51, 96 }, { 52, 87 },
+ { 52, 97 }, { 53, 98 }, { 53, 99 }, { 54, 90 }, { 54, 108 },
+ { 55, 91 }, { 55, 109 }, { 56, 100 }, { 56, 101 }, { 57, 102 },
+ { 57, 112 }, { 58, 103 }, { 58, 113 }, { 59, 104 }, { 59, 114 },
+ { 60, 105 }, { 60, 115 }, { 61, 106 }, { 61, 116 }, { 62, 107 },
+ { 62, 117 }, { 63, 110 }, { 63, 122 }, { 64, 111 }, { 64, 123 },
+ { 65, 118 }, { 65, 124 }, { 66, 119 }, { 66, 125 }, { 67, 120 },
+ { 67, 126 }, { 68, 121 }, { 68, 127 }, { 69, 128 }, { 69, 129 },
+ { 70, 72 }, { 70, 73 }, { 70, 130 }, { 71, 74 }, { 71, 75 },
+ { 71, 131 }, { 72, 76 }, { 72, 132 }, { 73, 77 }, { 73, 133 },
+ { 74, 82 }, { 74, 134 }, { 75, 83 }, { 75, 135 }, { 76, 77 },
+ { 76, 140 }, { 77, 141 }, { 78, 80 }, { 78, 84 }, { 78, 136 },
+ { 79, 81 }, { 79, 85 }, { 79, 137 }, { 80, 86 }, { 80, 138 },
+ { 81, 87 }, { 81, 139 }, { 82, 83 }, { 82, 142 }, { 83, 143 },
+ { 84, 90 }, { 84, 146 }, { 85, 91 }, { 85, 147 }, { 86, 90 },
+ { 86, 148 }, { 87, 91 }, { 87, 149 }, { 88, 94 }, { 88, 98 },
+ { 88, 144 }, { 89, 95 }, { 89, 99 }, { 89, 145 }, { 90, 156 },
+ { 91, 157 }, { 92, 96 }, { 92, 100 }, { 92, 150 }, { 93, 97 },
+ { 93, 101 }, { 93, 151 }, { 94, 102 }, { 94, 152 }, { 95, 103 },
+ { 95, 153 }, { 96, 104 }, { 96, 154 }, { 97, 105 }, { 97, 155 },
+ { 98, 106 }, { 98, 158 }, { 99, 107 }, { 99, 159 }, { 100, 110 },
+ { 100, 160 }, { 101, 111 }, { 101, 161 }, { 102, 106 }, { 102, 164 },
+ { 103, 107 }, { 103, 165 }, { 104, 110 }, { 104, 166 }, { 105, 111 },
+ { 105, 167 }, { 106, 168 }, { 107, 169 }, { 108, 112 }, { 108, 114 },
+ { 108, 162 }, { 109, 113 }, { 109, 115 }, { 109, 163 }, { 110, 174 },
+ { 111, 175 }, { 112, 118 }, { 112, 170 }, { 113, 119 }, { 113, 171 },
+ { 114, 120 }, { 114, 172 }, { 115, 121 }, { 115, 173 }, { 116, 117 },
+ { 116, 124 }, { 116, 176 }, { 117, 125 }, { 117, 177 }, { 118, 120 },
+ { 118, 180 }, { 119, 121 }, { 119, 181 }, { 120, 182 }, { 121, 183 },
+ { 122, 123 }, { 122, 126 }, { 122, 178 }, { 123, 127 }, { 123, 179 },
+ { 124, 128 }, { 124, 184 }, { 125, 128 }, { 125, 185 }, { 126, 129 },
+ { 126, 186 }, { 127, 129 }, { 127, 187 }, { 128, 188 }, { 129, 189 },
+ { 130, 131 }, { 130, 190 }, { 130, 191 }, { 131, 192 }, { 131, 193 },
+ { 132, 136 }, { 132, 190 }, { 132, 196 }, { 133, 137 }, { 133, 191 },
+ { 133, 197 }, { 134, 138 }, { 134, 192 }, { 134, 198 }, { 135, 139 },
+ { 135, 193 }, { 135, 199 }, { 136, 194 }, { 136, 201 }, { 137, 195 },
+ { 137, 202 }, { 138, 194 }, { 138, 203 }, { 139, 195 }, { 139, 204 },
+ { 140, 144 }, { 140, 196 }, { 140, 200 }, { 141, 145 }, { 141, 197 },
+ { 141, 200 }, { 142, 150 }, { 142, 198 }, { 142, 205 }, { 143, 151 },
+ { 143, 199 }, { 143, 205 }, { 144, 206 }, { 144, 210 }, { 145, 207 },
+ { 145, 211 }, { 146, 152 }, { 146, 201 }, { 146, 212 }, { 147, 153 },
+ { 147, 202 }, { 147, 213 }, { 148, 154 }, { 148, 203 }, { 148, 214 },
+ { 149, 155 }, { 149, 204 }, { 149, 215 }, { 150, 208 }, { 150, 216 },
+ { 151, 209 }, { 151, 217 }, { 152, 206 }, { 152, 218 }, { 153, 207 },
+ { 153, 219 }, { 154, 208 }, { 154, 220 }, { 155, 209 }, { 155, 221 },
+ { 156, 162 }, { 156, 212 }, { 156, 214 }, { 157, 163 }, { 157, 213 },
+ { 157, 215 }, { 158, 159 }, { 158, 210 }, { 158, 222 }, { 159, 211 },
+ { 159, 223 }, { 160, 161 }, { 160, 216 }, { 160, 228 }, { 161, 217 },
+ { 161, 229 }, { 162, 224 }, { 162, 226 }, { 163, 225 }, { 163, 227 },
+ { 164, 170 }, { 164, 218 }, { 164, 230 }, { 165, 171 }, { 165, 219 },
+ { 165, 231 }, { 166, 172 }, { 166, 220 }, { 166, 232 }, { 167, 173 },
+ { 167, 221 }, { 167, 233 }, { 168, 176 }, { 168, 222 }, { 168, 230 },
+ { 169, 177 }, { 169, 223 }, { 169, 231 }, { 170, 224 }, { 170, 235 },
+ { 171, 225 }, { 171, 236 }, { 172, 226 }, { 172, 237 }, { 173, 227 },
+ { 173, 238 }, { 174, 178 }, { 174, 228 }, { 174, 232 }, { 175, 179 },
+ { 175, 229 }, { 175, 233 }, { 176, 234 }, { 176, 240 }, { 177, 234 },
+ { 177, 241 }, { 178, 239 }, { 178, 242 }, { 179, 239 }, { 179, 243 },
+ { 180, 184 }, { 180, 235 }, { 180, 244 }, { 181, 185 }, { 181, 236 },
+ { 181, 245 }, { 182, 186 }, { 182, 237 }, { 182, 244 }, { 183, 187 },
+ { 183, 238 }, { 183, 245 }, { 184, 240 }, { 184, 246 }, { 185, 241 },
+ { 185, 247 }, { 186, 242 }, { 186, 248 }, { 187, 243 }, { 187, 249 },
+ { 188, 189 }, { 188, 246 }, { 188, 247 }, { 189, 248 }, { 189, 249 },
+ { 190, 250 }, { 190, 270 }, { 191, 251 }, { 191, 271 }, { 192, 250 },
+ { 192, 272 }, { 193, 251 }, { 193, 273 }, { 194, 250 }, { 194, 279 },
+ { 195, 251 }, { 195, 280 }, { 196, 252 }, { 196, 274 }, { 197, 253 },
+ { 197, 275 }, { 198, 254 }, { 198, 276 }, { 199, 255 }, { 199, 277 },
+ { 200, 256 }, { 200, 278 }, { 201, 252 }, { 201, 282 }, { 202, 253 },
+ { 202, 283 }, { 203, 254 }, { 203, 284 }, { 204, 255 }, { 204, 285 },
+ { 205, 257 }, { 205, 281 }, { 206, 252 }, { 206, 290 }, { 207, 253 },
+ { 207, 291 }, { 208, 254 }, { 208, 292 }, { 209, 255 }, { 209, 293 },
+ { 210, 256 }, { 210, 294 }, { 211, 256 }, { 211, 295 }, { 212, 258 },
+ { 212, 286 }, { 213, 259 }, { 213, 287 }, { 214, 260 }, { 214, 288 },
+ { 215, 261 }, { 215, 289 }, { 216, 257 }, { 216, 296 }, { 217, 257 },
+ { 217, 297 }, { 218, 258 }, { 218, 298 }, { 219, 259 }, { 219, 299 },
+ { 220, 260 }, { 220, 300 }, { 221, 261 }, { 221, 301 }, { 222, 262 },
+ { 222, 302 }, { 223, 262 }, { 223, 303 }, { 224, 258 }, { 224, 310 },
+ { 225, 259 }, { 225, 311 }, { 226, 260 }, { 226, 312 }, { 227, 261 },
+ { 227, 313 }, { 228, 263 }, { 228, 304 }, { 229, 263 }, { 229, 305 },
+ { 230, 264 }, { 230, 306 }, { 231, 265 }, { 231, 307 }, { 232, 266 },
+ { 232, 308 }, { 233, 267 }, { 233, 309 }, { 234, 262 }, { 234, 318 },
+ { 235, 264 }, { 235, 314 }, { 236, 265 }, { 236, 315 }, { 237, 266 },
+ { 237, 316 }, { 238, 267 }, { 238, 317 }, { 239, 263 }, { 239, 321 },
+ { 240, 264 }, { 240, 322 }, { 241, 265 }, { 241, 323 }, { 242, 266 },
+ { 242, 324 }, { 243, 267 }, { 243, 325 }, { 244, 268 }, { 244, 319 },
+ { 245, 269 }, { 245, 320 }, { 246, 268 }, { 246, 326 }, { 247, 269 },
+ { 247, 327 }, { 248, 268 }, { 248, 328 }, { 249, 269 }, { 249, 329 },
+ { 250, 330 }, { 251, 331 }, { 252, 332 }, { 253, 333 }, { 254, 334 },
+ { 255, 335 }, { 256, 336 }, { 257, 337 }, { 258, 338 }, { 259, 339 },
+ { 260, 340 }, { 261, 341 }, { 262, 342 }, { 263, 343 }, { 264, 344 },
+ { 265, 345 }, { 266, 346 }, { 267, 347 }, { 268, 348 }, { 269, 349 },
+ { 270, 271 }, { 270, 274 }, { 270, 350 }, { 271, 275 }, { 271, 351 },
+ { 272, 273 }, { 272, 276 }, { 272, 352 }, { 273, 277 }, { 273, 353 },
+ { 274, 278 }, { 274, 356 }, { 275, 278 }, { 275, 357 }, { 276, 281 },
+ { 276, 358 }, { 277, 281 }, { 277, 359 }, { 278, 360 }, { 279, 282 },
+ { 279, 284 }, { 279, 354 }, { 280, 283 }, { 280, 285 }, { 280, 355 },
+ { 281, 365 }, { 282, 286 }, { 282, 361 }, { 283, 287 }, { 283, 362 },
+ { 284, 288 }, { 284, 363 }, { 285, 289 }, { 285, 364 }, { 286, 288 },
+ { 286, 372 }, { 287, 289 }, { 287, 373 }, { 288, 374 }, { 289, 375 },
+ { 290, 294 }, { 290, 298 }, { 290, 366 }, { 291, 295 }, { 291, 299 },
+ { 291, 367 }, { 292, 296 }, { 292, 300 }, { 292, 368 }, { 293, 297 },
+ { 293, 301 }, { 293, 369 }, { 294, 302 }, { 294, 370 }, { 295, 303 },
+ { 295, 371 }, { 296, 304 }, { 296, 376 }, { 297, 305 }, { 297, 377 },
+ { 298, 306 }, { 298, 378 }, { 299, 307 }, { 299, 379 }, { 300, 308 },
+ { 300, 380 }, { 301, 309 }, { 301, 381 }, { 302, 306 }, { 302, 382 },
+ { 303, 307 }, { 303, 383 }, { 304, 308 }, { 304, 388 }, { 305, 309 },
+ { 305, 389 }, { 306, 390 }, { 307, 391 }, { 308, 392 }, { 309, 393 },
+ { 310, 312 }, { 310, 314 }, { 310, 384 }, { 311, 313 }, { 311, 315 },
+ { 311, 385 }, { 312, 316 }, { 312, 386 }, { 313, 317 }, { 313, 387 },
+ { 314, 319 }, { 314, 395 }, { 315, 320 }, { 315, 396 }, { 316, 319 },
+ { 316, 397 }, { 317, 320 }, { 317, 398 }, { 318, 322 }, { 318, 323 },
+ { 318, 394 }, { 319, 404 }, { 320, 405 }, { 321, 324 }, { 321, 325 },
+ { 321, 399 }, { 322, 326 }, { 322, 400 }, { 323, 327 }, { 323, 401 },
+ { 324, 328 }, { 324, 402 }, { 325, 329 }, { 325, 403 }, { 326, 327 },
+ { 326, 406 }, { 327, 407 }, { 328, 329 }, { 328, 408 }, { 329, 409 },
+ { 330, 350 }, { 330, 352 }, { 330, 354 }, { 331, 351 }, { 331, 353 },
+ { 331, 355 }, { 332, 356 }, { 332, 361 }, { 332, 366 }, { 333, 357 },
+ { 333, 362 }, { 333, 367 }, { 334, 358 }, { 334, 363 }, { 334, 368 },
+ { 335, 359 }, { 335, 364 }, { 335, 369 }, { 336, 360 }, { 336, 370 },
+ { 336, 371 }, { 337, 365 }, { 337, 376 }, { 337, 377 }, { 338, 372 },
+ { 338, 378 }, { 338, 384 }, { 339, 373 }, { 339, 379 }, { 339, 385 },
+ { 340, 374 }, { 340, 380 }, { 340, 386 }, { 341, 375 }, { 341, 381 },
+ { 341, 387 }, { 342, 382 }, { 342, 383 }, { 342, 394 }, { 343, 388 },
+ { 343, 389 }, { 343, 399 }, { 344, 390 }, { 344, 395 }, { 344, 400 },
+ { 345, 391 }, { 345, 396 }, { 345, 401 }, { 346, 392 }, { 346, 397 },
+ { 346, 402 }, { 347, 393 }, { 347, 398 }, { 347, 403 }, { 348, 404 },
+ { 348, 406 }, { 348, 408 }, { 349, 405 }, { 349, 407 }, { 349, 409 },
+ { 350, 410 }, { 350, 412 }, { 351, 410 }, { 351, 413 }, { 352, 411 },
+ { 352, 414 }, { 353, 411 }, { 353, 415 }, { 354, 416 }, { 354, 418 },
+ { 355, 417 }, { 355, 419 }, { 356, 412 }, { 356, 420 }, { 357, 413 },
+ { 357, 421 }, { 358, 414 }, { 358, 422 }, { 359, 415 }, { 359, 423 },
+ { 360, 420 }, { 360, 421 }, { 361, 416 }, { 361, 426 }, { 362, 417 },
+ { 362, 427 }, { 363, 418 }, { 363, 428 }, { 364, 419 }, { 364, 429 },
+ { 365, 422 }, { 365, 423 }, { 366, 424 }, { 366, 432 }, { 367, 425 },
+ { 367, 433 }, { 368, 430 }, { 368, 434 }, { 369, 431 }, { 369, 435 },
+ { 370, 424 }, { 370, 438 }, { 371, 425 }, { 371, 439 }, { 372, 426 },
+ { 372, 436 }, { 373, 427 }, { 373, 437 }, { 374, 428 }, { 374, 436 },
+ { 375, 429 }, { 375, 437 }, { 376, 430 }, { 376, 440 }, { 377, 431 },
+ { 377, 441 }, { 378, 432 }, { 378, 444 }, { 379, 433 }, { 379, 445 },
+ { 380, 434 }, { 380, 446 }, { 381, 435 }, { 381, 447 }, { 382, 438 },
+ { 382, 448 }, { 383, 439 }, { 383, 449 }, { 384, 442 }, { 384, 450 },
+ { 385, 443 }, { 385, 451 }, { 386, 442 }, { 386, 452 }, { 387, 443 },
+ { 387, 453 }, { 388, 440 }, { 388, 454 }, { 389, 441 }, { 389, 455 },
+ { 390, 444 }, { 390, 448 }, { 391, 445 }, { 391, 449 }, { 392, 446 },
+ { 392, 454 }, { 393, 447 }, { 393, 455 }, { 394, 456 }, { 394, 457 },
+ { 395, 450 }, { 395, 460 }, { 396, 451 }, { 396, 461 }, { 397, 452 },
+ { 397, 462 }, { 398, 453 }, { 398, 463 }, { 399, 458 }, { 399, 459 },
+ { 400, 456 }, { 400, 464 }, { 401, 457 }, { 401, 465 }, { 402, 458 },
+ { 402, 466 }, { 403, 459 }, { 403, 467 }, { 404, 460 }, { 404, 462 },
+ { 405, 461 }, { 405, 463 }, { 406, 464 }, { 406, 468 }, { 407, 465 },
+ { 407, 468 }, { 408, 466 }, { 408, 469 }, { 409, 467 }, { 409, 469 },
+ { 410, 411 }, { 410, 470 }, { 411, 471 }, { 412, 416 }, { 412, 472 },
+ { 413, 417 }, { 413, 473 }, { 414, 418 }, { 414, 474 }, { 415, 419 },
+ { 415, 475 }, { 416, 478 }, { 417, 479 }, { 418, 480 }, { 419, 481 },
+ { 420, 424 }, { 420, 476 }, { 421, 425 }, { 421, 477 }, { 422, 430 },
+ { 422, 482 }, { 423, 431 }, { 423, 483 }, { 424, 488 }, { 425, 489 },
+ { 426, 432 }, { 426, 484 }, { 427, 433 }, { 427, 485 }, { 428, 434 },
+ { 428, 486 }, { 429, 435 }, { 429, 487 }, { 430, 492 }, { 431, 493 },
+ { 432, 494 }, { 433, 495 }, { 434, 496 }, { 435, 497 }, { 436, 442 },
+ { 436, 490 }, { 437, 443 }, { 437, 491 }, { 438, 439 }, { 438, 498 },
+ { 439, 499 }, { 440, 441 }, { 440, 500 }, { 441, 501 }, { 442, 508 },
+ { 443, 509 }, { 444, 450 }, { 444, 502 }, { 445, 451 }, { 445, 503 },
+ { 446, 452 }, { 446, 504 }, { 447, 453 }, { 447, 505 }, { 448, 456 },
+ { 448, 506 }, { 449, 457 }, { 449, 507 }, { 450, 512 }, { 451, 513 },
+ { 452, 514 }, { 453, 515 }, { 454, 458 }, { 454, 510 }, { 455, 459 },
+ { 455, 511 }, { 456, 516 }, { 457, 517 }, { 458, 522 }, { 459, 523 },
+ { 460, 464 }, { 460, 518 }, { 461, 465 }, { 461, 519 }, { 462, 466 },
+ { 462, 520 }, { 463, 467 }, { 463, 521 }, { 464, 524 }, { 465, 525 },
+ { 466, 526 }, { 467, 527 }, { 468, 469 }, { 468, 528 }, { 469, 529 },
+ { 470, 472 }, { 470, 473 }, { 470, 530 }, { 471, 474 }, { 471, 475 },
+ { 471, 530 }, { 472, 476 }, { 472, 531 }, { 473, 477 }, { 473, 532 },
+ { 474, 482 }, { 474, 533 }, { 475, 483 }, { 475, 534 }, { 476, 477 },
+ { 476, 535 }, { 477, 536 }, { 478, 480 }, { 478, 484 }, { 478, 531 },
+ { 479, 481 }, { 479, 485 }, { 479, 532 }, { 480, 486 }, { 480, 533 },
+ { 481, 487 }, { 481, 534 }, { 482, 483 }, { 482, 537 }, { 483, 538 },
+ { 484, 490 }, { 484, 539 }, { 485, 491 }, { 485, 540 }, { 486, 490 },
+ { 486, 541 }, { 487, 491 }, { 487, 542 }, { 488, 494 }, { 488, 498 },
+ { 488, 535 }, { 489, 495 }, { 489, 499 }, { 489, 536 }, { 490, 544 },
+ { 491, 545 }, { 492, 496 }, { 492, 500 }, { 492, 537 }, { 493, 497 },
+ { 493, 501 }, { 493, 538 }, { 494, 502 }, { 494, 539 }, { 495, 503 },
+ { 495, 540 }, { 496, 504 }, { 496, 541 }, { 497, 505 }, { 497, 542 },
+ { 498, 506 }, { 498, 543 }, { 499, 507 }, { 499, 543 }, { 500, 510 },
+ { 500, 546 }, { 501, 511 }, { 501, 546 }, { 502, 506 }, { 502, 547 },
+ { 503, 507 }, { 503, 548 }, { 504, 510 }, { 504, 549 }, { 505, 511 },
+ { 505, 550 }, { 506, 551 }, { 507, 552 }, { 508, 512 }, { 508, 514 },
+ { 508, 544 }, { 509, 513 }, { 509, 515 }, { 509, 545 }, { 510, 553 },
+ { 511, 554 }, { 512, 518 }, { 512, 547 }, { 513, 519 }, { 513, 548 },
+ { 514, 520 }, { 514, 549 }, { 515, 521 }, { 515, 550 }, { 516, 517 },
+ { 516, 524 }, { 516, 551 }, { 517, 525 }, { 517, 552 }, { 518, 520 },
+ { 518, 555 }, { 519, 521 }, { 519, 556 }, { 520, 557 }, { 521, 558 },
+ { 522, 523 }, { 522, 526 }, { 522, 553 }, { 523, 527 }, { 523, 554 },
+ { 524, 528 }, { 524, 555 }, { 525, 528 }, { 525, 556 }, { 526, 529 },
+ { 526, 557 }, { 527, 529 }, { 527, 558 }, { 528, 559 }, { 529, 559 },
+ { 530, 560 }, { 530, 561 }, { 531, 560 }, { 531, 562 }, { 532, 561 },
+ { 532, 563 }, { 533, 560 }, { 533, 564 }, { 534, 561 }, { 534, 565 },
+ { 535, 562 }, { 535, 566 }, { 536, 563 }, { 536, 566 }, { 537, 564 },
+ { 537, 567 }, { 538, 565 }, { 538, 567 }, { 539, 562 }, { 539, 568 },
+ { 540, 563 }, { 540, 569 }, { 541, 564 }, { 541, 570 }, { 542, 565 },
+ { 542, 571 }, { 543, 566 }, { 543, 572 }, { 544, 568 }, { 544, 570 },
+ { 545, 569 }, { 545, 571 }, { 546, 567 }, { 546, 573 }, { 547, 568 },
+ { 547, 574 }, { 548, 569 }, { 548, 575 }, { 549, 570 }, { 549, 576 },
+ { 550, 571 }, { 550, 577 }, { 551, 572 }, { 551, 574 }, { 552, 572 },
+ { 552, 575 }, { 553, 573 }, { 553, 576 }, { 554, 573 }, { 554, 577 },
+ { 555, 574 }, { 555, 578 }, { 556, 575 }, { 556, 579 }, { 557, 576 },
+ { 557, 578 }, { 558, 577 }, { 558, 579 }, { 559, 578 }, { 559, 579 },
+ { 560, 580 }, { 561, 581 }, { 562, 582 }, { 563, 583 }, { 564, 584 },
+ { 565, 585 }, { 566, 586 }, { 567, 587 }, { 568, 588 }, { 569, 589 },
+ { 570, 590 }, { 571, 591 }, { 572, 592 }, { 573, 593 }, { 574, 594 },
+ { 575, 595 }, { 576, 596 }, { 577, 597 }, { 578, 598 }, { 579, 599 },
+ { 580, 581 }, { 580, 582 }, { 580, 584 }, { 581, 583 }, { 581, 585 },
+ { 582, 586 }, { 582, 588 }, { 583, 586 }, { 583, 589 }, { 584, 587 },
+ { 584, 590 }, { 585, 587 }, { 585, 591 }, { 586, 592 }, { 587, 593 },
+ { 588, 590 }, { 588, 594 }, { 589, 591 }, { 589, 595 }, { 590, 596 },
+ { 591, 597 }, { 592, 594 }, { 592, 595 }, { 593, 596 }, { 593, 597 },
+ { 594, 598 }, { 595, 599 }, { 596, 598 }, { 597, 599 }, { 598, 599 }
+};
+
+static const int face_120[NUM_FACE_120][VERT_PER_FACE_120] = {
+ { 0, 1, 3, 6, 2 }, { 0, 1, 5, 7, 4 },
+ { 0, 1, 21, 40, 20 }, { 0, 2, 8, 10, 4 },
+ { 0, 2, 22, 41, 20 }, { 0, 4, 24, 43, 20 },
+ { 1, 3, 9, 11, 5 }, { 1, 3, 23, 42, 21 },
+ { 1, 5, 25, 44, 21 }, { 2, 6, 12, 14, 8 },
+ { 2, 6, 26, 45, 22 }, { 2, 8, 28, 49, 22 },
+ { 3, 6, 12, 15, 9 }, { 3, 6, 26, 46, 23 },
+ { 3, 9, 29, 50, 23 }, { 4, 7, 13, 16, 10 },
+ { 4, 7, 27, 47, 24 }, { 4, 10, 30, 51, 24 },
+ { 5, 7, 13, 17, 11 }, { 5, 7, 27, 48, 25 },
+ { 5, 11, 31, 52, 25 }, { 6, 12, 32, 53, 26 },
+ { 7, 13, 33, 56, 27 }, { 8, 10, 16, 18, 14 },
+ { 8, 10, 30, 54, 28 }, { 8, 14, 34, 57, 28 },
+ { 9, 11, 17, 19, 15 }, { 9, 11, 31, 55, 29 },
+ { 9, 15, 35, 58, 29 }, { 10, 16, 36, 59, 30 },
+ { 11, 17, 37, 60, 31 }, { 12, 14, 18, 19, 15 },
+ { 12, 14, 34, 61, 32 }, { 12, 15, 35, 62, 32 },
+ { 13, 16, 18, 19, 17 }, { 13, 16, 36, 63, 33 },
+ { 13, 17, 37, 64, 33 }, { 14, 18, 38, 65, 34 },
+ { 15, 19, 39, 66, 35 }, { 16, 18, 38, 67, 36 },
+ { 17, 19, 39, 68, 37 }, { 18, 19, 39, 69, 38 },
+ { 20, 40, 70, 72, 41 }, { 20, 40, 71, 74, 43 },
+ { 20, 41, 78, 80, 43 }, { 21, 40, 70, 73, 42 },
+ { 21, 40, 71, 75, 44 }, { 21, 42, 79, 81, 44 },
+ { 22, 41, 72, 76, 45 }, { 22, 41, 78, 84, 49 },
+ { 22, 45, 88, 94, 49 }, { 23, 42, 73, 77, 46 },
+ { 23, 42, 79, 85, 50 }, { 23, 46, 89, 95, 50 },
+ { 24, 43, 74, 82, 47 }, { 24, 43, 80, 86, 51 },
+ { 24, 47, 92, 96, 51 }, { 25, 44, 75, 83, 48 },
+ { 25, 44, 81, 87, 52 }, { 25, 48, 93, 97, 52 },
+ { 26, 45, 76, 77, 46 }, { 26, 45, 88, 98, 53 },
+ { 26, 46, 89, 99, 53 }, { 27, 47, 82, 83, 48 },
+ { 27, 47, 92, 100, 56 }, { 27, 48, 93, 101, 56 },
+ { 28, 49, 84, 90, 54 }, { 28, 49, 94, 102, 57 },
+ { 28, 54, 108, 112, 57 }, { 29, 50, 85, 91, 55 },
+ { 29, 50, 95, 103, 58 }, { 29, 55, 109, 113, 58 },
+ { 30, 51, 86, 90, 54 }, { 30, 51, 96, 104, 59 },
+ { 30, 54, 108, 114, 59 }, { 31, 52, 87, 91, 55 },
+ { 31, 52, 97, 105, 60 }, { 31, 55, 109, 115, 60 },
+ { 32, 53, 98, 106, 61 }, { 32, 53, 99, 107, 62 },
+ { 32, 61, 116, 117, 62 }, { 33, 56, 100, 110, 63 },
+ { 33, 56, 101, 111, 64 }, { 33, 63, 122, 123, 64 },
+ { 34, 57, 102, 106, 61 }, { 34, 57, 112, 118, 65 },
+ { 34, 61, 116, 124, 65 }, { 35, 58, 103, 107, 62 },
+ { 35, 58, 113, 119, 66 }, { 35, 62, 117, 125, 66 },
+ { 36, 59, 104, 110, 63 }, { 36, 59, 114, 120, 67 },
+ { 36, 63, 122, 126, 67 }, { 37, 60, 105, 111, 64 },
+ { 37, 60, 115, 121, 68 }, { 37, 64, 123, 127, 68 },
+ { 38, 65, 118, 120, 67 }, { 38, 65, 124, 128, 69 },
+ { 38, 67, 126, 129, 69 }, { 39, 66, 119, 121, 68 },
+ { 39, 66, 125, 128, 69 }, { 39, 68, 127, 129, 69 },
+ { 40, 70, 130, 131, 71 }, { 41, 72, 132, 136, 78 },
+ { 42, 73, 133, 137, 79 }, { 43, 74, 134, 138, 80 },
+ { 44, 75, 135, 139, 81 }, { 45, 76, 140, 144, 88 },
+ { 46, 77, 141, 145, 89 }, { 47, 82, 142, 150, 92 },
+ { 48, 83, 143, 151, 93 }, { 49, 84, 146, 152, 94 },
+ { 50, 85, 147, 153, 95 }, { 51, 86, 148, 154, 96 },
+ { 52, 87, 149, 155, 97 }, { 53, 98, 158, 159, 99 },
+ { 54, 90, 156, 162, 108 }, { 55, 91, 157, 163, 109 },
+ { 56, 100, 160, 161, 101 }, { 57, 102, 164, 170, 112 },
+ { 58, 103, 165, 171, 113 }, { 59, 104, 166, 172, 114 },
+ { 60, 105, 167, 173, 115 }, { 61, 106, 168, 176, 116 },
+ { 62, 107, 169, 177, 117 }, { 63, 110, 174, 178, 122 },
+ { 64, 111, 175, 179, 123 }, { 65, 118, 180, 184, 124 },
+ { 66, 119, 181, 185, 125 }, { 67, 120, 182, 186, 126 },
+ { 68, 121, 183, 187, 127 }, { 69, 128, 188, 189, 129 },
+ { 70, 72, 76, 77, 73 }, { 70, 72, 132, 190, 130 },
+ { 70, 73, 133, 191, 130 }, { 71, 74, 82, 83, 75 },
+ { 71, 74, 134, 192, 131 }, { 71, 75, 135, 193, 131 },
+ { 72, 76, 140, 196, 132 }, { 73, 77, 141, 197, 133 },
+ { 74, 82, 142, 198, 134 }, { 75, 83, 143, 199, 135 },
+ { 76, 77, 141, 200, 140 }, { 78, 80, 86, 90, 84 },
+ { 78, 80, 138, 194, 136 }, { 78, 84, 146, 201, 136 },
+ { 79, 81, 87, 91, 85 }, { 79, 81, 139, 195, 137 },
+ { 79, 85, 147, 202, 137 }, { 80, 86, 148, 203, 138 },
+ { 81, 87, 149, 204, 139 }, { 82, 83, 143, 205, 142 },
+ { 84, 90, 156, 212, 146 }, { 85, 91, 157, 213, 147 },
+ { 86, 90, 156, 214, 148 }, { 87, 91, 157, 215, 149 },
+ { 88, 94, 102, 106, 98 }, { 88, 94, 152, 206, 144 },
+ { 88, 98, 158, 210, 144 }, { 89, 95, 103, 107, 99 },
+ { 89, 95, 153, 207, 145 }, { 89, 99, 159, 211, 145 },
+ { 92, 96, 104, 110, 100 }, { 92, 96, 154, 208, 150 },
+ { 92, 100, 160, 216, 150 }, { 93, 97, 105, 111, 101 },
+ { 93, 97, 155, 209, 151 }, { 93, 101, 161, 217, 151 },
+ { 94, 102, 164, 218, 152 }, { 95, 103, 165, 219, 153 },
+ { 96, 104, 166, 220, 154 }, { 97, 105, 167, 221, 155 },
+ { 98, 106, 168, 222, 158 }, { 99, 107, 169, 223, 159 },
+ { 100, 110, 174, 228, 160 }, { 101, 111, 175, 229, 161 },
+ { 102, 106, 168, 230, 164 }, { 103, 107, 169, 231, 165 },
+ { 104, 110, 174, 232, 166 }, { 105, 111, 175, 233, 167 },
+ { 108, 112, 118, 120, 114 }, { 108, 112, 170, 224, 162 },
+ { 108, 114, 172, 226, 162 }, { 109, 113, 119, 121, 115 },
+ { 109, 113, 171, 225, 163 }, { 109, 115, 173, 227, 163 },
+ { 112, 118, 180, 235, 170 }, { 113, 119, 181, 236, 171 },
+ { 114, 120, 182, 237, 172 }, { 115, 121, 183, 238, 173 },
+ { 116, 117, 125, 128, 124 }, { 116, 117, 177, 234, 176 },
+ { 116, 124, 184, 240, 176 }, { 117, 125, 185, 241, 177 },
+ { 118, 120, 182, 244, 180 }, { 119, 121, 183, 245, 181 },
+ { 122, 123, 127, 129, 126 }, { 122, 123, 179, 239, 178 },
+ { 122, 126, 186, 242, 178 }, { 123, 127, 187, 243, 179 },
+ { 124, 128, 188, 246, 184 }, { 125, 128, 188, 247, 185 },
+ { 126, 129, 189, 248, 186 }, { 127, 129, 189, 249, 187 },
+ { 130, 131, 192, 250, 190 }, { 130, 131, 193, 251, 191 },
+ { 130, 190, 270, 271, 191 }, { 131, 192, 272, 273, 193 },
+ { 132, 136, 194, 250, 190 }, { 132, 136, 201, 252, 196 },
+ { 132, 190, 270, 274, 196 }, { 133, 137, 195, 251, 191 },
+ { 133, 137, 202, 253, 197 }, { 133, 191, 271, 275, 197 },
+ { 134, 138, 194, 250, 192 }, { 134, 138, 203, 254, 198 },
+ { 134, 192, 272, 276, 198 }, { 135, 139, 195, 251, 193 },
+ { 135, 139, 204, 255, 199 }, { 135, 193, 273, 277, 199 },
+ { 136, 194, 279, 282, 201 }, { 137, 195, 280, 283, 202 },
+ { 138, 194, 279, 284, 203 }, { 139, 195, 280, 285, 204 },
+ { 140, 144, 206, 252, 196 }, { 140, 144, 210, 256, 200 },
+ { 140, 196, 274, 278, 200 }, { 141, 145, 207, 253, 197 },
+ { 141, 145, 211, 256, 200 }, { 141, 197, 275, 278, 200 },
+ { 142, 150, 208, 254, 198 }, { 142, 150, 216, 257, 205 },
+ { 142, 198, 276, 281, 205 }, { 143, 151, 209, 255, 199 },
+ { 143, 151, 217, 257, 205 }, { 143, 199, 277, 281, 205 },
+ { 144, 206, 290, 294, 210 }, { 145, 207, 291, 295, 211 },
+ { 146, 152, 206, 252, 201 }, { 146, 152, 218, 258, 212 },
+ { 146, 201, 282, 286, 212 }, { 147, 153, 207, 253, 202 },
+ { 147, 153, 219, 259, 213 }, { 147, 202, 283, 287, 213 },
+ { 148, 154, 208, 254, 203 }, { 148, 154, 220, 260, 214 },
+ { 148, 203, 284, 288, 214 }, { 149, 155, 209, 255, 204 },
+ { 149, 155, 221, 261, 215 }, { 149, 204, 285, 289, 215 },
+ { 150, 208, 292, 296, 216 }, { 151, 209, 293, 297, 217 },
+ { 152, 206, 290, 298, 218 }, { 153, 207, 291, 299, 219 },
+ { 154, 208, 292, 300, 220 }, { 155, 209, 293, 301, 221 },
+ { 156, 162, 224, 258, 212 }, { 156, 162, 226, 260, 214 },
+ { 156, 212, 286, 288, 214 }, { 157, 163, 225, 259, 213 },
+ { 157, 163, 227, 261, 215 }, { 157, 213, 287, 289, 215 },
+ { 158, 159, 211, 256, 210 }, { 158, 159, 223, 262, 222 },
+ { 158, 210, 294, 302, 222 }, { 159, 211, 295, 303, 223 },
+ { 160, 161, 217, 257, 216 }, { 160, 161, 229, 263, 228 },
+ { 160, 216, 296, 304, 228 }, { 161, 217, 297, 305, 229 },
+ { 162, 224, 310, 312, 226 }, { 163, 225, 311, 313, 227 },
+ { 164, 170, 224, 258, 218 }, { 164, 170, 235, 264, 230 },
+ { 164, 218, 298, 306, 230 }, { 165, 171, 225, 259, 219 },
+ { 165, 171, 236, 265, 231 }, { 165, 219, 299, 307, 231 },
+ { 166, 172, 226, 260, 220 }, { 166, 172, 237, 266, 232 },
+ { 166, 220, 300, 308, 232 }, { 167, 173, 227, 261, 221 },
+ { 167, 173, 238, 267, 233 }, { 167, 221, 301, 309, 233 },
+ { 168, 176, 234, 262, 222 }, { 168, 176, 240, 264, 230 },
+ { 168, 222, 302, 306, 230 }, { 169, 177, 234, 262, 223 },
+ { 169, 177, 241, 265, 231 }, { 169, 223, 303, 307, 231 },
+ { 170, 224, 310, 314, 235 }, { 171, 225, 311, 315, 236 },
+ { 172, 226, 312, 316, 237 }, { 173, 227, 313, 317, 238 },
+ { 174, 178, 239, 263, 228 }, { 174, 178, 242, 266, 232 },
+ { 174, 228, 304, 308, 232 }, { 175, 179, 239, 263, 229 },
+ { 175, 179, 243, 267, 233 }, { 175, 229, 305, 309, 233 },
+ { 176, 234, 318, 322, 240 }, { 177, 234, 318, 323, 241 },
+ { 178, 239, 321, 324, 242 }, { 179, 239, 321, 325, 243 },
+ { 180, 184, 240, 264, 235 }, { 180, 184, 246, 268, 244 },
+ { 180, 235, 314, 319, 244 }, { 181, 185, 241, 265, 236 },
+ { 181, 185, 247, 269, 245 }, { 181, 236, 315, 320, 245 },
+ { 182, 186, 242, 266, 237 }, { 182, 186, 248, 268, 244 },
+ { 182, 237, 316, 319, 244 }, { 183, 187, 243, 267, 238 },
+ { 183, 187, 249, 269, 245 }, { 183, 238, 317, 320, 245 },
+ { 184, 240, 322, 326, 246 }, { 185, 241, 323, 327, 247 },
+ { 186, 242, 324, 328, 248 }, { 187, 243, 325, 329, 249 },
+ { 188, 189, 248, 268, 246 }, { 188, 189, 249, 269, 247 },
+ { 188, 246, 326, 327, 247 }, { 189, 248, 328, 329, 249 },
+ { 190, 250, 330, 350, 270 }, { 191, 251, 331, 351, 271 },
+ { 192, 250, 330, 352, 272 }, { 193, 251, 331, 353, 273 },
+ { 194, 250, 330, 354, 279 }, { 195, 251, 331, 355, 280 },
+ { 196, 252, 332, 356, 274 }, { 197, 253, 333, 357, 275 },
+ { 198, 254, 334, 358, 276 }, { 199, 255, 335, 359, 277 },
+ { 200, 256, 336, 360, 278 }, { 201, 252, 332, 361, 282 },
+ { 202, 253, 333, 362, 283 }, { 203, 254, 334, 363, 284 },
+ { 204, 255, 335, 364, 285 }, { 205, 257, 337, 365, 281 },
+ { 206, 252, 332, 366, 290 }, { 207, 253, 333, 367, 291 },
+ { 208, 254, 334, 368, 292 }, { 209, 255, 335, 369, 293 },
+ { 210, 256, 336, 370, 294 }, { 211, 256, 336, 371, 295 },
+ { 212, 258, 338, 372, 286 }, { 213, 259, 339, 373, 287 },
+ { 214, 260, 340, 374, 288 }, { 215, 261, 341, 375, 289 },
+ { 216, 257, 337, 376, 296 }, { 217, 257, 337, 377, 297 },
+ { 218, 258, 338, 378, 298 }, { 219, 259, 339, 379, 299 },
+ { 220, 260, 340, 380, 300 }, { 221, 261, 341, 381, 301 },
+ { 222, 262, 342, 382, 302 }, { 223, 262, 342, 383, 303 },
+ { 224, 258, 338, 384, 310 }, { 225, 259, 339, 385, 311 },
+ { 226, 260, 340, 386, 312 }, { 227, 261, 341, 387, 313 },
+ { 228, 263, 343, 388, 304 }, { 229, 263, 343, 389, 305 },
+ { 230, 264, 344, 390, 306 }, { 231, 265, 345, 391, 307 },
+ { 232, 266, 346, 392, 308 }, { 233, 267, 347, 393, 309 },
+ { 234, 262, 342, 394, 318 }, { 235, 264, 344, 395, 314 },
+ { 236, 265, 345, 396, 315 }, { 237, 266, 346, 397, 316 },
+ { 238, 267, 347, 398, 317 }, { 239, 263, 343, 399, 321 },
+ { 240, 264, 344, 400, 322 }, { 241, 265, 345, 401, 323 },
+ { 242, 266, 346, 402, 324 }, { 243, 267, 347, 403, 325 },
+ { 244, 268, 348, 404, 319 }, { 245, 269, 349, 405, 320 },
+ { 246, 268, 348, 406, 326 }, { 247, 269, 349, 407, 327 },
+ { 248, 268, 348, 408, 328 }, { 249, 269, 349, 409, 329 },
+ { 270, 271, 275, 278, 274 }, { 270, 271, 351, 410, 350 },
+ { 270, 274, 356, 412, 350 }, { 271, 275, 357, 413, 351 },
+ { 272, 273, 277, 281, 276 }, { 272, 273, 353, 411, 352 },
+ { 272, 276, 358, 414, 352 }, { 273, 277, 359, 415, 353 },
+ { 274, 278, 360, 420, 356 }, { 275, 278, 360, 421, 357 },
+ { 276, 281, 365, 422, 358 }, { 277, 281, 365, 423, 359 },
+ { 279, 282, 286, 288, 284 }, { 279, 282, 361, 416, 354 },
+ { 279, 284, 363, 418, 354 }, { 280, 283, 287, 289, 285 },
+ { 280, 283, 362, 417, 355 }, { 280, 285, 364, 419, 355 },
+ { 282, 286, 372, 426, 361 }, { 283, 287, 373, 427, 362 },
+ { 284, 288, 374, 428, 363 }, { 285, 289, 375, 429, 364 },
+ { 286, 288, 374, 436, 372 }, { 287, 289, 375, 437, 373 },
+ { 290, 294, 302, 306, 298 }, { 290, 294, 370, 424, 366 },
+ { 290, 298, 378, 432, 366 }, { 291, 295, 303, 307, 299 },
+ { 291, 295, 371, 425, 367 }, { 291, 299, 379, 433, 367 },
+ { 292, 296, 304, 308, 300 }, { 292, 296, 376, 430, 368 },
+ { 292, 300, 380, 434, 368 }, { 293, 297, 305, 309, 301 },
+ { 293, 297, 377, 431, 369 }, { 293, 301, 381, 435, 369 },
+ { 294, 302, 382, 438, 370 }, { 295, 303, 383, 439, 371 },
+ { 296, 304, 388, 440, 376 }, { 297, 305, 389, 441, 377 },
+ { 298, 306, 390, 444, 378 }, { 299, 307, 391, 445, 379 },
+ { 300, 308, 392, 446, 380 }, { 301, 309, 393, 447, 381 },
+ { 302, 306, 390, 448, 382 }, { 303, 307, 391, 449, 383 },
+ { 304, 308, 392, 454, 388 }, { 305, 309, 393, 455, 389 },
+ { 310, 312, 316, 319, 314 }, { 310, 312, 386, 442, 384 },
+ { 310, 314, 395, 450, 384 }, { 311, 313, 317, 320, 315 },
+ { 311, 313, 387, 443, 385 }, { 311, 315, 396, 451, 385 },
+ { 312, 316, 397, 452, 386 }, { 313, 317, 398, 453, 387 },
+ { 314, 319, 404, 460, 395 }, { 315, 320, 405, 461, 396 },
+ { 316, 319, 404, 462, 397 }, { 317, 320, 405, 463, 398 },
+ { 318, 322, 326, 327, 323 }, { 318, 322, 400, 456, 394 },
+ { 318, 323, 401, 457, 394 }, { 321, 324, 328, 329, 325 },
+ { 321, 324, 402, 458, 399 }, { 321, 325, 403, 459, 399 },
+ { 322, 326, 406, 464, 400 }, { 323, 327, 407, 465, 401 },
+ { 324, 328, 408, 466, 402 }, { 325, 329, 409, 467, 403 },
+ { 326, 327, 407, 468, 406 }, { 328, 329, 409, 469, 408 },
+ { 330, 350, 410, 411, 352 }, { 330, 350, 412, 416, 354 },
+ { 330, 352, 414, 418, 354 }, { 331, 351, 410, 411, 353 },
+ { 331, 351, 413, 417, 355 }, { 331, 353, 415, 419, 355 },
+ { 332, 356, 412, 416, 361 }, { 332, 356, 420, 424, 366 },
+ { 332, 361, 426, 432, 366 }, { 333, 357, 413, 417, 362 },
+ { 333, 357, 421, 425, 367 }, { 333, 362, 427, 433, 367 },
+ { 334, 358, 414, 418, 363 }, { 334, 358, 422, 430, 368 },
+ { 334, 363, 428, 434, 368 }, { 335, 359, 415, 419, 364 },
+ { 335, 359, 423, 431, 369 }, { 335, 364, 429, 435, 369 },
+ { 336, 360, 420, 424, 370 }, { 336, 360, 421, 425, 371 },
+ { 336, 370, 438, 439, 371 }, { 337, 365, 422, 430, 376 },
+ { 337, 365, 423, 431, 377 }, { 337, 376, 440, 441, 377 },
+ { 338, 372, 426, 432, 378 }, { 338, 372, 436, 442, 384 },
+ { 338, 378, 444, 450, 384 }, { 339, 373, 427, 433, 379 },
+ { 339, 373, 437, 443, 385 }, { 339, 379, 445, 451, 385 },
+ { 340, 374, 428, 434, 380 }, { 340, 374, 436, 442, 386 },
+ { 340, 380, 446, 452, 386 }, { 341, 375, 429, 435, 381 },
+ { 341, 375, 437, 443, 387 }, { 341, 381, 447, 453, 387 },
+ { 342, 382, 438, 439, 383 }, { 342, 382, 448, 456, 394 },
+ { 342, 383, 449, 457, 394 }, { 343, 388, 440, 441, 389 },
+ { 343, 388, 454, 458, 399 }, { 343, 389, 455, 459, 399 },
+ { 344, 390, 444, 450, 395 }, { 344, 390, 448, 456, 400 },
+ { 344, 395, 460, 464, 400 }, { 345, 391, 445, 451, 396 },
+ { 345, 391, 449, 457, 401 }, { 345, 396, 461, 465, 401 },
+ { 346, 392, 446, 452, 397 }, { 346, 392, 454, 458, 402 },
+ { 346, 397, 462, 466, 402 }, { 347, 393, 447, 453, 398 },
+ { 347, 393, 455, 459, 403 }, { 347, 398, 463, 467, 403 },
+ { 348, 404, 460, 464, 406 }, { 348, 404, 462, 466, 408 },
+ { 348, 406, 468, 469, 408 }, { 349, 405, 461, 465, 407 },
+ { 349, 405, 463, 467, 409 }, { 349, 407, 468, 469, 409 },
+ { 350, 410, 470, 472, 412 }, { 351, 410, 470, 473, 413 },
+ { 352, 411, 471, 474, 414 }, { 353, 411, 471, 475, 415 },
+ { 354, 416, 478, 480, 418 }, { 355, 417, 479, 481, 419 },
+ { 356, 412, 472, 476, 420 }, { 357, 413, 473, 477, 421 },
+ { 358, 414, 474, 482, 422 }, { 359, 415, 475, 483, 423 },
+ { 360, 420, 476, 477, 421 }, { 361, 416, 478, 484, 426 },
+ { 362, 417, 479, 485, 427 }, { 363, 418, 480, 486, 428 },
+ { 364, 419, 481, 487, 429 }, { 365, 422, 482, 483, 423 },
+ { 366, 424, 488, 494, 432 }, { 367, 425, 489, 495, 433 },
+ { 368, 430, 492, 496, 434 }, { 369, 431, 493, 497, 435 },
+ { 370, 424, 488, 498, 438 }, { 371, 425, 489, 499, 439 },
+ { 372, 426, 484, 490, 436 }, { 373, 427, 485, 491, 437 },
+ { 374, 428, 486, 490, 436 }, { 375, 429, 487, 491, 437 },
+ { 376, 430, 492, 500, 440 }, { 377, 431, 493, 501, 441 },
+ { 378, 432, 494, 502, 444 }, { 379, 433, 495, 503, 445 },
+ { 380, 434, 496, 504, 446 }, { 381, 435, 497, 505, 447 },
+ { 382, 438, 498, 506, 448 }, { 383, 439, 499, 507, 449 },
+ { 384, 442, 508, 512, 450 }, { 385, 443, 509, 513, 451 },
+ { 386, 442, 508, 514, 452 }, { 387, 443, 509, 515, 453 },
+ { 388, 440, 500, 510, 454 }, { 389, 441, 501, 511, 455 },
+ { 390, 444, 502, 506, 448 }, { 391, 445, 503, 507, 449 },
+ { 392, 446, 504, 510, 454 }, { 393, 447, 505, 511, 455 },
+ { 394, 456, 516, 517, 457 }, { 395, 450, 512, 518, 460 },
+ { 396, 451, 513, 519, 461 }, { 397, 452, 514, 520, 462 },
+ { 398, 453, 515, 521, 463 }, { 399, 458, 522, 523, 459 },
+ { 400, 456, 516, 524, 464 }, { 401, 457, 517, 525, 465 },
+ { 402, 458, 522, 526, 466 }, { 403, 459, 523, 527, 467 },
+ { 404, 460, 518, 520, 462 }, { 405, 461, 519, 521, 463 },
+ { 406, 464, 524, 528, 468 }, { 407, 465, 525, 528, 468 },
+ { 408, 466, 526, 529, 469 }, { 409, 467, 527, 529, 469 },
+ { 410, 411, 471, 530, 470 }, { 412, 416, 478, 531, 472 },
+ { 413, 417, 479, 532, 473 }, { 414, 418, 480, 533, 474 },
+ { 415, 419, 481, 534, 475 }, { 420, 424, 488, 535, 476 },
+ { 421, 425, 489, 536, 477 }, { 422, 430, 492, 537, 482 },
+ { 423, 431, 493, 538, 483 }, { 426, 432, 494, 539, 484 },
+ { 427, 433, 495, 540, 485 }, { 428, 434, 496, 541, 486 },
+ { 429, 435, 497, 542, 487 }, { 436, 442, 508, 544, 490 },
+ { 437, 443, 509, 545, 491 }, { 438, 439, 499, 543, 498 },
+ { 440, 441, 501, 546, 500 }, { 444, 450, 512, 547, 502 },
+ { 445, 451, 513, 548, 503 }, { 446, 452, 514, 549, 504 },
+ { 447, 453, 515, 550, 505 }, { 448, 456, 516, 551, 506 },
+ { 449, 457, 517, 552, 507 }, { 454, 458, 522, 553, 510 },
+ { 455, 459, 523, 554, 511 }, { 460, 464, 524, 555, 518 },
+ { 461, 465, 525, 556, 519 }, { 462, 466, 526, 557, 520 },
+ { 463, 467, 527, 558, 521 }, { 468, 469, 529, 559, 528 },
+ { 470, 472, 476, 477, 473 }, { 470, 472, 531, 560, 530 },
+ { 470, 473, 532, 561, 530 }, { 471, 474, 482, 483, 475 },
+ { 471, 474, 533, 560, 530 }, { 471, 475, 534, 561, 530 },
+ { 472, 476, 535, 562, 531 }, { 473, 477, 536, 563, 532 },
+ { 474, 482, 537, 564, 533 }, { 475, 483, 538, 565, 534 },
+ { 476, 477, 536, 566, 535 }, { 478, 480, 486, 490, 484 },
+ { 478, 480, 533, 560, 531 }, { 478, 484, 539, 562, 531 },
+ { 479, 481, 487, 491, 485 }, { 479, 481, 534, 561, 532 },
+ { 479, 485, 540, 563, 532 }, { 480, 486, 541, 564, 533 },
+ { 481, 487, 542, 565, 534 }, { 482, 483, 538, 567, 537 },
+ { 484, 490, 544, 568, 539 }, { 485, 491, 545, 569, 540 },
+ { 486, 490, 544, 570, 541 }, { 487, 491, 545, 571, 542 },
+ { 488, 494, 502, 506, 498 }, { 488, 494, 539, 562, 535 },
+ { 488, 498, 543, 566, 535 }, { 489, 495, 503, 507, 499 },
+ { 489, 495, 540, 563, 536 }, { 489, 499, 543, 566, 536 },
+ { 492, 496, 504, 510, 500 }, { 492, 496, 541, 564, 537 },
+ { 492, 500, 546, 567, 537 }, { 493, 497, 505, 511, 501 },
+ { 493, 497, 542, 565, 538 }, { 493, 501, 546, 567, 538 },
+ { 494, 502, 547, 568, 539 }, { 495, 503, 548, 569, 540 },
+ { 496, 504, 549, 570, 541 }, { 497, 505, 550, 571, 542 },
+ { 498, 506, 551, 572, 543 }, { 499, 507, 552, 572, 543 },
+ { 500, 510, 553, 573, 546 }, { 501, 511, 554, 573, 546 },
+ { 502, 506, 551, 574, 547 }, { 503, 507, 552, 575, 548 },
+ { 504, 510, 553, 576, 549 }, { 505, 511, 554, 577, 550 },
+ { 508, 512, 518, 520, 514 }, { 508, 512, 547, 568, 544 },
+ { 508, 514, 549, 570, 544 }, { 509, 513, 519, 521, 515 },
+ { 509, 513, 548, 569, 545 }, { 509, 515, 550, 571, 545 },
+ { 512, 518, 555, 574, 547 }, { 513, 519, 556, 575, 548 },
+ { 514, 520, 557, 576, 549 }, { 515, 521, 558, 577, 550 },
+ { 516, 517, 525, 528, 524 }, { 516, 517, 552, 572, 551 },
+ { 516, 524, 555, 574, 551 }, { 517, 525, 556, 575, 552 },
+ { 518, 520, 557, 578, 555 }, { 519, 521, 558, 579, 556 },
+ { 522, 523, 527, 529, 526 }, { 522, 523, 554, 573, 553 },
+ { 522, 526, 557, 576, 553 }, { 523, 527, 558, 577, 554 },
+ { 524, 528, 559, 578, 555 }, { 525, 528, 559, 579, 556 },
+ { 526, 529, 559, 578, 557 }, { 527, 529, 559, 579, 558 },
+ { 530, 560, 580, 581, 561 }, { 531, 560, 580, 582, 562 },
+ { 532, 561, 581, 583, 563 }, { 533, 560, 580, 584, 564 },
+ { 534, 561, 581, 585, 565 }, { 535, 562, 582, 586, 566 },
+ { 536, 563, 583, 586, 566 }, { 537, 564, 584, 587, 567 },
+ { 538, 565, 585, 587, 567 }, { 539, 562, 582, 588, 568 },
+ { 540, 563, 583, 589, 569 }, { 541, 564, 584, 590, 570 },
+ { 542, 565, 585, 591, 571 }, { 543, 566, 586, 592, 572 },
+ { 544, 568, 588, 590, 570 }, { 545, 569, 589, 591, 571 },
+ { 546, 567, 587, 593, 573 }, { 547, 568, 588, 594, 574 },
+ { 548, 569, 589, 595, 575 }, { 549, 570, 590, 596, 576 },
+ { 550, 571, 591, 597, 577 }, { 551, 572, 592, 594, 574 },
+ { 552, 572, 592, 595, 575 }, { 553, 573, 593, 596, 576 },
+ { 554, 573, 593, 597, 577 }, { 555, 574, 594, 598, 578 },
+ { 556, 575, 595, 599, 579 }, { 557, 576, 596, 598, 578 },
+ { 558, 577, 597, 599, 579 }, { 559, 578, 598, 599, 579 },
+ { 580, 581, 583, 586, 582 }, { 580, 581, 585, 587, 584 },
+ { 580, 582, 588, 590, 584 }, { 581, 583, 589, 591, 585 },
+ { 582, 586, 592, 594, 588 }, { 583, 586, 592, 595, 589 },
+ { 584, 587, 593, 596, 590 }, { 585, 587, 593, 597, 591 },
+ { 588, 590, 596, 598, 594 }, { 589, 591, 597, 599, 595 },
+ { 592, 594, 598, 599, 595 }, { 593, 596, 598, 599, 597 }
+};
+
+
+
+static const float vert_600[NUM_VERT_600][4] = {
+ { 0.0, 0.0, 0.0, -2.0 },
+ { 0.0, -GOLDENINV, -1.0, -GOLDEN },
+ { 0.0, GOLDENINV, -1.0, -GOLDEN },
+ { -1.0, 0.0, -GOLDENINV, -GOLDEN },
+ { 1.0, 0.0, -GOLDENINV, -GOLDEN },
+ { -GOLDENINV, -1.0, 0.0, -GOLDEN },
+ { GOLDENINV, -1.0, 0.0, -GOLDEN },
+ { -GOLDENINV, 1.0, 0.0, -GOLDEN },
+ { GOLDENINV, 1.0, 0.0, -GOLDEN },
+ { -1.0, 0.0, GOLDENINV, -GOLDEN },
+ { 1.0, 0.0, GOLDENINV, -GOLDEN },
+ { 0.0, -GOLDENINV, 1.0, -GOLDEN },
+ { 0.0, GOLDENINV, 1.0, -GOLDEN },
+ { -GOLDENINV, 0.0, -GOLDEN, -1.0 },
+ { GOLDENINV, 0.0, -GOLDEN, -1.0 },
+ { -1.0, -1.0, -1.0, -1.0 },
+ { 1.0, -1.0, -1.0, -1.0 },
+ { -1.0, 1.0, -1.0, -1.0 },
+ { 1.0, 1.0, -1.0, -1.0 },
+ { 0.0, -GOLDEN, -GOLDENINV, -1.0 },
+ { 0.0, GOLDEN, -GOLDENINV, -1.0 },
+ { -GOLDEN, -GOLDENINV, 0.0, -1.0 },
+ { GOLDEN, -GOLDENINV, 0.0, -1.0 },
+ { -GOLDEN, GOLDENINV, 0.0, -1.0 },
+ { GOLDEN, GOLDENINV, 0.0, -1.0 },
+ { 0.0, -GOLDEN, GOLDENINV, -1.0 },
+ { 0.0, GOLDEN, GOLDENINV, -1.0 },
+ { -1.0, -1.0, 1.0, -1.0 },
+ { 1.0, -1.0, 1.0, -1.0 },
+ { -1.0, 1.0, 1.0, -1.0 },
+ { 1.0, 1.0, 1.0, -1.0 },
+ { -GOLDENINV, 0.0, GOLDEN, -1.0 },
+ { GOLDENINV, 0.0, GOLDEN, -1.0 },
+ { 0.0, -1.0, -GOLDEN, -GOLDENINV },
+ { 0.0, 1.0, -GOLDEN, -GOLDENINV },
+ { -GOLDEN, 0.0, -1.0, -GOLDENINV },
+ { GOLDEN, 0.0, -1.0, -GOLDENINV },
+ { -1.0, -GOLDEN, 0.0, -GOLDENINV },
+ { 1.0, -GOLDEN, 0.0, -GOLDENINV },
+ { -1.0, GOLDEN, 0.0, -GOLDENINV },
+ { 1.0, GOLDEN, 0.0, -GOLDENINV },
+ { -GOLDEN, 0.0, 1.0, -GOLDENINV },
+ { GOLDEN, 0.0, 1.0, -GOLDENINV },
+ { 0.0, -1.0, GOLDEN, -GOLDENINV },
+ { 0.0, 1.0, GOLDEN, -GOLDENINV },
+ { 0.0, 0.0, -2.0, 0.0 },
+ { -1.0, -GOLDENINV, -GOLDEN, 0.0 },
+ { 1.0, -GOLDENINV, -GOLDEN, 0.0 },
+ { -1.0, GOLDENINV, -GOLDEN, 0.0 },
+ { 1.0, GOLDENINV, -GOLDEN, 0.0 },
+ { -GOLDENINV, -GOLDEN, -1.0, 0.0 },
+ { GOLDENINV, -GOLDEN, -1.0, 0.0 },
+ { -GOLDENINV, GOLDEN, -1.0, 0.0 },
+ { GOLDENINV, GOLDEN, -1.0, 0.0 },
+ { -GOLDEN, -1.0, -GOLDENINV, 0.0 },
+ { GOLDEN, -1.0, -GOLDENINV, 0.0 },
+ { -GOLDEN, 1.0, -GOLDENINV, 0.0 },
+ { GOLDEN, 1.0, -GOLDENINV, 0.0 },
+ { 0.0, -2.0, 0.0, 0.0 },
+ { -2.0, 0.0, 0.0, 0.0 },
+ { 2.0, 0.0, 0.0, 0.0 },
+ { 0.0, 2.0, 0.0, 0.0 },
+ { -GOLDEN, -1.0, GOLDENINV, 0.0 },
+ { GOLDEN, -1.0, GOLDENINV, 0.0 },
+ { -GOLDEN, 1.0, GOLDENINV, 0.0 },
+ { GOLDEN, 1.0, GOLDENINV, 0.0 },
+ { -GOLDENINV, -GOLDEN, 1.0, 0.0 },
+ { GOLDENINV, -GOLDEN, 1.0, 0.0 },
+ { -GOLDENINV, GOLDEN, 1.0, 0.0 },
+ { GOLDENINV, GOLDEN, 1.0, 0.0 },
+ { -1.0, -GOLDENINV, GOLDEN, 0.0 },
+ { 1.0, -GOLDENINV, GOLDEN, 0.0 },
+ { -1.0, GOLDENINV, GOLDEN, 0.0 },
+ { 1.0, GOLDENINV, GOLDEN, 0.0 },
+ { 0.0, 0.0, 2.0, 0.0 },
+ { 0.0, -1.0, -GOLDEN, GOLDENINV },
+ { 0.0, 1.0, -GOLDEN, GOLDENINV },
+ { -GOLDEN, 0.0, -1.0, GOLDENINV },
+ { GOLDEN, 0.0, -1.0, GOLDENINV },
+ { -1.0, -GOLDEN, 0.0, GOLDENINV },
+ { 1.0, -GOLDEN, 0.0, GOLDENINV },
+ { -1.0, GOLDEN, 0.0, GOLDENINV },
+ { 1.0, GOLDEN, 0.0, GOLDENINV },
+ { -GOLDEN, 0.0, 1.0, GOLDENINV },
+ { GOLDEN, 0.0, 1.0, GOLDENINV },
+ { 0.0, -1.0, GOLDEN, GOLDENINV },
+ { 0.0, 1.0, GOLDEN, GOLDENINV },
+ { -GOLDENINV, 0.0, -GOLDEN, 1.0 },
+ { GOLDENINV, 0.0, -GOLDEN, 1.0 },
+ { -1.0, -1.0, -1.0, 1.0 },
+ { 1.0, -1.0, -1.0, 1.0 },
+ { -1.0, 1.0, -1.0, 1.0 },
+ { 1.0, 1.0, -1.0, 1.0 },
+ { 0.0, -GOLDEN, -GOLDENINV, 1.0 },
+ { 0.0, GOLDEN, -GOLDENINV, 1.0 },
+ { -GOLDEN, -GOLDENINV, 0.0, 1.0 },
+ { GOLDEN, -GOLDENINV, 0.0, 1.0 },
+ { -GOLDEN, GOLDENINV, 0.0, 1.0 },
+ { GOLDEN, GOLDENINV, 0.0, 1.0 },
+ { 0.0, -GOLDEN, GOLDENINV, 1.0 },
+ { 0.0, GOLDEN, GOLDENINV, 1.0 },
+ { -1.0, -1.0, 1.0, 1.0 },
+ { 1.0, -1.0, 1.0, 1.0 },
+ { -1.0, 1.0, 1.0, 1.0 },
+ { 1.0, 1.0, 1.0, 1.0 },
+ { -GOLDENINV, 0.0, GOLDEN, 1.0 },
+ { GOLDENINV, 0.0, GOLDEN, 1.0 },
+ { 0.0, -GOLDENINV, -1.0, GOLDEN },
+ { 0.0, GOLDENINV, -1.0, GOLDEN },
+ { -1.0, 0.0, -GOLDENINV, GOLDEN },
+ { 1.0, 0.0, -GOLDENINV, GOLDEN },
+ { -GOLDENINV, -1.0, 0.0, GOLDEN },
+ { GOLDENINV, -1.0, 0.0, GOLDEN },
+ { -GOLDENINV, 1.0, 0.0, GOLDEN },
+ { GOLDENINV, 1.0, 0.0, GOLDEN },
+ { -1.0, 0.0, GOLDENINV, GOLDEN },
+ { 1.0, 0.0, GOLDENINV, GOLDEN },
+ { 0.0, -GOLDENINV, 1.0, GOLDEN },
+ { 0.0, GOLDENINV, 1.0, GOLDEN },
+ { 0.0, 0.0, 0.0, 2.0 }
+};
+
+static const int edge_600[NUM_EDGE_600][2] = {
+ { 0, 1 }, { 0, 2 }, { 0, 3 }, { 0, 4 }, { 0, 5 },
+ { 0, 6 }, { 0, 7 }, { 0, 8 }, { 0, 9 }, { 0, 10 },
+ { 0, 11 }, { 0, 12 }, { 1, 2 }, { 1, 3 }, { 1, 4 },
+ { 1, 5 }, { 1, 6 }, { 1, 13 }, { 1, 14 }, { 1, 15 },
+ { 1, 16 }, { 1, 19 }, { 1, 33 }, { 2, 3 }, { 2, 4 },
+ { 2, 7 }, { 2, 8 }, { 2, 13 }, { 2, 14 }, { 2, 17 },
+ { 2, 18 }, { 2, 20 }, { 2, 34 }, { 3, 5 }, { 3, 7 },
+ { 3, 9 }, { 3, 13 }, { 3, 15 }, { 3, 17 }, { 3, 21 },
+ { 3, 23 }, { 3, 35 }, { 4, 6 }, { 4, 8 }, { 4, 10 },
+ { 4, 14 }, { 4, 16 }, { 4, 18 }, { 4, 22 }, { 4, 24 },
+ { 4, 36 }, { 5, 6 }, { 5, 9 }, { 5, 11 }, { 5, 15 },
+ { 5, 19 }, { 5, 21 }, { 5, 25 }, { 5, 27 }, { 5, 37 },
+ { 6, 10 }, { 6, 11 }, { 6, 16 }, { 6, 19 }, { 6, 22 },
+ { 6, 25 }, { 6, 28 }, { 6, 38 }, { 7, 8 }, { 7, 9 },
+ { 7, 12 }, { 7, 17 }, { 7, 20 }, { 7, 23 }, { 7, 26 },
+ { 7, 29 }, { 7, 39 }, { 8, 10 }, { 8, 12 }, { 8, 18 },
+ { 8, 20 }, { 8, 24 }, { 8, 26 }, { 8, 30 }, { 8, 40 },
+ { 9, 11 }, { 9, 12 }, { 9, 21 }, { 9, 23 }, { 9, 27 },
+ { 9, 29 }, { 9, 31 }, { 9, 41 }, { 10, 11 }, { 10, 12 },
+ { 10, 22 }, { 10, 24 }, { 10, 28 }, { 10, 30 }, { 10, 32 },
+ { 10, 42 }, { 11, 12 }, { 11, 25 }, { 11, 27 }, { 11, 28 },
+ { 11, 31 }, { 11, 32 }, { 11, 43 }, { 12, 26 }, { 12, 29 },
+ { 12, 30 }, { 12, 31 }, { 12, 32 }, { 12, 44 }, { 13, 14 },
+ { 13, 15 }, { 13, 17 }, { 13, 33 }, { 13, 34 }, { 13, 35 },
+ { 13, 45 }, { 13, 46 }, { 13, 48 }, { 14, 16 }, { 14, 18 },
+ { 14, 33 }, { 14, 34 }, { 14, 36 }, { 14, 45 }, { 14, 47 },
+ { 14, 49 }, { 15, 19 }, { 15, 21 }, { 15, 33 }, { 15, 35 },
+ { 15, 37 }, { 15, 46 }, { 15, 50 }, { 15, 54 }, { 16, 19 },
+ { 16, 22 }, { 16, 33 }, { 16, 36 }, { 16, 38 }, { 16, 47 },
+ { 16, 51 }, { 16, 55 }, { 17, 20 }, { 17, 23 }, { 17, 34 },
+ { 17, 35 }, { 17, 39 }, { 17, 48 }, { 17, 52 }, { 17, 56 },
+ { 18, 20 }, { 18, 24 }, { 18, 34 }, { 18, 36 }, { 18, 40 },
+ { 18, 49 }, { 18, 53 }, { 18, 57 }, { 19, 25 }, { 19, 33 },
+ { 19, 37 }, { 19, 38 }, { 19, 50 }, { 19, 51 }, { 19, 58 },
+ { 20, 26 }, { 20, 34 }, { 20, 39 }, { 20, 40 }, { 20, 52 },
+ { 20, 53 }, { 20, 61 }, { 21, 23 }, { 21, 27 }, { 21, 35 },
+ { 21, 37 }, { 21, 41 }, { 21, 54 }, { 21, 59 }, { 21, 62 },
+ { 22, 24 }, { 22, 28 }, { 22, 36 }, { 22, 38 }, { 22, 42 },
+ { 22, 55 }, { 22, 60 }, { 22, 63 }, { 23, 29 }, { 23, 35 },
+ { 23, 39 }, { 23, 41 }, { 23, 56 }, { 23, 59 }, { 23, 64 },
+ { 24, 30 }, { 24, 36 }, { 24, 40 }, { 24, 42 }, { 24, 57 },
+ { 24, 60 }, { 24, 65 }, { 25, 27 }, { 25, 28 }, { 25, 37 },
+ { 25, 38 }, { 25, 43 }, { 25, 58 }, { 25, 66 }, { 25, 67 },
+ { 26, 29 }, { 26, 30 }, { 26, 39 }, { 26, 40 }, { 26, 44 },
+ { 26, 61 }, { 26, 68 }, { 26, 69 }, { 27, 31 }, { 27, 37 },
+ { 27, 41 }, { 27, 43 }, { 27, 62 }, { 27, 66 }, { 27, 70 },
+ { 28, 32 }, { 28, 38 }, { 28, 42 }, { 28, 43 }, { 28, 63 },
+ { 28, 67 }, { 28, 71 }, { 29, 31 }, { 29, 39 }, { 29, 41 },
+ { 29, 44 }, { 29, 64 }, { 29, 68 }, { 29, 72 }, { 30, 32 },
+ { 30, 40 }, { 30, 42 }, { 30, 44 }, { 30, 65 }, { 30, 69 },
+ { 30, 73 }, { 31, 32 }, { 31, 41 }, { 31, 43 }, { 31, 44 },
+ { 31, 70 }, { 31, 72 }, { 31, 74 }, { 32, 42 }, { 32, 43 },
+ { 32, 44 }, { 32, 71 }, { 32, 73 }, { 32, 74 }, { 33, 45 },
+ { 33, 46 }, { 33, 47 }, { 33, 50 }, { 33, 51 }, { 33, 75 },
+ { 34, 45 }, { 34, 48 }, { 34, 49 }, { 34, 52 }, { 34, 53 },
+ { 34, 76 }, { 35, 46 }, { 35, 48 }, { 35, 54 }, { 35, 56 },
+ { 35, 59 }, { 35, 77 }, { 36, 47 }, { 36, 49 }, { 36, 55 },
+ { 36, 57 }, { 36, 60 }, { 36, 78 }, { 37, 50 }, { 37, 54 },
+ { 37, 58 }, { 37, 62 }, { 37, 66 }, { 37, 79 }, { 38, 51 },
+ { 38, 55 }, { 38, 58 }, { 38, 63 }, { 38, 67 }, { 38, 80 },
+ { 39, 52 }, { 39, 56 }, { 39, 61 }, { 39, 64 }, { 39, 68 },
+ { 39, 81 }, { 40, 53 }, { 40, 57 }, { 40, 61 }, { 40, 65 },
+ { 40, 69 }, { 40, 82 }, { 41, 59 }, { 41, 62 }, { 41, 64 },
+ { 41, 70 }, { 41, 72 }, { 41, 83 }, { 42, 60 }, { 42, 63 },
+ { 42, 65 }, { 42, 71 }, { 42, 73 }, { 42, 84 }, { 43, 66 },
+ { 43, 67 }, { 43, 70 }, { 43, 71 }, { 43, 74 }, { 43, 85 },
+ { 44, 68 }, { 44, 69 }, { 44, 72 }, { 44, 73 }, { 44, 74 },
+ { 44, 86 }, { 45, 46 }, { 45, 47 }, { 45, 48 }, { 45, 49 },
+ { 45, 75 }, { 45, 76 }, { 45, 87 }, { 45, 88 }, { 46, 48 },
+ { 46, 50 }, { 46, 54 }, { 46, 75 }, { 46, 77 }, { 46, 87 },
+ { 46, 89 }, { 47, 49 }, { 47, 51 }, { 47, 55 }, { 47, 75 },
+ { 47, 78 }, { 47, 88 }, { 47, 90 }, { 48, 52 }, { 48, 56 },
+ { 48, 76 }, { 48, 77 }, { 48, 87 }, { 48, 91 }, { 49, 53 },
+ { 49, 57 }, { 49, 76 }, { 49, 78 }, { 49, 88 }, { 49, 92 },
+ { 50, 51 }, { 50, 54 }, { 50, 58 }, { 50, 75 }, { 50, 79 },
+ { 50, 89 }, { 50, 93 }, { 51, 55 }, { 51, 58 }, { 51, 75 },
+ { 51, 80 }, { 51, 90 }, { 51, 93 }, { 52, 53 }, { 52, 56 },
+ { 52, 61 }, { 52, 76 }, { 52, 81 }, { 52, 91 }, { 52, 94 },
+ { 53, 57 }, { 53, 61 }, { 53, 76 }, { 53, 82 }, { 53, 92 },
+ { 53, 94 }, { 54, 59 }, { 54, 62 }, { 54, 77 }, { 54, 79 },
+ { 54, 89 }, { 54, 95 }, { 55, 60 }, { 55, 63 }, { 55, 78 },
+ { 55, 80 }, { 55, 90 }, { 55, 96 }, { 56, 59 }, { 56, 64 },
+ { 56, 77 }, { 56, 81 }, { 56, 91 }, { 56, 97 }, { 57, 60 },
+ { 57, 65 }, { 57, 78 }, { 57, 82 }, { 57, 92 }, { 57, 98 },
+ { 58, 66 }, { 58, 67 }, { 58, 79 }, { 58, 80 }, { 58, 93 },
+ { 58, 99 }, { 59, 62 }, { 59, 64 }, { 59, 77 }, { 59, 83 },
+ { 59, 95 }, { 59, 97 }, { 60, 63 }, { 60, 65 }, { 60, 78 },
+ { 60, 84 }, { 60, 96 }, { 60, 98 }, { 61, 68 }, { 61, 69 },
+ { 61, 81 }, { 61, 82 }, { 61, 94 }, { 61, 100 }, { 62, 66 },
+ { 62, 70 }, { 62, 79 }, { 62, 83 }, { 62, 95 }, { 62, 101 },
+ { 63, 67 }, { 63, 71 }, { 63, 80 }, { 63, 84 }, { 63, 96 },
+ { 63, 102 }, { 64, 68 }, { 64, 72 }, { 64, 81 }, { 64, 83 },
+ { 64, 97 }, { 64, 103 }, { 65, 69 }, { 65, 73 }, { 65, 82 },
+ { 65, 84 }, { 65, 98 }, { 65, 104 }, { 66, 67 }, { 66, 70 },
+ { 66, 79 }, { 66, 85 }, { 66, 99 }, { 66, 101 }, { 67, 71 },
+ { 67, 80 }, { 67, 85 }, { 67, 99 }, { 67, 102 }, { 68, 69 },
+ { 68, 72 }, { 68, 81 }, { 68, 86 }, { 68, 100 }, { 68, 103 },
+ { 69, 73 }, { 69, 82 }, { 69, 86 }, { 69, 100 }, { 69, 104 },
+ { 70, 72 }, { 70, 74 }, { 70, 83 }, { 70, 85 }, { 70, 101 },
+ { 70, 105 }, { 71, 73 }, { 71, 74 }, { 71, 84 }, { 71, 85 },
+ { 71, 102 }, { 71, 106 }, { 72, 74 }, { 72, 83 }, { 72, 86 },
+ { 72, 103 }, { 72, 105 }, { 73, 74 }, { 73, 84 }, { 73, 86 },
+ { 73, 104 }, { 73, 106 }, { 74, 85 }, { 74, 86 }, { 74, 105 },
+ { 74, 106 }, { 75, 87 }, { 75, 88 }, { 75, 89 }, { 75, 90 },
+ { 75, 93 }, { 75, 107 }, { 76, 87 }, { 76, 88 }, { 76, 91 },
+ { 76, 92 }, { 76, 94 }, { 76, 108 }, { 77, 87 }, { 77, 89 },
+ { 77, 91 }, { 77, 95 }, { 77, 97 }, { 77, 109 }, { 78, 88 },
+ { 78, 90 }, { 78, 92 }, { 78, 96 }, { 78, 98 }, { 78, 110 },
+ { 79, 89 }, { 79, 93 }, { 79, 95 }, { 79, 99 }, { 79, 101 },
+ { 79, 111 }, { 80, 90 }, { 80, 93 }, { 80, 96 }, { 80, 99 },
+ { 80, 102 }, { 80, 112 }, { 81, 91 }, { 81, 94 }, { 81, 97 },
+ { 81, 100 }, { 81, 103 }, { 81, 113 }, { 82, 92 }, { 82, 94 },
+ { 82, 98 }, { 82, 100 }, { 82, 104 }, { 82, 114 }, { 83, 95 },
+ { 83, 97 }, { 83, 101 }, { 83, 103 }, { 83, 105 }, { 83, 115 },
+ { 84, 96 }, { 84, 98 }, { 84, 102 }, { 84, 104 }, { 84, 106 },
+ { 84, 116 }, { 85, 99 }, { 85, 101 }, { 85, 102 }, { 85, 105 },
+ { 85, 106 }, { 85, 117 }, { 86, 100 }, { 86, 103 }, { 86, 104 },
+ { 86, 105 }, { 86, 106 }, { 86, 118 }, { 87, 88 }, { 87, 89 },
+ { 87, 91 }, { 87, 107 }, { 87, 108 }, { 87, 109 }, { 88, 90 },
+ { 88, 92 }, { 88, 107 }, { 88, 108 }, { 88, 110 }, { 89, 93 },
+ { 89, 95 }, { 89, 107 }, { 89, 109 }, { 89, 111 }, { 90, 93 },
+ { 90, 96 }, { 90, 107 }, { 90, 110 }, { 90, 112 }, { 91, 94 },
+ { 91, 97 }, { 91, 108 }, { 91, 109 }, { 91, 113 }, { 92, 94 },
+ { 92, 98 }, { 92, 108 }, { 92, 110 }, { 92, 114 }, { 93, 99 },
+ { 93, 107 }, { 93, 111 }, { 93, 112 }, { 94, 100 }, { 94, 108 },
+ { 94, 113 }, { 94, 114 }, { 95, 97 }, { 95, 101 }, { 95, 109 },
+ { 95, 111 }, { 95, 115 }, { 96, 98 }, { 96, 102 }, { 96, 110 },
+ { 96, 112 }, { 96, 116 }, { 97, 103 }, { 97, 109 }, { 97, 113 },
+ { 97, 115 }, { 98, 104 }, { 98, 110 }, { 98, 114 }, { 98, 116 },
+ { 99, 101 }, { 99, 102 }, { 99, 111 }, { 99, 112 }, { 99, 117 },
+ { 100, 103 }, { 100, 104 }, { 100, 113 }, { 100, 114 }, { 100, 118 },
+ { 101, 105 }, { 101, 111 }, { 101, 115 }, { 101, 117 }, { 102, 106 },
+ { 102, 112 }, { 102, 116 }, { 102, 117 }, { 103, 105 }, { 103, 113 },
+ { 103, 115 }, { 103, 118 }, { 104, 106 }, { 104, 114 }, { 104, 116 },
+ { 104, 118 }, { 105, 106 }, { 105, 115 }, { 105, 117 }, { 105, 118 },
+ { 106, 116 }, { 106, 117 }, { 106, 118 }, { 107, 108 }, { 107, 109 },
+ { 107, 110 }, { 107, 111 }, { 107, 112 }, { 107, 119 }, { 108, 109 },
+ { 108, 110 }, { 108, 113 }, { 108, 114 }, { 108, 119 }, { 109, 111 },
+ { 109, 113 }, { 109, 115 }, { 109, 119 }, { 110, 112 }, { 110, 114 },
+ { 110, 116 }, { 110, 119 }, { 111, 112 }, { 111, 115 }, { 111, 117 },
+ { 111, 119 }, { 112, 116 }, { 112, 117 }, { 112, 119 }, { 113, 114 },
+ { 113, 115 }, { 113, 118 }, { 113, 119 }, { 114, 116 }, { 114, 118 },
+ { 114, 119 }, { 115, 117 }, { 115, 118 }, { 115, 119 }, { 116, 117 },
+ { 116, 118 }, { 116, 119 }, { 117, 118 }, { 117, 119 }, { 118, 119 }
+};
+
+static const int face_600[NUM_FACE_600][VERT_PER_FACE_600] = {
+ { 0, 1, 2 }, { 0, 1, 3 }, { 0, 1, 4 }, { 0, 1, 5 },
+ { 0, 1, 6 }, { 0, 2, 3 }, { 0, 2, 4 }, { 0, 2, 7 },
+ { 0, 2, 8 }, { 0, 3, 5 }, { 0, 3, 7 }, { 0, 3, 9 },
+ { 0, 4, 6 }, { 0, 4, 8 }, { 0, 4, 10 }, { 0, 5, 6 },
+ { 0, 5, 9 }, { 0, 5, 11 }, { 0, 6, 10 }, { 0, 6, 11 },
+ { 0, 7, 8 }, { 0, 7, 9 }, { 0, 7, 12 }, { 0, 8, 10 },
+ { 0, 8, 12 }, { 0, 9, 11 }, { 0, 9, 12 }, { 0, 10, 11 },
+ { 0, 10, 12 }, { 0, 11, 12 }, { 1, 2, 3 }, { 1, 2, 4 },
+ { 1, 2, 13 }, { 1, 2, 14 }, { 1, 3, 5 }, { 1, 3, 13 },
+ { 1, 3, 15 }, { 1, 4, 6 }, { 1, 4, 14 }, { 1, 4, 16 },
+ { 1, 5, 6 }, { 1, 5, 15 }, { 1, 5, 19 }, { 1, 6, 16 },
+ { 1, 6, 19 }, { 1, 13, 14 }, { 1, 13, 15 }, { 1, 13, 33 },
+ { 1, 14, 16 }, { 1, 14, 33 }, { 1, 15, 19 }, { 1, 15, 33 },
+ { 1, 16, 19 }, { 1, 16, 33 }, { 1, 19, 33 }, { 2, 3, 7 },
+ { 2, 3, 13 }, { 2, 3, 17 }, { 2, 4, 8 }, { 2, 4, 14 },
+ { 2, 4, 18 }, { 2, 7, 8 }, { 2, 7, 17 }, { 2, 7, 20 },
+ { 2, 8, 18 }, { 2, 8, 20 }, { 2, 13, 14 }, { 2, 13, 17 },
+ { 2, 13, 34 }, { 2, 14, 18 }, { 2, 14, 34 }, { 2, 17, 20 },
+ { 2, 17, 34 }, { 2, 18, 20 }, { 2, 18, 34 }, { 2, 20, 34 },
+ { 3, 5, 9 }, { 3, 5, 15 }, { 3, 5, 21 }, { 3, 7, 9 },
+ { 3, 7, 17 }, { 3, 7, 23 }, { 3, 9, 21 }, { 3, 9, 23 },
+ { 3, 13, 15 }, { 3, 13, 17 }, { 3, 13, 35 }, { 3, 15, 21 },
+ { 3, 15, 35 }, { 3, 17, 23 }, { 3, 17, 35 }, { 3, 21, 23 },
+ { 3, 21, 35 }, { 3, 23, 35 }, { 4, 6, 10 }, { 4, 6, 16 },
+ { 4, 6, 22 }, { 4, 8, 10 }, { 4, 8, 18 }, { 4, 8, 24 },
+ { 4, 10, 22 }, { 4, 10, 24 }, { 4, 14, 16 }, { 4, 14, 18 },
+ { 4, 14, 36 }, { 4, 16, 22 }, { 4, 16, 36 }, { 4, 18, 24 },
+ { 4, 18, 36 }, { 4, 22, 24 }, { 4, 22, 36 }, { 4, 24, 36 },
+ { 5, 6, 11 }, { 5, 6, 19 }, { 5, 6, 25 }, { 5, 9, 11 },
+ { 5, 9, 21 }, { 5, 9, 27 }, { 5, 11, 25 }, { 5, 11, 27 },
+ { 5, 15, 19 }, { 5, 15, 21 }, { 5, 15, 37 }, { 5, 19, 25 },
+ { 5, 19, 37 }, { 5, 21, 27 }, { 5, 21, 37 }, { 5, 25, 27 },
+ { 5, 25, 37 }, { 5, 27, 37 }, { 6, 10, 11 }, { 6, 10, 22 },
+ { 6, 10, 28 }, { 6, 11, 25 }, { 6, 11, 28 }, { 6, 16, 19 },
+ { 6, 16, 22 }, { 6, 16, 38 }, { 6, 19, 25 }, { 6, 19, 38 },
+ { 6, 22, 28 }, { 6, 22, 38 }, { 6, 25, 28 }, { 6, 25, 38 },
+ { 6, 28, 38 }, { 7, 8, 12 }, { 7, 8, 20 }, { 7, 8, 26 },
+ { 7, 9, 12 }, { 7, 9, 23 }, { 7, 9, 29 }, { 7, 12, 26 },
+ { 7, 12, 29 }, { 7, 17, 20 }, { 7, 17, 23 }, { 7, 17, 39 },
+ { 7, 20, 26 }, { 7, 20, 39 }, { 7, 23, 29 }, { 7, 23, 39 },
+ { 7, 26, 29 }, { 7, 26, 39 }, { 7, 29, 39 }, { 8, 10, 12 },
+ { 8, 10, 24 }, { 8, 10, 30 }, { 8, 12, 26 }, { 8, 12, 30 },
+ { 8, 18, 20 }, { 8, 18, 24 }, { 8, 18, 40 }, { 8, 20, 26 },
+ { 8, 20, 40 }, { 8, 24, 30 }, { 8, 24, 40 }, { 8, 26, 30 },
+ { 8, 26, 40 }, { 8, 30, 40 }, { 9, 11, 12 }, { 9, 11, 27 },
+ { 9, 11, 31 }, { 9, 12, 29 }, { 9, 12, 31 }, { 9, 21, 23 },
+ { 9, 21, 27 }, { 9, 21, 41 }, { 9, 23, 29 }, { 9, 23, 41 },
+ { 9, 27, 31 }, { 9, 27, 41 }, { 9, 29, 31 }, { 9, 29, 41 },
+ { 9, 31, 41 }, { 10, 11, 12 }, { 10, 11, 28 }, { 10, 11, 32 },
+ { 10, 12, 30 }, { 10, 12, 32 }, { 10, 22, 24 }, { 10, 22, 28 },
+ { 10, 22, 42 }, { 10, 24, 30 }, { 10, 24, 42 }, { 10, 28, 32 },
+ { 10, 28, 42 }, { 10, 30, 32 }, { 10, 30, 42 }, { 10, 32, 42 },
+ { 11, 12, 31 }, { 11, 12, 32 }, { 11, 25, 27 }, { 11, 25, 28 },
+ { 11, 25, 43 }, { 11, 27, 31 }, { 11, 27, 43 }, { 11, 28, 32 },
+ { 11, 28, 43 }, { 11, 31, 32 }, { 11, 31, 43 }, { 11, 32, 43 },
+ { 12, 26, 29 }, { 12, 26, 30 }, { 12, 26, 44 }, { 12, 29, 31 },
+ { 12, 29, 44 }, { 12, 30, 32 }, { 12, 30, 44 }, { 12, 31, 32 },
+ { 12, 31, 44 }, { 12, 32, 44 }, { 13, 14, 33 }, { 13, 14, 34 },
+ { 13, 14, 45 }, { 13, 15, 33 }, { 13, 15, 35 }, { 13, 15, 46 },
+ { 13, 17, 34 }, { 13, 17, 35 }, { 13, 17, 48 }, { 13, 33, 45 },
+ { 13, 33, 46 }, { 13, 34, 45 }, { 13, 34, 48 }, { 13, 35, 46 },
+ { 13, 35, 48 }, { 13, 45, 46 }, { 13, 45, 48 }, { 13, 46, 48 },
+ { 14, 16, 33 }, { 14, 16, 36 }, { 14, 16, 47 }, { 14, 18, 34 },
+ { 14, 18, 36 }, { 14, 18, 49 }, { 14, 33, 45 }, { 14, 33, 47 },
+ { 14, 34, 45 }, { 14, 34, 49 }, { 14, 36, 47 }, { 14, 36, 49 },
+ { 14, 45, 47 }, { 14, 45, 49 }, { 14, 47, 49 }, { 15, 19, 33 },
+ { 15, 19, 37 }, { 15, 19, 50 }, { 15, 21, 35 }, { 15, 21, 37 },
+ { 15, 21, 54 }, { 15, 33, 46 }, { 15, 33, 50 }, { 15, 35, 46 },
+ { 15, 35, 54 }, { 15, 37, 50 }, { 15, 37, 54 }, { 15, 46, 50 },
+ { 15, 46, 54 }, { 15, 50, 54 }, { 16, 19, 33 }, { 16, 19, 38 },
+ { 16, 19, 51 }, { 16, 22, 36 }, { 16, 22, 38 }, { 16, 22, 55 },
+ { 16, 33, 47 }, { 16, 33, 51 }, { 16, 36, 47 }, { 16, 36, 55 },
+ { 16, 38, 51 }, { 16, 38, 55 }, { 16, 47, 51 }, { 16, 47, 55 },
+ { 16, 51, 55 }, { 17, 20, 34 }, { 17, 20, 39 }, { 17, 20, 52 },
+ { 17, 23, 35 }, { 17, 23, 39 }, { 17, 23, 56 }, { 17, 34, 48 },
+ { 17, 34, 52 }, { 17, 35, 48 }, { 17, 35, 56 }, { 17, 39, 52 },
+ { 17, 39, 56 }, { 17, 48, 52 }, { 17, 48, 56 }, { 17, 52, 56 },
+ { 18, 20, 34 }, { 18, 20, 40 }, { 18, 20, 53 }, { 18, 24, 36 },
+ { 18, 24, 40 }, { 18, 24, 57 }, { 18, 34, 49 }, { 18, 34, 53 },
+ { 18, 36, 49 }, { 18, 36, 57 }, { 18, 40, 53 }, { 18, 40, 57 },
+ { 18, 49, 53 }, { 18, 49, 57 }, { 18, 53, 57 }, { 19, 25, 37 },
+ { 19, 25, 38 }, { 19, 25, 58 }, { 19, 33, 50 }, { 19, 33, 51 },
+ { 19, 37, 50 }, { 19, 37, 58 }, { 19, 38, 51 }, { 19, 38, 58 },
+ { 19, 50, 51 }, { 19, 50, 58 }, { 19, 51, 58 }, { 20, 26, 39 },
+ { 20, 26, 40 }, { 20, 26, 61 }, { 20, 34, 52 }, { 20, 34, 53 },
+ { 20, 39, 52 }, { 20, 39, 61 }, { 20, 40, 53 }, { 20, 40, 61 },
+ { 20, 52, 53 }, { 20, 52, 61 }, { 20, 53, 61 }, { 21, 23, 35 },
+ { 21, 23, 41 }, { 21, 23, 59 }, { 21, 27, 37 }, { 21, 27, 41 },
+ { 21, 27, 62 }, { 21, 35, 54 }, { 21, 35, 59 }, { 21, 37, 54 },
+ { 21, 37, 62 }, { 21, 41, 59 }, { 21, 41, 62 }, { 21, 54, 59 },
+ { 21, 54, 62 }, { 21, 59, 62 }, { 22, 24, 36 }, { 22, 24, 42 },
+ { 22, 24, 60 }, { 22, 28, 38 }, { 22, 28, 42 }, { 22, 28, 63 },
+ { 22, 36, 55 }, { 22, 36, 60 }, { 22, 38, 55 }, { 22, 38, 63 },
+ { 22, 42, 60 }, { 22, 42, 63 }, { 22, 55, 60 }, { 22, 55, 63 },
+ { 22, 60, 63 }, { 23, 29, 39 }, { 23, 29, 41 }, { 23, 29, 64 },
+ { 23, 35, 56 }, { 23, 35, 59 }, { 23, 39, 56 }, { 23, 39, 64 },
+ { 23, 41, 59 }, { 23, 41, 64 }, { 23, 56, 59 }, { 23, 56, 64 },
+ { 23, 59, 64 }, { 24, 30, 40 }, { 24, 30, 42 }, { 24, 30, 65 },
+ { 24, 36, 57 }, { 24, 36, 60 }, { 24, 40, 57 }, { 24, 40, 65 },
+ { 24, 42, 60 }, { 24, 42, 65 }, { 24, 57, 60 }, { 24, 57, 65 },
+ { 24, 60, 65 }, { 25, 27, 37 }, { 25, 27, 43 }, { 25, 27, 66 },
+ { 25, 28, 38 }, { 25, 28, 43 }, { 25, 28, 67 }, { 25, 37, 58 },
+ { 25, 37, 66 }, { 25, 38, 58 }, { 25, 38, 67 }, { 25, 43, 66 },
+ { 25, 43, 67 }, { 25, 58, 66 }, { 25, 58, 67 }, { 25, 66, 67 },
+ { 26, 29, 39 }, { 26, 29, 44 }, { 26, 29, 68 }, { 26, 30, 40 },
+ { 26, 30, 44 }, { 26, 30, 69 }, { 26, 39, 61 }, { 26, 39, 68 },
+ { 26, 40, 61 }, { 26, 40, 69 }, { 26, 44, 68 }, { 26, 44, 69 },
+ { 26, 61, 68 }, { 26, 61, 69 }, { 26, 68, 69 }, { 27, 31, 41 },
+ { 27, 31, 43 }, { 27, 31, 70 }, { 27, 37, 62 }, { 27, 37, 66 },
+ { 27, 41, 62 }, { 27, 41, 70 }, { 27, 43, 66 }, { 27, 43, 70 },
+ { 27, 62, 66 }, { 27, 62, 70 }, { 27, 66, 70 }, { 28, 32, 42 },
+ { 28, 32, 43 }, { 28, 32, 71 }, { 28, 38, 63 }, { 28, 38, 67 },
+ { 28, 42, 63 }, { 28, 42, 71 }, { 28, 43, 67 }, { 28, 43, 71 },
+ { 28, 63, 67 }, { 28, 63, 71 }, { 28, 67, 71 }, { 29, 31, 41 },
+ { 29, 31, 44 }, { 29, 31, 72 }, { 29, 39, 64 }, { 29, 39, 68 },
+ { 29, 41, 64 }, { 29, 41, 72 }, { 29, 44, 68 }, { 29, 44, 72 },
+ { 29, 64, 68 }, { 29, 64, 72 }, { 29, 68, 72 }, { 30, 32, 42 },
+ { 30, 32, 44 }, { 30, 32, 73 }, { 30, 40, 65 }, { 30, 40, 69 },
+ { 30, 42, 65 }, { 30, 42, 73 }, { 30, 44, 69 }, { 30, 44, 73 },
+ { 30, 65, 69 }, { 30, 65, 73 }, { 30, 69, 73 }, { 31, 32, 43 },
+ { 31, 32, 44 }, { 31, 32, 74 }, { 31, 41, 70 }, { 31, 41, 72 },
+ { 31, 43, 70 }, { 31, 43, 74 }, { 31, 44, 72 }, { 31, 44, 74 },
+ { 31, 70, 72 }, { 31, 70, 74 }, { 31, 72, 74 }, { 32, 42, 71 },
+ { 32, 42, 73 }, { 32, 43, 71 }, { 32, 43, 74 }, { 32, 44, 73 },
+ { 32, 44, 74 }, { 32, 71, 73 }, { 32, 71, 74 }, { 32, 73, 74 },
+ { 33, 45, 46 }, { 33, 45, 47 }, { 33, 45, 75 }, { 33, 46, 50 },
+ { 33, 46, 75 }, { 33, 47, 51 }, { 33, 47, 75 }, { 33, 50, 51 },
+ { 33, 50, 75 }, { 33, 51, 75 }, { 34, 45, 48 }, { 34, 45, 49 },
+ { 34, 45, 76 }, { 34, 48, 52 }, { 34, 48, 76 }, { 34, 49, 53 },
+ { 34, 49, 76 }, { 34, 52, 53 }, { 34, 52, 76 }, { 34, 53, 76 },
+ { 35, 46, 48 }, { 35, 46, 54 }, { 35, 46, 77 }, { 35, 48, 56 },
+ { 35, 48, 77 }, { 35, 54, 59 }, { 35, 54, 77 }, { 35, 56, 59 },
+ { 35, 56, 77 }, { 35, 59, 77 }, { 36, 47, 49 }, { 36, 47, 55 },
+ { 36, 47, 78 }, { 36, 49, 57 }, { 36, 49, 78 }, { 36, 55, 60 },
+ { 36, 55, 78 }, { 36, 57, 60 }, { 36, 57, 78 }, { 36, 60, 78 },
+ { 37, 50, 54 }, { 37, 50, 58 }, { 37, 50, 79 }, { 37, 54, 62 },
+ { 37, 54, 79 }, { 37, 58, 66 }, { 37, 58, 79 }, { 37, 62, 66 },
+ { 37, 62, 79 }, { 37, 66, 79 }, { 38, 51, 55 }, { 38, 51, 58 },
+ { 38, 51, 80 }, { 38, 55, 63 }, { 38, 55, 80 }, { 38, 58, 67 },
+ { 38, 58, 80 }, { 38, 63, 67 }, { 38, 63, 80 }, { 38, 67, 80 },
+ { 39, 52, 56 }, { 39, 52, 61 }, { 39, 52, 81 }, { 39, 56, 64 },
+ { 39, 56, 81 }, { 39, 61, 68 }, { 39, 61, 81 }, { 39, 64, 68 },
+ { 39, 64, 81 }, { 39, 68, 81 }, { 40, 53, 57 }, { 40, 53, 61 },
+ { 40, 53, 82 }, { 40, 57, 65 }, { 40, 57, 82 }, { 40, 61, 69 },
+ { 40, 61, 82 }, { 40, 65, 69 }, { 40, 65, 82 }, { 40, 69, 82 },
+ { 41, 59, 62 }, { 41, 59, 64 }, { 41, 59, 83 }, { 41, 62, 70 },
+ { 41, 62, 83 }, { 41, 64, 72 }, { 41, 64, 83 }, { 41, 70, 72 },
+ { 41, 70, 83 }, { 41, 72, 83 }, { 42, 60, 63 }, { 42, 60, 65 },
+ { 42, 60, 84 }, { 42, 63, 71 }, { 42, 63, 84 }, { 42, 65, 73 },
+ { 42, 65, 84 }, { 42, 71, 73 }, { 42, 71, 84 }, { 42, 73, 84 },
+ { 43, 66, 67 }, { 43, 66, 70 }, { 43, 66, 85 }, { 43, 67, 71 },
+ { 43, 67, 85 }, { 43, 70, 74 }, { 43, 70, 85 }, { 43, 71, 74 },
+ { 43, 71, 85 }, { 43, 74, 85 }, { 44, 68, 69 }, { 44, 68, 72 },
+ { 44, 68, 86 }, { 44, 69, 73 }, { 44, 69, 86 }, { 44, 72, 74 },
+ { 44, 72, 86 }, { 44, 73, 74 }, { 44, 73, 86 }, { 44, 74, 86 },
+ { 45, 46, 48 }, { 45, 46, 75 }, { 45, 46, 87 }, { 45, 47, 49 },
+ { 45, 47, 75 }, { 45, 47, 88 }, { 45, 48, 76 }, { 45, 48, 87 },
+ { 45, 49, 76 }, { 45, 49, 88 }, { 45, 75, 87 }, { 45, 75, 88 },
+ { 45, 76, 87 }, { 45, 76, 88 }, { 45, 87, 88 }, { 46, 48, 77 },
+ { 46, 48, 87 }, { 46, 50, 54 }, { 46, 50, 75 }, { 46, 50, 89 },
+ { 46, 54, 77 }, { 46, 54, 89 }, { 46, 75, 87 }, { 46, 75, 89 },
+ { 46, 77, 87 }, { 46, 77, 89 }, { 46, 87, 89 }, { 47, 49, 78 },
+ { 47, 49, 88 }, { 47, 51, 55 }, { 47, 51, 75 }, { 47, 51, 90 },
+ { 47, 55, 78 }, { 47, 55, 90 }, { 47, 75, 88 }, { 47, 75, 90 },
+ { 47, 78, 88 }, { 47, 78, 90 }, { 47, 88, 90 }, { 48, 52, 56 },
+ { 48, 52, 76 }, { 48, 52, 91 }, { 48, 56, 77 }, { 48, 56, 91 },
+ { 48, 76, 87 }, { 48, 76, 91 }, { 48, 77, 87 }, { 48, 77, 91 },
+ { 48, 87, 91 }, { 49, 53, 57 }, { 49, 53, 76 }, { 49, 53, 92 },
+ { 49, 57, 78 }, { 49, 57, 92 }, { 49, 76, 88 }, { 49, 76, 92 },
+ { 49, 78, 88 }, { 49, 78, 92 }, { 49, 88, 92 }, { 50, 51, 58 },
+ { 50, 51, 75 }, { 50, 51, 93 }, { 50, 54, 79 }, { 50, 54, 89 },
+ { 50, 58, 79 }, { 50, 58, 93 }, { 50, 75, 89 }, { 50, 75, 93 },
+ { 50, 79, 89 }, { 50, 79, 93 }, { 50, 89, 93 }, { 51, 55, 80 },
+ { 51, 55, 90 }, { 51, 58, 80 }, { 51, 58, 93 }, { 51, 75, 90 },
+ { 51, 75, 93 }, { 51, 80, 90 }, { 51, 80, 93 }, { 51, 90, 93 },
+ { 52, 53, 61 }, { 52, 53, 76 }, { 52, 53, 94 }, { 52, 56, 81 },
+ { 52, 56, 91 }, { 52, 61, 81 }, { 52, 61, 94 }, { 52, 76, 91 },
+ { 52, 76, 94 }, { 52, 81, 91 }, { 52, 81, 94 }, { 52, 91, 94 },
+ { 53, 57, 82 }, { 53, 57, 92 }, { 53, 61, 82 }, { 53, 61, 94 },
+ { 53, 76, 92 }, { 53, 76, 94 }, { 53, 82, 92 }, { 53, 82, 94 },
+ { 53, 92, 94 }, { 54, 59, 62 }, { 54, 59, 77 }, { 54, 59, 95 },
+ { 54, 62, 79 }, { 54, 62, 95 }, { 54, 77, 89 }, { 54, 77, 95 },
+ { 54, 79, 89 }, { 54, 79, 95 }, { 54, 89, 95 }, { 55, 60, 63 },
+ { 55, 60, 78 }, { 55, 60, 96 }, { 55, 63, 80 }, { 55, 63, 96 },
+ { 55, 78, 90 }, { 55, 78, 96 }, { 55, 80, 90 }, { 55, 80, 96 },
+ { 55, 90, 96 }, { 56, 59, 64 }, { 56, 59, 77 }, { 56, 59, 97 },
+ { 56, 64, 81 }, { 56, 64, 97 }, { 56, 77, 91 }, { 56, 77, 97 },
+ { 56, 81, 91 }, { 56, 81, 97 }, { 56, 91, 97 }, { 57, 60, 65 },
+ { 57, 60, 78 }, { 57, 60, 98 }, { 57, 65, 82 }, { 57, 65, 98 },
+ { 57, 78, 92 }, { 57, 78, 98 }, { 57, 82, 92 }, { 57, 82, 98 },
+ { 57, 92, 98 }, { 58, 66, 67 }, { 58, 66, 79 }, { 58, 66, 99 },
+ { 58, 67, 80 }, { 58, 67, 99 }, { 58, 79, 93 }, { 58, 79, 99 },
+ { 58, 80, 93 }, { 58, 80, 99 }, { 58, 93, 99 }, { 59, 62, 83 },
+ { 59, 62, 95 }, { 59, 64, 83 }, { 59, 64, 97 }, { 59, 77, 95 },
+ { 59, 77, 97 }, { 59, 83, 95 }, { 59, 83, 97 }, { 59, 95, 97 },
+ { 60, 63, 84 }, { 60, 63, 96 }, { 60, 65, 84 }, { 60, 65, 98 },
+ { 60, 78, 96 }, { 60, 78, 98 }, { 60, 84, 96 }, { 60, 84, 98 },
+ { 60, 96, 98 }, { 61, 68, 69 }, { 61, 68, 81 }, { 61, 68, 100 },
+ { 61, 69, 82 }, { 61, 69, 100 }, { 61, 81, 94 }, { 61, 81, 100 },
+ { 61, 82, 94 }, { 61, 82, 100 }, { 61, 94, 100 }, { 62, 66, 70 },
+ { 62, 66, 79 }, { 62, 66, 101 }, { 62, 70, 83 }, { 62, 70, 101 },
+ { 62, 79, 95 }, { 62, 79, 101 }, { 62, 83, 95 }, { 62, 83, 101 },
+ { 62, 95, 101 }, { 63, 67, 71 }, { 63, 67, 80 }, { 63, 67, 102 },
+ { 63, 71, 84 }, { 63, 71, 102 }, { 63, 80, 96 }, { 63, 80, 102 },
+ { 63, 84, 96 }, { 63, 84, 102 }, { 63, 96, 102 }, { 64, 68, 72 },
+ { 64, 68, 81 }, { 64, 68, 103 }, { 64, 72, 83 }, { 64, 72, 103 },
+ { 64, 81, 97 }, { 64, 81, 103 }, { 64, 83, 97 }, { 64, 83, 103 },
+ { 64, 97, 103 }, { 65, 69, 73 }, { 65, 69, 82 }, { 65, 69, 104 },
+ { 65, 73, 84 }, { 65, 73, 104 }, { 65, 82, 98 }, { 65, 82, 104 },
+ { 65, 84, 98 }, { 65, 84, 104 }, { 65, 98, 104 }, { 66, 67, 85 },
+ { 66, 67, 99 }, { 66, 70, 85 }, { 66, 70, 101 }, { 66, 79, 99 },
+ { 66, 79, 101 }, { 66, 85, 99 }, { 66, 85, 101 }, { 66, 99, 101 },
+ { 67, 71, 85 }, { 67, 71, 102 }, { 67, 80, 99 }, { 67, 80, 102 },
+ { 67, 85, 99 }, { 67, 85, 102 }, { 67, 99, 102 }, { 68, 69, 86 },
+ { 68, 69, 100 }, { 68, 72, 86 }, { 68, 72, 103 }, { 68, 81, 100 },
+ { 68, 81, 103 }, { 68, 86, 100 }, { 68, 86, 103 }, { 68, 100, 103 },
+ { 69, 73, 86 }, { 69, 73, 104 }, { 69, 82, 100 }, { 69, 82, 104 },
+ { 69, 86, 100 }, { 69, 86, 104 }, { 69, 100, 104 }, { 70, 72, 74 },
+ { 70, 72, 83 }, { 70, 72, 105 }, { 70, 74, 85 }, { 70, 74, 105 },
+ { 70, 83, 101 }, { 70, 83, 105 }, { 70, 85, 101 }, { 70, 85, 105 },
+ { 70, 101, 105 }, { 71, 73, 74 }, { 71, 73, 84 }, { 71, 73, 106 },
+ { 71, 74, 85 }, { 71, 74, 106 }, { 71, 84, 102 }, { 71, 84, 106 },
+ { 71, 85, 102 }, { 71, 85, 106 }, { 71, 102, 106 }, { 72, 74, 86 },
+ { 72, 74, 105 }, { 72, 83, 103 }, { 72, 83, 105 }, { 72, 86, 103 },
+ { 72, 86, 105 }, { 72, 103, 105 }, { 73, 74, 86 }, { 73, 74, 106 },
+ { 73, 84, 104 }, { 73, 84, 106 }, { 73, 86, 104 }, { 73, 86, 106 },
+ { 73, 104, 106 }, { 74, 85, 105 }, { 74, 85, 106 }, { 74, 86, 105 },
+ { 74, 86, 106 }, { 74, 105, 106 }, { 75, 87, 88 }, { 75, 87, 89 },
+ { 75, 87, 107 }, { 75, 88, 90 }, { 75, 88, 107 }, { 75, 89, 93 },
+ { 75, 89, 107 }, { 75, 90, 93 }, { 75, 90, 107 }, { 75, 93, 107 },
+ { 76, 87, 88 }, { 76, 87, 91 }, { 76, 87, 108 }, { 76, 88, 92 },
+ { 76, 88, 108 }, { 76, 91, 94 }, { 76, 91, 108 }, { 76, 92, 94 },
+ { 76, 92, 108 }, { 76, 94, 108 }, { 77, 87, 89 }, { 77, 87, 91 },
+ { 77, 87, 109 }, { 77, 89, 95 }, { 77, 89, 109 }, { 77, 91, 97 },
+ { 77, 91, 109 }, { 77, 95, 97 }, { 77, 95, 109 }, { 77, 97, 109 },
+ { 78, 88, 90 }, { 78, 88, 92 }, { 78, 88, 110 }, { 78, 90, 96 },
+ { 78, 90, 110 }, { 78, 92, 98 }, { 78, 92, 110 }, { 78, 96, 98 },
+ { 78, 96, 110 }, { 78, 98, 110 }, { 79, 89, 93 }, { 79, 89, 95 },
+ { 79, 89, 111 }, { 79, 93, 99 }, { 79, 93, 111 }, { 79, 95, 101 },
+ { 79, 95, 111 }, { 79, 99, 101 }, { 79, 99, 111 }, { 79, 101, 111 },
+ { 80, 90, 93 }, { 80, 90, 96 }, { 80, 90, 112 }, { 80, 93, 99 },
+ { 80, 93, 112 }, { 80, 96, 102 }, { 80, 96, 112 }, { 80, 99, 102 },
+ { 80, 99, 112 }, { 80, 102, 112 }, { 81, 91, 94 }, { 81, 91, 97 },
+ { 81, 91, 113 }, { 81, 94, 100 }, { 81, 94, 113 }, { 81, 97, 103 },
+ { 81, 97, 113 }, { 81, 100, 103 }, { 81, 100, 113 }, { 81, 103, 113 },
+ { 82, 92, 94 }, { 82, 92, 98 }, { 82, 92, 114 }, { 82, 94, 100 },
+ { 82, 94, 114 }, { 82, 98, 104 }, { 82, 98, 114 }, { 82, 100, 104 },
+ { 82, 100, 114 }, { 82, 104, 114 }, { 83, 95, 97 }, { 83, 95, 101 },
+ { 83, 95, 115 }, { 83, 97, 103 }, { 83, 97, 115 }, { 83, 101, 105 },
+ { 83, 101, 115 }, { 83, 103, 105 }, { 83, 103, 115 }, { 83, 105, 115 },
+ { 84, 96, 98 }, { 84, 96, 102 }, { 84, 96, 116 }, { 84, 98, 104 },
+ { 84, 98, 116 }, { 84, 102, 106 }, { 84, 102, 116 }, { 84, 104, 106 },
+ { 84, 104, 116 }, { 84, 106, 116 }, { 85, 99, 101 }, { 85, 99, 102 },
+ { 85, 99, 117 }, { 85, 101, 105 }, { 85, 101, 117 }, { 85, 102, 106 },
+ { 85, 102, 117 }, { 85, 105, 106 }, { 85, 105, 117 }, { 85, 106, 117 },
+ { 86, 100, 103 }, { 86, 100, 104 }, { 86, 100, 118 }, { 86, 103, 105 },
+ { 86, 103, 118 }, { 86, 104, 106 }, { 86, 104, 118 }, { 86, 105, 106 },
+ { 86, 105, 118 }, { 86, 106, 118 }, { 87, 88, 107 }, { 87, 88, 108 },
+ { 87, 89, 107 }, { 87, 89, 109 }, { 87, 91, 108 }, { 87, 91, 109 },
+ { 87, 107, 108 }, { 87, 107, 109 }, { 87, 108, 109 }, { 88, 90, 107 },
+ { 88, 90, 110 }, { 88, 92, 108 }, { 88, 92, 110 }, { 88, 107, 108 },
+ { 88, 107, 110 }, { 88, 108, 110 }, { 89, 93, 107 }, { 89, 93, 111 },
+ { 89, 95, 109 }, { 89, 95, 111 }, { 89, 107, 109 }, { 89, 107, 111 },
+ { 89, 109, 111 }, { 90, 93, 107 }, { 90, 93, 112 }, { 90, 96, 110 },
+ { 90, 96, 112 }, { 90, 107, 110 }, { 90, 107, 112 }, { 90, 110, 112 },
+ { 91, 94, 108 }, { 91, 94, 113 }, { 91, 97, 109 }, { 91, 97, 113 },
+ { 91, 108, 109 }, { 91, 108, 113 }, { 91, 109, 113 }, { 92, 94, 108 },
+ { 92, 94, 114 }, { 92, 98, 110 }, { 92, 98, 114 }, { 92, 108, 110 },
+ { 92, 108, 114 }, { 92, 110, 114 }, { 93, 99, 111 }, { 93, 99, 112 },
+ { 93, 107, 111 }, { 93, 107, 112 }, { 93, 111, 112 }, { 94, 100, 113 },
+ { 94, 100, 114 }, { 94, 108, 113 }, { 94, 108, 114 }, { 94, 113, 114 },
+ { 95, 97, 109 }, { 95, 97, 115 }, { 95, 101, 111 }, { 95, 101, 115 },
+ { 95, 109, 111 }, { 95, 109, 115 }, { 95, 111, 115 }, { 96, 98, 110 },
+ { 96, 98, 116 }, { 96, 102, 112 }, { 96, 102, 116 }, { 96, 110, 112 },
+ { 96, 110, 116 }, { 96, 112, 116 }, { 97, 103, 113 }, { 97, 103, 115 },
+ { 97, 109, 113 }, { 97, 109, 115 }, { 97, 113, 115 }, { 98, 104, 114 },
+ { 98, 104, 116 }, { 98, 110, 114 }, { 98, 110, 116 }, { 98, 114, 116 },
+ { 99, 101, 111 }, { 99, 101, 117 }, { 99, 102, 112 }, { 99, 102, 117 },
+ { 99, 111, 112 }, { 99, 111, 117 }, { 99, 112, 117 }, { 100, 103, 113 },
+ { 100, 103, 118 }, { 100, 104, 114 }, { 100, 104, 118 }, { 100, 113, 114 },
+ { 100, 113, 118 }, { 100, 114, 118 }, { 101, 105, 115 }, { 101, 105, 117 },
+ { 101, 111, 115 }, { 101, 111, 117 }, { 101, 115, 117 }, { 102, 106, 116 },
+ { 102, 106, 117 }, { 102, 112, 116 }, { 102, 112, 117 }, { 102, 116, 117 },
+ { 103, 105, 115 }, { 103, 105, 118 }, { 103, 113, 115 }, { 103, 113, 118 },
+ { 103, 115, 118 }, { 104, 106, 116 }, { 104, 106, 118 }, { 104, 114, 116 },
+ { 104, 114, 118 }, { 104, 116, 118 }, { 105, 106, 117 }, { 105, 106, 118 },
+ { 105, 115, 117 }, { 105, 115, 118 }, { 105, 117, 118 }, { 106, 116, 117 },
+ { 106, 116, 118 }, { 106, 117, 118 }, { 107, 108, 109 }, { 107, 108, 110 },
+ { 107, 108, 119 }, { 107, 109, 111 }, { 107, 109, 119 }, { 107, 110, 112 },
+ { 107, 110, 119 }, { 107, 111, 112 }, { 107, 111, 119 }, { 107, 112, 119 },
+ { 108, 109, 113 }, { 108, 109, 119 }, { 108, 110, 114 }, { 108, 110, 119 },
+ { 108, 113, 114 }, { 108, 113, 119 }, { 108, 114, 119 }, { 109, 111, 115 },
+ { 109, 111, 119 }, { 109, 113, 115 }, { 109, 113, 119 }, { 109, 115, 119 },
+ { 110, 112, 116 }, { 110, 112, 119 }, { 110, 114, 116 }, { 110, 114, 119 },
+ { 110, 116, 119 }, { 111, 112, 117 }, { 111, 112, 119 }, { 111, 115, 117 },
+ { 111, 115, 119 }, { 111, 117, 119 }, { 112, 116, 117 }, { 112, 116, 119 },
+ { 112, 117, 119 }, { 113, 114, 118 }, { 113, 114, 119 }, { 113, 115, 118 },
+ { 113, 115, 119 }, { 113, 118, 119 }, { 114, 116, 118 }, { 114, 116, 119 },
+ { 114, 118, 119 }, { 115, 117, 118 }, { 115, 117, 119 }, { 115, 118, 119 },
+ { 116, 117, 118 }, { 116, 117, 119 }, { 116, 118, 119 }, { 117, 118, 119 }
+};
+
+
+
+/* Add a rotation around the wx-plane to the matrix m. */
+static void rotatewx(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][2];
+ m[i][1] = c*u+s*v;
+ m[i][2] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wy-plane to the matrix m. */
+static void rotatewy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][2];
+ m[i][0] = c*u-s*v;
+ m[i][2] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wz-plane to the matrix m. */
+static void rotatewz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][1];
+ m[i][0] = c*u+s*v;
+ m[i][1] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xy-plane to the matrix m. */
+static void rotatexy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][2];
+ v = m[i][3];
+ m[i][2] = c*u+s*v;
+ m[i][3] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xz-plane to the matrix m. */
+static void rotatexz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][3];
+ m[i][1] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the yz-plane to the matrix m. */
+static void rotateyz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][3];
+ m[i][0] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Compute the rotation matrix m from the rotation angles. */
+static void rotateall(float al, float be, float de, float ze, float et,
+ float th, float m[4][4])
+{
+ int i, j;
+
+ for (i=0; i<4; i++)
+ for (j=0; j<4; j++)
+ m[i][j] = (i==j);
+ rotatewx(m,al);
+ rotatewy(m,be);
+ rotatewz(m,de);
+ rotatexz(m,et);
+ rotatexy(m,ze);
+ rotateyz(m,th);
+}
+
+
+/* Multiply two rotation matrices: o=m*n. */
+static void mult_rotmat(float m[4][4], float n[4][4], float o[4][4])
+{
+ int i, j, k;
+
+ for (i=0; i<4; i++)
+ {
+ for (j=0; j<4; j++)
+ {
+ o[i][j] = 0.0;
+ for (k=0; k<4; k++)
+ o[i][j] += m[i][k]*n[k][j];
+ }
+ }
+}
+
+
+/* Compute a 4D rotation matrix from two unit quaternions. */
+static void quats_to_rotmat(float p[4], float q[4], float m[4][4])
+{
+ double al, be, de, ze, et, th;
+ double r00, r01, r02, r12, r22;
+
+ r00 = 1.0-2.0*(p[1]*p[1]+p[2]*p[2]);
+ r01 = 2.0*(p[0]*p[1]+p[2]*p[3]);
+ r02 = 2.0*(p[2]*p[0]-p[1]*p[3]);
+ r12 = 2.0*(p[1]*p[2]+p[0]*p[3]);
+ r22 = 1.0-2.0*(p[1]*p[1]+p[0]*p[0]);
+
+ al = atan2(-r12,r22)*180.0/M_PI;
+ be = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ de = atan2(-r01,r00)*180.0/M_PI;
+
+ r00 = 1.0-2.0*(q[1]*q[1]+q[2]*q[2]);
+ r01 = 2.0*(q[0]*q[1]+q[2]*q[3]);
+ r02 = 2.0*(q[2]*q[0]-q[1]*q[3]);
+ r12 = 2.0*(q[1]*q[2]+q[0]*q[3]);
+ r22 = 1.0-2.0*(q[1]*q[1]+q[0]*q[0]);
+
+ et = atan2(-r12,r22)*180.0/M_PI;
+ th = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ ze = atan2(-r01,r00)*180.0/M_PI;
+
+ rotateall(al,be,de,ze,et,-th,m);
+}
+
+
+/* Compute the normal vector of a plane based on three points in the plane. */
+static void normal(const float *p, const float *q, const float *r,
+ float *n)
+{
+ float u[3], v[3], t;
+
+ u[0] = q[0]-p[0];
+ u[1] = q[1]-p[1];
+ u[2] = q[2]-p[2];
+ v[0] = r[0]-p[0];
+ v[1] = r[1]-p[1];
+ v[2] = r[2]-p[2];
+ n[0] = u[1]*v[2]-u[2]*v[1];
+ n[1] = u[2]*v[0]-u[0]*v[2];
+ n[2] = u[0]*v[1]-u[1]*v[0];
+ t = sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);
+ n[0] /= t;
+ n[1] /= t;
+ n[2] /= t;
+}
+
+
+/* Project an array of vertices from 4d to 3d. */
+static void project(ModeInfo *mi, const float vert[][4], float v[][4], int num)
+{
+ float s, q1[4], q2[4], r1[4][4], r2[4][4], m[4][4];
+ int i, j, k;
+ polytopesstruct *pp = &poly[MI_SCREEN(mi)];
+
+ rotateall(pp->alpha,pp->beta,pp->delta,pp->zeta,pp->eta,pp->theta,r1);
+
+ gltrackball_get_quaternion(pp->trackballs[0],q1);
+ gltrackball_get_quaternion(pp->trackballs[1],q2);
+ quats_to_rotmat(q1,q2,r2);
+
+ mult_rotmat(r2,r1,m);
+
+ /* Project the vertices from 4d to 3d. */
+ for (i=0; i<num; i++)
+ {
+ for (j=0; j<4; j++)
+ {
+ s = 0.0;
+ for (k=0; k<4; k++)
+ s += m[j][k]*vert[i][k];
+ v[i][j] = s+offset4d[j];
+ }
+ if (projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (j=0; j<3; j++)
+ v[i][j] /= 2.0;
+ v[i][3] = 1.0;
+ }
+ else
+ {
+ for (j=0; j<4; j++)
+ v[i][j] /= v[i][3];
+ }
+ }
+
+ /* Move the projected vertices along the z-axis so that they become visible
+ in the viewport. */
+ for (i=0; i<num; i++)
+ {
+ for (j=0; j<4; j++)
+ v[i][j] += offset3d[j];
+ }
+}
+
+
+/* Draw a single polytope. */
+static void draw(ModeInfo *mi,
+ float v[][4],
+ const int edge[][2], int num_edge,
+ const int face[], int num_face,
+ int vert_per_face,
+ float edge_color[][4],
+ float face_color[][4],
+ float face_color_trans[][4])
+{
+ int i, j;
+ float n[3];
+ GLfloat red[4] = { 1.0, 0.0, 0.0, 1.0 };
+ GLfloat red_trans[4] = { 1.0, 0.0, 0.0, 1.0 };
+
+ mi->polygon_count = 0;
+ if (display_mode == DISP_WIREFRAME)
+ {
+ if (color_mode == COLORS_SINGLE)
+ glColor4fv(red);
+ glBegin(GL_LINES);
+ for (i=0; i<num_edge; i++)
+ {
+ if (color_mode == COLORS_DEPTH)
+ glColor4fv(edge_color[i]);
+ glVertex4fv(v[edge[i][0]]);
+ glVertex4fv(v[edge[i][1]]);
+ }
+ glEnd();
+ mi->polygon_count = num_edge;
+ }
+ else
+ {
+ if (color_mode == COLORS_SINGLE)
+ {
+ red_trans[3] = face_color_trans[0][3]/2.0;
+ if (display_mode == DISP_TRANSPARENT)
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,red_trans);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,red);
+ }
+ for (i=0; i<num_face; i++)
+ {
+ glBegin(GL_POLYGON);
+ if (color_mode == COLORS_DEPTH)
+ {
+ if (display_mode == DISP_TRANSPARENT)
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,
+ face_color_trans[i]);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,
+ face_color[i]);
+ }
+ normal(v[face[i*vert_per_face]],v[face[i*vert_per_face+1]],
+ v[face[i*vert_per_face+2]],n);
+ glNormal3fv(n);
+ for (j=0; j<vert_per_face; j++)
+ glVertex4fv(v[face[i*vert_per_face+j]]);
+ glEnd();
+ }
+ mi->polygon_count = num_face;
+ }
+}
+
+
+/* Draw a 5-cell {3,3,3} projected into 3d. */
+static void cell_5(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+ float v[NUM_VERT_5][4];
+
+ project(mi,vert_5,v,NUM_VERT_5);
+ draw(mi,v,edge_5,NUM_EDGE_5,(int *)face_5,NUM_FACE_5,
+ VERT_PER_FACE_5,hp->edge_color_5,hp->face_color_5,
+ hp->face_color_trans_5);
+}
+
+
+/* Draw a 8-cell {4,3,3} projected into 3d. */
+static void cell_8(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+ float v[NUM_VERT_8][4];
+
+ project(mi,vert_8,v,NUM_VERT_8);
+ draw(mi,v,edge_8,NUM_EDGE_8,(int *)face_8,NUM_FACE_8,
+ VERT_PER_FACE_8,hp->edge_color_8,hp->face_color_8,
+ hp->face_color_trans_8);
+}
+
+
+/* Draw a 16-cell {3,3,4} projected into 3d. */
+static void cell_16(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+ float v[NUM_VERT_16][4];
+
+ project(mi,vert_16,v,NUM_VERT_16);
+ draw(mi,v,edge_16,NUM_EDGE_16,(int *)face_16,NUM_FACE_16,
+ VERT_PER_FACE_16,hp->edge_color_16,hp->face_color_16,
+ hp->face_color_trans_16);
+}
+
+
+/* Draw a 24-cell {3,4,3} projected into 3d. */
+static void cell_24(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+ float v[NUM_VERT_24][4];
+
+ project(mi,vert_24,v,NUM_VERT_24);
+ draw(mi,v,edge_24,NUM_EDGE_24,(int *)face_24,NUM_FACE_24,
+ VERT_PER_FACE_24,hp->edge_color_24,hp->face_color_24,
+ hp->face_color_trans_24);
+}
+
+
+/* Draw a 120-cell {5,3,3} projected into 3d. */
+static void cell_120(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+ float v[NUM_VERT_120][4];
+
+ project(mi,vert_120,v,NUM_VERT_120);
+ draw(mi,v,edge_120,NUM_EDGE_120,(int *)face_120,NUM_FACE_120,
+ VERT_PER_FACE_120,hp->edge_color_120,hp->face_color_120,
+ hp->face_color_trans_120);
+}
+
+
+/* Draw a 600-cell {3,3,5} projected into 3d. */
+static void cell_600(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+ float v[NUM_VERT_600][4];
+
+ project(mi,vert_600,v,NUM_VERT_600);
+ draw(mi,v,edge_600,NUM_EDGE_600,(int *)face_600,NUM_FACE_600,
+ VERT_PER_FACE_600,hp->edge_color_600,hp->face_color_600,
+ hp->face_color_trans_600);
+}
+
+
+/* Compute a color based on the w-depth of a point. */
+static void color(float depth, float alpha, float min, float max,
+ float color[4])
+{
+ double d, t;
+ int s;
+
+ d = (depth-min)/(max-min);
+ s = floor(d*4.0);
+ t = d*4.0-s;
+ if (s < 0)
+ s += 6;
+ if (s >= 6)
+ s -= 6;
+ switch (s)
+ {
+ case 0:
+ color[0] = 1.0;
+ color[1] = t;
+ color[2] = 0.0;
+ break;
+ case 1:
+ color[0] = 1.0-t;
+ color[1] = 1.0;
+ color[2] = 0.0;
+ break;
+ case 2:
+ color[0] = 0.0;
+ color[1] = 1.0;
+ color[2] = t;
+ break;
+ case 3:
+ color[0] = 0.0;
+ color[1] = 1.0-t;
+ color[2] = 1.0;
+ break;
+ case 4:
+ color[0] = t;
+ color[1] = 0.0;
+ color[2] = 1.0;
+ break;
+ case 5:
+ color[0] = 1.0;
+ color[1] = 0.0;
+ color[2] = 1.0-t;
+ break;
+ }
+ color[3] = alpha;
+}
+
+
+/* Set the colors of a single polytope's edges and faces. */
+static void colors(const float vert[][4],
+ const int edge[][2], int num_edge,
+ const int face[], int num_face,
+ int vert_per_face,
+ float edge_color[][4],
+ float face_color[][4],
+ float face_color_trans[][4],
+ float alpha,
+ float min_edge_depth, float max_edge_depth,
+ float min_face_depth, float max_face_depth)
+{
+ int i, j;
+ float depth;
+
+ for (i=0; i<num_edge; i++)
+ {
+ depth = (vert[edge[i][0]][3]+vert[edge[i][1]][3])/2.0;
+ color(depth,1.0,min_edge_depth,max_edge_depth,edge_color[i]);
+ }
+ for (i=0; i<num_face; i++)
+ {
+ depth = 0.0;
+ for (j=0; j<vert_per_face; j++)
+ depth += vert[face[i*vert_per_face+j]][3];
+ depth /= vert_per_face;
+ color(depth,1.0,min_face_depth,max_face_depth,face_color[i]);
+ color(depth,alpha,min_face_depth,max_face_depth,face_color_trans[i]);
+ }
+}
+
+
+/* Set the colors of the polytopes' edges and faces. */
+static void set_colors(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+ /* 5-cell. */
+ colors(vert_5,edge_5,NUM_EDGE_5,(int *)face_5,NUM_FACE_5,
+ VERT_PER_FACE_5,hp->edge_color_5,hp->face_color_5,
+ hp->face_color_trans_5,0.5,MIN_EDGE_DEPTH_5,
+ MAX_EDGE_DEPTH_5,MIN_FACE_DEPTH_5,MAX_FACE_DEPTH_5);
+
+ /* 8-cell. */
+ colors(vert_8,edge_8,NUM_EDGE_8,(int *)face_8,NUM_FACE_8,
+ VERT_PER_FACE_8,hp->edge_color_8,hp->face_color_8,
+ hp->face_color_trans_8,0.4,MIN_EDGE_DEPTH_8,
+ MAX_EDGE_DEPTH_8,MIN_FACE_DEPTH_8,MAX_FACE_DEPTH_8);
+
+ /* 16-cell. */
+ colors(vert_16,edge_16,NUM_EDGE_16,(int *)face_16,NUM_FACE_16,
+ VERT_PER_FACE_16,hp->edge_color_16,hp->face_color_16,
+ hp->face_color_trans_16,0.25,MIN_EDGE_DEPTH_16,
+ MAX_EDGE_DEPTH_16,MIN_FACE_DEPTH_16,MAX_FACE_DEPTH_16);
+
+ /* 24-cell. */
+ colors(vert_24,edge_24,NUM_EDGE_24,(int *)face_24,NUM_FACE_24,
+ VERT_PER_FACE_24,hp->edge_color_24,hp->face_color_24,
+ hp->face_color_trans_24,0.25,MIN_EDGE_DEPTH_24,
+ MAX_EDGE_DEPTH_24,MIN_FACE_DEPTH_24,MAX_FACE_DEPTH_24);
+
+ /* 120-cell. */
+ colors(vert_120,edge_120,NUM_EDGE_120,(int *)face_120,NUM_FACE_120,
+ VERT_PER_FACE_120,hp->edge_color_120,hp->face_color_120,
+ hp->face_color_trans_120,0.15,MIN_EDGE_DEPTH_120,
+ MAX_EDGE_DEPTH_120,MIN_FACE_DEPTH_120,MAX_FACE_DEPTH_120);
+
+ /* 600-cell. */
+ colors(vert_600,edge_600,NUM_EDGE_600,(int *)face_600,NUM_FACE_600,
+ VERT_PER_FACE_600,hp->edge_color_600,hp->face_color_600,
+ hp->face_color_trans_600,0.06,MIN_EDGE_DEPTH_600,
+ MAX_EDGE_DEPTH_600,MIN_FACE_DEPTH_600,MAX_FACE_DEPTH_600);
+}
+
+
+static void init(ModeInfo *mi)
+{
+ polytopesstruct *pp = &poly[MI_SCREEN(mi)];
+
+ set_colors(mi);
+
+ pp->alpha = 0.0;
+ pp->beta = 0.0;
+ pp->delta = 0.0;
+ pp->zeta = 0.0;
+ pp->eta = 0.0;
+ pp->theta = 0.0;
+
+ pp->tick = 0;
+ pp->poly = 0;
+}
+
+
+/* Redisplay the polytopes. */
+static void display_polytopes(ModeInfo *mi)
+{
+ polytopesstruct *pp = &poly[MI_SCREEN(mi)];
+
+ if (!pp->button_pressed)
+ {
+ pp->alpha += speed_wx * pp->speed_scale;
+ if (pp->alpha >= 360.0)
+ pp->alpha -= 360.0;
+ pp->beta += speed_wy * pp->speed_scale;
+ if (pp->beta >= 360.0)
+ pp->beta -= 360.0;
+ pp->delta += speed_wz * pp->speed_scale;
+ if (pp->delta >= 360.0)
+ pp->delta -= 360.0;
+ pp->zeta += speed_xy * pp->speed_scale;
+ if (pp->zeta >= 360.0)
+ pp->zeta -= 360.0;
+ pp->eta += speed_xz * pp->speed_scale;
+ if (pp->eta >= 360.0)
+ pp->eta -= 360.0;
+ pp->theta += speed_yz * pp->speed_scale;
+ if (pp->theta >= 360.0)
+ pp->theta -= 360.0;
+ }
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (projection_3d == DISP_3D_ORTHOGRAPHIC)
+ {
+ if (pp->aspect >= 1.0)
+ glOrtho(-pp->aspect,pp->aspect,-1.0,1.0,0.1,100.0);
+ else
+ glOrtho(-1.0,1.0,-1.0/pp->aspect,1.0/pp->aspect,0.1,100.0);
+ }
+ else
+ {
+ gluPerspective(60.0,pp->aspect,0.1,100.0);
+ }
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ if (pp->tick == 0)
+ {
+ if (polytope == POLYTOPE_RANDOM)
+ pp->poly = random() % (POLYTOPE_LAST_CELL+1);
+ else
+ pp->poly = polytope;
+ }
+ if (++pp->tick > 1000)
+ pp->tick = 0;
+
+ if (pp->poly == POLYTOPE_5_CELL)
+ cell_5(mi);
+ else if (pp->poly == POLYTOPE_8_CELL)
+ cell_8(mi);
+ else if (pp->poly == POLYTOPE_16_CELL)
+ cell_16(mi);
+ else if (pp->poly == POLYTOPE_24_CELL)
+ cell_24(mi);
+ else if (pp->poly == POLYTOPE_120_CELL)
+ cell_120(mi);
+ else if (pp->poly == POLYTOPE_600_CELL)
+ cell_600(mi);
+ else
+ abort();
+}
+
+
+ENTRYPOINT void reshape_polytopes(ModeInfo *mi, int width, int height)
+{
+ polytopesstruct *pp = &poly[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ }
+
+ pp->WindW = (GLint)width;
+ pp->WindH = (GLint)height;
+ glViewport(0,y,width,height);
+ pp->aspect = (GLfloat)width/(GLfloat)height;
+}
+
+
+ENTRYPOINT Bool polytopes_handle_event(ModeInfo *mi, XEvent *event)
+{
+ polytopesstruct *pp = &poly[MI_SCREEN(mi)];
+ KeySym sym = 0;
+ char c = 0;
+
+ if (event->xany.type == KeyPress || event->xany.type == KeyRelease)
+ XLookupString (&event->xkey, &c, 1, &sym, 0);
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ pp->button_pressed = True;
+ gltrackball_start(pp->trackballs[pp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ pp->button_pressed = False;
+ return True;
+ }
+ else if (event->xany.type == KeyPress)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ pp->current_trackball = 1;
+ if (pp->button_pressed)
+ gltrackball_start(pp->trackballs[pp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == KeyRelease)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ pp->current_trackball = 0;
+ if (pp->button_pressed)
+ gltrackball_start(pp->trackballs[pp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == MotionNotify && pp->button_pressed)
+ {
+ gltrackball_track(pp->trackballs[pp->current_trackball],
+ event->xmotion.x, event->xmotion.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+
+ return False;
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize polytopes. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void init_polytopes(ModeInfo *mi)
+{
+ polytopesstruct *pp;
+
+ MI_INIT(mi, poly);
+ pp = &poly[MI_SCREEN(mi)];
+
+ pp->trackballs[0] = gltrackball_init(True);
+ pp->trackballs[1] = gltrackball_init(True);
+ pp->current_trackball = 0;
+ pp->button_pressed = False;
+
+ /* Set the display mode. */
+ if (!strcasecmp(mode,"wireframe") || !strcasecmp(mode,"0"))
+ {
+ display_mode = DISP_WIREFRAME;
+ }
+ else if (!strcasecmp(mode,"surface") || !strcasecmp(mode,"1"))
+ {
+ display_mode = DISP_SURFACE;
+ }
+ else if (!strcasecmp(mode,"transparent") || !strcasecmp(mode,"2"))
+ {
+ display_mode = DISP_TRANSPARENT;
+ }
+ else
+ {
+ display_mode = DISP_TRANSPARENT;
+ }
+
+ /* Set the Klein bottle. */
+ if (!strcasecmp(poly_str,"random") || !strcasecmp(poly_str,"-1"))
+ {
+ polytope = POLYTOPE_RANDOM;
+ }
+ else if (!strcasecmp(poly_str,"5-cell") || !strcasecmp(poly_str,"0"))
+ {
+ polytope = POLYTOPE_5_CELL;
+ }
+ else if (!strcasecmp(poly_str,"8-cell") || !strcasecmp(poly_str,"1"))
+ {
+ polytope = POLYTOPE_8_CELL;
+ }
+ else if (!strcasecmp(poly_str,"16-cell") || !strcasecmp(poly_str,"2"))
+ {
+ polytope = POLYTOPE_16_CELL;
+ }
+ else if (!strcasecmp(poly_str,"24-cell") || !strcasecmp(poly_str,"3"))
+ {
+ polytope = POLYTOPE_24_CELL;
+ }
+ else if (!strcasecmp(poly_str,"120-cell") || !strcasecmp(poly_str,"4"))
+ {
+ polytope = POLYTOPE_120_CELL;
+ }
+ else if (!strcasecmp(poly_str,"600-cell") || !strcasecmp(poly_str,"5"))
+ {
+ polytope = POLYTOPE_600_CELL;
+ }
+ else
+ {
+ polytope = POLYTOPE_RANDOM;
+ }
+
+ /* Set the color mode. */
+ if (!strcasecmp(color_str,"single") || !strcasecmp(color_str,"0"))
+ {
+ color_mode = COLORS_SINGLE;
+ }
+ else if (!strcasecmp(color_str,"depth") || !strcasecmp(color_str,"1"))
+ {
+ color_mode = COLORS_DEPTH;
+ }
+ else
+ {
+ color_mode = COLORS_DEPTH;
+ }
+
+ /* Set the 3d projection mode. */
+ if (!strcasecmp(proj_3d,"perspective") || !strcasecmp(proj_3d,"0"))
+ {
+ projection_3d = DISP_3D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_3d,"orthographic") || !strcasecmp(proj_3d,"1"))
+ {
+ projection_3d = DISP_3D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ projection_3d = DISP_3D_PERSPECTIVE;
+ }
+
+ /* Set the 4d projection mode. */
+ if (!strcasecmp(proj_4d,"perspective") || !strcasecmp(proj_4d,"0"))
+ {
+ projection_4d = DISP_4D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_4d,"orthographic") || !strcasecmp(proj_4d,"1"))
+ {
+ projection_4d = DISP_4D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ projection_4d = DISP_4D_PERSPECTIVE;
+ }
+
+ /* make multiple screens rotate at slightly different rates. */
+ pp->speed_scale = 0.9 + frand(0.3);
+
+ if ((pp->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_polytopes(mi,MI_WIDTH(mi),MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ init(mi);
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void draw_polytopes(ModeInfo *mi)
+{
+ static const GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
+ static const GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_specular[] = { 0.0, 0.0, 0.0, 1.0 };
+ static const GLfloat light_position[] = { 0.0, 0.0, 1.0, 0.0 };
+ static const GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ polytopesstruct *hp;
+
+ if (poly == NULL)
+ return;
+ hp = &poly[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+ if (!hp->glx_context)
+ return;
+
+ glXMakeCurrent(display,window,*(hp->glx_context));
+
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (projection_3d == DISP_3D_PERSPECTIVE)
+ gluPerspective(60.0,1.0,0.1,100.0);
+ else
+ glOrtho(-1.0,1.0,-1.0,1.0,0.1,100.0);;
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ if (display_mode == DISP_WIREFRAME)
+ {
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_BLEND);
+ }
+ else if (display_mode == DISP_SURFACE)
+ {
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LESS);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,0.0);
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ }
+ else if (display_mode == DISP_TRANSPARENT)
+ {
+ glDisable(GL_DEPTH_TEST);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,0.0);
+ glDepthMask(GL_FALSE);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ }
+ else
+ {
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_BLEND);
+ }
+
+
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ display_polytopes(mi);
+
+ if (MI_IS_FPS(mi))
+ do_fps (mi);
+
+ glFlush();
+
+ glXSwapBuffers(display,window);
+}
+
+
+#ifndef STANDALONE
+ENTRYPOINT void change_polytopes(ModeInfo *mi)
+{
+ polytopesstruct *hp = &poly[MI_SCREEN(mi)];
+
+ if (!hp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi),MI_WINDOW(mi),*(hp->glx_context));
+ init(mi);
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("Polytopes", polytopes)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/polytopes.man b/hacks/glx/polytopes.man
new file mode 100644
index 0000000..45fcb4a
--- /dev/null
+++ b/hacks/glx/polytopes.man
@@ -0,0 +1,207 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+polytopes - Draws one of the six regular 4d polytopes rotating in 4d.
+.SH SYNOPSIS
+.B polytopes
+[\-display \fIhost:display.screen\fP]
+[\-install]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fIusecs\fP]
+[\-fps]
+[\-5-cell]
+[\-8-cell]
+[\-16-cell]
+[\-24-cell]
+[\-120-cell]
+[\-600-cell]
+[\-wireframe]
+[\-surface]
+[\-transparent]
+[\-single-color]
+[\-depth-colors]
+[\-perspective-3d]
+[\-orthographic-3d]
+[\-perspective-4d]
+[\-orthographic-4d]
+[\-speed-wx \fIfloat\fP]
+[\-speed-wy \fIfloat\fP]
+[\-speed-wz \fIfloat\fP]
+[\-speed-xy \fIfloat\fP]
+[\-speed-xz \fIfloat\fP]
+[\-speed-yz \fIfloat\fP]
+.SH DESCRIPTION
+The \fIpolytopes\fP program shows one of the six regular 4d polytopes
+(5-cell, 8-cell, 16-cell, 24-cell, 120-cell, or 600-cell) rotating in
+4d. The program projects the 4d polytope to 3d using either a
+perspective or an orthographic projection. The projected 3d polytope
+can then be projected to the screen either perspectively or
+orthographically. There are three display modes for the polytope:
+mesh (wireframe), solid, or transparent. Furthermore, the colors with
+which the polytope is drawn can be set to either single color or to a
+coloring according to the 4d "depth" (the w coordinate) of the
+polytope in its unrotated position. In the first case, the polytope
+is drawn in red. This coloring combined with transparency gives a
+nice visual effect of the structure of the polytope. The second mode
+draws the polytope with a fully saturated color wheel in which the
+edges or faces are colored accoring to their average 4d "depth". This
+mode is best combined with the wireframe mode, where it allows you to
+see how different parts of the polytope are moved to the "inside" of
+the projected polytope in 3d. Of course, in 4d the cells, faces, and
+edges of the polytope all have the same distance from the center of
+the polytope. Only the projection creates the appearance that some of
+the cells lie "inside" the figure in 3d.
+.SH OPTIONS
+.I polytopes
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class, or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How much of a delay should be introduced between steps of the
+animation. Default 25000, or 1/40th second.
+.PP
+The following six options are mutually exclusive. They determine
+which polytope is displayed.
+.TP 8
+.B \-5-cell
+Display the 5-cell. The 5-cell is the 4d analogon of a regular
+tetrahedron in 3d. It has 5 regular tetrahedra as its cells, 10
+equilateral triangles as faces, 10 edges, and 5 vertices.
+.TP 8
+.B \-8-cell
+Display the 8-cell (a.k.a. hypercube or tessaract). The 8-cell is the
+4d analogon of a cube in 3d. It has 8 cubes as its cells, 24 squares
+as faces, 32 edges, and 16 vertices.
+.TP 8
+.B \-16-cell
+Display the 16-cell. The 16-cell is the 4d analogon of an octahedron
+in 3d. It has 16 regular tetrahedra as its cells, 32 equilateral
+triangles as faces, 24 edges, and 8 vertices.
+.TP 8
+.B \-24-cell
+Display the 24-cell. The 24-cell has no 3d analogon. It has 24
+regular octahedra as its cells, 96 equilateral triangles as faces, 96
+edges, and 24 vertices.
+.TP 8
+.B \-120-cell
+Display the 120-cell. The 120-cell has no 3d analogon. It has 120
+regular dodecahedra as its cells, 720 regular pentagons as faces, 1200
+edges, and 600 vertices.
+.TP 8
+.B \-600-cell
+Display the 600-cell. The 600-cell has no 3d analogon. It has 600
+regular tetrahedra as its cells, 1200 equilateral triangles as faces,
+720 edges, and 120 vertices.
+.PP
+The following three options are mutually exclusive. They determine
+how the polytope is displayed.
+.TP 8
+.B \-wireframe
+Display the polytope as a wireframe mesh.
+.TP 8
+.B \-surface
+Display the polytope as a solid object.
+.TP 8
+.B \-transparent
+Display the polytope as a transparent object (default).
+.PP
+The following two options are mutually exclusive. They determine how
+to color the polytope.
+.TP 8
+.B \-single-color
+Display the polytope in red.
+.TP 8
+.B \-depth-colors
+Display the polytope with a fully saturated color wheel in which the
+edges or faces are colored accoring to their average 4d "depth", i.e.,
+the w coordinate of the polytope in its unrotated position (default).
+.PP
+The following two options are mutually exclusive. They determine how
+the polytope is projected from 3d to 2d (i.e., to the screen).
+.TP 8
+.B \-perspective-3d
+Project the polytope from 3d to 2d using a perspective projection
+(default).
+.TP 8
+.B \-orthographic-3d
+Project the polytope from 3d to 2d using an orthographic projection.
+.PP
+The following two options are mutually exclusive. They determine how
+the polytope is projected from 4d to 3d.
+.TP 8
+.B \-perspective-4d
+Project the polytope from 4d to 3d using a perspective projection
+(default).
+.TP 8
+.B \-orthographic-4d
+Project the polytope from 4d to 3d using an orthographic projection.
+.PP
+The following six options determine the rotation speed of the polytope
+around the six possible hyperplanes. The rotation speed is measured
+in degrees per frame. The speeds should be set to relatively small
+values, e.g., less than 4 in magnitude.
+.TP 8
+.B \-speed-wx \fIfloat\fP
+Rotation speed around the wx plane (default: 1.1).
+.TP 8
+.B \-speed-wy \fIfloat\fP
+Rotation speed around the wy plane (default: 1.3).
+.TP 8
+.B \-speed-wz \fIfloat\fP
+Rotation speed around the wz plane (default: 1.5).
+.TP 8
+.B \-speed-xy \fIfloat\fP
+Rotation speed around the xy plane (default: 1.7).
+.TP 8
+.B \-speed-xz \fIfloat\fP
+Rotation speed around the xz plane (default: 1.9).
+.TP 8
+.B \-speed-yz \fIfloat\fP
+Rotation speed around the yz plane (default: 2.1).
+.SH INTERACTION
+If you run this program in standalone mode you can rotate the polytope
+by dragging the mouse while pressing the left mouse button. This
+rotates the polytope in 3D, i.e., around the wx, wy, and wz planes.
+If you press the shift key while dragging the mouse with the left
+button pressed the polytope is rotated in 4D, i.e., around the xy, xz,
+and yz planes. To examine the polytope at your leisure, it is best to
+set all speeds to 0. Otherwise, the polytope will rotate while the
+left mouse button is not pressed.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2003-2005 by Carsten Steger. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Carsten Steger <carsten@mirsanmir.org>, 28-sep-2005.
diff --git a/hacks/glx/projectiveplane.c b/hacks/glx/projectiveplane.c
new file mode 100644
index 0000000..2a1e566
--- /dev/null
+++ b/hacks/glx/projectiveplane.c
@@ -0,0 +1,1550 @@
+/* projectiveplane --- Shows a 4d embedding of the real projective plane
+ that rotates in 4d or on which you can walk */
+
+#if 0
+static const char sccsid[] = "@(#)projectiveplane.c 1.1 14/01/01 xlockmore";
+#endif
+
+/* Copyright (c) 2005-2014 Carsten Steger <carsten@mirsanmir.org>. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * REVISION HISTORY:
+ * C. Steger - 14/01/03: Initial version
+ * C. Steger - 14/10/03: Moved the curlicue texture to curlicue.h
+ */
+
+/*
+ * This program shows a 4d embedding of the real projective plane.
+ * You can walk on the projective plane, see it turn in 4d, or walk on
+ * it while it turns in 4d. The fact that the surface is an embedding
+ * of the real projective plane in 4d can be seen in the depth colors
+ * mode: set all rotation speeds to 0 and the projection mode to 4d
+ * orthographic projection. In its default orientation, the embedding
+ * of the real projective plane will then project to the Roman
+ * surface, which has three lines of self-intersection. However, at
+ * the three lines of self-intersection the parts of the surface that
+ * intersect have different colors, i.e., different 4d depths.
+ *
+ * The real projective plane is a non-orientable surface. To make
+ * this apparent, the two-sided color mode can be used.
+ * Alternatively, orientation markers (curling arrows) can be drawn as
+ * a texture map on the surface of the projective plane. While
+ * walking on the projective plane, you will notice that the
+ * orientation of the curling arrows changes (which it must because
+ * the projective plane is non-orientable).
+ *
+ * The real projective plane is a model for the projective geometry in
+ * 2d space. One point can be singled out as the origin. A line can
+ * be singled out as the line at infinity, i.e., a line that lies at
+ * an infinite distance to the origin. The line at infinity is
+ * topologically a circle. Points on the line at infinity are also
+ * used to model directions in projective geometry. The origin can be
+ * visualized in different manners. When using distance colors, the
+ * origin is the point that is displayed as fully saturated red, which
+ * is easier to see as the center of the reddish area on the
+ * projective plane. Alternatively, when using distance bands, the
+ * origin is the center of the only band that projects to a disc.
+ * When using direction bands, the origin is the point where all
+ * direction bands collapse to a point. Finally, when orientation
+ * markers are being displayed, the origin the the point where all
+ * orientation markers are compressed to a point. The line at
+ * infinity can also be visualized in different ways. When using
+ * distance colors, the line at infinity is the line that is displayed
+ * as fully saturated magenta. When two-sided colors are used, the
+ * line at infinity lies at the points where the red and green "sides"
+ * of the projective plane meet (of course, the real projective plane
+ * only has one side, so this is a design choice of the
+ * visualization). Alternatively, when orientation markers are being
+ * displayed, the line at infinity is the place where the orientation
+ * markers change their orientation.
+ *
+ * Note that when the projective plane is displayed with bands, the
+ * orientation markers are placed in the middle of the bands. For
+ * distance bands, the bands are chosen in such a way that the band at
+ * the origin is only half as wide as the remaining bands, which
+ * results in a disc being displayed at the origin that has the same
+ * diameter as the remaining bands. This choice, however, also
+ * implies that the band at infinity is half as wide as the other
+ * bands. Since the projective plane is attached to itself (in a
+ * complicated fashion) at the line at infinity, effectively the band
+ * at infinity is again as wide as the remaining bands. However,
+ * since the orientation markers are displayed in the middle of the
+ * bands, this means that only one half of the orientation markers
+ * will be displayed twice at the line at infinity if distance bands
+ * are used. If direction bands are used or if the projective plane
+ * is displayed as a solid surface, the orientation markers are
+ * displayed fully at the respective sides of the line at infinity.
+ *
+ * The program projects the 4d projective plane to 3d using either a
+ * perspective or an orthographic projection. Which of the two
+ * alternatives looks more appealing is up to you. However, two
+ * famous surfaces are obtained if orthographic 4d projection is used:
+ * The Roman surface and the cross cap. If the projective plane is
+ * rotated in 4d, the result of the projection for certain rotations
+ * is a Roman surface and for certain rotations it is a cross cap.
+ * The easiest way to see this is to set all rotation speeds to 0 and
+ * the rotation speed around the yz plane to a value different from 0.
+ * However, for any 4d rotation speeds, the projections will generally
+ * cycle between the Roman surface and the cross cap. The difference
+ * is where the origin and the line at infinity will lie with respect
+ * to the self-intersections in the projections to 3d.
+ *
+ * The projected projective plane can then be projected to the screen
+ * either perspectively or orthographically. When using the walking
+ * modes, perspective projection to the screen will be used.
+ *
+ * There are three display modes for the projective plane: mesh
+ * (wireframe), solid, or transparent. Furthermore, the appearance of
+ * the projective plane can be as a solid object or as a set of
+ * see-through bands. The bands can be distance bands, i.e., bands
+ * that lie at increasing distances from the origin, or direction
+ * bands, i.e., bands that lie at increasing angles with respect to
+ * the origin.
+ *
+ * When the projective plane is displayed with direction bands, you
+ * will be able to see that each direction band (modulo the "pinching"
+ * at the origin) is a Moebius strip, which also shows that the
+ * projective plane is non-orientable.
+ *
+ * Finally, the colors with with the projective plane is drawn can be
+ * set to two-sided, distance, direction, or depth. In two-sided
+ * mode, the projective plane is drawn with red on one "side" and
+ * green on the "other side". As described above, the projective
+ * plane only has one side, so the color jumps from red to green along
+ * the line at infinity. This mode enables you to see that the
+ * projective plane is non-orientable. In distance mode, the
+ * projective plane is displayed with fully saturated colors that
+ * depend on the distance of the points on the projective plane to the
+ * origin. The origin is displayed in red, the line at infinity is
+ * displayed in magenta. If the projective plane is displayed as
+ * distance bands, each band will be displayed with a different color.
+ * In direction mode, the projective plane is displayed with fully
+ * saturated colors that depend on the angle of the points on the
+ * projective plane with respect to the origin. Angles in opposite
+ * directions to the origin (e.g., 15 and 205 degrees) are displayed
+ * in the same color since they are projectively equivalent. If the
+ * projective plane is displayed as direction bands, each band will be
+ * displayed with a different color. Finally, in depth mode the
+ * projective plane with colors chosen depending on the 4d "depth"
+ * (i.e., the w coordinate) of the points on the projective plane at
+ * its default orientation in 4d. As discussed above, this mode
+ * enables you to see that the projective plane does not intersect
+ * itself in 4d.
+ *
+ * The rotation speed for each of the six planes around which the
+ * projective plane rotates can be chosen. For the walk-and-turn
+ * more, only the rotation speeds around the true 4d planes are used
+ * (the xy, xz, and yz planes).
+ *
+ * Furthermore, in the walking modes the walking direction in the 2d
+ * base square of the projective plane and the walking speed can be
+ * chosen. The walking direction is measured as an angle in degrees
+ * in the 2d square that forms the coordinate system of the surface of
+ * the projective plane. A value of 0 or 180 means that the walk is
+ * along a circle at a randomly chosen distance from the origin
+ * (parallel to a distance band). A value of 90 or 270 means that the
+ * walk is directly from the origin to the line at infinity and back
+ * (analogous to a direction band). Any other value results in a
+ * curved path from the origin to the line at infinity and back.
+ *
+ * This program is somewhat inspired by Thomas Banchoff's book "Beyond
+ * the Third Dimension: Geometry, Computer Graphics, and Higher
+ * Dimensions", Scientific American Library, 1990.
+ */
+
+#include "curlicue.h"
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define DISP_WIREFRAME 0
+#define DISP_SURFACE 1
+#define DISP_TRANSPARENT 2
+#define NUM_DISPLAY_MODES 3
+
+#define APPEARANCE_SOLID 0
+#define APPEARANCE_DISTANCE_BANDS 1
+#define APPEARANCE_DIRECTION_BANDS 2
+#define NUM_APPEARANCES 3
+
+#define COLORS_TWOSIDED 0
+#define COLORS_DISTANCE 1
+#define COLORS_DIRECTION 2
+#define COLORS_DEPTH 3
+#define NUM_COLORS 4
+
+#define VIEW_WALK 0
+#define VIEW_TURN 1
+#define VIEW_WALKTURN 2
+#define NUM_VIEW_MODES 3
+
+#define DISP_3D_PERSPECTIVE 0
+#define DISP_3D_ORTHOGRAPHIC 1
+#define NUM_DISP_3D_MODES 2
+
+#define DISP_4D_PERSPECTIVE 0
+#define DISP_4D_ORTHOGRAPHIC 1
+#define NUM_DISP_4D_MODES 2
+
+#define DEF_DISPLAY_MODE "random"
+#define DEF_APPEARANCE "random"
+#define DEF_COLORS "random"
+#define DEF_VIEW_MODE "random"
+#define DEF_MARKS "False"
+#define DEF_PROJECTION_3D "random"
+#define DEF_PROJECTION_4D "random"
+#define DEF_SPEEDWX "1.1"
+#define DEF_SPEEDWY "1.3"
+#define DEF_SPEEDWZ "1.5"
+#define DEF_SPEEDXY "1.7"
+#define DEF_SPEEDXZ "1.9"
+#define DEF_SPEEDYZ "2.1"
+#define DEF_WALK_DIRECTION "83.0"
+#define DEF_WALK_SPEED "20.0"
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+
+# define free_projectiveplane 0
+# define release_projectiveplane 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#ifndef HAVE_JWXYZ
+# include <X11/keysym.h>
+#endif
+
+#include "gltrackball.h"
+
+#include <float.h>
+
+
+#ifdef USE_MODULES
+ModStruct projectiveplane_description =
+{"projectiveplane", "init_projectiveplane", "draw_projectiveplane",
+ NULL, "draw_projectiveplane", "change_projectiveplane",
+ NULL, &projectiveplane_opts, 25000, 1, 1, 1, 1.0, 4, "",
+ "Rotate a 4d embedding of the real projective plane in 4d or walk on it",
+ 0, NULL};
+
+#endif
+
+
+static char *mode;
+static char *appear;
+static char *color_mode;
+static char *view_mode;
+static Bool marks;
+static char *proj_3d;
+static char *proj_4d;
+static float speed_wx;
+static float speed_wy;
+static float speed_wz;
+static float speed_xy;
+static float speed_xz;
+static float speed_yz;
+static float walk_direction;
+static float walk_speed;
+
+
+static XrmOptionDescRec opts[] =
+{
+ {"-mode", ".displayMode", XrmoptionSepArg, 0 },
+ {"-wireframe", ".displayMode", XrmoptionNoArg, "wireframe" },
+ {"-surface", ".displayMode", XrmoptionNoArg, "surface" },
+ {"-transparent", ".displayMode", XrmoptionNoArg, "transparent" },
+ {"-appearance", ".appearance", XrmoptionSepArg, 0 },
+ {"-solid", ".appearance", XrmoptionNoArg, "solid" },
+ {"-distance-bands", ".appearance", XrmoptionNoArg, "distance-bands" },
+ {"-direction-bands", ".appearance", XrmoptionNoArg, "direction-bands" },
+ {"-colors", ".colors", XrmoptionSepArg, 0 },
+ {"-twosided-colors", ".colors", XrmoptionNoArg, "two-sided" },
+ {"-distance-colors", ".colors", XrmoptionNoArg, "distance" },
+ {"-direction-colors", ".colors", XrmoptionNoArg, "direction" },
+ {"-depth-colors", ".colors", XrmoptionNoArg, "depth" },
+ {"-view-mode", ".viewMode", XrmoptionSepArg, 0 },
+ {"-walk", ".viewMode", XrmoptionNoArg, "walk" },
+ {"-turn", ".viewMode", XrmoptionNoArg, "turn" },
+ {"-walk-turn", ".viewMode", XrmoptionNoArg, "walk-turn" },
+ {"-orientation-marks", ".marks", XrmoptionNoArg, "on"},
+ {"+orientation-marks", ".marks", XrmoptionNoArg, "off"},
+ {"-projection-3d", ".projection3d", XrmoptionSepArg, 0 },
+ {"-perspective-3d", ".projection3d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-3d", ".projection3d", XrmoptionNoArg, "orthographic" },
+ {"-projection-4d", ".projection4d", XrmoptionSepArg, 0 },
+ {"-perspective-4d", ".projection4d", XrmoptionNoArg, "perspective" },
+ {"-orthographic-4d", ".projection4d", XrmoptionNoArg, "orthographic" },
+ {"-speed-wx", ".speedwx", XrmoptionSepArg, 0 },
+ {"-speed-wy", ".speedwy", XrmoptionSepArg, 0 },
+ {"-speed-wz", ".speedwz", XrmoptionSepArg, 0 },
+ {"-speed-xy", ".speedxy", XrmoptionSepArg, 0 },
+ {"-speed-xz", ".speedxz", XrmoptionSepArg, 0 },
+ {"-speed-yz", ".speedyz", XrmoptionSepArg, 0 },
+ {"-walk-direction", ".walkDirection", XrmoptionSepArg, 0 },
+ {"-walk-speed", ".walkSpeed", XrmoptionSepArg, 0 }
+};
+
+static argtype vars[] =
+{
+ { &mode, "displayMode", "DisplayMode", DEF_DISPLAY_MODE, t_String },
+ { &appear, "appearance", "Appearance", DEF_APPEARANCE, t_String },
+ { &color_mode, "colors", "Colors", DEF_COLORS, t_String },
+ { &view_mode, "viewMode", "ViewMode", DEF_VIEW_MODE, t_String },
+ { &marks, "marks", "Marks", DEF_MARKS, t_Bool },
+ { &proj_3d, "projection3d", "Projection3d", DEF_PROJECTION_3D, t_String },
+ { &proj_4d, "projection4d", "Projection4d", DEF_PROJECTION_4D, t_String },
+ { &speed_wx, "speedwx", "Speedwx", DEF_SPEEDWX, t_Float},
+ { &speed_wy, "speedwy", "Speedwy", DEF_SPEEDWY, t_Float},
+ { &speed_wz, "speedwz", "Speedwz", DEF_SPEEDWZ, t_Float},
+ { &speed_xy, "speedxy", "Speedxy", DEF_SPEEDXY, t_Float},
+ { &speed_xz, "speedxz", "Speedxz", DEF_SPEEDXZ, t_Float},
+ { &speed_yz, "speedyz", "Speedyz", DEF_SPEEDYZ, t_Float},
+ { &walk_direction, "walkDirection", "WalkDirection", DEF_WALK_DIRECTION, t_Float},
+ { &walk_speed, "walkSpeed", "WalkSpeed", DEF_WALK_SPEED, t_Float}
+};
+
+ENTRYPOINT ModeSpecOpt projectiveplane_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, NULL};
+
+
+/* Offset by which we walk above the projective plane */
+#define DELTAY 0.01
+
+/* Number of subdivisions of the projective plane */
+#define NUMU 128
+#define NUMV 128
+
+/* Number of subdivisions per band */
+#define NUMB 8
+
+
+typedef struct {
+ GLint WindH, WindW;
+ GLXContext *glx_context;
+ /* Options */
+ int display_mode;
+ int appearance;
+ int colors;
+ int view;
+ Bool marks;
+ int projection_3d;
+ int projection_4d;
+ /* 4D rotation angles */
+ float alpha, beta, delta, zeta, eta, theta;
+ /* Movement parameters */
+ float umove, vmove, dumove, dvmove;
+ int side, dir;
+ /* The viewing offset in 4d */
+ float offset4d[4];
+ /* The viewing offset in 3d */
+ float offset3d[4];
+ /* The 4d coordinates of the projective plane and their derivatives */
+ float x[(NUMU+1)*(NUMV+1)][4];
+ float xu[(NUMU+1)*(NUMV+1)][4];
+ float xv[(NUMU+1)*(NUMV+1)][4];
+ float pp[(NUMU+1)*(NUMV+1)][3];
+ float pn[(NUMU+1)*(NUMV+1)][3];
+ /* The precomputed colors of the projective plane */
+ float col[(NUMU+1)*(NUMV+1)][4];
+ /* The precomputed texture coordinates of the projective plane */
+ float tex[(NUMU+1)*(NUMV+1)][2];
+ /* The "curlicue" texture */
+ GLuint tex_name;
+ /* Aspect ratio of the current window */
+ float aspect;
+ /* Trackball states */
+ trackball_state *trackballs[2];
+ int current_trackball;
+ Bool button_pressed;
+ /* A random factor to modify the rotation speeds */
+ float speed_scale;
+} projectiveplanestruct;
+
+static projectiveplanestruct *projectiveplane = (projectiveplanestruct *) NULL;
+
+
+/* Add a rotation around the wx-plane to the matrix m. */
+static void rotatewx(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][2];
+ m[i][1] = c*u+s*v;
+ m[i][2] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wy-plane to the matrix m. */
+static void rotatewy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][2];
+ m[i][0] = c*u-s*v;
+ m[i][2] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the wz-plane to the matrix m. */
+static void rotatewz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][1];
+ m[i][0] = c*u+s*v;
+ m[i][1] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xy-plane to the matrix m. */
+static void rotatexy(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][2];
+ v = m[i][3];
+ m[i][2] = c*u+s*v;
+ m[i][3] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the xz-plane to the matrix m. */
+static void rotatexz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][1];
+ v = m[i][3];
+ m[i][1] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the yz-plane to the matrix m. */
+static void rotateyz(float m[4][4], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<4; i++)
+ {
+ u = m[i][0];
+ v = m[i][3];
+ m[i][0] = c*u-s*v;
+ m[i][3] = s*u+c*v;
+ }
+}
+
+
+/* Compute the rotation matrix m from the rotation angles. */
+static void rotateall(float al, float be, float de, float ze, float et,
+ float th, float m[4][4])
+{
+ int i, j;
+
+ for (i=0; i<4; i++)
+ for (j=0; j<4; j++)
+ m[i][j] = (i==j);
+ rotatewx(m,al);
+ rotatewy(m,be);
+ rotatewz(m,de);
+ rotatexy(m,ze);
+ rotatexz(m,et);
+ rotateyz(m,th);
+}
+
+
+/* Compute the rotation matrix m from the 4d rotation angles. */
+static void rotateall4d(float ze, float et, float th, float m[4][4])
+{
+ int i, j;
+
+ for (i=0; i<4; i++)
+ for (j=0; j<4; j++)
+ m[i][j] = (i==j);
+ rotatexy(m,ze);
+ rotatexz(m,et);
+ rotateyz(m,th);
+}
+
+
+/* Multiply two rotation matrices: o=m*n. */
+static void mult_rotmat(float m[4][4], float n[4][4], float o[4][4])
+{
+ int i, j, k;
+
+ for (i=0; i<4; i++)
+ {
+ for (j=0; j<4; j++)
+ {
+ o[i][j] = 0.0;
+ for (k=0; k<4; k++)
+ o[i][j] += m[i][k]*n[k][j];
+ }
+ }
+}
+
+
+/* Compute a 4D rotation matrix from two unit quaternions. */
+static void quats_to_rotmat(float p[4], float q[4], float m[4][4])
+{
+ double al, be, de, ze, et, th;
+ double r00, r01, r02, r12, r22;
+
+ r00 = 1.0-2.0*(p[1]*p[1]+p[2]*p[2]);
+ r01 = 2.0*(p[0]*p[1]+p[2]*p[3]);
+ r02 = 2.0*(p[2]*p[0]-p[1]*p[3]);
+ r12 = 2.0*(p[1]*p[2]+p[0]*p[3]);
+ r22 = 1.0-2.0*(p[1]*p[1]+p[0]*p[0]);
+
+ al = atan2(-r12,r22)*180.0/M_PI;
+ be = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ de = atan2(-r01,r00)*180.0/M_PI;
+
+ r00 = 1.0-2.0*(q[1]*q[1]+q[2]*q[2]);
+ r01 = 2.0*(q[0]*q[1]+q[2]*q[3]);
+ r02 = 2.0*(q[2]*q[0]-q[1]*q[3]);
+ r12 = 2.0*(q[1]*q[2]+q[0]*q[3]);
+ r22 = 1.0-2.0*(q[1]*q[1]+q[0]*q[0]);
+
+ et = atan2(-r12,r22)*180.0/M_PI;
+ th = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ ze = atan2(-r01,r00)*180.0/M_PI;
+
+ rotateall(al,be,de,ze,et,-th,m);
+}
+
+
+/* Compute a fully saturated and bright color based on an angle. */
+static void color(projectiveplanestruct *pp, double angle, float col[4])
+{
+ int s;
+ double t;
+
+ if (pp->colors == COLORS_TWOSIDED)
+ return;
+
+ if (angle >= 0.0)
+ angle = fmod(angle,2.0*M_PI);
+ else
+ angle = fmod(angle,-2.0*M_PI);
+ s = floor(angle/(M_PI/3));
+ t = angle/(M_PI/3)-s;
+ if (s >= 6)
+ s = 0;
+ switch (s)
+ {
+ case 0:
+ col[0] = 1.0;
+ col[1] = t;
+ col[2] = 0.0;
+ break;
+ case 1:
+ col[0] = 1.0-t;
+ col[1] = 1.0;
+ col[2] = 0.0;
+ break;
+ case 2:
+ col[0] = 0.0;
+ col[1] = 1.0;
+ col[2] = t;
+ break;
+ case 3:
+ col[0] = 0.0;
+ col[1] = 1.0-t;
+ col[2] = 1.0;
+ break;
+ case 4:
+ col[0] = t;
+ col[1] = 0.0;
+ col[2] = 1.0;
+ break;
+ case 5:
+ col[0] = 1.0;
+ col[1] = 0.0;
+ col[2] = 1.0-t;
+ break;
+ }
+ if (pp->display_mode == DISP_TRANSPARENT)
+ col[3] = 0.7;
+ else
+ col[3] = 1.0;
+}
+
+
+/* Set up the projective plane coordinates, colors, and texture. */
+static void setup_projective_plane(ModeInfo *mi, double umin, double umax,
+ double vmin, double vmax)
+{
+ int i, j, k;
+ double u, v, ur, vr;
+ double cu, su, cv2, sv2, cv4, sv4, c2u, s2u;
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+
+ ur = umax-umin;
+ vr = vmax-vmin;
+ for (i=0; i<=NUMV; i++)
+ {
+ for (j=0; j<=NUMU; j++)
+ {
+ k = i*(NUMU+1)+j;
+ if (pp->appearance != APPEARANCE_DIRECTION_BANDS)
+ u = -ur*j/NUMU+umin;
+ else
+ u = ur*j/NUMU+umin;
+ v = vr*i/NUMV+vmin;
+ cu = cos(u);
+ su = sin(u);
+ c2u = cos(2.0*u);
+ s2u = sin(2.0*u);
+ sv2 = sin(0.5*v);
+ cv4 = cos(0.25*v);
+ sv4 = sin(0.25*v);
+ if (pp->colors == COLORS_DEPTH)
+ color(pp,((su*su*sv4*sv4-cv4*cv4)+1.0)*M_PI*2.0/3.0,pp->col[k]);
+ else if (pp->colors == COLORS_DIRECTION)
+ color(pp,2.0*M_PI+fmod(2.0*u,2.0*M_PI),pp->col[k]);
+ else /* pp->colors == COLORS_DISTANCE */
+ color(pp,v*(5.0/6.0),pp->col[k]);
+ pp->tex[k][0] = -32*u/(2.0*M_PI);
+ if (pp->appearance != APPEARANCE_DISTANCE_BANDS)
+ pp->tex[k][1] = 32*v/(2.0*M_PI);
+ else
+ pp->tex[k][1] = 32*v/(2.0*M_PI)-0.5;
+ pp->x[k][0] = 0.5*s2u*sv4*sv4;
+ pp->x[k][1] = 0.5*su*sv2;
+ pp->x[k][2] = 0.5*cu*sv2;
+ pp->x[k][3] = 0.5*(su*su*sv4*sv4-cv4*cv4);
+ /* Avoid degenerate tangential plane basis vectors. */
+ if (v < FLT_EPSILON)
+ v = FLT_EPSILON;
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ sv4 = sin(0.25*v);
+ pp->xu[k][0] = c2u*sv4*sv4;
+ pp->xu[k][1] = 0.5*cu*sv2;
+ pp->xu[k][2] = -0.5*su*sv2;
+ pp->xu[k][3] = 0.5*s2u*sv4*sv4;
+ pp->xv[k][0] = 0.125*s2u*sv2;
+ pp->xv[k][1] = 0.25*su*cv2;
+ pp->xv[k][2] = 0.25*cu*cv2;
+ pp->xv[k][3] = 0.125*(su*su+1.0)*sv2;
+ }
+ }
+}
+
+
+/* Draw a 4d embedding of the projective plane projected into 3D. */
+static int projective_plane(ModeInfo *mi, double umin, double umax,
+ double vmin, double vmax)
+{
+ int polys = 0;
+ static const GLfloat mat_diff_red[] = { 1.0, 0.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_green[] = { 0.0, 1.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_trans_red[] = { 1.0, 0.0, 0.0, 0.7 };
+ static const GLfloat mat_diff_trans_green[] = { 0.0, 1.0, 0.0, 0.7 };
+ float p[3], pu[3], pv[3], pm[3], n[3], b[3], mat[4][4];
+ int i, j, k, l, m, o;
+ double u, v;
+ double xx[4], xxu[4], xxv[4], y[4], yu[4], yv[4];
+ double q, r, s, t;
+ double cu, su, cv2, sv2, cv4, sv4, c2u, s2u;
+ float q1[4], q2[4], r1[4][4], r2[4][4];
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+
+ if (pp->view == VIEW_WALK || pp->view == VIEW_WALKTURN)
+ {
+ /* Compute the rotation that rotates the projective plane in 4D without
+ the trackball rotations. */
+ rotateall4d(pp->zeta,pp->eta,pp->theta,mat);
+
+ u = pp->umove;
+ v = pp->vmove;
+ cu = cos(u);
+ su = sin(u);
+ c2u = cos(2.0*u);
+ s2u = sin(2.0*u);
+ sv2 = sin(0.5*v);
+ cv4 = cos(0.25*v);
+ sv4 = sin(0.25*v);
+ xx[0] = 0.5*s2u*sv4*sv4;
+ xx[1] = 0.5*su*sv2;
+ xx[2] = 0.5*cu*sv2;
+ xx[3] = 0.5*(su*su*sv4*sv4-cv4*cv4);
+ /* Avoid degenerate tangential plane basis vectors. */
+ if (v < FLT_EPSILON)
+ v = FLT_EPSILON;
+ cv2 = cos(0.5*v);
+ sv2 = sin(0.5*v);
+ sv4 = sin(0.25*v);
+ xxu[0] = c2u*sv4*sv4;
+ xxu[1] = 0.5*cu*sv2;
+ xxu[2] = -0.5*su*sv2;
+ xxu[3] = 0.5*s2u*sv4*sv4;
+ xxv[0] = 0.125*s2u*sv2;
+ xxv[1] = 0.25*su*cv2;
+ xxv[2] = 0.25*cu*cv2;
+ xxv[3] = 0.125*(su*su+1.0)*sv2;
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*xx[0]+mat[l][1]*xx[1]+
+ mat[l][2]*xx[2]+mat[l][3]*xx[3]);
+ yu[l] = (mat[l][0]*xxu[0]+mat[l][1]*xxu[1]+
+ mat[l][2]*xxu[2]+mat[l][3]*xxu[3]);
+ yv[l] = (mat[l][0]*xxv[0]+mat[l][1]*xxv[1]+
+ mat[l][2]*xxv[2]+mat[l][3]*xxv[3]);
+ }
+ if (pp->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ p[l] = y[l]+pp->offset4d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+pp->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+pp->offset4d[l];
+ p[l] = r*q;
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/(pp->side*4.0*sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]));
+ n[0] *= t;
+ n[1] *= t;
+ n[2] *= t;
+ pm[0] = pu[0]*pp->dumove+pv[0]*pp->dvmove;
+ pm[1] = pu[1]*pp->dumove+pv[1]*pp->dvmove;
+ pm[2] = pu[2]*pp->dumove+pv[2]*pp->dvmove;
+ t = 1.0/(4.0*sqrt(pm[0]*pm[0]+pm[1]*pm[1]+pm[2]*pm[2]));
+ pm[0] *= t;
+ pm[1] *= t;
+ pm[2] *= t;
+ b[0] = n[1]*pm[2]-n[2]*pm[1];
+ b[1] = n[2]*pm[0]-n[0]*pm[2];
+ b[2] = n[0]*pm[1]-n[1]*pm[0];
+ t = 1.0/(4.0*sqrt(b[0]*b[0]+b[1]*b[1]+b[2]*b[2]));
+ b[0] *= t;
+ b[1] *= t;
+ b[2] *= t;
+
+ /* Compute alpha, beta, delta from the three basis vectors.
+ | -b[0] -b[1] -b[2] |
+ m = | n[0] n[1] n[2] |
+ | -pm[0] -pm[1] -pm[2] |
+ */
+ pp->alpha = atan2(-n[2],-pm[2])*180/M_PI;
+ pp->beta = atan2(-b[2],sqrt(b[0]*b[0]+b[1]*b[1]))*180/M_PI;
+ pp->delta = atan2(b[1],-b[0])*180/M_PI;
+
+ /* Compute the rotation that rotates the projective plane in 4D. */
+ rotateall(pp->alpha,pp->beta,pp->delta,pp->zeta,pp->eta,pp->theta,mat);
+
+ u = pp->umove;
+ v = pp->vmove;
+ cu = cos(u);
+ su = sin(u);
+ s2u = sin(2.0*u);
+ sv2 = sin(0.5*v);
+ cv4 = cos(0.25*v);
+ sv4 = sin(0.25*v);
+ xx[0] = 0.5*s2u*sv4*sv4;
+ xx[1] = 0.5*su*sv2;
+ xx[2] = 0.5*cu*sv2;
+ xx[3] = 0.5*(su*su*sv4*sv4-cv4*cv4);
+ for (l=0; l<4; l++)
+ {
+ r = 0.0;
+ for (m=0; m<4; m++)
+ r += mat[l][m]*xx[m];
+ y[l] = r;
+ }
+ if (pp->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ p[l] = y[l]+pp->offset4d[l];
+ }
+ else
+ {
+ s = y[3]+pp->offset4d[3];
+ for (l=0; l<3; l++)
+ p[l] = (y[l]+pp->offset4d[l])/s;
+ }
+
+ pp->offset3d[0] = -p[0];
+ pp->offset3d[1] = -p[1]-DELTAY;
+ pp->offset3d[2] = -p[2];
+ }
+ else
+ {
+ /* Compute the rotation that rotates the projective plane in 4D,
+ including the trackball rotations. */
+ rotateall(pp->alpha,pp->beta,pp->delta,pp->zeta,pp->eta,pp->theta,r1);
+
+ gltrackball_get_quaternion(pp->trackballs[0],q1);
+ gltrackball_get_quaternion(pp->trackballs[1],q2);
+ quats_to_rotmat(q1,q2,r2);
+
+ mult_rotmat(r2,r1,mat);
+ }
+
+ /* Project the points from 4D to 3D. */
+ for (i=0; i<=NUMV; i++)
+ {
+ for (j=0; j<=NUMU; j++)
+ {
+ o = i*(NUMU+1)+j;
+ for (l=0; l<4; l++)
+ {
+ y[l] = (mat[l][0]*pp->x[o][0]+mat[l][1]*pp->x[o][1]+
+ mat[l][2]*pp->x[o][2]+mat[l][3]*pp->x[o][3]);
+ yu[l] = (mat[l][0]*pp->xu[o][0]+mat[l][1]*pp->xu[o][1]+
+ mat[l][2]*pp->xu[o][2]+mat[l][3]*pp->xu[o][3]);
+ yv[l] = (mat[l][0]*pp->xv[o][0]+mat[l][1]*pp->xv[o][1]+
+ mat[l][2]*pp->xv[o][2]+mat[l][3]*pp->xv[o][3]);
+ }
+ if (pp->projection_4d == DISP_4D_ORTHOGRAPHIC)
+ {
+ for (l=0; l<3; l++)
+ {
+ pp->pp[o][l] = (y[l]+pp->offset4d[l])+pp->offset3d[l];
+ pu[l] = yu[l];
+ pv[l] = yv[l];
+ }
+ }
+ else
+ {
+ s = y[3]+pp->offset4d[3];
+ q = 1.0/s;
+ t = q*q;
+ for (l=0; l<3; l++)
+ {
+ r = y[l]+pp->offset4d[l];
+ pp->pp[o][l] = r*q+pp->offset3d[l];
+ pu[l] = (yu[l]*s-r*yu[3])*t;
+ pv[l] = (yv[l]*s-r*yv[3])*t;
+ }
+ }
+ pp->pn[o][0] = pu[1]*pv[2]-pu[2]*pv[1];
+ pp->pn[o][1] = pu[2]*pv[0]-pu[0]*pv[2];
+ pp->pn[o][2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/sqrt(pp->pn[o][0]*pp->pn[o][0]+pp->pn[o][1]*pp->pn[o][1]+
+ pp->pn[o][2]*pp->pn[o][2]);
+ pp->pn[o][0] *= t;
+ pp->pn[o][1] *= t;
+ pp->pn[o][2] *= t;
+ }
+ }
+
+ if (pp->colors == COLORS_TWOSIDED)
+ {
+ glColor3fv(mat_diff_red);
+ if (pp->display_mode == DISP_TRANSPARENT)
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_green);
+ }
+ else
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_green);
+ }
+ }
+ glBindTexture(GL_TEXTURE_2D,pp->tex_name);
+
+ if (pp->appearance != APPEARANCE_DIRECTION_BANDS)
+ {
+ for (i=0; i<NUMV; i++)
+ {
+ if (pp->appearance == APPEARANCE_DISTANCE_BANDS &&
+ ((i & (NUMB-1)) >= NUMB/4) && ((i & (NUMB-1)) < 3*NUMB/4))
+ continue;
+ if (pp->display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=NUMU; j++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = (i+k);
+ m = j;
+ o = l*(NUMU+1)+m;
+ glNormal3fv(pp->pn[o]);
+ glTexCoord2fv(pp->tex[o]);
+ if (pp->colors != COLORS_TWOSIDED)
+ {
+ glColor3fv(pp->col[o]);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,pp->col[o]);
+ }
+ glVertex3fv(pp->pp[o]);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ }
+ else /* pp->appearance == APPEARANCE_DIRECTION_BANDS */
+ {
+ for (j=0; j<NUMU; j++)
+ {
+ if ((j & (NUMB-1)) >= NUMB/2)
+ continue;
+ if (pp->display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (i=0; i<=NUMV; i++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = i;
+ m = (j+k);
+ o = l*(NUMU+1)+m;
+ glNormal3fv(pp->pn[o]);
+ glTexCoord2fv(pp->tex[o]);
+ if (pp->colors != COLORS_TWOSIDED)
+ {
+ glColor3fv(pp->col[o]);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,pp->col[o]);
+ }
+ glVertex3fv(pp->pp[o]);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ }
+
+ polys /= 2;
+ return polys;
+}
+
+
+/* Generate a texture image that shows the orientation reversal. */
+static void gen_texture(ModeInfo *mi)
+{
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+
+ glGenTextures(1,&pp->tex_name);
+ glBindTexture(GL_TEXTURE_2D,pp->tex_name);
+ glPixelStorei(GL_UNPACK_ALIGNMENT,1);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
+ glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,TEX_DIMENSION,TEX_DIMENSION,0,
+ GL_LUMINANCE,GL_UNSIGNED_BYTE,texture);
+}
+
+
+static void init(ModeInfo *mi)
+{
+ static const GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
+ static const GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
+ static const GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+
+ if (walk_speed == 0.0)
+ walk_speed = 20.0;
+
+ if (pp->view == VIEW_TURN)
+ {
+ pp->alpha = frand(360.0);
+ pp->beta = frand(360.0);
+ pp->delta = frand(360.0);
+ pp->zeta = 0.0;
+ pp->eta = 0.0;
+ pp->theta = 0.0;
+ }
+ else
+ {
+ pp->alpha = 0.0;
+ pp->beta = 0.0;
+ pp->delta = 0.0;
+ pp->zeta = 120.0;
+ pp->eta = 180.0;
+ pp->theta = 90.0;
+ }
+ pp->umove = frand(2.0*M_PI);
+ pp->vmove = frand(2.0*M_PI);
+ pp->dumove = 0.0;
+ pp->dvmove = 0.0;
+ pp->side = 1;
+ if (sin(walk_direction*M_PI/180.0) >= 0.0)
+ pp->dir = 1;
+ else
+ pp->dir = -1;
+
+ pp->offset4d[0] = 0.0;
+ pp->offset4d[1] = 0.0;
+ pp->offset4d[2] = 0.0;
+ pp->offset4d[3] = 1.2;
+ pp->offset3d[0] = 0.0;
+ pp->offset3d[1] = 0.0;
+ pp->offset3d[2] = -1.2;
+ pp->offset3d[3] = 0.0;
+
+ gen_texture(mi);
+ setup_projective_plane(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+
+ if (pp->marks)
+ glEnable(GL_TEXTURE_2D);
+ else
+ glDisable(GL_TEXTURE_2D);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (pp->projection_3d == DISP_3D_PERSPECTIVE ||
+ pp->view == VIEW_WALK || pp->view == VIEW_WALKTURN)
+ {
+ if (pp->view == VIEW_WALK || pp->view == VIEW_WALKTURN)
+ gluPerspective(60.0,1.0,0.01,10.0);
+ else
+ gluPerspective(60.0,1.0,0.1,10.0);
+ }
+ else
+ {
+ glOrtho(-0.6,0.6,-0.6,0.6,0.1,10.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ if (pp->display_mode == DISP_WIREFRAME)
+ pp->display_mode = DISP_SURFACE;
+# endif
+
+ if (pp->display_mode == DISP_SURFACE)
+ {
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LESS);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ }
+ else if (pp->display_mode == DISP_TRANSPARENT)
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_FALSE);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ }
+ else /* pp->display_mode == DISP_WIREFRAME */
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_FLAT);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_BLEND);
+ }
+}
+
+
+/* Redisplay the Klein bottle. */
+static void display_projectiveplane(ModeInfo *mi)
+{
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+
+ if (!pp->button_pressed)
+ {
+ if (pp->view == VIEW_TURN)
+ {
+ pp->alpha += speed_wx * pp->speed_scale;
+ if (pp->alpha >= 360.0)
+ pp->alpha -= 360.0;
+ pp->beta += speed_wy * pp->speed_scale;
+ if (pp->beta >= 360.0)
+ pp->beta -= 360.0;
+ pp->delta += speed_wz * pp->speed_scale;
+ if (pp->delta >= 360.0)
+ pp->delta -= 360.0;
+ pp->zeta += speed_xy * pp->speed_scale;
+ if (pp->zeta >= 360.0)
+ pp->zeta -= 360.0;
+ pp->eta += speed_xz * pp->speed_scale;
+ if (pp->eta >= 360.0)
+ pp->eta -= 360.0;
+ pp->theta += speed_yz * pp->speed_scale;
+ if (pp->theta >= 360.0)
+ pp->theta -= 360.0;
+ }
+ if (pp->view == VIEW_WALKTURN)
+ {
+ pp->zeta += speed_xy * pp->speed_scale;
+ if (pp->zeta >= 360.0)
+ pp->zeta -= 360.0;
+ pp->eta += speed_xz * pp->speed_scale;
+ if (pp->eta >= 360.0)
+ pp->eta -= 360.0;
+ pp->theta += speed_yz * pp->speed_scale;
+ if (pp->theta >= 360.0)
+ pp->theta -= 360.0;
+ }
+ if (pp->view == VIEW_WALK || pp->view == VIEW_WALKTURN)
+ {
+ pp->dvmove = (pp->dir*sin(walk_direction*M_PI/180.0)*
+ walk_speed*M_PI/4096.0);
+ pp->vmove += pp->dvmove;
+ if (pp->vmove > 2.0*M_PI)
+ {
+ pp->vmove = 4.0*M_PI-pp->vmove;
+ pp->umove = pp->umove-M_PI;
+ if (pp->umove < 0.0)
+ pp->umove += 2.0*M_PI;
+ pp->side = -pp->side;
+ pp->dir = -pp->dir;
+ pp->dvmove = -pp->dvmove;
+ }
+ if (pp->vmove < 0.0)
+ {
+ pp->vmove = -pp->vmove;
+ pp->umove = pp->umove-M_PI;
+ if (pp->umove < 0.0)
+ pp->umove += 2.0*M_PI;
+ pp->dir = -pp->dir;
+ pp->dvmove = -pp->dvmove;
+ }
+ pp->dumove = cos(walk_direction*M_PI/180.0)*walk_speed*M_PI/4096.0;
+ pp->umove += pp->dumove;
+ if (pp->umove >= 2.0*M_PI)
+ pp->umove -= 2.0*M_PI;
+ if (pp->umove < 0.0)
+ pp->umove += 2.0*M_PI;
+ }
+ }
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (pp->projection_3d == DISP_3D_PERSPECTIVE ||
+ pp->view == VIEW_WALK || pp->view == VIEW_WALKTURN)
+ {
+ if (pp->view == VIEW_WALK || pp->view == VIEW_WALKTURN)
+ gluPerspective(60.0,pp->aspect,0.01,10.0);
+ else
+ gluPerspective(60.0,pp->aspect,0.1,10.0);
+ }
+ else
+ {
+ if (pp->aspect >= 1.0)
+ glOrtho(-0.6*pp->aspect,0.6*pp->aspect,-0.6,0.6,0.1,10.0);
+ else
+ glOrtho(-0.6,0.6,-0.6/pp->aspect,0.6/pp->aspect,0.1,10.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ mi->polygon_count = projective_plane(mi,0.0,2.0*M_PI,0.0,2.0*M_PI);
+}
+
+
+ENTRYPOINT void reshape_projectiveplane(ModeInfo *mi, int width, int height)
+{
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+
+ pp->WindW = (GLint)width;
+ pp->WindH = (GLint)height;
+ glViewport(0,0,width,height);
+ pp->aspect = (GLfloat)width/(GLfloat)height;
+}
+
+
+ENTRYPOINT Bool projectiveplane_handle_event(ModeInfo *mi, XEvent *event)
+{
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+ KeySym sym = 0;
+ char c = 0;
+
+ if (event->xany.type == KeyPress || event->xany.type == KeyRelease)
+ XLookupString (&event->xkey, &c, 1, &sym, 0);
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ pp->button_pressed = True;
+ gltrackball_start(pp->trackballs[pp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ pp->button_pressed = False;
+ return True;
+ }
+ else if (event->xany.type == KeyPress)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ pp->current_trackball = 1;
+ if (pp->button_pressed)
+ gltrackball_start(pp->trackballs[pp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == KeyRelease)
+ {
+ if (sym == XK_Shift_L || sym == XK_Shift_R)
+ {
+ pp->current_trackball = 0;
+ if (pp->button_pressed)
+ gltrackball_start(pp->trackballs[pp->current_trackball],
+ event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ }
+ else if (event->xany.type == MotionNotify && pp->button_pressed)
+ {
+ gltrackball_track(pp->trackballs[pp->current_trackball],
+ event->xmotion.x, event->xmotion.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+
+ return False;
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize projectiveplane. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void init_projectiveplane(ModeInfo *mi)
+{
+ projectiveplanestruct *pp;
+
+ MI_INIT(mi, projectiveplane);
+ pp = &projectiveplane[MI_SCREEN(mi)];
+
+
+ pp->trackballs[0] = gltrackball_init(True);
+ pp->trackballs[1] = gltrackball_init(True);
+ pp->current_trackball = 0;
+ pp->button_pressed = False;
+
+ /* Set the display mode. */
+ if (!strcasecmp(mode,"random"))
+ {
+ pp->display_mode = random() % NUM_DISPLAY_MODES;
+ }
+ else if (!strcasecmp(mode,"wireframe"))
+ {
+ pp->display_mode = DISP_WIREFRAME;
+ }
+ else if (!strcasecmp(mode,"surface"))
+ {
+ pp->display_mode = DISP_SURFACE;
+ }
+ else if (!strcasecmp(mode,"transparent"))
+ {
+ pp->display_mode = DISP_TRANSPARENT;
+ }
+ else
+ {
+ pp->display_mode = random() % NUM_DISPLAY_MODES;
+ }
+
+ /* Orientation marks don't make sense in wireframe mode. */
+ pp->marks = marks;
+ if (pp->display_mode == DISP_WIREFRAME)
+ pp->marks = False;
+
+ /* Set the appearance. */
+ if (!strcasecmp(appear,"random"))
+ {
+ pp->appearance = random() % NUM_APPEARANCES;
+ }
+ else if (!strcasecmp(appear,"solid"))
+ {
+ pp->appearance = APPEARANCE_SOLID;
+ }
+ else if (!strcasecmp(appear,"distance-bands"))
+ {
+ pp->appearance = APPEARANCE_DISTANCE_BANDS;
+ }
+ else if (!strcasecmp(appear,"direction-bands"))
+ {
+ pp->appearance = APPEARANCE_DIRECTION_BANDS;
+ }
+ else
+ {
+ pp->appearance = random() % NUM_APPEARANCES;
+ }
+
+ /* Set the color mode. */
+ if (!strcasecmp(color_mode,"random"))
+ {
+ pp->colors = random() % NUM_COLORS;
+ }
+ else if (!strcasecmp(color_mode,"two-sided"))
+ {
+ pp->colors = COLORS_TWOSIDED;
+ }
+ else if (!strcasecmp(color_mode,"distance"))
+ {
+ pp->colors = COLORS_DISTANCE;
+ }
+ else if (!strcasecmp(color_mode,"direction"))
+ {
+ pp->colors = COLORS_DIRECTION;
+ }
+ else if (!strcasecmp(color_mode,"depth"))
+ {
+ pp->colors = COLORS_DEPTH;
+ }
+ else
+ {
+ pp->colors = random() % NUM_COLORS;
+ }
+
+ /* Set the view mode. */
+ if (!strcasecmp(view_mode,"random"))
+ {
+ pp->view = random() % NUM_VIEW_MODES;
+ }
+ else if (!strcasecmp(view_mode,"walk"))
+ {
+ pp->view = VIEW_WALK;
+ }
+ else if (!strcasecmp(view_mode,"turn"))
+ {
+ pp->view = VIEW_TURN;
+ }
+ else if (!strcasecmp(view_mode,"walk-turn"))
+ {
+ pp->view = VIEW_WALKTURN;
+ }
+ else
+ {
+ pp->view = random() % NUM_VIEW_MODES;
+ }
+
+ /* Set the 3d projection mode. */
+ if (!strcasecmp(proj_3d,"random"))
+ {
+ /* Orthographic projection only makes sense in turn mode. */
+ if (pp->view == VIEW_TURN)
+ pp->projection_3d = random() % NUM_DISP_3D_MODES;
+ else
+ pp->projection_3d = DISP_3D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_3d,"perspective"))
+ {
+ pp->projection_3d = DISP_3D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_3d,"orthographic"))
+ {
+ pp->projection_3d = DISP_3D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ /* Orthographic projection only makes sense in turn mode. */
+ if (pp->view == VIEW_TURN)
+ pp->projection_3d = random() % NUM_DISP_3D_MODES;
+ else
+ pp->projection_3d = DISP_3D_PERSPECTIVE;
+ }
+
+ /* Set the 4d projection mode. */
+ if (!strcasecmp(proj_4d,"random"))
+ {
+ pp->projection_4d = random() % NUM_DISP_4D_MODES;
+ }
+ else if (!strcasecmp(proj_4d,"perspective"))
+ {
+ pp->projection_4d = DISP_4D_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj_4d,"orthographic"))
+ {
+ pp->projection_4d = DISP_4D_ORTHOGRAPHIC;
+ }
+ else
+ {
+ pp->projection_4d = random() % NUM_DISP_4D_MODES;
+ }
+
+ /* Modify the speeds to a useful range in walk-and-turn mode. */
+ if (pp->view == VIEW_WALKTURN)
+ {
+ speed_wx *= 0.2;
+ speed_wy *= 0.2;
+ speed_wz *= 0.2;
+ speed_xy *= 0.2;
+ speed_xz *= 0.2;
+ speed_yz *= 0.2;
+ }
+
+ /* make multiple screens rotate at slightly different rates. */
+ pp->speed_scale = 0.9 + frand(0.3);
+
+ if ((pp->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_projectiveplane(mi,MI_WIDTH(mi),MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ init(mi);
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void draw_projectiveplane(ModeInfo *mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ projectiveplanestruct *pp;
+
+ if (projectiveplane == NULL)
+ return;
+ pp = &projectiveplane[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+ if (!pp->glx_context)
+ return;
+
+ glXMakeCurrent(display,window,*(pp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ display_projectiveplane(mi);
+
+ if (MI_IS_FPS(mi))
+ do_fps (mi);
+
+ glFlush();
+
+ glXSwapBuffers(display,window);
+}
+
+
+#ifndef STANDALONE
+ENTRYPOINT void change_projectiveplane(ModeInfo *mi)
+{
+ projectiveplanestruct *pp = &projectiveplane[MI_SCREEN(mi)];
+
+ if (!pp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi),MI_WINDOW(mi),*(pp->glx_context));
+ init(mi);
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("ProjectivePlane", projectiveplane)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/projectiveplane.man b/hacks/glx/projectiveplane.man
new file mode 100644
index 0000000..8adea81
--- /dev/null
+++ b/hacks/glx/projectiveplane.man
@@ -0,0 +1,400 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+projectiveplane - Draws a 4d embedding of the real projective plane.
+.SH SYNOPSIS
+.B projectiveplane
+[\-display \fIhost:display.screen\fP]
+[\-install]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fIusecs\fP]
+[\-fps]
+[\-mode \fIdisplay-mode\fP]
+[\-wireframe]
+[\-surface]
+[\-transparent]
+[\-appearance \fIappearance\fP]
+[\-solid]
+[\-distance-bands]
+[\-direction-bands]
+[\-colors \fIcolor-scheme\fP]
+[\-twosided-colors]
+[\-distance-colors]
+[\-direction-colors]
+[\-depth-colors]
+[\-view-mode \fIview-mode\fP]
+[\-walk]
+[\-turn]
+[\-walk-turn]
+[\-orientation-marks]
+[\-projection-3d \fImode\fP]
+[\-perspective-3d]
+[\-orthographic-3d]
+[\-projection-4d \fImode\fP]
+[\-perspective-4d]
+[\-orthographic-4d]
+[\-speed-wx \fIfloat\fP]
+[\-speed-wy \fIfloat\fP]
+[\-speed-wz \fIfloat\fP]
+[\-speed-xy \fIfloat\fP]
+[\-speed-xz \fIfloat\fP]
+[\-speed-yz \fIfloat\fP]
+[\-walk-direction \fIfloat\fP]
+[\-walk-speed \fIfloat\fP]
+.SH DESCRIPTION
+The \fIprojectiveplane\fP program shows a 4d embedding of the real
+projective plane. You can walk on the projective plane, see it turn
+in 4d, or walk on it while it turns in 4d. The fact that the surface
+is an embedding of the real projective plane in 4d can be seen in the
+depth colors mode: set all rotation speeds to 0 and the projection
+mode to 4d orthographic projection. In its default orientation, the
+embedding of the real projective plane will then project to the Roman
+surface, which has three lines of self-intersection. However, at the
+three lines of self-intersection the parts of the surface that
+intersect have different colors, i.e., different 4d depths.
+.PP
+The real projective plane is a non-orientable surface. To make this
+apparent, the two-sided color mode can be used. Alternatively,
+orientation markers (curling arrows) can be drawn as a texture map on
+the surface of the projective plane. While walking on the projective
+plane, you will notice that the orientation of the curling arrows
+changes (which it must because the projective plane is
+non-orientable).
+.PP
+The real projective plane is a model for the projective geometry in 2d
+space. One point can be singled out as the origin. A line can be
+singled out as the line at infinity, i.e., a line that lies at an
+infinite distance to the origin. The line at infinity is
+topologically a circle. Points on the line at infinity are also used
+to model directions in projective geometry. The origin can be
+visualized in different manners. When using distance colors, the
+origin is the point that is displayed as fully saturated red, which is
+easier to see as the center of the reddish area on the projective
+plane. Alternatively, when using distance bands, the origin is the
+center of the only band that projects to a disk. When using direction
+bands, the origin is the point where all direction bands collapse to a
+point. Finally, when orientation markers are being displayed, the
+origin the the point where all orientation markers are compressed to a
+point. The line at infinity can also be visualized in different ways.
+When using distance colors, the line at infinity is the line that is
+displayed as fully saturated magenta. When two-sided colors are used,
+the line at infinity lies at the points where the red and green
+"sides" of the projective plane meet (of course, the real projective
+plane only has one side, so this is a design choice of the
+visualization). Alternatively, when orientation markers are being
+displayed, the line at infinity is the place where the orientation
+markers change their orientation.
+.PP
+Note that when the projective plane is displayed with bands, the
+orientation markers are placed in the middle of the bands. For
+distance bands, the bands are chosen in such a way that the band at
+the origin is only half as wide as the remaining bands, which results
+in a disk being displayed at the origin that has the same diameter as
+the remaining bands. This choice, however, also implies that the band
+at infinity is half as wide as the other bands. Since the projective
+plane is attached to itself (in a complicated fashion) at the line at
+infinity, effectively the band at infinity is again as wide as the
+remaining bands. However, since the orientation markers are displayed
+in the middle of the bands, this means that only one half of the
+orientation markers will be displayed twice at the line at infinity if
+distance bands are used. If direction bands are used or if the
+projective plane is displayed as a solid surface, the orientation
+markers are displayed fully at the respective sides of the line at
+infinity.
+.PP
+The program projects the 4d projective plane to 3d using either a
+perspective or an orthographic projection. Which of the two
+alternatives looks more appealing is up to you. However, two famous
+surfaces are obtained if orthographic 4d projection is used: The Roman
+surface and the cross cap. If the projective plane is rotated in 4d,
+the result of the projection for certain rotations is a Roman surface
+and for certain rotations it is a cross cap. The easiest way to see
+this is to set all rotation speeds to 0 and the rotation speed around
+the yz plane to a value different from 0. However, for any 4d
+rotation speeds, the projections will generally cycle between the
+Roman surface and the cross cap. The difference is where the origin
+and the line at infinity will lie with respect to the
+self-intersections in the projections to 3d.
+.PP
+The projected projective plane can then be projected to the screen
+either perspectively or orthographically. When using the walking
+modes, perspective projection to the screen will be used.
+.PP
+There are three display modes for the projective plane: mesh
+(wireframe), solid, or transparent. Furthermore, the appearance of
+the projective plane can be as a solid object or as a set of
+see-through bands. The bands can be distance bands, i.e., bands that
+lie at increasing distances from the origin, or direction bands, i.e.,
+bands that lie at increasing angles with respect to the origin.
+.PP
+When the projective plane is displayed with direction bands, you will
+be able to see that each direction band (modulo the "pinching" at the
+origin) is a Moebius strip, which also shows that the projective plane
+is non-orientable.
+.PP
+Finally, the colors with with the projective plane is drawn can be set
+to two-sided, distance, direction, or depth. In two-sided mode, the
+projective plane is drawn with red on one "side" and green on the
+"other side". As described above, the projective plane only has one
+side, so the color jumps from red to green along the line at infinity.
+This mode enables you to see that the projective plane is
+non-orientable. In distance mode, the projective plane is displayed
+with fully saturated colors that depend on the distance of the points
+on the projective plane to the origin. The origin is displayed in
+red, the line at infinity is displayed in magenta. If the projective
+plane is displayed as distance bands, each band will be displayed with
+a different color. In direction mode, the projective plane is
+displayed with fully saturated colors that depend on the angle of the
+points on the projective plane with respect to the origin. Angles in
+opposite directions to the origin (e.g., 15 and 205 degrees) are
+displayed in the same color since they are projectively equivalent.
+If the projective plane is displayed as direction bands, each band
+will be displayed with a different color. Finally, in depth mode the
+projective plane with colors chosen depending on the 4d "depth" (i.e.,
+the w coordinate) of the points on the projective plane at its default
+orientation in 4d. As discussed above, this mode enables you to see
+that the projective plane does not intersect itself in 4d.
+.PP
+The rotation speed for each of the six planes around which the
+projective plane rotates can be chosen. For the walk-and-turn mode,
+only the rotation speeds around the true 4d planes are used (the xy,
+xz, and yz planes).
+.PP
+Furthermore, in the walking modes the walking direction in the 2d base
+square of the projective plane and the walking speed can be chosen.
+The walking direction is measured as an angle in degrees in the 2d
+square that forms the coordinate system of the surface of the
+projective plane. A value of 0 or 180 means that the walk is along a
+circle at a randomly chosen distance from the origin (parallel to a
+distance band). A value of 90 or 270 means that the walk is directly
+from the origin to the line at infinity and back (analogous to a
+direction band). Any other value results in a curved path from the
+origin to the line at infinity and back.
+.PP
+This program is somewhat inspired by Thomas Banchoff's book "Beyond
+the Third Dimension: Geometry, Computer Graphics, and Higher
+Dimensions", Scientific American Library, 1990.
+.SH OPTIONS
+.I projectiveplane
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class, or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How much of a delay should be introduced between steps of the
+animation. Default 10000, or 1/100th second.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.PP
+The following four options are mutually exclusive. They determine how
+the projective plane is displayed.
+.TP 8
+.B \-mode random
+Display the projective plane in a random display mode (default).
+.TP 8
+.B \-mode wireframe \fP(Shortcut: \fB\-wireframe\fP)
+Display the projective plane as a wireframe mesh.
+.TP 8
+.B \-mode surface \fP(Shortcut: \fB\-surface\fP)
+Display the projective plane as a solid surface.
+.TP 8
+.B \-mode transparent \fP(Shortcut: \fB\-transparent\fP)
+Display the projective plane as a transparent surface.
+.PP
+The following three options are mutually exclusive. They determine
+the appearance of the projective plane.
+.TP 8
+.B \-appearance random
+Display the projective plane with a random appearance (default).
+.TP 8
+.B \-appearance solid \fP(Shortcut: \fB\-solid\fP)
+Display the projective plane as a solid object.
+.TP 8
+.B \-appearance distance-bands \fP(Shortcut: \fB\-distance-bands\fP)
+Display the projective plane as see-through bands that lie at
+increasing distances from the origin.
+.PP
+.TP 8
+.B \-appearance direction-bands \fP(Shortcut: \fB\-direction-bands\fP)
+Display the projective plane as see-through bands that lie at
+increasing angles with respect to the origin.
+.PP
+The following four options are mutually exclusive. They determine how
+to color the projective plane.
+.TP 8
+.B \-colors random
+Display the projective plane with a random color scheme (default).
+.TP 8
+.B \-colors twosided \fP(Shortcut: \fB\-twosided-colors\fP)
+Display the projective plane with two colors: red on one "side" and
+green on the "other side." Note that the line at infinity lies at the
+points where the red and green "sides" of the projective plane meet,
+i.e., where the orientation of the projective plane reverses.
+.TP 8
+.B \-colors distance \fP(Shortcut: \fB\-distance-colors\fP)
+Display the projective plane with fully saturated colors that depend
+on the distance of the points on the projective plane to the origin.
+The origin is displayed in red, the line at infinity is displayed in
+magenta. If the projective plane is displayed as distance bands, each
+band will be displayed with a different color.
+.TP 8
+.B \-colors direction \fP(Shortcut: \fB\-direction-colors\fP)
+Display the projective plane with fully saturated colors that depend
+on the angle of the points on the projective plane with respect to the
+origin. Angles in opposite directions to the origin (e.g., 15 and 205
+degrees) are displayed in the same color since they are projectively
+equivalent. If the projective plane is displayed as direction bands,
+each band will be displayed with a different color.
+.TP 8
+.B \-colors depth \fP(Shortcut: \fB\-depth\fP)
+Display the projective plane with colors chosen depending on the 4d
+"depth" (i.e., the w coordinate) of the points on the projective plane
+at its default orientation in 4d.
+.PP
+The following four options are mutually exclusive. They determine how
+to view the projective plane.
+.TP 8
+.B \-view-mode random
+View the projective plane in a random view mode (default).
+.TP 8
+.B \-view-mode turn \fP(Shortcut: \fB\-turn\fP)
+View the projective plane while it turns in 4d.
+.TP 8
+.B \-view-mode walk \fP(Shortcut: \fB\-walk\fP)
+View the projective plane as if walking on its surface.
+.TP 8
+.B \-view-mode walk-turn \fP(Shortcut: \fB\-walk-turn\fP)
+View the projective plane as if walking on its surface. Additionally,
+the projective plane turns around the true 4d planes (the xy, xz, and
+yz planes).
+.PP
+The following options determine whether orientation marks are shown on
+the projective plane.
+.TP 8
+.B \-orientation-marks
+Display orientation marks on the projective plane.
+.TP 8
+.B \-no-orientation-marks
+Don't display orientation marks on the projective plane (default).
+.PP
+The following three options are mutually exclusive. They determine
+how the projective plane is projected from 3d to 2d (i.e., to the
+screen).
+.TP 8
+.B \-projection-3d random
+Project the projective plane from 3d to 2d using a random projection
+mode (default).
+.TP 8
+.B \-projection-3d perspective \fP(Shortcut: \fB\-perspective-3d\fP)
+Project the projective plane from 3d to 2d using a perspective
+projection.
+.TP 8
+.B \-projection-3d orthographic \fP(Shortcut: \fB\-orthographic-3d\fP)
+Project the projective plane from 3d to 2d using an orthographic
+projection.
+.PP
+The following three options are mutually exclusive. They determine
+how the projective plane is projected from 4d to 3d.
+.TP 8
+.B \-projection-4d random
+Project the projective plane from 4d to 3d using a random projection
+mode (default).
+.TP 8
+.B \-projection-4d perspective \fP(Shortcut: \fB\-perspective-4d\fP)
+Project the projective plane from 4d to 3d using a perspective
+projection.
+.TP 8
+.B \-projection-4d orthographic \fP(Shortcut: \fB\-orthographic-4d\fP)
+Project the projective plane from 4d to 3d using an orthographic
+projection.
+.PP
+The following six options determine the rotation speed of the
+projective plane around the six possible hyperplanes. The rotation
+speed is measured in degrees per frame. The speeds should be set to
+relatively small values, e.g., less than 4 in magnitude. In walk
+mode, all speeds are ignored. In walk-and-turn mode, the 3d rotation
+speeds are ignored (i.e., the wx, wy, and wz speeds). In
+walk-and-turn mode, smaller speeds must be used than in the turn mode
+to achieve a nice visualization. Therefore, in walk-and-turn mode the
+speeds you have selected are divided by 5 internally.
+.TP 8
+.B \-speed-wx \fIfloat\fP
+Rotation speed around the wx plane (default: 1.1).
+.TP 8
+.B \-speed-wy \fIfloat\fP
+Rotation speed around the wy plane (default: 1.3).
+.TP 8
+.B \-speed-wz \fIfloat\fP
+Rotation speed around the wz plane (default: 1.5).
+.TP 8
+.B \-speed-xy \fIfloat\fP
+Rotation speed around the xy plane (default: 1.7).
+.TP 8
+.B \-speed-xz \fIfloat\fP
+Rotation speed around the xz plane (default: 1.9).
+.TP 8
+.B \-speed-yz \fIfloat\fP
+Rotation speed around the yz plane (default: 2.1).
+.PP
+The following two options determine the walking speed and direction.
+.TP 8
+.B \-walk-direction \fIfloat\fP
+The walking direction is measured as an angle in degrees in the 2d
+square that forms the coordinate system of the surface of the
+projective plane (default: 83.0). A value of 0 or 180 means that the
+walk is along a circle at a randomly chosen distance from the origin
+(parallel to a distance band). A value of 90 or 270 means that the
+walk is directly from the origin to the line at infinity and back
+(analogous to a direction band). Any other value results in a curved
+path from the origin to the line at infinity and back.
+.TP 8
+.B \-walk-speed \fIfloat\fP
+The walking speed is measured in percent of some sensible maximum
+speed (default: 20.0).
+.SH INTERACTION
+If you run this program in standalone mode in its turn mode, you can
+rotate the projective plane by dragging the mouse while pressing the
+left mouse button. This rotates the projective plane in 3D, i.e.,
+around the wx, wy, and wz planes. If you press the shift key while
+dragging the mouse with the left button pressed the projective plane
+is rotated in 4D, i.e., around the xy, xz, and yz planes. To examine
+the projective plane at your leisure, it is best to set all speeds to
+0. Otherwise, the projective plane will rotate while the left mouse
+button is not pressed. This kind of interaction is not available in
+the two walk modes.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2005-2014 by Carsten Steger. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Carsten Steger <carsten@mirsanmir.org>, 03-oct-2014.
diff --git a/hacks/glx/providence.c b/hacks/glx/providence.c
new file mode 100644
index 0000000..d628845
--- /dev/null
+++ b/hacks/glx/providence.c
@@ -0,0 +1,799 @@
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Copyright 2004 Blair Tennessy
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n"
+
+# define free_providence 0
+# define release_providence 0
+#include "xlockmore.h"
+#else
+#include "xlock.h"
+#endif
+
+#include "gltrackball.h"
+
+#define DEF_SOLIDPROVIDENCE "False"
+#define DEF_EYE "True"
+
+static int eye;
+
+static XrmOptionDescRec opts[] = {
+ {"-eye", ".providence.eye", XrmoptionNoArg, "on"},
+ {"+eye", ".providence.eye", XrmoptionNoArg, "off"}
+};
+
+static argtype vars[] = {
+ {&eye, "eye", "Eye", DEF_EYE, t_Bool}
+};
+
+static OptionStruct desc[] = {
+ {"-/+eye", "turn on/off eye of providence"}
+};
+
+ENTRYPOINT ModeSpecOpt providence_opts = {
+ sizeof opts / sizeof opts[0], opts,
+ sizeof vars / sizeof vars[0], vars, desc
+};
+
+#ifdef USE_MODULES
+ModStruct providence_description = {
+ "providence", "init_providence", "draw_providence",
+ (char *) NULL, "draw_providence", "change_providence",
+ (char *) NULL, &providence_opts, 1000, 1, 1, 1, 4, 1.0, "",
+ "draws pyramid with glory", 0, NULL
+};
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 0.4
+
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+/* brick texture */
+#define checkImageWidth 64
+#define checkImageHeight 64
+
+#define EYE_PARTICLE_COUNT 2000
+
+#define LOOKUPSIZE (3600/5) /* 3600 was way too much RAM on iOS */
+#define EYELENGTH 300
+
+#define EPSILON 0.0001
+#define PARTICLE_COUNT 2000
+#define FPS 50
+
+
+typedef struct {
+ GLint WindH, WindW;
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+ GLfloat position0[4];
+ GLubyte checkImage[checkImageWidth][checkImageHeight][3];
+ GLuint bricktexture;
+
+ int mono, wire;
+ double camera_velocity;
+ double camera_z;
+
+ int pyramidlist;
+ double currenttime;
+ double theta;
+ double theta_scale;
+
+ double particles[PARTICLE_COUNT][5];
+ int eyeparticles[EYE_PARTICLE_COUNT][2];
+ double lookup[LOOKUPSIZE][EYELENGTH][2];
+ double lookup2[LOOKUPSIZE][EYELENGTH][2];
+
+} providencestruct;
+
+/* lighting variables */
+/*static const GLfloat front_shininess[] = {60.0};*/
+/*static const GLfloat front_specular[] = {0.2, 0.2, 0.2, 1.0};*/
+/*static const GLfloat ambient[] = {0.8, 0.8, 0.8, 1.0};*/
+static const GLfloat ambient2[] = {0.25, 0.25, 0.25, 1.0};
+static const GLfloat diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const GLfloat lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const GLfloat lmodel_twoside[] = {GL_TRUE};
+
+/* gray-gray */
+
+static const GLfloat MaterialGlory[] = {0.04, 0.30, 0.22, 0.7};
+static const GLfloat MaterialGloryB[] = {0.07, 0.50, 0.36, 0.6};
+
+static const GLfloat MaterialGloryF[] = {0.07, 0.50, 0.36, 1.0};
+/* static const GLfloat MaterialGloryF[] = {0.06, 0.38, 0.27, 1.0}; */
+/*static const GLfloat MaterialGloryE[] = {0.06, 0.38, 0.27, 0.3};*/
+static const GLfloat MaterialGloryM[] = {0.5, 0.5, 0.5, 0.5};
+static const GLfloat MaterialGloryMB[] = {0.36, 0.36, 0.36, 0.4};
+/*static const GLfloat MaterialGreenback[4] = {0.04, 0.30, 0.22, 1.0};*/
+/*static const GLfloat MaterialBlack[4] = {0.0, 0.0, 0.0, 1.0};*/
+
+static const GLfloat MaterialGray5[] = {0.5, 0.5, 0.5, 1.0};
+/*static const GLfloat MaterialGray6[] = {0.6, 0.6, 0.6, 1.0};*/
+
+static providencestruct *providence = (providencestruct *) NULL;
+
+#define NUM_SCENES 2
+
+/* build brick texture */
+static void make_brick(providencestruct *mp)
+{
+ int i, j, c;
+
+ for (i = 0; i < checkImageWidth; i++) {
+ for (j = 0; j < checkImageHeight; j++) {
+ c = i % 16 == 15 ? 255 : (j + 48*(i / 16))%64 == 0 ? 255 :
+ 102 + random() % 102;
+ mp->checkImage[i][j][0] = (GLubyte) c;
+ mp->checkImage[i][j][1] = (GLubyte) c;
+ mp->checkImage[i][j][2] = (GLubyte) c;
+ }
+ }
+
+ glGenTextures(1, &mp->bricktexture);
+ glBindTexture(GL_TEXTURE_2D, mp->bricktexture);
+
+ glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth,
+ checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
+ &mp->checkImage[0][0]);
+}
+
+
+/* build eye lookup table */
+static void build_eye(providencestruct *mp)
+{
+ int i, j;
+ double x;
+ double inc = 0.1 / EYELENGTH;
+ double inc2 = 2.4*Pi / EYELENGTH;
+
+ /* describe all values tangentially out from pupil */
+ for(i = 0; i < LOOKUPSIZE; ++i) {
+ double r = i * 2*Pi / LOOKUPSIZE;/*x + inc;*/
+ double sr = sin(r);
+ double cr = cos(r);
+ x = 0.07;
+
+ for(j = 0; j < EYELENGTH; ++j) {
+ mp->lookup[i][j][0] = x*sr;
+ mp->lookup[i][j][1] = x*cr;
+ x += inc;
+ }
+ }
+
+ /* lookup2: dollar sign */
+ for(i = 0; i < LOOKUPSIZE; ++i) {
+ double y = -1.2*Pi;
+
+ for(j = 0; j < EYELENGTH; ++j) {
+ if(i % 2) {
+ mp->lookup2[i][j][0] = sin(y)/6.0 + i/36000.0 - 0.05;
+ mp->lookup2[i][j][1] = i%4 ? y/12.0 - 0.05 : 1.2*Pi-y/12.0 + 0.05;
+ }
+ else {
+ mp->lookup2[i][j][0] = i/36000.0 - 0.05;
+ mp->lookup2[i][j][1] = y/9.0 - 0.05;
+ }
+ y += inc2;
+ }
+ }
+}
+
+
+static double min(double a, double b)
+{
+ return a < b ? a : b;
+}
+
+static double max(double a, double b)
+{
+ return a > b ? a : b;
+}
+
+static void init_particle(providencestruct *mp, double particle[5])
+{
+ /* position along glory */
+ double p = (random() % 485410) / 100000.0;
+
+ /* on a plane */
+ particle[2] = 0.0;
+
+ if(p < 1.5) {
+ particle[0] = p - 0.75;
+ particle[1] = -0.75001;
+ }
+ else if(p < 1.5 + sqrt(45)/4.0) {
+ double d = p - 1.5;
+ particle[0] = 0.75 - d*cos(atan(2.0));
+ particle[1] = d*sin(atan(2.0)) - 0.75;
+ }
+ else {
+ double d = 4.8541 - p;
+ particle[0] = -0.75 + d*cos(atan(2.0));
+ particle[1] = d*sin(atan(2.0)) - 0.75;
+ }
+
+ particle[3] = mp->currenttime;
+ particle[4] = 1.25 + (random()%10)/10.0;
+}
+
+/* init glory particles */
+static void init_particles(providencestruct *mp)
+{
+ int i;
+ for(i = 0; i < PARTICLE_COUNT; ++i) {
+ init_particle(mp, mp->particles[i]);
+
+ /* set initial time */
+ mp->particles[i][3] = mp->currenttime - (random()%1250)/1000.0;
+ }
+
+ /* init eye particles */
+ for(i = 0; i < EYE_PARTICLE_COUNT; ++i) {
+ mp->eyeparticles[i][0] = random()%LOOKUPSIZE;
+ mp->eyeparticles[i][1] = random()%EYELENGTH;
+ }
+}
+
+
+/* ugg, should be a priority queue if next event times known */
+static void update_particles(providencestruct *mp)
+{
+ int i;
+
+ for(i = 0; i < PARTICLE_COUNT; ++i) {
+ /* check for time elapse */
+ if(mp->currenttime > mp->particles[i][3] + mp->particles[i][4])
+ init_particle(mp, mp->particles[i]);
+ }
+
+ /* now update eye particles */
+ for(i = 0; i < EYE_PARTICLE_COUNT; ++i) {
+/* int x = eyeparticles[i][1] + random()%16; */
+ int x = mp->eyeparticles[i][1] + random()%(cos(mp->theta) < 0.0 ? 8 : 16);
+
+ /* reset if dead */
+ if(x >= EYELENGTH || random()%(cos(mp->theta) < 0.0 ? 40 : 10) == 0) {
+
+/* if(x > EYELENGTH || (x > EYELENGTH/(2/3.0) && random()%7 == 0)) { */
+ mp->eyeparticles[i][0] = random()%LOOKUPSIZE;
+ mp->eyeparticles[i][1] = random()%40;
+ }
+ else {
+ mp->eyeparticles[i][1] = x;
+ }
+ }
+}
+
+/* draw the pyramid */
+static void draw_seal(providencestruct *mp)
+{
+ int i;
+ double base = sqrt(2.0);
+ double top = 1.0 / sqrt(2.0);
+ double tmod = 7.0/6.0;
+
+ glPushMatrix();
+
+ /* set options for mono, wireframe */
+ if(mp->wire) {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_TEXTURE_2D);
+ }
+ else {
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, mp->bricktexture);
+
+ glEnable(GL_LIGHTING);
+
+ glColor4fv(mp->mono ? MaterialGray5 : MaterialGloryF);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGray5 : MaterialGloryF);
+ }
+
+ glRotatef(45.0, 0.0, 1.0, 0.0);
+ glTranslatef(0.0, -3.25, 0.0);
+
+ for(i = 0; i < 4; ++i) {
+ glRotatef(i*90.0, 0.0, 1.0, 0.0);
+
+ glBegin(GL_QUADS);
+ glNormal3f(1 / sqrt(6.0), 2 / sqrt(6.0), 1 / sqrt(6.0));
+ glTexCoord2f(-base, 0.0);
+ glVertex3f(-base, 0.0, base);
+ glTexCoord2f(base, 0.0);
+ glVertex3f(base, 0.0, base);
+ glTexCoord2f(top, 13.0/4.0);
+ glVertex3f(top, 2.0, top);
+ glTexCoord2f(-top, 13.0/4.0);
+ glVertex3f(-top, 2.0, top);
+ glEnd();
+ }
+
+ glBegin(GL_QUADS);
+
+ /* top */
+ glNormal3f(0.0, 1.0, 0.0);
+ glTexCoord2f(0.02, 0.0);
+ glVertex3f(-top, 2.0, top);
+ glTexCoord2f(2.0*top, 0.0);
+ glVertex3f(top, 2.0, top);
+ glTexCoord2f(2.0*top, tmod*2.1*top);
+ glVertex3f(top, 2.0, -top);
+ glTexCoord2f(0.02, tmod*2.1*top);
+ glVertex3f(-top, 2.0, -top);
+
+ /* base */
+ glNormal3f(0.0, -1.0, 0.0);
+ glTexCoord2f(-base, 0.0);
+ glVertex3f(-base, 0.0, -base);
+ glTexCoord2f(top, 0.0);
+ glVertex3f(base, 0.0, -base);
+ glTexCoord2f(top, top*13.0/4.0);
+ glVertex3f(base, 0.0, base);
+ glTexCoord2f(-top, top*13.0/4.0);
+ glVertex3f(-base, 0.0, base);
+
+ glEnd();
+
+ glPopMatrix();
+ glDisable(GL_TEXTURE_2D);
+}
+
+/* draw glory */
+static void draw_glory(providencestruct *mp)
+{
+ int i;
+
+ if(mp->wire) {
+ glBegin(GL_TRIANGLES);
+ glVertex3f(-0.75, -0.75, 0.0);
+ glVertex3f(0.75, -0.75, 0.0);
+ glVertex3f(0.0, 0.75, 0.0);
+
+ glVertex3f(0.0, 0.75, 0.0);
+ glVertex3f(0.75, -0.75, 0.0);
+ glVertex3f(-0.75, -0.75, 0.0);
+ glEnd();
+ return;
+ }
+
+ /* draw particles */
+ glDisable(GL_LIGHTING);
+ glPushMatrix();
+ glEnable(GL_BLEND);
+
+ /* glory colour lines */
+ glColor4fv(mp->mono ? MaterialGloryM : MaterialGlory);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryM : MaterialGlory);
+
+ glBegin(GL_LINES);
+ for(i = 0; i < PARTICLE_COUNT/2; ++i) {
+ double t = mp->currenttime - mp->particles[i][3];
+ double th = atan(mp->particles[i][1] / mp->particles[i][0]);
+ if(mp->particles[i][0] < 0.0)
+ th += Pi;
+
+ glVertex3f(mp->particles[i][0], mp->particles[i][1], mp->particles[i][2]);
+ glVertex3f(mp->particles[i][0] + 0.2*cos(th)*t,
+ mp->particles[i][1] + 0.2*sin(th)*t,
+ mp->particles[i][2]);
+ }
+ glEnd();
+
+ /* gloryb colour lines */
+ glColor4fv(mp->mono ? MaterialGloryMB : MaterialGloryB);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryMB : MaterialGloryB);
+ glBegin(GL_LINES);
+ for(; i < PARTICLE_COUNT; ++i) {
+ double t = mp->currenttime - mp->particles[i][3];
+ double th = atan(mp->particles[i][1] / mp->particles[i][0]);
+ if(mp->particles[i][0] < 0.0)
+ th += Pi;
+
+ glVertex3f(mp->particles[i][0], mp->particles[i][1], mp->particles[i][2]);
+ glVertex3f(mp->particles[i][0] + 0.2*cos(th)*t,
+ mp->particles[i][1] + 0.2*sin(th)*t,
+ mp->particles[i][2]);
+ }
+ glEnd();
+
+ glPopMatrix();
+ glEnable(GL_LIGHTING);
+}
+
+/* draw eye of providence */
+static void draw_eye(providencestruct *mp)
+{
+ int i;
+
+ /* draw wireeye */
+ if(mp->wire) {
+ glBegin(GL_TRIANGLES);
+ glVertex3f(-0.25, -0.25, 0.0);
+ glVertex3f(0.25, -0.25, 0.0);
+ glVertex3f(0.0, 0.25, 0.0);
+ glEnd();
+ return;
+ }
+
+ /* draw particles */
+ glDisable(GL_LIGHTING);
+ glPushMatrix();
+ glEnable(GL_BLEND);
+
+ /* eye */
+ glColor4fv(mp->mono ? MaterialGloryM : MaterialGlory);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryM : MaterialGlory);
+
+ /* draw eye particles on z = 0 plane */
+ glBegin(GL_POINTS);
+ for(i = 0; i < EYE_PARTICLE_COUNT/2; ++i) {
+ glVertex3f(mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][0],
+ mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][1],
+ 0.0);
+ }
+ glEnd();
+
+ /* eye */
+ glColor4fv(mp->mono ? MaterialGloryMB : MaterialGloryB);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryMB : MaterialGloryB);
+
+ /* draw eye particles on z = 0 plane */
+ glBegin(GL_POINTS);
+ for(; i < EYE_PARTICLE_COUNT; ++i) {
+ glVertex3f(mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][0],
+ mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][1],
+ 0.0);
+ }
+ glEnd();
+
+
+ /* draw scaled particles */
+ glPushMatrix();
+ glScalef(3.3, 2.2, 3.3);
+
+ /* eye */
+ glColor4fv(mp->mono ? MaterialGloryMB : MaterialGloryB);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryMB : MaterialGloryB);
+
+ /* draw eye particles on z = 0 plane */
+ glBegin(GL_POINTS);
+ for(i = 0; i < EYE_PARTICLE_COUNT/2; ++i) {
+ glVertex3f(mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][0],
+ mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][1],
+ 0.0);
+ }
+ glEnd();
+
+ glColor4fv(mp->mono ? MaterialGloryM : MaterialGlory);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryM : MaterialGlory);
+
+ /* draw eye particles on z = 0 plane */
+ glBegin(GL_POINTS);
+ for(; i < EYE_PARTICLE_COUNT; ++i) {
+ glVertex3f(mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][0],
+ mp->lookup[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][1],
+ 0.0);
+ }
+ glEnd();
+
+ glPopMatrix();
+
+ glPopMatrix();
+ glEnable(GL_LIGHTING);
+}
+
+/* draw eye of providence */
+static void draw_eye2(providencestruct *mp)
+{
+ int i;
+
+ /* draw wireeye */
+ if(mp->wire) {
+ glBegin(GL_TRIANGLES);
+ glVertex3f(0.0, 0.25, 0.0);
+ glVertex3f(0.25, -0.25, 0.0);
+ glVertex3f(-0.25, -0.25, 0.0);
+ glEnd();
+ return;
+ }
+
+ /* draw particles */
+ glDisable(GL_LIGHTING);
+ glPushMatrix();
+ glEnable(GL_BLEND);
+
+ /* eye */
+ glColor4fv(mp->mono ? MaterialGloryM : MaterialGlory);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryM : MaterialGlory);
+
+ /* draw eye particles on z = 0 plane */
+ glBegin(GL_POINTS);
+ for(i = 0; i < EYE_PARTICLE_COUNT/2; ++i) {
+ glVertex3f(mp->lookup2[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][0],
+ mp->lookup2[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][1],
+ 0.0);
+ }
+ glEnd();
+
+ /* eye */
+ glColor4fv(mp->mono ? MaterialGloryMB : MaterialGloryB);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,
+ mp->mono ? MaterialGloryMB : MaterialGloryB);
+
+ /* draw eye particles on z = 0 plane */
+ glBegin(GL_POINTS);
+ for(; i < EYE_PARTICLE_COUNT; ++i) {
+ glVertex3f(mp->lookup2[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][0],
+ mp->lookup2[mp->eyeparticles[i][0]][mp->eyeparticles[i][1]][1],
+ 0.0);
+ }
+ glEnd();
+
+ glPopMatrix();
+ glEnable(GL_LIGHTING);
+}
+
+/* draw the scene */
+static void draw_providence_strip(ModeInfo *mi)
+{
+ providencestruct *mp = &providence[MI_SCREEN(mi)];
+ glTranslatef(0.0, 1.414, 0.0);
+
+ mp->position0[0] = 1.6*sin(mp->theta);
+ mp->position0[1] = 1.2;
+ mp->position0[2] = 1.6*cos(mp->theta);
+ mp->position0[3] = 0.0;
+ glLightfv(GL_LIGHT0, GL_POSITION, mp->position0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient2);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ /* draw pyramid, glory */
+ glDisable(GL_BLEND);
+ glCallList(mp->pyramidlist);
+ draw_glory(mp);
+ if(eye) {
+ if(cos(mp->theta) < 0.0)
+ draw_eye2(mp);
+ else
+ draw_eye(mp);
+ }
+
+ return;
+}
+
+ENTRYPOINT void reshape_providence(ModeInfo * mi, int width, int height)
+{
+ providencestruct *mp = &providence[MI_SCREEN(mi)];
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 3;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, mp->WindW = (GLint) width, mp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ gluPerspective(45, 1/h, 0.001, 25.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLineWidth(2.0);
+ glPointSize(2.0);
+}
+
+static void pinit(providencestruct *mp)
+{
+ glClearDepth(1.0);
+
+ mp->currenttime = 0.0;
+ init_particles(mp);
+ make_brick(mp);
+ build_eye(mp);
+
+ /* build pyramid list */
+ mp->pyramidlist = glGenLists(1);
+ glNewList(mp->pyramidlist, GL_COMPILE);
+ draw_seal(mp);
+ glEndList();
+}
+
+/* event handling */
+ENTRYPOINT Bool providence_handle_event(ModeInfo *mi, XEvent *event)
+{
+ providencestruct *mp = &providence[MI_SCREEN(mi)];
+
+ switch(event->xany.type) {
+ case ButtonPress:
+ switch(event->xbutton.button) {
+ case Button4:
+ mp->camera_velocity += 1.0;
+ return True;
+ case Button5:
+ mp->camera_velocity -= 1.0;
+ return True;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (gltrackball_event_handler (event, mp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &mp->button_down_p))
+ return True;
+
+ return False;
+}
+
+ENTRYPOINT void init_providence(ModeInfo *mi)
+{
+ providencestruct *mp;
+
+ MI_INIT(mi, providence);
+ mp = &providence[MI_SCREEN(mi)];
+ mp->trackball = gltrackball_init (False);
+
+ mp->position0[0] = 1;
+ mp->position0[1] = 5;
+ mp->position0[2] = 1;
+ mp->position0[3] = 1;
+
+ mp->camera_velocity = -8.0;
+
+ mp->mono = MI_IS_MONO(mi);
+ mp->wire = MI_IS_WIREFRAME(mi);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ mp->wire = 0;
+# endif
+
+ /* make multiple screens rotate at slightly different rates. */
+ mp->theta_scale = 0.7 + frand(0.6);
+
+ if((mp->glx_context = init_GL(mi)) != NULL) {
+ reshape_providence(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ /* glDrawBuffer(GL_BACK); */
+ pinit(mp);
+ }
+ else
+ MI_CLEARWINDOW(mi);
+}
+
+ENTRYPOINT void draw_providence(ModeInfo * mi)
+{
+ providencestruct *mp;
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if(!providence)
+ return;
+ mp = &providence[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+
+ if(!mp->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(mp->glx_context));
+
+ /* setup twoside lighting */
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient2);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, mp->position0);
+
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glEnable(GL_NORMALIZE);
+ glFrontFace(GL_CCW);
+/* glDisable(GL_CULL_FACE); */
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LEQUAL);
+
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ /* modify camera */
+ if(fabs(mp->camera_velocity) > EPSILON) {
+ mp->camera_z = max(min(mp->camera_z + 0.1*mp->camera_velocity, -4.0), -12.0);
+ mp->camera_velocity = 0.95*mp->camera_velocity;
+ }
+
+ /* rotate providence */
+ glTranslatef(0.0, 0.0, mp->camera_z + sin(mp->theta/4.0));
+ glRotatef(10.0+20.0*sin(mp->theta/2.0), 1.0, 0.0, 0.0);
+ gltrackball_rotate(mp->trackball);
+ glRotatef(mp->theta * 180.0 / Pi, 0.0, -1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ /* draw providence */
+ draw_providence_strip(mi);
+ glPopMatrix();
+
+ if(MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+
+ glXSwapBuffers(display, window);
+
+ /* update */
+ mp->currenttime += 1.0 / FPS;
+ mp->theta = mp->currenttime / 2.0 * mp->theta_scale;
+ update_particles(mp);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void change_providence(ModeInfo * mi)
+{
+ providencestruct *mp = &providence[MI_SCREEN(mi)];
+
+ if (!mp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(mp->glx_context));
+ pinit();
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("Providence", providence)
diff --git a/hacks/glx/providence.man b/hacks/glx/providence.man
new file mode 100644
index 0000000..ea7286d
--- /dev/null
+++ b/hacks/glx/providence.man
@@ -0,0 +1,66 @@
+.TH XScreenSaver 1 "May 2004"
+.SH NAME
+providence - eye in glory screenhack
+.SH SYNOPSIS
+.B providence
+[\-display \fIhost:display.screen\fP]
+[\-window]
+[\-root]
+ [\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fImicroseconds\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIprovidence\fP code displays an eye, shrouded in glory, set upon the
+base of a pyramid.
+.SH OPTIONS
+.I providence
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-eye
+Draw an eye/$.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-wireframe
+Render in wireframe (with hidden line removal) instead of as textured solids.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 2004 by Blair Tennessy. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Blair Tennessy <tennessy@cs.ubc.ca>, 11-May-2004.
+
diff --git a/hacks/glx/pulsar.c b/hacks/glx/pulsar.c
new file mode 100644
index 0000000..285b5de
--- /dev/null
+++ b/hacks/glx/pulsar.c
@@ -0,0 +1,515 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* pulsar --- pulsar module for xpulsar */
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+
+ * Revision History:
+ * 4-Apr-1999: dek@cgl.ucsf.edu Created module "pulsar"
+ * 27-Apr-1999: dek@cgl.ucsf.edu Submitted module "pulsar"
+ * 4-May-1999: jwz@jwz.org Added module "pulsar"
+ * 4-May-1999: dek@cgl.ucsf.edu Submitted module "pulsar" updates
+ *
+ * Notes:
+ * The pulsar pulsar draws a number of rotating, pulsing rectangles
+ * on your screen. Depending on the options you choose, you can set a number
+ * of interesting OpenGL parameters, including alpha blending, depth testing, fog,
+ * lighting, texturing, mipmapping, bilinear filtering, and line antialiasing.
+ * Additionally, there is a "frames per second" meter which gives an estimate of
+ * the speed of your graphics card.
+ *
+ * Example command-line switches:
+ * Only draw a single quad, and don't fill it (boring but fast)
+ * pulsar -wire -quads 1 -fps
+ *
+ * Only try this with hardware graphics acceleration (PPro 200 w/ a Voodoo 2 runs great)
+ * pulsar -quads 10 -texture -mipmap -texture_quality -light -fog -fps
+ *
+ */
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+
+# define release_pulsar 0
+# define pulsar_handle_event xlockmore_no_events
+# include "xlockmore.h" /* from the xpulsar distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL /* whole file */
+
+#ifdef HAVE_XMU
+# ifndef VMS
+# include <X11/Xmu/Drawing.h>
+#else /* VMS */
+# include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#include "ximage-loader.h"
+
+/* Functions for loading and storing textures */
+
+#define checkImageWidth 64
+#define checkImageHeight 64
+
+/* Functions for handling the frames per second timer */
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define WIDTH 800
+#define HEIGHT 600
+
+#define NUM_QUADS 5
+#define DEF_QUADS "5"
+#define DEF_LIGHT "False"
+#define DEF_WIRE "False"
+#define DEF_BLEND "True"
+#define DEF_FOG "False"
+#define DEF_ANTIALIAS "False"
+#define DEF_TEXTURE "False"
+#define DEF_TEXTURE_QUALITY "False"
+#define DEF_MIPMAP "False"
+#define DEF_DO_DEPTH "False"
+#define DEF_IMAGE "BUILTIN"
+
+static int num_quads;
+static int do_light;
+static int do_wire;
+static int do_blend;
+static int do_fog;
+static int do_antialias;
+static int do_texture;
+static int do_texture_quality;
+static int do_mipmap;
+static int do_depth;
+static char *which_image;
+
+
+static XrmOptionDescRec opts[] = {
+ {"-quads", ".pulsar.quads", XrmoptionSepArg, 0 },
+ {"-light", ".pulsar.light", XrmoptionNoArg, "true" },
+ {"+light", ".pulsar.light", XrmoptionNoArg, "false" },
+ {"-wire", ".pulsar.wire", XrmoptionNoArg, "true" },
+ {"+wire", ".pulsar.wire", XrmoptionNoArg, "false" },
+ {"-blend", ".pulsar.blend", XrmoptionNoArg, "true" },
+ {"+blend", ".pulsar.blend", XrmoptionNoArg, "false" },
+ {"-fog", ".pulsar.fog", XrmoptionNoArg, "true" },
+ {"+fog", ".pulsar.fog", XrmoptionNoArg, "false" },
+ {"-antialias", ".pulsar.antialias", XrmoptionNoArg, "true" },
+ {"+antialias", ".pulsar.antialias", XrmoptionNoArg, "false" },
+ {"-texture", ".pulsar.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".pulsar.texture", XrmoptionNoArg, "false" },
+ {"-texture_quality", ".pulsar.textureQuality", XrmoptionNoArg, "true" },
+ {"+texture_quality", ".pulsar.textureQuality", XrmoptionNoArg, "false" },
+ {"-mipmap", ".pulsar.mipmap", XrmoptionNoArg, "true" },
+ {"+mipmap", ".pulsar.mipmap", XrmoptionNoArg, "false" },
+ {"-do_depth", ".pulsar.doDepth", XrmoptionNoArg, "true" },
+ {"+do_depth", ".pulsar.doDepth", XrmoptionNoArg, "false" },
+ {"-image", ".pulsar.image", XrmoptionSepArg, 0 },
+};
+
+
+static argtype vars[] = {
+ {&num_quads, "quads", "Quads", DEF_QUADS, t_Int},
+ {&do_light, "light", "Light", DEF_LIGHT, t_Bool},
+ {&do_wire, "wire", "Wire", DEF_WIRE, t_Bool},
+ {&do_blend, "blend", "Blend", DEF_BLEND, t_Bool},
+ {&do_fog, "fog", "Fog", DEF_FOG, t_Bool},
+ {&do_antialias, "antialias", "Antialias", DEF_ANTIALIAS, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_texture_quality, "textureQuality", "TextureQuality", DEF_TEXTURE_QUALITY, t_Bool},
+ {&do_mipmap, "mipmap", "Mipmap", DEF_MIPMAP, t_Bool},
+ {&do_depth, "doDepth", "DoDepth", DEF_DO_DEPTH, t_Bool},
+ {&which_image, "image", "Image", DEF_IMAGE, t_String},
+};
+
+
+static OptionStruct desc[] =
+{
+ {"-quads num", "how many quads to draw"},
+ {"-/+ light", "whether to do enable lighting (slower)"},
+ {"-/+ wire", "whether to do use wireframe instead of filled (faster)"},
+ {"-/+ blend", "whether to do enable blending (slower)"},
+ {"-/+ fog", "whether to do enable fog (?)"},
+ {"-/+ antialias", "whether to do enable antialiased lines (slower)"},
+ {"-/+ texture", "whether to do enable texturing (much slower)"},
+ {"-/+ texture_quality", "whether to do enable linear/mipmap filtering (much much slower)"},
+ {"-/+ mipmap", "whether to do enable mipmaps (much slower)"},
+ {"-/+ depth", "whether to do enable depth buffer checking (slower)"},
+ {"-image <filename>", "texture image to load"},
+};
+
+ENTRYPOINT ModeSpecOpt pulsar_opts = {countof(opts), opts, countof(vars), vars, desc};
+
+#ifdef USE_MODULES
+ModStruct pulsar_description =
+{"pulsar", "init_pulsar", "draw_pulsar", NULL,
+ "draw_pulsar", "init_pulsar", "free_pulsar", &pulsar_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "OpenGL pulsar", 0, NULL};
+#endif
+
+struct quad
+{
+ GLfloat tx, ty, tz;
+ GLfloat rx, ry, rz;
+
+ GLfloat dtx, dty, dtz;
+ GLfloat drx, dry, drz;
+
+};
+
+
+/* structure for holding the pulsar data */
+typedef struct {
+ int screen_width, screen_height;
+ GLXContext *glx_context;
+ Window window;
+ XColor fg, bg;
+
+ GLint quad_list;
+ float scale_x, scale_y, scale_z;
+ int frame;
+
+ struct quad *quads;
+
+} pulsarstruct;
+
+static pulsarstruct *Pulsar = NULL;
+
+static GLubyte *
+Generate_Image(int *width, int *height, int *format)
+{
+ GLubyte *result;
+ int i, j, c;
+ int counter=0;
+
+ *width = checkImageWidth;
+ *height = checkImageHeight;
+ result = (GLubyte *)malloc(4 * (*width) * (*height));
+
+ counter = 0;
+ for (i = 0; i < checkImageWidth; i++) {
+ for (j = 0; j < checkImageHeight; j++) {
+ c = (((((i&0x8)==0))^(((j&0x8))==0)))*255;
+ result[counter++] = (GLubyte) c;
+ result[counter++] = (GLubyte) c;
+ result[counter++] = (GLubyte) c;
+ result[counter++] = (GLubyte) 255;
+ }
+ }
+
+ *format = GL_RGBA;
+ return result;
+}
+
+
+/* Create a texture in OpenGL. First an image is loaded
+ and stored in a raster buffer, then it's */
+static void Create_Texture(ModeInfo *mi, const char *filename)
+{
+ int height, width;
+ GLubyte *image;
+ int format;
+
+ if ( !strncmp(filename, "BUILTIN", 7))
+ {
+ BUILTIN:
+ image = Generate_Image(&width, &height, &format);
+ }
+ else
+ {
+ XImage *ximage = file_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+ filename);
+ if (! ximage)
+ goto BUILTIN;
+ image = (GLubyte *) ximage->data;
+ width = ximage->width;
+ height = ximage->height;
+ format = GL_RGBA;
+ }
+
+ /* GL_MODULATE or GL_DECAL depending on what you want */
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ /* perhaps we can edge a bit more speed at the expense of quality */
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
+
+ if (do_texture_quality) {
+ /* with texture_quality, the min and mag filters look *much* nice but are *much* slower */
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ }
+ else {
+ /* default is to do it quick and dirty */
+ /* if you have mipmaps turned on, but not texture quality, nothing will happen! */
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ }
+
+ /* mipmaps make the image look much nicer */
+ if (do_mipmap)
+ {
+ int status;
+ clear_gl_error();
+ status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, format,
+ GL_UNSIGNED_BYTE, image);
+ if (status)
+ {
+ const char *s = (char *) gluErrorString (status);
+ fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+ progname, width, height,
+ (s ? s : "(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+ }
+ else
+ {
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0,
+ format, GL_UNSIGNED_BYTE, image);
+ check_gl_error("texture");
+ }
+}
+
+static void resetProjection(void)
+{
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1, 1, -1, 1, 1, 100);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+
+static void GenerateQuad(pulsarstruct *gp)
+{
+ int i;
+
+ gp->quad_list = glGenLists(1);
+ glNewList(gp->quad_list,GL_COMPILE);
+#if 1
+ glBegin(GL_QUADS);
+ glColor4f(1,0,0,.4); glNormal3f(0,0,1); glTexCoord2f(0,0); glVertex2f(-1, -1);
+ glColor4f(0,1,0,.4); glNormal3f(0,0,1); glTexCoord2f(0,1); glVertex2f(-1, 1);
+ glColor4f(0,0,1,.4); glNormal3f(0,0,1); glTexCoord2f(1,1); glVertex2f( 1, 1);
+ glColor4f(1,1,1,1); glNormal3f(0,0,1); glTexCoord2f(1,0); glVertex2f( 1, -1);
+#else
+ glBegin(GL_TRIANGLE_STRIP);
+ glColor4f(0,1,0,.4); glNormal3f(0,0,1); glTexCoord2f(0,1); glVertex2f(-1, 1);
+ glColor4f(1,0,0,.4); glNormal3f(0,0,1); glTexCoord2f(0,0); glVertex2f(-1, -1);
+ glColor4f(0,0,1,.4); glNormal3f(0,0,1); glTexCoord2f(1,1); glVertex2f( 1, 1);
+ glColor4f(1,1,1,.4); glNormal3f(0,0,1); glTexCoord2f(1,0); glVertex2f( 1, -1);
+#endif
+ glEnd();
+ glEndList();
+
+ gp->quads = (struct quad *) malloc(sizeof(struct quad) * num_quads);
+ for (i=0; i < num_quads; i++)
+ {
+ gp->quads[i].rx = 0.;
+ gp->quads[i].ry = 0.;
+ gp->quads[i].rz = 0.;
+ gp->quads[i].tx = 0.;
+ gp->quads[i].ty = 0.;
+ gp->quads[i].tz = -10;
+
+ gp->quads[i].drx = frand(5.0);
+ gp->quads[i].dry = frand(5.0);
+ gp->quads[i].drz = 0;
+ }
+}
+
+static void initializeGL(ModeInfo *mi, GLsizei width, GLsizei height)
+{
+ pulsarstruct *gp = &Pulsar[MI_SCREEN(mi)];
+ GLfloat fogColor[4] = { 0.1, 0.1, 0.1, 0.1 };
+
+ glViewport( 0, 0, width, height );
+ resetProjection();
+
+ if (do_depth)
+ glEnable(GL_DEPTH_TEST);
+
+ if (do_antialias) {
+ do_blend = 1;
+ glEnable(GL_LINE_SMOOTH);
+ }
+
+ if (do_blend) {
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+
+ if (do_light) {
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_COLOR_MATERIAL);
+ glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
+ }
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ do_wire = 0;
+# endif
+
+ if (do_wire)
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ else
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+
+ if (do_fog) {
+ glEnable(GL_FOG);
+ glFogi(GL_FOG_MODE, GL_LINEAR);
+ glFogfv(GL_FOG_COLOR, fogColor);
+ glFogf(GL_FOG_DENSITY, 0.35);
+/* glHint(GL_FOG_HINT, GL_FASTEST); */
+ glFogf(GL_FOG_START, 50.0);
+ glFogf(GL_FOG_END, 100.0);
+ }
+
+
+ if (do_texture)
+ Create_Texture(mi, which_image);
+
+ GenerateQuad(gp);
+}
+
+static void drawQuads(pulsarstruct *gp)
+{
+ int i;
+ for (i=0; i < num_quads; i++)
+ {
+ glPushMatrix();
+ glTranslatef(gp->quads[i].tx,0,0);
+ glTranslatef(0,gp->quads[i].ty,0);
+ glTranslatef(0,0,gp->quads[i].tz);
+ glRotatef(gp->quads[i].rx, 1,0,0);
+ glRotatef(gp->quads[i].ry, 0,1,0);
+ glRotatef(gp->quads[i].rz, 0,0,1);
+ glCallList(gp->quad_list);
+ glPopMatrix();
+
+ gp->quads[i].rx += gp->quads[i].drx;
+ gp->quads[i].ry += gp->quads[i].dry;
+ gp->quads[i].rz += gp->quads[i].drz;
+
+ }
+}
+
+static GLvoid drawScene(ModeInfo * mi)
+{
+ pulsarstruct *gp = &Pulsar[MI_SCREEN(mi)];
+/* check_gl_error ("drawScene"); */
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* we have to do this here because the FPS meter turns these 3 features off!! */
+ {
+ if (do_light) {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ }
+
+ if (do_texture) {
+ glEnable(GL_TEXTURE_2D);
+ }
+
+ if (do_blend) {
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ }
+
+ resetProjection();
+
+ /* use XYZ scaling factors to change the size of the pulsar */
+ glScalef(gp->scale_x, gp->scale_y, gp->scale_z);
+ drawQuads(gp);
+ mi->polygon_count = num_quads;
+
+ /* update the scaling factors- cyclic */
+ gp->scale_x = cos(gp->frame/360.)*10.;
+ gp->scale_y = sin(gp->frame/360.)*10.;
+ gp->scale_z = 1;
+
+ /* increment frame-counter */
+ gp->frame++;
+
+/* check_gl_error ("drawScene"); */
+}
+
+
+ENTRYPOINT void draw_pulsar(ModeInfo * mi)
+{
+ pulsarstruct *gp = &Pulsar[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!gp->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(gp->glx_context));
+ drawScene(mi);
+ if (mi->fps_p) do_fps (mi);
+ glXSwapBuffers(display, window);
+}
+
+/* Standard reshape function */
+ENTRYPOINT void
+reshape_pulsar(ModeInfo *mi, int width, int height)
+{
+ glViewport( 0, 0, MI_WIDTH(mi), MI_HEIGHT(mi) );
+ resetProjection();
+}
+
+ENTRYPOINT void
+init_pulsar(ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+
+ pulsarstruct *gp;
+
+ MI_INIT (mi, Pulsar);
+ gp = &Pulsar[screen];
+
+ gp->window = MI_WINDOW(mi);
+
+ gp->scale_x = gp->scale_y = gp->scale_z = 1;
+
+ if ((gp->glx_context = init_GL(mi)) != NULL) {
+ reshape_pulsar(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ initializeGL(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+
+/* all sorts of nice cleanup code should go here! */
+ENTRYPOINT void free_pulsar(ModeInfo * mi)
+{
+ pulsarstruct *gp = &Pulsar[MI_SCREEN(mi)];
+ free(gp->quads);
+}
+#endif
+
+XSCREENSAVER_MODULE ("Pulsar", pulsar)
diff --git a/hacks/glx/pulsar.man b/hacks/glx/pulsar.man
new file mode 100644
index 0000000..f3b1009
--- /dev/null
+++ b/hacks/glx/pulsar.man
@@ -0,0 +1,102 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+pulsar - intersecting planes, alpha blending, fog, and textures.
+.SH SYNOPSIS
+.B pulsar
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-no-light]
+[\-wire]
+[\-delay \fInumber\fP]
+[\-quads \fInumber\fP]
+[\-image \fIfile\fP]
+[\-light]
+[\-fog]
+[\-texture]
+[\-mipmap]
+[\-no-blend]
+[\-antialias]
+[\-texture_quality]
+[\-do_depth]
+[\-fps]
+.SH DESCRIPTION
+Draws some intersecting planes, making use of alpha blending, fog,
+textures, and mipmaps, plus a ``frames per second'' meter so that you can
+tell how fast your graphics card is... Requires OpenGL.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-light | \-no-light
+Use Flat Coloring.
+.TP 8
+.B \-wire
+Render in wireframe instead of solid.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-image \fIfile\fP
+The texture map to use.
+.TP 8
+.B \-quads \fInumber\fP
+Quad Count. 1 - 50. Default: 5.
+.TP 8
+.B \-light | \-no-light
+Whether to enable lighting.
+.TP 8
+.B \-fog | \-no-fog
+Whether to enable fog.
+.TP 8
+.B \-texture | \-no-texture
+Whether to enable texturing.
+.TP 8
+.B \-mipmap | \-no-mipmap
+Whether to enable texture mipmaps.
+.TP 8
+.B \-blend | \-no-blend
+Whether to enable blending.
+.TP 8
+.B \-antialias | \-no-antialias
+Whether to anti-alias lines.
+.TP 8
+.B \-texture_quality | \-no-texture_quality
+Whether to enable texture filtering.
+.TP 8
+.B \-do_depth | \-no-do_depth
+Whether to enable depth buffer.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by David Konerding. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+David Konerding.
diff --git a/hacks/glx/quasicrystal.c b/hacks/glx/quasicrystal.c
new file mode 100644
index 0000000..b82f470
--- /dev/null
+++ b/hacks/glx/quasicrystal.c
@@ -0,0 +1,478 @@
+/* quasicrystal, Copyright (c) 2013 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Overlapping sine waves create interesting plane-tiling interference
+ * patterns. Created by jwz, Jul 2013. Inspired by
+ * http://mainisusuallyafunction.blogspot.com/2011/10/quasicrystals-as-sums-of-waves-in-plane.html
+ */
+
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*spin: True \n" \
+ "*wander: True \n" \
+ "*symmetric: True \n" \
+ "*count: 17 \n" \
+ "*contrast: 30 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_quasicrystal 0
+# define release_quasicrystal 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPEED "1.0"
+
+typedef struct {
+ rotator *rot, *rot2;
+ GLuint texid;
+} plane;
+
+typedef struct {
+ GLXContext *glx_context;
+ Bool button_down_p;
+ Bool symmetric_p;
+ GLfloat contrast;
+ int count;
+ int ncolors, ccolor;
+ XColor *colors;
+ plane *planes;
+ int mousex, mousey;
+
+} quasicrystal_configuration;
+
+static quasicrystal_configuration *bps = NULL;
+
+static GLfloat speed;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-symmetry", ".symmetric", XrmoptionNoArg, "True" },
+ { "-symmetric", ".symmetric", XrmoptionNoArg, "True" },
+ { "-no-symmetry", ".symmetric", XrmoptionNoArg, "False" },
+ { "-nonsymmetric", ".symmetric", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-contrast", ".contrast", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt quasicrystal_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_quasicrystal (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho (0, 1, 1, 0, -1, 1);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef (0.5, 0.5, 0);
+ glScalef (h, 1, 1);
+ if (width > height)
+ glScalef (1/h, 1/h, 1);
+ glTranslatef (-0.5, -0.5, 0);
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+quasicrystal_handle_event (ModeInfo *mi, XEvent *event)
+{
+ quasicrystal_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress &&
+ event->xbutton.button == Button1)
+ {
+ bp->button_down_p = True;
+ bp->mousex = event->xbutton.x;
+ bp->mousey = event->xbutton.y;
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ bp->button_down_p = False;
+ return True;
+ }
+ else if (event->xany.type == ButtonPress && /* wheel up or right */
+ (event->xbutton.button == Button4 ||
+ event->xbutton.button == Button7))
+ {
+ UP:
+ if (bp->contrast <= 0) return False;
+ bp->contrast--;
+ return True;
+ }
+ else if (event->xany.type == ButtonPress && /* wheel down or left */
+ (event->xbutton.button == Button5 ||
+ event->xbutton.button == Button6))
+ {
+ DOWN:
+ if (bp->contrast >= 100) return False;
+ bp->contrast++;
+ return True;
+ }
+ else if (event->xany.type == MotionNotify &&
+ bp->button_down_p)
+ {
+ /* Dragging up and down tweaks contrast */
+
+ int dx = event->xmotion.x - bp->mousex;
+ int dy = event->xmotion.y - bp->mousey;
+
+ if (abs(dy) > abs(dx))
+ {
+ bp->contrast += dy / 40.0;
+ if (bp->contrast < 0) bp->contrast = 0;
+ if (bp->contrast > 100) bp->contrast = 100;
+ }
+
+ bp->mousex = event->xmotion.x;
+ bp->mousey = event->xmotion.y;
+ return True;
+ }
+ else
+ {
+ if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '<' || c == ',' || c == '-' || c == '_' ||
+ keysym == XK_Left || keysym == XK_Up || keysym == XK_Prior)
+ goto UP;
+ else if (c == '>' || c == '.' || c == '=' || c == '+' ||
+ keysym == XK_Right || keysym == XK_Down ||
+ keysym == XK_Next)
+ goto DOWN;
+ }
+
+ return screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event);
+ }
+
+ return False;
+}
+
+
+
+ENTRYPOINT void
+init_quasicrystal (ModeInfo *mi)
+{
+ quasicrystal_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ unsigned char *tex_data = 0;
+ int tex_width;
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_quasicrystal (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glDisable (GL_DEPTH_TEST);
+ glEnable (GL_CULL_FACE);
+
+ bp->count = MI_COUNT(mi);
+ if (bp->count < 1) bp->count = 1;
+
+ if (! wire)
+ {
+ unsigned char *o;
+
+ tex_width = 4096;
+ glGetIntegerv (GL_MAX_TEXTURE_SIZE, &tex_width);
+ if (tex_width > 4096) tex_width = 4096;
+
+ tex_data = (unsigned char *) calloc (4, tex_width);
+ o = tex_data;
+ for (i = 0; i < tex_width; i++)
+ {
+ unsigned char y = 255 * (1 + sin (i * M_PI * 2 / tex_width)) / 2;
+ *o++ = y;
+ *o++ = y;
+ *o++ = y;
+ *o++ = 255;
+ }
+ }
+
+ bp->symmetric_p =
+ get_boolean_resource (MI_DISPLAY (mi), "symmetric", "Symmetric");
+
+ bp->contrast = get_float_resource (MI_DISPLAY (mi), "contrast", "Contrast");
+ if (bp->contrast < 0 || bp->contrast > 100)
+ {
+ fprintf (stderr, "%s: contrast must be between 0 and 100%%.\n", progname);
+ bp->contrast = 0;
+ }
+
+ {
+ Bool spinp = get_boolean_resource (MI_DISPLAY (mi), "spin", "Spin");
+ Bool wanderp = get_boolean_resource (MI_DISPLAY (mi), "wander", "Wander");
+ double spin_speed = 0.01;
+ double wander_speed = 0.0001;
+ double spin_accel = 10.0;
+ double scale_speed = 0.005;
+
+ bp->planes = (plane *) calloc (sizeof (*bp->planes), bp->count);
+
+ bp->ncolors = 256; /* ncolors affects color-cycling speed */
+ bp->colors = (XColor *) calloc (bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0, bp->colors, &bp->ncolors,
+ False, 0, False);
+ bp->ccolor = 0;
+
+ for (i = 0; i < bp->count; i++)
+ {
+ plane *p = &bp->planes[i];
+ p->rot = make_rotator (0, 0,
+ spinp ? spin_speed : 0,
+ spin_accel,
+ wanderp ? wander_speed : 0,
+ True);
+ p->rot2 = make_rotator (0, 0,
+ 0, 0,
+ scale_speed,
+ True);
+ if (! wire)
+ {
+ clear_gl_error();
+
+ glGenTextures (1, &p->texid);
+ glBindTexture (GL_TEXTURE_1D, p->texid);
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ glTexImage1D (GL_TEXTURE_1D, 0, GL_RGBA,
+ tex_width, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, tex_data);
+ check_gl_error("texture");
+
+ glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ }
+ }
+ }
+
+ if (tex_data) free (tex_data);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+ENTRYPOINT void
+draw_quasicrystal (ModeInfo *mi)
+{
+ quasicrystal_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+ double r=0, ps=0;
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ mi->polygon_count = 0;
+
+ glShadeModel(GL_FLAT);
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_CULL_FACE);
+ glDisable (GL_LIGHTING);
+ if (!wire)
+ {
+ glEnable (GL_TEXTURE_1D);
+# ifdef HAVE_JWZGLES
+ glEnable (GL_TEXTURE_2D); /* jwzgles needs this, bleh. */
+# endif
+ }
+
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glPushMatrix ();
+ glTranslatef (0.5, 0.5, 0);
+ glScalef (3, 3, 3);
+
+ if (wire) glScalef (0.2, 0.2, 0.2);
+
+ for (i = 0; i < bp->count; i++)
+ {
+ plane *p = &bp->planes[i];
+ double x, y, z;
+ double scale = (wire ? 10 : 700.0 / bp->count);
+ double pscale;
+
+ glPushMatrix();
+
+ get_position (p->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 0.3333,
+ (y - 0.5) * 0.3333,
+ 0);
+
+ /* With -symmetry, keep the planes' scales in sync.
+ Otherwise, they scale independently.
+ */
+ if (bp->symmetric_p && i > 0)
+ pscale = ps;
+ else
+ {
+ get_position (p->rot2, &x, &y, &z, !bp->button_down_p);
+ pscale = 1 + (4 * z);
+ ps = pscale;
+ }
+
+ scale *= pscale;
+
+
+ /* With -symmetry, evenly distribute the planes' rotation.
+ Otherwise, they rotate independently.
+ */
+ if (bp->symmetric_p && i > 0)
+ z = r + (i * M_PI * 2 / bp->count);
+ else
+ {
+ get_rotation (p->rot, &x, &y, &z, !bp->button_down_p);
+ r = z;
+ }
+
+
+ glRotatef (z * 360, 0, 0, 1);
+ glTranslatef (-0.5, -0.5, 0);
+
+ glColor4f (1, 1, 1, (wire ? 0.5 : 1.0 / bp->count));
+
+ if (!wire)
+ glBindTexture (GL_TEXTURE_1D, p->texid);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f (0, 0, 1);
+ glTexCoord2f (-scale/2, scale/2); glVertex3f (0, 1, 0);
+ glTexCoord2f ( scale/2, scale/2); glVertex3f (1, 1, 0);
+ glTexCoord2f ( scale/2, -scale/2); glVertex3f (1, 0, 0);
+ glTexCoord2f (-scale/2, -scale/2); glVertex3f (0, 0, 0);
+ glEnd();
+
+ if (wire)
+ {
+ float j;
+ glDisable (GL_TEXTURE_1D);
+ glColor4f (1, 1, 1, 1.0 / bp->count);
+ for (j = 0; j < 1; j += (1 / scale))
+ {
+ glBegin (GL_LINES);
+ glVertex3f (j, 0, 0);
+ glVertex3f (j, 1, 0);
+ mi->polygon_count++;
+ glEnd();
+ }
+ }
+
+ glPopMatrix();
+
+ mi->polygon_count++;
+ }
+
+ /* Colorize the grayscale image. */
+ {
+ GLfloat c[4];
+ c[0] = bp->colors[bp->ccolor].red / 65536.0;
+ c[1] = bp->colors[bp->ccolor].green / 65536.0;
+ c[2] = bp->colors[bp->ccolor].blue / 65536.0;
+ c[3] = 1;
+
+ /* Brighten the colors. */
+ c[0] = (0.6666 + c[0]/3);
+ c[1] = (0.6666 + c[1]/3);
+ c[2] = (0.6666 + c[2]/3);
+
+ glBlendFunc (GL_DST_COLOR, GL_SRC_COLOR);
+ glDisable (GL_TEXTURE_1D);
+ glColor4fv (c);
+ glTranslatef (-0.5, -0.5, 0);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glVertex3f (0, 0, 0);
+ glEnd();
+ mi->polygon_count++;
+ }
+
+ /* Clip the colors to simulate contrast. */
+
+ if (bp->contrast > 0)
+ {
+ /* If c > 0, map 0 - 100 to 0.5 - 1.0, and use (s & ~d) */
+ GLfloat c = 1 - (bp->contrast / 2 / 100.0);
+ glDisable (GL_TEXTURE_1D);
+ glDisable (GL_BLEND);
+ glEnable (GL_COLOR_LOGIC_OP);
+ glLogicOp (GL_AND_REVERSE);
+ glColor4f (c, c, c, 1);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 1, 0);
+ glVertex3f (1, 1, 0);
+ glVertex3f (1, 0, 0);
+ glVertex3f (0, 0, 0);
+ glEnd();
+ mi->polygon_count++;
+ glDisable (GL_COLOR_LOGIC_OP);
+ }
+
+ /* Rotate colors. */
+ bp->ccolor++;
+ if (bp->ccolor >= bp->ncolors)
+ bp->ccolor = 0;
+
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("QuasiCrystal", quasicrystal)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/quasicrystal.man b/hacks/glx/quasicrystal.man
new file mode 100644
index 0000000..804d3a3
--- /dev/null
+++ b/hacks/glx/quasicrystal.man
@@ -0,0 +1,83 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+quasicrystal - aperiodic plane tilings.
+.SH SYNOPSIS
+.B quasicrystal
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-contrast \fIpercent\fP]
+[\-no-wander]
+[\-no-spin]
+[\-asymmetric]
+[\-fps]
+.SH DESCRIPTION
+A quasicrystal is a structure that is ordered but aperiodic.
+Two-dimensional quasicrystals can be generated by adding a set of planes
+where x is the sine of y. Different complex aperiodic plane tilings are
+produced depending on the period, position, and rotation of the component
+planes, and whether the rotation of the planes is evenly distributed around
+the circle (the "symmetric" option, above) or random. See also the
+"RD-Bomb", "CWaves" and "Penrose" screen savers.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2 for twice as fast, 0.5 for half as fast.
+.TP 8
+.B \-contrast \fIcontrast\fP
+Contrast. Sort of. Default 30%.
+.TP 8
+.B \-count \fInumber\fP
+How many planes to use. Default 17.
+.TP 8
+.B \-wander | \-no-wander
+Whether the planes should displace horizontally and vertically.
+.TP 8
+.B \-spin | \-no-spin
+Whether the planes should rotate.
+.TP 8
+.B \-asymmetric
+Allow each plane to rotate freely instead of being constrained to an
+even distribution around the circle.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2013 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/queens.c b/hacks/glx/queens.c
new file mode 100644
index 0000000..bc9b202
--- /dev/null
+++ b/hacks/glx/queens.c
@@ -0,0 +1,610 @@
+/*
+ * queens - solves n queens problem, displays
+ * i make no claims that this is an optimal solution to the problem,
+ * good enough for xss
+ * hacked from glchess
+ *
+ * version 1.0 - May 10, 2002
+ *
+ * Copyright (C) 2002 Blair Tennessy (tennessy@cs.ubc.ca)
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef STANDALONE
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_queens 0
+# define release_queens 0
+# include "xlockmore.h"
+
+#else
+# include "xlock.h"
+#endif
+
+#ifdef HAVE_JWXYZ
+# include "jwxyz.h"
+#else
+# include <X11/Xlib.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#ifdef USE_GL
+
+#include "gltrackball.h"
+#include "chessmodels.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static XrmOptionDescRec opts[] = {
+ {"+rotate", ".queens.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".queens.rotate", XrmoptionNoArg, "true" },
+ {"+flat", ".queens.flat", XrmoptionNoArg, "false" },
+ {"-flat", ".queens.flat", XrmoptionNoArg, "true" },
+};
+
+static int rotate, wire, clearbits, flat;
+
+static argtype vars[] = {
+ {&rotate, "rotate", "Rotate", "True", t_Bool},
+ {&flat, "flat", "Flat", "False", t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt queens_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct queens_description =
+{"queens", "init_queens", "draw_queens", NULL,
+ "draw_queens", "init_queens", NULL, &queens_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Queens", 0, NULL};
+
+#endif
+
+#define NONE 0
+#define MINBOARD 5
+#define MAXBOARD 10
+#define COLORSETS 5
+
+typedef struct {
+ GLXContext *glx_context;
+ Window window;
+ trackball_state *trackball;
+ Bool button_down_p;
+ GLfloat position[4];
+ int queen_list;
+
+ int board[MAXBOARD][MAXBOARD];
+ int steps, colorset, BOARDSIZE;
+ double theta;
+ int queen_polys;
+
+} Queenscreen;
+
+static Queenscreen *qss = NULL;
+
+/* definition of white/black colors */
+static const GLfloat colors[COLORSETS][2][3] =
+ {
+ {{0.43, 0.54, 0.76}, {0.8, 0.8, 0.8}},
+ {{0.5, 0.7, 0.9}, {0.2, 0.3, 0.6}},
+ {{0.53725490196, 0.360784313725, 0.521568627451}, {0.6, 0.6, 0.6}},
+ {{0.15, 0.77, 0.54}, {0.5, 0.5, 0.5}},
+ {{0.9, 0.45, 0.0}, {0.5, 0.5, 0.5}},
+ };
+
+ENTRYPOINT Bool
+queens_handle_event (ModeInfo *mi, XEvent *event)
+{
+ Queenscreen *qs = &qss[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, qs->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &qs->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ qs->steps = 1024 - 1;
+ return True;
+ }
+
+ return False;
+}
+
+
+
+/* returns true if placing a queen on column c causes a conflict */
+static int conflictsCols(Queenscreen *qs, int c)
+{
+ int i;
+
+ for(i = 0; i < qs->BOARDSIZE; ++i)
+ if(qs->board[i][c])
+ return 1;
+
+ return 0;
+}
+
+/* returns true if placing a queen on (r,c) causes a diagonal conflict */
+static int conflictsDiag(Queenscreen *qs, int r, int c)
+{
+ int i;
+
+ /* positive slope */
+ int n = r < c ? r : c;
+ for(i = 0; i < qs->BOARDSIZE-abs(r-c); ++i)
+ if(qs->board[r-n+i][c-n+i])
+ return 1;
+
+ /* negative slope */
+ n = r < qs->BOARDSIZE - (c+1) ? r : qs->BOARDSIZE - (c+1);
+ for(i = 0; i < qs->BOARDSIZE-abs(qs->BOARDSIZE - (1+r+c)); ++i)
+ if(qs->board[r-n+i][c+n-i])
+ return 1;
+
+ return 0;
+}
+
+/* returns true if placing a queen at (r,c) causes a conflict */
+static int conflicts(Queenscreen *qs, int r, int c)
+{
+ return !conflictsCols(qs, c) ? conflictsDiag(qs, r, c) : 1;
+}
+
+/* clear board */
+static void blank(Queenscreen *qs)
+{
+ int i, j;
+
+ for(i = 0; i < MAXBOARD; ++i)
+ for(j = 0; j < MAXBOARD; ++j)
+ qs->board[i][j] = NONE;
+}
+
+/* recursively determine solution */
+static int findSolution(Queenscreen *qs, int row, int col)
+{
+ if(row == qs->BOARDSIZE)
+ return 1;
+
+ while(col < qs->BOARDSIZE) {
+ if(!conflicts(qs, row, col)) {
+ qs->board[row][col] = 1;
+
+ if(findSolution(qs, row+1, 0))
+ return 1;
+
+ qs->board[row][col] = 0;
+ }
+
+ ++col;
+ }
+
+ return 0;
+}
+
+/** driver for finding solution */
+static void go(Queenscreen *qs) { while(!findSolution(qs, 0, random()%qs->BOARDSIZE)); }
+
+/* lighting variables */
+static const GLfloat front_shininess[] = {60.0};
+static const GLfloat front_specular[] = {0.4, 0.4, 0.4, 1.0};
+static const GLfloat ambient[] = {0.3, 0.3, 0.3, 1.0};
+static const GLfloat diffuse[] = {0.8, 0.8, 0.8, 1.0};
+
+/* configure lighting */
+static void setup_lights(Queenscreen *qs)
+{
+
+ /* setup twoside lighting */
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, qs->position);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ /* setup material properties */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+}
+
+#define checkImageWidth 8
+#define checkImageHeight 8
+/*static GLubyte checkImage[checkImageWidth][checkImageHeight][3];*/
+
+/* return alpha value for fading */
+static GLfloat findAlpha(Queenscreen *qs)
+{
+ return qs->steps < 128 ? qs->steps/128.0 : qs->steps < 1024-128 ?1.0:(1024-qs->steps)/128.0;
+}
+
+/* draw pieces */
+static int drawPieces(Queenscreen *qs)
+{
+ int i, j;
+ int polys = 0;
+
+ for(i = 0; i < qs->BOARDSIZE; ++i) {
+ for(j = 0; j < qs->BOARDSIZE; ++j) {
+ if(qs->board[i][j]) {
+ glColor3fv(colors[qs->colorset][i%2]);
+ glCallList(qs->queen_list);
+ polys += qs->queen_polys;
+ }
+
+ glTranslatef(1.0, 0.0, 0.0);
+ }
+
+ glTranslatef(-1.0*qs->BOARDSIZE, 0.0, 1.0);
+ }
+ return polys;
+}
+
+/** reflectionboard */
+static int draw_reflections(Queenscreen *qs)
+{
+ int i, j;
+ int polys = 0;
+
+ glEnable(GL_STENCIL_TEST);
+ glStencilFunc(GL_ALWAYS, 1, 1);
+ glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
+ glColorMask(0,0,0,0);
+ glDisable(GL_CULL_FACE);
+
+ glDisable(GL_DEPTH_TEST);
+ glBegin(GL_QUADS);
+
+ /* only draw white squares */
+ for(i = 0; i < qs->BOARDSIZE; ++i) {
+ for(j = (qs->BOARDSIZE+i) % 2; j < qs->BOARDSIZE; j += 2) {
+ glVertex3f(i, 0.0, j + 1.0);
+ glVertex3f(i + 1.0, 0.0, j + 1.0);
+ glVertex3f(i + 1.0, 0.0, j);
+ glVertex3f(i, 0.0, j);
+ polys++;
+ }
+ }
+ glEnd();
+ glEnable(GL_DEPTH_TEST);
+
+ glColorMask(1, 1, 1, 1);
+ glStencilFunc(GL_EQUAL, 1, 1);
+ glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
+
+ glPushMatrix();
+ glScalef(1.0, -1.0, 1.0);
+ glTranslatef(0.5, 0.001, 0.5);
+ glLightfv(GL_LIGHT0, GL_POSITION, qs->position);
+ polys += drawPieces(qs);
+ glPopMatrix();
+ glDisable(GL_STENCIL_TEST);
+
+ /* replace lights */
+ glLightfv(GL_LIGHT0, GL_POSITION, qs->position);
+
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ glColorMask(1,1,1,1);
+ return polys;
+}
+
+/* draw board */
+static int drawBoard(Queenscreen *qs)
+{
+ int i, j;
+ int polys = 0;
+
+ glBegin(GL_QUADS);
+
+ for(i = 0; i < qs->BOARDSIZE; ++i)
+ for(j = 0; j < qs->BOARDSIZE; ++j) {
+ int par = (i-j+qs->BOARDSIZE)%2;
+ glColor4f(colors[qs->colorset][par][0],
+ colors[qs->colorset][par][1],
+ colors[qs->colorset][par][2],
+ 0.70);
+ glNormal3f(0.0, 1.0, 0.0);
+ glVertex3f(i, 0.0, j + 1.0);
+ glVertex3f(i + 1.0, 0.0, j + 1.0);
+ glVertex3f(i + 1.0, 0.0, j);
+ glVertex3f(i, 0.0, j);
+ polys++;
+ }
+
+ glEnd();
+
+ {
+ GLfloat off = 0.01;
+ GLfloat w = qs->BOARDSIZE;
+ GLfloat h = 0.1;
+
+ /* Give the board a slight lip. */
+ /* #### oops, normals are wrong here, but you can't tell */
+
+ glColor3f(0.3, 0.3, 0.3);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, -h, w);
+ glVertex3f (0, 0, w);
+
+ glVertex3f (0, 0, w);
+ glVertex3f (0, -h, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, 0, w);
+
+ glVertex3f (w, 0, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, 0, 0);
+
+ glVertex3f (w, 0, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, 0, 0);
+
+ glVertex3f (0, -h, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, -h, w);
+ glVertex3f (0, -h, w);
+ glEnd();
+ polys += 4;
+
+ /* Fill in the underside of the board with an invisible black box
+ to hide the reflections that are not on tiles. Probably there's
+ a way to do this with stencils instead.
+ */
+ w -= off*2;
+ h = 5;
+
+ glPushMatrix();
+ glTranslatef (off, 0, off);
+ glDisable(GL_LIGHTING);
+ glColor3f(0,0,0);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 0, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, -h, w);
+ glVertex3f (0, 0, w);
+
+ glVertex3f (0, 0, w);
+ glVertex3f (0, -h, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, 0, w);
+
+ glVertex3f (w, 0, w);
+ glVertex3f (w, -h, w);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, 0, 0);
+
+ glVertex3f (w, 0, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (0, -h, 0);
+ glVertex3f (0, 0, 0);
+
+ glVertex3f (0, -h, 0);
+ glVertex3f (w, -h, 0);
+ glVertex3f (w, -h, w);
+ glVertex3f (0, -h, w);
+ glEnd();
+ polys += 4;
+ glPopMatrix();
+ if (!wire)
+ glEnable(GL_LIGHTING);
+ }
+
+ return polys;
+}
+
+static int display(ModeInfo *mi, Queenscreen *qs)
+{
+ int max = 1024;
+ int polys = 0;
+ glClear(clearbits);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ /* setup light attenuation */
+ /* #### apparently this does nothing */
+ glEnable(GL_COLOR_MATERIAL);
+ glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.8/(0.01+findAlpha(qs)));
+ glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.06);
+
+ /** setup perspective */
+ glTranslatef(0.0, 0.0, -1.5*qs->BOARDSIZE);
+ glRotatef(30.0, 1.0, 0.0, 0.0);
+ gltrackball_rotate (qs->trackball);
+ glRotatef(qs->theta*100, 0.0, 1.0, 0.0);
+ glTranslatef(-0.5*qs->BOARDSIZE, 0.0, -0.5*qs->BOARDSIZE);
+
+ /* find light positions */
+ qs->position[0] = qs->BOARDSIZE/2.0 + qs->BOARDSIZE/1.4*-sin(qs->theta*100*M_PI/180.0);
+ qs->position[2] = qs->BOARDSIZE/2.0 + qs->BOARDSIZE/1.4*cos(qs->theta*100*M_PI/180.0);
+ qs->position[1] = 6.0;
+
+ if(!wire) {
+ glEnable(GL_LIGHTING);
+ glLightfv(GL_LIGHT0, GL_POSITION, qs->position);
+ glEnable(GL_LIGHT0);
+ }
+
+ /* Since the lighting attenuation trick up there doesn't seem to be working,
+ let's drop the old board down and drop the new board in. */
+ if (qs->steps < (max/8.0)) {
+ GLfloat y = qs->steps / (max/8.0);
+ y = sin (M_PI/2 * y);
+ glTranslatef (0, 10 - (y * 10), 0);
+ } else if (qs->steps > max-(max/8.0)) {
+ GLfloat y = (qs->steps - (max-(max/8.0))) / (GLfloat) (max/8.0);
+ y = 1 - sin (M_PI/2 * (1-y));
+ glTranslatef (0, -y * 15, 0);
+ }
+
+ /* draw reflections */
+ if(!wire) {
+ polys += draw_reflections(qs);
+ glEnable(GL_BLEND);
+ }
+ polys += drawBoard(qs);
+ if(!wire)
+ glDisable(GL_BLEND);
+
+ glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.1);
+
+ glTranslatef(0.5, 0.0, 0.5);
+ polys += drawPieces(qs);
+
+ /* rotate camera */
+ if(!qs->button_down_p)
+ qs->theta += .002;
+
+ /* zero out board, find new solution of size MINBOARD <= i <= MAXBOARD */
+ if(++qs->steps == max) {
+ qs->steps = 0;
+ blank(qs);
+ qs->BOARDSIZE = MINBOARD + (random() % (MAXBOARD - MINBOARD + 1));
+ qs->colorset = (qs->colorset+1)%COLORSETS;
+ go(qs);
+ }
+ return polys;
+}
+
+#define EPSILON 0.001
+
+#if 0
+/** draws cylindermodel */
+static int draw_model(int chunks, const GLfloat model[][3], int r)
+{
+ int i = 0;
+ int polys = 0;
+ glPushMatrix();
+ glRotatef(-90.0, 1.0, 0.0, 0.0);
+
+ for(i = 0; i < chunks; ++i) {
+ if(model[i][0] > EPSILON || model[i][1] > EPSILON) {
+ polys += tube (0, 0, 0,
+ 0, 0, model[i][1],
+ model[i][0], 0,
+ r, False, False, False);
+/* gluCylinder(quadric, model[i][0], model[i][1], model[i][2], r, 1);
+ polys += r;*/
+ }
+ glTranslatef(0.0, 0.0, model[i][2]);
+ }
+
+ glPopMatrix();
+ return polys;
+}
+#endif
+
+ENTRYPOINT void reshape_queens(ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+ glViewport(0,y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(45, 1/h, 2.0, 30.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+ENTRYPOINT void init_queens(ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ Queenscreen *qs;
+ int poly_counts[PIECES];
+ wire = MI_IS_WIREFRAME(mi);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ wire = 0;
+# endif
+
+ MI_INIT (mi, qss);
+
+ qs = &qss[screen];
+ qs->window = MI_WINDOW(mi);
+
+ if((qs->glx_context = init_GL(mi)))
+ reshape_queens(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ else
+ MI_CLEARWINDOW(mi);
+
+ qs->trackball = gltrackball_init (False);
+
+ qs->BOARDSIZE = 8; /* 8 cuz its classic */
+
+ chessmodels_gen_lists(-1, poly_counts);
+ qs->queen_list = QUEEN;
+ qs->queen_polys = poly_counts[QUEEN];
+
+ /* find a solution */
+ go(qs);
+}
+
+ENTRYPOINT void draw_queens(ModeInfo *mi)
+{
+ Queenscreen *qs = &qss[MI_SCREEN(mi)];
+ Window w = MI_WINDOW(mi);
+ Display *disp = MI_DISPLAY(mi);
+
+ if(!qs->glx_context)
+ return;
+
+ glXMakeCurrent(disp, w, *(qs->glx_context));
+
+ if(flat)
+ glShadeModel(GL_FLAT);
+
+ clearbits = GL_COLOR_BUFFER_BIT;
+
+ glColorMaterial(GL_FRONT, GL_DIFFUSE);
+ glEnable(GL_COLOR_MATERIAL);
+
+ if(!wire) {
+ setup_lights(qs);
+ glEnable(GL_DEPTH_TEST);
+ clearbits |= GL_DEPTH_BUFFER_BIT;
+ clearbits |= GL_STENCIL_BUFFER_BIT;
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ }
+ else
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+
+ mi->polygon_count = display(mi, qs);
+ mi->recursion_depth = qs->BOARDSIZE;
+
+ if(mi->fps_p) do_fps(mi);
+ glFinish();
+ glXSwapBuffers(disp, w);
+}
+
+XSCREENSAVER_MODULE ("Queens", queens)
+
+#endif
diff --git a/hacks/glx/queens.man b/hacks/glx/queens.man
new file mode 100644
index 0000000..47fc3f4
--- /dev/null
+++ b/hacks/glx/queens.man
@@ -0,0 +1,66 @@
+.TH XScreenSaver 1 "May 2002"
+.SH NAME
+queens \- n queens screensaver
+.SH SYNOPSIS
+.B queens
+[\-display \fIhost:display.screen\fP]
+[\-window]
+[\-root]
+[\-install]
+[\-visual \fIvisual\fP]
+[\-delay \fImicroseconds\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+The \fIqueens\fP program solves the n-queens problem (where, in this
+program, N is between 5 and 10 queens) using a straightforward
+backtracking algorithm. The problem is: how may one place N queens
+on an NxN chessboard such that no queen can attack a sister?
+.SH OPTIONS
+.I queens
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH BUGS
+It's not unknown for this and other OpenGL hacks to fail under hardware accelaration (UtahGLX) and take the X server with them. Texture images must be 16x16 or 32x32 or 64x64 etc.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-getimage (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Blair Tennessy. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Blair Tennessy <tennessb@unbc.ca>, 20-April-2002.
+
diff --git a/hacks/glx/quickhull.c b/hacks/glx/quickhull.c
new file mode 100644
index 0000000..4c46ca0
--- /dev/null
+++ b/hacks/glx/quickhull.c
@@ -0,0 +1,1368 @@
+/* quickhull, Copyright (c) 2016 Karim Naaji, karim.naaji@gmail.com
+ https://github.com/karimnaaji/3d-quickhull
+
+ LICENCE:
+ The MIT License (MIT)
+
+ Copyright (c) 2016 Karim Naaji, karim.naaji@gmail.com
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE
+
+ REFERENCES:
+ [1] http://box2d.org/files/GDC2014/DirkGregorius_ImplementingQuickHull.pdf
+ [2] http://www.cs.smith.edu/~orourke/books/compgeom.html
+ [3] http://www.flipcode.com/archives/The_Half-Edge_Data_Structure.shtml
+ [4] http://doc.cgal.org/latest/HalfedgeDS/index.html
+ [5] http://thomasdiewald.com/blog/?p=1888
+ [6] https://fgiesen.wordpress.com/2012/02/21/half-edge-based-mesh-representations-theory/
+
+ HOWTO:
+ #define QUICKHULL_DEBUG // Only if assertions need to be checked
+ #include "quickhull.h"
+
+ HISTORY:
+ - 25-Feb-2018: jwz: adapted for xscreensaver
+ - 1.0.1 (2016-11-01): Various improvements over epsilon issues and
+ degenerate faces
+ Debug functionalities to test final results dynamically
+ API to export hull meshes in OBJ files
+ - 1.0 (2016-09-10): Initial
+
+ TODO:
+ - use float* from public interface
+ - reduce memory usage
+*/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+extern const char *progname;
+
+#include "quickhull.h"
+
+#include "screenhackI.h" /* for jwxyz_abort */
+
+#include <math.h> /* sqrt & fabs */
+#include <stdio.h> /* FILE */
+#include <string.h> /* memcpy */
+
+/* Quickhull helpers, define your own if needed */
+#ifndef QUICKHULL_HELPERS
+#include <stdlib.h> /* malloc, free, realloc */
+#define QUICKHULL_HELPERS 1
+#define QH_MALLOC(T, N) ((T*) malloc(N * sizeof(T)))
+#define QH_REALLOC(T, P, N) ((T*)realloc(P, sizeof(T) * N))
+#define QH_FREE(T) free(T)
+#define QH_SWAP(T, A, B) { T tmp = B; B = A; A = tmp; }
+#ifdef QUICKHULL_DEBUG
+#define QH_ASSERT(STMT) if (!(STMT)) { *(int *)0 = 0; }
+#define QH_LOG(FMT, ...) printf(FMT, ## __VA_ARGS__)
+#else
+#define QH_ASSERT(STMT)
+#define QH_LOG(FMT, ...)
+#endif /* QUICKHULL_DEBUG */
+#endif /* QUICKHULL_HELPERS */
+
+#ifndef QH_FLT_MAX
+#define QH_FLT_MAX 1e+37F
+#endif
+
+#ifndef QH_FLT_EPS
+#define QH_FLT_EPS 1E-5F
+#endif
+
+#ifndef QH_VERTEX_SET_SIZE
+#define QH_VERTEX_SET_SIZE 128
+#endif
+
+typedef long qh_index_t;
+
+typedef struct qh_half_edge {
+ qh_index_t opposite_he; /* index of the opposite half edge */
+ qh_index_t next_he; /* index of the next half edge */
+ qh_index_t previous_he; /* index of the previous half edge */
+ qh_index_t he; /* index of the current half edge */
+ qh_index_t to_vertex; /* index of the next vertex */
+ qh_index_t adjacent_face; /* index of the ajacent face */
+} qh_half_edge_t;
+
+typedef struct qh_index_set {
+ qh_index_t* indices;
+ unsigned int size;
+ unsigned int capacity;
+} qh_index_set_t;
+
+typedef struct qh_face {
+ qh_index_set_t iset;
+ qh_vec3_t normal;
+ qh_vertex_t centroid;
+ qh_index_t edges[3];
+ qh_index_t face;
+ double sdist;
+ int visitededges;
+} qh_face_t;
+
+typedef struct qh_index_stack {
+ qh_index_t* begin;
+ unsigned int size;
+} qh_index_stack_t;
+
+typedef struct qh_context {
+ qh_face_t* faces;
+ qh_half_edge_t* edges;
+ qh_vertex_t* vertices;
+ qh_vertex_t centroid;
+ qh_index_stack_t facestack;
+ qh_index_stack_t scratch;
+ qh_index_stack_t horizonedges;
+ qh_index_stack_t newhorizonedges;
+ char* valid;
+ unsigned int nedges;
+ unsigned int nvertices;
+ unsigned int nfaces;
+
+ #ifdef QUICKHULL_DEBUG
+ unsigned int maxfaces;
+ unsigned int maxedges;
+ #endif
+} qh_context_t;
+
+static void
+qh__find_6eps(qh_vertex_t* vertices, unsigned int nvertices, qh_index_t* eps)
+{
+ qh_vertex_t* ptr = vertices;
+
+ double minxy = +QH_FLT_MAX;
+ double minxz = +QH_FLT_MAX;
+ double minyz = +QH_FLT_MAX;
+
+ double maxxy = -QH_FLT_MAX;
+ double maxxz = -QH_FLT_MAX;
+ double maxyz = -QH_FLT_MAX;
+
+ int i = 0;
+ for (i = 0; i < 6; ++i) {
+ eps[i] = 0;
+ }
+
+ for (i = 0; i < nvertices; ++i) {
+ if (ptr->z < minxy) {
+ eps[0] = i;
+ minxy = ptr->z;
+ }
+ if (ptr->y < minxz) {
+ eps[1] = i;
+ minxz = ptr->y;
+ }
+ if (ptr->x < minyz) {
+ eps[2] = i;
+ minyz = ptr->x;
+ }
+ if (ptr->z > maxxy) {
+ eps[3] = i;
+ maxxy = ptr->z;
+ }
+ if (ptr->y > maxxz) {
+ eps[4] = i;
+ maxxz = ptr->y;
+ }
+ if (ptr->x > maxyz) {
+ eps[5] = i;
+ maxyz = ptr->x;
+ }
+ ptr++;
+ }
+}
+
+static double
+qh__vertex_segment_length2(qh_vertex_t* p, qh_vertex_t* a, qh_vertex_t* b)
+{
+ double dx = b->x - a->x;
+ double dy = b->y - a->y;
+ double dz = b->z - a->z;
+
+ double d = dx * dx + dy * dy + dz * dz;
+
+ double x = a->x;
+ double y = a->y;
+ double z = a->z;
+
+ if (d != 0) {
+ double t = ((p->x - a->x) * dx +
+ (p->y - a->y) * dy +
+ (p->z - a->z) * dz) / d;
+
+ if (t > 1) {
+ x = b->x;
+ y = b->y;
+ z = b->z;
+ } else if (t > 0) {
+ x += dx * t;
+ y += dy * t;
+ z += dz * t;
+ }
+ }
+
+ dx = p->x - x;
+ dy = p->y - y;
+ dz = p->z - z;
+
+ return dx * dx + dy * dy + dz * dz;
+}
+
+static void
+qh__vec3_sub(qh_vec3_t* a, qh_vec3_t* b)
+{
+ a->x -= b->x;
+ a->y -= b->y;
+ a->z -= b->z;
+}
+
+static void
+qh__vec3_add(qh_vec3_t* a, qh_vec3_t* b)
+{
+ a->x += b->x;
+ a->y += b->y;
+ a->z += b->z;
+}
+
+static void
+qh__vec3_multiply(qh_vec3_t* a, double v)
+{
+ a->x *= v;
+ a->y *= v;
+ a->z *= v;
+}
+
+static int
+qh__vertex_equals_epsilon(qh_vertex_t* a, qh_vertex_t* b, double epsilon)
+{
+ return fabs(a->x - b->x) <= epsilon &&
+ fabs(a->y - b->y) <= epsilon &&
+ fabs(a->z - b->z) <= epsilon;
+}
+
+static double
+qh__vec3_length2(qh_vec3_t* v)
+{
+ return v->x * v->x + v->y * v->y + v->z * v->z;
+}
+
+static double
+qh__vec3_dot(qh_vec3_t* v1, qh_vec3_t* v2)
+{
+ return v1->x * v2->x + v1->y * v2->y + v1->z * v2->z;
+}
+
+static void
+qh__vec3_normalize(qh_vec3_t* v)
+{
+ qh__vec3_multiply(v, 1.f / sqrt(qh__vec3_length2(v)));
+}
+
+static void
+qh__find_2dps_6eps(qh_vertex_t* vertices, qh_index_t* eps,
+ int* ii, int* jj)
+{
+ int i, j;
+ double max = -QH_FLT_MAX;
+
+ for (i = 0; i < 6; ++i) {
+ for (j = 0; j < 6; ++j) {
+ qh_vertex_t d;
+ double d2;
+
+ if (i == j) {
+ continue;
+ }
+
+ d = vertices[eps[i]];
+ qh__vec3_sub(&d, &vertices[eps[j]]);
+ d2 = qh__vec3_length2(&d);
+
+ if (d2 > max) {
+ *ii = i;
+ *jj = j;
+ max = d2;
+ }
+ }
+ }
+}
+
+static qh_vec3_t
+qh__vec3_cross(qh_vec3_t* v1, qh_vec3_t* v2)
+{
+ qh_vec3_t cross;
+
+ cross.x = v1->y * v2->z - v1->z * v2->y;
+ cross.y = v1->z * v2->x - v1->x * v2->z;
+ cross.z = v1->x * v2->y - v1->y * v2->x;
+
+ return cross;
+}
+
+static qh_vertex_t
+qh__face_centroid(qh_index_t vertices[3], qh_context_t* context)
+{
+ qh_vertex_t centroid;
+ int i;
+
+ centroid.x = centroid.y = centroid.z = 0.0;
+ for (i = 0; i < 3; ++i) {
+ qh__vec3_add(&centroid, context->vertices + vertices[i]);
+ }
+
+ qh__vec3_multiply(&centroid, 1.0 / 3.0);
+
+ return centroid;
+}
+
+static double
+qh__dist_point_plane(qh_vertex_t* v, qh_vec3_t* normal, double sdist)
+{
+ return fabs(qh__vec3_dot(v, normal) - sdist);
+}
+
+static void
+qh__init_half_edge(qh_half_edge_t* half_edge) {
+ half_edge->adjacent_face = -1;
+ half_edge->he = -1;
+ half_edge->next_he = -1;
+ half_edge->opposite_he = -1;
+ half_edge->to_vertex = -1;
+ half_edge->previous_he = -1;
+}
+
+static qh_half_edge_t*
+qh__next_edge(qh_context_t* context)
+{
+ qh_half_edge_t* edge = context->edges + context->nedges;
+ qh__init_half_edge(edge);
+
+ edge->he = context->nedges;
+ context->nedges++;
+
+ QH_ASSERT(context->nedges < context->maxedges);
+
+ return edge;
+}
+
+static qh_face_t*
+qh__next_face(qh_context_t* context)
+{
+ qh_face_t* face = context->faces + context->nfaces;
+
+ face->face = context->nfaces;
+ face->iset.indices = NULL;
+ context->valid[context->nfaces] = 1;
+ context->nfaces++;
+
+ QH_ASSERT(context->nfaces < context->maxfaces);
+
+ return face;
+}
+
+static qh_vec3_t
+qh__edge_vec3(qh_half_edge_t* edge, qh_context_t* context)
+{
+ qh_half_edge_t prevhe = context->edges[edge->previous_he];
+ qh_vec3_t v0, v1;
+
+ v0 = context->vertices[prevhe.to_vertex];
+ v1 = context->vertices[edge->to_vertex];
+
+ qh__vec3_sub(&v1, &v0);
+ qh__vec3_normalize(&v1);
+
+ return v1;
+}
+
+static void
+qh__face_init(qh_face_t* face, qh_index_t vertices[3],
+ qh_context_t* context)
+{
+ qh_half_edge_t* e0 = qh__next_edge(context);
+ qh_half_edge_t* e1 = qh__next_edge(context);
+ qh_half_edge_t* e2 = qh__next_edge(context);
+ qh_vec3_t v0, v1;
+ qh_vertex_t centroid, normal;
+
+ e2->to_vertex = vertices[0];
+ e0->to_vertex = vertices[1];
+ e1->to_vertex = vertices[2];
+
+ e0->next_he = e1->he;
+ e2->previous_he = e1->he;
+ face->edges[1] = e1->he;
+
+ e1->next_he = e2->he;
+ e0->previous_he = e2->he;
+ face->edges[2] = e2->he;
+ v1 = qh__edge_vec3(e2, context);
+
+ e2->next_he = e0->he;
+ e1->previous_he = e0->he;
+ face->edges[0] = e0->he;
+ v0 = qh__edge_vec3(e0, context);
+
+ e2->adjacent_face = face->face;
+ e1->adjacent_face = face->face;
+ e0->adjacent_face = face->face;
+
+ qh__vec3_multiply(&v1, -1.f);
+ normal = qh__vec3_cross(&v0, &v1);
+
+ qh__vec3_normalize(&normal);
+ centroid = qh__face_centroid(vertices, context);
+ face->centroid = centroid;
+ face->sdist = qh__vec3_dot(&normal, &centroid);
+ face->normal = normal;
+ face->iset.indices = QH_MALLOC(qh_index_t, QH_VERTEX_SET_SIZE);
+ face->iset.capacity = QH_VERTEX_SET_SIZE;
+ face->iset.size = 0;
+ face->visitededges = 0;
+}
+
+static void
+qh__tetrahedron_basis(qh_context_t* context, qh_index_t vertices[3])
+{
+ qh_index_t eps[6];
+ int i, j = 0, k = 0, l = 0;
+ double max = -QH_FLT_MAX;
+
+ qh__find_6eps(context->vertices, context->nvertices, eps);
+ qh__find_2dps_6eps(context->vertices, eps, &j, &k);
+
+ for (i = 0; i < 6; ++i) {
+ double d2;
+
+ if (i == j || i == k) {
+ continue;
+ }
+
+ d2 = qh__vertex_segment_length2(context->vertices + eps[i],
+ context->vertices + eps[j],
+ context->vertices + eps[k]);
+
+ if (d2 > max) {
+ max = d2;
+ l = i;
+ }
+ }
+
+ vertices[0] = eps[j];
+ vertices[1] = eps[k];
+ vertices[2] = eps[l];
+}
+
+static void
+qh__push_stack(qh_index_stack_t* stack, qh_index_t index)
+{
+ stack->begin[stack->size] = index;
+ stack->size++;
+}
+
+static qh_index_t
+qh__pop_stack(qh_index_stack_t* stack)
+{
+ qh_index_t top = -1;
+
+ if (stack->size > 0) {
+ top = stack->begin[stack->size - 1];
+ stack->size--;
+ }
+
+ return top;
+}
+
+static qh_index_t
+qh__furthest_point_from_plane(qh_context_t* context,
+ qh_index_t* indices,
+ int nindices,
+ qh_vec3_t* normal,
+ double sdist)
+{
+ int i, j = -1;
+ double max = -QH_FLT_MAX;
+
+ for (i = 0; i < nindices; ++i) {
+ qh_index_t index = indices ? *(indices + i) : i;
+ double dist = qh__dist_point_plane(context->vertices + index,
+ normal, sdist);
+
+ if (dist > max) {
+ j = i;
+ max = dist;
+ }
+ }
+
+ return j;
+}
+
+static int
+qh__face_can_see_vertex(qh_face_t* face, qh_vertex_t* v)
+{
+ qh_vec3_t tov = *v;
+
+ qh__vec3_sub(&tov, &face->centroid);
+ return qh__vec3_dot(&tov, &face->normal) > 0;
+}
+
+static int
+qh__face_can_see_vertex_epsilon(qh_context_t* context, qh_face_t* face,
+ qh_vertex_t* v, double epsilon)
+{
+ double dot;
+ qh_vec3_t tov = *v;
+
+ qh__vec3_sub(&tov, &face->centroid);
+ dot = qh__vec3_dot(&tov, &face->normal);
+
+ if (dot > epsilon) {
+ return 1;
+ } else {
+ dot = fabs(dot);
+
+ if (dot <= epsilon && dot >= 0) {
+ qh_vec3_t n = face->normal;
+
+ /* allow epsilon degeneration along the face normal */
+ qh__vec3_multiply(&n, epsilon);
+ qh__vec3_add(v, &n);
+
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+static inline void
+qh__assert_half_edge(qh_half_edge_t* edge, qh_context_t* context)
+{
+ QH_ASSERT(edge->opposite_he != -1);
+ QH_ASSERT(edge->he != -1);
+ QH_ASSERT(edge->adjacent_face != -1);
+ QH_ASSERT(edge->next_he != -1);
+ QH_ASSERT(edge->previous_he != -1);
+ QH_ASSERT(edge->to_vertex != -1);
+ QH_ASSERT(context->edges[edge->opposite_he].to_vertex != edge->to_vertex);
+}
+
+static inline void
+qh__assert_face(qh_face_t* face, qh_context_t* context)
+{
+ int i;
+
+ for (i = 0; i < 3; ++i) {
+ qh__assert_half_edge(context->edges + face->edges[i], context);
+ }
+
+ QH_ASSERT(context->valid[face->face]);
+}
+
+#ifdef QUICKHULL_DEBUG
+
+void
+qh__log_face(qh_context_t* context, qh_face_t const* face) {
+ QH_LOG("Face %ld:\n", face->face);
+ for (int i = 0; i < 3; ++i) {
+ qh_half_edge_t edge = context->edges[face->edges[i]];
+ QH_LOG("\te%d %ld\n", i, edge.he);
+ QH_LOG("\t\te%d.opposite_he %ld\n", i, edge.opposite_he);
+ QH_LOG("\t\te%d.next_he %ld\n", i, edge.next_he);
+ QH_LOG("\t\te%d.previous_he %ld\n", i, edge.previous_he);
+ QH_LOG("\t\te%d.to_vertex %ld\n", i, edge.to_vertex);
+ QH_LOG("\t\te%d.adjacent_face %ld\n", i, edge.adjacent_face);
+ }
+ QH_LOG("\tnormal %f %f %f\n", face->normal.x, face->normal.y,
+ face->normal.z);
+ QH_LOG("\tsdist %f\n", face->sdist);
+ QH_LOG("\tcentroid %f %f %f\n", face->centroid.x, face->centroid.y,
+ face->centroid.z);
+}
+
+static int
+qh__test_hull(qh_context_t* context, double epsilon, int testiset)
+{
+ unsigned int i, j, k;
+
+ for (i = 0; i < context->nvertices; ++i) {
+ qh_index_t vindex = i;
+ char valid = 1;
+
+ for (j = 0; j < context->nfaces; ++j) {
+ if (!context->valid[j]) {
+ continue;
+ }
+ qh_face_t* face = context->faces + j;
+
+ qh_half_edge_t* e0 = context->edges + face->edges[0];
+ qh_half_edge_t* e1 = context->edges + face->edges[1];
+ qh_half_edge_t* e2 = context->edges + face->edges[2];
+
+ if (e0->to_vertex == vindex ||
+ e1->to_vertex == vindex ||
+ e2->to_vertex == vindex) {
+ valid = 0;
+ break;
+ }
+
+ if (testiset) {
+ for (k = 0; k < face->iset.size; ++k) {
+ if (vindex == face->iset.indices[k]) {
+ valid = 0;
+ }
+ }
+ }
+ }
+
+ if (!valid) {
+ continue;
+ }
+
+ for (j = 0; j < context->nfaces; ++j) {
+ if (!context->valid[j]) {
+ continue;
+ }
+ qh_face_t* face = context->faces + j;
+
+ qh_vertex_t vertex = context->vertices[vindex];
+ qh__vec3_sub(&vertex, &face->centroid);
+ if (qh__vec3_dot(&face->normal, &vertex) > epsilon) {
+ #ifdef QUICKHULL_DEBUG
+ qh__log_face(context, face);
+ #endif
+ return 0;
+ }
+ }
+ }
+
+ return 1;
+}
+#endif /* QUICKHULL_DEBUG */
+
+
+static void
+#ifdef QUICKHULL_DEBUG
+qh__build_hull(qh_context_t* context, double epsilon, unsigned int step,
+ unsigned int* failurestep)
+#else
+qh__build_hull(qh_context_t* context, double epsilon)
+#endif
+{
+ qh_index_t topface = qh__pop_stack(&context->facestack);
+ int i, j, k;
+
+ #ifdef QUICKHULL_DEBUG
+ unsigned int iteration = 0;
+ #endif
+
+ while (topface != -1) {
+ qh_face_t* face = context->faces + topface;
+ qh_index_t fvi, apex;
+ qh_vertex_t* fv;
+ int reversed = 0;
+
+ #ifdef QUICKHULL_DEBUG
+ if (!context->valid[topface] || face->iset.size == 0 || iteration == step)
+ #else
+ if (!context->valid[topface] || face->iset.size == 0)
+ #endif
+ {
+ topface = qh__pop_stack(&context->facestack);
+ continue;
+ }
+
+ #ifdef QUICKHULL_DEBUG
+ if (failurestep != NULL && !qh__test_hull(context, epsilon, 1)) {
+ if (*failurestep == 0) {
+ *failurestep = iteration;
+ break;
+ }
+ }
+
+ iteration++;
+ #endif
+
+ fvi = qh__furthest_point_from_plane(context, face->iset.indices,
+ face->iset.size, &face->normal, face->sdist);
+ fv = context->vertices + *(face->iset.indices + fvi);
+
+ qh__assert_face(face, context);
+
+ /* Reset visited flag for faces */
+ {
+ for (i = 0; i < context->nfaces; ++i) {
+ context->faces[i].visitededges = 0;
+ }
+ }
+
+ /* Find horizon edge */
+ {
+ qh_index_t tovisit = topface;
+ qh_face_t* facetovisit = context->faces + tovisit;
+
+ /* Release scratch */
+ context->scratch.size = 0;
+
+ while (tovisit != -1) {
+ if (facetovisit->visitededges >= 3) {
+ context->valid[tovisit] = 0;
+ tovisit = qh__pop_stack(&context->scratch);
+ facetovisit = context->faces + tovisit;
+ } else {
+ qh_index_t edgeindex = facetovisit->edges[facetovisit->visitededges];
+ qh_half_edge_t* edge;
+ qh_half_edge_t* oppedge;
+ qh_face_t* adjface;
+
+ facetovisit->visitededges++;
+
+ edge = context->edges + edgeindex;
+ oppedge = context->edges + edge->opposite_he;
+ adjface = context->faces + oppedge->adjacent_face;
+
+ if (!context->valid[oppedge->adjacent_face]) { continue; }
+
+ qh__assert_half_edge(oppedge, context);
+ qh__assert_half_edge(edge, context);
+ qh__assert_face(adjface, context);
+
+ if (!qh__face_can_see_vertex(adjface, fv)) {
+ qh__push_stack(&context->horizonedges, edge->he);
+ } else {
+ context->valid[tovisit] = 0;
+ qh__push_stack(&context->scratch, adjface->face);
+ }
+ }
+ }
+ }
+
+ apex = face->iset.indices[fvi];
+
+ /* Sort horizon edges in CCW order */
+ {
+ qh_vertex_t triangle[3];
+ int vindex = 0;
+ qh_vec3_t v0, v1, toapex;
+ qh_vertex_t n;
+
+ for (i = 0; i < context->horizonedges.size; ++i) {
+ qh_index_t he0 = context->horizonedges.begin[i];
+ qh_index_t he0vert = context->edges[he0].to_vertex;
+ qh_index_t phe0 = context->edges[he0].previous_he;
+ qh_index_t phe0vert = context->edges[phe0].to_vertex;
+
+ for (j = i + 2; j < context->horizonedges.size; ++j) {
+ qh_index_t he1 = context->horizonedges.begin[j];
+ qh_index_t he1vert = context->edges[he1].to_vertex;
+ qh_index_t phe1 = context->edges[he1].previous_he;
+ qh_index_t phe1vert = context->edges[phe1].to_vertex;
+
+ if (phe1vert == he0vert || phe0vert == he1vert) {
+ QH_SWAP(qh_index_t, context->horizonedges.begin[j],
+ context->horizonedges.begin[i + 1]);
+ break;
+ }
+ }
+
+ if (vindex < 3) {
+ triangle[vindex++] =
+ context->vertices[context->edges[he0].to_vertex];
+ }
+ }
+
+ if (vindex == 3) {
+ /* Detect first triangle face ordering */
+ v0 = triangle[0];
+ v1 = triangle[2];
+
+ qh__vec3_sub(&v0, &triangle[1]);
+ qh__vec3_sub(&v1, &triangle[1]);
+
+ n = qh__vec3_cross(&v0, &v1);
+
+ /* Get the vector to the apex */
+ toapex = triangle[0];
+
+ qh__vec3_sub(&toapex, context->vertices + apex);
+
+ reversed = qh__vec3_dot(&n, &toapex) < 0.f;
+ }
+ }
+
+ /* Create new faces */
+ {
+ qh_index_t top = qh__pop_stack(&context->horizonedges);
+ qh_index_t last = qh__pop_stack(&context->horizonedges);
+ qh_index_t first = top;
+ int looped = 0;
+
+ QH_ASSERT(context->newhorizonedges.size == 0);
+
+ /* Release scratch */
+ context->scratch.size = 0;
+
+ while (!looped) {
+ qh_half_edge_t* prevhe;
+ qh_half_edge_t* nexthe;
+ qh_half_edge_t* oppedge;
+ /* qh_vec3_t normal; */
+ /* qh_vertex_t fcentroid; */
+ qh_index_t verts[3];
+ qh_face_t* newface;
+
+ if (last == -1) {
+ looped = 1;
+ last = first;
+ }
+
+ prevhe = context->edges + last;
+ nexthe = context->edges + top;
+
+ if (reversed) {
+ QH_SWAP(qh_half_edge_t*, prevhe, nexthe);
+ }
+
+ verts[0] = prevhe->to_vertex;
+ verts[1] = nexthe->to_vertex;
+ verts[2] = apex;
+
+ context->valid[nexthe->adjacent_face] = 0;
+
+ oppedge = context->edges + nexthe->opposite_he;
+ newface = qh__next_face(context);
+
+ qh__face_init(newface, verts, context);
+
+ oppedge->opposite_he = context->edges[newface->edges[0]].he;
+ context->edges[newface->edges[0]].opposite_he = oppedge->he;
+
+ qh__push_stack(&context->scratch, newface->face);
+ qh__push_stack(&context->newhorizonedges, newface->edges[0]);
+
+ top = last;
+ last = qh__pop_stack(&context->horizonedges);
+ }
+ }
+
+ /* Attach point sets to newly created faces */
+ {
+ for (k = 0; k < context->nfaces; ++k) {
+ qh_face_t* f = context->faces + k;
+
+ if (context->valid[k] || f->iset.size == 0) {
+ continue;
+ }
+
+ if (f->visitededges == 3) {
+ context->valid[k] = 0;
+ }
+
+ for (i = 0; i < f->iset.size; ++i) {
+ qh_index_t vertex = f->iset.indices[i];
+ /* qh_vertex_t* v = context->vertices + vertex; */
+ qh_face_t* dface = NULL;
+
+ for (j = 0; j < context->scratch.size; ++j) {
+ qh_face_t* newface = context->faces + context->scratch.begin[j];
+ qh_half_edge_t* e0 = context->edges + newface->edges[0];
+ qh_half_edge_t* e1 = context->edges + newface->edges[1];
+ qh_half_edge_t* e2 = context->edges + newface->edges[2];
+ /* qh_vertex_t cv; */
+
+ if (e0->to_vertex == vertex ||
+ e1->to_vertex == vertex ||
+ e2->to_vertex == vertex) {
+ continue;
+ }
+
+ if (qh__face_can_see_vertex_epsilon(context, newface,
+ context->vertices + vertex,
+ epsilon)) {
+ dface = newface;
+ break;
+ }
+ }
+
+ if (dface) {
+ if (dface->iset.size + 1 >= dface->iset.capacity) {
+ dface->iset.capacity *= 2;
+ dface->iset.indices = QH_REALLOC(qh_index_t,
+ dface->iset.indices, dface->iset.capacity);
+ }
+
+ dface->iset.indices[dface->iset.size++] = vertex;
+ }
+ }
+
+ f->iset.size = 0;
+ }
+ }
+
+ /* Link new faces together */
+ {
+ for (i = 0; i < context->newhorizonedges.size; ++i) {
+ qh_index_t phe0, nhe1;
+ qh_half_edge_t* he0;
+ qh_half_edge_t* he1;
+ int ii;
+
+ if (reversed) {
+ ii = (i == 0) ? context->newhorizonedges.size - 1 : (i-1);
+ } else {
+ ii = (i+1) % context->newhorizonedges.size;
+ }
+
+ phe0 = context->edges[context->newhorizonedges.begin[i]].previous_he;
+ nhe1 = context->edges[context->newhorizonedges.begin[ii]].next_he;
+
+ he0 = context->edges + phe0;
+ he1 = context->edges + nhe1;
+
+ QH_ASSERT(he1->to_vertex == apex);
+ QH_ASSERT(he0->opposite_he == -1);
+ QH_ASSERT(he1->opposite_he == -1);
+
+ he0->opposite_he = he1->he;
+ he1->opposite_he = he0->he;
+ }
+
+ context->newhorizonedges.size = 0;
+ }
+
+ /* Push new face to stack */
+ {
+ for (i = 0; i < context->scratch.size; ++i) {
+ qh_face_t* face = context->faces + context->scratch.begin[i];
+
+ if (face->iset.size > 0) {
+ qh__push_stack(&context->facestack, face->face);
+ }
+ }
+
+ /* Release scratch */
+ context->scratch.size = 0;
+ }
+
+ topface = qh__pop_stack(&context->facestack);
+
+ /* TODO: push all non-valid faces for reuse in face stack memory pool */
+ }
+}
+
+#ifdef QUICKHULL_FILES
+void
+qh_mesh_export(qh_mesh_t const* mesh, char const* filename)
+{
+ FILE* objfile = fopen(filename, "wt");
+ fprintf(objfile, "o\n");
+
+ for (int i = 0; i < mesh->nvertices; ++i) {
+ qh_vertex_t v = mesh->vertices[i];
+ fprintf(objfile, "v %f %f %f\n", v.x, v.y, v.z);
+ }
+
+ for (int i = 0; i < mesh->nnormals; ++i) {
+ qh_vec3_t n = mesh->normals[i];
+ fprintf(objfile, "vn %f %f %f\n", n.x, n.y, n.z);
+ }
+
+ for (int i = 0, j = 0; i < mesh->nindices; i += 3, j++) {
+ fprintf(objfile, "f %u/%u %u/%u %u/%u\n",
+ mesh->indices[i+0] + 1, mesh->normalindices[j] + 1,
+ mesh->indices[i+1] + 1, mesh->normalindices[j] + 1,
+ mesh->indices[i+2] + 1, mesh->normalindices[j] + 1);
+ }
+
+ fclose(objfile);
+}
+#endif /* QUICKHULL_FILES */
+
+static qh_face_t*
+qh__build_tetrahedron(qh_context_t* context, double epsilon)
+{
+ int i, j;
+ qh_index_t vertices[3];
+ qh_index_t apex;
+ qh_face_t* faces;
+ qh_vertex_t normal, centroid, vapex, tcentroid;
+
+ /* Get the initial tetrahedron basis (first face) */
+ qh__tetrahedron_basis(context, &vertices[0]);
+
+ /* Find apex from the tetrahedron basis */
+ {
+ double sdist;
+ qh_vec3_t v0, v1;
+
+ v0 = context->vertices[vertices[1]];
+ v1 = context->vertices[vertices[2]];
+
+ qh__vec3_sub(&v0, context->vertices + vertices[0]);
+ qh__vec3_sub(&v1, context->vertices + vertices[0]);
+
+ normal = qh__vec3_cross(&v0, &v1);
+ qh__vec3_normalize(&normal);
+
+ centroid = qh__face_centroid(vertices, context);
+ sdist = qh__vec3_dot(&normal, &centroid);
+
+ apex = qh__furthest_point_from_plane(context, NULL,
+ context->nvertices, &normal, sdist);
+ vapex = context->vertices[apex];
+
+ qh__vec3_sub(&vapex, &centroid);
+
+ /* Whether the face is looking towards the apex */
+ if (qh__vec3_dot(&vapex, &normal) > 0) {
+ QH_SWAP(qh_index_t, vertices[1], vertices[2]);
+ }
+ }
+
+ faces = qh__next_face(context);
+ qh__face_init(&faces[0], vertices, context);
+
+ /* Build faces from the tetrahedron basis to the apex */
+ {
+ qh_index_t facevertices[3];
+ for (i = 0; i < 3; ++i) {
+ qh_half_edge_t* edge = context->edges + faces[0].edges[i];
+ qh_half_edge_t prevedge = context->edges[edge->previous_he];
+ qh_face_t* face = faces+i+1;
+ qh_half_edge_t* e0;
+
+ facevertices[0] = edge->to_vertex;
+ facevertices[1] = prevedge.to_vertex;
+ facevertices[2] = apex;
+
+ qh__next_face(context);
+ qh__face_init(face, facevertices, context);
+
+ e0 = context->edges + faces[i+1].edges[0];
+ edge->opposite_he = e0->he;
+ e0->opposite_he = edge->he;
+ }
+ }
+
+ /* Attach half edges to faces tied to the apex */
+ {
+ for (i = 0; i < 3; ++i) {
+ qh_face_t* face;
+ qh_face_t* nextface;
+ qh_half_edge_t* e1;
+ qh_half_edge_t* e2;
+
+ j = (i+2) % 3;
+
+ face = faces+i+1;
+ nextface = faces+j+1;
+
+ e1 = context->edges + face->edges[1];
+ e2 = context->edges + nextface->edges[2];
+
+ QH_ASSERT(e1->opposite_he == -1);
+ QH_ASSERT(e2->opposite_he == -1);
+
+ e1->opposite_he = e2->he;
+ e2->opposite_he = e1->he;
+
+ qh__assert_half_edge(e1, context);
+ qh__assert_half_edge(e2, context);
+ }
+ }
+
+ /* Create initial point set; every point is */
+ /* attached to the first face it can see */
+ {
+ for (i = 0; i < context->nvertices; ++i) {
+ /* qh_vertex_t* v; */
+ qh_face_t* dface = NULL;
+
+ if (vertices[0] == i || vertices[1] == i || vertices[2] == i) {
+ continue;
+ }
+
+ for (j = 0; j < 4; ++j) {
+ if (qh__face_can_see_vertex_epsilon(context, context->faces + j,
+ context->vertices + i, epsilon)) {
+ dface = context->faces + j;
+ break;
+ }
+ }
+
+ if (dface) {
+ int valid = 1;
+ int j;
+
+ for (j = 0; j < 3; ++j) {
+ qh_half_edge_t* e = context->edges + dface->edges[j];
+ if (i == e->to_vertex) {
+ valid = 0;
+ break;
+ }
+ }
+
+ if (!valid) { continue; }
+
+ if (dface->iset.size + 1 >= dface->iset.capacity) {
+ dface->iset.capacity *= 2;
+ dface->iset.indices = QH_REALLOC(qh_index_t,
+ dface->iset.indices, dface->iset.capacity);
+ }
+
+ dface->iset.indices[dface->iset.size++] = i;
+ }
+ }
+ }
+
+ /* Add initial tetrahedron faces to the face stack */
+ tcentroid.x = tcentroid.y = tcentroid.z = 0.0;
+ for (i = 0; i < 4; ++i) {
+ context->valid[i] = 1;
+ qh__assert_face(context->faces + i, context);
+ qh__push_stack(&context->facestack, i);
+ qh__vec3_add(&tcentroid, &context->faces[i].centroid);
+ }
+
+ /* Assign the tetrahedron centroid */
+ qh__vec3_multiply(&tcentroid, 0.25);
+ context->centroid = tcentroid;
+
+ QH_ASSERT(context->nedges == context->nfaces * 3);
+ QH_ASSERT(context->nfaces == 4);
+ QH_ASSERT(context->facestack.size == 4);
+
+ return faces;
+}
+
+static void
+qh__remove_vertex_duplicates(qh_context_t* context, double epsilon)
+{
+ int i, j, k;
+ for (i = 0; i < context->nvertices; ++i) {
+ qh_vertex_t* v = context->vertices + i;
+ if (v->x == 0) v->x = 0;
+ if (v->y == 0) v->y = 0;
+ if (v->z == 0) v->z = 0;
+ for (j = i + 1; j < context->nvertices; ++j) {
+ if (qh__vertex_equals_epsilon(context->vertices + i,
+ context->vertices + j, epsilon))
+ {
+ for (k = j; k < context->nvertices - 1; ++k) {
+ context->vertices[k] = context->vertices[k+1];
+ }
+ context->nvertices--;
+ }
+ }
+ }
+}
+
+static void
+qh__init_context(qh_context_t* context, qh_vertex_t const* vertices,
+ unsigned int nvertices)
+{
+ /* TODO: */
+ /* size_t nedges = 3 * nvertices - 6; */
+ /* size_t nfaces = 2 * nvertices - 4; */
+ unsigned int nfaces = nvertices * (nvertices - 1);
+ unsigned int nedges = nfaces * 3;
+
+ context->edges = QH_MALLOC(qh_half_edge_t, nedges);
+ context->faces = QH_MALLOC(qh_face_t, nfaces);
+ context->facestack.begin = QH_MALLOC(qh_index_t, nfaces);
+ context->scratch.begin = QH_MALLOC(qh_index_t, nfaces);
+ context->horizonedges.begin = QH_MALLOC(qh_index_t, nedges);
+ context->newhorizonedges.begin = QH_MALLOC(qh_index_t, nedges);
+ context->valid = QH_MALLOC(char, nfaces);
+
+ if (!(context->edges &&
+ context->faces &&
+ context->facestack.begin &&
+ context->scratch.begin &&
+ context->horizonedges.begin &&
+ context->newhorizonedges.begin &&
+ context->valid)) {
+# ifdef HAVE_JWXYZ
+ jwxyz_abort ("%s: out of memory", progname);
+# else
+ fprintf (stderr, "%s: out of memory\n", progname);
+ exit (1);
+# endif
+ }
+
+
+ context->vertices = QH_MALLOC(qh_vertex_t, nvertices);
+ memcpy(context->vertices, vertices, sizeof(qh_vertex_t) * nvertices);
+
+ context->nvertices = nvertices;
+ context->nedges = 0;
+ context->nfaces = 0;
+ context->facestack.size = 0;
+ context->scratch.size = 0;
+ context->horizonedges.size = 0;
+ context->newhorizonedges.size = 0;
+
+ #ifdef QUICKHULL_DEBUG
+ context->maxfaces = nfaces;
+ context->maxedges = nedges;
+ #endif
+}
+
+static void
+qh__free_context(qh_context_t* context)
+{
+ int i;
+
+ for (i = 0; i < context->nfaces; ++i) {
+ QH_FREE(context->faces[i].iset.indices);
+ context->faces[i].iset.size = 0;
+ }
+
+ context->nvertices = 0;
+ context->nfaces = 0;
+
+ QH_FREE(context->edges);
+
+ QH_FREE(context->faces);
+ QH_FREE(context->facestack.begin);
+ QH_FREE(context->scratch.begin);
+ QH_FREE(context->horizonedges.begin);
+ QH_FREE(context->newhorizonedges.begin);
+ QH_FREE(context->vertices);
+ QH_FREE(context->valid);
+}
+
+void
+qh_free_mesh(qh_mesh_t mesh)
+{
+ QH_FREE(mesh.vertices);
+ QH_FREE(mesh.indices);
+ QH_FREE(mesh.normalindices);
+ QH_FREE(mesh.normals);
+}
+
+static double
+qh__compute_epsilon(qh_vertex_t const* vertices, unsigned int nvertices)
+{
+ double epsilon;
+ unsigned int i;
+
+ double maxxi = -QH_FLT_MAX;
+ double maxyi = -QH_FLT_MAX;
+
+ for (i = 0; i < nvertices; ++i) {
+ double fxi = fabs(vertices[i].x);
+ double fyi = fabs(vertices[i].y);
+
+ if (fxi > maxxi) {
+ maxxi = fxi;
+ }
+ if (fyi > maxyi) {
+ maxyi = fyi;
+ }
+ }
+
+ epsilon = 2 * (maxxi + maxyi) * QH_FLT_EPS;
+
+ return epsilon;
+}
+
+qh_mesh_t
+qh_quickhull3d(qh_vertex_t const* vertices, unsigned int nvertices)
+{
+ qh_mesh_t m;
+ qh_context_t context;
+ /* unsigned int* indices; */
+ unsigned int nfaces = 0, i, index, nindices;
+ double epsilon;
+
+ epsilon = qh__compute_epsilon(vertices, nvertices);
+
+ qh__init_context(&context, vertices, nvertices);
+
+ qh__remove_vertex_duplicates(&context, epsilon);
+
+ /* Build the initial tetrahedron */
+ qh__build_tetrahedron(&context, epsilon);
+
+ /* Build the convex hull */
+ #ifdef QUICKHULL_DEBUG
+ qh__build_hull(&context, epsilon, -1, NULL);
+ #else
+ qh__build_hull(&context, epsilon);
+ #endif
+
+ /* QH_ASSERT(qh__test_hull(&context, epsilon)); */
+
+ for (i = 0; i < context.nfaces; ++i) {
+ if (context.valid[i]) { nfaces++; }
+ }
+
+ nindices = nfaces * 3;
+
+ m.normals = QH_MALLOC(qh_vertex_t, nfaces);
+ m.normalindices = QH_MALLOC(unsigned int, nfaces);
+ m.vertices = QH_MALLOC(qh_vertex_t, nindices);
+ m.indices = QH_MALLOC(unsigned int, nindices);
+ m.nindices = nindices;
+ m.nnormals = nfaces;
+ m.nvertices = 0;
+
+ {
+ index = 0;
+ for (i = 0; i < context.nfaces; ++i) {
+ if (!context.valid[i]) { continue; }
+ m.normals[index] = context.faces[i].normal;
+ index++;
+ }
+
+ index = 0;
+ for (i = 0; i < context.nfaces; ++i) {
+ if (!context.valid[i]) { continue; }
+ m.normalindices[index] = index;
+ index++;
+ }
+
+ index = 0;
+ for (i = 0; i < context.nfaces; ++i) {
+ if (!context.valid[i]) { continue; }
+ m.indices[index+0] = index+0;
+ m.indices[index+1] = index+1;
+ m.indices[index+2] = index+2;
+ index += 3;
+ }
+
+ for (i = 0; i < context.nfaces; ++i) {
+ if (!context.valid[i]) { continue; }
+ qh_half_edge_t e0 = context.edges[context.faces[i].edges[0]];
+ qh_half_edge_t e1 = context.edges[context.faces[i].edges[1]];
+ qh_half_edge_t e2 = context.edges[context.faces[i].edges[2]];
+
+ m.vertices[m.nvertices++] = context.vertices[e0.to_vertex];
+ m.vertices[m.nvertices++] = context.vertices[e1.to_vertex];
+ m.vertices[m.nvertices++] = context.vertices[e2.to_vertex];
+ }
+ }
+
+ qh__free_context(&context);
+
+ return m;
+}
diff --git a/hacks/glx/quickhull.h b/hacks/glx/quickhull.h
new file mode 100644
index 0000000..0dd0faa
--- /dev/null
+++ b/hacks/glx/quickhull.h
@@ -0,0 +1,56 @@
+/* quickhull, Copyright (c) 2016 Karim Naaji, karim.naaji@gmail.com
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE
+*/
+
+#ifndef __QUICKHULL_H__
+#define __QUICKHULL_H__
+
+typedef struct qh_vertex {
+ union {
+ double v[3];
+ struct {
+ double x;
+ double y;
+ double z;
+ };
+ };
+} qh_vertex_t;
+
+typedef qh_vertex_t qh_vec3_t;
+
+typedef struct qh_mesh {
+ qh_vertex_t* vertices;
+ qh_vec3_t* normals;
+ unsigned int* indices;
+ unsigned int* normalindices;
+ unsigned int nindices;
+ unsigned int nvertices;
+ unsigned int nnormals;
+} qh_mesh_t;
+
+extern qh_mesh_t qh_quickhull3d(qh_vertex_t const* vertices,
+ unsigned int nvertices);
+
+extern void qh_free_mesh(qh_mesh_t mesh);
+
+#ifdef QUICKHULL_FILES
+extern void qh_mesh_export(qh_mesh_t const* mesh, char const* filename);
+#endif
+
+#endif /* __QUICKHULL_H__ */
diff --git a/hacks/glx/raverhoop.c b/hacks/glx/raverhoop.c
new file mode 100644
index 0000000..5cf35f7
--- /dev/null
+++ b/hacks/glx/raverhoop.c
@@ -0,0 +1,767 @@
+/* raverhoop, Copyright (c) 2016 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Simulates an LED hula hoop in a dark room. Oontz oontz oontz.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*ncolors: 12 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_hoop 0
+# define release_hoop 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "False"
+#define DEF_WANDER "False"
+#define DEF_LIGHTS "200"
+#define DEF_SPEED "1.0"
+#define DEF_LIGHT_SPEED "1.0"
+#define DEF_SUSTAIN "1.0"
+
+typedef struct {
+ GLfloat x,y,z;
+} XYZ;
+
+typedef struct afterimage afterimage;
+struct afterimage {
+ GLfloat color[4];
+ XYZ position;
+ afterimage *next;
+};
+
+typedef struct {
+ GLfloat color[4];
+ int duty_cycle[10]; /* off, on, off, on... values add to 100 */
+ GLfloat ratio;
+ Bool on;
+} light;
+
+
+typedef struct oscillator oscillator;
+struct oscillator {
+ GLfloat ratio, from, to, speed, *var;
+ int remaining;
+ oscillator *next;
+};
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int nlights;
+ light *lights;
+ GLfloat radius;
+ GLfloat axial_radius;
+ XYZ midpoint;
+ GLfloat tilt;
+ GLfloat spin;
+ GLfloat th;
+ GLfloat speed;
+ afterimage *trail;
+ oscillator *oscillators;
+
+} hoop_configuration;
+
+static hoop_configuration *bps = NULL;
+
+static Bool do_spin;
+static Bool do_wander;
+static int nlights;
+static GLfloat speed, light_speed, sustain;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-lights", ".lights", XrmoptionSepArg, 0 },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-light-speed", ".lightSpeed", XrmoptionSepArg, 0 },
+ { "-sustain", ".sustain", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&nlights, "lights", "Lights", DEF_LIGHTS, t_Int},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&light_speed, "lightSpeed", "Speed", DEF_LIGHT_SPEED, t_Float},
+ {&sustain, "sustain", "Sustain", DEF_SUSTAIN, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt hoop_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static void
+decay_afterimages (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ afterimage *prev = 0;
+ afterimage *a = bp->trail;
+ GLfloat tick = 0.05 / sustain;
+
+ while (a)
+ {
+ afterimage *next = a->next;
+ a->color[3] -= tick;
+ if (a->color[3] < 0)
+ {
+ if (prev)
+ prev->next = next;
+ else
+ bp->trail = next;
+ free (a);
+ }
+ else
+ prev = a;
+ a = next;
+ }
+}
+
+static void
+add_afterimage (ModeInfo *mi, GLfloat x, GLfloat y, GLfloat z,
+ GLfloat color[4])
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ afterimage *a = (afterimage *) calloc (1, sizeof (*a));
+ afterimage *b;
+ a->position.x = x;
+ a->position.y = y;
+ a->position.z = z;
+ memcpy (a->color, color, sizeof(a->color));
+
+ /* Put it at the end so that the older, dimmer ones are laid down on
+ the frame buffer before the newer, brighter ones. */
+ if (!bp->trail)
+ bp->trail = a;
+ else
+ {
+ for (b = bp->trail; b->next; b = b->next)
+ ;
+ b->next = a;
+ }
+}
+
+
+static void
+tick_light (light *L)
+{
+ int i;
+ int n = 0;
+
+ L->ratio += 0.05 * light_speed;
+ while (L->ratio > 1)
+ L->ratio -= 1;
+
+ for (i = 0; i < countof(L->duty_cycle); i++)
+ {
+ n += L->duty_cycle[i];
+ if (n > 100) abort();
+ if (n / 100.0 > L->ratio)
+ {
+ L->on = (i & 1);
+ break;
+ }
+ }
+}
+
+
+
+static void
+tick_hoop (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat m0[16];
+ int i;
+
+ glGetFloatv (GL_MODELVIEW_MATRIX, m0);
+
+ for (i = 0; i < bp->nlights; i++)
+ {
+ light *L = &bp->lights[i];
+ GLfloat m1[16];
+ GLfloat th = M_PI * 2 * i / bp->nlights;
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+ GLfloat z;
+
+ tick_light (L);
+ if (! L->on)
+ continue;
+
+ glPushMatrix();
+
+ glTranslatef (bp->midpoint.x, bp->midpoint.y, bp->midpoint.z);
+ glRotatef (bp->th * 180 / M_PI, 0, 0, 1);
+ glRotatef (bp->tilt, 0, 1, 0);
+ glRotatef (bp->spin, 1, 0, 0);
+ glTranslatef (x * bp->radius, y * bp->radius, 0);
+ glGetFloatv (GL_MODELVIEW_MATRIX, m1);
+ glPopMatrix();
+
+ /* After all of our translations and rotations, figure out where
+ it actually ended up.
+ */
+ x = m1[12] - m0[12];
+ y = m1[13] - m0[13];
+ z = m1[14] - m0[14];
+ add_afterimage (mi, x, y, z, L->color);
+ }
+}
+
+
+static void
+draw_lights (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ afterimage *a;
+ GLfloat m[4][4];
+
+ if (wire)
+ {
+ int n = 360;
+ int i;
+ glPushMatrix();
+
+ glBegin (GL_LINES);
+ glVertex3f (0, 0, -bp->radius);
+ glVertex3f (0, 0, bp->radius);
+ glEnd();
+
+ glTranslatef (bp->midpoint.x, bp->midpoint.y, bp->midpoint.z);
+ glRotatef (bp->th * 180 / M_PI, 0, 0, 1);
+ glRotatef (bp->tilt, 0, 1, 0);
+ glRotatef (bp->spin, 1, 0, 0);
+
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ for (i = 0; i <= n; i++)
+ {
+ GLfloat th = i * M_PI * 2 / n;
+ glVertex3f (bp->radius * -cos(th),
+ bp->radius * -sin(th), 0);
+ }
+ for (i = 0; i <= n; i++)
+ {
+ GLfloat th = i * M_PI * 2 / n;
+ glVertex3f (bp->axial_radius * -cos(th),
+ bp->axial_radius * -sin(th), 0);
+ }
+ glEnd();
+ glPopMatrix();
+ }
+
+ /* Billboard the lights to always face the camera */
+ glGetFloatv (GL_MODELVIEW_MATRIX, &m[0][0]);
+ m[0][0] = 1; m[1][0] = 0; m[2][0] = 0;
+ m[0][1] = 0; m[1][1] = 1; m[2][1] = 0;
+ m[0][2] = 0; m[1][2] = 0; m[2][2] = 1;
+ glLoadIdentity();
+ glMultMatrixf (&m[0][0]);
+
+ for (a = bp->trail; a; a = a->next)
+ {
+ glPushMatrix();
+
+ glTranslatef (a->position.x, a->position.y, a->position.z);
+
+ if (wire)
+ {
+ GLfloat c[3];
+ c[0] = a->color[0] * a->color[3];
+ c[1] = a->color[1] * a->color[3];
+ c[2] = a->color[2] * a->color[3];
+ glColor3fv (c);
+ }
+ else
+ glColor4fv (a->color);
+
+ glRotatef (45, 0, 0, 1);
+ glScalef (0.15, 0.15, 0.15);
+ glBegin (GL_QUADS);
+ glTexCoord2f (0, 0); glVertex3f (-1, -1, 0);
+ glTexCoord2f (1, 0); glVertex3f ( 1, -1, 0);
+ glTexCoord2f (1, 1); glVertex3f ( 1, 1, 0);
+ glTexCoord2f (0, 1); glVertex3f (-1, 1, 0);
+ glEnd();
+ mi->polygon_count++;
+
+ glPopMatrix();
+ }
+}
+
+
+static GLfloat
+ease_fn (GLfloat r)
+{
+ return cos ((r/2 + 1) * M_PI) + 1; /* Smooth curve up, end at slope 1. */
+}
+
+
+static GLfloat
+ease_ratio (GLfloat r)
+{
+ GLfloat ease = 0.35;
+ if (r <= 0) return 0;
+ else if (r >= 1) return 1;
+ else if (r <= ease) return ease * ease_fn (r / ease);
+ else if (r > 1-ease) return 1 - ease * ease_fn ((1 - r) / ease);
+ else return r;
+}
+
+
+static void
+tick_oscillators (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ oscillator *prev = 0;
+ oscillator *a = bp->oscillators;
+ GLfloat tick = 0.1 / speed;
+
+ while (a)
+ {
+ oscillator *next = a->next;
+ a->ratio += tick * a->speed;
+ if (a->ratio > 1)
+ a->ratio = 1;
+
+ *a->var = a->from + (a->to - a->from) * ease_ratio (a->ratio);
+
+ if (a->ratio < 1) /* mid cycle */
+ prev = a;
+ else if (--a->remaining <= 0) /* ended, and expired */
+ {
+ if (prev)
+ prev->next = next;
+ else
+ bp->oscillators = next;
+ free (a);
+ }
+ else /* keep going the other way */
+ {
+ GLfloat swap = a->from;
+ a->from = a->to;
+ a->to = swap;
+ a->ratio = 0;
+ prev = a;
+ }
+
+ a = next;
+ }
+}
+
+
+static void
+calm_oscillators (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ oscillator *a;
+ for (a = bp->oscillators; a && a->next; a = a->next)
+ a->remaining = 1;
+}
+
+
+static void
+add_oscillator (ModeInfo *mi, GLfloat *var, GLfloat speed, GLfloat to,
+ int repeat)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ oscillator *a;
+
+ /* If an oscillator is already running on this variable, don't
+ add another. */
+ for (a = bp->oscillators; a && a->next; a = a->next)
+ if (a->var == var)
+ return;
+
+ a = (oscillator *) calloc (1, sizeof (*a));
+ if (repeat <= 0) abort();
+ a->ratio = 0;
+ a->from = *var;
+ a->to = to;
+ a->speed = speed;
+ a->var = var;
+ a->remaining = repeat;
+ a->next = bp->oscillators;
+ bp->oscillators = a;
+# if 0
+ fprintf (stderr, "%s: %3d %6.2f -> %6.2f %s\n",
+ progname, repeat, *var, to,
+ (var == &bp->midpoint.z ? "z" :
+ var == &bp->tilt ? "tilt" :
+ var == &bp->axial_radius ? "r" :
+ var == &bp->speed ? "speed" : "?"));
+# endif
+}
+
+
+static void
+add_random_oscillator (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ int n = random() % 12;
+ switch (n) {
+ case 0: case 1: case 2:
+ add_oscillator (mi, &bp->midpoint.z, 1,
+ bp->radius * (0.8 + frand(0.2))
+ * (random() & 1 ? 1 : -1),
+ (3 + (random() % 10)));
+ break;
+ case 3: case 4: case 5:
+ add_oscillator (mi, &bp->tilt, 1,
+ -(GLfloat) (random() % 15),
+ 3 + (random() % 20));
+ break;
+ case 6: case 7: case 8:
+ add_oscillator (mi, &bp->axial_radius, 1,
+ 0.1 + bp->radius * frand(1.4),
+ 1 + (random() % 4));
+ break;
+ case 9: case 10:
+ add_oscillator (mi, &bp->speed, 3,
+ (0.7 + frand(0.9)) * (random() & 1 ? 1 : -1),
+ ((random() % 5)
+ ? 1
+ : 2 + (random() % 5)));
+ break;
+ case 11:
+ add_oscillator (mi, &bp->spin, 0.1,
+ 180 * (1 + (random() % 2)),
+ 2 * (1 + (random() % 5)));
+ break;
+ default:
+ abort();
+ break;
+ }
+}
+
+
+static void
+randomize_colors (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ int ncolors = MI_NCOLORS(mi);
+ GLfloat *colors;
+ int ncycles;
+ int i;
+
+ if (ncolors < 1)
+ ncolors = 1;
+ if (ncolors > bp->nlights)
+ ncolors = bp->nlights;
+
+ if (! (random() % 10))
+ ncolors = 1;
+
+ colors = calloc (ncolors, 4 * sizeof(*colors));
+ for (i = 0; i < ncolors; i++)
+ {
+ GLfloat *c = &colors[i * 4];
+# define QUANTIZE() (((random() % 16) << 4) | 0xF) / 255.0
+ c[0] = QUANTIZE();
+ c[1] = QUANTIZE();
+ c[2] = QUANTIZE();
+ c[3] = 1;
+ }
+
+ switch (random() % 5) {
+ case 0: ncycles = 1; break;
+ case 2: ncycles = ncolors * (1 + (random() % 5)); break;
+ default: ncycles = ncolors; break;
+ }
+
+ for (i = 0; i < bp->nlights; i++)
+ {
+ light *L = &bp->lights[i];
+ int n = i * ncolors / bp->nlights;
+ int m = i * ncycles / bp->nlights;
+ if (n >= ncolors) abort();
+ if (m >= ncycles) abort();
+ memcpy (L->color, &colors[n], sizeof (L->color));
+
+ if (ncycles <= 1)
+ {
+ L->duty_cycle[0] = 0;
+ L->duty_cycle[1] = 100;
+ }
+ else if (m & 1)
+ {
+ L->duty_cycle[0] = 50;
+ L->duty_cycle[1] = 50;
+ }
+ else
+ {
+ L->duty_cycle[0] = 0;
+ L->duty_cycle[1] = 50;
+ L->duty_cycle[2] = 50;
+ }
+ }
+ free (colors);
+}
+
+
+static void
+move_hoop (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ bp->th += 0.2 * speed * bp->speed;
+ while (bp->th > M_PI*2)
+ bp->th -= M_PI*2;
+ while (bp->th < 0)
+ bp->th += M_PI*2;
+
+ bp->midpoint.x = bp->axial_radius * cos (bp->th);
+ bp->midpoint.y = bp->axial_radius * sin (bp->th);
+
+ tick_oscillators (mi);
+
+ if (! (random() % 80))
+ add_random_oscillator (mi);
+
+ if (! (random() % 120))
+ randomize_colors (mi);
+}
+
+
+static void
+build_texture (ModeInfo *mi)
+{
+ int x, y;
+ int size = 128;
+ int s2 = size / 2;
+ int bpl = size * 2;
+ unsigned char *data = malloc (bpl * size);
+
+ for (y = 0; y < size; y++)
+ {
+ for (x = 0; x < size; x++)
+ {
+ double dist = (sqrt (((s2 - x) * (s2 - x)) +
+ ((s2 - y) * (s2 - y)))
+ / s2);
+ unsigned char *c = &data [y * bpl + x * 2];
+ c[0] = 0xFF;
+ c[1] = 0xFF * sin (dist > 1 ? 0 : (1 - dist));
+ }
+ }
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ check_gl_error ("texture param");
+
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, size, size, 0,
+ GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, data);
+ check_gl_error ("light texture");
+ free (data);
+}
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_hoop (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+hoop_handle_event (ModeInfo *mi, XEvent *event)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ randomize_colors (mi);
+ calm_oscillators (mi);
+ add_random_oscillator (mi);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_hoop (ModeInfo *mi)
+{
+ hoop_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_hoop (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glDisable (GL_LIGHTING);
+ glDisable (GL_DEPTH_TEST);
+ glEnable (GL_CULL_FACE);
+ glEnable (GL_NORMALIZE);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE);
+ glPolygonMode (GL_FRONT, GL_FILL);
+ glShadeModel (GL_FLAT);
+
+ if (! wire)
+ {
+ build_texture (mi);
+ glEnable (GL_TEXTURE_2D);
+ }
+
+ {
+ double spin_speed = 0.3;
+ double wander_speed = 0.005;
+ double spin_accel = 2.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->radius = 30;
+ bp->axial_radius = bp->radius * 0.3;
+ bp->tilt = - (GLfloat) (5 + (random() % 12));
+ bp->speed = (random() % 1 ? 1 : -1);
+ bp->nlights = nlights;
+ bp->lights = (light *) calloc (bp->nlights, sizeof (*bp->lights));
+ randomize_colors (mi);
+ move_hoop (mi);
+ add_random_oscillator (mi);
+}
+
+
+ENTRYPOINT void
+draw_hoop (ModeInfo *mi)
+{
+ hoop_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 7,
+ (y - 0.5) * 0.5,
+ (z - 0.5) * 15);
+
+ gltrackball_rotate (bp->trackball);
+ glRotatef (current_device_rotation(), 0, 0, 1);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (0.2, 0.2, 0.2);
+
+# ifdef HAVE_MOBILE
+ glScalef (0.7, 0.7, 0.7);
+# endif
+
+ glRotatef (70, 1, 0, 0);
+
+ if (! bp->button_down_p)
+ move_hoop (mi);
+
+ decay_afterimages (mi);
+ tick_hoop (mi);
+ draw_lights (mi);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("RaverHoop", raverhoop, hoop)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/raverhoop.man b/hacks/glx/raverhoop.man
new file mode 100644
index 0000000..e7e70fa
--- /dev/null
+++ b/hacks/glx/raverhoop.man
@@ -0,0 +1,83 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+raverhoop - Simulates an LED hula hoop in a dark room.
+.SH SYNOPSIS
+.B raverhoop
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-ncolors \fInumber\fP]
+[\-lights \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-light-speed \fInumber\fP]
+[\-sustain \fInumber\fP]
+[\-no-wander]
+[\-no-spin]
+[\-fps]
+.SH DESCRIPTION
+Simulates an LED hula hoop in a dark room. Oontz oontz oontz.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-ncolors \fInumber\fP
+The number of colors to use on the hoop. Default: 12.
+.TP 8
+.B \-lights \fInumber\fP
+The number of LEDs comprising the hoop. Default: 200.
+.TP 8
+.B \-speed \fInumber\fP
+Speed of the motion of the object.
+2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-light-speed \fInumber\fP
+Speed at which the lights animate.
+2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-sustain \fInumber\fP
+Speed at which the after-images / vapor trails fade away.
+2.0 means they last twice as long, 0.5 means half as long.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the scene itself should spin.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/razzledazzle.c b/hacks/glx/razzledazzle.c
new file mode 100644
index 0000000..a3c8f98
--- /dev/null
+++ b/hacks/glx/razzledazzle.c
@@ -0,0 +1,725 @@
+/* razzledazzle, Copyright (c) 2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*ncolors: 2 \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_dazzle 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "normals.h"
+#include "gllist.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPEED "1.0"
+#define DEF_DENSITY "5.0"
+#define DEF_THICKNESS "0.1"
+#define DEF_MODE "Random"
+
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+#undef RANDSIGN
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+extern const struct gllist
+ *ships_ship1, *ships_ship2, *ships_ship3, *ships_ship4,
+ *ships_ship5, *ships_ship6, *ships_ship7, *ships_ship8;
+
+static const struct gllist * const *all_ships[] = {
+ &ships_ship1, &ships_ship2, &ships_ship3, &ships_ship4,
+ &ships_ship5, &ships_ship6, &ships_ship7, &ships_ship8,
+};
+
+
+typedef enum { LEFT, RIGHT, UP, DOWN } direction;
+
+typedef struct node node;
+
+struct node {
+ long gx, gy;
+ GLfloat x, y;
+ GLfloat dx, dy;
+ int nstripes;
+ Bool horiz_p;
+ Bool drawn_p;
+ GLfloat color1[4], color2[4];
+};
+
+typedef struct {
+ GLXContext *glx_context;
+ Bool button_down_p;
+ GLfloat xoff, yoff, dx, dy;
+ node *nodes;
+ node *dragging;
+ int drag_x, drag_y;
+ int ncolors;
+ XColor *colors;
+ GLuint *dlists;
+ enum { SHIPS, FLAT, RANDOM } mode;
+ int which_ship;
+ long frames;
+} dazzle_configuration;
+
+static dazzle_configuration *bps = NULL;
+
+static GLfloat speed, thickness, density;
+static char *mode_arg;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-density", ".density", XrmoptionSepArg, 0 },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+ { "-ships", ".mode", XrmoptionNoArg, "ships" },
+ { "-flat", ".mode", XrmoptionNoArg, "flat" },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&density, "density", "Density", DEF_DENSITY, t_Float},
+ {&mode_arg, "mode", "Mode", DEF_MODE, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt dazzle_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+static void
+draw_grid (ModeInfo *mi, int gx, int gy)
+{
+ dazzle_configuration *bp = &bps[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ long x, y;
+ long wh = density * 2;
+
+ if (wire)
+ glColor3f (1, 1, 1);
+
+ if (!wire)
+ glBegin (GL_QUADS);
+
+ for (y = 0; y < wh; y++)
+ for (x = 0; x < wh; x++)
+ {
+ node *n0 = &bp->nodes[(y % wh) * wh + (x % wh)];
+ node *n1 = &bp->nodes[(y % wh) * wh + ((x+1) % wh)];
+ node *n2 = &bp->nodes[((y+1) % wh) * wh + ((x+1) % wh)];
+ node *n3 = &bp->nodes[((y+1) % wh) * wh + (x % wh)];
+ int nstripes, i;
+ Bool horiz_p, visible;
+ GLfloat x0, y0, x1, y1, x2, y2, x3, y3;
+ GLfloat xoff = (x < wh-1 ? 0 : wh);
+ GLfloat yoff = (y < wh-1 ? 0 : wh);
+ GLfloat bx = fmod ((double) bp->xoff, 2.0);
+ GLfloat by = fmod ((double) bp->yoff, 2.0);
+
+ bx += gx*2;
+ by += gy*2;
+
+ if (wire)
+ {
+ GLfloat a;
+ glColor3f (0, 0, 1);
+ glBegin (GL_LINE_LOOP);
+ for (a = 0; a < 360; a += 10)
+ glVertex3f ((n0->x / density-1) + 0.05 * cos(a * M_PI/180) + bx,
+ (n0->y / density-1) + 0.05 * sin(a * M_PI/180) + by,
+ 0);
+ glEnd();
+ }
+
+ x0 = n0->x / density - 1 + bx;
+ y0 = n0->y / density - 1 + by;
+
+ x1 = (n1->x+xoff) / density - 1 + bx;
+ y1 = n1->y / density - 1 + by;
+ x2 = (n2->x+xoff) / density - 1 + bx;
+ y2 = (n2->y+yoff) / density - 1 + by;
+ x3 = n3->x / density - 1 + bx;
+ y3 = (n3->y+yoff) / density - 1 + by;
+
+ if (wire)
+ {
+ if (gx == 0 && gy == 0)
+ {
+ glLineWidth (4);
+ glColor3f(1, 0, 0);
+ }
+ else
+ glColor3f(0.5, 0, 0.5);
+ if (wire) glBegin (GL_LINE_LOOP);
+ glVertex3f (x0, y0, 0);
+ glVertex3f (x1, y1, 0);
+ glVertex3f (x2, y2, 0);
+ glVertex3f (x3, y3, 0);
+ mi->polygon_count++;
+ if (wire) glEnd();
+ glLineWidth (1);
+ }
+
+ /* This isn't quite right: just because all corners are off screen
+ doesn't mean the quad isn't visible. We need to intersect the
+ edges with the screen rectangle.
+ */
+ {
+ GLfloat max = 0.75;
+ visible = ((x0 >= -max && y0 >= -max && x0 <= max && y0 <= max) ||
+ (x1 >= -max && y1 >= -max && x1 <= max && y1 <= max) ||
+ (x2 >= -max && y2 >= -max && x2 <= max && y2 <= max) ||
+ (x3 >= -max && y3 >= -max && x3 <= max && y3 <= max));
+ }
+
+ if (!visible) continue;
+
+ if (visible)
+ n0->drawn_p = True;
+
+ nstripes = n0->nstripes;
+ horiz_p = n0->horiz_p;
+
+ for (i = 0; i < nstripes; i++)
+ {
+ GLfloat ss = (GLfloat) i / nstripes;
+ GLfloat ss1 = (GLfloat) (i+1) / nstripes;
+ if (i & 1)
+ glColor4fv (n0->color1);
+ else if (wire)
+ continue;
+ else
+ glColor4fv (n0->color2);
+
+ if (horiz_p)
+ {
+ x0 = n0->x + (n3->x - n0->x) * ss;
+ y0 = n0->y + ((n3->y+yoff) - n0->y) * ss;
+ x1 = (n1->x+xoff) + ((n2->x+xoff) - (n1->x+xoff)) * ss;
+ y1 = n1->y + ((n2->y+yoff) - n1->y) * ss;
+
+ x2 = (n1->x+xoff) + ((n2->x+xoff) - (n1->x+xoff)) * ss1;
+ y2 = n1->y + ((n2->y+yoff) - n1->y) * ss1;
+ x3 = n0->x + (n3->x - n0->x) * ss1;
+ y3 = n0->y + ((n3->y+yoff) - n0->y) * ss1;
+ }
+ else
+ {
+ x0 = n0->x + ((n1->x+xoff) - n0->x) * ss;
+ y0 = n0->y + (n1->y - n0->y) * ss;
+ x1 = n3->x + ((n2->x+xoff) - n3->x) * ss;
+ y1 = (n3->y+yoff) + ((n2->y+yoff) - (n3->y+yoff)) * ss;
+
+ x2 = n3->x + ((n2->x+xoff) - n3->x) * ss1;
+ y2 = (n3->y+yoff) + ((n2->y+yoff) - (n3->y+yoff)) * ss1;
+ x3 = n0->x + ((n1->x+xoff) - n0->x) * ss1;
+ y3 = n0->y + (n1->y - n0->y) * ss1;
+ }
+
+ if (wire) glBegin (GL_LINES);
+ glVertex3f (x0 / density - 1 + bx, y0 / density - 1 + by, 0);
+ glVertex3f (x1 / density - 1 + bx, y1 / density - 1 + by, 0);
+ glVertex3f (x2 / density - 1 + bx, y2 / density - 1 + by, 0);
+ glVertex3f (x3 / density - 1 + bx, y3 / density - 1 + by, 0);
+ mi->polygon_count++;
+ if (wire) glEnd();
+ }
+ }
+
+ if (!wire)
+ glEnd();
+}
+
+
+static void
+move_grid (ModeInfo *mi)
+{
+ dazzle_configuration *bp = &bps[MI_SCREEN(mi)];
+ long x, y;
+ long wh = density * 2;
+ Bool wire = MI_IS_WIREFRAME(mi);
+ GLfloat max = 1.0 / density * 3;
+
+ if (bp->button_down_p)
+ return;
+
+ bp->xoff += bp->dx;
+ bp->yoff += bp->dy;
+
+ if (! (random() % 50))
+ {
+ bp->dx += frand(0.0002) * RANDSIGN() * speed;
+ bp->dy += frand(0.0002) * RANDSIGN() * speed;
+ }
+
+ if (bp->dx > 0.003 * speed) bp->dx = 0.003 * speed;
+ if (bp->dy > 0.003 * speed) bp->dy = 0.003 * speed;
+
+ for (y = 0; y < wh; y++)
+ for (x = 0; x < wh; x++)
+ {
+ node *n = &bp->nodes[y * wh + x];
+ GLfloat x2 = n->x + n->dx;
+ GLfloat y2 = n->y + n->dy;
+
+ if (x2 < n->gx + max && x2 >= n->gx - max &&
+ y2 < n->gy + max && y2 >= n->gy - max)
+ {
+ n->x = x2;
+ n->y = y2;
+ }
+
+ if (! (random() % 50))
+ {
+ n->dx += frand(0.0005) * RANDSIGN() * speed;
+ n->dy += frand(0.0005) * RANDSIGN() * speed;
+ }
+
+ /* If this quad was not drawn, it's ok to re-randomize stripes, */
+ if (! n->drawn_p)
+ {
+ int i = random() % bp->ncolors;
+ int j = (i + bp->ncolors / 2) % bp->ncolors;
+ GLfloat cscale = 0.3;
+
+ n->color1[0] = bp->colors[i].red / 65536.0;
+ n->color1[1] = bp->colors[i].green / 65536.0;
+ n->color1[2] = bp->colors[i].blue / 65536.0;
+ n->color1[3] = 1.0;
+
+ n->color2[0] = bp->colors[j].red / 65536.0;
+ n->color2[1] = bp->colors[j].green / 65536.0;
+ n->color2[2] = bp->colors[j].blue / 65536.0;
+ n->color2[3] = 1.0;
+
+ if (! wire)
+ {
+ n->color1[0] = cscale * n->color1[0] + 1 - cscale;
+ n->color1[1] = cscale * n->color1[1] + 1 - cscale;
+ n->color1[2] = cscale * n->color1[2] + 1 - cscale;
+ n->color2[0] = cscale * n->color2[0];
+ n->color2[1] = cscale * n->color2[1];
+ n->color2[2] = cscale * n->color2[2];
+ }
+
+ n->horiz_p = random() & 1;
+ n->nstripes = 2 + (int) (BELLRAND(1.0 / thickness));
+ }
+ n->drawn_p = False;
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_dazzle (ModeInfo *mi, int width, int height)
+{
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho (0, 1, 1, 0, -1, 1);
+
+ if (width > height * 5) { /* tiny window: show middle */
+ GLfloat s = (GLfloat)height/width;
+ glOrtho (0, 1, 0.5-s, 0.5+s, -1, 1);
+ }
+
+# ifdef USE_IPHONE /* So much WTF */
+ {
+ int rot = current_device_rotation();
+
+ glTranslatef (0.5, 0.5, 0);
+
+ if (rot == 180 || rot == -180) {
+ glTranslatef (1, 1, 0);
+ } else if (rot == 90 || rot == -270) {
+ glRotatef (180, 0, 0, 1);
+ glTranslatef (0, 1, 0);
+ } else if (rot == -90 || rot == 270) {
+ glRotatef (180, 0, 0, 1);
+ glTranslatef (1, 0, 0);
+ }
+
+ glTranslatef(-0.5, -0.5, 0);
+ }
+# endif
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+dazzle_randomize (ModeInfo *mi)
+{
+ dazzle_configuration *bp = &bps[MI_SCREEN(mi)];
+ long x, y;
+ long wh = density * 2;
+
+ bp->ncolors = MI_NCOLORS(mi) - 1;
+ if (bp->ncolors < 1) bp->ncolors = 1;
+ if (bp->colors) free (bp->colors);
+ bp->colors = (XColor *) calloc (bp->ncolors, sizeof(XColor));
+ if (bp->ncolors < 3)
+ make_random_colormap (0, 0, 0, bp->colors, &bp->ncolors,
+ True, False, 0, False);
+ else
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, False, False);
+ if (bp->ncolors < 1) abort();
+
+ bp->dragging = 0;
+ if (bp->nodes) free (bp->nodes);
+
+ bp->nodes = (node *) calloc (wh * wh, sizeof (node));
+ for (y = 0; y < wh; y++)
+ for (x = 0; x < wh; x++)
+ {
+ node *n = &bp->nodes[wh * y + x];
+ n->gx = n->x = x;
+ n->gy = n->y = y;
+ }
+
+ bp->dx = bp->dy = 0;
+ bp->xoff = bp->yoff = 0;
+ for (x = 0; x < 1000; x++)
+ move_grid (mi);
+
+ bp->dx = frand(0.0005) * RANDSIGN() * speed;
+ bp->dy = frand(0.0005) * RANDSIGN() * speed;
+
+ if (bp->mode == SHIPS || bp->mode == RANDOM)
+ {
+ bp->which_ship = random() % countof(all_ships);
+ if (bp->mode == RANDOM && !(random() % 3))
+ bp->which_ship = -1;
+ }
+
+ if (bp->which_ship != -1)
+ {
+ bp->dx /= 10;
+ bp->dy /= 10;
+ }
+}
+
+
+ENTRYPOINT Bool
+dazzle_handle_event (ModeInfo *mi, XEvent *event)
+{
+ dazzle_configuration *bp = &bps[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ GLfloat bx = fmod ((double) bp->xoff, 2.0);
+ GLfloat by = fmod ((double) bp->yoff, 2.0);
+ long wh = density * 2;
+
+ if (event->xany.type == ButtonPress)
+ {
+ GLfloat x = (GLfloat) event->xbutton.x / MI_WIDTH (mi) - 0.5;
+ GLfloat y = (GLfloat) event->xbutton.y / MI_HEIGHT (mi) - 0.5;
+ node *nn = 0;
+ int xoff = 0, yoff = 0;
+ GLfloat d2 = 999999;
+ long x0, y0, x1, y1;
+
+ if (wire) x /= 0.2, y /= 0.2;
+
+ for (y0 = -1; y0 <= 1; y0++)
+ for (x0 = -1; x0 <= 1; x0++)
+ for (y1 = 0; y1 < wh; y1++)
+ for (x1 = 0; x1 < wh; x1++)
+ {
+ node *n0 = &bp->nodes[(y1 % wh) * wh + (x1 % wh)];
+ double dist2;
+ GLfloat x2 = n0->x / density - 1 + bx + x0*2;
+ GLfloat y2 = n0->y / density - 1 + by + y0*2;
+
+ dist2 = (x - x2) * (x - x2) + (y - y2) * (y - y2);
+ if (dist2 < d2)
+ {
+ d2 = dist2;
+ nn = n0;
+ xoff = x0;
+ yoff = y0;
+ }
+ }
+
+ bp->button_down_p = True;
+ bp->dragging = nn;
+ bp->drag_x = xoff;
+ bp->drag_y = yoff;
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease)
+ {
+ bp->dragging = 0;
+ bp->button_down_p = False;
+ return True;
+ }
+ else if (event->xany.type == MotionNotify && bp->dragging)
+ {
+ GLfloat x = (GLfloat) event->xmotion.x / MI_WIDTH (mi) - 0.5;
+ GLfloat y = (GLfloat) event->xmotion.y / MI_HEIGHT (mi) - 0.5;
+ if (wire) x /= 0.2, y /= 0.2;
+ x -= bx;
+ y -= by;
+ x -= bp->drag_x * 2;
+ y -= bp->drag_y * 2;
+ bp->dragging->x = x * density + density;
+ bp->dragging->y = y * density + density;
+ bp->dragging->dx = bp->dragging->dy = 0;
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ dazzle_randomize (mi);
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_dazzle (ModeInfo *mi)
+{
+ dazzle_configuration *bp;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ if (!mode_arg || !*mode_arg || !strcasecmp(mode_arg, "random"))
+ bp->mode = RANDOM;
+ else if (!strcasecmp(mode_arg, "ship") || !strcasecmp(mode_arg, "ships"))
+ bp->mode = SHIPS;
+ else if (!strcasecmp(mode_arg, "flat"))
+ bp->mode = FLAT;
+ else
+ {
+ fprintf (stderr, "%s: mode must be ship, flat or random, not %s\n",
+ progname, mode_arg);
+ exit (1);
+ }
+
+ bp->which_ship = -1;
+ if (bp->mode == SHIPS || bp->mode == RANDOM)
+ {
+ int i;
+ bp->dlists = (GLuint *) calloc (countof(all_ships)+1, sizeof(GLuint));
+ for (i = 0; i < countof(all_ships); i++)
+ {
+ const struct gllist *gll = *all_ships[i];
+
+ bp->dlists[i] = glGenLists (1);
+ glNewList (bp->dlists[i], GL_COMPILE);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ glMatrixMode(GL_MODELVIEW);
+
+ if (random() & 1)
+ {
+ glScalef (-1, 1, 1);
+ glTranslatef (-1, 0, 0);
+ }
+ renderList (gll, MI_IS_WIREFRAME(mi));
+
+ glMatrixMode(GL_TEXTURE);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+ glEndList ();
+ }
+ }
+
+ dazzle_randomize (mi);
+ reshape_dazzle (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+
+ENTRYPOINT void
+draw_dazzle (ModeInfo *mi)
+{
+ dazzle_configuration *bp = &bps[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME(mi);
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int x, y;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+ glDisable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glDisable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ mi->polygon_count = 0;
+
+ glTranslatef (0.5, 0.5, 0);
+
+ if (wire)
+ glScalef (0.2, 0.2, 1);
+
+ move_grid (mi);
+
+ for (y = -1; y <= 1; y++)
+ for (x = -1; x <= 1; x++)
+ draw_grid (mi, x, y);
+
+ if (bp->which_ship != -1)
+ {
+# ifdef USE_IPHONE
+ int rot = current_device_rotation();
+# endif
+
+ if (wire)
+ glColor3f (1, 0, 0);
+ else
+ {
+ glColor3f (0, 0, 0);
+
+ /* Draw into the depth buffer but not the frame buffer */
+ glColorMask (GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ glClear (GL_DEPTH_BUFFER_BIT);
+ glEnable (GL_DEPTH_TEST);
+ }
+
+# ifdef USE_IPHONE
+ glRotatef (90, 0, 0, 1);
+ if (rot == 90 || rot == -270)
+ glRotatef (180, 0, 0, 1);
+# endif
+
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+ glScalef (0.9, 0.9, 0.9);
+ glTranslatef (-0.5, 0, -0.2);
+
+# ifdef USE_IPHONE
+ if (rot == 0 || rot == 180 || rot == -180)
+ glScalef (1, 1, (GLfloat) MI_HEIGHT(mi) / MI_WIDTH(mi));
+ else
+# endif
+ glScalef (1, 1, (GLfloat) MI_WIDTH(mi) / MI_HEIGHT(mi));
+
+ /* Wave boat horizontally and vertically */
+ glTranslatef (cos ((double) bp->frames / 80 * M_PI * speed) / 200,
+ 0,
+ cos ((double) bp->frames / 60 * M_PI * speed) / 300);
+
+ glCallList (bp->dlists[bp->which_ship]);
+ mi->polygon_count += (*all_ships[bp->which_ship])->points / 3;
+ glPopMatrix();
+
+ /* Wave horizon vertically */
+ glTranslatef (0,
+ cos ((double) bp->frames / 120 * M_PI * speed) / 200,
+ 0);
+
+ if (! wire)
+ {
+ glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+
+ /* Black out everything that isn't a ship. */
+# if 0
+ glBegin (GL_QUADS);
+ glVertex3f (-1, -1, 0);
+ glVertex3f (-1, 1, 0);
+ glVertex3f ( 1, 1, 0);
+ glVertex3f ( 1, -1, 0);
+ glEnd();
+# else
+ {
+ GLfloat horizon = 0.15;
+
+ glColor3f (0.7, 0.7, 1.0);
+ glBegin (GL_QUADS);
+ glVertex3f (-1, -1, 0);
+ glVertex3f (-1, horizon, 0);
+ glVertex3f ( 1, horizon, 0);
+ glVertex3f ( 1, -1, 0);
+ glEnd();
+
+ glColor3f (0.0, 0.05, 0.2);
+ glBegin (GL_QUADS);
+ glVertex3f (-1, horizon, 0);
+ glVertex3f (-1, 1, 0);
+ glVertex3f ( 1, 1, 0);
+ glVertex3f ( 1, horizon, 0);
+ glEnd();
+ }
+# endif
+
+ glDisable (GL_DEPTH_TEST);
+ }
+ }
+
+ if (wire)
+ {
+ glColor3f(0,1,1);
+ glLineWidth(4);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-0.5, -0.5, 0);
+ glVertex3f(-0.5, 0.5, 0);
+ glVertex3f( 0.5, 0.5, 0);
+ glVertex3f( 0.5, -0.5, 0);
+ glEnd();
+ glLineWidth(1);
+ }
+
+ glPopMatrix ();
+
+ bp->frames++;
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_dazzle (ModeInfo *mi)
+{
+ dazzle_configuration *bp = &bps[MI_SCREEN(mi)];
+ if (bp->nodes) free (bp->nodes);
+ if (bp->colors) free (bp->colors);
+ if (bp->dlists)
+ {
+ int i;
+ for (i = 0; i < countof(all_ships); i++)
+ glDeleteLists (bp->dlists[i], 1);
+ free (bp->dlists);
+ }
+}
+
+XSCREENSAVER_MODULE_2 ("RazzleDazzle", razzledazzle, dazzle)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/razzledazzle.man b/hacks/glx/razzledazzle.man
new file mode 100644
index 0000000..f4baef4
--- /dev/null
+++ b/hacks/glx/razzledazzle.man
@@ -0,0 +1,76 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+razzledazzle - screen saver.
+.SH SYNOPSIS
+.B razzledazzle
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-ncolors \fInumber\fP]
+[\-density \fInumber\fP]
+[\-thickness \fInumber\fP]
+[\-mode \fIstring\fP]
+[\-fps]
+.SH DESCRIPTION
+Generates an infinitely-scrolling sequence of dazzle camouflage patterns.
+Dazzle Ships were military vessels during World War I and early in World
+War II that were painted not to conceal but to confuse: with these Cubist
+overlapping stripes, it was very hard to estimate their size, range and
+heading. This was a big deal before the invention of Radar.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-ncolors \fInumber\fP
+Colors. Default: 2.
+.TP 8
+.B \-density \fInumber\fP
+Thickness of the grid, and overall complexity. 1 - 10. Default: 5.0.
+.TP 8
+.B \-thickness \fInumber\fP
+Thickness of the lines. 0.05 - 1.0. Default: 0.1.
+.TP 8
+.B \-mode \fIstring\fP
+Random, Ships or Flat. Default Random.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2018 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/robot-wireframe.c b/hacks/glx/robot-wireframe.c
new file mode 100644
index 0000000..1d7b0db
--- /dev/null
+++ b/hacks/glx/robot-wireframe.c
@@ -0,0 +1,154 @@
+/* Generated from "robot-wireframe.dxf" on Aug-22-2014.
+ Wireframe.
+ */
+
+#include "gllist.h"
+
+static const float robot_wireframe_data[] = {
+ 729.885788,421.399756,2459.256694,
+ 959.278463,553.839679,1921.436233,
+ 729.885788,421.399756,2824.242214,
+ -0,842.799512,2824.242214,
+ -0,842.799512,2824.242214,
+ -0,842.799512,2459.256694,
+ -0,842.799512,2459.256694,
+ 729.885788,421.399756,2459.256694,
+ 0,0,3212.282649,
+ -0,842.799512,2824.242214,
+ 665.532008,384.245084,587.016307,
+ -0,768.490168,587.016307,
+ 750.739667,433.439749,887.912962,
+ 0,866.879498,887.912962,
+ 690.700937,398.776372,934.321154,
+ 750.739667,433.439749,887.912962,
+ 959.278463,-553.839679,1921.436233,
+ 959.278463,553.839679,1921.436233,
+ 959.278463,553.839679,1921.436233,
+ 690.700937,398.776372,934.321154,
+ 690.700937,-398.776372,934.321154,
+ 690.700937,398.776372,934.321154,
+ 665.532008,-384.245084,587.016307,
+ 665.532008,384.245084,587.016307,
+ 750.739667,-433.439749,887.912962,
+ 750.739667,433.439749,887.912962,
+ 750.739667,433.439749,887.912962,
+ 665.532008,384.245084,587.016307,
+ -0,-797.552743,934.321154,
+ 690.700937,-398.776372,934.321154,
+ -0,-1107.679357,1921.436233,
+ 959.278463,-553.839679,1921.436233,
+ 959.278463,-553.839679,1921.436233,
+ 690.700937,-398.776372,934.321154,
+ 0,-866.879498,887.912962,
+ -0,-797.552743,934.321154,
+ -0,-797.552743,934.321154,
+ -0,-1107.679357,1921.436233,
+ 690.700937,-398.776372,934.321154,
+ 750.739667,-433.439749,887.912962,
+ 750.739667,-433.439749,887.912962,
+ 665.532008,-384.245084,587.016307,
+ 729.885788,421.399756,2824.242214,
+ 729.885788,421.399756,2459.256694,
+ 729.885788,421.399756,2459.256694,
+ 729.885788,-421.399756,2459.256694,
+ 729.885788,-421.399756,2824.242214,
+ 729.885788,421.399756,2824.242214,
+ 0,-866.879498,887.912962,
+ 750.739667,-433.439749,887.912962,
+ 0,-768.490168,587.016307,
+ 0,-866.879498,887.912962,
+ 0,-768.490168,587.016307,
+ 665.532008,-384.245084,587.016307,
+ 0,0,3212.282649,
+ 729.885788,-421.399756,2824.242214,
+ -0,-1107.679357,1921.436233,
+ 0,-842.799512,2459.256694,
+ 729.885788,-421.399756,2459.256694,
+ 959.278463,-553.839679,1921.436233,
+ 0,-842.799512,2824.242214,
+ 0,0,3212.282649,
+ 0,0,3212.282649,
+ 729.885788,421.399756,2824.242214,
+ 0,866.879498,887.912962,
+ -0,768.490168,587.016307,
+ 690.700937,398.776372,934.321154,
+ 0,797.552743,934.321154,
+ 0,797.552743,934.321154,
+ 0,866.879498,887.912962,
+ 959.278463,553.839679,1921.436233,
+ 0,1107.679357,1921.436233,
+ 0,1107.679357,1921.436233,
+ 0,797.552743,934.321154,
+ -0,842.799512,2459.256694,
+ 0,1107.679357,1921.436233,
+ -0,842.799512,2824.242214,
+ -729.885788,421.399756,2824.242214,
+ -729.885788,421.399756,2824.242214,
+ -729.885788,421.399756,2459.256694,
+ -729.885788,421.399756,2459.256694,
+ -0,842.799512,2459.256694,
+ 0,0,3212.282649,
+ -729.885788,421.399756,2824.242214,
+ -0,768.490168,587.016307,
+ -665.532008,384.245084,587.016307,
+ 0,866.879498,887.912962,
+ -750.739667,433.439749,887.912962,
+ -750.739667,433.439749,887.912962,
+ -665.532008,384.245084,587.016307,
+ 0,797.552743,934.321154,
+ -690.700937,398.776372,934.321154,
+ -690.700937,398.776372,934.321154,
+ -750.739667,433.439749,887.912962,
+ 0,1107.679357,1921.436233,
+ -959.278463,553.839679,1921.436233,
+ -959.278463,553.839679,1921.436233,
+ -690.700937,398.776372,934.321154,
+ -729.885788,421.399756,2459.256694,
+ -959.278463,553.839679,1921.436233,
+ -729.885788,421.399756,2824.242214,
+ -729.885788,-421.399756,2824.242214,
+ -729.885788,-421.399756,2824.242214,
+ -729.885788,-421.399756,2459.256694,
+ -729.885788,-421.399756,2459.256694,
+ -729.885788,421.399756,2459.256694,
+ 0,0,3212.282649,
+ -729.885788,-421.399756,2824.242214,
+ -665.532008,384.245084,587.016307,
+ -665.532008,-384.245084,587.016307,
+ -750.739667,433.439749,887.912962,
+ -750.739667,-433.439749,887.912962,
+ -750.739667,-433.439749,887.912962,
+ -665.532008,-384.245084,587.016307,
+ -690.700937,398.776372,934.321154,
+ -690.700937,-398.776372,934.321154,
+ -690.700937,-398.776372,934.321154,
+ -750.739667,-433.439749,887.912962,
+ -959.278463,553.839679,1921.436233,
+ -959.278463,-553.839679,1921.436233,
+ -959.278463,-553.839679,1921.436233,
+ -690.700937,-398.776372,934.321154,
+ -729.885788,-421.399756,2459.256694,
+ -959.278463,-553.839679,1921.436233,
+ -729.885788,-421.399756,2824.242214,
+ 0,-842.799512,2824.242214,
+ 0,-842.799512,2459.256694,
+ -729.885788,-421.399756,2459.256694,
+ -665.532008,-384.245084,587.016307,
+ 0,-768.490168,587.016307,
+ -750.739667,-433.439749,887.912962,
+ 0,-866.879498,887.912962,
+ -690.700937,-398.776372,934.321154,
+ -0,-797.552743,934.321154,
+ -959.278463,-553.839679,1921.436233,
+ -0,-1107.679357,1921.436233,
+ 0,-842.799512,2459.256694,
+ 0,-842.799512,2824.242214,
+ 0,-842.799512,2824.242214,
+ 729.885788,-421.399756,2824.242214,
+ 729.885788,-421.399756,2824.242214,
+ 729.885788,-421.399756,2459.256694,
+ 729.885788,-421.399756,2459.256694,
+ 0,-842.799512,2459.256694
+};
+static const struct gllist robot_wireframe_frame = { GL_V3F, GL_LINES, 144, robot_wireframe_data, 0 };
+const struct gllist *robot_wireframe = &robot_wireframe_frame;
diff --git a/hacks/glx/robot-wireframe.dxf b/hacks/glx/robot-wireframe.dxf
new file mode 100644
index 0000000..526e835
--- /dev/null
+++ b/hacks/glx/robot-wireframe.dxf
@@ -0,0 +1,1160 @@
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+421.399755913295
+30
+2459.25669423824
+11
+959.278462610949
+21
+553.839678616242
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+421.399755913295
+30
+2824.24221446634
+11
+-1.80477854883065e-13
+21
+842.79951182659
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+842.79951182659
+30
+2824.24221446634
+11
+-1.80477854883065e-13
+21
+842.79951182659
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+842.79951182659
+30
+2459.25669423824
+11
+729.885787538951
+21
+421.399755913295
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+1.80477854883065e-13
+20
+1.40989300234651e-13
+30
+3212.28264895843
+11
+-1.80477854883065e-13
+21
+842.79951182659
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+665.532008182011
+20
+384.245084078196
+30
+587.016306884026
+11
+-1.80477854883065e-13
+21
+768.490168156393
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+750.739667090951
+20
+433.43974888629
+30
+887.912962275779
+11
+0.0
+21
+866.879497772581
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+690.700936565691
+20
+398.776371655728
+30
+934.321154257257
+11
+750.739667090951
+21
+433.43974888629
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+959.278462610949
+20
+-553.839678616242
+30
+1921.43623303429
+11
+959.278462610949
+21
+553.839678616242
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+959.278462610949
+20
+553.839678616242
+30
+1921.43623303429
+11
+690.700936565691
+21
+398.776371655728
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+690.700936565691
+20
+-398.776371655728
+30
+934.321154257257
+11
+690.700936565691
+21
+398.776371655728
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+665.532008182011
+20
+-384.245084078196
+30
+587.016306884026
+11
+665.532008182011
+21
+384.245084078196
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+750.739667090951
+20
+-433.43974888629
+30
+887.912962275779
+11
+750.739667090951
+21
+433.43974888629
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+750.739667090951
+20
+433.43974888629
+30
+887.912962275779
+11
+665.532008182011
+21
+384.245084078196
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+-797.552743311456
+30
+934.321154257257
+11
+690.700936565691
+21
+-398.776371655728
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+-1107.67935723248
+30
+1921.43623303429
+11
+959.278462610949
+21
+-553.839678616242
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+959.278462610949
+20
+-553.839678616242
+30
+1921.43623303429
+11
+690.700936565691
+21
+-398.776371655728
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-866.87949777258
+30
+887.912962275779
+11
+-1.80477854883065e-13
+21
+-797.552743311456
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+-797.552743311456
+30
+934.321154257257
+11
+-1.80477854883065e-13
+21
+-1107.67935723248
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+690.700936565691
+20
+-398.776371655728
+30
+934.321154257257
+11
+750.739667090951
+21
+-433.43974888629
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+750.739667090951
+20
+-433.43974888629
+30
+887.912962275779
+11
+665.532008182011
+21
+-384.245084078196
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+421.399755913295
+30
+2824.24221446634
+11
+729.885787538951
+21
+421.399755913295
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+421.399755913295
+30
+2459.25669423824
+11
+729.885787538951
+21
+-421.399755913295
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+-421.399755913295
+30
+2824.24221446634
+11
+729.885787538951
+21
+421.399755913295
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-866.87949777258
+30
+887.912962275779
+11
+750.739667090951
+21
+-433.43974888629
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-768.490168156392
+30
+587.016306884026
+11
+0.0
+21
+-866.87949777258
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-768.490168156392
+30
+587.016306884026
+11
+665.532008182011
+21
+-384.245084078196
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+1.80477854883065e-13
+20
+1.40989300234651e-13
+30
+3212.28264895843
+11
+729.885787538951
+21
+-421.399755913295
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+-1107.67935723248
+30
+1921.43623303429
+11
+0.0
+21
+-842.79951182659
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+-421.399755913295
+30
+2459.25669423824
+11
+959.278462610949
+21
+-553.839678616242
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-842.79951182659
+30
+2824.24221446634
+11
+1.80477854883065e-13
+21
+1.40989300234651e-13
+31
+3212.28264895843
+ 0
+LINE
+ 8
+Layer0
+10
+1.80477854883065e-13
+20
+1.40989300234651e-13
+30
+3212.28264895843
+11
+729.885787538951
+21
+421.399755913295
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+866.879497772581
+30
+887.912962275779
+11
+-1.80477854883065e-13
+21
+768.490168156393
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+690.700936565691
+20
+398.776371655728
+30
+934.321154257257
+11
+0.0
+21
+797.552743311456
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+797.552743311456
+30
+934.321154257257
+11
+0.0
+21
+866.879497772581
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+959.278462610949
+20
+553.839678616242
+30
+1921.43623303429
+11
+0.0
+21
+1107.67935723248
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+1107.67935723248
+30
+1921.43623303429
+11
+0.0
+21
+797.552743311456
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+842.79951182659
+30
+2459.25669423824
+11
+0.0
+21
+1107.67935723248
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+842.79951182659
+30
+2824.24221446634
+11
+-729.88578753895
+21
+421.399755913295
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+421.399755913295
+30
+2824.24221446634
+11
+-729.88578753895
+21
+421.399755913295
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+421.399755913295
+30
+2459.25669423824
+11
+-1.80477854883065e-13
+21
+842.79951182659
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+1.80477854883065e-13
+20
+1.40989300234651e-13
+30
+3212.28264895843
+11
+-729.88578753895
+21
+421.399755913295
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+-1.80477854883065e-13
+20
+768.490168156393
+30
+587.016306884026
+11
+-665.532008182011
+21
+384.245084078197
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+866.879497772581
+30
+887.912962275779
+11
+-750.739667090951
+21
+433.439748886291
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+-750.739667090951
+20
+433.439748886291
+30
+887.912962275779
+11
+-665.532008182011
+21
+384.245084078197
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+797.552743311456
+30
+934.321154257257
+11
+-690.700936565691
+21
+398.776371655728
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-690.700936565691
+20
+398.776371655728
+30
+934.321154257257
+11
+-750.739667090951
+21
+433.439748886291
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+1107.67935723248
+30
+1921.43623303429
+11
+-959.278462610949
+21
+553.839678616243
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+-959.278462610949
+20
+553.839678616243
+30
+1921.43623303429
+11
+-690.700936565691
+21
+398.776371655728
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+421.399755913295
+30
+2459.25669423824
+11
+-959.278462610949
+21
+553.839678616243
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+421.399755913295
+30
+2824.24221446634
+11
+-729.88578753895
+21
+-421.399755913294
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+-421.399755913294
+30
+2824.24221446634
+11
+-729.88578753895
+21
+-421.399755913294
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+-421.399755913294
+30
+2459.25669423824
+11
+-729.88578753895
+21
+421.399755913295
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+1.80477854883065e-13
+20
+1.40989300234651e-13
+30
+3212.28264895843
+11
+-729.88578753895
+21
+-421.399755913294
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+-665.532008182011
+20
+384.245084078197
+30
+587.016306884026
+11
+-665.532008182012
+21
+-384.245084078196
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+-750.739667090951
+20
+433.439748886291
+30
+887.912962275779
+11
+-750.739667090951
+21
+-433.43974888629
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+-750.739667090951
+20
+-433.43974888629
+30
+887.912962275779
+11
+-665.532008182012
+21
+-384.245084078196
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+-690.700936565691
+20
+398.776371655728
+30
+934.321154257257
+11
+-690.700936565691
+21
+-398.776371655727
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-690.700936565691
+20
+-398.776371655727
+30
+934.321154257257
+11
+-750.739667090951
+21
+-433.43974888629
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+-959.278462610949
+20
+553.839678616243
+30
+1921.43623303429
+11
+-959.27846261095
+21
+-553.839678616242
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+-959.27846261095
+20
+-553.839678616242
+30
+1921.43623303429
+11
+-690.700936565691
+21
+-398.776371655727
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+-421.399755913294
+30
+2459.25669423824
+11
+-959.27846261095
+21
+-553.839678616242
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+-729.88578753895
+20
+-421.399755913294
+30
+2824.24221446634
+11
+0.0
+21
+-842.79951182659
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-842.79951182659
+30
+2459.25669423824
+11
+-729.88578753895
+21
+-421.399755913294
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+-665.532008182012
+20
+-384.245084078196
+30
+587.016306884026
+11
+0.0
+21
+-768.490168156392
+31
+587.016306884026
+ 0
+LINE
+ 8
+Layer0
+10
+-750.739667090951
+20
+-433.43974888629
+30
+887.912962275779
+11
+0.0
+21
+-866.87949777258
+31
+887.912962275779
+ 0
+LINE
+ 8
+Layer0
+10
+-690.700936565691
+20
+-398.776371655727
+30
+934.321154257257
+11
+-1.80477854883065e-13
+21
+-797.552743311456
+31
+934.321154257257
+ 0
+LINE
+ 8
+Layer0
+10
+-959.27846261095
+20
+-553.839678616242
+30
+1921.43623303429
+11
+-1.80477854883065e-13
+21
+-1107.67935723248
+31
+1921.43623303429
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-842.79951182659
+30
+2459.25669423824
+11
+0.0
+21
+-842.79951182659
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+0.0
+20
+-842.79951182659
+30
+2824.24221446634
+11
+729.885787538951
+21
+-421.399755913295
+31
+2824.24221446634
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+-421.399755913295
+30
+2824.24221446634
+11
+729.885787538951
+21
+-421.399755913295
+31
+2459.25669423824
+ 0
+LINE
+ 8
+Layer0
+10
+729.885787538951
+20
+-421.399755913295
+30
+2459.25669423824
+11
+0.0
+21
+-842.79951182659
+31
+2459.25669423824
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/hacks/glx/robot.c b/hacks/glx/robot.c
new file mode 100644
index 0000000..84ee59b
--- /dev/null
+++ b/hacks/glx/robot.c
@@ -0,0 +1,18539 @@
+/* Generated from "robot.dxf" on Aug-22-2014.
+ Smoothed vertex normals.
+ Components: arm_half, body_half_inside, body_half_outside, crank_full,
+ gearbox_half, hand_half, leg_half, rotator_half.
+ */
+
+#include "gllist.h"
+
+static const float robot_arm_half_data[] = {
+ 0.906212,-0.041413,0.420791,1080.0746,-794.16656,2070.082615,
+ 0.825188,-0.112749,0.553491,1071.440608,-804.05311,2084.867737,
+ 0.920546,-0.079115,0.382538,1080.0746,-800.976533,2069.412397,
+ 0.825188,-0.112749,0.553491,1071.440608,-804.05311,2084.867737,
+ 0.906212,-0.041413,0.420791,1080.0746,-794.16656,2070.082615,
+ 0.804658,-0.058153,0.590884,1071.440608,-794.16656,2085.840744,
+ 0.804658,-0.058153,0.590884,1071.440608,-794.16656,2085.840744,
+ 0.712409,-0.124297,0.690669,1059.821204,-806.749751,2098.414453,
+ 0.825188,-0.112749,0.553491,1071.440608,-804.05311,2084.867737,
+ 0.712409,-0.124297,0.690669,1059.821204,-806.749751,2098.414453,
+ 0.804658,-0.058153,0.590884,1071.440608,-794.16656,2085.840744,
+ 0.67288,-0.072454,0.736195,1059.821204,-794.16656,2099.652855,
+ 0.573227,-0.159742,0.803675,1045.662989,-808.962833,2109.531981,
+ 0.67288,-0.072454,0.736195,1059.821204,-794.16656,2099.652855,
+ 0.516952,-0.083841,0.851898,1045.662989,-794.16656,2110.988188,
+ 0.67288,-0.072454,0.736195,1059.821204,-794.16656,2099.652855,
+ 0.573227,-0.159742,0.803675,1045.662989,-808.962833,2109.531981,
+ 0.712409,-0.124297,0.690669,1059.821204,-806.749751,2098.414453,
+ 0.404534,-0.178287,0.896976,1029.509968,-810.607297,2117.793029,
+ 0.516952,-0.083841,0.851898,1045.662989,-794.16656,2110.988188,
+ 0.343284,-0.091992,0.934716,1029.509968,-794.16656,2119.41108,
+ 0.516952,-0.083841,0.851898,1045.662989,-794.16656,2110.988188,
+ 0.404534,-0.178287,0.896976,1029.509968,-810.607297,2117.793029,
+ 0.573227,-0.159742,0.803675,1045.662989,-808.962833,2109.531981,
+ 0.221931,-0.19009,0.956354,1011.982852,-811.619949,2122.880135,
+ 0.343284,-0.091992,0.934716,1029.509968,-794.16656,2119.41108,
+ 0.158161,-0.096711,0.982666,1011.982852,-794.16656,2124.597848,
+ 0.343284,-0.091992,0.934716,1029.509968,-794.16656,2119.41108,
+ 0.221931,-0.19009,0.956354,1011.982852,-811.619949,2122.880135,
+ 0.404534,-0.178287,0.896976,1029.509968,-810.607297,2117.793029,
+ 0.095481,-0.194061,0.976332,993.755282,-811.961287,2124.594866,
+ 0.158161,-0.096711,0.982666,1011.982852,-794.16656,2124.597848,
+ 0.095023,-0.097501,0.990689,993.755282,-794.16656,2126.346173,
+ 0.158161,-0.096711,0.982666,1011.982852,-794.16656,2124.597848,
+ 0.095481,-0.194061,0.976332,993.755282,-811.961287,2124.594866,
+ 0.221931,-0.19009,0.956354,1011.982852,-811.619949,2122.880135,
+ 0,-0.162686,0.986678,947.039602,-835.292444,2241.800118,
+ 0,-0.097944,0.995192,993.755282,-794.16656,2245.847611,
+ 0,-0.097944,0.995192,947.039602,-794.16656,2245.847611,
+ 0,-0.097944,0.995192,993.755282,-794.16656,2245.847611,
+ 0,-0.162686,0.986678,947.039602,-835.292444,2241.800118,
+ 0,-0.227008,0.973893,993.755282,-835.292444,2241.800118,
+ -0.698037,-0.116492,0.706522,947.039602,-835.292444,2241.800118,
+ -0.696496,-0.070281,0.71411,900.323922,-794.16656,2200.284205,
+ -0.698044,-0.162549,0.697361,900.323922,-826.396761,2197.1122,
+ -0.696496,-0.070281,0.71411,900.323922,-794.16656,2200.284205,
+ -0.698037,-0.116492,0.706522,947.039602,-835.292444,2241.800118,
+ -0.696496,-0.070281,0.71411,947.039602,-794.16656,2245.847611,
+ 0.696496,-0.070281,0.71411,900.323922,-794.16656,2200.284205,
+ 0.698037,-0.116492,0.706522,853.608242,-835.292444,2241.800118,
+ 0.698044,-0.162549,0.697361,900.323922,-826.396761,2197.1122,
+ 0.698037,-0.116492,0.706522,853.608242,-835.292444,2241.800118,
+ 0.696496,-0.070281,0.71411,900.323922,-794.16656,2200.284205,
+ 0.696496,-0.070281,0.71411,853.608242,-794.16656,2245.847611,
+ -0.698037,-0.116492,0.706522,853.608242,-835.292444,2241.800118,
+ -0.696496,-0.070281,0.71411,806.892562,-794.16656,2200.284205,
+ -0.698044,-0.162549,0.697361,806.892562,-826.396761,2197.1122,
+ -0.696496,-0.070281,0.71411,806.892562,-794.16656,2200.284205,
+ -0.698037,-0.116492,0.706522,853.608242,-835.292444,2241.800118,
+ -0.696496,-0.070281,0.71411,853.608242,-794.16656,2245.847611,
+ 0.696496,-0.070281,0.71411,806.892562,-794.16656,2200.284205,
+ 0.698037,-0.116492,0.706522,760.176882,-835.292444,2241.800118,
+ 0.698044,-0.162549,0.697361,806.892562,-826.396761,2197.1122,
+ 0.698037,-0.116492,0.706522,760.176882,-835.292444,2241.800118,
+ 0.696496,-0.070281,0.71411,806.892562,-794.16656,2200.284205,
+ 0.696496,-0.070281,0.71411,760.176882,-794.16656,2245.847611,
+ -0.698037,-0.116492,0.706522,760.176882,-835.292444,2241.800118,
+ -0.696496,-0.070281,0.71411,713.461202,-794.16656,2200.284205,
+ -0.698044,-0.162549,0.697361,713.461202,-826.396761,2197.1122,
+ -0.696496,-0.070281,0.71411,713.461202,-794.16656,2200.284205,
+ -0.698037,-0.116492,0.706522,760.176882,-835.292444,2241.800118,
+ -0.696496,-0.070281,0.71411,760.176882,-794.16656,2245.847611,
+ 0.696496,-0.070281,0.71411,713.461202,-794.16656,2200.284205,
+ 0.698037,-0.116492,0.706522,666.745522,-835.292444,2241.800118,
+ 0.698044,-0.162549,0.697361,713.461202,-826.396761,2197.1122,
+ 0.698037,-0.116492,0.706522,666.745522,-835.292444,2241.800118,
+ 0.696496,-0.070281,0.71411,713.461202,-794.16656,2200.284205,
+ 0.696496,-0.070281,0.71411,666.745522,-794.16656,2245.847611,
+ 0,-0.162686,0.986678,635.537065,-835.292444,2241.800118,
+ 0,-0.097944,0.995192,666.745522,-794.16656,2245.847611,
+ 0,-0.097944,0.995192,635.537065,-794.16656,2245.847611,
+ 0,-0.097944,0.995192,666.745522,-794.16656,2245.847611,
+ 0,-0.162686,0.986678,635.537065,-835.292444,2241.800118,
+ 0,-0.227008,0.973893,666.745522,-835.292444,2241.800118,
+ 0,-0.162686,0.986678,200.646178,-826.396761,2197.1122,
+ 0,-0.097944,0.995192,635.537065,-794.16656,2200.284205,
+ 0,-0.097944,0.995192,200.646178,-794.16656,2200.284205,
+ 0,-0.097944,0.995192,635.537065,-794.16656,2200.284205,
+ 0,-0.162686,0.986678,200.646178,-826.396761,2197.1122,
+ 0,-0.227008,0.973893,635.537065,-826.396761,2197.1122,
+ 0,-0.162686,0.986678,97.301517,-810.693775,2118.227454,
+ 0,-0.097944,0.995192,200.646178,-794.16656,2119.854015,
+ 0,-0.097944,0.995192,97.301517,-794.16656,2119.854015,
+ 0,-0.097944,0.995192,200.646178,-794.16656,2119.854015,
+ 0,-0.162686,0.986678,97.301517,-810.693775,2118.227454,
+ 0,-0.227008,0.973893,200.646178,-810.693775,2118.227454,
+ 0,-0.162686,0.986678,45.307526,-820.853629,2169.265997,
+ 0,-0.097944,0.995192,97.301517,-794.16656,2171.892463,
+ 0,-0.097944,0.995192,45.307526,-794.16656,2171.892463,
+ 0,-0.097944,0.995192,97.301517,-794.16656,2171.892463,
+ 0,-0.162686,0.986678,45.307526,-820.853629,2169.265997,
+ 0,-0.227008,0.973893,97.301517,-820.853629,2169.265997,
+ 0.972352,-0.022872,0.232398,1085.391405,-794.16656,2052.984082,
+ 0.920546,-0.079115,0.382538,1080.0746,-800.976533,2069.412397,
+ 0.975625,-0.048525,0.214014,1085.391405,-797.638259,2052.642407,
+ 0.920546,-0.079115,0.382538,1080.0746,-800.976533,2069.412397,
+ 0.972352,-0.022872,0.232398,1085.391405,-794.16656,2052.984082,
+ 0.906212,-0.041413,0.420791,1080.0746,-794.16656,2070.082615,
+ 0.920546,-0.079115,0.382538,1080.0746,-800.976533,2069.412397,
+ 0.82521,-0.218488,0.520857,1071.440608,-813.559725,2081.986111,
+ 0.920558,-0.152171,0.359746,1080.0746,-807.524802,2067.427498,
+ 0.82521,-0.218488,0.520857,1071.440608,-813.559725,2081.986111,
+ 0.920546,-0.079115,0.382538,1080.0746,-800.976533,2069.412397,
+ 0.825188,-0.112749,0.553491,1071.440608,-804.05311,2084.867737,
+ 0.825188,-0.112749,0.553491,1071.440608,-804.05311,2084.867737,
+ 0.698346,-0.251899,0.66997,1059.821204,-818.849378,2094.746838,
+ 0.82521,-0.218488,0.520857,1071.440608,-813.559725,2081.986111,
+ 0.698346,-0.251899,0.66997,1059.821204,-818.849378,2094.746838,
+ 0.825188,-0.112749,0.553491,1071.440608,-804.05311,2084.867737,
+ 0.712409,-0.124297,0.690669,1059.821204,-806.749751,2098.414453,
+ 0.573227,-0.159742,0.803675,1045.662989,-808.962833,2109.531981,
+ 0.698346,-0.251899,0.66997,1059.821204,-818.849378,2094.746838,
+ 0.712409,-0.124297,0.690669,1059.821204,-806.749751,2098.414453,
+ 0.698346,-0.251899,0.66997,1059.821204,-818.849378,2094.746838,
+ 0.573227,-0.159742,0.803675,1045.662989,-808.962833,2109.531981,
+ 0.546331,-0.318715,0.77456,1045.662989,-823.190494,2105.21932,
+ 0.404534,-0.178287,0.896976,1029.509968,-810.607297,2117.793029,
+ 0.546331,-0.318715,0.77456,1045.662989,-823.190494,2105.21932,
+ 0.573227,-0.159742,0.803675,1045.662989,-808.962833,2109.531981,
+ 0.546331,-0.318715,0.77456,1045.662989,-823.190494,2105.21932,
+ 0.404534,-0.178287,0.896976,1029.509968,-810.607297,2117.793029,
+ 0.374869,-0.353462,0.857052,1029.509968,-826.416226,2113.001057,
+ 0.221931,-0.19009,0.956354,1011.982852,-811.619949,2122.880135,
+ 0.374869,-0.353462,0.857052,1029.509968,-826.416226,2113.001057,
+ 0.404534,-0.178287,0.896976,1029.509968,-810.607297,2117.793029,
+ 0.374869,-0.353462,0.857052,1029.509968,-826.416226,2113.001057,
+ 0.221931,-0.19009,0.956354,1011.982852,-811.619949,2122.880135,
+ 0.190537,-0.374884,0.90728,1011.982852,-828.402613,2117.793006,
+ 0.095481,-0.194061,0.976332,993.755282,-811.961287,2124.594866,
+ 0.190537,-0.374884,0.90728,1011.982852,-828.402613,2117.793006,
+ 0.221931,-0.19009,0.956354,1011.982852,-811.619949,2122.880135,
+ 0.190537,-0.374884,0.90728,1011.982852,-828.402613,2117.793006,
+ 0.095481,-0.194061,0.976332,993.755282,-811.961287,2124.594866,
+ 0.095439,-0.410655,0.906782,993.755282,-829.072173,2119.408248,
+ 0,-0.351934,0.936025,947.039602,-874.837884,2229.81318,
+ 0,-0.227008,0.973893,993.755282,-835.292444,2241.800118,
+ 0,-0.162686,0.986678,947.039602,-835.292444,2241.800118,
+ 0,-0.227008,0.973893,993.755282,-835.292444,2241.800118,
+ 0,-0.351934,0.936025,947.039602,-874.837884,2229.81318,
+ 0,-0.412538,0.91094,993.755282,-874.837884,2229.81318,
+ -0.698064,-0.251996,0.670228,947.039602,-874.837884,2229.81318,
+ -0.698044,-0.162549,0.697361,900.323922,-826.396761,2197.1122,
+ -0.698076,-0.295386,0.652255,900.323922,-857.388373,2187.718082,
+ -0.698044,-0.162549,0.697361,900.323922,-826.396761,2197.1122,
+ -0.698064,-0.251996,0.670228,947.039602,-874.837884,2229.81318,
+ -0.698037,-0.116492,0.706522,947.039602,-835.292444,2241.800118,
+ 0.698044,-0.162549,0.697361,900.323922,-826.396761,2197.1122,
+ 0.698064,-0.251996,0.670228,853.608242,-874.837884,2229.81318,
+ 0.698076,-0.295386,0.652255,900.323922,-857.388373,2187.718082,
+ 0.698064,-0.251996,0.670228,853.608242,-874.837884,2229.81318,
+ 0.698044,-0.162549,0.697361,900.323922,-826.396761,2197.1122,
+ 0.698037,-0.116492,0.706522,853.608242,-835.292444,2241.800118,
+ -0.698064,-0.251996,0.670228,853.608242,-874.837884,2229.81318,
+ -0.698044,-0.162549,0.697361,806.892562,-826.396761,2197.1122,
+ -0.698076,-0.295386,0.652255,806.892562,-857.388373,2187.718082,
+ -0.698044,-0.162549,0.697361,806.892562,-826.396761,2197.1122,
+ -0.698064,-0.251996,0.670228,853.608242,-874.837884,2229.81318,
+ -0.698037,-0.116492,0.706522,853.608242,-835.292444,2241.800118,
+ 0.698044,-0.162549,0.697361,806.892562,-826.396761,2197.1122,
+ 0.698064,-0.251996,0.670228,760.176882,-874.837884,2229.81318,
+ 0.698076,-0.295386,0.652255,806.892562,-857.388373,2187.718082,
+ 0.698064,-0.251996,0.670228,760.176882,-874.837884,2229.81318,
+ 0.698044,-0.162549,0.697361,806.892562,-826.396761,2197.1122,
+ 0.698037,-0.116492,0.706522,760.176882,-835.292444,2241.800118,
+ -0.698064,-0.251996,0.670228,760.176882,-874.837884,2229.81318,
+ -0.698044,-0.162549,0.697361,713.461202,-826.396761,2197.1122,
+ -0.698076,-0.295386,0.652255,713.461202,-857.388373,2187.718082,
+ -0.698044,-0.162549,0.697361,713.461202,-826.396761,2197.1122,
+ -0.698064,-0.251996,0.670228,760.176882,-874.837884,2229.81318,
+ -0.698037,-0.116492,0.706522,760.176882,-835.292444,2241.800118,
+ 0.698044,-0.162549,0.697361,713.461202,-826.396761,2197.1122,
+ 0.698064,-0.251996,0.670228,666.745522,-874.837884,2229.81318,
+ 0.698076,-0.295386,0.652255,713.461202,-857.388373,2187.718082,
+ 0.698064,-0.251996,0.670228,666.745522,-874.837884,2229.81318,
+ 0.698044,-0.162549,0.697361,713.461202,-826.396761,2197.1122,
+ 0.698037,-0.116492,0.706522,666.745522,-835.292444,2241.800118,
+ 0,-0.351934,0.936025,635.537065,-874.837884,2229.81318,
+ 0,-0.227008,0.973893,666.745522,-835.292444,2241.800118,
+ 0,-0.162686,0.986678,635.537065,-835.292444,2241.800118,
+ 0,-0.227008,0.973893,666.745522,-835.292444,2241.800118,
+ 0,-0.351934,0.936025,635.537065,-874.837884,2229.81318,
+ 0,-0.412538,0.91094,666.745522,-874.837884,2229.81318,
+ 0,-0.351934,0.936025,200.646178,-857.388373,2187.718082,
+ 0,-0.227008,0.973893,635.537065,-826.396761,2197.1122,
+ 0,-0.162686,0.986678,200.646178,-826.396761,2197.1122,
+ 0,-0.227008,0.973893,635.537065,-826.396761,2197.1122,
+ 0,-0.351934,0.936025,200.646178,-857.388373,2187.718082,
+ 0,-0.412538,0.91094,635.537065,-857.388373,2187.718082,
+ 0,-0.351934,0.936025,97.301517,-826.585858,2113.410276,
+ 0,-0.227008,0.973893,200.646178,-810.693775,2118.227454,
+ 0,-0.162686,0.986678,97.301517,-810.693775,2118.227454,
+ 0,-0.227008,0.973893,200.646178,-810.693775,2118.227454,
+ 0,-0.351934,0.936025,97.301517,-826.585858,2113.410276,
+ 0,-0.412538,0.91094,200.646178,-826.585858,2113.410276,
+ 0,-0.351934,0.936025,45.307526,-846.515129,2161.487533,
+ 0,-0.227008,0.973893,97.301517,-820.853629,2169.265997,
+ 0,-0.162686,0.986678,45.307526,-820.853629,2169.265997,
+ 0,-0.227008,0.973893,97.301517,-820.853629,2169.265997,
+ 0,-0.351934,0.936025,45.307526,-846.515129,2161.487533,
+ 0,-0.412538,0.91094,97.301517,-846.515129,2161.487533,
+ 0.975625,-0.048525,0.214014,1085.391405,-797.638259,2052.642407,
+ 0.920558,-0.152171,0.359746,1080.0746,-807.524802,2067.427498,
+ 0.975629,-0.089314,0.200429,1085.391405,-800.976542,2051.630513,
+ 0.920558,-0.152171,0.359746,1080.0746,-807.524802,2067.427498,
+ 0.975625,-0.048525,0.214014,1085.391405,-797.638259,2052.642407,
+ 0.920546,-0.079115,0.382538,1080.0746,-800.976533,2069.412397,
+ 0.920558,-0.152171,0.359746,1080.0746,-807.524802,2067.427498,
+ 0.825241,-0.315841,0.468211,1071.440608,-822.321072,2077.306602,
+ 0.920575,-0.219382,0.323131,1080.0746,-813.559722,2064.204197,
+ 0.825241,-0.315841,0.468211,1071.440608,-822.321072,2077.306602,
+ 0.920558,-0.152171,0.359746,1080.0746,-807.524802,2067.427498,
+ 0.82521,-0.218488,0.520857,1071.440608,-813.559725,2081.986111,
+ 0.82521,-0.218488,0.520857,1071.440608,-813.559725,2081.986111,
+ 0.688423,-0.395152,0.608218,1059.821204,-830.000457,2088.790953,
+ 0.825241,-0.315841,0.468211,1071.440608,-822.321072,2077.306602,
+ 0.688423,-0.395152,0.608218,1059.821204,-830.000457,2088.790953,
+ 0.82521,-0.218488,0.520857,1071.440608,-813.559725,2081.986111,
+ 0.698346,-0.251899,0.66997,1059.821204,-818.849378,2094.746838,
+ 0.546331,-0.318715,0.77456,1045.662989,-823.190494,2105.21932,
+ 0.688423,-0.395152,0.608218,1059.821204,-830.000457,2088.790953,
+ 0.698346,-0.251899,0.66997,1059.821204,-818.849378,2094.746838,
+ 0.688423,-0.395152,0.608218,1059.821204,-830.000457,2088.790953,
+ 0.546331,-0.318715,0.77456,1045.662989,-823.190494,2105.21932,
+ 0.529849,-0.456252,0.714909,1045.662989,-836.302781,2098.215938,
+ 0.374869,-0.353462,0.857052,1029.509968,-826.416226,2113.001057,
+ 0.529849,-0.456252,0.714909,1045.662989,-836.302781,2098.215938,
+ 0.546331,-0.318715,0.77456,1045.662989,-823.190494,2105.21932,
+ 0.529849,-0.456252,0.714909,1045.662989,-836.302781,2098.215938,
+ 0.374869,-0.353462,0.857052,1029.509968,-826.416226,2113.001057,
+ 0.374908,-0.513801,0.771655,1029.509968,-840.985818,2105.219317,
+ 0.190537,-0.374884,0.90728,1011.982852,-828.402613,2117.793006,
+ 0.374908,-0.513801,0.771655,1029.509968,-840.985818,2105.219317,
+ 0.374869,-0.353462,0.857052,1029.509968,-826.416226,2113.001057,
+ 0.374908,-0.513801,0.771655,1029.509968,-840.985818,2105.219317,
+ 0.190537,-0.374884,0.90728,1011.982852,-828.402613,2117.793006,
+ 0.190559,-0.544614,0.816751,1011.982852,-843.869605,2109.531957,
+ 0.095439,-0.410655,0.906782,993.755282,-829.072173,2119.408248,
+ 0.190559,-0.544614,0.816751,1011.982852,-843.869605,2109.531957,
+ 0.190537,-0.374884,0.90728,1011.982852,-828.402613,2117.793006,
+ 0.190559,-0.544614,0.816751,1011.982852,-843.869605,2109.531957,
+ 0.095439,-0.410655,0.906782,993.755282,-829.072173,2119.408248,
+ 0.095452,-0.57961,0.809284,993.755282,-844.841655,2110.985636,
+ 0,-0.527706,0.849427,947.039602,-911.28317,2210.34745,
+ 0,-0.412538,0.91094,993.755282,-874.837884,2229.81318,
+ 0,-0.351934,0.936025,947.039602,-874.837884,2229.81318,
+ 0,-0.412538,0.91094,993.755282,-874.837884,2229.81318,
+ 0,-0.527706,0.849427,947.039602,-911.28317,2210.34745,
+ 0,-0.582269,0.812996,993.755282,-911.28317,2210.34745,
+ -0.698105,-0.377833,0.608187,947.039602,-911.28317,2210.34745,
+ -0.698076,-0.295386,0.652255,900.323922,-857.388373,2187.718082,
+ -0.698122,-0.416891,0.58209,900.323922,-885.950406,2172.462863,
+ -0.698076,-0.295386,0.652255,900.323922,-857.388373,2187.718082,
+ -0.698105,-0.377833,0.608187,947.039602,-911.28317,2210.34745,
+ -0.698064,-0.251996,0.670228,947.039602,-874.837884,2229.81318,
+ 0.698076,-0.295386,0.652255,900.323922,-857.388373,2187.718082,
+ 0.698105,-0.377833,0.608187,853.608242,-911.28317,2210.34745,
+ 0.698122,-0.416891,0.58209,900.323922,-885.950406,2172.462863,
+ 0.698105,-0.377833,0.608187,853.608242,-911.28317,2210.34745,
+ 0.698076,-0.295386,0.652255,900.323922,-857.388373,2187.718082,
+ 0.698064,-0.251996,0.670228,853.608242,-874.837884,2229.81318,
+ -0.698105,-0.377833,0.608187,853.608242,-911.28317,2210.34745,
+ -0.698076,-0.295386,0.652255,806.892562,-857.388373,2187.718082,
+ -0.698122,-0.416891,0.58209,806.892562,-885.950406,2172.462863,
+ -0.698076,-0.295386,0.652255,806.892562,-857.388373,2187.718082,
+ -0.698105,-0.377833,0.608187,853.608242,-911.28317,2210.34745,
+ -0.698064,-0.251996,0.670228,853.608242,-874.837884,2229.81318,
+ 0.698076,-0.295386,0.652255,806.892562,-857.388373,2187.718082,
+ 0.698105,-0.377833,0.608187,760.176882,-911.28317,2210.34745,
+ 0.698122,-0.416891,0.58209,806.892562,-885.950406,2172.462863,
+ 0.698105,-0.377833,0.608187,760.176882,-911.28317,2210.34745,
+ 0.698076,-0.295386,0.652255,806.892562,-857.388373,2187.718082,
+ 0.698064,-0.251996,0.670228,760.176882,-874.837884,2229.81318,
+ -0.698105,-0.377833,0.608187,760.176882,-911.28317,2210.34745,
+ -0.698076,-0.295386,0.652255,713.461202,-857.388373,2187.718082,
+ -0.698122,-0.416891,0.58209,713.461202,-885.950406,2172.462863,
+ -0.698076,-0.295386,0.652255,713.461202,-857.388373,2187.718082,
+ -0.698105,-0.377833,0.608187,760.176882,-911.28317,2210.34745,
+ -0.698064,-0.251996,0.670228,760.176882,-874.837884,2229.81318,
+ 0.698076,-0.295386,0.652255,713.461202,-857.388373,2187.718082,
+ 0.698105,-0.377833,0.608187,666.745522,-911.28317,2210.34745,
+ 0.698122,-0.416891,0.58209,713.461202,-885.950406,2172.462863,
+ 0.698105,-0.377833,0.608187,666.745522,-911.28317,2210.34745,
+ 0.698076,-0.295386,0.652255,713.461202,-857.388373,2187.718082,
+ 0.698064,-0.251996,0.670228,666.745522,-874.837884,2229.81318,
+ 0,-0.527706,0.849427,635.537065,-911.28317,2210.34745,
+ 0,-0.412538,0.91094,666.745522,-874.837884,2229.81318,
+ 0,-0.351934,0.936025,635.537065,-874.837884,2229.81318,
+ 0,-0.412538,0.91094,666.745522,-874.837884,2229.81318,
+ 0,-0.527706,0.849427,635.537065,-911.28317,2210.34745,
+ 0,-0.582269,0.812996,666.745522,-911.28317,2210.34745,
+ 0,-0.527706,0.849427,200.646178,-885.950406,2172.462863,
+ 0,-0.412538,0.91094,635.537065,-857.388373,2187.718082,
+ 0,-0.351934,0.936025,200.646178,-857.388373,2187.718082,
+ 0,-0.412538,0.91094,635.537065,-857.388373,2187.718082,
+ 0,-0.527706,0.849427,200.646178,-885.950406,2172.462863,
+ 0,-0.582269,0.812996,635.537065,-885.950406,2172.462863,
+ 0,-0.527706,0.849427,97.301517,-841.232085,2105.587604,
+ 0,-0.412538,0.91094,200.646178,-826.585858,2113.410276,
+ 0,-0.351934,0.936025,97.301517,-826.585858,2113.410276,
+ 0,-0.412538,0.91094,200.646178,-826.585858,2113.410276,
+ 0,-0.527706,0.849427,97.301517,-841.232085,2105.587604,
+ 0,-0.582269,0.812996,200.646178,-841.232085,2105.587604,
+ 0,-0.527706,0.849427,45.307526,-870.164903,2148.855992,
+ 0,-0.412538,0.91094,97.301517,-846.515129,2161.487533,
+ 0,-0.351934,0.936025,45.307526,-846.515129,2161.487533,
+ 0,-0.412538,0.91094,97.301517,-846.515129,2161.487533,
+ 0,-0.527706,0.849427,45.307526,-870.164903,2148.855992,
+ 0,-0.582269,0.812996,97.301517,-870.164903,2148.855992,
+ 0.975629,-0.089314,0.200429,1085.391405,-800.976542,2051.630513,
+ 0.920575,-0.219382,0.323131,1080.0746,-813.559722,2064.204197,
+ 0.975635,-0.126671,0.179142,1085.391405,-804.053121,2049.987287,
+ 0.920575,-0.219382,0.323131,1080.0746,-813.559722,2064.204197,
+ 0.975629,-0.089314,0.200429,1085.391405,-800.976542,2051.630513,
+ 0.920558,-0.152171,0.359746,1080.0746,-807.524802,2067.427498,
+ 0.920575,-0.219382,0.323131,1080.0746,-813.559722,2064.204197,
+ 0.825279,-0.401066,0.397569,1071.440608,-830.000457,2071.009044,
+ 0.920595,-0.278166,0.274097,1080.0746,-818.849373,2059.866364,
+ 0.825279,-0.401066,0.397569,1071.440608,-830.000457,2071.009044,
+ 0.920575,-0.219382,0.323131,1080.0746,-813.559722,2064.204197,
+ 0.825241,-0.315841,0.468211,1071.440608,-822.321072,2077.306602,
+ 0.825241,-0.315841,0.468211,1071.440608,-822.321072,2077.306602,
+ 0.698637,-0.507317,0.504516,1059.821204,-839.77446,2080.775682,
+ 0.825279,-0.401066,0.397569,1071.440608,-830.000457,2071.009044,
+ 0.698637,-0.507317,0.504516,1059.821204,-839.77446,2080.775682,
+ 0.825241,-0.315841,0.468211,1071.440608,-822.321072,2077.306602,
+ 0.688423,-0.395152,0.608218,1059.821204,-830.000457,2088.790953,
+ 0.688423,-0.395152,0.608218,1059.821204,-830.000457,2088.790953,
+ 0.546216,-0.572323,0.611633,1045.662989,-847.795796,2088.790972,
+ 0.698637,-0.507317,0.504516,1059.821204,-839.77446,2080.775682,
+ 0.546216,-0.572323,0.611633,1045.662989,-847.795796,2088.790972,
+ 0.688423,-0.395152,0.608218,1059.821204,-830.000457,2088.790953,
+ 0.529849,-0.456252,0.714909,1045.662989,-836.302781,2098.215938,
+ 0.374908,-0.513801,0.771655,1029.509968,-840.985818,2105.219317,
+ 0.546216,-0.572323,0.611633,1045.662989,-847.795796,2088.790972,
+ 0.529849,-0.456252,0.714909,1045.662989,-836.302781,2098.215938,
+ 0.546216,-0.572323,0.611633,1045.662989,-847.795796,2088.790972,
+ 0.374908,-0.513801,0.771655,1029.509968,-840.985818,2105.219317,
+ 0.374954,-0.654439,0.656596,1029.509968,-853.756172,2094.746857,
+ 0.190559,-0.544614,0.816751,1011.982852,-843.869605,2109.531957,
+ 0.374954,-0.654439,0.656596,1029.509968,-853.756172,2094.746857,
+ 0.374908,-0.513801,0.771655,1029.509968,-840.985818,2105.219317,
+ 0.374954,-0.654439,0.656596,1029.509968,-853.756172,2094.746857,
+ 0.190559,-0.544614,0.816751,1011.982852,-843.869605,2109.531957,
+ 0.190585,-0.693466,0.694825,1011.982852,-857.426537,2098.414455,
+ 0.095452,-0.57961,0.809284,993.755282,-844.841655,2110.985636,
+ 0.190585,-0.693466,0.694825,1011.982852,-857.426537,2098.414455,
+ 0.190559,-0.544614,0.816751,1011.982852,-843.869605,2109.531957,
+ 0.190585,-0.693466,0.694825,1011.982852,-857.426537,2098.414455,
+ 0.095452,-0.57961,0.809284,993.755282,-844.841655,2110.985636,
+ 0.095465,-0.726343,0.680671,993.755282,-858.663722,2099.650708,
+ 0,-0.706845,0.707368,947.039602,-943.22773,2184.150985,
+ 0,-0.582269,0.812996,993.755282,-911.28317,2210.34745,
+ 0,-0.527706,0.849427,947.039602,-911.28317,2210.34745,
+ 0,-0.582269,0.812996,993.755282,-911.28317,2210.34745,
+ 0,-0.706845,0.707368,947.039602,-943.22773,2184.150985,
+ 0,-0.706845,0.707368,993.755282,-943.22773,2184.150985,
+ -0.698156,-0.489171,0.522771,947.039602,-943.22773,2184.150985,
+ -0.698122,-0.416891,0.58209,900.323922,-885.950406,2172.462863,
+ -0.698174,-0.522394,0.489549,900.323922,-910.985237,2151.932791,
+ -0.698122,-0.416891,0.58209,900.323922,-885.950406,2172.462863,
+ -0.698156,-0.489171,0.522771,947.039602,-943.22773,2184.150985,
+ -0.698105,-0.377833,0.608187,947.039602,-911.28317,2210.34745,
+ 0.698122,-0.416891,0.58209,900.323922,-885.950406,2172.462863,
+ 0.698156,-0.489171,0.522771,853.608242,-943.22773,2184.150985,
+ 0.698174,-0.522394,0.489549,900.323922,-910.985237,2151.932791,
+ 0.698156,-0.489171,0.522771,853.608242,-943.22773,2184.150985,
+ 0.698122,-0.416891,0.58209,900.323922,-885.950406,2172.462863,
+ 0.698105,-0.377833,0.608187,853.608242,-911.28317,2210.34745,
+ -0.698156,-0.489171,0.522771,853.608242,-943.22773,2184.150985,
+ -0.698122,-0.416891,0.58209,806.892562,-885.950406,2172.462863,
+ -0.698174,-0.522394,0.489549,806.892562,-910.985237,2151.932791,
+ -0.698122,-0.416891,0.58209,806.892562,-885.950406,2172.462863,
+ -0.698156,-0.489171,0.522771,853.608242,-943.22773,2184.150985,
+ -0.698105,-0.377833,0.608187,853.608242,-911.28317,2210.34745,
+ 0.698122,-0.416891,0.58209,806.892562,-885.950406,2172.462863,
+ 0.698156,-0.489171,0.522771,760.176882,-943.22773,2184.150985,
+ 0.698174,-0.522394,0.489549,806.892562,-910.985237,2151.932791,
+ 0.698156,-0.489171,0.522771,760.176882,-943.22773,2184.150985,
+ 0.698122,-0.416891,0.58209,806.892562,-885.950406,2172.462863,
+ 0.698105,-0.377833,0.608187,760.176882,-911.28317,2210.34745,
+ -0.698156,-0.489171,0.522771,760.176882,-943.22773,2184.150985,
+ -0.698122,-0.416891,0.58209,713.461202,-885.950406,2172.462863,
+ -0.698174,-0.522394,0.489549,713.461202,-910.985237,2151.932791,
+ -0.698122,-0.416891,0.58209,713.461202,-885.950406,2172.462863,
+ -0.698156,-0.489171,0.522771,760.176882,-943.22773,2184.150985,
+ -0.698105,-0.377833,0.608187,760.176882,-911.28317,2210.34745,
+ 0.698122,-0.416891,0.58209,713.461202,-885.950406,2172.462863,
+ 0.698156,-0.489171,0.522771,666.745522,-943.22773,2184.150985,
+ 0.698174,-0.522394,0.489549,713.461202,-910.985237,2151.932791,
+ 0.698156,-0.489171,0.522771,666.745522,-943.22773,2184.150985,
+ 0.698122,-0.416891,0.58209,713.461202,-885.950406,2172.462863,
+ 0.698105,-0.377833,0.608187,666.745522,-911.28317,2210.34745,
+ 0,-0.706845,0.707368,635.537065,-943.22773,2184.150985,
+ 0,-0.582269,0.812996,666.745522,-911.28317,2210.34745,
+ 0,-0.527706,0.849427,635.537065,-911.28317,2210.34745,
+ 0,-0.582269,0.812996,666.745522,-911.28317,2210.34745,
+ 0,-0.706845,0.707368,635.537065,-943.22773,2184.150985,
+ 0,-0.706845,0.707368,666.745522,-943.22773,2184.150985,
+ 0,-0.706845,0.707368,200.646178,-910.985237,2151.932791,
+ 0,-0.582269,0.812996,635.537065,-885.950406,2172.462863,
+ 0,-0.527706,0.849427,200.646178,-885.950406,2172.462863,
+ 0,-0.582269,0.812996,635.537065,-885.950406,2172.462863,
+ 0,-0.706845,0.707368,200.646178,-910.985237,2151.932791,
+ 0,-0.706845,0.707368,635.537065,-910.985237,2151.932791,
+ 0,-0.706845,0.707368,97.301517,-854.069611,2095.060059,
+ 0,-0.582269,0.812996,200.646178,-841.232085,2105.587604,
+ 0,-0.527706,0.849427,97.301517,-841.232085,2105.587604,
+ 0,-0.582269,0.812996,200.646178,-841.232085,2105.587604,
+ 0,-0.706845,0.707368,97.301517,-854.069611,2095.060059,
+ 0,-0.706845,0.707368,200.646178,-854.069611,2095.060059,
+ 0,-0.706845,0.707368,45.307526,-890.894103,2131.856798,
+ 0,-0.582269,0.812996,97.301517,-870.164903,2148.855992,
+ 0,-0.527706,0.849427,45.307526,-870.164903,2148.855992,
+ 0,-0.582269,0.812996,97.301517,-870.164903,2148.855992,
+ 0,-0.706845,0.707368,45.307526,-890.894103,2131.856798,
+ 0,-0.706845,0.707368,97.301517,-890.894103,2131.856798,
+ 0.975635,-0.126671,0.179142,1085.391405,-804.053121,2049.987287,
+ 0.920595,-0.278166,0.274097,1080.0746,-818.849373,2059.866364,
+ 0.975641,-0.159161,0.15097,1085.391405,-806.749765,2047.775876,
+ 0.920595,-0.278166,0.274097,1080.0746,-818.849373,2059.866364,
+ 0.975635,-0.126671,0.179142,1085.391405,-804.053121,2049.987287,
+ 0.920575,-0.219382,0.323131,1080.0746,-813.559722,2064.204197,
+ 0.920595,-0.278166,0.274097,1080.0746,-818.849373,2059.866364,
+ 0.825316,-0.470886,0.311641,1071.440608,-836.302765,2063.335447,
+ 0.920615,-0.326262,0.214527,1080.0746,-823.190478,2054.5807,
+ 0.825316,-0.470886,0.311641,1071.440608,-836.302765,2063.335447,
+ 0.920595,-0.278166,0.274097,1080.0746,-818.849373,2059.866364,
+ 0.825279,-0.401066,0.397569,1071.440608,-830.000457,2071.009044,
+ 0.825279,-0.401066,0.397569,1071.440608,-830.000457,2071.009044,
+ 0.712575,-0.576041,0.400516,1059.821204,-847.795777,2071.009045,
+ 0.825316,-0.470886,0.311641,1071.440608,-836.302765,2063.335447,
+ 0.712575,-0.576041,0.400516,1059.821204,-847.795777,2071.009045,
+ 0.825279,-0.401066,0.397569,1071.440608,-830.000457,2071.009044,
+ 0.698637,-0.507317,0.504516,1059.821204,-839.77446,2080.775682,
+ 0.698637,-0.507317,0.504516,1059.821204,-839.77446,2080.775682,
+ 0.558056,-0.682755,0.471614,1045.662989,-857.22787,2077.306618,
+ 0.712575,-0.576041,0.400516,1059.821204,-847.795777,2071.009045,
+ 0.558056,-0.682755,0.471614,1045.662989,-857.22787,2077.306618,
+ 0.698637,-0.507317,0.504516,1059.821204,-839.77446,2080.775682,
+ 0.546216,-0.572323,0.611633,1045.662989,-847.795796,2088.790972,
+ 0.558056,-0.682755,0.471614,1045.662989,-857.22787,2077.306618,
+ 0.374954,-0.654439,0.656596,1029.509968,-853.756172,2094.746857,
+ 0.374999,-0.769959,0.516274,1029.509968,-864.236531,2081.986126,
+ 0.374954,-0.654439,0.656596,1029.509968,-853.756172,2094.746857,
+ 0.558056,-0.682755,0.471614,1045.662989,-857.22787,2077.306618,
+ 0.546216,-0.572323,0.611633,1045.662989,-847.795796,2088.790972,
+ 0.374999,-0.769959,0.516274,1029.509968,-864.236531,2081.986126,
+ 0.190585,-0.693466,0.694825,1011.982852,-857.426537,2098.414455,
+ 0.190611,-0.815706,0.54616,1011.982852,-868.552424,2084.86774,
+ 0.190585,-0.693466,0.694825,1011.982852,-857.426537,2098.414455,
+ 0.374999,-0.769959,0.516274,1029.509968,-864.236531,2081.986126,
+ 0.374954,-0.654439,0.656596,1029.509968,-853.756172,2094.746857,
+ 0.190611,-0.815706,0.54616,1011.982852,-868.552424,2084.86774,
+ 0.095465,-0.726343,0.680671,993.755282,-858.663722,2099.650708,
+ 0.095479,-0.845197,0.525857,993.755282,-870.007199,2085.839058,
+ 0.095465,-0.726343,0.680671,993.755282,-858.663722,2099.650708,
+ 0.190611,-0.815706,0.54616,1011.982852,-868.552424,2084.86774,
+ 0.190585,-0.693466,0.694825,1011.982852,-857.426537,2098.414455,
+ 0,-0.812587,0.582839,993.755282,-969.443953,2152.230499,
+ 0,-0.706845,0.707368,947.039602,-943.22773,2184.150985,
+ 0,-0.849076,0.52827,947.039602,-969.443953,2152.230499,
+ 0,-0.706845,0.707368,947.039602,-943.22773,2184.150985,
+ 0,-0.812587,0.582839,993.755282,-969.443953,2152.230499,
+ 0,-0.706845,0.707368,993.755282,-943.22773,2184.150985,
+ -0.698208,-0.581726,0.417253,947.039602,-969.443953,2152.230499,
+ -0.698174,-0.522394,0.489549,900.323922,-910.985237,2151.932791,
+ -0.698225,-0.607835,0.378179,900.323922,-931.530793,2126.916827,
+ -0.698174,-0.522394,0.489549,900.323922,-910.985237,2151.932791,
+ -0.698208,-0.581726,0.417253,947.039602,-969.443953,2152.230499,
+ -0.698156,-0.489171,0.522771,947.039602,-943.22773,2184.150985,
+ 0.698174,-0.522394,0.489549,900.323922,-910.985237,2151.932791,
+ 0.698208,-0.581726,0.417253,853.608242,-969.443953,2152.230499,
+ 0.698225,-0.607835,0.378179,900.323922,-931.530793,2126.916827,
+ 0.698208,-0.581726,0.417253,853.608242,-969.443953,2152.230499,
+ 0.698174,-0.522394,0.489549,900.323922,-910.985237,2151.932791,
+ 0.698156,-0.489171,0.522771,853.608242,-943.22773,2184.150985,
+ -0.698208,-0.581726,0.417253,853.608242,-969.443953,2152.230499,
+ -0.698174,-0.522394,0.489549,806.892562,-910.985237,2151.932791,
+ -0.698225,-0.607835,0.378179,806.892562,-931.530793,2126.916827,
+ -0.698174,-0.522394,0.489549,806.892562,-910.985237,2151.932791,
+ -0.698208,-0.581726,0.417253,853.608242,-969.443953,2152.230499,
+ -0.698156,-0.489171,0.522771,853.608242,-943.22773,2184.150985,
+ 0.698174,-0.522394,0.489549,806.892562,-910.985237,2151.932791,
+ 0.698208,-0.581726,0.417253,760.176882,-969.443953,2152.230499,
+ 0.698225,-0.607835,0.378179,806.892562,-931.530793,2126.916827,
+ 0.698208,-0.581726,0.417253,760.176882,-969.443953,2152.230499,
+ 0.698174,-0.522394,0.489549,806.892562,-910.985237,2151.932791,
+ 0.698156,-0.489171,0.522771,760.176882,-943.22773,2184.150985,
+ -0.698208,-0.581726,0.417253,760.176882,-969.443953,2152.230499,
+ -0.698174,-0.522394,0.489549,713.461202,-910.985237,2151.932791,
+ -0.698225,-0.607835,0.378179,713.461202,-931.530793,2126.916827,
+ -0.698174,-0.522394,0.489549,713.461202,-910.985237,2151.932791,
+ -0.698208,-0.581726,0.417253,760.176882,-969.443953,2152.230499,
+ -0.698156,-0.489171,0.522771,760.176882,-943.22773,2184.150985,
+ 0.698174,-0.522394,0.489549,713.461202,-910.985237,2151.932791,
+ 0.698208,-0.581726,0.417253,666.745522,-969.443953,2152.230499,
+ 0.698225,-0.607835,0.378179,713.461202,-931.530793,2126.916827,
+ 0.698208,-0.581726,0.417253,666.745522,-969.443953,2152.230499,
+ 0.698174,-0.522394,0.489549,713.461202,-910.985237,2151.932791,
+ 0.698156,-0.489171,0.522771,666.745522,-943.22773,2184.150985,
+ 0,-0.812587,0.582839,666.745522,-969.443953,2152.230499,
+ 0,-0.706845,0.707368,635.537065,-943.22773,2184.150985,
+ 0,-0.849076,0.52827,635.537065,-969.443953,2152.230499,
+ 0,-0.706845,0.707368,635.537065,-943.22773,2184.150985,
+ 0,-0.812587,0.582839,666.745522,-969.443953,2152.230499,
+ 0,-0.706845,0.707368,666.745522,-943.22773,2184.150985,
+ 0,-0.812587,0.582839,635.537065,-931.530793,2126.916827,
+ 0,-0.706845,0.707368,200.646178,-910.985237,2151.932791,
+ 0,-0.849076,0.52827,200.646178,-931.530793,2126.916827,
+ 0,-0.706845,0.707368,200.646178,-910.985237,2151.932791,
+ 0,-0.812587,0.582839,635.537065,-931.530793,2126.916827,
+ 0,-0.706845,0.707368,635.537065,-910.985237,2151.932791,
+ 0,-0.812587,0.582839,200.646178,-864.605096,2082.232208,
+ 0,-0.706845,0.707368,97.301517,-854.069611,2095.060059,
+ 0,-0.849076,0.52827,97.301517,-864.605096,2082.232208,
+ 0,-0.706845,0.707368,97.301517,-854.069611,2095.060059,
+ 0,-0.812587,0.582839,200.646178,-864.605096,2082.232208,
+ 0,-0.706845,0.707368,200.646178,-854.069611,2095.060059,
+ 0,-0.812587,0.582839,97.301517,-907.906118,2111.143221,
+ 0,-0.706845,0.707368,45.307526,-890.894103,2131.856798,
+ 0,-0.849076,0.52827,45.307526,-907.906118,2111.143221,
+ 0,-0.706845,0.707368,45.307526,-890.894103,2131.856798,
+ 0,-0.812587,0.582839,97.301517,-907.906118,2111.143221,
+ 0,-0.706845,0.707368,97.301517,-890.894103,2131.856798,
+ 0.975641,-0.159161,0.15097,1085.391405,-806.749765,2047.775876,
+ 0.920615,-0.326262,0.214527,1080.0746,-823.190478,2054.5807,
+ 0.975648,-0.185535,0.116996,1085.391405,-808.962844,2045.081264,
+ 0.920615,-0.326262,0.214527,1080.0746,-823.190478,2054.5807,
+ 0.975641,-0.159161,0.15097,1085.391405,-806.749765,2047.775876,
+ 0.920595,-0.278166,0.274097,1080.0746,-818.849373,2059.866364,
+ 0.920615,-0.326262,0.214527,1080.0746,-823.190478,2054.5807,
+ 0.825347,-0.522611,0.213727,1071.440608,-840.985802,2054.580703,
+ 0.920631,-0.361821,0.14671,1080.0746,-826.416209,2048.550328,
+ 0.825347,-0.522611,0.213727,1071.440608,-840.985802,2054.580703,
+ 0.920615,-0.326262,0.214527,1080.0746,-823.190478,2054.5807,
+ 0.825316,-0.470886,0.311641,1071.440608,-836.302765,2063.335447,
+ 0.825316,-0.470886,0.311641,1071.440608,-836.302765,2063.335447,
+ 0.698533,-0.651683,0.295568,1059.821204,-853.756153,2059.866369,
+ 0.825347,-0.522611,0.213727,1071.440608,-840.985802,2054.580703,
+ 0.698533,-0.651683,0.295568,1059.821204,-853.756153,2059.866369,
+ 0.825316,-0.470886,0.311641,1071.440608,-836.302765,2063.335447,
+ 0.712575,-0.576041,0.400516,1059.821204,-847.795777,2071.009045,
+ 0.698533,-0.651683,0.295568,1059.821204,-853.756153,2059.866369,
+ 0.558056,-0.682755,0.471614,1045.662989,-857.22787,2077.306618,
+ 0.546532,-0.77294,0.322284,1045.662989,-864.236534,2064.204213,
+ 0.558056,-0.682755,0.471614,1045.662989,-857.22787,2077.306618,
+ 0.698533,-0.651683,0.295568,1059.821204,-853.756153,2059.866369,
+ 0.712575,-0.576041,0.400516,1059.821204,-847.795777,2071.009045,
+ 0.546532,-0.77294,0.322284,1045.662989,-864.236534,2064.204213,
+ 0.374999,-0.769959,0.516274,1029.509968,-864.236531,2081.986126,
+ 0.375038,-0.855898,0.356068,1029.509968,-872.024141,2067.427515,
+ 0.374999,-0.769959,0.516274,1029.509968,-864.236531,2081.986126,
+ 0.546532,-0.77294,0.322284,1045.662989,-864.236534,2064.204213,
+ 0.558056,-0.682755,0.471614,1045.662989,-857.22787,2077.306618,
+ 0.375038,-0.855898,0.356068,1029.509968,-872.024141,2067.427515,
+ 0.190611,-0.815706,0.54616,1011.982852,-868.552424,2084.86774,
+ 0.190633,-0.906609,0.376455,1011.982852,-876.819704,2069.412405,
+ 0.190611,-0.815706,0.54616,1011.982852,-868.552424,2084.86774,
+ 0.375038,-0.855898,0.356068,1029.509968,-872.024141,2067.427515,
+ 0.374999,-0.769959,0.516274,1029.509968,-864.236531,2081.986126,
+ 0.190633,-0.906609,0.376455,1011.982852,-876.819704,2069.412405,
+ 0.095479,-0.845197,0.525857,993.755282,-870.007199,2085.839058,
+ 0.09549,-0.931577,0.35078,993.755282,-878.436163,2070.08146,
+ 0.095479,-0.845197,0.525857,993.755282,-870.007199,2085.839058,
+ 0.190633,-0.906609,0.376455,1011.982852,-876.819704,2069.412405,
+ 0.190611,-0.815706,0.54616,1011.982852,-868.552424,2084.86774,
+ 0,-0.91071,0.413047,993.755282,-988.924364,2115.81268,
+ 0,-0.849076,0.52827,947.039602,-969.443953,2152.230499,
+ 0,-0.935853,0.352391,947.039602,-988.924364,2115.81268,
+ 0,-0.849076,0.52827,947.039602,-969.443953,2152.230499,
+ 0,-0.91071,0.413047,993.755282,-988.924364,2115.81268,
+ 0,-0.812587,0.582839,993.755282,-969.443953,2152.230499,
+ -0.698254,-0.651931,0.295681,947.039602,-988.924364,2115.81268,
+ -0.698225,-0.607835,0.378179,900.323922,-931.530793,2126.916827,
+ -0.698266,-0.669919,0.252256,900.323922,-946.797518,2098.376319,
+ -0.698225,-0.607835,0.378179,900.323922,-931.530793,2126.916827,
+ -0.698254,-0.651931,0.295681,947.039602,-988.924364,2115.81268,
+ -0.698208,-0.581726,0.417253,947.039602,-969.443953,2152.230499,
+ 0.698225,-0.607835,0.378179,900.323922,-931.530793,2126.916827,
+ 0.698254,-0.651931,0.295681,853.608242,-988.924364,2115.81268,
+ 0.698266,-0.669919,0.252256,900.323922,-946.797518,2098.376319,
+ 0.698254,-0.651931,0.295681,853.608242,-988.924364,2115.81268,
+ 0.698225,-0.607835,0.378179,900.323922,-931.530793,2126.916827,
+ 0.698208,-0.581726,0.417253,853.608242,-969.443953,2152.230499,
+ -0.698254,-0.651931,0.295681,853.608242,-988.924364,2115.81268,
+ -0.698225,-0.607835,0.378179,806.892562,-931.530793,2126.916827,
+ -0.698266,-0.669919,0.252256,806.892562,-946.797518,2098.376319,
+ -0.698225,-0.607835,0.378179,806.892562,-931.530793,2126.916827,
+ -0.698254,-0.651931,0.295681,853.608242,-988.924364,2115.81268,
+ -0.698208,-0.581726,0.417253,853.608242,-969.443953,2152.230499,
+ 0.698225,-0.607835,0.378179,806.892562,-931.530793,2126.916827,
+ 0.698254,-0.651931,0.295681,760.176882,-988.924364,2115.81268,
+ 0.698266,-0.669919,0.252256,806.892562,-946.797518,2098.376319,
+ 0.698254,-0.651931,0.295681,760.176882,-988.924364,2115.81268,
+ 0.698225,-0.607835,0.378179,806.892562,-931.530793,2126.916827,
+ 0.698208,-0.581726,0.417253,760.176882,-969.443953,2152.230499,
+ -0.698254,-0.651931,0.295681,760.176882,-988.924364,2115.81268,
+ -0.698225,-0.607835,0.378179,713.461202,-931.530793,2126.916827,
+ -0.698266,-0.669919,0.252256,713.461202,-946.797518,2098.376319,
+ -0.698225,-0.607835,0.378179,713.461202,-931.530793,2126.916827,
+ -0.698254,-0.651931,0.295681,760.176882,-988.924364,2115.81268,
+ -0.698208,-0.581726,0.417253,760.176882,-969.443953,2152.230499,
+ 0.698225,-0.607835,0.378179,713.461202,-931.530793,2126.916827,
+ 0.698254,-0.651931,0.295681,666.745522,-988.924364,2115.81268,
+ 0.698266,-0.669919,0.252256,713.461202,-946.797518,2098.376319,
+ 0.698254,-0.651931,0.295681,666.745522,-988.924364,2115.81268,
+ 0.698225,-0.607835,0.378179,713.461202,-931.530793,2126.916827,
+ 0.698208,-0.581726,0.417253,666.745522,-969.443953,2152.230499,
+ 0,-0.91071,0.413047,666.745522,-988.924364,2115.81268,
+ 0,-0.849076,0.52827,635.537065,-969.443953,2152.230499,
+ 0,-0.935853,0.352391,635.537065,-988.924364,2115.81268,
+ 0,-0.849076,0.52827,635.537065,-969.443953,2152.230499,
+ 0,-0.91071,0.413047,666.745522,-988.924364,2115.81268,
+ 0,-0.812587,0.582839,666.745522,-969.443953,2152.230499,
+ 0,-0.91071,0.413047,635.537065,-946.797518,2098.376319,
+ 0,-0.849076,0.52827,200.646178,-931.530793,2126.916827,
+ 0,-0.935853,0.352391,200.646178,-946.797518,2098.376319,
+ 0,-0.849076,0.52827,200.646178,-931.530793,2126.916827,
+ 0,-0.91071,0.413047,635.537065,-946.797518,2098.376319,
+ 0,-0.812587,0.582839,635.537065,-931.530793,2126.916827,
+ 0,-0.91071,0.413047,200.646178,-872.433668,2067.597018,
+ 0,-0.849076,0.52827,97.301517,-864.605096,2082.232208,
+ 0,-0.935853,0.352391,97.301517,-872.433668,2067.597018,
+ 0,-0.849076,0.52827,97.301517,-864.605096,2082.232208,
+ 0,-0.91071,0.413047,200.646178,-872.433668,2067.597018,
+ 0,-0.812587,0.582839,200.646178,-864.605096,2082.232208,
+ 0,-0.91071,0.413047,97.301517,-920.547185,2087.51127,
+ 0,-0.849076,0.52827,45.307526,-907.906118,2111.143221,
+ 0,-0.935853,0.352391,45.307526,-920.547185,2087.51127,
+ 0,-0.849076,0.52827,45.307526,-907.906118,2111.143221,
+ 0,-0.91071,0.413047,97.301517,-920.547185,2087.51127,
+ 0,-0.812587,0.582839,97.301517,-907.906118,2111.143221,
+ 0.975648,-0.185535,0.116996,1085.391405,-808.962844,2045.081264,
+ 0.920631,-0.361821,0.14671,1080.0746,-826.416209,2048.550328,
+ 0.975653,-0.204779,0.078525,1085.391405,-810.60731,2042.007003,
+ 0.920631,-0.361821,0.14671,1080.0746,-826.416209,2048.550328,
+ 0.975648,-0.185535,0.116996,1085.391405,-808.962844,2045.081264,
+ 0.920615,-0.326262,0.214527,1080.0746,-823.190478,2054.5807,
+ 0.920631,-0.361821,0.14671,1080.0746,-826.416209,2048.550328,
+ 0.825368,-0.554249,0.10759,1071.440608,-843.869602,2045.081252,
+ 0.920642,-0.383474,0.073251,1080.0746,-828.402605,2042.006994,
+ 0.825368,-0.554249,0.10759,1071.440608,-843.869602,2045.081252,
+ 0.920631,-0.361821,0.14671,1080.0746,-826.416209,2048.550328,
+ 0.825347,-0.522611,0.213727,1071.440608,-840.985802,2054.580703,
+ 0.825347,-0.522611,0.213727,1071.440608,-840.985802,2054.580703,
+ 0.698565,-0.696813,0.162664,1059.821204,-857.426535,2047.775861,
+ 0.825368,-0.554249,0.10759,1071.440608,-843.869602,2045.081252,
+ 0.698565,-0.696813,0.162664,1059.821204,-857.426535,2047.775861,
+ 0.825347,-0.522611,0.213727,1071.440608,-840.985802,2054.580703,
+ 0.698533,-0.651683,0.295568,1059.821204,-853.756153,2059.866369,
+ 0.698565,-0.696813,0.162664,1059.821204,-857.426535,2047.775861,
+ 0.546532,-0.77294,0.322284,1045.662989,-864.236534,2064.204213,
+ 0.546562,-0.820963,0.165195,1045.662989,-868.552448,2049.987275,
+ 0.546532,-0.77294,0.322284,1045.662989,-864.236534,2064.204213,
+ 0.698565,-0.696813,0.162664,1059.821204,-857.426535,2047.775861,
+ 0.698533,-0.651683,0.295568,1059.821204,-853.756153,2059.866369,
+ 0.546562,-0.820963,0.165195,1045.662989,-868.552448,2049.987275,
+ 0.375038,-0.855898,0.356068,1029.509968,-872.024141,2067.427515,
+ 0.375063,-0.90893,0.182138,1029.509968,-876.819727,2051.6305,
+ 0.375038,-0.855898,0.356068,1029.509968,-872.024141,2067.427515,
+ 0.546562,-0.820963,0.165195,1045.662989,-868.552448,2049.987275,
+ 0.546532,-0.77294,0.322284,1045.662989,-864.236534,2064.204213,
+ 0.375063,-0.90893,0.182138,1029.509968,-876.819727,2051.6305,
+ 0.190633,-0.906609,0.376455,1011.982852,-876.819704,2069.412405,
+ 0.190647,-0.962652,0.192235,1011.982852,-881.910669,2052.642388,
+ 0.190633,-0.906609,0.376455,1011.982852,-876.819704,2069.412405,
+ 0.375063,-0.90893,0.182138,1029.509968,-876.819727,2051.6305,
+ 0.375038,-0.855898,0.356068,1029.509968,-872.024141,2067.427515,
+ 0.190647,-0.962652,0.192235,1011.982852,-881.910669,2052.642388,
+ 0.09549,-0.931577,0.35078,993.755282,-878.436163,2070.08146,
+ 0.095497,-0.98213,0.162176,993.755282,-883.626694,2052.983469,
+ 0.09549,-0.931577,0.35078,993.755282,-878.436163,2070.08146,
+ 0.190647,-0.962652,0.192235,1011.982852,-881.910669,2052.642388,
+ 0.190633,-0.906609,0.376455,1011.982852,-876.819704,2069.412405,
+ 0,-0.973818,0.227328,993.755282,-1000.920342,2076.297043,
+ 0,-0.935853,0.352391,947.039602,-988.924364,2115.81268,
+ 0,-0.986639,0.16292,947.039602,-1000.920342,2076.297043,
+ 0,-0.935853,0.352391,947.039602,-988.924364,2115.81268,
+ 0,-0.973818,0.227328,993.755282,-1000.920342,2076.297043,
+ 0,-0.91071,0.413047,993.755282,-988.924364,2115.81268,
+ -0.698482,-0.701857,0.139712,947.039602,-1000.920342,2076.297043,
+ -0.698266,-0.669919,0.252256,900.323922,-946.797518,2098.376319,
+ -0.698482,-0.701857,0.139712,900.323922,-956.19872,2067.408064,
+ -0.698266,-0.669919,0.252256,900.323922,-946.797518,2098.376319,
+ -0.698482,-0.701857,0.139712,947.039602,-1000.920342,2076.297043,
+ -0.698254,-0.651931,0.295681,947.039602,-988.924364,2115.81268,
+ 0.698266,-0.669919,0.252256,900.323922,-946.797518,2098.376319,
+ 0.698286,-0.697077,0.162726,853.608242,-1000.920342,2076.297043,
+ 0.698293,-0.706248,0.116621,900.323922,-956.19872,2067.408064,
+ 0.698286,-0.697077,0.162726,853.608242,-1000.920342,2076.297043,
+ 0.698266,-0.669919,0.252256,900.323922,-946.797518,2098.376319,
+ 0.698254,-0.651931,0.295681,853.608242,-988.924364,2115.81268,
+ -0.698482,-0.701857,0.139712,853.608242,-1000.920342,2076.297043,
+ -0.698266,-0.669919,0.252256,806.892562,-946.797518,2098.376319,
+ -0.698482,-0.701857,0.139712,806.892562,-956.19872,2067.408064,
+ -0.698266,-0.669919,0.252256,806.892562,-946.797518,2098.376319,
+ -0.698482,-0.701857,0.139712,853.608242,-1000.920342,2076.297043,
+ -0.698254,-0.651931,0.295681,853.608242,-988.924364,2115.81268,
+ 0.698266,-0.669919,0.252256,806.892562,-946.797518,2098.376319,
+ 0.698286,-0.697077,0.162726,760.176882,-1000.920342,2076.297043,
+ 0.698293,-0.706248,0.116621,806.892562,-956.19872,2067.408064,
+ 0.698286,-0.697077,0.162726,760.176882,-1000.920342,2076.297043,
+ 0.698266,-0.669919,0.252256,806.892562,-946.797518,2098.376319,
+ 0.698254,-0.651931,0.295681,760.176882,-988.924364,2115.81268,
+ -0.698482,-0.701857,0.139712,760.176882,-1000.920342,2076.297043,
+ -0.698266,-0.669919,0.252256,713.461202,-946.797518,2098.376319,
+ -0.698482,-0.701857,0.139712,713.461202,-956.19872,2067.408064,
+ -0.698266,-0.669919,0.252256,713.461202,-946.797518,2098.376319,
+ -0.698482,-0.701857,0.139712,760.176882,-1000.920342,2076.297043,
+ -0.698254,-0.651931,0.295681,760.176882,-988.924364,2115.81268,
+ 0.698266,-0.669919,0.252256,713.461202,-946.797518,2098.376319,
+ 0.698286,-0.697077,0.162726,666.745522,-1000.920342,2076.297043,
+ 0.698293,-0.706248,0.116621,713.461202,-956.19872,2067.408064,
+ 0.698286,-0.697077,0.162726,666.745522,-1000.920342,2076.297043,
+ 0.698266,-0.669919,0.252256,713.461202,-946.797518,2098.376319,
+ 0.698254,-0.651931,0.295681,666.745522,-988.924364,2115.81268,
+ 0,-0.973818,0.227328,666.745522,-1000.920342,2076.297043,
+ 0,-0.935853,0.352391,635.537065,-988.924364,2115.81268,
+ 0,-0.986639,0.16292,635.537065,-1000.920342,2076.297043,
+ 0,-0.935853,0.352391,635.537065,-988.924364,2115.81268,
+ 0,-0.973818,0.227328,666.745522,-1000.920342,2076.297043,
+ 0,-0.91071,0.413047,666.745522,-988.924364,2115.81268,
+ 0,-0.973818,0.227328,635.537065,-956.19872,2067.408064,
+ 0,-0.935853,0.352391,200.646178,-946.797518,2098.376319,
+ 0,-0.986639,0.16292,200.646178,-956.19872,2067.408064,
+ 0,-0.935853,0.352391,200.646178,-946.797518,2098.376319,
+ 0,-0.973818,0.227328,635.537065,-956.19872,2067.408064,
+ 0,-0.91071,0.413047,635.537065,-946.797518,2098.376319,
+ 0,-0.973818,0.227328,200.646178,-877.254479,2051.716912,
+ 0,-0.935853,0.352391,97.301517,-872.433668,2067.597018,
+ 0,-0.986639,0.16292,97.301517,-877.254479,2051.716912,
+ 0,-0.935853,0.352391,97.301517,-872.433668,2067.597018,
+ 0,-0.973818,0.227328,200.646178,-877.254479,2051.716912,
+ 0,-0.91071,0.413047,200.646178,-872.433668,2067.597018,
+ 0,-0.973818,0.227328,97.301517,-928.331516,2061.86911,
+ 0,-0.935853,0.352391,45.307526,-920.547185,2087.51127,
+ 0,-0.986639,0.16292,45.307526,-928.331516,2061.86911,
+ 0,-0.935853,0.352391,45.307526,-920.547185,2087.51127,
+ 0,-0.973818,0.227328,97.301517,-928.331516,2061.86911,
+ 0,-0.91071,0.413047,97.301517,-920.547185,2087.51127,
+ 0.975653,-0.204779,0.078525,1085.391405,-810.60731,2042.007003,
+ 0.920642,-0.383474,0.073251,1080.0746,-828.402605,2042.006994,
+ 0.975657,-0.216153,0.037036,1085.391405,-811.619967,2038.671235,
+ 0.920642,-0.383474,0.073251,1080.0746,-828.402605,2042.006994,
+ 0.975653,-0.204779,0.078525,1085.391405,-810.60731,2042.007003,
+ 0.920631,-0.361821,0.14671,1080.0746,-826.416209,2048.550328,
+ 0.920642,-0.383474,0.073251,1080.0746,-828.402605,2042.006994,
+ 0.842436,-0.536198,0.052851,1071.440608,-844.843343,2035.202153,
+ 0.932578,-0.359229,0.035408,1080.0746,-829.073329,2035.202153,
+ 0.842436,-0.536198,0.052851,1071.440608,-844.843343,2035.202153,
+ 0.920642,-0.383474,0.073251,1080.0746,-828.402605,2042.006994,
+ 0.825368,-0.554249,0.10759,1071.440608,-843.869602,2045.081252,
+ 0.825368,-0.554249,0.10759,1071.440608,-843.869602,2045.081252,
+ 0.69704,-0.713574,0.070334,1059.821204,-858.665871,2035.202153,
+ 0.842436,-0.536198,0.052851,1071.440608,-844.843343,2035.202153,
+ 0.69704,-0.713574,0.070334,1059.821204,-858.665871,2035.202153,
+ 0.825368,-0.554249,0.10759,1071.440608,-843.869602,2045.081252,
+ 0.698565,-0.696813,0.162664,1059.821204,-857.426535,2047.775861,
+ 0.69704,-0.713574,0.070334,1059.821204,-858.665871,2035.202153,
+ 0.546562,-0.820963,0.165195,1045.662989,-868.552448,2049.987275,
+ 0.517228,-0.851721,0.08395,1045.662989,-870.009753,2035.202153,
+ 0.546562,-0.820963,0.165195,1045.662989,-868.552448,2049.987275,
+ 0.69704,-0.713574,0.070334,1059.821204,-858.665871,2035.202153,
+ 0.698565,-0.696813,0.162664,1059.821204,-857.426535,2047.775861,
+ 0.517228,-0.851721,0.08395,1045.662989,-870.009753,2035.202153,
+ 0.375063,-0.90893,0.182138,1029.509968,-876.819727,2051.6305,
+ 0.343504,-0.934622,0.092122,1029.509968,-878.438998,2035.202153,
+ 0.375063,-0.90893,0.182138,1029.509968,-876.819727,2051.6305,
+ 0.517228,-0.851721,0.08395,1045.662989,-870.009753,2035.202153,
+ 0.546562,-0.820963,0.165195,1045.662989,-868.552448,2049.987275,
+ 0.343504,-0.934622,0.092122,1029.509968,-878.438998,2035.202153,
+ 0.190647,-0.962652,0.192235,1011.982852,-881.910669,2052.642388,
+ 0.158272,-0.982634,0.096854,1011.982852,-883.629678,2035.202153,
+ 0.190647,-0.962652,0.192235,1011.982852,-881.910669,2052.642388,
+ 0.343504,-0.934622,0.092122,1029.509968,-878.438998,2035.202153,
+ 0.375063,-0.90893,0.182138,1029.509968,-876.819727,2051.6305,
+ 0.158272,-0.982634,0.096854,1011.982852,-883.629678,2035.202153,
+ 0.095497,-0.98213,0.162176,993.755282,-883.626694,2052.983469,
+ 0.095093,-0.990668,0.097646,993.755282,-885.379322,2035.202153,
+ 0.095497,-0.98213,0.162176,993.755282,-883.626694,2052.983469,
+ 0.158272,-0.982634,0.096854,1011.982852,-883.629678,2035.202153,
+ 0.190647,-0.962652,0.192235,1011.982852,-881.910669,2052.642388,
+ 0,-0.995178,0.09809,993.755282,-1004.970888,2035.202153,
+ 0,-0.986639,0.16292,947.039602,-1000.920342,2076.297043,
+ 0,-0.995178,0.09809,947.039602,-1004.970888,2035.202153,
+ 0,-0.986639,0.16292,947.039602,-1000.920342,2076.297043,
+ 0,-0.995178,0.09809,993.755282,-1004.970888,2035.202153,
+ 0,-0.973818,0.227328,993.755282,-1000.920342,2076.297043,
+ -0.698482,-0.701857,0.139712,947.039602,-1000.920342,2076.297043,
+ -0.696761,-0.713844,0.070361,900.323922,-959.373118,2035.202153,
+ -0.696761,-0.713844,0.070361,947.039602,-1004.970888,2035.202153,
+ -0.696761,-0.713844,0.070361,900.323922,-959.373118,2035.202153,
+ -0.698482,-0.701857,0.139712,947.039602,-1000.920342,2076.297043,
+ -0.698482,-0.701857,0.139712,900.323922,-956.19872,2067.408064,
+ 0.698293,-0.706248,0.116621,900.323922,-956.19872,2067.408064,
+ 0.696761,-0.713844,0.070361,853.608242,-1004.970888,2035.202153,
+ 0.696761,-0.713844,0.070361,900.323922,-959.373118,2035.202153,
+ 0.696761,-0.713844,0.070361,853.608242,-1004.970888,2035.202153,
+ 0.698293,-0.706248,0.116621,900.323922,-956.19872,2067.408064,
+ 0.698286,-0.697077,0.162726,853.608242,-1000.920342,2076.297043,
+ -0.698482,-0.701857,0.139712,853.608242,-1000.920342,2076.297043,
+ -0.696761,-0.713844,0.070361,806.892562,-959.373118,2035.202153,
+ -0.696761,-0.713844,0.070361,853.608242,-1004.970888,2035.202153,
+ -0.696761,-0.713844,0.070361,806.892562,-959.373118,2035.202153,
+ -0.698482,-0.701857,0.139712,853.608242,-1000.920342,2076.297043,
+ -0.698482,-0.701857,0.139712,806.892562,-956.19872,2067.408064,
+ 0.698293,-0.706248,0.116621,806.892562,-956.19872,2067.408064,
+ 0.696761,-0.713844,0.070361,760.176882,-1004.970888,2035.202153,
+ 0.696761,-0.713844,0.070361,806.892562,-959.373118,2035.202153,
+ 0.696761,-0.713844,0.070361,760.176882,-1004.970888,2035.202153,
+ 0.698293,-0.706248,0.116621,806.892562,-956.19872,2067.408064,
+ 0.698286,-0.697077,0.162726,760.176882,-1000.920342,2076.297043,
+ -0.698482,-0.701857,0.139712,760.176882,-1000.920342,2076.297043,
+ -0.696761,-0.713844,0.070361,713.461202,-959.373118,2035.202153,
+ -0.696761,-0.713844,0.070361,760.176882,-1004.970888,2035.202153,
+ -0.696761,-0.713844,0.070361,713.461202,-959.373118,2035.202153,
+ -0.698482,-0.701857,0.139712,760.176882,-1000.920342,2076.297043,
+ -0.698482,-0.701857,0.139712,713.461202,-956.19872,2067.408064,
+ 0.698293,-0.706248,0.116621,713.461202,-956.19872,2067.408064,
+ 0.696761,-0.713844,0.070361,666.745522,-1004.970888,2035.202153,
+ 0.696761,-0.713844,0.070361,713.461202,-959.373118,2035.202153,
+ 0.696761,-0.713844,0.070361,666.745522,-1004.970888,2035.202153,
+ 0.698293,-0.706248,0.116621,713.461202,-956.19872,2067.408064,
+ 0.698286,-0.697077,0.162726,666.745522,-1000.920342,2076.297043,
+ 0,-0.995178,0.09809,666.745522,-1004.970888,2035.202153,
+ 0,-0.986639,0.16292,635.537065,-1000.920342,2076.297043,
+ 0,-0.995178,0.09809,635.537065,-1004.970888,2035.202153,
+ 0,-0.986639,0.16292,635.537065,-1000.920342,2076.297043,
+ 0,-0.995178,0.09809,666.745522,-1004.970888,2035.202153,
+ 0,-0.973818,0.227328,666.745522,-1000.920342,2076.297043,
+ 0,-0.995178,0.09809,635.537065,-959.373118,2035.202153,
+ 0,-0.986639,0.16292,200.646178,-956.19872,2067.408064,
+ 0,-0.995178,0.09809,200.646178,-959.373118,2035.202153,
+ 0,-0.986639,0.16292,200.646178,-956.19872,2067.408064,
+ 0,-0.995178,0.09809,635.537065,-959.373118,2035.202153,
+ 0,-0.973818,0.227328,635.537065,-956.19872,2067.408064,
+ 0,-0.995178,0.09809,200.646178,-878.882267,2035.202153,
+ 0,-0.986639,0.16292,97.301517,-877.254479,2051.716912,
+ 0,-0.995178,0.09809,97.301517,-878.882267,2035.202153,
+ 0,-0.986639,0.16292,97.301517,-877.254479,2051.716912,
+ 0,-0.995178,0.09809,200.646178,-878.882267,2035.202153,
+ 0,-0.973818,0.227328,200.646178,-877.254479,2051.716912,
+ 0,-0.995178,0.09809,97.301517,-930.959963,2035.202153,
+ 0,-0.986639,0.16292,45.307526,-928.331516,2061.86911,
+ 0,-0.995178,0.09809,45.307526,-930.959963,2035.202153,
+ 0,-0.986639,0.16292,45.307526,-928.331516,2061.86911,
+ 0,-0.995178,0.09809,97.301517,-930.959963,2035.202153,
+ 0,-0.973818,0.227328,97.301517,-928.331516,2061.86911,
+ 0.975657,-0.216153,0.037036,1085.391405,-811.619967,2038.671235,
+ 0.932578,-0.359229,0.035408,1080.0746,-829.073329,2035.202153,
+ 0.979702,-0.199495,0.019663,1085.391405,-811.9619,2035.202153,
+ 0.932578,-0.359229,0.035408,1080.0746,-829.073329,2035.202153,
+ 0.975657,-0.216153,0.037036,1085.391405,-811.619967,2038.671235,
+ 0.920642,-0.383474,0.073251,1080.0746,-828.402605,2042.006994,
+ -1,0,0,635.537065,-835.292444,2241.800118,
+ -1,0,0,635.537065,-794.16656,2200.284205,
+ -1,0,0,635.537065,-826.396761,2197.1122,
+ -1,0,0,635.537065,-794.16656,2200.284205,
+ -1,0,0,635.537065,-835.292444,2241.800118,
+ -1,0,0,635.537065,-794.16656,2245.847611,
+ 0.972352,-0.022872,0.232398,1085.391405,-794.16656,2052.984082,
+ 0.975625,-0.048525,0.214014,1085.391405,-797.638259,2052.642407,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 0.975625,-0.048525,0.214014,1085.391405,-797.638259,2052.642407,
+ 0.975629,-0.089314,0.200429,1085.391405,-800.976542,2051.630513,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 0.975629,-0.089314,0.200429,1085.391405,-800.976542,2051.630513,
+ 0.975635,-0.126671,0.179142,1085.391405,-804.053121,2049.987287,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 0.975635,-0.126671,0.179142,1085.391405,-804.053121,2049.987287,
+ 0.975641,-0.159161,0.15097,1085.391405,-806.749765,2047.775876,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 0.975641,-0.159161,0.15097,1085.391405,-806.749765,2047.775876,
+ 0.975648,-0.185535,0.116996,1085.391405,-808.962844,2045.081264,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 0.975648,-0.185535,0.116996,1085.391405,-808.962844,2045.081264,
+ 0.975653,-0.204779,0.078525,1085.391405,-810.60731,2042.007003,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 0.975653,-0.204779,0.078525,1085.391405,-810.60731,2042.007003,
+ 0.975657,-0.216153,0.037036,1085.391405,-811.619967,2038.671235,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 0.975657,-0.216153,0.037036,1085.391405,-811.619967,2038.671235,
+ 0.979702,-0.199495,0.019663,1085.391405,-811.9619,2035.202153,
+ 0.995845,-0.06437,0.064418,1087.186642,-794.16656,2035.202153,
+ 1,0,0,993.755282,-883.626694,2052.983469,
+ 1,0,0,993.755282,-1004.970888,2035.202153,
+ 1,0,0,993.755282,-885.379322,2035.202153,
+ 1,0,0,993.755282,-1004.970888,2035.202153,
+ 1,0,0,993.755282,-883.626694,2052.983469,
+ 1,0,0,993.755282,-1000.920342,2076.297043,
+ 1,0,0,97.301517,-872.433668,2067.597018,
+ 1,0,0,97.301517,-928.331516,2061.86911,
+ 1,0,0,97.301517,-877.254479,2051.716912,
+ 1,0,0,97.301517,-928.331516,2061.86911,
+ 1,0,0,97.301517,-872.433668,2067.597018,
+ 1,0,0,97.301517,-920.547185,2087.51127,
+ -1,0,0,45.307526,-920.547185,2087.51127,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-928.331516,2061.86911,
+ -1,0,0,200.646178,-826.396761,2197.1122,
+ -1,0,0,200.646178,-794.16656,2119.854015,
+ -1,0,0,200.646178,-810.693775,2118.227454,
+ -1,0,0,200.646178,-794.16656,2119.854015,
+ -1,0,0,200.646178,-826.396761,2197.1122,
+ -1,0,0,200.646178,-794.16656,2200.284205,
+ -1,0,0,45.307526,-928.331516,2061.86911,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-930.959963,2035.202153,
+ -1,0,0,45.307526,-794.16656,2171.892463,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-820.853629,2169.265997,
+ -1,0,0,45.307526,-907.906118,2111.143221,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-920.547185,2087.51127,
+ -1,0,0,45.307526,-890.894103,2131.856798,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-907.906118,2111.143221,
+ -1,0,0,45.307526,-870.164903,2148.855992,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-890.894103,2131.856798,
+ -1,0,0,45.307526,-846.515129,2161.487533,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-870.164903,2148.855992,
+ -1,0,0,45.307526,-820.853629,2169.265997,
+ -1,0,0,45.307526,-794.16656,2035.202153,
+ -1,0,0,45.307526,-846.515129,2161.487533,
+ -1,0,0,200.646178,-956.19872,2067.408064,
+ -1,0,0,200.646178,-878.882267,2035.202153,
+ -1,0,0,200.646178,-959.373118,2035.202153,
+ -1,0,0,200.646178,-878.882267,2035.202153,
+ -1,0,0,200.646178,-956.19872,2067.408064,
+ -1,0,0,200.646178,-877.254479,2051.716912,
+ -1,0,0,200.646178,-956.19872,2067.408064,
+ -1,0,0,200.646178,-872.433668,2067.597018,
+ -1,0,0,200.646178,-877.254479,2051.716912,
+ -1,0,0,200.646178,-872.433668,2067.597018,
+ -1,0,0,200.646178,-956.19872,2067.408064,
+ -1,0,0,200.646178,-946.797518,2098.376319,
+ -1,0,0,200.646178,-946.797518,2098.376319,
+ -1,0,0,200.646178,-864.605096,2082.232208,
+ -1,0,0,200.646178,-872.433668,2067.597018,
+ -1,0,0,200.646178,-864.605096,2082.232208,
+ -1,0,0,200.646178,-946.797518,2098.376319,
+ -1,0,0,200.646178,-931.530793,2126.916827,
+ -1,0,0,200.646178,-931.530793,2126.916827,
+ -1,0,0,200.646178,-854.069611,2095.060059,
+ -1,0,0,200.646178,-864.605096,2082.232208,
+ -1,0,0,200.646178,-854.069611,2095.060059,
+ -1,0,0,200.646178,-931.530793,2126.916827,
+ -1,0,0,200.646178,-910.985237,2151.932791,
+ -1,0,0,200.646178,-910.985237,2151.932791,
+ -1,0,0,200.646178,-841.232085,2105.587604,
+ -1,0,0,200.646178,-854.069611,2095.060059,
+ -1,0,0,200.646178,-841.232085,2105.587604,
+ -1,0,0,200.646178,-910.985237,2151.932791,
+ -1,0,0,200.646178,-885.950406,2172.462863,
+ -1,0,0,200.646178,-885.950406,2172.462863,
+ -1,0,0,200.646178,-826.585858,2113.410276,
+ -1,0,0,200.646178,-841.232085,2105.587604,
+ -1,0,0,200.646178,-826.585858,2113.410276,
+ -1,0,0,200.646178,-885.950406,2172.462863,
+ -1,0,0,200.646178,-857.388373,2187.718082,
+ -1,0,0,200.646178,-857.388373,2187.718082,
+ -1,0,0,200.646178,-810.693775,2118.227454,
+ -1,0,0,200.646178,-826.585858,2113.410276,
+ -1,0,0,200.646178,-810.693775,2118.227454,
+ -1,0,0,200.646178,-857.388373,2187.718082,
+ -1,0,0,200.646178,-826.396761,2197.1122,
+ -1,0,0,635.537065,-1000.920342,2076.297043,
+ -1,0,0,635.537065,-959.373118,2035.202153,
+ -1,0,0,635.537065,-1004.970888,2035.202153,
+ -1,0,0,635.537065,-959.373118,2035.202153,
+ -1,0,0,635.537065,-1000.920342,2076.297043,
+ -1,0,0,635.537065,-956.19872,2067.408064,
+ -1,0,0,635.537065,-1000.920342,2076.297043,
+ -1,0,0,635.537065,-946.797518,2098.376319,
+ -1,0,0,635.537065,-956.19872,2067.408064,
+ -1,0,0,635.537065,-946.797518,2098.376319,
+ -1,0,0,635.537065,-1000.920342,2076.297043,
+ -1,0,0,635.537065,-988.924364,2115.81268,
+ -1,0,0,635.537065,-988.924364,2115.81268,
+ -1,0,0,635.537065,-931.530793,2126.916827,
+ -1,0,0,635.537065,-946.797518,2098.376319,
+ -1,0,0,635.537065,-931.530793,2126.916827,
+ -1,0,0,635.537065,-988.924364,2115.81268,
+ -1,0,0,635.537065,-969.443953,2152.230499,
+ -1,0,0,635.537065,-969.443953,2152.230499,
+ -1,0,0,635.537065,-910.985237,2151.932791,
+ -1,0,0,635.537065,-931.530793,2126.916827,
+ -1,0,0,635.537065,-910.985237,2151.932791,
+ -1,0,0,635.537065,-969.443953,2152.230499,
+ -1,0,0,635.537065,-943.22773,2184.150985,
+ -1,0,0,635.537065,-943.22773,2184.150985,
+ -1,0,0,635.537065,-885.950406,2172.462863,
+ -1,0,0,635.537065,-910.985237,2151.932791,
+ -1,0,0,635.537065,-885.950406,2172.462863,
+ -1,0,0,635.537065,-943.22773,2184.150985,
+ -1,0,0,635.537065,-911.28317,2210.34745,
+ -1,0,0,635.537065,-911.28317,2210.34745,
+ -1,0,0,635.537065,-857.388373,2187.718082,
+ -1,0,0,635.537065,-885.950406,2172.462863,
+ -1,0,0,635.537065,-857.388373,2187.718082,
+ -1,0,0,635.537065,-911.28317,2210.34745,
+ -1,0,0,635.537065,-874.837884,2229.81318,
+ -1,0,0,635.537065,-874.837884,2229.81318,
+ -1,0,0,635.537065,-826.396761,2197.1122,
+ -1,0,0,635.537065,-857.388373,2187.718082,
+ -1,0,0,635.537065,-826.396761,2197.1122,
+ -1,0,0,635.537065,-874.837884,2229.81318,
+ -1,0,0,635.537065,-835.292444,2241.800118,
+ 1,0,0,993.755282,-794.16656,2126.346173,
+ 1,0,0,993.755282,-835.292444,2241.800118,
+ 1,0,0,993.755282,-811.961287,2124.594866,
+ 1,0,0,993.755282,-835.292444,2241.800118,
+ 1,0,0,993.755282,-794.16656,2126.346173,
+ 1,0,0,993.755282,-794.16656,2245.847611,
+ 1,0,0,993.755282,-878.436163,2070.08146,
+ 1,0,0,993.755282,-1000.920342,2076.297043,
+ 1,0,0,993.755282,-883.626694,2052.983469,
+ 1,0,0,993.755282,-1000.920342,2076.297043,
+ 1,0,0,993.755282,-878.436163,2070.08146,
+ 1,0,0,993.755282,-988.924364,2115.81268,
+ 1,0,0,993.755282,-870.007199,2085.839058,
+ 1,0,0,993.755282,-988.924364,2115.81268,
+ 1,0,0,993.755282,-878.436163,2070.08146,
+ 1,0,0,993.755282,-988.924364,2115.81268,
+ 1,0,0,993.755282,-870.007199,2085.839058,
+ 1,0,0,993.755282,-969.443953,2152.230499,
+ 1,0,0,993.755282,-858.663722,2099.650708,
+ 1,0,0,993.755282,-969.443953,2152.230499,
+ 1,0,0,993.755282,-870.007199,2085.839058,
+ 1,0,0,993.755282,-969.443953,2152.230499,
+ 1,0,0,993.755282,-858.663722,2099.650708,
+ 1,0,0,993.755282,-943.22773,2184.150985,
+ 1,0,0,993.755282,-844.841655,2110.985636,
+ 1,0,0,993.755282,-943.22773,2184.150985,
+ 1,0,0,993.755282,-858.663722,2099.650708,
+ 1,0,0,993.755282,-943.22773,2184.150985,
+ 1,0,0,993.755282,-844.841655,2110.985636,
+ 1,0,0,993.755282,-911.28317,2210.34745,
+ 1,0,0,993.755282,-829.072173,2119.408248,
+ 1,0,0,993.755282,-911.28317,2210.34745,
+ 1,0,0,993.755282,-844.841655,2110.985636,
+ 1,0,0,993.755282,-911.28317,2210.34745,
+ 1,0,0,993.755282,-829.072173,2119.408248,
+ 1,0,0,993.755282,-874.837884,2229.81318,
+ 1,0,0,993.755282,-811.961287,2124.594866,
+ 1,0,0,993.755282,-874.837884,2229.81318,
+ 1,0,0,993.755282,-829.072173,2119.408248,
+ 1,0,0,993.755282,-874.837884,2229.81318,
+ 1,0,0,993.755282,-811.961287,2124.594866,
+ 1,0,0,993.755282,-835.292444,2241.800118,
+ 1,0,0,97.301517,-877.254479,2051.716912,
+ 1,0,0,97.301517,-930.959963,2035.202153,
+ 1,0,0,97.301517,-878.882267,2035.202153,
+ 1,0,0,97.301517,-930.959963,2035.202153,
+ 1,0,0,97.301517,-877.254479,2051.716912,
+ 1,0,0,97.301517,-928.331516,2061.86911,
+ 1,0,0,97.301517,-854.069611,2095.060059,
+ 1,0,0,97.301517,-907.906118,2111.143221,
+ 1,0,0,97.301517,-864.605096,2082.232208,
+ 1,0,0,97.301517,-907.906118,2111.143221,
+ 1,0,0,97.301517,-854.069611,2095.060059,
+ 1,0,0,97.301517,-890.894103,2131.856798,
+ 1,0,0,97.301517,-864.605096,2082.232208,
+ 1,0,0,97.301517,-920.547185,2087.51127,
+ 1,0,0,97.301517,-872.433668,2067.597018,
+ 1,0,0,97.301517,-920.547185,2087.51127,
+ 1,0,0,97.301517,-864.605096,2082.232208,
+ 1,0,0,97.301517,-907.906118,2111.143221,
+ 1,0,0,97.301517,-826.585858,2113.410276,
+ 1,0,0,97.301517,-870.164903,2148.855992,
+ 1,0,0,97.301517,-841.232085,2105.587604,
+ 1,0,0,97.301517,-870.164903,2148.855992,
+ 1,0,0,97.301517,-826.585858,2113.410276,
+ 1,0,0,97.301517,-846.515129,2161.487533,
+ 1,0,0,97.301517,-841.232085,2105.587604,
+ 1,0,0,97.301517,-890.894103,2131.856798,
+ 1,0,0,97.301517,-854.069611,2095.060059,
+ 1,0,0,97.301517,-890.894103,2131.856798,
+ 1,0,0,97.301517,-841.232085,2105.587604,
+ 1,0,0,97.301517,-870.164903,2148.855992,
+ 1,0,0,97.301517,-794.16656,2119.854015,
+ 1,0,0,97.301517,-820.853629,2169.265997,
+ 1,0,0,97.301517,-810.693775,2118.227454,
+ 1,0,0,97.301517,-820.853629,2169.265997,
+ 1,0,0,97.301517,-794.16656,2119.854015,
+ 1,0,0,97.301517,-794.16656,2171.892463,
+ 1,0,0,97.301517,-810.693775,2118.227454,
+ 1,0,0,97.301517,-846.515129,2161.487533,
+ 1,0,0,97.301517,-826.585858,2113.410276,
+ 1,0,0,97.301517,-846.515129,2161.487533,
+ 1,0,0,97.301517,-810.693775,2118.227454,
+ 1,0,0,97.301517,-820.853629,2169.265997
+};
+static const struct gllist robot_arm_half_frame = { GL_N3F_V3F, GL_TRIANGLES, 1104, robot_arm_half_data, 0 };
+const struct gllist *robot_arm_half = &robot_arm_half_frame;
+
+static const float robot_body_half_inside_data[] = {
+ 0.870883,0.172314,0.460294,-899.612557,-178.944064,1773.56823,
+ 0.925281,0.091132,0.36817,-944.844672,0,1835.635445,
+ 0.91848,0.181999,0.3511,-926.689746,-184.330051,1835.635445,
+ 0.925281,0.091132,0.36817,-944.844672,0,1835.635445,
+ 0.870883,0.172314,0.460294,-899.612557,-178.944064,1773.56823,
+ 0.875139,0.086194,0.476133,-917.237009,0,1773.56823,
+ 0.962266,0.094775,-0.255071,-964.850983,0,2169.851549,
+ 0.91848,0.181999,-0.3511,-926.689746,-184.330051,2234.768955,
+ 0.952958,0.189085,-0.236891,-946.311642,-188.233089,2169.851549,
+ 0.91848,0.181999,-0.3511,-926.689746,-184.330051,2234.768955,
+ 0.962266,0.094775,-0.255071,-964.850983,0,2169.851549,
+ 0.925281,0.091132,-0.36817,-944.844672,0,2234.768955,
+ 0.973826,0.193469,0.119297,-958.198007,-190.597434,1967.393306,
+ 0.995185,0.098017,-0,-981.029284,-0,2035.2022,
+ 0.973856,0.227168,-0,-962.179081,-191.389319,2035.2022,
+ 0.995185,0.098017,-0,-981.029284,-0,2035.2022,
+ 0.973826,0.193469,0.119297,-958.198007,-190.597434,1967.393306,
+ 0.985604,0.097074,0.138423,-976.970216,-0,1967.393306,
+ 0.740863,0.278762,0.611076,-776.888194,-321.797626,1661.47676,
+ 0.810848,0.160167,0.562913,-865.466789,-172.152048,1715.237645,
+ 0.764021,0.315278,0.562913,-815.251889,-337.688389,1715.237645,
+ 0.810848,0.160167,0.562913,-865.466789,-172.152048,1715.237645,
+ 0.740863,0.278762,0.611076,-776.888194,-321.797626,1661.47676,
+ 0.781011,0.12887,0.611076,-824.740108,-164.051007,1661.47676,
+ 0.662575,0.661607,0.3511,-668.106075,-668.106075,1835.635445,
+ 0.808059,0.539373,0.236891,-802.244273,-536.042486,1900.552851,
+ 0.687306,0.686654,0.236891,-682.252673,-682.252673,1900.552851,
+ 0.808059,0.539373,0.236891,-802.244273,-536.042486,1900.552851,
+ 0.662575,0.661607,0.3511,-668.106075,-668.106075,1835.635445,
+ 0.778916,0.519633,0.3511,-785.609633,-524.927574,1835.635445,
+ 0.876472,0.172332,0.449554,-721.176029,-143.450831,680.911024,
+ 0.966069,0.095149,0.240119,-756.121025,0,741.194313,
+ 0.961634,0.1904,0.197505,-741.592372,-147.511894,741.194313,
+ 0.966069,0.095149,0.240119,-756.121025,0,741.194313,
+ 0.876472,0.172332,0.449554,-721.176029,-143.450831,680.911024,
+ 0.869022,0.085591,0.487313,-735.304703,0,680.911024,
+ 0.91848,0.181999,-0.3511,-926.689746,-184.330051,2234.768955,
+ 0.820532,0.338904,-0.460294,-847.416499,-351.011407,2296.83617,
+ 0.865325,0.357689,-0.3511,-872.922654,-361.576402,2234.768955,
+ 0.820532,0.338904,-0.460294,-847.416499,-351.011407,2296.83617,
+ 0.91848,0.181999,-0.3511,-926.689746,-184.330051,2234.768955,
+ 0.870883,0.172314,-0.460294,-899.612557,-178.944064,2296.83617,
+ 0.160167,0.810848,-0.562913,-172.152048,-865.466789,2355.166755,
+ -0.000898,0.887766,-0.460294,0,-917.237009,2296.83617,
+ 0.172314,0.870883,-0.460294,-178.944064,-899.612557,2296.83617,
+ -0.000898,0.887766,-0.460294,0,-917.237009,2296.83617,
+ 0.160167,0.810848,-0.562913,-172.152048,-865.466789,2355.166755,
+ -0.001099,0.826515,-0.562913,0,-882.422286,2355.166755,
+ 0.632456,0.632456,-0.447214,-429.428666,-429.428666,1287.75132,
+ 0.521108,0.727062,-0.447021,-389.30762,-582.640028,1100.8886,
+ 0.632456,0.632456,-0.447214,-495.494614,-495.494614,1100.8886,
+ 0.521108,0.727062,-0.447021,-389.30762,-582.640028,1100.8886,
+ 0.632456,0.632456,-0.447214,-429.428666,-429.428666,1287.75132,
+ 0.472298,0.759676,-0.447021,-337.399938,-504.954691,1287.75132,
+ 0.189085,0.952958,-0.236891,-188.233089,-946.311642,2169.851549,
+ 0.014067,0.991704,-0.12777,0,-976.970216,2103.011094,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.014067,0.991704,-0.12777,0,-976.970216,2103.011094,
+ 0.189085,0.952958,-0.236891,-188.233089,-946.311642,2169.851549,
+ 0,0.966617,-0.256224,0,-964.850983,2169.851549,
+ 0.181999,0.91848,-0.3511,-184.330051,-926.689746,2234.768955,
+ 0,0.966617,-0.256224,0,-964.850983,2169.851549,
+ 0.189085,0.952958,-0.236891,-188.233089,-946.311642,2169.851549,
+ 0,0.966617,-0.256224,0,-964.850983,2169.851549,
+ 0.181999,0.91848,-0.3511,-184.330051,-926.689746,2234.768955,
+ -0.014053,0.939213,-0.343046,0,-944.844672,2234.768955,
+ 0.172314,0.870883,-0.460294,-178.944064,-899.612557,2296.83617,
+ -0.014053,0.939213,-0.343046,0,-944.844672,2234.768955,
+ 0.181999,0.91848,-0.3511,-184.330051,-926.689746,2234.768955,
+ -0.014053,0.939213,-0.343046,0,-944.844672,2234.768955,
+ 0.172314,0.870883,-0.460294,-178.944064,-899.612557,2296.83617,
+ -0.000898,0.887766,-0.460294,0,-917.237009,2296.83617,
+ 0.174075,0.870533,0.460294,-178.944064,-899.612557,1773.56823,
+ 0.001099,0.826515,0.562913,0,-882.422286,1715.237645,
+ 0.162323,0.81042,0.562913,-172.152048,-865.466789,1715.237645,
+ 0.001099,0.826515,0.562913,0,-882.422286,1715.237645,
+ 0.174075,0.870533,0.460294,-178.944064,-899.612557,1773.56823,
+ 0.000898,0.887766,0.460294,0,-917.237009,1773.56823,
+ 0.687306,0.686654,0.236891,-682.252673,-682.252673,1900.552851,
+ 0.52077,0.778156,0.3511,-524.927574,-785.609633,1835.635445,
+ 0.662575,0.661607,0.3511,-668.106075,-668.106075,1835.635445,
+ 0.52077,0.778156,0.3511,-524.927574,-785.609633,1835.635445,
+ 0.687306,0.686654,0.236891,-682.252673,-682.252673,1900.552851,
+ 0.54014,0.807547,0.236891,-536.042486,-802.244273,1900.552851,
+ 0.692994,0.720844,0.011969,-693.692459,-693.692459,2035.2022,
+ 0.551796,0.825403,0.119297,-542.77557,-812.321046,1967.393306,
+ 0.702221,0.701893,0.119297,-690.822265,-690.822265,1967.393306,
+ 0.551796,0.825403,0.119297,-542.77557,-812.321046,1967.393306,
+ 0.692994,0.720844,0.011969,-693.692459,-693.692459,2035.2022,
+ 0.55557,0.83147,0,-545.030668,-815.696038,2035.2022,
+ 0.814754,0.369253,-0.447021,-690.554573,-286.03707,1287.75132,
+ 0.759676,0.472298,-0.447021,-543.79736,-363.353779,1474.61404,
+ 0.727062,0.521108,-0.447021,-621.482696,-415.261462,1287.75132,
+ 0.759676,0.472298,-0.447021,-543.79736,-363.353779,1474.61404,
+ 0.814754,0.369253,-0.447021,-690.554573,-286.03707,1287.75132,
+ 0.837219,0.315017,-0.447021,-604.235252,-250.282436,1474.61404,
+ 0,0,-1,-747.450884,0,2408.92764,
+ 0,0,-1,-824.740108,-164.051007,2408.92764,
+ 0,0,-1,-840.897722,0,2408.92764,
+ 0,0,-1,-824.740108,-164.051007,2408.92764,
+ 0,0,-1,-747.450884,0,2408.92764,
+ 0,0,-1,-776.888194,-321.797626,2408.92764,
+ 0,0,-1,-776.888194,-321.797626,2408.92764,
+ 0,0,-1,-747.450884,0,2408.92764,
+ 0,0,-1,-733.088824,-145.820434,2408.92764,
+ 0,0,-1,-776.888194,-321.797626,2408.92764,
+ 0,0,-1,-733.088824,-145.820434,2408.92764,
+ 0,0,-1,-699.180902,-467.177743,2408.92764,
+ 0,0,-1,-699.180902,-467.177743,2408.92764,
+ 0,0,-1,-733.088824,-145.820434,2408.92764,
+ 0,0,-1,-690.554573,-286.03707,2408.92764,
+ 0,0,-1,-699.180902,-467.177743,2408.92764,
+ 0,0,-1,-690.554573,-286.03707,2408.92764,
+ 0,0,-1,-594.604481,-594.604481,2408.92764,
+ 0,0,-1,-594.604481,-594.604481,2408.92764,
+ 0,0,-1,-690.554573,-286.03707,2408.92764,
+ 0,0,-1,-621.482696,-415.261462,2408.92764,
+ 0,0,-1,-594.604481,-594.604481,2408.92764,
+ 0,0,-1,-621.482696,-415.261462,2408.92764,
+ 0,0,-1,-528.527588,-528.527588,2408.92764,
+ 0,0,-1,-594.604481,-594.604481,2408.92764,
+ 0,0,-1,-528.527588,-528.527588,2408.92764,
+ 0,0,-1,-467.177743,-699.180902,2408.92764,
+ 0,0,-1,-467.177743,-699.180902,2408.92764,
+ 0,0,-1,-528.527588,-528.527588,2408.92764,
+ 0,0,-1,-415.261462,-621.482696,2408.92764,
+ 0,0,-1,-467.177743,-699.180902,2408.92764,
+ 0,0,-1,-415.261462,-621.482696,2408.92764,
+ 0,0,-1,-321.797626,-776.888194,2408.92764,
+ 0,0,-1,-321.797626,-776.888194,2408.92764,
+ 0,0,-1,-415.261462,-621.482696,2408.92764,
+ 0,0,-1,-286.03707,-690.554573,2408.92764,
+ 0,0,-1,-321.797626,-776.888194,2408.92764,
+ 0,0,-1,-286.03707,-690.554573,2408.92764,
+ 0,0,-1,-164.051007,-824.740108,2408.92764,
+ 0,0,-1,-164.051007,-824.740108,2408.92764,
+ 0,0,-1,-286.03707,-690.554573,2408.92764,
+ 0,0,-1,-145.820434,-733.088824,2408.92764,
+ 0,0,-1,-164.051007,-824.740108,2408.92764,
+ 0,0,-1,-145.820434,-733.088824,2408.92764,
+ 0,0,-1,0,-840.897722,2408.92764,
+ 0,0,-1,0,-840.897722,2408.92764,
+ 0,0,-1,-145.820434,-733.088824,2408.92764,
+ 0,0,-1,0,-747.450884,2408.92764,
+ 0,0,-1,0,-840.897722,2408.92764,
+ 0,0,-1,0,-747.450884,2408.92764,
+ 0,0,-1,145.820434,-733.088824,2408.92764,
+ 0,0,-1,0,-840.897722,2408.92764,
+ 0,0,-1,145.820434,-733.088824,2408.92764,
+ 0,0,-1,164.051007,-824.740108,2408.92764,
+ 0,0,-1,164.051007,-824.740108,2408.92764,
+ 0,0,-1,145.820434,-733.088824,2408.92764,
+ 0,0,-1,286.03707,-690.554573,2408.92764,
+ 0,0,-1,164.051007,-824.740108,2408.92764,
+ 0,0,-1,286.03707,-690.554573,2408.92764,
+ 0,0,-1,321.797626,-776.888194,2408.92764,
+ 0,0,-1,321.797626,-776.888194,2408.92764,
+ 0,0,-1,286.03707,-690.554573,2408.92764,
+ 0,0,-1,415.261462,-621.482696,2408.92764,
+ 0,0,-1,321.797626,-776.888194,2408.92764,
+ 0,0,-1,415.261462,-621.482696,2408.92764,
+ 0,0,-1,467.177743,-699.180902,2408.92764,
+ 0,0,-1,467.177743,-699.180902,2408.92764,
+ 0,0,-1,415.261462,-621.482696,2408.92764,
+ 0,0,-1,528.527588,-528.527588,2408.92764,
+ 0,0,-1,467.177743,-699.180902,2408.92764,
+ 0,0,-1,528.527588,-528.527588,2408.92764,
+ 0,0,-1,594.604481,-594.604481,2408.92764,
+ 0,0,-1,594.604481,-594.604481,2408.92764,
+ 0,0,-1,528.527588,-528.527588,2408.92764,
+ 0,0,-1,621.482696,-415.261462,2408.92764,
+ 0,0,-1,594.604481,-594.604481,2408.92764,
+ 0,0,-1,621.482696,-415.261462,2408.92764,
+ 0,0,-1,699.180902,-467.177743,2408.92764,
+ 0,0,-1,699.180902,-467.177743,2408.92764,
+ 0,0,-1,621.482696,-415.261462,2408.92764,
+ 0,0,-1,690.554573,-286.03707,2408.92764,
+ 0,0,-1,699.180902,-467.177743,2408.92764,
+ 0,0,-1,690.554573,-286.03707,2408.92764,
+ 0,0,-1,733.088824,-145.820434,2408.92764,
+ 0,0,-1,699.180902,-467.177743,2408.92764,
+ 0,0,-1,733.088824,-145.820434,2408.92764,
+ 0,0,-1,776.888194,-321.797626,2408.92764,
+ 0,0,-1,776.888194,-321.797626,2408.92764,
+ 0,0,-1,733.088824,-145.820434,2408.92764,
+ 0,0,-1,747.450884,-0,2408.92764,
+ 0,0,-1,776.888194,-321.797626,2408.92764,
+ 0,0,-1,747.450884,-0,2408.92764,
+ 0,0,-1,840.897722,-0,2408.92764,
+ 0,0,-1,776.888194,-321.797626,2408.92764,
+ 0,0,-1,840.897722,-0,2408.92764,
+ 0,0,-1,824.740108,-164.051007,2408.92764,
+ 0,0,1,-824.740108,-164.051007,1661.47676,
+ 0,0,1,-700.735204,0,1661.47676,
+ 0,0,1,-840.897722,0,1661.47676,
+ 0,0,1,-700.735204,0,1661.47676,
+ 0,0,1,-824.740108,-164.051007,1661.47676,
+ 0,0,1,-776.888194,-321.797626,1661.47676,
+ 0,0,1,-700.735204,0,1661.47676,
+ 0,0,1,-776.888194,-321.797626,1661.47676,
+ 0,0,1,-699.180902,-467.177743,1661.47676,
+ 0,0,1,-700.735204,0,1661.47676,
+ 0,0,1,-699.180902,-467.177743,1661.47676,
+ 0,0,1,-687.270773,-136.706657,1661.47676,
+ 0,0,1,-687.270773,-136.706657,1661.47676,
+ 0,0,1,-699.180902,-467.177743,1661.47676,
+ 0,0,1,-594.604481,-594.604481,1661.47676,
+ 0,0,1,-687.270773,-136.706657,1661.47676,
+ 0,0,1,-594.604481,-594.604481,1661.47676,
+ 0,0,1,-647.394912,-268.159753,1661.47676,
+ 0,0,1,-647.394912,-268.159753,1661.47676,
+ 0,0,1,-594.604481,-594.604481,1661.47676,
+ 0,0,1,-582.640028,-389.30762,1661.47676,
+ 0,0,1,-582.640028,-389.30762,1661.47676,
+ 0,0,1,-594.604481,-594.604481,1661.47676,
+ 0,0,1,-467.177743,-699.180902,1661.47676,
+ 0,0,1,-582.640028,-389.30762,1661.47676,
+ 0,0,1,-467.177743,-699.180902,1661.47676,
+ 0,0,1,-495.494614,-495.494614,1661.47676,
+ 0,0,1,-495.494614,-495.494614,1661.47676,
+ 0,0,1,-467.177743,-699.180902,1661.47676,
+ 0,0,1,-389.30762,-582.640028,1661.47676,
+ 0,0,1,-389.30762,-582.640028,1661.47676,
+ 0,0,1,-467.177743,-699.180902,1661.47676,
+ 0,0,1,-321.797626,-776.888194,1661.47676,
+ 0,0,1,-389.30762,-582.640028,1661.47676,
+ 0,0,1,-321.797626,-776.888194,1661.47676,
+ 0,0,1,-268.159753,-647.394912,1661.47676,
+ 0,0,1,-268.159753,-647.394912,1661.47676,
+ 0,0,1,-321.797626,-776.888194,1661.47676,
+ 0,0,1,-164.051007,-824.740108,1661.47676,
+ 0,0,1,-268.159753,-647.394912,1661.47676,
+ 0,0,1,-164.051007,-824.740108,1661.47676,
+ 0,0,1,-136.706657,-687.270773,1661.47676,
+ 0,0,1,-136.706657,-687.270773,1661.47676,
+ 0,0,1,-164.051007,-824.740108,1661.47676,
+ 0,0,1,0,-840.897722,1661.47676,
+ 0,0,1,-136.706657,-687.270773,1661.47676,
+ 0,0,1,0,-840.897722,1661.47676,
+ 0,0,1,0,-700.735204,1661.47676,
+ 0,0,1,0,-700.735204,1661.47676,
+ 0,0,1,0,-840.897722,1661.47676,
+ 0,0,1,164.051007,-824.740108,1661.47676,
+ 0,0,1,0,-700.735204,1661.47676,
+ 0,0,1,164.051007,-824.740108,1661.47676,
+ 0,0,1,136.706657,-687.270773,1661.47676,
+ 0,0,1,136.706657,-687.270773,1661.47676,
+ 0,0,1,164.051007,-824.740108,1661.47676,
+ 0,0,1,268.159753,-647.394912,1661.47676,
+ 0,0,1,268.159753,-647.394912,1661.47676,
+ 0,0,1,164.051007,-824.740108,1661.47676,
+ 0,0,1,321.797626,-776.888194,1661.47676,
+ 0,0,1,268.159753,-647.394912,1661.47676,
+ 0,0,1,321.797626,-776.888194,1661.47676,
+ 0,0,1,389.30762,-582.640028,1661.47676,
+ 0,0,1,389.30762,-582.640028,1661.47676,
+ 0,0,1,321.797626,-776.888194,1661.47676,
+ 0,0,1,467.177743,-699.180902,1661.47676,
+ 0,0,1,389.30762,-582.640028,1661.47676,
+ 0,0,1,467.177743,-699.180902,1661.47676,
+ 0,0,1,495.494614,-495.494614,1661.47676,
+ 0,0,1,495.494614,-495.494614,1661.47676,
+ 0,0,1,467.177743,-699.180902,1661.47676,
+ 0,0,1,594.604481,-594.604481,1661.47676,
+ 0,0,1,495.494614,-495.494614,1661.47676,
+ 0,0,1,594.604481,-594.604481,1661.47676,
+ 0,0,1,582.640028,-389.30762,1661.47676,
+ 0,0,1,582.640028,-389.30762,1661.47676,
+ 0,0,1,594.604481,-594.604481,1661.47676,
+ 0,0,1,647.394912,-268.159753,1661.47676,
+ 0,0,1,647.394912,-268.159753,1661.47676,
+ 0,0,1,594.604481,-594.604481,1661.47676,
+ 0,0,1,699.180902,-467.177743,1661.47676,
+ 0,0,1,647.394912,-268.159753,1661.47676,
+ 0,0,1,699.180902,-467.177743,1661.47676,
+ 0,0,1,687.270773,-136.706657,1661.47676,
+ 0,0,1,687.270773,-136.706657,1661.47676,
+ 0,0,1,699.180902,-467.177743,1661.47676,
+ 0,0,1,700.735204,-0,1661.47676,
+ 0,0,1,700.735204,-0,1661.47676,
+ 0,0,1,699.180902,-467.177743,1661.47676,
+ 0,0,1,776.888194,-321.797626,1661.47676,
+ 0,0,1,700.735204,-0,1661.47676,
+ 0,0,1,776.888194,-321.797626,1661.47676,
+ 0,0,1,840.897722,-0,1661.47676,
+ 0,0,1,840.897722,-0,1661.47676,
+ 0,0,1,776.888194,-321.797626,1661.47676,
+ 0,0,1,824.740108,-164.051007,1661.47676,
+ 0,0,1,-778.906876,-154.934211,1474.61404,
+ 0,0,1,-654.019524,0,1474.61404,
+ 0,0,1,-794.166564,0,1474.61404,
+ 0,0,1,-654.019524,0,1474.61404,
+ 0,0,1,-778.906876,-154.934211,1474.61404,
+ 0,0,1,-733.714234,-303.914386,1474.61404,
+ 0,0,1,-654.019524,0,1474.61404,
+ 0,0,1,-733.714234,-303.914386,1474.61404,
+ 0,0,1,-660.325365,-441.215303,1474.61404,
+ 0,0,1,-654.019524,0,1474.61404,
+ 0,0,1,-660.325365,-441.215303,1474.61404,
+ 0,0,1,-641.452722,-127.592879,1474.61404,
+ 0,0,1,-641.452722,-127.592879,1474.61404,
+ 0,0,1,-660.325365,-441.215303,1474.61404,
+ 0,0,1,-561.560563,-561.560563,1474.61404,
+ 0,0,1,-641.452722,-127.592879,1474.61404,
+ 0,0,1,-561.560563,-561.560563,1474.61404,
+ 0,0,1,-604.235252,-250.282436,1474.61404,
+ 0,0,1,-604.235252,-250.282436,1474.61404,
+ 0,0,1,-561.560563,-561.560563,1474.61404,
+ 0,0,1,-543.79736,-363.353779,1474.61404,
+ 0,0,1,-543.79736,-363.353779,1474.61404,
+ 0,0,1,-561.560563,-561.560563,1474.61404,
+ 0,0,1,-441.215303,-660.325365,1474.61404,
+ 0,0,1,-543.79736,-363.353779,1474.61404,
+ 0,0,1,-441.215303,-660.325365,1474.61404,
+ 0,0,1,-462.46164,-462.46164,1474.61404,
+ 0,0,1,-462.46164,-462.46164,1474.61404,
+ 0,0,1,-441.215303,-660.325365,1474.61404,
+ 0,0,1,-363.353779,-543.79736,1474.61404,
+ 0,0,1,-363.353779,-543.79736,1474.61404,
+ 0,0,1,-441.215303,-660.325365,1474.61404,
+ 0,0,1,-303.914386,-733.714234,1474.61404,
+ 0,0,1,-363.353779,-543.79736,1474.61404,
+ 0,0,1,-303.914386,-733.714234,1474.61404,
+ 0,0,1,-250.282436,-604.235252,1474.61404,
+ 0,0,1,-250.282436,-604.235252,1474.61404,
+ 0,0,1,-303.914386,-733.714234,1474.61404,
+ 0,0,1,-154.934211,-778.906876,1474.61404,
+ 0,0,1,-250.282436,-604.235252,1474.61404,
+ 0,0,1,-154.934211,-778.906876,1474.61404,
+ 0,0,1,-127.592879,-641.452722,1474.61404,
+ 0,0,1,-127.592879,-641.452722,1474.61404,
+ 0,0,1,-154.934211,-778.906876,1474.61404,
+ 0,0,1,0,-794.166564,1474.61404,
+ 0,0,1,-127.592879,-641.452722,1474.61404,
+ 0,0,1,0,-794.166564,1474.61404,
+ 0,0,1,0,-654.019524,1474.61404,
+ 0,0,1,0,-654.019524,1474.61404,
+ 0,0,1,0,-794.166564,1474.61404,
+ 0,0,1,154.934211,-778.906876,1474.61404,
+ 0,0,1,0,-654.019524,1474.61404,
+ 0,0,1,154.934211,-778.906876,1474.61404,
+ 0,0,1,127.592879,-641.452722,1474.61404,
+ 0,0,1,127.592879,-641.452722,1474.61404,
+ 0,0,1,154.934211,-778.906876,1474.61404,
+ 0,0,1,250.282436,-604.235252,1474.61404,
+ 0,0,1,250.282436,-604.235252,1474.61404,
+ 0,0,1,154.934211,-778.906876,1474.61404,
+ 0,0,1,303.914386,-733.714234,1474.61404,
+ 0,0,1,250.282436,-604.235252,1474.61404,
+ 0,0,1,303.914386,-733.714234,1474.61404,
+ 0,0,1,363.353779,-543.79736,1474.61404,
+ 0,0,1,363.353779,-543.79736,1474.61404,
+ 0,0,1,303.914386,-733.714234,1474.61404,
+ 0,0,1,441.215303,-660.325365,1474.61404,
+ 0,0,1,363.353779,-543.79736,1474.61404,
+ 0,0,1,441.215303,-660.325365,1474.61404,
+ 0,0,1,462.46164,-462.46164,1474.61404,
+ 0,0,1,462.46164,-462.46164,1474.61404,
+ 0,0,1,441.215303,-660.325365,1474.61404,
+ 0,0,1,561.560563,-561.560563,1474.61404,
+ 0,0,1,462.46164,-462.46164,1474.61404,
+ 0,0,1,561.560563,-561.560563,1474.61404,
+ 0,0,1,543.79736,-363.353779,1474.61404,
+ 0,0,1,543.79736,-363.353779,1474.61404,
+ 0,0,1,561.560563,-561.560563,1474.61404,
+ 0,0,1,604.235252,-250.282436,1474.61404,
+ 0,0,1,604.235252,-250.282436,1474.61404,
+ 0,0,1,561.560563,-561.560563,1474.61404,
+ 0,0,1,660.325365,-441.215303,1474.61404,
+ 0,0,1,604.235252,-250.282436,1474.61404,
+ 0,0,1,660.325365,-441.215303,1474.61404,
+ 0,0,1,641.452722,-127.592879,1474.61404,
+ 0,0,1,641.452722,-127.592879,1474.61404,
+ 0,0,1,660.325365,-441.215303,1474.61404,
+ 0,0,1,654.019524,-0,1474.61404,
+ 0,0,1,654.019524,-0,1474.61404,
+ 0,0,1,660.325365,-441.215303,1474.61404,
+ 0,0,1,794.166564,-0,1474.61404,
+ 0,0,1,794.166564,-0,1474.61404,
+ 0,0,1,660.325365,-441.215303,1474.61404,
+ 0,0,1,733.714234,-303.914386,1474.61404,
+ 0,0,1,794.166564,-0,1474.61404,
+ 0,0,1,733.714234,-303.914386,1474.61404,
+ 0,0,1,778.906876,-154.934211,1474.61404,
+ 0,0,1,-687.270773,-136.706657,1100.8886,
+ 0,0,1,-467.156804,0,1100.8886,
+ 0,0,1,-700.735204,0,1100.8886,
+ 0,0,1,-467.156804,0,1100.8886,
+ 0,0,1,-687.270773,-136.706657,1100.8886,
+ 0,0,1,-647.394912,-268.159753,1100.8886,
+ 0,0,1,-467.156804,0,1100.8886,
+ 0,0,1,-647.394912,-268.159753,1100.8886,
+ 0,0,1,-582.640028,-389.30762,1100.8886,
+ 0,0,1,-467.156804,0,1100.8886,
+ 0,0,1,-582.640028,-389.30762,1100.8886,
+ 0,0,1,-495.494614,-495.494614,1100.8886,
+ 0,0,1,-467.156804,0,1100.8886,
+ 0,0,1,-495.494614,-495.494614,1100.8886,
+ 0,0,1,-458.180517,-91.137771,1100.8886,
+ 0,0,1,-458.180517,-91.137771,1100.8886,
+ 0,0,1,-495.494614,-495.494614,1100.8886,
+ 0,0,1,-389.30762,-582.640028,1100.8886,
+ 0,0,1,-458.180517,-91.137771,1100.8886,
+ 0,0,1,-389.30762,-582.640028,1100.8886,
+ 0,0,1,-431.596609,-178.773169,1100.8886,
+ 0,0,1,-431.596609,-178.773169,1100.8886,
+ 0,0,1,-389.30762,-582.640028,1100.8886,
+ 0,0,1,-388.426686,-259.538414,1100.8886,
+ 0,0,1,-388.426686,-259.538414,1100.8886,
+ 0,0,1,-389.30762,-582.640028,1100.8886,
+ 0,0,1,-268.159753,-647.394912,1100.8886,
+ 0,0,1,-388.426686,-259.538414,1100.8886,
+ 0,0,1,-268.159753,-647.394912,1100.8886,
+ 0,0,1,-330.329744,-330.329744,1100.8886,
+ 0,0,1,-330.329744,-330.329744,1100.8886,
+ 0,0,1,-268.159753,-647.394912,1100.8886,
+ 0,0,1,-259.538414,-388.426686,1100.8886,
+ 0,0,1,-259.538414,-388.426686,1100.8886,
+ 0,0,1,-268.159753,-647.394912,1100.8886,
+ 0,0,1,-136.706657,-687.270773,1100.8886,
+ 0,0,1,-259.538414,-388.426686,1100.8886,
+ 0,0,1,-136.706657,-687.270773,1100.8886,
+ 0,0,1,-178.773169,-431.596609,1100.8886,
+ 0,0,1,-178.773169,-431.596609,1100.8886,
+ 0,0,1,-136.706657,-687.270773,1100.8886,
+ 0,0,1,-91.137771,-458.180517,1100.8886,
+ 0,0,1,-91.137771,-458.180517,1100.8886,
+ 0,0,1,-136.706657,-687.270773,1100.8886,
+ 0,0,1,0,-700.735204,1100.8886,
+ 0,0,1,-91.137771,-458.180517,1100.8886,
+ 0,0,1,0,-700.735204,1100.8886,
+ 0,0,1,0,-467.156804,1100.8886,
+ 0,0,1,0,-467.156804,1100.8886,
+ 0,0,1,0,-700.735204,1100.8886,
+ 0,0,1,136.706657,-687.270773,1100.8886,
+ 0,0,1,0,-467.156804,1100.8886,
+ 0,0,1,136.706657,-687.270773,1100.8886,
+ 0,0,1,91.137771,-458.180517,1100.8886,
+ 0,0,1,91.137771,-458.180517,1100.8886,
+ 0,0,1,136.706657,-687.270773,1100.8886,
+ 0,0,1,178.773169,-431.596609,1100.8886,
+ 0,0,1,178.773169,-431.596609,1100.8886,
+ 0,0,1,136.706657,-687.270773,1100.8886,
+ 0,0,1,268.159753,-647.394912,1100.8886,
+ 0,0,1,178.773169,-431.596609,1100.8886,
+ 0,0,1,268.159753,-647.394912,1100.8886,
+ 0,0,1,259.538414,-388.426686,1100.8886,
+ 0,0,1,259.538414,-388.426686,1100.8886,
+ 0,0,1,268.159753,-647.394912,1100.8886,
+ 0,0,1,330.329744,-330.329744,1100.8886,
+ 0,0,1,330.329744,-330.329744,1100.8886,
+ 0,0,1,268.159753,-647.394912,1100.8886,
+ 0,0,1,389.30762,-582.640028,1100.8886,
+ 0,0,1,330.329744,-330.329744,1100.8886,
+ 0,0,1,389.30762,-582.640028,1100.8886,
+ 0,0,1,388.426686,-259.538414,1100.8886,
+ 0,0,1,388.426686,-259.538414,1100.8886,
+ 0,0,1,389.30762,-582.640028,1100.8886,
+ 0,0,1,431.596609,-178.773169,1100.8886,
+ 0,0,1,431.596609,-178.773169,1100.8886,
+ 0,0,1,389.30762,-582.640028,1100.8886,
+ 0,0,1,495.494614,-495.494614,1100.8886,
+ 0,0,1,431.596609,-178.773169,1100.8886,
+ 0,0,1,495.494614,-495.494614,1100.8886,
+ 0,0,1,458.180517,-91.137771,1100.8886,
+ 0,0,1,458.180517,-91.137771,1100.8886,
+ 0,0,1,495.494614,-495.494614,1100.8886,
+ 0,0,1,467.156804,0,1100.8886,
+ 0,0,1,467.156804,0,1100.8886,
+ 0,0,1,495.494614,-495.494614,1100.8886,
+ 0,0,1,700.735204,-0,1100.8886,
+ 0,0,1,700.735204,-0,1100.8886,
+ 0,0,1,495.494614,-495.494614,1100.8886,
+ 0,0,1,582.640028,-389.30762,1100.8886,
+ 0,0,1,700.735204,-0,1100.8886,
+ 0,0,1,582.640028,-389.30762,1100.8886,
+ 0,0,1,647.394912,-268.159753,1100.8886,
+ 0,0,1,700.735204,-0,1100.8886,
+ 0,0,1,647.394912,-268.159753,1100.8886,
+ 0,0,1,687.270773,-136.706657,1100.8886,
+ 0,0,1,-733.088824,-145.820434,1287.75132,
+ 0,0,1,-607.303844,0,1287.75132,
+ 0,0,1,-747.450884,0,1287.75132,
+ 0,0,1,-607.303844,0,1287.75132,
+ 0,0,1,-733.088824,-145.820434,1287.75132,
+ 0,0,1,-690.554573,-286.03707,1287.75132,
+ 0,0,1,-607.303844,0,1287.75132,
+ 0,0,1,-690.554573,-286.03707,1287.75132,
+ 0,0,1,-621.482696,-415.261462,1287.75132,
+ 0,0,1,-607.303844,0,1287.75132,
+ 0,0,1,-621.482696,-415.261462,1287.75132,
+ 0,0,1,-595.634671,-118.479102,1287.75132,
+ 0,0,1,-595.634671,-118.479102,1287.75132,
+ 0,0,1,-621.482696,-415.261462,1287.75132,
+ 0,0,1,-528.527588,-528.527588,1287.75132,
+ 0,0,1,-595.634671,-118.479102,1287.75132,
+ 0,0,1,-528.527588,-528.527588,1287.75132,
+ 0,0,1,-561.075591,-232.405119,1287.75132,
+ 0,0,1,-561.075591,-232.405119,1287.75132,
+ 0,0,1,-528.527588,-528.527588,1287.75132,
+ 0,0,1,-504.954691,-337.399938,1287.75132,
+ 0,0,1,-504.954691,-337.399938,1287.75132,
+ 0,0,1,-528.527588,-528.527588,1287.75132,
+ 0,0,1,-415.261462,-621.482696,1287.75132,
+ 0,0,1,-504.954691,-337.399938,1287.75132,
+ 0,0,1,-415.261462,-621.482696,1287.75132,
+ 0,0,1,-429.428666,-429.428666,1287.75132,
+ 0,0,1,-429.428666,-429.428666,1287.75132,
+ 0,0,1,-415.261462,-621.482696,1287.75132,
+ 0,0,1,-337.399938,-504.954691,1287.75132,
+ 0,0,1,-337.399938,-504.954691,1287.75132,
+ 0,0,1,-415.261462,-621.482696,1287.75132,
+ 0,0,1,-286.03707,-690.554573,1287.75132,
+ 0,0,1,-337.399938,-504.954691,1287.75132,
+ 0,0,1,-286.03707,-690.554573,1287.75132,
+ 0,0,1,-232.405119,-561.075591,1287.75132,
+ 0,0,1,-232.405119,-561.075591,1287.75132,
+ 0,0,1,-286.03707,-690.554573,1287.75132,
+ 0,0,1,-145.820434,-733.088824,1287.75132,
+ 0,0,1,-232.405119,-561.075591,1287.75132,
+ 0,0,1,-145.820434,-733.088824,1287.75132,
+ 0,0,1,-118.479102,-595.634671,1287.75132,
+ 0,0,1,-118.479102,-595.634671,1287.75132,
+ 0,0,1,-145.820434,-733.088824,1287.75132,
+ 0,0,1,0,-747.450884,1287.75132,
+ 0,0,1,-118.479102,-595.634671,1287.75132,
+ 0,0,1,0,-747.450884,1287.75132,
+ 0,0,1,0,-607.303844,1287.75132,
+ 0,0,1,0,-607.303844,1287.75132,
+ 0,0,1,0,-747.450884,1287.75132,
+ 0,0,1,145.820434,-733.088824,1287.75132,
+ 0,0,1,0,-607.303844,1287.75132,
+ 0,0,1,145.820434,-733.088824,1287.75132,
+ 0,0,1,118.479102,-595.634671,1287.75132,
+ 0,0,1,118.479102,-595.634671,1287.75132,
+ 0,0,1,145.820434,-733.088824,1287.75132,
+ 0,0,1,232.405119,-561.075591,1287.75132,
+ 0,0,1,232.405119,-561.075591,1287.75132,
+ 0,0,1,145.820434,-733.088824,1287.75132,
+ 0,0,1,286.03707,-690.554573,1287.75132,
+ 0,0,1,232.405119,-561.075591,1287.75132,
+ 0,0,1,286.03707,-690.554573,1287.75132,
+ 0,0,1,337.399938,-504.954691,1287.75132,
+ 0,0,1,337.399938,-504.954691,1287.75132,
+ 0,0,1,286.03707,-690.554573,1287.75132,
+ 0,0,1,415.261462,-621.482696,1287.75132,
+ 0,0,1,337.399938,-504.954691,1287.75132,
+ 0,0,1,415.261462,-621.482696,1287.75132,
+ 0,0,1,429.428666,-429.428666,1287.75132,
+ 0,0,1,429.428666,-429.428666,1287.75132,
+ 0,0,1,415.261462,-621.482696,1287.75132,
+ 0,0,1,528.527588,-528.527588,1287.75132,
+ 0,0,1,429.428666,-429.428666,1287.75132,
+ 0,0,1,528.527588,-528.527588,1287.75132,
+ 0,0,1,504.954691,-337.399938,1287.75132,
+ 0,0,1,504.954691,-337.399938,1287.75132,
+ 0,0,1,528.527588,-528.527588,1287.75132,
+ 0,0,1,561.075591,-232.405119,1287.75132,
+ 0,0,1,561.075591,-232.405119,1287.75132,
+ 0,0,1,528.527588,-528.527588,1287.75132,
+ 0,0,1,621.482696,-415.261462,1287.75132,
+ 0,0,1,561.075591,-232.405119,1287.75132,
+ 0,0,1,621.482696,-415.261462,1287.75132,
+ 0,0,1,595.634671,-118.479102,1287.75132,
+ 0,0,1,595.634671,-118.479102,1287.75132,
+ 0,0,1,621.482696,-415.261462,1287.75132,
+ 0,0,1,607.303844,-0,1287.75132,
+ 0,0,1,607.303844,-0,1287.75132,
+ 0,0,1,621.482696,-415.261462,1287.75132,
+ 0,0,1,747.450884,-0,1287.75132,
+ 0,0,1,747.450884,-0,1287.75132,
+ 0,0,1,621.482696,-415.261462,1287.75132,
+ 0,0,1,690.554573,-286.03707,1287.75132,
+ 0,0,1,747.450884,-0,1287.75132,
+ 0,0,1,690.554573,-286.03707,1287.75132,
+ 0,0,1,733.088824,-145.820434,1287.75132,
+ 0.024376,0.742479,0.669425,0,-699.298837,628.271002,
+ 0.105345,0.638437,0.762431,-126.938055,-638.160695,587.016307,
+ 0.168758,0.723457,0.669425,-136.426435,-685.862006,628.271002,
+ 0.105345,0.638437,0.762431,-126.938055,-638.160695,587.016307,
+ 0.024376,0.742479,0.669425,0,-699.298837,628.271002,
+ -0.021232,0.646722,0.762431,0,-650.663002,587.016307,
+ 0.380165,0.917193,0.119297,-373.870315,-902.602786,1967.393306,
+ 0.18999,0.952778,0.236891,-188.233089,-946.311642,1900.552851,
+ 0.372217,0.897406,0.236891,-369.232486,-891.406075,1900.552851,
+ 0.18999,0.952778,0.236891,-188.233089,-946.311642,1900.552851,
+ 0.380165,0.917193,0.119297,-373.870315,-902.602786,1967.393306,
+ 0.193925,0.973736,0.119297,-190.597434,-958.198007,1967.393306,
+ 0.632456,0.632456,-0.447214,-462.46164,-462.46164,1474.61404,
+ 0.521108,0.727062,-0.447021,-415.261462,-621.482696,1287.75132,
+ 0.632456,0.632456,-0.447214,-528.527588,-528.527588,1287.75132,
+ 0.521108,0.727062,-0.447021,-415.261462,-621.482696,1287.75132,
+ 0.632456,0.632456,-0.447214,-462.46164,-462.46164,1474.61404,
+ 0.472298,0.759676,-0.447021,-363.353779,-543.79736,1474.61404,
+ 0.917371,0.379736,-0.119297,-902.602786,-373.870315,2103.011094,
+ 0.808059,0.539373,-0.236891,-802.244273,-536.042486,2169.851549,
+ 0.825661,0.55141,-0.119297,-812.321046,-542.77557,2103.011094,
+ 0.808059,0.539373,-0.236891,-802.244273,-536.042486,2169.851549,
+ 0.917371,0.379736,-0.119297,-902.602786,-373.870315,2103.011094,
+ 0.897759,0.371365,-0.236891,-891.406075,-369.232486,2169.851549,
+ 0.812792,0.582554,0,-815.696038,-545.030668,2035.2022,
+ 0.7036,0.7036,-0.099466,-690.822265,-690.822265,2103.011094,
+ 0.692994,0.720844,0.011969,-693.692459,-693.692459,2035.2022,
+ 0.7036,0.7036,-0.099466,-690.822265,-690.822265,2103.011094,
+ 0.812792,0.582554,0,-815.696038,-545.030668,2035.2022,
+ 0.825661,0.55141,-0.119297,-812.321046,-542.77557,2103.011094,
+ 0.825661,0.55141,-0.119297,-812.321046,-542.77557,2103.011094,
+ 0.690185,0.690185,-0.217461,-682.252673,-682.252673,2169.851549,
+ 0.7036,0.7036,-0.099466,-690.822265,-690.822265,2103.011094,
+ 0.690185,0.690185,-0.217461,-682.252673,-682.252673,2169.851549,
+ 0.825661,0.55141,-0.119297,-812.321046,-542.77557,2103.011094,
+ 0.808059,0.539373,-0.236891,-802.244273,-536.042486,2169.851549,
+ 0.808059,0.539373,-0.236891,-802.244273,-536.042486,2169.851549,
+ 0.666912,0.666912,-0.332349,-668.106075,-668.106075,2234.768955,
+ 0.690185,0.690185,-0.217461,-682.252673,-682.252673,2169.851549,
+ 0.666912,0.666912,-0.332349,-668.106075,-668.106075,2234.768955,
+ 0.808059,0.539373,-0.236891,-802.244273,-536.042486,2169.851549,
+ 0.778916,0.519633,-0.3511,-785.609633,-524.927574,2234.768955,
+ 0.778916,0.519633,-0.3511,-785.609633,-524.927574,2234.768955,
+ 0.634114,0.634114,-0.442491,-648.584509,-648.584509,2296.83617,
+ 0.666912,0.666912,-0.332349,-668.106075,-668.106075,2234.768955,
+ 0.634114,0.634114,-0.442491,-648.584509,-648.584509,2296.83617,
+ 0.778916,0.519633,-0.3511,-785.609633,-524.927574,2234.768955,
+ 0.738649,0.49247,-0.460294,-762.654701,-509.589579,2296.83617,
+ -0.69529,0.261614,0.669425,646.067883,-267.610079,628.271002,
+ -0.630153,0.146993,0.762431,638.160695,-126.938055,587.016307,
+ -0.589368,0.267106,0.762431,601.13423,-248.997951,587.016307,
+ -0.630153,0.146993,0.762431,638.160695,-126.938055,587.016307,
+ -0.69529,0.261614,0.669425,646.067883,-267.610079,628.271002,
+ -0.732968,0.120943,0.669425,685.862006,-136.426435,628.271002,
+ -0.869022,0.085591,0.487313,735.304703,-0,680.911024,
+ -0.732968,0.120943,0.669425,685.862006,-136.426435,628.271002,
+ -0.876472,0.172332,0.449554,721.176029,-143.450831,680.911024,
+ -0.732968,0.120943,0.669425,685.862006,-136.426435,628.271002,
+ -0.869022,0.085591,0.487313,735.304703,-0,680.911024,
+ -0.740721,0.072955,0.66784,699.298837,-0,628.271002,
+ -0.966069,0.095149,0.240119,756.121025,-0,741.194313,
+ -0.876472,0.172332,0.449554,721.176029,-143.450831,680.911024,
+ -0.961634,0.1904,0.197505,741.592372,-147.511894,741.194313,
+ -0.876472,0.172332,0.449554,721.176029,-143.450831,680.911024,
+ -0.966069,0.095149,0.240119,756.121025,-0,741.194313,
+ -0.869022,0.085591,0.487313,735.304703,-0,680.911024,
+ 0.687833,0.458274,0.562913,-733.707316,-490.247555,1715.237645,
+ 0.820532,0.338904,0.460294,-847.416499,-351.011407,1773.56823,
+ 0.738649,0.49247,0.460294,-762.654701,-509.589579,1773.56823,
+ 0.820532,0.338904,0.460294,-847.416499,-351.011407,1773.56823,
+ 0.687833,0.458274,0.562913,-733.707316,-490.247555,1715.237645,
+ 0.764021,0.315278,0.562913,-815.251889,-337.688389,1715.237645,
+ -0.992863,0.097788,-0.068268,760.268019,-0,804.835469,
+ -0.961634,0.1904,0.197505,741.592372,-147.511894,741.194313,
+ -0.971564,0.226633,-0.06856,745.659682,-148.320933,804.835469,
+ -0.961634,0.1904,0.197505,741.592372,-147.511894,741.194313,
+ -0.992863,0.097788,-0.068268,760.268019,-0,804.835469,
+ -0.966069,0.095149,0.240119,756.121025,-0,741.194313,
+ -0.966549,0.159485,-0.200867,733.088824,-145.820434,867.310387,
+ -0.992863,0.097788,-0.068268,760.268019,-0,804.835469,
+ -0.971564,0.226633,-0.06856,745.659682,-148.320933,804.835469,
+ -0.992863,0.097788,-0.068268,760.268019,-0,804.835469,
+ -0.966549,0.159485,-0.200867,733.088824,-145.820434,867.310387,
+ -0.975069,0.096036,-0.200042,747.450884,-0,867.310387,
+ -0.638915,0.062928,-0.766699,467.156804,0,1100.8886,
+ -0.631844,0.104257,-0.768052,733.088824,-145.820434,867.310387,
+ -0.623645,0.145475,-0.768052,458.180517,-91.137771,1100.8886,
+ -0.631844,0.104257,-0.768052,733.088824,-145.820434,867.310387,
+ -0.638915,0.062928,-0.766699,467.156804,0,1100.8886,
+ -0.638915,0.062928,-0.766699,747.450884,-0,867.310387,
+ 0.814754,0.369253,-0.447021,-733.714234,-303.914386,1474.61404,
+ 0.759676,0.472298,-0.447021,-582.640028,-389.30762,1661.47676,
+ 0.727062,0.521108,-0.447021,-660.325365,-441.215303,1474.61404,
+ 0.759676,0.472298,-0.447021,-582.640028,-389.30762,1661.47676,
+ 0.814754,0.369253,-0.447021,-733.714234,-303.914386,1474.61404,
+ 0.837219,0.315017,-0.447021,-647.394912,-268.159753,1661.47676,
+ 0.764021,0.315278,-0.562913,-815.251889,-337.688389,2355.166755,
+ 0.672244,0.417941,-0.611076,-699.180902,-467.177743,2408.92764,
+ 0.687833,0.458274,-0.562913,-733.707316,-490.247555,2355.166755,
+ 0.672244,0.417941,-0.611076,-699.180902,-467.177743,2408.92764,
+ 0.764021,0.315278,-0.562913,-815.251889,-337.688389,2355.166755,
+ 0.740863,0.278762,-0.611076,-776.888194,-321.797626,2408.92764,
+ 0.820532,0.338904,-0.460294,-847.416499,-351.011407,2296.83617,
+ 0.687833,0.458274,-0.562913,-733.707316,-490.247555,2355.166755,
+ 0.738649,0.49247,-0.460294,-762.654701,-509.589579,2296.83617,
+ 0.687833,0.458274,-0.562913,-733.707316,-490.247555,2355.166755,
+ 0.820532,0.338904,-0.460294,-847.416499,-351.011407,2296.83617,
+ 0.764021,0.315278,-0.562913,-815.251889,-337.688389,2355.166755,
+ 0.781011,0.12887,0.611076,-824.740108,-164.051007,1661.47676,
+ 0.812508,0.080025,0.577431,-882.422286,0,1715.237645,
+ 0.810848,0.160167,0.562913,-865.466789,-172.152048,1715.237645,
+ 0.812508,0.080025,0.577431,-882.422286,0,1715.237645,
+ 0.781011,0.12887,0.611076,-824.740108,-164.051007,1661.47676,
+ 0.789019,0.077712,0.609434,-840.897722,0,1661.47676,
+ 0.623645,0.145475,-0.768052,-458.180517,-91.137771,1100.8886,
+ 0.599364,0.22552,-0.768052,-690.554573,-286.03707,867.310387,
+ 0.631844,0.104257,-0.768052,-733.088824,-145.820434,867.310387,
+ 0.599364,0.22552,-0.768052,-690.554573,-286.03707,867.310387,
+ 0.623645,0.145475,-0.768052,-458.180517,-91.137771,1100.8886,
+ 0.583281,0.264347,-0.768052,-431.596609,-178.773169,1100.8886,
+ 0.810848,0.160167,-0.562913,-865.466789,-172.152048,2355.166755,
+ 0.740863,0.278762,-0.611076,-776.888194,-321.797626,2408.92764,
+ 0.764021,0.315278,-0.562913,-815.251889,-337.688389,2355.166755,
+ 0.740863,0.278762,-0.611076,-776.888194,-321.797626,2408.92764,
+ 0.810848,0.160167,-0.562913,-865.466789,-172.152048,2355.166755,
+ 0.781011,0.12887,-0.611076,-824.740108,-164.051007,2408.92764,
+ 0.871137,0.203207,-0.447021,-733.088824,-145.820434,1287.75132,
+ 0.837219,0.315017,-0.447021,-604.235252,-250.282436,1474.61404,
+ 0.814754,0.369253,-0.447021,-690.554573,-286.03707,1287.75132,
+ 0.837219,0.315017,-0.447021,-604.235252,-250.282436,1474.61404,
+ 0.871137,0.203207,-0.447021,-733.088824,-145.820434,1287.75132,
+ 0.882589,0.145631,-0.447021,-641.452722,-127.592879,1474.61404,
+ 0.973856,0.227168,-0,-962.179081,-191.389319,2035.2022,
+ 0.917371,0.379736,-0.119297,-902.602786,-373.870315,2103.011094,
+ 0.910825,0.412792,0,-906.352876,-375.423654,2035.2022,
+ 0.917371,0.379736,-0.119297,-902.602786,-373.870315,2103.011094,
+ 0.973856,0.227168,-0,-962.179081,-191.389319,2035.2022,
+ 0.973826,0.193469,-0.119297,-958.198007,-190.597434,2103.011094,
+ 0.973856,0.227168,-0,-733.088824,-145.820434,2408.92764,
+ 0.935939,0.352162,-0,-690.554573,-286.03707,2549.07468,
+ 0.910825,0.412792,0,-690.554573,-286.03707,2408.92764,
+ 0.935939,0.352162,-0,-690.554573,-286.03707,2549.07468,
+ 0.973856,0.227168,-0,-733.088824,-145.820434,2408.92764,
+ 0.986659,0.162803,-0,-733.088824,-145.820434,2549.07468,
+ 0.961634,0.1904,0.197505,-741.592372,-147.511894,741.194313,
+ 0.992863,0.097788,-0.068268,-760.268019,0,804.835469,
+ 0.971564,0.226633,-0.06856,-745.659682,-148.320933,804.835469,
+ 0.992863,0.097788,-0.068268,-760.268019,0,804.835469,
+ 0.961634,0.1904,0.197505,-741.592372,-147.511894,741.194313,
+ 0.966069,0.095149,0.240119,-756.121025,0,741.194313,
+ -0.001099,0.826515,-0.562913,0,-882.422286,2355.166755,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ -0.000898,0.887766,-0.460294,0,-917.237009,2296.83617,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ -0.001099,0.826515,-0.562913,0,-882.422286,2355.166755,
+ -0.162323,0.81042,-0.562913,172.152048,-865.466789,2355.166755,
+ -0.025974,0.791146,-0.611076,0,-840.897722,2408.92764,
+ -0.162323,0.81042,-0.562913,172.152048,-865.466789,2355.166755,
+ -0.001099,0.826515,-0.562913,0,-882.422286,2355.166755,
+ -0.162323,0.81042,-0.562913,172.152048,-865.466789,2355.166755,
+ -0.025974,0.791146,-0.611076,0,-840.897722,2408.92764,
+ -0.179819,0.770877,-0.611076,164.051007,-824.740108,2408.92764,
+ 0.764021,0.315278,0.562913,-815.251889,-337.688389,1715.237645,
+ 0.870883,0.172314,0.460294,-899.612557,-178.944064,1773.56823,
+ 0.820532,0.338904,0.460294,-847.416499,-351.011407,1773.56823,
+ 0.870883,0.172314,0.460294,-899.612557,-178.944064,1773.56823,
+ 0.764021,0.315278,0.562913,-815.251889,-337.688389,1715.237645,
+ 0.810848,0.160167,0.562913,-865.466789,-172.152048,1715.237645,
+ 0.687833,0.458274,-0.562913,-733.707316,-490.247555,2355.166755,
+ 0.559613,0.559613,-0.611282,-594.604481,-594.604481,2408.92764,
+ 0.59226,0.59226,-0.546311,-623.966782,-623.966782,2355.166755,
+ 0.559613,0.559613,-0.611282,-594.604481,-594.604481,2408.92764,
+ 0.687833,0.458274,-0.562913,-733.707316,-490.247555,2355.166755,
+ 0.672244,0.417941,-0.611076,-699.180902,-467.177743,2408.92764,
+ 0.693789,0.692567,0.197505,-534.658304,-534.658304,741.194313,
+ 0.497902,0.741616,0.449554,-408.513405,-611.383516,680.911024,
+ 0.633017,0.630231,0.449554,-519.938942,-519.938942,680.911024,
+ 0.497902,0.741616,0.449554,-408.513405,-611.383516,680.911024,
+ 0.693789,0.692567,0.197505,-534.658304,-534.658304,741.194313,
+ 0.545345,0.814611,0.197505,-420.078334,-628.691656,741.194313,
+ 0.692336,0.720367,-0.041734,-537.590672,-537.590672,804.835469,
+ 0.545345,0.814611,0.197505,-420.078334,-628.691656,741.194313,
+ 0.693789,0.692567,0.197505,-534.658304,-534.658304,741.194313,
+ 0.545345,0.814611,0.197505,-420.078334,-628.691656,741.194313,
+ 0.692336,0.720367,-0.041734,-537.590672,-537.590672,804.835469,
+ 0.554012,0.829678,-0.068597,-422.38228,-632.139755,804.835469,
+ 0.69268,0.69268,-0.200971,-528.527588,-528.527588,867.310387,
+ 0.554012,0.829678,-0.068597,-422.38228,-632.139755,804.835469,
+ 0.692336,0.720367,-0.041734,-537.590672,-537.590672,804.835469,
+ 0.554012,0.829678,-0.068597,-422.38228,-632.139755,804.835469,
+ 0.69268,0.69268,-0.200971,-528.527588,-528.527588,867.310387,
+ 0.517227,0.831943,-0.200867,-415.261462,-621.482696,867.310387,
+ 0.43772,0.467437,-0.768052,-330.329744,-330.329744,1100.8886,
+ 0.37306,0.520502,-0.768052,-415.261462,-621.482696,867.310387,
+ 0.467437,0.43772,-0.768052,-528.527588,-528.527588,867.310387,
+ 0.37306,0.520502,-0.768052,-415.261462,-621.482696,867.310387,
+ 0.43772,0.467437,-0.768052,-330.329744,-330.329744,1100.8886,
+ 0.338117,0.54385,-0.768052,-259.538414,-388.426686,1100.8886,
+ 0.908682,0.411821,-0.06856,-702.396062,-290.941975,804.835469,
+ 0.831943,0.517227,-0.200867,-621.482696,-415.261462,867.310387,
+ 0.81088,0.581183,-0.06856,-632.139755,-422.38228,804.835469,
+ 0.831943,0.517227,-0.200867,-621.482696,-415.261462,867.310387,
+ 0.908682,0.411821,-0.06856,-702.396062,-290.941975,804.835469,
+ 0.916863,0.344985,-0.200867,-690.554573,-286.03707,867.310387,
+ 0.738649,0.49247,-0.460294,-762.654701,-509.589579,2296.83617,
+ 0.59226,0.59226,-0.546311,-623.966782,-623.966782,2355.166755,
+ 0.634114,0.634114,-0.442491,-648.584509,-648.584509,2296.83617,
+ 0.59226,0.59226,-0.546311,-623.966782,-623.966782,2355.166755,
+ 0.738649,0.49247,-0.460294,-762.654701,-509.589579,2296.83617,
+ 0.687833,0.458274,-0.562913,-733.707316,-490.247555,2355.166755,
+ -0.01288,0.939228,0.343052,0,-944.844672,1835.635445,
+ -0.172314,0.870883,0.460294,178.944064,-899.612557,1773.56823,
+ 0.000898,0.887766,0.460294,0,-917.237009,1773.56823,
+ -0.172314,0.870883,0.460294,178.944064,-899.612557,1773.56823,
+ -0.01288,0.939228,0.343052,0,-944.844672,1835.635445,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ 0.472298,0.759676,-0.447021,-363.353779,-543.79736,1474.61404,
+ 0.369253,0.814754,-0.447021,-286.03707,-690.554573,1287.75132,
+ 0.521108,0.727062,-0.447021,-415.261462,-621.482696,1287.75132,
+ 0.369253,0.814754,-0.447021,-286.03707,-690.554573,1287.75132,
+ 0.472298,0.759676,-0.447021,-363.353779,-543.79736,1474.61404,
+ 0.315017,0.837219,-0.447021,-250.282436,-604.235252,1474.61404,
+ 0.727062,0.521108,-0.447021,-582.640028,-389.30762,1100.8886,
+ 0.632456,0.632456,-0.447214,-429.428666,-429.428666,1287.75132,
+ 0.632456,0.632456,-0.447214,-495.494614,-495.494614,1100.8886,
+ 0.632456,0.632456,-0.447214,-429.428666,-429.428666,1287.75132,
+ 0.727062,0.521108,-0.447021,-582.640028,-389.30762,1100.8886,
+ 0.759676,0.472298,-0.447021,-504.954691,-337.399938,1287.75132,
+ -0.032813,0.999462,-0,0,-747.450884,2549.07468,
+ -0.162803,0.986659,-0,145.820434,-733.088824,2408.92764,
+ 0.032813,0.999462,-0,0,-747.450884,2408.92764,
+ -0.162803,0.986659,-0,145.820434,-733.088824,2408.92764,
+ -0.032813,0.999462,-0,0,-747.450884,2549.07468,
+ -0.227168,0.973856,-0,145.820434,-733.088824,2549.07468,
+ 0.672244,0.417941,0.611076,-699.180902,-467.177743,1661.47676,
+ 0.764021,0.315278,0.562913,-815.251889,-337.688389,1715.237645,
+ 0.687833,0.458274,0.562913,-733.707316,-490.247555,1715.237645,
+ 0.764021,0.315278,0.562913,-815.251889,-337.688389,1715.237645,
+ 0.672244,0.417941,0.611076,-699.180902,-467.177743,1661.47676,
+ 0.740863,0.278762,0.611076,-776.888194,-321.797626,1661.47676,
+ 0.917371,0.379736,0.119297,-902.602786,-373.870315,1967.393306,
+ 0.973856,0.227168,-0,-962.179081,-191.389319,2035.2022,
+ 0.910825,0.412792,0,-906.352876,-375.423654,2035.2022,
+ 0.973856,0.227168,-0,-962.179081,-191.389319,2035.2022,
+ 0.917371,0.379736,0.119297,-902.602786,-373.870315,1967.393306,
+ 0.973826,0.193469,0.119297,-958.198007,-190.597434,1967.393306,
+ 0.814754,0.369253,-0.447021,-647.394912,-268.159753,1100.8886,
+ 0.759676,0.472298,-0.447021,-504.954691,-337.399938,1287.75132,
+ 0.727062,0.521108,-0.447021,-582.640028,-389.30762,1100.8886,
+ 0.759676,0.472298,-0.447021,-504.954691,-337.399938,1287.75132,
+ 0.814754,0.369253,-0.447021,-647.394912,-268.159753,1100.8886,
+ 0.837219,0.315017,-0.447021,-561.075591,-232.405119,1287.75132,
+ 0.995185,0.098017,-0,-747.450884,0,2408.92764,
+ 0.986659,0.162803,-0,-733.088824,-145.820434,2549.07468,
+ 0.973856,0.227168,-0,-733.088824,-145.820434,2408.92764,
+ 0.986659,0.162803,-0,-733.088824,-145.820434,2549.07468,
+ 0.995185,0.098017,-0,-747.450884,0,2408.92764,
+ 0.995185,0.098017,0,-747.450884,0,2549.07468,
+ 0.630892,0.392232,0.669425,-581.445733,-388.509618,628.271002,
+ 0.589368,0.267106,0.762431,-601.13423,-248.997951,587.016307,
+ 0.69529,0.261614,0.669425,-646.067883,-267.610079,628.271002,
+ 0.589368,0.267106,0.762431,-601.13423,-248.997951,587.016307,
+ 0.630892,0.392232,0.669425,-581.445733,-388.509618,628.271002,
+ 0.525933,0.376953,0.762431,-541.006514,-361.488996,587.016307,
+ 0.542249,0.507776,0.669425,-494.47895,-494.47895,628.271002,
+ 0.743805,0.494626,0.449554,-611.383516,-408.513405,680.911024,
+ 0.633017,0.630231,0.449554,-519.938942,-519.938942,680.911024,
+ 0.743805,0.494626,0.449554,-611.383516,-408.513405,680.911024,
+ 0.542249,0.507776,0.669425,-494.47895,-494.47895,628.271002,
+ 0.630892,0.392232,0.669425,-581.445733,-388.509618,628.271002,
+ 0.693789,0.692567,0.197505,-534.658304,-534.658304,741.194313,
+ 0.81088,0.581183,-0.06856,-632.139755,-422.38228,804.835469,
+ 0.692336,0.720367,-0.041734,-537.590672,-537.590672,804.835469,
+ 0.81088,0.581183,-0.06856,-632.139755,-422.38228,804.835469,
+ 0.693789,0.692567,0.197505,-534.658304,-534.658304,741.194313,
+ 0.815571,0.543908,0.197505,-628.691656,-420.078334,741.194313,
+ 0.81088,0.581183,-0.06856,-632.139755,-422.38228,804.835469,
+ 0.69268,0.69268,-0.200971,-528.527588,-528.527588,867.310387,
+ 0.692336,0.720367,-0.041734,-537.590672,-537.590672,804.835469,
+ 0.69268,0.69268,-0.200971,-528.527588,-528.527588,867.310387,
+ 0.81088,0.581183,-0.06856,-632.139755,-422.38228,804.835469,
+ 0.831943,0.517227,-0.200867,-621.482696,-415.261462,867.310387,
+ 0.520502,0.37306,-0.768052,-388.426686,-259.538414,1100.8886,
+ 0.467437,0.43772,-0.768052,-528.527588,-528.527588,867.310387,
+ 0.54385,0.338117,-0.768052,-621.482696,-415.261462,867.310387,
+ 0.467437,0.43772,-0.768052,-528.527588,-528.527588,867.310387,
+ 0.520502,0.37306,-0.768052,-388.426686,-259.538414,1100.8886,
+ 0.43772,0.467437,-0.768052,-330.329744,-330.329744,1100.8886,
+ 0.12887,0.781011,-0.611076,-164.051007,-824.740108,2408.92764,
+ -0.001099,0.826515,-0.562913,0,-882.422286,2355.166755,
+ 0.160167,0.810848,-0.562913,-172.152048,-865.466789,2355.166755,
+ -0.001099,0.826515,-0.562913,0,-882.422286,2355.166755,
+ 0.12887,0.781011,-0.611076,-164.051007,-824.740108,2408.92764,
+ -0.025974,0.791146,-0.611076,0,-840.897722,2408.92764,
+ 0.702221,0.701893,0.119297,-690.822265,-690.822265,1967.393306,
+ 0.54014,0.807547,0.236891,-536.042486,-802.244273,1900.552851,
+ 0.687306,0.686654,0.236891,-682.252673,-682.252673,1900.552851,
+ 0.54014,0.807547,0.236891,-536.042486,-802.244273,1900.552851,
+ 0.702221,0.701893,0.119297,-690.822265,-690.822265,1967.393306,
+ 0.551796,0.825403,0.119297,-542.77557,-812.321046,1967.393306,
+ -0.882589,0.145631,-0.447021,595.634671,-118.479102,1287.75132,
+ -0.890977,0.087754,-0.445488,700.735204,-0,1100.8886,
+ -0.871137,0.203207,-0.447021,687.270773,-136.706657,1100.8886,
+ -0.890977,0.087754,-0.445488,700.735204,-0,1100.8886,
+ -0.882589,0.145631,-0.447021,595.634671,-118.479102,1287.75132,
+ -0.890977,0.087754,-0.445488,607.303844,-0,1287.75132,
+ 0.00197,0.893251,0.449554,0,-735.304703,680.911024,
+ -0.130866,0.717913,0.683722,136.426435,-685.862006,628.271002,
+ 0.024376,0.742479,0.669425,0,-699.298837,628.271002,
+ -0.130866,0.717913,0.683722,136.426435,-685.862006,628.271002,
+ 0.00197,0.893251,0.449554,0,-735.304703,680.911024,
+ -0.172332,0.876472,0.449554,143.450831,-721.176029,680.911024,
+ 0.778916,0.519633,0.3511,-785.609633,-524.927574,1835.635445,
+ 0.897759,0.371365,0.236891,-891.406075,-369.232486,1900.552851,
+ 0.808059,0.539373,0.236891,-802.244273,-536.042486,1900.552851,
+ 0.897759,0.371365,0.236891,-891.406075,-369.232486,1900.552851,
+ 0.778916,0.519633,0.3511,-785.609633,-524.927574,1835.635445,
+ 0.865325,0.357689,0.3511,-872.922654,-361.576402,1835.635445,
+ 0.875139,0.086194,-0.476133,-917.237009,0,2296.83617,
+ 0.810848,0.160167,-0.562913,-865.466789,-172.152048,2355.166755,
+ 0.870883,0.172314,-0.460294,-899.612557,-178.944064,2296.83617,
+ 0.810848,0.160167,-0.562913,-865.466789,-172.152048,2355.166755,
+ 0.875139,0.086194,-0.476133,-917.237009,0,2296.83617,
+ 0.812508,0.080025,-0.577431,-882.422286,0,2355.166755,
+ 0.315278,0.764021,-0.562913,-337.688389,-815.251889,2355.166755,
+ 0.172314,0.870883,-0.460294,-178.944064,-899.612557,2296.83617,
+ 0.338904,0.820532,-0.460294,-351.011407,-847.416499,2296.83617,
+ 0.172314,0.870883,-0.460294,-178.944064,-899.612557,2296.83617,
+ 0.315278,0.764021,-0.562913,-337.688389,-815.251889,2355.166755,
+ 0.160167,0.810848,-0.562913,-172.152048,-865.466789,2355.166755,
+ 0.278762,0.740863,-0.611076,-321.797626,-776.888194,2408.92764,
+ 0.160167,0.810848,-0.562913,-172.152048,-865.466789,2355.166755,
+ 0.315278,0.764021,-0.562913,-337.688389,-815.251889,2355.166755,
+ 0.160167,0.810848,-0.562913,-172.152048,-865.466789,2355.166755,
+ 0.278762,0.740863,-0.611076,-321.797626,-776.888194,2408.92764,
+ 0.12887,0.781011,-0.611076,-164.051007,-824.740108,2408.92764,
+ 0.890977,0.087754,-0.445488,-747.450884,0,1287.75132,
+ 0.882589,0.145631,-0.447021,-641.452722,-127.592879,1474.61404,
+ 0.871137,0.203207,-0.447021,-733.088824,-145.820434,1287.75132,
+ 0.882589,0.145631,-0.447021,-641.452722,-127.592879,1474.61404,
+ 0.890977,0.087754,-0.445488,-747.450884,0,1287.75132,
+ 0.890977,0.087754,-0.445488,-654.019524,0,1474.61404,
+ 0.585212,0.583657,0.562913,-623.966782,-623.966782,1715.237645,
+ 0.461133,0.643383,0.611076,-467.177743,-699.180902,1661.47676,
+ 0.577791,0.541058,0.611076,-594.604481,-594.604481,1661.47676,
+ 0.461133,0.643383,0.611076,-467.177743,-699.180902,1661.47676,
+ 0.585212,0.583657,0.562913,-623.966782,-623.966782,1715.237645,
+ 0.460101,0.686612,0.562913,-490.247555,-733.707316,1715.237645,
+ 0.371365,0.897759,-0.236891,-369.232486,-891.406075,2169.851549,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.379736,0.917371,-0.119297,-373.870315,-902.602786,2103.011094,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.371365,0.897759,-0.236891,-369.232486,-891.406075,2169.851549,
+ 0.189085,0.952958,-0.236891,-188.233089,-946.311642,2169.851549,
+ 0.910825,0.412792,0,-690.554573,-286.03707,2408.92764,
+ 0.849252,0.527988,0,-621.482696,-415.261462,2549.07468,
+ 0.812792,0.582554,0,-621.482696,-415.261462,2408.92764,
+ 0.849252,0.527988,0,-621.482696,-415.261462,2549.07468,
+ 0.910825,0.412792,0,-690.554573,-286.03707,2408.92764,
+ 0.935939,0.352162,-0,-690.554573,-286.03707,2549.07468,
+ 0.432767,0.603806,0.669425,-388.509618,-581.445733,628.271002,
+ 0.442288,0.472315,0.762431,-460.088221,-460.088221,587.016307,
+ 0.542249,0.507776,0.669425,-494.47895,-494.47895,628.271002,
+ 0.442288,0.472315,0.762431,-460.088221,-460.088221,587.016307,
+ 0.432767,0.603806,0.669425,-388.509618,-581.445733,628.271002,
+ 0.341645,0.549525,0.762431,-361.488996,-541.006514,587.016307,
+ 0.551796,0.825403,0.119297,-542.77557,-812.321046,1967.393306,
+ 0.372217,0.897406,0.236891,-369.232486,-891.406075,1900.552851,
+ 0.54014,0.807547,0.236891,-536.042486,-802.244273,1900.552851,
+ 0.372217,0.897406,0.236891,-369.232486,-891.406075,1900.552851,
+ 0.551796,0.825403,0.119297,-542.77557,-812.321046,1967.393306,
+ 0.380165,0.917193,0.119297,-373.870315,-902.602786,1967.393306,
+ 0.871137,0.203207,-0.447021,-778.906876,-154.934211,1474.61404,
+ 0.837219,0.315017,-0.447021,-647.394912,-268.159753,1661.47676,
+ 0.814754,0.369253,-0.447021,-733.714234,-303.914386,1474.61404,
+ 0.837219,0.315017,-0.447021,-647.394912,-268.159753,1661.47676,
+ 0.871137,0.203207,-0.447021,-778.906876,-154.934211,1474.61404,
+ 0.882589,0.145631,-0.447021,-687.270773,-136.706657,1661.47676,
+ 0.372217,0.897406,0.236891,-369.232486,-891.406075,1900.552851,
+ 0.183341,0.918213,0.3511,-184.330051,-926.689746,1835.635445,
+ 0.358953,0.864801,0.3511,-361.576402,-872.922654,1835.635445,
+ 0.183341,0.918213,0.3511,-184.330051,-926.689746,1835.635445,
+ 0.372217,0.897406,0.236891,-369.232486,-891.406075,1900.552851,
+ 0.18999,0.952778,0.236891,-188.233089,-946.311642,1900.552851,
+ 0.906011,0.374347,0.197505,-698.56474,-289.354989,741.194313,
+ 0.971564,0.226633,-0.06856,-745.659682,-148.320933,804.835469,
+ 0.908682,0.411821,-0.06856,-702.396062,-290.941975,804.835469,
+ 0.971564,0.226633,-0.06856,-745.659682,-148.320933,804.835469,
+ 0.906011,0.374347,0.197505,-698.56474,-289.354989,741.194313,
+ 0.961634,0.1904,0.197505,-741.592372,-147.511894,741.194313,
+ 0.145631,0.882589,-0.447021,-127.592879,-641.452722,1474.61404,
+ 0.029352,0.894042,-0.447021,0,-747.450884,1287.75132,
+ 0.203207,0.871137,-0.447021,-145.820434,-733.088824,1287.75132,
+ 0.029352,0.894042,-0.447021,0,-747.450884,1287.75132,
+ 0.145631,0.882589,-0.447021,-127.592879,-641.452722,1474.61404,
+ -0.029352,0.894042,-0.447021,0,-654.019524,1474.61404,
+ 0.995185,0.098017,-0,-981.029284,-0,2035.2022,
+ 0.973826,0.193469,-0.119297,-958.198007,-190.597434,2103.011094,
+ 0.973856,0.227168,-0,-962.179081,-191.389319,2035.2022,
+ 0.973826,0.193469,-0.119297,-958.198007,-190.597434,2103.011094,
+ 0.995185,0.098017,-0,-981.029284,-0,2035.2022,
+ 0.985604,0.097074,-0.138423,-976.970216,0,2103.011094,
+ 0.810848,0.160167,0.562913,-865.466789,-172.152048,1715.237645,
+ 0.875139,0.086194,0.476133,-917.237009,0,1773.56823,
+ 0.870883,0.172314,0.460294,-899.612557,-178.944064,1773.56823,
+ 0.875139,0.086194,0.476133,-917.237009,0,1773.56823,
+ 0.810848,0.160167,0.562913,-865.466789,-172.152048,1715.237645,
+ 0.812508,0.080025,0.577431,-882.422286,0,1715.237645,
+ 0.925281,0.091132,-0.36817,-944.844672,0,2234.768955,
+ 0.870883,0.172314,-0.460294,-899.612557,-178.944064,2296.83617,
+ 0.91848,0.181999,-0.3511,-926.689746,-184.330051,2234.768955,
+ 0.870883,0.172314,-0.460294,-899.612557,-178.944064,2296.83617,
+ 0.925281,0.091132,-0.36817,-944.844672,0,2234.768955,
+ 0.875139,0.086194,-0.476133,-917.237009,0,2296.83617,
+ 0.738649,0.49247,0.460294,-762.654701,-509.589579,1773.56823,
+ 0.865325,0.357689,0.3511,-872.922654,-361.576402,1835.635445,
+ 0.778916,0.519633,0.3511,-785.609633,-524.927574,1835.635445,
+ 0.865325,0.357689,0.3511,-872.922654,-361.576402,1835.635445,
+ 0.738649,0.49247,0.460294,-762.654701,-509.589579,1773.56823,
+ 0.820532,0.338904,0.460294,-847.416499,-351.011407,1773.56823,
+ 0.82601,0.340012,0.449554,-679.332965,-281.388928,680.911024,
+ 0.961634,0.1904,0.197505,-741.592372,-147.511894,741.194313,
+ 0.906011,0.374347,0.197505,-698.56474,-289.354989,741.194313,
+ 0.961634,0.1904,0.197505,-741.592372,-147.511894,741.194313,
+ 0.82601,0.340012,0.449554,-679.332965,-281.388928,680.911024,
+ 0.876472,0.172332,0.449554,-721.176029,-143.450831,680.911024,
+ 0.472298,0.759676,-0.447021,-389.30762,-582.640028,1661.47676,
+ 0.369253,0.814754,-0.447021,-303.914386,-733.714234,1474.61404,
+ 0.521108,0.727062,-0.447021,-441.215303,-660.325365,1474.61404,
+ 0.369253,0.814754,-0.447021,-303.914386,-733.714234,1474.61404,
+ 0.472298,0.759676,-0.447021,-389.30762,-582.640028,1661.47676,
+ 0.315017,0.837219,-0.447021,-268.159753,-647.394912,1661.47676,
+ 0.577791,0.541058,0.611076,-594.604481,-594.604481,1661.47676,
+ 0.687833,0.458274,0.562913,-733.707316,-490.247555,1715.237645,
+ 0.585212,0.583657,0.562913,-623.966782,-623.966782,1715.237645,
+ 0.687833,0.458274,0.562913,-733.707316,-490.247555,1715.237645,
+ 0.577791,0.541058,0.611076,-594.604481,-594.604481,1661.47676,
+ 0.672244,0.417941,0.611076,-699.180902,-467.177743,1661.47676,
+ 0.585212,0.583657,0.562913,-623.966782,-623.966782,1715.237645,
+ 0.738649,0.49247,0.460294,-762.654701,-509.589579,1773.56823,
+ 0.62838,0.627111,0.460294,-648.584509,-648.584509,1773.56823,
+ 0.738649,0.49247,0.460294,-762.654701,-509.589579,1773.56823,
+ 0.585212,0.583657,0.562913,-623.966782,-623.966782,1715.237645,
+ 0.687833,0.458274,0.562913,-733.707316,-490.247555,1715.237645,
+ 0.633017,0.630231,0.449554,-519.938942,-519.938942,680.911024,
+ 0.815571,0.543908,0.197505,-628.691656,-420.078334,741.194313,
+ 0.693789,0.692567,0.197505,-534.658304,-534.658304,741.194313,
+ 0.815571,0.543908,0.197505,-628.691656,-420.078334,741.194313,
+ 0.633017,0.630231,0.449554,-519.938942,-519.938942,680.911024,
+ 0.743805,0.494626,0.449554,-611.383516,-408.513405,680.911024,
+ 0.732968,0.120943,0.669425,-685.862006,-136.426435,628.271002,
+ 0.645559,0.063582,0.761059,-650.663002,0,587.016307,
+ 0.740721,0.072955,0.66784,-699.298837,0,628.271002,
+ 0.645559,0.063582,0.761059,-650.663002,0,587.016307,
+ 0.732968,0.120943,0.669425,-685.862006,-136.426435,628.271002,
+ 0.630153,0.146993,0.762431,-638.160695,-126.938055,587.016307,
+ 0.7036,0.7036,-0.099466,-690.822265,-690.822265,2103.011094,
+ 0.55557,0.83147,0,-545.030668,-815.696038,2035.2022,
+ 0.692994,0.720844,0.011969,-693.692459,-693.692459,2035.2022,
+ 0.55557,0.83147,0,-545.030668,-815.696038,2035.2022,
+ 0.7036,0.7036,-0.099466,-690.822265,-690.822265,2103.011094,
+ 0.55141,0.825661,-0.119297,-542.77557,-812.321046,2103.011094,
+ 0.690185,0.690185,-0.217461,-682.252673,-682.252673,2169.851549,
+ 0.55141,0.825661,-0.119297,-542.77557,-812.321046,2103.011094,
+ 0.7036,0.7036,-0.099466,-690.822265,-690.822265,2103.011094,
+ 0.55141,0.825661,-0.119297,-542.77557,-812.321046,2103.011094,
+ 0.690185,0.690185,-0.217461,-682.252673,-682.252673,2169.851549,
+ 0.539373,0.808059,-0.236891,-536.042486,-802.244273,2169.851549,
+ -0.032144,0.979091,-0.200867,0,-747.450884,867.310387,
+ -0.194925,0.978416,-0.068597,148.320933,-745.659682,804.835469,
+ -0.0003,0.997644,-0.068597,0,-760.268019,804.835469,
+ -0.194925,0.978416,-0.068597,148.320933,-745.659682,804.835469,
+ -0.032144,0.979091,-0.200867,0,-747.450884,867.310387,
+ -0.222538,0.954007,-0.200867,145.820434,-733.088824,867.310387,
+ -0.104257,0.631844,-0.768052,91.137771,-458.180517,1100.8886,
+ 0,0.640184,-0.768222,0,-747.450884,867.310387,
+ 0,0.640184,-0.768222,0,-467.156804,1100.8886,
+ 0,0.640184,-0.768222,0,-747.450884,867.310387,
+ -0.104257,0.631844,-0.768052,91.137771,-458.180517,1100.8886,
+ -0.145475,0.623645,-0.768052,145.820434,-733.088824,867.310387,
+ 0.820532,0.338904,0.460294,-847.416499,-351.011407,1773.56823,
+ 0.91848,0.181999,0.3511,-926.689746,-184.330051,1835.635445,
+ 0.865325,0.357689,0.3511,-872.922654,-361.576402,1835.635445,
+ 0.91848,0.181999,0.3511,-926.689746,-184.330051,1835.635445,
+ 0.820532,0.338904,0.460294,-847.416499,-351.011407,1773.56823,
+ 0.870883,0.172314,0.460294,-899.612557,-178.944064,1773.56823,
+ 0.193925,0.973736,0.119297,-190.597434,-958.198007,1967.393306,
+ 0.000461,0.971536,0.236891,0,-964.850983,1900.552851,
+ 0.18999,0.952778,0.236891,-188.233089,-946.311642,1900.552851,
+ 0.000461,0.971536,0.236891,0,-964.850983,1900.552851,
+ 0.193925,0.973736,0.119297,-190.597434,-958.198007,1967.393306,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ 0.000864,0.980301,0.197505,0,-756.121025,741.194313,
+ -0.172332,0.876472,0.449554,143.450831,-721.176029,680.911024,
+ 0.00197,0.893251,0.449554,0,-735.304703,680.911024,
+ -0.172332,0.876472,0.449554,143.450831,-721.176029,680.911024,
+ 0.000864,0.980301,0.197505,0,-756.121025,741.194313,
+ -0.1904,0.961634,0.197505,147.511894,-741.592372,741.194313,
+ -0.0003,0.997644,-0.068597,0,-760.268019,804.835469,
+ -0.1904,0.961634,0.197505,147.511894,-741.592372,741.194313,
+ 0.000864,0.980301,0.197505,0,-756.121025,741.194313,
+ -0.1904,0.961634,0.197505,147.511894,-741.592372,741.194313,
+ -0.0003,0.997644,-0.068597,0,-760.268019,804.835469,
+ -0.194925,0.978416,-0.068597,148.320933,-745.659682,804.835469,
+ 0.992863,0.097788,-0.068268,-760.268019,0,804.835469,
+ 0.966549,0.159485,-0.200867,-733.088824,-145.820434,867.310387,
+ 0.971564,0.226633,-0.06856,-745.659682,-148.320933,804.835469,
+ 0.966549,0.159485,-0.200867,-733.088824,-145.820434,867.310387,
+ 0.992863,0.097788,-0.068268,-760.268019,0,804.835469,
+ 0.975069,0.096036,-0.200042,-747.450884,0,867.310387,
+ 0.865325,0.357689,0.3511,-872.922654,-361.576402,1835.635445,
+ 0.952958,0.189085,0.236891,-946.311642,-188.233089,1900.552851,
+ 0.897759,0.371365,0.236891,-891.406075,-369.232486,1900.552851,
+ 0.952958,0.189085,0.236891,-946.311642,-188.233089,1900.552851,
+ 0.865325,0.357689,0.3511,-872.922654,-361.576402,1835.635445,
+ 0.91848,0.181999,0.3511,-926.689746,-184.330051,1835.635445,
+ -0.882589,0.145631,-0.447021,641.452722,-127.592879,1474.61404,
+ -0.890977,0.087754,-0.445488,747.450884,-0,1287.75132,
+ -0.871137,0.203207,-0.447021,733.088824,-145.820434,1287.75132,
+ -0.890977,0.087754,-0.445488,747.450884,-0,1287.75132,
+ -0.882589,0.145631,-0.447021,641.452722,-127.592879,1474.61404,
+ -0.890977,0.087754,-0.445488,654.019524,-0,1474.61404,
+ 0.971564,0.226633,-0.06856,-745.659682,-148.320933,804.835469,
+ 0.916863,0.344985,-0.200867,-690.554573,-286.03707,867.310387,
+ 0.908682,0.411821,-0.06856,-702.396062,-290.941975,804.835469,
+ 0.916863,0.344985,-0.200867,-690.554573,-286.03707,867.310387,
+ 0.971564,0.226633,-0.06856,-745.659682,-148.320933,804.835469,
+ 0.966549,0.159485,-0.200867,-733.088824,-145.820434,867.310387,
+ 0.379736,0.917371,-0.119297,-373.870315,-902.602786,2103.011094,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.382683,0.92388,0,-375.423654,-906.352876,2035.2022,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.379736,0.917371,-0.119297,-373.870315,-902.602786,2103.011094,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.338117,0.54385,-0.768052,-259.538414,-388.426686,1100.8886,
+ 0.264347,0.583281,-0.768052,-286.03707,-690.554573,867.310387,
+ 0.37306,0.520502,-0.768052,-415.261462,-621.482696,867.310387,
+ 0.264347,0.583281,-0.768052,-286.03707,-690.554573,867.310387,
+ 0.338117,0.54385,-0.768052,-259.538414,-388.426686,1100.8886,
+ 0.22552,0.599364,-0.768052,-178.773169,-431.596609,1100.8886,
+ 0.815571,0.543908,0.197505,-628.691656,-420.078334,741.194313,
+ 0.908682,0.411821,-0.06856,-702.396062,-290.941975,804.835469,
+ 0.81088,0.581183,-0.06856,-632.139755,-422.38228,804.835469,
+ 0.908682,0.411821,-0.06856,-702.396062,-290.941975,804.835469,
+ 0.815571,0.543908,0.197505,-628.691656,-420.078334,741.194313,
+ 0.906011,0.374347,0.197505,-698.56474,-289.354989,741.194313,
+ 0.890977,0.087754,-0.445488,-794.166564,0,1474.61404,
+ 0.882589,0.145631,-0.447021,-687.270773,-136.706657,1661.47676,
+ 0.871137,0.203207,-0.447021,-778.906876,-154.934211,1474.61404,
+ 0.882589,0.145631,-0.447021,-687.270773,-136.706657,1661.47676,
+ 0.890977,0.087754,-0.445488,-794.166564,0,1474.61404,
+ 0.890977,0.087754,-0.445488,-700.735204,0,1661.47676,
+ 0.472298,0.759676,-0.447021,-337.399938,-504.954691,1287.75132,
+ 0.369253,0.814754,-0.447021,-268.159753,-647.394912,1100.8886,
+ 0.521108,0.727062,-0.447021,-389.30762,-582.640028,1100.8886,
+ 0.369253,0.814754,-0.447021,-268.159753,-647.394912,1100.8886,
+ 0.472298,0.759676,-0.447021,-337.399938,-504.954691,1287.75132,
+ 0.315017,0.837219,-0.447021,-232.405119,-561.075591,1287.75132,
+ 0.985604,0.097074,-0.138423,-976.970216,0,2103.011094,
+ 0.952958,0.189085,-0.236891,-946.311642,-188.233089,2169.851549,
+ 0.973826,0.193469,-0.119297,-958.198007,-190.597434,2103.011094,
+ 0.952958,0.189085,-0.236891,-946.311642,-188.233089,2169.851549,
+ 0.985604,0.097074,-0.138423,-976.970216,0,2103.011094,
+ 0.962266,0.094775,-0.255071,-964.850983,0,2169.851549,
+ -0.82601,0.340012,0.449554,679.332965,-281.388928,680.911024,
+ -0.630892,0.392232,0.669425,581.445733,-388.509618,628.271002,
+ -0.743805,0.494626,0.449554,611.383516,-408.513405,680.911024,
+ -0.630892,0.392232,0.669425,581.445733,-388.509618,628.271002,
+ -0.82601,0.340012,0.449554,679.332965,-281.388928,680.911024,
+ -0.69529,0.261614,0.669425,646.067883,-267.610079,628.271002,
+ 0.162803,0.986659,-0,-145.820434,-733.088824,2549.07468,
+ 0.032813,0.999462,-0,0,-747.450884,2408.92764,
+ 0.227168,0.973856,-0,-145.820434,-733.088824,2408.92764,
+ 0.032813,0.999462,-0,0,-747.450884,2408.92764,
+ 0.162803,0.986659,-0,-145.820434,-733.088824,2549.07468,
+ -0.032813,0.999462,-0,0,-747.450884,2549.07468,
+ 0.727062,0.521108,-0.447021,-621.482696,-415.261462,1287.75132,
+ 0.632456,0.632456,-0.447214,-462.46164,-462.46164,1474.61404,
+ 0.632456,0.632456,-0.447214,-528.527588,-528.527588,1287.75132,
+ 0.632456,0.632456,-0.447214,-462.46164,-462.46164,1474.61404,
+ 0.727062,0.521108,-0.447021,-621.482696,-415.261462,1287.75132,
+ 0.759676,0.472298,-0.447021,-543.79736,-363.353779,1474.61404,
+ 0.666912,0.666912,-0.332349,-668.106075,-668.106075,2234.768955,
+ 0.539373,0.808059,-0.236891,-536.042486,-802.244273,2169.851549,
+ 0.690185,0.690185,-0.217461,-682.252673,-682.252673,2169.851549,
+ 0.539373,0.808059,-0.236891,-536.042486,-802.244273,2169.851549,
+ 0.666912,0.666912,-0.332349,-668.106075,-668.106075,2234.768955,
+ 0.519633,0.778916,-0.3511,-524.927574,-785.609633,2234.768955,
+ 0.69529,0.261614,0.669425,-646.067883,-267.610079,628.271002,
+ 0.630153,0.146993,0.762431,-638.160695,-126.938055,587.016307,
+ 0.732968,0.120943,0.669425,-685.862006,-136.426435,628.271002,
+ 0.630153,0.146993,0.762431,-638.160695,-126.938055,587.016307,
+ 0.69529,0.261614,0.669425,-646.067883,-267.610079,628.271002,
+ 0.589368,0.267106,0.762431,-601.13423,-248.997951,587.016307,
+ 0.638915,0.062928,-0.766699,-467.156804,0,1100.8886,
+ 0.631844,0.104257,-0.768052,-733.088824,-145.820434,867.310387,
+ 0.638915,0.062928,-0.766699,-747.450884,0,867.310387,
+ 0.631844,0.104257,-0.768052,-733.088824,-145.820434,867.310387,
+ 0.638915,0.062928,-0.766699,-467.156804,0,1100.8886,
+ 0.623645,0.145475,-0.768052,-458.180517,-91.137771,1100.8886,
+ 0.897759,0.371365,0.236891,-891.406075,-369.232486,1900.552851,
+ 0.973826,0.193469,0.119297,-958.198007,-190.597434,1967.393306,
+ 0.917371,0.379736,0.119297,-902.602786,-373.870315,1967.393306,
+ 0.973826,0.193469,0.119297,-958.198007,-190.597434,1967.393306,
+ 0.897759,0.371365,0.236891,-891.406075,-369.232486,1900.552851,
+ 0.952958,0.189085,0.236891,-946.311642,-188.233089,1900.552851,
+ 0.62838,0.627111,0.460294,-648.584509,-648.584509,1773.56823,
+ 0.460101,0.686612,0.562913,-490.247555,-733.707316,1715.237645,
+ 0.585212,0.583657,0.562913,-623.966782,-623.966782,1715.237645,
+ 0.460101,0.686612,0.562913,-490.247555,-733.707316,1715.237645,
+ 0.62838,0.627111,0.460294,-648.584509,-648.584509,1773.56823,
+ 0.493963,0.737652,0.460294,-509.589579,-762.654701,1773.56823,
+ 0.662575,0.661607,0.3511,-668.106075,-668.106075,1835.635445,
+ 0.493963,0.737652,0.460294,-509.589579,-762.654701,1773.56823,
+ 0.62838,0.627111,0.460294,-648.584509,-648.584509,1773.56823,
+ 0.493963,0.737652,0.460294,-509.589579,-762.654701,1773.56823,
+ 0.662575,0.661607,0.3511,-668.106075,-668.106075,1835.635445,
+ 0.52077,0.778156,0.3511,-524.927574,-785.609633,1835.635445,
+ 0.517227,0.831943,-0.200867,-415.261462,-621.482696,867.310387,
+ 0.381505,0.921818,-0.068597,-290.941975,-702.396062,804.835469,
+ 0.554012,0.829678,-0.068597,-422.38228,-632.139755,804.835469,
+ 0.381505,0.921818,-0.068597,-290.941975,-702.396062,804.835469,
+ 0.517227,0.831943,-0.200867,-415.261462,-621.482696,867.310387,
+ 0.344985,0.916863,-0.200867,-286.03707,-690.554573,867.310387,
+ 0.62838,0.627111,0.460294,-648.584509,-648.584509,1773.56823,
+ 0.778916,0.519633,0.3511,-785.609633,-524.927574,1835.635445,
+ 0.662575,0.661607,0.3511,-668.106075,-668.106075,1835.635445,
+ 0.778916,0.519633,0.3511,-785.609633,-524.927574,1835.635445,
+ 0.62838,0.627111,0.460294,-648.584509,-648.584509,1773.56823,
+ 0.738649,0.49247,0.460294,-762.654701,-509.589579,1773.56823,
+ 0.727062,0.521108,-0.447021,-660.325365,-441.215303,1474.61404,
+ 0.632456,0.632456,-0.447214,-495.494614,-495.494614,1661.47676,
+ 0.632456,0.632456,-0.447214,-561.560563,-561.560563,1474.61404,
+ 0.632456,0.632456,-0.447214,-495.494614,-495.494614,1661.47676,
+ 0.727062,0.521108,-0.447021,-660.325365,-441.215303,1474.61404,
+ 0.759676,0.472298,-0.447021,-582.640028,-389.30762,1661.47676,
+ 0.687306,0.686654,0.236891,-682.252673,-682.252673,1900.552851,
+ 0.825661,0.55141,0.119297,-812.321046,-542.77557,1967.393306,
+ 0.702221,0.701893,0.119297,-690.822265,-690.822265,1967.393306,
+ 0.825661,0.55141,0.119297,-812.321046,-542.77557,1967.393306,
+ 0.687306,0.686654,0.236891,-682.252673,-682.252673,1900.552851,
+ 0.808059,0.539373,0.236891,-802.244273,-536.042486,1900.552851,
+ 0.702221,0.701893,0.119297,-690.822265,-690.822265,1967.393306,
+ 0.812792,0.582554,0,-815.696038,-545.030668,2035.2022,
+ 0.692994,0.720844,0.011969,-693.692459,-693.692459,2035.2022,
+ 0.812792,0.582554,0,-815.696038,-545.030668,2035.2022,
+ 0.702221,0.701893,0.119297,-690.822265,-690.822265,1967.393306,
+ 0.825661,0.55141,0.119297,-812.321046,-542.77557,1967.393306,
+ 0.634114,0.634114,-0.442491,-648.584509,-648.584509,2296.83617,
+ 0.519633,0.778916,-0.3511,-524.927574,-785.609633,2234.768955,
+ 0.666912,0.666912,-0.332349,-668.106075,-668.106075,2234.768955,
+ 0.519633,0.778916,-0.3511,-524.927574,-785.609633,2234.768955,
+ 0.634114,0.634114,-0.442491,-648.584509,-648.584509,2296.83617,
+ 0.49247,0.738649,-0.460294,-509.589579,-762.654701,2296.83617,
+ 0.59226,0.59226,-0.546311,-623.966782,-623.966782,2355.166755,
+ 0.49247,0.738649,-0.460294,-509.589579,-762.654701,2296.83617,
+ 0.634114,0.634114,-0.442491,-648.584509,-648.584509,2296.83617,
+ 0.49247,0.738649,-0.460294,-509.589579,-762.654701,2296.83617,
+ 0.59226,0.59226,-0.546311,-623.966782,-623.966782,2355.166755,
+ 0.458274,0.687833,-0.562913,-490.247555,-733.707316,2355.166755,
+ 0.632456,0.632456,-0.447214,-495.494614,-495.494614,1661.47676,
+ 0.521108,0.727062,-0.447021,-441.215303,-660.325365,1474.61404,
+ 0.632456,0.632456,-0.447214,-561.560563,-561.560563,1474.61404,
+ 0.521108,0.727062,-0.447021,-441.215303,-660.325365,1474.61404,
+ 0.632456,0.632456,-0.447214,-495.494614,-495.494614,1661.47676,
+ 0.472298,0.759676,-0.447021,-389.30762,-582.640028,1661.47676,
+ 0.583281,0.264347,-0.768052,-431.596609,-178.773169,1100.8886,
+ 0.54385,0.338117,-0.768052,-621.482696,-415.261462,867.310387,
+ 0.599364,0.22552,-0.768052,-690.554573,-286.03707,867.310387,
+ 0.54385,0.338117,-0.768052,-621.482696,-415.261462,867.310387,
+ 0.583281,0.264347,-0.768052,-431.596609,-178.773169,1100.8886,
+ 0.520502,0.37306,-0.768052,-388.426686,-259.538414,1100.8886,
+ 0.497902,0.741616,0.449554,-408.513405,-611.383516,680.911024,
+ 0.306655,0.676633,0.669425,-267.610079,-646.067883,628.271002,
+ 0.432767,0.603806,0.669425,-388.509618,-581.445733,628.271002,
+ 0.306655,0.676633,0.669425,-267.610079,-646.067883,628.271002,
+ 0.497902,0.741616,0.449554,-408.513405,-611.383516,680.911024,
+ 0.343652,0.824502,0.449554,-281.388928,-679.332965,680.911024,
+ 0.545345,0.814611,0.197505,-420.078334,-628.691656,741.194313,
+ 0.343652,0.824502,0.449554,-281.388928,-679.332965,680.911024,
+ 0.497902,0.741616,0.449554,-408.513405,-611.383516,680.911024,
+ 0.343652,0.824502,0.449554,-281.388928,-679.332965,680.911024,
+ 0.545345,0.814611,0.197505,-420.078334,-628.691656,741.194313,
+ 0.375943,0.90535,0.197505,-289.354989,-698.56474,741.194313,
+ 0.554012,0.829678,-0.068597,-422.38228,-632.139755,804.835469,
+ 0.375943,0.90535,0.197505,-289.354989,-698.56474,741.194313,
+ 0.545345,0.814611,0.197505,-420.078334,-628.691656,741.194313,
+ 0.375943,0.90535,0.197505,-289.354989,-698.56474,741.194313,
+ 0.554012,0.829678,-0.068597,-422.38228,-632.139755,804.835469,
+ 0.381505,0.921818,-0.068597,-290.941975,-702.396062,804.835469,
+ 0.000898,0.887766,0.460294,0,-917.237009,1773.56823,
+ -0.160167,0.810848,0.562913,172.152048,-865.466789,1715.237645,
+ 0.001099,0.826515,0.562913,0,-882.422286,1715.237645,
+ -0.160167,0.810848,0.562913,172.152048,-865.466789,1715.237645,
+ 0.000898,0.887766,0.460294,0,-917.237009,1773.56823,
+ -0.172314,0.870883,0.460294,178.944064,-899.612557,1773.56823,
+ 0.559613,0.559613,-0.611282,-594.604481,-594.604481,2408.92764,
+ 0.458274,0.687833,-0.562913,-490.247555,-733.707316,2355.166755,
+ 0.59226,0.59226,-0.546311,-623.966782,-623.966782,2355.166755,
+ 0.458274,0.687833,-0.562913,-490.247555,-733.707316,2355.166755,
+ 0.559613,0.559613,-0.611282,-594.604481,-594.604481,2408.92764,
+ 0.417941,0.672244,-0.611076,-467.177743,-699.180902,2408.92764,
+ 0.707107,0.707107,-0,-528.527588,-528.527588,2549.07468,
+ 0.582554,0.812792,-0,-415.261462,-621.482696,2408.92764,
+ 0.707107,0.707107,0,-528.527588,-528.527588,2408.92764,
+ 0.582554,0.812792,-0,-415.261462,-621.482696,2408.92764,
+ 0.707107,0.707107,-0,-528.527588,-528.527588,2549.07468,
+ 0.527988,0.849252,-0,-415.261462,-621.482696,2549.07468,
+ 0.812792,0.582554,0,-621.482696,-415.261462,2408.92764,
+ 0.707107,0.707107,-0,-528.527588,-528.527588,2549.07468,
+ 0.707107,0.707107,0,-528.527588,-528.527588,2408.92764,
+ 0.707107,0.707107,-0,-528.527588,-528.527588,2549.07468,
+ 0.812792,0.582554,0,-621.482696,-415.261462,2408.92764,
+ 0.849252,0.527988,0,-621.482696,-415.261462,2549.07468,
+ -0.882589,0.145631,-0.447021,687.270773,-136.706657,1661.47676,
+ -0.890977,0.087754,-0.445488,794.166564,-0,1474.61404,
+ -0.871137,0.203207,-0.447021,778.906876,-154.934211,1474.61404,
+ -0.890977,0.087754,-0.445488,794.166564,-0,1474.61404,
+ -0.882589,0.145631,-0.447021,687.270773,-136.706657,1661.47676,
+ -0.890977,0.087754,-0.445488,700.735204,-0,1661.47676,
+ -0.812508,0.080025,0.577431,882.422286,-0,1715.237645,
+ -0.781011,0.12887,0.611076,824.740108,-164.051007,1661.47676,
+ -0.810848,0.160167,0.562913,865.466789,-172.152048,1715.237645,
+ -0.781011,0.12887,0.611076,824.740108,-164.051007,1661.47676,
+ -0.812508,0.080025,0.577431,882.422286,-0,1715.237645,
+ -0.789019,0.077712,0.609434,840.897722,-0,1661.47676,
+ 0.519633,0.778916,-0.3511,-524.927574,-785.609633,2234.768955,
+ 0.371365,0.897759,-0.236891,-369.232486,-891.406075,2169.851549,
+ 0.539373,0.808059,-0.236891,-536.042486,-802.244273,2169.851549,
+ 0.371365,0.897759,-0.236891,-369.232486,-891.406075,2169.851549,
+ 0.519633,0.778916,-0.3511,-524.927574,-785.609633,2234.768955,
+ 0.357689,0.865325,-0.3511,-361.576402,-872.922654,2234.768955,
+ 0.49247,0.738649,-0.460294,-509.589579,-762.654701,2296.83617,
+ 0.357689,0.865325,-0.3511,-361.576402,-872.922654,2234.768955,
+ 0.519633,0.778916,-0.3511,-524.927574,-785.609633,2234.768955,
+ 0.357689,0.865325,-0.3511,-361.576402,-872.922654,2234.768955,
+ 0.49247,0.738649,-0.460294,-509.589579,-762.654701,2296.83617,
+ 0.338904,0.820532,-0.460294,-351.011407,-847.416499,2296.83617,
+ 0.460101,0.686612,0.562913,-490.247555,-733.707316,1715.237645,
+ 0.326755,0.720984,0.611076,-321.797626,-776.888194,1661.47676,
+ 0.461133,0.643383,0.611076,-467.177743,-699.180902,1661.47676,
+ 0.326755,0.720984,0.611076,-321.797626,-776.888194,1661.47676,
+ 0.460101,0.686612,0.562913,-490.247555,-733.707316,1715.237645,
+ 0.317309,0.76318,0.562913,-337.688389,-815.251889,1715.237645,
+ 0.542249,0.507776,0.669425,-494.47895,-494.47895,628.271002,
+ 0.525933,0.376953,0.762431,-541.006514,-361.488996,587.016307,
+ 0.630892,0.392232,0.669425,-581.445733,-388.509618,628.271002,
+ 0.525933,0.376953,0.762431,-541.006514,-361.488996,587.016307,
+ 0.542249,0.507776,0.669425,-494.47895,-494.47895,628.271002,
+ 0.442288,0.472315,0.762431,-460.088221,-460.088221,587.016307,
+ 0.493963,0.737652,0.460294,-509.589579,-762.654701,1773.56823,
+ 0.317309,0.76318,0.562913,-337.688389,-815.251889,1715.237645,
+ 0.460101,0.686612,0.562913,-490.247555,-733.707316,1715.237645,
+ 0.317309,0.76318,0.562913,-337.688389,-815.251889,1715.237645,
+ 0.493963,0.737652,0.460294,-509.589579,-762.654701,1773.56823,
+ 0.340563,0.819845,0.460294,-351.011407,-847.416499,1773.56823,
+ 0.52077,0.778156,0.3511,-524.927574,-785.609633,1835.635445,
+ 0.340563,0.819845,0.460294,-351.011407,-847.416499,1773.56823,
+ 0.493963,0.737652,0.460294,-509.589579,-762.654701,1773.56823,
+ 0.340563,0.819845,0.460294,-351.011407,-847.416499,1773.56823,
+ 0.52077,0.778156,0.3511,-524.927574,-785.609633,1835.635445,
+ 0.358953,0.864801,0.3511,-361.576402,-872.922654,1835.635445,
+ 0.54014,0.807547,0.236891,-536.042486,-802.244273,1900.552851,
+ 0.358953,0.864801,0.3511,-361.576402,-872.922654,1835.635445,
+ 0.52077,0.778156,0.3511,-524.927574,-785.609633,1835.635445,
+ 0.358953,0.864801,0.3511,-361.576402,-872.922654,1835.635445,
+ 0.54014,0.807547,0.236891,-536.042486,-802.244273,1900.552851,
+ 0.372217,0.897406,0.236891,-369.232486,-891.406075,1900.552851,
+ -0.029352,0.894042,-0.447021,0,-700.735204,1661.47676,
+ -0.145631,0.882589,-0.447021,154.934211,-778.906876,1474.61404,
+ 0.029352,0.894042,-0.447021,0,-794.166564,1474.61404,
+ -0.145631,0.882589,-0.447021,154.934211,-778.906876,1474.61404,
+ -0.029352,0.894042,-0.447021,0,-700.735204,1661.47676,
+ -0.203207,0.871137,-0.447021,136.706657,-687.270773,1661.47676,
+ 0.55141,0.825661,-0.119297,-542.77557,-812.321046,2103.011094,
+ 0.382683,0.92388,0,-375.423654,-906.352876,2035.2022,
+ 0.55557,0.83147,0,-545.030668,-815.696038,2035.2022,
+ 0.382683,0.92388,0,-375.423654,-906.352876,2035.2022,
+ 0.55141,0.825661,-0.119297,-542.77557,-812.321046,2103.011094,
+ 0.379736,0.917371,-0.119297,-373.870315,-902.602786,2103.011094,
+ 0.539373,0.808059,-0.236891,-536.042486,-802.244273,2169.851549,
+ 0.379736,0.917371,-0.119297,-373.870315,-902.602786,2103.011094,
+ 0.55141,0.825661,-0.119297,-542.77557,-812.321046,2103.011094,
+ 0.379736,0.917371,-0.119297,-373.870315,-902.602786,2103.011094,
+ 0.539373,0.808059,-0.236891,-536.042486,-802.244273,2169.851549,
+ 0.371365,0.897759,-0.236891,-369.232486,-891.406075,2169.851549,
+ 0.897759,0.371365,-0.236891,-891.406075,-369.232486,2169.851549,
+ 0.778916,0.519633,-0.3511,-785.609633,-524.927574,2234.768955,
+ 0.808059,0.539373,-0.236891,-802.244273,-536.042486,2169.851549,
+ 0.778916,0.519633,-0.3511,-785.609633,-524.927574,2234.768955,
+ 0.897759,0.371365,-0.236891,-891.406075,-369.232486,2169.851549,
+ 0.865325,0.357689,-0.3511,-872.922654,-361.576402,2234.768955,
+ 0.865325,0.357689,-0.3511,-872.922654,-361.576402,2234.768955,
+ 0.738649,0.49247,-0.460294,-762.654701,-509.589579,2296.83617,
+ 0.778916,0.519633,-0.3511,-785.609633,-524.927574,2234.768955,
+ 0.738649,0.49247,-0.460294,-762.654701,-509.589579,2296.83617,
+ 0.865325,0.357689,-0.3511,-872.922654,-361.576402,2234.768955,
+ 0.820532,0.338904,-0.460294,-847.416499,-351.011407,2296.83617,
+ 0.743805,0.494626,0.449554,-611.383516,-408.513405,680.911024,
+ 0.906011,0.374347,0.197505,-698.56474,-289.354989,741.194313,
+ 0.815571,0.543908,0.197505,-628.691656,-420.078334,741.194313,
+ 0.906011,0.374347,0.197505,-698.56474,-289.354989,741.194313,
+ 0.743805,0.494626,0.449554,-611.383516,-408.513405,680.911024,
+ 0.82601,0.340012,0.449554,-679.332965,-281.388928,680.911024,
+ 0.55557,0.83147,0,-545.030668,-815.696038,2035.2022,
+ 0.380165,0.917193,0.119297,-373.870315,-902.602786,1967.393306,
+ 0.551796,0.825403,0.119297,-542.77557,-812.321046,1967.393306,
+ 0.380165,0.917193,0.119297,-373.870315,-902.602786,1967.393306,
+ 0.55557,0.83147,0,-545.030668,-815.696038,2035.2022,
+ 0.382683,0.92388,0,-375.423654,-906.352876,2035.2022,
+ 0.458274,0.687833,-0.562913,-490.247555,-733.707316,2355.166755,
+ 0.338904,0.820532,-0.460294,-351.011407,-847.416499,2296.83617,
+ 0.49247,0.738649,-0.460294,-509.589579,-762.654701,2296.83617,
+ 0.338904,0.820532,-0.460294,-351.011407,-847.416499,2296.83617,
+ 0.458274,0.687833,-0.562913,-490.247555,-733.707316,2355.166755,
+ 0.315278,0.764021,-0.562913,-337.688389,-815.251889,2355.166755,
+ 0.417941,0.672244,-0.611076,-467.177743,-699.180902,2408.92764,
+ 0.315278,0.764021,-0.562913,-337.688389,-815.251889,2355.166755,
+ 0.458274,0.687833,-0.562913,-490.247555,-733.707316,2355.166755,
+ 0.315278,0.764021,-0.562913,-337.688389,-815.251889,2355.166755,
+ 0.417941,0.672244,-0.611076,-467.177743,-699.180902,2408.92764,
+ 0.278762,0.740863,-0.611076,-321.797626,-776.888194,2408.92764,
+ 0.306655,0.676633,0.669425,-267.610079,-646.067883,628.271002,
+ 0.341645,0.549525,0.762431,-361.488996,-541.006514,587.016307,
+ 0.432767,0.603806,0.669425,-388.509618,-581.445733,628.271002,
+ 0.341645,0.549525,0.762431,-361.488996,-541.006514,587.016307,
+ 0.306655,0.676633,0.669425,-267.610079,-646.067883,628.271002,
+ 0.227874,0.605618,0.762431,-248.997951,-601.13423,587.016307,
+ 0.527988,0.849252,-0,-415.261462,-621.482696,2549.07468,
+ 0.412792,0.910825,-0,-286.03707,-690.554573,2408.92764,
+ 0.582554,0.812792,-0,-415.261462,-621.482696,2408.92764,
+ 0.412792,0.910825,-0,-286.03707,-690.554573,2408.92764,
+ 0.527988,0.849252,-0,-415.261462,-621.482696,2549.07468,
+ 0.352162,0.935939,-0,-286.03707,-690.554573,2549.07468,
+ 0.343652,0.824502,0.449554,-281.388928,-679.332965,680.911024,
+ 0.168758,0.723457,0.669425,-136.426435,-685.862006,628.271002,
+ 0.306655,0.676633,0.669425,-267.610079,-646.067883,628.271002,
+ 0.168758,0.723457,0.669425,-136.426435,-685.862006,628.271002,
+ 0.343652,0.824502,0.449554,-281.388928,-679.332965,680.911024,
+ 0.176197,0.875703,0.449554,-143.450831,-721.176029,680.911024,
+ 0.381505,0.921818,-0.068597,-290.941975,-702.396062,804.835469,
+ 0.192095,0.961297,0.197505,-147.511894,-741.592372,741.194313,
+ 0.375943,0.90535,0.197505,-289.354989,-698.56474,741.194313,
+ 0.192095,0.961297,0.197505,-147.511894,-741.592372,741.194313,
+ 0.381505,0.921818,-0.068597,-290.941975,-702.396062,804.835469,
+ 0.194336,0.978533,-0.068597,-148.320933,-745.659682,804.835469,
+ 0.001099,0.826515,0.562913,0,-882.422286,1715.237645,
+ -0.12887,0.781011,0.611076,164.051007,-824.740108,1661.47676,
+ 0.025974,0.791146,0.611076,0,-840.897722,1661.47676,
+ -0.12887,0.781011,0.611076,164.051007,-824.740108,1661.47676,
+ 0.001099,0.826515,0.562913,0,-882.422286,1715.237645,
+ -0.160167,0.810848,0.562913,172.152048,-865.466789,1715.237645,
+ 0.375943,0.90535,0.197505,-289.354989,-698.56474,741.194313,
+ 0.176197,0.875703,0.449554,-143.450831,-721.176029,680.911024,
+ 0.343652,0.824502,0.449554,-281.388928,-679.332965,680.911024,
+ 0.176197,0.875703,0.449554,-143.450831,-721.176029,680.911024,
+ 0.375943,0.90535,0.197505,-289.354989,-698.56474,741.194313,
+ 0.192095,0.961297,0.197505,-147.511894,-741.592372,741.194313,
+ 0.162323,0.81042,0.562913,-172.152048,-865.466789,1715.237645,
+ 0.025974,0.791146,0.611076,0,-840.897722,1661.47676,
+ 0.179819,0.770877,0.611076,-164.051007,-824.740108,1661.47676,
+ 0.025974,0.791146,0.611076,0,-840.897722,1661.47676,
+ 0.162323,0.81042,0.562913,-172.152048,-865.466789,1715.237645,
+ 0.001099,0.826515,0.562913,0,-882.422286,1715.237645,
+ 0.344985,0.916863,-0.200867,-286.03707,-690.554573,867.310387,
+ 0.194336,0.978533,-0.068597,-148.320933,-745.659682,804.835469,
+ 0.381505,0.921818,-0.068597,-290.941975,-702.396062,804.835469,
+ 0.194336,0.978533,-0.068597,-148.320933,-745.659682,804.835469,
+ 0.344985,0.916863,-0.200867,-286.03707,-690.554573,867.310387,
+ 0.159485,0.966549,-0.200867,-145.820434,-733.088824,867.310387,
+ 0.22552,0.599364,-0.768052,-178.773169,-431.596609,1100.8886,
+ 0.145475,0.623645,-0.768052,-145.820434,-733.088824,867.310387,
+ 0.264347,0.583281,-0.768052,-286.03707,-690.554573,867.310387,
+ 0.145475,0.623645,-0.768052,-145.820434,-733.088824,867.310387,
+ 0.22552,0.599364,-0.768052,-178.773169,-431.596609,1100.8886,
+ 0.104257,0.631844,-0.768052,-91.137771,-458.180517,1100.8886,
+ 0.315017,0.837219,-0.447021,-232.405119,-561.075591,1287.75132,
+ 0.203207,0.871137,-0.447021,-136.706657,-687.270773,1100.8886,
+ 0.369253,0.814754,-0.447021,-268.159753,-647.394912,1100.8886,
+ 0.203207,0.871137,-0.447021,-136.706657,-687.270773,1100.8886,
+ 0.315017,0.837219,-0.447021,-232.405119,-561.075591,1287.75132,
+ 0.145631,0.882589,-0.447021,-118.479102,-595.634671,1287.75132,
+ 0.315017,0.837219,-0.447021,-250.282436,-604.235252,1474.61404,
+ 0.203207,0.871137,-0.447021,-145.820434,-733.088824,1287.75132,
+ 0.369253,0.814754,-0.447021,-286.03707,-690.554573,1287.75132,
+ 0.203207,0.871137,-0.447021,-145.820434,-733.088824,1287.75132,
+ 0.315017,0.837219,-0.447021,-250.282436,-604.235252,1474.61404,
+ 0.145631,0.882589,-0.447021,-127.592879,-641.452722,1474.61404,
+ 0.315017,0.837219,-0.447021,-268.159753,-647.394912,1661.47676,
+ 0.203207,0.871137,-0.447021,-154.934211,-778.906876,1474.61404,
+ 0.369253,0.814754,-0.447021,-303.914386,-733.714234,1474.61404,
+ 0.203207,0.871137,-0.447021,-154.934211,-778.906876,1474.61404,
+ 0.315017,0.837219,-0.447021,-268.159753,-647.394912,1661.47676,
+ 0.145631,0.882589,-0.447021,-136.706657,-687.270773,1661.47676,
+ 0.317309,0.76318,0.562913,-337.688389,-815.251889,1715.237645,
+ 0.179819,0.770877,0.611076,-164.051007,-824.740108,1661.47676,
+ 0.326755,0.720984,0.611076,-321.797626,-776.888194,1661.47676,
+ 0.179819,0.770877,0.611076,-164.051007,-824.740108,1661.47676,
+ 0.317309,0.76318,0.562913,-337.688389,-815.251889,1715.237645,
+ 0.162323,0.81042,0.562913,-172.152048,-865.466789,1715.237645,
+ 0.340563,0.819845,0.460294,-351.011407,-847.416499,1773.56823,
+ 0.162323,0.81042,0.562913,-172.152048,-865.466789,1715.237645,
+ 0.317309,0.76318,0.562913,-337.688389,-815.251889,1715.237645,
+ 0.162323,0.81042,0.562913,-172.152048,-865.466789,1715.237645,
+ 0.340563,0.819845,0.460294,-351.011407,-847.416499,1773.56823,
+ 0.174075,0.870533,0.460294,-178.944064,-899.612557,1773.56823,
+ 0.358953,0.864801,0.3511,-361.576402,-872.922654,1835.635445,
+ 0.174075,0.870533,0.460294,-178.944064,-899.612557,1773.56823,
+ 0.340563,0.819845,0.460294,-351.011407,-847.416499,1773.56823,
+ 0.174075,0.870533,0.460294,-178.944064,-899.612557,1773.56823,
+ 0.358953,0.864801,0.3511,-361.576402,-872.922654,1835.635445,
+ 0.183341,0.918213,0.3511,-184.330051,-926.689746,1835.635445,
+ 0.382683,0.92388,0,-375.423654,-906.352876,2035.2022,
+ 0.193925,0.973736,0.119297,-190.597434,-958.198007,1967.393306,
+ 0.380165,0.917193,0.119297,-373.870315,-902.602786,1967.393306,
+ 0.193925,0.973736,0.119297,-190.597434,-958.198007,1967.393306,
+ 0.382683,0.92388,0,-375.423654,-906.352876,2035.2022,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.338904,0.820532,-0.460294,-351.011407,-847.416499,2296.83617,
+ 0.181999,0.91848,-0.3511,-184.330051,-926.689746,2234.768955,
+ 0.357689,0.865325,-0.3511,-361.576402,-872.922654,2234.768955,
+ 0.181999,0.91848,-0.3511,-184.330051,-926.689746,2234.768955,
+ 0.338904,0.820532,-0.460294,-351.011407,-847.416499,2296.83617,
+ 0.172314,0.870883,-0.460294,-178.944064,-899.612557,2296.83617,
+ 0.357689,0.865325,-0.3511,-361.576402,-872.922654,2234.768955,
+ 0.189085,0.952958,-0.236891,-188.233089,-946.311642,2169.851549,
+ 0.371365,0.897759,-0.236891,-369.232486,-891.406075,2169.851549,
+ 0.189085,0.952958,-0.236891,-188.233089,-946.311642,2169.851549,
+ 0.357689,0.865325,-0.3511,-361.576402,-872.922654,2234.768955,
+ 0.181999,0.91848,-0.3511,-184.330051,-926.689746,2234.768955,
+ 0.352162,0.935939,-0,-286.03707,-690.554573,2549.07468,
+ 0.227168,0.973856,-0,-145.820434,-733.088824,2408.92764,
+ 0.412792,0.910825,-0,-286.03707,-690.554573,2408.92764,
+ 0.227168,0.973856,-0,-145.820434,-733.088824,2408.92764,
+ 0.352162,0.935939,-0,-286.03707,-690.554573,2549.07468,
+ 0.162803,0.986659,-0,-145.820434,-733.088824,2549.07468,
+ 0.168758,0.723457,0.669425,-136.426435,-685.862006,628.271002,
+ 0.227874,0.605618,0.762431,-248.997951,-601.13423,587.016307,
+ 0.306655,0.676633,0.669425,-267.610079,-646.067883,628.271002,
+ 0.227874,0.605618,0.762431,-248.997951,-601.13423,587.016307,
+ 0.168758,0.723457,0.669425,-136.426435,-685.862006,628.271002,
+ 0.105345,0.638437,0.762431,-126.938055,-638.160695,587.016307,
+ 0.176197,0.875703,0.449554,-143.450831,-721.176029,680.911024,
+ 0.024376,0.742479,0.669425,0,-699.298837,628.271002,
+ 0.168758,0.723457,0.669425,-136.426435,-685.862006,628.271002,
+ 0.024376,0.742479,0.669425,0,-699.298837,628.271002,
+ 0.176197,0.875703,0.449554,-143.450831,-721.176029,680.911024,
+ 0.00197,0.893251,0.449554,0,-735.304703,680.911024,
+ 0.192095,0.961297,0.197505,-147.511894,-741.592372,741.194313,
+ 0.00197,0.893251,0.449554,0,-735.304703,680.911024,
+ 0.176197,0.875703,0.449554,-143.450831,-721.176029,680.911024,
+ 0.00197,0.893251,0.449554,0,-735.304703,680.911024,
+ 0.192095,0.961297,0.197505,-147.511894,-741.592372,741.194313,
+ 0.000864,0.980301,0.197505,0,-756.121025,741.194313,
+ 0.194336,0.978533,-0.068597,-148.320933,-745.659682,804.835469,
+ 0.000864,0.980301,0.197505,0,-756.121025,741.194313,
+ 0.192095,0.961297,0.197505,-147.511894,-741.592372,741.194313,
+ 0.000864,0.980301,0.197505,0,-756.121025,741.194313,
+ 0.194336,0.978533,-0.068597,-148.320933,-745.659682,804.835469,
+ -0.0003,0.997644,-0.068597,0,-760.268019,804.835469,
+ 0.159485,0.966549,-0.200867,-145.820434,-733.088824,867.310387,
+ -0.0003,0.997644,-0.068597,0,-760.268019,804.835469,
+ 0.194336,0.978533,-0.068597,-148.320933,-745.659682,804.835469,
+ -0.0003,0.997644,-0.068597,0,-760.268019,804.835469,
+ 0.159485,0.966549,-0.200867,-145.820434,-733.088824,867.310387,
+ -0.032144,0.979091,-0.200867,0,-747.450884,867.310387,
+ 0.104257,0.631844,-0.768052,-91.137771,-458.180517,1100.8886,
+ 0,0.640184,-0.768222,0,-747.450884,867.310387,
+ 0.145475,0.623645,-0.768052,-145.820434,-733.088824,867.310387,
+ 0,0.640184,-0.768222,0,-747.450884,867.310387,
+ 0.104257,0.631844,-0.768052,-91.137771,-458.180517,1100.8886,
+ 0,0.640184,-0.768222,0,-467.156804,1100.8886,
+ 0.145631,0.882589,-0.447021,-118.479102,-595.634671,1287.75132,
+ 0.029352,0.894042,-0.447021,0,-700.735204,1100.8886,
+ 0.203207,0.871137,-0.447021,-136.706657,-687.270773,1100.8886,
+ 0.029352,0.894042,-0.447021,0,-700.735204,1100.8886,
+ 0.145631,0.882589,-0.447021,-118.479102,-595.634671,1287.75132,
+ -0.029352,0.894042,-0.447021,0,-607.303844,1287.75132,
+ 0.732968,0.120943,0.669425,-685.862006,-136.426435,628.271002,
+ 0.869022,0.085591,0.487313,-735.304703,0,680.911024,
+ 0.876472,0.172332,0.449554,-721.176029,-143.450831,680.911024,
+ 0.869022,0.085591,0.487313,-735.304703,0,680.911024,
+ 0.732968,0.120943,0.669425,-685.862006,-136.426435,628.271002,
+ 0.740721,0.072955,0.66784,-699.298837,0,628.271002,
+ -0.875139,0.086194,0.476133,917.237009,-0,1773.56823,
+ -0.810848,0.160167,0.562913,865.466789,-172.152048,1715.237645,
+ -0.870883,0.172314,0.460294,899.612557,-178.944064,1773.56823,
+ -0.810848,0.160167,0.562913,865.466789,-172.152048,1715.237645,
+ -0.875139,0.086194,0.476133,917.237009,-0,1773.56823,
+ -0.812508,0.080025,0.577431,882.422286,-0,1715.237645,
+ -0.029352,0.894042,-0.447021,0,-654.019524,1474.61404,
+ -0.145631,0.882589,-0.447021,145.820434,-733.088824,1287.75132,
+ 0.029352,0.894042,-0.447021,0,-747.450884,1287.75132,
+ -0.145631,0.882589,-0.447021,145.820434,-733.088824,1287.75132,
+ -0.029352,0.894042,-0.447021,0,-654.019524,1474.61404,
+ -0.203207,0.871137,-0.447021,127.592879,-641.452722,1474.61404,
+ 0.145631,0.882589,-0.447021,-136.706657,-687.270773,1661.47676,
+ 0.029352,0.894042,-0.447021,0,-794.166564,1474.61404,
+ 0.203207,0.871137,-0.447021,-154.934211,-778.906876,1474.61404,
+ 0.029352,0.894042,-0.447021,0,-794.166564,1474.61404,
+ 0.145631,0.882589,-0.447021,-136.706657,-687.270773,1661.47676,
+ -0.029352,0.894042,-0.447021,0,-700.735204,1661.47676,
+ -0.925281,0.091132,0.36817,944.844672,-0,1835.635445,
+ -0.870883,0.172314,0.460294,899.612557,-178.944064,1773.56823,
+ -0.91848,0.181999,0.3511,926.689746,-184.330051,1835.635445,
+ -0.870883,0.172314,0.460294,899.612557,-178.944064,1773.56823,
+ -0.925281,0.091132,0.36817,944.844672,-0,1835.635445,
+ -0.875139,0.086194,0.476133,917.237009,-0,1773.56823,
+ -0.000898,0.887766,-0.460294,0,-917.237009,2296.83617,
+ -0.183341,0.918213,-0.3511,184.330051,-926.689746,2234.768955,
+ -0.014053,0.939213,-0.343046,0,-944.844672,2234.768955,
+ -0.183341,0.918213,-0.3511,184.330051,-926.689746,2234.768955,
+ -0.000898,0.887766,-0.460294,0,-917.237009,2296.83617,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ 0.183341,0.918213,0.3511,-184.330051,-926.689746,1835.635445,
+ 0.000898,0.887766,0.460294,0,-917.237009,1773.56823,
+ 0.174075,0.870533,0.460294,-178.944064,-899.612557,1773.56823,
+ 0.000898,0.887766,0.460294,0,-917.237009,1773.56823,
+ 0.183341,0.918213,0.3511,-184.330051,-926.689746,1835.635445,
+ -0.01288,0.939228,0.343052,0,-944.844672,1835.635445,
+ 0.18999,0.952778,0.236891,-188.233089,-946.311642,1900.552851,
+ -0.01288,0.939228,0.343052,0,-944.844672,1835.635445,
+ 0.183341,0.918213,0.3511,-184.330051,-926.689746,1835.635445,
+ -0.01288,0.939228,0.343052,0,-944.844672,1835.635445,
+ 0.18999,0.952778,0.236891,-188.233089,-946.311642,1900.552851,
+ 0.000461,0.971536,0.236891,0,-964.850983,1900.552851,
+ -0.172332,0.876472,0.449554,143.450831,-721.176029,680.911024,
+ -0.2815,0.687288,0.669621,267.610079,-646.067883,628.271002,
+ -0.130866,0.717913,0.683722,136.426435,-685.862006,628.271002,
+ -0.2815,0.687288,0.669621,267.610079,-646.067883,628.271002,
+ -0.172332,0.876472,0.449554,143.450831,-721.176029,680.911024,
+ -0.340012,0.82601,0.449554,281.388928,-679.332965,680.911024,
+ -0.1904,0.961634,0.197505,147.511894,-741.592372,741.194313,
+ -0.340012,0.82601,0.449554,281.388928,-679.332965,680.911024,
+ -0.172332,0.876472,0.449554,143.450831,-721.176029,680.911024,
+ -0.340012,0.82601,0.449554,281.388928,-679.332965,680.911024,
+ -0.1904,0.961634,0.197505,147.511894,-741.592372,741.194313,
+ -0.374347,0.906011,0.197505,289.354989,-698.56474,741.194313,
+ -0.194925,0.978416,-0.068597,148.320933,-745.659682,804.835469,
+ -0.374347,0.906011,0.197505,289.354989,-698.56474,741.194313,
+ -0.1904,0.961634,0.197505,147.511894,-741.592372,741.194313,
+ -0.374347,0.906011,0.197505,289.354989,-698.56474,741.194313,
+ -0.194925,0.978416,-0.068597,148.320933,-745.659682,804.835469,
+ -0.382059,0.921588,-0.068597,290.941975,-702.396062,804.835469,
+ -0.222538,0.954007,-0.200867,145.820434,-733.088824,867.310387,
+ -0.382059,0.921588,-0.068597,290.941975,-702.396062,804.835469,
+ -0.194925,0.978416,-0.068597,148.320933,-745.659682,804.835469,
+ -0.382059,0.921588,-0.068597,290.941975,-702.396062,804.835469,
+ -0.222538,0.954007,-0.200867,145.820434,-733.088824,867.310387,
+ -0.404379,0.892261,-0.200867,286.03707,-690.554573,867.310387,
+ -0.22552,0.599364,-0.768052,178.773169,-431.596609,1100.8886,
+ -0.145475,0.623645,-0.768052,145.820434,-733.088824,867.310387,
+ -0.104257,0.631844,-0.768052,91.137771,-458.180517,1100.8886,
+ -0.145475,0.623645,-0.768052,145.820434,-733.088824,867.310387,
+ -0.22552,0.599364,-0.768052,178.773169,-431.596609,1100.8886,
+ -0.264347,0.583281,-0.768052,286.03707,-690.554573,867.310387,
+ -0.203207,0.871137,-0.447021,118.479102,-595.634671,1287.75132,
+ -0.315017,0.837219,-0.447021,268.159753,-647.394912,1100.8886,
+ -0.145631,0.882589,-0.447021,136.706657,-687.270773,1100.8886,
+ -0.315017,0.837219,-0.447021,268.159753,-647.394912,1100.8886,
+ -0.203207,0.871137,-0.447021,118.479102,-595.634671,1287.75132,
+ -0.369253,0.814754,-0.447021,232.405119,-561.075591,1287.75132,
+ -0.203207,0.871137,-0.447021,127.592879,-641.452722,1474.61404,
+ -0.315017,0.837219,-0.447021,286.03707,-690.554573,1287.75132,
+ -0.145631,0.882589,-0.447021,145.820434,-733.088824,1287.75132,
+ -0.315017,0.837219,-0.447021,286.03707,-690.554573,1287.75132,
+ -0.203207,0.871137,-0.447021,127.592879,-641.452722,1474.61404,
+ -0.369253,0.814754,-0.447021,250.282436,-604.235252,1474.61404,
+ -0.203207,0.871137,-0.447021,136.706657,-687.270773,1661.47676,
+ -0.315017,0.837219,-0.447021,303.914386,-733.714234,1474.61404,
+ -0.145631,0.882589,-0.447021,154.934211,-778.906876,1474.61404,
+ -0.315017,0.837219,-0.447021,303.914386,-733.714234,1474.61404,
+ -0.203207,0.871137,-0.447021,136.706657,-687.270773,1661.47676,
+ -0.369253,0.814754,-0.447021,268.159753,-647.394912,1661.47676,
+ -0.160167,0.810848,0.562913,172.152048,-865.466789,1715.237645,
+ -0.278762,0.740863,0.611076,321.797626,-776.888194,1661.47676,
+ -0.12887,0.781011,0.611076,164.051007,-824.740108,1661.47676,
+ -0.278762,0.740863,0.611076,321.797626,-776.888194,1661.47676,
+ -0.160167,0.810848,0.562913,172.152048,-865.466789,1715.237645,
+ -0.315278,0.764021,0.562913,337.688389,-815.251889,1715.237645,
+ -0.962266,0.094775,0.255071,964.850983,-0,1900.552851,
+ -0.91848,0.181999,0.3511,926.689746,-184.330051,1835.635445,
+ -0.952958,0.189085,0.236891,946.311642,-188.233089,1900.552851,
+ -0.91848,0.181999,0.3511,926.689746,-184.330051,1835.635445,
+ -0.962266,0.094775,0.255071,964.850983,-0,1900.552851,
+ -0.925281,0.091132,0.36817,944.844672,-0,1835.635445,
+ 0.812508,0.080025,-0.577431,-882.422286,0,2355.166755,
+ 0.781011,0.12887,-0.611076,-824.740108,-164.051007,2408.92764,
+ 0.810848,0.160167,-0.562913,-865.466789,-172.152048,2355.166755,
+ 0.781011,0.12887,-0.611076,-824.740108,-164.051007,2408.92764,
+ 0.812508,0.080025,-0.577431,-882.422286,0,2355.166755,
+ 0.789019,0.077712,-0.609434,-840.897722,0,2408.92764,
+ -0.172314,0.870883,0.460294,178.944064,-899.612557,1773.56823,
+ -0.315278,0.764021,0.562913,337.688389,-815.251889,1715.237645,
+ -0.160167,0.810848,0.562913,172.152048,-865.466789,1715.237645,
+ -0.315278,0.764021,0.562913,337.688389,-815.251889,1715.237645,
+ -0.172314,0.870883,0.460294,178.944064,-899.612557,1773.56823,
+ -0.32859,0.82894,0.452643,351.011407,-847.416499,1773.56823,
+ 0.871137,0.203207,-0.447021,-687.270773,-136.706657,1100.8886,
+ 0.837219,0.315017,-0.447021,-561.075591,-232.405119,1287.75132,
+ 0.814754,0.369253,-0.447021,-647.394912,-268.159753,1100.8886,
+ 0.837219,0.315017,-0.447021,-561.075591,-232.405119,1287.75132,
+ 0.871137,0.203207,-0.447021,-687.270773,-136.706657,1100.8886,
+ 0.882589,0.145631,-0.447021,-595.634671,-118.479102,1287.75132,
+ -0.985604,0.097074,0.138423,976.970216,-0,1967.393306,
+ -0.952958,0.189085,0.236891,946.311642,-188.233089,1900.552851,
+ -0.973826,0.193469,0.119297,958.198007,-190.597434,1967.393306,
+ -0.952958,0.189085,0.236891,946.311642,-188.233089,1900.552851,
+ -0.985604,0.097074,0.138423,976.970216,-0,1967.393306,
+ -0.962266,0.094775,0.255071,964.850983,-0,1900.552851,
+ -0.162323,0.81042,-0.562913,172.152048,-865.466789,2355.166755,
+ -0.353801,0.818498,-0.452643,351.011407,-847.416499,2296.83617,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ -0.353801,0.818498,-0.452643,351.011407,-847.416499,2296.83617,
+ -0.162323,0.81042,-0.562913,172.152048,-865.466789,2355.166755,
+ -0.317309,0.76318,-0.562913,337.688389,-815.251889,2355.166755,
+ -0.995185,0.098017,-0,981.029284,-0,2035.2022,
+ -0.973826,0.193469,0.119297,958.198007,-190.597434,1967.393306,
+ -0.973856,0.227168,-0,962.179081,-191.389319,2035.2022,
+ -0.973826,0.193469,0.119297,958.198007,-190.597434,1967.393306,
+ -0.995185,0.098017,-0,981.029284,-0,2035.2022,
+ -0.985604,0.097074,0.138423,976.970216,-0,1967.393306,
+ -0.179819,0.770877,-0.611076,164.051007,-824.740108,2408.92764,
+ -0.317309,0.76318,-0.562913,337.688389,-815.251889,2355.166755,
+ -0.162323,0.81042,-0.562913,172.152048,-865.466789,2355.166755,
+ -0.317309,0.76318,-0.562913,337.688389,-815.251889,2355.166755,
+ -0.179819,0.770877,-0.611076,164.051007,-824.740108,2408.92764,
+ -0.326755,0.720984,-0.611076,321.797626,-776.888194,2408.92764,
+ -0.227168,0.973856,-0,145.820434,-733.088824,2549.07468,
+ -0.352162,0.935939,-0,286.03707,-690.554573,2408.92764,
+ -0.162803,0.986659,-0,145.820434,-733.088824,2408.92764,
+ -0.352162,0.935939,-0,286.03707,-690.554573,2408.92764,
+ -0.227168,0.973856,-0,145.820434,-733.088824,2549.07468,
+ -0.412792,0.910825,-0,286.03707,-690.554573,2549.07468,
+ -0.130866,0.717913,0.683722,136.426435,-685.862006,628.271002,
+ -0.227874,0.605618,0.762431,248.997951,-601.13423,587.016307,
+ -0.126198,0.634438,0.762603,126.938055,-638.160695,587.016307,
+ -0.227874,0.605618,0.762431,248.997951,-601.13423,587.016307,
+ -0.130866,0.717913,0.683722,136.426435,-685.862006,628.271002,
+ -0.2815,0.687288,0.669621,267.610079,-646.067883,628.271002,
+ -0.340012,0.82601,0.449554,281.388928,-679.332965,680.911024,
+ -0.410175,0.619164,0.669621,388.509618,-581.445733,628.271002,
+ -0.2815,0.687288,0.669621,267.610079,-646.067883,628.271002,
+ -0.410175,0.619164,0.669621,388.509618,-581.445733,628.271002,
+ -0.340012,0.82601,0.449554,281.388928,-679.332965,680.911024,
+ -0.494626,0.743805,0.449554,408.513405,-611.383516,680.911024,
+ -0.374347,0.906011,0.197505,289.354989,-698.56474,741.194313,
+ -0.494626,0.743805,0.449554,408.513405,-611.383516,680.911024,
+ -0.340012,0.82601,0.449554,281.388928,-679.332965,680.911024,
+ -0.494626,0.743805,0.449554,408.513405,-611.383516,680.911024,
+ -0.374347,0.906011,0.197505,289.354989,-698.56474,741.194313,
+ -0.543908,0.815571,0.197505,420.078334,-628.691656,741.194313,
+ -0.382059,0.921588,-0.068597,290.941975,-702.396062,804.835469,
+ -0.543908,0.815571,0.197505,420.078334,-628.691656,741.194313,
+ -0.374347,0.906011,0.197505,289.354989,-698.56474,741.194313,
+ -0.543908,0.815571,0.197505,420.078334,-628.691656,741.194313,
+ -0.382059,0.921588,-0.068597,290.941975,-702.396062,804.835469,
+ -0.554511,0.829344,-0.068597,422.38228,-632.139755,804.835469,
+ -0.404379,0.892261,-0.200867,286.03707,-690.554573,867.310387,
+ -0.554511,0.829344,-0.068597,422.38228,-632.139755,804.835469,
+ -0.382059,0.921588,-0.068597,290.941975,-702.396062,804.835469,
+ -0.554511,0.829344,-0.068597,422.38228,-632.139755,804.835469,
+ -0.404379,0.892261,-0.200867,286.03707,-690.554573,867.310387,
+ -0.570681,0.796226,-0.200867,415.261462,-621.482696,867.310387,
+ -0.973826,0.193469,-0.119297,958.198007,-190.597434,2103.011094,
+ -0.995185,0.098017,-0,981.029284,-0,2035.2022,
+ -0.973856,0.227168,-0,962.179081,-191.389319,2035.2022,
+ -0.995185,0.098017,-0,981.029284,-0,2035.2022,
+ -0.973826,0.193469,-0.119297,958.198007,-190.597434,2103.011094,
+ -0.985604,0.097074,-0.138423,976.970216,-0,2103.011094,
+ -0.952958,0.189085,-0.236891,946.311642,-188.233089,2169.851549,
+ -0.985604,0.097074,-0.138423,976.970216,-0,2103.011094,
+ -0.973826,0.193469,-0.119297,958.198007,-190.597434,2103.011094,
+ -0.985604,0.097074,-0.138423,976.970216,-0,2103.011094,
+ -0.952958,0.189085,-0.236891,946.311642,-188.233089,2169.851549,
+ -0.962266,0.094775,-0.255071,964.850983,-0,2169.851549,
+ -0.338117,0.54385,-0.768052,259.538414,-388.426686,1100.8886,
+ -0.264347,0.583281,-0.768052,286.03707,-690.554573,867.310387,
+ -0.22552,0.599364,-0.768052,178.773169,-431.596609,1100.8886,
+ -0.264347,0.583281,-0.768052,286.03707,-690.554573,867.310387,
+ -0.338117,0.54385,-0.768052,259.538414,-388.426686,1100.8886,
+ -0.37306,0.520502,-0.768052,415.261462,-621.482696,867.310387,
+ -0.369253,0.814754,-0.447021,232.405119,-561.075591,1287.75132,
+ -0.472298,0.759676,-0.447021,389.30762,-582.640028,1100.8886,
+ -0.315017,0.837219,-0.447021,268.159753,-647.394912,1100.8886,
+ -0.472298,0.759676,-0.447021,389.30762,-582.640028,1100.8886,
+ -0.369253,0.814754,-0.447021,232.405119,-561.075591,1287.75132,
+ -0.521108,0.727062,-0.447021,337.399938,-504.954691,1287.75132,
+ 0.870883,0.172314,-0.460294,-899.612557,-178.944064,2296.83617,
+ 0.764021,0.315278,-0.562913,-815.251889,-337.688389,2355.166755,
+ 0.820532,0.338904,-0.460294,-847.416499,-351.011407,2296.83617,
+ 0.764021,0.315278,-0.562913,-815.251889,-337.688389,2355.166755,
+ 0.870883,0.172314,-0.460294,-899.612557,-178.944064,2296.83617,
+ 0.810848,0.160167,-0.562913,-865.466789,-172.152048,2355.166755,
+ 0.973826,0.193469,-0.119297,-958.198007,-190.597434,2103.011094,
+ 0.897759,0.371365,-0.236891,-891.406075,-369.232486,2169.851549,
+ 0.917371,0.379736,-0.119297,-902.602786,-373.870315,2103.011094,
+ 0.897759,0.371365,-0.236891,-891.406075,-369.232486,2169.851549,
+ 0.973826,0.193469,-0.119297,-958.198007,-190.597434,2103.011094,
+ 0.952958,0.189085,-0.236891,-946.311642,-188.233089,2169.851549,
+ -0.369253,0.814754,-0.447021,250.282436,-604.235252,1474.61404,
+ -0.472298,0.759676,-0.447021,415.261462,-621.482696,1287.75132,
+ -0.315017,0.837219,-0.447021,286.03707,-690.554573,1287.75132,
+ -0.472298,0.759676,-0.447021,415.261462,-621.482696,1287.75132,
+ -0.369253,0.814754,-0.447021,250.282436,-604.235252,1474.61404,
+ -0.521108,0.727062,-0.447021,363.353779,-543.79736,1474.61404,
+ -0.369253,0.814754,-0.447021,268.159753,-647.394912,1661.47676,
+ -0.472298,0.759676,-0.447021,441.215303,-660.325365,1474.61404,
+ -0.315017,0.837219,-0.447021,303.914386,-733.714234,1474.61404,
+ -0.472298,0.759676,-0.447021,441.215303,-660.325365,1474.61404,
+ -0.369253,0.814754,-0.447021,268.159753,-647.394912,1661.47676,
+ -0.521108,0.727062,-0.447021,389.30762,-582.640028,1661.47676,
+ -0.315278,0.764021,0.562913,337.688389,-815.251889,1715.237645,
+ -0.417941,0.672244,0.611076,467.177743,-699.180902,1661.47676,
+ -0.278762,0.740863,0.611076,321.797626,-776.888194,1661.47676,
+ -0.417941,0.672244,0.611076,467.177743,-699.180902,1661.47676,
+ -0.315278,0.764021,0.562913,337.688389,-815.251889,1715.237645,
+ -0.458274,0.687833,0.562913,490.247555,-733.707316,1715.237645,
+ -0.32859,0.82894,0.452643,351.011407,-847.416499,1773.56823,
+ -0.458274,0.687833,0.562913,490.247555,-733.707316,1715.237645,
+ -0.315278,0.764021,0.562913,337.688389,-815.251889,1715.237645,
+ -0.458274,0.687833,0.562913,490.247555,-733.707316,1715.237645,
+ -0.32859,0.82894,0.452643,351.011407,-847.416499,1773.56823,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ 0.808059,0.539373,0.236891,-802.244273,-536.042486,1900.552851,
+ 0.917371,0.379736,0.119297,-902.602786,-373.870315,1967.393306,
+ 0.825661,0.55141,0.119297,-812.321046,-542.77557,1967.393306,
+ 0.917371,0.379736,0.119297,-902.602786,-373.870315,1967.393306,
+ 0.808059,0.539373,0.236891,-802.244273,-536.042486,1900.552851,
+ 0.897759,0.371365,0.236891,-891.406075,-369.232486,1900.552851,
+ 0.825661,0.55141,0.119297,-812.321046,-542.77557,1967.393306,
+ 0.910825,0.412792,0,-906.352876,-375.423654,2035.2022,
+ 0.812792,0.582554,0,-815.696038,-545.030668,2035.2022,
+ 0.910825,0.412792,0,-906.352876,-375.423654,2035.2022,
+ 0.825661,0.55141,0.119297,-812.321046,-542.77557,1967.393306,
+ 0.917371,0.379736,0.119297,-902.602786,-373.870315,1967.393306,
+ 0.910825,0.412792,0,-906.352876,-375.423654,2035.2022,
+ 0.825661,0.55141,-0.119297,-812.321046,-542.77557,2103.011094,
+ 0.812792,0.582554,0,-815.696038,-545.030668,2035.2022,
+ 0.825661,0.55141,-0.119297,-812.321046,-542.77557,2103.011094,
+ 0.910825,0.412792,0,-906.352876,-375.423654,2035.2022,
+ 0.917371,0.379736,-0.119297,-902.602786,-373.870315,2103.011094,
+ 0.630892,0.392232,0.669425,-581.445733,-388.509618,628.271002,
+ 0.82601,0.340012,0.449554,-679.332965,-281.388928,680.911024,
+ 0.743805,0.494626,0.449554,-611.383516,-408.513405,680.911024,
+ 0.82601,0.340012,0.449554,-679.332965,-281.388928,680.911024,
+ 0.630892,0.392232,0.669425,-581.445733,-388.509618,628.271002,
+ 0.69529,0.261614,0.669425,-646.067883,-267.610079,628.271002,
+ -0.317309,0.76318,-0.562913,337.688389,-815.251889,2355.166755,
+ -0.468784,0.754023,-0.460099,509.589579,-762.654701,2296.83617,
+ -0.353801,0.818498,-0.452643,351.011407,-847.416499,2296.83617,
+ -0.468784,0.754023,-0.460099,509.589579,-762.654701,2296.83617,
+ -0.317309,0.76318,-0.562913,337.688389,-815.251889,2355.166755,
+ -0.460101,0.686612,-0.562913,490.247555,-733.707316,2355.166755,
+ -0.326755,0.720984,-0.611076,321.797626,-776.888194,2408.92764,
+ -0.460101,0.686612,-0.562913,490.247555,-733.707316,2355.166755,
+ -0.317309,0.76318,-0.562913,337.688389,-815.251889,2355.166755,
+ -0.460101,0.686612,-0.562913,490.247555,-733.707316,2355.166755,
+ -0.326755,0.720984,-0.611076,321.797626,-776.888194,2408.92764,
+ -0.461133,0.643383,-0.611076,467.177743,-699.180902,2408.92764,
+ -0.412792,0.910825,-0,286.03707,-690.554573,2549.07468,
+ -0.527988,0.849252,-0,415.261462,-621.482696,2408.92764,
+ -0.352162,0.935939,-0,286.03707,-690.554573,2408.92764,
+ -0.527988,0.849252,-0,415.261462,-621.482696,2408.92764,
+ -0.412792,0.910825,-0,286.03707,-690.554573,2549.07468,
+ -0.582554,0.812792,-0,415.261462,-621.482696,2549.07468,
+ -0.2815,0.687288,0.669621,267.610079,-646.067883,628.271002,
+ -0.341645,0.549525,0.762431,361.488996,-541.006514,587.016307,
+ -0.227874,0.605618,0.762431,248.997951,-601.13423,587.016307,
+ -0.341645,0.549525,0.762431,361.488996,-541.006514,587.016307,
+ -0.2815,0.687288,0.669621,267.610079,-646.067883,628.271002,
+ -0.410175,0.619164,0.669621,388.509618,-581.445733,628.271002,
+ -0.494626,0.743805,0.449554,408.513405,-611.383516,680.911024,
+ -0.540644,0.52765,0.655203,494.47895,-494.47895,628.271002,
+ -0.410175,0.619164,0.669621,388.509618,-581.445733,628.271002,
+ -0.540644,0.52765,0.655203,494.47895,-494.47895,628.271002,
+ -0.494626,0.743805,0.449554,408.513405,-611.383516,680.911024,
+ -0.645232,0.645232,0.409086,519.938942,-519.938942,680.911024,
+ -0.543908,0.815571,0.197505,420.078334,-628.691656,741.194313,
+ -0.645232,0.645232,0.409086,519.938942,-519.938942,680.911024,
+ -0.494626,0.743805,0.449554,408.513405,-611.383516,680.911024,
+ -0.645232,0.645232,0.409086,519.938942,-519.938942,680.911024,
+ -0.543908,0.815571,0.197505,420.078334,-628.691656,741.194313,
+ -0.698738,0.698738,0.153394,534.658304,-534.658304,741.194313,
+ -0.554511,0.829344,-0.068597,422.38228,-632.139755,804.835469,
+ -0.698738,0.698738,0.153394,534.658304,-534.658304,741.194313,
+ -0.543908,0.815571,0.197505,420.078334,-628.691656,741.194313,
+ -0.698738,0.698738,0.153394,534.658304,-534.658304,741.194313,
+ -0.554511,0.829344,-0.068597,422.38228,-632.139755,804.835469,
+ -0.689987,0.717509,-0.095383,537.590672,-537.590672,804.835469,
+ -0.570681,0.796226,-0.200867,415.261462,-621.482696,867.310387,
+ -0.689987,0.717509,-0.095383,537.590672,-537.590672,804.835469,
+ -0.554511,0.829344,-0.068597,422.38228,-632.139755,804.835469,
+ -0.689987,0.717509,-0.095383,537.590672,-537.590672,804.835469,
+ -0.570681,0.796226,-0.200867,415.261462,-621.482696,867.310387,
+ -0.715051,0.669593,-0.200867,528.527588,-528.527588,867.310387,
+ -0.43772,0.467437,-0.768052,330.329744,-330.329744,1100.8886,
+ -0.37306,0.520502,-0.768052,415.261462,-621.482696,867.310387,
+ -0.338117,0.54385,-0.768052,259.538414,-388.426686,1100.8886,
+ -0.37306,0.520502,-0.768052,415.261462,-621.482696,867.310387,
+ -0.43772,0.467437,-0.768052,330.329744,-330.329744,1100.8886,
+ -0.467437,0.43772,-0.768052,528.527588,-528.527588,867.310387,
+ -0.521108,0.727062,-0.447021,337.399938,-504.954691,1287.75132,
+ -0.611428,0.652938,-0.447021,495.494614,-495.494614,1100.8886,
+ -0.472298,0.759676,-0.447021,389.30762,-582.640028,1100.8886,
+ -0.611428,0.652938,-0.447021,495.494614,-495.494614,1100.8886,
+ -0.521108,0.727062,-0.447021,337.399938,-504.954691,1287.75132,
+ -0.652938,0.611428,-0.447021,429.428666,-429.428666,1287.75132,
+ -0.521108,0.727062,-0.447021,363.353779,-543.79736,1474.61404,
+ -0.611428,0.652938,-0.447021,528.527588,-528.527588,1287.75132,
+ -0.472298,0.759676,-0.447021,415.261462,-621.482696,1287.75132,
+ -0.611428,0.652938,-0.447021,528.527588,-528.527588,1287.75132,
+ -0.521108,0.727062,-0.447021,363.353779,-543.79736,1474.61404,
+ -0.652938,0.611428,-0.447021,462.46164,-462.46164,1474.61404,
+ -0.029352,0.894042,-0.447021,0,-607.303844,1287.75132,
+ -0.145631,0.882589,-0.447021,136.706657,-687.270773,1100.8886,
+ 0.029352,0.894042,-0.447021,0,-700.735204,1100.8886,
+ -0.145631,0.882589,-0.447021,136.706657,-687.270773,1100.8886,
+ -0.029352,0.894042,-0.447021,0,-607.303844,1287.75132,
+ -0.203207,0.871137,-0.447021,118.479102,-595.634671,1287.75132,
+ -0.521108,0.727062,-0.447021,389.30762,-582.640028,1661.47676,
+ -0.611428,0.652938,-0.447021,561.560563,-561.560563,1474.61404,
+ -0.472298,0.759676,-0.447021,441.215303,-660.325365,1474.61404,
+ -0.611428,0.652938,-0.447021,561.560563,-561.560563,1474.61404,
+ -0.521108,0.727062,-0.447021,389.30762,-582.640028,1661.47676,
+ -0.652938,0.611428,-0.447021,495.494614,-495.494614,1661.47676,
+ -0.91848,0.181999,-0.3511,926.689746,-184.330051,2234.768955,
+ -0.962266,0.094775,-0.255071,964.850983,-0,2169.851549,
+ -0.952958,0.189085,-0.236891,946.311642,-188.233089,2169.851549,
+ -0.962266,0.094775,-0.255071,964.850983,-0,2169.851549,
+ -0.91848,0.181999,-0.3511,926.689746,-184.330051,2234.768955,
+ -0.925281,0.091132,-0.36817,944.844672,-0,2234.768955,
+ -0.458274,0.687833,0.562913,490.247555,-733.707316,1715.237645,
+ -0.559613,0.559613,0.611282,594.604481,-594.604481,1661.47676,
+ -0.417941,0.672244,0.611076,467.177743,-699.180902,1661.47676,
+ -0.559613,0.559613,0.611282,594.604481,-594.604481,1661.47676,
+ -0.458274,0.687833,0.562913,490.247555,-733.707316,1715.237645,
+ -0.59226,0.59226,0.546311,623.966782,-623.966782,1715.237645,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ -0.59226,0.59226,0.546311,623.966782,-623.966782,1715.237645,
+ -0.458274,0.687833,0.562913,490.247555,-733.707316,1715.237645,
+ -0.59226,0.59226,0.546311,623.966782,-623.966782,1715.237645,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.460101,0.686612,-0.562913,490.247555,-733.707316,2355.166755,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.468784,0.754023,-0.460099,509.589579,-762.654701,2296.83617,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.460101,0.686612,-0.562913,490.247555,-733.707316,2355.166755,
+ -0.585212,0.583657,-0.562913,623.966782,-623.966782,2355.166755,
+ -0.870883,0.172314,-0.460294,899.612557,-178.944064,2296.83617,
+ -0.925281,0.091132,-0.36817,944.844672,-0,2234.768955,
+ -0.91848,0.181999,-0.3511,926.689746,-184.330051,2234.768955,
+ -0.925281,0.091132,-0.36817,944.844672,-0,2234.768955,
+ -0.870883,0.172314,-0.460294,899.612557,-178.944064,2296.83617,
+ -0.875139,0.086194,-0.476133,917.237009,-0,2296.83617,
+ -0.810848,0.160167,-0.562913,865.466789,-172.152048,2355.166755,
+ -0.875139,0.086194,-0.476133,917.237009,-0,2296.83617,
+ -0.870883,0.172314,-0.460294,899.612557,-178.944064,2296.83617,
+ -0.875139,0.086194,-0.476133,917.237009,-0,2296.83617,
+ -0.810848,0.160167,-0.562913,865.466789,-172.152048,2355.166755,
+ -0.812508,0.080025,-0.577431,882.422286,-0,2355.166755,
+ -0.781011,0.12887,-0.611076,824.740108,-164.051007,2408.92764,
+ -0.812508,0.080025,-0.577431,882.422286,-0,2355.166755,
+ -0.810848,0.160167,-0.562913,865.466789,-172.152048,2355.166755,
+ -0.812508,0.080025,-0.577431,882.422286,-0,2355.166755,
+ -0.781011,0.12887,-0.611076,824.740108,-164.051007,2408.92764,
+ -0.789019,0.077712,-0.609434,840.897722,-0,2408.92764,
+ -0.995185,0.098017,-0,747.450884,-0,2549.07468,
+ -0.980785,0.19509,-0,733.088824,-145.820434,2408.92764,
+ -0.980785,0.19509,-0,733.088824,-145.820434,2549.07468,
+ -0.980785,0.19509,-0,733.088824,-145.820434,2408.92764,
+ -0.995185,0.098017,-0,747.450884,-0,2549.07468,
+ -0.995185,0.098017,0,747.450884,-0,2408.92764,
+ -0.461133,0.643383,-0.611076,467.177743,-699.180902,2408.92764,
+ -0.585212,0.583657,-0.562913,623.966782,-623.966782,2355.166755,
+ -0.460101,0.686612,-0.562913,490.247555,-733.707316,2355.166755,
+ -0.585212,0.583657,-0.562913,623.966782,-623.966782,2355.166755,
+ -0.461133,0.643383,-0.611076,467.177743,-699.180902,2408.92764,
+ -0.577791,0.541058,-0.611076,594.604481,-594.604481,2408.92764,
+ -0.582554,0.812792,-0,415.261462,-621.482696,2549.07468,
+ -0.683524,0.729928,-0,528.527588,-528.527588,2408.92764,
+ -0.527988,0.849252,-0,415.261462,-621.482696,2408.92764,
+ -0.683524,0.729928,-0,528.527588,-528.527588,2408.92764,
+ -0.582554,0.812792,-0,415.261462,-621.482696,2549.07468,
+ -0.729928,0.683524,-0,528.527588,-528.527588,2549.07468,
+ -0.410175,0.619164,0.669621,388.509618,-581.445733,628.271002,
+ -0.442288,0.472315,0.762431,460.088221,-460.088221,587.016307,
+ -0.341645,0.549525,0.762431,361.488996,-541.006514,587.016307,
+ -0.442288,0.472315,0.762431,460.088221,-460.088221,587.016307,
+ -0.410175,0.619164,0.669621,388.509618,-581.445733,628.271002,
+ -0.540644,0.52765,0.655203,494.47895,-494.47895,628.271002,
+ -0.743805,0.494626,0.449554,611.383516,-408.513405,680.911024,
+ -0.540644,0.52765,0.655203,494.47895,-494.47895,628.271002,
+ -0.645232,0.645232,0.409086,519.938942,-519.938942,680.911024,
+ -0.540644,0.52765,0.655203,494.47895,-494.47895,628.271002,
+ -0.743805,0.494626,0.449554,611.383516,-408.513405,680.911024,
+ -0.630892,0.392232,0.669425,581.445733,-388.509618,628.271002,
+ -0.815571,0.543908,0.197505,628.691656,-420.078334,741.194313,
+ -0.645232,0.645232,0.409086,519.938942,-519.938942,680.911024,
+ -0.698738,0.698738,0.153394,534.658304,-534.658304,741.194313,
+ -0.645232,0.645232,0.409086,519.938942,-519.938942,680.911024,
+ -0.815571,0.543908,0.197505,628.691656,-420.078334,741.194313,
+ -0.743805,0.494626,0.449554,611.383516,-408.513405,680.911024,
+ -0.81088,0.581183,-0.06856,632.139755,-422.38228,804.835469,
+ -0.698738,0.698738,0.153394,534.658304,-534.658304,741.194313,
+ -0.689987,0.717509,-0.095383,537.590672,-537.590672,804.835469,
+ -0.698738,0.698738,0.153394,534.658304,-534.658304,741.194313,
+ -0.81088,0.581183,-0.06856,632.139755,-422.38228,804.835469,
+ -0.815571,0.543908,0.197505,628.691656,-420.078334,741.194313,
+ -0.715051,0.669593,-0.200867,528.527588,-528.527588,867.310387,
+ -0.81088,0.581183,-0.06856,632.139755,-422.38228,804.835469,
+ -0.689987,0.717509,-0.095383,537.590672,-537.590672,804.835469,
+ -0.81088,0.581183,-0.06856,632.139755,-422.38228,804.835469,
+ -0.715051,0.669593,-0.200867,528.527588,-528.527588,867.310387,
+ -0.831943,0.517227,-0.200867,621.482696,-415.261462,867.310387,
+ -0.520502,0.37306,-0.768052,388.426686,-259.538414,1100.8886,
+ -0.467437,0.43772,-0.768052,528.527588,-528.527588,867.310387,
+ -0.43772,0.467437,-0.768052,330.329744,-330.329744,1100.8886,
+ -0.467437,0.43772,-0.768052,528.527588,-528.527588,867.310387,
+ -0.520502,0.37306,-0.768052,388.426686,-259.538414,1100.8886,
+ -0.54385,0.338117,-0.768052,621.482696,-415.261462,867.310387,
+ 0.952958,0.189085,-0.236891,-946.311642,-188.233089,2169.851549,
+ 0.865325,0.357689,-0.3511,-872.922654,-361.576402,2234.768955,
+ 0.897759,0.371365,-0.236891,-891.406075,-369.232486,2169.851549,
+ 0.865325,0.357689,-0.3511,-872.922654,-361.576402,2234.768955,
+ 0.952958,0.189085,-0.236891,-946.311642,-188.233089,2169.851549,
+ 0.91848,0.181999,-0.3511,-926.689746,-184.330051,2234.768955,
+ -0.652938,0.611428,-0.447021,429.428666,-429.428666,1287.75132,
+ -0.727062,0.521108,-0.447021,582.640028,-389.30762,1100.8886,
+ -0.611428,0.652938,-0.447021,495.494614,-495.494614,1100.8886,
+ -0.727062,0.521108,-0.447021,582.640028,-389.30762,1100.8886,
+ -0.652938,0.611428,-0.447021,429.428666,-429.428666,1287.75132,
+ -0.759676,0.472298,-0.447021,504.954691,-337.399938,1287.75132,
+ -0.652938,0.611428,-0.447021,462.46164,-462.46164,1474.61404,
+ -0.727062,0.521108,-0.447021,621.482696,-415.261462,1287.75132,
+ -0.611428,0.652938,-0.447021,528.527588,-528.527588,1287.75132,
+ -0.727062,0.521108,-0.447021,621.482696,-415.261462,1287.75132,
+ -0.652938,0.611428,-0.447021,462.46164,-462.46164,1474.61404,
+ -0.759676,0.472298,-0.447021,543.79736,-363.353779,1474.61404,
+ -0.652938,0.611428,-0.447021,495.494614,-495.494614,1661.47676,
+ -0.727062,0.521108,-0.447021,660.325365,-441.215303,1474.61404,
+ -0.611428,0.652938,-0.447021,561.560563,-561.560563,1474.61404,
+ -0.727062,0.521108,-0.447021,660.325365,-441.215303,1474.61404,
+ -0.652938,0.611428,-0.447021,495.494614,-495.494614,1661.47676,
+ -0.759676,0.472298,-0.447021,582.640028,-389.30762,1661.47676,
+ -0.732968,0.120943,0.669425,685.862006,-136.426435,628.271002,
+ -0.645559,0.063582,0.761059,650.663002,-0,587.016307,
+ -0.630153,0.146993,0.762431,638.160695,-126.938055,587.016307,
+ -0.645559,0.063582,0.761059,650.663002,-0,587.016307,
+ -0.732968,0.120943,0.669425,685.862006,-136.426435,628.271002,
+ -0.740721,0.072955,0.66784,699.298837,-0,628.271002,
+ -0.687833,0.458274,0.562913,733.707316,-490.247555,1715.237645,
+ -0.559613,0.559613,0.611282,594.604481,-594.604481,1661.47676,
+ -0.59226,0.59226,0.546311,623.966782,-623.966782,1715.237645,
+ -0.559613,0.559613,0.611282,594.604481,-594.604481,1661.47676,
+ -0.687833,0.458274,0.562913,733.707316,-490.247555,1715.237645,
+ -0.672244,0.417941,0.611076,699.180902,-467.177743,1661.47676,
+ -0.738649,0.49247,0.460294,762.654701,-509.589579,1773.56823,
+ -0.59226,0.59226,0.546311,623.966782,-623.966782,1715.237645,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.59226,0.59226,0.546311,623.966782,-623.966782,1715.237645,
+ -0.738649,0.49247,0.460294,762.654701,-509.589579,1773.56823,
+ -0.687833,0.458274,0.562913,733.707316,-490.247555,1715.237645,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.662575,0.661607,0.3511,668.106075,-668.106075,1835.635445,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.738649,0.49247,0.460294,762.654701,-509.589579,1773.56823,
+ -0.130866,0.717913,0.683722,136.426435,-685.862006,628.271002,
+ -0.021232,0.646722,0.762431,0,-650.663002,587.016307,
+ 0.024376,0.742479,0.669425,0,-699.298837,628.271002,
+ -0.021232,0.646722,0.762431,0,-650.663002,587.016307,
+ -0.130866,0.717913,0.683722,136.426435,-685.862006,628.271002,
+ -0.126198,0.634438,0.762603,126.938055,-638.160695,587.016307,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.662575,0.661607,-0.3511,668.106075,-668.106075,2234.768955,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.738649,0.49247,-0.460294,762.654701,-509.589579,2296.83617,
+ -0.585212,0.583657,-0.562913,623.966782,-623.966782,2355.166755,
+ -0.738649,0.49247,-0.460294,762.654701,-509.589579,2296.83617,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.738649,0.49247,-0.460294,762.654701,-509.589579,2296.83617,
+ -0.585212,0.583657,-0.562913,623.966782,-623.966782,2355.166755,
+ -0.687833,0.458274,-0.562913,733.707316,-490.247555,2355.166755,
+ -0.577791,0.541058,-0.611076,594.604481,-594.604481,2408.92764,
+ -0.687833,0.458274,-0.562913,733.707316,-490.247555,2355.166755,
+ -0.585212,0.583657,-0.562913,623.966782,-623.966782,2355.166755,
+ -0.687833,0.458274,-0.562913,733.707316,-490.247555,2355.166755,
+ -0.577791,0.541058,-0.611076,594.604481,-594.604481,2408.92764,
+ -0.672244,0.417941,-0.611076,699.180902,-467.177743,2408.92764,
+ -0.729928,0.683524,-0,528.527588,-528.527588,2549.07468,
+ -0.812792,0.582554,-0,621.482696,-415.261462,2408.92764,
+ -0.683524,0.729928,-0,528.527588,-528.527588,2408.92764,
+ -0.812792,0.582554,-0,621.482696,-415.261462,2408.92764,
+ -0.729928,0.683524,-0,528.527588,-528.527588,2549.07468,
+ -0.849252,0.527988,-0,621.482696,-415.261462,2549.07468,
+ -0.540644,0.52765,0.655203,494.47895,-494.47895,628.271002,
+ -0.525933,0.376953,0.762431,541.006514,-361.488996,587.016307,
+ -0.442288,0.472315,0.762431,460.088221,-460.088221,587.016307,
+ -0.525933,0.376953,0.762431,541.006514,-361.488996,587.016307,
+ -0.540644,0.52765,0.655203,494.47895,-494.47895,628.271002,
+ -0.630892,0.392232,0.669425,581.445733,-388.509618,628.271002,
+ -0.906011,0.374347,0.197505,698.56474,-289.354989,741.194313,
+ -0.743805,0.494626,0.449554,611.383516,-408.513405,680.911024,
+ -0.815571,0.543908,0.197505,628.691656,-420.078334,741.194313,
+ -0.743805,0.494626,0.449554,611.383516,-408.513405,680.911024,
+ -0.906011,0.374347,0.197505,698.56474,-289.354989,741.194313,
+ -0.82601,0.340012,0.449554,679.332965,-281.388928,680.911024,
+ -0.908682,0.411821,-0.06856,702.396062,-290.941975,804.835469,
+ -0.815571,0.543908,0.197505,628.691656,-420.078334,741.194313,
+ -0.81088,0.581183,-0.06856,632.139755,-422.38228,804.835469,
+ -0.815571,0.543908,0.197505,628.691656,-420.078334,741.194313,
+ -0.908682,0.411821,-0.06856,702.396062,-290.941975,804.835469,
+ -0.906011,0.374347,0.197505,698.56474,-289.354989,741.194313,
+ -0.831943,0.517227,-0.200867,621.482696,-415.261462,867.310387,
+ -0.908682,0.411821,-0.06856,702.396062,-290.941975,804.835469,
+ -0.81088,0.581183,-0.06856,632.139755,-422.38228,804.835469,
+ -0.908682,0.411821,-0.06856,702.396062,-290.941975,804.835469,
+ -0.831943,0.517227,-0.200867,621.482696,-415.261462,867.310387,
+ -0.916863,0.344985,-0.200867,690.554573,-286.03707,867.310387,
+ -0.759676,0.472298,-0.447021,543.79736,-363.353779,1474.61404,
+ -0.814754,0.369253,-0.447021,690.554573,-286.03707,1287.75132,
+ -0.727062,0.521108,-0.447021,621.482696,-415.261462,1287.75132,
+ -0.814754,0.369253,-0.447021,690.554573,-286.03707,1287.75132,
+ -0.759676,0.472298,-0.447021,543.79736,-363.353779,1474.61404,
+ -0.837219,0.315017,-0.447021,604.235252,-250.282436,1474.61404,
+ -0.583281,0.264347,-0.768052,431.596609,-178.773169,1100.8886,
+ -0.54385,0.338117,-0.768052,621.482696,-415.261462,867.310387,
+ -0.520502,0.37306,-0.768052,388.426686,-259.538414,1100.8886,
+ -0.54385,0.338117,-0.768052,621.482696,-415.261462,867.310387,
+ -0.583281,0.264347,-0.768052,431.596609,-178.773169,1100.8886,
+ -0.599364,0.22552,-0.768052,690.554573,-286.03707,867.310387,
+ -0.759676,0.472298,-0.447021,504.954691,-337.399938,1287.75132,
+ -0.814754,0.369253,-0.447021,647.394912,-268.159753,1100.8886,
+ -0.727062,0.521108,-0.447021,582.640028,-389.30762,1100.8886,
+ -0.814754,0.369253,-0.447021,647.394912,-268.159753,1100.8886,
+ -0.759676,0.472298,-0.447021,504.954691,-337.399938,1287.75132,
+ -0.837219,0.315017,-0.447021,561.075591,-232.405119,1287.75132,
+ 0.952958,0.189085,0.236891,-946.311642,-188.233089,1900.552851,
+ 0.985604,0.097074,0.138423,-976.970216,-0,1967.393306,
+ 0.973826,0.193469,0.119297,-958.198007,-190.597434,1967.393306,
+ 0.985604,0.097074,0.138423,-976.970216,-0,1967.393306,
+ 0.952958,0.189085,0.236891,-946.311642,-188.233089,1900.552851,
+ 0.962266,0.094775,0.255071,-964.850983,-0,1900.552851,
+ -0.759676,0.472298,-0.447021,582.640028,-389.30762,1661.47676,
+ -0.814754,0.369253,-0.447021,733.714234,-303.914386,1474.61404,
+ -0.727062,0.521108,-0.447021,660.325365,-441.215303,1474.61404,
+ -0.814754,0.369253,-0.447021,733.714234,-303.914386,1474.61404,
+ -0.759676,0.472298,-0.447021,582.640028,-389.30762,1661.47676,
+ -0.837219,0.315017,-0.447021,647.394912,-268.159753,1661.47676,
+ -0.764021,0.315278,0.562913,815.251889,-337.688389,1715.237645,
+ -0.672244,0.417941,0.611076,699.180902,-467.177743,1661.47676,
+ -0.687833,0.458274,0.562913,733.707316,-490.247555,1715.237645,
+ -0.672244,0.417941,0.611076,699.180902,-467.177743,1661.47676,
+ -0.764021,0.315278,0.562913,815.251889,-337.688389,1715.237645,
+ -0.740863,0.278762,0.611076,776.888194,-321.797626,1661.47676,
+ -0.820532,0.338904,0.460294,847.416499,-351.011407,1773.56823,
+ -0.687833,0.458274,0.562913,733.707316,-490.247555,1715.237645,
+ -0.738649,0.49247,0.460294,762.654701,-509.589579,1773.56823,
+ -0.687833,0.458274,0.562913,733.707316,-490.247555,1715.237645,
+ -0.820532,0.338904,0.460294,847.416499,-351.011407,1773.56823,
+ -0.764021,0.315278,0.562913,815.251889,-337.688389,1715.237645,
+ -0.865325,0.357689,0.3511,872.922654,-361.576402,1835.635445,
+ -0.738649,0.49247,0.460294,762.654701,-509.589579,1773.56823,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.738649,0.49247,0.460294,762.654701,-509.589579,1773.56823,
+ -0.865325,0.357689,0.3511,872.922654,-361.576402,1835.635445,
+ -0.820532,0.338904,0.460294,847.416499,-351.011407,1773.56823,
+ -0.897759,0.371365,0.236891,891.406075,-369.232486,1900.552851,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.897759,0.371365,0.236891,891.406075,-369.232486,1900.552851,
+ -0.865325,0.357689,0.3511,872.922654,-361.576402,1835.635445,
+ -0.910825,0.412792,0,906.352876,-375.423654,2035.2022,
+ -0.819909,0.56476,0.093785,812.321046,-542.77557,1967.393306,
+ -0.831469,0.55557,-0,815.696038,-545.030668,2035.2022,
+ -0.819909,0.56476,0.093785,812.321046,-542.77557,1967.393306,
+ -0.910825,0.412792,0,906.352876,-375.423654,2035.2022,
+ -0.917371,0.379736,0.119297,902.602786,-373.870315,1967.393306,
+ -0.917371,0.379736,0.119297,902.602786,-373.870315,1967.393306,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.819909,0.56476,0.093785,812.321046,-542.77557,1967.393306,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.917371,0.379736,0.119297,902.602786,-373.870315,1967.393306,
+ -0.897759,0.371365,0.236891,891.406075,-369.232486,1900.552851,
+ -0.819909,0.56476,-0.093785,812.321046,-542.77557,2103.011094,
+ -0.910825,0.412792,0,906.352876,-375.423654,2035.2022,
+ -0.831469,0.55557,-0,815.696038,-545.030668,2035.2022,
+ -0.910825,0.412792,0,906.352876,-375.423654,2035.2022,
+ -0.819909,0.56476,-0.093785,812.321046,-542.77557,2103.011094,
+ -0.917371,0.379736,-0.119297,902.602786,-373.870315,2103.011094,
+ 0.91848,0.181999,0.3511,-926.689746,-184.330051,1835.635445,
+ 0.962266,0.094775,0.255071,-964.850983,-0,1900.552851,
+ 0.952958,0.189085,0.236891,-946.311642,-188.233089,1900.552851,
+ 0.962266,0.094775,0.255071,-964.850983,-0,1900.552851,
+ 0.91848,0.181999,0.3511,-926.689746,-184.330051,1835.635445,
+ 0.925281,0.091132,0.36817,-944.844672,0,1835.635445,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.917371,0.379736,-0.119297,902.602786,-373.870315,2103.011094,
+ -0.819909,0.56476,-0.093785,812.321046,-542.77557,2103.011094,
+ -0.917371,0.379736,-0.119297,902.602786,-373.870315,2103.011094,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.897759,0.371365,-0.236891,891.406075,-369.232486,2169.851549,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.897759,0.371365,-0.236891,891.406075,-369.232486,2169.851549,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.897759,0.371365,-0.236891,891.406075,-369.232486,2169.851549,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.865325,0.357689,-0.3511,872.922654,-361.576402,2234.768955,
+ 0.633017,0.630231,0.449554,-519.938942,-519.938942,680.911024,
+ 0.432767,0.603806,0.669425,-388.509618,-581.445733,628.271002,
+ 0.542249,0.507776,0.669425,-494.47895,-494.47895,628.271002,
+ 0.432767,0.603806,0.669425,-388.509618,-581.445733,628.271002,
+ 0.633017,0.630231,0.449554,-519.938942,-519.938942,680.911024,
+ 0.497902,0.741616,0.449554,-408.513405,-611.383516,680.911024,
+ -0.738649,0.49247,-0.460294,762.654701,-509.589579,2296.83617,
+ -0.865325,0.357689,-0.3511,872.922654,-361.576402,2234.768955,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.865325,0.357689,-0.3511,872.922654,-361.576402,2234.768955,
+ -0.738649,0.49247,-0.460294,762.654701,-509.589579,2296.83617,
+ -0.820532,0.338904,-0.460294,847.416499,-351.011407,2296.83617,
+ -0.687833,0.458274,-0.562913,733.707316,-490.247555,2355.166755,
+ -0.820532,0.338904,-0.460294,847.416499,-351.011407,2296.83617,
+ -0.738649,0.49247,-0.460294,762.654701,-509.589579,2296.83617,
+ -0.820532,0.338904,-0.460294,847.416499,-351.011407,2296.83617,
+ -0.687833,0.458274,-0.562913,733.707316,-490.247555,2355.166755,
+ -0.764021,0.315278,-0.562913,815.251889,-337.688389,2355.166755,
+ -0.672244,0.417941,-0.611076,699.180902,-467.177743,2408.92764,
+ -0.764021,0.315278,-0.562913,815.251889,-337.688389,2355.166755,
+ -0.687833,0.458274,-0.562913,733.707316,-490.247555,2355.166755,
+ -0.764021,0.315278,-0.562913,815.251889,-337.688389,2355.166755,
+ -0.672244,0.417941,-0.611076,699.180902,-467.177743,2408.92764,
+ -0.740863,0.278762,-0.611076,776.888194,-321.797626,2408.92764,
+ -0.849252,0.527988,-0,621.482696,-415.261462,2549.07468,
+ -0.910825,0.412792,-0,690.554573,-286.03707,2408.92764,
+ -0.812792,0.582554,-0,621.482696,-415.261462,2408.92764,
+ -0.910825,0.412792,-0,690.554573,-286.03707,2408.92764,
+ -0.849252,0.527988,-0,621.482696,-415.261462,2549.07468,
+ -0.935939,0.352162,-0,690.554573,-286.03707,2549.07468,
+ -0.630892,0.392232,0.669425,581.445733,-388.509618,628.271002,
+ -0.589368,0.267106,0.762431,601.13423,-248.997951,587.016307,
+ -0.525933,0.376953,0.762431,541.006514,-361.488996,587.016307,
+ -0.589368,0.267106,0.762431,601.13423,-248.997951,587.016307,
+ -0.630892,0.392232,0.669425,581.445733,-388.509618,628.271002,
+ -0.69529,0.261614,0.669425,646.067883,-267.610079,628.271002,
+ -0.876472,0.172332,0.449554,721.176029,-143.450831,680.911024,
+ -0.69529,0.261614,0.669425,646.067883,-267.610079,628.271002,
+ -0.82601,0.340012,0.449554,679.332965,-281.388928,680.911024,
+ -0.69529,0.261614,0.669425,646.067883,-267.610079,628.271002,
+ -0.876472,0.172332,0.449554,721.176029,-143.450831,680.911024,
+ -0.732968,0.120943,0.669425,685.862006,-136.426435,628.271002,
+ -0.961634,0.1904,0.197505,741.592372,-147.511894,741.194313,
+ -0.82601,0.340012,0.449554,679.332965,-281.388928,680.911024,
+ -0.906011,0.374347,0.197505,698.56474,-289.354989,741.194313,
+ -0.82601,0.340012,0.449554,679.332965,-281.388928,680.911024,
+ -0.961634,0.1904,0.197505,741.592372,-147.511894,741.194313,
+ -0.876472,0.172332,0.449554,721.176029,-143.450831,680.911024,
+ -0.971564,0.226633,-0.06856,745.659682,-148.320933,804.835469,
+ -0.906011,0.374347,0.197505,698.56474,-289.354989,741.194313,
+ -0.908682,0.411821,-0.06856,702.396062,-290.941975,804.835469,
+ -0.906011,0.374347,0.197505,698.56474,-289.354989,741.194313,
+ -0.971564,0.226633,-0.06856,745.659682,-148.320933,804.835469,
+ -0.961634,0.1904,0.197505,741.592372,-147.511894,741.194313,
+ -0.916863,0.344985,-0.200867,690.554573,-286.03707,867.310387,
+ -0.971564,0.226633,-0.06856,745.659682,-148.320933,804.835469,
+ -0.908682,0.411821,-0.06856,702.396062,-290.941975,804.835469,
+ -0.971564,0.226633,-0.06856,745.659682,-148.320933,804.835469,
+ -0.916863,0.344985,-0.200867,690.554573,-286.03707,867.310387,
+ -0.966549,0.159485,-0.200867,733.088824,-145.820434,867.310387,
+ -0.623645,0.145475,-0.768052,458.180517,-91.137771,1100.8886,
+ -0.599364,0.22552,-0.768052,690.554573,-286.03707,867.310387,
+ -0.583281,0.264347,-0.768052,431.596609,-178.773169,1100.8886,
+ -0.599364,0.22552,-0.768052,690.554573,-286.03707,867.310387,
+ -0.623645,0.145475,-0.768052,458.180517,-91.137771,1100.8886,
+ -0.631844,0.104257,-0.768052,733.088824,-145.820434,867.310387,
+ -0.837219,0.315017,-0.447021,561.075591,-232.405119,1287.75132,
+ -0.871137,0.203207,-0.447021,687.270773,-136.706657,1100.8886,
+ -0.814754,0.369253,-0.447021,647.394912,-268.159753,1100.8886,
+ -0.871137,0.203207,-0.447021,687.270773,-136.706657,1100.8886,
+ -0.837219,0.315017,-0.447021,561.075591,-232.405119,1287.75132,
+ -0.882589,0.145631,-0.447021,595.634671,-118.479102,1287.75132,
+ -0.837219,0.315017,-0.447021,604.235252,-250.282436,1474.61404,
+ -0.871137,0.203207,-0.447021,733.088824,-145.820434,1287.75132,
+ -0.814754,0.369253,-0.447021,690.554573,-286.03707,1287.75132,
+ -0.871137,0.203207,-0.447021,733.088824,-145.820434,1287.75132,
+ -0.837219,0.315017,-0.447021,604.235252,-250.282436,1474.61404,
+ -0.882589,0.145631,-0.447021,641.452722,-127.592879,1474.61404,
+ -0.837219,0.315017,-0.447021,647.394912,-268.159753,1661.47676,
+ -0.871137,0.203207,-0.447021,778.906876,-154.934211,1474.61404,
+ -0.814754,0.369253,-0.447021,733.714234,-303.914386,1474.61404,
+ -0.871137,0.203207,-0.447021,778.906876,-154.934211,1474.61404,
+ -0.837219,0.315017,-0.447021,647.394912,-268.159753,1661.47676,
+ -0.882589,0.145631,-0.447021,687.270773,-136.706657,1661.47676,
+ -0.810848,0.160167,0.562913,865.466789,-172.152048,1715.237645,
+ -0.740863,0.278762,0.611076,776.888194,-321.797626,1661.47676,
+ -0.764021,0.315278,0.562913,815.251889,-337.688389,1715.237645,
+ -0.740863,0.278762,0.611076,776.888194,-321.797626,1661.47676,
+ -0.810848,0.160167,0.562913,865.466789,-172.152048,1715.237645,
+ -0.781011,0.12887,0.611076,824.740108,-164.051007,1661.47676,
+ -0.870883,0.172314,0.460294,899.612557,-178.944064,1773.56823,
+ -0.764021,0.315278,0.562913,815.251889,-337.688389,1715.237645,
+ -0.820532,0.338904,0.460294,847.416499,-351.011407,1773.56823,
+ -0.764021,0.315278,0.562913,815.251889,-337.688389,1715.237645,
+ -0.870883,0.172314,0.460294,899.612557,-178.944064,1773.56823,
+ -0.810848,0.160167,0.562913,865.466789,-172.152048,1715.237645,
+ -0.91848,0.181999,0.3511,926.689746,-184.330051,1835.635445,
+ -0.820532,0.338904,0.460294,847.416499,-351.011407,1773.56823,
+ -0.865325,0.357689,0.3511,872.922654,-361.576402,1835.635445,
+ -0.820532,0.338904,0.460294,847.416499,-351.011407,1773.56823,
+ -0.91848,0.181999,0.3511,926.689746,-184.330051,1835.635445,
+ -0.870883,0.172314,0.460294,899.612557,-178.944064,1773.56823,
+ -0.952958,0.189085,0.236891,946.311642,-188.233089,1900.552851,
+ -0.865325,0.357689,0.3511,872.922654,-361.576402,1835.635445,
+ -0.897759,0.371365,0.236891,891.406075,-369.232486,1900.552851,
+ -0.865325,0.357689,0.3511,872.922654,-361.576402,1835.635445,
+ -0.952958,0.189085,0.236891,946.311642,-188.233089,1900.552851,
+ -0.91848,0.181999,0.3511,926.689746,-184.330051,1835.635445,
+ -0.973826,0.193469,0.119297,958.198007,-190.597434,1967.393306,
+ -0.897759,0.371365,0.236891,891.406075,-369.232486,1900.552851,
+ -0.917371,0.379736,0.119297,902.602786,-373.870315,1967.393306,
+ -0.897759,0.371365,0.236891,891.406075,-369.232486,1900.552851,
+ -0.973826,0.193469,0.119297,958.198007,-190.597434,1967.393306,
+ -0.952958,0.189085,0.236891,946.311642,-188.233089,1900.552851,
+ -0.973856,0.227168,-0,962.179081,-191.389319,2035.2022,
+ -0.917371,0.379736,0.119297,902.602786,-373.870315,1967.393306,
+ -0.910825,0.412792,0,906.352876,-375.423654,2035.2022,
+ -0.917371,0.379736,0.119297,902.602786,-373.870315,1967.393306,
+ -0.973856,0.227168,-0,962.179081,-191.389319,2035.2022,
+ -0.973826,0.193469,0.119297,958.198007,-190.597434,1967.393306,
+ -0.917371,0.379736,-0.119297,902.602786,-373.870315,2103.011094,
+ -0.973856,0.227168,-0,962.179081,-191.389319,2035.2022,
+ -0.910825,0.412792,0,906.352876,-375.423654,2035.2022,
+ -0.973856,0.227168,-0,962.179081,-191.389319,2035.2022,
+ -0.917371,0.379736,-0.119297,902.602786,-373.870315,2103.011094,
+ -0.973826,0.193469,-0.119297,958.198007,-190.597434,2103.011094,
+ -0.897759,0.371365,-0.236891,891.406075,-369.232486,2169.851549,
+ -0.973826,0.193469,-0.119297,958.198007,-190.597434,2103.011094,
+ -0.917371,0.379736,-0.119297,902.602786,-373.870315,2103.011094,
+ -0.973826,0.193469,-0.119297,958.198007,-190.597434,2103.011094,
+ -0.897759,0.371365,-0.236891,891.406075,-369.232486,2169.851549,
+ -0.952958,0.189085,-0.236891,946.311642,-188.233089,2169.851549,
+ -0.865325,0.357689,-0.3511,872.922654,-361.576402,2234.768955,
+ -0.952958,0.189085,-0.236891,946.311642,-188.233089,2169.851549,
+ -0.897759,0.371365,-0.236891,891.406075,-369.232486,2169.851549,
+ -0.952958,0.189085,-0.236891,946.311642,-188.233089,2169.851549,
+ -0.865325,0.357689,-0.3511,872.922654,-361.576402,2234.768955,
+ -0.91848,0.181999,-0.3511,926.689746,-184.330051,2234.768955,
+ -0.740863,0.278762,-0.611076,776.888194,-321.797626,2408.92764,
+ -0.810848,0.160167,-0.562913,865.466789,-172.152048,2355.166755,
+ -0.764021,0.315278,-0.562913,815.251889,-337.688389,2355.166755,
+ -0.810848,0.160167,-0.562913,865.466789,-172.152048,2355.166755,
+ -0.740863,0.278762,-0.611076,776.888194,-321.797626,2408.92764,
+ -0.781011,0.12887,-0.611076,824.740108,-164.051007,2408.92764,
+ -0.820532,0.338904,-0.460294,847.416499,-351.011407,2296.83617,
+ -0.91848,0.181999,-0.3511,926.689746,-184.330051,2234.768955,
+ -0.865325,0.357689,-0.3511,872.922654,-361.576402,2234.768955,
+ -0.91848,0.181999,-0.3511,926.689746,-184.330051,2234.768955,
+ -0.820532,0.338904,-0.460294,847.416499,-351.011407,2296.83617,
+ -0.870883,0.172314,-0.460294,899.612557,-178.944064,2296.83617,
+ -0.764021,0.315278,-0.562913,815.251889,-337.688389,2355.166755,
+ -0.870883,0.172314,-0.460294,899.612557,-178.944064,2296.83617,
+ -0.820532,0.338904,-0.460294,847.416499,-351.011407,2296.83617,
+ -0.870883,0.172314,-0.460294,899.612557,-178.944064,2296.83617,
+ -0.764021,0.315278,-0.562913,815.251889,-337.688389,2355.166755,
+ -0.810848,0.160167,-0.562913,865.466789,-172.152048,2355.166755,
+ -0.935939,0.352162,-0,690.554573,-286.03707,2549.07468,
+ -0.980785,0.19509,-0,733.088824,-145.820434,2408.92764,
+ -0.910825,0.412792,-0,690.554573,-286.03707,2408.92764,
+ -0.980785,0.19509,-0,733.088824,-145.820434,2408.92764,
+ -0.935939,0.352162,-0,690.554573,-286.03707,2549.07468,
+ -0.980785,0.19509,-0,733.088824,-145.820434,2549.07468,
+ 0.890977,0.087754,-0.445488,-700.735204,0,1100.8886,
+ 0.882589,0.145631,-0.447021,-595.634671,-118.479102,1287.75132,
+ 0.871137,0.203207,-0.447021,-687.270773,-136.706657,1100.8886,
+ 0.882589,0.145631,-0.447021,-595.634671,-118.479102,1287.75132,
+ 0.890977,0.087754,-0.445488,-700.735204,0,1100.8886,
+ 0.890977,0.087754,-0.445488,-607.303844,0,1287.75132,
+ 0.69529,0.261614,0.669425,-646.067883,-267.610079,628.271002,
+ 0.876472,0.172332,0.449554,-721.176029,-143.450831,680.911024,
+ 0.82601,0.340012,0.449554,-679.332965,-281.388928,680.911024,
+ 0.876472,0.172332,0.449554,-721.176029,-143.450831,680.911024,
+ 0.69529,0.261614,0.669425,-646.067883,-267.610079,628.271002,
+ 0.732968,0.120943,0.669425,-685.862006,-136.426435,628.271002,
+ -0.377198,0.832286,0.406229,357.792969,-863.788639,1813.40854,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ -0.32859,0.82894,0.452643,351.011407,-847.416499,1773.56823,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ -0.377198,0.832286,0.406229,357.792969,-863.788639,1813.40854,
+ -0.431053,0.806443,0.404776,395.941832,-839.735343,1806.112064,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ -0.431053,0.806443,0.404776,395.941832,-839.735343,1806.112064,
+ -0.431053,0.806443,0.404776,476.980677,-794.166464,1801.623942,
+ -0.532321,0.742706,0.406229,517.019027,-773.773655,1803.632468,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ -0.431053,0.806443,0.404776,476.980677,-794.166464,1801.623942,
+ -0.532321,0.742706,0.406229,517.019027,-773.773655,1803.632468,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.477566,0.756484,0.446838,509.589579,-762.654701,1773.56823,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.532321,0.742706,0.406229,517.019027,-773.773655,1803.632468,
+ -0.580099,0.706853,0.404776,549.426369,-748.597589,1806.112103,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.580099,0.706853,0.404776,549.426369,-748.597589,1806.112103,
+ -0.580099,0.706853,0.404776,612.093113,-704.779902,1819.404068,
+ -0.621118,0.652965,0.433416,648.584509,-648.584509,1773.56823,
+ -0.580099,0.706853,0.404776,612.093113,-704.779902,1819.404068,
+ -0.662575,0.661607,0.3511,668.106075,-668.106075,1835.635445,
+ -0.662575,0.661607,0.3511,668.106075,-668.106075,1835.635445,
+ -0.580099,0.706853,0.404776,612.093113,-704.779902,1819.404068,
+ -0.594359,0.724228,0.349616,660.420878,-674.413152,1835.635445,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ -0.32859,0.82894,0.452643,351.011407,-847.416499,1773.56823,
+ -0.172314,0.870883,0.460294,178.944064,-899.612557,1773.56823,
+ -0.32859,0.82894,0.452643,351.011407,-847.416499,1773.56823,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ -0.265441,0.875041,0.404776,301.781055,-883.553039,1819.403991,
+ -0.32859,0.82894,0.452643,351.011407,-847.416499,1773.56823,
+ -0.265441,0.875041,0.404776,301.781055,-883.553039,1819.403991,
+ -0.377198,0.832286,0.406229,357.792969,-863.788639,1813.40854,
+ -0.265441,0.875041,0.404776,301.781055,-883.553039,1819.403991,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ -0.271966,0.896551,0.349616,226.426278,-913.919995,1835.635445,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ -0.277526,0.914879,0.293216,199.065204,-923.935663,1840.988923,
+ -0.271966,0.896551,0.349616,226.426278,-913.919995,1835.635445,
+ -0.277526,0.914879,0.293216,199.065204,-923.935663,1840.988923,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ -0.186438,0.937285,0.294512,184.93882,-929.750234,1845.760812,
+ -0.01288,0.939228,0.343052,0,-944.844672,1835.635445,
+ -0.093709,0.951442,0.293216,104.493637,-940.355693,1854.464465,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ -0.093709,0.951442,0.293216,104.493637,-940.355693,1854.464465,
+ -0.01288,0.939228,0.343052,0,-944.844672,1835.635445,
+ 0.000461,0.971536,0.236891,0,-964.850983,1900.552851,
+ -0.204727,0.913717,0.351011,184.330051,-926.689746,1835.635445,
+ -0.093709,0.951442,0.293216,104.493637,-940.355693,1854.464465,
+ -0.186438,0.937285,0.294512,184.93882,-929.750234,1845.760812,
+ -0.093709,0.951442,0.293216,104.493637,-940.355693,1854.464465,
+ 0.000461,0.971536,0.236891,0,-964.850983,1900.552851,
+ -0.095693,0.97159,0.216463,104.493633,-954.559259,1900.552851,
+ -0.760725,0.624311,0.177575,750.933323,-599.953185,1905.43317,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.747441,0.613409,0.255071,746.507157,-603.958357,1900.552851,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.760725,0.624311,0.177575,750.933323,-599.953185,1905.43317,
+ -0.760725,0.624311,0.177575,778.074089,-578.368237,1945.815784,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.760725,0.624311,0.177575,778.074089,-578.368237,1945.815784,
+ -0.765569,0.628286,0.138423,788.482625,-571.822771,1967.393306,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.765569,0.628286,0.138423,788.482625,-571.822771,1967.393306,
+ -0.819909,0.56476,0.093785,812.321046,-542.77557,1967.393306,
+ -0.739034,0.606509,0.293216,673.273867,-664.397292,1840.989037,
+ -0.662575,0.661607,0.3511,668.106075,-668.106075,1835.635445,
+ -0.675745,0.675745,0.294512,668.764074,-668.764074,1838.654942,
+ -0.662575,0.661607,0.3511,668.106075,-668.106075,1835.635445,
+ -0.739034,0.606509,0.293216,673.273867,-664.397292,1840.989037,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.739034,0.606509,0.293216,673.273867,-664.397292,1840.989037,
+ -0.739034,0.606509,0.293216,713.8475,-629.001642,1870.037509,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.739034,0.606509,0.293216,713.8475,-629.001642,1870.037509,
+ -0.747441,0.613409,0.255071,746.507157,-603.958357,1900.552851,
+ -0.766636,0.549472,0.33219,785.609633,-524.927574,1835.635445,
+ -0.747441,0.613409,0.255071,746.507157,-603.958357,1900.552851,
+ -0.799622,0.563457,0.207656,802.244273,-536.042486,1900.552851,
+ -0.675745,0.675745,0.294512,668.764074,-668.764074,1838.654942,
+ -0.662575,0.661607,0.3511,668.106075,-668.106075,1835.635445,
+ -0.594359,0.724228,0.349616,660.420878,-674.413152,1835.635445,
+ -0.819909,0.56476,-0.093785,812.321046,-542.77557,2103.011094,
+ -0.771642,0.633271,-0.059467,795.73322,-565.076313,2080.771204,
+ -0.765569,0.628286,-0.138423,788.48267,-571.822716,2103.011094,
+ -0.771642,0.633271,-0.059467,795.73322,-565.076313,2080.771204,
+ -0.819909,0.56476,-0.093785,812.321046,-542.77557,2103.011094,
+ -0.77301,0.634393,-0,802.928322,-560.588162,2035.202339,
+ -0.77301,0.634393,-0,802.928322,-560.588162,2035.202339,
+ -0.819909,0.56476,-0.093785,812.321046,-542.77557,2103.011094,
+ -0.831469,0.55557,-0,815.696038,-545.030668,2035.2022,
+ -0.771643,0.63327,0.059467,795.733256,-565.076295,1989.63347,
+ -0.819909,0.56476,0.093785,812.321046,-542.77557,1967.393306,
+ -0.765569,0.628286,0.138423,788.482625,-571.822771,1967.393306,
+ -0.819909,0.56476,0.093785,812.321046,-542.77557,1967.393306,
+ -0.771643,0.63327,0.059467,795.733256,-565.076295,1989.63347,
+ -0.77301,0.634393,-0,802.928322,-560.588162,2035.202339,
+ -0.819909,0.56476,0.093785,812.321046,-542.77557,1967.393306,
+ -0.77301,0.634393,-0,802.928322,-560.588162,2035.202339,
+ -0.831469,0.55557,-0,815.696038,-545.030668,2035.2022,
+ 0.014067,0.991704,-0.12777,0,-976.970216,2103.011094,
+ -0.095693,0.97159,-0.216463,104.493598,-954.559262,2169.851549,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.095693,0.97159,-0.216463,104.493598,-954.559262,2169.851549,
+ 0.014067,0.991704,-0.12777,0,-976.970216,2103.011094,
+ 0,0.966617,-0.256224,0,-964.850983,2169.851549,
+ 0,0.966617,-0.256224,0,-964.850983,2169.851549,
+ -0.093709,0.951442,-0.293216,104.49359,-940.355699,2215.939931,
+ -0.095693,0.97159,-0.216463,104.493598,-954.559262,2169.851549,
+ -0.093709,0.951442,-0.293216,104.49359,-940.355699,2215.939931,
+ 0,0.966617,-0.256224,0,-964.850983,2169.851549,
+ -0.014053,0.939213,-0.343046,0,-944.844672,2234.768955,
+ -0.093709,0.951442,-0.293216,104.49359,-940.355699,2215.939931,
+ -0.014053,0.939213,-0.343046,0,-944.844672,2234.768955,
+ -0.15559,0.942942,-0.294368,184.938818,-929.750222,2224.643627,
+ -0.15559,0.942942,-0.294368,184.938818,-929.750222,2224.643627,
+ -0.014053,0.939213,-0.343046,0,-944.844672,2234.768955,
+ -0.183341,0.918213,-0.3511,184.330051,-926.689746,2234.768955,
+ -0.183341,0.918213,-0.3511,184.330051,-926.689746,2234.768955,
+ -0.277526,0.914879,-0.293216,199.064977,-923.935741,2229.415451,
+ -0.15559,0.942942,-0.294368,184.938818,-929.750222,2224.643627,
+ -0.277526,0.914879,-0.293216,199.064977,-923.935741,2229.415451,
+ -0.183341,0.918213,-0.3511,184.330051,-926.689746,2234.768955,
+ -0.269895,0.889723,-0.36817,226.426113,-913.920046,2234.768955,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ -0.269895,0.889723,-0.36817,226.426113,-913.920046,2234.768955,
+ -0.183341,0.918213,-0.3511,184.330051,-926.689746,2234.768955,
+ -0.269895,0.889723,-0.36817,226.426113,-913.920046,2234.768955,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ -0.265441,0.875041,-0.404776,301.780746,-883.553125,2251.000425,
+ -0.265441,0.875041,-0.404776,301.780746,-883.553125,2251.000425,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ -0.321796,0.855234,-0.406229,357.792956,-863.788608,2256.995935,
+ -0.321796,0.855234,-0.406229,357.792956,-863.788608,2256.995935,
+ -0.197225,0.872604,-0.446838,178.944064,-899.612557,2296.83617,
+ -0.353801,0.818498,-0.452643,351.011407,-847.416499,2296.83617,
+ -0.353801,0.818498,-0.452643,351.011407,-847.416499,2296.83617,
+ -0.431053,0.806443,-0.404776,395.941605,-839.735435,2264.292394,
+ -0.321796,0.855234,-0.406229,357.792956,-863.788608,2256.995935,
+ -0.431053,0.806443,-0.404776,395.941605,-839.735435,2264.292394,
+ -0.353801,0.818498,-0.452643,351.011407,-847.416499,2296.83617,
+ -0.431053,0.806443,-0.404776,476.98041,-794.166558,2268.780556,
+ -0.431053,0.806443,-0.404776,476.98041,-794.166558,2268.780556,
+ -0.468784,0.754023,-0.460099,509.589579,-762.654701,2296.83617,
+ -0.532321,0.742706,-0.406229,517.019001,-773.773617,2266.772036,
+ -0.468784,0.754023,-0.460099,509.589579,-762.654701,2296.83617,
+ -0.431053,0.806443,-0.404776,476.98041,-794.166558,2268.780556,
+ -0.353801,0.818498,-0.452643,351.011407,-847.416499,2296.83617,
+ -0.580099,0.706853,-0.404776,612.09289,-704.779988,2251.000501,
+ -0.662575,0.661607,-0.3511,668.106075,-668.106075,2234.768955,
+ -0.594359,0.724228,-0.349616,660.421224,-674.412869,2234.768955,
+ -0.662575,0.661607,-0.3511,668.106075,-668.106075,2234.768955,
+ -0.580099,0.706853,-0.404776,612.09289,-704.779988,2251.000501,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.580099,0.706853,-0.404776,612.09289,-704.779988,2251.000501,
+ -0.580099,0.706853,-0.404776,549.426162,-748.59768,2264.292433,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.580099,0.706853,-0.404776,549.426162,-748.59768,2264.292433,
+ -0.532321,0.742706,-0.406229,517.019001,-773.773617,2266.772036,
+ -0.61303,0.654649,-0.442299,648.584509,-648.584509,2296.83617,
+ -0.532321,0.742706,-0.406229,517.019001,-773.773617,2266.772036,
+ -0.468784,0.754023,-0.460099,509.589579,-762.654701,2296.83617,
+ -0.662575,0.661607,-0.3511,668.106075,-668.106075,2234.768955,
+ -0.739034,0.606509,-0.293216,673.273723,-664.39737,2229.415565,
+ -0.675745,0.675745,-0.294512,668.764043,-668.764043,2231.749598,
+ -0.739034,0.606509,-0.293216,673.273723,-664.39737,2229.415565,
+ -0.662575,0.661607,-0.3511,668.106075,-668.106075,2234.768955,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.739034,0.606509,-0.293216,673.273723,-664.39737,2229.415565,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.739034,0.606509,-0.293216,713.847356,-629.001708,2200.367118,
+ -0.739034,0.606509,-0.293216,713.847356,-629.001708,2200.367118,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.747441,0.613409,-0.255071,746.507278,-603.95821,2169.851549,
+ -0.747441,0.613409,-0.255071,746.507278,-603.95821,2169.851549,
+ -0.766636,0.549472,-0.33219,785.609633,-524.927574,2234.768955,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.662575,0.661607,-0.3511,668.106075,-668.106075,2234.768955,
+ -0.675745,0.675745,-0.294512,668.764043,-668.764043,2231.749598,
+ -0.594359,0.724228,-0.349616,660.421224,-674.412869,2234.768955,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.760725,0.624311,-0.177575,750.933223,-599.953237,2164.971478,
+ -0.747441,0.613409,-0.255071,746.507278,-603.95821,2169.851549,
+ -0.760725,0.624311,-0.177575,750.933223,-599.953237,2164.971478,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.760725,0.624311,-0.177575,778.073998,-578.368273,2124.58888,
+ -0.760725,0.624311,-0.177575,778.073998,-578.368273,2124.58888,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.765569,0.628286,-0.138423,788.48267,-571.822716,2103.011094,
+ -0.765569,0.628286,-0.138423,788.48267,-571.822716,2103.011094,
+ -0.799622,0.563457,-0.207656,802.244273,-536.042486,2169.851549,
+ -0.819909,0.56476,-0.093785,812.321046,-542.77557,2103.011094,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ -0.095693,0.97159,0.216463,104.493633,-954.559259,1900.552851,
+ 0.000461,0.971536,0.236891,0,-964.850983,1900.552851,
+ -0.095693,0.97159,0.216463,104.493633,-954.559259,1900.552851,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ -0.097677,0.991736,0.083183,104.493626,-966.678492,1967.393306,
+ -0,0.803137,-0.595794,104.493586,-599.95327,1905.433085,
+ 0,0.707107,-0.707107,713.8475,-629.001642,1870.037509,
+ 0,0.707107,-0.707107,104.493594,-629.001722,1870.037429,
+ 0,0.707107,-0.707107,713.8475,-629.001642,1870.037509,
+ -0,0.803137,-0.595794,104.493586,-599.95327,1905.433085,
+ -0,0.773011,-0.634393,746.507157,-603.958357,1900.552851,
+ -0,0.773011,-0.634393,746.507157,-603.958357,1900.552851,
+ -0,0.803137,-0.595794,104.493586,-599.95327,1905.433085,
+ -0,0.849252,-0.527988,750.933323,-599.953185,1905.43317,
+ -0,0.910825,-0.412792,104.493578,-578.368325,1945.815695,
+ -0,0.849252,-0.527988,750.933323,-599.953185,1905.43317,
+ -0,0.803137,-0.595794,104.493586,-599.95327,1905.433085,
+ -0,0.849252,-0.527988,750.933323,-599.953185,1905.43317,
+ -0,0.910825,-0.412792,104.493578,-578.368325,1945.815695,
+ -0,0.935939,-0.352162,778.074089,-578.368237,1945.815784,
+ -0,0.582554,0.812792,104.493552,-664.397445,2229.41549,
+ -0,0.683524,0.729928,713.847356,-629.001708,2200.367118,
+ -0,0.741031,0.671471,104.493551,-629.001789,2200.367038,
+ -0,0.683524,0.729928,713.847356,-629.001708,2200.367118,
+ -0,0.582554,0.812792,104.493552,-664.397445,2229.41549,
+ -0,0.505553,0.862796,673.273723,-664.39737,2229.415565,
+ -0,-0.527988,0.849252,104.493586,-923.935753,2229.415438,
+ -0,-0.400805,0.916164,301.780746,-883.553125,2251.000425,
+ -0,-0.352162,0.935939,104.493578,-883.553151,2251.000399,
+ -0,-0.400805,0.916164,301.780746,-883.553125,2251.000425,
+ -0,-0.527988,0.849252,104.493586,-923.935753,2229.415438,
+ -0,-0.55557,0.83147,199.064977,-923.935741,2229.415451,
+ -0,-0.400805,0.916164,301.780746,-883.553125,2251.000425,
+ -0,-0.55557,0.83147,199.064977,-923.935741,2229.415451,
+ -0,-0.471397,0.881921,226.426113,-913.920046,2234.768955,
+ 0,0,-1,476.980677,-794.166464,1801.623942,
+ 0,-0.162803,-0.986659,104.493631,-839.735381,1806.112026,
+ 0,0.032813,-0.999462,104.493625,-794.166513,1801.623893,
+ 0,-0.162803,-0.986659,104.493631,-839.735381,1806.112026,
+ 0,0,-1,476.980677,-794.166464,1801.623942,
+ 0,-0.243095,-0.970002,395.941832,-839.735343,1806.112064,
+ 0,-0.243095,-0.970002,395.941832,-839.735343,1806.112064,
+ 0,-0.352162,-0.935939,104.493635,-883.553065,1819.403965,
+ 0,-0.162803,-0.986659,104.493631,-839.735381,1806.112026,
+ 0,-0.352162,-0.935939,104.493635,-883.553065,1819.403965,
+ 0,-0.243095,-0.970002,395.941832,-839.735343,1806.112064,
+ 0,-0.400804,-0.916164,301.781055,-883.553039,1819.403991,
+ 0,-0.400804,-0.916164,301.781055,-883.553039,1819.403991,
+ 0,-0.243095,-0.970002,395.941832,-839.735343,1806.112064,
+ 0,-0.290284,-0.95694,357.792969,-863.788639,1813.40854,
+ 0,-0.400804,-0.916164,301.781055,-883.553039,1819.403991,
+ 0,-0.527988,-0.849252,104.493637,-923.935675,1840.98891,
+ 0,-0.352162,-0.935939,104.493635,-883.553065,1819.403965,
+ 0,-0.527988,-0.849252,104.493637,-923.935675,1840.98891,
+ 0,-0.400804,-0.916164,301.781055,-883.553039,1819.403991,
+ 0,-0.55557,-0.83147,199.065204,-923.935663,1840.988923,
+ 0,-0.55557,-0.83147,199.065204,-923.935663,1840.988923,
+ 0,-0.400804,-0.916164,301.781055,-883.553039,1819.403991,
+ 0,-0.471397,-0.881921,226.426278,-913.919995,1835.635445,
+ 0,0.707107,-0.707107,713.8475,-629.001642,1870.037509,
+ 0,0.582554,-0.812792,104.493603,-664.397367,1840.988962,
+ 0,0.707107,-0.707107,104.493594,-629.001722,1870.037429,
+ 0,0.582554,-0.812792,104.493603,-664.397367,1840.988962,
+ 0,0.707107,-0.707107,713.8475,-629.001642,1870.037509,
+ 0,0.505553,-0.862796,673.273867,-664.397292,1840.989037,
+ 0,0.505553,-0.862796,673.273867,-664.397292,1840.989037,
+ 0,0.412793,-0.910825,104.493611,-704.779969,1819.404001,
+ 0,0.582554,-0.812792,104.493603,-664.397367,1840.988962,
+ 0,0.412793,-0.910825,104.493611,-704.779969,1819.404001,
+ 0,0.505553,-0.862796,673.273867,-664.397292,1840.989037,
+ 0,0.382684,-0.923879,612.093113,-704.779902,1819.404068,
+ 0,0.382684,-0.923879,612.093113,-704.779902,1819.404068,
+ 0,0.505553,-0.862796,673.273867,-664.397292,1840.989037,
+ 0,0.471397,-0.881921,660.420878,-674.413152,1835.635445,
+ 0,0.471397,-0.881921,660.420878,-674.413152,1835.635445,
+ 0,0.505553,-0.862796,673.273867,-664.397292,1840.989037,
+ 0,0.471397,-0.881921,668.764074,-668.764074,1838.654942,
+ 0,0.382684,-0.923879,612.093113,-704.779902,1819.404068,
+ 0,0.227168,-0.973856,104.493619,-748.597647,1806.112044,
+ 0,0.412793,-0.910825,104.493611,-704.779969,1819.404001,
+ 0,0.227168,-0.973856,104.493619,-748.597647,1806.112044,
+ 0,0.382684,-0.923879,612.093113,-704.779902,1819.404068,
+ 0,0.146613,-0.989194,549.426369,-748.597589,1806.112103,
+ -0,0.227167,0.973856,104.493558,-748.597739,2264.292374,
+ -0,0.382683,0.92388,612.09289,-704.779988,2251.000501,
+ -0,0.412792,0.910825,104.493554,-704.780055,2251.000435,
+ -0,0.382683,0.92388,612.09289,-704.779988,2251.000501,
+ -0,0.227167,0.973856,104.493558,-748.597739,2264.292374,
+ -0,0.146613,0.989194,549.426162,-748.59768,2264.292433,
+ -0,0.741031,0.671471,104.493551,-629.001789,2200.367038,
+ -0,0.812792,0.582554,750.933223,-599.953237,2164.971478,
+ -0,0.849252,0.527988,104.493552,-599.953322,2164.971393,
+ -0,0.812792,0.582554,750.933223,-599.953237,2164.971478,
+ -0,0.741031,0.671471,104.493551,-629.001789,2200.367038,
+ -0,0.77301,0.634393,746.507278,-603.95821,2169.851549,
+ -0,0.77301,0.634393,746.507278,-603.95821,2169.851549,
+ -0,0.741031,0.671471,104.493551,-629.001789,2200.367038,
+ -0,0.683524,0.729928,713.847356,-629.001708,2200.367118,
+ -0,0.849252,0.527988,104.493552,-599.953322,2164.971393,
+ -0,0.910825,0.412793,778.073998,-578.368273,2124.58888,
+ -0,0.941584,0.336778,104.493554,-578.368361,2124.588791,
+ -0,0.910825,0.412793,778.073998,-578.368273,2124.58888,
+ -0,0.849252,0.527988,104.493552,-599.953322,2164.971393,
+ -0,0.812792,0.582554,750.933223,-599.953237,2164.971478,
+ -0,0.941584,0.336778,104.493554,-578.368361,2124.588791,
+ -0,0.973856,0.227168,795.73322,-565.076313,2080.771204,
+ -0,0.986659,0.162803,104.493558,-565.076404,2080.771113,
+ -0,0.973856,0.227168,795.73322,-565.076313,2080.771204,
+ -0,0.941584,0.336778,104.493554,-578.368361,2124.588791,
+ -0,0.95694,0.290285,788.48267,-571.822716,2103.011094,
+ -0,0.95694,0.290285,788.48267,-571.822716,2103.011094,
+ -0,0.941584,0.336778,104.493554,-578.368361,2124.588791,
+ -0,0.910825,0.412793,778.073998,-578.368273,2124.58888,
+ -0,0.986659,0.162803,104.493558,-565.076404,2080.771113,
+ -0,0.999462,0.032813,802.928322,-560.588162,2035.202339,
+ -0,0.999462,-0.032813,104.493564,-560.588253,2035.202247,
+ -0,0.999462,0.032813,802.928322,-560.588162,2035.202339,
+ -0,0.986659,0.162803,104.493558,-565.076404,2080.771113,
+ -0,0.973856,0.227168,795.73322,-565.076313,2080.771204,
+ -0,0.999462,-0.032813,104.493564,-560.588253,2035.202247,
+ -0,0.986659,-0.162803,795.733256,-565.076295,1989.63347,
+ -0,0.970002,-0.243095,104.49357,-565.076386,1989.633379,
+ -0,0.986659,-0.162803,795.733256,-565.076295,1989.63347,
+ -0,0.999462,-0.032813,104.493564,-560.588253,2035.202247,
+ -0,0.999462,0.032813,802.928322,-560.588162,2035.202339,
+ -0,0.970002,-0.243095,104.49357,-565.076386,1989.633379,
+ -0,0.935939,-0.352162,778.074089,-578.368237,1945.815784,
+ -0,0.910825,-0.412792,104.493578,-578.368325,1945.815695,
+ -0,0.935939,-0.352162,778.074089,-578.368237,1945.815784,
+ -0,0.970002,-0.243095,104.49357,-565.076386,1989.633379,
+ -0,0.95694,-0.290284,788.482625,-571.822771,1967.393306,
+ -0,0.95694,-0.290284,788.482625,-571.822771,1967.393306,
+ -0,0.970002,-0.243095,104.49357,-565.076386,1989.633379,
+ -0,0.986659,-0.162803,795.733256,-565.076295,1989.63347,
+ -0,-0.162803,0.986659,104.49357,-839.735473,2264.292356,
+ -0,-0,1,476.98041,-794.166558,2268.780556,
+ -0,0.032813,0.999462,104.493564,-794.166607,2268.780507,
+ -0,-0,1,476.98041,-794.166558,2268.780556,
+ -0,-0.162803,0.986659,104.49357,-839.735473,2264.292356,
+ -0,-0.243095,0.970002,395.941605,-839.735435,2264.292394,
+ -0,0.032813,0.999462,104.493564,-794.166607,2268.780507,
+ -0,0.146613,0.989194,549.426162,-748.59768,2264.292433,
+ -0,0.227167,0.973856,104.493558,-748.597739,2264.292374,
+ -0,0.146613,0.989194,549.426162,-748.59768,2264.292433,
+ -0,0.032813,0.999462,104.493564,-794.166607,2268.780507,
+ -0,-0,1,476.98041,-794.166558,2268.780556,
+ -0,0.146613,0.989194,549.426162,-748.59768,2264.292433,
+ -0,-0,1,476.98041,-794.166558,2268.780556,
+ -0,0.098017,0.995185,517.019001,-773.773617,2266.772036,
+ -0,-0.634393,0.77301,104.49359,-940.355699,2215.939931,
+ -0,-0.55557,0.83147,199.064977,-923.935741,2229.415451,
+ -0,-0.527988,0.849252,104.493586,-923.935753,2229.415438,
+ -0,-0.55557,0.83147,199.064977,-923.935741,2229.415451,
+ -0,-0.634393,0.77301,104.49359,-940.355699,2215.939931,
+ -0,-0.634393,0.77301,184.938818,-929.750222,2224.643627,
+ -1,-0,-0,104.493608,-966.678494,2103.011094,
+ -1,-0,-0,104.493626,-966.678492,1967.393306,
+ -1,-0,-0,104.493618,-970.737561,2035.2022,
+ -1,-0,-0,104.493626,-966.678492,1967.393306,
+ -1,-0,-0,104.493608,-966.678494,2103.011094,
+ -1,-0,-0,104.493598,-954.559262,2169.851549,
+ -1,-0,-0,104.493626,-966.678492,1967.393306,
+ -1,-0,-0,104.493598,-954.559262,2169.851549,
+ -1,-0,-0,104.493633,-954.559259,1900.552851,
+ -1,-0,-0,104.493633,-954.559259,1900.552851,
+ -1,-0,-0,104.493598,-954.559262,2169.851549,
+ -1,-0,-0,104.49359,-940.355699,2215.939931,
+ -1,-0,-0,104.493633,-954.559259,1900.552851,
+ -1,-0,-0,104.49359,-940.355699,2215.939931,
+ -1,-0,-0,104.493637,-940.355693,1854.464465,
+ -1,-0,-0,104.493637,-940.355693,1854.464465,
+ -1,-0,-0,104.49359,-940.355699,2215.939931,
+ -1,-0,-0,104.493586,-923.935753,2229.415438,
+ -1,-0,-0,104.493637,-940.355693,1854.464465,
+ -1,-0,-0,104.493586,-923.935753,2229.415438,
+ -1,-0,-0,104.493637,-923.935675,1840.98891,
+ -1,-0,-0,104.493637,-923.935675,1840.98891,
+ -1,-0,-0,104.493586,-923.935753,2229.415438,
+ -1,-0,-0,104.493578,-883.553151,2251.000399,
+ -1,-0,-0,104.493637,-923.935675,1840.98891,
+ -1,-0,-0,104.493578,-883.553151,2251.000399,
+ -1,-0,-0,104.493635,-883.553065,1819.403965,
+ -1,-0,-0,104.493635,-883.553065,1819.403965,
+ -1,-0,-0,104.493578,-883.553151,2251.000399,
+ -1,-0,-0,104.493606,-882.926352,2035.2022,
+ -1,-0,-0,104.493606,-882.926352,2035.2022,
+ -1,-0,-0,104.493578,-883.553151,2251.000399,
+ -1,-0,-0,104.493604,-881.220857,2052.518376,
+ -1,-0,-0,104.493604,-881.220857,2052.518376,
+ -1,-0,-0,104.493578,-883.553151,2251.000399,
+ -1,-0,-0,104.49357,-839.735473,2264.292356,
+ -1,-0,-0,104.493604,-881.220857,2052.518376,
+ -1,-0,-0,104.49357,-839.735473,2264.292356,
+ -1,-0,-0,104.493601,-876.169915,2069.169102,
+ -1,-0,-0,104.493601,-876.169915,2069.169102,
+ -1,-0,-0,104.49357,-839.735473,2264.292356,
+ -1,-0,-0,104.493598,-867.96763,2084.514498,
+ -1,-0,-0,104.493598,-867.96763,2084.514498,
+ -1,-0,-0,104.49357,-839.735473,2264.292356,
+ -1,-0,-0,104.493594,-856.929211,2097.964851,
+ -1,-0,-0,104.493594,-856.929211,2097.964851,
+ -1,-0,-0,104.49357,-839.735473,2264.292356,
+ -1,-0,-0,104.493591,-843.478858,2109.00327,
+ -1,-0,-0,104.493591,-843.478858,2109.00327,
+ -1,-0,-0,104.49357,-839.735473,2264.292356,
+ -1,-0,-0,104.493588,-828.133462,2117.205555,
+ -1,-0,-0,104.493588,-828.133462,2117.205555,
+ -1,-0,-0,104.49357,-839.735473,2264.292356,
+ -1,-0,-0,104.493564,-794.166607,2268.780507,
+ -1,-0,-0,104.493588,-828.133462,2117.205555,
+ -1,-0,-0,104.493564,-794.166607,2268.780507,
+ -1,-0,-0,104.493585,-811.482736,2122.256498,
+ -1,-0,-0,104.493585,-811.482736,2122.256498,
+ -1,-0,-0,104.493564,-794.166607,2268.780507,
+ -1,-0,-0,104.493583,-794.16656,2123.961992,
+ -1,-0,-0,104.493583,-794.16656,2123.961992,
+ -1,-0,-0,104.493564,-794.166607,2268.780507,
+ -1,-0,-0,104.493558,-748.597739,2264.292374,
+ -1,-0,-0,104.493583,-794.16656,2123.961992,
+ -1,-0,-0,104.493558,-748.597739,2264.292374,
+ -1,-0,-0,104.493581,-776.850384,2122.256498,
+ -1,-0,-0,104.493581,-776.850384,2122.256498,
+ -1,-0,-0,104.493558,-748.597739,2264.292374,
+ -1,-0,-0,104.493579,-760.199658,2117.205555,
+ -1,-0,-0,104.493579,-760.199658,2117.205555,
+ -1,-0,-0,104.493558,-748.597739,2264.292374,
+ -1,-0,-0,104.493578,-744.854262,2109.00327,
+ -1,-0,-0,104.493578,-744.854262,2109.00327,
+ -1,-0,-0,104.493558,-748.597739,2264.292374,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493578,-744.854262,2109.00327,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493578,-731.403909,2097.964851,
+ -1,-0,-0,104.493578,-731.403909,2097.964851,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493578,-720.36549,2084.514498,
+ -1,-0,-0,104.493578,-720.36549,2084.514498,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493579,-712.163205,2069.169102,
+ -1,-0,-0,104.493579,-712.163205,2069.169102,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493581,-707.112263,2052.518376,
+ -1,-0,-0,104.493581,-707.112263,2052.518376,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493583,-705.406768,2035.2022,
+ -1,-0,-0,104.493635,-883.553065,1819.403965,
+ -1,-0,-0,104.493608,-881.220857,2017.886024,
+ -1,-0,-0,104.493631,-839.735381,1806.112026,
+ -1,-0,-0,104.493608,-881.220857,2017.886024,
+ -1,-0,-0,104.493635,-883.553065,1819.403965,
+ -1,-0,-0,104.493606,-882.926352,2035.2022,
+ -1,-0,-0,104.493631,-839.735381,1806.112026,
+ -1,-0,-0,104.493608,-881.220857,2017.886024,
+ -1,-0,-0,104.49361,-876.169915,2001.235298,
+ -1,-0,-0,104.493631,-839.735381,1806.112026,
+ -1,-0,-0,104.49361,-876.169915,2001.235298,
+ -1,-0,-0,104.493611,-867.96763,1985.889902,
+ -1,-0,-0,104.493631,-839.735381,1806.112026,
+ -1,-0,-0,104.493611,-867.96763,1985.889902,
+ -1,-0,-0,104.493611,-856.929211,1972.439549,
+ -1,-0,-0,104.493631,-839.735381,1806.112026,
+ -1,-0,-0,104.493611,-856.929211,1972.439549,
+ -1,-0,-0,104.493611,-843.478858,1961.40113,
+ -1,-0,-0,104.493631,-839.735381,1806.112026,
+ -1,-0,-0,104.493611,-843.478858,1961.40113,
+ -1,-0,-0,104.49361,-828.133462,1953.198845,
+ -1,-0,-0,104.493631,-839.735381,1806.112026,
+ -1,-0,-0,104.49361,-828.133462,1953.198845,
+ -1,-0,-0,104.493625,-794.166513,1801.623893,
+ -1,-0,-0,104.493625,-794.166513,1801.623893,
+ -1,-0,-0,104.49361,-828.133462,1953.198845,
+ -1,-0,-0,104.493608,-811.482736,1948.147903,
+ -1,-0,-0,104.493625,-794.166513,1801.623893,
+ -1,-0,-0,104.493608,-811.482736,1948.147903,
+ -1,-0,-0,104.493606,-794.16656,1946.442408,
+ -1,-0,-0,104.493625,-794.166513,1801.623893,
+ -1,-0,-0,104.493606,-794.16656,1946.442408,
+ -1,-0,-0,104.493604,-776.850384,1948.147903,
+ -1,-0,-0,104.493625,-794.166513,1801.623893,
+ -1,-0,-0,104.493604,-776.850384,1948.147903,
+ -1,-0,-0,104.493619,-748.597647,1806.112044,
+ -1,-0,-0,104.493619,-748.597647,1806.112044,
+ -1,-0,-0,104.493604,-776.850384,1948.147903,
+ -1,-0,-0,104.493601,-760.199658,1953.198845,
+ -1,-0,-0,104.493619,-748.597647,1806.112044,
+ -1,-0,-0,104.493601,-760.199658,1953.198845,
+ -1,-0,-0,104.493598,-744.854262,1961.40113,
+ -1,-0,-0,104.493619,-748.597647,1806.112044,
+ -1,-0,-0,104.493598,-744.854262,1961.40113,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493598,-744.854262,1961.40113,
+ -1,-0,-0,104.493594,-731.403909,1972.439549,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493594,-731.403909,1972.439549,
+ -1,-0,-0,104.493591,-720.36549,1985.889902,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493591,-720.36549,1985.889902,
+ -1,-0,-0,104.493588,-712.163205,2001.235298,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493588,-712.163205,2001.235298,
+ -1,-0,-0,104.493585,-707.112263,2017.886024,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493585,-707.112263,2017.886024,
+ -1,-0,-0,104.493583,-705.406768,2035.2022,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493583,-705.406768,2035.2022,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493554,-704.780055,2251.000435,
+ -1,-0,-0,104.493552,-664.397445,2229.41549,
+ -1,-0,-0,104.493611,-704.779969,1819.404001,
+ -1,-0,-0,104.493552,-664.397445,2229.41549,
+ -1,-0,-0,104.493603,-664.397367,1840.988962,
+ -1,-0,-0,104.493603,-664.397367,1840.988962,
+ -1,-0,-0,104.493552,-664.397445,2229.41549,
+ -1,-0,-0,104.493551,-629.001789,2200.367038,
+ -1,-0,-0,104.493603,-664.397367,1840.988962,
+ -1,-0,-0,104.493551,-629.001789,2200.367038,
+ -1,-0,-0,104.493594,-629.001722,1870.037429,
+ -1,-0,-0,104.493594,-629.001722,1870.037429,
+ -1,-0,-0,104.493551,-629.001789,2200.367038,
+ -1,-0,-0,104.493552,-599.953322,2164.971393,
+ -1,-0,-0,104.493594,-629.001722,1870.037429,
+ -1,-0,-0,104.493552,-599.953322,2164.971393,
+ -1,-0,-0,104.493586,-599.95327,1905.433085,
+ -1,-0,-0,104.493586,-599.95327,1905.433085,
+ -1,-0,-0,104.493552,-599.953322,2164.971393,
+ -1,-0,-0,104.493554,-578.368361,2124.588791,
+ -1,-0,-0,104.493586,-599.95327,1905.433085,
+ -1,-0,-0,104.493554,-578.368361,2124.588791,
+ -1,-0,-0,104.493578,-578.368325,1945.815695,
+ -1,-0,-0,104.493578,-578.368325,1945.815695,
+ -1,-0,-0,104.493554,-578.368361,2124.588791,
+ -1,-0,-0,104.493558,-565.076404,2080.771113,
+ -1,-0,-0,104.493578,-578.368325,1945.815695,
+ -1,-0,-0,104.493558,-565.076404,2080.771113,
+ -1,-0,-0,104.49357,-565.076386,1989.633379,
+ -1,-0,-0,104.49357,-565.076386,1989.633379,
+ -1,-0,-0,104.493558,-565.076404,2080.771113,
+ -1,-0,-0,104.493564,-560.588253,2035.202247,
+ 0,-0.55557,-0.83147,199.065204,-923.935663,1840.988923,
+ 0,-0.634393,-0.773011,104.493637,-940.355693,1854.464465,
+ 0,-0.527988,-0.849252,104.493637,-923.935675,1840.98891,
+ 0,-0.634393,-0.773011,104.493637,-940.355693,1854.464465,
+ 0,-0.55557,-0.83147,199.065204,-923.935663,1840.988923,
+ 0,-0.634393,-0.773011,184.93882,-929.750234,1845.760812,
+ -0,-0.352162,0.935939,104.493578,-883.553151,2251.000399,
+ -0,-0.243095,0.970002,395.941605,-839.735435,2264.292394,
+ -0,-0.162803,0.986659,104.49357,-839.735473,2264.292356,
+ -0,-0.243095,0.970002,395.941605,-839.735435,2264.292394,
+ -0,-0.352162,0.935939,104.493578,-883.553151,2251.000399,
+ -0,-0.400805,0.916164,301.780746,-883.553125,2251.000425,
+ -0,-0.243095,0.970002,395.941605,-839.735435,2264.292394,
+ -0,-0.400805,0.916164,301.780746,-883.553125,2251.000425,
+ -0,-0.290285,0.95694,357.792956,-863.788608,2256.995935,
+ -0,0.412792,0.910825,104.493554,-704.780055,2251.000435,
+ -0,0.505553,0.862796,673.273723,-664.39737,2229.415565,
+ -0,0.582554,0.812792,104.493552,-664.397445,2229.41549,
+ -0,0.505553,0.862796,673.273723,-664.39737,2229.415565,
+ -0,0.412792,0.910825,104.493554,-704.780055,2251.000435,
+ -0,0.382683,0.92388,612.09289,-704.779988,2251.000501,
+ -0,0.505553,0.862796,673.273723,-664.39737,2229.415565,
+ -0,0.382683,0.92388,612.09289,-704.779988,2251.000501,
+ -0,0.471397,0.881921,660.421224,-674.412869,2234.768955,
+ -0,0.505553,0.862796,673.273723,-664.39737,2229.415565,
+ -0,0.471397,0.881921,660.421224,-674.412869,2234.768955,
+ -0,0.471397,0.881921,668.764043,-668.764043,2231.749598,
+ 0,0.146613,-0.989194,549.426369,-748.597589,1806.112103,
+ 0,0.032813,-0.999462,104.493625,-794.166513,1801.623893,
+ 0,0.227168,-0.973856,104.493619,-748.597647,1806.112044,
+ 0,0.032813,-0.999462,104.493625,-794.166513,1801.623893,
+ 0,0.146613,-0.989194,549.426369,-748.597589,1806.112103,
+ 0,0,-1,476.980677,-794.166464,1801.623942,
+ 0,0,-1,476.980677,-794.166464,1801.623942,
+ 0,0.146613,-0.989194,549.426369,-748.597589,1806.112103,
+ 0,0.098017,-0.995185,517.019027,-773.773655,1803.632468,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ 0.193925,0.973736,0.119297,-190.597434,-958.198007,1967.393306,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-10.248119,-977.344466,1990.507106,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ 0.097844,0.993424,0.059467,-10.248119,-977.344466,1990.507106,
+ 0.097844,0.993424,0.059467,-1.468161,-978.157452,1989.642356,
+ 0.097844,0.993424,0.059467,-10.248119,-977.344466,1990.507106,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-18.690668,-976.666251,1993.068126,
+ 0.097844,0.993424,0.059467,-18.690668,-976.666251,1993.068126,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-26.471367,-976.14887,1997.226995,
+ 0.097844,0.993424,0.059467,-26.471367,-976.14887,1997.226995,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-33.291206,-975.812207,2002.823893,
+ 0.097844,0.993424,0.059467,-33.291206,-975.812207,2002.823893,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-38.888103,-975.6692,2009.643732,
+ 0.097844,0.993424,0.059467,-38.888103,-975.6692,2009.643732,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-43.046973,-975.725342,2017.42443,
+ 0.097844,0.993424,0.059467,-43.046973,-975.725342,2017.42443,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-45.607992,-975.978478,2025.866979,
+ 0.097844,0.993424,0.059467,-45.607992,-975.978478,2025.866979,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097844,0.993424,0.059467,-46.472742,-976.41888,2034.646937,
+ 0.097844,0.993424,0.059467,-46.472742,-976.41888,2034.646937,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097998,0.994989,-0.019853,-46.418054,-976.457504,2035.2022,
+ -0.032754,0.997678,0.059721,0,-978.310709,1989.786957,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ 0.097844,0.993424,0.059467,-1.468161,-978.157452,1989.642356,
+ -0.097998,0.994989,-0.019853,43.481732,-976.746707,2035.2022,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097998,0.994989,-0.019853,43.481732,-976.746707,2035.2022,
+ -0.097844,0.993424,-0.059467,42.671671,-976.334157,2043.426896,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097844,0.993424,-0.059467,42.671671,-976.334157,2043.426896,
+ -0.097844,0.993424,-0.059467,40.110651,-976.081021,2051.869445,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097844,0.993424,-0.059467,40.110651,-976.081021,2051.869445,
+ -0.097844,0.993424,-0.059467,35.951781,-976.024878,2059.650143,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097844,0.993424,-0.059467,35.951781,-976.024878,2059.650143,
+ -0.097844,0.993424,-0.059467,30.354884,-976.167886,2066.469982,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097844,0.993424,-0.059467,30.354884,-976.167886,2066.469982,
+ -0.097844,0.993424,-0.059467,23.535045,-976.504549,2072.06688,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097844,0.993424,-0.059467,23.535045,-976.504549,2072.06688,
+ -0.097844,0.993424,-0.059467,15.754347,-977.02193,2076.225749,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097844,0.993424,-0.059467,15.754347,-977.02193,2076.225749,
+ -0.097844,0.993424,-0.059467,7.311798,-977.700144,2078.786769,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.097844,0.993424,-0.059467,7.311798,-977.700144,2078.786769,
+ -0.032754,0.997678,-0.059721,0,-978.377185,2079.506918,
+ -0.097775,0.992726,-0.070245,104.493608,-966.678494,2103.011094,
+ -0.032754,0.997678,-0.059721,0,-978.377185,2079.506918,
+ 0.014067,0.991704,-0.12777,0,-976.970216,2103.011094,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097998,0.994989,-0.019853,-46.418054,-976.457504,2035.2022,
+ 0.139589,0.989621,0.034132,-191.389319,-962.179081,2035.2022,
+ 0.097998,0.994989,-0.019853,-46.418054,-976.457504,2035.2022,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-45.607992,-976.044955,2043.426896,
+ 0.097844,0.993424,-0.059467,-45.607992,-976.044955,2043.426896,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-43.046973,-975.791819,2051.869445,
+ 0.097844,0.993424,-0.059467,-43.046973,-975.791819,2051.869445,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-38.888103,-975.735676,2059.650143,
+ 0.097844,0.993424,-0.059467,-38.888103,-975.735676,2059.650143,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-33.291206,-975.878684,2066.469982,
+ 0.097844,0.993424,-0.059467,-33.291206,-975.878684,2066.469982,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-26.471367,-976.215347,2072.06688,
+ 0.097844,0.993424,-0.059467,-26.471367,-976.215347,2072.06688,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-18.690668,-976.732727,2076.225749,
+ 0.097844,0.993424,-0.059467,-18.690668,-976.732727,2076.225749,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-10.248119,-977.410942,2078.786769,
+ 0.097844,0.993424,-0.059467,-10.248119,-977.410942,2078.786769,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ 0.097844,0.993424,-0.059467,-1.468161,-978.223928,2079.651519,
+ 0.097844,0.993424,-0.059467,-1.468161,-978.223928,2079.651519,
+ 0.014067,0.991704,-0.12777,0,-976.970216,2103.011094,
+ -0.032754,0.997678,-0.059721,0,-978.377185,2079.506918,
+ 0.014067,0.991704,-0.12777,0,-976.970216,2103.011094,
+ 0.097844,0.993424,-0.059467,-1.468161,-978.223928,2079.651519,
+ 0.138896,0.986639,-0.085149,-190.597434,-958.198007,2103.011094,
+ -0.032754,0.997678,0.059721,0,-978.310709,1989.786957,
+ -0.097677,0.991736,0.083183,104.493626,-966.678492,1967.393306,
+ 0.024785,0.994227,0.104395,0,-976.970216,1967.393306,
+ -0.097677,0.991736,0.083183,104.493626,-966.678492,1967.393306,
+ -0.032754,0.997678,0.059721,0,-978.310709,1989.786957,
+ -0.097844,0.993424,0.059467,7.311798,-977.633668,1990.507106,
+ -0.097677,0.991736,0.083183,104.493626,-966.678492,1967.393306,
+ -0.097844,0.993424,0.059467,7.311798,-977.633668,1990.507106,
+ -0.097844,0.993424,0.059467,15.754347,-976.955453,1993.068126,
+ -0.097677,0.991736,0.083183,104.493626,-966.678492,1967.393306,
+ -0.097844,0.993424,0.059467,15.754347,-976.955453,1993.068126,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097844,0.993424,0.059467,15.754347,-976.955453,1993.068126,
+ -0.097844,0.993424,0.059467,23.535045,-976.438073,1997.226995,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097844,0.993424,0.059467,23.535045,-976.438073,1997.226995,
+ -0.097844,0.993424,0.059467,30.354884,-976.10141,2002.823893,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097844,0.993424,0.059467,30.354884,-976.10141,2002.823893,
+ -0.097844,0.993424,0.059467,35.951781,-975.958402,2009.643732,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097844,0.993424,0.059467,35.951781,-975.958402,2009.643732,
+ -0.097844,0.993424,0.059467,40.110651,-976.014545,2017.42443,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097844,0.993424,0.059467,40.110651,-976.014545,2017.42443,
+ -0.097844,0.993424,0.059467,42.671671,-976.267681,2025.866979,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097844,0.993424,0.059467,42.671671,-976.267681,2025.866979,
+ -0.097844,0.993424,0.059467,43.536421,-976.708082,2034.646937,
+ -0.097912,0.994118,0.046284,104.493618,-970.737561,2035.2022,
+ -0.097844,0.993424,0.059467,43.536421,-976.708082,2034.646937,
+ -0.097998,0.994989,-0.019853,43.481732,-976.746707,2035.2022
+};
+static const struct gllist robot_body_half_inside_frame = { GL_N3F_V3F, GL_TRIANGLES, 3072, robot_body_half_inside_data, 0 };
+const struct gllist *robot_body_half_inside = &robot_body_half_inside_frame;
+
+static const float robot_body_half_outside_data[] = {
+ -0.000001,0.92388,0.382683,104.49361,-876.169915,2001.235298,
+ -0.000001,0.973856,0.227168,180.675225,-881.220765,2017.886009,
+ -0.000001,0.92388,0.382683,180.675225,-876.169825,2001.235293,
+ -0.000001,0.973856,0.227168,180.675225,-881.220765,2017.886009,
+ -0.000001,0.92388,0.382683,104.49361,-876.169915,2001.235298,
+ -0.000001,0.986659,0.162803,104.493608,-881.220857,2017.886024,
+ 0,-0.707107,0.707107,180.675225,-731.403895,1972.439559,
+ 0,-0.812792,0.582554,104.493591,-720.36549,1985.889902,
+ 0,-0.707107,0.707107,104.493594,-731.403909,1972.439549,
+ 0,-0.812792,0.582554,104.493591,-720.36549,1985.889902,
+ 0,-0.707107,0.707107,180.675225,-731.403895,1972.439559,
+ 0,-0.849252,0.527988,180.675225,-720.365482,1985.889904,
+ -0.000001,0.527988,0.849252,104.493611,-843.478858,1961.40113,
+ -0.000001,0.412792,0.910825,180.675225,-828.133397,1953.198865,
+ -0.000001,0.352162,0.935939,104.49361,-828.133462,1953.198845,
+ -0.000001,0.412792,0.910825,180.675225,-828.133397,1953.198865,
+ -0.000001,0.527988,0.849252,104.493611,-843.478858,1961.40113,
+ -0.000001,0.582554,0.812792,180.675225,-843.478786,1961.401146,
+ -0.873668,-0.191744,0.447144,-778.906876,-154.934211,1614.76108,
+ -0.890977,-0.087754,0.445488,-878.796251,-89.364884,1427.89836,
+ -0.877241,-0.174494,0.447214,-870.542978,-173.161765,1427.89836,
+ -0.890977,-0.087754,0.445488,-878.796251,-89.364884,1427.89836,
+ -0.873668,-0.191744,0.447144,-778.906876,-154.934211,1614.76108,
+ -0.890977,-0.087754,0.445488,-794.166564,0,1614.76108,
+ -0.890977,-0.087754,0.445488,-878.796251,-89.364884,1427.89836,
+ -0.890977,-0.087754,0.445488,-794.166564,0,1614.76108,
+ -0.890977,-0.087754,0.445488,-887.597924,0,1427.89836,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ 0.777333,-0.292484,0.556961,863.20747,-357.552241,2455.64332,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ 0.777333,-0.292484,0.556961,863.20747,-357.552241,2455.64332,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ 0.795831,-0.241413,0.555314,887.227327,-278.369385,2455.64332,
+ 0.795831,-0.241413,0.555314,887.227327,-278.369385,2455.64332,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ 0.795831,-0.241413,0.555314,914.651021,-187.965581,2455.64332,
+ 0.795831,-0.241413,0.555314,914.651021,-187.965581,2455.64332,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ 0.819458,-0.135214,0.556961,916.376162,-182.278552,2455.64332,
+ 0.472298,-0.759676,0.447021,415.261462,-621.482696,1427.89836,
+ 0.369253,-0.814754,0.447021,321.791703,-776.873894,1241.03564,
+ 0.521108,-0.727062,0.447021,467.169144,-699.168033,1241.03564,
+ 0.369253,-0.814754,0.447021,321.791703,-776.873894,1241.03564,
+ 0.472298,-0.759676,0.447021,415.261462,-621.482696,1427.89836,
+ 0.315017,-0.837219,0.447021,286.03707,-690.554573,1427.89836,
+ -0.551707,-0.826255,-0.113678,-470.848959,-704.675266,796.15315,
+ -0.684138,-0.684138,-0.252806,-590.997993,-590.997993,738.078199,
+ -0.532672,-0.798598,-0.280182,-464.344144,-694.940121,738.078199,
+ -0.684138,-0.684138,-0.252806,-590.997993,-590.997993,738.078199,
+ -0.551707,-0.826255,-0.113678,-470.848959,-704.675266,796.15315,
+ -0.704523,-0.704523,-0.085417,-599.277053,-599.277053,796.15315,
+ 0.162803,-0.986659,0,164.047988,-824.724927,2549.07468,
+ 0.032813,-0.999462,0,0,-840.882244,2455.64332,
+ 0.227168,-0.973856,0,164.047988,-824.724927,2455.64332,
+ 0.032813,-0.999462,0,0,-840.882244,2455.64332,
+ 0.162803,-0.986659,0,164.047988,-824.724927,2549.07468,
+ -0.032813,-0.999462,0,0,-840.882244,2549.07468,
+ 0,0,-1,0,-840.882244,2549.07468,
+ 0,0,-1,164.047988,-824.724927,2549.07468,
+ 0,0,-1,126.90366,-828.383324,2549.07468,
+ 0,0,1,0,-840.882244,2549.07468,
+ 0,0,1,126.90366,-828.383324,2549.07468,
+ 0,0,1,42.432775,-836.70298,2549.07468,
+ 0.683524,-0.729928,0,594.593537,-594.593537,2549.07468,
+ 0.582554,-0.812792,0,467.169144,-699.168033,2455.64332,
+ 0.729928,-0.683524,0,594.593537,-594.593537,2455.64332,
+ 0.582554,-0.812792,0,467.169144,-699.168033,2455.64332,
+ 0.683524,-0.729928,0,594.593537,-594.593537,2549.07468,
+ 0.527988,-0.849252,0,467.169144,-699.168033,2549.07468,
+ 0,0,1,467.169144,-699.168033,2549.07468,
+ 0,0,1,594.593537,-594.593537,2549.07468,
+ 0,0,1,578.083233,-608.143192,2549.07468,
+ 0,0,-1,467.169144,-699.168033,2549.07468,
+ 0,0,-1,578.083233,-608.143192,2549.07468,
+ 0,0,-1,512.438727,-662.016247,2549.07468,
+ -0.882512,-0.08692,-0.462187,-814.429823,0,682.822311,
+ -0.796215,-0.15672,-0.584364,-768.954752,-152.95461,631.979457,
+ -0.881651,-0.17413,-0.438601,-798.780783,-158.887376,682.822311,
+ -0.796215,-0.15672,-0.584364,-768.954752,-152.95461,631.979457,
+ -0.882512,-0.08692,-0.462187,-814.429823,0,682.822311,
+ -0.792149,-0.07802,-0.60532,-784.019466,0,631.979457,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ 0.393751,-0.867338,0.304443,399.515588,-964.515951,2258.006804,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.169277,-0.85787,0.485186,194.606371,-978.352295,2361.464898,
+ 0.292484,-0.777333,0.556961,357.552241,-863.20747,2455.64332,
+ 0.169277,-0.85787,0.485186,194.606371,-978.352295,2361.464898,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.169277,-0.85787,0.485186,194.606371,-978.352295,2361.464898,
+ 0.292484,-0.777333,0.556961,357.552241,-863.20747,2455.64332,
+ 0.135214,-0.819458,0.556961,182.278552,-916.376162,2455.64332,
+ 0,0,-1,182.278552,-916.376162,2455.64332,
+ 0,0,-1,357.552241,-863.20747,2455.64332,
+ 0,0,-1,323.520353,-873.53093,2455.64332,
+ 0,0,-1,182.278552,-916.376162,2455.64332,
+ 0,0,-1,323.520353,-873.53093,2455.64332,
+ 0,0,-1,233.2619,-900.910533,2455.64332,
+ 0.881651,-0.17413,-0.438601,798.780783,-158.887376,682.822311,
+ 0.947451,-0.093316,-0.305988,835.797377,0,738.078199,
+ 0.941653,-0.186514,-0.280182,819.737765,-163.055979,738.078199,
+ 0.947451,-0.093316,-0.305988,835.797377,0,738.078199,
+ 0.881651,-0.17413,-0.438601,798.780783,-158.887376,682.822311,
+ 0.882512,-0.08692,-0.462187,814.429823,0,682.822311,
+ -0.057894,0.301631,-0.951665,-723.842933,-790.8427,2109.126834,
+ -0.223394,0.469138,-0.854403,-768.60281,-861.729009,2086.282702,
+ 0.032027,0.211366,-0.976882,-783.644995,-846.504457,2095.122795,
+ -0.223394,0.469138,-0.854403,-768.60281,-861.729009,2086.282702,
+ -0.057894,0.301631,-0.951665,-723.842933,-790.8427,2109.126834,
+ -0.298975,0.546381,-0.782357,-703.270205,-808.916878,2098.19893,
+ -0.925561,-0.183175,0.331336,-1023.924672,-203.671281,2258.006804,
+ -0.976104,-0.096138,0.19488,-1072.403033,0,2148.211628,
+ -0.966926,-0.191862,0.168059,-1051.797109,-209.215453,2148.211628,
+ -0.976104,-0.096138,0.19488,-1072.403033,0,2148.211628,
+ -0.925561,-0.183175,0.331336,-1023.924672,-203.671281,2258.006804,
+ -0.929871,-0.091584,0.356303,-1043.984543,0,2258.006804,
+ 0.176337,-0.98433,0,279.79211,-1038.255787,2035.202177,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.146586,-0.98666,-0.07081,287.457755,-1035.930439,2011.592523,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.176337,-0.98433,0,279.79211,-1038.255787,2035.202177,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.176337,-0.98433,0,279.79211,-1038.255787,2035.202177,
+ 0.117205,-0.990162,0.07644,287.45777,-1035.930435,2058.811877,
+ 0,-0.582554,0.812792,806.222013,-670.885845,1850.699619,
+ 0,-0.707107,0.707107,180.675225,-637.259985,1878.295649,
+ 0,-0.527988,0.849252,180.675225,-670.885845,1850.699619,
+ 0,-0.707107,0.707107,180.675225,-637.259985,1878.295649,
+ 0,-0.582554,0.812792,806.222013,-670.885845,1850.699619,
+ 0,-0.707107,0.707107,843.013698,-637.259985,1878.295649,
+ 0,-0.527988,-0.849252,806.222028,-670.885845,2219.704735,
+ 0,-0.412792,-0.910825,180.675225,-709.249312,2240.210435,
+ 0,-0.582554,-0.812792,180.675225,-670.885845,2219.704735,
+ 0,-0.412792,-0.910825,180.675225,-709.249312,2240.210435,
+ 0,-0.527988,-0.849252,806.222028,-670.885845,2219.704735,
+ 0,-0.336778,-0.941584,767.904956,-709.249312,2240.210435,
+ 0,-0.336778,-0.941584,767.904956,-709.249312,2240.210435,
+ 0,-0.227168,-0.973856,180.675225,-750.8761,2252.837783,
+ 0,-0.412792,-0.910825,180.675225,-709.249312,2240.210435,
+ 0,-0.227168,-0.973856,180.675225,-750.8761,2252.837783,
+ 0,-0.336778,-0.941584,767.904956,-709.249312,2240.210435,
+ 0,-0.19509,-0.980785,724.871896,-750.8761,2252.837783,
+ 0,-0.19509,-0.980785,724.871896,-750.8761,2252.837783,
+ 0,-0.336778,-0.941584,767.904956,-709.249312,2240.210435,
+ 0,-0.290285,-0.95694,739.77113,-739.77113,2249.469127,
+ -0.360223,-0.872041,-0.331336,-399.515588,-964.515951,1812.397596,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.360223,-0.872041,-0.331336,-399.515588,-964.515951,1812.397596,
+ -0.523429,-0.785009,-0.331336,-580.006736,-868.041423,1812.397596,
+ 0.376942,-0.89216,0.24893,-644.282481,-861.55593,2059.381644,
+ 0.314449,-0.823891,0.471514,-740.177565,-890.06034,2085.821102,
+ 0.392379,-0.910791,0.128444,-731.284145,-899.775643,2054.145111,
+ 0.314449,-0.823891,0.471514,-740.177565,-890.06034,2085.821102,
+ 0.376942,-0.89216,0.24893,-644.282481,-861.55593,2059.381644,
+ 0.267392,-0.774255,0.573613,-655.637458,-847.372595,2104.031681,
+ 0.702746,-0.7023,-0.113678,599.277053,-599.277053,796.15315,
+ 0.811513,-0.581637,0.056077,706.098253,-471.799769,855.371869,
+ 0.69246,-0.720397,0.039075,600.487204,-600.487204,855.371869,
+ 0.811513,-0.581637,0.056077,706.098253,-471.799769,855.371869,
+ 0.702746,-0.7023,-0.113678,599.277053,-599.277053,796.15315,
+ 0.826255,-0.551707,-0.113678,704.675266,-470.848959,796.15315,
+ 0.472298,-0.759676,0.447021,389.30762,-582.640028,1241.03564,
+ 0.369253,-0.814754,0.447021,303.914386,-733.714234,1054.17292,
+ 0.521108,-0.727062,0.447021,441.215303,-660.325365,1054.17292,
+ 0.369253,-0.814754,0.447021,303.914386,-733.714234,1054.17292,
+ 0.472298,-0.759676,0.447021,389.30762,-582.640028,1241.03564,
+ 0.315017,-0.837219,0.447021,268.159753,-647.394912,1241.03564,
+ 0.819458,-0.135214,-0.556961,916.376162,-182.278552,1614.76108,
+ 0.850126,-0.08373,-0.51988,997.51935,0,1708.939502,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.850126,-0.08373,-0.51988,997.51935,0,1708.939502,
+ 0.819458,-0.135214,-0.556961,916.376162,-182.278552,1614.76108,
+ 0.827636,-0.081515,-0.555314,925.063958,-94.069878,1614.76108,
+ 0.850126,-0.08373,-0.51988,997.51935,0,1708.939502,
+ 0.827636,-0.081515,-0.555314,925.063958,-94.069878,1614.76108,
+ 0.827636,-0.081515,-0.555314,934.329033,0,1614.76108,
+ -0.722676,-0.676733,0.140615,-594.593537,-594.593537,914.026067,
+ -0.811513,-0.581637,0.056077,-706.098253,-471.799769,855.371869,
+ -0.691243,-0.718915,0.073102,-600.487204,-600.487204,855.371869,
+ -0.811513,-0.581637,0.056077,-706.098253,-471.799769,855.371869,
+ -0.722676,-0.676733,0.140615,-594.593537,-594.593537,914.026067,
+ -0.840814,-0.522742,0.140615,-699.168033,-467.169144,914.026067,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.925561,-0.183175,-0.331336,1023.924672,-203.671281,1812.397596,
+ 0.872041,-0.360223,-0.331336,964.515951,-399.515588,1812.397596,
+ 0.925561,-0.183175,-0.331336,1023.924672,-203.671281,1812.397596,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.706214,-0.448152,-0.548107,-781.183382,-739.911027,2076.744949,
+ 0.548529,-0.297921,-0.781255,-815.31953,-815.188756,2086.221945,
+ 0.706214,-0.448152,-0.548107,-827.129718,-803.865138,2069.836076,
+ 0.548529,-0.297921,-0.781255,-815.31953,-815.188756,2086.221945,
+ 0.706214,-0.448152,-0.548107,-781.183382,-739.911027,2076.744949,
+ 0.471095,-0.222728,-0.8535,-766.822004,-754.694855,2097.204109,
+ 0.212519,0.031556,-0.976647,-746.579505,-772.239793,2108.608099,
+ 0.032027,0.211366,-0.976882,-783.644995,-846.504457,2095.122795,
+ 0.324878,-0.080164,-0.942352,-800.049726,-830.161694,2095.10146,
+ 0.032027,0.211366,-0.976882,-783.644995,-846.504457,2095.122795,
+ 0.212519,0.031556,-0.976647,-746.579505,-772.239793,2108.608099,
+ -0.057894,0.301631,-0.951665,-723.842933,-790.8427,2109.126834,
+ -0.298975,0.546381,-0.782357,-703.270205,-808.916878,2098.19893,
+ -0.464702,0.719023,-0.516777,-757.213206,-873.517548,2069.927006,
+ -0.223394,0.469138,-0.854403,-768.60281,-861.729009,2086.282702,
+ -0.464702,0.719023,-0.516777,-757.213206,-873.517548,2069.927006,
+ -0.298975,0.546381,-0.782357,-703.270205,-808.916878,2098.19893,
+ -0.450105,0.703799,-0.549611,-688.216174,-823.53445,2077.427173,
+ 0.471095,-0.222728,-0.8535,-766.822004,-754.694855,2097.204109,
+ 0.324878,-0.080164,-0.942352,-800.049726,-830.161694,2095.10146,
+ 0.548529,-0.297921,-0.781255,-815.31953,-815.188756,2086.221945,
+ 0.324878,-0.080164,-0.942352,-800.049726,-830.161694,2095.10146,
+ 0.471095,-0.222728,-0.8535,-766.822004,-754.694855,2097.204109,
+ 0.387184,-0.145107,-0.910512,-761.149822,-761.149822,2100.644855,
+ 0.324878,-0.080164,-0.942352,-800.049726,-830.161694,2095.10146,
+ 0.387184,-0.145107,-0.910512,-761.149822,-761.149822,2100.644855,
+ 0.212519,0.031556,-0.976647,-746.579505,-772.239793,2108.608099,
+ 0.349001,-0.053498,0.935594,-801.544846,-831.814429,1978.709589,
+ 0.49294,-0.19858,0.847098,-766.912924,-754.581509,1973.179733,
+ 0.568521,-0.275822,0.775053,-816.587031,-816.589878,1987.549682,
+ 0.49294,-0.19858,0.847098,-766.912924,-754.581509,1973.179733,
+ 0.349001,-0.053498,0.935594,-801.544846,-831.814429,1978.709589,
+ 0.410493,-0.119341,0.904021,-761.145932,-761.145932,1969.694508,
+ 0.410493,-0.119341,0.904021,-761.145932,-761.145932,1969.694508,
+ 0.349001,-0.053498,0.935594,-801.544846,-831.814429,1978.709589,
+ 0.237519,0.059192,0.969578,-746.546206,-772.245717,1961.599842,
+ -0.183175,-0.925561,-0.331336,-203.671281,-1023.924672,1812.397596,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ -0.183175,-0.925561,-0.331336,-203.671281,-1023.924672,1812.397596,
+ -0.360223,-0.872041,-0.331336,-399.515588,-964.515951,1812.397596,
+ 0.727062,-0.521108,0.447021,699.168033,-467.169144,1241.03564,
+ 0.632456,-0.632456,0.447214,528.527588,-528.527588,1427.89836,
+ 0.632456,-0.632456,0.447214,594.593537,-594.593537,1241.03564,
+ 0.632456,-0.632456,0.447214,528.527588,-528.527588,1427.89836,
+ 0.727062,-0.521108,0.447021,699.168033,-467.169144,1241.03564,
+ 0.759676,-0.472298,0.447021,621.482696,-415.261462,1427.89836,
+ 0.727062,-0.521108,0.447021,738.010701,-493.122985,1427.89836,
+ 0.632456,-0.632456,0.447214,561.560563,-561.560563,1614.76108,
+ 0.632456,-0.632456,0.447214,627.626511,-627.626511,1427.89836,
+ 0.632456,-0.632456,0.447214,561.560563,-561.560563,1614.76108,
+ 0.727062,-0.521108,0.447021,738.010701,-493.122985,1427.89836,
+ 0.759676,-0.472298,0.447021,660.325365,-441.215303,1614.76108,
+ 0.606233,-0.567693,-0.556961,660.670395,-660.670395,1614.76108,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.606593,-0.621557,-0.495693,705.352697,-705.352697,1708.939502,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.606233,-0.567693,-0.556961,660.670395,-660.670395,1614.76108,
+ 0.642867,-0.527587,-0.555314,705.689443,-605.814526,1614.76108,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.642867,-0.527587,-0.555314,705.689443,-605.814526,1614.76108,
+ 0.642867,-0.527587,-0.555314,765.568628,-532.851527,1614.76108,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.642867,-0.527587,-0.555314,765.568628,-532.851527,1614.76108,
+ 0.705336,-0.438515,-0.556961,776.866198,-519.085398,1614.76108,
+ 0.606593,-0.621557,-0.495693,705.352697,-705.352697,1708.939502,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.606593,-0.621557,-0.495693,705.352697,-705.352697,1708.939502,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.916164,-0.400805,0,776.873894,-321.791703,2455.64332,
+ 0.95694,-0.290285,-0,798.491403,-250.528327,2549.07468,
+ 0.92388,-0.382683,0,776.873894,-321.791703,2549.07468,
+ 0.95694,-0.290285,-0,798.491403,-250.528327,2549.07468,
+ 0.916164,-0.400805,0,776.873894,-321.791703,2455.64332,
+ 0.976753,-0.214369,-0,824.724927,-164.047988,2455.64332,
+ 0.95694,-0.290285,-0,798.491403,-250.528327,2549.07468,
+ 0.976753,-0.214369,-0,824.724927,-164.047988,2455.64332,
+ 0.95694,-0.290285,-0,823.172321,-169.166243,2549.07468,
+ 0.95694,-0.290285,-0,823.172321,-169.166243,2549.07468,
+ 0.976753,-0.214369,-0,824.724927,-164.047988,2455.64332,
+ 0.980785,-0.19509,0,824.724927,-164.047988,2549.07468,
+ 0,-0.19509,-0.980785,724.871896,-750.8761,2252.837783,
+ 0,-0.032813,-0.999462,180.675225,-794.166513,2257.101517,
+ 0,-0.227168,-0.973856,180.675225,-750.8761,2252.837783,
+ 0,-0.032813,-0.999462,180.675225,-794.166513,2257.101517,
+ 0,-0.19509,-0.980785,724.871896,-750.8761,2252.837783,
+ -0,0.032813,-0.999462,670.391152,-794.166513,2257.101517,
+ 0,-0.881921,-0.471397,892.684338,-596.472605,2133.803565,
+ 0,-0.92388,-0.382683,180.675225,-589.158255,2120.119378,
+ 0,-0.92388,-0.382683,897.900698,-589.158255,2120.119378,
+ 0,-0.92388,-0.382683,180.675225,-589.158255,2120.119378,
+ 0,-0.881921,-0.471397,892.684338,-596.472605,2133.803565,
+ 0,-0.84225,-0.539087,180.675225,-609.663955,2158.482845,
+ 0,-0.84225,-0.539087,180.675225,-609.663955,2158.482845,
+ 0,-0.881921,-0.471397,892.684338,-596.472605,2133.803565,
+ 0,-0.881921,-0.471397,884.794335,-604.173876,2148.211628,
+ 0,-0.84225,-0.539087,180.675225,-609.663955,2158.482845,
+ 0,-0.881921,-0.471397,884.794335,-604.173876,2148.211628,
+ 0,-0.83147,-0.55557,876.866129,-609.663955,2158.482845,
+ 0,0.352162,0.935939,653.750225,-879.083714,1830.193918,
+ 0,0.227168,0.973856,180.675225,-837.456927,1817.56657,
+ 0,0.412792,0.910825,180.675225,-879.083714,1830.193918,
+ 0,0.227168,0.973856,180.675225,-837.456927,1817.56657,
+ 0,0.352162,0.935939,653.750225,-879.083714,1830.193918,
+ 0,0.162803,0.986659,653.750225,-837.456927,1817.56657,
+ 0.636324,-0.634602,-0.438601,575.888851,-575.888851,682.822311,
+ 0.798598,-0.532672,-0.280182,694.940121,-464.344144,738.078199,
+ 0.679334,-0.678235,-0.280182,590.997993,-590.997993,738.078199,
+ 0.798598,-0.532672,-0.280182,694.940121,-464.344144,738.078199,
+ 0.636324,-0.634602,-0.438601,575.888851,-575.888851,682.822311,
+ 0.747902,-0.498268,-0.438601,677.173649,-452.472967,682.822311,
+ 0.192603,-0.882117,-0.429853,406.150723,-980.534583,1879.384872,
+ 0.184965,-0.925205,-0.331336,203.671281,-1023.924672,1812.397596,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.184965,-0.925205,-0.331336,203.671281,-1023.924672,1812.397596,
+ 0.192603,-0.882117,-0.429853,406.150723,-980.534583,1879.384872,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.192603,-0.882117,-0.429853,406.150723,-980.534583,1879.384872,
+ 0.115001,-0.89802,-0.424659,369.41032,-997.119327,1899.593442,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.115001,-0.89802,-0.424659,369.41032,-997.119327,1899.593442,
+ 0.146136,-0.933668,-0.326969,349.642862,-1009.198921,1922.192772,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.925561,-0.183175,0.331336,-1023.924672,-203.671281,2258.006804,
+ -0.872041,-0.360223,0.331336,-964.515951,-399.515588,2258.006804,
+ -0.925561,-0.183175,0.331336,-1023.924672,-203.671281,2258.006804,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ 0.979923,-0.19486,0.0422,1059.217255,-210.691412,2058.811877,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.923514,-0.382532,0.028131,997.760837,-413.286071,2058.811877,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.979923,-0.19486,0.0422,1059.217255,-210.691412,2058.811877,
+ 0.966926,-0.191862,0.168059,1051.797109,-209.215453,2148.211628,
+ -0.785009,-0.523429,0.331336,-868.041423,-580.006736,2258.006804,
+ -0.910916,-0.376813,0.168059,-990.771213,-410.390874,2148.211628,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.910916,-0.376813,0.168059,-990.771213,-410.390874,2148.211628,
+ -0.785009,-0.523429,0.331336,-868.041423,-580.006736,2258.006804,
+ -0.872041,-0.360223,0.331336,-964.515951,-399.515588,2258.006804,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0.872041,-0.360223,0.331336,-964.515951,-399.515588,2258.006804,
+ -0.785009,-0.523429,0.331336,-868.041423,-580.006736,2258.006804,
+ -0.872041,-0.360223,0.331336,-964.515951,-399.515588,2258.006804,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.705336,-0.438515,0.556961,-776.866198,-519.085398,2455.64332,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.705336,-0.438515,0.556961,-776.866198,-519.085398,2455.64332,
+ -0.733442,-0.392033,0.555314,-813.095616,-451.304926,2455.64332,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.733442,-0.392033,0.555314,-813.095616,-451.304926,2455.64332,
+ -0.733442,-0.392033,0.555314,-857.607798,-368.02849,2455.64332,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.733442,-0.392033,0.555314,-857.607798,-368.02849,2455.64332,
+ -0.777333,-0.292484,0.556961,-863.20747,-357.552241,2455.64332,
+ -0.436098,0.719283,0.540788,-758.060123,-874.453748,2003.996308,
+ -0.505482,0.778826,0.371374,-683.32915,-829.573232,2011.592523,
+ -0.436098,0.719283,0.540788,-687.957453,-823.760435,1993.102587,
+ -0.505482,0.778826,0.371374,-683.32915,-829.573232,2011.592523,
+ -0.436098,0.719283,0.540788,-758.060123,-874.453748,2003.996308,
+ -0.544468,0.817693,0.186902,-751.507545,-880.404128,2025.39393,
+ -0.505482,0.778826,0.371374,-683.32915,-829.573232,2011.592523,
+ -0.544468,0.817693,0.186902,-751.507545,-880.404128,2025.39393,
+ -0.544468,0.817693,0.186902,-680.414811,-831.964968,2020.575089,
+ 0.057027,0.239002,0.969343,-785.140115,-848.157193,1978.730924,
+ 0.237519,0.059192,0.969578,-746.546206,-772.245717,1961.599842,
+ 0.349001,-0.053498,0.935594,-801.544846,-831.814429,1978.709589,
+ 0.237519,0.059192,0.969578,-746.546206,-772.245717,1961.599842,
+ 0.057027,0.239002,0.969343,-785.140115,-848.157193,1978.730924,
+ -0.033544,0.328548,0.943892,-723.636295,-790.983771,1961.015863,
+ -0.464702,0.719023,-0.516777,-757.213206,-873.517548,2069.927006,
+ -0.549387,0.812256,-0.195995,-680.521947,-831.877044,2050.149043,
+ -0.549387,0.812256,-0.195995,-751.210147,-880.075378,2048.545713,
+ -0.549387,0.812256,-0.195995,-680.521947,-831.877044,2050.149043,
+ -0.464702,0.719023,-0.516777,-757.213206,-873.517548,2069.927006,
+ -0.515137,0.768153,-0.38023,-683.397325,-829.517282,2058.811877,
+ -0.515137,0.768153,-0.38023,-683.397325,-829.517282,2058.811877,
+ -0.464702,0.719023,-0.516777,-757.213206,-873.517548,2069.927006,
+ -0.450105,0.703799,-0.549611,-688.216174,-823.53445,2077.427173,
+ 0.568521,-0.275822,0.775053,-816.587031,-816.589878,1987.549682,
+ 0.720221,-0.432668,0.542292,-781.308062,-739.778792,1993.802906,
+ 0.720221,-0.432668,0.542292,-827.976635,-804.801338,2003.905378,
+ 0.720221,-0.432668,0.542292,-781.308062,-739.778792,1993.802906,
+ 0.568521,-0.275822,0.775053,-816.587031,-816.589878,1987.549682,
+ 0.49294,-0.19858,0.847098,-766.912924,-754.581509,1973.179733,
+ -0.532672,-0.798598,-0.280182,-464.344144,-694.940121,738.078199,
+ -0.644016,-0.644016,-0.412901,-575.888851,-575.888851,682.822311,
+ -0.498268,-0.747902,-0.438601,-452.472967,-677.173649,682.822311,
+ -0.644016,-0.644016,-0.412901,-575.888851,-575.888851,682.822311,
+ -0.532672,-0.798598,-0.280182,-464.344144,-694.940121,738.078199,
+ -0.684138,-0.684138,-0.252806,-590.997993,-590.997993,738.078199,
+ 0.468978,-0.782653,-0.409285,577.578281,-864.406983,1802.66502,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.468978,-0.782653,-0.409285,577.578281,-864.406983,1802.66502,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.468978,-0.782653,-0.409285,577.578281,-864.406983,1802.66502,
+ 0.430365,-0.805157,-0.408054,540.896876,-887.575434,1809.693092,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.430365,-0.805157,-0.408054,540.896876,-887.575434,1809.693092,
+ 0.445004,-0.832543,-0.329915,533.995007,-892.635204,1812.397596,
+ -0.770284,-0.632155,-0.083921,-781.354664,-731.718944,1933.517963,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.75819,-0.62223,-0.19488,-761.987077,-753.814953,1922.192772,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.770284,-0.632155,-0.083921,-781.354664,-731.718944,1933.517963,
+ -0.770284,-0.632155,-0.083921,-804.883918,-707.527533,1967.257586,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.770284,-0.632155,-0.083921,-804.883918,-707.527533,1967.257586,
+ -0.772328,-0.633835,-0.041994,-818.480102,-696.846173,2011.592491,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.772328,-0.633835,-0.041994,-818.480102,-696.846173,2011.592491,
+ -0.841785,-0.538757,-0.033753,-897.96103,-599.998378,2011.592523,
+ -0.966926,-0.191862,0.168059,-1051.797109,-209.215453,2148.211628,
+ -0.994307,-0.097931,0.041998,-1079.968548,0,2058.811877,
+ -0.972989,-0.226965,0.042178,-1059.217255,-210.691412,2058.811877,
+ -0.994307,-0.097931,0.041998,-1079.968548,0,2058.811877,
+ -0.966926,-0.191862,0.168059,-1051.797109,-209.215453,2148.211628,
+ -0.976104,-0.096138,0.19488,-1072.403033,0,2148.211628,
+ 0,0,1,-832.543812,-84.66152,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-840.882244,0,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-832.543812,-84.66152,2549.07468,
+ 0,0,1,-824.724927,-164.047988,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-824.724927,-164.047988,2549.07468,
+ 0,0,1,-823.172319,-169.16625,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-823.172319,-169.16625,2549.07468,
+ 0,0,1,-798.491399,-250.528339,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-798.491399,-250.528339,2549.07468,
+ 0,0,1,-776.873894,-321.791703,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-776.873894,-321.791703,2549.07468,
+ 0,0,1,-771.834238,-331.220236,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-771.834238,-331.220236,2549.07468,
+ 0,0,1,-731.773964,-406.167737,2549.07468,
+ 0,0,1,-747.450884,0,2549.07468,
+ 0,0,1,-731.773964,-406.167737,2549.07468,
+ 0,0,1,-733.088824,-145.820434,2549.07468,
+ 0,0,1,-733.088824,-145.820434,2549.07468,
+ 0,0,1,-731.773964,-406.167737,2549.07468,
+ 0,0,1,-690.554573,-286.03707,2549.07468,
+ 0,0,1,-690.554573,-286.03707,2549.07468,
+ 0,0,1,-731.773964,-406.167737,2549.07468,
+ 0,0,1,-699.168033,-467.169144,2549.07468,
+ 0,0,1,-690.554573,-286.03707,2549.07468,
+ 0,0,1,-699.168033,-467.169144,2549.07468,
+ 0,0,1,-689.000369,-479.558478,2549.07468,
+ 0,0,1,-690.554573,-286.03707,2549.07468,
+ 0,0,1,-689.000369,-479.558478,2549.07468,
+ 0,0,1,-621.482696,-415.261462,2549.07468,
+ 0,0,1,-621.482696,-415.261462,2549.07468,
+ 0,0,1,-689.000369,-479.558478,2549.07468,
+ 0,0,1,-635.110018,-545.224061,2549.07468,
+ 0,0,1,-621.482696,-415.261462,2549.07468,
+ 0,0,1,-635.110018,-545.224061,2549.07468,
+ 0,0,1,-594.593537,-594.593537,2549.07468,
+ 0,0,1,-621.482696,-415.261462,2549.07468,
+ 0,0,1,-594.593537,-594.593537,2549.07468,
+ 0,0,1,-528.527588,-528.527588,2549.07468,
+ 0,0,1,-528.527588,-528.527588,2549.07468,
+ 0,0,1,-594.593537,-594.593537,2549.07468,
+ 0,0,1,-578.083211,-608.143211,2549.07468,
+ 0,0,1,-528.527588,-528.527588,2549.07468,
+ 0,0,1,-578.083211,-608.143211,2549.07468,
+ 0,0,1,-512.438676,-662.016288,2549.07468,
+ 0,0,1,-528.527588,-528.527588,2549.07468,
+ 0,0,1,-512.438676,-662.016288,2549.07468,
+ 0,0,1,-415.261462,-621.482696,2549.07468,
+ 0,0,1,-415.261462,-621.482696,2549.07468,
+ 0,0,1,-512.438676,-662.016288,2549.07468,
+ 0,0,1,-467.169144,-699.168033,2549.07468,
+ 0,0,1,-415.261462,-621.482696,2549.07468,
+ 0,0,1,-467.169144,-699.168033,2549.07468,
+ 0,0,1,-443.63534,-711.747113,2549.07468,
+ 0,0,1,-415.261462,-621.482696,2549.07468,
+ 0,0,1,-443.63534,-711.747113,2549.07468,
+ 0,0,1,-368.760189,-751.768716,2549.07468,
+ 0,0,1,-415.261462,-621.482696,2549.07468,
+ 0,0,1,-368.760189,-751.768716,2549.07468,
+ 0,0,1,-286.03707,-690.554573,2549.07468,
+ 0,0,1,-286.03707,-690.554573,2549.07468,
+ 0,0,1,-368.760189,-751.768716,2549.07468,
+ 0,0,1,-321.791703,-776.873894,2549.07468,
+ 0,0,1,-286.03707,-690.554573,2549.07468,
+ 0,0,1,-321.791703,-776.873894,2549.07468,
+ 0,0,1,-291.163467,-786.164868,2549.07468,
+ 0,0,1,-286.03707,-690.554573,2549.07468,
+ 0,0,1,-291.163467,-786.164868,2549.07468,
+ 0,0,1,-209.932195,-810.806105,2549.07468,
+ 0,0,1,-286.03707,-690.554573,2549.07468,
+ 0,0,1,-209.932195,-810.806105,2549.07468,
+ 0,0,1,-145.820434,-733.088824,2549.07468,
+ 0,0,1,-145.820434,-733.088824,2549.07468,
+ 0,0,1,-209.932195,-810.806105,2549.07468,
+ 0,0,1,-164.047988,-824.724927,2549.07468,
+ 0,0,1,-145.820434,-733.088824,2549.07468,
+ 0,0,1,-164.047988,-824.724927,2549.07468,
+ 0,0,1,-126.903621,-828.383328,2549.07468,
+ 0,0,1,-145.820434,-733.088824,2549.07468,
+ 0,0,1,-126.903621,-828.383328,2549.07468,
+ 0,0,1,0,-747.450884,2549.07468,
+ 0,0,1,0,-747.450884,2549.07468,
+ 0,0,1,-126.903621,-828.383328,2549.07468,
+ 0,0,1,-42.432781,-836.702979,2549.07468,
+ 0,0,1,0,-747.450884,2549.07468,
+ 0,0,1,-42.432781,-836.702979,2549.07468,
+ 0,0,1,0,-840.882244,2549.07468,
+ 0,0,1,0,-747.450884,2549.07468,
+ 0,0,1,0,-840.882244,2549.07468,
+ 0,0,1,42.432775,-836.70298,2549.07468,
+ 0,0,1,0,-747.450884,2549.07468,
+ 0,0,1,42.432775,-836.70298,2549.07468,
+ 0,0,1,145.820434,-733.088824,2549.07468,
+ 0,0,1,145.820434,-733.088824,2549.07468,
+ 0,0,1,42.432775,-836.70298,2549.07468,
+ 0,0,1,126.90366,-828.383324,2549.07468,
+ 0,0,1,145.820434,-733.088824,2549.07468,
+ 0,0,1,126.90366,-828.383324,2549.07468,
+ 0,0,1,164.047988,-824.724927,2549.07468,
+ 0,0,1,145.820434,-733.088824,2549.07468,
+ 0,0,1,164.047988,-824.724927,2549.07468,
+ 0,0,1,286.03707,-690.554573,2549.07468,
+ 0,0,1,286.03707,-690.554573,2549.07468,
+ 0,0,1,164.047988,-824.724927,2549.07468,
+ 0,0,1,209.932273,-810.806081,2549.07468,
+ 0,0,1,286.03707,-690.554573,2549.07468,
+ 0,0,1,209.932273,-810.806081,2549.07468,
+ 0,0,1,291.163503,-786.164857,2549.07468,
+ 0,0,1,286.03707,-690.554573,2549.07468,
+ 0,0,1,291.163503,-786.164857,2549.07468,
+ 0,0,1,415.261462,-621.482696,2549.07468,
+ 0,0,1,415.261462,-621.482696,2549.07468,
+ 0,0,1,291.163503,-786.164857,2549.07468,
+ 0,0,1,321.791703,-776.873894,2549.07468,
+ 0,0,1,415.261462,-621.482696,2549.07468,
+ 0,0,1,321.791703,-776.873894,2549.07468,
+ 0,0,1,368.760184,-751.768718,2549.07468,
+ 0,0,1,415.261462,-621.482696,2549.07468,
+ 0,0,1,368.760184,-751.768718,2549.07468,
+ 0,0,1,443.635404,-711.747079,2549.07468,
+ 0,0,1,415.261462,-621.482696,2549.07468,
+ 0,0,1,443.635404,-711.747079,2549.07468,
+ 0,0,1,528.527588,-528.527588,2549.07468,
+ 0,0,1,528.527588,-528.527588,2549.07468,
+ 0,0,1,443.635404,-711.747079,2549.07468,
+ 0,0,1,467.169144,-699.168033,2549.07468,
+ 0,0,1,528.527588,-528.527588,2549.07468,
+ 0,0,1,467.169144,-699.168033,2549.07468,
+ 0,0,1,512.438727,-662.016247,2549.07468,
+ 0,0,1,528.527588,-528.527588,2549.07468,
+ 0,0,1,512.438727,-662.016247,2549.07468,
+ 0,0,1,578.083233,-608.143192,2549.07468,
+ 0,0,1,528.527588,-528.527588,2549.07468,
+ 0,0,1,578.083233,-608.143192,2549.07468,
+ 0,0,1,621.482696,-415.261462,2549.07468,
+ 0,0,1,621.482696,-415.261462,2549.07468,
+ 0,0,1,578.083233,-608.143192,2549.07468,
+ 0,0,1,594.593537,-594.593537,2549.07468,
+ 0,0,1,621.482696,-415.261462,2549.07468,
+ 0,0,1,594.593537,-594.593537,2549.07468,
+ 0,0,1,635.110016,-545.224064,2549.07468,
+ 0,0,1,621.482696,-415.261462,2549.07468,
+ 0,0,1,635.110016,-545.224064,2549.07468,
+ 0,0,1,690.554573,-286.03707,2549.07468,
+ 0,0,1,690.554573,-286.03707,2549.07468,
+ 0,0,1,635.110016,-545.224064,2549.07468,
+ 0,0,1,689.000383,-479.558461,2549.07468,
+ 0,0,1,690.554573,-286.03707,2549.07468,
+ 0,0,1,689.000383,-479.558461,2549.07468,
+ 0,0,1,699.168033,-467.169144,2549.07468,
+ 0,0,1,690.554573,-286.03707,2549.07468,
+ 0,0,1,699.168033,-467.169144,2549.07468,
+ 0,0,1,733.088824,-145.820434,2549.07468,
+ 0,0,1,733.088824,-145.820434,2549.07468,
+ 0,0,1,699.168033,-467.169144,2549.07468,
+ 0,0,1,731.773963,-406.167739,2549.07468,
+ 0,0,1,733.088824,-145.820434,2549.07468,
+ 0,0,1,731.773963,-406.167739,2549.07468,
+ 0,0,1,771.834246,-331.220222,2549.07468,
+ 0,0,1,733.088824,-145.820434,2549.07468,
+ 0,0,1,771.834246,-331.220222,2549.07468,
+ 0,0,1,747.450884,0,2549.07468,
+ 0,0,1,747.450884,0,2549.07468,
+ 0,0,1,771.834246,-331.220222,2549.07468,
+ 0,0,1,840.882244,0,2549.07468,
+ 0,0,1,840.882244,0,2549.07468,
+ 0,0,1,771.834246,-331.220222,2549.07468,
+ 0,0,1,776.873894,-321.791703,2549.07468,
+ 0,0,1,840.882244,0,2549.07468,
+ 0,0,1,776.873894,-321.791703,2549.07468,
+ 0,0,1,798.491403,-250.528327,2549.07468,
+ 0,0,1,840.882244,0,2549.07468,
+ 0,0,1,798.491403,-250.528327,2549.07468,
+ 0,0,1,823.172321,-169.166243,2549.07468,
+ 0,0,1,840.882244,0,2549.07468,
+ 0,0,1,823.172321,-169.166243,2549.07468,
+ 0,0,1,824.724927,-164.047988,2549.07468,
+ 0,0,1,840.882244,0,2549.07468,
+ 0,0,1,824.724927,-164.047988,2549.07468,
+ 0,0,1,832.543812,-84.661515,2549.07468,
+ 0.832671,-0.532692,-0.151323,891.670534,-595.795203,1922.192772,
+ 0.828508,-0.553591,-0.084324,892.684335,-596.472603,1936.600792,
+ 0.75819,-0.62223,-0.19488,884.794356,-604.173851,1922.192772,
+ 0.832671,-0.532692,-0.151323,891.670534,-595.795203,1922.192772,
+ 0.87881,-0.469734,-0.083921,897.900693,-589.158255,1950.284976,
+ 0.828508,-0.553591,-0.084324,892.684335,-596.472603,1936.600792,
+ 0.87881,-0.469734,-0.083921,897.900693,-589.158255,1950.284976,
+ 0.832671,-0.532692,-0.151323,891.670534,-595.795203,1922.192772,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.87881,-0.469734,-0.083921,897.900693,-589.158255,1950.284976,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.87881,-0.469734,-0.083921,908.62526,-576.530907,1991.911763,
+ 0.87881,-0.469734,-0.083921,908.62526,-576.530907,1991.911763,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.880538,-0.470657,-0.055991,911.540742,-574.592523,2011.592523,
+ 0.880538,-0.470657,-0.055991,911.540742,-574.592523,2011.592523,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.91563,-0.400602,-0.033753,997.760837,-413.286071,2011.592523,
+ 0.702746,-0.7023,-0.113678,599.277053,-599.277053,796.15315,
+ 0.533964,-0.797735,-0.280182,464.344144,-694.940121,738.078199,
+ 0.679334,-0.678235,-0.280182,590.997993,-590.997993,738.078199,
+ 0.533964,-0.797735,-0.280182,464.344144,-694.940121,738.078199,
+ 0.702746,-0.7023,-0.113678,599.277053,-599.277053,796.15315,
+ 0.552231,-0.825905,-0.113678,470.848959,-704.675266,796.15315,
+ 0,-0.849252,0.527988,180.675225,-720.365482,1985.889904,
+ 0,-0.92388,0.382683,104.493588,-712.163205,2001.235298,
+ 0,-0.812792,0.582554,104.493591,-720.36549,1985.889902,
+ 0,-0.92388,0.382683,104.493588,-712.163205,2001.235298,
+ 0,-0.849252,0.527988,180.675225,-720.365482,1985.889904,
+ 0,-0.92388,0.382683,180.675225,-712.163201,2001.235293,
+ -0.747902,-0.498268,-0.438601,-677.173649,-452.472967,682.822311,
+ -0.586347,-0.571185,-0.574408,-554.385481,-554.385481,631.979457,
+ -0.644016,-0.644016,-0.412901,-575.888851,-575.888851,682.822311,
+ -0.586347,-0.571185,-0.574408,-554.385481,-554.385481,631.979457,
+ -0.747902,-0.498268,-0.438601,-677.173649,-452.472967,682.822311,
+ -0.692236,-0.442144,-0.570366,-651.888362,-435.577878,631.979457,
+ -0.798598,-0.532672,-0.280182,-694.940121,-464.344144,738.078199,
+ -0.644016,-0.644016,-0.412901,-575.888851,-575.888851,682.822311,
+ -0.684138,-0.684138,-0.252806,-590.997993,-590.997993,738.078199,
+ -0.644016,-0.644016,-0.412901,-575.888851,-575.888851,682.822311,
+ -0.798598,-0.532672,-0.280182,-694.940121,-464.344144,738.078199,
+ -0.747902,-0.498268,-0.438601,-677.173649,-452.472967,682.822311,
+ 0.903939,-0,-0.427662,-43.046973,-1075.728791,2051.869445,
+ 0.849252,-0,-0.527988,-38.888103,-1076.067465,2059.650143,
+ 0.881921,-0,-0.471397,-39.336165,-1076.094273,2058.811877,
+ 0.849252,-0,-0.527988,-38.888103,-1076.067465,2059.650143,
+ 0.903939,-0,-0.427662,-43.046973,-1075.728791,2051.869445,
+ 0.83147,-0,-0.55557,-38.888103,-975.735676,2059.650143,
+ 0.83147,-0,-0.55557,-38.888103,-975.735676,2059.650143,
+ 0.903939,-0,-0.427662,-43.046973,-1075.728791,2051.869445,
+ 0.935939,0,-0.352162,-43.046973,-975.791819,2051.869445,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.770284,-0.632156,0.083915,-780.975409,-732.347203,2135.633781,
+ -0.75819,-0.62223,0.194878,-759.379832,-756.991889,2148.211628,
+ -0.770284,-0.632156,0.083915,-780.975409,-732.347203,2135.633781,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.770287,-0.632154,0.083906,-804.422958,-708.167768,2102.551876,
+ -0.770287,-0.632154,0.083906,-804.422958,-708.167768,2102.551876,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.771796,-0.633401,0.055987,-818.273878,-697.096462,2058.801607,
+ -0.771796,-0.633401,0.055987,-818.273878,-697.096462,2058.801607,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.819881,-0.571538,0.033755,-897.96103,-599.998378,2058.811877,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.523429,-0.785009,-0.331336,-580.006736,-868.041423,1812.397596,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.61434,-0.748575,-0.249443,-712.20051,-793.069744,1912.981477,
+ -0.61434,-0.748575,-0.249443,-712.20051,-793.069744,1912.981477,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.625455,-0.762119,-0.167272,-697.040319,-808.580815,1922.192772,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.61434,-0.748575,-0.249443,-750.03201,-762.726244,1915.0942,
+ -0.684548,-0.684548,-0.250574,-757.858868,-757.858868,1919.763614,
+ -0.61434,-0.748575,-0.249443,-750.03201,-762.726244,1915.0942,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.61434,-0.748575,-0.249443,-712.20051,-793.069744,1912.981477,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.632155,-0.770284,-0.083921,-679.407718,-824.046894,1931.329012,
+ -0.625455,-0.762119,-0.167272,-697.040319,-808.580815,1922.192772,
+ -0.632155,-0.770284,-0.083921,-679.407718,-824.046894,1931.329012,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.632155,-0.770284,-0.083921,-679.407718,-824.046894,1931.329012,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.632155,-0.770284,-0.083921,-654.791104,-848.015122,1965.894902,
+ -0.632155,-0.770284,-0.083921,-654.791104,-848.015122,1965.894902,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.632155,-0.770284,-0.083921,-643.970452,-861.831591,2011.202527,
+ -0.632155,-0.770284,-0.083921,-643.970452,-861.831591,2011.202527,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.634145,-0.772707,-0.027996,-644.00684,-861.844218,2011.592523,
+ 0.700074,-0.700074,0.140689,594.593537,-594.593537,914.026067,
+ 0.554566,-0.830246,0.056107,471.799769,-706.098253,855.371869,
+ 0.69246,-0.720397,0.039075,600.487204,-600.487204,855.371869,
+ 0.554566,-0.830246,0.056107,471.799769,-706.098253,855.371869,
+ 0.700074,-0.700074,0.140689,594.593537,-594.593537,914.026067,
+ 0.522742,-0.840814,0.140615,467.169144,-699.168033,914.026067,
+ 0.349653,-0.487843,0.799845,467.169144,-699.168033,914.026067,
+ 0.410255,-0.438107,0.799845,462.46164,-462.46164,1054.17292,
+ 0.316902,-0.509726,0.799845,363.353779,-543.79736,1054.17292,
+ 0.410255,-0.438107,0.799845,462.46164,-462.46164,1054.17292,
+ 0.349653,-0.487843,0.799845,467.169144,-699.168033,914.026067,
+ 0.438107,-0.410255,0.799845,594.593537,-594.593537,914.026067,
+ 0.632456,-0.632456,0.447214,495.494614,-495.494614,1241.03564,
+ 0.521108,-0.727062,0.447021,441.215303,-660.325365,1054.17292,
+ 0.632456,-0.632456,0.447214,561.560563,-561.560563,1054.17292,
+ 0.521108,-0.727062,0.447021,441.215303,-660.325365,1054.17292,
+ 0.632456,-0.632456,0.447214,495.494614,-495.494614,1241.03564,
+ 0.472298,-0.759676,0.447021,389.30762,-582.640028,1241.03564,
+ 0.632456,-0.632456,0.447214,528.527588,-528.527588,1427.89836,
+ 0.521108,-0.727062,0.447021,467.169144,-699.168033,1241.03564,
+ 0.632456,-0.632456,0.447214,594.593537,-594.593537,1241.03564,
+ 0.521108,-0.727062,0.447021,467.169144,-699.168033,1241.03564,
+ 0.632456,-0.632456,0.447214,528.527588,-528.527588,1427.89836,
+ 0.472298,-0.759676,0.447021,415.261462,-621.482696,1427.89836,
+ -0.819458,-0.135214,0.556961,-916.376162,-182.278552,2455.64332,
+ -0.850126,-0.08373,0.51988,-997.51935,0,2361.464898,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ -0.850126,-0.08373,0.51988,-997.51935,0,2361.464898,
+ -0.819458,-0.135214,0.556961,-916.376162,-182.278552,2455.64332,
+ -0.827636,-0.081515,0.555314,-925.063958,-94.069883,2455.64332,
+ -0.850126,-0.08373,0.51988,-997.51935,0,2361.464898,
+ -0.827636,-0.081515,0.555314,-925.063958,-94.069883,2455.64332,
+ -0.827636,-0.081515,0.555314,-934.329033,0,2455.64332,
+ -0.644814,-0.619901,0.447144,-561.560563,-561.560563,1614.76108,
+ -0.692067,-0.567965,0.445488,-670.393897,-575.514299,1427.89836,
+ -0.632456,-0.632456,0.447214,-627.626511,-627.626511,1427.89836,
+ -0.692067,-0.567965,0.445488,-670.393897,-575.514299,1427.89836,
+ -0.644814,-0.619901,0.447144,-561.560563,-561.560563,1614.76108,
+ -0.692067,-0.567965,0.445488,-727.278191,-506.200587,1427.89836,
+ -0.692067,-0.567965,0.445488,-727.278191,-506.200587,1427.89836,
+ -0.644814,-0.619901,0.447144,-561.560563,-561.560563,1614.76108,
+ -0.743689,-0.496917,0.447214,-660.325365,-441.215303,1614.76108,
+ -0.692067,-0.567965,0.445488,-727.278191,-506.200587,1427.89836,
+ -0.743689,-0.496917,0.447214,-660.325365,-441.215303,1614.76108,
+ -0.743689,-0.496917,0.447214,-738.010701,-493.122985,1427.89836,
+ 0.850126,-0.08373,0.51988,997.51935,0,2361.464898,
+ 0.819458,-0.135214,0.556961,916.376162,-182.278552,2455.64332,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ 0.819458,-0.135214,0.556961,916.376162,-182.278552,2455.64332,
+ 0.850126,-0.08373,0.51988,997.51935,0,2361.464898,
+ 0.827636,-0.081515,0.555314,925.063958,-94.069877,2455.64332,
+ 0.827636,-0.081515,0.555314,925.063958,-94.069877,2455.64332,
+ 0.850126,-0.08373,0.51988,997.51935,0,2361.464898,
+ 0.827636,-0.081515,0.555314,934.329033,0,2455.64332,
+ 0.091725,-0.593783,0.79938,-757.051053,-872.595836,2110.051763,
+ -0.079281,-0.419958,0.904074,-713.051374,-793.031289,2155.442781,
+ -0.164361,-0.334551,0.927934,-779.335772,-850.040945,2123.148196,
+ -0.079281,-0.419958,0.904074,-713.051374,-793.031289,2155.442781,
+ 0.091725,-0.593783,0.79938,-757.051053,-872.595836,2110.051763,
+ 0.005714,-0.4979,0.867215,-700.811797,-805.485643,2148.211628,
+ 0.005714,-0.4979,0.867215,-700.811797,-805.485643,2148.211628,
+ 0.091725,-0.593783,0.79938,-757.051053,-872.595836,2110.051763,
+ 0.113282,-0.616155,0.779436,-680.351355,-823.413171,2137.783955,
+ -0.453201,-0.045611,0.890241,-803.639077,-825.829444,2123.116588,
+ -0.617596,0.111962,0.778485,-780.975409,-732.347203,2135.633781,
+ -0.617596,0.111962,0.778485,-826.261008,-803.647314,2109.961752,
+ -0.617596,0.111962,0.778485,-780.975409,-732.347203,2135.633781,
+ -0.453201,-0.045611,0.890241,-803.639077,-825.829444,2123.116588,
+ -0.49905,0.004957,0.866559,-759.379832,-756.991889,2148.211628,
+ -0.49905,0.004957,0.866559,-759.379832,-756.991889,2148.211628,
+ -0.453201,-0.045611,0.890241,-803.639077,-825.829444,2123.116588,
+ -0.49905,0.004957,0.866559,-758.175253,-758.175253,2148.912113,
+ -0.49905,0.004957,0.866559,-758.175253,-758.175253,2148.912113,
+ -0.453201,-0.045611,0.890241,-803.639077,-825.829444,2123.116588,
+ -0.335138,-0.164419,0.927712,-750.226481,-763.163738,2153.518338,
+ -0.554824,-0.830073,0.056107,-471.799769,-706.098253,855.371869,
+ -0.704523,-0.704523,-0.085417,-599.277053,-599.277053,796.15315,
+ -0.551707,-0.826255,-0.113678,-470.848959,-704.675266,796.15315,
+ -0.704523,-0.704523,-0.085417,-599.277053,-599.277053,796.15315,
+ -0.554824,-0.830073,0.056107,-471.799769,-706.098253,855.371869,
+ -0.691243,-0.718915,0.073102,-600.487204,-600.487204,855.371869,
+ 0.169277,-0.85787,0.485186,194.606371,-978.352295,2361.464898,
+ -0.000913,-0.943512,0.331336,0,-1043.984543,2258.006804,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ -0.000913,-0.943512,0.331336,0,-1043.984543,2258.006804,
+ 0.169277,-0.85787,0.485186,194.606371,-978.352295,2361.464898,
+ -0.001338,-0.87441,0.485186,0,-997.51935,2361.464898,
+ -0.617596,0.111962,0.778485,-780.975409,-732.347203,2135.633781,
+ -0.776009,0.265205,0.572256,-843.757583,-786.871584,2085.686391,
+ -0.617596,0.111962,0.778485,-826.261008,-803.647314,2109.961752,
+ -0.776009,0.265205,0.572256,-843.757583,-786.871584,2085.686391,
+ -0.617596,0.111962,0.778485,-780.975409,-732.347203,2135.633781,
+ -0.825684,0.31192,0.470055,-804.422958,-708.167768,2102.551876,
+ -0.772331,-0.633831,-0.041995,-786.927339,-735.293322,2011.59251,
+ -0.704588,-0.704588,-0.084324,-761.145932,-761.145932,1969.694508,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.704588,-0.704588,-0.084324,-761.145932,-761.145932,1969.694508,
+ -0.772331,-0.633831,-0.041995,-786.927339,-735.293322,2011.59251,
+ -0.770284,-0.632155,-0.083921,-766.912924,-754.581509,1973.179733,
+ -0.770284,-0.632155,-0.083921,-766.912924,-754.581509,1973.179733,
+ -0.772331,-0.633831,-0.041995,-786.927339,-735.293322,2011.59251,
+ -0.770284,-0.632155,-0.083921,-781.308062,-739.778792,1993.802906,
+ -0.511487,-0.733787,0.447144,-441.215303,-660.325365,1614.76108,
+ -0.567965,-0.692067,0.445488,-540.907488,-698.794973,1427.89836,
+ -0.496917,-0.743689,0.447214,-493.122985,-738.010701,1427.89836,
+ -0.567965,-0.692067,0.445488,-540.907488,-698.794973,1427.89836,
+ -0.511487,-0.733787,0.447144,-441.215303,-660.325365,1614.76108,
+ -0.567965,-0.692067,0.445488,-610.198918,-641.928967,1427.89836,
+ -0.567965,-0.692067,0.445488,-610.198918,-641.928967,1427.89836,
+ -0.644814,-0.619901,0.447144,-561.560563,-561.560563,1614.76108,
+ -0.632456,-0.632456,0.447214,-627.626511,-627.626511,1427.89836,
+ -0.644814,-0.619901,0.447144,-561.560563,-561.560563,1614.76108,
+ -0.567965,-0.692067,0.445488,-610.198918,-641.928967,1427.89836,
+ -0.511487,-0.733787,0.447144,-441.215303,-660.325365,1614.76108,
+ -0.376813,-0.910916,-0.168059,-410.390874,-990.771213,1922.192772,
+ -0.523429,-0.785009,-0.331336,-580.006736,-868.041423,1812.397596,
+ -0.360223,-0.872041,-0.331336,-399.515588,-964.515951,1812.397596,
+ -0.523429,-0.785009,-0.331336,-580.006736,-868.041423,1812.397596,
+ -0.376813,-0.910916,-0.168059,-410.390874,-990.771213,1922.192772,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.382289,-0.923079,-0.0422,-413.286071,-997.760837,2011.592523,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.376813,-0.910916,-0.168059,-410.390874,-990.771213,1922.192772,
+ -0.567399,-0.80612,-0.168011,-595.795203,-891.670534,1922.192772,
+ -0.382289,-0.923079,-0.0422,-413.286071,-997.760837,2011.592523,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.376813,-0.910916,-0.168059,-410.390874,-990.771213,1922.192772,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ -0.376813,-0.910916,-0.168059,-410.390874,-990.771213,1922.192772,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.382289,-0.923079,-0.0422,-413.286071,-997.760837,2011.592523,
+ -0.171901,-0.857347,0.485186,-194.606371,-978.352295,2361.464898,
+ -0.36191,-0.871342,0.331336,-399.515588,-964.515951,2258.006804,
+ -0.184965,-0.925205,0.331336,-203.671281,-1023.924672,2258.006804,
+ -0.36191,-0.871342,0.331336,-399.515588,-964.515951,2258.006804,
+ -0.171901,-0.857347,0.485186,-194.606371,-978.352295,2361.464898,
+ -0.335858,-0.807337,0.485186,-381.734129,-921.587711,2361.464898,
+ -0.881921,-0.471397,-0,-731.773964,-406.167737,2549.07468,
+ -0.820367,-0.571838,-0,-699.168033,-467.169144,2455.64332,
+ -0.83147,-0.55557,-0,-699.168033,-467.169144,2549.07468,
+ -0.820367,-0.571838,-0,-699.168033,-467.169144,2455.64332,
+ -0.881921,-0.471397,-0,-731.773964,-406.167737,2549.07468,
+ -0.916164,-0.400805,-0,-776.873894,-321.791703,2455.64332,
+ -0.916164,-0.400805,-0,-776.873894,-321.791703,2455.64332,
+ -0.881921,-0.471397,-0,-731.773964,-406.167737,2549.07468,
+ -0.881921,-0.471397,-0,-771.834238,-331.220236,2549.07468,
+ -0.916164,-0.400805,-0,-776.873894,-321.791703,2455.64332,
+ -0.881921,-0.471397,-0,-771.834238,-331.220236,2549.07468,
+ -0.92388,-0.382683,-0,-776.873894,-321.791703,2549.07468,
+ -0.972323,-0.22681,0.056077,-832.899679,-165.674047,855.371869,
+ -0.918011,-0.379912,-0.113678,-782.993204,-324.326404,796.15315,
+ -0.909392,-0.412143,0.056077,-784.574342,-324.981333,855.371869,
+ -0.918011,-0.379912,-0.113678,-782.993204,-324.326404,796.15315,
+ -0.972323,-0.22681,0.056077,-832.899679,-165.674047,855.371869,
+ -0.974489,-0.193517,-0.113678,-831.221151,-165.340167,796.15315,
+ 0.147851,-0.963743,-0.222127,320.792433,-1019.675597,1941.793256,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.146136,-0.933668,-0.326969,349.642862,-1009.198921,1922.192772,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.147851,-0.963743,-0.222127,320.792433,-1019.675597,1941.793256,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.147851,-0.963743,-0.222127,320.792433,-1019.675597,1941.793256,
+ 0.117291,-0.984202,-0.132626,288.287532,-1033.56568,1987.582722,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.117291,-0.984202,-0.132626,288.287532,-1033.56568,1987.582722,
+ 0.146586,-0.98666,-0.07081,287.457755,-1035.930439,2011.592523,
+ 0.62118,-0.639379,0.453133,705.352697,-705.352697,2361.464898,
+ 0.598874,-0.72973,0.329915,653.750225,-807.521706,2258.006804,
+ 0.665498,-0.684813,0.29689,738.20855,-738.20855,2258.006804,
+ 0.598874,-0.72973,0.329915,653.750225,-807.521706,2258.006804,
+ 0.62118,-0.639379,0.453133,705.352697,-705.352697,2361.464898,
+ 0.579174,-0.705726,0.408054,653.750225,-795.278128,2279.181966,
+ 0.579174,-0.705726,0.408054,600.307509,-841.785968,2274.601344,
+ 0.51982,-0.710547,0.474247,554.192058,-829.407027,2361.464898,
+ 0.481686,-0.774776,0.409514,577.578294,-864.407003,2267.739328,
+ 0.51982,-0.710547,0.474247,554.192058,-829.407027,2361.464898,
+ 0.579174,-0.705726,0.408054,600.307509,-841.785968,2274.601344,
+ 0.579174,-0.705726,0.408054,653.750225,-795.278128,2279.181966,
+ 0.51982,-0.710547,0.474247,554.192058,-829.407027,2361.464898,
+ 0.579174,-0.705726,0.408054,653.750225,-795.278128,2279.181966,
+ 0.62118,-0.639379,0.453133,705.352697,-705.352697,2361.464898,
+ 0.720221,-0.432668,0.542292,-781.308062,-739.778792,1993.802906,
+ 0.803422,-0.523835,0.283037,-833.979694,-798.243508,2025.286671,
+ 0.720221,-0.432668,0.542292,-827.976635,-804.801338,2003.905378,
+ 0.803422,-0.523835,0.283037,-833.979694,-798.243508,2025.286671,
+ 0.720221,-0.432668,0.542292,-781.308062,-739.778792,1993.802906,
+ 0.780247,-0.502047,0.373046,-786.927339,-735.293322,2011.59251,
+ 0.803422,-0.523835,0.283037,-833.979694,-798.243508,2025.286671,
+ 0.780247,-0.502047,0.373046,-786.927339,-735.293322,2011.59251,
+ 0.82593,-0.549829,0.124608,-789.394717,-732.286733,2020.799449,
+ -0.032813,-0,-0.999462,-1.468161,-978.223928,2079.651519,
+ -0.098017,-0,-0.995185,0,-1078.217216,2079.506918,
+ 0.032813,-0,-0.999462,-1.468161,-1078.060378,2079.651519,
+ -0.098017,-0,-0.995185,0,-1078.217216,2079.506918,
+ -0.032813,-0,-0.999462,-1.468161,-978.223928,2079.651519,
+ -0.098017,-0,-0.995185,0,-978.377185,2079.506918,
+ -0.098017,-0,-0.995185,0,-1078.217216,2079.506918,
+ -0.098017,-0,-0.995185,0,-978.377185,2079.506918,
+ -0.162803,-0,-0.986659,7.311798,-977.700144,2078.786769,
+ -0.098017,-0,-0.995185,0,-1078.217216,2079.506918,
+ -0.162803,-0,-0.986659,7.311798,-977.700144,2078.786769,
+ -0.227168,0,-0.973856,7.311798,-1077.55801,2078.786769,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.748575,-0.61434,-0.249443,767.904941,-709.249312,1830.193918,
+ 0.684548,-0.684548,-0.250574,739.771122,-739.771122,1820.935228,
+ 0.748575,-0.61434,-0.249443,767.904941,-709.249312,1830.193918,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.748575,-0.61434,-0.249443,767.904941,-709.249312,1830.193918,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.748575,-0.61434,-0.249443,806.222013,-670.885845,1850.699619,
+ 0.748575,-0.61434,-0.249443,806.222013,-670.885845,1850.699619,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.748575,-0.61434,-0.249443,843.013698,-637.259985,1878.295649,
+ 0.748575,-0.61434,-0.249443,843.013698,-637.259985,1878.295649,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.748575,-0.61434,-0.249443,876.866113,-609.663955,1911.921509,
+ 0.748575,-0.61434,-0.249443,876.866113,-609.663955,1911.921509,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.75819,-0.62223,-0.19488,884.794356,-604.173851,1922.192772,
+ 0.75819,-0.62223,-0.19488,884.794356,-604.173851,1922.192772,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.832671,-0.532692,-0.151323,891.670534,-595.795203,1922.192772,
+ -0.592199,-0.097715,0.799845,-824.724927,-164.047988,914.026067,
+ -0.598955,-0.058992,0.798607,-654.019524,0,1054.17292,
+ -0.598955,-0.058992,0.798607,-840.882244,0,914.026067,
+ -0.598955,-0.058992,0.798607,-654.019524,0,1054.17292,
+ -0.592199,-0.097715,0.799845,-824.724927,-164.047988,914.026067,
+ -0.584514,-0.136347,0.799845,-641.452722,-127.592879,1054.17292,
+ -0.976104,-0.096138,-0.19488,-1072.403033,0,1922.192772,
+ -0.925561,-0.183175,-0.331336,-1023.924672,-203.671281,1812.397596,
+ -0.966926,-0.191862,-0.168059,-1051.797109,-209.215453,1922.192772,
+ -0.925561,-0.183175,-0.331336,-1023.924672,-203.671281,1812.397596,
+ -0.976104,-0.096138,-0.19488,-1072.403033,0,1922.192772,
+ -0.929871,-0.091584,-0.356303,-1043.984543,0,1812.397596,
+ -0.976856,-0.161185,0.140615,-824.724927,-164.047988,914.026067,
+ -0.993632,-0.097864,0.055838,-849.217148,0,855.371869,
+ -0.972323,-0.22681,0.056077,-832.899679,-165.674047,855.371869,
+ -0.993632,-0.097864,0.055838,-849.217148,0,855.371869,
+ -0.976856,-0.161185,0.140615,-824.724927,-164.047988,914.026067,
+ -0.98538,-0.097051,0.140025,-840.882244,0,914.026067,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ -0.000463,-0.985777,0.168059,0,-1072.403033,2148.211628,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ -0.000463,-0.985777,0.168059,0,-1072.403033,2148.211628,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ -0.000913,-0.943512,0.331336,0,-1043.984543,2258.006804,
+ 0.352162,-0.935939,0,321.791703,-776.873894,2549.07468,
+ 0.227168,-0.973856,0,164.047988,-824.724927,2455.64332,
+ 0.412792,-0.910825,0,321.791703,-776.873894,2455.64332,
+ 0.227168,-0.973856,0,164.047988,-824.724927,2455.64332,
+ 0.352162,-0.935939,0,321.791703,-776.873894,2549.07468,
+ 0.162803,-0.986659,0,164.047988,-824.724927,2549.07468,
+ 0,0,1,164.047988,-824.724927,2549.07468,
+ 0,0,1,321.791703,-776.873894,2549.07468,
+ 0,0,1,291.163503,-786.164857,2549.07468,
+ 0,0,1,164.047988,-824.724927,2549.07468,
+ 0,0,1,291.163503,-786.164857,2549.07468,
+ 0,0,1,209.932273,-810.806081,2549.07468,
+ 0,0.162803,0.986659,653.750225,-837.456927,1817.56657,
+ 0,0.049186,0.99879,180.675225,-794.166513,1813.302837,
+ 0,0.227168,0.973856,180.675225,-837.456927,1817.56657,
+ 0,0.049186,0.99879,180.675225,-794.166513,1813.302837,
+ 0,0.162803,0.986659,653.750225,-837.456927,1817.56657,
+ 0,0.098017,0.995185,653.750225,-808.286776,1814.693561,
+ 0,-0.032813,0.999462,670.391133,-794.166513,1813.302837,
+ 0,0.049186,0.99879,180.675225,-794.166513,1813.302837,
+ 0,0.098017,0.995185,653.750225,-808.286776,1814.693561,
+ 0,-0.812792,0.582554,876.866113,-609.663955,1911.921509,
+ 0,-0.707107,0.707107,180.675225,-637.259985,1878.295649,
+ 0,-0.707107,0.707107,843.013698,-637.259985,1878.295649,
+ 0,-0.707107,0.707107,180.675225,-637.259985,1878.295649,
+ 0,-0.812792,0.582554,876.866113,-609.663955,1911.921509,
+ -0,-0.849252,0.527988,180.675225,-609.663955,1911.921509,
+ -0.438107,-0.410255,0.799845,-594.593537,-594.593537,914.026067,
+ -0.487843,-0.349653,0.799845,-543.79736,-363.353779,1054.17292,
+ -0.509726,-0.316902,0.799845,-699.168033,-467.169144,914.026067,
+ -0.487843,-0.349653,0.799845,-543.79736,-363.353779,1054.17292,
+ -0.438107,-0.410255,0.799845,-594.593537,-594.593537,914.026067,
+ -0.410255,-0.438107,0.799845,-462.46164,-462.46164,1054.17292,
+ 0.19509,-0,-0.980785,-10.248119,-977.410942,2078.786769,
+ 0.382683,-0,-0.92388,-18.690668,-1076.654017,2076.225749,
+ 0.382683,0,-0.92388,-18.690668,-976.732727,2076.225749,
+ 0.382683,-0,-0.92388,-18.690668,-1076.654017,2076.225749,
+ 0.19509,-0,-0.980785,-10.248119,-977.410942,2078.786769,
+ 0.19509,-0,-0.980785,-10.248119,-1077.268807,2078.786769,
+ 0,-0.973856,-0.227168,908.625264,-576.530907,2078.49259,
+ 0,-0.92388,-0.382683,180.675225,-589.158255,2120.119378,
+ 0,-0.989194,-0.146613,180.675225,-576.530907,2078.49259,
+ 0,-0.92388,-0.382683,180.675225,-589.158255,2120.119378,
+ 0,-0.973856,-0.227168,908.625264,-576.530907,2078.49259,
+ 0,-0.92388,-0.382683,897.900698,-589.158255,2120.119378,
+ 0.679334,-0.678235,-0.280182,590.997993,-590.997993,738.078199,
+ 0.826255,-0.551707,-0.113678,704.675266,-470.848959,796.15315,
+ 0.702746,-0.7023,-0.113678,599.277053,-599.277053,796.15315,
+ 0.826255,-0.551707,-0.113678,704.675266,-470.848959,796.15315,
+ 0.679334,-0.678235,-0.280182,590.997993,-590.997993,738.078199,
+ 0.798598,-0.532672,-0.280182,694.940121,-464.344144,738.078199,
+ -0.882589,-0.145631,0.447021,-733.088824,-145.820434,1427.89836,
+ -0.890977,-0.087754,0.445488,-840.882244,0,1241.03564,
+ -0.871137,-0.203207,0.447021,-824.724927,-164.047988,1241.03564,
+ -0.890977,-0.087754,0.445488,-840.882244,0,1241.03564,
+ -0.882589,-0.145631,0.447021,-733.088824,-145.820434,1427.89836,
+ -0.890977,-0.087754,0.445488,-747.450884,0,1427.89836,
+ 0,-0.973856,0.227168,908.62526,-576.530907,1991.911763,
+ 0,-0.916164,0.400805,180.675225,-589.158255,1950.284976,
+ 0,-0.92388,0.382683,897.900693,-589.158255,1950.284976,
+ 0,-0.916164,0.400805,180.675225,-589.158255,1950.284976,
+ 0,-0.973856,0.227168,908.62526,-576.530907,1991.911763,
+ -0,-0.986659,0.162803,180.675225,-576.530907,1991.911763,
+ -0.349653,-0.487843,0.799845,-467.169144,-699.168033,914.026067,
+ -0.410255,-0.438107,0.799845,-462.46164,-462.46164,1054.17292,
+ -0.438107,-0.410255,0.799845,-594.593537,-594.593537,914.026067,
+ -0.410255,-0.438107,0.799845,-462.46164,-462.46164,1054.17292,
+ -0.349653,-0.487843,0.799845,-467.169144,-699.168033,914.026067,
+ -0.316902,-0.509726,0.799845,-363.353779,-543.79736,1054.17292,
+ 0,-0.999462,0.032813,180.675225,-705.406768,2035.202177,
+ 0,-0.986659,0.162803,104.493585,-707.112263,2017.886024,
+ 0,-0.973856,0.227168,180.675225,-707.112262,2017.886009,
+ 0,-0.986659,0.162803,104.493585,-707.112263,2017.886024,
+ 0,-0.999462,0.032813,180.675225,-705.406768,2035.202177,
+ -0,-0.999462,-0.032813,104.493583,-705.406768,2035.2022,
+ -0.637426,0.090042,-0.765232,-781.354664,-731.718944,1933.517963,
+ -0.475897,-0.070701,-0.876654,-805.854069,-828.277941,1950.684188,
+ -0.637426,0.090042,-0.765232,-828.138788,-805.72305,1963.780621,
+ -0.475897,-0.070701,-0.876654,-805.854069,-828.277941,1950.684188,
+ -0.637426,0.090042,-0.765232,-781.354664,-731.718944,1933.517963,
+ -0.521142,-0.019464,-0.853248,-761.987077,-753.814953,1922.192772,
+ -0.475897,-0.070701,-0.876654,-805.854069,-828.277941,1950.684188,
+ -0.521142,-0.019464,-0.853248,-761.987077,-753.814953,1922.192772,
+ -0.521142,-0.019464,-0.853248,-757.858868,-757.858868,1919.763614,
+ -0.475897,-0.070701,-0.876654,-805.854069,-828.277941,1950.684188,
+ -0.521142,-0.019464,-0.853248,-757.858868,-757.858868,1919.763614,
+ -0.358793,-0.190568,-0.913757,-750.03201,-762.726244,1915.0942,
+ 0.749001,-0.123588,-0.65094,731.120069,-145.428824,587.016307,
+ 0.792149,-0.07802,-0.60532,784.019466,0,631.979457,
+ 0.787008,-0.166056,-0.594175,768.954752,-152.95461,631.979457,
+ 0.792149,-0.07802,-0.60532,784.019466,0,631.979457,
+ 0.749001,-0.123588,-0.65094,731.120069,-145.428824,587.016307,
+ 0.756844,-0.074543,-0.649331,745.443558,0,587.016307,
+ 1,0,0,180.675225,-1011.80212,1991.911763,
+ 1,0,0,180.675225,-1011.80212,2078.49259,
+ 1,0,0,180.675225,-1016.065853,2035.202177,
+ 1,0,0,180.675225,-1011.80212,2078.49259,
+ 1,0,0,180.675225,-1011.80212,1991.911763,
+ 1,0,0,180.675225,-999.174772,1950.284976,
+ 1,0,0,180.675225,-1011.80212,2078.49259,
+ 1,0,0,180.675225,-999.174772,1950.284976,
+ 1,0,0,180.675225,-999.174772,2120.119378,
+ 1,0,0,180.675225,-999.174772,2120.119378,
+ 1,0,0,180.675225,-999.174772,1950.284976,
+ 1,0,0,180.675225,-978.669071,1911.921509,
+ 1,0,0,180.675225,-999.174772,2120.119378,
+ 1,0,0,180.675225,-978.669071,1911.921509,
+ 1,0,0,180.675225,-978.669071,2158.482845,
+ 1,0,0,180.675225,-978.669071,2158.482845,
+ 1,0,0,180.675225,-978.669071,1911.921509,
+ 1,0,0,180.675225,-951.073041,1878.295649,
+ 1,0,0,180.675225,-978.669071,2158.482845,
+ 1,0,0,180.675225,-951.073041,1878.295649,
+ 1,0,0,180.675225,-951.073041,2192.108705,
+ 1,0,0,180.675225,-951.073041,2192.108705,
+ 1,0,0,180.675225,-951.073041,1878.295649,
+ 1,0,0,180.675225,-917.447181,1850.699619,
+ 1,0,0,180.675225,-951.073041,2192.108705,
+ 1,0,0,180.675225,-917.447181,1850.699619,
+ 1,0,0,180.675225,-917.447181,2219.704735,
+ 1,0,0,180.675225,-917.447181,2219.704735,
+ 1,0,0,180.675225,-917.447181,1850.699619,
+ 1,0,0,180.675225,-879.083714,1830.193918,
+ 1,0,0,180.675225,-917.447181,2219.704735,
+ 1,0,0,180.675225,-879.083714,1830.193918,
+ 1,0,0,180.675225,-882.926259,2035.202177,
+ 1,0,0,180.675225,-882.926259,2035.202177,
+ 1,0,0,180.675225,-879.083714,1830.193918,
+ 1,0,0,180.675225,-881.220765,2017.886009,
+ 1,0,0,180.675225,-881.220765,2017.886009,
+ 1,0,0,180.675225,-879.083714,1830.193918,
+ 1,0,0,180.675225,-876.169825,2001.235293,
+ 1,0,0,180.675225,-876.169825,2001.235293,
+ 1,0,0,180.675225,-879.083714,1830.193918,
+ 1,0,0,180.675225,-837.456927,1817.56657,
+ 1,0,0,180.675225,-876.169825,2001.235293,
+ 1,0,0,180.675225,-837.456927,1817.56657,
+ 1,0,0,180.675225,-867.967544,1985.889904,
+ 1,0,0,180.675225,-867.967544,1985.889904,
+ 1,0,0,180.675225,-837.456927,1817.56657,
+ 1,0,0,180.675225,-856.929131,1972.439559,
+ 1,0,0,180.675225,-856.929131,1972.439559,
+ 1,0,0,180.675225,-837.456927,1817.56657,
+ 1,0,0,180.675225,-843.478786,1961.401146,
+ 1,0,0,180.675225,-843.478786,1961.401146,
+ 1,0,0,180.675225,-837.456927,1817.56657,
+ 1,0,0,180.675225,-828.133397,1953.198865,
+ 1,0,0,180.675225,-828.133397,1953.198865,
+ 1,0,0,180.675225,-837.456927,1817.56657,
+ 1,0,0,180.675225,-794.166513,1813.302837,
+ 1,0,0,180.675225,-828.133397,1953.198865,
+ 1,0,0,180.675225,-794.166513,1813.302837,
+ 1,0,0,180.675225,-811.482681,1948.147925,
+ 1,0,0,180.675225,-811.482681,1948.147925,
+ 1,0,0,180.675225,-794.166513,1813.302837,
+ 1,0,0,180.675225,-794.166513,1946.442431,
+ 1,0,0,180.675225,-794.166513,1946.442431,
+ 1,0,0,180.675225,-794.166513,1813.302837,
+ 1,0,0,180.675225,-750.8761,1817.56657,
+ 1,0,0,180.675225,-794.166513,1946.442431,
+ 1,0,0,180.675225,-750.8761,1817.56657,
+ 1,0,0,180.675225,-776.850346,1948.147925,
+ 1,0,0,180.675225,-776.850346,1948.147925,
+ 1,0,0,180.675225,-750.8761,1817.56657,
+ 1,0,0,180.675225,-760.199629,1953.198865,
+ 1,0,0,180.675225,-760.199629,1953.198865,
+ 1,0,0,180.675225,-750.8761,1817.56657,
+ 1,0,0,180.675225,-744.854241,1961.401146,
+ 1,0,0,180.675225,-744.854241,1961.401146,
+ 1,0,0,180.675225,-750.8761,1817.56657,
+ 1,0,0,180.675225,-709.249312,1830.193918,
+ 1,0,0,180.675225,-744.854241,1961.401146,
+ 1,0,0,180.675225,-709.249312,1830.193918,
+ 1,0,0,180.675225,-731.403895,1972.439559,
+ 1,0,0,180.675225,-731.403895,1972.439559,
+ 1,0,0,180.675225,-709.249312,1830.193918,
+ 1,0,0,180.675225,-720.365482,1985.889904,
+ 1,0,0,180.675225,-720.365482,1985.889904,
+ 1,0,0,180.675225,-709.249312,1830.193918,
+ 1,0,0,180.675225,-712.163201,2001.235293,
+ 1,0,0,180.675225,-712.163201,2001.235293,
+ 1,0,0,180.675225,-709.249312,1830.193918,
+ 1,0,0,180.675225,-707.112262,2017.886009,
+ 1,0,0,180.675225,-707.112262,2017.886009,
+ 1,0,0,180.675225,-709.249312,1830.193918,
+ 1,0,0,180.675225,-670.885845,1850.699619,
+ 1,0,0,180.675225,-707.112262,2017.886009,
+ 1,0,0,180.675225,-670.885845,1850.699619,
+ 1,0,0,180.675225,-705.406768,2035.202177,
+ 1,0,0,180.675225,-882.926259,2035.202177,
+ 1,0,0,180.675225,-879.083714,2240.210435,
+ 1,0,0,180.675225,-917.447181,2219.704735,
+ 1,0,0,180.675225,-879.083714,2240.210435,
+ 1,0,0,180.675225,-882.926259,2035.202177,
+ 1,0,0,180.675225,-881.220765,2052.518344,
+ 1,0,0,180.675225,-879.083714,2240.210435,
+ 1,0,0,180.675225,-881.220765,2052.518344,
+ 1,0,0,180.675225,-876.169825,2069.169061,
+ 1,0,0,180.675225,-879.083714,2240.210435,
+ 1,0,0,180.675225,-876.169825,2069.169061,
+ 1,0,0,180.675225,-837.456927,2252.837783,
+ 1,0,0,180.675225,-837.456927,2252.837783,
+ 1,0,0,180.675225,-876.169825,2069.169061,
+ 1,0,0,180.675225,-867.967544,2084.514449,
+ 1,0,0,180.675225,-837.456927,2252.837783,
+ 1,0,0,180.675225,-867.967544,2084.514449,
+ 1,0,0,180.675225,-856.929131,2097.964794,
+ 1,0,0,180.675225,-837.456927,2252.837783,
+ 1,0,0,180.675225,-856.929131,2097.964794,
+ 1,0,0,180.675225,-843.478786,2109.003208,
+ 1,0,0,180.675225,-837.456927,2252.837783,
+ 1,0,0,180.675225,-843.478786,2109.003208,
+ 1,0,0,180.675225,-828.133397,2117.205489,
+ 1,0,0,180.675225,-837.456927,2252.837783,
+ 1,0,0,180.675225,-828.133397,2117.205489,
+ 1,0,0,180.675225,-794.166513,2257.101517,
+ 1,0,0,180.675225,-794.166513,2257.101517,
+ 1,0,0,180.675225,-828.133397,2117.205489,
+ 1,0,0,180.675225,-811.482681,2122.256428,
+ 1,0,0,180.675225,-794.166513,2257.101517,
+ 1,0,0,180.675225,-811.482681,2122.256428,
+ 1,0,0,180.675225,-794.166513,2123.961922,
+ 1,0,0,180.675225,-794.166513,2257.101517,
+ 1,0,0,180.675225,-794.166513,2123.961922,
+ 1,0,0,180.675225,-776.850346,2122.256428,
+ 1,0,0,180.675225,-794.166513,2257.101517,
+ 1,0,0,180.675225,-776.850346,2122.256428,
+ 1,0,0,180.675225,-750.8761,2252.837783,
+ 1,0,0,180.675225,-750.8761,2252.837783,
+ 1,0,0,180.675225,-776.850346,2122.256428,
+ 1,0,0,180.675225,-760.199629,2117.205489,
+ 1,0,0,180.675225,-750.8761,2252.837783,
+ 1,0,0,180.675225,-760.199629,2117.205489,
+ 1,0,0,180.675225,-744.854241,2109.003208,
+ 1,0,0,180.675225,-750.8761,2252.837783,
+ 1,0,0,180.675225,-744.854241,2109.003208,
+ 1,0,0,180.675225,-709.249312,2240.210435,
+ 1,0,0,180.675225,-709.249312,2240.210435,
+ 1,0,0,180.675225,-744.854241,2109.003208,
+ 1,0,0,180.675225,-731.403895,2097.964794,
+ 1,0,0,180.675225,-709.249312,2240.210435,
+ 1,0,0,180.675225,-731.403895,2097.964794,
+ 1,0,0,180.675225,-720.365482,2084.514449,
+ 1,0,0,180.675225,-709.249312,2240.210435,
+ 1,0,0,180.675225,-720.365482,2084.514449,
+ 1,0,0,180.675225,-712.163201,2069.169061,
+ 1,0,0,180.675225,-709.249312,2240.210435,
+ 1,0,0,180.675225,-712.163201,2069.169061,
+ 1,0,0,180.675225,-707.112262,2052.518344,
+ 1,0,0,180.675225,-709.249312,2240.210435,
+ 1,0,0,180.675225,-707.112262,2052.518344,
+ 1,0,0,180.675225,-670.885845,2219.704735,
+ 1,0,0,180.675225,-670.885845,2219.704735,
+ 1,0,0,180.675225,-707.112262,2052.518344,
+ 1,0,0,180.675225,-705.406768,2035.202177,
+ 1,0,0,180.675225,-670.885845,2219.704735,
+ 1,0,0,180.675225,-705.406768,2035.202177,
+ 1,0,0,180.675225,-670.885845,1850.699619,
+ 1,0,0,180.675225,-670.885845,2219.704735,
+ 1,0,0,180.675225,-670.885845,1850.699619,
+ 1,0,0,180.675225,-637.259985,1878.295649,
+ 1,0,0,180.675225,-670.885845,2219.704735,
+ 1,0,0,180.675225,-637.259985,1878.295649,
+ 1,0,0,180.675225,-637.259985,2192.108705,
+ 1,0,0,180.675225,-637.259985,2192.108705,
+ 1,0,0,180.675225,-637.259985,1878.295649,
+ 1,0,0,180.675225,-609.663955,1911.921509,
+ 1,0,0,180.675225,-637.259985,2192.108705,
+ 1,0,0,180.675225,-609.663955,1911.921509,
+ 1,0,0,180.675225,-609.663955,2158.482845,
+ 1,0,0,180.675225,-609.663955,2158.482845,
+ 1,0,0,180.675225,-609.663955,1911.921509,
+ 1,0,0,180.675225,-589.158255,1950.284976,
+ 1,0,0,180.675225,-609.663955,2158.482845,
+ 1,0,0,180.675225,-589.158255,1950.284976,
+ 1,0,0,180.675225,-589.158255,2120.119378,
+ 1,0,0,180.675225,-589.158255,2120.119378,
+ 1,0,0,180.675225,-589.158255,1950.284976,
+ 1,0,0,180.675225,-576.530907,1991.911763,
+ 1,0,0,180.675225,-589.158255,2120.119378,
+ 1,0,0,180.675225,-576.530907,1991.911763,
+ 1,0,0,180.675225,-576.530907,2078.49259,
+ 1,0,0,180.675225,-576.530907,2078.49259,
+ 1,0,0,180.675225,-576.530907,1991.911763,
+ 1,0,0,180.675225,-572.267173,2035.202177,
+ -0.796215,-0.15672,-0.584364,-768.954752,-152.95461,631.979457,
+ -0.710498,-0.267337,-0.65094,-688.700045,-285.268899,587.016307,
+ -0.750341,-0.309043,-0.584364,-724.339538,-300.03126,631.979457,
+ -0.710498,-0.267337,-0.65094,-688.700045,-285.268899,587.016307,
+ -0.796215,-0.15672,-0.584364,-768.954752,-152.95461,631.979457,
+ -0.749001,-0.123588,-0.65094,-731.120069,-145.428824,587.016307,
+ -0.881651,-0.17413,-0.438601,-798.780783,-158.887376,682.822311,
+ -0.750341,-0.309043,-0.584364,-724.339538,-300.03126,631.979457,
+ -0.830739,-0.342785,-0.438601,-752.435044,-311.6688,682.822311,
+ -0.750341,-0.309043,-0.584364,-724.339538,-300.03126,631.979457,
+ -0.881651,-0.17413,-0.438601,-798.780783,-158.887376,682.822311,
+ -0.796215,-0.15672,-0.584364,-768.954752,-152.95461,631.979457,
+ -0.941653,-0.186514,-0.280182,-819.737765,-163.055979,738.078199,
+ -0.830739,-0.342785,-0.438601,-752.435044,-311.6688,682.822311,
+ -0.887172,-0.366638,-0.280182,-772.17609,-319.845809,738.078199,
+ -0.830739,-0.342785,-0.438601,-752.435044,-311.6688,682.822311,
+ -0.941653,-0.186514,-0.280182,-819.737765,-163.055979,738.078199,
+ -0.881651,-0.17413,-0.438601,-798.780783,-158.887376,682.822311,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.972989,-0.226965,-0.042178,1059.217255,-210.691412,2011.592523,
+ 0.91563,-0.400602,-0.033753,997.760837,-413.286071,2011.592523,
+ 0.972989,-0.226965,-0.042178,1059.217255,-210.691412,2011.592523,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.966926,-0.191862,-0.168059,1051.797109,-209.215453,1922.192772,
+ -0.184965,-0.925205,0.331336,-203.671281,-1023.924672,2258.006804,
+ -0.377668,-0.910562,0.168059,-410.390874,-990.771213,2148.211628,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.377668,-0.910562,0.168059,-410.390874,-990.771213,2148.211628,
+ -0.184965,-0.925205,0.331336,-203.671281,-1023.924672,2258.006804,
+ -0.36191,-0.871342,0.331336,-399.515588,-964.515951,2258.006804,
+ -0.194936,-0.97921,0.056107,-165.674047,-832.899679,855.371869,
+ -0.379912,-0.918011,-0.113678,-324.326404,-782.993204,796.15315,
+ -0.193517,-0.974489,-0.113678,-165.340167,-831.221151,796.15315,
+ -0.379912,-0.918011,-0.113678,-324.326404,-782.993204,796.15315,
+ -0.194936,-0.97921,0.056107,-165.674047,-832.899679,855.371869,
+ -0.382224,-0.922365,0.056107,-324.981333,-784.574342,855.371869,
+ -0.972989,-0.226965,0.042178,-1059.217255,-210.691412,2058.811877,
+ -0.923079,-0.382289,-0.0422,-997.760837,-413.286071,2011.592523,
+ -0.910015,-0.412425,0.042178,-997.760837,-413.286071,2058.811877,
+ -0.923079,-0.382289,-0.0422,-997.760837,-413.286071,2011.592523,
+ -0.972989,-0.226965,0.042178,-1059.217255,-210.691412,2058.811877,
+ -0.979923,-0.19486,-0.0422,-1059.217255,-210.691412,2011.592523,
+ -0.979923,-0.19486,-0.0422,-1059.217255,-210.691412,2011.592523,
+ -0.910916,-0.376813,-0.168059,-990.771213,-410.390874,1922.192772,
+ -0.923079,-0.382289,-0.0422,-997.760837,-413.286071,2011.592523,
+ -0.910916,-0.376813,-0.168059,-990.771213,-410.390874,1922.192772,
+ -0.979923,-0.19486,-0.0422,-1059.217255,-210.691412,2011.592523,
+ -0.966926,-0.191862,-0.168059,-1051.797109,-209.215453,1922.192772,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.929871,-0.091584,-0.356303,1043.984543,0,1812.397596,
+ 0.925561,-0.183175,-0.331336,1023.924672,-203.671281,1812.397596,
+ 0.929871,-0.091584,-0.356303,1043.984543,0,1812.397596,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.850126,-0.08373,-0.51988,997.51935,0,1708.939502,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ -0.360223,-0.872041,-0.331336,-399.515588,-964.515951,1812.397596,
+ -0.183175,-0.925561,-0.331336,-203.671281,-1023.924672,1812.397596,
+ -0.360223,-0.872041,-0.331336,-399.515588,-964.515951,1812.397596,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ -0.376813,-0.910916,-0.168059,-410.390874,-990.771213,1922.192772,
+ 0.925561,-0.183175,0.331336,1023.924672,-203.671281,2258.006804,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ 0.872041,-0.360223,0.331336,964.515951,-399.515588,2258.006804,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ 0.925561,-0.183175,0.331336,1023.924672,-203.671281,2258.006804,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ -0.900096,0.367041,-0.234753,-853.905696,-778.543243,2019.687273,
+ -0.837602,0.298772,-0.457337,-804.883918,-707.527533,1967.257586,
+ -0.790546,0.249135,-0.559436,-845.012276,-788.258547,1988.011282,
+ -0.837602,0.298772,-0.457337,-804.883918,-707.527533,1967.257586,
+ -0.900096,0.367041,-0.234753,-853.905696,-778.543243,2019.687273,
+ -0.915533,0.385671,-0.11427,-818.480102,-696.846173,2011.592491,
+ -0.561756,-0.21137,0.799845,-776.873894,-321.791703,914.026067,
+ -0.584514,-0.136347,0.799845,-641.452722,-127.592879,1054.17292,
+ -0.592199,-0.097715,0.799845,-824.724927,-164.047988,914.026067,
+ -0.584514,-0.136347,0.799845,-641.452722,-127.592879,1054.17292,
+ -0.561756,-0.21137,0.799845,-776.873894,-321.791703,914.026067,
+ -0.546683,-0.247761,0.799845,-604.235252,-250.282436,1054.17292,
+ 0.014463,-0.987633,-0.156114,0,-1072.403033,1922.192772,
+ -0.183175,-0.925561,-0.331336,-203.671281,-1023.924672,1812.397596,
+ 0.000913,-0.943512,-0.331336,0,-1043.984543,1812.397596,
+ -0.183175,-0.925561,-0.331336,-203.671281,-1023.924672,1812.397596,
+ 0.014463,-0.987633,-0.156114,0,-1072.403033,1922.192772,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ 0,-0.903939,-0.427662,653.750225,-1019.675597,1941.793256,
+ 0.115001,-0.89802,-0.424659,369.41032,-997.119327,1899.593442,
+ 0,-0.812792,-0.582554,653.750225,-997.119327,1899.593442,
+ 0.115001,-0.89802,-0.424659,369.41032,-997.119327,1899.593442,
+ 0,-0.903939,-0.427662,653.750225,-1019.675597,1941.793256,
+ 0.146136,-0.933668,-0.326969,349.642862,-1009.198921,1922.192772,
+ 0.146136,-0.933668,-0.326969,349.642862,-1009.198921,1922.192772,
+ 0,-0.903939,-0.427662,653.750225,-1019.675597,1941.793256,
+ 0.147851,-0.963743,-0.222127,320.792433,-1019.675597,1941.793256,
+ 0.972989,-0.226965,-0.042178,1059.217255,-210.691412,2011.592523,
+ 0.923514,-0.382532,0.028131,997.760837,-413.286071,2058.811877,
+ 0.91563,-0.400602,-0.033753,997.760837,-413.286071,2011.592523,
+ 0.923514,-0.382532,0.028131,997.760837,-413.286071,2058.811877,
+ 0.972989,-0.226965,-0.042178,1059.217255,-210.691412,2011.592523,
+ 0.979923,-0.19486,0.0422,1059.217255,-210.691412,2058.811877,
+ -0.985217,-0.097035,-0.141176,-847.505736,0,796.15315,
+ -0.941653,-0.186514,-0.280182,-819.737765,-163.055979,738.078199,
+ -0.974489,-0.193517,-0.113678,-831.221151,-165.340167,796.15315,
+ -0.941653,-0.186514,-0.280182,-819.737765,-163.055979,738.078199,
+ -0.985217,-0.097035,-0.141176,-847.505736,0,796.15315,
+ -0.947451,-0.093316,-0.305988,-835.797377,0,738.078199,
+ 0.135214,-0.819458,0.556961,182.278552,-916.376162,2455.64332,
+ -0.001338,-0.87441,0.485186,0,-997.51935,2361.464898,
+ 0.169277,-0.85787,0.485186,194.606371,-978.352295,2361.464898,
+ -0.001338,-0.87441,0.485186,0,-997.51935,2361.464898,
+ 0.135214,-0.819458,0.556961,182.278552,-916.376162,2455.64332,
+ -0.027252,-0.830091,0.556961,0,-934.329033,2455.64332,
+ 0,0,-1,0,-934.329033,2455.64332,
+ 0,0,-1,182.278552,-916.376162,2455.64332,
+ 0,0,-1,141.006388,-920.441116,2455.64332,
+ 0,0,1,0,-934.329033,2455.64332,
+ 0,0,1,141.006388,-920.441116,2455.64332,
+ 0,0,1,47.148335,-929.685327,2455.64332,
+ -0.849252,-0,-0.527988,35.951781,-1076.356667,2059.650143,
+ -0.903939,-0,-0.427662,40.110651,-1076.017993,2051.869445,
+ -0.881921,-0,-0.471397,36.399844,-1076.383476,2058.811877,
+ -0.903939,-0,-0.427662,40.110651,-1076.017993,2051.869445,
+ -0.849252,-0,-0.527988,35.951781,-1076.356667,2059.650143,
+ -0.83147,0,-0.55557,35.951781,-976.024878,2059.650143,
+ -0.903939,-0,-0.427662,40.110651,-1076.017993,2051.869445,
+ -0.83147,0,-0.55557,35.951781,-976.024878,2059.650143,
+ -0.935939,0,-0.352162,40.110651,-976.081021,2051.869445,
+ 0.19509,-0,-0.980785,-10.248119,-977.410942,2078.786769,
+ 0.032813,-0,-0.999462,-1.468161,-1078.060378,2079.651519,
+ 0.19509,-0,-0.980785,-10.248119,-1077.268807,2078.786769,
+ 0.032813,-0,-0.999462,-1.468161,-1078.060378,2079.651519,
+ 0.19509,-0,-0.980785,-10.248119,-977.410942,2078.786769,
+ -0.032813,-0,-0.999462,-1.468161,-978.223928,2079.651519,
+ 0,-0.881921,0.471397,884.794356,-604.173851,1922.192772,
+ -0,-0.849252,0.527988,180.675225,-609.663955,1911.921509,
+ 0,-0.812792,0.582554,876.866113,-609.663955,1911.921509,
+ -0,-0.849252,0.527988,180.675225,-609.663955,1911.921509,
+ 0,-0.881921,0.471397,884.794356,-604.173851,1922.192772,
+ 0,-0.916164,0.400805,180.675225,-589.158255,1950.284976,
+ 0,-0.916164,0.400805,180.675225,-589.158255,1950.284976,
+ 0,-0.881921,0.471397,884.794356,-604.173851,1922.192772,
+ 0,-0.881921,0.471397,892.684335,-596.472603,1936.600792,
+ 0,-0.916164,0.400805,180.675225,-589.158255,1950.284976,
+ 0,-0.881921,0.471397,892.684335,-596.472603,1936.600792,
+ 0,-0.92388,0.382683,897.900693,-589.158255,1950.284976,
+ -0.436098,0.719283,0.540788,-758.060123,-874.453748,2003.996308,
+ -0.278983,0.56848,0.77395,-702.965588,-809.153242,1972.08037,
+ -0.201549,0.493286,0.846195,-769.870311,-863.13013,1987.610439,
+ -0.278983,0.56848,0.77395,-702.965588,-809.153242,1972.08037,
+ -0.436098,0.719283,0.540788,-758.060123,-874.453748,2003.996308,
+ -0.436098,0.719283,0.540788,-687.957453,-823.760435,1993.102587,
+ 0.37075,-0.899004,-0.2331,-643.970452,-861.831591,2011.202527,
+ 0.302536,-0.83706,-0.455854,-741.432258,-891.447302,1988.145993,
+ 0.252855,-0.790324,-0.558079,-654.791104,-848.015122,1965.894902,
+ 0.302536,-0.83706,-0.455854,-741.432258,-891.447302,1988.145993,
+ 0.37075,-0.899004,-0.2331,-643.970452,-861.831591,2011.202527,
+ 0.392989,-0.915858,-0.082244,-731.724734,-900.26268,2019.846175,
+ 0,0.999462,0.032813,180.675225,-1016.065853,2035.202177,
+ 0,0.986659,0.162803,653.750225,-1011.80212,1991.911763,
+ 0,0.973856,0.227168,180.675225,-1011.80212,1991.911763,
+ 0,0.986659,0.162803,653.750225,-1011.80212,1991.911763,
+ 0,0.999462,0.032813,180.675225,-1016.065853,2035.202177,
+ 0,0.999462,-0.032813,653.750225,-1016.065853,2035.202177,
+ 0.679334,-0.678235,-0.280182,590.997993,-590.997993,738.078199,
+ 0.500293,-0.746549,-0.438601,452.472967,-677.173649,682.822311,
+ 0.636324,-0.634602,-0.438601,575.888851,-575.888851,682.822311,
+ 0.500293,-0.746549,-0.438601,452.472967,-677.173649,682.822311,
+ 0.679334,-0.678235,-0.280182,590.997993,-590.997993,738.078199,
+ 0.533964,-0.797735,-0.280182,464.344144,-694.940121,738.078199,
+ 0.966926,-0.191862,0.168059,1051.797109,-209.215453,2148.211628,
+ 0.872041,-0.360223,0.331336,964.515951,-399.515588,2258.006804,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.872041,-0.360223,0.331336,964.515951,-399.515588,2258.006804,
+ 0.966926,-0.191862,0.168059,1051.797109,-209.215453,2148.211628,
+ 0.925561,-0.183175,0.331336,1023.924672,-203.671281,2258.006804,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-878.796251,-89.364884,1427.89836,
+ 0,0,-1,-887.597924,0,1427.89836,
+ 0,0,-1,-878.796251,-89.364884,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-870.542978,-173.161765,1427.89836,
+ 0,0,-1,-870.542978,-173.161765,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-868.904109,-178.564394,1427.89836,
+ 0,0,-1,-868.904109,-178.564394,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-842.852042,-264.446548,1427.89836,
+ 0,0,-1,-842.852042,-264.446548,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-820.033555,-339.66902,1427.89836,
+ 0,0,-1,-820.033555,-339.66902,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-814.713927,-349.621343,1427.89836,
+ 0,0,-1,-814.713927,-349.621343,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-772.428086,-428.732587,1427.89836,
+ 0,0,-1,-772.428086,-428.732587,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-738.010701,-493.122985,1427.89836,
+ 0,0,-1,-738.010701,-493.122985,1427.89836,
+ 0,0,-1,-747.450884,0,1427.89836,
+ 0,0,-1,-733.088824,-145.820434,1427.89836,
+ 0,0,-1,-738.010701,-493.122985,1427.89836,
+ 0,0,-1,-733.088824,-145.820434,1427.89836,
+ 0,0,-1,-727.278191,-506.200587,1427.89836,
+ 0,0,-1,-727.278191,-506.200587,1427.89836,
+ 0,0,-1,-733.088824,-145.820434,1427.89836,
+ 0,0,-1,-690.554573,-286.03707,1427.89836,
+ 0,0,-1,-727.278191,-506.200587,1427.89836,
+ 0,0,-1,-690.554573,-286.03707,1427.89836,
+ 0,0,-1,-670.393897,-575.514299,1427.89836,
+ 0,0,-1,-670.393897,-575.514299,1427.89836,
+ 0,0,-1,-690.554573,-286.03707,1427.89836,
+ 0,0,-1,-621.482696,-415.261462,1427.89836,
+ 0,0,-1,-670.393897,-575.514299,1427.89836,
+ 0,0,-1,-621.482696,-415.261462,1427.89836,
+ 0,0,-1,-627.626511,-627.626511,1427.89836,
+ 0,0,-1,-627.626511,-627.626511,1427.89836,
+ 0,0,-1,-621.482696,-415.261462,1427.89836,
+ 0,0,-1,-610.198918,-641.928967,1427.89836,
+ 0,0,-1,-610.198918,-641.928967,1427.89836,
+ 0,0,-1,-621.482696,-415.261462,1427.89836,
+ 0,0,-1,-528.527588,-528.527588,1427.89836,
+ 0,0,-1,-610.198918,-641.928967,1427.89836,
+ 0,0,-1,-528.527588,-528.527588,1427.89836,
+ 0,0,-1,-540.907488,-698.794973,1427.89836,
+ 0,0,-1,-540.907488,-698.794973,1427.89836,
+ 0,0,-1,-528.527588,-528.527588,1427.89836,
+ 0,0,-1,-493.122985,-738.010701,1427.89836,
+ 0,0,-1,-493.122985,-738.010701,1427.89836,
+ 0,0,-1,-528.527588,-528.527588,1427.89836,
+ 0,0,-1,-415.261462,-621.482696,1427.89836,
+ 0,0,-1,-493.122985,-738.010701,1427.89836,
+ 0,0,-1,-415.261462,-621.482696,1427.89836,
+ 0,0,-1,-468.281767,-751.288609,1427.89836,
+ 0,0,-1,-468.281767,-751.288609,1427.89836,
+ 0,0,-1,-415.261462,-621.482696,1427.89836,
+ 0,0,-1,-389.246833,-793.533662,1427.89836,
+ 0,0,-1,-389.246833,-793.533662,1427.89836,
+ 0,0,-1,-415.261462,-621.482696,1427.89836,
+ 0,0,-1,-286.03707,-690.554573,1427.89836,
+ 0,0,-1,-389.246833,-793.533662,1427.89836,
+ 0,0,-1,-286.03707,-690.554573,1427.89836,
+ 0,0,-1,-339.66902,-820.033555,1427.89836,
+ 0,0,-1,-339.66902,-820.033555,1427.89836,
+ 0,0,-1,-286.03707,-690.554573,1427.89836,
+ 0,0,-1,-307.339193,-829.840701,1427.89836,
+ 0,0,-1,-307.339193,-829.840701,1427.89836,
+ 0,0,-1,-286.03707,-690.554573,1427.89836,
+ 0,0,-1,-221.595076,-855.850894,1427.89836,
+ 0,0,-1,-221.595076,-855.850894,1427.89836,
+ 0,0,-1,-286.03707,-690.554573,1427.89836,
+ 0,0,-1,-145.820434,-733.088824,1427.89836,
+ 0,0,-1,-221.595076,-855.850894,1427.89836,
+ 0,0,-1,-145.820434,-733.088824,1427.89836,
+ 0,0,-1,-173.161765,-870.542978,1427.89836,
+ 0,0,-1,-173.161765,-870.542978,1427.89836,
+ 0,0,-1,-145.820434,-733.088824,1427.89836,
+ 0,0,-1,-44.790103,-883.186483,1427.89836,
+ 0,0,-1,-44.790103,-883.186483,1427.89836,
+ 0,0,-1,-145.820434,-733.088824,1427.89836,
+ 0,0,-1,0,-747.450884,1427.89836,
+ 0,0,-1,-44.790103,-883.186483,1427.89836,
+ 0,0,-1,0,-747.450884,1427.89836,
+ 0,0,-1,0,-887.597924,1427.89836,
+ 0,0,-1,0,-887.597924,1427.89836,
+ 0,0,-1,0,-747.450884,1427.89836,
+ 0,0,-1,145.820434,-733.088824,1427.89836,
+ 0,0,-1,0,-887.597924,1427.89836,
+ 0,0,-1,145.820434,-733.088824,1427.89836,
+ 0,0,-1,44.790142,-883.18648,1427.89836,
+ 0,0,-1,44.790142,-883.18648,1427.89836,
+ 0,0,-1,145.820434,-733.088824,1427.89836,
+ 0,0,-1,133.953889,-874.404617,1427.89836,
+ 0,0,-1,133.953889,-874.404617,1427.89836,
+ 0,0,-1,145.820434,-733.088824,1427.89836,
+ 0,0,-1,173.161765,-870.542978,1427.89836,
+ 0,0,-1,173.161765,-870.542978,1427.89836,
+ 0,0,-1,145.820434,-733.088824,1427.89836,
+ 0,0,-1,286.03707,-690.554573,1427.89836,
+ 0,0,-1,173.161765,-870.542978,1427.89836,
+ 0,0,-1,286.03707,-690.554573,1427.89836,
+ 0,0,-1,221.595155,-855.85087,1427.89836,
+ 0,0,-1,221.595155,-855.85087,1427.89836,
+ 0,0,-1,286.03707,-690.554573,1427.89836,
+ 0,0,-1,307.339229,-829.84069,1427.89836,
+ 0,0,-1,307.339229,-829.84069,1427.89836,
+ 0,0,-1,286.03707,-690.554573,1427.89836,
+ 0,0,-1,415.261462,-621.482696,1427.89836,
+ 0,0,-1,307.339229,-829.84069,1427.89836,
+ 0,0,-1,415.261462,-621.482696,1427.89836,
+ 0,0,-1,339.66902,-820.033555,1427.89836,
+ 0,0,-1,339.66902,-820.033555,1427.89836,
+ 0,0,-1,415.261462,-621.482696,1427.89836,
+ 0,0,-1,389.246864,-793.533645,1427.89836,
+ 0,0,-1,389.246864,-793.533645,1427.89836,
+ 0,0,-1,415.261462,-621.482696,1427.89836,
+ 0,0,-1,468.281762,-751.288612,1427.89836,
+ 0,0,-1,468.281762,-751.288612,1427.89836,
+ 0,0,-1,415.261462,-621.482696,1427.89836,
+ 0,0,-1,528.527588,-528.527588,1427.89836,
+ 0,0,-1,468.281762,-751.288612,1427.89836,
+ 0,0,-1,528.527588,-528.527588,1427.89836,
+ 0,0,-1,493.122985,-738.010701,1427.89836,
+ 0,0,-1,493.122985,-738.010701,1427.89836,
+ 0,0,-1,528.527588,-528.527588,1427.89836,
+ 0,0,-1,540.907511,-698.794954,1427.89836,
+ 0,0,-1,540.907511,-698.794954,1427.89836,
+ 0,0,-1,528.527588,-528.527588,1427.89836,
+ 0,0,-1,621.482696,-415.261462,1427.89836,
+ 0,0,-1,540.907511,-698.794954,1427.89836,
+ 0,0,-1,621.482696,-415.261462,1427.89836,
+ 0,0,-1,627.626511,-627.626511,1427.89836,
+ 0,0,-1,627.626511,-627.626511,1427.89836,
+ 0,0,-1,621.482696,-415.261462,1427.89836,
+ 0,0,-1,690.554573,-286.03707,1427.89836,
+ 0,0,-1,627.626511,-627.626511,1427.89836,
+ 0,0,-1,690.554573,-286.03707,1427.89836,
+ 0,0,-1,738.010701,-493.122985,1427.89836,
+ 0,0,-1,738.010701,-493.122985,1427.89836,
+ 0,0,-1,690.554573,-286.03707,1427.89836,
+ 0,0,-1,733.088824,-145.820434,1427.89836,
+ 0,0,-1,738.010701,-493.122985,1427.89836,
+ 0,0,-1,733.088824,-145.820434,1427.89836,
+ 0,0,-1,747.450884,0,1427.89836,
+ 0,0,-1,738.010701,-493.122985,1427.89836,
+ 0,0,-1,747.450884,0,1427.89836,
+ 0,0,-1,820.033555,-339.66902,1427.89836,
+ 0,0,-1,820.033555,-339.66902,1427.89836,
+ 0,0,-1,747.450884,0,1427.89836,
+ 0,0,-1,887.597924,0,1427.89836,
+ 0,0,-1,820.033555,-339.66902,1427.89836,
+ 0,0,-1,887.597924,0,1427.89836,
+ 0,0,-1,870.542978,-173.161765,1427.89836,
+ 0.456892,-0.661987,-0.594157,435.577878,-651.888362,631.979457,
+ 0.313363,-0.691434,-0.65094,285.268899,-688.700045,587.016307,
+ 0.421653,-0.631049,-0.651142,414.146251,-619.813666,587.016307,
+ 0.313363,-0.691434,-0.65094,285.268899,-688.700045,587.016307,
+ 0.456892,-0.661987,-0.594157,435.577878,-651.888362,631.979457,
+ 0.312045,-0.749097,-0.584364,300.03126,-724.339538,631.979457,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ -0.606233,-0.567693,-0.556961,-660.670395,-660.670395,1614.76108,
+ -0.614068,-0.630655,-0.474547,-705.352697,-705.352697,1708.939502,
+ -0.606233,-0.567693,-0.556961,-660.670395,-660.670395,1614.76108,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ -0.642867,-0.527587,-0.555314,-705.689426,-605.814546,1614.76108,
+ -0.642867,-0.527587,-0.555314,-705.689426,-605.814546,1614.76108,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ -0.642867,-0.527587,-0.555314,-765.568614,-532.851545,1614.76108,
+ -0.642867,-0.527587,-0.555314,-765.568614,-532.851545,1614.76108,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ -0.705336,-0.438515,-0.556961,-776.866198,-519.085398,1614.76108,
+ 0.345035,-0.829807,-0.438601,311.6688,-752.435044,682.822311,
+ 0.159907,-0.795581,-0.584364,152.95461,-768.954752,631.979457,
+ 0.312045,-0.749097,-0.584364,300.03126,-724.339538,631.979457,
+ 0.159907,-0.795581,-0.584364,152.95461,-768.954752,631.979457,
+ 0.345035,-0.829807,-0.438601,311.6688,-752.435044,682.822311,
+ 0.176518,-0.881175,-0.438601,158.887376,-798.780783,682.822311,
+ 0.368074,-0.886578,-0.280182,319.845809,-772.17609,738.078199,
+ 0.176518,-0.881175,-0.438601,158.887376,-798.780783,682.822311,
+ 0.345035,-0.829807,-0.438601,311.6688,-752.435044,682.822311,
+ 0.176518,-0.881175,-0.438601,158.887376,-798.780783,682.822311,
+ 0.368074,-0.886578,-0.280182,319.845809,-772.17609,738.078199,
+ 0.188038,-0.94135,-0.280182,163.055979,-819.737765,738.078199,
+ 0.727062,-0.521108,0.447021,660.325365,-441.215303,1054.17292,
+ 0.632456,-0.632456,0.447214,495.494614,-495.494614,1241.03564,
+ 0.632456,-0.632456,0.447214,561.560563,-561.560563,1054.17292,
+ 0.632456,-0.632456,0.447214,495.494614,-495.494614,1241.03564,
+ 0.727062,-0.521108,0.447021,660.325365,-441.215303,1054.17292,
+ 0.759676,-0.472298,0.447021,582.640028,-389.30762,1241.03564,
+ 0.636324,-0.634602,-0.438601,575.888851,-575.888851,682.822311,
+ 0.456892,-0.661987,-0.594157,435.577878,-651.888362,631.979457,
+ 0.592439,-0.554776,-0.584157,554.385481,-554.385481,631.979457,
+ 0.456892,-0.661987,-0.594157,435.577878,-651.888362,631.979457,
+ 0.636324,-0.634602,-0.438601,575.888851,-575.888851,682.822311,
+ 0.500293,-0.746549,-0.438601,452.472967,-677.173649,682.822311,
+ -0.999806,-0,-0.019694,43.536421,-1075.680584,2034.646937,
+ -0.986659,-0,0.162803,42.671671,-976.267681,2025.866979,
+ -0.973856,-0,0.227168,42.671671,-1075.765755,2025.866979,
+ -0.986659,-0,0.162803,42.671671,-976.267681,2025.866979,
+ -0.999806,-0,-0.019694,43.536421,-1075.680584,2034.646937,
+ -1,-0,-0,43.536421,-976.708082,2034.646937,
+ 0,0.227168,-0.973856,653.750225,-837.456927,2252.837783,
+ 0,0.352162,-0.935939,180.675225,-879.083714,2240.210435,
+ -0,0.146613,-0.989194,180.675225,-837.456927,2252.837783,
+ 0,0.352162,-0.935939,180.675225,-879.083714,2240.210435,
+ 0,0.227168,-0.973856,653.750225,-837.456927,2252.837783,
+ 0,0.412792,-0.910825,653.750225,-879.083714,2240.210435,
+ -0.825684,0.31192,0.470055,-804.422958,-708.167768,2102.551876,
+ -0.904882,0.382198,0.187384,-853.465107,-778.056207,2053.98621,
+ -0.776009,0.265205,0.572256,-843.757583,-786.871584,2085.686391,
+ -0.904882,0.382198,0.187384,-853.465107,-778.056207,2053.98621,
+ -0.825684,0.31192,0.470055,-804.422958,-708.167768,2102.551876,
+ -0.904884,0.382185,0.187402,-818.273878,-697.096462,2058.801607,
+ 0,-0.995185,-0.098017,911.540741,-574.592525,2058.811877,
+ 0,-0.995185,-0.098017,907.767925,-572.267173,2035.202247,
+ 0,-1,-0,912.783669,-572.267169,2035.202245,
+ 0,-0.995185,-0.098017,907.767925,-572.267173,2035.202247,
+ 0,-0.989194,-0.146613,180.675225,-576.530907,2078.49259,
+ 0,-0.999462,0.032813,180.675225,-572.267173,2035.202177,
+ 0,-0.989194,-0.146613,180.675225,-576.530907,2078.49259,
+ 0,-0.995185,-0.098017,907.767925,-572.267173,2035.202247,
+ 0,-0.995185,-0.098017,911.540741,-574.592525,2058.811877,
+ 0,-0.989194,-0.146613,180.675225,-576.530907,2078.49259,
+ 0,-0.995185,-0.098017,911.540741,-574.592525,2058.811877,
+ 0,-0.973856,-0.227168,908.625264,-576.530907,2078.49259,
+ 0.518883,-0.55411,-0.65094,527.108195,-527.108195,587.016307,
+ 0.456892,-0.661987,-0.594157,435.577878,-651.888362,631.979457,
+ 0.421653,-0.631049,-0.651142,414.146251,-619.813666,587.016307,
+ 0.456892,-0.661987,-0.594157,435.577878,-651.888362,631.979457,
+ 0.518883,-0.55411,-0.65094,527.108195,-527.108195,587.016307,
+ 0.592439,-0.554776,-0.584157,554.385481,-554.385481,631.979457,
+ 0.144571,-0.892809,0.426605,369.410361,-997.119327,2170.810911,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.146136,-0.933668,0.326969,349.642944,-1009.198896,2148.211628,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.144571,-0.892809,0.426605,369.410361,-997.119327,2170.810911,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ 0.144571,-0.892809,0.426605,369.410361,-997.119327,2170.810911,
+ 0.211506,-0.883105,0.418796,406.150729,-980.534599,2191.019462,
+ 0.208122,-0.927269,0.31122,203.671281,-1023.924672,2258.006804,
+ 0.211506,-0.883105,0.418796,406.150729,-980.534599,2191.019462,
+ 0.393751,-0.867338,0.304443,399.515588,-964.515951,2258.006804,
+ -0.837219,-0.315017,0.447021,-647.394912,-268.159753,1241.03564,
+ -0.871137,-0.203207,0.447021,-778.906876,-154.934211,1054.17292,
+ -0.814754,-0.369253,0.447021,-733.714234,-303.914386,1054.17292,
+ -0.871137,-0.203207,0.447021,-778.906876,-154.934211,1054.17292,
+ -0.837219,-0.315017,0.447021,-647.394912,-268.159753,1241.03564,
+ -0.882589,-0.145631,0.447021,-687.270773,-136.706657,1241.03564,
+ -0.974489,-0.193517,-0.113678,-831.221151,-165.340167,796.15315,
+ -0.887172,-0.366638,-0.280182,-772.17609,-319.845809,738.078199,
+ -0.918011,-0.379912,-0.113678,-782.993204,-324.326404,796.15315,
+ -0.887172,-0.366638,-0.280182,-772.17609,-319.845809,738.078199,
+ -0.974489,-0.193517,-0.113678,-831.221151,-165.340167,796.15315,
+ -0.941653,-0.186514,-0.280182,-819.737765,-163.055979,738.078199,
+ -0.830739,-0.342785,-0.438601,-752.435044,-311.6688,682.822311,
+ -0.692236,-0.442144,-0.570366,-651.888362,-435.577878,631.979457,
+ -0.747902,-0.498268,-0.438601,-677.173649,-452.472967,682.822311,
+ -0.692236,-0.442144,-0.570366,-651.888362,-435.577878,631.979457,
+ -0.830739,-0.342785,-0.438601,-752.435044,-311.6688,682.822311,
+ -0.750341,-0.309043,-0.584364,-724.339538,-300.03126,631.979457,
+ -0.887172,-0.366638,-0.280182,-772.17609,-319.845809,738.078199,
+ -0.747902,-0.498268,-0.438601,-677.173649,-452.472967,682.822311,
+ -0.798598,-0.532672,-0.280182,-694.940121,-464.344144,738.078199,
+ -0.747902,-0.498268,-0.438601,-677.173649,-452.472967,682.822311,
+ -0.887172,-0.366638,-0.280182,-772.17609,-319.845809,738.078199,
+ -0.830739,-0.342785,-0.438601,-752.435044,-311.6688,682.822311,
+ -0.521108,-0.727062,0.447021,-389.30762,-582.640028,1241.03564,
+ -0.611428,-0.652938,0.447021,-561.560563,-561.560563,1054.17292,
+ -0.472298,-0.759676,0.447021,-441.215303,-660.325365,1054.17292,
+ -0.611428,-0.652938,0.447021,-561.560563,-561.560563,1054.17292,
+ -0.521108,-0.727062,0.447021,-389.30762,-582.640028,1241.03564,
+ -0.652938,-0.611428,0.447021,-495.494614,-495.494614,1241.03564,
+ -0.521108,-0.727062,0.447021,-415.261462,-621.482696,1427.89836,
+ -0.611428,-0.652938,0.447021,-594.593537,-594.593537,1241.03564,
+ -0.472298,-0.759676,0.447021,-467.169144,-699.168033,1241.03564,
+ -0.611428,-0.652938,0.447021,-594.593537,-594.593537,1241.03564,
+ -0.521108,-0.727062,0.447021,-415.261462,-621.482696,1427.89836,
+ -0.652938,-0.611428,0.447021,-528.527588,-528.527588,1427.89836,
+ -0.850126,-0.08373,-0.51988,-997.51935,0,1708.939502,
+ -0.819458,-0.135214,-0.556961,-916.376162,-182.278552,1614.76108,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.819458,-0.135214,-0.556961,-916.376162,-182.278552,1614.76108,
+ -0.850126,-0.08373,-0.51988,-997.51935,0,1708.939502,
+ -0.827636,-0.081515,-0.555314,-925.063958,-94.069882,1614.76108,
+ -0.827636,-0.081515,-0.555314,-925.063958,-94.069882,1614.76108,
+ -0.850126,-0.08373,-0.51988,-997.51935,0,1708.939502,
+ -0.827636,-0.081515,-0.555314,-934.329033,0,1614.76108,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ -0.929871,-0.091584,0.356303,-1043.984543,0,2258.006804,
+ -0.925561,-0.183175,0.331336,-1023.924672,-203.671281,2258.006804,
+ -0.929871,-0.091584,0.356303,-1043.984543,0,2258.006804,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ -0.850126,-0.08373,0.51988,-997.51935,0,2361.464898,
+ 0.890977,-0.087754,0.445488,794.166564,0,1054.17292,
+ 0.882589,-0.145631,0.447021,687.270773,-136.706657,1241.03564,
+ 0.871137,-0.203207,0.447021,778.906876,-154.934211,1054.17292,
+ 0.882589,-0.145631,0.447021,687.270773,-136.706657,1241.03564,
+ 0.890977,-0.087754,0.445488,794.166564,0,1054.17292,
+ 0.890977,-0.087754,0.445488,700.735204,0,1241.03564,
+ -0.995185,-0.098017,-0,-832.543812,-84.66152,2549.07468,
+ -0.976753,-0.214369,-0,-824.724927,-164.047988,2455.64332,
+ -0.980785,-0.19509,0,-824.724927,-164.047988,2549.07468,
+ -0.976753,-0.214369,-0,-824.724927,-164.047988,2455.64332,
+ -0.995185,-0.098017,-0,-832.543812,-84.66152,2549.07468,
+ -0.995185,-0.098017,-0,-840.882244,0,2455.64332,
+ -0.995185,-0.098017,-0,-840.882244,0,2455.64332,
+ -0.995185,-0.098017,-0,-832.543812,-84.66152,2549.07468,
+ -0.995185,-0.098017,0,-840.882244,0,2549.07468,
+ -0.759676,-0.472298,0.447021,-621.482696,-415.261462,1427.89836,
+ -0.814754,-0.369253,0.447021,-776.873894,-321.791703,1241.03564,
+ -0.727062,-0.521108,0.447021,-699.168033,-467.169144,1241.03564,
+ -0.814754,-0.369253,0.447021,-776.873894,-321.791703,1241.03564,
+ -0.759676,-0.472298,0.447021,-621.482696,-415.261462,1427.89836,
+ -0.837219,-0.315017,0.447021,-690.554573,-286.03707,1427.89836,
+ 0.533964,-0.797735,-0.280182,464.344144,-694.940121,738.078199,
+ 0.345035,-0.829807,-0.438601,311.6688,-752.435044,682.822311,
+ 0.500293,-0.746549,-0.438601,452.472967,-677.173649,682.822311,
+ 0.345035,-0.829807,-0.438601,311.6688,-752.435044,682.822311,
+ 0.533964,-0.797735,-0.280182,464.344144,-694.940121,738.078199,
+ 0.368074,-0.886578,-0.280182,319.845809,-772.17609,738.078199,
+ 0.552231,-0.825905,-0.113678,470.848959,-704.675266,796.15315,
+ 0.368074,-0.886578,-0.280182,319.845809,-772.17609,738.078199,
+ 0.533964,-0.797735,-0.280182,464.344144,-694.940121,738.078199,
+ 0.368074,-0.886578,-0.280182,319.845809,-772.17609,738.078199,
+ 0.552231,-0.825905,-0.113678,470.848959,-704.675266,796.15315,
+ 0.380494,-0.91777,-0.113678,324.326404,-782.993204,796.15315,
+ 0.872041,-0.360223,0.331336,964.515951,-399.515588,2258.006804,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.872041,-0.360223,0.331336,964.515951,-399.515588,2258.006804,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ -0.382396,-0.923034,0.0422,-413.286071,-997.760837,2058.811877,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.382289,-0.923079,-0.0422,-413.286071,-997.760837,2011.592523,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.382396,-0.923034,0.0422,-413.286071,-997.760837,2058.811877,
+ -0.555123,-0.830697,0.0422,-599.998378,-897.96103,2058.811877,
+ -0.909392,-0.412143,0.056077,-784.574342,-324.981333,855.371869,
+ -0.826255,-0.551707,-0.113678,-704.675266,-470.848959,796.15315,
+ -0.811513,-0.581637,0.056077,-706.098253,-471.799769,855.371869,
+ -0.826255,-0.551707,-0.113678,-704.675266,-470.848959,796.15315,
+ -0.909392,-0.412143,0.056077,-784.574342,-324.981333,855.371869,
+ -0.918011,-0.379912,-0.113678,-782.993204,-324.326404,796.15315,
+ 0.582554,-0,0.812792,-26.471367,-1076.145653,1997.226995,
+ 0.683524,-0,0.729928,-33.291206,-975.812207,2002.823893,
+ 0.729928,0,0.683524,-33.291206,-1075.947599,2002.823893,
+ 0.683524,-0,0.729928,-33.291206,-975.812207,2002.823893,
+ 0.582554,-0,0.812792,-26.471367,-1076.145653,1997.226995,
+ 0.527988,0,0.849252,-26.471367,-976.14887,1997.226995,
+ 0.83147,-0,-0.55557,-38.888103,-975.735676,2059.650143,
+ 0.707107,-0,-0.707107,-33.291206,-1076.041578,2066.469982,
+ 0.849252,-0,-0.527988,-38.888103,-1076.067465,2059.650143,
+ 0.707107,-0,-0.707107,-33.291206,-1076.041578,2066.469982,
+ 0.83147,-0,-0.55557,-38.888103,-975.735676,2059.650143,
+ 0.707107,0,-0.707107,-33.291206,-975.878684,2066.469982,
+ -0.527988,0,0.849252,23.535045,-1076.434855,1997.226995,
+ -0.382683,-0,0.92388,15.754347,-976.955453,1993.068126,
+ -0.382683,0,0.92388,15.754347,-1076.84924,1993.068126,
+ -0.382683,-0,0.92388,15.754347,-976.955453,1993.068126,
+ -0.527988,0,0.849252,23.535045,-1076.434855,1997.226995,
+ -0.582554,0,0.812792,23.535045,-976.438073,1997.226995,
+ -0.227168,-0,0.973856,7.311798,-1077.464031,1990.507106,
+ -0.382683,-0,0.92388,15.754347,-976.955453,1993.068126,
+ -0.162803,-0,0.986659,7.311798,-977.633668,1990.507106,
+ -0.382683,-0,0.92388,15.754347,-976.955453,1993.068126,
+ -0.227168,-0,0.973856,7.311798,-1077.464031,1990.507106,
+ -0.382683,0,0.92388,15.754347,-1076.84924,1993.068126,
+ -0.935939,0,-0.352162,40.110651,-976.081021,2051.869445,
+ -0.973856,-0,-0.227168,42.671671,-1075.765755,2043.426896,
+ -0.903939,-0,-0.427662,40.110651,-1076.017993,2051.869445,
+ -0.973856,-0,-0.227168,42.671671,-1075.765755,2043.426896,
+ -0.935939,0,-0.352162,40.110651,-976.081021,2051.869445,
+ -0.986659,-0,-0.162803,42.671671,-976.334157,2043.426896,
+ -0.377668,-0.910562,0.168059,-410.390874,-990.771213,2148.211628,
+ -0.555123,-0.830697,0.0422,-599.998378,-897.96103,2058.811877,
+ -0.382396,-0.923034,0.0422,-413.286071,-997.760837,2058.811877,
+ -0.555123,-0.830697,0.0422,-599.998378,-897.96103,2058.811877,
+ -0.377668,-0.910562,0.168059,-410.390874,-990.771213,2148.211628,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.759676,-0.472298,0.447021,-582.640028,-389.30762,1241.03564,
+ -0.814754,-0.369253,0.447021,-733.714234,-303.914386,1054.17292,
+ -0.727062,-0.521108,0.447021,-660.325365,-441.215303,1054.17292,
+ -0.814754,-0.369253,0.447021,-733.714234,-303.914386,1054.17292,
+ -0.759676,-0.472298,0.447021,-582.640028,-389.30762,1241.03564,
+ -0.837219,-0.315017,0.447021,-647.394912,-268.159753,1241.03564,
+ -0.993624,-0.097863,-0.055991,-1079.968548,0,2011.592523,
+ -0.966926,-0.191862,-0.168059,-1051.797109,-209.215453,1922.192772,
+ -0.979923,-0.19486,-0.0422,-1059.217255,-210.691412,2011.592523,
+ -0.966926,-0.191862,-0.168059,-1051.797109,-209.215453,1922.192772,
+ -0.993624,-0.097863,-0.055991,-1079.968548,0,2011.592523,
+ -0.976104,-0.096138,-0.19488,-1072.403033,0,1922.192772,
+ 0.69246,-0.720397,0.039075,600.487204,-600.487204,855.371869,
+ 0.552231,-0.825905,-0.113678,470.848959,-704.675266,796.15315,
+ 0.702746,-0.7023,-0.113678,599.277053,-599.277053,796.15315,
+ 0.552231,-0.825905,-0.113678,470.848959,-704.675266,796.15315,
+ 0.69246,-0.720397,0.039075,600.487204,-600.487204,855.371869,
+ 0.554566,-0.830246,0.056107,471.799769,-706.098253,855.371869,
+ -0.000001,0.812792,-0.582554,104.493598,-867.96763,2084.514498,
+ -0.000001,0.729928,-0.683524,180.675225,-856.929131,2097.964794,
+ -0.000001,0.849252,-0.527988,180.675225,-867.967544,2084.514449,
+ -0.000001,0.729928,-0.683524,180.675225,-856.929131,2097.964794,
+ -0.000001,0.812792,-0.582554,104.493598,-867.96763,2084.514498,
+ -0.000001,0.683524,-0.729928,104.493594,-856.929211,2097.964851,
+ -0.000001,0.582554,-0.812792,180.675225,-843.478786,2109.003208,
+ -0.000001,0.683524,-0.729928,104.493594,-856.929211,2097.964851,
+ -0.000001,0.527988,-0.849252,104.493591,-843.478858,2109.00327,
+ -0.000001,0.683524,-0.729928,104.493594,-856.929211,2097.964851,
+ -0.000001,0.582554,-0.812792,180.675225,-843.478786,2109.003208,
+ -0.000001,0.729928,-0.683524,180.675225,-856.929131,2097.964794,
+ -0.000001,0.412792,-0.910825,180.675225,-828.133397,2117.205489,
+ -0.000001,0.527988,-0.849252,104.493591,-843.478858,2109.00327,
+ -0.000001,0.352162,-0.935939,104.493588,-828.133462,2117.205555,
+ -0.000001,0.527988,-0.849252,104.493591,-843.478858,2109.00327,
+ -0.000001,0.412792,-0.910825,180.675225,-828.133397,2117.205489,
+ -0.000001,0.582554,-0.812792,180.675225,-843.478786,2109.003208,
+ -0.000001,0.227168,-0.973856,180.675225,-811.482681,2122.256428,
+ -0.000001,0.352162,-0.935939,104.493588,-828.133462,2117.205555,
+ -0.000001,0.162803,-0.986659,104.493585,-811.482736,2122.256498,
+ -0.000001,0.352162,-0.935939,104.493588,-828.133462,2117.205555,
+ -0.000001,0.227168,-0.973856,180.675225,-811.482681,2122.256428,
+ -0.000001,0.412792,-0.910825,180.675225,-828.133397,2117.205489,
+ -0.000001,0.032813,-0.999462,180.675225,-794.166513,2123.961922,
+ -0.000001,0.162803,-0.986659,104.493585,-811.482736,2122.256498,
+ -0.000001,-0.032813,-0.999462,104.493583,-794.16656,2123.961992,
+ -0.000001,0.162803,-0.986659,104.493585,-811.482736,2122.256498,
+ -0.000001,0.032813,-0.999462,180.675225,-794.166513,2123.961922,
+ -0.000001,0.227168,-0.973856,180.675225,-811.482681,2122.256428,
+ -0.000001,-0.162803,-0.986659,180.675225,-776.850346,2122.256428,
+ -0.000001,-0.032813,-0.999462,104.493583,-794.16656,2123.961992,
+ -0.000001,-0.227168,-0.973856,104.493581,-776.850384,2122.256498,
+ -0.000001,-0.032813,-0.999462,104.493583,-794.16656,2123.961992,
+ -0.000001,-0.162803,-0.986659,180.675225,-776.850346,2122.256428,
+ -0.000001,0.032813,-0.999462,180.675225,-794.166513,2123.961922,
+ -0.000001,-0.352162,-0.935939,180.675225,-760.199629,2117.205489,
+ -0.000001,-0.227168,-0.973856,104.493581,-776.850384,2122.256498,
+ -0.000001,-0.412792,-0.910825,104.493579,-760.199658,2117.205555,
+ -0.000001,-0.227168,-0.973856,104.493581,-776.850384,2122.256498,
+ -0.000001,-0.352162,-0.935939,180.675225,-760.199629,2117.205489,
+ -0.000001,-0.162803,-0.986659,180.675225,-776.850346,2122.256428,
+ -0.000001,-0.527988,-0.849252,180.675225,-744.854241,2109.003208,
+ -0.000001,-0.412792,-0.910825,104.493579,-760.199658,2117.205555,
+ -0.000001,-0.582554,-0.812792,104.493578,-744.854262,2109.00327,
+ -0.000001,-0.412792,-0.910825,104.493579,-760.199658,2117.205555,
+ -0.000001,-0.527988,-0.849252,180.675225,-744.854241,2109.003208,
+ -0.000001,-0.352162,-0.935939,180.675225,-760.199629,2117.205489,
+ -0,-0.707107,-0.707107,180.675225,-731.403895,2097.964794,
+ -0.000001,-0.582554,-0.812792,104.493578,-744.854262,2109.00327,
+ -0,-0.707107,-0.707107,104.493578,-731.403909,2097.964851,
+ -0.000001,-0.582554,-0.812792,104.493578,-744.854262,2109.00327,
+ -0,-0.707107,-0.707107,180.675225,-731.403895,2097.964794,
+ -0.000001,-0.527988,-0.849252,180.675225,-744.854241,2109.003208,
+ -0,-0.707107,-0.707107,180.675225,-731.403895,2097.964794,
+ -0,-0.812792,-0.582554,104.493578,-720.36549,2084.514498,
+ -0,-0.849252,-0.527988,180.675225,-720.365482,2084.514449,
+ -0,-0.812792,-0.582554,104.493578,-720.36549,2084.514498,
+ -0,-0.707107,-0.707107,180.675225,-731.403895,2097.964794,
+ -0,-0.707107,-0.707107,104.493578,-731.403909,2097.964851,
+ -0,-0.849252,-0.527988,180.675225,-720.365482,2084.514449,
+ -0,-0.910825,-0.412792,104.493579,-712.163205,2069.169102,
+ -0,-0.935939,-0.352162,180.675225,-712.163201,2069.169061,
+ -0,-0.910825,-0.412792,104.493579,-712.163205,2069.169102,
+ -0,-0.849252,-0.527988,180.675225,-720.365482,2084.514449,
+ -0,-0.812792,-0.582554,104.493578,-720.36549,2084.514498,
+ -0,-0.935939,-0.352162,180.675225,-712.163201,2069.169061,
+ -0,-0.973856,-0.227168,104.493581,-707.112263,2052.518376,
+ -0,-0.986659,-0.162803,180.675225,-707.112262,2052.518344,
+ -0,-0.973856,-0.227168,104.493581,-707.112263,2052.518376,
+ -0,-0.935939,-0.352162,180.675225,-712.163201,2069.169061,
+ -0,-0.910825,-0.412792,104.493579,-712.163205,2069.169102,
+ -0,-0.986659,-0.162803,180.675225,-707.112262,2052.518344,
+ -0,-0.999462,-0.032813,104.493583,-705.406768,2035.2022,
+ 0,-0.999462,0.032813,180.675225,-705.406768,2035.202177,
+ -0,-0.999462,-0.032813,104.493583,-705.406768,2035.2022,
+ -0,-0.986659,-0.162803,180.675225,-707.112262,2052.518344,
+ -0,-0.973856,-0.227168,104.493581,-707.112263,2052.518376,
+ 0.438515,-0.705336,0.556961,519.085398,-776.866198,2455.64332,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.51982,-0.710547,0.474247,554.192058,-829.407027,2361.464898,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.438515,-0.705336,0.556961,519.085398,-776.866198,2455.64332,
+ 0.292484,-0.777333,0.556961,357.552241,-863.20747,2455.64332,
+ 0,0,1,357.552241,-863.20747,2455.64332,
+ 0,0,1,519.085398,-776.866198,2455.64332,
+ 0,0,1,492.936359,-790.843151,2455.64332,
+ 0,0,-1,357.552241,-863.20747,2455.64332,
+ 0,0,-1,492.936359,-790.843151,2455.64332,
+ 0,0,-1,409.740311,-835.312366,2455.64332,
+ -0.947451,-0.093316,-0.305988,-835.797377,0,738.078199,
+ -0.881651,-0.17413,-0.438601,-798.780783,-158.887376,682.822311,
+ -0.941653,-0.186514,-0.280182,-819.737765,-163.055979,738.078199,
+ -0.881651,-0.17413,-0.438601,-798.780783,-158.887376,682.822311,
+ -0.947451,-0.093316,-0.305988,-835.797377,0,738.078199,
+ -0.882512,-0.08692,-0.462187,-814.429823,0,682.822311,
+ -0.538332,-0.779667,0.319873,-580.006736,-868.041423,2258.006804,
+ -0.62223,-0.75819,0.19488,-700.811797,-805.485643,2148.211628,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.62223,-0.75819,0.19488,-700.811797,-805.485643,2148.211628,
+ -0.538332,-0.779667,0.319873,-580.006736,-868.041423,2258.006804,
+ -0.61434,-0.748575,0.249443,-713.051374,-793.031289,2155.442781,
+ -0.61434,-0.748575,0.249443,-750.226481,-763.163738,2153.518338,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.684548,-0.684548,0.250574,-758.175253,-758.175253,2148.912113,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.61434,-0.748575,0.249443,-750.226481,-763.163738,2153.518338,
+ -0.61434,-0.748575,0.249443,-713.051374,-793.031289,2155.442781,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.61434,-0.748575,0.249443,-713.051374,-793.031289,2155.442781,
+ -0.538332,-0.779667,0.319873,-580.006736,-868.041423,2258.006804,
+ 0.252855,-0.790324,-0.558079,-654.791104,-848.015122,1965.894902,
+ 0.071382,-0.616271,-0.784292,-758.928833,-874.671572,1963.870632,
+ 0.093452,-0.638076,-0.764282,-679.407718,-824.046894,1931.329012,
+ 0.071382,-0.616271,-0.784292,-758.928833,-874.671572,1963.870632,
+ 0.252855,-0.790324,-0.558079,-654.791104,-848.015122,1965.894902,
+ 0.302536,-0.83706,-0.455854,-741.432258,-891.447302,1988.145993,
+ 0.032813,0,0.999462,-1.468161,-1077.966399,1989.642356,
+ 0.162803,0,0.986659,-10.248119,-977.344466,1990.507106,
+ 0.227168,0,0.973856,-10.248119,-1077.174828,1990.507106,
+ 0.162803,0,0.986659,-10.248119,-977.344466,1990.507106,
+ 0.032813,0,0.999462,-1.468161,-1077.966399,1989.642356,
+ -0.032813,-0,0.999462,-1.468161,-978.157452,1989.642356,
+ 0.554566,-0.830246,0.056107,471.799769,-706.098253,855.371869,
+ 0.380494,-0.91777,-0.113678,324.326404,-782.993204,796.15315,
+ 0.552231,-0.825905,-0.113678,470.848959,-704.675266,796.15315,
+ 0.380494,-0.91777,-0.113678,324.326404,-782.993204,796.15315,
+ 0.554566,-0.830246,0.056107,471.799769,-706.098253,855.371869,
+ 0.381937,-0.922484,0.056107,324.981333,-784.574342,855.371869,
+ 0.482193,-0.753361,0.447144,441.215303,-660.325365,1614.76108,
+ 0.422036,-0.789573,0.445488,468.281762,-751.288612,1427.89836,
+ 0.496917,-0.743689,0.447214,493.122985,-738.010701,1427.89836,
+ 0.422036,-0.789573,0.445488,468.281762,-751.288612,1427.89836,
+ 0.482193,-0.753361,0.447144,441.215303,-660.325365,1614.76108,
+ 0.422036,-0.789573,0.445488,389.246864,-793.533645,1427.89836,
+ 0.422036,-0.789573,0.445488,389.246864,-793.533645,1427.89836,
+ 0.325954,-0.832956,0.447144,303.914386,-733.714234,1614.76108,
+ 0.342282,-0.826343,0.447214,339.66902,-820.033555,1427.89836,
+ 0.325954,-0.832956,0.447144,303.914386,-733.714234,1614.76108,
+ 0.422036,-0.789573,0.445488,389.246864,-793.533645,1427.89836,
+ 0.482193,-0.753361,0.447144,441.215303,-660.325365,1614.76108,
+ 0.87881,-0.469734,0.083921,897.900698,-589.158255,2120.119378,
+ 0.832671,-0.532692,0.151323,891.670534,-595.795203,2148.211628,
+ 0.828508,-0.553591,0.084324,892.684338,-596.472605,2133.803565,
+ 0.832671,-0.532692,0.151323,891.670534,-595.795203,2148.211628,
+ 0.87881,-0.469734,0.083921,897.900698,-589.158255,2120.119378,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.87881,-0.469734,0.083921,897.900698,-589.158255,2120.119378,
+ 0.87881,-0.469734,0.083921,908.625264,-576.530907,2078.49259,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.87881,-0.469734,0.083921,908.625264,-576.530907,2078.49259,
+ 0.880538,-0.470657,0.055991,911.540741,-574.592525,2058.811877,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.880538,-0.470657,0.055991,911.540741,-574.592525,2058.811877,
+ 0.923514,-0.382532,0.028131,997.760837,-413.286071,2058.811877,
+ -0.000001,0.352162,0.935939,104.49361,-828.133462,1953.198845,
+ -0,0.227168,0.973856,180.675225,-811.482681,1948.147925,
+ -0,0.162803,0.986659,104.493608,-811.482736,1948.147903,
+ -0,0.227168,0.973856,180.675225,-811.482681,1948.147925,
+ -0.000001,0.352162,0.935939,104.49361,-828.133462,1953.198845,
+ -0.000001,0.412792,0.910825,180.675225,-828.133397,1953.198865,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.392033,-0.733442,-0.555314,492.936359,-790.843151,1614.76108,
+ 0.461345,-0.690452,-0.557168,519.085398,-776.866198,1614.76108,
+ 0.392033,-0.733442,-0.555314,492.936359,-790.843151,1614.76108,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.392033,-0.733442,-0.555314,409.740311,-835.312366,1614.76108,
+ 0.392033,-0.733442,-0.555314,409.740311,-835.312366,1614.76108,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.31778,-0.767189,-0.557168,357.552241,-863.20747,1614.76108,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.392033,-0.733442,-0.555314,409.740311,-835.312366,1614.76108,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ -0,-0.582554,0.812792,104.493598,-744.854262,1961.40113,
+ 0,-0.707107,0.707107,180.675225,-731.403895,1972.439559,
+ 0,-0.707107,0.707107,104.493594,-731.403909,1972.439549,
+ 0,-0.707107,0.707107,180.675225,-731.403895,1972.439559,
+ -0,-0.582554,0.812792,104.493598,-744.854262,1961.40113,
+ -0,-0.527988,0.849252,180.675225,-744.854241,1961.401146,
+ -0.000001,0.973856,-0.227168,104.493604,-881.220857,2052.518376,
+ -0.000001,0.935939,-0.352162,180.675225,-876.169825,2069.169061,
+ -0.000001,0.986659,-0.162803,180.675225,-881.220765,2052.518344,
+ -0.000001,0.935939,-0.352162,180.675225,-876.169825,2069.169061,
+ -0.000001,0.973856,-0.227168,104.493604,-881.220857,2052.518376,
+ -0.000001,0.910825,-0.412792,104.493601,-876.169915,2069.169102,
+ -0.000001,0.910825,-0.412792,104.493601,-876.169915,2069.169102,
+ -0.000001,0.849252,-0.527988,180.675225,-867.967544,2084.514449,
+ -0.000001,0.935939,-0.352162,180.675225,-876.169825,2069.169061,
+ -0.000001,0.849252,-0.527988,180.675225,-867.967544,2084.514449,
+ -0.000001,0.910825,-0.412792,104.493601,-876.169915,2069.169102,
+ -0.000001,0.812792,-0.582554,104.493598,-867.96763,2084.514498,
+ -0.000001,0.999462,-0.032813,104.493606,-882.926352,2035.2022,
+ -0.000001,0.986659,-0.162803,180.675225,-881.220765,2052.518344,
+ -0.000001,0.999462,0.032813,180.675225,-882.926259,2035.202177,
+ -0.000001,0.986659,-0.162803,180.675225,-881.220765,2052.518344,
+ -0.000001,0.999462,-0.032813,104.493606,-882.926352,2035.2022,
+ -0.000001,0.973856,-0.227168,104.493604,-881.220857,2052.518376,
+ -0,-0.227168,0.973856,104.493604,-776.850384,1948.147903,
+ -0,-0.352162,0.935939,180.675225,-760.199629,1953.198865,
+ -0,-0.412792,0.910825,104.493601,-760.199658,1953.198845,
+ -0,-0.352162,0.935939,180.675225,-760.199629,1953.198865,
+ -0,-0.227168,0.973856,104.493604,-776.850384,1948.147903,
+ -0,-0.162803,0.986659,180.675225,-776.850346,1948.147925,
+ -0,-0.336778,0.941584,653.750225,-887.575434,2260.711261,
+ -0,-0.290285,0.95694,577.578294,-864.407003,2267.739328,
+ -0,-0.412792,0.910825,540.89692,-887.575434,2260.711261,
+ -0,-0.290285,0.95694,577.578294,-864.407003,2267.739328,
+ -0,-0.336778,0.941584,653.750225,-887.575434,2260.711261,
+ -0,-0.227168,0.973856,600.307509,-841.785968,2274.601344,
+ -0,-0.227168,0.973856,600.307509,-841.785968,2274.601344,
+ -0,-0.336778,0.941584,653.750225,-887.575434,2260.711261,
+ 0,-0.19509,0.980785,653.750225,-841.785968,2274.601344,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ -0.392033,-0.733442,-0.555314,-409.740279,-835.312382,1614.76108,
+ -0.31778,-0.767189,-0.557168,-357.552241,-863.20747,1614.76108,
+ -0.392033,-0.733442,-0.555314,-409.740279,-835.312382,1614.76108,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ -0.392033,-0.733442,-0.555314,-492.936329,-790.843167,1614.76108,
+ -0.392033,-0.733442,-0.555314,-492.936329,-790.843167,1614.76108,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.461345,-0.690452,-0.557168,-519.085398,-776.866198,1614.76108,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.392033,-0.733442,-0.555314,-492.936329,-790.843167,1614.76108,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ 0.918011,-0.379912,-0.113678,782.993204,-324.326404,796.15315,
+ 0.972323,-0.22681,0.056077,832.899679,-165.674047,855.371869,
+ 0.909392,-0.412143,0.056077,784.574342,-324.981333,855.371869,
+ 0.972323,-0.22681,0.056077,832.899679,-165.674047,855.371869,
+ 0.918011,-0.379912,-0.113678,782.993204,-324.326404,796.15315,
+ 0.974489,-0.193517,-0.113678,831.221151,-165.340167,796.15315,
+ 0.82593,-0.549829,0.124608,-789.394717,-732.286733,2020.799449,
+ 0.80808,-0.541317,-0.232341,-833.682296,-797.914759,2048.438454,
+ 0.803422,-0.523835,0.283037,-833.979694,-798.243508,2025.286671,
+ 0.80808,-0.541317,-0.232341,-833.682296,-797.914759,2048.438454,
+ 0.82593,-0.549829,0.124608,-789.394717,-732.286733,2020.799449,
+ 0.814584,-0.546562,-0.194222,-789.342859,-732.349615,2049.894341,
+ -0.000155,-0.998425,0.056107,0,-849.217148,855.371869,
+ -0.193517,-0.974489,-0.113678,-165.340167,-831.221151,796.15315,
+ 0.000315,-0.993518,-0.113678,0,-847.505736,796.15315,
+ -0.193517,-0.974489,-0.113678,-165.340167,-831.221151,796.15315,
+ -0.000155,-0.998425,0.056107,0,-849.217148,855.371869,
+ -0.194936,-0.97921,0.056107,-165.674047,-832.899679,855.371869,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ 0.881651,-0.17413,-0.438601,798.780783,-158.887376,682.822311,
+ 0.830739,-0.342785,-0.438601,752.435044,-311.6688,682.822311,
+ 0.881651,-0.17413,-0.438601,798.780783,-158.887376,682.822311,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ 0.787008,-0.166056,-0.594175,768.954752,-152.95461,631.979457,
+ 0.500293,-0.746549,-0.438601,452.472967,-677.173649,682.822311,
+ 0.312045,-0.749097,-0.584364,300.03126,-724.339538,631.979457,
+ 0.456892,-0.661987,-0.594157,435.577878,-651.888362,631.979457,
+ 0.312045,-0.749097,-0.584364,300.03126,-724.339538,631.979457,
+ 0.500293,-0.746549,-0.438601,452.472967,-677.173649,682.822311,
+ 0.345035,-0.829807,-0.438601,311.6688,-752.435044,682.822311,
+ -0.750341,-0.309043,-0.584364,-724.339538,-300.03126,631.979457,
+ -0.631049,-0.421653,-0.651142,-619.813666,-414.146251,587.016307,
+ -0.692236,-0.442144,-0.570366,-651.888362,-435.577878,631.979457,
+ -0.631049,-0.421653,-0.651142,-619.813666,-414.146251,587.016307,
+ -0.750341,-0.309043,-0.584364,-724.339538,-300.03126,631.979457,
+ -0.710498,-0.267337,-0.65094,-688.700045,-285.268899,587.016307,
+ 0.227168,0,0.973856,-10.248119,-1077.174828,1990.507106,
+ 0.352162,0,0.935939,-18.690668,-976.666251,1993.068126,
+ 0.412792,0,0.910825,-18.690668,-1076.560038,1993.068126,
+ 0.352162,0,0.935939,-18.690668,-976.666251,1993.068126,
+ 0.227168,0,0.973856,-10.248119,-1077.174828,1990.507106,
+ 0.162803,0,0.986659,-10.248119,-977.344466,1990.507106,
+ 0.312045,-0.749097,-0.584364,300.03126,-724.339538,631.979457,
+ 0.172449,-0.739282,-0.65094,145.428824,-731.120069,587.016307,
+ 0.313363,-0.691434,-0.65094,285.268899,-688.700045,587.016307,
+ 0.172449,-0.739282,-0.65094,145.428824,-731.120069,587.016307,
+ 0.312045,-0.749097,-0.584364,300.03126,-724.339538,631.979457,
+ 0.159907,-0.795581,-0.584364,152.95461,-768.954752,631.979457,
+ -0.652938,-0.611428,0.447021,-495.494614,-495.494614,1241.03564,
+ -0.727062,-0.521108,0.447021,-660.325365,-441.215303,1054.17292,
+ -0.611428,-0.652938,0.447021,-561.560563,-561.560563,1054.17292,
+ -0.727062,-0.521108,0.447021,-660.325365,-441.215303,1054.17292,
+ -0.652938,-0.611428,0.447021,-495.494614,-495.494614,1241.03564,
+ -0.759676,-0.472298,0.447021,-582.640028,-389.30762,1241.03564,
+ -0.652938,-0.611428,0.447021,-528.527588,-528.527588,1427.89836,
+ -0.727062,-0.521108,0.447021,-699.168033,-467.169144,1241.03564,
+ -0.611428,-0.652938,0.447021,-594.593537,-594.593537,1241.03564,
+ -0.727062,-0.521108,0.447021,-699.168033,-467.169144,1241.03564,
+ -0.652938,-0.611428,0.447021,-528.527588,-528.527588,1427.89836,
+ -0.759676,-0.472298,0.447021,-621.482696,-415.261462,1427.89836,
+ -0.777333,-0.292484,0.556961,-863.20747,-357.552241,2455.64332,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ -0.79057,-0.348586,0.503476,-921.587711,-381.734129,2361.464898,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ -0.777333,-0.292484,0.556961,-863.20747,-357.552241,2455.64332,
+ -0.795831,-0.241413,0.555314,-887.227323,-278.369396,2455.64332,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ -0.795831,-0.241413,0.555314,-887.227323,-278.369396,2455.64332,
+ -0.795831,-0.241413,0.555314,-914.651019,-187.965588,2455.64332,
+ -0.843385,-0.187656,0.503476,-978.352295,-194.606371,2361.464898,
+ -0.795831,-0.241413,0.555314,-914.651019,-187.965588,2455.64332,
+ -0.819458,-0.135214,0.556961,-916.376162,-182.278552,2455.64332,
+ 0,0,-1,-650.663002,0,587.016307,
+ 0,0,-1,-731.120069,-145.428824,587.016307,
+ 0,0,-1,-745.443558,0,587.016307,
+ 0,0,-1,-731.120069,-145.428824,587.016307,
+ 0,0,-1,-650.663002,0,587.016307,
+ 0,0,-1,-688.700045,-285.268899,587.016307,
+ 0,0,-1,-688.700045,-285.268899,587.016307,
+ 0,0,-1,-650.663002,0,587.016307,
+ 0,0,-1,-619.813666,-414.146251,587.016307,
+ 0,0,-1,-619.813666,-414.146251,587.016307,
+ 0,0,-1,-650.663002,0,587.016307,
+ 0,0,-1,-638.160695,-126.938055,587.016307,
+ 0,0,-1,-619.813666,-414.146251,587.016307,
+ 0,0,-1,-638.160695,-126.938055,587.016307,
+ 0,0,-1,-601.13423,-248.997951,587.016307,
+ 0,0,-1,-619.813666,-414.146251,587.016307,
+ 0,0,-1,-601.13423,-248.997951,587.016307,
+ 0,0,-1,-527.108195,-527.108195,587.016307,
+ 0,0,-1,-527.108195,-527.108195,587.016307,
+ 0,0,-1,-601.13423,-248.997951,587.016307,
+ 0,0,-1,-541.006514,-361.488996,587.016307,
+ 0,0,-1,-527.108195,-527.108195,587.016307,
+ 0,0,-1,-541.006514,-361.488996,587.016307,
+ 0,0,-1,-460.088221,-460.088221,587.016307,
+ 0,0,-1,-527.108195,-527.108195,587.016307,
+ 0,0,-1,-460.088221,-460.088221,587.016307,
+ 0,0,-1,-414.146251,-619.813666,587.016307,
+ 0,0,-1,-414.146251,-619.813666,587.016307,
+ 0,0,-1,-460.088221,-460.088221,587.016307,
+ 0,0,-1,-361.488996,-541.006514,587.016307,
+ 0,0,-1,-414.146251,-619.813666,587.016307,
+ 0,0,-1,-361.488996,-541.006514,587.016307,
+ 0,0,-1,-285.268899,-688.700045,587.016307,
+ 0,0,-1,-285.268899,-688.700045,587.016307,
+ 0,0,-1,-361.488996,-541.006514,587.016307,
+ 0,0,-1,-248.997951,-601.13423,587.016307,
+ 0,0,-1,-285.268899,-688.700045,587.016307,
+ 0,0,-1,-248.997951,-601.13423,587.016307,
+ 0,0,-1,-145.428824,-731.120069,587.016307,
+ 0,0,-1,-145.428824,-731.120069,587.016307,
+ 0,0,-1,-248.997951,-601.13423,587.016307,
+ 0,0,-1,-126.938055,-638.160695,587.016307,
+ 0,0,-1,-145.428824,-731.120069,587.016307,
+ 0,0,-1,-126.938055,-638.160695,587.016307,
+ 0,0,-1,0,-745.443558,587.016307,
+ 0,0,-1,0,-745.443558,587.016307,
+ 0,0,-1,-126.938055,-638.160695,587.016307,
+ 0,0,-1,0,-650.663002,587.016307,
+ 0,0,-1,0,-745.443558,587.016307,
+ 0,0,-1,0,-650.663002,587.016307,
+ 0,0,-1,126.938055,-638.160695,587.016307,
+ 0,0,-1,0,-745.443558,587.016307,
+ 0,0,-1,126.938055,-638.160695,587.016307,
+ 0,0,-1,145.428824,-731.120069,587.016307,
+ 0,0,-1,145.428824,-731.120069,587.016307,
+ 0,0,-1,126.938055,-638.160695,587.016307,
+ 0,0,-1,248.997951,-601.13423,587.016307,
+ 0,0,-1,145.428824,-731.120069,587.016307,
+ 0,0,-1,248.997951,-601.13423,587.016307,
+ 0,0,-1,285.268899,-688.700045,587.016307,
+ 0,0,-1,285.268899,-688.700045,587.016307,
+ 0,0,-1,248.997951,-601.13423,587.016307,
+ 0,0,-1,361.488996,-541.006514,587.016307,
+ 0,0,-1,285.268899,-688.700045,587.016307,
+ 0,0,-1,361.488996,-541.006514,587.016307,
+ 0,0,-1,414.146251,-619.813666,587.016307,
+ 0,0,-1,414.146251,-619.813666,587.016307,
+ 0,0,-1,361.488996,-541.006514,587.016307,
+ 0,0,-1,460.088221,-460.088221,587.016307,
+ 0,0,-1,414.146251,-619.813666,587.016307,
+ 0,0,-1,460.088221,-460.088221,587.016307,
+ 0,0,-1,527.108195,-527.108195,587.016307,
+ 0,0,-1,527.108195,-527.108195,587.016307,
+ 0,0,-1,460.088221,-460.088221,587.016307,
+ 0,0,-1,541.006514,-361.488996,587.016307,
+ 0,0,-1,527.108195,-527.108195,587.016307,
+ 0,0,-1,541.006514,-361.488996,587.016307,
+ 0,0,-1,610.800046,-425.129379,587.016307,
+ 0,0,-1,610.800046,-425.129379,587.016307,
+ 0,0,-1,541.006514,-361.488996,587.016307,
+ 0,0,-1,601.13423,-248.997951,587.016307,
+ 0,0,-1,610.800046,-425.129379,587.016307,
+ 0,0,-1,601.13423,-248.997951,587.016307,
+ 0,0,-1,638.160695,-126.938055,587.016307,
+ 0,0,-1,610.800046,-425.129379,587.016307,
+ 0,0,-1,638.160695,-126.938055,587.016307,
+ 0,0,-1,619.813666,-414.146251,587.016307,
+ 0,0,-1,619.813666,-414.146251,587.016307,
+ 0,0,-1,638.160695,-126.938055,587.016307,
+ 0,0,-1,648.718891,-360.068379,587.016307,
+ 0,0,-1,648.718891,-360.068379,587.016307,
+ 0,0,-1,638.160695,-126.938055,587.016307,
+ 0,0,-1,650.663002,0,587.016307,
+ 0,0,-1,648.718891,-360.068379,587.016307,
+ 0,0,-1,650.663002,0,587.016307,
+ 0,0,-1,684.232405,-293.627267,587.016307,
+ 0,0,-1,684.232405,-293.627267,587.016307,
+ 0,0,-1,650.663002,0,587.016307,
+ 0,0,-1,745.443558,0,587.016307,
+ 0,0,-1,684.232405,-293.627267,587.016307,
+ 0,0,-1,745.443558,0,587.016307,
+ 0,0,-1,688.700045,-285.268899,587.016307,
+ 0,0,-1,688.700045,-285.268899,587.016307,
+ 0,0,-1,745.443558,0,587.016307,
+ 0,0,-1,707.864018,-222.093747,587.016307,
+ 0,0,-1,707.864018,-222.093747,587.016307,
+ 0,0,-1,745.443558,0,587.016307,
+ 0,0,-1,731.120069,-145.428824,587.016307,
+ -0.918011,-0.379912,-0.113678,-782.993204,-324.326404,796.15315,
+ -0.798598,-0.532672,-0.280182,-694.940121,-464.344144,738.078199,
+ -0.826255,-0.551707,-0.113678,-704.675266,-470.848959,796.15315,
+ -0.798598,-0.532672,-0.280182,-694.940121,-464.344144,738.078199,
+ -0.918011,-0.379912,-0.113678,-782.993204,-324.326404,796.15315,
+ -0.887172,-0.366638,-0.280182,-772.17609,-319.845809,738.078199,
+ 0.966926,-0.191862,-0.168059,1051.797109,-209.215453,1922.192772,
+ 0.994307,-0.097931,-0.041998,1079.968548,0,2011.592523,
+ 0.972989,-0.226965,-0.042178,1059.217255,-210.691412,2011.592523,
+ 0.994307,-0.097931,-0.041998,1079.968548,0,2011.592523,
+ 0.966926,-0.191862,-0.168059,1051.797109,-209.215453,1922.192772,
+ 0.976104,-0.096138,-0.19488,1072.403033,0,1922.192772,
+ -0.032696,-0.995906,-0.084279,0,-1078.123237,1989.786957,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ 0.014463,-0.987633,-0.156114,0,-1072.403033,1922.192772,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ -0.032696,-0.995906,-0.084279,0,-1078.123237,1989.786957,
+ -0.097671,-0.991674,-0.083921,-1.468161,-1077.966399,1989.642356,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ -0.097671,-0.991674,-0.083921,-10.248119,-1077.174828,1990.507106,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.097671,-0.991674,-0.083921,-10.248119,-1077.174828,1990.507106,
+ -0.168431,-0.974672,-0.147124,-209.215453,-1051.797109,1922.192772,
+ -0.097671,-0.991674,-0.083921,-1.468161,-1077.966399,1989.642356,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.097671,-0.991674,-0.083921,-10.248119,-1077.174828,1990.507106,
+ -0.097671,-0.991674,-0.083921,-18.690668,-1076.560038,1993.068126,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.097671,-0.991674,-0.083921,-18.690668,-1076.560038,1993.068126,
+ -0.097671,-0.991674,-0.083921,-26.471367,-1076.145653,1997.226995,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.097671,-0.991674,-0.083921,-26.471367,-1076.145653,1997.226995,
+ -0.097671,-0.991674,-0.083921,-33.291206,-1075.947599,2002.823893,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.097671,-0.991674,-0.083921,-33.291206,-1075.947599,2002.823893,
+ -0.097671,-0.991674,-0.083921,-38.888103,-1075.973486,2009.643732,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.097671,-0.991674,-0.083921,-38.888103,-1075.973486,2009.643732,
+ -0.097931,-0.994307,-0.041998,-39.929753,-1076.03581,2011.592523,
+ -0.973856,-0,0.227168,42.671671,-1075.765755,2025.866979,
+ -0.935939,0,0.352162,40.110651,-976.014545,2017.42443,
+ -0.903939,-0,0.427662,40.110651,-1076.017993,2017.42443,
+ -0.935939,0,0.352162,40.110651,-976.014545,2017.42443,
+ -0.973856,-0,0.227168,42.671671,-1075.765755,2025.866979,
+ -0.986659,-0,0.162803,42.671671,-976.267681,2025.866979,
+ 0.909392,-0.412143,0.056077,784.574342,-324.981333,855.371869,
+ 0.840814,-0.522742,0.140615,699.168033,-467.169144,914.026067,
+ 0.811513,-0.581637,0.056077,706.098253,-471.799769,855.371869,
+ 0.840814,-0.522742,0.140615,699.168033,-467.169144,914.026067,
+ 0.909392,-0.412143,0.056077,784.574342,-324.981333,855.371869,
+ 0.92664,-0.348663,0.140615,776.873894,-321.791703,914.026067,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-925.063958,-94.069882,1614.76108,
+ 0,0,-1,-934.329033,0,1614.76108,
+ 0,0,-1,-925.063958,-94.069882,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-916.376162,-182.278552,1614.76108,
+ 0,0,-1,-916.376162,-182.278552,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-914.651019,-187.965588,1614.76108,
+ 0,0,-1,-914.651019,-187.965588,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-887.227324,-278.369395,1614.76108,
+ 0,0,-1,-887.227324,-278.369395,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-863.20747,-357.552241,1614.76108,
+ 0,0,-1,-863.20747,-357.552241,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-857.607798,-368.02849,1614.76108,
+ 0,0,-1,-857.607798,-368.02849,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-813.095616,-451.304926,1614.76108,
+ 0,0,-1,-813.095616,-451.304926,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-776.866198,-519.085398,1614.76108,
+ 0,0,-1,-776.866198,-519.085398,1614.76108,
+ 0,0,-1,-794.166564,0,1614.76108,
+ 0,0,-1,-778.906876,-154.934211,1614.76108,
+ 0,0,-1,-776.866198,-519.085398,1614.76108,
+ 0,0,-1,-778.906876,-154.934211,1614.76108,
+ 0,0,-1,-733.714234,-303.914386,1614.76108,
+ 0,0,-1,-776.866198,-519.085398,1614.76108,
+ 0,0,-1,-733.714234,-303.914386,1614.76108,
+ 0,0,-1,-765.568614,-532.851545,1614.76108,
+ 0,0,-1,-765.568614,-532.851545,1614.76108,
+ 0,0,-1,-733.714234,-303.914386,1614.76108,
+ 0,0,-1,-705.689426,-605.814546,1614.76108,
+ 0,0,-1,-705.689426,-605.814546,1614.76108,
+ 0,0,-1,-733.714234,-303.914386,1614.76108,
+ 0,0,-1,-660.325365,-441.215303,1614.76108,
+ 0,0,-1,-705.689426,-605.814546,1614.76108,
+ 0,0,-1,-660.325365,-441.215303,1614.76108,
+ 0,0,-1,-660.670395,-660.670395,1614.76108,
+ 0,0,-1,-660.670395,-660.670395,1614.76108,
+ 0,0,-1,-660.325365,-441.215303,1614.76108,
+ 0,0,-1,-642.325255,-675.725862,1614.76108,
+ 0,0,-1,-642.325255,-675.725862,1614.76108,
+ 0,0,-1,-660.325365,-441.215303,1614.76108,
+ 0,0,-1,-561.560563,-561.560563,1614.76108,
+ 0,0,-1,-642.325255,-675.725862,1614.76108,
+ 0,0,-1,-561.560563,-561.560563,1614.76108,
+ 0,0,-1,-569.385752,-735.585765,1614.76108,
+ 0,0,-1,-569.385752,-735.585765,1614.76108,
+ 0,0,-1,-561.560563,-561.560563,1614.76108,
+ 0,0,-1,-519.085398,-776.866198,1614.76108,
+ 0,0,-1,-519.085398,-776.866198,1614.76108,
+ 0,0,-1,-561.560563,-561.560563,1614.76108,
+ 0,0,-1,-441.215303,-660.325365,1614.76108,
+ 0,0,-1,-519.085398,-776.866198,1614.76108,
+ 0,0,-1,-441.215303,-660.325365,1614.76108,
+ 0,0,-1,-492.936329,-790.843167,1614.76108,
+ 0,0,-1,-492.936329,-790.843167,1614.76108,
+ 0,0,-1,-441.215303,-660.325365,1614.76108,
+ 0,0,-1,-409.740279,-835.312382,1614.76108,
+ 0,0,-1,-409.740279,-835.312382,1614.76108,
+ 0,0,-1,-441.215303,-660.325365,1614.76108,
+ 0,0,-1,-303.914386,-733.714234,1614.76108,
+ 0,0,-1,-409.740279,-835.312382,1614.76108,
+ 0,0,-1,-303.914386,-733.714234,1614.76108,
+ 0,0,-1,-357.552241,-863.20747,1614.76108,
+ 0,0,-1,-357.552241,-863.20747,1614.76108,
+ 0,0,-1,-303.914386,-733.714234,1614.76108,
+ 0,0,-1,-323.520318,-873.530941,1614.76108,
+ 0,0,-1,-323.520318,-873.530941,1614.76108,
+ 0,0,-1,-303.914386,-733.714234,1614.76108,
+ 0,0,-1,-233.261862,-900.910544,1614.76108,
+ 0,0,-1,-233.261862,-900.910544,1614.76108,
+ 0,0,-1,-303.914386,-733.714234,1614.76108,
+ 0,0,-1,-154.934211,-778.906876,1614.76108,
+ 0,0,-1,-233.261862,-900.910544,1614.76108,
+ 0,0,-1,-154.934211,-778.906876,1614.76108,
+ 0,0,-1,-182.278552,-916.376162,1614.76108,
+ 0,0,-1,-182.278552,-916.376162,1614.76108,
+ 0,0,-1,-154.934211,-778.906876,1614.76108,
+ 0,0,-1,-141.006395,-920.441115,1614.76108,
+ 0,0,-1,-141.006395,-920.441115,1614.76108,
+ 0,0,-1,-154.934211,-778.906876,1614.76108,
+ 0,0,-1,0,-794.166564,1614.76108,
+ 0,0,-1,-141.006395,-920.441115,1614.76108,
+ 0,0,-1,0,-794.166564,1614.76108,
+ 0,0,-1,-47.148297,-929.685331,1614.76108,
+ 0,0,-1,-47.148297,-929.685331,1614.76108,
+ 0,0,-1,0,-794.166564,1614.76108,
+ 0,0,-1,0,-934.329033,1614.76108,
+ 0,0,-1,0,-934.329033,1614.76108,
+ 0,0,-1,0,-794.166564,1614.76108,
+ 0,0,-1,154.934211,-778.906876,1614.76108,
+ 0,0,-1,0,-934.329033,1614.76108,
+ 0,0,-1,154.934211,-778.906876,1614.76108,
+ 0,0,-1,47.148336,-929.685327,1614.76108,
+ 0,0,-1,47.148336,-929.685327,1614.76108,
+ 0,0,-1,154.934211,-778.906876,1614.76108,
+ 0,0,-1,141.006389,-920.441115,1614.76108,
+ 0,0,-1,141.006389,-920.441115,1614.76108,
+ 0,0,-1,154.934211,-778.906876,1614.76108,
+ 0,0,-1,182.278552,-916.376162,1614.76108,
+ 0,0,-1,182.278552,-916.376162,1614.76108,
+ 0,0,-1,154.934211,-778.906876,1614.76108,
+ 0,0,-1,303.914386,-733.714234,1614.76108,
+ 0,0,-1,182.278552,-916.376162,1614.76108,
+ 0,0,-1,303.914386,-733.714234,1614.76108,
+ 0,0,-1,233.261899,-900.910533,1614.76108,
+ 0,0,-1,233.261899,-900.910533,1614.76108,
+ 0,0,-1,303.914386,-733.714234,1614.76108,
+ 0,0,-1,323.520353,-873.53093,1614.76108,
+ 0,0,-1,323.520353,-873.53093,1614.76108,
+ 0,0,-1,303.914386,-733.714234,1614.76108,
+ 0,0,-1,441.215303,-660.325365,1614.76108,
+ 0,0,-1,323.520353,-873.53093,1614.76108,
+ 0,0,-1,441.215303,-660.325365,1614.76108,
+ 0,0,-1,357.552241,-863.20747,1614.76108,
+ 0,0,-1,357.552241,-863.20747,1614.76108,
+ 0,0,-1,441.215303,-660.325365,1614.76108,
+ 0,0,-1,409.740311,-835.312366,1614.76108,
+ 0,0,-1,409.740311,-835.312366,1614.76108,
+ 0,0,-1,441.215303,-660.325365,1614.76108,
+ 0,0,-1,492.936359,-790.843151,1614.76108,
+ 0,0,-1,492.936359,-790.843151,1614.76108,
+ 0,0,-1,441.215303,-660.325365,1614.76108,
+ 0,0,-1,561.560563,-561.560563,1614.76108,
+ 0,0,-1,492.936359,-790.843151,1614.76108,
+ 0,0,-1,561.560563,-561.560563,1614.76108,
+ 0,0,-1,519.085398,-776.866198,1614.76108,
+ 0,0,-1,519.085398,-776.866198,1614.76108,
+ 0,0,-1,561.560563,-561.560563,1614.76108,
+ 0,0,-1,569.385776,-735.585745,1614.76108,
+ 0,0,-1,569.385776,-735.585745,1614.76108,
+ 0,0,-1,561.560563,-561.560563,1614.76108,
+ 0,0,-1,660.325365,-441.215303,1614.76108,
+ 0,0,-1,569.385776,-735.585745,1614.76108,
+ 0,0,-1,660.325365,-441.215303,1614.76108,
+ 0,0,-1,642.325277,-675.725844,1614.76108,
+ 0,0,-1,642.325277,-675.725844,1614.76108,
+ 0,0,-1,660.325365,-441.215303,1614.76108,
+ 0,0,-1,660.670395,-660.670395,1614.76108,
+ 0,0,-1,660.670395,-660.670395,1614.76108,
+ 0,0,-1,660.325365,-441.215303,1614.76108,
+ 0,0,-1,733.714234,-303.914386,1614.76108,
+ 0,0,-1,660.670395,-660.670395,1614.76108,
+ 0,0,-1,733.714234,-303.914386,1614.76108,
+ 0,0,-1,705.689443,-605.814526,1614.76108,
+ 0,0,-1,705.689443,-605.814526,1614.76108,
+ 0,0,-1,733.714234,-303.914386,1614.76108,
+ 0,0,-1,765.568628,-532.851527,1614.76108,
+ 0,0,-1,765.568628,-532.851527,1614.76108,
+ 0,0,-1,733.714234,-303.914386,1614.76108,
+ 0,0,-1,778.906876,-154.934211,1614.76108,
+ 0,0,-1,765.568628,-532.851527,1614.76108,
+ 0,0,-1,778.906876,-154.934211,1614.76108,
+ 0,0,-1,776.866198,-519.085398,1614.76108,
+ 0,0,-1,776.866198,-519.085398,1614.76108,
+ 0,0,-1,778.906876,-154.934211,1614.76108,
+ 0,0,-1,813.095625,-451.304909,1614.76108,
+ 0,0,-1,813.095625,-451.304909,1614.76108,
+ 0,0,-1,778.906876,-154.934211,1614.76108,
+ 0,0,-1,794.166564,0,1614.76108,
+ 0,0,-1,813.095625,-451.304909,1614.76108,
+ 0,0,-1,794.166564,0,1614.76108,
+ 0,0,-1,934.329033,0,1614.76108,
+ 0,0,-1,813.095625,-451.304909,1614.76108,
+ 0,0,-1,934.329033,0,1614.76108,
+ 0,0,-1,857.607806,-368.028476,1614.76108,
+ 0,0,-1,857.607806,-368.028476,1614.76108,
+ 0,0,-1,934.329033,0,1614.76108,
+ 0,0,-1,863.20747,-357.552241,1614.76108,
+ 0,0,-1,863.20747,-357.552241,1614.76108,
+ 0,0,-1,934.329033,0,1614.76108,
+ 0,0,-1,887.227327,-278.369384,1614.76108,
+ 0,0,-1,887.227327,-278.369384,1614.76108,
+ 0,0,-1,934.329033,0,1614.76108,
+ 0,0,-1,914.651021,-187.96558,1614.76108,
+ 0,0,-1,914.651021,-187.96558,1614.76108,
+ 0,0,-1,934.329033,0,1614.76108,
+ 0,0,-1,925.063958,-94.069878,1614.76108,
+ 0,0,-1,914.651021,-187.96558,1614.76108,
+ 0,0,-1,925.063958,-94.069878,1614.76108,
+ 0,0,-1,916.376162,-182.278552,1614.76108,
+ 0.798598,-0.532672,-0.280182,694.940121,-464.344144,738.078199,
+ 0.918011,-0.379912,-0.113678,782.993204,-324.326404,796.15315,
+ 0.826255,-0.551707,-0.113678,704.675266,-470.848959,796.15315,
+ 0.918011,-0.379912,-0.113678,782.993204,-324.326404,796.15315,
+ 0.798598,-0.532672,-0.280182,694.940121,-464.344144,738.078199,
+ 0.887172,-0.366638,-0.280182,772.17609,-319.845809,738.078199,
+ -0.358504,-0.819473,0.447144,-303.914386,-733.714234,1614.76108,
+ -0.422036,-0.789573,0.445488,-389.246833,-793.533662,1427.89836,
+ -0.342282,-0.826343,0.447214,-339.66902,-820.033555,1427.89836,
+ -0.422036,-0.789573,0.445488,-389.246833,-793.533662,1427.89836,
+ -0.358504,-0.819473,0.447144,-303.914386,-733.714234,1614.76108,
+ -0.422036,-0.789573,0.445488,-468.281767,-751.288609,1427.89836,
+ -0.422036,-0.789573,0.445488,-468.281767,-751.288609,1427.89836,
+ -0.511487,-0.733787,0.447144,-441.215303,-660.325365,1614.76108,
+ -0.496917,-0.743689,0.447214,-493.122985,-738.010701,1427.89836,
+ -0.511487,-0.733787,0.447144,-441.215303,-660.325365,1614.76108,
+ -0.422036,-0.789573,0.445488,-468.281767,-751.288609,1427.89836,
+ -0.358504,-0.819473,0.447144,-303.914386,-733.714234,1614.76108,
+ -0.707107,0,-0.707107,30.354884,-1076.33078,2066.469982,
+ -0.83147,0,-0.55557,35.951781,-976.024878,2059.650143,
+ -0.849252,-0,-0.527988,35.951781,-1076.356667,2059.650143,
+ -0.83147,0,-0.55557,35.951781,-976.024878,2059.650143,
+ -0.707107,0,-0.707107,30.354884,-1076.33078,2066.469982,
+ -0.707107,0,-0.707107,30.354884,-976.167886,2066.469982,
+ -0.55557,0,-0.83147,23.535045,-976.504549,2072.06688,
+ -0.707107,0,-0.707107,30.354884,-1076.33078,2066.469982,
+ -0.55557,0,-0.83147,23.535045,-1076.528834,2072.06688,
+ -0.707107,0,-0.707107,30.354884,-1076.33078,2066.469982,
+ -0.55557,0,-0.83147,23.535045,-976.504549,2072.06688,
+ -0.707107,0,-0.707107,30.354884,-976.167886,2066.469982,
+ -0.705651,-0.708302,0.019122,-758.928833,-874.671572,1963.870632,
+ -0.705651,-0.708302,0.019122,-785.140115,-848.157193,1978.730924,
+ -0.705651,-0.708302,0.019122,-801.544846,-831.814429,1978.709589,
+ -0.705651,-0.708302,0.019122,-785.140115,-848.157193,1978.730924,
+ -0.705651,-0.708302,0.019122,-758.928833,-874.671572,1963.870632,
+ -0.705651,-0.708302,0.019122,-741.432258,-891.447302,1988.145993,
+ -0.705651,-0.708302,0.019122,-785.140115,-848.157193,1978.730924,
+ -0.705651,-0.708302,0.019122,-741.432258,-891.447302,1988.145993,
+ -0.705651,-0.708302,0.019122,-769.870311,-863.13013,1987.610439,
+ -0.705651,-0.708302,0.019122,-769.870311,-863.13013,1987.610439,
+ -0.705651,-0.708302,0.019122,-741.432258,-891.447302,1988.145993,
+ -0.705651,-0.708302,0.019122,-758.060123,-874.453748,2003.996308,
+ -0.705651,-0.708302,0.019122,-758.060123,-874.453748,2003.996308,
+ -0.705651,-0.708302,0.019122,-741.432258,-891.447302,1988.145993,
+ -0.705651,-0.708302,0.019122,-731.724734,-900.26268,2019.846175,
+ -0.705651,-0.708302,0.019122,-758.060123,-874.453748,2003.996308,
+ -0.705651,-0.708302,0.019122,-731.724734,-900.26268,2019.846175,
+ -0.705651,-0.708302,0.019122,-751.507545,-880.404128,2025.39393,
+ -0.705651,-0.708302,0.019122,-751.507545,-880.404128,2025.39393,
+ -0.705651,-0.708302,0.019122,-731.724734,-900.26268,2019.846175,
+ -0.705651,-0.708302,0.019122,-731.284145,-899.775643,2054.145111,
+ -0.705651,-0.708302,0.019122,-751.507545,-880.404128,2025.39393,
+ -0.705651,-0.708302,0.019122,-731.284145,-899.775643,2054.145111,
+ -0.705651,-0.708302,0.019122,-751.210147,-880.075378,2048.545713,
+ -0.705651,-0.708302,0.019122,-751.210147,-880.075378,2048.545713,
+ -0.705651,-0.708302,0.019122,-731.284145,-899.775643,2054.145111,
+ -0.705651,-0.708302,0.019122,-757.213206,-873.517548,2069.927006,
+ -0.705651,-0.708302,0.019122,-757.213206,-873.517548,2069.927006,
+ -0.705651,-0.708302,0.019122,-731.284145,-899.775643,2054.145111,
+ -0.705651,-0.708302,0.019122,-740.177565,-890.06034,2085.821102,
+ -0.705651,-0.708302,0.019122,-757.213206,-873.517548,2069.927006,
+ -0.705651,-0.708302,0.019122,-740.177565,-890.06034,2085.821102,
+ -0.705651,-0.708302,0.019122,-768.60281,-861.729009,2086.282702,
+ -0.705651,-0.708302,0.019122,-768.60281,-861.729009,2086.282702,
+ -0.705651,-0.708302,0.019122,-740.177565,-890.06034,2085.821102,
+ -0.705651,-0.708302,0.019122,-757.051053,-872.595836,2110.051763,
+ -0.705651,-0.708302,0.019122,-768.60281,-861.729009,2086.282702,
+ -0.705651,-0.708302,0.019122,-757.051053,-872.595836,2110.051763,
+ -0.705651,-0.708302,0.019122,-783.644995,-846.504457,2095.122795,
+ -0.705651,-0.708302,0.019122,-783.644995,-846.504457,2095.122795,
+ -0.705651,-0.708302,0.019122,-757.051053,-872.595836,2110.051763,
+ -0.705651,-0.708302,0.019122,-826.261008,-803.647314,2109.961752,
+ -0.705651,-0.708302,0.019122,-826.261008,-803.647314,2109.961752,
+ -0.705651,-0.708302,0.019122,-757.051053,-872.595836,2110.051763,
+ -0.705651,-0.708302,0.019122,-803.639077,-825.829444,2123.116588,
+ -0.705651,-0.708302,0.019122,-803.639077,-825.829444,2123.116588,
+ -0.705651,-0.708302,0.019122,-757.051053,-872.595836,2110.051763,
+ -0.705651,-0.708302,0.019122,-779.335772,-850.040945,2123.148196,
+ -0.705651,-0.708302,0.019122,-781.550765,-852.489443,1950.715796,
+ -0.705651,-0.708302,0.019122,-828.138788,-805.72305,1963.780621,
+ -0.705651,-0.708302,0.019122,-805.854069,-828.277941,1950.684188,
+ -0.705651,-0.708302,0.019122,-828.138788,-805.72305,1963.780621,
+ -0.705651,-0.708302,0.019122,-781.550765,-852.489443,1950.715796,
+ -0.705651,-0.708302,0.019122,-758.928833,-874.671572,1963.870632,
+ -0.705651,-0.708302,0.019122,-828.138788,-805.72305,1963.780621,
+ -0.705651,-0.708302,0.019122,-758.928833,-874.671572,1963.870632,
+ -0.705651,-0.708302,0.019122,-845.012276,-788.258547,1988.011282,
+ -0.705651,-0.708302,0.019122,-845.012276,-788.258547,1988.011282,
+ -0.705651,-0.708302,0.019122,-758.928833,-874.671572,1963.870632,
+ -0.705651,-0.708302,0.019122,-801.544846,-831.814429,1978.709589,
+ -0.705651,-0.708302,0.019122,-845.012276,-788.258547,1988.011282,
+ -0.705651,-0.708302,0.019122,-801.544846,-831.814429,1978.709589,
+ -0.705651,-0.708302,0.019122,-816.587031,-816.589878,1987.549682,
+ -0.705651,-0.708302,0.019122,-845.012276,-788.258547,1988.011282,
+ -0.705651,-0.708302,0.019122,-816.587031,-816.589878,1987.549682,
+ -0.705651,-0.708302,0.019122,-827.976635,-804.801338,2003.905378,
+ -0.705651,-0.708302,0.019122,-845.012276,-788.258547,1988.011282,
+ -0.705651,-0.708302,0.019122,-827.976635,-804.801338,2003.905378,
+ -0.705651,-0.708302,0.019122,-853.905696,-778.543243,2019.687273,
+ -0.705651,-0.708302,0.019122,-853.905696,-778.543243,2019.687273,
+ -0.705651,-0.708302,0.019122,-827.976635,-804.801338,2003.905378,
+ -0.705651,-0.708302,0.019122,-833.979694,-798.243508,2025.286671,
+ -0.705651,-0.708302,0.019122,-853.905696,-778.543243,2019.687273,
+ -0.705651,-0.708302,0.019122,-833.979694,-798.243508,2025.286671,
+ -0.705651,-0.708302,0.019122,-853.465107,-778.056207,2053.98621,
+ -0.705651,-0.708302,0.019122,-853.465107,-778.056207,2053.98621,
+ -0.705651,-0.708302,0.019122,-833.979694,-798.243508,2025.286671,
+ -0.705651,-0.708302,0.019122,-833.682296,-797.914759,2048.438454,
+ -0.705651,-0.708302,0.019122,-853.465107,-778.056207,2053.98621,
+ -0.705651,-0.708302,0.019122,-833.682296,-797.914759,2048.438454,
+ -0.705651,-0.708302,0.019122,-827.129718,-803.865138,2069.836076,
+ -0.705651,-0.708302,0.019122,-853.465107,-778.056207,2053.98621,
+ -0.705651,-0.708302,0.019122,-827.129718,-803.865138,2069.836076,
+ -0.705651,-0.708302,0.019122,-843.757583,-786.871584,2085.686391,
+ -0.705651,-0.708302,0.019122,-843.757583,-786.871584,2085.686391,
+ -0.705651,-0.708302,0.019122,-827.129718,-803.865138,2069.836076,
+ -0.705651,-0.708302,0.019122,-815.31953,-815.188756,2086.221945,
+ -0.705651,-0.708302,0.019122,-843.757583,-786.871584,2085.686391,
+ -0.705651,-0.708302,0.019122,-815.31953,-815.188756,2086.221945,
+ -0.705651,-0.708302,0.019122,-826.261008,-803.647314,2109.961752,
+ -0.705651,-0.708302,0.019122,-826.261008,-803.647314,2109.961752,
+ -0.705651,-0.708302,0.019122,-815.31953,-815.188756,2086.221945,
+ -0.705651,-0.708302,0.019122,-800.049726,-830.161694,2095.10146,
+ -0.705651,-0.708302,0.019122,-826.261008,-803.647314,2109.961752,
+ -0.705651,-0.708302,0.019122,-800.049726,-830.161694,2095.10146,
+ -0.705651,-0.708302,0.019122,-783.644995,-846.504457,2095.122795,
+ 0.986659,-0,0.162803,-45.607992,-975.978478,2025.866979,
+ 0.999806,0,-0.019694,-46.472742,-1075.391382,2034.646937,
+ 0.973856,0,0.227168,-45.607992,-1075.476552,2025.866979,
+ 0.999806,0,-0.019694,-46.472742,-1075.391382,2034.646937,
+ 0.986659,-0,0.162803,-45.607992,-975.978478,2025.866979,
+ 1,0,0,-46.472742,-976.41888,2034.646937,
+ 0,0.986659,-0.162803,180.675225,-1011.80212,2078.49259,
+ 0,0.999462,-0.032813,653.750225,-1016.065853,2035.202177,
+ 0,0.999462,0.032813,180.675225,-1016.065853,2035.202177,
+ 0,0.999462,-0.032813,653.750225,-1016.065853,2035.202177,
+ 0,0.986659,-0.162803,180.675225,-1011.80212,2078.49259,
+ 0,0.973856,-0.227168,653.750225,-1011.80212,2078.49259,
+ 0,-0.707107,-0.707107,653.750225,-966.763694,1862.604996,
+ 0.14518,-0.877819,-0.456461,406.150723,-980.534583,1879.384872,
+ 0,-0.707107,-0.707107,422.745208,-966.763694,1862.604996,
+ 0.14518,-0.877819,-0.456461,406.150723,-980.534583,1879.384872,
+ 0,-0.707107,-0.707107,653.750225,-966.763694,1862.604996,
+ 0,-0.812792,-0.582554,653.750225,-997.119327,1899.593442,
+ 0.14518,-0.877819,-0.456461,406.150723,-980.534583,1879.384872,
+ 0,-0.812792,-0.582554,653.750225,-997.119327,1899.593442,
+ 0.115001,-0.89802,-0.424659,369.41032,-997.119327,1899.593442,
+ 0,-0.19509,-0.980785,653.750225,-841.785968,1795.80301,
+ 0,-0.227168,-0.973856,600.307476,-841.785968,1795.80301,
+ 0,-0.098017,-0.995185,653.750225,-795.278099,1791.222384,
+ -0.352162,0,-0.935939,15.754347,-977.02193,2076.225749,
+ -0.227168,0,-0.973856,7.311798,-1077.55801,2078.786769,
+ -0.162803,-0,-0.986659,7.311798,-977.700144,2078.786769,
+ -0.227168,0,-0.973856,7.311798,-1077.55801,2078.786769,
+ -0.352162,0,-0.935939,15.754347,-977.02193,2076.225749,
+ -0.412792,0,-0.910825,15.754347,-1076.943219,2076.225749,
+ -0.000463,-0.985777,0.168059,0,-1072.403033,2148.211628,
+ -0.097671,-0.991674,0.083921,-1.468161,-1078.060378,2079.651519,
+ 0.032696,-0.995906,0.084279,0,-1078.217216,2079.506918,
+ -0.097671,-0.991674,0.083921,-38.888103,-1076.067465,2059.650143,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.097931,-0.994307,0.041998,-39.336165,-1076.094273,2058.811877,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.097671,-0.991674,0.083921,-38.888103,-1076.067465,2059.650143,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.097671,-0.991674,0.083921,-38.888103,-1076.067465,2059.650143,
+ -0.097671,-0.991674,0.083921,-33.291206,-1076.041578,2066.469982,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.097671,-0.991674,0.083921,-33.291206,-1076.041578,2066.469982,
+ -0.097671,-0.991674,0.083921,-26.471367,-1076.239632,2072.06688,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.097671,-0.991674,0.083921,-26.471367,-1076.239632,2072.06688,
+ -0.097671,-0.991674,0.083921,-18.690668,-1076.654017,2076.225749,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.097671,-0.991674,0.083921,-18.690668,-1076.654017,2076.225749,
+ -0.097671,-0.991674,0.083921,-10.248119,-1077.268807,2078.786769,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.097671,-0.991674,0.083921,-10.248119,-1077.268807,2078.786769,
+ -0.097671,-0.991674,0.083921,-1.468161,-1078.060378,2079.651519,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.097671,-0.991674,0.083921,-1.468161,-1078.060378,2079.651519,
+ -0.000463,-0.985777,0.168059,0,-1072.403033,2148.211628,
+ -0.75819,-0.62223,-0.19488,-761.987077,-753.814953,1922.192772,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.684548,-0.684548,-0.250574,-757.858868,-757.858868,1919.763614,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.75819,-0.62223,-0.19488,-761.987077,-753.814953,1922.192772,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.785009,-0.523429,-0.331336,-868.041423,-580.006736,1812.397596,
+ -0,-0.894427,0.447214,0,-794.166564,1614.76108,
+ -0.087754,-0.890977,0.445488,-44.790103,-883.186483,1427.89836,
+ -0,-0.894427,0.447214,0,-887.597924,1427.89836,
+ -0.087754,-0.890977,0.445488,-44.790103,-883.186483,1427.89836,
+ -0.191744,-0.873668,0.447144,-154.934211,-778.906876,1614.76108,
+ -0.174494,-0.877241,0.447214,-173.161765,-870.542978,1427.89836,
+ -0.191744,-0.873668,0.447144,-154.934211,-778.906876,1614.76108,
+ -0.087754,-0.890977,0.445488,-44.790103,-883.186483,1427.89836,
+ -0,-0.894427,0.447214,0,-794.166564,1614.76108,
+ -0.029352,-0.894042,0.447021,0,-747.450884,1427.89836,
+ -0.145631,-0.882589,0.447021,-164.047988,-824.724927,1241.03564,
+ 0.029352,-0.894042,0.447021,0,-840.882244,1241.03564,
+ -0.145631,-0.882589,0.447021,-164.047988,-824.724927,1241.03564,
+ -0.029352,-0.894042,0.447021,0,-747.450884,1427.89836,
+ -0.203207,-0.871137,0.447021,-145.820434,-733.088824,1427.89836,
+ -0.632155,-0.770284,-0.083921,-702.965588,-809.153242,1972.08037,
+ -0.632155,-0.770284,-0.083921,-746.546206,-772.245717,1961.599842,
+ -0.632155,-0.770284,-0.083921,-723.636295,-790.983771,1961.015863,
+ -0.632155,-0.770284,-0.083921,-746.546206,-772.245717,1961.599842,
+ -0.632155,-0.770284,-0.083921,-702.965588,-809.153242,1972.08037,
+ -0.704588,-0.704588,-0.084324,-761.145932,-761.145932,1969.694508,
+ -0.704588,-0.704588,-0.084324,-761.145932,-761.145932,1969.694508,
+ -0.632155,-0.770284,-0.083921,-702.965588,-809.153242,1972.08037,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.632155,-0.770284,-0.083921,-702.965588,-809.153242,1972.08037,
+ -0.632155,-0.770284,-0.083921,-687.957453,-823.760435,1993.102587,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.632155,-0.770284,-0.083921,-687.957453,-823.760435,1993.102587,
+ -0.633834,-0.772328,-0.041998,-683.32915,-829.573232,2011.592523,
+ -0.000913,-0.943512,0.331336,0,-1043.984543,2258.006804,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.000463,-0.985777,0.168059,0,-1072.403033,2148.211628,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.000913,-0.943512,0.331336,0,-1043.984543,2258.006804,
+ -0.184965,-0.925205,0.331336,-203.671281,-1023.924672,2258.006804,
+ -0.10232,-0.445425,-0.889453,-712.20051,-793.069744,1912.981477,
+ 0.071382,-0.616271,-0.784292,-758.928833,-874.671572,1963.870632,
+ -0.188016,-0.3607,-0.913535,-781.550765,-852.489443,1950.715796,
+ 0.071382,-0.616271,-0.784292,-758.928833,-874.671572,1963.870632,
+ -0.10232,-0.445425,-0.889453,-712.20051,-793.069744,1912.981477,
+ -0.016378,-0.522321,-0.852592,-697.040319,-808.580815,1922.192772,
+ 0.071382,-0.616271,-0.784292,-758.928833,-874.671572,1963.870632,
+ -0.016378,-0.522321,-0.852592,-697.040319,-808.580815,1922.192772,
+ 0.093452,-0.638076,-0.764282,-679.407718,-824.046894,1931.329012,
+ -0.098017,-0,0.995185,0,-1078.123237,1989.786957,
+ -0.032813,-0,0.999462,-1.468161,-978.157452,1989.642356,
+ 0.032813,0,0.999462,-1.468161,-1077.966399,1989.642356,
+ -0.032813,-0,0.999462,-1.468161,-978.157452,1989.642356,
+ -0.098017,-0,0.995185,0,-1078.123237,1989.786957,
+ -0.098017,-0,0.995185,0,-978.310709,1989.786957,
+ -0.098017,-0,0.995185,0,-978.310709,1989.786957,
+ -0.098017,-0,0.995185,0,-1078.123237,1989.786957,
+ -0.162803,-0,0.986659,7.311798,-977.633668,1990.507106,
+ -0.162803,-0,0.986659,7.311798,-977.633668,1990.507106,
+ -0.098017,-0,0.995185,0,-1078.123237,1989.786957,
+ -0.227168,-0,0.973856,7.311798,-1077.464031,1990.507106,
+ 0.587181,-0.587181,0.557168,660.670395,-660.670395,2455.64332,
+ 0.51982,-0.710547,0.474247,554.192058,-829.407027,2361.464898,
+ 0.62118,-0.639379,0.453133,705.352697,-705.352697,2361.464898,
+ 0.51982,-0.710547,0.474247,554.192058,-829.407027,2361.464898,
+ 0.587181,-0.587181,0.557168,660.670395,-660.670395,2455.64332,
+ 0.438515,-0.705336,0.556961,519.085398,-776.866198,2455.64332,
+ 0,0,1,519.085398,-776.866198,2455.64332,
+ 0,0,1,660.670395,-660.670395,2455.64332,
+ 0,0,1,642.325277,-675.725844,2455.64332,
+ 0,0,-1,519.085398,-776.866198,2455.64332,
+ 0,0,-1,642.325277,-675.725844,2455.64332,
+ 0,0,-1,569.385776,-735.585746,2455.64332,
+ 0.832671,-0.532692,0.151323,891.670534,-595.795203,2148.211628,
+ 0.75819,-0.62223,0.19488,884.794335,-604.173876,2148.211628,
+ 0.828508,-0.553591,0.084324,892.684338,-596.472605,2133.803565,
+ 0.665498,-0.684813,0.29689,738.20855,-738.20855,2258.006804,
+ 0.61434,-0.748575,0.249443,724.871896,-750.8761,2252.837783,
+ 0.684548,-0.684548,0.250574,739.77113,-739.77113,2249.469127,
+ 0.61434,-0.748575,0.249443,724.871896,-750.8761,2252.837783,
+ 0.665498,-0.684813,0.29689,738.20855,-738.20855,2258.006804,
+ 0.61434,-0.748575,0.249443,670.391152,-794.166513,2257.101517,
+ 0.61434,-0.748575,0.249443,670.391152,-794.166513,2257.101517,
+ 0.598874,-0.72973,0.329915,653.750225,-807.521706,2258.006804,
+ 0.61434,-0.748575,0.249443,653.750225,-808.286792,2255.71079,
+ 0.598874,-0.72973,0.329915,653.750225,-807.521706,2258.006804,
+ 0.61434,-0.748575,0.249443,670.391152,-794.166513,2257.101517,
+ 0.665498,-0.684813,0.29689,738.20855,-738.20855,2258.006804,
+ 0.401793,-0.915697,0.007841,-644.00684,-861.844218,2011.592523,
+ 0.392989,-0.915858,-0.082244,-731.724734,-900.26268,2019.846175,
+ 0.37075,-0.899004,-0.2331,-643.970452,-861.831591,2011.202527,
+ 0.392989,-0.915858,-0.082244,-731.724734,-900.26268,2019.846175,
+ 0.401793,-0.915697,0.007841,-644.00684,-861.844218,2011.592523,
+ 0.401793,-0.915697,0.007841,-644.327894,-861.580736,2058.811877,
+ 0.392989,-0.915858,-0.082244,-731.724734,-900.26268,2019.846175,
+ 0.401793,-0.915697,0.007841,-644.327894,-861.580736,2058.811877,
+ 0.392379,-0.910791,0.128444,-731.284145,-899.775643,2054.145111,
+ 0.392379,-0.910791,0.128444,-731.284145,-899.775643,2054.145111,
+ 0.401793,-0.915697,0.007841,-644.327894,-861.580736,2058.811877,
+ 0.376942,-0.89216,0.24893,-644.282481,-861.55593,2059.381644,
+ -0.36191,-0.871342,0.331336,-399.515588,-964.515951,2258.006804,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.377668,-0.910562,0.168059,-410.390874,-990.771213,2148.211628,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.36191,-0.871342,0.331336,-399.515588,-964.515951,2258.006804,
+ -0.538332,-0.779667,0.319873,-580.006736,-868.041423,2258.006804,
+ 0.826255,-0.551707,-0.113678,704.675266,-470.848959,796.15315,
+ 0.909392,-0.412143,0.056077,784.574342,-324.981333,855.371869,
+ 0.811513,-0.581637,0.056077,706.098253,-471.799769,855.371869,
+ 0.909392,-0.412143,0.056077,784.574342,-324.981333,855.371869,
+ 0.826255,-0.551707,-0.113678,704.675266,-470.848959,796.15315,
+ 0.918011,-0.379912,-0.113678,782.993204,-324.326404,796.15315,
+ 0.887172,-0.366638,-0.280182,772.17609,-319.845809,738.078199,
+ 0.974489,-0.193517,-0.113678,831.221151,-165.340167,796.15315,
+ 0.918011,-0.379912,-0.113678,782.993204,-324.326404,796.15315,
+ 0.974489,-0.193517,-0.113678,831.221151,-165.340167,796.15315,
+ 0.887172,-0.366638,-0.280182,772.17609,-319.845809,738.078199,
+ 0.941653,-0.186514,-0.280182,819.737765,-163.055979,738.078199,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.098017,-0.995185,0,40.110651,-1076.017993,2017.42443,
+ 0.097931,-0.994307,-0.041998,36.993432,-1076.325013,2011.592523,
+ 0.098017,-0.995185,0,40.110651,-1076.017993,2017.42443,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.098017,-0.995185,0,40.110651,-1076.017993,2017.42443,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.098017,-0.995185,-0,42.671671,-1075.765755,2025.866979,
+ 0.098017,-0.995185,-0,42.671671,-1075.765755,2025.866979,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.098017,-0.995185,-0,43.536421,-1075.680584,2034.646937,
+ 0.098017,-0.995185,-0,43.536421,-1075.680584,2034.646937,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.098017,-0.995185,0,42.671671,-1075.765755,2043.426896,
+ 0.098017,-0.995185,0,42.671671,-1075.765755,2043.426896,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.098017,-0.995185,-0,40.110651,-1076.017993,2051.869445,
+ 0.098017,-0.995185,-0,40.110651,-1076.017993,2051.869445,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.097863,-0.993624,0.055991,36.399844,-1076.383476,2058.811877,
+ 0.80808,-0.541317,-0.232341,-833.682296,-797.914759,2048.438454,
+ 0.706214,-0.448152,-0.548107,-781.183382,-739.911027,2076.744949,
+ 0.706214,-0.448152,-0.548107,-827.129718,-803.865138,2069.836076,
+ 0.706214,-0.448152,-0.548107,-781.183382,-739.911027,2076.744949,
+ 0.80808,-0.541317,-0.232341,-833.682296,-797.914759,2048.438454,
+ 0.770593,-0.512719,-0.378558,-786.924742,-735.296195,2058.807508,
+ 0.770593,-0.512719,-0.378558,-786.924742,-735.296195,2058.807508,
+ 0.80808,-0.541317,-0.232341,-833.682296,-797.914759,2048.438454,
+ 0.814584,-0.546562,-0.194222,-789.342859,-732.349615,2049.894341,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.014463,-0.987633,-0.156114,0,-1072.403033,1922.192772,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.014463,-0.987633,-0.156114,0,-1072.403033,1922.192772,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.097671,-0.991674,-0.083921,7.311798,-1077.464031,1990.507106,
+ 0.014463,-0.987633,-0.156114,0,-1072.403033,1922.192772,
+ 0.097671,-0.991674,-0.083921,7.311798,-1077.464031,1990.507106,
+ -0.032696,-0.995906,-0.084279,0,-1078.123237,1989.786957,
+ 0.097671,-0.991674,-0.083921,7.311798,-1077.464031,1990.507106,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.097671,-0.991674,-0.083921,15.754347,-1076.84924,1993.068126,
+ 0.097671,-0.991674,-0.083921,15.754347,-1076.84924,1993.068126,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.097671,-0.991674,-0.083921,23.535045,-1076.434855,1997.226995,
+ 0.097671,-0.991674,-0.083921,23.535045,-1076.434855,1997.226995,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.097671,-0.991674,-0.083921,30.354884,-1076.236801,2002.823893,
+ 0.097671,-0.991674,-0.083921,30.354884,-1076.236801,2002.823893,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.097671,-0.991674,-0.083921,35.951781,-1076.262688,2009.643732,
+ 0.097671,-0.991674,-0.083921,35.951781,-1076.262688,2009.643732,
+ 0.167148,-0.984089,-0.060252,210.691412,-1059.217255,2011.592523,
+ 0.097931,-0.994307,-0.041998,36.993432,-1076.325013,2011.592523,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.382396,-0.923034,0.0422,-413.286071,-997.760837,2058.811877,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.382396,-0.923034,0.0422,-413.286071,-997.760837,2058.811877,
+ -0.145329,-0.981317,0.126081,-209.215453,-1051.797109,2148.211628,
+ -0.377668,-0.910562,0.168059,-410.390874,-990.771213,2148.211628,
+ -0.369253,-0.814754,0.447021,-268.159753,-647.394912,1241.03564,
+ -0.472298,-0.759676,0.447021,-441.215303,-660.325365,1054.17292,
+ -0.315017,-0.837219,0.447021,-303.914386,-733.714234,1054.17292,
+ -0.472298,-0.759676,0.447021,-441.215303,-660.325365,1054.17292,
+ -0.369253,-0.814754,0.447021,-268.159753,-647.394912,1241.03564,
+ -0.521108,-0.727062,0.447021,-389.30762,-582.640028,1241.03564,
+ 0.941653,-0.186514,-0.280182,819.737765,-163.055979,738.078199,
+ 0.985217,-0.097035,-0.141176,847.505736,0,796.15315,
+ 0.974489,-0.193517,-0.113678,831.221151,-165.340167,796.15315,
+ 0.985217,-0.097035,-0.141176,847.505736,0,796.15315,
+ 0.941653,-0.186514,-0.280182,819.737765,-163.055979,738.078199,
+ 0.947451,-0.093316,-0.305988,835.797377,0,738.078199,
+ -0.019694,-0.599883,0.799845,0,-840.882244,914.026067,
+ -0.097715,-0.592199,0.799845,-127.592879,-641.452722,1054.17292,
+ -0.136347,-0.584514,0.799845,-164.047988,-824.724927,914.026067,
+ -0.097715,-0.592199,0.799845,-127.592879,-641.452722,1054.17292,
+ -0.019694,-0.599883,0.799845,0,-840.882244,914.026067,
+ 0.019694,-0.599883,0.799845,0,-654.019524,1054.17292,
+ 1,0,0,653.750225,-1033.56568,1987.582722,
+ 1,0,0,653.750225,-1033.56568,2082.821632,
+ 1,0,0,653.750225,-1038.255787,2035.202177,
+ 1,0,0,653.750225,-1033.56568,2082.821632,
+ 1,0,0,653.750225,-1033.56568,1987.582722,
+ 1,0,0,653.750225,-1019.675597,1941.793256,
+ 1,0,0,653.750225,-1033.56568,2082.821632,
+ 1,0,0,653.750225,-1019.675597,1941.793256,
+ 1,0,0,653.750225,-1019.675597,2128.611098,
+ 1,0,0,653.750225,-1019.675597,2128.611098,
+ 1,0,0,653.750225,-1019.675597,1941.793256,
+ 1,0,0,653.750225,-1016.065853,2035.202177,
+ 1,0,0,653.750225,-1016.065853,2035.202177,
+ 1,0,0,653.750225,-1019.675597,1941.793256,
+ 1,0,0,653.750225,-1011.80212,1991.911763,
+ 1,0,0,653.750225,-1011.80212,1991.911763,
+ 1,0,0,653.750225,-1019.675597,1941.793256,
+ 1,0,0,653.750225,-997.119327,1899.593442,
+ 1,0,0,653.750225,-1011.80212,1991.911763,
+ 1,0,0,653.750225,-997.119327,1899.593442,
+ 1,0,0,653.750225,-999.174772,1950.284976,
+ 1,0,0,653.750225,-999.174772,1950.284976,
+ 1,0,0,653.750225,-997.119327,1899.593442,
+ 1,0,0,653.750225,-978.669071,1911.921509,
+ 1,0,0,653.750225,-978.669071,1911.921509,
+ 1,0,0,653.750225,-997.119327,1899.593442,
+ 1,0,0,653.750225,-966.763694,1862.604996,
+ 1,0,0,653.750225,-978.669071,1911.921509,
+ 1,0,0,653.750225,-966.763694,1862.604996,
+ 1,0,0,653.750225,-951.073041,1878.295649,
+ 1,0,0,653.750225,-951.073041,1878.295649,
+ 1,0,0,653.750225,-966.763694,1862.604996,
+ 1,0,0,653.750225,-929.775248,1832.249363,
+ 1,0,0,653.750225,-951.073041,1878.295649,
+ 1,0,0,653.750225,-929.775248,1832.249363,
+ 1,0,0,653.750225,-917.447181,1850.699619,
+ 1,0,0,653.750225,-917.447181,1850.699619,
+ 1,0,0,653.750225,-929.775248,1832.249363,
+ 1,0,0,653.750225,-887.575434,1809.693092,
+ 1,0,0,653.750225,-917.447181,1850.699619,
+ 1,0,0,653.750225,-887.575434,1809.693092,
+ 1,0,0,653.750225,-879.083714,1830.193918,
+ 1,0,0,653.750225,-879.083714,1830.193918,
+ 1,0,0,653.750225,-887.575434,1809.693092,
+ 1,0,-0,653.750225,-841.785968,1795.80301,
+ 1,0,0,653.750225,-879.083714,1830.193918,
+ 1,0,-0,653.750225,-841.785968,1795.80301,
+ 1,0,0,653.750225,-837.456927,1817.56657,
+ 1,0,0,653.750225,-837.456927,1817.56657,
+ 1,0,-0,653.750225,-841.785968,1795.80301,
+ 1,0,-0,653.750225,-795.278099,1791.222384,
+ 1,0,0,653.750225,-837.456927,1817.56657,
+ 1,0,-0,653.750225,-795.278099,1791.222384,
+ 1,0,0,653.750225,-807.521706,1812.397596,
+ 1,0,0,653.750225,-837.456927,1817.56657,
+ 1,0,0,653.750225,-807.521706,1812.397596,
+ 1,0,0,653.750225,-808.286776,1814.693561,
+ 1,0,0,653.750225,-1019.675597,2128.611098,
+ 1,0,0,653.750225,-1011.80212,2078.49259,
+ 1,0,0,653.750225,-997.119327,2170.810911,
+ 1,0,0,653.750225,-1011.80212,2078.49259,
+ 1,0,0,653.750225,-1019.675597,2128.611098,
+ 1,0,0,653.750225,-1016.065853,2035.202177,
+ 1,0,0,653.750225,-997.119327,2170.810911,
+ 1,0,0,653.750225,-1011.80212,2078.49259,
+ 1,0,0,653.750225,-999.174772,2120.119378,
+ 1,0,0,653.750225,-997.119327,2170.810911,
+ 1,0,0,653.750225,-999.174772,2120.119378,
+ 1,0,0,653.750225,-978.669071,2158.482845,
+ 1,0,0,653.750225,-997.119327,2170.810911,
+ 1,0,0,653.750225,-978.669071,2158.482845,
+ 1,0,0,653.750225,-966.763694,2207.799357,
+ 1,0,0,653.750225,-966.763694,2207.799357,
+ 1,0,0,653.750225,-978.669071,2158.482845,
+ 1,0,0,653.750225,-951.073041,2192.108705,
+ 1,0,0,653.750225,-966.763694,2207.799357,
+ 1,0,0,653.750225,-951.073041,2192.108705,
+ 1,0,0,653.750225,-929.775248,2238.154991,
+ 1,0,0,653.750225,-929.775248,2238.154991,
+ 1,0,0,653.750225,-951.073041,2192.108705,
+ 1,0,0,653.750225,-917.447181,2219.704735,
+ 1,0,0,653.750225,-929.775248,2238.154991,
+ 1,0,0,653.750225,-917.447181,2219.704735,
+ 1,0,0,653.750225,-887.575434,2260.711261,
+ 1,0,0,653.750225,-887.575434,2260.711261,
+ 1,0,0,653.750225,-917.447181,2219.704735,
+ 1,0,0,653.750225,-879.083714,2240.210435,
+ 1,0,0,653.750225,-887.575434,2260.711261,
+ 1,0,0,653.750225,-879.083714,2240.210435,
+ 1,0,0,653.750225,-841.785968,2274.601344,
+ 1,0,0,653.750225,-841.785968,2274.601344,
+ 1,0,0,653.750225,-879.083714,2240.210435,
+ 1,0,0,653.750225,-837.456927,2252.837783,
+ 1,0,0,653.750225,-841.785968,2274.601344,
+ 1,0,0,653.750225,-837.456927,2252.837783,
+ 1,0,0,653.750225,-795.278128,2279.181966,
+ 1,0,0,653.750225,-795.278128,2279.181966,
+ 1,0,0,653.750225,-837.456927,2252.837783,
+ 1,-0,0,653.750225,-807.521706,2258.006804,
+ 1,-0,0,653.750225,-807.521706,2258.006804,
+ 1,0,0,653.750225,-837.456927,2252.837783,
+ 1,0,0,653.750225,-808.286792,2255.71079,
+ -0.15672,-0.796215,-0.584364,-152.95461,-768.954752,631.979457,
+ -0.267337,-0.710498,-0.65094,-285.268899,-688.700045,587.016307,
+ -0.123588,-0.749001,-0.65094,-145.428824,-731.120069,587.016307,
+ -0.267337,-0.710498,-0.65094,-285.268899,-688.700045,587.016307,
+ -0.15672,-0.796215,-0.584364,-152.95461,-768.954752,631.979457,
+ -0.309043,-0.750341,-0.584364,-300.03126,-724.339538,631.979457,
+ 0.729928,-0.683524,0,594.593537,-594.593537,2455.64332,
+ 0.77301,-0.634393,-0,635.110016,-545.224064,2549.07468,
+ 0.683524,-0.729928,0,594.593537,-594.593537,2549.07468,
+ 0.77301,-0.634393,-0,635.110016,-545.224064,2549.07468,
+ 0.729928,-0.683524,0,594.593537,-594.593537,2455.64332,
+ 0.820367,-0.571838,-0,699.168033,-467.169144,2455.64332,
+ 0.77301,-0.634393,-0,635.110016,-545.224064,2549.07468,
+ 0.820367,-0.571838,-0,699.168033,-467.169144,2455.64332,
+ 0.77301,-0.634393,-0,689.000383,-479.558461,2549.07468,
+ 0.77301,-0.634393,-0,689.000383,-479.558461,2549.07468,
+ 0.820367,-0.571838,-0,699.168033,-467.169144,2455.64332,
+ 0.83147,-0.55557,-0,699.168033,-467.169144,2549.07468,
+ -0.188671,-0.808825,0.556961,-182.278552,-916.376162,2455.64332,
+ -0.335858,-0.807337,0.485186,-381.734129,-921.587711,2361.464898,
+ -0.171901,-0.857347,0.485186,-194.606371,-978.352295,2361.464898,
+ -0.335858,-0.807337,0.485186,-381.734129,-921.587711,2361.464898,
+ -0.188671,-0.808825,0.556961,-182.278552,-916.376162,2455.64332,
+ -0.34284,-0.756475,0.556961,-357.552241,-863.20747,2455.64332,
+ 0,0,-1,-357.552241,-863.20747,2455.64332,
+ 0,0,-1,-182.278552,-916.376162,2455.64332,
+ 0,0,-1,-233.261861,-900.910544,2455.64332,
+ 0,0,-1,-357.552241,-863.20747,2455.64332,
+ 0,0,-1,-233.261861,-900.910544,2455.64332,
+ 0,0,-1,-323.520318,-873.530941,2455.64332,
+ -0.227168,-0.973856,-0,-164.047988,-824.724927,2549.07468,
+ -0.352162,-0.935939,-0,-321.791703,-776.873894,2455.64332,
+ -0.162803,-0.986659,0,-164.047988,-824.724927,2455.64332,
+ -0.352162,-0.935939,-0,-321.791703,-776.873894,2455.64332,
+ -0.227168,-0.973856,-0,-164.047988,-824.724927,2549.07468,
+ -0.412792,-0.910825,-0,-321.791703,-776.873894,2549.07468,
+ 0,0,-1,-321.791703,-776.873894,2549.07468,
+ 0,0,-1,-164.047988,-824.724927,2549.07468,
+ 0,0,-1,-209.932195,-810.806105,2549.07468,
+ 0,0,1,-321.791703,-776.873894,2549.07468,
+ 0,0,1,-209.932195,-810.806105,2549.07468,
+ 0,0,1,-291.163467,-786.164868,2549.07468,
+ -0.17413,-0.881651,-0.438601,-158.887376,-798.780783,682.822311,
+ -0.309043,-0.750341,-0.584364,-300.03126,-724.339538,631.979457,
+ -0.15672,-0.796215,-0.584364,-152.95461,-768.954752,631.979457,
+ -0.309043,-0.750341,-0.584364,-300.03126,-724.339538,631.979457,
+ -0.17413,-0.881651,-0.438601,-158.887376,-798.780783,682.822311,
+ -0.342785,-0.830739,-0.438601,-311.6688,-752.435044,682.822311,
+ -0.186514,-0.941653,-0.280182,-163.055979,-819.737765,738.078199,
+ -0.342785,-0.830739,-0.438601,-311.6688,-752.435044,682.822311,
+ -0.17413,-0.881651,-0.438601,-158.887376,-798.780783,682.822311,
+ -0.342785,-0.830739,-0.438601,-311.6688,-752.435044,682.822311,
+ -0.186514,-0.941653,-0.280182,-163.055979,-819.737765,738.078199,
+ -0.366638,-0.887172,-0.280182,-319.845809,-772.17609,738.078199,
+ -0.193517,-0.974489,-0.113678,-165.340167,-831.221151,796.15315,
+ -0.366638,-0.887172,-0.280182,-319.845809,-772.17609,738.078199,
+ -0.186514,-0.941653,-0.280182,-163.055979,-819.737765,738.078199,
+ -0.366638,-0.887172,-0.280182,-319.845809,-772.17609,738.078199,
+ -0.193517,-0.974489,-0.113678,-165.340167,-831.221151,796.15315,
+ -0.379912,-0.918011,-0.113678,-324.326404,-782.993204,796.15315,
+ 0.440459,-0.824041,0.356303,533.995171,-892.635117,2258.006804,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.393751,-0.867338,0.304443,399.515588,-964.515951,2258.006804,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.440459,-0.824041,0.356303,533.995171,-892.635117,2258.006804,
+ 0.430365,-0.805157,0.408054,540.89692,-887.575434,2260.711261,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.430365,-0.805157,0.408054,540.89692,-887.575434,2260.711261,
+ 0.481686,-0.774776,0.409514,577.578294,-864.407003,2267.739328,
+ 0.366496,-0.808673,0.460139,381.734129,-921.587711,2361.464898,
+ 0.481686,-0.774776,0.409514,577.578294,-864.407003,2267.739328,
+ 0.51982,-0.710547,0.474247,554.192058,-829.407027,2361.464898,
+ 0.194135,-0.974366,-0.113678,165.340167,-831.221151,796.15315,
+ 0.000777,-0.959946,-0.280182,0,-835.797377,738.078199,
+ 0.188038,-0.94135,-0.280182,163.055979,-819.737765,738.078199,
+ 0.000777,-0.959946,-0.280182,0,-835.797377,738.078199,
+ 0.194135,-0.974366,-0.113678,165.340167,-831.221151,796.15315,
+ 0.000315,-0.993518,-0.113678,0,-847.505736,796.15315,
+ -0.910916,-0.376813,0.168059,-990.771213,-410.390874,2148.211628,
+ -0.972989,-0.226965,0.042178,-1059.217255,-210.691412,2058.811877,
+ -0.910015,-0.412425,0.042178,-997.760837,-413.286071,2058.811877,
+ -0.972989,-0.226965,0.042178,-1059.217255,-210.691412,2058.811877,
+ -0.910916,-0.376813,0.168059,-990.771213,-410.390874,2148.211628,
+ -0.966926,-0.191862,0.168059,-1051.797109,-209.215453,2148.211628,
+ 0,0.707107,-0.707107,180.675225,-951.073041,2192.108705,
+ 0,0.812792,-0.582554,653.750225,-978.669071,2158.482845,
+ 0,0.849252,-0.527988,180.675225,-978.669071,2158.482845,
+ 0,0.812792,-0.582554,653.750225,-978.669071,2158.482845,
+ 0,0.707107,-0.707107,180.675225,-951.073041,2192.108705,
+ 0,0.707107,-0.707107,653.750225,-951.073041,2192.108705,
+ 0,0.935939,-0.352162,180.675225,-999.174772,2120.119378,
+ 0,0.973856,-0.227168,653.750225,-1011.80212,2078.49259,
+ 0,0.986659,-0.162803,180.675225,-1011.80212,2078.49259,
+ 0,0.973856,-0.227168,653.750225,-1011.80212,2078.49259,
+ 0,0.935939,-0.352162,180.675225,-999.174772,2120.119378,
+ 0,0.910825,-0.412792,653.750225,-999.174772,2120.119378,
+ 0.587879,-0.48246,-0.649331,610.800046,-425.129379,587.016307,
+ 0.592439,-0.554776,-0.584157,554.385481,-554.385481,631.979457,
+ 0.518883,-0.55411,-0.65094,527.108195,-527.108195,587.016307,
+ 0.592439,-0.554776,-0.584157,554.385481,-554.385481,631.979457,
+ 0.587879,-0.48246,-0.649331,610.800046,-425.129379,587.016307,
+ 0.675632,-0.449489,-0.584364,651.888362,-435.577878,631.979457,
+ 0.675632,-0.449489,-0.584364,651.888362,-435.577878,631.979457,
+ 0.587879,-0.48246,-0.649331,610.800046,-425.129379,587.016307,
+ 0.644692,-0.400811,-0.65094,619.813666,-414.146251,587.016307,
+ 0,-0.720896,0.693044,653.750225,-966.763694,2207.799357,
+ 0.144571,-0.892809,0.426605,369.410361,-997.119327,2170.810911,
+ 0,-0.85779,0.514001,653.750225,-997.119327,2170.810911,
+ 0.144571,-0.892809,0.426605,369.410361,-997.119327,2170.810911,
+ 0,-0.720896,0.693044,653.750225,-966.763694,2207.799357,
+ 0.14518,-0.877819,0.456461,406.150729,-980.534599,2191.019462,
+ 0.14518,-0.877819,0.456461,406.150729,-980.534599,2191.019462,
+ 0,-0.720896,0.693044,653.750225,-966.763694,2207.799357,
+ 0,-0.707107,0.707107,422.745234,-966.763694,2207.799357,
+ 0.710498,-0.267337,-0.65094,688.700045,-285.268899,587.016307,
+ 0.787008,-0.166056,-0.594175,768.954752,-152.95461,631.979457,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ 0.787008,-0.166056,-0.594175,768.954752,-152.95461,631.979457,
+ 0.710498,-0.267337,-0.65094,688.700045,-285.268899,587.016307,
+ 0.727759,-0.220763,-0.649331,707.864018,-222.093747,587.016307,
+ 0.787008,-0.166056,-0.594175,768.954752,-152.95461,631.979457,
+ 0.727759,-0.220763,-0.649331,707.864018,-222.093747,587.016307,
+ 0.749001,-0.123588,-0.65094,731.120069,-145.428824,587.016307,
+ 0.871137,-0.203207,0.447021,778.906876,-154.934211,1054.17292,
+ 0.837219,-0.315017,0.447021,647.394912,-268.159753,1241.03564,
+ 0.814754,-0.369253,0.447021,733.714234,-303.914386,1054.17292,
+ 0.837219,-0.315017,0.447021,647.394912,-268.159753,1241.03564,
+ 0.871137,-0.203207,0.447021,778.906876,-154.934211,1054.17292,
+ 0.882589,-0.145631,0.447021,687.270773,-136.706657,1241.03564,
+ -0.191744,-0.873668,0.447144,-154.934211,-778.906876,1614.76108,
+ -0.259888,-0.856737,0.445488,-221.595076,-855.850894,1427.89836,
+ -0.174494,-0.877241,0.447214,-173.161765,-870.542978,1427.89836,
+ -0.259888,-0.856737,0.445488,-221.595076,-855.850894,1427.89836,
+ -0.191744,-0.873668,0.447144,-154.934211,-778.906876,1614.76108,
+ -0.259888,-0.856737,0.445488,-307.339193,-829.840701,1427.89836,
+ -0.259888,-0.856737,0.445488,-307.339193,-829.840701,1427.89836,
+ -0.358504,-0.819473,0.447144,-303.914386,-733.714234,1614.76108,
+ -0.342282,-0.826343,0.447214,-339.66902,-820.033555,1427.89836,
+ -0.358504,-0.819473,0.447144,-303.914386,-733.714234,1614.76108,
+ -0.259888,-0.856737,0.445488,-307.339193,-829.840701,1427.89836,
+ -0.191744,-0.873668,0.447144,-154.934211,-778.906876,1614.76108,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ -0.241413,-0.795831,-0.555314,-233.261862,-900.910544,1614.76108,
+ -0.162003,-0.814444,-0.557168,-182.278552,-916.376162,1614.76108,
+ -0.241413,-0.795831,-0.555314,-233.261862,-900.910544,1614.76108,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ -0.241413,-0.795831,-0.555314,-323.520318,-873.530941,1614.76108,
+ -0.241413,-0.795831,-0.555314,-323.520318,-873.530941,1614.76108,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ -0.31778,-0.767189,-0.557168,-357.552241,-863.20747,1614.76108,
+ -0.329694,-0.798573,-0.503571,-381.734129,-921.587711,1708.939502,
+ -0.241413,-0.795831,-0.555314,-323.520318,-873.530941,1614.76108,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ -0.819881,-0.571538,0.033755,-897.96103,-599.998378,2058.811877,
+ -0.772328,-0.633835,-0.041994,-818.480102,-696.846173,2011.592491,
+ -0.771796,-0.633401,0.055987,-818.273878,-697.096462,2058.801607,
+ -0.772328,-0.633835,-0.041994,-818.480102,-696.846173,2011.592491,
+ -0.819881,-0.571538,0.033755,-897.96103,-599.998378,2058.811877,
+ -0.841785,-0.538757,-0.033753,-897.96103,-599.998378,2011.592523,
+ 0.117054,-0.588471,0.8,164.047988,-824.724927,914.026067,
+ 0.019694,-0.599883,0.799845,0,-654.019524,1054.17292,
+ -0.019694,-0.599883,0.799845,0,-840.882244,914.026067,
+ 0.019694,-0.599883,0.799845,0,-654.019524,1054.17292,
+ 0.117054,-0.588471,0.8,164.047988,-824.724927,914.026067,
+ 0.117054,-0.588471,0.8,127.592879,-641.452722,1054.17292,
+ 0,0.910825,0.412792,180.675225,-999.174772,1950.284976,
+ 0,0.849252,0.527988,653.750225,-978.669071,1911.921509,
+ 0,0.812792,0.582554,180.675225,-978.669071,1911.921509,
+ 0,0.849252,0.527988,653.750225,-978.669071,1911.921509,
+ 0,0.910825,0.412792,180.675225,-999.174772,1950.284976,
+ 0,0.935939,0.352162,653.750225,-999.174772,1950.284976,
+ 0.925561,-0.183175,-0.331336,1023.924672,-203.671281,1812.397596,
+ 0.976104,-0.096138,-0.19488,1072.403033,0,1922.192772,
+ 0.966926,-0.191862,-0.168059,1051.797109,-209.215453,1922.192772,
+ 0.976104,-0.096138,-0.19488,1072.403033,0,1922.192772,
+ 0.925561,-0.183175,-0.331336,1023.924672,-203.671281,1812.397596,
+ 0.929871,-0.091584,-0.356303,1043.984543,0,1812.397596,
+ -0,0.032813,-0.999462,670.391152,-794.166513,2257.101517,
+ -0,0.146613,-0.989194,180.675225,-837.456927,2252.837783,
+ 0,-0.032813,-0.999462,180.675225,-794.166513,2257.101517,
+ -0,0.146613,-0.989194,180.675225,-837.456927,2252.837783,
+ -0,0.032813,-0.999462,670.391152,-794.166513,2257.101517,
+ -0,0.098017,-0.995185,653.750225,-808.286792,2255.71079,
+ 0,0.227168,-0.973856,653.750225,-837.456927,2252.837783,
+ -0,0.146613,-0.989194,180.675225,-837.456927,2252.837783,
+ -0,0.098017,-0.995185,653.750225,-808.286792,2255.71079,
+ 0.456496,-0.854043,0.249443,422.745234,-966.763694,2207.799357,
+ 0.393751,-0.867338,0.304443,399.515588,-964.515951,2258.006804,
+ 0.340939,-0.906111,0.250448,406.150729,-980.534599,2191.019462,
+ 0.393751,-0.867338,0.304443,399.515588,-964.515951,2258.006804,
+ 0.456496,-0.854043,0.249443,422.745234,-966.763694,2207.799357,
+ 0.456496,-0.854043,0.249443,475.358507,-929.775248,2238.154991,
+ 0.393751,-0.867338,0.304443,399.515588,-964.515951,2258.006804,
+ 0.456496,-0.854043,0.249443,475.358507,-929.775248,2238.154991,
+ 0.440459,-0.824041,0.356303,533.995171,-892.635117,2258.006804,
+ -0.098017,-0.995185,-0,-43.046973,-1075.728791,2017.42443,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.097931,-0.994307,-0.041998,-39.929753,-1076.03581,2011.592523,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.098017,-0.995185,-0,-43.046973,-1075.728791,2017.42443,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.098017,-0.995185,-0,-43.046973,-1075.728791,2017.42443,
+ -0.098017,-0.995185,-0,-45.607992,-1075.476552,2025.866979,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.098017,-0.995185,-0,-45.607992,-1075.476552,2025.866979,
+ -0.098017,-0.995185,-0,-46.472742,-1075.391382,2034.646937,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.098017,-0.995185,-0,-46.472742,-1075.391382,2034.646937,
+ -0.098017,-0.995185,0,-45.607992,-1075.476552,2043.426896,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.098017,-0.995185,0,-45.607992,-1075.476552,2043.426896,
+ -0.098017,-0.995185,0,-43.046973,-1075.728791,2051.869445,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.098017,-0.995185,0,-43.046973,-1075.728791,2051.869445,
+ -0.097931,-0.994307,0.041998,-39.336165,-1076.094273,2058.811877,
+ -0.925561,-0.183175,-0.331336,-1023.924672,-203.671281,1812.397596,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.872041,-0.360223,-0.331336,-964.515951,-399.515588,1812.397596,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.925561,-0.183175,-0.331336,-1023.924672,-203.671281,1812.397596,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.966926,-0.191862,-0.168059,-1051.797109,-209.215453,1922.192772,
+ -0.872041,-0.360223,-0.331336,-964.515951,-399.515588,1812.397596,
+ -0.910916,-0.376813,-0.168059,-990.771213,-410.390874,1922.192772,
+ -0.872041,-0.360223,-0.331336,-964.515951,-399.515588,1812.397596,
+ -0.966926,-0.191862,-0.168059,-1051.797109,-209.215453,1922.192772,
+ -0.925561,-0.183175,-0.331336,-1023.924672,-203.671281,1812.397596,
+ -0.634393,-0.77301,-0,-680.414811,-831.964968,2020.575089,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.633834,-0.772328,-0.041998,-683.32915,-829.573232,2011.592523,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.634393,-0.77301,-0,-680.414811,-831.964968,2020.575089,
+ -0.683228,-0.729664,0.028116,-763.653083,-763.653083,2058.811877,
+ -0.683228,-0.729664,0.028116,-763.653083,-763.653083,2058.811877,
+ -0.634393,-0.77301,-0,-680.414811,-831.964968,2020.575089,
+ -0.634393,-0.77301,-0,-680.521947,-831.877044,2050.149043,
+ -0.683228,-0.729664,0.028116,-763.653083,-763.653083,2058.811877,
+ -0.634393,-0.77301,-0,-680.521947,-831.877044,2050.149043,
+ -0.633398,-0.771798,0.055991,-683.397325,-829.517282,2058.811877,
+ 0.814754,-0.369253,0.447021,733.714234,-303.914386,1054.17292,
+ 0.759676,-0.472298,0.447021,582.640028,-389.30762,1241.03564,
+ 0.727062,-0.521108,0.447021,660.325365,-441.215303,1054.17292,
+ 0.759676,-0.472298,0.447021,582.640028,-389.30762,1241.03564,
+ 0.814754,-0.369253,0.447021,733.714234,-303.914386,1054.17292,
+ 0.837219,-0.315017,0.447021,647.394912,-268.159753,1241.03564,
+ -0.819473,-0.358504,0.447144,-733.714234,-303.914386,1614.76108,
+ -0.856737,-0.259888,0.445488,-842.852042,-264.446548,1427.89836,
+ -0.826343,-0.342282,0.447214,-820.033555,-339.66902,1427.89836,
+ -0.856737,-0.259888,0.445488,-842.852042,-264.446548,1427.89836,
+ -0.819473,-0.358504,0.447144,-733.714234,-303.914386,1614.76108,
+ -0.873668,-0.191744,0.447144,-778.906876,-154.934211,1614.76108,
+ -0.856737,-0.259888,0.445488,-842.852042,-264.446548,1427.89836,
+ -0.873668,-0.191744,0.447144,-778.906876,-154.934211,1614.76108,
+ -0.856737,-0.259888,0.445488,-868.904109,-178.564394,1427.89836,
+ -0.856737,-0.259888,0.445488,-868.904109,-178.564394,1427.89836,
+ -0.873668,-0.191744,0.447144,-778.906876,-154.934211,1614.76108,
+ -0.877241,-0.174494,0.447214,-870.542978,-173.161765,1427.89836,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.777333,-0.292484,-0.556961,-863.20747,-357.552241,1614.76108,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.777333,-0.292484,-0.556961,-863.20747,-357.552241,1614.76108,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.795831,-0.241413,-0.555314,-887.227324,-278.369395,1614.76108,
+ -0.795831,-0.241413,-0.555314,-887.227324,-278.369395,1614.76108,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.795831,-0.241413,-0.555314,-914.651019,-187.965588,1614.76108,
+ -0.795831,-0.241413,-0.555314,-914.651019,-187.965588,1614.76108,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.819458,-0.135214,-0.556961,-916.376162,-182.278552,1614.76108,
+ 0.747902,-0.498268,-0.438601,677.173649,-452.472967,682.822311,
+ 0.887172,-0.366638,-0.280182,772.17609,-319.845809,738.078199,
+ 0.798598,-0.532672,-0.280182,694.940121,-464.344144,738.078199,
+ 0.887172,-0.366638,-0.280182,772.17609,-319.845809,738.078199,
+ 0.747902,-0.498268,-0.438601,677.173649,-452.472967,682.822311,
+ 0.830739,-0.342785,-0.438601,752.435044,-311.6688,682.822311,
+ -0.342785,-0.830739,-0.438601,-311.6688,-752.435044,682.822311,
+ -0.449489,-0.675632,-0.584364,-435.577878,-651.888362,631.979457,
+ -0.309043,-0.750341,-0.584364,-300.03126,-724.339538,631.979457,
+ -0.449489,-0.675632,-0.584364,-435.577878,-651.888362,631.979457,
+ -0.342785,-0.830739,-0.438601,-311.6688,-752.435044,682.822311,
+ -0.498268,-0.747902,-0.438601,-452.472967,-677.173649,682.822311,
+ -0.366638,-0.887172,-0.280182,-319.845809,-772.17609,738.078199,
+ -0.498268,-0.747902,-0.438601,-452.472967,-677.173649,682.822311,
+ -0.342785,-0.830739,-0.438601,-311.6688,-752.435044,682.822311,
+ -0.498268,-0.747902,-0.438601,-452.472967,-677.173649,682.822311,
+ -0.366638,-0.887172,-0.280182,-319.845809,-772.17609,738.078199,
+ -0.532672,-0.798598,-0.280182,-464.344144,-694.940121,738.078199,
+ -0.986659,-0,-0.162803,42.671671,-976.334157,2043.426896,
+ -0.999806,-0,-0.019694,43.536421,-1075.680584,2034.646937,
+ -0.973856,-0,-0.227168,42.671671,-1075.765755,2043.426896,
+ -0.999806,-0,-0.019694,43.536421,-1075.680584,2034.646937,
+ -0.986659,-0,-0.162803,42.671671,-976.334157,2043.426896,
+ -0.995185,-0,-0.098017,43.481732,-976.746707,2035.2022,
+ -1,-0,-0,43.536421,-976.708082,2034.646937,
+ -0.999806,-0,-0.019694,43.536421,-1075.680584,2034.646937,
+ -0.995185,-0,-0.098017,43.481732,-976.746707,2035.2022,
+ 0.729928,0,0.683524,-33.291206,-1075.947599,2002.823893,
+ 0.83147,0,0.55557,-38.888103,-975.6692,2009.643732,
+ 0.849252,-0,0.527988,-38.888103,-1075.973486,2009.643732,
+ 0.83147,0,0.55557,-38.888103,-975.6692,2009.643732,
+ 0.729928,0,0.683524,-33.291206,-1075.947599,2002.823893,
+ 0.683524,-0,0.729928,-33.291206,-975.812207,2002.823893,
+ -0.837219,-0.315017,0.447021,-690.554573,-286.03707,1427.89836,
+ -0.871137,-0.203207,0.447021,-824.724927,-164.047988,1241.03564,
+ -0.814754,-0.369253,0.447021,-776.873894,-321.791703,1241.03564,
+ -0.871137,-0.203207,0.447021,-824.724927,-164.047988,1241.03564,
+ -0.837219,-0.315017,0.447021,-690.554573,-286.03707,1427.89836,
+ -0.882589,-0.145631,0.447021,-733.088824,-145.820434,1427.89836,
+ 0.675632,-0.449489,-0.584364,651.888362,-435.577878,631.979457,
+ 0.830739,-0.342785,-0.438601,752.435044,-311.6688,682.822311,
+ 0.747902,-0.498268,-0.438601,677.173649,-452.472967,682.822311,
+ 0.830739,-0.342785,-0.438601,752.435044,-311.6688,682.822311,
+ 0.675632,-0.449489,-0.584364,651.888362,-435.577878,631.979457,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ -0.032813,-0.999462,0,0,-840.882244,2549.07468,
+ -0.162803,-0.986659,0,-164.047988,-824.724927,2455.64332,
+ 0.032813,-0.999462,0,0,-840.882244,2455.64332,
+ -0.162803,-0.986659,0,-164.047988,-824.724927,2455.64332,
+ -0.032813,-0.999462,0,0,-840.882244,2549.07468,
+ -0.227168,-0.973856,-0,-164.047988,-824.724927,2549.07468,
+ 0,0,-1,-164.047988,-824.724927,2549.07468,
+ 0,0,-1,0,-840.882244,2549.07468,
+ 0,0,-1,-42.432781,-836.702979,2549.07468,
+ 0,0,1,-164.047988,-824.724927,2549.07468,
+ 0,0,1,-42.432781,-836.702979,2549.07468,
+ 0,0,1,-126.903621,-828.383328,2549.07468,
+ -0.811513,-0.581637,0.056077,-706.098253,-471.799769,855.371869,
+ -0.704523,-0.704523,-0.085417,-599.277053,-599.277053,796.15315,
+ -0.691243,-0.718915,0.073102,-600.487204,-600.487204,855.371869,
+ -0.704523,-0.704523,-0.085417,-599.277053,-599.277053,796.15315,
+ -0.811513,-0.581637,0.056077,-706.098253,-471.799769,855.371869,
+ -0.826255,-0.551707,-0.113678,-704.675266,-470.848959,796.15315,
+ 0.55557,-0,-0.83147,-26.471367,-976.215347,2072.06688,
+ 0.382683,-0,-0.92388,-18.690668,-1076.654017,2076.225749,
+ 0.55557,-0,-0.83147,-26.471367,-1076.239632,2072.06688,
+ 0.382683,-0,-0.92388,-18.690668,-1076.654017,2076.225749,
+ 0.55557,-0,-0.83147,-26.471367,-976.215347,2072.06688,
+ 0.382683,0,-0.92388,-18.690668,-976.732727,2076.225749,
+ -0.412792,-0.910825,-0,-321.791703,-776.873894,2549.07468,
+ -0.527988,-0.849252,-0,-467.169144,-699.168033,2455.64332,
+ -0.352162,-0.935939,-0,-321.791703,-776.873894,2455.64332,
+ -0.527988,-0.849252,-0,-467.169144,-699.168033,2455.64332,
+ -0.412792,-0.910825,-0,-321.791703,-776.873894,2549.07468,
+ -0.582554,-0.812792,-0,-467.169144,-699.168033,2549.07468,
+ 0,0,-1,-467.169144,-699.168033,2549.07468,
+ 0,0,-1,-321.791703,-776.873894,2549.07468,
+ 0,0,-1,-368.760189,-751.768716,2549.07468,
+ 0,0,1,-467.169144,-699.168033,2549.07468,
+ 0,0,1,-368.760189,-751.768716,2549.07468,
+ 0,0,1,-443.63534,-711.747113,2549.07468,
+ -0.309043,-0.750341,-0.584364,-300.03126,-724.339538,631.979457,
+ -0.400811,-0.644692,-0.65094,-414.146251,-619.813666,587.016307,
+ -0.267337,-0.710498,-0.65094,-285.268899,-688.700045,587.016307,
+ -0.400811,-0.644692,-0.65094,-414.146251,-619.813666,587.016307,
+ -0.309043,-0.750341,-0.584364,-300.03126,-724.339538,631.979457,
+ -0.449489,-0.675632,-0.584364,-435.577878,-651.888362,631.979457,
+ 0.561756,-0.21137,0.799845,776.873894,-321.791703,914.026067,
+ 0.584514,-0.136347,0.799845,641.452722,-127.592879,1054.17292,
+ 0.546683,-0.247761,0.799845,604.235252,-250.282436,1054.17292,
+ 0.584514,-0.136347,0.799845,641.452722,-127.592879,1054.17292,
+ 0.561756,-0.21137,0.799845,776.873894,-321.791703,914.026067,
+ 0.592199,-0.097715,0.799845,824.724927,-164.047988,914.026067,
+ 0.55557,-0,-0.83147,-26.471367,-976.215347,2072.06688,
+ 0.707107,-0,-0.707107,-33.291206,-1076.041578,2066.469982,
+ 0.707107,0,-0.707107,-33.291206,-975.878684,2066.469982,
+ 0.707107,-0,-0.707107,-33.291206,-1076.041578,2066.469982,
+ 0.55557,-0,-0.83147,-26.471367,-976.215347,2072.06688,
+ 0.55557,-0,-0.83147,-26.471367,-1076.239632,2072.06688,
+ 0,-0.720896,0.693044,653.750225,-966.763694,2207.799357,
+ 0,-0.582554,0.812792,475.358507,-929.775248,2238.154991,
+ 0,-0.707107,0.707107,422.745234,-966.763694,2207.799357,
+ 0,-0.582554,0.812792,475.358507,-929.775248,2238.154991,
+ 0,-0.720896,0.693044,653.750225,-966.763694,2207.799357,
+ -0,-0.514001,0.85779,653.750225,-929.775248,2238.154991,
+ 0,-0.471397,-0.881921,533.995007,-892.635204,1812.397596,
+ 0,-0.514001,-0.85779,653.750225,-929.775248,1832.249363,
+ 0,-0.582554,-0.812792,475.358482,-929.775248,1832.249363,
+ 0,-0.514001,-0.85779,653.750225,-929.775248,1832.249363,
+ 0,-0.471397,-0.881921,533.995007,-892.635204,1812.397596,
+ 0,-0.412792,-0.910825,540.896876,-887.575434,1809.693092,
+ 0,-0.514001,-0.85779,653.750225,-929.775248,1832.249363,
+ 0,-0.412792,-0.910825,540.896876,-887.575434,1809.693092,
+ 0,-0.336778,-0.941584,653.750225,-887.575434,1809.693092,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.832671,-0.532692,0.151323,891.670534,-595.795203,2148.211628,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.901839,-0.40872,0.140121,990.771213,-410.390874,2148.211628,
+ 0.872041,-0.360223,0.331336,964.515951,-399.515588,2258.006804,
+ -0.790546,0.249135,-0.559436,-845.012276,-788.258547,1988.011282,
+ -0.637426,0.090042,-0.765232,-781.354664,-731.718944,1933.517963,
+ -0.637426,0.090042,-0.765232,-828.138788,-805.72305,1963.780621,
+ -0.637426,0.090042,-0.765232,-781.354664,-731.718944,1933.517963,
+ -0.790546,0.249135,-0.559436,-845.012276,-788.258547,1988.011282,
+ -0.837602,0.298772,-0.457337,-804.883918,-707.527533,1967.257586,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.382289,-0.923079,-0.0422,-413.286071,-997.760837,2011.592523,
+ -0.150758,-0.986668,-0.06131,-210.691412,-1059.217255,2011.592523,
+ -0.382289,-0.923079,-0.0422,-413.286071,-997.760837,2011.592523,
+ -0.150979,-0.98827,0.022991,-210.691412,-1059.217255,2058.811877,
+ -0.382396,-0.923034,0.0422,-413.286071,-997.760837,2058.811877,
+ 0.644692,-0.400811,-0.65094,619.813666,-414.146251,587.016307,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ 0.675632,-0.449489,-0.584364,651.888362,-435.577878,631.979457,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ 0.644692,-0.400811,-0.65094,619.813666,-414.146251,587.016307,
+ 0.670707,-0.3585,-0.649331,648.718891,-360.068379,587.016307,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ 0.670707,-0.3585,-0.649331,648.718891,-360.068379,587.016307,
+ 0.670707,-0.3585,-0.649331,684.232405,-293.627267,587.016307,
+ 0.731226,-0.321864,-0.601425,724.339538,-300.03126,631.979457,
+ 0.670707,-0.3585,-0.649331,684.232405,-293.627267,587.016307,
+ 0.710498,-0.267337,-0.65094,688.700045,-285.268899,587.016307,
+ 0.000913,-0.943512,-0.331336,0,-1043.984543,1812.397596,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ 0.000913,-0.943512,-0.331336,0,-1043.984543,1812.397596,
+ -0.183175,-0.925561,-0.331336,-203.671281,-1023.924672,1812.397596,
+ -0.369253,-0.814754,0.447021,-286.03707,-690.554573,1427.89836,
+ -0.472298,-0.759676,0.447021,-467.169144,-699.168033,1241.03564,
+ -0.315017,-0.837219,0.447021,-321.791703,-776.873894,1241.03564,
+ -0.472298,-0.759676,0.447021,-467.169144,-699.168033,1241.03564,
+ -0.369253,-0.814754,0.447021,-286.03707,-690.554573,1427.89836,
+ -0.521108,-0.727062,0.447021,-415.261462,-621.482696,1427.89836,
+ 0,0,1,-925.063958,-94.069883,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-934.329033,0,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-925.063958,-94.069883,2455.64332,
+ 0,0,1,-916.376162,-182.278552,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-916.376162,-182.278552,2455.64332,
+ 0,0,1,-914.651019,-187.965588,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-914.651019,-187.965588,2455.64332,
+ 0,0,1,-887.227323,-278.369396,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-887.227323,-278.369396,2455.64332,
+ 0,0,1,-863.20747,-357.552241,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-863.20747,-357.552241,2455.64332,
+ 0,0,1,-857.607798,-368.02849,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-857.607798,-368.02849,2455.64332,
+ 0,0,1,-813.095616,-451.304926,2455.64332,
+ 0,0,1,-840.882244,0,2455.64332,
+ 0,0,1,-813.095616,-451.304926,2455.64332,
+ 0,0,1,-824.724927,-164.047988,2455.64332,
+ 0,0,1,-824.724927,-164.047988,2455.64332,
+ 0,0,1,-813.095616,-451.304926,2455.64332,
+ 0,0,1,-776.873894,-321.791703,2455.64332,
+ 0,0,1,-776.873894,-321.791703,2455.64332,
+ 0,0,1,-813.095616,-451.304926,2455.64332,
+ 0,0,1,-776.866198,-519.085398,2455.64332,
+ 0,0,1,-776.873894,-321.791703,2455.64332,
+ 0,0,1,-776.866198,-519.085398,2455.64332,
+ 0,0,1,-699.168033,-467.169144,2455.64332,
+ 0,0,1,-699.168033,-467.169144,2455.64332,
+ 0,0,1,-776.866198,-519.085398,2455.64332,
+ 0,0,1,-765.568614,-532.851545,2455.64332,
+ 0,0,1,-699.168033,-467.169144,2455.64332,
+ 0,0,1,-765.568614,-532.851545,2455.64332,
+ 0,0,1,-705.689427,-605.814545,2455.64332,
+ 0,0,1,-699.168033,-467.169144,2455.64332,
+ 0,0,1,-705.689427,-605.814545,2455.64332,
+ 0,0,1,-660.670395,-660.670395,2455.64332,
+ 0,0,1,-699.168033,-467.169144,2455.64332,
+ 0,0,1,-660.670395,-660.670395,2455.64332,
+ 0,0,1,-594.593537,-594.593537,2455.64332,
+ 0,0,1,-594.593537,-594.593537,2455.64332,
+ 0,0,1,-660.670395,-660.670395,2455.64332,
+ 0,0,1,-642.325255,-675.725862,2455.64332,
+ 0,0,1,-594.593537,-594.593537,2455.64332,
+ 0,0,1,-642.325255,-675.725862,2455.64332,
+ 0,0,1,-569.38575,-735.585766,2455.64332,
+ 0,0,1,-594.593537,-594.593537,2455.64332,
+ 0,0,1,-569.38575,-735.585766,2455.64332,
+ 0,0,1,-467.169144,-699.168033,2455.64332,
+ 0,0,1,-467.169144,-699.168033,2455.64332,
+ 0,0,1,-569.38575,-735.585766,2455.64332,
+ 0,0,1,-519.085398,-776.866198,2455.64332,
+ 0,0,1,-467.169144,-699.168033,2455.64332,
+ 0,0,1,-519.085398,-776.866198,2455.64332,
+ 0,0,1,-492.936329,-790.843167,2455.64332,
+ 0,0,1,-467.169144,-699.168033,2455.64332,
+ 0,0,1,-492.936329,-790.843167,2455.64332,
+ 0,0,1,-409.740281,-835.312381,2455.64332,
+ 0,0,1,-467.169144,-699.168033,2455.64332,
+ 0,0,1,-409.740281,-835.312381,2455.64332,
+ 0,0,1,-321.791703,-776.873894,2455.64332,
+ 0,0,1,-321.791703,-776.873894,2455.64332,
+ 0,0,1,-409.740281,-835.312381,2455.64332,
+ 0,0,1,-357.552241,-863.20747,2455.64332,
+ 0,0,1,-321.791703,-776.873894,2455.64332,
+ 0,0,1,-357.552241,-863.20747,2455.64332,
+ 0,0,1,-323.520318,-873.530941,2455.64332,
+ 0,0,1,-321.791703,-776.873894,2455.64332,
+ 0,0,1,-323.520318,-873.530941,2455.64332,
+ 0,0,1,-233.261861,-900.910544,2455.64332,
+ 0,0,1,-321.791703,-776.873894,2455.64332,
+ 0,0,1,-233.261861,-900.910544,2455.64332,
+ 0,0,1,-164.047988,-824.724927,2455.64332,
+ 0,0,1,-164.047988,-824.724927,2455.64332,
+ 0,0,1,-233.261861,-900.910544,2455.64332,
+ 0,0,1,-182.278552,-916.376162,2455.64332,
+ 0,0,1,-164.047988,-824.724927,2455.64332,
+ 0,0,1,-182.278552,-916.376162,2455.64332,
+ 0,0,1,-141.006393,-920.441115,2455.64332,
+ 0,0,1,-164.047988,-824.724927,2455.64332,
+ 0,0,1,-141.006393,-920.441115,2455.64332,
+ 0,0,1,0,-840.882244,2455.64332,
+ 0,0,1,0,-840.882244,2455.64332,
+ 0,0,1,-141.006393,-920.441115,2455.64332,
+ 0,0,1,-47.148298,-929.685331,2455.64332,
+ 0,0,1,0,-840.882244,2455.64332,
+ 0,0,1,-47.148298,-929.685331,2455.64332,
+ 0,0,1,0,-934.329033,2455.64332,
+ 0,0,1,0,-840.882244,2455.64332,
+ 0,0,1,0,-934.329033,2455.64332,
+ 0,0,1,164.047988,-824.724927,2455.64332,
+ 0,0,1,164.047988,-824.724927,2455.64332,
+ 0,0,1,0,-934.329033,2455.64332,
+ 0,0,1,47.148335,-929.685327,2455.64332,
+ 0,0,1,164.047988,-824.724927,2455.64332,
+ 0,0,1,47.148335,-929.685327,2455.64332,
+ 0,0,1,141.006388,-920.441116,2455.64332,
+ 0,0,1,164.047988,-824.724927,2455.64332,
+ 0,0,1,141.006388,-920.441116,2455.64332,
+ 0,0,1,182.278552,-916.376162,2455.64332,
+ 0,0,1,164.047988,-824.724927,2455.64332,
+ 0,0,1,182.278552,-916.376162,2455.64332,
+ 0,0,1,321.791703,-776.873894,2455.64332,
+ 0,0,1,321.791703,-776.873894,2455.64332,
+ 0,0,1,182.278552,-916.376162,2455.64332,
+ 0,0,1,233.2619,-900.910533,2455.64332,
+ 0,0,1,321.791703,-776.873894,2455.64332,
+ 0,0,1,233.2619,-900.910533,2455.64332,
+ 0,0,1,323.520353,-873.53093,2455.64332,
+ 0,0,1,321.791703,-776.873894,2455.64332,
+ 0,0,1,323.520353,-873.53093,2455.64332,
+ 0,0,1,467.169144,-699.168033,2455.64332,
+ 0,0,1,467.169144,-699.168033,2455.64332,
+ 0,0,1,323.520353,-873.53093,2455.64332,
+ 0,0,1,357.552241,-863.20747,2455.64332,
+ 0,0,1,467.169144,-699.168033,2455.64332,
+ 0,0,1,357.552241,-863.20747,2455.64332,
+ 0,0,1,409.740311,-835.312366,2455.64332,
+ 0,0,1,467.169144,-699.168033,2455.64332,
+ 0,0,1,409.740311,-835.312366,2455.64332,
+ 0,0,1,492.936359,-790.843151,2455.64332,
+ 0,0,1,467.169144,-699.168033,2455.64332,
+ 0,0,1,492.936359,-790.843151,2455.64332,
+ 0,0,1,594.593537,-594.593537,2455.64332,
+ 0,0,1,594.593537,-594.593537,2455.64332,
+ 0,0,1,492.936359,-790.843151,2455.64332,
+ 0,0,1,519.085398,-776.866198,2455.64332,
+ 0,0,1,594.593537,-594.593537,2455.64332,
+ 0,0,1,519.085398,-776.866198,2455.64332,
+ 0,0,1,569.385776,-735.585746,2455.64332,
+ 0,0,1,594.593537,-594.593537,2455.64332,
+ 0,0,1,569.385776,-735.585746,2455.64332,
+ 0,0,1,642.325277,-675.725844,2455.64332,
+ 0,0,1,594.593537,-594.593537,2455.64332,
+ 0,0,1,642.325277,-675.725844,2455.64332,
+ 0,0,1,699.168033,-467.169144,2455.64332,
+ 0,0,1,699.168033,-467.169144,2455.64332,
+ 0,0,1,642.325277,-675.725844,2455.64332,
+ 0,0,1,660.670395,-660.670395,2455.64332,
+ 0,0,1,699.168033,-467.169144,2455.64332,
+ 0,0,1,660.670395,-660.670395,2455.64332,
+ 0,0,1,705.689443,-605.814526,2455.64332,
+ 0,0,1,699.168033,-467.169144,2455.64332,
+ 0,0,1,705.689443,-605.814526,2455.64332,
+ 0,0,1,776.873894,-321.791703,2455.64332,
+ 0,0,1,776.873894,-321.791703,2455.64332,
+ 0,0,1,705.689443,-605.814526,2455.64332,
+ 0,0,1,765.568628,-532.851527,2455.64332,
+ 0,0,1,776.873894,-321.791703,2455.64332,
+ 0,0,1,765.568628,-532.851527,2455.64332,
+ 0,0,1,776.866198,-519.085398,2455.64332,
+ 0,0,1,776.873894,-321.791703,2455.64332,
+ 0,0,1,776.866198,-519.085398,2455.64332,
+ 0,0,1,813.095624,-451.30491,2455.64332,
+ 0,0,1,776.873894,-321.791703,2455.64332,
+ 0,0,1,813.095624,-451.30491,2455.64332,
+ 0,0,1,824.724927,-164.047988,2455.64332,
+ 0,0,1,824.724927,-164.047988,2455.64332,
+ 0,0,1,813.095624,-451.30491,2455.64332,
+ 0,0,1,857.607805,-368.028476,2455.64332,
+ 0,0,1,824.724927,-164.047988,2455.64332,
+ 0,0,1,857.607805,-368.028476,2455.64332,
+ 0,0,1,840.882244,0,2455.64332,
+ 0,0,1,840.882244,0,2455.64332,
+ 0,0,1,857.607805,-368.028476,2455.64332,
+ 0,0,1,934.329033,0,2455.64332,
+ 0,0,1,934.329033,0,2455.64332,
+ 0,0,1,857.607805,-368.028476,2455.64332,
+ 0,0,1,863.20747,-357.552241,2455.64332,
+ 0,0,1,934.329033,0,2455.64332,
+ 0,0,1,863.20747,-357.552241,2455.64332,
+ 0,0,1,887.227327,-278.369385,2455.64332,
+ 0,0,1,934.329033,0,2455.64332,
+ 0,0,1,887.227327,-278.369385,2455.64332,
+ 0,0,1,914.651021,-187.965581,2455.64332,
+ 0,0,1,934.329033,0,2455.64332,
+ 0,0,1,914.651021,-187.965581,2455.64332,
+ 0,0,1,925.063958,-94.069877,2455.64332,
+ 0,0,1,925.063958,-94.069877,2455.64332,
+ 0,0,1,914.651021,-187.965581,2455.64332,
+ 0,0,1,916.376162,-182.278552,2455.64332,
+ 0.146874,-0.976542,0.157463,288.287545,-1033.56568,2082.821632,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.117205,-0.990162,0.07644,287.45777,-1035.930435,2058.811877,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.146874,-0.976542,0.157463,288.287545,-1033.56568,2082.821632,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.146874,-0.976542,0.157463,288.287545,-1033.56568,2082.821632,
+ 0.118798,-0.950331,0.287676,320.792446,-1019.675597,2128.611098,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.118798,-0.950331,0.287676,320.792446,-1019.675597,2128.611098,
+ 0.146136,-0.933668,0.326969,349.642944,-1009.198896,2148.211628,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ -0.081515,-0.827636,-0.555314,-47.148297,-929.685331,1614.76108,
+ 0,-0.8304,-0.557168,0,-934.329033,1614.76108,
+ -0.081515,-0.827636,-0.555314,-47.148297,-929.685331,1614.76108,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ -0.081515,-0.827636,-0.555314,-141.006395,-920.441115,1614.76108,
+ -0.081515,-0.827636,-0.555314,-141.006395,-920.441115,1614.76108,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ -0.162003,-0.814444,-0.557168,-182.278552,-916.376162,1614.76108,
+ -0.167565,-0.847548,-0.503571,-194.606371,-978.352295,1708.939502,
+ -0.081515,-0.827636,-0.555314,-141.006395,-920.441115,1614.76108,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ -0.544468,0.817693,0.186902,-751.507545,-880.404128,2025.39393,
+ -0.549387,0.812256,-0.195995,-680.521947,-831.877044,2050.149043,
+ -0.544468,0.817693,0.186902,-680.414811,-831.964968,2020.575089,
+ -0.549387,0.812256,-0.195995,-680.521947,-831.877044,2050.149043,
+ -0.544468,0.817693,0.186902,-751.507545,-880.404128,2025.39393,
+ -0.549387,0.812256,-0.195995,-751.210147,-880.075378,2048.545713,
+ -0.707107,0,0.707107,30.354884,-1076.236801,2002.823893,
+ -0.582554,0,0.812792,23.535045,-976.438073,1997.226995,
+ -0.527988,0,0.849252,23.535045,-1076.434855,1997.226995,
+ -0.582554,0,0.812792,23.535045,-976.438073,1997.226995,
+ -0.707107,0,0.707107,30.354884,-1076.236801,2002.823893,
+ -0.707107,0,0.707107,30.354884,-976.10141,2002.823893,
+ 0.161185,-0.976856,0.140615,164.047988,-824.724927,914.026067,
+ -0.000155,-0.998425,0.056107,0,-849.217148,855.371869,
+ 0.19463,-0.979271,0.056107,165.674047,-832.899679,855.371869,
+ -0.000155,-0.998425,0.056107,0,-849.217148,855.371869,
+ 0.161185,-0.976856,0.140615,164.047988,-824.724927,914.026067,
+ -0.032487,-0.989531,0.140615,0,-840.882244,914.026067,
+ 0.19463,-0.979271,0.056107,165.674047,-832.899679,855.371869,
+ 0.000315,-0.993518,-0.113678,0,-847.505736,796.15315,
+ 0.194135,-0.974366,-0.113678,165.340167,-831.221151,796.15315,
+ 0.000315,-0.993518,-0.113678,0,-847.505736,796.15315,
+ 0.19463,-0.979271,0.056107,165.674047,-832.899679,855.371869,
+ -0.000155,-0.998425,0.056107,0,-849.217148,855.371869,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.872041,-0.360223,-0.331336,964.515951,-399.515588,1812.397596,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.872041,-0.360223,-0.331336,964.515951,-399.515588,1812.397596,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.832671,-0.532692,-0.151323,891.670534,-595.795203,1922.192772,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.769936,-0.566074,-0.294549,868.041423,-580.006736,1812.397596,
+ 0.872041,-0.360223,-0.331336,964.515951,-399.515588,1812.397596,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.62118,-0.639379,0.453133,705.352697,-705.352697,2361.464898,
+ 0.665498,-0.684813,0.29689,738.20855,-738.20855,2258.006804,
+ 0.62118,-0.639379,0.453133,705.352697,-705.352697,2361.464898,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.587181,-0.587181,0.557168,660.670395,-660.670395,2455.64332,
+ 0.62118,-0.639379,0.453133,705.352697,-705.352697,2361.464898,
+ 0.587181,-0.587181,0.557168,660.670395,-660.670395,2455.64332,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.642867,-0.527587,0.555314,705.689443,-605.814526,2455.64332,
+ 0.642867,-0.527587,0.555314,705.689443,-605.814526,2455.64332,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.642867,-0.527587,0.555314,765.568628,-532.851527,2455.64332,
+ 0.642867,-0.527587,0.555314,765.568628,-532.851527,2455.64332,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.705336,-0.438515,0.556961,776.866198,-519.085398,2455.64332,
+ 0.705336,-0.438515,-0.556961,776.866198,-519.085398,1614.76108,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.707373,-0.49612,-0.503476,829.407027,-554.192058,1708.939502,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.705336,-0.438515,-0.556961,776.866198,-519.085398,1614.76108,
+ 0.733442,-0.392033,-0.555314,813.095625,-451.304909,1614.76108,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.733442,-0.392033,-0.555314,813.095625,-451.304909,1614.76108,
+ 0.733442,-0.392033,-0.555314,857.607806,-368.028476,1614.76108,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.733442,-0.392033,-0.555314,857.607806,-368.028476,1614.76108,
+ 0.777333,-0.292484,-0.556961,863.20747,-357.552241,1614.76108,
+ 0.814754,-0.369253,0.447021,776.873894,-321.791703,1241.03564,
+ 0.759676,-0.472298,0.447021,621.482696,-415.261462,1427.89836,
+ 0.727062,-0.521108,0.447021,699.168033,-467.169144,1241.03564,
+ 0.759676,-0.472298,0.447021,621.482696,-415.261462,1427.89836,
+ 0.814754,-0.369253,0.447021,776.873894,-321.791703,1241.03564,
+ 0.837219,-0.315017,0.447021,690.554573,-286.03707,1427.89836,
+ 0.814754,-0.369253,0.447021,820.033555,-339.66902,1427.89836,
+ 0.759676,-0.472298,0.447021,660.325365,-441.215303,1614.76108,
+ 0.727062,-0.521108,0.447021,738.010701,-493.122985,1427.89836,
+ 0.759676,-0.472298,0.447021,660.325365,-441.215303,1614.76108,
+ 0.814754,-0.369253,0.447021,820.033555,-339.66902,1427.89836,
+ 0.837219,-0.315017,0.447021,733.714234,-303.914386,1614.76108,
+ 0.001625,-0.81149,-0.584364,0,-784.019466,631.979457,
+ -0.123588,-0.749001,-0.65094,-145.428824,-731.120069,587.016307,
+ 0.024909,-0.75872,-0.65094,0,-745.443558,587.016307,
+ -0.123588,-0.749001,-0.65094,-145.428824,-731.120069,587.016307,
+ 0.001625,-0.81149,-0.584364,0,-784.019466,631.979457,
+ -0.15672,-0.796215,-0.584364,-152.95461,-768.954752,631.979457,
+ -0.34284,-0.756475,0.556961,-357.552241,-863.20747,2455.64332,
+ -0.486909,-0.726302,0.485186,-554.192058,-829.407027,2361.464898,
+ -0.335858,-0.807337,0.485186,-381.734129,-921.587711,2361.464898,
+ -0.486909,-0.726302,0.485186,-554.192058,-829.407027,2361.464898,
+ -0.34284,-0.756475,0.556961,-357.552241,-863.20747,2455.64332,
+ -0.483833,-0.675055,0.556961,-519.085398,-776.866198,2455.64332,
+ 0,0,-1,-519.085398,-776.866198,2455.64332,
+ 0,0,-1,-357.552241,-863.20747,2455.64332,
+ 0,0,-1,-409.740281,-835.312381,2455.64332,
+ 0,0,-1,-519.085398,-776.866198,2455.64332,
+ 0,0,-1,-409.740281,-835.312381,2455.64332,
+ 0,0,-1,-492.936329,-790.843167,2455.64332,
+ 0.993632,-0.097864,0.055838,849.217148,0,855.371869,
+ 0.976856,-0.161185,0.140615,824.724927,-164.047988,914.026067,
+ 0.972323,-0.22681,0.056077,832.899679,-165.674047,855.371869,
+ 0.976856,-0.161185,0.140615,824.724927,-164.047988,914.026067,
+ 0.993632,-0.097864,0.055838,849.217148,0,855.371869,
+ 0.98538,-0.097051,0.140025,840.882244,0,914.026067,
+ 0.976104,-0.096138,0.19488,1072.403033,0,2148.211628,
+ 0.925561,-0.183175,0.331336,1023.924672,-203.671281,2258.006804,
+ 0.966926,-0.191862,0.168059,1051.797109,-209.215453,2148.211628,
+ 0.925561,-0.183175,0.331336,1023.924672,-203.671281,2258.006804,
+ 0.976104,-0.096138,0.19488,1072.403033,0,2148.211628,
+ 0.929871,-0.091584,0.356303,1043.984543,0,2258.006804,
+ 0,0.707107,0.707107,653.750225,-951.073041,1878.295649,
+ 0,0.582554,0.812792,180.675225,-917.447181,1850.699619,
+ 0,0.707107,0.707107,180.675225,-951.073041,1878.295649,
+ 0,0.582554,0.812792,180.675225,-917.447181,1850.699619,
+ 0,0.707107,0.707107,653.750225,-951.073041,1878.295649,
+ 0,0.527988,0.849252,653.750225,-917.447181,1850.699619,
+ -0.379912,-0.918011,-0.113678,-324.326404,-782.993204,796.15315,
+ -0.532672,-0.798598,-0.280182,-464.344144,-694.940121,738.078199,
+ -0.366638,-0.887172,-0.280182,-319.845809,-772.17609,738.078199,
+ -0.532672,-0.798598,-0.280182,-464.344144,-694.940121,738.078199,
+ -0.379912,-0.918011,-0.113678,-324.326404,-782.993204,796.15315,
+ -0.551707,-0.826255,-0.113678,-470.848959,-704.675266,796.15315,
+ -0.382224,-0.922365,0.056107,-324.981333,-784.574342,855.371869,
+ -0.551707,-0.826255,-0.113678,-470.848959,-704.675266,796.15315,
+ -0.379912,-0.918011,-0.113678,-324.326404,-782.993204,796.15315,
+ -0.551707,-0.826255,-0.113678,-470.848959,-704.675266,796.15315,
+ -0.382224,-0.922365,0.056107,-324.981333,-784.574342,855.371869,
+ -0.554824,-0.830073,0.056107,-471.799769,-706.098253,855.371869,
+ -0.408691,-0.901776,0.140615,-321.791703,-776.873894,914.026067,
+ -0.554824,-0.830073,0.056107,-471.799769,-706.098253,855.371869,
+ -0.382224,-0.922365,0.056107,-324.981333,-784.574342,855.371869,
+ -0.554824,-0.830073,0.056107,-471.799769,-706.098253,855.371869,
+ -0.408691,-0.901776,0.140615,-321.791703,-776.873894,914.026067,
+ -0.576766,-0.804716,0.140615,-467.169144,-699.168033,914.026067,
+ -0.224911,-0.96418,0.140615,-164.047988,-824.724927,914.026067,
+ -0.382224,-0.922365,0.056107,-324.981333,-784.574342,855.371869,
+ -0.194936,-0.97921,0.056107,-165.674047,-832.899679,855.371869,
+ -0.382224,-0.922365,0.056107,-324.981333,-784.574342,855.371869,
+ -0.224911,-0.96418,0.140615,-164.047988,-824.724927,914.026067,
+ -0.408691,-0.901776,0.140615,-321.791703,-776.873894,914.026067,
+ 0,0.973856,0.227168,180.675225,-1011.80212,1991.911763,
+ 0,0.935939,0.352162,653.750225,-999.174772,1950.284976,
+ 0,0.910825,0.412792,180.675225,-999.174772,1950.284976,
+ 0,0.935939,0.352162,653.750225,-999.174772,1950.284976,
+ 0,0.973856,0.227168,180.675225,-1011.80212,1991.911763,
+ 0,0.986659,0.162803,653.750225,-1011.80212,1991.911763,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.633398,-0.771798,0.055991,-644.327894,-861.580736,2058.811877,
+ -0.555123,-0.830697,0.0422,-599.998378,-897.96103,2058.811877,
+ -0.633398,-0.771798,0.055991,-644.327894,-861.580736,2058.811877,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.632155,-0.770284,0.083921,-644.282481,-861.55593,2059.381644,
+ -0.632155,-0.770284,0.083921,-644.282481,-861.55593,2059.381644,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.632155,-0.770284,0.083921,-655.637458,-847.372595,2104.031681,
+ -0.632155,-0.770284,0.083921,-655.637458,-847.372595,2104.031681,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.632155,-0.770284,0.083921,-680.351355,-823.413171,2137.783955,
+ -0.632155,-0.770284,0.083921,-680.351355,-823.413171,2137.783955,
+ -0.577307,-0.804415,0.140118,-595.795203,-891.670534,2148.211628,
+ -0.62223,-0.75819,0.19488,-700.811797,-805.485643,2148.211628,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.081515,-0.827636,-0.555314,141.006389,-920.441115,1614.76108,
+ 0.162003,-0.814444,-0.557168,182.278552,-916.376162,1614.76108,
+ 0.081515,-0.827636,-0.555314,141.006389,-920.441115,1614.76108,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.081515,-0.827636,-0.555314,47.148336,-929.685327,1614.76108,
+ 0.081515,-0.827636,-0.555314,47.148336,-929.685327,1614.76108,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ 0,-0.8304,-0.557168,0,-934.329033,1614.76108,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ 0.081515,-0.827636,-0.555314,47.148336,-929.685327,1614.76108,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.935939,0,0.352162,-43.046973,-975.725342,2017.42443,
+ 0.973856,0,0.227168,-45.607992,-1075.476552,2025.866979,
+ 0.903939,-0,0.427662,-43.046973,-1075.728791,2017.42443,
+ 0.973856,0,0.227168,-45.607992,-1075.476552,2025.866979,
+ 0.935939,0,0.352162,-43.046973,-975.725342,2017.42443,
+ 0.986659,-0,0.162803,-45.607992,-975.978478,2025.866979,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ 0.705336,-0.438515,0.556961,776.866198,-519.085398,2455.64332,
+ 0.707373,-0.49612,0.503476,829.407027,-554.192058,2361.464898,
+ 0.705336,-0.438515,0.556961,776.866198,-519.085398,2455.64332,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ 0.733442,-0.392033,0.555314,813.095624,-451.30491,2455.64332,
+ 0.733442,-0.392033,0.555314,813.095624,-451.30491,2455.64332,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ 0.733442,-0.392033,0.555314,857.607805,-368.028476,2455.64332,
+ 0.733442,-0.392033,0.555314,857.607805,-368.028476,2455.64332,
+ 0.79057,-0.348586,0.503476,921.587711,-381.734129,2361.464898,
+ 0.777333,-0.292484,0.556961,863.20747,-357.552241,2455.64332,
+ -0.95694,-0.290285,-0,-798.491399,-250.528339,2549.07468,
+ -0.916164,-0.400805,-0,-776.873894,-321.791703,2455.64332,
+ -0.92388,-0.382683,-0,-776.873894,-321.791703,2549.07468,
+ -0.916164,-0.400805,-0,-776.873894,-321.791703,2455.64332,
+ -0.95694,-0.290285,-0,-798.491399,-250.528339,2549.07468,
+ -0.976753,-0.214369,-0,-824.724927,-164.047988,2455.64332,
+ -0.976753,-0.214369,-0,-824.724927,-164.047988,2455.64332,
+ -0.95694,-0.290285,-0,-798.491399,-250.528339,2549.07468,
+ -0.95694,-0.290285,0,-823.172319,-169.16625,2549.07468,
+ -0.976753,-0.214369,-0,-824.724927,-164.047988,2455.64332,
+ -0.95694,-0.290285,0,-823.172319,-169.16625,2549.07468,
+ -0.980785,-0.19509,0,-824.724927,-164.047988,2549.07468,
+ 0,-0.85779,0.514001,653.750225,-997.119327,2170.810911,
+ 0.118798,-0.950331,0.287676,320.792446,-1019.675597,2128.611098,
+ 0,-0.935939,0.352162,653.750225,-1019.675597,2128.611098,
+ 0.118798,-0.950331,0.287676,320.792446,-1019.675597,2128.611098,
+ 0,-0.85779,0.514001,653.750225,-997.119327,2170.810911,
+ 0.146136,-0.933668,0.326969,349.642944,-1009.198896,2148.211628,
+ 0.146136,-0.933668,0.326969,349.642944,-1009.198896,2148.211628,
+ 0,-0.85779,0.514001,653.750225,-997.119327,2170.810911,
+ 0.144571,-0.892809,0.426605,369.410361,-997.119327,2170.810911,
+ -0.029352,-0.894042,0.447021,0,-700.735204,1241.03564,
+ -0.145631,-0.882589,0.447021,-154.934211,-778.906876,1054.17292,
+ 0.029352,-0.894042,0.447021,0,-794.166564,1054.17292,
+ -0.145631,-0.882589,0.447021,-154.934211,-778.906876,1054.17292,
+ -0.029352,-0.894042,0.447021,0,-700.735204,1241.03564,
+ -0.203207,-0.871137,0.447021,-136.706657,-687.270773,1241.03564,
+ -0.136347,-0.584514,0.799845,-164.047988,-824.724927,914.026067,
+ -0.21137,-0.561756,0.799845,-250.282436,-604.235252,1054.17292,
+ -0.247761,-0.546683,0.799845,-321.791703,-776.873894,914.026067,
+ -0.21137,-0.561756,0.799845,-250.282436,-604.235252,1054.17292,
+ -0.136347,-0.584514,0.799845,-164.047988,-824.724927,914.026067,
+ -0.097715,-0.592199,0.799845,-127.592879,-641.452722,1054.17292,
+ -0.203207,-0.871137,0.447021,-136.706657,-687.270773,1241.03564,
+ -0.315017,-0.837219,0.447021,-303.914386,-733.714234,1054.17292,
+ -0.145631,-0.882589,0.447021,-154.934211,-778.906876,1054.17292,
+ -0.315017,-0.837219,0.447021,-303.914386,-733.714234,1054.17292,
+ -0.203207,-0.871137,0.447021,-136.706657,-687.270773,1241.03564,
+ -0.369253,-0.814754,0.447021,-268.159753,-647.394912,1241.03564,
+ -0.203207,-0.871137,0.447021,-145.820434,-733.088824,1427.89836,
+ -0.315017,-0.837219,0.447021,-321.791703,-776.873894,1241.03564,
+ -0.145631,-0.882589,0.447021,-164.047988,-824.724927,1241.03564,
+ -0.315017,-0.837219,0.447021,-321.791703,-776.873894,1241.03564,
+ -0.203207,-0.871137,0.447021,-145.820434,-733.088824,1427.89836,
+ -0.369253,-0.814754,0.447021,-286.03707,-690.554573,1427.89836,
+ 0.820367,-0.571838,-0,699.168033,-467.169144,2455.64332,
+ 0.881921,-0.471397,-0,731.773963,-406.167739,2549.07468,
+ 0.83147,-0.55557,-0,699.168033,-467.169144,2549.07468,
+ 0.881921,-0.471397,-0,731.773963,-406.167739,2549.07468,
+ 0.820367,-0.571838,-0,699.168033,-467.169144,2455.64332,
+ 0.916164,-0.400805,0,776.873894,-321.791703,2455.64332,
+ 0.881921,-0.471397,-0,731.773963,-406.167739,2549.07468,
+ 0.916164,-0.400805,0,776.873894,-321.791703,2455.64332,
+ 0.881921,-0.471397,0,771.834246,-331.220222,2549.07468,
+ 0.881921,-0.471397,0,771.834246,-331.220222,2549.07468,
+ 0.916164,-0.400805,0,776.873894,-321.791703,2455.64332,
+ 0.92388,-0.382683,0,776.873894,-321.791703,2549.07468,
+ 0.000315,-0.993518,-0.113678,0,-847.505736,796.15315,
+ -0.186514,-0.941653,-0.280182,-163.055979,-819.737765,738.078199,
+ 0.000777,-0.959946,-0.280182,0,-835.797377,738.078199,
+ -0.186514,-0.941653,-0.280182,-163.055979,-819.737765,738.078199,
+ 0.000315,-0.993518,-0.113678,0,-847.505736,796.15315,
+ -0.193517,-0.974489,-0.113678,-165.340167,-831.221151,796.15315,
+ 1,0,0,-46.472742,-976.41888,2034.646937,
+ 0.995185,0,-0.098017,-46.418054,-976.457504,2035.2022,
+ 0.999806,0,-0.019694,-46.472742,-1075.391382,2034.646937,
+ 0.999806,0,-0.019694,-46.472742,-1075.391382,2034.646937,
+ 0.986659,0,-0.162803,-45.607992,-976.044955,2043.426896,
+ 0.973856,0,-0.227168,-45.607992,-1075.476552,2043.426896,
+ 0.986659,0,-0.162803,-45.607992,-976.044955,2043.426896,
+ 0.999806,0,-0.019694,-46.472742,-1075.391382,2034.646937,
+ 0.995185,0,-0.098017,-46.418054,-976.457504,2035.2022,
+ 0.001218,-0.898681,-0.438601,0,-814.429823,682.822311,
+ -0.15672,-0.796215,-0.584364,-152.95461,-768.954752,631.979457,
+ 0.001625,-0.81149,-0.584364,0,-784.019466,631.979457,
+ -0.15672,-0.796215,-0.584364,-152.95461,-768.954752,631.979457,
+ 0.001218,-0.898681,-0.438601,0,-814.429823,682.822311,
+ -0.17413,-0.881651,-0.438601,-158.887376,-798.780783,682.822311,
+ 0.000777,-0.959946,-0.280182,0,-835.797377,738.078199,
+ -0.17413,-0.881651,-0.438601,-158.887376,-798.780783,682.822311,
+ 0.001218,-0.898681,-0.438601,0,-814.429823,682.822311,
+ -0.17413,-0.881651,-0.438601,-158.887376,-798.780783,682.822311,
+ 0.000777,-0.959946,-0.280182,0,-835.797377,738.078199,
+ -0.186514,-0.941653,-0.280182,-163.055979,-819.737765,738.078199,
+ -0.785009,-0.523429,-0.331336,-868.041423,-580.006736,1812.397596,
+ -0.614068,-0.630655,-0.474547,-705.352697,-705.352697,1708.939502,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.614068,-0.630655,-0.474547,-705.352697,-705.352697,1708.939502,
+ -0.785009,-0.523429,-0.331336,-868.041423,-580.006736,1812.397596,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ 0,-0.999806,-0.019694,653.750225,-1038.255787,2035.202177,
+ 0.117291,-0.984202,-0.132626,288.287532,-1033.56568,1987.582722,
+ 0,-0.973856,-0.227168,653.750225,-1033.56568,1987.582722,
+ 0.117291,-0.984202,-0.132626,288.287532,-1033.56568,1987.582722,
+ 0,-0.999806,-0.019694,653.750225,-1038.255787,2035.202177,
+ 0.146586,-0.98666,-0.07081,287.457755,-1035.930439,2011.592523,
+ 0.146586,-0.98666,-0.07081,287.457755,-1035.930439,2011.592523,
+ 0,-0.999806,-0.019694,653.750225,-1038.255787,2035.202177,
+ 0.176337,-0.98433,0,279.79211,-1038.255787,2035.202177,
+ 0.974489,-0.193517,-0.113678,831.221151,-165.340167,796.15315,
+ 0.993632,-0.097864,0.055838,849.217148,0,855.371869,
+ 0.972323,-0.22681,0.056077,832.899679,-165.674047,855.371869,
+ 0.993632,-0.097864,0.055838,849.217148,0,855.371869,
+ 0.974489,-0.193517,-0.113678,831.221151,-165.340167,796.15315,
+ 0.985217,-0.097035,-0.141176,847.505736,0,796.15315,
+ 0,-0.582554,-0.812792,475.358482,-929.775248,1832.249363,
+ 0,-0.707107,-0.707107,653.750225,-966.763694,1862.604996,
+ 0,-0.707107,-0.707107,422.745208,-966.763694,1862.604996,
+ 0,-0.707107,-0.707107,653.750225,-966.763694,1862.604996,
+ 0,-0.582554,-0.812792,475.358482,-929.775248,1832.249363,
+ 0,-0.514001,-0.85779,653.750225,-929.775248,1832.249363,
+ 0,-0.999806,-0.019694,653.750225,-1038.255787,2035.202177,
+ 0.117205,-0.990162,0.07644,287.45777,-1035.930435,2058.811877,
+ 0.176337,-0.98433,0,279.79211,-1038.255787,2035.202177,
+ 0.117205,-0.990162,0.07644,287.45777,-1035.930435,2058.811877,
+ 0,-0.999806,-0.019694,653.750225,-1038.255787,2035.202177,
+ 0,-0.986659,0.162803,653.750225,-1033.56568,2082.821632,
+ 0.117205,-0.990162,0.07644,287.45777,-1035.930435,2058.811877,
+ 0,-0.986659,0.162803,653.750225,-1033.56568,2082.821632,
+ 0.146874,-0.976542,0.157463,288.287545,-1033.56568,2082.821632,
+ 0,0.582554,-0.812792,653.750225,-917.447181,2219.704735,
+ 0,0.707107,-0.707107,180.675225,-951.073041,2192.108705,
+ 0,0.527988,-0.849252,180.675225,-917.447181,2219.704735,
+ 0,0.707107,-0.707107,180.675225,-951.073041,2192.108705,
+ 0,0.582554,-0.812792,653.750225,-917.447181,2219.704735,
+ 0,0.707107,-0.707107,653.750225,-951.073041,2192.108705,
+ 0.315017,-0.837219,0.447021,286.03707,-690.554573,1427.89836,
+ 0.203207,-0.871137,0.447021,164.047988,-824.724927,1241.03564,
+ 0.369253,-0.814754,0.447021,321.791703,-776.873894,1241.03564,
+ 0.203207,-0.871137,0.447021,164.047988,-824.724927,1241.03564,
+ 0.315017,-0.837219,0.447021,286.03707,-690.554573,1427.89836,
+ 0.145631,-0.882589,0.447021,145.820434,-733.088824,1427.89836,
+ 0.890977,-0.087754,0.445488,840.882244,0,1241.03564,
+ 0.882589,-0.145631,0.447021,733.088824,-145.820434,1427.89836,
+ 0.871137,-0.203207,0.447021,824.724927,-164.047988,1241.03564,
+ 0.882589,-0.145631,0.447021,733.088824,-145.820434,1427.89836,
+ 0.890977,-0.087754,0.445488,840.882244,0,1241.03564,
+ 0.890977,-0.087754,0.445488,747.450884,0,1427.89836,
+ 0.830739,-0.342785,-0.438601,752.435044,-311.6688,682.822311,
+ 0.941653,-0.186514,-0.280182,819.737765,-163.055979,738.078199,
+ 0.887172,-0.366638,-0.280182,772.17609,-319.845809,738.078199,
+ 0.941653,-0.186514,-0.280182,819.737765,-163.055979,738.078199,
+ 0.830739,-0.342785,-0.438601,752.435044,-311.6688,682.822311,
+ 0.881651,-0.17413,-0.438601,798.780783,-158.887376,682.822311,
+ -0.993632,-0.097864,0.055838,-849.217148,0,855.371869,
+ -0.974489,-0.193517,-0.113678,-831.221151,-165.340167,796.15315,
+ -0.972323,-0.22681,0.056077,-832.899679,-165.674047,855.371869,
+ -0.974489,-0.193517,-0.113678,-831.221151,-165.340167,796.15315,
+ -0.993632,-0.097864,0.055838,-849.217148,0,855.371869,
+ -0.985217,-0.097035,-0.141176,-847.505736,0,796.15315,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.000913,-0.943512,-0.331336,0,-1043.984543,1812.397596,
+ 0.184965,-0.925205,-0.331336,203.671281,-1023.924672,1812.397596,
+ 0.000913,-0.943512,-0.331336,0,-1043.984543,1812.397596,
+ 0.215316,-0.958117,-0.188816,209.215453,-1051.797109,1922.192772,
+ 0.014463,-0.987633,-0.156114,0,-1072.403033,1922.192772,
+ 0,0.527988,0.849252,653.750225,-917.447181,1850.699619,
+ 0,0.412792,0.910825,180.675225,-879.083714,1830.193918,
+ 0,0.582554,0.812792,180.675225,-917.447181,1850.699619,
+ 0,0.412792,0.910825,180.675225,-879.083714,1830.193918,
+ 0,0.527988,0.849252,653.750225,-917.447181,1850.699619,
+ 0,0.352162,0.935939,653.750225,-879.083714,1830.193918,
+ 0.527988,-0.849252,0,467.169144,-699.168033,2549.07468,
+ 0.412792,-0.910825,0,321.791703,-776.873894,2455.64332,
+ 0.582554,-0.812792,0,467.169144,-699.168033,2455.64332,
+ 0.412792,-0.910825,0,321.791703,-776.873894,2455.64332,
+ 0.527988,-0.849252,0,467.169144,-699.168033,2549.07468,
+ 0.352162,-0.935939,0,321.791703,-776.873894,2549.07468,
+ 0,0,-1,321.791703,-776.873894,2549.07468,
+ 0,0,-1,467.169144,-699.168033,2549.07468,
+ 0,0,-1,443.635404,-711.747079,2549.07468,
+ 0,0,1,321.791703,-776.873894,2549.07468,
+ 0,0,1,443.635404,-711.747079,2549.07468,
+ 0,0,1,368.760184,-751.768718,2549.07468,
+ 0.994307,-0.097931,-0.041998,1079.968548,0,2011.592523,
+ 0.979923,-0.19486,0.0422,1059.217255,-210.691412,2058.811877,
+ 0.972989,-0.226965,-0.042178,1059.217255,-210.691412,2011.592523,
+ 0.979923,-0.19486,0.0422,1059.217255,-210.691412,2058.811877,
+ 0.994307,-0.097931,-0.041998,1079.968548,0,2011.592523,
+ 0.993624,-0.097863,0.055991,1079.968548,0,2058.811877,
+ 0.606593,-0.621557,-0.495693,705.352697,-705.352697,1708.939502,
+ 0.527587,-0.642867,-0.555314,642.325277,-675.725844,1614.76108,
+ 0.606233,-0.567693,-0.556961,660.670395,-660.670395,1614.76108,
+ 0.527587,-0.642867,-0.555314,642.325277,-675.725844,1614.76108,
+ 0.606593,-0.621557,-0.495693,705.352697,-705.352697,1708.939502,
+ 0.527587,-0.642867,-0.555314,569.385776,-735.585745,1614.76108,
+ 0.527587,-0.642867,-0.555314,569.385776,-735.585745,1614.76108,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.461345,-0.690452,-0.557168,519.085398,-776.866198,1614.76108,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.527587,-0.642867,-0.555314,569.385776,-735.585745,1614.76108,
+ 0.606593,-0.621557,-0.495693,705.352697,-705.352697,1708.939502,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.606593,-0.621557,-0.495693,705.352697,-705.352697,1708.939502,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.579174,-0.705726,-0.408054,653.750225,-795.278099,1791.222384,
+ 0.579174,-0.705726,-0.408054,653.750225,-795.278099,1791.222384,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.604517,-0.736606,-0.303266,653.750225,-807.521706,1812.397596,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.579174,-0.705726,-0.408054,600.307476,-841.785968,1795.80301,
+ 0.468978,-0.782653,-0.409285,577.578281,-864.406983,1802.66502,
+ 0.579174,-0.705726,-0.408054,600.307476,-841.785968,1795.80301,
+ 0.501364,-0.716458,-0.4851,554.192058,-829.407027,1708.939502,
+ 0.579174,-0.705726,-0.408054,653.750225,-795.278099,1791.222384,
+ 0.592439,-0.554776,-0.584157,554.385481,-554.385481,631.979457,
+ 0.747902,-0.498268,-0.438601,677.173649,-452.472967,682.822311,
+ 0.636324,-0.634602,-0.438601,575.888851,-575.888851,682.822311,
+ 0.747902,-0.498268,-0.438601,677.173649,-452.472967,682.822311,
+ 0.592439,-0.554776,-0.584157,554.385481,-554.385481,631.979457,
+ 0.675632,-0.449489,-0.584364,651.888362,-435.577878,631.979457,
+ 0.849252,-0,0.527988,-38.888103,-1075.973486,2009.643732,
+ 0.903939,-0,0.427662,-43.046973,-1075.728791,2017.42443,
+ 0.881921,-0,0.471397,-39.929753,-1076.03581,2011.592523,
+ 0.903939,-0,0.427662,-43.046973,-1075.728791,2017.42443,
+ 0.849252,-0,0.527988,-38.888103,-1075.973486,2009.643732,
+ 0.83147,0,0.55557,-38.888103,-975.6692,2009.643732,
+ 0.903939,-0,0.427662,-43.046973,-1075.728791,2017.42443,
+ 0.83147,0,0.55557,-38.888103,-975.6692,2009.643732,
+ 0.935939,0,0.352162,-43.046973,-975.725342,2017.42443,
+ 0,-0.19509,0.980785,653.750225,-841.785968,2274.601344,
+ 0,-0.098017,0.995185,653.750225,-795.278128,2279.181966,
+ -0,-0.227168,0.973856,600.307509,-841.785968,2274.601344,
+ 0,0.812792,0.582554,180.675225,-978.669071,1911.921509,
+ 0,0.707107,0.707107,653.750225,-951.073041,1878.295649,
+ 0,0.707107,0.707107,180.675225,-951.073041,1878.295649,
+ 0,0.707107,0.707107,653.750225,-951.073041,1878.295649,
+ 0,0.812792,0.582554,180.675225,-978.669071,1911.921509,
+ 0,0.849252,0.527988,653.750225,-978.669071,1911.921509,
+ -0.001338,-0.87441,0.485186,0,-997.51935,2361.464898,
+ -0.184965,-0.925205,0.331336,-203.671281,-1023.924672,2258.006804,
+ -0.000913,-0.943512,0.331336,0,-1043.984543,2258.006804,
+ -0.184965,-0.925205,0.331336,-203.671281,-1023.924672,2258.006804,
+ -0.001338,-0.87441,0.485186,0,-997.51935,2361.464898,
+ -0.171901,-0.857347,0.485186,-194.606371,-978.352295,2361.464898,
+ -0.335858,-0.807337,0.485186,-381.734129,-921.587711,2361.464898,
+ -0.538332,-0.779667,0.319873,-580.006736,-868.041423,2258.006804,
+ -0.36191,-0.871342,0.331336,-399.515588,-964.515951,2258.006804,
+ -0.538332,-0.779667,0.319873,-580.006736,-868.041423,2258.006804,
+ -0.335858,-0.807337,0.485186,-381.734129,-921.587711,2361.464898,
+ -0.486909,-0.726302,0.485186,-554.192058,-829.407027,2361.464898,
+ -0,-0.514001,0.85779,653.750225,-929.775248,2238.154991,
+ -0,-0.471397,0.881921,533.995171,-892.635117,2258.006804,
+ 0,-0.582554,0.812792,475.358507,-929.775248,2238.154991,
+ -0,-0.471397,0.881921,533.995171,-892.635117,2258.006804,
+ -0,-0.514001,0.85779,653.750225,-929.775248,2238.154991,
+ -0,-0.412792,0.910825,540.89692,-887.575434,2260.711261,
+ -0,-0.412792,0.910825,540.89692,-887.575434,2260.711261,
+ -0,-0.514001,0.85779,653.750225,-929.775248,2238.154991,
+ -0,-0.336778,0.941584,653.750225,-887.575434,2260.711261,
+ 0.412792,0,0.910825,-18.690668,-1076.560038,1993.068126,
+ 0.527988,0,0.849252,-26.471367,-976.14887,1997.226995,
+ 0.582554,-0,0.812792,-26.471367,-1076.145653,1997.226995,
+ 0.527988,0,0.849252,-26.471367,-976.14887,1997.226995,
+ 0.412792,0,0.910825,-18.690668,-1076.560038,1993.068126,
+ 0.352162,0,0.935939,-18.690668,-976.666251,1993.068126,
+ 0.509726,-0.316902,0.799845,699.168033,-467.169144,914.026067,
+ 0.546683,-0.247761,0.799845,604.235252,-250.282436,1054.17292,
+ 0.487843,-0.349653,0.799845,543.79736,-363.353779,1054.17292,
+ 0.546683,-0.247761,0.799845,604.235252,-250.282436,1054.17292,
+ 0.509726,-0.316902,0.799845,699.168033,-467.169144,914.026067,
+ 0.561756,-0.21137,0.799845,776.873894,-321.791703,914.026067,
+ -0.83147,0,0.55557,35.951781,-975.958402,2009.643732,
+ -0.707107,0,0.707107,30.354884,-1076.236801,2002.823893,
+ -0.849252,-0,0.527988,35.951781,-1076.262688,2009.643732,
+ -0.707107,0,0.707107,30.354884,-1076.236801,2002.823893,
+ -0.83147,0,0.55557,35.951781,-975.958402,2009.643732,
+ -0.707107,0,0.707107,30.354884,-976.10141,2002.823893,
+ 0.973856,0,-0.227168,-45.607992,-1075.476552,2043.426896,
+ 0.935939,0,-0.352162,-43.046973,-975.791819,2051.869445,
+ 0.903939,-0,-0.427662,-43.046973,-1075.728791,2051.869445,
+ 0.935939,0,-0.352162,-43.046973,-975.791819,2051.869445,
+ 0.973856,0,-0.227168,-45.607992,-1075.476552,2043.426896,
+ 0.986659,0,-0.162803,-45.607992,-976.044955,2043.426896,
+ 0,-0.707107,-0.707107,843.013714,-637.259985,2192.108705,
+ 0,-0.84225,-0.539087,180.675225,-609.663955,2158.482845,
+ 0,-0.83147,-0.55557,876.866129,-609.663955,2158.482845,
+ 0,-0.84225,-0.539087,180.675225,-609.663955,2158.482845,
+ 0,-0.707107,-0.707107,843.013714,-637.259985,2192.108705,
+ 0,-0.707107,-0.707107,180.675225,-637.259985,2192.108705,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.527587,-0.642867,-0.555314,-569.385752,-735.585765,1614.76108,
+ -0.461345,-0.690452,-0.557168,-519.085398,-776.866198,1614.76108,
+ -0.527587,-0.642867,-0.555314,-569.385752,-735.585765,1614.76108,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.527587,-0.642867,-0.555314,-642.325255,-675.725862,1614.76108,
+ -0.527587,-0.642867,-0.555314,-642.325255,-675.725862,1614.76108,
+ -0.614068,-0.630655,-0.474547,-705.352697,-705.352697,1708.939502,
+ -0.606233,-0.567693,-0.556961,-660.670395,-660.670395,1614.76108,
+ -0.614068,-0.630655,-0.474547,-705.352697,-705.352697,1708.939502,
+ -0.527587,-0.642867,-0.555314,-642.325255,-675.725862,1614.76108,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.994307,-0.097931,0.041998,-1079.968548,0,2058.811877,
+ -0.979923,-0.19486,-0.0422,-1059.217255,-210.691412,2011.592523,
+ -0.972989,-0.226965,0.042178,-1059.217255,-210.691412,2058.811877,
+ -0.979923,-0.19486,-0.0422,-1059.217255,-210.691412,2011.592523,
+ -0.994307,-0.097931,0.041998,-1079.968548,0,2058.811877,
+ -0.993624,-0.097863,-0.055991,-1079.968548,0,2011.592523,
+ -0.882589,-0.145631,0.447021,-687.270773,-136.706657,1241.03564,
+ -0.890977,-0.087754,0.445488,-794.166564,0,1054.17292,
+ -0.871137,-0.203207,0.447021,-778.906876,-154.934211,1054.17292,
+ -0.890977,-0.087754,0.445488,-794.166564,0,1054.17292,
+ -0.882589,-0.145631,0.447021,-687.270773,-136.706657,1241.03564,
+ -0.890977,-0.087754,0.445488,-700.735204,0,1241.03564,
+ 0.61434,-0.748575,-0.249443,653.750225,-808.286776,1814.693561,
+ 0.604517,-0.736606,-0.303266,653.750225,-807.521706,1812.397596,
+ 0.61434,-0.748575,-0.249443,670.391133,-794.166513,1813.302837,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.61434,-0.748575,-0.249443,670.391133,-794.166513,1813.302837,
+ 0.604517,-0.736606,-0.303266,653.750225,-807.521706,1812.397596,
+ 0.61434,-0.748575,-0.249443,670.391133,-794.166513,1813.302837,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.61434,-0.748575,-0.249443,724.871877,-750.8761,1817.56657,
+ 0.61434,-0.748575,-0.249443,724.871877,-750.8761,1817.56657,
+ 0.647345,-0.690701,-0.322298,738.20855,-738.20855,1812.397596,
+ 0.684548,-0.684548,-0.250574,739.771122,-739.771122,1820.935228,
+ 0.381937,-0.922484,0.056107,324.981333,-784.574342,855.371869,
+ 0.194135,-0.974366,-0.113678,165.340167,-831.221151,796.15315,
+ 0.380494,-0.91777,-0.113678,324.326404,-782.993204,796.15315,
+ 0.194135,-0.974366,-0.113678,165.340167,-831.221151,796.15315,
+ 0.381937,-0.922484,0.056107,324.981333,-784.574342,855.371869,
+ 0.19463,-0.979271,0.056107,165.674047,-832.899679,855.371869,
+ 0.787008,-0.166056,-0.594175,768.954752,-152.95461,631.979457,
+ 0.882512,-0.08692,-0.462187,814.429823,0,682.822311,
+ 0.881651,-0.17413,-0.438601,798.780783,-158.887376,682.822311,
+ 0.882512,-0.08692,-0.462187,814.429823,0,682.822311,
+ 0.787008,-0.166056,-0.594175,768.954752,-152.95461,631.979457,
+ 0.792149,-0.07802,-0.60532,784.019466,0,631.979457,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.241413,-0.795831,-0.555314,323.520353,-873.53093,1614.76108,
+ 0.31778,-0.767189,-0.557168,357.552241,-863.20747,1614.76108,
+ 0.241413,-0.795831,-0.555314,323.520353,-873.53093,1614.76108,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.241413,-0.795831,-0.555314,233.261899,-900.910533,1614.76108,
+ 0.241413,-0.795831,-0.555314,233.261899,-900.910533,1614.76108,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.162003,-0.814444,-0.557168,182.278552,-916.376162,1614.76108,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.241413,-0.795831,-0.555314,233.261899,-900.910533,1614.76108,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.331547,-0.797805,-0.503571,381.734129,-921.587711,1708.939502,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.184965,-0.925205,-0.331336,203.671281,-1023.924672,1812.397596,
+ 0,0,-1,-654.019524,0,1054.17292,
+ 0,0,-1,-778.906876,-154.934211,1054.17292,
+ 0,0,-1,-794.166564,0,1054.17292,
+ 0,0,-1,-778.906876,-154.934211,1054.17292,
+ 0,0,-1,-654.019524,0,1054.17292,
+ 0,0,-1,-733.714234,-303.914386,1054.17292,
+ 0,0,-1,-733.714234,-303.914386,1054.17292,
+ 0,0,-1,-654.019524,0,1054.17292,
+ 0,0,-1,-660.325365,-441.215303,1054.17292,
+ 0,0,-1,-660.325365,-441.215303,1054.17292,
+ 0,0,-1,-654.019524,0,1054.17292,
+ 0,0,-1,-641.452722,-127.592879,1054.17292,
+ 0,0,-1,-660.325365,-441.215303,1054.17292,
+ 0,0,-1,-641.452722,-127.592879,1054.17292,
+ 0,0,-1,-561.560563,-561.560563,1054.17292,
+ 0,0,-1,-561.560563,-561.560563,1054.17292,
+ 0,0,-1,-641.452722,-127.592879,1054.17292,
+ 0,0,-1,-604.235252,-250.282436,1054.17292,
+ 0,0,-1,-561.560563,-561.560563,1054.17292,
+ 0,0,-1,-604.235252,-250.282436,1054.17292,
+ 0,0,-1,-543.79736,-363.353779,1054.17292,
+ 0,0,-1,-561.560563,-561.560563,1054.17292,
+ 0,0,-1,-543.79736,-363.353779,1054.17292,
+ 0,0,-1,-441.215303,-660.325365,1054.17292,
+ 0,0,-1,-441.215303,-660.325365,1054.17292,
+ 0,0,-1,-543.79736,-363.353779,1054.17292,
+ 0,0,-1,-462.46164,-462.46164,1054.17292,
+ 0,0,-1,-441.215303,-660.325365,1054.17292,
+ 0,0,-1,-462.46164,-462.46164,1054.17292,
+ 0,0,-1,-363.353779,-543.79736,1054.17292,
+ 0,0,-1,-441.215303,-660.325365,1054.17292,
+ 0,0,-1,-363.353779,-543.79736,1054.17292,
+ 0,0,-1,-303.914386,-733.714234,1054.17292,
+ 0,0,-1,-303.914386,-733.714234,1054.17292,
+ 0,0,-1,-363.353779,-543.79736,1054.17292,
+ 0,0,-1,-250.282436,-604.235252,1054.17292,
+ 0,0,-1,-303.914386,-733.714234,1054.17292,
+ 0,0,-1,-250.282436,-604.235252,1054.17292,
+ 0,0,-1,-154.934211,-778.906876,1054.17292,
+ 0,0,-1,-154.934211,-778.906876,1054.17292,
+ 0,0,-1,-250.282436,-604.235252,1054.17292,
+ 0,0,-1,-127.592879,-641.452722,1054.17292,
+ 0,0,-1,-154.934211,-778.906876,1054.17292,
+ 0,0,-1,-127.592879,-641.452722,1054.17292,
+ 0,0,-1,0,-794.166564,1054.17292,
+ 0,0,-1,0,-794.166564,1054.17292,
+ 0,0,-1,-127.592879,-641.452722,1054.17292,
+ 0,0,-1,0,-654.019524,1054.17292,
+ 0,0,-1,0,-794.166564,1054.17292,
+ 0,0,-1,0,-654.019524,1054.17292,
+ 0,0,-1,127.592879,-641.452722,1054.17292,
+ 0,0,-1,0,-794.166564,1054.17292,
+ 0,0,-1,127.592879,-641.452722,1054.17292,
+ 0,0,-1,154.934211,-778.906876,1054.17292,
+ 0,0,-1,154.934211,-778.906876,1054.17292,
+ 0,0,-1,127.592879,-641.452722,1054.17292,
+ 0,0,-1,250.282436,-604.235252,1054.17292,
+ 0,0,-1,154.934211,-778.906876,1054.17292,
+ 0,0,-1,250.282436,-604.235252,1054.17292,
+ 0,0,-1,303.914386,-733.714234,1054.17292,
+ 0,0,-1,303.914386,-733.714234,1054.17292,
+ 0,0,-1,250.282436,-604.235252,1054.17292,
+ 0,0,-1,363.353779,-543.79736,1054.17292,
+ 0,0,-1,303.914386,-733.714234,1054.17292,
+ 0,0,-1,363.353779,-543.79736,1054.17292,
+ 0,0,-1,441.215303,-660.325365,1054.17292,
+ 0,0,-1,441.215303,-660.325365,1054.17292,
+ 0,0,-1,363.353779,-543.79736,1054.17292,
+ 0,0,-1,462.46164,-462.46164,1054.17292,
+ 0,0,-1,441.215303,-660.325365,1054.17292,
+ 0,0,-1,462.46164,-462.46164,1054.17292,
+ 0,0,-1,561.560563,-561.560563,1054.17292,
+ 0,0,-1,561.560563,-561.560563,1054.17292,
+ 0,0,-1,462.46164,-462.46164,1054.17292,
+ 0,0,-1,543.79736,-363.353779,1054.17292,
+ 0,0,-1,561.560563,-561.560563,1054.17292,
+ 0,0,-1,543.79736,-363.353779,1054.17292,
+ 0,0,-1,604.235252,-250.282436,1054.17292,
+ 0,0,-1,561.560563,-561.560563,1054.17292,
+ 0,0,-1,604.235252,-250.282436,1054.17292,
+ 0,0,-1,660.325365,-441.215303,1054.17292,
+ 0,0,-1,660.325365,-441.215303,1054.17292,
+ 0,0,-1,604.235252,-250.282436,1054.17292,
+ 0,0,-1,641.452722,-127.592879,1054.17292,
+ 0,0,-1,660.325365,-441.215303,1054.17292,
+ 0,0,-1,641.452722,-127.592879,1054.17292,
+ 0,0,-1,654.019524,0,1054.17292,
+ 0,0,-1,660.325365,-441.215303,1054.17292,
+ 0,0,-1,654.019524,0,1054.17292,
+ 0,0,-1,794.166564,0,1054.17292,
+ 0,0,-1,660.325365,-441.215303,1054.17292,
+ 0,0,-1,794.166564,0,1054.17292,
+ 0,0,-1,733.714234,-303.914386,1054.17292,
+ 0,0,-1,733.714234,-303.914386,1054.17292,
+ 0,0,-1,794.166564,0,1054.17292,
+ 0,0,-1,778.906876,-154.934211,1054.17292,
+ -0.027252,-0.830091,0.556961,0,-934.329033,2455.64332,
+ -0.171901,-0.857347,0.485186,-194.606371,-978.352295,2361.464898,
+ -0.001338,-0.87441,0.485186,0,-997.51935,2361.464898,
+ -0.171901,-0.857347,0.485186,-194.606371,-978.352295,2361.464898,
+ -0.027252,-0.830091,0.556961,0,-934.329033,2455.64332,
+ -0.188671,-0.808825,0.556961,-182.278552,-916.376162,2455.64332,
+ 0,0,1,-182.278552,-916.376162,2455.64332,
+ 0,0,1,0,-934.329033,2455.64332,
+ 0,0,1,-47.148298,-929.685331,2455.64332,
+ 0,0,-1,-182.278552,-916.376162,2455.64332,
+ 0,0,-1,-47.148298,-929.685331,2455.64332,
+ 0,0,-1,-141.006393,-920.441115,2455.64332,
+ 0,-0.707107,-0.707107,843.013714,-637.259985,2192.108705,
+ 0,-0.582554,-0.812792,180.675225,-670.885845,2219.704735,
+ 0,-0.707107,-0.707107,180.675225,-637.259985,2192.108705,
+ 0,-0.582554,-0.812792,180.675225,-670.885845,2219.704735,
+ 0,-0.707107,-0.707107,843.013714,-637.259985,2192.108705,
+ 0,-0.527988,-0.849252,806.222028,-670.885845,2219.704735,
+ -0.77301,-0.634393,-0,-635.110018,-545.224061,2549.07468,
+ -0.707107,-0.707107,-0,-594.593537,-594.593537,2455.64332,
+ -0.707107,-0.707107,-0,-594.593537,-594.593537,2549.07468,
+ -0.707107,-0.707107,-0,-594.593537,-594.593537,2455.64332,
+ -0.77301,-0.634393,-0,-635.110018,-545.224061,2549.07468,
+ -0.820367,-0.571838,-0,-699.168033,-467.169144,2455.64332,
+ -0.820367,-0.571838,-0,-699.168033,-467.169144,2455.64332,
+ -0.77301,-0.634393,-0,-635.110018,-545.224061,2549.07468,
+ -0.77301,-0.634393,-0,-689.000369,-479.558478,2549.07468,
+ -0.820367,-0.571838,-0,-699.168033,-467.169144,2455.64332,
+ -0.77301,-0.634393,-0,-689.000369,-479.558478,2549.07468,
+ -0.83147,-0.55557,-0,-699.168033,-467.169144,2549.07468,
+ 0.777333,-0.292484,-0.556961,863.20747,-357.552241,1614.76108,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.79057,-0.348586,-0.503476,921.587711,-381.734129,1708.939502,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.777333,-0.292484,-0.556961,863.20747,-357.552241,1614.76108,
+ 0.795831,-0.241413,-0.555314,887.227327,-278.369384,1614.76108,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.795831,-0.241413,-0.555314,887.227327,-278.369384,1614.76108,
+ 0.795831,-0.241413,-0.555314,914.651021,-187.96558,1614.76108,
+ 0.843385,-0.187656,-0.503476,978.352295,-194.606371,1708.939502,
+ 0.795831,-0.241413,-0.555314,914.651021,-187.96558,1614.76108,
+ 0.819458,-0.135214,-0.556961,916.376162,-182.278552,1614.76108,
+ 0.176518,-0.881175,-0.438601,158.887376,-798.780783,682.822311,
+ 0.001625,-0.81149,-0.584364,0,-784.019466,631.979457,
+ 0.159907,-0.795581,-0.584364,152.95461,-768.954752,631.979457,
+ 0.001625,-0.81149,-0.584364,0,-784.019466,631.979457,
+ 0.176518,-0.881175,-0.438601,158.887376,-798.780783,682.822311,
+ 0.001218,-0.898681,-0.438601,0,-814.429823,682.822311,
+ -0.523429,-0.785009,-0.331336,-580.006736,-868.041423,1812.397596,
+ -0.614068,-0.630655,-0.474547,-705.352697,-705.352697,1708.939502,
+ -0.479152,-0.718908,-0.503571,-554.192058,-829.407027,1708.939502,
+ -0.614068,-0.630655,-0.474547,-705.352697,-705.352697,1708.939502,
+ -0.523429,-0.785009,-0.331336,-580.006736,-868.041423,1812.397596,
+ -0.669886,-0.684903,-0.286639,-738.20855,-738.20855,1812.397596,
+ -0.910015,-0.412425,0.042178,-997.760837,-413.286071,2058.811877,
+ -0.841785,-0.538757,-0.033753,-897.96103,-599.998378,2011.592523,
+ -0.819881,-0.571538,0.033755,-897.96103,-599.998378,2058.811877,
+ -0.841785,-0.538757,-0.033753,-897.96103,-599.998378,2011.592523,
+ -0.910015,-0.412425,0.042178,-997.760837,-413.286071,2058.811877,
+ -0.923079,-0.382289,-0.0422,-997.760837,-413.286071,2011.592523,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.910015,-0.412425,0.042178,-997.760837,-413.286071,2058.811877,
+ -0.819881,-0.571538,0.033755,-897.96103,-599.998378,2058.811877,
+ -0.910015,-0.412425,0.042178,-997.760837,-413.286071,2058.811877,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.910916,-0.376813,0.168059,-990.771213,-410.390874,2148.211628,
+ -0.576766,-0.804716,0.140615,-467.169144,-699.168033,914.026067,
+ -0.691243,-0.718915,0.073102,-600.487204,-600.487204,855.371869,
+ -0.554824,-0.830073,0.056107,-471.799769,-706.098253,855.371869,
+ -0.691243,-0.718915,0.073102,-600.487204,-600.487204,855.371869,
+ -0.576766,-0.804716,0.140615,-467.169144,-699.168033,914.026067,
+ -0.722676,-0.676733,0.140615,-594.593537,-594.593537,914.026067,
+ 0.159907,-0.795581,-0.584364,152.95461,-768.954752,631.979457,
+ 0.024909,-0.75872,-0.65094,0,-745.443558,587.016307,
+ 0.172449,-0.739282,-0.65094,145.428824,-731.120069,587.016307,
+ 0.024909,-0.75872,-0.65094,0,-745.443558,587.016307,
+ 0.159907,-0.795581,-0.584364,152.95461,-768.954752,631.979457,
+ 0.001625,-0.81149,-0.584364,0,-784.019466,631.979457,
+ -0.631049,-0.421653,-0.651142,-619.813666,-414.146251,587.016307,
+ -0.586347,-0.571185,-0.574408,-554.385481,-554.385481,631.979457,
+ -0.692236,-0.442144,-0.570366,-651.888362,-435.577878,631.979457,
+ -0.586347,-0.571185,-0.574408,-554.385481,-554.385481,631.979457,
+ -0.631049,-0.421653,-0.651142,-619.813666,-414.146251,587.016307,
+ -0.518883,-0.55411,-0.65094,-527.108195,-527.108195,587.016307,
+ 0.456496,-0.854043,-0.249443,475.358482,-929.775248,1832.249363,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.445004,-0.832543,-0.329915,533.995007,-892.635204,1812.397596,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.456496,-0.854043,-0.249443,475.358482,-929.775248,1832.249363,
+ 0.456496,-0.854043,-0.249443,422.745208,-966.763694,1862.604996,
+ 0.388566,-0.856387,-0.340026,399.515588,-964.515951,1812.397596,
+ 0.456496,-0.854043,-0.249443,422.745208,-966.763694,1862.604996,
+ 0.326059,-0.911614,-0.25029,406.150723,-980.534583,1879.384872,
+ -0.483833,-0.675055,0.556961,-519.085398,-776.866198,2455.64332,
+ -0.619247,-0.617355,0.485186,-705.352697,-705.352697,2361.464898,
+ -0.486909,-0.726302,0.485186,-554.192058,-829.407027,2361.464898,
+ -0.619247,-0.617355,0.485186,-705.352697,-705.352697,2361.464898,
+ -0.483833,-0.675055,0.556961,-519.085398,-776.866198,2455.64332,
+ -0.606233,-0.567693,0.556961,-660.670395,-660.670395,2455.64332,
+ 0,0,-1,-660.670395,-660.670395,2455.64332,
+ 0,0,-1,-519.085398,-776.866198,2455.64332,
+ 0,0,-1,-569.38575,-735.585766,2455.64332,
+ 0,0,-1,-660.670395,-660.670395,2455.64332,
+ 0,0,-1,-569.38575,-735.585766,2455.64332,
+ 0,0,-1,-642.325255,-675.725862,2455.64332,
+ 0.380494,-0.91777,-0.113678,324.326404,-782.993204,796.15315,
+ 0.188038,-0.94135,-0.280182,163.055979,-819.737765,738.078199,
+ 0.368074,-0.886578,-0.280182,319.845809,-772.17609,738.078199,
+ 0.188038,-0.94135,-0.280182,163.055979,-819.737765,738.078199,
+ 0.380494,-0.91777,-0.113678,324.326404,-782.993204,796.15315,
+ 0.194135,-0.974366,-0.113678,165.340167,-831.221151,796.15315,
+ 0.976753,-0.214369,-0,824.724927,-164.047988,2455.64332,
+ 0.995185,-0.098017,-0,832.543812,-84.661515,2549.07468,
+ 0.980785,-0.19509,0,824.724927,-164.047988,2549.07468,
+ 0.995185,-0.098017,-0,832.543812,-84.661515,2549.07468,
+ 0.976753,-0.214369,-0,824.724927,-164.047988,2455.64332,
+ 0.995185,-0.098017,-0,840.882244,0,2455.64332,
+ 0.995185,-0.098017,-0,832.543812,-84.661515,2549.07468,
+ 0.995185,-0.098017,-0,840.882244,0,2455.64332,
+ 0.995185,-0.098017,0,840.882244,0,2549.07468,
+ -0.929871,-0.091584,-0.356303,-1043.984543,0,1812.397596,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.925561,-0.183175,-0.331336,-1023.924672,-203.671281,1812.397596,
+ -0.843385,-0.187656,-0.503476,-978.352295,-194.606371,1708.939502,
+ -0.929871,-0.091584,-0.356303,-1043.984543,0,1812.397596,
+ -0.850126,-0.08373,-0.51988,-997.51935,0,1708.939502,
+ -0.518883,-0.55411,-0.65094,-527.108195,-527.108195,587.016307,
+ -0.449489,-0.675632,-0.584364,-435.577878,-651.888362,631.979457,
+ -0.586347,-0.571185,-0.574408,-554.385481,-554.385481,631.979457,
+ -0.449489,-0.675632,-0.584364,-435.577878,-651.888362,631.979457,
+ -0.518883,-0.55411,-0.65094,-527.108195,-527.108195,587.016307,
+ -0.400811,-0.644692,-0.65094,-414.146251,-619.813666,587.016307,
+ -0.498268,-0.747902,-0.438601,-452.472967,-677.173649,682.822311,
+ -0.586347,-0.571185,-0.574408,-554.385481,-554.385481,631.979457,
+ -0.449489,-0.675632,-0.584364,-435.577878,-651.888362,631.979457,
+ -0.586347,-0.571185,-0.574408,-554.385481,-554.385481,631.979457,
+ -0.498268,-0.747902,-0.438601,-452.472967,-677.173649,682.822311,
+ -0.644016,-0.644016,-0.412901,-575.888851,-575.888851,682.822311,
+ 0.91563,-0.400602,-0.033753,997.760837,-413.286071,2011.592523,
+ 0.881921,-0.471397,-0,912.783669,-572.267169,2035.202245,
+ 0.880538,-0.470657,-0.055991,911.540742,-574.592523,2011.592523,
+ 0.881921,-0.471397,-0,912.783669,-572.267169,2035.202245,
+ 0.923514,-0.382532,0.028131,997.760837,-413.286071,2058.811877,
+ 0.880538,-0.470657,0.055991,911.540741,-574.592525,2058.811877,
+ 0.923514,-0.382532,0.028131,997.760837,-413.286071,2058.811877,
+ 0.881921,-0.471397,-0,912.783669,-572.267169,2035.202245,
+ 0.91563,-0.400602,-0.033753,997.760837,-413.286071,2011.592523,
+ 0.184965,-0.925205,-0.331336,203.671281,-1023.924672,1812.397596,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ 0.169533,-0.847157,-0.503571,194.606371,-978.352295,1708.939502,
+ 0.001003,-0.863953,-0.503571,0,-997.51935,1708.939502,
+ 0.184965,-0.925205,-0.331336,203.671281,-1023.924672,1812.397596,
+ 0.000913,-0.943512,-0.331336,0,-1043.984543,1812.397596,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.097863,-0.993624,0.055991,36.399844,-1076.383476,2058.811877,
+ 0.168583,-0.985419,0.023006,210.691412,-1059.217255,2058.811877,
+ 0.097863,-0.993624,0.055991,36.399844,-1076.383476,2058.811877,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.097671,-0.991674,0.083921,35.951781,-1076.356667,2059.650143,
+ 0.097671,-0.991674,0.083921,35.951781,-1076.356667,2059.650143,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.097671,-0.991674,0.083921,30.354884,-1076.33078,2066.469982,
+ 0.097671,-0.991674,0.083921,30.354884,-1076.33078,2066.469982,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.097671,-0.991674,0.083921,23.535045,-1076.528834,2072.06688,
+ 0.097671,-0.991674,0.083921,23.535045,-1076.528834,2072.06688,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.097671,-0.991674,0.083921,15.754347,-1076.943219,2076.225749,
+ 0.097671,-0.991674,0.083921,15.754347,-1076.943219,2076.225749,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.097671,-0.991674,0.083921,7.311798,-1077.55801,2078.786769,
+ 0.097671,-0.991674,0.083921,7.311798,-1077.55801,2078.786769,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ 0.032696,-0.995906,0.084279,0,-1078.217216,2079.506918,
+ 0.032696,-0.995906,0.084279,0,-1078.217216,2079.506918,
+ 0.165848,-0.978799,0.120197,209.215453,-1051.797109,2148.211628,
+ -0.000463,-0.985777,0.168059,0,-1072.403033,2148.211628,
+ 0.592199,-0.097715,0.799845,824.724927,-164.047988,914.026067,
+ 0.598955,-0.058992,0.798607,654.019524,0,1054.17292,
+ 0.584514,-0.136347,0.799845,641.452722,-127.592879,1054.17292,
+ 0.598955,-0.058992,0.798607,654.019524,0,1054.17292,
+ 0.592199,-0.097715,0.799845,824.724927,-164.047988,914.026067,
+ 0.598955,-0.058992,0.798607,840.882244,0,914.026067,
+ 0,0.412792,-0.910825,653.750225,-879.083714,2240.210435,
+ 0,0.527988,-0.849252,180.675225,-917.447181,2219.704735,
+ 0,0.352162,-0.935939,180.675225,-879.083714,2240.210435,
+ 0,0.527988,-0.849252,180.675225,-917.447181,2219.704735,
+ 0,0.412792,-0.910825,653.750225,-879.083714,2240.210435,
+ 0,0.582554,-0.812792,653.750225,-917.447181,2219.704735,
+ 0.145631,-0.882589,0.447021,145.820434,-733.088824,1427.89836,
+ 0.029352,-0.894042,0.447021,0,-840.882244,1241.03564,
+ 0.203207,-0.871137,0.447021,164.047988,-824.724927,1241.03564,
+ 0.029352,-0.894042,0.447021,0,-840.882244,1241.03564,
+ 0.145631,-0.882589,0.447021,145.820434,-733.088824,1427.89836,
+ -0.029352,-0.894042,0.447021,0,-747.450884,1427.89836,
+ -0.247761,-0.546683,0.799845,-321.791703,-776.873894,914.026067,
+ -0.316902,-0.509726,0.799845,-363.353779,-543.79736,1054.17292,
+ -0.349653,-0.487843,0.799845,-467.169144,-699.168033,914.026067,
+ -0.316902,-0.509726,0.799845,-363.353779,-543.79736,1054.17292,
+ -0.247761,-0.546683,0.799845,-321.791703,-776.873894,914.026067,
+ -0.21137,-0.561756,0.799845,-250.282436,-604.235252,1054.17292,
+ 0,-0.290285,-0.95694,577.578281,-864.406983,1802.66502,
+ 0,-0.336778,-0.941584,653.750225,-887.575434,1809.693092,
+ 0,-0.412792,-0.910825,540.896876,-887.575434,1809.693092,
+ 0,-0.336778,-0.941584,653.750225,-887.575434,1809.693092,
+ 0,-0.290285,-0.95694,577.578281,-864.406983,1802.66502,
+ 0,-0.227168,-0.973856,600.307476,-841.785968,1795.80301,
+ 0,-0.336778,-0.941584,653.750225,-887.575434,1809.693092,
+ 0,-0.227168,-0.973856,600.307476,-841.785968,1795.80301,
+ 0,-0.19509,-0.980785,653.750225,-841.785968,1795.80301,
+ 0,-0.973856,-0.227168,653.750225,-1033.56568,1987.582722,
+ 0.147851,-0.963743,-0.222127,320.792433,-1019.675597,1941.793256,
+ 0,-0.903939,-0.427662,653.750225,-1019.675597,1941.793256,
+ 0.147851,-0.963743,-0.222127,320.792433,-1019.675597,1941.793256,
+ 0,-0.973856,-0.227168,653.750225,-1033.56568,1987.582722,
+ 0.117291,-0.984202,-0.132626,288.287532,-1033.56568,1987.582722,
+ 0.145631,-0.882589,0.447021,136.706657,-687.270773,1241.03564,
+ 0.029352,-0.894042,0.447021,0,-794.166564,1054.17292,
+ 0.203207,-0.871137,0.447021,154.934211,-778.906876,1054.17292,
+ 0.029352,-0.894042,0.447021,0,-794.166564,1054.17292,
+ 0.145631,-0.882589,0.447021,136.706657,-687.270773,1241.03564,
+ -0.029352,-0.894042,0.447021,0,-700.735204,1241.03564,
+ -0.555123,-0.830697,0.0422,-599.998378,-897.96103,2058.811877,
+ -0.634145,-0.772707,-0.027996,-644.00684,-861.844218,2011.592523,
+ -0.575005,-0.816448,-0.052732,-599.998378,-897.96103,2011.592523,
+ -0.634145,-0.772707,-0.027996,-644.00684,-861.844218,2011.592523,
+ -0.555123,-0.830697,0.0422,-599.998378,-897.96103,2058.811877,
+ -0.633398,-0.771798,0.055991,-644.327894,-861.580736,2058.811877,
+ -0.032487,-0.989531,0.140615,0,-840.882244,914.026067,
+ -0.194936,-0.97921,0.056107,-165.674047,-832.899679,855.371869,
+ -0.000155,-0.998425,0.056107,0,-849.217148,855.371869,
+ -0.194936,-0.97921,0.056107,-165.674047,-832.899679,855.371869,
+ -0.032487,-0.989531,0.140615,0,-840.882244,914.026067,
+ -0.224911,-0.96418,0.140615,-164.047988,-824.724927,914.026067,
+ 0.993624,-0.097863,0.055991,1079.968548,0,2058.811877,
+ 0.966926,-0.191862,0.168059,1051.797109,-209.215453,2148.211628,
+ 0.979923,-0.19486,0.0422,1059.217255,-210.691412,2058.811877,
+ 0.966926,-0.191862,0.168059,1051.797109,-209.215453,2148.211628,
+ 0.993624,-0.097863,0.055991,1079.968548,0,2058.811877,
+ 0.976104,-0.096138,0.19488,1072.403033,0,2148.211628,
+ -0.55557,0,-0.83147,23.535045,-976.504549,2072.06688,
+ -0.412792,0,-0.910825,15.754347,-1076.943219,2076.225749,
+ -0.352162,0,-0.935939,15.754347,-977.02193,2076.225749,
+ -0.412792,0,-0.910825,15.754347,-1076.943219,2076.225749,
+ -0.55557,0,-0.83147,23.535045,-976.504549,2072.06688,
+ -0.55557,0,-0.83147,23.535045,-1076.528834,2072.06688,
+ -0.509726,-0.316902,0.799845,-699.168033,-467.169144,914.026067,
+ -0.546683,-0.247761,0.799845,-604.235252,-250.282436,1054.17292,
+ -0.561756,-0.21137,0.799845,-776.873894,-321.791703,914.026067,
+ -0.546683,-0.247761,0.799845,-604.235252,-250.282436,1054.17292,
+ -0.509726,-0.316902,0.799845,-699.168033,-467.169144,914.026067,
+ -0.487843,-0.349653,0.799845,-543.79736,-363.353779,1054.17292,
+ 0.188038,-0.94135,-0.280182,163.055979,-819.737765,738.078199,
+ 0.001218,-0.898681,-0.438601,0,-814.429823,682.822311,
+ 0.176518,-0.881175,-0.438601,158.887376,-798.780783,682.822311,
+ 0.001218,-0.898681,-0.438601,0,-814.429823,682.822311,
+ 0.188038,-0.94135,-0.280182,163.055979,-819.737765,738.078199,
+ 0.000777,-0.959946,-0.280182,0,-835.797377,738.078199,
+ -0.92664,-0.348663,0.140615,-776.873894,-321.791703,914.026067,
+ -0.972323,-0.22681,0.056077,-832.899679,-165.674047,855.371869,
+ -0.909392,-0.412143,0.056077,-784.574342,-324.981333,855.371869,
+ -0.972323,-0.22681,0.056077,-832.899679,-165.674047,855.371869,
+ -0.92664,-0.348663,0.140615,-776.873894,-321.791703,914.026067,
+ -0.976856,-0.161185,0.140615,-824.724927,-164.047988,914.026067,
+ -0.743689,-0.496917,0.447214,-660.325365,-441.215303,1614.76108,
+ -0.789573,-0.422036,0.445488,-772.428086,-428.732587,1427.89836,
+ -0.743689,-0.496917,0.447214,-738.010701,-493.122985,1427.89836,
+ -0.789573,-0.422036,0.445488,-772.428086,-428.732587,1427.89836,
+ -0.743689,-0.496917,0.447214,-660.325365,-441.215303,1614.76108,
+ -0.819473,-0.358504,0.447144,-733.714234,-303.914386,1614.76108,
+ -0.789573,-0.422036,0.445488,-772.428086,-428.732587,1427.89836,
+ -0.819473,-0.358504,0.447144,-733.714234,-303.914386,1614.76108,
+ -0.789573,-0.422036,0.445488,-814.713927,-349.621343,1427.89836,
+ -0.789573,-0.422036,0.445488,-814.713927,-349.621343,1427.89836,
+ -0.819473,-0.358504,0.447144,-733.714234,-303.914386,1614.76108,
+ -0.826343,-0.342282,0.447214,-820.033555,-339.66902,1427.89836,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.705336,-0.438515,-0.556961,-776.866198,-519.085398,1614.76108,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ -0.705336,-0.438515,-0.556961,-776.866198,-519.085398,1614.76108,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.733442,-0.392033,-0.555314,-813.095616,-451.304926,1614.76108,
+ -0.733442,-0.392033,-0.555314,-813.095616,-451.304926,1614.76108,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.733442,-0.392033,-0.555314,-857.607798,-368.02849,1614.76108,
+ -0.733442,-0.392033,-0.555314,-857.607798,-368.02849,1614.76108,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.777333,-0.292484,-0.556961,-863.20747,-357.552241,1614.76108,
+ 0.871137,-0.203207,0.447021,824.724927,-164.047988,1241.03564,
+ 0.837219,-0.315017,0.447021,690.554573,-286.03707,1427.89836,
+ 0.814754,-0.369253,0.447021,776.873894,-321.791703,1241.03564,
+ 0.837219,-0.315017,0.447021,690.554573,-286.03707,1427.89836,
+ 0.871137,-0.203207,0.447021,824.724927,-164.047988,1241.03564,
+ 0.882589,-0.145631,0.447021,733.088824,-145.820434,1427.89836,
+ 0,0,-1,-700.735204,0,1241.03564,
+ 0,0,-1,-824.724927,-164.047988,1241.03564,
+ 0,0,-1,-840.882244,0,1241.03564,
+ 0,0,-1,-824.724927,-164.047988,1241.03564,
+ 0,0,-1,-700.735204,0,1241.03564,
+ 0,0,-1,-776.873894,-321.791703,1241.03564,
+ 0,0,-1,-776.873894,-321.791703,1241.03564,
+ 0,0,-1,-700.735204,0,1241.03564,
+ 0,0,-1,-699.168033,-467.169144,1241.03564,
+ 0,0,-1,-699.168033,-467.169144,1241.03564,
+ 0,0,-1,-700.735204,0,1241.03564,
+ 0,0,-1,-687.270773,-136.706657,1241.03564,
+ 0,0,-1,-699.168033,-467.169144,1241.03564,
+ 0,0,-1,-687.270773,-136.706657,1241.03564,
+ 0,0,-1,-594.593537,-594.593537,1241.03564,
+ 0,0,-1,-594.593537,-594.593537,1241.03564,
+ 0,0,-1,-687.270773,-136.706657,1241.03564,
+ 0,0,-1,-647.394912,-268.159753,1241.03564,
+ 0,0,-1,-594.593537,-594.593537,1241.03564,
+ 0,0,-1,-647.394912,-268.159753,1241.03564,
+ 0,0,-1,-582.640028,-389.30762,1241.03564,
+ 0,0,-1,-594.593537,-594.593537,1241.03564,
+ 0,0,-1,-582.640028,-389.30762,1241.03564,
+ 0,0,-1,-467.169144,-699.168033,1241.03564,
+ 0,0,-1,-467.169144,-699.168033,1241.03564,
+ 0,0,-1,-582.640028,-389.30762,1241.03564,
+ 0,0,-1,-495.494614,-495.494614,1241.03564,
+ 0,0,-1,-467.169144,-699.168033,1241.03564,
+ 0,0,-1,-495.494614,-495.494614,1241.03564,
+ 0,0,-1,-389.30762,-582.640028,1241.03564,
+ 0,0,-1,-467.169144,-699.168033,1241.03564,
+ 0,0,-1,-389.30762,-582.640028,1241.03564,
+ 0,0,-1,-321.791703,-776.873894,1241.03564,
+ 0,0,-1,-321.791703,-776.873894,1241.03564,
+ 0,0,-1,-389.30762,-582.640028,1241.03564,
+ 0,0,-1,-268.159753,-647.394912,1241.03564,
+ 0,0,-1,-321.791703,-776.873894,1241.03564,
+ 0,0,-1,-268.159753,-647.394912,1241.03564,
+ 0,0,-1,-164.047988,-824.724927,1241.03564,
+ 0,0,-1,-164.047988,-824.724927,1241.03564,
+ 0,0,-1,-268.159753,-647.394912,1241.03564,
+ 0,0,-1,-136.706657,-687.270773,1241.03564,
+ 0,0,-1,-164.047988,-824.724927,1241.03564,
+ 0,0,-1,-136.706657,-687.270773,1241.03564,
+ 0,0,-1,0,-840.882244,1241.03564,
+ 0,0,-1,0,-840.882244,1241.03564,
+ 0,0,-1,-136.706657,-687.270773,1241.03564,
+ 0,0,-1,0,-700.735204,1241.03564,
+ 0,0,-1,0,-840.882244,1241.03564,
+ 0,0,-1,0,-700.735204,1241.03564,
+ 0,0,-1,136.706657,-687.270773,1241.03564,
+ 0,0,-1,0,-840.882244,1241.03564,
+ 0,0,-1,136.706657,-687.270773,1241.03564,
+ 0,0,-1,164.047988,-824.724927,1241.03564,
+ 0,0,-1,164.047988,-824.724927,1241.03564,
+ 0,0,-1,136.706657,-687.270773,1241.03564,
+ 0,0,-1,268.159753,-647.394912,1241.03564,
+ 0,0,-1,164.047988,-824.724927,1241.03564,
+ 0,0,-1,268.159753,-647.394912,1241.03564,
+ 0,0,-1,321.791703,-776.873894,1241.03564,
+ 0,0,-1,321.791703,-776.873894,1241.03564,
+ 0,0,-1,268.159753,-647.394912,1241.03564,
+ 0,0,-1,389.30762,-582.640028,1241.03564,
+ 0,0,-1,321.791703,-776.873894,1241.03564,
+ 0,0,-1,389.30762,-582.640028,1241.03564,
+ 0,0,-1,467.169144,-699.168033,1241.03564,
+ 0,0,-1,467.169144,-699.168033,1241.03564,
+ 0,0,-1,389.30762,-582.640028,1241.03564,
+ 0,0,-1,495.494614,-495.494614,1241.03564,
+ 0,0,-1,467.169144,-699.168033,1241.03564,
+ 0,0,-1,495.494614,-495.494614,1241.03564,
+ 0,0,-1,594.593537,-594.593537,1241.03564,
+ 0,0,-1,594.593537,-594.593537,1241.03564,
+ 0,0,-1,495.494614,-495.494614,1241.03564,
+ 0,0,-1,582.640028,-389.30762,1241.03564,
+ 0,0,-1,594.593537,-594.593537,1241.03564,
+ 0,0,-1,582.640028,-389.30762,1241.03564,
+ 0,0,-1,647.394912,-268.159753,1241.03564,
+ 0,0,-1,594.593537,-594.593537,1241.03564,
+ 0,0,-1,647.394912,-268.159753,1241.03564,
+ 0,0,-1,699.168033,-467.169144,1241.03564,
+ 0,0,-1,699.168033,-467.169144,1241.03564,
+ 0,0,-1,647.394912,-268.159753,1241.03564,
+ 0,0,-1,687.270773,-136.706657,1241.03564,
+ 0,0,-1,699.168033,-467.169144,1241.03564,
+ 0,0,-1,687.270773,-136.706657,1241.03564,
+ 0,0,-1,700.735204,0,1241.03564,
+ 0,0,-1,699.168033,-467.169144,1241.03564,
+ 0,0,-1,700.735204,0,1241.03564,
+ 0,0,-1,776.873894,-321.791703,1241.03564,
+ 0,0,-1,776.873894,-321.791703,1241.03564,
+ 0,0,-1,700.735204,0,1241.03564,
+ 0,0,-1,840.882244,0,1241.03564,
+ 0,0,-1,776.873894,-321.791703,1241.03564,
+ 0,0,-1,840.882244,0,1241.03564,
+ 0,0,-1,824.724927,-164.047988,1241.03564,
+ 0.15719,-0.880542,0.447144,154.934211,-778.906876,1614.76108,
+ 0.087754,-0.890977,0.445488,133.953889,-874.404617,1427.89836,
+ 0.174494,-0.877241,0.447214,173.161765,-870.542978,1427.89836,
+ 0.087754,-0.890977,0.445488,133.953889,-874.404617,1427.89836,
+ 0.15719,-0.880542,0.447144,154.934211,-778.906876,1614.76108,
+ 0.087754,-0.890977,0.445488,44.790142,-883.18648,1427.89836,
+ 0.087754,-0.890977,0.445488,44.790142,-883.18648,1427.89836,
+ -0,-0.894427,0.447214,0,-794.166564,1614.76108,
+ -0,-0.894427,0.447214,0,-887.597924,1427.89836,
+ -0,-0.894427,0.447214,0,-794.166564,1614.76108,
+ 0.087754,-0.890977,0.445488,44.790142,-883.18648,1427.89836,
+ 0.15719,-0.880542,0.447144,154.934211,-778.906876,1614.76108,
+ 0,-0.935939,0.352162,653.750225,-1019.675597,2128.611098,
+ 0.146874,-0.976542,0.157463,288.287545,-1033.56568,2082.821632,
+ 0,-0.986659,0.162803,653.750225,-1033.56568,2082.821632,
+ 0.146874,-0.976542,0.157463,288.287545,-1033.56568,2082.821632,
+ 0,-0.935939,0.352162,653.750225,-1019.675597,2128.611098,
+ 0.118798,-0.950331,0.287676,320.792446,-1019.675597,2128.611098,
+ -0.582554,-0.812792,-0,-467.169144,-699.168033,2549.07468,
+ -0.707107,-0.707107,-0,-594.593537,-594.593537,2455.64332,
+ -0.527988,-0.849252,-0,-467.169144,-699.168033,2455.64332,
+ -0.707107,-0.707107,-0,-594.593537,-594.593537,2455.64332,
+ -0.582554,-0.812792,-0,-467.169144,-699.168033,2549.07468,
+ -0.707107,-0.707107,-0,-594.593537,-594.593537,2549.07468,
+ 0,0,1,-594.593537,-594.593537,2549.07468,
+ 0,0,1,-467.169144,-699.168033,2549.07468,
+ 0,0,1,-512.438676,-662.016288,2549.07468,
+ 0,0,1,-594.593537,-594.593537,2549.07468,
+ 0,0,1,-512.438676,-662.016288,2549.07468,
+ 0,0,1,-578.083211,-608.143211,2549.07468,
+ -0.840814,-0.522742,0.140615,-699.168033,-467.169144,914.026067,
+ -0.909392,-0.412143,0.056077,-784.574342,-324.981333,855.371869,
+ -0.811513,-0.581637,0.056077,-706.098253,-471.799769,855.371869,
+ -0.909392,-0.412143,0.056077,-784.574342,-324.981333,855.371869,
+ -0.840814,-0.522742,0.140615,-699.168033,-467.169144,914.026067,
+ -0.92664,-0.348663,0.140615,-776.873894,-321.791703,914.026067,
+ -0.923079,-0.382289,-0.0422,-997.760837,-413.286071,2011.592523,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.841785,-0.538757,-0.033753,-897.96103,-599.998378,2011.592523,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.923079,-0.382289,-0.0422,-997.760837,-413.286071,2011.592523,
+ -0.910916,-0.376813,-0.168059,-990.771213,-410.390874,1922.192772,
+ -0.910916,-0.376813,-0.168059,-990.771213,-410.390874,1922.192772,
+ -0.785009,-0.523429,-0.331336,-868.041423,-580.006736,1812.397596,
+ -0.804773,-0.576807,-0.140121,-891.670534,-595.795203,1922.192772,
+ -0.785009,-0.523429,-0.331336,-868.041423,-580.006736,1812.397596,
+ -0.910916,-0.376813,-0.168059,-990.771213,-410.390874,1922.192772,
+ -0.872041,-0.360223,-0.331336,-964.515951,-399.515588,1812.397596,
+ -0.872041,-0.360223,-0.331336,-964.515951,-399.515588,1812.397596,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ -0.785009,-0.523429,-0.331336,-868.041423,-580.006736,1812.397596,
+ -0.707373,-0.49612,-0.503476,-829.407027,-554.192058,1708.939502,
+ -0.872041,-0.360223,-0.331336,-964.515951,-399.515588,1812.397596,
+ -0.79057,-0.348586,-0.503476,-921.587711,-381.734129,1708.939502,
+ -0.674254,-0.733678,0.084249,-761.149822,-761.149822,2100.644855,
+ -0.772335,-0.633825,0.041998,-786.924742,-735.296195,2058.807508,
+ -0.683228,-0.729664,0.028116,-763.653083,-763.653083,2058.811877,
+ -0.772335,-0.633825,0.041998,-786.924742,-735.296195,2058.807508,
+ -0.674254,-0.733678,0.084249,-761.149822,-761.149822,2100.644855,
+ -0.770291,-0.632147,0.083917,-766.822004,-754.694855,2097.204109,
+ -0.772335,-0.633825,0.041998,-786.924742,-735.296195,2058.807508,
+ -0.770291,-0.632147,0.083917,-766.822004,-754.694855,2097.204109,
+ -0.770291,-0.632147,0.083917,-781.183382,-739.911027,2076.744949,
+ 0.890977,-0.087754,0.445488,887.597924,0,1427.89836,
+ 0.882589,-0.145631,0.447021,778.906876,-154.934211,1614.76108,
+ 0.871137,-0.203207,0.447021,870.542978,-173.161765,1427.89836,
+ 0.882589,-0.145631,0.447021,778.906876,-154.934211,1614.76108,
+ 0.890977,-0.087754,0.445488,887.597924,0,1427.89836,
+ 0.890977,-0.087754,0.445488,794.166564,0,1614.76108,
+ -0.872041,-0.360223,0.331336,-964.515951,-399.515588,2258.006804,
+ -0.966926,-0.191862,0.168059,-1051.797109,-209.215453,2148.211628,
+ -0.910916,-0.376813,0.168059,-990.771213,-410.390874,2148.211628,
+ -0.966926,-0.191862,0.168059,-1051.797109,-209.215453,2148.211628,
+ -0.872041,-0.360223,0.331336,-964.515951,-399.515588,2258.006804,
+ -0.925561,-0.183175,0.331336,-1023.924672,-203.671281,2258.006804,
+ 0.522742,-0.840814,0.140615,467.169144,-699.168033,914.026067,
+ 0.381937,-0.922484,0.056107,324.981333,-784.574342,855.371869,
+ 0.554566,-0.830246,0.056107,471.799769,-706.098253,855.371869,
+ 0.381937,-0.922484,0.056107,324.981333,-784.574342,855.371869,
+ 0.522742,-0.840814,0.140615,467.169144,-699.168033,914.026067,
+ 0.348663,-0.92664,0.140615,321.791703,-776.873894,914.026067,
+ 0.247761,-0.546683,0.799845,321.791703,-776.873894,914.026067,
+ 0.316902,-0.509726,0.799845,363.353779,-543.79736,1054.17292,
+ 0.21137,-0.561756,0.799845,250.282436,-604.235252,1054.17292,
+ 0.316902,-0.509726,0.799845,363.353779,-543.79736,1054.17292,
+ 0.247761,-0.546683,0.799845,321.791703,-776.873894,914.026067,
+ 0.349653,-0.487843,0.799845,467.169144,-699.168033,914.026067,
+ 0.872041,-0.360223,-0.331336,964.515951,-399.515588,1812.397596,
+ 0.966926,-0.191862,-0.168059,1051.797109,-209.215453,1922.192772,
+ 0.901839,-0.40872,-0.140121,990.771213,-410.390874,1922.192772,
+ 0.966926,-0.191862,-0.168059,1051.797109,-209.215453,1922.192772,
+ 0.872041,-0.360223,-0.331336,964.515951,-399.515588,1812.397596,
+ 0.925561,-0.183175,-0.331336,1023.924672,-203.671281,1812.397596,
+ 0.929871,-0.091584,0.356303,1043.984543,0,2258.006804,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ 0.925561,-0.183175,0.331336,1023.924672,-203.671281,2258.006804,
+ 0.843385,-0.187656,0.503476,978.352295,-194.606371,2361.464898,
+ 0.929871,-0.091584,0.356303,1043.984543,0,2258.006804,
+ 0.850126,-0.08373,0.51988,997.51935,0,2361.464898,
+ 0.748575,-0.61434,0.249443,767.904956,-709.249312,2240.210435,
+ 0.665498,-0.684813,0.29689,738.20855,-738.20855,2258.006804,
+ 0.684548,-0.684548,0.250574,739.77113,-739.77113,2249.469127,
+ 0.665498,-0.684813,0.29689,738.20855,-738.20855,2258.006804,
+ 0.748575,-0.61434,0.249443,767.904956,-709.249312,2240.210435,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.748575,-0.61434,0.249443,767.904956,-709.249312,2240.210435,
+ 0.748575,-0.61434,0.249443,806.222028,-670.885845,2219.704735,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.748575,-0.61434,0.249443,806.222028,-670.885845,2219.704735,
+ 0.748575,-0.61434,0.249443,843.013714,-637.259985,2192.108705,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.748575,-0.61434,0.249443,843.013714,-637.259985,2192.108705,
+ 0.748575,-0.61434,0.249443,876.866129,-609.663955,2158.482845,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.748575,-0.61434,0.249443,876.866129,-609.663955,2158.482845,
+ 0.75819,-0.62223,0.19488,884.794335,-604.173876,2148.211628,
+ 0.769936,-0.566074,0.294549,868.041423,-580.006736,2258.006804,
+ 0.75819,-0.62223,0.19488,884.794335,-604.173876,2148.211628,
+ 0.832671,-0.532692,0.151323,891.670534,-595.795203,2148.211628,
+ -0.619247,-0.617355,0.485186,-705.352697,-705.352697,2361.464898,
+ -0.785009,-0.523429,0.331336,-868.041423,-580.006736,2258.006804,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.785009,-0.523429,0.331336,-868.041423,-580.006736,2258.006804,
+ -0.619247,-0.617355,0.485186,-705.352697,-705.352697,2361.464898,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0,-0.995185,0.098017,911.540742,-574.592523,2011.592523,
+ -0,-0.986659,0.162803,180.675225,-576.530907,1991.911763,
+ 0,-0.973856,0.227168,908.62526,-576.530907,1991.911763,
+ -0,-0.986659,0.162803,180.675225,-576.530907,1991.911763,
+ -0,-0.995185,0.098017,911.540742,-574.592523,2011.592523,
+ 0,-0.999462,0.032813,180.675225,-572.267173,2035.202177,
+ 0,-0.999462,0.032813,180.675225,-572.267173,2035.202177,
+ -0,-0.995185,0.098017,911.540742,-574.592523,2011.592523,
+ 0,-1,-0,912.783669,-572.267169,2035.202245,
+ 0,-0.520969,-0.853575,180.675225,-572.267173,2035.202177,
+ 0,-0.520969,-0.853575,912.783669,-572.267169,2035.202245,
+ 0,-0.520969,-0.853575,907.767925,-572.267173,2035.202247,
+ -0,-0.382683,0.92388,767.904941,-709.249312,1830.193918,
+ 0,-0.527988,0.849252,180.675225,-670.885845,1850.699619,
+ 0,-0.352162,0.935939,180.675225,-709.249312,1830.193918,
+ 0,-0.527988,0.849252,180.675225,-670.885845,1850.699619,
+ -0,-0.382683,0.92388,767.904941,-709.249312,1830.193918,
+ 0,-0.582554,0.812792,806.222013,-670.885845,1850.699619,
+ 0.325954,-0.832956,0.447144,303.914386,-733.714234,1614.76108,
+ 0.259888,-0.856737,0.445488,307.339229,-829.84069,1427.89836,
+ 0.342282,-0.826343,0.447214,339.66902,-820.033555,1427.89836,
+ 0.259888,-0.856737,0.445488,307.339229,-829.84069,1427.89836,
+ 0.325954,-0.832956,0.447144,303.914386,-733.714234,1614.76108,
+ 0.259888,-0.856737,0.445488,221.595155,-855.85087,1427.89836,
+ 0.259888,-0.856737,0.445488,221.595155,-855.85087,1427.89836,
+ 0.15719,-0.880542,0.447144,154.934211,-778.906876,1614.76108,
+ 0.174494,-0.877241,0.447214,173.161765,-870.542978,1427.89836,
+ 0.15719,-0.880542,0.447144,154.934211,-778.906876,1614.76108,
+ 0.259888,-0.856737,0.445488,221.595155,-855.85087,1427.89836,
+ 0.325954,-0.832956,0.447144,303.914386,-733.714234,1614.76108,
+ -0.903939,-0,0.427662,40.110651,-1076.017993,2017.42443,
+ -0.849252,-0,0.527988,35.951781,-1076.262688,2009.643732,
+ -0.881921,-0,0.471397,36.993432,-1076.325013,2011.592523,
+ -0.849252,-0,0.527988,35.951781,-1076.262688,2009.643732,
+ -0.903939,-0,0.427662,40.110651,-1076.017993,2017.42443,
+ -0.83147,0,0.55557,35.951781,-975.958402,2009.643732,
+ -0.83147,0,0.55557,35.951781,-975.958402,2009.643732,
+ -0.903939,-0,0.427662,40.110651,-1076.017993,2017.42443,
+ -0.935939,0,0.352162,40.110651,-976.014545,2017.42443,
+ -0.904882,0.382198,0.187384,-853.465107,-778.056207,2053.98621,
+ -0.915533,0.385671,-0.11427,-818.480102,-696.846173,2011.592491,
+ -0.900096,0.367041,-0.234753,-853.905696,-778.543243,2019.687273,
+ -0.915533,0.385671,-0.11427,-818.480102,-696.846173,2011.592491,
+ -0.904882,0.382198,0.187384,-853.465107,-778.056207,2053.98621,
+ -0.904884,0.382185,0.187402,-818.273878,-697.096462,2058.801607,
+ 0.117054,-0.588471,0.8,164.047988,-824.724927,914.026067,
+ 0.21137,-0.561756,0.799845,250.282436,-604.235252,1054.17292,
+ 0.117054,-0.588471,0.8,127.592879,-641.452722,1054.17292,
+ 0.21137,-0.561756,0.799845,250.282436,-604.235252,1054.17292,
+ 0.117054,-0.588471,0.8,164.047988,-824.724927,914.026067,
+ 0.247761,-0.546683,0.799845,321.791703,-776.873894,914.026067,
+ 0.315017,-0.837219,0.447021,268.159753,-647.394912,1241.03564,
+ 0.203207,-0.871137,0.447021,154.934211,-778.906876,1054.17292,
+ 0.369253,-0.814754,0.447021,303.914386,-733.714234,1054.17292,
+ 0.203207,-0.871137,0.447021,154.934211,-778.906876,1054.17292,
+ 0.315017,-0.837219,0.447021,268.159753,-647.394912,1241.03564,
+ 0.145631,-0.882589,0.447021,136.706657,-687.270773,1241.03564,
+ -0.792149,-0.07802,-0.60532,-784.019466,0,631.979457,
+ -0.749001,-0.123588,-0.65094,-731.120069,-145.428824,587.016307,
+ -0.796215,-0.15672,-0.584364,-768.954752,-152.95461,631.979457,
+ -0.749001,-0.123588,-0.65094,-731.120069,-145.428824,587.016307,
+ -0.792149,-0.07802,-0.60532,-784.019466,0,631.979457,
+ -0.756844,-0.074543,-0.649331,-745.443558,0,587.016307,
+ -0.606233,-0.567693,0.556961,-660.670395,-660.670395,2455.64332,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0.619247,-0.617355,0.485186,-705.352697,-705.352697,2361.464898,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0.606233,-0.567693,0.556961,-660.670395,-660.670395,2455.64332,
+ -0.642867,-0.527587,0.555314,-705.689427,-605.814545,2455.64332,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0.642867,-0.527587,0.555314,-705.689427,-605.814545,2455.64332,
+ -0.642867,-0.527587,0.555314,-765.568614,-532.851545,2455.64332,
+ -0.707373,-0.49612,0.503476,-829.407027,-554.192058,2361.464898,
+ -0.642867,-0.527587,0.555314,-765.568614,-532.851545,2455.64332,
+ -0.705336,-0.438515,0.556961,-776.866198,-519.085398,2455.64332,
+ 0.811513,-0.581637,0.056077,706.098253,-471.799769,855.371869,
+ 0.700074,-0.700074,0.140689,594.593537,-594.593537,914.026067,
+ 0.69246,-0.720397,0.039075,600.487204,-600.487204,855.371869,
+ 0.700074,-0.700074,0.140689,594.593537,-594.593537,914.026067,
+ 0.811513,-0.581637,0.056077,706.098253,-471.799769,855.371869,
+ 0.840814,-0.522742,0.140615,699.168033,-467.169144,914.026067,
+ 0.348663,-0.92664,0.140615,321.791703,-776.873894,914.026067,
+ 0.19463,-0.979271,0.056107,165.674047,-832.899679,855.371869,
+ 0.381937,-0.922484,0.056107,324.981333,-784.574342,855.371869,
+ 0.19463,-0.979271,0.056107,165.674047,-832.899679,855.371869,
+ 0.348663,-0.92664,0.140615,321.791703,-776.873894,914.026067,
+ 0.161185,-0.976856,0.140615,164.047988,-824.724927,914.026067,
+ 0,-0.032813,0.999462,670.391133,-794.166513,1813.302837,
+ 0,-0.162803,0.986659,180.675225,-750.8761,1817.56657,
+ 0,0.049186,0.99879,180.675225,-794.166513,1813.302837,
+ 0,-0.162803,0.986659,180.675225,-750.8761,1817.56657,
+ 0,-0.032813,0.999462,670.391133,-794.166513,1813.302837,
+ -0,-0.243095,0.970002,724.871877,-750.8761,1817.56657,
+ 0,0.849252,-0.527988,180.675225,-978.669071,2158.482845,
+ 0,0.910825,-0.412792,653.750225,-999.174772,2120.119378,
+ 0,0.935939,-0.352162,180.675225,-999.174772,2120.119378,
+ 0,0.910825,-0.412792,653.750225,-999.174772,2120.119378,
+ 0,0.849252,-0.527988,180.675225,-978.669071,2158.482845,
+ 0,0.812792,-0.582554,653.750225,-978.669071,2158.482845,
+ 0,-0.973856,0.227168,180.675225,-707.112262,2017.886009,
+ 0,-0.92388,0.382683,104.493588,-712.163205,2001.235298,
+ 0,-0.92388,0.382683,180.675225,-712.163201,2001.235293,
+ 0,-0.92388,0.382683,104.493588,-712.163205,2001.235298,
+ 0,-0.973856,0.227168,180.675225,-707.112262,2017.886009,
+ 0,-0.986659,0.162803,104.493585,-707.112263,2017.886024,
+ 0.632456,-0.632456,0.447214,561.560563,-561.560563,1614.76108,
+ 0.567965,-0.692067,0.445488,540.907511,-698.794954,1427.89836,
+ 0.632456,-0.632456,0.447214,627.626511,-627.626511,1427.89836,
+ 0.567965,-0.692067,0.445488,540.907511,-698.794954,1427.89836,
+ 0.482193,-0.753361,0.447144,441.215303,-660.325365,1614.76108,
+ 0.496917,-0.743689,0.447214,493.122985,-738.010701,1427.89836,
+ 0.482193,-0.753361,0.447144,441.215303,-660.325365,1614.76108,
+ 0.567965,-0.692067,0.445488,540.907511,-698.794954,1427.89836,
+ 0.632456,-0.632456,0.447214,561.560563,-561.560563,1614.76108,
+ -0.358793,-0.190568,-0.913757,-750.03201,-762.726244,1915.0942,
+ -0.188016,-0.3607,-0.913535,-781.550765,-852.489443,1950.715796,
+ -0.475897,-0.070701,-0.876654,-805.854069,-828.277941,1950.684188,
+ -0.188016,-0.3607,-0.913535,-781.550765,-852.489443,1950.715796,
+ -0.358793,-0.190568,-0.913757,-750.03201,-762.726244,1915.0942,
+ -0.10232,-0.445425,-0.889453,-712.20051,-793.069744,1912.981477,
+ 0.438107,-0.410255,0.799845,594.593537,-594.593537,914.026067,
+ 0.487843,-0.349653,0.799845,543.79736,-363.353779,1054.17292,
+ 0.410255,-0.438107,0.799845,462.46164,-462.46164,1054.17292,
+ 0.487843,-0.349653,0.799845,543.79736,-363.353779,1054.17292,
+ 0.438107,-0.410255,0.799845,594.593537,-594.593537,914.026067,
+ 0.509726,-0.316902,0.799845,699.168033,-467.169144,914.026067,
+ -0.633398,-0.771798,0.055991,-683.397325,-829.517282,2058.811877,
+ -0.674254,-0.733678,0.084249,-761.149822,-761.149822,2100.644855,
+ -0.683228,-0.729664,0.028116,-763.653083,-763.653083,2058.811877,
+ -0.674254,-0.733678,0.084249,-761.149822,-761.149822,2100.644855,
+ -0.633398,-0.771798,0.055991,-683.397325,-829.517282,2058.811877,
+ -0.632155,-0.770284,0.083921,-688.216174,-823.53445,2077.427173,
+ -0.674254,-0.733678,0.084249,-761.149822,-761.149822,2100.644855,
+ -0.632155,-0.770284,0.083921,-688.216174,-823.53445,2077.427173,
+ -0.632155,-0.770284,0.083921,-703.270205,-808.916878,2098.19893,
+ -0.674254,-0.733678,0.084249,-761.149822,-761.149822,2100.644855,
+ -0.632155,-0.770284,0.083921,-703.270205,-808.916878,2098.19893,
+ -0.632155,-0.770284,0.083921,-723.842933,-790.8427,2109.126834,
+ -0.674254,-0.733678,0.084249,-761.149822,-761.149822,2100.644855,
+ -0.632155,-0.770284,0.083921,-723.842933,-790.8427,2109.126834,
+ -0.632155,-0.770284,0.083921,-746.579505,-772.239793,2108.608099,
+ -0.826255,-0.551707,-0.113678,-704.675266,-470.848959,796.15315,
+ -0.684138,-0.684138,-0.252806,-590.997993,-590.997993,738.078199,
+ -0.704523,-0.704523,-0.085417,-599.277053,-599.277053,796.15315,
+ -0.684138,-0.684138,-0.252806,-590.997993,-590.997993,738.078199,
+ -0.826255,-0.551707,-0.113678,-704.675266,-470.848959,796.15315,
+ -0.798598,-0.532672,-0.280182,-694.940121,-464.344144,738.078199,
+ -0.164361,-0.334551,0.927934,-779.335772,-850.040945,2123.148196,
+ -0.335138,-0.164419,0.927712,-750.226481,-763.163738,2153.518338,
+ -0.453201,-0.045611,0.890241,-803.639077,-825.829444,2123.116588,
+ -0.335138,-0.164419,0.927712,-750.226481,-763.163738,2153.518338,
+ -0.164361,-0.334551,0.927934,-779.335772,-850.040945,2123.148196,
+ -0.079281,-0.419958,0.904074,-713.051374,-793.031289,2155.442781,
+ -0,-0.243095,0.970002,724.871877,-750.8761,1817.56657,
+ 0,-0.352162,0.935939,180.675225,-709.249312,1830.193918,
+ 0,-0.162803,0.986659,180.675225,-750.8761,1817.56657,
+ 0,-0.352162,0.935939,180.675225,-709.249312,1830.193918,
+ -0,-0.243095,0.970002,724.871877,-750.8761,1817.56657,
+ -0,-0.382683,0.92388,767.904941,-709.249312,1830.193918,
+ -0,-0.382683,0.92388,767.904941,-709.249312,1830.193918,
+ -0,-0.243095,0.970002,724.871877,-750.8761,1817.56657,
+ -0,-0.290285,0.95694,739.771122,-739.771122,1820.935228,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.75819,-0.62223,0.194878,-759.379832,-756.991889,2148.211628,
+ -0.684548,-0.684548,0.250574,-758.175253,-758.175253,2148.912113,
+ -0.75819,-0.62223,0.194878,-759.379832,-756.991889,2148.211628,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.804774,-0.576808,0.140116,-891.670534,-595.795203,2148.211628,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.785009,-0.523429,0.331336,-868.041423,-580.006736,2258.006804,
+ -0.201549,0.493286,0.846195,-769.870311,-863.13013,1987.610439,
+ -0.033544,0.328548,0.943892,-723.636295,-790.983771,1961.015863,
+ 0.057027,0.239002,0.969343,-785.140115,-848.157193,1978.730924,
+ -0.033544,0.328548,0.943892,-723.636295,-790.983771,1961.015863,
+ -0.201549,0.493286,0.846195,-769.870311,-863.13013,1987.610439,
+ -0.278983,0.56848,0.77395,-702.965588,-809.153242,1972.08037,
+ 0.267392,-0.774255,0.573613,-655.637458,-847.372595,2104.031681,
+ 0.091725,-0.593783,0.79938,-757.051053,-872.595836,2110.051763,
+ 0.314449,-0.823891,0.471514,-740.177565,-890.06034,2085.821102,
+ 0.091725,-0.593783,0.79938,-757.051053,-872.595836,2110.051763,
+ 0.267392,-0.774255,0.573613,-655.637458,-847.372595,2104.031681,
+ 0.113282,-0.616155,0.779436,-680.351355,-823.413171,2137.783955,
+ -0.772335,-0.633825,0.041998,-786.924742,-735.296195,2058.807508,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.683228,-0.729664,0.028116,-763.653083,-763.653083,2058.811877,
+ -0.688905,-0.723623,-0.042187,-763.653083,-763.653083,2011.592523,
+ -0.772335,-0.633825,0.041998,-786.924742,-735.296195,2058.807508,
+ -0.772331,-0.633831,-0.041995,-786.927339,-735.293322,2011.59251,
+ -0.772331,-0.633831,-0.041995,-786.927339,-735.293322,2011.59251,
+ -0.772335,-0.633825,0.041998,-786.924742,-735.296195,2058.807508,
+ -0.773018,-0.634385,0.000005,-789.342859,-732.349615,2049.894341,
+ -0.772331,-0.633831,-0.041995,-786.927339,-735.293322,2011.59251,
+ -0.773018,-0.634385,0.000005,-789.342859,-732.349615,2049.894341,
+ -0.773009,-0.634395,0.000007,-789.394717,-732.286733,2020.799449,
+ -0.000001,0.683524,0.729928,104.493611,-856.929211,1972.439549,
+ -0.000001,0.582554,0.812792,180.675225,-843.478786,1961.401146,
+ -0.000001,0.527988,0.849252,104.493611,-843.478858,1961.40113,
+ -0.000001,0.582554,0.812792,180.675225,-843.478786,1961.401146,
+ -0.000001,0.683524,0.729928,104.493611,-856.929211,1972.439549,
+ -0.000001,0.729928,0.683524,180.675225,-856.929131,1972.439559,
+ -0,-0.412792,0.910825,104.493601,-760.199658,1953.198845,
+ -0,-0.527988,0.849252,180.675225,-744.854241,1961.401146,
+ -0,-0.582554,0.812792,104.493598,-744.854262,1961.40113,
+ -0,-0.527988,0.849252,180.675225,-744.854241,1961.401146,
+ -0,-0.412792,0.910825,104.493601,-760.199658,1953.198845,
+ -0,-0.352162,0.935939,180.675225,-760.199629,1953.198865,
+ -0.000001,0.986659,0.162803,104.493608,-881.220857,2017.886024,
+ -0.000001,0.999462,0.032813,180.675225,-882.926259,2035.202177,
+ -0.000001,0.973856,0.227168,180.675225,-881.220765,2017.886009,
+ -0.000001,0.999462,0.032813,180.675225,-882.926259,2035.202177,
+ -0.000001,0.986659,0.162803,104.493608,-881.220857,2017.886024,
+ -0.000001,0.999462,-0.032813,104.493606,-882.926352,2035.2022,
+ 0.972323,-0.22681,0.056077,832.899679,-165.674047,855.371869,
+ 0.92664,-0.348663,0.140615,776.873894,-321.791703,914.026067,
+ 0.909392,-0.412143,0.056077,784.574342,-324.981333,855.371869,
+ 0.92664,-0.348663,0.140615,776.873894,-321.791703,914.026067,
+ 0.972323,-0.22681,0.056077,832.899679,-165.674047,855.371869,
+ 0.976856,-0.161185,0.140615,824.724927,-164.047988,914.026067,
+ -0.486909,-0.726302,0.485186,-554.192058,-829.407027,2361.464898,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.538332,-0.779667,0.319873,-580.006736,-868.041423,2258.006804,
+ -0.666389,-0.680555,0.304582,-738.20855,-738.20855,2258.006804,
+ -0.486909,-0.726302,0.485186,-554.192058,-829.407027,2361.464898,
+ -0.619247,-0.617355,0.485186,-705.352697,-705.352697,2361.464898,
+ -0,0.162803,0.986659,104.493608,-811.482736,1948.147903,
+ -0,0.032813,0.999462,180.675225,-794.166513,1946.442431,
+ -0,-0.032813,0.999462,104.493606,-794.16656,1946.442408,
+ -0,0.032813,0.999462,180.675225,-794.166513,1946.442431,
+ -0,0.162803,0.986659,104.493608,-811.482736,1948.147903,
+ -0,0.227168,0.973856,180.675225,-811.482681,1948.147925,
+ -0.000001,0.92388,0.382683,104.49361,-876.169915,2001.235298,
+ -0.000001,0.849252,0.527988,180.675225,-867.967544,1985.889904,
+ -0.000001,0.812792,0.582554,104.493611,-867.96763,1985.889902,
+ -0.000001,0.849252,0.527988,180.675225,-867.967544,1985.889904,
+ -0.000001,0.92388,0.382683,104.49361,-876.169915,2001.235298,
+ -0.000001,0.92388,0.382683,180.675225,-876.169825,2001.235293,
+ 0.871137,-0.203207,0.447021,870.542978,-173.161765,1427.89836,
+ 0.837219,-0.315017,0.447021,733.714234,-303.914386,1614.76108,
+ 0.814754,-0.369253,0.447021,820.033555,-339.66902,1427.89836,
+ 0.837219,-0.315017,0.447021,733.714234,-303.914386,1614.76108,
+ 0.871137,-0.203207,0.447021,870.542978,-173.161765,1427.89836,
+ 0.882589,-0.145631,0.447021,778.906876,-154.934211,1614.76108,
+ -0,-0.032813,0.999462,104.493606,-794.16656,1946.442408,
+ -0,-0.162803,0.986659,180.675225,-776.850346,1948.147925,
+ -0,-0.227168,0.973856,104.493604,-776.850384,1948.147903,
+ -0,-0.162803,0.986659,180.675225,-776.850346,1948.147925,
+ -0,-0.032813,0.999462,104.493606,-794.16656,1946.442408,
+ -0,0.032813,0.999462,180.675225,-794.166513,1946.442431,
+ -0.000001,0.812792,0.582554,104.493611,-867.96763,1985.889902,
+ -0.000001,0.729928,0.683524,180.675225,-856.929131,1972.439559,
+ -0.000001,0.683524,0.729928,104.493611,-856.929211,1972.439549,
+ -0.000001,0.729928,0.683524,180.675225,-856.929131,1972.439559,
+ -0.000001,0.812792,0.582554,104.493611,-867.96763,1985.889902,
+ -0.000001,0.849252,0.527988,180.675225,-867.967544,1985.889904
+};
+static const struct gllist robot_body_half_outside_frame = { GL_N3F_V3F, GL_TRIANGLES, 4980, robot_body_half_outside_data, 0 };
+const struct gllist *robot_body_half_outside = &robot_body_half_outside_frame;
+
+static const float robot_crank_full_data[] = {
+ 0.494392,-0.002816,-0.869234,21.079139,-1635.024615,2001.52588,
+ 0.264054,-0.000004,-0.964508,7.982213,-1575.775514,1996.029042,
+ 0.604615,-0.002819,-0.796513,22.36552,-1575.775401,2002.065588,
+ 0.264054,-0.000004,-0.964508,7.982213,-1575.775514,1996.029042,
+ 0.494392,-0.002816,-0.869234,21.079139,-1635.024615,2001.52588,
+ 0.134401,-0.000005,-0.990927,7.982547,-1635.024718,1996.029357,
+ -0.29795,0.65913,-0.690488,-67.67685,-1260.036772,1941.044079,
+ -0.157155,0.595594,-0.787762,-7.617619,-1175.364474,1995.955026,
+ -0.310189,0.662309,-0.682004,-26.493073,-1260.036639,1922.313042,
+ 0.263844,0.659288,-0.704078,18.723832,-1260.036393,1920.768168,
+ 0.188248,0.621463,-0.760491,7.980911,-1175.364562,1996.027815,
+ 0.276537,0.662012,-0.696611,61.090003,-1260.03607,1936.644652,
+ 0.000006,-1,0.000005,39.173475,-1635.024291,2043.184745,
+ 0.000006,-1,0.000005,33.136928,-1635.024249,2057.568052,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.701587,-0.662307,0.262918,98.556303,-1491.102301,2096.293522,
+ 0.679262,-0.618094,0.395681,33.136594,-1575.775046,2057.567737,
+ 0.698932,-0.659128,0.277569,114.432787,-1491.102437,2053.927351,
+ -0.968686,-0.000003,0.24829,22.124996,-1479.423627,2131.053624,
+ -0.968686,-0.000002,0.24829,26.490435,-1260.035141,2148.088903,
+ -0.968685,-0.000002,0.248291,22.123694,-1271.716449,2131.052397,
+ -0.968686,-0.000002,0.24829,26.490435,-1260.035141,2148.088903,
+ -0.968686,-0.000003,0.24829,22.124996,-1479.423627,2131.053624,
+ -0.968686,-0.000003,0.248288,26.491737,-1491.102432,2148.090131,
+ -0.24829,-0.000002,-0.968686,-39.245963,-1575.775532,2042.8185,
+ -0.248291,-0.000005,-0.968685,-112.887948,-1491.103676,2061.693954,
+ -0.248289,-0.000005,-0.968686,-95.851569,-1479.424684,2057.327217,
+ 0.509398,-0.000001,-0.860531,-83.423414,-1271.715068,1983.068468,
+ 0.509398,-0.000001,-0.860531,-98.556338,-1491.104061,1974.110878,
+ 0.509398,-0.000001,-0.860531,-98.55764,-1260.03677,1974.10965,
+ 0.509398,-0.000001,-0.860531,-98.556338,-1491.104061,1974.110878,
+ 0.509398,-0.000001,-0.860531,-83.423414,-1271.715068,1983.068468,
+ 0.509399,-0.000001,-0.860531,-83.422112,-1479.425008,1983.069695,
+ 0.509398,-0.000001,-0.860531,-33.136629,-1575.775657,2012.836663,
+ 0.509398,-0.000001,-0.860531,-98.556338,-1491.104061,1974.110878,
+ 0.509399,-0.000001,-0.860531,-83.422112,-1479.425008,1983.069695,
+ 0.134401,-0.000005,-0.990927,7.982547,-1635.024718,1996.029357,
+ -0.125147,-0.000006,-0.992138,-7.616317,-1575.775602,1995.956254,
+ 0.264054,-0.000004,-0.964508,7.982213,-1575.775514,1996.029042,
+ -0.125147,-0.000006,-0.992138,-7.616317,-1575.775602,1995.956254,
+ 0.134401,-0.000005,-0.990927,7.982547,-1635.024718,1996.029357,
+ -0.255041,-0.000007,-0.96693,-7.615983,-1635.024806,1995.956569,
+ 0.968687,0.000002,-0.248286,-7.616317,-1575.775602,1995.956254,
+ 0.968687,0.000003,-0.248285,-26.491771,-1491.10393,1922.314269,
+ 0.968687,0.000003,-0.248287,-22.125162,-1479.424895,1939.350652,
+ -0.989965,-0.000002,-0.141315,7.982213,-1575.775514,1996.029042,
+ -0.989965,-0.000005,-0.141313,16.239785,-1479.424685,1938.180011,
+ -0.989965,-0.000005,-0.141316,18.725134,-1491.103683,1920.769396,
+ 0.860529,0.000003,0.509402,22.36552,-1575.775401,2002.065588,
+ 0.860528,0.000006,0.509402,61.091305,-1491.10336,1936.64588,
+ 0.86053,0.000006,0.5094,52.13236,-1479.42441,1951.780109,
+ -0.600085,-0.000006,-0.799936,94.156876,-1491.10301,1967.52667,
+ -0.600085,-0.000004,-0.799936,80.08694,-1271.715963,1978.079227,
+ -0.600083,-0.000002,-0.799938,94.155574,-1260.035719,1967.525442,
+ -0.600085,-0.000004,-0.799936,80.08694,-1271.715963,1978.079227,
+ -0.600085,-0.000006,-0.799936,94.156876,-1491.10301,1967.52667,
+ -0.600087,-0.000006,-0.799935,80.088242,-1479.424113,1978.080455,
+ -0.600086,-0.000003,-0.799936,33.343877,-1575.77528,2013.146883,
+ -0.600087,-0.000006,-0.799935,80.088242,-1479.424113,1978.080455,
+ -0.600085,-0.000006,-0.799936,94.156876,-1491.10301,1967.52667,
+ -0.011122,0.512212,-0.858787,16.238483,-1271.715391,1938.178783,
+ -0.157155,0.595594,-0.787762,-7.617619,-1175.364474,1995.955026,
+ 0.188248,0.621463,-0.760491,7.980911,-1175.364562,1996.027815,
+ -0.026244,0.509307,-0.860185,-22.126464,-1271.715181,1939.349424,
+ -0.157155,0.595594,-0.787762,-7.617619,-1175.364474,1995.955026,
+ -0.011122,0.512212,-0.858787,16.238483,-1271.715391,1938.178783,
+ 0.670858,0.621465,-0.404636,33.342575,-1175.364796,2013.145656,
+ 0.599391,0.512211,-0.615118,80.08694,-1271.715963,1978.079227,
+ 0.503006,0.570988,-0.648812,22.364218,-1175.364675,2002.064361,
+ 0.589687,0.509305,-0.6268,52.131057,-1271.715666,1951.778881,
+ 0.503006,0.570988,-0.648812,22.364218,-1175.364675,2002.064361,
+ 0.599391,0.512211,-0.615118,80.08694,-1271.715963,1978.079227,
+ 0.011083,0.509565,0.860361,22.123694,-1271.716449,2131.052397,
+ 0.200522,0.618102,0.760093,7.61498,-1175.364977,2074.446919,
+ -0.134987,0.595762,0.791736,-7.983549,-1175.364888,2074.374131,
+ 0.026184,0.512918,0.858038,-16.241253,-1271.716239,2132.223038,
+ 0.011083,0.509565,0.860361,22.123694,-1271.716449,2131.052397,
+ -0.134987,0.595762,0.791736,-7.983549,-1175.364888,2074.374131,
+ -0.600529,0.509567,0.616204,-52.133828,-1271.715965,2118.62294,
+ -0.458828,0.595592,0.659353,-22.366857,-1175.364775,2068.337584,
+ -0.655293,0.595761,0.464393,-33.345214,-1175.364654,2057.256289,
+ -0.588208,0.51292,0.62524,-80.08971,-1271.715667,2092.322594,
+ -0.600529,0.509567,0.616204,-52.133828,-1271.715965,2118.62294,
+ -0.655293,0.595761,0.464393,-33.345214,-1175.364654,2057.256289,
+ -0.860359,0.509569,0.011083,-95.852871,-1271.715393,2057.325989,
+ -0.818468,0.567229,-0.091441,-39.174477,-1175.364462,2027.218743,
+ -0.858036,0.512921,0.026184,-97.023513,-1271.715182,2018.961042,
+ -0.860359,0.509569,0.011083,-95.852871,-1271.715393,2057.325989,
+ -0.790675,0.595591,0.141793,-39.247265,-1175.364544,2042.817272,
+ -0.818468,0.567229,-0.091441,-39.174477,-1175.364462,2027.218743,
+ 0.964508,-0.000007,0.264054,39.184537,1078.14493,2043.195173,
+ 0.805975,-0.000008,0.59195,33.135292,-1175.365031,2057.56651,
+ 0.990927,-0.000006,0.134401,39.171839,-1175.364988,2043.183203,
+ 0.805975,-0.000008,0.59195,33.135292,-1175.365031,2057.56651,
+ 0.964508,-0.000007,0.264054,39.184537,1078.14493,2043.195173,
+ 0.828868,-0.000008,0.559444,33.147991,1078.144888,2057.578481,
+ -0.052104,-0.998211,0.029324,60.450424,1076.228739,1995.974225,
+ -0.058592,-0.99822,0.011094,39.257325,1078.145013,2027.596644,
+ -0.047585,-0.998218,0.036011,33.355273,1078.145123,2013.157627,
+ -0.058592,-0.99822,0.011094,39.257325,1078.145013,2027.596644,
+ -0.052104,-0.998211,0.029324,60.450424,1076.228739,1995.974225,
+ -0.058629,-0.998221,0.010878,70.865779,1076.228541,2022.090119,
+ 0.000006,-1,0.000005,39.246263,-1635.024374,2027.586215,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,33.344211,-1635.024484,2013.147198,
+ 0.600091,0.000004,0.799931,-80.08971,-1271.715667,2092.322594,
+ 0.600091,-0.000003,0.799932,-33.345214,-1175.364654,2057.256289,
+ 0.600093,0.000002,0.79993,-94.158213,-1260.036061,2102.876503,
+ 0.799933,0.000001,-0.600089,67.674211,-1260.035009,2129.357866,
+ 0.799933,0,-0.600089,57.120298,-1271.716562,2115.289236,
+ 0.799934,-0,-0.600089,22.053997,-1175.365027,2068.544867,
+ 0.141315,-0.000004,-0.989965,97.022044,-1479.423628,2051.442006,
+ 0.141353,-0.000057,-0.989959,97.020742,-1271.716448,2051.440779,
+ 0.141386,0.000019,-0.989955,114.431485,-1260.035146,2053.926124,
+ 0.141353,-0.000057,-0.989959,97.020742,-1271.716448,2051.440779,
+ 0.141456,0.000042,-0.989944,80.510481,-1244.216424,2049.079715,
+ 0.141386,0.000019,-0.989955,114.431485,-1260.035146,2053.926124,
+ 0.141386,0.000019,-0.989955,114.431485,-1260.035146,2053.926124,
+ 0.141456,0.000042,-0.989944,80.510481,-1244.216424,2049.079715,
+ 0.141525,0.000193,-0.989935,39.171839,-1175.364988,2043.183203,
+ 0.157159,-0.595592,0.787764,7.616282,-1575.7751,2074.448146,
+ 0.297952,-0.659128,0.690489,67.675513,-1491.1023,2129.359093,
+ 0.310189,-0.662307,0.682006,26.491737,-1491.102432,2148.090131,
+ 0.041321,0.973936,0.223028,6.624005,1105.461218,2070.640199,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.038908,0.962171,0.269655,-7.432857,1105.461298,2070.454406,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.218012,0.962233,0.163028,-30.156931,1105.461509,2054.832348,
+ -0.139076,0.962205,0.234133,-20.348604,1105.4614,2064.903427,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.296253,0.953532,0.054877,-35.364608,1105.461607,2041.774401,
+ -0.218012,0.962233,0.163028,-30.156931,1105.461509,2054.832348,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.261885,0.962249,-0.074108,-35.178814,1105.461681,2027.717539,
+ -0.296253,0.953532,0.054877,-35.364608,1105.461607,2041.774401,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.213632,0.962233,-0.168727,-29.627835,1105.461718,2014.801793,
+ -0.261885,0.962249,-0.074108,-35.178814,1105.461681,2027.717539,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.031768,0.962171,-0.270589,-6.49881,1105.461668,1999.785789,
+ -0.132844,0.962206,-0.237725,-19.556757,1105.461714,2004.993466,
+ 0.047203,0.973936,-0.221856,7.558052,1105.461588,1999.971583,
+ -0.031768,0.962171,-0.270589,-6.49881,1105.461668,1999.785789,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.139273,0.962112,-0.234402,20.473799,1105.461485,2005.522562,
+ 0.047203,0.973936,-0.221856,7.558052,1105.461588,1999.971583,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.21845,0.962084,-0.163322,30.282126,1105.461377,2015.59364,
+ 0.139273,0.962112,-0.234402,20.473799,1105.461485,2005.522562,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.296962,0.953305,-0.054991,35.489803,1105.461278,2028.651587,
+ 0.21845,0.962084,-0.163322,30.282126,1105.461377,2015.59364,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.296962,0.953305,-0.054991,35.489803,1105.461278,2028.651587,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.262503,0.962067,0.074285,35.304009,1105.461204,2042.708449,
+ 0.262503,0.962067,0.074285,35.304009,1105.461204,2042.708449,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.214052,0.962084,0.169045,29.75303,1105.461167,2055.624196,
+ 0.214052,0.962084,0.169045,29.75303,1105.461167,2055.624196,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.133025,0.962112,0.238003,19.681952,1105.461172,2065.432522,
+ 0.133025,0.962112,0.238003,19.681952,1105.461172,2065.432522,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ 0.041321,0.973936,0.223028,6.624005,1105.461218,2070.640199,
+ -0.261885,0.962249,-0.074108,-35.178814,1105.461681,2027.717539,
+ -0.380743,0.896586,-0.226203,-59.369433,1087.682068,1994.390591,
+ -0.438262,0.896618,-0.063262,-70.471391,1087.681993,2020.222085,
+ -0.380743,0.896586,-0.226203,-59.369433,1087.682068,1994.390591,
+ -0.261885,0.962249,-0.074108,-35.178814,1105.461681,2027.717539,
+ -0.213632,0.962233,-0.168727,-29.627835,1105.461718,2014.801793,
+ 0.381511,0.896149,0.22664,59.392298,1087.680965,2076.035397,
+ 0.262503,0.962067,0.074285,35.304009,1105.461204,2042.708449,
+ 0.214052,0.962084,0.169045,29.75303,1105.461167,2055.624196,
+ 0.262503,0.962067,0.074285,35.304009,1105.461204,2042.708449,
+ 0.381511,0.896149,0.22664,59.392298,1087.680965,2076.035397,
+ 0.439265,0.896117,0.063408,70.494256,1087.68104,2050.203904,
+ 0.08063,0.896706,0.435221,13.134247,1087.681066,2106.067405,
+ 0.133025,0.962112,0.238003,19.681952,1105.461172,2065.432522,
+ 0.041321,0.973936,0.223028,6.624005,1105.461218,2070.640199,
+ 0.133025,0.962112,0.238003,19.681952,1105.461172,2065.432522,
+ 0.08063,0.896706,0.435221,13.134247,1087.681066,2106.067405,
+ 0.265666,0.896215,0.355276,39.250141,1087.680974,2095.65205,
+ 0.439265,0.896117,0.063408,70.494256,1087.68104,2050.203904,
+ 0.296962,0.953305,-0.054991,35.489803,1105.461278,2028.651587,
+ 0.262503,0.962067,0.074285,35.304009,1105.461204,2042.708449,
+ 0.296962,0.953305,-0.054991,35.489803,1105.461278,2028.651587,
+ 0.439265,0.896117,0.063408,70.494256,1087.68104,2050.203904,
+ 0.435624,0.896507,-0.080672,70.865843,1087.681187,2022.09018,
+ -0.386582,0.896588,0.216066,-60.427624,1087.681648,2074.451703,
+ -0.296253,0.953532,0.054877,-35.364608,1105.461607,2041.774401,
+ -0.434637,0.897,0.080508,-70.842978,1087.681846,2048.335808,
+ -0.296253,0.953532,0.054877,-35.364608,1105.461607,2041.774401,
+ -0.386582,0.896588,0.216066,-60.427624,1087.681648,2074.451703,
+ -0.218012,0.962233,0.163028,-30.156931,1105.461509,2054.832348,
+ -0.213632,0.962233,-0.168727,-29.627835,1105.461718,2014.801793,
+ -0.26527,0.896521,-0.354799,-39.227276,1087.682058,1974.773938,
+ -0.380743,0.896586,-0.226203,-59.369433,1087.682068,1994.390591,
+ -0.26527,0.896521,-0.354799,-39.227276,1087.682058,1974.773938,
+ -0.213632,0.962233,-0.168727,-29.627835,1105.461718,2014.801793,
+ -0.132844,0.962206,-0.237725,-19.556757,1105.461714,2004.993466,
+ 0.139273,0.962112,-0.234402,20.473799,1105.461485,2005.522562,
+ 0.092108,0.896703,-0.432943,15.002342,1087.681806,1964.730171,
+ 0.047203,0.973936,-0.221856,7.558052,1105.461588,1999.971583,
+ 0.092108,0.896703,-0.432943,15.002342,1087.681806,1964.730171,
+ 0.139273,0.962112,-0.234402,20.473799,1105.461485,2005.522562,
+ 0.27497,0.896212,-0.34813,40.833836,1087.681602,1975.832129,
+ -0.296253,0.953532,0.054877,-35.364608,1105.461607,2041.774401,
+ -0.438262,0.896618,-0.063262,-70.471391,1087.681993,2020.222085,
+ -0.434637,0.897,0.080508,-70.842978,1087.681846,2048.335808,
+ -0.438262,0.896618,-0.063262,-70.471391,1087.681993,2020.222085,
+ -0.296253,0.953532,0.054877,-35.364608,1105.461607,2041.774401,
+ -0.261885,0.962249,-0.074108,-35.178814,1105.461681,2027.717539,
+ 0.296962,0.953305,-0.054991,35.489803,1105.461278,2028.651587,
+ 0.387375,0.896148,-0.216472,60.450489,1087.681384,1995.974286,
+ 0.21845,0.962084,-0.163322,30.282126,1105.461377,2015.59364,
+ 0.387375,0.896148,-0.216472,60.450489,1087.681384,1995.974286,
+ 0.296962,0.953305,-0.054991,35.489803,1105.461278,2028.651587,
+ 0.435624,0.896507,-0.080672,70.865843,1087.681187,2022.09018,
+ -0.12065,0.896435,0.426435,-14.979477,1087.681226,2105.695818,
+ -0.139076,0.962205,0.234133,-20.348604,1105.4614,2064.903427,
+ -0.274547,0.896523,0.347663,-40.810971,1087.681431,2094.593859,
+ -0.139076,0.962205,0.234133,-20.348604,1105.4614,2064.903427,
+ -0.12065,0.896435,0.426435,-14.979477,1087.681226,2105.695818,
+ -0.038908,0.962171,0.269655,-7.432857,1105.461298,2070.454406,
+ -0.274547,0.896523,0.347663,-40.810971,1087.681431,2094.593859,
+ -0.218012,0.962233,0.163028,-30.156931,1105.461509,2054.832348,
+ -0.386582,0.896588,0.216066,-60.427624,1087.681648,2074.451703,
+ -0.218012,0.962233,0.163028,-30.156931,1105.461509,2054.832348,
+ -0.274547,0.896523,0.347663,-40.810971,1087.681431,2094.593859,
+ -0.139076,0.962205,0.234133,-20.348604,1105.4614,2064.903427,
+ -0.132844,0.962206,-0.237725,-19.556757,1105.461714,2004.993466,
+ -0.109341,0.896433,-0.42948,-13.111382,1087.681967,1964.358584,
+ -0.26527,0.896521,-0.354799,-39.227276,1087.682058,1974.773938,
+ -0.109341,0.896433,-0.42948,-13.111382,1087.681967,1964.358584,
+ -0.132844,0.962206,-0.237725,-19.556757,1105.461714,2004.993466,
+ -0.031768,0.962171,-0.270589,-6.49881,1105.461668,1999.785789,
+ 0.21845,0.962084,-0.163322,30.282126,1105.461377,2015.59364,
+ 0.27497,0.896212,-0.34813,40.833836,1087.681602,1975.832129,
+ 0.139273,0.962112,-0.234402,20.473799,1105.461485,2005.522562,
+ 0.27497,0.896212,-0.34813,40.833836,1087.681602,1975.832129,
+ 0.21845,0.962084,-0.163322,30.282126,1105.461377,2015.59364,
+ 0.387375,0.896148,-0.216472,60.450489,1087.681384,1995.974286,
+ 0.08063,0.896706,0.435221,13.134247,1087.681066,2106.067405,
+ -0.038908,0.962171,0.269655,-7.432857,1105.461298,2070.454406,
+ -0.12065,0.896435,0.426435,-14.979477,1087.681226,2105.695818,
+ -0.038908,0.962171,0.269655,-7.432857,1105.461298,2070.454406,
+ 0.08063,0.896706,0.435221,13.134247,1087.681066,2106.067405,
+ 0.041321,0.973936,0.223028,6.624005,1105.461218,2070.640199,
+ -0.031768,0.962171,-0.270589,-6.49881,1105.461668,1999.785789,
+ 0.092108,0.896703,-0.432943,15.002342,1087.681806,1964.730171,
+ -0.109341,0.896433,-0.42948,-13.111382,1087.681967,1964.358584,
+ 0.092108,0.896703,-0.432943,15.002342,1087.681806,1964.730171,
+ -0.031768,0.962171,-0.270589,-6.49881,1105.461668,1999.785789,
+ 0.047203,0.973936,-0.221856,7.558052,1105.461588,1999.971583,
+ 0.265666,0.896215,0.355276,39.250141,1087.680974,2095.65205,
+ 0.214052,0.962084,0.169045,29.75303,1105.461167,2055.624196,
+ 0.133025,0.962112,0.238003,19.681952,1105.461172,2065.432522,
+ 0.214052,0.962084,0.169045,29.75303,1105.461167,2055.624196,
+ 0.265666,0.896215,0.355276,39.250141,1087.680974,2095.65205,
+ 0.381511,0.896149,0.22664,59.392298,1087.680965,2076.035397,
+ -0.828868,0.000008,-0.559444,-33.137931,-1175.36442,2012.835435,
+ -0.828868,0.000008,-0.559444,-33.129537,314.385267,2012.843349,
+ -0.584403,0.000008,-0.811464,-22.056636,-1175.364424,2001.857078,
+ 0.000006,1,0.000005,-33.345214,-1175.364654,2057.256289,
+ 0.000006,1,0.000005,-39.174477,-1175.364462,2027.218743,
+ 0.000006,1,0.000005,-39.247265,-1175.364544,2042.817272,
+ 0.000006,1,0.000005,-39.174477,-1175.364462,2027.218743,
+ 0.000006,1,0.000005,-33.345214,-1175.364654,2057.256289,
+ 0.000006,1,0.000005,-33.137931,-1175.36442,2012.835435,
+ 0.000006,1,0.000005,-33.137931,-1175.36442,2012.835435,
+ 0.000006,1,0.000005,-33.345214,-1175.364654,2057.256289,
+ 0.000006,1,0.000005,-22.366857,-1175.364775,2068.337584,
+ 0.000006,1,0.000005,-33.137931,-1175.36442,2012.835435,
+ 0.000006,1,0.000005,-22.366857,-1175.364775,2068.337584,
+ 0.000006,1,0.000005,-22.056636,-1175.364424,2001.857078,
+ 0.000006,1,0.000005,-22.056636,-1175.364424,2001.857078,
+ 0.000006,1,0.000005,-22.366857,-1175.364775,2068.337584,
+ 0.000006,1,0.000005,-7.983549,-1175.364888,2074.374131,
+ 0.000006,1,0.000005,-22.056636,-1175.364424,2001.857078,
+ 0.000006,1,0.000005,-7.983549,-1175.364888,2074.374131,
+ 0.000006,1,0.000005,-7.617619,-1175.364474,1995.955026,
+ 0.000006,1,0.000005,-7.617619,-1175.364474,1995.955026,
+ 0.000006,1,0.000005,-7.983549,-1175.364888,2074.374131,
+ 0.000006,1,0.000005,7.61498,-1175.364977,2074.446919,
+ 0.000006,1,0.000005,-7.617619,-1175.364474,1995.955026,
+ 0.000006,1,0.000005,7.61498,-1175.364977,2074.446919,
+ 0.000006,1,0.000005,7.980911,-1175.364562,1996.027815,
+ 0.000006,1,0.000005,7.980911,-1175.364562,1996.027815,
+ 0.000006,1,0.000005,7.61498,-1175.364977,2074.446919,
+ 0.000006,1,0.000005,22.053997,-1175.365027,2068.544867,
+ 0.000006,1,0.000005,7.980911,-1175.364562,1996.027815,
+ 0.000006,1,0.000005,22.053997,-1175.365027,2068.544867,
+ 0.000006,1,0.000005,22.364218,-1175.364675,2002.064361,
+ 0.000006,1,0.000005,22.364218,-1175.364675,2002.064361,
+ 0.000006,1,0.000005,22.053997,-1175.365027,2068.544867,
+ 0.000006,1,0.000005,33.135292,-1175.365031,2057.56651,
+ 0.000006,1,0.000005,22.364218,-1175.364675,2002.064361,
+ 0.000006,1,0.000005,33.135292,-1175.365031,2057.56651,
+ 0.000006,1,0.000005,33.342575,-1175.364796,2013.145656,
+ 0.000006,1,0.000005,33.342575,-1175.364796,2013.145656,
+ 0.000006,1,0.000005,33.135292,-1175.365031,2057.56651,
+ 0.000006,1,0.000005,39.171839,-1175.364988,2043.183203,
+ 0.000006,1,0.000005,33.342575,-1175.364796,2013.145656,
+ 0.000006,1,0.000005,39.171839,-1175.364988,2043.183203,
+ 0.000006,1,0.000005,39.244627,-1175.364906,2027.584673,
+ -0.968686,-0.000002,0.24829,26.490435,-1260.035141,2148.088903,
+ -0.968686,0.000002,0.248289,7.61498,-1175.364977,2074.446919,
+ -0.968685,-0.000002,0.248291,22.123694,-1271.716449,2131.052397,
+ 0.616202,0.509565,0.600532,83.420644,-1271.716562,2087.333353,
+ 0.679257,0.618102,0.395677,33.135292,-1175.365031,2057.56651,
+ 0.514085,0.56723,0.643402,22.053997,-1175.365027,2068.544867,
+ 0.625238,0.512917,0.588212,57.120298,-1271.716562,2115.289236,
+ 0.616202,0.509565,0.600532,83.420644,-1271.716562,2087.333353,
+ 0.514085,0.56723,0.643402,22.053997,-1175.365027,2068.544867,
+ 0.858794,0.512199,-0.011179,97.020742,-1271.716448,2051.440779,
+ 0.860187,0.509303,-0.026244,95.850101,-1271.716238,2013.075832,
+ 0.826538,0.557702,-0.076187,39.244627,-1175.364906,2027.584673,
+ 0.858794,0.512199,-0.011179,97.020742,-1271.716448,2051.440779,
+ 0.826538,0.557702,-0.076187,39.244627,-1175.364906,2027.584673,
+ 0.85719,0.514985,0.003946,80.510481,-1244.216424,2049.079715,
+ 0.85719,0.514985,0.003946,80.510481,-1244.216424,2049.079715,
+ 0.826538,0.557702,-0.076187,39.244627,-1175.364906,2027.584673,
+ 0.789459,0.595062,0.15052,39.171839,-1175.364988,2043.183203,
+ 0.679262,-0.618094,0.395681,33.136594,-1575.775046,2057.567737,
+ 0.789465,-0.595053,0.150522,39.173141,-1575.775088,2043.18443,
+ 0.698932,-0.659128,0.277569,114.432787,-1491.102437,2053.927351,
+ -0.510751,-0.000002,0.859729,-40.810971,1087.681431,2094.593859,
+ -0.272291,-0.000004,0.962215,-14.979542,1076.228581,2105.695757,
+ -0.142868,-0.000004,0.989742,-14.979477,1087.681226,2105.695818,
+ -0.272291,-0.000004,0.962215,-14.979542,1076.228581,2105.695757,
+ -0.510751,-0.000002,0.859729,-40.810971,1087.681431,2094.593859,
+ -0.619788,-0.000001,0.784769,-40.811035,1076.228785,2094.593798,
+ 0.246765,-0.000007,0.969075,13.134247,1087.681066,2106.067405,
+ 0.48785,-0.000007,0.872928,39.250077,1076.228329,2095.65199,
+ 0.59883,-0.000008,0.800876,39.250141,1087.680974,2095.65205,
+ 0.48785,-0.000007,0.872928,39.250077,1076.228329,2095.65199,
+ 0.246765,-0.000007,0.969075,13.134247,1087.681066,2106.067405,
+ 0.11666,-0.000006,0.993172,13.134182,1076.228421,2106.067344,
+ -0.246765,0.000007,-0.969075,-13.111446,1076.229321,1964.358523,
+ -0.48785,0.000007,-0.872928,-39.227276,1087.682058,1974.773938,
+ -0.11666,0.000006,-0.993172,-13.111382,1087.681967,1964.358584,
+ -0.48785,0.000007,-0.872928,-39.227276,1087.682058,1974.773938,
+ -0.246765,0.000007,-0.969075,-13.111446,1076.229321,1964.358523,
+ -0.59883,0.000008,-0.800876,-39.22734,1076.229413,1974.773877,
+ 0.872928,-0.000002,-0.48785,60.450489,1087.681384,1995.974286,
+ 0.969075,-0.000004,-0.246765,70.865779,1076.228541,2022.090119,
+ 0.800876,-0.000001,-0.59883,60.450424,1076.228739,1995.974225,
+ 0.969075,-0.000004,-0.246765,70.865779,1076.228541,2022.090119,
+ 0.872928,-0.000002,-0.48785,60.450489,1087.681384,1995.974286,
+ 0.993172,-0.000005,-0.11666,70.865843,1087.681187,2022.09018,
+ -0.584403,0.000008,-0.811464,-22.056636,-1175.364424,2001.857078,
+ -0.828868,0.000008,-0.559444,-33.125233,1078.145499,2012.847406,
+ -0.495296,0.000007,-0.868724,-22.043938,1078.145495,2001.869049,
+ -0.828868,0.000008,-0.559444,-33.125233,1078.145499,2012.847406,
+ -0.584403,0.000008,-0.811464,-22.056636,-1175.364424,2001.857078,
+ -0.828868,0.000008,-0.559444,-33.129537,314.385267,2012.843349,
+ 0.613055,0.000001,-0.79004,22.376916,1078.145244,2002.076332,
+ 0.795727,-0.000001,-0.605656,33.342575,-1175.364796,2013.145656,
+ 0.503381,0.000002,-0.864064,22.364218,-1175.364675,2002.064361,
+ 0.795727,-0.000001,-0.605656,33.342575,-1175.364796,2013.145656,
+ 0.613055,0.000001,-0.79004,22.376916,1078.145244,2002.076332,
+ 0.868724,-0.000002,-0.495296,33.355273,1078.145123,2013.157627,
+ -0.029512,-0.998207,-0.052072,22.066696,1078.144892,2068.556838,
+ -0.011125,-0.99822,-0.058587,13.134182,1076.228421,2106.067344,
+ -0.011411,-0.99822,-0.058537,7.627679,1078.144942,2074.45889,
+ -0.011125,-0.99822,-0.058587,13.134182,1076.228421,2106.067344,
+ -0.029512,-0.998207,-0.052072,22.066696,1078.144892,2068.556838,
+ -0.035923,-0.998214,-0.047727,39.250077,1076.228329,2095.65199,
+ 0.030169,-0.998218,-0.051488,-22.354159,1078.145144,2068.349555,
+ 0.016094,-0.998211,-0.057584,-14.979542,1076.228581,2105.695757,
+ 0.036903,-0.998211,-0.04704,-40.811035,1076.228785,2094.593798,
+ 0.016094,-0.998211,-0.057584,-14.979542,1076.228581,2105.695757,
+ 0.030169,-0.998218,-0.051488,-22.354159,1078.145144,2068.349555,
+ 0.00817,-0.998218,-0.059117,-7.970851,1078.145031,2074.386102,
+ -0.012151,-0.998221,0.058373,15.002278,1076.229161,1964.73011,
+ -0.03018,-0.998218,0.051478,22.376916,1078.145244,2002.076332,
+ -0.011868,-0.998221,0.058436,7.993609,1078.145357,1996.039785,
+ -0.03018,-0.998218,0.051478,22.376916,1078.145244,2002.076332,
+ -0.012151,-0.998221,0.058373,15.002278,1076.229161,1964.73011,
+ -0.036914,-0.998211,0.047029,40.833771,1076.228956,1975.832068,
+ -0.012151,-0.998221,0.058373,15.002278,1076.229161,1964.73011,
+ 0.00733,-0.998208,0.05939,-7.604921,1078.145445,1995.966997,
+ 0.014915,-0.998215,0.057829,-13.111446,1076.229321,1964.358523,
+ 0.00733,-0.998208,0.05939,-7.604921,1078.145445,1995.966997,
+ -0.012151,-0.998221,0.058373,15.002278,1076.229161,1964.73011,
+ -0.011868,-0.998221,0.058436,7.993609,1078.145357,1996.039785,
+ 0.968687,-0.000002,-0.248286,-7.617619,-1175.364474,1995.955026,
+ 0.968687,0.000002,-0.248285,-22.126464,-1271.715181,1939.349424,
+ 0.968687,0.000001,-0.248284,-26.493073,-1260.036639,1922.313042,
+ -0.989965,0.000002,-0.141315,7.980911,-1175.364562,1996.027815,
+ -0.989964,-0.000002,-0.141318,18.723832,-1260.036393,1920.768168,
+ -0.989965,-0.000004,-0.141316,16.238483,-1271.715391,1938.178783,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-22.055,-1635.024856,2001.85862,
+ 0.000006,-1,0.000005,-7.615983,-1635.024806,1995.956569,
+ 0.000006,-1,0.000005,33.136928,-1635.024249,2057.568052,
+ 0.000006,-1,0.000005,22.055633,-1635.024253,2068.546409,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-39.172841,-1635.024818,2027.220285,
+ 0.000006,-1,0.000005,-33.136295,-1635.02486,2012.836977,
+ 0.000006,-1,0.000005,7.616616,-1635.024303,2074.448461,
+ 0.000006,-1,0.000005,-7.981913,-1635.024391,2074.375673,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ -0.5094,0.000001,0.86053,83.420644,-1271.716562,2087.333353,
+ -0.5094,0.000001,0.86053,98.556303,-1491.102301,2096.293522,
+ -0.5094,0.000001,0.86053,98.555001,-1260.035011,2096.292295,
+ -0.5094,0.000001,0.86053,98.556303,-1491.102301,2096.293522,
+ -0.5094,0.000001,0.86053,83.420644,-1271.716562,2087.333353,
+ -0.509399,0.000001,0.86053,83.421946,-1479.423514,2087.334581,
+ 0.141313,-0.000003,-0.989965,114.432787,-1491.102437,2053.927351,
+ 0.141315,-0.000004,-0.989965,97.022044,-1479.423628,2051.442006,
+ 0.141386,0.000019,-0.989955,114.431485,-1260.035146,2053.926124,
+ -0.134401,-0.000005,0.990927,-7.970851,1078.145031,2074.386102,
+ 0.190512,-0.000006,0.981685,7.61498,-1175.364977,2074.446919,
+ 0.255041,-0.000007,0.96693,7.627679,1078.144942,2074.45889,
+ 0.190512,-0.000006,0.981685,7.61498,-1175.364977,2074.446919,
+ -0.134401,-0.000005,0.990927,-7.970851,1078.145031,2074.386102,
+ -0.264054,-0.000004,0.964508,-7.983549,-1175.364888,2074.374131,
+ -0.936408,-0.000007,-0.350914,-98.556338,-1491.104061,1974.110878,
+ -0.936408,-0.000007,-0.350914,-114.434123,-1260.036635,2016.475821,
+ -0.936408,-0.000007,-0.350914,-98.55764,-1260.03677,1974.10965,
+ -0.936408,-0.000007,-0.350914,-114.434123,-1260.036635,2016.475821,
+ -0.936408,-0.000007,-0.350914,-98.556338,-1491.104061,1974.110878,
+ -0.936408,-0.000007,-0.350914,-114.432821,-1491.103925,2016.477049,
+ -0.188244,-0.621459,0.760495,-7.982247,-1575.775188,2074.375358,
+ -0.263845,-0.659285,0.70408,-18.725169,-1491.102679,2149.635004,
+ -0.276534,-0.662009,0.696616,-61.09134,-1491.103002,2133.75852,
+ 0.000006,-1,0.000005,22.055633,-1635.024253,2068.546409,
+ 0.000006,-1,0.000005,7.616616,-1635.024303,2074.448461,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,21.079139,-1635.024615,2001.52588,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,7.982547,-1635.024718,1996.029357,
+ 0.799934,0.000001,-0.600088,67.675513,-1491.1023,2129.359093,
+ 0.799934,0,-0.600089,22.055299,-1575.77505,2068.546095,
+ 0.799933,0.000001,-0.600089,57.1216,-1479.423514,2115.290463,
+ -0.276536,0.662015,0.696609,-61.092642,-1260.035711,2133.757293,
+ -0.134987,0.595762,0.791736,-7.983549,-1175.364888,2074.374131,
+ -0.458828,0.595592,0.659353,-22.366857,-1175.364775,2068.337584,
+ -0.276536,0.662015,0.696609,-61.092642,-1260.035711,2133.757293,
+ -0.263852,0.659293,0.704071,-18.726471,-1260.035388,2149.633777,
+ -0.134987,0.595762,0.791736,-7.983549,-1175.364888,2074.374131,
+ 0.297947,0.65914,0.69048,67.674211,-1260.035009,2129.357866,
+ 0.514085,0.56723,0.643402,22.053997,-1175.365027,2068.544867,
+ 0.200522,0.618102,0.760093,7.61498,-1175.364977,2074.446919,
+ -0.14131,0.000004,0.989965,-114.432821,-1491.103925,2016.477049,
+ -0.141312,0.000003,0.989965,-97.022211,-1479.424894,2018.96227,
+ -0.14131,0.000003,0.989965,-97.023513,-1271.715182,2018.961042,
+ -0.141311,0.000002,0.989965,-39.173175,-1575.775614,2027.21997,
+ -0.141312,0.000003,0.989965,-97.022211,-1479.424894,2018.96227,
+ -0.14131,0.000004,0.989965,-114.432821,-1491.103925,2016.477049,
+ -0.14131,0.000003,0.989965,-97.023513,-1271.715182,2018.961042,
+ -0.141311,-0.000002,0.989965,-39.174477,-1175.364462,2027.218743,
+ -0.141308,0.000001,0.989966,-114.434123,-1260.036635,2016.475821,
+ -0.14131,0.000004,0.989965,-114.432821,-1491.103925,2016.477049,
+ -0.14131,0.000003,0.989965,-97.023513,-1271.715182,2018.961042,
+ -0.141308,0.000001,0.989966,-114.434123,-1260.036635,2016.475821,
+ -0.552864,-0.002116,0.833269,-22.365555,-1575.775301,2068.338812,
+ -0.868724,-0.000002,0.495296,-33.343912,-1575.775422,2057.257517,
+ -0.789247,-0.002827,0.614069,-33.343578,-1635.024625,2057.257832,
+ -0.789247,-0.002827,0.614069,-33.343578,-1635.024625,2057.257832,
+ -0.546267,-0.004228,0.837601,-21.078506,-1635.024494,2068.87915,
+ -0.552864,-0.002116,0.833269,-22.365555,-1575.775301,2068.338812,
+ 0.494392,-0.002816,-0.869234,21.079139,-1635.024615,2001.52588,
+ 0.623957,-0.133857,-0.769909,22.36552,-1575.775401,2002.065588,
+ 0.829674,-0.002123,-0.558245,33.344211,-1635.024484,2013.147198,
+ 0.829674,-0.002123,-0.558245,33.344211,-1635.024484,2013.147198,
+ 0.604615,-0.002819,-0.796513,22.36552,-1575.775401,2002.065588,
+ 0.834053,0.000002,-0.551684,33.343877,-1575.77528,2013.146883,
+ 0.962215,-0.000007,0.272291,70.494256,1087.68104,2050.203904,
+ 0.824055,-0.000008,0.566511,59.392233,1076.228319,2076.035337,
+ 0.989742,-0.000006,0.142868,70.494191,1076.228394,2050.203843,
+ 0.824055,-0.000008,0.566511,59.392233,1076.228319,2076.035337,
+ 0.962215,-0.000007,0.272291,70.494256,1087.68104,2050.203904,
+ 0.824055,-0.000008,0.566511,59.392298,1087.680965,2076.035397,
+ 0.510751,0.000002,-0.859729,40.833771,1076.228956,1975.832068,
+ 0.272291,0.000004,-0.962215,15.002342,1087.681806,1964.730171,
+ 0.619788,0.000001,-0.784769,40.833836,1087.681602,1975.832129,
+ 0.272291,0.000004,-0.962215,15.002342,1087.681806,1964.730171,
+ 0.510751,0.000002,-0.859729,40.833771,1076.228956,1975.832068,
+ 0.142868,0.000004,-0.989742,15.002278,1076.229161,1964.73011,
+ -0.962215,0.000007,-0.272291,-70.471455,1076.229348,2020.222024,
+ -0.824055,0.000008,-0.566511,-59.369433,1087.682068,1994.390591,
+ -0.824055,0.000008,-0.566511,-59.369497,1076.229422,1994.39053,
+ -0.824055,0.000008,-0.566511,-59.369433,1087.682068,1994.390591,
+ -0.962215,0.000007,-0.272291,-70.471455,1076.229348,2020.222024,
+ -0.989742,0.000006,-0.142868,-70.471391,1087.681993,2020.222085,
+ -0.872928,0.000002,0.48785,-60.427688,1076.229003,2074.451642,
+ -0.969075,0.000004,0.246765,-70.842978,1087.681846,2048.335808,
+ -0.993172,0.000005,0.11666,-70.843043,1076.2292,2048.335748,
+ -0.969075,0.000004,0.246765,-70.842978,1087.681846,2048.335808,
+ -0.872928,0.000002,0.48785,-60.427688,1076.229003,2074.451642,
+ -0.800876,0.000001,0.59883,-60.427624,1087.681648,2074.451703,
+ 0.910274,0.000003,-0.414007,112.886611,-1260.035395,2008.709218,
+ 0.910274,0.000003,-0.414007,94.156876,-1491.10301,1967.52667,
+ 0.910274,0.000003,-0.414007,94.155574,-1260.035719,1967.525442,
+ 0.910274,0.000003,-0.414007,94.156876,-1491.10301,1967.52667,
+ 0.910274,0.000003,-0.414007,112.886611,-1260.035395,2008.709218,
+ 0.910274,0.000003,-0.414007,112.887913,-1491.102686,2008.710446,
+ -0.688119,-0.66201,0.297042,-112.887948,-1491.103676,2061.693954,
+ -0.790675,-0.595591,0.141793,-39.245963,-1575.775532,2042.8185,
+ -0.670858,-0.621461,0.404642,-33.343912,-1575.775422,2057.257517,
+ -0.552864,-0.002116,0.833269,-22.365555,-1575.775301,2068.338812,
+ -0.264054,0.000004,0.964508,-7.981913,-1635.024391,2074.375673,
+ -0.134401,0.000005,0.990927,-7.982247,-1575.775188,2074.375358,
+ -0.264054,0.000004,0.964508,-7.981913,-1635.024391,2074.375673,
+ -0.552864,-0.002116,0.833269,-22.365555,-1575.775301,2068.338812,
+ -0.546267,-0.004228,0.837601,-21.078506,-1635.024494,2068.87915,
+ 0.551684,-0.000008,0.834053,22.053997,-1175.365027,2068.544867,
+ 0.805975,-0.000008,0.59195,33.135292,-1175.365031,2057.56651,
+ 0.518094,-0.000007,0.855324,22.062392,314.38466,2068.552781,
+ 0.134993,-0.595761,-0.791736,7.982213,-1575.775514,1996.029042,
+ 0.276542,-0.66201,-0.696611,61.091305,-1491.10336,1936.64588,
+ 0.458836,-0.595589,-0.65935,22.36552,-1575.775401,2002.065588,
+ -0.29795,0.65913,-0.690488,-67.67685,-1260.036772,1941.044079,
+ -0.514083,0.56723,-0.643404,-22.056636,-1175.364424,2001.857078,
+ -0.157155,0.595594,-0.787762,-7.617619,-1175.364474,1995.955026,
+ 0.655297,-0.595759,-0.464388,33.343877,-1575.77528,2013.146883,
+ 0.600534,-0.509567,-0.616198,52.13236,-1479.42441,1951.780109,
+ 0.588214,-0.51292,-0.625234,80.088242,-1479.424113,1978.080455,
+ 0.047573,-0.998218,-0.036022,-33.332516,1078.145264,2057.26826,
+ 0.036903,-0.998211,-0.04704,-40.811035,1076.228785,2094.593798,
+ 0.052093,-0.998211,-0.029335,-60.427688,1076.229003,2074.451642,
+ 0.036903,-0.998211,-0.04704,-40.811035,1076.228785,2094.593798,
+ 0.047573,-0.998218,-0.036022,-33.332516,1078.145264,2057.26826,
+ 0.030169,-0.998218,-0.051488,-22.354159,1078.145144,2068.349555,
+ -0.248291,-0.000004,-0.968685,-95.852871,-1271.715393,2057.325989,
+ -0.248291,-0.000005,-0.968685,-112.887948,-1491.103676,2061.693954,
+ -0.248293,-0.000002,-0.968685,-112.88925,-1260.036386,2061.692727,
+ -0.248291,-0.000005,-0.968685,-112.887948,-1491.103676,2061.693954,
+ -0.248291,-0.000004,-0.968685,-95.852871,-1271.715393,2057.325989,
+ -0.248289,-0.000005,-0.968686,-95.851569,-1479.424684,2057.327217,
+ -0.502999,-0.570987,0.648819,-22.365555,-1575.775301,2068.338812,
+ -0.188244,-0.621459,0.760495,-7.982247,-1575.775188,2074.375358,
+ -0.276534,-0.662009,0.696616,-61.09134,-1491.103002,2133.75852,
+ 0.992138,-0.000005,-0.125147,39.257325,1078.145013,2027.596644,
+ 0.990927,-0.000006,0.134401,39.171839,-1175.364988,2043.183203,
+ 0.96693,-0.000004,-0.255041,39.244627,-1175.364906,2027.584673,
+ 0.990927,-0.000006,0.134401,39.171839,-1175.364988,2043.183203,
+ 0.992138,-0.000005,-0.125147,39.257325,1078.145013,2027.596644,
+ 0.964508,-0.000007,0.264054,39.184537,1078.14493,2043.195173,
+ 0.101709,0.000005,-0.994814,7.980911,-1175.364562,1996.027815,
+ -0.125147,0.000006,-0.992138,-7.604921,1078.145445,1995.966997,
+ 0.264054,0.000004,-0.964508,7.993609,1078.145357,1996.039785,
+ -0.125147,0.000006,-0.992138,-7.604921,1078.145445,1995.966997,
+ 0.101709,0.000005,-0.994814,7.980911,-1175.364562,1996.027815,
+ -0.229384,0.000006,-0.973336,-7.609225,314.385213,1995.96294,
+ -0.058592,-0.99822,0.011094,39.257325,1078.145013,2027.596644,
+ -0.059147,-0.998214,-0.008352,70.494191,1076.228394,2050.203843,
+ -0.057687,-0.998207,-0.015958,39.184537,1078.14493,2043.195173,
+ -0.059147,-0.998214,-0.008352,70.494191,1076.228394,2050.203843,
+ -0.058592,-0.99822,0.011094,39.257325,1078.145013,2027.596644,
+ -0.058629,-0.998221,0.010878,70.865779,1076.228541,2022.090119,
+ -0.414007,-0.000007,-0.910274,-26.491771,-1491.10393,1922.314269,
+ -0.414007,-0.000007,-0.910274,-67.67685,-1260.036772,1941.044079,
+ -0.414007,-0.000007,-0.910274,-26.493073,-1260.036639,1922.313042,
+ -0.414007,-0.000007,-0.910274,-67.67685,-1260.036772,1941.044079,
+ -0.414007,-0.000007,-0.910274,-26.491771,-1491.10393,1922.314269,
+ -0.414007,-0.000007,-0.910274,-67.675548,-1491.104063,1941.045307,
+ -0.047191,-0.998207,-0.036817,33.147991,1078.144888,2057.578481,
+ -0.035923,-0.998214,-0.047727,39.250077,1076.228329,2095.65199,
+ -0.029512,-0.998207,-0.052072,22.066696,1078.144892,2068.556838,
+ -0.035923,-0.998214,-0.047727,39.250077,1076.228329,2095.65199,
+ -0.047191,-0.998207,-0.036817,33.147991,1078.144888,2057.578481,
+ -0.051451,-0.998214,-0.030349,59.392233,1076.228319,2076.035337,
+ -0.350914,0.000003,0.936408,-61.092642,-1260.035711,2133.757293,
+ -0.350914,0.000003,0.936408,-18.725169,-1491.102679,2149.635004,
+ -0.350914,0.000003,0.936408,-18.726471,-1260.035388,2149.633777,
+ -0.350914,0.000003,0.936408,-18.725169,-1491.102679,2149.635004,
+ -0.350914,0.000003,0.936408,-61.092642,-1260.035711,2133.757293,
+ -0.350914,0.000003,0.936408,-61.09134,-1491.103002,2133.75852,
+ -0.799934,-0,0.600088,-22.055334,-1575.775652,2001.858305,
+ -0.799934,-0.000001,0.600088,-57.121766,-1479.425008,1955.113813,
+ -0.799934,-0.000001,0.600088,-67.675548,-1491.104063,1941.045307,
+ -0.860533,-0.000006,-0.509395,-52.132526,-1479.424112,2118.624167,
+ -0.860533,-0.000004,-0.509395,-61.092642,-1260.035711,2133.757293,
+ -0.860534,-0.000003,-0.509393,-52.133828,-1271.715965,2118.62294,
+ -0.860533,-0.000004,-0.509395,-61.092642,-1260.035711,2133.757293,
+ -0.860533,-0.000006,-0.509395,-52.132526,-1479.424112,2118.624167,
+ -0.860531,-0.000005,-0.509397,-61.09134,-1491.103002,2133.75852,
+ 0.058581,-0.998221,-0.011105,-39.234567,1078.145374,2042.829243,
+ 0.052093,-0.998211,-0.029335,-60.427688,1076.229003,2074.451642,
+ 0.058617,-0.998221,-0.010888,-70.843043,1076.2292,2048.335748,
+ 0.052093,-0.998211,-0.029335,-60.427688,1076.229003,2074.451642,
+ 0.058581,-0.998221,-0.011105,-39.234567,1078.145374,2042.829243,
+ 0.047573,-0.998218,-0.036022,-33.332516,1078.145264,2057.26826,
+ -0.968686,-0.000003,0.248288,26.491737,-1491.102432,2148.090131,
+ -0.968686,-0.000003,0.24829,22.124996,-1479.423627,2131.053624,
+ -0.968686,-0.000002,0.248289,7.616282,-1575.7751,2074.448146,
+ -0.134401,0.000005,0.990927,-7.982247,-1575.775188,2074.375358,
+ 0.125147,0.000006,0.992138,7.616616,-1635.024303,2074.448461,
+ 0.255041,0.000007,0.96693,7.616282,-1575.7751,2074.448146,
+ 0.125147,0.000006,0.992138,7.616616,-1635.024303,2074.448461,
+ -0.134401,0.000005,0.990927,-7.982247,-1575.775188,2074.375358,
+ -0.264054,0.000004,0.964508,-7.981913,-1635.024391,2074.375673,
+ -0.600085,-0.000004,-0.799936,80.08694,-1271.715963,1978.079227,
+ -0.600086,0.000003,-0.799936,33.342575,-1175.364796,2013.145656,
+ -0.600083,-0.000002,-0.799938,94.155574,-1260.035719,1967.525442,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-7.981913,-1635.024391,2074.375673,
+ 0.000006,-1,0.000005,-21.078506,-1635.024494,2068.87915,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-39.24563,-1635.024735,2042.818814,
+ 0.000006,-1,0.000005,-39.172841,-1635.024818,2027.220285,
+ 0.000006,-1,0.000005,33.344211,-1635.024484,2013.147198,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,21.079139,-1635.024615,2001.52588,
+ 0.000006,-1,0.000005,39.246263,-1635.024374,2027.586215,
+ 0.000006,-1,0.000005,39.173475,-1635.024291,2043.184745,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-33.343578,-1635.024625,2057.257832,
+ 0.000006,-1,0.000005,-39.24563,-1635.024735,2042.818814,
+ 0.989966,0.000004,0.141309,-18.726471,-1260.035388,2149.633777,
+ 0.989966,0.000002,0.141307,-16.241253,-1271.716239,2132.223038,
+ 0.989965,-0.000002,0.14131,-7.983549,-1175.364888,2074.374131,
+ -0.860533,-0.000004,-0.509395,-61.092642,-1260.035711,2133.757293,
+ -0.860532,0.000003,-0.509396,-22.366857,-1175.364775,2068.337584,
+ -0.860534,-0.000003,-0.509393,-52.133828,-1271.715965,2118.62294,
+ 0.014915,-0.998215,0.057829,-13.111446,1076.229321,1964.358523,
+ 0.029501,-0.998208,0.052061,-22.043938,1078.145495,2001.869049,
+ 0.035912,-0.998215,0.047716,-39.22734,1076.229413,1974.773877,
+ 0.029501,-0.998208,0.052061,-22.043938,1078.145495,2001.869049,
+ 0.014915,-0.998215,0.057829,-13.111446,1076.229321,1964.358523,
+ 0.00733,-0.998208,0.05939,-7.604921,1078.145445,1995.966997,
+ -0.503381,-0.000002,0.864064,-22.354159,1078.145144,2068.349555,
+ -0.264054,-0.000004,0.964508,-7.983549,-1175.364888,2074.374131,
+ -0.134401,-0.000005,0.990927,-7.970851,1078.145031,2074.386102,
+ -0.264054,-0.000004,0.964508,-7.983549,-1175.364888,2074.374131,
+ -0.503381,-0.000002,0.864064,-22.354159,1078.145144,2068.349555,
+ -0.613055,-0.000001,0.79004,-22.366857,-1175.364775,2068.337584,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-33.136295,-1635.02486,2012.836977,
+ 0.000006,-1,0.000005,-22.055,-1635.024856,2001.85862,
+ -0.248291,-0.000004,-0.968685,-95.852871,-1271.715393,2057.325989,
+ -0.248293,-0.000002,-0.968685,-112.88925,-1260.036386,2061.692727,
+ -0.24829,0.000002,-0.968686,-39.247265,-1175.364544,2042.817272,
+ 0.864064,0.000008,0.503381,33.136594,-1575.775046,2057.567737,
+ 0.964508,0.000007,0.264054,39.173475,-1635.024291,2043.184745,
+ 0.990927,0.000006,0.134401,39.173141,-1575.775088,2043.18443,
+ 0.964508,0.000007,0.264054,39.173475,-1635.024291,2043.184745,
+ 0.864064,0.000008,0.503381,33.136594,-1575.775046,2057.567737,
+ 0.79004,0.000008,0.613055,33.136928,-1635.024249,2057.568052,
+ 0.141314,-0.000002,-0.989965,39.173141,-1575.775088,2043.18443,
+ 0.141315,-0.000004,-0.989965,97.022044,-1479.423628,2051.442006,
+ 0.141313,-0.000003,-0.989965,114.432787,-1491.102437,2053.927351,
+ -0.59883,0.000008,-0.800876,-39.22734,1076.229413,1974.773877,
+ -0.824055,0.000008,-0.566511,-59.369433,1087.682068,1994.390591,
+ -0.48785,0.000007,-0.872928,-39.227276,1087.682058,1974.773938,
+ -0.824055,0.000008,-0.566511,-59.369433,1087.682068,1994.390591,
+ -0.59883,0.000008,-0.800876,-39.22734,1076.229413,1974.773877,
+ -0.824055,0.000008,-0.566511,-59.369497,1076.229422,1994.39053,
+ 0.035912,-0.998215,0.047716,-39.22734,1076.229413,1974.773877,
+ 0.04718,-0.998208,0.036806,-33.125233,1078.145499,2012.847406,
+ 0.05144,-0.998215,0.030339,-59.369497,1076.229422,1994.39053,
+ 0.04718,-0.998208,0.036806,-33.125233,1078.145499,2012.847406,
+ 0.035912,-0.998215,0.047716,-39.22734,1076.229413,1974.773877,
+ 0.029501,-0.998208,0.052061,-22.043938,1078.145495,2001.869049,
+ 0.05144,-0.998215,0.030339,-59.369497,1076.229422,1994.39053,
+ 0.057675,-0.998208,0.015947,-39.161779,1078.145457,2027.230714,
+ 0.059136,-0.998215,0.008341,-70.471455,1076.229348,2020.222024,
+ 0.057675,-0.998208,0.015947,-39.161779,1078.145457,2027.230714,
+ 0.05144,-0.998215,0.030339,-59.369497,1076.229422,1994.39053,
+ 0.04718,-0.998208,0.036806,-33.125233,1078.145499,2012.847406,
+ 0.989965,0.000004,0.141311,-18.725169,-1491.102679,2149.635004,
+ 0.989965,0.000002,0.14131,-7.982247,-1575.775188,2074.375358,
+ 0.989966,0.000005,0.141309,-16.239951,-1479.423837,2132.224265,
+ 0.600091,0.000003,0.799932,-33.343912,-1575.775422,2057.257517,
+ 0.600089,0.000006,0.799933,-80.088408,-1479.424409,2092.323821,
+ 0.600091,0.000006,0.799931,-94.156911,-1491.103352,2102.87773,
+ -0.864064,-0.000008,-0.503381,-33.136295,-1635.02486,2012.836977,
+ -0.964508,-0.000007,-0.264054,-39.173175,-1575.775614,2027.21997,
+ -0.79004,-0.000008,-0.613055,-33.136629,-1575.775657,2012.836663,
+ -0.964508,-0.000007,-0.264054,-39.173175,-1575.775614,2027.21997,
+ -0.864064,-0.000008,-0.503381,-33.136295,-1635.02486,2012.836977,
+ -0.990927,-0.000006,-0.134401,-39.172841,-1635.024818,2027.220285,
+ 0.00817,-0.998218,-0.059117,-7.970851,1078.145031,2074.386102,
+ -0.011125,-0.99822,-0.058587,13.134182,1076.228421,2106.067344,
+ 0.016094,-0.998211,-0.057584,-14.979542,1076.228581,2105.695757,
+ -0.011125,-0.99822,-0.058587,13.134182,1076.228421,2106.067344,
+ 0.00817,-0.998218,-0.059117,-7.970851,1078.145031,2074.386102,
+ -0.011411,-0.99822,-0.058537,7.627679,1078.144942,2074.45889,
+ -0.057687,-0.998207,-0.015958,39.184537,1078.14493,2043.195173,
+ -0.051451,-0.998214,-0.030349,59.392233,1076.228319,2076.035337,
+ -0.047191,-0.998207,-0.036817,33.147991,1078.144888,2057.578481,
+ -0.051451,-0.998214,-0.030349,59.392233,1076.228319,2076.035337,
+ -0.057687,-0.998207,-0.015958,39.184537,1078.14493,2043.195173,
+ -0.059147,-0.998214,-0.008352,70.494191,1076.228394,2050.203843,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.139076,0.962205,0.234133,-20.348604,1105.4614,2064.903427,
+ -0.038908,0.962171,0.269655,-7.432857,1105.461298,2070.454406,
+ -0.619788,-0.000001,0.784769,-40.811035,1076.228785,2094.593798,
+ -0.800876,0.000001,0.59883,-60.427624,1087.681648,2074.451703,
+ -0.872928,0.000002,0.48785,-60.427688,1076.229003,2074.451642,
+ -0.800876,0.000001,0.59883,-60.427624,1087.681648,2074.451703,
+ -0.619788,-0.000001,0.784769,-40.811035,1076.228785,2094.593798,
+ -0.510751,-0.000002,0.859729,-40.810971,1087.681431,2094.593859,
+ -0.860531,-0.000005,-0.509397,-61.09134,-1491.103002,2133.75852,
+ -0.860533,-0.000006,-0.509395,-52.132526,-1479.424112,2118.624167,
+ -0.860532,-0.000003,-0.509396,-22.365555,-1575.775301,2068.338812,
+ -0.860359,-0.509569,0.011083,-95.851569,-1479.424684,2057.327217,
+ -0.818467,-0.56723,-0.09144,-39.173175,-1575.775614,2027.21997,
+ -0.790675,-0.595591,0.141793,-39.245963,-1575.775532,2042.8185,
+ -0.698931,0.65913,-0.277566,-114.434123,-1260.036635,2016.475821,
+ -0.679261,0.618097,-0.395679,-33.137931,-1175.36442,2012.835435,
+ -0.701586,0.662308,-0.262917,-98.55764,-1260.03677,1974.10965,
+ 0.968687,0.000002,-0.248285,-22.126464,-1271.715181,1939.349424,
+ 0.968687,0.000003,-0.248285,-26.491771,-1491.10393,1922.314269,
+ 0.968687,0.000001,-0.248284,-26.493073,-1260.036639,1922.313042,
+ 0.968687,0.000003,-0.248285,-26.491771,-1491.10393,1922.314269,
+ 0.968687,0.000002,-0.248285,-22.126464,-1271.715181,1939.349424,
+ 0.968687,0.000003,-0.248287,-22.125162,-1479.424895,1939.350652,
+ 0.860529,-0.000003,0.509402,22.364218,-1175.364675,2002.064361,
+ 0.860528,0.000004,0.509402,52.131057,-1271.715666,1951.778881,
+ 0.860527,0.000002,0.509404,61.090003,-1260.03607,1936.644652,
+ -0.599385,-0.512211,0.615124,-80.088408,-1479.424409,2092.323821,
+ -0.670858,-0.621461,0.404642,-33.343912,-1575.775422,2057.257517,
+ -0.502999,-0.570987,0.648819,-22.365555,-1575.775301,2068.338812,
+ 0.414007,0.000007,0.910274,26.490435,-1260.035141,2148.088903,
+ 0.414007,0.000007,0.910274,67.675513,-1491.1023,2129.359093,
+ 0.414007,0.000007,0.910274,67.674211,-1260.035009,2129.357866,
+ 0.414007,0.000007,0.910274,67.675513,-1491.1023,2129.359093,
+ 0.414007,0.000007,0.910274,26.490435,-1260.035141,2148.088903,
+ 0.414007,0.000007,0.910274,26.491737,-1491.102432,2148.090131,
+ 0.990927,0.000006,0.134401,39.173141,-1575.775088,2043.18443,
+ 0.992138,0.000005,-0.125147,39.246263,-1635.024374,2027.586215,
+ 0.96693,0.000004,-0.255041,39.245929,-1575.77517,2027.5859,
+ 0.992138,0.000005,-0.125147,39.246263,-1635.024374,2027.586215,
+ 0.990927,0.000006,0.134401,39.173141,-1575.775088,2043.18443,
+ 0.964508,0.000007,0.264054,39.173475,-1635.024291,2043.184745,
+ -0.990927,-0.000006,-0.134401,-39.172841,-1635.024818,2027.220285,
+ -0.992138,-0.000005,0.125147,-39.245963,-1575.775532,2042.8185,
+ -0.964508,-0.000007,-0.264054,-39.173175,-1575.775614,2027.21997,
+ -0.992138,-0.000005,0.125147,-39.245963,-1575.775532,2042.8185,
+ -0.990927,-0.000006,-0.134401,-39.172841,-1635.024818,2027.220285,
+ -0.96693,-0.000004,0.255041,-39.24563,-1635.024735,2042.818814,
+ -0.190512,0.000006,-0.981685,-7.617619,-1175.364474,1995.955026,
+ -0.229384,0.000006,-0.973336,-7.609225,314.385213,1995.96294,
+ 0.101709,0.000005,-0.994814,7.980911,-1175.364562,1996.027815,
+ 0.685212,-0,-0.728344,80.088242,-1479.424113,1978.080455,
+ 0.685212,-0,-0.728344,52.131057,-1271.715666,1951.778881,
+ 0.685212,-0,-0.728344,80.08694,-1271.715963,1978.079227,
+ 0.685212,-0,-0.728344,52.131057,-1271.715666,1951.778881,
+ 0.685212,-0,-0.728344,80.088242,-1479.424113,1978.080455,
+ 0.685212,-0,-0.728344,52.13236,-1479.42441,1951.780109,
+ 0.157159,-0.595592,0.787764,7.616282,-1575.7751,2074.448146,
+ 0.02625,-0.509303,0.860187,22.124996,-1479.423627,2131.053624,
+ 0.011128,-0.512209,0.858789,-16.239951,-1479.423837,2132.224265,
+ -0.229384,0.000006,-0.973336,-7.609225,314.385213,1995.96294,
+ -0.495296,0.000007,-0.868724,-22.043938,1078.145495,2001.869049,
+ -0.125147,0.000006,-0.992138,-7.604921,1078.145445,1995.966997,
+ -0.495296,0.000007,-0.868724,-22.043938,1078.145495,2001.869049,
+ -0.229384,0.000006,-0.973336,-7.609225,314.385213,1995.96294,
+ -0.584403,0.000008,-0.811464,-22.056636,-1175.364424,2001.857078,
+ -0.584403,0.000008,-0.811464,-22.056636,-1175.364424,2001.857078,
+ -0.229384,0.000006,-0.973336,-7.609225,314.385213,1995.96294,
+ -0.190512,0.000006,-0.981685,-7.617619,-1175.364474,1995.955026,
+ -0.993172,0.000005,0.11666,-70.843043,1076.2292,2048.335748,
+ -0.989742,0.000006,-0.142868,-70.471391,1087.681993,2020.222085,
+ -0.962215,0.000007,-0.272291,-70.471455,1076.229348,2020.222024,
+ -0.989742,0.000006,-0.142868,-70.471391,1087.681993,2020.222085,
+ -0.993172,0.000005,0.11666,-70.843043,1076.2292,2048.335748,
+ -0.969075,0.000004,0.246765,-70.842978,1087.681846,2048.335808,
+ 0.157159,-0.595592,0.787764,7.616282,-1575.7751,2074.448146,
+ 0.514086,-0.567226,0.643405,22.055299,-1575.77505,2068.546095,
+ 0.297952,-0.659128,0.690489,67.675513,-1491.1023,2129.359093,
+ 0.728344,0.000009,0.685212,57.120298,-1271.716562,2115.289236,
+ 0.728344,0.000009,0.685212,83.421946,-1479.423514,2087.334581,
+ 0.728344,0.000009,0.685212,83.420644,-1271.716562,2087.333353,
+ 0.728344,0.000009,0.685212,83.421946,-1479.423514,2087.334581,
+ 0.728344,0.000009,0.685212,57.120298,-1271.716562,2115.289236,
+ 0.728344,0.000009,0.685212,57.1216,-1479.423514,2115.290463,
+ -0.989965,-0.000005,-0.141316,18.725134,-1491.103683,1920.769396,
+ -0.989965,-0.000004,-0.141316,16.238483,-1271.715391,1938.178783,
+ -0.989964,-0.000002,-0.141318,18.723832,-1260.036393,1920.768168,
+ -0.989965,-0.000004,-0.141316,16.238483,-1271.715391,1938.178783,
+ -0.989965,-0.000005,-0.141316,18.725134,-1491.103683,1920.769396,
+ -0.989965,-0.000005,-0.141313,16.239785,-1479.424685,1938.180011,
+ 0.310182,0.662318,0.681999,26.490435,-1260.035141,2148.088903,
+ 0.297947,0.65914,0.69048,67.674211,-1260.035009,2129.357866,
+ 0.200522,0.618102,0.760093,7.61498,-1175.364977,2074.446919,
+ 0.701579,0.662318,0.26291,98.555001,-1260.035011,2096.292295,
+ 0.698924,0.659139,0.277563,114.431485,-1260.035146,2053.926124,
+ 0.679257,0.618102,0.395677,33.135292,-1175.365031,2057.56651,
+ 0.670858,0.621465,-0.404636,33.342575,-1175.364796,2013.145656,
+ 0.688116,0.662016,-0.297036,112.886611,-1260.035395,2008.709218,
+ 0.684421,0.659292,-0.311291,94.155574,-1260.035719,1967.525442,
+ 0.679257,0.618102,0.395677,33.135292,-1175.365031,2057.56651,
+ 0.698924,0.659139,0.277563,114.431485,-1260.035146,2053.926124,
+ 0.789459,0.595062,0.15052,39.171839,-1175.364988,2043.183203,
+ 0.989966,0.000004,0.141309,-18.726471,-1260.035388,2149.633777,
+ 0.989966,0.000005,0.141309,-16.239951,-1479.423837,2132.224265,
+ 0.989966,0.000002,0.141307,-16.241253,-1271.716239,2132.223038,
+ 0.989966,0.000005,0.141309,-16.239951,-1479.423837,2132.224265,
+ 0.989966,0.000004,0.141309,-18.726471,-1260.035388,2149.633777,
+ 0.989965,0.000004,0.141311,-18.725169,-1491.102679,2149.635004,
+ -0.000006,1,-0.000005,-33.343912,-1575.775422,2057.257517,
+ -0.000006,1,-0.000005,-39.173175,-1575.775614,2027.21997,
+ -0.000006,1,-0.000005,-39.245963,-1575.775532,2042.8185,
+ -0.000006,1,-0.000005,-39.173175,-1575.775614,2027.21997,
+ -0.000006,1,-0.000005,-33.343912,-1575.775422,2057.257517,
+ -0.000006,1,-0.000005,-33.136629,-1575.775657,2012.836663,
+ -0.000006,1,-0.000005,-33.136629,-1575.775657,2012.836663,
+ -0.000006,1,-0.000005,-33.343912,-1575.775422,2057.257517,
+ -0.000006,1,-0.000005,-22.365555,-1575.775301,2068.338812,
+ -0.000006,1,-0.000005,-33.136629,-1575.775657,2012.836663,
+ -0.000006,1,-0.000005,-22.365555,-1575.775301,2068.338812,
+ -0.000006,1,-0.000005,-22.055334,-1575.775652,2001.858305,
+ -0.000006,1,-0.000005,-22.055334,-1575.775652,2001.858305,
+ -0.000006,1,-0.000005,-22.365555,-1575.775301,2068.338812,
+ -0.000006,1,-0.000005,-7.982247,-1575.775188,2074.375358,
+ -0.000006,1,-0.000005,-22.055334,-1575.775652,2001.858305,
+ -0.000006,1,-0.000005,-7.982247,-1575.775188,2074.375358,
+ -0.000006,1,-0.000005,-7.616317,-1575.775602,1995.956254,
+ -0.000006,1,-0.000005,-7.616317,-1575.775602,1995.956254,
+ -0.000006,1,-0.000005,-7.982247,-1575.775188,2074.375358,
+ -0.000006,1,-0.000005,7.616282,-1575.7751,2074.448146,
+ -0.000006,1,-0.000005,-7.616317,-1575.775602,1995.956254,
+ -0.000006,1,-0.000005,7.616282,-1575.7751,2074.448146,
+ -0.000006,1,-0.000005,7.982213,-1575.775514,1996.029042,
+ -0.000006,1,-0.000005,7.982213,-1575.775514,1996.029042,
+ -0.000006,1,-0.000005,7.616282,-1575.7751,2074.448146,
+ -0.000006,1,-0.000005,22.055299,-1575.77505,2068.546095,
+ -0.000006,1,-0.000005,7.982213,-1575.775514,1996.029042,
+ -0.000006,1,-0.000005,22.055299,-1575.77505,2068.546095,
+ -0.000006,1,-0.000005,22.36552,-1575.775401,2002.065588,
+ -0.000006,1,-0.000005,22.36552,-1575.775401,2002.065588,
+ -0.000006,1,-0.000005,22.055299,-1575.77505,2068.546095,
+ -0.000006,1,-0.000005,33.136594,-1575.775046,2057.567737,
+ -0.000006,1,-0.000005,22.36552,-1575.775401,2002.065588,
+ -0.000006,1,-0.000005,33.136594,-1575.775046,2057.567737,
+ -0.000006,1,-0.000005,33.343877,-1575.77528,2013.146883,
+ -0.000006,1,-0.000005,33.343877,-1575.77528,2013.146883,
+ -0.000006,1,-0.000005,33.136594,-1575.775046,2057.567737,
+ -0.000006,1,-0.000005,39.173141,-1575.775088,2043.18443,
+ -0.000006,1,-0.000005,33.343877,-1575.77528,2013.146883,
+ -0.000006,1,-0.000005,39.173141,-1575.775088,2043.18443,
+ -0.000006,1,-0.000005,39.245929,-1575.77517,2027.5859,
+ 0.605656,0.000008,0.795727,22.055299,-1575.77505,2068.546095,
+ 0.79004,0.000008,0.613055,33.136928,-1635.024249,2057.568052,
+ 0.864064,0.000008,0.503381,33.136594,-1575.775046,2057.567737,
+ 0.79004,0.000008,0.613055,33.136928,-1635.024249,2057.568052,
+ 0.605656,0.000008,0.795727,22.055299,-1575.77505,2068.546095,
+ 0.495296,0.000007,0.868724,22.055633,-1635.024253,2068.546409,
+ -0.868724,0.000002,0.495296,-33.345214,-1175.364654,2057.256289,
+ -0.96693,0.000004,0.255041,-39.234567,1078.145374,2042.829243,
+ -0.992138,0.000005,0.125147,-39.247265,-1175.364544,2042.817272,
+ -0.96693,0.000004,0.255041,-39.234567,1078.145374,2042.829243,
+ -0.868724,0.000002,0.495296,-33.345214,-1175.364654,2057.256289,
+ -0.795727,0.000001,0.605656,-33.332516,1078.145264,2057.26826,
+ 0.503381,0.000002,-0.864064,22.364218,-1175.364675,2002.064361,
+ 0.264054,0.000004,-0.964508,7.993609,1078.145357,1996.039785,
+ 0.613055,0.000001,-0.79004,22.376916,1078.145244,2002.076332,
+ 0.264054,0.000004,-0.964508,7.993609,1078.145357,1996.039785,
+ 0.503381,0.000002,-0.864064,22.364218,-1175.364675,2002.064361,
+ 0.101709,0.000005,-0.994814,7.980911,-1175.364562,1996.027815,
+ 0.868724,-0.000002,-0.495296,33.355273,1078.145123,2013.157627,
+ 0.96693,-0.000004,-0.255041,39.244627,-1175.364906,2027.584673,
+ 0.795727,-0.000001,-0.605656,33.342575,-1175.364796,2013.145656,
+ 0.96693,-0.000004,-0.255041,39.244627,-1175.364906,2027.584673,
+ 0.868724,-0.000002,-0.495296,33.355273,1078.145123,2013.157627,
+ 0.992138,-0.000005,-0.125147,39.257325,1078.145013,2027.596644,
+ -0.684425,-0.659287,0.311293,-94.156911,-1491.103352,2102.87773,
+ -0.688119,-0.66201,0.297042,-112.887948,-1491.103676,2061.693954,
+ -0.670858,-0.621461,0.404642,-33.343912,-1575.775422,2057.257517,
+ -0.142868,-0.000004,0.989742,-14.979477,1087.681226,2105.695818,
+ 0.11666,-0.000006,0.993172,13.134182,1076.228421,2106.067344,
+ 0.246765,-0.000007,0.969075,13.134247,1087.681066,2106.067405,
+ 0.11666,-0.000006,0.993172,13.134182,1076.228421,2106.067344,
+ -0.142868,-0.000004,0.989742,-14.979477,1087.681226,2105.695818,
+ -0.272291,-0.000004,0.962215,-14.979542,1076.228581,2105.695757,
+ 0.255041,-0.000007,0.96693,7.627679,1078.144942,2074.45889,
+ 0.518094,-0.000007,0.855324,22.062392,314.38466,2068.552781,
+ 0.605656,-0.000008,0.795727,22.066696,1078.144892,2068.556838,
+ 0.518094,-0.000007,0.855324,22.062392,314.38466,2068.552781,
+ 0.255041,-0.000007,0.96693,7.627679,1078.144942,2074.45889,
+ 0.190512,-0.000006,0.981685,7.61498,-1175.364977,2074.446919,
+ 0.518094,-0.000007,0.855324,22.062392,314.38466,2068.552781,
+ 0.190512,-0.000006,0.981685,7.61498,-1175.364977,2074.446919,
+ 0.551684,-0.000008,0.834053,22.053997,-1175.365027,2068.544867,
+ -0.188244,-0.621459,0.760495,-7.982247,-1575.775188,2074.375358,
+ 0.157159,-0.595592,0.787764,7.616282,-1575.7751,2074.448146,
+ 0.011128,-0.512209,0.858789,-16.239951,-1479.423837,2132.224265,
+ 0.514086,-0.567226,0.643405,22.055299,-1575.77505,2068.546095,
+ 0.679262,-0.618094,0.395681,33.136594,-1575.775046,2057.567737,
+ 0.616202,-0.509565,0.600532,83.421946,-1479.423514,2087.334581,
+ -0.685212,0,0.728344,-80.08971,-1271.715667,2092.322594,
+ -0.685212,0,0.728344,-52.132526,-1479.424112,2118.624167,
+ -0.685212,0,0.728344,-52.133828,-1271.715965,2118.62294,
+ -0.685212,0,0.728344,-52.132526,-1479.424112,2118.624167,
+ -0.685212,0,0.728344,-80.08971,-1271.715667,2092.322594,
+ -0.685212,0,0.728344,-80.088408,-1479.424409,2092.323821,
+ -0.799934,-0.000001,0.600088,-67.675548,-1491.104063,1941.045307,
+ -0.799934,-0.000001,0.600088,-57.123068,-1271.715068,1955.112585,
+ -0.799935,-0,0.600087,-67.67685,-1260.036772,1941.044079,
+ -0.799934,-0.000001,0.600088,-57.123068,-1271.715068,1955.112585,
+ -0.799934,-0.000001,0.600088,-67.675548,-1491.104063,1941.045307,
+ -0.799934,-0.000001,0.600088,-57.121766,-1479.425008,1955.113813,
+ -0.613055,-0.000001,0.79004,-22.366857,-1175.364775,2068.337584,
+ -0.795727,0.000001,0.605656,-33.332516,1078.145264,2057.26826,
+ -0.868724,0.000002,0.495296,-33.345214,-1175.364654,2057.256289,
+ -0.795727,0.000001,0.605656,-33.332516,1078.145264,2057.26826,
+ -0.613055,-0.000001,0.79004,-22.366857,-1175.364775,2068.337584,
+ -0.503381,-0.000002,0.864064,-22.354159,1078.145144,2068.349555,
+ 0.605656,-0.000008,0.795727,22.066696,1078.144892,2068.556838,
+ 0.805975,-0.000008,0.59195,33.135292,-1175.365031,2057.56651,
+ 0.828868,-0.000008,0.559444,33.147991,1078.144888,2057.578481,
+ 0.805975,-0.000008,0.59195,33.135292,-1175.365031,2057.56651,
+ 0.605656,-0.000008,0.795727,22.066696,1078.144892,2068.556838,
+ 0.518094,-0.000007,0.855324,22.062392,314.38466,2068.552781,
+ 0.059136,-0.998215,0.008341,-70.471455,1076.229348,2020.222024,
+ 0.058581,-0.998221,-0.011105,-39.234567,1078.145374,2042.829243,
+ 0.058617,-0.998221,-0.010888,-70.843043,1076.2292,2048.335748,
+ 0.058581,-0.998221,-0.011105,-39.234567,1078.145374,2042.829243,
+ 0.059136,-0.998215,0.008341,-70.471455,1076.229348,2020.222024,
+ 0.057675,-0.998208,0.015947,-39.161779,1078.145457,2027.230714,
+ -0.036914,-0.998211,0.047029,40.833771,1076.228956,1975.832068,
+ -0.047585,-0.998218,0.036011,33.355273,1078.145123,2013.157627,
+ -0.03018,-0.998218,0.051478,22.376916,1078.145244,2002.076332,
+ -0.047585,-0.998218,0.036011,33.355273,1078.145123,2013.157627,
+ -0.036914,-0.998211,0.047029,40.833771,1076.228956,1975.832068,
+ -0.052104,-0.998211,0.029324,60.450424,1076.228739,1995.974225,
+ 0.655297,-0.595759,-0.464388,33.343877,-1575.77528,2013.146883,
+ 0.561851,-0.416707,-0.714617,22.36552,-1575.775401,2002.065588,
+ 0.600534,-0.509567,-0.616198,52.13236,-1479.42441,1951.780109,
+ -0.818467,-0.56723,-0.09144,-39.173175,-1575.775614,2027.21997,
+ -0.69893,-0.659132,-0.277564,-114.432821,-1491.103925,2016.477049,
+ -0.67926,-0.618099,-0.395677,-33.136629,-1575.775657,2012.836663,
+ 0.59883,-0.000008,0.800876,39.250141,1087.680974,2095.65205,
+ 0.824055,-0.000008,0.566511,59.392233,1076.228319,2076.035337,
+ 0.824055,-0.000008,0.566511,59.392298,1087.680965,2076.035397,
+ 0.824055,-0.000008,0.566511,59.392233,1076.228319,2076.035337,
+ 0.59883,-0.000008,0.800876,39.250141,1087.680974,2095.65205,
+ 0.48785,-0.000007,0.872928,39.250077,1076.228329,2095.65199,
+ -0.514083,-0.567231,-0.643403,-22.055334,-1575.775652,2001.858305,
+ -0.6162,-0.509569,-0.600531,-83.422112,-1479.425008,1983.069695,
+ -0.625236,-0.512922,-0.58821,-57.121766,-1479.425008,1955.113813,
+ 0.858789,-0.512209,-0.011122,97.022044,-1479.423628,2051.442006,
+ 0.789465,-0.595053,0.150522,39.173141,-1575.775088,2043.18443,
+ 0.81446,-0.570986,-0.103102,39.245929,-1575.77517,2027.5859,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-21.078506,-1635.024494,2068.87915,
+ 0.000006,-1,0.000005,-33.343578,-1635.024625,2057.257832,
+ 0.000006,-1,0.000005,7.982547,-1635.024718,1996.029357,
+ 0.000006,-1,0.000005,0.000317,-1635.024555,2035.202515,
+ 0.000006,-1,0.000005,-7.615983,-1635.024806,1995.956569,
+ -0.514083,0.56723,-0.643404,-22.056636,-1175.364424,2001.857078,
+ -0.625236,0.512922,-0.58821,-57.123068,-1271.715068,1955.112585,
+ -0.6162,0.509569,-0.600531,-83.423414,-1271.715068,1983.068468,
+ -0.999535,-0.000006,0.030499,-97.022211,-1479.424894,2018.96227,
+ -0.999535,-0.000006,0.030499,-95.852871,-1271.715393,2057.325989,
+ -0.999535,-0.000006,0.030499,-97.023513,-1271.715182,2018.961042,
+ -0.999535,-0.000006,0.030499,-95.852871,-1271.715393,2057.325989,
+ -0.999535,-0.000006,0.030499,-97.022211,-1479.424894,2018.96227,
+ -0.999535,-0.000006,0.030499,-95.851569,-1479.424684,2057.327217,
+ 0.000006,1,0.000005,0.062597,1105.461443,2035.212994,
+ -0.132844,0.962206,-0.237725,-19.556757,1105.461714,2004.993466,
+ -0.213632,0.962233,-0.168727,-29.627835,1105.461718,2014.801793,
+ -0.255041,-0.000007,-0.96693,-7.615983,-1635.024806,1995.956569,
+ -0.495296,-0.000007,-0.868724,-22.055334,-1575.775652,2001.858305,
+ -0.125147,-0.000006,-0.992138,-7.616317,-1575.775602,1995.956254,
+ -0.495296,-0.000007,-0.868724,-22.055334,-1575.775652,2001.858305,
+ -0.255041,-0.000007,-0.96693,-7.615983,-1635.024806,1995.956569,
+ -0.605656,-0.000008,-0.795727,-22.055,-1635.024856,2001.85862,
+ -0.68812,0.662011,0.297038,-112.88925,-1260.036386,2061.692727,
+ -0.655293,0.595761,0.464393,-33.345214,-1175.364654,2057.256289,
+ -0.790675,0.595591,0.141793,-39.247265,-1175.364544,2042.817272,
+ 0.799933,0.000001,-0.600089,67.674211,-1260.035009,2129.357866,
+ 0.799933,0.000001,-0.600089,57.1216,-1479.423514,2115.290463,
+ 0.799933,0,-0.600089,57.120298,-1271.716562,2115.289236,
+ 0.799933,0.000001,-0.600089,57.1216,-1479.423514,2115.290463,
+ 0.799933,0.000001,-0.600089,67.674211,-1260.035009,2129.357866,
+ 0.799934,0.000001,-0.600088,67.675513,-1491.1023,2129.359093,
+ 0.134993,-0.595761,-0.791736,7.982213,-1575.775514,1996.029042,
+ 0.263853,-0.659287,-0.704075,18.725134,-1491.103683,1920.769396,
+ 0.276542,-0.66201,-0.696611,61.091305,-1491.10336,1936.64588,
+ 0.625238,-0.512917,0.588212,57.1216,-1479.423514,2115.290463,
+ 0.514086,-0.567226,0.643405,22.055299,-1575.77505,2068.546095,
+ 0.616202,-0.509565,0.600532,83.421946,-1479.423514,2087.334581,
+ 0.248284,0.000004,0.968687,95.850101,-1271.716238,2013.075832,
+ 0.248282,0.000002,0.968688,112.886611,-1260.035395,2008.709218,
+ 0.248285,-0.000002,0.968687,39.244627,-1175.364906,2027.584673,
+ -0.5094,0.000001,0.86053,83.420644,-1271.716562,2087.333353,
+ -0.5094,0.000001,0.86053,98.555001,-1260.035011,2096.292295,
+ -0.509399,-0.000001,0.86053,33.135292,-1175.365031,2057.56651,
+ 0.248285,0.000002,0.968687,39.245929,-1575.77517,2027.5859,
+ 0.248284,0.000005,0.968687,112.887913,-1491.102686,2008.710446,
+ 0.248287,0.000005,0.968687,95.851403,-1479.423838,2013.077059,
+ -0.509399,0.000001,0.86053,33.136594,-1575.775046,2057.567737,
+ -0.5094,0.000001,0.86053,98.556303,-1491.102301,2096.293522,
+ -0.509399,0.000001,0.86053,83.421946,-1479.423514,2087.334581,
+ 0.993172,-0.000005,-0.11666,70.865843,1087.681187,2022.09018,
+ 0.989742,-0.000006,0.142868,70.494191,1076.228394,2050.203843,
+ 0.969075,-0.000004,-0.246765,70.865779,1076.228541,2022.090119,
+ 0.989742,-0.000006,0.142868,70.494191,1076.228394,2050.203843,
+ 0.993172,-0.000005,-0.11666,70.865843,1087.681187,2022.09018,
+ 0.962215,-0.000007,0.272291,70.494256,1087.68104,2050.203904,
+ -0.514083,-0.567231,-0.643403,-22.055334,-1575.775652,2001.858305,
+ -0.297947,-0.659132,-0.690487,-67.675548,-1491.104063,1941.045307,
+ -0.20052,-0.618098,-0.760096,-7.616317,-1575.775602,1995.956254,
+ 0.655297,-0.595759,-0.464388,33.343877,-1575.77528,2013.146883,
+ 0.684431,-0.659285,-0.311285,94.156876,-1491.10301,1967.52667,
+ 0.688124,-0.662008,-0.297034,112.887913,-1491.102686,2008.710446,
+ -0.955293,0.000007,-0.29566,-39.174477,-1175.364462,2027.218743,
+ -0.828868,0.000008,-0.559444,-33.129537,314.385267,2012.843349,
+ -0.828868,0.000008,-0.559444,-33.137931,-1175.36442,2012.835435,
+ -0.828868,0.000008,-0.559444,-33.129537,314.385267,2012.843349,
+ -0.955293,0.000007,-0.29566,-39.174477,-1175.364462,2027.218743,
+ -0.828868,0.000008,-0.559444,-33.125233,1078.145499,2012.847406,
+ -0.828868,0.000008,-0.559444,-33.125233,1078.145499,2012.847406,
+ -0.955293,0.000007,-0.29566,-39.174477,-1175.364462,2027.218743,
+ -0.990927,0.000006,-0.134401,-39.161779,1078.145457,2027.230714,
+ -0.20052,-0.618098,-0.760096,-7.616317,-1575.775602,1995.956254,
+ -0.297947,-0.659132,-0.690487,-67.675548,-1491.104063,1941.045307,
+ -0.310184,-0.662311,-0.682004,-26.491771,-1491.10393,1922.314269,
+ 0.255041,0.000007,0.96693,7.616282,-1575.7751,2074.448146,
+ 0.495296,0.000007,0.868724,22.055633,-1635.024253,2068.546409,
+ 0.605656,0.000008,0.795727,22.055299,-1575.77505,2068.546095,
+ 0.495296,0.000007,0.868724,22.055633,-1635.024253,2068.546409,
+ 0.255041,0.000007,0.96693,7.616282,-1575.7751,2074.448146,
+ 0.125147,0.000006,0.992138,7.616616,-1635.024303,2074.448461,
+ -0.96693,-0.000004,0.255041,-39.24563,-1635.024735,2042.818814,
+ -0.868724,-0.000002,0.495296,-33.343912,-1575.775422,2057.257517,
+ -0.992138,-0.000005,0.125147,-39.245963,-1575.775532,2042.8185,
+ -0.868724,-0.000002,0.495296,-33.343912,-1575.775422,2057.257517,
+ -0.96693,-0.000004,0.255041,-39.24563,-1635.024735,2042.818814,
+ -0.789247,-0.002827,0.614069,-33.343578,-1635.024625,2057.257832,
+ -0.818468,0.567229,-0.091441,-39.174477,-1175.364462,2027.218743,
+ -0.679261,0.618097,-0.395679,-33.137931,-1175.36442,2012.835435,
+ -0.698931,0.65913,-0.277566,-114.434123,-1260.036635,2016.475821,
+ -0.684428,0.659289,0.311283,-94.158213,-1260.036061,2102.876503,
+ -0.655293,0.595761,0.464393,-33.345214,-1175.364654,2057.256289,
+ -0.68812,0.662011,0.297038,-112.88925,-1260.036386,2061.692727,
+ 0.030499,0.000006,0.999535,-16.241253,-1271.716239,2132.223038,
+ 0.030499,0.000006,0.999535,22.124996,-1479.423627,2131.053624,
+ 0.030499,0.000006,0.999535,22.123694,-1271.716449,2131.052397,
+ 0.030499,0.000006,0.999535,22.124996,-1479.423627,2131.053624,
+ 0.030499,0.000006,0.999535,-16.241253,-1271.716239,2132.223038,
+ 0.030499,0.000006,0.999535,-16.239951,-1479.423837,2132.224265,
+ -0.605656,-0.000008,-0.795727,-22.055,-1635.024856,2001.85862,
+ -0.79004,-0.000008,-0.613055,-33.136629,-1575.775657,2012.836663,
+ -0.495296,-0.000007,-0.868724,-22.055334,-1575.775652,2001.858305,
+ -0.79004,-0.000008,-0.613055,-33.136629,-1575.775657,2012.836663,
+ -0.605656,-0.000008,-0.795727,-22.055,-1635.024856,2001.85862,
+ -0.864064,-0.000008,-0.503381,-33.136295,-1635.02486,2012.836977,
+ 0.999535,0.000006,-0.030499,97.020742,-1271.716448,2051.440779,
+ 0.999535,0.000006,-0.030499,95.851403,-1479.423838,2013.077059,
+ 0.999535,0.000006,-0.030499,95.850101,-1271.716238,2013.075832,
+ 0.999535,0.000006,-0.030499,95.851403,-1479.423838,2013.077059,
+ 0.999535,0.000006,-0.030499,97.020742,-1271.716448,2051.440779,
+ 0.999535,0.000006,-0.030499,97.022044,-1479.423628,2051.442006,
+ -0.69893,-0.659132,-0.277564,-114.432821,-1491.103925,2016.477049,
+ -0.701584,-0.662311,-0.262913,-98.556338,-1491.104061,1974.110878,
+ -0.67926,-0.618099,-0.395677,-33.136629,-1575.775657,2012.836663,
+ 0.826538,0.557702,-0.076187,39.244627,-1175.364906,2027.584673,
+ 0.688116,0.662016,-0.297036,112.886611,-1260.035395,2008.709218,
+ 0.670858,0.621465,-0.404636,33.342575,-1175.364796,2013.145656,
+ 0.509398,-0.000001,-0.860531,-83.423414,-1271.715068,1983.068468,
+ 0.509398,-0.000001,-0.860531,-98.55764,-1260.03677,1974.10965,
+ 0.509398,0.000001,-0.860531,-33.137931,-1175.36442,2012.835435,
+ -0.799934,0,0.600088,-22.056636,-1175.364424,2001.857078,
+ -0.799935,-0,0.600087,-67.67685,-1260.036772,1941.044079,
+ -0.799934,-0.000001,0.600088,-57.123068,-1271.715068,1955.112585,
+ 0.142868,0.000004,-0.989742,15.002278,1076.229161,1964.73011,
+ -0.11666,0.000006,-0.993172,-13.111382,1087.681967,1964.358584,
+ 0.272291,0.000004,-0.962215,15.002342,1087.681806,1964.730171,
+ -0.11666,0.000006,-0.993172,-13.111382,1087.681967,1964.358584,
+ 0.142868,0.000004,-0.989742,15.002278,1076.229161,1964.73011,
+ -0.246765,0.000007,-0.969075,-13.111446,1076.229321,1964.358523,
+ -0.992138,0.000005,0.125147,-39.247265,-1175.364544,2042.817272,
+ -0.990927,0.000006,-0.134401,-39.161779,1078.145457,2027.230714,
+ -0.955293,0.000007,-0.29566,-39.174477,-1175.364462,2027.218743,
+ -0.990927,0.000006,-0.134401,-39.161779,1078.145457,2027.230714,
+ -0.992138,0.000005,0.125147,-39.247265,-1175.364544,2042.817272,
+ -0.96693,0.000004,0.255041,-39.234567,1078.145374,2042.829243,
+ -0.6162,0.509569,-0.600531,-83.423414,-1271.715068,1983.068468,
+ -0.679261,0.618097,-0.395679,-33.137931,-1175.36442,2012.835435,
+ -0.514083,0.56723,-0.643404,-22.056636,-1175.364424,2001.857078,
+ 0.134993,-0.595761,-0.791736,7.982213,-1575.775514,1996.029042,
+ -0.011077,-0.509569,-0.860359,-22.125162,-1479.424895,1939.350652,
+ -0.026179,-0.512921,-0.858036,16.239785,-1479.424685,1938.180011,
+ -0.20052,-0.618098,-0.760096,-7.616317,-1575.775602,1995.956254,
+ -0.011077,-0.509569,-0.860359,-22.125162,-1479.424895,1939.350652,
+ 0.134993,-0.595761,-0.791736,7.982213,-1575.775514,1996.029042,
+ 0.936408,0.000007,0.350914,98.555001,-1260.035011,2096.292295,
+ 0.936408,0.000007,0.350914,114.432787,-1491.102437,2053.927351,
+ 0.936408,0.000007,0.350914,114.431485,-1260.035146,2053.926124,
+ 0.936408,0.000007,0.350914,114.432787,-1491.102437,2053.927351,
+ 0.936408,0.000007,0.350914,98.555001,-1260.035011,2096.292295,
+ 0.936408,0.000007,0.350914,98.556303,-1491.102301,2096.293522,
+ -0.728344,-0.000009,-0.685212,-57.121766,-1479.425008,1955.113813,
+ -0.728344,-0.000009,-0.685212,-83.423414,-1271.715068,1983.068468,
+ -0.728344,-0.000009,-0.685212,-57.123068,-1271.715068,1955.112585,
+ -0.728344,-0.000009,-0.685212,-83.423414,-1271.715068,1983.068468,
+ -0.728344,-0.000009,-0.685212,-57.121766,-1479.425008,1955.113813,
+ -0.728344,-0.000009,-0.685212,-83.422112,-1479.425008,1983.069695,
+ -0.030499,-0.000006,-0.999535,16.239785,-1479.424685,1938.180011,
+ -0.030499,-0.000006,-0.999535,-22.126464,-1271.715181,1939.349424,
+ -0.030499,-0.000006,-0.999535,16.238483,-1271.715391,1938.178783,
+ -0.030499,-0.000006,-0.999535,-22.126464,-1271.715181,1939.349424,
+ -0.030499,-0.000006,-0.999535,16.239785,-1479.424685,1938.180011,
+ -0.030499,-0.000006,-0.999535,-22.125162,-1479.424895,1939.350652,
+ -0.502999,-0.570987,0.648819,-22.365555,-1575.775301,2068.338812,
+ -0.589681,-0.509305,0.626805,-52.132526,-1479.424112,2118.624167,
+ -0.599385,-0.512211,0.615124,-80.088408,-1479.424409,2092.323821,
+ 0.858789,-0.512209,-0.011122,97.022044,-1479.423628,2051.442006,
+ 0.81446,-0.570986,-0.103102,39.245929,-1575.77517,2027.5859,
+ 0.860187,-0.509303,-0.026244,95.851403,-1479.423838,2013.077059,
+ 0.276537,0.662012,-0.696611,61.090003,-1260.03607,1936.644652,
+ 0.188248,0.621463,-0.760491,7.980911,-1175.364562,1996.027815,
+ 0.503006,0.570988,-0.648812,22.364218,-1175.364675,2002.064361,
+ 0.81446,-0.570986,-0.103102,39.245929,-1575.77517,2027.5859,
+ 0.655297,-0.595759,-0.464388,33.343877,-1575.77528,2013.146883,
+ 0.688124,-0.662008,-0.297034,112.887913,-1491.102686,2008.710446,
+ -0.67926,-0.618099,-0.395677,-33.136629,-1575.775657,2012.836663,
+ -0.6162,-0.509569,-0.600531,-83.422112,-1479.425008,1983.069695,
+ -0.514083,-0.567231,-0.643403,-22.055334,-1575.775652,2001.858305,
+ 0.860528,0.000004,0.509402,52.131057,-1271.715666,1951.778881,
+ 0.860528,0.000006,0.509402,61.091305,-1491.10336,1936.64588,
+ 0.860527,0.000002,0.509404,61.090003,-1260.03607,1936.644652,
+ 0.860528,0.000006,0.509402,61.091305,-1491.10336,1936.64588,
+ 0.860528,0.000004,0.509402,52.131057,-1271.715666,1951.778881,
+ 0.86053,0.000006,0.5094,52.13236,-1479.42441,1951.780109,
+ 0.350914,-0.000003,-0.936408,61.091305,-1491.10336,1936.64588,
+ 0.350914,-0.000003,-0.936408,18.723832,-1260.036393,1920.768168,
+ 0.350914,-0.000003,-0.936408,61.090003,-1260.03607,1936.644652,
+ 0.350914,-0.000003,-0.936408,18.723832,-1260.036393,1920.768168,
+ 0.350914,-0.000003,-0.936408,61.091305,-1491.10336,1936.64588,
+ 0.350914,-0.000003,-0.936408,18.725134,-1491.103683,1920.769396,
+ 0.600091,0.000006,0.799931,-94.156911,-1491.103352,2102.87773,
+ 0.600091,0.000004,0.799931,-80.08971,-1271.715667,2092.322594,
+ 0.600093,0.000002,0.79993,-94.158213,-1260.036061,2102.876503,
+ 0.600091,0.000004,0.799931,-80.08971,-1271.715667,2092.322594,
+ 0.600091,0.000006,0.799931,-94.156911,-1491.103352,2102.87773,
+ 0.600089,0.000006,0.799933,-80.088408,-1479.424409,2092.323821,
+ 0.248284,0.000004,0.968687,95.850101,-1271.716238,2013.075832,
+ 0.248284,0.000005,0.968687,112.887913,-1491.102686,2008.710446,
+ 0.248282,0.000002,0.968688,112.886611,-1260.035395,2008.709218,
+ 0.248284,0.000005,0.968687,112.887913,-1491.102686,2008.710446,
+ 0.248284,0.000004,0.968687,95.850101,-1271.716238,2013.075832,
+ 0.248287,0.000005,0.968687,95.851403,-1479.423838,2013.077059,
+ -0.860359,-0.509569,0.011083,-95.851569,-1479.424684,2057.327217,
+ -0.858036,-0.512921,0.026184,-97.022211,-1479.424894,2018.96227,
+ -0.818467,-0.56723,-0.09144,-39.173175,-1575.775614,2027.21997,
+ 0.96693,0.000004,-0.255041,39.245929,-1575.77517,2027.5859,
+ 0.829674,-0.002123,-0.558245,33.344211,-1635.024484,2013.147198,
+ 0.834053,0.000002,-0.551684,33.343877,-1575.77528,2013.146883,
+ 0.829674,-0.002123,-0.558245,33.344211,-1635.024484,2013.147198,
+ 0.96693,0.000004,-0.255041,39.245929,-1575.77517,2027.5859,
+ 0.992138,0.000005,-0.125147,39.246263,-1635.024374,2027.586215,
+ 0.619788,0.000001,-0.784769,40.833836,1087.681602,1975.832129,
+ 0.800876,-0.000001,-0.59883,60.450424,1076.228739,1995.974225,
+ 0.510751,0.000002,-0.859729,40.833771,1076.228956,1975.832068,
+ 0.800876,-0.000001,-0.59883,60.450424,1076.228739,1995.974225,
+ 0.619788,0.000001,-0.784769,40.833836,1087.681602,1975.832129,
+ 0.872928,-0.000002,-0.48785,60.450489,1087.681384,1995.974286,
+ -0.910274,-0.000003,0.414007,-112.887948,-1491.103676,2061.693954,
+ -0.910274,-0.000003,0.414007,-94.158213,-1260.036061,2102.876503,
+ -0.910274,-0.000003,0.414007,-112.88925,-1260.036386,2061.692727,
+ -0.910274,-0.000003,0.414007,-94.158213,-1260.036061,2102.876503,
+ -0.910274,-0.000003,0.414007,-112.887948,-1491.103676,2061.693954,
+ -0.910274,-0.000003,0.414007,-94.156911,-1491.103352,2102.87773
+};
+static const struct gllist robot_crank_full_frame = { GL_N3F_V3F, GL_TRIANGLES, 1164, robot_crank_full_data, 0 };
+const struct gllist *robot_crank_full = &robot_crank_full_frame;
+
+static const float robot_gearbox_half_data[] = {
+ 0.412791,0,-0.910826,-16.408995,-70.07352,1719.887419,
+ 0.527987,0,-0.849253,-23.822213,-116.7892,1715.924987,
+ 0.582553,0,-0.812793,-23.822213,-70.07352,1715.924987,
+ 0.527987,0,-0.849253,-23.822213,-116.7892,1715.924987,
+ 0.412791,0,-0.910826,-16.408995,-70.07352,1719.887419,
+ 0.352161,0,-0.93594,-16.408995,-116.7892,1719.887419,
+ 0,-1,0,712.934349,-116.7892,1614.073004,
+ 0,-1,0,-758.547422,-116.7892,1522.846858,
+ 0,-1,0,758.547422,-116.7892,1522.846858,
+ 0,-1,0,-758.547422,-116.7892,1522.846858,
+ 0,-1,0,712.934349,-116.7892,1614.073004,
+ 0,-1,0,-712.590311,-116.7892,1614.76108,
+ 0,-1,0,-712.590311,-116.7892,1614.76108,
+ 0,-1,0,712.934349,-116.7892,1614.073004,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,-712.590311,-116.7892,1614.76108,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,8.365227,-116.7892,1638.217273,
+ 0,-1,0,8.365227,-116.7892,1638.217273,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,16.409035,-116.7892,1640.657321,
+ 0,-1,0,16.409035,-116.7892,1640.657321,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,23.822253,-116.7892,1644.619753,
+ 0,-1,0,23.822253,-116.7892,1644.619753,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,30.319996,-116.7892,1649.952295,
+ 0,-1,0,30.319996,-116.7892,1649.952295,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,35.652559,-116.7892,1656.450021,
+ 0,-1,0,35.652559,-116.7892,1656.450021,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,39.615015,-116.7892,1663.863226,
+ 0,-1,0,39.615015,-116.7892,1663.863226,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,42.05509,-116.7892,1671.907025,
+ 0,-1,0,42.05509,-116.7892,1671.907025,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,42.879011,-116.7892,1680.2723,
+ 0,-1,0,42.879011,-116.7892,1680.2723,
+ 0,-1,0,93.432274,-116.7892,1614.761079,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,8.365227,-116.7892,1638.217273,
+ 0,-1,0,-0.00005,-116.7892,1637.393379,
+ 0,-1,0,42.879011,-116.7892,1680.2723,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,42.055117,-116.7892,1688.637578,
+ 0,-1,0,42.055117,-116.7892,1688.637578,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,39.615069,-116.7892,1696.681385,
+ 0,-1,0,39.615069,-116.7892,1696.681385,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,35.652637,-116.7892,1704.094603,
+ 0,-1,0,35.652637,-116.7892,1704.094603,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,30.320095,-116.7892,1710.592346,
+ 0,-1,0,30.320095,-116.7892,1710.592346,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,23.822369,-116.7892,1715.924909,
+ 0,-1,0,23.822369,-116.7892,1715.924909,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,16.409164,-116.7892,1719.887366,
+ 0,-1,0,16.409164,-116.7892,1719.887366,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,42.879011,-116.7892,2035.202107,
+ 0,-1,0,16.409164,-116.7892,1719.887366,
+ 0,-1,0,42.879011,-116.7892,2035.202107,
+ 0,-1,0,42.055094,-116.7892,2026.836831,
+ 0,-1,0,16.409164,-116.7892,1719.887366,
+ 0,-1,0,42.055094,-116.7892,2026.836831,
+ 0,-1,0,8.365365,-116.7892,1722.32744,
+ 0,-1,0,8.365365,-116.7892,1722.32744,
+ 0,-1,0,42.055094,-116.7892,2026.836831,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,42.055094,-116.7892,2026.836831,
+ 0,-1,0,39.615024,-116.7892,2018.793031,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,39.615024,-116.7892,2018.793031,
+ 0,-1,0,35.652572,-116.7892,2011.379823,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,35.652572,-116.7892,2011.379823,
+ 0,-1,0,30.320012,-116.7892,2004.882095,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,30.320012,-116.7892,2004.882095,
+ 0,-1,0,23.822272,-116.7892,1999.549549,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,23.822272,-116.7892,1999.549549,
+ 0,-1,0,16.409056,-116.7892,1995.587113,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,16.409056,-116.7892,1995.587113,
+ 0,-1,0,8.36525,-116.7892,1993.147061,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,8.36525,-116.7892,1993.147061,
+ 0,-1,0,-0.000027,-116.7892,1992.323162,
+ 0,-1,0,42.879011,-116.7892,2035.202107,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,42.055112,-116.7892,2043.567384,
+ 0,-1,0,42.055112,-116.7892,2043.567384,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,39.61506,-116.7892,2051.61119,
+ 0,-1,0,39.61506,-116.7892,2051.61119,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,35.652624,-116.7892,2059.024406,
+ 0,-1,0,35.652624,-116.7892,2059.024406,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,30.320078,-116.7892,2065.522146,
+ 0,-1,0,30.320078,-116.7892,2065.522146,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,23.82235,-116.7892,2070.854706,
+ 0,-1,0,23.82235,-116.7892,2070.854706,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,16.409142,-116.7892,2074.817158,
+ 0,-1,0,16.409142,-116.7892,2074.817158,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,8.365342,-116.7892,2077.257228,
+ 0,-1,0,8.365342,-116.7892,2077.257228,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,39.615042,-116.7892,2409.402612,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,39.615042,-116.7892,2409.402612,
+ 0,-1,0,35.652598,-116.7892,2401.9894,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,35.652598,-116.7892,2401.9894,
+ 0,-1,0,30.320045,-116.7892,2395.491666,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,30.320045,-116.7892,2395.491666,
+ 0,-1,0,23.822311,-116.7892,2390.159113,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,23.822311,-116.7892,2390.159113,
+ 0,-1,0,16.409099,-116.7892,2386.196669,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,16.409099,-116.7892,2386.196669,
+ 0,-1,0,8.365296,-116.7892,2383.756608,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,8.365296,-116.7892,2383.756608,
+ 0,-1,0,0.00002,-116.7892,2382.9327,
+ 0,-1,0,39.615042,-116.7892,2409.402612,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,42.055103,-116.7892,2417.446415,
+ 0,-1,0,42.055103,-116.7892,2417.446415,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,42.879011,-116.7892,2425.811691,
+ 0,-1,0,42.879011,-116.7892,2425.811691,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,42.055103,-116.7892,2434.176967,
+ 0,-1,0,42.055103,-116.7892,2434.176967,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,39.615042,-116.7892,2442.220771,
+ 0,-1,0,39.615042,-116.7892,2442.220771,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,35.652598,-116.7892,2449.633982,
+ 0,-1,0,35.652598,-116.7892,2449.633982,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,30.320045,-116.7892,2456.131717,
+ 0,-1,0,30.320045,-116.7892,2456.131717,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,23.822311,-116.7892,2461.464269,
+ 0,-1,0,23.822311,-116.7892,2461.464269,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,16.409099,-116.7892,2465.426714,
+ 0,-1,0,16.409099,-116.7892,2465.426714,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,8.365296,-116.7892,2467.866775,
+ 0,-1,0,8.365296,-116.7892,2467.866775,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0,-1,0,0.00002,-116.7892,2468.690683,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-42.878972,-116.7892,1680.27244,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.878972,-116.7892,1680.27244,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-42.055077,-116.7892,1671.907163,
+ 0,-1,0,-42.055077,-116.7892,1671.907163,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-39.615029,-116.7892,1663.863355,
+ 0,-1,0,-39.615029,-116.7892,1663.863355,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-35.652597,-116.7892,1656.450137,
+ 0,-1,0,-35.652597,-116.7892,1656.450137,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-30.320055,-116.7892,1649.952394,
+ 0,-1,0,-30.320055,-116.7892,1649.952394,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-23.82233,-116.7892,1644.619831,
+ 0,-1,0,-23.82233,-116.7892,1644.619831,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-16.409125,-116.7892,1640.657374,
+ 0,-1,0,-16.409125,-116.7892,1640.657374,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-8.365325,-116.7892,1638.2173,
+ 0,-1,0,-8.365325,-116.7892,1638.2173,
+ 0,-1,0,-93.431364,-116.7892,1614.76108,
+ 0,-1,0,-0.00005,-116.7892,1637.393379,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.878972,-116.7892,1680.27244,
+ 0,-1,0,-42.05505,-116.7892,1688.637715,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.05505,-116.7892,1688.637715,
+ 0,-1,0,-39.614976,-116.7892,1696.681514,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-39.614976,-116.7892,1696.681514,
+ 0,-1,0,-35.65252,-116.7892,1704.09472,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-35.65252,-116.7892,1704.09472,
+ 0,-1,0,-30.319956,-116.7892,1710.592445,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-30.319956,-116.7892,1710.592445,
+ 0,-1,0,-23.822213,-116.7892,1715.924987,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-23.822213,-116.7892,1715.924987,
+ 0,-1,0,-16.408995,-116.7892,1719.887419,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-16.408995,-116.7892,1719.887419,
+ 0,-1,0,-42.878972,-116.7892,2035.2022,
+ 0,-1,0,-42.878972,-116.7892,2035.2022,
+ 0,-1,0,-16.408995,-116.7892,1719.887419,
+ 0,-1,0,-42.055073,-116.7892,2026.836923,
+ 0,-1,0,-42.055073,-116.7892,2026.836923,
+ 0,-1,0,-16.408995,-116.7892,1719.887419,
+ 0,-1,0,-8.365188,-116.7892,1722.327467,
+ 0,-1,0,-42.055073,-116.7892,2026.836923,
+ 0,-1,0,-8.365188,-116.7892,1722.327467,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-42.055073,-116.7892,2026.836923,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-39.615021,-116.7892,2018.793117,
+ 0,-1,0,-39.615021,-116.7892,2018.793117,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-35.652584,-116.7892,2011.379901,
+ 0,-1,0,-35.652584,-116.7892,2011.379901,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-30.320039,-116.7892,2004.882161,
+ 0,-1,0,-30.320039,-116.7892,2004.882161,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-23.82231,-116.7892,1999.549601,
+ 0,-1,0,-23.82231,-116.7892,1999.549601,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-16.409103,-116.7892,1995.587149,
+ 0,-1,0,-16.409103,-116.7892,1995.587149,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-8.365302,-116.7892,1993.147079,
+ 0,-1,0,-8.365302,-116.7892,1993.147079,
+ 0,-1,0,0.00009,-116.7892,1723.151361,
+ 0,-1,0,-0.000027,-116.7892,1992.323162,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.878972,-116.7892,2035.2022,
+ 0,-1,0,-42.055055,-116.7892,2043.567475,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.055055,-116.7892,2043.567475,
+ 0,-1,0,-39.614985,-116.7892,2051.611276,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-39.614985,-116.7892,2051.611276,
+ 0,-1,0,-35.652533,-116.7892,2059.024483,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-35.652533,-116.7892,2059.024483,
+ 0,-1,0,-30.319973,-116.7892,2065.522212,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-30.319973,-116.7892,2065.522212,
+ 0,-1,0,-23.822233,-116.7892,2070.854758,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-23.822233,-116.7892,2070.854758,
+ 0,-1,0,-16.409017,-116.7892,2074.817194,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-16.409017,-116.7892,2074.817194,
+ 0,-1,0,-8.365211,-116.7892,2077.257246,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-8.365211,-116.7892,2077.257246,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,-39.615003,-116.7892,2409.402612,
+ 0,-1,0,-39.615003,-116.7892,2409.402612,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,-35.652558,-116.7892,2401.9894,
+ 0,-1,0,-35.652558,-116.7892,2401.9894,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,-30.320006,-116.7892,2395.491666,
+ 0,-1,0,-30.320006,-116.7892,2395.491666,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,-23.822271,-116.7892,2390.159113,
+ 0,-1,0,-23.822271,-116.7892,2390.159113,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,-16.40906,-116.7892,2386.196669,
+ 0,-1,0,-16.40906,-116.7892,2386.196669,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,-8.365256,-116.7892,2383.756608,
+ 0,-1,0,-8.365256,-116.7892,2383.756608,
+ 0,-1,0,0.000066,-116.7892,2078.081145,
+ 0,-1,0,0.00002,-116.7892,2382.9327,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-39.615003,-116.7892,2409.402612,
+ 0,-1,0,-42.055064,-116.7892,2417.446415,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.055064,-116.7892,2417.446415,
+ 0,-1,0,-42.878972,-116.7892,2425.811691,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.878972,-116.7892,2425.811691,
+ 0,-1,0,-42.055064,-116.7892,2434.176967,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-42.055064,-116.7892,2434.176967,
+ 0,-1,0,-39.615003,-116.7892,2442.220771,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-39.615003,-116.7892,2442.220771,
+ 0,-1,0,-35.652558,-116.7892,2449.633982,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-35.652558,-116.7892,2449.633982,
+ 0,-1,0,-30.320006,-116.7892,2456.131717,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-30.320006,-116.7892,2456.131717,
+ 0,-1,0,-23.822271,-116.7892,2461.464269,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-23.822271,-116.7892,2461.464269,
+ 0,-1,0,-16.40906,-116.7892,2465.426714,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-16.40906,-116.7892,2465.426714,
+ 0,-1,0,-8.365256,-116.7892,2467.866775,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,-8.365256,-116.7892,2467.866775,
+ 0,-1,0,0.00002,-116.7892,2468.690683,
+ 0,-1,0,-93.431364,-116.7892,2549.07468,
+ 0,-1,0,0.00002,-116.7892,2468.690683,
+ 0,-1,0,93.431356,-116.7892,2549.07468,
+ 0.582553,0,-0.812793,-23.822213,-70.07352,1715.924987,
+ 0.707106,0,-0.707108,-30.319956,-116.7892,1710.592445,
+ 0.707106,0,-0.707108,-30.319956,-70.07352,1710.592445,
+ 0.707106,0,-0.707108,-30.319956,-116.7892,1710.592445,
+ 0.582553,0,-0.812793,-23.822213,-70.07352,1715.924987,
+ 0.527987,0,-0.849253,-23.822213,-116.7892,1715.924987,
+ -0.973856,0,-0.227168,-42.055064,-116.7892,2417.446415,
+ -0.935939,0,-0.352162,-39.615003,-741.88772,2409.402612,
+ -0.986659,0,-0.162803,-42.055064,-741.90215,2417.446415,
+ -0.935939,0,-0.352162,-39.615003,-741.88772,2409.402612,
+ -0.973856,0,-0.227168,-42.055064,-116.7892,2417.446415,
+ -0.910825,0,-0.412792,-39.615003,-116.7892,2409.402612,
+ 0,0,1,-39.361125,-835.428664,2408.92764,
+ 0,0,1,39.361165,-741.420677,2408.92764,
+ 0,0,1,-39.361125,-741.886218,2408.92764,
+ 0,0,1,39.361165,-741.420677,2408.92764,
+ 0,0,1,-39.361125,-835.428664,2408.92764,
+ 0,0,1,39.361165,-835.428664,2408.92764,
+ 0.162803,0,-0.986659,8.365296,-116.7892,2383.756608,
+ 0.032813,0,-0.999462,0.00002,-858.151437,2382.9327,
+ -0.032813,0,-0.999462,0.00002,-116.7892,2382.9327,
+ 0.032813,0,-0.999462,0.00002,-858.151437,2382.9327,
+ 0.162803,0,-0.986659,8.365296,-116.7892,2383.756608,
+ 0.227168,0,-0.973856,8.365296,-857.431241,2383.756608,
+ -0.890977,-0.087754,0.445488,-717.191404,-70.07352,1614.76108,
+ -0.890977,-0.087754,0.445488,-758.547422,-116.7892,1522.846858,
+ -0.890977,-0.087754,0.445488,-712.590311,-116.7892,1614.76108,
+ -0.890977,-0.087754,0.445488,-758.547422,-116.7892,1522.846858,
+ -0.890977,-0.087754,0.445488,-717.191404,-70.07352,1614.76108,
+ -0.890977,-0.087754,0.445488,-763.148515,-70.07352,1522.846858,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-8.365325,-70.07352,1638.2173,
+ 0,1,0,-0.00005,-70.07352,1637.393379,
+ 0,1,0,-8.365325,-70.07352,1638.2173,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-16.409125,-70.07352,1640.657374,
+ 0,1,0,-16.409125,-70.07352,1640.657374,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-23.82233,-70.07352,1644.619831,
+ 0,1,0,-23.82233,-70.07352,1644.619831,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-30.320055,-70.07352,1649.952394,
+ 0,1,0,-30.320055,-70.07352,1649.952394,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-35.652597,-70.07352,1656.450137,
+ 0,1,0,-35.652597,-70.07352,1656.450137,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-39.615029,-70.07352,1663.863355,
+ 0,1,0,-39.615029,-70.07352,1663.863355,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-42.055077,-70.07352,1671.907163,
+ 0,1,0,-42.055077,-70.07352,1671.907163,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-42.878972,-70.07352,1680.27244,
+ 0,1,0,-42.878972,-70.07352,1680.27244,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-42.878972,-70.07352,1680.27244,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-42.05505,-70.07352,1688.637715,
+ 0,1,0,-42.05505,-70.07352,1688.637715,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-39.614976,-70.07352,1696.681514,
+ 0,1,0,-39.614976,-70.07352,1696.681514,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-35.65252,-70.07352,1704.09472,
+ 0,1,0,-35.65252,-70.07352,1704.09472,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-30.319956,-70.07352,1710.592445,
+ 0,1,0,-30.319956,-70.07352,1710.592445,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-23.822213,-70.07352,1715.924987,
+ 0,1,0,-23.822213,-70.07352,1715.924987,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-16.408995,-70.07352,1719.887419,
+ 0,1,0,-16.408995,-70.07352,1719.887419,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-42.878972,-70.07352,2035.2022,
+ 0,1,0,-16.408995,-70.07352,1719.887419,
+ 0,1,0,-42.878972,-70.07352,2035.2022,
+ 0,1,0,-42.055073,-70.07352,2026.836923,
+ 0,1,0,-16.408995,-70.07352,1719.887419,
+ 0,1,0,-42.055073,-70.07352,2026.836923,
+ 0,1,0,-8.365188,-70.07352,1722.327467,
+ 0,1,0,-8.365188,-70.07352,1722.327467,
+ 0,1,0,-42.055073,-70.07352,2026.836923,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-42.055073,-70.07352,2026.836923,
+ 0,1,0,-39.615021,-70.07352,2018.793117,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-39.615021,-70.07352,2018.793117,
+ 0,1,0,-35.652584,-70.07352,2011.379901,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-35.652584,-70.07352,2011.379901,
+ 0,1,0,-30.320039,-70.07352,2004.882161,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-30.320039,-70.07352,2004.882161,
+ 0,1,0,-23.82231,-70.07352,1999.549601,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-23.82231,-70.07352,1999.549601,
+ 0,1,0,-16.409103,-70.07352,1995.587149,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-16.409103,-70.07352,1995.587149,
+ 0,1,0,-8.365302,-70.07352,1993.147079,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-8.365302,-70.07352,1993.147079,
+ 0,1,0,-0.000027,-70.07352,1992.323162,
+ 0,1,0,-42.878972,-70.07352,2035.2022,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-42.055055,-70.07352,2043.567475,
+ 0,1,0,-42.055055,-70.07352,2043.567475,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-39.614985,-70.07352,2051.611276,
+ 0,1,0,-39.614985,-70.07352,2051.611276,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-35.652533,-70.07352,2059.024483,
+ 0,1,0,-35.652533,-70.07352,2059.024483,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-30.319973,-70.07352,2065.522212,
+ 0,1,0,-30.319973,-70.07352,2065.522212,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-23.822233,-70.07352,2070.854758,
+ 0,1,0,-23.822233,-70.07352,2070.854758,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-16.409017,-70.07352,2074.817194,
+ 0,1,0,-16.409017,-70.07352,2074.817194,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-8.365211,-70.07352,2077.257246,
+ 0,1,0,-8.365211,-70.07352,2077.257246,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-39.615003,-70.07352,2409.402612,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,-39.615003,-70.07352,2409.402612,
+ 0,1,0,-35.652558,-70.07352,2401.9894,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,-35.652558,-70.07352,2401.9894,
+ 0,1,0,-30.320006,-70.07352,2395.491666,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,-30.320006,-70.07352,2395.491666,
+ 0,1,0,-23.822271,-70.07352,2390.159113,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,-23.822271,-70.07352,2390.159113,
+ 0,1,0,-16.40906,-70.07352,2386.196669,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,-16.40906,-70.07352,2386.196669,
+ 0,1,0,-8.365256,-70.07352,2383.756608,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,-8.365256,-70.07352,2383.756608,
+ 0,1,0,0.00002,-70.07352,2382.9327,
+ 0,1,0,-39.615003,-70.07352,2409.402612,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-42.055064,-70.07352,2417.446415,
+ 0,1,0,-42.055064,-70.07352,2417.446415,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-42.878972,-70.07352,2425.811691,
+ 0,1,0,-42.878972,-70.07352,2425.811691,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-42.055064,-70.07352,2434.176967,
+ 0,1,0,-42.055064,-70.07352,2434.176967,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-39.615003,-70.07352,2442.220771,
+ 0,1,0,-39.615003,-70.07352,2442.220771,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-35.652558,-70.07352,2449.633982,
+ 0,1,0,-35.652558,-70.07352,2449.633982,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-30.320006,-70.07352,2456.131717,
+ 0,1,0,-30.320006,-70.07352,2456.131717,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-23.822271,-70.07352,2461.464269,
+ 0,1,0,-23.822271,-70.07352,2461.464269,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-16.40906,-70.07352,2465.426714,
+ 0,1,0,-16.40906,-70.07352,2465.426714,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,-8.365256,-70.07352,2467.866775,
+ 0,1,0,-8.365256,-70.07352,2467.866775,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0,1,0,0.00002,-70.07352,2468.690683,
+ 0,1,0,-717.191404,-70.07352,1614.76108,
+ 0,1,0,763.148515,-70.07352,1522.846858,
+ 0,1,0,-763.148515,-70.07352,1522.846858,
+ 0,1,0,763.148515,-70.07352,1522.846858,
+ 0,1,0,-717.191404,-70.07352,1614.76108,
+ 0,1,0,717.537999,-70.07352,1614.067891,
+ 0,1,0,717.537999,-70.07352,1614.067891,
+ 0,1,0,-717.191404,-70.07352,1614.76108,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,-717.191404,-70.07352,1614.76108,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,8.365227,-70.07352,1638.217273,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,8.365227,-70.07352,1638.217273,
+ 0,1,0,16.409035,-70.07352,1640.657321,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,16.409035,-70.07352,1640.657321,
+ 0,1,0,23.822253,-70.07352,1644.619753,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,23.822253,-70.07352,1644.619753,
+ 0,1,0,30.319996,-70.07352,1649.952295,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,30.319996,-70.07352,1649.952295,
+ 0,1,0,35.652559,-70.07352,1656.450021,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,35.652559,-70.07352,1656.450021,
+ 0,1,0,39.615015,-70.07352,1663.863226,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,39.615015,-70.07352,1663.863226,
+ 0,1,0,42.05509,-70.07352,1671.907025,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,42.05509,-70.07352,1671.907025,
+ 0,1,0,42.879011,-70.07352,1680.2723,
+ 0,1,0,93.432274,-70.07352,1614.761079,
+ 0,1,0,42.879011,-70.07352,1680.2723,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,8.365227,-70.07352,1638.217273,
+ 0,1,0,-93.431364,-70.07352,1614.76108,
+ 0,1,0,-0.00005,-70.07352,1637.393379,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,42.879011,-70.07352,1680.2723,
+ 0,1,0,42.055117,-70.07352,1688.637578,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,42.055117,-70.07352,1688.637578,
+ 0,1,0,39.615069,-70.07352,1696.681385,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,39.615069,-70.07352,1696.681385,
+ 0,1,0,35.652637,-70.07352,1704.094603,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,35.652637,-70.07352,1704.094603,
+ 0,1,0,30.320095,-70.07352,1710.592346,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,30.320095,-70.07352,1710.592346,
+ 0,1,0,23.822369,-70.07352,1715.924909,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,23.822369,-70.07352,1715.924909,
+ 0,1,0,16.409164,-70.07352,1719.887366,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,16.409164,-70.07352,1719.887366,
+ 0,1,0,42.879011,-70.07352,2035.202107,
+ 0,1,0,42.879011,-70.07352,2035.202107,
+ 0,1,0,16.409164,-70.07352,1719.887366,
+ 0,1,0,42.055094,-70.07352,2026.836831,
+ 0,1,0,42.055094,-70.07352,2026.836831,
+ 0,1,0,16.409164,-70.07352,1719.887366,
+ 0,1,0,8.365365,-70.07352,1722.32744,
+ 0,1,0,42.055094,-70.07352,2026.836831,
+ 0,1,0,8.365365,-70.07352,1722.32744,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,42.055094,-70.07352,2026.836831,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,39.615024,-70.07352,2018.793031,
+ 0,1,0,39.615024,-70.07352,2018.793031,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,35.652572,-70.07352,2011.379823,
+ 0,1,0,35.652572,-70.07352,2011.379823,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,30.320012,-70.07352,2004.882095,
+ 0,1,0,30.320012,-70.07352,2004.882095,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,23.822272,-70.07352,1999.549549,
+ 0,1,0,23.822272,-70.07352,1999.549549,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,16.409056,-70.07352,1995.587113,
+ 0,1,0,16.409056,-70.07352,1995.587113,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,8.36525,-70.07352,1993.147061,
+ 0,1,0,8.36525,-70.07352,1993.147061,
+ 0,1,0,0.00009,-70.07352,1723.151361,
+ 0,1,0,-0.000027,-70.07352,1992.323162,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,42.879011,-70.07352,2035.202107,
+ 0,1,0,42.055112,-70.07352,2043.567384,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,42.055112,-70.07352,2043.567384,
+ 0,1,0,39.61506,-70.07352,2051.61119,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,39.61506,-70.07352,2051.61119,
+ 0,1,0,35.652624,-70.07352,2059.024406,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,35.652624,-70.07352,2059.024406,
+ 0,1,0,30.320078,-70.07352,2065.522146,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,30.320078,-70.07352,2065.522146,
+ 0,1,0,23.82235,-70.07352,2070.854706,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,23.82235,-70.07352,2070.854706,
+ 0,1,0,16.409142,-70.07352,2074.817158,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,16.409142,-70.07352,2074.817158,
+ 0,1,0,8.365342,-70.07352,2077.257228,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,8.365342,-70.07352,2077.257228,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,39.615042,-70.07352,2409.402612,
+ 0,1,0,39.615042,-70.07352,2409.402612,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,35.652598,-70.07352,2401.9894,
+ 0,1,0,35.652598,-70.07352,2401.9894,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,30.320045,-70.07352,2395.491666,
+ 0,1,0,30.320045,-70.07352,2395.491666,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,23.822311,-70.07352,2390.159113,
+ 0,1,0,23.822311,-70.07352,2390.159113,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,16.409099,-70.07352,2386.196669,
+ 0,1,0,16.409099,-70.07352,2386.196669,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,8.365296,-70.07352,2383.756608,
+ 0,1,0,8.365296,-70.07352,2383.756608,
+ 0,1,0,0.000066,-70.07352,2078.081145,
+ 0,1,0,0.00002,-70.07352,2382.9327,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,39.615042,-70.07352,2409.402612,
+ 0,1,0,42.055103,-70.07352,2417.446415,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,42.055103,-70.07352,2417.446415,
+ 0,1,0,42.879011,-70.07352,2425.811691,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,42.879011,-70.07352,2425.811691,
+ 0,1,0,42.055103,-70.07352,2434.176967,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,42.055103,-70.07352,2434.176967,
+ 0,1,0,39.615042,-70.07352,2442.220771,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,39.615042,-70.07352,2442.220771,
+ 0,1,0,35.652598,-70.07352,2449.633982,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,35.652598,-70.07352,2449.633982,
+ 0,1,0,30.320045,-70.07352,2456.131717,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,30.320045,-70.07352,2456.131717,
+ 0,1,0,23.822311,-70.07352,2461.464269,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,23.822311,-70.07352,2461.464269,
+ 0,1,0,16.409099,-70.07352,2465.426714,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,16.409099,-70.07352,2465.426714,
+ 0,1,0,8.365296,-70.07352,2467.866775,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,8.365296,-70.07352,2467.866775,
+ 0,1,0,0.00002,-70.07352,2468.690683,
+ 0,1,0,93.431356,-70.07352,2549.07468,
+ 0,1,0,0.00002,-70.07352,2468.690683,
+ 0,1,0,-93.431364,-70.07352,2549.07468,
+ 0.890977,-0.087754,0.445488,763.148515,-70.07352,1522.846858,
+ 0.890977,-0.087754,0.445488,712.934349,-116.7892,1614.073004,
+ 0.890977,-0.087754,0.445488,758.547422,-116.7892,1522.846858,
+ 0.890977,-0.087754,0.445488,712.934349,-116.7892,1614.073004,
+ 0.890977,-0.087754,0.445488,763.148515,-70.07352,1522.846858,
+ 0.890977,-0.087754,0.445488,717.537999,-70.07352,1614.067891,
+ -1,0,0,-42.878972,-116.7892,2425.811691,
+ -0.986659,0,-0.162803,-42.055064,-741.90215,2417.446415,
+ -1,0,0,-42.878972,-741.907022,2425.811691,
+ -0.986659,0,-0.162803,-42.055064,-741.90215,2417.446415,
+ -1,0,0,-42.878972,-116.7892,2425.811691,
+ -0.973856,0,-0.227168,-42.055064,-116.7892,2417.446415,
+ -0.352162,-0,0.935939,-16.40906,-741.750486,2465.426714,
+ -0.19509,-0,0.980785,-8.365256,-116.7892,2467.866775,
+ -0.412792,-0,0.910825,-16.40906,-116.7892,2465.426714,
+ -0.19509,-0,0.980785,-8.365256,-116.7892,2467.866775,
+ -0.352162,-0,0.935939,-16.40906,-741.750486,2465.426714,
+ -0.19509,0,0.980785,-8.365256,-741.702917,2467.866775,
+ 0,0,-1,763.148515,-70.07352,1522.846858,
+ 0,0,-1,-758.547422,-116.7892,1522.846858,
+ 0,0,-1,-763.148515,-70.07352,1522.846858,
+ 0,0,-1,-758.547422,-116.7892,1522.846858,
+ 0,0,-1,763.148515,-70.07352,1522.846858,
+ 0,0,-1,758.547422,-116.7892,1522.846858,
+ -0.582554,-0,-0.812792,-23.822271,-116.7892,2390.159113,
+ -0.683524,-0,-0.729928,-30.320006,-847.173358,2395.491666,
+ -0.729928,0,-0.683524,-30.320006,-116.7892,2395.491666,
+ -0.683524,-0,-0.729928,-30.320006,-847.173358,2395.491666,
+ -0.582554,-0,-0.812792,-23.822271,-116.7892,2390.159113,
+ -0.527988,-0,-0.849252,-23.822271,-851.834664,2390.159113,
+ 0.862796,0,-0.505553,35.652598,-116.7892,2401.9894,
+ 0.881921,-0,-0.471397,39.361165,-835.428664,2408.92764,
+ 0.812792,0,-0.582554,35.652598,-841.493539,2401.9894,
+ 0.881921,-0,-0.471397,39.361165,-835.428664,2408.92764,
+ 0.862796,0,-0.505553,35.652598,-116.7892,2401.9894,
+ 0.881921,0,-0.471397,39.361165,-741.420677,2408.92764,
+ 0.881921,0,-0.471397,39.361165,-741.420677,2408.92764,
+ 0.862796,0,-0.505553,35.652598,-116.7892,2401.9894,
+ 0.910825,0,-0.412792,39.615042,-741.419175,2409.402612,
+ 0.910825,0,-0.412792,39.615042,-741.419175,2409.402612,
+ 0.862796,0,-0.505553,35.652598,-116.7892,2401.9894,
+ 0.935939,0,-0.352162,39.615042,-116.7892,2409.402612,
+ -0.412792,-0,-0.910825,-16.40906,-116.7892,2386.196669,
+ -0.527988,-0,-0.849252,-23.822271,-851.834664,2390.159113,
+ -0.582554,-0,-0.812792,-23.822271,-116.7892,2390.159113,
+ -0.527988,-0,-0.849252,-23.822271,-851.834664,2390.159113,
+ -0.412792,-0,-0.910825,-16.40906,-116.7892,2386.196669,
+ -0.352162,-0,-0.935939,-16.40906,-855.298327,2386.196669,
+ 0.001111,-0,0.999999,712.934349,-116.7892,1614.073004,
+ 0.001111,-0,0.999999,93.432274,-70.07352,1614.761079,
+ 0.001111,0,0.999999,93.432274,-116.7892,1614.761079,
+ 0.001111,-0,0.999999,93.432274,-70.07352,1614.761079,
+ 0.001111,-0,0.999999,712.934349,-116.7892,1614.073004,
+ 0.001111,-0,0.999999,717.537999,-70.07352,1614.067891,
+ 0.812792,0,0.582554,35.652598,-741.442608,2449.633982,
+ 0.729928,0,0.683524,30.320045,-116.7892,2456.131717,
+ 0.683524,-0,0.729928,30.320045,-741.474143,2456.131717,
+ 0.729928,0,0.683524,30.320045,-116.7892,2456.131717,
+ 0.812792,0,0.582554,35.652598,-741.442608,2449.633982,
+ 0.849252,0,0.527988,35.652598,-116.7892,2449.633982,
+ -0.52799,0,-0.849251,23.822369,-70.07352,1715.924909,
+ -0.412794,0,-0.910824,16.409164,-116.7892,1719.887366,
+ -0.352164,0,-0.935938,16.409164,-70.07352,1719.887366,
+ -0.412794,0,-0.910824,16.409164,-116.7892,1719.887366,
+ -0.52799,0,-0.849251,23.822369,-70.07352,1715.924909,
+ -0.582555,0,-0.812791,23.822369,-116.7892,1715.924909,
+ -0.910824,0,0.412794,39.615015,-70.07352,1663.863226,
+ -0.849251,0,0.52799,35.652559,-116.7892,1656.450021,
+ -0.935938,0,0.352164,39.615015,-116.7892,1663.863226,
+ -0.849251,0,0.52799,35.652559,-116.7892,1656.450021,
+ -0.910824,0,0.412794,39.615015,-70.07352,1663.863226,
+ -0.812791,0,0.582555,35.652559,-70.07352,1656.450021,
+ -0.352164,0,-0.935938,16.409164,-70.07352,1719.887366,
+ -0.227169,0,-0.973855,8.365365,-116.7892,1722.32744,
+ -0.162805,0,-0.986658,8.365365,-70.07352,1722.32744,
+ -0.227169,0,-0.973855,8.365365,-116.7892,1722.32744,
+ -0.352164,0,-0.935938,16.409164,-70.07352,1719.887366,
+ -0.412794,0,-0.910824,16.409164,-116.7892,1719.887366,
+ 0.93594,0,0.352161,-39.615029,-70.07352,1663.863355,
+ 0.973856,0,0.227166,-42.055077,-116.7892,1671.907163,
+ 0.910826,0,0.412791,-39.615029,-116.7892,1663.863355,
+ 0.973856,0,0.227166,-42.055077,-116.7892,1671.907163,
+ 0.93594,0,0.352161,-39.615029,-70.07352,1663.863355,
+ 0.986659,0,0.162801,-42.055077,-70.07352,1671.907163,
+ -0.973856,0,-0.227168,-42.055064,0,2417.446415,
+ -0.935939,0,-0.352162,-39.615003,-70.07352,2409.402612,
+ -0.986659,0,-0.162803,-42.055064,-70.07352,2417.446415,
+ -0.935939,0,-0.352162,-39.615003,-70.07352,2409.402612,
+ -0.973856,0,-0.227168,-42.055064,0,2417.446415,
+ -0.910825,0,-0.412792,-39.615003,0,2409.402612,
+ -0.999462,0,-0.032813,-42.878972,0,2425.811691,
+ -0.986659,0,-0.162803,-42.055064,-70.07352,2417.446415,
+ -0.999462,0,0.032813,-42.878972,-70.07352,2425.811691,
+ -0.986659,0,-0.162803,-42.055064,-70.07352,2417.446415,
+ -0.999462,0,-0.032813,-42.878972,0,2425.811691,
+ -0.973856,0,-0.227168,-42.055064,0,2417.446415,
+ -0.412792,0,-0.910825,-16.40906,0,2386.196669,
+ -0.527988,0,-0.849252,-23.822271,-70.07352,2390.159113,
+ -0.582554,0,-0.812792,-23.822271,0,2390.159113,
+ -0.527988,0,-0.849252,-23.822271,-70.07352,2390.159113,
+ -0.412792,0,-0.910825,-16.40906,0,2386.196669,
+ -0.352162,0,-0.935939,-16.40906,-70.07352,2386.196669,
+ 0.352162,0,-0.935939,16.409099,0,2386.196669,
+ 0.227168,0,-0.973856,8.365296,-70.07352,2383.756608,
+ 0.162803,0,-0.986659,8.365296,0,2383.756608,
+ 0.227168,0,-0.973856,8.365296,-70.07352,2383.756608,
+ 0.352162,0,-0.935939,16.409099,0,2386.196669,
+ 0.412792,0,-0.910825,16.409099,-70.07352,2386.196669,
+ 0.527988,0,0.849252,23.822311,-70.07352,2461.464269,
+ 0.412792,0,0.910825,16.409099,0,2465.426714,
+ 0.352162,0,0.935939,16.409099,-70.07352,2465.426714,
+ 0.412792,0,0.910825,16.409099,0,2465.426714,
+ 0.527988,0,0.849252,23.822311,-70.07352,2461.464269,
+ 0.582554,0,0.812792,23.822311,0,2461.464269,
+ 0.582555,0,0.812791,-23.82233,-116.7892,1644.619831,
+ 0.707108,0,0.707106,-30.320055,-70.07352,1649.952394,
+ 0.707108,0,0.707106,-30.320055,-116.7892,1649.952394,
+ 0.707108,0,0.707106,-30.320055,-70.07352,1649.952394,
+ 0.582555,0,0.812791,-23.82233,-116.7892,1644.619831,
+ 0.52799,0,0.849251,-23.82233,-70.07352,1644.619831,
+ 0.812791,0,-0.582555,-35.65252,-70.07352,1704.09472,
+ 0.707106,0,-0.707108,-30.319956,-116.7892,1710.592445,
+ 0.849251,0,-0.52799,-35.65252,-116.7892,1704.09472,
+ 0.707106,0,-0.707108,-30.319956,-116.7892,1710.592445,
+ 0.812791,0,-0.582555,-35.65252,-70.07352,1704.09472,
+ 0.707106,0,-0.707108,-30.319956,-70.07352,1710.592445,
+ 0.227166,0,-0.973856,-8.365188,-70.07352,1722.327467,
+ 0.352161,0,-0.93594,-16.408995,-116.7892,1719.887419,
+ 0.412791,0,-0.910826,-16.408995,-70.07352,1719.887419,
+ 0.352161,0,-0.93594,-16.408995,-116.7892,1719.887419,
+ 0.227166,0,-0.973856,-8.365188,-70.07352,1722.327467,
+ 0.162801,0,-0.986659,-8.365188,-116.7892,1722.327467,
+ -0.527987,0,0.849253,23.822253,-116.7892,1644.619753,
+ -0.412791,0,0.910826,16.409035,-70.07352,1640.657321,
+ -0.352161,0,0.93594,16.409035,-116.7892,1640.657321,
+ -0.412791,0,0.910826,16.409035,-70.07352,1640.657321,
+ -0.527987,0,0.849253,23.822253,-116.7892,1644.619753,
+ -0.582553,0,0.812793,23.822253,-70.07352,1644.619753,
+ 0.986659,0,0.162801,-42.055077,-70.07352,1671.907163,
+ 0.999462,0,0.032811,-42.878972,-116.7892,1680.27244,
+ 0.973856,0,0.227166,-42.055077,-116.7892,1671.907163,
+ 0.999462,0,0.032811,-42.878972,-116.7892,1680.27244,
+ 0.986659,0,0.162801,-42.055077,-70.07352,1671.907163,
+ 0.999461,0,-0.032814,-42.878972,-70.07352,1680.27244,
+ -0.849253,0,-0.527987,35.652637,-70.07352,1704.094603,
+ -0.910826,0,-0.412791,39.615069,-116.7892,1696.681385,
+ -0.812793,0,-0.582553,35.652637,-116.7892,1704.094603,
+ -0.910826,0,-0.412791,39.615069,-116.7892,1696.681385,
+ -0.849253,0,-0.527987,35.652637,-70.07352,1704.094603,
+ -0.93594,0,-0.352161,39.615069,-70.07352,1696.681385,
+ -0.986659,0,-0.162801,42.055117,-70.07352,1688.637578,
+ -0.999462,0,-0.032811,42.879011,-116.7892,1680.2723,
+ -0.973856,0,-0.227166,42.055117,-116.7892,1688.637578,
+ -0.999462,0,-0.032811,42.879011,-116.7892,1680.2723,
+ -0.986659,0,-0.162801,42.055117,-70.07352,1688.637578,
+ -0.999461,0,0.032814,42.879011,-70.07352,1680.2723,
+ -0.986659,0,0.162803,-42.055064,-741.90215,2434.176967,
+ -1,0,0,-42.878972,-116.7892,2425.811691,
+ -1,0,0,-42.878972,-741.907022,2425.811691,
+ -1,0,0,-42.878972,-116.7892,2425.811691,
+ -0.986659,0,0.162803,-42.055064,-741.90215,2434.176967,
+ -0.973856,-0,0.227168,-42.055064,-116.7892,2434.176967,
+ 1,0,-0,42.879011,-741.399873,2425.811691,
+ 0.986659,0,0.162803,42.055103,-116.7892,2434.176967,
+ 0.973856,0,0.227168,42.055103,-741.404745,2434.176967,
+ 0.986659,0,0.162803,42.055103,-116.7892,2434.176967,
+ 1,0,-0,42.879011,-741.399873,2425.811691,
+ 1,0,-0,42.879011,-116.7892,2425.811691,
+ -0,0,1,0.00002,-741.653448,2468.690683,
+ -0.19509,-0,0.980785,-8.365256,-116.7892,2467.866775,
+ -0.19509,0,0.980785,-8.365256,-741.702917,2467.866775,
+ -0.19509,-0,0.980785,-8.365256,-116.7892,2467.866775,
+ -0,0,1,0.00002,-741.653448,2468.690683,
+ -0,-0,1,0.00002,-116.7892,2468.690683,
+ -0.527988,-0,0.849252,-23.822271,-741.794326,2461.464269,
+ -0.412792,-0,0.910825,-16.40906,-116.7892,2465.426714,
+ -0.582554,-0,0.812792,-23.822271,-116.7892,2461.464269,
+ -0.412792,-0,0.910825,-16.40906,-116.7892,2465.426714,
+ -0.527988,-0,0.849252,-23.822271,-741.794326,2461.464269,
+ -0.352162,-0,0.935939,-16.40906,-741.750486,2465.426714,
+ -0.582554,0,-0.812792,-23.822271,0,2390.159113,
+ -0.707107,0,-0.707107,-30.320006,-70.07352,2395.491666,
+ -0.707107,0,-0.707107,-30.320006,0,2395.491666,
+ -0.707107,0,-0.707107,-30.320006,-70.07352,2395.491666,
+ -0.582554,0,-0.812792,-23.822271,0,2390.159113,
+ -0.527988,0,-0.849252,-23.822271,-70.07352,2390.159113,
+ -0.986659,0,0.162803,-42.055064,0,2434.176967,
+ -0.999462,0,0.032813,-42.878972,-70.07352,2425.811691,
+ -0.973856,0,0.227168,-42.055064,-70.07352,2434.176967,
+ -0.999462,0,0.032813,-42.878972,-70.07352,2425.811691,
+ -0.986659,0,0.162803,-42.055064,0,2434.176967,
+ -0.999462,0,-0.032813,-42.878972,0,2425.811691,
+ 0.986659,0,-0.162803,42.055103,0,2417.446415,
+ 0.999462,0,-0.032813,42.879011,-70.07352,2425.811691,
+ 0.973856,0,-0.227168,42.055103,-70.07352,2417.446415,
+ 0.999462,0,-0.032813,42.879011,-70.07352,2425.811691,
+ 0.986659,0,-0.162803,42.055103,0,2417.446415,
+ 0.999462,0,0.032813,42.879011,0,2425.811691,
+ -0.032813,0,-0.999462,0.00002,0,2382.9327,
+ -0.162803,0,-0.986659,-8.365256,-70.07352,2383.756608,
+ -0.227168,0,-0.973856,-8.365256,0,2383.756608,
+ -0.162803,0,-0.986659,-8.365256,-70.07352,2383.756608,
+ -0.032813,0,-0.999462,0.00002,0,2382.9327,
+ 0.032813,0,-0.999462,0.00002,-70.07352,2382.9327,
+ -0.582554,0,0.812792,-23.822271,-70.07352,2461.464269,
+ -0.707107,0,0.707107,-30.320006,0,2456.131717,
+ -0.707107,0,0.707107,-30.320006,-70.07352,2456.131717,
+ -0.707107,0,0.707107,-30.320006,0,2456.131717,
+ -0.582554,0,0.812792,-23.822271,-70.07352,2461.464269,
+ -0.527988,0,0.849252,-23.822271,0,2461.464269,
+ 0.352162,0,0.935939,16.409099,-70.07352,2465.426714,
+ 0.227168,0,0.973856,8.365296,0,2467.866775,
+ 0.162803,0,0.986659,8.365296,-70.07352,2467.866775,
+ 0.227168,0,0.973856,8.365296,0,2467.866775,
+ 0.352162,0,0.935939,16.409099,-70.07352,2465.426714,
+ 0.412792,0,0.910825,16.409099,0,2465.426714,
+ -0.849252,-0,0.527988,-35.652558,-741.864287,2449.633982,
+ -0.910825,-0,0.412792,-39.615003,-116.7892,2442.220771,
+ -0.935939,-0,0.352162,-39.615003,-741.88772,2442.220771,
+ -0.910825,-0,0.412792,-39.615003,-116.7892,2442.220771,
+ -0.849252,-0,0.527988,-35.652558,-741.864287,2449.633982,
+ -0.812792,-0,0.582554,-35.652558,-116.7892,2449.633982,
+ -0.999461,0,0.032814,42.879011,-70.07352,2035.202107,
+ -0.986658,0,0.162804,42.055094,-116.7892,2026.836831,
+ -0.999462,0,-0.032812,42.879011,-116.7892,2035.202107,
+ -0.986658,0,0.162804,42.055094,-116.7892,2026.836831,
+ -0.999461,0,0.032814,42.879011,-70.07352,2035.202107,
+ -0.973855,0,0.227169,42.055094,-70.07352,2026.836831,
+ 0.986659,-0,-0.162803,42.055103,-116.7892,2417.446415,
+ 1,0,-0,42.879011,-741.399873,2425.811691,
+ 0.973856,0,-0.227168,42.055103,-741.404745,2417.446415,
+ 1,0,-0,42.879011,-741.399873,2425.811691,
+ 0.986659,-0,-0.162803,42.055103,-116.7892,2417.446415,
+ 1,0,-0,42.879011,-116.7892,2425.811691,
+ 0.582555,0,0.812791,-23.82231,-116.7892,1999.549601,
+ 0.707108,0,0.707106,-30.320039,-70.07352,2004.882161,
+ 0.707108,0,0.707106,-30.320039,-116.7892,2004.882161,
+ 0.707108,0,0.707106,-30.320039,-70.07352,2004.882161,
+ 0.582555,0,0.812791,-23.82231,-116.7892,1999.549601,
+ 0.527989,0,0.849251,-23.82231,-70.07352,1999.549601,
+ 0.707107,0,-0.707107,30.320045,0,2395.491666,
+ 0.582554,0,-0.812792,23.822311,-70.07352,2390.159113,
+ 0.527988,0,-0.849252,23.822311,0,2390.159113,
+ 0.582554,0,-0.812792,23.822311,-70.07352,2390.159113,
+ 0.707107,0,-0.707107,30.320045,0,2395.491666,
+ 0.707107,0,-0.707107,30.320045,-70.07352,2395.491666,
+ 0.849252,0,-0.527988,35.652598,0,2401.9894,
+ 0.910825,0,-0.412792,39.615042,-70.07352,2409.402612,
+ 0.812792,0,-0.582554,35.652598,-70.07352,2401.9894,
+ 0.910825,0,-0.412792,39.615042,-70.07352,2409.402612,
+ 0.849252,0,-0.527988,35.652598,0,2401.9894,
+ 0.935939,0,-0.352162,39.615042,0,2409.402612,
+ -0.162804,0,-0.986658,8.365342,-70.07352,2077.257228,
+ -0.032814,0,-0.999461,0.000066,-116.7892,2078.081145,
+ 0.032812,0,-0.999462,0.000066,-70.07352,2078.081145,
+ -0.032814,0,-0.999461,0.000066,-116.7892,2078.081145,
+ -0.162804,0,-0.986658,8.365342,-70.07352,2077.257228,
+ -0.227169,0,-0.973855,8.365342,-116.7892,2077.257228,
+ -0.973855,0,0.227169,42.055094,-70.07352,2026.836831,
+ -0.935939,0,0.352163,39.615024,-116.7892,2018.793031,
+ -0.986658,0,0.162804,42.055094,-116.7892,2026.836831,
+ -0.935939,0,0.352163,39.615024,-116.7892,2018.793031,
+ -0.973855,0,0.227169,42.055094,-70.07352,2026.836831,
+ -0.910825,0,0.412793,39.615024,-70.07352,2018.793031,
+ -0.707108,0,-0.707106,30.320095,-70.07352,1710.592346,
+ -0.582555,0,-0.812791,23.822369,-116.7892,1715.924909,
+ -0.52799,0,-0.849251,23.822369,-70.07352,1715.924909,
+ -0.582555,0,-0.812791,23.822369,-116.7892,1715.924909,
+ -0.707108,0,-0.707106,30.320095,-70.07352,1710.592346,
+ -0.707108,0,-0.707106,30.320095,-116.7892,1710.592346,
+ 0.412793,0,0.910825,-16.409103,-116.7892,1995.587149,
+ 0.527989,0,0.849251,-23.82231,-70.07352,1999.549601,
+ 0.582555,0,0.812791,-23.82231,-116.7892,1999.549601,
+ 0.527989,0,0.849251,-23.82231,-70.07352,1999.549601,
+ 0.412793,0,0.910825,-16.409103,-116.7892,1995.587149,
+ 0.352163,0,0.935939,-16.409103,-70.07352,1995.587149,
+ -0.812792,0,-0.582554,-35.652558,-841.493539,2401.9894,
+ -0.729928,0,-0.683524,-30.320006,-116.7892,2395.491666,
+ -0.683524,-0,-0.729928,-30.320006,-847.173358,2395.491666,
+ -0.729928,0,-0.683524,-30.320006,-116.7892,2395.491666,
+ -0.812792,0,-0.582554,-35.652558,-841.493539,2401.9894,
+ -0.85779,0,-0.514001,-35.652558,-116.7892,2401.9894,
+ 0,0,1,-712.590311,-116.7892,1614.76108,
+ 0,0,1,-93.431364,-70.07352,1614.76108,
+ 0,0,1,-717.191404,-70.07352,1614.76108,
+ 0,0,1,-93.431364,-70.07352,1614.76108,
+ 0,0,1,-712.590311,-116.7892,1614.76108,
+ 0,0,1,-93.431364,-116.7892,1614.76108,
+ 0.227168,0,0.973856,8.365296,-741.603978,2467.866775,
+ 0.382683,-0,0.92388,16.409099,-116.7892,2465.426714,
+ 0.162803,0,0.986659,8.365296,-116.7892,2467.866775,
+ 0.382683,-0,0.92388,16.409099,-116.7892,2465.426714,
+ 0.227168,0,0.973856,8.365296,-741.603978,2467.866775,
+ 0.382683,0,0.92388,16.409099,-741.556409,2465.426714,
+ 0.973855,0,-0.227169,-42.05505,-70.07352,1688.637715,
+ 0.935938,0,-0.352164,-39.614976,-116.7892,1696.681514,
+ 0.986658,0,-0.162805,-42.05505,-116.7892,1688.637715,
+ 0.935938,0,-0.352164,-39.614976,-116.7892,1696.681514,
+ 0.973855,0,-0.227169,-42.05505,-70.07352,1688.637715,
+ 0.910824,0,-0.412794,-39.614976,-70.07352,1696.681514,
+ -0.973855,0,0.227169,42.05509,-70.07352,1671.907025,
+ -0.935938,0,0.352164,39.615015,-116.7892,1663.863226,
+ -0.986658,0,0.162805,42.05509,-116.7892,1671.907025,
+ -0.935938,0,0.352164,39.615015,-116.7892,1663.863226,
+ -0.973855,0,0.227169,42.05509,-70.07352,1671.907025,
+ -0.910824,0,0.412794,39.615015,-70.07352,1663.863226,
+ -0.849252,0,0.527988,-35.652558,0,2449.633982,
+ -0.910825,0,0.412792,-39.615003,-70.07352,2442.220771,
+ -0.812792,0,0.582554,-35.652558,-70.07352,2449.633982,
+ -0.910825,0,0.412792,-39.615003,-70.07352,2442.220771,
+ -0.849252,0,0.527988,-35.652558,0,2449.633982,
+ -0.935939,0,0.352162,-39.615003,0,2442.220771,
+ -1,0,0,-93.431364,-70.07352,2549.07468,
+ -1,0,0,-93.431364,-116.7892,1614.76108,
+ -1,0,0,-93.431364,-116.7892,2549.07468,
+ -1,0,0,-93.431364,-116.7892,1614.76108,
+ -1,0,0,-93.431364,-70.07352,2549.07468,
+ -1,0,0,-93.431364,-70.07352,1614.76108,
+ 0.032812,0,-0.999462,0.000066,-70.07352,2078.081145,
+ 0.162802,0,-0.986659,-8.365211,-116.7892,2077.257246,
+ 0.227167,0,-0.973856,-8.365211,-70.07352,2077.257246,
+ 0.162802,0,-0.986659,-8.365211,-116.7892,2077.257246,
+ 0.032812,0,-0.999462,0.000066,-70.07352,2078.081145,
+ -0.032814,0,-0.999461,0.000066,-116.7892,2078.081145,
+ -0.707108,0,-0.707106,30.320078,-70.07352,2065.522146,
+ -0.582555,0,-0.812791,23.82235,-116.7892,2070.854706,
+ -0.527989,0,-0.849251,23.82235,-70.07352,2070.854706,
+ -0.582555,0,-0.812791,23.82235,-116.7892,2070.854706,
+ -0.707108,0,-0.707106,30.320078,-70.07352,2065.522146,
+ -0.707108,0,-0.707106,30.320078,-116.7892,2065.522146,
+ 0.412791,0,-0.910826,-16.409017,-70.07352,2074.817194,
+ 0.527987,0,-0.849252,-23.822233,-116.7892,2070.854758,
+ 0.582553,0,-0.812793,-23.822233,-70.07352,2070.854758,
+ 0.527987,0,-0.849252,-23.822233,-116.7892,2070.854758,
+ 0.412791,0,-0.910826,-16.409017,-70.07352,2074.817194,
+ 0.352161,0,-0.935939,-16.409017,-116.7892,2074.817194,
+ -0,0,1,0.00002,-741.653448,2468.690683,
+ 0.162803,0,0.986659,8.365296,-116.7892,2467.866775,
+ -0,-0,1,0.00002,-116.7892,2468.690683,
+ 0.162803,0,0.986659,8.365296,-116.7892,2467.866775,
+ -0,0,1,0.00002,-741.653448,2468.690683,
+ 0.227168,0,0.973856,8.365296,-741.603978,2467.866775,
+ -0.227168,0,-0.973856,-8.365256,0,2383.756608,
+ -0.352162,0,-0.935939,-16.40906,-70.07352,2386.196669,
+ -0.412792,0,-0.910825,-16.40906,0,2386.196669,
+ -0.352162,0,-0.935939,-16.40906,-70.07352,2386.196669,
+ -0.227168,0,-0.973856,-8.365256,0,2383.756608,
+ -0.162803,0,-0.986659,-8.365256,-70.07352,2383.756608,
+ 0.707107,0,-0.707107,30.320045,-116.7892,2395.491666,
+ 0.812792,0,-0.582554,35.652598,-841.493539,2401.9894,
+ 0.707107,0,-0.707107,30.320045,-847.173358,2395.491666,
+ 0.812792,0,-0.582554,35.652598,-841.493539,2401.9894,
+ 0.707107,0,-0.707107,30.320045,-116.7892,2395.491666,
+ 0.862796,0,-0.505553,35.652598,-116.7892,2401.9894,
+ -0.812791,0,0.582555,35.652572,-70.07352,2011.379823,
+ -0.707106,0,0.707108,30.320012,-116.7892,2004.882095,
+ -0.849251,0,0.527989,35.652572,-116.7892,2011.379823,
+ -0.707106,0,0.707108,30.320012,-116.7892,2004.882095,
+ -0.812791,0,0.582555,35.652572,-70.07352,2011.379823,
+ -0.707106,0,0.707108,30.320012,-70.07352,2004.882095,
+ 0.412794,0,0.910824,-16.409125,-116.7892,1640.657374,
+ 0.52799,0,0.849251,-23.82233,-70.07352,1644.619831,
+ 0.582555,0,0.812791,-23.82233,-116.7892,1644.619831,
+ 0.52799,0,0.849251,-23.82233,-70.07352,1644.619831,
+ 0.412794,0,0.910824,-16.409125,-116.7892,1640.657374,
+ 0.352164,0,0.935938,-16.409125,-70.07352,1640.657374,
+ 0.812792,0,0.582554,35.652598,0,2449.633982,
+ 0.707107,0,0.707107,30.320045,-70.07352,2456.131717,
+ 0.849252,0,0.527988,35.652598,-70.07352,2449.633982,
+ 0.707107,0,0.707107,30.320045,-70.07352,2456.131717,
+ 0.812792,0,0.582554,35.652598,0,2449.633982,
+ 0.707107,0,0.707107,30.320045,0,2456.131717,
+ 0.032814,0,0.999461,-0.000027,-116.7892,1992.323162,
+ 0.162804,0,0.986658,-8.365302,-70.07352,1993.147079,
+ 0.227169,0,0.973855,-8.365302,-116.7892,1993.147079,
+ 0.162804,0,0.986658,-8.365302,-70.07352,1993.147079,
+ 0.032814,0,0.999461,-0.000027,-116.7892,1992.323162,
+ -0.032812,0,0.999462,-0.000027,-70.07352,1992.323162,
+ -0.986659,0,-0.162802,42.055112,-70.07352,2043.567384,
+ -0.999462,0,-0.032812,42.879011,-116.7892,2035.202107,
+ -0.973856,0,-0.227167,42.055112,-116.7892,2043.567384,
+ -0.999462,0,-0.032812,42.879011,-116.7892,2035.202107,
+ -0.986659,0,-0.162802,42.055112,-70.07352,2043.567384,
+ -0.999461,0,0.032814,42.879011,-70.07352,2035.202107,
+ -0.162805,0,-0.986658,8.365365,-70.07352,1722.32744,
+ -0.032814,0,-0.999461,0.00009,-116.7892,1723.151361,
+ 0.032811,0,-0.999462,0.00009,-70.07352,1723.151361,
+ -0.032814,0,-0.999461,0.00009,-116.7892,1723.151361,
+ -0.162805,0,-0.986658,8.365365,-70.07352,1722.32744,
+ -0.227169,0,-0.973855,8.365365,-116.7892,1722.32744,
+ -0.032813,0,0.999462,0.00002,-70.07352,2468.690683,
+ -0.162803,0,0.986659,-8.365256,0,2467.866775,
+ -0.227168,0,0.973856,-8.365256,-70.07352,2467.866775,
+ -0.162803,0,0.986659,-8.365256,0,2467.866775,
+ -0.032813,0,0.999462,0.00002,-70.07352,2468.690683,
+ 0.032813,0,0.999462,0.00002,0,2468.690683,
+ -0.935939,-0,0.352162,-39.615003,-741.88772,2442.220771,
+ -0.973856,-0,0.227168,-42.055064,-116.7892,2434.176967,
+ -0.986659,0,0.162803,-42.055064,-741.90215,2434.176967,
+ -0.973856,-0,0.227168,-42.055064,-116.7892,2434.176967,
+ -0.935939,-0,0.352162,-39.615003,-741.88772,2442.220771,
+ -0.910825,-0,0.412792,-39.615003,-116.7892,2442.220771,
+ 0.032811,0,-0.999462,0.00009,-70.07352,1723.151361,
+ 0.162801,0,-0.986659,-8.365188,-116.7892,1722.327467,
+ 0.227166,0,-0.973856,-8.365188,-70.07352,1722.327467,
+ 0.162801,0,-0.986659,-8.365188,-116.7892,1722.327467,
+ 0.032811,0,-0.999462,0.00009,-70.07352,1723.151361,
+ -0.032814,0,-0.999461,0.00009,-116.7892,1723.151361,
+ 0.227169,0,0.973855,-8.365325,-116.7892,1638.2173,
+ 0.352164,0,0.935938,-16.409125,-70.07352,1640.657374,
+ 0.412794,0,0.910824,-16.409125,-116.7892,1640.657374,
+ 0.352164,0,0.935938,-16.409125,-70.07352,1640.657374,
+ 0.227169,0,0.973855,-8.365325,-116.7892,1638.2173,
+ 0.162805,0,0.986658,-8.365325,-70.07352,1638.2173,
+ 0,0,1,93.431356,-116.7892,2549.07468,
+ 0,0,1,-93.431364,-70.07352,2549.07468,
+ 0,0,1,-93.431364,-116.7892,2549.07468,
+ 0,0,1,-93.431364,-70.07352,2549.07468,
+ 0,0,1,93.431356,-116.7892,2549.07468,
+ 0,0,1,93.431356,-70.07352,2549.07468,
+ 0.973856,0,0.227168,42.055103,-741.404745,2434.176967,
+ 0.935939,0,0.352162,39.615042,-116.7892,2442.220771,
+ 0.910825,0,0.412792,39.615042,-741.419175,2442.220771,
+ 0.935939,0,0.352162,39.615042,-116.7892,2442.220771,
+ 0.973856,0,0.227168,42.055103,-741.404745,2434.176967,
+ 0.986659,0,0.162803,42.055103,-116.7892,2434.176967,
+ -0.227168,-0,-0.973856,-8.365256,-116.7892,2383.756608,
+ -0.352162,-0,-0.935939,-16.40906,-855.298327,2386.196669,
+ -0.412792,-0,-0.910825,-16.40906,-116.7892,2386.196669,
+ -0.352162,-0,-0.935939,-16.40906,-855.298327,2386.196669,
+ -0.227168,-0,-0.973856,-8.365256,-116.7892,2383.756608,
+ -0.162803,0,-0.986659,-8.365256,-857.431241,2383.756608,
+ -0.352161,0,0.935939,16.409056,-116.7892,1995.587113,
+ -0.227167,0,0.973856,8.36525,-70.07352,1993.147061,
+ -0.162802,0,0.986659,8.36525,-116.7892,1993.147061,
+ -0.227167,0,0.973856,8.36525,-70.07352,1993.147061,
+ -0.352161,0,0.935939,16.409056,-116.7892,1995.587113,
+ -0.412791,0,0.910826,16.409056,-70.07352,1995.587113,
+ -0.999461,0,0.032814,42.879011,-70.07352,1680.2723,
+ -0.986658,0,0.162805,42.05509,-116.7892,1671.907025,
+ -0.999462,0,-0.032811,42.879011,-116.7892,1680.2723,
+ -0.986658,0,0.162805,42.05509,-116.7892,1671.907025,
+ -0.999461,0,0.032814,42.879011,-70.07352,1680.2723,
+ -0.973855,0,0.227169,42.05509,-70.07352,1671.907025,
+ -0.93594,0,-0.352161,39.615069,-70.07352,1696.681385,
+ -0.973856,0,-0.227166,42.055117,-116.7892,1688.637578,
+ -0.910826,0,-0.412791,39.615069,-116.7892,1696.681385,
+ -0.973856,0,-0.227166,42.055117,-116.7892,1688.637578,
+ -0.93594,0,-0.352161,39.615069,-70.07352,1696.681385,
+ -0.986659,0,-0.162801,42.055117,-70.07352,1688.637578,
+ 0.849253,0,0.527987,-35.652597,-70.07352,1656.450137,
+ 0.910826,0,0.412791,-39.615029,-116.7892,1663.863355,
+ 0.812793,0,0.582553,-35.652597,-116.7892,1656.450137,
+ 0.910826,0,0.412791,-39.615029,-116.7892,1663.863355,
+ 0.849253,0,0.527987,-35.652597,-70.07352,1656.450137,
+ 0.93594,0,0.352161,-39.615029,-70.07352,1663.863355,
+ -0.935939,0,-0.352161,39.61506,-70.07352,2051.61119,
+ -0.973856,0,-0.227167,42.055112,-116.7892,2043.567384,
+ -0.910826,0,-0.412791,39.61506,-116.7892,2051.61119,
+ -0.973856,0,-0.227167,42.055112,-116.7892,2043.567384,
+ -0.935939,0,-0.352161,39.61506,-70.07352,2051.61119,
+ -0.986659,0,-0.162802,42.055112,-70.07352,2043.567384,
+ -0,-0.752904,0.658131,8.365296,-857.431241,2383.756608,
+ -0,-0.752904,0.658131,-8.365256,-857.431241,2383.756608,
+ -0,-0.752904,0.658131,0.00002,-858.151437,2382.9327,
+ -0,-0.752904,0.658131,-8.365256,-857.431241,2383.756608,
+ -0,-0.752904,0.658131,8.365296,-857.431241,2383.756608,
+ -0,-0.752904,0.658131,16.409099,-855.298327,2386.196669,
+ -0,-0.752904,0.658131,-8.365256,-857.431241,2383.756608,
+ -0,-0.752904,0.658131,16.409099,-855.298327,2386.196669,
+ -0,-0.752904,0.658131,-16.40906,-855.298327,2386.196669,
+ -0,-0.752904,0.658131,-16.40906,-855.298327,2386.196669,
+ -0,-0.752904,0.658131,16.409099,-855.298327,2386.196669,
+ -0,-0.752904,0.658131,23.822311,-851.834664,2390.159113,
+ -0,-0.752904,0.658131,-16.40906,-855.298327,2386.196669,
+ -0,-0.752904,0.658131,23.822311,-851.834664,2390.159113,
+ 0,-0.752904,0.658131,-23.822271,-851.834664,2390.159113,
+ 0,-0.752904,0.658131,-23.822271,-851.834664,2390.159113,
+ -0,-0.752904,0.658131,23.822311,-851.834664,2390.159113,
+ 0,-0.752904,0.658131,30.320045,-847.173358,2395.491666,
+ 0,-0.752904,0.658131,-23.822271,-851.834664,2390.159113,
+ 0,-0.752904,0.658131,30.320045,-847.173358,2395.491666,
+ -0,-0.752904,0.658131,-30.320006,-847.173358,2395.491666,
+ -0,-0.752904,0.658131,-30.320006,-847.173358,2395.491666,
+ 0,-0.752904,0.658131,30.320045,-847.173358,2395.491666,
+ -0,-0.752904,0.658131,35.652598,-841.493539,2401.9894,
+ -0,-0.752904,0.658131,-30.320006,-847.173358,2395.491666,
+ -0,-0.752904,0.658131,35.652598,-841.493539,2401.9894,
+ -0,-0.752904,0.658131,-35.652558,-841.493539,2401.9894,
+ -0,-0.752904,0.658131,-35.652558,-841.493539,2401.9894,
+ -0,-0.752904,0.658131,35.652598,-841.493539,2401.9894,
+ -0,-0.752904,0.658131,39.361165,-835.428664,2408.92764,
+ -0,-0.752904,0.658131,-35.652558,-841.493539,2401.9894,
+ -0,-0.752904,0.658131,39.361165,-835.428664,2408.92764,
+ 0,-0.752904,0.658131,-39.361125,-835.428664,2408.92764,
+ 0.352162,0,-0.935939,16.409099,-116.7892,2386.196669,
+ 0.227168,0,-0.973856,8.365296,-857.431241,2383.756608,
+ 0.162803,0,-0.986659,8.365296,-116.7892,2383.756608,
+ 0.227168,0,-0.973856,8.365296,-857.431241,2383.756608,
+ 0.352162,0,-0.935939,16.409099,-116.7892,2386.196669,
+ 0.412792,0,-0.910825,16.409099,-855.298327,2386.196669,
+ -0.707107,-0,0.707107,-30.320006,-741.832752,2456.131717,
+ -0.582554,-0,0.812792,-23.822271,-116.7892,2461.464269,
+ -0.707107,-0,0.707107,-30.320006,-116.7892,2456.131717,
+ -0.582554,-0,0.812792,-23.822271,-116.7892,2461.464269,
+ -0.707107,-0,0.707107,-30.320006,-741.832752,2456.131717,
+ -0.527988,-0,0.849252,-23.822271,-741.794326,2461.464269,
+ 1,0,0.000001,93.432274,-70.07352,1614.761079,
+ 1,0,0.000001,93.431356,-116.7892,2549.07468,
+ 1,0,0.000001,93.432274,-116.7892,1614.761079,
+ 1,0,0.000001,93.431356,-116.7892,2549.07468,
+ 1,0,0.000001,93.432274,-70.07352,1614.761079,
+ 1,0,0.000001,93.431356,-70.07352,2549.07468,
+ -0.707107,-0,0.707107,-30.320006,-741.832752,2456.131717,
+ -0.812792,-0,0.582554,-35.652558,-116.7892,2449.633982,
+ -0.849252,-0,0.527988,-35.652558,-741.864287,2449.633982,
+ -0.812792,-0,0.582554,-35.652558,-116.7892,2449.633982,
+ -0.707107,-0,0.707107,-30.320006,-741.832752,2456.131717,
+ -0.707107,-0,0.707107,-30.320006,-116.7892,2456.131717,
+ 0.527988,0,-0.849252,23.822311,-116.7892,2390.159113,
+ 0.412792,0,-0.910825,16.409099,-855.298327,2386.196669,
+ 0.352162,0,-0.935939,16.409099,-116.7892,2386.196669,
+ 0.412792,0,-0.910825,16.409099,-855.298327,2386.196669,
+ 0.527988,0,-0.849252,23.822311,-116.7892,2390.159113,
+ 0.582554,0,-0.812792,23.822311,-851.834664,2390.159113,
+ -0.707108,0,-0.707106,30.320078,-70.07352,2065.522146,
+ -0.812793,0,-0.582553,35.652624,-116.7892,2059.024406,
+ -0.707108,0,-0.707106,30.320078,-116.7892,2065.522146,
+ -0.812793,0,-0.582553,35.652624,-116.7892,2059.024406,
+ -0.707108,0,-0.707106,30.320078,-70.07352,2065.522146,
+ -0.849252,0,-0.527987,35.652624,-70.07352,2059.024406,
+ -0.352161,0,0.93594,16.409035,-116.7892,1640.657321,
+ -0.227166,0,0.973856,8.365227,-70.07352,1638.217273,
+ -0.162801,0,0.986659,8.365227,-116.7892,1638.217273,
+ -0.227166,0,0.973856,8.365227,-70.07352,1638.217273,
+ -0.352161,0,0.93594,16.409035,-116.7892,1640.657321,
+ -0.412791,0,0.910826,16.409035,-70.07352,1640.657321,
+ 0.935939,0,-0.352162,39.615042,0,2409.402612,
+ 0.973856,0,-0.227168,42.055103,-70.07352,2417.446415,
+ 0.910825,0,-0.412792,39.615042,-70.07352,2409.402612,
+ 0.973856,0,-0.227168,42.055103,-70.07352,2417.446415,
+ 0.935939,0,-0.352162,39.615042,0,2409.402612,
+ 0.986659,0,-0.162803,42.055103,0,2417.446415,
+ 0.005914,-0.999983,0,39.361165,-741.420677,2408.92764,
+ 0.005914,-0.999983,0,-39.615003,-741.88772,2409.402612,
+ 0.005914,-0.999983,0,-39.361125,-741.886218,2408.92764,
+ 0.005914,-0.999983,0,-39.615003,-741.88772,2409.402612,
+ 0.005914,-0.999983,0,39.361165,-741.420677,2408.92764,
+ 0.005914,-0.999983,-0,39.615042,-741.419175,2409.402612,
+ 0.005914,-0.999983,0,-39.615003,-741.88772,2409.402612,
+ 0.005914,-0.999983,-0,39.615042,-741.419175,2409.402612,
+ 0.005914,-0.999983,-0,-42.055064,-741.90215,2417.446415,
+ 0.005914,-0.999983,-0,-42.055064,-741.90215,2417.446415,
+ 0.005914,-0.999983,-0,39.615042,-741.419175,2409.402612,
+ 0.005914,-0.999983,0,42.055103,-741.404745,2417.446415,
+ 0.005914,-0.999983,-0,-42.055064,-741.90215,2417.446415,
+ 0.005914,-0.999983,0,42.055103,-741.404745,2417.446415,
+ 0.005914,-0.999983,0,42.879011,-741.399873,2425.811691,
+ 0.005914,-0.999983,-0,-42.055064,-741.90215,2417.446415,
+ 0.005914,-0.999983,0,42.879011,-741.399873,2425.811691,
+ 0.005914,-0.999983,0,-42.878972,-741.907022,2425.811691,
+ 0.005914,-0.999983,0,-42.878972,-741.907022,2425.811691,
+ 0.005914,-0.999983,0,42.879011,-741.399873,2425.811691,
+ 0.005914,-0.999983,-0,42.055103,-741.404745,2434.176967,
+ 0.005914,-0.999983,0,-42.878972,-741.907022,2425.811691,
+ 0.005914,-0.999983,-0,42.055103,-741.404745,2434.176967,
+ 0.005914,-0.999983,-0,-42.055064,-741.90215,2434.176967,
+ 0.005914,-0.999983,-0,-42.055064,-741.90215,2434.176967,
+ 0.005914,-0.999983,-0,42.055103,-741.404745,2434.176967,
+ 0.005914,-0.999983,0,39.615042,-741.419175,2442.220771,
+ 0.005914,-0.999983,-0,-42.055064,-741.90215,2434.176967,
+ 0.005914,-0.999983,0,39.615042,-741.419175,2442.220771,
+ 0.005914,-0.999983,-0,-39.615003,-741.88772,2442.220771,
+ 0.005914,-0.999983,-0,-39.615003,-741.88772,2442.220771,
+ 0.005914,-0.999983,0,39.615042,-741.419175,2442.220771,
+ 0.005914,-0.999983,-0,35.652598,-741.442608,2449.633982,
+ 0.005914,-0.999983,-0,-39.615003,-741.88772,2442.220771,
+ 0.005914,-0.999983,-0,35.652598,-741.442608,2449.633982,
+ 0.005914,-0.999983,0,-35.652558,-741.864287,2449.633982,
+ 0.005914,-0.999983,0,-35.652558,-741.864287,2449.633982,
+ 0.005914,-0.999983,-0,35.652598,-741.442608,2449.633982,
+ 0.005914,-0.999983,0,30.320045,-741.474143,2456.131717,
+ 0.005914,-0.999983,0,-35.652558,-741.864287,2449.633982,
+ 0.005914,-0.999983,0,30.320045,-741.474143,2456.131717,
+ 0.005914,-0.999983,-0,-30.320006,-741.832752,2456.131717,
+ 0.005914,-0.999983,-0,-30.320006,-741.832752,2456.131717,
+ 0.005914,-0.999983,0,30.320045,-741.474143,2456.131717,
+ 0.005914,-0.999983,0,23.822311,-741.512569,2461.464269,
+ 0.005914,-0.999983,-0,-30.320006,-741.832752,2456.131717,
+ 0.005914,-0.999983,0,23.822311,-741.512569,2461.464269,
+ 0.005914,-0.999983,-0,-23.822271,-741.794326,2461.464269,
+ 0.005914,-0.999983,-0,-23.822271,-741.794326,2461.464269,
+ 0.005914,-0.999983,0,23.822311,-741.512569,2461.464269,
+ 0.005914,-0.999983,0,-16.40906,-741.750486,2465.426714,
+ 0.005914,-0.999983,0,-16.40906,-741.750486,2465.426714,
+ 0.005914,-0.999983,0,23.822311,-741.512569,2461.464269,
+ 0.005914,-0.999983,0,16.409099,-741.556409,2465.426714,
+ 0.005914,-0.999983,0,-16.40906,-741.750486,2465.426714,
+ 0.005914,-0.999983,0,16.409099,-741.556409,2465.426714,
+ 0.005914,-0.999983,0,-8.365256,-741.702917,2467.866775,
+ 0.005914,-0.999983,0,-8.365256,-741.702917,2467.866775,
+ 0.005914,-0.999983,0,16.409099,-741.556409,2465.426714,
+ 0.005914,-0.999983,0,8.365296,-741.603978,2467.866775,
+ 0.005914,-0.999983,0,-8.365256,-741.702917,2467.866775,
+ 0.005914,-0.999983,0,8.365296,-741.603978,2467.866775,
+ 0.005914,-0.999983,0,0.00002,-741.653448,2468.690683,
+ 0.162803,0,0.986659,8.365296,-70.07352,2467.866775,
+ 0.032813,0,0.999462,0.00002,0,2468.690683,
+ -0.032813,0,0.999462,0.00002,-70.07352,2468.690683,
+ 0.032813,0,0.999462,0.00002,0,2468.690683,
+ 0.162803,0,0.986659,8.365296,-70.07352,2467.866775,
+ 0.227168,0,0.973856,8.365296,0,2467.866775,
+ -0.910825,0,0.412793,39.615024,-70.07352,2018.793031,
+ -0.849251,0,0.527989,35.652572,-116.7892,2011.379823,
+ -0.935939,0,0.352163,39.615024,-116.7892,2018.793031,
+ -0.849251,0,0.527989,35.652572,-116.7892,2011.379823,
+ -0.910825,0,0.412793,39.615024,-70.07352,2018.793031,
+ -0.812791,0,0.582555,35.652572,-70.07352,2011.379823,
+ -0.527987,0,0.849252,23.822272,-116.7892,1999.549549,
+ -0.412791,0,0.910826,16.409056,-70.07352,1995.587113,
+ -0.352161,0,0.935939,16.409056,-116.7892,1995.587113,
+ -0.412791,0,0.910826,16.409056,-70.07352,1995.587113,
+ -0.527987,0,0.849252,23.822272,-116.7892,1999.549549,
+ -0.582553,0,0.812793,23.822272,-70.07352,1999.549549,
+ 0.999461,0,-0.032814,-42.878972,-70.07352,1680.27244,
+ 0.986658,0,-0.162805,-42.05505,-116.7892,1688.637715,
+ 0.999462,0,0.032811,-42.878972,-116.7892,1680.27244,
+ 0.986658,0,-0.162805,-42.05505,-116.7892,1688.637715,
+ 0.999461,0,-0.032814,-42.878972,-70.07352,1680.27244,
+ 0.973855,0,-0.227169,-42.05505,-70.07352,1688.637715,
+ -0.812792,0,-0.582554,-35.652558,0,2401.9894,
+ -0.707107,0,-0.707107,-30.320006,-70.07352,2395.491666,
+ -0.849252,0,-0.527988,-35.652558,-70.07352,2401.9894,
+ -0.707107,0,-0.707107,-30.320006,-70.07352,2395.491666,
+ -0.812792,0,-0.582554,-35.652558,0,2401.9894,
+ -0.707107,0,-0.707107,-30.320006,0,2395.491666,
+ 0.707107,0,-0.707107,30.320045,-116.7892,2395.491666,
+ 0.582554,0,-0.812792,23.822311,-851.834664,2390.159113,
+ 0.527988,0,-0.849252,23.822311,-116.7892,2390.159113,
+ 0.582554,0,-0.812792,23.822311,-851.834664,2390.159113,
+ 0.707107,0,-0.707107,30.320045,-116.7892,2395.491666,
+ 0.707107,0,-0.707107,30.320045,-847.173358,2395.491666,
+ -0.910825,0,-0.412792,-39.615003,-116.7892,2409.402612,
+ -0.881921,0,-0.471397,-39.361125,-741.886218,2408.92764,
+ -0.935939,0,-0.352162,-39.615003,-741.88772,2409.402612,
+ -0.881921,-0,-0.471397,-39.361125,-835.428664,2408.92764,
+ -0.85779,0,-0.514001,-35.652558,-116.7892,2401.9894,
+ -0.812792,0,-0.582554,-35.652558,-841.493539,2401.9894,
+ -0.85779,0,-0.514001,-35.652558,-116.7892,2401.9894,
+ -0.881921,-0,-0.471397,-39.361125,-835.428664,2408.92764,
+ -0.881921,0,-0.471397,-39.361125,-741.886218,2408.92764,
+ -0.85779,0,-0.514001,-35.652558,-116.7892,2401.9894,
+ -0.881921,0,-0.471397,-39.361125,-741.886218,2408.92764,
+ -0.910825,0,-0.412792,-39.615003,-116.7892,2409.402612,
+ 0.162803,0,-0.986659,8.365296,0,2383.756608,
+ 0.032813,0,-0.999462,0.00002,-70.07352,2382.9327,
+ -0.032813,0,-0.999462,0.00002,0,2382.9327,
+ 0.032813,0,-0.999462,0.00002,-70.07352,2382.9327,
+ 0.162803,0,-0.986659,8.365296,0,2383.756608,
+ 0.227168,0,-0.973856,8.365296,-70.07352,2383.756608,
+ 0.032814,0,0.999461,-0.00005,-116.7892,1637.393379,
+ 0.162805,0,0.986658,-8.365325,-70.07352,1638.2173,
+ 0.227169,0,0.973855,-8.365325,-116.7892,1638.2173,
+ 0.162805,0,0.986658,-8.365325,-70.07352,1638.2173,
+ 0.032814,0,0.999461,-0.00005,-116.7892,1637.393379,
+ -0.032811,0,0.999462,-0.00005,-70.07352,1637.393379,
+ 0.227169,0,0.973855,-8.365302,-116.7892,1993.147079,
+ 0.352163,0,0.935939,-16.409103,-70.07352,1995.587149,
+ 0.412793,0,0.910825,-16.409103,-116.7892,1995.587149,
+ 0.352163,0,0.935939,-16.409103,-70.07352,1995.587149,
+ 0.227169,0,0.973855,-8.365302,-116.7892,1993.147079,
+ 0.162804,0,0.986658,-8.365302,-70.07352,1993.147079,
+ -0.352163,0,-0.935939,16.409142,-70.07352,2074.817158,
+ -0.227169,0,-0.973855,8.365342,-116.7892,2077.257228,
+ -0.162804,0,-0.986658,8.365342,-70.07352,2077.257228,
+ -0.227169,0,-0.973855,8.365342,-116.7892,2077.257228,
+ -0.352163,0,-0.935939,16.409142,-70.07352,2074.817158,
+ -0.412793,0,-0.910825,16.409142,-116.7892,2074.817158,
+ 0.707107,0,-0.707107,30.320045,0,2395.491666,
+ 0.812792,0,-0.582554,35.652598,-70.07352,2401.9894,
+ 0.707107,0,-0.707107,30.320045,-70.07352,2395.491666,
+ 0.812792,0,-0.582554,35.652598,-70.07352,2401.9894,
+ 0.707107,0,-0.707107,30.320045,0,2395.491666,
+ 0.849252,0,-0.527988,35.652598,0,2401.9894,
+ -0.227168,0,0.973856,-8.365256,-70.07352,2467.866775,
+ -0.352162,0,0.935939,-16.40906,0,2465.426714,
+ -0.412792,0,0.910825,-16.40906,-70.07352,2465.426714,
+ -0.352162,0,0.935939,-16.40906,0,2465.426714,
+ -0.227168,0,0.973856,-8.365256,-70.07352,2467.866775,
+ -0.162803,0,0.986659,-8.365256,0,2467.866775,
+ -0.527989,0,-0.849251,23.82235,-70.07352,2070.854706,
+ -0.412793,0,-0.910825,16.409142,-116.7892,2074.817158,
+ -0.352163,0,-0.935939,16.409142,-70.07352,2074.817158,
+ -0.412793,0,-0.910825,16.409142,-116.7892,2074.817158,
+ -0.527989,0,-0.849251,23.82235,-70.07352,2070.854706,
+ -0.582555,0,-0.812791,23.82235,-116.7892,2070.854706,
+ -0.707106,0,0.707108,30.320012,-116.7892,2004.882095,
+ -0.582553,0,0.812793,23.822272,-70.07352,1999.549549,
+ -0.527987,0,0.849252,23.822272,-116.7892,1999.549549,
+ -0.582553,0,0.812793,23.822272,-70.07352,1999.549549,
+ -0.707106,0,0.707108,30.320012,-116.7892,2004.882095,
+ -0.707106,0,0.707108,30.320012,-70.07352,2004.882095,
+ 0.707107,0,0.707107,30.320045,-70.07352,2456.131717,
+ 0.582554,0,0.812792,23.822311,0,2461.464269,
+ 0.527988,0,0.849252,23.822311,-70.07352,2461.464269,
+ 0.582554,0,0.812792,23.822311,0,2461.464269,
+ 0.707107,0,0.707107,30.320045,-70.07352,2456.131717,
+ 0.707107,0,0.707107,30.320045,0,2456.131717,
+ -0.412792,0,0.910825,-16.40906,-70.07352,2465.426714,
+ -0.527988,0,0.849252,-23.822271,0,2461.464269,
+ -0.582554,0,0.812792,-23.822271,-70.07352,2461.464269,
+ -0.527988,0,0.849252,-23.822271,0,2461.464269,
+ -0.412792,0,0.910825,-16.40906,-70.07352,2465.426714,
+ -0.352162,0,0.935939,-16.40906,0,2465.426714,
+ -0.162802,0,0.986659,8.36525,-116.7892,1993.147061,
+ -0.032812,0,0.999462,-0.000027,-70.07352,1992.323162,
+ 0.032814,0,0.999461,-0.000027,-116.7892,1992.323162,
+ -0.032812,0,0.999462,-0.000027,-70.07352,1992.323162,
+ -0.162802,0,0.986659,8.36525,-116.7892,1993.147061,
+ -0.227167,0,0.973856,8.36525,-70.07352,1993.147061,
+ 0.527988,0,-0.849252,23.822311,0,2390.159113,
+ 0.412792,0,-0.910825,16.409099,-70.07352,2386.196669,
+ 0.352162,0,-0.935939,16.409099,0,2386.196669,
+ 0.412792,0,-0.910825,16.409099,-70.07352,2386.196669,
+ 0.527988,0,-0.849252,23.822311,0,2390.159113,
+ 0.582554,0,-0.812792,23.822311,-70.07352,2390.159113,
+ -0.812791,0,0.582555,35.652559,-70.07352,1656.450021,
+ -0.707106,0,0.707108,30.319996,-116.7892,1649.952295,
+ -0.849251,0,0.52799,35.652559,-116.7892,1656.450021,
+ -0.707106,0,0.707108,30.319996,-116.7892,1649.952295,
+ -0.812791,0,0.582555,35.652559,-70.07352,1656.450021,
+ -0.707106,0,0.707108,30.319996,-70.07352,1649.952295,
+ 0.910824,0,-0.412794,-39.614976,-70.07352,1696.681514,
+ 0.849251,0,-0.52799,-35.65252,-116.7892,1704.09472,
+ 0.935938,0,-0.352164,-39.614976,-116.7892,1696.681514,
+ 0.849251,0,-0.52799,-35.65252,-116.7892,1704.09472,
+ 0.910824,0,-0.412794,-39.614976,-70.07352,1696.681514,
+ 0.812791,0,-0.582555,-35.65252,-70.07352,1704.09472,
+ 0.935939,0,-0.352162,39.615042,-116.7892,2409.402612,
+ 0.973856,0,-0.227168,42.055103,-741.404745,2417.446415,
+ 0.910825,0,-0.412792,39.615042,-741.419175,2409.402612,
+ 0.973856,0,-0.227168,42.055103,-741.404745,2417.446415,
+ 0.935939,0,-0.352162,39.615042,-116.7892,2409.402612,
+ 0.986659,-0,-0.162803,42.055103,-116.7892,2417.446415,
+ -0.707107,0,0.707107,-30.320006,0,2456.131717,
+ -0.812792,0,0.582554,-35.652558,-70.07352,2449.633982,
+ -0.707107,0,0.707107,-30.320006,-70.07352,2456.131717,
+ -0.812792,0,0.582554,-35.652558,-70.07352,2449.633982,
+ -0.707107,0,0.707107,-30.320006,0,2456.131717,
+ -0.849252,0,0.527988,-35.652558,0,2449.633982,
+ 0.910825,0,0.412792,39.615042,0,2442.220771,
+ 0.849252,0,0.527988,35.652598,-70.07352,2449.633982,
+ 0.935939,0,0.352162,39.615042,-70.07352,2442.220771,
+ 0.849252,0,0.527988,35.652598,-70.07352,2449.633982,
+ 0.910825,0,0.412792,39.615042,0,2442.220771,
+ 0.812792,0,0.582554,35.652598,0,2449.633982,
+ 0.527988,-0,0.849252,23.822311,-741.512569,2461.464269,
+ 0.382683,-0,0.92388,16.409099,-116.7892,2465.426714,
+ 0.382683,0,0.92388,16.409099,-741.556409,2465.426714,
+ 0.382683,-0,0.92388,16.409099,-116.7892,2465.426714,
+ 0.527988,-0,0.849252,23.822311,-741.512569,2461.464269,
+ 0.582554,-0,0.812792,23.822311,-116.7892,2461.464269,
+ 0.910825,0,0.412792,39.615042,-741.419175,2442.220771,
+ 0.849252,0,0.527988,35.652598,-116.7892,2449.633982,
+ 0.812792,0,0.582554,35.652598,-741.442608,2449.633982,
+ 0.849252,0,0.527988,35.652598,-116.7892,2449.633982,
+ 0.910825,0,0.412792,39.615042,-741.419175,2442.220771,
+ 0.935939,0,0.352162,39.615042,-116.7892,2442.220771,
+ 0.973855,0,-0.227169,-42.055055,-70.07352,2043.567475,
+ 0.935939,0,-0.352163,-39.614985,-116.7892,2051.611276,
+ 0.986658,0,-0.162804,-42.055055,-116.7892,2043.567475,
+ 0.935939,0,-0.352163,-39.614985,-116.7892,2051.611276,
+ 0.973855,0,-0.227169,-42.055055,-70.07352,2043.567475,
+ 0.910825,0,-0.412793,-39.614985,-70.07352,2051.611276,
+ -0.910825,0,-0.412792,-39.615003,0,2409.402612,
+ -0.849252,0,-0.527988,-35.652558,-70.07352,2401.9894,
+ -0.935939,0,-0.352162,-39.615003,-70.07352,2409.402612,
+ -0.849252,0,-0.527988,-35.652558,-70.07352,2401.9894,
+ -0.910825,0,-0.412792,-39.615003,0,2409.402612,
+ -0.812792,0,-0.582554,-35.652558,0,2401.9894,
+ 0.227167,0,-0.973856,-8.365211,-70.07352,2077.257246,
+ 0.352161,0,-0.935939,-16.409017,-116.7892,2074.817194,
+ 0.412791,0,-0.910826,-16.409017,-70.07352,2074.817194,
+ 0.352161,0,-0.935939,-16.409017,-116.7892,2074.817194,
+ 0.227167,0,-0.973856,-8.365211,-70.07352,2077.257246,
+ 0.162802,0,-0.986659,-8.365211,-116.7892,2077.257246,
+ -0.849252,0,-0.527987,35.652624,-70.07352,2059.024406,
+ -0.910826,0,-0.412791,39.61506,-116.7892,2051.61119,
+ -0.812793,0,-0.582553,35.652624,-116.7892,2059.024406,
+ -0.910826,0,-0.412791,39.61506,-116.7892,2051.61119,
+ -0.849252,0,-0.527987,35.652624,-70.07352,2059.024406,
+ -0.935939,0,-0.352161,39.61506,-70.07352,2051.61119,
+ 0.812791,0,-0.582555,-35.652533,-70.07352,2059.024483,
+ 0.707106,0,-0.707108,-30.319973,-116.7892,2065.522212,
+ 0.849251,0,-0.527989,-35.652533,-116.7892,2059.024483,
+ 0.707106,0,-0.707108,-30.319973,-116.7892,2065.522212,
+ 0.812791,0,-0.582555,-35.652533,-70.07352,2059.024483,
+ 0.707106,0,-0.707108,-30.319973,-70.07352,2065.522212,
+ -0.707108,0,-0.707106,30.320095,-70.07352,1710.592346,
+ -0.812793,0,-0.582553,35.652637,-116.7892,1704.094603,
+ -0.707108,0,-0.707106,30.320095,-116.7892,1710.592346,
+ -0.812793,0,-0.582553,35.652637,-116.7892,1704.094603,
+ -0.707108,0,-0.707106,30.320095,-70.07352,1710.592346,
+ -0.849253,0,-0.527987,35.652637,-70.07352,1704.094603,
+ 0.910825,0,-0.412793,-39.614985,-70.07352,2051.611276,
+ 0.849251,0,-0.527989,-35.652533,-116.7892,2059.024483,
+ 0.935939,0,-0.352163,-39.614985,-116.7892,2051.611276,
+ 0.849251,0,-0.527989,-35.652533,-116.7892,2059.024483,
+ 0.910825,0,-0.412793,-39.614985,-70.07352,2051.611276,
+ 0.812791,0,-0.582555,-35.652533,-70.07352,2059.024483,
+ 0.582553,0,-0.812793,-23.822233,-70.07352,2070.854758,
+ 0.707106,0,-0.707108,-30.319973,-116.7892,2065.522212,
+ 0.707106,0,-0.707108,-30.319973,-70.07352,2065.522212,
+ 0.707106,0,-0.707108,-30.319973,-116.7892,2065.522212,
+ 0.582553,0,-0.812793,-23.822233,-70.07352,2070.854758,
+ 0.527987,0,-0.849252,-23.822233,-116.7892,2070.854758,
+ 0.707108,0,0.707106,-30.320039,-70.07352,2004.882161,
+ 0.812793,0,0.582553,-35.652584,-116.7892,2011.379901,
+ 0.707108,0,0.707106,-30.320039,-116.7892,2004.882161,
+ 0.812793,0,0.582553,-35.652584,-116.7892,2011.379901,
+ 0.707108,0,0.707106,-30.320039,-70.07352,2004.882161,
+ 0.849252,0,0.527987,-35.652584,-70.07352,2011.379901,
+ 0.935939,0,0.352161,-39.615021,-70.07352,2018.793117,
+ 0.973856,0,0.227167,-42.055073,-116.7892,2026.836923,
+ 0.910826,0,0.412791,-39.615021,-116.7892,2018.793117,
+ 0.973856,0,0.227167,-42.055073,-116.7892,2026.836923,
+ 0.935939,0,0.352161,-39.615021,-70.07352,2018.793117,
+ 0.986659,0,0.162802,-42.055073,-70.07352,2026.836923,
+ 0.986659,0,0.162802,-42.055073,-70.07352,2026.836923,
+ 0.999462,0,0.032812,-42.878972,-116.7892,2035.2022,
+ 0.973856,0,0.227167,-42.055073,-116.7892,2026.836923,
+ 0.999462,0,0.032812,-42.878972,-116.7892,2035.2022,
+ 0.986659,0,0.162802,-42.055073,-70.07352,2026.836923,
+ 0.999461,0,-0.032814,-42.878972,-70.07352,2035.2022,
+ 0.707108,0,0.707106,-30.320055,-70.07352,1649.952394,
+ 0.812793,0,0.582553,-35.652597,-116.7892,1656.450137,
+ 0.707108,0,0.707106,-30.320055,-116.7892,1649.952394,
+ 0.812793,0,0.582553,-35.652597,-116.7892,1656.450137,
+ 0.707108,0,0.707106,-30.320055,-70.07352,1649.952394,
+ 0.849253,0,0.527987,-35.652597,-70.07352,1656.450137,
+ 0.683524,-0,0.729928,30.320045,-741.474143,2456.131717,
+ 0.582554,-0,0.812792,23.822311,-116.7892,2461.464269,
+ 0.527988,-0,0.849252,23.822311,-741.512569,2461.464269,
+ 0.582554,-0,0.812792,23.822311,-116.7892,2461.464269,
+ 0.683524,-0,0.729928,30.320045,-741.474143,2456.131717,
+ 0.729928,0,0.683524,30.320045,-116.7892,2456.131717,
+ -0.162801,0,0.986659,8.365227,-116.7892,1638.217273,
+ -0.032811,0,0.999462,-0.00005,-70.07352,1637.393379,
+ 0.032814,0,0.999461,-0.00005,-116.7892,1637.393379,
+ -0.032811,0,0.999462,-0.00005,-70.07352,1637.393379,
+ -0.162801,0,0.986659,8.365227,-116.7892,1638.217273,
+ -0.227166,0,0.973856,8.365227,-70.07352,1638.217273,
+ -0.935939,0,0.352162,-39.615003,0,2442.220771,
+ -0.973856,0,0.227168,-42.055064,-70.07352,2434.176967,
+ -0.910825,0,0.412792,-39.615003,-70.07352,2442.220771,
+ -0.973856,0,0.227168,-42.055064,-70.07352,2434.176967,
+ -0.935939,0,0.352162,-39.615003,0,2442.220771,
+ -0.986659,0,0.162803,-42.055064,0,2434.176967,
+ -0.707106,0,0.707108,30.319996,-116.7892,1649.952295,
+ -0.582553,0,0.812793,23.822253,-70.07352,1644.619753,
+ -0.527987,0,0.849253,23.822253,-116.7892,1644.619753,
+ -0.582553,0,0.812793,23.822253,-70.07352,1644.619753,
+ -0.707106,0,0.707108,30.319996,-116.7892,1649.952295,
+ -0.707106,0,0.707108,30.319996,-70.07352,1649.952295,
+ -0.032813,0,-0.999462,0.00002,-116.7892,2382.9327,
+ -0.162803,0,-0.986659,-8.365256,-857.431241,2383.756608,
+ -0.227168,-0,-0.973856,-8.365256,-116.7892,2383.756608,
+ -0.162803,0,-0.986659,-8.365256,-857.431241,2383.756608,
+ -0.032813,0,-0.999462,0.00002,-116.7892,2382.9327,
+ 0.032813,0,-0.999462,0.00002,-858.151437,2382.9327,
+ 0.999462,0,0.032813,42.879011,0,2425.811691,
+ 0.986659,0,0.162803,42.055103,-70.07352,2434.176967,
+ 0.999462,0,-0.032813,42.879011,-70.07352,2425.811691,
+ 0.986659,0,0.162803,42.055103,-70.07352,2434.176967,
+ 0.999462,0,0.032813,42.879011,0,2425.811691,
+ 0.973856,0,0.227168,42.055103,0,2434.176967,
+ 0.973856,0,0.227168,42.055103,0,2434.176967,
+ 0.935939,0,0.352162,39.615042,-70.07352,2442.220771,
+ 0.986659,0,0.162803,42.055103,-70.07352,2434.176967,
+ 0.935939,0,0.352162,39.615042,-70.07352,2442.220771,
+ 0.973856,0,0.227168,42.055103,0,2434.176967,
+ 0.910825,0,0.412792,39.615042,0,2442.220771,
+ 0.849252,0,0.527987,-35.652584,-70.07352,2011.379901,
+ 0.910826,0,0.412791,-39.615021,-116.7892,2018.793117,
+ 0.812793,0,0.582553,-35.652584,-116.7892,2011.379901,
+ 0.910826,0,0.412791,-39.615021,-116.7892,2018.793117,
+ 0.849252,0,0.527987,-35.652584,-70.07352,2011.379901,
+ 0.935939,0,0.352161,-39.615021,-70.07352,2018.793117,
+ 0.999461,0,-0.032814,-42.878972,-70.07352,2035.2022,
+ 0.986658,0,-0.162804,-42.055055,-116.7892,2043.567475,
+ 0.999462,0,0.032812,-42.878972,-116.7892,2035.2022,
+ 0.986658,0,-0.162804,-42.055055,-116.7892,2043.567475,
+ 0.999461,0,-0.032814,-42.878972,-70.07352,2035.2022,
+ 0.973855,0,-0.227169,-42.055055,-70.07352,2043.567475
+};
+static const struct gllist robot_gearbox_half_frame = { GL_N3F_V3F, GL_TRIANGLES, 1578, robot_gearbox_half_data, 0 };
+const struct gllist *robot_gearbox_half = &robot_gearbox_half_frame;
+
+static const float robot_hand_half_data[] = {
+ -0.418515,-0.90821,0,1034.126632,-1016.895232,2093.596753,
+ -0.476936,-0.878938,0,993.755282,-994.9886,1976.807553,
+ -0.358044,-0.933705,0,1034.126632,-1016.895232,1976.807553,
+ -0.476936,-0.878938,0,993.755282,-994.9886,1976.807553,
+ -0.418515,-0.90821,0,1034.126632,-1016.895232,2093.596753,
+ -0.476936,-0.878938,0,993.755282,-994.9886,2093.596753,
+ 0.878938,-0.476936,0,1351.758968,-887.662995,1976.807553,
+ 0.845913,-0.533321,0,1329.088262,-929.442444,2093.596753,
+ 0.809111,-0.587656,0,1329.088262,-929.442444,1976.807553,
+ 0.845913,-0.533321,0,1329.088262,-929.442444,2093.596753,
+ 0.878938,-0.476936,0,1351.758968,-887.662995,1976.807553,
+ 0.878938,-0.476936,0,1351.758968,-887.662995,2093.596753,
+ 0.702644,-0.711542,0,1298.7024,-965.996278,2093.596753,
+ 0.577428,-0.816441,0,1261.769095,-995.919752,1976.807553,
+ 0.702644,-0.711542,0,1298.7024,-965.996278,1976.807553,
+ 0.577428,-0.816441,0,1261.769095,-995.919752,1976.807553,
+ 0.702644,-0.711542,0,1298.7024,-965.996278,2093.596753,
+ 0.522634,-0.852557,0,1261.769095,-995.919752,2093.596753,
+ 0,0,-1,993.755282,-887.662995,1976.807553,
+ 0,0,-1,1034.126632,-1016.895232,1976.807553,
+ 0,0,-1,993.755282,-994.9886,1976.807553,
+ 0,0,-1,1034.126632,-1016.895232,1976.807553,
+ 0,0,-1,993.755282,-887.662995,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1034.126632,-1016.895232,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1079.526136,-1030.979562,1976.807553,
+ 0,0,-1,1079.526136,-1030.979562,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1126.801018,-1035.936261,1976.807553,
+ 0,0,-1,1126.801018,-1035.936261,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1174.13453,-1031.574846,1976.807553,
+ 0,0,-1,1174.13453,-1031.574846,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1219.707673,-1018.062925,1976.807553,
+ 0,0,-1,1219.707673,-1018.062925,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1261.769095,-995.919752,1976.807553,
+ 0,0,-1,1261.769095,-995.919752,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1298.7024,-965.996278,1976.807553,
+ 0,0,-1,1298.7024,-965.996278,1976.807553,
+ 0,0,-1,1351.758968,-887.662995,1976.807553,
+ 0,0,-1,1329.088262,-929.442444,1976.807553,
+ 0,0,1,1034.126632,-1016.895232,2093.596753,
+ 0,0,1,993.755282,-887.662995,2093.596753,
+ 0,0,1,993.755282,-994.9886,2093.596753,
+ 0,0,1,993.755282,-887.662995,2093.596753,
+ 0,0,1,1034.126632,-1016.895232,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1034.126632,-1016.895232,2093.596753,
+ 0,0,1,1079.526136,-1030.979562,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1079.526136,-1030.979562,2093.596753,
+ 0,0,1,1126.801018,-1035.936261,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1126.801018,-1035.936261,2093.596753,
+ 0,0,1,1174.13453,-1031.574846,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1174.13453,-1031.574846,2093.596753,
+ 0,0,1,1219.707673,-1018.062925,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1219.707673,-1018.062925,2093.596753,
+ 0,0,1,1261.769095,-995.919752,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1261.769095,-995.919752,2093.596753,
+ 0,0,1,1298.7024,-965.996278,2093.596753,
+ 0,0,1,1351.758968,-887.662995,2093.596753,
+ 0,0,1,1298.7024,-965.996278,2093.596753,
+ 0,0,1,1329.088262,-929.442444,2093.596753,
+ -0,1,0,993.755282,-887.662995,2093.596753,
+ -0,1,0,1351.758968,-887.662995,1976.807553,
+ -0,1,0,993.755282,-887.662995,1976.807553,
+ -0,1,0,1351.758968,-887.662995,1976.807553,
+ -0,1,0,993.755282,-887.662995,2093.596753,
+ -0,1,0,1351.758968,-887.662995,2093.596753,
+ 0.809111,-0.587656,0,1329.088262,-929.442444,1976.807553,
+ 0.702644,-0.711542,0,1298.7024,-965.996278,2093.596753,
+ 0.702644,-0.711542,0,1298.7024,-965.996278,1976.807553,
+ 0.702644,-0.711542,0,1298.7024,-965.996278,2093.596753,
+ 0.809111,-0.587656,0,1329.088262,-929.442444,1976.807553,
+ 0.845913,-0.533321,0,1329.088262,-929.442444,2093.596753,
+ -0.039101,-0.999235,0,1126.801018,-1035.936261,2093.596753,
+ -0.169008,-0.985615,0,1079.526136,-1030.979562,1976.807553,
+ 0.026524,-0.999648,0,1126.801018,-1035.936261,1976.807553,
+ -0.169008,-0.985615,0,1079.526136,-1030.979562,1976.807553,
+ -0.039101,-0.999235,0,1126.801018,-1035.936261,2093.596753,
+ -0.233291,-0.972407,0,1079.526136,-1030.979562,2093.596753,
+ 0.156592,-0.987663,0,1174.13453,-1031.574846,2093.596753,
+ 0.026524,-0.999648,0,1126.801018,-1035.936261,1976.807553,
+ 0.221036,-0.975266,0,1174.13453,-1031.574846,1976.807553,
+ 0.026524,-0.999648,0,1126.801018,-1035.936261,1976.807553,
+ 0.156592,-0.987663,0,1174.13453,-1031.574846,2093.596753,
+ -0.039101,-0.999235,0,1126.801018,-1035.936261,2093.596753,
+ -0.233291,-0.972407,0,1079.526136,-1030.979562,2093.596753,
+ -0.358044,-0.933705,0,1034.126632,-1016.895232,1976.807553,
+ -0.169008,-0.985615,0,1079.526136,-1030.979562,1976.807553,
+ -0.358044,-0.933705,0,1034.126632,-1016.895232,1976.807553,
+ -0.233291,-0.972407,0,1079.526136,-1030.979562,2093.596753,
+ -0.418515,-0.90821,0,1034.126632,-1016.895232,2093.596753,
+ 0.346266,-0.938136,0,1219.707673,-1018.062925,2093.596753,
+ 0.221036,-0.975266,0,1174.13453,-1031.574846,1976.807553,
+ 0.407053,-0.913404,0,1219.707673,-1018.062925,1976.807553,
+ 0.221036,-0.975266,0,1174.13453,-1031.574846,1976.807553,
+ 0.346266,-0.938136,0,1219.707673,-1018.062925,2093.596753,
+ 0.156592,-0.987663,0,1174.13453,-1031.574846,2093.596753,
+ 0.522634,-0.852557,0,1261.769095,-995.919752,2093.596753,
+ 0.407053,-0.913404,0,1219.707673,-1018.062925,1976.807553,
+ 0.577428,-0.816441,0,1261.769095,-995.919752,1976.807553,
+ 0.407053,-0.913404,0,1219.707673,-1018.062925,1976.807553,
+ 0.522634,-0.852557,0,1261.769095,-995.919752,2093.596753,
+ 0.346266,-0.938136,0,1219.707673,-1018.062925,2093.596753
+};
+static const struct gllist robot_hand_half_frame = { GL_N3F_V3F, GL_TRIANGLES, 114, robot_hand_half_data, 0 };
+const struct gllist *robot_hand_half = &robot_hand_half_frame;
+
+static const float robot_leg_half_data[] = {
+ -0.935939,0,-0.352162,166.455213,-280.29408,1639.761005,
+ -0.973856,0,-0.227168,176.700984,-186.86272,1605.985223,
+ -0.986659,0,-0.162803,176.700984,-280.29408,1605.985223,
+ -0.973856,0,-0.227168,176.700984,-186.86272,1605.985223,
+ -0.935939,0,-0.352162,166.455213,-280.29408,1639.761005,
+ -0.910825,0,-0.412792,166.455213,-186.86272,1639.761005,
+ -0.83147,0,-0.55557,149.816983,-280.29408,1670.888943,
+ -0.910825,0,-0.412792,166.455213,-186.86272,1639.761005,
+ -0.935939,0,-0.352162,166.455213,-280.29408,1639.761005,
+ -0.910825,0,-0.412792,166.455213,-186.86272,1639.761005,
+ -0.83147,0,-0.55557,149.816983,-280.29408,1670.888943,
+ -0.83147,0,-0.55557,149.816983,-186.86272,1670.888943,
+ 1,-0,0,93.530885,-186.86272,242.726639,
+ 1,-0,0,93.530885,-280.29408,1315.222366,
+ 1,-0,0,93.530885,-280.29408,242.726639,
+ 1,-0,0,93.530885,-280.29408,1315.222366,
+ 1,-0,0,93.530885,-186.86272,242.726639,
+ 1,-0,0,93.530885,-186.86272,1315.222366,
+ -0.582554,0,0.812792,100.141826,-280.29408,1421.155065,
+ -0.707107,0,0.707107,127.425692,-186.86272,1443.546356,
+ -0.527988,0,0.849252,100.141826,-186.86272,1421.155065,
+ -0.707107,0,0.707107,127.425692,-186.86272,1443.546356,
+ -0.582554,0,0.812792,100.141826,-280.29408,1421.155065,
+ -0.707107,0,0.707107,127.425692,-280.29408,1443.546356,
+ -0.615705,0.787976,-0,653.291518,-646.340639,5.83946,
+ -0.559296,0.828968,-0,642.023926,-654.528574,-0,
+ -0.530018,0.847987,-0,642.023926,-654.528574,5.83946,
+ -0.559296,0.828968,-0,642.023926,-654.528574,-0,
+ -0.615705,0.787976,-0,653.291518,-646.340639,5.83946,
+ -0.642837,0.766003,-0,653.291518,-646.340639,-0,
+ -0.83147,0,-0.55557,149.816983,-280.29408,1670.888943,
+ -0.729928,0,-0.683524,127.425692,-186.86272,1698.17281,
+ -0.83147,0,-0.55557,149.816983,-186.86272,1670.888943,
+ -0.729928,0,-0.683524,127.425692,-186.86272,1698.17281,
+ -0.83147,0,-0.55557,149.816983,-280.29408,1670.888943,
+ -0.683524,0,-0.729928,127.425692,-280.29408,1698.17281,
+ 0,1,0,806.270901,56.185652,23.357838,
+ 0,1,0,847.545902,56.185652,0,
+ 0,1,0,806.270901,56.185652,0,
+ 0,1,0,847.545902,56.185652,0,
+ 0,1,0,806.270901,56.185652,23.357838,
+ 0,1,0,847.545902,56.185652,23.357838,
+ 0.487279,-0.526963,0.696326,461.27,-697.739849,192.761586,
+ 0.603343,-0.550894,0.576621,464.090792,-720.287768,170.665181,
+ 0.603343,-0.467182,0.646311,464.09079,-696.627201,191.294034,
+ 0.603343,-0.550894,0.576621,464.090792,-720.287768,170.665181,
+ 0.487279,-0.526963,0.696326,461.27,-697.739849,192.761586,
+ 0.487279,-0.616933,0.618023,461.270002,-721.590015,171.967428,
+ 0.998111,-0.031311,0.052854,793.410423,-566.321374,23.357838,
+ 0.991932,-0.07777,0.100113,792.007218,-582.090797,40.223697,
+ 0.998111,-0.038222,0.048094,793.309566,-569.30368,23.357838,
+ 0.991932,-0.07777,0.100113,792.007218,-582.090797,40.223697,
+ 0.998111,-0.031311,0.052854,793.410423,-566.321374,23.357838,
+ 0.991932,-0.063402,0.109777,792.007217,-577.494024,43.23773,
+ 0.127347,-0.864568,0.486113,624.955342,-738.83011,109.90761,
+ 0.030867,-0.796473,0.603886,599.602156,-724.524748,134.576836,
+ 0.030867,-0.871333,0.489721,599.602151,-740.19647,110.675522,
+ 0.030867,-0.796473,0.603886,599.602156,-724.524748,134.576836,
+ 0.127347,-0.864568,0.486113,624.955342,-738.83011,109.90761,
+ 0.127347,-0.790262,0.59939,624.955347,-723.275771,133.6299,
+ -0.285905,0.891387,-0.351693,436.335613,-749.104397,83.53758,
+ -0.415875,0.883495,-0.215602,439.690597,-756.366969,56.464997,
+ -0.285905,0.930996,-0.226946,436.335601,-757.591911,56.762987,
+ -0.415875,0.883495,-0.215602,439.690597,-756.366969,56.464997,
+ -0.285905,0.891387,-0.351693,436.335613,-749.104397,83.53758,
+ -0.415875,0.845875,-0.333982,439.690608,-747.931487,83.075452,
+ -0.415875,0.845875,-0.333982,439.690608,-747.931487,83.075452,
+ -0.537771,0.818998,-0.200111,442.839466,-754.702001,56.059962,
+ -0.415875,0.883495,-0.215602,439.690597,-756.366969,56.464997,
+ -0.537771,0.818998,-0.200111,442.839466,-754.702001,56.059962,
+ -0.415875,0.845875,-0.333982,439.690608,-747.931487,83.075452,
+ -0.537771,0.78409,-0.309846,442.839477,-746.337241,82.447316,
+ 0.361665,-0.92741,0.095445,458.222215,-789.666464,31.875739,
+ 0.229025,-0.94575,0.230443,455.006085,-785.239687,63.48879,
+ 0.229024,-0.96833,0.09942,455.006069,-790.65817,31.977188,
+ 0.229025,-0.94575,0.230443,455.006085,-785.239687,63.48879,
+ 0.361665,-0.92741,0.095445,458.222215,-789.666464,31.875739,
+ 0.361665,-0.905753,0.220929,458.222231,-784.271055,63.253152,
+ 0,1,0,764.9959,-186.86272,23.357838,
+ 0,1,0,0.001765,-186.86272,5.83946,
+ 0,1,0,0.001765,-186.86272,23.357838,
+ 0,1,0,0.001765,-186.86272,5.83946,
+ 0,1,0,764.9959,-186.86272,23.357838,
+ 0,1,0,764.9959,-186.86272,5.83946,
+ 0.932875,-0.177759,0.313282,472.107204,-665.162054,199.228412,
+ 0.874212,-0.294445,0.386077,470.677524,-692.04293,185.247507,
+ 0.932875,-0.218791,0.286137,472.107209,-690.197308,182.813182,
+ 0.874212,-0.294445,0.386077,470.677524,-692.04293,185.247507,
+ 0.932875,-0.177759,0.313282,472.107204,-665.162054,199.228412,
+ 0.874212,-0.239089,0.422598,470.677518,-666.658744,201.891525,
+ -0.022507,0.01679,-0.999606,602.133251,-548.673148,186.220487,
+ 0,0,-1,454.66772,-186.86272,186.220487,
+ -0.030004,0,-0.99955,602.133251,-186.86272,186.220487,
+ 0,0,-1,454.66772,-186.86272,186.220487,
+ -0.022507,0.01679,-0.999606,602.133251,-548.673148,186.220487,
+ -0,0.022395,-0.999749,454.66772,-548.673192,186.220487,
+ 0.381503,-0.21794,0.898308,673.957358,-603.792753,197.311473,
+ 0.499663,-0.316836,0.806196,696.758793,-625.025898,178.836737,
+ 0.499663,-0.204023,0.84185,696.758783,-601.14038,186.408417,
+ 0.499663,-0.316836,0.806196,696.758793,-625.025898,178.836737,
+ 0.381503,-0.21794,0.898308,673.957358,-603.792753,197.311473,
+ 0.381503,-0.338316,0.860231,673.957369,-629.139245,189.276665,
+ 0,-0.016797,0.999859,473.71772,-549.195746,217.326639,
+ 0.020529,0,0.999789,599.602099,-186.86272,217.326639,
+ 0,0,1,473.71772,-186.86272,217.326639,
+ 0.020529,0,0.999789,599.602099,-186.86272,217.326639,
+ 0,-0.016797,0.999859,473.71772,-549.195746,217.326639,
+ 0.041063,-0.016783,0.999016,599.602099,-549.195708,217.326639,
+ 0,-1,-0,93.530885,-280.29408,242.726639,
+ 0,-1,-0,0.112465,-280.29408,1390.81149,
+ 0,-1,-0,0.000488,-280.29408,242.726639,
+ 0,-1,-0,0.112465,-280.29408,1390.81149,
+ 0,-1,-0,93.530885,-280.29408,242.726639,
+ 0,-1,-0,35.238106,-280.29408,1394.271064,
+ 0,-1,-0,35.238106,-280.29408,1394.271064,
+ 0,-1,-0,93.530885,-280.29408,242.726639,
+ 0,-1,-0,69.013887,-280.29408,1404.516835,
+ 0,-1,-0,69.013887,-280.29408,1404.516835,
+ 0,-1,-0,93.530885,-280.29408,242.726639,
+ 0,-1,-0,93.530885,-280.29408,1315.222366,
+ 0,-1,-0,69.013887,-280.29408,1404.516835,
+ 0,-1,-0,93.530885,-280.29408,1315.222366,
+ 0,-1,-0,100.141826,-280.29408,1421.155065,
+ 0,-1,-0,100.141826,-280.29408,1421.155065,
+ 0,-1,-0,93.530885,-280.29408,1315.222366,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,-0,100.141826,-280.29408,1421.155065,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,0,127.425692,-280.29408,1443.546356,
+ 0,-1,0,127.425692,-280.29408,1443.546356,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,0,149.816983,-280.29408,1470.830222,
+ 0,-1,0,149.816983,-280.29408,1470.830222,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,0,166.455213,-280.29408,1501.958161,
+ 0,-1,0,166.455213,-280.29408,1501.958161,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,0,176.700984,-280.29408,1535.733942,
+ 0,-1,0,176.700984,-280.29408,1535.733942,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,0,180.160558,-280.29408,1570.859583,
+ 0,-1,0,180.160558,-280.29408,1570.859583,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,0,180.185724,-280.29408,1903.252111,
+ 0,-1,0,35.243015,-280.29408,2079.865312,
+ 0,-1,0,0.179984,-280.29408,2125.502553,
+ 0,-1,0,0.112465,-280.29408,2083.325369,
+ 0,-1,0,0.179984,-280.29408,2125.502553,
+ 0,-1,0,35.243015,-280.29408,2079.865312,
+ 0,-1,0,46.868397,-280.29408,2125.502553,
+ 0,-1,0,46.868397,-280.29408,2125.502553,
+ 0,-1,0,35.243015,-280.29408,2079.865312,
+ 0,-1,0,69.023518,-280.29408,2069.618109,
+ 0,-1,0,46.868397,-280.29408,2125.502553,
+ 0,-1,0,69.023518,-280.29408,2069.618109,
+ 0,-1,0,46.868397,-280.29408,2499.208064,
+ 0,-1,0,46.868397,-280.29408,2499.208064,
+ 0,-1,0,69.023518,-280.29408,2069.618109,
+ 0,-1,0,93.652471,-280.29408,2499.208064,
+ 0,-1,0,93.652471,-280.29408,2499.208064,
+ 0,-1,0,69.023518,-280.29408,2069.618109,
+ -0,-1,0,100.155807,-280.29408,2052.977553,
+ 0,-1,0,93.652471,-280.29408,2499.208064,
+ -0,-1,0,100.155807,-280.29408,2052.977553,
+ -0,-1,0,123.089852,-280.29408,2224.766097,
+ -0,-1,0,123.089852,-280.29408,2224.766097,
+ -0,-1,0,100.155807,-280.29408,2052.977553,
+ -0,-1,0,127.443487,-280.29408,2030.583133,
+ -0,-1,0,123.089852,-280.29408,2224.766097,
+ -0,-1,0,127.443487,-280.29408,2030.583133,
+ 0,-1,0,221.73981,-280.29408,2013.443961,
+ 0,-1,0,221.73981,-280.29408,2013.443961,
+ -0,-1,0,127.443487,-280.29408,2030.583133,
+ 0,-1,0,149.837908,-280.29408,2003.295453,
+ 0,-1,0,221.73981,-280.29408,2013.443961,
+ 0,-1,0,149.837908,-280.29408,2003.295453,
+ 0,-1,0,166.478463,-280.29408,1972.163164,
+ 0,-1,0,221.73981,-280.29408,2013.443961,
+ 0,-1,0,166.478463,-280.29408,1972.163164,
+ 0,-1,0,176.725666,-280.29408,1938.382661,
+ 0,-1,0,221.73981,-280.29408,2013.443961,
+ 0,-1,0,176.725666,-280.29408,1938.382661,
+ 0,-1,0,180.185724,-280.29408,1903.252111,
+ 0,-1,0,221.73981,-280.29408,2013.443961,
+ 0,-1,0,180.185724,-280.29408,1903.252111,
+ 0,-1,-0,221.73981,-280.29408,1435.598634,
+ 0,-1,0,100.141826,-280.29408,1720.5641,
+ 0,-1,0,100.155807,-280.29408,1753.526669,
+ 0,-1,0,69.327289,-280.29408,1737.048483,
+ 0,-1,0,100.155807,-280.29408,1753.526669,
+ 0,-1,0,100.141826,-280.29408,1720.5641,
+ 0,-1,0,127.425692,-280.29408,1698.17281,
+ 0,-1,0,100.155807,-280.29408,1753.526669,
+ 0,-1,0,127.425692,-280.29408,1698.17281,
+ 0,-1,0,127.443487,-280.29408,1775.921089,
+ 0,-1,0,127.443487,-280.29408,1775.921089,
+ 0,-1,0,127.425692,-280.29408,1698.17281,
+ 0,-1,0,149.816983,-280.29408,1670.888943,
+ 0,-1,0,127.443487,-280.29408,1775.921089,
+ 0,-1,0,149.816983,-280.29408,1670.888943,
+ 0,-1,0,149.837908,-280.29408,1803.208769,
+ 0,-1,0,149.837908,-280.29408,1803.208769,
+ 0,-1,0,149.816983,-280.29408,1670.888943,
+ 0,-1,0,166.455213,-280.29408,1639.761005,
+ 0,-1,0,149.837908,-280.29408,1803.208769,
+ 0,-1,0,166.455213,-280.29408,1639.761005,
+ 0,-1,0,166.478463,-280.29408,1834.341059,
+ 0,-1,0,166.478463,-280.29408,1834.341059,
+ 0,-1,0,166.455213,-280.29408,1639.761005,
+ 0,-1,0,176.700984,-280.29408,1605.985223,
+ 0,-1,0,166.478463,-280.29408,1834.341059,
+ 0,-1,0,176.700984,-280.29408,1605.985223,
+ 0,-1,0,176.725666,-280.29408,1868.121561,
+ 0,-1,0,176.725666,-280.29408,1868.121561,
+ 0,-1,0,176.700984,-280.29408,1605.985223,
+ 0,-1,0,180.160558,-280.29408,1570.859583,
+ 0,-1,0,176.725666,-280.29408,1868.121561,
+ 0,-1,0,180.160558,-280.29408,1570.859583,
+ 0,-1,0,180.185724,-280.29408,1903.252111,
+ -0.952384,0.284225,-0.110366,453.575559,-733.364268,77.335952,
+ -0.985345,0.149457,-0.082208,454.431271,-719.259121,98.908612,
+ -0.985345,0.159265,-0.061075,454.431263,-730.119577,76.057541,
+ -0.985345,0.149457,-0.082208,454.431271,-719.259121,98.908612,
+ -0.952384,0.284225,-0.110366,453.575559,-733.364268,77.335952,
+ -0.952384,0.266534,-0.148066,453.575567,-722.299342,100.61724,
+ 0.854897,-0.518797,-0,813.090986,-692.336727,-0,
+ 0.806461,-0.591287,-0,794.401548,-720.307447,23.357838,
+ 0.779867,-0.625945,-0,794.401548,-720.307447,-0,
+ 0.806461,-0.591287,-0,794.401548,-720.307447,23.357838,
+ 0.854897,-0.518797,-0,813.090986,-692.336727,-0,
+ 0.87674,-0.480964,-0,813.090986,-692.336727,23.357838,
+ 0.995804,-0.010878,0.090867,473.642039,-579.415029,219.678492,
+ 0.973657,-0.055392,0.221186,473.101737,-608.824017,217.993091,
+ 0.995804,-0.023158,0.088537,473.642053,-608.036762,214.756927,
+ 0.973657,-0.055392,0.221186,473.101737,-608.824017,217.993091,
+ 0.995804,-0.010878,0.090867,473.642039,-579.415029,219.678492,
+ 0.973657,-0.024735,0.226671,473.101722,-579.75396,222.991746,
+ 0.924993,-0.331932,0.184956,779.024167,-635.678246,51.93544,
+ 0.867227,-0.463727,0.18131,767.829328,-662.181333,49.28971,
+ 0.924993,-0.354039,0.138,779.024163,-640.917494,40.911739,
+ 0.867227,-0.463727,0.18131,767.829328,-662.181333,49.28971,
+ 0.924993,-0.331932,0.184956,779.024167,-635.678246,51.93544,
+ 0.867227,-0.434695,0.24281,767.829333,-655.602109,63.132805,
+ 0.924993,-0.230673,0.301955,779.024169,-611.764971,79.363123,
+ 0.867227,-0.352996,0.351156,767.829337,-637.125516,87.502929,
+ 0.924993,-0.269668,0.267706,779.02417,-620.964741,71.342153,
+ 0.867227,-0.352996,0.351156,767.829337,-637.125516,87.502929,
+ 0.924993,-0.230673,0.301955,779.024169,-611.764971,79.363123,
+ 0.867227,-0.301852,0.395982,767.829336,-625.572837,97.575321,
+ -0.832687,0.392486,-0.390624,450.471126,-695.789522,146.166935,
+ -0.901181,0.263001,-0.344532,452.247014,-673.811262,161.200429,
+ -0.901181,0.307496,-0.305481,452.247015,-693.58391,143.961322,
+ -0.901181,0.263001,-0.344532,452.247014,-673.811262,161.200429,
+ -0.832687,0.392486,-0.390624,450.471126,-695.789522,146.166935,
+ -0.832687,0.335596,-0.440463,450.471124,-675.695751,163.686019,
+ 0,0,-1,847.545902,-186.86272,0,
+ -0,0,-1,806.270901,56.185652,0,
+ 0,0,-1,847.545902,56.185652,0,
+ -0,0,-1,806.270901,56.185652,0,
+ 0,0,-1,847.545902,-186.86272,0,
+ -0,0,-1,700.992217,-563.749227,-0,
+ -0,0,-1,700.992217,-563.749227,-0,
+ 0,0,-1,847.545902,-186.86272,0,
+ 0,0,-1,847.545902,-563.749227,0,
+ -0,0,-1,700.992217,-563.749227,-0,
+ 0,0,-1,847.545902,-563.749227,0,
+ -0,0,-1,843.130723,-608.452917,-0,
+ -0,0,-1,700.992217,-563.749227,-0,
+ -0,0,-1,843.130723,-608.452917,-0,
+ -0,-0,-1,698.091838,-577.372321,-0,
+ -0,-0,-1,698.091838,-577.372321,-0,
+ -0,0,-1,843.130723,-608.452917,-0,
+ -0,0,-1,693.784142,-590.617874,-0,
+ -0,0,-1,693.784142,-590.617874,-0,
+ -0,0,-1,843.130723,-608.452917,-0,
+ -0,0,-1,688.11627,-603.340929,-0,
+ -0,0,-1,688.11627,-603.340929,-0,
+ -0,0,-1,843.130723,-608.452917,-0,
+ -0,0,-1,681.15025,-615.40225,-0,
+ -0,0,-1,681.15025,-615.40225,-0,
+ -0,0,-1,843.130723,-608.452917,-0,
+ -0,0,-1,838.782877,-630.311015,-0,
+ -0,0,-1,681.15025,-615.40225,-0,
+ -0,0,-1,838.782877,-630.311015,-0,
+ -0,0,-1,672.962315,-626.669842,-0,
+ -0,0,-1,672.962315,-626.669842,-0,
+ -0,0,-1,838.782877,-630.311015,-0,
+ -0,0,-1,663.642072,-637.020396,-0,
+ -0,0,-1,663.642072,-637.020396,-0,
+ -0,0,-1,838.782877,-630.311015,-0,
+ -0,0,-1,827.969621,-662.165838,-0,
+ -0,0,-1,663.642072,-637.020396,-0,
+ -0,0,-1,827.969621,-662.165838,-0,
+ -0,0,-1,653.291518,-646.340639,-0,
+ -0,0,-1,653.291518,-646.340639,-0,
+ -0,0,-1,827.969621,-662.165838,-0,
+ -0,0,-1,642.023926,-654.528574,-0,
+ -0,0,-1,642.023926,-654.528574,-0,
+ -0,0,-1,827.969621,-662.165838,-0,
+ -0,0,-1,629.962605,-661.494594,-0,
+ -0,0,-1,629.962605,-661.494594,-0,
+ -0,0,-1,827.969621,-662.165838,-0,
+ -0,0,-1,617.239549,-667.162466,-0,
+ -0,0,-1,617.239549,-667.162466,-0,
+ -0,0,-1,827.969621,-662.165838,-0,
+ -0,0,-1,813.090986,-692.336727,-0,
+ -0,0,-1,617.239549,-667.162466,-0,
+ -0,0,-1,813.090986,-692.336727,-0,
+ -0,0,-1,603.993997,-671.470162,-0,
+ -0,0,-1,603.993997,-671.470162,-0,
+ -0,0,-1,813.090986,-692.336727,-0,
+ -0,0,-1,590.370902,-674.370541,0,
+ -0,0,-1,590.370902,-674.370541,0,
+ -0,0,-1,813.090986,-692.336727,-0,
+ -0,0,-1,0.000468,-674.370541,0,
+ -0,0,-1,0.000468,-674.370541,0,
+ -0,0,-1,813.090986,-692.336727,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,0,-1,813.090986,-692.336727,-0,
+ -0,0,-1,794.401548,-720.307447,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,0,-1,794.401548,-720.307447,-0,
+ -0,0,-1,772.221089,-745.599413,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,0,-1,772.221089,-745.599413,-0,
+ -0,-0,-1,746.929123,-767.779872,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,-0,-1,746.929123,-767.779872,-0,
+ -0,-0,-1,718.958402,-786.46931,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,-0,-1,718.958402,-786.46931,-0,
+ -0,-0,-1,688.787514,-801.347945,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,-0,-1,688.787514,-801.347945,-0,
+ -0,-0,-1,656.93269,-812.161201,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,-0,-1,656.93269,-812.161201,-0,
+ -0,-0,-1,623.938976,-818.724059,-0,
+ -0,-0,-1,0.000468,-820.924227,0,
+ -0,-0,-1,623.938976,-818.724059,-0,
+ 0,-0,-1,590.370902,-820.924227,0,
+ -0.412792,0,0.910825,69.013887,-280.29408,1404.516835,
+ -0.527988,0,0.849252,100.141826,-186.86272,1421.155065,
+ -0.352162,0,0.935939,69.013887,-186.86272,1404.516835,
+ -0.527988,0,0.849252,100.141826,-186.86272,1421.155065,
+ -0.412792,0,0.910825,69.013887,-280.29408,1404.516835,
+ -0.582554,0,0.812792,100.141826,-280.29408,1421.155065,
+ -0.112343,0.23471,-0.965552,623.546346,-599.640892,180.244333,
+ -0.022557,0.101727,-0.994557,602.133267,-575.89875,185.30549,
+ -0.112343,0.100949,-0.988528,623.546333,-575.800358,184.343761,
+ -0.022557,0.101727,-0.994557,602.133267,-575.89875,185.30549,
+ -0.112343,0.23471,-0.965552,623.546346,-599.640892,180.244333,
+ -0.022557,0.236303,-0.971418,602.13328,-599.869416,181.183686,
+ -0.649152,0.701164,-0.294909,445.721732,-744.352284,81.665241,
+ -0.748179,0.578988,-0.324038,448.282012,-730.404697,105.172511,
+ -0.748179,0.617743,-0.242119,448.282005,-742.014746,80.744249,
+ -0.748179,0.578988,-0.324038,448.282012,-730.404697,105.172511,
+ -0.649152,0.701164,-0.294909,445.721732,-744.352284,81.665241,
+ -0.649152,0.654437,-0.387703,445.72174,-732.59493,106.40344,
+ 0.874212,-0.050786,0.482881,470.677482,-580.392895,229.237697,
+ 0.79876,-0.143441,0.5843,468.840142,-610.976426,226.840986,
+ 0.874212,-0.116112,0.471456,470.677497,-610.308103,224.093716,
+ 0.79876,-0.143441,0.5843,468.840142,-610.976426,226.840986,
+ 0.874212,-0.050786,0.482881,470.677482,-580.392895,229.237697,
+ 0.79876,-0.062483,0.598396,468.840127,-580.680624,232.05041,
+ 0.988867,-0.134398,0.063875,792.007216,-595.005501,23.357838,
+ 0.969153,-0.229071,0.090936,787.130187,-618.467587,32.066457,
+ 0.98147,-0.179832,0.066156,791.767078,-596.364536,23.357838,
+ 0.969153,-0.229071,0.090936,787.130187,-618.467587,32.066457,
+ 0.988867,-0.134398,0.063875,792.007216,-595.005501,23.357838,
+ 0.991932,-0.111235,0.060808,792.007217,-592.860317,27.871437,
+ 0.969153,-0.229071,0.090936,787.130187,-618.467587,32.066457,
+ 0.991932,-0.111235,0.060808,792.007217,-592.860317,27.871437,
+ 0.966794,-0.223491,0.12394,787.130189,-614.643058,40.113503,
+ 0.382469,-0.01552,0.923838,458.222196,-549.595395,241.116069,
+ 0.466054,-0,0.884757,461.269937,-186.86272,239.686382,
+ 0.339245,0,0.940698,458.222196,-186.86272,241.116069,
+ 0.466054,-0,0.884757,461.269937,-186.86272,239.686382,
+ 0.382469,-0.01552,0.923838,458.222196,-549.595395,241.116069,
+ 0.506559,-0.014482,0.862083,461.269937,-549.571376,239.686382,
+ 0.707932,-0.563451,0.425857,736.997696,-679.337949,100.317733,
+ 0.616524,-0.682339,0.392825,717.894074,-705.391609,91.114894,
+ 0.717149,-0.603071,0.349289,736.997692,-690.762817,82.893397,
+ 0.616524,-0.682339,0.392825,717.894074,-705.391609,91.114894,
+ 0.707932,-0.563451,0.425857,736.997696,-679.337949,100.317733,
+ 0.609002,-0.620953,0.493491,717.894078,-692.709977,110.455949,
+ -0.928388,0.225646,-0.295263,753.576412,-604.820821,70.203974,
+ -0.9698,0.12079,-0.21189,760.201826,-585.915972,58.223185,
+ -0.9698,0.148537,-0.193454,760.201828,-592.476195,53.921748,
+ -0.9698,0.12079,-0.21189,760.201826,-585.915972,58.223185,
+ -0.928388,0.225646,-0.295263,753.576412,-604.820821,70.203974,
+ -0.928388,0.183307,-0.323257,753.57641,-595.926736,76.035688,
+ -0.985345,0.018907,-0.169523,454.43124,-576.627626,192.429881,
+ -0.999453,0.000944,-0.033066,454.797637,-548.733344,189.801127,
+ -0.999454,0.00493,-0.032673,454.797654,-576.264066,188.875876,
+ -0.999453,0.000944,-0.033066,454.797637,-548.733344,189.801127,
+ -0.985345,0.018907,-0.169523,454.43124,-576.627626,192.429881,
+ -0.985283,0.003254,-0.170901,454.431224,-548.79322,193.365338,
+ -0.415875,0.214324,-0.883806,439.690597,-606.087584,206.744382,
+ -0.285905,0.097067,-0.953329,436.335587,-578.704167,212.729198,
+ -0.415875,0.091892,-0.904767,439.690582,-578.575874,211.475076,
+ -0.285905,0.097067,-0.953329,436.335587,-578.704167,212.729198,
+ -0.415875,0.214324,-0.883806,439.690597,-606.087584,206.744382,
+ -0.285905,0.226068,-0.93121,436.335601,-606.385575,207.969324,
+ -0.537771,0.08495,-0.8388,442.839452,-578.401496,209.770445,
+ -0.41512,0.01512,-0.909641,439.690565,-549.114088,212.465226,
+ -0.536932,0.013961,-0.84351,442.839435,-549.085368,210.7557,
+ -0.41512,0.01512,-0.909641,439.690565,-549.114088,212.465226,
+ -0.537771,0.08495,-0.8388,442.839452,-578.401496,209.770445,
+ -0.415875,0.091892,-0.904767,439.690582,-578.575874,211.475076,
+ 0.499663,-0.204023,0.84185,696.758783,-601.14038,186.408417,
+ 0.609101,-0.289877,0.738219,717.894067,-619.848758,165.69683,
+ 0.609101,-0.186578,0.770833,717.894058,-597.802054,172.685609,
+ 0.609101,-0.289877,0.738219,717.894067,-619.848758,165.69683,
+ 0.499663,-0.204023,0.84185,696.758783,-601.14038,186.408417,
+ 0.499663,-0.316836,0.806196,696.758793,-625.025898,178.836737,
+ 0.995804,-0.08054,0.043457,473.642074,-743.137303,112.328326,
+ 0.973657,-0.212704,0.08215,473.101749,-758.702385,87.31918,
+ 0.995804,-0.08571,0.032077,473.642065,-755.603683,86.09829,
+ 0.973657,-0.212704,0.08215,473.101749,-758.702385,87.31918,
+ 0.995804,-0.08054,0.043457,473.642074,-743.137303,112.328326,
+ 0.973657,-0.199526,0.110368,473.101758,-746.040734,113.960076,
+ 0.237659,-0.971349,-0,656.93269,-812.161201,-0,
+ 0.152151,-0.988357,-0,623.938976,-818.724059,23.357838,
+ 0.108839,-0.994059,-0,623.938976,-818.724059,-0,
+ 0.152151,-0.988357,-0,623.938976,-818.724059,23.357838,
+ 0.237659,-0.971349,-0,656.93269,-812.161201,-0,
+ 0.279856,-0.960042,-0,656.93269,-812.161201,23.357838,
+ 0.932875,-0.038122,0.358177,472.107168,-580.082016,226.198682,
+ 0.874212,-0.116112,0.471456,470.677497,-610.308103,224.093716,
+ 0.932875,-0.086574,0.349641,472.107183,-609.58601,221.125411,
+ 0.874212,-0.116112,0.471456,470.677497,-610.308103,224.093716,
+ 0.932875,-0.038122,0.358177,472.107168,-580.082016,226.198682,
+ 0.874212,-0.050786,0.482881,470.677482,-580.392895,229.237697,
+ -0.040706,0.101643,-0.993988,429.267738,-578.813573,213.798664,
+ -0,0.022395,-0.999749,0.016247,-549.153365,214.795487,
+ -0.040617,0.016774,-0.999034,429.26772,-549.153238,214.795487,
+ -0,0.022395,-0.999749,0.016247,-549.153365,214.795487,
+ -0.040706,0.101643,-0.993988,429.267738,-578.813573,213.798664,
+ -0,0.124431,-0.992228,0.016265,-578.81381,213.79866,
+ 0.707841,-0.682368,0.182581,466.630415,-778.937032,61.955552,
+ 0.603443,-0.741548,0.293196,464.090775,-771.60356,92.402256,
+ 0.603443,-0.774584,0.189413,464.090763,-781.089165,62.479098,
+ 0.603443,-0.741548,0.293196,464.090775,-771.60356,92.402256,
+ 0.707841,-0.682368,0.182581,466.630415,-778.937032,61.955552,
+ 0.707841,-0.651123,0.273862,466.630427,-769.542842,91.59033,
+ -0.999454,0.009337,-0.031696,454.797666,-600.717836,184.671001,
+ -0.999345,-0.004503,0.035903,454.667737,-575.898832,185.305489,
+ -0.999345,-0.009353,0.034955,454.667749,-599.869485,181.183687,
+ -0.999345,-0.004503,0.035903,454.667737,-575.898832,185.305489,
+ -0.999454,0.009337,-0.031696,454.797666,-600.717836,184.671001,
+ -0.999454,0.00493,-0.032673,454.797654,-576.264066,188.875876,
+ 0.966794,-0.223491,0.12394,787.130189,-614.643058,40.113503,
+ 0.924993,-0.354039,0.138,779.024163,-640.917494,40.911739,
+ 0.969153,-0.229071,0.090936,787.130187,-618.467587,32.066457,
+ 0.924993,-0.354039,0.138,779.024163,-640.917494,40.911739,
+ 0.966794,-0.223491,0.12394,787.130189,-614.643058,40.113503,
+ 0.924993,-0.331932,0.184956,779.024167,-635.678246,51.93544,
+ 0.707841,-0.682368,0.182581,736.997677,-706.002952,44.212918,
+ 0.609101,-0.737549,0.291577,717.894067,-715.319418,70.22617,
+ 0.609101,-0.770402,0.188354,717.894058,-722.308196,48.179466,
+ 0.609101,-0.737549,0.291577,717.894067,-715.319418,70.22617,
+ 0.707841,-0.682368,0.182581,736.997677,-706.002952,44.212918,
+ 0.707841,-0.651123,0.273862,736.997686,-699.706769,64.074769,
+ -0.795651,0.010475,-0.605664,732.466031,-547.618545,123.445905,
+ -0.858411,0,-0.512963,744.275028,-186.86272,105.557439,
+ -0.869747,0.008617,-0.493422,744.275028,-547.318028,105.557439,
+ -0.858411,0,-0.512963,744.275028,-186.86272,105.557439,
+ -0.795651,0.010475,-0.605664,732.466031,-547.618545,123.445905,
+ -0.7818,0,-0.623529,732.466031,-186.86272,123.445905,
+ 0.091928,-0.967513,0.235514,451.683317,-785.765921,63.616808,
+ 0.011271,-0.930329,0.366553,448.317768,-776.152256,94.194451,
+ 0.01127,-0.9716,0.236362,448.317755,-785.839647,63.634744,
+ 0.011271,-0.930329,0.366553,448.317768,-776.152256,94.194451,
+ 0.091928,-0.967513,0.235514,451.683317,-785.765921,63.616808,
+ 0.091928,-0.926396,0.365157,451.68333,-776.081661,94.166635,
+ -0.494423,0.614096,-0.615169,684.332898,-669.009253,119.386665,
+ -0.606606,0.622389,-0.494632,702.22136,-673.696701,96.040736,
+ -0.494423,0.692194,-0.52575,684.332897,-683.128909,103.191916,
+ -0.606606,0.622389,-0.494632,702.22136,-673.696701,96.040736,
+ -0.494423,0.614096,-0.615169,684.332898,-669.009253,119.386665,
+ -0.606606,0.549182,-0.574829,702.221362,-660.639487,111.0169,
+ -0.244971,0.228806,-0.942145,644.636243,-598.733545,176.514546,
+ -0.112343,0.100949,-0.988528,623.546333,-575.800358,184.343761,
+ -0.244971,0.09829,-0.964535,644.636231,-575.409716,180.525125,
+ -0.112343,0.100949,-0.988528,623.546333,-575.800358,184.343761,
+ -0.244971,0.228806,-0.942145,644.636243,-598.733545,176.514546,
+ -0.112343,0.23471,-0.965552,623.546346,-599.640892,180.244333,
+ 0.874212,-0.116112,0.471456,470.677497,-610.308103,224.093716,
+ 0.79876,-0.221723,0.559304,468.840155,-640.279768,217.551861,
+ 0.874212,-0.179273,0.451236,470.677509,-639.24332,214.921287,
+ 0.79876,-0.221723,0.559304,468.840155,-640.279768,217.551861,
+ 0.874212,-0.116112,0.471456,470.677497,-610.308103,224.093716,
+ 0.79876,-0.143441,0.5843,468.840142,-610.976426,226.840986,
+ 0.989572,-0,0.144037,221.73981,-186.86272,2013.443961,
+ 1,-0,0,221.73981,-280.29408,1435.598634,
+ 1,-0,0,221.73981,-186.86272,1435.598634,
+ 1,-0,0,221.73981,-280.29408,1435.598634,
+ 0.989572,-0,0.144037,221.73981,-186.86272,2013.443961,
+ 0.957608,-0,0.288074,221.73981,-280.29408,2013.443961,
+ 0.362412,-0.932018,-0,688.787514,-801.347945,-0,
+ 0.279856,-0.960042,-0,656.93269,-812.161201,23.357838,
+ 0.237659,-0.971349,-0,656.93269,-812.161201,-0,
+ 0.279856,-0.960042,-0,656.93269,-812.161201,23.357838,
+ 0.362412,-0.932018,-0,688.787514,-801.347945,-0,
+ 0.402772,-0.9153,-0,688.787514,-801.347945,23.357838,
+ -0.986659,0,-0.162803,176.725666,-280.29408,1938.382661,
+ -0.999462,0,-0.032813,180.185724,-186.86272,1903.252111,
+ -0.999462,0,0.032813,180.185724,-280.29408,1903.252111,
+ -0.999462,0,-0.032813,180.185724,-186.86272,1903.252111,
+ -0.986659,0,-0.162803,176.725666,-280.29408,1938.382661,
+ -0.973856,0,-0.227168,176.725666,-186.86272,1938.382661,
+ -0.707841,0.151267,-0.689985,718.363091,-588.820775,135.766294,
+ -0.796291,0.062774,-0.601647,732.466044,-569.495502,122.710666,
+ -0.796291,0.144172,-0.587481,732.466052,-584.996349,120.045264,
+ -0.796291,0.062774,-0.601647,732.466044,-569.495502,122.710666,
+ -0.707841,0.151267,-0.689985,718.363091,-588.820775,135.766294,
+ -0.707841,0.055835,-0.704162,718.363082,-571.142012,138.806193,
+ -0.373111,0.655639,-0.656449,665.021391,-675.601701,125.979113,
+ -0.244971,0.585448,-0.772813,644.636264,-662.459295,146.227532,
+ -0.373111,0.560072,-0.739667,665.02139,-658.447133,140.935603,
+ -0.244971,0.585448,-0.772813,644.636264,-662.459295,146.227532,
+ -0.373111,0.655639,-0.656449,665.021391,-675.601701,125.979113,
+ -0.244971,0.685296,-0.685827,644.636265,-680.297547,130.67496,
+ -0.714681,0.677849,-0.172485,718.363091,-685.388881,39.198188,
+ -0.796291,0.563252,-0.220608,732.466058,-664.91507,50.366817,
+ -0.809671,0.570253,-0.138724,732.466052,-669.667851,35.373762,
+ -0.796291,0.563252,-0.220608,732.466058,-664.91507,50.366817,
+ -0.714681,0.677849,-0.172485,718.363091,-685.388881,39.198188,
+ -0.707841,0.651123,-0.273862,718.363098,-679.96832,56.297814,
+ 0.256673,-0.899078,0.354651,649.884111,-746.45866,82.495079,
+ 0.127347,-0.864568,0.486113,624.955342,-738.83011,109.90761,
+ 0.127347,-0.922744,0.363767,624.955334,-751.006818,84.287065,
+ 0.127347,-0.864568,0.486113,624.955342,-738.83011,109.90761,
+ 0.256673,-0.899078,0.354651,649.884111,-746.45866,82.495079,
+ 0.256673,-0.842365,0.473857,649.884119,-734.568562,107.512581,
+ 0.381503,-0.898037,0.219052,673.957358,-746.934061,54.170165,
+ 0.256673,-0.899078,0.354651,649.884111,-746.45866,82.495079,
+ 0.256673,-0.939019,0.228829,649.8841,-754.828812,56.090715,
+ 0.256673,-0.899078,0.354651,649.884111,-746.45866,82.495079,
+ 0.381503,-0.898037,0.219052,673.957358,-746.934061,54.170165,
+ 0.381503,-0.859811,0.339381,673.957369,-738.899253,79.516658,
+ -0.040706,0.871018,-0.489562,429.267772,-737.984764,109.432572,
+ -0.150375,0.919722,-0.362627,432.838941,-749.833439,83.824825,
+ -0.040706,0.929604,-0.366305,429.267763,-750.104609,83.931667,
+ -0.150375,0.919722,-0.362627,432.838941,-749.833439,83.824825,
+ -0.040706,0.871018,-0.489562,429.267772,-737.984764,109.432572,
+ -0.150375,0.86173,-0.484571,432.838949,-737.730682,109.289775,
+ -0.928388,0.346265,-0.134897,753.576407,-630.223631,36.698359,
+ -0.9698,0.213348,-0.118196,760.201826,-607.845772,36.293385,
+ -0.9721,0.218065,-0.086424,760.201824,-611.21315,29.208214,
+ -0.9698,0.213348,-0.118196,760.201826,-607.845772,36.293385,
+ -0.928388,0.346265,-0.134897,753.576407,-630.223631,36.698359,
+ -0.928388,0.324653,-0.180823,753.57641,-625.658276,46.304148,
+ 0.105242,-0.993886,0.033402,624.955304,-764.585289,23.357838,
+ 0.030866,-0.994332,0.101738,599.602117,-765.945157,29.449075,
+ 0.020529,-0.999225,0.033582,599.602113,-766.149871,23.357838,
+ 0.030866,-0.994332,0.101738,599.602117,-765.945157,29.449075,
+ 0.105242,-0.993886,0.033402,624.955304,-764.585289,23.357838,
+ 0.127347,-0.98669,0.101126,624.955308,-764.385936,29.28956,
+ 0.603443,-0.29142,0.742247,464.090775,-642.024843,221.980973,
+ 0.700875,-0.343846,0.624935,466.630436,-669.291161,206.575475,
+ 0.707841,-0.243878,0.662936,466.630427,-641.212918,219.920255,
+ 0.700875,-0.343846,0.624935,466.630436,-669.291161,206.575475,
+ 0.603443,-0.29142,0.742247,464.090775,-642.024843,221.980973,
+ 0.592261,-0.384709,0.707974,464.090784,-670.376318,208.506333,
+ 0.867227,-0.397554,0.299779,767.829336,-647.197908,75.95025,
+ 0.794465,-0.530011,0.296503,753.739286,-674.070091,73.511955,
+ 0.867227,-0.434695,0.24281,767.829333,-655.602109,63.132805,
+ 0.794465,-0.530011,0.296503,753.739286,-674.070091,73.511955,
+ 0.867227,-0.397554,0.299779,767.829336,-647.197908,75.95025,
+ 0.794465,-0.484664,0.36596,753.739289,-664.079301,88.749145,
+ 0.999748,-0.019808,0.010545,473.717772,-740.196479,110.67556,
+ 0.995804,-0.08571,0.032077,473.642065,-755.603683,86.09829,
+ 0.999748,-0.02106,0.007747,473.717764,-752.465075,84.861676,
+ 0.995804,-0.08571,0.032077,473.642065,-755.603683,86.09829,
+ 0.999748,-0.019808,0.010545,473.717772,-740.196479,110.67556,
+ 0.995804,-0.08054,0.043457,473.642074,-743.137303,112.328326,
+ 0.251027,-0.016259,0.967844,455.00605,-549.612103,242.110623,
+ 0.339245,0,0.940698,458.222196,-186.86272,241.116069,
+ 0.20592,0,0.978569,455.00605,-186.86272,242.110623,
+ 0.339245,0,0.940698,458.222196,-186.86272,241.116069,
+ 0.251027,-0.016259,0.967844,455.00605,-549.612103,242.110623,
+ 0.382469,-0.01552,0.923838,458.222196,-549.595395,241.116069,
+ 0.999747,-0.000377,0.02248,473.71772,-549.195746,217.326639,
+ 0.995804,-0.010878,0.090867,473.642039,-579.415029,219.678492,
+ 0.999748,-0.002792,0.022266,473.717738,-579.071732,216.322569,
+ 0.995804,-0.010878,0.090867,473.642039,-579.415029,219.678492,
+ 0.999747,-0.000377,0.02248,473.71772,-549.195746,217.326639,
+ 0.994417,-0.002312,0.105501,473.642021,-549.252285,220.6922,
+ -0.796291,0.144172,-0.587481,732.466052,-584.996349,120.045264,
+ -0.870211,0.051465,-0.489984,744.27504,-567.670824,104.873423,
+ -0.870211,0.117753,-0.4784,744.275047,-580.75808,102.623043,
+ -0.870211,0.051465,-0.489984,744.27504,-567.670824,104.873423,
+ -0.796291,0.144172,-0.587481,732.466052,-584.996349,120.045264,
+ -0.796291,0.062774,-0.601647,732.466044,-569.495502,122.710666,
+ 0.932875,-0.350339,0.083707,472.107183,-770.747999,59.963422,
+ 0.885205,-0.462786,0.04734,470.677482,-778.860284,30.770308,
+ 0.940951,-0.336786,0.034451,472.107168,-775.82127,30.459429,
+ 0.885205,-0.462786,0.04734,470.677482,-778.860284,30.770308,
+ 0.932875,-0.350339,0.083707,472.107183,-770.747999,59.963422,
+ 0.874212,-0.47211,0.113426,470.677497,-773.716304,60.685516,
+ -0.638578,0.17117,-0.75028,445.721721,-605.178251,203.006401,
+ -0.537771,0.08495,-0.8388,442.839452,-578.401496,209.770445,
+ -0.649249,0.076378,-0.756731,445.721707,-578.184383,207.648051,
+ -0.537771,0.08495,-0.8388,442.839452,-578.401496,209.770445,
+ -0.638578,0.17117,-0.75028,445.721721,-605.178251,203.006401,
+ -0.537771,0.198458,-0.8194,442.839466,-605.68255,205.079413,
+ 0.999748,-0.013961,0.017568,473.717777,-684.199453,174.902175,
+ 0.995804,-0.065815,0.063588,473.64208,-708.127668,158.505081,
+ 0.999748,-0.016225,0.015501,473.717779,-705.742288,156.119701,
+ 0.995804,-0.065815,0.063588,473.64208,-708.127668,158.505081,
+ 0.999748,-0.013961,0.017568,473.717777,-684.199453,174.902175,
+ 0.995804,-0.056536,0.071964,473.642079,-686.237536,177.590351,
+ -0.537771,0.198458,-0.8194,442.839466,-605.68255,205.079413,
+ -0.415875,0.091892,-0.904767,439.690582,-578.575874,211.475076,
+ -0.537771,0.08495,-0.8388,442.839452,-578.401496,209.770445,
+ -0.415875,0.091892,-0.904767,439.690582,-578.575874,211.475076,
+ -0.537771,0.198458,-0.8194,442.839466,-605.68255,205.079413,
+ -0.415875,0.214324,-0.883806,439.690597,-606.087584,206.744382,
+ 0.973657,-0.024735,0.226671,473.101722,-579.75396,222.991746,
+ 0.932875,-0.086574,0.349641,472.107183,-609.58601,221.125411,
+ 0.973657,-0.055392,0.221186,473.101737,-608.824017,217.993091,
+ 0.932875,-0.086574,0.349641,472.107183,-609.58601,221.125411,
+ 0.973657,-0.024735,0.226671,473.101722,-579.75396,222.991746,
+ 0.932875,-0.038122,0.358177,472.107168,-580.082016,226.198682,
+ 0.79876,-0.143441,0.5843,468.840142,-610.976426,226.840986,
+ 0.707841,-0.243878,0.662936,466.630427,-641.212918,219.920255,
+ 0.79876,-0.221723,0.559304,468.840155,-640.279768,217.551861,
+ 0.707841,-0.243878,0.662936,466.630427,-641.212918,219.920255,
+ 0.79876,-0.143441,0.5843,468.840142,-610.976426,226.840986,
+ 0.707841,-0.151267,0.689985,466.630415,-611.57814,229.314444,
+ 0.928983,-0.005506,0.370082,472.10715,-549.362134,227.231115,
+ 0.874212,-0.050786,0.482881,470.677482,-580.392895,229.237697,
+ 0.932875,-0.038122,0.358177,472.107168,-580.082016,226.198682,
+ 0.874212,-0.050786,0.482881,470.677482,-580.392895,229.237697,
+ 0.928983,-0.005506,0.370082,472.10715,-549.362134,227.231115,
+ 0.866918,-0.01021,0.498346,470.677463,-549.413334,230.278856,
+ 0.991932,-0.101911,0.075398,792.007218,-589.846284,32.468209,
+ 0.966794,-0.223491,0.12394,787.130189,-614.643058,40.113503,
+ 0.991932,-0.111235,0.060808,792.007217,-592.860317,27.871437,
+ 0.966794,-0.223491,0.12394,787.130189,-614.643058,40.113503,
+ 0.991932,-0.101911,0.075398,792.007218,-589.846284,32.468209,
+ 0.966794,-0.204518,0.153238,787.130191,-609.757662,47.564335,
+ 0.969153,-0.229071,0.090936,787.130187,-618.467587,32.066457,
+ 0.933102,-0.349421,0.085002,779.024159,-644.605714,29.276931,
+ 0.966774,-0.246753,0.066789,787.130183,-621.159902,23.573317,
+ 0.933102,-0.349421,0.085002,779.024159,-644.605714,29.276931,
+ 0.969153,-0.229071,0.090936,787.130187,-618.467587,32.066457,
+ 0.924993,-0.354039,0.138,779.024163,-640.917494,40.911739,
+ 0.960042,-0.279856,-0,838.782877,-630.311015,-0,
+ 0.932018,-0.362412,-0,827.969621,-662.165838,23.357838,
+ 0.9153,-0.402772,-0,827.969621,-662.165838,-0,
+ 0.932018,-0.362412,-0,827.969621,-662.165838,23.357838,
+ 0.960042,-0.279856,-0,838.782877,-630.311015,-0,
+ 0.971349,-0.237659,-0,838.782877,-630.311015,23.357838,
+ -0.729928,0,-0.683524,127.443487,-280.29408,2030.583133,
+ -0.812792,0,-0.582554,149.837908,-186.86272,2003.295453,
+ -0.849252,0,-0.527988,149.837908,-280.29408,2003.295453,
+ -0.812792,0,-0.582554,149.837908,-186.86272,2003.295453,
+ -0.729928,0,-0.683524,127.443487,-280.29408,2030.583133,
+ -0.683524,0,-0.729928,127.443487,-186.86272,2030.583133,
+ 0.946935,-0,0.321426,123.089852,-186.86272,2224.766097,
+ 0.957608,-0,0.288074,221.73981,-280.29408,2013.443961,
+ 0.989572,-0,0.144037,221.73981,-186.86272,2013.443961,
+ 0.957608,-0,0.288074,221.73981,-280.29408,2013.443961,
+ 0.946935,-0,0.321426,123.089852,-186.86272,2224.766097,
+ 0.976682,-0,0.214689,123.089852,-280.29408,2224.766097,
+ 0.932875,-0.314728,0.175187,472.107204,-748.850999,115.539467,
+ 0.874212,-0.45225,0.176701,470.677509,-764.543874,89.620732,
+ 0.932875,-0.335664,0.130666,472.107195,-761.701654,88.500895,
+ 0.874212,-0.45225,0.176701,470.677509,-764.543874,89.620732,
+ 0.932875,-0.314728,0.175187,472.107204,-748.850999,115.539467,
+ 0.874212,-0.423953,0.236679,470.677518,-751.514112,117.036157,
+ -0.985345,0.149457,-0.082208,454.431271,-719.259121,98.908612,
+ -0.999454,0.027255,-0.01868,454.797688,-702.539296,117.908241,
+ -0.999454,0.029547,-0.014792,454.797683,-716.144717,97.158293,
+ -0.999454,0.027255,-0.01868,454.797688,-702.539296,117.908241,
+ -0.985345,0.149457,-0.082208,454.431271,-719.259121,98.908612,
+ -0.985345,0.136861,-0.101808,454.431275,-705.386141,120.066621,
+ 0.361665,-0.219818,0.906024,458.222231,-612.875739,234.648467,
+ 0.487278,-0.319392,0.812741,461.269985,-642.699947,223.694428,
+ 0.487278,-0.205664,0.848683,461.269972,-612.537006,233.256044,
+ 0.487278,-0.319392,0.812741,461.269985,-642.699947,223.694428,
+ 0.361665,-0.219818,0.906024,458.222231,-612.875739,234.648467,
+ 0.361665,-0.341228,0.867619,458.222244,-643.22526,225.027705,
+ -0.9698,0.09079,-0.226373,760.201824,-578.830801,61.590563,
+ -0.993727,0.027914,-0.108296,764.031421,-566.356087,43.420852,
+ -0.993727,0.042411,-0.103482,764.031423,-571.081703,41.922837,
+ -0.993727,0.027914,-0.108296,764.031421,-566.356087,43.420852,
+ -0.9698,0.09079,-0.226373,760.201824,-578.830801,61.590563,
+ -0.9698,0.059096,-0.236633,760.201821,-571.352859,63.961061,
+ -0.040706,0.929604,-0.366305,429.267763,-750.104609,83.931667,
+ -0.150374,0.960557,-0.233917,432.83893,-758.353294,56.948209,
+ -0.040706,0.970848,-0.236215,429.267752,-758.636494,57.017104,
+ -0.150374,0.960557,-0.233917,432.83893,-758.353294,56.948209,
+ -0.040706,0.929604,-0.366305,429.267763,-750.104609,83.931667,
+ -0.150375,0.919722,-0.362627,432.838941,-749.833439,83.824825,
+ -0.985345,0.063975,-0.158123,454.431263,-625.680129,180.496989,
+ -0.999454,0.009337,-0.031696,454.797666,-600.717836,184.671001,
+ -0.999454,0.013569,-0.030128,454.797676,-624.370524,177.173126,
+ -0.999454,0.009337,-0.031696,454.797666,-600.717836,184.671001,
+ -0.985345,0.063975,-0.158123,454.431263,-625.680129,180.496989,
+ -0.985345,0.041831,-0.165366,454.431253,-601.562294,188.142314,
+ 0.874212,-0.45225,0.176701,470.677509,-764.543874,89.620732,
+ 0.79876,-0.584897,0.140986,468.840142,-776.463573,61.353839,
+ 0.874212,-0.47211,0.113426,470.677497,-773.716304,60.685516,
+ 0.79876,-0.584897,0.140986,468.840142,-776.463573,61.353839,
+ 0.874212,-0.45225,0.176701,470.677509,-764.543874,89.620732,
+ 0.79876,-0.56023,0.219373,468.840155,-767.174448,90.657181,
+ -0.494423,0.808436,-0.31934,684.332887,-704.132939,65.818702,
+ -0.599001,0.779767,-0.182103,702.221343,-699.124264,42.539571,
+ -0.494423,0.84441,-0.206198,684.332878,-710.625471,45.337452,
+ -0.599001,0.779767,-0.182103,702.221343,-699.124264,42.539571,
+ -0.494423,0.808436,-0.31934,684.332887,-704.132939,65.818702,
+ -0.606705,0.739249,-0.292265,702.221351,-693.120267,61.479696,
+ 0.506559,-0.014482,0.862083,461.269937,-549.571376,239.686382,
+ 0.583909,-0,0.811819,464.090728,-186.86272,237.849027,
+ 0.466054,-0,0.884757,461.269937,-186.86272,239.686382,
+ 0.583909,-0,0.811819,464.090728,-186.86272,237.849027,
+ 0.506559,-0.014482,0.862083,461.269937,-549.571376,239.686382,
+ 0.620913,-0.013167,0.783769,464.090728,-549.540509,237.849027,
+ 0.030867,-0.971194,0.236282,599.602131,-761.101673,57.616723,
+ 0,-0.938509,0.345255,473.717764,-752.465075,84.861676,
+ 0,-0.976801,0.214147,473.717752,-761.101674,57.616782,
+ 0,-0.938509,0.345255,473.717764,-752.465075,84.861676,
+ 0.030867,-0.971194,0.236282,599.602131,-761.101673,57.616723,
+ 0.030867,-0.929938,0.366419,599.602143,-752.465071,84.861627,
+ -0.936465,0.339085,-0.089746,753.576403,-633.437458,26.560066,
+ -0.96393,0.253712,-0.080426,760.201822,-613.067712,23.357838,
+ -0.951243,0.299703,-0.072908,757.969157,-620.274076,23.357838,
+ -0.96393,0.253712,-0.080426,760.201822,-613.067712,23.357838,
+ -0.936465,0.339085,-0.089746,753.576403,-633.437458,26.560066,
+ -0.9721,0.218065,-0.086424,760.201824,-611.21315,29.208214,
+ -0.9721,0.218065,-0.086424,760.201824,-611.21315,29.208214,
+ -0.936465,0.339085,-0.089746,753.576403,-633.437458,26.560066,
+ -0.928388,0.346265,-0.134897,753.576407,-630.223631,36.698359,
+ 0.00966,-0.995709,0.092029,448.317739,-791.272422,32.040027,
+ 0,-0.976801,0.214147,0.000035,-785.83965,63.634954,
+ 0,-0.994809,0.101765,0.000019,-791.272419,32.040275,
+ 0,-0.976801,0.214147,0.000035,-785.83965,63.634954,
+ 0.00966,-0.995709,0.092029,448.317739,-791.272422,32.040027,
+ 0.01127,-0.9716,0.236362,448.317755,-785.839647,63.634744,
+ -0.952384,0.073533,-0.295901,453.575549,-602.386639,191.530944,
+ -0.985345,0.018907,-0.169523,454.43124,-576.627626,192.429881,
+ -0.985345,0.041831,-0.165366,454.431253,-601.562294,188.142314,
+ -0.985345,0.018907,-0.169523,454.43124,-576.627626,192.429881,
+ -0.952384,0.073533,-0.295901,453.575549,-602.386639,191.530944,
+ -0.952384,0.032525,-0.303161,453.575536,-576.982526,195.899232,
+ 0.98147,-0.179832,0.066156,791.767078,-596.364536,23.357838,
+ 0.966774,-0.246753,0.066789,787.130183,-621.159902,23.573317,
+ 0.981395,-0.183023,0.058018,787.308111,-620.274132,23.357838,
+ 0.966774,-0.246753,0.066789,787.130183,-621.159902,23.573317,
+ 0.98147,-0.179832,0.066156,791.767078,-596.364536,23.357838,
+ 0.969153,-0.229071,0.090936,787.130187,-618.467587,32.066457,
+ 0.924993,-0.303632,0.228462,779.024169,-628.985711,62.142384,
+ 0.867227,-0.434695,0.24281,767.829333,-655.602109,63.132805,
+ 0.924993,-0.331932,0.184956,779.024167,-635.678246,51.93544,
+ 0.867227,-0.434695,0.24281,767.829333,-655.602109,63.132805,
+ 0.924993,-0.303632,0.228462,779.024169,-628.985711,62.142384,
+ 0.867227,-0.397554,0.299779,767.829336,-647.197908,75.95025,
+ 0.707841,-0.651123,0.273862,466.630427,-769.542842,91.59033,
+ 0.611311,-0.685845,0.394863,464.090784,-758.12892,120.753731,
+ 0.603443,-0.741548,0.293196,464.090775,-771.60356,92.402256,
+ 0.611311,-0.685845,0.394863,464.090784,-758.12892,120.753731,
+ 0.707841,-0.651123,0.273862,466.630427,-769.542842,91.59033,
+ 0.717647,-0.602641,0.349008,466.630436,-756.198062,119.668573,
+ -0.952384,0.266534,-0.148066,453.575567,-722.299342,100.61724,
+ -0.985345,0.136861,-0.101808,454.431275,-705.386141,120.066621,
+ -0.985345,0.149457,-0.082208,454.431271,-719.259121,98.908612,
+ -0.985345,0.136861,-0.101808,454.431275,-705.386141,120.066621,
+ -0.952384,0.266534,-0.148066,453.575567,-722.299342,100.61724,
+ -0.952384,0.243872,-0.183005,453.575571,-708.165176,122.173591,
+ 0,-0.016797,0.999859,0,-549.622587,242.726639,
+ -0,-0,1,93.530885,-280.29408,242.726639,
+ 0,0,1,0.000488,-280.29408,242.726639,
+ -0,-0,1,93.530885,-280.29408,242.726639,
+ 0,-0.016797,0.999859,0,-549.622587,242.726639,
+ 0.012852,-0.014396,0.999814,448.31772,-549.622454,242.726639,
+ -0,-0,1,93.530885,-280.29408,242.726639,
+ 0.007496,-0,0.999972,448.31772,-186.86272,242.726639,
+ -0,-0,1,93.530885,-186.86272,242.726639,
+ 0.007496,-0,0.999972,448.31772,-186.86272,242.726639,
+ -0,-0,1,93.530885,-280.29408,242.726639,
+ 0.012852,-0.014396,0.999814,448.31772,-549.622454,242.726639,
+ 0.277314,-0.016138,0.960644,649.884069,-549.087494,210.885907,
+ 0.360344,0,0.932819,673.957328,-186.86272,202.77988,
+ 0.234823,0,0.972038,649.884069,-186.86272,210.885907,
+ 0.360344,0,0.932819,673.957328,-186.86272,202.77988,
+ 0.277314,-0.016138,0.960644,649.884069,-549.087494,210.885907,
+ 0.401003,-0.015387,0.915947,673.957328,-548.951312,202.77988,
+ 0.499663,-0.754768,0.425045,696.7588,-717.703482,98.034266,
+ 0.381503,-0.736251,0.558918,673.957381,-712.905798,125.767735,
+ 0.381503,-0.805545,0.453379,673.957376,-727.485522,103.531853,
+ 0.381503,-0.736251,0.558918,673.957381,-712.905798,125.767735,
+ 0.499663,-0.754768,0.425045,696.7588,-717.703482,98.034266,
+ 0.499663,-0.689808,0.523929,696.758805,-703.964135,118.988469,
+ -0,0.938509,-0.345255,0.01629,-750.104623,83.931833,
+ -0.040706,0.970848,-0.236215,429.267752,-758.636494,57.017104,
+ -0,0.976801,-0.214147,0.016279,-758.636496,57.017305,
+ -0.040706,0.970848,-0.236215,429.267752,-758.636494,57.017104,
+ -0,0.938509,-0.345255,0.01629,-750.104623,83.931833,
+ -0.040706,0.929604,-0.366305,429.267763,-750.104609,83.931667,
+ -0.999454,0.031287,-0.010628,454.797676,-726.795714,74.747937,
+ -0.999345,-0.03194,0.017004,454.667766,-713.015957,95.399907,
+ -0.999345,-0.033959,0.012493,454.667758,-723.45653,73.432296,
+ -0.999345,-0.03194,0.017004,454.667766,-713.015957,95.399907,
+ -0.999454,0.031287,-0.010628,454.797676,-726.795714,74.747937,
+ -0.999454,0.029547,-0.014792,454.797683,-716.144717,97.158293,
+ 0.256673,-0.228081,0.939201,649.8841,-605.713302,205.206225,
+ 0.381503,-0.338316,0.860231,673.957369,-629.139245,189.276665,
+ 0.381503,-0.21794,0.898308,673.957358,-603.792753,197.311473,
+ 0.381503,-0.338316,0.860231,673.957369,-629.139245,189.276665,
+ 0.256673,-0.228081,0.939201,649.8841,-605.713302,205.206225,
+ 0.256673,-0.353935,0.899361,649.884111,-632.117666,196.836073,
+ -0.373111,0.862993,-0.340635,665.021379,-712.807071,69.236324,
+ -0.494423,0.84441,-0.206198,684.332878,-710.625471,45.337452,
+ -0.373111,0.90136,-0.219861,665.02137,-719.684398,47.541206,
+ -0.494423,0.84441,-0.206198,684.332878,-710.625471,45.337452,
+ -0.373111,0.862993,-0.340635,665.021379,-712.807071,69.236324,
+ -0.494423,0.808436,-0.31934,684.332887,-704.132939,65.818702,
+ -0.716622,0.0095,-0.697397,718.363068,-547.889718,139.587655,
+ -0.7818,0,-0.623529,732.466031,-186.86272,123.445905,
+ -0.795651,0.010475,-0.605664,732.466031,-547.618545,123.445905,
+ -0.7818,0,-0.623529,732.466031,-186.86272,123.445905,
+ -0.716622,0.0095,-0.697397,718.363068,-547.889718,139.587655,
+ -0.691044,0,-0.722813,718.363068,-186.86272,139.587655,
+ -0.373111,0.808526,-0.455054,665.021386,-703.037584,89.791929,
+ -0.494423,0.808436,-0.31934,684.332887,-704.132939,65.818702,
+ -0.373111,0.862993,-0.340635,665.021379,-712.807071,69.236324,
+ -0.494423,0.808436,-0.31934,684.332887,-704.132939,65.818702,
+ -0.373111,0.808526,-0.455054,665.021386,-703.037584,89.791929,
+ -0.494423,0.75738,-0.426523,684.332893,-694.910066,85.224197,
+ 0.966794,-0.204518,0.153238,787.130191,-609.757662,47.564335,
+ 0.924993,-0.331932,0.184956,779.024167,-635.678246,51.93544,
+ 0.966794,-0.223491,0.12394,787.130189,-614.643058,40.113503,
+ 0.924993,-0.331932,0.184956,779.024167,-635.678246,51.93544,
+ 0.966794,-0.204518,0.153238,787.130191,-609.757662,47.564335,
+ 0.924993,-0.303632,0.228462,779.024169,-628.985711,62.142384,
+ 0.794465,-0.14471,0.589818,753.739273,-589.30933,137.774661,
+ 0.707841,-0.243878,0.662936,736.997686,-613.697356,150.084182,
+ 0.794465,-0.223732,0.564597,753.73928,-606.678073,132.26879,
+ 0.707841,-0.243878,0.662936,736.997686,-613.697356,150.084182,
+ 0.794465,-0.14471,0.589818,753.739273,-589.30933,137.774661,
+ 0.707841,-0.151267,0.689985,736.997677,-593.835505,156.380365,
+ 0.487278,-0.088099,0.868791,461.269956,-581.352493,238.618284,
+ 0.603443,-0.187559,0.775035,464.090763,-612.101686,231.466578,
+ 0.603443,-0.080198,0.793363,464.090747,-581.165077,236.78619,
+ 0.603443,-0.187559,0.775035,464.090763,-612.101686,231.466578,
+ 0.487278,-0.088099,0.868791,461.269956,-581.352493,238.618284,
+ 0.487278,-0.205664,0.848683,461.269972,-612.537006,233.256044,
+ -0.606705,0.739249,-0.292265,702.221351,-693.120267,61.479696,
+ -0.714681,0.677849,-0.172485,718.363091,-685.388881,39.198188,
+ -0.599001,0.779767,-0.182103,702.221343,-699.124264,42.539571,
+ -0.714681,0.677849,-0.172485,718.363091,-685.388881,39.198188,
+ -0.606705,0.739249,-0.292265,702.221351,-693.120267,61.479696,
+ -0.707841,0.651123,-0.273862,718.363098,-679.96832,56.297814,
+ -0.150375,0.919722,-0.362627,432.838941,-749.833439,83.824825,
+ -0.285905,0.930996,-0.226946,436.335601,-757.591911,56.762987,
+ -0.150374,0.960557,-0.233917,432.83893,-758.353294,56.948209,
+ -0.285905,0.930996,-0.226946,436.335601,-757.591911,56.762987,
+ -0.150375,0.919722,-0.362627,432.838941,-749.833439,83.824825,
+ -0.285905,0.891387,-0.351693,436.335613,-749.104397,83.53758,
+ 0.01127,-0.9716,0.236362,448.317755,-785.839647,63.634744,
+ 0,-0.938509,0.345255,0.000048,-776.152271,94.194624,
+ 0,-0.976801,0.214147,0.000035,-785.83965,63.634954,
+ 0,-0.938509,0.345255,0.000048,-776.152271,94.194624,
+ 0.01127,-0.9716,0.236362,448.317755,-785.839647,63.634744,
+ 0.011271,-0.930329,0.366553,448.317768,-776.152256,94.194451,
+ -0.901181,0.378553,-0.211115,452.247009,-725.206979,102.251354,
+ -0.952384,0.243872,-0.183005,453.575571,-708.165176,122.173591,
+ -0.952384,0.266534,-0.148066,453.575567,-722.299342,100.61724,
+ -0.952384,0.243872,-0.183005,453.575571,-708.165176,122.173591,
+ -0.901181,0.378553,-0.211115,452.247009,-725.206979,102.251354,
+ -0.901181,0.346254,-0.26073,452.247014,-710.823017,124.188674,
+ -0.9698,0.213348,-0.118196,760.201826,-607.845772,36.293385,
+ -0.993727,0.090031,-0.066344,764.031425,-586.699189,30.082194,
+ -0.993727,0.098232,-0.053457,764.031424,-589.417442,25.936523,
+ -0.993727,0.090031,-0.066344,764.031425,-586.699189,30.082194,
+ -0.9698,0.213348,-0.118196,760.201826,-607.845772,36.293385,
+ -0.9698,0.195252,-0.146165,760.201828,-603.544336,42.853607,
+ -0.537771,0.671316,-0.510036,442.83949,-719.276356,130.597708,
+ -0.649152,0.654437,-0.387703,445.72174,-732.59493,106.40344,
+ -0.537771,0.734555,-0.413801,442.839485,-734.454802,107.448703,
+ -0.649152,0.654437,-0.387703,445.72174,-732.59493,106.40344,
+ -0.537771,0.671316,-0.510036,442.83949,-719.276356,130.597708,
+ -0.649152,0.595502,-0.473264,445.721745,-717.576266,129.308758,
+ -0.707841,0.055835,-0.704162,718.363082,-571.142012,138.806193,
+ -0.613495,0.011257,-0.789618,702.221319,-548.126642,153.690618,
+ -0.716622,0.0095,-0.697397,718.363068,-547.889718,139.587655,
+ -0.613495,0.011257,-0.789618,702.221319,-548.126642,153.690618,
+ -0.707841,0.055835,-0.704162,718.363082,-571.142012,138.806193,
+ -0.606705,0.079969,-0.790894,702.221333,-572.580561,152.868772,
+ -0.285905,0.76333,-0.579298,436.335626,-721.646389,132.394587,
+ -0.415875,0.792474,-0.446131,439.690616,-735.948584,108.28822,
+ -0.285905,0.835148,-0.469878,436.335621,-737.047581,108.905866,
+ -0.415875,0.792474,-0.446131,439.690616,-735.948584,108.28822,
+ -0.285905,0.76333,-0.579298,436.335626,-721.646389,132.394587,
+ -0.415875,0.72429,-0.549957,439.690621,-720.641807,131.632947,
+ -0.691044,0,-0.722813,718.363068,-186.86272,139.587655,
+ -0.613495,0.011257,-0.789618,702.221319,-548.126642,153.690618,
+ -0.605809,0,-0.79561,702.221319,-186.86272,153.690618,
+ -0.613495,0.011257,-0.789618,702.221319,-548.126642,153.690618,
+ -0.691044,0,-0.722813,718.363068,-186.86272,139.587655,
+ -0.716622,0.0095,-0.697397,718.363068,-547.889718,139.587655,
+ 0.999748,-0.02106,0.007747,473.717764,-752.465075,84.861676,
+ 0.995804,-0.089282,0.020098,473.642053,-764.379515,58.414175,
+ 0.999748,-0.021919,0.004805,473.717752,-761.101674,57.616782,
+ 0.995804,-0.089282,0.020098,473.642053,-764.379515,58.414175,
+ 0.999748,-0.02106,0.007747,473.717764,-752.465075,84.861676,
+ 0.995804,-0.08571,0.032077,473.642065,-755.603683,86.09829,
+ -0.438529,0.898717,-0,629.962605,-661.494594,5.83946,
+ -0.374833,0.927092,-0,617.239549,-667.162466,-0,
+ -0.342242,0.939612,-0,617.239549,-667.162466,5.83946,
+ -0.374833,0.927092,-0,617.239549,-667.162466,-0,
+ -0.438529,0.898717,-0,629.962605,-661.494594,5.83946,
+ -0.469634,0.882861,-0,629.962605,-661.494594,-0,
+ -0.022557,0.236303,-0.971418,602.13328,-599.869416,181.183686,
+ -0,0.124431,-0.992228,454.667737,-575.898832,185.305489,
+ -0.022557,0.101727,-0.994557,602.133267,-575.89875,185.30549,
+ -0,0.124431,-0.992228,454.667737,-575.898832,185.305489,
+ -0.022557,0.236303,-0.971418,602.13328,-599.869416,181.183686,
+ -0,0.258478,-0.966017,454.667749,-599.869485,181.183687,
+ -0.881047,0.459625,-0.111811,744.275047,-652.24563,31.135492,
+ -0.928388,0.346265,-0.134897,753.576407,-630.223631,36.698359,
+ -0.936465,0.339085,-0.089746,753.576403,-633.437458,26.560066,
+ -0.928388,0.346265,-0.134897,753.576407,-630.223631,36.698359,
+ -0.881047,0.459625,-0.111811,744.275047,-652.24563,31.135492,
+ -0.870211,0.458871,-0.17936,744.275052,-648.232891,43.794023,
+ 0.79876,-0.062483,0.598396,468.840127,-580.680624,232.05041,
+ 0.707841,-0.151267,0.689985,466.630415,-611.57814,229.314444,
+ 0.79876,-0.143441,0.5843,468.840142,-610.976426,226.840986,
+ 0.707841,-0.151267,0.689985,466.630415,-611.57814,229.314444,
+ 0.79876,-0.062483,0.598396,468.840127,-580.680624,232.05041,
+ 0.707841,-0.055835,0.704162,466.630399,-580.939677,234.58279,
+ -0.748179,0.617743,-0.242119,448.282005,-742.014746,80.744249,
+ -0.832687,0.483376,-0.27015,450.47112,-727.926176,103.779563,
+ -0.832687,0.515679,-0.201762,450.471112,-739.369533,79.702032,
+ -0.832687,0.483376,-0.27015,450.47112,-727.926176,103.779563,
+ -0.748179,0.617743,-0.242119,448.282005,-742.014746,80.744249,
+ -0.748179,0.578988,-0.324038,448.282012,-730.404697,105.172511,
+ 0.603443,-0.080198,0.793363,464.090747,-581.165077,236.78619,
+ 0.707841,-0.151267,0.689985,466.630415,-611.57814,229.314444,
+ 0.707841,-0.055835,0.704162,466.630399,-580.939677,234.58279,
+ 0.707841,-0.151267,0.689985,466.630415,-611.57814,229.314444,
+ 0.603443,-0.080198,0.793363,464.090747,-581.165077,236.78619,
+ 0.603443,-0.187559,0.775035,464.090763,-612.101686,231.466578,
+ 0.361665,-0.094307,0.927526,458.222215,-581.498327,240.043877,
+ 0.487278,-0.205664,0.848683,461.269972,-612.537006,233.256044,
+ 0.487278,-0.088099,0.868791,461.269956,-581.352493,238.618284,
+ 0.487278,-0.205664,0.848683,461.269972,-612.537006,233.256044,
+ 0.361665,-0.094307,0.927526,458.222215,-581.498327,240.043877,
+ 0.361665,-0.219818,0.906024,458.222231,-612.875739,234.648467,
+ -0.683524,0,-0.729928,127.443487,-186.86272,2030.583133,
+ -0.582554,0,-0.812792,100.155807,-280.29408,2052.977553,
+ -0.527988,0,-0.849252,100.155807,-186.86272,2052.977553,
+ -0.582554,0,-0.812792,100.155807,-280.29408,2052.977553,
+ -0.683524,0,-0.729928,127.443487,-186.86272,2030.583133,
+ -0.729928,0,-0.683524,127.443487,-280.29408,2030.583133,
+ -0.227168,0,0.973856,35.238106,-280.29408,1394.271064,
+ -0.352162,0,0.935939,69.013887,-186.86272,1404.516835,
+ -0.162803,0,0.986659,35.238106,-186.86272,1394.271064,
+ -0.352162,0,0.935939,69.013887,-186.86272,1404.516835,
+ -0.227168,0,0.973856,35.238106,-280.29408,1394.271064,
+ -0.412792,0,0.910825,69.013887,-280.29408,1404.516835,
+ -0.415875,0.792474,-0.446131,439.690616,-735.948584,108.28822,
+ -0.537771,0.78409,-0.309846,442.839477,-746.337241,82.447316,
+ -0.415875,0.845875,-0.333982,439.690608,-747.931487,83.075452,
+ -0.537771,0.78409,-0.309846,442.839477,-746.337241,82.447316,
+ -0.415875,0.792474,-0.446131,439.690616,-735.948584,108.28822,
+ -0.537771,0.734555,-0.413801,442.839485,-734.454802,107.448703,
+ 0.041063,-0.016783,0.999016,599.602099,-549.195708,217.326639,
+ 0.127347,-0.100746,0.986728,624.955308,-578.912147,214.763349,
+ 0.148826,-0.01661,0.988724,624.95529,-549.169432,215.762941,
+ 0.127347,-0.100746,0.986728,624.955308,-578.912147,214.763349,
+ 0.041063,-0.016783,0.999016,599.602099,-549.195708,217.326639,
+ 0.030866,-0.101695,0.994337,599.602117,-579.071663,216.32257,
+ 0,-0.258478,0.966017,0.000035,-613.257542,236.217062,
+ 0.011271,-0.366548,0.930331,448.317768,-643.817038,226.529669,
+ 0.01127,-0.236356,0.971601,448.317755,-613.257332,236.21706,
+ 0.011271,-0.366548,0.930331,448.317768,-643.817038,226.529669,
+ 0,-0.258478,0.966017,0.000035,-613.257542,236.217062,
+ 0,-0.387702,0.921785,0.000048,-643.817211,226.529683,
+ 0,-0.124431,0.992228,473.717738,-579.071732,216.322569,
+ 0.030867,-0.23624,0.971204,599.602131,-607.23931,211.479086,
+ 0.030866,-0.101695,0.994337,599.602117,-579.071663,216.32257,
+ 0.030867,-0.23624,0.971204,599.602131,-607.23931,211.479086,
+ 0,-0.124431,0.992228,473.717738,-579.071732,216.322569,
+ 0,-0.258478,0.966017,473.717752,-607.239369,211.479086,
+ 0.924993,-0.354039,0.138,779.024163,-640.917494,40.911739,
+ 0.87794,-0.465203,0.113169,767.829322,-666.812843,34.679214,
+ 0.933102,-0.349421,0.085002,779.024159,-644.605714,29.276931,
+ 0.87794,-0.465203,0.113169,767.829322,-666.812843,34.679214,
+ 0.924993,-0.354039,0.138,779.024163,-640.917494,40.911739,
+ 0.867227,-0.463727,0.18131,767.829328,-662.181333,49.28971,
+ 0.999748,-0.002792,0.022266,473.717738,-579.071732,216.322569,
+ 0.995804,-0.023158,0.088537,473.642053,-608.036762,214.756927,
+ 0.999748,-0.0058,0.021677,473.717752,-607.239369,211.479086,
+ 0.995804,-0.023158,0.088537,473.642053,-608.036762,214.756927,
+ 0.999748,-0.002792,0.022266,473.717738,-579.071732,216.322569,
+ 0.995804,-0.010878,0.090867,473.642039,-579.415029,219.678492,
+ -0.373111,0.655639,-0.656449,665.021391,-675.601701,125.979113,
+ -0.494423,0.692194,-0.52575,684.332897,-683.128909,103.191916,
+ -0.373111,0.738976,-0.560984,665.02139,-690.558191,108.824546,
+ -0.494423,0.692194,-0.52575,684.332897,-683.128909,103.191916,
+ -0.373111,0.655639,-0.656449,665.021391,-675.601701,125.979113,
+ -0.494423,0.614096,-0.615169,684.332898,-669.009253,119.386665,
+ -0.9698,0.0263,-0.242479,760.201817,-563.621651,65.290458,
+ -0.9937,0.002257,-0.112046,764.031409,-546.296855,44.770904,
+ -0.993727,0.012896,-0.111089,764.031418,-561.470422,44.260952,
+ -0.9937,0.002257,-0.112046,764.031409,-546.296855,44.770904,
+ -0.9698,0.0263,-0.242479,760.201817,-563.621651,65.290458,
+ -0.969674,0.004471,-0.24436,760.201807,-546.651151,65.860802,
+ 0.229024,-0.098699,0.968404,455.006069,-581.599776,241.035583,
+ 0.361665,-0.219818,0.906024,458.222231,-612.875739,234.648467,
+ 0.361665,-0.094307,0.927526,458.222215,-581.498327,240.043877,
+ 0.361665,-0.219818,0.906024,458.222231,-612.875739,234.648467,
+ 0.229024,-0.098699,0.968404,455.006069,-581.599776,241.035583,
+ 0.229025,-0.229739,0.945922,455.006085,-613.111378,235.617099,
+ -0.985345,0.041831,-0.165366,454.431253,-601.562294,188.142314,
+ -0.999454,0.00493,-0.032673,454.797654,-576.264066,188.875876,
+ -0.999454,0.009337,-0.031696,454.797666,-600.717836,184.671001,
+ -0.999454,0.00493,-0.032673,454.797654,-576.264066,188.875876,
+ -0.985345,0.041831,-0.165366,454.431253,-601.562294,188.142314,
+ -0.985345,0.018907,-0.169523,454.43124,-576.627626,192.429881,
+ -0.9698,0.059096,-0.236633,760.201821,-571.352859,63.961061,
+ -0.993727,0.012896,-0.111089,764.031418,-561.470422,44.260952,
+ -0.993727,0.027914,-0.108296,764.031421,-566.356087,43.420852,
+ -0.993727,0.012896,-0.111089,764.031418,-561.470422,44.260952,
+ -0.9698,0.059096,-0.236633,760.201821,-571.352859,63.961061,
+ -0.9698,0.0263,-0.242479,760.201817,-563.621651,65.290458,
+ 0.973657,-0.055392,0.221186,473.101737,-608.824017,217.993091,
+ 0.932875,-0.133411,0.334583,472.107195,-638.123482,212.079066,
+ 0.973657,-0.085015,0.211575,473.101749,-636.941768,209.079797,
+ 0.932875,-0.133411,0.334583,472.107195,-638.123482,212.079066,
+ 0.973657,-0.055392,0.221186,473.101737,-608.824017,217.993091,
+ 0.932875,-0.086574,0.349641,472.107183,-609.58601,221.125411,
+ 0.999748,-0.0087,0.020685,473.717764,-634.484263,202.842487,
+ 0.995804,-0.046203,0.078997,473.642074,-661.950913,193.514715,
+ 0.999748,-0.011437,0.019306,473.717772,-660.298148,190.573891,
+ 0.995804,-0.046203,0.078997,473.642074,-661.950913,193.514715,
+ 0.999748,-0.0087,0.020685,473.717764,-634.484263,202.842487,
+ 0.995804,-0.035007,0.084556,473.642065,-635.720877,205.981096,
+ -0.244971,0.845012,-0.475335,644.636259,-708.826871,93.045557,
+ -0.373111,0.862993,-0.340635,665.021379,-712.807071,69.236324,
+ -0.244971,0.901902,-0.355754,644.636252,-718.985715,71.670721,
+ -0.373111,0.862993,-0.340635,665.021379,-712.807071,69.236324,
+ -0.244971,0.845012,-0.475335,644.636259,-708.826871,93.045557,
+ -0.373111,0.808526,-0.455054,665.021386,-703.037584,89.791929,
+ -0.9721,0.218065,-0.086424,760.201824,-611.21315,29.208214,
+ -0.99093,0.121368,-0.057682,764.031423,-590.643016,23.357838,
+ -0.983984,0.16585,-0.065345,763.093075,-596.364509,23.357838,
+ -0.99093,0.121368,-0.057682,764.031423,-590.643016,23.357838,
+ -0.9721,0.218065,-0.086424,760.201824,-611.21315,29.208214,
+ -0.993727,0.098232,-0.053457,764.031424,-589.417442,25.936523,
+ -0.993727,0.098232,-0.053457,764.031424,-589.417442,25.936523,
+ -0.9721,0.218065,-0.086424,760.201824,-611.21315,29.208214,
+ -0.9698,0.213348,-0.118196,760.201826,-607.845772,36.293385,
+ -0.748179,0.529432,-0.399912,448.282017,-715.574197,127.790857,
+ -0.832687,0.392486,-0.390624,450.471126,-695.789522,146.166935,
+ -0.832687,0.442054,-0.333498,450.471124,-713.308606,126.073164,
+ -0.832687,0.392486,-0.390624,450.471126,-695.789522,146.166935,
+ -0.748179,0.529432,-0.399912,448.282017,-715.574197,127.790857,
+ -0.748179,0.469999,-0.468325,448.282019,-697.799917,148.177329,
+ 0.499663,-0.805647,0.318231,696.758793,-728.459324,75.40331,
+ 0.381503,-0.805545,0.453379,673.957376,-727.485522,103.531853,
+ 0.381503,-0.859811,0.339381,673.957369,-738.899253,79.516658,
+ 0.381503,-0.805545,0.453379,673.957376,-727.485522,103.531853,
+ 0.499663,-0.805647,0.318231,696.758793,-728.459324,75.40331,
+ 0.499663,-0.754768,0.425045,696.7588,-717.703482,98.034266,
+ 0.256673,-0.842365,0.473857,649.884119,-734.568562,107.512581,
+ 0.127347,-0.790262,0.59939,624.955347,-723.275771,133.6299,
+ 0.127347,-0.864568,0.486113,624.955342,-738.83011,109.90761,
+ 0.127347,-0.790262,0.59939,624.955347,-723.275771,133.6299,
+ 0.256673,-0.842365,0.473857,649.884119,-734.568562,107.512581,
+ 0.256673,-0.769937,0.584223,649.884124,-719.380332,130.676509,
+ 0.932875,-0.335664,0.130666,472.107195,-761.701654,88.500895,
+ 0.874212,-0.47211,0.113426,470.677497,-773.716304,60.685516,
+ 0.932875,-0.350339,0.083707,472.107183,-770.747999,59.963422,
+ 0.874212,-0.47211,0.113426,470.677497,-773.716304,60.685516,
+ 0.932875,-0.335664,0.130666,472.107195,-761.701654,88.500895,
+ 0.874212,-0.45225,0.176701,470.677509,-764.543874,89.620732,
+ -0.040706,0.970848,-0.236215,429.267752,-758.636494,57.017104,
+ -0.150374,0.983472,-0.100844,432.838915,-763.131306,29.161323,
+ -0.040706,0.99398,-0.101718,429.267738,-763.421251,29.190985,
+ -0.150374,0.983472,-0.100844,432.838915,-763.131306,29.161323,
+ -0.040706,0.970848,-0.236215,429.267752,-758.636494,57.017104,
+ -0.150374,0.960557,-0.233917,432.83893,-758.353294,56.948209,
+ -0.040706,0.706494,-0.706547,429.267778,-703.948313,154.325725,
+ -0.150375,0.787661,-0.597476,432.838954,-722.270805,132.867998,
+ -0.040706,0.796183,-0.603686,429.267777,-722.503059,133.044086,
+ -0.150375,0.787661,-0.597476,432.838954,-722.270805,132.867998,
+ -0.040706,0.706494,-0.706547,429.267778,-703.948313,154.325725,
+ -0.150375,0.698898,-0.699234,432.838956,-703.74222,154.119632,
+ -0.656747,0.730839,-0.185896,445.721721,-752.628988,55.555664,
+ -0.754707,0.651908,-0.073718,448.28198,-754.771252,28.306118,
+ -0.649249,0.756522,-0.078421,445.721707,-757.270639,28.561795,
+ -0.754707,0.651908,-0.073718,448.28198,-754.771252,28.306118,
+ -0.656747,0.730839,-0.185896,445.721721,-752.628988,55.555664,
+ -0.757296,0.632534,-0.162491,448.281994,-750.187755,54.961789,
+ 0.361665,-0.742579,0.563715,458.222259,-743.526109,148.983038,
+ 0.229025,-0.688056,0.688568,455.006115,-723.308225,173.685638,
+ 0.229025,-0.775467,0.588387,455.006113,-744.32049,149.585311,
+ 0.229025,-0.688056,0.688568,455.006115,-723.308225,173.685638,
+ 0.361665,-0.742579,0.563715,458.222259,-743.526109,148.983038,
+ 0.361665,-0.658837,0.659646,458.22226,-722.603323,172.980735,
+ -0.748179,0.469999,-0.468325,448.282019,-697.799917,148.177329,
+ -0.832687,0.335596,-0.440463,450.471124,-675.695751,163.686019,
+ -0.832687,0.392486,-0.390624,450.471126,-695.789522,146.166935,
+ -0.832687,0.335596,-0.440463,450.471124,-675.695751,163.686019,
+ -0.748179,0.469999,-0.468325,448.282019,-697.799917,148.177329,
+ -0.748179,0.401798,-0.528002,448.282017,-677.413444,165.951609,
+ 0.932875,-0.255741,0.253655,472.107211,-712.762199,163.139612,
+ 0.874212,-0.387747,0.292242,470.677524,-734.870094,142.420342,
+ 0.932875,-0.28792,0.21644,472.107209,-732.43577,140.574721,
+ 0.874212,-0.387747,0.292242,470.677524,-734.870094,142.420342,
+ 0.932875,-0.255741,0.253655,472.107211,-712.762199,163.139612,
+ 0.874212,-0.344308,0.342352,470.677525,-714.922322,165.299734,
+ 0.874212,-0.344308,0.342352,470.677525,-714.922322,165.299734,
+ 0.79876,-0.480196,0.362483,468.840169,-737.123146,144.128529,
+ 0.874212,-0.387747,0.292242,470.677524,-734.870094,142.420342,
+ 0.79876,-0.480196,0.362483,468.840169,-737.123146,144.128529,
+ 0.874212,-0.344308,0.342352,470.677525,-714.922322,165.299734,
+ 0.79876,-0.426323,0.424536,468.840171,-716.92159,167.299002,
+ 0.011271,-0.930329,0.366553,448.317768,-776.152256,94.194451,
+ 0,-0.882708,0.469921,0.000057,-762.391004,123.149179,
+ 0,-0.938509,0.345255,0.000048,-776.152271,94.194624,
+ 0,-0.882708,0.469921,0.000057,-762.391004,123.149179,
+ 0.011271,-0.930329,0.366553,448.317768,-776.152256,94.194451,
+ 0.011271,-0.871702,0.489906,448.317778,-762.390973,123.149041,
+ -0.999454,0.024455,-0.02222,454.797689,-686.233268,136.610681,
+ -0.999345,-0.022513,0.028328,454.66777,-665.3625,150.056742,
+ -0.999345,-0.026163,0.024996,454.667771,-683.695448,134.072861,
+ -0.999345,-0.022513,0.028328,454.66777,-665.3625,150.056742,
+ -0.999454,0.024455,-0.02222,454.797689,-686.233268,136.610681,
+ -0.999454,0.021199,-0.025346,454.797688,-667.530829,152.916709,
+ -0.537771,0.308263,-0.784714,442.839477,-632.069904,196.714653,
+ -0.415875,0.214324,-0.883806,439.690597,-606.087584,206.744382,
+ -0.537771,0.198458,-0.8194,442.839466,-605.68255,205.079413,
+ -0.415875,0.214324,-0.883806,439.690597,-606.087584,206.744382,
+ -0.537771,0.308263,-0.784714,442.839477,-632.069904,196.714653,
+ -0.415875,0.332758,-0.846357,439.690608,-632.698039,198.308899,
+ -0.748179,0.578988,-0.324038,448.282012,-730.404697,105.172511,
+ -0.832687,0.442054,-0.333498,450.471124,-713.308606,126.073164,
+ -0.832687,0.483376,-0.27015,450.47112,-727.926176,103.779563,
+ -0.832687,0.442054,-0.333498,450.471124,-713.308606,126.073164,
+ -0.748179,0.578988,-0.324038,448.282012,-730.404697,105.172511,
+ -0.748179,0.529432,-0.399912,448.282017,-715.574197,127.790857,
+ -0.415875,0.091892,-0.904767,439.690582,-578.575874,211.475076,
+ -0.285329,0.015988,-0.958296,436.33557,-549.135218,213.722949,
+ -0.41512,0.01512,-0.909641,439.690565,-549.114088,212.465226,
+ -0.285329,0.015988,-0.958296,436.33557,-549.135218,213.722949,
+ -0.415875,0.091892,-0.904767,439.690582,-578.575874,211.475076,
+ -0.285905,0.097067,-0.953329,436.335587,-578.704167,212.729198,
+ -0.832687,0.204213,-0.514714,450.471112,-629.324619,189.746946,
+ -0.901181,0.103838,-0.42082,452.246991,-603.175034,194.771794,
+ -0.901181,0.160213,-0.402745,452.247002,-628.181199,186.84487,
+ -0.901181,0.103838,-0.42082,452.246991,-603.175034,194.771794,
+ -0.832687,0.204213,-0.514714,450.471112,-629.324619,189.746946,
+ -0.832687,0.13217,-0.53774,450.471101,-603.912334,197.80261,
+ 0.381503,-0.91951,0.094637,673.957345,-751.440053,27.965226,
+ 0.256673,-0.939019,0.228829,649.8841,-754.828812,56.090715,
+ 0.256672,-0.961442,0.098738,649.884086,-759.522868,28.792076,
+ 0.256673,-0.939019,0.228829,649.8841,-754.828812,56.090715,
+ 0.381503,-0.91951,0.094637,673.957345,-751.440053,27.965226,
+ 0.381503,-0.898037,0.219052,673.957358,-746.934061,54.170165,
+ 0.625544,-0.013105,0.780079,717.89403,-548.526532,177.494989,
+ 0.691408,-0,0.722464,736.997652,-186.86272,160.753391,
+ 0.590628,-0,0.806944,717.89403,-186.86272,177.494989,
+ 0.691408,-0,0.722464,736.997652,-186.86272,160.753391,
+ 0.625544,-0.013105,0.780079,717.89403,-548.526532,177.494989,
+ 0.716411,-0.0095,0.697614,736.997652,-548.24528,160.753391,
+ -0.022557,0.36647,-0.930156,602.133289,-623.054827,173.833938,
+ -0,0.258478,-0.966017,454.667749,-599.869485,181.183687,
+ -0.022557,0.236303,-0.971418,602.13328,-599.869416,181.183686,
+ -0,0.258478,-0.966017,454.667749,-599.869485,181.183687,
+ -0.022557,0.36647,-0.930156,602.133289,-623.054827,173.833938,
+ -0,0.387702,-0.921785,454.667758,-623.054884,173.833943,
+ 0.499663,-0.689808,0.523929,696.758805,-703.964135,118.988469,
+ 0.381503,-0.653222,0.654031,673.957383,-695.432071,145.809483,
+ 0.381503,-0.736251,0.558918,673.957381,-712.905798,125.767735,
+ 0.381503,-0.653222,0.654031,673.957383,-695.432071,145.809483,
+ 0.499663,-0.689808,0.523929,696.758805,-703.964135,118.988469,
+ 0.499663,-0.61198,0.61304,696.758806,-687.497596,137.875009,
+ -0.901181,0.40379,-0.157562,452.247002,-736.467457,78.558611,
+ -0.952384,0.266534,-0.148066,453.575567,-722.299342,100.61724,
+ -0.952384,0.284225,-0.110366,453.575559,-733.364268,77.335952,
+ -0.952384,0.266534,-0.148066,453.575567,-722.299342,100.61724,
+ -0.901181,0.40379,-0.157562,452.247002,-736.467457,78.558611,
+ -0.901181,0.378553,-0.211115,452.247009,-725.206979,102.251354,
+ 0.381503,-0.805545,0.453379,673.957376,-727.485522,103.531853,
+ 0.256673,-0.769937,0.584223,649.884124,-719.380332,130.676509,
+ 0.256673,-0.842365,0.473857,649.884119,-734.568562,107.512581,
+ 0.256673,-0.769937,0.584223,649.884124,-719.380332,130.676509,
+ 0.381503,-0.805545,0.453379,673.957376,-727.485522,103.531853,
+ 0.381503,-0.736251,0.558918,673.957381,-712.905798,125.767735,
+ -0.606606,0.46573,-0.644302,702.22136,-645.663324,124.074113,
+ -0.494423,0.4252,-0.758123,684.332893,-634.846784,145.287478,
+ -0.595888,0.383438,-0.705615,702.221357,-629.047597,134.968788,
+ -0.494423,0.4252,-0.758123,684.332893,-634.846784,145.287478,
+ -0.606606,0.46573,-0.644302,702.22136,-645.663324,124.074113,
+ -0.494423,0.524541,-0.693111,684.332897,-652.814504,133.506322,
+ -0.244971,0.585448,-0.772813,644.636264,-662.459295,146.227532,
+ -0.112343,0.486683,-0.866325,623.546362,-644.548798,162.550587,
+ -0.244971,0.474679,-0.845381,644.636259,-642.668145,159.204284,
+ -0.112343,0.486683,-0.866325,623.546362,-644.548798,162.550587,
+ -0.244971,0.585448,-0.772813,644.636264,-662.459295,146.227532,
+ -0.112343,0.600194,-0.791925,623.546367,-664.778393,149.286355,
+ 0.030867,-0.871333,0.489721,599.602151,-740.19647,110.675522,
+ 0,-0.81044,0.585821,473.717777,-724.524762,134.576865,
+ 0,-0.882708,0.469921,473.717772,-740.196479,110.67556,
+ 0,-0.81044,0.585821,473.717777,-724.524762,134.576865,
+ 0.030867,-0.871333,0.489721,599.602151,-740.19647,110.675522,
+ 0.030867,-0.796473,0.603886,599.602156,-724.524748,134.576836,
+ 0.993395,-0.114677,0.003853,473.642035,-769.517334,23.357838,
+ 0.978666,-0.204393,0.020908,473.101722,-772.614333,30.131373,
+ 0.967989,-0.250852,0.00843,473.101718,-772.841978,23.357838,
+ 0.978666,-0.204393,0.020908,473.101722,-772.614333,30.131373,
+ 0.993395,-0.114677,0.003853,473.642035,-769.517334,23.357838,
+ 0.997653,-0.068124,0.006968,473.642039,-769.30108,29.792441,
+ -0.040706,0.603626,-0.796228,429.267777,-682.666673,172.880471,
+ -0,0.509694,-0.860356,0.016298,-659.055291,188.362206,
+ -0.040706,0.489496,-0.871055,429.267772,-659.055159,188.362176,
+ -0,0.509694,-0.860356,0.016298,-659.055291,188.362206,
+ -0.040706,0.603626,-0.796228,429.267777,-682.666673,172.880471,
+ -0,0.622177,-0.782877,0.016303,-682.666775,172.880521,
+ -0.150375,0.597097,-0.787948,432.838954,-682.490586,172.648217,
+ -0.040706,0.489496,-0.871055,429.267772,-659.055159,188.362176,
+ -0.150375,0.484157,-0.861963,432.838949,-658.912362,188.108094,
+ -0.040706,0.489496,-0.871055,429.267772,-659.055159,188.362176,
+ -0.150375,0.597097,-0.787948,432.838954,-682.490586,172.648217,
+ -0.040706,0.603626,-0.796228,429.267777,-682.666673,172.880471,
+ 0.707932,-0.427595,0.562134,466.630442,-695.289055,189.529057,
+ 0.603343,-0.550894,0.576621,464.090792,-720.287768,170.665181,
+ 0.707932,-0.500206,0.498623,466.630444,-718.721598,169.09901,
+ 0.603343,-0.550894,0.576621,464.090792,-720.287768,170.665181,
+ 0.707932,-0.427595,0.562134,466.630442,-695.289055,189.529057,
+ 0.603343,-0.467182,0.646311,464.09079,-696.627201,191.294034,
+ 0.011271,-0.604116,0.796817,448.317783,-699.580941,195.189934,
+ 0.091928,-0.70401,0.704215,451.683346,-723.691181,174.068594,
+ 0.091928,-0.601482,0.793579,451.683345,-699.535099,195.12947,
+ 0.091928,-0.70401,0.704215,451.683346,-723.691181,174.068594,
+ 0.011271,-0.604116,0.796817,448.317783,-699.580941,195.189934,
+ 0.011271,-0.70706,0.707064,448.317785,-723.744835,174.122247,
+ -0.150375,0.362184,-0.919897,432.838941,-633.447412,200.210852,
+ -0.040706,0.236142,-0.970866,429.267752,-606.639691,209.013907,
+ -0.150374,0.233455,-0.96067,432.83893,-606.570796,208.730707,
+ -0.040706,0.236142,-0.970866,429.267752,-606.639691,209.013907,
+ -0.150375,0.362184,-0.919897,432.838941,-633.447412,200.210852,
+ -0.040706,0.366235,-0.929632,429.267763,-633.554255,200.482022,
+ 0.091928,-0.235232,0.967582,451.683317,-613.239395,236.143333,
+ 0.229025,-0.356494,0.905793,455.006098,-643.590692,225.955193,
+ 0.229025,-0.229739,0.945922,455.006085,-613.111378,235.617099,
+ 0.229025,-0.356494,0.905793,455.006098,-643.590692,225.955193,
+ 0.091928,-0.235232,0.967582,451.683317,-613.239395,236.143333,
+ 0.091928,-0.364886,0.926503,451.68333,-643.789223,226.459074,
+ 0,0,1,0.179984,-280.29408,2125.502553,
+ 0,0,1,46.868397,-186.86272,2125.502553,
+ 0,0,1,0.179984,-186.86272,2125.502553,
+ 0,0,1,46.868397,-186.86272,2125.502553,
+ 0,0,1,0.179984,-280.29408,2125.502553,
+ 0,0,1,46.868397,-280.29408,2125.502553,
+ -0.606606,0.46573,-0.644302,702.22136,-645.663324,124.074113,
+ -0.701084,0.343733,-0.624763,718.363103,-622.121887,122.645633,
+ -0.707932,0.427569,-0.562154,718.363107,-637.122986,112.809644,
+ -0.701084,0.343733,-0.624763,718.363103,-622.121887,122.645633,
+ -0.606606,0.46573,-0.644302,702.22136,-645.663324,124.074113,
+ -0.595888,0.383438,-0.705615,702.221357,-629.047597,134.968788,
+ 0.783922,-0.620509,0.020854,468.840122,-781.931785,23.357838,
+ 0.714887,-0.69482,0.078501,466.630399,-784.205377,31.31709,
+ 0.690548,-0.722878,0.024294,466.630394,-784.472872,23.357838,
+ 0.714887,-0.69482,0.078501,466.630399,-784.205377,31.31709,
+ 0.783922,-0.620509,0.020854,468.840122,-781.931785,23.357838,
+ 0.812465,-0.579983,0.059329,468.840127,-781.672997,31.058037,
+ -0.952384,0.216659,-0.21453,453.575573,-691.225448,141.602861,
+ -0.985345,0.104291,-0.134978,454.431275,-669.689209,155.763554,
+ -0.985345,0.121711,-0.119507,454.431277,-688.759444,139.136857,
+ -0.985345,0.104291,-0.134978,454.431275,-669.689209,155.763554,
+ -0.952384,0.216659,-0.21453,453.575573,-691.225448,141.602861,
+ -0.952384,0.185405,-0.242052,453.575571,-671.796178,158.542589,
+ 0.229024,-0.96833,0.09942,455.006069,-790.65817,31.977188,
+ 0.091928,-0.967513,0.235514,451.683317,-785.765921,63.616808,
+ 0.091928,-0.990581,0.101478,451.683301,-791.19694,32.032304,
+ 0.091928,-0.967513,0.235514,451.683317,-785.765921,63.616808,
+ 0.229024,-0.96833,0.09942,455.006069,-790.65817,31.977188,
+ 0.229025,-0.94575,0.230443,455.006085,-785.239687,63.48879,
+ -0.796291,0.366435,-0.481296,732.466066,-627.348021,99.916734,
+ -0.870211,0.242544,-0.428841,744.275056,-605.410265,92.910065,
+ -0.870211,0.298718,-0.391791,744.275058,-616.515297,85.628667,
+ -0.870211,0.242544,-0.428841,744.275056,-605.410265,92.910065,
+ -0.796291,0.366435,-0.481296,732.466066,-627.348021,99.916734,
+ -0.796291,0.297433,-0.526739,732.466063,-614.194966,108.540989,
+ 0.487278,-0.205664,0.848683,461.269972,-612.537006,233.256044,
+ 0.603443,-0.29142,0.742247,464.090775,-642.024843,221.980973,
+ 0.603443,-0.187559,0.775035,464.090763,-612.101686,231.466578,
+ 0.603443,-0.29142,0.742247,464.090775,-642.024843,221.980973,
+ 0.487278,-0.205664,0.848683,461.269972,-612.537006,233.256044,
+ 0.487278,-0.319392,0.812741,461.269985,-642.699947,223.694428,
+ -0.112343,0.600194,-0.791925,623.546367,-664.778393,149.286355,
+ -0.022557,0.4898,-0.871543,602.133296,-645.022449,163.39336,
+ -0.112343,0.486683,-0.866325,623.546362,-644.548798,162.550587,
+ -0.022557,0.4898,-0.871543,602.133296,-645.022449,163.39336,
+ -0.112343,0.600194,-0.791925,623.546367,-664.778393,149.286355,
+ -0.022557,0.603993,-0.79667,602.133301,-665.362465,150.056725,
+ -0,0.723053,-0.690793,0.016305,-703.948386,154.325799,
+ -0.040706,0.796183,-0.603686,429.267777,-722.503059,133.044086,
+ -0,0.81044,-0.585821,0.016303,-722.503108,133.044187,
+ -0.040706,0.796183,-0.603686,429.267777,-722.503059,133.044086,
+ -0,0.723053,-0.690793,0.016305,-703.948386,154.325799,
+ -0.040706,0.706494,-0.706547,429.267778,-703.948313,154.325725,
+ -0.649152,0.44561,-0.616469,445.721745,-678.931346,167.953679,
+ -0.537771,0.412318,-0.735388,442.839485,-657.07129,184.832214,
+ -0.649152,0.35745,-0.67144,445.72174,-656.026027,182.972343,
+ -0.537771,0.412318,-0.735388,442.839485,-657.07129,184.832214,
+ -0.649152,0.44561,-0.616469,445.721745,-678.931346,167.953679,
+ -0.537771,0.508681,-0.672344,442.83949,-680.220296,169.653769,
+ 0.603343,-0.62433,0.496175,464.09079,-740.916622,147.004613,
+ 0.487279,-0.616933,0.618023,461.270002,-721.590015,171.967428,
+ 0.487279,-0.695395,0.528191,461.27,-742.384174,148.117261,
+ 0.487279,-0.616933,0.618023,461.270002,-721.590015,171.967428,
+ 0.603343,-0.62433,0.496175,464.09079,-740.916622,147.004613,
+ 0.603343,-0.550894,0.576621,464.090792,-720.287768,170.665181,
+ 0.487279,-0.695395,0.528191,461.27,-742.384174,148.117261,
+ 0.361665,-0.658837,0.659646,458.22226,-722.603323,172.980735,
+ 0.361665,-0.742579,0.563715,458.222259,-743.526109,148.983038,
+ 0.361665,-0.658837,0.659646,458.22226,-722.603323,172.980735,
+ 0.487279,-0.695395,0.528191,461.27,-742.384174,148.117261,
+ 0.487279,-0.616933,0.618023,461.270002,-721.590015,171.967428,
+ 0.114758,-0.016686,0.993253,451.683281,-549.621181,242.65094,
+ 0.20592,0,0.978569,455.00605,-186.86272,242.110623,
+ 0.068639,0,0.997642,451.683281,-186.86272,242.65094,
+ 0.20592,0,0.978569,455.00605,-186.86272,242.110623,
+ 0.114758,-0.016686,0.993253,451.683281,-549.621181,242.65094,
+ 0.251027,-0.016259,0.967844,455.00605,-549.612103,242.110623,
+ 0.707932,-0.500166,0.498664,736.997697,-665.645303,116.022715,
+ 0.609002,-0.620953,0.493491,717.894078,-692.709977,110.455949,
+ 0.707932,-0.563451,0.425857,736.997696,-679.337949,100.317733,
+ 0.609002,-0.620953,0.493491,717.894078,-692.709977,110.455949,
+ 0.707932,-0.500166,0.498664,736.997697,-665.645303,116.022715,
+ 0.609002,-0.547915,0.573503,717.894079,-677.511106,127.888519,
+ 0.609002,-0.620953,0.493491,717.894078,-692.709977,110.455949,
+ 0.499663,-0.61198,0.61304,696.758806,-687.497596,137.875009,
+ 0.499663,-0.689808,0.523929,696.758805,-703.964135,118.988469,
+ 0.499663,-0.61198,0.61304,696.758806,-687.497596,137.875009,
+ 0.609002,-0.620953,0.493491,717.894078,-692.709977,110.455949,
+ 0.609002,-0.547915,0.573503,717.894079,-677.511106,127.888519,
+ 0.855563,-0.510212,0.087731,767.829317,-668.759577,23.357838,
+ 0.800126,-0.584324,0.13551,753.739273,-687.397248,39.686742,
+ 0.780232,-0.616443,0.105998,753.739265,-690.205036,23.357838,
+ 0.800126,-0.584324,0.13551,753.739273,-687.397248,39.686742,
+ 0.855563,-0.510212,0.087731,767.829317,-668.759577,23.357838,
+ 0.87794,-0.465203,0.113169,767.829322,-666.812843,34.679214,
+ -0.537771,0.595553,-0.596756,442.839492,-701.085065,151.462478,
+ -0.415875,0.548909,-0.725084,439.690621,-681.255534,171.01922,
+ -0.537771,0.508681,-0.672344,442.83949,-680.220296,169.653769,
+ -0.415875,0.548909,-0.725084,439.690621,-681.255534,171.01922,
+ -0.537771,0.595553,-0.596756,442.839492,-701.085065,151.462478,
+ -0.415875,0.642593,-0.643523,439.690622,-702.296712,152.674124,
+ 0.361665,-0.905753,0.220929,458.222231,-784.271055,63.253152,
+ 0.229025,-0.905527,0.357167,455.006098,-775.57778,93.968105,
+ 0.229025,-0.94575,0.230443,455.006085,-785.239687,63.48879,
+ 0.229025,-0.905527,0.357167,455.006098,-775.57778,93.968105,
+ 0.361665,-0.905753,0.220929,458.222231,-784.271055,63.253152,
+ 0.361665,-0.867199,0.342292,458.222244,-774.650293,93.602673,
+ 0.229025,-0.94575,0.230443,455.006085,-785.239687,63.48879,
+ 0.091928,-0.926396,0.365157,451.68333,-776.081661,94.166635,
+ 0.091928,-0.967513,0.235514,451.683317,-785.765921,63.616808,
+ 0.091928,-0.926396,0.365157,451.68333,-776.081661,94.166635,
+ 0.229025,-0.94575,0.230443,455.006085,-785.239687,63.48879,
+ 0.229025,-0.905527,0.357167,455.006098,-775.57778,93.968105,
+ 0.986627,-0.162996,-0,843.130723,-608.452917,-0,
+ 0.971349,-0.237659,-0,838.782877,-630.311015,23.357838,
+ 0.960042,-0.279856,-0,838.782877,-630.311015,-0,
+ 0.971349,-0.237659,-0,838.782877,-630.311015,23.357838,
+ 0.986627,-0.162996,-0,843.130723,-608.452917,-0,
+ 0.991423,-0.130694,-0,843.130723,-608.452917,23.357838,
+ 0.691493,-0.722383,-0,772.221089,-745.599413,-0,
+ 0.625945,-0.779867,-0,746.929123,-767.779872,23.357838,
+ 0.591287,-0.806461,-0,746.929123,-767.779872,-0,
+ 0.625945,-0.779867,-0,746.929123,-767.779872,23.357838,
+ 0.691493,-0.722383,-0,772.221089,-745.599413,-0,
+ 0.722383,-0.691493,-0,772.221089,-745.599413,23.357838,
+ -0.614316,0.68383,-0.393691,702.221357,-684.591376,79.42501,
+ -0.707932,0.563466,-0.425837,718.363107,-662.432231,87.500399,
+ -0.71736,0.602889,-0.34917,718.363103,-672.268221,72.499299,
+ -0.707932,0.563466,-0.425837,718.363107,-662.432231,87.500399,
+ -0.614316,0.68383,-0.393691,702.221357,-684.591376,79.42501,
+ -0.606606,0.622389,-0.494632,702.22136,-673.696701,96.040736,
+ -0.537771,0.818998,-0.200111,442.839466,-754.702001,56.059962,
+ -0.649249,0.756522,-0.078421,445.721707,-757.270639,28.561795,
+ -0.537771,0.838627,-0.086642,442.839452,-759.393033,28.778909,
+ -0.649249,0.756522,-0.078421,445.721707,-757.270639,28.561795,
+ -0.537771,0.818998,-0.200111,442.839466,-754.702001,56.059962,
+ -0.656747,0.730839,-0.185896,445.721721,-752.628988,55.555664,
+ 1,-0,-0,847.545902,-186.86272,0,
+ 0.999698,-0.024594,-0,847.545902,-563.749227,23.357838,
+ 0.997846,-0.065595,-0,847.545902,-563.749227,0,
+ 0.999698,-0.024594,-0,847.545902,-563.749227,23.357838,
+ 1,-0,-0,847.545902,-186.86272,0,
+ 1,-0,-0,847.545902,56.185652,0,
+ 0.999698,-0.024594,-0,847.545902,-563.749227,23.357838,
+ 1,-0,-0,847.545902,56.185652,0,
+ 1,-0,-0,847.545902,56.185652,23.357838,
+ -0.754707,0.651908,-0.073718,448.28198,-754.771252,28.306118,
+ -0.819027,0.573431,-0.019271,450.471085,-752.099463,23.357838,
+ -0.731829,0.681103,-0.02289,448.281977,-754.937554,23.357838,
+ -0.819027,0.573431,-0.019271,450.471085,-752.099463,23.357838,
+ -0.754707,0.651908,-0.073718,448.28198,-754.771252,28.306118,
+ -0.845271,0.531564,-0.054376,450.471088,-751.942886,28.016787,
+ 0.780232,-0,0.62549,753.73925,-186.86272,141.649769,
+ 0.716411,-0.0095,0.697614,736.997652,-548.24528,160.753391,
+ 0.793821,-0.010508,0.608061,753.73925,-547.924349,141.649769,
+ 0.716411,-0.0095,0.697614,736.997652,-548.24528,160.753391,
+ 0.780232,-0,0.62549,753.73925,-186.86272,141.649769,
+ 0.691408,-0,0.722464,736.997652,-186.86272,160.753391,
+ -0.999454,0.021199,-0.025346,454.797688,-667.530829,152.916709,
+ -0.999345,-0.018443,0.031131,454.667766,-645.022494,163.39337,
+ -0.999345,-0.022513,0.028328,454.66777,-665.3625,150.056742,
+ -0.999345,-0.018443,0.031131,454.667766,-645.022494,163.39337,
+ -0.999454,0.021199,-0.025346,454.797688,-667.530829,152.916709,
+ -0.999454,0.017548,-0.027998,454.797683,-646.780881,166.522129,
+ -0.613495,0.011257,-0.789618,702.221319,-548.126642,153.690618,
+ -0.512963,0,-0.858411,684.332852,-186.86272,165.499615,
+ -0.605809,0,-0.79561,702.221319,-186.86272,153.690618,
+ -0.512963,0,-0.858411,684.332852,-186.86272,165.499615,
+ -0.613495,0.011257,-0.789618,702.221319,-548.126642,153.690618,
+ -0.493603,0.014422,-0.869568,684.332852,-548.325029,165.499615,
+ -0.150375,0.787661,-0.597476,432.838954,-722.270805,132.867998,
+ -0.285905,0.835148,-0.469878,436.335621,-737.047581,108.905866,
+ -0.150375,0.86173,-0.484571,432.838949,-737.730682,109.289775,
+ -0.285905,0.835148,-0.469878,436.335621,-737.047581,108.905866,
+ -0.150375,0.787661,-0.597476,432.838954,-722.270805,132.867998,
+ -0.285905,0.76333,-0.579298,436.335626,-721.646389,132.394587,
+ -0.040617,0.016774,-0.999034,429.26772,-549.153238,214.795487,
+ 0,0,-1,0.016247,-186.86272,214.795487,
+ -0.054143,0,-0.998533,429.26772,-186.86272,214.795487,
+ 0,0,-1,0.016247,-186.86272,214.795487,
+ -0.040617,0.016774,-0.999034,429.26772,-549.153238,214.795487,
+ -0,0.022395,-0.999749,0.016247,-549.153365,214.795487,
+ -0.415875,0.642593,-0.643523,439.690622,-702.296712,152.674124,
+ -0.285905,0.578577,-0.763876,436.335626,-682.017175,172.023802,
+ -0.415875,0.548909,-0.725084,439.690621,-681.255534,171.01922,
+ -0.285905,0.578577,-0.763876,436.335626,-682.017175,172.023802,
+ -0.415875,0.642593,-0.643523,439.690622,-702.296712,152.674124,
+ -0.285905,0.677271,-0.67791,436.335627,-703.188138,153.565551,
+ 0.381503,-0.859811,0.339381,673.957369,-738.899253,79.516658,
+ 0.256673,-0.842365,0.473857,649.884119,-734.568562,107.512581,
+ 0.256673,-0.899078,0.354651,649.884111,-746.45866,82.495079,
+ 0.256673,-0.842365,0.473857,649.884119,-734.568562,107.512581,
+ 0.381503,-0.859811,0.339381,673.957369,-738.899253,79.516658,
+ 0.381503,-0.805545,0.453379,673.957376,-727.485522,103.531853,
+ -0.870211,0.458871,-0.17936,744.275052,-648.232891,43.794023,
+ -0.928388,0.324653,-0.180823,753.57641,-625.658276,46.304148,
+ -0.928388,0.346265,-0.134897,753.576407,-630.223631,36.698359,
+ -0.928388,0.324653,-0.180823,753.57641,-625.658276,46.304148,
+ -0.870211,0.458871,-0.17936,744.275052,-648.232891,43.794023,
+ -0.870211,0.43015,-0.240215,744.275056,-642.532652,55.787678,
+ 0.487278,-0.868635,0.089632,461.269956,-788.240871,31.729906,
+ 0.361665,-0.905753,0.220929,458.222231,-784.271055,63.253152,
+ 0.361665,-0.92741,0.095445,458.222215,-789.666464,31.875739,
+ 0.361665,-0.905753,0.220929,458.222231,-784.271055,63.253152,
+ 0.487278,-0.868635,0.089632,461.269956,-788.240871,31.729906,
+ 0.487278,-0.848318,0.207161,461.269972,-782.878631,62.914419,
+ 0.947715,-0.314502,0.054079,787.130183,-621.196954,23.357838,
+ 0.933102,-0.349421,0.085002,779.024159,-644.605714,29.276931,
+ 0.916097,-0.395156,0.067947,779.024156,-645.623514,23.357838,
+ 0.933102,-0.349421,0.085002,779.024159,-644.605714,29.276931,
+ 0.947715,-0.314502,0.054079,787.130183,-621.196954,23.357838,
+ 0.966774,-0.246753,0.066789,787.130183,-621.159902,23.573317,
+ 0.916097,-0.395156,0.067947,779.024156,-645.623514,23.357838,
+ 0.87794,-0.465203,0.113169,767.829322,-666.812843,34.679214,
+ 0.855563,-0.510212,0.087731,767.829317,-668.759577,23.357838,
+ 0.87794,-0.465203,0.113169,767.829322,-666.812843,34.679214,
+ 0.916097,-0.395156,0.067947,779.024156,-645.623514,23.357838,
+ 0.933102,-0.349421,0.085002,779.024159,-644.605714,29.276931,
+ 0.487278,-0.812176,0.320826,461.269985,-773.317015,93.077359,
+ 0.361665,-0.812468,0.457269,458.222253,-760.983658,122.358117,
+ 0.361665,-0.867199,0.342292,458.222244,-774.650293,93.602673,
+ 0.361665,-0.812468,0.457269,458.222253,-760.983658,122.358117,
+ 0.487278,-0.812176,0.320826,461.269985,-773.317015,93.077359,
+ 0.487279,-0.760883,0.428506,461.269994,-759.734399,121.656023,
+ 0.973657,-0.162317,0.16014,473.101765,-710.482719,160.860131,
+ 0.932875,-0.28792,0.21644,472.107209,-732.43577,140.574721,
+ 0.973657,-0.182625,0.136528,473.101763,-729.866936,138.627118,
+ 0.932875,-0.28792,0.21644,472.107209,-732.43577,140.574721,
+ 0.973657,-0.162317,0.16014,473.101765,-710.482719,160.860131,
+ 0.932875,-0.255741,0.253655,472.107211,-712.762199,163.139612,
+ 0.091928,-0.990581,0.101478,451.683301,-791.19694,32.032304,
+ 0.01127,-0.9716,0.236362,448.317755,-785.839647,63.634744,
+ 0.00966,-0.995709,0.092029,448.317739,-791.272422,32.040027,
+ 0.01127,-0.9716,0.236362,448.317755,-785.839647,63.634744,
+ 0.091928,-0.990581,0.101478,451.683301,-791.19694,32.032304,
+ 0.091928,-0.967513,0.235514,451.683317,-785.765921,63.616808,
+ 0.229025,-0.775467,0.588387,455.006113,-744.32049,149.585311,
+ 0.091928,-0.70401,0.704215,451.683346,-723.691181,174.068594,
+ 0.091928,-0.793404,0.601714,451.683345,-744.752058,149.912511,
+ 0.091928,-0.70401,0.704215,451.683346,-723.691181,174.068594,
+ 0.229025,-0.775467,0.588387,455.006113,-744.32049,149.585311,
+ 0.229025,-0.688056,0.688568,455.006115,-723.308225,173.685638,
+ 0.091928,-0.793404,0.601714,451.683345,-744.752058,149.912511,
+ 0.011271,-0.70706,0.707064,448.317785,-723.744835,174.122247,
+ 0.011271,-0.796813,0.60412,448.317783,-744.812521,149.958353,
+ 0.011271,-0.70706,0.707064,448.317785,-723.744835,174.122247,
+ 0.091928,-0.793404,0.601714,451.683345,-744.752058,149.912511,
+ 0.091928,-0.70401,0.704215,451.683346,-723.691181,174.068594,
+ 0.011271,-0.796813,0.60412,448.317783,-744.812521,149.958353,
+ 0,-0.723053,0.690793,0.000065,-723.744912,174.122324,
+ 0,-0.81044,0.585821,0.000063,-744.812573,149.958459,
+ 0,-0.723053,0.690793,0.000065,-723.744912,174.122324,
+ 0.011271,-0.796813,0.60412,448.317783,-744.812521,149.958353,
+ 0.011271,-0.70706,0.707064,448.317785,-723.744835,174.122247,
+ 0.256673,-0.353935,0.899361,649.884111,-632.117666,196.836073,
+ 0.381503,-0.452381,0.806106,673.957376,-653.15444,177.862935,
+ 0.381503,-0.338316,0.860231,673.957369,-629.139245,189.276665,
+ 0.381503,-0.452381,0.806106,673.957376,-653.15444,177.862935,
+ 0.256673,-0.353935,0.899361,649.884111,-632.117666,196.836073,
+ 0.256673,-0.473186,0.842742,649.884119,-657.135168,184.945974,
+ 0.779867,-0.625945,-0,794.401548,-720.307447,-0,
+ 0.722383,-0.691493,-0,772.221089,-745.599413,23.357838,
+ 0.691493,-0.722383,-0,772.221089,-745.599413,-0,
+ 0.722383,-0.691493,-0,772.221089,-745.599413,23.357838,
+ 0.779867,-0.625945,-0,794.401548,-720.307447,-0,
+ 0.806461,-0.591287,-0,794.401548,-720.307447,23.357838,
+ 0.620913,-0.013167,0.783769,464.090728,-549.540509,237.849027,
+ 0.707107,0,0.707107,466.63038,-186.86272,235.639299,
+ 0.583909,-0,0.811819,464.090728,-186.86272,237.849027,
+ 0.707107,0,0.707107,466.63038,-186.86272,235.639299,
+ 0.620913,-0.013167,0.783769,464.090728,-549.540509,237.849027,
+ 0.707157,-0.011876,0.706957,466.63038,-549.503387,235.639299,
+ 0.793821,-0.010508,0.608061,753.73925,-547.924349,141.649769,
+ 0.707841,-0.055835,0.704162,736.997667,-573.300963,159.911321,
+ 0.794465,-0.062988,0.604035,753.739264,-571.352333,140.862403,
+ 0.707841,-0.055835,0.704162,736.997667,-573.300963,159.911321,
+ 0.793821,-0.010508,0.608061,753.73925,-547.924349,141.649769,
+ 0.716411,-0.0095,0.697614,736.997652,-548.24528,160.753391,
+ 0.625544,-0.013105,0.780079,717.89403,-548.526532,177.494989,
+ 0.707841,-0.055835,0.704162,736.997667,-573.300963,159.911321,
+ 0.716411,-0.0095,0.697614,736.997652,-548.24528,160.753391,
+ 0.707841,-0.055835,0.704162,736.997667,-573.300963,159.911321,
+ 0.625544,-0.013105,0.780079,717.89403,-548.526532,177.494989,
+ 0.609101,-0.079799,0.789068,717.894046,-575.008662,176.604979,
+ 0.499663,-0.423738,0.755502,696.7588,-647.656853,168.080895,
+ 0.609002,-0.464655,0.642816,717.894078,-660.078536,143.08739,
+ 0.598552,-0.382497,0.703869,717.894074,-640.737481,155.769021,
+ 0.609002,-0.464655,0.642816,717.894078,-660.078536,143.08739,
+ 0.499663,-0.423738,0.755502,696.7588,-647.656853,168.080895,
+ 0.499663,-0.522735,0.690714,696.758805,-668.611056,154.341548,
+ -0.9721,0.218065,-0.086424,760.201824,-611.21315,29.208214,
+ -0.983984,0.16585,-0.065345,763.093075,-596.364509,23.357838,
+ -0.96393,0.253712,-0.080426,760.201822,-613.067712,23.357838,
+ -0.537771,0.78409,-0.309846,442.839477,-746.337241,82.447316,
+ -0.656747,0.730839,-0.185896,445.721721,-752.628988,55.555664,
+ -0.537771,0.818998,-0.200111,442.839466,-754.702001,56.059962,
+ -0.656747,0.730839,-0.185896,445.721721,-752.628988,55.555664,
+ -0.537771,0.78409,-0.309846,442.839477,-746.337241,82.447316,
+ -0.649152,0.701164,-0.294909,445.721732,-744.352284,81.665241,
+ 0.995804,-0.089282,0.020098,473.642053,-764.379515,58.414175,
+ 0.978666,-0.204393,0.020908,473.101722,-772.614333,30.131373,
+ 0.997653,-0.068124,0.006968,473.642039,-769.30108,29.792441,
+ 0.978666,-0.204393,0.020908,473.101722,-772.614333,30.131373,
+ 0.995804,-0.089282,0.020098,473.642053,-764.379515,58.414175,
+ 0.973657,-0.221914,0.0524,473.101737,-767.615679,59.201429,
+ 0.973657,-0.221914,0.0524,473.101737,-767.615679,59.201429,
+ 0.940951,-0.336786,0.034451,472.107168,-775.82127,30.459429,
+ 0.978666,-0.204393,0.020908,473.101722,-772.614333,30.131373,
+ 0.940951,-0.336786,0.034451,472.107168,-775.82127,30.459429,
+ 0.973657,-0.221914,0.0524,473.101737,-767.615679,59.201429,
+ 0.932875,-0.350339,0.083707,472.107183,-770.747999,59.963422,
+ -0.757296,0.632534,-0.162491,448.281994,-750.187755,54.961789,
+ -0.832687,0.515679,-0.201762,450.471112,-739.369533,79.702032,
+ -0.832687,0.538362,-0.129611,450.471101,-747.425197,54.289747,
+ -0.832687,0.515679,-0.201762,450.471112,-739.369533,79.702032,
+ -0.757296,0.632534,-0.162491,448.281994,-750.187755,54.961789,
+ -0.748179,0.617743,-0.242119,448.282005,-742.014746,80.744249,
+ 0.701238,-0.343649,0.624636,736.997692,-632.515985,141.14023,
+ 0.609002,-0.464655,0.642816,717.894078,-660.078536,143.08739,
+ 0.707932,-0.427549,0.562168,736.997696,-649.94032,129.715362,
+ 0.609002,-0.464655,0.642816,717.894078,-660.078536,143.08739,
+ 0.701238,-0.343649,0.624636,736.997692,-632.515985,141.14023,
+ 0.598552,-0.382497,0.703869,717.894074,-640.737481,155.769021,
+ -0.656747,0.730839,-0.185896,445.721721,-752.628988,55.555664,
+ -0.748179,0.617743,-0.242119,448.282005,-742.014746,80.744249,
+ -0.757296,0.632534,-0.162491,448.281994,-750.187755,54.961789,
+ -0.748179,0.617743,-0.242119,448.282005,-742.014746,80.744249,
+ -0.656747,0.730839,-0.185896,445.721721,-752.628988,55.555664,
+ -0.649152,0.701164,-0.294909,445.721732,-744.352284,81.665241,
+ -0.985345,0.121711,-0.119507,454.431277,-688.759444,139.136857,
+ -0.999454,0.021199,-0.025346,454.797688,-667.530829,152.916709,
+ -0.999454,0.024455,-0.02222,454.797689,-686.233268,136.610681,
+ -0.999454,0.021199,-0.025346,454.797688,-667.530829,152.916709,
+ -0.985345,0.121711,-0.119507,454.431277,-688.759444,139.136857,
+ -0.985345,0.104291,-0.134978,454.431275,-669.689209,155.763554,
+ 0.361665,-0.867199,0.342292,458.222244,-774.650293,93.602673,
+ 0.229025,-0.848411,0.477229,455.006107,-761.852699,122.846525,
+ 0.229025,-0.905527,0.357167,455.006098,-775.57778,93.968105,
+ 0.229025,-0.848411,0.477229,455.006107,-761.852699,122.846525,
+ 0.361665,-0.867199,0.342292,458.222244,-774.650293,93.602673,
+ 0.361665,-0.812468,0.457269,458.222253,-760.983658,122.358117,
+ 0.932875,-0.086574,0.349641,472.107183,-609.58601,221.125411,
+ 0.874212,-0.179273,0.451236,470.677509,-639.24332,214.921287,
+ 0.932875,-0.133411,0.334583,472.107195,-638.123482,212.079066,
+ 0.874212,-0.179273,0.451236,470.677509,-639.24332,214.921287,
+ 0.932875,-0.086574,0.349641,472.107183,-609.58601,221.125411,
+ 0.874212,-0.116112,0.471456,470.677497,-610.308103,224.093716,
+ -0.150374,0.960557,-0.233917,432.83893,-758.353294,56.948209,
+ -0.285905,0.953237,-0.097966,436.335587,-762.351785,29.08158,
+ -0.150374,0.983472,-0.100844,432.838915,-763.131306,29.161323,
+ -0.285905,0.953237,-0.097966,436.335587,-762.351785,29.08158,
+ -0.150374,0.960557,-0.233917,432.83893,-758.353294,56.948209,
+ -0.285905,0.930996,-0.226946,436.335601,-757.591911,56.762987,
+ -0.939612,0.342242,0,693.784142,-590.617874,-0,
+ -0.961178,0.27593,0,698.091838,-577.372321,5.83946,
+ -0.970224,0.242209,-0,698.091838,-577.372321,-0,
+ -0.961178,0.27593,0,698.091838,-577.372321,5.83946,
+ -0.939612,0.342242,0,693.784142,-590.617874,-0,
+ -0.927092,0.374833,-0,693.784142,-590.617874,5.83946,
+ 0,1,-0,0.000468,-674.370541,5.83946,
+ -0.104693,0.994505,-0,590.370902,-674.370541,0,
+ 0,1,-0,0.000468,-674.370541,0,
+ -0.104693,0.994505,-0,590.370902,-674.370541,0,
+ 0,1,-0,0.000468,-674.370541,5.83946,
+ -0.104693,0.994505,-0,590.370902,-674.370541,5.83946,
+ -0.242209,0.970224,-0,603.993997,-671.470162,5.83946,
+ -0.104693,0.994505,-0,590.370902,-674.370541,0,
+ -0.104693,0.994505,-0,590.370902,-674.370541,5.83946,
+ -0.104693,0.994505,-0,590.370902,-674.370541,0,
+ -0.242209,0.970224,-0,603.993997,-671.470162,5.83946,
+ -0.27593,0.961178,-0,603.993997,-671.470162,-0,
+ -0.342242,0.939612,-0,617.239549,-667.162466,5.83946,
+ -0.27593,0.961178,-0,603.993997,-671.470162,-0,
+ -0.242209,0.970224,-0,603.993997,-671.470162,5.83946,
+ -0.27593,0.961178,-0,603.993997,-671.470162,-0,
+ -0.342242,0.939612,-0,617.239549,-667.162466,5.83946,
+ -0.374833,0.927092,-0,617.239549,-667.162466,-0,
+ 0.480964,-0.87674,-0,718.958402,-786.46931,-0,
+ 0.402772,-0.9153,-0,688.787514,-801.347945,23.357838,
+ 0.362412,-0.932018,-0,688.787514,-801.347945,-0,
+ 0.402772,-0.9153,-0,688.787514,-801.347945,23.357838,
+ 0.480964,-0.87674,-0,718.958402,-786.46931,-0,
+ 0.518797,-0.854897,-0,718.958402,-786.46931,23.357838,
+ -0.606606,0.549182,-0.574829,702.221362,-660.639487,111.0169,
+ -0.707932,0.427569,-0.562154,718.363107,-637.122986,112.809644,
+ -0.707932,0.500183,-0.498647,718.363108,-650.643847,101.02126,
+ -0.707932,0.427569,-0.562154,718.363107,-637.122986,112.809644,
+ -0.606606,0.549182,-0.574829,702.221362,-660.639487,111.0169,
+ -0.606606,0.46573,-0.644302,702.22136,-645.663324,124.074113,
+ 0.994447,0,0.105242,792.007202,-186.86272,48.711029,
+ 0.998104,-0.001034,0.061542,793.5709,-545.937124,23.357838,
+ 0.998103,0,0.06156,793.5709,-186.86272,23.357838,
+ 0.998104,-0.001034,0.061542,793.5709,-545.937124,23.357838,
+ 0.994447,0,0.105242,792.007202,-186.86272,48.711029,
+ 0.98887,-0.002499,0.148764,792.007202,-546.363038,48.711029,
+ 0.714887,-0.69482,0.078501,466.630399,-784.205377,31.31709,
+ 0.603443,-0.774584,0.189413,464.090763,-781.089165,62.479098,
+ 0.603443,-0.793169,0.082097,464.090747,-786.408778,31.542489,
+ 0.603443,-0.774584,0.189413,464.090763,-781.089165,62.479098,
+ 0.714887,-0.69482,0.078501,466.630399,-784.205377,31.31709,
+ 0.707841,-0.682368,0.182581,466.630415,-778.937032,61.955552,
+ 0.855563,-0,0.517699,767.829302,-186.86272,120.514493,
+ 0.793821,-0.010508,0.608061,753.73925,-547.924349,141.649769,
+ 0.866755,-0.008697,0.498658,767.829302,-547.569289,120.514493,
+ 0.793821,-0.010508,0.608061,753.73925,-547.924349,141.649769,
+ 0.855563,-0,0.517699,767.829302,-186.86272,120.514493,
+ 0.780232,-0,0.62549,753.73925,-186.86272,141.649769,
+ 0.79876,-0.364496,0.47867,468.840169,-693.751117,187.500559,
+ 0.707932,-0.500206,0.498623,466.630444,-718.721598,169.09901,
+ 0.79876,-0.426323,0.424536,468.840171,-716.92159,167.299002,
+ 0.707932,-0.500206,0.498623,466.630444,-718.721598,169.09901,
+ 0.79876,-0.364496,0.47867,468.840169,-693.751117,187.500559,
+ 0.707932,-0.427595,0.562134,466.630442,-695.289055,189.529057,
+ -0.494423,0.524541,-0.693111,684.332897,-652.814504,133.506322,
+ -0.373111,0.454056,-0.809087,665.021386,-639.414516,153.414997,
+ -0.494423,0.4252,-0.758123,684.332893,-634.846784,145.287478,
+ -0.373111,0.454056,-0.809087,665.021386,-639.414516,153.414997,
+ -0.494423,0.524541,-0.693111,684.332897,-652.814504,133.506322,
+ -0.373111,0.560072,-0.739667,665.02139,-658.447133,140.935603,
+ 0.973657,-0.113053,0.198017,473.101758,-663.582664,196.418147,
+ 0.932875,-0.218791,0.286137,472.107209,-690.197308,182.813182,
+ 0.973657,-0.138981,0.180764,473.101763,-688.249706,180.244348,
+ 0.932875,-0.218791,0.286137,472.107209,-690.197308,182.813182,
+ 0.973657,-0.113053,0.198017,473.101758,-663.582664,196.418147,
+ 0.932875,-0.177759,0.313282,472.107204,-665.162054,199.228412,
+ -0.022557,0.871531,-0.489821,602.133296,-713.015947,95.399861,
+ -0.112343,0.924436,-0.364414,623.546355,-722.557073,73.077847,
+ -0.022557,0.930148,-0.366491,602.133289,-723.456525,73.43224,
+ -0.112343,0.924436,-0.364414,623.546355,-722.557073,73.077847,
+ -0.022557,0.871531,-0.489821,602.133296,-713.015947,95.399861,
+ -0.112343,0.866156,-0.486984,623.546362,-712.173175,94.926211,
+ -0.112343,0.866156,-0.486984,623.546362,-712.173175,94.926211,
+ -0.244971,0.901902,-0.355754,644.636252,-718.985715,71.670721,
+ -0.112343,0.924436,-0.364414,623.546355,-722.557073,73.077847,
+ -0.244971,0.901902,-0.355754,644.636252,-718.985715,71.670721,
+ -0.112343,0.866156,-0.486984,623.546362,-712.173175,94.926211,
+ -0.244971,0.845012,-0.475335,644.636259,-708.826871,93.045557,
+ 0.499663,-0.841496,0.20548,696.758783,-736.031005,51.517793,
+ 0.381503,-0.859811,0.339381,673.957369,-738.899253,79.516658,
+ 0.381503,-0.898037,0.219052,673.957358,-746.934061,54.170165,
+ 0.381503,-0.859811,0.339381,673.957369,-738.899253,79.516658,
+ 0.499663,-0.841496,0.20548,696.758783,-736.031005,51.517793,
+ 0.499663,-0.805647,0.318231,696.758793,-728.459324,75.40331,
+ 0.021811,-0.999762,0,590.370902,-820.924227,0,
+ -0,-1,-0,0.000797,-820.924227,17.047527,
+ 0,-1,0,0.000468,-820.924227,0,
+ -0,-1,-0,0.000797,-820.924227,17.047527,
+ 0.032719,-0.999465,-0,590.370902,-820.924227,23.357838,
+ 0,-1,-0,0.000468,-820.924227,23.357838,
+ 0.032719,-0.999465,-0,590.370902,-820.924227,23.357838,
+ -0,-1,-0,0.000797,-820.924227,17.047527,
+ 0.021811,-0.999762,0,590.370902,-820.924227,0,
+ 0.401003,-0.015387,0.915947,673.957328,-548.951312,202.77988,
+ 0.479633,0,0.877469,696.758754,-186.86272,191.585041,
+ 0.360344,0,0.932819,673.957328,-186.86272,202.77988,
+ 0.479633,0,0.877469,696.758754,-186.86272,191.585041,
+ 0.401003,-0.015387,0.915947,673.957328,-548.951312,202.77988,
+ 0.517753,-0.01437,0.85541,696.758754,-548.76324,191.585041,
+ -0.747451,0.007439,-0.664276,448.281963,-549.007501,206.120647,
+ -0.665822,0,-0.746111,445.72169,-186.86272,208.627211,
+ -0.747409,0,-0.664364,448.281963,-186.86272,206.120647,
+ -0.665822,0,-0.746111,445.72169,-186.86272,208.627211,
+ -0.747451,0.007439,-0.664276,448.281963,-549.007501,206.120647,
+ -0.648424,0.012535,-0.761176,445.72169,-549.049611,208.627211,
+ -0.832687,0.272446,-0.482085,450.47112,-653.402151,178.303588,
+ -0.901181,0.160213,-0.402745,452.247002,-628.181199,186.84487,
+ -0.901181,0.2136,-0.377157,452.247009,-651.873941,175.584392,
+ -0.901181,0.160213,-0.402745,452.247002,-628.181199,186.84487,
+ -0.832687,0.272446,-0.482085,450.47112,-653.402151,178.303588,
+ -0.832687,0.204213,-0.514714,450.471112,-629.324619,189.746946,
+ -0.741547,0.152765,-0.653277,448.281994,-604.584377,200.565168,
+ -0.832687,0.057661,-0.550734,450.471088,-577.639374,202.320298,
+ -0.832687,0.13217,-0.53774,450.471101,-603.912334,197.80261,
+ -0.832687,0.057661,-0.550734,450.471088,-577.639374,202.320298,
+ -0.741547,0.152765,-0.653277,448.281994,-604.584377,200.565168,
+ -0.748094,0.052453,-0.661516,448.28198,-577.928705,205.148665,
+ 0.499663,-0.861647,0.088896,696.75877,-740.277271,26.823309,
+ 0.381503,-0.898037,0.219052,673.957358,-746.934061,54.170165,
+ 0.381503,-0.91951,0.094637,673.957345,-751.440053,27.965226,
+ 0.381503,-0.898037,0.219052,673.957358,-746.934061,54.170165,
+ 0.499663,-0.861647,0.088896,696.75877,-740.277271,26.823309,
+ 0.499663,-0.841496,0.20548,696.758783,-736.031005,51.517793,
+ 0.603443,-0.793169,0.082097,464.090747,-786.408778,31.542489,
+ 0.487278,-0.848318,0.207161,461.269972,-782.878631,62.914419,
+ 0.487278,-0.868635,0.089632,461.269956,-788.240871,31.729906,
+ 0.487278,-0.848318,0.207161,461.269972,-782.878631,62.914419,
+ 0.603443,-0.793169,0.082097,464.090747,-786.408778,31.542489,
+ 0.603443,-0.774584,0.189413,464.090763,-781.089165,62.479098,
+ -0.373111,0.560072,-0.739667,665.02139,-658.447133,140.935603,
+ -0.244971,0.474679,-0.845381,644.636259,-642.668145,159.204284,
+ -0.373111,0.454056,-0.809087,665.021386,-639.414516,153.414997,
+ -0.244971,0.474679,-0.845381,644.636259,-642.668145,159.204284,
+ -0.373111,0.560072,-0.739667,665.02139,-658.447133,140.935603,
+ -0.244971,0.585448,-0.772813,644.636264,-662.459295,146.227532,
+ 0.924681,-0,0.380742,779.024141,-186.86272,97.713067,
+ 0.9608,-0.004657,0.277203,787.130168,-546.781824,73.639808,
+ 0.972038,0,0.234823,787.130168,-186.86272,73.639808,
+ 0.9608,-0.004657,0.277203,787.130168,-546.781824,73.639808,
+ 0.924681,-0,0.380742,779.024141,-186.86272,97.713067,
+ 0.919603,-0.008082,0.392766,779.024141,-547.186239,97.713067,
+ 0.794465,-0.430275,0.42859,753.73929,-652.105388,102.482801,
+ 0.707932,-0.563451,0.425857,736.997696,-679.337949,100.317733,
+ 0.794465,-0.484664,0.36596,753.739289,-664.079301,88.749145,
+ 0.707932,-0.563451,0.425857,736.997696,-679.337949,100.317733,
+ 0.794465,-0.430275,0.42859,753.73929,-652.105388,102.482801,
+ 0.707932,-0.500166,0.498664,736.997697,-665.645303,116.022715,
+ -0.993727,0.068775,-0.088188,764.031425,-579.704781,37.076602,
+ -0.998991,0.022887,-0.038633,764.878707,-566.321382,23.357838,
+ -0.998991,0.027938,-0.035154,764.805052,-569.303684,23.357838,
+ -0.998991,0.022887,-0.038633,764.878707,-566.321382,23.357838,
+ -0.993727,0.068775,-0.088188,764.031425,-579.704781,37.076602,
+ -0.993727,0.056116,-0.096737,764.031424,-575.55911,39.794854,
+ -0.022557,0.971412,-0.236325,602.13328,-730.806273,50.246828,
+ -0.112343,0.988493,-0.101292,623.546333,-733.966349,26.17777,
+ -0.022557,0.994554,-0.10175,602.133267,-734.928078,26.276163,
+ -0.112343,0.988493,-0.101292,623.546333,-733.966349,26.17777,
+ -0.022557,0.971412,-0.236325,602.13328,-730.806273,50.246828,
+ -0.112343,0.96547,-0.235045,623.546346,-729.866921,50.018304,
+ -0,0.882708,-0.469921,454.667766,-713.015957,95.399907,
+ -0.022557,0.930148,-0.366491,602.133289,-723.456525,73.43224,
+ -0,0.938509,-0.345255,454.667758,-723.45653,73.432296,
+ -0.022557,0.930148,-0.366491,602.133289,-723.456525,73.43224,
+ -0,0.882708,-0.469921,454.667766,-713.015957,95.399907,
+ -0.022557,0.871531,-0.489821,602.133296,-713.015947,95.399861,
+ 0.874212,-0.423953,0.236679,470.677518,-751.514112,117.036157,
+ 0.79876,-0.56023,0.219373,468.840155,-767.174448,90.657181,
+ 0.874212,-0.45225,0.176701,470.677509,-764.543874,89.620732,
+ 0.79876,-0.56023,0.219373,468.840155,-767.174448,90.657181,
+ 0.874212,-0.423953,0.236679,470.677518,-751.514112,117.036157,
+ 0.79876,-0.525111,0.293667,468.840164,-753.978916,118.421396,
+ 0.108839,-0.994059,-0,623.938976,-818.724059,-0,
+ 0.032719,-0.999465,-0,590.370902,-820.924227,23.357838,
+ 0.021811,-0.999762,0,590.370902,-820.924227,0,
+ 0.032719,-0.999465,-0,590.370902,-820.924227,23.357838,
+ 0.108839,-0.994059,-0,623.938976,-818.724059,-0,
+ 0.152151,-0.988357,-0,623.938976,-818.724059,23.357838,
+ 0.79876,-0.584897,0.140986,468.840142,-776.463573,61.353839,
+ 0.714887,-0.69482,0.078501,466.630399,-784.205377,31.31709,
+ 0.812465,-0.579983,0.059329,468.840127,-781.672997,31.058037,
+ 0.714887,-0.69482,0.078501,466.630399,-784.205377,31.31709,
+ 0.79876,-0.584897,0.140986,468.840142,-776.463573,61.353839,
+ 0.707841,-0.682368,0.182581,466.630415,-778.937032,61.955552,
+ 0.866755,-0.008697,0.498658,767.829302,-547.569289,120.514493,
+ 0.794465,-0.062988,0.604035,753.739264,-571.352333,140.862403,
+ 0.867227,-0.051963,0.495193,767.829315,-569.19647,119.787648,
+ 0.794465,-0.062988,0.604035,753.739264,-571.352333,140.862403,
+ 0.866755,-0.008697,0.498658,767.829302,-547.569289,120.514493,
+ 0.793821,-0.010508,0.608061,753.73925,-547.924349,141.649769,
+ -0.999951,0.009862,-0.001008,454.797654,-738.498463,26.641479,
+ -0.999345,-0.035345,0.007749,454.667749,-730.806274,50.246897,
+ -0.999345,-0.035987,0.003682,454.667737,-734.928076,26.276244,
+ -0.999345,-0.035345,0.007749,454.667749,-730.806274,50.246897,
+ -0.999951,0.009862,-0.001008,454.797654,-738.498463,26.641479,
+ -0.999454,0.032443,-0.006265,454.797666,-734.293588,51.095248,
+ -0.754707,0.651908,-0.073718,448.28198,-754.771252,28.306118,
+ -0.832687,0.538362,-0.129611,450.471101,-747.425197,54.289747,
+ -0.845271,0.531564,-0.054376,450.471088,-751.942886,28.016787,
+ -0.832687,0.538362,-0.129611,450.471101,-747.425197,54.289747,
+ -0.754707,0.651908,-0.073718,448.28198,-754.771252,28.306118,
+ -0.757296,0.632534,-0.162491,448.281994,-750.187755,54.961789,
+ -0.870211,0.117753,-0.4784,744.275047,-580.75808,102.623043,
+ -0.928388,0.039234,-0.369537,753.576397,-565.700992,85.617213,
+ -0.928388,0.089223,-0.360743,753.576403,-576.182654,83.81487,
+ -0.928388,0.039234,-0.369537,753.576397,-565.700992,85.617213,
+ -0.870211,0.117753,-0.4784,744.275047,-580.75808,102.623043,
+ -0.870211,0.051465,-0.489984,744.27504,-567.670824,104.873423,
+ -0.150052,0.016548,-0.98854,432.838898,-549.148352,214.504709,
+ -0.054143,0,-0.998533,429.26772,-186.86272,214.795487,
+ -0.172878,0,-0.984943,432.838898,-186.86272,214.504709,
+ -0.054143,0,-0.998533,429.26772,-186.86272,214.795487,
+ -0.150052,0.016548,-0.98854,432.838898,-549.148352,214.504709,
+ -0.040617,0.016774,-0.999034,429.26772,-549.153238,214.795487,
+ -0,0.81044,-0.585821,454.66777,-699.67933,115.739913,
+ -0.022557,0.871531,-0.489821,602.133296,-713.015947,95.399861,
+ -0,0.882708,-0.469921,454.667766,-713.015957,95.399907,
+ -0.022557,0.871531,-0.489821,602.133296,-713.015947,95.399861,
+ -0,0.81044,-0.585821,454.66777,-699.67933,115.739913,
+ -0.022557,0.796656,-0.604012,602.133301,-699.679313,115.739878,
+ 0.79876,-0.525111,0.293667,468.840164,-753.978916,118.421396,
+ 0.707841,-0.651123,0.273862,466.630427,-769.542842,91.59033,
+ 0.79876,-0.56023,0.219373,468.840155,-767.174448,90.657181,
+ 0.707841,-0.651123,0.273862,466.630427,-769.542842,91.59033,
+ 0.79876,-0.525111,0.293667,468.840164,-753.978916,118.421396,
+ 0.717647,-0.602641,0.349008,466.630436,-756.198062,119.668573,
+ -0.901181,0.2136,-0.377157,452.247009,-651.873941,175.584392,
+ -0.952384,0.113168,-0.283121,453.575559,-626.95854,183.741681,
+ -0.952384,0.150692,-0.265059,453.575567,-650.239827,172.676755,
+ -0.952384,0.113168,-0.283121,453.575559,-626.95854,183.741681,
+ -0.901181,0.2136,-0.377157,452.247009,-651.873941,175.584392,
+ -0.901181,0.160213,-0.402745,452.247002,-628.181199,186.84487,
+ -0.599001,0.779767,-0.182103,702.221343,-699.124264,42.539571,
+ -0.691044,0.712358,-0.122491,718.363083,-688.112661,23.357838,
+ -0.605809,0.784102,-0.134828,702.221333,-702.422602,23.357838,
+ -0.691044,0.712358,-0.122491,718.363083,-688.112661,23.357838,
+ -0.599001,0.779767,-0.182103,702.221343,-699.124264,42.539571,
+ -0.714681,0.677849,-0.172485,718.363091,-685.388881,39.198188,
+ 0,-0.016797,0.999859,0,-549.622587,242.726639,
+ 0.01127,-0.101755,0.994746,448.317739,-581.662615,241.649835,
+ 0.012852,-0.014396,0.999814,448.31772,-549.622454,242.726639,
+ 0.01127,-0.101755,0.994746,448.317739,-581.662615,241.649835,
+ 0,-0.016797,0.999859,0,-549.622587,242.726639,
+ 0,-0.124431,0.992228,0.000019,-581.662862,241.649831,
+ -0.649152,0.525457,-0.549997,445.721747,-699.576473,149.953886,
+ -0.537771,0.508681,-0.672344,442.83949,-680.220296,169.653769,
+ -0.649152,0.44561,-0.616469,445.721745,-678.931346,167.953679,
+ -0.537771,0.508681,-0.672344,442.83949,-680.220296,169.653769,
+ -0.649152,0.525457,-0.549997,445.721747,-699.576473,149.953886,
+ -0.537771,0.595553,-0.596756,442.839492,-701.085065,151.462478,
+ 0.012852,-0.014396,0.999814,448.31772,-549.622454,242.726639,
+ 0.091928,-0.101189,0.990611,451.683301,-581.654891,241.574352,
+ 0.114758,-0.016686,0.993253,451.683281,-549.621181,242.65094,
+ 0.091928,-0.101189,0.990611,451.683301,-581.654891,241.574352,
+ 0.012852,-0.014396,0.999814,448.31772,-549.622454,242.726639,
+ 0.01127,-0.101755,0.994746,448.317739,-581.662615,241.649835,
+ -0.901181,0.160213,-0.402745,452.247002,-628.181199,186.84487,
+ -0.952384,0.073533,-0.295901,453.575549,-602.386639,191.530944,
+ -0.952384,0.113168,-0.283121,453.575559,-626.95854,183.741681,
+ -0.952384,0.073533,-0.295901,453.575549,-602.386639,191.530944,
+ -0.901181,0.160213,-0.402745,452.247002,-628.181199,186.84487,
+ -0.901181,0.103838,-0.42082,452.246991,-603.175034,194.771794,
+ -0.415875,0.72429,-0.549957,439.690621,-720.641807,131.632947,
+ -0.537771,0.734555,-0.413801,442.839485,-734.454802,107.448703,
+ -0.415875,0.792474,-0.446131,439.690616,-735.948584,108.28822,
+ -0.537771,0.734555,-0.413801,442.839485,-734.454802,107.448703,
+ -0.415875,0.72429,-0.549957,439.690621,-720.641807,131.632947,
+ -0.537771,0.671316,-0.510036,442.83949,-719.276356,130.597708,
+ 0.966794,-0.15555,0.202766,787.130191,-597.186922,60.135075,
+ 0.924993,-0.269668,0.267706,779.02417,-620.964741,71.342153,
+ 0.966794,-0.181729,0.179678,787.130191,-603.902541,54.279953,
+ 0.924993,-0.269668,0.267706,779.02417,-620.964741,71.342153,
+ 0.966794,-0.15555,0.202766,787.130191,-597.186922,60.135075,
+ 0.924993,-0.230673,0.301955,779.024169,-611.764971,79.363123,
+ 0.603443,-0.187559,0.775035,464.090763,-612.101686,231.466578,
+ 0.707841,-0.243878,0.662936,466.630427,-641.212918,219.920255,
+ 0.707841,-0.151267,0.689985,466.630415,-611.57814,229.314444,
+ 0.707841,-0.243878,0.662936,466.630427,-641.212918,219.920255,
+ 0.603443,-0.187559,0.775035,464.090763,-612.101686,231.466578,
+ 0.603443,-0.29142,0.742247,464.090775,-642.024843,221.980973,
+ -0.530018,0.847987,-0,642.023926,-654.528574,5.83946,
+ -0.469634,0.882861,-0,629.962605,-661.494594,-0,
+ -0.438529,0.898717,-0,629.962605,-661.494594,5.83946,
+ -0.469634,0.882861,-0,629.962605,-661.494594,-0,
+ -0.530018,0.847987,-0,642.023926,-654.528574,5.83946,
+ -0.559296,0.828968,-0,642.023926,-654.528574,-0,
+ -0.847987,0.530018,-0,681.15025,-615.40225,-0,
+ -0.882861,0.469634,-0,688.11627,-603.340929,5.83946,
+ -0.898717,0.438529,-0,688.11627,-603.340929,-0,
+ -0.882861,0.469634,-0,688.11627,-603.340929,5.83946,
+ -0.847987,0.530018,-0,681.15025,-615.40225,-0,
+ -0.828968,0.559296,-0,681.15025,-615.40225,5.83946,
+ -0.982194,0.18787,-0,700.992217,-563.749227,5.83946,
+ -0.985885,0.167425,-0,806.270901,56.185652,0,
+ -0.982194,0.18787,-0,700.992217,-563.749227,-0,
+ -0.985885,0.167425,-0,806.270901,56.185652,0,
+ -0.982194,0.18787,-0,700.992217,-563.749227,5.83946,
+ -0.985885,0.167425,-0,764.9959,-186.86272,5.83946,
+ -0.985885,0.167425,-0,806.270901,56.185652,0,
+ -0.985885,0.167425,-0,764.9959,-186.86272,5.83946,
+ -0.985885,0.167425,0,806.270901,56.185652,23.357838,
+ -0.985885,0.167425,0,806.270901,56.185652,23.357838,
+ -0.985885,0.167425,-0,764.9959,-186.86272,5.83946,
+ -0.997977,0.055997,-0.030099,764.9959,-186.86272,23.357838,
+ 0.994417,-0.002312,0.105501,473.642021,-549.252285,220.6922,
+ 0.973657,-0.024735,0.226671,473.101722,-579.75396,222.991746,
+ 0.995804,-0.010878,0.090867,473.642039,-579.415029,219.678492,
+ 0.973657,-0.024735,0.226671,473.101722,-579.75396,222.991746,
+ 0.994417,-0.002312,0.105501,473.642021,-549.252285,220.6922,
+ 0.973547,-0.004216,0.228449,473.101704,-549.308105,224.014969,
+ 0.998104,-0.001034,0.061542,793.5709,-545.937124,23.357838,
+ 0.991932,-0.01438,0.125953,792.007211,-561.87231,48.189795,
+ 0.998111,-0.007644,0.060955,793.543158,-559.332109,23.357838,
+ 0.991932,-0.01438,0.125953,792.007211,-561.87231,48.189795,
+ 0.998104,-0.001034,0.061542,793.5709,-545.937124,23.357838,
+ 0.98887,-0.002499,0.148764,792.007202,-546.363038,48.711029,
+ 0.381503,-0.736251,0.558918,673.957381,-712.905798,125.767735,
+ 0.256673,-0.683145,0.68369,649.884126,-701.177315,151.554728,
+ 0.256673,-0.769937,0.584223,649.884124,-719.380332,130.676509,
+ 0.256673,-0.683145,0.68369,649.884126,-701.177315,151.554728,
+ 0.381503,-0.736251,0.558918,673.957381,-712.905798,125.767735,
+ 0.381503,-0.653222,0.654031,673.957383,-695.432071,145.809483,
+ 0.256673,-0.769937,0.584223,649.884124,-719.380332,130.676509,
+ 0.127347,-0.701215,0.701485,624.955349,-704.633973,155.011385,
+ 0.127347,-0.790262,0.59939,624.955347,-723.275771,133.6299,
+ 0.127347,-0.701215,0.701485,624.955349,-704.633973,155.011385,
+ 0.256673,-0.769937,0.584223,649.884124,-719.380332,130.676509,
+ 0.256673,-0.683145,0.68369,649.884126,-701.177315,151.554728,
+ 0.127347,-0.790262,0.59939,624.955347,-723.275771,133.6299,
+ 0.030867,-0.706755,0.706785,599.602158,-705.742267,156.119679,
+ 0.030867,-0.796473,0.603886,599.602156,-724.524748,134.576836,
+ 0.030867,-0.706755,0.706785,599.602158,-705.742267,156.119679,
+ 0.127347,-0.790262,0.59939,624.955347,-723.275771,133.6299,
+ 0.127347,-0.701215,0.701485,624.955349,-704.633973,155.011385,
+ 0.030867,-0.796473,0.603886,599.602156,-724.524748,134.576836,
+ 0,-0.723053,0.690793,473.717779,-705.742288,156.119701,
+ 0,-0.81044,0.585821,473.717777,-724.524762,134.576865,
+ 0,-0.723053,0.690793,473.717779,-705.742288,156.119701,
+ 0.030867,-0.796473,0.603886,599.602156,-724.524748,134.576836,
+ 0.030867,-0.706755,0.706785,599.602158,-705.742267,156.119679,
+ 0.999748,-0.016225,0.015501,473.717779,-705.742288,156.119701,
+ 0.995804,-0.073866,0.054027,473.642079,-727.212939,136.614949,
+ 0.999748,-0.018186,0.013146,473.717777,-724.524762,134.576865,
+ 0.995804,-0.073866,0.054027,473.642079,-727.212939,136.614949,
+ 0.999748,-0.016225,0.015501,473.717779,-705.742288,156.119701,
+ 0.995804,-0.065815,0.063588,473.64208,-708.127668,158.505081,
+ 0,-0.999436,0.033589,0.00089,-791.564218,23.357838,
+ 0.00966,-0.995709,0.092029,448.317739,-791.272422,32.040027,
+ 0,-0.994809,0.101765,0.000019,-791.272419,32.040275,
+ 0.00966,-0.995709,0.092029,448.317739,-791.272422,32.040027,
+ 0,-0.999436,0.033589,0.00089,-791.564218,23.357838,
+ 0.011244,-0.999373,0.033587,448.317734,-791.564213,23.357838,
+ -0.970224,0.242209,-0,698.091838,-577.372321,-0,
+ -0.982194,0.18787,-0,700.992217,-563.749227,5.83946,
+ -0.982194,0.18787,-0,700.992217,-563.749227,-0,
+ -0.982194,0.18787,-0,700.992217,-563.749227,5.83946,
+ -0.970224,0.242209,-0,698.091838,-577.372321,-0,
+ -0.961178,0.27593,0,698.091838,-577.372321,5.83946,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.9959,-186.86272,23.357838,
+ 0,-0,1,0.001765,-186.86272,23.357838,
+ -0,-0,1,764.9959,-186.86272,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.9959,-545.937132,23.357838,
+ -0,-0,1,764.9959,-545.937132,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.975642,-559.332125,23.357838,
+ -0,-0,1,764.975642,-559.332125,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.959284,-561.475403,23.357838,
+ -0,-0,1,764.959284,-561.475403,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.928093,-563.76708,23.357838,
+ -0,-0,1,764.928093,-563.76708,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.878707,-566.321382,23.357838,
+ -0,-0,1,764.878707,-566.321382,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.805052,-569.303684,23.357838,
+ -0,-0,1,764.805052,-569.303684,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.696221,-572.980425,23.357838,
+ -0,-0,1,764.696221,-572.980425,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.531578,-577.829947,23.357838,
+ -0,-0,1,764.531578,-577.829947,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.267941,-584.829097,23.357838,
+ -0,-0,1,764.267941,-584.829097,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,764.031423,-590.643016,23.357838,
+ -0,-0,1,764.031423,-590.643016,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,763.093075,-596.364509,23.357838,
+ -0,0,1,763.093075,-596.364509,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,760.201822,-613.067712,23.357838,
+ -0,0,1,760.201822,-613.067712,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,757.969157,-620.274076,23.357838,
+ -0,0,1,757.969157,-620.274076,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,753.576401,-633.988087,23.357838,
+ -0,0,1,753.576401,-633.988087,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,744.275043,-653.583014,23.357838,
+ -0,0,1,744.275043,-653.583014,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,732.466046,-671.734013,23.357838,
+ -0,0,1,732.466046,-671.734013,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,718.363083,-688.112661,23.357838,
+ -0,0,1,718.363083,-688.112661,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,702.221333,-702.422602,23.357838,
+ -0,0,1,702.221333,-702.422602,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,696.28309,-706.40024,23.357838,
+ -0,0,1,696.28309,-706.40024,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,684.332867,-714.293585,23.357838,
+ -0,0,1,684.332867,-714.293585,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,454.667735,-735.026158,23.357838,
+ -0,0,1,684.332867,-714.293585,23.357838,
+ -0,0,1,454.667735,-735.026158,23.357838,
+ -0,-0,1,665.021358,-723.600195,23.357838,
+ -0,-0,1,665.021358,-723.600195,23.357838,
+ -0,0,1,454.667735,-735.026158,23.357838,
+ -0,-0,1,644.63623,-730.229356,23.357838,
+ -0,-0,1,644.63623,-730.229356,23.357838,
+ -0,0,1,454.667735,-735.026158,23.357838,
+ -0,-0,1,623.546332,-734.061121,23.357838,
+ -0,-0,1,623.546332,-734.061121,23.357838,
+ -0,0,1,454.667735,-735.026158,23.357838,
+ -0,-0,1,602.133266,-735.026157,23.357838,
+ -0,0,1,454.667735,-735.026158,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,-0,1,454.797652,-738.60882,23.357838,
+ -0,-0,1,454.797652,-738.60882,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,454.431238,-742.175043,23.357838,
+ -0,0,1,454.431238,-742.175043,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,453.575534,-745.656322,23.357838,
+ -0,0,1,453.575534,-745.656322,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,452.246975,-748.985782,23.357838,
+ -0,0,1,452.246975,-748.985782,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,450.471085,-752.099463,23.357838,
+ -0,0,1,450.471085,-752.099463,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,448.281977,-754.937554,23.357838,
+ -0,0,1,448.281977,-754.937554,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,445.721704,-757.445533,23.357838,
+ -0,0,1,445.721704,-757.445533,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,442.839449,-759.575224,23.357838,
+ -0,0,1,442.839449,-759.575224,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,439.690579,-761.285715,23.357838,
+ -0,0,1,439.690579,-761.285715,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,436.335584,-762.544148,23.357838,
+ -0,0,1,436.335584,-762.544148,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,432.838912,-763.326349,23.357838,
+ -0,0,1,432.838912,-763.326349,23.357838,
+ -0,0,1,0.00829,-763.617296,23.357836,
+ -0,0,1,429.267734,-763.617291,23.357838,
+ 0.999748,-0.018186,0.013146,473.717777,-724.524762,134.576865,
+ 0.995804,-0.08054,0.043457,473.642074,-743.137303,112.328326,
+ 0.999748,-0.019808,0.010545,473.717772,-740.196479,110.67556,
+ 0.995804,-0.08054,0.043457,473.642074,-743.137303,112.328326,
+ 0.999748,-0.018186,0.013146,473.717777,-724.524762,134.576865,
+ 0.995804,-0.073866,0.054027,473.642079,-727.212939,136.614949,
+ 0.609101,-0.737549,0.291577,717.894067,-715.319418,70.22617,
+ 0.499663,-0.754768,0.425045,696.7588,-717.703482,98.034266,
+ 0.499663,-0.805647,0.318231,696.758793,-728.459324,75.40331,
+ 0.499663,-0.754768,0.425045,696.7588,-717.703482,98.034266,
+ 0.609101,-0.737549,0.291577,717.894067,-715.319418,70.22617,
+ 0.616524,-0.682339,0.392825,717.894074,-705.391609,91.114894,
+ -0.614316,0.68383,-0.393691,702.221357,-684.591376,79.42501,
+ -0.707841,0.651123,-0.273862,718.363098,-679.96832,56.297814,
+ -0.606705,0.739249,-0.292265,702.221351,-693.120267,61.479696,
+ -0.707841,0.651123,-0.273862,718.363098,-679.96832,56.297814,
+ -0.614316,0.68383,-0.393691,702.221357,-684.591376,79.42501,
+ -0.71736,0.602889,-0.34917,718.363103,-672.268221,72.499299,
+ 0.874212,-0.47211,0.113426,470.677497,-773.716304,60.685516,
+ 0.812465,-0.579983,0.059329,468.840127,-781.672997,31.058037,
+ 0.885205,-0.462786,0.04734,470.677482,-778.860284,30.770308,
+ 0.812465,-0.579983,0.059329,468.840127,-781.672997,31.058037,
+ 0.874212,-0.47211,0.113426,470.677497,-773.716304,60.685516,
+ 0.79876,-0.584897,0.140986,468.840142,-776.463573,61.353839,
+ 0.867227,-0.463727,0.18131,767.829328,-662.181333,49.28971,
+ 0.800126,-0.584324,0.13551,753.739273,-687.397248,39.686742,
+ 0.87794,-0.465203,0.113169,767.829322,-666.812843,34.679214,
+ 0.800126,-0.584324,0.13551,753.739273,-687.397248,39.686742,
+ 0.867227,-0.463727,0.18131,767.829328,-662.181333,49.28971,
+ 0.794465,-0.565471,0.221515,753.73928,-681.891377,57.055486,
+ -0.832687,0.483376,-0.27015,450.47112,-727.926176,103.779563,
+ -0.901181,0.346254,-0.26073,452.247014,-710.823017,124.188674,
+ -0.901181,0.378553,-0.211115,452.247009,-725.206979,102.251354,
+ -0.901181,0.346254,-0.26073,452.247014,-710.823017,124.188674,
+ -0.832687,0.483376,-0.27015,450.47112,-727.926176,103.779563,
+ -0.832687,0.442054,-0.333498,450.471124,-713.308606,126.073164,
+ -0.832687,0.515679,-0.201762,450.471112,-739.369533,79.702032,
+ -0.901181,0.378553,-0.211115,452.247009,-725.206979,102.251354,
+ -0.901181,0.40379,-0.157562,452.247002,-736.467457,78.558611,
+ -0.901181,0.378553,-0.211115,452.247009,-725.206979,102.251354,
+ -0.832687,0.515679,-0.201762,450.471112,-739.369533,79.702032,
+ -0.832687,0.483376,-0.27015,450.47112,-727.926176,103.779563,
+ 0.148826,-0.01661,0.988724,624.95529,-549.169432,215.762941,
+ 0.234823,0,0.972038,649.884069,-186.86272,210.885907,
+ 0.105242,0,0.994447,624.95529,-186.86272,215.762941,
+ 0.234823,0,0.972038,649.884069,-186.86272,210.885907,
+ 0.148826,-0.01661,0.988724,624.95529,-549.169432,215.762941,
+ 0.277314,-0.016138,0.960644,649.884069,-549.087494,210.885907,
+ -0.9937,0.002257,-0.112046,764.031409,-546.296855,44.770904,
+ -0.997977,0.055997,-0.030099,764.9959,-186.86272,23.357838,
+ -0.998987,0.001007,-0.04498,764.9959,-545.937132,23.357838,
+ -0.997977,0.055997,-0.030099,764.9959,-186.86272,23.357838,
+ -0.9937,0.002257,-0.112046,764.031409,-546.296855,44.770904,
+ -0.99093,0,-0.134378,764.031409,-186.86272,44.770904,
+ -0.112343,0.486683,-0.866325,623.546362,-644.548798,162.550587,
+ -0.022557,0.36647,-0.930156,602.133289,-623.054827,173.833938,
+ -0.112343,0.364093,-0.924562,623.546355,-622.700434,172.934486,
+ -0.022557,0.36647,-0.930156,602.133289,-623.054827,173.833938,
+ -0.112343,0.486683,-0.866325,623.546362,-644.548798,162.550587,
+ -0.022557,0.4898,-0.871543,602.133296,-645.022449,163.39336,
+ -0.649152,0.35745,-0.67144,445.72174,-656.026027,182.972343,
+ -0.748179,0.244321,-0.616875,448.282005,-630.366836,192.392159,
+ -0.748179,0.326101,-0.577828,448.282012,-654.795099,180.782109,
+ -0.748179,0.244321,-0.616875,448.282005,-630.366836,192.392159,
+ -0.649152,0.35745,-0.67144,445.72174,-656.026027,182.972343,
+ -0.649152,0.262621,-0.713885,445.721732,-631.287828,194.729696,
+ 0.229025,-0.229739,0.945922,455.006085,-613.111378,235.617099,
+ 0.361665,-0.341228,0.867619,458.222244,-643.22526,225.027705,
+ 0.361665,-0.219818,0.906024,458.222231,-612.875739,234.648467,
+ 0.361665,-0.341228,0.867619,458.222244,-643.22526,225.027705,
+ 0.229025,-0.229739,0.945922,455.006085,-613.111378,235.617099,
+ 0.229025,-0.356494,0.905793,455.006098,-643.590692,225.955193,
+ -0,0.81044,-0.585821,0.016303,-722.503108,133.044187,
+ -0.040706,0.871018,-0.489562,429.267772,-737.984764,109.432572,
+ -0,0.882708,-0.469921,0.016298,-737.984793,109.432704,
+ -0.040706,0.871018,-0.489562,429.267772,-737.984764,109.432572,
+ -0,0.81044,-0.585821,0.016303,-722.503108,133.044187,
+ -0.040706,0.796183,-0.603686,429.267777,-722.503059,133.044086,
+ -0.040706,0.796183,-0.603686,429.267777,-722.503059,133.044086,
+ -0.150375,0.86173,-0.484571,432.838949,-737.730682,109.289775,
+ -0.040706,0.871018,-0.489562,429.267772,-737.984764,109.432572,
+ -0.150375,0.86173,-0.484571,432.838949,-737.730682,109.289775,
+ -0.040706,0.796183,-0.603686,429.267777,-722.503059,133.044086,
+ -0.150375,0.787661,-0.597476,432.838954,-722.270805,132.867998,
+ 0.127347,-0.98669,0.101126,624.955308,-764.385936,29.28956,
+ 0.030867,-0.971194,0.236282,599.602131,-761.101673,57.616723,
+ 0.030866,-0.994332,0.101738,599.602117,-765.945157,29.449075,
+ 0.030867,-0.971194,0.236282,599.602131,-761.101673,57.616723,
+ 0.127347,-0.98669,0.101126,624.955308,-764.385936,29.28956,
+ 0.127347,-0.963706,0.234635,624.955322,-759.578731,57.246228,
+ -0.928106,0.006604,-0.372257,753.576386,-546.993607,86.24593,
+ -0.96393,0,-0.266155,760.201807,-186.86272,65.860802,
+ -0.969674,0.004471,-0.24436,760.201807,-546.651151,65.860802,
+ -0.96393,0,-0.266155,760.201807,-186.86272,65.860802,
+ -0.928106,0.006604,-0.372257,753.576386,-546.993607,86.24593,
+ -0.919489,0,-0.393115,753.576386,-186.86272,86.24593,
+ -0.969674,0.004471,-0.24436,760.201807,-546.651151,65.860802,
+ -0.99093,0,-0.134378,764.031409,-186.86272,44.770904,
+ -0.9937,0.002257,-0.112046,764.031409,-546.296855,44.770904,
+ -0.99093,0,-0.134378,764.031409,-186.86272,44.770904,
+ -0.969674,0.004471,-0.24436,760.201807,-546.651151,65.860802,
+ -0.96393,0,-0.266155,760.201807,-186.86272,65.860802,
+ -0.494423,0.75738,-0.426523,684.332893,-694.910066,85.224197,
+ -0.606705,0.739249,-0.292265,702.221351,-693.120267,61.479696,
+ -0.494423,0.808436,-0.31934,684.332887,-704.132939,65.818702,
+ -0.606705,0.739249,-0.292265,702.221351,-693.120267,61.479696,
+ -0.494423,0.75738,-0.426523,684.332893,-694.910066,85.224197,
+ -0.614316,0.68383,-0.393691,702.221357,-684.591376,79.42501,
+ -0.649152,0.595502,-0.473264,445.721745,-717.576266,129.308758,
+ -0.748179,0.469999,-0.468325,448.282019,-697.799917,148.177329,
+ -0.748179,0.529432,-0.399912,448.282017,-715.574197,127.790857,
+ -0.748179,0.469999,-0.468325,448.282019,-697.799917,148.177329,
+ -0.649152,0.595502,-0.473264,445.721745,-717.576266,129.308758,
+ -0.649152,0.525457,-0.549997,445.721747,-699.576473,149.953886,
+ -0.022557,0.603993,-0.79667,602.133301,-665.362465,150.056725,
+ -0,0.509694,-0.860356,454.667766,-645.022494,163.39337,
+ -0.022557,0.4898,-0.871543,602.133296,-645.022449,163.39336,
+ -0,0.509694,-0.860356,454.667766,-645.022494,163.39337,
+ -0.022557,0.603993,-0.79667,602.133301,-665.362465,150.056725,
+ -0,0.622177,-0.782877,454.66777,-665.3625,150.056742,
+ 0.127347,-0.963706,0.234635,624.955322,-759.578731,57.246228,
+ 0.030867,-0.929938,0.366419,599.602143,-752.465071,84.861627,
+ 0.030867,-0.971194,0.236282,599.602131,-761.101673,57.616723,
+ 0.030867,-0.929938,0.366419,599.602143,-752.465071,84.861627,
+ 0.127347,-0.963706,0.234635,624.955322,-759.578731,57.246228,
+ 0.127347,-0.922744,0.363767,624.955334,-751.006818,84.287065,
+ -0,0.882708,-0.469921,0.016298,-737.984793,109.432704,
+ -0.040706,0.929604,-0.366305,429.267763,-750.104609,83.931667,
+ -0,0.938509,-0.345255,0.01629,-750.104623,83.931833,
+ -0.040706,0.929604,-0.366305,429.267763,-750.104609,83.931667,
+ -0,0.882708,-0.469921,0.016298,-737.984793,109.432704,
+ -0.040706,0.871018,-0.489562,429.267772,-737.984764,109.432572,
+ 0.999748,-0.021919,0.004805,473.717752,-761.101674,57.616782,
+ 0.997653,-0.068124,0.006968,473.642039,-769.30108,29.792441,
+ 0.999748,-0.022318,0.002282,473.717738,-765.945156,29.449145,
+ 0.997653,-0.068124,0.006968,473.642039,-769.30108,29.792441,
+ 0.999748,-0.021919,0.004805,473.717752,-761.101674,57.616782,
+ 0.995804,-0.089282,0.020098,473.642053,-764.379515,58.414175,
+ 0.091928,-0.601482,0.793579,451.683345,-699.535099,195.12947,
+ 0.229025,-0.688056,0.688568,455.006115,-723.308225,173.685638,
+ 0.229025,-0.58781,0.775904,455.006113,-699.207898,194.697902,
+ 0.229025,-0.688056,0.688568,455.006115,-723.308225,173.685638,
+ 0.091928,-0.601482,0.793579,451.683345,-699.535099,195.12947,
+ 0.091928,-0.70401,0.704215,451.683346,-723.691181,174.068594,
+ 0.995804,-0.035007,0.084556,473.642065,-635.720877,205.981096,
+ 0.973657,-0.113053,0.198017,473.101758,-663.582664,196.418147,
+ 0.995804,-0.046203,0.078997,473.642074,-661.950913,193.514715,
+ 0.973657,-0.113053,0.198017,473.101758,-663.582664,196.418147,
+ 0.995804,-0.035007,0.084556,473.642065,-635.720877,205.981096,
+ 0.973657,-0.085015,0.211575,473.101749,-636.941768,209.079797,
+ 0.609101,-0.770402,0.188354,717.894058,-722.308196,48.179466,
+ 0.499663,-0.805647,0.318231,696.758793,-728.459324,75.40331,
+ 0.499663,-0.841496,0.20548,696.758783,-736.031005,51.517793,
+ 0.499663,-0.805647,0.318231,696.758793,-728.459324,75.40331,
+ 0.609101,-0.770402,0.188354,717.894058,-722.308196,48.179466,
+ 0.609101,-0.737549,0.291577,717.894067,-715.319418,70.22617,
+ -0.537771,0.734555,-0.413801,442.839485,-734.454802,107.448703,
+ -0.649152,0.701164,-0.294909,445.721732,-744.352284,81.665241,
+ -0.537771,0.78409,-0.309846,442.839477,-746.337241,82.447316,
+ -0.649152,0.701164,-0.294909,445.721732,-744.352284,81.665241,
+ -0.537771,0.734555,-0.413801,442.839485,-734.454802,107.448703,
+ -0.649152,0.654437,-0.387703,445.72174,-732.59493,106.40344,
+ 0.381503,-0.452381,0.806106,673.957376,-653.15444,177.862935,
+ 0.499663,-0.522735,0.690714,696.758805,-668.611056,154.341548,
+ 0.499663,-0.423738,0.755502,696.7588,-647.656853,168.080895,
+ 0.499663,-0.522735,0.690714,696.758805,-668.611056,154.341548,
+ 0.381503,-0.452381,0.806106,673.957376,-653.15444,177.862935,
+ 0.381503,-0.558006,0.736942,673.957381,-675.390322,163.28321,
+ 0.256673,-0.473186,0.842742,649.884119,-657.135168,184.945974,
+ 0.381503,-0.558006,0.736942,673.957381,-675.390322,163.28321,
+ 0.381503,-0.452381,0.806106,673.957376,-653.15444,177.862935,
+ 0.381503,-0.558006,0.736942,673.957381,-675.390322,163.28321,
+ 0.256673,-0.473186,0.842742,649.884119,-657.135168,184.945974,
+ 0.256673,-0.583609,0.770402,649.884124,-680.299096,169.757745,
+ 0.127347,-0.48578,0.864755,624.955342,-659.530197,189.207523,
+ 0.256673,-0.583609,0.770402,649.884124,-680.299096,169.757745,
+ 0.256673,-0.473186,0.842742,649.884119,-657.135168,184.945974,
+ 0.256673,-0.583609,0.770402,649.884124,-680.299096,169.757745,
+ 0.127347,-0.48578,0.864755,624.955342,-659.530197,189.207523,
+ 0.127347,-0.599085,0.790493,624.955347,-683.252488,173.653183,
+ 0.030867,-0.489683,0.871354,599.602151,-660.298109,190.573883,
+ 0.127347,-0.599085,0.790493,624.955347,-683.252488,173.653183,
+ 0.127347,-0.48578,0.864755,624.955342,-659.530197,189.207523,
+ 0.127347,-0.599085,0.790493,624.955347,-683.252488,173.653183,
+ 0.030867,-0.489683,0.871354,599.602151,-660.298109,190.573883,
+ 0.030867,-0.603851,0.796499,599.602156,-684.199423,174.90216,
+ 0,-0.509694,0.860356,473.717772,-660.298148,190.573891,
+ 0.030867,-0.603851,0.796499,599.602156,-684.199423,174.90216,
+ 0.030867,-0.489683,0.871354,599.602151,-660.298109,190.573883,
+ 0.030867,-0.603851,0.796499,599.602156,-684.199423,174.90216,
+ 0,-0.509694,0.860356,473.717772,-660.298148,190.573891,
+ 0,-0.622177,0.782877,473.717777,-684.199453,174.902175,
+ 0.999748,-0.011437,0.019306,473.717772,-660.298148,190.573891,
+ 0.995804,-0.056536,0.071964,473.642079,-686.237536,177.590351,
+ 0.999748,-0.013961,0.017568,473.717777,-684.199453,174.902175,
+ 0.995804,-0.056536,0.071964,473.642079,-686.237536,177.590351,
+ 0.999748,-0.011437,0.019306,473.717772,-660.298148,190.573891,
+ 0.995804,-0.046203,0.078997,473.642074,-661.950913,193.514715,
+ 0.995804,-0.046203,0.078997,473.642074,-661.950913,193.514715,
+ 0.973657,-0.138981,0.180764,473.101763,-688.249706,180.244348,
+ 0.995804,-0.056536,0.071964,473.642079,-686.237536,177.590351,
+ 0.973657,-0.138981,0.180764,473.101763,-688.249706,180.244348,
+ 0.995804,-0.046203,0.078997,473.642074,-661.950913,193.514715,
+ 0.973657,-0.113053,0.198017,473.101758,-663.582664,196.418147,
+ -0.285905,0.677271,-0.67791,436.335627,-703.188138,153.565551,
+ -0.415875,0.72429,-0.549957,439.690621,-720.641807,131.632947,
+ -0.285905,0.76333,-0.579298,436.335626,-721.646389,132.394587,
+ -0.415875,0.72429,-0.549957,439.690621,-720.641807,131.632947,
+ -0.285905,0.677271,-0.67791,436.335627,-703.188138,153.565551,
+ -0.415875,0.642593,-0.643523,439.690622,-702.296712,152.674124,
+ 0.997846,-0.065595,-0,847.545902,-563.749227,0,
+ 0.991423,-0.130694,-0,843.130723,-608.452917,23.357838,
+ 0.986627,-0.162996,-0,843.130723,-608.452917,-0,
+ 0.991423,-0.130694,-0,843.130723,-608.452917,23.357838,
+ 0.997846,-0.065595,-0,847.545902,-563.749227,0,
+ 0.999698,-0.024594,-0,847.545902,-563.749227,23.357838,
+ 0.012852,-0.014396,0.999814,448.31772,-549.622454,242.726639,
+ 0.068639,0,0.997642,451.683281,-186.86272,242.65094,
+ 0.007496,-0,0.999972,448.31772,-186.86272,242.726639,
+ 0.068639,0,0.997642,451.683281,-186.86272,242.65094,
+ 0.012852,-0.014396,0.999814,448.31772,-549.622454,242.726639,
+ 0.114758,-0.016686,0.993253,451.683281,-549.621181,242.65094,
+ 0.874212,-0.294445,0.386077,470.677524,-692.04293,185.247507,
+ 0.79876,-0.426323,0.424536,468.840171,-716.92159,167.299002,
+ 0.874212,-0.344308,0.342352,470.677525,-714.922322,165.299734,
+ 0.79876,-0.426323,0.424536,468.840171,-716.92159,167.299002,
+ 0.874212,-0.294445,0.386077,470.677524,-692.04293,185.247507,
+ 0.79876,-0.364496,0.47867,468.840169,-693.751117,187.500559,
+ 0,-0.622177,0.782877,473.717777,-684.199453,174.902175,
+ 0.030867,-0.706755,0.706785,599.602158,-705.742267,156.119679,
+ 0.030867,-0.603851,0.796499,599.602156,-684.199423,174.90216,
+ 0.030867,-0.706755,0.706785,599.602158,-705.742267,156.119679,
+ 0,-0.622177,0.782877,473.717777,-684.199453,174.902175,
+ 0,-0.723053,0.690793,473.717779,-705.742288,156.119701,
+ 0.973657,-0.182625,0.136528,473.101763,-729.866936,138.627118,
+ 0.932875,-0.314728,0.175187,472.107204,-748.850999,115.539467,
+ 0.973657,-0.199526,0.110368,473.101758,-746.040734,113.960076,
+ 0.932875,-0.314728,0.175187,472.107204,-748.850999,115.539467,
+ 0.973657,-0.182625,0.136528,473.101763,-729.866936,138.627118,
+ 0.932875,-0.28792,0.21644,472.107209,-732.43577,140.574721,
+ 0.932875,-0.28792,0.21644,472.107209,-732.43577,140.574721,
+ 0.874212,-0.423953,0.236679,470.677518,-751.514112,117.036157,
+ 0.932875,-0.314728,0.175187,472.107204,-748.850999,115.539467,
+ 0.874212,-0.423953,0.236679,470.677518,-751.514112,117.036157,
+ 0.932875,-0.28792,0.21644,472.107209,-732.43577,140.574721,
+ 0.874212,-0.387747,0.292242,470.677524,-734.870094,142.420342,
+ 0.874212,-0.387747,0.292242,470.677524,-734.870094,142.420342,
+ 0.79876,-0.525111,0.293667,468.840164,-753.978916,118.421396,
+ 0.874212,-0.423953,0.236679,470.677518,-751.514112,117.036157,
+ 0.79876,-0.525111,0.293667,468.840164,-753.978916,118.421396,
+ 0.874212,-0.387747,0.292242,470.677524,-734.870094,142.420342,
+ 0.79876,-0.480196,0.362483,468.840169,-737.123146,144.128529,
+ -0.901181,0.307496,-0.305481,452.247015,-693.58391,143.961322,
+ -0.952384,0.185405,-0.242052,453.575571,-671.796178,158.542589,
+ -0.952384,0.216659,-0.21453,453.575573,-691.225448,141.602861,
+ -0.952384,0.185405,-0.242052,453.575571,-671.796178,158.542589,
+ -0.901181,0.307496,-0.305481,452.247015,-693.58391,143.961322,
+ -0.901181,0.263001,-0.344532,452.247014,-673.811262,161.200429,
+ 0.20592,-0.978017,0.032869,455.006064,-790.947849,23.357838,
+ 0.091928,-0.990581,0.101478,451.683301,-791.19694,32.032304,
+ 0.068639,-0.997079,0.03351,451.683295,-791.488471,23.357838,
+ 0.091928,-0.990581,0.101478,451.683301,-791.19694,32.032304,
+ 0.20592,-0.978017,0.032869,455.006064,-790.947849,23.357838,
+ 0.229024,-0.96833,0.09942,455.006069,-790.65817,31.977188,
+ 0.972038,0,0.234823,787.130168,-186.86272,73.639808,
+ 0.98887,-0.002499,0.148764,792.007202,-546.363038,48.711029,
+ 0.994447,0,0.105242,792.007202,-186.86272,48.711029,
+ 0.98887,-0.002499,0.148764,792.007202,-546.363038,48.711029,
+ 0.972038,0,0.234823,787.130168,-186.86272,73.639808,
+ 0.9608,-0.004657,0.277203,787.130168,-546.781824,73.639808,
+ -0,0.976801,-0.214147,454.667749,-730.806274,50.246897,
+ -0.022557,0.994554,-0.10175,602.133267,-734.928078,26.276163,
+ -0,0.996871,-0.079045,454.667737,-734.928076,26.276244,
+ -0.022557,0.994554,-0.10175,602.133267,-734.928078,26.276163,
+ -0,0.976801,-0.214147,454.667749,-730.806274,50.246897,
+ -0.022557,0.971412,-0.236325,602.13328,-730.806273,50.246828,
+ 0.79876,-0.480196,0.362483,468.840169,-737.123146,144.128529,
+ 0.717647,-0.602641,0.349008,466.630436,-756.198062,119.668573,
+ 0.79876,-0.525111,0.293667,468.840164,-753.978916,118.421396,
+ 0.717647,-0.602641,0.349008,466.630436,-756.198062,119.668573,
+ 0.79876,-0.480196,0.362483,468.840169,-737.123146,144.128529,
+ 0.707932,-0.563486,0.425811,466.630442,-739.151644,145.666467,
+ -0.244971,0.355055,-0.902178,644.636252,-621.293309,169.363128,
+ -0.112343,0.23471,-0.965552,623.546346,-599.640892,180.244333,
+ -0.244971,0.228806,-0.942145,644.636243,-598.733545,176.514546,
+ -0.112343,0.23471,-0.965552,623.546346,-599.640892,180.244333,
+ -0.244971,0.355055,-0.902178,644.636252,-621.293309,169.363128,
+ -0.112343,0.364093,-0.924562,623.546355,-622.700434,172.934486,
+ 0,-0.258478,0.966017,473.717752,-607.239369,211.479086,
+ 0.030867,-0.366379,0.929954,599.602143,-634.484215,202.842483,
+ 0.030867,-0.23624,0.971204,599.602131,-607.23931,211.479086,
+ 0.030867,-0.366379,0.929954,599.602143,-634.484215,202.842483,
+ 0,-0.258478,0.966017,473.717752,-607.239369,211.479086,
+ 0,-0.387702,0.921785,473.717764,-634.484263,202.842487,
+ 0.794465,-0.565471,0.221515,753.73928,-681.891377,57.055486,
+ 0.707841,-0.682368,0.182581,736.997677,-706.002952,44.212918,
+ 0.800126,-0.584324,0.13551,753.739273,-687.397248,39.686742,
+ 0.707841,-0.682368,0.182581,736.997677,-706.002952,44.212918,
+ 0.794465,-0.565471,0.221515,753.73928,-681.891377,57.055486,
+ 0.707841,-0.651123,0.273862,736.997686,-699.706769,64.074769,
+ 0.616524,-0.682339,0.392825,717.894074,-705.391609,91.114894,
+ 0.499663,-0.689808,0.523929,696.758805,-703.964135,118.988469,
+ 0.499663,-0.754768,0.425045,696.7588,-717.703482,98.034266,
+ 0.499663,-0.689808,0.523929,696.758805,-703.964135,118.988469,
+ 0.616524,-0.682339,0.392825,717.894074,-705.391609,91.114894,
+ 0.609002,-0.620953,0.493491,717.894078,-692.709977,110.455949,
+ 0.995785,-0,0.091715,473.642021,-186.86272,220.6922,
+ 0.999747,-0.000377,0.02248,473.71772,-549.195746,217.326639,
+ 0.999747,0,0.022487,473.71772,-186.86272,217.326639,
+ 0.999747,-0.000377,0.02248,473.71772,-549.195746,217.326639,
+ 0.995785,-0,0.091715,473.642021,-186.86272,220.6922,
+ 0.994417,-0.002312,0.105501,473.642021,-549.252285,220.6922,
+ 0.361665,-0.341228,0.867619,458.222244,-643.22526,225.027705,
+ 0.487279,-0.427162,0.761638,461.269994,-671.27861,210.111812,
+ 0.487278,-0.319392,0.812741,461.269985,-642.699947,223.694428,
+ 0.487279,-0.427162,0.761638,461.269994,-671.27861,210.111812,
+ 0.361665,-0.341228,0.867619,458.222244,-643.22526,225.027705,
+ 0.361665,-0.456272,0.813028,458.222253,-671.980704,211.361071,
+ -0.985345,0.084925,-0.14793,454.431271,-648.531199,169.636534,
+ -0.999454,0.013569,-0.030128,454.797676,-624.370524,177.173126,
+ -0.999454,0.017548,-0.027998,454.797683,-646.780881,166.522129,
+ -0.999454,0.013569,-0.030128,454.797676,-624.370524,177.173126,
+ -0.985345,0.084925,-0.14793,454.431271,-648.531199,169.636534,
+ -0.985345,0.063975,-0.158123,454.431263,-625.680129,180.496989,
+ -0,0.976801,-0.214147,0.016279,-758.636496,57.017305,
+ -0.040706,0.99398,-0.101718,429.267738,-763.421251,29.190985,
+ -0,0.996871,-0.079045,0.016265,-763.421248,29.191222,
+ -0.040706,0.99398,-0.101718,429.267738,-763.421251,29.190985,
+ -0,0.976801,-0.214147,0.016279,-758.636496,57.017305,
+ -0.040706,0.970848,-0.236215,429.267752,-758.636494,57.017104,
+ -0.832126,0.009639,-0.554503,450.471071,-548.95985,203.284158,
+ -0.890491,0,-0.455,452.246961,-186.86272,200.172234,
+ -0.90081,0.007643,-0.434147,452.246961,-548.907571,200.172234,
+ -0.890491,0,-0.455,452.246961,-186.86272,200.172234,
+ -0.832126,0.009639,-0.554503,450.471071,-548.95985,203.284158,
+ -0.819027,0,-0.573755,450.471071,-186.86272,203.284158,
+ 0.229025,-0.356494,0.905793,455.006098,-643.590692,225.955193,
+ 0.361665,-0.456272,0.813028,458.222253,-671.980704,211.361071,
+ 0.361665,-0.341228,0.867619,458.222244,-643.22526,225.027705,
+ 0.361665,-0.456272,0.813028,458.222253,-671.980704,211.361071,
+ 0.229025,-0.356494,0.905793,455.006098,-643.590692,225.955193,
+ 0.229025,-0.476597,0.848766,455.006107,-672.469112,212.230111,
+ -0.993727,0.098232,-0.053457,764.031424,-589.417442,25.936523,
+ -0.998992,0.039135,-0.021994,764.267941,-584.829097,23.357838,
+ -0.99093,0.121368,-0.057682,764.031423,-590.643016,23.357838,
+ -0.150375,0.86173,-0.484571,432.838949,-737.730682,109.289775,
+ -0.285905,0.891387,-0.351693,436.335613,-749.104397,83.53758,
+ -0.150375,0.919722,-0.362627,432.838941,-749.833439,83.824825,
+ -0.285905,0.891387,-0.351693,436.335613,-749.104397,83.53758,
+ -0.150375,0.86173,-0.484571,432.838949,-737.730682,109.289775,
+ -0.285905,0.835148,-0.469878,436.335621,-737.047581,108.905866,
+ 0.995804,-0.073866,0.054027,473.642079,-727.212939,136.614949,
+ 0.973657,-0.199526,0.110368,473.101758,-746.040734,113.960076,
+ 0.995804,-0.08054,0.043457,473.642074,-743.137303,112.328326,
+ 0.973657,-0.199526,0.110368,473.101758,-746.040734,113.960076,
+ 0.995804,-0.073866,0.054027,473.642079,-727.212939,136.614949,
+ 0.973657,-0.182625,0.136528,473.101763,-729.866936,138.627118,
+ 0.707932,-0.427549,0.562168,736.997696,-649.94032,129.715362,
+ 0.609002,-0.547915,0.573503,717.894079,-677.511106,127.888519,
+ 0.707932,-0.500166,0.498664,736.997697,-665.645303,116.022715,
+ 0.609002,-0.547915,0.573503,717.894079,-677.511106,127.888519,
+ 0.707932,-0.427549,0.562168,736.997696,-649.94032,129.715362,
+ 0.609002,-0.464655,0.642816,717.894078,-660.078536,143.08739,
+ 0.499663,-0.522735,0.690714,696.758805,-668.611056,154.341548,
+ 0.609002,-0.547915,0.573503,717.894079,-677.511106,127.888519,
+ 0.609002,-0.464655,0.642816,717.894078,-660.078536,143.08739,
+ 0.609002,-0.547915,0.573503,717.894079,-677.511106,127.888519,
+ 0.499663,-0.522735,0.690714,696.758805,-668.611056,154.341548,
+ 0.499663,-0.61198,0.61304,696.758806,-687.497596,137.875009,
+ 0.381503,-0.558006,0.736942,673.957381,-675.390322,163.28321,
+ 0.499663,-0.61198,0.61304,696.758806,-687.497596,137.875009,
+ 0.499663,-0.522735,0.690714,696.758805,-668.611056,154.341548,
+ 0.499663,-0.61198,0.61304,696.758806,-687.497596,137.875009,
+ 0.381503,-0.558006,0.736942,673.957381,-675.390322,163.28321,
+ 0.381503,-0.653222,0.654031,673.957383,-695.432071,145.809483,
+ 0.256673,-0.583609,0.770402,649.884124,-680.299096,169.757745,
+ 0.381503,-0.653222,0.654031,673.957383,-695.432071,145.809483,
+ 0.381503,-0.558006,0.736942,673.957381,-675.390322,163.28321,
+ 0.381503,-0.653222,0.654031,673.957383,-695.432071,145.809483,
+ 0.256673,-0.583609,0.770402,649.884124,-680.299096,169.757745,
+ 0.256673,-0.683145,0.68369,649.884126,-701.177315,151.554728,
+ 0.127347,-0.599085,0.790493,624.955347,-683.252488,173.653183,
+ 0.256673,-0.683145,0.68369,649.884126,-701.177315,151.554728,
+ 0.256673,-0.583609,0.770402,649.884124,-680.299096,169.757745,
+ 0.256673,-0.683145,0.68369,649.884126,-701.177315,151.554728,
+ 0.127347,-0.599085,0.790493,624.955347,-683.252488,173.653183,
+ 0.127347,-0.701215,0.701485,624.955349,-704.633973,155.011385,
+ 0.867227,-0.434695,0.24281,767.829333,-655.602109,63.132805,
+ 0.794465,-0.565471,0.221515,753.73928,-681.891377,57.055486,
+ 0.867227,-0.463727,0.18131,767.829328,-662.181333,49.28971,
+ 0.794465,-0.565471,0.221515,753.73928,-681.891377,57.055486,
+ 0.867227,-0.434695,0.24281,767.829333,-655.602109,63.132805,
+ 0.794465,-0.530011,0.296503,753.739286,-674.070091,73.511955,
+ 0.794465,-0.530011,0.296503,753.739286,-674.070091,73.511955,
+ 0.707841,-0.651123,0.273862,736.997686,-699.706769,64.074769,
+ 0.794465,-0.565471,0.221515,753.73928,-681.891377,57.055486,
+ 0.707841,-0.651123,0.273862,736.997686,-699.706769,64.074769,
+ 0.794465,-0.530011,0.296503,753.739286,-674.070091,73.511955,
+ 0.717149,-0.603071,0.349289,736.997692,-690.762817,82.893397,
+ 0.707841,-0.651123,0.273862,736.997686,-699.706769,64.074769,
+ 0.616524,-0.682339,0.392825,717.894074,-705.391609,91.114894,
+ 0.609101,-0.737549,0.291577,717.894067,-715.319418,70.22617,
+ 0.616524,-0.682339,0.392825,717.894074,-705.391609,91.114894,
+ 0.707841,-0.651123,0.273862,736.997686,-699.706769,64.074769,
+ 0.717149,-0.603071,0.349289,736.997692,-690.762817,82.893397,
+ 0.487278,-0.319392,0.812741,461.269985,-642.699947,223.694428,
+ 0.592261,-0.384709,0.707974,464.090784,-670.376318,208.506333,
+ 0.603443,-0.29142,0.742247,464.090775,-642.024843,221.980973,
+ 0.592261,-0.384709,0.707974,464.090784,-670.376318,208.506333,
+ 0.487278,-0.319392,0.812741,461.269985,-642.699947,223.694428,
+ 0.487279,-0.427162,0.761638,461.269994,-671.27861,210.111812,
+ 0.603443,-0.774584,0.189413,464.090763,-781.089165,62.479098,
+ 0.487278,-0.812176,0.320826,461.269985,-773.317015,93.077359,
+ 0.487278,-0.848318,0.207161,461.269972,-782.878631,62.914419,
+ 0.487278,-0.812176,0.320826,461.269985,-773.317015,93.077359,
+ 0.603443,-0.774584,0.189413,464.090763,-781.089165,62.479098,
+ 0.603443,-0.741548,0.293196,464.090775,-771.60356,92.402256,
+ -0.832687,0.538362,-0.129611,450.471101,-747.425197,54.289747,
+ -0.901181,0.40379,-0.157562,452.247002,-736.467457,78.558611,
+ -0.901181,0.421494,-0.101069,452.246991,-744.394382,53.552447,
+ -0.901181,0.40379,-0.157562,452.247002,-736.467457,78.558611,
+ -0.832687,0.538362,-0.129611,450.471101,-747.425197,54.289747,
+ -0.832687,0.515679,-0.201762,450.471112,-739.369533,79.702032,
+ -0.901181,0.421494,-0.101069,452.246991,-744.394382,53.552447,
+ -0.952384,0.284225,-0.110366,453.575559,-733.364268,77.335952,
+ -0.952384,0.296613,-0.070606,453.575549,-741.153531,52.764052,
+ -0.952384,0.284225,-0.110366,453.575559,-733.364268,77.335952,
+ -0.901181,0.421494,-0.101069,452.246991,-744.394382,53.552447,
+ -0.901181,0.40379,-0.157562,452.247002,-736.467457,78.558611,
+ -0.952384,0.296613,-0.070606,453.575549,-741.153531,52.764052,
+ -0.985345,0.159265,-0.061075,454.431263,-730.119577,76.057541,
+ -0.985345,0.166102,-0.038803,454.431253,-737.764902,51.939707,
+ -0.985345,0.159265,-0.061075,454.431263,-730.119577,76.057541,
+ -0.952384,0.296613,-0.070606,453.575549,-741.153531,52.764052,
+ -0.952384,0.284225,-0.110366,453.575559,-733.364268,77.335952,
+ -0.985345,0.166102,-0.038803,454.431253,-737.764902,51.939707,
+ -0.999454,0.031287,-0.010628,454.797676,-726.795714,74.747937,
+ -0.999454,0.032443,-0.006265,454.797666,-734.293588,51.095248,
+ -0.999454,0.031287,-0.010628,454.797676,-726.795714,74.747937,
+ -0.985345,0.166102,-0.038803,454.431253,-737.764902,51.939707,
+ -0.985345,0.159265,-0.061075,454.431263,-730.119577,76.057541,
+ -0.999454,0.032443,-0.006265,454.797666,-734.293588,51.095248,
+ -0.999345,-0.033959,0.012493,454.667758,-723.45653,73.432296,
+ -0.999345,-0.035345,0.007749,454.667749,-730.806274,50.246897,
+ -0.999345,-0.033959,0.012493,454.667758,-723.45653,73.432296,
+ -0.999454,0.032443,-0.006265,454.797666,-734.293588,51.095248,
+ -0.999454,0.031287,-0.010628,454.797676,-726.795714,74.747937,
+ -0,0.938509,-0.345255,454.667758,-723.45653,73.432296,
+ -0.022557,0.971412,-0.236325,602.13328,-730.806273,50.246828,
+ -0,0.976801,-0.214147,454.667749,-730.806274,50.246897,
+ -0.022557,0.971412,-0.236325,602.13328,-730.806273,50.246828,
+ -0,0.938509,-0.345255,454.667758,-723.45653,73.432296,
+ -0.022557,0.930148,-0.366491,602.133289,-723.456525,73.43224,
+ -0.022557,0.930148,-0.366491,602.133289,-723.456525,73.43224,
+ -0.112343,0.96547,-0.235045,623.546346,-729.866921,50.018304,
+ -0.022557,0.971412,-0.236325,602.13328,-730.806273,50.246828,
+ -0.112343,0.96547,-0.235045,623.546346,-729.866921,50.018304,
+ -0.022557,0.930148,-0.366491,602.133289,-723.456525,73.43224,
+ -0.112343,0.924436,-0.364414,623.546355,-722.557073,73.077847,
+ -0.112343,0.924436,-0.364414,623.546355,-722.557073,73.077847,
+ -0.244971,0.941967,-0.229537,644.636243,-726.137133,49.110957,
+ -0.112343,0.96547,-0.235045,623.546346,-729.866921,50.018304,
+ -0.244971,0.941967,-0.229537,644.636243,-726.137133,49.110957,
+ -0.112343,0.924436,-0.364414,623.546355,-722.557073,73.077847,
+ -0.244971,0.901902,-0.355754,644.636252,-718.985715,71.670721,
+ -0.244971,0.901902,-0.355754,644.636252,-718.985715,71.670721,
+ -0.373111,0.90136,-0.219861,665.02137,-719.684398,47.541206,
+ -0.244971,0.941967,-0.229537,644.636243,-726.137133,49.110957,
+ -0.373111,0.90136,-0.219861,665.02137,-719.684398,47.541206,
+ -0.244971,0.901902,-0.355754,644.636252,-718.985715,71.670721,
+ -0.373111,0.862993,-0.340635,665.021379,-712.807071,69.236324,
+ -0.787976,0.615705,-0,672.962315,-626.669842,-0,
+ -0.828968,0.559296,-0,681.15025,-615.40225,5.83946,
+ -0.847987,0.530018,-0,681.15025,-615.40225,-0,
+ -0.828968,0.559296,-0,681.15025,-615.40225,5.83946,
+ -0.787976,0.615705,-0,672.962315,-626.669842,-0,
+ -0.766003,0.642837,-0,672.962315,-626.669842,5.83946,
+ -0,-0,-1,700.992217,-563.749227,5.83946,
+ -0,0,-1,0.001765,-186.86272,5.83946,
+ 0,0,-1,764.9959,-186.86272,5.83946,
+ -0,0,-1,0.001765,-186.86272,5.83946,
+ -0,-0,-1,700.992217,-563.749227,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,700.992217,-563.749227,5.83946,
+ -0,-0,-1,698.091838,-577.372321,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,698.091838,-577.372321,5.83946,
+ -0,-0,-1,693.784142,-590.617874,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,693.784142,-590.617874,5.83946,
+ -0,-0,-1,688.11627,-603.340929,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,688.11627,-603.340929,5.83946,
+ -0,-0,-1,681.15025,-615.40225,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,681.15025,-615.40225,5.83946,
+ -0,-0,-1,672.962315,-626.669842,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,672.962315,-626.669842,5.83946,
+ -0,-0,-1,663.642072,-637.020396,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,663.642072,-637.020396,5.83946,
+ -0,-0,-1,653.291518,-646.340639,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,653.291518,-646.340639,5.83946,
+ -0,-0,-1,642.023926,-654.528574,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,642.023926,-654.528574,5.83946,
+ -0,-0,-1,629.962605,-661.494594,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,629.962605,-661.494594,5.83946,
+ -0,-0,-1,617.239549,-667.162466,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,617.239549,-667.162466,5.83946,
+ -0,-0,-1,603.993997,-671.470162,5.83946,
+ -0,-0,-1,0.000468,-674.370541,5.83946,
+ -0,-0,-1,603.993997,-671.470162,5.83946,
+ 0,-0,-1,590.370902,-674.370541,5.83946,
+ -0.898717,0.438529,-0,688.11627,-603.340929,-0,
+ -0.927092,0.374833,-0,693.784142,-590.617874,5.83946,
+ -0.939612,0.342242,0,693.784142,-590.617874,-0,
+ -0.927092,0.374833,-0,693.784142,-590.617874,5.83946,
+ -0.898717,0.438529,-0,688.11627,-603.340929,-0,
+ -0.882861,0.469634,-0,688.11627,-603.340929,5.83946,
+ -0.719343,0.694655,-0,663.642072,-637.020396,-0,
+ -0.766003,0.642837,-0,672.962315,-626.669842,5.83946,
+ -0.787976,0.615705,-0,672.962315,-626.669842,-0,
+ -0.766003,0.642837,-0,672.962315,-626.669842,5.83946,
+ -0.719343,0.694655,-0,663.642072,-637.020396,-0,
+ -0.694655,0.719343,-0,663.642072,-637.020396,5.83946,
+ -0.694655,0.719343,-0,663.642072,-637.020396,5.83946,
+ -0.642837,0.766003,-0,653.291518,-646.340639,-0,
+ -0.615705,0.787976,-0,653.291518,-646.340639,5.83946,
+ -0.642837,0.766003,-0,653.291518,-646.340639,-0,
+ -0.694655,0.719343,-0,663.642072,-637.020396,5.83946,
+ -0.719343,0.694655,-0,663.642072,-637.020396,-0,
+ -0.985345,0.159265,-0.061075,454.431263,-730.119577,76.057541,
+ -0.999454,0.029547,-0.014792,454.797683,-716.144717,97.158293,
+ -0.999454,0.031287,-0.010628,454.797676,-726.795714,74.747937,
+ -0.999454,0.029547,-0.014792,454.797683,-716.144717,97.158293,
+ -0.985345,0.159265,-0.061075,454.431263,-730.119577,76.057541,
+ -0.985345,0.149457,-0.082208,454.431271,-719.259121,98.908612,
+ -0.040706,0.489496,-0.871055,429.267772,-659.055159,188.362176,
+ -0,0.387702,-0.921785,0.01629,-633.55442,200.482036,
+ -0.040706,0.366235,-0.929632,429.267763,-633.554255,200.482022,
+ -0,0.387702,-0.921785,0.01629,-633.55442,200.482036,
+ -0.040706,0.489496,-0.871055,429.267772,-659.055159,188.362176,
+ -0,0.509694,-0.860356,0.016298,-659.055291,188.362206,
+ 0.091928,-0.364886,0.926503,451.68333,-643.789223,226.459074,
+ 0.229025,-0.476597,0.848766,455.006107,-672.469112,212.230111,
+ 0.229025,-0.356494,0.905793,455.006098,-643.590692,225.955193,
+ 0.229025,-0.476597,0.848766,455.006107,-672.469112,212.230111,
+ 0.091928,-0.364886,0.926503,451.68333,-643.789223,226.459074,
+ 0.091928,-0.487734,0.868139,451.683339,-672.734453,212.70224,
+ -0.244971,0.685296,-0.685827,644.636265,-680.297547,130.67496,
+ -0.373111,0.738976,-0.560984,665.02139,-690.558191,108.824546,
+ -0.244971,0.772358,-0.586047,644.636264,-695.850119,112.836708,
+ -0.373111,0.738976,-0.560984,665.02139,-690.558191,108.824546,
+ -0.244971,0.685296,-0.685827,644.636265,-680.297547,130.67496,
+ -0.373111,0.655639,-0.656449,665.021391,-675.601701,125.979113,
+ 0.487278,-0.848318,0.207161,461.269972,-782.878631,62.914419,
+ 0.361665,-0.867199,0.342292,458.222244,-774.650293,93.602673,
+ 0.361665,-0.905753,0.220929,458.222231,-784.271055,63.253152,
+ 0.361665,-0.867199,0.342292,458.222244,-774.650293,93.602673,
+ 0.487278,-0.848318,0.207161,461.269972,-782.878631,62.914419,
+ 0.487278,-0.812176,0.320826,461.269985,-773.317015,93.077359,
+ -0.748179,0.244321,-0.616875,448.282005,-630.366836,192.392159,
+ -0.832687,0.13217,-0.53774,450.471101,-603.912334,197.80261,
+ -0.832687,0.204213,-0.514714,450.471112,-629.324619,189.746946,
+ -0.832687,0.13217,-0.53774,450.471101,-603.912334,197.80261,
+ -0.748179,0.244321,-0.616875,448.282005,-630.366836,192.392159,
+ -0.741547,0.152765,-0.653277,448.281994,-604.584377,200.565168,
+ 0.79876,-0.221723,0.559304,468.840155,-640.279768,217.551861,
+ 0.700875,-0.343846,0.624935,466.630436,-669.291161,206.575475,
+ 0.79876,-0.29587,0.523873,468.840164,-668.043983,204.356329,
+ 0.700875,-0.343846,0.624935,466.630436,-669.291161,206.575475,
+ 0.79876,-0.221723,0.559304,468.840155,-640.279768,217.551861,
+ 0.707841,-0.243878,0.662936,466.630427,-641.212918,219.920255,
+ -0.999454,0.017548,-0.027998,454.797683,-646.780881,166.522129,
+ -0.999345,-0.014029,0.033354,454.667758,-623.054884,173.833943,
+ -0.999345,-0.018443,0.031131,454.667766,-645.022494,163.39337,
+ -0.999345,-0.014029,0.033354,454.667758,-623.054884,173.833943,
+ -0.999454,0.017548,-0.027998,454.797683,-646.780881,166.522129,
+ -0.999454,0.013569,-0.030128,454.797676,-624.370524,177.173126,
+ -0.022557,0.4898,-0.871543,602.133296,-645.022449,163.39336,
+ -0,0.387702,-0.921785,454.667758,-623.054884,173.833943,
+ -0.022557,0.36647,-0.930156,602.133289,-623.054827,173.833938,
+ -0,0.387702,-0.921785,454.667758,-623.054884,173.833943,
+ -0.022557,0.4898,-0.871543,602.133296,-645.022449,163.39336,
+ -0,0.509694,-0.860356,454.667766,-645.022494,163.39337,
+ 0.603443,-0.741548,0.293196,464.090775,-771.60356,92.402256,
+ 0.487279,-0.760883,0.428506,461.269994,-759.734399,121.656023,
+ 0.487278,-0.812176,0.320826,461.269985,-773.317015,93.077359,
+ 0.487279,-0.760883,0.428506,461.269994,-759.734399,121.656023,
+ 0.603443,-0.741548,0.293196,464.090775,-771.60356,92.402256,
+ 0.611311,-0.685845,0.394863,464.090784,-758.12892,120.753731,
+ 0.229025,-0.476597,0.848766,455.006107,-672.469112,212.230111,
+ 0.361665,-0.562804,0.74327,458.222259,-698.605625,193.903521,
+ 0.361665,-0.456272,0.813028,458.222253,-671.980704,211.361071,
+ 0.361665,-0.562804,0.74327,458.222259,-698.605625,193.903521,
+ 0.229025,-0.476597,0.848766,455.006107,-672.469112,212.230111,
+ 0.229025,-0.58781,0.775904,455.006113,-699.207898,194.697902,
+ -0.527988,0,-0.849252,100.155807,-186.86272,2052.977553,
+ -0.382683,0,-0.92388,69.023518,-280.29408,2069.618109,
+ -0.382683,0,-0.92388,69.023518,-186.86272,2069.618109,
+ -0.382683,0,-0.92388,69.023518,-280.29408,2069.618109,
+ -0.527988,0,-0.849252,100.155807,-186.86272,2052.977553,
+ -0.582554,0,-0.812792,100.155807,-280.29408,2052.977553,
+ -0.582554,0,0.812792,100.155807,-280.29408,1753.526669,
+ -0.707107,0,0.707107,127.443487,-186.86272,1775.921089,
+ -0.527988,0,0.849252,100.155807,-186.86272,1753.526669,
+ -0.707107,0,0.707107,127.443487,-186.86272,1775.921089,
+ -0.582554,0,0.812792,100.155807,-280.29408,1753.526669,
+ -0.707107,0,0.707107,127.443487,-280.29408,1775.921089,
+ -0.812792,0,0.582554,149.837908,-280.29408,1803.208769,
+ -0.707107,0,0.707107,127.443487,-186.86272,1775.921089,
+ -0.707107,0,0.707107,127.443487,-280.29408,1775.921089,
+ -0.707107,0,0.707107,127.443487,-186.86272,1775.921089,
+ -0.812792,0,0.582554,149.837908,-280.29408,1803.208769,
+ -0.849252,0,0.527988,149.837908,-186.86272,1803.208769,
+ -0.849252,0,-0.527988,149.837908,-280.29408,2003.295453,
+ -0.910825,0,-0.412792,166.478463,-186.86272,1972.163164,
+ -0.935939,0,-0.352162,166.478463,-280.29408,1972.163164,
+ -0.910825,0,-0.412792,166.478463,-186.86272,1972.163164,
+ -0.849252,0,-0.527988,149.837908,-280.29408,2003.295453,
+ -0.812792,0,-0.582554,149.837908,-186.86272,2003.295453,
+ -0.870211,0.298718,-0.391791,744.275058,-616.515297,85.628667,
+ -0.928388,0.183307,-0.323257,753.57641,-595.926736,76.035688,
+ -0.928388,0.225646,-0.295263,753.576412,-604.820821,70.203974,
+ -0.928388,0.183307,-0.323257,753.57641,-595.926736,76.035688,
+ -0.870211,0.298718,-0.391791,744.275058,-616.515297,85.628667,
+ -0.870211,0.242544,-0.428841,744.275056,-605.410265,92.910065,
+ 0.973657,-0.085015,0.211575,473.101749,-636.941768,209.079797,
+ 0.932875,-0.177759,0.313282,472.107204,-665.162054,199.228412,
+ 0.973657,-0.113053,0.198017,473.101758,-663.582664,196.418147,
+ 0.932875,-0.177759,0.313282,472.107204,-665.162054,199.228412,
+ 0.973657,-0.085015,0.211575,473.101749,-636.941768,209.079797,
+ 0.932875,-0.133411,0.334583,472.107195,-638.123482,212.079066,
+ -0.112343,0.364093,-0.924562,623.546355,-622.700434,172.934486,
+ -0.022557,0.236303,-0.971418,602.13328,-599.869416,181.183686,
+ -0.112343,0.23471,-0.965552,623.546346,-599.640892,180.244333,
+ -0.022557,0.236303,-0.971418,602.13328,-599.869416,181.183686,
+ -0.112343,0.364093,-0.924562,623.546355,-622.700434,172.934486,
+ -0.022557,0.36647,-0.930156,602.133289,-623.054827,173.833938,
+ 0,-0.622177,0.782877,0.000063,-699.581047,195.189986,
+ 0.011271,-0.70706,0.707064,448.317785,-723.744835,174.122247,
+ 0.011271,-0.604116,0.796817,448.317783,-699.580941,195.189934,
+ 0.011271,-0.70706,0.707064,448.317785,-723.744835,174.122247,
+ 0,-0.622177,0.782877,0.000063,-699.581047,195.189986,
+ 0,-0.723053,0.690793,0.000065,-723.744912,174.122324,
+ -0.999454,0.027255,-0.01868,454.797688,-702.539296,117.908241,
+ -0.999345,-0.026163,0.024996,454.667771,-683.695448,134.072861,
+ -0.999345,-0.029325,0.021198,454.66777,-699.67933,115.739913,
+ -0.999345,-0.026163,0.024996,454.667771,-683.695448,134.072861,
+ -0.999454,0.027255,-0.01868,454.797688,-702.539296,117.908241,
+ -0.999454,0.024455,-0.02222,454.797689,-686.233268,136.610681,
+ -0,0.723053,-0.690793,454.667771,-683.695448,134.072861,
+ -0.022557,0.796656,-0.604012,602.133301,-699.679313,115.739878,
+ -0,0.81044,-0.585821,454.66777,-699.67933,115.739913,
+ -0.022557,0.796656,-0.604012,602.133301,-699.679313,115.739878,
+ -0,0.723053,-0.690793,454.667771,-683.695448,134.072861,
+ -0.022557,0.706919,-0.706935,602.133302,-683.695423,134.072836,
+ 0.361665,-0.456272,0.813028,458.222253,-671.980704,211.361071,
+ 0.487279,-0.526963,0.696326,461.27,-697.739849,192.761586,
+ 0.487279,-0.427162,0.761638,461.269994,-671.27861,210.111812,
+ 0.487279,-0.526963,0.696326,461.27,-697.739849,192.761586,
+ 0.361665,-0.456272,0.813028,458.222253,-671.980704,211.361071,
+ 0.361665,-0.562804,0.74327,458.222259,-698.605625,193.903521,
+ 0.030866,-0.101695,0.994337,599.602117,-579.071663,216.32257,
+ 0.127347,-0.234264,0.963796,624.955322,-606.868816,209.956143,
+ 0.127347,-0.100746,0.986728,624.955308,-578.912147,214.763349,
+ 0.127347,-0.234264,0.963796,624.955322,-606.868816,209.956143,
+ 0.030866,-0.101695,0.994337,599.602117,-579.071663,216.32257,
+ 0.030867,-0.23624,0.971204,599.602131,-607.23931,211.479086,
+ 0.091928,-0.926396,0.365157,451.68333,-776.081661,94.166635,
+ 0.011271,-0.871702,0.489906,448.317778,-762.390973,123.149041,
+ 0.011271,-0.930329,0.366553,448.317768,-776.152256,94.194451,
+ 0.011271,-0.871702,0.489906,448.317778,-762.390973,123.149041,
+ 0.091928,-0.926396,0.365157,451.68333,-776.081661,94.166635,
+ 0.091928,-0.867996,0.487987,451.683339,-762.324827,123.111865,
+ -0.796291,0.563252,-0.220608,732.466058,-664.91507,50.366817,
+ -0.870211,0.43015,-0.240215,744.275056,-642.532652,55.787678,
+ -0.870211,0.458871,-0.17936,744.275052,-648.232891,43.794023,
+ -0.870211,0.43015,-0.240215,744.275056,-642.532652,55.787678,
+ -0.796291,0.563252,-0.220608,732.466058,-664.91507,50.366817,
+ -0.796291,0.527936,-0.295302,732.466063,-658.163576,64.572379,
+ 0.229025,-0.905527,0.357167,455.006098,-775.57778,93.968105,
+ 0.091928,-0.867996,0.487987,451.683339,-762.324827,123.111865,
+ 0.091928,-0.926396,0.365157,451.68333,-776.081661,94.166635,
+ 0.091928,-0.867996,0.487987,451.683339,-762.324827,123.111865,
+ 0.229025,-0.905527,0.357167,455.006098,-775.57778,93.968105,
+ 0.229025,-0.848411,0.477229,455.006107,-761.852699,122.846525,
+ -0.112099,0.016649,-0.993558,623.546317,-548.656939,185.255996,
+ -0.030004,0,-0.99955,602.133251,-186.86272,186.220487,
+ -0.134378,0,-0.99093,623.546317,-186.86272,185.255996,
+ -0.030004,0,-0.99955,602.133251,-186.86272,186.220487,
+ -0.112099,0.016649,-0.993558,623.546317,-548.656939,185.255996,
+ -0.022507,0.01679,-0.999606,602.133251,-548.673148,186.220487,
+ 0.867227,-0.051963,0.495193,767.829315,-569.19647,119.787648,
+ 0.794465,-0.14471,0.589818,753.739273,-589.30933,137.774661,
+ 0.867227,-0.118957,0.483493,767.829322,-584.301801,117.190256,
+ 0.794465,-0.14471,0.589818,753.739273,-589.30933,137.774661,
+ 0.867227,-0.051963,0.495193,767.829315,-569.19647,119.787648,
+ 0.794465,-0.062988,0.604035,753.739264,-571.352333,140.862403,
+ 0.794465,-0.062988,0.604035,753.739264,-571.352333,140.862403,
+ 0.707841,-0.151267,0.689985,736.997677,-593.835505,156.380365,
+ 0.794465,-0.14471,0.589818,753.739273,-589.30933,137.774661,
+ 0.707841,-0.151267,0.689985,736.997677,-593.835505,156.380365,
+ 0.794465,-0.062988,0.604035,753.739264,-571.352333,140.862403,
+ 0.707841,-0.055835,0.704162,736.997667,-573.300963,159.911321,
+ 0.995804,-0.056536,0.071964,473.642079,-686.237536,177.590351,
+ 0.973657,-0.162317,0.16014,473.101765,-710.482719,160.860131,
+ 0.995804,-0.065815,0.063588,473.64208,-708.127668,158.505081,
+ 0.973657,-0.162317,0.16014,473.101765,-710.482719,160.860131,
+ 0.995804,-0.056536,0.071964,473.642079,-686.237536,177.590351,
+ 0.973657,-0.138981,0.180764,473.101763,-688.249706,180.244348,
+ -0.9698,0.173513,-0.171408,760.201828,-598.389085,48.766498,
+ -0.993727,0.068775,-0.088188,764.031425,-579.704781,37.076602,
+ -0.993727,0.08015,-0.077994,764.031425,-583.441377,33.81879,
+ -0.993727,0.068775,-0.088188,764.031425,-579.704781,37.076602,
+ -0.9698,0.173513,-0.171408,760.201828,-598.389085,48.766498,
+ -0.9698,0.148537,-0.193454,760.201828,-592.476195,53.921748,
+ -0.649152,0.654437,-0.387703,445.72174,-732.59493,106.40344,
+ -0.748179,0.529432,-0.399912,448.282017,-715.574197,127.790857,
+ -0.748179,0.578988,-0.324038,448.282012,-730.404697,105.172511,
+ -0.748179,0.529432,-0.399912,448.282017,-715.574197,127.790857,
+ -0.649152,0.654437,-0.387703,445.72174,-732.59493,106.40344,
+ -0.649152,0.595502,-0.473264,445.721745,-717.576266,129.308758,
+ -0.022557,0.796656,-0.604012,602.133301,-699.679313,115.739878,
+ -0.112343,0.866156,-0.486984,623.546362,-712.173175,94.926211,
+ -0.022557,0.871531,-0.489821,602.133296,-713.015947,95.399861,
+ -0.112343,0.866156,-0.486984,623.546362,-712.173175,94.926211,
+ -0.022557,0.796656,-0.604012,602.133301,-699.679313,115.739878,
+ -0.112343,0.791717,-0.600469,623.546367,-698.908942,115.155806,
+ 0.707932,-0.563486,0.425811,466.630442,-739.151644,145.666467,
+ 0.611311,-0.685845,0.394863,464.090784,-758.12892,120.753731,
+ 0.717647,-0.602641,0.349008,466.630436,-756.198062,119.668573,
+ 0.611311,-0.685845,0.394863,464.090784,-758.12892,120.753731,
+ 0.707932,-0.563486,0.425811,466.630442,-739.151644,145.666467,
+ 0.603343,-0.62433,0.496175,464.09079,-740.916622,147.004613,
+ 0.611311,-0.685845,0.394863,464.090784,-758.12892,120.753731,
+ 0.487279,-0.695395,0.528191,461.27,-742.384174,148.117261,
+ 0.487279,-0.760883,0.428506,461.269994,-759.734399,121.656023,
+ 0.487279,-0.695395,0.528191,461.27,-742.384174,148.117261,
+ 0.611311,-0.685845,0.394863,464.090784,-758.12892,120.753731,
+ 0.603343,-0.62433,0.496175,464.09079,-740.916622,147.004613,
+ 0.487279,-0.760883,0.428506,461.269994,-759.734399,121.656023,
+ 0.361665,-0.742579,0.563715,458.222259,-743.526109,148.983038,
+ 0.361665,-0.812468,0.457269,458.222253,-760.983658,122.358117,
+ 0.361665,-0.742579,0.563715,458.222259,-743.526109,148.983038,
+ 0.487279,-0.760883,0.428506,461.269994,-759.734399,121.656023,
+ 0.487279,-0.695395,0.528191,461.27,-742.384174,148.117261,
+ -0.71736,0.602889,-0.34917,718.363103,-672.268221,72.499299,
+ -0.796291,0.482772,-0.364488,732.466066,-649.539321,77.725434,
+ -0.796291,0.527936,-0.295302,732.466063,-658.163576,64.572379,
+ -0.796291,0.482772,-0.364488,732.466066,-649.539321,77.725434,
+ -0.71736,0.602889,-0.34917,718.363103,-672.268221,72.499299,
+ -0.707932,0.563466,-0.425837,718.363107,-662.432231,87.500399,
+ -0.796291,0.527936,-0.295302,732.466063,-658.163576,64.572379,
+ -0.870211,0.393404,-0.29659,744.275058,-635.251255,66.89271,
+ -0.870211,0.43015,-0.240215,744.275056,-642.532652,55.787678,
+ -0.870211,0.393404,-0.29659,744.275058,-635.251255,66.89271,
+ -0.796291,0.527936,-0.295302,732.466063,-658.163576,64.572379,
+ -0.796291,0.482772,-0.364488,732.466066,-649.539321,77.725434,
+ -0.870211,0.43015,-0.240215,744.275056,-642.532652,55.787678,
+ -0.928388,0.296985,-0.223376,753.576412,-619.826561,55.198234,
+ -0.928388,0.324653,-0.180823,753.57641,-625.658276,46.304148,
+ -0.928388,0.296985,-0.223376,753.576412,-619.826561,55.198234,
+ -0.870211,0.43015,-0.240215,744.275056,-642.532652,55.787678,
+ -0.870211,0.393404,-0.29659,744.275058,-635.251255,66.89271,
+ -0.928388,0.324653,-0.180823,753.57641,-625.658276,46.304148,
+ -0.9698,0.195252,-0.146165,760.201828,-603.544336,42.853607,
+ -0.9698,0.213348,-0.118196,760.201826,-607.845772,36.293385,
+ -0.9698,0.195252,-0.146165,760.201828,-603.544336,42.853607,
+ -0.928388,0.324653,-0.180823,753.57641,-625.658276,46.304148,
+ -0.928388,0.296985,-0.223376,753.576412,-619.826561,55.198234,
+ 0.991932,-0.090686,0.088582,792.007219,-586.233981,36.611394,
+ 0.966794,-0.204518,0.153238,787.130191,-609.757662,47.564335,
+ 0.991932,-0.101911,0.075398,792.007218,-589.846284,32.468209,
+ 0.966794,-0.204518,0.153238,787.130191,-609.757662,47.564335,
+ 0.991932,-0.090686,0.088582,792.007219,-586.233981,36.611394,
+ 0.966794,-0.181729,0.179678,787.130191,-603.902541,54.279953,
+ 0.966794,-0.181729,0.179678,787.130191,-603.902541,54.279953,
+ 0.924993,-0.303632,0.228462,779.024169,-628.985711,62.142384,
+ 0.966794,-0.204518,0.153238,787.130191,-609.757662,47.564335,
+ 0.924993,-0.303632,0.228462,779.024169,-628.985711,62.142384,
+ 0.966794,-0.181729,0.179678,787.130191,-603.902541,54.279953,
+ 0.924993,-0.269668,0.267706,779.02417,-620.964741,71.342153,
+ 0.924993,-0.269668,0.267706,779.02417,-620.964741,71.342153,
+ 0.867227,-0.397554,0.299779,767.829336,-647.197908,75.95025,
+ 0.924993,-0.303632,0.228462,779.024169,-628.985711,62.142384,
+ 0.867227,-0.397554,0.299779,767.829336,-647.197908,75.95025,
+ 0.924993,-0.269668,0.267706,779.02417,-620.964741,71.342153,
+ 0.867227,-0.352996,0.351156,767.829337,-637.125516,87.502929,
+ 0.867227,-0.352996,0.351156,767.829337,-637.125516,87.502929,
+ 0.794465,-0.484664,0.36596,753.739289,-664.079301,88.749145,
+ 0.867227,-0.397554,0.299779,767.829336,-647.197908,75.95025,
+ 0.794465,-0.484664,0.36596,753.739289,-664.079301,88.749145,
+ 0.867227,-0.352996,0.351156,767.829337,-637.125516,87.502929,
+ 0.794465,-0.430275,0.42859,753.73929,-652.105388,102.482801,
+ -0.928388,0.296985,-0.223376,753.576412,-619.826561,55.198234,
+ -0.9698,0.173513,-0.171408,760.201828,-598.389085,48.766498,
+ -0.9698,0.195252,-0.146165,760.201828,-603.544336,42.853607,
+ -0.9698,0.173513,-0.171408,760.201828,-598.389085,48.766498,
+ -0.928388,0.296985,-0.223376,753.576412,-619.826561,55.198234,
+ -0.928388,0.263776,-0.261761,753.576413,-612.83728,63.214693,
+ 0.780232,-0.616443,0.105998,753.739265,-690.205036,23.357838,
+ 0.714403,-0.693748,0.091332,736.997667,-709.533908,23.678376,
+ 0.752834,-0.654794,0.066982,739.751559,-706.400475,23.357838,
+ 0.714403,-0.693748,0.091332,736.997667,-709.533908,23.678376,
+ 0.780232,-0.616443,0.105998,753.739265,-690.205036,23.357838,
+ 0.800126,-0.584324,0.13551,753.739273,-687.397248,39.686742,
+ 0.714403,-0.693748,0.091332,736.997667,-709.533908,23.678376,
+ 0.800126,-0.584324,0.13551,753.739273,-687.397248,39.686742,
+ 0.707841,-0.682368,0.182581,736.997677,-706.002952,44.212918,
+ 0.714403,-0.693748,0.091332,736.997667,-709.533908,23.678376,
+ 0.609101,-0.770402,0.188354,717.894058,-722.308196,48.179466,
+ 0.609101,-0.788882,0.081617,717.894046,-726.227566,25.386075,
+ 0.609101,-0.770402,0.188354,717.894058,-722.308196,48.179466,
+ 0.714403,-0.693748,0.091332,736.997667,-709.533908,23.678376,
+ 0.707841,-0.682368,0.182581,736.997677,-706.002952,44.212918,
+ 0.609101,-0.788882,0.081617,717.894046,-726.227566,25.386075,
+ 0.499663,-0.841496,0.20548,696.758783,-736.031005,51.517793,
+ 0.499663,-0.861647,0.088896,696.75877,-740.277271,26.823309,
+ 0.499663,-0.841496,0.20548,696.758783,-736.031005,51.517793,
+ 0.609101,-0.788882,0.081617,717.894046,-726.227566,25.386075,
+ 0.609101,-0.770402,0.188354,717.894058,-722.308196,48.179466,
+ -0.606606,0.549182,-0.574829,702.221362,-660.639487,111.0169,
+ -0.494423,0.524541,-0.693111,684.332897,-652.814504,133.506322,
+ -0.606606,0.46573,-0.644302,702.22136,-645.663324,124.074113,
+ -0.494423,0.524541,-0.693111,684.332897,-652.814504,133.506322,
+ -0.606606,0.549182,-0.574829,702.221362,-660.639487,111.0169,
+ -0.494423,0.614096,-0.615169,684.332898,-669.009253,119.386665,
+ -0.150374,0.100371,-0.983521,432.838915,-578.78391,213.508718,
+ -0.040617,0.016774,-0.999034,429.26772,-549.153238,214.795487,
+ -0.150052,0.016548,-0.98854,432.838898,-549.148352,214.504709,
+ -0.040617,0.016774,-0.999034,429.26772,-549.153238,214.795487,
+ -0.150374,0.100371,-0.983521,432.838915,-578.78391,213.508718,
+ -0.040706,0.101643,-0.993988,429.267738,-578.813573,213.798664,
+ -0.748179,0.401798,-0.528002,448.282017,-677.413444,165.951609,
+ -0.832687,0.272446,-0.482085,450.47112,-653.402151,178.303588,
+ -0.832687,0.335596,-0.440463,450.471124,-675.695751,163.686019,
+ -0.832687,0.272446,-0.482085,450.47112,-653.402151,178.303588,
+ -0.748179,0.401798,-0.528002,448.282017,-677.413444,165.951609,
+ -0.748179,0.326101,-0.577828,448.282012,-654.795099,180.782109,
+ -0.832687,0.335596,-0.440463,450.471124,-675.695751,163.686019,
+ -0.901181,0.2136,-0.377157,452.247009,-651.873941,175.584392,
+ -0.901181,0.263001,-0.344532,452.247014,-673.811262,161.200429,
+ -0.901181,0.2136,-0.377157,452.247009,-651.873941,175.584392,
+ -0.832687,0.335596,-0.440463,450.471124,-675.695751,163.686019,
+ -0.832687,0.272446,-0.482085,450.47112,-653.402151,178.303588,
+ -0.901181,0.263001,-0.344532,452.247014,-673.811262,161.200429,
+ -0.952384,0.150692,-0.265059,453.575567,-650.239827,172.676755,
+ -0.952384,0.185405,-0.242052,453.575571,-671.796178,158.542589,
+ -0.952384,0.150692,-0.265059,453.575567,-650.239827,172.676755,
+ -0.901181,0.263001,-0.344532,452.247014,-673.811262,161.200429,
+ -0.901181,0.2136,-0.377157,452.247009,-651.873941,175.584392,
+ -0.952384,0.185405,-0.242052,453.575571,-671.796178,158.542589,
+ -0.985345,0.084925,-0.14793,454.431271,-648.531199,169.636534,
+ -0.985345,0.104291,-0.134978,454.431275,-669.689209,155.763554,
+ -0.985345,0.084925,-0.14793,454.431271,-648.531199,169.636534,
+ -0.952384,0.185405,-0.242052,453.575571,-671.796178,158.542589,
+ -0.952384,0.150692,-0.265059,453.575567,-650.239827,172.676755,
+ 0.9608,-0.004657,0.277203,787.130168,-546.781824,73.639808,
+ 0.924993,-0.040048,0.377867,779.024152,-566.870657,97.051514,
+ 0.966794,-0.027448,0.254079,787.130178,-564.415116,73.047189,
+ 0.924993,-0.040048,0.377867,779.024152,-566.870657,97.051514,
+ 0.9608,-0.004657,0.277203,787.130168,-546.781824,73.639808,
+ 0.919603,-0.008082,0.392766,779.024141,-547.186239,97.713067,
+ 0.919603,-0.008082,0.392766,779.024141,-547.186239,97.713067,
+ 0.867227,-0.051963,0.495193,767.829315,-569.19647,119.787648,
+ 0.924993,-0.040048,0.377867,779.024152,-566.870657,97.051514,
+ 0.867227,-0.051963,0.495193,767.829315,-569.19647,119.787648,
+ 0.919603,-0.008082,0.392766,779.024141,-547.186239,97.713067,
+ 0.866755,-0.008697,0.498658,767.829302,-547.569289,120.514493,
+ 0.591287,-0.806461,-0,746.929123,-767.779872,-0,
+ 0.518797,-0.854897,-0,718.958402,-786.46931,23.357838,
+ 0.480964,-0.87674,-0,718.958402,-786.46931,-0,
+ 0.518797,-0.854897,-0,718.958402,-786.46931,23.357838,
+ 0.591287,-0.806461,-0,746.929123,-767.779872,-0,
+ 0.625945,-0.779867,-0,746.929123,-767.779872,23.357838,
+ 0.9153,-0.402772,-0,827.969621,-662.165838,-0,
+ 0.87674,-0.480964,-0,813.090986,-692.336727,23.357838,
+ 0.854897,-0.518797,-0,813.090986,-692.336727,-0,
+ 0.87674,-0.480964,-0,813.090986,-692.336727,23.357838,
+ 0.9153,-0.402772,-0,827.969621,-662.165838,-0,
+ 0.932018,-0.362412,-0,827.969621,-662.165838,23.357838,
+ 0.973657,-0.199526,0.110368,473.101758,-746.040734,113.960076,
+ 0.932875,-0.335664,0.130666,472.107195,-761.701654,88.500895,
+ 0.973657,-0.212704,0.08215,473.101749,-758.702385,87.31918,
+ 0.932875,-0.335664,0.130666,472.107195,-761.701654,88.500895,
+ 0.973657,-0.199526,0.110368,473.101758,-746.040734,113.960076,
+ 0.932875,-0.314728,0.175187,472.107204,-748.850999,115.539467,
+ -0.870211,0.181845,-0.457892,744.275052,-593.41661,98.610304,
+ -0.928388,0.089223,-0.360743,753.576403,-576.182654,83.81487,
+ -0.928388,0.137548,-0.34522,753.576407,-586.320946,80.601044,
+ -0.928388,0.089223,-0.360743,753.576403,-576.182654,83.81487,
+ -0.870211,0.181845,-0.457892,744.275052,-593.41661,98.610304,
+ -0.870211,0.117753,-0.4784,744.275047,-580.75808,102.623043,
+ -0.9698,0.195252,-0.146165,760.201828,-603.544336,42.853607,
+ -0.993727,0.08015,-0.077994,764.031425,-583.441377,33.81879,
+ -0.993727,0.090031,-0.066344,764.031425,-586.699189,30.082194,
+ -0.993727,0.08015,-0.077994,764.031425,-583.441377,33.81879,
+ -0.9698,0.195252,-0.146165,760.201828,-603.544336,42.853607,
+ -0.9698,0.173513,-0.171408,760.201828,-598.389085,48.766498,
+ 0.794465,-0.484664,0.36596,753.739289,-664.079301,88.749145,
+ 0.717149,-0.603071,0.349289,736.997692,-690.762817,82.893397,
+ 0.794465,-0.530011,0.296503,753.739286,-674.070091,73.511955,
+ 0.717149,-0.603071,0.349289,736.997692,-690.762817,82.893397,
+ 0.794465,-0.484664,0.36596,753.739289,-664.079301,88.749145,
+ 0.707932,-0.563451,0.425857,736.997696,-679.337949,100.317733,
+ 0.79876,-0.426323,0.424536,468.840171,-716.92159,167.299002,
+ 0.707932,-0.563486,0.425811,466.630442,-739.151644,145.666467,
+ 0.79876,-0.480196,0.362483,468.840169,-737.123146,144.128529,
+ 0.707932,-0.563486,0.425811,466.630442,-739.151644,145.666467,
+ 0.79876,-0.426323,0.424536,468.840171,-716.92159,167.299002,
+ 0.707932,-0.500206,0.498623,466.630444,-718.721598,169.09901,
+ 0.707932,-0.500206,0.498623,466.630444,-718.721598,169.09901,
+ 0.603343,-0.62433,0.496175,464.09079,-740.916622,147.004613,
+ 0.707932,-0.563486,0.425811,466.630442,-739.151644,145.666467,
+ 0.603343,-0.62433,0.496175,464.09079,-740.916622,147.004613,
+ 0.707932,-0.500206,0.498623,466.630444,-718.721598,169.09901,
+ 0.603343,-0.550894,0.576621,464.090792,-720.287768,170.665181,
+ -0.707841,0.651123,-0.273862,718.363098,-679.96832,56.297814,
+ -0.796291,0.527936,-0.295302,732.466063,-658.163576,64.572379,
+ -0.796291,0.563252,-0.220608,732.466058,-664.91507,50.366817,
+ -0.796291,0.527936,-0.295302,732.466063,-658.163576,64.572379,
+ -0.707841,0.651123,-0.273862,718.363098,-679.96832,56.297814,
+ -0.71736,0.602889,-0.34917,718.363103,-672.268221,72.499299,
+ 0.011271,-0.366548,0.930331,448.317768,-643.817038,226.529669,
+ 0.091928,-0.487734,0.868139,451.683339,-672.734453,212.70224,
+ 0.091928,-0.364886,0.926503,451.68333,-643.789223,226.459074,
+ 0.091928,-0.487734,0.868139,451.683339,-672.734453,212.70224,
+ 0.011271,-0.366548,0.930331,448.317768,-643.817038,226.529669,
+ 0.011271,-0.489901,0.871705,448.317778,-672.771628,212.768386,
+ 0.874212,-0.179273,0.451236,470.677509,-639.24332,214.921287,
+ 0.79876,-0.29587,0.523873,468.840164,-668.043983,204.356329,
+ 0.874212,-0.239089,0.422598,470.677518,-666.658744,201.891525,
+ 0.79876,-0.29587,0.523873,468.840164,-668.043983,204.356329,
+ 0.874212,-0.179273,0.451236,470.677509,-639.24332,214.921287,
+ 0.79876,-0.221723,0.559304,468.840155,-640.279768,217.551861,
+ 0.874212,-0.239089,0.422598,470.677518,-666.658744,201.891525,
+ 0.79876,-0.364496,0.47867,468.840169,-693.751117,187.500559,
+ 0.874212,-0.294445,0.386077,470.677524,-692.04293,185.247507,
+ 0.79876,-0.364496,0.47867,468.840169,-693.751117,187.500559,
+ 0.874212,-0.239089,0.422598,470.677518,-666.658744,201.891525,
+ 0.79876,-0.29587,0.523873,468.840164,-668.043983,204.356329,
+ 0.79876,-0.29587,0.523873,468.840164,-668.043983,204.356329,
+ 0.707932,-0.427595,0.562134,466.630442,-695.289055,189.529057,
+ 0.79876,-0.364496,0.47867,468.840169,-693.751117,187.500559,
+ 0.707932,-0.427595,0.562134,466.630442,-695.289055,189.529057,
+ 0.79876,-0.29587,0.523873,468.840164,-668.043983,204.356329,
+ 0.700875,-0.343846,0.624935,466.630436,-669.291161,206.575475,
+ 0.700875,-0.343846,0.624935,466.630436,-669.291161,206.575475,
+ 0.603343,-0.467182,0.646311,464.09079,-696.627201,191.294034,
+ 0.707932,-0.427595,0.562134,466.630442,-695.289055,189.529057,
+ 0.603343,-0.467182,0.646311,464.09079,-696.627201,191.294034,
+ 0.700875,-0.343846,0.624935,466.630436,-669.291161,206.575475,
+ 0.592261,-0.384709,0.707974,464.090784,-670.376318,208.506333,
+ 0.487279,-0.427162,0.761638,461.269994,-671.27861,210.111812,
+ 0.603343,-0.467182,0.646311,464.09079,-696.627201,191.294034,
+ 0.592261,-0.384709,0.707974,464.090784,-670.376318,208.506333,
+ 0.603343,-0.467182,0.646311,464.09079,-696.627201,191.294034,
+ 0.487279,-0.427162,0.761638,461.269994,-671.27861,210.111812,
+ 0.487279,-0.526963,0.696326,461.27,-697.739849,192.761586,
+ -0,0.996871,-0.079045,0.016265,-763.421248,29.191222,
+ -0.027072,0.999069,-0.033577,429.267734,-763.617291,23.357838,
+ -0,0.999436,-0.033589,0.00829,-763.617296,23.357836,
+ -0.027072,0.999069,-0.033577,429.267734,-763.617291,23.357838,
+ -0,0.996871,-0.079045,0.016265,-763.421248,29.191222,
+ -0.040706,0.99398,-0.101718,429.267738,-763.421251,29.190985,
+ -0.415875,0.904633,-0.093201,439.690582,-761.097663,28.953287,
+ -0.517204,0.855379,-0.028747,442.839449,-759.575224,23.357838,
+ -0.393899,0.918635,-0.030873,439.690579,-761.285715,23.357838,
+ -0.517204,0.855379,-0.028747,442.839449,-759.575224,23.357838,
+ -0.415875,0.904633,-0.093201,439.690582,-761.097663,28.953287,
+ -0.537771,0.838627,-0.086642,442.839452,-759.393033,28.778909,
+ -0.809671,0.570253,-0.138724,732.466052,-669.667851,35.373762,
+ -0.858411,0.505544,-0.086929,744.275043,-653.583014,23.357838,
+ -0.7818,0.61451,-0.105666,732.466046,-671.734013,23.357838,
+ -0.858411,0.505544,-0.086929,744.275043,-653.583014,23.357838,
+ -0.809671,0.570253,-0.138724,732.466052,-669.667851,35.373762,
+ -0.881047,0.459625,-0.111811,744.275047,-652.24563,31.135492,
+ -0.373111,0.90136,-0.219861,665.02137,-719.684398,47.541206,
+ -0.482609,0.869945,-0.101409,684.332867,-714.266541,24.162533,
+ -0.373111,0.922912,-0.094985,665.021359,-723.541264,25.111307,
+ -0.482609,0.869945,-0.101409,684.332867,-714.266541,24.162533,
+ -0.373111,0.90136,-0.219861,665.02137,-719.684398,47.541206,
+ -0.494423,0.84441,-0.206198,684.332878,-710.625471,45.337452,
+ 0.583909,-0.811361,0.027268,464.090742,-786.683847,23.357838,
+ 0.487278,-0.868635,0.089632,461.269956,-788.240871,31.729906,
+ 0.466054,-0.884257,0.029718,461.269951,-788.52224,23.357838,
+ 0.487278,-0.868635,0.089632,461.269956,-788.240871,31.729906,
+ 0.583909,-0.811361,0.027268,464.090742,-786.683847,23.357838,
+ 0.603443,-0.793169,0.082097,464.090747,-786.408778,31.542489,
+ -0.244971,0.941967,-0.229537,644.636243,-726.137133,49.110957,
+ -0.373111,0.922912,-0.094985,665.021359,-723.541264,25.111307,
+ -0.244971,0.964459,-0.099038,644.636231,-730.147713,25.787129,
+ -0.373111,0.922912,-0.094985,665.021359,-723.541264,25.111307,
+ -0.244971,0.941967,-0.229537,644.636243,-726.137133,49.110957,
+ -0.373111,0.90136,-0.219861,665.02137,-719.684398,47.541206,
+ -0.999462,0,0.032813,180.160558,-280.29408,1570.859583,
+ -0.986659,0,0.162803,176.700984,-186.86272,1535.733942,
+ -0.973856,0,0.227168,176.700984,-280.29408,1535.733942,
+ -0.986659,0,0.162803,176.700984,-186.86272,1535.733942,
+ -0.999462,0,0.032813,180.160558,-280.29408,1570.859583,
+ -0.999462,0,-0.032813,180.160558,-186.86272,1570.859583,
+ -0.973856,0,0.227168,176.700984,-280.29408,1535.733942,
+ -0.935939,0,0.352162,166.455213,-186.86272,1501.958161,
+ -0.910825,0,0.412792,166.455213,-280.29408,1501.958161,
+ -0.935939,0,0.352162,166.455213,-186.86272,1501.958161,
+ -0.973856,0,0.227168,176.700984,-280.29408,1535.733942,
+ -0.986659,0,0.162803,176.700984,-186.86272,1535.733942,
+ -0.910825,0,0.412792,166.455213,-280.29408,1501.958161,
+ -0.849252,0,0.527988,149.816983,-186.86272,1470.830222,
+ -0.812792,0,0.582554,149.816983,-280.29408,1470.830222,
+ -0.849252,0,0.527988,149.816983,-186.86272,1470.830222,
+ -0.910825,0,0.412792,166.455213,-280.29408,1501.958161,
+ -0.935939,0,0.352162,166.455213,-186.86272,1501.958161,
+ -0.812792,0,0.582554,149.816983,-280.29408,1470.830222,
+ -0.707107,0,0.707107,127.425692,-186.86272,1443.546356,
+ -0.707107,0,0.707107,127.425692,-280.29408,1443.546356,
+ -0.707107,0,0.707107,127.425692,-186.86272,1443.546356,
+ -0.812792,0,0.582554,149.816983,-280.29408,1470.830222,
+ -0.849252,0,0.527988,149.816983,-186.86272,1470.830222,
+ 0,-0.387702,0.921785,473.717764,-634.484263,202.842487,
+ 0.030867,-0.489683,0.871354,599.602151,-660.298109,190.573883,
+ 0.030867,-0.366379,0.929954,599.602143,-634.484215,202.842483,
+ 0.030867,-0.489683,0.871354,599.602151,-660.298109,190.573883,
+ 0,-0.387702,0.921785,473.717764,-634.484263,202.842487,
+ 0,-0.509694,0.860356,473.717772,-660.298148,190.573891,
+ -0.649152,0.262621,-0.713885,445.721732,-631.287828,194.729696,
+ -0.537771,0.198458,-0.8194,442.839466,-605.68255,205.079413,
+ -0.638578,0.17117,-0.75028,445.721721,-605.178251,203.006401,
+ -0.537771,0.198458,-0.8194,442.839466,-605.68255,205.079413,
+ -0.649152,0.262621,-0.713885,445.721732,-631.287828,194.729696,
+ -0.537771,0.308263,-0.784714,442.839477,-632.069904,196.714653,
+ -0.112343,0.96547,-0.235045,623.546346,-729.866921,50.018304,
+ -0.244971,0.964459,-0.099038,644.636231,-730.147713,25.787129,
+ -0.112343,0.988493,-0.101292,623.546333,-733.966349,26.17777,
+ -0.244971,0.964459,-0.099038,644.636231,-730.147713,25.787129,
+ -0.112343,0.96547,-0.235045,623.546346,-729.866921,50.018304,
+ -0.244971,0.941967,-0.229537,644.636243,-726.137133,49.110957,
+ -0.989023,0.146995,-0.015036,454.43124,-742.052468,27.005038,
+ -0.999454,0.032443,-0.006265,454.797666,-734.293588,51.095248,
+ -0.999951,0.009862,-0.001008,454.797654,-738.498463,26.641479,
+ -0.999454,0.032443,-0.006265,454.797666,-734.293588,51.095248,
+ -0.989023,0.146995,-0.015036,454.43124,-742.052468,27.005038,
+ -0.985345,0.166102,-0.038803,454.431253,-737.764902,51.939707,
+ -0.881047,0.459625,-0.111811,744.275047,-652.24563,31.135492,
+ -0.919489,0.387429,-0.066619,753.576401,-633.988087,23.357838,
+ -0.858411,0.505544,-0.086929,744.275043,-653.583014,23.357838,
+ -0.919489,0.387429,-0.066619,753.576401,-633.988087,23.357838,
+ -0.881047,0.459625,-0.111811,744.275047,-652.24563,31.135492,
+ -0.936465,0.339085,-0.089746,753.576403,-633.437458,26.560066,
+ -0.845271,0.531564,-0.054376,450.471088,-751.942886,28.016787,
+ -0.901181,0.421494,-0.101069,452.246991,-744.394382,53.552447,
+ -0.91096,0.410353,-0.041977,452.246978,-748.839872,27.699361,
+ -0.901181,0.421494,-0.101069,452.246991,-744.394382,53.552447,
+ -0.845271,0.531564,-0.054376,450.471088,-751.942886,28.016787,
+ -0.832687,0.538362,-0.129611,450.471101,-747.425197,54.289747,
+ 0.114758,-0.016686,0.993253,451.683281,-549.621181,242.65094,
+ 0.229024,-0.098699,0.968404,455.006069,-581.599776,241.035583,
+ 0.251027,-0.016259,0.967844,455.00605,-549.612103,242.110623,
+ 0.229024,-0.098699,0.968404,455.006069,-581.599776,241.035583,
+ 0.114758,-0.016686,0.993253,451.683281,-549.621181,242.65094,
+ 0.091928,-0.101189,0.990611,451.683301,-581.654891,241.574352,
+ 0.998111,-0.038222,0.048094,793.309566,-569.30368,23.357838,
+ 0.991932,-0.090686,0.088582,792.007219,-586.233981,36.611394,
+ 0.998111,-0.044419,0.042437,793.160542,-572.980425,23.357838,
+ 0.991932,-0.090686,0.088582,792.007219,-586.233981,36.611394,
+ 0.998111,-0.038222,0.048094,793.309566,-569.30368,23.357838,
+ 0.991932,-0.07777,0.100113,792.007218,-582.090797,40.223697,
+ -0.040706,0.366235,-0.929632,429.267763,-633.554255,200.482022,
+ -0,0.258478,-0.966017,0.016279,-606.639892,209.013909,
+ -0.040706,0.236142,-0.970866,429.267752,-606.639691,209.013907,
+ -0,0.258478,-0.966017,0.016279,-606.639892,209.013909,
+ -0.040706,0.366235,-0.929632,429.267763,-633.554255,200.482022,
+ -0,0.387702,-0.921785,0.01629,-633.55442,200.482036,
+ -0.707841,0.243878,-0.662936,718.363098,-605.920401,130.345733,
+ -0.606705,0.186995,-0.77262,702.221343,-592.162158,149.501677,
+ -0.707841,0.151267,-0.689985,718.363091,-588.820775,135.766294,
+ -0.606705,0.186995,-0.77262,702.221343,-592.162158,149.501677,
+ -0.707841,0.243878,-0.662936,718.363098,-605.920401,130.345733,
+ -0.606705,0.290533,-0.739932,702.221351,-611.102283,143.49768,
+ 0.924993,-0.091165,0.368885,779.024159,-578.899518,94.983127,
+ 0.867227,-0.183731,0.462774,767.829328,-598.912297,112.558746,
+ 0.924993,-0.140582,0.353021,779.024163,-590.534326,91.294907,
+ 0.867227,-0.183731,0.462774,767.829328,-598.912297,112.558746,
+ 0.924993,-0.091165,0.368885,779.024159,-578.899518,94.983127,
+ 0.867227,-0.118957,0.483493,767.829322,-584.301801,117.190256,
+ 0.994297,-0,0.106651,93.652471,-186.86272,2499.208064,
+ 0.976682,-0,0.214689,123.089852,-280.29408,2224.766097,
+ 0.946935,-0,0.321426,123.089852,-186.86272,2224.766097,
+ 0.976682,-0,0.214689,123.089852,-280.29408,2224.766097,
+ 0.994297,-0,0.106651,93.652471,-186.86272,2499.208064,
+ 0.994297,-0,0.106651,93.652471,-280.29408,2499.208064,
+ 0.466054,-0.884257,0.029718,461.269951,-788.52224,23.357838,
+ 0.361665,-0.92741,0.095445,458.222215,-789.666464,31.875739,
+ 0.339245,-0.940167,0.031597,458.22221,-789.952733,23.357838,
+ 0.361665,-0.92741,0.095445,458.222215,-789.666464,31.875739,
+ 0.466054,-0.884257,0.029718,461.269951,-788.52224,23.357838,
+ 0.487278,-0.868635,0.089632,461.269956,-788.240871,31.729906,
+ -0.91096,0.410353,-0.041977,452.246978,-748.839872,27.699361,
+ -0.952384,0.296613,-0.070606,453.575549,-741.153531,52.764052,
+ -0.959176,0.281343,-0.02878,453.575536,-745.52182,27.359938,
+ -0.952384,0.296613,-0.070606,453.575549,-741.153531,52.764052,
+ -0.91096,0.410353,-0.041977,452.246978,-748.839872,27.699361,
+ -0.901181,0.421494,-0.101069,452.246991,-744.394382,53.552447,
+ -0.649249,0.756522,-0.078421,445.721707,-757.270639,28.561795,
+ -0.731829,0.681103,-0.02289,448.281977,-754.937554,23.357838,
+ -0.630573,0.775692,-0.026069,445.721704,-757.445533,23.357838,
+ -0.731829,0.681103,-0.02289,448.281977,-754.937554,23.357838,
+ -0.649249,0.756522,-0.078421,445.721707,-757.270639,28.561795,
+ -0.754707,0.651908,-0.073718,448.28198,-754.771252,28.306118,
+ -0.150374,0.983472,-0.100844,432.838915,-763.131306,29.161323,
+ -0.263028,0.964244,-0.032406,436.335584,-762.544148,23.357838,
+ -0.127104,0.99133,-0.033316,432.838912,-763.326349,23.357838,
+ -0.263028,0.964244,-0.032406,436.335584,-762.544148,23.357838,
+ -0.150374,0.983472,-0.100844,432.838915,-763.131306,29.161323,
+ -0.285905,0.953237,-0.097966,436.335587,-762.351785,29.08158,
+ -0,0.996871,-0.079045,454.667737,-734.928076,26.276244,
+ -0.015002,0.999323,-0.033585,602.133266,-735.026157,23.357838,
+ -0,0.999436,-0.033589,454.667735,-735.026158,23.357838,
+ -0.015002,0.999323,-0.033585,602.133266,-735.026157,23.357838,
+ -0,0.996871,-0.079045,454.667737,-734.928076,26.276244,
+ -0.022557,0.994554,-0.10175,602.133267,-734.928078,26.276163,
+ 0.794465,-0.298581,0.528844,753.739286,-623.134542,124.447504,
+ 0.707932,-0.427549,0.562168,736.997696,-649.94032,129.715362,
+ 0.794465,-0.367859,0.483224,753.739289,-638.371733,114.456714,
+ 0.707932,-0.427549,0.562168,736.997696,-649.94032,129.715362,
+ 0.794465,-0.298581,0.528844,753.739286,-623.134542,124.447504,
+ 0.701238,-0.343649,0.624636,736.997692,-632.515985,141.14023,
+ -0.606606,0.622389,-0.494632,702.22136,-673.696701,96.040736,
+ -0.707932,0.500183,-0.498647,718.363108,-650.643847,101.02126,
+ -0.707932,0.563466,-0.425837,718.363107,-662.432231,87.500399,
+ -0.707932,0.500183,-0.498647,718.363108,-650.643847,101.02126,
+ -0.606606,0.622389,-0.494632,702.22136,-673.696701,96.040736,
+ -0.606606,0.549182,-0.574829,702.221362,-660.639487,111.0169,
+ -0.707932,0.563466,-0.425837,718.363107,-662.432231,87.500399,
+ -0.796291,0.428601,-0.426873,732.466067,-639.203194,89.580607,
+ -0.796291,0.482772,-0.364488,732.466066,-649.539321,77.725434,
+ -0.796291,0.428601,-0.426873,732.466067,-639.203194,89.580607,
+ -0.707932,0.563466,-0.425837,718.363107,-662.432231,87.500399,
+ -0.707932,0.500183,-0.498647,718.363108,-650.643847,101.02126,
+ -0.796291,0.482772,-0.364488,732.466066,-649.539321,77.725434,
+ -0.870211,0.349319,-0.347431,744.275059,-626.524536,76.901948,
+ -0.870211,0.393404,-0.29659,744.275058,-635.251255,66.89271,
+ -0.870211,0.349319,-0.347431,744.275059,-626.524536,76.901948,
+ -0.796291,0.482772,-0.364488,732.466066,-649.539321,77.725434,
+ -0.796291,0.428601,-0.426873,732.466067,-639.203194,89.580607,
+ 0.030867,-0.929938,0.366419,599.602143,-752.465071,84.861627,
+ 0,-0.882708,0.469921,473.717772,-740.196479,110.67556,
+ 0,-0.938509,0.345255,473.717764,-752.465075,84.861676,
+ 0,-0.882708,0.469921,473.717772,-740.196479,110.67556,
+ 0.030867,-0.929938,0.366419,599.602143,-752.465071,84.861627,
+ 0.030867,-0.871333,0.489721,599.602151,-740.19647,110.675522,
+ -0.999454,0.00493,-0.032673,454.797654,-576.264066,188.875876,
+ -0.999343,-0.000812,0.036246,454.66772,-548.673192,186.220487,
+ -0.999345,-0.004503,0.035903,454.667737,-575.898832,185.305489,
+ -0.999343,-0.000812,0.036246,454.66772,-548.673192,186.220487,
+ -0.999454,0.00493,-0.032673,454.797654,-576.264066,188.875876,
+ -0.999453,0.000944,-0.033066,454.797637,-548.733344,189.801127,
+ 0.867227,-0.118957,0.483493,767.829322,-584.301801,117.190256,
+ 0.794465,-0.223732,0.564597,753.73928,-606.678073,132.26879,
+ 0.867227,-0.183731,0.462774,767.829328,-598.912297,112.558746,
+ 0.794465,-0.223732,0.564597,753.73928,-606.678073,132.26879,
+ 0.867227,-0.118957,0.483493,767.829322,-584.301801,117.190256,
+ 0.794465,-0.14471,0.589818,753.739273,-589.30933,137.774661,
+ -0.022557,0.101727,-0.994557,602.133267,-575.89875,185.30549,
+ -0,0.022395,-0.999749,454.66772,-548.673192,186.220487,
+ -0.022507,0.01679,-0.999606,602.133251,-548.673148,186.220487,
+ -0,0.022395,-0.999749,454.66772,-548.673192,186.220487,
+ -0.022557,0.101727,-0.994557,602.133267,-575.89875,185.30549,
+ -0,0.124431,-0.992228,454.667737,-575.898832,185.305489,
+ -0.112343,0.100949,-0.988528,623.546333,-575.800358,184.343761,
+ -0.022507,0.01679,-0.999606,602.133251,-548.673148,186.220487,
+ -0.112099,0.016649,-0.993558,623.546317,-548.656939,185.255996,
+ -0.022507,0.01679,-0.999606,602.133251,-548.673148,186.220487,
+ -0.112343,0.100949,-0.988528,623.546333,-575.800358,184.343761,
+ -0.022557,0.101727,-0.994557,602.133267,-575.89875,185.30549,
+ -0.707932,0.427569,-0.562154,718.363107,-637.122986,112.809644,
+ -0.796291,0.297433,-0.526739,732.466063,-614.194966,108.540989,
+ -0.796291,0.366435,-0.481296,732.466066,-627.348021,99.916734,
+ -0.796291,0.297433,-0.526739,732.466063,-614.194966,108.540989,
+ -0.707932,0.427569,-0.562154,718.363107,-637.122986,112.809644,
+ -0.701084,0.343733,-0.624763,718.363103,-622.121887,122.645633,
+ -0.999454,0.013569,-0.030128,454.797676,-624.370524,177.173126,
+ -0.999345,-0.009353,0.034955,454.667749,-599.869485,181.183687,
+ -0.999345,-0.014029,0.033354,454.667758,-623.054884,173.833943,
+ -0.999345,-0.009353,0.034955,454.667749,-599.869485,181.183687,
+ -0.999454,0.013569,-0.030128,454.797676,-624.370524,177.173126,
+ -0.999454,0.009337,-0.031696,454.797666,-600.717836,184.671001,
+ -0.606705,0.290533,-0.739932,702.221351,-611.102283,143.49768,
+ -0.494423,0.204724,-0.844769,684.332878,-594.960039,161.002883,
+ -0.606705,0.186995,-0.77262,702.221343,-592.162158,149.501677,
+ -0.494423,0.204724,-0.844769,684.332878,-594.960039,161.002883,
+ -0.606705,0.290533,-0.739932,702.221351,-611.102283,143.49768,
+ -0.494423,0.317928,-0.808992,684.332887,-615.44129,154.510351,
+ 0.98887,-0.002499,0.148764,792.007202,-546.363038,48.711029,
+ 0.966794,-0.027448,0.254079,787.130178,-564.415116,73.047189,
+ 0.991932,-0.01438,0.125953,792.007211,-561.87231,48.189795,
+ 0.966794,-0.027448,0.254079,787.130178,-564.415116,73.047189,
+ 0.98887,-0.002499,0.148764,792.007202,-546.363038,48.711029,
+ 0.9608,-0.004657,0.277203,787.130168,-546.781824,73.639808,
+ -0.928388,0.263776,-0.261761,753.576413,-612.83728,63.214693,
+ -0.9698,0.148537,-0.193454,760.201828,-592.476195,53.921748,
+ -0.9698,0.173513,-0.171408,760.201828,-598.389085,48.766498,
+ -0.9698,0.148537,-0.193454,760.201828,-592.476195,53.921748,
+ -0.928388,0.263776,-0.261761,753.576413,-612.83728,63.214693,
+ -0.928388,0.225646,-0.295263,753.576412,-604.820821,70.203974,
+ 0.041063,-0.016783,0.999016,599.602099,-549.195708,217.326639,
+ 0.105242,0,0.994447,624.95529,-186.86272,215.762941,
+ 0.020529,0,0.999789,599.602099,-186.86272,217.326639,
+ 0.105242,0,0.994447,624.95529,-186.86272,215.762941,
+ 0.041063,-0.016783,0.999016,599.602099,-549.195708,217.326639,
+ 0.148826,-0.01661,0.988724,624.95529,-549.169432,215.762941,
+ -0.606705,0.079969,-0.790894,702.221333,-572.580561,152.868772,
+ -0.493603,0.014422,-0.869568,684.332852,-548.325029,165.499615,
+ -0.613495,0.011257,-0.789618,702.221319,-548.126642,153.690618,
+ -0.493603,0.014422,-0.869568,684.332852,-548.325029,165.499615,
+ -0.606705,0.079969,-0.790894,702.221333,-572.580561,152.868772,
+ -0.494423,0.087701,-0.864786,684.332867,-573.78512,164.643953,
+ -0.112343,0.791717,-0.600469,623.546367,-698.908942,115.155806,
+ -0.244971,0.845012,-0.475335,644.636259,-708.826871,93.045557,
+ -0.112343,0.866156,-0.486984,623.546362,-712.173175,94.926211,
+ -0.244971,0.845012,-0.475335,644.636259,-708.826871,93.045557,
+ -0.112343,0.791717,-0.600469,623.546367,-698.908942,115.155806,
+ -0.244971,0.772358,-0.586047,644.636264,-695.850119,112.836708,
+ -0.244971,0.772358,-0.586047,644.636264,-695.850119,112.836708,
+ -0.373111,0.808526,-0.455054,665.021386,-703.037584,89.791929,
+ -0.244971,0.845012,-0.475335,644.636259,-708.826871,93.045557,
+ -0.373111,0.808526,-0.455054,665.021386,-703.037584,89.791929,
+ -0.244971,0.772358,-0.586047,644.636264,-695.850119,112.836708,
+ -0.373111,0.738976,-0.560984,665.02139,-690.558191,108.824546,
+ -0.536932,0.013961,-0.84351,442.839435,-549.085368,210.7557,
+ -0.436021,0,-0.899936,439.690565,-186.86272,212.465226,
+ -0.556264,0,-0.831005,442.839435,-186.86272,210.7557,
+ -0.436021,0,-0.899936,439.690565,-186.86272,212.465226,
+ -0.536932,0.013961,-0.84351,442.839435,-549.085368,210.7557,
+ -0.41512,0.01512,-0.909641,439.690565,-549.114088,212.465226,
+ 0,0,1,46.868397,-280.29408,2499.208064,
+ 0,0,1,93.652471,-186.86272,2499.208064,
+ 0,0,1,46.868397,-186.86272,2499.208064,
+ 0,0,1,93.652471,-186.86272,2499.208064,
+ 0,0,1,46.868397,-280.29408,2499.208064,
+ 0,0,1,93.652471,-280.29408,2499.208064,
+ -0.373111,0.738976,-0.560984,665.02139,-690.558191,108.824546,
+ -0.494423,0.75738,-0.426523,684.332893,-694.910066,85.224197,
+ -0.373111,0.808526,-0.455054,665.021386,-703.037584,89.791929,
+ -0.494423,0.75738,-0.426523,684.332893,-694.910066,85.224197,
+ -0.373111,0.738976,-0.560984,665.02139,-690.558191,108.824546,
+ -0.494423,0.692194,-0.52575,684.332897,-683.128909,103.191916,
+ 0.030867,-0.366379,0.929954,599.602143,-634.484215,202.842483,
+ 0.127347,-0.48578,0.864755,624.955342,-659.530197,189.207523,
+ 0.127347,-0.363412,0.922884,624.955334,-633.909652,201.38423,
+ 0.127347,-0.48578,0.864755,624.955342,-659.530197,189.207523,
+ 0.030867,-0.366379,0.929954,599.602143,-634.484215,202.842483,
+ 0.030867,-0.489683,0.871354,599.602151,-660.298109,190.573883,
+ -0.714681,0.677849,-0.172485,718.363091,-685.388881,39.198188,
+ -0.7818,0.61451,-0.105666,732.466046,-671.734013,23.357838,
+ -0.691044,0.712358,-0.122491,718.363083,-688.112661,23.357838,
+ -0.7818,0.61451,-0.105666,732.466046,-671.734013,23.357838,
+ -0.714681,0.677849,-0.172485,718.363091,-685.388881,39.198188,
+ -0.809671,0.570253,-0.138724,732.466052,-669.667851,35.373762,
+ 0.234823,-0.97149,0.03265,649.884083,-759.705502,23.357838,
+ 0.127347,-0.98669,0.101126,624.955308,-764.385936,29.28956,
+ 0.105242,-0.993886,0.033402,624.955304,-764.585289,23.357838,
+ 0.127347,-0.98669,0.101126,624.955308,-764.385936,29.28956,
+ 0.234823,-0.97149,0.03265,649.884083,-759.705502,23.357838,
+ 0.256672,-0.961442,0.098738,649.884086,-759.522868,28.792076,
+ -0.993727,0.027914,-0.108296,764.031421,-566.356087,43.420852,
+ -0.998991,0.005587,-0.044554,764.975642,-559.332125,23.357838,
+ -0.998991,0.011606,-0.043377,764.959284,-561.475403,23.357838,
+ -0.998991,0.005587,-0.044554,764.975642,-559.332125,23.357838,
+ -0.993727,0.027914,-0.108296,764.031421,-566.356087,43.420852,
+ -0.993727,0.012896,-0.111089,764.031418,-561.470422,44.260952,
+ -0.150375,0.484157,-0.861963,432.838949,-658.912362,188.108094,
+ -0.040706,0.366235,-0.929632,429.267763,-633.554255,200.482022,
+ -0.150375,0.362184,-0.919897,432.838941,-633.447412,200.210852,
+ -0.040706,0.366235,-0.929632,429.267763,-633.554255,200.482022,
+ -0.150375,0.484157,-0.861963,432.838949,-658.912362,188.108094,
+ -0.040706,0.489496,-0.871055,429.267772,-659.055159,188.362176,
+ -0.244466,0.016195,-0.969523,644.636215,-548.592598,181.426394,
+ -0.134378,0,-0.99093,623.546317,-186.86272,185.255996,
+ -0.266155,0,-0.96393,644.636215,-186.86272,181.426394,
+ -0.134378,0,-0.99093,623.546317,-186.86272,185.255996,
+ -0.244466,0.016195,-0.969523,644.636215,-548.592598,181.426394,
+ -0.112099,0.016649,-0.993558,623.546317,-548.656939,185.255996,
+ -0.999454,0.029547,-0.014792,454.797683,-716.144717,97.158293,
+ -0.999345,-0.029325,0.021198,454.66777,-699.67933,115.739913,
+ -0.999345,-0.03194,0.017004,454.667766,-713.015957,95.399907,
+ -0.999345,-0.029325,0.021198,454.66777,-699.67933,115.739913,
+ -0.999454,0.029547,-0.014792,454.797683,-716.144717,97.158293,
+ -0.999454,0.027255,-0.01868,454.797688,-702.539296,117.908241,
+ -0.870211,0.393404,-0.29659,744.275058,-635.251255,66.89271,
+ -0.928388,0.263776,-0.261761,753.576413,-612.83728,63.214693,
+ -0.928388,0.296985,-0.223376,753.576412,-619.826561,55.198234,
+ -0.928388,0.263776,-0.261761,753.576413,-612.83728,63.214693,
+ -0.870211,0.393404,-0.29659,744.275058,-635.251255,66.89271,
+ -0.870211,0.349319,-0.347431,744.275059,-626.524536,76.901948,
+ -0.928388,0.089223,-0.360743,753.576403,-576.182654,83.81487,
+ -0.9698,0.0263,-0.242479,760.201817,-563.621651,65.290458,
+ -0.9698,0.059096,-0.236633,760.201821,-571.352859,63.961061,
+ -0.9698,0.0263,-0.242479,760.201817,-563.621651,65.290458,
+ -0.928388,0.089223,-0.360743,753.576403,-576.182654,83.81487,
+ -0.928388,0.039234,-0.369537,753.576397,-565.700992,85.617213,
+ -0.494423,0.692194,-0.52575,684.332897,-683.128909,103.191916,
+ -0.614316,0.68383,-0.393691,702.221357,-684.591376,79.42501,
+ -0.494423,0.75738,-0.426523,684.332893,-694.910066,85.224197,
+ -0.614316,0.68383,-0.393691,702.221357,-684.591376,79.42501,
+ -0.494423,0.692194,-0.52575,684.332897,-683.128909,103.191916,
+ -0.606606,0.622389,-0.494632,702.22136,-673.696701,96.040736,
+ -0.373111,0.33957,-0.863412,665.021379,-618.858911,163.184484,
+ -0.244971,0.228806,-0.942145,644.636243,-598.733545,176.514546,
+ -0.373111,0.218748,-0.901631,665.02137,-597.163793,170.061811,
+ -0.244971,0.228806,-0.942145,644.636243,-598.733545,176.514546,
+ -0.373111,0.33957,-0.863412,665.021379,-618.858911,163.184484,
+ -0.244971,0.355055,-0.902178,644.636252,-621.293309,169.363128,
+ -0.959176,0.281343,-0.02878,453.575536,-745.52182,27.359938,
+ -0.985345,0.166102,-0.038803,454.431253,-737.764902,51.939707,
+ -0.989023,0.146995,-0.015036,454.43124,-742.052468,27.005038,
+ -0.985345,0.166102,-0.038803,454.431253,-737.764902,51.939707,
+ -0.959176,0.281343,-0.02878,453.575536,-745.52182,27.359938,
+ -0.952384,0.296613,-0.070606,453.575549,-741.153531,52.764052,
+ -0.985345,0.104291,-0.134978,454.431275,-669.689209,155.763554,
+ -0.999454,0.017548,-0.027998,454.797683,-646.780881,166.522129,
+ -0.999454,0.021199,-0.025346,454.797688,-667.530829,152.916709,
+ -0.999454,0.017548,-0.027998,454.797683,-646.780881,166.522129,
+ -0.985345,0.104291,-0.134978,454.431275,-669.689209,155.763554,
+ -0.985345,0.084925,-0.14793,454.431271,-648.531199,169.636534,
+ 0.866918,-0.01021,0.498346,470.677463,-549.413334,230.278856,
+ 0.79876,-0.062483,0.598396,468.840127,-580.680624,232.05041,
+ 0.874212,-0.050786,0.482881,470.677482,-580.392895,229.237697,
+ 0.79876,-0.062483,0.598396,468.840127,-580.680624,232.05041,
+ 0.866918,-0.01021,0.498346,470.677463,-549.413334,230.278856,
+ 0.792107,-0.00894,0.610317,468.840108,-549.460722,233.099647,
+ -0.648424,0.012535,-0.761176,445.72169,-549.049611,208.627211,
+ -0.556264,0,-0.831005,442.839435,-186.86272,210.7557,
+ -0.665822,0,-0.746111,445.72169,-186.86272,208.627211,
+ -0.556264,0,-0.831005,442.839435,-186.86272,210.7557,
+ -0.648424,0.012535,-0.761176,445.72169,-549.049611,208.627211,
+ -0.536932,0.013961,-0.84351,442.839435,-549.085368,210.7557,
+ 0.381503,-0.338316,0.860231,673.957369,-629.139245,189.276665,
+ 0.499663,-0.423738,0.755502,696.7588,-647.656853,168.080895,
+ 0.499663,-0.316836,0.806196,696.758793,-625.025898,178.836737,
+ 0.499663,-0.423738,0.755502,696.7588,-647.656853,168.080895,
+ 0.381503,-0.338316,0.860231,673.957369,-629.139245,189.276665,
+ 0.381503,-0.452381,0.806106,673.957376,-653.15444,177.862935,
+ 0.609101,-0.079799,0.789068,717.894046,-575.008662,176.604979,
+ 0.707841,-0.151267,0.689985,736.997677,-593.835505,156.380365,
+ 0.707841,-0.055835,0.704162,736.997667,-573.300963,159.911321,
+ 0.707841,-0.151267,0.689985,736.997677,-593.835505,156.380365,
+ 0.609101,-0.079799,0.789068,717.894046,-575.008662,176.604979,
+ 0.609101,-0.186578,0.770833,717.894058,-597.802054,172.685609,
+ -0.649249,0.076378,-0.756731,445.721707,-578.184383,207.648051,
+ -0.536932,0.013961,-0.84351,442.839435,-549.085368,210.7557,
+ -0.648424,0.012535,-0.761176,445.72169,-549.049611,208.627211,
+ -0.536932,0.013961,-0.84351,442.839435,-549.085368,210.7557,
+ -0.649249,0.076378,-0.756731,445.721707,-578.184383,207.648051,
+ -0.537771,0.08495,-0.8388,442.839452,-578.401496,209.770445,
+ -0.537771,0.838627,-0.086642,442.839452,-759.393033,28.778909,
+ -0.630573,0.775692,-0.026069,445.721704,-757.445533,23.357838,
+ -0.517204,0.855379,-0.028747,442.839449,-759.575224,23.357838,
+ -0.630573,0.775692,-0.026069,445.721704,-757.445533,23.357838,
+ -0.537771,0.838627,-0.086642,442.839452,-759.393033,28.778909,
+ -0.649249,0.756522,-0.078421,445.721707,-757.270639,28.561795,
+ 0.590628,-0.806489,0.027104,717.894045,-726.295731,23.357838,
+ 0.499663,-0.861647,0.088896,696.75877,-740.277271,26.823309,
+ 0.479633,-0.876974,0.029473,696.758768,-740.393738,23.357838,
+ 0.499663,-0.861647,0.088896,696.75877,-740.277271,26.823309,
+ 0.590628,-0.806489,0.027104,717.894045,-726.295731,23.357838,
+ 0.609101,-0.788882,0.081617,717.894046,-726.227566,25.386075,
+ 0.251027,-0.016259,0.967844,455.00605,-549.612103,242.110623,
+ 0.361665,-0.094307,0.927526,458.222215,-581.498327,240.043877,
+ 0.382469,-0.01552,0.923838,458.222196,-549.595395,241.116069,
+ 0.361665,-0.094307,0.927526,458.222215,-581.498327,240.043877,
+ 0.251027,-0.016259,0.967844,455.00605,-549.612103,242.110623,
+ 0.229024,-0.098699,0.968404,455.006069,-581.599776,241.035583,
+ 0.924993,-0.140582,0.353021,779.024163,-590.534326,91.294907,
+ 0.867227,-0.245078,0.433421,767.829333,-612.755392,105.979521,
+ 0.924993,-0.187375,0.330572,779.024167,-601.558028,86.055659,
+ 0.867227,-0.245078,0.433421,767.829333,-612.755392,105.979521,
+ 0.924993,-0.140582,0.353021,779.024163,-590.534326,91.294907,
+ 0.867227,-0.183731,0.462774,767.829328,-598.912297,112.558746,
+ 0.867227,-0.183731,0.462774,767.829328,-598.912297,112.558746,
+ 0.794465,-0.298581,0.528844,753.739286,-623.134542,124.447504,
+ 0.867227,-0.245078,0.433421,767.829333,-612.755392,105.979521,
+ 0.794465,-0.298581,0.528844,753.739286,-623.134542,124.447504,
+ 0.867227,-0.183731,0.462774,767.829328,-598.912297,112.558746,
+ 0.794465,-0.223732,0.564597,753.73928,-606.678073,132.26879,
+ 0.794465,-0.223732,0.564597,753.73928,-606.678073,132.26879,
+ 0.701238,-0.343649,0.624636,736.997692,-632.515985,141.14023,
+ 0.794465,-0.298581,0.528844,753.739286,-623.134542,124.447504,
+ 0.701238,-0.343649,0.624636,736.997692,-632.515985,141.14023,
+ 0.794465,-0.223732,0.564597,753.73928,-606.678073,132.26879,
+ 0.707841,-0.243878,0.662936,736.997686,-613.697356,150.084182,
+ 0.609101,-0.289877,0.738219,717.894067,-619.848758,165.69683,
+ 0.701238,-0.343649,0.624636,736.997692,-632.515985,141.14023,
+ 0.707841,-0.243878,0.662936,736.997686,-613.697356,150.084182,
+ 0.701238,-0.343649,0.624636,736.997692,-632.515985,141.14023,
+ 0.609101,-0.289877,0.738219,717.894067,-619.848758,165.69683,
+ 0.598552,-0.382497,0.703869,717.894074,-640.737481,155.769021,
+ 0.499663,-0.316836,0.806196,696.758793,-625.025898,178.836737,
+ 0.598552,-0.382497,0.703869,717.894074,-640.737481,155.769021,
+ 0.609101,-0.289877,0.738219,717.894067,-619.848758,165.69683,
+ 0.598552,-0.382497,0.703869,717.894074,-640.737481,155.769021,
+ 0.499663,-0.316836,0.806196,696.758793,-625.025898,178.836737,
+ 0.499663,-0.423738,0.755502,696.7588,-647.656853,168.080895,
+ -0.796291,0.428601,-0.426873,732.466067,-639.203194,89.580607,
+ -0.870211,0.298718,-0.391791,744.275058,-616.515297,85.628667,
+ -0.870211,0.349319,-0.347431,744.275059,-626.524536,76.901948,
+ -0.870211,0.298718,-0.391791,744.275058,-616.515297,85.628667,
+ -0.796291,0.428601,-0.426873,732.466067,-639.203194,89.580607,
+ -0.796291,0.366435,-0.481296,732.466066,-627.348021,99.916734,
+ 0.256673,-0.939019,0.228829,649.8841,-754.828812,56.090715,
+ 0.127347,-0.922744,0.363767,624.955334,-751.006818,84.287065,
+ 0.127347,-0.963706,0.234635,624.955322,-759.578731,57.246228,
+ 0.127347,-0.922744,0.363767,624.955334,-751.006818,84.287065,
+ 0.256673,-0.939019,0.228829,649.8841,-754.828812,56.090715,
+ 0.256673,-0.899078,0.354651,649.884111,-746.45866,82.495079,
+ 0.79876,-0.56023,0.219373,468.840155,-767.174448,90.657181,
+ 0.707841,-0.682368,0.182581,466.630415,-778.937032,61.955552,
+ 0.79876,-0.584897,0.140986,468.840142,-776.463573,61.353839,
+ 0.707841,-0.682368,0.182581,466.630415,-778.937032,61.955552,
+ 0.79876,-0.56023,0.219373,468.840155,-767.174448,90.657181,
+ 0.707841,-0.651123,0.273862,466.630427,-769.542842,91.59033,
+ 0.973547,-0.004216,0.228449,473.101704,-549.308105,224.014969,
+ 0.932875,-0.038122,0.358177,472.107168,-580.082016,226.198682,
+ 0.973657,-0.024735,0.226671,473.101722,-579.75396,222.991746,
+ 0.932875,-0.038122,0.358177,472.107168,-580.082016,226.198682,
+ 0.973547,-0.004216,0.228449,473.101704,-549.308105,224.014969,
+ 0.928983,-0.005506,0.370082,472.10715,-549.362134,227.231115,
+ 0.127347,-0.922744,0.363767,624.955334,-751.006818,84.287065,
+ 0.030867,-0.871333,0.489721,599.602151,-740.19647,110.675522,
+ 0.030867,-0.929938,0.366419,599.602143,-752.465071,84.861627,
+ 0.030867,-0.871333,0.489721,599.602151,-740.19647,110.675522,
+ 0.127347,-0.922744,0.363767,624.955334,-751.006818,84.287065,
+ 0.127347,-0.864568,0.486113,624.955342,-738.83011,109.90761,
+ -0.986659,0,-0.162803,176.700984,-280.29408,1605.985223,
+ -0.999462,0,-0.032813,180.160558,-186.86272,1570.859583,
+ -0.999462,0,0.032813,180.160558,-280.29408,1570.859583,
+ -0.999462,0,-0.032813,180.160558,-186.86272,1570.859583,
+ -0.986659,0,-0.162803,176.700984,-280.29408,1605.985223,
+ -0.973856,0,-0.227168,176.700984,-186.86272,1605.985223,
+ -0.809671,0.570253,-0.138724,732.466052,-669.667851,35.373762,
+ -0.870211,0.458871,-0.17936,744.275052,-648.232891,43.794023,
+ -0.881047,0.459625,-0.111811,744.275047,-652.24563,31.135492,
+ -0.870211,0.458871,-0.17936,744.275052,-648.232891,43.794023,
+ -0.809671,0.570253,-0.138724,732.466052,-669.667851,35.373762,
+ -0.796291,0.563252,-0.220608,732.466058,-664.91507,50.366817,
+ -0.285905,0.097067,-0.953329,436.335587,-578.704167,212.729198,
+ -0.150052,0.016548,-0.98854,432.838898,-549.148352,214.504709,
+ -0.285329,0.015988,-0.958296,436.33557,-549.135218,213.722949,
+ -0.150052,0.016548,-0.98854,432.838898,-549.148352,214.504709,
+ -0.285905,0.097067,-0.953329,436.335587,-578.704167,212.729198,
+ -0.150374,0.100371,-0.983521,432.838915,-578.78391,213.508718,
+ 0.995804,-0.08571,0.032077,473.642065,-755.603683,86.09829,
+ 0.973657,-0.221914,0.0524,473.101737,-767.615679,59.201429,
+ 0.995804,-0.089282,0.020098,473.642053,-764.379515,58.414175,
+ 0.973657,-0.221914,0.0524,473.101737,-767.615679,59.201429,
+ 0.995804,-0.08571,0.032077,473.642065,-755.603683,86.09829,
+ 0.973657,-0.212704,0.08215,473.101749,-758.702385,87.31918,
+ -0.285905,0.835148,-0.469878,436.335621,-737.047581,108.905866,
+ -0.415875,0.845875,-0.333982,439.690608,-747.931487,83.075452,
+ -0.285905,0.891387,-0.351693,436.335613,-749.104397,83.53758,
+ -0.415875,0.845875,-0.333982,439.690608,-747.931487,83.075452,
+ -0.285905,0.835148,-0.469878,436.335621,-737.047581,108.905866,
+ -0.415875,0.792474,-0.446131,439.690616,-735.948584,108.28822,
+ 0,-0.016797,0.999859,473.71772,-549.195746,217.326639,
+ 0.030866,-0.101695,0.994337,599.602117,-579.071663,216.32257,
+ 0.041063,-0.016783,0.999016,599.602099,-549.195708,217.326639,
+ 0.030866,-0.101695,0.994337,599.602117,-579.071663,216.32257,
+ 0,-0.016797,0.999859,473.71772,-549.195746,217.326639,
+ 0,-0.124431,0.992228,473.717738,-579.071732,216.322569,
+ 0.479633,-0.876974,0.029473,696.758768,-740.393738,23.357838,
+ 0.381503,-0.91951,0.094637,673.957345,-751.440053,27.965226,
+ 0.360344,-0.932293,0.031332,673.957342,-751.594898,23.357838,
+ 0.381503,-0.91951,0.094637,673.957345,-751.440053,27.965226,
+ 0.479633,-0.876974,0.029473,696.758768,-740.393738,23.357838,
+ 0.499663,-0.861647,0.088896,696.75877,-740.277271,26.823309,
+ -0.707932,0.500183,-0.498647,718.363108,-650.643847,101.02126,
+ -0.796291,0.366435,-0.481296,732.466066,-627.348021,99.916734,
+ -0.796291,0.428601,-0.426873,732.466067,-639.203194,89.580607,
+ -0.796291,0.366435,-0.481296,732.466066,-627.348021,99.916734,
+ -0.707932,0.500183,-0.498647,718.363108,-650.643847,101.02126,
+ -0.707932,0.427569,-0.562154,718.363107,-637.122986,112.809644,
+ 0.966794,-0.061815,0.247969,787.130183,-573.195905,71.537315,
+ 0.924993,-0.140582,0.353021,779.024163,-590.534326,91.294907,
+ 0.966794,-0.095028,0.237232,787.130187,-581.689044,68.845,
+ 0.924993,-0.140582,0.353021,779.024163,-590.534326,91.294907,
+ 0.966794,-0.061815,0.247969,787.130183,-573.195905,71.537315,
+ 0.924993,-0.091165,0.368885,779.024159,-578.899518,94.983127,
+ -0.285905,0.350852,-0.891718,436.335613,-633.160168,199.481809,
+ -0.150374,0.233455,-0.96067,432.83893,-606.570796,208.730707,
+ -0.285905,0.226068,-0.93121,436.335601,-606.385575,207.969324,
+ -0.150374,0.233455,-0.96067,432.83893,-606.570796,208.730707,
+ -0.285905,0.350852,-0.891718,436.335613,-633.160168,199.481809,
+ -0.150375,0.362184,-0.919897,432.838941,-633.447412,200.210852,
+ 0.998111,-0.023817,0.056627,793.478048,-563.767069,23.357838,
+ 0.991932,-0.063402,0.109777,792.007217,-577.494024,43.23773,
+ 0.998111,-0.031311,0.052854,793.410423,-566.321374,23.357838,
+ 0.991932,-0.063402,0.109777,792.007217,-577.494024,43.23773,
+ 0.998111,-0.023817,0.056627,793.478048,-563.767069,23.357838,
+ 0.991932,-0.047852,0.117393,792.007216,-572.529419,45.597264,
+ 0.127347,-0.363412,0.922884,624.955334,-633.909652,201.38423,
+ 0.256673,-0.473186,0.842742,649.884119,-657.135168,184.945974,
+ 0.256673,-0.353935,0.899361,649.884111,-632.117666,196.836073,
+ 0.256673,-0.473186,0.842742,649.884119,-657.135168,184.945974,
+ 0.127347,-0.363412,0.922884,624.955334,-633.909652,201.38423,
+ 0.127347,-0.48578,0.864755,624.955342,-659.530197,189.207523,
+ -0.91096,0.410353,-0.041977,452.246978,-748.839872,27.699361,
+ -0.94485,0.32732,-0.011,453.575534,-745.656322,23.357838,
+ -0.890491,0.454743,-0.015282,452.246975,-748.985782,23.357838,
+ -0.94485,0.32732,-0.011,453.575534,-745.656322,23.357838,
+ -0.91096,0.410353,-0.041977,452.246978,-748.839872,27.699361,
+ -0.959176,0.281343,-0.02878,453.575536,-745.52182,27.359938,
+ -0.999951,0.009862,-0.001008,454.797654,-738.498463,26.641479,
+ -0.999342,-0.036239,0.001219,454.667735,-735.026158,23.357838,
+ -0.998419,0.056178,-0.001887,454.797652,-738.60882,23.357838,
+ -0.999342,-0.036239,0.001219,454.667735,-735.026158,23.357838,
+ -0.999951,0.009862,-0.001008,454.797654,-738.498463,26.641479,
+ -0.999345,-0.035987,0.003682,454.667737,-734.928076,26.276244,
+ -0.415875,0.883495,-0.215602,439.690597,-756.366969,56.464997,
+ -0.537771,0.838627,-0.086642,442.839452,-759.393033,28.778909,
+ -0.415875,0.904633,-0.093201,439.690582,-761.097663,28.953287,
+ -0.537771,0.838627,-0.086642,442.839452,-759.393033,28.778909,
+ -0.415875,0.883495,-0.215602,439.690597,-756.366969,56.464997,
+ -0.537771,0.818998,-0.200111,442.839466,-754.702001,56.059962,
+ 0.030867,-0.603851,0.796499,599.602156,-684.199423,174.90216,
+ 0.127347,-0.701215,0.701485,624.955349,-704.633973,155.011385,
+ 0.127347,-0.599085,0.790493,624.955347,-683.252488,173.653183,
+ 0.127347,-0.701215,0.701485,624.955349,-704.633973,155.011385,
+ 0.030867,-0.603851,0.796499,599.602156,-684.199423,174.90216,
+ 0.030867,-0.706755,0.706785,599.602158,-705.742267,156.119679,
+ -0.537771,0.508681,-0.672344,442.83949,-680.220296,169.653769,
+ -0.415875,0.444984,-0.793119,439.690616,-657.910808,186.325996,
+ -0.537771,0.412318,-0.735388,442.839485,-657.07129,184.832214,
+ -0.415875,0.444984,-0.793119,439.690616,-657.910808,186.325996,
+ -0.537771,0.508681,-0.672344,442.83949,-680.220296,169.653769,
+ -0.415875,0.548909,-0.725084,439.690621,-681.255534,171.01922,
+ -0.244971,0.474679,-0.845381,644.636259,-642.668145,159.204284,
+ -0.112343,0.364093,-0.924562,623.546355,-622.700434,172.934486,
+ -0.244971,0.355055,-0.902178,644.636252,-621.293309,169.363128,
+ -0.112343,0.364093,-0.924562,623.546355,-622.700434,172.934486,
+ -0.244971,0.474679,-0.845381,644.636259,-642.668145,159.204284,
+ -0.112343,0.486683,-0.866325,623.546362,-644.548798,162.550587,
+ -0.373111,0.454056,-0.809087,665.021386,-639.414516,153.414997,
+ -0.244971,0.355055,-0.902178,644.636252,-621.293309,169.363128,
+ -0.373111,0.33957,-0.863412,665.021379,-618.858911,163.184484,
+ -0.244971,0.355055,-0.902178,644.636252,-621.293309,169.363128,
+ -0.373111,0.454056,-0.809087,665.021386,-639.414516,153.414997,
+ -0.244971,0.474679,-0.845381,644.636259,-642.668145,159.204284,
+ -0.494423,0.4252,-0.758123,684.332893,-634.846784,145.287478,
+ -0.373111,0.33957,-0.863412,665.021379,-618.858911,163.184484,
+ -0.494423,0.317928,-0.808992,684.332887,-615.44129,154.510351,
+ -0.373111,0.33957,-0.863412,665.021379,-618.858911,163.184484,
+ -0.494423,0.4252,-0.758123,684.332893,-634.846784,145.287478,
+ -0.373111,0.454056,-0.809087,665.021386,-639.414516,153.414997,
+ -0.595888,0.383438,-0.705615,702.221357,-629.047597,134.968788,
+ -0.494423,0.317928,-0.808992,684.332887,-615.44129,154.510351,
+ -0.606705,0.290533,-0.739932,702.221351,-611.102283,143.49768,
+ -0.494423,0.317928,-0.808992,684.332887,-615.44129,154.510351,
+ -0.595888,0.383438,-0.705615,702.221357,-629.047597,134.968788,
+ -0.494423,0.4252,-0.758123,684.332893,-634.846784,145.287478,
+ -0.701084,0.343733,-0.624763,718.363103,-622.121887,122.645633,
+ -0.606705,0.290533,-0.739932,702.221351,-611.102283,143.49768,
+ -0.707841,0.243878,-0.662936,718.363098,-605.920401,130.345733,
+ -0.606705,0.290533,-0.739932,702.221351,-611.102283,143.49768,
+ -0.701084,0.343733,-0.624763,718.363103,-622.121887,122.645633,
+ -0.595888,0.383438,-0.705615,702.221357,-629.047597,134.968788,
+ -0.701084,0.343733,-0.624763,718.363103,-622.121887,122.645633,
+ -0.796291,0.222882,-0.562356,732.466058,-599.989405,115.292483,
+ -0.796291,0.297433,-0.526739,732.466063,-614.194966,108.540989,
+ -0.796291,0.222882,-0.562356,732.466058,-599.989405,115.292483,
+ -0.701084,0.343733,-0.624763,718.363103,-622.121887,122.645633,
+ -0.707841,0.243878,-0.662936,718.363098,-605.920401,130.345733,
+ -0.993727,0.090031,-0.066344,764.031425,-586.699189,30.082194,
+ -0.998991,0.032467,-0.031019,764.696221,-572.980425,23.357838,
+ -0.998991,0.036391,-0.026305,764.531578,-577.829947,23.357838,
+ -0.998991,0.032467,-0.031019,764.696221,-572.980425,23.357838,
+ -0.993727,0.090031,-0.066344,764.031425,-586.699189,30.082194,
+ -0.993727,0.08015,-0.077994,764.031425,-583.441377,33.81879,
+ 0.998111,-0.049787,0.035988,792.935095,-577.829952,23.357838,
+ 0.991932,-0.111235,0.060808,792.007217,-592.860317,27.871437,
+ 0.998112,-0.05354,0.03009,792.574093,-584.829111,23.357838,
+ 0.991932,-0.111235,0.060808,792.007217,-592.860317,27.871437,
+ 0.998111,-0.049787,0.035988,792.935095,-577.829952,23.357838,
+ 0.991932,-0.101911,0.075398,792.007218,-589.846284,32.468209,
+ -0.993727,0.012896,-0.111089,764.031418,-561.470422,44.260952,
+ -0.998987,0.001007,-0.04498,764.9959,-545.937132,23.357838,
+ -0.998991,0.005587,-0.044554,764.975642,-559.332125,23.357838,
+ -0.998987,0.001007,-0.04498,764.9959,-545.937132,23.357838,
+ -0.993727,0.012896,-0.111089,764.031418,-561.470422,44.260952,
+ -0.9937,0.002257,-0.112046,764.031409,-546.296855,44.770904,
+ 0.924681,-0,0.380742,779.024141,-186.86272,97.713067,
+ 0.866755,-0.008697,0.498658,767.829302,-547.569289,120.514493,
+ 0.919603,-0.008082,0.392766,779.024141,-547.186239,97.713067,
+ 0.866755,-0.008697,0.498658,767.829302,-547.569289,120.514493,
+ 0.924681,-0,0.380742,779.024141,-186.86272,97.713067,
+ 0.855563,-0,0.517699,767.829302,-186.86272,120.514493,
+ -0.901181,0.346254,-0.26073,452.247014,-710.823017,124.188674,
+ -0.952384,0.216659,-0.21453,453.575573,-691.225448,141.602861,
+ -0.952384,0.243872,-0.183005,453.575571,-708.165176,122.173591,
+ -0.952384,0.216659,-0.21453,453.575573,-691.225448,141.602861,
+ -0.901181,0.346254,-0.26073,452.247014,-710.823017,124.188674,
+ -0.901181,0.307496,-0.305481,452.247015,-693.58391,143.961322,
+ -0.952384,0.243872,-0.183005,453.575571,-708.165176,122.173591,
+ -0.985345,0.121711,-0.119507,454.431277,-688.759444,139.136857,
+ -0.985345,0.136861,-0.101808,454.431275,-705.386141,120.066621,
+ -0.985345,0.121711,-0.119507,454.431277,-688.759444,139.136857,
+ -0.952384,0.243872,-0.183005,453.575571,-708.165176,122.173591,
+ -0.952384,0.216659,-0.21453,453.575573,-691.225448,141.602861,
+ -0.285905,0.930996,-0.226946,436.335601,-757.591911,56.762987,
+ -0.415875,0.904633,-0.093201,439.690582,-761.097663,28.953287,
+ -0.285905,0.953237,-0.097966,436.335587,-762.351785,29.08158,
+ -0.415875,0.904633,-0.093201,439.690582,-761.097663,28.953287,
+ -0.285905,0.930996,-0.226946,436.335601,-757.591911,56.762987,
+ -0.415875,0.883495,-0.215602,439.690597,-756.366969,56.464997,
+ 0.229025,-0.58781,0.775904,455.006113,-699.207898,194.697902,
+ 0.361665,-0.658837,0.659646,458.22226,-722.603323,172.980735,
+ 0.361665,-0.562804,0.74327,458.222259,-698.605625,193.903521,
+ 0.361665,-0.658837,0.659646,458.22226,-722.603323,172.980735,
+ 0.229025,-0.58781,0.775904,455.006113,-699.207898,194.697902,
+ 0.229025,-0.688056,0.688568,455.006115,-723.308225,173.685638,
+ 0.361665,-0.562804,0.74327,458.222259,-698.605625,193.903521,
+ 0.487279,-0.616933,0.618023,461.270002,-721.590015,171.967428,
+ 0.487279,-0.526963,0.696326,461.27,-697.739849,192.761586,
+ 0.487279,-0.616933,0.618023,461.270002,-721.590015,171.967428,
+ 0.361665,-0.562804,0.74327,458.222259,-698.605625,193.903521,
+ 0.361665,-0.658837,0.659646,458.22226,-722.603323,172.980735,
+ -0.845271,0.531564,-0.054376,450.471088,-751.942886,28.016787,
+ -0.890491,0.454743,-0.015282,452.246975,-748.985782,23.357838,
+ -0.819027,0.573431,-0.019271,450.471085,-752.099463,23.357838,
+ -0.890491,0.454743,-0.015282,452.246975,-748.985782,23.357838,
+ -0.845271,0.531564,-0.054376,450.471088,-751.942886,28.016787,
+ -0.91096,0.410353,-0.041977,452.246978,-748.839872,27.699361,
+ -0.494423,0.84441,-0.206198,684.332878,-710.625471,45.337452,
+ -0.551599,0.82639,-0.113216,696.28309,-706.40024,23.357838,
+ -0.482609,0.869945,-0.101409,684.332867,-714.266541,24.162533,
+ -0.551599,0.82639,-0.113216,696.28309,-706.40024,23.357838,
+ -0.494423,0.84441,-0.206198,684.332878,-710.625471,45.337452,
+ -0.599001,0.779767,-0.182103,702.221343,-699.124264,42.539571,
+ -0.551599,0.82639,-0.113216,696.28309,-706.40024,23.357838,
+ -0.599001,0.779767,-0.182103,702.221343,-699.124264,42.539571,
+ -0.605809,0.784102,-0.134828,702.221333,-702.422602,23.357838,
+ -0.796291,0.297433,-0.526739,732.466063,-614.194966,108.540989,
+ -0.870211,0.181845,-0.457892,744.275052,-593.41661,98.610304,
+ -0.870211,0.242544,-0.428841,744.275056,-605.410265,92.910065,
+ -0.870211,0.181845,-0.457892,744.275052,-593.41661,98.610304,
+ -0.796291,0.297433,-0.526739,732.466063,-614.194966,108.540989,
+ -0.796291,0.222882,-0.562356,732.466058,-599.989405,115.292483,
+ -0.870211,0.242544,-0.428841,744.275056,-605.410265,92.910065,
+ -0.928388,0.137548,-0.34522,753.576407,-586.320946,80.601044,
+ -0.928388,0.183307,-0.323257,753.57641,-595.926736,76.035688,
+ -0.928388,0.137548,-0.34522,753.576407,-586.320946,80.601044,
+ -0.870211,0.242544,-0.428841,744.275056,-605.410265,92.910065,
+ -0.870211,0.181845,-0.457892,744.275052,-593.41661,98.610304,
+ -0.928388,0.183307,-0.323257,753.57641,-595.926736,76.035688,
+ -0.9698,0.09079,-0.226373,760.201824,-578.830801,61.590563,
+ -0.9698,0.12079,-0.21189,760.201826,-585.915972,58.223185,
+ -0.9698,0.09079,-0.226373,760.201824,-578.830801,61.590563,
+ -0.928388,0.183307,-0.323257,753.57641,-595.926736,76.035688,
+ -0.928388,0.137548,-0.34522,753.576407,-586.320946,80.601044,
+ -0.9698,0.12079,-0.21189,760.201826,-585.915972,58.223185,
+ -0.993727,0.042411,-0.103482,764.031423,-571.081703,41.922837,
+ -0.993727,0.056116,-0.096737,764.031424,-575.55911,39.794854,
+ -0.993727,0.042411,-0.103482,764.031423,-571.081703,41.922837,
+ -0.9698,0.12079,-0.21189,760.201826,-585.915972,58.223185,
+ -0.9698,0.09079,-0.226373,760.201824,-578.830801,61.590563,
+ -0.993727,0.056116,-0.096737,764.031424,-575.55911,39.794854,
+ -0.998991,0.017409,-0.041391,764.928093,-563.76708,23.357838,
+ -0.998991,0.022887,-0.038633,764.878707,-566.321382,23.357838,
+ -0.998991,0.017409,-0.041391,764.928093,-563.76708,23.357838,
+ -0.993727,0.056116,-0.096737,764.031424,-575.55911,39.794854,
+ -0.993727,0.042411,-0.103482,764.031423,-571.081703,41.922837,
+ 0.991932,-0.063402,0.109777,792.007217,-577.494024,43.23773,
+ 0.966794,-0.15555,0.202766,787.130191,-597.186922,60.135075,
+ 0.991932,-0.07777,0.100113,792.007218,-582.090797,40.223697,
+ 0.966794,-0.15555,0.202766,787.130191,-597.186922,60.135075,
+ 0.991932,-0.063402,0.109777,792.007217,-577.494024,43.23773,
+ 0.966794,-0.126469,0.22207,787.130189,-589.736091,65.02047,
+ 0.966794,-0.126469,0.22207,787.130189,-589.736091,65.02047,
+ 0.924993,-0.230673,0.301955,779.024169,-611.764971,79.363123,
+ 0.966794,-0.15555,0.202766,787.130191,-597.186922,60.135075,
+ 0.924993,-0.230673,0.301955,779.024169,-611.764971,79.363123,
+ 0.966794,-0.126469,0.22207,787.130189,-589.736091,65.02047,
+ 0.924993,-0.187375,0.330572,779.024167,-601.558028,86.055659,
+ 0.924993,-0.187375,0.330572,779.024167,-601.558028,86.055659,
+ 0.867227,-0.301852,0.395982,767.829336,-625.572837,97.575321,
+ 0.924993,-0.230673,0.301955,779.024169,-611.764971,79.363123,
+ 0.867227,-0.301852,0.395982,767.829336,-625.572837,97.575321,
+ 0.924993,-0.187375,0.330572,779.024167,-601.558028,86.055659,
+ 0.867227,-0.245078,0.433421,767.829333,-612.755392,105.979521,
+ 0.867227,-0.245078,0.433421,767.829333,-612.755392,105.979521,
+ 0.794465,-0.367859,0.483224,753.739289,-638.371733,114.456714,
+ 0.867227,-0.301852,0.395982,767.829336,-625.572837,97.575321,
+ 0.794465,-0.367859,0.483224,753.739289,-638.371733,114.456714,
+ 0.867227,-0.245078,0.433421,767.829333,-612.755392,105.979521,
+ 0.794465,-0.298581,0.528844,753.739286,-623.134542,124.447504,
+ -0.244971,0.09829,-0.964535,644.636231,-575.409716,180.525125,
+ -0.112099,0.016649,-0.993558,623.546317,-548.656939,185.255996,
+ -0.244466,0.016195,-0.969523,644.636215,-548.592598,181.426394,
+ -0.112099,0.016649,-0.993558,623.546317,-548.656939,185.255996,
+ -0.244971,0.09829,-0.964535,644.636231,-575.409716,180.525125,
+ -0.112343,0.100949,-0.988528,623.546333,-575.800358,184.343761,
+ -0.373111,0.093846,-0.923028,665.021359,-574.733894,173.918677,
+ -0.244466,0.016195,-0.969523,644.636215,-548.592598,181.426394,
+ -0.372406,0.015448,-0.927941,665.021343,-548.48129,174.800973,
+ -0.244466,0.016195,-0.969523,644.636215,-548.592598,181.426394,
+ -0.373111,0.093846,-0.923028,665.021359,-574.733894,173.918677,
+ -0.244971,0.09829,-0.964535,644.636231,-575.409716,180.525125,
+ 0.923987,-0.382207,0.012845,472.107164,-776.05994,23.357838,
+ 0.885205,-0.462786,0.04734,470.677482,-778.860284,30.770308,
+ 0.862236,-0.50622,0.017013,470.677477,-779.109402,23.357838,
+ 0.885205,-0.462786,0.04734,470.677482,-778.860284,30.770308,
+ 0.923987,-0.382207,0.012845,472.107164,-776.05994,23.357838,
+ 0.940951,-0.336786,0.034451,472.107168,-775.82127,30.459429,
+ -0.040706,0.99398,-0.101718,429.267738,-763.421251,29.190985,
+ -0.127104,0.99133,-0.033316,432.838912,-763.326349,23.357838,
+ -0.027072,0.999069,-0.033577,429.267734,-763.617291,23.357838,
+ -0.127104,0.99133,-0.033316,432.838912,-763.326349,23.357838,
+ -0.040706,0.99398,-0.101718,429.267738,-763.421251,29.190985,
+ -0.150374,0.983472,-0.100844,432.838915,-763.131306,29.161323,
+ -0.959176,0.281343,-0.02878,453.575536,-745.52182,27.359938,
+ -0.981057,0.193609,-0.006506,454.431238,-742.175043,23.357838,
+ -0.94485,0.32732,-0.011,453.575534,-745.656322,23.357838,
+ -0.981057,0.193609,-0.006506,454.431238,-742.175043,23.357838,
+ -0.959176,0.281343,-0.02878,453.575536,-745.52182,27.359938,
+ -0.989023,0.146995,-0.015036,454.43124,-742.052468,27.005038,
+ 0.998111,-0.044419,0.042437,793.160542,-572.980425,23.357838,
+ 0.991932,-0.101911,0.075398,792.007218,-589.846284,32.468209,
+ 0.998111,-0.049787,0.035988,792.935095,-577.829952,23.357838,
+ 0.991932,-0.101911,0.075398,792.007218,-589.846284,32.468209,
+ 0.998111,-0.044419,0.042437,793.160542,-572.980425,23.357838,
+ 0.991932,-0.090686,0.088582,792.007219,-586.233981,36.611394,
+ 0.690548,-0.722878,0.024294,466.630394,-784.472872,23.357838,
+ 0.603443,-0.793169,0.082097,464.090747,-786.408778,31.542489,
+ 0.583909,-0.811361,0.027268,464.090742,-786.683847,23.357838,
+ 0.603443,-0.793169,0.082097,464.090747,-786.408778,31.542489,
+ 0.690548,-0.722878,0.024294,466.630394,-784.472872,23.357838,
+ 0.714887,-0.69482,0.078501,466.630399,-784.205377,31.31709,
+ -0.551599,0.82639,-0.113216,696.28309,-706.40024,23.357838,
+ -0.473888,0.880088,-0.029578,684.332867,-714.293585,23.357838,
+ -0.482609,0.869945,-0.101409,684.332867,-714.266541,24.162533,
+ -0.989023,0.146995,-0.015036,454.43124,-742.052468,27.005038,
+ -0.998419,0.056178,-0.001887,454.797652,-738.60882,23.357838,
+ -0.981057,0.193609,-0.006506,454.431238,-742.175043,23.357838,
+ -0.998419,0.056178,-0.001887,454.797652,-738.60882,23.357838,
+ -0.989023,0.146995,-0.015036,454.43124,-742.052468,27.005038,
+ -0.999951,0.009862,-0.001008,454.797654,-738.498463,26.641479,
+ 0.862236,-0.50622,0.017013,470.677477,-779.109402,23.357838,
+ 0.812465,-0.579983,0.059329,468.840127,-781.672997,31.058037,
+ 0.783922,-0.620509,0.020854,468.840122,-781.931785,23.357838,
+ 0.812465,-0.579983,0.059329,468.840127,-781.672997,31.058037,
+ 0.862236,-0.50622,0.017013,470.677477,-779.109402,23.357838,
+ 0.885205,-0.462786,0.04734,470.677482,-778.860284,30.770308,
+ -0.993727,0.08015,-0.077994,764.031425,-583.441377,33.81879,
+ -0.998991,0.027938,-0.035154,764.805052,-569.303684,23.357838,
+ -0.998991,0.032467,-0.031019,764.696221,-572.980425,23.357838,
+ -0.998991,0.027938,-0.035154,764.805052,-569.303684,23.357838,
+ -0.993727,0.08015,-0.077994,764.031425,-583.441377,33.81879,
+ -0.993727,0.068775,-0.088188,764.031425,-579.704781,37.076602,
+ 0.020529,-0.999225,0.033582,599.602113,-766.149871,23.357838,
+ 0,-0.996871,0.079045,473.717738,-765.945156,29.449145,
+ 0,-0.999436,0.033589,473.717734,-766.149872,23.357838,
+ 0,-0.996871,0.079045,473.717738,-765.945156,29.449145,
+ 0.020529,-0.999225,0.033582,599.602113,-766.149871,23.357838,
+ 0.030866,-0.994332,0.101738,599.602117,-765.945157,29.449075,
+ -0.683524,0,-0.729928,127.425692,-280.29408,1698.17281,
+ -0.582647,0,-0.812725,100.141826,-186.86272,1720.5641,
+ -0.729928,0,-0.683524,127.425692,-186.86272,1698.17281,
+ -0.582647,0,-0.812725,100.141826,-186.86272,1720.5641,
+ -0.683524,0,-0.729928,127.425692,-280.29408,1698.17281,
+ -0.528184,0,-0.84913,100.141826,-280.29408,1720.5641,
+ -0.832687,0.442054,-0.333498,450.471124,-713.308606,126.073164,
+ -0.901181,0.307496,-0.305481,452.247015,-693.58391,143.961322,
+ -0.901181,0.346254,-0.26073,452.247014,-710.823017,124.188674,
+ -0.901181,0.307496,-0.305481,452.247015,-693.58391,143.961322,
+ -0.832687,0.442054,-0.333498,450.471124,-713.308606,126.073164,
+ -0.832687,0.392486,-0.390624,450.471126,-695.789522,146.166935,
+ -0.649152,0.44561,-0.616469,445.721745,-678.931346,167.953679,
+ -0.748179,0.326101,-0.577828,448.282012,-654.795099,180.782109,
+ -0.748179,0.401798,-0.528002,448.282017,-677.413444,165.951609,
+ -0.748179,0.326101,-0.577828,448.282012,-654.795099,180.782109,
+ -0.649152,0.44561,-0.616469,445.721745,-678.931346,167.953679,
+ -0.649152,0.35745,-0.67144,445.72174,-656.026027,182.972343,
+ -0.372406,0.015448,-0.927941,665.021343,-548.48129,174.800973,
+ -0.266155,0,-0.96393,644.636215,-186.86272,181.426394,
+ -0.393115,0,-0.919489,665.021343,-186.86272,174.800973,
+ -0.266155,0,-0.96393,644.636215,-186.86272,181.426394,
+ -0.372406,0.015448,-0.927941,665.021343,-548.48129,174.800973,
+ -0.244466,0.016195,-0.969523,644.636215,-548.592598,181.426394,
+ 0.792107,-0.00894,0.610317,468.840108,-549.460722,233.099647,
+ 0.707841,-0.055835,0.704162,466.630399,-580.939677,234.58279,
+ 0.79876,-0.062483,0.598396,468.840127,-580.680624,232.05041,
+ 0.707841,-0.055835,0.704162,466.630399,-580.939677,234.58279,
+ 0.792107,-0.00894,0.610317,468.840108,-549.460722,233.099647,
+ 0.707157,-0.011876,0.706957,466.63038,-549.503387,235.639299,
+ 0.517753,-0.01437,0.85541,696.758754,-548.76324,191.585041,
+ 0.609101,-0.079799,0.789068,717.894046,-575.008662,176.604979,
+ 0.625544,-0.013105,0.780079,717.89403,-548.526532,177.494989,
+ 0.609101,-0.079799,0.789068,717.894046,-575.008662,176.604979,
+ 0.517753,-0.01437,0.85541,696.758754,-548.76324,191.585041,
+ 0.499663,-0.087405,0.861799,696.75877,-576.445897,190.654684,
+ 0.499663,-0.087405,0.861799,696.75877,-576.445897,190.654684,
+ 0.609101,-0.186578,0.770833,717.894058,-597.802054,172.685609,
+ 0.609101,-0.079799,0.789068,717.894046,-575.008662,176.604979,
+ 0.609101,-0.186578,0.770833,717.894058,-597.802054,172.685609,
+ 0.499663,-0.087405,0.861799,696.75877,-576.445897,190.654684,
+ 0.499663,-0.204023,0.84185,696.758783,-601.14038,186.408417,
+ 0.381503,-0.093498,0.919627,673.957345,-577.587813,201.817466,
+ 0.499663,-0.204023,0.84185,696.758783,-601.14038,186.408417,
+ 0.499663,-0.087405,0.861799,696.75877,-576.445897,190.654684,
+ 0.499663,-0.204023,0.84185,696.758783,-601.14038,186.408417,
+ 0.381503,-0.093498,0.919627,673.957345,-577.587813,201.817466,
+ 0.381503,-0.21794,0.898308,673.957358,-603.792753,197.311473,
+ 0.256672,-0.097972,0.96152,649.884086,-578.414663,209.900281,
+ 0.381503,-0.21794,0.898308,673.957358,-603.792753,197.311473,
+ 0.381503,-0.093498,0.919627,673.957345,-577.587813,201.817466,
+ 0.381503,-0.21794,0.898308,673.957358,-603.792753,197.311473,
+ 0.256672,-0.097972,0.96152,649.884086,-578.414663,209.900281,
+ 0.256673,-0.228081,0.939201,649.8841,-605.713302,205.206225,
+ 0.127347,-0.100746,0.986728,624.955308,-578.912147,214.763349,
+ 0.256673,-0.228081,0.939201,649.8841,-605.713302,205.206225,
+ 0.256672,-0.097972,0.96152,649.884086,-578.414663,209.900281,
+ 0.256673,-0.228081,0.939201,649.8841,-605.713302,205.206225,
+ 0.127347,-0.100746,0.986728,624.955308,-578.912147,214.763349,
+ 0.127347,-0.234264,0.963796,624.955322,-606.868816,209.956143,
+ -0.993727,0.042411,-0.103482,764.031423,-571.081703,41.922837,
+ -0.998991,0.011606,-0.043377,764.959284,-561.475403,23.357838,
+ -0.998991,0.017409,-0.041391,764.928093,-563.76708,23.357838,
+ -0.998991,0.011606,-0.043377,764.959284,-561.475403,23.357838,
+ -0.993727,0.042411,-0.103482,764.031423,-571.081703,41.922837,
+ -0.993727,0.027914,-0.108296,764.031421,-566.356087,43.420852,
+ -0.494423,0.614096,-0.615169,684.332898,-669.009253,119.386665,
+ -0.373111,0.560072,-0.739667,665.02139,-658.447133,140.935603,
+ -0.494423,0.524541,-0.693111,684.332897,-652.814504,133.506322,
+ -0.373111,0.560072,-0.739667,665.02139,-658.447133,140.935603,
+ -0.494423,0.614096,-0.615169,684.332898,-669.009253,119.386665,
+ -0.373111,0.655639,-0.656449,665.021391,-675.601701,125.979113,
+ 0.517753,-0.01437,0.85541,696.758754,-548.76324,191.585041,
+ 0.590628,-0,0.806944,717.89403,-186.86272,177.494989,
+ 0.479633,0,0.877469,696.758754,-186.86272,191.585041,
+ 0.590628,-0,0.806944,717.89403,-186.86272,177.494989,
+ 0.517753,-0.01437,0.85541,696.758754,-548.76324,191.585041,
+ 0.625544,-0.013105,0.780079,717.89403,-548.526532,177.494989,
+ -0.928388,0.137548,-0.34522,753.576407,-586.320946,80.601044,
+ -0.9698,0.059096,-0.236633,760.201821,-571.352859,63.961061,
+ -0.9698,0.09079,-0.226373,760.201824,-578.830801,61.590563,
+ -0.9698,0.059096,-0.236633,760.201821,-571.352859,63.961061,
+ -0.928388,0.137548,-0.34522,753.576407,-586.320946,80.601044,
+ -0.928388,0.089223,-0.360743,753.576403,-576.182654,83.81487,
+ -0.494423,0.317928,-0.808992,684.332887,-615.44129,154.510351,
+ -0.373111,0.218748,-0.901631,665.02137,-597.163793,170.061811,
+ -0.494423,0.204724,-0.844769,684.332878,-594.960039,161.002883,
+ -0.373111,0.218748,-0.901631,665.02137,-597.163793,170.061811,
+ -0.494423,0.317928,-0.808992,684.332887,-615.44129,154.510351,
+ -0.373111,0.33957,-0.863412,665.021379,-618.858911,163.184484,
+ 0.127347,-0.234264,0.963796,624.955322,-606.868816,209.956143,
+ 0.256673,-0.353935,0.899361,649.884111,-632.117666,196.836073,
+ 0.256673,-0.228081,0.939201,649.8841,-605.713302,205.206225,
+ 0.256673,-0.353935,0.899361,649.884111,-632.117666,196.836073,
+ 0.127347,-0.234264,0.963796,624.955322,-606.868816,209.956143,
+ 0.127347,-0.363412,0.922884,624.955334,-633.909652,201.38423,
+ -0.285905,0.953237,-0.097966,436.335587,-762.351785,29.08158,
+ -0.393899,0.918635,-0.030873,439.690579,-761.285715,23.357838,
+ -0.263028,0.964244,-0.032406,436.335584,-762.544148,23.357838,
+ -0.393899,0.918635,-0.030873,439.690579,-761.285715,23.357838,
+ -0.285905,0.953237,-0.097966,436.335587,-762.351785,29.08158,
+ -0.415875,0.904633,-0.093201,439.690582,-761.097663,28.953287,
+ 0.999747,-0.022474,0.000755,473.717734,-766.149872,23.357838,
+ 0.997653,-0.068124,0.006968,473.642039,-769.30108,29.792441,
+ 0.993395,-0.114677,0.003853,473.642035,-769.517334,23.357838,
+ 0.997653,-0.068124,0.006968,473.642039,-769.30108,29.792441,
+ 0.999747,-0.022474,0.000755,473.717734,-766.149872,23.357838,
+ 0.999748,-0.022318,0.002282,473.717738,-765.945156,29.449145,
+ -0.373111,0.922912,-0.094985,665.021359,-723.541264,25.111307,
+ -0.473888,0.880088,-0.029578,684.332867,-714.293585,23.357838,
+ -0.351418,0.935691,-0.031446,665.021358,-723.600195,23.357838,
+ -0.473888,0.880088,-0.029578,684.332867,-714.293585,23.357838,
+ -0.373111,0.922912,-0.094985,665.021359,-723.541264,25.111307,
+ -0.482609,0.869945,-0.101409,684.332867,-714.266541,24.162533,
+ -0.244971,0.964459,-0.099038,644.636231,-730.147713,25.787129,
+ -0.351418,0.935691,-0.031446,665.021358,-723.600195,23.357838,
+ -0.222589,0.974362,-0.032746,644.63623,-730.229356,23.357838,
+ -0.351418,0.935691,-0.031446,665.021358,-723.600195,23.357838,
+ -0.244971,0.964459,-0.099038,644.636231,-730.147713,25.787129,
+ -0.373111,0.922912,-0.094985,665.021359,-723.541264,25.111307,
+ -0.022557,0.994554,-0.10175,602.133267,-734.928078,26.276163,
+ -0.089733,0.995404,-0.033453,623.546332,-734.061121,23.357838,
+ -0.015002,0.999323,-0.033585,602.133266,-735.026157,23.357838,
+ -0.089733,0.995404,-0.033453,623.546332,-734.061121,23.357838,
+ -0.022557,0.994554,-0.10175,602.133267,-734.928078,26.276163,
+ -0.112343,0.988493,-0.101292,623.546333,-733.966349,26.17777,
+ 0.691408,-0.722056,0.024266,736.997667,-709.544681,23.357838,
+ 0.609101,-0.788882,0.081617,717.894046,-726.227566,25.386075,
+ 0.590628,-0.806489,0.027104,717.894045,-726.295731,23.357838,
+ 0.609101,-0.788882,0.081617,717.894046,-726.227566,25.386075,
+ 0.691408,-0.722056,0.024266,736.997667,-709.544681,23.357838,
+ 0.714403,-0.693748,0.091332,736.997667,-709.533908,23.678376,
+ -0.936465,0.339085,-0.089746,753.576403,-633.437458,26.560066,
+ -0.951243,0.299703,-0.072908,757.969157,-620.274076,23.357838,
+ -0.919489,0.387429,-0.066619,753.576401,-633.988087,23.357838,
+ 0.967989,-0.250852,0.00843,473.101718,-772.841978,23.357838,
+ 0.940951,-0.336786,0.034451,472.107168,-775.82127,30.459429,
+ 0.923987,-0.382207,0.012845,472.107164,-776.05994,23.357838,
+ 0.940951,-0.336786,0.034451,472.107168,-775.82127,30.459429,
+ 0.967989,-0.250852,0.00843,473.101718,-772.841978,23.357838,
+ 0.978666,-0.204393,0.020908,473.101722,-772.614333,30.131373,
+ 0.360344,-0.932293,0.031332,673.957342,-751.594898,23.357838,
+ 0.256672,-0.961442,0.098738,649.884086,-759.522868,28.792076,
+ 0.234823,-0.97149,0.03265,649.884083,-759.705502,23.357838,
+ 0.256672,-0.961442,0.098738,649.884086,-759.522868,28.792076,
+ 0.360344,-0.932293,0.031332,673.957342,-751.594898,23.357838,
+ 0.381503,-0.91951,0.094637,673.957345,-751.440053,27.965226,
+ 0.068639,-0.997079,0.03351,451.683295,-791.488471,23.357838,
+ 0.00966,-0.995709,0.092029,448.317739,-791.272422,32.040027,
+ 0.011244,-0.999373,0.033587,448.317734,-791.564213,23.357838,
+ 0.00966,-0.995709,0.092029,448.317739,-791.272422,32.040027,
+ 0.068639,-0.997079,0.03351,451.683295,-791.488471,23.357838,
+ 0.091928,-0.990581,0.101478,451.683301,-791.19694,32.032304,
+ 0.714403,-0.693748,0.091332,736.997667,-709.533908,23.678376,
+ 0.691408,-0.722056,0.024266,736.997667,-709.544681,23.357838,
+ 0.752834,-0.654794,0.066982,739.751559,-706.400475,23.357838,
+ -0.112343,0.988493,-0.101292,623.546333,-733.966349,26.17777,
+ -0.222589,0.974362,-0.032746,644.63623,-730.229356,23.357838,
+ -0.089733,0.995404,-0.033453,623.546332,-734.061121,23.357838,
+ -0.222589,0.974362,-0.032746,644.63623,-730.229356,23.357838,
+ -0.112343,0.988493,-0.101292,623.546333,-733.966349,26.17777,
+ -0.244971,0.964459,-0.099038,644.636231,-730.147713,25.787129,
+ 0.999748,-0.0058,0.021677,473.717752,-607.239369,211.479086,
+ 0.995804,-0.035007,0.084556,473.642065,-635.720877,205.981096,
+ 0.999748,-0.0087,0.020685,473.717764,-634.484263,202.842487,
+ 0.995804,-0.035007,0.084556,473.642065,-635.720877,205.981096,
+ 0.999748,-0.0058,0.021677,473.717752,-607.239369,211.479086,
+ 0.995804,-0.023158,0.088537,473.642053,-608.036762,214.756927,
+ 0.091928,-0.487734,0.868139,451.683339,-672.734453,212.70224,
+ 0.229025,-0.58781,0.775904,455.006113,-699.207898,194.697902,
+ 0.229025,-0.476597,0.848766,455.006107,-672.469112,212.230111,
+ 0.229025,-0.58781,0.775904,455.006113,-699.207898,194.697902,
+ 0.091928,-0.487734,0.868139,451.683339,-672.734453,212.70224,
+ 0.091928,-0.601482,0.793579,451.683345,-699.535099,195.12947,
+ 0.011271,-0.489901,0.871705,448.317778,-672.771628,212.768386,
+ 0.091928,-0.601482,0.793579,451.683345,-699.535099,195.12947,
+ 0.091928,-0.487734,0.868139,451.683339,-672.734453,212.70224,
+ 0.091928,-0.601482,0.793579,451.683345,-699.535099,195.12947,
+ 0.011271,-0.489901,0.871705,448.317778,-672.771628,212.768386,
+ 0.011271,-0.604116,0.796817,448.317783,-699.580941,195.189934,
+ -0.415875,0.642593,-0.643523,439.690622,-702.296712,152.674124,
+ -0.537771,0.671316,-0.510036,442.83949,-719.276356,130.597708,
+ -0.415875,0.72429,-0.549957,439.690621,-720.641807,131.632947,
+ -0.537771,0.671316,-0.510036,442.83949,-719.276356,130.597708,
+ -0.415875,0.642593,-0.643523,439.690622,-702.296712,152.674124,
+ -0.537771,0.595553,-0.596756,442.839492,-701.085065,151.462478,
+ -0.537771,0.595553,-0.596756,442.839492,-701.085065,151.462478,
+ -0.649152,0.595502,-0.473264,445.721745,-717.576266,129.308758,
+ -0.537771,0.671316,-0.510036,442.83949,-719.276356,130.597708,
+ -0.649152,0.595502,-0.473264,445.721745,-717.576266,129.308758,
+ -0.537771,0.595553,-0.596756,442.839492,-701.085065,151.462478,
+ -0.649152,0.525457,-0.549997,445.721747,-699.576473,149.953886,
+ -0.150375,0.698898,-0.699234,432.838956,-703.74222,154.119632,
+ -0.285905,0.76333,-0.579298,436.335626,-721.646389,132.394587,
+ -0.150375,0.787661,-0.597476,432.838954,-722.270805,132.867998,
+ -0.285905,0.76333,-0.579298,436.335626,-721.646389,132.394587,
+ -0.150375,0.698898,-0.699234,432.838956,-703.74222,154.119632,
+ -0.285905,0.677271,-0.67791,436.335627,-703.188138,153.565551,
+ -0.112343,0.702509,-0.702752,623.546368,-683.011825,133.389238,
+ -0.244971,0.772358,-0.586047,644.636264,-695.850119,112.836708,
+ -0.112343,0.791717,-0.600469,623.546367,-698.908942,115.155806,
+ -0.244971,0.772358,-0.586047,644.636264,-695.850119,112.836708,
+ -0.112343,0.702509,-0.702752,623.546368,-683.011825,133.389238,
+ -0.244971,0.685296,-0.685827,644.636265,-680.297547,130.67496,
+ 0.382469,-0.01552,0.923838,458.222196,-549.595395,241.116069,
+ 0.487278,-0.088099,0.868791,461.269956,-581.352493,238.618284,
+ 0.506559,-0.014482,0.862083,461.269937,-549.571376,239.686382,
+ 0.487278,-0.088099,0.868791,461.269956,-581.352493,238.618284,
+ 0.382469,-0.01552,0.923838,458.222196,-549.595395,241.116069,
+ 0.361665,-0.094307,0.927526,458.222215,-581.498327,240.043877,
+ -0.19509,0,-0.980785,35.243015,-186.86272,2079.865312,
+ -0.098017,0,-0.995185,0.112465,-280.29408,2083.325369,
+ -0.098017,0,-0.995185,0.112465,-186.86272,2083.325369,
+ -0.098017,0,-0.995185,0.112465,-280.29408,2083.325369,
+ -0.19509,0,-0.980785,35.243015,-186.86272,2079.865312,
+ -0.19509,0,-0.980785,35.243015,-280.29408,2079.865312,
+ -0.382683,0,-0.92388,69.023518,-280.29408,2069.618109,
+ -0.19509,0,-0.980785,35.243015,-186.86272,2079.865312,
+ -0.382683,0,-0.92388,69.023518,-186.86272,2069.618109,
+ -0.19509,0,-0.980785,35.243015,-186.86272,2079.865312,
+ -0.382683,0,-0.92388,69.023518,-280.29408,2069.618109,
+ -0.19509,0,-0.980785,35.243015,-280.29408,2079.865312,
+ 0.684487,-0,-0.729025,221.73981,-186.86272,1435.598634,
+ 0.684487,-0,-0.729025,93.530885,-280.29408,1315.222366,
+ 0.684487,-0,-0.729025,93.530885,-186.86272,1315.222366,
+ 0.684487,-0,-0.729025,93.530885,-280.29408,1315.222366,
+ 0.684487,-0,-0.729025,221.73981,-186.86272,1435.598634,
+ 0.684487,-0,-0.729025,221.73981,-280.29408,1435.598634,
+ -0.494423,0.087701,-0.864786,684.332867,-573.78512,164.643953,
+ -0.372406,0.015448,-0.927941,665.021343,-548.48129,174.800973,
+ -0.493603,0.014422,-0.869568,684.332852,-548.325029,165.499615,
+ -0.372406,0.015448,-0.927941,665.021343,-548.48129,174.800973,
+ -0.494423,0.087701,-0.864786,684.332867,-573.78512,164.643953,
+ -0.373111,0.093846,-0.923028,665.021359,-574.733894,173.918677,
+ -0.985345,0.136861,-0.101808,454.431275,-705.386141,120.066621,
+ -0.999454,0.024455,-0.02222,454.797689,-686.233268,136.610681,
+ -0.999454,0.027255,-0.01868,454.797688,-702.539296,117.908241,
+ -0.999454,0.024455,-0.02222,454.797689,-686.233268,136.610681,
+ -0.985345,0.136861,-0.101808,454.431275,-705.386141,120.066621,
+ -0.985345,0.121711,-0.119507,454.431277,-688.759444,139.136857,
+ -0.022557,0.706919,-0.706935,602.133302,-683.695423,134.072836,
+ -0.112343,0.791717,-0.600469,623.546367,-698.908942,115.155806,
+ -0.022557,0.796656,-0.604012,602.133301,-699.679313,115.739878,
+ -0.112343,0.791717,-0.600469,623.546367,-698.908942,115.155806,
+ -0.022557,0.706919,-0.706935,602.133302,-683.695423,134.072836,
+ -0.112343,0.702509,-0.702752,623.546368,-683.011825,133.389238,
+ -0.741547,0.152765,-0.653277,448.281994,-604.584377,200.565168,
+ -0.649249,0.076378,-0.756731,445.721707,-578.184383,207.648051,
+ -0.748094,0.052453,-0.661516,448.28198,-577.928705,205.148665,
+ -0.649249,0.076378,-0.756731,445.721707,-578.184383,207.648051,
+ -0.741547,0.152765,-0.653277,448.281994,-604.584377,200.565168,
+ -0.638578,0.17117,-0.75028,445.721721,-605.178251,203.006401,
+ 0.030867,-0.23624,0.971204,599.602131,-607.23931,211.479086,
+ 0.127347,-0.363412,0.922884,624.955334,-633.909652,201.38423,
+ 0.127347,-0.234264,0.963796,624.955322,-606.868816,209.956143,
+ 0.127347,-0.363412,0.922884,624.955334,-633.909652,201.38423,
+ 0.030867,-0.23624,0.971204,599.602131,-607.23931,211.479086,
+ 0.030867,-0.366379,0.929954,599.602143,-634.484215,202.842483,
+ 0.991932,-0.047852,0.117393,792.007216,-572.529419,45.597264,
+ 0.966794,-0.126469,0.22207,787.130189,-589.736091,65.02047,
+ 0.991932,-0.063402,0.109777,792.007217,-577.494024,43.23773,
+ 0.966794,-0.126469,0.22207,787.130189,-589.736091,65.02047,
+ 0.991932,-0.047852,0.117393,792.007216,-572.529419,45.597264,
+ 0.966794,-0.095028,0.237232,787.130187,-581.689044,68.845,
+ 0.966794,-0.095028,0.237232,787.130187,-581.689044,68.845,
+ 0.924993,-0.187375,0.330572,779.024167,-601.558028,86.055659,
+ 0.966794,-0.126469,0.22207,787.130189,-589.736091,65.02047,
+ 0.924993,-0.187375,0.330572,779.024167,-601.558028,86.055659,
+ 0.966794,-0.095028,0.237232,787.130187,-581.689044,68.845,
+ 0.924993,-0.140582,0.353021,779.024163,-590.534326,91.294907,
+ -0.707841,0.055835,-0.704162,718.363082,-571.142012,138.806193,
+ -0.795651,0.010475,-0.605664,732.466031,-547.618545,123.445905,
+ -0.796291,0.062774,-0.601647,732.466044,-569.495502,122.710666,
+ -0.795651,0.010475,-0.605664,732.466031,-547.618545,123.445905,
+ -0.707841,0.055835,-0.704162,718.363082,-571.142012,138.806193,
+ -0.716622,0.0095,-0.697397,718.363068,-547.889718,139.587655,
+ -0.796291,0.062774,-0.601647,732.466044,-569.495502,122.710666,
+ -0.869747,0.008617,-0.493422,744.275028,-547.318028,105.557439,
+ -0.870211,0.051465,-0.489984,744.27504,-567.670824,104.873423,
+ -0.869747,0.008617,-0.493422,744.275028,-547.318028,105.557439,
+ -0.796291,0.062774,-0.601647,732.466044,-569.495502,122.710666,
+ -0.795651,0.010475,-0.605664,732.466031,-547.618545,123.445905,
+ -0.870211,0.051465,-0.489984,744.27504,-567.670824,104.873423,
+ -0.928106,0.006604,-0.372257,753.576386,-546.993607,86.24593,
+ -0.928388,0.039234,-0.369537,753.576397,-565.700992,85.617213,
+ -0.928106,0.006604,-0.372257,753.576386,-546.993607,86.24593,
+ -0.870211,0.051465,-0.489984,744.27504,-567.670824,104.873423,
+ -0.869747,0.008617,-0.493422,744.275028,-547.318028,105.557439,
+ -0.928388,0.039234,-0.369537,753.576397,-565.700992,85.617213,
+ -0.969674,0.004471,-0.24436,760.201807,-546.651151,65.860802,
+ -0.9698,0.0263,-0.242479,760.201817,-563.621651,65.290458,
+ -0.969674,0.004471,-0.24436,760.201807,-546.651151,65.860802,
+ -0.928388,0.039234,-0.369537,753.576397,-565.700992,85.617213,
+ -0.928106,0.006604,-0.372257,753.576386,-546.993607,86.24593,
+ 0.991932,-0.07777,0.100113,792.007218,-582.090797,40.223697,
+ 0.966794,-0.181729,0.179678,787.130191,-603.902541,54.279953,
+ 0.991932,-0.090686,0.088582,792.007219,-586.233981,36.611394,
+ 0.966794,-0.181729,0.179678,787.130191,-603.902541,54.279953,
+ 0.991932,-0.07777,0.100113,792.007218,-582.090797,40.223697,
+ 0.966794,-0.15555,0.202766,787.130191,-597.186922,60.135075,
+ -0.040706,0.706494,-0.706547,429.267778,-703.948313,154.325725,
+ -0,0.622177,-0.782877,0.016303,-682.666775,172.880521,
+ -0.040706,0.603626,-0.796228,429.267777,-682.666673,172.880471,
+ -0,0.622177,-0.782877,0.016303,-682.666775,172.880521,
+ -0.040706,0.706494,-0.706547,429.267778,-703.948313,154.325725,
+ -0,0.723053,-0.690793,0.016305,-703.948386,154.325799,
+ -0.150375,0.698898,-0.699234,432.838956,-703.74222,154.119632,
+ -0.040706,0.603626,-0.796228,429.267777,-682.666673,172.880471,
+ -0.150375,0.597097,-0.787948,432.838954,-682.490586,172.648217,
+ -0.040706,0.603626,-0.796228,429.267777,-682.666673,172.880471,
+ -0.150375,0.698898,-0.699234,432.838956,-703.74222,154.119632,
+ -0.040706,0.706494,-0.706547,429.267778,-703.948313,154.325725,
+ -0.285905,0.677271,-0.67791,436.335627,-703.188138,153.565551,
+ -0.150375,0.597097,-0.787948,432.838954,-682.490586,172.648217,
+ -0.285905,0.578577,-0.763876,436.335626,-682.017175,172.023802,
+ -0.150375,0.597097,-0.787948,432.838954,-682.490586,172.648217,
+ -0.285905,0.677271,-0.67791,436.335627,-703.188138,153.565551,
+ -0.150375,0.698898,-0.699234,432.838956,-703.74222,154.119632,
+ 0.620913,-0.013167,0.783769,464.090728,-549.540509,237.849027,
+ 0.707841,-0.055835,0.704162,466.630399,-580.939677,234.58279,
+ 0.707157,-0.011876,0.706957,466.63038,-549.503387,235.639299,
+ 0.707841,-0.055835,0.704162,466.630399,-580.939677,234.58279,
+ 0.620913,-0.013167,0.783769,464.090728,-549.540509,237.849027,
+ 0.603443,-0.080198,0.793363,464.090747,-581.165077,236.78619,
+ -0.748094,0.052453,-0.661516,448.28198,-577.928705,205.148665,
+ -0.648424,0.012535,-0.761176,445.72169,-549.049611,208.627211,
+ -0.747451,0.007439,-0.664276,448.281963,-549.007501,206.120647,
+ -0.648424,0.012535,-0.761176,445.72169,-549.049611,208.627211,
+ -0.748094,0.052453,-0.661516,448.28198,-577.928705,205.148665,
+ -0.649249,0.076378,-0.756731,445.721707,-578.184383,207.648051,
+ -0.748094,0.052453,-0.661516,448.28198,-577.928705,205.148665,
+ -0.832126,0.009639,-0.554503,450.471071,-548.95985,203.284158,
+ -0.832687,0.057661,-0.550734,450.471088,-577.639374,202.320298,
+ -0.832126,0.009639,-0.554503,450.471071,-548.95985,203.284158,
+ -0.748094,0.052453,-0.661516,448.28198,-577.928705,205.148665,
+ -0.747451,0.007439,-0.664276,448.281963,-549.007501,206.120647,
+ -0.832687,0.057661,-0.550734,450.471088,-577.639374,202.320298,
+ -0.90081,0.007643,-0.434147,452.246961,-548.907571,200.172234,
+ -0.901181,0.045526,-0.431045,452.246978,-577.321949,199.217285,
+ -0.90081,0.007643,-0.434147,452.246961,-548.907571,200.172234,
+ -0.832687,0.057661,-0.550734,450.471088,-577.639374,202.320298,
+ -0.832126,0.009639,-0.554503,450.471071,-548.95985,203.284158,
+ -0.901181,0.045526,-0.431045,452.246978,-577.321949,199.217285,
+ -0.95219,0.005502,-0.305456,453.575519,-548.85167,196.844653,
+ -0.952384,0.032525,-0.303161,453.575536,-576.982526,195.899232,
+ -0.95219,0.005502,-0.305456,453.575519,-548.85167,196.844653,
+ -0.901181,0.045526,-0.431045,452.246978,-577.321949,199.217285,
+ -0.90081,0.007643,-0.434147,452.246961,-548.907571,200.172234,
+ -0.952384,0.032525,-0.303161,453.575536,-576.982526,195.899232,
+ -0.985283,0.003254,-0.170901,454.431224,-548.79322,193.365338,
+ -0.985345,0.018907,-0.169523,454.43124,-576.627626,192.429881,
+ -0.985283,0.003254,-0.170901,454.431224,-548.79322,193.365338,
+ -0.952384,0.032525,-0.303161,453.575536,-576.982526,195.899232,
+ -0.95219,0.005502,-0.305456,453.575519,-548.85167,196.844653,
+ 0.794465,-0.367859,0.483224,753.739289,-638.371733,114.456714,
+ 0.707932,-0.500166,0.498664,736.997697,-665.645303,116.022715,
+ 0.794465,-0.430275,0.42859,753.73929,-652.105388,102.482801,
+ 0.707932,-0.500166,0.498664,736.997697,-665.645303,116.022715,
+ 0.794465,-0.367859,0.483224,753.739289,-638.371733,114.456714,
+ 0.707932,-0.427549,0.562168,736.997696,-649.94032,129.715362,
+ 0.967989,-0,0.250993,473.101704,-186.86272,224.014969,
+ 0.928983,-0.005506,0.370082,472.10715,-549.362134,227.231115,
+ 0.973547,-0.004216,0.228449,473.101704,-549.308105,224.014969,
+ 0.928983,-0.005506,0.370082,472.10715,-549.362134,227.231115,
+ 0.967989,-0,0.250993,473.101704,-186.86272,224.014969,
+ 0.932593,0,0.360931,472.10715,-186.86272,227.231115,
+ -0.901181,0.103838,-0.42082,452.246991,-603.175034,194.771794,
+ -0.952384,0.032525,-0.303161,453.575536,-576.982526,195.899232,
+ -0.952384,0.073533,-0.295901,453.575549,-602.386639,191.530944,
+ -0.952384,0.032525,-0.303161,453.575536,-576.982526,195.899232,
+ -0.901181,0.103838,-0.42082,452.246991,-603.175034,194.771794,
+ -0.901181,0.045526,-0.431045,452.246978,-577.321949,199.217285,
+ -0.285329,0.015988,-0.958296,436.33557,-549.135218,213.722949,
+ -0.172878,0,-0.984943,432.838898,-186.86272,214.504709,
+ -0.307402,0,-0.95158,436.33557,-186.86272,213.722949,
+ -0.172878,0,-0.984943,432.838898,-186.86272,214.504709,
+ -0.285329,0.015988,-0.958296,436.33557,-549.135218,213.722949,
+ -0.150052,0.016548,-0.98854,432.838898,-549.148352,214.504709,
+ 0.998111,-0.007644,0.060955,793.543158,-559.332109,23.357838,
+ 0.991932,-0.031409,0.122818,792.007213,-567.289597,47.258281,
+ 0.998111,-0.015878,0.059345,793.520758,-561.475389,23.357838,
+ 0.991932,-0.031409,0.122818,792.007213,-567.289597,47.258281,
+ 0.998111,-0.007644,0.060955,793.543158,-559.332109,23.357838,
+ 0.991932,-0.01438,0.125953,792.007211,-561.87231,48.189795,
+ 0.991932,-0.01438,0.125953,792.007211,-561.87231,48.189795,
+ 0.966794,-0.061815,0.247969,787.130183,-573.195905,71.537315,
+ 0.991932,-0.031409,0.122818,792.007213,-567.289597,47.258281,
+ 0.966794,-0.061815,0.247969,787.130183,-573.195905,71.537315,
+ 0.991932,-0.01438,0.125953,792.007211,-561.87231,48.189795,
+ 0.966794,-0.027448,0.254079,787.130178,-564.415116,73.047189,
+ 0.966794,-0.027448,0.254079,787.130178,-564.415116,73.047189,
+ 0.924993,-0.091165,0.368885,779.024159,-578.899518,94.983127,
+ 0.966794,-0.061815,0.247969,787.130183,-573.195905,71.537315,
+ 0.924993,-0.091165,0.368885,779.024159,-578.899518,94.983127,
+ 0.966794,-0.027448,0.254079,787.130178,-564.415116,73.047189,
+ 0.924993,-0.040048,0.377867,779.024152,-566.870657,97.051514,
+ 0.924993,-0.040048,0.377867,779.024152,-566.870657,97.051514,
+ 0.867227,-0.118957,0.483493,767.829322,-584.301801,117.190256,
+ 0.924993,-0.091165,0.368885,779.024159,-578.899518,94.983127,
+ 0.867227,-0.118957,0.483493,767.829322,-584.301801,117.190256,
+ 0.924993,-0.040048,0.377867,779.024152,-566.870657,97.051514,
+ 0.867227,-0.051963,0.495193,767.829315,-569.19647,119.787648,
+ 0.277314,-0.016138,0.960644,649.884069,-549.087494,210.885907,
+ 0.381503,-0.093498,0.919627,673.957345,-577.587813,201.817466,
+ 0.401003,-0.015387,0.915947,673.957328,-548.951312,202.77988,
+ 0.381503,-0.093498,0.919627,673.957345,-577.587813,201.817466,
+ 0.277314,-0.016138,0.960644,649.884069,-549.087494,210.885907,
+ 0.256672,-0.097972,0.96152,649.884086,-578.414663,209.900281,
+ 0.148826,-0.01661,0.988724,624.95529,-549.169432,215.762941,
+ 0.256672,-0.097972,0.96152,649.884086,-578.414663,209.900281,
+ 0.277314,-0.016138,0.960644,649.884069,-549.087494,210.885907,
+ 0.256672,-0.097972,0.96152,649.884086,-578.414663,209.900281,
+ 0.148826,-0.01661,0.988724,624.95529,-549.169432,215.762941,
+ 0.127347,-0.100746,0.986728,624.955308,-578.912147,214.763349,
+ 0.867227,-0.301852,0.395982,767.829336,-625.572837,97.575321,
+ 0.794465,-0.430275,0.42859,753.73929,-652.105388,102.482801,
+ 0.867227,-0.352996,0.351156,767.829337,-637.125516,87.502929,
+ 0.794465,-0.430275,0.42859,753.73929,-652.105388,102.482801,
+ 0.867227,-0.301852,0.395982,767.829336,-625.572837,97.575321,
+ 0.794465,-0.367859,0.483224,753.739289,-638.371733,114.456714,
+ -0.41512,0.01512,-0.909641,439.690565,-549.114088,212.465226,
+ -0.307402,0,-0.95158,436.33557,-186.86272,213.722949,
+ -0.436021,0,-0.899936,439.690565,-186.86272,212.465226,
+ -0.307402,0,-0.95158,436.33557,-186.86272,213.722949,
+ -0.41512,0.01512,-0.909641,439.690565,-549.114088,212.465226,
+ -0.285329,0.015988,-0.958296,436.33557,-549.135218,213.722949,
+ 0.998111,-0.015878,0.059345,793.520758,-561.475389,23.357838,
+ 0.991932,-0.047852,0.117393,792.007216,-572.529419,45.597264,
+ 0.998111,-0.023817,0.056627,793.478048,-563.767069,23.357838,
+ 0.991932,-0.047852,0.117393,792.007216,-572.529419,45.597264,
+ 0.998111,-0.015878,0.059345,793.520758,-561.475389,23.357838,
+ 0.991932,-0.031409,0.122818,792.007213,-567.289597,47.258281,
+ -0,1,0,35.238106,-186.86272,1394.271064,
+ -0,1,0,18.722685,-186.86272,1315.222366,
+ -0,1,0,0.112465,-186.86272,1390.81149,
+ -0,1,0,18.722685,-186.86272,1315.222366,
+ -0,1,0,35.238106,-186.86272,1394.271064,
+ 0,1,0,56.126785,-186.86272,1315.222366,
+ 0,1,0,56.126785,-186.86272,1315.222366,
+ -0,1,0,35.238106,-186.86272,1394.271064,
+ -0,1,0,69.013887,-186.86272,1404.516835,
+ 0,1,0,56.126785,-186.86272,1315.222366,
+ -0,1,0,69.013887,-186.86272,1404.516835,
+ 0,1,0,56.126785,-186.86272,268.426375,
+ -0,1,0,100.155807,-186.86272,1753.526669,
+ 0,1,0,100.141826,-186.86272,1720.5641,
+ -0,1,0,69.327289,-186.86272,1737.048483,
+ 0,1,0,100.141826,-186.86272,1720.5641,
+ -0,1,0,100.155807,-186.86272,1753.526669,
+ 0,1,0,127.425692,-186.86272,1698.17281,
+ 0,1,0,127.425692,-186.86272,1698.17281,
+ -0,1,0,100.155807,-186.86272,1753.526669,
+ 0,1,0,127.443487,-186.86272,1775.921089,
+ 0,1,0,127.425692,-186.86272,1698.17281,
+ 0,1,0,127.443487,-186.86272,1775.921089,
+ 0,1,0,149.816983,-186.86272,1670.888943,
+ 0,1,0,149.816983,-186.86272,1670.888943,
+ 0,1,0,127.443487,-186.86272,1775.921089,
+ 0,1,0,149.837908,-186.86272,1803.208769,
+ 0,1,0,149.816983,-186.86272,1670.888943,
+ 0,1,0,149.837908,-186.86272,1803.208769,
+ 0,1,0,166.455213,-186.86272,1639.761005,
+ 0,1,0,166.455213,-186.86272,1639.761005,
+ 0,1,0,149.837908,-186.86272,1803.208769,
+ 0,1,0,166.478463,-186.86272,1834.341059,
+ 0,1,0,166.455213,-186.86272,1639.761005,
+ 0,1,0,166.478463,-186.86272,1834.341059,
+ 0,1,0,176.700984,-186.86272,1605.985223,
+ 0,1,0,176.700984,-186.86272,1605.985223,
+ 0,1,0,166.478463,-186.86272,1834.341059,
+ 0,1,0,176.725666,-186.86272,1868.121561,
+ 0,1,0,176.700984,-186.86272,1605.985223,
+ 0,1,0,176.725666,-186.86272,1868.121561,
+ 0,1,0,180.160558,-186.86272,1570.859583,
+ 0,1,0,180.160558,-186.86272,1570.859583,
+ 0,1,0,176.725666,-186.86272,1868.121561,
+ 0,1,0,180.185724,-186.86272,1903.252111,
+ 0,1,0,93.652471,-186.86272,2499.208064,
+ 0,1,0,46.868397,-186.86272,2125.502553,
+ 0,1,0,46.868397,-186.86272,2499.208064,
+ 0,1,0,46.868397,-186.86272,2125.502553,
+ 0,1,0,93.652471,-186.86272,2499.208064,
+ 0,1,0,69.023518,-186.86272,2069.618109,
+ 0,1,0,69.023518,-186.86272,2069.618109,
+ 0,1,0,93.652471,-186.86272,2499.208064,
+ 0,1,-0,100.155807,-186.86272,2052.977553,
+ 0,1,-0,100.155807,-186.86272,2052.977553,
+ 0,1,0,93.652471,-186.86272,2499.208064,
+ 0,1,-0,123.089852,-186.86272,2224.766097,
+ 0,1,-0,100.155807,-186.86272,2052.977553,
+ 0,1,-0,123.089852,-186.86272,2224.766097,
+ 0,1,-0,127.443487,-186.86272,2030.583133,
+ 0,1,-0,127.443487,-186.86272,2030.583133,
+ 0,1,-0,123.089852,-186.86272,2224.766097,
+ -0,1,-0,221.73981,-186.86272,2013.443961,
+ 0,1,-0,127.443487,-186.86272,2030.583133,
+ -0,1,-0,221.73981,-186.86272,2013.443961,
+ 0,1,0,149.837908,-186.86272,2003.295453,
+ 0,1,0,149.837908,-186.86272,2003.295453,
+ -0,1,-0,221.73981,-186.86272,2013.443961,
+ 0,1,0,166.478463,-186.86272,1972.163164,
+ 0,1,0,166.478463,-186.86272,1972.163164,
+ -0,1,-0,221.73981,-186.86272,2013.443961,
+ 0,1,0,176.725666,-186.86272,1938.382661,
+ 0,1,0,176.725666,-186.86272,1938.382661,
+ -0,1,-0,221.73981,-186.86272,2013.443961,
+ 0,1,0,180.185724,-186.86272,1903.252111,
+ -0,1,0,100.141826,-186.86272,1421.155065,
+ -0,1,0,93.530885,-186.86272,1315.222366,
+ -0,1,0,69.013887,-186.86272,1404.516835,
+ -0,1,0,93.530885,-186.86272,1315.222366,
+ -0,1,0,100.141826,-186.86272,1421.155065,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ -0,1,0,100.141826,-186.86272,1421.155065,
+ 0,1,0,127.425692,-186.86272,1443.546356,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ 0,1,0,127.425692,-186.86272,1443.546356,
+ 0,1,0,149.816983,-186.86272,1470.830222,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ 0,1,0,149.816983,-186.86272,1470.830222,
+ 0,1,0,166.455213,-186.86272,1501.958161,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ 0,1,0,166.455213,-186.86272,1501.958161,
+ 0,1,0,176.700984,-186.86272,1535.733942,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ 0,1,0,176.700984,-186.86272,1535.733942,
+ 0,1,0,180.160558,-186.86272,1570.859583,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ 0,1,0,180.160558,-186.86272,1570.859583,
+ 0,1,0,180.185724,-186.86272,1903.252111,
+ -0,1,0,221.73981,-186.86272,1435.598634,
+ 0,1,0,180.185724,-186.86272,1903.252111,
+ -0,1,-0,221.73981,-186.86272,2013.443961,
+ -0,1,-0,0.016247,-186.86272,214.795487,
+ -0,1,-0,93.530885,-186.86272,242.726639,
+ 0,1,-0,429.26772,-186.86272,214.795487,
+ -0,1,-0,93.530885,-186.86272,242.726639,
+ -0,1,-0,0.016247,-186.86272,214.795487,
+ -0,1,-0,18.722685,-186.86272,268.426375,
+ -0,1,-0,18.722685,-186.86272,268.426375,
+ -0,1,-0,0.016247,-186.86272,214.795487,
+ -0,1,0,0.112465,-186.86272,1390.81149,
+ -0,1,-0,18.722685,-186.86272,268.426375,
+ -0,1,0,0.112465,-186.86272,1390.81149,
+ -0,1,0,18.722685,-186.86272,1315.222366,
+ -0,1,-0,93.530885,-186.86272,242.726639,
+ -0,1,-0,18.722685,-186.86272,268.426375,
+ 0,1,0,56.126785,-186.86272,268.426375,
+ -0,1,-0,93.530885,-186.86272,242.726639,
+ 0,1,0,56.126785,-186.86272,268.426375,
+ -0,1,0,69.013887,-186.86272,1404.516835,
+ -0,1,-0,93.530885,-186.86272,242.726639,
+ -0,1,0,69.013887,-186.86272,1404.516835,
+ -0,1,0,93.530885,-186.86272,1315.222366,
+ 0,1,-0,429.26772,-186.86272,214.795487,
+ -0,1,-0,93.530885,-186.86272,242.726639,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,-0,429.26772,-186.86272,214.795487,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,432.838898,-186.86272,214.504709,
+ 0,1,0,432.838898,-186.86272,214.504709,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,436.33557,-186.86272,213.722949,
+ 0,1,0,436.33557,-186.86272,213.722949,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,439.690565,-186.86272,212.465226,
+ 0,1,0,439.690565,-186.86272,212.465226,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,442.839435,-186.86272,210.7557,
+ 0,1,0,442.839435,-186.86272,210.7557,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,445.72169,-186.86272,208.627211,
+ 0,1,0,445.72169,-186.86272,208.627211,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,448.281963,-186.86272,206.120647,
+ 0,1,0,448.281963,-186.86272,206.120647,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,450.471071,-186.86272,203.284158,
+ 0,1,0,450.471071,-186.86272,203.284158,
+ 0,1,-0,448.31772,-186.86272,242.726639,
+ 0,1,0,451.683281,-186.86272,242.65094,
+ 0,1,0,450.471071,-186.86272,203.284158,
+ 0,1,0,451.683281,-186.86272,242.65094,
+ 0,1,0,452.246961,-186.86272,200.172234,
+ 0,1,0,452.246961,-186.86272,200.172234,
+ 0,1,0,451.683281,-186.86272,242.65094,
+ 0,1,0,455.00605,-186.86272,242.110623,
+ 0,1,0,452.246961,-186.86272,200.172234,
+ 0,1,0,455.00605,-186.86272,242.110623,
+ 0,1,0,453.575519,-186.86272,196.844653,
+ 0,1,0,453.575519,-186.86272,196.844653,
+ 0,1,0,455.00605,-186.86272,242.110623,
+ 0,1,0,454.431224,-186.86272,193.365338,
+ 0,1,0,454.431224,-186.86272,193.365338,
+ 0,1,0,455.00605,-186.86272,242.110623,
+ 0,1,0,454.797637,-186.86272,189.801127,
+ 0,1,0,454.797637,-186.86272,189.801127,
+ 0,1,0,602.133251,-186.86272,186.220487,
+ 0,1,0,454.66772,-186.86272,186.220487,
+ 0,1,0,602.133251,-186.86272,186.220487,
+ 0,1,0,454.797637,-186.86272,189.801127,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,454.797637,-186.86272,189.801127,
+ 0,1,0,455.00605,-186.86272,242.110623,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,455.00605,-186.86272,242.110623,
+ 0,1,0,458.222196,-186.86272,241.116069,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,458.222196,-186.86272,241.116069,
+ 0,1,0,461.269937,-186.86272,239.686382,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,461.269937,-186.86272,239.686382,
+ 0,1,0,464.090728,-186.86272,237.849027,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,464.090728,-186.86272,237.849027,
+ 0,1,0,466.63038,-186.86272,235.639299,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,466.63038,-186.86272,235.639299,
+ 0,1,0,468.840108,-186.86272,233.099647,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,468.840108,-186.86272,233.099647,
+ 0,1,0,470.677463,-186.86272,230.278856,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,470.677463,-186.86272,230.278856,
+ 0,1,0,472.10715,-186.86272,227.231115,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,472.10715,-186.86272,227.231115,
+ 0,1,0,473.101704,-186.86272,224.014969,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,473.101704,-186.86272,224.014969,
+ 0,1,0,473.642021,-186.86272,220.6922,
+ 0,1,0,602.133251,-186.86272,186.220487,
+ 0,1,0,473.71772,-186.86272,217.326639,
+ 0,1,0,599.602099,-186.86272,217.326639,
+ 0,1,0,602.133251,-186.86272,186.220487,
+ 0,1,0,599.602099,-186.86272,217.326639,
+ 0,1,0,624.95529,-186.86272,215.762941,
+ 0,1,0,602.133251,-186.86272,186.220487,
+ 0,1,0,624.95529,-186.86272,215.762941,
+ 0,1,0,623.546317,-186.86272,185.255996,
+ 0,1,0,623.546317,-186.86272,185.255996,
+ 0,1,0,624.95529,-186.86272,215.762941,
+ 0,1,0,644.636215,-186.86272,181.426394,
+ 0,1,0,644.636215,-186.86272,181.426394,
+ 0,1,0,624.95529,-186.86272,215.762941,
+ 0,1,0,649.884069,-186.86272,210.885907,
+ 0,1,0,644.636215,-186.86272,181.426394,
+ 0,1,0,649.884069,-186.86272,210.885907,
+ 0,1,0,665.021343,-186.86272,174.800973,
+ 0,1,0,665.021343,-186.86272,174.800973,
+ 0,1,0,649.884069,-186.86272,210.885907,
+ 0,1,0,673.957328,-186.86272,202.77988,
+ 0,1,0,665.021343,-186.86272,174.800973,
+ 0,1,0,673.957328,-186.86272,202.77988,
+ 0,1,0,684.332852,-186.86272,165.499615,
+ 0,1,0,684.332852,-186.86272,165.499615,
+ 0,1,0,673.957328,-186.86272,202.77988,
+ 0,1,0,696.758754,-186.86272,191.585041,
+ 0,1,0,684.332852,-186.86272,165.499615,
+ 0,1,0,696.758754,-186.86272,191.585041,
+ 0,1,0,702.221319,-186.86272,153.690618,
+ 0,1,0,702.221319,-186.86272,153.690618,
+ 0,1,0,696.758754,-186.86272,191.585041,
+ 0,1,0,717.89403,-186.86272,177.494989,
+ 0,1,0,702.221319,-186.86272,153.690618,
+ 0,1,0,717.89403,-186.86272,177.494989,
+ 0,1,0,718.363068,-186.86272,139.587655,
+ 0,1,0,718.363068,-186.86272,139.587655,
+ 0,1,0,717.89403,-186.86272,177.494989,
+ 0,1,0,736.997652,-186.86272,160.753391,
+ 0,1,0,718.363068,-186.86272,139.587655,
+ 0,1,0,736.997652,-186.86272,160.753391,
+ 0,1,0,732.466031,-186.86272,123.445905,
+ 0,1,0,732.466031,-186.86272,123.445905,
+ 0,1,0,736.997652,-186.86272,160.753391,
+ 0,1,0,744.275028,-186.86272,105.557439,
+ 0,1,0,744.275028,-186.86272,105.557439,
+ 0,1,0,736.997652,-186.86272,160.753391,
+ 0,1,0,753.73925,-186.86272,141.649769,
+ 0,1,0,744.275028,-186.86272,105.557439,
+ 0,1,0,753.73925,-186.86272,141.649769,
+ 0,1,0,753.576386,-186.86272,86.24593,
+ 0,1,0,753.576386,-186.86272,86.24593,
+ 0,1,0,753.73925,-186.86272,141.649769,
+ 0,1,0,760.201807,-186.86272,65.860802,
+ 0,1,0,760.201807,-186.86272,65.860802,
+ 0,1,0,753.73925,-186.86272,141.649769,
+ 0,1,0,767.829302,-186.86272,120.514493,
+ 0,1,0,760.201807,-186.86272,65.860802,
+ 0,1,0,767.829302,-186.86272,120.514493,
+ 0,1,0,764.031409,-186.86272,44.770904,
+ 0,1,0,764.031409,-186.86272,44.770904,
+ 0,1,0,767.829302,-186.86272,120.514493,
+ 0,1,0,764.9959,-186.86272,23.357838,
+ 0,1,0,764.9959,-186.86272,23.357838,
+ 0,1,0,767.829302,-186.86272,120.514493,
+ 0,1,0,793.5709,-186.86272,23.357838,
+ 0,1,0,793.5709,-186.86272,23.357838,
+ 0,1,0,767.829302,-186.86272,120.514493,
+ 0,1,0,779.024141,-186.86272,97.713067,
+ 0,1,0,793.5709,-186.86272,23.357838,
+ 0,1,0,779.024141,-186.86272,97.713067,
+ 0,1,0,787.130168,-186.86272,73.639808,
+ 0,1,0,793.5709,-186.86272,23.357838,
+ 0,1,0,787.130168,-186.86272,73.639808,
+ 0,1,0,792.007202,-186.86272,48.711029,
+ 0,1,0,0.179984,-186.86272,2125.502553,
+ 0,1,0,35.243015,-186.86272,2079.865312,
+ 0,1,0,0.112465,-186.86272,2083.325369,
+ 0,1,0,35.243015,-186.86272,2079.865312,
+ 0,1,0,0.179984,-186.86272,2125.502553,
+ 0,1,0,46.868397,-186.86272,2125.502553,
+ 0,1,0,35.243015,-186.86272,2079.865312,
+ 0,1,0,46.868397,-186.86272,2125.502553,
+ 0,1,0,69.023518,-186.86272,2069.618109,
+ -0.935939,0,-0.352162,166.478463,-280.29408,1972.163164,
+ -0.973856,0,-0.227168,176.725666,-186.86272,1938.382661,
+ -0.986659,0,-0.162803,176.725666,-280.29408,1938.382661,
+ -0.973856,0,-0.227168,176.725666,-186.86272,1938.382661,
+ -0.935939,0,-0.352162,166.478463,-280.29408,1972.163164,
+ -0.910825,0,-0.412792,166.478463,-186.86272,1972.163164,
+ -0.098017,0,0.995185,0.112465,-280.29408,1390.81149,
+ -0.162803,0,0.986659,35.238106,-186.86272,1394.271064,
+ -0.098017,0,0.995185,0.112465,-186.86272,1390.81149,
+ -0.162803,0,0.986659,35.238106,-186.86272,1394.271064,
+ -0.098017,0,0.995185,0.112465,-280.29408,1390.81149,
+ -0.227168,0,0.973856,35.238106,-280.29408,1394.271064,
+ -0.471397,0,0.881921,69.327289,-280.29408,1737.048483,
+ -0.527988,0,0.849252,100.155807,-186.86272,1753.526669,
+ -0.471397,0,0.881921,69.327289,-186.86272,1737.048483,
+ -0.527988,0,0.849252,100.155807,-186.86272,1753.526669,
+ -0.471397,0,0.881921,69.327289,-280.29408,1737.048483,
+ -0.582554,0,0.812792,100.155807,-280.29408,1753.526669,
+ -0.528184,0,-0.84913,100.141826,-280.29408,1720.5641,
+ -0.471701,0,-0.881759,69.327289,-186.86272,1737.048483,
+ -0.582647,0,-0.812725,100.141826,-186.86272,1720.5641,
+ -0.471701,0,-0.881759,69.327289,-186.86272,1737.048483,
+ -0.528184,0,-0.84913,100.141826,-280.29408,1720.5641,
+ -0.471701,0,-0.881759,69.327289,-280.29408,1737.048483,
+ -0.999462,0,0.032813,180.185724,-280.29408,1903.252111,
+ -0.986659,0,0.162803,176.725666,-186.86272,1868.121561,
+ -0.973856,0,0.227168,176.725666,-280.29408,1868.121561,
+ -0.986659,0,0.162803,176.725666,-186.86272,1868.121561,
+ -0.999462,0,0.032813,180.185724,-280.29408,1903.252111,
+ -0.999462,0,-0.032813,180.185724,-186.86272,1903.252111,
+ -0.973856,0,0.227168,176.725666,-280.29408,1868.121561,
+ -0.935939,0,0.352162,166.478463,-186.86272,1834.341059,
+ -0.910825,0,0.412792,166.478463,-280.29408,1834.341059,
+ -0.935939,0,0.352162,166.478463,-186.86272,1834.341059,
+ -0.973856,0,0.227168,176.725666,-280.29408,1868.121561,
+ -0.986659,0,0.162803,176.725666,-186.86272,1868.121561,
+ -0.910825,0,0.412792,166.478463,-280.29408,1834.341059,
+ -0.849252,0,0.527988,149.837908,-186.86272,1803.208769,
+ -0.812792,0,0.582554,149.837908,-280.29408,1803.208769,
+ -0.849252,0,0.527988,149.837908,-186.86272,1803.208769,
+ -0.910825,0,0.412792,166.478463,-280.29408,1834.341059,
+ -0.935939,0,0.352162,166.478463,-186.86272,1834.341059,
+ -0.748179,0.326101,-0.577828,448.282012,-654.795099,180.782109,
+ -0.832687,0.204213,-0.514714,450.471112,-629.324619,189.746946,
+ -0.832687,0.272446,-0.482085,450.47112,-653.402151,178.303588,
+ -0.832687,0.204213,-0.514714,450.471112,-629.324619,189.746946,
+ -0.748179,0.326101,-0.577828,448.282012,-654.795099,180.782109,
+ -0.748179,0.244321,-0.616875,448.282005,-630.366836,192.392159,
+ 0.256672,-0.961442,0.098738,649.884086,-759.522868,28.792076,
+ 0.127347,-0.963706,0.234635,624.955322,-759.578731,57.246228,
+ 0.127347,-0.98669,0.101126,624.955308,-764.385936,29.28956,
+ 0.127347,-0.963706,0.234635,624.955322,-759.578731,57.246228,
+ 0.256672,-0.961442,0.098738,649.884086,-759.522868,28.792076,
+ 0.256673,-0.939019,0.228829,649.8841,-754.828812,56.090715,
+ -0.747451,0.007439,-0.664276,448.281963,-549.007501,206.120647,
+ -0.819027,0,-0.573755,450.471071,-186.86272,203.284158,
+ -0.832126,0.009639,-0.554503,450.471071,-548.95985,203.284158,
+ -0.819027,0,-0.573755,450.471071,-186.86272,203.284158,
+ -0.747451,0.007439,-0.664276,448.281963,-549.007501,206.120647,
+ -0.747409,0,-0.664364,448.281963,-186.86272,206.120647,
+ -0.493603,0.014422,-0.869568,684.332852,-548.325029,165.499615,
+ -0.393115,0,-0.919489,665.021343,-186.86272,174.800973,
+ -0.512963,0,-0.858411,684.332852,-186.86272,165.499615,
+ -0.393115,0,-0.919489,665.021343,-186.86272,174.800973,
+ -0.493603,0.014422,-0.869568,684.332852,-548.325029,165.499615,
+ -0.372406,0.015448,-0.927941,665.021343,-548.48129,174.800973,
+ 0.030866,-0.994332,0.101738,599.602117,-765.945157,29.449075,
+ 0,-0.976801,0.214147,473.717752,-761.101674,57.616782,
+ 0,-0.996871,0.079045,473.717738,-765.945156,29.449145,
+ 0,-0.976801,0.214147,473.717752,-761.101674,57.616782,
+ 0.030866,-0.994332,0.101738,599.602117,-765.945157,29.449075,
+ 0.030867,-0.971194,0.236282,599.602131,-761.101673,57.616723,
+ -0.707841,0.243878,-0.662936,718.363098,-605.920401,130.345733,
+ -0.796291,0.144172,-0.587481,732.466052,-584.996349,120.045264,
+ -0.796291,0.222882,-0.562356,732.466058,-599.989405,115.292483,
+ -0.796291,0.144172,-0.587481,732.466052,-584.996349,120.045264,
+ -0.707841,0.243878,-0.662936,718.363098,-605.920401,130.345733,
+ -0.707841,0.151267,-0.689985,718.363091,-588.820775,135.766294,
+ -1,0,0,46.868397,-280.29408,2499.208064,
+ -1,0,0,46.868397,-186.86272,2125.502553,
+ -1,0,0,46.868397,-280.29408,2125.502553,
+ -1,0,0,46.868397,-186.86272,2125.502553,
+ -1,0,0,46.868397,-280.29408,2499.208064,
+ -1,0,0,46.868397,-186.86272,2499.208064,
+ 0.401003,-0.015387,0.915947,673.957328,-548.951312,202.77988,
+ 0.499663,-0.087405,0.861799,696.75877,-576.445897,190.654684,
+ 0.517753,-0.01437,0.85541,696.758754,-548.76324,191.585041,
+ 0.499663,-0.087405,0.861799,696.75877,-576.445897,190.654684,
+ 0.401003,-0.015387,0.915947,673.957328,-548.951312,202.77988,
+ 0.381503,-0.093498,0.919627,673.957345,-577.587813,201.817466,
+ -0.285905,0.578577,-0.763876,436.335626,-682.017175,172.023802,
+ -0.150375,0.484157,-0.861963,432.838949,-658.912362,188.108094,
+ -0.285905,0.46909,-0.835591,436.335621,-658.528453,187.424994,
+ -0.150375,0.484157,-0.861963,432.838949,-658.912362,188.108094,
+ -0.285905,0.578577,-0.763876,436.335626,-682.017175,172.023802,
+ -0.150375,0.597097,-0.787948,432.838954,-682.490586,172.648217,
+ 0.339245,-0.940167,0.031597,458.22221,-789.952733,23.357838,
+ 0.229024,-0.96833,0.09942,455.006069,-790.65817,31.977188,
+ 0.20592,-0.978017,0.032869,455.006064,-790.947849,23.357838,
+ 0.229024,-0.96833,0.09942,455.006069,-790.65817,31.977188,
+ 0.339245,-0.940167,0.031597,458.22221,-789.952733,23.357838,
+ 0.361665,-0.92741,0.095445,458.222215,-789.666464,31.875739,
+ -0,-0,1,764.9959,-186.86272,23.357838,
+ -0,-0,1,847.545902,56.185652,23.357838,
+ -0,-0,1,806.270901,56.185652,23.357838,
+ -0,-0,1,847.545902,56.185652,23.357838,
+ -0,-0,1,764.9959,-186.86272,23.357838,
+ -0,-0,1,793.5709,-186.86272,23.357838,
+ -0,-0,1,793.5709,-186.86272,23.357838,
+ -0,-0,1,847.545902,-563.749227,23.357838,
+ -0,-0,1,847.545902,56.185652,23.357838,
+ -0,-0,1,847.545902,-563.749227,23.357838,
+ -0,-0,1,793.5709,-186.86272,23.357838,
+ -0,-0,1,793.5709,-545.937124,23.357838,
+ -0,-0,1,847.545902,-563.749227,23.357838,
+ -0,-0,1,793.5709,-545.937124,23.357838,
+ -0,-0,1,793.543158,-559.332109,23.357838,
+ -0,-0,1,847.545902,-563.749227,23.357838,
+ -0,-0,1,793.543158,-559.332109,23.357838,
+ -0,-0,1,793.520758,-561.475389,23.357838,
+ -0,-0,1,847.545902,-563.749227,23.357838,
+ -0,-0,1,793.520758,-561.475389,23.357838,
+ -0,-0,1,793.478048,-563.767069,23.357838,
+ -0,-0,1,847.545902,-563.749227,23.357838,
+ -0,-0,1,793.478048,-563.767069,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,793.478048,-563.767069,23.357838,
+ -0,-0,1,793.410423,-566.321374,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,793.410423,-566.321374,23.357838,
+ -0,-0,1,793.309566,-569.30368,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,793.309566,-569.30368,23.357838,
+ -0,-0,1,793.160542,-572.980425,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,793.160542,-572.980425,23.357838,
+ -0,-0,1,792.935095,-577.829952,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,792.935095,-577.829952,23.357838,
+ -0,-0,1,792.574093,-584.829111,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,792.574093,-584.829111,23.357838,
+ -0,-0,1,792.007216,-595.005501,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,792.007216,-595.005501,23.357838,
+ -0,-0,1,791.767078,-596.364536,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,-0,1,791.767078,-596.364536,23.357838,
+ -0,0,1,787.308111,-620.274132,23.357838,
+ -0,-0,1,843.130723,-608.452917,23.357838,
+ -0,0,1,787.308111,-620.274132,23.357838,
+ -0,0,1,838.782877,-630.311015,23.357838,
+ -0,0,1,838.782877,-630.311015,23.357838,
+ -0,0,1,787.308111,-620.274132,23.357838,
+ -0,0,1,787.130183,-621.196954,23.357838,
+ -0,0,1,838.782877,-630.311015,23.357838,
+ -0,0,1,787.130183,-621.196954,23.357838,
+ -0,0,1,779.024156,-645.623514,23.357838,
+ -0,0,1,838.782877,-630.311015,23.357838,
+ -0,0,1,779.024156,-645.623514,23.357838,
+ -0,0,1,827.969621,-662.165838,23.357838,
+ -0,0,1,827.969621,-662.165838,23.357838,
+ -0,0,1,779.024156,-645.623514,23.357838,
+ -0,0,1,767.829317,-668.759577,23.357838,
+ -0,0,1,827.969621,-662.165838,23.357838,
+ -0,0,1,767.829317,-668.759577,23.357838,
+ -0,0,1,813.090986,-692.336727,23.357838,
+ -0,0,1,813.090986,-692.336727,23.357838,
+ -0,0,1,767.829317,-668.759577,23.357838,
+ -0,0,1,753.739265,-690.205036,23.357838,
+ -0,0,1,813.090986,-692.336727,23.357838,
+ -0,0,1,753.739265,-690.205036,23.357838,
+ -0,0,1,739.751559,-706.400475,23.357838,
+ -0,0,1,813.090986,-692.336727,23.357838,
+ -0,0,1,739.751559,-706.400475,23.357838,
+ -0,0,1,794.401548,-720.307447,23.357838,
+ -0,0,1,794.401548,-720.307447,23.357838,
+ -0,0,1,739.751559,-706.400475,23.357838,
+ -0,0,1,736.997667,-709.544681,23.357838,
+ -0,0,1,794.401548,-720.307447,23.357838,
+ -0,0,1,736.997667,-709.544681,23.357838,
+ -0,0,1,717.894045,-726.295731,23.357838,
+ -0,0,1,794.401548,-720.307447,23.357838,
+ -0,0,1,717.894045,-726.295731,23.357838,
+ -0,0,1,772.221089,-745.599413,23.357838,
+ -0,0,1,772.221089,-745.599413,23.357838,
+ -0,0,1,717.894045,-726.295731,23.357838,
+ -0,0,1,696.758768,-740.393738,23.357838,
+ -0,0,1,772.221089,-745.599413,23.357838,
+ -0,0,1,696.758768,-740.393738,23.357838,
+ -0,0,1,673.957342,-751.594898,23.357838,
+ -0,0,1,772.221089,-745.599413,23.357838,
+ -0,0,1,673.957342,-751.594898,23.357838,
+ -0,0,1,746.929123,-767.779872,23.357838,
+ -0,0,1,746.929123,-767.779872,23.357838,
+ -0,0,1,673.957342,-751.594898,23.357838,
+ -0,0,1,649.884083,-759.705502,23.357838,
+ -0,0,1,746.929123,-767.779872,23.357838,
+ -0,0,1,649.884083,-759.705502,23.357838,
+ -0,0,1,624.955304,-764.585289,23.357838,
+ -0,0,1,746.929123,-767.779872,23.357838,
+ -0,0,1,624.955304,-764.585289,23.357838,
+ -0,0,1,599.602113,-766.149871,23.357838,
+ -0,0,1,746.929123,-767.779872,23.357838,
+ -0,0,1,599.602113,-766.149871,23.357838,
+ -0,0,1,473.717734,-766.149872,23.357838,
+ -0,0,1,746.929123,-767.779872,23.357838,
+ -0,0,1,473.717734,-766.149872,23.357838,
+ -0,0,1,473.642035,-769.517334,23.357838,
+ -0,0,1,746.929123,-767.779872,23.357838,
+ -0,0,1,473.642035,-769.517334,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,0,1,473.642035,-769.517334,23.357838,
+ -0,-0,1,473.101718,-772.841978,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,-0,1,473.101718,-772.841978,23.357838,
+ -0,-0,1,472.107164,-776.05994,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,-0,1,472.107164,-776.05994,23.357838,
+ -0,0,1,470.677477,-779.109402,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,0,1,470.677477,-779.109402,23.357838,
+ -0,0,1,468.840122,-781.931785,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,0,1,468.840122,-781.931785,23.357838,
+ -0,0,1,466.630394,-784.472872,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,0,1,466.630394,-784.472872,23.357838,
+ -0,0,1,464.090742,-786.683847,23.357838,
+ -0,0,1,718.958402,-786.46931,23.357838,
+ -0,0,1,464.090742,-786.683847,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ -0,0,1,464.090742,-786.683847,23.357838,
+ -0,0,1,461.269951,-788.52224,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ -0,0,1,461.269951,-788.52224,23.357838,
+ -0,0,1,458.22221,-789.952733,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ -0,0,1,458.22221,-789.952733,23.357838,
+ -0,0,1,455.006064,-790.947849,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ -0,0,1,455.006064,-790.947849,23.357838,
+ -0,0,1,451.683295,-791.488471,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ -0,0,1,451.683295,-791.488471,23.357838,
+ -0,0,1,448.317734,-791.564213,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ -0,0,1,448.317734,-791.564213,23.357838,
+ 0,0,1,0.00089,-791.564218,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ 0,0,1,0.00089,-791.564218,23.357838,
+ 0,0,1,0.000468,-820.924227,23.357838,
+ -0,0,1,688.787514,-801.347945,23.357838,
+ 0,0,1,0.000468,-820.924227,23.357838,
+ 0,0,1,656.93269,-812.161201,23.357838,
+ 0,0,1,656.93269,-812.161201,23.357838,
+ 0,0,1,0.000468,-820.924227,23.357838,
+ 0,0,1,623.938976,-818.724059,23.357838,
+ 0,0,1,623.938976,-818.724059,23.357838,
+ 0,0,1,0.000468,-820.924227,23.357838,
+ 0,0,1,590.370902,-820.924227,23.357838,
+ 0,-0.509694,0.860356,0.000057,-672.771767,212.768417,
+ 0.011271,-0.604116,0.796817,448.317783,-699.580941,195.189934,
+ 0.011271,-0.489901,0.871705,448.317778,-672.771628,212.768386,
+ 0.011271,-0.604116,0.796817,448.317783,-699.580941,195.189934,
+ 0,-0.509694,0.860356,0.000057,-672.771767,212.768417,
+ 0,-0.622177,0.782877,0.000063,-699.581047,195.189986,
+ -0.649152,0.262621,-0.713885,445.721732,-631.287828,194.729696,
+ -0.741547,0.152765,-0.653277,448.281994,-604.584377,200.565168,
+ -0.748179,0.244321,-0.616875,448.282005,-630.366836,192.392159,
+ -0.741547,0.152765,-0.653277,448.281994,-604.584377,200.565168,
+ -0.649152,0.262621,-0.713885,445.721732,-631.287828,194.729696,
+ -0.638578,0.17117,-0.75028,445.721721,-605.178251,203.006401,
+ -0.415875,0.548909,-0.725084,439.690621,-681.255534,171.01922,
+ -0.285905,0.46909,-0.835591,436.335621,-658.528453,187.424994,
+ -0.415875,0.444984,-0.793119,439.690616,-657.910808,186.325996,
+ -0.285905,0.46909,-0.835591,436.335621,-658.528453,187.424994,
+ -0.415875,0.548909,-0.725084,439.690621,-681.255534,171.01922,
+ -0.285905,0.578577,-0.763876,436.335626,-682.017175,172.023802,
+ 0.973657,-0.212704,0.08215,473.101749,-758.702385,87.31918,
+ 0.932875,-0.350339,0.083707,472.107183,-770.747999,59.963422,
+ 0.973657,-0.221914,0.0524,473.101737,-767.615679,59.201429,
+ 0.932875,-0.350339,0.083707,472.107183,-770.747999,59.963422,
+ 0.973657,-0.212704,0.08215,473.101749,-758.702385,87.31918,
+ 0.932875,-0.335664,0.130666,472.107195,-761.701654,88.500895,
+ -0.649152,0.525457,-0.549997,445.721747,-699.576473,149.953886,
+ -0.748179,0.401798,-0.528002,448.282017,-677.413444,165.951609,
+ -0.748179,0.469999,-0.468325,448.282019,-697.799917,148.177329,
+ -0.748179,0.401798,-0.528002,448.282017,-677.413444,165.951609,
+ -0.649152,0.525457,-0.549997,445.721747,-699.576473,149.953886,
+ -0.649152,0.44561,-0.616469,445.721745,-678.931346,167.953679,
+ 0.995804,-0.065815,0.063588,473.64208,-708.127668,158.505081,
+ 0.973657,-0.182625,0.136528,473.101763,-729.866936,138.627118,
+ 0.995804,-0.073866,0.054027,473.642079,-727.212939,136.614949,
+ 0.973657,-0.182625,0.136528,473.101763,-729.866936,138.627118,
+ 0.995804,-0.065815,0.063588,473.64208,-708.127668,158.505081,
+ 0.973657,-0.162317,0.16014,473.101765,-710.482719,160.860131,
+ -0.9698,0.148537,-0.193454,760.201828,-592.476195,53.921748,
+ -0.993727,0.056116,-0.096737,764.031424,-575.55911,39.794854,
+ -0.993727,0.068775,-0.088188,764.031425,-579.704781,37.076602,
+ -0.993727,0.056116,-0.096737,764.031424,-575.55911,39.794854,
+ -0.9698,0.148537,-0.193454,760.201828,-592.476195,53.921748,
+ -0.9698,0.12079,-0.21189,760.201826,-585.915972,58.223185,
+ -0.870211,0.349319,-0.347431,744.275059,-626.524536,76.901948,
+ -0.928388,0.225646,-0.295263,753.576412,-604.820821,70.203974,
+ -0.928388,0.263776,-0.261761,753.576413,-612.83728,63.214693,
+ -0.928388,0.225646,-0.295263,753.576412,-604.820821,70.203974,
+ -0.870211,0.349319,-0.347431,744.275059,-626.524536,76.901948,
+ -0.870211,0.298718,-0.391791,744.275058,-616.515297,85.628667,
+ -0.869747,0.008617,-0.493422,744.275028,-547.318028,105.557439,
+ -0.919489,0,-0.393115,753.576386,-186.86272,86.24593,
+ -0.928106,0.006604,-0.372257,753.576386,-546.993607,86.24593,
+ -0.919489,0,-0.393115,753.576386,-186.86272,86.24593,
+ -0.869747,0.008617,-0.493422,744.275028,-547.318028,105.557439,
+ -0.858411,0,-0.512963,744.275028,-186.86272,105.557439,
+ -0.373111,0.218748,-0.901631,665.02137,-597.163793,170.061811,
+ -0.244971,0.09829,-0.964535,644.636231,-575.409716,180.525125,
+ -0.373111,0.093846,-0.923028,665.021359,-574.733894,173.918677,
+ -0.244971,0.09829,-0.964535,644.636231,-575.409716,180.525125,
+ -0.373111,0.218748,-0.901631,665.02137,-597.163793,170.061811,
+ -0.244971,0.228806,-0.942145,644.636243,-598.733545,176.514546,
+ 0.991932,-0.031409,0.122818,792.007213,-567.289597,47.258281,
+ 0.966794,-0.095028,0.237232,787.130187,-581.689044,68.845,
+ 0.991932,-0.047852,0.117393,792.007216,-572.529419,45.597264,
+ 0.966794,-0.095028,0.237232,787.130187,-581.689044,68.845,
+ 0.991932,-0.031409,0.122818,792.007213,-567.289597,47.258281,
+ 0.966794,-0.061815,0.247969,787.130183,-573.195905,71.537315,
+ 0.091928,-0.101189,0.990611,451.683301,-581.654891,241.574352,
+ 0.229025,-0.229739,0.945922,455.006085,-613.111378,235.617099,
+ 0.229024,-0.098699,0.968404,455.006069,-581.599776,241.035583,
+ 0.229025,-0.229739,0.945922,455.006085,-613.111378,235.617099,
+ 0.091928,-0.101189,0.990611,451.683301,-581.654891,241.574352,
+ 0.091928,-0.235232,0.967582,451.683317,-613.239395,236.143333,
+ 0.01127,-0.101755,0.994746,448.317739,-581.662615,241.649835,
+ 0.091928,-0.235232,0.967582,451.683317,-613.239395,236.143333,
+ 0.091928,-0.101189,0.990611,451.683301,-581.654891,241.574352,
+ 0.091928,-0.235232,0.967582,451.683317,-613.239395,236.143333,
+ 0.01127,-0.101755,0.994746,448.317739,-581.662615,241.649835,
+ 0.01127,-0.236356,0.971601,448.317755,-613.257332,236.21706,
+ -0.494423,0.204724,-0.844769,684.332878,-594.960039,161.002883,
+ -0.373111,0.093846,-0.923028,665.021359,-574.733894,173.918677,
+ -0.494423,0.087701,-0.864786,684.332867,-573.78512,164.643953,
+ -0.373111,0.093846,-0.923028,665.021359,-574.733894,173.918677,
+ -0.494423,0.204724,-0.844769,684.332878,-594.960039,161.002883,
+ -0.373111,0.218748,-0.901631,665.02137,-597.163793,170.061811,
+ 0,-0.124431,0.992228,0.000019,-581.662862,241.649831,
+ 0.01127,-0.236356,0.971601,448.317755,-613.257332,236.21706,
+ 0.01127,-0.101755,0.994746,448.317739,-581.662615,241.649835,
+ 0.01127,-0.236356,0.971601,448.317755,-613.257332,236.21706,
+ 0,-0.124431,0.992228,0.000019,-581.662862,241.649831,
+ 0,-0.258478,0.966017,0.000035,-613.257542,236.217062,
+ 0.995804,-0.023158,0.088537,473.642053,-608.036762,214.756927,
+ 0.973657,-0.085015,0.211575,473.101749,-636.941768,209.079797,
+ 0.995804,-0.035007,0.084556,473.642065,-635.720877,205.981096,
+ 0.973657,-0.085015,0.211575,473.101749,-636.941768,209.079797,
+ 0.995804,-0.023158,0.088537,473.642053,-608.036762,214.756927,
+ 0.973657,-0.055392,0.221186,473.101737,-608.824017,217.993091,
+ 0.973657,-0.138981,0.180764,473.101763,-688.249706,180.244348,
+ 0.932875,-0.255741,0.253655,472.107211,-712.762199,163.139612,
+ 0.973657,-0.162317,0.16014,473.101765,-710.482719,160.860131,
+ 0.932875,-0.255741,0.253655,472.107211,-712.762199,163.139612,
+ 0.973657,-0.138981,0.180764,473.101763,-688.249706,180.244348,
+ 0.932875,-0.218791,0.286137,472.107209,-690.197308,182.813182,
+ 0.932875,-0.218791,0.286137,472.107209,-690.197308,182.813182,
+ 0.874212,-0.344308,0.342352,470.677525,-714.922322,165.299734,
+ 0.932875,-0.255741,0.253655,472.107211,-712.762199,163.139612,
+ 0.874212,-0.344308,0.342352,470.677525,-714.922322,165.299734,
+ 0.932875,-0.218791,0.286137,472.107209,-690.197308,182.813182,
+ 0.874212,-0.294445,0.386077,470.677524,-692.04293,185.247507,
+ -0.952384,0.113168,-0.283121,453.575559,-626.95854,183.741681,
+ -0.985345,0.041831,-0.165366,454.431253,-601.562294,188.142314,
+ -0.985345,0.063975,-0.158123,454.431263,-625.680129,180.496989,
+ -0.985345,0.041831,-0.165366,454.431253,-601.562294,188.142314,
+ -0.952384,0.113168,-0.283121,453.575559,-626.95854,183.741681,
+ -0.952384,0.073533,-0.295901,453.575549,-602.386639,191.530944,
+ 0.01127,-0.236356,0.971601,448.317755,-613.257332,236.21706,
+ 0.091928,-0.364886,0.926503,451.68333,-643.789223,226.459074,
+ 0.091928,-0.235232,0.967582,451.683317,-613.239395,236.143333,
+ 0.091928,-0.364886,0.926503,451.68333,-643.789223,226.459074,
+ 0.01127,-0.236356,0.971601,448.317755,-613.257332,236.21706,
+ 0.011271,-0.366548,0.930331,448.317768,-643.817038,226.529669,
+ 0.609101,-0.186578,0.770833,717.894058,-597.802054,172.685609,
+ 0.707841,-0.243878,0.662936,736.997686,-613.697356,150.084182,
+ 0.707841,-0.151267,0.689985,736.997677,-593.835505,156.380365,
+ 0.707841,-0.243878,0.662936,736.997686,-613.697356,150.084182,
+ 0.609101,-0.186578,0.770833,717.894058,-597.802054,172.685609,
+ 0.609101,-0.289877,0.738219,717.894067,-619.848758,165.69683,
+ -0.040706,0.236142,-0.970866,429.267752,-606.639691,209.013907,
+ -0,0.124431,-0.992228,0.016265,-578.81381,213.79866,
+ -0.040706,0.101643,-0.993988,429.267738,-578.813573,213.798664,
+ -0,0.124431,-0.992228,0.016265,-578.81381,213.79866,
+ -0.040706,0.236142,-0.970866,429.267752,-606.639691,209.013907,
+ -0,0.258478,-0.966017,0.016279,-606.639892,209.013909,
+ -0.606705,0.186995,-0.77262,702.221343,-592.162158,149.501677,
+ -0.494423,0.087701,-0.864786,684.332867,-573.78512,164.643953,
+ -0.606705,0.079969,-0.790894,702.221333,-572.580561,152.868772,
+ -0.494423,0.087701,-0.864786,684.332867,-573.78512,164.643953,
+ -0.606705,0.186995,-0.77262,702.221343,-592.162158,149.501677,
+ -0.494423,0.204724,-0.844769,684.332878,-594.960039,161.002883,
+ -0.150374,0.233455,-0.96067,432.83893,-606.570796,208.730707,
+ -0.040706,0.101643,-0.993988,429.267738,-578.813573,213.798664,
+ -0.150374,0.100371,-0.983521,432.838915,-578.78391,213.508718,
+ -0.040706,0.101643,-0.993988,429.267738,-578.813573,213.798664,
+ -0.150374,0.233455,-0.96067,432.83893,-606.570796,208.730707,
+ -0.040706,0.236142,-0.970866,429.267752,-606.639691,209.013907,
+ -0.285905,0.226068,-0.93121,436.335601,-606.385575,207.969324,
+ -0.150374,0.100371,-0.983521,432.838915,-578.78391,213.508718,
+ -0.285905,0.097067,-0.953329,436.335587,-578.704167,212.729198,
+ -0.150374,0.100371,-0.983521,432.838915,-578.78391,213.508718,
+ -0.285905,0.226068,-0.93121,436.335601,-606.385575,207.969324,
+ -0.150374,0.233455,-0.96067,432.83893,-606.570796,208.730707,
+ -0.707841,0.151267,-0.689985,718.363091,-588.820775,135.766294,
+ -0.606705,0.079969,-0.790894,702.221333,-572.580561,152.868772,
+ -0.707841,0.055835,-0.704162,718.363082,-571.142012,138.806193,
+ -0.606705,0.079969,-0.790894,702.221333,-572.580561,152.868772,
+ -0.707841,0.151267,-0.689985,718.363091,-588.820775,135.766294,
+ -0.606705,0.186995,-0.77262,702.221343,-592.162158,149.501677,
+ -0.993727,0.098232,-0.053457,764.031424,-589.417442,25.936523,
+ -0.998991,0.036391,-0.026305,764.531578,-577.829947,23.357838,
+ -0.998992,0.039135,-0.021994,764.267941,-584.829097,23.357838,
+ -0.998991,0.036391,-0.026305,764.531578,-577.829947,23.357838,
+ -0.993727,0.098232,-0.053457,764.031424,-589.417442,25.936523,
+ -0.993727,0.090031,-0.066344,764.031425,-586.699189,30.082194,
+ 0.991932,-0.111235,0.060808,792.007217,-592.860317,27.871437,
+ 0.988867,-0.134398,0.063875,792.007216,-595.005501,23.357838,
+ 0.998112,-0.05354,0.03009,792.574093,-584.829111,23.357838,
+ 0.361665,-0.812468,0.457269,458.222253,-760.983658,122.358117,
+ 0.229025,-0.775467,0.588387,455.006113,-744.32049,149.585311,
+ 0.229025,-0.848411,0.477229,455.006107,-761.852699,122.846525,
+ 0.229025,-0.775467,0.588387,455.006113,-744.32049,149.585311,
+ 0.361665,-0.812468,0.457269,458.222253,-760.983658,122.358117,
+ 0.361665,-0.742579,0.563715,458.222259,-743.526109,148.983038,
+ 0.229025,-0.848411,0.477229,455.006107,-761.852699,122.846525,
+ 0.091928,-0.793404,0.601714,451.683345,-744.752058,149.912511,
+ 0.091928,-0.867996,0.487987,451.683339,-762.324827,123.111865,
+ 0.091928,-0.793404,0.601714,451.683345,-744.752058,149.912511,
+ 0.229025,-0.848411,0.477229,455.006107,-761.852699,122.846525,
+ 0.229025,-0.775467,0.588387,455.006113,-744.32049,149.585311,
+ 0.091928,-0.867996,0.487987,451.683339,-762.324827,123.111865,
+ 0.011271,-0.796813,0.60412,448.317783,-744.812521,149.958353,
+ 0.011271,-0.871702,0.489906,448.317778,-762.390973,123.149041,
+ 0.011271,-0.796813,0.60412,448.317783,-744.812521,149.958353,
+ 0.091928,-0.867996,0.487987,451.683339,-762.324827,123.111865,
+ 0.091928,-0.793404,0.601714,451.683345,-744.752058,149.912511,
+ 0.011271,-0.871702,0.489906,448.317778,-762.390973,123.149041,
+ 0,-0.81044,0.585821,0.000063,-744.812573,149.958459,
+ 0,-0.882708,0.469921,0.000057,-762.391004,123.149179,
+ 0,-0.81044,0.585821,0.000063,-744.812573,149.958459,
+ 0.011271,-0.871702,0.489906,448.317778,-762.390973,123.149041,
+ 0.011271,-0.796813,0.60412,448.317783,-744.812521,149.958353,
+ 0.506559,-0.014482,0.862083,461.269937,-549.571376,239.686382,
+ 0.603443,-0.080198,0.793363,464.090747,-581.165077,236.78619,
+ 0.620913,-0.013167,0.783769,464.090728,-549.540509,237.849027,
+ 0.603443,-0.080198,0.793363,464.090747,-581.165077,236.78619,
+ 0.506559,-0.014482,0.862083,461.269937,-549.571376,239.686382,
+ 0.487278,-0.088099,0.868791,461.269956,-581.352493,238.618284,
+ -0.022557,0.706919,-0.706935,602.133302,-683.695423,134.072836,
+ -0,0.622177,-0.782877,454.66777,-665.3625,150.056742,
+ -0.022557,0.603993,-0.79667,602.133301,-665.362465,150.056725,
+ -0,0.622177,-0.782877,454.66777,-665.3625,150.056742,
+ -0.022557,0.706919,-0.706935,602.133302,-683.695423,134.072836,
+ -0,0.723053,-0.690793,454.667771,-683.695448,134.072861,
+ -0.112343,0.702509,-0.702752,623.546368,-683.011825,133.389238,
+ -0.022557,0.603993,-0.79667,602.133301,-665.362465,150.056725,
+ -0.112343,0.600194,-0.791925,623.546367,-664.778393,149.286355,
+ -0.022557,0.603993,-0.79667,602.133301,-665.362465,150.056725,
+ -0.112343,0.702509,-0.702752,623.546368,-683.011825,133.389238,
+ -0.022557,0.706919,-0.706935,602.133302,-683.695423,134.072836,
+ -0.244971,0.685296,-0.685827,644.636265,-680.297547,130.67496,
+ -0.112343,0.600194,-0.791925,623.546367,-664.778393,149.286355,
+ -0.244971,0.585448,-0.772813,644.636264,-662.459295,146.227532,
+ -0.112343,0.600194,-0.791925,623.546367,-664.778393,149.286355,
+ -0.244971,0.685296,-0.685827,644.636265,-680.297547,130.67496,
+ -0.112343,0.702509,-0.702752,623.546368,-683.011825,133.389238,
+ -0.832687,0.13217,-0.53774,450.471101,-603.912334,197.80261,
+ -0.901181,0.045526,-0.431045,452.246978,-577.321949,199.217285,
+ -0.901181,0.103838,-0.42082,452.246991,-603.175034,194.771794,
+ -0.901181,0.045526,-0.431045,452.246978,-577.321949,199.217285,
+ -0.832687,0.13217,-0.53774,450.471101,-603.912334,197.80261,
+ -0.832687,0.057661,-0.550734,450.471088,-577.639374,202.320298,
+ 0.995785,-0,0.091715,473.642021,-186.86272,220.6922,
+ 0.973547,-0.004216,0.228449,473.101704,-549.308105,224.014969,
+ 0.994417,-0.002312,0.105501,473.642021,-549.252285,220.6922,
+ 0.973547,-0.004216,0.228449,473.101704,-549.308105,224.014969,
+ 0.995785,-0,0.091715,473.642021,-186.86272,220.6922,
+ 0.967989,-0,0.250993,473.101704,-186.86272,224.014969,
+ 0.873731,0,0.48641,470.677463,-186.86272,230.278856,
+ 0.928983,-0.005506,0.370082,472.10715,-549.362134,227.231115,
+ 0.932593,0,0.360931,472.10715,-186.86272,227.231115,
+ 0.928983,-0.005506,0.370082,472.10715,-549.362134,227.231115,
+ 0.873731,0,0.48641,470.677463,-186.86272,230.278856,
+ 0.866918,-0.01021,0.498346,470.677463,-549.413334,230.278856,
+ 0.873731,0,0.48641,470.677463,-186.86272,230.278856,
+ 0.792107,-0.00894,0.610317,468.840108,-549.460722,233.099647,
+ 0.866918,-0.01021,0.498346,470.677463,-549.413334,230.278856,
+ 0.792107,-0.00894,0.610317,468.840108,-549.460722,233.099647,
+ 0.873731,0,0.48641,470.677463,-186.86272,230.278856,
+ 0.798084,0,0.602546,468.840108,-186.86272,233.099647,
+ 0.707107,0,0.707107,466.63038,-186.86272,235.639299,
+ 0.792107,-0.00894,0.610317,468.840108,-549.460722,233.099647,
+ 0.798084,0,0.602546,468.840108,-186.86272,233.099647,
+ 0.792107,-0.00894,0.610317,468.840108,-549.460722,233.099647,
+ 0.707107,0,0.707107,466.63038,-186.86272,235.639299,
+ 0.707157,-0.011876,0.706957,466.63038,-549.503387,235.639299,
+ -0.415875,0.332758,-0.846357,439.690608,-632.698039,198.308899,
+ -0.285905,0.226068,-0.93121,436.335601,-606.385575,207.969324,
+ -0.415875,0.214324,-0.883806,439.690597,-606.087584,206.744382,
+ -0.285905,0.226068,-0.93121,436.335601,-606.385575,207.969324,
+ -0.415875,0.332758,-0.846357,439.690608,-632.698039,198.308899,
+ -0.285905,0.350852,-0.891718,436.335613,-633.160168,199.481809,
+ -0.796291,0.222882,-0.562356,732.466058,-599.989405,115.292483,
+ -0.870211,0.117753,-0.4784,744.275047,-580.75808,102.623043,
+ -0.870211,0.181845,-0.457892,744.275052,-593.41661,98.610304,
+ -0.870211,0.117753,-0.4784,744.275047,-580.75808,102.623043,
+ -0.796291,0.222882,-0.562356,732.466058,-599.989405,115.292483,
+ -0.796291,0.144172,-0.587481,732.466052,-584.996349,120.045264,
+ 0.932875,-0.133411,0.334583,472.107195,-638.123482,212.079066,
+ 0.874212,-0.239089,0.422598,470.677518,-666.658744,201.891525,
+ 0.932875,-0.177759,0.313282,472.107204,-665.162054,199.228412,
+ 0.874212,-0.239089,0.422598,470.677518,-666.658744,201.891525,
+ 0.932875,-0.133411,0.334583,472.107195,-638.123482,212.079066,
+ 0.874212,-0.179273,0.451236,470.677509,-639.24332,214.921287,
+ 0,-0.387702,0.921785,0.000048,-643.817211,226.529683,
+ 0.011271,-0.489901,0.871705,448.317778,-672.771628,212.768386,
+ 0.011271,-0.366548,0.930331,448.317768,-643.817038,226.529669,
+ 0.011271,-0.489901,0.871705,448.317778,-672.771628,212.768386,
+ 0,-0.387702,0.921785,0.000048,-643.817211,226.529683,
+ 0,-0.509694,0.860356,0.000057,-672.771767,212.768417,
+ -0.285905,0.46909,-0.835591,436.335621,-658.528453,187.424994,
+ -0.150375,0.362184,-0.919897,432.838941,-633.447412,200.210852,
+ -0.285905,0.350852,-0.891718,436.335613,-633.160168,199.481809,
+ -0.150375,0.362184,-0.919897,432.838941,-633.447412,200.210852,
+ -0.285905,0.46909,-0.835591,436.335621,-658.528453,187.424994,
+ -0.150375,0.484157,-0.861963,432.838949,-658.912362,188.108094,
+ -0.415875,0.444984,-0.793119,439.690616,-657.910808,186.325996,
+ -0.285905,0.350852,-0.891718,436.335613,-633.160168,199.481809,
+ -0.415875,0.332758,-0.846357,439.690608,-632.698039,198.308899,
+ -0.285905,0.350852,-0.891718,436.335613,-633.160168,199.481809,
+ -0.415875,0.444984,-0.793119,439.690616,-657.910808,186.325996,
+ -0.285905,0.46909,-0.835591,436.335621,-658.528453,187.424994,
+ -0.537771,0.412318,-0.735388,442.839485,-657.07129,184.832214,
+ -0.415875,0.332758,-0.846357,439.690608,-632.698039,198.308899,
+ -0.537771,0.308263,-0.784714,442.839477,-632.069904,196.714653,
+ -0.415875,0.332758,-0.846357,439.690608,-632.698039,198.308899,
+ -0.537771,0.412318,-0.735388,442.839485,-657.07129,184.832214,
+ -0.415875,0.444984,-0.793119,439.690616,-657.910808,186.325996,
+ -0.649152,0.35745,-0.67144,445.72174,-656.026027,182.972343,
+ -0.537771,0.308263,-0.784714,442.839477,-632.069904,196.714653,
+ -0.649152,0.262621,-0.713885,445.721732,-631.287828,194.729696,
+ -0.537771,0.308263,-0.784714,442.839477,-632.069904,196.714653,
+ -0.649152,0.35745,-0.67144,445.72174,-656.026027,182.972343,
+ -0.537771,0.412318,-0.735388,442.839485,-657.07129,184.832214,
+ -0.952384,0.150692,-0.265059,453.575567,-650.239827,172.676755,
+ -0.985345,0.063975,-0.158123,454.431263,-625.680129,180.496989,
+ -0.985345,0.084925,-0.14793,454.431271,-648.531199,169.636534,
+ -0.985345,0.063975,-0.158123,454.431263,-625.680129,180.496989,
+ -0.952384,0.150692,-0.265059,453.575567,-650.239827,172.676755,
+ -0.952384,0.113168,-0.283121,453.575559,-626.95854,183.741681,
+ -0.90081,0.007643,-0.434147,452.246961,-548.907571,200.172234,
+ -0.94485,0,-0.327505,453.575519,-186.86272,196.844653,
+ -0.95219,0.005502,-0.305456,453.575519,-548.85167,196.844653,
+ -0.94485,0,-0.327505,453.575519,-186.86272,196.844653,
+ -0.90081,0.007643,-0.434147,452.246961,-548.907571,200.172234,
+ -0.890491,0,-0.455,452.246961,-186.86272,200.172234,
+ -0.95219,0.005502,-0.305456,453.575519,-548.85167,196.844653,
+ -0.981057,0,-0.193718,454.431224,-186.86272,193.365338,
+ -0.985283,0.003254,-0.170901,454.431224,-548.79322,193.365338,
+ -0.981057,0,-0.193718,454.431224,-186.86272,193.365338,
+ -0.95219,0.005502,-0.305456,453.575519,-548.85167,196.844653,
+ -0.94485,0,-0.327505,453.575519,-186.86272,196.844653,
+ -0.985283,0.003254,-0.170901,454.431224,-548.79322,193.365338,
+ -0.998419,0,-0.05621,454.797637,-186.86272,189.801127,
+ -0.999453,0.000944,-0.033066,454.797637,-548.733344,189.801127,
+ -0.998419,0,-0.05621,454.797637,-186.86272,189.801127,
+ -0.985283,0.003254,-0.170901,454.431224,-548.79322,193.365338,
+ -0.981057,0,-0.193718,454.431224,-186.86272,193.365338,
+ -0.999453,0.000944,-0.033066,454.797637,-548.733344,189.801127,
+ -0.999342,-0,0.036259,454.66772,-186.86272,186.220487,
+ -0.999343,-0.000812,0.036246,454.66772,-548.673192,186.220487,
+ -0.999342,-0,0.036259,454.66772,-186.86272,186.220487,
+ -0.999453,0.000944,-0.033066,454.797637,-548.733344,189.801127,
+ -0.998419,0,-0.05621,454.797637,-186.86272,189.801127,
+ -0,1,-0,56.126785,-233.5784,1315.222366,
+ -0,1,-0,18.722685,-233.5784,268.426375,
+ 0,1,-0,18.722685,-233.5784,1315.222366,
+ -0,1,-0,18.722685,-233.5784,268.426375,
+ -0,1,-0,56.126785,-233.5784,1315.222366,
+ -0,1,0,56.126785,-233.5784,268.426375,
+ 0,0,1,18.722685,-186.86272,268.426375,
+ 0,0,1,56.126785,-233.5784,268.426375,
+ 0,0,1,56.126785,-186.86272,268.426375,
+ 0,0,1,56.126785,-233.5784,268.426375,
+ 0,0,1,18.722685,-186.86272,268.426375,
+ 0,0,1,18.722685,-233.5784,268.426375,
+ 1,0,-0,18.722685,-186.86272,1315.222366,
+ 1,0,-0,18.722685,-233.5784,268.426375,
+ 1,0,0,18.722685,-186.86272,268.426375,
+ 1,0,-0,18.722685,-233.5784,268.426375,
+ 1,0,-0,18.722685,-186.86272,1315.222366,
+ 1,0,-0,18.722685,-233.5784,1315.222366,
+ 0,0,-1,56.126785,-233.5784,1315.222366,
+ 0,0,-1,18.722685,-186.86272,1315.222366,
+ 0,0,-1,56.126785,-186.86272,1315.222366,
+ 0,0,-1,18.722685,-186.86272,1315.222366,
+ 0,0,-1,56.126785,-233.5784,1315.222366,
+ 0,0,-1,18.722685,-233.5784,1315.222366,
+ -1,-0,0,56.126785,-233.5784,1315.222366,
+ -1,-0,0,56.126785,-186.86272,268.426375,
+ -1,-0,0,56.126785,-233.5784,268.426375,
+ -1,-0,0,56.126785,-186.86272,268.426375,
+ -1,-0,0,56.126785,-233.5784,1315.222366,
+ -1,-0,0,56.126785,-186.86272,1315.222366
+};
+static const struct gllist robot_leg_half_frame = { GL_N3F_V3F, GL_TRIANGLES, 5190, robot_leg_half_data, 0 };
+const struct gllist *robot_leg_half = &robot_leg_half_frame;
+
+static const float robot_rotator_half_data[] = {
+ 0.707107,0,-0.707106,123.957535,-140.14704,1438.610184,
+ 0.812792,0,-0.582553,145.758595,-327.00976,1465.174884,
+ 0.707107,0,-0.707106,123.957535,-327.00976,1438.610184,
+ 0.812792,0,-0.582553,145.758595,-327.00976,1465.174884,
+ 0.707107,0,-0.707106,123.957535,-140.14704,1438.610184,
+ 0.849252,0,-0.527988,145.758595,-140.14704,1465.174884,
+ -0.812792,-0,-0.582554,-145.758282,-327.00976,1465.174712,
+ -0.707106,-0,-0.707107,-123.957191,-140.14704,1438.610037,
+ -0.707106,-0,-0.707107,-123.957191,-327.00976,1438.610037,
+ -0.707106,-0,-0.707107,-123.957191,-140.14704,1438.610037,
+ -0.812792,-0,-0.582554,-145.758282,-327.00976,1465.174712,
+ -0.849251,0,-0.527989,-145.758282,-140.14704,1465.174712,
+ 0.227167,0,0.973856,34.199757,-140.14704,1734.501295,
+ 0.352162,0,0.935939,67.085244,-327.00976,1724.525612,
+ 0.412792,0,0.910825,67.085244,-140.14704,1724.525612,
+ 0.352162,0,0.935939,67.085244,-327.00976,1724.525612,
+ 0.227167,0,0.973856,34.199757,-140.14704,1734.501295,
+ 0.162802,0,0.986659,34.199757,-327.00976,1734.501295,
+ -0.227167,0,-0.973856,-34.199559,-327.00976,1390.633652,
+ -0.352162,0,-0.935939,-67.085047,-140.14704,1400.609334,
+ -0.162802,0,-0.986659,-34.199559,-140.14704,1390.633652,
+ -0.352162,0,-0.935939,-67.085047,-140.14704,1400.609334,
+ -0.227167,0,-0.973856,-34.199559,-327.00976,1390.633652,
+ -0.412792,-0,-0.910825,-67.085047,-327.00976,1400.609334,
+ 0.849252,0,-0.527988,145.758595,-140.14704,1465.174884,
+ 0.910825,0,-0.412792,161.958238,-327.00976,1495.482328,
+ 0.812792,0,-0.582553,145.758595,-327.00976,1465.174884,
+ 0.910825,0,-0.412792,161.958238,-327.00976,1495.482328,
+ 0.849252,0,-0.527988,145.758595,-140.14704,1465.174884,
+ 0.935939,0,-0.352162,161.958238,-140.14704,1495.482328,
+ 0.032812,0,0.999462,-0.000005,-140.14704,1737.869657,
+ 0.162802,0,0.986659,34.199757,-327.00976,1734.501295,
+ 0.227167,0,0.973856,34.199757,-140.14704,1734.501295,
+ 0.162802,0,0.986659,34.199757,-327.00976,1734.501295,
+ 0.032812,0,0.999462,-0.000005,-140.14704,1737.869657,
+ -0.032813,-0,0.999461,-0.000005,-327.00976,1737.869657,
+ 0.973856,0,0.227168,171.93388,-140.14704,1596.767334,
+ 0.935939,0,0.352163,161.958159,-327.00976,1629.65281,
+ 0.986659,0,0.162804,171.93388,-327.00976,1596.767334,
+ 0.935939,0,0.352163,161.958159,-327.00976,1629.65281,
+ 0.973856,0,0.227168,171.93388,-140.14704,1596.767334,
+ 0.910825,0,0.412793,161.958159,-140.14704,1629.65281,
+ -0.412792,-0,-0.910825,-67.085047,-327.00976,1400.609334,
+ -0.527988,-0,-0.849252,-97.39249,-140.14704,1416.808977,
+ -0.352162,0,-0.935939,-67.085047,-140.14704,1400.609334,
+ -0.527988,-0,-0.849252,-97.39249,-140.14704,1416.808977,
+ -0.412792,-0,-0.910825,-67.085047,-327.00976,1400.609334,
+ -0.582553,-0,-0.812792,-97.39249,-327.00976,1416.808977,
+ 0.999461,0,0.032813,175.302282,-140.14704,1562.567577,
+ 0.986659,0,0.162804,171.93388,-327.00976,1596.767334,
+ 0.999462,0,-0.032812,175.302282,-327.00976,1562.567577,
+ 0.986659,0,0.162804,171.93388,-327.00976,1596.767334,
+ 0.999461,0,0.032813,175.302282,-140.14704,1562.567577,
+ 0.973856,0,0.227168,171.93388,-140.14704,1596.767334,
+ -0.707107,-0,0.707106,-123.957337,-327.00976,1686.524763,
+ -0.812792,-0,0.582553,-145.758398,-140.14704,1659.960062,
+ -0.849252,-0,0.527988,-145.758398,-327.00976,1659.960062,
+ -0.812792,-0,0.582553,-145.758398,-140.14704,1659.960062,
+ -0.707107,-0,0.707106,-123.957337,-327.00976,1686.524763,
+ -0.707107,-0,0.707106,-123.957337,-140.14704,1686.524763,
+ 0.910825,0,0.412793,161.958159,-140.14704,1629.65281,
+ 0.849251,0,0.527989,145.75848,-327.00976,1659.960235,
+ 0.935939,0,0.352163,161.958159,-327.00976,1629.65281,
+ 0.849251,0,0.527989,145.75848,-327.00976,1659.960235,
+ 0.910825,0,0.412793,161.958159,-140.14704,1629.65281,
+ 0.812792,-0,0.582554,145.75848,-140.14704,1659.960235,
+ -0.582553,-0,-0.812792,-97.39249,-327.00976,1416.808977,
+ -0.707106,-0,-0.707107,-123.957191,-140.14704,1438.610037,
+ -0.527988,-0,-0.849252,-97.39249,-140.14704,1416.808977,
+ -0.707106,-0,-0.707107,-123.957191,-140.14704,1438.610037,
+ -0.582553,-0,-0.812792,-97.39249,-327.00976,1416.808977,
+ -0.707106,-0,-0.707107,-123.957191,-327.00976,1438.610037,
+ -0.935939,-0,0.352162,-161.95804,-327.00976,1629.652619,
+ -0.973856,-0,0.227167,-171.933723,-140.14704,1596.767131,
+ -0.986659,-0,0.162802,-171.933723,-327.00976,1596.767131,
+ -0.973856,-0,0.227167,-171.933723,-140.14704,1596.767131,
+ -0.935939,-0,0.352162,-161.95804,-327.00976,1629.652619,
+ -0.910825,-0,0.412792,-161.95804,-140.14704,1629.652619,
+ 0.412792,0,0.910825,67.085244,-140.14704,1724.525612,
+ 0.527988,0,0.849252,97.392688,-327.00976,1708.32597,
+ 0.582553,-0,0.812792,97.392688,-140.14704,1708.32597,
+ 0.527988,0,0.849252,97.392688,-327.00976,1708.32597,
+ 0.412792,0,0.910825,67.085244,-140.14704,1724.525612,
+ 0.352162,0,0.935939,67.085244,-327.00976,1724.525612,
+ -0.352163,-0,0.935939,-67.085238,-140.14704,1724.525533,
+ -0.227168,-0,0.973856,-34.199762,-327.00976,1734.501255,
+ -0.162804,-0,0.986659,-34.199762,-140.14704,1734.501255,
+ -0.227168,-0,0.973856,-34.199762,-327.00976,1734.501255,
+ -0.352163,-0,0.935939,-67.085238,-140.14704,1724.525533,
+ -0.412793,-0,0.910825,-67.085238,-327.00976,1724.525533,
+ 0.162804,0,-0.986659,34.19996,-327.00976,1390.633692,
+ 0.032813,0,-0.999461,0.000202,-140.14704,1387.26529,
+ 0.227168,0,-0.973856,34.19996,-140.14704,1390.633692,
+ 0.032813,0,-0.999461,0.000202,-140.14704,1387.26529,
+ 0.162804,0,-0.986659,34.19996,-327.00976,1390.633692,
+ -0.032812,0,-0.999462,0.000202,-327.00976,1387.26529,
+ -0.032812,0,-0.999462,0.000202,-327.00976,1387.26529,
+ -0.162802,0,-0.986659,-34.199559,-140.14704,1390.633652,
+ 0.032813,0,-0.999461,0.000202,-140.14704,1387.26529,
+ -0.162802,0,-0.986659,-34.199559,-140.14704,1390.633652,
+ -0.032812,0,-0.999462,0.000202,-327.00976,1387.26529,
+ -0.227167,0,-0.973856,-34.199559,-327.00976,1390.633652,
+ 0.752338,0,0.658777,21.00973,-0,1702.42617,
+ 0.896537,0,0.442969,27.450543,-140.14704,1692.786831,
+ 0.947173,0,0.320723,27.450543,-0,1692.786831,
+ 0.896537,0,0.442969,27.450543,-140.14704,1692.786831,
+ 0.752338,0,0.658777,21.00973,-0,1702.42617,
+ 0.658776,0,0.75234,21.00973,-140.14704,1702.42617,
+ 0.352163,0,-0.935939,67.085436,-327.00976,1400.609414,
+ 0.227168,0,-0.973856,34.19996,-140.14704,1390.633692,
+ 0.412793,0,-0.910825,67.085436,-140.14704,1400.609414,
+ 0.227168,0,-0.973856,34.19996,-140.14704,1390.633692,
+ 0.352163,0,-0.935939,67.085436,-327.00976,1400.609414,
+ 0.162804,0,-0.986659,34.19996,-327.00976,1390.633692,
+ 0.582553,-0,0.812792,97.392688,-140.14704,1708.32597,
+ 0.707106,-0,0.707107,123.957388,-327.00976,1686.524909,
+ 0.707106,-0,0.707107,123.957388,-140.14704,1686.524909,
+ 0.707106,-0,0.707107,123.957388,-327.00976,1686.524909,
+ 0.582553,-0,0.812792,97.392688,-140.14704,1708.32597,
+ 0.527988,0,0.849252,97.392688,-327.00976,1708.32597,
+ 0.935939,0,-0.352162,161.958238,-140.14704,1495.482328,
+ 0.973856,0,-0.227167,171.93392,-327.00976,1528.367816,
+ 0.910825,0,-0.412792,161.958238,-327.00976,1495.482328,
+ 0.973856,0,-0.227167,171.93392,-327.00976,1528.367816,
+ 0.935939,0,-0.352162,161.958238,-140.14704,1495.482328,
+ 0.986659,0,-0.162802,171.93392,-140.14704,1528.367816,
+ 0.986659,0,-0.162802,171.93392,-140.14704,1528.367816,
+ 0.999462,0,-0.032812,175.302282,-327.00976,1562.567577,
+ 0.973856,0,-0.227167,171.93392,-327.00976,1528.367816,
+ 0.999462,0,-0.032812,175.302282,-327.00976,1562.567577,
+ 0.986659,0,-0.162802,171.93392,-140.14704,1528.367816,
+ 0.999461,0,0.032813,175.302282,-140.14704,1562.567577,
+ 0.555571,0,-0.831469,97.39286,-327.00976,1416.809092,
+ 0.412793,0,-0.910825,67.085436,-140.14704,1400.609414,
+ 0.555571,0,-0.831469,97.39286,-140.14704,1416.809092,
+ 0.412793,0,-0.910825,67.085436,-140.14704,1400.609414,
+ 0.555571,0,-0.831469,97.39286,-327.00976,1416.809092,
+ 0.352163,0,-0.935939,67.085436,-327.00976,1400.609414,
+ -0.849252,-0,0.527988,-145.758398,-327.00976,1659.960062,
+ -0.910825,-0,0.412792,-161.95804,-140.14704,1629.652619,
+ -0.935939,-0,0.352162,-161.95804,-327.00976,1629.652619,
+ -0.910825,-0,0.412792,-161.95804,-140.14704,1629.652619,
+ -0.849252,-0,0.527988,-145.758398,-327.00976,1659.960062,
+ -0.812792,-0,0.582553,-145.758398,-140.14704,1659.960062,
+ 0.707107,0,-0.707106,123.957535,-140.14704,1438.610184,
+ 0.555571,0,-0.831469,97.39286,-327.00976,1416.809092,
+ 0.555571,0,-0.831469,97.39286,-140.14704,1416.809092,
+ 0.555571,0,-0.831469,97.39286,-327.00976,1416.809092,
+ 0.707107,0,-0.707106,123.957535,-140.14704,1438.610184,
+ 0.707107,0,-0.707106,123.957535,-327.00976,1438.610184,
+ -0.986659,-0,0.162802,-171.933723,-327.00976,1596.767131,
+ -0.999462,-0,0.032812,-175.302085,-140.14704,1562.56737,
+ -0.999461,-0,-0.032813,-175.302085,-327.00976,1562.56737,
+ -0.999462,-0,0.032812,-175.302085,-140.14704,1562.56737,
+ -0.986659,-0,0.162802,-171.933723,-327.00976,1596.767131,
+ -0.973856,-0,0.227167,-171.933723,-140.14704,1596.767131,
+ -0.999461,-0,-0.032813,-175.302085,-327.00976,1562.56737,
+ -0.986659,-0,-0.162804,-171.933682,-140.14704,1528.367612,
+ -0.973856,-0,-0.227168,-171.933682,-327.00976,1528.367612,
+ -0.986659,-0,-0.162804,-171.933682,-140.14704,1528.367612,
+ -0.999461,-0,-0.032813,-175.302085,-327.00976,1562.56737,
+ -0.999462,-0,0.032812,-175.302085,-140.14704,1562.56737,
+ -0.973856,-0,-0.227168,-171.933682,-327.00976,1528.367612,
+ -0.935939,0,-0.352163,-161.957961,-140.14704,1495.482136,
+ -0.910825,0,-0.412793,-161.957961,-327.00976,1495.482136,
+ -0.935939,0,-0.352163,-161.957961,-140.14704,1495.482136,
+ -0.973856,-0,-0.227168,-171.933682,-327.00976,1528.367612,
+ -0.986659,-0,-0.162804,-171.933682,-140.14704,1528.367612,
+ -0.910825,0,-0.412793,-161.957961,-327.00976,1495.482136,
+ -0.849251,0,-0.527989,-145.758282,-140.14704,1465.174712,
+ -0.812792,-0,-0.582554,-145.758282,-327.00976,1465.174712,
+ -0.849251,0,-0.527989,-145.758282,-140.14704,1465.174712,
+ -0.910825,0,-0.412793,-161.957961,-327.00976,1495.482136,
+ -0.935939,0,-0.352163,-161.957961,-140.14704,1495.482136,
+ 0.812792,-0,0.582554,145.75848,-140.14704,1659.960235,
+ 0.707106,-0,0.707107,123.957388,-327.00976,1686.524909,
+ 0.849251,0,0.527989,145.75848,-327.00976,1659.960235,
+ 0.707106,-0,0.707107,123.957388,-327.00976,1686.524909,
+ 0.812792,-0,0.582554,145.75848,-140.14704,1659.960235,
+ 0.707106,-0,0.707107,123.957388,-140.14704,1686.524909,
+ -0.555571,-0,0.831469,-97.392662,-140.14704,1708.325854,
+ -0.412793,-0,0.910825,-67.085238,-327.00976,1724.525533,
+ -0.352163,-0,0.935939,-67.085238,-140.14704,1724.525533,
+ -0.412793,-0,0.910825,-67.085238,-327.00976,1724.525533,
+ -0.555571,-0,0.831469,-97.392662,-140.14704,1708.325854,
+ -0.555571,-0,0.831469,-97.392662,-327.00976,1708.325854,
+ -0.707107,-0,0.707106,-123.957337,-327.00976,1686.524763,
+ -0.555571,-0,0.831469,-97.392662,-140.14704,1708.325854,
+ -0.707107,-0,0.707106,-123.957337,-140.14704,1686.524763,
+ -0.555571,-0,0.831469,-97.392662,-140.14704,1708.325854,
+ -0.707107,-0,0.707106,-123.957337,-327.00976,1686.524763,
+ -0.555571,-0,0.831469,-97.392662,-327.00976,1708.325854,
+ 0.707107,-0,-0.707106,21.009767,-140.14704,1660.406714,
+ 0.382684,-0,-0.923879,11.370427,-0,1653.965901,
+ 0.707107,0,-0.707106,21.009767,-0,1660.406714,
+ 0.382684,-0,-0.923879,11.370427,-0,1653.965901,
+ 0.707107,-0,-0.707106,21.009767,-140.14704,1660.406714,
+ 0.382684,-0,-0.923879,11.370427,-140.14704,1653.965901,
+ -0.442967,-0,-0.896538,-11.370339,-140.14704,1653.965881,
+ -0.707106,-0,-0.707107,-21.00969,-0,1660.406677,
+ -0.320721,-0,-0.947174,-11.370339,-0,1653.965881,
+ -0.707106,-0,-0.707107,-21.00969,-0,1660.406677,
+ -0.442967,-0,-0.896538,-11.370339,-140.14704,1653.965881,
+ -0.707106,-0,-0.707107,-21.00969,-140.14704,1660.406677,
+ -0.000001,0,1,-0.000006,-0,1711.128666,
+ 0.320721,0,0.947174,11.370379,-140.14704,1708.866966,
+ 0.442967,0,0.896538,11.370379,-0,1708.866966,
+ 0.320721,0,0.947174,11.370379,-140.14704,1708.866966,
+ -0.000001,0,1,-0.000006,-0,1711.128666,
+ -0.000001,0,1,-0.000006,-140.14704,1711.128666,
+ -0.896537,-0,-0.442969,-27.450503,-140.14704,1670.046016,
+ -0.707106,-0,-0.707107,-21.00969,-0,1660.406677,
+ -0.707106,-0,-0.707107,-21.00969,-140.14704,1660.406677,
+ -0.707106,-0,-0.707107,-21.00969,-0,1660.406677,
+ -0.896537,-0,-0.442969,-27.450503,-140.14704,1670.046016,
+ -0.947173,-0,-0.320723,-27.450503,-0,1670.046016,
+ 0.442967,0,0.896538,11.370379,-0,1708.866966,
+ 0.658776,0,0.75234,21.00973,-140.14704,1702.42617,
+ 0.752338,0,0.658777,21.00973,-0,1702.42617,
+ 0.658776,0,0.75234,21.00973,-140.14704,1702.42617,
+ 0.442967,0,0.896538,11.370379,-0,1708.866966,
+ 0.320721,0,0.947174,11.370379,-140.14704,1708.866966,
+ 0.947173,0,0.320723,27.450543,-0,1692.786831,
+ 0.997809,0,0.06616,29.712263,-140.14704,1681.41645,
+ 0.997809,0,-0.066158,29.712263,-0,1681.41645,
+ 0.997809,0,0.06616,29.712263,-140.14704,1681.41645,
+ 0.947173,0,0.320723,27.450543,-0,1692.786831,
+ 0.896537,0,0.442969,27.450543,-140.14704,1692.786831,
+ 0.997809,0,-0.066158,29.712263,-0,1681.41645,
+ 0.947174,0,-0.320721,27.450563,-140.14704,1670.046065,
+ 0.896538,0,-0.442967,27.450563,-0,1670.046065,
+ 0.947174,0,-0.320721,27.450563,-140.14704,1670.046065,
+ 0.997809,0,-0.066158,29.712263,-0,1681.41645,
+ 0.997809,0,0.06616,29.712263,-140.14704,1681.41645,
+ -0.707107,-0,0.707106,-21.009727,-0,1702.426133,
+ -0.382684,-0,0.923879,-11.370387,-140.14704,1708.866946,
+ -0.382684,-0,0.923879,-11.370387,-0,1708.866946,
+ -0.382684,-0,0.923879,-11.370387,-140.14704,1708.866946,
+ -0.707107,-0,0.707106,-21.009727,-0,1702.426133,
+ -0.707107,-0,0.707106,-21.009727,-140.14704,1702.426133,
+ -0,1,0,-171.933723,-140.14704,1596.767131,
+ -0,1,0,-171.933682,-140.14704,1528.367612,
+ -0,1,0,-175.302085,-140.14704,1562.56737,
+ -0,1,0,-171.933682,-140.14704,1528.367612,
+ -0,1,0,-171.933723,-140.14704,1596.767131,
+ 0,1,0,-161.95804,-140.14704,1629.652619,
+ -0,1,0,-171.933682,-140.14704,1528.367612,
+ 0,1,0,-161.95804,-140.14704,1629.652619,
+ 0,1,0,-161.957961,-140.14704,1495.482136,
+ 0,1,0,-161.957961,-140.14704,1495.482136,
+ 0,1,0,-161.95804,-140.14704,1629.652619,
+ -0,1,0,-145.758398,-140.14704,1659.960062,
+ 0,1,0,-161.957961,-140.14704,1495.482136,
+ -0,1,0,-145.758398,-140.14704,1659.960062,
+ -0,1,0,-145.758282,-140.14704,1465.174712,
+ -0,1,0,-145.758282,-140.14704,1465.174712,
+ -0,1,0,-145.758398,-140.14704,1659.960062,
+ -0,1,0,-123.957337,-140.14704,1686.524763,
+ -0,1,0,-145.758282,-140.14704,1465.174712,
+ -0,1,0,-123.957337,-140.14704,1686.524763,
+ 0,1,0,-123.957191,-140.14704,1438.610037,
+ 0,1,0,-123.957191,-140.14704,1438.610037,
+ -0,1,0,-123.957337,-140.14704,1686.524763,
+ -0,1,0,-97.392662,-140.14704,1708.325854,
+ 0,1,0,-123.957191,-140.14704,1438.610037,
+ -0,1,0,-97.392662,-140.14704,1708.325854,
+ -0,1,0,-97.39249,-140.14704,1416.808977,
+ -0,1,0,-97.39249,-140.14704,1416.808977,
+ -0,1,0,-97.392662,-140.14704,1708.325854,
+ -0,1,0,-85.022439,-140.14704,1562.567379,
+ -0,1,0,-85.022439,-140.14704,1562.567379,
+ -0,1,0,-97.392662,-140.14704,1708.325854,
+ -0,1,0,-83.388773,-140.14704,1579.154455,
+ -0,1,0,-83.388773,-140.14704,1579.154455,
+ -0,1,0,-97.392662,-140.14704,1708.325854,
+ 0,1,0,-67.085238,-140.14704,1724.525533,
+ -0,1,0,-83.388773,-140.14704,1579.154455,
+ 0,1,0,-67.085238,-140.14704,1724.525533,
+ 0,1,0,-78.55052,-140.14704,1595.104103,
+ 0,1,0,-78.55052,-140.14704,1595.104103,
+ 0,1,0,-67.085238,-140.14704,1724.525533,
+ 0,1,0,-70.69361,-140.14704,1609.803386,
+ 0,1,0,-70.69361,-140.14704,1609.803386,
+ 0,1,0,-67.085238,-140.14704,1724.525533,
+ -0,1,0,-60.119981,-140.14704,1622.687419,
+ -0,1,0,-60.119981,-140.14704,1622.687419,
+ 0,1,0,-67.085238,-140.14704,1724.525533,
+ -0,1,0,-34.199762,-140.14704,1734.501255,
+ -0,1,0,-60.119981,-140.14704,1622.687419,
+ -0,1,0,-34.199762,-140.14704,1734.501255,
+ -0,1,0,-47.235971,-140.14704,1633.261077,
+ -0,1,0,-47.235971,-140.14704,1633.261077,
+ -0,1,0,-34.199762,-140.14704,1734.501255,
+ -0,1,0,-32.536705,-140.14704,1641.118019,
+ -0,1,0,-32.536705,-140.14704,1641.118019,
+ -0,1,0,-34.199762,-140.14704,1734.501255,
+ -0,1,0,-29.712222,-140.14704,1681.416397,
+ -0,1,0,-29.712222,-140.14704,1681.416397,
+ -0,1,0,-34.199762,-140.14704,1734.501255,
+ -0,1,0,-27.450523,-140.14704,1692.786782,
+ -0,1,0,-27.450523,-140.14704,1692.786782,
+ -0,1,0,-34.199762,-140.14704,1734.501255,
+ -0,1,0,-0.000005,-140.14704,1737.869657,
+ -0,1,0,-27.450523,-140.14704,1692.786782,
+ -0,1,0,-0.000005,-140.14704,1737.869657,
+ 0,1,0,-21.009727,-140.14704,1702.426133,
+ 0,1,0,-21.009727,-140.14704,1702.426133,
+ -0,1,0,-0.000005,-140.14704,1737.869657,
+ 0,1,0,-11.370387,-140.14704,1708.866946,
+ 0,1,0,-11.370387,-140.14704,1708.866946,
+ -0,1,0,-0.000005,-140.14704,1737.869657,
+ 0,1,0,-0.000006,-140.14704,1711.128666,
+ 0,1,0,-0.000006,-140.14704,1711.128666,
+ -0,1,0,-0.000005,-140.14704,1737.869657,
+ 0,1,0,11.370379,-140.14704,1708.866966,
+ 0,1,0,11.370379,-140.14704,1708.866966,
+ -0,1,0,-0.000005,-140.14704,1737.869657,
+ -0,1,0,34.199757,-140.14704,1734.501295,
+ 0,1,0,11.370379,-140.14704,1708.866966,
+ -0,1,0,34.199757,-140.14704,1734.501295,
+ 0,1,0,21.00973,-140.14704,1702.42617,
+ 0,1,0,21.00973,-140.14704,1702.42617,
+ -0,1,0,34.199757,-140.14704,1734.501295,
+ 0,1,0,27.450543,-140.14704,1692.786831,
+ 0,1,0,27.450543,-140.14704,1692.786831,
+ -0,1,0,34.199757,-140.14704,1734.501295,
+ -0,1,0,29.712263,-140.14704,1681.41645,
+ -0,1,0,29.712263,-140.14704,1681.41645,
+ -0,1,0,34.199757,-140.14704,1734.501295,
+ -0,1,0,32.536728,-140.14704,1641.118092,
+ -0,1,0,32.536728,-140.14704,1641.118092,
+ -0,1,0,34.199757,-140.14704,1734.501295,
+ 0,1,0,47.236011,-140.14704,1633.261182,
+ 0,1,0,47.236011,-140.14704,1633.261182,
+ -0,1,0,34.199757,-140.14704,1734.501295,
+ -0,1,0,67.085244,-140.14704,1724.525612,
+ 0,1,0,47.236011,-140.14704,1633.261182,
+ -0,1,0,67.085244,-140.14704,1724.525612,
+ -0,1,0,60.120045,-140.14704,1622.687553,
+ -0,1,0,60.120045,-140.14704,1622.687553,
+ -0,1,0,67.085244,-140.14704,1724.525612,
+ -0,1,0,70.693703,-140.14704,1609.803543,
+ -0,1,0,70.693703,-140.14704,1609.803543,
+ -0,1,0,67.085244,-140.14704,1724.525612,
+ 0,1,0,97.392688,-140.14704,1708.32597,
+ -0,1,0,70.693703,-140.14704,1609.803543,
+ 0,1,0,97.392688,-140.14704,1708.32597,
+ 0,1,0,78.550645,-140.14704,1595.104277,
+ 0,1,0,78.550645,-140.14704,1595.104277,
+ 0,1,0,97.392688,-140.14704,1708.32597,
+ 0,1,0,83.388934,-140.14704,1579.15464,
+ 0,1,0,83.388934,-140.14704,1579.15464,
+ 0,1,0,97.392688,-140.14704,1708.32597,
+ 0,1,0,85.022636,-140.14704,1562.567568,
+ -0,1,0,-97.39249,-140.14704,1416.808977,
+ 0,1,0,-83.388736,-140.14704,1545.980306,
+ -0,1,0,-67.085047,-140.14704,1400.609334,
+ 0,1,0,-83.388736,-140.14704,1545.980306,
+ -0,1,0,-97.39249,-140.14704,1416.808977,
+ -0,1,0,-85.022439,-140.14704,1562.567379,
+ -0,1,0,-67.085047,-140.14704,1400.609334,
+ 0,1,0,-83.388736,-140.14704,1545.980306,
+ -0,1,0,-78.550447,-140.14704,1530.030669,
+ -0,1,0,-67.085047,-140.14704,1400.609334,
+ -0,1,0,-78.550447,-140.14704,1530.030669,
+ -0,1,0,-70.693505,-140.14704,1515.331404,
+ -0,1,0,-67.085047,-140.14704,1400.609334,
+ -0,1,0,-70.693505,-140.14704,1515.331404,
+ 0,1,0,-60.119847,-140.14704,1502.447394,
+ -0,1,0,-67.085047,-140.14704,1400.609334,
+ 0,1,0,-60.119847,-140.14704,1502.447394,
+ -0,1,0,-34.199559,-140.14704,1390.633652,
+ -0,1,0,-34.199559,-140.14704,1390.633652,
+ 0,1,0,-60.119847,-140.14704,1502.447394,
+ 0,1,0,-47.235814,-140.14704,1491.873764,
+ -0,1,0,-34.199559,-140.14704,1390.633652,
+ 0,1,0,-47.235814,-140.14704,1491.873764,
+ -0,1,0,-32.53653,-140.14704,1484.016855,
+ -0,1,0,-34.199559,-140.14704,1390.633652,
+ -0,1,0,-32.53653,-140.14704,1484.016855,
+ -0,1,0,0.000202,-140.14704,1387.26529,
+ -0,1,0,0.000202,-140.14704,1387.26529,
+ -0,1,0,-32.53653,-140.14704,1484.016855,
+ -0,1,0,-16.586883,-140.14704,1479.178602,
+ -0,1,0,0.000202,-140.14704,1387.26529,
+ -0,1,0,-16.586883,-140.14704,1479.178602,
+ -0,1,0,0.000193,-140.14704,1477.544936,
+ -0,1,0,0.000202,-140.14704,1387.26529,
+ -0,1,0,0.000193,-140.14704,1477.544936,
+ -0,1,0,16.587266,-140.14704,1479.178638,
+ -0,1,0,0.000202,-140.14704,1387.26529,
+ -0,1,0,16.587266,-140.14704,1479.178638,
+ -0,1,0,34.19996,-140.14704,1390.633692,
+ -0,1,0,34.19996,-140.14704,1390.633692,
+ -0,1,0,16.587266,-140.14704,1479.178638,
+ -0,1,0,32.536903,-140.14704,1484.016927,
+ -0,1,0,34.19996,-140.14704,1390.633692,
+ -0,1,0,32.536903,-140.14704,1484.016927,
+ -0,1,0,47.236168,-140.14704,1491.87387,
+ -0,1,0,34.19996,-140.14704,1390.633692,
+ -0,1,0,47.236168,-140.14704,1491.87387,
+ -0,1,0,67.085436,-140.14704,1400.609414,
+ -0,1,0,67.085436,-140.14704,1400.609414,
+ -0,1,0,47.236168,-140.14704,1491.87387,
+ -0,1,0,60.120178,-140.14704,1502.447527,
+ -0,1,0,67.085436,-140.14704,1400.609414,
+ -0,1,0,60.120178,-140.14704,1502.447527,
+ -0,1,0,70.693808,-140.14704,1515.331561,
+ -0,1,0,67.085436,-140.14704,1400.609414,
+ -0,1,0,70.693808,-140.14704,1515.331561,
+ 0,1,0,97.39286,-140.14704,1416.809092,
+ 0,1,0,97.39286,-140.14704,1416.809092,
+ -0,1,0,70.693808,-140.14704,1515.331561,
+ -0,1,0,78.550717,-140.14704,1530.030844,
+ 0,1,0,97.39286,-140.14704,1416.809092,
+ -0,1,0,78.550717,-140.14704,1530.030844,
+ 0,1,0,83.388971,-140.14704,1545.980492,
+ 0,1,0,97.39286,-140.14704,1416.809092,
+ 0,1,0,83.388971,-140.14704,1545.980492,
+ 0,1,0,85.022636,-140.14704,1562.567568,
+ 0,1,0,97.39286,-140.14704,1416.809092,
+ 0,1,0,85.022636,-140.14704,1562.567568,
+ 0,1,0,97.392688,-140.14704,1708.32597,
+ 0,1,0,97.39286,-140.14704,1416.809092,
+ 0,1,0,97.392688,-140.14704,1708.32597,
+ -0,1,0,123.957388,-140.14704,1686.524909,
+ 0,1,0,97.39286,-140.14704,1416.809092,
+ -0,1,0,123.957388,-140.14704,1686.524909,
+ -0,1,0,123.957535,-140.14704,1438.610184,
+ -0,1,0,123.957535,-140.14704,1438.610184,
+ -0,1,0,123.957388,-140.14704,1686.524909,
+ -0,1,0,145.75848,-140.14704,1659.960235,
+ -0,1,0,123.957535,-140.14704,1438.610184,
+ -0,1,0,145.75848,-140.14704,1659.960235,
+ -0,1,0,145.758595,-140.14704,1465.174884,
+ -0,1,0,145.758595,-140.14704,1465.174884,
+ -0,1,0,145.75848,-140.14704,1659.960235,
+ 0,1,0,161.958159,-140.14704,1629.65281,
+ -0,1,0,145.758595,-140.14704,1465.174884,
+ 0,1,0,161.958159,-140.14704,1629.65281,
+ 0,1,0,161.958238,-140.14704,1495.482328,
+ 0,1,0,161.958238,-140.14704,1495.482328,
+ 0,1,0,161.958159,-140.14704,1629.65281,
+ -0,1,0,171.93388,-140.14704,1596.767334,
+ 0,1,0,161.958238,-140.14704,1495.482328,
+ -0,1,0,171.93388,-140.14704,1596.767334,
+ -0,1,0,171.93392,-140.14704,1528.367816,
+ -0,1,0,171.93392,-140.14704,1528.367816,
+ -0,1,0,171.93388,-140.14704,1596.767334,
+ -0,1,0,175.302282,-140.14704,1562.567577,
+ -0,1,0,-32.536705,-140.14704,1641.118019,
+ 0,1,0,-27.450503,-140.14704,1670.046016,
+ -0,1,0,-16.587068,-140.14704,1645.956308,
+ 0,1,0,-27.450503,-140.14704,1670.046016,
+ -0,1,0,-32.536705,-140.14704,1641.118019,
+ -0,1,0,-29.712222,-140.14704,1681.416397,
+ -0,1,0,-16.587068,-140.14704,1645.956308,
+ 0,1,0,-27.450503,-140.14704,1670.046016,
+ 0,1,0,-21.00969,-140.14704,1660.406677,
+ -0,1,0,-16.587068,-140.14704,1645.956308,
+ 0,1,0,-21.00969,-140.14704,1660.406677,
+ -0,1,0,-11.370339,-140.14704,1653.965881,
+ -0,1,0,-16.587068,-140.14704,1645.956308,
+ -0,1,0,-11.370339,-140.14704,1653.965881,
+ 0,1,0,0.000004,-140.14704,1647.590011,
+ 0,1,0,0.000004,-140.14704,1647.590011,
+ -0,1,0,-11.370339,-140.14704,1653.965881,
+ 0,1,0,0.000046,-140.14704,1651.704181,
+ 0,1,0,0.000004,-140.14704,1647.590011,
+ 0,1,0,0.000046,-140.14704,1651.704181,
+ -0,1,0,16.58708,-140.14704,1645.956345,
+ -0,1,0,16.58708,-140.14704,1645.956345,
+ 0,1,0,0.000046,-140.14704,1651.704181,
+ -0,1,0,11.370427,-140.14704,1653.965901,
+ -0,1,0,16.58708,-140.14704,1645.956345,
+ -0,1,0,11.370427,-140.14704,1653.965901,
+ -0,1,0,21.009767,-140.14704,1660.406714,
+ -0,1,0,16.58708,-140.14704,1645.956345,
+ -0,1,0,21.009767,-140.14704,1660.406714,
+ -0,1,0,32.536728,-140.14704,1641.118092,
+ -0,1,0,32.536728,-140.14704,1641.118092,
+ -0,1,0,21.009767,-140.14704,1660.406714,
+ -0,1,0,27.450563,-140.14704,1670.046065,
+ -0,1,0,32.536728,-140.14704,1641.118092,
+ -0,1,0,27.450563,-140.14704,1670.046065,
+ -0,1,0,29.712263,-140.14704,1681.41645,
+ -0.162804,-0,0.986659,-34.199762,-140.14704,1734.501255,
+ -0.032813,-0,0.999461,-0.000005,-327.00976,1737.869657,
+ 0.032812,0,0.999462,-0.000005,-140.14704,1737.869657,
+ -0.032813,-0,0.999461,-0.000005,-327.00976,1737.869657,
+ -0.162804,-0,0.986659,-34.199762,-140.14704,1734.501255,
+ -0.227168,-0,0.973856,-34.199762,-327.00976,1734.501255,
+ 0.812791,0,0.582555,-70.693505,-301.60976,1515.331404,
+ 0.729927,0,0.683525,-60.119847,-327.00976,1502.447394,
+ 0.683523,0,0.729929,-60.119847,-301.60976,1502.447394,
+ 0.729927,0,0.683525,-60.119847,-327.00976,1502.447394,
+ 0.812791,0,0.582555,-70.693505,-301.60976,1515.331404,
+ 0.849251,0,0.527989,-70.693505,-327.00976,1515.331404,
+ 0,-1,0,-83.388736,-301.60976,1545.980306,
+ 0,-1,0,-83.388773,-301.60976,1579.154455,
+ 0,-1,0,-85.022439,-301.60976,1562.567379,
+ 0,-1,0,-83.388773,-301.60976,1579.154455,
+ 0,-1,0,-83.388736,-301.60976,1545.980306,
+ 0,-1,0,-78.55052,-301.60976,1595.104103,
+ 0,-1,0,-78.55052,-301.60976,1595.104103,
+ 0,-1,0,-83.388736,-301.60976,1545.980306,
+ 0,-1,-0,-78.550447,-301.60976,1530.030669,
+ 0,-1,0,-78.55052,-301.60976,1595.104103,
+ 0,-1,-0,-78.550447,-301.60976,1530.030669,
+ 0,-1,-0,-70.69361,-301.60976,1609.803386,
+ 0,-1,-0,-70.69361,-301.60976,1609.803386,
+ 0,-1,-0,-78.550447,-301.60976,1530.030669,
+ -0,-1,-0,-70.693505,-301.60976,1515.331404,
+ 0,-1,-0,-70.69361,-301.60976,1609.803386,
+ -0,-1,-0,-70.693505,-301.60976,1515.331404,
+ -0,-1,-0,-60.119981,-301.60976,1622.687419,
+ -0,-1,-0,-60.119981,-301.60976,1622.687419,
+ -0,-1,-0,-70.693505,-301.60976,1515.331404,
+ -0,-1,-0,-60.119847,-301.60976,1502.447394,
+ -0,-1,-0,-60.119981,-301.60976,1622.687419,
+ -0,-1,-0,-60.119847,-301.60976,1502.447394,
+ 0,-1,-0,-47.235971,-301.60976,1633.261077,
+ 0,-1,-0,-47.235971,-301.60976,1633.261077,
+ -0,-1,-0,-60.119847,-301.60976,1502.447394,
+ -0,-1,-0,-47.235814,-301.60976,1491.873764,
+ 0,-1,-0,-47.235971,-301.60976,1633.261077,
+ -0,-1,-0,-47.235814,-301.60976,1491.873764,
+ 0,-1,-0,-32.536705,-301.60976,1641.118019,
+ 0,-1,-0,-32.536705,-301.60976,1641.118019,
+ -0,-1,-0,-47.235814,-301.60976,1491.873764,
+ 0,-1,-0,-32.53653,-301.60976,1484.016855,
+ 0,-1,-0,-32.536705,-301.60976,1641.118019,
+ 0,-1,-0,-32.53653,-301.60976,1484.016855,
+ 0,-1,-0,-16.587068,-301.60976,1645.956308,
+ 0,-1,-0,-16.587068,-301.60976,1645.956308,
+ 0,-1,-0,-32.53653,-301.60976,1484.016855,
+ 0,-1,-0,-16.586883,-301.60976,1479.178602,
+ 0,-1,-0,-16.587068,-301.60976,1645.956308,
+ 0,-1,-0,-16.586883,-301.60976,1479.178602,
+ -0,-1,-0,0.000004,-301.60976,1647.590011,
+ -0,-1,-0,0.000004,-301.60976,1647.590011,
+ 0,-1,-0,-16.586883,-301.60976,1479.178602,
+ -0,-1,-0,0.000193,-301.60976,1477.544936,
+ -0,-1,-0,0.000004,-301.60976,1647.590011,
+ -0,-1,-0,0.000193,-301.60976,1477.544936,
+ -0,-1,-0,16.58708,-301.60976,1645.956345,
+ -0,-1,-0,16.58708,-301.60976,1645.956345,
+ -0,-1,-0,0.000193,-301.60976,1477.544936,
+ 0,-1,-0,16.587266,-301.60976,1479.178638,
+ -0,-1,-0,16.58708,-301.60976,1645.956345,
+ 0,-1,-0,16.587266,-301.60976,1479.178638,
+ -0,-1,-0,32.536728,-301.60976,1641.118092,
+ -0,-1,-0,32.536728,-301.60976,1641.118092,
+ 0,-1,-0,16.587266,-301.60976,1479.178638,
+ 0,-1,-0,32.536903,-301.60976,1484.016927,
+ -0,-1,-0,32.536728,-301.60976,1641.118092,
+ 0,-1,-0,32.536903,-301.60976,1484.016927,
+ -0,-1,-0,47.236011,-301.60976,1633.261182,
+ -0,-1,-0,47.236011,-301.60976,1633.261182,
+ 0,-1,-0,32.536903,-301.60976,1484.016927,
+ 0,-1,-0,47.236168,-301.60976,1491.87387,
+ -0,-1,-0,47.236011,-301.60976,1633.261182,
+ 0,-1,-0,47.236168,-301.60976,1491.87387,
+ 0,-1,-0,60.120045,-301.60976,1622.687553,
+ 0,-1,-0,60.120045,-301.60976,1622.687553,
+ 0,-1,-0,47.236168,-301.60976,1491.87387,
+ 0,-1,-0,60.120178,-301.60976,1502.447527,
+ 0,-1,-0,60.120045,-301.60976,1622.687553,
+ 0,-1,-0,60.120178,-301.60976,1502.447527,
+ 0,-1,-0,70.693703,-301.60976,1609.803543,
+ 0,-1,-0,70.693703,-301.60976,1609.803543,
+ 0,-1,-0,60.120178,-301.60976,1502.447527,
+ 0,-1,-0,70.693808,-301.60976,1515.331561,
+ 0,-1,-0,70.693703,-301.60976,1609.803543,
+ 0,-1,-0,70.693808,-301.60976,1515.331561,
+ -0,-1,-0,78.550645,-301.60976,1595.104277,
+ -0,-1,-0,78.550645,-301.60976,1595.104277,
+ 0,-1,-0,70.693808,-301.60976,1515.331561,
+ 0,-1,-0,78.550717,-301.60976,1530.030844,
+ -0,-1,-0,78.550645,-301.60976,1595.104277,
+ 0,-1,-0,78.550717,-301.60976,1530.030844,
+ -0,-1,-0,83.388934,-301.60976,1579.15464,
+ -0,-1,-0,83.388934,-301.60976,1579.15464,
+ 0,-1,-0,78.550717,-301.60976,1530.030844,
+ -0,-1,-0,83.388971,-301.60976,1545.980492,
+ -0,-1,-0,83.388934,-301.60976,1579.15464,
+ -0,-1,-0,83.388971,-301.60976,1545.980492,
+ -0,-1,-0,85.022636,-301.60976,1562.567568,
+ 0.973855,0,0.227169,-83.388736,-301.60976,1545.980306,
+ 0.935939,0,0.352163,-78.550447,-327.00976,1530.030669,
+ 0.910825,0,0.412793,-78.550447,-301.60976,1530.030669,
+ 0.935939,0,0.352163,-78.550447,-327.00976,1530.030669,
+ 0.973855,0,0.227169,-83.388736,-301.60976,1545.980306,
+ 0.986658,0,0.162804,-83.388736,-327.00976,1545.980306,
+ 0.582555,0,-0.812791,-47.235971,-327.00976,1633.261077,
+ 0.707108,0,-0.707106,-60.119981,-301.60976,1622.687419,
+ 0.527989,0,-0.849251,-47.235971,-301.60976,1633.261077,
+ 0.707108,0,-0.707106,-60.119981,-301.60976,1622.687419,
+ 0.582555,0,-0.812791,-47.235971,-327.00976,1633.261077,
+ 0.707108,0,-0.707106,-60.119981,-327.00976,1622.687419,
+ 0.999461,0,0.032814,-85.022439,-301.60976,1562.567379,
+ 0.986658,0,0.162804,-83.388736,-327.00976,1545.980306,
+ 0.973855,0,0.227169,-83.388736,-301.60976,1545.980306,
+ 0.986658,0,0.162804,-83.388736,-327.00976,1545.980306,
+ 0.999461,0,0.032814,-85.022439,-301.60976,1562.567379,
+ 0.999462,0,-0.032812,-85.022439,-327.00976,1562.567379,
+ 0.412793,0,-0.910825,-32.536705,-327.00976,1641.118019,
+ 0.527989,0,-0.849251,-47.235971,-301.60976,1633.261077,
+ 0.352163,0,-0.935939,-32.536705,-301.60976,1641.118019,
+ 0.527989,0,-0.849251,-47.235971,-301.60976,1633.261077,
+ 0.412793,0,-0.910825,-32.536705,-327.00976,1641.118019,
+ 0.582555,0,-0.812791,-47.235971,-327.00976,1633.261077,
+ 0.935939,0,-0.352161,-78.55052,-301.60976,1595.104103,
+ 0.973856,0,-0.227166,-83.388773,-327.00976,1579.154455,
+ 0.986659,0,-0.162802,-83.388773,-301.60976,1579.154455,
+ 0.973856,0,-0.227166,-83.388773,-327.00976,1579.154455,
+ 0.935939,0,-0.352161,-78.55052,-301.60976,1595.104103,
+ 0.910826,0,-0.412791,-78.55052,-327.00976,1595.104103,
+ -0.582555,-0,0.812791,47.236168,-165.54704,1491.87387,
+ -0.683525,-0,0.729927,60.120178,-140.14704,1502.447527,
+ -0.527989,-0,0.849251,47.236168,-140.14704,1491.87387,
+ -0.683525,-0,0.729927,60.120178,-140.14704,1502.447527,
+ -0.582555,-0,0.812791,47.236168,-165.54704,1491.87387,
+ -0.729929,-0,0.683523,60.120178,-165.54704,1502.447527,
+ -0.729929,-0,0.683523,60.120178,-165.54704,1502.447527,
+ -0.812793,-0,0.582553,70.693808,-140.14704,1515.331561,
+ -0.683525,-0,0.729927,60.120178,-140.14704,1502.447527,
+ -0.812793,-0,0.582553,70.693808,-140.14704,1515.331561,
+ -0.729929,-0,0.683523,60.120178,-165.54704,1502.447527,
+ -0.849252,-0,0.527987,70.693808,-165.54704,1515.331561,
+ -0.849252,-0,0.527987,70.693808,-165.54704,1515.331561,
+ -0.910826,-0,0.412791,78.550717,-140.14704,1530.030844,
+ -0.812793,-0,0.582553,70.693808,-140.14704,1515.331561,
+ -0.910826,-0,0.412791,78.550717,-140.14704,1530.030844,
+ -0.849252,-0,0.527987,70.693808,-165.54704,1515.331561,
+ -0.935939,-0,0.352161,78.550717,-165.54704,1530.030844,
+ -0,-1,-0,-97.39249,-327.00976,1416.808977,
+ -0,-1,-0,-83.388736,-327.00976,1545.980306,
+ -0,-1,-0,-85.022439,-327.00976,1562.567379,
+ -0,-1,-0,-83.388736,-327.00976,1545.980306,
+ -0,-1,-0,-97.39249,-327.00976,1416.808977,
+ 0,-1,-0,-67.085047,-327.00976,1400.609334,
+ -0,-1,-0,-83.388736,-327.00976,1545.980306,
+ 0,-1,-0,-67.085047,-327.00976,1400.609334,
+ 0,-1,-0,-78.550447,-327.00976,1530.030669,
+ 0,-1,-0,-78.550447,-327.00976,1530.030669,
+ 0,-1,-0,-67.085047,-327.00976,1400.609334,
+ 0,-1,-0,-70.693505,-327.00976,1515.331404,
+ 0,-1,-0,-70.693505,-327.00976,1515.331404,
+ 0,-1,-0,-67.085047,-327.00976,1400.609334,
+ -0,-1,-0,-60.119847,-327.00976,1502.447394,
+ -0,-1,-0,-60.119847,-327.00976,1502.447394,
+ 0,-1,-0,-67.085047,-327.00976,1400.609334,
+ 0,-1,-0,-34.199559,-327.00976,1390.633652,
+ -0,-1,-0,-60.119847,-327.00976,1502.447394,
+ 0,-1,-0,-34.199559,-327.00976,1390.633652,
+ -0,-1,-0,-47.235814,-327.00976,1491.873764,
+ -0,-1,-0,-47.235814,-327.00976,1491.873764,
+ 0,-1,-0,-34.199559,-327.00976,1390.633652,
+ 0,-1,-0,-32.53653,-327.00976,1484.016855,
+ 0,-1,-0,-32.53653,-327.00976,1484.016855,
+ 0,-1,-0,-34.199559,-327.00976,1390.633652,
+ 0,-1,-0,0.000202,-327.00976,1387.26529,
+ 0,-1,-0,-32.53653,-327.00976,1484.016855,
+ 0,-1,-0,0.000202,-327.00976,1387.26529,
+ 0,-1,-0,-16.586883,-327.00976,1479.178602,
+ 0,-1,-0,-16.586883,-327.00976,1479.178602,
+ 0,-1,-0,0.000202,-327.00976,1387.26529,
+ 0,-1,-0,0.000193,-327.00976,1477.544936,
+ 0,-1,-0,0.000193,-327.00976,1477.544936,
+ 0,-1,-0,0.000202,-327.00976,1387.26529,
+ 0,-1,-0,16.587266,-327.00976,1479.178638,
+ 0,-1,-0,16.587266,-327.00976,1479.178638,
+ 0,-1,-0,0.000202,-327.00976,1387.26529,
+ 0,-1,-0,34.19996,-327.00976,1390.633692,
+ 0,-1,-0,16.587266,-327.00976,1479.178638,
+ 0,-1,-0,34.19996,-327.00976,1390.633692,
+ 0,-1,-0,32.536903,-327.00976,1484.016927,
+ 0,-1,-0,32.536903,-327.00976,1484.016927,
+ 0,-1,-0,34.19996,-327.00976,1390.633692,
+ 0,-1,-0,47.236168,-327.00976,1491.87387,
+ 0,-1,-0,47.236168,-327.00976,1491.87387,
+ 0,-1,-0,34.19996,-327.00976,1390.633692,
+ 0,-1,-0,67.085436,-327.00976,1400.609414,
+ 0,-1,-0,47.236168,-327.00976,1491.87387,
+ 0,-1,-0,67.085436,-327.00976,1400.609414,
+ 0,-1,-0,60.120178,-327.00976,1502.447527,
+ 0,-1,-0,60.120178,-327.00976,1502.447527,
+ 0,-1,-0,67.085436,-327.00976,1400.609414,
+ 0,-1,-0,70.693808,-327.00976,1515.331561,
+ 0,-1,-0,70.693808,-327.00976,1515.331561,
+ 0,-1,-0,67.085436,-327.00976,1400.609414,
+ -0,-1,-0,97.39286,-327.00976,1416.809092,
+ 0,-1,-0,70.693808,-327.00976,1515.331561,
+ -0,-1,-0,97.39286,-327.00976,1416.809092,
+ 0,-1,-0,78.550717,-327.00976,1530.030844,
+ 0,-1,-0,78.550717,-327.00976,1530.030844,
+ -0,-1,-0,97.39286,-327.00976,1416.809092,
+ -0,-1,-0,83.388971,-327.00976,1545.980492,
+ -0,-1,-0,83.388971,-327.00976,1545.980492,
+ -0,-1,-0,97.39286,-327.00976,1416.809092,
+ -0,-1,-0,85.022636,-327.00976,1562.567568,
+ -0,-1,-0,85.022636,-327.00976,1562.567568,
+ -0,-1,-0,97.39286,-327.00976,1416.809092,
+ -0,-1,-0,97.392688,-327.00976,1708.32597,
+ -0,-1,-0,97.392688,-327.00976,1708.32597,
+ -0,-1,-0,97.39286,-327.00976,1416.809092,
+ 0,-1,-0,123.957388,-327.00976,1686.524909,
+ 0,-1,-0,123.957388,-327.00976,1686.524909,
+ -0,-1,-0,97.39286,-327.00976,1416.809092,
+ 0,-1,-0,123.957535,-327.00976,1438.610184,
+ 0,-1,-0,123.957388,-327.00976,1686.524909,
+ 0,-1,-0,123.957535,-327.00976,1438.610184,
+ 0,-1,-0,145.75848,-327.00976,1659.960235,
+ 0,-1,-0,145.75848,-327.00976,1659.960235,
+ 0,-1,-0,123.957535,-327.00976,1438.610184,
+ 0,-1,-0,145.758595,-327.00976,1465.174884,
+ 0,-1,-0,145.75848,-327.00976,1659.960235,
+ 0,-1,-0,145.758595,-327.00976,1465.174884,
+ 0,-1,-0,161.958159,-327.00976,1629.65281,
+ 0,-1,-0,161.958159,-327.00976,1629.65281,
+ 0,-1,-0,145.758595,-327.00976,1465.174884,
+ -0,-1,-0,161.958238,-327.00976,1495.482328,
+ 0,-1,-0,161.958159,-327.00976,1629.65281,
+ -0,-1,-0,161.958238,-327.00976,1495.482328,
+ -0,-1,-0,171.93388,-327.00976,1596.767334,
+ -0,-1,-0,171.93388,-327.00976,1596.767334,
+ -0,-1,-0,161.958238,-327.00976,1495.482328,
+ -0,-1,-0,171.93392,-327.00976,1528.367816,
+ -0,-1,-0,171.93388,-327.00976,1596.767334,
+ -0,-1,-0,171.93392,-327.00976,1528.367816,
+ 0,-1,0,175.302282,-327.00976,1562.567577,
+ 0,-1,-0,-171.933682,-327.00976,1528.367612,
+ 0,-1,-0,-171.933723,-327.00976,1596.767131,
+ 0,-1,-0,-175.302085,-327.00976,1562.56737,
+ 0,-1,-0,-171.933723,-327.00976,1596.767131,
+ 0,-1,-0,-171.933682,-327.00976,1528.367612,
+ -0,-1,-0,-161.95804,-327.00976,1629.652619,
+ -0,-1,-0,-161.95804,-327.00976,1629.652619,
+ 0,-1,-0,-171.933682,-327.00976,1528.367612,
+ -0,-1,-0,-161.957961,-327.00976,1495.482136,
+ -0,-1,-0,-161.95804,-327.00976,1629.652619,
+ -0,-1,-0,-161.957961,-327.00976,1495.482136,
+ 0,-1,-0,-145.758398,-327.00976,1659.960062,
+ 0,-1,-0,-145.758398,-327.00976,1659.960062,
+ -0,-1,-0,-161.957961,-327.00976,1495.482136,
+ 0,-1,-0,-145.758282,-327.00976,1465.174712,
+ 0,-1,-0,-145.758398,-327.00976,1659.960062,
+ 0,-1,-0,-145.758282,-327.00976,1465.174712,
+ 0,-1,-0,-123.957337,-327.00976,1686.524763,
+ 0,-1,-0,-123.957337,-327.00976,1686.524763,
+ 0,-1,-0,-145.758282,-327.00976,1465.174712,
+ 0,-1,-0,-123.957191,-327.00976,1438.610037,
+ 0,-1,-0,-123.957337,-327.00976,1686.524763,
+ 0,-1,-0,-123.957191,-327.00976,1438.610037,
+ 0,-1,-0,-97.392662,-327.00976,1708.325854,
+ 0,-1,-0,-97.392662,-327.00976,1708.325854,
+ 0,-1,-0,-123.957191,-327.00976,1438.610037,
+ -0,-1,-0,-97.39249,-327.00976,1416.808977,
+ 0,-1,-0,-97.392662,-327.00976,1708.325854,
+ -0,-1,-0,-97.39249,-327.00976,1416.808977,
+ -0,-1,-0,-85.022439,-327.00976,1562.567379,
+ 0,-1,-0,-97.392662,-327.00976,1708.325854,
+ -0,-1,-0,-85.022439,-327.00976,1562.567379,
+ 0,-1,-0,-83.388773,-327.00976,1579.154455,
+ 0,-1,-0,-97.392662,-327.00976,1708.325854,
+ 0,-1,-0,-83.388773,-327.00976,1579.154455,
+ 0,-1,-0,-67.085238,-327.00976,1724.525533,
+ 0,-1,-0,-67.085238,-327.00976,1724.525533,
+ 0,-1,-0,-83.388773,-327.00976,1579.154455,
+ 0,-1,-0,-78.55052,-327.00976,1595.104103,
+ 0,-1,-0,-67.085238,-327.00976,1724.525533,
+ 0,-1,-0,-78.55052,-327.00976,1595.104103,
+ -0,-1,-0,-70.69361,-327.00976,1609.803386,
+ 0,-1,-0,-67.085238,-327.00976,1724.525533,
+ -0,-1,-0,-70.69361,-327.00976,1609.803386,
+ -0,-1,-0,-60.119981,-327.00976,1622.687419,
+ 0,-1,-0,-67.085238,-327.00976,1724.525533,
+ -0,-1,-0,-60.119981,-327.00976,1622.687419,
+ 0,-1,-0,-34.199762,-327.00976,1734.501255,
+ 0,-1,-0,-34.199762,-327.00976,1734.501255,
+ -0,-1,-0,-60.119981,-327.00976,1622.687419,
+ 0,-1,-0,-47.235971,-327.00976,1633.261077,
+ 0,-1,-0,-34.199762,-327.00976,1734.501255,
+ 0,-1,-0,-47.235971,-327.00976,1633.261077,
+ 0,-1,-0,-32.536705,-327.00976,1641.118019,
+ 0,-1,-0,-34.199762,-327.00976,1734.501255,
+ 0,-1,-0,-32.536705,-327.00976,1641.118019,
+ 0,-1,-0,-0.000005,-327.00976,1737.869657,
+ 0,-1,-0,-0.000005,-327.00976,1737.869657,
+ 0,-1,-0,-32.536705,-327.00976,1641.118019,
+ 0,-1,-0,-16.587068,-327.00976,1645.956308,
+ 0,-1,-0,-0.000005,-327.00976,1737.869657,
+ 0,-1,-0,-16.587068,-327.00976,1645.956308,
+ -0,-1,-0,0.000004,-327.00976,1647.590011,
+ 0,-1,-0,-0.000005,-327.00976,1737.869657,
+ -0,-1,-0,0.000004,-327.00976,1647.590011,
+ -0,-1,-0,34.199757,-327.00976,1734.501295,
+ -0,-1,-0,34.199757,-327.00976,1734.501295,
+ -0,-1,-0,0.000004,-327.00976,1647.590011,
+ -0,-1,-0,16.58708,-327.00976,1645.956345,
+ -0,-1,-0,34.199757,-327.00976,1734.501295,
+ -0,-1,-0,16.58708,-327.00976,1645.956345,
+ -0,-1,-0,32.536728,-327.00976,1641.118092,
+ -0,-1,-0,34.199757,-327.00976,1734.501295,
+ -0,-1,-0,32.536728,-327.00976,1641.118092,
+ -0,-1,-0,47.236011,-327.00976,1633.261182,
+ -0,-1,-0,34.199757,-327.00976,1734.501295,
+ -0,-1,-0,47.236011,-327.00976,1633.261182,
+ 0,-1,-0,67.085244,-327.00976,1724.525612,
+ 0,-1,-0,67.085244,-327.00976,1724.525612,
+ -0,-1,-0,47.236011,-327.00976,1633.261182,
+ 0,-1,-0,60.120045,-327.00976,1622.687553,
+ 0,-1,-0,67.085244,-327.00976,1724.525612,
+ 0,-1,-0,60.120045,-327.00976,1622.687553,
+ 0,-1,-0,70.693703,-327.00976,1609.803543,
+ 0,-1,-0,67.085244,-327.00976,1724.525612,
+ 0,-1,-0,70.693703,-327.00976,1609.803543,
+ -0,-1,-0,97.392688,-327.00976,1708.32597,
+ -0,-1,-0,97.392688,-327.00976,1708.32597,
+ 0,-1,-0,70.693703,-327.00976,1609.803543,
+ -0,-1,-0,78.550645,-327.00976,1595.104277,
+ -0,-1,-0,97.392688,-327.00976,1708.32597,
+ -0,-1,-0,78.550645,-327.00976,1595.104277,
+ -0,-1,-0,83.388934,-327.00976,1579.15464,
+ -0,-1,-0,97.392688,-327.00976,1708.32597,
+ -0,-1,-0,83.388934,-327.00976,1579.15464,
+ -0,-1,-0,85.022636,-327.00976,1562.567568,
+ 0,1,0,-83.388773,-165.54704,1579.154455,
+ 0,1,0,-83.388736,-165.54704,1545.980306,
+ 0,1,0,-85.022439,-165.54704,1562.567379,
+ 0,1,0,-83.388736,-165.54704,1545.980306,
+ 0,1,0,-83.388773,-165.54704,1579.154455,
+ 0,1,0,-78.55052,-165.54704,1595.104103,
+ 0,1,0,-83.388736,-165.54704,1545.980306,
+ 0,1,0,-78.55052,-165.54704,1595.104103,
+ 0,1,0,-78.550447,-165.54704,1530.030669,
+ 0,1,0,-78.550447,-165.54704,1530.030669,
+ 0,1,0,-78.55052,-165.54704,1595.104103,
+ 0,1,0,-70.69361,-165.54704,1609.803386,
+ 0,1,0,-78.550447,-165.54704,1530.030669,
+ 0,1,0,-70.69361,-165.54704,1609.803386,
+ -0,1,0,-70.693505,-165.54704,1515.331404,
+ -0,1,0,-70.693505,-165.54704,1515.331404,
+ 0,1,0,-70.69361,-165.54704,1609.803386,
+ -0,1,0,-60.119981,-165.54704,1622.687419,
+ -0,1,0,-70.693505,-165.54704,1515.331404,
+ -0,1,0,-60.119981,-165.54704,1622.687419,
+ 0,1,0,-60.119847,-165.54704,1502.447394,
+ 0,1,0,-60.119847,-165.54704,1502.447394,
+ -0,1,0,-60.119981,-165.54704,1622.687419,
+ -0,1,0,-47.235971,-165.54704,1633.261077,
+ 0,1,0,-60.119847,-165.54704,1502.447394,
+ -0,1,0,-47.235971,-165.54704,1633.261077,
+ 0,1,0,-47.235814,-165.54704,1491.873764,
+ 0,1,0,-47.235814,-165.54704,1491.873764,
+ -0,1,0,-47.235971,-165.54704,1633.261077,
+ -0,1,0,-32.536705,-165.54704,1641.118019,
+ 0,1,0,-47.235814,-165.54704,1491.873764,
+ -0,1,0,-32.536705,-165.54704,1641.118019,
+ -0,1,0,-32.53653,-165.54704,1484.016855,
+ -0,1,0,-32.53653,-165.54704,1484.016855,
+ -0,1,0,-32.536705,-165.54704,1641.118019,
+ -0,1,0,-16.587068,-165.54704,1645.956308,
+ -0,1,0,-32.53653,-165.54704,1484.016855,
+ -0,1,0,-16.587068,-165.54704,1645.956308,
+ -0,1,0,-16.586883,-165.54704,1479.178602,
+ -0,1,0,-16.586883,-165.54704,1479.178602,
+ -0,1,0,-16.587068,-165.54704,1645.956308,
+ -0,1,0,0.000004,-165.54704,1647.590011,
+ -0,1,0,-16.586883,-165.54704,1479.178602,
+ -0,1,0,0.000004,-165.54704,1647.590011,
+ 0,1,0,0.000193,-165.54704,1477.544936,
+ 0,1,0,0.000193,-165.54704,1477.544936,
+ -0,1,0,0.000004,-165.54704,1647.590011,
+ 0,1,0,16.58708,-165.54704,1645.956345,
+ 0,1,0,0.000193,-165.54704,1477.544936,
+ 0,1,0,16.58708,-165.54704,1645.956345,
+ -0,1,0,16.587266,-165.54704,1479.178638,
+ -0,1,0,16.587266,-165.54704,1479.178638,
+ 0,1,0,16.58708,-165.54704,1645.956345,
+ 0,1,0,32.536728,-165.54704,1641.118092,
+ -0,1,0,16.587266,-165.54704,1479.178638,
+ 0,1,0,32.536728,-165.54704,1641.118092,
+ -0,1,0,32.536903,-165.54704,1484.016927,
+ -0,1,0,32.536903,-165.54704,1484.016927,
+ 0,1,0,32.536728,-165.54704,1641.118092,
+ 0,1,0,47.236011,-165.54704,1633.261182,
+ -0,1,0,32.536903,-165.54704,1484.016927,
+ 0,1,0,47.236011,-165.54704,1633.261182,
+ -0,1,0,47.236168,-165.54704,1491.87387,
+ -0,1,0,47.236168,-165.54704,1491.87387,
+ 0,1,0,47.236011,-165.54704,1633.261182,
+ -0,1,0,60.120045,-165.54704,1622.687553,
+ -0,1,0,47.236168,-165.54704,1491.87387,
+ -0,1,0,60.120045,-165.54704,1622.687553,
+ -0,1,0,60.120178,-165.54704,1502.447527,
+ -0,1,0,60.120178,-165.54704,1502.447527,
+ -0,1,0,60.120045,-165.54704,1622.687553,
+ -0,1,0,70.693703,-165.54704,1609.803543,
+ -0,1,0,60.120178,-165.54704,1502.447527,
+ -0,1,0,70.693703,-165.54704,1609.803543,
+ -0,1,0,70.693808,-165.54704,1515.331561,
+ -0,1,0,70.693808,-165.54704,1515.331561,
+ -0,1,0,70.693703,-165.54704,1609.803543,
+ 0,1,0,78.550645,-165.54704,1595.104277,
+ -0,1,0,70.693808,-165.54704,1515.331561,
+ 0,1,0,78.550645,-165.54704,1595.104277,
+ -0,1,0,78.550717,-165.54704,1530.030844,
+ -0,1,0,78.550717,-165.54704,1530.030844,
+ 0,1,0,78.550645,-165.54704,1595.104277,
+ 0,1,0,83.388934,-165.54704,1579.15464,
+ -0,1,0,78.550717,-165.54704,1530.030844,
+ 0,1,0,83.388934,-165.54704,1579.15464,
+ 0,1,0,83.388971,-165.54704,1545.980492,
+ 0,1,0,83.388971,-165.54704,1545.980492,
+ 0,1,0,83.388934,-165.54704,1579.15464,
+ 0,1,0,85.022636,-165.54704,1562.567568,
+ -0.032814,-0,0.999461,0.000193,-140.14704,1477.544936,
+ -0.162804,-0,0.986658,16.587266,-165.54704,1479.178638,
+ -0.227169,-0,0.973855,16.587266,-140.14704,1479.178638,
+ -0.162804,-0,0.986658,16.587266,-165.54704,1479.178638,
+ -0.032814,-0,0.999461,0.000193,-140.14704,1477.544936,
+ 0.032812,0,0.999462,0.000193,-165.54704,1477.544936,
+ -0.227169,-0,0.973855,16.587266,-140.14704,1479.178638,
+ -0.382684,-0,0.923879,32.536903,-165.54704,1484.016927,
+ -0.382684,-0,0.923879,32.536903,-140.14704,1484.016927,
+ -0.382684,-0,0.923879,32.536903,-165.54704,1484.016927,
+ -0.227169,-0,0.973855,16.587266,-140.14704,1479.178638,
+ -0.162804,-0,0.986658,16.587266,-165.54704,1479.178638,
+ -0.382684,-0,0.923879,32.536903,-165.54704,1484.016927,
+ -0.527989,-0,0.849251,47.236168,-140.14704,1491.87387,
+ -0.382684,-0,0.923879,32.536903,-140.14704,1484.016927,
+ -0.527989,-0,0.849251,47.236168,-140.14704,1491.87387,
+ -0.382684,-0,0.923879,32.536903,-165.54704,1484.016927,
+ -0.582555,-0,0.812791,47.236168,-165.54704,1491.87387,
+ -0.935939,-0,0.352161,78.550717,-165.54704,1530.030844,
+ -0.973856,-0,0.227166,83.388971,-140.14704,1545.980492,
+ -0.910826,-0,0.412791,78.550717,-140.14704,1530.030844,
+ -0.973856,-0,0.227166,83.388971,-140.14704,1545.980492,
+ -0.935939,-0,0.352161,78.550717,-165.54704,1530.030844,
+ -0.986659,-0,0.162802,83.388971,-165.54704,1545.980492,
+ -0.986659,-0,0.162802,83.388971,-165.54704,1545.980492,
+ -0.999462,-0,0.032812,85.022636,-140.14704,1562.567568,
+ -0.973856,-0,0.227166,83.388971,-140.14704,1545.980492,
+ -0.999462,-0,0.032812,85.022636,-140.14704,1562.567568,
+ -0.986659,-0,0.162802,83.388971,-165.54704,1545.980492,
+ -0.999461,-0,-0.032814,85.022636,-165.54704,1562.567568,
+ -0.999461,-0,-0.032814,85.022636,-165.54704,1562.567568,
+ -0.986658,-0,-0.162804,83.388934,-140.14704,1579.15464,
+ -0.999462,-0,0.032812,85.022636,-140.14704,1562.567568,
+ -0.986658,-0,-0.162804,83.388934,-140.14704,1579.15464,
+ -0.999461,-0,-0.032814,85.022636,-165.54704,1562.567568,
+ -0.973855,-0,-0.227169,83.388934,-165.54704,1579.15464,
+ -0.973855,-0,-0.227169,83.388934,-165.54704,1579.15464,
+ -0.935939,-0,-0.352163,78.550645,-140.14704,1595.104277,
+ -0.986658,-0,-0.162804,83.388934,-140.14704,1579.15464,
+ -0.935939,-0,-0.352163,78.550645,-140.14704,1595.104277,
+ -0.973855,-0,-0.227169,83.388934,-165.54704,1579.15464,
+ -0.910825,-0,-0.412793,78.550645,-165.54704,1595.104277,
+ -0.910825,-0,-0.412793,78.550645,-165.54704,1595.104277,
+ -0.849251,-0,-0.527989,70.693703,-140.14704,1609.803543,
+ -0.935939,-0,-0.352163,78.550645,-140.14704,1595.104277,
+ -0.849251,-0,-0.527989,70.693703,-140.14704,1609.803543,
+ -0.910825,-0,-0.412793,78.550645,-165.54704,1595.104277,
+ -0.812791,-0,-0.582555,70.693703,-165.54704,1609.803543,
+ -0.812791,-0,-0.582555,70.693703,-165.54704,1609.803543,
+ -0.729927,-0,-0.683525,60.120045,-140.14704,1622.687553,
+ -0.849251,-0,-0.527989,70.693703,-140.14704,1609.803543,
+ -0.729927,-0,-0.683525,60.120045,-140.14704,1622.687553,
+ -0.812791,-0,-0.582555,70.693703,-165.54704,1609.803543,
+ -0.683523,-0,-0.729929,60.120045,-165.54704,1622.687553,
+ -0.683523,-0,-0.729929,60.120045,-165.54704,1622.687553,
+ -0.582553,-0,-0.812793,47.236011,-140.14704,1633.261182,
+ -0.729927,-0,-0.683525,60.120045,-140.14704,1622.687553,
+ -0.582553,-0,-0.812793,47.236011,-140.14704,1633.261182,
+ -0.683523,-0,-0.729929,60.120045,-165.54704,1622.687553,
+ -0.527987,-0,-0.849252,47.236011,-165.54704,1633.261182,
+ -0.527987,-0,-0.849252,47.236011,-165.54704,1633.261182,
+ -0.412791,-0,-0.910826,32.536728,-140.14704,1641.118092,
+ -0.582553,-0,-0.812793,47.236011,-140.14704,1633.261182,
+ -0.412791,-0,-0.910826,32.536728,-140.14704,1641.118092,
+ -0.527987,-0,-0.849252,47.236011,-165.54704,1633.261182,
+ -0.352161,-0,-0.935939,32.536728,-165.54704,1641.118092,
+ -0.352161,-0,-0.935939,32.536728,-165.54704,1641.118092,
+ -0.227166,-0,-0.973856,16.58708,-140.14704,1645.956345,
+ -0.412791,-0,-0.910826,32.536728,-140.14704,1641.118092,
+ -0.227166,-0,-0.973856,16.58708,-140.14704,1645.956345,
+ -0.352161,-0,-0.935939,32.536728,-165.54704,1641.118092,
+ -0.162802,-0,-0.986659,16.58708,-165.54704,1645.956345,
+ -0.162802,-0,-0.986659,16.58708,-165.54704,1645.956345,
+ -0.032812,-0,-0.999462,0.000004,-140.14704,1647.590011,
+ -0.227166,-0,-0.973856,16.58708,-140.14704,1645.956345,
+ -0.032812,-0,-0.999462,0.000004,-140.14704,1647.590011,
+ -0.162802,-0,-0.986659,16.58708,-165.54704,1645.956345,
+ 0.032814,0,-0.999461,0.000004,-165.54704,1647.590011,
+ 0.032814,0,-0.999461,0.000004,-165.54704,1647.590011,
+ 0.162804,0,-0.986658,-16.587068,-140.14704,1645.956308,
+ -0.032812,-0,-0.999462,0.000004,-140.14704,1647.590011,
+ 0.162804,0,-0.986658,-16.587068,-140.14704,1645.956308,
+ 0.032814,0,-0.999461,0.000004,-165.54704,1647.590011,
+ 0.227169,0,-0.973855,-16.587068,-165.54704,1645.956308,
+ 0.227169,0,-0.973855,-16.587068,-165.54704,1645.956308,
+ 0.352163,0,-0.935939,-32.536705,-140.14704,1641.118019,
+ 0.162804,0,-0.986658,-16.587068,-140.14704,1645.956308,
+ 0.352163,0,-0.935939,-32.536705,-140.14704,1641.118019,
+ 0.227169,0,-0.973855,-16.587068,-165.54704,1645.956308,
+ 0.412793,0,-0.910825,-32.536705,-165.54704,1641.118019,
+ 0.412793,0,-0.910825,-32.536705,-165.54704,1641.118019,
+ 0.527989,0,-0.849251,-47.235971,-140.14704,1633.261077,
+ 0.352163,0,-0.935939,-32.536705,-140.14704,1641.118019,
+ 0.527989,0,-0.849251,-47.235971,-140.14704,1633.261077,
+ 0.412793,0,-0.910825,-32.536705,-165.54704,1641.118019,
+ 0.582555,0,-0.812791,-47.235971,-165.54704,1633.261077,
+ 0.582555,0,-0.812791,-47.235971,-165.54704,1633.261077,
+ 0.707108,-0,-0.707106,-60.119981,-140.14704,1622.687419,
+ 0.527989,0,-0.849251,-47.235971,-140.14704,1633.261077,
+ 0.707108,-0,-0.707106,-60.119981,-140.14704,1622.687419,
+ 0.582555,0,-0.812791,-47.235971,-165.54704,1633.261077,
+ 0.707108,0,-0.707106,-60.119981,-165.54704,1622.687419,
+ 0.707108,-0,-0.707106,-60.119981,-140.14704,1622.687419,
+ 0.812793,-0,-0.582553,-70.69361,-165.54704,1609.803386,
+ 0.849252,-0,-0.527987,-70.69361,-140.14704,1609.803386,
+ 0.812793,-0,-0.582553,-70.69361,-165.54704,1609.803386,
+ 0.707108,-0,-0.707106,-60.119981,-140.14704,1622.687419,
+ 0.707108,0,-0.707106,-60.119981,-165.54704,1622.687419,
+ 0.849252,-0,-0.527987,-70.69361,-140.14704,1609.803386,
+ 0.910826,-0,-0.412791,-78.55052,-165.54704,1595.104103,
+ 0.935939,0,-0.352161,-78.55052,-140.14704,1595.104103,
+ 0.910826,-0,-0.412791,-78.55052,-165.54704,1595.104103,
+ 0.849252,-0,-0.527987,-70.69361,-140.14704,1609.803386,
+ 0.812793,-0,-0.582553,-70.69361,-165.54704,1609.803386,
+ 0.935939,0,-0.352161,-78.55052,-140.14704,1595.104103,
+ 0.973856,0,-0.227166,-83.388773,-165.54704,1579.154455,
+ 0.986659,0,-0.162802,-83.388773,-140.14704,1579.154455,
+ 0.973856,0,-0.227166,-83.388773,-165.54704,1579.154455,
+ 0.935939,0,-0.352161,-78.55052,-140.14704,1595.104103,
+ 0.910826,-0,-0.412791,-78.55052,-165.54704,1595.104103,
+ 0.986659,0,-0.162802,-83.388773,-140.14704,1579.154455,
+ 0.999462,0,-0.032812,-85.022439,-165.54704,1562.567379,
+ 0.999461,0,0.032814,-85.022439,-140.14704,1562.567379,
+ 0.999462,0,-0.032812,-85.022439,-165.54704,1562.567379,
+ 0.986659,0,-0.162802,-83.388773,-140.14704,1579.154455,
+ 0.973856,0,-0.227166,-83.388773,-165.54704,1579.154455,
+ 0.999461,0,0.032814,-85.022439,-140.14704,1562.567379,
+ 0.986658,0,0.162804,-83.388736,-165.54704,1545.980306,
+ 0.973855,0,0.227169,-83.388736,-140.14704,1545.980306,
+ 0.986658,0,0.162804,-83.388736,-165.54704,1545.980306,
+ 0.999461,0,0.032814,-85.022439,-140.14704,1562.567379,
+ 0.999462,0,-0.032812,-85.022439,-165.54704,1562.567379,
+ 0.973855,0,0.227169,-83.388736,-140.14704,1545.980306,
+ 0.935939,0,0.352163,-78.550447,-165.54704,1530.030669,
+ 0.910825,0,0.412793,-78.550447,-140.14704,1530.030669,
+ 0.935939,0,0.352163,-78.550447,-165.54704,1530.030669,
+ 0.973855,0,0.227169,-83.388736,-140.14704,1545.980306,
+ 0.986658,0,0.162804,-83.388736,-165.54704,1545.980306,
+ 0.910825,0,0.412793,-78.550447,-140.14704,1530.030669,
+ 0.849251,0,0.527989,-70.693505,-165.54704,1515.331404,
+ 0.812791,0,0.582555,-70.693505,-140.14704,1515.331404,
+ 0.849251,0,0.527989,-70.693505,-165.54704,1515.331404,
+ 0.910825,0,0.412793,-78.550447,-140.14704,1530.030669,
+ 0.935939,0,0.352163,-78.550447,-165.54704,1530.030669,
+ 0.812791,0,0.582555,-70.693505,-140.14704,1515.331404,
+ 0.729927,0,0.683525,-60.119847,-165.54704,1502.447394,
+ 0.683523,0,0.729929,-60.119847,-140.14704,1502.447394,
+ 0.729927,0,0.683525,-60.119847,-165.54704,1502.447394,
+ 0.812791,0,0.582555,-70.693505,-140.14704,1515.331404,
+ 0.849251,0,0.527989,-70.693505,-165.54704,1515.331404,
+ 0.683523,0,0.729929,-60.119847,-140.14704,1502.447394,
+ 0.582553,0,0.812793,-47.235814,-165.54704,1491.873764,
+ 0.527987,0,0.849252,-47.235814,-140.14704,1491.873764,
+ 0.582553,0,0.812793,-47.235814,-165.54704,1491.873764,
+ 0.683523,0,0.729929,-60.119847,-140.14704,1502.447394,
+ 0.729927,0,0.683525,-60.119847,-165.54704,1502.447394,
+ 0.527987,0,0.849252,-47.235814,-140.14704,1491.873764,
+ 0.412791,0,0.910826,-32.53653,-165.54704,1484.016855,
+ 0.352161,0,0.935939,-32.53653,-140.14704,1484.016855,
+ 0.412791,0,0.910826,-32.53653,-165.54704,1484.016855,
+ 0.527987,0,0.849252,-47.235814,-140.14704,1491.873764,
+ 0.582553,0,0.812793,-47.235814,-165.54704,1491.873764,
+ 0.352161,0,0.935939,-32.53653,-140.14704,1484.016855,
+ 0.227166,0,0.973856,-16.586883,-165.54704,1479.178602,
+ 0.162802,0,0.986659,-16.586883,-140.14704,1479.178602,
+ 0.227166,0,0.973856,-16.586883,-165.54704,1479.178602,
+ 0.352161,0,0.935939,-32.53653,-140.14704,1484.016855,
+ 0.412791,0,0.910826,-32.53653,-165.54704,1484.016855,
+ 0.162802,0,0.986659,-16.586883,-140.14704,1479.178602,
+ 0.032812,0,0.999462,0.000193,-165.54704,1477.544936,
+ -0.032814,-0,0.999461,0.000193,-140.14704,1477.544936,
+ 0.032812,0,0.999462,0.000193,-165.54704,1477.544936,
+ 0.162802,0,0.986659,-16.586883,-140.14704,1479.178602,
+ 0.227166,0,0.973856,-16.586883,-165.54704,1479.178602,
+ 0.849252,0,-0.527987,-70.69361,-301.60976,1609.803386,
+ 0.910826,0,-0.412791,-78.55052,-327.00976,1595.104103,
+ 0.935939,0,-0.352161,-78.55052,-301.60976,1595.104103,
+ 0.910826,0,-0.412791,-78.55052,-327.00976,1595.104103,
+ 0.849252,0,-0.527987,-70.69361,-301.60976,1609.803386,
+ 0.812793,0,-0.582553,-70.69361,-327.00976,1609.803386,
+ -0.162802,-0,-0.986659,16.58708,-327.00976,1645.956345,
+ -0.032812,-0,-0.999462,0.000004,-301.60976,1647.590011,
+ -0.227166,-0,-0.973856,16.58708,-301.60976,1645.956345,
+ -0.032812,-0,-0.999462,0.000004,-301.60976,1647.590011,
+ -0.162802,-0,-0.986659,16.58708,-327.00976,1645.956345,
+ 0.032814,0,-0.999461,0.000004,-327.00976,1647.590011,
+ 0.227169,0,-0.973855,-16.587068,-327.00976,1645.956308,
+ 0.352163,0,-0.935939,-32.536705,-301.60976,1641.118019,
+ 0.162804,0,-0.986658,-16.587068,-301.60976,1645.956308,
+ 0.352163,0,-0.935939,-32.536705,-301.60976,1641.118019,
+ 0.227169,0,-0.973855,-16.587068,-327.00976,1645.956308,
+ 0.412793,0,-0.910825,-32.536705,-327.00976,1641.118019,
+ 0.032814,0,-0.999461,0.000004,-327.00976,1647.590011,
+ 0.162804,0,-0.986658,-16.587068,-301.60976,1645.956308,
+ -0.032812,-0,-0.999462,0.000004,-301.60976,1647.590011,
+ 0.162804,0,-0.986658,-16.587068,-301.60976,1645.956308,
+ 0.032814,0,-0.999461,0.000004,-327.00976,1647.590011,
+ 0.227169,0,-0.973855,-16.587068,-327.00976,1645.956308,
+ 0.527987,0,0.849252,-47.235814,-301.60976,1491.873764,
+ 0.412791,0,0.910826,-32.53653,-327.00976,1484.016855,
+ 0.352161,0,0.935939,-32.53653,-301.60976,1484.016855,
+ 0.412791,0,0.910826,-32.53653,-327.00976,1484.016855,
+ 0.527987,0,0.849252,-47.235814,-301.60976,1491.873764,
+ 0.582553,0,0.812793,-47.235814,-327.00976,1491.873764,
+ 0.910825,0,0.412793,-78.550447,-301.60976,1530.030669,
+ 0.849251,0,0.527989,-70.693505,-327.00976,1515.331404,
+ 0.812791,0,0.582555,-70.693505,-301.60976,1515.331404,
+ 0.849251,0,0.527989,-70.693505,-327.00976,1515.331404,
+ 0.910825,0,0.412793,-78.550447,-301.60976,1530.030669,
+ 0.935939,0,0.352163,-78.550447,-327.00976,1530.030669,
+ 0.707108,0,-0.707106,-60.119981,-301.60976,1622.687419,
+ 0.812793,0,-0.582553,-70.69361,-327.00976,1609.803386,
+ 0.849252,0,-0.527987,-70.69361,-301.60976,1609.803386,
+ 0.812793,0,-0.582553,-70.69361,-327.00976,1609.803386,
+ 0.707108,0,-0.707106,-60.119981,-301.60976,1622.687419,
+ 0.707108,0,-0.707106,-60.119981,-327.00976,1622.687419,
+ 0.352161,0,0.935939,-32.53653,-301.60976,1484.016855,
+ 0.227166,0,0.973856,-16.586883,-327.00976,1479.178602,
+ 0.162802,0,0.986659,-16.586883,-301.60976,1479.178602,
+ 0.227166,0,0.973856,-16.586883,-327.00976,1479.178602,
+ 0.352161,0,0.935939,-32.53653,-301.60976,1484.016855,
+ 0.412791,0,0.910826,-32.53653,-327.00976,1484.016855,
+ 0.683523,0,0.729929,-60.119847,-301.60976,1502.447394,
+ 0.582553,0,0.812793,-47.235814,-327.00976,1491.873764,
+ 0.527987,0,0.849252,-47.235814,-301.60976,1491.873764,
+ 0.582553,0,0.812793,-47.235814,-327.00976,1491.873764,
+ 0.683523,0,0.729929,-60.119847,-301.60976,1502.447394,
+ 0.729927,0,0.683525,-60.119847,-327.00976,1502.447394,
+ 0.986659,0,-0.162802,-83.388773,-301.60976,1579.154455,
+ 0.999462,0,-0.032812,-85.022439,-327.00976,1562.567379,
+ 0.999461,0,0.032814,-85.022439,-301.60976,1562.567379,
+ 0.999462,0,-0.032812,-85.022439,-327.00976,1562.567379,
+ 0.986659,0,-0.162802,-83.388773,-301.60976,1579.154455,
+ 0.973856,0,-0.227166,-83.388773,-327.00976,1579.154455,
+ 0.162802,0,0.986659,-16.586883,-301.60976,1479.178602,
+ 0.032812,0,0.999462,0.000193,-327.00976,1477.544936,
+ -0.032814,-0,0.999461,0.000193,-301.60976,1477.544936,
+ 0.032812,0,0.999462,0.000193,-327.00976,1477.544936,
+ 0.162802,0,0.986659,-16.586883,-301.60976,1479.178602,
+ 0.227166,0,0.973856,-16.586883,-327.00976,1479.178602,
+ -0.032814,-0,0.999461,0.000193,-301.60976,1477.544936,
+ -0.162804,-0,0.986658,16.587266,-327.00976,1479.178638,
+ -0.227169,-0,0.973855,16.587266,-301.60976,1479.178638,
+ -0.162804,-0,0.986658,16.587266,-327.00976,1479.178638,
+ -0.032814,-0,0.999461,0.000193,-301.60976,1477.544936,
+ 0.032812,0,0.999462,0.000193,-327.00976,1477.544936,
+ -0.227169,-0,0.973855,16.587266,-301.60976,1479.178638,
+ -0.382684,-0,0.923879,32.536903,-327.00976,1484.016927,
+ -0.382684,-0,0.923879,32.536903,-301.60976,1484.016927,
+ -0.382684,-0,0.923879,32.536903,-327.00976,1484.016927,
+ -0.227169,-0,0.973855,16.587266,-301.60976,1479.178638,
+ -0.162804,-0,0.986658,16.587266,-327.00976,1479.178638,
+ -0.382684,-0,0.923879,32.536903,-327.00976,1484.016927,
+ -0.527989,-0,0.849251,47.236168,-301.60976,1491.87387,
+ -0.382684,-0,0.923879,32.536903,-301.60976,1484.016927,
+ -0.527989,-0,0.849251,47.236168,-301.60976,1491.87387,
+ -0.382684,-0,0.923879,32.536903,-327.00976,1484.016927,
+ -0.582555,-0,0.812791,47.236168,-327.00976,1491.87387,
+ -0.582555,-0,0.812791,47.236168,-327.00976,1491.87387,
+ -0.707108,-0,0.707106,60.120178,-301.60976,1502.447527,
+ -0.527989,-0,0.849251,47.236168,-301.60976,1491.87387,
+ -0.707108,-0,0.707106,60.120178,-301.60976,1502.447527,
+ -0.582555,-0,0.812791,47.236168,-327.00976,1491.87387,
+ -0.707108,-0,0.707106,60.120178,-327.00976,1502.447527,
+ -0.812793,-0,0.582553,70.693808,-327.00976,1515.331561,
+ -0.707108,-0,0.707106,60.120178,-301.60976,1502.447527,
+ -0.707108,-0,0.707106,60.120178,-327.00976,1502.447527,
+ -0.707108,-0,0.707106,60.120178,-301.60976,1502.447527,
+ -0.812793,-0,0.582553,70.693808,-327.00976,1515.331561,
+ -0.849252,-0,0.527987,70.693808,-301.60976,1515.331561,
+ -0.910826,-0,0.412791,78.550717,-327.00976,1530.030844,
+ -0.849252,-0,0.527987,70.693808,-301.60976,1515.331561,
+ -0.812793,-0,0.582553,70.693808,-327.00976,1515.331561,
+ -0.849252,-0,0.527987,70.693808,-301.60976,1515.331561,
+ -0.910826,-0,0.412791,78.550717,-327.00976,1530.030844,
+ -0.935939,-0,0.352161,78.550717,-301.60976,1530.030844,
+ -0.973856,-0,0.227166,83.388971,-327.00976,1545.980492,
+ -0.935939,-0,0.352161,78.550717,-301.60976,1530.030844,
+ -0.910826,-0,0.412791,78.550717,-327.00976,1530.030844,
+ -0.935939,-0,0.352161,78.550717,-301.60976,1530.030844,
+ -0.973856,-0,0.227166,83.388971,-327.00976,1545.980492,
+ -0.986659,-0,0.162802,83.388971,-301.60976,1545.980492,
+ -0.999462,-0,0.032812,85.022636,-327.00976,1562.567568,
+ -0.986659,-0,0.162802,83.388971,-301.60976,1545.980492,
+ -0.973856,-0,0.227166,83.388971,-327.00976,1545.980492,
+ -0.986659,-0,0.162802,83.388971,-301.60976,1545.980492,
+ -0.999462,-0,0.032812,85.022636,-327.00976,1562.567568,
+ -0.999461,-0,-0.032814,85.022636,-301.60976,1562.567568,
+ -0.986658,-0,-0.162804,83.388934,-327.00976,1579.15464,
+ -0.999461,-0,-0.032814,85.022636,-301.60976,1562.567568,
+ -0.999462,-0,0.032812,85.022636,-327.00976,1562.567568,
+ -0.999461,-0,-0.032814,85.022636,-301.60976,1562.567568,
+ -0.986658,-0,-0.162804,83.388934,-327.00976,1579.15464,
+ -0.973855,-0,-0.227169,83.388934,-301.60976,1579.15464,
+ -0.935939,-0,-0.352163,78.550645,-327.00976,1595.104277,
+ -0.973855,-0,-0.227169,83.388934,-301.60976,1579.15464,
+ -0.986658,-0,-0.162804,83.388934,-327.00976,1579.15464,
+ -0.973855,-0,-0.227169,83.388934,-301.60976,1579.15464,
+ -0.935939,-0,-0.352163,78.550645,-327.00976,1595.104277,
+ -0.910825,-0,-0.412793,78.550645,-301.60976,1595.104277,
+ -0.849251,-0,-0.527989,70.693703,-327.00976,1609.803543,
+ -0.910825,-0,-0.412793,78.550645,-301.60976,1595.104277,
+ -0.935939,-0,-0.352163,78.550645,-327.00976,1595.104277,
+ -0.910825,-0,-0.412793,78.550645,-301.60976,1595.104277,
+ -0.849251,-0,-0.527989,70.693703,-327.00976,1609.803543,
+ -0.812791,-0,-0.582555,70.693703,-301.60976,1609.803543,
+ -0.707106,-0,-0.707108,60.120045,-327.00976,1622.687553,
+ -0.812791,-0,-0.582555,70.693703,-301.60976,1609.803543,
+ -0.849251,-0,-0.527989,70.693703,-327.00976,1609.803543,
+ -0.812791,-0,-0.582555,70.693703,-301.60976,1609.803543,
+ -0.707106,-0,-0.707108,60.120045,-327.00976,1622.687553,
+ -0.707106,-0,-0.707108,60.120045,-301.60976,1622.687553,
+ -0.707106,-0,-0.707108,60.120045,-327.00976,1622.687553,
+ -0.582553,-0,-0.812793,47.236011,-301.60976,1633.261182,
+ -0.707106,-0,-0.707108,60.120045,-301.60976,1622.687553,
+ -0.582553,-0,-0.812793,47.236011,-301.60976,1633.261182,
+ -0.707106,-0,-0.707108,60.120045,-327.00976,1622.687553,
+ -0.527987,-0,-0.849252,47.236011,-327.00976,1633.261182,
+ -0.527987,-0,-0.849252,47.236011,-327.00976,1633.261182,
+ -0.412791,-0,-0.910826,32.536728,-301.60976,1641.118092,
+ -0.582553,-0,-0.812793,47.236011,-301.60976,1633.261182,
+ -0.412791,-0,-0.910826,32.536728,-301.60976,1641.118092,
+ -0.527987,-0,-0.849252,47.236011,-327.00976,1633.261182,
+ -0.352161,-0,-0.935939,32.536728,-327.00976,1641.118092,
+ -0.352161,-0,-0.935939,32.536728,-327.00976,1641.118092,
+ -0.227166,-0,-0.973856,16.58708,-301.60976,1645.956345,
+ -0.412791,-0,-0.910826,32.536728,-301.60976,1641.118092,
+ -0.227166,-0,-0.973856,16.58708,-301.60976,1645.956345,
+ -0.352161,-0,-0.935939,32.536728,-327.00976,1641.118092,
+ -0.162802,-0,-0.986659,16.58708,-327.00976,1645.956345,
+ -1,-0,-0.000001,-29.712222,-140.14704,1681.416397,
+ -0.947173,-0,-0.320723,-27.450503,-0,1670.046016,
+ -0.896537,-0,-0.442969,-27.450503,-140.14704,1670.046016,
+ -0.947173,-0,-0.320723,-27.450503,-0,1670.046016,
+ -1,-0,-0.000001,-29.712222,-140.14704,1681.416397,
+ -1,-0,-0.000001,-29.712222,-0,1681.416397,
+ 0.382684,-0,-0.923879,11.370427,-0,1653.965901,
+ 0.000001,-0,-1,0.000046,-140.14704,1651.704181,
+ 0.000001,-0,-1,0.000046,-0,1651.704181,
+ 0.000001,-0,-1,0.000046,-140.14704,1651.704181,
+ 0.382684,-0,-0.923879,11.370427,-0,1653.965901,
+ 0.382684,-0,-0.923879,11.370427,-140.14704,1653.965901,
+ -0.896538,-0,0.442967,-27.450523,-140.14704,1692.786782,
+ -0.707107,-0,0.707106,-21.009727,-0,1702.426133,
+ -0.947174,-0,0.320721,-27.450523,-0,1692.786782,
+ -0.707107,-0,0.707106,-21.009727,-0,1702.426133,
+ -0.896538,-0,0.442967,-27.450523,-140.14704,1692.786782,
+ -0.707107,-0,0.707106,-21.009727,-140.14704,1702.426133,
+ 0.896538,0,-0.442967,27.450563,-0,1670.046065,
+ 0.707107,-0,-0.707106,21.009767,-140.14704,1660.406714,
+ 0.707107,0,-0.707106,21.009767,-0,1660.406714,
+ 0.707107,-0,-0.707106,21.009767,-140.14704,1660.406714,
+ 0.896538,0,-0.442967,27.450563,-0,1670.046065,
+ 0.947174,0,-0.320721,27.450563,-140.14704,1670.046065,
+ -1,-0,-0.000001,-29.712222,-140.14704,1681.416397,
+ -0.947174,-0,0.320721,-27.450523,-0,1692.786782,
+ -1,-0,-0.000001,-29.712222,-0,1681.416397,
+ -0.947174,-0,0.320721,-27.450523,-0,1692.786782,
+ -1,-0,-0.000001,-29.712222,-140.14704,1681.416397,
+ -0.896538,-0,0.442967,-27.450523,-140.14704,1692.786782,
+ 0.000001,-0,-1,0.000046,-140.14704,1651.704181,
+ -0.320721,-0,-0.947174,-11.370339,-0,1653.965881,
+ 0.000001,-0,-1,0.000046,-0,1651.704181,
+ -0.320721,-0,-0.947174,-11.370339,-0,1653.965881,
+ 0.000001,-0,-1,0.000046,-140.14704,1651.704181,
+ -0.442967,-0,-0.896538,-11.370339,-140.14704,1653.965881,
+ -0.382684,-0,0.923879,-11.370387,-140.14704,1708.866946,
+ -0.000001,0,1,-0.000006,-0,1711.128666,
+ -0.382684,-0,0.923879,-11.370387,-0,1708.866946,
+ -0.000001,0,1,-0.000006,-0,1711.128666,
+ -0.382684,-0,0.923879,-11.370387,-140.14704,1708.866946,
+ -0.000001,0,1,-0.000006,-140.14704,1711.128666
+};
+static const struct gllist robot_rotator_half_frame = { GL_N3F_V3F, GL_TRIANGLES, 1290, robot_rotator_half_data, 0 };
+const struct gllist *robot_rotator_half = &robot_rotator_half_frame;
diff --git a/hacks/glx/robot.dxf b/hacks/glx/robot.dxf
new file mode 100644
index 0000000..33337a2
--- /dev/null
+++ b/hacks/glx/robot.dxf
@@ -0,0 +1,185616 @@
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+LINE
+ 8
+body_half_outside
+10
+49.3833285852636
+20
+-973.755695339679
+30
+2091.49823824434
+11
+-1.46818399649623
+21
+-975.178141079999
+31
+2078.18338184642
+ 0
+LINE
+ 8
+body_half_outside
+10
+49.3833285852636
+20
+-973.755695339679
+30
+2091.49823824434
+11
+104.493582702864
+21
+-954.855979397759
+31
+2142.57132329634
+ 0
+LINE
+ 8
+body_half_outside
+10
+49.3833285852636
+20
+-973.755695339678
+30
+1978.90616179826
+11
+104.493582702864
+21
+-970.431454266559
+31
+2000.14082085794
+ 0
+LINE
+ 8
+body_half_outside
+10
+47.4423855126237
+20
+-935.483454058559
+30
+2215.03930219042
+11
+104.493582702864
+21
+-941.451475609919
+31
+2182.48702219986
+ 0
+LINE
+ 8
+body_half_outside
+10
+49.3833285852636
+20
+-973.755695339678
+30
+1978.90616179826
+11
+7.02533393134383
+21
+-975.148943779999
+31
+1991.94707744866
+ 0
+LINE
+ 8
+body_half_outside
+10
+104.493582702864
+20
+-954.855979397759
+30
+2142.57132329634
+11
+48.5792115854235
+21
+-957.900066537919
+31
+2152.7213325213
+ 0
+LINE
+ 8
+body_half_outside
+10
+48.5792115854235
+20
+-957.900066537919
+30
+2152.7213325213
+11
+104.493582702864
+21
+-941.451475609919
+31
+2182.48702219986
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493609641047
+20
+-876.169915138752
+30
+2001.23529816273
+11
+180.675224578544
+21
+-881.220764951522
+31
+2017.88600937388
+12
+180.675224578544
+22
+-876.169825263419
+32
+2001.23529268221
+13
+180.675224578544
+23
+-876.169825263419
+33
+2001.23529268221
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-881.220764951522
+30
+2017.88600937388
+11
+104.493609641047
+21
+-876.169915138752
+31
+2001.23529816273
+12
+104.493608114757
+22
+-881.220857485245
+32
+2017.88602361794
+13
+104.493608114757
+23
+-881.220857485245
+33
+2017.88602361794
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-731.403895497386
+30
+1972.43955887653
+11
+104.493591159588
+21
+-720.365490157703
+31
+1985.88990169709
+12
+104.493594381798
+22
+-731.40390918009
+32
+1972.4395492014
+13
+104.493594381798
+23
+-731.40390918009
+33
+1972.4395492014
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493591159588
+20
+-720.365490157703
+30
+1985.88990169709
+11
+180.675224578544
+21
+-731.403895497386
+31
+1972.43955887653
+12
+180.675224578544
+22
+-720.365482284693
+32
+1985.88990429309
+13
+180.675224578544
+23
+-720.365482284693
+33
+1985.88990429309
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493610580936
+20
+-843.478858324204
+30
+1961.40113017901
+11
+180.675224578544
+21
+-828.133397265575
+31
+1953.19886468436
+12
+104.493609641054
+22
+-828.133461858565
+32
+1953.19884488255
+13
+104.493609641054
+23
+-828.133461858565
+33
+1953.19884488255
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-828.133397265575
+30
+1953.19886468436
+11
+104.493610580936
+21
+-843.478858324204
+31
+1961.40113017901
+12
+180.675224578544
+22
+-843.478785654691
+32
+1961.40114566384
+13
+180.675224578544
+23
+-843.478785654691
+33
+1961.40114566384
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-778.906875772646
+20
+-154.93421062823
+30
+1614.7610800213
+11
+-878.79625075709
+21
+-89.3648841254364
+31
+1427.8983600213
+12
+-870.542978388701
+22
+-173.161764737035
+32
+1427.8983600213
+13
+-870.542978388701
+23
+-173.161764737035
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-878.79625075709
+20
+-89.3648841254364
+30
+1427.8983600213
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+-794.166563605455
+22
+1.80477854883065e-13
+32
+1614.7610800213
+13
+-794.166563605455
+23
+1.80477854883065e-13
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-878.79625075709
+20
+-89.3648841254364
+30
+1427.8983600213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-887.597923605455
+22
+3.60955709766131e-13
+32
+1427.8983600213
+13
+-887.597923605455
+23
+3.60955709766131e-13
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+978.352295145615
+20
+-194.606371158736
+30
+2361.46489814399
+11
+863.207469797099
+21
+-357.552241131722
+31
+2455.6433200213
+12
+921.587710511789
+22
+-381.734128610352
+32
+2361.46489814399
+13
+921.587710511789
+23
+-381.734128610352
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+863.207469797099
+20
+-357.552241131722
+30
+2455.6433200213
+11
+978.352295145615
+21
+-194.606371158736
+31
+2361.46489814399
+12
+887.227326571027
+22
+-278.369385106107
+32
+2455.6433200213
+13
+887.227326571027
+23
+-278.369385106107
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+887.227326571027
+20
+-278.369385106107
+30
+2455.6433200213
+11
+978.352295145615
+21
+-194.606371158736
+31
+2361.46489814399
+12
+914.651020883606
+22
+-187.965580500561
+32
+2455.6433200213
+13
+914.651020883606
+23
+-187.965580500561
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+914.651020883606
+20
+-187.965580500561
+30
+2455.6433200213
+11
+978.352295145615
+21
+-194.606371158736
+31
+2361.46489814399
+12
+916.376162171087
+22
+-182.278551827737
+32
+2455.6433200213
+13
+916.376162171087
+23
+-182.278551827737
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+415.26146157539
+20
+-621.482696406623
+30
+1427.8983600213
+11
+321.791703197793
+21
+-776.873894119249
+31
+1241.03564002131
+12
+467.169144021928
+22
+-699.168033082722
+32
+1241.03564002131
+13
+467.169144021928
+23
+-699.168033082722
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.873894119249
+30
+1241.03564002131
+11
+415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+286.037069662455
+22
+-690.554572920556
+32
+1427.8983600213
+13
+286.037069662455
+23
+-690.554572920556
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-470.848959476119
+20
+-704.67526609701
+30
+796.153149972084
+11
+-590.997993226901
+21
+-590.997993226901
+31
+738.078199114136
+12
+-464.344143695271
+22
+-694.940121314314
+32
+738.078199114136
+13
+-464.344143695271
+23
+-694.940121314314
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-590.997993226901
+20
+-590.997993226901
+30
+738.078199114136
+11
+-470.848959476119
+21
+-704.67526609701
+31
+796.153149972084
+12
+-599.277053327022
+22
+-599.277053327022
+32
+796.153149972084
+13
+-599.277053327022
+23
+-599.277053327022
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2549.0746800213
+11
+0.0
+21
+-840.882243605455
+31
+2455.6433200213
+12
+164.047987682633
+22
+-824.724927080674
+32
+2455.6433200213
+13
+164.047987682633
+23
+-824.724927080674
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+2455.6433200213
+11
+164.047987682633
+21
+-824.724927080674
+31
+2549.0746800213
+12
+0.0
+22
+-840.882243605455
+32
+2549.0746800213
+13
+0.0
+23
+-840.882243605455
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+2549.0746800213
+11
+164.047987682633
+21
+-824.724927080674
+31
+2549.0746800213
+12
+126.903660366379
+22
+-828.38332400481
+32
+2549.0746800213
+13
+126.903660366379
+23
+-828.38332400481
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+2549.0746800213
+11
+126.903660366379
+21
+-828.38332400481
+31
+2549.0746800213
+12
+42.4327751671525
+22
+-836.702980030903
+32
+2549.0746800213
+13
+42.4327751671525
+23
+-836.702980030903
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+2549.0746800213
+11
+467.169144021928
+21
+-699.168033082722
+31
+2455.6433200213
+12
+594.593536632776
+22
+-594.593536632776
+32
+2455.6433200213
+13
+594.593536632776
+23
+-594.593536632776
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+594.593536632776
+21
+-594.593536632776
+31
+2549.0746800213
+12
+467.169144021928
+22
+-699.168033082722
+32
+2549.0746800213
+13
+467.169144021928
+23
+-699.168033082722
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2549.0746800213
+11
+594.593536632776
+21
+-594.593536632776
+31
+2549.0746800213
+12
+578.083233221301
+22
+-608.143192472719
+32
+2549.0746800213
+13
+578.083233221301
+23
+-608.143192472719
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2549.0746800213
+11
+578.083233221301
+21
+-608.143192472719
+31
+2549.0746800213
+12
+512.438726622327
+22
+-662.016246772909
+32
+2549.0746800213
+13
+512.438726622327
+23
+-662.016246772909
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-814.429823327873
+20
+1.80477854883065e-13
+30
+682.822310520627
+11
+-768.954752250597
+21
+-152.954610178005
+31
+631.979456702016
+12
+-798.780782641381
+22
+-158.887376492573
+32
+682.822310520627
+13
+-798.780782641381
+23
+-158.887376492573
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-768.954752250597
+20
+-152.954610178005
+30
+631.979456702016
+11
+-814.429823327873
+21
+1.80477854883065e-13
+31
+682.822310520627
+12
+-784.019466456977
+22
+1.80477854883065e-13
+32
+631.979456702016
+13
+-784.019466456977
+23
+1.80477854883065e-13
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+2361.46489814399
+11
+203.671280618918
+21
+-1023.92467246733
+31
+2258.00680432354
+12
+399.51558814382
+22
+-964.515951276275
+32
+2258.00680432354
+13
+399.51558814382
+23
+-964.515951276275
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+203.671280618918
+20
+-1023.92467246733
+30
+2258.00680432354
+11
+381.734128610352
+21
+-921.587710511788
+31
+2361.46489814399
+12
+194.606371158736
+22
+-978.352295145615
+32
+2361.46489814399
+13
+194.606371158736
+23
+-978.352295145615
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+357.552241131722
+20
+-863.2074697971
+30
+2455.6433200213
+11
+194.606371158736
+21
+-978.352295145615
+31
+2361.46489814399
+12
+381.734128610352
+22
+-921.587710511788
+32
+2361.46489814399
+13
+381.734128610352
+23
+-921.587710511788
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+194.606371158736
+20
+-978.352295145615
+30
+2361.46489814399
+11
+357.552241131722
+21
+-863.2074697971
+31
+2455.6433200213
+12
+182.278551827736
+22
+-916.376162171087
+32
+2455.6433200213
+13
+182.278551827736
+23
+-916.376162171087
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+182.278551827736
+20
+-916.376162171087
+30
+2455.6433200213
+11
+357.552241131722
+21
+-863.2074697971
+31
+2455.6433200213
+12
+323.520353242804
+22
+-873.5309301251
+32
+2455.6433200213
+13
+323.520353242804
+23
+-873.5309301251
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+182.278551827736
+20
+-916.376162171087
+30
+2455.6433200213
+11
+323.520353242804
+21
+-873.5309301251
+31
+2455.6433200213
+12
+233.261899594599
+22
+-900.91053270681
+32
+2455.6433200213
+13
+233.261899594599
+23
+-900.91053270681
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+798.780782641381
+20
+-158.887376492573
+30
+682.822310520627
+11
+835.797377356766
+21
+1.80477854883065e-13
+31
+738.078199114136
+12
+819.73776511114
+22
+-163.055979488767
+32
+738.078199114136
+13
+819.73776511114
+23
+-163.055979488767
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+835.797377356766
+20
+1.80477854883065e-13
+30
+738.078199114136
+11
+798.780782641381
+21
+-158.887376492573
+31
+682.822310520627
+12
+814.429823327873
+22
+1.80477854883065e-13
+32
+682.822310520627
+13
+814.429823327873
+23
+1.80477854883065e-13
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-723.84293286299
+20
+-790.84270017674
+30
+2109.1268343449
+11
+-768.602809842621
+21
+-861.72900857618
+31
+2086.28270221439
+12
+-783.644995364665
+22
+-846.504456965985
+32
+2095.12279472996
+13
+-783.644995364665
+23
+-846.504456965985
+33
+2095.12279472996
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-768.602809842621
+20
+-861.72900857618
+30
+2086.28270221439
+11
+-723.84293286299
+21
+-790.84270017674
+31
+2109.1268343449
+12
+-703.270205185374
+22
+-808.916878172158
+32
+2098.19892992261
+13
+-703.270205185374
+23
+-808.916878172158
+33
+2098.19892992261
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1023.92467246733
+20
+-203.671280618918
+30
+2258.00680432354
+11
+-1072.40303302985
+21
+3.60955709766131e-13
+31
+2148.21162800104
+12
+-1051.79710945546
+22
+-209.215453044867
+32
+2148.21162800104
+13
+-1051.79710945546
+23
+-209.215453044867
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1072.40303302985
+20
+3.60955709766131e-13
+30
+2148.21162800104
+11
+-1023.92467246733
+21
+-203.671280618918
+31
+2258.00680432354
+12
+-1043.98454271904
+22
+3.60955709766131e-13
+32
+2258.00680432354
+13
+-1043.98454271904
+23
+3.60955709766131e-13
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+279.792110043812
+20
+-1038.25578712258
+30
+2035.20217666346
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+287.457754814725
+22
+-1035.93043920361
+32
+2011.5925230317
+13
+287.457754814725
+23
+-1035.93043920361
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+279.792110043812
+21
+-1038.25578712258
+31
+2035.20217666346
+12
+210.691411720441
+22
+-1059.21725479392
+32
+2058.8118770109
+13
+210.691411720441
+23
+-1059.21725479392
+33
+2058.8118770109
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+279.792110043812
+21
+-1038.25578712258
+31
+2035.20217666346
+12
+287.457769982496
+22
+-1035.93043460251
+32
+2058.8118770109
+13
+287.457769982496
+23
+-1035.93043460251
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+806.222012671193
+20
+-670.885845335315
+30
+1850.69961858573
+11
+180.675224578544
+21
+-637.259985333474
+31
+1878.29564871262
+12
+180.675224578544
+22
+-670.885845335315
+32
+1850.69961858573
+13
+180.675224578544
+23
+-670.885845335315
+33
+1850.69961858573
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-637.259985333474
+30
+1878.29564871262
+11
+806.222012671193
+21
+-670.885845335315
+31
+1850.69961858573
+12
+843.01369820043
+22
+-637.259985333474
+32
+1878.29564871262
+13
+843.01369820043
+23
+-637.259985333474
+33
+1878.29564871262
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+806.222028237971
+20
+-670.885845335315
+30
+2219.70473474119
+11
+180.675224578544
+21
+-709.249312269842
+31
+2240.21043503138
+12
+180.675224578544
+22
+-670.885845335315
+32
+2219.70473474119
+13
+180.675224578544
+23
+-670.885845335315
+33
+2219.70473474119
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-709.249312269842
+30
+2240.21043503138
+11
+806.222028237971
+21
+-670.885845335315
+31
+2219.70473474119
+12
+767.904956185432
+22
+-709.249312269841
+32
+2240.21043503138
+13
+767.904956185432
+23
+-709.249312269841
+33
+2240.21043503138
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+767.904956185432
+20
+-709.249312269841
+30
+2240.21043503138
+11
+180.675224578544
+21
+-750.87609961724
+31
+2252.83778292244
+12
+180.675224578544
+22
+-709.249312269842
+32
+2240.21043503138
+13
+180.675224578544
+23
+-709.249312269842
+33
+2240.21043503138
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-750.87609961724
+30
+2252.83778292244
+11
+767.904956185432
+21
+-709.249312269841
+31
+2240.21043503138
+12
+724.871895956044
+22
+-750.87609961724
+32
+2252.83778292244
+13
+724.871895956044
+23
+-750.87609961724
+33
+2252.83778292244
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.871895956044
+20
+-750.87609961724
+30
+2252.83778292244
+11
+767.904956185432
+21
+-709.249312269841
+31
+2240.21043503138
+12
+739.771130343929
+22
+-739.771130343928
+32
+2249.46912732182
+13
+739.771130343929
+23
+-739.771130343928
+33
+2249.46912732182
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-399.515588143821
+20
+-964.515951276276
+30
+1812.39759571907
+11
+-554.192057578438
+21
+-829.407026995335
+31
+1708.93950189862
+12
+-381.734128610353
+22
+-921.587710511788
+32
+1708.93950189862
+13
+-381.734128610353
+23
+-921.587710511788
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.192057578438
+20
+-829.407026995335
+30
+1708.93950189862
+11
+-399.515588143821
+21
+-964.515951276276
+31
+1812.39759571907
+12
+-580.006735667279
+22
+-868.04142298445
+32
+1812.39759571907
+13
+-580.006735667279
+23
+-868.04142298445
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-644.282480658799
+20
+-861.555930289753
+30
+2059.38164426315
+11
+-740.177565197592
+21
+-890.060339871748
+31
+2085.82110165668
+12
+-731.284144746345
+22
+-899.775643285913
+32
+2054.14511148709
+13
+-731.284144746345
+23
+-899.775643285913
+33
+2054.14511148709
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-740.177565197592
+20
+-890.060339871748
+30
+2085.82110165668
+11
+-644.282480658799
+21
+-861.555930289753
+31
+2059.38164426315
+12
+-655.637457605706
+22
+-847.372595440649
+32
+2104.03168141582
+13
+-655.637457605706
+23
+-847.372595440649
+33
+2104.03168141582
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+599.277053327022
+20
+-599.277053327022
+30
+796.153149972084
+11
+706.098253038493
+21
+-471.799768952456
+31
+855.37186879426
+12
+600.487204246519
+22
+-600.48720424652
+32
+855.37186879426
+13
+600.487204246519
+23
+-600.48720424652
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+706.098253038493
+20
+-471.799768952456
+30
+855.37186879426
+11
+599.277053327022
+21
+-599.277053327022
+31
+796.153149972084
+12
+704.67526609701
+22
+-470.84895947612
+32
+796.153149972084
+13
+704.67526609701
+23
+-470.84895947612
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+389.307620352121
+20
+-582.640028068573
+30
+1241.03564002131
+11
+303.914386430124
+21
+-733.714233519903
+31
+1054.1729200213
+12
+441.215302798659
+22
+-660.325364744672
+32
+1054.1729200213
+13
+441.215302798659
+23
+-660.325364744672
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+303.914386430124
+20
+-733.714233519903
+30
+1054.1729200213
+11
+389.307620352121
+21
+-582.640028068573
+31
+1241.03564002131
+12
+268.159752894785
+22
+-647.394912321209
+32
+1241.03564002131
+13
+268.159752894785
+23
+-647.394912321209
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+916.376162171087
+20
+-182.278551827737
+30
+1614.7610800213
+11
+997.519349743285
+21
+1.80477854883065e-13
+31
+1708.93950189862
+12
+978.352295145615
+22
+-194.606371158736
+32
+1708.93950189862
+13
+978.352295145615
+23
+-194.606371158736
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+997.519349743285
+20
+1.80477854883065e-13
+30
+1708.93950189862
+11
+916.376162171087
+21
+-182.278551827737
+31
+1614.7610800213
+12
+925.063958273825
+22
+-94.0698777038381
+32
+1614.7610800213
+13
+925.063958273825
+23
+-94.0698777038381
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+997.519349743285
+20
+1.80477854883065e-13
+30
+1708.93950189862
+11
+925.063958273825
+21
+-94.0698777038381
+31
+1614.7610800213
+12
+934.329032542513
+22
+1.80477854883065e-13
+32
+1614.7610800213
+13
+934.329032542513
+23
+1.80477854883065e-13
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632776
+20
+-594.593536632776
+30
+914.026066884025
+11
+-706.098253038492
+21
+-471.799768952456
+31
+855.37186879426
+12
+-600.487204246519
+22
+-600.487204246519
+32
+855.37186879426
+13
+-600.487204246519
+23
+-600.487204246519
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-706.098253038492
+20
+-471.799768952456
+30
+855.37186879426
+11
+-594.593536632776
+21
+-594.593536632776
+31
+914.026066884025
+12
+-699.168033082722
+22
+-467.169144021929
+32
+914.026066884025
+13
+-699.168033082722
+23
+-467.169144021929
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+921.587710511789
+20
+-381.734128610352
+30
+1708.93950189862
+11
+1023.92467246733
+21
+-203.671280618918
+31
+1812.39759571907
+12
+964.515951276275
+22
+-399.515588143821
+32
+1812.39759571907
+13
+964.515951276275
+23
+-399.515588143821
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1023.92467246733
+20
+-203.671280618918
+30
+1812.39759571907
+11
+921.587710511789
+21
+-381.734128610352
+31
+1708.93950189862
+12
+978.352295145615
+22
+-194.606371158736
+32
+1708.93950189862
+13
+978.352295145615
+23
+-194.606371158736
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.183382327347
+20
+-739.911027417745
+30
+2076.74494872451
+11
+-815.319529832985
+21
+-815.188756027286
+31
+2086.22194499561
+12
+-827.129718036832
+22
+-803.86513828916
+32
+2069.83607643134
+13
+-827.129718036832
+23
+-803.86513828916
+33
+2069.83607643134
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-815.319529832985
+20
+-815.188756027286
+30
+2086.22194499561
+11
+-781.183382327347
+21
+-739.911027417745
+31
+2076.74494872451
+12
+-766.822004083969
+22
+-754.694855069672
+32
+2097.20410948883
+13
+-766.822004083969
+23
+-754.694855069672
+33
+2097.20410948883
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-746.579505030633
+20
+-772.239793008819
+30
+2108.60809856919
+11
+-783.644995364665
+21
+-846.504456965985
+31
+2095.12279472996
+12
+-800.049725864573
+22
+-830.16169359091
+32
+2095.10145963194
+13
+-800.049725864573
+23
+-830.16169359091
+33
+2095.10145963194
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-783.644995364665
+20
+-846.504456965985
+30
+2095.12279472996
+11
+-746.579505030633
+21
+-772.239793008819
+31
+2108.60809856919
+12
+-723.84293286299
+22
+-790.84270017674
+32
+2109.1268343449
+13
+-723.84293286299
+23
+-790.84270017674
+33
+2109.1268343449
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-703.270205185374
+20
+-808.916878172158
+30
+2098.19892992261
+11
+-757.213205686422
+21
+-873.517548449742
+31
+2069.9270060351
+12
+-768.602809842621
+22
+-861.72900857618
+32
+2086.28270221439
+13
+-768.602809842621
+23
+-861.72900857618
+33
+2086.28270221439
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-757.213205686422
+20
+-873.517548449742
+30
+2069.9270060351
+11
+-703.270205185374
+21
+-808.916878172158
+31
+2098.19892992261
+12
+-688.216174174222
+22
+-823.534449985187
+32
+2077.42717273413
+13
+-688.216174174222
+23
+-823.534449985187
+33
+2077.42717273413
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-766.822004083969
+20
+-754.694855069672
+30
+2097.20410948883
+11
+-800.049725864573
+21
+-830.16169359091
+31
+2095.10145963194
+12
+-815.319529832985
+22
+-815.188756027286
+32
+2086.22194499561
+13
+-815.319529832985
+23
+-815.188756027286
+33
+2086.22194499561
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-800.049725864573
+20
+-830.16169359091
+30
+2095.10145963194
+11
+-766.822004083969
+21
+-754.694855069672
+31
+2097.20410948883
+12
+-761.149821895316
+22
+-761.14982219046
+32
+2100.64485501639
+13
+-761.149821895316
+23
+-761.14982219046
+33
+2100.64485501639
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-800.049725864573
+20
+-830.16169359091
+30
+2095.10145963194
+11
+-761.149821895316
+21
+-761.14982219046
+31
+2100.64485501639
+12
+-746.579505030633
+22
+-772.239793008819
+32
+2108.60809856919
+13
+-746.579505030633
+23
+-772.239793008819
+33
+2108.60809856919
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-801.544845731016
+20
+-831.814429411314
+30
+1978.70958937363
+11
+-766.91292419702
+21
+-754.581509059306
+31
+1973.17973333127
+12
+-816.587031253059
+22
+-816.589877801121
+32
+1987.54968188919
+13
+-816.587031253059
+23
+-816.589877801121
+33
+1987.54968188919
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-766.91292419702
+20
+-754.581509059306
+30
+1973.17973333127
+11
+-801.544845731016
+21
+-831.814429411314
+31
+1978.70958937363
+12
+-761.145931803741
+22
+-761.14593180374
+32
+1969.69450846846
+13
+-761.145931803741
+23
+-761.14593180374
+33
+1969.69450846846
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.145931803741
+20
+-761.14593180374
+30
+1969.69450846846
+11
+-801.544845731016
+21
+-831.814429411314
+31
+1978.70958937363
+12
+-746.546206077474
+22
+-772.245716838241
+32
+1961.59984211439
+13
+-746.546206077474
+23
+-772.245716838241
+33
+1961.59984211439
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-203.671280618918
+20
+-1023.92467246733
+30
+1812.39759571907
+11
+-381.734128610353
+21
+-921.587710511788
+31
+1708.93950189862
+12
+-194.606371158736
+22
+-978.352295145615
+32
+1708.93950189862
+13
+-194.606371158736
+23
+-978.352295145615
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-381.734128610353
+20
+-921.587710511788
+30
+1708.93950189862
+11
+-203.671280618918
+21
+-1023.92467246733
+31
+1812.39759571907
+12
+-399.515588143821
+22
+-964.515951276276
+32
+1812.39759571907
+13
+-399.515588143821
+23
+-964.515951276276
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+1241.03564002131
+11
+528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+594.593536632776
+22
+-594.593536632775
+32
+1241.03564002131
+13
+594.593536632776
+23
+-594.593536632775
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+528.527588401294
+20
+-528.527588401294
+30
+1427.8983600213
+11
+699.168033082722
+21
+-467.169144021928
+31
+1241.03564002131
+12
+621.482696406623
+22
+-415.26146157539
+32
+1427.8983600213
+13
+621.482696406623
+23
+-415.26146157539
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.010701420772
+20
+-493.122985245198
+30
+1427.8983600213
+11
+561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+627.626510748516
+22
+-627.626510748516
+32
+1427.8983600213
+13
+627.626510748516
+23
+-627.626510748516
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+561.560562517035
+20
+-561.560562517035
+30
+1614.7610800213
+11
+738.010701420772
+21
+-493.122985245198
+31
+1427.8983600213
+12
+660.325364744673
+22
+-441.215302798659
+32
+1614.7610800213
+13
+660.325364744673
+23
+-441.215302798659
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.670394770277
+20
+-660.670394770277
+30
+1614.7610800213
+11
+829.407026995336
+21
+-554.192057578438
+31
+1708.93950189862
+12
+705.352696568272
+22
+-705.352696568272
+32
+1708.93950189862
+13
+705.352696568272
+23
+-705.352696568272
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+829.407026995336
+20
+-554.192057578438
+30
+1708.93950189862
+11
+660.670394770277
+21
+-660.670394770277
+31
+1614.7610800213
+12
+705.689442544718
+22
+-605.814526338507
+32
+1614.7610800213
+13
+705.689442544718
+23
+-605.814526338507
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+829.407026995336
+20
+-554.192057578438
+30
+1708.93950189862
+11
+705.689442544718
+21
+-605.814526338507
+31
+1614.7610800213
+12
+765.568628348261
+22
+-532.851527327553
+32
+1614.7610800213
+13
+765.568628348261
+23
+-532.851527327553
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+829.407026995336
+20
+-554.192057578438
+30
+1708.93950189862
+11
+765.568628348261
+21
+-532.851527327553
+31
+1614.7610800213
+12
+776.866198451135
+22
+-519.085398326623
+32
+1614.7610800213
+13
+776.866198451135
+23
+-519.085398326623
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+705.352696568272
+20
+-705.352696568272
+30
+1708.93950189862
+11
+868.04142298445
+21
+-580.006735667279
+31
+1812.39759571907
+12
+738.20854961057
+22
+-738.20854961057
+32
+1812.39759571907
+13
+738.20854961057
+23
+-738.20854961057
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+1812.39759571907
+11
+705.352696568272
+21
+-705.352696568272
+31
+1708.93950189862
+12
+829.407026995336
+22
+-554.192057578438
+32
+1708.93950189862
+13
+829.407026995336
+23
+-554.192057578438
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+2455.6433200213
+11
+798.491402853314
+21
+-250.528327323719
+31
+2549.0746800213
+12
+776.87389411925
+22
+-321.791703197793
+32
+2549.0746800213
+13
+776.87389411925
+23
+-321.791703197793
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+798.491402853314
+20
+-250.528327323719
+30
+2549.0746800213
+11
+776.87389411925
+21
+-321.791703197793
+31
+2455.6433200213
+12
+824.724927080674
+22
+-164.047987682633
+32
+2455.6433200213
+13
+824.724927080674
+23
+-164.047987682633
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+798.491402853314
+20
+-250.528327323719
+30
+2549.0746800213
+11
+824.724927080674
+21
+-164.047987682633
+31
+2455.6433200213
+12
+823.17232140581
+22
+-169.166242665351
+32
+2549.0746800213
+13
+823.17232140581
+23
+-169.166242665351
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+823.17232140581
+20
+-169.166242665351
+30
+2549.0746800213
+11
+824.724927080674
+21
+-164.047987682633
+31
+2455.6433200213
+12
+824.724927080674
+22
+-164.047987682633
+32
+2549.0746800213
+13
+824.724927080674
+23
+-164.047987682633
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.871895956044
+20
+-750.87609961724
+30
+2252.83778292244
+11
+180.675224578544
+21
+-794.16651328432
+31
+2257.10151651642
+12
+180.675224578544
+22
+-750.87609961724
+32
+2252.83778292244
+13
+180.675224578544
+23
+-750.87609961724
+33
+2252.83778292244
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+2257.10151651642
+11
+724.871895956044
+21
+-750.87609961724
+31
+2252.83778292244
+12
+670.391151613542
+22
+-794.16651328432
+32
+2257.10151651642
+13
+670.391151613542
+23
+-794.16651328432
+33
+2257.10151651642
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+892.684338449561
+20
+-596.472605357118
+30
+2133.80356487023
+11
+180.675224578544
+21
+-589.158254916404
+31
+2120.11937767794
+12
+897.900697882446
+22
+-589.158254916404
+32
+2120.11937767794
+13
+897.900697882446
+23
+-589.158254916404
+33
+2120.11937767794
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-589.158254916404
+30
+2120.11937767794
+11
+892.684338449561
+21
+-596.472605357118
+31
+2133.80356487023
+12
+180.675224578544
+22
+-609.663955206589
+32
+2158.48284461247
+13
+180.675224578544
+23
+-609.663955206589
+33
+2158.48284461247
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-609.663955206589
+30
+2158.48284461247
+11
+892.684338449561
+21
+-596.472605357118
+31
+2133.80356487023
+12
+884.794335210004
+22
+-604.173875548016
+32
+2148.21162800104
+13
+884.794335210004
+23
+-604.173875548016
+33
+2148.21162800104
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-609.663955206589
+30
+2158.48284461247
+11
+884.794335210004
+21
+-604.173875548016
+31
+2148.21162800104
+12
+876.866128931272
+22
+-609.663955206588
+32
+2158.48284461247
+13
+876.866128931272
+23
+-609.663955206588
+33
+2158.48284461247
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-879.083714298799
+30
+1830.19391829555
+11
+180.675224578544
+21
+-837.4569269514
+31
+1817.56657040449
+12
+180.675224578544
+22
+-879.083714298798
+32
+1830.19391829555
+13
+180.675224578544
+23
+-879.083714298798
+33
+1830.19391829555
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-837.4569269514
+30
+1817.56657040449
+11
+653.750224578544
+21
+-879.083714298799
+31
+1830.19391829555
+12
+653.750224578544
+22
+-837.4569269514
+32
+1817.56657040449
+13
+653.750224578544
+23
+-837.4569269514
+33
+1817.56657040449
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+575.888850875701
+20
+-575.888850875701
+30
+682.822310520627
+11
+694.940121314314
+21
+-464.344143695271
+31
+738.078199114136
+12
+590.997993226901
+22
+-590.997993226901
+32
+738.078199114136
+13
+590.997993226901
+23
+-590.997993226901
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+694.940121314314
+20
+-464.344143695271
+30
+738.078199114136
+11
+575.888850875701
+21
+-575.888850875701
+31
+682.822310520627
+12
+677.173649450057
+22
+-452.47296672438
+32
+682.822310520627
+13
+677.173649450057
+23
+-452.47296672438
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+406.150722558891
+20
+-980.534582769308
+30
+1879.38487239655
+11
+203.671280618918
+21
+-1023.92467246733
+31
+1812.39759571907
+12
+399.51558814382
+22
+-964.515951276276
+32
+1812.39759571907
+13
+399.51558814382
+23
+-964.515951276276
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+203.671280618918
+20
+-1023.92467246733
+30
+1812.39759571907
+11
+406.150722558891
+21
+-980.534582769308
+31
+1879.38487239655
+12
+209.215453044867
+22
+-1051.79710945546
+32
+1922.19277204157
+13
+209.215453044867
+23
+-1051.79710945546
+33
+1922.19277204157
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+1922.19277204157
+11
+406.150722558891
+21
+-980.534582769308
+31
+1879.38487239655
+12
+369.41031965462
+22
+-997.119327169824
+32
+1899.59344191956
+13
+369.41031965462
+23
+-997.119327169824
+33
+1899.59344191956
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+1922.19277204157
+11
+369.41031965462
+21
+-997.119327169824
+31
+1899.59344191956
+12
+349.642861592144
+22
+-1009.19892078507
+32
+1922.19277204157
+13
+349.642861592144
+23
+-1009.19892078507
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-921.587710511788
+20
+-381.734128610352
+30
+2361.46489814399
+11
+-1023.92467246733
+21
+-203.671280618918
+31
+2258.00680432354
+12
+-964.515951276275
+22
+-399.515588143821
+32
+2258.00680432354
+13
+-964.515951276275
+23
+-399.515588143821
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1023.92467246733
+20
+-203.671280618918
+30
+2258.00680432354
+11
+-921.587710511788
+21
+-381.734128610352
+31
+2361.46489814399
+12
+-978.352295145615
+22
+-194.606371158736
+32
+2361.46489814399
+13
+-978.352295145615
+23
+-194.606371158736
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1059.21725479392
+20
+-210.691411720441
+30
+2058.8118770109
+11
+990.771212819308
+21
+-410.390873558597
+31
+2148.21162800104
+12
+997.760836892423
+22
+-413.286070645571
+32
+2058.8118770109
+13
+997.760836892423
+23
+-413.286070645571
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+990.771212819308
+20
+-410.390873558597
+30
+2148.21162800104
+11
+1059.21725479392
+21
+-210.691411720441
+31
+2058.8118770109
+12
+1051.79710945546
+22
+-209.215453044867
+32
+2148.21162800104
+13
+1051.79710945546
+23
+-209.215453044867
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-868.041422984449
+20
+-580.006735667279
+30
+2258.00680432354
+11
+-990.771212819307
+21
+-410.390873558597
+31
+2148.21162800104
+12
+-891.670534105406
+22
+-595.795202951324
+32
+2148.21162800104
+13
+-891.670534105406
+23
+-595.795202951324
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-990.771212819307
+20
+-410.390873558597
+30
+2148.21162800104
+11
+-868.041422984449
+21
+-580.006735667279
+31
+2258.00680432354
+12
+-964.515951276275
+22
+-399.515588143821
+32
+2258.00680432354
+13
+-964.515951276275
+23
+-399.515588143821
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-829.407026995335
+20
+-554.192057578438
+30
+2361.46489814399
+11
+-964.515951276275
+21
+-399.515588143821
+31
+2258.00680432354
+12
+-868.041422984449
+22
+-580.006735667279
+32
+2258.00680432354
+13
+-868.041422984449
+23
+-580.006735667279
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-964.515951276275
+20
+-399.515588143821
+30
+2258.00680432354
+11
+-829.407026995335
+21
+-554.192057578438
+31
+2361.46489814399
+12
+-921.587710511788
+22
+-381.734128610352
+32
+2361.46489814399
+13
+-921.587710511788
+23
+-381.734128610352
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.866198451135
+20
+-519.085398326623
+30
+2455.6433200213
+11
+-921.587710511788
+21
+-381.734128610352
+31
+2361.46489814399
+12
+-829.407026995335
+22
+-554.192057578438
+32
+2361.46489814399
+13
+-829.407026995335
+23
+-554.192057578438
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-921.587710511788
+20
+-381.734128610352
+30
+2361.46489814399
+11
+-776.866198451135
+21
+-519.085398326623
+31
+2455.6433200213
+12
+-813.095615905849
+22
+-451.304925633068
+32
+2455.6433200213
+13
+-813.095615905849
+23
+-451.304925633068
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-921.587710511788
+20
+-381.734128610352
+30
+2361.46489814399
+11
+-813.095615905849
+21
+-451.304925633068
+31
+2455.6433200213
+12
+-857.607798059122
+22
+-368.028490102694
+32
+2455.6433200213
+13
+-857.607798059122
+23
+-368.028490102694
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-921.587710511788
+20
+-381.734128610352
+30
+2361.46489814399
+11
+-857.607798059122
+21
+-368.028490102694
+31
+2455.6433200213
+12
+-863.207469797099
+22
+-357.552241131722
+32
+2455.6433200213
+13
+-863.207469797099
+23
+-357.552241131722
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.060123058849
+20
+-874.453748088142
+30
+2003.99630767223
+11
+-683.329149560927
+21
+-829.573232448602
+31
+2011.5925230317
+12
+-687.957452549297
+22
+-823.760435027841
+32
+1993.10258668608
+13
+-687.957452549297
+23
+-823.760435027841
+33
+1993.10258668608
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-683.329149560927
+20
+-829.573232448602
+30
+2011.5925230317
+11
+-758.060123058849
+21
+-874.453748088142
+31
+2003.99630767223
+12
+-751.507544713982
+22
+-880.404127848991
+32
+2025.39393021379
+13
+-751.507544713982
+23
+-880.404127848991
+33
+2025.39393021379
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-683.329149560927
+20
+-829.573232448602
+30
+2011.5925230317
+11
+-751.507544713982
+21
+-880.404127848991
+31
+2025.39393021379
+12
+-680.414811030127
+22
+-831.964968270127
+32
+2020.57508939225
+13
+-680.414811030127
+23
+-831.964968270127
+33
+2020.57508939225
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-785.140115231108
+20
+-848.157192786392
+30
+1978.73092447164
+11
+-746.546206077474
+21
+-772.245716838241
+31
+1961.59984211439
+12
+-801.544845731016
+22
+-831.814429411314
+32
+1978.70958937363
+13
+-801.544845731016
+23
+-831.814429411314
+33
+1978.70958937363
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-746.546206077474
+20
+-772.245716838241
+30
+1961.59984211439
+11
+-785.140115231108
+21
+-848.157192786392
+31
+1978.73092447164
+12
+-723.636295253065
+22
+-790.983771266745
+32
+1961.01586348506
+13
+-723.636295253065
+23
+-790.983771266745
+33
+1961.01586348506
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-757.213205686422
+20
+-873.517548449742
+30
+2069.9270060351
+11
+-680.521947020029
+21
+-831.877044035484
+31
+2050.14904337117
+12
+-751.210146881832
+22
+-880.075378254302
+32
+2048.54571267062
+13
+-751.210146881832
+23
+-880.075378254302
+33
+2048.54571267062
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-680.521947020029
+20
+-831.877044035484
+30
+2050.14904337117
+11
+-757.213205686422
+21
+-873.517548449742
+31
+2069.9270060351
+12
+-683.397324988288
+22
+-829.51728232132
+32
+2058.8118770109
+13
+-683.397324988288
+23
+-829.51728232132
+33
+2058.8118770109
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-683.397324988288
+20
+-829.51728232132
+30
+2058.8118770109
+11
+-757.213205686422
+21
+-873.517548449742
+31
+2069.9270060351
+12
+-688.216174174222
+22
+-823.534449985187
+32
+2077.42717273413
+13
+-688.216174174222
+23
+-823.534449985187
+33
+2077.42717273413
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-816.587031253059
+20
+-816.589877801121
+30
+1987.54968188919
+11
+-781.308061641118
+21
+-739.778791807586
+31
+1993.80290570042
+12
+-827.976635409257
+22
+-804.801337927561
+32
+2003.90537806848
+13
+-827.976635409257
+23
+-804.801337927561
+33
+2003.90537806848
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.308061641118
+20
+-739.778791807586
+30
+1993.80290570042
+11
+-816.587031253059
+21
+-816.589877801121
+31
+1987.54968188919
+12
+-766.91292419702
+22
+-754.581509059306
+32
+1973.17973333127
+13
+-766.91292419702
+23
+-754.581509059306
+33
+1973.17973333127
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-464.344143695271
+20
+-694.940121314314
+30
+738.078199114136
+11
+-575.888850875701
+21
+-575.888850875701
+31
+682.822310520627
+12
+-452.472966724379
+22
+-677.173649450057
+32
+682.822310520627
+13
+-452.472966724379
+23
+-677.173649450057
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-575.888850875701
+20
+-575.888850875701
+30
+682.822310520627
+11
+-464.344143695271
+21
+-694.940121314314
+31
+738.078199114136
+12
+-590.997993226901
+22
+-590.997993226901
+32
+738.078199114136
+13
+-590.997993226901
+23
+-590.997993226901
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+577.57828073944
+20
+-864.406983345072
+30
+1802.66501966685
+11
+381.734128610352
+21
+-921.587710511788
+31
+1708.93950189862
+12
+554.192057578438
+22
+-829.407026995336
+32
+1708.93950189862
+13
+554.192057578438
+23
+-829.407026995336
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+1708.93950189862
+11
+577.57828073944
+21
+-864.406983345072
+31
+1802.66501966685
+12
+399.51558814382
+22
+-964.515951276276
+32
+1812.39759571907
+13
+399.51558814382
+23
+-964.515951276276
+33
+1812.39759571907
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+399.51558814382
+20
+-964.515951276276
+30
+1812.39759571907
+11
+577.57828073944
+21
+-864.406983345072
+31
+1802.66501966685
+12
+540.896876185886
+22
+-887.575434400246
+32
+1809.69309245876
+13
+540.896876185886
+23
+-887.575434400246
+33
+1809.69309245876
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+399.51558814382
+20
+-964.515951276276
+30
+1812.39759571907
+11
+540.896876185886
+21
+-887.575434400246
+31
+1809.69309245876
+12
+533.995007415167
+22
+-892.635204119545
+32
+1812.39759571907
+13
+533.995007415167
+23
+-892.635204119545
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.35466353334
+20
+-731.718944065101
+30
+1933.51796332002
+11
+-891.670534105406
+21
+-595.795202951324
+31
+1922.19277204157
+12
+-761.987076679027
+22
+-753.814953035805
+32
+1922.19277204157
+13
+-761.987076679027
+23
+-753.814953035805
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-891.670534105406
+20
+-595.795202951324
+30
+1922.19277204157
+11
+-781.35466353334
+21
+-731.718944065101
+31
+1933.51796332002
+12
+-804.883917627287
+22
+-707.527532613081
+32
+1967.25758629213
+13
+-804.883917627287
+23
+-707.527532613081
+33
+1967.25758629213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-891.670534105406
+20
+-595.795202951324
+30
+1922.19277204157
+11
+-804.883917627287
+21
+-707.527532613081
+31
+1967.25758629213
+12
+-818.480102290147
+22
+-696.846172894875
+32
+2011.59249120966
+13
+-818.480102290147
+23
+-696.846172894875
+33
+2011.59249120966
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-891.670534105406
+20
+-595.795202951324
+30
+1922.19277204157
+11
+-818.480102290147
+21
+-696.846172894875
+31
+2011.59249120966
+12
+-897.961029579872
+22
+-599.99837764929
+32
+2011.5925230317
+13
+-897.961029579872
+23
+-599.99837764929
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1051.79710945546
+20
+-209.215453044867
+30
+2148.21162800104
+11
+-1079.96854760957
+21
+3.60955709766131e-13
+31
+2058.8118770109
+12
+-1059.21725479392
+22
+-210.691411720441
+32
+2058.8118770109
+13
+-1059.21725479392
+23
+-210.691411720441
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1079.96854760957
+20
+3.60955709766131e-13
+30
+2058.8118770109
+11
+-1051.79710945546
+21
+-209.215453044867
+31
+2148.21162800104
+12
+-1072.40303302985
+22
+3.60955709766131e-13
+32
+2148.21162800104
+13
+-1072.40303302985
+23
+3.60955709766131e-13
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-832.543811724793
+20
+-84.6615196498334
+30
+2549.0746800213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+2549.0746800213
+12
+-840.882243605455
+22
+1.80477854883065e-13
+32
+2549.0746800213
+13
+-840.882243605455
+23
+1.80477854883065e-13
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+-832.543811724793
+21
+-84.6615196498334
+31
+2549.0746800213
+12
+-824.724927080674
+22
+-164.047987682633
+32
+2549.0746800213
+13
+-824.724927080674
+23
+-164.047987682633
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+-824.724927080674
+21
+-164.047987682633
+31
+2549.0746800213
+12
+-823.172319072743
+22
+-169.166250356441
+32
+2549.0746800213
+13
+-823.172319072743
+23
+-169.166250356441
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+-823.172319072743
+21
+-169.166250356441
+31
+2549.0746800213
+12
+-798.491399420167
+22
+-250.528338641286
+32
+2549.0746800213
+13
+-798.491399420167
+23
+-250.528338641286
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+-798.491399420167
+21
+-250.528338641286
+31
+2549.0746800213
+12
+-776.87389411925
+22
+-321.791703197793
+32
+2549.0746800213
+13
+-776.87389411925
+23
+-321.791703197793
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+-776.87389411925
+21
+-321.791703197793
+31
+2549.0746800213
+12
+-771.834238188426
+22
+-331.220236285058
+32
+2549.0746800213
+13
+-771.834238188426
+23
+-331.220236285058
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+-771.834238188426
+21
+-331.220236285058
+31
+2549.0746800213
+12
+-731.773964383885
+22
+-406.167737113607
+32
+2549.0746800213
+13
+-731.773964383885
+23
+-406.167737113607
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+-731.773964383885
+21
+-406.167737113607
+31
+2549.0746800213
+12
+-733.088824464619
+22
+-145.820433573828
+32
+2549.0746800213
+13
+-733.088824464619
+23
+-145.820433573828
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-733.088824464619
+20
+-145.820433573828
+30
+2549.0746800213
+11
+-731.773964383885
+21
+-406.167737113607
+31
+2549.0746800213
+12
+-690.554572920556
+22
+-286.037069662455
+32
+2549.0746800213
+13
+-690.554572920556
+23
+-286.037069662455
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+-731.773964383885
+21
+-406.167737113607
+31
+2549.0746800213
+12
+-699.168033082722
+22
+-467.169144021929
+32
+2549.0746800213
+13
+-699.168033082722
+23
+-467.169144021929
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+-699.168033082722
+21
+-467.169144021929
+31
+2549.0746800213
+12
+-689.000369065216
+22
+-479.558478474255
+32
+2549.0746800213
+13
+-689.000369065216
+23
+-479.558478474255
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+-689.000369065216
+21
+-479.558478474255
+31
+2549.0746800213
+12
+-621.482696406623
+22
+-415.26146157539
+32
+2549.0746800213
+13
+-621.482696406623
+23
+-415.26146157539
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+2549.0746800213
+11
+-689.000369065216
+21
+-479.558478474255
+31
+2549.0746800213
+12
+-635.110018052195
+22
+-545.224061178794
+32
+2549.0746800213
+13
+-635.110018052195
+23
+-545.224061178794
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+2549.0746800213
+11
+-635.110018052195
+21
+-545.224061178794
+31
+2549.0746800213
+12
+-594.593536632776
+22
+-594.593536632776
+32
+2549.0746800213
+13
+-594.593536632776
+23
+-594.593536632776
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+2549.0746800213
+11
+-594.593536632776
+21
+-594.593536632776
+31
+2549.0746800213
+12
+-528.527588401294
+22
+-528.527588401294
+32
+2549.0746800213
+13
+-528.527588401294
+23
+-528.527588401294
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+-594.593536632776
+21
+-594.593536632776
+31
+2549.0746800213
+12
+-578.08321102903
+22
+-608.143210685445
+32
+2549.0746800213
+13
+-578.08321102903
+23
+-608.143210685445
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+-578.08321102903
+21
+-608.143210685445
+31
+2549.0746800213
+12
+-512.438676164039
+22
+-662.016288182956
+32
+2549.0746800213
+13
+-512.438676164039
+23
+-662.016288182956
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+-512.438676164039
+21
+-662.016288182956
+31
+2549.0746800213
+12
+-415.26146157539
+22
+-621.482696406623
+32
+2549.0746800213
+13
+-415.26146157539
+23
+-621.482696406623
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+-512.438676164039
+21
+-662.016288182956
+31
+2549.0746800213
+12
+-467.169144021929
+22
+-699.168033082722
+32
+2549.0746800213
+13
+-467.169144021929
+23
+-699.168033082722
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+-467.169144021929
+21
+-699.168033082722
+31
+2549.0746800213
+12
+-443.635339973588
+22
+-711.747113417844
+32
+2549.0746800213
+13
+-443.635339973588
+23
+-711.747113417844
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+-443.635339973588
+21
+-711.747113417844
+31
+2549.0746800213
+12
+-368.760188696337
+22
+-751.768715581535
+32
+2549.0746800213
+13
+-368.760188696337
+23
+-751.768715581535
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+-368.760188696337
+21
+-751.768715581535
+31
+2549.0746800213
+12
+-286.037069662455
+22
+-690.554572920556
+32
+2549.0746800213
+13
+-286.037069662455
+23
+-690.554572920556
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+-368.760188696337
+21
+-751.768715581535
+31
+2549.0746800213
+12
+-321.791703197793
+22
+-776.87389411925
+32
+2549.0746800213
+13
+-321.791703197793
+23
+-776.87389411925
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+-321.791703197793
+21
+-776.87389411925
+31
+2549.0746800213
+12
+-291.163466606751
+22
+-786.164868113883
+32
+2549.0746800213
+13
+-291.163466606751
+23
+-786.164868113883
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+-291.163466606751
+21
+-786.164868113883
+31
+2549.0746800213
+12
+-209.932194866118
+22
+-810.806105001612
+32
+2549.0746800213
+13
+-209.932194866118
+23
+-810.806105001612
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+-209.932194866118
+21
+-810.806105001612
+31
+2549.0746800213
+12
+-145.820433573828
+22
+-733.088824464619
+32
+2549.0746800213
+13
+-145.820433573828
+23
+-733.088824464619
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-145.820433573828
+20
+-733.088824464619
+30
+2549.0746800213
+11
+-209.932194866118
+21
+-810.806105001612
+31
+2549.0746800213
+12
+-164.047987682633
+22
+-824.724927080674
+32
+2549.0746800213
+13
+-164.047987682633
+23
+-824.724927080674
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-145.820433573828
+20
+-733.088824464619
+30
+2549.0746800213
+11
+-164.047987682633
+21
+-824.724927080674
+31
+2549.0746800213
+12
+-126.903621448811
+22
+-828.383327837855
+32
+2549.0746800213
+13
+-126.903621448811
+23
+-828.383327837855
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-145.820433573828
+20
+-733.088824464619
+30
+2549.0746800213
+11
+-126.903621448811
+21
+-828.383327837855
+31
+2549.0746800213
+12
+0.0
+22
+-747.450883605455
+32
+2549.0746800213
+13
+0.0
+23
+-747.450883605455
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-747.450883605455
+30
+2549.0746800213
+11
+-126.903621448811
+21
+-828.383327837855
+31
+2549.0746800213
+12
+-42.4327807980229
+22
+-836.702979476311
+32
+2549.0746800213
+13
+-42.4327807980229
+23
+-836.702979476311
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-747.450883605455
+30
+2549.0746800213
+11
+-42.4327807980229
+21
+-836.702979476311
+31
+2549.0746800213
+12
+0.0
+22
+-840.882243605455
+32
+2549.0746800213
+13
+0.0
+23
+-840.882243605455
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-747.450883605455
+30
+2549.0746800213
+11
+0.0
+21
+-840.882243605455
+31
+2549.0746800213
+12
+42.4327751671525
+22
+-836.702980030903
+32
+2549.0746800213
+13
+42.4327751671525
+23
+-836.702980030903
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-747.450883605455
+30
+2549.0746800213
+11
+42.4327751671525
+21
+-836.702980030903
+31
+2549.0746800213
+12
+145.820433573828
+22
+-733.088824464618
+32
+2549.0746800213
+13
+145.820433573828
+23
+-733.088824464618
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+145.820433573828
+20
+-733.088824464618
+30
+2549.0746800213
+11
+42.4327751671525
+21
+-836.702980030903
+31
+2549.0746800213
+12
+126.903660366379
+22
+-828.38332400481
+32
+2549.0746800213
+13
+126.903660366379
+23
+-828.38332400481
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+145.820433573828
+20
+-733.088824464618
+30
+2549.0746800213
+11
+126.903660366379
+21
+-828.38332400481
+31
+2549.0746800213
+12
+164.047987682633
+22
+-824.724927080674
+32
+2549.0746800213
+13
+164.047987682633
+23
+-824.724927080674
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+145.820433573828
+20
+-733.088824464618
+30
+2549.0746800213
+11
+164.047987682633
+21
+-824.724927080674
+31
+2549.0746800213
+12
+286.037069662455
+22
+-690.554572920556
+32
+2549.0746800213
+13
+286.037069662455
+23
+-690.554572920556
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+164.047987682633
+21
+-824.724927080674
+31
+2549.0746800213
+12
+209.932273259994
+22
+-810.806081221089
+32
+2549.0746800213
+13
+209.932273259994
+23
+-810.806081221089
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+209.932273259994
+21
+-810.806081221089
+31
+2549.0746800213
+12
+291.163503259545
+22
+-786.16485699538
+32
+2549.0746800213
+13
+291.163503259545
+23
+-786.16485699538
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+291.163503259545
+21
+-786.16485699538
+31
+2549.0746800213
+12
+415.26146157539
+22
+-621.482696406623
+32
+2549.0746800213
+13
+415.26146157539
+23
+-621.482696406623
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+291.163503259545
+21
+-786.16485699538
+31
+2549.0746800213
+12
+321.791703197793
+22
+-776.87389411925
+32
+2549.0746800213
+13
+321.791703197793
+23
+-776.87389411925
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+321.791703197793
+21
+-776.87389411925
+31
+2549.0746800213
+12
+368.760184385968
+22
+-751.768717885475
+32
+2549.0746800213
+13
+368.760184385968
+23
+-751.768717885475
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+368.760184385968
+21
+-751.768717885475
+31
+2549.0746800213
+12
+443.635403824213
+22
+-711.747079288974
+32
+2549.0746800213
+13
+443.635403824213
+23
+-711.747079288974
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+415.26146157539
+20
+-621.482696406623
+30
+2549.0746800213
+11
+443.635403824213
+21
+-711.747079288974
+31
+2549.0746800213
+12
+528.527588401294
+22
+-528.527588401294
+32
+2549.0746800213
+13
+528.527588401294
+23
+-528.527588401294
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+443.635403824213
+21
+-711.747079288974
+31
+2549.0746800213
+12
+467.169144021928
+22
+-699.168033082722
+32
+2549.0746800213
+13
+467.169144021928
+23
+-699.168033082722
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+467.169144021928
+21
+-699.168033082722
+31
+2549.0746800213
+12
+512.438726622327
+22
+-662.016246772909
+32
+2549.0746800213
+13
+512.438726622327
+23
+-662.016246772909
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+512.438726622327
+21
+-662.016246772909
+31
+2549.0746800213
+12
+578.083233221301
+22
+-608.143192472719
+32
+2549.0746800213
+13
+578.083233221301
+23
+-608.143192472719
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+578.083233221301
+21
+-608.143192472719
+31
+2549.0746800213
+12
+621.482696406623
+22
+-415.26146157539
+32
+2549.0746800213
+13
+621.482696406623
+23
+-415.26146157539
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+621.482696406623
+20
+-415.26146157539
+30
+2549.0746800213
+11
+578.083233221301
+21
+-608.143192472719
+31
+2549.0746800213
+12
+594.593536632776
+22
+-594.593536632776
+32
+2549.0746800213
+13
+594.593536632776
+23
+-594.593536632776
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+621.482696406623
+20
+-415.26146157539
+30
+2549.0746800213
+11
+594.593536632776
+21
+-594.593536632776
+31
+2549.0746800213
+12
+635.110015865962
+22
+-545.224063842726
+32
+2549.0746800213
+13
+635.110015865962
+23
+-545.224063842726
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+621.482696406623
+20
+-415.26146157539
+30
+2549.0746800213
+11
+635.110015865962
+21
+-545.224063842726
+31
+2549.0746800213
+12
+690.554572920556
+22
+-286.037069662455
+32
+2549.0746800213
+13
+690.554572920556
+23
+-286.037069662455
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+635.110015865962
+21
+-545.224063842726
+31
+2549.0746800213
+12
+689.000383427084
+22
+-479.558460974267
+32
+2549.0746800213
+13
+689.000383427084
+23
+-479.558460974267
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+689.000383427084
+21
+-479.558460974267
+31
+2549.0746800213
+12
+699.168033082722
+22
+-467.169144021929
+32
+2549.0746800213
+13
+699.168033082722
+23
+-467.169144021929
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+699.168033082722
+21
+-467.169144021929
+31
+2549.0746800213
+12
+733.088824464618
+22
+-145.820433573828
+32
+2549.0746800213
+13
+733.088824464618
+23
+-145.820433573828
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+733.088824464618
+20
+-145.820433573828
+30
+2549.0746800213
+11
+699.168033082722
+21
+-467.169144021929
+31
+2549.0746800213
+12
+731.773963185201
+22
+-406.167739356189
+32
+2549.0746800213
+13
+731.773963185201
+23
+-406.167739356189
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+733.088824464618
+20
+-145.820433573828
+30
+2549.0746800213
+11
+731.773963185201
+21
+-406.167739356189
+31
+2549.0746800213
+12
+771.834245650684
+22
+-331.220222324155
+32
+2549.0746800213
+13
+771.834245650684
+23
+-331.220222324155
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+733.088824464618
+20
+-145.820433573828
+30
+2549.0746800213
+11
+771.834245650684
+21
+-331.220222324155
+31
+2549.0746800213
+12
+747.450883605455
+22
+1.80477854883065e-13
+32
+2549.0746800213
+13
+747.450883605455
+23
+1.80477854883065e-13
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+747.450883605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+771.834245650684
+21
+-331.220222324155
+31
+2549.0746800213
+12
+840.882243605455
+22
+1.80477854883065e-13
+32
+2549.0746800213
+13
+840.882243605455
+23
+1.80477854883065e-13
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+840.882243605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+771.834245650684
+21
+-331.220222324155
+31
+2549.0746800213
+12
+776.87389411925
+22
+-321.791703197793
+32
+2549.0746800213
+13
+776.87389411925
+23
+-321.791703197793
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+840.882243605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+776.87389411925
+21
+-321.791703197793
+31
+2549.0746800213
+12
+798.491402853314
+22
+-250.528327323719
+32
+2549.0746800213
+13
+798.491402853314
+23
+-250.528327323719
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+840.882243605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+798.491402853314
+21
+-250.528327323719
+31
+2549.0746800213
+12
+823.17232140581
+22
+-169.166242665351
+32
+2549.0746800213
+13
+823.17232140581
+23
+-169.166242665351
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+840.882243605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+823.17232140581
+21
+-169.166242665351
+31
+2549.0746800213
+12
+824.724927080674
+22
+-164.047987682633
+32
+2549.0746800213
+13
+824.724927080674
+23
+-164.047987682633
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+840.882243605455
+20
+1.80477854883065e-13
+30
+2549.0746800213
+11
+824.724927080674
+21
+-164.047987682633
+31
+2549.0746800213
+12
+832.543812136584
+22
+-84.6615154688545
+32
+2549.0746800213
+13
+832.543812136584
+23
+-84.6615154688545
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+891.670534105407
+20
+-595.795202951324
+30
+1922.19277204157
+11
+892.68433542823
+21
+-596.472603338329
+31
+1936.60079223358
+12
+884.794355702396
+22
+-604.173850577965
+32
+1922.19277204157
+13
+884.794355702396
+23
+-604.173850577965
+33
+1922.19277204157
+70
+0
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+891.670534105407
+20
+-595.795202951324
+30
+1922.19277204157
+11
+897.90069342138
+21
+-589.158254916404
+31
+1950.28497564898
+12
+892.68433542823
+22
+-596.472603338329
+32
+1936.60079223358
+13
+892.68433542823
+23
+-596.472603338329
+33
+1936.60079223358
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+897.90069342138
+20
+-589.158254916404
+30
+1950.28497564898
+11
+891.670534105407
+21
+-595.795202951324
+31
+1922.19277204157
+12
+990.771212819308
+22
+-410.390873558597
+32
+1922.19277204157
+13
+990.771212819308
+23
+-410.390873558597
+33
+1922.19277204157
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+897.90069342138
+20
+-589.158254916404
+30
+1950.28497564898
+11
+990.771212819308
+21
+-410.390873558597
+31
+1922.19277204157
+12
+908.625259608371
+22
+-576.530907025343
+32
+1991.91176299638
+13
+908.625259608371
+23
+-576.530907025343
+33
+1991.91176299638
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+908.625259608371
+20
+-576.530907025343
+30
+1991.91176299638
+11
+990.771212819308
+21
+-410.390873558597
+31
+1922.19277204157
+12
+911.540741979581
+22
+-574.59252267949
+32
+2011.5925230317
+13
+911.540741979581
+23
+-574.59252267949
+33
+2011.5925230317
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+911.540741979581
+20
+-574.59252267949
+30
+2011.5925230317
+11
+990.771212819308
+21
+-410.390873558597
+31
+1922.19277204157
+12
+997.760836892423
+22
+-413.286070645571
+32
+2011.5925230317
+13
+997.760836892423
+23
+-413.286070645571
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+599.277053327022
+20
+-599.277053327022
+30
+796.153149972084
+11
+464.344143695271
+21
+-694.940121314314
+31
+738.078199114136
+12
+590.997993226901
+22
+-590.997993226901
+32
+738.078199114136
+13
+590.997993226901
+23
+-590.997993226901
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+464.344143695271
+20
+-694.940121314314
+30
+738.078199114136
+11
+599.277053327022
+21
+-599.277053327022
+31
+796.153149972084
+12
+470.84895947612
+22
+-704.67526609701
+32
+796.153149972084
+13
+470.84895947612
+23
+-704.67526609701
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-720.365482284693
+30
+1985.88990429309
+11
+104.493588061205
+21
+-712.163204861239
+31
+2001.23529816273
+12
+104.493591159588
+22
+-720.365490157703
+32
+1985.88990169709
+13
+104.493591159588
+23
+-720.365490157703
+33
+1985.88990169709
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493588061205
+20
+-712.163204861239
+30
+2001.23529816273
+11
+180.675224578544
+21
+-720.365482284693
+31
+1985.88990429309
+12
+180.675224578544
+22
+-712.163201305221
+32
+2001.23529268221
+13
+180.675224578544
+23
+-712.163201305221
+33
+2001.23529268221
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-677.173649450057
+20
+-452.47296672438
+30
+682.822310520627
+11
+-554.385481313987
+21
+-554.385481313987
+31
+631.979456702016
+12
+-575.888850875701
+22
+-575.888850875701
+32
+682.822310520627
+13
+-575.888850875701
+23
+-575.888850875701
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.385481313987
+20
+-554.385481313987
+30
+631.979456702016
+11
+-677.173649450057
+21
+-452.47296672438
+31
+682.822310520627
+12
+-651.888361812631
+22
+-435.577877671407
+32
+631.979456702016
+13
+-651.888361812631
+23
+-435.577877671407
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-694.940121314314
+20
+-464.344143695271
+30
+738.078199114136
+11
+-575.888850875701
+21
+-575.888850875701
+31
+682.822310520627
+12
+-590.997993226901
+22
+-590.997993226901
+32
+738.078199114136
+13
+-590.997993226901
+23
+-590.997993226901
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-575.888850875701
+20
+-575.888850875701
+30
+682.822310520627
+11
+-694.940121314314
+21
+-464.344143695271
+31
+738.078199114136
+12
+-677.173649450057
+22
+-452.47296672438
+32
+682.822310520627
+13
+-677.173649450057
+23
+-452.47296672438
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-43.0469725205787
+20
+-1075.72879087574
+30
+2051.86944523768
+11
+-38.8881027186488
+21
+-1076.06746493881
+31
+2059.65014337885
+12
+-39.3361654272124
+22
+-1076.09427347395
+32
+2058.8118770109
+13
+-39.3361654272124
+23
+-1076.09427347395
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-38.8881027186488
+20
+-1076.06746493881
+30
+2059.65014337885
+11
+-43.0469725205787
+21
+-1075.72879087574
+31
+2051.86944523768
+12
+-38.8881027186484
+22
+-975.735675994198
+32
+2059.65014337885
+13
+-38.8881027186484
+23
+-975.735675994198
+33
+2059.65014337885
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-38.8881027186484
+20
+-975.735675994198
+30
+2059.65014337885
+11
+-43.0469725205787
+21
+-1075.72879087574
+31
+2051.86944523768
+12
+-43.0469725205787
+22
+-975.791818816059
+32
+2051.86944523768
+13
+-43.0469725205787
+23
+-975.791818816059
+33
+2051.86944523768
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-891.670534105406
+20
+-595.795202951324
+30
+2148.21162800104
+11
+-780.975408992987
+21
+-732.34720289276
+31
+2135.63378054399
+12
+-759.379832416841
+22
+-756.991889361348
+32
+2148.21162800104
+13
+-759.379832416841
+23
+-756.991889361348
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-780.975408992987
+20
+-732.34720289276
+30
+2135.63378054399
+11
+-891.670534105406
+21
+-595.795202951324
+31
+2148.21162800104
+12
+-804.422958470166
+22
+-708.167767562713
+32
+2102.55187642937
+13
+-804.422958470166
+23
+-708.167767562713
+33
+2102.55187642937
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-804.422958470166
+20
+-708.167767562713
+30
+2102.55187642937
+11
+-891.670534105406
+21
+-595.795202951324
+31
+2148.21162800104
+12
+-818.273878310588
+22
+-697.096462294947
+32
+2058.80160712022
+13
+-818.273878310588
+23
+-697.096462294947
+33
+2058.80160712022
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-818.273878310588
+20
+-697.096462294947
+30
+2058.80160712022
+11
+-891.670534105406
+21
+-595.795202951324
+31
+2148.21162800104
+12
+-897.961029579872
+22
+-599.99837764929
+32
+2058.8118770109
+13
+-897.961029579872
+23
+-599.99837764929
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-595.795202951324
+20
+-891.670534105406
+30
+1922.19277204157
+11
+-738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+-580.006735667279
+22
+-868.04142298445
+32
+1812.39759571907
+13
+-580.006735667279
+23
+-868.04142298445
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.20854961057
+20
+-738.20854961057
+30
+1812.39759571907
+11
+-595.795202951324
+21
+-891.670534105406
+31
+1922.19277204157
+12
+-712.200510303116
+22
+-793.069743896677
+32
+1912.98147661467
+13
+-712.200510303116
+23
+-793.069743896677
+33
+1912.98147661467
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-712.200510303116
+20
+-793.069743896677
+30
+1912.98147661467
+11
+-595.795202951324
+21
+-891.670534105406
+31
+1922.19277204157
+12
+-697.04031921187
+22
+-808.580814515394
+32
+1922.19277204157
+13
+-697.04031921187
+23
+-808.580814515394
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.20854961057
+20
+-738.20854961057
+30
+1812.39759571907
+11
+-750.032010089465
+21
+-762.726244296354
+31
+1915.09420023775
+12
+-757.858868059522
+22
+-757.858868059522
+32
+1919.76361420147
+13
+-757.858868059522
+23
+-757.858868059522
+33
+1919.76361420147
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-750.032010089465
+20
+-762.726244296354
+30
+1915.09420023775
+11
+-738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+-712.200510303116
+22
+-793.069743896677
+32
+1912.98147661467
+13
+-712.200510303116
+23
+-793.069743896677
+33
+1912.98147661467
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-595.795202951324
+20
+-891.670534105406
+30
+1922.19277204157
+11
+-679.407718084958
+21
+-824.046894149155
+31
+1931.32901160226
+12
+-697.04031921187
+22
+-808.580814515394
+32
+1922.19277204157
+13
+-697.04031921187
+23
+-808.580814515394
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-679.407718084958
+20
+-824.046894149155
+30
+1931.32901160226
+11
+-595.795202951324
+21
+-891.670534105406
+31
+1922.19277204157
+12
+-599.99837764929
+22
+-897.961029579872
+32
+2011.5925230317
+13
+-599.99837764929
+23
+-897.961029579872
+33
+2011.5925230317
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-679.407718084958
+20
+-824.046894149155
+30
+1931.32901160226
+11
+-599.99837764929
+21
+-897.961029579872
+31
+2011.5925230317
+12
+-654.791104458432
+22
+-848.015122202593
+32
+1965.89490198638
+13
+-654.791104458432
+23
+-848.015122202593
+33
+1965.89490198638
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-654.791104458432
+20
+-848.015122202593
+30
+1965.89490198638
+11
+-599.99837764929
+21
+-897.961029579872
+31
+2011.5925230317
+12
+-643.970452120392
+22
+-861.831591212861
+32
+2011.20252653019
+13
+-643.970452120392
+23
+-861.831591212861
+33
+2011.20252653019
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-643.970452120392
+20
+-861.831591212861
+30
+2011.20252653019
+11
+-599.99837764929
+21
+-897.961029579872
+31
+2011.5925230317
+12
+-644.006839982028
+22
+-861.844217926399
+32
+2011.59252303171
+13
+-644.006839982028
+23
+-861.844217926399
+33
+2011.59252303171
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+914.026066884025
+11
+471.799768952456
+21
+-706.098253038493
+31
+855.37186879426
+12
+600.487204246519
+22
+-600.48720424652
+32
+855.37186879426
+13
+600.487204246519
+23
+-600.48720424652
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+471.799768952456
+20
+-706.098253038493
+30
+855.37186879426
+11
+594.593536632776
+21
+-594.593536632776
+31
+914.026066884025
+12
+467.169144021928
+22
+-699.168033082722
+32
+914.026066884025
+13
+467.169144021928
+23
+-699.168033082722
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+914.026066884025
+11
+462.461640169813
+21
+-462.461640169813
+31
+1054.1729200213
+12
+363.353779128852
+22
+-543.797359730523
+32
+1054.1729200213
+13
+363.353779128852
+23
+-543.797359730523
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+462.461640169813
+20
+-462.461640169813
+30
+1054.1729200213
+11
+467.169144021928
+21
+-699.168033082722
+31
+914.026066884025
+12
+594.593536632776
+22
+-594.593536632776
+32
+914.026066884025
+13
+594.593536632776
+23
+-594.593536632776
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+495.494614285553
+20
+-495.494614285553
+30
+1241.03564002131
+11
+441.215302798659
+21
+-660.325364744672
+31
+1054.1729200213
+12
+561.560562517035
+22
+-561.560562517035
+32
+1054.1729200213
+13
+561.560562517035
+23
+-561.560562517035
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+441.215302798659
+20
+-660.325364744672
+30
+1054.1729200213
+11
+495.494614285553
+21
+-495.494614285553
+31
+1241.03564002131
+12
+389.307620352121
+22
+-582.640028068573
+32
+1241.03564002131
+13
+389.307620352121
+23
+-582.640028068573
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+528.527588401294
+20
+-528.527588401294
+30
+1427.8983600213
+11
+467.169144021928
+21
+-699.168033082722
+31
+1241.03564002131
+12
+594.593536632776
+22
+-594.593536632775
+32
+1241.03564002131
+13
+594.593536632776
+23
+-594.593536632775
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+1241.03564002131
+11
+528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+415.26146157539
+22
+-621.482696406623
+32
+1427.8983600213
+13
+415.26146157539
+23
+-621.482696406623
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-916.376162171087
+20
+-182.278551827736
+30
+2455.6433200213
+11
+-997.519349743285
+21
+3.60955709766131e-13
+31
+2361.46489814399
+12
+-978.352295145615
+22
+-194.606371158736
+32
+2361.46489814399
+13
+-978.352295145615
+23
+-194.606371158736
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-997.519349743285
+20
+3.60955709766131e-13
+30
+2361.46489814399
+11
+-916.376162171087
+21
+-182.278551827736
+31
+2455.6433200213
+12
+-925.06395772174
+22
+-94.0698833092507
+32
+2455.6433200213
+13
+-925.06395772174
+23
+-94.0698833092507
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-997.519349743285
+20
+3.60955709766131e-13
+30
+2361.46489814399
+11
+-925.06395772174
+21
+-94.0698833092507
+31
+2455.6433200213
+12
+-934.329032542513
+22
+3.60955709766131e-13
+32
+2455.6433200213
+13
+-934.329032542513
+23
+3.60955709766131e-13
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-561.560562517035
+20
+-561.560562517035
+30
+1614.7610800213
+11
+-670.393897307106
+21
+-575.514299446691
+31
+1427.8983600213
+12
+-627.626510748516
+22
+-627.626510748516
+32
+1427.8983600213
+13
+-627.626510748516
+23
+-627.626510748516
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-670.393897307106
+20
+-575.514299446691
+30
+1427.8983600213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+-727.278190985583
+22
+-506.200587048885
+32
+1427.8983600213
+13
+-727.278190985583
+23
+-506.200587048885
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-727.278190985583
+20
+-506.200587048885
+30
+1427.8983600213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+-660.325364744672
+22
+-441.215302798659
+32
+1614.7610800213
+13
+-660.325364744672
+23
+-441.215302798659
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-727.278190985583
+20
+-506.200587048885
+30
+1427.8983600213
+11
+-660.325364744672
+21
+-441.215302798659
+31
+1614.7610800213
+12
+-738.010701420772
+22
+-493.122985245198
+32
+1427.8983600213
+13
+-738.010701420772
+23
+-493.122985245198
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+997.519349743285
+20
+1.80477854883065e-13
+30
+2361.46489814399
+11
+916.376162171087
+21
+-182.278551827737
+31
+2455.6433200213
+12
+978.352295145615
+22
+-194.606371158736
+32
+2361.46489814399
+13
+978.352295145615
+23
+-194.606371158736
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+916.376162171087
+20
+-182.278551827737
+30
+2455.6433200213
+11
+997.519349743285
+21
+1.80477854883065e-13
+31
+2361.46489814399
+12
+925.063958382437
+22
+-94.0698766010765
+32
+2455.6433200213
+13
+925.063958382437
+23
+-94.0698766010765
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+925.063958382437
+20
+-94.0698766010765
+30
+2455.6433200213
+11
+997.519349743285
+21
+1.80477854883065e-13
+31
+2361.46489814399
+12
+934.329032542513
+22
+1.80477854883065e-13
+32
+2455.6433200213
+13
+934.329032542513
+23
+1.80477854883065e-13
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-757.051052836406
+20
+-872.59583635536
+30
+2110.05176266305
+11
+-713.051374182295
+21
+-793.031288591004
+31
+2155.44278114838
+12
+-779.335772128321
+22
+-850.040945080999
+32
+2123.14819601944
+13
+-779.335772128321
+23
+-850.040945080999
+33
+2123.14819601944
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-713.051374182295
+20
+-793.031288591004
+30
+2155.44278114838
+11
+-757.051052836406
+21
+-872.59583635536
+31
+2110.05176266305
+12
+-700.811796716974
+22
+-805.485642916867
+32
+2148.21162800104
+13
+-700.811796716974
+23
+-805.485642916867
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-700.811796716974
+20
+-805.485642916867
+30
+2148.21162800104
+11
+-757.051052836406
+21
+-872.59583635536
+31
+2110.05176266305
+12
+-680.351354626835
+22
+-823.413171149779
+32
+2137.7839549476
+13
+-680.351354626835
+23
+-823.413171149779
+33
+2137.7839549476
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-803.639076572628
+20
+-825.829443784589
+30
+2123.11658846682
+11
+-780.975408992987
+21
+-732.34720289276
+31
+2135.63378054399
+12
+-826.261008377686
+22
+-803.647314060702
+32
+2109.96175196855
+13
+-826.261008377686
+23
+-803.647314060702
+33
+2109.96175196855
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-780.975408992987
+20
+-732.34720289276
+30
+2135.63378054399
+11
+-803.639076572628
+21
+-825.829443784589
+31
+2123.11658846682
+12
+-759.379832416841
+22
+-756.991889361348
+32
+2148.21162800104
+13
+-759.379832416841
+23
+-756.991889361348
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-759.379832416841
+20
+-756.991889361348
+30
+2148.21162800104
+11
+-803.639076572628
+21
+-825.829443784589
+31
+2123.11658846682
+12
+-758.175252738136
+22
+-758.175252738136
+32
+2148.91211343617
+13
+-758.175252738136
+23
+-758.175252738136
+33
+2148.91211343617
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.175252738136
+20
+-758.175252738136
+30
+2148.91211343617
+11
+-803.639076572628
+21
+-825.829443784589
+31
+2123.11658846682
+12
+-750.226480623555
+22
+-763.163737563064
+32
+2153.51833793914
+13
+-750.226480623555
+23
+-763.163737563064
+33
+2153.51833793914
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-471.799768952456
+20
+-706.098253038492
+30
+855.37186879426
+11
+-599.277053327022
+21
+-599.277053327022
+31
+796.153149972084
+12
+-470.848959476119
+22
+-704.67526609701
+32
+796.153149972084
+13
+-470.848959476119
+23
+-704.67526609701
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-599.277053327022
+20
+-599.277053327022
+30
+796.153149972084
+11
+-471.799768952456
+21
+-706.098253038492
+31
+855.37186879426
+12
+-600.487204246519
+22
+-600.487204246519
+32
+855.37186879426
+13
+-600.487204246519
+23
+-600.487204246519
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+194.606371158736
+20
+-978.352295145615
+30
+2361.46489814399
+11
+1.80477854883065e-13
+21
+-1043.98454271904
+31
+2258.00680432354
+12
+203.671280618918
+22
+-1023.92467246733
+32
+2258.00680432354
+13
+203.671280618918
+23
+-1023.92467246733
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1043.98454271904
+30
+2258.00680432354
+11
+194.606371158736
+21
+-978.352295145615
+31
+2361.46489814399
+12
+1.80477854883065e-13
+22
+-997.519349743284
+32
+2361.46489814399
+13
+1.80477854883065e-13
+23
+-997.519349743284
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-780.975408992987
+20
+-732.34720289276
+30
+2135.63378054399
+11
+-843.757583494495
+21
+-786.871584078293
+31
+2085.68639113261
+12
+-826.261008377686
+22
+-803.647314060702
+32
+2109.96175196855
+13
+-826.261008377686
+23
+-803.647314060702
+33
+2109.96175196855
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-843.757583494495
+20
+-786.871584078293
+30
+2085.68639113261
+11
+-780.975408992987
+21
+-732.34720289276
+31
+2135.63378054399
+12
+-804.422958470166
+22
+-708.167767562713
+32
+2102.55187642937
+13
+-804.422958470166
+23
+-708.167767562713
+33
+2102.55187642937
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-786.927339360508
+20
+-735.2933223192
+30
+2011.59250954971
+11
+-761.145931803741
+21
+-761.14593180374
+31
+1969.69450846846
+12
+-763.653083482914
+22
+-763.653083482914
+32
+2011.5925230317
+13
+-763.653083482914
+23
+-763.653083482914
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.145931803741
+20
+-761.14593180374
+30
+1969.69450846846
+11
+-786.927339360508
+21
+-735.2933223192
+31
+2011.59250954971
+12
+-766.91292419702
+22
+-754.581509059306
+32
+1973.17973333127
+13
+-766.91292419702
+23
+-754.581509059306
+33
+1973.17973333127
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-766.91292419702
+20
+-754.581509059306
+30
+1973.17973333127
+11
+-786.927339360508
+21
+-735.2933223192
+31
+2011.59250954971
+12
+-781.308061641118
+22
+-739.778791807586
+32
+1993.80290570042
+13
+-781.308061641118
+23
+-739.778791807586
+33
+1993.80290570042
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-441.215302798659
+20
+-660.325364744672
+30
+1614.7610800213
+11
+-540.907488126092
+21
+-698.794973376131
+31
+1427.8983600213
+12
+-493.122985245198
+22
+-738.010701420772
+32
+1427.8983600213
+13
+-493.122985245198
+23
+-738.010701420772
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-540.907488126092
+20
+-698.794973376131
+30
+1427.8983600213
+11
+-441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+-610.198917737466
+22
+-641.92896670788
+32
+1427.8983600213
+13
+-610.198917737466
+23
+-641.92896670788
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-610.198917737466
+20
+-641.92896670788
+30
+1427.8983600213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+-627.626510748516
+22
+-627.626510748516
+32
+1427.8983600213
+13
+-627.626510748516
+23
+-627.626510748516
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-561.560562517035
+20
+-561.560562517035
+30
+1614.7610800213
+11
+-610.198917737466
+21
+-641.92896670788
+31
+1427.8983600213
+12
+-441.215302798659
+22
+-660.325364744672
+32
+1614.7610800213
+13
+-441.215302798659
+23
+-660.325364744672
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-410.390873558597
+20
+-990.771212819307
+30
+1922.19277204157
+11
+-580.006735667279
+21
+-868.04142298445
+31
+1812.39759571907
+12
+-399.515588143821
+22
+-964.515951276276
+32
+1812.39759571907
+13
+-399.515588143821
+23
+-964.515951276276
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-580.006735667279
+20
+-868.04142298445
+30
+1812.39759571907
+11
+-410.390873558597
+21
+-990.771212819307
+31
+1922.19277204157
+12
+-595.795202951324
+22
+-891.670534105406
+32
+1922.19277204157
+13
+-595.795202951324
+23
+-891.670534105406
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-413.286070645571
+20
+-997.760836892423
+30
+2011.5925230317
+11
+-595.795202951324
+21
+-891.670534105406
+31
+1922.19277204157
+12
+-410.390873558597
+22
+-990.771212819307
+32
+1922.19277204157
+13
+-410.390873558597
+23
+-990.771212819307
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-595.795202951324
+20
+-891.670534105406
+30
+1922.19277204157
+11
+-413.286070645571
+21
+-997.760836892423
+31
+2011.5925230317
+12
+-599.99837764929
+22
+-897.961029579872
+32
+2011.5925230317
+13
+-599.99837764929
+23
+-897.961029579872
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+-410.390873558597
+21
+-990.771212819307
+31
+1922.19277204157
+12
+-209.215453044867
+22
+-1051.79710945546
+32
+1922.19277204157
+13
+-209.215453044867
+23
+-1051.79710945546
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-410.390873558597
+20
+-990.771212819307
+30
+1922.19277204157
+11
+-210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+-413.286070645571
+22
+-997.760836892423
+32
+2011.5925230317
+13
+-413.286070645571
+23
+-997.760836892423
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-194.606371158736
+20
+-978.352295145615
+30
+2361.46489814399
+11
+-399.515588143821
+21
+-964.515951276275
+31
+2258.00680432354
+12
+-203.671280618918
+22
+-1023.92467246733
+32
+2258.00680432354
+13
+-203.671280618918
+23
+-1023.92467246733
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-399.515588143821
+20
+-964.515951276275
+30
+2258.00680432354
+11
+-194.606371158736
+21
+-978.352295145615
+31
+2361.46489814399
+12
+-381.734128610353
+22
+-921.587710511788
+32
+2361.46489814399
+13
+-381.734128610353
+23
+-921.587710511788
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-731.773964383885
+20
+-406.167737113607
+30
+2549.0746800213
+11
+-699.168033082722
+21
+-467.169144021928
+31
+2455.6433200213
+12
+-699.168033082722
+22
+-467.169144021929
+32
+2549.0746800213
+13
+-699.168033082722
+23
+-467.169144021929
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+-731.773964383885
+21
+-406.167737113607
+31
+2549.0746800213
+12
+-776.873894119249
+22
+-321.791703197793
+32
+2455.6433200213
+13
+-776.873894119249
+23
+-321.791703197793
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.873894119249
+20
+-321.791703197793
+30
+2455.6433200213
+11
+-731.773964383885
+21
+-406.167737113607
+31
+2549.0746800213
+12
+-771.834238188426
+22
+-331.220236285058
+32
+2549.0746800213
+13
+-771.834238188426
+23
+-331.220236285058
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.873894119249
+20
+-321.791703197793
+30
+2455.6433200213
+11
+-771.834238188426
+21
+-331.220236285058
+31
+2549.0746800213
+12
+-776.87389411925
+22
+-321.791703197793
+32
+2549.0746800213
+13
+-776.87389411925
+23
+-321.791703197793
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-832.899678896021
+20
+-165.674046918964
+30
+855.37186879426
+11
+-782.993203577332
+21
+-324.326404167689
+31
+796.153149972084
+12
+-784.574341950659
+22
+-324.981333125909
+32
+855.37186879426
+13
+-784.574341950659
+23
+-324.981333125909
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-782.993203577332
+20
+-324.326404167689
+30
+796.153149972084
+11
+-832.899678896021
+21
+-165.674046918964
+31
+855.37186879426
+12
+-831.221151351825
+22
+-165.340167031437
+32
+796.153149972084
+13
+-831.221151351825
+23
+-165.340167031437
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+320.792432759964
+20
+-1019.67559748903
+30
+1941.79325554754
+11
+209.215453044867
+21
+-1051.79710945546
+31
+1922.19277204157
+12
+349.642861592144
+22
+-1009.19892078507
+32
+1922.19277204157
+13
+349.642861592144
+23
+-1009.19892078507
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+1922.19277204157
+11
+320.792432759964
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+210.691411720441
+22
+-1059.21725479392
+32
+2011.5925230317
+13
+210.691411720441
+23
+-1059.21725479392
+33
+2011.5925230317
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+320.792432759964
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+288.287531523413
+22
+-1033.5656801692
+32
+1987.58272162968
+13
+288.287531523413
+23
+-1033.5656801692
+33
+1987.58272162968
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+288.287531523413
+21
+-1033.5656801692
+31
+1987.58272162968
+12
+287.457754814725
+22
+-1035.93043920361
+32
+2011.5925230317
+13
+287.457754814725
+23
+-1035.93043920361
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+705.352696568272
+20
+-705.352696568272
+30
+2361.46489814399
+11
+653.750224578544
+21
+-807.521705673266
+31
+2258.00680432354
+12
+738.20854961057
+22
+-738.208549610569
+32
+2258.00680432354
+13
+738.20854961057
+23
+-738.208549610569
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-807.521705673266
+30
+2258.00680432354
+11
+705.352696568272
+21
+-705.352696568272
+31
+2361.46489814399
+12
+653.750224578543
+22
+-795.278127928135
+32
+2279.18196601546
+13
+653.750224578543
+23
+-795.278127928135
+33
+2279.18196601546
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+600.307509232711
+20
+-841.785968318108
+30
+2274.60134354834
+11
+554.192057578438
+21
+-829.407026995336
+31
+2361.46489814399
+12
+577.578293884962
+22
+-864.407003018736
+32
+2267.73932769213
+13
+577.578293884962
+23
+-864.407003018736
+33
+2267.73932769213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.192057578438
+20
+-829.407026995336
+30
+2361.46489814399
+11
+600.307509232711
+21
+-841.785968318108
+31
+2274.60134354834
+12
+653.750224578543
+22
+-795.278127928135
+32
+2279.18196601546
+13
+653.750224578543
+23
+-795.278127928135
+33
+2279.18196601546
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.192057578438
+20
+-829.407026995336
+30
+2361.46489814399
+11
+653.750224578543
+21
+-795.278127928135
+31
+2279.18196601546
+12
+705.352696568272
+22
+-705.352696568272
+32
+2361.46489814399
+13
+705.352696568272
+23
+-705.352696568272
+33
+2361.46489814399
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.308061641118
+20
+-739.778791807586
+30
+1993.80290570042
+11
+-833.979694213849
+21
+-798.243508123
+31
+2025.28667143296
+12
+-827.976635409257
+22
+-804.801337927561
+32
+2003.90537806848
+13
+-827.976635409257
+23
+-804.801337927561
+33
+2003.90537806848
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-833.979694213849
+20
+-798.243508123
+30
+2025.28667143296
+11
+-781.308061641118
+21
+-739.778791807586
+31
+1993.80290570042
+12
+-786.927339360508
+22
+-735.2933223192
+32
+2011.59250954971
+13
+-786.927339360508
+23
+-735.2933223192
+33
+2011.59250954971
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-833.979694213849
+20
+-798.243508123
+30
+2025.28667143296
+11
+-786.927339360508
+21
+-735.2933223192
+31
+2011.59250954971
+12
+-789.394716623343
+22
+-732.286733093936
+32
+2020.79944934296
+13
+-789.394716623343
+23
+-732.286733093936
+33
+2020.79944934296
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1.46816063865592
+20
+-978.223928142328
+30
+2079.65151912724
+11
+1.80477854883065e-13
+21
+-1078.21721573187
+31
+2079.50691792559
+12
+-1.4681606386561
+22
+-1078.06037755542
+32
+2079.65151912724
+13
+-1.4681606386561
+23
+-1078.06037755542
+33
+2079.65151912724
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1078.21721573187
+30
+2079.50691792559
+11
+-1.46816063865592
+21
+-978.223928142328
+31
+2079.65151912724
+12
+0.0
+22
+-978.377185230535
+32
+2079.50691792559
+13
+0.0
+23
+-978.377185230535
+33
+2079.50691792559
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1078.21721573187
+30
+2079.50691792559
+11
+0.0
+21
+-978.377185230535
+31
+2079.50691792559
+12
+7.31179769318775
+22
+-977.70014443868
+32
+2078.78676870972
+13
+7.31179769318775
+23
+-977.70014443868
+33
+2078.78676870972
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1078.21721573187
+30
+2079.50691792559
+11
+7.31179769318775
+21
+-977.70014443868
+31
+2078.78676870972
+12
+7.31179769318775
+22
+-1077.55800963197
+32
+2078.78676870972
+13
+7.31179769318775
+23
+-1077.55800963197
+33
+2078.78676870972
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.20854961057
+20
+-738.20854961057
+30
+1812.39759571907
+11
+767.904940618653
+21
+-709.249312269841
+31
+1830.19391829555
+12
+739.771122243662
+22
+-739.771122243661
+32
+1820.9352284623
+13
+739.771122243662
+23
+-739.771122243661
+33
+1820.9352284623
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+767.904940618653
+20
+-709.249312269841
+30
+1830.19391829555
+11
+738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+868.04142298445
+22
+-580.006735667279
+32
+1812.39759571907
+13
+868.04142298445
+23
+-580.006735667279
+33
+1812.39759571907
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+767.904940618653
+20
+-709.249312269841
+30
+1830.19391829555
+11
+868.04142298445
+21
+-580.006735667279
+31
+1812.39759571907
+12
+806.222012671193
+22
+-670.885845335315
+32
+1850.69961858573
+13
+806.222012671193
+23
+-670.885845335315
+33
+1850.69961858573
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+806.222012671193
+20
+-670.885845335315
+30
+1850.69961858573
+11
+868.04142298445
+21
+-580.006735667279
+31
+1812.39759571907
+12
+843.01369820043
+22
+-637.259985333474
+32
+1878.29564871262
+13
+843.01369820043
+23
+-637.259985333474
+33
+1878.29564871262
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+843.01369820043
+20
+-637.259985333474
+30
+1878.29564871262
+11
+868.04142298445
+21
+-580.006735667279
+31
+1812.39759571907
+12
+876.866113364493
+22
+-609.663955206589
+32
+1911.92150871446
+13
+876.866113364493
+23
+-609.663955206589
+33
+1911.92150871446
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+876.866113364493
+20
+-609.663955206589
+30
+1911.92150871446
+11
+868.04142298445
+21
+-580.006735667279
+31
+1812.39759571907
+12
+884.794355702396
+22
+-604.173850577965
+32
+1922.19277204157
+13
+884.794355702396
+23
+-604.173850577965
+33
+1922.19277204157
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+884.794355702396
+20
+-604.173850577965
+30
+1922.19277204157
+11
+868.04142298445
+21
+-580.006735667279
+31
+1812.39759571907
+12
+891.670534105407
+22
+-595.795202951324
+32
+1922.19277204157
+13
+891.670534105407
+23
+-595.795202951324
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+914.026066884025
+11
+-654.019523605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+-840.882243605455
+22
+1.80477854883065e-13
+32
+914.026066884025
+13
+-840.882243605455
+23
+1.80477854883065e-13
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-654.019523605455
+20
+1.80477854883065e-13
+30
+1054.1729200213
+11
+-824.724927080674
+21
+-164.047987682633
+31
+914.026066884025
+12
+-641.452721848564
+22
+-127.592879465023
+32
+1054.1729200213
+13
+-641.452721848564
+23
+-127.592879465023
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1072.40303302985
+20
+3.60955709766131e-13
+30
+1922.19277204157
+11
+-1023.92467246733
+21
+-203.671280618918
+31
+1812.39759571907
+12
+-1051.79710945546
+22
+-209.215453044867
+32
+1922.19277204157
+13
+-1051.79710945546
+23
+-209.215453044867
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1023.92467246733
+20
+-203.671280618918
+30
+1812.39759571907
+11
+-1072.40303302985
+21
+3.60955709766131e-13
+31
+1922.19277204157
+12
+-1043.98454271904
+22
+3.60955709766131e-13
+32
+1812.39759571907
+13
+-1043.98454271904
+23
+3.60955709766131e-13
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+914.026066884025
+11
+-849.217148276931
+21
+3.60955709766131e-13
+31
+855.37186879426
+12
+-832.899678896021
+22
+-165.674046918964
+32
+855.37186879426
+13
+-832.899678896021
+23
+-165.674046918964
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-849.217148276931
+20
+3.60955709766131e-13
+30
+855.37186879426
+11
+-824.724927080674
+21
+-164.047987682633
+31
+914.026066884025
+12
+-840.882243605455
+22
+1.80477854883065e-13
+32
+914.026066884025
+13
+-840.882243605455
+23
+1.80477854883065e-13
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+203.671280618918
+20
+-1023.92467246733
+30
+2258.00680432354
+11
+1.80477854883065e-13
+21
+-1072.40303302985
+31
+2148.21162800104
+12
+209.215453044867
+22
+-1051.79710945546
+32
+2148.21162800104
+13
+209.215453044867
+23
+-1051.79710945546
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1072.40303302985
+30
+2148.21162800104
+11
+203.671280618918
+21
+-1023.92467246733
+31
+2258.00680432354
+12
+1.80477854883065e-13
+22
+-1043.98454271904
+32
+2258.00680432354
+13
+1.80477854883065e-13
+23
+-1043.98454271904
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+2549.0746800213
+11
+164.047987682633
+21
+-824.724927080674
+31
+2455.6433200213
+12
+321.791703197793
+22
+-776.87389411925
+32
+2455.6433200213
+13
+321.791703197793
+23
+-776.87389411925
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+321.791703197793
+21
+-776.87389411925
+31
+2549.0746800213
+12
+164.047987682633
+22
+-824.724927080674
+32
+2549.0746800213
+13
+164.047987682633
+23
+-824.724927080674
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2549.0746800213
+11
+321.791703197793
+21
+-776.87389411925
+31
+2549.0746800213
+12
+291.163503259545
+22
+-786.16485699538
+32
+2549.0746800213
+13
+291.163503259545
+23
+-786.16485699538
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2549.0746800213
+11
+291.163503259545
+21
+-786.16485699538
+31
+2549.0746800213
+12
+209.932273259994
+22
+-810.806081221089
+32
+2549.0746800213
+13
+209.932273259994
+23
+-810.806081221089
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-837.4569269514
+30
+1817.56657040449
+11
+180.675224578544
+21
+-794.16651328432
+31
+1813.3028368105
+12
+180.675224578544
+22
+-837.4569269514
+32
+1817.56657040449
+13
+180.675224578544
+23
+-837.4569269514
+33
+1817.56657040449
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+1813.3028368105
+11
+653.750224578544
+21
+-837.4569269514
+31
+1817.56657040449
+12
+653.750224578543
+22
+-808.286776169451
+32
+1814.69356131783
+13
+653.750224578543
+23
+-808.286776169451
+33
+1814.69356131783
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+670.391132645368
+20
+-794.16651328432
+30
+1813.3028368105
+11
+180.675224578544
+21
+-794.16651328432
+31
+1813.3028368105
+12
+653.750224578543
+22
+-808.286776169451
+32
+1814.69356131783
+13
+653.750224578543
+23
+-808.286776169451
+33
+1814.69356131783
+70
+2
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+876.866113364493
+20
+-609.663955206589
+30
+1911.92150871446
+11
+180.675224578544
+21
+-637.259985333474
+31
+1878.29564871262
+12
+843.01369820043
+22
+-637.259985333474
+32
+1878.29564871262
+13
+843.01369820043
+23
+-637.259985333474
+33
+1878.29564871262
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-637.259985333474
+30
+1878.29564871262
+11
+876.866113364493
+21
+-609.663955206589
+31
+1911.92150871446
+12
+180.675224578544
+22
+-609.663955206589
+32
+1911.92150871446
+13
+180.675224578544
+23
+-609.663955206589
+33
+1911.92150871446
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632776
+20
+-594.593536632776
+30
+914.026066884025
+11
+-543.797359730523
+21
+-363.353779128852
+31
+1054.1729200213
+12
+-699.168033082722
+22
+-467.169144021929
+32
+914.026066884025
+13
+-699.168033082722
+23
+-467.169144021929
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-543.797359730523
+20
+-363.353779128852
+30
+1054.1729200213
+11
+-594.593536632776
+21
+-594.593536632776
+31
+914.026066884025
+12
+-462.461640169813
+22
+-462.461640169813
+32
+1054.1729200213
+13
+-462.461640169813
+23
+-462.461640169813
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-10.2481189704998
+20
+-977.41094203537
+30
+2078.78676870972
+11
+-18.690668427508
+21
+-1076.65401668716
+31
+2076.22574933075
+12
+-18.690668427508
+22
+-976.732727149702
+32
+2076.22574933075
+13
+-18.690668427508
+23
+-976.732727149702
+33
+2076.22574933075
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-18.690668427508
+20
+-1076.65401668716
+30
+2076.22574933075
+11
+-10.2481189704998
+21
+-977.41094203537
+31
+2078.78676870972
+12
+-10.2481189705
+22
+-1077.26880722866
+32
+2078.78676870972
+13
+-10.2481189705
+23
+-1077.26880722866
+33
+2078.78676870972
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+908.625264240696
+20
+-576.530906699202
+30
+2078.49259036266
+11
+180.675224578544
+21
+-589.158254916404
+31
+2120.11937767794
+12
+180.675224578544
+22
+-576.530907025343
+32
+2078.49259033054
+13
+180.675224578544
+23
+-576.530907025343
+33
+2078.49259033054
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-589.158254916404
+30
+2120.11937767794
+11
+908.625264240696
+21
+-576.530906699202
+31
+2078.49259036266
+12
+897.900697882446
+22
+-589.158254916404
+32
+2120.11937767794
+13
+897.900697882446
+23
+-589.158254916404
+33
+2120.11937767794
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+590.997993226901
+20
+-590.997993226901
+30
+738.078199114136
+11
+704.67526609701
+21
+-470.84895947612
+31
+796.153149972084
+12
+599.277053327022
+22
+-599.277053327022
+32
+796.153149972084
+13
+599.277053327022
+23
+-599.277053327022
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+704.67526609701
+20
+-470.84895947612
+30
+796.153149972084
+11
+590.997993226901
+21
+-590.997993226901
+31
+738.078199114136
+12
+694.940121314314
+22
+-464.344143695271
+32
+738.078199114136
+13
+694.940121314314
+23
+-464.344143695271
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-733.088824464619
+20
+-145.820433573828
+30
+1427.8983600213
+11
+-840.882243605455
+21
+1.80477854883065e-13
+31
+1241.03564002131
+12
+-824.724927080674
+22
+-164.047987682633
+32
+1241.03564002131
+13
+-824.724927080674
+23
+-164.047987682633
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+1241.03564002131
+11
+-733.088824464619
+21
+-145.820433573828
+31
+1427.8983600213
+12
+-747.450883605455
+22
+1.80477854883065e-13
+32
+1427.8983600213
+13
+-747.450883605455
+23
+1.80477854883065e-13
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+908.625259608371
+20
+-576.530907025343
+30
+1991.91176299638
+11
+180.675224578544
+21
+-589.158254916404
+31
+1950.28497564898
+12
+897.90069342138
+22
+-589.158254916404
+32
+1950.28497564898
+13
+897.90069342138
+23
+-589.158254916404
+33
+1950.28497564898
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-589.158254916404
+30
+1950.28497564898
+11
+908.625259608371
+21
+-576.530907025343
+31
+1991.91176299638
+12
+180.675224578544
+22
+-576.530907025343
+32
+1991.91176299638
+13
+180.675224578544
+23
+-576.530907025343
+33
+1991.91176299638
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021929
+20
+-699.168033082722
+30
+914.026066884025
+11
+-462.461640169813
+21
+-462.461640169813
+31
+1054.1729200213
+12
+-594.593536632776
+22
+-594.593536632776
+32
+914.026066884025
+13
+-594.593536632776
+23
+-594.593536632776
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-462.461640169813
+20
+-462.461640169813
+30
+1054.1729200213
+11
+-467.169144021929
+21
+-699.168033082722
+31
+914.026066884025
+12
+-363.353779128852
+22
+-543.797359730523
+32
+1054.1729200213
+13
+-363.353779128852
+23
+-543.797359730523
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-705.406767999999
+30
+2035.20217666346
+11
+104.493585205719
+21
+-707.112262514746
+31
+2017.88602361794
+12
+180.675224578544
+22
+-707.112261617118
+32
+2017.88600937388
+13
+180.675224578544
+23
+-707.112261617118
+33
+2017.88600937388
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493585205719
+20
+-707.112262514746
+30
+2017.88602361794
+11
+180.675224578544
+21
+-705.406767999999
+31
+2035.20217666346
+12
+104.493582702864
+22
+-705.406767999999
+32
+2035.2022000213
+13
+104.493582702864
+23
+-705.406767999999
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.35466353334
+20
+-731.718944065101
+30
+1933.51796332002
+11
+-805.85406896736
+21
+-828.277941296301
+31
+1950.68418808414
+12
+-828.138788259274
+22
+-805.723050021943
+32
+1963.78062144053
+13
+-828.138788259274
+23
+-805.723050021943
+33
+1963.78062144053
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-805.85406896736
+20
+-828.277941296301
+30
+1950.68418808414
+11
+-781.35466353334
+21
+-731.718944065101
+31
+1933.51796332002
+12
+-761.987076679027
+22
+-753.814953035805
+32
+1922.19277204157
+13
+-761.987076679027
+23
+-753.814953035805
+33
+1922.19277204157
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-805.85406896736
+20
+-828.277941296301
+30
+1950.68418808414
+11
+-761.987076679027
+21
+-753.814953035805
+31
+1922.19277204157
+12
+-757.858868059522
+22
+-757.858868059522
+32
+1919.76361420147
+13
+-757.858868059522
+23
+-757.858868059522
+33
+1919.76361420147
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-805.85406896736
+20
+-828.277941296301
+30
+1950.68418808414
+11
+-757.858868059522
+21
+-757.858868059522
+31
+1919.76361420147
+12
+-750.032010089465
+22
+-762.726244296354
+32
+1915.09420023775
+13
+-750.032010089465
+23
+-762.726244296354
+33
+1915.09420023775
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+731.120068617964
+20
+-145.428823687577
+30
+587.016306884026
+11
+784.019466456977
+21
+1.80477854883065e-13
+31
+631.979456702016
+12
+768.954752250597
+22
+-152.954610178005
+32
+631.979456702016
+13
+768.954752250597
+23
+-152.954610178005
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+784.019466456977
+20
+1.80477854883065e-13
+30
+631.979456702016
+11
+731.120068617964
+21
+-145.428823687577
+31
+587.016306884026
+12
+745.443557551535
+22
+1.80477854883065e-13
+32
+587.016306884026
+13
+745.443557551535
+23
+1.80477854883065e-13
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-1011.8021195433
+30
+1991.91176299638
+11
+180.675224578544
+21
+-1011.8021195433
+31
+2078.49259033054
+12
+180.675224578544
+22
+-1016.06585313728
+32
+2035.20217666346
+13
+180.675224578544
+23
+-1016.06585313728
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-1011.8021195433
+30
+2078.49259033054
+11
+180.675224578544
+21
+-1011.8021195433
+31
+1991.91176299638
+12
+180.675224578544
+22
+-999.174771652236
+32
+1950.28497564898
+13
+180.675224578544
+23
+-999.174771652236
+33
+1950.28497564898
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-1011.8021195433
+30
+2078.49259033054
+11
+180.675224578544
+21
+-999.174771652236
+31
+1950.28497564898
+12
+180.675224578544
+22
+-999.174771652236
+32
+2120.11937767794
+13
+180.675224578544
+23
+-999.174771652236
+33
+2120.11937767794
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-999.174771652236
+30
+2120.11937767794
+11
+180.675224578544
+21
+-999.174771652236
+31
+1950.28497564898
+12
+180.675224578544
+22
+-978.669071362051
+32
+1911.92150871446
+13
+180.675224578544
+23
+-978.669071362051
+33
+1911.92150871446
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-999.174771652236
+30
+2120.11937767794
+11
+180.675224578544
+21
+-978.669071362051
+31
+1911.92150871446
+12
+180.675224578544
+22
+-978.669071362051
+32
+2158.48284461247
+13
+180.675224578544
+23
+-978.669071362051
+33
+2158.48284461247
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-978.669071362051
+30
+2158.48284461247
+11
+180.675224578544
+21
+-978.669071362051
+31
+1911.92150871446
+12
+180.675224578544
+22
+-951.073041235166
+32
+1878.29564871262
+13
+180.675224578544
+23
+-951.073041235166
+33
+1878.29564871262
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-978.669071362051
+30
+2158.48284461247
+11
+180.675224578544
+21
+-951.073041235166
+31
+1878.29564871262
+12
+180.675224578544
+22
+-951.073041235166
+32
+2192.10870461431
+13
+180.675224578544
+23
+-951.073041235166
+33
+2192.10870461431
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-951.073041235166
+30
+2192.10870461431
+11
+180.675224578544
+21
+-951.073041235166
+31
+1878.29564871262
+12
+180.675224578544
+22
+-917.447181233325
+32
+1850.69961858573
+13
+180.675224578544
+23
+-917.447181233325
+33
+1850.69961858573
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-951.073041235166
+30
+2192.10870461431
+11
+180.675224578544
+21
+-917.447181233325
+31
+1850.69961858573
+12
+180.675224578544
+22
+-917.447181233325
+32
+2219.70473474119
+13
+180.675224578544
+23
+-917.447181233325
+33
+2219.70473474119
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-917.447181233325
+30
+2219.70473474119
+11
+180.675224578544
+21
+-917.447181233325
+31
+1850.69961858573
+12
+180.675224578544
+22
+-879.083714298798
+32
+1830.19391829555
+13
+180.675224578544
+23
+-879.083714298798
+33
+1830.19391829555
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-917.447181233325
+30
+2219.70473474119
+11
+180.675224578544
+21
+-879.083714298798
+31
+1830.19391829555
+12
+180.675224578544
+22
+-882.926258568641
+32
+2035.20217666346
+13
+180.675224578544
+23
+-882.926258568641
+33
+2035.20217666346
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-882.926258568641
+30
+2035.20217666346
+11
+180.675224578544
+21
+-879.083714298798
+31
+1830.19391829555
+12
+180.675224578544
+22
+-881.220764951522
+32
+2017.88600937388
+13
+180.675224578544
+23
+-881.220764951522
+33
+2017.88600937388
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-881.220764951522
+30
+2017.88600937388
+11
+180.675224578544
+21
+-879.083714298798
+31
+1830.19391829555
+12
+180.675224578544
+22
+-876.169825263419
+32
+2001.23529268221
+13
+180.675224578544
+23
+-876.169825263419
+33
+2001.23529268221
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-876.169825263419
+30
+2001.23529268221
+11
+180.675224578544
+21
+-879.083714298798
+31
+1830.19391829555
+12
+180.675224578544
+22
+-837.4569269514
+32
+1817.56657040449
+13
+180.675224578544
+23
+-837.4569269514
+33
+1817.56657040449
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-876.169825263419
+30
+2001.23529268221
+11
+180.675224578544
+21
+-837.4569269514
+31
+1817.56657040449
+12
+180.675224578544
+22
+-867.967544283947
+32
+1985.88990429309
+13
+180.675224578544
+23
+-867.967544283947
+33
+1985.88990429309
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-867.967544283947
+30
+1985.88990429309
+11
+180.675224578544
+21
+-837.4569269514
+31
+1817.56657040449
+12
+180.675224578544
+22
+-856.929131071254
+32
+1972.43955887653
+13
+180.675224578544
+23
+-856.929131071254
+33
+1972.43955887653
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-856.929131071254
+30
+1972.43955887653
+11
+180.675224578544
+21
+-837.4569269514
+31
+1817.56657040449
+12
+180.675224578544
+22
+-843.478785654691
+32
+1961.40114566384
+13
+180.675224578544
+23
+-843.478785654691
+33
+1961.40114566384
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-843.478785654691
+30
+1961.40114566384
+11
+180.675224578544
+21
+-837.4569269514
+31
+1817.56657040449
+12
+180.675224578544
+22
+-828.133397265575
+32
+1953.19886468436
+13
+180.675224578544
+23
+-828.133397265575
+33
+1953.19886468436
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-828.133397265575
+30
+1953.19886468436
+11
+180.675224578544
+21
+-837.4569269514
+31
+1817.56657040449
+12
+180.675224578544
+22
+-794.16651328432
+32
+1813.3028368105
+13
+180.675224578544
+23
+-794.16651328432
+33
+1813.3028368105
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-828.133397265575
+30
+1953.19886468436
+11
+180.675224578544
+21
+-794.16651328432
+31
+1813.3028368105
+12
+180.675224578544
+22
+-811.482680573908
+32
+1948.14792499626
+13
+180.675224578544
+23
+-811.482680573908
+33
+1948.14792499626
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-811.482680573908
+30
+1948.14792499626
+11
+180.675224578544
+21
+-794.16651328432
+31
+1813.3028368105
+12
+180.675224578544
+22
+-794.16651328432
+32
+1946.44243137914
+13
+180.675224578544
+23
+-794.16651328432
+33
+1946.44243137914
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+1946.44243137914
+11
+180.675224578544
+21
+-794.16651328432
+31
+1813.3028368105
+12
+180.675224578544
+22
+-750.87609961724
+32
+1817.56657040449
+13
+180.675224578544
+23
+-750.87609961724
+33
+1817.56657040449
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+1946.44243137914
+11
+180.675224578544
+21
+-750.87609961724
+31
+1817.56657040449
+12
+180.675224578544
+22
+-776.850345994732
+32
+1948.14792499626
+13
+180.675224578544
+23
+-776.850345994732
+33
+1948.14792499626
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-776.850345994732
+30
+1948.14792499626
+11
+180.675224578544
+21
+-750.87609961724
+31
+1817.56657040449
+12
+180.675224578544
+22
+-760.199629303065
+32
+1953.19886468436
+13
+180.675224578544
+23
+-760.199629303065
+33
+1953.19886468436
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-760.199629303065
+30
+1953.19886468436
+11
+180.675224578544
+21
+-750.87609961724
+31
+1817.56657040449
+12
+180.675224578544
+22
+-744.854240913949
+32
+1961.40114566384
+13
+180.675224578544
+23
+-744.854240913949
+33
+1961.40114566384
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-744.854240913949
+30
+1961.40114566384
+11
+180.675224578544
+21
+-750.87609961724
+31
+1817.56657040449
+12
+180.675224578544
+22
+-709.249312269842
+32
+1830.19391829555
+13
+180.675224578544
+23
+-709.249312269842
+33
+1830.19391829555
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-744.854240913949
+30
+1961.40114566384
+11
+180.675224578544
+21
+-709.249312269842
+31
+1830.19391829555
+12
+180.675224578544
+22
+-731.403895497386
+32
+1972.43955887653
+13
+180.675224578544
+23
+-731.403895497386
+33
+1972.43955887653
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-731.403895497386
+30
+1972.43955887653
+11
+180.675224578544
+21
+-709.249312269842
+31
+1830.19391829555
+12
+180.675224578544
+22
+-720.365482284693
+32
+1985.88990429309
+13
+180.675224578544
+23
+-720.365482284693
+33
+1985.88990429309
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-720.365482284693
+30
+1985.88990429309
+11
+180.675224578544
+21
+-709.249312269842
+31
+1830.19391829555
+12
+180.675224578544
+22
+-712.163201305221
+32
+2001.23529268221
+13
+180.675224578544
+23
+-712.163201305221
+33
+2001.23529268221
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-712.163201305221
+30
+2001.23529268221
+11
+180.675224578544
+21
+-709.249312269842
+31
+1830.19391829555
+12
+180.675224578544
+22
+-707.112261617118
+32
+2017.88600937388
+13
+180.675224578544
+23
+-707.112261617118
+33
+2017.88600937388
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-707.112261617118
+30
+2017.88600937388
+11
+180.675224578544
+21
+-709.249312269842
+31
+1830.19391829555
+12
+180.675224578544
+22
+-670.885845335315
+32
+1850.69961858573
+13
+180.675224578544
+23
+-670.885845335315
+33
+1850.69961858573
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-707.112261617118
+30
+2017.88600937388
+11
+180.675224578544
+21
+-670.885845335315
+31
+1850.69961858573
+12
+180.675224578544
+22
+-705.406767999999
+32
+2035.20217666346
+13
+180.675224578544
+23
+-705.406767999999
+33
+2035.20217666346
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-882.926258568641
+30
+2035.20217666346
+11
+180.675224578544
+21
+-879.083714298798
+31
+2240.21043503138
+12
+180.675224578544
+22
+-917.447181233325
+32
+2219.70473474119
+13
+180.675224578544
+23
+-917.447181233325
+33
+2219.70473474119
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-879.083714298798
+30
+2240.21043503138
+11
+180.675224578544
+21
+-882.926258568641
+31
+2035.20217666346
+12
+180.675224578544
+22
+-881.220764951522
+32
+2052.51834395305
+13
+180.675224578544
+23
+-881.220764951522
+33
+2052.51834395305
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-879.083714298798
+30
+2240.21043503138
+11
+180.675224578544
+21
+-881.220764951522
+31
+2052.51834395305
+12
+180.675224578544
+22
+-876.169825263419
+32
+2069.16906064472
+13
+180.675224578544
+23
+-876.169825263419
+33
+2069.16906064472
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-879.083714298798
+30
+2240.21043503138
+11
+180.675224578544
+21
+-876.169825263419
+31
+2069.16906064472
+12
+180.675224578544
+22
+-837.4569269514
+32
+2252.83778292244
+13
+180.675224578544
+23
+-837.4569269514
+33
+2252.83778292244
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+180.675224578544
+21
+-876.169825263419
+31
+2069.16906064472
+12
+180.675224578544
+22
+-867.967544283947
+32
+2084.51444903383
+13
+180.675224578544
+23
+-867.967544283947
+33
+2084.51444903383
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+180.675224578544
+21
+-867.967544283947
+31
+2084.51444903383
+12
+180.675224578544
+22
+-856.929131071254
+32
+2097.9647944504
+13
+180.675224578544
+23
+-856.929131071254
+33
+2097.9647944504
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+180.675224578544
+21
+-856.929131071254
+31
+2097.9647944504
+12
+180.675224578544
+22
+-843.478785654691
+32
+2109.00320766309
+13
+180.675224578544
+23
+-843.478785654691
+33
+2109.00320766309
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+180.675224578544
+21
+-843.478785654691
+31
+2109.00320766309
+12
+180.675224578544
+22
+-828.133397265575
+32
+2117.20548864256
+13
+180.675224578544
+23
+-828.133397265575
+33
+2117.20548864256
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+180.675224578544
+21
+-828.133397265575
+31
+2117.20548864256
+12
+180.675224578544
+22
+-794.16651328432
+32
+2257.10151651642
+13
+180.675224578544
+23
+-794.16651328432
+33
+2257.10151651642
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+2257.10151651642
+11
+180.675224578544
+21
+-828.133397265575
+31
+2117.20548864256
+12
+180.675224578544
+22
+-811.482680573908
+32
+2122.25642833066
+13
+180.675224578544
+23
+-811.482680573908
+33
+2122.25642833066
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+2257.10151651642
+11
+180.675224578544
+21
+-811.482680573908
+31
+2122.25642833066
+12
+180.675224578544
+22
+-794.16651328432
+32
+2123.96192194778
+13
+180.675224578544
+23
+-794.16651328432
+33
+2123.96192194778
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+2257.10151651642
+11
+180.675224578544
+21
+-794.16651328432
+31
+2123.96192194778
+12
+180.675224578544
+22
+-776.850345994732
+32
+2122.25642833066
+13
+180.675224578544
+23
+-776.850345994732
+33
+2122.25642833066
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+2257.10151651642
+11
+180.675224578544
+21
+-776.850345994732
+31
+2122.25642833066
+12
+180.675224578544
+22
+-750.87609961724
+32
+2252.83778292244
+13
+180.675224578544
+23
+-750.87609961724
+33
+2252.83778292244
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-750.87609961724
+30
+2252.83778292244
+11
+180.675224578544
+21
+-776.850345994732
+31
+2122.25642833066
+12
+180.675224578544
+22
+-760.199629303065
+32
+2117.20548864256
+13
+180.675224578544
+23
+-760.199629303065
+33
+2117.20548864256
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-750.87609961724
+30
+2252.83778292244
+11
+180.675224578544
+21
+-760.199629303065
+31
+2117.20548864256
+12
+180.675224578544
+22
+-744.854240913949
+32
+2109.00320766309
+13
+180.675224578544
+23
+-744.854240913949
+33
+2109.00320766309
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-750.87609961724
+30
+2252.83778292244
+11
+180.675224578544
+21
+-744.854240913949
+31
+2109.00320766309
+12
+180.675224578544
+22
+-709.249312269842
+32
+2240.21043503138
+13
+180.675224578544
+23
+-709.249312269842
+33
+2240.21043503138
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-709.249312269842
+30
+2240.21043503138
+11
+180.675224578544
+21
+-744.854240913949
+31
+2109.00320766309
+12
+180.675224578544
+22
+-731.403895497386
+32
+2097.9647944504
+13
+180.675224578544
+23
+-731.403895497386
+33
+2097.9647944504
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-709.249312269842
+30
+2240.21043503138
+11
+180.675224578544
+21
+-731.403895497386
+31
+2097.9647944504
+12
+180.675224578544
+22
+-720.365482284693
+32
+2084.51444903383
+13
+180.675224578544
+23
+-720.365482284693
+33
+2084.51444903383
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-709.249312269842
+30
+2240.21043503138
+11
+180.675224578544
+21
+-720.365482284693
+31
+2084.51444903383
+12
+180.675224578544
+22
+-712.163201305221
+32
+2069.16906064472
+13
+180.675224578544
+23
+-712.163201305221
+33
+2069.16906064472
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-709.249312269842
+30
+2240.21043503138
+11
+180.675224578544
+21
+-712.163201305221
+31
+2069.16906064472
+12
+180.675224578544
+22
+-707.112261617118
+32
+2052.51834395305
+13
+180.675224578544
+23
+-707.112261617118
+33
+2052.51834395305
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-709.249312269842
+30
+2240.21043503138
+11
+180.675224578544
+21
+-707.112261617118
+31
+2052.51834395305
+12
+180.675224578544
+22
+-670.885845335315
+32
+2219.70473474119
+13
+180.675224578544
+23
+-670.885845335315
+33
+2219.70473474119
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-670.885845335315
+30
+2219.70473474119
+11
+180.675224578544
+21
+-707.112261617118
+31
+2052.51834395305
+12
+180.675224578544
+22
+-705.406767999999
+32
+2035.20217666346
+13
+180.675224578544
+23
+-705.406767999999
+33
+2035.20217666346
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-670.885845335315
+30
+2219.70473474119
+11
+180.675224578544
+21
+-705.406767999999
+31
+2035.20217666346
+12
+180.675224578544
+22
+-670.885845335315
+32
+1850.69961858573
+13
+180.675224578544
+23
+-670.885845335315
+33
+1850.69961858573
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-670.885845335315
+30
+2219.70473474119
+11
+180.675224578544
+21
+-670.885845335315
+31
+1850.69961858573
+12
+180.675224578544
+22
+-637.259985333474
+32
+1878.29564871262
+13
+180.675224578544
+23
+-637.259985333474
+33
+1878.29564871262
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-670.885845335315
+30
+2219.70473474119
+11
+180.675224578544
+21
+-637.259985333474
+31
+1878.29564871262
+12
+180.675224578544
+22
+-637.259985333474
+32
+2192.10870461431
+13
+180.675224578544
+23
+-637.259985333474
+33
+2192.10870461431
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-637.259985333474
+30
+2192.10870461431
+11
+180.675224578544
+21
+-637.259985333474
+31
+1878.29564871262
+12
+180.675224578544
+22
+-609.663955206589
+32
+1911.92150871446
+13
+180.675224578544
+23
+-609.663955206589
+33
+1911.92150871446
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-637.259985333474
+30
+2192.10870461431
+11
+180.675224578544
+21
+-609.663955206589
+31
+1911.92150871446
+12
+180.675224578544
+22
+-609.663955206589
+32
+2158.48284461247
+13
+180.675224578544
+23
+-609.663955206589
+33
+2158.48284461247
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-609.663955206589
+30
+2158.48284461247
+11
+180.675224578544
+21
+-609.663955206589
+31
+1911.92150871446
+12
+180.675224578544
+22
+-589.158254916404
+32
+1950.28497564898
+13
+180.675224578544
+23
+-589.158254916404
+33
+1950.28497564898
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-609.663955206589
+30
+2158.48284461247
+11
+180.675224578544
+21
+-589.158254916404
+31
+1950.28497564898
+12
+180.675224578544
+22
+-589.158254916404
+32
+2120.11937767794
+13
+180.675224578544
+23
+-589.158254916404
+33
+2120.11937767794
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-589.158254916404
+30
+2120.11937767794
+11
+180.675224578544
+21
+-589.158254916404
+31
+1950.28497564898
+12
+180.675224578544
+22
+-576.530907025343
+32
+1991.91176299638
+13
+180.675224578544
+23
+-576.530907025343
+33
+1991.91176299638
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-589.158254916404
+30
+2120.11937767794
+11
+180.675224578544
+21
+-576.530907025343
+31
+1991.91176299638
+12
+180.675224578544
+22
+-576.530907025343
+32
+2078.49259033054
+13
+180.675224578544
+23
+-576.530907025343
+33
+2078.49259033054
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-576.530907025343
+30
+2078.49259033054
+11
+180.675224578544
+21
+-576.530907025343
+31
+1991.91176299638
+12
+180.675224578544
+22
+-572.26717343136
+32
+2035.20217666346
+13
+180.675224578544
+23
+-572.26717343136
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-768.954752250597
+20
+-152.954610178005
+30
+631.979456702016
+11
+-688.700045464263
+21
+-285.268899238265
+31
+587.016306884026
+12
+-724.33953815002
+22
+-300.031260464802
+32
+631.979456702016
+13
+-724.33953815002
+23
+-300.031260464802
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-688.700045464263
+20
+-285.268899238265
+30
+587.016306884026
+11
+-768.954752250597
+21
+-152.954610178005
+31
+631.979456702016
+12
+-731.120068617964
+22
+-145.428823687577
+32
+587.016306884026
+13
+-731.120068617964
+23
+-145.428823687577
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-798.780782641381
+20
+-158.887376492573
+30
+682.822310520627
+11
+-724.33953815002
+21
+-300.031260464802
+31
+631.979456702016
+12
+-752.435044439405
+22
+-311.668800211604
+32
+682.822310520627
+13
+-752.435044439405
+23
+-311.668800211604
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-724.33953815002
+20
+-300.031260464802
+30
+631.979456702016
+11
+-798.780782641381
+21
+-158.887376492573
+31
+682.822310520627
+12
+-768.954752250597
+22
+-152.954610178005
+32
+631.979456702016
+13
+-768.954752250597
+23
+-152.954610178005
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-819.73776511114
+20
+-163.055979488767
+30
+738.078199114136
+11
+-752.435044439405
+21
+-311.668800211604
+31
+682.822310520627
+12
+-772.176090266528
+22
+-319.845809128627
+32
+738.078199114136
+13
+-772.176090266528
+23
+-319.845809128627
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-752.435044439405
+20
+-311.668800211604
+30
+682.822310520627
+11
+-819.73776511114
+21
+-163.055979488767
+31
+738.078199114136
+12
+-798.780782641381
+22
+-158.887376492573
+32
+682.822310520627
+13
+-798.780782641381
+23
+-158.887376492573
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+990.771212819308
+20
+-410.390873558597
+30
+1922.19277204157
+11
+1059.21725479392
+21
+-210.691411720441
+31
+2011.5925230317
+12
+997.760836892423
+22
+-413.286070645571
+32
+2011.5925230317
+13
+997.760836892423
+23
+-413.286070645571
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1059.21725479392
+20
+-210.691411720441
+30
+2011.5925230317
+11
+990.771212819308
+21
+-410.390873558597
+31
+1922.19277204157
+12
+1051.79710945546
+22
+-209.215453044867
+32
+1922.19277204157
+13
+1051.79710945546
+23
+-209.215453044867
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-203.671280618918
+20
+-1023.92467246733
+30
+2258.00680432354
+11
+-410.390873558597
+21
+-990.771212819307
+31
+2148.21162800104
+12
+-209.215453044867
+22
+-1051.79710945546
+32
+2148.21162800104
+13
+-209.215453044867
+23
+-1051.79710945546
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-410.390873558597
+20
+-990.771212819307
+30
+2148.21162800104
+11
+-203.671280618918
+21
+-1023.92467246733
+31
+2258.00680432354
+12
+-399.515588143821
+22
+-964.515951276275
+32
+2258.00680432354
+13
+-399.515588143821
+23
+-964.515951276275
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-165.674046918965
+20
+-832.899678896021
+30
+855.37186879426
+11
+-324.326404167689
+21
+-782.993203577332
+31
+796.153149972084
+12
+-165.340167031437
+22
+-831.221151351825
+32
+796.153149972084
+13
+-165.340167031437
+23
+-831.221151351825
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-324.326404167689
+20
+-782.993203577332
+30
+796.153149972084
+11
+-165.674046918965
+21
+-832.899678896021
+31
+855.37186879426
+12
+-324.981333125909
+22
+-784.574341950658
+32
+855.37186879426
+13
+-324.981333125909
+23
+-784.574341950658
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1059.21725479392
+20
+-210.691411720441
+30
+2058.8118770109
+11
+-997.760836892423
+21
+-413.286070645571
+31
+2011.5925230317
+12
+-997.760836892423
+22
+-413.286070645571
+32
+2058.8118770109
+13
+-997.760836892423
+23
+-413.286070645571
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-997.760836892423
+20
+-413.286070645571
+30
+2011.5925230317
+11
+-1059.21725479392
+21
+-210.691411720441
+31
+2058.8118770109
+12
+-1059.21725479392
+22
+-210.691411720441
+32
+2011.5925230317
+13
+-1059.21725479392
+23
+-210.691411720441
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1059.21725479392
+20
+-210.691411720441
+30
+2011.5925230317
+11
+-990.771212819307
+21
+-410.390873558597
+31
+1922.19277204157
+12
+-997.760836892423
+22
+-413.286070645571
+32
+2011.5925230317
+13
+-997.760836892423
+23
+-413.286070645571
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-990.771212819307
+20
+-410.390873558597
+30
+1922.19277204157
+11
+-1059.21725479392
+21
+-210.691411720441
+31
+2011.5925230317
+12
+-1051.79710945546
+22
+-209.215453044867
+32
+1922.19277204157
+13
+-1051.79710945546
+23
+-209.215453044867
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+978.352295145615
+20
+-194.606371158736
+30
+1708.93950189862
+11
+1043.98454271904
+21
+1.80477854883065e-13
+31
+1812.39759571907
+12
+1023.92467246733
+22
+-203.671280618918
+32
+1812.39759571907
+13
+1023.92467246733
+23
+-203.671280618918
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1043.98454271904
+20
+1.80477854883065e-13
+30
+1812.39759571907
+11
+978.352295145615
+21
+-194.606371158736
+31
+1708.93950189862
+12
+997.519349743285
+22
+1.80477854883065e-13
+32
+1708.93950189862
+13
+997.519349743285
+23
+1.80477854883065e-13
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+1922.19277204157
+11
+-399.515588143821
+21
+-964.515951276276
+31
+1812.39759571907
+12
+-203.671280618918
+22
+-1023.92467246733
+32
+1812.39759571907
+13
+-203.671280618918
+23
+-1023.92467246733
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-399.515588143821
+20
+-964.515951276276
+30
+1812.39759571907
+11
+-209.215453044867
+21
+-1051.79710945546
+31
+1922.19277204157
+12
+-410.390873558597
+22
+-990.771212819307
+32
+1922.19277204157
+13
+-410.390873558597
+23
+-990.771212819307
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1023.92467246733
+20
+-203.671280618918
+30
+2258.00680432354
+11
+921.587710511789
+21
+-381.734128610352
+31
+2361.46489814399
+12
+964.515951276275
+22
+-399.51558814382
+32
+2258.00680432354
+13
+964.515951276275
+23
+-399.51558814382
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+921.587710511789
+20
+-381.734128610352
+30
+2361.46489814399
+11
+1023.92467246733
+21
+-203.671280618918
+31
+2258.00680432354
+12
+978.352295145615
+22
+-194.606371158736
+32
+2361.46489814399
+13
+978.352295145615
+23
+-194.606371158736
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.905696349335
+20
+-778.54324309139
+30
+2019.68727261649
+11
+-804.883917627287
+21
+-707.527532613081
+31
+1967.25758629213
+12
+-845.012275898089
+22
+-788.258546505553
+32
+1988.01128244689
+13
+-845.012275898089
+23
+-788.258546505553
+33
+1988.01128244689
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-804.883917627287
+20
+-707.527532613081
+30
+1967.25758629213
+11
+-853.905696349335
+21
+-778.54324309139
+31
+2019.68727261649
+12
+-818.480102290147
+22
+-696.846172894875
+32
+2011.59249120966
+13
+-818.480102290147
+23
+-696.846172894875
+33
+2011.59249120966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.87389411925
+20
+-321.791703197793
+30
+914.026066884025
+11
+-641.452721848564
+21
+-127.592879465023
+31
+1054.1729200213
+12
+-824.724927080674
+22
+-164.047987682633
+32
+914.026066884025
+13
+-824.724927080674
+23
+-164.047987682633
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-641.452721848564
+20
+-127.592879465023
+30
+1054.1729200213
+11
+-776.87389411925
+21
+-321.791703197793
+31
+914.026066884025
+12
+-604.235251721862
+22
+-250.282436127116
+32
+1054.1729200213
+13
+-604.235251721862
+23
+-250.282436127116
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1072.40303302985
+30
+1922.19277204157
+11
+-203.671280618918
+21
+-1023.92467246733
+31
+1812.39759571907
+12
+1.80477854883065e-13
+22
+-1043.98454271904
+32
+1812.39759571907
+13
+1.80477854883065e-13
+23
+-1043.98454271904
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-203.671280618918
+20
+-1023.92467246733
+30
+1812.39759571907
+11
+1.80477854883065e-13
+21
+-1072.40303302985
+31
+1922.19277204157
+12
+-209.215453044867
+22
+-1051.79710945546
+32
+1922.19277204157
+13
+-209.215453044867
+23
+-1051.79710945546
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1019.67559748903
+30
+1941.79325554754
+11
+369.41031965462
+21
+-997.119327169824
+31
+1899.59344191956
+12
+653.750224578544
+22
+-997.119327169824
+32
+1899.59344191956
+13
+653.750224578544
+23
+-997.119327169824
+33
+1899.59344191956
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+369.41031965462
+20
+-997.119327169824
+30
+1899.59344191956
+11
+653.750224578544
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+349.642861592144
+22
+-1009.19892078507
+32
+1922.19277204157
+13
+349.642861592144
+23
+-1009.19892078507
+33
+1922.19277204157
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+349.642861592144
+20
+-1009.19892078507
+30
+1922.19277204157
+11
+653.750224578544
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+320.792432759964
+22
+-1019.67559748903
+32
+1941.79325554754
+13
+320.792432759964
+23
+-1019.67559748903
+33
+1941.79325554754
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1059.21725479392
+20
+-210.691411720441
+30
+2011.5925230317
+11
+997.760836892423
+21
+-413.286070645571
+31
+2058.8118770109
+12
+997.760836892423
+22
+-413.286070645571
+32
+2011.5925230317
+13
+997.760836892423
+23
+-413.286070645571
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+997.760836892423
+20
+-413.286070645571
+30
+2058.8118770109
+11
+1059.21725479392
+21
+-210.691411720441
+31
+2011.5925230317
+12
+1059.21725479392
+22
+-210.691411720441
+32
+2058.8118770109
+13
+1059.21725479392
+23
+-210.691411720441
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-847.505736434059
+20
+1.80477854883065e-13
+30
+796.153149972084
+11
+-819.73776511114
+21
+-163.055979488767
+31
+738.078199114136
+12
+-831.221151351825
+22
+-165.340167031437
+32
+796.153149972084
+13
+-831.221151351825
+23
+-165.340167031437
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-819.73776511114
+20
+-163.055979488767
+30
+738.078199114136
+11
+-847.505736434059
+21
+1.80477854883065e-13
+31
+796.153149972084
+12
+-835.797377356766
+22
+1.80477854883065e-13
+32
+738.078199114136
+13
+-835.797377356766
+23
+1.80477854883065e-13
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+182.278551827736
+20
+-916.376162171087
+30
+2455.6433200213
+11
+1.80477854883065e-13
+21
+-997.519349743284
+31
+2361.46489814399
+12
+194.606371158736
+22
+-978.352295145615
+32
+2361.46489814399
+13
+194.606371158736
+23
+-978.352295145615
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-997.519349743284
+30
+2361.46489814399
+11
+182.278551827736
+21
+-916.376162171087
+31
+2455.6433200213
+12
+1.80477854883065e-13
+22
+-934.329032542513
+32
+2455.6433200213
+13
+1.80477854883065e-13
+23
+-934.329032542513
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-934.329032542513
+30
+2455.6433200213
+11
+182.278551827736
+21
+-916.376162171087
+31
+2455.6433200213
+12
+141.00638791784
+22
+-920.44111551416
+32
+2455.6433200213
+13
+141.00638791784
+23
+-920.44111551416
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-934.329032542513
+30
+2455.6433200213
+11
+141.00638791784
+21
+-920.44111551416
+31
+2455.6433200213
+12
+47.148335412588
+22
+-929.685326821772
+32
+2455.6433200213
+13
+47.148335412588
+23
+-929.685326821772
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+35.9517814413365
+20
+-1076.35666734212
+30
+2059.65014337885
+11
+40.1106512432663
+21
+-1076.01799327905
+31
+2051.86944523768
+12
+36.3998441498995
+22
+-1076.38347587727
+32
+2058.8118770109
+13
+36.3998441498995
+23
+-1076.38347587727
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.1106512432663
+20
+-1076.01799327905
+30
+2051.86944523768
+11
+35.9517814413365
+21
+-1076.35666734212
+31
+2059.65014337885
+12
+35.9517814413358
+22
+-976.024878397508
+32
+2059.65014337886
+13
+35.9517814413358
+23
+-976.024878397508
+33
+2059.65014337886
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.1106512432663
+20
+-1076.01799327905
+30
+2051.86944523768
+11
+35.9517814413358
+21
+-976.024878397508
+31
+2059.65014337886
+12
+40.1106512432667
+22
+-976.081021219369
+32
+2051.86944523768
+13
+40.1106512432667
+23
+-976.081021219369
+33
+2051.86944523768
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-10.2481189704998
+20
+-977.41094203537
+30
+2078.78676870972
+11
+-1.4681606386561
+21
+-1078.06037755542
+31
+2079.65151912724
+12
+-10.2481189705
+22
+-1077.26880722866
+32
+2078.78676870972
+13
+-10.2481189705
+23
+-1077.26880722866
+33
+2078.78676870972
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1.4681606386561
+20
+-1078.06037755542
+30
+2079.65151912724
+11
+-10.2481189704998
+21
+-977.41094203537
+31
+2078.78676870972
+12
+-1.46816063865592
+22
+-978.223928142328
+32
+2079.65151912724
+13
+-1.46816063865592
+23
+-978.223928142328
+33
+2079.65151912724
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+884.794355702396
+20
+-604.173850577965
+30
+1922.19277204157
+11
+180.675224578544
+21
+-609.663955206589
+31
+1911.92150871446
+12
+876.866113364493
+22
+-609.663955206589
+32
+1911.92150871446
+13
+876.866113364493
+23
+-609.663955206589
+33
+1911.92150871446
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-609.663955206589
+30
+1911.92150871446
+11
+884.794355702396
+21
+-604.173850577965
+31
+1922.19277204157
+12
+180.675224578544
+22
+-589.158254916404
+32
+1950.28497564898
+13
+180.675224578544
+23
+-589.158254916404
+33
+1950.28497564898
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-589.158254916404
+30
+1950.28497564898
+11
+884.794355702396
+21
+-604.173850577965
+31
+1922.19277204157
+12
+892.68433542823
+22
+-596.472603338329
+32
+1936.60079223358
+13
+892.68433542823
+23
+-596.472603338329
+33
+1936.60079223358
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-589.158254916404
+30
+1950.28497564898
+11
+892.68433542823
+21
+-596.472603338329
+31
+1936.60079223358
+12
+897.90069342138
+22
+-589.158254916404
+32
+1950.28497564898
+13
+897.90069342138
+23
+-589.158254916404
+33
+1950.28497564898
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.060123058849
+20
+-874.453748088142
+30
+2003.99630767223
+11
+-702.965588161926
+21
+-809.153241506708
+31
+1972.08037046597
+12
+-769.870311262695
+22
+-863.130130350016
+32
+1987.61043910797
+13
+-769.870311262695
+23
+-863.130130350016
+33
+1987.61043910797
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-702.965588161926
+20
+-809.153241506708
+30
+1972.08037046597
+11
+-758.060123058849
+21
+-874.453748088142
+31
+2003.99630767223
+12
+-687.957452549297
+22
+-823.760435027841
+32
+1993.10258668608
+13
+-687.957452549297
+23
+-823.760435027841
+33
+1993.10258668608
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-643.970452120392
+20
+-861.831591212861
+30
+2011.20252653019
+11
+-741.432257601186
+21
+-891.447302299009
+31
+1988.14599297097
+12
+-654.791104458432
+22
+-848.015122202593
+32
+1965.89490198638
+13
+-654.791104458432
+23
+-848.015122202593
+33
+1965.89490198638
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-741.432257601186
+20
+-891.447302299009
+30
+1988.14599297097
+11
+-643.970452120392
+21
+-861.831591212861
+31
+2011.20252653019
+12
+-731.724734127308
+22
+-900.26267972249
+32
+2019.84617451401
+13
+-731.724734127308
+23
+-900.26267972249
+33
+2019.84617451401
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-1016.06585313728
+30
+2035.20217666346
+11
+653.750224578544
+21
+-1011.8021195433
+31
+1991.91176299638
+12
+180.675224578544
+22
+-1011.8021195433
+32
+1991.91176299638
+13
+180.675224578544
+23
+-1011.8021195433
+33
+1991.91176299638
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1011.8021195433
+30
+1991.91176299638
+11
+180.675224578544
+21
+-1016.06585313728
+31
+2035.20217666346
+12
+653.750224578544
+22
+-1016.06585313728
+32
+2035.20217666346
+13
+653.750224578544
+23
+-1016.06585313728
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+590.997993226901
+20
+-590.997993226901
+30
+738.078199114136
+11
+452.472966724379
+21
+-677.173649450057
+31
+682.822310520627
+12
+575.888850875701
+22
+-575.888850875701
+32
+682.822310520627
+13
+575.888850875701
+23
+-575.888850875701
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+452.472966724379
+20
+-677.173649450057
+30
+682.822310520627
+11
+590.997993226901
+21
+-590.997993226901
+31
+738.078199114136
+12
+464.344143695271
+22
+-694.940121314314
+32
+738.078199114136
+13
+464.344143695271
+23
+-694.940121314314
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1051.79710945546
+20
+-209.215453044867
+30
+2148.21162800104
+11
+964.515951276275
+21
+-399.51558814382
+31
+2258.00680432354
+12
+990.771212819308
+22
+-410.390873558597
+32
+2148.21162800104
+13
+990.771212819308
+23
+-410.390873558597
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+964.515951276275
+20
+-399.51558814382
+30
+2258.00680432354
+11
+1051.79710945546
+21
+-209.215453044867
+31
+2148.21162800104
+12
+1023.92467246733
+22
+-203.671280618918
+32
+2258.00680432354
+13
+1023.92467246733
+23
+-203.671280618918
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-747.450883605455
+20
+1.80477854883065e-13
+30
+1427.8983600213
+11
+-878.79625075709
+21
+-89.3648841254364
+31
+1427.8983600213
+12
+-887.597923605455
+22
+3.60955709766131e-13
+32
+1427.8983600213
+13
+-887.597923605455
+23
+3.60955709766131e-13
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-878.79625075709
+20
+-89.3648841254364
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-870.542978388701
+22
+-173.161764737035
+32
+1427.8983600213
+13
+-870.542978388701
+23
+-173.161764737035
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-870.542978388701
+20
+-173.161764737035
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-868.904108801094
+22
+-178.564393729439
+32
+1427.8983600213
+13
+-868.904108801094
+23
+-178.564393729439
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-868.904108801094
+20
+-178.564393729439
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-842.852042179446
+22
+-264.446547810842
+32
+1427.8983600213
+13
+-842.852042179446
+23
+-264.446547810842
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-842.852042179446
+20
+-264.446547810842
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-820.033554718597
+22
+-339.669019965462
+32
+1427.8983600213
+13
+-820.033554718597
+23
+-339.669019965462
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-820.033554718597
+20
+-339.669019965462
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-814.713927134819
+22
+-349.621343174435
+32
+1427.8983600213
+13
+-814.713927134819
+23
+-349.621343174435
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-814.713927134819
+20
+-349.621343174435
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-772.428086079136
+22
+-428.73258747146
+32
+1427.8983600213
+13
+-772.428086079136
+23
+-428.73258747146
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-772.428086079136
+20
+-428.73258747146
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-738.010701420772
+22
+-493.122985245198
+32
+1427.8983600213
+13
+-738.010701420772
+23
+-493.122985245198
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.010701420772
+20
+-493.122985245198
+30
+1427.8983600213
+11
+-747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+-733.088824464619
+22
+-145.820433573828
+32
+1427.8983600213
+13
+-733.088824464619
+23
+-145.820433573828
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.010701420772
+20
+-493.122985245198
+30
+1427.8983600213
+11
+-733.088824464619
+21
+-145.820433573828
+31
+1427.8983600213
+12
+-727.278190985583
+22
+-506.200587048885
+32
+1427.8983600213
+13
+-727.278190985583
+23
+-506.200587048885
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-727.278190985583
+20
+-506.200587048885
+30
+1427.8983600213
+11
+-733.088824464619
+21
+-145.820433573828
+31
+1427.8983600213
+12
+-690.554572920556
+22
+-286.037069662455
+32
+1427.8983600213
+13
+-690.554572920556
+23
+-286.037069662455
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-727.278190985583
+20
+-506.200587048885
+30
+1427.8983600213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+1427.8983600213
+12
+-670.393897307106
+22
+-575.514299446691
+32
+1427.8983600213
+13
+-670.393897307106
+23
+-575.514299446691
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-670.393897307106
+20
+-575.514299446691
+30
+1427.8983600213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+1427.8983600213
+12
+-621.482696406623
+22
+-415.26146157539
+32
+1427.8983600213
+13
+-621.482696406623
+23
+-415.26146157539
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-670.393897307106
+20
+-575.514299446691
+30
+1427.8983600213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+1427.8983600213
+12
+-627.626510748516
+22
+-627.626510748516
+32
+1427.8983600213
+13
+-627.626510748516
+23
+-627.626510748516
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-627.626510748516
+20
+-627.626510748516
+30
+1427.8983600213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+1427.8983600213
+12
+-610.198917737466
+22
+-641.92896670788
+32
+1427.8983600213
+13
+-610.198917737466
+23
+-641.92896670788
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-610.198917737466
+20
+-641.92896670788
+30
+1427.8983600213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+1427.8983600213
+12
+-528.527588401294
+22
+-528.527588401294
+32
+1427.8983600213
+13
+-528.527588401294
+23
+-528.527588401294
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-610.198917737466
+20
+-641.92896670788
+30
+1427.8983600213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+-540.907488126092
+22
+-698.794973376131
+32
+1427.8983600213
+13
+-540.907488126092
+23
+-698.794973376131
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-540.907488126092
+20
+-698.794973376131
+30
+1427.8983600213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+-493.122985245198
+22
+-738.010701420772
+32
+1427.8983600213
+13
+-493.122985245198
+23
+-738.010701420772
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-493.122985245198
+20
+-738.010701420772
+30
+1427.8983600213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+-415.26146157539
+22
+-621.482696406623
+32
+1427.8983600213
+13
+-415.26146157539
+23
+-621.482696406623
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-493.122985245198
+20
+-738.010701420772
+30
+1427.8983600213
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+-468.281766857471
+22
+-751.288609279597
+32
+1427.8983600213
+13
+-468.281766857471
+23
+-751.288609279597
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-468.281766857471
+20
+-751.288609279597
+30
+1427.8983600213
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+-389.246833055444
+22
+-793.533661525914
+32
+1427.8983600213
+13
+-389.246833055444
+23
+-793.533661525914
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-389.246833055444
+20
+-793.533661525914
+30
+1427.8983600213
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+-286.037069662455
+22
+-690.554572920556
+32
+1427.8983600213
+13
+-286.037069662455
+23
+-690.554572920556
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-389.246833055444
+20
+-793.533661525914
+30
+1427.8983600213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+-339.669019965462
+22
+-820.033554718597
+32
+1427.8983600213
+13
+-339.669019965462
+23
+-820.033554718597
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-339.669019965462
+20
+-820.033554718597
+30
+1427.8983600213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+-307.339192645458
+22
+-829.840700617718
+32
+1427.8983600213
+13
+-307.339192645458
+23
+-829.840700617718
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-307.339192645458
+20
+-829.840700617718
+30
+1427.8983600213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+-221.595075742173
+22
+-855.85089411917
+32
+1427.8983600213
+13
+-221.595075742173
+23
+-855.85089411917
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-221.595075742173
+20
+-855.85089411917
+30
+1427.8983600213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+-145.820433573828
+22
+-733.088824464619
+32
+1427.8983600213
+13
+-145.820433573828
+23
+-733.088824464619
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-221.595075742173
+20
+-855.85089411917
+30
+1427.8983600213
+11
+-145.820433573828
+21
+-733.088824464619
+31
+1427.8983600213
+12
+-173.161764737035
+22
+-870.542978388701
+32
+1427.8983600213
+13
+-173.161764737035
+23
+-870.542978388701
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-173.161764737035
+20
+-870.542978388701
+30
+1427.8983600213
+11
+-145.820433573828
+21
+-733.088824464619
+31
+1427.8983600213
+12
+-44.7901031548271
+22
+-883.186483489224
+32
+1427.8983600213
+13
+-44.7901031548271
+23
+-883.186483489224
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-44.7901031548271
+20
+-883.186483489224
+30
+1427.8983600213
+11
+-145.820433573828
+21
+-733.088824464619
+31
+1427.8983600213
+12
+0.0
+22
+-747.450883605455
+32
+1427.8983600213
+13
+0.0
+23
+-747.450883605455
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-44.7901031548271
+20
+-883.186483489224
+30
+1427.8983600213
+11
+0.0
+21
+-747.450883605455
+31
+1427.8983600213
+12
+1.80477854883065e-13
+22
+-887.597923605455
+32
+1427.8983600213
+13
+1.80477854883065e-13
+23
+-887.597923605455
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-887.597923605455
+30
+1427.8983600213
+11
+0.0
+21
+-747.450883605455
+31
+1427.8983600213
+12
+145.820433573828
+22
+-733.088824464618
+32
+1427.8983600213
+13
+145.820433573828
+23
+-733.088824464618
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-887.597923605455
+30
+1427.8983600213
+11
+145.820433573828
+21
+-733.088824464618
+31
+1427.8983600213
+12
+44.7901424632535
+22
+-883.186479617682
+32
+1427.8983600213
+13
+44.7901424632535
+23
+-883.186479617682
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+44.7901424632535
+20
+-883.186479617682
+30
+1427.8983600213
+11
+145.820433573828
+21
+-733.088824464618
+31
+1427.8983600213
+12
+133.953889402395
+22
+-874.404617053063
+32
+1427.8983600213
+13
+133.953889402395
+23
+-874.404617053063
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+133.953889402395
+20
+-874.404617053063
+30
+1427.8983600213
+11
+145.820433573828
+21
+-733.088824464618
+31
+1427.8983600213
+12
+173.161764737035
+22
+-870.542978388701
+32
+1427.8983600213
+13
+173.161764737035
+23
+-870.542978388701
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+173.161764737035
+20
+-870.542978388701
+30
+1427.8983600213
+11
+145.820433573828
+21
+-733.088824464618
+31
+1427.8983600213
+12
+286.037069662455
+22
+-690.554572920556
+32
+1427.8983600213
+13
+286.037069662455
+23
+-690.554572920556
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+173.161764737035
+20
+-870.542978388701
+30
+1427.8983600213
+11
+286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+221.595154594654
+22
+-855.850870199531
+32
+1427.8983600213
+13
+221.595154594654
+23
+-855.850870199531
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+221.595154594654
+20
+-855.850870199531
+30
+1427.8983600213
+11
+286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+307.339228961076
+22
+-829.840689601495
+32
+1427.8983600213
+13
+307.339228961076
+23
+-829.840689601495
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+307.339228961076
+20
+-829.840689601495
+30
+1427.8983600213
+11
+286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+415.26146157539
+22
+-621.482696406623
+32
+1427.8983600213
+13
+415.26146157539
+23
+-621.482696406623
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+307.339228961076
+20
+-829.840689601495
+30
+1427.8983600213
+11
+415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+339.669019965462
+22
+-820.033554718597
+32
+1427.8983600213
+13
+339.669019965462
+23
+-820.033554718597
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+339.669019965462
+20
+-820.033554718597
+30
+1427.8983600213
+11
+415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+389.246864354028
+22
+-793.533644796473
+32
+1427.8983600213
+13
+389.246864354028
+23
+-793.533644796473
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+389.246864354028
+20
+-793.533644796473
+30
+1427.8983600213
+11
+415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+468.281762027731
+22
+-751.288611861147
+32
+1427.8983600213
+13
+468.281762027731
+23
+-751.288611861147
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+468.281762027731
+20
+-751.288611861147
+30
+1427.8983600213
+11
+415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+528.527588401294
+22
+-528.527588401294
+32
+1427.8983600213
+13
+528.527588401294
+23
+-528.527588401294
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+468.281762027731
+20
+-751.288611861147
+30
+1427.8983600213
+11
+528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+493.122985245198
+22
+-738.010701420772
+32
+1427.8983600213
+13
+493.122985245198
+23
+-738.010701420772
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+493.122985245198
+20
+-738.010701420772
+30
+1427.8983600213
+11
+528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+540.907511486368
+22
+-698.794954204847
+32
+1427.8983600213
+13
+540.907511486368
+23
+-698.794954204847
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+540.907511486368
+20
+-698.794954204847
+30
+1427.8983600213
+11
+528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+621.482696406623
+22
+-415.26146157539
+32
+1427.8983600213
+13
+621.482696406623
+23
+-415.26146157539
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+540.907511486368
+20
+-698.794954204847
+30
+1427.8983600213
+11
+621.482696406623
+21
+-415.26146157539
+31
+1427.8983600213
+12
+627.626510748516
+22
+-627.626510748516
+32
+1427.8983600213
+13
+627.626510748516
+23
+-627.626510748516
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+627.626510748516
+20
+-627.626510748516
+30
+1427.8983600213
+11
+621.482696406623
+21
+-415.26146157539
+31
+1427.8983600213
+12
+690.554572920556
+22
+-286.037069662455
+32
+1427.8983600213
+13
+690.554572920556
+23
+-286.037069662455
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+627.626510748516
+20
+-627.626510748516
+30
+1427.8983600213
+11
+690.554572920556
+21
+-286.037069662455
+31
+1427.8983600213
+12
+738.010701420772
+22
+-493.122985245198
+32
+1427.8983600213
+13
+738.010701420772
+23
+-493.122985245198
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.010701420772
+20
+-493.122985245198
+30
+1427.8983600213
+11
+690.554572920556
+21
+-286.037069662455
+31
+1427.8983600213
+12
+733.088824464618
+22
+-145.820433573828
+32
+1427.8983600213
+13
+733.088824464618
+23
+-145.820433573828
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.010701420772
+20
+-493.122985245198
+30
+1427.8983600213
+11
+733.088824464618
+21
+-145.820433573828
+31
+1427.8983600213
+12
+747.450883605455
+22
+1.80477854883065e-13
+32
+1427.8983600213
+13
+747.450883605455
+23
+1.80477854883065e-13
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.010701420772
+20
+-493.122985245198
+30
+1427.8983600213
+11
+747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+820.033554718597
+22
+-339.669019965462
+32
+1427.8983600213
+13
+820.033554718597
+23
+-339.669019965462
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+820.033554718597
+20
+-339.669019965462
+30
+1427.8983600213
+11
+747.450883605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+887.597923605455
+22
+1.80477854883065e-13
+32
+1427.8983600213
+13
+887.597923605455
+23
+1.80477854883065e-13
+33
+1427.8983600213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+820.033554718597
+20
+-339.669019965462
+30
+1427.8983600213
+11
+887.597923605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+870.542978388702
+22
+-173.161764737035
+32
+1427.8983600213
+13
+870.542978388702
+23
+-173.161764737035
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+435.577877671407
+20
+-651.888361812631
+30
+631.979456702016
+11
+285.268899238265
+21
+-688.700045464263
+31
+587.016306884026
+12
+414.146250971868
+22
+-619.813665790805
+32
+587.016306884026
+13
+414.146250971868
+23
+-619.813665790805
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+285.268899238265
+20
+-688.700045464263
+30
+587.016306884026
+11
+435.577877671407
+21
+-651.888361812631
+31
+631.979456702016
+12
+300.031260464802
+22
+-724.33953815002
+32
+631.979456702016
+13
+300.031260464802
+23
+-724.33953815002
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-829.407026995335
+20
+-554.192057578438
+30
+1708.93950189862
+11
+-660.670394770277
+21
+-660.670394770277
+31
+1614.7610800213
+12
+-705.352696568271
+22
+-705.352696568271
+32
+1708.93950189862
+13
+-705.352696568271
+23
+-705.352696568271
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.670394770277
+20
+-660.670394770277
+30
+1614.7610800213
+11
+-829.407026995335
+21
+-554.192057578438
+31
+1708.93950189862
+12
+-705.689426216297
+22
+-605.814546234746
+32
+1614.7610800213
+13
+-705.689426216297
+23
+-605.814546234746
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.689426216297
+20
+-605.814546234746
+30
+1614.7610800213
+11
+-829.407026995335
+21
+-554.192057578438
+31
+1708.93950189862
+12
+-765.568613986399
+22
+-532.851544827532
+32
+1614.7610800213
+13
+-765.568613986399
+23
+-532.851544827532
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-765.568613986399
+20
+-532.851544827532
+30
+1614.7610800213
+11
+-829.407026995335
+21
+-554.192057578438
+31
+1708.93950189862
+12
+-776.866198451135
+22
+-519.085398326623
+32
+1614.7610800213
+13
+-776.866198451135
+23
+-519.085398326623
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+311.668800211604
+20
+-752.435044439405
+30
+682.822310520627
+11
+152.954610178005
+21
+-768.954752250597
+31
+631.979456702016
+12
+300.031260464802
+22
+-724.33953815002
+32
+631.979456702016
+13
+300.031260464802
+23
+-724.33953815002
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+152.954610178005
+20
+-768.954752250597
+30
+631.979456702016
+11
+311.668800211604
+21
+-752.435044439405
+31
+682.822310520627
+12
+158.887376492573
+22
+-798.780782641381
+32
+682.822310520627
+13
+158.887376492573
+23
+-798.780782641381
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+319.845809128627
+20
+-772.176090266528
+30
+738.078199114136
+11
+158.887376492573
+21
+-798.780782641381
+31
+682.822310520627
+12
+311.668800211604
+22
+-752.435044439405
+32
+682.822310520627
+13
+311.668800211604
+23
+-752.435044439405
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+158.887376492573
+20
+-798.780782641381
+30
+682.822310520627
+11
+319.845809128627
+21
+-772.176090266528
+31
+738.078199114136
+12
+163.055979488767
+22
+-819.73776511114
+32
+738.078199114136
+13
+163.055979488767
+23
+-819.73776511114
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.325364744673
+20
+-441.215302798659
+30
+1054.1729200213
+11
+495.494614285553
+21
+-495.494614285553
+31
+1241.03564002131
+12
+561.560562517035
+22
+-561.560562517035
+32
+1054.1729200213
+13
+561.560562517035
+23
+-561.560562517035
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+495.494614285553
+20
+-495.494614285553
+30
+1241.03564002131
+11
+660.325364744673
+21
+-441.215302798659
+31
+1054.1729200213
+12
+582.640028068573
+22
+-389.307620352121
+32
+1241.03564002131
+13
+582.640028068573
+23
+-389.307620352121
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+575.888850875701
+20
+-575.888850875701
+30
+682.822310520627
+11
+435.577877671407
+21
+-651.888361812631
+31
+631.979456702016
+12
+554.385481313987
+22
+-554.385481313987
+32
+631.979456702016
+13
+554.385481313987
+23
+-554.385481313987
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+435.577877671407
+20
+-651.888361812631
+30
+631.979456702016
+11
+575.888850875701
+21
+-575.888850875701
+31
+682.822310520627
+12
+452.472966724379
+22
+-677.173649450057
+32
+682.822310520627
+13
+452.472966724379
+23
+-677.173649450057
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+43.536421039762
+20
+-1075.68058440422
+30
+2034.64693744883
+11
+42.6716706222411
+21
+-976.267680774437
+31
+2025.86697911698
+12
+42.6716706222413
+22
+-1075.76575488639
+32
+2025.86697911698
+13
+42.6716706222413
+23
+-1075.76575488639
+33
+2025.86697911698
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+42.6716706222411
+20
+-976.267680774437
+30
+2025.86697911698
+11
+43.536421039762
+21
+-1075.68058440422
+31
+2034.64693744883
+12
+43.5364210397618
+22
+-976.708082157409
+32
+2034.64693744883
+13
+43.5364210397618
+23
+-976.708082157409
+33
+2034.64693744883
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+180.675224578544
+21
+-879.083714298798
+31
+2240.21043503138
+12
+180.675224578544
+22
+-837.4569269514
+32
+2252.83778292244
+13
+180.675224578544
+23
+-837.4569269514
+33
+2252.83778292244
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-879.083714298798
+30
+2240.21043503138
+11
+653.750224578544
+21
+-837.4569269514
+31
+2252.83778292244
+12
+653.750224578544
+22
+-879.083714298799
+32
+2240.21043503138
+13
+653.750224578544
+23
+-879.083714298799
+33
+2240.21043503138
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-804.422958470166
+20
+-708.167767562713
+30
+2102.55187642937
+11
+-853.465106968372
+21
+-778.056206654812
+31
+2053.98620958956
+12
+-843.757583494495
+22
+-786.871584078293
+32
+2085.68639113261
+13
+-843.757583494495
+23
+-786.871584078293
+33
+2085.68639113261
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.465106968372
+20
+-778.056206654812
+30
+2053.98620958956
+11
+-804.422958470166
+21
+-708.167767562713
+31
+2102.55187642937
+12
+-818.273878310588
+22
+-697.096462294947
+32
+2058.80160712022
+13
+-818.273878310588
+23
+-697.096462294947
+33
+2058.80160712022
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+911.54074094115
+20
+-574.592524622259
+30
+2058.8118770109
+11
+907.767925107023
+21
+-572.267173431359
+31
+2035.20224673698
+12
+912.783669278017
+22
+-572.267169258698
+32
+2035.20224467364
+13
+912.783669278017
+23
+-572.267169258698
+33
+2035.20224467364
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+907.767925107023
+20
+-572.267173431359
+30
+2035.20224673698
+11
+180.675224578544
+21
+-576.530907025343
+31
+2078.49259033054
+12
+180.675224578544
+22
+-572.26717343136
+32
+2035.20217666346
+13
+180.675224578544
+23
+-572.26717343136
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-576.530907025343
+30
+2078.49259033054
+11
+907.767925107023
+21
+-572.267173431359
+31
+2035.20224673698
+12
+911.54074094115
+22
+-574.592524622259
+32
+2058.8118770109
+13
+911.54074094115
+23
+-574.592524622259
+33
+2058.8118770109
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-576.530907025343
+30
+2078.49259033054
+11
+911.54074094115
+21
+-574.592524622259
+31
+2058.8118770109
+12
+908.625264240696
+22
+-576.530906699202
+32
+2078.49259036266
+13
+908.625264240696
+23
+-576.530906699202
+33
+2078.49259036266
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+527.108194536515
+20
+-527.108194536515
+30
+587.016306884026
+11
+435.577877671407
+21
+-651.888361812631
+31
+631.979456702016
+12
+414.146250971868
+22
+-619.813665790805
+32
+587.016306884026
+13
+414.146250971868
+23
+-619.813665790805
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+435.577877671407
+20
+-651.888361812631
+30
+631.979456702016
+11
+527.108194536515
+21
+-527.108194536515
+31
+587.016306884026
+12
+554.385481313987
+22
+-554.385481313987
+32
+631.979456702016
+13
+554.385481313987
+23
+-554.385481313987
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+369.410361108008
+20
+-997.119327169824
+30
+2170.81091140737
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+349.642943907379
+22
+-1009.19889581502
+32
+2148.21162800104
+13
+349.642943907379
+23
+-1009.19889581502
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+369.410361108008
+21
+-997.119327169824
+31
+2170.81091140737
+12
+203.671280618918
+22
+-1023.92467246733
+32
+2258.00680432354
+13
+203.671280618918
+23
+-1023.92467246733
+33
+2258.00680432354
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+203.671280618918
+20
+-1023.92467246733
+30
+2258.00680432354
+11
+369.410361108008
+21
+-997.119327169824
+31
+2170.81091140737
+12
+406.150729088795
+22
+-980.53459853389
+32
+2191.01946172118
+13
+406.150729088795
+23
+-980.53459853389
+33
+2191.01946172118
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+203.671280618918
+20
+-1023.92467246733
+30
+2258.00680432354
+11
+406.150729088795
+21
+-980.53459853389
+31
+2191.01946172118
+12
+399.51558814382
+22
+-964.515951276275
+32
+2258.00680432354
+13
+399.51558814382
+23
+-964.515951276275
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-647.394912321209
+20
+-268.159752894786
+30
+1241.03564002131
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1054.1729200213
+12
+-733.714233519903
+22
+-303.914386430124
+32
+1054.1729200213
+13
+-733.714233519903
+23
+-303.914386430124
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-778.906875772646
+20
+-154.93421062823
+30
+1054.1729200213
+11
+-647.394912321209
+21
+-268.159752894786
+31
+1241.03564002131
+12
+-687.270773156591
+22
+-136.706656519425
+32
+1241.03564002131
+13
+-687.270773156591
+23
+-136.706656519425
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-831.221151351825
+20
+-165.340167031437
+30
+796.153149972084
+11
+-772.176090266528
+21
+-319.845809128627
+31
+738.078199114136
+12
+-782.993203577332
+22
+-324.326404167689
+32
+796.153149972084
+13
+-782.993203577332
+23
+-324.326404167689
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-772.176090266528
+20
+-319.845809128627
+30
+738.078199114136
+11
+-831.221151351825
+21
+-165.340167031437
+31
+796.153149972084
+12
+-819.73776511114
+22
+-163.055979488767
+32
+738.078199114136
+13
+-819.73776511114
+23
+-163.055979488767
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-752.435044439405
+20
+-311.668800211604
+30
+682.822310520627
+11
+-651.888361812631
+21
+-435.577877671407
+31
+631.979456702016
+12
+-677.173649450057
+22
+-452.47296672438
+32
+682.822310520627
+13
+-677.173649450057
+23
+-452.47296672438
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-651.888361812631
+20
+-435.577877671407
+30
+631.979456702016
+11
+-752.435044439405
+21
+-311.668800211604
+31
+682.822310520627
+12
+-724.33953815002
+22
+-300.031260464802
+32
+631.979456702016
+13
+-724.33953815002
+23
+-300.031260464802
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-772.176090266528
+20
+-319.845809128627
+30
+738.078199114136
+11
+-677.173649450057
+21
+-452.47296672438
+31
+682.822310520627
+12
+-694.940121314314
+22
+-464.344143695271
+32
+738.078199114136
+13
+-694.940121314314
+23
+-464.344143695271
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-677.173649450057
+20
+-452.47296672438
+30
+682.822310520627
+11
+-772.176090266528
+21
+-319.845809128627
+31
+738.078199114136
+12
+-752.435044439405
+22
+-311.668800211604
+32
+682.822310520627
+13
+-752.435044439405
+23
+-311.668800211604
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-389.307620352121
+20
+-582.640028068573
+30
+1241.03564002131
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1054.1729200213
+12
+-441.215302798659
+22
+-660.325364744672
+32
+1054.1729200213
+13
+-441.215302798659
+23
+-660.325364744672
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-561.560562517035
+20
+-561.560562517035
+30
+1054.1729200213
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1241.03564002131
+12
+-495.494614285553
+22
+-495.494614285553
+32
+1241.03564002131
+13
+-495.494614285553
+23
+-495.494614285553
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-415.26146157539
+20
+-621.482696406623
+30
+1427.8983600213
+11
+-594.593536632775
+21
+-594.593536632776
+31
+1241.03564002131
+12
+-467.169144021928
+22
+-699.168033082722
+32
+1241.03564002131
+13
+-467.169144021928
+23
+-699.168033082722
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+1241.03564002131
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1427.8983600213
+12
+-528.527588401294
+22
+-528.527588401294
+32
+1427.8983600213
+13
+-528.527588401294
+23
+-528.527588401294
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-997.519349743285
+20
+3.60955709766131e-13
+30
+1708.93950189862
+11
+-916.376162171087
+21
+-182.278551827736
+31
+1614.7610800213
+12
+-978.352295145615
+22
+-194.606371158736
+32
+1708.93950189862
+13
+-978.352295145615
+23
+-194.606371158736
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-916.376162171087
+20
+-182.278551827736
+30
+1614.7610800213
+11
+-997.519349743285
+21
+3.60955709766131e-13
+31
+1708.93950189862
+12
+-925.063957882084
+22
+-94.0698816812515
+32
+1614.7610800213
+13
+-925.063957882084
+23
+-94.0698816812515
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-925.063957882084
+20
+-94.0698816812515
+30
+1614.7610800213
+11
+-997.519349743285
+21
+3.60955709766131e-13
+31
+1708.93950189862
+12
+-934.329032542513
+22
+3.60955709766131e-13
+32
+1614.7610800213
+13
+-934.329032542513
+23
+3.60955709766131e-13
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-978.352295145615
+20
+-194.606371158736
+30
+2361.46489814399
+11
+-1043.98454271904
+21
+3.60955709766131e-13
+31
+2258.00680432354
+12
+-1023.92467246733
+22
+-203.671280618918
+32
+2258.00680432354
+13
+-1023.92467246733
+23
+-203.671280618918
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1043.98454271904
+20
+3.60955709766131e-13
+30
+2258.00680432354
+11
+-978.352295145615
+21
+-194.606371158736
+31
+2361.46489814399
+12
+-997.519349743285
+22
+3.60955709766131e-13
+32
+2361.46489814399
+13
+-997.519349743285
+23
+3.60955709766131e-13
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+794.166563605455
+20
+1.80477854883065e-13
+30
+1054.1729200213
+11
+687.270773156591
+21
+-136.706656519426
+31
+1241.03564002131
+12
+778.906875772646
+22
+-154.93421062823
+32
+1054.1729200213
+13
+778.906875772646
+23
+-154.93421062823
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+687.270773156591
+20
+-136.706656519426
+30
+1241.03564002131
+11
+794.166563605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+700.735203605455
+22
+0.0
+32
+1241.03564002131
+13
+700.735203605455
+23
+0.0
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-832.543811724793
+20
+-84.6615196498334
+30
+2549.0746800213
+11
+-824.724927080674
+21
+-164.047987682633
+31
+2455.6433200213
+12
+-824.724927080674
+22
+-164.047987682633
+32
+2549.0746800213
+13
+-824.724927080674
+23
+-164.047987682633
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+2455.6433200213
+11
+-832.543811724793
+21
+-84.6615196498334
+31
+2549.0746800213
+12
+-840.882243605455
+22
+1.80477854883065e-13
+32
+2455.6433200213
+13
+-840.882243605455
+23
+1.80477854883065e-13
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-832.543811724793
+21
+-84.6615196498334
+31
+2549.0746800213
+12
+-840.882243605455
+22
+1.80477854883065e-13
+32
+2549.0746800213
+13
+-840.882243605455
+23
+1.80477854883065e-13
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+1427.8983600213
+11
+-776.873894119249
+21
+-321.791703197793
+31
+1241.03564002131
+12
+-699.168033082722
+22
+-467.169144021928
+32
+1241.03564002131
+13
+-699.168033082722
+23
+-467.169144021928
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.873894119249
+20
+-321.791703197793
+30
+1241.03564002131
+11
+-621.482696406623
+21
+-415.26146157539
+31
+1427.8983600213
+12
+-690.554572920556
+22
+-286.037069662455
+32
+1427.8983600213
+13
+-690.554572920556
+23
+-286.037069662455
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+464.344143695271
+20
+-694.940121314314
+30
+738.078199114136
+11
+311.668800211604
+21
+-752.435044439405
+31
+682.822310520627
+12
+452.472966724379
+22
+-677.173649450057
+32
+682.822310520627
+13
+452.472966724379
+23
+-677.173649450057
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+311.668800211604
+20
+-752.435044439405
+30
+682.822310520627
+11
+464.344143695271
+21
+-694.940121314314
+31
+738.078199114136
+12
+319.845809128627
+22
+-772.176090266528
+32
+738.078199114136
+13
+319.845809128627
+23
+-772.176090266528
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+470.84895947612
+20
+-704.67526609701
+30
+796.153149972084
+11
+319.845809128627
+21
+-772.176090266528
+31
+738.078199114136
+12
+464.344143695271
+22
+-694.940121314314
+32
+738.078199114136
+13
+464.344143695271
+23
+-694.940121314314
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+319.845809128627
+20
+-772.176090266528
+30
+738.078199114136
+11
+470.84895947612
+21
+-704.67526609701
+31
+796.153149972084
+12
+324.326404167689
+22
+-782.993203577332
+32
+796.153149972084
+13
+324.326404167689
+23
+-782.993203577332
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+964.515951276275
+20
+-399.51558814382
+30
+2258.00680432354
+11
+829.407026995336
+21
+-554.192057578438
+31
+2361.46489814399
+12
+868.04142298445
+22
+-580.006735667279
+32
+2258.00680432354
+13
+868.04142298445
+23
+-580.006735667279
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+829.407026995336
+20
+-554.192057578438
+30
+2361.46489814399
+11
+964.515951276275
+21
+-399.51558814382
+31
+2258.00680432354
+12
+921.587710511789
+22
+-381.734128610352
+32
+2361.46489814399
+13
+921.587710511789
+23
+-381.734128610352
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-413.286070645571
+20
+-997.760836892423
+30
+2058.8118770109
+11
+-599.99837764929
+21
+-897.961029579872
+31
+2011.5925230317
+12
+-413.286070645571
+22
+-997.760836892423
+32
+2011.5925230317
+13
+-413.286070645571
+23
+-997.760836892423
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-599.99837764929
+20
+-897.961029579872
+30
+2011.5925230317
+11
+-413.286070645571
+21
+-997.760836892423
+31
+2058.8118770109
+12
+-599.99837764929
+22
+-897.961029579872
+32
+2058.8118770109
+13
+-599.99837764929
+23
+-897.961029579872
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-784.574341950659
+20
+-324.981333125909
+30
+855.37186879426
+11
+-704.67526609701
+21
+-470.84895947612
+31
+796.153149972084
+12
+-706.098253038492
+22
+-471.799768952456
+32
+855.37186879426
+13
+-706.098253038492
+23
+-471.799768952456
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-704.67526609701
+20
+-470.84895947612
+30
+796.153149972084
+11
+-784.574341950659
+21
+-324.981333125909
+31
+855.37186879426
+12
+-782.993203577332
+22
+-324.326404167689
+32
+796.153149972084
+13
+-782.993203577332
+23
+-324.326404167689
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-26.4713665686843
+20
+-1076.14565304285
+30
+1997.22699536883
+11
+-33.2912055279291
+21
+-975.812207442705
+31
+2002.82389255955
+12
+-33.2912055279292
+22
+-1075.947598755
+32
+2002.82389255955
+13
+-33.2912055279292
+23
+-1075.947598755
+33
+2002.82389255955
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-33.2912055279291
+20
+-975.812207442705
+30
+2002.82389255955
+11
+-26.4713665686843
+21
+-1076.14565304285
+31
+1997.22699536883
+12
+-26.4713665686843
+22
+-976.148870417647
+32
+1997.22699536883
+13
+-26.4713665686843
+23
+-976.148870417647
+33
+1997.22699536883
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-38.8881027186484
+20
+-975.735675994198
+30
+2059.65014337885
+11
+-33.2912055279292
+21
+-1076.04157769881
+31
+2066.4699823381
+12
+-38.8881027186488
+22
+-1076.06746493881
+32
+2059.65014337885
+13
+-38.8881027186488
+23
+-1076.06746493881
+33
+2059.65014337885
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-33.2912055279292
+20
+-1076.04157769881
+30
+2066.4699823381
+11
+-38.8881027186484
+21
+-975.735675994198
+31
+2059.65014337885
+12
+-33.2912055279292
+22
+-975.878683928089
+32
+2066.4699823381
+13
+-33.2912055279292
+23
+-975.878683928089
+33
+2066.4699823381
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+23.5350452913723
+20
+-1076.43485544616
+30
+1997.22699536883
+11
+15.754347150196
+21
+-976.955453067628
+31
+1993.0681255669
+12
+15.754347150196
+22
+-1076.84924014666
+32
+1993.0681255669
+13
+15.754347150196
+23
+-1076.84924014666
+33
+1993.0681255669
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+15.754347150196
+20
+-976.955453067628
+30
+1993.0681255669
+11
+23.5350452913723
+21
+-1076.43485544616
+31
+1997.22699536883
+12
+23.5350452913723
+22
+-976.438072820957
+32
+1997.22699536883
+13
+23.5350452913723
+23
+-976.438072820957
+33
+1997.22699536883
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+7.31179769318775
+20
+-1077.46403068815
+30
+1990.50710618793
+11
+15.754347150196
+21
+-976.955453067628
+31
+1993.0681255669
+12
+7.31179769318757
+22
+-977.633667953296
+32
+1990.50710618793
+13
+7.31179769318757
+23
+-977.633667953296
+33
+1990.50710618793
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+15.754347150196
+20
+-976.955453067628
+30
+1993.0681255669
+11
+7.31179769318775
+21
+-1077.46403068815
+31
+1990.50710618793
+12
+15.754347150196
+22
+-1076.84924014666
+32
+1993.0681255669
+13
+15.754347150196
+23
+-1076.84924014666
+33
+1993.0681255669
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.1106512432667
+20
+-976.081021219369
+30
+2051.86944523768
+11
+42.6716706222413
+21
+-1075.76575488639
+31
+2043.42689578067
+12
+40.1106512432663
+22
+-1076.01799327905
+32
+2051.86944523768
+13
+40.1106512432663
+23
+-1076.01799327905
+33
+2051.86944523768
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+42.6716706222413
+20
+-1075.76575488639
+30
+2043.42689578067
+11
+40.1106512432667
+21
+-976.081021219369
+31
+2051.86944523768
+12
+42.6716706222411
+22
+-976.334157259822
+32
+2043.42689578067
+13
+42.6716706222411
+23
+-976.334157259822
+33
+2043.42689578067
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-410.390873558597
+20
+-990.771212819307
+30
+2148.21162800104
+11
+-599.99837764929
+21
+-897.961029579872
+31
+2058.8118770109
+12
+-413.286070645571
+22
+-997.760836892423
+32
+2058.8118770109
+13
+-413.286070645571
+23
+-997.760836892423
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-599.99837764929
+20
+-897.961029579872
+30
+2058.8118770109
+11
+-410.390873558597
+21
+-990.771212819307
+31
+2148.21162800104
+12
+-595.795202951324
+22
+-891.670534105406
+32
+2148.21162800104
+13
+-595.795202951324
+23
+-891.670534105406
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-582.640028068573
+20
+-389.307620352121
+30
+1241.03564002131
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1054.1729200213
+12
+-660.325364744672
+22
+-441.215302798659
+32
+1054.1729200213
+13
+-660.325364744672
+23
+-441.215302798659
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-733.714233519903
+20
+-303.914386430124
+30
+1054.1729200213
+11
+-582.640028068573
+21
+-389.307620352121
+31
+1241.03564002131
+12
+-647.394912321209
+22
+-268.159752894786
+32
+1241.03564002131
+13
+-647.394912321209
+23
+-268.159752894786
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1079.96854760957
+20
+3.60955709766131e-13
+30
+2011.5925230317
+11
+-1051.79710945546
+21
+-209.215453044867
+31
+1922.19277204157
+12
+-1059.21725479392
+22
+-210.691411720441
+32
+2011.5925230317
+13
+-1059.21725479392
+23
+-210.691411720441
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1051.79710945546
+20
+-209.215453044867
+30
+1922.19277204157
+11
+-1079.96854760957
+21
+3.60955709766131e-13
+31
+2011.5925230317
+12
+-1072.40303302985
+22
+3.60955709766131e-13
+32
+1922.19277204157
+13
+-1072.40303302985
+23
+3.60955709766131e-13
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+600.487204246519
+20
+-600.48720424652
+30
+855.37186879426
+11
+470.84895947612
+21
+-704.67526609701
+31
+796.153149972084
+12
+599.277053327022
+22
+-599.277053327022
+32
+796.153149972084
+13
+599.277053327022
+23
+-599.277053327022
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+470.84895947612
+20
+-704.67526609701
+30
+796.153149972084
+11
+600.487204246519
+21
+-600.48720424652
+31
+855.37186879426
+12
+471.799768952456
+22
+-706.098253038493
+32
+855.37186879426
+13
+471.799768952456
+23
+-706.098253038493
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493597603992
+20
+-867.967629842289
+30
+2084.51449834551
+11
+180.675224578544
+21
+-856.929131071254
+31
+2097.9647944504
+12
+180.675224578544
+22
+-867.967544283947
+32
+2084.51444903383
+13
+180.675224578544
+23
+-867.967544283947
+33
+2084.51444903383
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-856.929131071254
+30
+2097.9647944504
+11
+104.493597603992
+21
+-867.967629842289
+31
+2084.51449834551
+12
+104.493594381781
+22
+-856.929210819903
+32
+2097.96485084121
+13
+104.493594381781
+23
+-856.929210819903
+33
+2097.96485084121
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-843.478785654691
+30
+2109.00320766309
+11
+104.493594381781
+21
+-856.929210819903
+31
+2097.96485084121
+12
+104.493591159571
+22
+-843.478858324207
+32
+2109.0032698636
+13
+104.493591159571
+23
+-843.478858324207
+33
+2109.0032698636
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493594381781
+20
+-856.929210819903
+30
+2097.96485084121
+11
+180.675224578544
+21
+-843.478785654691
+31
+2109.00320766309
+12
+180.675224578544
+22
+-856.929131071254
+32
+2097.9647944504
+13
+180.675224578544
+23
+-856.929131071254
+33
+2097.9647944504
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-828.133397265575
+30
+2117.20548864256
+11
+104.493591159571
+21
+-843.478858324207
+31
+2109.0032698636
+12
+104.493588061189
+22
+-828.133461858568
+32
+2117.20555516006
+13
+104.493588061189
+23
+-828.133461858568
+33
+2117.20555516006
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493591159571
+20
+-843.478858324207
+30
+2109.0032698636
+11
+180.675224578544
+21
+-828.133397265575
+31
+2117.20548864256
+12
+180.675224578544
+22
+-843.478785654691
+32
+2109.00320766309
+13
+180.675224578544
+23
+-843.478785654691
+33
+2109.00320766309
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-811.482680573908
+30
+2122.25642833066
+11
+104.493588061189
+21
+-828.133461858568
+31
+2117.20555516006
+12
+104.493585205705
+22
+-811.482736403362
+32
+2122.25649750655
+13
+104.493585205705
+23
+-811.482736403362
+33
+2122.25649750655
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493588061189
+20
+-828.133461858568
+30
+2117.20555516006
+11
+180.675224578544
+21
+-811.482680573908
+31
+2122.25642833066
+12
+180.675224578544
+22
+-828.133397265575
+32
+2117.20548864256
+13
+180.675224578544
+23
+-828.133397265575
+33
+2117.20548864256
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+2123.96192194778
+11
+104.493585205705
+21
+-811.482736403362
+31
+2122.25649750655
+12
+104.493582702852
+22
+-794.166559999998
+32
+2123.9619920213
+13
+104.493582702852
+23
+-794.166559999998
+33
+2123.9619920213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493585205705
+20
+-811.482736403362
+30
+2122.25649750655
+11
+180.675224578544
+21
+-794.16651328432
+31
+2123.96192194778
+12
+180.675224578544
+22
+-811.482680573908
+32
+2122.25642833066
+13
+180.675224578544
+23
+-811.482680573908
+33
+2122.25642833066
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-776.850345994732
+30
+2122.25642833066
+11
+104.493582702852
+21
+-794.166559999998
+31
+2123.9619920213
+12
+104.493580648814
+22
+-776.850383596634
+32
+2122.25649750655
+13
+104.493580648814
+23
+-776.850383596634
+33
+2122.25649750655
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493582702852
+20
+-794.166559999998
+30
+2123.9619920213
+11
+180.675224578544
+21
+-776.850345994732
+31
+2122.25642833066
+12
+180.675224578544
+22
+-794.16651328432
+32
+2123.96192194778
+13
+180.675224578544
+23
+-794.16651328432
+33
+2123.96192194778
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-760.199629303065
+30
+2117.20548864256
+11
+104.493580648814
+21
+-776.850383596634
+31
+2122.25649750655
+12
+104.493579122526
+22
+-760.199658141427
+32
+2117.20555516006
+13
+104.493579122526
+23
+-760.199658141427
+33
+2117.20555516006
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493580648814
+20
+-776.850383596634
+30
+2122.25649750655
+11
+180.675224578544
+21
+-760.199629303065
+31
+2117.20548864256
+12
+180.675224578544
+22
+-776.850345994732
+32
+2122.25642833066
+13
+180.675224578544
+23
+-776.850345994732
+33
+2122.25642833066
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-744.854240913949
+30
+2109.00320766309
+11
+104.493579122526
+21
+-760.199658141427
+31
+2117.20555516006
+12
+104.493578182644
+22
+-744.854261675788
+32
+2109.0032698636
+13
+104.493578182644
+23
+-744.854261675788
+33
+2109.0032698636
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493579122526
+20
+-760.199658141427
+30
+2117.20555516006
+11
+180.675224578544
+21
+-744.854240913949
+31
+2109.00320766309
+12
+180.675224578544
+22
+-760.199629303065
+32
+2117.20548864256
+13
+180.675224578544
+23
+-760.199629303065
+33
+2117.20548864256
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-731.403895497386
+30
+2097.9647944504
+11
+104.493578182644
+21
+-744.854261675788
+31
+2109.0032698636
+12
+104.493577865285
+22
+-731.403909180092
+32
+2097.96485084121
+13
+104.493577865285
+23
+-731.403909180092
+33
+2097.96485084121
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493578182644
+20
+-744.854261675788
+30
+2109.0032698636
+11
+180.675224578544
+21
+-731.403895497386
+31
+2097.9647944504
+12
+180.675224578544
+22
+-744.854240913949
+32
+2109.00320766309
+13
+180.675224578544
+23
+-744.854240913949
+33
+2109.00320766309
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-731.403895497386
+30
+2097.9647944504
+11
+104.493578182647
+21
+-720.365490157705
+31
+2084.51449834551
+12
+180.675224578544
+22
+-720.365482284693
+32
+2084.51444903383
+13
+180.675224578544
+23
+-720.365482284693
+33
+2084.51444903383
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493578182647
+20
+-720.365490157705
+30
+2084.51449834551
+11
+180.675224578544
+21
+-731.403895497386
+31
+2097.9647944504
+12
+104.493577865285
+22
+-731.403909180092
+32
+2097.96485084121
+13
+104.493577865285
+23
+-731.403909180092
+33
+2097.96485084121
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-720.365482284693
+30
+2084.51444903383
+11
+104.493579122533
+21
+-712.163204861241
+31
+2069.16910187987
+12
+180.675224578544
+22
+-712.163201305221
+32
+2069.16906064472
+13
+180.675224578544
+23
+-712.163201305221
+33
+2069.16906064472
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493579122533
+20
+-712.163204861241
+30
+2069.16910187987
+11
+180.675224578544
+21
+-720.365482284693
+31
+2084.51444903383
+12
+104.493578182647
+22
+-720.365490157705
+32
+2084.51449834551
+13
+104.493578182647
+23
+-720.365490157705
+33
+2084.51449834551
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-712.163201305221
+30
+2069.16906064472
+11
+104.493580648823
+21
+-707.112262514747
+31
+2052.51837642467
+12
+180.675224578544
+22
+-707.112261617118
+32
+2052.51834395305
+13
+180.675224578544
+23
+-707.112261617118
+33
+2052.51834395305
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493580648823
+20
+-707.112262514747
+30
+2052.51837642467
+11
+180.675224578544
+21
+-712.163201305221
+31
+2069.16906064472
+12
+104.493579122533
+22
+-712.163204861241
+32
+2069.16910187987
+13
+104.493579122533
+23
+-712.163204861241
+33
+2069.16910187987
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-707.112261617118
+30
+2052.51834395305
+11
+104.493582702864
+21
+-705.406767999999
+31
+2035.2022000213
+12
+180.675224578544
+22
+-705.406767999999
+32
+2035.20217666346
+13
+180.675224578544
+23
+-705.406767999999
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493582702864
+20
+-705.406767999999
+30
+2035.2022000213
+11
+180.675224578544
+21
+-707.112261617118
+31
+2052.51834395305
+12
+104.493580648823
+22
+-707.112262514747
+32
+2052.51837642467
+13
+104.493580648823
+23
+-707.112262514747
+33
+2052.51837642467
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+519.085398326623
+20
+-776.866198451135
+30
+2455.6433200213
+11
+381.734128610352
+21
+-921.587710511788
+31
+2361.46489814399
+12
+554.192057578438
+22
+-829.407026995336
+32
+2361.46489814399
+13
+554.192057578438
+23
+-829.407026995336
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+2361.46489814399
+11
+519.085398326623
+21
+-776.866198451135
+31
+2455.6433200213
+12
+357.552241131722
+22
+-863.2074697971
+32
+2455.6433200213
+13
+357.552241131722
+23
+-863.2074697971
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+357.552241131722
+20
+-863.2074697971
+30
+2455.6433200213
+11
+519.085398326623
+21
+-776.866198451135
+31
+2455.6433200213
+12
+492.936359391337
+22
+-790.843150956456
+32
+2455.6433200213
+13
+492.936359391337
+23
+-790.843150956456
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+357.552241131722
+20
+-863.2074697971
+30
+2455.6433200213
+11
+492.936359391337
+21
+-790.843150956456
+31
+2455.6433200213
+12
+409.740310523406
+22
+-835.312365543472
+32
+2455.6433200213
+13
+409.740310523406
+23
+-835.312365543472
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-835.797377356766
+20
+1.80477854883065e-13
+30
+738.078199114136
+11
+-798.780782641381
+21
+-158.887376492573
+31
+682.822310520627
+12
+-819.73776511114
+22
+-163.055979488767
+32
+738.078199114136
+13
+-819.73776511114
+23
+-163.055979488767
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-798.780782641381
+20
+-158.887376492573
+30
+682.822310520627
+11
+-835.797377356766
+21
+1.80477854883065e-13
+31
+738.078199114136
+12
+-814.429823327873
+22
+1.80477854883065e-13
+32
+682.822310520627
+13
+-814.429823327873
+23
+1.80477854883065e-13
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-580.006735667279
+20
+-868.041422984449
+30
+2258.00680432354
+11
+-700.811796716974
+21
+-805.485642916867
+31
+2148.21162800104
+12
+-595.795202951324
+22
+-891.670534105406
+32
+2148.21162800104
+13
+-595.795202951324
+23
+-891.670534105406
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-700.811796716974
+20
+-805.485642916867
+30
+2148.21162800104
+11
+-580.006735667279
+21
+-868.041422984449
+31
+2258.00680432354
+12
+-713.051374182295
+22
+-793.031288591004
+32
+2155.44278114838
+13
+-713.051374182295
+23
+-793.031288591004
+33
+2155.44278114838
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-750.226480623555
+20
+-763.163737563064
+30
+2153.51833793914
+11
+-738.208549610569
+21
+-738.20854961057
+31
+2258.00680432354
+12
+-758.175252738136
+22
+-758.175252738136
+32
+2148.91211343617
+13
+-758.175252738136
+23
+-758.175252738136
+33
+2148.91211343617
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.208549610569
+20
+-738.20854961057
+30
+2258.00680432354
+11
+-750.226480623555
+21
+-763.163737563064
+31
+2153.51833793914
+12
+-713.051374182295
+22
+-793.031288591004
+32
+2155.44278114838
+13
+-713.051374182295
+23
+-793.031288591004
+33
+2155.44278114838
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.208549610569
+20
+-738.20854961057
+30
+2258.00680432354
+11
+-713.051374182295
+21
+-793.031288591004
+31
+2155.44278114838
+12
+-580.006735667279
+22
+-868.041422984449
+32
+2258.00680432354
+13
+-580.006735667279
+23
+-868.041422984449
+33
+2258.00680432354
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-654.791104458432
+20
+-848.015122202593
+30
+1965.89490198638
+11
+-758.928832717995
+21
+-874.671572316599
+31
+1963.87063213502
+12
+-679.407718084958
+22
+-824.046894149155
+32
+1931.32901160226
+13
+-679.407718084958
+23
+-824.046894149155
+33
+1931.32901160226
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.928832717995
+20
+-874.671572316599
+30
+1963.87063213502
+11
+-654.791104458432
+21
+-848.015122202593
+31
+1965.89490198638
+12
+-741.432257601186
+22
+-891.447302299009
+32
+1988.14599297097
+13
+-741.432257601186
+23
+-891.447302299009
+33
+1988.14599297097
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1.4681606386561
+20
+-1077.9663986116
+30
+1989.64235577041
+11
+-10.2481189704998
+21
+-977.344465549986
+31
+1990.50710618793
+12
+-10.2481189704998
+22
+-1077.17482828484
+32
+1990.50710618793
+13
+-10.2481189704998
+23
+-1077.17482828484
+33
+1990.50710618793
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-10.2481189704998
+20
+-977.344465549986
+30
+1990.50710618793
+11
+-1.4681606386561
+21
+-1077.9663986116
+31
+1989.64235577041
+12
+-1.4681606386561
+22
+-978.157451656943
+32
+1989.64235577041
+13
+-1.4681606386561
+23
+-978.157451656943
+33
+1989.64235577041
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+471.799768952456
+20
+-706.098253038493
+30
+855.37186879426
+11
+324.326404167689
+21
+-782.993203577332
+31
+796.153149972084
+12
+470.84895947612
+22
+-704.67526609701
+32
+796.153149972084
+13
+470.84895947612
+23
+-704.67526609701
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+324.326404167689
+20
+-782.993203577332
+30
+796.153149972084
+11
+471.799768952456
+21
+-706.098253038493
+31
+855.37186879426
+12
+324.981333125909
+22
+-784.574341950659
+32
+855.37186879426
+13
+324.981333125909
+23
+-784.574341950659
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+441.215302798659
+20
+-660.325364744672
+30
+1614.7610800213
+11
+468.281762027731
+21
+-751.288611861147
+31
+1427.8983600213
+12
+493.122985245198
+22
+-738.010701420772
+32
+1427.8983600213
+13
+493.122985245198
+23
+-738.010701420772
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+468.281762027731
+20
+-751.288611861147
+30
+1427.8983600213
+11
+441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+389.246864354028
+22
+-793.533644796473
+32
+1427.8983600213
+13
+389.246864354028
+23
+-793.533644796473
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+389.246864354028
+20
+-793.533644796473
+30
+1427.8983600213
+11
+303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+339.669019965462
+22
+-820.033554718597
+32
+1427.8983600213
+13
+339.669019965462
+23
+-820.033554718597
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+303.914386430124
+20
+-733.714233519903
+30
+1614.7610800213
+11
+389.246864354028
+21
+-793.533644796473
+31
+1427.8983600213
+12
+441.215302798659
+22
+-660.325364744672
+32
+1614.7610800213
+13
+441.215302798659
+23
+-660.325364744672
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+897.900697882446
+20
+-589.158254916404
+30
+2120.11937767794
+11
+891.670534105407
+21
+-595.795202951324
+31
+2148.21162800104
+12
+892.684338449561
+22
+-596.472605357118
+32
+2133.80356487023
+13
+892.684338449561
+23
+-596.472605357118
+33
+2133.80356487023
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+891.670534105407
+20
+-595.795202951324
+30
+2148.21162800104
+11
+897.900697882446
+21
+-589.158254916404
+31
+2120.11937767794
+12
+990.771212819308
+22
+-410.390873558597
+32
+2148.21162800104
+13
+990.771212819308
+23
+-410.390873558597
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+990.771212819308
+20
+-410.390873558597
+30
+2148.21162800104
+11
+897.900697882446
+21
+-589.158254916404
+31
+2120.11937767794
+12
+908.625264240696
+22
+-576.530906699202
+32
+2078.49259036266
+13
+908.625264240696
+23
+-576.530906699202
+33
+2078.49259036266
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+990.771212819308
+20
+-410.390873558597
+30
+2148.21162800104
+11
+908.625264240696
+21
+-576.530906699202
+31
+2078.49259036266
+12
+911.54074094115
+22
+-574.592524622259
+32
+2058.8118770109
+13
+911.54074094115
+23
+-574.592524622259
+33
+2058.8118770109
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+990.771212819308
+20
+-410.390873558597
+30
+2148.21162800104
+11
+911.54074094115
+21
+-574.592524622259
+31
+2058.8118770109
+12
+997.760836892423
+22
+-413.286070645571
+32
+2058.8118770109
+13
+997.760836892423
+23
+-413.286070645571
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493609641054
+20
+-828.133461858565
+30
+1953.19884488255
+11
+180.675224578544
+21
+-811.482680573908
+31
+1948.14792499626
+12
+104.493608114766
+22
+-811.482736403359
+32
+1948.14790253605
+13
+104.493608114766
+23
+-811.482736403359
+33
+1948.14790253605
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-811.482680573908
+30
+1948.14792499626
+11
+104.493609641054
+21
+-828.133461858565
+31
+1953.19884488255
+12
+180.675224578544
+22
+-828.133397265575
+32
+1953.19886468436
+13
+180.675224578544
+23
+-828.133397265575
+33
+1953.19886468436
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.192057578438
+20
+-829.407026995336
+30
+1708.93950189862
+11
+492.936358899678
+21
+-790.843151219254
+31
+1614.7610800213
+12
+519.085398326623
+22
+-776.866198451135
+32
+1614.7610800213
+13
+519.085398326623
+23
+-776.866198451135
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+492.936358899678
+20
+-790.843151219254
+30
+1614.7610800213
+11
+554.192057578438
+21
+-829.407026995336
+31
+1708.93950189862
+12
+409.740310523407
+22
+-835.312365543471
+32
+1614.7610800213
+13
+409.740310523407
+23
+-835.312365543471
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+409.740310523407
+20
+-835.312365543471
+30
+1614.7610800213
+11
+381.734128610352
+21
+-921.587710511788
+31
+1708.93950189862
+12
+357.552241131722
+22
+-863.2074697971
+32
+1614.7610800213
+13
+357.552241131722
+23
+-863.2074697971
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+1708.93950189862
+11
+409.740310523407
+21
+-835.312365543471
+31
+1614.7610800213
+12
+554.192057578438
+22
+-829.407026995336
+32
+1708.93950189862
+13
+554.192057578438
+23
+-829.407026995336
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493597604008
+20
+-744.854261675785
+30
+1961.40113017901
+11
+180.675224578544
+21
+-731.403895497386
+31
+1972.43955887653
+12
+104.493594381798
+22
+-731.40390918009
+32
+1972.4395492014
+13
+104.493594381798
+23
+-731.40390918009
+33
+1972.4395492014
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-731.403895497386
+30
+1972.43955887653
+11
+104.493597604008
+21
+-744.854261675785
+31
+1961.40113017901
+12
+180.675224578544
+22
+-744.854240913949
+32
+1961.40114566384
+13
+180.675224578544
+23
+-744.854240913949
+33
+1961.40114566384
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493603557861
+20
+-881.220857485246
+30
+2052.51837642467
+11
+180.675224578544
+21
+-876.169825263419
+31
+2069.16906064472
+12
+180.675224578544
+22
+-881.220764951522
+32
+2052.51834395305
+13
+180.675224578544
+23
+-881.220764951522
+33
+2052.51834395305
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-876.169825263419
+30
+2069.16906064472
+11
+104.493603557861
+21
+-881.220857485246
+31
+2052.51837642467
+12
+104.493600702375
+22
+-876.169915138753
+32
+2069.16910187987
+13
+104.493600702375
+23
+-876.169915138753
+33
+2069.16910187987
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493600702375
+20
+-876.169915138753
+30
+2069.16910187987
+11
+180.675224578544
+21
+-867.967544283947
+31
+2084.51444903383
+12
+180.675224578544
+22
+-876.169825263419
+32
+2069.16906064472
+13
+180.675224578544
+23
+-876.169825263419
+33
+2069.16906064472
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-867.967544283947
+30
+2084.51444903383
+11
+104.493600702375
+21
+-876.169915138753
+31
+2069.16910187987
+12
+104.493597603992
+22
+-867.967629842289
+32
+2084.51449834551
+13
+104.493597603992
+23
+-867.967629842289
+33
+2084.51449834551
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493606060716
+20
+-882.926351999993
+30
+2035.2022000213
+11
+180.675224578544
+21
+-881.220764951522
+31
+2052.51834395305
+12
+180.675224578544
+22
+-882.926258568641
+32
+2035.20217666346
+13
+180.675224578544
+23
+-882.926258568641
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-881.220764951522
+30
+2052.51834395305
+11
+104.493606060716
+21
+-882.926351999993
+31
+2035.2022000213
+12
+104.493603557861
+22
+-881.220857485246
+32
+2052.51837642467
+13
+104.493603557861
+23
+-881.220857485246
+33
+2052.51837642467
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493603557875
+20
+-776.850383596631
+30
+1948.14790253605
+11
+180.675224578544
+21
+-760.199629303065
+31
+1953.19886468436
+12
+104.49360070239
+22
+-760.199658141424
+32
+1953.19884488255
+13
+104.49360070239
+23
+-760.199658141424
+33
+1953.19884488255
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-760.199629303065
+30
+1953.19886468436
+11
+104.493603557875
+21
+-776.850383596631
+31
+1948.14790253605
+12
+180.675224578544
+22
+-776.850345994732
+32
+1948.14792499626
+13
+180.675224578544
+23
+-776.850345994732
+33
+1948.14792499626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-887.575434400246
+30
+2260.71126086817
+11
+577.578293884962
+21
+-864.407003018736
+31
+2267.73932769213
+12
+540.896920479706
+22
+-887.575434400246
+32
+2260.71126086817
+13
+540.896920479706
+23
+-887.575434400246
+33
+2260.71126086817
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+577.578293884962
+20
+-864.407003018736
+30
+2267.73932769213
+11
+653.750224578544
+21
+-887.575434400246
+31
+2260.71126086817
+12
+600.307509232711
+22
+-841.785968318108
+32
+2274.60134354834
+13
+600.307509232711
+23
+-841.785968318108
+33
+2274.60134354834
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+600.307509232711
+20
+-841.785968318108
+30
+2274.60134354834
+11
+653.750224578544
+21
+-887.575434400246
+31
+2260.71126086817
+12
+653.750224578544
+22
+-841.785968318108
+32
+2274.60134354834
+13
+653.750224578544
+23
+-841.785968318108
+33
+2274.60134354834
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-381.734128610353
+20
+-921.587710511788
+30
+1708.93950189862
+11
+-409.740279224824
+21
+-835.312382272912
+31
+1614.7610800213
+12
+-357.552241131723
+22
+-863.207469797099
+32
+1614.7610800213
+13
+-357.552241131723
+23
+-863.207469797099
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-409.740279224824
+20
+-835.312382272912
+30
+1614.7610800213
+11
+-381.734128610353
+21
+-921.587710511788
+31
+1708.93950189862
+12
+-492.936329267328
+22
+-790.843167058075
+32
+1614.7610800213
+13
+-492.936329267328
+23
+-790.843167058075
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-492.936329267328
+20
+-790.843167058075
+30
+1614.7610800213
+11
+-554.192057578438
+21
+-829.407026995335
+31
+1708.93950189862
+12
+-519.085398326623
+22
+-776.866198451135
+32
+1614.7610800213
+13
+-519.085398326623
+23
+-776.866198451135
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.192057578438
+20
+-829.407026995335
+30
+1708.93950189862
+11
+-492.936329267328
+21
+-790.843167058075
+31
+1614.7610800213
+12
+-381.734128610353
+22
+-921.587710511788
+32
+1708.93950189862
+13
+-381.734128610353
+23
+-921.587710511788
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+782.993203577332
+20
+-324.326404167689
+30
+796.153149972084
+11
+832.899678896021
+21
+-165.674046918965
+31
+855.37186879426
+12
+784.574341950659
+22
+-324.981333125909
+32
+855.37186879426
+13
+784.574341950659
+23
+-324.981333125909
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+832.899678896021
+20
+-165.674046918965
+30
+855.37186879426
+11
+782.993203577332
+21
+-324.326404167689
+31
+796.153149972084
+12
+831.221151351825
+22
+-165.340167031437
+32
+796.153149972084
+13
+831.221151351825
+23
+-165.340167031437
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-789.394716623343
+20
+-732.286733093936
+30
+2020.79944934296
+11
+-833.682296381699
+21
+-797.91475852831
+31
+2048.43845388979
+12
+-833.979694213849
+22
+-798.243508123
+32
+2025.28667143296
+13
+-833.979694213849
+23
+-798.243508123
+33
+2025.28667143296
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-833.682296381699
+20
+-797.91475852831
+30
+2048.43845388979
+11
+-789.394716623343
+21
+-732.286733093936
+31
+2020.79944934296
+12
+-789.34285913936
+22
+-732.349614898499
+32
+2049.89434090933
+13
+-789.34285913936
+23
+-732.349614898499
+33
+2049.89434090933
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-849.217148276931
+30
+855.37186879426
+11
+-165.340167031437
+21
+-831.221151351825
+31
+796.153149972084
+12
+1.80477854883065e-13
+22
+-847.505736434059
+32
+796.153149972084
+13
+1.80477854883065e-13
+23
+-847.505736434059
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-165.340167031437
+20
+-831.221151351825
+30
+796.153149972084
+11
+1.80477854883065e-13
+21
+-849.217148276931
+31
+855.37186879426
+12
+-165.674046918965
+22
+-832.899678896021
+32
+855.37186879426
+13
+-165.674046918965
+23
+-832.899678896021
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.33953815002
+20
+-300.031260464802
+30
+631.979456702016
+11
+798.780782641381
+21
+-158.887376492573
+31
+682.822310520627
+12
+752.435044439405
+22
+-311.668800211604
+32
+682.822310520627
+13
+752.435044439405
+23
+-311.668800211604
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+798.780782641381
+20
+-158.887376492573
+30
+682.822310520627
+11
+724.33953815002
+21
+-300.031260464802
+31
+631.979456702016
+12
+768.954752250597
+22
+-152.954610178005
+32
+631.979456702016
+13
+768.954752250597
+23
+-152.954610178005
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+452.472966724379
+20
+-677.173649450057
+30
+682.822310520627
+11
+300.031260464802
+21
+-724.33953815002
+31
+631.979456702016
+12
+435.577877671407
+22
+-651.888361812631
+32
+631.979456702016
+13
+435.577877671407
+23
+-651.888361812631
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+300.031260464802
+20
+-724.33953815002
+30
+631.979456702016
+11
+452.472966724379
+21
+-677.173649450057
+31
+682.822310520627
+12
+311.668800211604
+22
+-752.435044439405
+32
+682.822310520627
+13
+311.668800211604
+23
+-752.435044439405
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-724.33953815002
+20
+-300.031260464802
+30
+631.979456702016
+11
+-619.813665790805
+21
+-414.146250971868
+31
+587.016306884026
+12
+-651.888361812631
+22
+-435.577877671407
+32
+631.979456702016
+13
+-651.888361812631
+23
+-435.577877671407
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-619.813665790805
+20
+-414.146250971868
+30
+587.016306884026
+11
+-724.33953815002
+21
+-300.031260464802
+31
+631.979456702016
+12
+-688.700045464263
+22
+-285.268899238265
+32
+587.016306884026
+13
+-688.700045464263
+23
+-285.268899238265
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-10.2481189704998
+20
+-1077.17482828484
+30
+1990.50710618793
+11
+-18.6906684275082
+21
+-976.666250664317
+31
+1993.0681255669
+12
+-18.6906684275082
+22
+-1076.56003774335
+32
+1993.0681255669
+13
+-18.6906684275082
+23
+-1076.56003774335
+33
+1993.0681255669
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-18.6906684275082
+20
+-976.666250664317
+30
+1993.0681255669
+11
+-10.2481189704998
+21
+-1077.17482828484
+31
+1990.50710618793
+12
+-10.2481189704998
+22
+-977.344465549986
+32
+1990.50710618793
+13
+-10.2481189704998
+23
+-977.344465549986
+33
+1990.50710618793
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+300.031260464802
+20
+-724.33953815002
+30
+631.979456702016
+11
+145.428823687577
+21
+-731.120068617964
+31
+587.016306884026
+12
+285.268899238265
+22
+-688.700045464263
+32
+587.016306884026
+13
+285.268899238265
+23
+-688.700045464263
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+145.428823687577
+20
+-731.120068617964
+30
+587.016306884026
+11
+300.031260464802
+21
+-724.33953815002
+31
+631.979456702016
+12
+152.954610178005
+22
+-768.954752250597
+32
+631.979456702016
+13
+152.954610178005
+23
+-768.954752250597
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-495.494614285553
+20
+-495.494614285553
+30
+1241.03564002131
+11
+-660.325364744672
+21
+-441.215302798659
+31
+1054.1729200213
+12
+-561.560562517035
+22
+-561.560562517035
+32
+1054.1729200213
+13
+-561.560562517035
+23
+-561.560562517035
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.325364744672
+20
+-441.215302798659
+30
+1054.1729200213
+11
+-495.494614285553
+21
+-495.494614285553
+31
+1241.03564002131
+12
+-582.640028068573
+22
+-389.307620352121
+32
+1241.03564002131
+13
+-582.640028068573
+23
+-389.307620352121
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+1427.8983600213
+11
+-699.168033082722
+21
+-467.169144021928
+31
+1241.03564002131
+12
+-594.593536632775
+22
+-594.593536632776
+32
+1241.03564002131
+13
+-594.593536632775
+23
+-594.593536632776
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+1241.03564002131
+11
+-528.527588401294
+21
+-528.527588401294
+31
+1427.8983600213
+12
+-621.482696406623
+22
+-415.26146157539
+32
+1427.8983600213
+13
+-621.482696406623
+23
+-415.26146157539
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-863.207469797099
+20
+-357.552241131722
+30
+2455.6433200213
+11
+-978.352295145615
+21
+-194.606371158736
+31
+2361.46489814399
+12
+-921.587710511788
+22
+-381.734128610352
+32
+2361.46489814399
+13
+-921.587710511788
+23
+-381.734128610352
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-978.352295145615
+20
+-194.606371158736
+30
+2361.46489814399
+11
+-863.207469797099
+21
+-357.552241131722
+31
+2455.6433200213
+12
+-887.22732313789
+22
+-278.369396423646
+32
+2455.6433200213
+13
+-887.22732313789
+23
+-278.369396423646
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-978.352295145615
+20
+-194.606371158736
+30
+2361.46489814399
+11
+-887.22732313789
+21
+-278.369396423646
+31
+2455.6433200213
+12
+-914.651018565421
+22
+-187.965588142593
+32
+2455.6433200213
+13
+-914.651018565421
+23
+-187.965588142593
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-978.352295145615
+20
+-194.606371158736
+30
+2361.46489814399
+11
+-914.651018565421
+21
+-187.965588142593
+31
+2455.6433200213
+12
+-916.376162171087
+22
+-182.278551827736
+32
+2455.6433200213
+13
+-916.376162171087
+23
+-182.278551827736
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-650.663001997456
+20
+1.80477854883065e-13
+30
+587.016306884026
+11
+-731.120068617964
+21
+-145.428823687577
+31
+587.016306884026
+12
+-745.443557551536
+22
+1.80477854883065e-13
+32
+587.016306884026
+13
+-745.443557551536
+23
+1.80477854883065e-13
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-731.120068617964
+20
+-145.428823687577
+30
+587.016306884026
+11
+-650.663001997456
+21
+1.80477854883065e-13
+31
+587.016306884026
+12
+-688.700045464263
+22
+-285.268899238265
+32
+587.016306884026
+13
+-688.700045464263
+23
+-285.268899238265
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-688.700045464263
+20
+-285.268899238265
+30
+587.016306884026
+11
+-650.663001997456
+21
+1.80477854883065e-13
+31
+587.016306884026
+12
+-619.813665790805
+22
+-414.146250971868
+32
+587.016306884026
+13
+-619.813665790805
+23
+-414.146250971868
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-619.813665790805
+20
+-414.146250971868
+30
+587.016306884026
+11
+-650.663001997456
+21
+1.80477854883065e-13
+31
+587.016306884026
+12
+-638.160694862082
+22
+-126.938054583664
+32
+587.016306884026
+13
+-638.160694862082
+23
+-126.938054583664
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-619.813665790805
+20
+-414.146250971868
+30
+587.016306884026
+11
+-638.160694862082
+21
+-126.938054583664
+31
+587.016306884026
+12
+-601.1342301078
+22
+-248.997950917359
+32
+587.016306884026
+13
+-601.1342301078
+23
+-248.997950917359
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-619.813665790805
+20
+-414.146250971868
+30
+587.016306884026
+11
+-601.1342301078
+21
+-248.997950917359
+31
+587.016306884026
+12
+-527.108194536515
+22
+-527.108194536515
+32
+587.016306884026
+13
+-527.108194536515
+23
+-527.108194536515
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-527.108194536515
+20
+-527.108194536515
+30
+587.016306884026
+11
+-601.1342301078
+21
+-248.997950917359
+31
+587.016306884026
+12
+-541.006514010435
+22
+-361.48899563696
+32
+587.016306884026
+13
+-541.006514010435
+23
+-361.48899563696
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-527.108194536515
+20
+-527.108194536515
+30
+587.016306884026
+11
+-541.006514010435
+21
+-361.48899563696
+31
+587.016306884026
+12
+-460.088220979597
+22
+-460.088220979597
+32
+587.016306884026
+13
+-460.088220979597
+23
+-460.088220979597
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-527.108194536515
+20
+-527.108194536515
+30
+587.016306884026
+11
+-460.088220979597
+21
+-460.088220979597
+31
+587.016306884026
+12
+-414.146250971868
+22
+-619.813665790805
+32
+587.016306884026
+13
+-414.146250971868
+23
+-619.813665790805
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-414.146250971868
+20
+-619.813665790805
+30
+587.016306884026
+11
+-460.088220979597
+21
+-460.088220979597
+31
+587.016306884026
+12
+-361.48899563696
+22
+-541.006514010435
+32
+587.016306884026
+13
+-361.48899563696
+23
+-541.006514010435
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-414.146250971868
+20
+-619.813665790805
+30
+587.016306884026
+11
+-361.48899563696
+21
+-541.006514010435
+31
+587.016306884026
+12
+-285.268899238265
+22
+-688.700045464263
+32
+587.016306884026
+13
+-285.268899238265
+23
+-688.700045464263
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-285.268899238265
+20
+-688.700045464263
+30
+587.016306884026
+11
+-361.48899563696
+21
+-541.006514010435
+31
+587.016306884026
+12
+-248.99795091736
+22
+-601.1342301078
+32
+587.016306884026
+13
+-248.99795091736
+23
+-601.1342301078
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-285.268899238265
+20
+-688.700045464263
+30
+587.016306884026
+11
+-248.99795091736
+21
+-601.1342301078
+31
+587.016306884026
+12
+-145.428823687577
+22
+-731.120068617964
+32
+587.016306884026
+13
+-145.428823687577
+23
+-731.120068617964
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-145.428823687577
+20
+-731.120068617964
+30
+587.016306884026
+11
+-248.99795091736
+21
+-601.1342301078
+31
+587.016306884026
+12
+-126.938054583664
+22
+-638.160694862082
+32
+587.016306884026
+13
+-126.938054583664
+23
+-638.160694862082
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-145.428823687577
+20
+-731.120068617964
+30
+587.016306884026
+11
+-126.938054583664
+21
+-638.160694862082
+31
+587.016306884026
+12
+0.0
+22
+-745.443557551535
+32
+587.016306884026
+13
+0.0
+23
+-745.443557551535
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-745.443557551535
+30
+587.016306884026
+11
+-126.938054583664
+21
+-638.160694862082
+31
+587.016306884026
+12
+0.0
+22
+-650.663001997455
+32
+587.016306884026
+13
+0.0
+23
+-650.663001997455
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-745.443557551535
+30
+587.016306884026
+11
+0.0
+21
+-650.663001997455
+31
+587.016306884026
+12
+126.938054583664
+22
+-638.160694862082
+32
+587.016306884026
+13
+126.938054583664
+23
+-638.160694862082
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-745.443557551535
+30
+587.016306884026
+11
+126.938054583664
+21
+-638.160694862082
+31
+587.016306884026
+12
+145.428823687577
+22
+-731.120068617964
+32
+587.016306884026
+13
+145.428823687577
+23
+-731.120068617964
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+145.428823687577
+20
+-731.120068617964
+30
+587.016306884026
+11
+126.938054583664
+21
+-638.160694862082
+31
+587.016306884026
+12
+248.997950917359
+22
+-601.1342301078
+32
+587.016306884026
+13
+248.997950917359
+23
+-601.1342301078
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+145.428823687577
+20
+-731.120068617964
+30
+587.016306884026
+11
+248.997950917359
+21
+-601.1342301078
+31
+587.016306884026
+12
+285.268899238265
+22
+-688.700045464263
+32
+587.016306884026
+13
+285.268899238265
+23
+-688.700045464263
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+285.268899238265
+20
+-688.700045464263
+30
+587.016306884026
+11
+248.997950917359
+21
+-601.1342301078
+31
+587.016306884026
+12
+361.48899563696
+22
+-541.006514010435
+32
+587.016306884026
+13
+361.48899563696
+23
+-541.006514010435
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+285.268899238265
+20
+-688.700045464263
+30
+587.016306884026
+11
+361.48899563696
+21
+-541.006514010435
+31
+587.016306884026
+12
+414.146250971868
+22
+-619.813665790805
+32
+587.016306884026
+13
+414.146250971868
+23
+-619.813665790805
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+414.146250971868
+20
+-619.813665790805
+30
+587.016306884026
+11
+361.48899563696
+21
+-541.006514010435
+31
+587.016306884026
+12
+460.088220979597
+22
+-460.088220979597
+32
+587.016306884026
+13
+460.088220979597
+23
+-460.088220979597
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+414.146250971868
+20
+-619.813665790805
+30
+587.016306884026
+11
+460.088220979597
+21
+-460.088220979597
+31
+587.016306884026
+12
+527.108194536515
+22
+-527.108194536515
+32
+587.016306884026
+13
+527.108194536515
+23
+-527.108194536515
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+527.108194536515
+20
+-527.108194536515
+30
+587.016306884026
+11
+460.088220979597
+21
+-460.088220979597
+31
+587.016306884026
+12
+541.006514010435
+22
+-361.48899563696
+32
+587.016306884026
+13
+541.006514010435
+23
+-361.48899563696
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+527.108194536515
+20
+-527.108194536515
+30
+587.016306884026
+11
+541.006514010435
+21
+-361.48899563696
+31
+587.016306884026
+12
+610.800045742856
+22
+-425.129378778605
+32
+587.016306884026
+13
+610.800045742856
+23
+-425.129378778605
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+610.800045742856
+20
+-425.129378778605
+30
+587.016306884026
+11
+541.006514010435
+21
+-361.48899563696
+31
+587.016306884026
+12
+601.1342301078
+22
+-248.997950917359
+32
+587.016306884026
+13
+601.1342301078
+23
+-248.997950917359
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+610.800045742856
+20
+-425.129378778605
+30
+587.016306884026
+11
+601.1342301078
+21
+-248.997950917359
+31
+587.016306884026
+12
+638.160694862082
+22
+-126.938054583664
+32
+587.016306884026
+13
+638.160694862082
+23
+-126.938054583664
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+610.800045742856
+20
+-425.129378778605
+30
+587.016306884026
+11
+638.160694862082
+21
+-126.938054583664
+31
+587.016306884026
+12
+619.813665790805
+22
+-414.146250971868
+32
+587.016306884026
+13
+619.813665790805
+23
+-414.146250971868
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+619.813665790805
+20
+-414.146250971868
+30
+587.016306884026
+11
+638.160694862082
+21
+-126.938054583664
+31
+587.016306884026
+12
+648.718890655847
+22
+-360.068378836192
+32
+587.016306884026
+13
+648.718890655847
+23
+-360.068378836192
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+648.718890655847
+20
+-360.068378836192
+30
+587.016306884026
+11
+638.160694862082
+21
+-126.938054583664
+31
+587.016306884026
+12
+650.663001997456
+22
+0.0
+32
+587.016306884026
+13
+650.663001997456
+23
+0.0
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+648.718890655847
+20
+-360.068378836192
+30
+587.016306884026
+11
+650.663001997456
+21
+0.0
+31
+587.016306884026
+12
+684.232404647772
+22
+-293.627267317059
+32
+587.016306884026
+13
+684.232404647772
+23
+-293.627267317059
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+684.232404647772
+20
+-293.627267317059
+30
+587.016306884026
+11
+650.663001997456
+21
+0.0
+31
+587.016306884026
+12
+745.443557551535
+22
+1.80477854883065e-13
+32
+587.016306884026
+13
+745.443557551535
+23
+1.80477854883065e-13
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+684.232404647772
+20
+-293.627267317059
+30
+587.016306884026
+11
+745.443557551535
+21
+1.80477854883065e-13
+31
+587.016306884026
+12
+688.700045464263
+22
+-285.268899238265
+32
+587.016306884026
+13
+688.700045464263
+23
+-285.268899238265
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+688.700045464263
+20
+-285.268899238265
+30
+587.016306884026
+11
+745.443557551535
+21
+1.80477854883065e-13
+31
+587.016306884026
+12
+707.864018296911
+22
+-222.093747280928
+32
+587.016306884026
+13
+707.864018296911
+23
+-222.093747280928
+33
+587.016306884026
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+707.864018296911
+20
+-222.093747280928
+30
+587.016306884026
+11
+745.443557551535
+21
+1.80477854883065e-13
+31
+587.016306884026
+12
+731.120068617964
+22
+-145.428823687577
+32
+587.016306884026
+13
+731.120068617964
+23
+-145.428823687577
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-782.993203577332
+20
+-324.326404167689
+30
+796.153149972084
+11
+-694.940121314314
+21
+-464.344143695271
+31
+738.078199114136
+12
+-704.67526609701
+22
+-470.84895947612
+32
+796.153149972084
+13
+-704.67526609701
+23
+-470.84895947612
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-694.940121314314
+20
+-464.344143695271
+30
+738.078199114136
+11
+-782.993203577332
+21
+-324.326404167689
+31
+796.153149972084
+12
+-772.176090266528
+22
+-319.845809128627
+32
+738.078199114136
+13
+-772.176090266528
+23
+-319.845809128627
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1051.79710945546
+20
+-209.215453044867
+30
+1922.19277204157
+11
+1079.96854760957
+21
+1.80477854883065e-13
+31
+2011.5925230317
+12
+1059.21725479392
+22
+-210.691411720441
+32
+2011.5925230317
+13
+1059.21725479392
+23
+-210.691411720441
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1079.96854760957
+20
+1.80477854883065e-13
+30
+2011.5925230317
+11
+1051.79710945546
+21
+-209.215453044867
+31
+1922.19277204157
+12
+1072.40303302985
+22
+1.80477854883065e-13
+32
+1922.19277204157
+13
+1072.40303302985
+23
+1.80477854883065e-13
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1078.12323678805
+30
+1989.78695697206
+11
+-209.215453044867
+21
+-1051.79710945546
+31
+1922.19277204157
+12
+1.80477854883065e-13
+22
+-1072.40303302985
+32
+1922.19277204157
+13
+1.80477854883065e-13
+23
+-1072.40303302985
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+1922.19277204157
+11
+1.80477854883065e-13
+21
+-1078.12323678805
+31
+1989.78695697206
+12
+-1.4681606386561
+22
+-1077.9663986116
+32
+1989.64235577041
+13
+-1.4681606386561
+23
+-1077.9663986116
+33
+1989.64235577041
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+1922.19277204157
+11
+-10.2481189704998
+21
+-1077.17482828484
+31
+1990.50710618793
+12
+-210.691411720441
+22
+-1059.21725479392
+32
+2011.5925230317
+13
+-210.691411720441
+23
+-1059.21725479392
+33
+2011.5925230317
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-10.2481189704998
+20
+-1077.17482828484
+30
+1990.50710618793
+11
+-209.215453044867
+21
+-1051.79710945546
+31
+1922.19277204157
+12
+-1.4681606386561
+22
+-1077.9663986116
+32
+1989.64235577041
+13
+-1.4681606386561
+23
+-1077.9663986116
+33
+1989.64235577041
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+-10.2481189704998
+21
+-1077.17482828484
+31
+1990.50710618793
+12
+-18.6906684275082
+22
+-1076.56003774335
+32
+1993.0681255669
+13
+-18.6906684275082
+23
+-1076.56003774335
+33
+1993.0681255669
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+-18.6906684275082
+21
+-1076.56003774335
+31
+1993.0681255669
+12
+-26.4713665686843
+22
+-1076.14565304285
+32
+1997.22699536883
+13
+-26.4713665686843
+23
+-1076.14565304285
+33
+1997.22699536883
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+-26.4713665686843
+21
+-1076.14565304285
+31
+1997.22699536883
+12
+-33.2912055279292
+22
+-1075.947598755
+32
+2002.82389255955
+13
+-33.2912055279292
+23
+-1075.947598755
+33
+2002.82389255955
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+-33.2912055279292
+21
+-1075.947598755
+31
+2002.82389255955
+12
+-38.8881027186482
+22
+-1075.973485995
+32
+2009.6437315188
+13
+-38.8881027186482
+23
+-1075.973485995
+33
+2009.6437315188
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+-38.8881027186482
+21
+-1075.973485995
+31
+2009.6437315188
+12
+-39.9297534839436
+22
+-1076.03581015323
+32
+2011.5925230317
+13
+-39.9297534839436
+23
+-1076.03581015323
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+42.6716706222413
+20
+-1075.76575488639
+30
+2025.86697911698
+11
+40.110651243267
+21
+-976.014544733984
+31
+2017.42442965997
+12
+40.1106512432667
+22
+-1076.01799327905
+32
+2017.42442965997
+13
+40.1106512432667
+23
+-1076.01799327905
+33
+2017.42442965997
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.110651243267
+20
+-976.014544733984
+30
+2017.42442965997
+11
+42.6716706222413
+21
+-1075.76575488639
+31
+2025.86697911698
+12
+42.6716706222411
+22
+-976.267680774437
+32
+2025.86697911698
+13
+42.6716706222411
+23
+-976.267680774437
+33
+2025.86697911698
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+784.574341950659
+20
+-324.981333125909
+30
+855.37186879426
+11
+699.168033082722
+21
+-467.169144021929
+31
+914.026066884025
+12
+706.098253038493
+22
+-471.799768952456
+32
+855.37186879426
+13
+706.098253038493
+23
+-471.799768952456
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021929
+30
+914.026066884025
+11
+784.574341950659
+21
+-324.981333125909
+31
+855.37186879426
+12
+776.87389411925
+22
+-321.791703197793
+32
+914.026066884025
+13
+776.87389411925
+23
+-321.791703197793
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-794.166563605455
+20
+1.80477854883065e-13
+30
+1614.7610800213
+11
+-925.063957882084
+21
+-94.0698816812515
+31
+1614.7610800213
+12
+-934.329032542513
+22
+3.60955709766131e-13
+32
+1614.7610800213
+13
+-934.329032542513
+23
+3.60955709766131e-13
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-925.063957882084
+20
+-94.0698816812515
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-916.376162171087
+22
+-182.278551827736
+32
+1614.7610800213
+13
+-916.376162171087
+23
+-182.278551827736
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-916.376162171087
+20
+-182.278551827736
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-914.651018607606
+22
+-187.965588003526
+32
+1614.7610800213
+13
+-914.651018607606
+23
+-187.965588003526
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-914.651018607606
+20
+-187.965588003526
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-887.227323624272
+22
+-278.369394820258
+32
+1614.7610800213
+13
+-887.227323624272
+23
+-278.369394820258
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-887.227323624272
+20
+-278.369394820258
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-863.207469797099
+22
+-357.552241131722
+32
+1614.7610800213
+13
+-863.207469797099
+23
+-357.552241131722
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-863.207469797099
+20
+-357.552241131722
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-857.607798337338
+22
+-368.028489582189
+32
+1614.7610800213
+13
+-857.607798337338
+23
+-368.028489582189
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-857.607798337338
+20
+-368.028489582189
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-813.095615539802
+22
+-451.304926317894
+32
+1614.7610800213
+13
+-813.095615539802
+23
+-451.304926317894
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-813.095615539802
+20
+-451.304926317894
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-776.866198451135
+22
+-519.085398326623
+32
+1614.7610800213
+13
+-776.866198451135
+23
+-519.085398326623
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.866198451135
+20
+-519.085398326623
+30
+1614.7610800213
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+-778.906875772646
+22
+-154.93421062823
+32
+1614.7610800213
+13
+-778.906875772646
+23
+-154.93421062823
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.866198451135
+20
+-519.085398326623
+30
+1614.7610800213
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+-733.714233519903
+22
+-303.914386430124
+32
+1614.7610800213
+13
+-733.714233519903
+23
+-303.914386430124
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.866198451135
+20
+-519.085398326623
+30
+1614.7610800213
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+-765.568613986399
+22
+-532.851544827532
+32
+1614.7610800213
+13
+-765.568613986399
+23
+-532.851544827532
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-765.568613986399
+20
+-532.851544827532
+30
+1614.7610800213
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+-705.689426216297
+22
+-605.814546234746
+32
+1614.7610800213
+13
+-705.689426216297
+23
+-605.814546234746
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.689426216297
+20
+-605.814546234746
+30
+1614.7610800213
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+-660.325364744672
+22
+-441.215302798659
+32
+1614.7610800213
+13
+-660.325364744672
+23
+-441.215302798659
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.689426216297
+20
+-605.814546234746
+30
+1614.7610800213
+11
+-660.325364744672
+21
+-441.215302798659
+31
+1614.7610800213
+12
+-660.670394770277
+22
+-660.670394770277
+32
+1614.7610800213
+13
+-660.670394770277
+23
+-660.670394770277
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.670394770277
+20
+-660.670394770277
+30
+1614.7610800213
+11
+-660.325364744672
+21
+-441.215302798659
+31
+1614.7610800213
+12
+-642.32525459148
+22
+-675.725862229795
+32
+1614.7610800213
+13
+-642.32525459148
+23
+-675.725862229795
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-642.32525459148
+20
+-675.725862229795
+30
+1614.7610800213
+11
+-660.325364744672
+21
+-441.215302798659
+31
+1614.7610800213
+12
+-561.560562517035
+22
+-561.560562517035
+32
+1614.7610800213
+13
+-561.560562517035
+23
+-561.560562517035
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-642.32525459148
+20
+-675.725862229795
+30
+1614.7610800213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+-569.385752125536
+22
+-735.58576491719
+32
+1614.7610800213
+13
+-569.385752125536
+23
+-735.58576491719
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-569.385752125536
+20
+-735.58576491719
+30
+1614.7610800213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+-519.085398326623
+22
+-776.866198451135
+32
+1614.7610800213
+13
+-519.085398326623
+23
+-776.866198451135
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-519.085398326623
+20
+-776.866198451135
+30
+1614.7610800213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+-441.215302798659
+22
+-660.325364744672
+32
+1614.7610800213
+13
+-441.215302798659
+23
+-660.325364744672
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-519.085398326623
+20
+-776.866198451135
+30
+1614.7610800213
+11
+-441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+-492.936329267328
+22
+-790.843167058075
+32
+1614.7610800213
+13
+-492.936329267328
+23
+-790.843167058075
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-492.936329267328
+20
+-790.843167058075
+30
+1614.7610800213
+11
+-441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+-409.740279224824
+22
+-835.312382272912
+32
+1614.7610800213
+13
+-409.740279224824
+23
+-835.312382272912
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-409.740279224824
+20
+-835.312382272912
+30
+1614.7610800213
+11
+-441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+-303.914386430124
+22
+-733.714233519903
+32
+1614.7610800213
+13
+-303.914386430124
+23
+-733.714233519903
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-409.740279224824
+20
+-835.312382272912
+30
+1614.7610800213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+-357.552241131723
+22
+-863.207469797099
+32
+1614.7610800213
+13
+-357.552241131723
+23
+-863.207469797099
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-357.552241131723
+20
+-863.207469797099
+30
+1614.7610800213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+-323.520317681463
+22
+-873.530940912515
+32
+1614.7610800213
+13
+-323.520317681463
+23
+-873.530940912515
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-323.520317681463
+20
+-873.530940912515
+30
+1614.7610800213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+-233.261861972698
+22
+-900.910544119288
+32
+1614.7610800213
+13
+-233.261861972698
+23
+-900.910544119288
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-233.261861972698
+20
+-900.910544119288
+30
+1614.7610800213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+-154.93421062823
+22
+-778.906875772646
+32
+1614.7610800213
+13
+-154.93421062823
+23
+-778.906875772646
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-233.261861972698
+20
+-900.910544119288
+30
+1614.7610800213
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+-182.278551827737
+22
+-916.376162171087
+32
+1614.7610800213
+13
+-182.278551827737
+23
+-916.376162171087
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-182.278551827737
+20
+-916.376162171087
+30
+1614.7610800213
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+-141.006394822338
+22
+-920.441114834126
+32
+1614.7610800213
+13
+-141.006394822338
+23
+-920.441114834126
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-141.006394822338
+20
+-920.441114834126
+30
+1614.7610800213
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+0.0
+22
+-794.166563605455
+32
+1614.7610800213
+13
+0.0
+23
+-794.166563605455
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-141.006394822338
+20
+-920.441114834126
+30
+1614.7610800213
+11
+0.0
+21
+-794.166563605455
+31
+1614.7610800213
+12
+-47.1482966446679
+22
+-929.685330640079
+32
+1614.7610800213
+13
+-47.1482966446679
+23
+-929.685330640079
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-47.1482966446679
+20
+-929.685330640079
+30
+1614.7610800213
+11
+0.0
+21
+-794.166563605455
+31
+1614.7610800213
+12
+1.80477854883065e-13
+22
+-934.329032542513
+32
+1614.7610800213
+13
+1.80477854883065e-13
+23
+-934.329032542513
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-934.329032542513
+30
+1614.7610800213
+11
+0.0
+21
+-794.166563605455
+31
+1614.7610800213
+12
+154.93421062823
+22
+-778.906875772646
+32
+1614.7610800213
+13
+154.93421062823
+23
+-778.906875772646
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-934.329032542513
+30
+1614.7610800213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+47.1483359530928
+22
+-929.685326768537
+32
+1614.7610800213
+13
+47.1483359530928
+23
+-929.685326768537
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+47.1483359530928
+20
+-929.685326768537
+30
+1614.7610800213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+141.006388747634
+22
+-920.441115432432
+32
+1614.7610800213
+13
+141.006388747634
+23
+-920.441115432432
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+141.006388747634
+20
+-920.441115432432
+30
+1614.7610800213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+182.278551827736
+22
+-916.376162171087
+32
+1614.7610800213
+13
+182.278551827736
+23
+-916.376162171087
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+182.278551827736
+20
+-916.376162171087
+30
+1614.7610800213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+303.914386430124
+22
+-733.714233519903
+32
+1614.7610800213
+13
+303.914386430124
+23
+-733.714233519903
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+182.278551827736
+20
+-916.376162171087
+30
+1614.7610800213
+11
+303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+233.261898600639
+22
+-900.910533008324
+32
+1614.7610800213
+13
+233.261898600639
+23
+-900.910533008324
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+233.261898600639
+20
+-900.910533008324
+30
+1614.7610800213
+11
+303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+323.520353196241
+22
+-873.530930139225
+32
+1614.7610800213
+13
+323.520353196241
+23
+-873.530930139225
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+323.520353196241
+20
+-873.530930139225
+30
+1614.7610800213
+11
+303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+441.215302798659
+22
+-660.325364744672
+32
+1614.7610800213
+13
+441.215302798659
+23
+-660.325364744672
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+323.520353196241
+20
+-873.530930139225
+30
+1614.7610800213
+11
+441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+357.552241131722
+22
+-863.2074697971
+32
+1614.7610800213
+13
+357.552241131722
+23
+-863.2074697971
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+357.552241131722
+20
+-863.2074697971
+30
+1614.7610800213
+11
+441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+409.740310523407
+22
+-835.312365543471
+32
+1614.7610800213
+13
+409.740310523407
+23
+-835.312365543471
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+409.740310523407
+20
+-835.312365543471
+30
+1614.7610800213
+11
+441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+492.936358899678
+22
+-790.843151219254
+32
+1614.7610800213
+13
+492.936358899678
+23
+-790.843151219254
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+492.936358899678
+20
+-790.843151219254
+30
+1614.7610800213
+11
+441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+561.560562517035
+22
+-561.560562517035
+32
+1614.7610800213
+13
+561.560562517035
+23
+-561.560562517035
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+492.936358899678
+20
+-790.843151219254
+30
+1614.7610800213
+11
+561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+519.085398326623
+22
+-776.866198451135
+32
+1614.7610800213
+13
+519.085398326623
+23
+-776.866198451135
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+519.085398326623
+20
+-776.866198451135
+30
+1614.7610800213
+11
+561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+569.38577628374
+22
+-735.585745091064
+32
+1614.7610800213
+13
+569.38577628374
+23
+-735.585745091064
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+569.38577628374
+20
+-735.585745091064
+30
+1614.7610800213
+11
+561.560562517035
+21
+-561.560562517035
+31
+1614.7610800213
+12
+660.325364744673
+22
+-441.215302798659
+32
+1614.7610800213
+13
+660.325364744673
+23
+-441.215302798659
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+569.38577628374
+20
+-735.585745091064
+30
+1614.7610800213
+11
+660.325364744673
+21
+-441.215302798659
+31
+1614.7610800213
+12
+642.325276783758
+22
+-675.725844017062
+32
+1614.7610800213
+13
+642.325276783758
+23
+-675.725844017062
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+642.325276783758
+20
+-675.725844017062
+30
+1614.7610800213
+11
+660.325364744673
+21
+-441.215302798659
+31
+1614.7610800213
+12
+660.670394770277
+22
+-660.670394770277
+32
+1614.7610800213
+13
+660.670394770277
+23
+-660.670394770277
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.670394770277
+20
+-660.670394770277
+30
+1614.7610800213
+11
+660.325364744673
+21
+-441.215302798659
+31
+1614.7610800213
+12
+733.714233519903
+22
+-303.914386430124
+32
+1614.7610800213
+13
+733.714233519903
+23
+-303.914386430124
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.670394770277
+20
+-660.670394770277
+30
+1614.7610800213
+11
+733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+705.689442544718
+22
+-605.814526338507
+32
+1614.7610800213
+13
+705.689442544718
+23
+-605.814526338507
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+705.689442544718
+20
+-605.814526338507
+30
+1614.7610800213
+11
+733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+765.568628348261
+22
+-532.851527327553
+32
+1614.7610800213
+13
+765.568628348261
+23
+-532.851527327553
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+765.568628348261
+20
+-532.851527327553
+30
+1614.7610800213
+11
+733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+778.906875772646
+22
+-154.93421062823
+32
+1614.7610800213
+13
+778.906875772646
+23
+-154.93421062823
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+765.568628348261
+20
+-532.851527327553
+30
+1614.7610800213
+11
+778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+776.866198451135
+22
+-519.085398326623
+32
+1614.7610800213
+13
+776.866198451135
+23
+-519.085398326623
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.866198451135
+20
+-519.085398326623
+30
+1614.7610800213
+11
+778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+813.09562491145
+22
+-451.304908784773
+32
+1614.7610800213
+13
+813.09562491145
+23
+-451.304908784773
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+813.09562491145
+20
+-451.304908784773
+30
+1614.7610800213
+11
+778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+794.166563605455
+22
+1.80477854883065e-13
+32
+1614.7610800213
+13
+794.166563605455
+23
+1.80477854883065e-13
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+813.09562491145
+20
+-451.304908784773
+30
+1614.7610800213
+11
+794.166563605455
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+934.329032542513
+22
+1.80477854883065e-13
+32
+1614.7610800213
+13
+934.329032542513
+23
+1.80477854883065e-13
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+813.09562491145
+20
+-451.304908784773
+30
+1614.7610800213
+11
+934.329032542513
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+857.607805708123
+22
+-368.02847579242
+32
+1614.7610800213
+13
+857.607805708123
+23
+-368.02847579242
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+857.607805708123
+20
+-368.02847579242
+30
+1614.7610800213
+11
+934.329032542513
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+863.207469797099
+22
+-357.552241131722
+32
+1614.7610800213
+13
+863.207469797099
+23
+-357.552241131722
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+863.207469797099
+20
+-357.552241131722
+30
+1614.7610800213
+11
+934.329032542513
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+887.227327057414
+22
+-278.369383502706
+32
+1614.7610800213
+13
+887.227327057414
+23
+-278.369383502706
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+887.227327057414
+20
+-278.369383502706
+30
+1614.7610800213
+11
+934.329032542513
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+914.651020925795
+22
+-187.965580361484
+32
+1614.7610800213
+13
+914.651020925795
+23
+-187.965580361484
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+914.651020925795
+20
+-187.965580361484
+30
+1614.7610800213
+11
+934.329032542513
+21
+1.80477854883065e-13
+31
+1614.7610800213
+12
+925.063958273825
+22
+-94.0698777038381
+32
+1614.7610800213
+13
+925.063958273825
+23
+-94.0698777038381
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+914.651020925795
+20
+-187.965580361484
+30
+1614.7610800213
+11
+925.063958273825
+21
+-94.0698777038381
+31
+1614.7610800213
+12
+916.376162171087
+22
+-182.278551827737
+32
+1614.7610800213
+13
+916.376162171087
+23
+-182.278551827737
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+694.940121314314
+20
+-464.344143695271
+30
+738.078199114136
+11
+782.993203577332
+21
+-324.326404167689
+31
+796.153149972084
+12
+704.67526609701
+22
+-470.84895947612
+32
+796.153149972084
+13
+704.67526609701
+23
+-470.84895947612
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+782.993203577332
+20
+-324.326404167689
+30
+796.153149972084
+11
+694.940121314314
+21
+-464.344143695271
+31
+738.078199114136
+12
+772.176090266528
+22
+-319.845809128627
+32
+738.078199114136
+13
+772.176090266528
+23
+-319.845809128627
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-303.914386430124
+20
+-733.714233519903
+30
+1614.7610800213
+11
+-389.246833055444
+21
+-793.533661525914
+31
+1427.8983600213
+12
+-339.669019965462
+22
+-820.033554718597
+32
+1427.8983600213
+13
+-339.669019965462
+23
+-820.033554718597
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-389.246833055444
+20
+-793.533661525914
+30
+1427.8983600213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+-468.281766857471
+22
+-751.288609279597
+32
+1427.8983600213
+13
+-468.281766857471
+23
+-751.288609279597
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-468.281766857471
+20
+-751.288609279597
+30
+1427.8983600213
+11
+-441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+-493.122985245198
+22
+-738.010701420772
+32
+1427.8983600213
+13
+-493.122985245198
+23
+-738.010701420772
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-441.215302798659
+20
+-660.325364744672
+30
+1614.7610800213
+11
+-468.281766857471
+21
+-751.288609279597
+31
+1427.8983600213
+12
+-303.914386430124
+22
+-733.714233519903
+32
+1614.7610800213
+13
+-303.914386430124
+23
+-733.714233519903
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+30.354884250617
+20
+-1076.33078010212
+30
+2066.4699823381
+11
+35.9517814413358
+21
+-976.024878397508
+31
+2059.65014337886
+12
+35.9517814413365
+22
+-1076.35666734212
+32
+2059.65014337885
+13
+35.9517814413365
+23
+-1076.35666734212
+33
+2059.65014337885
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+35.9517814413358
+20
+-976.024878397508
+30
+2059.65014337886
+11
+30.354884250617
+21
+-1076.33078010212
+31
+2066.4699823381
+12
+30.354884250617
+22
+-976.1678863314
+32
+2066.4699823381
+13
+30.354884250617
+23
+-976.1678863314
+33
+2066.4699823381
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+23.5350452913725
+20
+-976.504549306342
+30
+2072.06687952882
+11
+30.354884250617
+21
+-1076.33078010212
+31
+2066.4699823381
+12
+23.5350452913723
+22
+-1076.52883438997
+32
+2072.06687952882
+13
+23.5350452913723
+23
+-1076.52883438997
+33
+2072.06687952882
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+30.354884250617
+20
+-1076.33078010212
+30
+2066.4699823381
+11
+23.5350452913725
+21
+-976.504549306342
+31
+2072.06687952882
+12
+30.354884250617
+22
+-976.1678863314
+32
+2066.4699823381
+13
+30.354884250617
+23
+-976.1678863314
+33
+2066.4699823381
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.928832717995
+20
+-874.671572316599
+30
+1963.87063213502
+11
+-785.140115231108
+21
+-848.157192786392
+31
+1978.73092447164
+12
+-801.544845731016
+22
+-831.814429411314
+32
+1978.70958937363
+13
+-801.544845731016
+23
+-831.814429411314
+33
+1978.70958937363
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-785.140115231108
+20
+-848.157192786392
+30
+1978.73092447164
+11
+-758.928832717995
+21
+-874.671572316599
+31
+1963.87063213502
+12
+-741.432257601186
+22
+-891.447302299009
+32
+1988.14599297097
+13
+-741.432257601186
+23
+-891.447302299009
+33
+1988.14599297097
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-785.140115231108
+20
+-848.157192786392
+30
+1978.73092447164
+11
+-741.432257601186
+21
+-891.447302299009
+31
+1988.14599297097
+12
+-769.870311262695
+22
+-863.130130350016
+32
+1987.61043910797
+13
+-769.870311262695
+23
+-863.130130350016
+33
+1987.61043910797
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-769.870311262695
+20
+-863.130130350016
+30
+1987.61043910797
+11
+-741.432257601186
+21
+-891.447302299009
+31
+1988.14599297097
+12
+-758.060123058849
+22
+-874.453748088142
+32
+2003.99630767223
+13
+-758.060123058849
+23
+-874.453748088142
+33
+2003.99630767223
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.060123058849
+20
+-874.453748088142
+30
+2003.99630767223
+11
+-741.432257601186
+21
+-891.447302299009
+31
+1988.14599297097
+12
+-731.724734127308
+22
+-900.26267972249
+32
+2019.84617451401
+13
+-731.724734127308
+23
+-900.26267972249
+33
+2019.84617451401
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.060123058849
+20
+-874.453748088142
+30
+2003.99630767223
+11
+-731.724734127308
+21
+-900.26267972249
+31
+2019.84617451401
+12
+-751.507544713982
+22
+-880.404127848991
+32
+2025.39393021379
+13
+-751.507544713982
+23
+-880.404127848991
+33
+2025.39393021379
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-751.507544713982
+20
+-880.404127848991
+30
+2025.39393021379
+11
+-731.724734127308
+21
+-900.26267972249
+31
+2019.84617451401
+12
+-731.284144746345
+22
+-899.775643285913
+32
+2054.14511148709
+13
+-731.284144746345
+23
+-899.775643285913
+33
+2054.14511148709
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-751.507544713982
+20
+-880.404127848991
+30
+2025.39393021379
+11
+-731.284144746345
+21
+-899.775643285913
+31
+2054.14511148709
+12
+-751.210146881832
+22
+-880.075378254302
+32
+2048.54571267062
+13
+-751.210146881832
+23
+-880.075378254302
+33
+2048.54571267062
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-751.210146881832
+20
+-880.075378254302
+30
+2048.54571267062
+11
+-731.284144746345
+21
+-899.775643285913
+31
+2054.14511148709
+12
+-757.213205686422
+22
+-873.517548449742
+32
+2069.9270060351
+13
+-757.213205686422
+23
+-873.517548449742
+33
+2069.9270060351
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-757.213205686422
+20
+-873.517548449742
+30
+2069.9270060351
+11
+-731.284144746345
+21
+-899.775643285913
+31
+2054.14511148709
+12
+-740.177565197592
+22
+-890.060339871748
+32
+2085.82110165668
+13
+-740.177565197592
+23
+-890.060339871748
+33
+2085.82110165668
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-757.213205686422
+20
+-873.517548449742
+30
+2069.9270060351
+11
+-740.177565197592
+21
+-890.060339871748
+31
+2085.82110165668
+12
+-768.602809842621
+22
+-861.72900857618
+32
+2086.28270221439
+13
+-768.602809842621
+23
+-861.72900857618
+33
+2086.28270221439
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-768.602809842621
+20
+-861.72900857618
+30
+2086.28270221439
+11
+-740.177565197592
+21
+-890.060339871748
+31
+2085.82110165668
+12
+-757.051052836406
+22
+-872.59583635536
+32
+2110.05176266305
+13
+-757.051052836406
+23
+-872.59583635536
+33
+2110.05176266305
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-768.602809842621
+20
+-861.72900857618
+30
+2086.28270221439
+11
+-757.051052836406
+21
+-872.59583635536
+31
+2110.05176266305
+12
+-783.644995364665
+22
+-846.504456965985
+32
+2095.12279472996
+13
+-783.644995364665
+23
+-846.504456965985
+33
+2095.12279472996
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-783.644995364665
+20
+-846.504456965985
+30
+2095.12279472996
+11
+-757.051052836406
+21
+-872.59583635536
+31
+2110.05176266305
+12
+-826.261008377686
+22
+-803.647314060702
+32
+2109.96175196855
+13
+-826.261008377686
+23
+-803.647314060702
+33
+2109.96175196855
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-826.261008377686
+20
+-803.647314060702
+30
+2109.96175196855
+11
+-757.051052836406
+21
+-872.59583635536
+31
+2110.05176266305
+12
+-803.639076572628
+22
+-825.829443784589
+32
+2123.11658846682
+13
+-803.639076572628
+23
+-825.829443784589
+33
+2123.11658846682
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-803.639076572628
+20
+-825.829443784589
+30
+2123.11658846682
+11
+-757.051052836406
+21
+-872.59583635536
+31
+2110.05176266305
+12
+-779.335772128321
+22
+-850.040945080999
+32
+2123.14819601944
+13
+-779.335772128321
+23
+-850.040945080999
+33
+2123.14819601944
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.550764523053
+20
+-852.489442592712
+30
+1950.71579563676
+11
+-828.138788259274
+21
+-805.723050021943
+31
+1963.78062144053
+12
+-805.85406896736
+22
+-828.277941296301
+32
+1950.68418808414
+13
+-805.85406896736
+23
+-828.277941296301
+33
+1950.68418808414
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-828.138788259274
+20
+-805.723050021943
+30
+1963.78062144053
+11
+-781.550764523053
+21
+-852.489442592712
+31
+1950.71579563676
+12
+-758.928832717995
+22
+-874.671572316599
+32
+1963.87063213502
+13
+-758.928832717995
+23
+-874.671572316599
+33
+1963.87063213502
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-828.138788259274
+20
+-805.723050021943
+30
+1963.78062144053
+11
+-758.928832717995
+21
+-874.671572316599
+31
+1963.87063213502
+12
+-845.012275898089
+22
+-788.258546505553
+32
+1988.01128244689
+13
+-845.012275898089
+23
+-788.258546505553
+33
+1988.01128244689
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-845.012275898089
+20
+-788.258546505553
+30
+1988.01128244689
+11
+-758.928832717995
+21
+-874.671572316599
+31
+1963.87063213502
+12
+-801.544845731016
+22
+-831.814429411314
+32
+1978.70958937363
+13
+-801.544845731016
+23
+-831.814429411314
+33
+1978.70958937363
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-845.012275898089
+20
+-788.258546505553
+30
+1988.01128244689
+11
+-801.544845731016
+21
+-831.814429411314
+31
+1978.70958937363
+12
+-816.587031253059
+22
+-816.589877801121
+32
+1987.54968188919
+13
+-816.587031253059
+23
+-816.589877801121
+33
+1987.54968188919
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-845.012275898089
+20
+-788.258546505553
+30
+1988.01128244689
+11
+-816.587031253059
+21
+-816.589877801121
+31
+1987.54968188919
+12
+-827.976635409257
+22
+-804.801337927561
+32
+2003.90537806848
+13
+-827.976635409257
+23
+-804.801337927561
+33
+2003.90537806848
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-845.012275898089
+20
+-788.258546505553
+30
+1988.01128244689
+11
+-827.976635409257
+21
+-804.801337927561
+31
+2003.90537806848
+12
+-853.905696349335
+22
+-778.54324309139
+32
+2019.68727261649
+13
+-853.905696349335
+23
+-778.54324309139
+33
+2019.68727261649
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.905696349335
+20
+-778.54324309139
+30
+2019.68727261649
+11
+-827.976635409257
+21
+-804.801337927561
+31
+2003.90537806848
+12
+-833.979694213849
+22
+-798.243508123
+32
+2025.28667143296
+13
+-833.979694213849
+23
+-798.243508123
+33
+2025.28667143296
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.905696349335
+20
+-778.54324309139
+30
+2019.68727261649
+11
+-833.979694213849
+21
+-798.243508123
+31
+2025.28667143296
+12
+-853.465106968372
+22
+-778.056206654812
+32
+2053.98620958956
+13
+-853.465106968372
+23
+-778.056206654812
+33
+2053.98620958956
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.465106968372
+20
+-778.056206654812
+30
+2053.98620958956
+11
+-833.979694213849
+21
+-798.243508123
+31
+2025.28667143296
+12
+-833.682296381699
+22
+-797.91475852831
+32
+2048.43845388979
+13
+-833.682296381699
+23
+-797.91475852831
+33
+2048.43845388979
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.465106968372
+20
+-778.056206654812
+30
+2053.98620958956
+11
+-833.682296381699
+21
+-797.91475852831
+31
+2048.43845388979
+12
+-827.129718036832
+22
+-803.86513828916
+32
+2069.83607643134
+13
+-827.129718036832
+23
+-803.86513828916
+33
+2069.83607643134
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.465106968372
+20
+-778.056206654812
+30
+2053.98620958956
+11
+-827.129718036832
+21
+-803.86513828916
+31
+2069.83607643134
+12
+-843.757583494495
+22
+-786.871584078293
+32
+2085.68639113261
+13
+-843.757583494495
+23
+-786.871584078293
+33
+2085.68639113261
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-843.757583494495
+20
+-786.871584078293
+30
+2085.68639113261
+11
+-827.129718036832
+21
+-803.86513828916
+31
+2069.83607643134
+12
+-815.319529832985
+22
+-815.188756027286
+32
+2086.22194499561
+13
+-815.319529832985
+23
+-815.188756027286
+33
+2086.22194499561
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-843.757583494495
+20
+-786.871584078293
+30
+2085.68639113261
+11
+-815.319529832985
+21
+-815.188756027286
+31
+2086.22194499561
+12
+-826.261008377686
+22
+-803.647314060702
+32
+2109.96175196855
+13
+-826.261008377686
+23
+-803.647314060702
+33
+2109.96175196855
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-826.261008377686
+20
+-803.647314060702
+30
+2109.96175196855
+11
+-815.319529832985
+21
+-815.188756027286
+31
+2086.22194499561
+12
+-800.049725864573
+22
+-830.16169359091
+32
+2095.10145963194
+13
+-800.049725864573
+23
+-830.16169359091
+33
+2095.10145963194
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-826.261008377686
+20
+-803.647314060702
+30
+2109.96175196855
+11
+-800.049725864573
+21
+-830.16169359091
+31
+2095.10145963194
+12
+-783.644995364665
+22
+-846.504456965985
+32
+2095.12279472996
+13
+-783.644995364665
+23
+-846.504456965985
+33
+2095.12279472996
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-45.6079918995534
+20
+-975.978478371127
+30
+2025.86697911698
+11
+-46.4727423170739
+21
+-1075.39138200091
+31
+2034.64693744883
+12
+-45.6079918995535
+22
+-1075.47655248308
+32
+2025.86697911698
+13
+-45.6079918995535
+23
+-1075.47655248308
+33
+2025.86697911698
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-46.4727423170739
+20
+-1075.39138200091
+30
+2034.64693744883
+11
+-45.6079918995534
+21
+-975.978478371127
+31
+2025.86697911698
+12
+-46.4727423170739
+22
+-976.418879754098
+32
+2034.64693744883
+13
+-46.4727423170739
+23
+-976.418879754098
+33
+2034.64693744883
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-1011.8021195433
+30
+2078.49259033054
+11
+653.750224578544
+21
+-1016.06585313728
+31
+2035.20217666346
+12
+180.675224578544
+22
+-1016.06585313728
+32
+2035.20217666346
+13
+180.675224578544
+23
+-1016.06585313728
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1016.06585313728
+30
+2035.20217666346
+11
+180.675224578544
+21
+-1011.8021195433
+31
+2078.49259033054
+12
+653.750224578544
+22
+-1011.8021195433
+32
+2078.49259033054
+13
+653.750224578544
+23
+-1011.8021195433
+33
+2078.49259033054
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-966.763694030251
+30
+1862.60499591753
+11
+406.150722558891
+21
+-980.534582769308
+31
+1879.38487239655
+12
+422.745208264425
+22
+-966.763694030251
+32
+1862.60499591753
+13
+422.745208264425
+23
+-966.763694030251
+33
+1862.60499591753
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+406.150722558891
+20
+-980.534582769308
+30
+1879.38487239655
+11
+653.750224578544
+21
+-966.763694030251
+31
+1862.60499591753
+12
+653.750224578544
+22
+-997.119327169824
+32
+1899.59344191956
+13
+653.750224578544
+23
+-997.119327169824
+33
+1899.59344191956
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+406.150722558891
+20
+-980.534582769308
+30
+1879.38487239655
+11
+653.750224578544
+21
+-997.119327169824
+31
+1899.59344191956
+12
+369.41031965462
+22
+-997.119327169824
+32
+1899.59344191956
+13
+369.41031965462
+23
+-997.119327169824
+33
+1899.59344191956
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-841.785968318108
+30
+1795.80300977859
+11
+600.307476319437
+21
+-841.785968318108
+31
+1795.80300977859
+12
+653.750224578543
+22
+-795.278099285779
+32
+1791.22238449044
+13
+653.750224578543
+23
+-795.278099285779
+33
+1791.22238449044
+70
+0
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+15.754347150196
+20
+-977.021929553012
+30
+2076.22574933075
+11
+7.31179769318775
+21
+-1077.55800963197
+31
+2078.78676870972
+12
+7.31179769318775
+22
+-977.70014443868
+32
+2078.78676870972
+13
+7.31179769318775
+23
+-977.70014443868
+33
+2078.78676870972
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+7.31179769318775
+20
+-1077.55800963197
+30
+2078.78676870972
+11
+15.754347150196
+21
+-977.021929553012
+31
+2076.22574933075
+12
+15.754347150196
+22
+-1076.94321909047
+32
+2076.22574933075
+13
+15.754347150196
+23
+-1076.94321909047
+33
+2076.22574933075
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1072.40303302985
+30
+2148.21162800104
+11
+-1.4681606386561
+21
+-1078.06037755542
+31
+2079.65151912724
+12
+1.80477854883065e-13
+22
+-1078.21721573187
+32
+2079.50691792559
+13
+1.80477854883065e-13
+23
+-1078.21721573187
+33
+2079.50691792559
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-38.8881027186488
+20
+-1076.06746493881
+30
+2059.65014337885
+11
+-210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+-39.3361654272124
+22
+-1076.09427347395
+32
+2058.8118770109
+13
+-39.3361654272124
+23
+-1076.09427347395
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+-38.8881027186488
+21
+-1076.06746493881
+31
+2059.65014337885
+12
+-209.215453044867
+22
+-1051.79710945546
+32
+2148.21162800104
+13
+-209.215453044867
+23
+-1051.79710945546
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+-38.8881027186488
+21
+-1076.06746493881
+31
+2059.65014337885
+12
+-33.2912055279292
+22
+-1076.04157769881
+32
+2066.4699823381
+13
+-33.2912055279292
+23
+-1076.04157769881
+33
+2066.4699823381
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+-33.2912055279292
+21
+-1076.04157769881
+31
+2066.4699823381
+12
+-26.4713665686845
+22
+-1076.23963198666
+32
+2072.06687952882
+13
+-26.4713665686845
+23
+-1076.23963198666
+33
+2072.06687952882
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+-26.4713665686845
+21
+-1076.23963198666
+31
+2072.06687952882
+12
+-18.690668427508
+22
+-1076.65401668716
+32
+2076.22574933075
+13
+-18.690668427508
+23
+-1076.65401668716
+33
+2076.22574933075
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+-18.690668427508
+21
+-1076.65401668716
+31
+2076.22574933075
+12
+-10.2481189705
+22
+-1077.26880722866
+32
+2078.78676870972
+13
+-10.2481189705
+23
+-1077.26880722866
+33
+2078.78676870972
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+-10.2481189705
+21
+-1077.26880722866
+31
+2078.78676870972
+12
+-1.4681606386561
+22
+-1078.06037755542
+32
+2079.65151912724
+13
+-1.4681606386561
+23
+-1078.06037755542
+33
+2079.65151912724
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+-1.4681606386561
+21
+-1078.06037755542
+31
+2079.65151912724
+12
+1.80477854883065e-13
+22
+-1072.40303302985
+32
+2148.21162800104
+13
+1.80477854883065e-13
+23
+-1072.40303302985
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.987076679027
+20
+-753.814953035805
+30
+1922.19277204157
+11
+-738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+-757.858868059522
+22
+-757.858868059522
+32
+1919.76361420147
+13
+-757.858868059522
+23
+-757.858868059522
+33
+1919.76361420147
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.20854961057
+20
+-738.20854961057
+30
+1812.39759571907
+11
+-761.987076679027
+21
+-753.814953035805
+31
+1922.19277204157
+12
+-891.670534105406
+22
+-595.795202951324
+32
+1922.19277204157
+13
+-891.670534105406
+23
+-595.795202951324
+33
+1922.19277204157
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.20854961057
+20
+-738.20854961057
+30
+1812.39759571907
+11
+-891.670534105406
+21
+-595.795202951324
+31
+1922.19277204157
+12
+-868.04142298445
+22
+-580.00673566728
+32
+1812.39759571907
+13
+-868.04142298445
+23
+-580.00673566728
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-794.166563605455
+30
+1614.7610800213
+11
+-44.7901031548271
+21
+-883.186483489224
+31
+1427.8983600213
+12
+1.80477854883065e-13
+22
+-887.597923605455
+32
+1427.8983600213
+13
+1.80477854883065e-13
+23
+-887.597923605455
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-44.7901031548271
+20
+-883.186483489224
+30
+1427.8983600213
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+-173.161764737035
+22
+-870.542978388701
+32
+1427.8983600213
+13
+-173.161764737035
+23
+-870.542978388701
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-154.93421062823
+20
+-778.906875772646
+30
+1614.7610800213
+11
+-44.7901031548271
+21
+-883.186483489224
+31
+1427.8983600213
+12
+0.0
+22
+-794.166563605455
+32
+1614.7610800213
+13
+0.0
+23
+-794.166563605455
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-747.450883605455
+30
+1427.8983600213
+11
+-164.047987682633
+21
+-824.724927080674
+31
+1241.03564002131
+12
+0.0
+22
+-840.882243605455
+32
+1241.03564002131
+13
+0.0
+23
+-840.882243605455
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+1241.03564002131
+11
+0.0
+21
+-747.450883605455
+31
+1427.8983600213
+12
+-145.820433573828
+22
+-733.088824464619
+32
+1427.8983600213
+13
+-145.820433573828
+23
+-733.088824464619
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-702.965588161926
+20
+-809.153241506708
+30
+1972.08037046597
+11
+-746.546206077474
+21
+-772.245716838241
+31
+1961.59984211439
+12
+-723.636295253065
+22
+-790.983771266745
+32
+1961.01586348506
+13
+-723.636295253065
+23
+-790.983771266745
+33
+1961.01586348506
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-746.546206077474
+20
+-772.245716838241
+30
+1961.59984211439
+11
+-702.965588161926
+21
+-809.153241506708
+31
+1972.08037046597
+12
+-761.145931803741
+22
+-761.14593180374
+32
+1969.69450846846
+13
+-761.145931803741
+23
+-761.14593180374
+33
+1969.69450846846
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.145931803741
+20
+-761.14593180374
+30
+1969.69450846846
+11
+-702.965588161926
+21
+-809.153241506708
+31
+1972.08037046597
+12
+-763.653083482914
+22
+-763.653083482914
+32
+2011.5925230317
+13
+-763.653083482914
+23
+-763.653083482914
+33
+2011.5925230317
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-763.653083482914
+20
+-763.653083482914
+30
+2011.5925230317
+11
+-702.965588161926
+21
+-809.153241506708
+31
+1972.08037046597
+12
+-687.957452549297
+22
+-823.760435027841
+32
+1993.10258668608
+13
+-687.957452549297
+23
+-823.760435027841
+33
+1993.10258668608
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-763.653083482914
+20
+-763.653083482914
+30
+2011.5925230317
+11
+-687.957452549297
+21
+-823.760435027841
+31
+1993.10258668608
+12
+-683.329149560927
+22
+-829.573232448602
+32
+2011.5925230317
+13
+-683.329149560927
+23
+-829.573232448602
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1043.98454271904
+30
+2258.00680432354
+11
+-209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+1.80477854883065e-13
+22
+-1072.40303302985
+32
+2148.21162800104
+13
+1.80477854883065e-13
+23
+-1072.40303302985
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+1.80477854883065e-13
+21
+-1043.98454271904
+31
+2258.00680432354
+12
+-203.671280618918
+22
+-1023.92467246733
+32
+2258.00680432354
+13
+-203.671280618918
+23
+-1023.92467246733
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-712.200510303116
+20
+-793.069743896677
+30
+1912.98147661467
+11
+-758.928832717995
+21
+-874.671572316599
+31
+1963.87063213502
+12
+-781.550764523053
+22
+-852.489442592712
+32
+1950.71579563676
+13
+-781.550764523053
+23
+-852.489442592712
+33
+1950.71579563676
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.928832717995
+20
+-874.671572316599
+30
+1963.87063213502
+11
+-712.200510303116
+21
+-793.069743896677
+31
+1912.98147661467
+12
+-697.04031921187
+22
+-808.580814515394
+32
+1922.19277204157
+13
+-697.04031921187
+23
+-808.580814515394
+33
+1922.19277204157
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-758.928832717995
+20
+-874.671572316599
+30
+1963.87063213502
+11
+-697.04031921187
+21
+-808.580814515394
+31
+1922.19277204157
+12
+-679.407718084958
+22
+-824.046894149155
+32
+1931.32901160226
+13
+-679.407718084958
+23
+-824.046894149155
+33
+1931.32901160226
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1078.12323678805
+30
+1989.78695697206
+11
+-1.4681606386561
+21
+-978.157451656943
+31
+1989.64235577041
+12
+-1.4681606386561
+22
+-1077.9663986116
+32
+1989.64235577041
+13
+-1.4681606386561
+23
+-1077.9663986116
+33
+1989.64235577041
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1.4681606386561
+20
+-978.157451656943
+30
+1989.64235577041
+11
+1.80477854883065e-13
+21
+-1078.12323678805
+31
+1989.78695697206
+12
+0.0
+22
+-978.310708745151
+32
+1989.78695697206
+13
+0.0
+23
+-978.310708745151
+33
+1989.78695697206
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-978.310708745151
+30
+1989.78695697206
+11
+1.80477854883065e-13
+21
+-1078.12323678805
+31
+1989.78695697206
+12
+7.31179769318757
+22
+-977.633667953296
+32
+1990.50710618793
+13
+7.31179769318757
+23
+-977.633667953296
+33
+1990.50710618793
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+7.31179769318757
+20
+-977.633667953296
+30
+1990.50710618793
+11
+1.80477854883065e-13
+21
+-1078.12323678805
+31
+1989.78695697206
+12
+7.31179769318775
+22
+-1077.46403068815
+32
+1990.50710618793
+13
+7.31179769318775
+23
+-1077.46403068815
+33
+1990.50710618793
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.670394770277
+20
+-660.670394770277
+30
+2455.6433200213
+11
+554.192057578438
+21
+-829.407026995336
+31
+2361.46489814399
+12
+705.352696568272
+22
+-705.352696568272
+32
+2361.46489814399
+13
+705.352696568272
+23
+-705.352696568272
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.192057578438
+20
+-829.407026995336
+30
+2361.46489814399
+11
+660.670394770277
+21
+-660.670394770277
+31
+2455.6433200213
+12
+519.085398326623
+22
+-776.866198451135
+32
+2455.6433200213
+13
+519.085398326623
+23
+-776.866198451135
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+519.085398326623
+20
+-776.866198451135
+30
+2455.6433200213
+11
+660.670394770277
+21
+-660.670394770277
+31
+2455.6433200213
+12
+642.325277330117
+22
+-675.725843568677
+32
+2455.6433200213
+13
+642.325277330117
+23
+-675.725843568677
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+519.085398326623
+20
+-776.866198451135
+30
+2455.6433200213
+11
+642.325277330117
+21
+-675.725843568677
+31
+2455.6433200213
+12
+569.3857757708
+22
+-735.585745512023
+32
+2455.6433200213
+13
+569.3857757708
+23
+-735.585745512023
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+891.670534105407
+20
+-595.795202951324
+30
+2148.21162800104
+11
+884.794335210004
+21
+-604.173875548016
+31
+2148.21162800104
+12
+892.684338449561
+22
+-596.472605357118
+32
+2133.80356487023
+13
+892.684338449561
+23
+-596.472605357118
+33
+2133.80356487023
+70
+0
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.20854961057
+20
+-738.208549610569
+30
+2258.00680432354
+11
+724.871895956044
+21
+-750.87609961724
+31
+2252.83778292244
+12
+739.771130343929
+22
+-739.771130343928
+32
+2249.46912732182
+13
+739.771130343929
+23
+-739.771130343928
+33
+2249.46912732182
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.871895956044
+20
+-750.87609961724
+30
+2252.83778292244
+11
+738.20854961057
+21
+-738.208549610569
+31
+2258.00680432354
+12
+670.391151613542
+22
+-794.16651328432
+32
+2257.10151651642
+13
+670.391151613542
+23
+-794.16651328432
+33
+2257.10151651642
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+670.391151613542
+20
+-794.16651328432
+30
+2257.10151651642
+11
+653.750224578544
+21
+-807.521705673266
+31
+2258.00680432354
+12
+653.750224578544
+22
+-808.286792264463
+32
+2255.71079042387
+13
+653.750224578544
+23
+-808.286792264463
+33
+2255.71079042387
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-807.521705673266
+30
+2258.00680432354
+11
+670.391151613542
+21
+-794.16651328432
+31
+2257.10151651642
+12
+738.20854961057
+22
+-738.208549610569
+32
+2258.00680432354
+13
+738.20854961057
+23
+-738.208549610569
+33
+2258.00680432354
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-644.006839982028
+20
+-861.844217926399
+30
+2011.59252303171
+11
+-731.724734127308
+21
+-900.26267972249
+31
+2019.84617451401
+12
+-643.970452120392
+22
+-861.831591212861
+32
+2011.20252653019
+13
+-643.970452120392
+23
+-861.831591212861
+33
+2011.20252653019
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-731.724734127308
+20
+-900.26267972249
+30
+2019.84617451401
+11
+-644.006839982028
+21
+-861.844217926399
+31
+2011.59252303171
+12
+-644.327893757466
+22
+-861.580735902195
+32
+2058.8118770109
+13
+-644.327893757466
+23
+-861.580735902195
+33
+2058.8118770109
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-731.724734127308
+20
+-900.26267972249
+30
+2019.84617451401
+11
+-644.327893757466
+21
+-861.580735902195
+31
+2058.8118770109
+12
+-731.284144746345
+22
+-899.775643285913
+32
+2054.14511148709
+13
+-731.284144746345
+23
+-899.775643285913
+33
+2054.14511148709
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-731.284144746345
+20
+-899.775643285913
+30
+2054.14511148709
+11
+-644.327893757466
+21
+-861.580735902195
+31
+2058.8118770109
+12
+-644.282480658799
+22
+-861.555930289753
+32
+2059.38164426315
+13
+-644.282480658799
+23
+-861.555930289753
+33
+2059.38164426315
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-399.515588143821
+20
+-964.515951276275
+30
+2258.00680432354
+11
+-595.795202951324
+21
+-891.670534105406
+31
+2148.21162800104
+12
+-410.390873558597
+22
+-990.771212819307
+32
+2148.21162800104
+13
+-410.390873558597
+23
+-990.771212819307
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-595.795202951324
+20
+-891.670534105406
+30
+2148.21162800104
+11
+-399.515588143821
+21
+-964.515951276275
+31
+2258.00680432354
+12
+-580.006735667279
+22
+-868.041422984449
+32
+2258.00680432354
+13
+-580.006735667279
+23
+-868.041422984449
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+704.67526609701
+20
+-470.84895947612
+30
+796.153149972084
+11
+784.574341950659
+21
+-324.981333125909
+31
+855.37186879426
+12
+706.098253038493
+22
+-471.799768952456
+32
+855.37186879426
+13
+706.098253038493
+23
+-471.799768952456
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+784.574341950659
+20
+-324.981333125909
+30
+855.37186879426
+11
+704.67526609701
+21
+-470.84895947612
+31
+796.153149972084
+12
+782.993203577332
+22
+-324.326404167689
+32
+796.153149972084
+13
+782.993203577332
+23
+-324.326404167689
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+772.176090266528
+20
+-319.845809128627
+30
+738.078199114136
+11
+831.221151351825
+21
+-165.340167031437
+31
+796.153149972084
+12
+782.993203577332
+22
+-324.326404167689
+32
+796.153149972084
+13
+782.993203577332
+23
+-324.326404167689
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+831.221151351825
+20
+-165.340167031437
+30
+796.153149972084
+11
+772.176090266528
+21
+-319.845809128627
+31
+738.078199114136
+12
+819.73776511114
+22
+-163.055979488767
+32
+738.078199114136
+13
+819.73776511114
+23
+-163.055979488767
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+40.1106512432667
+21
+-1076.01799327905
+31
+2017.42442965997
+12
+36.9934322066314
+22
+-1076.32501255654
+32
+2011.5925230317
+13
+36.9934322066314
+23
+-1076.32501255654
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.1106512432667
+20
+-1076.01799327905
+30
+2017.42442965997
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+210.691411720441
+22
+-1059.21725479392
+32
+2058.8118770109
+13
+210.691411720441
+23
+-1059.21725479392
+33
+2058.8118770109
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.1106512432667
+20
+-1076.01799327905
+30
+2017.42442965997
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+42.6716706222413
+22
+-1075.76575488639
+32
+2025.86697911698
+13
+42.6716706222413
+23
+-1075.76575488639
+33
+2025.86697911698
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+42.6716706222413
+20
+-1075.76575488639
+30
+2025.86697911698
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+43.536421039762
+22
+-1075.68058440422
+32
+2034.64693744883
+13
+43.536421039762
+23
+-1075.68058440422
+33
+2034.64693744883
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+43.536421039762
+20
+-1075.68058440422
+30
+2034.64693744883
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+42.6716706222413
+22
+-1075.76575488639
+32
+2043.42689578067
+13
+42.6716706222413
+23
+-1075.76575488639
+33
+2043.42689578067
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+42.6716706222413
+20
+-1075.76575488639
+30
+2043.42689578067
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+40.1106512432663
+22
+-1076.01799327905
+32
+2051.86944523768
+13
+40.1106512432663
+23
+-1076.01799327905
+33
+2051.86944523768
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.1106512432663
+20
+-1076.01799327905
+30
+2051.86944523768
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+36.3998441498995
+22
+-1076.38347587727
+32
+2058.8118770109
+13
+36.3998441498995
+23
+-1076.38347587727
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-833.682296381699
+20
+-797.91475852831
+30
+2048.43845388979
+11
+-781.183382327347
+21
+-739.911027417745
+31
+2076.74494872451
+12
+-827.129718036832
+22
+-803.86513828916
+32
+2069.83607643134
+13
+-827.129718036832
+23
+-803.86513828916
+33
+2069.83607643134
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.183382327347
+20
+-739.911027417745
+30
+2076.74494872451
+11
+-833.682296381699
+21
+-797.91475852831
+31
+2048.43845388979
+12
+-786.92474167715
+22
+-735.296194513125
+32
+2058.80750841657
+13
+-786.92474167715
+23
+-735.296194513125
+33
+2058.80750841657
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-786.92474167715
+20
+-735.296194513125
+30
+2058.80750841657
+11
+-833.682296381699
+21
+-797.91475852831
+31
+2048.43845388979
+12
+-789.34285913936
+22
+-732.349614898499
+32
+2049.89434090933
+13
+-789.34285913936
+23
+-732.349614898499
+33
+2049.89434090933
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+1.80477854883065e-13
+21
+-1072.40303302985
+31
+1922.19277204157
+12
+209.215453044867
+22
+-1051.79710945546
+32
+1922.19277204157
+13
+209.215453044867
+23
+-1051.79710945546
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1072.40303302985
+30
+1922.19277204157
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+7.31179769318775
+22
+-1077.46403068815
+32
+1990.50710618793
+13
+7.31179769318775
+23
+-1077.46403068815
+33
+1990.50710618793
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1072.40303302985
+30
+1922.19277204157
+11
+7.31179769318775
+21
+-1077.46403068815
+31
+1990.50710618793
+12
+1.80477854883065e-13
+22
+-1078.12323678805
+32
+1989.78695697206
+13
+1.80477854883065e-13
+23
+-1078.12323678805
+33
+1989.78695697206
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+7.31179769318775
+20
+-1077.46403068815
+30
+1990.50710618793
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+15.754347150196
+22
+-1076.84924014666
+32
+1993.0681255669
+13
+15.754347150196
+23
+-1076.84924014666
+33
+1993.0681255669
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+15.754347150196
+20
+-1076.84924014666
+30
+1993.0681255669
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+23.5350452913723
+22
+-1076.43485544616
+32
+1997.22699536883
+13
+23.5350452913723
+23
+-1076.43485544616
+33
+1997.22699536883
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+23.5350452913723
+20
+-1076.43485544616
+30
+1997.22699536883
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+30.3548842506176
+22
+-1076.23680115831
+32
+2002.82389255955
+13
+30.3548842506176
+23
+-1076.23680115831
+33
+2002.82389255955
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+30.3548842506176
+20
+-1076.23680115831
+30
+2002.82389255955
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+35.9517814413362
+22
+-1076.26268839831
+32
+2009.6437315188
+13
+35.9517814413362
+23
+-1076.26268839831
+33
+2009.6437315188
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+35.9517814413362
+20
+-1076.26268839831
+30
+2009.6437315188
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+36.9934322066314
+22
+-1076.32501255654
+32
+2011.5925230317
+13
+36.9934322066314
+23
+-1076.32501255654
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+-413.286070645571
+21
+-997.760836892423
+31
+2058.8118770109
+12
+-210.691411720441
+22
+-1059.21725479392
+32
+2058.8118770109
+13
+-210.691411720441
+23
+-1059.21725479392
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-413.286070645571
+20
+-997.760836892423
+30
+2058.8118770109
+11
+-209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+-410.390873558597
+22
+-990.771212819307
+32
+2148.21162800104
+13
+-410.390873558597
+23
+-990.771212819307
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-268.159752894786
+20
+-647.394912321209
+30
+1241.03564002131
+11
+-441.215302798659
+21
+-660.325364744672
+31
+1054.1729200213
+12
+-303.914386430124
+22
+-733.714233519903
+32
+1054.1729200213
+13
+-303.914386430124
+23
+-733.714233519903
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-441.215302798659
+20
+-660.325364744672
+30
+1054.1729200213
+11
+-268.159752894786
+21
+-647.394912321209
+31
+1241.03564002131
+12
+-389.307620352121
+22
+-582.640028068573
+32
+1241.03564002131
+13
+-389.307620352121
+23
+-582.640028068573
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+819.73776511114
+20
+-163.055979488767
+30
+738.078199114136
+11
+847.505736434059
+21
+1.80477854883065e-13
+31
+796.153149972084
+12
+831.221151351825
+22
+-165.340167031437
+32
+796.153149972084
+13
+831.221151351825
+23
+-165.340167031437
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+847.505736434059
+20
+1.80477854883065e-13
+30
+796.153149972084
+11
+819.73776511114
+21
+-163.055979488767
+31
+738.078199114136
+12
+835.797377356766
+22
+1.80477854883065e-13
+32
+738.078199114136
+13
+835.797377356766
+23
+1.80477854883065e-13
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+914.026066884025
+11
+-127.592879465023
+21
+-641.452721848564
+31
+1054.1729200213
+12
+-164.047987682633
+22
+-824.724927080674
+32
+914.026066884025
+13
+-164.047987682633
+23
+-824.724927080674
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-127.592879465023
+20
+-641.452721848564
+30
+1054.1729200213
+11
+0.0
+21
+-840.882243605455
+31
+914.026066884025
+12
+0.0
+22
+-654.019523605455
+32
+1054.1729200213
+13
+0.0
+23
+-654.019523605455
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1033.56568016919
+30
+1987.58272162967
+11
+653.750224578544
+21
+-1033.56568016919
+31
+2082.82163169725
+12
+653.750224578544
+22
+-1038.25578712258
+32
+2035.20217666346
+13
+653.750224578544
+23
+-1038.25578712258
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1033.56568016919
+30
+2082.82163169725
+11
+653.750224578544
+21
+-1033.56568016919
+31
+1987.58272162967
+12
+653.750224578544
+22
+-1019.67559748903
+32
+1941.79325554754
+13
+653.750224578544
+23
+-1019.67559748903
+33
+1941.79325554754
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1033.56568016919
+30
+2082.82163169725
+11
+653.750224578544
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+653.750224578544
+22
+-1019.67559748903
+32
+2128.61109777939
+13
+653.750224578544
+23
+-1019.67559748903
+33
+2128.61109777939
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1019.67559748903
+30
+2128.61109777939
+11
+653.750224578544
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+653.750224578544
+22
+-1016.06585313728
+32
+2035.20217666346
+13
+653.750224578544
+23
+-1016.06585313728
+33
+2035.20217666346
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1016.06585313728
+30
+2035.20217666346
+11
+653.750224578544
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+653.750224578544
+22
+-1011.8021195433
+32
+1991.91176299638
+13
+653.750224578544
+23
+-1011.8021195433
+33
+1991.91176299638
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1011.8021195433
+30
+1991.91176299638
+11
+653.750224578544
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+653.750224578544
+22
+-997.119327169824
+32
+1899.59344191956
+13
+653.750224578544
+23
+-997.119327169824
+33
+1899.59344191956
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1011.8021195433
+30
+1991.91176299638
+11
+653.750224578544
+21
+-997.119327169824
+31
+1899.59344191956
+12
+653.750224578544
+22
+-999.174771652236
+32
+1950.28497564898
+13
+653.750224578544
+23
+-999.174771652236
+33
+1950.28497564898
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-999.174771652236
+30
+1950.28497564898
+11
+653.750224578544
+21
+-997.119327169824
+31
+1899.59344191956
+12
+653.750224578544
+22
+-978.669071362052
+32
+1911.92150871446
+13
+653.750224578544
+23
+-978.669071362052
+33
+1911.92150871446
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-978.669071362052
+30
+1911.92150871446
+11
+653.750224578544
+21
+-997.119327169824
+31
+1899.59344191956
+12
+653.750224578544
+22
+-966.763694030251
+32
+1862.60499591753
+13
+653.750224578544
+23
+-966.763694030251
+33
+1862.60499591753
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-978.669071362052
+30
+1911.92150871446
+11
+653.750224578544
+21
+-966.763694030251
+31
+1862.60499591753
+12
+653.750224578544
+22
+-951.073041235167
+32
+1878.29564871262
+13
+653.750224578544
+23
+-951.073041235167
+33
+1878.29564871262
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-951.073041235167
+30
+1878.29564871262
+11
+653.750224578544
+21
+-966.763694030251
+31
+1862.60499591753
+12
+653.750224578544
+22
+-929.775248028225
+32
+1832.24936277796
+13
+653.750224578544
+23
+-929.775248028225
+33
+1832.24936277796
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-951.073041235167
+30
+1878.29564871262
+11
+653.750224578544
+21
+-929.775248028225
+31
+1832.24936277796
+12
+653.750224578544
+22
+-917.447181233325
+32
+1850.69961858573
+13
+653.750224578544
+23
+-917.447181233325
+33
+1850.69961858573
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-917.447181233325
+30
+1850.69961858573
+11
+653.750224578544
+21
+-929.775248028225
+31
+1832.24936277796
+12
+653.750224578544
+22
+-887.575434400246
+32
+1809.69309245876
+13
+653.750224578544
+23
+-887.575434400246
+33
+1809.69309245876
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-917.447181233325
+30
+1850.69961858573
+11
+653.750224578544
+21
+-887.575434400246
+31
+1809.69309245876
+12
+653.750224578544
+22
+-879.083714298799
+32
+1830.19391829555
+13
+653.750224578544
+23
+-879.083714298799
+33
+1830.19391829555
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-879.083714298799
+30
+1830.19391829555
+11
+653.750224578544
+21
+-887.575434400246
+31
+1809.69309245876
+12
+653.750224578544
+22
+-841.785968318108
+32
+1795.80300977859
+13
+653.750224578544
+23
+-841.785968318108
+33
+1795.80300977859
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-879.083714298799
+30
+1830.19391829555
+11
+653.750224578544
+21
+-841.785968318108
+31
+1795.80300977859
+12
+653.750224578544
+22
+-837.4569269514
+32
+1817.56657040449
+13
+653.750224578544
+23
+-837.4569269514
+33
+1817.56657040449
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-837.4569269514
+30
+1817.56657040449
+11
+653.750224578544
+21
+-841.785968318108
+31
+1795.80300977859
+12
+653.750224578543
+22
+-795.278099285779
+32
+1791.22238449044
+13
+653.750224578543
+23
+-795.278099285779
+33
+1791.22238449044
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-837.4569269514
+30
+1817.56657040449
+11
+653.750224578543
+21
+-795.278099285779
+31
+1791.22238449044
+12
+653.750224578544
+22
+-807.521705673267
+32
+1812.39759571907
+13
+653.750224578544
+23
+-807.521705673267
+33
+1812.39759571907
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-837.4569269514
+30
+1817.56657040449
+11
+653.750224578544
+21
+-807.521705673267
+31
+1812.39759571907
+12
+653.750224578543
+22
+-808.286776169451
+32
+1814.69356131783
+13
+653.750224578543
+23
+-808.286776169451
+33
+1814.69356131783
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1019.67559748903
+30
+2128.61109777939
+11
+653.750224578544
+21
+-1011.8021195433
+31
+2078.49259033054
+12
+653.750224578544
+22
+-997.119327169824
+32
+2170.81091140737
+13
+653.750224578544
+23
+-997.119327169824
+33
+2170.81091140737
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1011.8021195433
+30
+2078.49259033054
+11
+653.750224578544
+21
+-1019.67559748903
+31
+2128.61109777939
+12
+653.750224578544
+22
+-1016.06585313728
+32
+2035.20217666346
+13
+653.750224578544
+23
+-1016.06585313728
+33
+2035.20217666346
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-997.119327169824
+30
+2170.81091140737
+11
+653.750224578544
+21
+-1011.8021195433
+31
+2078.49259033054
+12
+653.750224578544
+22
+-999.174771652236
+32
+2120.11937767794
+13
+653.750224578544
+23
+-999.174771652236
+33
+2120.11937767794
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-997.119327169824
+30
+2170.81091140737
+11
+653.750224578544
+21
+-999.174771652236
+31
+2120.11937767794
+12
+653.750224578544
+22
+-978.669071362051
+32
+2158.48284461247
+13
+653.750224578544
+23
+-978.669071362051
+33
+2158.48284461247
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-997.119327169824
+30
+2170.81091140737
+11
+653.750224578544
+21
+-978.669071362051
+31
+2158.48284461247
+12
+653.750224578544
+22
+-966.763694030251
+32
+2207.79935740939
+13
+653.750224578544
+23
+-966.763694030251
+33
+2207.79935740939
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-966.763694030251
+30
+2207.79935740939
+11
+653.750224578544
+21
+-978.669071362051
+31
+2158.48284461247
+12
+653.750224578544
+22
+-951.073041235167
+32
+2192.10870461431
+13
+653.750224578544
+23
+-951.073041235167
+33
+2192.10870461431
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-966.763694030251
+30
+2207.79935740939
+11
+653.750224578544
+21
+-951.073041235167
+31
+2192.10870461431
+12
+653.750224578544
+22
+-929.775248028225
+32
+2238.15499054897
+13
+653.750224578544
+23
+-929.775248028225
+33
+2238.15499054897
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-929.775248028225
+30
+2238.15499054897
+11
+653.750224578544
+21
+-951.073041235167
+31
+2192.10870461431
+12
+653.750224578544
+22
+-917.447181233325
+32
+2219.70473474119
+13
+653.750224578544
+23
+-917.447181233325
+33
+2219.70473474119
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-929.775248028225
+30
+2238.15499054897
+11
+653.750224578544
+21
+-917.447181233325
+31
+2219.70473474119
+12
+653.750224578544
+22
+-887.575434400246
+32
+2260.71126086817
+13
+653.750224578544
+23
+-887.575434400246
+33
+2260.71126086817
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-887.575434400246
+30
+2260.71126086817
+11
+653.750224578544
+21
+-917.447181233325
+31
+2219.70473474119
+12
+653.750224578544
+22
+-879.083714298799
+32
+2240.21043503138
+13
+653.750224578544
+23
+-879.083714298799
+33
+2240.21043503138
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-887.575434400246
+30
+2260.71126086817
+11
+653.750224578544
+21
+-879.083714298799
+31
+2240.21043503138
+12
+653.750224578544
+22
+-841.785968318108
+32
+2274.60134354834
+13
+653.750224578544
+23
+-841.785968318108
+33
+2274.60134354834
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-841.785968318108
+30
+2274.60134354834
+11
+653.750224578544
+21
+-879.083714298799
+31
+2240.21043503138
+12
+653.750224578544
+22
+-837.4569269514
+32
+2252.83778292244
+13
+653.750224578544
+23
+-837.4569269514
+33
+2252.83778292244
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-841.785968318108
+30
+2274.60134354834
+11
+653.750224578544
+21
+-837.4569269514
+31
+2252.83778292244
+12
+653.750224578543
+22
+-795.278127928135
+32
+2279.18196601546
+13
+653.750224578543
+23
+-795.278127928135
+33
+2279.18196601546
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578543
+20
+-795.278127928135
+30
+2279.18196601546
+11
+653.750224578544
+21
+-837.4569269514
+31
+2252.83778292244
+12
+653.750224578544
+22
+-807.521705673266
+32
+2258.00680432354
+13
+653.750224578544
+23
+-807.521705673266
+33
+2258.00680432354
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-807.521705673266
+30
+2258.00680432354
+11
+653.750224578544
+21
+-837.4569269514
+31
+2252.83778292244
+12
+653.750224578544
+22
+-808.286792264463
+32
+2255.71079042387
+13
+653.750224578544
+23
+-808.286792264463
+33
+2255.71079042387
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-152.954610178005
+20
+-768.954752250597
+30
+631.979456702016
+11
+-285.268899238265
+21
+-688.700045464263
+31
+587.016306884026
+12
+-145.428823687577
+22
+-731.120068617964
+32
+587.016306884026
+13
+-145.428823687577
+23
+-731.120068617964
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-285.268899238265
+20
+-688.700045464263
+30
+587.016306884026
+11
+-152.954610178005
+21
+-768.954752250597
+31
+631.979456702016
+12
+-300.031260464802
+22
+-724.33953815002
+32
+631.979456702016
+13
+-300.031260464802
+23
+-724.33953815002
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+2455.6433200213
+11
+635.110015865962
+21
+-545.224063842726
+31
+2549.0746800213
+12
+594.593536632776
+22
+-594.593536632776
+32
+2549.0746800213
+13
+594.593536632776
+23
+-594.593536632776
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+635.110015865962
+20
+-545.224063842726
+30
+2549.0746800213
+11
+594.593536632776
+21
+-594.593536632776
+31
+2455.6433200213
+12
+699.168033082722
+22
+-467.169144021928
+32
+2455.6433200213
+13
+699.168033082722
+23
+-467.169144021928
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+635.110015865962
+20
+-545.224063842726
+30
+2549.0746800213
+11
+699.168033082722
+21
+-467.169144021928
+31
+2455.6433200213
+12
+689.000383427084
+22
+-479.558460974267
+32
+2549.0746800213
+13
+689.000383427084
+23
+-479.558460974267
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+689.000383427084
+20
+-479.558460974267
+30
+2549.0746800213
+11
+699.168033082722
+21
+-467.169144021928
+31
+2455.6433200213
+12
+699.168033082722
+22
+-467.169144021929
+32
+2549.0746800213
+13
+699.168033082722
+23
+-467.169144021929
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-182.278551827737
+20
+-916.376162171087
+30
+2455.6433200213
+11
+-381.734128610353
+21
+-921.587710511788
+31
+2361.46489814399
+12
+-194.606371158736
+22
+-978.352295145615
+32
+2361.46489814399
+13
+-194.606371158736
+23
+-978.352295145615
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-381.734128610353
+20
+-921.587710511788
+30
+2361.46489814399
+11
+-182.278551827737
+21
+-916.376162171087
+31
+2455.6433200213
+12
+-357.552241131723
+22
+-863.207469797099
+32
+2455.6433200213
+13
+-357.552241131723
+23
+-863.207469797099
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-357.552241131723
+20
+-863.207469797099
+30
+2455.6433200213
+11
+-182.278551827737
+21
+-916.376162171087
+31
+2455.6433200213
+12
+-233.261861254001
+22
+-900.910544337303
+32
+2455.6433200213
+13
+-233.261861254001
+23
+-900.910544337303
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-357.552241131723
+20
+-863.207469797099
+30
+2455.6433200213
+11
+-233.261861254001
+21
+-900.910544337303
+31
+2455.6433200213
+12
+-323.520317728025
+22
+-873.53094089839
+32
+2455.6433200213
+13
+-323.520317728025
+23
+-873.53094089839
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+2549.0746800213
+11
+-321.791703197793
+21
+-776.873894119249
+31
+2455.6433200213
+12
+-164.047987682633
+22
+-824.724927080674
+32
+2455.6433200213
+13
+-164.047987682633
+23
+-824.724927080674
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+2455.6433200213
+11
+-164.047987682633
+21
+-824.724927080674
+31
+2549.0746800213
+12
+-321.791703197793
+22
+-776.87389411925
+32
+2549.0746800213
+13
+-321.791703197793
+23
+-776.87389411925
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.87389411925
+30
+2549.0746800213
+11
+-164.047987682633
+21
+-824.724927080674
+31
+2549.0746800213
+12
+-209.932194866118
+22
+-810.806105001612
+32
+2549.0746800213
+13
+-209.932194866118
+23
+-810.806105001612
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.87389411925
+30
+2549.0746800213
+11
+-209.932194866118
+21
+-810.806105001612
+31
+2549.0746800213
+12
+-291.163466606751
+22
+-786.164868113883
+32
+2549.0746800213
+13
+-291.163466606751
+23
+-786.164868113883
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-158.887376492573
+20
+-798.780782641381
+30
+682.822310520627
+11
+-300.031260464802
+21
+-724.33953815002
+31
+631.979456702016
+12
+-152.954610178005
+22
+-768.954752250597
+32
+631.979456702016
+13
+-152.954610178005
+23
+-768.954752250597
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-300.031260464802
+20
+-724.33953815002
+30
+631.979456702016
+11
+-158.887376492573
+21
+-798.780782641381
+31
+682.822310520627
+12
+-311.668800211604
+22
+-752.435044439405
+32
+682.822310520627
+13
+-311.668800211604
+23
+-752.435044439405
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-163.055979488767
+20
+-819.73776511114
+30
+738.078199114136
+11
+-311.668800211604
+21
+-752.435044439405
+31
+682.822310520627
+12
+-158.887376492573
+22
+-798.780782641381
+32
+682.822310520627
+13
+-158.887376492573
+23
+-798.780782641381
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-311.668800211604
+20
+-752.435044439405
+30
+682.822310520627
+11
+-163.055979488767
+21
+-819.73776511114
+31
+738.078199114136
+12
+-319.845809128627
+22
+-772.176090266528
+32
+738.078199114136
+13
+-319.845809128627
+23
+-772.176090266528
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-165.340167031437
+20
+-831.221151351825
+30
+796.153149972084
+11
+-319.845809128627
+21
+-772.176090266528
+31
+738.078199114136
+12
+-163.055979488767
+22
+-819.73776511114
+32
+738.078199114136
+13
+-163.055979488767
+23
+-819.73776511114
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-319.845809128627
+20
+-772.176090266528
+30
+738.078199114136
+11
+-165.340167031437
+21
+-831.221151351825
+31
+796.153149972084
+12
+-324.326404167689
+22
+-782.993203577332
+32
+796.153149972084
+13
+-324.326404167689
+23
+-782.993203577332
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+533.995170927003
+20
+-892.63511672065
+30
+2258.00680432354
+11
+381.734128610352
+21
+-921.587710511788
+31
+2361.46489814399
+12
+399.51558814382
+22
+-964.515951276275
+32
+2258.00680432354
+13
+399.51558814382
+23
+-964.515951276275
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+2361.46489814399
+11
+533.995170927003
+21
+-892.63511672065
+31
+2258.00680432354
+12
+540.896920479706
+22
+-887.575434400246
+32
+2260.71126086817
+13
+540.896920479706
+23
+-887.575434400246
+33
+2260.71126086817
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+2361.46489814399
+11
+540.896920479706
+21
+-887.575434400246
+31
+2260.71126086817
+12
+577.578293884962
+22
+-864.407003018736
+32
+2267.73932769213
+13
+577.578293884962
+23
+-864.407003018736
+33
+2267.73932769213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+2361.46489814399
+11
+577.578293884962
+21
+-864.407003018736
+31
+2267.73932769213
+12
+554.192057578438
+22
+-829.407026995336
+32
+2361.46489814399
+13
+554.192057578438
+23
+-829.407026995336
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+165.340167031437
+20
+-831.221151351825
+30
+796.153149972084
+11
+1.80477854883065e-13
+21
+-835.797377356766
+31
+738.078199114136
+12
+163.055979488767
+22
+-819.73776511114
+32
+738.078199114136
+13
+163.055979488767
+23
+-819.73776511114
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-835.797377356766
+30
+738.078199114136
+11
+165.340167031437
+21
+-831.221151351825
+31
+796.153149972084
+12
+1.80477854883065e-13
+22
+-847.505736434059
+32
+796.153149972084
+13
+1.80477854883065e-13
+23
+-847.505736434059
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-990.771212819307
+20
+-410.390873558597
+30
+2148.21162800104
+11
+-1059.21725479392
+21
+-210.691411720441
+31
+2058.8118770109
+12
+-997.760836892423
+22
+-413.286070645571
+32
+2058.8118770109
+13
+-997.760836892423
+23
+-413.286070645571
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1059.21725479392
+20
+-210.691411720441
+30
+2058.8118770109
+11
+-990.771212819307
+21
+-410.390873558597
+31
+2148.21162800104
+12
+-1051.79710945546
+22
+-209.215453044867
+32
+2148.21162800104
+13
+-1051.79710945546
+23
+-209.215453044867
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-951.073041235166
+30
+2192.10870461431
+11
+653.750224578544
+21
+-978.669071362051
+31
+2158.48284461247
+12
+180.675224578544
+22
+-978.669071362051
+32
+2158.48284461247
+13
+180.675224578544
+23
+-978.669071362051
+33
+2158.48284461247
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-978.669071362051
+30
+2158.48284461247
+11
+180.675224578544
+21
+-951.073041235166
+31
+2192.10870461431
+12
+653.750224578544
+22
+-951.073041235167
+32
+2192.10870461431
+13
+653.750224578544
+23
+-951.073041235167
+33
+2192.10870461431
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-999.174771652236
+30
+2120.11937767794
+11
+653.750224578544
+21
+-1011.8021195433
+31
+2078.49259033054
+12
+180.675224578544
+22
+-1011.8021195433
+32
+2078.49259033054
+13
+180.675224578544
+23
+-1011.8021195433
+33
+2078.49259033054
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1011.8021195433
+30
+2078.49259033054
+11
+180.675224578544
+21
+-999.174771652236
+31
+2120.11937767794
+12
+653.750224578544
+22
+-999.174771652236
+32
+2120.11937767794
+13
+653.750224578544
+23
+-999.174771652236
+33
+2120.11937767794
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+610.800045742856
+20
+-425.129378778605
+30
+587.016306884026
+11
+554.385481313987
+21
+-554.385481313987
+31
+631.979456702016
+12
+527.108194536515
+22
+-527.108194536515
+32
+587.016306884026
+13
+527.108194536515
+23
+-527.108194536515
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.385481313987
+20
+-554.385481313987
+30
+631.979456702016
+11
+610.800045742856
+21
+-425.129378778605
+31
+587.016306884026
+12
+651.888361812631
+22
+-435.577877671407
+32
+631.979456702016
+13
+651.888361812631
+23
+-435.577877671407
+33
+631.979456702016
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+651.888361812631
+20
+-435.577877671407
+30
+631.979456702016
+11
+610.800045742856
+21
+-425.129378778605
+31
+587.016306884026
+12
+619.813665790805
+22
+-414.146250971868
+32
+587.016306884026
+13
+619.813665790805
+23
+-414.146250971868
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-966.763694030251
+30
+2207.79935740939
+11
+369.410361108008
+21
+-997.119327169824
+31
+2170.81091140737
+12
+653.750224578544
+22
+-997.119327169824
+32
+2170.81091140737
+13
+653.750224578544
+23
+-997.119327169824
+33
+2170.81091140737
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+369.410361108008
+20
+-997.119327169824
+30
+2170.81091140737
+11
+653.750224578544
+21
+-966.763694030251
+31
+2207.79935740939
+12
+406.150729088795
+22
+-980.53459853389
+32
+2191.01946172118
+13
+406.150729088795
+23
+-980.53459853389
+33
+2191.01946172118
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+406.150729088795
+20
+-980.53459853389
+30
+2191.01946172118
+11
+653.750224578544
+21
+-966.763694030251
+31
+2207.79935740939
+12
+422.745233791294
+22
+-966.763694030251
+32
+2207.79935740939
+13
+422.745233791294
+23
+-966.763694030251
+33
+2207.79935740939
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+688.700045464263
+20
+-285.268899238265
+30
+587.016306884026
+11
+768.954752250597
+21
+-152.954610178005
+31
+631.979456702016
+12
+724.33953815002
+22
+-300.031260464802
+32
+631.979456702016
+13
+724.33953815002
+23
+-300.031260464802
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+768.954752250597
+20
+-152.954610178005
+30
+631.979456702016
+11
+688.700045464263
+21
+-285.268899238265
+31
+587.016306884026
+12
+707.864018296911
+22
+-222.093747280928
+32
+587.016306884026
+13
+707.864018296911
+23
+-222.093747280928
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+768.954752250597
+20
+-152.954610178005
+30
+631.979456702016
+11
+707.864018296911
+21
+-222.093747280928
+31
+587.016306884026
+12
+731.120068617964
+22
+-145.428823687577
+32
+587.016306884026
+13
+731.120068617964
+23
+-145.428823687577
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+778.906875772646
+20
+-154.93421062823
+30
+1054.1729200213
+11
+647.394912321209
+21
+-268.159752894786
+31
+1241.03564002131
+12
+733.714233519903
+22
+-303.914386430124
+32
+1054.1729200213
+13
+733.714233519903
+23
+-303.914386430124
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+647.394912321209
+20
+-268.159752894786
+30
+1241.03564002131
+11
+778.906875772646
+21
+-154.93421062823
+31
+1054.1729200213
+12
+687.270773156591
+22
+-136.706656519426
+32
+1241.03564002131
+13
+687.270773156591
+23
+-136.706656519426
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-154.93421062823
+20
+-778.906875772646
+30
+1614.7610800213
+11
+-221.595075742173
+21
+-855.85089411917
+31
+1427.8983600213
+12
+-173.161764737035
+22
+-870.542978388701
+32
+1427.8983600213
+13
+-173.161764737035
+23
+-870.542978388701
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-221.595075742173
+20
+-855.85089411917
+30
+1427.8983600213
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+-307.339192645458
+22
+-829.840700617718
+32
+1427.8983600213
+13
+-307.339192645458
+23
+-829.840700617718
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-307.339192645458
+20
+-829.840700617718
+30
+1427.8983600213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+-339.669019965462
+22
+-820.033554718597
+32
+1427.8983600213
+13
+-339.669019965462
+23
+-820.033554718597
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-303.914386430124
+20
+-733.714233519903
+30
+1614.7610800213
+11
+-307.339192645458
+21
+-829.840700617718
+31
+1427.8983600213
+12
+-154.93421062823
+22
+-778.906875772646
+32
+1614.7610800213
+13
+-154.93421062823
+23
+-778.906875772646
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-194.606371158736
+20
+-978.352295145615
+30
+1708.93950189862
+11
+-233.261861972698
+21
+-900.910544119288
+31
+1614.7610800213
+12
+-182.278551827737
+22
+-916.376162171087
+32
+1614.7610800213
+13
+-182.278551827737
+23
+-916.376162171087
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-233.261861972698
+20
+-900.910544119288
+30
+1614.7610800213
+11
+-194.606371158736
+21
+-978.352295145615
+31
+1708.93950189862
+12
+-323.520317681463
+22
+-873.530940912515
+32
+1614.7610800213
+13
+-323.520317681463
+23
+-873.530940912515
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-323.520317681463
+20
+-873.530940912515
+30
+1614.7610800213
+11
+-381.734128610353
+21
+-921.587710511788
+31
+1708.93950189862
+12
+-357.552241131723
+22
+-863.207469797099
+32
+1614.7610800213
+13
+-357.552241131723
+23
+-863.207469797099
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-381.734128610353
+20
+-921.587710511788
+30
+1708.93950189862
+11
+-323.520317681463
+21
+-873.530940912515
+31
+1614.7610800213
+12
+-194.606371158736
+22
+-978.352295145615
+32
+1708.93950189862
+13
+-194.606371158736
+23
+-978.352295145615
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-897.961029579872
+20
+-599.99837764929
+30
+2058.8118770109
+11
+-818.480102290147
+21
+-696.846172894875
+31
+2011.59249120966
+12
+-818.273878310588
+22
+-697.096462294947
+32
+2058.80160712022
+13
+-818.273878310588
+23
+-697.096462294947
+33
+2058.80160712022
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-818.480102290147
+20
+-696.846172894875
+30
+2011.59249120966
+11
+-897.961029579872
+21
+-599.99837764929
+31
+2058.8118770109
+12
+-897.961029579872
+22
+-599.99837764929
+32
+2011.5925230317
+13
+-897.961029579872
+23
+-599.99837764929
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+914.026066884025
+11
+0.0
+21
+-654.019523605455
+31
+1054.1729200213
+12
+0.0
+22
+-840.882243605455
+32
+914.026066884025
+13
+0.0
+23
+-840.882243605455
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-654.019523605455
+30
+1054.1729200213
+11
+164.047987682633
+21
+-824.724927080674
+31
+914.026066884025
+12
+127.592879465023
+22
+-641.452721848564
+32
+1054.1729200213
+13
+127.592879465023
+23
+-641.452721848564
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-999.174771652236
+30
+1950.28497564898
+11
+653.750224578544
+21
+-978.669071362052
+31
+1911.92150871446
+12
+180.675224578544
+22
+-978.669071362051
+32
+1911.92150871446
+13
+180.675224578544
+23
+-978.669071362051
+33
+1911.92150871446
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-978.669071362052
+30
+1911.92150871446
+11
+180.675224578544
+21
+-999.174771652236
+31
+1950.28497564898
+12
+653.750224578544
+22
+-999.174771652236
+32
+1950.28497564898
+13
+653.750224578544
+23
+-999.174771652236
+33
+1950.28497564898
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1023.92467246733
+20
+-203.671280618918
+30
+1812.39759571907
+11
+1072.40303302985
+21
+1.80477854883065e-13
+31
+1922.19277204157
+12
+1051.79710945546
+22
+-209.215453044867
+32
+1922.19277204157
+13
+1051.79710945546
+23
+-209.215453044867
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1072.40303302985
+20
+1.80477854883065e-13
+30
+1922.19277204157
+11
+1023.92467246733
+21
+-203.671280618918
+31
+1812.39759571907
+12
+1043.98454271904
+22
+1.80477854883065e-13
+32
+1812.39759571907
+13
+1043.98454271904
+23
+1.80477854883065e-13
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+670.391151613542
+20
+-794.16651328432
+30
+2257.10151651642
+11
+180.675224578544
+21
+-837.4569269514
+31
+2252.83778292244
+12
+180.675224578544
+22
+-794.16651328432
+32
+2257.10151651642
+13
+180.675224578544
+23
+-794.16651328432
+33
+2257.10151651642
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+670.391151613542
+21
+-794.16651328432
+31
+2257.10151651642
+12
+653.750224578544
+22
+-808.286792264463
+32
+2255.71079042387
+13
+653.750224578544
+23
+-808.286792264463
+33
+2255.71079042387
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-837.4569269514
+30
+2252.83778292244
+11
+180.675224578544
+21
+-837.4569269514
+31
+2252.83778292244
+12
+653.750224578544
+22
+-808.286792264463
+32
+2255.71079042387
+13
+653.750224578544
+23
+-808.286792264463
+33
+2255.71079042387
+70
+2
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+422.745233791294
+20
+-966.763694030251
+30
+2207.79935740939
+11
+399.51558814382
+21
+-964.515951276275
+31
+2258.00680432354
+12
+406.150729088795
+22
+-980.53459853389
+32
+2191.01946172118
+13
+406.150729088795
+23
+-980.53459853389
+33
+2191.01946172118
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+399.51558814382
+20
+-964.515951276275
+30
+2258.00680432354
+11
+422.745233791294
+21
+-966.763694030251
+31
+2207.79935740939
+12
+475.358507495069
+22
+-929.775248028225
+32
+2238.15499054897
+13
+475.358507495069
+23
+-929.775248028225
+33
+2238.15499054897
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+399.51558814382
+20
+-964.515951276275
+30
+2258.00680432354
+11
+475.358507495069
+21
+-929.775248028225
+31
+2238.15499054897
+12
+533.995170927003
+22
+-892.63511672065
+32
+2258.00680432354
+13
+533.995170927003
+23
+-892.63511672065
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-43.0469725205787
+20
+-1075.72879087574
+30
+2017.42442965997
+11
+-210.691411720441
+21
+-1059.21725479392
+31
+2011.5925230317
+12
+-39.9297534839436
+22
+-1076.03581015323
+32
+2011.5925230317
+13
+-39.9297534839436
+23
+-1076.03581015323
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2011.5925230317
+11
+-43.0469725205787
+21
+-1075.72879087574
+31
+2017.42442965997
+12
+-210.691411720441
+22
+-1059.21725479392
+32
+2058.8118770109
+13
+-210.691411720441
+23
+-1059.21725479392
+33
+2058.8118770109
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+-43.0469725205787
+21
+-1075.72879087574
+31
+2017.42442965997
+12
+-45.6079918995535
+22
+-1075.47655248308
+32
+2025.86697911698
+13
+-45.6079918995535
+23
+-1075.47655248308
+33
+2025.86697911698
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+-45.6079918995535
+21
+-1075.47655248308
+31
+2025.86697911698
+12
+-46.4727423170739
+22
+-1075.39138200091
+32
+2034.64693744883
+13
+-46.4727423170739
+23
+-1075.39138200091
+33
+2034.64693744883
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+-46.4727423170739
+21
+-1075.39138200091
+31
+2034.64693744883
+12
+-45.6079918995532
+22
+-1075.47655248308
+32
+2043.42689578067
+13
+-45.6079918995532
+23
+-1075.47655248308
+33
+2043.42689578067
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+-45.6079918995532
+21
+-1075.47655248308
+31
+2043.42689578067
+12
+-43.0469725205787
+22
+-1075.72879087574
+32
+2051.86944523768
+13
+-43.0469725205787
+23
+-1075.72879087574
+33
+2051.86944523768
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+-43.0469725205787
+21
+-1075.72879087574
+31
+2051.86944523768
+12
+-39.3361654272124
+22
+-1076.09427347395
+32
+2058.8118770109
+13
+-39.3361654272124
+23
+-1076.09427347395
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1023.92467246733
+20
+-203.671280618918
+30
+1812.39759571907
+11
+-921.587710511788
+21
+-381.734128610352
+31
+1708.93950189862
+12
+-964.515951276276
+22
+-399.515588143821
+32
+1812.39759571907
+13
+-964.515951276276
+23
+-399.515588143821
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-921.587710511788
+20
+-381.734128610352
+30
+1708.93950189862
+11
+-1023.92467246733
+21
+-203.671280618918
+31
+1812.39759571907
+12
+-978.352295145615
+22
+-194.606371158736
+32
+1708.93950189862
+13
+-978.352295145615
+23
+-194.606371158736
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1051.79710945546
+20
+-209.215453044867
+30
+1922.19277204157
+11
+-964.515951276276
+21
+-399.515588143821
+31
+1812.39759571907
+12
+-990.771212819307
+22
+-410.390873558597
+32
+1922.19277204157
+13
+-990.771212819307
+23
+-410.390873558597
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-964.515951276276
+20
+-399.515588143821
+30
+1812.39759571907
+11
+-1051.79710945546
+21
+-209.215453044867
+31
+1922.19277204157
+12
+-1023.92467246733
+22
+-203.671280618918
+32
+1812.39759571907
+13
+-1023.92467246733
+23
+-203.671280618918
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-680.414811030127
+20
+-831.964968270127
+30
+2020.57508939225
+11
+-763.653083482914
+21
+-763.653083482914
+31
+2011.5925230317
+12
+-683.329149560927
+22
+-829.573232448602
+32
+2011.5925230317
+13
+-683.329149560927
+23
+-829.573232448602
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-763.653083482914
+20
+-763.653083482914
+30
+2011.5925230317
+11
+-680.414811030127
+21
+-831.964968270127
+31
+2020.57508939225
+12
+-763.653083482914
+22
+-763.653083482914
+32
+2058.8118770109
+13
+-763.653083482914
+23
+-763.653083482914
+33
+2058.8118770109
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-763.653083482914
+20
+-763.653083482914
+30
+2058.8118770109
+11
+-680.414811030127
+21
+-831.964968270127
+31
+2020.57508939225
+12
+-680.521947020029
+22
+-831.877044035484
+32
+2050.14904337117
+13
+-680.521947020029
+23
+-831.877044035484
+33
+2050.14904337117
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-763.653083482914
+20
+-763.653083482914
+30
+2058.8118770109
+11
+-680.521947020029
+21
+-831.877044035484
+31
+2050.14904337117
+12
+-683.397324988288
+22
+-829.51728232132
+32
+2058.8118770109
+13
+-683.397324988288
+23
+-829.51728232132
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+733.714233519903
+20
+-303.914386430124
+30
+1054.1729200213
+11
+582.640028068573
+21
+-389.307620352121
+31
+1241.03564002131
+12
+660.325364744673
+22
+-441.215302798659
+32
+1054.1729200213
+13
+660.325364744673
+23
+-441.215302798659
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+582.640028068573
+20
+-389.307620352121
+30
+1241.03564002131
+11
+733.714233519903
+21
+-303.914386430124
+31
+1054.1729200213
+12
+647.394912321209
+22
+-268.159752894786
+32
+1241.03564002131
+13
+647.394912321209
+23
+-268.159752894786
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-733.714233519903
+20
+-303.914386430124
+30
+1614.7610800213
+11
+-842.852042179446
+21
+-264.446547810842
+31
+1427.8983600213
+12
+-820.033554718597
+22
+-339.669019965462
+32
+1427.8983600213
+13
+-820.033554718597
+23
+-339.669019965462
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-842.852042179446
+20
+-264.446547810842
+30
+1427.8983600213
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+-778.906875772646
+22
+-154.93421062823
+32
+1614.7610800213
+13
+-778.906875772646
+23
+-154.93421062823
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-842.852042179446
+20
+-264.446547810842
+30
+1427.8983600213
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+-868.904108801094
+22
+-178.564393729439
+32
+1427.8983600213
+13
+-868.904108801094
+23
+-178.564393729439
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-868.904108801094
+20
+-178.564393729439
+30
+1427.8983600213
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+-870.542978388701
+22
+-173.161764737035
+32
+1427.8983600213
+13
+-870.542978388701
+23
+-173.161764737035
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-978.352295145615
+20
+-194.606371158736
+30
+1708.93950189862
+11
+-863.207469797099
+21
+-357.552241131722
+31
+1614.7610800213
+12
+-921.587710511788
+22
+-381.734128610352
+32
+1708.93950189862
+13
+-921.587710511788
+23
+-381.734128610352
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-863.207469797099
+20
+-357.552241131722
+30
+1614.7610800213
+11
+-978.352295145615
+21
+-194.606371158736
+31
+1708.93950189862
+12
+-887.227323624272
+22
+-278.369394820258
+32
+1614.7610800213
+13
+-887.227323624272
+23
+-278.369394820258
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-887.227323624272
+20
+-278.369394820258
+30
+1614.7610800213
+11
+-978.352295145615
+21
+-194.606371158736
+31
+1708.93950189862
+12
+-914.651018607606
+22
+-187.965588003526
+32
+1614.7610800213
+13
+-914.651018607606
+23
+-187.965588003526
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-914.651018607606
+20
+-187.965588003526
+30
+1614.7610800213
+11
+-978.352295145615
+21
+-194.606371158736
+31
+1708.93950189862
+12
+-916.376162171087
+22
+-182.278551827736
+32
+1614.7610800213
+13
+-916.376162171087
+23
+-182.278551827736
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+677.173649450057
+20
+-452.47296672438
+30
+682.822310520627
+11
+772.176090266528
+21
+-319.845809128627
+31
+738.078199114136
+12
+694.940121314314
+22
+-464.344143695271
+32
+738.078199114136
+13
+694.940121314314
+23
+-464.344143695271
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+772.176090266528
+20
+-319.845809128627
+30
+738.078199114136
+11
+677.173649450057
+21
+-452.47296672438
+31
+682.822310520627
+12
+752.435044439405
+22
+-311.668800211604
+32
+682.822310520627
+13
+752.435044439405
+23
+-311.668800211604
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-311.668800211604
+20
+-752.435044439405
+30
+682.822310520627
+11
+-435.577877671407
+21
+-651.888361812631
+31
+631.979456702016
+12
+-300.031260464802
+22
+-724.33953815002
+32
+631.979456702016
+13
+-300.031260464802
+23
+-724.33953815002
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-435.577877671407
+20
+-651.888361812631
+30
+631.979456702016
+11
+-311.668800211604
+21
+-752.435044439405
+31
+682.822310520627
+12
+-452.472966724379
+22
+-677.173649450057
+32
+682.822310520627
+13
+-452.472966724379
+23
+-677.173649450057
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-319.845809128627
+20
+-772.176090266528
+30
+738.078199114136
+11
+-452.472966724379
+21
+-677.173649450057
+31
+682.822310520627
+12
+-311.668800211604
+22
+-752.435044439405
+32
+682.822310520627
+13
+-311.668800211604
+23
+-752.435044439405
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-452.472966724379
+20
+-677.173649450057
+30
+682.822310520627
+11
+-319.845809128627
+21
+-772.176090266528
+31
+738.078199114136
+12
+-464.344143695271
+22
+-694.940121314314
+32
+738.078199114136
+13
+-464.344143695271
+23
+-694.940121314314
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+42.6716706222411
+20
+-976.334157259822
+30
+2043.42689578067
+11
+43.536421039762
+21
+-1075.68058440422
+31
+2034.64693744883
+12
+42.6716706222413
+22
+-1075.76575488639
+32
+2043.42689578067
+13
+42.6716706222413
+23
+-1075.76575488639
+33
+2043.42689578067
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+43.536421039762
+20
+-1075.68058440422
+30
+2034.64693744883
+11
+42.6716706222411
+21
+-976.334157259822
+31
+2043.42689578067
+12
+43.4817324497669
+22
+-976.746706756077
+32
+2035.2022000213
+13
+43.4817324497669
+23
+-976.746706756077
+33
+2035.2022000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+43.5364210397618
+20
+-976.708082157409
+30
+2034.64693744883
+11
+43.536421039762
+21
+-1075.68058440422
+31
+2034.64693744883
+12
+43.4817324497669
+22
+-976.746706756077
+32
+2035.2022000213
+13
+43.4817324497669
+23
+-976.746706756077
+33
+2035.2022000213
+70
+2
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-33.2912055279292
+20
+-1075.947598755
+30
+2002.82389255955
+11
+-38.8881027186488
+21
+-975.669199508814
+31
+2009.6437315188
+12
+-38.8881027186482
+22
+-1075.973485995
+32
+2009.6437315188
+13
+-38.8881027186482
+23
+-1075.973485995
+33
+2009.6437315188
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-38.8881027186488
+20
+-975.669199508814
+30
+2009.6437315188
+11
+-33.2912055279292
+21
+-1075.947598755
+31
+2002.82389255955
+12
+-33.2912055279291
+22
+-975.812207442705
+32
+2002.82389255955
+13
+-33.2912055279291
+23
+-975.812207442705
+33
+2002.82389255955
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+1427.8983600213
+11
+-824.724927080674
+21
+-164.047987682633
+31
+1241.03564002131
+12
+-776.873894119249
+22
+-321.791703197793
+32
+1241.03564002131
+13
+-776.873894119249
+23
+-321.791703197793
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+1241.03564002131
+11
+-690.554572920556
+21
+-286.037069662455
+31
+1427.8983600213
+12
+-733.088824464619
+22
+-145.820433573828
+32
+1427.8983600213
+13
+-733.088824464619
+23
+-145.820433573828
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+651.888361812631
+20
+-435.577877671407
+30
+631.979456702016
+11
+752.435044439405
+21
+-311.668800211604
+31
+682.822310520627
+12
+677.173649450057
+22
+-452.47296672438
+32
+682.822310520627
+13
+677.173649450057
+23
+-452.47296672438
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+752.435044439405
+20
+-311.668800211604
+30
+682.822310520627
+11
+651.888361812631
+21
+-435.577877671407
+31
+631.979456702016
+12
+724.33953815002
+22
+-300.031260464802
+32
+631.979456702016
+13
+724.33953815002
+23
+-300.031260464802
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+2549.0746800213
+11
+-164.047987682633
+21
+-824.724927080674
+31
+2455.6433200213
+12
+0.0
+22
+-840.882243605455
+32
+2455.6433200213
+13
+0.0
+23
+-840.882243605455
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+0.0
+21
+-840.882243605455
+31
+2549.0746800213
+12
+-164.047987682633
+22
+-824.724927080674
+32
+2549.0746800213
+13
+-164.047987682633
+23
+-824.724927080674
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+2549.0746800213
+11
+0.0
+21
+-840.882243605455
+31
+2549.0746800213
+12
+-42.4327807980229
+22
+-836.702979476311
+32
+2549.0746800213
+13
+-42.4327807980229
+23
+-836.702979476311
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+2549.0746800213
+11
+-42.4327807980229
+21
+-836.702979476311
+31
+2549.0746800213
+12
+-126.903621448811
+22
+-828.383327837855
+32
+2549.0746800213
+13
+-126.903621448811
+23
+-828.383327837855
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-706.098253038492
+20
+-471.799768952456
+30
+855.37186879426
+11
+-599.277053327022
+21
+-599.277053327022
+31
+796.153149972084
+12
+-600.487204246519
+22
+-600.487204246519
+32
+855.37186879426
+13
+-600.487204246519
+23
+-600.487204246519
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-599.277053327022
+20
+-599.277053327022
+30
+796.153149972084
+11
+-706.098253038492
+21
+-471.799768952456
+31
+855.37186879426
+12
+-704.67526609701
+22
+-470.84895947612
+32
+796.153149972084
+13
+-704.67526609701
+23
+-470.84895947612
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-26.4713665686843
+20
+-976.215346903032
+30
+2072.06687952882
+11
+-18.690668427508
+21
+-1076.65401668716
+31
+2076.22574933075
+12
+-26.4713665686845
+22
+-1076.23963198666
+32
+2072.06687952882
+13
+-26.4713665686845
+23
+-1076.23963198666
+33
+2072.06687952882
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-18.690668427508
+20
+-1076.65401668716
+30
+2076.22574933075
+11
+-26.4713665686843
+21
+-976.215346903032
+31
+2072.06687952882
+12
+-18.690668427508
+22
+-976.732727149702
+32
+2076.22574933075
+13
+-18.690668427508
+23
+-976.732727149702
+33
+2076.22574933075
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.87389411925
+30
+2549.0746800213
+11
+-467.169144021928
+21
+-699.168033082722
+31
+2455.6433200213
+12
+-321.791703197793
+22
+-776.873894119249
+32
+2455.6433200213
+13
+-321.791703197793
+23
+-776.873894119249
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+-321.791703197793
+21
+-776.87389411925
+31
+2549.0746800213
+12
+-467.169144021929
+22
+-699.168033082722
+32
+2549.0746800213
+13
+-467.169144021929
+23
+-699.168033082722
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021929
+20
+-699.168033082722
+30
+2549.0746800213
+11
+-321.791703197793
+21
+-776.87389411925
+31
+2549.0746800213
+12
+-368.760188696337
+22
+-751.768715581535
+32
+2549.0746800213
+13
+-368.760188696337
+23
+-751.768715581535
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021929
+20
+-699.168033082722
+30
+2549.0746800213
+11
+-368.760188696337
+21
+-751.768715581535
+31
+2549.0746800213
+12
+-443.635339973588
+22
+-711.747113417844
+32
+2549.0746800213
+13
+-443.635339973588
+23
+-711.747113417844
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-300.031260464802
+20
+-724.33953815002
+30
+631.979456702016
+11
+-414.146250971868
+21
+-619.813665790805
+31
+587.016306884026
+12
+-285.268899238265
+22
+-688.700045464263
+32
+587.016306884026
+13
+-285.268899238265
+23
+-688.700045464263
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-414.146250971868
+20
+-619.813665790805
+30
+587.016306884026
+11
+-300.031260464802
+21
+-724.33953815002
+31
+631.979456702016
+12
+-435.577877671407
+22
+-651.888361812631
+32
+631.979456702016
+13
+-435.577877671407
+23
+-651.888361812631
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+914.026066884025
+11
+641.452721848564
+21
+-127.592879465023
+31
+1054.1729200213
+12
+604.235251721863
+22
+-250.282436127116
+32
+1054.1729200213
+13
+604.235251721863
+23
+-250.282436127116
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+641.452721848564
+20
+-127.592879465023
+30
+1054.1729200213
+11
+776.87389411925
+21
+-321.791703197793
+31
+914.026066884025
+12
+824.724927080674
+22
+-164.047987682633
+32
+914.026066884025
+13
+824.724927080674
+23
+-164.047987682633
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-26.4713665686843
+20
+-976.215346903032
+30
+2072.06687952882
+11
+-33.2912055279292
+21
+-1076.04157769881
+31
+2066.4699823381
+12
+-33.2912055279292
+22
+-975.878683928089
+32
+2066.4699823381
+13
+-33.2912055279292
+23
+-975.878683928089
+33
+2066.4699823381
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-33.2912055279292
+20
+-1076.04157769881
+30
+2066.4699823381
+11
+-26.4713665686843
+21
+-976.215346903032
+31
+2072.06687952882
+12
+-26.4713665686845
+22
+-1076.23963198666
+32
+2072.06687952882
+13
+-26.4713665686845
+23
+-1076.23963198666
+33
+2072.06687952882
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-966.763694030251
+30
+2207.79935740939
+11
+475.358507495069
+21
+-929.775248028225
+31
+2238.15499054897
+12
+422.745233791294
+22
+-966.763694030251
+32
+2207.79935740939
+13
+422.745233791294
+23
+-966.763694030251
+33
+2207.79935740939
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+475.358507495069
+20
+-929.775248028225
+30
+2238.15499054897
+11
+653.750224578544
+21
+-966.763694030251
+31
+2207.79935740939
+12
+653.750224578544
+22
+-929.775248028225
+32
+2238.15499054897
+13
+653.750224578544
+23
+-929.775248028225
+33
+2238.15499054897
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+533.995007415167
+20
+-892.635204119545
+30
+1812.39759571907
+11
+653.750224578544
+21
+-929.775248028225
+31
+1832.24936277796
+12
+475.358481968201
+22
+-929.775248028225
+32
+1832.24936277796
+13
+475.358481968201
+23
+-929.775248028225
+33
+1832.24936277796
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-929.775248028225
+30
+1832.24936277796
+11
+533.995007415167
+21
+-892.635204119545
+31
+1812.39759571907
+12
+540.896876185886
+22
+-887.575434400246
+32
+1809.69309245876
+13
+540.896876185886
+23
+-887.575434400246
+33
+1809.69309245876
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-929.775248028225
+30
+1832.24936277796
+11
+540.896876185886
+21
+-887.575434400246
+31
+1809.69309245876
+12
+653.750224578544
+22
+-887.575434400246
+32
+1809.69309245876
+13
+653.750224578544
+23
+-887.575434400246
+33
+1809.69309245876
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+990.771212819308
+20
+-410.390873558597
+30
+2148.21162800104
+11
+868.04142298445
+21
+-580.006735667279
+31
+2258.00680432354
+12
+891.670534105407
+22
+-595.795202951324
+32
+2148.21162800104
+13
+891.670534105407
+23
+-595.795202951324
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+2258.00680432354
+11
+990.771212819308
+21
+-410.390873558597
+31
+2148.21162800104
+12
+964.515951276275
+22
+-399.51558814382
+32
+2258.00680432354
+13
+964.515951276275
+23
+-399.51558814382
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-845.012275898089
+20
+-788.258546505553
+30
+1988.01128244689
+11
+-781.35466353334
+21
+-731.718944065101
+31
+1933.51796332002
+12
+-828.138788259274
+22
+-805.723050021943
+32
+1963.78062144053
+13
+-828.138788259274
+23
+-805.723050021943
+33
+1963.78062144053
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.35466353334
+20
+-731.718944065101
+30
+1933.51796332002
+11
+-845.012275898089
+21
+-788.258546505553
+31
+1988.01128244689
+12
+-804.883917627287
+22
+-707.527532613081
+32
+1967.25758629213
+13
+-804.883917627287
+23
+-707.527532613081
+33
+1967.25758629213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+-413.286070645571
+21
+-997.760836892423
+31
+2011.5925230317
+12
+-210.691411720441
+22
+-1059.21725479392
+32
+2011.5925230317
+13
+-210.691411720441
+23
+-1059.21725479392
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-413.286070645571
+20
+-997.760836892423
+30
+2011.5925230317
+11
+-210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+-413.286070645571
+22
+-997.760836892423
+32
+2058.8118770109
+13
+-413.286070645571
+23
+-997.760836892423
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+619.813665790805
+20
+-414.146250971868
+30
+587.016306884026
+11
+724.33953815002
+21
+-300.031260464802
+31
+631.979456702016
+12
+651.888361812631
+22
+-435.577877671407
+32
+631.979456702016
+13
+651.888361812631
+23
+-435.577877671407
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.33953815002
+20
+-300.031260464802
+30
+631.979456702016
+11
+619.813665790805
+21
+-414.146250971868
+31
+587.016306884026
+12
+648.718890655847
+22
+-360.068378836192
+32
+587.016306884026
+13
+648.718890655847
+23
+-360.068378836192
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.33953815002
+20
+-300.031260464802
+30
+631.979456702016
+11
+648.718890655847
+21
+-360.068378836192
+31
+587.016306884026
+12
+684.232404647772
+22
+-293.627267317059
+32
+587.016306884026
+13
+684.232404647772
+23
+-293.627267317059
+33
+587.016306884026
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.33953815002
+20
+-300.031260464802
+30
+631.979456702016
+11
+684.232404647772
+21
+-293.627267317059
+31
+587.016306884026
+12
+688.700045464263
+22
+-285.268899238265
+32
+587.016306884026
+13
+688.700045464263
+23
+-285.268899238265
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1043.98454271904
+30
+1812.39759571907
+11
+-194.606371158736
+21
+-978.352295145615
+31
+1708.93950189862
+12
+1.80477854883065e-13
+22
+-997.519349743284
+32
+1708.93950189862
+13
+1.80477854883065e-13
+23
+-997.519349743284
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-194.606371158736
+20
+-978.352295145615
+30
+1708.93950189862
+11
+1.80477854883065e-13
+21
+-1043.98454271904
+31
+1812.39759571907
+12
+-203.671280618918
+22
+-1023.92467246733
+32
+1812.39759571907
+13
+-203.671280618918
+23
+-1023.92467246733
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+1427.8983600213
+11
+-467.169144021928
+21
+-699.168033082722
+31
+1241.03564002131
+12
+-321.791703197793
+22
+-776.873894119249
+32
+1241.03564002131
+13
+-321.791703197793
+23
+-776.873894119249
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+1241.03564002131
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+-415.26146157539
+22
+-621.482696406623
+32
+1427.8983600213
+13
+-415.26146157539
+23
+-621.482696406623
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-925.06395772174
+20
+-94.0698833092507
+30
+2455.6433200213
+11
+-840.882243605455
+21
+1.80477854883065e-13
+31
+2455.6433200213
+12
+-934.329032542513
+22
+3.60955709766131e-13
+32
+2455.6433200213
+13
+-934.329032542513
+23
+3.60955709766131e-13
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-925.06395772174
+21
+-94.0698833092507
+31
+2455.6433200213
+12
+-916.376162171087
+22
+-182.278551827736
+32
+2455.6433200213
+13
+-916.376162171087
+23
+-182.278551827736
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-916.376162171087
+21
+-182.278551827736
+31
+2455.6433200213
+12
+-914.651018565421
+22
+-187.965588142593
+32
+2455.6433200213
+13
+-914.651018565421
+23
+-187.965588142593
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-914.651018565421
+21
+-187.965588142593
+31
+2455.6433200213
+12
+-887.22732313789
+22
+-278.369396423646
+32
+2455.6433200213
+13
+-887.22732313789
+23
+-278.369396423646
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-887.22732313789
+21
+-278.369396423646
+31
+2455.6433200213
+12
+-863.207469797099
+22
+-357.552241131722
+32
+2455.6433200213
+13
+-863.207469797099
+23
+-357.552241131722
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-863.207469797099
+21
+-357.552241131722
+31
+2455.6433200213
+12
+-857.607798059122
+22
+-368.028490102694
+32
+2455.6433200213
+13
+-857.607798059122
+23
+-368.028490102694
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-857.607798059122
+21
+-368.028490102694
+31
+2455.6433200213
+12
+-813.095615905849
+22
+-451.304925633068
+32
+2455.6433200213
+13
+-813.095615905849
+23
+-451.304925633068
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+-813.095615905849
+21
+-451.304925633068
+31
+2455.6433200213
+12
+-824.724927080674
+22
+-164.047987682633
+32
+2455.6433200213
+13
+-824.724927080674
+23
+-164.047987682633
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+2455.6433200213
+11
+-813.095615905849
+21
+-451.304925633068
+31
+2455.6433200213
+12
+-776.873894119249
+22
+-321.791703197793
+32
+2455.6433200213
+13
+-776.873894119249
+23
+-321.791703197793
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.873894119249
+20
+-321.791703197793
+30
+2455.6433200213
+11
+-813.095615905849
+21
+-451.304925633068
+31
+2455.6433200213
+12
+-776.866198451135
+22
+-519.085398326623
+32
+2455.6433200213
+13
+-776.866198451135
+23
+-519.085398326623
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.873894119249
+20
+-321.791703197793
+30
+2455.6433200213
+11
+-776.866198451135
+21
+-519.085398326623
+31
+2455.6433200213
+12
+-699.168033082722
+22
+-467.169144021928
+32
+2455.6433200213
+13
+-699.168033082722
+23
+-467.169144021928
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+-776.866198451135
+21
+-519.085398326623
+31
+2455.6433200213
+12
+-765.568613945096
+22
+-532.851544877859
+32
+2455.6433200213
+13
+-765.568613945096
+23
+-532.851544877859
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+-765.568613945096
+21
+-532.851544877859
+31
+2455.6433200213
+12
+-705.689427437034
+22
+-605.814544747273
+32
+2455.6433200213
+13
+-705.689427437034
+23
+-605.814544747273
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+-705.689427437034
+21
+-605.814544747273
+31
+2455.6433200213
+12
+-660.670394770277
+22
+-660.670394770277
+32
+2455.6433200213
+13
+-660.670394770277
+23
+-660.670394770277
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+-660.670394770277
+21
+-660.670394770277
+31
+2455.6433200213
+12
+-594.593536632775
+22
+-594.593536632776
+32
+2455.6433200213
+13
+-594.593536632775
+23
+-594.593536632776
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+2455.6433200213
+11
+-660.670394770277
+21
+-660.670394770277
+31
+2455.6433200213
+12
+-642.325255137832
+22
+-675.725861781415
+32
+2455.6433200213
+13
+-642.325255137832
+23
+-675.725861781415
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+2455.6433200213
+11
+-642.325255137832
+21
+-675.725861781415
+31
+2455.6433200213
+12
+-569.385750357394
+22
+-735.585766368266
+32
+2455.6433200213
+13
+-569.385750357394
+23
+-735.585766368266
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+2455.6433200213
+11
+-569.385750357394
+21
+-735.585766368266
+31
+2455.6433200213
+12
+-467.169144021928
+22
+-699.168033082722
+32
+2455.6433200213
+13
+-467.169144021928
+23
+-699.168033082722
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+-569.385750357394
+21
+-735.585766368266
+31
+2455.6433200213
+12
+-519.085398326623
+22
+-776.866198451135
+32
+2455.6433200213
+13
+-519.085398326623
+23
+-776.866198451135
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+-519.085398326623
+21
+-776.866198451135
+31
+2455.6433200213
+12
+-492.93632885036
+22
+-790.843167280949
+32
+2455.6433200213
+13
+-492.93632885036
+23
+-790.843167280949
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+-492.93632885036
+21
+-790.843167280949
+31
+2455.6433200213
+12
+-409.740280777215
+22
+-835.312381443142
+32
+2455.6433200213
+13
+-409.740280777215
+23
+-835.312381443142
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+-409.740280777215
+21
+-835.312381443142
+31
+2455.6433200213
+12
+-321.791703197793
+22
+-776.873894119249
+32
+2455.6433200213
+13
+-321.791703197793
+23
+-776.873894119249
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+2455.6433200213
+11
+-409.740280777215
+21
+-835.312381443142
+31
+2455.6433200213
+12
+-357.552241131723
+22
+-863.207469797099
+32
+2455.6433200213
+13
+-357.552241131723
+23
+-863.207469797099
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+2455.6433200213
+11
+-357.552241131723
+21
+-863.207469797099
+31
+2455.6433200213
+12
+-323.520317728025
+22
+-873.53094089839
+32
+2455.6433200213
+13
+-323.520317728025
+23
+-873.53094089839
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+2455.6433200213
+11
+-323.520317728025
+21
+-873.53094089839
+31
+2455.6433200213
+12
+-233.261861254001
+22
+-900.910544337303
+32
+2455.6433200213
+13
+-233.261861254001
+23
+-900.910544337303
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+2455.6433200213
+11
+-233.261861254001
+21
+-900.910544337303
+31
+2455.6433200213
+12
+-164.047987682633
+22
+-824.724927080674
+32
+2455.6433200213
+13
+-164.047987682633
+23
+-824.724927080674
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+-233.261861254001
+21
+-900.910544337303
+31
+2455.6433200213
+12
+-182.278551827737
+22
+-916.376162171087
+32
+2455.6433200213
+13
+-182.278551827737
+23
+-916.376162171087
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+-182.278551827737
+21
+-916.376162171087
+31
+2455.6433200213
+12
+-141.006393478031
+22
+-920.441114966529
+32
+2455.6433200213
+13
+-141.006393478031
+23
+-920.441114966529
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+-141.006393478031
+21
+-920.441114966529
+31
+2455.6433200213
+12
+0.0
+22
+-840.882243605455
+32
+2455.6433200213
+13
+0.0
+23
+-840.882243605455
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+2455.6433200213
+11
+-141.006393478031
+21
+-920.441114966529
+31
+2455.6433200213
+12
+-47.1482978123039
+22
+-929.685330525077
+32
+2455.6433200213
+13
+-47.1482978123039
+23
+-929.685330525077
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+2455.6433200213
+11
+-47.1482978123039
+21
+-929.685330525077
+31
+2455.6433200213
+12
+1.80477854883065e-13
+22
+-934.329032542513
+32
+2455.6433200213
+13
+1.80477854883065e-13
+23
+-934.329032542513
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+2455.6433200213
+11
+1.80477854883065e-13
+21
+-934.329032542513
+31
+2455.6433200213
+12
+164.047987682633
+22
+-824.724927080674
+32
+2455.6433200213
+13
+164.047987682633
+23
+-824.724927080674
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+1.80477854883065e-13
+21
+-934.329032542513
+31
+2455.6433200213
+12
+47.148335412588
+22
+-929.685326821772
+32
+2455.6433200213
+13
+47.148335412588
+23
+-929.685326821772
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+47.148335412588
+21
+-929.685326821772
+31
+2455.6433200213
+12
+141.00638791784
+22
+-920.44111551416
+32
+2455.6433200213
+13
+141.00638791784
+23
+-920.44111551416
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+141.00638791784
+21
+-920.44111551416
+31
+2455.6433200213
+12
+182.278551827736
+22
+-916.376162171087
+32
+2455.6433200213
+13
+182.278551827736
+23
+-916.376162171087
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+2455.6433200213
+11
+182.278551827736
+21
+-916.376162171087
+31
+2455.6433200213
+12
+321.791703197793
+22
+-776.87389411925
+32
+2455.6433200213
+13
+321.791703197793
+23
+-776.87389411925
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+2455.6433200213
+11
+182.278551827736
+21
+-916.376162171087
+31
+2455.6433200213
+12
+233.261899594599
+22
+-900.91053270681
+32
+2455.6433200213
+13
+233.261899594599
+23
+-900.91053270681
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+2455.6433200213
+11
+233.261899594599
+21
+-900.91053270681
+31
+2455.6433200213
+12
+323.520353242804
+22
+-873.5309301251
+32
+2455.6433200213
+13
+323.520353242804
+23
+-873.5309301251
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+2455.6433200213
+11
+323.520353242804
+21
+-873.5309301251
+31
+2455.6433200213
+12
+467.169144021928
+22
+-699.168033082722
+32
+2455.6433200213
+13
+467.169144021928
+23
+-699.168033082722
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+323.520353242804
+21
+-873.5309301251
+31
+2455.6433200213
+12
+357.552241131722
+22
+-863.2074697971
+32
+2455.6433200213
+13
+357.552241131722
+23
+-863.2074697971
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+357.552241131722
+21
+-863.2074697971
+31
+2455.6433200213
+12
+409.740310523406
+22
+-835.312365543472
+32
+2455.6433200213
+13
+409.740310523406
+23
+-835.312365543472
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+409.740310523406
+21
+-835.312365543472
+31
+2455.6433200213
+12
+492.936359391337
+22
+-790.843150956456
+32
+2455.6433200213
+13
+492.936359391337
+23
+-790.843150956456
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2455.6433200213
+11
+492.936359391337
+21
+-790.843150956456
+31
+2455.6433200213
+12
+594.593536632776
+22
+-594.593536632776
+32
+2455.6433200213
+13
+594.593536632776
+23
+-594.593536632776
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+2455.6433200213
+11
+492.936359391337
+21
+-790.843150956456
+31
+2455.6433200213
+12
+519.085398326623
+22
+-776.866198451135
+32
+2455.6433200213
+13
+519.085398326623
+23
+-776.866198451135
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+2455.6433200213
+11
+519.085398326623
+21
+-776.866198451135
+31
+2455.6433200213
+12
+569.3857757708
+22
+-735.585745512023
+32
+2455.6433200213
+13
+569.3857757708
+23
+-735.585745512023
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+2455.6433200213
+11
+569.3857757708
+21
+-735.585745512023
+31
+2455.6433200213
+12
+642.325277330117
+22
+-675.725843568677
+32
+2455.6433200213
+13
+642.325277330117
+23
+-675.725843568677
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+2455.6433200213
+11
+642.325277330117
+21
+-675.725843568677
+31
+2455.6433200213
+12
+699.168033082722
+22
+-467.169144021928
+32
+2455.6433200213
+13
+699.168033082722
+23
+-467.169144021928
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+642.325277330117
+21
+-675.725843568677
+31
+2455.6433200213
+12
+660.670394770277
+22
+-660.670394770277
+32
+2455.6433200213
+13
+660.670394770277
+23
+-660.670394770277
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+660.670394770277
+21
+-660.670394770277
+31
+2455.6433200213
+12
+705.689442886146
+22
+-605.814525922476
+32
+2455.6433200213
+13
+705.689442886146
+23
+-605.814525922476
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+705.689442886146
+21
+-605.814525922476
+31
+2455.6433200213
+12
+776.87389411925
+22
+-321.791703197793
+32
+2455.6433200213
+13
+776.87389411925
+23
+-321.791703197793
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+2455.6433200213
+11
+705.689442886146
+21
+-605.814525922476
+31
+2455.6433200213
+12
+765.568628306957
+22
+-532.851527377882
+32
+2455.6433200213
+13
+765.568628306957
+23
+-532.851527377882
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+2455.6433200213
+11
+765.568628306957
+21
+-532.851527377882
+31
+2455.6433200213
+12
+776.866198451135
+22
+-519.085398326623
+32
+2455.6433200213
+13
+776.866198451135
+23
+-519.085398326623
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+2455.6433200213
+11
+776.866198451135
+21
+-519.085398326623
+31
+2455.6433200213
+12
+813.095624444942
+22
+-451.304909657549
+32
+2455.6433200213
+13
+813.095624444942
+23
+-451.304909657549
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+2455.6433200213
+11
+813.095624444942
+21
+-451.304909657549
+31
+2455.6433200213
+12
+824.724927080674
+22
+-164.047987682633
+32
+2455.6433200213
+13
+824.724927080674
+23
+-164.047987682633
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+824.724927080674
+20
+-164.047987682633
+30
+2455.6433200213
+11
+813.095624444942
+21
+-451.304909657549
+31
+2455.6433200213
+12
+857.607805429898
+22
+-368.028476312943
+32
+2455.6433200213
+13
+857.607805429898
+23
+-368.028476312943
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+824.724927080674
+20
+-164.047987682633
+30
+2455.6433200213
+11
+857.607805429898
+21
+-368.028476312943
+31
+2455.6433200213
+12
+840.882243605455
+22
+1.80477854883065e-13
+32
+2455.6433200213
+13
+840.882243605455
+23
+1.80477854883065e-13
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+840.882243605455
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+857.607805429898
+21
+-368.028476312943
+31
+2455.6433200213
+12
+934.329032542513
+22
+1.80477854883065e-13
+32
+2455.6433200213
+13
+934.329032542513
+23
+1.80477854883065e-13
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+934.329032542513
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+857.607805429898
+21
+-368.028476312943
+31
+2455.6433200213
+12
+863.207469797099
+22
+-357.552241131722
+32
+2455.6433200213
+13
+863.207469797099
+23
+-357.552241131722
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+934.329032542513
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+863.207469797099
+21
+-357.552241131722
+31
+2455.6433200213
+12
+887.227326571027
+22
+-278.369385106107
+32
+2455.6433200213
+13
+887.227326571027
+23
+-278.369385106107
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+934.329032542513
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+887.227326571027
+21
+-278.369385106107
+31
+2455.6433200213
+12
+914.651020883606
+22
+-187.965580500561
+32
+2455.6433200213
+13
+914.651020883606
+23
+-187.965580500561
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+934.329032542513
+20
+1.80477854883065e-13
+30
+2455.6433200213
+11
+914.651020883606
+21
+-187.965580500561
+31
+2455.6433200213
+12
+925.063958382437
+22
+-94.0698766010765
+32
+2455.6433200213
+13
+925.063958382437
+23
+-94.0698766010765
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+925.063958382437
+20
+-94.0698766010765
+30
+2455.6433200213
+11
+914.651020883606
+21
+-187.965580500561
+31
+2455.6433200213
+12
+916.376162171087
+22
+-182.278551827737
+32
+2455.6433200213
+13
+916.376162171087
+23
+-182.278551827737
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+288.287545076695
+20
+-1033.5656801692
+30
+2082.82163169725
+11
+210.691411720441
+21
+-1059.21725479392
+31
+2058.8118770109
+12
+287.457769982496
+22
+-1035.93043460251
+32
+2058.8118770109
+13
+287.457769982496
+23
+-1035.93043460251
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+210.691411720441
+20
+-1059.21725479392
+30
+2058.8118770109
+11
+288.287545076695
+21
+-1033.5656801692
+31
+2082.82163169725
+12
+209.215453044867
+22
+-1051.79710945546
+32
+2148.21162800104
+13
+209.215453044867
+23
+-1051.79710945546
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+288.287545076695
+21
+-1033.5656801692
+31
+2082.82163169725
+12
+320.792446313246
+22
+-1019.67559748903
+32
+2128.61109777939
+13
+320.792446313246
+23
+-1019.67559748903
+33
+2128.61109777939
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+320.792446313246
+21
+-1019.67559748903
+31
+2128.61109777939
+12
+349.642943907379
+22
+-1009.19889581502
+32
+2148.21162800104
+13
+349.642943907379
+23
+-1009.19889581502
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-997.519349743284
+30
+1708.93950189862
+11
+-47.1482966446679
+21
+-929.685330640079
+31
+1614.7610800213
+12
+1.80477854883065e-13
+22
+-934.329032542513
+32
+1614.7610800213
+13
+1.80477854883065e-13
+23
+-934.329032542513
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-47.1482966446679
+20
+-929.685330640079
+30
+1614.7610800213
+11
+1.80477854883065e-13
+21
+-997.519349743284
+31
+1708.93950189862
+12
+-141.006394822338
+22
+-920.441114834126
+32
+1614.7610800213
+13
+-141.006394822338
+23
+-920.441114834126
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-141.006394822338
+20
+-920.441114834126
+30
+1614.7610800213
+11
+-194.606371158736
+21
+-978.352295145615
+31
+1708.93950189862
+12
+-182.278551827737
+22
+-916.376162171087
+32
+1614.7610800213
+13
+-182.278551827737
+23
+-916.376162171087
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-194.606371158736
+20
+-978.352295145615
+30
+1708.93950189862
+11
+-141.006394822338
+21
+-920.441114834126
+31
+1614.7610800213
+12
+1.80477854883065e-13
+22
+-997.519349743284
+32
+1708.93950189862
+13
+1.80477854883065e-13
+23
+-997.519349743284
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-751.507544713982
+20
+-880.404127848991
+30
+2025.39393021379
+11
+-680.521947020029
+21
+-831.877044035484
+31
+2050.14904337117
+12
+-680.414811030127
+22
+-831.964968270127
+32
+2020.57508939225
+13
+-680.414811030127
+23
+-831.964968270127
+33
+2020.57508939225
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-680.521947020029
+20
+-831.877044035484
+30
+2050.14904337117
+11
+-751.507544713982
+21
+-880.404127848991
+31
+2025.39393021379
+12
+-751.210146881832
+22
+-880.075378254302
+32
+2048.54571267062
+13
+-751.210146881832
+23
+-880.075378254302
+33
+2048.54571267062
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+30.3548842506176
+20
+-1076.23680115831
+30
+2002.82389255955
+11
+23.5350452913723
+21
+-976.438072820957
+31
+1997.22699536883
+12
+23.5350452913723
+22
+-1076.43485544616
+32
+1997.22699536883
+13
+23.5350452913723
+23
+-1076.43485544616
+33
+1997.22699536883
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+23.5350452913723
+20
+-976.438072820957
+30
+1997.22699536883
+11
+30.3548842506176
+21
+-1076.23680115831
+31
+2002.82389255955
+12
+30.3548842506176
+22
+-976.101409846015
+32
+2002.82389255955
+13
+30.3548842506176
+23
+-976.101409846015
+33
+2002.82389255955
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+914.026066884025
+11
+1.80477854883065e-13
+21
+-849.217148276931
+31
+855.37186879426
+12
+165.674046918965
+22
+-832.899678896021
+32
+855.37186879426
+13
+165.674046918965
+23
+-832.899678896021
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-849.217148276931
+30
+855.37186879426
+11
+164.047987682633
+21
+-824.724927080674
+31
+914.026066884025
+12
+0.0
+22
+-840.882243605455
+32
+914.026066884025
+13
+0.0
+23
+-840.882243605455
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+165.674046918965
+20
+-832.899678896021
+30
+855.37186879426
+11
+1.80477854883065e-13
+21
+-847.505736434059
+31
+796.153149972084
+12
+165.340167031437
+22
+-831.221151351825
+32
+796.153149972084
+13
+165.340167031437
+23
+-831.221151351825
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-847.505736434059
+30
+796.153149972084
+11
+165.674046918965
+21
+-832.899678896021
+31
+855.37186879426
+12
+1.80477854883065e-13
+22
+-849.217148276931
+32
+855.37186879426
+13
+1.80477854883065e-13
+23
+-849.217148276931
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+829.407026995336
+20
+-554.192057578438
+30
+1708.93950189862
+11
+964.515951276275
+21
+-399.515588143821
+31
+1812.39759571907
+12
+868.04142298445
+22
+-580.006735667279
+32
+1812.39759571907
+13
+868.04142298445
+23
+-580.006735667279
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+964.515951276275
+20
+-399.515588143821
+30
+1812.39759571907
+11
+829.407026995336
+21
+-554.192057578438
+31
+1708.93950189862
+12
+921.587710511789
+22
+-381.734128610352
+32
+1708.93950189862
+13
+921.587710511789
+23
+-381.734128610352
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+1812.39759571907
+11
+990.771212819308
+21
+-410.390873558597
+31
+1922.19277204157
+12
+891.670534105407
+22
+-595.795202951324
+32
+1922.19277204157
+13
+891.670534105407
+23
+-595.795202951324
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+990.771212819308
+20
+-410.390873558597
+30
+1922.19277204157
+11
+868.04142298445
+21
+-580.006735667279
+31
+1812.39759571907
+12
+964.515951276275
+22
+-399.515588143821
+32
+1812.39759571907
+13
+964.515951276275
+23
+-399.515588143821
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+2258.00680432354
+11
+705.352696568272
+21
+-705.352696568272
+31
+2361.46489814399
+12
+738.20854961057
+22
+-738.208549610569
+32
+2258.00680432354
+13
+738.20854961057
+23
+-738.208549610569
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+705.352696568272
+20
+-705.352696568272
+30
+2361.46489814399
+11
+868.04142298445
+21
+-580.006735667279
+31
+2258.00680432354
+12
+829.407026995336
+22
+-554.192057578438
+32
+2361.46489814399
+13
+829.407026995336
+23
+-554.192057578438
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+829.407026995336
+20
+-554.192057578438
+30
+2361.46489814399
+11
+660.670394770277
+21
+-660.670394770277
+31
+2455.6433200213
+12
+705.352696568272
+22
+-705.352696568272
+32
+2361.46489814399
+13
+705.352696568272
+23
+-705.352696568272
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.670394770277
+20
+-660.670394770277
+30
+2455.6433200213
+11
+829.407026995336
+21
+-554.192057578438
+31
+2361.46489814399
+12
+705.689442886146
+22
+-605.814525922476
+32
+2455.6433200213
+13
+705.689442886146
+23
+-605.814525922476
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+705.689442886146
+20
+-605.814525922476
+30
+2455.6433200213
+11
+829.407026995336
+21
+-554.192057578438
+31
+2361.46489814399
+12
+765.568628306957
+22
+-532.851527377882
+32
+2455.6433200213
+13
+765.568628306957
+23
+-532.851527377882
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+765.568628306957
+20
+-532.851527377882
+30
+2455.6433200213
+11
+829.407026995336
+21
+-554.192057578438
+31
+2361.46489814399
+12
+776.866198451135
+22
+-519.085398326623
+32
+2455.6433200213
+13
+776.866198451135
+23
+-519.085398326623
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.866198451135
+20
+-519.085398326623
+30
+1614.7610800213
+11
+921.587710511789
+21
+-381.734128610352
+31
+1708.93950189862
+12
+829.407026995336
+22
+-554.192057578438
+32
+1708.93950189862
+13
+829.407026995336
+23
+-554.192057578438
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+921.587710511789
+20
+-381.734128610352
+30
+1708.93950189862
+11
+776.866198451135
+21
+-519.085398326623
+31
+1614.7610800213
+12
+813.09562491145
+22
+-451.304908784773
+32
+1614.7610800213
+13
+813.09562491145
+23
+-451.304908784773
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+921.587710511789
+20
+-381.734128610352
+30
+1708.93950189862
+11
+813.09562491145
+21
+-451.304908784773
+31
+1614.7610800213
+12
+857.607805708123
+22
+-368.02847579242
+32
+1614.7610800213
+13
+857.607805708123
+23
+-368.02847579242
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+921.587710511789
+20
+-381.734128610352
+30
+1708.93950189862
+11
+857.607805708123
+21
+-368.02847579242
+31
+1614.7610800213
+12
+863.207469797099
+22
+-357.552241131722
+32
+1614.7610800213
+13
+863.207469797099
+23
+-357.552241131722
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+1241.03564002131
+11
+621.482696406623
+21
+-415.26146157539
+31
+1427.8983600213
+12
+699.168033082722
+22
+-467.169144021928
+32
+1241.03564002131
+13
+699.168033082722
+23
+-467.169144021928
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+621.482696406623
+20
+-415.26146157539
+30
+1427.8983600213
+11
+776.87389411925
+21
+-321.791703197793
+31
+1241.03564002131
+12
+690.554572920556
+22
+-286.037069662455
+32
+1427.8983600213
+13
+690.554572920556
+23
+-286.037069662455
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+820.033554718597
+20
+-339.669019965462
+30
+1427.8983600213
+11
+660.325364744673
+21
+-441.215302798659
+31
+1614.7610800213
+12
+738.010701420772
+22
+-493.122985245198
+32
+1427.8983600213
+13
+738.010701420772
+23
+-493.122985245198
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.325364744673
+20
+-441.215302798659
+30
+1614.7610800213
+11
+820.033554718597
+21
+-339.669019965462
+31
+1427.8983600213
+12
+733.714233519903
+22
+-303.914386430124
+32
+1614.7610800213
+13
+733.714233519903
+23
+-303.914386430124
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-784.019466456977
+30
+631.979456702016
+11
+-145.428823687577
+21
+-731.120068617964
+31
+587.016306884026
+12
+0.0
+22
+-745.443557551535
+32
+587.016306884026
+13
+0.0
+23
+-745.443557551535
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-145.428823687577
+20
+-731.120068617964
+30
+587.016306884026
+11
+0.0
+21
+-784.019466456977
+31
+631.979456702016
+12
+-152.954610178005
+22
+-768.954752250597
+32
+631.979456702016
+13
+-152.954610178005
+23
+-768.954752250597
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-357.552241131723
+20
+-863.207469797099
+30
+2455.6433200213
+11
+-554.192057578438
+21
+-829.407026995335
+31
+2361.46489814399
+12
+-381.734128610353
+22
+-921.587710511788
+32
+2361.46489814399
+13
+-381.734128610353
+23
+-921.587710511788
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.192057578438
+20
+-829.407026995335
+30
+2361.46489814399
+11
+-357.552241131723
+21
+-863.207469797099
+31
+2455.6433200213
+12
+-519.085398326623
+22
+-776.866198451135
+32
+2455.6433200213
+13
+-519.085398326623
+23
+-776.866198451135
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-519.085398326623
+20
+-776.866198451135
+30
+2455.6433200213
+11
+-357.552241131723
+21
+-863.207469797099
+31
+2455.6433200213
+12
+-409.740280777215
+22
+-835.312381443142
+32
+2455.6433200213
+13
+-409.740280777215
+23
+-835.312381443142
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-519.085398326623
+20
+-776.866198451135
+30
+2455.6433200213
+11
+-409.740280777215
+21
+-835.312381443142
+31
+2455.6433200213
+12
+-492.93632885036
+22
+-790.843167280949
+32
+2455.6433200213
+13
+-492.93632885036
+23
+-790.843167280949
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+849.217148276931
+20
+1.80477854883065e-13
+30
+855.37186879426
+11
+824.724927080674
+21
+-164.047987682633
+31
+914.026066884025
+12
+832.899678896021
+22
+-165.674046918965
+32
+855.37186879426
+13
+832.899678896021
+23
+-165.674046918965
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+824.724927080674
+20
+-164.047987682633
+30
+914.026066884025
+11
+849.217148276931
+21
+1.80477854883065e-13
+31
+855.37186879426
+12
+840.882243605455
+22
+1.80477854883065e-13
+32
+914.026066884025
+13
+840.882243605455
+23
+1.80477854883065e-13
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1072.40303302985
+20
+1.80477854883065e-13
+30
+2148.21162800104
+11
+1023.92467246733
+21
+-203.671280618918
+31
+2258.00680432354
+12
+1051.79710945546
+22
+-209.215453044867
+32
+2148.21162800104
+13
+1051.79710945546
+23
+-209.215453044867
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1023.92467246733
+20
+-203.671280618918
+30
+2258.00680432354
+11
+1072.40303302985
+21
+1.80477854883065e-13
+31
+2148.21162800104
+12
+1043.98454271904
+22
+1.80477854883065e-13
+32
+2258.00680432354
+13
+1043.98454271904
+23
+1.80477854883065e-13
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-951.073041235167
+30
+1878.29564871262
+11
+180.675224578544
+21
+-917.447181233325
+31
+1850.69961858573
+12
+180.675224578544
+22
+-951.073041235166
+32
+1878.29564871262
+13
+180.675224578544
+23
+-951.073041235166
+33
+1878.29564871262
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-917.447181233325
+30
+1850.69961858573
+11
+653.750224578544
+21
+-951.073041235167
+31
+1878.29564871262
+12
+653.750224578544
+22
+-917.447181233325
+32
+1850.69961858573
+13
+653.750224578544
+23
+-917.447181233325
+33
+1850.69961858573
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-324.326404167689
+20
+-782.993203577332
+30
+796.153149972084
+11
+-464.344143695271
+21
+-694.940121314314
+31
+738.078199114136
+12
+-319.845809128627
+22
+-772.176090266528
+32
+738.078199114136
+13
+-319.845809128627
+23
+-772.176090266528
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-464.344143695271
+20
+-694.940121314314
+30
+738.078199114136
+11
+-324.326404167689
+21
+-782.993203577332
+31
+796.153149972084
+12
+-470.848959476119
+22
+-704.67526609701
+32
+796.153149972084
+13
+-470.848959476119
+23
+-704.67526609701
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-324.981333125909
+20
+-784.574341950658
+30
+855.37186879426
+11
+-470.848959476119
+21
+-704.67526609701
+31
+796.153149972084
+12
+-324.326404167689
+22
+-782.993203577332
+32
+796.153149972084
+13
+-324.326404167689
+23
+-782.993203577332
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-470.848959476119
+20
+-704.67526609701
+30
+796.153149972084
+11
+-324.981333125909
+21
+-784.574341950658
+31
+855.37186879426
+12
+-471.799768952456
+22
+-706.098253038492
+32
+855.37186879426
+13
+-471.799768952456
+23
+-706.098253038492
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.87389411925
+30
+914.026066884025
+11
+-471.799768952456
+21
+-706.098253038492
+31
+855.37186879426
+12
+-324.981333125909
+22
+-784.574341950658
+32
+855.37186879426
+13
+-324.981333125909
+23
+-784.574341950658
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-471.799768952456
+20
+-706.098253038492
+30
+855.37186879426
+11
+-321.791703197793
+21
+-776.87389411925
+31
+914.026066884025
+12
+-467.169144021929
+22
+-699.168033082722
+32
+914.026066884025
+13
+-467.169144021929
+23
+-699.168033082722
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+914.026066884025
+11
+-324.981333125909
+21
+-784.574341950658
+31
+855.37186879426
+12
+-165.674046918965
+22
+-832.899678896021
+32
+855.37186879426
+13
+-165.674046918965
+23
+-832.899678896021
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-324.981333125909
+20
+-784.574341950658
+30
+855.37186879426
+11
+-164.047987682633
+21
+-824.724927080674
+31
+914.026066884025
+12
+-321.791703197793
+22
+-776.87389411925
+32
+914.026066884025
+13
+-321.791703197793
+23
+-776.87389411925
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-1011.8021195433
+30
+1991.91176299638
+11
+653.750224578544
+21
+-999.174771652236
+31
+1950.28497564898
+12
+180.675224578544
+22
+-999.174771652236
+32
+1950.28497564898
+13
+180.675224578544
+23
+-999.174771652236
+33
+1950.28497564898
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-999.174771652236
+30
+1950.28497564898
+11
+180.675224578544
+21
+-1011.8021195433
+31
+1991.91176299638
+12
+653.750224578544
+22
+-1011.8021195433
+32
+1991.91176299638
+13
+653.750224578544
+23
+-1011.8021195433
+33
+1991.91176299638
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-595.795202951324
+20
+-891.670534105406
+30
+2148.21162800104
+11
+-644.327893757466
+21
+-861.580735902195
+31
+2058.8118770109
+12
+-599.99837764929
+22
+-897.961029579872
+32
+2058.8118770109
+13
+-599.99837764929
+23
+-897.961029579872
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-644.327893757466
+20
+-861.580735902195
+30
+2058.8118770109
+11
+-595.795202951324
+21
+-891.670534105406
+31
+2148.21162800104
+12
+-644.282480658799
+22
+-861.555930289753
+32
+2059.38164426315
+13
+-644.282480658799
+23
+-861.555930289753
+33
+2059.38164426315
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-644.282480658799
+20
+-861.555930289753
+30
+2059.38164426315
+11
+-595.795202951324
+21
+-891.670534105406
+31
+2148.21162800104
+12
+-655.637457605706
+22
+-847.372595440649
+32
+2104.03168141582
+13
+-655.637457605706
+23
+-847.372595440649
+33
+2104.03168141582
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-655.637457605706
+20
+-847.372595440649
+30
+2104.03168141582
+11
+-595.795202951324
+21
+-891.670534105406
+31
+2148.21162800104
+12
+-680.351354626835
+22
+-823.413171149779
+32
+2137.7839549476
+13
+-680.351354626835
+23
+-823.413171149779
+33
+2137.7839549476
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-680.351354626835
+20
+-823.413171149779
+30
+2137.7839549476
+11
+-595.795202951324
+21
+-891.670534105406
+31
+2148.21162800104
+12
+-700.811796716974
+22
+-805.485642916867
+32
+2148.21162800104
+13
+-700.811796716974
+23
+-805.485642916867
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+194.606371158736
+20
+-978.352295145615
+30
+1708.93950189862
+11
+141.006388747634
+21
+-920.441115432432
+31
+1614.7610800213
+12
+182.278551827736
+22
+-916.376162171087
+32
+1614.7610800213
+13
+182.278551827736
+23
+-916.376162171087
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+141.006388747634
+20
+-920.441115432432
+30
+1614.7610800213
+11
+194.606371158736
+21
+-978.352295145615
+31
+1708.93950189862
+12
+47.1483359530928
+22
+-929.685326768537
+32
+1614.7610800213
+13
+47.1483359530928
+23
+-929.685326768537
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+47.1483359530928
+20
+-929.685326768537
+30
+1614.7610800213
+11
+1.80477854883065e-13
+21
+-997.519349743284
+31
+1708.93950189862
+12
+1.80477854883065e-13
+22
+-934.329032542513
+32
+1614.7610800213
+13
+1.80477854883065e-13
+23
+-934.329032542513
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-997.519349743284
+30
+1708.93950189862
+11
+47.1483359530928
+21
+-929.685326768537
+31
+1614.7610800213
+12
+194.606371158736
+22
+-978.352295145615
+32
+1708.93950189862
+13
+194.606371158736
+23
+-978.352295145615
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-43.0469725205791
+20
+-975.725342330674
+30
+2017.42442965997
+11
+-45.6079918995535
+21
+-1075.47655248308
+31
+2025.86697911698
+12
+-43.0469725205787
+22
+-1075.72879087574
+32
+2017.42442965997
+13
+-43.0469725205787
+23
+-1075.72879087574
+33
+2017.42442965997
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-45.6079918995535
+20
+-1075.47655248308
+30
+2025.86697911698
+11
+-43.0469725205791
+21
+-975.725342330674
+31
+2017.42442965997
+12
+-45.6079918995534
+22
+-975.978478371127
+32
+2025.86697911698
+13
+-45.6079918995534
+23
+-975.978478371127
+33
+2025.86697911698
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+921.587710511789
+20
+-381.734128610352
+30
+2361.46489814399
+11
+776.866198451135
+21
+-519.085398326623
+31
+2455.6433200213
+12
+829.407026995336
+22
+-554.192057578438
+32
+2361.46489814399
+13
+829.407026995336
+23
+-554.192057578438
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.866198451135
+20
+-519.085398326623
+30
+2455.6433200213
+11
+921.587710511789
+21
+-381.734128610352
+31
+2361.46489814399
+12
+813.095624444942
+22
+-451.304909657549
+32
+2455.6433200213
+13
+813.095624444942
+23
+-451.304909657549
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+813.095624444942
+20
+-451.304909657549
+30
+2455.6433200213
+11
+921.587710511789
+21
+-381.734128610352
+31
+2361.46489814399
+12
+857.607805429898
+22
+-368.028476312943
+32
+2455.6433200213
+13
+857.607805429898
+23
+-368.028476312943
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+857.607805429898
+20
+-368.028476312943
+30
+2455.6433200213
+11
+921.587710511789
+21
+-381.734128610352
+31
+2361.46489814399
+12
+863.207469797099
+22
+-357.552241131722
+32
+2455.6433200213
+13
+863.207469797099
+23
+-357.552241131722
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-798.491399420167
+20
+-250.528338641286
+30
+2549.0746800213
+11
+-776.873894119249
+21
+-321.791703197793
+31
+2455.6433200213
+12
+-776.87389411925
+22
+-321.791703197793
+32
+2549.0746800213
+13
+-776.87389411925
+23
+-321.791703197793
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.873894119249
+20
+-321.791703197793
+30
+2455.6433200213
+11
+-798.491399420167
+21
+-250.528338641286
+31
+2549.0746800213
+12
+-824.724927080674
+22
+-164.047987682633
+32
+2455.6433200213
+13
+-824.724927080674
+23
+-164.047987682633
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+2455.6433200213
+11
+-798.491399420167
+21
+-250.528338641286
+31
+2549.0746800213
+12
+-823.172319072743
+22
+-169.166250356441
+32
+2549.0746800213
+13
+-823.172319072743
+23
+-169.166250356441
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+2455.6433200213
+11
+-823.172319072743
+21
+-169.166250356441
+31
+2549.0746800213
+12
+-824.724927080674
+22
+-164.047987682633
+32
+2549.0746800213
+13
+-824.724927080674
+23
+-164.047987682633
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-997.119327169824
+30
+2170.81091140737
+11
+320.792446313246
+21
+-1019.67559748903
+31
+2128.61109777939
+12
+653.750224578544
+22
+-1019.67559748903
+32
+2128.61109777939
+13
+653.750224578544
+23
+-1019.67559748903
+33
+2128.61109777939
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+320.792446313246
+20
+-1019.67559748903
+30
+2128.61109777939
+11
+653.750224578544
+21
+-997.119327169824
+31
+2170.81091140737
+12
+349.642943907379
+22
+-1009.19889581502
+32
+2148.21162800104
+13
+349.642943907379
+23
+-1009.19889581502
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+349.642943907379
+20
+-1009.19889581502
+30
+2148.21162800104
+11
+653.750224578544
+21
+-997.119327169824
+31
+2170.81091140737
+12
+369.410361108008
+22
+-997.119327169824
+32
+2170.81091140737
+13
+369.410361108008
+23
+-997.119327169824
+33
+2170.81091140737
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-700.735203605455
+30
+1241.03564002131
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1054.1729200213
+12
+0.0
+22
+-794.166563605455
+32
+1054.1729200213
+13
+0.0
+23
+-794.166563605455
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-154.93421062823
+20
+-778.906875772646
+30
+1054.1729200213
+11
+0.0
+21
+-700.735203605455
+31
+1241.03564002131
+12
+-136.706656519425
+22
+-687.270773156591
+32
+1241.03564002131
+13
+-136.706656519425
+23
+-687.270773156591
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+914.026066884025
+11
+-250.282436127117
+21
+-604.235251721862
+31
+1054.1729200213
+12
+-321.791703197793
+22
+-776.87389411925
+32
+914.026066884025
+13
+-321.791703197793
+23
+-776.87389411925
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-250.282436127117
+20
+-604.235251721862
+30
+1054.1729200213
+11
+-164.047987682633
+21
+-824.724927080674
+31
+914.026066884025
+12
+-127.592879465023
+22
+-641.452721848564
+32
+1054.1729200213
+13
+-127.592879465023
+23
+-641.452721848564
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-136.706656519425
+20
+-687.270773156591
+30
+1241.03564002131
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1054.1729200213
+12
+-154.93421062823
+22
+-778.906875772646
+32
+1054.1729200213
+13
+-154.93421062823
+23
+-778.906875772646
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-303.914386430124
+20
+-733.714233519903
+30
+1054.1729200213
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1241.03564002131
+12
+-268.159752894786
+22
+-647.394912321209
+32
+1241.03564002131
+13
+-268.159752894786
+23
+-647.394912321209
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-145.820433573828
+20
+-733.088824464619
+30
+1427.8983600213
+11
+-321.791703197793
+21
+-776.873894119249
+31
+1241.03564002131
+12
+-164.047987682633
+22
+-824.724927080674
+32
+1241.03564002131
+13
+-164.047987682633
+23
+-824.724927080674
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+1241.03564002131
+11
+-145.820433573828
+21
+-733.088824464619
+31
+1427.8983600213
+12
+-286.037069662455
+22
+-690.554572920556
+32
+1427.8983600213
+13
+-286.037069662455
+23
+-690.554572920556
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+731.773963185201
+21
+-406.167739356189
+31
+2549.0746800213
+12
+699.168033082722
+22
+-467.169144021929
+32
+2549.0746800213
+13
+699.168033082722
+23
+-467.169144021929
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+731.773963185201
+20
+-406.167739356189
+30
+2549.0746800213
+11
+699.168033082722
+21
+-467.169144021928
+31
+2455.6433200213
+12
+776.87389411925
+22
+-321.791703197793
+32
+2455.6433200213
+13
+776.87389411925
+23
+-321.791703197793
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+731.773963185201
+20
+-406.167739356189
+30
+2549.0746800213
+11
+776.87389411925
+21
+-321.791703197793
+31
+2455.6433200213
+12
+771.834245650684
+22
+-331.220222324155
+32
+2549.0746800213
+13
+771.834245650684
+23
+-331.220222324155
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+771.834245650684
+20
+-331.220222324155
+30
+2549.0746800213
+11
+776.87389411925
+21
+-321.791703197793
+31
+2455.6433200213
+12
+776.87389411925
+22
+-321.791703197793
+32
+2549.0746800213
+13
+776.87389411925
+23
+-321.791703197793
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-847.505736434059
+30
+796.153149972084
+11
+-163.055979488767
+21
+-819.73776511114
+31
+738.078199114136
+12
+1.80477854883065e-13
+22
+-835.797377356766
+32
+738.078199114136
+13
+1.80477854883065e-13
+23
+-835.797377356766
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-163.055979488767
+20
+-819.73776511114
+30
+738.078199114136
+11
+1.80477854883065e-13
+21
+-847.505736434059
+31
+796.153149972084
+12
+-165.340167031437
+22
+-831.221151351825
+32
+796.153149972084
+13
+-165.340167031437
+23
+-831.221151351825
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-46.4727423170739
+20
+-976.418879754098
+30
+2034.64693744883
+11
+-46.4180537270787
+21
+-976.457504352767
+31
+2035.20220002131
+12
+-46.4727423170739
+22
+-1075.39138200091
+32
+2034.64693744883
+13
+-46.4727423170739
+23
+-1075.39138200091
+33
+2034.64693744883
+70
+2
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-46.4727423170739
+20
+-1075.39138200091
+30
+2034.64693744883
+11
+-45.6079918995534
+21
+-976.044954856512
+31
+2043.42689578067
+12
+-45.6079918995532
+22
+-1075.47655248308
+32
+2043.42689578067
+13
+-45.6079918995532
+23
+-1075.47655248308
+33
+2043.42689578067
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-45.6079918995534
+20
+-976.044954856512
+30
+2043.42689578067
+11
+-46.4727423170739
+21
+-1075.39138200091
+31
+2034.64693744883
+12
+-46.4180537270787
+22
+-976.457504352767
+32
+2035.20220002131
+13
+-46.4180537270787
+23
+-976.457504352767
+33
+2035.20220002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-814.429823327873
+30
+682.822310520627
+11
+-152.954610178005
+21
+-768.954752250597
+31
+631.979456702016
+12
+0.0
+22
+-784.019466456977
+32
+631.979456702016
+13
+0.0
+23
+-784.019466456977
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-152.954610178005
+20
+-768.954752250597
+30
+631.979456702016
+11
+0.0
+21
+-814.429823327873
+31
+682.822310520627
+12
+-158.887376492573
+22
+-798.780782641381
+32
+682.822310520627
+13
+-158.887376492573
+23
+-798.780782641381
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-835.797377356766
+30
+738.078199114136
+11
+-158.887376492573
+21
+-798.780782641381
+31
+682.822310520627
+12
+0.0
+22
+-814.429823327873
+32
+682.822310520627
+13
+0.0
+23
+-814.429823327873
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-158.887376492573
+20
+-798.780782641381
+30
+682.822310520627
+11
+1.80477854883065e-13
+21
+-835.797377356766
+31
+738.078199114136
+12
+-163.055979488767
+22
+-819.73776511114
+32
+738.078199114136
+13
+-163.055979488767
+23
+-819.73776511114
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-868.04142298445
+20
+-580.00673566728
+30
+1812.39759571907
+11
+-705.352696568271
+21
+-705.352696568271
+31
+1708.93950189862
+12
+-738.20854961057
+22
+-738.20854961057
+32
+1812.39759571907
+13
+-738.20854961057
+23
+-738.20854961057
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.352696568271
+20
+-705.352696568271
+30
+1708.93950189862
+11
+-868.04142298445
+21
+-580.00673566728
+31
+1812.39759571907
+12
+-829.407026995335
+22
+-554.192057578438
+32
+1708.93950189862
+13
+-829.407026995335
+23
+-554.192057578438
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1038.25578712258
+30
+2035.20217666346
+11
+288.287531523413
+21
+-1033.5656801692
+31
+1987.58272162968
+12
+653.750224578544
+22
+-1033.56568016919
+32
+1987.58272162967
+13
+653.750224578544
+23
+-1033.56568016919
+33
+1987.58272162967
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+288.287531523413
+20
+-1033.5656801692
+30
+1987.58272162968
+11
+653.750224578544
+21
+-1038.25578712258
+31
+2035.20217666346
+12
+287.457754814725
+22
+-1035.93043920361
+32
+2011.5925230317
+13
+287.457754814725
+23
+-1035.93043920361
+33
+2011.5925230317
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+287.457754814725
+20
+-1035.93043920361
+30
+2011.5925230317
+11
+653.750224578544
+21
+-1038.25578712258
+31
+2035.20217666346
+12
+279.792110043812
+22
+-1038.25578712258
+32
+2035.20217666346
+13
+279.792110043812
+23
+-1038.25578712258
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+831.221151351825
+20
+-165.340167031437
+30
+796.153149972084
+11
+849.217148276931
+21
+1.80477854883065e-13
+31
+855.37186879426
+12
+832.899678896021
+22
+-165.674046918965
+32
+855.37186879426
+13
+832.899678896021
+23
+-165.674046918965
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+849.217148276931
+20
+1.80477854883065e-13
+30
+855.37186879426
+11
+831.221151351825
+21
+-165.340167031437
+31
+796.153149972084
+12
+847.505736434059
+22
+1.80477854883065e-13
+32
+796.153149972084
+13
+847.505736434059
+23
+1.80477854883065e-13
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+475.358481968201
+20
+-929.775248028225
+30
+1832.24936277796
+11
+653.750224578544
+21
+-966.763694030251
+31
+1862.60499591753
+12
+422.745208264425
+22
+-966.763694030251
+32
+1862.60499591753
+13
+422.745208264425
+23
+-966.763694030251
+33
+1862.60499591753
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-966.763694030251
+30
+1862.60499591753
+11
+475.358481968201
+21
+-929.775248028225
+31
+1832.24936277796
+12
+653.750224578544
+22
+-929.775248028225
+32
+1832.24936277796
+13
+653.750224578544
+23
+-929.775248028225
+33
+1832.24936277796
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1038.25578712258
+30
+2035.20217666346
+11
+287.457769982496
+21
+-1035.93043460251
+31
+2058.8118770109
+12
+279.792110043812
+22
+-1038.25578712258
+32
+2035.20217666346
+13
+279.792110043812
+23
+-1038.25578712258
+33
+2035.20217666346
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+287.457769982496
+20
+-1035.93043460251
+30
+2058.8118770109
+11
+653.750224578544
+21
+-1038.25578712258
+31
+2035.20217666346
+12
+653.750224578544
+22
+-1033.56568016919
+32
+2082.82163169725
+13
+653.750224578544
+23
+-1033.56568016919
+33
+2082.82163169725
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+287.457769982496
+20
+-1035.93043460251
+30
+2058.8118770109
+11
+653.750224578544
+21
+-1033.56568016919
+31
+2082.82163169725
+12
+288.287545076695
+22
+-1033.5656801692
+32
+2082.82163169725
+13
+288.287545076695
+23
+-1033.5656801692
+33
+2082.82163169725
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-917.447181233325
+30
+2219.70473474119
+11
+180.675224578544
+21
+-951.073041235166
+31
+2192.10870461431
+12
+180.675224578544
+22
+-917.447181233325
+32
+2219.70473474119
+13
+180.675224578544
+23
+-917.447181233325
+33
+2219.70473474119
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-951.073041235166
+30
+2192.10870461431
+11
+653.750224578544
+21
+-917.447181233325
+31
+2219.70473474119
+12
+653.750224578544
+22
+-951.073041235167
+32
+2192.10870461431
+13
+653.750224578544
+23
+-951.073041235167
+33
+2192.10870461431
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+286.037069662455
+20
+-690.554572920556
+30
+1427.8983600213
+11
+164.047987682633
+21
+-824.724927080674
+31
+1241.03564002131
+12
+321.791703197793
+22
+-776.873894119249
+32
+1241.03564002131
+13
+321.791703197793
+23
+-776.873894119249
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+1241.03564002131
+11
+286.037069662455
+21
+-690.554572920556
+31
+1427.8983600213
+12
+145.820433573828
+22
+-733.088824464618
+32
+1427.8983600213
+13
+145.820433573828
+23
+-733.088824464618
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+840.882243605455
+20
+1.80477854883065e-13
+30
+1241.03564002131
+11
+733.088824464618
+21
+-145.820433573828
+31
+1427.8983600213
+12
+824.724927080674
+22
+-164.047987682633
+32
+1241.03564002131
+13
+824.724927080674
+23
+-164.047987682633
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+733.088824464618
+20
+-145.820433573828
+30
+1427.8983600213
+11
+840.882243605455
+21
+1.80477854883065e-13
+31
+1241.03564002131
+12
+747.450883605455
+22
+1.80477854883065e-13
+32
+1427.8983600213
+13
+747.450883605455
+23
+1.80477854883065e-13
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+752.435044439405
+20
+-311.668800211604
+30
+682.822310520627
+11
+819.73776511114
+21
+-163.055979488767
+31
+738.078199114136
+12
+772.176090266528
+22
+-319.845809128627
+32
+738.078199114136
+13
+772.176090266528
+23
+-319.845809128627
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+819.73776511114
+20
+-163.055979488767
+30
+738.078199114136
+11
+752.435044439405
+21
+-311.668800211604
+31
+682.822310520627
+12
+798.780782641381
+22
+-158.887376492573
+32
+682.822310520627
+13
+798.780782641381
+23
+-158.887376492573
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-849.217148276931
+20
+3.60955709766131e-13
+30
+855.37186879426
+11
+-831.221151351825
+21
+-165.340167031437
+31
+796.153149972084
+12
+-832.899678896021
+22
+-165.674046918964
+32
+855.37186879426
+13
+-832.899678896021
+23
+-165.674046918964
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-831.221151351825
+20
+-165.340167031437
+30
+796.153149972084
+11
+-849.217148276931
+21
+3.60955709766131e-13
+31
+855.37186879426
+12
+-847.505736434059
+22
+1.80477854883065e-13
+32
+796.153149972084
+13
+-847.505736434059
+23
+1.80477854883065e-13
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+1922.19277204157
+11
+1.80477854883065e-13
+21
+-1043.98454271904
+31
+1812.39759571907
+12
+203.671280618918
+22
+-1023.92467246733
+32
+1812.39759571907
+13
+203.671280618918
+23
+-1023.92467246733
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1043.98454271904
+30
+1812.39759571907
+11
+209.215453044867
+21
+-1051.79710945546
+31
+1922.19277204157
+12
+1.80477854883065e-13
+22
+-1072.40303302985
+32
+1922.19277204157
+13
+1.80477854883065e-13
+23
+-1072.40303302985
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-917.447181233325
+30
+1850.69961858573
+11
+180.675224578544
+21
+-879.083714298798
+31
+1830.19391829555
+12
+180.675224578544
+22
+-917.447181233325
+32
+1850.69961858573
+13
+180.675224578544
+23
+-917.447181233325
+33
+1850.69961858573
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-879.083714298798
+30
+1830.19391829555
+11
+653.750224578544
+21
+-917.447181233325
+31
+1850.69961858573
+12
+653.750224578544
+22
+-879.083714298799
+32
+1830.19391829555
+13
+653.750224578544
+23
+-879.083714298799
+33
+1830.19391829555
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+2549.0746800213
+11
+321.791703197793
+21
+-776.87389411925
+31
+2455.6433200213
+12
+467.169144021928
+22
+-699.168033082722
+32
+2455.6433200213
+13
+467.169144021928
+23
+-699.168033082722
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+2455.6433200213
+11
+467.169144021928
+21
+-699.168033082722
+31
+2549.0746800213
+12
+321.791703197793
+22
+-776.87389411925
+32
+2549.0746800213
+13
+321.791703197793
+23
+-776.87389411925
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+2549.0746800213
+11
+467.169144021928
+21
+-699.168033082722
+31
+2549.0746800213
+12
+443.635403824213
+22
+-711.747079288974
+32
+2549.0746800213
+13
+443.635403824213
+23
+-711.747079288974
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+2549.0746800213
+11
+443.635403824213
+21
+-711.747079288974
+31
+2549.0746800213
+12
+368.760184385968
+22
+-751.768717885475
+32
+2549.0746800213
+13
+368.760184385968
+23
+-751.768717885475
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1079.96854760957
+20
+1.80477854883065e-13
+30
+2011.5925230317
+11
+1059.21725479392
+21
+-210.691411720441
+31
+2058.8118770109
+12
+1059.21725479392
+22
+-210.691411720441
+32
+2011.5925230317
+13
+1059.21725479392
+23
+-210.691411720441
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1059.21725479392
+20
+-210.691411720441
+30
+2058.8118770109
+11
+1079.96854760957
+21
+1.80477854883065e-13
+31
+2011.5925230317
+12
+1079.96854760957
+22
+1.80477854883065e-13
+32
+2058.8118770109
+13
+1079.96854760957
+23
+1.80477854883065e-13
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+705.352696568272
+20
+-705.352696568272
+30
+1708.93950189862
+11
+642.325276783758
+21
+-675.725844017062
+31
+1614.7610800213
+12
+660.670394770277
+22
+-660.670394770277
+32
+1614.7610800213
+13
+660.670394770277
+23
+-660.670394770277
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+642.325276783758
+20
+-675.725844017062
+30
+1614.7610800213
+11
+705.352696568272
+21
+-705.352696568272
+31
+1708.93950189862
+12
+569.38577628374
+22
+-735.585745091064
+32
+1614.7610800213
+13
+569.38577628374
+23
+-735.585745091064
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+569.38577628374
+20
+-735.585745091064
+30
+1614.7610800213
+11
+554.192057578438
+21
+-829.407026995336
+31
+1708.93950189862
+12
+519.085398326623
+22
+-776.866198451135
+32
+1614.7610800213
+13
+519.085398326623
+23
+-776.866198451135
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.192057578438
+20
+-829.407026995336
+30
+1708.93950189862
+11
+569.38577628374
+21
+-735.585745091064
+31
+1614.7610800213
+12
+705.352696568272
+22
+-705.352696568272
+32
+1708.93950189862
+13
+705.352696568272
+23
+-705.352696568272
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.20854961057
+20
+-738.20854961057
+30
+1812.39759571907
+11
+554.192057578438
+21
+-829.407026995336
+31
+1708.93950189862
+12
+705.352696568272
+22
+-705.352696568272
+32
+1708.93950189862
+13
+705.352696568272
+23
+-705.352696568272
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.192057578438
+20
+-829.407026995336
+30
+1708.93950189862
+11
+738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+653.750224578543
+22
+-795.278099285779
+32
+1791.22238449044
+13
+653.750224578543
+23
+-795.278099285779
+33
+1791.22238449044
+70
+15
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578543
+20
+-795.278099285779
+30
+1791.22238449044
+11
+738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+653.750224578544
+22
+-807.521705673267
+32
+1812.39759571907
+13
+653.750224578544
+23
+-807.521705673267
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.192057578438
+20
+-829.407026995336
+30
+1708.93950189862
+11
+600.307476319437
+21
+-841.785968318108
+31
+1795.80300977859
+12
+577.57828073944
+22
+-864.406983345072
+32
+1802.66501966685
+13
+577.57828073944
+23
+-864.406983345072
+33
+1802.66501966685
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+600.307476319437
+20
+-841.785968318108
+30
+1795.80300977859
+11
+554.192057578438
+21
+-829.407026995336
+31
+1708.93950189862
+12
+653.750224578543
+22
+-795.278099285779
+32
+1791.22238449044
+13
+653.750224578543
+23
+-795.278099285779
+33
+1791.22238449044
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+554.385481313987
+20
+-554.385481313987
+30
+631.979456702016
+11
+677.173649450057
+21
+-452.47296672438
+31
+682.822310520627
+12
+575.888850875701
+22
+-575.888850875701
+32
+682.822310520627
+13
+575.888850875701
+23
+-575.888850875701
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+677.173649450057
+20
+-452.47296672438
+30
+682.822310520627
+11
+554.385481313987
+21
+-554.385481313987
+31
+631.979456702016
+12
+651.888361812631
+22
+-435.577877671407
+32
+631.979456702016
+13
+651.888361812631
+23
+-435.577877671407
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-38.8881027186482
+20
+-1075.973485995
+30
+2009.6437315188
+11
+-43.0469725205787
+21
+-1075.72879087574
+31
+2017.42442965997
+12
+-39.9297534839436
+22
+-1076.03581015323
+32
+2011.5925230317
+13
+-39.9297534839436
+23
+-1076.03581015323
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-43.0469725205787
+20
+-1075.72879087574
+30
+2017.42442965997
+11
+-38.8881027186482
+21
+-1075.973485995
+31
+2009.6437315188
+12
+-38.8881027186488
+22
+-975.669199508814
+32
+2009.6437315188
+13
+-38.8881027186488
+23
+-975.669199508814
+33
+2009.6437315188
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-43.0469725205787
+20
+-1075.72879087574
+30
+2017.42442965997
+11
+-38.8881027186488
+21
+-975.669199508814
+31
+2009.6437315188
+12
+-43.0469725205791
+22
+-975.725342330674
+32
+2017.42442965997
+13
+-43.0469725205791
+23
+-975.725342330674
+33
+2017.42442965997
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-841.785968318108
+30
+2274.60134354834
+11
+653.750224578543
+21
+-795.278127928135
+31
+2279.18196601546
+12
+600.307509232711
+22
+-841.785968318108
+32
+2274.60134354834
+13
+600.307509232711
+23
+-841.785968318108
+33
+2274.60134354834
+70
+0
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-978.669071362051
+30
+1911.92150871446
+11
+653.750224578544
+21
+-951.073041235167
+31
+1878.29564871262
+12
+180.675224578544
+22
+-951.073041235166
+32
+1878.29564871262
+13
+180.675224578544
+23
+-951.073041235166
+33
+1878.29564871262
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-951.073041235167
+30
+1878.29564871262
+11
+180.675224578544
+21
+-978.669071362051
+31
+1911.92150871446
+12
+653.750224578544
+22
+-978.669071362052
+32
+1911.92150871446
+13
+653.750224578544
+23
+-978.669071362052
+33
+1911.92150871446
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-997.519349743284
+30
+2361.46489814399
+11
+-203.671280618918
+21
+-1023.92467246733
+31
+2258.00680432354
+12
+1.80477854883065e-13
+22
+-1043.98454271904
+32
+2258.00680432354
+13
+1.80477854883065e-13
+23
+-1043.98454271904
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-203.671280618918
+20
+-1023.92467246733
+30
+2258.00680432354
+11
+1.80477854883065e-13
+21
+-997.519349743284
+31
+2361.46489814399
+12
+-194.606371158736
+22
+-978.352295145615
+32
+2361.46489814399
+13
+-194.606371158736
+23
+-978.352295145615
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-381.734128610353
+20
+-921.587710511788
+30
+2361.46489814399
+11
+-580.006735667279
+21
+-868.041422984449
+31
+2258.00680432354
+12
+-399.515588143821
+22
+-964.515951276275
+32
+2258.00680432354
+13
+-399.515588143821
+23
+-964.515951276275
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-580.006735667279
+20
+-868.041422984449
+30
+2258.00680432354
+11
+-381.734128610353
+21
+-921.587710511788
+31
+2361.46489814399
+12
+-554.192057578438
+22
+-829.407026995335
+32
+2361.46489814399
+13
+-554.192057578438
+23
+-829.407026995335
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-929.775248028225
+30
+2238.15499054897
+11
+533.995170927003
+21
+-892.63511672065
+31
+2258.00680432354
+12
+475.358507495069
+22
+-929.775248028225
+32
+2238.15499054897
+13
+475.358507495069
+23
+-929.775248028225
+33
+2238.15499054897
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+533.995170927003
+20
+-892.63511672065
+30
+2258.00680432354
+11
+653.750224578544
+21
+-929.775248028225
+31
+2238.15499054897
+12
+540.896920479706
+22
+-887.575434400246
+32
+2260.71126086817
+13
+540.896920479706
+23
+-887.575434400246
+33
+2260.71126086817
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+540.896920479706
+20
+-887.575434400246
+30
+2260.71126086817
+11
+653.750224578544
+21
+-929.775248028225
+31
+2238.15499054897
+12
+653.750224578544
+22
+-887.575434400246
+32
+2260.71126086817
+13
+653.750224578544
+23
+-887.575434400246
+33
+2260.71126086817
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-18.6906684275082
+20
+-1076.56003774335
+30
+1993.0681255669
+11
+-26.4713665686843
+21
+-976.148870417647
+31
+1997.22699536883
+12
+-26.4713665686843
+22
+-1076.14565304285
+32
+1997.22699536883
+13
+-26.4713665686843
+23
+-1076.14565304285
+33
+1997.22699536883
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-26.4713665686843
+20
+-976.148870417647
+30
+1997.22699536883
+11
+-18.6906684275082
+21
+-1076.56003774335
+31
+1993.0681255669
+12
+-18.6906684275082
+22
+-976.666250664317
+32
+1993.0681255669
+13
+-18.6906684275082
+23
+-976.666250664317
+33
+1993.0681255669
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021929
+30
+914.026066884025
+11
+604.235251721863
+21
+-250.282436127116
+31
+1054.1729200213
+12
+543.797359730523
+22
+-363.353779128852
+32
+1054.1729200213
+13
+543.797359730523
+23
+-363.353779128852
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+604.235251721863
+20
+-250.282436127116
+30
+1054.1729200213
+11
+699.168033082722
+21
+-467.169144021929
+31
+914.026066884025
+12
+776.87389411925
+22
+-321.791703197793
+32
+914.026066884025
+13
+776.87389411925
+23
+-321.791703197793
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+35.9517814413364
+20
+-975.958401912124
+30
+2009.6437315188
+11
+30.3548842506176
+21
+-1076.23680115831
+31
+2002.82389255955
+12
+35.9517814413362
+22
+-1076.26268839831
+32
+2009.6437315188
+13
+35.9517814413362
+23
+-1076.26268839831
+33
+2009.6437315188
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+30.3548842506176
+20
+-1076.23680115831
+30
+2002.82389255955
+11
+35.9517814413364
+21
+-975.958401912124
+31
+2009.6437315188
+12
+30.3548842506176
+22
+-976.101409846015
+32
+2002.82389255955
+13
+30.3548842506176
+23
+-976.101409846015
+33
+2002.82389255955
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-45.6079918995532
+20
+-1075.47655248308
+30
+2043.42689578067
+11
+-43.0469725205787
+21
+-975.791818816059
+31
+2051.86944523768
+12
+-43.0469725205787
+22
+-1075.72879087574
+32
+2051.86944523768
+13
+-43.0469725205787
+23
+-1075.72879087574
+33
+2051.86944523768
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-43.0469725205787
+20
+-975.791818816059
+30
+2051.86944523768
+11
+-45.6079918995532
+21
+-1075.47655248308
+31
+2043.42689578067
+12
+-45.6079918995534
+22
+-976.044954856512
+32
+2043.42689578067
+13
+-45.6079918995534
+23
+-976.044954856512
+33
+2043.42689578067
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+843.013713767209
+20
+-637.259985333474
+30
+2192.10870461431
+11
+180.675224578544
+21
+-609.663955206589
+31
+2158.48284461247
+12
+876.866128931272
+22
+-609.663955206588
+32
+2158.48284461247
+13
+876.866128931272
+23
+-609.663955206588
+33
+2158.48284461247
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-609.663955206589
+30
+2158.48284461247
+11
+843.013713767209
+21
+-637.259985333474
+31
+2192.10870461431
+12
+180.675224578544
+22
+-637.259985333474
+32
+2192.10870461431
+13
+180.675224578544
+23
+-637.259985333474
+33
+2192.10870461431
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.192057578438
+20
+-829.407026995335
+30
+1708.93950189862
+11
+-569.385752125536
+21
+-735.58576491719
+31
+1614.7610800213
+12
+-519.085398326623
+22
+-776.866198451135
+32
+1614.7610800213
+13
+-519.085398326623
+23
+-776.866198451135
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-569.385752125536
+20
+-735.58576491719
+30
+1614.7610800213
+11
+-554.192057578438
+21
+-829.407026995335
+31
+1708.93950189862
+12
+-642.32525459148
+22
+-675.725862229795
+32
+1614.7610800213
+13
+-642.32525459148
+23
+-675.725862229795
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-642.32525459148
+20
+-675.725862229795
+30
+1614.7610800213
+11
+-705.352696568271
+21
+-705.352696568271
+31
+1708.93950189862
+12
+-660.670394770277
+22
+-660.670394770277
+32
+1614.7610800213
+13
+-660.670394770277
+23
+-660.670394770277
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.352696568271
+20
+-705.352696568271
+30
+1708.93950189862
+11
+-642.32525459148
+21
+-675.725862229795
+31
+1614.7610800213
+12
+-554.192057578438
+22
+-829.407026995335
+32
+1708.93950189862
+13
+-554.192057578438
+23
+-829.407026995335
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1079.96854760957
+20
+3.60955709766131e-13
+30
+2058.8118770109
+11
+-1059.21725479392
+21
+-210.691411720441
+31
+2011.5925230317
+12
+-1059.21725479392
+22
+-210.691411720441
+32
+2058.8118770109
+13
+-1059.21725479392
+23
+-210.691411720441
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1059.21725479392
+20
+-210.691411720441
+30
+2011.5925230317
+11
+-1079.96854760957
+21
+3.60955709766131e-13
+31
+2058.8118770109
+12
+-1079.96854760957
+22
+3.60955709766131e-13
+32
+2011.5925230317
+13
+-1079.96854760957
+23
+3.60955709766131e-13
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-687.270773156591
+20
+-136.706656519425
+30
+1241.03564002131
+11
+-794.166563605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+-778.906875772646
+22
+-154.93421062823
+32
+1054.1729200213
+13
+-778.906875772646
+23
+-154.93421062823
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-794.166563605455
+20
+1.80477854883065e-13
+30
+1054.1729200213
+11
+-687.270773156591
+21
+-136.706656519425
+31
+1241.03564002131
+12
+-700.735203605455
+22
+1.80477854883065e-13
+32
+1241.03564002131
+13
+-700.735203605455
+23
+1.80477854883065e-13
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578543
+20
+-808.286776169451
+30
+1814.69356131783
+11
+653.750224578544
+21
+-807.521705673267
+31
+1812.39759571907
+12
+670.391132645368
+22
+-794.16651328432
+32
+1813.3028368105
+13
+670.391132645368
+23
+-794.16651328432
+33
+1813.3028368105
+70
+2
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.20854961057
+20
+-738.20854961057
+30
+1812.39759571907
+11
+670.391132645368
+21
+-794.16651328432
+31
+1813.3028368105
+12
+653.750224578544
+22
+-807.521705673267
+32
+1812.39759571907
+13
+653.750224578544
+23
+-807.521705673267
+33
+1812.39759571907
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+670.391132645368
+20
+-794.16651328432
+30
+1813.3028368105
+11
+738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+724.87187698787
+22
+-750.87609961724
+32
+1817.56657040449
+13
+724.87187698787
+23
+-750.87609961724
+33
+1817.56657040449
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.87187698787
+20
+-750.87609961724
+30
+1817.56657040449
+11
+738.20854961057
+21
+-738.20854961057
+31
+1812.39759571907
+12
+739.771122243662
+22
+-739.771122243661
+32
+1820.9352284623
+13
+739.771122243662
+23
+-739.771122243661
+33
+1820.9352284623
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+324.981333125909
+20
+-784.574341950659
+30
+855.37186879426
+11
+165.340167031437
+21
+-831.221151351825
+31
+796.153149972084
+12
+324.326404167689
+22
+-782.993203577332
+32
+796.153149972084
+13
+324.326404167689
+23
+-782.993203577332
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+165.340167031437
+20
+-831.221151351825
+30
+796.153149972084
+11
+324.981333125909
+21
+-784.574341950659
+31
+855.37186879426
+12
+165.674046918965
+22
+-832.899678896021
+32
+855.37186879426
+13
+165.674046918965
+23
+-832.899678896021
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+768.954752250597
+20
+-152.954610178005
+30
+631.979456702016
+11
+814.429823327873
+21
+1.80477854883065e-13
+31
+682.822310520627
+12
+798.780782641381
+22
+-158.887376492573
+32
+682.822310520627
+13
+798.780782641381
+23
+-158.887376492573
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+814.429823327873
+20
+1.80477854883065e-13
+30
+682.822310520627
+11
+768.954752250597
+21
+-152.954610178005
+31
+631.979456702016
+12
+784.019466456977
+22
+1.80477854883065e-13
+32
+631.979456702016
+13
+784.019466456977
+23
+1.80477854883065e-13
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+381.734128610352
+20
+-921.587710511788
+30
+1708.93950189862
+11
+323.520353196241
+21
+-873.530930139225
+31
+1614.7610800213
+12
+357.552241131722
+22
+-863.2074697971
+32
+1614.7610800213
+13
+357.552241131722
+23
+-863.2074697971
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+323.520353196241
+20
+-873.530930139225
+30
+1614.7610800213
+11
+381.734128610352
+21
+-921.587710511788
+31
+1708.93950189862
+12
+233.261898600639
+22
+-900.910533008324
+32
+1614.7610800213
+13
+233.261898600639
+23
+-900.910533008324
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+233.261898600639
+20
+-900.910533008324
+30
+1614.7610800213
+11
+194.606371158736
+21
+-978.352295145615
+31
+1708.93950189862
+12
+182.278551827736
+22
+-916.376162171087
+32
+1614.7610800213
+13
+182.278551827736
+23
+-916.376162171087
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+194.606371158736
+20
+-978.352295145615
+30
+1708.93950189862
+11
+233.261898600639
+21
+-900.910533008324
+31
+1614.7610800213
+12
+381.734128610352
+22
+-921.587710511788
+32
+1708.93950189862
+13
+381.734128610352
+23
+-921.587710511788
+33
+1708.93950189862
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+399.51558814382
+20
+-964.515951276276
+30
+1812.39759571907
+11
+194.606371158736
+21
+-978.352295145615
+31
+1708.93950189862
+12
+381.734128610352
+22
+-921.587710511788
+32
+1708.93950189862
+13
+381.734128610352
+23
+-921.587710511788
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+194.606371158736
+20
+-978.352295145615
+30
+1708.93950189862
+11
+399.51558814382
+21
+-964.515951276276
+31
+1812.39759571907
+12
+203.671280618918
+22
+-1023.92467246733
+32
+1812.39759571907
+13
+203.671280618918
+23
+-1023.92467246733
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-654.019523605455
+20
+1.80477854883065e-13
+30
+1054.1729200213
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1054.1729200213
+12
+-794.166563605455
+22
+1.80477854883065e-13
+32
+1054.1729200213
+13
+-794.166563605455
+23
+1.80477854883065e-13
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-778.906875772646
+20
+-154.93421062823
+30
+1054.1729200213
+11
+-654.019523605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+-733.714233519903
+22
+-303.914386430124
+32
+1054.1729200213
+13
+-733.714233519903
+23
+-303.914386430124
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-733.714233519903
+20
+-303.914386430124
+30
+1054.1729200213
+11
+-654.019523605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+-660.325364744672
+22
+-441.215302798659
+32
+1054.1729200213
+13
+-660.325364744672
+23
+-441.215302798659
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.325364744672
+20
+-441.215302798659
+30
+1054.1729200213
+11
+-654.019523605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+-641.452721848564
+22
+-127.592879465023
+32
+1054.1729200213
+13
+-641.452721848564
+23
+-127.592879465023
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.325364744672
+20
+-441.215302798659
+30
+1054.1729200213
+11
+-641.452721848564
+21
+-127.592879465023
+31
+1054.1729200213
+12
+-561.560562517035
+22
+-561.560562517035
+32
+1054.1729200213
+13
+-561.560562517035
+23
+-561.560562517035
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-561.560562517035
+20
+-561.560562517035
+30
+1054.1729200213
+11
+-641.452721848564
+21
+-127.592879465023
+31
+1054.1729200213
+12
+-604.235251721862
+22
+-250.282436127116
+32
+1054.1729200213
+13
+-604.235251721862
+23
+-250.282436127116
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-561.560562517035
+20
+-561.560562517035
+30
+1054.1729200213
+11
+-604.235251721862
+21
+-250.282436127116
+31
+1054.1729200213
+12
+-543.797359730523
+22
+-363.353779128852
+32
+1054.1729200213
+13
+-543.797359730523
+23
+-363.353779128852
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-561.560562517035
+20
+-561.560562517035
+30
+1054.1729200213
+11
+-543.797359730523
+21
+-363.353779128852
+31
+1054.1729200213
+12
+-441.215302798659
+22
+-660.325364744672
+32
+1054.1729200213
+13
+-441.215302798659
+23
+-660.325364744672
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-441.215302798659
+20
+-660.325364744672
+30
+1054.1729200213
+11
+-543.797359730523
+21
+-363.353779128852
+31
+1054.1729200213
+12
+-462.461640169813
+22
+-462.461640169813
+32
+1054.1729200213
+13
+-462.461640169813
+23
+-462.461640169813
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-441.215302798659
+20
+-660.325364744672
+30
+1054.1729200213
+11
+-462.461640169813
+21
+-462.461640169813
+31
+1054.1729200213
+12
+-363.353779128852
+22
+-543.797359730523
+32
+1054.1729200213
+13
+-363.353779128852
+23
+-543.797359730523
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-441.215302798659
+20
+-660.325364744672
+30
+1054.1729200213
+11
+-363.353779128852
+21
+-543.797359730523
+31
+1054.1729200213
+12
+-303.914386430124
+22
+-733.714233519903
+32
+1054.1729200213
+13
+-303.914386430124
+23
+-733.714233519903
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-303.914386430124
+20
+-733.714233519903
+30
+1054.1729200213
+11
+-363.353779128852
+21
+-543.797359730523
+31
+1054.1729200213
+12
+-250.282436127117
+22
+-604.235251721862
+32
+1054.1729200213
+13
+-250.282436127117
+23
+-604.235251721862
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-303.914386430124
+20
+-733.714233519903
+30
+1054.1729200213
+11
+-250.282436127117
+21
+-604.235251721862
+31
+1054.1729200213
+12
+-154.93421062823
+22
+-778.906875772646
+32
+1054.1729200213
+13
+-154.93421062823
+23
+-778.906875772646
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-154.93421062823
+20
+-778.906875772646
+30
+1054.1729200213
+11
+-250.282436127117
+21
+-604.235251721862
+31
+1054.1729200213
+12
+-127.592879465023
+22
+-641.452721848564
+32
+1054.1729200213
+13
+-127.592879465023
+23
+-641.452721848564
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-154.93421062823
+20
+-778.906875772646
+30
+1054.1729200213
+11
+-127.592879465023
+21
+-641.452721848564
+31
+1054.1729200213
+12
+0.0
+22
+-794.166563605455
+32
+1054.1729200213
+13
+0.0
+23
+-794.166563605455
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-794.166563605455
+30
+1054.1729200213
+11
+-127.592879465023
+21
+-641.452721848564
+31
+1054.1729200213
+12
+0.0
+22
+-654.019523605455
+32
+1054.1729200213
+13
+0.0
+23
+-654.019523605455
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-794.166563605455
+30
+1054.1729200213
+11
+0.0
+21
+-654.019523605455
+31
+1054.1729200213
+12
+127.592879465023
+22
+-641.452721848564
+32
+1054.1729200213
+13
+127.592879465023
+23
+-641.452721848564
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-794.166563605455
+30
+1054.1729200213
+11
+127.592879465023
+21
+-641.452721848564
+31
+1054.1729200213
+12
+154.93421062823
+22
+-778.906875772646
+32
+1054.1729200213
+13
+154.93421062823
+23
+-778.906875772646
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+154.93421062823
+20
+-778.906875772646
+30
+1054.1729200213
+11
+127.592879465023
+21
+-641.452721848564
+31
+1054.1729200213
+12
+250.282436127116
+22
+-604.235251721862
+32
+1054.1729200213
+13
+250.282436127116
+23
+-604.235251721862
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+154.93421062823
+20
+-778.906875772646
+30
+1054.1729200213
+11
+250.282436127116
+21
+-604.235251721862
+31
+1054.1729200213
+12
+303.914386430124
+22
+-733.714233519903
+32
+1054.1729200213
+13
+303.914386430124
+23
+-733.714233519903
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+303.914386430124
+20
+-733.714233519903
+30
+1054.1729200213
+11
+250.282436127116
+21
+-604.235251721862
+31
+1054.1729200213
+12
+363.353779128852
+22
+-543.797359730523
+32
+1054.1729200213
+13
+363.353779128852
+23
+-543.797359730523
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+303.914386430124
+20
+-733.714233519903
+30
+1054.1729200213
+11
+363.353779128852
+21
+-543.797359730523
+31
+1054.1729200213
+12
+441.215302798659
+22
+-660.325364744672
+32
+1054.1729200213
+13
+441.215302798659
+23
+-660.325364744672
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+441.215302798659
+20
+-660.325364744672
+30
+1054.1729200213
+11
+363.353779128852
+21
+-543.797359730523
+31
+1054.1729200213
+12
+462.461640169813
+22
+-462.461640169813
+32
+1054.1729200213
+13
+462.461640169813
+23
+-462.461640169813
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+441.215302798659
+20
+-660.325364744672
+30
+1054.1729200213
+11
+462.461640169813
+21
+-462.461640169813
+31
+1054.1729200213
+12
+561.560562517035
+22
+-561.560562517035
+32
+1054.1729200213
+13
+561.560562517035
+23
+-561.560562517035
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+561.560562517035
+20
+-561.560562517035
+30
+1054.1729200213
+11
+462.461640169813
+21
+-462.461640169813
+31
+1054.1729200213
+12
+543.797359730523
+22
+-363.353779128852
+32
+1054.1729200213
+13
+543.797359730523
+23
+-363.353779128852
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+561.560562517035
+20
+-561.560562517035
+30
+1054.1729200213
+11
+543.797359730523
+21
+-363.353779128852
+31
+1054.1729200213
+12
+604.235251721863
+22
+-250.282436127116
+32
+1054.1729200213
+13
+604.235251721863
+23
+-250.282436127116
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+561.560562517035
+20
+-561.560562517035
+30
+1054.1729200213
+11
+604.235251721863
+21
+-250.282436127116
+31
+1054.1729200213
+12
+660.325364744673
+22
+-441.215302798659
+32
+1054.1729200213
+13
+660.325364744673
+23
+-441.215302798659
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.325364744673
+20
+-441.215302798659
+30
+1054.1729200213
+11
+604.235251721863
+21
+-250.282436127116
+31
+1054.1729200213
+12
+641.452721848564
+22
+-127.592879465023
+32
+1054.1729200213
+13
+641.452721848564
+23
+-127.592879465023
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.325364744673
+20
+-441.215302798659
+30
+1054.1729200213
+11
+641.452721848564
+21
+-127.592879465023
+31
+1054.1729200213
+12
+654.019523605455
+22
+0.0
+32
+1054.1729200213
+13
+654.019523605455
+23
+0.0
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.325364744673
+20
+-441.215302798659
+30
+1054.1729200213
+11
+654.019523605455
+21
+0.0
+31
+1054.1729200213
+12
+794.166563605455
+22
+1.80477854883065e-13
+32
+1054.1729200213
+13
+794.166563605455
+23
+1.80477854883065e-13
+33
+1054.1729200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+660.325364744673
+20
+-441.215302798659
+30
+1054.1729200213
+11
+794.166563605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+733.714233519903
+22
+-303.914386430124
+32
+1054.1729200213
+13
+733.714233519903
+23
+-303.914386430124
+33
+1054.1729200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+733.714233519903
+20
+-303.914386430124
+30
+1054.1729200213
+11
+794.166563605455
+21
+1.80477854883065e-13
+31
+1054.1729200213
+12
+778.906875772646
+22
+-154.93421062823
+32
+1054.1729200213
+13
+778.906875772646
+23
+-154.93421062823
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-934.329032542513
+30
+2455.6433200213
+11
+-194.606371158736
+21
+-978.352295145615
+31
+2361.46489814399
+12
+1.80477854883065e-13
+22
+-997.519349743284
+32
+2361.46489814399
+13
+1.80477854883065e-13
+23
+-997.519349743284
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-194.606371158736
+20
+-978.352295145615
+30
+2361.46489814399
+11
+1.80477854883065e-13
+21
+-934.329032542513
+31
+2455.6433200213
+12
+-182.278551827737
+22
+-916.376162171087
+32
+2455.6433200213
+13
+-182.278551827737
+23
+-916.376162171087
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-182.278551827737
+20
+-916.376162171087
+30
+2455.6433200213
+11
+1.80477854883065e-13
+21
+-934.329032542513
+31
+2455.6433200213
+12
+-47.1482978123039
+22
+-929.685330525077
+32
+2455.6433200213
+13
+-47.1482978123039
+23
+-929.685330525077
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-182.278551827737
+20
+-916.376162171087
+30
+2455.6433200213
+11
+-47.1482978123039
+21
+-929.685330525077
+31
+2455.6433200213
+12
+-141.006393478031
+22
+-920.441114966529
+32
+2455.6433200213
+13
+-141.006393478031
+23
+-920.441114966529
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+843.013713767209
+20
+-637.259985333474
+30
+2192.10870461431
+11
+180.675224578544
+21
+-670.885845335315
+31
+2219.70473474119
+12
+180.675224578544
+22
+-637.259985333474
+32
+2192.10870461431
+13
+180.675224578544
+23
+-637.259985333474
+33
+2192.10870461431
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-670.885845335315
+30
+2219.70473474119
+11
+843.013713767209
+21
+-637.259985333474
+31
+2192.10870461431
+12
+806.222028237971
+22
+-670.885845335315
+32
+2219.70473474119
+13
+806.222028237971
+23
+-670.885845335315
+33
+2219.70473474119
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-635.110018052195
+20
+-545.224061178794
+30
+2549.0746800213
+11
+-594.593536632775
+21
+-594.593536632776
+31
+2455.6433200213
+12
+-594.593536632776
+22
+-594.593536632776
+32
+2549.0746800213
+13
+-594.593536632776
+23
+-594.593536632776
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+2455.6433200213
+11
+-635.110018052195
+21
+-545.224061178794
+31
+2549.0746800213
+12
+-699.168033082722
+22
+-467.169144021928
+32
+2455.6433200213
+13
+-699.168033082722
+23
+-467.169144021928
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+-635.110018052195
+21
+-545.224061178794
+31
+2549.0746800213
+12
+-689.000369065216
+22
+-479.558478474255
+32
+2549.0746800213
+13
+-689.000369065216
+23
+-479.558478474255
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+2455.6433200213
+11
+-689.000369065216
+21
+-479.558478474255
+31
+2549.0746800213
+12
+-699.168033082722
+22
+-467.169144021929
+32
+2549.0746800213
+13
+-699.168033082722
+23
+-467.169144021929
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+863.207469797099
+20
+-357.552241131722
+30
+1614.7610800213
+11
+978.352295145615
+21
+-194.606371158736
+31
+1708.93950189862
+12
+921.587710511789
+22
+-381.734128610352
+32
+1708.93950189862
+13
+921.587710511789
+23
+-381.734128610352
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+978.352295145615
+20
+-194.606371158736
+30
+1708.93950189862
+11
+863.207469797099
+21
+-357.552241131722
+31
+1614.7610800213
+12
+887.227327057414
+22
+-278.369383502706
+32
+1614.7610800213
+13
+887.227327057414
+23
+-278.369383502706
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+978.352295145615
+20
+-194.606371158736
+30
+1708.93950189862
+11
+887.227327057414
+21
+-278.369383502706
+31
+1614.7610800213
+12
+914.651020925795
+22
+-187.965580361484
+32
+1614.7610800213
+13
+914.651020925795
+23
+-187.965580361484
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+978.352295145615
+20
+-194.606371158736
+30
+1708.93950189862
+11
+914.651020925795
+21
+-187.965580361484
+31
+1614.7610800213
+12
+916.376162171087
+22
+-182.278551827737
+32
+1614.7610800213
+13
+916.376162171087
+23
+-182.278551827737
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+158.887376492573
+20
+-798.780782641381
+30
+682.822310520627
+11
+0.0
+21
+-784.019466456977
+31
+631.979456702016
+12
+152.954610178005
+22
+-768.954752250597
+32
+631.979456702016
+13
+152.954610178005
+23
+-768.954752250597
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-784.019466456977
+30
+631.979456702016
+11
+158.887376492573
+21
+-798.780782641381
+31
+682.822310520627
+12
+0.0
+22
+-814.429823327873
+32
+682.822310520627
+13
+0.0
+23
+-814.429823327873
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-580.006735667279
+20
+-868.04142298445
+30
+1812.39759571907
+11
+-705.352696568271
+21
+-705.352696568271
+31
+1708.93950189862
+12
+-554.192057578438
+22
+-829.407026995335
+32
+1708.93950189862
+13
+-554.192057578438
+23
+-829.407026995335
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.352696568271
+20
+-705.352696568271
+30
+1708.93950189862
+11
+-580.006735667279
+21
+-868.04142298445
+31
+1812.39759571907
+12
+-738.20854961057
+22
+-738.20854961057
+32
+1812.39759571907
+13
+-738.20854961057
+23
+-738.20854961057
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-997.760836892423
+20
+-413.286070645571
+30
+2058.8118770109
+11
+-897.961029579872
+21
+-599.99837764929
+31
+2011.5925230317
+12
+-897.961029579872
+22
+-599.99837764929
+32
+2058.8118770109
+13
+-897.961029579872
+23
+-599.99837764929
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-897.961029579872
+20
+-599.99837764929
+30
+2011.5925230317
+11
+-997.760836892423
+21
+-413.286070645571
+31
+2058.8118770109
+12
+-997.760836892423
+22
+-413.286070645571
+32
+2011.5925230317
+13
+-997.760836892423
+23
+-413.286070645571
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-891.670534105406
+20
+-595.795202951324
+30
+2148.21162800104
+11
+-997.760836892423
+21
+-413.286070645571
+31
+2058.8118770109
+12
+-897.961029579872
+22
+-599.99837764929
+32
+2058.8118770109
+13
+-897.961029579872
+23
+-599.99837764929
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-997.760836892423
+20
+-413.286070645571
+30
+2058.8118770109
+11
+-891.670534105406
+21
+-595.795202951324
+31
+2148.21162800104
+12
+-990.771212819307
+22
+-410.390873558597
+32
+2148.21162800104
+13
+-990.771212819307
+23
+-410.390873558597
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021929
+20
+-699.168033082722
+30
+914.026066884025
+11
+-600.487204246519
+21
+-600.487204246519
+31
+855.37186879426
+12
+-471.799768952456
+22
+-706.098253038492
+32
+855.37186879426
+13
+-471.799768952456
+23
+-706.098253038492
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-600.487204246519
+20
+-600.487204246519
+30
+855.37186879426
+11
+-467.169144021929
+21
+-699.168033082722
+31
+914.026066884025
+12
+-594.593536632776
+22
+-594.593536632776
+32
+914.026066884025
+13
+-594.593536632776
+23
+-594.593536632776
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+152.954610178005
+20
+-768.954752250597
+30
+631.979456702016
+11
+0.0
+21
+-745.443557551535
+31
+587.016306884026
+12
+145.428823687577
+22
+-731.120068617964
+32
+587.016306884026
+13
+145.428823687577
+23
+-731.120068617964
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-745.443557551535
+30
+587.016306884026
+11
+152.954610178005
+21
+-768.954752250597
+31
+631.979456702016
+12
+0.0
+22
+-784.019466456977
+32
+631.979456702016
+13
+0.0
+23
+-784.019466456977
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-619.813665790805
+20
+-414.146250971868
+30
+587.016306884026
+11
+-554.385481313987
+21
+-554.385481313987
+31
+631.979456702016
+12
+-651.888361812631
+22
+-435.577877671407
+32
+631.979456702016
+13
+-651.888361812631
+23
+-435.577877671407
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.385481313987
+20
+-554.385481313987
+30
+631.979456702016
+11
+-619.813665790805
+21
+-414.146250971868
+31
+587.016306884026
+12
+-527.108194536515
+22
+-527.108194536515
+32
+587.016306884026
+13
+-527.108194536515
+23
+-527.108194536515
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+475.358481968201
+20
+-929.775248028225
+30
+1832.24936277796
+11
+399.51558814382
+21
+-964.515951276276
+31
+1812.39759571907
+12
+533.995007415167
+22
+-892.635204119545
+32
+1812.39759571907
+13
+533.995007415167
+23
+-892.635204119545
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+399.51558814382
+20
+-964.515951276276
+30
+1812.39759571907
+11
+475.358481968201
+21
+-929.775248028225
+31
+1832.24936277796
+12
+422.745208264425
+22
+-966.763694030251
+32
+1862.60499591753
+13
+422.745208264425
+23
+-966.763694030251
+33
+1862.60499591753
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+399.51558814382
+20
+-964.515951276276
+30
+1812.39759571907
+11
+422.745208264425
+21
+-966.763694030251
+31
+1862.60499591753
+12
+406.150722558891
+22
+-980.534582769308
+32
+1879.38487239655
+13
+406.150722558891
+23
+-980.534582769308
+33
+1879.38487239655
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-519.085398326623
+20
+-776.866198451135
+30
+2455.6433200213
+11
+-705.352696568271
+21
+-705.352696568271
+31
+2361.46489814399
+12
+-554.192057578438
+22
+-829.407026995335
+32
+2361.46489814399
+13
+-554.192057578438
+23
+-829.407026995335
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.352696568271
+20
+-705.352696568271
+30
+2361.46489814399
+11
+-519.085398326623
+21
+-776.866198451135
+31
+2455.6433200213
+12
+-660.670394770277
+22
+-660.670394770277
+32
+2455.6433200213
+13
+-660.670394770277
+23
+-660.670394770277
+33
+2455.6433200213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.670394770277
+20
+-660.670394770277
+30
+2455.6433200213
+11
+-519.085398326623
+21
+-776.866198451135
+31
+2455.6433200213
+12
+-569.385750357394
+22
+-735.585766368266
+32
+2455.6433200213
+13
+-569.385750357394
+23
+-735.585766368266
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.670394770277
+20
+-660.670394770277
+30
+2455.6433200213
+11
+-569.385750357394
+21
+-735.585766368266
+31
+2455.6433200213
+12
+-642.325255137832
+22
+-675.725861781415
+32
+2455.6433200213
+13
+-642.325255137832
+23
+-675.725861781415
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+324.326404167689
+20
+-782.993203577332
+30
+796.153149972084
+11
+163.055979488767
+21
+-819.73776511114
+31
+738.078199114136
+12
+319.845809128627
+22
+-772.176090266528
+32
+738.078199114136
+13
+319.845809128627
+23
+-772.176090266528
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+163.055979488767
+20
+-819.73776511114
+30
+738.078199114136
+11
+324.326404167689
+21
+-782.993203577332
+31
+796.153149972084
+12
+165.340167031437
+22
+-831.221151351825
+32
+796.153149972084
+13
+165.340167031437
+23
+-831.221151351825
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+824.724927080674
+20
+-164.047987682633
+30
+2455.6433200213
+11
+832.543812136584
+21
+-84.6615154688545
+31
+2549.0746800213
+12
+824.724927080674
+22
+-164.047987682633
+32
+2549.0746800213
+13
+824.724927080674
+23
+-164.047987682633
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+832.543812136584
+20
+-84.6615154688545
+30
+2549.0746800213
+11
+824.724927080674
+21
+-164.047987682633
+31
+2455.6433200213
+12
+840.882243605455
+22
+1.80477854883065e-13
+32
+2455.6433200213
+13
+840.882243605455
+23
+1.80477854883065e-13
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+832.543812136584
+20
+-84.6615154688545
+30
+2549.0746800213
+11
+840.882243605455
+21
+1.80477854883065e-13
+31
+2455.6433200213
+12
+840.882243605455
+22
+1.80477854883065e-13
+32
+2549.0746800213
+13
+840.882243605455
+23
+1.80477854883065e-13
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1043.98454271904
+20
+3.60955709766131e-13
+30
+1812.39759571907
+11
+-978.352295145615
+21
+-194.606371158736
+31
+1708.93950189862
+12
+-1023.92467246733
+22
+-203.671280618918
+32
+1812.39759571907
+13
+-1023.92467246733
+23
+-203.671280618918
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-978.352295145615
+20
+-194.606371158736
+30
+1708.93950189862
+11
+-1043.98454271904
+21
+3.60955709766131e-13
+31
+1812.39759571907
+12
+-997.519349743285
+22
+3.60955709766131e-13
+32
+1708.93950189862
+13
+-997.519349743285
+23
+3.60955709766131e-13
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-527.108194536515
+20
+-527.108194536515
+30
+587.016306884026
+11
+-435.577877671407
+21
+-651.888361812631
+31
+631.979456702016
+12
+-554.385481313987
+22
+-554.385481313987
+32
+631.979456702016
+13
+-554.385481313987
+23
+-554.385481313987
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-435.577877671407
+20
+-651.888361812631
+30
+631.979456702016
+11
+-527.108194536515
+21
+-527.108194536515
+31
+587.016306884026
+12
+-414.146250971868
+22
+-619.813665790805
+32
+587.016306884026
+13
+-414.146250971868
+23
+-619.813665790805
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-452.472966724379
+20
+-677.173649450057
+30
+682.822310520627
+11
+-554.385481313987
+21
+-554.385481313987
+31
+631.979456702016
+12
+-435.577877671407
+22
+-651.888361812631
+32
+631.979456702016
+13
+-435.577877671407
+23
+-651.888361812631
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.385481313987
+20
+-554.385481313987
+30
+631.979456702016
+11
+-452.472966724379
+21
+-677.173649450057
+31
+682.822310520627
+12
+-575.888850875701
+22
+-575.888850875701
+32
+682.822310520627
+13
+-575.888850875701
+23
+-575.888850875701
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+997.760836892423
+20
+-413.286070645571
+30
+2011.5925230317
+11
+912.783669278017
+21
+-572.267169258698
+31
+2035.20224467364
+12
+911.540741979581
+22
+-574.59252267949
+32
+2011.5925230317
+13
+911.540741979581
+23
+-574.59252267949
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+912.783669278017
+20
+-572.267169258698
+30
+2035.20224467364
+11
+997.760836892423
+21
+-413.286070645571
+31
+2058.8118770109
+12
+911.54074094115
+22
+-574.592524622259
+32
+2058.8118770109
+13
+911.54074094115
+23
+-574.592524622259
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+997.760836892423
+20
+-413.286070645571
+30
+2058.8118770109
+11
+912.783669278017
+21
+-572.267169258698
+31
+2035.20224467364
+12
+997.760836892423
+22
+-413.286070645571
+32
+2011.5925230317
+13
+997.760836892423
+23
+-413.286070645571
+33
+2011.5925230317
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+203.671280618918
+20
+-1023.92467246733
+30
+1812.39759571907
+11
+1.80477854883065e-13
+21
+-997.519349743284
+31
+1708.93950189862
+12
+194.606371158736
+22
+-978.352295145615
+32
+1708.93950189862
+13
+194.606371158736
+23
+-978.352295145615
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-997.519349743284
+30
+1708.93950189862
+11
+203.671280618918
+21
+-1023.92467246733
+31
+1812.39759571907
+12
+1.80477854883065e-13
+22
+-1043.98454271904
+32
+1812.39759571907
+13
+1.80477854883065e-13
+23
+-1043.98454271904
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+209.215453044867
+20
+-1051.79710945546
+30
+2148.21162800104
+11
+36.3998441498995
+21
+-1076.38347587727
+31
+2058.8118770109
+12
+210.691411720441
+22
+-1059.21725479392
+32
+2058.8118770109
+13
+210.691411720441
+23
+-1059.21725479392
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+36.3998441498995
+20
+-1076.38347587727
+30
+2058.8118770109
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+35.9517814413365
+22
+-1076.35666734212
+32
+2059.65014337885
+13
+35.9517814413365
+23
+-1076.35666734212
+33
+2059.65014337885
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+35.9517814413365
+20
+-1076.35666734212
+30
+2059.65014337885
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+30.354884250617
+22
+-1076.33078010212
+32
+2066.4699823381
+13
+30.354884250617
+23
+-1076.33078010212
+33
+2066.4699823381
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+30.354884250617
+20
+-1076.33078010212
+30
+2066.4699823381
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+23.5350452913723
+22
+-1076.52883438997
+32
+2072.06687952882
+13
+23.5350452913723
+23
+-1076.52883438997
+33
+2072.06687952882
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+23.5350452913723
+20
+-1076.52883438997
+30
+2072.06687952882
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+15.754347150196
+22
+-1076.94321909047
+32
+2076.22574933075
+13
+15.754347150196
+23
+-1076.94321909047
+33
+2076.22574933075
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+15.754347150196
+20
+-1076.94321909047
+30
+2076.22574933075
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+7.31179769318775
+22
+-1077.55800963197
+32
+2078.78676870972
+13
+7.31179769318775
+23
+-1077.55800963197
+33
+2078.78676870972
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+7.31179769318775
+20
+-1077.55800963197
+30
+2078.78676870972
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+1.80477854883065e-13
+22
+-1078.21721573187
+32
+2079.50691792559
+13
+1.80477854883065e-13
+23
+-1078.21721573187
+33
+2079.50691792559
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1.80477854883065e-13
+20
+-1078.21721573187
+30
+2079.50691792559
+11
+209.215453044867
+21
+-1051.79710945546
+31
+2148.21162800104
+12
+1.80477854883065e-13
+22
+-1072.40303302985
+32
+2148.21162800104
+13
+1.80477854883065e-13
+23
+-1072.40303302985
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+824.724927080674
+20
+-164.047987682633
+30
+914.026066884025
+11
+654.019523605455
+21
+0.0
+31
+1054.1729200213
+12
+641.452721848564
+22
+-127.592879465023
+32
+1054.1729200213
+13
+641.452721848564
+23
+-127.592879465023
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+654.019523605455
+20
+0.0
+30
+1054.1729200213
+11
+824.724927080674
+21
+-164.047987682633
+31
+914.026066884025
+12
+840.882243605455
+22
+1.80477854883065e-13
+32
+914.026066884025
+13
+840.882243605455
+23
+1.80477854883065e-13
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-879.083714298799
+30
+2240.21043503138
+11
+180.675224578544
+21
+-917.447181233325
+31
+2219.70473474119
+12
+180.675224578544
+22
+-879.083714298798
+32
+2240.21043503138
+13
+180.675224578544
+23
+-879.083714298798
+33
+2240.21043503138
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-917.447181233325
+30
+2219.70473474119
+11
+653.750224578544
+21
+-879.083714298799
+31
+2240.21043503138
+12
+653.750224578544
+22
+-917.447181233325
+32
+2219.70473474119
+13
+653.750224578544
+23
+-917.447181233325
+33
+2219.70473474119
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+145.820433573828
+20
+-733.088824464618
+30
+1427.8983600213
+11
+0.0
+21
+-840.882243605455
+31
+1241.03564002131
+12
+164.047987682633
+22
+-824.724927080674
+32
+1241.03564002131
+13
+164.047987682633
+23
+-824.724927080674
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+1241.03564002131
+11
+145.820433573828
+21
+-733.088824464618
+31
+1427.8983600213
+12
+0.0
+22
+-747.450883605455
+32
+1427.8983600213
+13
+0.0
+23
+-747.450883605455
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.87389411925
+30
+914.026066884025
+11
+-363.353779128852
+21
+-543.797359730523
+31
+1054.1729200213
+12
+-467.169144021929
+22
+-699.168033082722
+32
+914.026066884025
+13
+-467.169144021929
+23
+-699.168033082722
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-363.353779128852
+20
+-543.797359730523
+30
+1054.1729200213
+11
+-321.791703197793
+21
+-776.87389411925
+31
+914.026066884025
+12
+-250.282436127117
+22
+-604.235251721862
+32
+1054.1729200213
+13
+-250.282436127117
+23
+-604.235251721862
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+577.57828073944
+20
+-864.406983345072
+30
+1802.66501966685
+11
+653.750224578544
+21
+-887.575434400246
+31
+1809.69309245876
+12
+540.896876185886
+22
+-887.575434400246
+32
+1809.69309245876
+13
+540.896876185886
+23
+-887.575434400246
+33
+1809.69309245876
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-887.575434400246
+30
+1809.69309245876
+11
+577.57828073944
+21
+-864.406983345072
+31
+1802.66501966685
+12
+600.307476319437
+22
+-841.785968318108
+32
+1795.80300977859
+13
+600.307476319437
+23
+-841.785968318108
+33
+1795.80300977859
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-887.575434400246
+30
+1809.69309245876
+11
+600.307476319437
+21
+-841.785968318108
+31
+1795.80300977859
+12
+653.750224578544
+22
+-841.785968318108
+32
+1795.80300977859
+13
+653.750224578544
+23
+-841.785968318108
+33
+1795.80300977859
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1033.56568016919
+30
+1987.58272162967
+11
+320.792432759964
+21
+-1019.67559748903
+31
+1941.79325554754
+12
+653.750224578544
+22
+-1019.67559748903
+32
+1941.79325554754
+13
+653.750224578544
+23
+-1019.67559748903
+33
+1941.79325554754
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+320.792432759964
+20
+-1019.67559748903
+30
+1941.79325554754
+11
+653.750224578544
+21
+-1033.56568016919
+31
+1987.58272162967
+12
+288.287531523413
+22
+-1033.5656801692
+32
+1987.58272162968
+13
+288.287531523413
+23
+-1033.5656801692
+33
+1987.58272162968
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+136.706656519425
+20
+-687.270773156591
+30
+1241.03564002131
+11
+0.0
+21
+-794.166563605455
+31
+1054.1729200213
+12
+154.93421062823
+22
+-778.906875772646
+32
+1054.1729200213
+13
+154.93421062823
+23
+-778.906875772646
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-794.166563605455
+30
+1054.1729200213
+11
+136.706656519425
+21
+-687.270773156591
+31
+1241.03564002131
+12
+0.0
+22
+-700.735203605455
+32
+1241.03564002131
+13
+0.0
+23
+-700.735203605455
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-599.99837764929
+20
+-897.961029579872
+30
+2058.8118770109
+11
+-644.006839982028
+21
+-861.844217926399
+31
+2011.59252303171
+12
+-599.99837764929
+22
+-897.961029579872
+32
+2011.5925230317
+13
+-599.99837764929
+23
+-897.961029579872
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-644.006839982028
+20
+-861.844217926399
+30
+2011.59252303171
+11
+-599.99837764929
+21
+-897.961029579872
+31
+2058.8118770109
+12
+-644.327893757466
+22
+-861.580735902195
+32
+2058.8118770109
+13
+-644.327893757466
+23
+-861.580735902195
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+914.026066884025
+11
+-165.674046918965
+21
+-832.899678896021
+31
+855.37186879426
+12
+1.80477854883065e-13
+22
+-849.217148276931
+32
+855.37186879426
+13
+1.80477854883065e-13
+23
+-849.217148276931
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-165.674046918965
+20
+-832.899678896021
+30
+855.37186879426
+11
+0.0
+21
+-840.882243605455
+31
+914.026066884025
+12
+-164.047987682633
+22
+-824.724927080674
+32
+914.026066884025
+13
+-164.047987682633
+23
+-824.724927080674
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1079.96854760957
+20
+1.80477854883065e-13
+30
+2058.8118770109
+11
+1051.79710945546
+21
+-209.215453044867
+31
+2148.21162800104
+12
+1059.21725479392
+22
+-210.691411720441
+32
+2058.8118770109
+13
+1059.21725479392
+23
+-210.691411720441
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1051.79710945546
+20
+-209.215453044867
+30
+2148.21162800104
+11
+1079.96854760957
+21
+1.80477854883065e-13
+31
+2058.8118770109
+12
+1072.40303302985
+22
+1.80477854883065e-13
+32
+2148.21162800104
+13
+1072.40303302985
+23
+1.80477854883065e-13
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+23.5350452913725
+20
+-976.504549306342
+30
+2072.06687952882
+11
+15.754347150196
+21
+-1076.94321909047
+31
+2076.22574933075
+12
+15.754347150196
+22
+-977.021929553012
+32
+2076.22574933075
+13
+15.754347150196
+23
+-977.021929553012
+33
+2076.22574933075
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+15.754347150196
+20
+-1076.94321909047
+30
+2076.22574933075
+11
+23.5350452913725
+21
+-976.504549306342
+31
+2072.06687952882
+12
+23.5350452913723
+22
+-1076.52883438997
+32
+2072.06687952882
+13
+23.5350452913723
+23
+-1076.52883438997
+33
+2072.06687952882
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021929
+30
+914.026066884025
+11
+-604.235251721862
+21
+-250.282436127116
+31
+1054.1729200213
+12
+-776.87389411925
+22
+-321.791703197793
+32
+914.026066884025
+13
+-776.87389411925
+23
+-321.791703197793
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-604.235251721862
+20
+-250.282436127116
+30
+1054.1729200213
+11
+-699.168033082722
+21
+-467.169144021929
+31
+914.026066884025
+12
+-543.797359730523
+22
+-363.353779128852
+32
+1054.1729200213
+13
+-543.797359730523
+23
+-363.353779128852
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+163.055979488767
+20
+-819.73776511114
+30
+738.078199114136
+11
+0.0
+21
+-814.429823327873
+31
+682.822310520627
+12
+158.887376492573
+22
+-798.780782641381
+32
+682.822310520627
+13
+158.887376492573
+23
+-798.780782641381
+33
+682.822310520627
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-814.429823327873
+30
+682.822310520627
+11
+163.055979488767
+21
+-819.73776511114
+31
+738.078199114136
+12
+1.80477854883065e-13
+22
+-835.797377356766
+32
+738.078199114136
+13
+1.80477854883065e-13
+23
+-835.797377356766
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.87389411925
+20
+-321.791703197793
+30
+914.026066884025
+11
+-832.899678896021
+21
+-165.674046918964
+31
+855.37186879426
+12
+-784.574341950659
+22
+-324.981333125909
+32
+855.37186879426
+13
+-784.574341950659
+23
+-324.981333125909
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-832.899678896021
+20
+-165.674046918964
+30
+855.37186879426
+11
+-776.87389411925
+21
+-321.791703197793
+31
+914.026066884025
+12
+-824.724927080674
+22
+-164.047987682633
+32
+914.026066884025
+13
+-824.724927080674
+23
+-164.047987682633
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.325364744672
+20
+-441.215302798659
+30
+1614.7610800213
+11
+-772.428086079136
+21
+-428.73258747146
+31
+1427.8983600213
+12
+-738.010701420772
+22
+-493.122985245198
+32
+1427.8983600213
+13
+-738.010701420772
+23
+-493.122985245198
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-772.428086079136
+20
+-428.73258747146
+30
+1427.8983600213
+11
+-660.325364744672
+21
+-441.215302798659
+31
+1614.7610800213
+12
+-733.714233519903
+22
+-303.914386430124
+32
+1614.7610800213
+13
+-733.714233519903
+23
+-303.914386430124
+33
+1614.7610800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-772.428086079136
+20
+-428.73258747146
+30
+1427.8983600213
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+-814.713927134819
+22
+-349.621343174435
+32
+1427.8983600213
+13
+-814.713927134819
+23
+-349.621343174435
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-814.713927134819
+20
+-349.621343174435
+30
+1427.8983600213
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+-820.033554718597
+22
+-339.669019965462
+32
+1427.8983600213
+13
+-820.033554718597
+23
+-339.669019965462
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-921.587710511788
+20
+-381.734128610352
+30
+1708.93950189862
+11
+-776.866198451135
+21
+-519.085398326623
+31
+1614.7610800213
+12
+-829.407026995335
+22
+-554.192057578438
+32
+1708.93950189862
+13
+-829.407026995335
+23
+-554.192057578438
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.866198451135
+20
+-519.085398326623
+30
+1614.7610800213
+11
+-921.587710511788
+21
+-381.734128610352
+31
+1708.93950189862
+12
+-813.095615539802
+22
+-451.304926317894
+32
+1614.7610800213
+13
+-813.095615539802
+23
+-451.304926317894
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-813.095615539802
+20
+-451.304926317894
+30
+1614.7610800213
+11
+-921.587710511788
+21
+-381.734128610352
+31
+1708.93950189862
+12
+-857.607798337338
+22
+-368.028489582189
+32
+1614.7610800213
+13
+-857.607798337338
+23
+-368.028489582189
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-857.607798337338
+20
+-368.028489582189
+30
+1614.7610800213
+11
+-921.587710511788
+21
+-381.734128610352
+31
+1708.93950189862
+12
+-863.207469797099
+22
+-357.552241131722
+32
+1614.7610800213
+13
+-863.207469797099
+23
+-357.552241131722
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+824.724927080674
+20
+-164.047987682633
+30
+1241.03564002131
+11
+690.554572920556
+21
+-286.037069662455
+31
+1427.8983600213
+12
+776.87389411925
+22
+-321.791703197793
+32
+1241.03564002131
+13
+776.87389411925
+23
+-321.791703197793
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+690.554572920556
+20
+-286.037069662455
+30
+1427.8983600213
+11
+824.724927080674
+21
+-164.047987682633
+31
+1241.03564002131
+12
+733.088824464618
+22
+-145.820433573828
+32
+1427.8983600213
+13
+733.088824464618
+23
+-145.820433573828
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-700.735203605455
+20
+1.80477854883065e-13
+30
+1241.03564002131
+11
+-824.724927080674
+21
+-164.047987682633
+31
+1241.03564002131
+12
+-840.882243605455
+22
+1.80477854883065e-13
+32
+1241.03564002131
+13
+-840.882243605455
+23
+1.80477854883065e-13
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-824.724927080674
+20
+-164.047987682633
+30
+1241.03564002131
+11
+-700.735203605455
+21
+1.80477854883065e-13
+31
+1241.03564002131
+12
+-776.873894119249
+22
+-321.791703197793
+32
+1241.03564002131
+13
+-776.873894119249
+23
+-321.791703197793
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-776.873894119249
+20
+-321.791703197793
+30
+1241.03564002131
+11
+-700.735203605455
+21
+1.80477854883065e-13
+31
+1241.03564002131
+12
+-699.168033082722
+22
+-467.169144021928
+32
+1241.03564002131
+13
+-699.168033082722
+23
+-467.169144021928
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+1241.03564002131
+11
+-700.735203605455
+21
+1.80477854883065e-13
+31
+1241.03564002131
+12
+-687.270773156591
+22
+-136.706656519425
+32
+1241.03564002131
+13
+-687.270773156591
+23
+-136.706656519425
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021928
+30
+1241.03564002131
+11
+-687.270773156591
+21
+-136.706656519425
+31
+1241.03564002131
+12
+-594.593536632775
+22
+-594.593536632776
+32
+1241.03564002131
+13
+-594.593536632775
+23
+-594.593536632776
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+1241.03564002131
+11
+-687.270773156591
+21
+-136.706656519425
+31
+1241.03564002131
+12
+-647.394912321209
+22
+-268.159752894786
+32
+1241.03564002131
+13
+-647.394912321209
+23
+-268.159752894786
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+1241.03564002131
+11
+-647.394912321209
+21
+-268.159752894786
+31
+1241.03564002131
+12
+-582.640028068573
+22
+-389.307620352121
+32
+1241.03564002131
+13
+-582.640028068573
+23
+-389.307620352121
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+1241.03564002131
+11
+-582.640028068573
+21
+-389.307620352121
+31
+1241.03564002131
+12
+-467.169144021928
+22
+-699.168033082722
+32
+1241.03564002131
+13
+-467.169144021928
+23
+-699.168033082722
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+1241.03564002131
+11
+-582.640028068573
+21
+-389.307620352121
+31
+1241.03564002131
+12
+-495.494614285553
+22
+-495.494614285553
+32
+1241.03564002131
+13
+-495.494614285553
+23
+-495.494614285553
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+1241.03564002131
+11
+-495.494614285553
+21
+-495.494614285553
+31
+1241.03564002131
+12
+-389.307620352121
+22
+-582.640028068573
+32
+1241.03564002131
+13
+-389.307620352121
+23
+-582.640028068573
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021928
+20
+-699.168033082722
+30
+1241.03564002131
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1241.03564002131
+12
+-321.791703197793
+22
+-776.873894119249
+32
+1241.03564002131
+13
+-321.791703197793
+23
+-776.873894119249
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+1241.03564002131
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1241.03564002131
+12
+-268.159752894786
+22
+-647.394912321209
+32
+1241.03564002131
+13
+-268.159752894786
+23
+-647.394912321209
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-321.791703197793
+20
+-776.873894119249
+30
+1241.03564002131
+11
+-268.159752894786
+21
+-647.394912321209
+31
+1241.03564002131
+12
+-164.047987682633
+22
+-824.724927080674
+32
+1241.03564002131
+13
+-164.047987682633
+23
+-824.724927080674
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+1241.03564002131
+11
+-268.159752894786
+21
+-647.394912321209
+31
+1241.03564002131
+12
+-136.706656519425
+22
+-687.270773156591
+32
+1241.03564002131
+13
+-136.706656519425
+23
+-687.270773156591
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-164.047987682633
+20
+-824.724927080674
+30
+1241.03564002131
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1241.03564002131
+12
+0.0
+22
+-840.882243605455
+32
+1241.03564002131
+13
+0.0
+23
+-840.882243605455
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+1241.03564002131
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1241.03564002131
+12
+0.0
+22
+-700.735203605455
+32
+1241.03564002131
+13
+0.0
+23
+-700.735203605455
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+1241.03564002131
+11
+0.0
+21
+-700.735203605455
+31
+1241.03564002131
+12
+136.706656519425
+22
+-687.270773156591
+32
+1241.03564002131
+13
+136.706656519425
+23
+-687.270773156591
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-840.882243605455
+30
+1241.03564002131
+11
+136.706656519425
+21
+-687.270773156591
+31
+1241.03564002131
+12
+164.047987682633
+22
+-824.724927080674
+32
+1241.03564002131
+13
+164.047987682633
+23
+-824.724927080674
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+1241.03564002131
+11
+136.706656519425
+21
+-687.270773156591
+31
+1241.03564002131
+12
+268.159752894785
+22
+-647.394912321209
+32
+1241.03564002131
+13
+268.159752894785
+23
+-647.394912321209
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+1241.03564002131
+11
+268.159752894785
+21
+-647.394912321209
+31
+1241.03564002131
+12
+321.791703197793
+22
+-776.873894119249
+32
+1241.03564002131
+13
+321.791703197793
+23
+-776.873894119249
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.873894119249
+30
+1241.03564002131
+11
+268.159752894785
+21
+-647.394912321209
+31
+1241.03564002131
+12
+389.307620352121
+22
+-582.640028068573
+32
+1241.03564002131
+13
+389.307620352121
+23
+-582.640028068573
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.873894119249
+30
+1241.03564002131
+11
+389.307620352121
+21
+-582.640028068573
+31
+1241.03564002131
+12
+467.169144021928
+22
+-699.168033082722
+32
+1241.03564002131
+13
+467.169144021928
+23
+-699.168033082722
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+1241.03564002131
+11
+389.307620352121
+21
+-582.640028068573
+31
+1241.03564002131
+12
+495.494614285553
+22
+-495.494614285553
+32
+1241.03564002131
+13
+495.494614285553
+23
+-495.494614285553
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+1241.03564002131
+11
+495.494614285553
+21
+-495.494614285553
+31
+1241.03564002131
+12
+594.593536632776
+22
+-594.593536632775
+32
+1241.03564002131
+13
+594.593536632776
+23
+-594.593536632775
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632775
+30
+1241.03564002131
+11
+495.494614285553
+21
+-495.494614285553
+31
+1241.03564002131
+12
+582.640028068573
+22
+-389.307620352121
+32
+1241.03564002131
+13
+582.640028068573
+23
+-389.307620352121
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632775
+30
+1241.03564002131
+11
+582.640028068573
+21
+-389.307620352121
+31
+1241.03564002131
+12
+647.394912321209
+22
+-268.159752894786
+32
+1241.03564002131
+13
+647.394912321209
+23
+-268.159752894786
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632775
+30
+1241.03564002131
+11
+647.394912321209
+21
+-268.159752894786
+31
+1241.03564002131
+12
+699.168033082722
+22
+-467.169144021928
+32
+1241.03564002131
+13
+699.168033082722
+23
+-467.169144021928
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+1241.03564002131
+11
+647.394912321209
+21
+-268.159752894786
+31
+1241.03564002131
+12
+687.270773156591
+22
+-136.706656519426
+32
+1241.03564002131
+13
+687.270773156591
+23
+-136.706656519426
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+1241.03564002131
+11
+687.270773156591
+21
+-136.706656519426
+31
+1241.03564002131
+12
+700.735203605455
+22
+0.0
+32
+1241.03564002131
+13
+700.735203605455
+23
+0.0
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+699.168033082722
+20
+-467.169144021928
+30
+1241.03564002131
+11
+700.735203605455
+21
+0.0
+31
+1241.03564002131
+12
+776.87389411925
+22
+-321.791703197793
+32
+1241.03564002131
+13
+776.87389411925
+23
+-321.791703197793
+33
+1241.03564002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+1241.03564002131
+11
+700.735203605455
+21
+0.0
+31
+1241.03564002131
+12
+840.882243605455
+22
+1.80477854883065e-13
+32
+1241.03564002131
+13
+840.882243605455
+23
+1.80477854883065e-13
+33
+1241.03564002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+1241.03564002131
+11
+840.882243605455
+21
+1.80477854883065e-13
+31
+1241.03564002131
+12
+824.724927080674
+22
+-164.047987682633
+32
+1241.03564002131
+13
+824.724927080674
+23
+-164.047987682633
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+154.93421062823
+20
+-778.906875772646
+30
+1614.7610800213
+11
+133.953889402395
+21
+-874.404617053063
+31
+1427.8983600213
+12
+173.161764737035
+22
+-870.542978388701
+32
+1427.8983600213
+13
+173.161764737035
+23
+-870.542978388701
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+133.953889402395
+20
+-874.404617053063
+30
+1427.8983600213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+44.7901424632535
+22
+-883.186479617682
+32
+1427.8983600213
+13
+44.7901424632535
+23
+-883.186479617682
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+44.7901424632535
+20
+-883.186479617682
+30
+1427.8983600213
+11
+0.0
+21
+-794.166563605455
+31
+1614.7610800213
+12
+1.80477854883065e-13
+22
+-887.597923605455
+32
+1427.8983600213
+13
+1.80477854883065e-13
+23
+-887.597923605455
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+0.0
+20
+-794.166563605455
+30
+1614.7610800213
+11
+44.7901424632535
+21
+-883.186479617682
+31
+1427.8983600213
+12
+154.93421062823
+22
+-778.906875772646
+32
+1614.7610800213
+13
+154.93421062823
+23
+-778.906875772646
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-1019.67559748903
+30
+2128.61109777939
+11
+288.287545076695
+21
+-1033.5656801692
+31
+2082.82163169725
+12
+653.750224578544
+22
+-1033.56568016919
+32
+2082.82163169725
+13
+653.750224578544
+23
+-1033.56568016919
+33
+2082.82163169725
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+288.287545076695
+20
+-1033.5656801692
+30
+2082.82163169725
+11
+653.750224578544
+21
+-1019.67559748903
+31
+2128.61109777939
+12
+320.792446313246
+22
+-1019.67559748903
+32
+2128.61109777939
+13
+320.792446313246
+23
+-1019.67559748903
+33
+2128.61109777939
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-467.169144021929
+20
+-699.168033082722
+30
+2549.0746800213
+11
+-594.593536632775
+21
+-594.593536632776
+31
+2455.6433200213
+12
+-467.169144021928
+22
+-699.168033082722
+32
+2455.6433200213
+13
+-467.169144021928
+23
+-699.168033082722
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632775
+20
+-594.593536632776
+30
+2455.6433200213
+11
+-467.169144021929
+21
+-699.168033082722
+31
+2549.0746800213
+12
+-594.593536632776
+22
+-594.593536632776
+32
+2549.0746800213
+13
+-594.593536632776
+23
+-594.593536632776
+33
+2549.0746800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632776
+20
+-594.593536632776
+30
+2549.0746800213
+11
+-467.169144021929
+21
+-699.168033082722
+31
+2549.0746800213
+12
+-512.438676164039
+22
+-662.016288182956
+32
+2549.0746800213
+13
+-512.438676164039
+23
+-662.016288182956
+33
+2549.0746800213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-594.593536632776
+20
+-594.593536632776
+30
+2549.0746800213
+11
+-512.438676164039
+21
+-662.016288182956
+31
+2549.0746800213
+12
+-578.08321102903
+22
+-608.143210685445
+32
+2549.0746800213
+13
+-578.08321102903
+23
+-608.143210685445
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-699.168033082722
+20
+-467.169144021929
+30
+914.026066884025
+11
+-784.574341950659
+21
+-324.981333125909
+31
+855.37186879426
+12
+-706.098253038492
+22
+-471.799768952456
+32
+855.37186879426
+13
+-706.098253038492
+23
+-471.799768952456
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-784.574341950659
+20
+-324.981333125909
+30
+855.37186879426
+11
+-699.168033082722
+21
+-467.169144021929
+31
+914.026066884025
+12
+-776.87389411925
+22
+-321.791703197793
+32
+914.026066884025
+13
+-776.87389411925
+23
+-321.791703197793
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-997.760836892423
+20
+-413.286070645571
+30
+2011.5925230317
+11
+-891.670534105406
+21
+-595.795202951324
+31
+1922.19277204157
+12
+-897.961029579872
+22
+-599.99837764929
+32
+2011.5925230317
+13
+-897.961029579872
+23
+-599.99837764929
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-891.670534105406
+20
+-595.795202951324
+30
+1922.19277204157
+11
+-997.760836892423
+21
+-413.286070645571
+31
+2011.5925230317
+12
+-990.771212819307
+22
+-410.390873558597
+32
+1922.19277204157
+13
+-990.771212819307
+23
+-410.390873558597
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-990.771212819307
+20
+-410.390873558597
+30
+1922.19277204157
+11
+-868.04142298445
+21
+-580.00673566728
+31
+1812.39759571907
+12
+-891.670534105406
+22
+-595.795202951324
+32
+1922.19277204157
+13
+-891.670534105406
+23
+-595.795202951324
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-868.04142298445
+20
+-580.00673566728
+30
+1812.39759571907
+11
+-990.771212819307
+21
+-410.390873558597
+31
+1922.19277204157
+12
+-964.515951276276
+22
+-399.515588143821
+32
+1812.39759571907
+13
+-964.515951276276
+23
+-399.515588143821
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-964.515951276276
+20
+-399.515588143821
+30
+1812.39759571907
+11
+-829.407026995335
+21
+-554.192057578438
+31
+1708.93950189862
+12
+-868.04142298445
+22
+-580.00673566728
+32
+1812.39759571907
+13
+-868.04142298445
+23
+-580.00673566728
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-829.407026995335
+20
+-554.192057578438
+30
+1708.93950189862
+11
+-964.515951276276
+21
+-399.515588143821
+31
+1812.39759571907
+12
+-921.587710511788
+22
+-381.734128610352
+32
+1708.93950189862
+13
+-921.587710511788
+23
+-381.734128610352
+33
+1708.93950189862
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.149821895316
+20
+-761.14982219046
+30
+2100.64485501639
+11
+-786.92474167715
+21
+-735.296194513125
+31
+2058.80750841657
+12
+-763.653083482914
+22
+-763.653083482914
+32
+2058.8118770109
+13
+-763.653083482914
+23
+-763.653083482914
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-786.92474167715
+20
+-735.296194513125
+30
+2058.80750841657
+11
+-761.149821895316
+21
+-761.14982219046
+31
+2100.64485501639
+12
+-766.822004083969
+22
+-754.694855069672
+32
+2097.20410948883
+13
+-766.822004083969
+23
+-754.694855069672
+33
+2097.20410948883
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-786.92474167715
+20
+-735.296194513125
+30
+2058.80750841657
+11
+-766.822004083969
+21
+-754.694855069672
+31
+2097.20410948883
+12
+-781.183382327347
+22
+-739.911027417745
+32
+2076.74494872451
+13
+-781.183382327347
+23
+-739.911027417745
+33
+2076.74494872451
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+887.597923605455
+20
+1.80477854883065e-13
+30
+1427.8983600213
+11
+778.906875772646
+21
+-154.93421062823
+31
+1614.7610800213
+12
+870.542978388702
+22
+-173.161764737035
+32
+1427.8983600213
+13
+870.542978388702
+23
+-173.161764737035
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+778.906875772646
+20
+-154.93421062823
+30
+1614.7610800213
+11
+887.597923605455
+21
+1.80477854883065e-13
+31
+1427.8983600213
+12
+794.166563605455
+22
+1.80477854883065e-13
+32
+1614.7610800213
+13
+794.166563605455
+23
+1.80477854883065e-13
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-964.515951276275
+20
+-399.515588143821
+30
+2258.00680432354
+11
+-1051.79710945546
+21
+-209.215453044867
+31
+2148.21162800104
+12
+-990.771212819307
+22
+-410.390873558597
+32
+2148.21162800104
+13
+-990.771212819307
+23
+-410.390873558597
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-1051.79710945546
+20
+-209.215453044867
+30
+2148.21162800104
+11
+-964.515951276275
+21
+-399.515588143821
+31
+2258.00680432354
+12
+-1023.92467246733
+22
+-203.671280618918
+32
+2258.00680432354
+13
+-1023.92467246733
+23
+-203.671280618918
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+467.169144021928
+20
+-699.168033082722
+30
+914.026066884025
+11
+324.981333125909
+21
+-784.574341950659
+31
+855.37186879426
+12
+471.799768952456
+22
+-706.098253038493
+32
+855.37186879426
+13
+471.799768952456
+23
+-706.098253038493
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+324.981333125909
+20
+-784.574341950659
+30
+855.37186879426
+11
+467.169144021928
+21
+-699.168033082722
+31
+914.026066884025
+12
+321.791703197793
+22
+-776.87389411925
+32
+914.026066884025
+13
+321.791703197793
+23
+-776.87389411925
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+914.026066884025
+11
+363.353779128852
+21
+-543.797359730523
+31
+1054.1729200213
+12
+250.282436127116
+22
+-604.235251721862
+32
+1054.1729200213
+13
+250.282436127116
+23
+-604.235251721862
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+363.353779128852
+20
+-543.797359730523
+30
+1054.1729200213
+11
+321.791703197793
+21
+-776.87389411925
+31
+914.026066884025
+12
+467.169144021928
+22
+-699.168033082722
+32
+914.026066884025
+13
+467.169144021928
+23
+-699.168033082722
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+964.515951276275
+20
+-399.515588143821
+30
+1812.39759571907
+11
+1051.79710945546
+21
+-209.215453044867
+31
+1922.19277204157
+12
+990.771212819308
+22
+-410.390873558597
+32
+1922.19277204157
+13
+990.771212819308
+23
+-410.390873558597
+33
+1922.19277204157
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1051.79710945546
+20
+-209.215453044867
+30
+1922.19277204157
+11
+964.515951276275
+21
+-399.515588143821
+31
+1812.39759571907
+12
+1023.92467246733
+22
+-203.671280618918
+32
+1812.39759571907
+13
+1023.92467246733
+23
+-203.671280618918
+33
+1812.39759571907
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+1043.98454271904
+20
+1.80477854883065e-13
+30
+2258.00680432354
+11
+978.352295145615
+21
+-194.606371158736
+31
+2361.46489814399
+12
+1023.92467246733
+22
+-203.671280618918
+32
+2258.00680432354
+13
+1023.92467246733
+23
+-203.671280618918
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+978.352295145615
+20
+-194.606371158736
+30
+2361.46489814399
+11
+1043.98454271904
+21
+1.80477854883065e-13
+31
+2258.00680432354
+12
+997.519349743285
+22
+1.80477854883065e-13
+32
+2361.46489814399
+13
+997.519349743285
+23
+1.80477854883065e-13
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+767.904956185432
+20
+-709.249312269841
+30
+2240.21043503138
+11
+738.20854961057
+21
+-738.208549610569
+31
+2258.00680432354
+12
+739.771130343929
+22
+-739.771130343928
+32
+2249.46912732182
+13
+739.771130343929
+23
+-739.771130343928
+33
+2249.46912732182
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+738.20854961057
+20
+-738.208549610569
+30
+2258.00680432354
+11
+767.904956185432
+21
+-709.249312269841
+31
+2240.21043503138
+12
+868.04142298445
+22
+-580.006735667279
+32
+2258.00680432354
+13
+868.04142298445
+23
+-580.006735667279
+33
+2258.00680432354
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+2258.00680432354
+11
+767.904956185432
+21
+-709.249312269841
+31
+2240.21043503138
+12
+806.222028237971
+22
+-670.885845335315
+32
+2219.70473474119
+13
+806.222028237971
+23
+-670.885845335315
+33
+2219.70473474119
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+2258.00680432354
+11
+806.222028237971
+21
+-670.885845335315
+31
+2219.70473474119
+12
+843.013713767209
+22
+-637.259985333474
+32
+2192.10870461431
+13
+843.013713767209
+23
+-637.259985333474
+33
+2192.10870461431
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+2258.00680432354
+11
+843.013713767209
+21
+-637.259985333474
+31
+2192.10870461431
+12
+876.866128931272
+22
+-609.663955206588
+32
+2158.48284461247
+13
+876.866128931272
+23
+-609.663955206588
+33
+2158.48284461247
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+2258.00680432354
+11
+876.866128931272
+21
+-609.663955206588
+31
+2158.48284461247
+12
+884.794335210004
+22
+-604.173875548016
+32
+2148.21162800104
+13
+884.794335210004
+23
+-604.173875548016
+33
+2148.21162800104
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+868.04142298445
+20
+-580.006735667279
+30
+2258.00680432354
+11
+884.794335210004
+21
+-604.173875548016
+31
+2148.21162800104
+12
+891.670534105407
+22
+-595.795202951324
+32
+2148.21162800104
+13
+891.670534105407
+23
+-595.795202951324
+33
+2148.21162800104
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-705.352696568271
+20
+-705.352696568271
+30
+2361.46489814399
+11
+-868.041422984449
+21
+-580.006735667279
+31
+2258.00680432354
+12
+-738.208549610569
+22
+-738.20854961057
+32
+2258.00680432354
+13
+-738.208549610569
+23
+-738.20854961057
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-868.041422984449
+20
+-580.006735667279
+30
+2258.00680432354
+11
+-705.352696568271
+21
+-705.352696568271
+31
+2361.46489814399
+12
+-829.407026995335
+22
+-554.192057578438
+32
+2361.46489814399
+13
+-829.407026995335
+23
+-554.192057578438
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+911.540741979581
+20
+-574.59252267949
+30
+2011.5925230317
+11
+180.675224578544
+21
+-576.530907025343
+31
+1991.91176299638
+12
+908.625259608371
+22
+-576.530907025343
+32
+1991.91176299638
+13
+908.625259608371
+23
+-576.530907025343
+33
+1991.91176299638
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-576.530907025343
+30
+1991.91176299638
+11
+911.540741979581
+21
+-574.59252267949
+31
+2011.5925230317
+12
+180.675224578544
+22
+-572.26717343136
+32
+2035.20217666346
+13
+180.675224578544
+23
+-572.26717343136
+33
+2035.20217666346
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-572.26717343136
+30
+2035.20217666346
+11
+911.540741979581
+21
+-574.59252267949
+31
+2011.5925230317
+12
+912.783669278017
+22
+-572.267169258698
+32
+2035.20224467364
+13
+912.783669278017
+23
+-572.267169258698
+33
+2035.20224467364
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-572.26717343136
+30
+2035.20217666346
+11
+912.783669278017
+21
+-572.267169258698
+31
+2035.20224467364
+12
+907.767925107023
+22
+-572.267173431359
+32
+2035.20224673698
+13
+907.767925107023
+23
+-572.267173431359
+33
+2035.20224673698
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+767.904940618653
+20
+-709.249312269841
+30
+1830.19391829555
+11
+180.675224578544
+21
+-670.885845335315
+31
+1850.69961858573
+12
+180.675224578544
+22
+-709.249312269842
+32
+1830.19391829555
+13
+180.675224578544
+23
+-709.249312269842
+33
+1830.19391829555
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-670.885845335315
+30
+1850.69961858573
+11
+767.904940618653
+21
+-709.249312269841
+31
+1830.19391829555
+12
+806.222012671193
+22
+-670.885845335315
+32
+1850.69961858573
+13
+806.222012671193
+23
+-670.885845335315
+33
+1850.69961858573
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+303.914386430124
+20
+-733.714233519903
+30
+1614.7610800213
+11
+307.339228961076
+21
+-829.840689601495
+31
+1427.8983600213
+12
+339.669019965462
+22
+-820.033554718597
+32
+1427.8983600213
+13
+339.669019965462
+23
+-820.033554718597
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+307.339228961076
+20
+-829.840689601495
+30
+1427.8983600213
+11
+303.914386430124
+21
+-733.714233519903
+31
+1614.7610800213
+12
+221.595154594654
+22
+-855.850870199531
+32
+1427.8983600213
+13
+221.595154594654
+23
+-855.850870199531
+33
+1427.8983600213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+221.595154594654
+20
+-855.850870199531
+30
+1427.8983600213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1614.7610800213
+12
+173.161764737035
+22
+-870.542978388701
+32
+1427.8983600213
+13
+173.161764737035
+23
+-870.542978388701
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+154.93421062823
+20
+-778.906875772646
+30
+1614.7610800213
+11
+221.595154594654
+21
+-855.850870199531
+31
+1427.8983600213
+12
+303.914386430124
+22
+-733.714233519903
+32
+1614.7610800213
+13
+303.914386430124
+23
+-733.714233519903
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+40.1106512432667
+20
+-1076.01799327905
+30
+2017.42442965997
+11
+35.9517814413362
+21
+-1076.26268839831
+31
+2009.6437315188
+12
+36.9934322066314
+22
+-1076.32501255654
+32
+2011.5925230317
+13
+36.9934322066314
+23
+-1076.32501255654
+33
+2011.5925230317
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+35.9517814413362
+20
+-1076.26268839831
+30
+2009.6437315188
+11
+40.1106512432667
+21
+-1076.01799327905
+31
+2017.42442965997
+12
+35.9517814413364
+22
+-975.958401912124
+32
+2009.6437315188
+13
+35.9517814413364
+23
+-975.958401912124
+33
+2009.6437315188
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+35.9517814413364
+20
+-975.958401912124
+30
+2009.6437315188
+11
+40.1106512432667
+21
+-1076.01799327905
+31
+2017.42442965997
+12
+40.110651243267
+22
+-976.014544733984
+32
+2017.42442965997
+13
+40.110651243267
+23
+-976.014544733984
+33
+2017.42442965997
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-853.465106968372
+20
+-778.056206654812
+30
+2053.98620958956
+11
+-818.480102290147
+21
+-696.846172894875
+31
+2011.59249120966
+12
+-853.905696349335
+22
+-778.54324309139
+32
+2019.68727261649
+13
+-853.905696349335
+23
+-778.54324309139
+33
+2019.68727261649
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-818.480102290147
+20
+-696.846172894875
+30
+2011.59249120966
+11
+-853.465106968372
+21
+-778.056206654812
+31
+2053.98620958956
+12
+-818.273878310588
+22
+-697.096462294947
+32
+2058.80160712022
+13
+-818.273878310588
+23
+-697.096462294947
+33
+2058.80160712022
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+164.047987682633
+20
+-824.724927080674
+30
+914.026066884025
+11
+250.282436127116
+21
+-604.235251721862
+31
+1054.1729200213
+12
+127.592879465023
+22
+-641.452721848564
+32
+1054.1729200213
+13
+127.592879465023
+23
+-641.452721848564
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+250.282436127116
+20
+-604.235251721862
+30
+1054.1729200213
+11
+164.047987682633
+21
+-824.724927080674
+31
+914.026066884025
+12
+321.791703197793
+22
+-776.87389411925
+32
+914.026066884025
+13
+321.791703197793
+23
+-776.87389411925
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+268.159752894785
+20
+-647.394912321209
+30
+1241.03564002131
+11
+154.93421062823
+21
+-778.906875772646
+31
+1054.1729200213
+12
+303.914386430124
+22
+-733.714233519903
+32
+1054.1729200213
+13
+303.914386430124
+23
+-733.714233519903
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+154.93421062823
+20
+-778.906875772646
+30
+1054.1729200213
+11
+268.159752894785
+21
+-647.394912321209
+31
+1241.03564002131
+12
+136.706656519425
+22
+-687.270773156591
+32
+1241.03564002131
+13
+136.706656519425
+23
+-687.270773156591
+33
+1241.03564002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-784.019466456977
+20
+1.80477854883065e-13
+30
+631.979456702016
+11
+-731.120068617964
+21
+-145.428823687577
+31
+587.016306884026
+12
+-768.954752250597
+22
+-152.954610178005
+32
+631.979456702016
+13
+-768.954752250597
+23
+-152.954610178005
+33
+631.979456702016
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-731.120068617964
+20
+-145.428823687577
+30
+587.016306884026
+11
+-784.019466456977
+21
+1.80477854883065e-13
+31
+631.979456702016
+12
+-745.443557551536
+22
+1.80477854883065e-13
+32
+587.016306884026
+13
+-745.443557551536
+23
+1.80477854883065e-13
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-660.670394770277
+20
+-660.670394770277
+30
+2455.6433200213
+11
+-829.407026995335
+21
+-554.192057578438
+31
+2361.46489814399
+12
+-705.352696568271
+22
+-705.352696568271
+32
+2361.46489814399
+13
+-705.352696568271
+23
+-705.352696568271
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-829.407026995335
+20
+-554.192057578438
+30
+2361.46489814399
+11
+-660.670394770277
+21
+-660.670394770277
+31
+2455.6433200213
+12
+-705.689427437034
+22
+-605.814544747273
+32
+2455.6433200213
+13
+-705.689427437034
+23
+-605.814544747273
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-829.407026995335
+20
+-554.192057578438
+30
+2361.46489814399
+11
+-705.689427437034
+21
+-605.814544747273
+31
+2455.6433200213
+12
+-765.568613945096
+22
+-532.851544877859
+32
+2455.6433200213
+13
+-765.568613945096
+23
+-532.851544877859
+33
+2455.6433200213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-829.407026995335
+20
+-554.192057578438
+30
+2361.46489814399
+11
+-765.568613945096
+21
+-532.851544877859
+31
+2455.6433200213
+12
+-776.866198451135
+22
+-519.085398326623
+32
+2455.6433200213
+13
+-776.866198451135
+23
+-519.085398326623
+33
+2455.6433200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+706.098253038493
+20
+-471.799768952456
+30
+855.37186879426
+11
+594.593536632776
+21
+-594.593536632776
+31
+914.026066884025
+12
+600.487204246519
+22
+-600.48720424652
+32
+855.37186879426
+13
+600.487204246519
+23
+-600.48720424652
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+914.026066884025
+11
+706.098253038493
+21
+-471.799768952456
+31
+855.37186879426
+12
+699.168033082722
+22
+-467.169144021929
+32
+914.026066884025
+13
+699.168033082722
+23
+-467.169144021929
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+321.791703197793
+20
+-776.87389411925
+30
+914.026066884025
+11
+165.674046918965
+21
+-832.899678896021
+31
+855.37186879426
+12
+324.981333125909
+22
+-784.574341950659
+32
+855.37186879426
+13
+324.981333125909
+23
+-784.574341950659
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+165.674046918965
+20
+-832.899678896021
+30
+855.37186879426
+11
+321.791703197793
+21
+-776.87389411925
+31
+914.026066884025
+12
+164.047987682633
+22
+-824.724927080674
+32
+914.026066884025
+13
+164.047987682633
+23
+-824.724927080674
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+670.391132645368
+20
+-794.16651328432
+30
+1813.3028368105
+11
+180.675224578544
+21
+-750.87609961724
+31
+1817.56657040449
+12
+180.675224578544
+22
+-794.16651328432
+32
+1813.3028368105
+13
+180.675224578544
+23
+-794.16651328432
+33
+1813.3028368105
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-750.87609961724
+30
+1817.56657040449
+11
+670.391132645368
+21
+-794.16651328432
+31
+1813.3028368105
+12
+724.87187698787
+22
+-750.87609961724
+32
+1817.56657040449
+13
+724.87187698787
+23
+-750.87609961724
+33
+1817.56657040449
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-978.669071362051
+30
+2158.48284461247
+11
+653.750224578544
+21
+-999.174771652236
+31
+2120.11937767794
+12
+180.675224578544
+22
+-999.174771652236
+32
+2120.11937767794
+13
+180.675224578544
+23
+-999.174771652236
+33
+2120.11937767794
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+653.750224578544
+20
+-999.174771652236
+30
+2120.11937767794
+11
+180.675224578544
+21
+-978.669071362051
+31
+2158.48284461247
+12
+653.750224578544
+22
+-978.669071362051
+32
+2158.48284461247
+13
+653.750224578544
+23
+-978.669071362051
+33
+2158.48284461247
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-707.112261617118
+30
+2017.88600937388
+11
+104.493588061205
+21
+-712.163204861239
+31
+2001.23529816273
+12
+180.675224578544
+22
+-712.163201305221
+32
+2001.23529268221
+13
+180.675224578544
+23
+-712.163201305221
+33
+2001.23529268221
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493588061205
+20
+-712.163204861239
+30
+2001.23529816273
+11
+180.675224578544
+21
+-707.112261617118
+31
+2017.88600937388
+12
+104.493585205719
+22
+-707.112262514746
+32
+2017.88602361794
+13
+104.493585205719
+23
+-707.112262514746
+33
+2017.88602361794
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+561.560562517035
+20
+-561.560562517035
+30
+1614.7610800213
+11
+540.907511486368
+21
+-698.794954204847
+31
+1427.8983600213
+12
+627.626510748516
+22
+-627.626510748516
+32
+1427.8983600213
+13
+627.626510748516
+23
+-627.626510748516
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+540.907511486368
+20
+-698.794954204847
+30
+1427.8983600213
+11
+441.215302798659
+21
+-660.325364744672
+31
+1614.7610800213
+12
+493.122985245198
+22
+-738.010701420772
+32
+1427.8983600213
+13
+493.122985245198
+23
+-738.010701420772
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+441.215302798659
+20
+-660.325364744672
+30
+1614.7610800213
+11
+540.907511486368
+21
+-698.794954204847
+31
+1427.8983600213
+12
+561.560562517035
+22
+-561.560562517035
+32
+1614.7610800213
+13
+561.560562517035
+23
+-561.560562517035
+33
+1614.7610800213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-750.032010089465
+20
+-762.726244296354
+30
+1915.09420023775
+11
+-781.550764523053
+21
+-852.489442592712
+31
+1950.71579563676
+12
+-805.85406896736
+22
+-828.277941296301
+32
+1950.68418808414
+13
+-805.85406896736
+23
+-828.277941296301
+33
+1950.68418808414
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-781.550764523053
+20
+-852.489442592712
+30
+1950.71579563676
+11
+-750.032010089465
+21
+-762.726244296354
+31
+1915.09420023775
+12
+-712.200510303116
+22
+-793.069743896677
+32
+1912.98147661467
+13
+-712.200510303116
+23
+-793.069743896677
+33
+1912.98147661467
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+594.593536632776
+20
+-594.593536632776
+30
+914.026066884025
+11
+543.797359730523
+21
+-363.353779128852
+31
+1054.1729200213
+12
+462.461640169813
+22
+-462.461640169813
+32
+1054.1729200213
+13
+462.461640169813
+23
+-462.461640169813
+33
+1054.1729200213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+543.797359730523
+20
+-363.353779128852
+30
+1054.1729200213
+11
+594.593536632776
+21
+-594.593536632776
+31
+914.026066884025
+12
+699.168033082722
+22
+-467.169144021929
+32
+914.026066884025
+13
+699.168033082722
+23
+-467.169144021929
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-683.397324988288
+20
+-829.51728232132
+30
+2058.8118770109
+11
+-761.149821895316
+21
+-761.14982219046
+31
+2100.64485501639
+12
+-763.653083482914
+22
+-763.653083482914
+32
+2058.8118770109
+13
+-763.653083482914
+23
+-763.653083482914
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.149821895316
+20
+-761.14982219046
+30
+2100.64485501639
+11
+-683.397324988288
+21
+-829.51728232132
+31
+2058.8118770109
+12
+-688.216174174222
+22
+-823.534449985187
+32
+2077.42717273413
+13
+-688.216174174222
+23
+-823.534449985187
+33
+2077.42717273413
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.149821895316
+20
+-761.14982219046
+30
+2100.64485501639
+11
+-688.216174174222
+21
+-823.534449985187
+31
+2077.42717273413
+12
+-703.270205185374
+22
+-808.916878172158
+32
+2098.19892992261
+13
+-703.270205185374
+23
+-808.916878172158
+33
+2098.19892992261
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.149821895316
+20
+-761.14982219046
+30
+2100.64485501639
+11
+-703.270205185374
+21
+-808.916878172158
+31
+2098.19892992261
+12
+-723.84293286299
+22
+-790.84270017674
+32
+2109.1268343449
+13
+-723.84293286299
+23
+-790.84270017674
+33
+2109.1268343449
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-761.149821895316
+20
+-761.14982219046
+30
+2100.64485501639
+11
+-723.84293286299
+21
+-790.84270017674
+31
+2109.1268343449
+12
+-746.579505030633
+22
+-772.239793008819
+32
+2108.60809856919
+13
+-746.579505030633
+23
+-772.239793008819
+33
+2108.60809856919
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-704.67526609701
+20
+-470.84895947612
+30
+796.153149972084
+11
+-590.997993226901
+21
+-590.997993226901
+31
+738.078199114136
+12
+-599.277053327022
+22
+-599.277053327022
+32
+796.153149972084
+13
+-599.277053327022
+23
+-599.277053327022
+33
+796.153149972084
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-590.997993226901
+20
+-590.997993226901
+30
+738.078199114136
+11
+-704.67526609701
+21
+-470.84895947612
+31
+796.153149972084
+12
+-694.940121314314
+22
+-464.344143695271
+32
+738.078199114136
+13
+-694.940121314314
+23
+-464.344143695271
+33
+738.078199114136
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-779.335772128321
+20
+-850.040945080999
+30
+2123.14819601944
+11
+-750.226480623555
+21
+-763.163737563064
+31
+2153.51833793914
+12
+-803.639076572628
+22
+-825.829443784589
+32
+2123.11658846682
+13
+-803.639076572628
+23
+-825.829443784589
+33
+2123.11658846682
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-750.226480623555
+20
+-763.163737563064
+30
+2153.51833793914
+11
+-779.335772128321
+21
+-850.040945080999
+31
+2123.14819601944
+12
+-713.051374182295
+22
+-793.031288591004
+32
+2155.44278114838
+13
+-713.051374182295
+23
+-793.031288591004
+33
+2155.44278114838
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+724.87187698787
+20
+-750.87609961724
+30
+1817.56657040449
+11
+180.675224578544
+21
+-709.249312269842
+31
+1830.19391829555
+12
+180.675224578544
+22
+-750.87609961724
+32
+1817.56657040449
+13
+180.675224578544
+23
+-750.87609961724
+33
+1817.56657040449
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-709.249312269842
+30
+1830.19391829555
+11
+724.87187698787
+21
+-750.87609961724
+31
+1817.56657040449
+12
+767.904940618653
+22
+-709.249312269841
+32
+1830.19391829555
+13
+767.904940618653
+23
+-709.249312269841
+33
+1830.19391829555
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+767.904940618653
+20
+-709.249312269841
+30
+1830.19391829555
+11
+724.87187698787
+21
+-750.87609961724
+31
+1817.56657040449
+12
+739.771122243662
+22
+-739.771122243661
+32
+1820.9352284623
+13
+739.771122243662
+23
+-739.771122243661
+33
+1820.9352284623
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.208549610569
+20
+-738.20854961057
+30
+2258.00680432354
+11
+-759.379832416841
+21
+-756.991889361348
+31
+2148.21162800104
+12
+-758.175252738136
+22
+-758.175252738136
+32
+2148.91211343617
+13
+-758.175252738136
+23
+-758.175252738136
+33
+2148.91211343617
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-759.379832416841
+20
+-756.991889361348
+30
+2148.21162800104
+11
+-738.208549610569
+21
+-738.20854961057
+31
+2258.00680432354
+12
+-891.670534105406
+22
+-595.795202951324
+32
+2148.21162800104
+13
+-891.670534105406
+23
+-595.795202951324
+33
+2148.21162800104
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-891.670534105406
+20
+-595.795202951324
+30
+2148.21162800104
+11
+-738.208549610569
+21
+-738.20854961057
+31
+2258.00680432354
+12
+-868.041422984449
+22
+-580.006735667279
+32
+2258.00680432354
+13
+-868.041422984449
+23
+-580.006735667279
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-769.870311262695
+20
+-863.130130350016
+30
+1987.61043910797
+11
+-723.636295253065
+21
+-790.983771266745
+31
+1961.01586348506
+12
+-785.140115231108
+22
+-848.157192786392
+32
+1978.73092447164
+13
+-785.140115231108
+23
+-848.157192786392
+33
+1978.73092447164
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-723.636295253065
+20
+-790.983771266745
+30
+1961.01586348506
+11
+-769.870311262695
+21
+-863.130130350016
+31
+1987.61043910797
+12
+-702.965588161926
+22
+-809.153241506708
+32
+1972.08037046597
+13
+-702.965588161926
+23
+-809.153241506708
+33
+1972.08037046597
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-655.637457605706
+20
+-847.372595440649
+30
+2104.03168141582
+11
+-757.051052836406
+21
+-872.59583635536
+31
+2110.05176266305
+12
+-740.177565197592
+22
+-890.060339871748
+32
+2085.82110165668
+13
+-740.177565197592
+23
+-890.060339871748
+33
+2085.82110165668
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-757.051052836406
+20
+-872.59583635536
+30
+2110.05176266305
+11
+-655.637457605706
+21
+-847.372595440649
+31
+2104.03168141582
+12
+-680.351354626835
+22
+-823.413171149779
+32
+2137.7839549476
+13
+-680.351354626835
+23
+-823.413171149779
+33
+2137.7839549476
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-786.92474167715
+20
+-735.296194513125
+30
+2058.80750841657
+11
+-763.653083482914
+21
+-763.653083482914
+31
+2011.5925230317
+12
+-763.653083482914
+22
+-763.653083482914
+32
+2058.8118770109
+13
+-763.653083482914
+23
+-763.653083482914
+33
+2058.8118770109
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-763.653083482914
+20
+-763.653083482914
+30
+2011.5925230317
+11
+-786.92474167715
+21
+-735.296194513125
+31
+2058.80750841657
+12
+-786.927339360508
+22
+-735.2933223192
+32
+2011.59250954971
+13
+-786.927339360508
+23
+-735.2933223192
+33
+2011.59250954971
+70
+3
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-786.927339360508
+20
+-735.2933223192
+30
+2011.59250954971
+11
+-786.92474167715
+21
+-735.296194513125
+31
+2058.80750841657
+12
+-789.34285913936
+22
+-732.349614898499
+32
+2049.89434090933
+13
+-789.34285913936
+23
+-732.349614898499
+33
+2049.89434090933
+70
+13
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-786.927339360508
+20
+-735.2933223192
+30
+2011.59250954971
+11
+-789.34285913936
+21
+-732.349614898499
+31
+2049.89434090933
+12
+-789.394716623343
+22
+-732.286733093936
+32
+2020.79944934296
+13
+-789.394716623343
+23
+-732.286733093936
+33
+2020.79944934296
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493610898294
+20
+-856.9292108199
+30
+1972.4395492014
+11
+180.675224578544
+21
+-843.478785654691
+31
+1961.40114566384
+12
+104.493610580936
+22
+-843.478858324204
+32
+1961.40113017901
+13
+104.493610580936
+23
+-843.478858324204
+33
+1961.40113017901
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-843.478785654691
+30
+1961.40114566384
+11
+104.493610898294
+21
+-856.9292108199
+31
+1972.4395492014
+12
+180.675224578544
+22
+-856.929131071254
+32
+1972.43955887653
+13
+180.675224578544
+23
+-856.929131071254
+33
+1972.43955887653
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.49360070239
+20
+-760.199658141424
+30
+1953.19884488255
+11
+180.675224578544
+21
+-744.854240913949
+31
+1961.40114566384
+12
+104.493597604008
+22
+-744.854261675785
+32
+1961.40113017901
+13
+104.493597604008
+23
+-744.854261675785
+33
+1961.40113017901
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-744.854240913949
+30
+1961.40114566384
+11
+104.49360070239
+21
+-760.199658141424
+31
+1953.19884488255
+12
+180.675224578544
+22
+-760.199629303065
+32
+1953.19886468436
+13
+180.675224578544
+23
+-760.199629303065
+33
+1953.19886468436
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493608114757
+20
+-881.220857485245
+30
+2017.88602361794
+11
+180.675224578544
+21
+-882.926258568641
+31
+2035.20217666346
+12
+180.675224578544
+22
+-881.220764951522
+32
+2017.88600937388
+13
+180.675224578544
+23
+-881.220764951522
+33
+2017.88600937388
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-882.926258568641
+30
+2035.20217666346
+11
+104.493608114757
+21
+-881.220857485245
+31
+2017.88602361794
+12
+104.493606060716
+22
+-882.926351999993
+32
+2035.2022000213
+13
+104.493606060716
+23
+-882.926351999993
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+832.899678896021
+20
+-165.674046918965
+30
+855.37186879426
+11
+776.87389411925
+21
+-321.791703197793
+31
+914.026066884025
+12
+784.574341950659
+22
+-324.981333125909
+32
+855.37186879426
+13
+784.574341950659
+23
+-324.981333125909
+33
+855.37186879426
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+776.87389411925
+20
+-321.791703197793
+30
+914.026066884025
+11
+832.899678896021
+21
+-165.674046918965
+31
+855.37186879426
+12
+824.724927080674
+22
+-164.047987682633
+32
+914.026066884025
+13
+824.724927080674
+23
+-164.047987682633
+33
+914.026066884025
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-554.192057578438
+20
+-829.407026995335
+30
+2361.46489814399
+11
+-738.208549610569
+21
+-738.20854961057
+31
+2258.00680432354
+12
+-580.006735667279
+22
+-868.041422984449
+32
+2258.00680432354
+13
+-580.006735667279
+23
+-868.041422984449
+33
+2258.00680432354
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+-738.208549610569
+20
+-738.20854961057
+30
+2258.00680432354
+11
+-554.192057578438
+21
+-829.407026995335
+31
+2361.46489814399
+12
+-705.352696568271
+22
+-705.352696568271
+32
+2361.46489814399
+13
+-705.352696568271
+23
+-705.352696568271
+33
+2361.46489814399
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493608114766
+20
+-811.482736403359
+30
+1948.14790253605
+11
+180.675224578544
+21
+-794.16651328432
+31
+1946.44243137914
+12
+104.493606060728
+22
+-794.166559999995
+32
+1946.44240802131
+13
+104.493606060728
+23
+-794.166559999995
+33
+1946.44240802131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-794.16651328432
+30
+1946.44243137914
+11
+104.493608114766
+21
+-811.482736403359
+31
+1948.14790253605
+12
+180.675224578544
+22
+-811.482680573908
+32
+1948.14792499626
+13
+180.675224578544
+23
+-811.482680573908
+33
+1948.14792499626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493609641047
+20
+-876.169915138752
+30
+2001.23529816273
+11
+180.675224578544
+21
+-867.967544283947
+31
+1985.88990429309
+12
+104.493610580933
+22
+-867.967629842287
+32
+1985.88990169709
+13
+104.493610580933
+23
+-867.967629842287
+33
+1985.88990169709
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-867.967544283947
+30
+1985.88990429309
+11
+104.493609641047
+21
+-876.169915138752
+31
+2001.23529816273
+12
+180.675224578544
+22
+-876.169825263419
+32
+2001.23529268221
+13
+180.675224578544
+23
+-876.169825263419
+33
+2001.23529268221
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+870.542978388702
+20
+-173.161764737035
+30
+1427.8983600213
+11
+733.714233519903
+21
+-303.914386430124
+31
+1614.7610800213
+12
+820.033554718597
+22
+-339.669019965462
+32
+1427.8983600213
+13
+820.033554718597
+23
+-339.669019965462
+33
+1427.8983600213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+733.714233519903
+20
+-303.914386430124
+30
+1614.7610800213
+11
+870.542978388702
+21
+-173.161764737035
+31
+1427.8983600213
+12
+778.906875772646
+22
+-154.93421062823
+32
+1614.7610800213
+13
+778.906875772646
+23
+-154.93421062823
+33
+1614.7610800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493606060728
+20
+-794.166559999995
+30
+1946.44240802131
+11
+180.675224578544
+21
+-776.850345994732
+31
+1948.14792499626
+12
+104.493603557875
+22
+-776.850383596631
+32
+1948.14790253605
+13
+104.493603557875
+23
+-776.850383596631
+33
+1948.14790253605
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-776.850345994732
+30
+1948.14792499626
+11
+104.493606060728
+21
+-794.166559999995
+31
+1946.44240802131
+12
+180.675224578544
+22
+-794.16651328432
+32
+1946.44243137914
+13
+180.675224578544
+23
+-794.16651328432
+33
+1946.44243137914
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+104.493610580933
+20
+-867.967629842287
+30
+1985.88990169709
+11
+180.675224578544
+21
+-856.929131071254
+31
+1972.43955887653
+12
+104.493610898294
+22
+-856.9292108199
+32
+1972.4395492014
+13
+104.493610898294
+23
+-856.9292108199
+33
+1972.4395492014
+70
+1
+ 0
+3DFACE
+ 8
+body_half_outside
+10
+180.675224578544
+20
+-856.929131071254
+30
+1972.43955887653
+11
+104.493610580933
+21
+-867.967629842287
+31
+1985.88990169709
+12
+180.675224578544
+22
+-867.967544283947
+32
+1985.88990429309
+13
+180.675224578544
+23
+-867.967544283947
+33
+1985.88990429309
+70
+1
+ 0
+LINE
+ 8
+gearbox_half
+10
+30.4100782304564
+20
+-746.49013258163
+30
+2453.45715065631
+11
+24.34322336653
+21
+-746.490281375615
+31
+2458.93184091804
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+40.5223071141985
+21
+-746.489826768683
+31
+2418.48410781754
+ 0
+LINE
+ 8
+gearbox_half
+10
+38.1044882661712
+20
+-746.472597450548
+30
+2441.59510408829
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+28.6886074277319
+21
+-845.586914684007
+31
+2396.25770684411
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.80083252567691
+20
+-746.490516835407
+30
+2466.03430060887
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+24.34322336653
+21
+-746.490281375615
+31
+2458.93184091804
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+-38.4950902517974
+21
+-746.468944067437
+31
+2440.30734482534
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+1.97523338443695e-05
+21
+-746.466300328333
+31
+2408.44996985759
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+-33.4678737118522
+21
+-842.638323863285
+31
+2401.89221007289
+ 0
+LINE
+ 8
+gearbox_half
+10
+1.97523338443695e-05
+20
+-746.466300328333
+30
+2408.44996985759
+11
+-8.51065249376504e-06
+21
+-839.802827497933
+31
+2407.23923490746
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+-28.6885754589981
+21
+-845.586914071948
+31
+2396.25770800615
+ 0
+LINE
+ 8
+gearbox_half
+10
+-15.9204113486204
+20
+-849.898361163922
+30
+2387.78046547824
+11
+-8.51065249376504e-06
+21
+-839.802827497933
+31
+2407.23923490746
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+8.20040795902847
+21
+-851.106221594429
+31
+2385.4069325561
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+40.5223036225517
+21
+-746.489826768019
+31
+2433.13926654555
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+22.8299783182512
+21
+-848.019743175159
+31
+2391.47368489106
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+-8.20037490092574
+21
+-851.106218203592
+31
+2385.40693910603
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.12757738010438e-05
+20
+-746.490561947348
+30
+2467.05568035128
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+38.4951388369074
+20
+-746.468944065183
+30
+2440.307304368
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+-40.5222597845463
+20
+-746.489826767721
+30
+2433.13935135064
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+15.9204143676902
+21
+-849.898373872036
+31
+2387.78044098382
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+33.4679083982488
+21
+-842.638324380738
+31
+2401.8922090971
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+-40.5222636135967
+21
+-746.489826768433
+31
+2418.48410805367
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+1.72997611565862e-05
+21
+-851.533505856544
+31
+2384.56770196969
+ 0
+LINE
+ 8
+gearbox_half
+10
+30.4100782304564
+20
+-746.49013258163
+30
+2453.45715065631
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+-8.51065249376504e-06
+20
+-839.802827497933
+30
+2407.23923490746
+11
+-22.8299485734197
+21
+-848.019743098533
+31
+2391.47368503808
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+-38.4950971525309
+21
+-746.468944065041
+31
+2411.31607076746
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+35.1336643413592
+21
+-746.489997426872
+31
+2447.15311715482
+ 0
+LINE
+ 8
+gearbox_half
+10
+-35.1336147072826
+20
+-746.489997435648
+30
+2447.15314153492
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+-41.243969438466
+20
+-746.489812236375
+30
+2425.81166701568
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+41.2440089431315
+21
+-746.489812235881
+31
+2425.81169037352
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+-17.0525826131802
+21
+-746.490415123346
+31
+2463.2377628621
+ 0
+LINE
+ 8
+gearbox_half
+10
+-24.3431841465257
+20
+-746.490281376331
+30
+2458.9318438987
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+17.0526628275986
+20
+-746.490415117915
+30
+2463.23773775863
+11
+2.7574625836424e-05
+21
+-746.482315034391
+31
+2425.81166985652
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+8.80087264672179
+21
+-746.490516834585
+31
+2466.03429657022
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+38.4951397868556
+21
+-746.468944064851
+31
+2411.31607056148
+ 0
+LINE
+ 8
+gearbox_half
+10
+2.7574625836424e-05
+20
+-746.482315034391
+30
+2425.81166985652
+11
+-30.4100395457505
+21
+-746.490132582396
+31
+2453.45715336784
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4089950656911
+20
+-70.0735200000139
+30
+1719.8874193002
+11
+-23.8222131580276
+21
+-116.789200000014
+31
+1715.92498725262
+12
+-23.8222131580276
+22
+-70.0735200000139
+32
+1715.92498725262
+13
+-23.8222131580276
+23
+-70.0735200000139
+33
+1715.92498725262
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222131580276
+20
+-116.789200000014
+30
+1715.92498725262
+11
+-16.4089950656911
+21
+-70.0735200000139
+31
+1719.8874193002
+12
+-16.4089950656911
+22
+-116.789200000014
+32
+1719.8874193002
+13
+-16.4089950656911
+23
+-116.789200000014
+33
+1719.8874193002
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+712.934349429914
+20
+-116.789200000014
+30
+1614.07300396247
+11
+-758.547422188618
+21
+-116.789200000014
+31
+1522.84685844505
+12
+758.547422188619
+22
+-116.789200000014
+32
+1522.84685844505
+13
+758.547422188619
+23
+-116.789200000014
+33
+1522.84685844505
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-758.547422188618
+20
+-116.789200000014
+30
+1522.84685844505
+11
+712.934349429914
+21
+-116.789200000014
+31
+1614.07300396247
+12
+-712.59031140046
+22
+-116.789200000014
+32
+1614.76108002137
+13
+-712.59031140046
+23
+-116.789200000014
+33
+1614.76108002137
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-712.59031140046
+20
+-116.789200000014
+30
+1614.76108002137
+11
+712.934349429914
+21
+-116.789200000014
+31
+1614.07300396247
+12
+93.4322738363532
+22
+-116.789200000014
+32
+1614.76107890595
+13
+93.4322738363532
+23
+-116.789200000014
+33
+1614.76107890595
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-712.59031140046
+20
+-116.789200000014
+30
+1614.76108002137
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+-93.4313636055058
+22
+-116.789200000014
+32
+1614.76108002137
+13
+-93.4313636055058
+23
+-116.789200000014
+33
+1614.76108002137
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+1614.76108002137
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+8.36522724084684
+22
+-116.789200000014
+32
+1638.21727291857
+13
+8.36522724084684
+23
+-116.789200000014
+33
+1638.21727291857
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36522724084684
+20
+-116.789200000014
+30
+1638.21727291857
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+16.4090345703586
+22
+-116.789200000014
+32
+1640.65732084063
+13
+16.4090345703586
+23
+-116.789200000014
+33
+1640.65732084063
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090345703586
+20
+-116.789200000014
+30
+1640.65732084063
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+23.8222526626951
+22
+-116.789200000014
+32
+1644.61975288821
+13
+23.8222526626951
+23
+-116.789200000014
+33
+1644.61975288821
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8222526626951
+20
+-116.789200000014
+30
+1644.61975288821
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+30.3199957039486
+22
+-116.789200000014
+32
+1649.95229501988
+13
+30.3199957039486
+23
+-116.789200000014
+33
+1649.95229501988
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3199957039486
+20
+-116.789200000014
+30
+1649.95229501988
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+35.65255907302
+22
+-116.789200000014
+32
+1656.45002063205
+13
+35.65255907302
+23
+-116.789200000014
+33
+1656.45002063205
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.65255907302
+20
+-116.789200000014
+30
+1656.45002063205
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+39.6150153501718
+22
+-116.789200000014
+32
+1663.86322577341
+13
+39.6150153501718
+23
+-116.789200000014
+33
+1663.86322577341
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150153501718
+20
+-116.789200000014
+30
+1663.86322577341
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+42.0550895628442
+22
+-116.789200000014
+32
+1671.90702512775
+13
+42.0550895628442
+23
+-116.789200000014
+33
+1671.90702512775
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550895628442
+20
+-116.789200000014
+30
+1671.90702512775
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+42.8790110274535
+22
+-116.789200000014
+32
+1680.2722999969
+13
+42.8790110274535
+23
+-116.789200000014
+33
+1680.2722999969
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-116.789200000014
+30
+1680.2722999969
+11
+93.4322738363532
+21
+-116.789200000014
+31
+1614.76107890595
+12
+93.4313563944944
+22
+-116.789200000014
+32
+2549.07468002137
+13
+93.4313563944944
+23
+-116.789200000014
+33
+2549.07468002137
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+1614.76108002137
+11
+8.36522724084684
+21
+-116.789200000014
+31
+1638.21727291857
+12
+-5.03211860767294e-05
+22
+-116.789200000014
+32
+1637.3933787953
+13
+-5.03211860767294e-05
+23
+-116.789200000014
+33
+1637.3933787953
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-116.789200000014
+30
+1680.2722999969
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+42.0551169041753
+22
+-116.789200000014
+32
+1688.63757755893
+13
+42.0551169041753
+23
+-116.789200000014
+33
+1688.63757755893
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551169041753
+20
+-116.789200000014
+30
+1688.63757755893
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+39.615068982122
+22
+-116.789200000014
+32
+1696.68138488844
+13
+39.615068982122
+23
+-116.789200000014
+33
+1696.68138488844
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.615068982122
+20
+-116.789200000014
+30
+1696.68138488844
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+35.6526369345435
+22
+-116.789200000014
+32
+1704.09460298078
+13
+35.6526369345435
+23
+-116.789200000014
+33
+1704.09460298078
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6526369345435
+20
+-116.789200000014
+30
+1704.09460298078
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+30.3200948028707
+22
+-116.789200000014
+32
+1710.59234602203
+13
+30.3200948028707
+23
+-116.789200000014
+33
+1710.59234602203
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200948028707
+20
+-116.789200000014
+30
+1710.59234602203
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+23.8223691906999
+22
+-116.789200000014
+32
+1715.9249093911
+13
+23.8223691906999
+23
+-116.789200000014
+33
+1715.9249093911
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223691906999
+20
+-116.789200000014
+30
+1715.9249093911
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+16.4091640493401
+22
+-116.789200000014
+32
+1719.88736566825
+13
+16.4091640493401
+23
+-116.789200000014
+33
+1719.88736566825
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091640493401
+20
+-116.789200000014
+30
+1719.88736566825
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+42.8790110274535
+22
+-116.789200000014
+32
+2035.20210659002
+13
+42.8790110274535
+23
+-116.789200000014
+33
+2035.20210659002
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091640493401
+20
+-116.789200000014
+30
+1719.88736566825
+11
+42.8790110274535
+21
+-116.789200000014
+31
+2035.20210659002
+12
+42.0550941197328
+22
+-116.789200000014
+32
+2026.83683127205
+13
+42.0550941197328
+23
+-116.789200000014
+33
+2026.83683127205
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091640493401
+20
+-116.789200000014
+30
+1719.88736566825
+11
+42.0550941197328
+21
+-116.789200000014
+31
+2026.83683127205
+12
+8.36536469500046
+22
+-116.789200000014
+32
+1722.32743988093
+13
+8.36536469500046
+23
+-116.789200000014
+33
+1722.32743988093
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36536469500046
+20
+-116.789200000014
+30
+1722.32743988093
+11
+42.0550941197328
+21
+-116.789200000014
+31
+2026.83683127205
+12
+8.98258536075502e-05
+22
+-116.789200000014
+32
+1723.15136134553
+13
+8.98258536075502e-05
+23
+-116.789200000014
+33
+1723.15136134553
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+42.0550941197328
+21
+-116.789200000014
+31
+2026.83683127205
+12
+39.6150242888304
+22
+-116.789200000014
+32
+2018.79303058852
+13
+39.6150242888304
+23
+-116.789200000014
+33
+2018.79303058852
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+39.6150242888304
+21
+-116.789200000014
+31
+2018.79303058852
+12
+35.652572049941
+22
+-116.789200000014
+32
+2011.37982328866
+13
+35.652572049941
+23
+-116.789200000014
+33
+2011.37982328866
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+35.652572049941
+21
+-116.789200000014
+31
+2011.37982328866
+12
+30.3200122204362
+22
+-116.789200000014
+32
+2004.88209477165
+13
+30.3200122204362
+23
+-116.789200000014
+33
+2004.88209477165
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+30.3200122204362
+21
+-116.789200000014
+31
+2004.88209477165
+12
+23.8222720840299
+22
+-116.789200000014
+32
+1999.54954910041
+13
+23.8222720840299
+23
+-116.789200000014
+33
+1999.54954910041
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+23.8222720840299
+21
+-116.789200000014
+31
+1999.54954910041
+12
+16.4090561501895
+22
+-116.789200000014
+32
+1995.58711301456
+13
+16.4090561501895
+23
+-116.789200000014
+33
+1995.58711301456
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+16.4090561501895
+21
+-116.789200000014
+31
+1995.58711301456
+12
+8.36525014987311
+22
+-116.789200000014
+32
+1993.14706071074
+13
+8.36525014987311
+23
+-116.789200000014
+33
+1993.14706071074
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+8.36525014987311
+21
+-116.789200000014
+31
+1993.14706071074
+12
+-2.69633454074381e-05
+22
+-116.789200000014
+32
+1992.32316203057
+13
+-2.69633454074381e-05
+23
+-116.789200000014
+33
+1992.32316203057
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-116.789200000014
+30
+2035.20210659002
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+42.0551123472866
+22
+-116.789200000014
+32
+2043.56738370323
+13
+42.0551123472866
+23
+-116.789200000014
+33
+2043.56738370323
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551123472866
+20
+-116.789200000014
+30
+2043.56738370323
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+39.6150600434633
+22
+-116.789200000014
+32
+2051.61118970355
+13
+39.6150600434633
+23
+-116.789200000014
+33
+2051.61118970355
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150600434633
+20
+-116.789200000014
+30
+2051.61118970355
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+35.6526239576226
+22
+-116.789200000014
+32
+2059.02440563739
+13
+35.6526239576226
+23
+-116.789200000014
+33
+2059.02440563739
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6526239576226
+20
+-116.789200000014
+30
+2059.02440563739
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+30.3200782863833
+22
+-116.789200000014
+32
+2065.5221457738
+13
+30.3200782863833
+23
+-116.789200000014
+33
+2065.5221457738
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200782863833
+20
+-116.789200000014
+30
+2065.5221457738
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+23.8223497693652
+22
+-116.789200000014
+32
+2070.8547056033
+13
+23.8223497693652
+23
+-116.789200000014
+33
+2070.8547056033
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223497693652
+20
+-116.789200000014
+30
+2070.8547056033
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+16.4091424695092
+22
+-116.789200000014
+32
+2074.81715784219
+13
+16.4091424695092
+23
+-116.789200000014
+33
+2074.81715784219
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091424695092
+20
+-116.789200000014
+30
+2074.81715784219
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+8.3653417859741
+22
+-116.789200000014
+32
+2077.25722767309
+13
+8.3653417859741
+23
+-116.789200000014
+33
+2077.25722767309
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.3653417859741
+20
+-116.789200000014
+30
+2077.25722767309
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+6.64680129382589e-05
+22
+-116.789200000014
+32
+2078.08114458081
+13
+6.64680129382589e-05
+23
+-116.789200000014
+33
+2078.08114458081
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+39.6150423666468
+22
+-116.789200000014
+32
+2409.40261154673
+13
+39.6150423666468
+23
+-116.789200000014
+33
+2409.40261154673
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+39.6150423666468
+21
+-116.789200000014
+31
+2409.40261154673
+12
+35.652598194651
+22
+-116.789200000014
+32
+2401.98939991186
+13
+35.652598194651
+23
+-116.789200000014
+33
+2401.98939991186
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+35.652598194651
+21
+-116.789200000014
+31
+2401.98939991186
+12
+30.3200454313183
+22
+-116.789200000014
+32
+2395.49166556936
+13
+30.3200454313183
+23
+-116.789200000014
+33
+2395.49166556936
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+30.3200454313183
+21
+-116.789200000014
+31
+2395.49166556936
+12
+23.8223110888135
+22
+-116.789200000014
+32
+2390.15911280603
+13
+23.8223110888135
+23
+-116.789200000014
+33
+2390.15911280603
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+23.8223110888135
+21
+-116.789200000014
+31
+2390.15911280603
+12
+16.4090994539476
+22
+-116.789200000014
+32
+2386.19666863403
+13
+16.4090994539476
+23
+-116.789200000014
+33
+2386.19666863403
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+16.4090994539476
+21
+-116.789200000014
+31
+2386.19666863403
+12
+8.36529609247169
+22
+-116.789200000014
+32
+2383.75660756074
+13
+8.36529609247169
+23
+-116.789200000014
+33
+2383.75660756074
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+8.36529609247169
+21
+-116.789200000014
+31
+2383.75660756074
+12
+1.98565501612791e-05
+22
+-116.789200000014
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-116.789200000014
+33
+2382.93269976479
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666468
+20
+-116.789200000014
+30
+2409.40261154673
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+42.05510343994
+22
+-116.789200000014
+32
+2417.44641490821
+13
+42.05510343994
+23
+-116.789200000014
+33
+2417.44641490821
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+-116.789200000014
+30
+2417.44641490821
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+42.8790112358864
+22
+-116.789200000014
+32
+2425.81169114413
+13
+42.8790112358864
+23
+-116.789200000014
+33
+2425.81169114413
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790112358864
+20
+-116.789200000014
+30
+2425.81169114413
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+42.05510343994
+22
+-116.789200000014
+32
+2434.17696738005
+13
+42.05510343994
+23
+-116.789200000014
+33
+2434.17696738005
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+-116.789200000014
+30
+2434.17696738005
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+39.6150423666468
+22
+-116.789200000014
+32
+2442.22077074152
+13
+39.6150423666468
+23
+-116.789200000014
+33
+2442.22077074152
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666468
+20
+-116.789200000014
+30
+2442.22077074152
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+35.652598194651
+22
+-116.789200000014
+32
+2449.63398237639
+13
+35.652598194651
+23
+-116.789200000014
+33
+2449.63398237639
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+-116.789200000014
+30
+2449.63398237639
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+30.3200454313183
+22
+-116.789200000014
+32
+2456.13171671889
+13
+30.3200454313183
+23
+-116.789200000014
+33
+2456.13171671889
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+-116.789200000014
+30
+2456.13171671889
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+23.8223110888135
+22
+-116.789200000014
+32
+2461.46426948223
+13
+23.8223110888135
+23
+-116.789200000014
+33
+2461.46426948223
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+-116.789200000014
+30
+2461.46426948223
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+16.4090994539477
+22
+-116.789200000014
+32
+2465.42671365422
+13
+16.4090994539477
+23
+-116.789200000014
+33
+2465.42671365422
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539477
+20
+-116.789200000014
+30
+2465.42671365422
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+8.36529609247169
+22
+-116.789200000014
+32
+2467.86677472752
+13
+8.36529609247169
+23
+-116.789200000014
+33
+2467.86677472752
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-116.789200000014
+30
+2467.86677472752
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+1.98565501612791e-05
+22
+-116.789200000014
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+-116.789200000014
+33
+2468.69068252346
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+1614.76108002137
+11
+-42.878971522786
+21
+-116.789200000014
+31
+1680.27244014393
+12
+-93.4313636055058
+22
+-116.789200000014
+32
+2549.07468002137
+13
+-93.4313636055058
+23
+-116.789200000014
+33
+2549.07468002137
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-116.789200000014
+30
+1680.27244014393
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-42.0550773995078
+22
+-116.789200000014
+32
+1671.9071625819
+13
+-42.0550773995078
+23
+-116.789200000014
+33
+1671.9071625819
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550773995078
+20
+-116.789200000014
+30
+1671.9071625819
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-39.6150294774544
+22
+-116.789200000014
+32
+1663.86335525239
+13
+-39.6150294774544
+23
+-116.789200000014
+33
+1663.86335525239
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150294774544
+20
+-116.789200000014
+30
+1663.86335525239
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-35.652597429876
+22
+-116.789200000014
+32
+1656.45013716005
+13
+-35.652597429876
+23
+-116.789200000014
+33
+1656.45013716005
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.652597429876
+20
+-116.789200000014
+30
+1656.45013716005
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-30.3200552982032
+22
+-116.789200000014
+32
+1649.9523941188
+13
+-30.3200552982032
+23
+-116.789200000014
+33
+1649.9523941188
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200552982032
+20
+-116.789200000014
+30
+1649.9523941188
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-23.8223296860324
+22
+-116.789200000014
+32
+1644.61983074973
+13
+-23.8223296860324
+23
+-116.789200000014
+33
+1644.61983074973
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8223296860324
+20
+-116.789200000014
+30
+1644.61983074973
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-16.4091245446726
+22
+-116.789200000014
+32
+1640.65737447258
+13
+-16.4091245446726
+23
+-116.789200000014
+33
+1640.65737447258
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4091245446726
+20
+-116.789200000014
+30
+1640.65737447258
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-8.36532519033293
+22
+-116.789200000014
+32
+1638.2173002599
+13
+-8.36532519033293
+23
+-116.789200000014
+33
+1638.2173002599
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36532519033293
+20
+-116.789200000014
+30
+1638.2173002599
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-5.03211860767294e-05
+22
+-116.789200000014
+32
+1637.3933787953
+13
+-5.03211860767294e-05
+23
+-116.789200000014
+33
+1637.3933787953
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-42.878971522786
+21
+-116.789200000014
+31
+1680.27244014393
+12
+-42.0550500581767
+22
+-116.789200000014
+32
+1688.63771501308
+13
+-42.0550500581767
+23
+-116.789200000014
+33
+1688.63771501308
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-42.0550500581767
+21
+-116.789200000014
+31
+1688.63771501308
+12
+-39.6149758455043
+22
+-116.789200000014
+32
+1696.68151436742
+13
+-39.6149758455043
+23
+-116.789200000014
+33
+1696.68151436742
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-39.6149758455043
+21
+-116.789200000014
+31
+1696.68151436742
+12
+-35.6525195683525
+22
+-116.789200000014
+32
+1704.09471950878
+13
+-35.6525195683525
+23
+-116.789200000014
+33
+1704.09471950878
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-35.6525195683525
+21
+-116.789200000014
+31
+1704.09471950878
+12
+-30.3199561992811
+22
+-116.789200000014
+32
+1710.59244512095
+13
+-30.3199561992811
+23
+-116.789200000014
+33
+1710.59244512095
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-30.3199561992811
+21
+-116.789200000014
+31
+1710.59244512095
+12
+-23.8222131580276
+22
+-116.789200000014
+32
+1715.92498725262
+13
+-23.8222131580276
+23
+-116.789200000014
+33
+1715.92498725262
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-23.8222131580276
+21
+-116.789200000014
+31
+1715.92498725262
+12
+-16.4089950656911
+22
+-116.789200000014
+32
+1719.8874193002
+13
+-16.4089950656911
+23
+-116.789200000014
+33
+1719.8874193002
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-16.4089950656911
+21
+-116.789200000014
+31
+1719.8874193002
+12
+-42.878971522786
+22
+-116.789200000014
+32
+2035.20220002137
+13
+-42.878971522786
+23
+-116.789200000014
+33
+2035.20220002137
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-116.789200000014
+30
+2035.20220002137
+11
+-16.4089950656911
+21
+-116.789200000014
+31
+1719.8874193002
+12
+-42.0550728426191
+22
+-116.789200000014
+32
+2026.83692290816
+13
+-42.0550728426191
+23
+-116.789200000014
+33
+2026.83692290816
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550728426191
+20
+-116.789200000014
+30
+2026.83692290816
+11
+-16.4089950656911
+21
+-116.789200000014
+31
+1719.8874193002
+12
+-8.36518773617931
+22
+-116.789200000014
+32
+1722.32746722226
+13
+-8.36518773617931
+23
+-116.789200000014
+33
+1722.32746722226
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550728426191
+20
+-116.789200000014
+30
+2026.83692290816
+11
+-8.36518773617931
+21
+-116.789200000014
+31
+1722.32746722226
+12
+8.98258536075502e-05
+22
+-116.789200000014
+32
+1723.15136134553
+13
+8.98258536075502e-05
+23
+-116.789200000014
+33
+1723.15136134553
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550728426191
+20
+-116.789200000014
+30
+2026.83692290816
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+-39.6150205387958
+22
+-116.789200000014
+32
+2018.79311690784
+13
+-39.6150205387958
+23
+-116.789200000014
+33
+2018.79311690784
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150205387958
+20
+-116.789200000014
+30
+2018.79311690784
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+-35.652584452955
+22
+-116.789200000014
+32
+2011.379900974
+13
+-35.652584452955
+23
+-116.789200000014
+33
+2011.379900974
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.652584452955
+20
+-116.789200000014
+30
+2011.379900974
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+-30.3200387817157
+22
+-116.789200000014
+32
+2004.88216083759
+13
+-30.3200387817157
+23
+-116.789200000014
+33
+2004.88216083759
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200387817157
+20
+-116.789200000014
+30
+2004.88216083759
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+-23.8223102646976
+22
+-116.789200000014
+32
+1999.54960100809
+13
+-23.8223102646976
+23
+-116.789200000014
+33
+1999.54960100809
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8223102646976
+20
+-116.789200000014
+30
+1999.54960100809
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+-16.4091029648416
+22
+-116.789200000014
+32
+1995.5871487692
+13
+-16.4091029648416
+23
+-116.789200000014
+33
+1995.5871487692
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4091029648416
+20
+-116.789200000014
+30
+1995.5871487692
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+-8.36530228130657
+22
+-116.789200000014
+32
+1993.1470789383
+13
+-8.36530228130657
+23
+-116.789200000014
+33
+1993.1470789383
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36530228130657
+20
+-116.789200000014
+30
+1993.1470789383
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+-2.69633454074381e-05
+22
+-116.789200000014
+32
+1992.32316203057
+13
+-2.69633454074381e-05
+23
+-116.789200000014
+33
+1992.32316203057
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-42.878971522786
+21
+-116.789200000014
+31
+2035.20220002137
+12
+-42.0550546150653
+22
+-116.789200000014
+32
+2043.56747533934
+13
+-42.0550546150653
+23
+-116.789200000014
+33
+2043.56747533934
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-42.0550546150653
+21
+-116.789200000014
+31
+2043.56747533934
+12
+-39.6149847841629
+22
+-116.789200000014
+32
+2051.61127602287
+13
+-39.6149847841629
+23
+-116.789200000014
+33
+2051.61127602287
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-39.6149847841629
+21
+-116.789200000014
+31
+2051.61127602287
+12
+-35.6525325452735
+22
+-116.789200000014
+32
+2059.02448332273
+13
+-35.6525325452735
+23
+-116.789200000014
+33
+2059.02448332273
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-35.6525325452735
+21
+-116.789200000014
+31
+2059.02448332273
+12
+-30.3199727157687
+22
+-116.789200000014
+32
+2065.52221183974
+13
+-30.3199727157687
+23
+-116.789200000014
+33
+2065.52221183974
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-30.3199727157687
+21
+-116.789200000014
+31
+2065.52221183974
+12
+-23.8222325793624
+22
+-116.789200000014
+32
+2070.85475751098
+13
+-23.8222325793624
+23
+-116.789200000014
+33
+2070.85475751098
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-23.8222325793624
+21
+-116.789200000014
+31
+2070.85475751098
+12
+-16.4090166455219
+22
+-116.789200000014
+32
+2074.81719359682
+13
+-16.4090166455219
+23
+-116.789200000014
+33
+2074.81719359682
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-16.4090166455219
+21
+-116.789200000014
+31
+2074.81719359682
+12
+-8.36521064520558
+22
+-116.789200000014
+32
+2077.25724590065
+13
+-8.36521064520558
+23
+-116.789200000014
+33
+2077.25724590065
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-8.36521064520558
+21
+-116.789200000014
+31
+2077.25724590065
+12
+6.64680129382589e-05
+22
+-116.789200000014
+32
+2078.08114458081
+13
+6.64680129382589e-05
+23
+-116.789200000014
+33
+2078.08114458081
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+-39.6150026535464
+22
+-116.789200000014
+32
+2409.40261154673
+13
+-39.6150026535464
+23
+-116.789200000014
+33
+2409.40261154673
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+-116.789200000014
+30
+2409.40261154673
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+-35.6525584815506
+22
+-116.789200000014
+32
+2401.98939991186
+13
+-35.6525584815506
+23
+-116.789200000014
+33
+2401.98939991186
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-116.789200000014
+30
+2401.98939991186
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+-30.3200057182179
+22
+-116.789200000014
+32
+2395.49166556936
+13
+-30.3200057182179
+23
+-116.789200000014
+33
+2395.49166556936
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182179
+20
+-116.789200000014
+30
+2395.49166556936
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+-23.8222713757131
+22
+-116.789200000014
+32
+2390.15911280603
+13
+-23.8222713757131
+23
+-116.789200000014
+33
+2390.15911280603
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+-116.789200000014
+30
+2390.15911280603
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+-16.4090597408473
+22
+-116.789200000014
+32
+2386.19666863403
+13
+-16.4090597408473
+23
+-116.789200000014
+33
+2386.19666863403
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+-116.789200000014
+30
+2386.19666863403
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+-8.36525637937127
+22
+-116.789200000014
+32
+2383.75660756074
+13
+-8.36525637937127
+23
+-116.789200000014
+33
+2383.75660756074
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-116.789200000014
+30
+2383.75660756074
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+1.98565501612791e-05
+22
+-116.789200000014
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-116.789200000014
+33
+2382.93269976479
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-39.6150026535464
+21
+-116.789200000014
+31
+2409.40261154673
+12
+-42.0550637268397
+22
+-116.789200000014
+32
+2417.44641490821
+13
+-42.0550637268397
+23
+-116.789200000014
+33
+2417.44641490821
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-42.0550637268397
+21
+-116.789200000014
+31
+2417.44641490821
+12
+-42.878971522786
+22
+-116.789200000014
+32
+2425.81169114413
+13
+-42.878971522786
+23
+-116.789200000014
+33
+2425.81169114413
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-42.878971522786
+21
+-116.789200000014
+31
+2425.81169114413
+12
+-42.0550637268397
+22
+-116.789200000014
+32
+2434.17696738005
+13
+-42.0550637268397
+23
+-116.789200000014
+33
+2434.17696738005
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-42.0550637268397
+21
+-116.789200000014
+31
+2434.17696738005
+12
+-39.6150026535464
+22
+-116.789200000014
+32
+2442.22077074152
+13
+-39.6150026535464
+23
+-116.789200000014
+33
+2442.22077074152
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-39.6150026535464
+21
+-116.789200000014
+31
+2442.22077074152
+12
+-35.6525584815506
+22
+-116.789200000014
+32
+2449.63398237639
+13
+-35.6525584815506
+23
+-116.789200000014
+33
+2449.63398237639
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-35.6525584815506
+21
+-116.789200000014
+31
+2449.63398237639
+12
+-30.3200057182179
+22
+-116.789200000014
+32
+2456.13171671889
+13
+-30.3200057182179
+23
+-116.789200000014
+33
+2456.13171671889
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-30.3200057182179
+21
+-116.789200000014
+31
+2456.13171671889
+12
+-23.8222713757131
+22
+-116.789200000014
+32
+2461.46426948223
+13
+-23.8222713757131
+23
+-116.789200000014
+33
+2461.46426948223
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-23.8222713757131
+21
+-116.789200000014
+31
+2461.46426948223
+12
+-16.4090597408473
+22
+-116.789200000014
+32
+2465.42671365422
+13
+-16.4090597408473
+23
+-116.789200000014
+33
+2465.42671365422
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-16.4090597408473
+21
+-116.789200000014
+31
+2465.42671365422
+12
+-8.36525637937127
+22
+-116.789200000014
+32
+2467.86677472752
+13
+-8.36525637937127
+23
+-116.789200000014
+33
+2467.86677472752
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-8.36525637937127
+21
+-116.789200000014
+31
+2467.86677472752
+12
+1.98565501612791e-05
+22
+-116.789200000014
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+-116.789200000014
+33
+2468.69068252346
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+2549.07468002137
+11
+1.98565501612791e-05
+21
+-116.789200000014
+31
+2468.69068252346
+12
+93.4313563944944
+22
+-116.789200000014
+32
+2549.07468002137
+13
+93.4313563944944
+23
+-116.789200000014
+33
+2549.07468002137
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222131580276
+20
+-70.0735200000139
+30
+1715.92498725262
+11
+-30.3199561992811
+21
+-116.789200000014
+31
+1710.59244512095
+12
+-30.3199561992811
+22
+-70.0735200000139
+32
+1710.59244512095
+13
+-30.3199561992811
+23
+-70.0735200000139
+33
+1710.59244512095
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3199561992811
+20
+-116.789200000014
+30
+1710.59244512095
+11
+-23.8222131580276
+21
+-70.0735200000139
+31
+1715.92498725262
+12
+-23.8222131580276
+22
+-116.789200000014
+32
+1715.92498725262
+13
+-23.8222131580276
+23
+-116.789200000014
+33
+1715.92498725262
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-116.789200000014
+30
+2417.44641490821
+11
+-39.615002653547
+21
+-741.887719751186
+31
+2409.40261154673
+12
+-42.0550637268399
+22
+-741.902149593115
+32
+2417.44641490821
+13
+-42.0550637268399
+23
+-741.902149593115
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.615002653547
+20
+-741.887719751186
+30
+2409.40261154673
+11
+-42.0550637268397
+21
+-116.789200000014
+31
+2417.44641490821
+12
+-39.6150026535464
+22
+-116.789200000014
+32
+2409.40261154673
+13
+-39.6150026535464
+23
+-116.789200000014
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.3611250839466
+20
+-835.428664280087
+30
+2408.9276400213
+11
+39.3611647970476
+21
+-741.420676682108
+31
+2408.9276400213
+12
+-39.3611250839469
+22
+-741.886218389914
+32
+2408.9276400213
+13
+-39.3611250839469
+23
+-741.886218389914
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.3611647970476
+20
+-741.420676682108
+30
+2408.9276400213
+11
+-39.3611250839466
+21
+-835.428664280087
+31
+2408.9276400213
+12
+39.3611647970471
+22
+-835.428664280087
+32
+2408.9276400213
+13
+39.3611647970471
+23
+-835.428664280087
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-116.789200000014
+30
+2383.75660756074
+11
+1.98565501612791e-05
+21
+-858.151437401893
+31
+2382.93269976479
+12
+1.98565501612791e-05
+22
+-116.789200000014
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-116.789200000014
+33
+2382.93269976479
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.98565501612791e-05
+20
+-858.151437401893
+30
+2382.93269976479
+11
+8.36529609247169
+21
+-116.789200000014
+31
+2383.75660756074
+12
+8.36529609247169
+22
+-857.431240712237
+32
+2383.75660756074
+13
+8.36529609247169
+23
+-857.431240712237
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-717.191404282444
+20
+-70.0735200000139
+30
+1614.76108002137
+11
+-758.547422188618
+21
+-116.789200000014
+31
+1522.84685844505
+12
+-712.59031140046
+22
+-116.789200000014
+32
+1614.76108002137
+13
+-712.59031140046
+23
+-116.789200000014
+33
+1614.76108002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-758.547422188618
+20
+-116.789200000014
+30
+1522.84685844505
+11
+-717.191404282444
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-763.148515070603
+22
+-70.0735200000139
+32
+1522.84685844505
+13
+-763.148515070603
+23
+-70.0735200000139
+33
+1522.84685844505
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-70.0735200000139
+30
+1614.76108002137
+11
+-8.36532519033293
+21
+-70.0735200000139
+31
+1638.2173002599
+12
+-5.03211860767294e-05
+22
+-70.0735200000139
+32
+1637.3933787953
+13
+-5.03211860767294e-05
+23
+-70.0735200000139
+33
+1637.3933787953
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36532519033293
+20
+-70.0735200000139
+30
+1638.2173002599
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-16.4091245446726
+22
+-70.0735200000139
+32
+1640.65737447258
+13
+-16.4091245446726
+23
+-70.0735200000139
+33
+1640.65737447258
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4091245446726
+20
+-70.0735200000139
+30
+1640.65737447258
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-23.8223296860324
+22
+-70.0735200000139
+32
+1644.61983074973
+13
+-23.8223296860324
+23
+-70.0735200000139
+33
+1644.61983074973
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8223296860324
+20
+-70.0735200000139
+30
+1644.61983074973
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-30.3200552982032
+22
+-70.0735200000139
+32
+1649.9523941188
+13
+-30.3200552982032
+23
+-70.0735200000139
+33
+1649.9523941188
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200552982032
+20
+-70.0735200000139
+30
+1649.9523941188
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-35.652597429876
+22
+-70.0735200000139
+32
+1656.45013716005
+13
+-35.652597429876
+23
+-70.0735200000139
+33
+1656.45013716005
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.652597429876
+20
+-70.0735200000139
+30
+1656.45013716005
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-39.6150294774544
+22
+-70.0735200000139
+32
+1663.86335525239
+13
+-39.6150294774544
+23
+-70.0735200000139
+33
+1663.86335525239
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150294774544
+20
+-70.0735200000139
+30
+1663.86335525239
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-42.0550773995078
+22
+-70.0735200000139
+32
+1671.9071625819
+13
+-42.0550773995078
+23
+-70.0735200000139
+33
+1671.9071625819
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550773995078
+20
+-70.0735200000139
+30
+1671.9071625819
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-42.878971522786
+22
+-70.0735200000139
+32
+1680.27244014393
+13
+-42.878971522786
+23
+-70.0735200000139
+33
+1680.27244014393
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-70.0735200000139
+30
+1680.27244014393
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-93.4313636055058
+22
+-70.0735200000139
+32
+2549.07468002137
+13
+-93.4313636055058
+23
+-70.0735200000139
+33
+2549.07468002137
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-70.0735200000139
+30
+1680.27244014393
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-42.0550500581767
+22
+-70.0735200000139
+32
+1688.63771501308
+13
+-42.0550500581767
+23
+-70.0735200000139
+33
+1688.63771501308
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550500581767
+20
+-70.0735200000139
+30
+1688.63771501308
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-39.6149758455043
+22
+-70.0735200000139
+32
+1696.68151436742
+13
+-39.6149758455043
+23
+-70.0735200000139
+33
+1696.68151436742
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6149758455043
+20
+-70.0735200000139
+30
+1696.68151436742
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-35.6525195683525
+22
+-70.0735200000139
+32
+1704.09471950878
+13
+-35.6525195683525
+23
+-70.0735200000139
+33
+1704.09471950878
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525195683525
+20
+-70.0735200000139
+30
+1704.09471950878
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-30.3199561992811
+22
+-70.0735200000139
+32
+1710.59244512095
+13
+-30.3199561992811
+23
+-70.0735200000139
+33
+1710.59244512095
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3199561992811
+20
+-70.0735200000139
+30
+1710.59244512095
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-23.8222131580276
+22
+-70.0735200000139
+32
+1715.92498725262
+13
+-23.8222131580276
+23
+-70.0735200000139
+33
+1715.92498725262
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222131580276
+20
+-70.0735200000139
+30
+1715.92498725262
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-16.4089950656911
+22
+-70.0735200000139
+32
+1719.8874193002
+13
+-16.4089950656911
+23
+-70.0735200000139
+33
+1719.8874193002
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4089950656911
+20
+-70.0735200000139
+30
+1719.8874193002
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-42.878971522786
+22
+-70.0735200000139
+32
+2035.20220002137
+13
+-42.878971522786
+23
+-70.0735200000139
+33
+2035.20220002137
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4089950656911
+20
+-70.0735200000139
+30
+1719.8874193002
+11
+-42.878971522786
+21
+-70.0735200000139
+31
+2035.20220002137
+12
+-42.0550728426191
+22
+-70.0735200000139
+32
+2026.83692290816
+13
+-42.0550728426191
+23
+-70.0735200000139
+33
+2026.83692290816
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4089950656911
+20
+-70.0735200000139
+30
+1719.8874193002
+11
+-42.0550728426191
+21
+-70.0735200000139
+31
+2026.83692290816
+12
+-8.36518773617931
+22
+-70.0735200000139
+32
+1722.32746722226
+13
+-8.36518773617931
+23
+-70.0735200000139
+33
+1722.32746722226
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36518773617931
+20
+-70.0735200000139
+30
+1722.32746722226
+11
+-42.0550728426191
+21
+-70.0735200000139
+31
+2026.83692290816
+12
+8.98258536075502e-05
+22
+-70.0735200000139
+32
+1723.15136134553
+13
+8.98258536075502e-05
+23
+-70.0735200000139
+33
+1723.15136134553
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-42.0550728426191
+21
+-70.0735200000139
+31
+2026.83692290816
+12
+-39.6150205387958
+22
+-70.0735200000139
+32
+2018.79311690784
+13
+-39.6150205387958
+23
+-70.0735200000139
+33
+2018.79311690784
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-39.6150205387958
+21
+-70.0735200000139
+31
+2018.79311690784
+12
+-35.652584452955
+22
+-70.0735200000139
+32
+2011.379900974
+13
+-35.652584452955
+23
+-70.0735200000139
+33
+2011.379900974
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-35.652584452955
+21
+-70.0735200000139
+31
+2011.379900974
+12
+-30.3200387817157
+22
+-70.0735200000139
+32
+2004.88216083759
+13
+-30.3200387817157
+23
+-70.0735200000139
+33
+2004.88216083759
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-30.3200387817157
+21
+-70.0735200000139
+31
+2004.88216083759
+12
+-23.8223102646976
+22
+-70.0735200000139
+32
+1999.54960100809
+13
+-23.8223102646976
+23
+-70.0735200000139
+33
+1999.54960100809
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-23.8223102646976
+21
+-70.0735200000139
+31
+1999.54960100809
+12
+-16.4091029648416
+22
+-70.0735200000139
+32
+1995.5871487692
+13
+-16.4091029648416
+23
+-70.0735200000139
+33
+1995.5871487692
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-16.4091029648416
+21
+-70.0735200000139
+31
+1995.5871487692
+12
+-8.36530228130657
+22
+-70.0735200000139
+32
+1993.1470789383
+13
+-8.36530228130657
+23
+-70.0735200000139
+33
+1993.1470789383
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-8.36530228130657
+21
+-70.0735200000139
+31
+1993.1470789383
+12
+-2.69633454074381e-05
+22
+-70.0735200000139
+32
+1992.32316203057
+13
+-2.69633454074381e-05
+23
+-70.0735200000139
+33
+1992.32316203057
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-70.0735200000139
+30
+2035.20220002137
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-42.0550546150653
+22
+-70.0735200000139
+32
+2043.56747533934
+13
+-42.0550546150653
+23
+-70.0735200000139
+33
+2043.56747533934
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550546150653
+20
+-70.0735200000139
+30
+2043.56747533934
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-39.6149847841629
+22
+-70.0735200000139
+32
+2051.61127602287
+13
+-39.6149847841629
+23
+-70.0735200000139
+33
+2051.61127602287
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6149847841629
+20
+-70.0735200000139
+30
+2051.61127602287
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-35.6525325452735
+22
+-70.0735200000139
+32
+2059.02448332273
+13
+-35.6525325452735
+23
+-70.0735200000139
+33
+2059.02448332273
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525325452735
+20
+-70.0735200000139
+30
+2059.02448332273
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-30.3199727157687
+22
+-70.0735200000139
+32
+2065.52221183974
+13
+-30.3199727157687
+23
+-70.0735200000139
+33
+2065.52221183974
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3199727157687
+20
+-70.0735200000139
+30
+2065.52221183974
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-23.8222325793624
+22
+-70.0735200000139
+32
+2070.85475751098
+13
+-23.8222325793624
+23
+-70.0735200000139
+33
+2070.85475751098
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222325793624
+20
+-70.0735200000139
+30
+2070.85475751098
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-16.4090166455219
+22
+-70.0735200000139
+32
+2074.81719359682
+13
+-16.4090166455219
+23
+-70.0735200000139
+33
+2074.81719359682
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090166455219
+20
+-70.0735200000139
+30
+2074.81719359682
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-8.36521064520558
+22
+-70.0735200000139
+32
+2077.25724590065
+13
+-8.36521064520558
+23
+-70.0735200000139
+33
+2077.25724590065
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36521064520558
+20
+-70.0735200000139
+30
+2077.25724590065
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+6.64680129382589e-05
+22
+-70.0735200000139
+32
+2078.08114458081
+13
+6.64680129382589e-05
+23
+-70.0735200000139
+33
+2078.08114458081
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-39.6150026535464
+22
+-70.0735200000139
+32
+2409.40261154673
+13
+-39.6150026535464
+23
+-70.0735200000139
+33
+2409.40261154673
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-39.6150026535464
+21
+-70.0735200000139
+31
+2409.40261154673
+12
+-35.6525584815506
+22
+-70.0735200000139
+32
+2401.98939991186
+13
+-35.6525584815506
+23
+-70.0735200000139
+33
+2401.98939991186
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-35.6525584815506
+21
+-70.0735200000139
+31
+2401.98939991186
+12
+-30.3200057182179
+22
+-70.0735200000139
+32
+2395.49166556936
+13
+-30.3200057182179
+23
+-70.0735200000139
+33
+2395.49166556936
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-30.3200057182179
+21
+-70.0735200000139
+31
+2395.49166556936
+12
+-23.8222713757131
+22
+-70.0735200000139
+32
+2390.15911280603
+13
+-23.8222713757131
+23
+-70.0735200000139
+33
+2390.15911280603
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-23.8222713757131
+21
+-70.0735200000139
+31
+2390.15911280603
+12
+-16.4090597408473
+22
+-70.0735200000139
+32
+2386.19666863403
+13
+-16.4090597408473
+23
+-70.0735200000139
+33
+2386.19666863403
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-16.4090597408473
+21
+-70.0735200000139
+31
+2386.19666863403
+12
+-8.36525637937127
+22
+-70.0735200000139
+32
+2383.75660756074
+13
+-8.36525637937127
+23
+-70.0735200000139
+33
+2383.75660756074
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-8.36525637937127
+21
+-70.0735200000139
+31
+2383.75660756074
+12
+1.98565501612791e-05
+22
+-70.0735200000139
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-70.0735200000139
+33
+2382.93269976479
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+-70.0735200000139
+30
+2409.40261154673
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-42.0550637268397
+22
+-70.0735200000139
+32
+2417.44641490821
+13
+-42.0550637268397
+23
+-70.0735200000139
+33
+2417.44641490821
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-70.0735200000139
+30
+2417.44641490821
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-42.878971522786
+22
+-70.0735200000139
+32
+2425.81169114413
+13
+-42.878971522786
+23
+-70.0735200000139
+33
+2425.81169114413
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-70.0735200000139
+30
+2425.81169114413
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-42.0550637268397
+22
+-70.0735200000139
+32
+2434.17696738005
+13
+-42.0550637268397
+23
+-70.0735200000139
+33
+2434.17696738005
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-70.0735200000139
+30
+2434.17696738005
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-39.6150026535464
+22
+-70.0735200000139
+32
+2442.22077074152
+13
+-39.6150026535464
+23
+-70.0735200000139
+33
+2442.22077074152
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+-70.0735200000139
+30
+2442.22077074152
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-35.6525584815506
+22
+-70.0735200000139
+32
+2449.63398237639
+13
+-35.6525584815506
+23
+-70.0735200000139
+33
+2449.63398237639
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-70.0735200000139
+30
+2449.63398237639
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-30.3200057182179
+22
+-70.0735200000139
+32
+2456.13171671889
+13
+-30.3200057182179
+23
+-70.0735200000139
+33
+2456.13171671889
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182179
+20
+-70.0735200000139
+30
+2456.13171671889
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-23.8222713757131
+22
+-70.0735200000139
+32
+2461.46426948223
+13
+-23.8222713757131
+23
+-70.0735200000139
+33
+2461.46426948223
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+-70.0735200000139
+30
+2461.46426948223
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-16.4090597408473
+22
+-70.0735200000139
+32
+2465.42671365422
+13
+-16.4090597408473
+23
+-70.0735200000139
+33
+2465.42671365422
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+-70.0735200000139
+30
+2465.42671365422
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-8.36525637937127
+22
+-70.0735200000139
+32
+2467.86677472752
+13
+-8.36525637937127
+23
+-70.0735200000139
+33
+2467.86677472752
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-70.0735200000139
+30
+2467.86677472752
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+1.98565501612791e-05
+22
+-70.0735200000139
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+-70.0735200000139
+33
+2468.69068252346
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-717.191404282444
+20
+-70.0735200000139
+30
+1614.76108002137
+11
+763.148515070603
+21
+-70.0735200000139
+31
+1522.84685844505
+12
+-763.148515070603
+22
+-70.0735200000139
+32
+1522.84685844505
+13
+-763.148515070603
+23
+-70.0735200000139
+33
+1522.84685844505
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+763.148515070603
+20
+-70.0735200000139
+30
+1522.84685844505
+11
+-717.191404282444
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+717.537998926308
+22
+-70.0735200000139
+32
+1614.06789073365
+13
+717.537998926308
+23
+-70.0735200000139
+33
+1614.06789073365
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+717.537998926308
+20
+-70.0735200000139
+30
+1614.06789073365
+11
+-717.191404282444
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+93.4322738363532
+22
+-70.0735200000139
+32
+1614.76107890595
+13
+93.4322738363532
+23
+-70.0735200000139
+33
+1614.76107890595
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+-717.191404282444
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-93.4313636055058
+22
+-70.0735200000139
+32
+1614.76108002137
+13
+-93.4313636055058
+23
+-70.0735200000139
+33
+1614.76108002137
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+8.36522724084684
+22
+-70.0735200000139
+32
+1638.21727291857
+13
+8.36522724084684
+23
+-70.0735200000139
+33
+1638.21727291857
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+8.36522724084684
+21
+-70.0735200000139
+31
+1638.21727291857
+12
+16.4090345703586
+22
+-70.0735200000139
+32
+1640.65732084063
+13
+16.4090345703586
+23
+-70.0735200000139
+33
+1640.65732084063
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+16.4090345703586
+21
+-70.0735200000139
+31
+1640.65732084063
+12
+23.8222526626951
+22
+-70.0735200000139
+32
+1644.61975288821
+13
+23.8222526626951
+23
+-70.0735200000139
+33
+1644.61975288821
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+23.8222526626951
+21
+-70.0735200000139
+31
+1644.61975288821
+12
+30.3199957039486
+22
+-70.0735200000139
+32
+1649.95229501988
+13
+30.3199957039486
+23
+-70.0735200000139
+33
+1649.95229501988
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+30.3199957039486
+21
+-70.0735200000139
+31
+1649.95229501988
+12
+35.65255907302
+22
+-70.0735200000139
+32
+1656.45002063205
+13
+35.65255907302
+23
+-70.0735200000139
+33
+1656.45002063205
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+35.65255907302
+21
+-70.0735200000139
+31
+1656.45002063205
+12
+39.6150153501718
+22
+-70.0735200000139
+32
+1663.86322577341
+13
+39.6150153501718
+23
+-70.0735200000139
+33
+1663.86322577341
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+39.6150153501718
+21
+-70.0735200000139
+31
+1663.86322577341
+12
+42.0550895628442
+22
+-70.0735200000139
+32
+1671.90702512775
+13
+42.0550895628442
+23
+-70.0735200000139
+33
+1671.90702512775
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+42.0550895628442
+21
+-70.0735200000139
+31
+1671.90702512775
+12
+42.8790110274535
+22
+-70.0735200000139
+32
+1680.2722999969
+13
+42.8790110274535
+23
+-70.0735200000139
+33
+1680.2722999969
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+42.8790110274535
+21
+-70.0735200000139
+31
+1680.2722999969
+12
+93.4313563944944
+22
+-70.0735200000139
+32
+2549.07468002137
+13
+93.4313563944944
+23
+-70.0735200000139
+33
+2549.07468002137
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36522724084684
+20
+-70.0735200000139
+30
+1638.21727291857
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-5.03211860767294e-05
+22
+-70.0735200000139
+32
+1637.3933787953
+13
+-5.03211860767294e-05
+23
+-70.0735200000139
+33
+1637.3933787953
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+42.8790110274535
+21
+-70.0735200000139
+31
+1680.2722999969
+12
+42.0551169041753
+22
+-70.0735200000139
+32
+1688.63757755893
+13
+42.0551169041753
+23
+-70.0735200000139
+33
+1688.63757755893
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+42.0551169041753
+21
+-70.0735200000139
+31
+1688.63757755893
+12
+39.615068982122
+22
+-70.0735200000139
+32
+1696.68138488844
+13
+39.615068982122
+23
+-70.0735200000139
+33
+1696.68138488844
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+39.615068982122
+21
+-70.0735200000139
+31
+1696.68138488844
+12
+35.6526369345435
+22
+-70.0735200000139
+32
+1704.09460298078
+13
+35.6526369345435
+23
+-70.0735200000139
+33
+1704.09460298078
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+35.6526369345435
+21
+-70.0735200000139
+31
+1704.09460298078
+12
+30.3200948028707
+22
+-70.0735200000139
+32
+1710.59234602203
+13
+30.3200948028707
+23
+-70.0735200000139
+33
+1710.59234602203
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+30.3200948028707
+21
+-70.0735200000139
+31
+1710.59234602203
+12
+23.8223691906999
+22
+-70.0735200000139
+32
+1715.9249093911
+13
+23.8223691906999
+23
+-70.0735200000139
+33
+1715.9249093911
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+23.8223691906999
+21
+-70.0735200000139
+31
+1715.9249093911
+12
+16.4091640493401
+22
+-70.0735200000139
+32
+1719.88736566825
+13
+16.4091640493401
+23
+-70.0735200000139
+33
+1719.88736566825
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+16.4091640493401
+21
+-70.0735200000139
+31
+1719.88736566825
+12
+42.8790110274535
+22
+-70.0735200000139
+32
+2035.20210659002
+13
+42.8790110274535
+23
+-70.0735200000139
+33
+2035.20210659002
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-70.0735200000139
+30
+2035.20210659002
+11
+16.4091640493401
+21
+-70.0735200000139
+31
+1719.88736566825
+12
+42.0550941197328
+22
+-70.0735200000139
+32
+2026.83683127205
+13
+42.0550941197328
+23
+-70.0735200000139
+33
+2026.83683127205
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550941197328
+20
+-70.0735200000139
+30
+2026.83683127205
+11
+16.4091640493401
+21
+-70.0735200000139
+31
+1719.88736566825
+12
+8.36536469500046
+22
+-70.0735200000139
+32
+1722.32743988093
+13
+8.36536469500046
+23
+-70.0735200000139
+33
+1722.32743988093
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550941197328
+20
+-70.0735200000139
+30
+2026.83683127205
+11
+8.36536469500046
+21
+-70.0735200000139
+31
+1722.32743988093
+12
+8.98258536075502e-05
+22
+-70.0735200000139
+32
+1723.15136134553
+13
+8.98258536075502e-05
+23
+-70.0735200000139
+33
+1723.15136134553
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550941197328
+20
+-70.0735200000139
+30
+2026.83683127205
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+39.6150242888304
+22
+-70.0735200000139
+32
+2018.79303058852
+13
+39.6150242888304
+23
+-70.0735200000139
+33
+2018.79303058852
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150242888304
+20
+-70.0735200000139
+30
+2018.79303058852
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+35.652572049941
+22
+-70.0735200000139
+32
+2011.37982328866
+13
+35.652572049941
+23
+-70.0735200000139
+33
+2011.37982328866
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652572049941
+20
+-70.0735200000139
+30
+2011.37982328866
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+30.3200122204362
+22
+-70.0735200000139
+32
+2004.88209477165
+13
+30.3200122204362
+23
+-70.0735200000139
+33
+2004.88209477165
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200122204362
+20
+-70.0735200000139
+30
+2004.88209477165
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+23.8222720840299
+22
+-70.0735200000139
+32
+1999.54954910041
+13
+23.8222720840299
+23
+-70.0735200000139
+33
+1999.54954910041
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8222720840299
+20
+-70.0735200000139
+30
+1999.54954910041
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+16.4090561501895
+22
+-70.0735200000139
+32
+1995.58711301456
+13
+16.4090561501895
+23
+-70.0735200000139
+33
+1995.58711301456
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090561501895
+20
+-70.0735200000139
+30
+1995.58711301456
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+8.36525014987311
+22
+-70.0735200000139
+32
+1993.14706071074
+13
+8.36525014987311
+23
+-70.0735200000139
+33
+1993.14706071074
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36525014987311
+20
+-70.0735200000139
+30
+1993.14706071074
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+-2.69633454074381e-05
+22
+-70.0735200000139
+32
+1992.32316203057
+13
+-2.69633454074381e-05
+23
+-70.0735200000139
+33
+1992.32316203057
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+42.8790110274535
+21
+-70.0735200000139
+31
+2035.20210659002
+12
+42.0551123472866
+22
+-70.0735200000139
+32
+2043.56738370323
+13
+42.0551123472866
+23
+-70.0735200000139
+33
+2043.56738370323
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+42.0551123472866
+21
+-70.0735200000139
+31
+2043.56738370323
+12
+39.6150600434633
+22
+-70.0735200000139
+32
+2051.61118970355
+13
+39.6150600434633
+23
+-70.0735200000139
+33
+2051.61118970355
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+39.6150600434633
+21
+-70.0735200000139
+31
+2051.61118970355
+12
+35.6526239576226
+22
+-70.0735200000139
+32
+2059.02440563739
+13
+35.6526239576226
+23
+-70.0735200000139
+33
+2059.02440563739
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+35.6526239576226
+21
+-70.0735200000139
+31
+2059.02440563739
+12
+30.3200782863833
+22
+-70.0735200000139
+32
+2065.5221457738
+13
+30.3200782863833
+23
+-70.0735200000139
+33
+2065.5221457738
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+30.3200782863833
+21
+-70.0735200000139
+31
+2065.5221457738
+12
+23.8223497693652
+22
+-70.0735200000139
+32
+2070.8547056033
+13
+23.8223497693652
+23
+-70.0735200000139
+33
+2070.8547056033
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+23.8223497693652
+21
+-70.0735200000139
+31
+2070.8547056033
+12
+16.4091424695092
+22
+-70.0735200000139
+32
+2074.81715784219
+13
+16.4091424695092
+23
+-70.0735200000139
+33
+2074.81715784219
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+16.4091424695092
+21
+-70.0735200000139
+31
+2074.81715784219
+12
+8.3653417859741
+22
+-70.0735200000139
+32
+2077.25722767309
+13
+8.3653417859741
+23
+-70.0735200000139
+33
+2077.25722767309
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+8.3653417859741
+21
+-70.0735200000139
+31
+2077.25722767309
+12
+6.64680129382589e-05
+22
+-70.0735200000139
+32
+2078.08114458081
+13
+6.64680129382589e-05
+23
+-70.0735200000139
+33
+2078.08114458081
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+39.6150423666467
+22
+-70.0735200000139
+32
+2409.40261154673
+13
+39.6150423666467
+23
+-70.0735200000139
+33
+2409.40261154673
+70
+15
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666467
+20
+-70.0735200000139
+30
+2409.40261154673
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+35.652598194651
+22
+-70.0735200000139
+32
+2401.98939991186
+13
+35.652598194651
+23
+-70.0735200000139
+33
+2401.98939991186
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+-70.0735200000139
+30
+2401.98939991186
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+30.3200454313183
+22
+-70.0735200000139
+32
+2395.49166556936
+13
+30.3200454313183
+23
+-70.0735200000139
+33
+2395.49166556936
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+-70.0735200000139
+30
+2395.49166556936
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+23.8223110888135
+22
+-70.0735200000139
+32
+2390.15911280603
+13
+23.8223110888135
+23
+-70.0735200000139
+33
+2390.15911280603
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+-70.0735200000139
+30
+2390.15911280603
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+16.4090994539476
+22
+-70.0735200000139
+32
+2386.19666863403
+13
+16.4090994539476
+23
+-70.0735200000139
+33
+2386.19666863403
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539476
+20
+-70.0735200000139
+30
+2386.19666863403
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+8.36529609247169
+22
+-70.0735200000139
+32
+2383.75660756074
+13
+8.36529609247169
+23
+-70.0735200000139
+33
+2383.75660756074
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-70.0735200000139
+30
+2383.75660756074
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+1.98565501612791e-05
+22
+-70.0735200000139
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-70.0735200000139
+33
+2382.93269976479
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+39.6150423666467
+21
+-70.0735200000139
+31
+2409.40261154673
+12
+42.05510343994
+22
+-70.0735200000139
+32
+2417.44641490821
+13
+42.05510343994
+23
+-70.0735200000139
+33
+2417.44641490821
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+42.05510343994
+21
+-70.0735200000139
+31
+2417.44641490821
+12
+42.8790112358864
+22
+-70.0735200000139
+32
+2425.81169114413
+13
+42.8790112358864
+23
+-70.0735200000139
+33
+2425.81169114413
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+42.8790112358864
+21
+-70.0735200000139
+31
+2425.81169114413
+12
+42.05510343994
+22
+-70.0735200000139
+32
+2434.17696738005
+13
+42.05510343994
+23
+-70.0735200000139
+33
+2434.17696738005
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+42.05510343994
+21
+-70.0735200000139
+31
+2434.17696738005
+12
+39.6150423666467
+22
+-70.0735200000139
+32
+2442.22077074152
+13
+39.6150423666467
+23
+-70.0735200000139
+33
+2442.22077074152
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+39.6150423666467
+21
+-70.0735200000139
+31
+2442.22077074152
+12
+35.652598194651
+22
+-70.0735200000139
+32
+2449.63398237639
+13
+35.652598194651
+23
+-70.0735200000139
+33
+2449.63398237639
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+35.652598194651
+21
+-70.0735200000139
+31
+2449.63398237639
+12
+30.3200454313183
+22
+-70.0735200000139
+32
+2456.13171671889
+13
+30.3200454313183
+23
+-70.0735200000139
+33
+2456.13171671889
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+30.3200454313183
+21
+-70.0735200000139
+31
+2456.13171671889
+12
+23.8223110888135
+22
+-70.0735200000139
+32
+2461.46426948223
+13
+23.8223110888135
+23
+-70.0735200000139
+33
+2461.46426948223
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+23.8223110888135
+21
+-70.0735200000139
+31
+2461.46426948223
+12
+16.4090994539477
+22
+-70.0735200000139
+32
+2465.42671365422
+13
+16.4090994539477
+23
+-70.0735200000139
+33
+2465.42671365422
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+16.4090994539477
+21
+-70.0735200000139
+31
+2465.42671365422
+12
+8.36529609247169
+22
+-70.0735200000139
+32
+2467.86677472752
+13
+8.36529609247169
+23
+-70.0735200000139
+33
+2467.86677472752
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+8.36529609247169
+21
+-70.0735200000139
+31
+2467.86677472752
+12
+1.98565501612791e-05
+22
+-70.0735200000139
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+-70.0735200000139
+33
+2468.69068252346
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+1.98565501612791e-05
+21
+-70.0735200000139
+31
+2468.69068252346
+12
+-93.4313636055058
+22
+-70.0735200000139
+32
+2549.07468002137
+13
+-93.4313636055058
+23
+-70.0735200000139
+33
+2549.07468002137
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+763.148515070603
+20
+-70.0735200000139
+30
+1522.84685844505
+11
+712.934349429914
+21
+-116.789200000014
+31
+1614.07300396247
+12
+758.547422188619
+22
+-116.789200000014
+32
+1522.84685844505
+13
+758.547422188619
+23
+-116.789200000014
+33
+1522.84685844505
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+712.934349429914
+20
+-116.789200000014
+30
+1614.07300396247
+11
+763.148515070603
+21
+-70.0735200000139
+31
+1522.84685844505
+12
+717.537998926308
+22
+-70.0735200000139
+32
+1614.06789073365
+13
+717.537998926308
+23
+-70.0735200000139
+33
+1614.06789073365
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-116.789200000014
+30
+2425.81169114413
+11
+-42.0550637268399
+21
+-741.902149593115
+31
+2417.44641490821
+12
+-42.878971522786
+22
+-741.907021954462
+32
+2425.81169114413
+13
+-42.878971522786
+23
+-741.907021954462
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268399
+20
+-741.902149593115
+30
+2417.44641490821
+11
+-42.878971522786
+21
+-116.789200000014
+31
+2425.81169114413
+12
+-42.0550637268397
+22
+-116.789200000014
+32
+2417.44641490821
+13
+-42.0550637268397
+23
+-116.789200000014
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408471
+20
+-741.750486264824
+30
+2465.42671365422
+11
+-8.36525637937127
+21
+-116.789200000014
+31
+2467.86677472752
+12
+-16.4090597408473
+22
+-116.789200000014
+32
+2465.42671365422
+13
+-16.4090597408473
+23
+-116.789200000014
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-116.789200000014
+30
+2467.86677472752
+11
+-16.4090597408471
+21
+-741.750486264824
+31
+2465.42671365422
+12
+-8.36525637937127
+22
+-741.702917450962
+32
+2467.86677472752
+13
+-8.36525637937127
+23
+-741.702917450962
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+763.148515070603
+20
+-70.0735200000139
+30
+1522.84685844505
+11
+-758.547422188618
+21
+-116.789200000014
+31
+1522.84685844505
+12
+-763.148515070603
+22
+-70.0735200000139
+32
+1522.84685844505
+13
+-763.148515070603
+23
+-70.0735200000139
+33
+1522.84685844505
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-758.547422188618
+20
+-116.789200000014
+30
+1522.84685844505
+11
+763.148515070603
+21
+-70.0735200000139
+31
+1522.84685844505
+12
+758.547422188619
+22
+-116.789200000014
+32
+1522.84685844505
+13
+758.547422188619
+23
+-116.789200000014
+33
+1522.84685844505
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+-116.789200000014
+30
+2390.15911280603
+11
+-30.3200057182178
+21
+-847.173357521512
+31
+2395.49166556936
+12
+-30.3200057182179
+22
+-116.789200000014
+32
+2395.49166556936
+13
+-30.3200057182179
+23
+-116.789200000014
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182178
+20
+-847.173357521512
+30
+2395.49166556936
+11
+-23.8222713757131
+21
+-116.789200000014
+31
+2390.15911280603
+12
+-23.822271375713
+22
+-851.834664122165
+32
+2390.15911280603
+13
+-23.822271375713
+23
+-851.834664122165
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+-116.789200000014
+30
+2401.98939991186
+11
+39.3611647970471
+21
+-835.428664280087
+31
+2408.9276400213
+12
+35.6525981946511
+22
+-841.49353899477
+32
+2401.98939991186
+13
+35.6525981946511
+23
+-841.49353899477
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.3611647970471
+20
+-835.428664280087
+30
+2408.9276400213
+11
+35.652598194651
+21
+-116.789200000014
+31
+2401.98939991186
+12
+39.3611647970476
+22
+-741.420676682108
+32
+2408.9276400213
+13
+39.3611647970476
+23
+-741.420676682108
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.3611647970476
+20
+-741.420676682108
+30
+2408.9276400213
+11
+35.652598194651
+21
+-116.789200000014
+31
+2401.98939991186
+12
+39.6150423666477
+22
+-741.419175320836
+32
+2409.40261154673
+13
+39.6150423666477
+23
+-741.419175320836
+33
+2409.40261154673
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666477
+20
+-741.419175320836
+30
+2409.40261154673
+11
+35.652598194651
+21
+-116.789200000014
+31
+2401.98939991186
+12
+39.6150423666468
+22
+-116.789200000014
+32
+2409.40261154673
+13
+39.6150423666468
+23
+-116.789200000014
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+-116.789200000014
+30
+2386.19666863403
+11
+-23.822271375713
+21
+-851.834664122165
+31
+2390.15911280603
+12
+-23.8222713757131
+22
+-116.789200000014
+32
+2390.15911280603
+13
+-23.8222713757131
+23
+-116.789200000014
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.822271375713
+20
+-851.834664122165
+30
+2390.15911280603
+11
+-16.4090597408473
+21
+-116.789200000014
+31
+2386.19666863403
+12
+-16.4090597408471
+22
+-855.298327398157
+32
+2386.19666863403
+13
+-16.4090597408471
+23
+-855.298327398157
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+712.934349429914
+20
+-116.789200000014
+30
+1614.07300396247
+11
+93.4322738363532
+21
+-70.0735200000139
+31
+1614.76107890595
+12
+93.4322738363532
+22
+-116.789200000014
+32
+1614.76107890595
+13
+93.4322738363532
+23
+-116.789200000014
+33
+1614.76107890595
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+712.934349429914
+21
+-116.789200000014
+31
+1614.07300396247
+12
+717.537998926308
+22
+-70.0735200000139
+32
+1614.06789073365
+13
+717.537998926308
+23
+-70.0735200000139
+33
+1614.06789073365
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6525981946522
+20
+-741.442608112612
+30
+2449.63398237639
+11
+30.3200454313183
+21
+-116.789200000014
+31
+2456.13171671889
+12
+30.3200454313182
+22
+-741.474143345189
+32
+2456.13171671889
+13
+30.3200454313182
+23
+-741.474143345189
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+-116.789200000014
+30
+2456.13171671889
+11
+35.6525981946522
+21
+-741.442608112612
+31
+2449.63398237639
+12
+35.652598194651
+22
+-116.789200000014
+32
+2449.63398237639
+13
+35.652598194651
+23
+-116.789200000014
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223691906999
+20
+-70.0735200000139
+30
+1715.9249093911
+11
+16.4091640493401
+21
+-116.789200000014
+31
+1719.88736566825
+12
+16.4091640493401
+22
+-70.0735200000139
+32
+1719.88736566825
+13
+16.4091640493401
+23
+-70.0735200000139
+33
+1719.88736566825
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091640493401
+20
+-116.789200000014
+30
+1719.88736566825
+11
+23.8223691906999
+21
+-70.0735200000139
+31
+1715.9249093911
+12
+23.8223691906999
+22
+-116.789200000014
+32
+1715.9249093911
+13
+23.8223691906999
+23
+-116.789200000014
+33
+1715.9249093911
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150153501718
+20
+-70.0735200000139
+30
+1663.86322577341
+11
+35.65255907302
+21
+-116.789200000014
+31
+1656.45002063205
+12
+39.6150153501718
+22
+-116.789200000014
+32
+1663.86322577341
+13
+39.6150153501718
+23
+-116.789200000014
+33
+1663.86322577341
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.65255907302
+20
+-116.789200000014
+30
+1656.45002063205
+11
+39.6150153501718
+21
+-70.0735200000139
+31
+1663.86322577341
+12
+35.65255907302
+22
+-70.0735200000139
+32
+1656.45002063205
+13
+35.65255907302
+23
+-70.0735200000139
+33
+1656.45002063205
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091640493401
+20
+-70.0735200000139
+30
+1719.88736566825
+11
+8.36536469500046
+21
+-116.789200000014
+31
+1722.32743988093
+12
+8.36536469500046
+22
+-70.0735200000139
+32
+1722.32743988093
+13
+8.36536469500046
+23
+-70.0735200000139
+33
+1722.32743988093
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36536469500046
+20
+-116.789200000014
+30
+1722.32743988093
+11
+16.4091640493401
+21
+-70.0735200000139
+31
+1719.88736566825
+12
+16.4091640493401
+22
+-116.789200000014
+32
+1719.88736566825
+13
+16.4091640493401
+23
+-116.789200000014
+33
+1719.88736566825
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150294774544
+20
+-70.0735200000139
+30
+1663.86335525239
+11
+-42.0550773995078
+21
+-116.789200000014
+31
+1671.9071625819
+12
+-39.6150294774544
+22
+-116.789200000014
+32
+1663.86335525239
+13
+-39.6150294774544
+23
+-116.789200000014
+33
+1663.86335525239
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550773995078
+20
+-116.789200000014
+30
+1671.9071625819
+11
+-39.6150294774544
+21
+-70.0735200000139
+31
+1663.86335525239
+12
+-42.0550773995078
+22
+-70.0735200000139
+32
+1671.9071625819
+13
+-42.0550773995078
+23
+-70.0735200000139
+33
+1671.9071625819
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+0.0
+30
+2417.44641490821
+11
+-39.6150026535464
+21
+-70.0735200000139
+31
+2409.40261154673
+12
+-42.0550637268397
+22
+-70.0735200000139
+32
+2417.44641490821
+13
+-42.0550637268397
+23
+-70.0735200000139
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+-70.0735200000139
+30
+2409.40261154673
+11
+-42.0550637268397
+21
+0.0
+31
+2417.44641490821
+12
+-39.6150026535464
+22
+0.0
+32
+2409.40261154673
+13
+-39.6150026535464
+23
+0.0
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+0.0
+30
+2425.81169114413
+11
+-42.0550637268397
+21
+-70.0735200000139
+31
+2417.44641490821
+12
+-42.878971522786
+22
+-70.0735200000139
+32
+2425.81169114413
+13
+-42.878971522786
+23
+-70.0735200000139
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-70.0735200000139
+30
+2417.44641490821
+11
+-42.878971522786
+21
+0.0
+31
+2425.81169114413
+12
+-42.0550637268397
+22
+0.0
+32
+2417.44641490821
+13
+-42.0550637268397
+23
+0.0
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+0.0
+30
+2386.19666863403
+11
+-23.8222713757131
+21
+-70.0735200000139
+31
+2390.15911280603
+12
+-23.8222713757131
+22
+0.0
+32
+2390.15911280603
+13
+-23.8222713757131
+23
+0.0
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+-70.0735200000139
+30
+2390.15911280603
+11
+-16.4090597408473
+21
+0.0
+31
+2386.19666863403
+12
+-16.4090597408473
+22
+-70.0735200000139
+32
+2386.19666863403
+13
+-16.4090597408473
+23
+-70.0735200000139
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539476
+20
+0.0
+30
+2386.19666863403
+11
+8.36529609247169
+21
+-70.0735200000139
+31
+2383.75660756074
+12
+8.36529609247169
+22
+0.0
+32
+2383.75660756074
+13
+8.36529609247169
+23
+0.0
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-70.0735200000139
+30
+2383.75660756074
+11
+16.4090994539476
+21
+0.0
+31
+2386.19666863403
+12
+16.4090994539476
+22
+-70.0735200000139
+32
+2386.19666863403
+13
+16.4090994539476
+23
+-70.0735200000139
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+-70.0735200000139
+30
+2461.46426948223
+11
+16.4090994539477
+21
+0.0
+31
+2465.42671365422
+12
+16.4090994539477
+22
+-70.0735200000139
+32
+2465.42671365422
+13
+16.4090994539477
+23
+-70.0735200000139
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539477
+20
+0.0
+30
+2465.42671365422
+11
+23.8223110888135
+21
+-70.0735200000139
+31
+2461.46426948223
+12
+23.8223110888135
+22
+0.0
+32
+2461.46426948223
+13
+23.8223110888135
+23
+0.0
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8223296860324
+20
+-116.789200000014
+30
+1644.61983074973
+11
+-30.3200552982032
+21
+-70.0735200000139
+31
+1649.9523941188
+12
+-30.3200552982032
+22
+-116.789200000014
+32
+1649.9523941188
+13
+-30.3200552982032
+23
+-116.789200000014
+33
+1649.9523941188
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200552982032
+20
+-70.0735200000139
+30
+1649.9523941188
+11
+-23.8223296860324
+21
+-116.789200000014
+31
+1644.61983074973
+12
+-23.8223296860324
+22
+-70.0735200000139
+32
+1644.61983074973
+13
+-23.8223296860324
+23
+-70.0735200000139
+33
+1644.61983074973
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525195683525
+20
+-70.0735200000139
+30
+1704.09471950878
+11
+-30.3199561992811
+21
+-116.789200000014
+31
+1710.59244512095
+12
+-35.6525195683525
+22
+-116.789200000014
+32
+1704.09471950878
+13
+-35.6525195683525
+23
+-116.789200000014
+33
+1704.09471950878
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3199561992811
+20
+-116.789200000014
+30
+1710.59244512095
+11
+-35.6525195683525
+21
+-70.0735200000139
+31
+1704.09471950878
+12
+-30.3199561992811
+22
+-70.0735200000139
+32
+1710.59244512095
+13
+-30.3199561992811
+23
+-70.0735200000139
+33
+1710.59244512095
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36518773617931
+20
+-70.0735200000139
+30
+1722.32746722226
+11
+-16.4089950656911
+21
+-116.789200000014
+31
+1719.8874193002
+12
+-16.4089950656911
+22
+-70.0735200000139
+32
+1719.8874193002
+13
+-16.4089950656911
+23
+-70.0735200000139
+33
+1719.8874193002
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4089950656911
+20
+-116.789200000014
+30
+1719.8874193002
+11
+-8.36518773617931
+21
+-70.0735200000139
+31
+1722.32746722226
+12
+-8.36518773617931
+22
+-116.789200000014
+32
+1722.32746722226
+13
+-8.36518773617931
+23
+-116.789200000014
+33
+1722.32746722226
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8222526626951
+20
+-116.789200000014
+30
+1644.61975288821
+11
+16.4090345703586
+21
+-70.0735200000139
+31
+1640.65732084063
+12
+16.4090345703586
+22
+-116.789200000014
+32
+1640.65732084063
+13
+16.4090345703586
+23
+-116.789200000014
+33
+1640.65732084063
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090345703586
+20
+-70.0735200000139
+30
+1640.65732084063
+11
+23.8222526626951
+21
+-116.789200000014
+31
+1644.61975288821
+12
+23.8222526626951
+22
+-70.0735200000139
+32
+1644.61975288821
+13
+23.8222526626951
+23
+-70.0735200000139
+33
+1644.61975288821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550773995078
+20
+-70.0735200000139
+30
+1671.9071625819
+11
+-42.878971522786
+21
+-116.789200000014
+31
+1680.27244014393
+12
+-42.0550773995078
+22
+-116.789200000014
+32
+1671.9071625819
+13
+-42.0550773995078
+23
+-116.789200000014
+33
+1671.9071625819
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-116.789200000014
+30
+1680.27244014393
+11
+-42.0550773995078
+21
+-70.0735200000139
+31
+1671.9071625819
+12
+-42.878971522786
+22
+-70.0735200000139
+32
+1680.27244014393
+13
+-42.878971522786
+23
+-70.0735200000139
+33
+1680.27244014393
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6526369345435
+20
+-70.0735200000139
+30
+1704.09460298078
+11
+39.615068982122
+21
+-116.789200000014
+31
+1696.68138488844
+12
+35.6526369345435
+22
+-116.789200000014
+32
+1704.09460298078
+13
+35.6526369345435
+23
+-116.789200000014
+33
+1704.09460298078
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.615068982122
+20
+-116.789200000014
+30
+1696.68138488844
+11
+35.6526369345435
+21
+-70.0735200000139
+31
+1704.09460298078
+12
+39.615068982122
+22
+-70.0735200000139
+32
+1696.68138488844
+13
+39.615068982122
+23
+-70.0735200000139
+33
+1696.68138488844
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551169041753
+20
+-70.0735200000139
+30
+1688.63757755893
+11
+42.8790110274535
+21
+-116.789200000014
+31
+1680.2722999969
+12
+42.0551169041753
+22
+-116.789200000014
+32
+1688.63757755893
+13
+42.0551169041753
+23
+-116.789200000014
+33
+1688.63757755893
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-116.789200000014
+30
+1680.2722999969
+11
+42.0551169041753
+21
+-70.0735200000139
+31
+1688.63757755893
+12
+42.8790110274535
+22
+-70.0735200000139
+32
+1680.2722999969
+13
+42.8790110274535
+23
+-70.0735200000139
+33
+1680.2722999969
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-741.902149593115
+30
+2434.17696738005
+11
+-42.878971522786
+21
+-116.789200000014
+31
+2425.81169114413
+12
+-42.878971522786
+22
+-741.907021954462
+32
+2425.81169114413
+13
+-42.878971522786
+23
+-741.907021954462
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-116.789200000014
+30
+2425.81169114413
+11
+-42.0550637268397
+21
+-741.902149593115
+31
+2434.17696738005
+12
+-42.0550637268397
+22
+-116.789200000014
+32
+2434.17696738005
+13
+-42.0550637268397
+23
+-116.789200000014
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790112358864
+20
+-741.39987311756
+30
+2425.81169114413
+11
+42.05510343994
+21
+-116.789200000014
+31
+2434.17696738005
+12
+42.0551034399401
+22
+-741.404745478907
+32
+2434.17696738005
+13
+42.0551034399401
+23
+-741.404745478907
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+-116.789200000014
+30
+2434.17696738005
+11
+42.8790112358864
+21
+-741.39987311756
+31
+2425.81169114413
+12
+42.8790112358864
+22
+-116.789200000014
+32
+2425.81169114413
+13
+42.8790112358864
+23
+-116.789200000014
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.9856550251518e-05
+20
+-741.653447536011
+30
+2468.69068252346
+11
+-8.36525637937127
+21
+-116.789200000014
+31
+2467.86677472752
+12
+-8.36525637937127
+22
+-741.702917450962
+32
+2467.86677472752
+13
+-8.36525637937127
+23
+-741.702917450962
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-116.789200000014
+30
+2467.86677472752
+11
+1.9856550251518e-05
+21
+-741.653447536011
+31
+2468.69068252346
+12
+1.98565501612791e-05
+22
+-116.789200000014
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+-116.789200000014
+33
+2468.69068252346
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.822271375713
+20
+-741.794325934758
+30
+2461.46426948223
+11
+-16.4090597408473
+21
+-116.789200000014
+31
+2465.42671365422
+12
+-23.8222713757131
+22
+-116.789200000014
+32
+2461.46426948223
+13
+-23.8222713757131
+23
+-116.789200000014
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+-116.789200000014
+30
+2465.42671365422
+11
+-23.822271375713
+21
+-741.794325934758
+31
+2461.46426948223
+12
+-16.4090597408471
+22
+-741.750486264824
+32
+2465.42671365422
+13
+-16.4090597408471
+23
+-741.750486264824
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+0.0
+30
+2390.15911280603
+11
+-30.3200057182179
+21
+-70.0735200000139
+31
+2395.49166556936
+12
+-30.3200057182179
+22
+0.0
+32
+2395.49166556936
+13
+-30.3200057182179
+23
+0.0
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182179
+20
+-70.0735200000139
+30
+2395.49166556936
+11
+-23.8222713757131
+21
+0.0
+31
+2390.15911280603
+12
+-23.8222713757131
+22
+-70.0735200000139
+32
+2390.15911280603
+13
+-23.8222713757131
+23
+-70.0735200000139
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+0.0
+30
+2434.17696738005
+11
+-42.878971522786
+21
+-70.0735200000139
+31
+2425.81169114413
+12
+-42.0550637268397
+22
+-70.0735200000139
+32
+2434.17696738005
+13
+-42.0550637268397
+23
+-70.0735200000139
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-70.0735200000139
+30
+2425.81169114413
+11
+-42.0550637268397
+21
+0.0
+31
+2434.17696738005
+12
+-42.878971522786
+22
+0.0
+32
+2425.81169114413
+13
+-42.878971522786
+23
+0.0
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+0.0
+30
+2417.44641490821
+11
+42.8790112358864
+21
+-70.0735200000139
+31
+2425.81169114413
+12
+42.05510343994
+22
+-70.0735200000139
+32
+2417.44641490821
+13
+42.05510343994
+23
+-70.0735200000139
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790112358864
+20
+-70.0735200000139
+30
+2425.81169114413
+11
+42.05510343994
+21
+0.0
+31
+2417.44641490821
+12
+42.8790112358864
+22
+0.0
+32
+2425.81169114413
+13
+42.8790112358864
+23
+0.0
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.98565501612791e-05
+20
+0.0
+30
+2382.93269976479
+11
+-8.36525637937127
+21
+-70.0735200000139
+31
+2383.75660756074
+12
+-8.36525637937127
+22
+0.0
+32
+2383.75660756074
+13
+-8.36525637937127
+23
+0.0
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-70.0735200000139
+30
+2383.75660756074
+11
+1.98565501612791e-05
+21
+0.0
+31
+2382.93269976479
+12
+1.98565501612791e-05
+22
+-70.0735200000139
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-70.0735200000139
+33
+2382.93269976479
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+-70.0735200000139
+30
+2461.46426948223
+11
+-30.3200057182179
+21
+0.0
+31
+2456.13171671889
+12
+-30.3200057182179
+22
+-70.0735200000139
+32
+2456.13171671889
+13
+-30.3200057182179
+23
+-70.0735200000139
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182179
+20
+0.0
+30
+2456.13171671889
+11
+-23.8222713757131
+21
+-70.0735200000139
+31
+2461.46426948223
+12
+-23.8222713757131
+22
+0.0
+32
+2461.46426948223
+13
+-23.8222713757131
+23
+0.0
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539477
+20
+-70.0735200000139
+30
+2465.42671365422
+11
+8.36529609247169
+21
+0.0
+31
+2467.86677472752
+12
+8.36529609247169
+22
+-70.0735200000139
+32
+2467.86677472752
+13
+8.36529609247169
+23
+-70.0735200000139
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+0.0
+30
+2467.86677472752
+11
+16.4090994539477
+21
+-70.0735200000139
+31
+2465.42671365422
+12
+16.4090994539477
+22
+0.0
+32
+2465.42671365422
+13
+16.4090994539477
+23
+0.0
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-741.864286959411
+30
+2449.63398237639
+11
+-39.6150026535464
+21
+-116.789200000014
+31
+2442.22077074152
+12
+-39.6150026535458
+22
+-741.887719751186
+32
+2442.22077074152
+13
+-39.6150026535458
+23
+-741.887719751186
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+-116.789200000014
+30
+2442.22077074152
+11
+-35.6525584815506
+21
+-741.864286959411
+31
+2449.63398237639
+12
+-35.6525584815506
+22
+-116.789200000014
+32
+2449.63398237639
+13
+-35.6525584815506
+23
+-116.789200000014
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-70.0735200000139
+30
+2035.20210659002
+11
+42.0550941197328
+21
+-116.789200000014
+31
+2026.83683127205
+12
+42.8790110274535
+22
+-116.789200000014
+32
+2035.20210659002
+13
+42.8790110274535
+23
+-116.789200000014
+33
+2035.20210659002
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550941197328
+20
+-116.789200000014
+30
+2026.83683127205
+11
+42.8790110274535
+21
+-70.0735200000139
+31
+2035.20210659002
+12
+42.0550941197328
+22
+-70.0735200000139
+32
+2026.83683127205
+13
+42.0550941197328
+23
+-70.0735200000139
+33
+2026.83683127205
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+-116.789200000014
+30
+2417.44641490821
+11
+42.8790112358864
+21
+-741.39987311756
+31
+2425.81169114413
+12
+42.0551034399399
+22
+-741.404745478908
+32
+2417.44641490821
+13
+42.0551034399399
+23
+-741.404745478908
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790112358864
+20
+-741.39987311756
+30
+2425.81169114413
+11
+42.05510343994
+21
+-116.789200000014
+31
+2417.44641490821
+12
+42.8790112358864
+22
+-116.789200000014
+32
+2425.81169114413
+13
+42.8790112358864
+23
+-116.789200000014
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8223102646976
+20
+-116.789200000014
+30
+1999.54960100809
+11
+-30.3200387817157
+21
+-70.0735200000139
+31
+2004.88216083759
+12
+-30.3200387817157
+22
+-116.789200000014
+32
+2004.88216083759
+13
+-30.3200387817157
+23
+-116.789200000014
+33
+2004.88216083759
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200387817157
+20
+-70.0735200000139
+30
+2004.88216083759
+11
+-23.8223102646976
+21
+-116.789200000014
+31
+1999.54960100809
+12
+-23.8223102646976
+22
+-70.0735200000139
+32
+1999.54960100809
+13
+-23.8223102646976
+23
+-70.0735200000139
+33
+1999.54960100809
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+0.0
+30
+2395.49166556936
+11
+23.8223110888135
+21
+-70.0735200000139
+31
+2390.15911280603
+12
+23.8223110888135
+22
+0.0
+32
+2390.15911280603
+13
+23.8223110888135
+23
+0.0
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+-70.0735200000139
+30
+2390.15911280603
+11
+30.3200454313183
+21
+0.0
+31
+2395.49166556936
+12
+30.3200454313183
+22
+-70.0735200000139
+32
+2395.49166556936
+13
+30.3200454313183
+23
+-70.0735200000139
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+0.0
+30
+2401.98939991186
+11
+39.6150423666467
+21
+-70.0735200000139
+31
+2409.40261154673
+12
+35.652598194651
+22
+-70.0735200000139
+32
+2401.98939991186
+13
+35.652598194651
+23
+-70.0735200000139
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666467
+20
+-70.0735200000139
+30
+2409.40261154673
+11
+35.652598194651
+21
+0.0
+31
+2401.98939991186
+12
+39.6150423666467
+22
+0.0
+32
+2409.40261154673
+13
+39.6150423666467
+23
+0.0
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.3653417859741
+20
+-70.0735200000139
+30
+2077.25722767309
+11
+6.64680129382589e-05
+21
+-116.789200000014
+31
+2078.08114458081
+12
+6.64680129382589e-05
+22
+-70.0735200000139
+32
+2078.08114458081
+13
+6.64680129382589e-05
+23
+-70.0735200000139
+33
+2078.08114458081
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-116.789200000014
+30
+2078.08114458081
+11
+8.3653417859741
+21
+-70.0735200000139
+31
+2077.25722767309
+12
+8.3653417859741
+22
+-116.789200000014
+32
+2077.25722767309
+13
+8.3653417859741
+23
+-116.789200000014
+33
+2077.25722767309
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550941197328
+20
+-70.0735200000139
+30
+2026.83683127205
+11
+39.6150242888304
+21
+-116.789200000014
+31
+2018.79303058852
+12
+42.0550941197328
+22
+-116.789200000014
+32
+2026.83683127205
+13
+42.0550941197328
+23
+-116.789200000014
+33
+2026.83683127205
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150242888304
+20
+-116.789200000014
+30
+2018.79303058852
+11
+42.0550941197328
+21
+-70.0735200000139
+31
+2026.83683127205
+12
+39.6150242888304
+22
+-70.0735200000139
+32
+2018.79303058852
+13
+39.6150242888304
+23
+-70.0735200000139
+33
+2018.79303058852
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200948028707
+20
+-70.0735200000139
+30
+1710.59234602203
+11
+23.8223691906999
+21
+-116.789200000014
+31
+1715.9249093911
+12
+23.8223691906999
+22
+-70.0735200000139
+32
+1715.9249093911
+13
+23.8223691906999
+23
+-70.0735200000139
+33
+1715.9249093911
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223691906999
+20
+-116.789200000014
+30
+1715.9249093911
+11
+30.3200948028707
+21
+-70.0735200000139
+31
+1710.59234602203
+12
+30.3200948028707
+22
+-116.789200000014
+32
+1710.59234602203
+13
+30.3200948028707
+23
+-116.789200000014
+33
+1710.59234602203
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4091029648416
+20
+-116.789200000014
+30
+1995.5871487692
+11
+-23.8223102646976
+21
+-70.0735200000139
+31
+1999.54960100809
+12
+-23.8223102646976
+22
+-116.789200000014
+32
+1999.54960100809
+13
+-23.8223102646976
+23
+-116.789200000014
+33
+1999.54960100809
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8223102646976
+20
+-70.0735200000139
+30
+1999.54960100809
+11
+-16.4091029648416
+21
+-116.789200000014
+31
+1995.5871487692
+12
+-16.4091029648416
+22
+-70.0735200000139
+32
+1995.5871487692
+13
+-16.4091029648416
+23
+-70.0735200000139
+33
+1995.5871487692
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815511
+20
+-841.493538994769
+30
+2401.98939991186
+11
+-30.3200057182179
+21
+-116.789200000014
+31
+2395.49166556936
+12
+-30.3200057182178
+22
+-847.173357521512
+32
+2395.49166556936
+13
+-30.3200057182178
+23
+-847.173357521512
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182179
+20
+-116.789200000014
+30
+2395.49166556936
+11
+-35.6525584815511
+21
+-841.493538994769
+31
+2401.98939991186
+12
+-35.6525584815506
+22
+-116.789200000014
+32
+2401.98939991186
+13
+-35.6525584815506
+23
+-116.789200000014
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-712.59031140046
+20
+-116.789200000014
+30
+1614.76108002137
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+1614.76108002137
+12
+-717.191404282444
+22
+-70.0735200000139
+32
+1614.76108002137
+13
+-717.191404282444
+23
+-70.0735200000139
+33
+1614.76108002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-70.0735200000139
+30
+1614.76108002137
+11
+-712.59031140046
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-93.4313636055058
+22
+-116.789200000014
+32
+1614.76108002137
+13
+-93.4313636055058
+23
+-116.789200000014
+33
+1614.76108002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247178
+20
+-741.60397762106
+30
+2467.86677472752
+11
+16.4090994539477
+21
+-116.789200000014
+31
+2465.42671365422
+12
+8.36529609247169
+22
+-116.789200000014
+32
+2467.86677472752
+13
+8.36529609247169
+23
+-116.789200000014
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539477
+20
+-116.789200000014
+30
+2465.42671365422
+11
+8.36529609247178
+21
+-741.60397762106
+31
+2467.86677472752
+12
+16.4090994539477
+22
+-741.556408807198
+32
+2465.42671365422
+13
+16.4090994539477
+23
+-741.556408807198
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550500581767
+20
+-70.0735200000139
+30
+1688.63771501308
+11
+-39.6149758455043
+21
+-116.789200000014
+31
+1696.68151436742
+12
+-42.0550500581767
+22
+-116.789200000014
+32
+1688.63771501308
+13
+-42.0550500581767
+23
+-116.789200000014
+33
+1688.63771501308
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6149758455043
+20
+-116.789200000014
+30
+1696.68151436742
+11
+-42.0550500581767
+21
+-70.0735200000139
+31
+1688.63771501308
+12
+-39.6149758455043
+22
+-70.0735200000139
+32
+1696.68151436742
+13
+-39.6149758455043
+23
+-70.0735200000139
+33
+1696.68151436742
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550895628442
+20
+-70.0735200000139
+30
+1671.90702512775
+11
+39.6150153501718
+21
+-116.789200000014
+31
+1663.86322577341
+12
+42.0550895628442
+22
+-116.789200000014
+32
+1671.90702512775
+13
+42.0550895628442
+23
+-116.789200000014
+33
+1671.90702512775
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150153501718
+20
+-116.789200000014
+30
+1663.86322577341
+11
+42.0550895628442
+21
+-70.0735200000139
+31
+1671.90702512775
+12
+39.6150153501718
+22
+-70.0735200000139
+32
+1663.86322577341
+13
+39.6150153501718
+23
+-70.0735200000139
+33
+1663.86322577341
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+0.0
+30
+2449.63398237639
+11
+-39.6150026535464
+21
+-70.0735200000139
+31
+2442.22077074152
+12
+-35.6525584815506
+22
+-70.0735200000139
+32
+2449.63398237639
+13
+-35.6525584815506
+23
+-70.0735200000139
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+-70.0735200000139
+30
+2442.22077074152
+11
+-35.6525584815506
+21
+0.0
+31
+2449.63398237639
+12
+-39.6150026535464
+22
+0.0
+32
+2442.22077074152
+13
+-39.6150026535464
+23
+0.0
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+-93.4313636055058
+21
+-116.789200000014
+31
+1614.76108002137
+12
+-93.4313636055058
+22
+-116.789200000014
+32
+2549.07468002137
+13
+-93.4313636055058
+23
+-116.789200000014
+33
+2549.07468002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-116.789200000014
+30
+1614.76108002137
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-93.4313636055058
+22
+-70.0735200000139
+32
+1614.76108002137
+13
+-93.4313636055058
+23
+-70.0735200000139
+33
+1614.76108002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+6.64680129382589e-05
+20
+-70.0735200000139
+30
+2078.08114458081
+11
+-8.36521064520558
+21
+-116.789200000014
+31
+2077.25724590065
+12
+-8.36521064520558
+22
+-70.0735200000139
+32
+2077.25724590065
+13
+-8.36521064520558
+23
+-70.0735200000139
+33
+2077.25724590065
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36521064520558
+20
+-116.789200000014
+30
+2077.25724590065
+11
+6.64680129382589e-05
+21
+-70.0735200000139
+31
+2078.08114458081
+12
+6.64680129382589e-05
+22
+-116.789200000014
+32
+2078.08114458081
+13
+6.64680129382589e-05
+23
+-116.789200000014
+33
+2078.08114458081
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200782863833
+20
+-70.0735200000139
+30
+2065.5221457738
+11
+23.8223497693652
+21
+-116.789200000014
+31
+2070.8547056033
+12
+23.8223497693652
+22
+-70.0735200000139
+32
+2070.8547056033
+13
+23.8223497693652
+23
+-70.0735200000139
+33
+2070.8547056033
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223497693652
+20
+-116.789200000014
+30
+2070.8547056033
+11
+30.3200782863833
+21
+-70.0735200000139
+31
+2065.5221457738
+12
+30.3200782863833
+22
+-116.789200000014
+32
+2065.5221457738
+13
+30.3200782863833
+23
+-116.789200000014
+33
+2065.5221457738
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090166455219
+20
+-70.0735200000139
+30
+2074.81719359682
+11
+-23.8222325793624
+21
+-116.789200000014
+31
+2070.85475751098
+12
+-23.8222325793624
+22
+-70.0735200000139
+32
+2070.85475751098
+13
+-23.8222325793624
+23
+-70.0735200000139
+33
+2070.85475751098
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222325793624
+20
+-116.789200000014
+30
+2070.85475751098
+11
+-16.4090166455219
+21
+-70.0735200000139
+31
+2074.81719359682
+12
+-16.4090166455219
+22
+-116.789200000014
+32
+2074.81719359682
+13
+-16.4090166455219
+23
+-116.789200000014
+33
+2074.81719359682
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.9856550251518e-05
+20
+-741.653447536011
+30
+2468.69068252346
+11
+8.36529609247169
+21
+-116.789200000014
+31
+2467.86677472752
+12
+1.98565501612791e-05
+22
+-116.789200000014
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+-116.789200000014
+33
+2468.69068252346
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-116.789200000014
+30
+2467.86677472752
+11
+1.9856550251518e-05
+21
+-741.653447536011
+31
+2468.69068252346
+12
+8.36529609247178
+22
+-741.60397762106
+32
+2467.86677472752
+13
+8.36529609247178
+23
+-741.60397762106
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+0.0
+30
+2383.75660756074
+11
+-16.4090597408473
+21
+-70.0735200000139
+31
+2386.19666863403
+12
+-16.4090597408473
+22
+0.0
+32
+2386.19666863403
+13
+-16.4090597408473
+23
+0.0
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+-70.0735200000139
+30
+2386.19666863403
+11
+-8.36525637937127
+21
+0.0
+31
+2383.75660756074
+12
+-8.36525637937127
+22
+-70.0735200000139
+32
+2383.75660756074
+13
+-8.36525637937127
+23
+-70.0735200000139
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+-116.789200000014
+30
+2395.49166556936
+11
+35.6525981946511
+21
+-841.49353899477
+31
+2401.98939991186
+12
+30.3200454313184
+22
+-847.173357521512
+32
+2395.49166556936
+13
+30.3200454313184
+23
+-847.173357521512
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6525981946511
+20
+-841.49353899477
+30
+2401.98939991186
+11
+30.3200454313183
+21
+-116.789200000014
+31
+2395.49166556936
+12
+35.652598194651
+22
+-116.789200000014
+32
+2401.98939991186
+13
+35.652598194651
+23
+-116.789200000014
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652572049941
+20
+-70.0735200000139
+30
+2011.37982328866
+11
+30.3200122204362
+21
+-116.789200000014
+31
+2004.88209477165
+12
+35.652572049941
+22
+-116.789200000014
+32
+2011.37982328866
+13
+35.652572049941
+23
+-116.789200000014
+33
+2011.37982328866
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200122204362
+20
+-116.789200000014
+30
+2004.88209477165
+11
+35.652572049941
+21
+-70.0735200000139
+31
+2011.37982328866
+12
+30.3200122204362
+22
+-70.0735200000139
+32
+2004.88209477165
+13
+30.3200122204362
+23
+-70.0735200000139
+33
+2004.88209477165
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4091245446726
+20
+-116.789200000014
+30
+1640.65737447258
+11
+-23.8223296860324
+21
+-70.0735200000139
+31
+1644.61983074973
+12
+-23.8223296860324
+22
+-116.789200000014
+32
+1644.61983074973
+13
+-23.8223296860324
+23
+-116.789200000014
+33
+1644.61983074973
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8223296860324
+20
+-70.0735200000139
+30
+1644.61983074973
+11
+-16.4091245446726
+21
+-116.789200000014
+31
+1640.65737447258
+12
+-16.4091245446726
+22
+-70.0735200000139
+32
+1640.65737447258
+13
+-16.4091245446726
+23
+-70.0735200000139
+33
+1640.65737447258
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+0.0
+30
+2449.63398237639
+11
+30.3200454313183
+21
+-70.0735200000139
+31
+2456.13171671889
+12
+35.652598194651
+22
+-70.0735200000139
+32
+2449.63398237639
+13
+35.652598194651
+23
+-70.0735200000139
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+-70.0735200000139
+30
+2456.13171671889
+11
+35.652598194651
+21
+0.0
+31
+2449.63398237639
+12
+30.3200454313183
+22
+0.0
+32
+2456.13171671889
+13
+30.3200454313183
+23
+0.0
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-2.69633454074381e-05
+20
+-116.789200000014
+30
+1992.32316203057
+11
+-8.36530228130657
+21
+-70.0735200000139
+31
+1993.1470789383
+12
+-8.36530228130657
+22
+-116.789200000014
+32
+1993.1470789383
+13
+-8.36530228130657
+23
+-116.789200000014
+33
+1993.1470789383
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36530228130657
+20
+-70.0735200000139
+30
+1993.1470789383
+11
+-2.69633454074381e-05
+21
+-116.789200000014
+31
+1992.32316203057
+12
+-2.69633454074381e-05
+22
+-70.0735200000139
+32
+1992.32316203057
+13
+-2.69633454074381e-05
+23
+-70.0735200000139
+33
+1992.32316203057
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551123472866
+20
+-70.0735200000139
+30
+2043.56738370323
+11
+42.8790110274535
+21
+-116.789200000014
+31
+2035.20210659002
+12
+42.0551123472866
+22
+-116.789200000014
+32
+2043.56738370323
+13
+42.0551123472866
+23
+-116.789200000014
+33
+2043.56738370323
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-116.789200000014
+30
+2035.20210659002
+11
+42.0551123472866
+21
+-70.0735200000139
+31
+2043.56738370323
+12
+42.8790110274535
+22
+-70.0735200000139
+32
+2035.20210659002
+13
+42.8790110274535
+23
+-70.0735200000139
+33
+2035.20210659002
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36536469500046
+20
+-70.0735200000139
+30
+1722.32743988093
+11
+8.98258536075502e-05
+21
+-116.789200000014
+31
+1723.15136134553
+12
+8.98258536075502e-05
+22
+-70.0735200000139
+32
+1723.15136134553
+13
+8.98258536075502e-05
+23
+-70.0735200000139
+33
+1723.15136134553
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-116.789200000014
+30
+1723.15136134553
+11
+8.36536469500046
+21
+-70.0735200000139
+31
+1722.32743988093
+12
+8.36536469500046
+22
+-116.789200000014
+32
+1722.32743988093
+13
+8.36536469500046
+23
+-116.789200000014
+33
+1722.32743988093
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.98565501612791e-05
+20
+-70.0735200000139
+30
+2468.69068252346
+11
+-8.36525637937127
+21
+0.0
+31
+2467.86677472752
+12
+-8.36525637937127
+22
+-70.0735200000139
+32
+2467.86677472752
+13
+-8.36525637937127
+23
+-70.0735200000139
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+0.0
+30
+2467.86677472752
+11
+1.98565501612791e-05
+21
+-70.0735200000139
+31
+2468.69068252346
+12
+1.98565501612791e-05
+22
+0.0
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+0.0
+33
+2468.69068252346
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535458
+20
+-741.887719751186
+30
+2442.22077074152
+11
+-42.0550637268397
+21
+-116.789200000014
+31
+2434.17696738005
+12
+-42.0550637268397
+22
+-741.902149593115
+32
+2434.17696738005
+13
+-42.0550637268397
+23
+-741.902149593115
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-116.789200000014
+30
+2434.17696738005
+11
+-39.6150026535458
+21
+-741.887719751186
+31
+2442.22077074152
+12
+-39.6150026535464
+22
+-116.789200000014
+32
+2442.22077074152
+13
+-39.6150026535464
+23
+-116.789200000014
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.98258536075502e-05
+20
+-70.0735200000139
+30
+1723.15136134553
+11
+-8.36518773617931
+21
+-116.789200000014
+31
+1722.32746722226
+12
+-8.36518773617931
+22
+-70.0735200000139
+32
+1722.32746722226
+13
+-8.36518773617931
+23
+-70.0735200000139
+33
+1722.32746722226
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36518773617931
+20
+-116.789200000014
+30
+1722.32746722226
+11
+8.98258536075502e-05
+21
+-70.0735200000139
+31
+1723.15136134553
+12
+8.98258536075502e-05
+22
+-116.789200000014
+32
+1723.15136134553
+13
+8.98258536075502e-05
+23
+-116.789200000014
+33
+1723.15136134553
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36532519033293
+20
+-116.789200000014
+30
+1638.2173002599
+11
+-16.4091245446726
+21
+-70.0735200000139
+31
+1640.65737447258
+12
+-16.4091245446726
+22
+-116.789200000014
+32
+1640.65737447258
+13
+-16.4091245446726
+23
+-116.789200000014
+33
+1640.65737447258
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4091245446726
+20
+-70.0735200000139
+30
+1640.65737447258
+11
+-8.36532519033293
+21
+-116.789200000014
+31
+1638.2173002599
+12
+-8.36532519033293
+22
+-70.0735200000139
+32
+1638.2173002599
+13
+-8.36532519033293
+23
+-70.0735200000139
+33
+1638.2173002599
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-116.789200000014
+30
+2549.07468002137
+11
+-93.4313636055058
+21
+-70.0735200000139
+31
+2549.07468002137
+12
+-93.4313636055058
+22
+-116.789200000014
+32
+2549.07468002137
+13
+-93.4313636055058
+23
+-116.789200000014
+33
+2549.07468002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-93.4313636055058
+20
+-70.0735200000139
+30
+2549.07468002137
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+93.4313563944944
+22
+-70.0735200000139
+32
+2549.07468002137
+13
+93.4313563944944
+23
+-70.0735200000139
+33
+2549.07468002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551034399401
+20
+-741.404745478907
+30
+2434.17696738005
+11
+39.6150423666468
+21
+-116.789200000014
+31
+2442.22077074152
+12
+39.6150423666469
+22
+-741.419175320836
+32
+2442.22077074152
+13
+39.6150423666469
+23
+-741.419175320836
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666468
+20
+-116.789200000014
+30
+2442.22077074152
+11
+42.0551034399401
+21
+-741.404745478907
+31
+2434.17696738005
+12
+42.05510343994
+22
+-116.789200000014
+32
+2434.17696738005
+13
+42.05510343994
+23
+-116.789200000014
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-116.789200000014
+30
+2383.75660756074
+11
+-16.4090597408471
+21
+-855.298327398157
+31
+2386.19666863403
+12
+-16.4090597408473
+22
+-116.789200000014
+32
+2386.19666863403
+13
+-16.4090597408473
+23
+-116.789200000014
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408471
+20
+-855.298327398157
+30
+2386.19666863403
+11
+-8.36525637937127
+21
+-116.789200000014
+31
+2383.75660756074
+12
+-8.36525637937127
+22
+-857.431240712236
+32
+2383.75660756074
+13
+-8.36525637937127
+23
+-857.431240712236
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090561501895
+20
+-116.789200000014
+30
+1995.58711301456
+11
+8.36525014987311
+21
+-70.0735200000139
+31
+1993.14706071074
+12
+8.36525014987311
+22
+-116.789200000014
+32
+1993.14706071074
+13
+8.36525014987311
+23
+-116.789200000014
+33
+1993.14706071074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36525014987311
+20
+-70.0735200000139
+30
+1993.14706071074
+11
+16.4090561501895
+21
+-116.789200000014
+31
+1995.58711301456
+12
+16.4090561501895
+22
+-70.0735200000139
+32
+1995.58711301456
+13
+16.4090561501895
+23
+-70.0735200000139
+33
+1995.58711301456
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790110274535
+20
+-70.0735200000139
+30
+1680.2722999969
+11
+42.0550895628442
+21
+-116.789200000014
+31
+1671.90702512775
+12
+42.8790110274535
+22
+-116.789200000014
+32
+1680.2722999969
+13
+42.8790110274535
+23
+-116.789200000014
+33
+1680.2722999969
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0550895628442
+20
+-116.789200000014
+30
+1671.90702512775
+11
+42.8790110274535
+21
+-70.0735200000139
+31
+1680.2722999969
+12
+42.0550895628442
+22
+-70.0735200000139
+32
+1671.90702512775
+13
+42.0550895628442
+23
+-70.0735200000139
+33
+1671.90702512775
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.615068982122
+20
+-70.0735200000139
+30
+1696.68138488844
+11
+42.0551169041753
+21
+-116.789200000014
+31
+1688.63757755893
+12
+39.615068982122
+22
+-116.789200000014
+32
+1696.68138488844
+13
+39.615068982122
+23
+-116.789200000014
+33
+1696.68138488844
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551169041753
+20
+-116.789200000014
+30
+1688.63757755893
+11
+39.615068982122
+21
+-70.0735200000139
+31
+1696.68138488844
+12
+42.0551169041753
+22
+-70.0735200000139
+32
+1688.63757755893
+13
+42.0551169041753
+23
+-70.0735200000139
+33
+1688.63757755893
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.652597429876
+20
+-70.0735200000139
+30
+1656.45013716005
+11
+-39.6150294774544
+21
+-116.789200000014
+31
+1663.86335525239
+12
+-35.652597429876
+22
+-116.789200000014
+32
+1656.45013716005
+13
+-35.652597429876
+23
+-116.789200000014
+33
+1656.45013716005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150294774544
+20
+-116.789200000014
+30
+1663.86335525239
+11
+-35.652597429876
+21
+-70.0735200000139
+31
+1656.45013716005
+12
+-39.6150294774544
+22
+-70.0735200000139
+32
+1663.86335525239
+13
+-39.6150294774544
+23
+-70.0735200000139
+33
+1663.86335525239
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150600434633
+20
+-70.0735200000139
+30
+2051.61118970355
+11
+42.0551123472866
+21
+-116.789200000014
+31
+2043.56738370323
+12
+39.6150600434633
+22
+-116.789200000014
+32
+2051.61118970355
+13
+39.6150600434633
+23
+-116.789200000014
+33
+2051.61118970355
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551123472866
+20
+-116.789200000014
+30
+2043.56738370323
+11
+39.6150600434633
+21
+-70.0735200000139
+31
+2051.61118970355
+12
+42.0551123472866
+22
+-70.0735200000139
+32
+2043.56738370323
+13
+42.0551123472866
+23
+-70.0735200000139
+33
+2043.56738370323
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-857.431240712237
+30
+2383.75660756074
+11
+-8.36525637937127
+21
+-857.431240712236
+31
+2383.75660756074
+12
+1.98565501612791e-05
+22
+-858.151437401893
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-858.151437401893
+33
+2382.93269976479
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-857.431240712236
+30
+2383.75660756074
+11
+8.36529609247169
+21
+-857.431240712237
+31
+2383.75660756074
+12
+16.4090994539476
+22
+-855.298327398158
+32
+2386.19666863403
+13
+16.4090994539476
+23
+-855.298327398158
+33
+2386.19666863403
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-857.431240712236
+30
+2383.75660756074
+11
+16.4090994539476
+21
+-855.298327398158
+31
+2386.19666863403
+12
+-16.4090597408471
+22
+-855.298327398157
+32
+2386.19666863403
+13
+-16.4090597408471
+23
+-855.298327398157
+33
+2386.19666863403
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408471
+20
+-855.298327398157
+30
+2386.19666863403
+11
+16.4090994539476
+21
+-855.298327398158
+31
+2386.19666863403
+12
+23.8223110888136
+22
+-851.834664122165
+32
+2390.15911280603
+13
+23.8223110888136
+23
+-851.834664122165
+33
+2390.15911280603
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408471
+20
+-855.298327398157
+30
+2386.19666863403
+11
+23.8223110888136
+21
+-851.834664122165
+31
+2390.15911280603
+12
+-23.822271375713
+22
+-851.834664122165
+32
+2390.15911280603
+13
+-23.822271375713
+23
+-851.834664122165
+33
+2390.15911280603
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.822271375713
+20
+-851.834664122165
+30
+2390.15911280603
+11
+23.8223110888136
+21
+-851.834664122165
+31
+2390.15911280603
+12
+30.3200454313184
+22
+-847.173357521512
+32
+2395.49166556936
+13
+30.3200454313184
+23
+-847.173357521512
+33
+2395.49166556936
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.822271375713
+20
+-851.834664122165
+30
+2390.15911280603
+11
+30.3200454313184
+21
+-847.173357521512
+31
+2395.49166556936
+12
+-30.3200057182178
+22
+-847.173357521512
+32
+2395.49166556936
+13
+-30.3200057182178
+23
+-847.173357521512
+33
+2395.49166556936
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182178
+20
+-847.173357521512
+30
+2395.49166556936
+11
+30.3200454313184
+21
+-847.173357521512
+31
+2395.49166556936
+12
+35.6525981946511
+22
+-841.49353899477
+32
+2401.98939991186
+13
+35.6525981946511
+23
+-841.49353899477
+33
+2401.98939991186
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182178
+20
+-847.173357521512
+30
+2395.49166556936
+11
+35.6525981946511
+21
+-841.49353899477
+31
+2401.98939991186
+12
+-35.6525584815511
+22
+-841.493538994769
+32
+2401.98939991186
+13
+-35.6525584815511
+23
+-841.493538994769
+33
+2401.98939991186
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815511
+20
+-841.493538994769
+30
+2401.98939991186
+11
+35.6525981946511
+21
+-841.49353899477
+31
+2401.98939991186
+12
+39.3611647970471
+22
+-835.428664280087
+32
+2408.9276400213
+13
+39.3611647970471
+23
+-835.428664280087
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815511
+20
+-841.493538994769
+30
+2401.98939991186
+11
+39.3611647970471
+21
+-835.428664280087
+31
+2408.9276400213
+12
+-39.3611250839466
+22
+-835.428664280087
+32
+2408.9276400213
+13
+-39.3611250839466
+23
+-835.428664280087
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539476
+20
+-116.789200000014
+30
+2386.19666863403
+11
+8.36529609247169
+21
+-857.431240712237
+31
+2383.75660756074
+12
+8.36529609247169
+22
+-116.789200000014
+32
+2383.75660756074
+13
+8.36529609247169
+23
+-116.789200000014
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-857.431240712237
+30
+2383.75660756074
+11
+16.4090994539476
+21
+-116.789200000014
+31
+2386.19666863403
+12
+16.4090994539476
+22
+-855.298327398158
+32
+2386.19666863403
+13
+16.4090994539476
+23
+-855.298327398158
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182176
+20
+-741.832751726833
+30
+2456.13171671889
+11
+-23.8222713757131
+21
+-116.789200000014
+31
+2461.46426948223
+12
+-30.3200057182179
+22
+-116.789200000014
+32
+2456.13171671889
+13
+-30.3200057182179
+23
+-116.789200000014
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+-116.789200000014
+30
+2461.46426948223
+11
+-30.3200057182176
+21
+-741.832751726833
+31
+2456.13171671889
+12
+-23.822271375713
+22
+-741.794325934758
+32
+2461.46426948223
+13
+-23.822271375713
+23
+-741.794325934758
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4322738363532
+20
+-70.0735200000139
+30
+1614.76107890595
+11
+93.4313563944944
+21
+-116.789200000014
+31
+2549.07468002137
+12
+93.4322738363532
+22
+-116.789200000014
+32
+1614.76107890595
+13
+93.4322738363532
+23
+-116.789200000014
+33
+1614.76107890595
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+93.4313563944944
+20
+-116.789200000014
+30
+2549.07468002137
+11
+93.4322738363532
+21
+-70.0735200000139
+31
+1614.76107890595
+12
+93.4313563944944
+22
+-70.0735200000139
+32
+2549.07468002137
+13
+93.4313563944944
+23
+-70.0735200000139
+33
+2549.07468002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182176
+20
+-741.832751726833
+30
+2456.13171671889
+11
+-35.6525584815506
+21
+-116.789200000014
+31
+2449.63398237639
+12
+-35.6525584815506
+22
+-741.864286959411
+32
+2449.63398237639
+13
+-35.6525584815506
+23
+-741.864286959411
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-116.789200000014
+30
+2449.63398237639
+11
+-30.3200057182176
+21
+-741.832751726833
+31
+2456.13171671889
+12
+-30.3200057182179
+22
+-116.789200000014
+32
+2456.13171671889
+13
+-30.3200057182179
+23
+-116.789200000014
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+-116.789200000014
+30
+2390.15911280603
+11
+16.4090994539476
+21
+-855.298327398158
+31
+2386.19666863403
+12
+16.4090994539476
+22
+-116.789200000014
+32
+2386.19666863403
+13
+16.4090994539476
+23
+-116.789200000014
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539476
+20
+-855.298327398158
+30
+2386.19666863403
+11
+23.8223110888135
+21
+-116.789200000014
+31
+2390.15911280603
+12
+23.8223110888136
+22
+-851.834664122165
+32
+2390.15911280603
+13
+23.8223110888136
+23
+-851.834664122165
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200782863833
+20
+-70.0735200000139
+30
+2065.5221457738
+11
+35.6526239576226
+21
+-116.789200000014
+31
+2059.02440563739
+12
+30.3200782863833
+22
+-116.789200000014
+32
+2065.5221457738
+13
+30.3200782863833
+23
+-116.789200000014
+33
+2065.5221457738
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6526239576226
+20
+-116.789200000014
+30
+2059.02440563739
+11
+30.3200782863833
+21
+-70.0735200000139
+31
+2065.5221457738
+12
+35.6526239576226
+22
+-70.0735200000139
+32
+2059.02440563739
+13
+35.6526239576226
+23
+-70.0735200000139
+33
+2059.02440563739
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090345703586
+20
+-116.789200000014
+30
+1640.65732084063
+11
+8.36522724084684
+21
+-70.0735200000139
+31
+1638.21727291857
+12
+8.36522724084684
+22
+-116.789200000014
+32
+1638.21727291857
+13
+8.36522724084684
+23
+-116.789200000014
+33
+1638.21727291857
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36522724084684
+20
+-70.0735200000139
+30
+1638.21727291857
+11
+16.4090345703586
+21
+-116.789200000014
+31
+1640.65732084063
+12
+16.4090345703586
+22
+-70.0735200000139
+32
+1640.65732084063
+13
+16.4090345703586
+23
+-70.0735200000139
+33
+1640.65732084063
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666467
+20
+0.0
+30
+2409.40261154673
+11
+42.05510343994
+21
+-70.0735200000139
+31
+2417.44641490821
+12
+39.6150423666467
+22
+-70.0735200000139
+32
+2409.40261154673
+13
+39.6150423666467
+23
+-70.0735200000139
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+-70.0735200000139
+30
+2417.44641490821
+11
+39.6150423666467
+21
+0.0
+31
+2409.40261154673
+12
+42.05510343994
+22
+0.0
+32
+2417.44641490821
+13
+42.05510343994
+23
+0.0
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.3611647970476
+20
+-741.420676682108
+30
+2408.9276400213
+11
+-39.615002653547
+21
+-741.887719751186
+31
+2409.40261154673
+12
+-39.3611250839469
+22
+-741.886218389914
+32
+2408.9276400213
+13
+-39.3611250839469
+23
+-741.886218389914
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.615002653547
+20
+-741.887719751186
+30
+2409.40261154673
+11
+39.3611647970476
+21
+-741.420676682108
+31
+2408.9276400213
+12
+39.6150423666477
+22
+-741.419175320836
+32
+2409.40261154673
+13
+39.6150423666477
+23
+-741.419175320836
+33
+2409.40261154673
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.615002653547
+20
+-741.887719751186
+30
+2409.40261154673
+11
+39.6150423666477
+21
+-741.419175320836
+31
+2409.40261154673
+12
+-42.0550637268399
+22
+-741.902149593115
+32
+2417.44641490821
+13
+-42.0550637268399
+23
+-741.902149593115
+33
+2417.44641490821
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268399
+20
+-741.902149593115
+30
+2417.44641490821
+11
+39.6150423666477
+21
+-741.419175320836
+31
+2409.40261154673
+12
+42.0551034399399
+22
+-741.404745478908
+32
+2417.44641490821
+13
+42.0551034399399
+23
+-741.404745478908
+33
+2417.44641490821
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268399
+20
+-741.902149593115
+30
+2417.44641490821
+11
+42.0551034399399
+21
+-741.404745478908
+31
+2417.44641490821
+12
+42.8790112358864
+22
+-741.39987311756
+32
+2425.81169114413
+13
+42.8790112358864
+23
+-741.39987311756
+33
+2425.81169114413
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268399
+20
+-741.902149593115
+30
+2417.44641490821
+11
+42.8790112358864
+21
+-741.39987311756
+31
+2425.81169114413
+12
+-42.878971522786
+22
+-741.907021954462
+32
+2425.81169114413
+13
+-42.878971522786
+23
+-741.907021954462
+33
+2425.81169114413
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-741.907021954462
+30
+2425.81169114413
+11
+42.8790112358864
+21
+-741.39987311756
+31
+2425.81169114413
+12
+42.0551034399401
+22
+-741.404745478907
+32
+2434.17696738005
+13
+42.0551034399401
+23
+-741.404745478907
+33
+2434.17696738005
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-741.907021954462
+30
+2425.81169114413
+11
+42.0551034399401
+21
+-741.404745478907
+31
+2434.17696738005
+12
+-42.0550637268397
+22
+-741.902149593115
+32
+2434.17696738005
+13
+-42.0550637268397
+23
+-741.902149593115
+33
+2434.17696738005
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-741.902149593115
+30
+2434.17696738005
+11
+42.0551034399401
+21
+-741.404745478907
+31
+2434.17696738005
+12
+39.6150423666469
+22
+-741.419175320836
+32
+2442.22077074152
+13
+39.6150423666469
+23
+-741.419175320836
+33
+2442.22077074152
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-741.902149593115
+30
+2434.17696738005
+11
+39.6150423666469
+21
+-741.419175320836
+31
+2442.22077074152
+12
+-39.6150026535458
+22
+-741.887719751186
+32
+2442.22077074152
+13
+-39.6150026535458
+23
+-741.887719751186
+33
+2442.22077074152
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535458
+20
+-741.887719751186
+30
+2442.22077074152
+11
+39.6150423666469
+21
+-741.419175320836
+31
+2442.22077074152
+12
+35.6525981946522
+22
+-741.442608112612
+32
+2449.63398237639
+13
+35.6525981946522
+23
+-741.442608112612
+33
+2449.63398237639
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535458
+20
+-741.887719751186
+30
+2442.22077074152
+11
+35.6525981946522
+21
+-741.442608112612
+31
+2449.63398237639
+12
+-35.6525584815506
+22
+-741.864286959411
+32
+2449.63398237639
+13
+-35.6525584815506
+23
+-741.864286959411
+33
+2449.63398237639
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-741.864286959411
+30
+2449.63398237639
+11
+35.6525981946522
+21
+-741.442608112612
+31
+2449.63398237639
+12
+30.3200454313182
+22
+-741.474143345189
+32
+2456.13171671889
+13
+30.3200454313182
+23
+-741.474143345189
+33
+2456.13171671889
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-741.864286959411
+30
+2449.63398237639
+11
+30.3200454313182
+21
+-741.474143345189
+31
+2456.13171671889
+12
+-30.3200057182176
+22
+-741.832751726833
+32
+2456.13171671889
+13
+-30.3200057182176
+23
+-741.832751726833
+33
+2456.13171671889
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182176
+20
+-741.832751726833
+30
+2456.13171671889
+11
+30.3200454313182
+21
+-741.474143345189
+31
+2456.13171671889
+12
+23.8223110888134
+22
+-741.512569137265
+32
+2461.46426948223
+13
+23.8223110888134
+23
+-741.512569137265
+33
+2461.46426948223
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182176
+20
+-741.832751726833
+30
+2456.13171671889
+11
+23.8223110888134
+21
+-741.512569137265
+31
+2461.46426948223
+12
+-23.822271375713
+22
+-741.794325934758
+32
+2461.46426948223
+13
+-23.822271375713
+23
+-741.794325934758
+33
+2461.46426948223
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.822271375713
+20
+-741.794325934758
+30
+2461.46426948223
+11
+23.8223110888134
+21
+-741.512569137265
+31
+2461.46426948223
+12
+-16.4090597408471
+22
+-741.750486264824
+32
+2465.42671365422
+13
+-16.4090597408471
+23
+-741.750486264824
+33
+2465.42671365422
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408471
+20
+-741.750486264824
+30
+2465.42671365422
+11
+23.8223110888134
+21
+-741.512569137265
+31
+2461.46426948223
+12
+16.4090994539477
+22
+-741.556408807198
+32
+2465.42671365422
+13
+16.4090994539477
+23
+-741.556408807198
+33
+2465.42671365422
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408471
+20
+-741.750486264824
+30
+2465.42671365422
+11
+16.4090994539477
+21
+-741.556408807198
+31
+2465.42671365422
+12
+-8.36525637937127
+22
+-741.702917450962
+32
+2467.86677472752
+13
+-8.36525637937127
+23
+-741.702917450962
+33
+2467.86677472752
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-741.702917450962
+30
+2467.86677472752
+11
+16.4090994539477
+21
+-741.556408807198
+31
+2465.42671365422
+12
+8.36529609247178
+22
+-741.60397762106
+32
+2467.86677472752
+13
+8.36529609247178
+23
+-741.60397762106
+33
+2467.86677472752
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-741.702917450962
+30
+2467.86677472752
+11
+8.36529609247178
+21
+-741.60397762106
+31
+2467.86677472752
+12
+1.9856550251518e-05
+22
+-741.653447536011
+32
+2468.69068252346
+13
+1.9856550251518e-05
+23
+-741.653447536011
+33
+2468.69068252346
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+-70.0735200000139
+30
+2467.86677472752
+11
+1.98565501612791e-05
+21
+0.0
+31
+2468.69068252346
+12
+1.98565501612791e-05
+22
+-70.0735200000139
+32
+2468.69068252346
+13
+1.98565501612791e-05
+23
+-70.0735200000139
+33
+2468.69068252346
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.98565501612791e-05
+20
+0.0
+30
+2468.69068252346
+11
+8.36529609247169
+21
+-70.0735200000139
+31
+2467.86677472752
+12
+8.36529609247169
+22
+0.0
+32
+2467.86677472752
+13
+8.36529609247169
+23
+0.0
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150242888304
+20
+-70.0735200000139
+30
+2018.79303058852
+11
+35.652572049941
+21
+-116.789200000014
+31
+2011.37982328866
+12
+39.6150242888304
+22
+-116.789200000014
+32
+2018.79303058852
+13
+39.6150242888304
+23
+-116.789200000014
+33
+2018.79303058852
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652572049941
+20
+-116.789200000014
+30
+2011.37982328866
+11
+39.6150242888304
+21
+-70.0735200000139
+31
+2018.79303058852
+12
+35.652572049941
+22
+-70.0735200000139
+32
+2011.37982328866
+13
+35.652572049941
+23
+-70.0735200000139
+33
+2011.37982328866
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8222720840299
+20
+-116.789200000014
+30
+1999.54954910041
+11
+16.4090561501895
+21
+-70.0735200000139
+31
+1995.58711301456
+12
+16.4090561501895
+22
+-116.789200000014
+32
+1995.58711301456
+13
+16.4090561501895
+23
+-116.789200000014
+33
+1995.58711301456
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090561501895
+20
+-70.0735200000139
+30
+1995.58711301456
+11
+23.8222720840299
+21
+-116.789200000014
+31
+1999.54954910041
+12
+23.8222720840299
+22
+-70.0735200000139
+32
+1999.54954910041
+13
+23.8222720840299
+23
+-70.0735200000139
+33
+1999.54954910041
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-70.0735200000139
+30
+1680.27244014393
+11
+-42.0550500581767
+21
+-116.789200000014
+31
+1688.63771501308
+12
+-42.878971522786
+22
+-116.789200000014
+32
+1680.27244014393
+13
+-42.878971522786
+23
+-116.789200000014
+33
+1680.27244014393
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550500581767
+20
+-116.789200000014
+30
+1688.63771501308
+11
+-42.878971522786
+21
+-70.0735200000139
+31
+1680.27244014393
+12
+-42.0550500581767
+22
+-70.0735200000139
+32
+1688.63771501308
+13
+-42.0550500581767
+23
+-70.0735200000139
+33
+1688.63771501308
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+0.0
+30
+2401.98939991186
+11
+-30.3200057182179
+21
+-70.0735200000139
+31
+2395.49166556936
+12
+-35.6525584815506
+22
+-70.0735200000139
+32
+2401.98939991186
+13
+-35.6525584815506
+23
+-70.0735200000139
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182179
+20
+-70.0735200000139
+30
+2395.49166556936
+11
+-35.6525584815506
+21
+0.0
+31
+2401.98939991186
+12
+-30.3200057182179
+22
+0.0
+32
+2395.49166556936
+13
+-30.3200057182179
+23
+0.0
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+-116.789200000014
+30
+2395.49166556936
+11
+23.8223110888136
+21
+-851.834664122165
+31
+2390.15911280603
+12
+23.8223110888135
+22
+-116.789200000014
+32
+2390.15911280603
+13
+23.8223110888135
+23
+-116.789200000014
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888136
+20
+-851.834664122165
+30
+2390.15911280603
+11
+30.3200454313183
+21
+-116.789200000014
+31
+2395.49166556936
+12
+30.3200454313184
+22
+-847.173357521512
+32
+2395.49166556936
+13
+30.3200454313184
+23
+-847.173357521512
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+-116.789200000014
+30
+2409.40261154673
+11
+-39.3611250839469
+21
+-741.886218389914
+31
+2408.9276400213
+12
+-39.615002653547
+22
+-741.887719751186
+32
+2409.40261154673
+13
+-39.615002653547
+23
+-741.887719751186
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.3611250839466
+20
+-835.428664280087
+30
+2408.9276400213
+11
+-35.6525584815506
+21
+-116.789200000014
+31
+2401.98939991186
+12
+-35.6525584815511
+22
+-841.493538994769
+32
+2401.98939991186
+13
+-35.6525584815511
+23
+-841.493538994769
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-116.789200000014
+30
+2401.98939991186
+11
+-39.3611250839466
+21
+-835.428664280087
+31
+2408.9276400213
+12
+-39.3611250839469
+22
+-741.886218389914
+32
+2408.9276400213
+13
+-39.3611250839469
+23
+-741.886218389914
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-116.789200000014
+30
+2401.98939991186
+11
+-39.3611250839469
+21
+-741.886218389914
+31
+2408.9276400213
+12
+-39.6150026535464
+22
+-116.789200000014
+32
+2409.40261154673
+13
+-39.6150026535464
+23
+-116.789200000014
+33
+2409.40261154673
+70
+3
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36529609247169
+20
+0.0
+30
+2383.75660756074
+11
+1.98565501612791e-05
+21
+-70.0735200000139
+31
+2382.93269976479
+12
+1.98565501612791e-05
+22
+0.0
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+0.0
+33
+2382.93269976479
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.98565501612791e-05
+20
+-70.0735200000139
+30
+2382.93269976479
+11
+8.36529609247169
+21
+0.0
+31
+2383.75660756074
+12
+8.36529609247169
+22
+-70.0735200000139
+32
+2383.75660756074
+13
+8.36529609247169
+23
+-70.0735200000139
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-5.03211860767294e-05
+20
+-116.789200000014
+30
+1637.3933787953
+11
+-8.36532519033293
+21
+-70.0735200000139
+31
+1638.2173002599
+12
+-8.36532519033293
+22
+-116.789200000014
+32
+1638.2173002599
+13
+-8.36532519033293
+23
+-116.789200000014
+33
+1638.2173002599
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36532519033293
+20
+-70.0735200000139
+30
+1638.2173002599
+11
+-5.03211860767294e-05
+21
+-116.789200000014
+31
+1637.3933787953
+12
+-5.03211860767294e-05
+22
+-70.0735200000139
+32
+1637.3933787953
+13
+-5.03211860767294e-05
+23
+-70.0735200000139
+33
+1637.3933787953
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36530228130657
+20
+-116.789200000014
+30
+1993.1470789383
+11
+-16.4091029648416
+21
+-70.0735200000139
+31
+1995.5871487692
+12
+-16.4091029648416
+22
+-116.789200000014
+32
+1995.5871487692
+13
+-16.4091029648416
+23
+-116.789200000014
+33
+1995.5871487692
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4091029648416
+20
+-70.0735200000139
+30
+1995.5871487692
+11
+-8.36530228130657
+21
+-116.789200000014
+31
+1993.1470789383
+12
+-8.36530228130657
+22
+-70.0735200000139
+32
+1993.1470789383
+13
+-8.36530228130657
+23
+-70.0735200000139
+33
+1993.1470789383
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091424695092
+20
+-70.0735200000139
+30
+2074.81715784219
+11
+8.3653417859741
+21
+-116.789200000014
+31
+2077.25722767309
+12
+8.3653417859741
+22
+-70.0735200000139
+32
+2077.25722767309
+13
+8.3653417859741
+23
+-70.0735200000139
+33
+2077.25722767309
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.3653417859741
+20
+-116.789200000014
+30
+2077.25722767309
+11
+16.4091424695092
+21
+-70.0735200000139
+31
+2074.81715784219
+12
+16.4091424695092
+22
+-116.789200000014
+32
+2074.81715784219
+13
+16.4091424695092
+23
+-116.789200000014
+33
+2074.81715784219
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+0.0
+30
+2395.49166556936
+11
+35.652598194651
+21
+-70.0735200000139
+31
+2401.98939991186
+12
+30.3200454313183
+22
+-70.0735200000139
+32
+2395.49166556936
+13
+30.3200454313183
+23
+-70.0735200000139
+33
+2395.49166556936
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+-70.0735200000139
+30
+2401.98939991186
+11
+30.3200454313183
+21
+0.0
+31
+2395.49166556936
+12
+35.652598194651
+22
+0.0
+32
+2401.98939991186
+13
+35.652598194651
+23
+0.0
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-70.0735200000139
+30
+2467.86677472752
+11
+-16.4090597408473
+21
+0.0
+31
+2465.42671365422
+12
+-16.4090597408473
+22
+-70.0735200000139
+32
+2465.42671365422
+13
+-16.4090597408473
+23
+-70.0735200000139
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+0.0
+30
+2465.42671365422
+11
+-8.36525637937127
+21
+-70.0735200000139
+31
+2467.86677472752
+12
+-8.36525637937127
+22
+0.0
+32
+2467.86677472752
+13
+-8.36525637937127
+23
+0.0
+33
+2467.86677472752
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223497693652
+20
+-70.0735200000139
+30
+2070.8547056033
+11
+16.4091424695092
+21
+-116.789200000014
+31
+2074.81715784219
+12
+16.4091424695092
+22
+-70.0735200000139
+32
+2074.81715784219
+13
+16.4091424695092
+23
+-70.0735200000139
+33
+2074.81715784219
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4091424695092
+20
+-116.789200000014
+30
+2074.81715784219
+11
+23.8223497693652
+21
+-70.0735200000139
+31
+2070.8547056033
+12
+23.8223497693652
+22
+-116.789200000014
+32
+2070.8547056033
+13
+23.8223497693652
+23
+-116.789200000014
+33
+2070.8547056033
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200122204362
+20
+-116.789200000014
+30
+2004.88209477165
+11
+23.8222720840299
+21
+-70.0735200000139
+31
+1999.54954910041
+12
+23.8222720840299
+22
+-116.789200000014
+32
+1999.54954910041
+13
+23.8222720840299
+23
+-116.789200000014
+33
+1999.54954910041
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8222720840299
+20
+-70.0735200000139
+30
+1999.54954910041
+11
+30.3200122204362
+21
+-116.789200000014
+31
+2004.88209477165
+12
+30.3200122204362
+22
+-70.0735200000139
+32
+2004.88209477165
+13
+30.3200122204362
+23
+-70.0735200000139
+33
+2004.88209477165
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313183
+20
+-70.0735200000139
+30
+2456.13171671889
+11
+23.8223110888135
+21
+0.0
+31
+2461.46426948223
+12
+23.8223110888135
+22
+-70.0735200000139
+32
+2461.46426948223
+13
+23.8223110888135
+23
+-70.0735200000139
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+0.0
+30
+2461.46426948223
+11
+30.3200454313183
+21
+-70.0735200000139
+31
+2456.13171671889
+12
+30.3200454313183
+22
+0.0
+32
+2456.13171671889
+13
+30.3200454313183
+23
+0.0
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090597408473
+20
+-70.0735200000139
+30
+2465.42671365422
+11
+-23.8222713757131
+21
+0.0
+31
+2461.46426948223
+12
+-23.8222713757131
+22
+-70.0735200000139
+32
+2461.46426948223
+13
+-23.8222713757131
+23
+-70.0735200000139
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222713757131
+20
+0.0
+30
+2461.46426948223
+11
+-16.4090597408473
+21
+-70.0735200000139
+31
+2465.42671365422
+12
+-16.4090597408473
+22
+0.0
+32
+2465.42671365422
+13
+-16.4090597408473
+23
+0.0
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36525014987311
+20
+-116.789200000014
+30
+1993.14706071074
+11
+-2.69633454074381e-05
+21
+-70.0735200000139
+31
+1992.32316203057
+12
+-2.69633454074381e-05
+22
+-116.789200000014
+32
+1992.32316203057
+13
+-2.69633454074381e-05
+23
+-116.789200000014
+33
+1992.32316203057
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-2.69633454074381e-05
+20
+-70.0735200000139
+30
+1992.32316203057
+11
+8.36525014987311
+21
+-116.789200000014
+31
+1993.14706071074
+12
+8.36525014987311
+22
+-70.0735200000139
+32
+1993.14706071074
+13
+8.36525014987311
+23
+-70.0735200000139
+33
+1993.14706071074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+0.0
+30
+2390.15911280603
+11
+16.4090994539476
+21
+-70.0735200000139
+31
+2386.19666863403
+12
+16.4090994539476
+22
+0.0
+32
+2386.19666863403
+13
+16.4090994539476
+23
+0.0
+33
+2386.19666863403
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539476
+20
+-70.0735200000139
+30
+2386.19666863403
+11
+23.8223110888135
+21
+0.0
+31
+2390.15911280603
+12
+23.8223110888135
+22
+-70.0735200000139
+32
+2390.15911280603
+13
+23.8223110888135
+23
+-70.0735200000139
+33
+2390.15911280603
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.65255907302
+20
+-70.0735200000139
+30
+1656.45002063205
+11
+30.3199957039486
+21
+-116.789200000014
+31
+1649.95229501988
+12
+35.65255907302
+22
+-116.789200000014
+32
+1656.45002063205
+13
+35.65255907302
+23
+-116.789200000014
+33
+1656.45002063205
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3199957039486
+20
+-116.789200000014
+30
+1649.95229501988
+11
+35.65255907302
+21
+-70.0735200000139
+31
+1656.45002063205
+12
+30.3199957039486
+22
+-70.0735200000139
+32
+1649.95229501988
+13
+30.3199957039486
+23
+-70.0735200000139
+33
+1649.95229501988
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6149758455043
+20
+-70.0735200000139
+30
+1696.68151436742
+11
+-35.6525195683525
+21
+-116.789200000014
+31
+1704.09471950878
+12
+-39.6149758455043
+22
+-116.789200000014
+32
+1696.68151436742
+13
+-39.6149758455043
+23
+-116.789200000014
+33
+1696.68151436742
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525195683525
+20
+-116.789200000014
+30
+1704.09471950878
+11
+-39.6149758455043
+21
+-70.0735200000139
+31
+1696.68151436742
+12
+-35.6525195683525
+22
+-70.0735200000139
+32
+1704.09471950878
+13
+-35.6525195683525
+23
+-70.0735200000139
+33
+1704.09471950878
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666468
+20
+-116.789200000014
+30
+2409.40261154673
+11
+42.0551034399399
+21
+-741.404745478908
+31
+2417.44641490821
+12
+39.6150423666477
+22
+-741.419175320836
+32
+2409.40261154673
+13
+39.6150423666477
+23
+-741.419175320836
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.0551034399399
+20
+-741.404745478908
+30
+2417.44641490821
+11
+39.6150423666468
+21
+-116.789200000014
+31
+2409.40261154673
+12
+42.05510343994
+22
+-116.789200000014
+32
+2417.44641490821
+13
+42.05510343994
+23
+-116.789200000014
+33
+2417.44641490821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200057182179
+20
+0.0
+30
+2456.13171671889
+11
+-35.6525584815506
+21
+-70.0735200000139
+31
+2449.63398237639
+12
+-30.3200057182179
+22
+-70.0735200000139
+32
+2456.13171671889
+13
+-30.3200057182179
+23
+-70.0735200000139
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-70.0735200000139
+30
+2449.63398237639
+11
+-30.3200057182179
+21
+0.0
+31
+2456.13171671889
+12
+-35.6525584815506
+22
+0.0
+32
+2449.63398237639
+13
+-35.6525584815506
+23
+0.0
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666467
+20
+0.0
+30
+2442.22077074152
+11
+35.652598194651
+21
+-70.0735200000139
+31
+2449.63398237639
+12
+39.6150423666467
+22
+-70.0735200000139
+32
+2442.22077074152
+13
+39.6150423666467
+23
+-70.0735200000139
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+-70.0735200000139
+30
+2449.63398237639
+11
+39.6150423666467
+21
+0.0
+31
+2442.22077074152
+12
+35.652598194651
+22
+0.0
+32
+2449.63398237639
+13
+35.652598194651
+23
+0.0
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888134
+20
+-741.512569137265
+30
+2461.46426948223
+11
+16.4090994539477
+21
+-116.789200000014
+31
+2465.42671365422
+12
+16.4090994539477
+22
+-741.556408807198
+32
+2465.42671365422
+13
+16.4090994539477
+23
+-741.556408807198
+33
+2465.42671365422
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+16.4090994539477
+20
+-116.789200000014
+30
+2465.42671365422
+11
+23.8223110888134
+21
+-741.512569137265
+31
+2461.46426948223
+12
+23.8223110888135
+22
+-116.789200000014
+32
+2461.46426948223
+13
+23.8223110888135
+23
+-116.789200000014
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666469
+20
+-741.419175320836
+30
+2442.22077074152
+11
+35.652598194651
+21
+-116.789200000014
+31
+2449.63398237639
+12
+35.6525981946522
+22
+-741.442608112612
+32
+2449.63398237639
+13
+35.6525981946522
+23
+-741.442608112612
+33
+2449.63398237639
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.652598194651
+20
+-116.789200000014
+30
+2449.63398237639
+11
+39.6150423666469
+21
+-741.419175320836
+31
+2442.22077074152
+12
+39.6150423666468
+22
+-116.789200000014
+32
+2442.22077074152
+13
+39.6150423666468
+23
+-116.789200000014
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550546150653
+20
+-70.0735200000139
+30
+2043.56747533934
+11
+-39.6149847841629
+21
+-116.789200000014
+31
+2051.61127602287
+12
+-42.0550546150653
+22
+-116.789200000014
+32
+2043.56747533934
+13
+-42.0550546150653
+23
+-116.789200000014
+33
+2043.56747533934
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6149847841629
+20
+-116.789200000014
+30
+2051.61127602287
+11
+-42.0550546150653
+21
+-70.0735200000139
+31
+2043.56747533934
+12
+-39.6149847841629
+22
+-70.0735200000139
+32
+2051.61127602287
+13
+-39.6149847841629
+23
+-70.0735200000139
+33
+2051.61127602287
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+0.0
+30
+2409.40261154673
+11
+-35.6525584815506
+21
+-70.0735200000139
+31
+2401.98939991186
+12
+-39.6150026535464
+22
+-70.0735200000139
+32
+2409.40261154673
+13
+-39.6150026535464
+23
+-70.0735200000139
+33
+2409.40261154673
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525584815506
+20
+-70.0735200000139
+30
+2401.98939991186
+11
+-39.6150026535464
+21
+0.0
+31
+2409.40261154673
+12
+-35.6525584815506
+22
+0.0
+32
+2401.98939991186
+13
+-35.6525584815506
+23
+0.0
+33
+2401.98939991186
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36521064520558
+20
+-70.0735200000139
+30
+2077.25724590065
+11
+-16.4090166455219
+21
+-116.789200000014
+31
+2074.81719359682
+12
+-16.4090166455219
+22
+-70.0735200000139
+32
+2074.81719359682
+13
+-16.4090166455219
+23
+-70.0735200000139
+33
+2074.81719359682
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-16.4090166455219
+20
+-116.789200000014
+30
+2074.81719359682
+11
+-8.36521064520558
+21
+-70.0735200000139
+31
+2077.25724590065
+12
+-8.36521064520558
+22
+-116.789200000014
+32
+2077.25724590065
+13
+-8.36521064520558
+23
+-116.789200000014
+33
+2077.25724590065
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6526239576226
+20
+-70.0735200000139
+30
+2059.02440563739
+11
+39.6150600434633
+21
+-116.789200000014
+31
+2051.61118970355
+12
+35.6526239576226
+22
+-116.789200000014
+32
+2059.02440563739
+13
+35.6526239576226
+23
+-116.789200000014
+33
+2059.02440563739
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150600434633
+20
+-116.789200000014
+30
+2051.61118970355
+11
+35.6526239576226
+21
+-70.0735200000139
+31
+2059.02440563739
+12
+39.6150600434633
+22
+-70.0735200000139
+32
+2051.61118970355
+13
+39.6150600434633
+23
+-70.0735200000139
+33
+2051.61118970355
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525325452735
+20
+-70.0735200000139
+30
+2059.02448332273
+11
+-30.3199727157687
+21
+-116.789200000014
+31
+2065.52221183974
+12
+-35.6525325452735
+22
+-116.789200000014
+32
+2059.02448332273
+13
+-35.6525325452735
+23
+-116.789200000014
+33
+2059.02448332273
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3199727157687
+20
+-116.789200000014
+30
+2065.52221183974
+11
+-35.6525325452735
+21
+-70.0735200000139
+31
+2059.02448332273
+12
+-30.3199727157687
+22
+-70.0735200000139
+32
+2065.52221183974
+13
+-30.3199727157687
+23
+-70.0735200000139
+33
+2065.52221183974
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200948028707
+20
+-70.0735200000139
+30
+1710.59234602203
+11
+35.6526369345435
+21
+-116.789200000014
+31
+1704.09460298078
+12
+30.3200948028707
+22
+-116.789200000014
+32
+1710.59234602203
+13
+30.3200948028707
+23
+-116.789200000014
+33
+1710.59234602203
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+35.6526369345435
+20
+-116.789200000014
+30
+1704.09460298078
+11
+30.3200948028707
+21
+-70.0735200000139
+31
+1710.59234602203
+12
+35.6526369345435
+22
+-70.0735200000139
+32
+1704.09460298078
+13
+35.6526369345435
+23
+-70.0735200000139
+33
+1704.09460298078
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6149847841629
+20
+-70.0735200000139
+30
+2051.61127602287
+11
+-35.6525325452735
+21
+-116.789200000014
+31
+2059.02448332273
+12
+-39.6149847841629
+22
+-116.789200000014
+32
+2051.61127602287
+13
+-39.6149847841629
+23
+-116.789200000014
+33
+2051.61127602287
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.6525325452735
+20
+-116.789200000014
+30
+2059.02448332273
+11
+-39.6149847841629
+21
+-70.0735200000139
+31
+2051.61127602287
+12
+-35.6525325452735
+22
+-70.0735200000139
+32
+2059.02448332273
+13
+-35.6525325452735
+23
+-70.0735200000139
+33
+2059.02448332273
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-23.8222325793624
+20
+-70.0735200000139
+30
+2070.85475751098
+11
+-30.3199727157687
+21
+-116.789200000014
+31
+2065.52221183974
+12
+-30.3199727157687
+22
+-70.0735200000139
+32
+2065.52221183974
+13
+-30.3199727157687
+23
+-70.0735200000139
+33
+2065.52221183974
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3199727157687
+20
+-116.789200000014
+30
+2065.52221183974
+11
+-23.8222325793624
+21
+-70.0735200000139
+31
+2070.85475751098
+12
+-23.8222325793624
+22
+-116.789200000014
+32
+2070.85475751098
+13
+-23.8222325793624
+23
+-116.789200000014
+33
+2070.85475751098
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200387817157
+20
+-70.0735200000139
+30
+2004.88216083759
+11
+-35.652584452955
+21
+-116.789200000014
+31
+2011.379900974
+12
+-30.3200387817157
+22
+-116.789200000014
+32
+2004.88216083759
+13
+-30.3200387817157
+23
+-116.789200000014
+33
+2004.88216083759
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.652584452955
+20
+-116.789200000014
+30
+2011.379900974
+11
+-30.3200387817157
+21
+-70.0735200000139
+31
+2004.88216083759
+12
+-35.652584452955
+22
+-70.0735200000139
+32
+2011.379900974
+13
+-35.652584452955
+23
+-70.0735200000139
+33
+2011.379900974
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150205387958
+20
+-70.0735200000139
+30
+2018.79311690784
+11
+-42.0550728426191
+21
+-116.789200000014
+31
+2026.83692290816
+12
+-39.6150205387958
+22
+-116.789200000014
+32
+2018.79311690784
+13
+-39.6150205387958
+23
+-116.789200000014
+33
+2018.79311690784
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550728426191
+20
+-116.789200000014
+30
+2026.83692290816
+11
+-39.6150205387958
+21
+-70.0735200000139
+31
+2018.79311690784
+12
+-42.0550728426191
+22
+-70.0735200000139
+32
+2026.83692290816
+13
+-42.0550728426191
+23
+-70.0735200000139
+33
+2026.83692290816
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550728426191
+20
+-70.0735200000139
+30
+2026.83692290816
+11
+-42.878971522786
+21
+-116.789200000014
+31
+2035.20220002137
+12
+-42.0550728426191
+22
+-116.789200000014
+32
+2026.83692290816
+13
+-42.0550728426191
+23
+-116.789200000014
+33
+2026.83692290816
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-116.789200000014
+30
+2035.20220002137
+11
+-42.0550728426191
+21
+-70.0735200000139
+31
+2026.83692290816
+12
+-42.878971522786
+22
+-70.0735200000139
+32
+2035.20220002137
+13
+-42.878971522786
+23
+-70.0735200000139
+33
+2035.20220002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-30.3200552982032
+20
+-70.0735200000139
+30
+1649.9523941188
+11
+-35.652597429876
+21
+-116.789200000014
+31
+1656.45013716005
+12
+-30.3200552982032
+22
+-116.789200000014
+32
+1649.9523941188
+13
+-30.3200552982032
+23
+-116.789200000014
+33
+1649.9523941188
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.652597429876
+20
+-116.789200000014
+30
+1656.45013716005
+11
+-30.3200552982032
+21
+-70.0735200000139
+31
+1649.9523941188
+12
+-35.652597429876
+22
+-70.0735200000139
+32
+1656.45013716005
+13
+-35.652597429876
+23
+-70.0735200000139
+33
+1656.45013716005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3200454313182
+20
+-741.474143345189
+30
+2456.13171671889
+11
+23.8223110888135
+21
+-116.789200000014
+31
+2461.46426948223
+12
+23.8223110888134
+22
+-741.512569137265
+32
+2461.46426948223
+13
+23.8223110888134
+23
+-741.512569137265
+33
+2461.46426948223
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8223110888135
+20
+-116.789200000014
+30
+2461.46426948223
+11
+30.3200454313182
+21
+-741.474143345189
+31
+2456.13171671889
+12
+30.3200454313183
+22
+-116.789200000014
+32
+2456.13171671889
+13
+30.3200454313183
+23
+-116.789200000014
+33
+2456.13171671889
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+8.36522724084684
+20
+-116.789200000014
+30
+1638.21727291857
+11
+-5.03211860767294e-05
+21
+-70.0735200000139
+31
+1637.3933787953
+12
+-5.03211860767294e-05
+22
+-116.789200000014
+32
+1637.3933787953
+13
+-5.03211860767294e-05
+23
+-116.789200000014
+33
+1637.3933787953
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-5.03211860767294e-05
+20
+-70.0735200000139
+30
+1637.3933787953
+11
+8.36522724084684
+21
+-116.789200000014
+31
+1638.21727291857
+12
+8.36522724084684
+22
+-70.0735200000139
+32
+1638.21727291857
+13
+8.36522724084684
+23
+-70.0735200000139
+33
+1638.21727291857
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150026535464
+20
+0.0
+30
+2442.22077074152
+11
+-42.0550637268397
+21
+-70.0735200000139
+31
+2434.17696738005
+12
+-39.6150026535464
+22
+-70.0735200000139
+32
+2442.22077074152
+13
+-39.6150026535464
+23
+-70.0735200000139
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550637268397
+20
+-70.0735200000139
+30
+2434.17696738005
+11
+-39.6150026535464
+21
+0.0
+31
+2442.22077074152
+12
+-42.0550637268397
+22
+0.0
+32
+2434.17696738005
+13
+-42.0550637268397
+23
+0.0
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+30.3199957039486
+20
+-116.789200000014
+30
+1649.95229501988
+11
+23.8222526626951
+21
+-70.0735200000139
+31
+1644.61975288821
+12
+23.8222526626951
+22
+-116.789200000014
+32
+1644.61975288821
+13
+23.8222526626951
+23
+-116.789200000014
+33
+1644.61975288821
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+23.8222526626951
+20
+-70.0735200000139
+30
+1644.61975288821
+11
+30.3199957039486
+21
+-116.789200000014
+31
+1649.95229501988
+12
+30.3199957039486
+22
+-70.0735200000139
+32
+1649.95229501988
+13
+30.3199957039486
+23
+-70.0735200000139
+33
+1649.95229501988
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+1.98565501612791e-05
+20
+-116.789200000014
+30
+2382.93269976479
+11
+-8.36525637937127
+21
+-857.431240712236
+31
+2383.75660756074
+12
+-8.36525637937127
+22
+-116.789200000014
+32
+2383.75660756074
+13
+-8.36525637937127
+23
+-116.789200000014
+33
+2383.75660756074
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-8.36525637937127
+20
+-857.431240712236
+30
+2383.75660756074
+11
+1.98565501612791e-05
+21
+-116.789200000014
+31
+2382.93269976479
+12
+1.98565501612791e-05
+22
+-858.151437401893
+32
+2382.93269976479
+13
+1.98565501612791e-05
+23
+-858.151437401893
+33
+2382.93269976479
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.8790112358864
+20
+0.0
+30
+2425.81169114413
+11
+42.05510343994
+21
+-70.0735200000139
+31
+2434.17696738005
+12
+42.8790112358864
+22
+-70.0735200000139
+32
+2425.81169114413
+13
+42.8790112358864
+23
+-70.0735200000139
+33
+2425.81169114413
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+-70.0735200000139
+30
+2434.17696738005
+11
+42.8790112358864
+21
+0.0
+31
+2425.81169114413
+12
+42.05510343994
+22
+0.0
+32
+2434.17696738005
+13
+42.05510343994
+23
+0.0
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+42.05510343994
+20
+0.0
+30
+2434.17696738005
+11
+39.6150423666467
+21
+-70.0735200000139
+31
+2442.22077074152
+12
+42.05510343994
+22
+-70.0735200000139
+32
+2434.17696738005
+13
+42.05510343994
+23
+-70.0735200000139
+33
+2434.17696738005
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+39.6150423666467
+20
+-70.0735200000139
+30
+2442.22077074152
+11
+42.05510343994
+21
+0.0
+31
+2434.17696738005
+12
+39.6150423666467
+22
+0.0
+32
+2442.22077074152
+13
+39.6150423666467
+23
+0.0
+33
+2442.22077074152
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-35.652584452955
+20
+-70.0735200000139
+30
+2011.379900974
+11
+-39.6150205387958
+21
+-116.789200000014
+31
+2018.79311690784
+12
+-35.652584452955
+22
+-116.789200000014
+32
+2011.379900974
+13
+-35.652584452955
+23
+-116.789200000014
+33
+2011.379900974
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-39.6150205387958
+20
+-116.789200000014
+30
+2018.79311690784
+11
+-35.652584452955
+21
+-70.0735200000139
+31
+2011.379900974
+12
+-39.6150205387958
+22
+-70.0735200000139
+32
+2018.79311690784
+13
+-39.6150205387958
+23
+-70.0735200000139
+33
+2018.79311690784
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.878971522786
+20
+-70.0735200000139
+30
+2035.20220002137
+11
+-42.0550546150653
+21
+-116.789200000014
+31
+2043.56747533934
+12
+-42.878971522786
+22
+-116.789200000014
+32
+2035.20220002137
+13
+-42.878971522786
+23
+-116.789200000014
+33
+2035.20220002137
+70
+1
+ 0
+3DFACE
+ 8
+gearbox_half
+10
+-42.0550546150653
+20
+-116.789200000014
+30
+2043.56747533934
+11
+-42.878971522786
+21
+-70.0735200000139
+31
+2035.20220002137
+12
+-42.0550546150653
+22
+-70.0735200000139
+32
+2043.56747533934
+13
+-42.0550546150653
+23
+-70.0735200000139
+33
+2043.56747533934
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-899.612557411553
+20
+-178.944063519201
+30
+1773.56823006635
+11
+-944.844671731792
+21
+0.0
+31
+1835.6354447734
+12
+-926.689746301964
+22
+-184.330051263378
+32
+1835.6354447734
+13
+-926.689746301964
+23
+-184.330051263378
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-944.844671731792
+20
+0.0
+30
+1835.6354447734
+11
+-899.612557411553
+21
+-178.944063519201
+31
+1773.56823006635
+12
+-917.237009349992
+22
+0.0
+32
+1773.56823006635
+13
+-917.237009349992
+23
+0.0
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-964.850983209364
+20
+0.0
+30
+2169.85154878419
+11
+-926.689746301964
+21
+-184.330051263378
+31
+2234.76895526921
+12
+-946.311642114328
+22
+-188.233089011893
+32
+2169.85154878419
+13
+-946.311642114328
+23
+-188.233089011893
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-926.689746301964
+20
+-184.330051263378
+30
+2234.76895526921
+11
+-964.850983209364
+21
+0.0
+31
+2169.85154878419
+12
+-944.844671731792
+22
+0.0
+32
+2234.76895526921
+13
+-944.844671731792
+23
+0.0
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-958.198006960111
+20
+-190.597433982906
+30
+1967.39330582966
+11
+-981.029283605455
+21
+-1.80477854883065e-13
+31
+2035.2022000213
+12
+-962.179081004757
+22
+-191.38931884584
+32
+2035.2022000213
+13
+-962.179081004757
+23
+-191.38931884584
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-981.029283605455
+20
+-1.80477854883065e-13
+30
+2035.2022000213
+11
+-958.198006960111
+21
+-190.597433982906
+31
+1967.39330582966
+12
+-976.970215709362
+22
+-1.80477854883065e-13
+32
+1967.39330582966
+13
+-976.970215709362
+23
+-1.80477854883065e-13
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-776.88819383121
+20
+-321.797626332425
+30
+1661.47676002131
+11
+-865.466789057043
+21
+-172.152047899808
+31
+1715.23764468454
+12
+-815.251888924487
+22
+-337.688389142806
+32
+1715.23764468454
+13
+-815.251888924487
+23
+-337.688389142806
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-865.466789057043
+20
+-172.152047899808
+30
+1715.23764468454
+11
+-776.88819383121
+21
+-321.797626332425
+31
+1661.47676002131
+12
+-824.740107573921
+22
+-164.051007270482
+32
+1661.47676002131
+13
+-824.740107573921
+23
+-164.051007270482
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-668.106074549528
+20
+-668.106074549528
+30
+1835.6354447734
+11
+-802.244272938819
+21
+-536.042485570818
+31
+1900.55285125842
+12
+-682.252673061849
+22
+-682.252673061849
+32
+1900.55285125842
+13
+-682.252673061849
+23
+-682.252673061849
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-802.244272938819
+20
+-536.042485570818
+30
+1900.55285125842
+11
+-668.106074549528
+21
+-668.106074549528
+31
+1835.6354447734
+12
+-785.609632890959
+22
+-524.927574441361
+32
+1835.6354447734
+13
+-785.609632890959
+23
+-524.927574441361
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-721.176029454062
+20
+-143.450831316169
+30
+680.911023534629
+11
+-756.121025443459
+21
+0.0
+31
+741.194313252463
+12
+-741.592371958341
+22
+-147.511894336929
+32
+741.194313252463
+13
+-741.592371958341
+23
+-147.511894336929
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-756.121025443459
+20
+0.0
+30
+741.194313252463
+11
+-721.176029454062
+21
+-143.450831316169
+31
+680.911023534629
+12
+-735.304703143143
+22
+0.0
+32
+680.911023534629
+13
+-735.304703143143
+23
+0.0
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-926.689746301964
+20
+-184.330051263378
+30
+2234.76895526921
+11
+-847.416499400322
+21
+-351.011407030345
+31
+2296.83616997626
+12
+-872.922653615348
+22
+-361.576402030189
+32
+2234.76895526921
+13
+-872.922653615348
+23
+-361.576402030189
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-847.416499400322
+20
+-351.011407030345
+30
+2296.83616997626
+11
+-926.689746301964
+21
+-184.330051263378
+31
+2234.76895526921
+12
+-899.612557411553
+22
+-178.9440635192
+32
+2296.83616997626
+13
+-899.612557411553
+23
+-178.9440635192
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-172.152047899808
+20
+-865.466789057043
+30
+2355.16675535807
+11
+0.0
+21
+-917.237009349992
+31
+2296.83616997626
+12
+-178.9440635192
+22
+-899.612557411553
+32
+2296.83616997626
+13
+-178.9440635192
+23
+-899.612557411553
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-917.237009349992
+30
+2296.83616997626
+11
+-172.152047899808
+21
+-865.466789057043
+31
+2355.16675535807
+12
+0.0
+22
+-882.422285845505
+32
+2355.16675535807
+13
+0.0
+23
+-882.422285845505
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-429.428666054072
+20
+-429.428666054072
+30
+1287.75132002131
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+-495.494614285554
+22
+-495.494614285554
+32
+1100.8886000213
+13
+-495.494614285554
+23
+-495.494614285554
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-389.307620352121
+20
+-582.640028068573
+30
+1100.8886000213
+11
+-429.428666054072
+21
+-429.428666054072
+31
+1287.75132002131
+12
+-337.399937905583
+22
+-504.954691392473
+32
+1287.75132002131
+13
+-337.399937905583
+23
+-504.954691392473
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-188.233089011893
+20
+-946.311642114328
+30
+2169.85154878419
+11
+0.0
+21
+-976.970215709361
+31
+2103.01109421295
+12
+-190.597433982906
+22
+-958.19800696011
+32
+2103.01109421295
+13
+-190.597433982906
+23
+-958.19800696011
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-976.970215709361
+30
+2103.01109421295
+11
+-188.233089011893
+21
+-946.311642114328
+31
+2169.85154878419
+12
+0.0
+22
+-964.850983209363
+32
+2169.85154878419
+13
+0.0
+23
+-964.850983209363
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-184.330051263378
+20
+-926.689746301964
+30
+2234.76895526921
+11
+0.0
+21
+-964.850983209363
+31
+2169.85154878419
+12
+-188.233089011893
+22
+-946.311642114328
+32
+2169.85154878419
+13
+-188.233089011893
+23
+-946.311642114328
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-964.850983209363
+30
+2169.85154878419
+11
+-184.330051263378
+21
+-926.689746301964
+31
+2234.76895526921
+12
+0.0
+22
+-944.844671731792
+32
+2234.76895526921
+13
+0.0
+23
+-944.844671731792
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-178.9440635192
+20
+-899.612557411553
+30
+2296.83616997626
+11
+0.0
+21
+-944.844671731792
+31
+2234.76895526921
+12
+-184.330051263378
+22
+-926.689746301964
+32
+2234.76895526921
+13
+-184.330051263378
+23
+-926.689746301964
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-944.844671731792
+30
+2234.76895526921
+11
+-178.9440635192
+21
+-899.612557411553
+31
+2296.83616997626
+12
+0.0
+22
+-917.237009349992
+32
+2296.83616997626
+13
+0.0
+23
+-917.237009349992
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-178.9440635192
+20
+-899.612557411553
+30
+1773.56823006635
+11
+0.0
+21
+-882.422285845505
+31
+1715.23764468454
+12
+-172.152047899808
+22
+-865.466789057044
+32
+1715.23764468454
+13
+-172.152047899808
+23
+-865.466789057044
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-882.422285845505
+30
+1715.23764468454
+11
+-178.9440635192
+21
+-899.612557411553
+31
+1773.56823006635
+12
+0.0
+22
+-917.237009349992
+32
+1773.56823006635
+13
+0.0
+23
+-917.237009349992
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-682.252673061849
+20
+-682.252673061849
+30
+1900.55285125842
+11
+-524.927574441361
+21
+-785.609632890959
+31
+1835.6354447734
+12
+-668.106074549528
+22
+-668.106074549528
+32
+1835.6354447734
+13
+-668.106074549528
+23
+-668.106074549528
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-524.927574441361
+20
+-785.609632890959
+30
+1835.6354447734
+11
+-682.252673061849
+21
+-682.252673061849
+31
+1900.55285125842
+12
+-536.042485570819
+22
+-802.244272938819
+32
+1900.55285125842
+13
+-536.042485570819
+23
+-802.244272938819
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-693.692458979998
+20
+-693.692458979998
+30
+2035.2022000213
+11
+-542.775570394861
+21
+-812.321046486997
+31
+1967.39330582966
+12
+-690.822264545374
+22
+-690.822264545374
+32
+1967.39330582966
+13
+-690.822264545374
+23
+-690.822264545374
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-542.775570394861
+20
+-812.321046486997
+30
+1967.39330582966
+11
+-693.692458979998
+21
+-693.692458979998
+31
+2035.2022000213
+12
+-545.030667691736
+22
+-815.696038096871
+32
+2035.2022000213
+13
+-545.030667691736
+23
+-815.696038096871
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+1287.75132002131
+11
+-543.797359730523
+21
+-363.353779128852
+31
+1474.6140400213
+12
+-621.482696406623
+22
+-415.26146157539
+32
+1287.75132002131
+13
+-621.482696406623
+23
+-415.26146157539
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-543.797359730523
+20
+-363.353779128852
+30
+1474.6140400213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+1287.75132002131
+12
+-604.235251721863
+22
+-250.282436127117
+32
+1474.6140400213
+13
+-604.235251721863
+23
+-250.282436127117
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-747.450883605455
+20
+0.0
+30
+2408.9276400213
+11
+-824.740107573921
+21
+-164.051007270482
+31
+2408.9276400213
+12
+-840.897721502147
+22
+0.0
+32
+2408.9276400213
+13
+-840.897721502147
+23
+0.0
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-824.740107573921
+20
+-164.051007270482
+30
+2408.9276400213
+11
+-747.450883605455
+21
+0.0
+31
+2408.9276400213
+12
+-776.88819383121
+22
+-321.797626332425
+32
+2408.9276400213
+13
+-776.88819383121
+23
+-321.797626332425
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-776.88819383121
+20
+-321.797626332425
+30
+2408.9276400213
+11
+-747.450883605455
+21
+0.0
+31
+2408.9276400213
+12
+-733.088824464619
+22
+-145.820433573828
+32
+2408.9276400213
+13
+-733.088824464619
+23
+-145.820433573828
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-776.88819383121
+20
+-321.797626332425
+30
+2408.9276400213
+11
+-733.088824464619
+21
+-145.820433573828
+31
+2408.9276400213
+12
+-699.180902483484
+22
+-467.1777430806
+32
+2408.9276400213
+13
+-699.180902483484
+23
+-467.1777430806
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-699.180902483484
+20
+-467.1777430806
+30
+2408.9276400213
+11
+-733.088824464619
+21
+-145.820433573828
+31
+2408.9276400213
+12
+-690.554572920556
+22
+-286.037069662455
+32
+2408.9276400213
+13
+-690.554572920556
+23
+-286.037069662455
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-699.180902483484
+20
+-467.1777430806
+30
+2408.9276400213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+2408.9276400213
+12
+-594.604481158485
+22
+-594.604481158485
+32
+2408.9276400213
+13
+-594.604481158485
+23
+-594.604481158485
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+2408.9276400213
+12
+-621.482696406623
+22
+-415.26146157539
+32
+2408.9276400213
+13
+-621.482696406623
+23
+-415.26146157539
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+2408.9276400213
+12
+-528.527588401294
+22
+-528.527588401294
+32
+2408.9276400213
+13
+-528.527588401294
+23
+-528.527588401294
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+2408.9276400213
+12
+-467.1777430806
+22
+-699.180902483483
+32
+2408.9276400213
+13
+-467.1777430806
+23
+-699.180902483483
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.1777430806
+20
+-699.180902483483
+30
+2408.9276400213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+2408.9276400213
+12
+-415.26146157539
+22
+-621.482696406623
+32
+2408.9276400213
+13
+-415.26146157539
+23
+-621.482696406623
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.1777430806
+20
+-699.180902483483
+30
+2408.9276400213
+11
+-415.26146157539
+21
+-621.482696406623
+31
+2408.9276400213
+12
+-321.797626332425
+22
+-776.88819383121
+32
+2408.9276400213
+13
+-321.797626332425
+23
+-776.88819383121
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-321.797626332425
+20
+-776.88819383121
+30
+2408.9276400213
+11
+-415.26146157539
+21
+-621.482696406623
+31
+2408.9276400213
+12
+-286.037069662455
+22
+-690.554572920556
+32
+2408.9276400213
+13
+-286.037069662455
+23
+-690.554572920556
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-321.797626332425
+20
+-776.88819383121
+30
+2408.9276400213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+2408.9276400213
+12
+-164.051007270482
+22
+-824.740107573921
+32
+2408.9276400213
+13
+-164.051007270482
+23
+-824.740107573921
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-164.051007270482
+20
+-824.740107573921
+30
+2408.9276400213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+2408.9276400213
+12
+-145.820433573828
+22
+-733.088824464619
+32
+2408.9276400213
+13
+-145.820433573828
+23
+-733.088824464619
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-164.051007270482
+20
+-824.740107573921
+30
+2408.9276400213
+11
+-145.820433573828
+21
+-733.088824464619
+31
+2408.9276400213
+12
+0.0
+22
+-840.897721502147
+32
+2408.9276400213
+13
+0.0
+23
+-840.897721502147
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-840.897721502147
+30
+2408.9276400213
+11
+-145.820433573828
+21
+-733.088824464619
+31
+2408.9276400213
+12
+0.0
+22
+-747.450883605455
+32
+2408.9276400213
+13
+0.0
+23
+-747.450883605455
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-840.897721502147
+30
+2408.9276400213
+11
+0.0
+21
+-747.450883605455
+31
+2408.9276400213
+12
+145.820433573828
+22
+-733.088824464619
+32
+2408.9276400213
+13
+145.820433573828
+23
+-733.088824464619
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-840.897721502147
+30
+2408.9276400213
+11
+145.820433573828
+21
+-733.088824464619
+31
+2408.9276400213
+12
+164.051007270482
+22
+-824.740107573921
+32
+2408.9276400213
+13
+164.051007270482
+23
+-824.740107573921
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+164.051007270482
+20
+-824.740107573921
+30
+2408.9276400213
+11
+145.820433573828
+21
+-733.088824464619
+31
+2408.9276400213
+12
+286.037069662455
+22
+-690.554572920556
+32
+2408.9276400213
+13
+286.037069662455
+23
+-690.554572920556
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+164.051007270482
+20
+-824.740107573921
+30
+2408.9276400213
+11
+286.037069662455
+21
+-690.554572920556
+31
+2408.9276400213
+12
+321.797626332425
+22
+-776.88819383121
+32
+2408.9276400213
+13
+321.797626332425
+23
+-776.88819383121
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+321.797626332425
+20
+-776.88819383121
+30
+2408.9276400213
+11
+286.037069662455
+21
+-690.554572920556
+31
+2408.9276400213
+12
+415.26146157539
+22
+-621.482696406623
+32
+2408.9276400213
+13
+415.26146157539
+23
+-621.482696406623
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+321.797626332425
+20
+-776.88819383121
+30
+2408.9276400213
+11
+415.26146157539
+21
+-621.482696406623
+31
+2408.9276400213
+12
+467.1777430806
+22
+-699.180902483484
+32
+2408.9276400213
+13
+467.1777430806
+23
+-699.180902483484
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+467.1777430806
+20
+-699.180902483484
+30
+2408.9276400213
+11
+415.26146157539
+21
+-621.482696406623
+31
+2408.9276400213
+12
+528.527588401294
+22
+-528.527588401294
+32
+2408.9276400213
+13
+528.527588401294
+23
+-528.527588401294
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+467.1777430806
+20
+-699.180902483484
+30
+2408.9276400213
+11
+528.527588401294
+21
+-528.527588401294
+31
+2408.9276400213
+12
+594.604481158485
+22
+-594.604481158485
+32
+2408.9276400213
+13
+594.604481158485
+23
+-594.604481158485
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+528.527588401294
+21
+-528.527588401294
+31
+2408.9276400213
+12
+621.482696406623
+22
+-415.26146157539
+32
+2408.9276400213
+13
+621.482696406623
+23
+-415.26146157539
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+621.482696406623
+21
+-415.26146157539
+31
+2408.9276400213
+12
+699.180902483483
+22
+-467.1777430806
+32
+2408.9276400213
+13
+699.180902483483
+23
+-467.1777430806
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+699.180902483483
+20
+-467.1777430806
+30
+2408.9276400213
+11
+621.482696406623
+21
+-415.26146157539
+31
+2408.9276400213
+12
+690.554572920556
+22
+-286.037069662455
+32
+2408.9276400213
+13
+690.554572920556
+23
+-286.037069662455
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+699.180902483483
+20
+-467.1777430806
+30
+2408.9276400213
+11
+690.554572920556
+21
+-286.037069662455
+31
+2408.9276400213
+12
+733.088824464619
+22
+-145.820433573828
+32
+2408.9276400213
+13
+733.088824464619
+23
+-145.820433573828
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+699.180902483483
+20
+-467.1777430806
+30
+2408.9276400213
+11
+733.088824464619
+21
+-145.820433573828
+31
+2408.9276400213
+12
+776.88819383121
+22
+-321.797626332425
+32
+2408.9276400213
+13
+776.88819383121
+23
+-321.797626332425
+33
+2408.9276400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+776.88819383121
+20
+-321.797626332425
+30
+2408.9276400213
+11
+733.088824464619
+21
+-145.820433573828
+31
+2408.9276400213
+12
+747.450883605455
+22
+-1.80477854883065e-13
+32
+2408.9276400213
+13
+747.450883605455
+23
+-1.80477854883065e-13
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+776.88819383121
+20
+-321.797626332425
+30
+2408.9276400213
+11
+747.450883605455
+21
+-1.80477854883065e-13
+31
+2408.9276400213
+12
+840.897721502147
+22
+-1.80477854883065e-13
+32
+2408.9276400213
+13
+840.897721502147
+23
+-1.80477854883065e-13
+33
+2408.9276400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+776.88819383121
+20
+-321.797626332425
+30
+2408.9276400213
+11
+840.897721502147
+21
+-1.80477854883065e-13
+31
+2408.9276400213
+12
+824.740107573921
+22
+-164.051007270483
+32
+2408.9276400213
+13
+824.740107573921
+23
+-164.051007270483
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-824.740107573921
+20
+-164.051007270482
+30
+1661.47676002131
+11
+-700.735203605456
+21
+0.0
+31
+1661.47676002131
+12
+-840.897721502147
+22
+0.0
+32
+1661.47676002131
+13
+-840.897721502147
+23
+0.0
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-700.735203605456
+20
+0.0
+30
+1661.47676002131
+11
+-824.740107573921
+21
+-164.051007270482
+31
+1661.47676002131
+12
+-776.88819383121
+22
+-321.797626332425
+32
+1661.47676002131
+13
+-776.88819383121
+23
+-321.797626332425
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-700.735203605456
+20
+0.0
+30
+1661.47676002131
+11
+-776.88819383121
+21
+-321.797626332425
+31
+1661.47676002131
+12
+-699.180902483484
+22
+-467.1777430806
+32
+1661.47676002131
+13
+-699.180902483484
+23
+-467.1777430806
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-700.735203605456
+20
+0.0
+30
+1661.47676002131
+11
+-699.180902483484
+21
+-467.1777430806
+31
+1661.47676002131
+12
+-687.270773156591
+22
+-136.706656519425
+32
+1661.47676002131
+13
+-687.270773156591
+23
+-136.706656519425
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-687.270773156591
+20
+-136.706656519425
+30
+1661.47676002131
+11
+-699.180902483484
+21
+-467.1777430806
+31
+1661.47676002131
+12
+-594.604481158485
+22
+-594.604481158485
+32
+1661.47676002131
+13
+-594.604481158485
+23
+-594.604481158485
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-687.270773156591
+20
+-136.706656519425
+30
+1661.47676002131
+11
+-594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+-647.39491232121
+22
+-268.159752894786
+32
+1661.47676002131
+13
+-647.39491232121
+23
+-268.159752894786
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-647.39491232121
+20
+-268.159752894786
+30
+1661.47676002131
+11
+-594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+-582.640028068573
+22
+-389.307620352121
+32
+1661.47676002131
+13
+-582.640028068573
+23
+-389.307620352121
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-582.640028068573
+20
+-389.307620352121
+30
+1661.47676002131
+11
+-594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+-467.1777430806
+22
+-699.180902483483
+32
+1661.47676002131
+13
+-467.1777430806
+23
+-699.180902483483
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-582.640028068573
+20
+-389.307620352121
+30
+1661.47676002131
+11
+-467.1777430806
+21
+-699.180902483483
+31
+1661.47676002131
+12
+-495.494614285554
+22
+-495.494614285554
+32
+1661.47676002131
+13
+-495.494614285554
+23
+-495.494614285554
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-495.494614285554
+20
+-495.494614285554
+30
+1661.47676002131
+11
+-467.1777430806
+21
+-699.180902483483
+31
+1661.47676002131
+12
+-389.307620352121
+22
+-582.640028068573
+32
+1661.47676002131
+13
+-389.307620352121
+23
+-582.640028068573
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-389.307620352121
+20
+-582.640028068573
+30
+1661.47676002131
+11
+-467.1777430806
+21
+-699.180902483483
+31
+1661.47676002131
+12
+-321.797626332425
+22
+-776.88819383121
+32
+1661.47676002131
+13
+-321.797626332425
+23
+-776.88819383121
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-389.307620352121
+20
+-582.640028068573
+30
+1661.47676002131
+11
+-321.797626332425
+21
+-776.88819383121
+31
+1661.47676002131
+12
+-268.159752894786
+22
+-647.39491232121
+32
+1661.47676002131
+13
+-268.159752894786
+23
+-647.39491232121
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-268.159752894786
+20
+-647.39491232121
+30
+1661.47676002131
+11
+-321.797626332425
+21
+-776.88819383121
+31
+1661.47676002131
+12
+-164.051007270482
+22
+-824.740107573921
+32
+1661.47676002131
+13
+-164.051007270482
+23
+-824.740107573921
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-268.159752894786
+20
+-647.39491232121
+30
+1661.47676002131
+11
+-164.051007270482
+21
+-824.740107573921
+31
+1661.47676002131
+12
+-136.706656519425
+22
+-687.270773156591
+32
+1661.47676002131
+13
+-136.706656519425
+23
+-687.270773156591
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-136.706656519425
+20
+-687.270773156591
+30
+1661.47676002131
+11
+-164.051007270482
+21
+-824.740107573921
+31
+1661.47676002131
+12
+0.0
+22
+-840.897721502147
+32
+1661.47676002131
+13
+0.0
+23
+-840.897721502147
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-136.706656519425
+20
+-687.270773156591
+30
+1661.47676002131
+11
+0.0
+21
+-840.897721502147
+31
+1661.47676002131
+12
+0.0
+22
+-700.735203605455
+32
+1661.47676002131
+13
+0.0
+23
+-700.735203605455
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-700.735203605455
+30
+1661.47676002131
+11
+0.0
+21
+-840.897721502147
+31
+1661.47676002131
+12
+164.051007270482
+22
+-824.740107573921
+32
+1661.47676002131
+13
+164.051007270482
+23
+-824.740107573921
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-700.735203605455
+30
+1661.47676002131
+11
+164.051007270482
+21
+-824.740107573921
+31
+1661.47676002131
+12
+136.706656519425
+22
+-687.270773156591
+32
+1661.47676002131
+13
+136.706656519425
+23
+-687.270773156591
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+136.706656519425
+20
+-687.270773156591
+30
+1661.47676002131
+11
+164.051007270482
+21
+-824.740107573921
+31
+1661.47676002131
+12
+268.159752894786
+22
+-647.39491232121
+32
+1661.47676002131
+13
+268.159752894786
+23
+-647.39491232121
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+268.159752894786
+20
+-647.39491232121
+30
+1661.47676002131
+11
+164.051007270482
+21
+-824.740107573921
+31
+1661.47676002131
+12
+321.797626332425
+22
+-776.88819383121
+32
+1661.47676002131
+13
+321.797626332425
+23
+-776.88819383121
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+268.159752894786
+20
+-647.39491232121
+30
+1661.47676002131
+11
+321.797626332425
+21
+-776.88819383121
+31
+1661.47676002131
+12
+389.307620352121
+22
+-582.640028068573
+32
+1661.47676002131
+13
+389.307620352121
+23
+-582.640028068573
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+389.307620352121
+20
+-582.640028068573
+30
+1661.47676002131
+11
+321.797626332425
+21
+-776.88819383121
+31
+1661.47676002131
+12
+467.1777430806
+22
+-699.180902483484
+32
+1661.47676002131
+13
+467.1777430806
+23
+-699.180902483484
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+389.307620352121
+20
+-582.640028068573
+30
+1661.47676002131
+11
+467.1777430806
+21
+-699.180902483484
+31
+1661.47676002131
+12
+495.494614285554
+22
+-495.494614285554
+32
+1661.47676002131
+13
+495.494614285554
+23
+-495.494614285554
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+495.494614285554
+20
+-495.494614285554
+30
+1661.47676002131
+11
+467.1777430806
+21
+-699.180902483484
+31
+1661.47676002131
+12
+594.604481158485
+22
+-594.604481158485
+32
+1661.47676002131
+13
+594.604481158485
+23
+-594.604481158485
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+495.494614285554
+20
+-495.494614285554
+30
+1661.47676002131
+11
+594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+582.640028068573
+22
+-389.307620352121
+32
+1661.47676002131
+13
+582.640028068573
+23
+-389.307620352121
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+582.640028068573
+20
+-389.307620352121
+30
+1661.47676002131
+11
+594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+647.39491232121
+22
+-268.159752894786
+32
+1661.47676002131
+13
+647.39491232121
+23
+-268.159752894786
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+647.39491232121
+20
+-268.159752894786
+30
+1661.47676002131
+11
+594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+699.180902483483
+22
+-467.1777430806
+32
+1661.47676002131
+13
+699.180902483483
+23
+-467.1777430806
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+647.39491232121
+20
+-268.159752894786
+30
+1661.47676002131
+11
+699.180902483483
+21
+-467.1777430806
+31
+1661.47676002131
+12
+687.270773156591
+22
+-136.706656519426
+32
+1661.47676002131
+13
+687.270773156591
+23
+-136.706656519426
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+687.270773156591
+20
+-136.706656519426
+30
+1661.47676002131
+11
+699.180902483483
+21
+-467.1777430806
+31
+1661.47676002131
+12
+700.735203605455
+22
+-1.80477854883065e-13
+32
+1661.47676002131
+13
+700.735203605455
+23
+-1.80477854883065e-13
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+700.735203605455
+20
+-1.80477854883065e-13
+30
+1661.47676002131
+11
+699.180902483483
+21
+-467.1777430806
+31
+1661.47676002131
+12
+776.88819383121
+22
+-321.797626332425
+32
+1661.47676002131
+13
+776.88819383121
+23
+-321.797626332425
+33
+1661.47676002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+700.735203605455
+20
+-1.80477854883065e-13
+30
+1661.47676002131
+11
+776.88819383121
+21
+-321.797626332425
+31
+1661.47676002131
+12
+840.897721502147
+22
+-1.80477854883065e-13
+32
+1661.47676002131
+13
+840.897721502147
+23
+-1.80477854883065e-13
+33
+1661.47676002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+840.897721502147
+20
+-1.80477854883065e-13
+30
+1661.47676002131
+11
+776.88819383121
+21
+-321.797626332425
+31
+1661.47676002131
+12
+824.740107573921
+22
+-164.051007270483
+32
+1661.47676002131
+13
+824.740107573921
+23
+-164.051007270483
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-778.906875772646
+20
+-154.93421062823
+30
+1474.6140400213
+11
+-654.019523605455
+21
+0.0
+31
+1474.6140400213
+12
+-794.166563605455
+22
+0.0
+32
+1474.6140400213
+13
+-794.166563605455
+23
+0.0
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-654.019523605455
+20
+0.0
+30
+1474.6140400213
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1474.6140400213
+12
+-733.714233519903
+22
+-303.914386430124
+32
+1474.6140400213
+13
+-733.714233519903
+23
+-303.914386430124
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-654.019523605455
+20
+0.0
+30
+1474.6140400213
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1474.6140400213
+12
+-660.325364744673
+22
+-441.215302798659
+32
+1474.6140400213
+13
+-660.325364744673
+23
+-441.215302798659
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-654.019523605455
+20
+0.0
+30
+1474.6140400213
+11
+-660.325364744673
+21
+-441.215302798659
+31
+1474.6140400213
+12
+-641.452721848564
+22
+-127.592879465023
+32
+1474.6140400213
+13
+-641.452721848564
+23
+-127.592879465023
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-641.452721848564
+20
+-127.592879465023
+30
+1474.6140400213
+11
+-660.325364744673
+21
+-441.215302798659
+31
+1474.6140400213
+12
+-561.560562517035
+22
+-561.560562517035
+32
+1474.6140400213
+13
+-561.560562517035
+23
+-561.560562517035
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-641.452721848564
+20
+-127.592879465023
+30
+1474.6140400213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1474.6140400213
+12
+-604.235251721863
+22
+-250.282436127117
+32
+1474.6140400213
+13
+-604.235251721863
+23
+-250.282436127117
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-604.235251721863
+20
+-250.282436127117
+30
+1474.6140400213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1474.6140400213
+12
+-543.797359730523
+22
+-363.353779128852
+32
+1474.6140400213
+13
+-543.797359730523
+23
+-363.353779128852
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-543.797359730523
+20
+-363.353779128852
+30
+1474.6140400213
+11
+-561.560562517035
+21
+-561.560562517035
+31
+1474.6140400213
+12
+-441.21530279866
+22
+-660.325364744672
+32
+1474.6140400213
+13
+-441.21530279866
+23
+-660.325364744672
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-543.797359730523
+20
+-363.353779128852
+30
+1474.6140400213
+11
+-441.21530279866
+21
+-660.325364744672
+31
+1474.6140400213
+12
+-462.461640169813
+22
+-462.461640169813
+32
+1474.6140400213
+13
+-462.461640169813
+23
+-462.461640169813
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-462.461640169813
+20
+-462.461640169813
+30
+1474.6140400213
+11
+-441.21530279866
+21
+-660.325364744672
+31
+1474.6140400213
+12
+-363.353779128852
+22
+-543.797359730523
+32
+1474.6140400213
+13
+-363.353779128852
+23
+-543.797359730523
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-363.353779128852
+20
+-543.797359730523
+30
+1474.6140400213
+11
+-441.21530279866
+21
+-660.325364744672
+31
+1474.6140400213
+12
+-303.914386430124
+22
+-733.714233519903
+32
+1474.6140400213
+13
+-303.914386430124
+23
+-733.714233519903
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-363.353779128852
+20
+-543.797359730523
+30
+1474.6140400213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1474.6140400213
+12
+-250.282436127117
+22
+-604.235251721863
+32
+1474.6140400213
+13
+-250.282436127117
+23
+-604.235251721863
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-250.282436127117
+20
+-604.235251721863
+30
+1474.6140400213
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1474.6140400213
+12
+-154.93421062823
+22
+-778.906875772646
+32
+1474.6140400213
+13
+-154.93421062823
+23
+-778.906875772646
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-250.282436127117
+20
+-604.235251721863
+30
+1474.6140400213
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1474.6140400213
+12
+-127.592879465023
+22
+-641.452721848564
+32
+1474.6140400213
+13
+-127.592879465023
+23
+-641.452721848564
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-127.592879465023
+20
+-641.452721848564
+30
+1474.6140400213
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1474.6140400213
+12
+0.0
+22
+-794.166563605455
+32
+1474.6140400213
+13
+0.0
+23
+-794.166563605455
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-127.592879465023
+20
+-641.452721848564
+30
+1474.6140400213
+11
+0.0
+21
+-794.166563605455
+31
+1474.6140400213
+12
+0.0
+22
+-654.019523605455
+32
+1474.6140400213
+13
+0.0
+23
+-654.019523605455
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-654.019523605455
+30
+1474.6140400213
+11
+0.0
+21
+-794.166563605455
+31
+1474.6140400213
+12
+154.93421062823
+22
+-778.906875772646
+32
+1474.6140400213
+13
+154.93421062823
+23
+-778.906875772646
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-654.019523605455
+30
+1474.6140400213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1474.6140400213
+12
+127.592879465023
+22
+-641.452721848564
+32
+1474.6140400213
+13
+127.592879465023
+23
+-641.452721848564
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+127.592879465023
+20
+-641.452721848564
+30
+1474.6140400213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1474.6140400213
+12
+250.282436127116
+22
+-604.235251721863
+32
+1474.6140400213
+13
+250.282436127116
+23
+-604.235251721863
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+250.282436127116
+20
+-604.235251721863
+30
+1474.6140400213
+11
+154.93421062823
+21
+-778.906875772646
+31
+1474.6140400213
+12
+303.914386430124
+22
+-733.714233519903
+32
+1474.6140400213
+13
+303.914386430124
+23
+-733.714233519903
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+250.282436127116
+20
+-604.235251721863
+30
+1474.6140400213
+11
+303.914386430124
+21
+-733.714233519903
+31
+1474.6140400213
+12
+363.353779128852
+22
+-543.797359730523
+32
+1474.6140400213
+13
+363.353779128852
+23
+-543.797359730523
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+363.353779128852
+20
+-543.797359730523
+30
+1474.6140400213
+11
+303.914386430124
+21
+-733.714233519903
+31
+1474.6140400213
+12
+441.215302798659
+22
+-660.325364744673
+32
+1474.6140400213
+13
+441.215302798659
+23
+-660.325364744673
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+363.353779128852
+20
+-543.797359730523
+30
+1474.6140400213
+11
+441.215302798659
+21
+-660.325364744673
+31
+1474.6140400213
+12
+462.461640169813
+22
+-462.461640169813
+32
+1474.6140400213
+13
+462.461640169813
+23
+-462.461640169813
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+462.461640169813
+20
+-462.461640169813
+30
+1474.6140400213
+11
+441.215302798659
+21
+-660.325364744673
+31
+1474.6140400213
+12
+561.560562517035
+22
+-561.560562517035
+32
+1474.6140400213
+13
+561.560562517035
+23
+-561.560562517035
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+462.461640169813
+20
+-462.461640169813
+30
+1474.6140400213
+11
+561.560562517035
+21
+-561.560562517035
+31
+1474.6140400213
+12
+543.797359730523
+22
+-363.353779128852
+32
+1474.6140400213
+13
+543.797359730523
+23
+-363.353779128852
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+543.797359730523
+20
+-363.353779128852
+30
+1474.6140400213
+11
+561.560562517035
+21
+-561.560562517035
+31
+1474.6140400213
+12
+604.235251721863
+22
+-250.282436127116
+32
+1474.6140400213
+13
+604.235251721863
+23
+-250.282436127116
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+604.235251721863
+20
+-250.282436127116
+30
+1474.6140400213
+11
+561.560562517035
+21
+-561.560562517035
+31
+1474.6140400213
+12
+660.325364744673
+22
+-441.21530279866
+32
+1474.6140400213
+13
+660.325364744673
+23
+-441.21530279866
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+604.235251721863
+20
+-250.282436127116
+30
+1474.6140400213
+11
+660.325364744673
+21
+-441.21530279866
+31
+1474.6140400213
+12
+641.452721848564
+22
+-127.592879465023
+32
+1474.6140400213
+13
+641.452721848564
+23
+-127.592879465023
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+641.452721848564
+20
+-127.592879465023
+30
+1474.6140400213
+11
+660.325364744673
+21
+-441.21530279866
+31
+1474.6140400213
+12
+654.019523605455
+22
+-1.80477854883065e-13
+32
+1474.6140400213
+13
+654.019523605455
+23
+-1.80477854883065e-13
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+654.019523605455
+20
+-1.80477854883065e-13
+30
+1474.6140400213
+11
+660.325364744673
+21
+-441.21530279866
+31
+1474.6140400213
+12
+794.166563605455
+22
+-1.80477854883065e-13
+32
+1474.6140400213
+13
+794.166563605455
+23
+-1.80477854883065e-13
+33
+1474.6140400213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+794.166563605455
+20
+-1.80477854883065e-13
+30
+1474.6140400213
+11
+660.325364744673
+21
+-441.21530279866
+31
+1474.6140400213
+12
+733.714233519903
+22
+-303.914386430124
+32
+1474.6140400213
+13
+733.714233519903
+23
+-303.914386430124
+33
+1474.6140400213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+794.166563605455
+20
+-1.80477854883065e-13
+30
+1474.6140400213
+11
+733.714233519903
+21
+-303.914386430124
+31
+1474.6140400213
+12
+778.906875772646
+22
+-154.934210628231
+32
+1474.6140400213
+13
+778.906875772646
+23
+-154.934210628231
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-687.270773156591
+20
+-136.706656519425
+30
+1100.8886000213
+11
+-467.156803605456
+21
+0.0
+31
+1100.8886000213
+12
+-700.735203605456
+22
+0.0
+32
+1100.8886000213
+13
+-700.735203605456
+23
+0.0
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.156803605456
+20
+0.0
+30
+1100.8886000213
+11
+-687.270773156591
+21
+-136.706656519425
+31
+1100.8886000213
+12
+-647.39491232121
+22
+-268.159752894786
+32
+1100.8886000213
+13
+-647.39491232121
+23
+-268.159752894786
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.156803605456
+20
+0.0
+30
+1100.8886000213
+11
+-647.39491232121
+21
+-268.159752894786
+31
+1100.8886000213
+12
+-582.640028068573
+22
+-389.307620352121
+32
+1100.8886000213
+13
+-582.640028068573
+23
+-389.307620352121
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.156803605456
+20
+0.0
+30
+1100.8886000213
+11
+-582.640028068573
+21
+-389.307620352121
+31
+1100.8886000213
+12
+-495.494614285554
+22
+-495.494614285554
+32
+1100.8886000213
+13
+-495.494614285554
+23
+-495.494614285554
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.156803605456
+20
+0.0
+30
+1100.8886000213
+11
+-495.494614285554
+21
+-495.494614285554
+31
+1100.8886000213
+12
+-458.180516616454
+22
+-91.1377712474136
+32
+1100.8886000213
+13
+-458.180516616454
+23
+-91.1377712474136
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-458.180516616454
+20
+-91.1377712474136
+30
+1100.8886000213
+11
+-495.494614285554
+21
+-495.494614285554
+31
+1100.8886000213
+12
+-389.307620352121
+22
+-582.640028068573
+32
+1100.8886000213
+13
+-389.307620352121
+23
+-582.640028068573
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-458.180516616454
+20
+-91.1377712474136
+30
+1100.8886000213
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+-431.596609324475
+22
+-178.77316905644
+32
+1100.8886000213
+13
+-431.596609324475
+23
+-178.77316905644
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-431.596609324475
+20
+-178.77316905644
+30
+1100.8886000213
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+-388.426686378325
+22
+-259.538414235776
+32
+1100.8886000213
+13
+-388.426686378325
+23
+-259.538414235776
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-388.426686378325
+20
+-259.538414235776
+30
+1100.8886000213
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+-268.159752894786
+22
+-647.39491232121
+32
+1100.8886000213
+13
+-268.159752894786
+23
+-647.39491232121
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-388.426686378325
+20
+-259.538414235776
+30
+1100.8886000213
+11
+-268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+-330.32974370685
+22
+-330.32974370685
+32
+1100.8886000213
+13
+-330.32974370685
+23
+-330.32974370685
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-330.32974370685
+20
+-330.32974370685
+30
+1100.8886000213
+11
+-268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+-259.538414235776
+22
+-388.426686378324
+32
+1100.8886000213
+13
+-259.538414235776
+23
+-388.426686378324
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-259.538414235776
+20
+-388.426686378324
+30
+1100.8886000213
+11
+-268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+-136.706656519425
+22
+-687.270773156591
+32
+1100.8886000213
+13
+-136.706656519425
+23
+-687.270773156591
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-259.538414235776
+20
+-388.426686378324
+30
+1100.8886000213
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+-178.77316905644
+22
+-431.596609324475
+32
+1100.8886000213
+13
+-178.77316905644
+23
+-431.596609324475
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-178.77316905644
+20
+-431.596609324475
+30
+1100.8886000213
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+-91.1377712474136
+22
+-458.180516616454
+32
+1100.8886000213
+13
+-91.1377712474136
+23
+-458.180516616454
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-91.1377712474136
+20
+-458.180516616454
+30
+1100.8886000213
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+0.0
+22
+-700.735203605455
+32
+1100.8886000213
+13
+0.0
+23
+-700.735203605455
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-91.1377712474136
+20
+-458.180516616454
+30
+1100.8886000213
+11
+0.0
+21
+-700.735203605455
+31
+1100.8886000213
+12
+0.0
+22
+-467.156803605456
+32
+1100.8886000213
+13
+0.0
+23
+-467.156803605456
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-467.156803605456
+30
+1100.8886000213
+11
+0.0
+21
+-700.735203605455
+31
+1100.8886000213
+12
+136.706656519425
+22
+-687.270773156591
+32
+1100.8886000213
+13
+136.706656519425
+23
+-687.270773156591
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-467.156803605456
+30
+1100.8886000213
+11
+136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+91.1377712474136
+22
+-458.180516616454
+32
+1100.8886000213
+13
+91.1377712474136
+23
+-458.180516616454
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+91.1377712474136
+20
+-458.180516616454
+30
+1100.8886000213
+11
+136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+178.77316905644
+22
+-431.596609324475
+32
+1100.8886000213
+13
+178.77316905644
+23
+-431.596609324475
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+178.77316905644
+20
+-431.596609324475
+30
+1100.8886000213
+11
+136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+268.159752894786
+22
+-647.39491232121
+32
+1100.8886000213
+13
+268.159752894786
+23
+-647.39491232121
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+178.77316905644
+20
+-431.596609324475
+30
+1100.8886000213
+11
+268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+259.538414235775
+22
+-388.426686378325
+32
+1100.8886000213
+13
+259.538414235775
+23
+-388.426686378325
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+259.538414235775
+20
+-388.426686378325
+30
+1100.8886000213
+11
+268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+330.32974370685
+22
+-330.32974370685
+32
+1100.8886000213
+13
+330.32974370685
+23
+-330.32974370685
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+330.32974370685
+20
+-330.32974370685
+30
+1100.8886000213
+11
+268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+389.307620352121
+22
+-582.640028068573
+32
+1100.8886000213
+13
+389.307620352121
+23
+-582.640028068573
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+330.32974370685
+20
+-330.32974370685
+30
+1100.8886000213
+11
+389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+388.426686378325
+22
+-259.538414235776
+32
+1100.8886000213
+13
+388.426686378325
+23
+-259.538414235776
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+388.426686378325
+20
+-259.538414235776
+30
+1100.8886000213
+11
+389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+431.596609324475
+22
+-178.77316905644
+32
+1100.8886000213
+13
+431.596609324475
+23
+-178.77316905644
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+431.596609324475
+20
+-178.77316905644
+30
+1100.8886000213
+11
+389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+495.494614285554
+22
+-495.494614285554
+32
+1100.8886000213
+13
+495.494614285554
+23
+-495.494614285554
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+431.596609324475
+20
+-178.77316905644
+30
+1100.8886000213
+11
+495.494614285554
+21
+-495.494614285554
+31
+1100.8886000213
+12
+458.180516616454
+22
+-91.1377712474138
+32
+1100.8886000213
+13
+458.180516616454
+23
+-91.1377712474138
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+458.180516616454
+20
+-91.1377712474138
+30
+1100.8886000213
+11
+495.494614285554
+21
+-495.494614285554
+31
+1100.8886000213
+12
+467.156803605456
+22
+0.0
+32
+1100.8886000213
+13
+467.156803605456
+23
+0.0
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+467.156803605456
+20
+0.0
+30
+1100.8886000213
+11
+495.494614285554
+21
+-495.494614285554
+31
+1100.8886000213
+12
+700.735203605455
+22
+-1.80477854883065e-13
+32
+1100.8886000213
+13
+700.735203605455
+23
+-1.80477854883065e-13
+33
+1100.8886000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+700.735203605455
+20
+-1.80477854883065e-13
+30
+1100.8886000213
+11
+495.494614285554
+21
+-495.494614285554
+31
+1100.8886000213
+12
+582.640028068573
+22
+-389.307620352121
+32
+1100.8886000213
+13
+582.640028068573
+23
+-389.307620352121
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+700.735203605455
+20
+-1.80477854883065e-13
+30
+1100.8886000213
+11
+582.640028068573
+21
+-389.307620352121
+31
+1100.8886000213
+12
+647.39491232121
+22
+-268.159752894786
+32
+1100.8886000213
+13
+647.39491232121
+23
+-268.159752894786
+33
+1100.8886000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+700.735203605455
+20
+-1.80477854883065e-13
+30
+1100.8886000213
+11
+647.39491232121
+21
+-268.159752894786
+31
+1100.8886000213
+12
+687.270773156591
+22
+-136.706656519426
+32
+1100.8886000213
+13
+687.270773156591
+23
+-136.706656519426
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.088824464619
+20
+-145.820433573828
+30
+1287.75132002131
+11
+-607.303843605455
+21
+0.0
+31
+1287.75132002131
+12
+-747.450883605455
+22
+0.0
+32
+1287.75132002131
+13
+-747.450883605455
+23
+0.0
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-607.303843605455
+20
+0.0
+30
+1287.75132002131
+11
+-733.088824464619
+21
+-145.820433573828
+31
+1287.75132002131
+12
+-690.554572920556
+22
+-286.037069662455
+32
+1287.75132002131
+13
+-690.554572920556
+23
+-286.037069662455
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-607.303843605455
+20
+0.0
+30
+1287.75132002131
+11
+-690.554572920556
+21
+-286.037069662455
+31
+1287.75132002131
+12
+-621.482696406623
+22
+-415.26146157539
+32
+1287.75132002131
+13
+-621.482696406623
+23
+-415.26146157539
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-607.303843605455
+20
+0.0
+30
+1287.75132002131
+11
+-621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+-595.634670540536
+22
+-118.479102410621
+32
+1287.75132002131
+13
+-595.634670540536
+23
+-118.479102410621
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-595.634670540536
+20
+-118.479102410621
+30
+1287.75132002131
+11
+-621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+-528.527588401294
+22
+-528.527588401294
+32
+1287.75132002131
+13
+-528.527588401294
+23
+-528.527588401294
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-595.634670540536
+20
+-118.479102410621
+30
+1287.75132002131
+11
+-528.527588401294
+21
+-528.527588401294
+31
+1287.75132002131
+12
+-561.075591122516
+22
+-232.405119359447
+32
+1287.75132002131
+13
+-561.075591122516
+23
+-232.405119359447
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-561.075591122516
+20
+-232.405119359447
+30
+1287.75132002131
+11
+-528.527588401294
+21
+-528.527588401294
+31
+1287.75132002131
+12
+-504.954691392474
+22
+-337.399937905583
+32
+1287.75132002131
+13
+-504.954691392474
+23
+-337.399937905583
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-504.954691392474
+20
+-337.399937905583
+30
+1287.75132002131
+11
+-528.527588401294
+21
+-528.527588401294
+31
+1287.75132002131
+12
+-415.26146157539
+22
+-621.482696406623
+32
+1287.75132002131
+13
+-415.26146157539
+23
+-621.482696406623
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-504.954691392474
+20
+-337.399937905583
+30
+1287.75132002131
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1287.75132002131
+12
+-429.428666054072
+22
+-429.428666054072
+32
+1287.75132002131
+13
+-429.428666054072
+23
+-429.428666054072
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-429.428666054072
+20
+-429.428666054072
+30
+1287.75132002131
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1287.75132002131
+12
+-337.399937905583
+22
+-504.954691392473
+32
+1287.75132002131
+13
+-337.399937905583
+23
+-504.954691392473
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-337.399937905583
+20
+-504.954691392473
+30
+1287.75132002131
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1287.75132002131
+12
+-286.037069662455
+22
+-690.554572920556
+32
+1287.75132002131
+13
+-286.037069662455
+23
+-690.554572920556
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-337.399937905583
+20
+-504.954691392473
+30
+1287.75132002131
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1287.75132002131
+12
+-232.405119359447
+22
+-561.075591122516
+32
+1287.75132002131
+13
+-232.405119359447
+23
+-561.075591122516
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-232.405119359447
+20
+-561.075591122516
+30
+1287.75132002131
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1287.75132002131
+12
+-145.820433573828
+22
+-733.088824464619
+32
+1287.75132002131
+13
+-145.820433573828
+23
+-733.088824464619
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-232.405119359447
+20
+-561.075591122516
+30
+1287.75132002131
+11
+-145.820433573828
+21
+-733.088824464619
+31
+1287.75132002131
+12
+-118.479102410621
+22
+-595.634670540536
+32
+1287.75132002131
+13
+-118.479102410621
+23
+-595.634670540536
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-118.479102410621
+20
+-595.634670540536
+30
+1287.75132002131
+11
+-145.820433573828
+21
+-733.088824464619
+31
+1287.75132002131
+12
+0.0
+22
+-747.450883605455
+32
+1287.75132002131
+13
+0.0
+23
+-747.450883605455
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-118.479102410621
+20
+-595.634670540536
+30
+1287.75132002131
+11
+0.0
+21
+-747.450883605455
+31
+1287.75132002131
+12
+0.0
+22
+-607.303843605455
+32
+1287.75132002131
+13
+0.0
+23
+-607.303843605455
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-607.303843605455
+30
+1287.75132002131
+11
+0.0
+21
+-747.450883605455
+31
+1287.75132002131
+12
+145.820433573828
+22
+-733.088824464619
+32
+1287.75132002131
+13
+145.820433573828
+23
+-733.088824464619
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-607.303843605455
+30
+1287.75132002131
+11
+145.820433573828
+21
+-733.088824464619
+31
+1287.75132002131
+12
+118.479102410621
+22
+-595.634670540536
+32
+1287.75132002131
+13
+118.479102410621
+23
+-595.634670540536
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+118.479102410621
+20
+-595.634670540536
+30
+1287.75132002131
+11
+145.820433573828
+21
+-733.088824464619
+31
+1287.75132002131
+12
+232.405119359447
+22
+-561.075591122516
+32
+1287.75132002131
+13
+232.405119359447
+23
+-561.075591122516
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+232.405119359447
+20
+-561.075591122516
+30
+1287.75132002131
+11
+145.820433573828
+21
+-733.088824464619
+31
+1287.75132002131
+12
+286.037069662455
+22
+-690.554572920556
+32
+1287.75132002131
+13
+286.037069662455
+23
+-690.554572920556
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+232.405119359447
+20
+-561.075591122516
+30
+1287.75132002131
+11
+286.037069662455
+21
+-690.554572920556
+31
+1287.75132002131
+12
+337.399937905583
+22
+-504.954691392474
+32
+1287.75132002131
+13
+337.399937905583
+23
+-504.954691392474
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+337.399937905583
+20
+-504.954691392474
+30
+1287.75132002131
+11
+286.037069662455
+21
+-690.554572920556
+31
+1287.75132002131
+12
+415.26146157539
+22
+-621.482696406623
+32
+1287.75132002131
+13
+415.26146157539
+23
+-621.482696406623
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+337.399937905583
+20
+-504.954691392474
+30
+1287.75132002131
+11
+415.26146157539
+21
+-621.482696406623
+31
+1287.75132002131
+12
+429.428666054072
+22
+-429.428666054072
+32
+1287.75132002131
+13
+429.428666054072
+23
+-429.428666054072
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+429.428666054072
+20
+-429.428666054072
+30
+1287.75132002131
+11
+415.26146157539
+21
+-621.482696406623
+31
+1287.75132002131
+12
+528.527588401294
+22
+-528.527588401294
+32
+1287.75132002131
+13
+528.527588401294
+23
+-528.527588401294
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+429.428666054072
+20
+-429.428666054072
+30
+1287.75132002131
+11
+528.527588401294
+21
+-528.527588401294
+31
+1287.75132002131
+12
+504.954691392474
+22
+-337.399937905583
+32
+1287.75132002131
+13
+504.954691392474
+23
+-337.399937905583
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+504.954691392474
+20
+-337.399937905583
+30
+1287.75132002131
+11
+528.527588401294
+21
+-528.527588401294
+31
+1287.75132002131
+12
+561.075591122516
+22
+-232.405119359447
+32
+1287.75132002131
+13
+561.075591122516
+23
+-232.405119359447
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+561.075591122516
+20
+-232.405119359447
+30
+1287.75132002131
+11
+528.527588401294
+21
+-528.527588401294
+31
+1287.75132002131
+12
+621.482696406623
+22
+-415.26146157539
+32
+1287.75132002131
+13
+621.482696406623
+23
+-415.26146157539
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+561.075591122516
+20
+-232.405119359447
+30
+1287.75132002131
+11
+621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+595.634670540536
+22
+-118.479102410621
+32
+1287.75132002131
+13
+595.634670540536
+23
+-118.479102410621
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+595.634670540536
+20
+-118.479102410621
+30
+1287.75132002131
+11
+621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+607.303843605455
+22
+-1.80477854883065e-13
+32
+1287.75132002131
+13
+607.303843605455
+23
+-1.80477854883065e-13
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+607.303843605455
+20
+-1.80477854883065e-13
+30
+1287.75132002131
+11
+621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+747.450883605455
+22
+-1.80477854883065e-13
+32
+1287.75132002131
+13
+747.450883605455
+23
+-1.80477854883065e-13
+33
+1287.75132002131
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+747.450883605455
+20
+-1.80477854883065e-13
+30
+1287.75132002131
+11
+621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+690.554572920556
+22
+-286.037069662455
+32
+1287.75132002131
+13
+690.554572920556
+23
+-286.037069662455
+33
+1287.75132002131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+747.450883605455
+20
+-1.80477854883065e-13
+30
+1287.75132002131
+11
+690.554572920556
+21
+-286.037069662455
+31
+1287.75132002131
+12
+733.088824464619
+22
+-145.820433573828
+32
+1287.75132002131
+13
+733.088824464619
+23
+-145.820433573828
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-699.298837021391
+30
+628.271001705821
+11
+-126.938054583664
+21
+-638.160694862082
+31
+587.016306884026
+12
+-136.426435300007
+22
+-685.862005953678
+32
+628.271001705821
+13
+-136.426435300007
+23
+-685.862005953678
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-126.938054583664
+20
+-638.160694862082
+30
+587.016306884026
+11
+0.0
+21
+-699.298837021391
+31
+628.271001705821
+12
+0.0
+22
+-650.663001997455
+32
+587.016306884026
+13
+0.0
+23
+-650.663001997455
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-373.870315466121
+20
+-902.602786167016
+30
+1967.39330582966
+11
+-188.233089011893
+21
+-946.311642114328
+31
+1900.55285125842
+12
+-369.232485975391
+22
+-891.406075310522
+32
+1900.55285125842
+13
+-369.232485975391
+23
+-891.406075310522
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-188.233089011893
+20
+-946.311642114328
+30
+1900.55285125842
+11
+-373.870315466121
+21
+-902.602786167016
+31
+1967.39330582966
+12
+-190.597433982906
+22
+-958.19800696011
+32
+1967.39330582966
+13
+-190.597433982906
+23
+-958.19800696011
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-462.461640169813
+20
+-462.461640169813
+30
+1474.6140400213
+11
+-415.26146157539
+21
+-621.482696406623
+31
+1287.75132002131
+12
+-528.527588401294
+22
+-528.527588401294
+32
+1287.75132002131
+13
+-528.527588401294
+23
+-528.527588401294
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-415.26146157539
+20
+-621.482696406623
+30
+1287.75132002131
+11
+-462.461640169813
+21
+-462.461640169813
+31
+1474.6140400213
+12
+-363.353779128852
+22
+-543.797359730523
+32
+1474.6140400213
+13
+-363.353779128852
+23
+-543.797359730523
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-902.602786167016
+20
+-373.87031546612
+30
+2103.01109421295
+11
+-802.244272938819
+21
+-536.042485570818
+31
+2169.85154878419
+12
+-812.321046486997
+22
+-542.775570394861
+32
+2103.01109421295
+13
+-812.321046486997
+23
+-542.775570394861
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-802.244272938819
+20
+-536.042485570818
+30
+2169.85154878419
+11
+-902.602786167016
+21
+-373.87031546612
+31
+2103.01109421295
+12
+-891.406075310522
+22
+-369.232485975391
+32
+2169.85154878419
+13
+-891.406075310522
+23
+-369.232485975391
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-815.696038096872
+20
+-545.030667691736
+30
+2035.2022000213
+11
+-690.822264545374
+21
+-690.822264545373
+31
+2103.01109421295
+12
+-693.692458979998
+22
+-693.692458979998
+32
+2035.2022000213
+13
+-693.692458979998
+23
+-693.692458979998
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.822264545374
+20
+-690.822264545373
+30
+2103.01109421295
+11
+-815.696038096872
+21
+-545.030667691736
+31
+2035.2022000213
+12
+-812.321046486997
+22
+-542.775570394861
+32
+2103.01109421295
+13
+-812.321046486997
+23
+-542.775570394861
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-812.321046486997
+20
+-542.775570394861
+30
+2103.01109421295
+11
+-682.252673061849
+21
+-682.252673061848
+31
+2169.85154878419
+12
+-690.822264545374
+22
+-690.822264545373
+32
+2103.01109421295
+13
+-690.822264545374
+23
+-690.822264545373
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-682.252673061849
+20
+-682.252673061848
+30
+2169.85154878419
+11
+-812.321046486997
+21
+-542.775570394861
+31
+2103.01109421295
+12
+-802.244272938819
+22
+-536.042485570818
+32
+2169.85154878419
+13
+-802.244272938819
+23
+-536.042485570818
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-802.244272938819
+20
+-536.042485570818
+30
+2169.85154878419
+11
+-668.106074549528
+21
+-668.106074549528
+31
+2234.76895526921
+12
+-682.252673061849
+22
+-682.252673061848
+32
+2169.85154878419
+13
+-682.252673061849
+23
+-682.252673061848
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-668.106074549528
+20
+-668.106074549528
+30
+2234.76895526921
+11
+-802.244272938819
+21
+-536.042485570818
+31
+2169.85154878419
+12
+-785.609632890959
+22
+-524.927574441361
+32
+2234.76895526921
+13
+-785.609632890959
+23
+-524.927574441361
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-785.609632890959
+20
+-524.927574441361
+30
+2234.76895526921
+11
+-648.584509266648
+21
+-648.584509266648
+31
+2296.83616997626
+12
+-668.106074549528
+22
+-668.106074549528
+32
+2234.76895526921
+13
+-668.106074549528
+23
+-668.106074549528
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-648.584509266648
+20
+-648.584509266648
+30
+2296.83616997626
+11
+-785.609632890959
+21
+-524.927574441361
+31
+2234.76895526921
+12
+-762.654700553784
+22
+-509.589579018778
+32
+2296.83616997626
+13
+-762.654700553784
+23
+-509.589579018778
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+646.067882633009
+20
+-267.610079200261
+30
+628.271001705821
+11
+638.160694862082
+21
+-126.938054583664
+31
+587.016306884026
+12
+601.1342301078
+22
+-248.997950917359
+32
+587.016306884026
+13
+601.1342301078
+23
+-248.997950917359
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+638.160694862082
+20
+-126.938054583664
+30
+587.016306884026
+11
+646.067882633009
+21
+-267.610079200261
+31
+628.271001705821
+12
+685.862005953678
+22
+-136.426435300007
+32
+628.271001705821
+13
+685.862005953678
+23
+-136.426435300007
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+735.304703143143
+20
+-1.80477854883065e-13
+30
+680.911023534629
+11
+685.862005953678
+21
+-136.426435300007
+31
+628.271001705821
+12
+721.176029454062
+22
+-143.45083131617
+32
+680.911023534629
+13
+721.176029454062
+23
+-143.45083131617
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+685.862005953678
+20
+-136.426435300007
+30
+628.271001705821
+11
+735.304703143143
+21
+-1.80477854883065e-13
+31
+680.911023534629
+12
+699.298837021391
+22
+-1.80477854883065e-13
+32
+628.271001705821
+13
+699.298837021391
+23
+-1.80477854883065e-13
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+756.121025443459
+20
+-1.80477854883065e-13
+30
+741.194313252463
+11
+721.176029454062
+21
+-143.45083131617
+31
+680.911023534629
+12
+741.592371958341
+22
+-147.51189433693
+32
+741.194313252463
+13
+741.592371958341
+23
+-147.51189433693
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+721.176029454062
+20
+-143.45083131617
+30
+680.911023534629
+11
+756.121025443459
+21
+-1.80477854883065e-13
+31
+741.194313252463
+12
+735.304703143143
+22
+-1.80477854883065e-13
+32
+680.911023534629
+13
+735.304703143143
+23
+-1.80477854883065e-13
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.707315899088
+20
+-490.247554968877
+30
+1715.23764468454
+11
+-847.416499400322
+21
+-351.011407030345
+31
+1773.56823006635
+12
+-762.654700553784
+22
+-509.589579018778
+32
+1773.56823006635
+13
+-762.654700553784
+23
+-509.589579018778
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-847.416499400322
+20
+-351.011407030345
+30
+1773.56823006635
+11
+-733.707315899088
+21
+-490.247554968877
+31
+1715.23764468454
+12
+-815.251888924487
+22
+-337.688389142806
+32
+1715.23764468454
+13
+-815.251888924487
+23
+-337.688389142806
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+760.268019036986
+20
+-1.80477854883065e-13
+30
+804.835469255871
+11
+741.592371958341
+21
+-147.51189433693
+31
+741.194313252463
+12
+745.659682232799
+22
+-148.32093265249
+32
+804.835469255871
+13
+745.659682232799
+23
+-148.32093265249
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+741.592371958341
+20
+-147.51189433693
+30
+741.194313252463
+11
+760.268019036986
+21
+-1.80477854883065e-13
+31
+804.835469255871
+12
+756.121025443459
+22
+-1.80477854883065e-13
+32
+741.194313252463
+13
+756.121025443459
+23
+-1.80477854883065e-13
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.088824464618
+20
+-145.820433573828
+30
+867.310386884026
+11
+760.268019036986
+21
+-1.80477854883065e-13
+31
+804.835469255871
+12
+745.659682232799
+22
+-148.32093265249
+32
+804.835469255871
+13
+745.659682232799
+23
+-148.32093265249
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+760.268019036986
+20
+-1.80477854883065e-13
+30
+804.835469255871
+11
+733.088824464618
+21
+-145.820433573828
+31
+867.310386884026
+12
+747.450883605455
+22
+-1.80477854883065e-13
+32
+867.310386884026
+13
+747.450883605455
+23
+-1.80477854883065e-13
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+467.156803605456
+20
+0.0
+30
+1100.8886000213
+11
+733.088824464618
+21
+-145.820433573828
+31
+867.310386884026
+12
+458.180516616454
+22
+-91.1377712474138
+32
+1100.8886000213
+13
+458.180516616454
+23
+-91.1377712474138
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.088824464618
+20
+-145.820433573828
+30
+867.310386884026
+11
+467.156803605456
+21
+0.0
+31
+1100.8886000213
+12
+747.450883605455
+22
+-1.80477854883065e-13
+32
+867.310386884026
+13
+747.450883605455
+23
+-1.80477854883065e-13
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.714233519903
+20
+-303.914386430124
+30
+1474.6140400213
+11
+-582.640028068573
+21
+-389.307620352121
+31
+1661.47676002131
+12
+-660.325364744673
+22
+-441.215302798659
+32
+1474.6140400213
+13
+-660.325364744673
+23
+-441.215302798659
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-582.640028068573
+20
+-389.307620352121
+30
+1661.47676002131
+11
+-733.714233519903
+21
+-303.914386430124
+31
+1474.6140400213
+12
+-647.39491232121
+22
+-268.159752894786
+32
+1661.47676002131
+13
+-647.39491232121
+23
+-268.159752894786
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-815.251888924486
+20
+-337.688389142806
+30
+2355.16675535807
+11
+-699.180902483484
+21
+-467.1777430806
+31
+2408.9276400213
+12
+-733.707315899088
+22
+-490.247554968877
+32
+2355.16675535807
+13
+-733.707315899088
+23
+-490.247554968877
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-699.180902483484
+20
+-467.1777430806
+30
+2408.9276400213
+11
+-815.251888924486
+21
+-337.688389142806
+31
+2355.16675535807
+12
+-776.88819383121
+22
+-321.797626332425
+32
+2408.9276400213
+13
+-776.88819383121
+23
+-321.797626332425
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-847.416499400322
+20
+-351.011407030345
+30
+2296.83616997626
+11
+-733.707315899088
+21
+-490.247554968877
+31
+2355.16675535807
+12
+-762.654700553784
+22
+-509.589579018778
+32
+2296.83616997626
+13
+-762.654700553784
+23
+-509.589579018778
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.707315899088
+20
+-490.247554968877
+30
+2355.16675535807
+11
+-847.416499400322
+21
+-351.011407030345
+31
+2296.83616997626
+12
+-815.251888924486
+22
+-337.688389142806
+32
+2355.16675535807
+13
+-815.251888924486
+23
+-337.688389142806
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-824.740107573921
+20
+-164.051007270482
+30
+1661.47676002131
+11
+-882.422285845505
+21
+0.0
+31
+1715.23764468454
+12
+-865.466789057043
+22
+-172.152047899808
+32
+1715.23764468454
+13
+-865.466789057043
+23
+-172.152047899808
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-882.422285845505
+20
+0.0
+30
+1715.23764468454
+11
+-824.740107573921
+21
+-164.051007270482
+31
+1661.47676002131
+12
+-840.897721502147
+22
+0.0
+32
+1661.47676002131
+13
+-840.897721502147
+23
+0.0
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-458.180516616454
+20
+-91.1377712474136
+30
+1100.8886000213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+867.310386884026
+12
+-733.088824464618
+22
+-145.820433573828
+32
+867.310386884026
+13
+-733.088824464618
+23
+-145.820433573828
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+867.310386884026
+11
+-458.180516616454
+21
+-91.1377712474136
+31
+1100.8886000213
+12
+-431.596609324475
+22
+-178.77316905644
+32
+1100.8886000213
+13
+-431.596609324475
+23
+-178.77316905644
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-865.466789057043
+20
+-172.152047899808
+30
+2355.16675535807
+11
+-776.88819383121
+21
+-321.797626332425
+31
+2408.9276400213
+12
+-815.251888924486
+22
+-337.688389142806
+32
+2355.16675535807
+13
+-815.251888924486
+23
+-337.688389142806
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-776.88819383121
+20
+-321.797626332425
+30
+2408.9276400213
+11
+-865.466789057043
+21
+-172.152047899808
+31
+2355.16675535807
+12
+-824.740107573921
+22
+-164.051007270482
+32
+2408.9276400213
+13
+-824.740107573921
+23
+-164.051007270482
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.088824464619
+20
+-145.820433573828
+30
+1287.75132002131
+11
+-604.235251721863
+21
+-250.282436127117
+31
+1474.6140400213
+12
+-690.554572920556
+22
+-286.037069662455
+32
+1287.75132002131
+13
+-690.554572920556
+23
+-286.037069662455
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-604.235251721863
+20
+-250.282436127117
+30
+1474.6140400213
+11
+-733.088824464619
+21
+-145.820433573828
+31
+1287.75132002131
+12
+-641.452721848564
+22
+-127.592879465023
+32
+1474.6140400213
+13
+-641.452721848564
+23
+-127.592879465023
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-962.179081004757
+20
+-191.38931884584
+30
+2035.2022000213
+11
+-902.602786167016
+21
+-373.87031546612
+31
+2103.01109421295
+12
+-906.352875917291
+22
+-375.423653500801
+32
+2035.2022000213
+13
+-906.352875917291
+23
+-375.423653500801
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-902.602786167016
+20
+-373.87031546612
+30
+2103.01109421295
+11
+-962.179081004757
+21
+-191.38931884584
+31
+2035.2022000213
+12
+-958.19800696011
+22
+-190.597433982906
+32
+2103.01109421295
+13
+-958.19800696011
+23
+-190.597433982906
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.088824464619
+20
+-145.820433573828
+30
+2408.9276400213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+2549.0746800213
+12
+-690.554572920556
+22
+-286.037069662455
+32
+2408.9276400213
+13
+-690.554572920556
+23
+-286.037069662455
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+-733.088824464619
+21
+-145.820433573828
+31
+2408.9276400213
+12
+-733.088824464618
+22
+-145.820433573828
+32
+2549.0746800213
+13
+-733.088824464618
+23
+-145.820433573828
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-741.592371958341
+20
+-147.511894336929
+30
+741.194313252463
+11
+-760.268019036986
+21
+0.0
+31
+804.835469255871
+12
+-745.659682232799
+22
+-148.32093265249
+32
+804.835469255871
+13
+-745.659682232799
+23
+-148.32093265249
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-760.268019036986
+20
+0.0
+30
+804.835469255871
+11
+-741.592371958341
+21
+-147.511894336929
+31
+741.194313252463
+12
+-756.121025443459
+22
+0.0
+32
+741.194313252463
+13
+-756.121025443459
+23
+0.0
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-882.422285845505
+30
+2355.16675535807
+11
+178.9440635192
+21
+-899.612557411553
+31
+2296.83616997626
+12
+0.0
+22
+-917.237009349992
+32
+2296.83616997626
+13
+0.0
+23
+-917.237009349992
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+178.9440635192
+20
+-899.612557411553
+30
+2296.83616997626
+11
+0.0
+21
+-882.422285845505
+31
+2355.16675535807
+12
+172.152047899807
+22
+-865.466789057043
+32
+2355.16675535807
+13
+172.152047899807
+23
+-865.466789057043
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-840.897721502147
+30
+2408.9276400213
+11
+172.152047899807
+21
+-865.466789057043
+31
+2355.16675535807
+12
+0.0
+22
+-882.422285845505
+32
+2355.16675535807
+13
+0.0
+23
+-882.422285845505
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+172.152047899807
+20
+-865.466789057043
+30
+2355.16675535807
+11
+0.0
+21
+-840.897721502147
+31
+2408.9276400213
+12
+164.051007270482
+22
+-824.740107573921
+32
+2408.9276400213
+13
+164.051007270482
+23
+-824.740107573921
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-815.251888924487
+20
+-337.688389142806
+30
+1715.23764468454
+11
+-899.612557411553
+21
+-178.944063519201
+31
+1773.56823006635
+12
+-847.416499400322
+22
+-351.011407030345
+32
+1773.56823006635
+13
+-847.416499400322
+23
+-351.011407030345
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-899.612557411553
+20
+-178.944063519201
+30
+1773.56823006635
+11
+-815.251888924487
+21
+-337.688389142806
+31
+1715.23764468454
+12
+-865.466789057043
+22
+-172.152047899808
+32
+1715.23764468454
+13
+-865.466789057043
+23
+-172.152047899808
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.707315899088
+20
+-490.247554968877
+30
+2355.16675535807
+11
+-594.604481158485
+21
+-594.604481158485
+31
+2408.9276400213
+12
+-623.966782191491
+22
+-623.96678219149
+32
+2355.16675535807
+13
+-623.966782191491
+23
+-623.96678219149
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+-733.707315899088
+21
+-490.247554968877
+31
+2355.16675535807
+12
+-699.180902483484
+22
+-467.1777430806
+32
+2408.9276400213
+13
+-699.180902483484
+23
+-467.1777430806
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-534.658304488796
+20
+-534.658304488796
+30
+741.194313252463
+11
+-408.513405265646
+21
+-611.383516446667
+31
+680.911023534629
+12
+-519.938941830878
+22
+-519.938941830878
+32
+680.911023534629
+13
+-519.938941830878
+23
+-519.938941830878
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-408.513405265646
+20
+-611.383516446667
+30
+680.911023534629
+11
+-534.658304488796
+21
+-534.658304488796
+31
+741.194313252463
+12
+-420.078334296643
+22
+-628.691655879275
+32
+741.194313252463
+13
+-420.078334296643
+23
+-628.691655879275
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-537.590671780316
+20
+-537.590671780316
+30
+804.835469255871
+11
+-420.078334296643
+21
+-628.691655879275
+31
+741.194313252463
+12
+-534.658304488796
+22
+-534.658304488796
+32
+741.194313252463
+13
+-534.658304488796
+23
+-534.658304488796
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-420.078334296643
+20
+-628.691655879275
+30
+741.194313252463
+11
+-537.590671780316
+21
+-537.590671780316
+31
+804.835469255871
+12
+-422.38228049373
+22
+-632.139755034707
+32
+804.835469255871
+13
+-422.38228049373
+23
+-632.139755034707
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+867.310386884026
+11
+-422.38228049373
+21
+-632.139755034707
+31
+804.835469255871
+12
+-537.590671780316
+22
+-537.590671780316
+32
+804.835469255871
+13
+-537.590671780316
+23
+-537.590671780316
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-422.38228049373
+20
+-632.139755034707
+30
+804.835469255871
+11
+-528.527588401294
+21
+-528.527588401294
+31
+867.310386884026
+12
+-415.26146157539
+22
+-621.482696406622
+32
+867.310386884026
+13
+-415.26146157539
+23
+-621.482696406622
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-330.32974370685
+20
+-330.32974370685
+30
+1100.8886000213
+11
+-415.26146157539
+21
+-621.482696406622
+31
+867.310386884026
+12
+-528.527588401294
+22
+-528.527588401294
+32
+867.310386884026
+13
+-528.527588401294
+23
+-528.527588401294
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-415.26146157539
+20
+-621.482696406622
+30
+867.310386884026
+11
+-330.32974370685
+21
+-330.32974370685
+31
+1100.8886000213
+12
+-259.538414235776
+22
+-388.426686378324
+32
+1100.8886000213
+13
+-259.538414235776
+23
+-388.426686378324
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-702.396062011173
+20
+-290.941975042481
+30
+804.835469255871
+11
+-621.482696406623
+21
+-415.26146157539
+31
+867.310386884026
+12
+-632.139755034707
+22
+-422.38228049373
+32
+804.835469255871
+13
+-632.139755034707
+23
+-422.38228049373
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+867.310386884026
+11
+-702.396062011173
+21
+-290.941975042481
+31
+804.835469255871
+12
+-690.554572920556
+22
+-286.037069662455
+32
+867.310386884026
+13
+-690.554572920556
+23
+-286.037069662455
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-762.654700553784
+20
+-509.589579018778
+30
+2296.83616997626
+11
+-623.966782191491
+21
+-623.96678219149
+31
+2355.16675535807
+12
+-648.584509266648
+22
+-648.584509266648
+32
+2296.83616997626
+13
+-648.584509266648
+23
+-648.584509266648
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-623.966782191491
+20
+-623.96678219149
+30
+2355.16675535807
+11
+-762.654700553784
+21
+-509.589579018778
+31
+2296.83616997626
+12
+-733.707315899088
+22
+-490.247554968877
+32
+2355.16675535807
+13
+-733.707315899088
+23
+-490.247554968877
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-944.844671731792
+30
+1835.6354447734
+11
+178.9440635192
+21
+-899.612557411553
+31
+1773.56823006635
+12
+0.0
+22
+-917.237009349992
+32
+1773.56823006635
+13
+0.0
+23
+-917.237009349992
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+178.9440635192
+20
+-899.612557411553
+30
+1773.56823006635
+11
+0.0
+21
+-944.844671731792
+31
+1835.6354447734
+12
+184.330051263378
+22
+-926.689746301964
+32
+1835.6354447734
+13
+184.330051263378
+23
+-926.689746301964
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-363.353779128852
+20
+-543.797359730523
+30
+1474.6140400213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+1287.75132002131
+12
+-415.26146157539
+22
+-621.482696406623
+32
+1287.75132002131
+13
+-415.26146157539
+23
+-621.482696406623
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+1287.75132002131
+11
+-363.353779128852
+21
+-543.797359730523
+31
+1474.6140400213
+12
+-250.282436127117
+22
+-604.235251721863
+32
+1474.6140400213
+13
+-250.282436127117
+23
+-604.235251721863
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-582.640028068573
+20
+-389.307620352121
+30
+1100.8886000213
+11
+-429.428666054072
+21
+-429.428666054072
+31
+1287.75132002131
+12
+-495.494614285554
+22
+-495.494614285554
+32
+1100.8886000213
+13
+-495.494614285554
+23
+-495.494614285554
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-429.428666054072
+20
+-429.428666054072
+30
+1287.75132002131
+11
+-582.640028068573
+21
+-389.307620352121
+31
+1100.8886000213
+12
+-504.954691392474
+22
+-337.399937905583
+32
+1287.75132002131
+13
+-504.954691392474
+23
+-337.399937905583
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-747.450883605455
+30
+2549.0746800213
+11
+145.820433573828
+21
+-733.088824464619
+31
+2408.9276400213
+12
+0.0
+22
+-747.450883605455
+32
+2408.9276400213
+13
+0.0
+23
+-747.450883605455
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+145.820433573828
+20
+-733.088824464619
+30
+2408.9276400213
+11
+0.0
+21
+-747.450883605455
+31
+2549.0746800213
+12
+145.820433573828
+22
+-733.088824464618
+32
+2549.0746800213
+13
+145.820433573828
+23
+-733.088824464618
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-699.180902483484
+20
+-467.1777430806
+30
+1661.47676002131
+11
+-815.251888924487
+21
+-337.688389142806
+31
+1715.23764468454
+12
+-733.707315899088
+22
+-490.247554968877
+32
+1715.23764468454
+13
+-733.707315899088
+23
+-490.247554968877
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-815.251888924487
+20
+-337.688389142806
+30
+1715.23764468454
+11
+-699.180902483484
+21
+-467.1777430806
+31
+1661.47676002131
+12
+-776.88819383121
+22
+-321.797626332425
+32
+1661.47676002131
+13
+-776.88819383121
+23
+-321.797626332425
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-902.602786167016
+20
+-373.87031546612
+30
+1967.39330582966
+11
+-962.179081004757
+21
+-191.38931884584
+31
+2035.2022000213
+12
+-906.352875917291
+22
+-375.423653500801
+32
+2035.2022000213
+13
+-906.352875917291
+23
+-375.423653500801
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-962.179081004757
+20
+-191.38931884584
+30
+2035.2022000213
+11
+-902.602786167016
+21
+-373.87031546612
+31
+1967.39330582966
+12
+-958.198006960111
+22
+-190.597433982906
+32
+1967.39330582966
+13
+-958.198006960111
+23
+-190.597433982906
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-647.39491232121
+20
+-268.159752894786
+30
+1100.8886000213
+11
+-504.954691392474
+21
+-337.399937905583
+31
+1287.75132002131
+12
+-582.640028068573
+22
+-389.307620352121
+32
+1100.8886000213
+13
+-582.640028068573
+23
+-389.307620352121
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-504.954691392474
+20
+-337.399937905583
+30
+1287.75132002131
+11
+-647.39491232121
+21
+-268.159752894786
+31
+1100.8886000213
+12
+-561.075591122516
+22
+-232.405119359447
+32
+1287.75132002131
+13
+-561.075591122516
+23
+-232.405119359447
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-747.450883605455
+20
+0.0
+30
+2408.9276400213
+11
+-733.088824464618
+21
+-145.820433573828
+31
+2549.0746800213
+12
+-733.088824464619
+22
+-145.820433573828
+32
+2408.9276400213
+13
+-733.088824464619
+23
+-145.820433573828
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.088824464618
+20
+-145.820433573828
+30
+2549.0746800213
+11
+-747.450883605455
+21
+0.0
+31
+2408.9276400213
+12
+-747.450883605455
+22
+0.0
+32
+2549.0746800213
+13
+-747.450883605455
+23
+0.0
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-581.445732901797
+20
+-388.509617834311
+30
+628.271001705821
+11
+-601.134230107799
+21
+-248.997950917359
+31
+587.016306884026
+12
+-646.067882633009
+22
+-267.610079200261
+32
+628.271001705821
+13
+-646.067882633009
+23
+-267.610079200261
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-601.134230107799
+20
+-248.997950917359
+30
+587.016306884026
+11
+-581.445732901797
+21
+-388.509617834311
+31
+628.271001705821
+12
+-541.006514010434
+22
+-361.48899563696
+32
+587.016306884026
+13
+-541.006514010434
+23
+-361.48899563696
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-494.478949733692
+20
+-494.478949733692
+30
+628.271001705821
+11
+-611.383516446667
+21
+-408.513405265645
+31
+680.911023534629
+12
+-519.938941830878
+22
+-519.938941830878
+32
+680.911023534629
+13
+-519.938941830878
+23
+-519.938941830878
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-611.383516446667
+20
+-408.513405265645
+30
+680.911023534629
+11
+-494.478949733692
+21
+-494.478949733692
+31
+628.271001705821
+12
+-581.445732901797
+22
+-388.509617834311
+32
+628.271001705821
+13
+-581.445732901797
+23
+-388.509617834311
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-534.658304488796
+20
+-534.658304488796
+30
+741.194313252463
+11
+-632.139755034707
+21
+-422.38228049373
+31
+804.835469255871
+12
+-537.590671780316
+22
+-537.590671780316
+32
+804.835469255871
+13
+-537.590671780316
+23
+-537.590671780316
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-632.139755034707
+20
+-422.38228049373
+30
+804.835469255871
+11
+-534.658304488796
+21
+-534.658304488796
+31
+741.194313252463
+12
+-628.691655879276
+22
+-420.078334296643
+32
+741.194313252463
+13
+-628.691655879276
+23
+-420.078334296643
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-632.139755034707
+20
+-422.38228049373
+30
+804.835469255871
+11
+-528.527588401294
+21
+-528.527588401294
+31
+867.310386884026
+12
+-537.590671780316
+22
+-537.590671780316
+32
+804.835469255871
+13
+-537.590671780316
+23
+-537.590671780316
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+867.310386884026
+11
+-632.139755034707
+21
+-422.38228049373
+31
+804.835469255871
+12
+-621.482696406623
+22
+-415.26146157539
+32
+867.310386884026
+13
+-621.482696406623
+23
+-415.26146157539
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-388.426686378325
+20
+-259.538414235776
+30
+1100.8886000213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+867.310386884026
+12
+-621.482696406623
+22
+-415.26146157539
+32
+867.310386884026
+13
+-621.482696406623
+23
+-415.26146157539
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+867.310386884026
+11
+-388.426686378325
+21
+-259.538414235776
+31
+1100.8886000213
+12
+-330.32974370685
+22
+-330.32974370685
+32
+1100.8886000213
+13
+-330.32974370685
+23
+-330.32974370685
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-164.051007270482
+20
+-824.740107573921
+30
+2408.9276400213
+11
+0.0
+21
+-882.422285845505
+31
+2355.16675535807
+12
+-172.152047899808
+22
+-865.466789057043
+32
+2355.16675535807
+13
+-172.152047899808
+23
+-865.466789057043
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-882.422285845505
+30
+2355.16675535807
+11
+-164.051007270482
+21
+-824.740107573921
+31
+2408.9276400213
+12
+0.0
+22
+-840.897721502147
+32
+2408.9276400213
+13
+0.0
+23
+-840.897721502147
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.822264545374
+20
+-690.822264545374
+30
+1967.39330582966
+11
+-536.042485570819
+21
+-802.244272938819
+31
+1900.55285125842
+12
+-682.252673061849
+22
+-682.252673061849
+32
+1900.55285125842
+13
+-682.252673061849
+23
+-682.252673061849
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-536.042485570819
+20
+-802.244272938819
+30
+1900.55285125842
+11
+-690.822264545374
+21
+-690.822264545374
+31
+1967.39330582966
+12
+-542.775570394861
+22
+-812.321046486997
+32
+1967.39330582966
+13
+-542.775570394861
+23
+-812.321046486997
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+595.634670540536
+20
+-118.479102410621
+30
+1287.75132002131
+11
+700.735203605455
+21
+-1.80477854883065e-13
+31
+1100.8886000213
+12
+687.270773156591
+22
+-136.706656519426
+32
+1100.8886000213
+13
+687.270773156591
+23
+-136.706656519426
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+700.735203605455
+20
+-1.80477854883065e-13
+30
+1100.8886000213
+11
+595.634670540536
+21
+-118.479102410621
+31
+1287.75132002131
+12
+607.303843605455
+22
+-1.80477854883065e-13
+32
+1287.75132002131
+13
+607.303843605455
+23
+-1.80477854883065e-13
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-735.304703143143
+30
+680.911023534629
+11
+136.426435300007
+21
+-685.862005953678
+31
+628.271001705821
+12
+0.0
+22
+-699.298837021391
+32
+628.271001705821
+13
+0.0
+23
+-699.298837021391
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+136.426435300007
+20
+-685.862005953678
+30
+628.271001705821
+11
+0.0
+21
+-735.304703143143
+31
+680.911023534629
+12
+143.450831316169
+22
+-721.176029454062
+32
+680.911023534629
+13
+143.450831316169
+23
+-721.176029454062
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-785.609632890959
+20
+-524.927574441361
+30
+1835.6354447734
+11
+-891.406075310523
+21
+-369.232485975391
+31
+1900.55285125842
+12
+-802.244272938819
+22
+-536.042485570818
+32
+1900.55285125842
+13
+-802.244272938819
+23
+-536.042485570818
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-891.406075310523
+20
+-369.232485975391
+30
+1900.55285125842
+11
+-785.609632890959
+21
+-524.927574441361
+31
+1835.6354447734
+12
+-872.922653615348
+22
+-361.576402030189
+32
+1835.6354447734
+13
+-872.922653615348
+23
+-361.576402030189
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-917.237009349992
+20
+0.0
+30
+2296.83616997626
+11
+-865.466789057043
+21
+-172.152047899808
+31
+2355.16675535807
+12
+-899.612557411553
+22
+-178.9440635192
+32
+2296.83616997626
+13
+-899.612557411553
+23
+-178.9440635192
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-865.466789057043
+20
+-172.152047899808
+30
+2355.16675535807
+11
+-917.237009349992
+21
+0.0
+31
+2296.83616997626
+12
+-882.422285845505
+22
+0.0
+32
+2355.16675535807
+13
+-882.422285845505
+23
+0.0
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-337.688389142806
+20
+-815.251888924486
+30
+2355.16675535807
+11
+-178.9440635192
+21
+-899.612557411553
+31
+2296.83616997626
+12
+-351.011407030345
+22
+-847.416499400322
+32
+2296.83616997626
+13
+-351.011407030345
+23
+-847.416499400322
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-178.9440635192
+20
+-899.612557411553
+30
+2296.83616997626
+11
+-337.688389142806
+21
+-815.251888924486
+31
+2355.16675535807
+12
+-172.152047899808
+22
+-865.466789057043
+32
+2355.16675535807
+13
+-172.152047899808
+23
+-865.466789057043
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-321.797626332425
+20
+-776.88819383121
+30
+2408.9276400213
+11
+-172.152047899808
+21
+-865.466789057043
+31
+2355.16675535807
+12
+-337.688389142806
+22
+-815.251888924486
+32
+2355.16675535807
+13
+-337.688389142806
+23
+-815.251888924486
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-172.152047899808
+20
+-865.466789057043
+30
+2355.16675535807
+11
+-321.797626332425
+21
+-776.88819383121
+31
+2408.9276400213
+12
+-164.051007270482
+22
+-824.740107573921
+32
+2408.9276400213
+13
+-164.051007270482
+23
+-824.740107573921
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-747.450883605455
+20
+0.0
+30
+1287.75132002131
+11
+-641.452721848564
+21
+-127.592879465023
+31
+1474.6140400213
+12
+-733.088824464619
+22
+-145.820433573828
+32
+1287.75132002131
+13
+-733.088824464619
+23
+-145.820433573828
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-641.452721848564
+20
+-127.592879465023
+30
+1474.6140400213
+11
+-747.450883605455
+21
+0.0
+31
+1287.75132002131
+12
+-654.019523605455
+22
+0.0
+32
+1474.6140400213
+13
+-654.019523605455
+23
+0.0
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-623.966782191491
+20
+-623.966782191491
+30
+1715.23764468454
+11
+-467.1777430806
+21
+-699.180902483483
+31
+1661.47676002131
+12
+-594.604481158485
+22
+-594.604481158485
+32
+1661.47676002131
+13
+-594.604481158485
+23
+-594.604481158485
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.1777430806
+20
+-699.180902483483
+30
+1661.47676002131
+11
+-623.966782191491
+21
+-623.966782191491
+31
+1715.23764468454
+12
+-490.247554968878
+22
+-733.707315899088
+32
+1715.23764468454
+13
+-490.247554968878
+23
+-733.707315899088
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-369.232485975391
+20
+-891.406075310522
+30
+2169.85154878419
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-373.87031546612
+22
+-902.602786167016
+32
+2103.01109421295
+13
+-373.87031546612
+23
+-902.602786167016
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-190.597433982906
+20
+-958.19800696011
+30
+2103.01109421295
+11
+-369.232485975391
+21
+-891.406075310522
+31
+2169.85154878419
+12
+-188.233089011893
+22
+-946.311642114328
+32
+2169.85154878419
+13
+-188.233089011893
+23
+-946.311642114328
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+2408.9276400213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+2549.0746800213
+12
+-621.482696406623
+22
+-415.26146157539
+32
+2408.9276400213
+13
+-621.482696406623
+23
+-415.26146157539
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+2549.0746800213
+11
+-690.554572920556
+21
+-286.037069662455
+31
+2408.9276400213
+12
+-690.554572920556
+22
+-286.037069662455
+32
+2549.0746800213
+13
+-690.554572920556
+23
+-286.037069662455
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-388.509617834311
+20
+-581.445732901797
+30
+628.271001705821
+11
+-460.088220979597
+21
+-460.088220979597
+31
+587.016306884026
+12
+-494.478949733692
+22
+-494.478949733692
+32
+628.271001705821
+13
+-494.478949733692
+23
+-494.478949733692
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-460.088220979597
+20
+-460.088220979597
+30
+587.016306884026
+11
+-388.509617834311
+21
+-581.445732901797
+31
+628.271001705821
+12
+-361.48899563696
+22
+-541.006514010434
+32
+587.016306884026
+13
+-361.48899563696
+23
+-541.006514010434
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-542.775570394861
+20
+-812.321046486997
+30
+1967.39330582966
+11
+-369.232485975391
+21
+-891.406075310522
+31
+1900.55285125842
+12
+-536.042485570819
+22
+-802.244272938819
+32
+1900.55285125842
+13
+-536.042485570819
+23
+-802.244272938819
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-369.232485975391
+20
+-891.406075310522
+30
+1900.55285125842
+11
+-542.775570394861
+21
+-812.321046486997
+31
+1967.39330582966
+12
+-373.870315466121
+22
+-902.602786167016
+32
+1967.39330582966
+13
+-373.870315466121
+23
+-902.602786167016
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-778.906875772646
+20
+-154.93421062823
+30
+1474.6140400213
+11
+-647.39491232121
+21
+-268.159752894786
+31
+1661.47676002131
+12
+-733.714233519903
+22
+-303.914386430124
+32
+1474.6140400213
+13
+-733.714233519903
+23
+-303.914386430124
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-647.39491232121
+20
+-268.159752894786
+30
+1661.47676002131
+11
+-778.906875772646
+21
+-154.93421062823
+31
+1474.6140400213
+12
+-687.270773156591
+22
+-136.706656519425
+32
+1661.47676002131
+13
+-687.270773156591
+23
+-136.706656519425
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-369.232485975391
+20
+-891.406075310522
+30
+1900.55285125842
+11
+-184.330051263378
+21
+-926.689746301964
+31
+1835.6354447734
+12
+-361.576402030189
+22
+-872.922653615348
+32
+1835.6354447734
+13
+-361.576402030189
+23
+-872.922653615348
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-184.330051263378
+20
+-926.689746301964
+30
+1835.6354447734
+11
+-369.232485975391
+21
+-891.406075310522
+31
+1900.55285125842
+12
+-188.233089011893
+22
+-946.311642114328
+32
+1900.55285125842
+13
+-188.233089011893
+23
+-946.311642114328
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-698.564739508658
+20
+-289.354989300114
+30
+741.194313252463
+11
+-745.659682232799
+21
+-148.32093265249
+31
+804.835469255871
+12
+-702.396062011173
+22
+-290.941975042481
+32
+804.835469255871
+13
+-702.396062011173
+23
+-290.941975042481
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-745.659682232799
+20
+-148.32093265249
+30
+804.835469255871
+11
+-698.564739508658
+21
+-289.354989300114
+31
+741.194313252463
+12
+-741.592371958341
+22
+-147.511894336929
+32
+741.194313252463
+13
+-741.592371958341
+23
+-147.511894336929
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-127.592879465023
+20
+-641.452721848564
+30
+1474.6140400213
+11
+0.0
+21
+-747.450883605455
+31
+1287.75132002131
+12
+-145.820433573828
+22
+-733.088824464619
+32
+1287.75132002131
+13
+-145.820433573828
+23
+-733.088824464619
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-747.450883605455
+30
+1287.75132002131
+11
+-127.592879465023
+21
+-641.452721848564
+31
+1474.6140400213
+12
+0.0
+22
+-654.019523605455
+32
+1474.6140400213
+13
+0.0
+23
+-654.019523605455
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-981.029283605455
+20
+-1.80477854883065e-13
+30
+2035.2022000213
+11
+-958.19800696011
+21
+-190.597433982906
+31
+2103.01109421295
+12
+-962.179081004757
+22
+-191.38931884584
+32
+2035.2022000213
+13
+-962.179081004757
+23
+-191.38931884584
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-958.19800696011
+20
+-190.597433982906
+30
+2103.01109421295
+11
+-981.029283605455
+21
+-1.80477854883065e-13
+31
+2035.2022000213
+12
+-976.970215709361
+22
+0.0
+32
+2103.01109421295
+13
+-976.970215709361
+23
+0.0
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-865.466789057043
+20
+-172.152047899808
+30
+1715.23764468454
+11
+-917.237009349992
+21
+0.0
+31
+1773.56823006635
+12
+-899.612557411553
+22
+-178.944063519201
+32
+1773.56823006635
+13
+-899.612557411553
+23
+-178.944063519201
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-917.237009349992
+20
+0.0
+30
+1773.56823006635
+11
+-865.466789057043
+21
+-172.152047899808
+31
+1715.23764468454
+12
+-882.422285845505
+22
+0.0
+32
+1715.23764468454
+13
+-882.422285845505
+23
+0.0
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-944.844671731792
+20
+0.0
+30
+2234.76895526921
+11
+-899.612557411553
+21
+-178.9440635192
+31
+2296.83616997626
+12
+-926.689746301964
+22
+-184.330051263378
+32
+2234.76895526921
+13
+-926.689746301964
+23
+-184.330051263378
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-899.612557411553
+20
+-178.9440635192
+30
+2296.83616997626
+11
+-944.844671731792
+21
+0.0
+31
+2234.76895526921
+12
+-917.237009349992
+22
+0.0
+32
+2296.83616997626
+13
+-917.237009349992
+23
+0.0
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-762.654700553784
+20
+-509.589579018778
+30
+1773.56823006635
+11
+-872.922653615348
+21
+-361.576402030189
+31
+1835.6354447734
+12
+-785.609632890959
+22
+-524.927574441361
+32
+1835.6354447734
+13
+-785.609632890959
+23
+-524.927574441361
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-872.922653615348
+20
+-361.576402030189
+30
+1835.6354447734
+11
+-762.654700553784
+21
+-509.589579018778
+31
+1773.56823006635
+12
+-847.416499400322
+22
+-351.011407030345
+32
+1773.56823006635
+13
+-847.416499400322
+23
+-351.011407030345
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-679.332965393238
+20
+-281.388927633011
+30
+680.911023534629
+11
+-741.592371958341
+21
+-147.511894336929
+31
+741.194313252463
+12
+-698.564739508658
+22
+-289.354989300114
+32
+741.194313252463
+13
+-698.564739508658
+23
+-289.354989300114
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-741.592371958341
+20
+-147.511894336929
+30
+741.194313252463
+11
+-679.332965393238
+21
+-281.388927633011
+31
+680.911023534629
+12
+-721.176029454062
+22
+-143.450831316169
+32
+680.911023534629
+13
+-721.176029454062
+23
+-143.450831316169
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-389.307620352121
+20
+-582.640028068573
+30
+1661.47676002131
+11
+-303.914386430124
+21
+-733.714233519903
+31
+1474.6140400213
+12
+-441.21530279866
+22
+-660.325364744672
+32
+1474.6140400213
+13
+-441.21530279866
+23
+-660.325364744672
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-303.914386430124
+20
+-733.714233519903
+30
+1474.6140400213
+11
+-389.307620352121
+21
+-582.640028068573
+31
+1661.47676002131
+12
+-268.159752894786
+22
+-647.39491232121
+32
+1661.47676002131
+13
+-268.159752894786
+23
+-647.39491232121
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-594.604481158485
+20
+-594.604481158485
+30
+1661.47676002131
+11
+-733.707315899088
+21
+-490.247554968877
+31
+1715.23764468454
+12
+-623.966782191491
+22
+-623.966782191491
+32
+1715.23764468454
+13
+-623.966782191491
+23
+-623.966782191491
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.707315899088
+20
+-490.247554968877
+30
+1715.23764468454
+11
+-594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+-699.180902483484
+22
+-467.1777430806
+32
+1661.47676002131
+13
+-699.180902483484
+23
+-467.1777430806
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-623.966782191491
+20
+-623.966782191491
+30
+1715.23764468454
+11
+-762.654700553784
+21
+-509.589579018778
+31
+1773.56823006635
+12
+-648.584509266648
+22
+-648.584509266648
+32
+1773.56823006635
+13
+-648.584509266648
+23
+-648.584509266648
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-762.654700553784
+20
+-509.589579018778
+30
+1773.56823006635
+11
+-623.966782191491
+21
+-623.966782191491
+31
+1715.23764468454
+12
+-733.707315899088
+22
+-490.247554968877
+32
+1715.23764468454
+13
+-733.707315899088
+23
+-490.247554968877
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-519.938941830878
+20
+-519.938941830878
+30
+680.911023534629
+11
+-628.691655879276
+21
+-420.078334296643
+31
+741.194313252463
+12
+-534.658304488796
+22
+-534.658304488796
+32
+741.194313252463
+13
+-534.658304488796
+23
+-534.658304488796
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-628.691655879276
+20
+-420.078334296643
+30
+741.194313252463
+11
+-519.938941830878
+21
+-519.938941830878
+31
+680.911023534629
+12
+-611.383516446667
+22
+-408.513405265645
+32
+680.911023534629
+13
+-611.383516446667
+23
+-408.513405265645
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-685.862005953678
+20
+-136.426435300007
+30
+628.271001705821
+11
+-650.663001997455
+21
+0.0
+31
+587.016306884026
+12
+-699.298837021391
+22
+0.0
+32
+628.271001705821
+13
+-699.298837021391
+23
+0.0
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-650.663001997455
+20
+0.0
+30
+587.016306884026
+11
+-685.862005953678
+21
+-136.426435300007
+31
+628.271001705821
+12
+-638.160694862082
+22
+-126.938054583664
+32
+587.016306884026
+13
+-638.160694862082
+23
+-126.938054583664
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.822264545374
+20
+-690.822264545373
+30
+2103.01109421295
+11
+-545.030667691736
+21
+-815.696038096871
+31
+2035.2022000213
+12
+-693.692458979998
+22
+-693.692458979998
+32
+2035.2022000213
+13
+-693.692458979998
+23
+-693.692458979998
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-545.030667691736
+20
+-815.696038096871
+30
+2035.2022000213
+11
+-690.822264545374
+21
+-690.822264545373
+31
+2103.01109421295
+12
+-542.775570394861
+22
+-812.321046486996
+32
+2103.01109421295
+13
+-542.775570394861
+23
+-812.321046486996
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-682.252673061849
+20
+-682.252673061848
+30
+2169.85154878419
+11
+-542.775570394861
+21
+-812.321046486996
+31
+2103.01109421295
+12
+-690.822264545374
+22
+-690.822264545373
+32
+2103.01109421295
+13
+-690.822264545374
+23
+-690.822264545373
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-542.775570394861
+20
+-812.321046486996
+30
+2103.01109421295
+11
+-682.252673061849
+21
+-682.252673061848
+31
+2169.85154878419
+12
+-536.042485570818
+22
+-802.244272938819
+32
+2169.85154878419
+13
+-536.042485570818
+23
+-802.244272938819
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-747.450883605455
+30
+867.310386884026
+11
+148.32093265249
+21
+-745.659682232799
+31
+804.835469255871
+12
+0.0
+22
+-760.268019036986
+32
+804.835469255871
+13
+0.0
+23
+-760.268019036986
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+148.32093265249
+20
+-745.659682232799
+30
+804.835469255871
+11
+0.0
+21
+-747.450883605455
+31
+867.310386884026
+12
+145.820433573828
+22
+-733.088824464618
+32
+867.310386884026
+13
+145.820433573828
+23
+-733.088824464618
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+91.1377712474136
+20
+-458.180516616454
+30
+1100.8886000213
+11
+0.0
+21
+-747.450883605455
+31
+867.310386884026
+12
+0.0
+22
+-467.156803605456
+32
+1100.8886000213
+13
+0.0
+23
+-467.156803605456
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-747.450883605455
+30
+867.310386884026
+11
+91.1377712474136
+21
+-458.180516616454
+31
+1100.8886000213
+12
+145.820433573828
+22
+-733.088824464618
+32
+867.310386884026
+13
+145.820433573828
+23
+-733.088824464618
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-847.416499400322
+20
+-351.011407030345
+30
+1773.56823006635
+11
+-926.689746301964
+21
+-184.330051263378
+31
+1835.6354447734
+12
+-872.922653615348
+22
+-361.576402030189
+32
+1835.6354447734
+13
+-872.922653615348
+23
+-361.576402030189
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-926.689746301964
+20
+-184.330051263378
+30
+1835.6354447734
+11
+-847.416499400322
+21
+-351.011407030345
+31
+1773.56823006635
+12
+-899.612557411553
+22
+-178.944063519201
+32
+1773.56823006635
+13
+-899.612557411553
+23
+-178.944063519201
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-190.597433982906
+20
+-958.19800696011
+30
+1967.39330582966
+11
+0.0
+21
+-964.850983209364
+31
+1900.55285125842
+12
+-188.233089011893
+22
+-946.311642114328
+32
+1900.55285125842
+13
+-188.233089011893
+23
+-946.311642114328
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-964.850983209364
+30
+1900.55285125842
+11
+-190.597433982906
+21
+-958.19800696011
+31
+1967.39330582966
+12
+0.0
+22
+-976.970215709361
+32
+1967.39330582966
+13
+0.0
+23
+-976.970215709361
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-756.121025443459
+30
+741.194313252463
+11
+143.450831316169
+21
+-721.176029454062
+31
+680.911023534629
+12
+0.0
+22
+-735.304703143143
+32
+680.911023534629
+13
+0.0
+23
+-735.304703143143
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+143.450831316169
+20
+-721.176029454062
+30
+680.911023534629
+11
+0.0
+21
+-756.121025443459
+31
+741.194313252463
+12
+147.511894336929
+22
+-741.592371958341
+32
+741.194313252463
+13
+147.511894336929
+23
+-741.592371958341
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-760.268019036986
+30
+804.835469255871
+11
+147.511894336929
+21
+-741.592371958341
+31
+741.194313252463
+12
+0.0
+22
+-756.121025443459
+32
+741.194313252463
+13
+0.0
+23
+-756.121025443459
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+147.511894336929
+20
+-741.592371958341
+30
+741.194313252463
+11
+0.0
+21
+-760.268019036986
+31
+804.835469255871
+12
+148.32093265249
+22
+-745.659682232799
+32
+804.835469255871
+13
+148.32093265249
+23
+-745.659682232799
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-760.268019036986
+20
+0.0
+30
+804.835469255871
+11
+-733.088824464618
+21
+-145.820433573828
+31
+867.310386884026
+12
+-745.659682232799
+22
+-148.32093265249
+32
+804.835469255871
+13
+-745.659682232799
+23
+-148.32093265249
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.088824464618
+20
+-145.820433573828
+30
+867.310386884026
+11
+-760.268019036986
+21
+0.0
+31
+804.835469255871
+12
+-747.450883605455
+22
+0.0
+32
+867.310386884026
+13
+-747.450883605455
+23
+0.0
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-872.922653615348
+20
+-361.576402030189
+30
+1835.6354447734
+11
+-946.311642114328
+21
+-188.233089011893
+31
+1900.55285125842
+12
+-891.406075310523
+22
+-369.232485975391
+32
+1900.55285125842
+13
+-891.406075310523
+23
+-369.232485975391
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-946.311642114328
+20
+-188.233089011893
+30
+1900.55285125842
+11
+-872.922653615348
+21
+-361.576402030189
+31
+1835.6354447734
+12
+-926.689746301964
+22
+-184.330051263378
+32
+1835.6354447734
+13
+-926.689746301964
+23
+-184.330051263378
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+641.452721848564
+20
+-127.592879465023
+30
+1474.6140400213
+11
+747.450883605455
+21
+-1.80477854883065e-13
+31
+1287.75132002131
+12
+733.088824464619
+22
+-145.820433573828
+32
+1287.75132002131
+13
+733.088824464619
+23
+-145.820433573828
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+747.450883605455
+20
+-1.80477854883065e-13
+30
+1287.75132002131
+11
+641.452721848564
+21
+-127.592879465023
+31
+1474.6140400213
+12
+654.019523605455
+22
+-1.80477854883065e-13
+32
+1474.6140400213
+13
+654.019523605455
+23
+-1.80477854883065e-13
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-745.659682232799
+20
+-148.32093265249
+30
+804.835469255871
+11
+-690.554572920556
+21
+-286.037069662455
+31
+867.310386884026
+12
+-702.396062011173
+22
+-290.941975042481
+32
+804.835469255871
+13
+-702.396062011173
+23
+-290.941975042481
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.554572920556
+20
+-286.037069662455
+30
+867.310386884026
+11
+-745.659682232799
+21
+-148.32093265249
+31
+804.835469255871
+12
+-733.088824464618
+22
+-145.820433573828
+32
+867.310386884026
+13
+-733.088824464618
+23
+-145.820433573828
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-373.87031546612
+20
+-902.602786167016
+30
+2103.01109421295
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-375.423653500801
+22
+-906.352875917291
+32
+2035.2022000213
+13
+-375.423653500801
+23
+-906.352875917291
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-191.38931884584
+20
+-962.179081004757
+30
+2035.2022000213
+11
+-373.87031546612
+21
+-902.602786167016
+31
+2103.01109421295
+12
+-190.597433982906
+22
+-958.19800696011
+32
+2103.01109421295
+13
+-190.597433982906
+23
+-958.19800696011
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-259.538414235776
+20
+-388.426686378324
+30
+1100.8886000213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+867.310386884026
+12
+-415.26146157539
+22
+-621.482696406622
+32
+867.310386884026
+13
+-415.26146157539
+23
+-621.482696406622
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+867.310386884026
+11
+-259.538414235776
+21
+-388.426686378324
+31
+1100.8886000213
+12
+-178.77316905644
+22
+-431.596609324475
+32
+1100.8886000213
+13
+-178.77316905644
+23
+-431.596609324475
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-628.691655879276
+20
+-420.078334296643
+30
+741.194313252463
+11
+-702.396062011173
+21
+-290.941975042481
+31
+804.835469255871
+12
+-632.139755034707
+22
+-422.38228049373
+32
+804.835469255871
+13
+-632.139755034707
+23
+-422.38228049373
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-702.396062011173
+20
+-290.941975042481
+30
+804.835469255871
+11
+-628.691655879276
+21
+-420.078334296643
+31
+741.194313252463
+12
+-698.564739508658
+22
+-289.354989300114
+32
+741.194313252463
+13
+-698.564739508658
+23
+-289.354989300114
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-794.166563605455
+20
+0.0
+30
+1474.6140400213
+11
+-687.270773156591
+21
+-136.706656519425
+31
+1661.47676002131
+12
+-778.906875772646
+22
+-154.93421062823
+32
+1474.6140400213
+13
+-778.906875772646
+23
+-154.93421062823
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-687.270773156591
+20
+-136.706656519425
+30
+1661.47676002131
+11
+-794.166563605455
+21
+0.0
+31
+1474.6140400213
+12
+-700.735203605456
+22
+0.0
+32
+1661.47676002131
+13
+-700.735203605456
+23
+0.0
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-337.399937905583
+20
+-504.954691392473
+30
+1287.75132002131
+11
+-268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+-389.307620352121
+22
+-582.640028068573
+32
+1100.8886000213
+13
+-389.307620352121
+23
+-582.640028068573
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-268.159752894786
+20
+-647.39491232121
+30
+1100.8886000213
+11
+-337.399937905583
+21
+-504.954691392473
+31
+1287.75132002131
+12
+-232.405119359447
+22
+-561.075591122516
+32
+1287.75132002131
+13
+-232.405119359447
+23
+-561.075591122516
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-976.970215709361
+20
+0.0
+30
+2103.01109421295
+11
+-946.311642114328
+21
+-188.233089011893
+31
+2169.85154878419
+12
+-958.19800696011
+22
+-190.597433982906
+32
+2103.01109421295
+13
+-958.19800696011
+23
+-190.597433982906
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-946.311642114328
+20
+-188.233089011893
+30
+2169.85154878419
+11
+-976.970215709361
+21
+0.0
+31
+2103.01109421295
+12
+-964.850983209364
+22
+0.0
+32
+2169.85154878419
+13
+-964.850983209364
+23
+0.0
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+679.332965393237
+20
+-281.388927633011
+30
+680.911023534629
+11
+581.445732901797
+21
+-388.509617834311
+31
+628.271001705821
+12
+611.383516446667
+22
+-408.513405265645
+32
+680.911023534629
+13
+611.383516446667
+23
+-408.513405265645
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+581.445732901797
+20
+-388.509617834311
+30
+628.271001705821
+11
+679.332965393237
+21
+-281.388927633011
+31
+680.911023534629
+12
+646.067882633009
+22
+-267.610079200261
+32
+628.271001705821
+13
+646.067882633009
+23
+-267.610079200261
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-145.820433573828
+20
+-733.088824464618
+30
+2549.0746800213
+11
+0.0
+21
+-747.450883605455
+31
+2408.9276400213
+12
+-145.820433573828
+22
+-733.088824464619
+32
+2408.9276400213
+13
+-145.820433573828
+23
+-733.088824464619
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-747.450883605455
+30
+2408.9276400213
+11
+-145.820433573828
+21
+-733.088824464618
+31
+2549.0746800213
+12
+0.0
+22
+-747.450883605455
+32
+2549.0746800213
+13
+0.0
+23
+-747.450883605455
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+1287.75132002131
+11
+-462.461640169813
+21
+-462.461640169813
+31
+1474.6140400213
+12
+-528.527588401294
+22
+-528.527588401294
+32
+1287.75132002131
+13
+-528.527588401294
+23
+-528.527588401294
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-462.461640169813
+20
+-462.461640169813
+30
+1474.6140400213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+-543.797359730523
+22
+-363.353779128852
+32
+1474.6140400213
+13
+-543.797359730523
+23
+-363.353779128852
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-668.106074549528
+20
+-668.106074549528
+30
+2234.76895526921
+11
+-536.042485570818
+21
+-802.244272938819
+31
+2169.85154878419
+12
+-682.252673061849
+22
+-682.252673061848
+32
+2169.85154878419
+13
+-682.252673061849
+23
+-682.252673061848
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-536.042485570818
+20
+-802.244272938819
+30
+2169.85154878419
+11
+-668.106074549528
+21
+-668.106074549528
+31
+2234.76895526921
+12
+-524.927574441361
+22
+-785.609632890959
+32
+2234.76895526921
+13
+-524.927574441361
+23
+-785.609632890959
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-646.067882633009
+20
+-267.610079200261
+30
+628.271001705821
+11
+-638.160694862082
+21
+-126.938054583664
+31
+587.016306884026
+12
+-685.862005953678
+22
+-136.426435300007
+32
+628.271001705821
+13
+-685.862005953678
+23
+-136.426435300007
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-638.160694862082
+20
+-126.938054583664
+30
+587.016306884026
+11
+-646.067882633009
+21
+-267.610079200261
+31
+628.271001705821
+12
+-601.134230107799
+22
+-248.997950917359
+32
+587.016306884026
+13
+-601.134230107799
+23
+-248.997950917359
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.156803605456
+20
+0.0
+30
+1100.8886000213
+11
+-733.088824464618
+21
+-145.820433573828
+31
+867.310386884026
+12
+-747.450883605455
+22
+0.0
+32
+867.310386884026
+13
+-747.450883605455
+23
+0.0
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-733.088824464618
+20
+-145.820433573828
+30
+867.310386884026
+11
+-467.156803605456
+21
+0.0
+31
+1100.8886000213
+12
+-458.180516616454
+22
+-91.1377712474136
+32
+1100.8886000213
+13
+-458.180516616454
+23
+-91.1377712474136
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-891.406075310523
+20
+-369.232485975391
+30
+1900.55285125842
+11
+-958.198006960111
+21
+-190.597433982906
+31
+1967.39330582966
+12
+-902.602786167016
+22
+-373.87031546612
+32
+1967.39330582966
+13
+-902.602786167016
+23
+-373.87031546612
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-958.198006960111
+20
+-190.597433982906
+30
+1967.39330582966
+11
+-891.406075310523
+21
+-369.232485975391
+31
+1900.55285125842
+12
+-946.311642114328
+22
+-188.233089011893
+32
+1900.55285125842
+13
+-946.311642114328
+23
+-188.233089011893
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-648.584509266648
+20
+-648.584509266648
+30
+1773.56823006635
+11
+-490.247554968878
+21
+-733.707315899088
+31
+1715.23764468454
+12
+-623.966782191491
+22
+-623.966782191491
+32
+1715.23764468454
+13
+-623.966782191491
+23
+-623.966782191491
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-490.247554968878
+20
+-733.707315899088
+30
+1715.23764468454
+11
+-648.584509266648
+21
+-648.584509266648
+31
+1773.56823006635
+12
+-509.589579018779
+22
+-762.654700553784
+32
+1773.56823006635
+13
+-509.589579018779
+23
+-762.654700553784
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-668.106074549528
+20
+-668.106074549528
+30
+1835.6354447734
+11
+-509.589579018779
+21
+-762.654700553784
+31
+1773.56823006635
+12
+-648.584509266648
+22
+-648.584509266648
+32
+1773.56823006635
+13
+-648.584509266648
+23
+-648.584509266648
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-509.589579018779
+20
+-762.654700553784
+30
+1773.56823006635
+11
+-668.106074549528
+21
+-668.106074549528
+31
+1835.6354447734
+12
+-524.927574441361
+22
+-785.609632890959
+32
+1835.6354447734
+13
+-524.927574441361
+23
+-785.609632890959
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-415.26146157539
+20
+-621.482696406622
+30
+867.310386884026
+11
+-290.941975042481
+21
+-702.396062011173
+31
+804.835469255871
+12
+-422.38228049373
+22
+-632.139755034707
+32
+804.835469255871
+13
+-422.38228049373
+23
+-632.139755034707
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-290.941975042481
+20
+-702.396062011173
+30
+804.835469255871
+11
+-415.26146157539
+21
+-621.482696406622
+31
+867.310386884026
+12
+-286.037069662455
+22
+-690.554572920556
+32
+867.310386884026
+13
+-286.037069662455
+23
+-690.554572920556
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-648.584509266648
+20
+-648.584509266648
+30
+1773.56823006635
+11
+-785.609632890959
+21
+-524.927574441361
+31
+1835.6354447734
+12
+-668.106074549528
+22
+-668.106074549528
+32
+1835.6354447734
+13
+-668.106074549528
+23
+-668.106074549528
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-785.609632890959
+20
+-524.927574441361
+30
+1835.6354447734
+11
+-648.584509266648
+21
+-648.584509266648
+31
+1773.56823006635
+12
+-762.654700553784
+22
+-509.589579018778
+32
+1773.56823006635
+13
+-762.654700553784
+23
+-509.589579018778
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-660.325364744673
+20
+-441.215302798659
+30
+1474.6140400213
+11
+-495.494614285554
+21
+-495.494614285554
+31
+1661.47676002131
+12
+-561.560562517035
+22
+-561.560562517035
+32
+1474.6140400213
+13
+-561.560562517035
+23
+-561.560562517035
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-495.494614285554
+20
+-495.494614285554
+30
+1661.47676002131
+11
+-660.325364744673
+21
+-441.215302798659
+31
+1474.6140400213
+12
+-582.640028068573
+22
+-389.307620352121
+32
+1661.47676002131
+13
+-582.640028068573
+23
+-389.307620352121
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-682.252673061849
+20
+-682.252673061849
+30
+1900.55285125842
+11
+-812.321046486997
+21
+-542.775570394861
+31
+1967.39330582966
+12
+-690.822264545374
+22
+-690.822264545374
+32
+1967.39330582966
+13
+-690.822264545374
+23
+-690.822264545374
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-812.321046486997
+20
+-542.775570394861
+30
+1967.39330582966
+11
+-682.252673061849
+21
+-682.252673061849
+31
+1900.55285125842
+12
+-802.244272938819
+22
+-536.042485570818
+32
+1900.55285125842
+13
+-802.244272938819
+23
+-536.042485570818
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-690.822264545374
+20
+-690.822264545374
+30
+1967.39330582966
+11
+-815.696038096872
+21
+-545.030667691736
+31
+2035.2022000213
+12
+-693.692458979998
+22
+-693.692458979998
+32
+2035.2022000213
+13
+-693.692458979998
+23
+-693.692458979998
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-815.696038096872
+20
+-545.030667691736
+30
+2035.2022000213
+11
+-690.822264545374
+21
+-690.822264545374
+31
+1967.39330582966
+12
+-812.321046486997
+22
+-542.775570394861
+32
+1967.39330582966
+13
+-812.321046486997
+23
+-542.775570394861
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-648.584509266648
+20
+-648.584509266648
+30
+2296.83616997626
+11
+-524.927574441361
+21
+-785.609632890959
+31
+2234.76895526921
+12
+-668.106074549528
+22
+-668.106074549528
+32
+2234.76895526921
+13
+-668.106074549528
+23
+-668.106074549528
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-524.927574441361
+20
+-785.609632890959
+30
+2234.76895526921
+11
+-648.584509266648
+21
+-648.584509266648
+31
+2296.83616997626
+12
+-509.589579018778
+22
+-762.654700553784
+32
+2296.83616997626
+13
+-509.589579018778
+23
+-762.654700553784
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-623.966782191491
+20
+-623.96678219149
+30
+2355.16675535807
+11
+-509.589579018778
+21
+-762.654700553784
+31
+2296.83616997626
+12
+-648.584509266648
+22
+-648.584509266648
+32
+2296.83616997626
+13
+-648.584509266648
+23
+-648.584509266648
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-509.589579018778
+20
+-762.654700553784
+30
+2296.83616997626
+11
+-623.966782191491
+21
+-623.96678219149
+31
+2355.16675535807
+12
+-490.247554968877
+22
+-733.707315899088
+32
+2355.16675535807
+13
+-490.247554968877
+23
+-733.707315899088
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-495.494614285554
+20
+-495.494614285554
+30
+1661.47676002131
+11
+-441.21530279866
+21
+-660.325364744672
+31
+1474.6140400213
+12
+-561.560562517035
+22
+-561.560562517035
+32
+1474.6140400213
+13
+-561.560562517035
+23
+-561.560562517035
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-441.21530279866
+20
+-660.325364744672
+30
+1474.6140400213
+11
+-495.494614285554
+21
+-495.494614285554
+31
+1661.47676002131
+12
+-389.307620352121
+22
+-582.640028068573
+32
+1661.47676002131
+13
+-389.307620352121
+23
+-582.640028068573
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-431.596609324475
+20
+-178.77316905644
+30
+1100.8886000213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+867.310386884026
+12
+-690.554572920556
+22
+-286.037069662455
+32
+867.310386884026
+13
+-690.554572920556
+23
+-286.037069662455
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+867.310386884026
+11
+-431.596609324475
+21
+-178.77316905644
+31
+1100.8886000213
+12
+-388.426686378325
+22
+-259.538414235776
+32
+1100.8886000213
+13
+-388.426686378325
+23
+-259.538414235776
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-408.513405265646
+20
+-611.383516446667
+30
+680.911023534629
+11
+-267.610079200261
+21
+-646.067882633009
+31
+628.271001705821
+12
+-388.509617834311
+22
+-581.445732901797
+32
+628.271001705821
+13
+-388.509617834311
+23
+-581.445732901797
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-267.610079200261
+20
+-646.067882633009
+30
+628.271001705821
+11
+-408.513405265646
+21
+-611.383516446667
+31
+680.911023534629
+12
+-281.388927633011
+22
+-679.332965393238
+32
+680.911023534629
+13
+-281.388927633011
+23
+-679.332965393238
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-420.078334296643
+20
+-628.691655879275
+30
+741.194313252463
+11
+-281.388927633011
+21
+-679.332965393238
+31
+680.911023534629
+12
+-408.513405265646
+22
+-611.383516446667
+32
+680.911023534629
+13
+-408.513405265646
+23
+-611.383516446667
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-281.388927633011
+20
+-679.332965393238
+30
+680.911023534629
+11
+-420.078334296643
+21
+-628.691655879275
+31
+741.194313252463
+12
+-289.354989300114
+22
+-698.564739508657
+32
+741.194313252463
+13
+-289.354989300114
+23
+-698.564739508657
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-422.38228049373
+20
+-632.139755034707
+30
+804.835469255871
+11
+-289.354989300114
+21
+-698.564739508657
+31
+741.194313252463
+12
+-420.078334296643
+22
+-628.691655879275
+32
+741.194313252463
+13
+-420.078334296643
+23
+-628.691655879275
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-289.354989300114
+20
+-698.564739508657
+30
+741.194313252463
+11
+-422.38228049373
+21
+-632.139755034707
+31
+804.835469255871
+12
+-290.941975042481
+22
+-702.396062011173
+32
+804.835469255871
+13
+-290.941975042481
+23
+-702.396062011173
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-917.237009349992
+30
+1773.56823006635
+11
+172.152047899807
+21
+-865.466789057044
+31
+1715.23764468454
+12
+0.0
+22
+-882.422285845505
+32
+1715.23764468454
+13
+0.0
+23
+-882.422285845505
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+172.152047899807
+20
+-865.466789057044
+30
+1715.23764468454
+11
+0.0
+21
+-917.237009349992
+31
+1773.56823006635
+12
+178.9440635192
+22
+-899.612557411553
+32
+1773.56823006635
+13
+178.9440635192
+23
+-899.612557411553
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+-490.247554968877
+21
+-733.707315899088
+31
+2355.16675535807
+12
+-623.966782191491
+22
+-623.96678219149
+32
+2355.16675535807
+13
+-623.966782191491
+23
+-623.96678219149
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-490.247554968877
+20
+-733.707315899088
+30
+2355.16675535807
+11
+-594.604481158485
+21
+-594.604481158485
+31
+2408.9276400213
+12
+-467.1777430806
+22
+-699.180902483483
+32
+2408.9276400213
+13
+-467.1777430806
+23
+-699.180902483483
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+-415.26146157539
+21
+-621.482696406623
+31
+2408.9276400213
+12
+-528.527588401294
+22
+-528.527588401294
+32
+2408.9276400213
+13
+-528.527588401294
+23
+-528.527588401294
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-415.26146157539
+20
+-621.482696406623
+30
+2408.9276400213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+2549.0746800213
+12
+-415.26146157539
+22
+-621.482696406622
+32
+2549.0746800213
+13
+-415.26146157539
+23
+-621.482696406622
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-621.482696406623
+20
+-415.26146157539
+30
+2408.9276400213
+11
+-528.527588401294
+21
+-528.527588401294
+31
+2549.0746800213
+12
+-528.527588401294
+22
+-528.527588401294
+32
+2408.9276400213
+13
+-528.527588401294
+23
+-528.527588401294
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+-621.482696406623
+21
+-415.26146157539
+31
+2408.9276400213
+12
+-621.482696406623
+22
+-415.26146157539
+32
+2549.0746800213
+13
+-621.482696406623
+23
+-415.26146157539
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+687.270773156591
+20
+-136.706656519426
+30
+1661.47676002131
+11
+794.166563605455
+21
+-1.80477854883065e-13
+31
+1474.6140400213
+12
+778.906875772646
+22
+-154.934210628231
+32
+1474.6140400213
+13
+778.906875772646
+23
+-154.934210628231
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+794.166563605455
+20
+-1.80477854883065e-13
+30
+1474.6140400213
+11
+687.270773156591
+21
+-136.706656519426
+31
+1661.47676002131
+12
+700.735203605455
+22
+-1.80477854883065e-13
+32
+1661.47676002131
+13
+700.735203605455
+23
+-1.80477854883065e-13
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+882.422285845505
+20
+-1.80477854883065e-13
+30
+1715.23764468454
+11
+824.740107573921
+21
+-164.051007270483
+31
+1661.47676002131
+12
+865.466789057043
+22
+-172.152047899808
+32
+1715.23764468454
+13
+865.466789057043
+23
+-172.152047899808
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+824.740107573921
+20
+-164.051007270483
+30
+1661.47676002131
+11
+882.422285845505
+21
+-1.80477854883065e-13
+31
+1715.23764468454
+12
+840.897721502147
+22
+-1.80477854883065e-13
+32
+1661.47676002131
+13
+840.897721502147
+23
+-1.80477854883065e-13
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-524.927574441361
+20
+-785.609632890959
+30
+2234.76895526921
+11
+-369.232485975391
+21
+-891.406075310522
+31
+2169.85154878419
+12
+-536.042485570818
+22
+-802.244272938819
+32
+2169.85154878419
+13
+-536.042485570818
+23
+-802.244272938819
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-369.232485975391
+20
+-891.406075310522
+30
+2169.85154878419
+11
+-524.927574441361
+21
+-785.609632890959
+31
+2234.76895526921
+12
+-361.576402030189
+22
+-872.922653615348
+32
+2234.76895526921
+13
+-361.576402030189
+23
+-872.922653615348
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-509.589579018778
+20
+-762.654700553784
+30
+2296.83616997626
+11
+-361.576402030189
+21
+-872.922653615348
+31
+2234.76895526921
+12
+-524.927574441361
+22
+-785.609632890959
+32
+2234.76895526921
+13
+-524.927574441361
+23
+-785.609632890959
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-361.576402030189
+20
+-872.922653615348
+30
+2234.76895526921
+11
+-509.589579018778
+21
+-762.654700553784
+31
+2296.83616997626
+12
+-351.011407030345
+22
+-847.416499400322
+32
+2296.83616997626
+13
+-351.011407030345
+23
+-847.416499400322
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-490.247554968878
+20
+-733.707315899088
+30
+1715.23764468454
+11
+-321.797626332425
+21
+-776.88819383121
+31
+1661.47676002131
+12
+-467.1777430806
+22
+-699.180902483483
+32
+1661.47676002131
+13
+-467.1777430806
+23
+-699.180902483483
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-321.797626332425
+20
+-776.88819383121
+30
+1661.47676002131
+11
+-490.247554968878
+21
+-733.707315899088
+31
+1715.23764468454
+12
+-337.688389142806
+22
+-815.251888924487
+32
+1715.23764468454
+13
+-337.688389142806
+23
+-815.251888924487
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-494.478949733692
+20
+-494.478949733692
+30
+628.271001705821
+11
+-541.006514010434
+21
+-361.48899563696
+31
+587.016306884026
+12
+-581.445732901797
+22
+-388.509617834311
+32
+628.271001705821
+13
+-581.445732901797
+23
+-388.509617834311
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-541.006514010434
+20
+-361.48899563696
+30
+587.016306884026
+11
+-494.478949733692
+21
+-494.478949733692
+31
+628.271001705821
+12
+-460.088220979597
+22
+-460.088220979597
+32
+587.016306884026
+13
+-460.088220979597
+23
+-460.088220979597
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-509.589579018779
+20
+-762.654700553784
+30
+1773.56823006635
+11
+-337.688389142806
+21
+-815.251888924487
+31
+1715.23764468454
+12
+-490.247554968878
+22
+-733.707315899088
+32
+1715.23764468454
+13
+-490.247554968878
+23
+-733.707315899088
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-337.688389142806
+20
+-815.251888924487
+30
+1715.23764468454
+11
+-509.589579018779
+21
+-762.654700553784
+31
+1773.56823006635
+12
+-351.011407030345
+22
+-847.416499400322
+32
+1773.56823006635
+13
+-351.011407030345
+23
+-847.416499400322
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-524.927574441361
+20
+-785.609632890959
+30
+1835.6354447734
+11
+-351.011407030345
+21
+-847.416499400322
+31
+1773.56823006635
+12
+-509.589579018779
+22
+-762.654700553784
+32
+1773.56823006635
+13
+-509.589579018779
+23
+-762.654700553784
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-351.011407030345
+20
+-847.416499400322
+30
+1773.56823006635
+11
+-524.927574441361
+21
+-785.609632890959
+31
+1835.6354447734
+12
+-361.576402030189
+22
+-872.922653615348
+32
+1835.6354447734
+13
+-361.576402030189
+23
+-872.922653615348
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-536.042485570819
+20
+-802.244272938819
+30
+1900.55285125842
+11
+-361.576402030189
+21
+-872.922653615348
+31
+1835.6354447734
+12
+-524.927574441361
+22
+-785.609632890959
+32
+1835.6354447734
+13
+-524.927574441361
+23
+-785.609632890959
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-361.576402030189
+20
+-872.922653615348
+30
+1835.6354447734
+11
+-536.042485570819
+21
+-802.244272938819
+31
+1900.55285125842
+12
+-369.232485975391
+22
+-891.406075310522
+32
+1900.55285125842
+13
+-369.232485975391
+23
+-891.406075310522
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-700.735203605455
+30
+1661.47676002131
+11
+154.93421062823
+21
+-778.906875772646
+31
+1474.6140400213
+12
+0.0
+22
+-794.166563605455
+32
+1474.6140400213
+13
+0.0
+23
+-794.166563605455
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+154.93421062823
+20
+-778.906875772646
+30
+1474.6140400213
+11
+0.0
+21
+-700.735203605455
+31
+1661.47676002131
+12
+136.706656519425
+22
+-687.270773156591
+32
+1661.47676002131
+13
+136.706656519425
+23
+-687.270773156591
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-542.775570394861
+20
+-812.321046486996
+30
+2103.01109421295
+11
+-375.423653500801
+21
+-906.352875917291
+31
+2035.2022000213
+12
+-545.030667691736
+22
+-815.696038096871
+32
+2035.2022000213
+13
+-545.030667691736
+23
+-815.696038096871
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-375.423653500801
+20
+-906.352875917291
+30
+2035.2022000213
+11
+-542.775570394861
+21
+-812.321046486996
+31
+2103.01109421295
+12
+-373.87031546612
+22
+-902.602786167016
+32
+2103.01109421295
+13
+-373.87031546612
+23
+-902.602786167016
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-536.042485570818
+20
+-802.244272938819
+30
+2169.85154878419
+11
+-373.87031546612
+21
+-902.602786167016
+31
+2103.01109421295
+12
+-542.775570394861
+22
+-812.321046486996
+32
+2103.01109421295
+13
+-542.775570394861
+23
+-812.321046486996
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-373.87031546612
+20
+-902.602786167016
+30
+2103.01109421295
+11
+-536.042485570818
+21
+-802.244272938819
+31
+2169.85154878419
+12
+-369.232485975391
+22
+-891.406075310522
+32
+2169.85154878419
+13
+-369.232485975391
+23
+-891.406075310522
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-891.406075310522
+20
+-369.232485975391
+30
+2169.85154878419
+11
+-785.609632890959
+21
+-524.927574441361
+31
+2234.76895526921
+12
+-802.244272938819
+22
+-536.042485570818
+32
+2169.85154878419
+13
+-802.244272938819
+23
+-536.042485570818
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-785.609632890959
+20
+-524.927574441361
+30
+2234.76895526921
+11
+-891.406075310522
+21
+-369.232485975391
+31
+2169.85154878419
+12
+-872.922653615348
+22
+-361.576402030189
+32
+2234.76895526921
+13
+-872.922653615348
+23
+-361.576402030189
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-872.922653615348
+20
+-361.576402030189
+30
+2234.76895526921
+11
+-762.654700553784
+21
+-509.589579018778
+31
+2296.83616997626
+12
+-785.609632890959
+22
+-524.927574441361
+32
+2234.76895526921
+13
+-785.609632890959
+23
+-524.927574441361
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-762.654700553784
+20
+-509.589579018778
+30
+2296.83616997626
+11
+-872.922653615348
+21
+-361.576402030189
+31
+2234.76895526921
+12
+-847.416499400322
+22
+-351.011407030345
+32
+2296.83616997626
+13
+-847.416499400322
+23
+-351.011407030345
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-611.383516446667
+20
+-408.513405265645
+30
+680.911023534629
+11
+-698.564739508658
+21
+-289.354989300114
+31
+741.194313252463
+12
+-628.691655879276
+22
+-420.078334296643
+32
+741.194313252463
+13
+-628.691655879276
+23
+-420.078334296643
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-698.564739508658
+20
+-289.354989300114
+30
+741.194313252463
+11
+-611.383516446667
+21
+-408.513405265645
+31
+680.911023534629
+12
+-679.332965393238
+22
+-281.388927633011
+32
+680.911023534629
+13
+-679.332965393238
+23
+-281.388927633011
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-545.030667691736
+20
+-815.696038096871
+30
+2035.2022000213
+11
+-373.870315466121
+21
+-902.602786167016
+31
+1967.39330582966
+12
+-542.775570394861
+22
+-812.321046486997
+32
+1967.39330582966
+13
+-542.775570394861
+23
+-812.321046486997
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-373.870315466121
+20
+-902.602786167016
+30
+1967.39330582966
+11
+-545.030667691736
+21
+-815.696038096871
+31
+2035.2022000213
+12
+-375.423653500801
+22
+-906.352875917291
+32
+2035.2022000213
+13
+-375.423653500801
+23
+-906.352875917291
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-490.247554968877
+20
+-733.707315899088
+30
+2355.16675535807
+11
+-351.011407030345
+21
+-847.416499400322
+31
+2296.83616997626
+12
+-509.589579018778
+22
+-762.654700553784
+32
+2296.83616997626
+13
+-509.589579018778
+23
+-762.654700553784
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-351.011407030345
+20
+-847.416499400322
+30
+2296.83616997626
+11
+-490.247554968877
+21
+-733.707315899088
+31
+2355.16675535807
+12
+-337.688389142806
+22
+-815.251888924486
+32
+2355.16675535807
+13
+-337.688389142806
+23
+-815.251888924486
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-467.1777430806
+20
+-699.180902483483
+30
+2408.9276400213
+11
+-337.688389142806
+21
+-815.251888924486
+31
+2355.16675535807
+12
+-490.247554968877
+22
+-733.707315899088
+32
+2355.16675535807
+13
+-490.247554968877
+23
+-733.707315899088
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-337.688389142806
+20
+-815.251888924486
+30
+2355.16675535807
+11
+-467.1777430806
+21
+-699.180902483483
+31
+2408.9276400213
+12
+-321.797626332425
+22
+-776.88819383121
+32
+2408.9276400213
+13
+-321.797626332425
+23
+-776.88819383121
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-267.610079200261
+20
+-646.067882633009
+30
+628.271001705821
+11
+-361.48899563696
+21
+-541.006514010434
+31
+587.016306884026
+12
+-388.509617834311
+22
+-581.445732901797
+32
+628.271001705821
+13
+-388.509617834311
+23
+-581.445732901797
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-361.48899563696
+20
+-541.006514010434
+30
+587.016306884026
+11
+-267.610079200261
+21
+-646.067882633009
+31
+628.271001705821
+12
+-248.997950917359
+22
+-601.134230107799
+32
+587.016306884026
+13
+-248.997950917359
+23
+-601.134230107799
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-415.26146157539
+20
+-621.482696406622
+30
+2549.0746800213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+2408.9276400213
+12
+-415.26146157539
+22
+-621.482696406623
+32
+2408.9276400213
+13
+-415.26146157539
+23
+-621.482696406623
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+2408.9276400213
+11
+-415.26146157539
+21
+-621.482696406622
+31
+2549.0746800213
+12
+-286.037069662455
+22
+-690.554572920556
+32
+2549.0746800213
+13
+-286.037069662455
+23
+-690.554572920556
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-281.388927633011
+20
+-679.332965393238
+30
+680.911023534629
+11
+-136.426435300007
+21
+-685.862005953678
+31
+628.271001705821
+12
+-267.610079200261
+22
+-646.067882633009
+32
+628.271001705821
+13
+-267.610079200261
+23
+-646.067882633009
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-136.426435300007
+20
+-685.862005953678
+30
+628.271001705821
+11
+-281.388927633011
+21
+-679.332965393238
+31
+680.911023534629
+12
+-143.450831316169
+22
+-721.176029454062
+32
+680.911023534629
+13
+-143.450831316169
+23
+-721.176029454062
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-290.941975042481
+20
+-702.396062011173
+30
+804.835469255871
+11
+-147.511894336929
+21
+-741.592371958341
+31
+741.194313252463
+12
+-289.354989300114
+22
+-698.564739508657
+32
+741.194313252463
+13
+-289.354989300114
+23
+-698.564739508657
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-147.511894336929
+20
+-741.592371958341
+30
+741.194313252463
+11
+-290.941975042481
+21
+-702.396062011173
+31
+804.835469255871
+12
+-148.32093265249
+22
+-745.659682232799
+32
+804.835469255871
+13
+-148.32093265249
+23
+-745.659682232799
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-882.422285845505
+30
+1715.23764468454
+11
+164.051007270482
+21
+-824.740107573921
+31
+1661.47676002131
+12
+0.0
+22
+-840.897721502147
+32
+1661.47676002131
+13
+0.0
+23
+-840.897721502147
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+164.051007270482
+20
+-824.740107573921
+30
+1661.47676002131
+11
+0.0
+21
+-882.422285845505
+31
+1715.23764468454
+12
+172.152047899807
+22
+-865.466789057044
+32
+1715.23764468454
+13
+172.152047899807
+23
+-865.466789057044
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-289.354989300114
+20
+-698.564739508657
+30
+741.194313252463
+11
+-143.450831316169
+21
+-721.176029454062
+31
+680.911023534629
+12
+-281.388927633011
+22
+-679.332965393238
+32
+680.911023534629
+13
+-281.388927633011
+23
+-679.332965393238
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-143.450831316169
+20
+-721.176029454062
+30
+680.911023534629
+11
+-289.354989300114
+21
+-698.564739508657
+31
+741.194313252463
+12
+-147.511894336929
+22
+-741.592371958341
+32
+741.194313252463
+13
+-147.511894336929
+23
+-741.592371958341
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-172.152047899808
+20
+-865.466789057044
+30
+1715.23764468454
+11
+0.0
+21
+-840.897721502147
+31
+1661.47676002131
+12
+-164.051007270482
+22
+-824.740107573921
+32
+1661.47676002131
+13
+-164.051007270482
+23
+-824.740107573921
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-840.897721502147
+30
+1661.47676002131
+11
+-172.152047899808
+21
+-865.466789057044
+31
+1715.23764468454
+12
+0.0
+22
+-882.422285845505
+32
+1715.23764468454
+13
+0.0
+23
+-882.422285845505
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+867.310386884026
+11
+-148.32093265249
+21
+-745.659682232799
+31
+804.835469255871
+12
+-290.941975042481
+22
+-702.396062011173
+32
+804.835469255871
+13
+-290.941975042481
+23
+-702.396062011173
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-148.32093265249
+20
+-745.659682232799
+30
+804.835469255871
+11
+-286.037069662455
+21
+-690.554572920556
+31
+867.310386884026
+12
+-145.820433573828
+22
+-733.088824464618
+32
+867.310386884026
+13
+-145.820433573828
+23
+-733.088824464618
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-178.77316905644
+20
+-431.596609324475
+30
+1100.8886000213
+11
+-145.820433573828
+21
+-733.088824464618
+31
+867.310386884026
+12
+-286.037069662455
+22
+-690.554572920556
+32
+867.310386884026
+13
+-286.037069662455
+23
+-690.554572920556
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-145.820433573828
+20
+-733.088824464618
+30
+867.310386884026
+11
+-178.77316905644
+21
+-431.596609324475
+31
+1100.8886000213
+12
+-91.1377712474136
+22
+-458.180516616454
+32
+1100.8886000213
+13
+-91.1377712474136
+23
+-458.180516616454
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-232.405119359447
+20
+-561.075591122516
+30
+1287.75132002131
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+-268.159752894786
+22
+-647.39491232121
+32
+1100.8886000213
+13
+-268.159752894786
+23
+-647.39491232121
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-136.706656519425
+20
+-687.270773156591
+30
+1100.8886000213
+11
+-232.405119359447
+21
+-561.075591122516
+31
+1287.75132002131
+12
+-118.479102410621
+22
+-595.634670540536
+32
+1287.75132002131
+13
+-118.479102410621
+23
+-595.634670540536
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-250.282436127117
+20
+-604.235251721863
+30
+1474.6140400213
+11
+-145.820433573828
+21
+-733.088824464619
+31
+1287.75132002131
+12
+-286.037069662455
+22
+-690.554572920556
+32
+1287.75132002131
+13
+-286.037069662455
+23
+-690.554572920556
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-145.820433573828
+20
+-733.088824464619
+30
+1287.75132002131
+11
+-250.282436127117
+21
+-604.235251721863
+31
+1474.6140400213
+12
+-127.592879465023
+22
+-641.452721848564
+32
+1474.6140400213
+13
+-127.592879465023
+23
+-641.452721848564
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-268.159752894786
+20
+-647.39491232121
+30
+1661.47676002131
+11
+-154.93421062823
+21
+-778.906875772646
+31
+1474.6140400213
+12
+-303.914386430124
+22
+-733.714233519903
+32
+1474.6140400213
+13
+-303.914386430124
+23
+-733.714233519903
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-154.93421062823
+20
+-778.906875772646
+30
+1474.6140400213
+11
+-268.159752894786
+21
+-647.39491232121
+31
+1661.47676002131
+12
+-136.706656519425
+22
+-687.270773156591
+32
+1661.47676002131
+13
+-136.706656519425
+23
+-687.270773156591
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-337.688389142806
+20
+-815.251888924487
+30
+1715.23764468454
+11
+-164.051007270482
+21
+-824.740107573921
+31
+1661.47676002131
+12
+-321.797626332425
+22
+-776.88819383121
+32
+1661.47676002131
+13
+-321.797626332425
+23
+-776.88819383121
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-164.051007270482
+20
+-824.740107573921
+30
+1661.47676002131
+11
+-337.688389142806
+21
+-815.251888924487
+31
+1715.23764468454
+12
+-172.152047899808
+22
+-865.466789057044
+32
+1715.23764468454
+13
+-172.152047899808
+23
+-865.466789057044
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-351.011407030345
+20
+-847.416499400322
+30
+1773.56823006635
+11
+-172.152047899808
+21
+-865.466789057044
+31
+1715.23764468454
+12
+-337.688389142806
+22
+-815.251888924487
+32
+1715.23764468454
+13
+-337.688389142806
+23
+-815.251888924487
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-172.152047899808
+20
+-865.466789057044
+30
+1715.23764468454
+11
+-351.011407030345
+21
+-847.416499400322
+31
+1773.56823006635
+12
+-178.9440635192
+22
+-899.612557411553
+32
+1773.56823006635
+13
+-178.9440635192
+23
+-899.612557411553
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-361.576402030189
+20
+-872.922653615348
+30
+1835.6354447734
+11
+-178.9440635192
+21
+-899.612557411553
+31
+1773.56823006635
+12
+-351.011407030345
+22
+-847.416499400322
+32
+1773.56823006635
+13
+-351.011407030345
+23
+-847.416499400322
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-178.9440635192
+20
+-899.612557411553
+30
+1773.56823006635
+11
+-361.576402030189
+21
+-872.922653615348
+31
+1835.6354447734
+12
+-184.330051263378
+22
+-926.689746301964
+32
+1835.6354447734
+13
+-184.330051263378
+23
+-926.689746301964
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-375.423653500801
+20
+-906.352875917291
+30
+2035.2022000213
+11
+-190.597433982906
+21
+-958.19800696011
+31
+1967.39330582966
+12
+-373.870315466121
+22
+-902.602786167016
+32
+1967.39330582966
+13
+-373.870315466121
+23
+-902.602786167016
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-190.597433982906
+20
+-958.19800696011
+30
+1967.39330582966
+11
+-375.423653500801
+21
+-906.352875917291
+31
+2035.2022000213
+12
+-191.38931884584
+22
+-962.179081004757
+32
+2035.2022000213
+13
+-191.38931884584
+23
+-962.179081004757
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-351.011407030345
+20
+-847.416499400322
+30
+2296.83616997626
+11
+-184.330051263378
+21
+-926.689746301964
+31
+2234.76895526921
+12
+-361.576402030189
+22
+-872.922653615348
+32
+2234.76895526921
+13
+-361.576402030189
+23
+-872.922653615348
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-184.330051263378
+20
+-926.689746301964
+30
+2234.76895526921
+11
+-351.011407030345
+21
+-847.416499400322
+31
+2296.83616997626
+12
+-178.9440635192
+22
+-899.612557411553
+32
+2296.83616997626
+13
+-178.9440635192
+23
+-899.612557411553
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-361.576402030189
+20
+-872.922653615348
+30
+2234.76895526921
+11
+-188.233089011893
+21
+-946.311642114328
+31
+2169.85154878419
+12
+-369.232485975391
+22
+-891.406075310522
+32
+2169.85154878419
+13
+-369.232485975391
+23
+-891.406075310522
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-188.233089011893
+20
+-946.311642114328
+30
+2169.85154878419
+11
+-361.576402030189
+21
+-872.922653615348
+31
+2234.76895526921
+12
+-184.330051263378
+22
+-926.689746301964
+32
+2234.76895526921
+13
+-184.330051263378
+23
+-926.689746301964
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+-145.820433573828
+21
+-733.088824464619
+31
+2408.9276400213
+12
+-286.037069662455
+22
+-690.554572920556
+32
+2408.9276400213
+13
+-286.037069662455
+23
+-690.554572920556
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-145.820433573828
+20
+-733.088824464619
+30
+2408.9276400213
+11
+-286.037069662455
+21
+-690.554572920556
+31
+2549.0746800213
+12
+-145.820433573828
+22
+-733.088824464618
+32
+2549.0746800213
+13
+-145.820433573828
+23
+-733.088824464618
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-136.426435300007
+20
+-685.862005953678
+30
+628.271001705821
+11
+-248.997950917359
+21
+-601.134230107799
+31
+587.016306884026
+12
+-267.610079200261
+22
+-646.067882633009
+32
+628.271001705821
+13
+-267.610079200261
+23
+-646.067882633009
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-248.997950917359
+20
+-601.134230107799
+30
+587.016306884026
+11
+-136.426435300007
+21
+-685.862005953678
+31
+628.271001705821
+12
+-126.938054583664
+22
+-638.160694862082
+32
+587.016306884026
+13
+-126.938054583664
+23
+-638.160694862082
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-143.450831316169
+20
+-721.176029454062
+30
+680.911023534629
+11
+0.0
+21
+-699.298837021391
+31
+628.271001705821
+12
+-136.426435300007
+22
+-685.862005953678
+32
+628.271001705821
+13
+-136.426435300007
+23
+-685.862005953678
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-699.298837021391
+30
+628.271001705821
+11
+-143.450831316169
+21
+-721.176029454062
+31
+680.911023534629
+12
+0.0
+22
+-735.304703143143
+32
+680.911023534629
+13
+0.0
+23
+-735.304703143143
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-147.511894336929
+20
+-741.592371958341
+30
+741.194313252463
+11
+0.0
+21
+-735.304703143143
+31
+680.911023534629
+12
+-143.450831316169
+22
+-721.176029454062
+32
+680.911023534629
+13
+-143.450831316169
+23
+-721.176029454062
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-735.304703143143
+30
+680.911023534629
+11
+-147.511894336929
+21
+-741.592371958341
+31
+741.194313252463
+12
+0.0
+22
+-756.121025443459
+32
+741.194313252463
+13
+0.0
+23
+-756.121025443459
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-148.32093265249
+20
+-745.659682232799
+30
+804.835469255871
+11
+0.0
+21
+-756.121025443459
+31
+741.194313252463
+12
+-147.511894336929
+22
+-741.592371958341
+32
+741.194313252463
+13
+-147.511894336929
+23
+-741.592371958341
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-756.121025443459
+30
+741.194313252463
+11
+-148.32093265249
+21
+-745.659682232799
+31
+804.835469255871
+12
+0.0
+22
+-760.268019036986
+32
+804.835469255871
+13
+0.0
+23
+-760.268019036986
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-145.820433573828
+20
+-733.088824464618
+30
+867.310386884026
+11
+0.0
+21
+-760.268019036986
+31
+804.835469255871
+12
+-148.32093265249
+22
+-745.659682232799
+32
+804.835469255871
+13
+-148.32093265249
+23
+-745.659682232799
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-760.268019036986
+30
+804.835469255871
+11
+-145.820433573828
+21
+-733.088824464618
+31
+867.310386884026
+12
+0.0
+22
+-747.450883605455
+32
+867.310386884026
+13
+0.0
+23
+-747.450883605455
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-91.1377712474136
+20
+-458.180516616454
+30
+1100.8886000213
+11
+0.0
+21
+-747.450883605455
+31
+867.310386884026
+12
+-145.820433573828
+22
+-733.088824464618
+32
+867.310386884026
+13
+-145.820433573828
+23
+-733.088824464618
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-747.450883605455
+30
+867.310386884026
+11
+-91.1377712474136
+21
+-458.180516616454
+31
+1100.8886000213
+12
+0.0
+22
+-467.156803605456
+32
+1100.8886000213
+13
+0.0
+23
+-467.156803605456
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-118.479102410621
+20
+-595.634670540536
+30
+1287.75132002131
+11
+0.0
+21
+-700.735203605455
+31
+1100.8886000213
+12
+-136.706656519425
+22
+-687.270773156591
+32
+1100.8886000213
+13
+-136.706656519425
+23
+-687.270773156591
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-700.735203605455
+30
+1100.8886000213
+11
+-118.479102410621
+21
+-595.634670540536
+31
+1287.75132002131
+12
+0.0
+22
+-607.303843605455
+32
+1287.75132002131
+13
+0.0
+23
+-607.303843605455
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-685.862005953678
+20
+-136.426435300007
+30
+628.271001705821
+11
+-735.304703143143
+21
+0.0
+31
+680.911023534629
+12
+-721.176029454062
+22
+-143.450831316169
+32
+680.911023534629
+13
+-721.176029454062
+23
+-143.450831316169
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-735.304703143143
+20
+0.0
+30
+680.911023534629
+11
+-685.862005953678
+21
+-136.426435300007
+31
+628.271001705821
+12
+-699.298837021391
+22
+0.0
+32
+628.271001705821
+13
+-699.298837021391
+23
+0.0
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+917.237009349992
+20
+-1.80477854883065e-13
+30
+1773.56823006635
+11
+865.466789057043
+21
+-172.152047899808
+31
+1715.23764468454
+12
+899.612557411552
+22
+-178.944063519201
+32
+1773.56823006635
+13
+899.612557411552
+23
+-178.944063519201
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+865.466789057043
+20
+-172.152047899808
+30
+1715.23764468454
+11
+917.237009349992
+21
+-1.80477854883065e-13
+31
+1773.56823006635
+12
+882.422285845505
+22
+-1.80477854883065e-13
+32
+1715.23764468454
+13
+882.422285845505
+23
+-1.80477854883065e-13
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-654.019523605455
+30
+1474.6140400213
+11
+145.820433573828
+21
+-733.088824464619
+31
+1287.75132002131
+12
+0.0
+22
+-747.450883605455
+32
+1287.75132002131
+13
+0.0
+23
+-747.450883605455
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+145.820433573828
+20
+-733.088824464619
+30
+1287.75132002131
+11
+0.0
+21
+-654.019523605455
+31
+1474.6140400213
+12
+127.592879465023
+22
+-641.452721848564
+32
+1474.6140400213
+13
+127.592879465023
+23
+-641.452721848564
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-136.706656519425
+20
+-687.270773156591
+30
+1661.47676002131
+11
+0.0
+21
+-794.166563605455
+31
+1474.6140400213
+12
+-154.93421062823
+22
+-778.906875772646
+32
+1474.6140400213
+13
+-154.93421062823
+23
+-778.906875772646
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-794.166563605455
+30
+1474.6140400213
+11
+-136.706656519425
+21
+-687.270773156591
+31
+1661.47676002131
+12
+0.0
+22
+-700.735203605455
+32
+1661.47676002131
+13
+0.0
+23
+-700.735203605455
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+944.844671731792
+20
+-1.80477854883065e-13
+30
+1835.6354447734
+11
+899.612557411552
+21
+-178.944063519201
+31
+1773.56823006635
+12
+926.689746301964
+22
+-184.330051263379
+32
+1835.6354447734
+13
+926.689746301964
+23
+-184.330051263379
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+899.612557411552
+20
+-178.944063519201
+30
+1773.56823006635
+11
+944.844671731792
+21
+-1.80477854883065e-13
+31
+1835.6354447734
+12
+917.237009349992
+22
+-1.80477854883065e-13
+32
+1773.56823006635
+13
+917.237009349992
+23
+-1.80477854883065e-13
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-917.237009349992
+30
+2296.83616997626
+11
+184.330051263378
+21
+-926.689746301964
+31
+2234.76895526921
+12
+0.0
+22
+-944.844671731792
+32
+2234.76895526921
+13
+0.0
+23
+-944.844671731792
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+184.330051263378
+20
+-926.689746301964
+30
+2234.76895526921
+11
+0.0
+21
+-917.237009349992
+31
+2296.83616997626
+12
+178.9440635192
+22
+-899.612557411553
+32
+2296.83616997626
+13
+178.9440635192
+23
+-899.612557411553
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-184.330051263378
+20
+-926.689746301964
+30
+1835.6354447734
+11
+0.0
+21
+-917.237009349992
+31
+1773.56823006635
+12
+-178.9440635192
+22
+-899.612557411553
+32
+1773.56823006635
+13
+-178.9440635192
+23
+-899.612557411553
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-917.237009349992
+30
+1773.56823006635
+11
+-184.330051263378
+21
+-926.689746301964
+31
+1835.6354447734
+12
+0.0
+22
+-944.844671731792
+32
+1835.6354447734
+13
+0.0
+23
+-944.844671731792
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-188.233089011893
+20
+-946.311642114328
+30
+1900.55285125842
+11
+0.0
+21
+-944.844671731792
+31
+1835.6354447734
+12
+-184.330051263378
+22
+-926.689746301964
+32
+1835.6354447734
+13
+-184.330051263378
+23
+-926.689746301964
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-944.844671731792
+30
+1835.6354447734
+11
+-188.233089011893
+21
+-946.311642114328
+31
+1900.55285125842
+12
+0.0
+22
+-964.850983209364
+32
+1900.55285125842
+13
+0.0
+23
+-964.850983209364
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+143.450831316169
+20
+-721.176029454062
+30
+680.911023534629
+11
+267.610079200261
+21
+-646.067882633009
+31
+628.271001705821
+12
+136.426435300007
+22
+-685.862005953678
+32
+628.271001705821
+13
+136.426435300007
+23
+-685.862005953678
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+267.610079200261
+20
+-646.067882633009
+30
+628.271001705821
+11
+143.450831316169
+21
+-721.176029454062
+31
+680.911023534629
+12
+281.388927633011
+22
+-679.332965393237
+32
+680.911023534629
+13
+281.388927633011
+23
+-679.332965393237
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+147.511894336929
+20
+-741.592371958341
+30
+741.194313252463
+11
+281.388927633011
+21
+-679.332965393237
+31
+680.911023534629
+12
+143.450831316169
+22
+-721.176029454062
+32
+680.911023534629
+13
+143.450831316169
+23
+-721.176029454062
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+281.388927633011
+20
+-679.332965393237
+30
+680.911023534629
+11
+147.511894336929
+21
+-741.592371958341
+31
+741.194313252463
+12
+289.354989300114
+22
+-698.564739508657
+32
+741.194313252463
+13
+289.354989300114
+23
+-698.564739508657
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+148.32093265249
+20
+-745.659682232799
+30
+804.835469255871
+11
+289.354989300114
+21
+-698.564739508657
+31
+741.194313252463
+12
+147.511894336929
+22
+-741.592371958341
+32
+741.194313252463
+13
+147.511894336929
+23
+-741.592371958341
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+289.354989300114
+20
+-698.564739508657
+30
+741.194313252463
+11
+148.32093265249
+21
+-745.659682232799
+31
+804.835469255871
+12
+290.941975042481
+22
+-702.396062011173
+32
+804.835469255871
+13
+290.941975042481
+23
+-702.396062011173
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+145.820433573828
+20
+-733.088824464618
+30
+867.310386884026
+11
+290.941975042481
+21
+-702.396062011173
+31
+804.835469255871
+12
+148.32093265249
+22
+-745.659682232799
+32
+804.835469255871
+13
+148.32093265249
+23
+-745.659682232799
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+290.941975042481
+20
+-702.396062011173
+30
+804.835469255871
+11
+145.820433573828
+21
+-733.088824464618
+31
+867.310386884026
+12
+286.037069662455
+22
+-690.554572920556
+32
+867.310386884026
+13
+286.037069662455
+23
+-690.554572920556
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+178.77316905644
+20
+-431.596609324475
+30
+1100.8886000213
+11
+145.820433573828
+21
+-733.088824464618
+31
+867.310386884026
+12
+91.1377712474136
+22
+-458.180516616454
+32
+1100.8886000213
+13
+91.1377712474136
+23
+-458.180516616454
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+145.820433573828
+20
+-733.088824464618
+30
+867.310386884026
+11
+178.77316905644
+21
+-431.596609324475
+31
+1100.8886000213
+12
+286.037069662455
+22
+-690.554572920556
+32
+867.310386884026
+13
+286.037069662455
+23
+-690.554572920556
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+118.479102410621
+20
+-595.634670540536
+30
+1287.75132002131
+11
+268.159752894786
+21
+-647.39491232121
+31
+1100.8886000213
+12
+136.706656519425
+22
+-687.270773156591
+32
+1100.8886000213
+13
+136.706656519425
+23
+-687.270773156591
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+268.159752894786
+20
+-647.39491232121
+30
+1100.8886000213
+11
+118.479102410621
+21
+-595.634670540536
+31
+1287.75132002131
+12
+232.405119359447
+22
+-561.075591122516
+32
+1287.75132002131
+13
+232.405119359447
+23
+-561.075591122516
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+127.592879465023
+20
+-641.452721848564
+30
+1474.6140400213
+11
+286.037069662455
+21
+-690.554572920556
+31
+1287.75132002131
+12
+145.820433573828
+22
+-733.088824464619
+32
+1287.75132002131
+13
+145.820433573828
+23
+-733.088824464619
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+286.037069662455
+20
+-690.554572920556
+30
+1287.75132002131
+11
+127.592879465023
+21
+-641.452721848564
+31
+1474.6140400213
+12
+250.282436127116
+22
+-604.235251721863
+32
+1474.6140400213
+13
+250.282436127116
+23
+-604.235251721863
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+136.706656519425
+20
+-687.270773156591
+30
+1661.47676002131
+11
+303.914386430124
+21
+-733.714233519903
+31
+1474.6140400213
+12
+154.93421062823
+22
+-778.906875772646
+32
+1474.6140400213
+13
+154.93421062823
+23
+-778.906875772646
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+303.914386430124
+20
+-733.714233519903
+30
+1474.6140400213
+11
+136.706656519425
+21
+-687.270773156591
+31
+1661.47676002131
+12
+268.159752894786
+22
+-647.39491232121
+32
+1661.47676002131
+13
+268.159752894786
+23
+-647.39491232121
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+172.152047899807
+20
+-865.466789057044
+30
+1715.23764468454
+11
+321.797626332425
+21
+-776.88819383121
+31
+1661.47676002131
+12
+164.051007270482
+22
+-824.740107573921
+32
+1661.47676002131
+13
+164.051007270482
+23
+-824.740107573921
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+321.797626332425
+20
+-776.88819383121
+30
+1661.47676002131
+11
+172.152047899807
+21
+-865.466789057044
+31
+1715.23764468454
+12
+337.688389142806
+22
+-815.251888924487
+32
+1715.23764468454
+13
+337.688389142806
+23
+-815.251888924487
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+964.850983209364
+20
+-1.80477854883065e-13
+30
+1900.55285125842
+11
+926.689746301964
+21
+-184.330051263379
+31
+1835.6354447734
+12
+946.311642114328
+22
+-188.233089011893
+32
+1900.55285125842
+13
+946.311642114328
+23
+-188.233089011893
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+926.689746301964
+20
+-184.330051263379
+30
+1835.6354447734
+11
+964.850983209364
+21
+-1.80477854883065e-13
+31
+1900.55285125842
+12
+944.844671731792
+22
+-1.80477854883065e-13
+32
+1835.6354447734
+13
+944.844671731792
+23
+-1.80477854883065e-13
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-882.422285845505
+20
+0.0
+30
+2355.16675535807
+11
+-824.740107573921
+21
+-164.051007270482
+31
+2408.9276400213
+12
+-865.466789057043
+22
+-172.152047899808
+32
+2355.16675535807
+13
+-865.466789057043
+23
+-172.152047899808
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-824.740107573921
+20
+-164.051007270482
+30
+2408.9276400213
+11
+-882.422285845505
+21
+0.0
+31
+2355.16675535807
+12
+-840.897721502147
+22
+0.0
+32
+2408.9276400213
+13
+-840.897721502147
+23
+0.0
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+178.9440635192
+20
+-899.612557411553
+30
+1773.56823006635
+11
+337.688389142806
+21
+-815.251888924487
+31
+1715.23764468454
+12
+172.152047899807
+22
+-865.466789057044
+32
+1715.23764468454
+13
+172.152047899807
+23
+-865.466789057044
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+337.688389142806
+20
+-815.251888924487
+30
+1715.23764468454
+11
+178.9440635192
+21
+-899.612557411553
+31
+1773.56823006635
+12
+351.011407030345
+22
+-847.416499400322
+32
+1773.56823006635
+13
+351.011407030345
+23
+-847.416499400322
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-687.270773156591
+20
+-136.706656519425
+30
+1100.8886000213
+11
+-561.075591122516
+21
+-232.405119359447
+31
+1287.75132002131
+12
+-647.39491232121
+22
+-268.159752894786
+32
+1100.8886000213
+13
+-647.39491232121
+23
+-268.159752894786
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-561.075591122516
+20
+-232.405119359447
+30
+1287.75132002131
+11
+-687.270773156591
+21
+-136.706656519425
+31
+1100.8886000213
+12
+-595.634670540536
+22
+-118.479102410621
+32
+1287.75132002131
+13
+-595.634670540536
+23
+-118.479102410621
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+976.970215709362
+20
+-1.80477854883065e-13
+30
+1967.39330582966
+11
+946.311642114328
+21
+-188.233089011893
+31
+1900.55285125842
+12
+958.198006960111
+22
+-190.597433982906
+32
+1967.39330582966
+13
+958.198006960111
+23
+-190.597433982906
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+946.311642114328
+20
+-188.233089011893
+30
+1900.55285125842
+11
+976.970215709362
+21
+-1.80477854883065e-13
+31
+1967.39330582966
+12
+964.850983209364
+22
+-1.80477854883065e-13
+32
+1900.55285125842
+13
+964.850983209364
+23
+-1.80477854883065e-13
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+172.152047899807
+20
+-865.466789057043
+30
+2355.16675535807
+11
+351.011407030345
+21
+-847.416499400322
+31
+2296.83616997626
+12
+178.9440635192
+22
+-899.612557411553
+32
+2296.83616997626
+13
+178.9440635192
+23
+-899.612557411553
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+351.011407030345
+20
+-847.416499400322
+30
+2296.83616997626
+11
+172.152047899807
+21
+-865.466789057043
+31
+2355.16675535807
+12
+337.688389142806
+22
+-815.251888924486
+32
+2355.16675535807
+13
+337.688389142806
+23
+-815.251888924486
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+981.029283605455
+20
+-1.80477854883065e-13
+30
+2035.2022000213
+11
+958.198006960111
+21
+-190.597433982906
+31
+1967.39330582966
+12
+962.179081004756
+22
+-191.38931884584
+32
+2035.2022000213
+13
+962.179081004756
+23
+-191.38931884584
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+958.198006960111
+20
+-190.597433982906
+30
+1967.39330582966
+11
+981.029283605455
+21
+-1.80477854883065e-13
+31
+2035.2022000213
+12
+976.970215709362
+22
+-1.80477854883065e-13
+32
+1967.39330582966
+13
+976.970215709362
+23
+-1.80477854883065e-13
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+164.051007270482
+20
+-824.740107573921
+30
+2408.9276400213
+11
+337.688389142806
+21
+-815.251888924486
+31
+2355.16675535807
+12
+172.152047899807
+22
+-865.466789057043
+32
+2355.16675535807
+13
+172.152047899807
+23
+-865.466789057043
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+337.688389142806
+20
+-815.251888924486
+30
+2355.16675535807
+11
+164.051007270482
+21
+-824.740107573921
+31
+2408.9276400213
+12
+321.797626332425
+22
+-776.88819383121
+32
+2408.9276400213
+13
+321.797626332425
+23
+-776.88819383121
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+145.820433573828
+20
+-733.088824464618
+30
+2549.0746800213
+11
+286.037069662455
+21
+-690.554572920556
+31
+2408.9276400213
+12
+145.820433573828
+22
+-733.088824464619
+32
+2408.9276400213
+13
+145.820433573828
+23
+-733.088824464619
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+286.037069662455
+20
+-690.554572920556
+30
+2408.9276400213
+11
+145.820433573828
+21
+-733.088824464618
+31
+2549.0746800213
+12
+286.037069662455
+22
+-690.554572920556
+32
+2549.0746800213
+13
+286.037069662455
+23
+-690.554572920556
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+136.426435300007
+20
+-685.862005953678
+30
+628.271001705821
+11
+248.997950917359
+21
+-601.1342301078
+31
+587.016306884026
+12
+126.938054583664
+22
+-638.160694862082
+32
+587.016306884026
+13
+126.938054583664
+23
+-638.160694862082
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+248.997950917359
+20
+-601.1342301078
+30
+587.016306884026
+11
+136.426435300007
+21
+-685.862005953678
+31
+628.271001705821
+12
+267.610079200261
+22
+-646.067882633009
+32
+628.271001705821
+13
+267.610079200261
+23
+-646.067882633009
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+281.388927633011
+20
+-679.332965393237
+30
+680.911023534629
+11
+388.509617834311
+21
+-581.445732901797
+31
+628.271001705821
+12
+267.610079200261
+22
+-646.067882633009
+32
+628.271001705821
+13
+267.610079200261
+23
+-646.067882633009
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+388.509617834311
+20
+-581.445732901797
+30
+628.271001705821
+11
+281.388927633011
+21
+-679.332965393237
+31
+680.911023534629
+12
+408.513405265645
+22
+-611.383516446667
+32
+680.911023534629
+13
+408.513405265645
+23
+-611.383516446667
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+289.354989300114
+20
+-698.564739508657
+30
+741.194313252463
+11
+408.513405265645
+21
+-611.383516446667
+31
+680.911023534629
+12
+281.388927633011
+22
+-679.332965393237
+32
+680.911023534629
+13
+281.388927633011
+23
+-679.332965393237
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+408.513405265645
+20
+-611.383516446667
+30
+680.911023534629
+11
+289.354989300114
+21
+-698.564739508657
+31
+741.194313252463
+12
+420.078334296643
+22
+-628.691655879276
+32
+741.194313252463
+13
+420.078334296643
+23
+-628.691655879276
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+290.941975042481
+20
+-702.396062011173
+30
+804.835469255871
+11
+420.078334296643
+21
+-628.691655879276
+31
+741.194313252463
+12
+289.354989300114
+22
+-698.564739508657
+32
+741.194313252463
+13
+289.354989300114
+23
+-698.564739508657
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+420.078334296643
+20
+-628.691655879276
+30
+741.194313252463
+11
+290.941975042481
+21
+-702.396062011173
+31
+804.835469255871
+12
+422.38228049373
+22
+-632.139755034707
+32
+804.835469255871
+13
+422.38228049373
+23
+-632.139755034707
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+286.037069662455
+20
+-690.554572920556
+30
+867.310386884026
+11
+422.38228049373
+21
+-632.139755034707
+31
+804.835469255871
+12
+290.941975042481
+22
+-702.396062011173
+32
+804.835469255871
+13
+290.941975042481
+23
+-702.396062011173
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+422.38228049373
+20
+-632.139755034707
+30
+804.835469255871
+11
+286.037069662455
+21
+-690.554572920556
+31
+867.310386884026
+12
+415.26146157539
+22
+-621.482696406622
+32
+867.310386884026
+13
+415.26146157539
+23
+-621.482696406622
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+958.19800696011
+20
+-190.597433982906
+30
+2103.01109421295
+11
+981.029283605455
+21
+-1.80477854883065e-13
+31
+2035.2022000213
+12
+962.179081004756
+22
+-191.38931884584
+32
+2035.2022000213
+13
+962.179081004756
+23
+-191.38931884584
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+981.029283605455
+20
+-1.80477854883065e-13
+30
+2035.2022000213
+11
+958.19800696011
+21
+-190.597433982906
+31
+2103.01109421295
+12
+976.970215709361
+22
+-1.80477854883065e-13
+32
+2103.01109421295
+13
+976.970215709361
+23
+-1.80477854883065e-13
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+946.311642114328
+20
+-188.233089011893
+30
+2169.85154878419
+11
+976.970215709361
+21
+-1.80477854883065e-13
+31
+2103.01109421295
+12
+958.19800696011
+22
+-190.597433982906
+32
+2103.01109421295
+13
+958.19800696011
+23
+-190.597433982906
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+976.970215709361
+20
+-1.80477854883065e-13
+30
+2103.01109421295
+11
+946.311642114328
+21
+-188.233089011893
+31
+2169.85154878419
+12
+964.850983209363
+22
+-1.80477854883065e-13
+32
+2169.85154878419
+13
+964.850983209363
+23
+-1.80477854883065e-13
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+259.538414235775
+20
+-388.426686378325
+30
+1100.8886000213
+11
+286.037069662455
+21
+-690.554572920556
+31
+867.310386884026
+12
+178.77316905644
+22
+-431.596609324475
+32
+1100.8886000213
+13
+178.77316905644
+23
+-431.596609324475
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+286.037069662455
+20
+-690.554572920556
+30
+867.310386884026
+11
+259.538414235775
+21
+-388.426686378325
+31
+1100.8886000213
+12
+415.26146157539
+22
+-621.482696406622
+32
+867.310386884026
+13
+415.26146157539
+23
+-621.482696406622
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+232.405119359447
+20
+-561.075591122516
+30
+1287.75132002131
+11
+389.307620352121
+21
+-582.640028068573
+31
+1100.8886000213
+12
+268.159752894786
+22
+-647.39491232121
+32
+1100.8886000213
+13
+268.159752894786
+23
+-647.39491232121
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+389.307620352121
+20
+-582.640028068573
+30
+1100.8886000213
+11
+232.405119359447
+21
+-561.075591122516
+31
+1287.75132002131
+12
+337.399937905583
+22
+-504.954691392474
+32
+1287.75132002131
+13
+337.399937905583
+23
+-504.954691392474
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-899.612557411553
+20
+-178.9440635192
+30
+2296.83616997626
+11
+-815.251888924486
+21
+-337.688389142806
+31
+2355.16675535807
+12
+-847.416499400322
+22
+-351.011407030345
+32
+2296.83616997626
+13
+-847.416499400322
+23
+-351.011407030345
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-815.251888924486
+20
+-337.688389142806
+30
+2355.16675535807
+11
+-899.612557411553
+21
+-178.9440635192
+31
+2296.83616997626
+12
+-865.466789057043
+22
+-172.152047899808
+32
+2355.16675535807
+13
+-865.466789057043
+23
+-172.152047899808
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-958.19800696011
+20
+-190.597433982906
+30
+2103.01109421295
+11
+-891.406075310522
+21
+-369.232485975391
+31
+2169.85154878419
+12
+-902.602786167016
+22
+-373.87031546612
+32
+2103.01109421295
+13
+-902.602786167016
+23
+-373.87031546612
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-891.406075310522
+20
+-369.232485975391
+30
+2169.85154878419
+11
+-958.19800696011
+21
+-190.597433982906
+31
+2103.01109421295
+12
+-946.311642114328
+22
+-188.233089011893
+32
+2169.85154878419
+13
+-946.311642114328
+23
+-188.233089011893
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+250.282436127116
+20
+-604.235251721863
+30
+1474.6140400213
+11
+415.26146157539
+21
+-621.482696406623
+31
+1287.75132002131
+12
+286.037069662455
+22
+-690.554572920556
+32
+1287.75132002131
+13
+286.037069662455
+23
+-690.554572920556
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+415.26146157539
+20
+-621.482696406623
+30
+1287.75132002131
+11
+250.282436127116
+21
+-604.235251721863
+31
+1474.6140400213
+12
+363.353779128852
+22
+-543.797359730523
+32
+1474.6140400213
+13
+363.353779128852
+23
+-543.797359730523
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+268.159752894786
+20
+-647.39491232121
+30
+1661.47676002131
+11
+441.215302798659
+21
+-660.325364744673
+31
+1474.6140400213
+12
+303.914386430124
+22
+-733.714233519903
+32
+1474.6140400213
+13
+303.914386430124
+23
+-733.714233519903
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+441.215302798659
+20
+-660.325364744673
+30
+1474.6140400213
+11
+268.159752894786
+21
+-647.39491232121
+31
+1661.47676002131
+12
+389.307620352121
+22
+-582.640028068573
+32
+1661.47676002131
+13
+389.307620352121
+23
+-582.640028068573
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+337.688389142806
+20
+-815.251888924487
+30
+1715.23764468454
+11
+467.1777430806
+21
+-699.180902483484
+31
+1661.47676002131
+12
+321.797626332425
+22
+-776.88819383121
+32
+1661.47676002131
+13
+321.797626332425
+23
+-776.88819383121
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+467.1777430806
+20
+-699.180902483484
+30
+1661.47676002131
+11
+337.688389142806
+21
+-815.251888924487
+31
+1715.23764468454
+12
+490.247554968877
+22
+-733.707315899088
+32
+1715.23764468454
+13
+490.247554968877
+23
+-733.707315899088
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+351.011407030345
+20
+-847.416499400322
+30
+1773.56823006635
+11
+490.247554968877
+21
+-733.707315899088
+31
+1715.23764468454
+12
+337.688389142806
+22
+-815.251888924487
+32
+1715.23764468454
+13
+337.688389142806
+23
+-815.251888924487
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+490.247554968877
+20
+-733.707315899088
+30
+1715.23764468454
+11
+351.011407030345
+21
+-847.416499400322
+31
+1773.56823006635
+12
+509.589579018778
+22
+-762.654700553784
+32
+1773.56823006635
+13
+509.589579018778
+23
+-762.654700553784
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-802.244272938819
+20
+-536.042485570818
+30
+1900.55285125842
+11
+-902.602786167016
+21
+-373.87031546612
+31
+1967.39330582966
+12
+-812.321046486997
+22
+-542.775570394861
+32
+1967.39330582966
+13
+-812.321046486997
+23
+-542.775570394861
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-902.602786167016
+20
+-373.87031546612
+30
+1967.39330582966
+11
+-802.244272938819
+21
+-536.042485570818
+31
+1900.55285125842
+12
+-891.406075310523
+22
+-369.232485975391
+32
+1900.55285125842
+13
+-891.406075310523
+23
+-369.232485975391
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-812.321046486997
+20
+-542.775570394861
+30
+1967.39330582966
+11
+-906.352875917291
+21
+-375.423653500801
+31
+2035.2022000213
+12
+-815.696038096872
+22
+-545.030667691736
+32
+2035.2022000213
+13
+-815.696038096872
+23
+-545.030667691736
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-906.352875917291
+20
+-375.423653500801
+30
+2035.2022000213
+11
+-812.321046486997
+21
+-542.775570394861
+31
+1967.39330582966
+12
+-902.602786167016
+22
+-373.87031546612
+32
+1967.39330582966
+13
+-902.602786167016
+23
+-373.87031546612
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-906.352875917291
+20
+-375.423653500801
+30
+2035.2022000213
+11
+-812.321046486997
+21
+-542.775570394861
+31
+2103.01109421295
+12
+-815.696038096872
+22
+-545.030667691736
+32
+2035.2022000213
+13
+-815.696038096872
+23
+-545.030667691736
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-812.321046486997
+20
+-542.775570394861
+30
+2103.01109421295
+11
+-906.352875917291
+21
+-375.423653500801
+31
+2035.2022000213
+12
+-902.602786167016
+22
+-373.87031546612
+32
+2103.01109421295
+13
+-902.602786167016
+23
+-373.87031546612
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-581.445732901797
+20
+-388.509617834311
+30
+628.271001705821
+11
+-679.332965393238
+21
+-281.388927633011
+31
+680.911023534629
+12
+-611.383516446667
+22
+-408.513405265645
+32
+680.911023534629
+13
+-611.383516446667
+23
+-408.513405265645
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-679.332965393238
+20
+-281.388927633011
+30
+680.911023534629
+11
+-581.445732901797
+21
+-388.509617834311
+31
+628.271001705821
+12
+-646.067882633009
+22
+-267.610079200261
+32
+628.271001705821
+13
+-646.067882633009
+23
+-267.610079200261
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+337.688389142806
+20
+-815.251888924486
+30
+2355.16675535807
+11
+509.589579018778
+21
+-762.654700553784
+31
+2296.83616997626
+12
+351.011407030345
+22
+-847.416499400322
+32
+2296.83616997626
+13
+351.011407030345
+23
+-847.416499400322
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+509.589579018778
+20
+-762.654700553784
+30
+2296.83616997626
+11
+337.688389142806
+21
+-815.251888924486
+31
+2355.16675535807
+12
+490.247554968877
+22
+-733.707315899088
+32
+2355.16675535807
+13
+490.247554968877
+23
+-733.707315899088
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+321.797626332425
+20
+-776.88819383121
+30
+2408.9276400213
+11
+490.247554968877
+21
+-733.707315899088
+31
+2355.16675535807
+12
+337.688389142806
+22
+-815.251888924486
+32
+2355.16675535807
+13
+337.688389142806
+23
+-815.251888924486
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+490.247554968877
+20
+-733.707315899088
+30
+2355.16675535807
+11
+321.797626332425
+21
+-776.88819383121
+31
+2408.9276400213
+12
+467.1777430806
+22
+-699.180902483484
+32
+2408.9276400213
+13
+467.1777430806
+23
+-699.180902483484
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+286.037069662455
+20
+-690.554572920556
+30
+2549.0746800213
+11
+415.26146157539
+21
+-621.482696406623
+31
+2408.9276400213
+12
+286.037069662455
+22
+-690.554572920556
+32
+2408.9276400213
+13
+286.037069662455
+23
+-690.554572920556
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+415.26146157539
+20
+-621.482696406623
+30
+2408.9276400213
+11
+286.037069662455
+21
+-690.554572920556
+31
+2549.0746800213
+12
+415.26146157539
+22
+-621.482696406622
+32
+2549.0746800213
+13
+415.26146157539
+23
+-621.482696406622
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+267.610079200261
+20
+-646.067882633009
+30
+628.271001705821
+11
+361.48899563696
+21
+-541.006514010435
+31
+587.016306884026
+12
+248.997950917359
+22
+-601.1342301078
+32
+587.016306884026
+13
+248.997950917359
+23
+-601.1342301078
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+361.48899563696
+20
+-541.006514010435
+30
+587.016306884026
+11
+267.610079200261
+21
+-646.067882633009
+31
+628.271001705821
+12
+388.509617834311
+22
+-581.445732901797
+32
+628.271001705821
+13
+388.509617834311
+23
+-581.445732901797
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+408.513405265645
+20
+-611.383516446667
+30
+680.911023534629
+11
+494.478949733692
+21
+-494.478949733692
+31
+628.271001705821
+12
+388.509617834311
+22
+-581.445732901797
+32
+628.271001705821
+13
+388.509617834311
+23
+-581.445732901797
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+494.478949733692
+20
+-494.478949733692
+30
+628.271001705821
+11
+408.513405265645
+21
+-611.383516446667
+31
+680.911023534629
+12
+519.938941830878
+22
+-519.938941830878
+32
+680.911023534629
+13
+519.938941830878
+23
+-519.938941830878
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+420.078334296643
+20
+-628.691655879276
+30
+741.194313252463
+11
+519.938941830878
+21
+-519.938941830878
+31
+680.911023534629
+12
+408.513405265645
+22
+-611.383516446667
+32
+680.911023534629
+13
+408.513405265645
+23
+-611.383516446667
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+519.938941830878
+20
+-519.938941830878
+30
+680.911023534629
+11
+420.078334296643
+21
+-628.691655879276
+31
+741.194313252463
+12
+534.658304488796
+22
+-534.658304488796
+32
+741.194313252463
+13
+534.658304488796
+23
+-534.658304488796
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+422.38228049373
+20
+-632.139755034707
+30
+804.835469255871
+11
+534.658304488796
+21
+-534.658304488796
+31
+741.194313252463
+12
+420.078334296643
+22
+-628.691655879276
+32
+741.194313252463
+13
+420.078334296643
+23
+-628.691655879276
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+534.658304488796
+20
+-534.658304488796
+30
+741.194313252463
+11
+422.38228049373
+21
+-632.139755034707
+31
+804.835469255871
+12
+537.590671780316
+22
+-537.590671780316
+32
+804.835469255871
+13
+537.590671780316
+23
+-537.590671780316
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+415.26146157539
+20
+-621.482696406622
+30
+867.310386884026
+11
+537.590671780316
+21
+-537.590671780316
+31
+804.835469255871
+12
+422.38228049373
+22
+-632.139755034707
+32
+804.835469255871
+13
+422.38228049373
+23
+-632.139755034707
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+537.590671780316
+20
+-537.590671780316
+30
+804.835469255871
+11
+415.26146157539
+21
+-621.482696406622
+31
+867.310386884026
+12
+528.527588401294
+22
+-528.527588401294
+32
+867.310386884026
+13
+528.527588401294
+23
+-528.527588401294
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+330.32974370685
+20
+-330.32974370685
+30
+1100.8886000213
+11
+415.26146157539
+21
+-621.482696406622
+31
+867.310386884026
+12
+259.538414235775
+22
+-388.426686378325
+32
+1100.8886000213
+13
+259.538414235775
+23
+-388.426686378325
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+415.26146157539
+20
+-621.482696406622
+30
+867.310386884026
+11
+330.32974370685
+21
+-330.32974370685
+31
+1100.8886000213
+12
+528.527588401294
+22
+-528.527588401294
+32
+867.310386884026
+13
+528.527588401294
+23
+-528.527588401294
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+337.399937905583
+20
+-504.954691392474
+30
+1287.75132002131
+11
+495.494614285554
+21
+-495.494614285554
+31
+1100.8886000213
+12
+389.307620352121
+22
+-582.640028068573
+32
+1100.8886000213
+13
+389.307620352121
+23
+-582.640028068573
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+495.494614285554
+20
+-495.494614285554
+30
+1100.8886000213
+11
+337.399937905583
+21
+-504.954691392474
+31
+1287.75132002131
+12
+429.428666054072
+22
+-429.428666054072
+32
+1287.75132002131
+13
+429.428666054072
+23
+-429.428666054072
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+363.353779128852
+20
+-543.797359730523
+30
+1474.6140400213
+11
+528.527588401294
+21
+-528.527588401294
+31
+1287.75132002131
+12
+415.26146157539
+22
+-621.482696406623
+32
+1287.75132002131
+13
+415.26146157539
+23
+-621.482696406623
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+528.527588401294
+20
+-528.527588401294
+30
+1287.75132002131
+11
+363.353779128852
+21
+-543.797359730523
+31
+1474.6140400213
+12
+462.461640169813
+22
+-462.461640169813
+32
+1474.6140400213
+13
+462.461640169813
+23
+-462.461640169813
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-607.303843605455
+30
+1287.75132002131
+11
+136.706656519425
+21
+-687.270773156591
+31
+1100.8886000213
+12
+0.0
+22
+-700.735203605455
+32
+1100.8886000213
+13
+0.0
+23
+-700.735203605455
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+136.706656519425
+20
+-687.270773156591
+30
+1100.8886000213
+11
+0.0
+21
+-607.303843605455
+31
+1287.75132002131
+12
+118.479102410621
+22
+-595.634670540536
+32
+1287.75132002131
+13
+118.479102410621
+23
+-595.634670540536
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+389.307620352121
+20
+-582.640028068573
+30
+1661.47676002131
+11
+561.560562517035
+21
+-561.560562517035
+31
+1474.6140400213
+12
+441.215302798659
+22
+-660.325364744673
+32
+1474.6140400213
+13
+441.215302798659
+23
+-660.325364744673
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+561.560562517035
+20
+-561.560562517035
+30
+1474.6140400213
+11
+389.307620352121
+21
+-582.640028068573
+31
+1661.47676002131
+12
+495.494614285554
+22
+-495.494614285554
+32
+1661.47676002131
+13
+495.494614285554
+23
+-495.494614285554
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+926.689746301964
+20
+-184.330051263379
+30
+2234.76895526921
+11
+964.850983209363
+21
+-1.80477854883065e-13
+31
+2169.85154878419
+12
+946.311642114328
+22
+-188.233089011893
+32
+2169.85154878419
+13
+946.311642114328
+23
+-188.233089011893
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+964.850983209363
+20
+-1.80477854883065e-13
+30
+2169.85154878419
+11
+926.689746301964
+21
+-184.330051263379
+31
+2234.76895526921
+12
+944.844671731792
+22
+-1.80477854883065e-13
+32
+2234.76895526921
+13
+944.844671731792
+23
+-1.80477854883065e-13
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+490.247554968877
+20
+-733.707315899088
+30
+1715.23764468454
+11
+594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+467.1777430806
+22
+-699.180902483484
+32
+1661.47676002131
+13
+467.1777430806
+23
+-699.180902483484
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+594.604481158485
+20
+-594.604481158485
+30
+1661.47676002131
+11
+490.247554968877
+21
+-733.707315899088
+31
+1715.23764468454
+12
+623.966782191491
+22
+-623.966782191491
+32
+1715.23764468454
+13
+623.966782191491
+23
+-623.966782191491
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+509.589579018778
+20
+-762.654700553784
+30
+1773.56823006635
+11
+623.966782191491
+21
+-623.966782191491
+31
+1715.23764468454
+12
+490.247554968877
+22
+-733.707315899088
+32
+1715.23764468454
+13
+490.247554968877
+23
+-733.707315899088
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+623.966782191491
+20
+-623.966782191491
+30
+1715.23764468454
+11
+509.589579018778
+21
+-762.654700553784
+31
+1773.56823006635
+12
+648.584509266648
+22
+-648.584509266648
+32
+1773.56823006635
+13
+648.584509266648
+23
+-648.584509266648
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+490.247554968877
+20
+-733.707315899088
+30
+2355.16675535807
+11
+648.584509266648
+21
+-648.584509266648
+31
+2296.83616997626
+12
+509.589579018778
+22
+-762.654700553784
+32
+2296.83616997626
+13
+509.589579018778
+23
+-762.654700553784
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+2296.83616997626
+11
+490.247554968877
+21
+-733.707315899088
+31
+2355.16675535807
+12
+623.96678219149
+22
+-623.966782191491
+32
+2355.16675535807
+13
+623.96678219149
+23
+-623.966782191491
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+899.612557411552
+20
+-178.944063519201
+30
+2296.83616997626
+11
+944.844671731792
+21
+-1.80477854883065e-13
+31
+2234.76895526921
+12
+926.689746301964
+22
+-184.330051263379
+32
+2234.76895526921
+13
+926.689746301964
+23
+-184.330051263379
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+944.844671731792
+20
+-1.80477854883065e-13
+30
+2234.76895526921
+11
+899.612557411552
+21
+-178.944063519201
+31
+2296.83616997626
+12
+917.237009349992
+22
+-1.80477854883065e-13
+32
+2296.83616997626
+13
+917.237009349992
+23
+-1.80477854883065e-13
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+865.466789057043
+20
+-172.152047899808
+30
+2355.16675535807
+11
+917.237009349992
+21
+-1.80477854883065e-13
+31
+2296.83616997626
+12
+899.612557411552
+22
+-178.944063519201
+32
+2296.83616997626
+13
+899.612557411552
+23
+-178.944063519201
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+917.237009349992
+20
+-1.80477854883065e-13
+30
+2296.83616997626
+11
+865.466789057043
+21
+-172.152047899808
+31
+2355.16675535807
+12
+882.422285845505
+22
+-1.80477854883065e-13
+32
+2355.16675535807
+13
+882.422285845505
+23
+-1.80477854883065e-13
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+824.740107573921
+20
+-164.051007270483
+30
+2408.9276400213
+11
+882.422285845505
+21
+-1.80477854883065e-13
+31
+2355.16675535807
+12
+865.466789057043
+22
+-172.152047899808
+32
+2355.16675535807
+13
+865.466789057043
+23
+-172.152047899808
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+882.422285845505
+20
+-1.80477854883065e-13
+30
+2355.16675535807
+11
+824.740107573921
+21
+-164.051007270483
+31
+2408.9276400213
+12
+840.897721502147
+22
+-1.80477854883065e-13
+32
+2408.9276400213
+13
+840.897721502147
+23
+-1.80477854883065e-13
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+747.450883605455
+20
+-1.80477854883065e-13
+30
+2549.0746800213
+11
+733.088824464619
+21
+-145.820433573828
+31
+2408.9276400213
+12
+733.088824464618
+22
+-145.820433573828
+32
+2549.0746800213
+13
+733.088824464618
+23
+-145.820433573828
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.088824464619
+20
+-145.820433573828
+30
+2408.9276400213
+11
+747.450883605455
+21
+-1.80477854883065e-13
+31
+2549.0746800213
+12
+747.450883605455
+22
+-1.80477854883065e-13
+32
+2408.9276400213
+13
+747.450883605455
+23
+-1.80477854883065e-13
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+467.1777430806
+20
+-699.180902483484
+30
+2408.9276400213
+11
+623.96678219149
+21
+-623.966782191491
+31
+2355.16675535807
+12
+490.247554968877
+22
+-733.707315899088
+32
+2355.16675535807
+13
+490.247554968877
+23
+-733.707315899088
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+623.96678219149
+20
+-623.966782191491
+30
+2355.16675535807
+11
+467.1777430806
+21
+-699.180902483484
+31
+2408.9276400213
+12
+594.604481158485
+22
+-594.604481158485
+32
+2408.9276400213
+13
+594.604481158485
+23
+-594.604481158485
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+415.26146157539
+20
+-621.482696406622
+30
+2549.0746800213
+11
+528.527588401294
+21
+-528.527588401294
+31
+2408.9276400213
+12
+415.26146157539
+22
+-621.482696406623
+32
+2408.9276400213
+13
+415.26146157539
+23
+-621.482696406623
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+528.527588401294
+20
+-528.527588401294
+30
+2408.9276400213
+11
+415.26146157539
+21
+-621.482696406622
+31
+2549.0746800213
+12
+528.527588401294
+22
+-528.527588401294
+32
+2549.0746800213
+13
+528.527588401294
+23
+-528.527588401294
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+388.509617834311
+20
+-581.445732901797
+30
+628.271001705821
+11
+460.088220979597
+21
+-460.088220979597
+31
+587.016306884026
+12
+361.48899563696
+22
+-541.006514010435
+32
+587.016306884026
+13
+361.48899563696
+23
+-541.006514010435
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+460.088220979597
+20
+-460.088220979597
+30
+587.016306884026
+11
+388.509617834311
+21
+-581.445732901797
+31
+628.271001705821
+12
+494.478949733692
+22
+-494.478949733692
+32
+628.271001705821
+13
+494.478949733692
+23
+-494.478949733692
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+611.383516446667
+20
+-408.513405265645
+30
+680.911023534629
+11
+494.478949733692
+21
+-494.478949733692
+31
+628.271001705821
+12
+519.938941830878
+22
+-519.938941830878
+32
+680.911023534629
+13
+519.938941830878
+23
+-519.938941830878
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+494.478949733692
+20
+-494.478949733692
+30
+628.271001705821
+11
+611.383516446667
+21
+-408.513405265645
+31
+680.911023534629
+12
+581.445732901797
+22
+-388.509617834311
+32
+628.271001705821
+13
+581.445732901797
+23
+-388.509617834311
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+628.691655879276
+20
+-420.078334296643
+30
+741.194313252463
+11
+519.938941830878
+21
+-519.938941830878
+31
+680.911023534629
+12
+534.658304488796
+22
+-534.658304488796
+32
+741.194313252463
+13
+534.658304488796
+23
+-534.658304488796
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+519.938941830878
+20
+-519.938941830878
+30
+680.911023534629
+11
+628.691655879276
+21
+-420.078334296643
+31
+741.194313252463
+12
+611.383516446667
+22
+-408.513405265645
+32
+680.911023534629
+13
+611.383516446667
+23
+-408.513405265645
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+632.139755034707
+20
+-422.38228049373
+30
+804.835469255871
+11
+534.658304488796
+21
+-534.658304488796
+31
+741.194313252463
+12
+537.590671780316
+22
+-537.590671780316
+32
+804.835469255871
+13
+537.590671780316
+23
+-537.590671780316
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+534.658304488796
+20
+-534.658304488796
+30
+741.194313252463
+11
+632.139755034707
+21
+-422.38228049373
+31
+804.835469255871
+12
+628.691655879276
+22
+-420.078334296643
+32
+741.194313252463
+13
+628.691655879276
+23
+-420.078334296643
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+528.527588401294
+20
+-528.527588401294
+30
+867.310386884026
+11
+632.139755034707
+21
+-422.38228049373
+31
+804.835469255871
+12
+537.590671780316
+22
+-537.590671780316
+32
+804.835469255871
+13
+537.590671780316
+23
+-537.590671780316
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+632.139755034707
+20
+-422.38228049373
+30
+804.835469255871
+11
+528.527588401294
+21
+-528.527588401294
+31
+867.310386884026
+12
+621.482696406622
+22
+-415.26146157539
+32
+867.310386884026
+13
+621.482696406622
+23
+-415.26146157539
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+388.426686378325
+20
+-259.538414235776
+30
+1100.8886000213
+11
+528.527588401294
+21
+-528.527588401294
+31
+867.310386884026
+12
+330.32974370685
+22
+-330.32974370685
+32
+1100.8886000213
+13
+330.32974370685
+23
+-330.32974370685
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+528.527588401294
+20
+-528.527588401294
+30
+867.310386884026
+11
+388.426686378325
+21
+-259.538414235776
+31
+1100.8886000213
+12
+621.482696406622
+22
+-415.26146157539
+32
+867.310386884026
+13
+621.482696406622
+23
+-415.26146157539
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-946.311642114328
+20
+-188.233089011893
+30
+2169.85154878419
+11
+-872.922653615348
+21
+-361.576402030189
+31
+2234.76895526921
+12
+-891.406075310522
+22
+-369.232485975391
+32
+2169.85154878419
+13
+-891.406075310522
+23
+-369.232485975391
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-872.922653615348
+20
+-361.576402030189
+30
+2234.76895526921
+11
+-946.311642114328
+21
+-188.233089011893
+31
+2169.85154878419
+12
+-926.689746301964
+22
+-184.330051263378
+32
+2234.76895526921
+13
+-926.689746301964
+23
+-184.330051263378
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+429.428666054072
+20
+-429.428666054072
+30
+1287.75132002131
+11
+582.640028068573
+21
+-389.307620352121
+31
+1100.8886000213
+12
+495.494614285554
+22
+-495.494614285554
+32
+1100.8886000213
+13
+495.494614285554
+23
+-495.494614285554
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+582.640028068573
+20
+-389.307620352121
+30
+1100.8886000213
+11
+429.428666054072
+21
+-429.428666054072
+31
+1287.75132002131
+12
+504.954691392474
+22
+-337.399937905583
+32
+1287.75132002131
+13
+504.954691392474
+23
+-337.399937905583
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+462.461640169813
+20
+-462.461640169813
+30
+1474.6140400213
+11
+621.482696406623
+21
+-415.26146157539
+31
+1287.75132002131
+12
+528.527588401294
+22
+-528.527588401294
+32
+1287.75132002131
+13
+528.527588401294
+23
+-528.527588401294
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+621.482696406623
+20
+-415.26146157539
+30
+1287.75132002131
+11
+462.461640169813
+21
+-462.461640169813
+31
+1474.6140400213
+12
+543.797359730523
+22
+-363.353779128852
+32
+1474.6140400213
+13
+543.797359730523
+23
+-363.353779128852
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+495.494614285554
+20
+-495.494614285554
+30
+1661.47676002131
+11
+660.325364744673
+21
+-441.21530279866
+31
+1474.6140400213
+12
+561.560562517035
+22
+-561.560562517035
+32
+1474.6140400213
+13
+561.560562517035
+23
+-561.560562517035
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+660.325364744673
+20
+-441.21530279866
+30
+1474.6140400213
+11
+495.494614285554
+21
+-495.494614285554
+31
+1661.47676002131
+12
+582.640028068573
+22
+-389.307620352121
+32
+1661.47676002131
+13
+582.640028068573
+23
+-389.307620352121
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+685.862005953678
+20
+-136.426435300007
+30
+628.271001705821
+11
+650.663001997455
+21
+-1.80477854883065e-13
+31
+587.016306884026
+12
+638.160694862082
+22
+-126.938054583664
+32
+587.016306884026
+13
+638.160694862082
+23
+-126.938054583664
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+650.663001997455
+20
+-1.80477854883065e-13
+30
+587.016306884026
+11
+685.862005953678
+21
+-136.426435300007
+31
+628.271001705821
+12
+699.298837021391
+22
+-1.80477854883065e-13
+32
+628.271001705821
+13
+699.298837021391
+23
+-1.80477854883065e-13
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.707315899088
+20
+-490.247554968878
+30
+1715.23764468454
+11
+594.604481158485
+21
+-594.604481158485
+31
+1661.47676002131
+12
+623.966782191491
+22
+-623.966782191491
+32
+1715.23764468454
+13
+623.966782191491
+23
+-623.966782191491
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+594.604481158485
+20
+-594.604481158485
+30
+1661.47676002131
+11
+733.707315899088
+21
+-490.247554968878
+31
+1715.23764468454
+12
+699.180902483483
+22
+-467.1777430806
+32
+1661.47676002131
+13
+699.180902483483
+23
+-467.1777430806
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+762.654700553784
+20
+-509.589579018778
+30
+1773.56823006635
+11
+623.966782191491
+21
+-623.966782191491
+31
+1715.23764468454
+12
+648.584509266648
+22
+-648.584509266648
+32
+1773.56823006635
+13
+648.584509266648
+23
+-648.584509266648
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+623.966782191491
+20
+-623.966782191491
+30
+1715.23764468454
+11
+762.654700553784
+21
+-509.589579018778
+31
+1773.56823006635
+12
+733.707315899088
+22
+-490.247554968878
+32
+1715.23764468454
+13
+733.707315899088
+23
+-490.247554968878
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+785.609632890959
+20
+-524.927574441361
+30
+1835.6354447734
+11
+648.584509266648
+21
+-648.584509266648
+31
+1773.56823006635
+12
+668.106074549527
+22
+-668.106074549528
+32
+1835.6354447734
+13
+668.106074549527
+23
+-668.106074549528
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+1773.56823006635
+11
+785.609632890959
+21
+-524.927574441361
+31
+1835.6354447734
+12
+762.654700553784
+22
+-509.589579018778
+32
+1773.56823006635
+13
+762.654700553784
+23
+-509.589579018778
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+136.426435300007
+20
+-685.862005953678
+30
+628.271001705821
+11
+0.0
+21
+-650.663001997455
+31
+587.016306884026
+12
+0.0
+22
+-699.298837021391
+32
+628.271001705821
+13
+0.0
+23
+-699.298837021391
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-650.663001997455
+30
+587.016306884026
+11
+136.426435300007
+21
+-685.862005953678
+31
+628.271001705821
+12
+126.938054583664
+22
+-638.160694862082
+32
+587.016306884026
+13
+126.938054583664
+23
+-638.160694862082
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+2296.83616997626
+11
+785.609632890959
+21
+-524.927574441361
+31
+2234.76895526921
+12
+668.106074549527
+22
+-668.106074549528
+32
+2234.76895526921
+13
+668.106074549527
+23
+-668.106074549528
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+785.609632890959
+20
+-524.927574441361
+30
+2234.76895526921
+11
+648.584509266648
+21
+-648.584509266648
+31
+2296.83616997626
+12
+762.654700553784
+22
+-509.589579018778
+32
+2296.83616997626
+13
+762.654700553784
+23
+-509.589579018778
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+623.96678219149
+20
+-623.966782191491
+30
+2355.16675535807
+11
+762.654700553784
+21
+-509.589579018778
+31
+2296.83616997626
+12
+648.584509266648
+22
+-648.584509266648
+32
+2296.83616997626
+13
+648.584509266648
+23
+-648.584509266648
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+762.654700553784
+20
+-509.589579018778
+30
+2296.83616997626
+11
+623.96678219149
+21
+-623.966782191491
+31
+2355.16675535807
+12
+733.707315899088
+22
+-490.247554968877
+32
+2355.16675535807
+13
+733.707315899088
+23
+-490.247554968877
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+594.604481158485
+20
+-594.604481158485
+30
+2408.9276400213
+11
+733.707315899088
+21
+-490.247554968877
+31
+2355.16675535807
+12
+623.96678219149
+22
+-623.966782191491
+32
+2355.16675535807
+13
+623.96678219149
+23
+-623.966782191491
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.707315899088
+20
+-490.247554968877
+30
+2355.16675535807
+11
+594.604481158485
+21
+-594.604481158485
+31
+2408.9276400213
+12
+699.180902483483
+22
+-467.1777430806
+32
+2408.9276400213
+13
+699.180902483483
+23
+-467.1777430806
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+528.527588401294
+20
+-528.527588401294
+30
+2549.0746800213
+11
+621.482696406623
+21
+-415.26146157539
+31
+2408.9276400213
+12
+528.527588401294
+22
+-528.527588401294
+32
+2408.9276400213
+13
+528.527588401294
+23
+-528.527588401294
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+621.482696406623
+20
+-415.26146157539
+30
+2408.9276400213
+11
+528.527588401294
+21
+-528.527588401294
+31
+2549.0746800213
+12
+621.482696406622
+22
+-415.26146157539
+32
+2549.0746800213
+13
+621.482696406622
+23
+-415.26146157539
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+494.478949733692
+20
+-494.478949733692
+30
+628.271001705821
+11
+541.006514010434
+21
+-361.48899563696
+31
+587.016306884026
+12
+460.088220979597
+22
+-460.088220979597
+32
+587.016306884026
+13
+460.088220979597
+23
+-460.088220979597
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+541.006514010434
+20
+-361.48899563696
+30
+587.016306884026
+11
+494.478949733692
+21
+-494.478949733692
+31
+628.271001705821
+12
+581.445732901797
+22
+-388.509617834311
+32
+628.271001705821
+13
+581.445732901797
+23
+-388.509617834311
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+698.564739508658
+20
+-289.354989300114
+30
+741.194313252463
+11
+611.383516446667
+21
+-408.513405265645
+31
+680.911023534629
+12
+628.691655879276
+22
+-420.078334296643
+32
+741.194313252463
+13
+628.691655879276
+23
+-420.078334296643
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+611.383516446667
+20
+-408.513405265645
+30
+680.911023534629
+11
+698.564739508658
+21
+-289.354989300114
+31
+741.194313252463
+12
+679.332965393237
+22
+-281.388927633011
+32
+680.911023534629
+13
+679.332965393237
+23
+-281.388927633011
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+702.396062011173
+20
+-290.941975042481
+30
+804.835469255871
+11
+628.691655879276
+21
+-420.078334296643
+31
+741.194313252463
+12
+632.139755034707
+22
+-422.38228049373
+32
+804.835469255871
+13
+632.139755034707
+23
+-422.38228049373
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+628.691655879276
+20
+-420.078334296643
+30
+741.194313252463
+11
+702.396062011173
+21
+-290.941975042481
+31
+804.835469255871
+12
+698.564739508658
+22
+-289.354989300114
+32
+741.194313252463
+13
+698.564739508658
+23
+-289.354989300114
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+621.482696406622
+20
+-415.26146157539
+30
+867.310386884026
+11
+702.396062011173
+21
+-290.941975042481
+31
+804.835469255871
+12
+632.139755034707
+22
+-422.38228049373
+32
+804.835469255871
+13
+632.139755034707
+23
+-422.38228049373
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+702.396062011173
+20
+-290.941975042481
+30
+804.835469255871
+11
+621.482696406622
+21
+-415.26146157539
+31
+867.310386884026
+12
+690.554572920556
+22
+-286.037069662455
+32
+867.310386884026
+13
+690.554572920556
+23
+-286.037069662455
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+543.797359730523
+20
+-363.353779128852
+30
+1474.6140400213
+11
+690.554572920556
+21
+-286.037069662455
+31
+1287.75132002131
+12
+621.482696406623
+22
+-415.26146157539
+32
+1287.75132002131
+13
+621.482696406623
+23
+-415.26146157539
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+690.554572920556
+20
+-286.037069662455
+30
+1287.75132002131
+11
+543.797359730523
+21
+-363.353779128852
+31
+1474.6140400213
+12
+604.235251721863
+22
+-250.282436127116
+32
+1474.6140400213
+13
+604.235251721863
+23
+-250.282436127116
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+431.596609324475
+20
+-178.77316905644
+30
+1100.8886000213
+11
+621.482696406622
+21
+-415.26146157539
+31
+867.310386884026
+12
+388.426686378325
+22
+-259.538414235776
+32
+1100.8886000213
+13
+388.426686378325
+23
+-259.538414235776
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+621.482696406622
+20
+-415.26146157539
+30
+867.310386884026
+11
+431.596609324475
+21
+-178.77316905644
+31
+1100.8886000213
+12
+690.554572920556
+22
+-286.037069662455
+32
+867.310386884026
+13
+690.554572920556
+23
+-286.037069662455
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+504.954691392474
+20
+-337.399937905583
+30
+1287.75132002131
+11
+647.39491232121
+21
+-268.159752894786
+31
+1100.8886000213
+12
+582.640028068573
+22
+-389.307620352121
+32
+1100.8886000213
+13
+582.640028068573
+23
+-389.307620352121
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+647.39491232121
+20
+-268.159752894786
+30
+1100.8886000213
+11
+504.954691392474
+21
+-337.399937905583
+31
+1287.75132002131
+12
+561.075591122516
+22
+-232.405119359447
+32
+1287.75132002131
+13
+561.075591122516
+23
+-232.405119359447
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-946.311642114328
+20
+-188.233089011893
+30
+1900.55285125842
+11
+-976.970215709362
+21
+-1.80477854883065e-13
+31
+1967.39330582966
+12
+-958.198006960111
+22
+-190.597433982906
+32
+1967.39330582966
+13
+-958.198006960111
+23
+-190.597433982906
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-976.970215709362
+20
+-1.80477854883065e-13
+30
+1967.39330582966
+11
+-946.311642114328
+21
+-188.233089011893
+31
+1900.55285125842
+12
+-964.850983209364
+22
+-1.80477854883065e-13
+32
+1900.55285125842
+13
+-964.850983209364
+23
+-1.80477854883065e-13
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+582.640028068573
+20
+-389.307620352121
+30
+1661.47676002131
+11
+733.714233519903
+21
+-303.914386430124
+31
+1474.6140400213
+12
+660.325364744673
+22
+-441.21530279866
+32
+1474.6140400213
+13
+660.325364744673
+23
+-441.21530279866
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.714233519903
+20
+-303.914386430124
+30
+1474.6140400213
+11
+582.640028068573
+21
+-389.307620352121
+31
+1661.47676002131
+12
+647.39491232121
+22
+-268.159752894786
+32
+1661.47676002131
+13
+647.39491232121
+23
+-268.159752894786
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+815.251888924487
+20
+-337.688389142806
+30
+1715.23764468454
+11
+699.180902483483
+21
+-467.1777430806
+31
+1661.47676002131
+12
+733.707315899088
+22
+-490.247554968878
+32
+1715.23764468454
+13
+733.707315899088
+23
+-490.247554968878
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+699.180902483483
+20
+-467.1777430806
+30
+1661.47676002131
+11
+815.251888924487
+21
+-337.688389142806
+31
+1715.23764468454
+12
+776.88819383121
+22
+-321.797626332425
+32
+1661.47676002131
+13
+776.88819383121
+23
+-321.797626332425
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+847.416499400322
+20
+-351.011407030345
+30
+1773.56823006635
+11
+733.707315899088
+21
+-490.247554968878
+31
+1715.23764468454
+12
+762.654700553784
+22
+-509.589579018778
+32
+1773.56823006635
+13
+762.654700553784
+23
+-509.589579018778
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.707315899088
+20
+-490.247554968878
+30
+1715.23764468454
+11
+847.416499400322
+21
+-351.011407030345
+31
+1773.56823006635
+12
+815.251888924487
+22
+-337.688389142806
+32
+1715.23764468454
+13
+815.251888924487
+23
+-337.688389142806
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+872.922653615349
+20
+-361.576402030189
+30
+1835.6354447734
+11
+762.654700553784
+21
+-509.589579018778
+31
+1773.56823006635
+12
+785.609632890959
+22
+-524.927574441361
+32
+1835.6354447734
+13
+785.609632890959
+23
+-524.927574441361
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+762.654700553784
+20
+-509.589579018778
+30
+1773.56823006635
+11
+872.922653615349
+21
+-361.576402030189
+31
+1835.6354447734
+12
+847.416499400322
+22
+-351.011407030345
+32
+1773.56823006635
+13
+847.416499400322
+23
+-351.011407030345
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+891.406075310522
+20
+-369.232485975391
+30
+1900.55285125842
+11
+785.609632890959
+21
+-524.927574441361
+31
+1835.6354447734
+12
+802.244272938819
+22
+-536.042485570819
+32
+1900.55285125842
+13
+802.244272938819
+23
+-536.042485570819
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+785.609632890959
+20
+-524.927574441361
+30
+1835.6354447734
+11
+891.406075310522
+21
+-369.232485975391
+31
+1900.55285125842
+12
+872.922653615349
+22
+-361.576402030189
+32
+1835.6354447734
+13
+872.922653615349
+23
+-361.576402030189
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+906.35287591729
+20
+-375.423653500801
+30
+2035.2022000213
+11
+812.321046486997
+21
+-542.775570394861
+31
+1967.39330582966
+12
+815.696038096871
+22
+-545.030667691736
+32
+2035.2022000213
+13
+815.696038096871
+23
+-545.030667691736
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+812.321046486997
+20
+-542.775570394861
+30
+1967.39330582966
+11
+906.35287591729
+21
+-375.423653500801
+31
+2035.2022000213
+12
+902.602786167016
+22
+-373.87031546612
+32
+1967.39330582966
+13
+902.602786167016
+23
+-373.87031546612
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+902.602786167016
+20
+-373.87031546612
+30
+1967.39330582966
+11
+802.244272938819
+21
+-536.042485570819
+31
+1900.55285125842
+12
+812.321046486997
+22
+-542.775570394861
+32
+1967.39330582966
+13
+812.321046486997
+23
+-542.775570394861
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.244272938819
+20
+-536.042485570819
+30
+1900.55285125842
+11
+902.602786167016
+21
+-373.87031546612
+31
+1967.39330582966
+12
+891.406075310522
+22
+-369.232485975391
+32
+1900.55285125842
+13
+891.406075310522
+23
+-369.232485975391
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+812.321046486996
+20
+-542.775570394861
+30
+2103.01109421295
+11
+906.35287591729
+21
+-375.423653500801
+31
+2035.2022000213
+12
+815.696038096871
+22
+-545.030667691736
+32
+2035.2022000213
+13
+815.696038096871
+23
+-545.030667691736
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+906.35287591729
+20
+-375.423653500801
+30
+2035.2022000213
+11
+812.321046486996
+21
+-542.775570394861
+31
+2103.01109421295
+12
+902.602786167016
+22
+-373.87031546612
+32
+2103.01109421295
+13
+902.602786167016
+23
+-373.87031546612
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-926.689746301964
+20
+-184.330051263378
+30
+1835.6354447734
+11
+-964.850983209364
+21
+-1.80477854883065e-13
+31
+1900.55285125842
+12
+-946.311642114328
+22
+-188.233089011893
+32
+1900.55285125842
+13
+-946.311642114328
+23
+-188.233089011893
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-964.850983209364
+20
+-1.80477854883065e-13
+30
+1900.55285125842
+11
+-926.689746301964
+21
+-184.330051263378
+31
+1835.6354447734
+12
+-944.844671731792
+22
+0.0
+32
+1835.6354447734
+13
+-944.844671731792
+23
+0.0
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.244272938819
+20
+-536.042485570818
+30
+2169.85154878419
+11
+902.602786167016
+21
+-373.87031546612
+31
+2103.01109421295
+12
+812.321046486996
+22
+-542.775570394861
+32
+2103.01109421295
+13
+812.321046486996
+23
+-542.775570394861
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+902.602786167016
+20
+-373.87031546612
+30
+2103.01109421295
+11
+802.244272938819
+21
+-536.042485570818
+31
+2169.85154878419
+12
+891.406075310522
+22
+-369.232485975391
+32
+2169.85154878419
+13
+891.406075310522
+23
+-369.232485975391
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+785.609632890959
+20
+-524.927574441361
+30
+2234.76895526921
+11
+891.406075310522
+21
+-369.232485975391
+31
+2169.85154878419
+12
+802.244272938819
+22
+-536.042485570818
+32
+2169.85154878419
+13
+802.244272938819
+23
+-536.042485570818
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+891.406075310522
+20
+-369.232485975391
+30
+2169.85154878419
+11
+785.609632890959
+21
+-524.927574441361
+31
+2234.76895526921
+12
+872.922653615349
+22
+-361.576402030189
+32
+2234.76895526921
+13
+872.922653615349
+23
+-361.576402030189
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-519.938941830878
+20
+-519.938941830878
+30
+680.911023534629
+11
+-388.509617834311
+21
+-581.445732901797
+31
+628.271001705821
+12
+-494.478949733692
+22
+-494.478949733692
+32
+628.271001705821
+13
+-494.478949733692
+23
+-494.478949733692
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-388.509617834311
+20
+-581.445732901797
+30
+628.271001705821
+11
+-519.938941830878
+21
+-519.938941830878
+31
+680.911023534629
+12
+-408.513405265646
+22
+-611.383516446667
+32
+680.911023534629
+13
+-408.513405265646
+23
+-611.383516446667
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+762.654700553784
+20
+-509.589579018778
+30
+2296.83616997626
+11
+872.922653615349
+21
+-361.576402030189
+31
+2234.76895526921
+12
+785.609632890959
+22
+-524.927574441361
+32
+2234.76895526921
+13
+785.609632890959
+23
+-524.927574441361
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+872.922653615349
+20
+-361.576402030189
+30
+2234.76895526921
+11
+762.654700553784
+21
+-509.589579018778
+31
+2296.83616997626
+12
+847.416499400322
+22
+-351.011407030345
+32
+2296.83616997626
+13
+847.416499400322
+23
+-351.011407030345
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.707315899088
+20
+-490.247554968877
+30
+2355.16675535807
+11
+847.416499400322
+21
+-351.011407030345
+31
+2296.83616997626
+12
+762.654700553784
+22
+-509.589579018778
+32
+2296.83616997626
+13
+762.654700553784
+23
+-509.589579018778
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+847.416499400322
+20
+-351.011407030345
+30
+2296.83616997626
+11
+733.707315899088
+21
+-490.247554968877
+31
+2355.16675535807
+12
+815.251888924486
+22
+-337.688389142806
+32
+2355.16675535807
+13
+815.251888924486
+23
+-337.688389142806
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+699.180902483483
+20
+-467.1777430806
+30
+2408.9276400213
+11
+815.251888924486
+21
+-337.688389142806
+31
+2355.16675535807
+12
+733.707315899088
+22
+-490.247554968877
+32
+2355.16675535807
+13
+733.707315899088
+23
+-490.247554968877
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+815.251888924486
+20
+-337.688389142806
+30
+2355.16675535807
+11
+699.180902483483
+21
+-467.1777430806
+31
+2408.9276400213
+12
+776.88819383121
+22
+-321.797626332425
+32
+2408.9276400213
+13
+776.88819383121
+23
+-321.797626332425
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+621.482696406622
+20
+-415.26146157539
+30
+2549.0746800213
+11
+690.554572920556
+21
+-286.037069662455
+31
+2408.9276400213
+12
+621.482696406623
+22
+-415.26146157539
+32
+2408.9276400213
+13
+621.482696406623
+23
+-415.26146157539
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+690.554572920556
+20
+-286.037069662455
+30
+2408.9276400213
+11
+621.482696406622
+21
+-415.26146157539
+31
+2549.0746800213
+12
+690.554572920556
+22
+-286.037069662455
+32
+2549.0746800213
+13
+690.554572920556
+23
+-286.037069662455
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+581.445732901797
+20
+-388.509617834311
+30
+628.271001705821
+11
+601.1342301078
+21
+-248.997950917359
+31
+587.016306884026
+12
+541.006514010434
+22
+-361.48899563696
+32
+587.016306884026
+13
+541.006514010434
+23
+-361.48899563696
+33
+587.016306884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+601.1342301078
+20
+-248.997950917359
+30
+587.016306884026
+11
+581.445732901797
+21
+-388.509617834311
+31
+628.271001705821
+12
+646.067882633009
+22
+-267.610079200261
+32
+628.271001705821
+13
+646.067882633009
+23
+-267.610079200261
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+721.176029454062
+20
+-143.45083131617
+30
+680.911023534629
+11
+646.067882633009
+21
+-267.610079200261
+31
+628.271001705821
+12
+679.332965393237
+22
+-281.388927633011
+32
+680.911023534629
+13
+679.332965393237
+23
+-281.388927633011
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+646.067882633009
+20
+-267.610079200261
+30
+628.271001705821
+11
+721.176029454062
+21
+-143.45083131617
+31
+680.911023534629
+12
+685.862005953678
+22
+-136.426435300007
+32
+628.271001705821
+13
+685.862005953678
+23
+-136.426435300007
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+741.592371958341
+20
+-147.51189433693
+30
+741.194313252463
+11
+679.332965393237
+21
+-281.388927633011
+31
+680.911023534629
+12
+698.564739508658
+22
+-289.354989300114
+32
+741.194313252463
+13
+698.564739508658
+23
+-289.354989300114
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+679.332965393237
+20
+-281.388927633011
+30
+680.911023534629
+11
+741.592371958341
+21
+-147.51189433693
+31
+741.194313252463
+12
+721.176029454062
+22
+-143.45083131617
+32
+680.911023534629
+13
+721.176029454062
+23
+-143.45083131617
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+745.659682232799
+20
+-148.32093265249
+30
+804.835469255871
+11
+698.564739508658
+21
+-289.354989300114
+31
+741.194313252463
+12
+702.396062011173
+22
+-290.941975042481
+32
+804.835469255871
+13
+702.396062011173
+23
+-290.941975042481
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+698.564739508658
+20
+-289.354989300114
+30
+741.194313252463
+11
+745.659682232799
+21
+-148.32093265249
+31
+804.835469255871
+12
+741.592371958341
+22
+-147.51189433693
+32
+741.194313252463
+13
+741.592371958341
+23
+-147.51189433693
+33
+741.194313252463
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+690.554572920556
+20
+-286.037069662455
+30
+867.310386884026
+11
+745.659682232799
+21
+-148.32093265249
+31
+804.835469255871
+12
+702.396062011173
+22
+-290.941975042481
+32
+804.835469255871
+13
+702.396062011173
+23
+-290.941975042481
+33
+804.835469255871
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+745.659682232799
+20
+-148.32093265249
+30
+804.835469255871
+11
+690.554572920556
+21
+-286.037069662455
+31
+867.310386884026
+12
+733.088824464618
+22
+-145.820433573828
+32
+867.310386884026
+13
+733.088824464618
+23
+-145.820433573828
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+458.180516616454
+20
+-91.1377712474138
+30
+1100.8886000213
+11
+690.554572920556
+21
+-286.037069662455
+31
+867.310386884026
+12
+431.596609324475
+22
+-178.77316905644
+32
+1100.8886000213
+13
+431.596609324475
+23
+-178.77316905644
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+690.554572920556
+20
+-286.037069662455
+30
+867.310386884026
+11
+458.180516616454
+21
+-91.1377712474138
+31
+1100.8886000213
+12
+733.088824464618
+22
+-145.820433573828
+32
+867.310386884026
+13
+733.088824464618
+23
+-145.820433573828
+33
+867.310386884026
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+561.075591122516
+20
+-232.405119359447
+30
+1287.75132002131
+11
+687.270773156591
+21
+-136.706656519426
+31
+1100.8886000213
+12
+647.39491232121
+22
+-268.159752894786
+32
+1100.8886000213
+13
+647.39491232121
+23
+-268.159752894786
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+687.270773156591
+20
+-136.706656519426
+30
+1100.8886000213
+11
+561.075591122516
+21
+-232.405119359447
+31
+1287.75132002131
+12
+595.634670540536
+22
+-118.479102410621
+32
+1287.75132002131
+13
+595.634670540536
+23
+-118.479102410621
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+604.235251721863
+20
+-250.282436127116
+30
+1474.6140400213
+11
+733.088824464619
+21
+-145.820433573828
+31
+1287.75132002131
+12
+690.554572920556
+22
+-286.037069662455
+32
+1287.75132002131
+13
+690.554572920556
+23
+-286.037069662455
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.088824464619
+20
+-145.820433573828
+30
+1287.75132002131
+11
+604.235251721863
+21
+-250.282436127116
+31
+1474.6140400213
+12
+641.452721848564
+22
+-127.592879465023
+32
+1474.6140400213
+13
+641.452721848564
+23
+-127.592879465023
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+647.39491232121
+20
+-268.159752894786
+30
+1661.47676002131
+11
+778.906875772646
+21
+-154.934210628231
+31
+1474.6140400213
+12
+733.714233519903
+22
+-303.914386430124
+32
+1474.6140400213
+13
+733.714233519903
+23
+-303.914386430124
+33
+1474.6140400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+778.906875772646
+20
+-154.934210628231
+30
+1474.6140400213
+11
+647.39491232121
+21
+-268.159752894786
+31
+1661.47676002131
+12
+687.270773156591
+22
+-136.706656519426
+32
+1661.47676002131
+13
+687.270773156591
+23
+-136.706656519426
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+865.466789057043
+20
+-172.152047899808
+30
+1715.23764468454
+11
+776.88819383121
+21
+-321.797626332425
+31
+1661.47676002131
+12
+815.251888924487
+22
+-337.688389142806
+32
+1715.23764468454
+13
+815.251888924487
+23
+-337.688389142806
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+776.88819383121
+20
+-321.797626332425
+30
+1661.47676002131
+11
+865.466789057043
+21
+-172.152047899808
+31
+1715.23764468454
+12
+824.740107573921
+22
+-164.051007270483
+32
+1661.47676002131
+13
+824.740107573921
+23
+-164.051007270483
+33
+1661.47676002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+899.612557411552
+20
+-178.944063519201
+30
+1773.56823006635
+11
+815.251888924487
+21
+-337.688389142806
+31
+1715.23764468454
+12
+847.416499400322
+22
+-351.011407030345
+32
+1773.56823006635
+13
+847.416499400322
+23
+-351.011407030345
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+815.251888924487
+20
+-337.688389142806
+30
+1715.23764468454
+11
+899.612557411552
+21
+-178.944063519201
+31
+1773.56823006635
+12
+865.466789057043
+22
+-172.152047899808
+32
+1715.23764468454
+13
+865.466789057043
+23
+-172.152047899808
+33
+1715.23764468454
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+926.689746301964
+20
+-184.330051263379
+30
+1835.6354447734
+11
+847.416499400322
+21
+-351.011407030345
+31
+1773.56823006635
+12
+872.922653615349
+22
+-361.576402030189
+32
+1835.6354447734
+13
+872.922653615349
+23
+-361.576402030189
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+847.416499400322
+20
+-351.011407030345
+30
+1773.56823006635
+11
+926.689746301964
+21
+-184.330051263379
+31
+1835.6354447734
+12
+899.612557411552
+22
+-178.944063519201
+32
+1773.56823006635
+13
+899.612557411552
+23
+-178.944063519201
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+946.311642114328
+20
+-188.233089011893
+30
+1900.55285125842
+11
+872.922653615349
+21
+-361.576402030189
+31
+1835.6354447734
+12
+891.406075310522
+22
+-369.232485975391
+32
+1900.55285125842
+13
+891.406075310522
+23
+-369.232485975391
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+872.922653615349
+20
+-361.576402030189
+30
+1835.6354447734
+11
+946.311642114328
+21
+-188.233089011893
+31
+1900.55285125842
+12
+926.689746301964
+22
+-184.330051263379
+32
+1835.6354447734
+13
+926.689746301964
+23
+-184.330051263379
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+958.198006960111
+20
+-190.597433982906
+30
+1967.39330582966
+11
+891.406075310522
+21
+-369.232485975391
+31
+1900.55285125842
+12
+902.602786167016
+22
+-373.87031546612
+32
+1967.39330582966
+13
+902.602786167016
+23
+-373.87031546612
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+891.406075310522
+20
+-369.232485975391
+30
+1900.55285125842
+11
+958.198006960111
+21
+-190.597433982906
+31
+1967.39330582966
+12
+946.311642114328
+22
+-188.233089011893
+32
+1900.55285125842
+13
+946.311642114328
+23
+-188.233089011893
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+962.179081004756
+20
+-191.38931884584
+30
+2035.2022000213
+11
+902.602786167016
+21
+-373.87031546612
+31
+1967.39330582966
+12
+906.35287591729
+22
+-375.423653500801
+32
+2035.2022000213
+13
+906.35287591729
+23
+-375.423653500801
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+902.602786167016
+20
+-373.87031546612
+30
+1967.39330582966
+11
+962.179081004756
+21
+-191.38931884584
+31
+2035.2022000213
+12
+958.198006960111
+22
+-190.597433982906
+32
+1967.39330582966
+13
+958.198006960111
+23
+-190.597433982906
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+902.602786167016
+20
+-373.87031546612
+30
+2103.01109421295
+11
+962.179081004756
+21
+-191.38931884584
+31
+2035.2022000213
+12
+906.35287591729
+22
+-375.423653500801
+32
+2035.2022000213
+13
+906.35287591729
+23
+-375.423653500801
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+962.179081004756
+20
+-191.38931884584
+30
+2035.2022000213
+11
+902.602786167016
+21
+-373.87031546612
+31
+2103.01109421295
+12
+958.19800696011
+22
+-190.597433982906
+32
+2103.01109421295
+13
+958.19800696011
+23
+-190.597433982906
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+891.406075310522
+20
+-369.232485975391
+30
+2169.85154878419
+11
+958.19800696011
+21
+-190.597433982906
+31
+2103.01109421295
+12
+902.602786167016
+22
+-373.87031546612
+32
+2103.01109421295
+13
+902.602786167016
+23
+-373.87031546612
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+958.19800696011
+20
+-190.597433982906
+30
+2103.01109421295
+11
+891.406075310522
+21
+-369.232485975391
+31
+2169.85154878419
+12
+946.311642114328
+22
+-188.233089011893
+32
+2169.85154878419
+13
+946.311642114328
+23
+-188.233089011893
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+872.922653615349
+20
+-361.576402030189
+30
+2234.76895526921
+11
+946.311642114328
+21
+-188.233089011893
+31
+2169.85154878419
+12
+891.406075310522
+22
+-369.232485975391
+32
+2169.85154878419
+13
+891.406075310522
+23
+-369.232485975391
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+946.311642114328
+20
+-188.233089011893
+30
+2169.85154878419
+11
+872.922653615349
+21
+-361.576402030189
+31
+2234.76895526921
+12
+926.689746301964
+22
+-184.330051263379
+32
+2234.76895526921
+13
+926.689746301964
+23
+-184.330051263379
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+776.88819383121
+20
+-321.797626332425
+30
+2408.9276400213
+11
+865.466789057043
+21
+-172.152047899808
+31
+2355.16675535807
+12
+815.251888924486
+22
+-337.688389142806
+32
+2355.16675535807
+13
+815.251888924486
+23
+-337.688389142806
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+865.466789057043
+20
+-172.152047899808
+30
+2355.16675535807
+11
+776.88819383121
+21
+-321.797626332425
+31
+2408.9276400213
+12
+824.740107573921
+22
+-164.051007270483
+32
+2408.9276400213
+13
+824.740107573921
+23
+-164.051007270483
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+847.416499400322
+20
+-351.011407030345
+30
+2296.83616997626
+11
+926.689746301964
+21
+-184.330051263379
+31
+2234.76895526921
+12
+872.922653615349
+22
+-361.576402030189
+32
+2234.76895526921
+13
+872.922653615349
+23
+-361.576402030189
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+926.689746301964
+20
+-184.330051263379
+30
+2234.76895526921
+11
+847.416499400322
+21
+-351.011407030345
+31
+2296.83616997626
+12
+899.612557411552
+22
+-178.944063519201
+32
+2296.83616997626
+13
+899.612557411552
+23
+-178.944063519201
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+815.251888924486
+20
+-337.688389142806
+30
+2355.16675535807
+11
+899.612557411552
+21
+-178.944063519201
+31
+2296.83616997626
+12
+847.416499400322
+22
+-351.011407030345
+32
+2296.83616997626
+13
+847.416499400322
+23
+-351.011407030345
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+899.612557411552
+20
+-178.944063519201
+30
+2296.83616997626
+11
+815.251888924486
+21
+-337.688389142806
+31
+2355.16675535807
+12
+865.466789057043
+22
+-172.152047899808
+32
+2355.16675535807
+13
+865.466789057043
+23
+-172.152047899808
+33
+2355.16675535807
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+690.554572920556
+20
+-286.037069662455
+30
+2549.0746800213
+11
+733.088824464619
+21
+-145.820433573828
+31
+2408.9276400213
+12
+690.554572920556
+22
+-286.037069662455
+32
+2408.9276400213
+13
+690.554572920556
+23
+-286.037069662455
+33
+2408.9276400213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+733.088824464619
+20
+-145.820433573828
+30
+2408.9276400213
+11
+690.554572920556
+21
+-286.037069662455
+31
+2549.0746800213
+12
+733.088824464618
+22
+-145.820433573828
+32
+2549.0746800213
+13
+733.088824464618
+23
+-145.820433573828
+33
+2549.0746800213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-700.735203605456
+20
+0.0
+30
+1100.8886000213
+11
+-595.634670540536
+21
+-118.479102410621
+31
+1287.75132002131
+12
+-687.270773156591
+22
+-136.706656519425
+32
+1100.8886000213
+13
+-687.270773156591
+23
+-136.706656519425
+33
+1100.8886000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-595.634670540536
+20
+-118.479102410621
+30
+1287.75132002131
+11
+-700.735203605456
+21
+0.0
+31
+1100.8886000213
+12
+-607.303843605455
+22
+0.0
+32
+1287.75132002131
+13
+-607.303843605455
+23
+0.0
+33
+1287.75132002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-646.067882633009
+20
+-267.610079200261
+30
+628.271001705821
+11
+-721.176029454062
+21
+-143.450831316169
+31
+680.911023534629
+12
+-679.332965393238
+22
+-281.388927633011
+32
+680.911023534629
+13
+-679.332965393238
+23
+-281.388927633011
+33
+680.911023534629
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-721.176029454062
+20
+-143.450831316169
+30
+680.911023534629
+11
+-646.067882633009
+21
+-267.610079200261
+31
+628.271001705821
+12
+-685.862005953678
+22
+-136.426435300007
+32
+628.271001705821
+13
+-685.862005953678
+23
+-136.426435300007
+33
+628.271001705821
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+357.792969218307
+20
+-863.788638808576
+30
+1813.40854010679
+11
+509.589579018778
+21
+-762.654700553784
+31
+1773.56823006635
+12
+351.011407030345
+22
+-847.416499400322
+32
+1773.56823006635
+13
+351.011407030345
+23
+-847.416499400322
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+509.589579018778
+20
+-762.654700553784
+30
+1773.56823006635
+11
+357.792969218307
+21
+-863.788638808576
+31
+1813.40854010679
+12
+395.941831606783
+22
+-839.735342877931
+32
+1806.11206435201
+13
+395.941831606783
+23
+-839.735342877931
+33
+1806.11206435201
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+509.589579018778
+20
+-762.654700553784
+30
+1773.56823006635
+11
+395.941831606783
+21
+-839.735342877931
+31
+1806.11206435201
+12
+476.980677127978
+22
+-794.166464272834
+32
+1801.6239424642
+13
+476.980677127978
+23
+-794.166464272834
+33
+1801.6239424642
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+517.019026944331
+20
+-773.773655132591
+30
+1803.63246772228
+11
+509.589579018778
+21
+-762.654700553784
+31
+1773.56823006635
+12
+476.980677127978
+22
+-794.166464272834
+32
+1801.6239424642
+13
+476.980677127978
+23
+-794.166464272834
+33
+1801.6239424642
+70
+2
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+517.019026944331
+20
+-773.773655132591
+30
+1803.63246772228
+11
+648.584509266648
+21
+-648.584509266648
+31
+1773.56823006635
+12
+509.589579018778
+22
+-762.654700553784
+32
+1773.56823006635
+13
+509.589579018778
+23
+-762.654700553784
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+1773.56823006635
+11
+517.019026944331
+21
+-773.773655132591
+31
+1803.63246772228
+12
+549.426368572047
+22
+-748.597588593672
+32
+1806.11210277493
+13
+549.426368572047
+23
+-748.597588593672
+33
+1806.11210277493
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+1773.56823006635
+11
+549.426368572047
+21
+-748.597588593672
+31
+1806.11210277493
+12
+612.093113289132
+22
+-704.779901967179
+32
+1819.40406801073
+13
+612.093113289132
+23
+-704.779901967179
+33
+1819.40406801073
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+1773.56823006635
+11
+612.093113289132
+21
+-704.779901967179
+31
+1819.40406801073
+12
+668.106074549527
+22
+-668.106074549528
+32
+1835.6354447734
+13
+668.106074549527
+23
+-668.106074549528
+33
+1835.6354447734
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+668.106074549527
+20
+-668.106074549528
+30
+1835.6354447734
+11
+612.093113289132
+21
+-704.779901967179
+31
+1819.40406801073
+12
+660.420878380816
+22
+-674.413152048547
+32
+1835.6354447734
+13
+660.420878380816
+23
+-674.413152048547
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+184.330051263378
+20
+-926.689746301964
+30
+1835.6354447734
+11
+351.011407030345
+21
+-847.416499400322
+31
+1773.56823006635
+12
+178.9440635192
+22
+-899.612557411553
+32
+1773.56823006635
+13
+178.9440635192
+23
+-899.612557411553
+33
+1773.56823006635
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+351.011407030345
+20
+-847.416499400322
+30
+1773.56823006635
+11
+184.330051263378
+21
+-926.689746301964
+31
+1835.6354447734
+12
+301.781055330838
+22
+-883.553038965158
+32
+1819.40399142549
+13
+301.781055330838
+23
+-883.553038965158
+33
+1819.40399142549
+70
+15
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+351.011407030345
+20
+-847.416499400322
+30
+1773.56823006635
+11
+301.781055330838
+21
+-883.553038965158
+31
+1819.40399142549
+12
+357.792969218307
+22
+-863.788638808576
+32
+1813.40854010679
+13
+357.792969218307
+23
+-863.788638808576
+33
+1813.40854010679
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+301.781055330838
+20
+-883.553038965158
+30
+1819.40399142549
+11
+184.330051263378
+21
+-926.689746301964
+31
+1835.6354447734
+12
+226.426278474808
+22
+-913.919995384996
+32
+1835.6354447734
+13
+226.426278474808
+23
+-913.919995384996
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+184.330051263378
+20
+-926.689746301964
+30
+1835.6354447734
+11
+199.0652044353
+21
+-923.935662922352
+31
+1840.9889225062
+12
+226.426278474808
+22
+-913.919995384996
+32
+1835.6354447734
+13
+226.426278474808
+23
+-913.919995384996
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+199.0652044353
+20
+-923.935662922352
+30
+1840.9889225062
+11
+184.330051263378
+21
+-926.689746301964
+31
+1835.6354447734
+12
+184.938820049334
+22
+-929.750233661175
+32
+1845.76081205901
+13
+184.938820049334
+23
+-929.750233661175
+33
+1845.76081205901
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-944.844671731792
+30
+1835.6354447734
+11
+104.493637398531
+21
+-940.355693033463
+31
+1854.46446481146
+12
+184.330051263378
+22
+-926.689746301964
+32
+1835.6354447734
+13
+184.330051263378
+23
+-926.689746301964
+33
+1835.6354447734
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637398531
+20
+-940.355693033463
+30
+1854.46446481146
+11
+0.0
+21
+-944.844671731792
+31
+1835.6354447734
+12
+0.0
+22
+-964.850983209364
+32
+1900.55285125842
+13
+0.0
+23
+-964.850983209364
+33
+1900.55285125842
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+184.330051263378
+20
+-926.689746301964
+30
+1835.6354447734
+11
+104.493637398531
+21
+-940.355693033463
+31
+1854.46446481146
+12
+184.938820049334
+22
+-929.750233661175
+32
+1845.76081205901
+13
+184.938820049334
+23
+-929.750233661175
+33
+1845.76081205901
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637398531
+20
+-940.355693033463
+30
+1854.46446481146
+11
+0.0
+21
+-964.850983209364
+31
+1900.55285125842
+12
+104.493633203151
+22
+-954.559258633297
+32
+1900.55285125842
+13
+104.493633203151
+23
+-954.559258633297
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+750.933323308422
+20
+-599.953184983341
+30
+1905.4331697133
+11
+802.244272938819
+21
+-536.042485570819
+31
+1900.55285125842
+12
+746.507157447799
+22
+-603.958357302731
+32
+1900.55285125842
+13
+746.507157447799
+23
+-603.958357302731
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.244272938819
+20
+-536.042485570819
+30
+1900.55285125842
+11
+750.933323308422
+21
+-599.953184983341
+31
+1905.4331697133
+12
+778.074089358318
+22
+-578.368236816208
+32
+1945.81578372641
+13
+778.074089358318
+23
+-578.368236816208
+33
+1945.81578372641
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.244272938819
+20
+-536.042485570819
+30
+1900.55285125842
+11
+778.074089358318
+21
+-578.368236816208
+31
+1945.81578372641
+12
+788.482625178071
+22
+-571.822770804239
+32
+1967.39330582966
+13
+788.482625178071
+23
+-571.822770804239
+33
+1967.39330582966
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.244272938819
+20
+-536.042485570819
+30
+1900.55285125842
+11
+788.482625178071
+21
+-571.822770804239
+31
+1967.39330582966
+12
+812.321046486997
+22
+-542.775570394861
+32
+1967.39330582966
+13
+812.321046486997
+23
+-542.775570394861
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+673.273866809931
+20
+-664.397292109118
+30
+1840.98903680986
+11
+668.106074549527
+21
+-668.106074549528
+31
+1835.6354447734
+12
+668.764073934129
+22
+-668.76407393413
+32
+1838.65494189703
+13
+668.764073934129
+23
+-668.76407393413
+33
+1838.65494189703
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+668.106074549527
+20
+-668.106074549528
+30
+1835.6354447734
+11
+673.273866809931
+21
+-664.397292109118
+31
+1840.98903680986
+12
+785.609632890959
+22
+-524.927574441361
+32
+1835.6354447734
+13
+785.609632890959
+23
+-524.927574441361
+33
+1835.6354447734
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+785.609632890959
+20
+-524.927574441361
+30
+1835.6354447734
+11
+673.273866809931
+21
+-664.397292109118
+31
+1840.98903680986
+12
+713.847499937789
+22
+-629.001642276081
+32
+1870.0375087198
+13
+713.847499937789
+23
+-629.001642276081
+33
+1870.0375087198
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+785.609632890959
+20
+-524.927574441361
+30
+1835.6354447734
+11
+713.847499937789
+21
+-629.001642276081
+31
+1870.0375087198
+12
+746.507157447799
+22
+-603.958357302731
+32
+1900.55285125842
+13
+746.507157447799
+23
+-603.958357302731
+33
+1900.55285125842
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+785.609632890959
+20
+-524.927574441361
+30
+1835.6354447734
+11
+746.507157447799
+21
+-603.958357302731
+31
+1900.55285125842
+12
+802.244272938819
+22
+-536.042485570819
+32
+1900.55285125842
+13
+802.244272938819
+23
+-536.042485570819
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+668.764073934129
+20
+-668.76407393413
+30
+1838.65494189703
+11
+668.106074549527
+21
+-668.106074549528
+31
+1835.6354447734
+12
+660.420878380816
+22
+-674.413152048547
+32
+1835.6354447734
+13
+660.420878380816
+23
+-674.413152048547
+33
+1835.6354447734
+70
+0
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+812.321046486996
+20
+-542.775570394861
+30
+2103.01109421295
+11
+795.733220134071
+21
+-565.076313257107
+31
+2080.77120383654
+12
+788.482669869741
+22
+-571.822716347281
+32
+2103.01109421295
+13
+788.482669869741
+23
+-571.822716347281
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+795.733220134071
+20
+-565.076313257107
+30
+2080.77120383654
+11
+812.321046486996
+21
+-542.775570394861
+31
+2103.01109421295
+12
+802.928322181323
+22
+-560.588161532002
+32
+2035.20233863644
+13
+802.928322181323
+23
+-560.588161532002
+33
+2035.20233863644
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.928322181323
+20
+-560.588161532002
+30
+2035.20233863644
+11
+812.321046486996
+21
+-542.775570394861
+31
+2103.01109421295
+12
+815.696038096871
+22
+-545.030667691736
+32
+2035.2022000213
+13
+815.696038096871
+23
+-545.030667691736
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+795.73325617356
+20
+-565.07629502955
+30
+1989.63346974763
+11
+812.321046486997
+21
+-542.775570394861
+31
+1967.39330582966
+12
+788.482625178071
+22
+-571.822770804239
+32
+1967.39330582966
+13
+788.482625178071
+23
+-571.822770804239
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+812.321046486997
+20
+-542.775570394861
+30
+1967.39330582966
+11
+795.73325617356
+21
+-565.07629502955
+31
+1989.63346974763
+12
+802.928322181323
+22
+-560.588161532002
+32
+2035.20233863644
+13
+802.928322181323
+23
+-560.588161532002
+33
+2035.20233863644
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+812.321046486997
+20
+-542.775570394861
+30
+1967.39330582966
+11
+802.928322181323
+21
+-560.588161532002
+31
+2035.20233863644
+12
+815.696038096871
+22
+-545.030667691736
+32
+2035.2022000213
+13
+815.696038096871
+23
+-545.030667691736
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-976.970215709361
+30
+2103.01109421295
+11
+104.493597769057
+21
+-954.55926212325
+31
+2169.85154878419
+12
+104.493608158504
+22
+-966.678493599977
+32
+2103.01109421295
+13
+104.493608158504
+23
+-966.678493599977
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493597769057
+20
+-954.55926212325
+30
+2169.85154878419
+11
+0.0
+21
+-976.970215709361
+31
+2103.01109421295
+12
+0.0
+22
+-964.850983209363
+32
+2169.85154878419
+13
+0.0
+23
+-964.850983209363
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-964.850983209363
+30
+2169.85154878419
+11
+104.493589835895
+21
+-940.355698951006
+31
+2215.93993123015
+12
+104.493597769057
+22
+-954.55926212325
+32
+2169.85154878419
+13
+104.493597769057
+23
+-954.55926212325
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493589835895
+20
+-940.355698951006
+30
+2215.93993123015
+11
+0.0
+21
+-964.850983209363
+31
+2169.85154878419
+12
+0.0
+22
+-944.844671731792
+32
+2234.76895526921
+13
+0.0
+23
+-944.844671731792
+33
+2234.76895526921
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493589835895
+20
+-940.355698951006
+30
+2215.93993123015
+11
+0.0
+21
+-944.844671731792
+31
+2234.76895526921
+12
+184.938817720617
+22
+-929.750221953924
+32
+2224.64362671606
+13
+184.938817720617
+23
+-929.750221953924
+33
+2224.64362671606
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+184.938817720617
+20
+-929.750221953924
+30
+2224.64362671606
+11
+0.0
+21
+-944.844671731792
+31
+2234.76895526921
+12
+184.330051263378
+22
+-926.689746301964
+32
+2234.76895526921
+13
+184.330051263378
+23
+-926.689746301964
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+184.330051263378
+20
+-926.689746301964
+30
+2234.76895526921
+11
+199.064976889088
+21
+-923.935740607716
+31
+2229.41545051599
+12
+184.938817720617
+22
+-929.750221953924
+32
+2224.64362671606
+13
+184.938817720617
+23
+-929.750221953924
+33
+2224.64362671606
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+199.064976889088
+20
+-923.935740607716
+30
+2229.41545051599
+11
+184.330051263378
+21
+-926.689746301964
+31
+2234.76895526921
+12
+226.426112851944
+22
+-913.920045626142
+32
+2234.76895526921
+13
+226.426112851944
+23
+-913.920045626142
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+178.9440635192
+20
+-899.612557411553
+30
+2296.83616997626
+11
+226.426112851944
+21
+-913.920045626142
+31
+2234.76895526921
+12
+184.330051263378
+22
+-926.689746301964
+32
+2234.76895526921
+13
+184.330051263378
+23
+-926.689746301964
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+226.426112851944
+20
+-913.920045626142
+30
+2234.76895526921
+11
+178.9440635192
+21
+-899.612557411553
+31
+2296.83616997626
+12
+301.780746126529
+22
+-883.553125284517
+32
+2251.00042478027
+13
+301.780746126529
+23
+-883.553125284517
+33
+2251.00042478027
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+301.780746126529
+20
+-883.553125284517
+30
+2251.00042478027
+11
+178.9440635192
+21
+-899.612557411553
+31
+2296.83616997626
+12
+357.792956438195
+22
+-863.788607954656
+32
+2256.9959350164
+13
+357.792956438195
+23
+-863.788607954656
+33
+2256.9959350164
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+357.792956438195
+20
+-863.788607954656
+30
+2256.9959350164
+11
+178.9440635192
+21
+-899.612557411553
+31
+2296.83616997626
+12
+351.011407030345
+22
+-847.416499400322
+32
+2296.83616997626
+13
+351.011407030345
+23
+-847.416499400322
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+351.011407030345
+20
+-847.416499400322
+30
+2296.83616997626
+11
+395.941605262448
+21
+-839.735434514061
+31
+2264.29239416004
+12
+357.792956438195
+22
+-863.788607954656
+32
+2256.9959350164
+13
+357.792956438195
+23
+-863.788607954656
+33
+2256.9959350164
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+395.941605262448
+20
+-839.735434514061
+30
+2264.29239416004
+11
+351.011407030345
+21
+-847.416499400322
+31
+2296.83616997626
+12
+476.980410282499
+22
+-794.166557704225
+32
+2268.78055560144
+13
+476.980410282499
+23
+-794.166557704225
+33
+2268.78055560144
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+476.980410282499
+20
+-794.166557704225
+30
+2268.78055560144
+11
+509.589579018778
+21
+-762.654700553784
+31
+2296.83616997626
+12
+517.019001290372
+22
+-773.773616738727
+32
+2266.77203613245
+13
+517.019001290372
+23
+-773.773616738727
+33
+2266.77203613245
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+509.589579018778
+20
+-762.654700553784
+30
+2296.83616997626
+11
+476.980410282499
+21
+-794.166557704225
+31
+2268.78055560144
+12
+351.011407030345
+22
+-847.416499400322
+32
+2296.83616997626
+13
+351.011407030345
+23
+-847.416499400322
+33
+2296.83616997626
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+612.092889952714
+20
+-704.779988286527
+30
+2251.00050136552
+11
+668.106074549527
+21
+-668.106074549528
+31
+2234.76895526921
+12
+660.421223817861
+22
+-674.412868555691
+32
+2234.76895526921
+13
+660.421223817861
+23
+-674.412868555691
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+668.106074549527
+20
+-668.106074549528
+30
+2234.76895526921
+11
+612.092889952714
+21
+-704.779988286527
+31
+2251.00050136552
+12
+648.584509266648
+22
+-648.584509266648
+32
+2296.83616997626
+13
+648.584509266648
+23
+-648.584509266648
+33
+2296.83616997626
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+2296.83616997626
+11
+612.092889952714
+21
+-704.779988286527
+31
+2251.00050136552
+12
+549.426162494113
+22
+-748.597680229798
+32
+2264.29243258297
+13
+549.426162494113
+23
+-748.597680229798
+33
+2264.29243258297
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+2296.83616997626
+11
+549.426162494113
+21
+-748.597680229798
+31
+2264.29243258297
+12
+517.019001290372
+22
+-773.773616738727
+32
+2266.77203613245
+13
+517.019001290372
+23
+-773.773616738727
+33
+2266.77203613245
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+648.584509266648
+20
+-648.584509266648
+30
+2296.83616997626
+11
+517.019001290372
+21
+-773.773616738727
+31
+2266.77203613245
+12
+509.589579018778
+22
+-762.654700553784
+32
+2296.83616997626
+13
+509.589579018778
+23
+-762.654700553784
+33
+2296.83616997626
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+668.106074549527
+20
+-668.106074549528
+30
+2234.76895526921
+11
+673.273723074262
+21
+-664.397369794469
+31
+2229.41556481967
+12
+668.764043362589
+22
+-668.76404336259
+32
+2231.74959843549
+13
+668.764043362589
+23
+-668.76404336259
+33
+2231.74959843549
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+673.273723074262
+20
+-664.397369794469
+30
+2229.41556481967
+11
+668.106074549527
+21
+-668.106074549528
+31
+2234.76895526921
+12
+785.609632890959
+22
+-524.927574441361
+32
+2234.76895526921
+13
+785.609632890959
+23
+-524.927574441361
+33
+2234.76895526921
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+673.273723074262
+20
+-664.397369794469
+30
+2229.41556481967
+11
+785.609632890959
+21
+-524.927574441361
+31
+2234.76895526921
+12
+713.847355884234
+22
+-629.001708342044
+32
+2200.36711774529
+13
+713.847355884234
+23
+-629.001708342044
+33
+2200.36711774529
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+713.847355884234
+20
+-629.001708342044
+30
+2200.36711774529
+11
+785.609632890959
+21
+-524.927574441361
+31
+2234.76895526921
+12
+746.507278280356
+22
+-603.958210067833
+32
+2169.85154878419
+13
+746.507278280356
+23
+-603.958210067833
+33
+2169.85154878419
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+746.507278280356
+20
+-603.958210067833
+30
+2169.85154878419
+11
+785.609632890959
+21
+-524.927574441361
+31
+2234.76895526921
+12
+802.244272938819
+22
+-536.042485570818
+32
+2169.85154878419
+13
+802.244272938819
+23
+-536.042485570818
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+668.106074549527
+20
+-668.106074549528
+30
+2234.76895526921
+11
+668.764043362589
+21
+-668.76404336259
+31
+2231.74959843549
+12
+660.421223817861
+22
+-674.412868555691
+32
+2234.76895526921
+13
+660.421223817861
+23
+-674.412868555691
+33
+2234.76895526921
+70
+0
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.244272938819
+20
+-536.042485570818
+30
+2169.85154878419
+11
+750.933222864967
+21
+-599.953236891033
+31
+2164.97147813062
+12
+746.507278280356
+22
+-603.958210067833
+32
+2169.85154878419
+13
+746.507278280356
+23
+-603.958210067833
+33
+2169.85154878419
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+750.933222864967
+20
+-599.953236891033
+30
+2164.97147813062
+11
+802.244272938819
+21
+-536.042485570818
+31
+2169.85154878419
+12
+778.073998488686
+22
+-578.368272570852
+32
+2124.58887989382
+13
+778.073998488686
+23
+-578.368272570852
+33
+2124.58887989382
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+778.073998488686
+20
+-578.368272570852
+30
+2124.58887989382
+11
+802.244272938819
+21
+-536.042485570818
+31
+2169.85154878419
+12
+788.482669869741
+22
+-571.822716347281
+32
+2103.01109421295
+13
+788.482669869741
+23
+-571.822716347281
+33
+2103.01109421295
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+788.482669869741
+20
+-571.822716347281
+30
+2103.01109421295
+11
+802.244272938819
+21
+-536.042485570818
+31
+2169.85154878419
+12
+812.321046486996
+22
+-542.775570394861
+32
+2103.01109421295
+13
+812.321046486996
+23
+-542.775570394861
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-976.970215709361
+30
+1967.39330582966
+11
+104.493633203151
+21
+-954.559258633297
+31
+1900.55285125842
+12
+0.0
+22
+-964.850983209364
+32
+1900.55285125842
+13
+0.0
+23
+-964.850983209364
+33
+1900.55285125842
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493633203151
+20
+-954.559258633297
+30
+1900.55285125842
+11
+0.0
+21
+-976.970215709361
+31
+1967.39330582966
+12
+104.493626002977
+22
+-966.678491842449
+32
+1967.39330582966
+13
+104.493626002977
+23
+-966.678491842449
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493585902306
+20
+-599.953270041246
+30
+1905.43308465531
+11
+713.847499937789
+21
+-629.001642276081
+31
+1870.0375087198
+12
+104.493594381804
+22
+-629.001722454268
+32
+1870.03742854153
+13
+104.493594381804
+23
+-629.001722454268
+33
+1870.03742854153
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+713.847499937789
+20
+-629.001642276081
+30
+1870.0375087198
+11
+104.493585902306
+21
+-599.953270041246
+31
+1905.43308465531
+12
+746.507157447799
+22
+-603.958357302731
+32
+1900.55285125842
+13
+746.507157447799
+23
+-603.958357302731
+33
+1900.55285125842
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+746.507157447799
+20
+-603.958357302731
+30
+1900.55285125842
+11
+104.493585902306
+21
+-599.953270041246
+31
+1905.43308465531
+12
+750.933323308422
+22
+-599.953184983341
+32
+1905.4331697133
+13
+750.933323308422
+23
+-599.953184983341
+33
+1905.4331697133
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493577748671
+20
+-578.36832544527
+30
+1945.81569509725
+11
+750.933323308422
+21
+-599.953184983341
+31
+1905.4331697133
+12
+104.493585902306
+22
+-599.953270041246
+32
+1905.43308465531
+13
+104.493585902306
+23
+-599.953270041246
+33
+1905.43308465531
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+750.933323308422
+20
+-599.953184983341
+30
+1905.4331697133
+11
+104.493577748671
+21
+-578.36832544527
+31
+1945.81569509725
+12
+778.074089358318
+22
+-578.368236816208
+32
+1945.81578372641
+13
+778.074089358318
+23
+-578.368236816208
+33
+1945.81578372641
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493551752477
+20
+-664.397444634006
+30
+2229.41548998005
+11
+713.847355884234
+21
+-629.001708342044
+31
+2200.36711774529
+12
+104.493550917322
+22
+-629.00178852022
+32
+2200.36703756703
+13
+104.493550917322
+23
+-629.00178852022
+33
+2200.36703756703
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+713.847355884234
+20
+-629.001708342044
+30
+2200.36711774529
+11
+104.493551752477
+21
+-664.397444634006
+31
+2229.41548998005
+12
+673.273723074262
+22
+-664.397369794469
+32
+2229.41556481967
+13
+673.273723074262
+23
+-664.397369794469
+33
+2229.41556481967
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493585902279
+20
+-923.935753051327
+30
+2229.41543807237
+11
+301.780746126529
+21
+-883.553125284517
+31
+2251.00042478027
+12
+104.493577748645
+22
+-883.553151243369
+32
+2251.0003988214
+13
+104.493577748645
+23
+-883.553151243369
+33
+2251.0003988214
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+301.780746126529
+20
+-883.553125284517
+30
+2251.00042478027
+11
+104.493585902279
+21
+-923.935753051327
+31
+2229.41543807237
+12
+199.064976889088
+22
+-923.935740607716
+32
+2229.41545051599
+13
+199.064976889088
+23
+-923.935740607716
+33
+2229.41545051599
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+301.780746126529
+20
+-883.553125284517
+30
+2251.00042478027
+11
+199.064976889088
+21
+-923.935740607716
+31
+2229.41545051599
+12
+226.426112851944
+22
+-913.920045626142
+32
+2234.76895526921
+13
+226.426112851944
+23
+-913.920045626142
+33
+2234.76895526921
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+476.980677127978
+20
+-794.166464272834
+30
+1801.6239424642
+11
+104.493630521182
+21
+-839.735381226399
+31
+1806.1120260035
+12
+104.49362511582
+22
+-794.166513284314
+32
+1801.62389345267
+13
+104.49362511582
+23
+-794.166513284314
+33
+1801.62389345267
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493630521182
+20
+-839.735381226399
+30
+1806.1120260035
+11
+476.980677127978
+21
+-794.166464272834
+31
+1801.6239424642
+12
+395.941831606783
+22
+-839.735342877931
+32
+1806.11206435201
+13
+395.941831606783
+23
+-839.735342877931
+33
+1806.11206435201
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+395.941831606783
+20
+-839.735342877931
+30
+1806.11206435201
+11
+104.493634537727
+21
+-883.553064924044
+31
+1819.40396546658
+12
+104.493630521182
+22
+-839.735381226399
+32
+1806.1120260035
+13
+104.493630521182
+23
+-839.735381226399
+33
+1806.1120260035
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493634537727
+20
+-883.553064924044
+30
+1819.40396546658
+11
+395.941831606783
+21
+-839.735342877931
+31
+1806.11206435201
+12
+301.781055330838
+22
+-883.553038965158
+32
+1819.40399142549
+13
+301.781055330838
+23
+-883.553038965158
+33
+1819.40399142549
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+301.781055330838
+20
+-883.553038965158
+30
+1819.40399142549
+11
+395.941831606783
+21
+-839.735342877931
+31
+1806.11206435201
+12
+357.792969218307
+22
+-863.788638808576
+32
+1813.40854010679
+13
+357.792969218307
+23
+-863.788638808576
+33
+1813.40854010679
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+301.781055330838
+20
+-883.553038965158
+30
+1819.40399142549
+11
+104.493637011103
+21
+-923.935675365986
+31
+1840.98891006256
+12
+104.493634537727
+22
+-883.553064924044
+32
+1819.40396546658
+13
+104.493634537727
+23
+-883.553064924044
+33
+1819.40396546658
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637011103
+20
+-923.935675365986
+30
+1840.98891006256
+11
+301.781055330838
+21
+-883.553038965158
+31
+1819.40399142549
+12
+199.0652044353
+22
+-923.935662922352
+32
+1840.9889225062
+13
+199.0652044353
+23
+-923.935662922352
+33
+1840.9889225062
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+199.0652044353
+20
+-923.935662922352
+30
+1840.9889225062
+11
+301.781055330838
+21
+-883.553038965158
+31
+1819.40399142549
+12
+226.426278474808
+22
+-913.919995384996
+32
+1835.6354447734
+13
+226.426278474808
+23
+-913.919995384996
+33
+1835.6354447734
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+713.847499937789
+20
+-629.001642276081
+30
+1870.0375087198
+11
+104.4936028613
+21
+-664.397366948665
+31
+1840.98896197024
+12
+104.493594381804
+22
+-629.001722454268
+32
+1870.03742854153
+13
+104.493594381804
+23
+-629.001722454268
+33
+1870.03742854153
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.4936028613
+20
+-664.397366948665
+30
+1840.98896197024
+11
+713.847499937789
+21
+-629.001642276081
+31
+1870.0375087198
+12
+673.273866809931
+22
+-664.397292109118
+32
+1840.98903680986
+13
+673.273866809931
+23
+-664.397292109118
+33
+1840.98903680986
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+673.273866809931
+20
+-664.397292109118
+30
+1840.98903680986
+11
+104.493611014934
+21
+-704.779968756623
+31
+1819.40400122121
+12
+104.4936028613
+22
+-664.397366948665
+32
+1840.98896197024
+13
+104.4936028613
+23
+-664.397366948665
+33
+1840.98896197024
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+673.273866809931
+21
+-664.397292109118
+31
+1840.98903680986
+12
+612.093113289132
+22
+-704.779901967179
+32
+1819.40406801073
+13
+612.093113289132
+23
+-704.779901967179
+33
+1819.40406801073
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+612.093113289132
+20
+-704.779901967179
+30
+1819.40406801073
+11
+673.273866809931
+21
+-664.397292109118
+31
+1840.98903680986
+12
+660.420878380816
+22
+-674.413152048547
+32
+1835.6354447734
+13
+660.420878380816
+23
+-674.413152048547
+33
+1835.6354447734
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+660.420878380816
+20
+-674.413152048547
+30
+1835.6354447734
+11
+673.273866809931
+21
+-664.397292109118
+31
+1840.98903680986
+12
+668.764073934129
+22
+-668.76407393413
+32
+1838.65494189703
+13
+668.764073934129
+23
+-668.76407393413
+33
+1838.65494189703
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+612.093113289132
+20
+-704.779901967179
+30
+1819.40406801073
+11
+104.493618529366
+21
+-748.597647137485
+31
+1806.11204423105
+12
+104.493611014934
+22
+-704.779968756623
+32
+1819.40400122121
+13
+104.493611014934
+23
+-704.779968756623
+33
+1819.40400122121
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493618529366
+20
+-748.597647137485
+30
+1806.11204423105
+11
+612.093113289132
+21
+-704.779901967179
+31
+1819.40406801073
+12
+549.426368572047
+22
+-748.597588593672
+32
+1806.11210277493
+13
+549.426368572047
+23
+-748.597588593672
+33
+1806.11210277493
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493558242398
+20
+-748.597738773593
+30
+2264.29237403911
+11
+612.092889952714
+21
+-704.779988286527
+31
+2251.00050136552
+12
+104.493554225852
+22
+-704.780055075949
+32
+2251.00043457603
+13
+104.493554225852
+23
+-704.780055075949
+33
+2251.00043457603
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+612.092889952714
+20
+-704.779988286527
+30
+2251.00050136552
+11
+104.493558242398
+21
+-748.597738773593
+31
+2264.29237403911
+12
+549.426162494113
+22
+-748.597680229798
+32
+2264.29243258297
+13
+549.426162494113
+23
+-748.597680229798
+33
+2264.29243258297
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493550917322
+20
+-629.00178852022
+30
+2200.36703756703
+11
+750.933222864967
+21
+-599.953236891033
+31
+2164.97147813062
+12
+104.493551752482
+22
+-599.953321948931
+32
+2164.97139307263
+13
+104.493551752482
+23
+-599.953321948931
+33
+2164.97139307263
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+750.933222864967
+20
+-599.953236891033
+30
+2164.97147813062
+11
+104.493550917322
+21
+-629.00178852022
+31
+2200.36703756703
+12
+746.507278280356
+22
+-603.958210067833
+32
+2169.85154878419
+13
+746.507278280356
+23
+-603.958210067833
+33
+2169.85154878419
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+746.507278280356
+20
+-603.958210067833
+30
+2169.85154878419
+11
+104.493550917322
+21
+-629.00178852022
+31
+2200.36703756703
+12
+713.847355884234
+22
+-629.001708342044
+32
+2200.36711774529
+13
+713.847355884234
+23
+-629.001708342044
+33
+2200.36711774529
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493551752482
+20
+-599.953321948931
+30
+2164.97139307263
+11
+778.073998488686
+21
+-578.368272570852
+31
+2124.58887989382
+12
+104.493554225863
+22
+-578.368361199906
+32
+2124.58879126467
+13
+104.493554225863
+23
+-578.368361199906
+33
+2124.58879126467
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+778.073998488686
+20
+-578.368272570852
+30
+2124.58887989382
+11
+104.493551752482
+21
+-599.953321948931
+31
+2164.97139307263
+12
+750.933222864967
+22
+-599.953236891033
+32
+2164.97147813062
+13
+750.933222864967
+23
+-599.953236891033
+33
+2164.97147813062
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493554225863
+20
+-578.368361199906
+30
+2124.58879126467
+11
+795.733220134071
+21
+-565.076313257107
+31
+2080.77120383654
+12
+104.493558242413
+22
+-565.076404209743
+32
+2080.77111288381
+13
+104.493558242413
+23
+-565.076404209743
+33
+2080.77111288381
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+795.733220134071
+20
+-565.076313257107
+30
+2080.77120383654
+11
+104.493554225863
+21
+-578.368361199906
+31
+2124.58879126467
+12
+788.482669869741
+22
+-571.822716347281
+32
+2103.01109421295
+13
+788.482669869741
+23
+-571.822716347281
+33
+2103.01109421295
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+788.482669869741
+20
+-571.822716347281
+30
+2103.01109421295
+11
+104.493554225863
+21
+-578.368361199906
+31
+2124.58879126467
+12
+778.073998488686
+22
+-578.368272570852
+32
+2124.58887989382
+13
+778.073998488686
+23
+-578.368272570852
+33
+2124.58887989382
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493558242413
+20
+-565.076404209743
+30
+2080.77111288381
+11
+802.928322181323
+21
+-560.588161532002
+31
+2035.20233863644
+12
+104.49356364778
+22
+-560.588253431361
+32
+2035.20224673698
+13
+104.49356364778
+23
+-560.588253431361
+33
+2035.20224673698
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+802.928322181323
+20
+-560.588161532002
+30
+2035.20233863644
+11
+104.493558242413
+21
+-565.076404209743
+31
+2080.77111288381
+12
+795.733220134071
+22
+-565.076313257107
+32
+2080.77120383654
+13
+795.733220134071
+23
+-565.076313257107
+33
+2080.77120383654
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.49356364778
+20
+-560.588253431361
+30
+2035.20224673698
+11
+795.73325617356
+21
+-565.07629502955
+31
+1989.63346974763
+12
+104.493570234237
+22
+-565.076385982188
+32
+1989.6333787949
+13
+104.493570234237
+23
+-565.076385982188
+33
+1989.6333787949
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+795.73325617356
+20
+-565.07629502955
+30
+1989.63346974763
+11
+104.49356364778
+21
+-560.588253431361
+31
+2035.20224673698
+12
+802.928322181323
+22
+-560.588161532002
+32
+2035.20233863644
+13
+802.928322181323
+23
+-560.588161532002
+33
+2035.20233863644
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493570234237
+20
+-565.076385982188
+30
+1989.6333787949
+11
+778.074089358318
+21
+-578.368236816208
+31
+1945.81578372641
+12
+104.493577748671
+22
+-578.36832544527
+32
+1945.81569509725
+13
+104.493577748671
+23
+-578.36832544527
+33
+1945.81569509725
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+778.074089358318
+20
+-578.368236816208
+30
+1945.81578372641
+11
+104.493570234237
+21
+-565.076385982188
+31
+1989.6333787949
+12
+788.482625178071
+22
+-571.822770804239
+32
+1967.39330582966
+13
+788.482625178071
+23
+-571.822770804239
+33
+1967.39330582966
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+788.482625178071
+20
+-571.822770804239
+30
+1967.39330582966
+11
+104.493570234237
+21
+-565.076385982188
+31
+1989.6333787949
+12
+795.73325617356
+22
+-565.07629502955
+32
+1989.63346974763
+13
+795.73325617356
+23
+-565.07629502955
+33
+1989.63346974763
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493570234214
+20
+-839.735472862507
+30
+2264.29235581156
+11
+476.980410282499
+21
+-794.166557704225
+31
+2268.78055560144
+12
+104.49356364776
+22
+-794.166606715679
+32
+2268.78050658994
+13
+104.49356364776
+23
+-794.166606715679
+33
+2268.78050658994
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+476.980410282499
+20
+-794.166557704225
+30
+2268.78055560144
+11
+104.493570234214
+21
+-839.735472862507
+31
+2264.29235581156
+12
+395.941605262448
+22
+-839.735434514061
+32
+2264.29239416004
+13
+395.941605262448
+23
+-839.735434514061
+33
+2264.29239416004
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.49356364776
+20
+-794.166606715679
+30
+2268.78050658994
+11
+549.426162494113
+21
+-748.597680229798
+31
+2264.29243258297
+12
+104.493558242398
+22
+-748.597738773593
+32
+2264.29237403911
+13
+104.493558242398
+23
+-748.597738773593
+33
+2264.29237403911
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+549.426162494113
+20
+-748.597680229798
+30
+2264.29243258297
+11
+104.49356364776
+21
+-794.166606715679
+31
+2268.78050658994
+12
+476.980410282499
+22
+-794.166557704225
+32
+2268.78055560144
+13
+476.980410282499
+23
+-794.166557704225
+33
+2268.78055560144
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+549.426162494113
+20
+-748.597680229798
+30
+2264.29243258297
+11
+476.980410282499
+21
+-794.166557704225
+31
+2268.78055560144
+12
+517.019001290372
+22
+-773.773616738727
+32
+2266.77203613245
+13
+517.019001290372
+23
+-773.773616738727
+33
+2266.77203613245
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493589835895
+20
+-940.355698951006
+30
+2215.93993123015
+11
+199.064976889088
+21
+-923.935740607716
+31
+2229.41545051599
+12
+104.493585902279
+22
+-923.935753051327
+32
+2229.41543807237
+13
+104.493585902279
+23
+-923.935753051327
+33
+2229.41543807237
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+199.064976889088
+20
+-923.935740607716
+30
+2229.41545051599
+11
+104.493589835895
+21
+-940.355698951006
+31
+2215.93993123015
+12
+184.938817720617
+22
+-929.750221953924
+32
+2224.64362671606
+13
+184.938817720617
+23
+-929.750221953924
+33
+2224.64362671606
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+104.493626002977
+21
+-966.678491842449
+31
+1967.39330582966
+12
+104.493617614829
+22
+-970.737560564704
+32
+2035.2022000213
+13
+104.493617614829
+23
+-970.737560564704
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493626002977
+20
+-966.678491842449
+30
+1967.39330582966
+11
+104.493608158504
+21
+-966.678493599977
+31
+2103.01109421295
+12
+104.493597769057
+22
+-954.55926212325
+32
+2169.85154878419
+13
+104.493597769057
+23
+-954.55926212325
+33
+2169.85154878419
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493626002977
+20
+-966.678491842449
+30
+1967.39330582966
+11
+104.493597769057
+21
+-954.55926212325
+31
+2169.85154878419
+12
+104.493633203151
+22
+-954.559258633297
+32
+1900.55285125842
+13
+104.493633203151
+23
+-954.559258633297
+33
+1900.55285125842
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493633203151
+20
+-954.559258633297
+30
+1900.55285125842
+11
+104.493597769057
+21
+-954.55926212325
+31
+2169.85154878419
+12
+104.493589835895
+22
+-940.355698951006
+32
+2215.93993123015
+13
+104.493589835895
+23
+-940.355698951006
+33
+2215.93993123015
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493633203151
+20
+-954.559258633297
+30
+1900.55285125842
+11
+104.493589835895
+21
+-940.355698951006
+31
+2215.93993123015
+12
+104.493637398531
+22
+-940.355693033463
+32
+1854.46446481146
+13
+104.493637398531
+23
+-940.355693033463
+33
+1854.46446481146
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637398531
+20
+-940.355693033463
+30
+1854.46446481146
+11
+104.493589835895
+21
+-940.355698951006
+31
+2215.93993123015
+12
+104.493585902279
+22
+-923.935753051327
+32
+2229.41543807237
+13
+104.493585902279
+23
+-923.935753051327
+33
+2229.41543807237
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637398531
+20
+-940.355693033463
+30
+1854.46446481146
+11
+104.493585902279
+21
+-923.935753051327
+31
+2229.41543807237
+12
+104.493637011103
+22
+-923.935675365986
+32
+1840.98891006256
+13
+104.493637011103
+23
+-923.935675365986
+33
+1840.98891006256
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637011103
+20
+-923.935675365986
+30
+1840.98891006256
+11
+104.493585902279
+21
+-923.935753051327
+31
+2229.41543807237
+12
+104.493577748645
+22
+-883.553151243369
+32
+2251.0003988214
+13
+104.493577748645
+23
+-883.553151243369
+33
+2251.0003988214
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637011103
+20
+-923.935675365986
+30
+1840.98891006256
+11
+104.493577748645
+21
+-883.553151243369
+31
+2251.0003988214
+12
+104.493634537727
+22
+-883.553064924044
+32
+1819.40396546658
+13
+104.493634537727
+23
+-883.553064924044
+33
+1819.40396546658
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493634537727
+20
+-883.553064924044
+30
+1819.40396546658
+11
+104.493577748645
+21
+-883.553151243369
+31
+2251.0003988214
+12
+104.493606060716
+22
+-882.926351999993
+32
+2035.2022000213
+13
+104.493606060716
+23
+-882.926351999993
+33
+2035.2022000213
+70
+15
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493606060716
+20
+-882.926351999993
+30
+2035.2022000213
+11
+104.493577748645
+21
+-883.553151243369
+31
+2251.0003988214
+12
+104.493603557861
+22
+-881.220857485246
+32
+2052.51837642467
+13
+104.493603557861
+23
+-881.220857485246
+33
+2052.51837642467
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493603557861
+20
+-881.220857485246
+30
+2052.51837642467
+11
+104.493577748645
+21
+-883.553151243369
+31
+2251.0003988214
+12
+104.493570234214
+22
+-839.735472862507
+32
+2264.29235581156
+13
+104.493570234214
+23
+-839.735472862507
+33
+2264.29235581156
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493603557861
+20
+-881.220857485246
+30
+2052.51837642467
+11
+104.493570234214
+21
+-839.735472862507
+31
+2264.29235581156
+12
+104.493600702375
+22
+-876.169915138753
+32
+2069.16910187987
+13
+104.493600702375
+23
+-876.169915138753
+33
+2069.16910187987
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493600702375
+20
+-876.169915138753
+30
+2069.16910187987
+11
+104.493570234214
+21
+-839.735472862507
+31
+2264.29235581156
+12
+104.493597603992
+22
+-867.967629842289
+32
+2084.51449834551
+13
+104.493597603992
+23
+-867.967629842289
+33
+2084.51449834551
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493597603992
+20
+-867.967629842289
+30
+2084.51449834551
+11
+104.493570234214
+21
+-839.735472862507
+31
+2264.29235581156
+12
+104.493594381781
+22
+-856.929210819903
+32
+2097.96485084121
+13
+104.493594381781
+23
+-856.929210819903
+33
+2097.96485084121
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493594381781
+20
+-856.929210819903
+30
+2097.96485084121
+11
+104.493570234214
+21
+-839.735472862507
+31
+2264.29235581156
+12
+104.493591159571
+22
+-843.478858324207
+32
+2109.0032698636
+13
+104.493591159571
+23
+-843.478858324207
+33
+2109.0032698636
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493591159571
+20
+-843.478858324207
+30
+2109.0032698636
+11
+104.493570234214
+21
+-839.735472862507
+31
+2264.29235581156
+12
+104.493588061189
+22
+-828.133461858568
+32
+2117.20555516006
+13
+104.493588061189
+23
+-828.133461858568
+33
+2117.20555516006
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493588061189
+20
+-828.133461858568
+30
+2117.20555516006
+11
+104.493570234214
+21
+-839.735472862507
+31
+2264.29235581156
+12
+104.49356364776
+22
+-794.166606715679
+32
+2268.78050658994
+13
+104.49356364776
+23
+-794.166606715679
+33
+2268.78050658994
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493588061189
+20
+-828.133461858568
+30
+2117.20555516006
+11
+104.49356364776
+21
+-794.166606715679
+31
+2268.78050658994
+12
+104.493585205705
+22
+-811.482736403362
+32
+2122.25649750655
+13
+104.493585205705
+23
+-811.482736403362
+33
+2122.25649750655
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493585205705
+20
+-811.482736403362
+30
+2122.25649750655
+11
+104.49356364776
+21
+-794.166606715679
+31
+2268.78050658994
+12
+104.493582702852
+22
+-794.166559999998
+32
+2123.9619920213
+13
+104.493582702852
+23
+-794.166559999998
+33
+2123.9619920213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493582702852
+20
+-794.166559999998
+30
+2123.9619920213
+11
+104.49356364776
+21
+-794.166606715679
+31
+2268.78050658994
+12
+104.493558242398
+22
+-748.597738773593
+32
+2264.29237403911
+13
+104.493558242398
+23
+-748.597738773593
+33
+2264.29237403911
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493582702852
+20
+-794.166559999998
+30
+2123.9619920213
+11
+104.493558242398
+21
+-748.597738773593
+31
+2264.29237403911
+12
+104.493580648814
+22
+-776.850383596634
+32
+2122.25649750655
+13
+104.493580648814
+23
+-776.850383596634
+33
+2122.25649750655
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493580648814
+20
+-776.850383596634
+30
+2122.25649750655
+11
+104.493558242398
+21
+-748.597738773593
+31
+2264.29237403911
+12
+104.493579122526
+22
+-760.199658141427
+32
+2117.20555516006
+13
+104.493579122526
+23
+-760.199658141427
+33
+2117.20555516006
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493579122526
+20
+-760.199658141427
+30
+2117.20555516006
+11
+104.493558242398
+21
+-748.597738773593
+31
+2264.29237403911
+12
+104.493578182644
+22
+-744.854261675788
+32
+2109.0032698636
+13
+104.493578182644
+23
+-744.854261675788
+33
+2109.0032698636
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493578182644
+20
+-744.854261675788
+30
+2109.0032698636
+11
+104.493558242398
+21
+-748.597738773593
+31
+2264.29237403911
+12
+104.493554225852
+22
+-704.780055075949
+32
+2251.00043457603
+13
+104.493554225852
+23
+-704.780055075949
+33
+2251.00043457603
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493578182644
+20
+-744.854261675788
+30
+2109.0032698636
+11
+104.493554225852
+21
+-704.780055075949
+31
+2251.00043457603
+12
+104.493577865285
+22
+-731.403909180092
+32
+2097.96485084121
+13
+104.493577865285
+23
+-731.403909180092
+33
+2097.96485084121
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493577865285
+20
+-731.403909180092
+30
+2097.96485084121
+11
+104.493554225852
+21
+-704.780055075949
+31
+2251.00043457603
+12
+104.493578182647
+22
+-720.365490157705
+32
+2084.51449834551
+13
+104.493578182647
+23
+-720.365490157705
+33
+2084.51449834551
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493578182647
+20
+-720.365490157705
+30
+2084.51449834551
+11
+104.493554225852
+21
+-704.780055075949
+31
+2251.00043457603
+12
+104.493579122533
+22
+-712.163204861241
+32
+2069.16910187987
+13
+104.493579122533
+23
+-712.163204861241
+33
+2069.16910187987
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493579122533
+20
+-712.163204861241
+30
+2069.16910187987
+11
+104.493554225852
+21
+-704.780055075949
+31
+2251.00043457603
+12
+104.493580648823
+22
+-707.112262514747
+32
+2052.51837642467
+13
+104.493580648823
+23
+-707.112262514747
+33
+2052.51837642467
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493580648823
+20
+-707.112262514747
+30
+2052.51837642467
+11
+104.493554225852
+21
+-704.780055075949
+31
+2251.00043457603
+12
+104.493582702864
+22
+-705.406767999999
+32
+2035.2022000213
+13
+104.493582702864
+23
+-705.406767999999
+33
+2035.2022000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493634537727
+20
+-883.553064924044
+30
+1819.40396546658
+11
+104.493608114757
+21
+-881.220857485245
+31
+2017.88602361794
+12
+104.493630521182
+22
+-839.735381226399
+32
+1806.1120260035
+13
+104.493630521182
+23
+-839.735381226399
+33
+1806.1120260035
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608114757
+20
+-881.220857485245
+30
+2017.88602361794
+11
+104.493634537727
+21
+-883.553064924044
+31
+1819.40396546658
+12
+104.493606060716
+22
+-882.926351999993
+32
+2035.2022000213
+13
+104.493606060716
+23
+-882.926351999993
+33
+2035.2022000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493630521182
+20
+-839.735381226399
+30
+1806.1120260035
+11
+104.493608114757
+21
+-881.220857485245
+31
+2017.88602361794
+12
+104.493609641047
+22
+-876.169915138752
+32
+2001.23529816273
+13
+104.493609641047
+23
+-876.169915138752
+33
+2001.23529816273
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493630521182
+20
+-839.735381226399
+30
+1806.1120260035
+11
+104.493609641047
+21
+-876.169915138752
+31
+2001.23529816273
+12
+104.493610580933
+22
+-867.967629842287
+32
+1985.88990169709
+13
+104.493610580933
+23
+-867.967629842287
+33
+1985.88990169709
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493630521182
+20
+-839.735381226399
+30
+1806.1120260035
+11
+104.493610580933
+21
+-867.967629842287
+31
+1985.88990169709
+12
+104.493610898294
+22
+-856.9292108199
+32
+1972.4395492014
+13
+104.493610898294
+23
+-856.9292108199
+33
+1972.4395492014
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493630521182
+20
+-839.735381226399
+30
+1806.1120260035
+11
+104.493610898294
+21
+-856.9292108199
+31
+1972.4395492014
+12
+104.493610580936
+22
+-843.478858324204
+32
+1961.40113017901
+13
+104.493610580936
+23
+-843.478858324204
+33
+1961.40113017901
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493630521182
+20
+-839.735381226399
+30
+1806.1120260035
+11
+104.493610580936
+21
+-843.478858324204
+31
+1961.40113017901
+12
+104.493609641054
+22
+-828.133461858565
+32
+1953.19884488255
+13
+104.493609641054
+23
+-828.133461858565
+33
+1953.19884488255
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493630521182
+20
+-839.735381226399
+30
+1806.1120260035
+11
+104.493609641054
+21
+-828.133461858565
+31
+1953.19884488255
+12
+104.49362511582
+22
+-794.166513284314
+32
+1801.62389345267
+13
+104.49362511582
+23
+-794.166513284314
+33
+1801.62389345267
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.49362511582
+20
+-794.166513284314
+30
+1801.62389345267
+11
+104.493609641054
+21
+-828.133461858565
+31
+1953.19884488255
+12
+104.493608114766
+22
+-811.482736403359
+32
+1948.14790253605
+13
+104.493608114766
+23
+-811.482736403359
+33
+1948.14790253605
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.49362511582
+20
+-794.166513284314
+30
+1801.62389345267
+11
+104.493608114766
+21
+-811.482736403359
+31
+1948.14790253605
+12
+104.493606060728
+22
+-794.166559999995
+32
+1946.44240802131
+13
+104.493606060728
+23
+-794.166559999995
+33
+1946.44240802131
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.49362511582
+20
+-794.166513284314
+30
+1801.62389345267
+11
+104.493606060728
+21
+-794.166559999995
+31
+1946.44240802131
+12
+104.493603557875
+22
+-776.850383596631
+32
+1948.14790253605
+13
+104.493603557875
+23
+-776.850383596631
+33
+1948.14790253605
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.49362511582
+20
+-794.166513284314
+30
+1801.62389345267
+11
+104.493603557875
+21
+-776.850383596631
+31
+1948.14790253605
+12
+104.493618529366
+22
+-748.597647137485
+32
+1806.11204423105
+13
+104.493618529366
+23
+-748.597647137485
+33
+1806.11204423105
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493618529366
+20
+-748.597647137485
+30
+1806.11204423105
+11
+104.493603557875
+21
+-776.850383596631
+31
+1948.14790253605
+12
+104.49360070239
+22
+-760.199658141424
+32
+1953.19884488255
+13
+104.49360070239
+23
+-760.199658141424
+33
+1953.19884488255
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493618529366
+20
+-748.597647137485
+30
+1806.11204423105
+11
+104.49360070239
+21
+-760.199658141424
+31
+1953.19884488255
+12
+104.493597604008
+22
+-744.854261675785
+32
+1961.40113017901
+13
+104.493597604008
+23
+-744.854261675785
+33
+1961.40113017901
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493618529366
+20
+-748.597647137485
+30
+1806.11204423105
+11
+104.493597604008
+21
+-744.854261675785
+31
+1961.40113017901
+12
+104.493611014934
+22
+-704.779968756623
+32
+1819.40400122121
+13
+104.493611014934
+23
+-704.779968756623
+33
+1819.40400122121
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493597604008
+21
+-744.854261675785
+31
+1961.40113017901
+12
+104.493594381798
+22
+-731.40390918009
+32
+1972.4395492014
+13
+104.493594381798
+23
+-731.40390918009
+33
+1972.4395492014
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493594381798
+21
+-731.40390918009
+31
+1972.4395492014
+12
+104.493591159588
+22
+-720.365490157703
+32
+1985.88990169709
+13
+104.493591159588
+23
+-720.365490157703
+33
+1985.88990169709
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493591159588
+21
+-720.365490157703
+31
+1985.88990169709
+12
+104.493588061205
+22
+-712.163204861239
+32
+2001.23529816273
+13
+104.493588061205
+23
+-712.163204861239
+33
+2001.23529816273
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493588061205
+21
+-712.163204861239
+31
+2001.23529816273
+12
+104.493585205719
+22
+-707.112262514746
+32
+2017.88602361794
+13
+104.493585205719
+23
+-707.112262514746
+33
+2017.88602361794
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493585205719
+21
+-707.112262514746
+31
+2017.88602361794
+12
+104.493582702864
+22
+-705.406767999999
+32
+2035.2022000213
+13
+104.493582702864
+23
+-705.406767999999
+33
+2035.2022000213
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493582702864
+21
+-705.406767999999
+31
+2035.2022000213
+12
+104.493554225852
+22
+-704.780055075949
+32
+2251.00043457603
+13
+104.493554225852
+23
+-704.780055075949
+33
+2251.00043457603
+70
+15
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493554225852
+21
+-704.780055075949
+31
+2251.00043457603
+12
+104.493551752477
+22
+-664.397444634006
+32
+2229.41548998005
+13
+104.493551752477
+23
+-664.397444634006
+33
+2229.41548998005
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493611014934
+20
+-704.779968756623
+30
+1819.40400122121
+11
+104.493551752477
+21
+-664.397444634006
+31
+2229.41548998005
+12
+104.4936028613
+22
+-664.397366948665
+32
+1840.98896197024
+13
+104.4936028613
+23
+-664.397366948665
+33
+1840.98896197024
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.4936028613
+20
+-664.397366948665
+30
+1840.98896197024
+11
+104.493551752477
+21
+-664.397444634006
+31
+2229.41548998005
+12
+104.493550917322
+22
+-629.00178852022
+32
+2200.36703756703
+13
+104.493550917322
+23
+-629.00178852022
+33
+2200.36703756703
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.4936028613
+20
+-664.397366948665
+30
+1840.98896197024
+11
+104.493550917322
+21
+-629.00178852022
+31
+2200.36703756703
+12
+104.493594381804
+22
+-629.001722454268
+32
+1870.03742854153
+13
+104.493594381804
+23
+-629.001722454268
+33
+1870.03742854153
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493594381804
+20
+-629.001722454268
+30
+1870.03742854153
+11
+104.493550917322
+21
+-629.00178852022
+31
+2200.36703756703
+12
+104.493551752482
+22
+-599.953321948931
+32
+2164.97139307263
+13
+104.493551752482
+23
+-599.953321948931
+33
+2164.97139307263
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493594381804
+20
+-629.001722454268
+30
+1870.03742854153
+11
+104.493551752482
+21
+-599.953321948931
+31
+2164.97139307263
+12
+104.493585902306
+22
+-599.953270041246
+32
+1905.43308465531
+13
+104.493585902306
+23
+-599.953270041246
+33
+1905.43308465531
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493585902306
+20
+-599.953270041246
+30
+1905.43308465531
+11
+104.493551752482
+21
+-599.953321948931
+31
+2164.97139307263
+12
+104.493554225863
+22
+-578.368361199906
+32
+2124.58879126467
+13
+104.493554225863
+23
+-578.368361199906
+33
+2124.58879126467
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493585902306
+20
+-599.953270041246
+30
+1905.43308465531
+11
+104.493554225863
+21
+-578.368361199906
+31
+2124.58879126467
+12
+104.493577748671
+22
+-578.36832544527
+32
+1945.81569509725
+13
+104.493577748671
+23
+-578.36832544527
+33
+1945.81569509725
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493577748671
+20
+-578.36832544527
+30
+1945.81569509725
+11
+104.493554225863
+21
+-578.368361199906
+31
+2124.58879126467
+12
+104.493558242413
+22
+-565.076404209743
+32
+2080.77111288381
+13
+104.493558242413
+23
+-565.076404209743
+33
+2080.77111288381
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493577748671
+20
+-578.36832544527
+30
+1945.81569509725
+11
+104.493558242413
+21
+-565.076404209743
+31
+2080.77111288381
+12
+104.493570234237
+22
+-565.076385982188
+32
+1989.6333787949
+13
+104.493570234237
+23
+-565.076385982188
+33
+1989.6333787949
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493570234237
+20
+-565.076385982188
+30
+1989.6333787949
+11
+104.493558242413
+21
+-565.076404209743
+31
+2080.77111288381
+12
+104.49356364778
+22
+-560.588253431361
+32
+2035.20224673698
+13
+104.49356364778
+23
+-560.588253431361
+33
+2035.20224673698
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+199.0652044353
+20
+-923.935662922352
+30
+1840.9889225062
+11
+104.493637398531
+21
+-940.355693033463
+31
+1854.46446481146
+12
+104.493637011103
+22
+-923.935675365986
+32
+1840.98891006256
+13
+104.493637011103
+23
+-923.935675365986
+33
+1840.98891006256
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493637398531
+20
+-940.355693033463
+30
+1854.46446481146
+11
+199.0652044353
+21
+-923.935662922352
+31
+1840.9889225062
+12
+184.938820049334
+22
+-929.750233661175
+32
+1845.76081205901
+13
+184.938820049334
+23
+-929.750233661175
+33
+1845.76081205901
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493577748645
+20
+-883.553151243369
+30
+2251.0003988214
+11
+395.941605262448
+21
+-839.735434514061
+31
+2264.29239416004
+12
+104.493570234214
+22
+-839.735472862507
+32
+2264.29235581156
+13
+104.493570234214
+23
+-839.735472862507
+33
+2264.29235581156
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+395.941605262448
+20
+-839.735434514061
+30
+2264.29239416004
+11
+104.493577748645
+21
+-883.553151243369
+31
+2251.0003988214
+12
+301.780746126529
+22
+-883.553125284517
+32
+2251.00042478027
+13
+301.780746126529
+23
+-883.553125284517
+33
+2251.00042478027
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+395.941605262448
+20
+-839.735434514061
+30
+2264.29239416004
+11
+301.780746126529
+21
+-883.553125284517
+31
+2251.00042478027
+12
+357.792956438195
+22
+-863.788607954656
+32
+2256.9959350164
+13
+357.792956438195
+23
+-863.788607954656
+33
+2256.9959350164
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493554225852
+20
+-704.780055075949
+30
+2251.00043457603
+11
+673.273723074262
+21
+-664.397369794469
+31
+2229.41556481967
+12
+104.493551752477
+22
+-664.397444634006
+32
+2229.41548998005
+13
+104.493551752477
+23
+-664.397444634006
+33
+2229.41548998005
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+673.273723074262
+20
+-664.397369794469
+30
+2229.41556481967
+11
+104.493554225852
+21
+-704.780055075949
+31
+2251.00043457603
+12
+612.092889952714
+22
+-704.779988286527
+32
+2251.00050136552
+13
+612.092889952714
+23
+-704.779988286527
+33
+2251.00050136552
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+673.273723074262
+20
+-664.397369794469
+30
+2229.41556481967
+11
+612.092889952714
+21
+-704.779988286527
+31
+2251.00050136552
+12
+660.421223817861
+22
+-674.412868555691
+32
+2234.76895526921
+13
+660.421223817861
+23
+-674.412868555691
+33
+2234.76895526921
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+673.273723074262
+20
+-664.397369794469
+30
+2229.41556481967
+11
+660.421223817861
+21
+-674.412868555691
+31
+2234.76895526921
+12
+668.764043362589
+22
+-668.76404336259
+32
+2231.74959843549
+13
+668.764043362589
+23
+-668.76404336259
+33
+2231.74959843549
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+549.426368572047
+20
+-748.597588593672
+30
+1806.11210277493
+11
+104.49362511582
+21
+-794.166513284314
+31
+1801.62389345267
+12
+104.493618529366
+22
+-748.597647137485
+32
+1806.11204423105
+13
+104.493618529366
+23
+-748.597647137485
+33
+1806.11204423105
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.49362511582
+20
+-794.166513284314
+30
+1801.62389345267
+11
+549.426368572047
+21
+-748.597588593672
+31
+1806.11210277493
+12
+476.980677127978
+22
+-794.166464272834
+32
+1801.6239424642
+13
+476.980677127978
+23
+-794.166464272834
+33
+1801.6239424642
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+476.980677127978
+20
+-794.166464272834
+30
+1801.6239424642
+11
+549.426368572047
+21
+-748.597588593672
+31
+1806.11210277493
+12
+517.019026944331
+22
+-773.773655132591
+32
+1803.63246772228
+13
+517.019026944331
+23
+-773.773655132591
+33
+1803.63246772228
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-191.38931884584
+20
+-962.179081004757
+30
+2035.2022000213
+11
+0.0
+21
+-976.970215709361
+31
+1967.39330582966
+12
+-190.597433982906
+22
+-958.19800696011
+32
+1967.39330582966
+13
+-190.597433982906
+23
+-958.19800696011
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-976.970215709361
+30
+1967.39330582966
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-10.2481189704998
+22
+-977.344465549986
+32
+1990.50710618793
+13
+-10.2481189704998
+23
+-977.344465549986
+33
+1990.50710618793
+70
+15
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-976.970215709361
+30
+1967.39330582966
+11
+-10.2481189704998
+21
+-977.344465549986
+31
+1990.50710618793
+12
+-1.4681606386561
+22
+-978.157451656943
+32
+1989.64235577041
+13
+-1.4681606386561
+23
+-978.157451656943
+33
+1989.64235577041
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-10.2481189704998
+20
+-977.344465549986
+30
+1990.50710618793
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-18.6906684275082
+22
+-976.666250664317
+32
+1993.0681255669
+13
+-18.6906684275082
+23
+-976.666250664317
+33
+1993.0681255669
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-18.6906684275082
+20
+-976.666250664317
+30
+1993.0681255669
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-26.4713665686843
+22
+-976.148870417647
+32
+1997.22699536883
+13
+-26.4713665686843
+23
+-976.148870417647
+33
+1997.22699536883
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-26.4713665686843
+20
+-976.148870417647
+30
+1997.22699536883
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-33.2912055279291
+22
+-975.812207442705
+32
+2002.82389255955
+13
+-33.2912055279291
+23
+-975.812207442705
+33
+2002.82389255955
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-33.2912055279291
+20
+-975.812207442705
+30
+2002.82389255955
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-38.8881027186488
+22
+-975.669199508814
+32
+2009.6437315188
+13
+-38.8881027186488
+23
+-975.669199508814
+33
+2009.6437315188
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-38.8881027186488
+20
+-975.669199508814
+30
+2009.6437315188
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-43.0469725205791
+22
+-975.725342330674
+32
+2017.42442965997
+13
+-43.0469725205791
+23
+-975.725342330674
+33
+2017.42442965997
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-43.0469725205791
+20
+-975.725342330674
+30
+2017.42442965997
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-45.6079918995534
+22
+-975.978478371127
+32
+2025.86697911698
+13
+-45.6079918995534
+23
+-975.978478371127
+33
+2025.86697911698
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-45.6079918995534
+20
+-975.978478371127
+30
+2025.86697911698
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-46.4727423170739
+22
+-976.418879754098
+32
+2034.64693744883
+13
+-46.4727423170739
+23
+-976.418879754098
+33
+2034.64693744883
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-46.4727423170739
+20
+-976.418879754098
+30
+2034.64693744883
+11
+-191.38931884584
+21
+-962.179081004757
+31
+2035.2022000213
+12
+-46.4180537270787
+22
+-976.457504352767
+32
+2035.20220002131
+13
+-46.4180537270787
+23
+-976.457504352767
+33
+2035.20220002131
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-978.310708745151
+30
+1989.78695697206
+11
+0.0
+21
+-976.970215709361
+31
+1967.39330582966
+12
+-1.4681606386561
+22
+-978.157451656943
+32
+1989.64235577041
+13
+-1.4681606386561
+23
+-978.157451656943
+33
+1989.64235577041
+70
+2
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+43.4817324497669
+20
+-976.746706756077
+30
+2035.2022000213
+11
+104.493608158504
+21
+-966.678493599977
+31
+2103.01109421295
+12
+104.493617614829
+22
+-970.737560564704
+32
+2035.2022000213
+13
+104.493617614829
+23
+-970.737560564704
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+43.4817324497669
+21
+-976.746706756077
+31
+2035.2022000213
+12
+42.6716706222411
+22
+-976.334157259822
+32
+2043.42689578067
+13
+42.6716706222411
+23
+-976.334157259822
+33
+2043.42689578067
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+42.6716706222411
+21
+-976.334157259822
+31
+2043.42689578067
+12
+40.1106512432667
+22
+-976.081021219369
+32
+2051.86944523768
+13
+40.1106512432667
+23
+-976.081021219369
+33
+2051.86944523768
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+40.1106512432667
+21
+-976.081021219369
+31
+2051.86944523768
+12
+35.9517814413358
+22
+-976.024878397508
+32
+2059.65014337886
+13
+35.9517814413358
+23
+-976.024878397508
+33
+2059.65014337886
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+35.9517814413358
+21
+-976.024878397508
+31
+2059.65014337886
+12
+30.354884250617
+22
+-976.1678863314
+32
+2066.4699823381
+13
+30.354884250617
+23
+-976.1678863314
+33
+2066.4699823381
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+30.354884250617
+21
+-976.1678863314
+31
+2066.4699823381
+12
+23.5350452913725
+22
+-976.504549306342
+32
+2072.06687952882
+13
+23.5350452913725
+23
+-976.504549306342
+33
+2072.06687952882
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+23.5350452913725
+21
+-976.504549306342
+31
+2072.06687952882
+12
+15.754347150196
+22
+-977.021929553012
+32
+2076.22574933075
+13
+15.754347150196
+23
+-977.021929553012
+33
+2076.22574933075
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+15.754347150196
+21
+-977.021929553012
+31
+2076.22574933075
+12
+7.31179769318775
+22
+-977.70014443868
+32
+2078.78676870972
+13
+7.31179769318775
+23
+-977.70014443868
+33
+2078.78676870972
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+7.31179769318775
+21
+-977.70014443868
+31
+2078.78676870972
+12
+0.0
+22
+-978.377185230535
+32
+2079.50691792559
+13
+0.0
+23
+-978.377185230535
+33
+2079.50691792559
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493608158504
+20
+-966.678493599977
+30
+2103.01109421295
+11
+0.0
+21
+-978.377185230535
+31
+2079.50691792559
+12
+0.0
+22
+-976.970215709361
+32
+2103.01109421295
+13
+0.0
+23
+-976.970215709361
+33
+2103.01109421295
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-190.597433982906
+20
+-958.19800696011
+30
+2103.01109421295
+11
+-46.4180537270787
+21
+-976.457504352767
+31
+2035.20220002131
+12
+-191.38931884584
+22
+-962.179081004757
+32
+2035.2022000213
+13
+-191.38931884584
+23
+-962.179081004757
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-46.4180537270787
+20
+-976.457504352767
+30
+2035.20220002131
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-45.6079918995534
+22
+-976.044954856512
+32
+2043.42689578067
+13
+-45.6079918995534
+23
+-976.044954856512
+33
+2043.42689578067
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-45.6079918995534
+20
+-976.044954856512
+30
+2043.42689578067
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-43.0469725205787
+22
+-975.791818816059
+32
+2051.86944523768
+13
+-43.0469725205787
+23
+-975.791818816059
+33
+2051.86944523768
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-43.0469725205787
+20
+-975.791818816059
+30
+2051.86944523768
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-38.8881027186484
+22
+-975.735675994198
+32
+2059.65014337885
+13
+-38.8881027186484
+23
+-975.735675994198
+33
+2059.65014337885
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-38.8881027186484
+20
+-975.735675994198
+30
+2059.65014337885
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-33.2912055279292
+22
+-975.878683928089
+32
+2066.4699823381
+13
+-33.2912055279292
+23
+-975.878683928089
+33
+2066.4699823381
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-33.2912055279292
+20
+-975.878683928089
+30
+2066.4699823381
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-26.4713665686843
+22
+-976.215346903032
+32
+2072.06687952882
+13
+-26.4713665686843
+23
+-976.215346903032
+33
+2072.06687952882
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-26.4713665686843
+20
+-976.215346903032
+30
+2072.06687952882
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-18.690668427508
+22
+-976.732727149702
+32
+2076.22574933075
+13
+-18.690668427508
+23
+-976.732727149702
+33
+2076.22574933075
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-18.690668427508
+20
+-976.732727149702
+30
+2076.22574933075
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-10.2481189704998
+22
+-977.41094203537
+32
+2078.78676870972
+13
+-10.2481189704998
+23
+-977.41094203537
+33
+2078.78676870972
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-10.2481189704998
+20
+-977.41094203537
+30
+2078.78676870972
+11
+-190.597433982906
+21
+-958.19800696011
+31
+2103.01109421295
+12
+-1.46816063865592
+22
+-978.223928142328
+32
+2079.65151912724
+13
+-1.46816063865592
+23
+-978.223928142328
+33
+2079.65151912724
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+-1.46816063865592
+20
+-978.223928142328
+30
+2079.65151912724
+11
+0.0
+21
+-976.970215709361
+31
+2103.01109421295
+12
+0.0
+22
+-978.377185230535
+32
+2079.50691792559
+13
+0.0
+23
+-978.377185230535
+33
+2079.50691792559
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-976.970215709361
+30
+2103.01109421295
+11
+-1.46816063865592
+21
+-978.223928142328
+31
+2079.65151912724
+12
+-190.597433982906
+22
+-958.19800696011
+32
+2103.01109421295
+13
+-190.597433982906
+23
+-958.19800696011
+33
+2103.01109421295
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+0.0
+20
+-978.310708745151
+30
+1989.78695697206
+11
+104.493626002977
+21
+-966.678491842449
+31
+1967.39330582966
+12
+0.0
+22
+-976.970215709361
+32
+1967.39330582966
+13
+0.0
+23
+-976.970215709361
+33
+1967.39330582966
+70
+1
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493626002977
+20
+-966.678491842449
+30
+1967.39330582966
+11
+0.0
+21
+-978.310708745151
+31
+1989.78695697206
+12
+7.31179769318757
+22
+-977.633667953296
+32
+1990.50710618793
+13
+7.31179769318757
+23
+-977.633667953296
+33
+1990.50710618793
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493626002977
+20
+-966.678491842449
+30
+1967.39330582966
+11
+7.31179769318757
+21
+-977.633667953296
+31
+1990.50710618793
+12
+15.754347150196
+22
+-976.955453067628
+32
+1993.0681255669
+13
+15.754347150196
+23
+-976.955453067628
+33
+1993.0681255669
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493626002977
+20
+-966.678491842449
+30
+1967.39330582966
+11
+15.754347150196
+21
+-976.955453067628
+31
+1993.0681255669
+12
+104.493617614829
+22
+-970.737560564704
+32
+2035.2022000213
+13
+104.493617614829
+23
+-970.737560564704
+33
+2035.2022000213
+70
+3
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493617614829
+20
+-970.737560564704
+30
+2035.2022000213
+11
+15.754347150196
+21
+-976.955453067628
+31
+1993.0681255669
+12
+23.5350452913723
+22
+-976.438072820957
+32
+1997.22699536883
+13
+23.5350452913723
+23
+-976.438072820957
+33
+1997.22699536883
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493617614829
+20
+-970.737560564704
+30
+2035.2022000213
+11
+23.5350452913723
+21
+-976.438072820957
+31
+1997.22699536883
+12
+30.3548842506176
+22
+-976.101409846015
+32
+2002.82389255955
+13
+30.3548842506176
+23
+-976.101409846015
+33
+2002.82389255955
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493617614829
+20
+-970.737560564704
+30
+2035.2022000213
+11
+30.3548842506176
+21
+-976.101409846015
+31
+2002.82389255955
+12
+35.9517814413364
+22
+-975.958401912124
+32
+2009.6437315188
+13
+35.9517814413364
+23
+-975.958401912124
+33
+2009.6437315188
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493617614829
+20
+-970.737560564704
+30
+2035.2022000213
+11
+35.9517814413364
+21
+-975.958401912124
+31
+2009.6437315188
+12
+40.110651243267
+22
+-976.014544733984
+32
+2017.42442965997
+13
+40.110651243267
+23
+-976.014544733984
+33
+2017.42442965997
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493617614829
+20
+-970.737560564704
+30
+2035.2022000213
+11
+40.110651243267
+21
+-976.014544733984
+31
+2017.42442965997
+12
+42.6716706222411
+22
+-976.267680774437
+32
+2025.86697911698
+13
+42.6716706222411
+23
+-976.267680774437
+33
+2025.86697911698
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493617614829
+20
+-970.737560564704
+30
+2035.2022000213
+11
+42.6716706222411
+21
+-976.267680774437
+31
+2025.86697911698
+12
+43.5364210397618
+22
+-976.708082157409
+32
+2034.64693744883
+13
+43.5364210397618
+23
+-976.708082157409
+33
+2034.64693744883
+70
+13
+ 0
+3DFACE
+ 8
+body_half_inside
+10
+104.493617614829
+20
+-970.737560564704
+30
+2035.2022000213
+11
+43.5364210397618
+21
+-976.708082157409
+31
+2034.64693744883
+12
+43.4817324497669
+22
+-976.746706756077
+32
+2035.2022000213
+13
+43.4817324497669
+23
+-976.746706756077
+33
+2035.2022000213
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.455212576234
+20
+-280.29408
+30
+1639.76100453833
+11
+176.700983922342
+21
+-186.86272
+31
+1605.98522290042
+12
+176.700983922341
+22
+-280.29408
+32
+1605.98522290042
+13
+176.700983922341
+23
+-280.29408
+33
+1605.98522290042
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.700983922342
+20
+-186.86272
+30
+1605.98522290042
+11
+166.455212576234
+21
+-280.29408
+31
+1639.76100453833
+12
+166.455212576235
+22
+-186.86272
+32
+1639.76100453833
+13
+166.455212576235
+23
+-186.86272
+33
+1639.76100453833
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.816982737509
+20
+-280.29408
+30
+1670.8889431717
+11
+166.455212576235
+21
+-186.86272
+31
+1639.76100453833
+12
+166.455212576234
+22
+-280.29408
+32
+1639.76100453833
+13
+166.455212576234
+23
+-280.29408
+33
+1639.76100453833
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.455212576235
+20
+-186.86272
+30
+1639.76100453833
+11
+149.816982737509
+21
+-280.29408
+31
+1670.8889431717
+12
+149.816982737509
+22
+-186.86272
+32
+1670.8889431717
+13
+149.816982737509
+23
+-186.86272
+33
+1670.8889431717
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.530885442671
+20
+-186.862719999999
+30
+242.726639240051
+11
+93.5308854426706
+21
+-280.294079999998
+31
+1315.22236639941
+12
+93.5308854426706
+22
+-280.294079999998
+32
+242.726639192693
+13
+93.5308854426706
+23
+-280.294079999998
+33
+242.726639192693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.5308854426706
+20
+-280.294079999998
+30
+1315.22236639941
+11
+93.530885442671
+21
+-186.862719999999
+31
+242.726639240051
+12
+93.530885442671
+22
+-186.862719999998
+32
+1315.22236639941
+13
+93.530885442671
+23
+-186.862719999998
+33
+1315.22236639941
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844156
+20
+-280.29408
+30
+1421.1550651442
+11
+127.42569224804
+21
+-186.86272
+31
+1443.54635563367
+12
+100.141825844157
+22
+-186.86272
+32
+1421.1550651442
+13
+100.141825844157
+23
+-186.86272
+33
+1421.1550651442
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.42569224804
+20
+-186.86272
+30
+1443.54635563367
+11
+100.141825844156
+21
+-280.29408
+31
+1421.1550651442
+12
+127.425692248039
+22
+-280.29408
+32
+1443.54635563367
+13
+127.425692248039
+23
+-280.29408
+33
+1443.54635563367
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+653.29151769208
+20
+-646.340639254846
+30
+5.83945951983237
+11
+642.023925698404
+21
+-654.528573978645
+31
+-3.60955709766131e-12
+12
+642.023925698403
+22
+-654.528573978644
+32
+5.83945951983345
+13
+642.023925698403
+23
+-654.528573978644
+33
+5.83945951983345
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+642.023925698404
+20
+-654.528573978645
+30
+-3.60955709766131e-12
+11
+653.29151769208
+21
+-646.340639254846
+31
+5.83945951983237
+12
+653.29151769208
+22
+-646.340639254847
+32
+-4.51194637207664e-12
+13
+653.29151769208
+23
+-646.340639254847
+33
+-4.51194637207664e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.816982737509
+20
+-280.29408
+30
+1670.8889431717
+11
+127.425692248039
+21
+-186.862719999999
+31
+1698.17280957558
+12
+149.816982737509
+22
+-186.86272
+32
+1670.8889431717
+13
+149.816982737509
+23
+-186.86272
+33
+1670.8889431717
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.425692248039
+20
+-186.862719999999
+30
+1698.17280957558
+11
+149.816982737509
+21
+-280.29408
+31
+1670.8889431717
+12
+127.425692248039
+22
+-280.29408
+32
+1698.17280957558
+13
+127.425692248039
+23
+-280.29408
+33
+1698.17280957558
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+806.270901222105
+20
+56.1856515497994
+30
+23.3578380793657
+11
+847.545902396362
+21
+56.1856515498016
+31
+1.46187062455283e-11
+12
+806.270901222104
+22
+56.1856515498016
+32
+1.46187062455283e-11
+13
+806.270901222104
+23
+56.1856515498016
+33
+1.46187062455283e-11
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.545902396362
+20
+56.1856515498016
+30
+1.46187062455283e-11
+11
+806.270901222105
+21
+56.1856515497994
+31
+23.3578380793657
+12
+847.545902396365
+22
+56.1856515497976
+32
+23.3578380793863
+13
+847.545902396365
+23
+56.1856515497976
+33
+23.3578380793863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269999782869
+20
+-697.7398487668
+30
+192.761586394987
+11
+464.090791712392
+21
+-720.287768351753
+31
+170.665180957976
+12
+464.090789844927
+22
+-696.627200742591
+32
+191.294034464012
+13
+464.090789844927
+23
+-696.627200742591
+33
+191.294034464012
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090791712392
+20
+-720.287768351753
+30
+170.665180957976
+11
+461.269999782869
+21
+-697.7398487668
+31
+192.761586394987
+12
+461.270001665299
+22
+-721.590015329221
+32
+171.967427935313
+13
+461.270001665299
+23
+-721.590015329221
+33
+171.967427935313
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.410423174187
+20
+-566.321374409616
+30
+23.357838010706
+11
+792.007218281129
+21
+-582.09079684746
+31
+40.22369700007
+12
+793.309565768095
+22
+-569.303680096418
+32
+23.3578380100164
+13
+793.309565768095
+23
+-569.303680096418
+33
+23.3578380100164
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007218281129
+20
+-582.09079684746
+30
+40.22369700007
+11
+793.410423174187
+21
+-566.321374409616
+31
+23.357838010706
+12
+792.007217306199
+22
+-577.494024343961
+32
+43.2377297488181
+13
+792.007217306199
+23
+-577.494024343961
+33
+43.2377297488181
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955341833487
+20
+-738.830110282484
+30
+109.907610082888
+11
+599.602155913773
+21
+-724.524747581215
+31
+134.576835581469
+12
+599.602150844536
+22
+-740.196470143783
+32
+110.675521501907
+13
+599.602150844536
+23
+-740.196470143783
+33
+110.675521501907
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602155913773
+20
+-724.524747581215
+30
+134.576835581469
+11
+624.955341833487
+21
+-738.830110282484
+31
+109.907610082888
+12
+624.955346864755
+22
+-723.275770827742
+32
+133.629900413365
+13
+624.955346864755
+23
+-723.275770827742
+33
+133.629900413365
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335612575248
+20
+-749.104396759147
+30
+83.5375802413299
+11
+439.690596528004
+21
+-756.366969281262
+31
+56.4649968373303
+12
+436.335601310833
+22
+-757.591910929275
+32
+56.7629871862785
+13
+436.335601310833
+23
+-757.591910929275
+33
+56.7629871862785
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690596528004
+20
+-756.366969281262
+30
+56.4649968373303
+11
+436.335612575248
+21
+-749.104396759147
+31
+83.5375802413299
+12
+439.690607723364
+22
+-747.931486742049
+32
+83.0754516399063
+13
+439.690607723364
+23
+-747.931486742049
+33
+83.0754516399063
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690607723364
+20
+-747.931486742049
+30
+83.0754516399063
+11
+442.839466299903
+21
+-754.702000509797
+31
+56.0599621810555
+12
+439.690596528004
+22
+-756.366969281262
+32
+56.4649968373303
+13
+439.690596528004
+23
+-756.366969281262
+33
+56.4649968373303
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839466299903
+20
+-754.702000509797
+30
+56.0599621810555
+11
+439.690607723364
+21
+-747.931486742049
+31
+83.0754516399063
+12
+442.839477401402
+22
+-746.337240593148
+32
+82.4473163912804
+13
+442.839477401402
+23
+-746.337240593148
+33
+82.4473163912804
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222214863865
+20
+-789.666464186592
+30
+31.8757394304439
+11
+455.006085098156
+21
+-785.239686816274
+31
+63.4887904110616
+12
+455.006069025402
+22
+-790.658170470477
+32
+31.9771884161607
+13
+455.006069025402
+23
+-790.658170470477
+33
+31.9771884161607
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006085098156
+20
+-785.239686816274
+30
+63.4887904110616
+11
+458.222214863865
+21
+-789.666464186592
+31
+31.8757394304439
+12
+458.222230868175
+22
+-784.271054681722
+32
+63.2531519626526
+13
+458.222230868175
+23
+-784.271054681722
+33
+63.2531519626526
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.995900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+0.00176534768975319
+21
+-186.86272
+31
+5.83945951983706
+12
+0.00176534768970384
+22
+-186.86272
+32
+23.3578380793295
+13
+0.00176534768970384
+23
+-186.86272
+33
+23.3578380793295
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.00176534768975319
+20
+-186.86272
+30
+5.83945951983706
+11
+764.995900047839
+21
+-186.86272
+31
+23.3578380793295
+12
+764.995900047839
+22
+-186.86272
+32
+5.83945951983706
+13
+764.995900047839
+23
+-186.86272
+33
+5.83945951983706
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.10720415349
+20
+-665.162054034067
+30
+199.228411696097
+11
+470.677523524142
+21
+-692.042929592268
+31
+185.247506781241
+12
+472.107209463225
+22
+-690.197307940468
+32
+182.813182295542
+13
+472.107209463225
+23
+-690.197307940468
+33
+182.813182295542
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677523524142
+20
+-692.042929592268
+30
+185.247506781241
+11
+472.10720415349
+21
+-665.162054034067
+31
+199.228411696097
+12
+470.677518140403
+22
+-666.658744301589
+32
+201.891525102388
+13
+470.677518140403
+23
+-666.658744301589
+33
+201.891525102388
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133251163261
+20
+-548.67314817835
+30
+186.220486963908
+11
+454.66772029492
+21
+-186.86272
+31
+186.220486963908
+12
+602.133251163261
+22
+-186.86272
+32
+186.220486963908
+13
+602.133251163261
+23
+-186.86272
+33
+186.220486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.66772029492
+20
+-186.86272
+30
+186.220486963908
+11
+602.133251163261
+21
+-548.67314817835
+31
+186.220486963908
+12
+454.66772029492
+22
+-548.673192057237
+32
+186.220486963908
+13
+454.66772029492
+23
+-548.673192057237
+33
+186.220486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957358037872
+20
+-603.792752711355
+30
+197.311473394829
+11
+696.758793128571
+21
+-625.025897634329
+31
+178.836736613072
+12
+696.758783079627
+22
+-601.140380260496
+32
+186.408417229293
+13
+696.758783079627
+23
+-601.140380260496
+33
+186.408417229293
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758793128571
+20
+-625.025897634329
+30
+178.836736613072
+11
+673.957358037872
+21
+-603.792752711355
+31
+197.311473394829
+12
+673.957368701467
+22
+-629.139245228331
+32
+189.276665394806
+13
+673.957368701467
+23
+-629.139245228331
+33
+189.276665394806
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-549.195745909472
+30
+217.326639240051
+11
+599.602098887118
+21
+-186.86272
+31
+217.326639240051
+12
+473.71772029492
+22
+-186.86272
+32
+217.326639240051
+13
+473.71772029492
+23
+-186.86272
+33
+217.326639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602098887118
+20
+-186.86272
+30
+217.326639240051
+11
+473.71772029492
+21
+-549.195745909472
+31
+217.326639240051
+12
+599.602098887118
+22
+-549.195708452133
+32
+217.326639240051
+13
+599.602098887118
+23
+-549.195708452133
+33
+217.326639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.5308854426706
+20
+-280.294079999998
+30
+242.726639192693
+11
+0.112465277083136
+21
+-280.29408
+31
+1390.81149035281
+12
+0.000487681863777811
+22
+-280.294079999998
+32
+242.726639192693
+13
+0.000487681863777811
+23
+-280.294079999998
+33
+242.726639192693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.112465277083136
+20
+-280.29408
+30
+1390.81149035281
+11
+93.5308854426706
+21
+-280.294079999998
+31
+242.726639192693
+12
+35.2381055728783
+22
+-280.29408
+32
+1394.27106395937
+13
+35.2381055728783
+23
+-280.29408
+33
+1394.27106395937
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.2381055728783
+20
+-280.29408
+30
+1394.27106395937
+11
+93.5308854426706
+21
+-280.294079999998
+31
+242.726639192693
+12
+69.0138872107921
+22
+-280.29408
+32
+1404.51683530547
+13
+69.0138872107921
+23
+-280.29408
+33
+1404.51683530547
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.0138872107921
+20
+-280.29408
+30
+1404.51683530547
+11
+93.5308854426706
+21
+-280.294079999998
+31
+242.726639192693
+12
+93.5308854426706
+22
+-280.294079999998
+32
+1315.22236639941
+13
+93.5308854426706
+23
+-280.294079999998
+33
+1315.22236639941
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.0138872107921
+20
+-280.29408
+30
+1404.51683530547
+11
+93.5308854426706
+21
+-280.294079999998
+31
+1315.22236639941
+12
+100.141825844156
+22
+-280.29408
+32
+1421.1550651442
+13
+100.141825844156
+23
+-280.29408
+33
+1421.1550651442
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844156
+20
+-280.29408
+30
+1421.1550651442
+11
+93.5308854426706
+21
+-280.294079999998
+31
+1315.22236639941
+12
+221.73980966547
+22
+-280.29408
+32
+1435.59863370269
+13
+221.73980966547
+23
+-280.29408
+33
+1435.59863370269
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844156
+20
+-280.29408
+30
+1421.1550651442
+11
+221.73980966547
+21
+-280.29408
+31
+1435.59863370269
+12
+127.425692248039
+22
+-280.29408
+32
+1443.54635563367
+13
+127.425692248039
+23
+-280.29408
+33
+1443.54635563367
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.425692248039
+20
+-280.29408
+30
+1443.54635563367
+11
+221.73980966547
+21
+-280.29408
+31
+1435.59863370269
+12
+149.816982737509
+22
+-280.29408
+32
+1470.83022203755
+13
+149.816982737509
+23
+-280.29408
+33
+1470.83022203755
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.816982737509
+20
+-280.29408
+30
+1470.83022203755
+11
+221.73980966547
+21
+-280.29408
+31
+1435.59863370269
+12
+166.455212576234
+22
+-280.29408
+32
+1501.95816067091
+13
+166.455212576234
+23
+-280.29408
+33
+1501.95816067091
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.455212576234
+20
+-280.29408
+30
+1501.95816067091
+11
+221.73980966547
+21
+-280.29408
+31
+1435.59863370269
+12
+176.700983922341
+22
+-280.29408
+32
+1535.73394230883
+13
+176.700983922341
+23
+-280.29408
+33
+1535.73394230883
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.700983922341
+20
+-280.29408
+30
+1535.73394230883
+11
+221.73980966547
+21
+-280.29408
+31
+1435.59863370269
+12
+180.160557528893
+22
+-280.29408
+32
+1570.85958260462
+13
+180.160557528893
+23
+-280.29408
+33
+1570.85958260462
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+180.160557528893
+20
+-280.29408
+30
+1570.85958260462
+11
+221.73980966547
+21
+-280.29408
+31
+1435.59863370269
+12
+180.185723589149
+22
+-280.29408
+32
+1903.25211107687
+13
+180.185723589149
+23
+-280.29408
+33
+1903.25211107687
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.2430152276776
+20
+-280.294079999999
+30
+2079.8653122236
+11
+0.179983602711226
+21
+-280.294079999999
+31
+2125.50255258978
+12
+0.112465277083137
+22
+-280.294079999999
+32
+2083.32536938894
+13
+0.112465277083137
+23
+-280.294079999999
+33
+2083.32536938894
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.179983602711226
+20
+-280.294079999999
+30
+2125.50255258978
+11
+35.2430152276776
+21
+-280.294079999999
+31
+2079.8653122236
+12
+46.8683973136999
+22
+-280.294079999999
+32
+2125.50255258978
+13
+46.8683973136999
+23
+-280.294079999999
+33
+2125.50255258978
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973136999
+20
+-280.294079999999
+30
+2125.50255258978
+11
+35.2430152276776
+21
+-280.294079999999
+31
+2079.8653122236
+12
+69.0235178451101
+22
+-280.294079999999
+32
+2069.61810878401
+13
+69.0235178451101
+23
+-280.294079999999
+33
+2069.61810878401
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973136999
+20
+-280.294079999999
+30
+2125.50255258978
+11
+69.0235178451101
+21
+-280.294079999999
+31
+2069.61810878401
+12
+46.8683973136999
+22
+-280.294079999999
+32
+2499.20806403607
+13
+46.8683973136999
+23
+-280.294079999999
+33
+2499.20806403607
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973136999
+20
+-280.294079999999
+30
+2499.20806403607
+11
+69.0235178451101
+21
+-280.294079999999
+31
+2069.61810878401
+12
+93.6524710483026
+22
+-280.294079999999
+32
+2499.20806403607
+13
+93.6524710483026
+23
+-280.294079999999
+33
+2499.20806403607
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.6524710483026
+20
+-280.294079999999
+30
+2499.20806403607
+11
+69.0235178451101
+21
+-280.294079999999
+31
+2069.61810878401
+12
+100.155807358117
+22
+-280.294079999999
+32
+2052.97755335166
+13
+100.155807358117
+23
+-280.294079999999
+33
+2052.97755335166
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.6524710483026
+20
+-280.294079999999
+30
+2499.20806403607
+11
+100.155807358117
+21
+-280.294079999999
+31
+2052.97755335166
+12
+123.089851596878
+22
+-280.294079999999
+32
+2224.76609686633
+13
+123.089851596878
+23
+-280.294079999999
+33
+2224.76609686633
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+123.089851596878
+20
+-280.294079999999
+30
+2224.76609686633
+11
+100.155807358117
+21
+-280.294079999999
+31
+2052.97755335166
+12
+127.443487339902
+22
+-280.29408
+32
+2030.58313313969
+13
+127.443487339902
+23
+-280.29408
+33
+2030.58313313969
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+123.089851596878
+20
+-280.294079999999
+30
+2224.76609686633
+11
+127.443487339902
+21
+-280.29408
+31
+2030.58313313969
+12
+221.73980966547
+22
+-280.29408
+32
+2013.4439613934
+13
+221.73980966547
+23
+-280.29408
+33
+2013.4439613934
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.73980966547
+20
+-280.29408
+30
+2013.4439613934
+11
+127.443487339902
+21
+-280.29408
+31
+2030.58313313969
+12
+149.837907551873
+22
+-280.29408
+32
+2003.29545315791
+13
+149.837907551873
+23
+-280.29408
+33
+2003.29545315791
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.73980966547
+20
+-280.29408
+30
+2013.4439613934
+11
+149.837907551873
+21
+-280.29408
+31
+2003.29545315791
+12
+166.478462984219
+22
+-280.29408
+32
+1972.1631636449
+13
+166.478462984219
+23
+-280.29408
+33
+1972.1631636449
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.73980966547
+20
+-280.29408
+30
+2013.4439613934
+11
+166.478462984219
+21
+-280.29408
+31
+1972.1631636449
+12
+176.725666423806
+22
+-280.29408
+32
+1938.38266102747
+13
+176.725666423806
+23
+-280.29408
+33
+1938.38266102747
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.73980966547
+20
+-280.29408
+30
+2013.4439613934
+11
+176.725666423806
+21
+-280.29408
+31
+1938.38266102747
+12
+180.185723589149
+22
+-280.29408
+32
+1903.25211107687
+13
+180.185723589149
+23
+-280.29408
+33
+1903.25211107687
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.73980966547
+20
+-280.29408
+30
+2013.4439613934
+11
+180.185723589149
+21
+-280.29408
+31
+1903.25211107687
+12
+221.73980966547
+22
+-280.29408
+32
+1435.59863370269
+13
+221.73980966547
+23
+-280.29408
+33
+1435.59863370269
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844156
+20
+-280.29408
+30
+1720.56410006505
+11
+100.155807358117
+21
+-280.29408
+31
+1753.52666880208
+12
+69.3272894690769
+22
+-280.29408
+32
+1737.04848268553
+13
+69.3272894690769
+23
+-280.29408
+33
+1737.04848268553
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-280.29408
+30
+1753.52666880208
+11
+100.141825844156
+21
+-280.29408
+31
+1720.56410006505
+12
+127.425692248039
+22
+-280.29408
+32
+1698.17280957558
+13
+127.425692248039
+23
+-280.29408
+33
+1698.17280957558
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-280.29408
+30
+1753.52666880208
+11
+127.425692248039
+21
+-280.29408
+31
+1698.17280957558
+12
+127.443487339902
+22
+-280.29408
+32
+1775.92108901406
+13
+127.443487339902
+23
+-280.29408
+33
+1775.92108901406
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339902
+20
+-280.29408
+30
+1775.92108901406
+11
+127.425692248039
+21
+-280.29408
+31
+1698.17280957558
+12
+149.816982737509
+22
+-280.29408
+32
+1670.8889431717
+13
+149.816982737509
+23
+-280.29408
+33
+1670.8889431717
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339902
+20
+-280.29408
+30
+1775.92108901406
+11
+149.816982737509
+21
+-280.29408
+31
+1670.8889431717
+12
+149.837907551873
+22
+-280.29408
+32
+1803.20876899584
+13
+149.837907551873
+23
+-280.29408
+33
+1803.20876899584
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.837907551873
+20
+-280.29408
+30
+1803.20876899584
+11
+149.816982737509
+21
+-280.29408
+31
+1670.8889431717
+12
+166.455212576234
+22
+-280.29408
+32
+1639.76100453833
+13
+166.455212576234
+23
+-280.29408
+33
+1639.76100453833
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.837907551873
+20
+-280.29408
+30
+1803.20876899584
+11
+166.455212576234
+21
+-280.29408
+31
+1639.76100453833
+12
+166.478462984219
+22
+-280.29408
+32
+1834.34105850885
+13
+166.478462984219
+23
+-280.29408
+33
+1834.34105850885
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.478462984219
+20
+-280.29408
+30
+1834.34105850885
+11
+166.455212576234
+21
+-280.29408
+31
+1639.76100453833
+12
+176.700983922341
+22
+-280.29408
+32
+1605.98522290042
+13
+176.700983922341
+23
+-280.29408
+33
+1605.98522290042
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.478462984219
+20
+-280.29408
+30
+1834.34105850885
+11
+176.700983922341
+21
+-280.29408
+31
+1605.98522290042
+12
+176.725666423806
+22
+-280.29408
+32
+1868.12156112628
+13
+176.725666423806
+23
+-280.29408
+33
+1868.12156112628
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.725666423806
+20
+-280.29408
+30
+1868.12156112628
+11
+176.700983922341
+21
+-280.29408
+31
+1605.98522290042
+12
+180.160557528893
+22
+-280.29408
+32
+1570.85958260462
+13
+180.160557528893
+23
+-280.29408
+33
+1570.85958260462
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.725666423806
+20
+-280.29408
+30
+1868.12156112628
+11
+180.160557528893
+21
+-280.29408
+31
+1570.85958260462
+12
+180.185723589149
+22
+-280.29408
+32
+1903.25211107687
+13
+180.185723589149
+23
+-280.29408
+33
+1903.25211107687
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575559198051
+20
+-733.364267924859
+30
+77.3359522782304
+11
+454.431270729568
+21
+-719.25912090813
+31
+98.9086120013344
+12
+454.431263343628
+22
+-730.119576764422
+32
+76.0575414220674
+13
+454.431263343628
+23
+-730.119576764422
+33
+76.0575414220674
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431270729568
+20
+-719.25912090813
+30
+98.9086120013344
+11
+453.575559198051
+21
+-733.364267924859
+31
+77.3359522782304
+12
+453.575566723046
+22
+-722.299342389133
+32
+100.617239704551
+13
+453.575566723046
+23
+-722.299342389133
+33
+100.617239704551
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+813.09098561462
+20
+-692.336726612815
+30
+-1.92750349015114e-10
+11
+794.401547685759
+21
+-720.307447118137
+31
+23.3578380791593
+12
+794.401547685756
+22
+-720.307447118133
+32
+-2.12061479487602e-10
+13
+794.401547685756
+23
+-720.307447118133
+33
+-2.12061479487602e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+794.401547685759
+20
+-720.307447118137
+30
+23.3578380791593
+11
+813.09098561462
+21
+-692.336726612815
+31
+-1.92750349015114e-10
+12
+813.090985614623
+22
+-692.336726612819
+32
+23.3578380791782
+13
+813.090985614623
+23
+-692.336726612819
+33
+23.3578380791782
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642038802113
+20
+-579.415028713919
+30
+219.67849237548
+11
+473.10173725466
+21
+-608.824016722648
+31
+217.993091128508
+12
+473.642053400866
+22
+-608.036762247305
+32
+214.756927441262
+13
+473.642053400866
+23
+-608.036762247305
+33
+214.756927441262
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.10173725466
+20
+-608.824016722648
+30
+217.993091128508
+11
+473.642038802113
+21
+-579.415028713919
+31
+219.67849237548
+12
+473.101722427237
+22
+-579.753960348852
+32
+222.99174608133
+13
+473.101722427237
+23
+-579.753960348852
+33
+222.99174608133
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024166993188
+20
+-635.678245979518
+30
+51.9354404084483
+11
+767.829328484993
+21
+-662.181333229905
+31
+49.2897100106075
+12
+779.024163430099
+22
+-640.917494008958
+32
+40.9117386331972
+13
+779.024163430099
+23
+-640.917494008958
+33
+40.9117386331972
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829328484993
+20
+-662.181333229905
+30
+49.2897100106075
+11
+779.024166993188
+21
+-635.678245979518
+31
+51.9354404084483
+12
+767.829332959368
+22
+-655.602108768076
+32
+63.1328050448759
+13
+767.829332959368
+23
+-655.602108768076
+33
+63.1328050448759
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024169157982
+20
+-611.764971197169
+30
+79.3631234201936
+11
+767.829336589646
+21
+-637.125515922866
+31
+87.5029285374647
+12
+779.024169884095
+22
+-620.964740882273
+32
+71.3421534984996
+13
+779.024169884095
+23
+-620.964740882273
+33
+71.3421534984996
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829336589646
+20
+-637.125515922866
+30
+87.5029285374647
+11
+779.024169157982
+21
+-611.764971197169
+31
+79.3631234201936
+12
+767.829335677824
+22
+-625.572837100386
+32
+97.5753208387769
+13
+767.829335677824
+23
+-625.572837100386
+33
+97.5753208387769
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471125884842
+20
+-695.789522350054
+30
+146.166934958744
+11
+452.247013852634
+21
+-673.811261880626
+31
+161.200429262907
+12
+452.247015413237
+22
+-693.583909707096
+32
+143.961322316008
+13
+452.247015413237
+23
+-693.583909707096
+33
+143.961322316008
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247013852634
+20
+-673.811261880626
+30
+161.200429262907
+11
+450.471125884842
+21
+-695.789522350054
+31
+146.166934958744
+12
+450.471124298894
+22
+-675.695750953173
+32
+163.686018751541
+13
+450.471124298894
+23
+-675.695750953173
+33
+163.686018751541
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.545902396357
+20
+-186.86272
+30
+3.60955709766131e-13
+11
+806.270901222104
+21
+56.1856515498016
+31
+1.46187062455283e-11
+12
+847.545902396362
+22
+56.1856515498016
+32
+1.46187062455283e-11
+13
+847.545902396362
+23
+56.1856515498016
+33
+1.46187062455283e-11
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+806.270901222104
+20
+56.1856515498016
+30
+1.46187062455283e-11
+11
+847.545902396357
+21
+-186.86272
+31
+3.60955709766131e-13
+12
+700.992216732393
+22
+-563.749226612815
+32
+-1.11896270027501e-11
+13
+700.992216732393
+23
+-563.749226612815
+33
+-1.11896270027501e-11
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+700.992216732393
+20
+-563.749226612815
+30
+-1.11896270027501e-11
+11
+847.545902396357
+21
+-186.86272
+31
+3.60955709766131e-13
+12
+847.545902396357
+22
+-563.749226612815
+32
+1.80477854883065e-13
+13
+847.545902396357
+23
+-563.749226612815
+33
+1.80477854883065e-13
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+700.992216732393
+20
+-563.749226612815
+30
+-1.11896270027501e-11
+11
+847.545902396357
+21
+-563.749226612815
+31
+1.80477854883065e-13
+12
+843.130722681614
+22
+-608.45291709122
+32
+-4.11489509133389e-11
+13
+843.130722681614
+23
+-608.45291709122
+33
+-4.11489509133389e-11
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+700.992216732393
+20
+-563.749226612815
+30
+-1.11896270027501e-11
+11
+843.130722681614
+21
+-608.45291709122
+31
+-4.11489509133389e-11
+12
+698.091838084213
+22
+-577.37232127131
+32
+-1.01067598734517e-11
+13
+698.091838084213
+23
+-577.37232127131
+33
+-1.01067598734517e-11
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+698.091838084213
+20
+-577.37232127131
+30
+-1.01067598734517e-11
+11
+843.130722681614
+21
+-608.45291709122
+31
+-4.11489509133389e-11
+12
+693.784141830299
+22
+-590.617873632807
+32
+-9.20437059903634e-12
+13
+693.784141830299
+23
+-590.617873632807
+33
+-9.20437059903634e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+693.784141830299
+20
+-590.617873632807
+30
+-9.20437059903634e-12
+11
+843.130722681614
+21
+-608.45291709122
+31
+-4.11489509133389e-11
+12
+688.116269958089
+22
+-603.340928801176
+32
+-8.48245917950408e-12
+13
+688.116269958089
+23
+-603.340928801176
+33
+-8.48245917950408e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.116269958089
+20
+-603.340928801176
+30
+-8.48245917950408e-12
+11
+843.130722681614
+21
+-608.45291709122
+31
+-4.11489509133389e-11
+12
+681.150249762187
+22
+-615.402249914861
+32
+-7.58006990508875e-12
+13
+681.150249762187
+23
+-615.402249914861
+33
+-7.58006990508875e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+681.150249762187
+20
+-615.402249914861
+30
+-7.58006990508875e-12
+11
+843.130722681614
+21
+-608.45291709122
+31
+-4.11489509133389e-11
+12
+838.782876772249
+22
+-630.311014537056
+32
+-1.18393472803291e-10
+13
+838.782876772249
+23
+-630.311014537056
+33
+-1.18393472803291e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+681.150249762187
+20
+-615.402249914861
+30
+-7.58006990508875e-12
+11
+838.782876772249
+21
+-630.311014537056
+31
+-1.18393472803291e-10
+12
+672.962315038389
+22
+-626.669841908538
+32
+-6.49720277579036e-12
+13
+672.962315038389
+23
+-626.669841908538
+33
+-6.49720277579036e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+672.962315038389
+20
+-626.669841908538
+30
+-6.49720277579036e-12
+11
+838.782876772249
+21
+-630.311014537056
+31
+-1.18393472803291e-10
+12
+663.642071806514
+22
+-637.020396022971
+32
+-5.59481350137503e-12
+13
+663.642071806514
+23
+-637.020396022971
+33
+-5.59481350137503e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+663.642071806514
+20
+-637.020396022971
+30
+-5.59481350137503e-12
+11
+838.782876772249
+21
+-630.311014537056
+31
+-1.18393472803291e-10
+12
+827.969621169947
+22
+-662.165838331307
+32
+-1.61527680120344e-10
+13
+827.969621169947
+23
+-662.165838331307
+33
+-1.61527680120344e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+663.642071806514
+20
+-637.020396022971
+30
+-5.59481350137503e-12
+11
+827.969621169947
+21
+-662.165838331307
+31
+-1.61527680120344e-10
+12
+653.29151769208
+22
+-646.340639254847
+32
+-4.51194637207664e-12
+13
+653.29151769208
+23
+-646.340639254847
+33
+-4.51194637207664e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+653.29151769208
+20
+-646.340639254847
+30
+-4.51194637207664e-12
+11
+827.969621169947
+21
+-662.165838331307
+31
+-1.61527680120344e-10
+12
+642.023925698404
+22
+-654.528573978645
+32
+-3.60955709766131e-12
+13
+642.023925698404
+23
+-654.528573978645
+33
+-3.60955709766131e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+642.023925698404
+20
+-654.528573978645
+30
+-3.60955709766131e-12
+11
+827.969621169947
+21
+-662.165838331307
+31
+-1.61527680120344e-10
+12
+629.962604584718
+22
+-661.494594174547
+32
+-2.52668996836292e-12
+13
+629.962604584718
+23
+-661.494594174547
+33
+-2.52668996836292e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+629.962604584718
+20
+-661.494594174547
+30
+-2.52668996836292e-12
+11
+827.969621169947
+21
+-662.165838331307
+31
+-1.61527680120344e-10
+12
+617.23954941635
+22
+-667.162466046757
+32
+-1.62430069394759e-12
+13
+617.23954941635
+23
+-667.162466046757
+33
+-1.62430069394759e-12
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+617.23954941635
+20
+-667.162466046757
+30
+-1.62430069394759e-12
+11
+827.969621169947
+21
+-662.165838331307
+31
+-1.61527680120344e-10
+12
+813.09098561462
+22
+-692.336726612815
+32
+-1.92750349015114e-10
+13
+813.09098561462
+23
+-692.336726612815
+33
+-1.92750349015114e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+617.23954941635
+20
+-667.162466046757
+30
+-1.62430069394759e-12
+11
+813.09098561462
+21
+-692.336726612815
+31
+-1.92750349015114e-10
+12
+603.993997054853
+22
+-671.470162300671
+32
+-5.41433564649196e-13
+13
+603.993997054853
+23
+-671.470162300671
+33
+-5.41433564649196e-13
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+603.993997054853
+20
+-671.470162300671
+30
+-5.41433564649196e-13
+11
+813.09098561462
+21
+-692.336726612815
+31
+-1.92750349015114e-10
+12
+590.370902396357
+22
+-674.370540948851
+32
+1.80477854883065e-13
+13
+590.370902396357
+23
+-674.370540948851
+33
+1.80477854883065e-13
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+590.370902396357
+20
+-674.370540948851
+30
+1.80477854883065e-13
+11
+813.09098561462
+21
+-692.336726612815
+31
+-1.92750349015114e-10
+12
+0.000467548731318024
+22
+-674.370540948851
+32
+1.80477854883065e-13
+13
+0.000467548731318024
+23
+-674.370540948851
+33
+1.80477854883065e-13
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731318024
+20
+-674.370540948851
+30
+1.80477854883065e-13
+11
+813.09098561462
+21
+-692.336726612815
+31
+-1.92750349015114e-10
+12
+0.000467548731319434
+22
+-820.924226612815
+32
+1.80477854883065e-13
+13
+0.000467548731319434
+23
+-820.924226612815
+33
+1.80477854883065e-13
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+813.09098561462
+21
+-692.336726612815
+31
+-1.92750349015114e-10
+12
+794.401547685756
+22
+-720.307447118133
+32
+-2.12061479487602e-10
+13
+794.401547685756
+23
+-720.307447118133
+33
+-2.12061479487602e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+794.401547685756
+21
+-720.307447118133
+31
+-2.12061479487602e-10
+12
+772.221088848008
+22
+-745.599413064465
+32
+-2.18378204408509e-10
+13
+772.221088848008
+23
+-745.599413064465
+33
+-2.18378204408509e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+772.221088848008
+21
+-745.599413064465
+31
+-2.18378204408509e-10
+12
+746.929122901675
+22
+-767.779871902213
+32
+-2.12061479487602e-10
+13
+746.929122901675
+23
+-767.779871902213
+33
+-2.12061479487602e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+746.929122901675
+21
+-767.779871902213
+31
+-2.12061479487602e-10
+12
+718.958402396357
+22
+-786.469309831078
+32
+-1.92750349015114e-10
+13
+718.958402396357
+23
+-786.469309831078
+33
+-1.92750349015114e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+718.958402396357
+21
+-786.469309831078
+31
+-1.92750349015114e-10
+12
+688.787514114849
+22
+-801.347945386405
+32
+-1.61527680120344e-10
+13
+688.787514114849
+23
+-801.347945386405
+33
+-1.61527680120344e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+688.787514114849
+21
+-801.347945386405
+31
+-1.61527680120344e-10
+12
+656.932690320598
+22
+-812.161200988706
+32
+-1.18393472803291e-10
+13
+656.932690320598
+23
+-812.161200988706
+33
+-1.18393472803291e-10
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+656.932690320598
+21
+-812.161200988706
+31
+-1.18393472803291e-10
+12
+623.938975880549
+22
+-818.724058836624
+32
+-6.38891606286052e-11
+13
+623.938975880549
+23
+-818.724058836624
+33
+-6.38891606286052e-11
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731319434
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+623.938975880549
+21
+-818.724058836624
+31
+-6.38891606286052e-11
+12
+590.370902396357
+22
+-820.924226612815
+32
+1.80477854883065e-13
+13
+590.370902396357
+23
+-820.924226612815
+33
+1.80477854883065e-13
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.0138872107921
+20
+-280.29408
+30
+1404.51683530547
+11
+100.141825844157
+21
+-186.86272
+31
+1421.1550651442
+12
+69.0138872107926
+22
+-186.86272
+32
+1404.51683530547
+13
+69.0138872107926
+23
+-186.86272
+33
+1404.51683530547
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844157
+20
+-186.86272
+30
+1421.1550651442
+11
+69.0138872107921
+21
+-280.29408
+31
+1404.51683530547
+12
+100.141825844156
+22
+-280.29408
+32
+1421.1550651442
+13
+100.141825844156
+23
+-280.29408
+33
+1421.1550651442
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546345594915
+20
+-599.640891643383
+30
+180.244333371467
+11
+602.133267369982
+21
+-575.898750159264
+31
+185.30549023988
+12
+623.546333434853
+22
+-575.80035767001
+32
+184.343761377095
+13
+623.546333434853
+23
+-575.80035767001
+33
+184.343761377095
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133267369982
+20
+-575.898750159264
+30
+185.30549023988
+11
+623.546345594915
+21
+-599.640891643383
+31
+180.244333371467
+12
+602.133279596418
+22
+-599.869415774734
+32
+181.183685835358
+13
+602.133279596418
+23
+-599.869415774734
+33
+181.183685835358
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721732248607
+20
+-744.352283565408
+30
+81.6652408886482
+11
+448.282012434797
+21
+-730.404696521621
+31
+105.17251147419
+12
+448.282004539076
+22
+-742.014746414944
+32
+80.7442486966709
+13
+448.282004539076
+23
+-742.014746414944
+33
+80.7442486966709
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282012434797
+20
+-730.404696521621
+30
+105.17251147419
+11
+445.721732248607
+21
+-744.352283565408
+31
+81.6652408886482
+12
+445.721740244506
+22
+-732.59492990622
+32
+106.403439896738
+13
+445.721740244506
+23
+-732.59492990622
+33
+106.403439896738
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677481847252
+20
+-580.392895076207
+30
+229.237696767784
+11
+468.840142428527
+21
+-610.976425980055
+31
+226.840985547634
+12
+470.677497105752
+22
+-610.308103138718
+32
+224.093716273781
+13
+470.677497105752
+23
+-610.308103138718
+33
+224.093716273781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840142428527
+20
+-610.976425980055
+30
+226.840985547634
+11
+470.677481847252
+21
+-580.392895076207
+31
+229.237696767784
+12
+468.840126975903
+22
+-580.680624318909
+32
+232.050409880217
+13
+468.840126975903
+23
+-580.680624318909
+33
+232.050409880217
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.00721584731
+20
+-595.005500745675
+30
+23.3578380039372
+11
+787.130186503031
+21
+-618.467587074047
+31
+32.066456918151
+12
+791.767077835926
+22
+-596.364536149864
+32
+23.3578380035618
+13
+791.767077835926
+23
+-596.364536149864
+33
+23.3578380035618
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130186503031
+20
+-618.467587074047
+30
+32.066456918151
+11
+792.00721584731
+21
+-595.005500745675
+31
+23.3578380039372
+12
+792.007217306199
+22
+-592.860317128213
+32
+27.8714369630177
+13
+792.007217306199
+23
+-592.860317128213
+33
+27.8714369630177
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130186503031
+20
+-618.467587074047
+30
+32.066456918151
+11
+792.007217306199
+21
+-592.860317128213
+31
+27.8714369630177
+12
+787.130189104003
+22
+-614.643057664062
+32
+40.1135032517926
+13
+787.130189104003
+23
+-614.643057664062
+33
+40.1135032517926
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222195872847
+20
+-549.595394709904
+30
+241.116069017578
+11
+461.269937419119
+21
+-186.86272
+31
+239.686382351025
+12
+458.222195872847
+22
+-186.86272
+32
+241.116069017578
+13
+458.222195872847
+23
+-186.86272
+33
+241.116069017578
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269937419119
+20
+-186.86272
+30
+239.686382351025
+11
+458.222195872847
+21
+-549.595394709904
+31
+241.116069017578
+12
+461.269937419119
+22
+-549.571376162653
+32
+239.686382351024
+13
+461.269937419119
+23
+-549.571376162653
+33
+239.686382351024
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997695535365
+20
+-679.337949441333
+30
+100.317732616843
+11
+717.894073612081
+21
+-705.391608581792
+31
+91.1148940822994
+12
+736.997691839832
+22
+-690.762816990611
+32
+82.8933973835911
+13
+736.997691839832
+23
+-690.762816990611
+33
+82.8933973835911
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894073612081
+20
+-705.391608581792
+30
+91.1148940822994
+11
+736.997695535365
+21
+-679.337949441333
+31
+100.317732616843
+12
+717.894077714131
+22
+-692.709977485149
+32
+110.455949073024
+13
+717.894077714131
+23
+-692.709977485149
+33
+110.455949073024
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576412075941
+20
+-604.820821451585
+30
+70.2039737536023
+11
+760.201826420081
+21
+-585.915972100795
+31
+58.2231849183613
+12
+760.20182781144
+22
+-592.476194788978
+32
+53.921748202446
+13
+760.20182781144
+23
+-592.476194788978
+33
+53.921748202446
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201826420081
+20
+-585.915972100795
+30
+58.2231849183613
+11
+753.576412075941
+21
+-604.820821451585
+31
+70.2039737536023
+12
+753.576410189591
+22
+-595.926735646398
+32
+76.0356884766169
+13
+753.576410189591
+23
+-595.926735646398
+33
+76.0356884766169
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431240478811
+20
+-576.627625779333
+30
+192.429880890276
+11
+454.797637205561
+21
+-548.733344026199
+31
+189.801126938624
+12
+454.797653593913
+22
+-576.264066422956
+32
+188.875875742312
+13
+454.797653593913
+23
+-576.264066422956
+33
+188.875875742312
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797637205561
+20
+-548.733344026199
+30
+189.801126938624
+11
+454.431240478811
+21
+-576.627625779333
+31
+192.429880890276
+12
+454.431223909685
+22
+-548.793220154026
+32
+193.36533825795
+13
+454.431223909685
+23
+-548.793220154026
+33
+193.36533825795
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690596528004
+20
+-606.087584234742
+30
+206.744381898986
+11
+436.335587191701
+21
+-578.704166932226
+31
+212.72919754513
+12
+439.690582495428
+22
+-578.575873947693
+32
+211.475076092305
+13
+439.690582495428
+23
+-578.575873947693
+33
+211.475076092305
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335587191701
+20
+-578.704166932226
+30
+212.72919754513
+11
+439.690596528004
+21
+-606.087584234742
+31
+206.744381898986
+12
+436.335601310833
+22
+-606.385574583813
+32
+207.969323546969
+13
+436.335601310833
+23
+-606.385574583813
+33
+207.969323546969
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839452384975
+20
+-578.401495960111
+30
+209.770445440443
+11
+439.690564957562
+21
+-549.114088023756
+31
+212.46522637891
+12
+442.839434933817
+22
+-549.08536836124
+32
+210.755700449054
+13
+442.839434933817
+23
+-549.08536836124
+33
+210.755700449054
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690564957562
+20
+-549.114088023756
+30
+212.46522637891
+11
+442.839452384975
+21
+-578.401495960111
+31
+209.770445440443
+12
+439.690582495428
+22
+-578.575873947693
+32
+211.475076092305
+13
+439.690582495428
+23
+-578.575873947693
+33
+211.475076092305
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758783079627
+20
+-601.140380260496
+30
+186.408417229293
+11
+717.894066860413
+21
+-619.848757614325
+31
+165.696830164561
+12
+717.894057585081
+22
+-597.802053886837
+32
+172.685609040578
+13
+717.894057585081
+23
+-597.802053886837
+33
+172.685609040578
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894066860413
+20
+-619.848757614325
+30
+165.696830164561
+11
+696.758783079627
+21
+-601.140380260496
+31
+186.408417229293
+12
+696.758793128571
+22
+-625.025897634329
+32
+178.836736613072
+13
+696.758793128571
+23
+-625.025897634329
+33
+178.836736613072
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.64207352602
+20
+-743.137302565856
+30
+112.328325554405
+11
+473.101749084159
+21
+-758.702384848233
+31
+87.3191803898169
+12
+473.642065047928
+22
+-755.603683334388
+32
+86.0982896720056
+13
+473.642065047928
+23
+-755.603683334388
+33
+86.0982896720056
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101749084159
+20
+-758.702384848233
+30
+87.3191803898169
+11
+473.64207352602
+21
+-743.137302565856
+31
+112.328325554405
+12
+473.101757695049
+22
+-746.04073417303
+32
+113.960076228591
+13
+473.101757695049
+23
+-746.04073417303
+33
+113.960076228591
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+656.932690320598
+20
+-812.161200988706
+30
+-1.18393472803291e-10
+11
+623.938975880552
+21
+-818.724058836629
+31
+23.3578380793071
+12
+623.938975880549
+22
+-818.724058836624
+32
+-6.38891606286052e-11
+13
+623.938975880549
+23
+-818.724058836624
+33
+-6.38891606286052e-11
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.938975880552
+20
+-818.724058836629
+30
+23.3578380793071
+11
+656.932690320598
+21
+-812.161200988706
+31
+-1.18393472803291e-10
+12
+656.932690320601
+22
+-812.16120098871
+32
+23.3578380792528
+13
+656.932690320601
+23
+-812.16120098871
+33
+23.3578380792528
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107168359226
+20
+-580.08201644067
+30
+226.198682483658
+11
+470.677497105752
+21
+-610.308103138718
+31
+224.093716273781
+12
+472.107183407982
+22
+-609.586009613252
+32
+221.125411221167
+13
+472.107183407982
+23
+-609.586009613252
+33
+221.125411221167
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677497105752
+20
+-610.308103138718
+30
+224.093716273781
+11
+472.107168359226
+21
+-580.08201644067
+31
+226.198682483658
+12
+470.677481847252
+22
+-580.392895076207
+32
+229.237696767784
+13
+470.677481847252
+23
+-580.392895076207
+33
+229.237696767784
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267737950976
+20
+-578.813572557816
+30
+213.798663854844
+11
+0.0162469754877819
+21
+-549.153365442471
+31
+214.795486963908
+12
+429.26772029492
+22
+-549.153237717187
+32
+214.795486963908
+13
+429.26772029492
+23
+-549.153237717187
+33
+214.795486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162469754877819
+20
+-549.153365442471
+30
+214.795486963908
+11
+429.267737950976
+21
+-578.813572557816
+31
+213.798663854844
+12
+0.0162646316092562
+22
+-578.813809543233
+32
+213.798660182835
+13
+0.0162646316092562
+23
+-578.813809543233
+33
+213.798660182835
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630414711229
+20
+-778.937031754263
+30
+61.9555523461604
+11
+464.090775113584
+21
+-771.603559996758
+31
+92.4022555870175
+12
+464.090762524528
+22
+-781.089165318495
+32
+62.4790981961044
+13
+464.090762524528
+23
+-781.089165318495
+33
+62.4790981961044
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090775113584
+20
+-771.603559996758
+30
+92.4022555870175
+11
+466.630414711229
+21
+-778.937031754263
+31
+61.9555523461604
+12
+466.630427178961
+22
+-769.542842319152
+32
+91.5903304644009
+13
+466.630427178961
+23
+-769.542842319152
+33
+91.5903304644009
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797666066761
+20
+-600.71783565349
+30
+184.671000694682
+11
+454.667736501664
+21
+-575.898831573499
+31
+185.305488978394
+12
+454.667748728094
+22
+-599.869484727166
+32
+181.183686716704
+13
+454.667748728094
+23
+-599.869484727166
+33
+181.183686716704
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667736501664
+20
+-575.898831573499
+30
+185.305488978394
+11
+454.797666066761
+21
+-600.71783565349
+31
+184.671000694682
+12
+454.797653593913
+22
+-576.264066422956
+32
+188.875875742312
+13
+454.797653593913
+23
+-576.264066422956
+33
+188.875875742312
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130189104003
+20
+-614.643057664062
+30
+40.1135032517926
+11
+779.024163430099
+21
+-640.917494008958
+31
+40.9117386331972
+12
+787.130186503031
+22
+-618.467587074047
+32
+32.066456918151
+13
+787.130186503031
+23
+-618.467587074047
+33
+32.066456918151
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024163430099
+20
+-640.917494008958
+30
+40.9117386331972
+11
+787.130189104003
+21
+-614.643057664062
+31
+40.1135032517926
+12
+779.024166993188
+22
+-635.678245979518
+32
+51.9354404084483
+13
+779.024166993188
+23
+-635.678245979518
+33
+51.9354404084483
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997677401125
+20
+-706.00295242646
+30
+44.2129177479029
+11
+717.894066860413
+21
+-715.319417548222
+31
+70.2261702210487
+12
+717.894057585081
+22
+-722.308196422019
+32
+48.1794664928565
+13
+717.894057585081
+23
+-722.308196422019
+33
+48.1794664928565
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894066860413
+20
+-715.319417548222
+30
+70.2261702210487
+11
+736.997677401125
+21
+-706.00295242646
+31
+44.2129177479029
+12
+736.997685757261
+22
+-699.706769202407
+32
+64.0747689619352
+13
+736.997685757261
+23
+-699.706769202407
+33
+64.0747689619352
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466031085639
+20
+-547.618544534505
+30
+123.445905477124
+11
+744.275027999012
+21
+-186.86272
+31
+105.557438942816
+12
+744.275027999012
+22
+-547.318028491407
+32
+105.557438942816
+13
+744.275027999012
+23
+-547.318028491407
+33
+105.557438942816
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275027999012
+20
+-186.86272
+30
+105.557438942816
+11
+732.466031085639
+21
+-547.618544534505
+31
+123.445905477124
+12
+732.466031085639
+22
+-186.86272
+32
+123.445905477124
+13
+732.466031085639
+23
+-186.86272
+33
+123.445905477124
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683316658874
+20
+-785.765920539638
+30
+63.616807647956
+11
+448.317768339636
+21
+-776.152256350036
+31
+94.1944509495159
+12
+448.317755482775
+22
+-785.839646973143
+32
+63.6347444795237
+13
+448.317755482775
+23
+-785.839646973143
+33
+63.6347444795237
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317768339636
+20
+-776.152256350036
+30
+94.1944509495159
+11
+451.683316658874
+21
+-785.765920539638
+31
+63.616807647956
+12
+451.683329511579
+22
+-776.081661498503
+32
+94.1666352734205
+13
+451.683329511579
+23
+-776.081661498503
+33
+94.1666352734205
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332897960916
+20
+-669.009252539392
+30
+119.38666515078
+11
+702.221360398304
+21
+-673.696700650341
+31
+96.0407362022104
+12
+684.332896682708
+22
+-683.128909470703
+32
+103.191916498769
+13
+684.332896682708
+23
+-683.128909470703
+33
+103.191916498769
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221360398304
+20
+-673.696700650341
+30
+96.0407362022104
+11
+684.332897960916
+21
+-669.009252539392
+31
+119.38666515078
+12
+702.221361580333
+22
+-660.639487120937
+32
+111.016899733167
+13
+702.221361580333
+23
+-660.639487120937
+33
+111.016899733167
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636242951136
+20
+-598.733544865996
+30
+176.514545976725
+11
+623.546333434853
+21
+-575.80035767001
+31
+184.343761377095
+12
+644.636231054623
+22
+-575.409716284687
+32
+180.525125445771
+13
+644.636231054623
+23
+-575.409716284687
+33
+180.525125445771
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546333434853
+20
+-575.80035767001
+30
+184.343761377095
+11
+644.636242951136
+21
+-598.733544865996
+31
+176.514545976725
+12
+623.546345594915
+22
+-599.640891643383
+32
+180.244333371467
+13
+623.546345594915
+23
+-599.640891643383
+33
+180.244333371467
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677497105752
+20
+-610.308103138718
+30
+224.093716273781
+11
+468.84015475682
+21
+-640.279768170507
+31
+217.551860904389
+12
+470.677509279169
+22
+-639.24331958749
+32
+214.92128705308
+13
+470.677509279169
+23
+-639.24331958749
+33
+214.92128705308
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84015475682
+20
+-640.279768170507
+30
+217.551860904389
+11
+470.677497105752
+21
+-610.308103138718
+31
+224.093716273781
+12
+468.840142428527
+22
+-610.976425980055
+32
+226.840985547634
+13
+468.840142428527
+23
+-610.976425980055
+33
+226.840985547634
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+2013.4439613934
+11
+221.73980966547
+21
+-280.29408
+31
+1435.59863370269
+12
+221.739809665471
+22
+-186.86272
+32
+1435.59863370269
+13
+221.739809665471
+23
+-186.86272
+33
+1435.59863370269
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.73980966547
+20
+-280.29408
+30
+1435.59863370269
+11
+221.739809665471
+21
+-186.86272
+31
+2013.4439613934
+12
+221.73980966547
+22
+-280.29408
+32
+2013.4439613934
+13
+221.73980966547
+23
+-280.29408
+33
+2013.4439613934
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114849
+20
+-801.347945386405
+30
+-1.61527680120344e-10
+11
+656.932690320601
+21
+-812.16120098871
+31
+23.3578380792528
+12
+656.932690320598
+22
+-812.161200988706
+32
+-1.18393472803291e-10
+13
+656.932690320598
+23
+-812.161200988706
+33
+-1.18393472803291e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+656.932690320601
+20
+-812.16120098871
+30
+23.3578380792528
+11
+688.787514114849
+21
+-801.347945386405
+31
+-1.61527680120344e-10
+12
+688.787514114852
+22
+-801.347945386409
+32
+23.3578380792096
+13
+688.787514114852
+23
+-801.347945386409
+33
+23.3578380792096
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.725666423806
+20
+-280.29408
+30
+1938.38266102747
+11
+180.18572358915
+21
+-186.86272
+31
+1903.25211107687
+12
+180.185723589149
+22
+-280.29408
+32
+1903.25211107687
+13
+180.185723589149
+23
+-280.29408
+33
+1903.25211107687
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+180.18572358915
+20
+-186.86272
+30
+1903.25211107687
+11
+176.725666423806
+21
+-280.29408
+31
+1938.38266102747
+12
+176.725666423807
+22
+-186.86272
+32
+1938.38266102747
+13
+176.725666423807
+23
+-186.86272
+33
+1938.38266102747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363090933403
+20
+-588.820775333035
+30
+135.766293848309
+11
+732.466044108445
+21
+-569.495501821011
+31
+122.710665747149
+12
+732.466052014781
+22
+-584.996349297051
+32
+120.045263691758
+13
+732.466052014781
+23
+-584.996349297051
+33
+120.045263691758
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466044108445
+20
+-569.495501821011
+30
+122.710665747149
+11
+718.363090933403
+21
+-588.820775333035
+31
+135.766293848309
+12
+718.363081916203
+22
+-571.142011532184
+32
+138.806193017976
+13
+718.363081916203
+23
+-571.142011532184
+33
+138.806193017976
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021391353748
+20
+-675.601700530057
+30
+125.979113140781
+11
+644.636263548619
+21
+-662.459295238253
+31
+146.227531781659
+12
+665.021389999784
+22
+-658.447133448378
+32
+140.935603497775
+13
+665.021389999784
+23
+-658.447133448378
+33
+140.935603497775
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636263548619
+20
+-662.459295238253
+30
+146.227531781659
+11
+665.021391353748
+21
+-675.601700530057
+31
+125.979113140781
+12
+644.636264956545
+22
+-680.297547066858
+32
+130.674959677109
+13
+644.636264956545
+23
+-680.297547066858
+33
+130.674959677109
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363090933403
+20
+-685.388881228845
+30
+39.1981879427727
+11
+732.466058322552
+21
+-664.91507027919
+31
+50.366817478493
+12
+732.466052014781
+22
+-669.667851071909
+32
+35.3737619083722
+13
+732.466052014781
+23
+-669.667851071909
+33
+35.3737619083722
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466058322552
+20
+-664.91507027919
+30
+50.366817478493
+11
+718.363090933403
+21
+-685.388881228845
+31
+39.1981879427727
+12
+718.363098127435
+22
+-679.968320245868
+32
+56.297813526916
+13
+718.363098127435
+23
+-679.968320245868
+33
+56.297813526916
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884111397057
+20
+-746.458660352302
+30
+82.4950785735168
+11
+624.955341833487
+21
+-738.830110282484
+31
+109.907610082888
+12
+624.955333552396
+22
+-751.006817642042
+32
+84.2870649622931
+13
+624.955333552396
+23
+-751.006817642042
+33
+84.2870649622931
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955341833487
+20
+-738.830110282484
+30
+109.907610082888
+11
+649.884111397057
+21
+-746.458660352302
+31
+82.4950785735168
+12
+649.884119483233
+22
+-734.56856186502
+32
+107.512580906988
+13
+649.884119483233
+23
+-734.56856186502
+33
+107.512580906988
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957358037872
+20
+-746.934060776874
+30
+54.170165314894
+11
+649.884111397057
+21
+-746.458660352302
+31
+82.4950785735168
+12
+649.884100288402
+22
+-754.828812255533
+32
+56.0907148781112
+13
+649.884100288402
+23
+-754.828812255533
+33
+56.0907148781112
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884111397057
+20
+-746.458660352302
+30
+82.4950785735168
+11
+673.957358037872
+21
+-746.934060776874
+31
+54.170165314894
+12
+673.957368701467
+22
+-738.899252779403
+32
+79.5166578326792
+13
+673.957368701467
+23
+-738.899252779403
+33
+79.5166578326792
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267771709642
+20
+-737.984763689194
+30
+109.432571697368
+11
+432.838940960221
+21
+-749.833439201604
+31
+83.824824767603
+12
+429.267763467221
+22
+-750.104609262675
+32
+83.9316672902124
+13
+429.267763467221
+23
+-750.104609262675
+33
+83.9316672902124
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838940960221
+20
+-749.833439201604
+30
+83.824824767603
+11
+429.267771709642
+21
+-737.984763689194
+31
+109.432571697368
+12
+432.838949191021
+22
+-737.730681730485
+32
+109.289774750901
+13
+432.838949191021
+23
+-737.730681730485
+33
+109.289774750901
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576407084801
+20
+-630.223630997654
+30
+36.698358790781
+11
+760.201826420081
+21
+-607.845772298605
+31
+36.2933847183422
+12
+760.201824130007
+22
+-611.213150017197
+32
+29.2082138072124
+13
+760.201824130007
+23
+-611.213150017197
+33
+29.2082138072124
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201826420081
+20
+-607.845772298605
+30
+36.2933847183422
+11
+753.576407084801
+21
+-630.223630997654
+31
+36.698358790781
+12
+753.576410189591
+22
+-625.658275857869
+32
+46.3041482621511
+13
+753.576410189591
+23
+-625.658275857869
+33
+46.3041482621511
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955304385432
+20
+-764.585289351978
+30
+23.3578379140486
+11
+599.602116671527
+21
+-765.945156978237
+31
+29.4490754688794
+12
+599.602113045565
+22
+-766.149870997149
+32
+23.3578379057383
+13
+599.602113045565
+23
+-766.149870997149
+33
+23.3578379057383
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602116671527
+20
+-765.945156978237
+30
+29.4490754688794
+11
+624.955304385432
+21
+-764.585289351978
+31
+23.3578379140486
+12
+624.955307916438
+22
+-764.38593632126
+32
+29.2895600085649
+13
+624.955307916438
+23
+-764.38593632126
+33
+29.2895600085649
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090775113584
+20
+-642.024842985963
+30
+221.980972610863
+11
+466.630436254431
+21
+-669.291160506739
+31
+206.575474706326
+12
+466.630427178961
+22
+-641.212917863139
+32
+219.920254933339
+13
+466.630427178961
+23
+-641.212917863139
+33
+219.920254933339
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630436254431
+20
+-669.291160506739
+30
+206.575474706326
+11
+464.090775113584
+21
+-642.024842985963
+31
+221.980972610863
+12
+464.090784277369
+22
+-670.376318084996
+32
+208.5063328654
+13
+464.090784277369
+23
+-670.376318084996
+33
+208.5063328654
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829335677824
+20
+-647.197908223015
+30
+75.9502497139702
+11
+753.73928554472
+21
+-674.070091498716
+31
+73.5119548557674
+12
+767.829332959368
+22
+-655.602108768076
+32
+63.1328050448759
+13
+767.829332959368
+23
+-655.602108768076
+33
+63.1328050448759
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928554472
+20
+-674.070091498716
+30
+73.5119548557674
+11
+767.829335677824
+21
+-647.197908223015
+31
+75.9502497139702
+12
+753.73928877638
+22
+-664.079300898903
+32
+88.749145475747
+13
+753.73928877638
+23
+-664.079300898903
+33
+88.749145475747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717772252345
+20
+-740.196478791399
+30
+110.675560324675
+11
+473.642065047928
+21
+-755.603683334388
+31
+86.0982896720056
+12
+473.717763908762
+22
+-752.465074828487
+32
+84.861675745457
+13
+473.717763908762
+23
+-752.465074828487
+33
+84.861675745457
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642065047928
+20
+-755.603683334388
+30
+86.0982896720056
+11
+473.717772252345
+21
+-740.196478791399
+31
+110.675560324675
+12
+473.64207352602
+22
+-743.137302565856
+32
+112.328325554405
+13
+473.64207352602
+23
+-743.137302565856
+33
+112.328325554405
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.00604998394
+20
+-549.612103415805
+30
+242.110623248711
+11
+458.222195872847
+21
+-186.86272
+31
+241.116069017578
+12
+455.00604998394
+22
+-186.86272
+32
+242.110623248711
+13
+455.00604998394
+23
+-186.86272
+33
+242.110623248711
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222195872847
+20
+-186.86272
+30
+241.116069017578
+11
+455.00604998394
+21
+-549.612103415805
+31
+242.110623248711
+12
+458.222195872847
+22
+-549.595394709904
+32
+241.116069017578
+13
+458.222195872847
+23
+-549.595394709904
+33
+241.116069017578
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-549.195745909472
+30
+217.326639240051
+11
+473.642038802113
+21
+-579.415028713919
+31
+219.67849237548
+12
+473.717738079349
+22
+-579.071732366754
+32
+216.322568521811
+13
+473.717738079349
+23
+-579.071732366754
+33
+216.322568521811
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642038802113
+20
+-579.415028713919
+30
+219.67849237548
+11
+473.71772029492
+21
+-549.195745909472
+31
+217.326639240051
+12
+473.642020846985
+22
+-549.252284780773
+32
+220.6922004252
+13
+473.642020846985
+23
+-549.252284780773
+33
+220.6922004252
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466052014781
+20
+-584.996349297051
+30
+120.045263691758
+11
+744.275040114523
+21
+-567.670823535761
+31
+104.873423184286
+12
+744.275046789786
+22
+-580.758079568763
+32
+102.623043056121
+13
+744.275046789786
+23
+-580.758079568763
+33
+102.623043056121
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275040114523
+20
+-567.670823535761
+30
+104.873423184286
+11
+732.466052014781
+21
+-584.996349297051
+31
+120.045263691758
+12
+732.466044108445
+22
+-569.495501821011
+32
+122.710665747149
+13
+732.466044108445
+23
+-569.495501821011
+33
+122.710665747149
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107183407982
+20
+-770.747998603796
+30
+59.9634222143927
+11
+470.677481847252
+21
+-778.860284147472
+31
+30.7703076765303
+12
+472.107168359226
+22
+-775.821269863314
+32
+30.4594290412997
+13
+472.107168359226
+23
+-775.821269863314
+33
+30.4594290412997
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677481847252
+20
+-778.860284147472
+30
+30.7703076765303
+11
+472.107183407982
+21
+-770.747998603796
+31
+59.9634222143927
+12
+470.677497105752
+22
+-773.716303656482
+32
+60.6855157395589
+13
+470.677497105752
+23
+-773.716303656482
+33
+60.6855157395589
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721721263973
+20
+-605.178251275471
+30
+203.006401057676
+11
+442.839452384975
+21
+-578.401495960111
+31
+209.770445440443
+12
+445.721707495526
+22
+-578.184382747044
+32
+207.648051313885
+13
+445.721707495526
+23
+-578.184382747044
+33
+207.648051313885
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839452384975
+20
+-578.401495960111
+30
+209.770445440443
+11
+445.721721263973
+21
+-605.178251275471
+31
+203.006401057676
+12
+442.839466299903
+22
+-605.682549578299
+32
+205.079413127562
+13
+442.839466299903
+23
+-605.682549578299
+33
+205.079413127562
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71777732158
+20
+-684.199452771651
+30
+174.902174757415
+11
+473.642080404707
+21
+-708.127668368109
+31
+158.505080975556
+12
+473.717779021898
+22
+-705.742288168363
+32
+156.11970077605
+13
+473.717779021898
+23
+-705.742288168363
+33
+156.11970077605
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642080404707
+20
+-708.127668368109
+30
+158.505080975556
+11
+473.71777732158
+21
+-684.199452771651
+31
+174.902174757415
+12
+473.642078676977
+22
+-686.237536190199
+32
+177.590351345444
+13
+473.642078676977
+23
+-686.237536190199
+33
+177.590351345444
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839466299903
+20
+-605.682549578299
+30
+205.079413127562
+11
+439.690582495428
+21
+-578.575873947693
+31
+211.475076092305
+12
+442.839452384975
+22
+-578.401495960111
+32
+209.770445440443
+13
+442.839452384975
+23
+-578.401495960111
+33
+209.770445440443
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690582495428
+20
+-578.575873947693
+30
+211.475076092305
+11
+442.839466299903
+21
+-605.682549578299
+31
+205.079413127562
+12
+439.690596528004
+22
+-606.087584234742
+32
+206.744381898986
+13
+439.690596528004
+23
+-606.087584234742
+33
+206.744381898986
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101722427237
+20
+-579.753960348852
+30
+222.99174608133
+11
+472.107183407982
+21
+-609.586009613252
+31
+221.125411221167
+12
+473.10173725466
+22
+-608.824016722648
+32
+217.993091128508
+13
+473.10173725466
+23
+-608.824016722648
+33
+217.993091128508
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107183407982
+20
+-609.586009613252
+30
+221.125411221167
+11
+473.101722427237
+21
+-579.753960348852
+31
+222.99174608133
+12
+472.107168359226
+22
+-580.08201644067
+32
+226.198682483658
+13
+472.107168359226
+23
+-580.08201644067
+33
+226.198682483658
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840142428527
+20
+-610.976425980055
+30
+226.840985547634
+11
+466.630427178961
+21
+-641.212917863139
+31
+219.920254933339
+12
+468.84015475682
+22
+-640.279768170507
+32
+217.551860904389
+13
+468.84015475682
+23
+-640.279768170507
+33
+217.551860904389
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630427178961
+20
+-641.212917863139
+30
+219.920254933339
+11
+468.840142428527
+21
+-610.976425980055
+31
+226.840985547634
+12
+466.630414711229
+22
+-611.578139745845
+32
+229.314444371434
+13
+466.630414711229
+23
+-611.578139745845
+33
+229.314444371434
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107150072447
+20
+-549.362133988305
+30
+227.231114817978
+11
+470.677481847252
+21
+-580.392895076207
+31
+229.237696767784
+12
+472.107168359226
+22
+-580.08201644067
+32
+226.198682483658
+13
+472.107168359226
+23
+-580.08201644067
+33
+226.198682483658
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677481847252
+20
+-580.392895076207
+30
+229.237696767784
+11
+472.107150072447
+21
+-549.362133988305
+31
+227.231114817978
+12
+470.677463405893
+22
+-549.413334136112
+32
+230.27885636425
+13
+470.677463405893
+23
+-549.413334136112
+33
+230.27885636425
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007218281129
+20
+-589.846284379929
+30
+32.4682094668199
+11
+787.130189104003
+21
+-614.643057664062
+31
+40.1135032517926
+12
+792.007217306199
+22
+-592.860317128213
+32
+27.8714369630177
+13
+792.007217306199
+23
+-592.860317128213
+33
+27.8714369630177
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130189104003
+20
+-614.643057664062
+30
+40.1135032517926
+11
+792.007218281129
+21
+-589.846284379929
+31
+32.4682094668199
+12
+787.130190684252
+22
+-609.757662381006
+32
+47.5643349390529
+13
+787.130190684252
+23
+-609.757662381006
+33
+47.5643349390529
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130186503031
+20
+-618.467587074047
+30
+32.066456918151
+11
+779.024158535186
+21
+-644.605714246329
+31
+29.2769308468913
+12
+787.130182929858
+22
+-621.15990220955
+32
+23.5733173858747
+13
+787.130182929858
+23
+-621.15990220955
+33
+23.5733173858747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024158535186
+20
+-644.605714246329
+30
+29.2769308468913
+11
+787.130186503031
+21
+-618.467587074047
+31
+32.066456918151
+12
+779.024163430099
+22
+-640.917494008958
+32
+40.9117386331972
+13
+779.024163430099
+23
+-640.917494008958
+33
+40.9117386331972
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+838.782876772249
+20
+-630.311014537056
+30
+-1.18393472803291e-10
+11
+827.96962116995
+21
+-662.165838331311
+31
+23.3578380792096
+12
+827.969621169947
+22
+-662.165838331307
+32
+-1.61527680120344e-10
+13
+827.969621169947
+23
+-662.165838331307
+33
+-1.61527680120344e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+827.96962116995
+20
+-662.165838331311
+30
+23.3578380792096
+11
+838.782876772249
+21
+-630.311014537056
+31
+-1.18393472803291e-10
+12
+838.782876772251
+22
+-630.31101453706
+32
+23.3578380792528
+13
+838.782876772251
+23
+-630.31101453706
+33
+23.3578380792528
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339902
+20
+-280.29408
+30
+2030.58313313969
+11
+149.837907551873
+21
+-186.86272
+31
+2003.29545315791
+12
+149.837907551873
+22
+-280.29408
+32
+2003.29545315791
+13
+149.837907551873
+23
+-280.29408
+33
+2003.29545315791
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.837907551873
+20
+-186.86272
+30
+2003.29545315791
+11
+127.443487339902
+21
+-280.29408
+31
+2030.58313313969
+12
+127.443487339903
+22
+-186.86272
+32
+2030.58313313969
+13
+127.443487339903
+23
+-186.86272
+33
+2030.58313313969
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+123.089851596878
+20
+-186.862719999999
+30
+2224.76609686633
+11
+221.73980966547
+21
+-280.29408
+31
+2013.4439613934
+12
+221.739809665471
+22
+-186.86272
+32
+2013.4439613934
+13
+221.739809665471
+23
+-186.86272
+33
+2013.4439613934
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.73980966547
+20
+-280.29408
+30
+2013.4439613934
+11
+123.089851596878
+21
+-186.862719999999
+31
+2224.76609686633
+12
+123.089851596878
+22
+-280.294079999999
+32
+2224.76609686633
+13
+123.089851596878
+23
+-280.294079999999
+33
+2224.76609686633
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.10720415349
+20
+-748.850999084323
+30
+115.539466637413
+11
+470.677509279169
+21
+-764.543874438695
+31
+89.6207321892548
+12
+472.107195414063
+22
+-761.701653732916
+32
+88.5008947532808
+13
+472.107195414063
+23
+-761.701653732916
+33
+88.5008947532808
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677509279169
+20
+-764.543874438695
+30
+89.6207321892548
+11
+472.10720415349
+21
+-748.850999084323
+31
+115.539466637413
+12
+470.677518140403
+22
+-751.514112490764
+32
+117.036156904666
+13
+470.677518140403
+23
+-751.514112490764
+33
+117.036156904666
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431270729568
+20
+-719.25912090813
+30
+98.9086120013344
+11
+454.797687662105
+21
+-702.539296405596
+31
+117.908241171874
+12
+454.797683261242
+22
+-716.144716838612
+32
+97.1582932541697
+13
+454.797683261242
+23
+-716.144716838612
+33
+97.1582932541697
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797687662105
+20
+-702.539296405596
+30
+117.908241171874
+11
+454.431270729568
+21
+-719.25912090813
+31
+98.9086120013344
+12
+454.431275216977
+22
+-705.386140960936
+32
+120.066621251022
+13
+454.431275216977
+23
+-705.386140960936
+33
+120.066621251022
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222230868175
+20
+-612.875739362874
+30
+234.648467298763
+11
+461.26998493348
+21
+-642.699946567149
+31
+223.694427829008
+12
+461.269972243544
+22
+-612.537006285544
+32
+233.256044045395
+13
+461.269972243544
+23
+-612.537006285544
+33
+233.256044045395
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.26998493348
+20
+-642.699946567149
+30
+223.694427829008
+11
+458.222230868175
+21
+-612.875739362874
+31
+234.648467298763
+12
+458.222243636608
+22
+-643.225259958184
+32
+225.027705344708
+13
+458.222243636608
+23
+-643.225259958184
+33
+225.027705344708
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201824130007
+20
+-578.830801190005
+30
+61.5905626376661
+11
+764.031420693374
+21
+-566.35608713258
+31
+43.4208517516957
+12
+764.031422681501
+22
+-571.081702518113
+32
+41.9228372915384
+13
+764.031422681501
+23
+-571.081702518113
+33
+41.9228372915384
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031420693374
+20
+-566.35608713258
+30
+43.4208517516957
+11
+760.201824130007
+21
+-578.830801190005
+31
+61.5905626376661
+12
+760.20182098394
+22
+-571.352859264312
+32
+63.961061339529
+13
+760.20182098394
+23
+-571.352859264312
+33
+63.961061339529
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267763467221
+20
+-750.104609262675
+30
+83.9316672902124
+11
+432.838929652884
+21
+-758.353294490404
+31
+56.9482088735863
+12
+429.267752143919
+22
+-758.636493889386
+32
+57.017103815686
+13
+429.267752143919
+23
+-758.636493889386
+33
+57.017103815686
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838929652884
+20
+-758.353294490404
+30
+56.9482088735863
+11
+429.267763467221
+21
+-750.104609262675
+31
+83.9316672902124
+12
+432.838940960221
+22
+-749.833439201604
+32
+83.824824767603
+13
+432.838940960221
+23
+-749.833439201604
+33
+83.824824767603
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431263343628
+20
+-625.680128816835
+30
+180.496989380173
+11
+454.797666066761
+21
+-600.71783565349
+31
+184.671000694682
+12
+454.797676017751
+22
+-624.370524419528
+32
+177.173126470384
+13
+454.797676017751
+23
+-624.370524419528
+33
+177.173126470384
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797666066761
+20
+-600.71783565349
+30
+184.671000694682
+11
+454.431263343628
+21
+-625.680128816835
+31
+180.496989380173
+12
+454.431253196946
+22
+-601.562294416642
+32
+188.142314217608
+13
+454.431253196946
+23
+-601.562294416642
+33
+188.142314217608
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677509279169
+20
+-764.543874438695
+30
+89.6207321892548
+11
+468.840142428527
+21
+-776.463572930403
+31
+61.353838580619
+12
+470.677497105752
+22
+-773.716303656482
+32
+60.6855157395589
+13
+470.677497105752
+23
+-773.716303656482
+33
+60.6855157395589
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840142428527
+20
+-776.463572930403
+30
+61.353838580619
+11
+470.677509279169
+21
+-764.543874438695
+31
+89.6207321892548
+12
+468.84015475682
+22
+-767.174448290109
+32
+90.6571807720069
+13
+468.84015475682
+23
+-767.174448290109
+33
+90.6571807720069
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332886599671
+20
+-704.132938548301
+30
+65.8187023707334
+11
+702.221343105619
+21
+-699.12426393804
+31
+42.5395709625037
+12
+684.332877982946
+22
+-710.625470617764
+32
+45.3374518452758
+13
+684.332877982946
+23
+-710.625470617764
+33
+45.3374518452758
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221343105619
+20
+-699.12426393804
+30
+42.5395709625037
+11
+684.332886599671
+21
+-704.132938548301
+31
+65.8187023707334
+12
+702.221351073972
+22
+-693.120266957808
+32
+61.4796955534277
+13
+702.221351073972
+23
+-693.120266957808
+33
+61.4796955534277
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269937419119
+20
+-549.571376162653
+30
+239.686382351024
+11
+464.090727919739
+21
+-186.86272
+31
+237.849027336606
+12
+461.269937419119
+22
+-186.86272
+32
+239.686382351025
+13
+461.269937419119
+23
+-186.86272
+33
+239.686382351025
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090727919739
+20
+-186.86272
+30
+237.849027336606
+11
+461.269937419119
+21
+-549.571376162653
+31
+239.686382351024
+12
+464.090727919739
+22
+-549.540509167097
+32
+237.849027336606
+13
+464.090727919739
+23
+-549.540509167097
+33
+237.849027336606
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602131038669
+20
+-761.101673056328
+30
+57.616722979916
+11
+473.717763908762
+21
+-752.465074828487
+31
+84.861675745457
+12
+473.717752446486
+22
+-761.101673808691
+32
+57.6167818413605
+13
+473.717752446486
+23
+-761.101673808691
+33
+57.6167818413605
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717763908762
+20
+-752.465074828487
+30
+84.861675745457
+11
+599.602131038669
+21
+-761.101673056328
+31
+57.616722979916
+12
+599.60214250095
+22
+-752.465070814344
+32
+84.8616271735756
+13
+599.60214250095
+23
+-752.465070814344
+33
+84.8616271735756
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576402819491
+20
+-633.437457700021
+30
+26.5600661905556
+11
+760.201821668678
+21
+-613.067712196625
+31
+23.3578379899606
+12
+757.969157364208
+22
+-620.27407578666
+32
+23.3578379876696
+13
+757.969157364208
+23
+-620.27407578666
+33
+23.3578379876696
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201821668678
+20
+-613.067712196625
+30
+23.3578379899606
+11
+753.576402819491
+21
+-633.437457700021
+31
+26.5600661905556
+12
+760.201824130007
+22
+-611.213150017197
+32
+29.2082138072124
+13
+760.201824130007
+23
+-611.213150017197
+33
+29.2082138072124
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201824130007
+20
+-611.213150017197
+30
+29.2082138072124
+11
+753.576402819491
+21
+-633.437457700021
+31
+26.5600661905556
+12
+753.576407084801
+22
+-630.223630997654
+32
+36.698358790781
+13
+753.576407084801
+23
+-630.223630997654
+33
+36.698358790781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317739367628
+20
+-791.272422434329
+30
+32.0400273988949
+11
+3.51879034228841e-05
+21
+-785.839649652569
+31
+63.6349541054433
+12
+1.90727753096809e-05
+22
+-791.272418599218
+32
+32.0402749105959
+13
+1.90727753096809e-05
+23
+-791.272418599218
+33
+32.0402749105959
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+3.51879034228841e-05
+20
+-785.839649652569
+30
+63.6349541054433
+11
+448.317739367628
+21
+-791.272422434329
+31
+32.0400273988949
+12
+448.317755482775
+22
+-785.839646973143
+32
+63.6347444795237
+13
+448.317755482775
+23
+-785.839646973143
+33
+63.6347444795237
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575548860337
+20
+-602.386639077964
+30
+191.530943822063
+11
+454.431240478811
+21
+-576.627625779333
+31
+192.429880890276
+12
+454.431253196946
+22
+-601.562294416642
+32
+188.142314217608
+13
+454.431253196946
+23
+-601.562294416642
+33
+188.142314217608
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431240478811
+20
+-576.627625779333
+30
+192.429880890276
+11
+453.575548860337
+21
+-602.386639077964
+31
+191.530943822063
+12
+453.575535902759
+22
+-576.982525716554
+32
+195.89923246393
+13
+453.575535902759
+23
+-576.982525716554
+33
+195.89923246393
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+791.767077835926
+20
+-596.364536149864
+30
+23.3578380035618
+11
+787.130182929858
+21
+-621.15990220955
+31
+23.5733173858747
+12
+787.308111270966
+22
+-620.27413204142
+32
+23.3578379968868
+13
+787.308111270966
+23
+-620.27413204142
+33
+23.3578379968868
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130182929858
+20
+-621.15990220955
+30
+23.5733173858747
+11
+791.767077835926
+21
+-596.364536149864
+31
+23.3578380035618
+12
+787.130186503031
+22
+-618.467587074047
+32
+32.066456918151
+13
+787.130186503031
+23
+-618.467587074047
+33
+32.066456918151
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024169157982
+20
+-628.985710803041
+30
+62.1423838125873
+11
+767.829332959368
+21
+-655.602108768076
+31
+63.1328050448759
+12
+779.024166993188
+22
+-635.678245979518
+32
+51.9354404084483
+13
+779.024166993188
+23
+-635.678245979518
+33
+51.9354404084483
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829332959368
+20
+-655.602108768076
+30
+63.1328050448759
+11
+779.024169157982
+21
+-628.985710803041
+31
+62.1423838125873
+12
+767.829335677824
+22
+-647.197908223015
+32
+75.9502497139702
+13
+767.829335677824
+23
+-647.197908223015
+33
+75.9502497139702
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630427178961
+20
+-769.542842319152
+30
+91.5903304644009
+11
+464.090784277369
+21
+-758.12892025415
+31
+120.753730687408
+12
+464.090775113584
+22
+-771.603559996758
+32
+92.4022555870175
+13
+464.090775113584
+23
+-771.603559996758
+33
+92.4022555870175
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090784277369
+20
+-758.12892025415
+30
+120.753730687408
+11
+466.630427178961
+21
+-769.542842319152
+31
+91.5903304644009
+12
+466.630436254431
+22
+-756.198062094967
+32
+119.668573109345
+13
+466.630436254431
+23
+-756.198062094967
+33
+119.668573109345
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575566723046
+20
+-722.299342389133
+30
+100.617239704551
+11
+454.431275216977
+21
+-705.386140960936
+31
+120.066621251022
+12
+454.431270729568
+22
+-719.25912090813
+32
+98.9086120013344
+13
+454.431270729568
+23
+-719.25912090813
+33
+98.9086120013344
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431275216977
+20
+-705.386140960936
+30
+120.066621251022
+11
+453.575566723046
+21
+-722.299342389133
+31
+100.617239704551
+12
+453.575571294939
+22
+-708.165176005556
+32
+122.173590554812
+13
+453.575571294939
+23
+-708.165176005556
+33
+122.173590554812
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0
+20
+-549.622587401036
+30
+242.726639240051
+11
+93.5308854426706
+21
+-280.294079999998
+31
+242.726639192693
+12
+0.000487681863777811
+22
+-280.294079999998
+32
+242.726639192693
+13
+0.000487681863777811
+23
+-280.294079999998
+33
+242.726639192693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.5308854426706
+20
+-280.294079999998
+30
+242.726639192693
+11
+0.0
+21
+-549.622587401036
+31
+242.726639240051
+12
+448.31772029492
+22
+-549.622454002523
+32
+242.726639240051
+13
+448.31772029492
+23
+-549.622454002523
+33
+242.726639240051
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.5308854426706
+20
+-280.294079999998
+30
+242.726639192693
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+93.530885442671
+22
+-186.862719999999
+32
+242.726639240051
+13
+93.530885442671
+23
+-186.862719999999
+33
+242.726639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.31772029492
+20
+-186.86272
+30
+242.726639240051
+11
+93.5308854426706
+21
+-280.294079999998
+31
+242.726639192693
+12
+448.31772029492
+22
+-549.622454002523
+32
+242.726639240051
+13
+448.31772029492
+23
+-549.622454002523
+33
+242.726639240051
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884068906774
+20
+-549.087494127121
+30
+210.885907146698
+11
+673.957327625231
+21
+-186.86272
+31
+202.779879874335
+12
+649.884068906774
+22
+-186.86272
+32
+210.885907146698
+13
+649.884068906774
+23
+-186.86272
+33
+210.885907146698
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957327625231
+20
+-186.86272
+30
+202.779879874335
+11
+649.884068906774
+21
+-549.087494127121
+31
+210.885907146698
+12
+673.957327625231
+22
+-548.951311917762
+32
+202.779879874335
+13
+673.957327625231
+23
+-548.951311917762
+33
+202.779879874335
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758800443365
+20
+-717.703482376537
+30
+98.03426599948
+11
+673.957381179691
+21
+-712.905797682657
+31
+125.767734693656
+12
+673.957376463676
+22
+-727.485522237732
+32
+103.531852556699
+13
+673.957376463676
+23
+-727.485522237732
+33
+103.531852556699
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957381179691
+20
+-712.905797682657
+30
+125.767734693656
+11
+696.758800443365
+21
+-717.703482376537
+31
+98.03426599948
+12
+696.758804887548
+22
+-703.964135051352
+32
+118.98846898236
+13
+696.758804887548
+23
+-703.964135051352
+33
+118.98846898236
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162901478210909
+20
+-750.104622950446
+30
+83.93183291483
+11
+429.267752143919
+21
+-758.636493889386
+31
+57.017103815686
+12
+0.0162788245333154
+22
+-758.636496454861
+32
+57.0173045265452
+13
+0.0162788245333154
+23
+-758.636496454861
+33
+57.0173045265452
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267752143919
+20
+-758.636493889386
+30
+57.017103815686
+11
+0.0162901478210909
+21
+-750.104622950446
+31
+83.93183291483
+12
+429.267763467221
+22
+-750.104609262675
+32
+83.9316672902124
+13
+429.267763467221
+23
+-750.104609262675
+33
+83.9316672902124
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797676017751
+20
+-726.7957138545
+30
+74.7479370250946
+11
+454.667765582876
+21
+-713.015957461653
+31
+95.3999068495287
+12
+454.667758482489
+22
+-723.456530152174
+32
+73.4322964107047
+13
+454.667758482489
+23
+-723.456530152174
+33
+73.4322964107047
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667765582876
+20
+-713.015957461653
+30
+95.3999068495287
+11
+454.797676017751
+21
+-726.7957138545
+31
+74.7479370250946
+12
+454.797683261242
+22
+-716.144716838612
+32
+97.1582932541697
+13
+454.797683261242
+23
+-716.144716838612
+33
+97.1582932541697
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884100288402
+20
+-605.713302275367
+30
+205.206224873295
+11
+673.957368701467
+21
+-629.139245228331
+31
+189.276665394806
+12
+673.957358037872
+22
+-603.792752711355
+32
+197.311473394829
+13
+673.957358037872
+23
+-603.792752711355
+33
+197.311473394829
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957368701467
+20
+-629.139245228331
+30
+189.276665394806
+11
+649.884100288402
+21
+-605.713302275367
+31
+205.206224873295
+12
+649.884111397057
+22
+-632.11766596993
+32
+196.836072967405
+13
+649.884111397057
+23
+-632.11766596993
+33
+196.836072967405
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021379319153
+20
+-712.807071282992
+30
+69.2363238103713
+11
+684.332877982946
+21
+-710.625470617764
+31
+45.3374518452758
+12
+665.021370191738
+22
+-719.684397959595
+32
+47.5412056189011
+13
+665.021370191738
+23
+-719.684397959595
+33
+47.5412056189011
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332877982946
+20
+-710.625470617764
+30
+45.3374518452758
+11
+665.021379319153
+21
+-712.807071282992
+31
+69.2363238103713
+12
+684.332886599671
+22
+-704.132938548301
+32
+65.8187023707334
+13
+684.332886599671
+23
+-704.132938548301
+33
+65.8187023707334
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363068074693
+20
+-547.889717752797
+30
+139.587654990762
+11
+732.466031085639
+21
+-186.86272
+31
+123.445905477124
+12
+732.466031085639
+22
+-547.618544534505
+32
+123.445905477124
+13
+732.466031085639
+23
+-547.618544534505
+33
+123.445905477124
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466031085639
+20
+-186.86272
+30
+123.445905477124
+11
+718.363068074693
+21
+-547.889717752797
+31
+139.587654990762
+12
+718.363068074693
+22
+-186.86272
+32
+139.587654990762
+13
+718.363068074693
+23
+-186.86272
+33
+139.587654990762
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.02138596315
+20
+-703.037584126794
+30
+89.7919287945006
+11
+684.332886599671
+21
+-704.132938548301
+31
+65.8187023707334
+12
+665.021379319153
+22
+-712.807071282992
+32
+69.2363238103713
+13
+665.021379319153
+23
+-712.807071282992
+33
+69.2363238103713
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332886599671
+20
+-704.132938548301
+30
+65.8187023707334
+11
+665.02138596315
+21
+-703.037584126794
+31
+89.7919287945006
+12
+684.332892871929
+22
+-694.910065817882
+32
+85.2241968080869
+13
+684.332892871929
+23
+-694.910065817882
+33
+85.2241968080869
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130190684252
+20
+-609.757662381006
+30
+47.5643349390529
+11
+779.024166993188
+21
+-635.678245979518
+31
+51.9354404084483
+12
+787.130189104003
+22
+-614.643057664062
+32
+40.1135032517926
+13
+787.130189104003
+23
+-614.643057664062
+33
+40.1135032517926
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024166993188
+20
+-635.678245979518
+30
+51.9354404084483
+11
+787.130190684252
+21
+-609.757662381006
+31
+47.5643349390529
+12
+779.024169157982
+22
+-628.985710803041
+32
+62.1423838125873
+13
+779.024169157982
+23
+-628.985710803041
+33
+62.1423838125873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739272918395
+20
+-589.30932977233
+30
+137.774660970991
+11
+736.997685757261
+21
+-613.69735635364
+31
+150.084181819366
+12
+753.739280225648
+22
+-606.678073483521
+32
+132.268789859729
+13
+753.739280225648
+23
+-606.678073483521
+33
+132.268789859729
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997685757261
+20
+-613.69735635364
+30
+150.084181819366
+11
+753.739272918395
+21
+-589.30932977233
+31
+137.774660970991
+12
+736.997677401125
+22
+-593.835505140242
+32
+156.380365045419
+13
+736.997677401125
+23
+-593.835505140242
+33
+156.380365045419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269956337624
+20
+-581.352493258009
+30
+238.618284093782
+11
+464.090762524528
+21
+-612.101685596006
+31
+231.466577935614
+12
+464.090746745054
+22
+-581.165076540648
+32
+236.786190394896
+13
+464.090746745054
+23
+-581.165076540648
+33
+236.786190394896
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090762524528
+20
+-612.101685596006
+30
+231.466577935614
+11
+461.269956337624
+21
+-581.352493258009
+31
+238.618284093782
+12
+461.269972243544
+22
+-612.537006285544
+32
+233.256044045395
+13
+461.269972243544
+23
+-612.537006285544
+33
+233.256044045395
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221351073972
+20
+-693.120266957808
+30
+61.4796955534277
+11
+718.363090933403
+21
+-685.388881228845
+31
+39.1981879427727
+12
+702.221343105619
+22
+-699.12426393804
+32
+42.5395709625037
+13
+702.221343105619
+23
+-699.12426393804
+33
+42.5395709625037
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363090933403
+20
+-685.388881228845
+30
+39.1981879427727
+11
+702.221351073972
+21
+-693.120266957808
+31
+61.4796955534277
+12
+718.363098127435
+22
+-679.968320245868
+32
+56.297813526916
+13
+718.363098127435
+23
+-679.968320245868
+33
+56.297813526916
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838940960221
+20
+-749.833439201604
+30
+83.824824767603
+11
+436.335601310833
+21
+-757.591910929275
+31
+56.7629871862785
+12
+432.838929652884
+22
+-758.353294490404
+32
+56.9482088735863
+13
+432.838929652884
+23
+-758.353294490404
+33
+56.9482088735863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335601310833
+20
+-757.591910929275
+30
+56.7629871862785
+11
+432.838940960221
+21
+-749.833439201604
+31
+83.824824767603
+12
+436.335612575248
+22
+-749.104396759147
+32
+83.5375802413299
+13
+436.335612575248
+23
+-749.104396759147
+33
+83.5375802413299
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317755482775
+20
+-785.839646973143
+30
+63.6347444795237
+11
+4.80447490185498e-05
+21
+-776.152270645783
+31
+94.1946239307526
+12
+3.51879034228841e-05
+22
+-785.839649652569
+32
+63.6349541054433
+13
+3.51879034228841e-05
+23
+-785.839649652569
+33
+63.6349541054433
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+4.80447490185498e-05
+20
+-776.152270645783
+30
+94.1946239307526
+11
+448.317755482775
+21
+-785.839646973143
+31
+63.6347444795237
+12
+448.317768339636
+22
+-776.152256350036
+32
+94.1944509495159
+13
+448.317768339636
+23
+-776.152256350036
+33
+94.1944509495159
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247009199941
+20
+-725.20697903804
+30
+102.251353856666
+11
+453.575571294939
+21
+-708.165176005556
+31
+122.173590554812
+12
+453.575566723046
+22
+-722.299342389133
+32
+100.617239704551
+13
+453.575566723046
+23
+-722.299342389133
+33
+100.617239704551
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575571294939
+20
+-708.165176005556
+30
+122.173590554812
+11
+452.247009199941
+21
+-725.20697903804
+31
+102.251353856666
+12
+452.247013852634
+22
+-710.823016652003
+32
+124.188674487802
+13
+452.247013852634
+23
+-710.823016652003
+33
+124.188674487802
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201826420081
+20
+-607.845772298605
+30
+36.2933847183422
+11
+764.031425007948
+21
+-586.699189190326
+31
+30.0821938636906
+12
+764.031424128692
+22
+-589.417441849078
+32
+25.9365225576139
+13
+764.031424128692
+23
+-589.417441849078
+33
+25.9365225576139
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031425007948
+20
+-586.699189190326
+30
+30.0821938636906
+11
+760.201826420081
+21
+-607.845772298605
+31
+36.2933847183422
+12
+760.20182781144
+22
+-603.54433558335
+32
+42.8536074069585
+13
+760.20182781144
+23
+-603.54433558335
+33
+42.8536074069585
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839490392048
+20
+-719.276356082042
+30
+130.597708279963
+11
+445.721740244506
+21
+-732.59492990622
+31
+106.403439896738
+12
+442.839485482368
+22
+-734.454801614587
+32
+107.448702644845
+13
+442.839485482368
+23
+-734.454801614587
+33
+107.448702644845
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721740244506
+20
+-732.59492990622
+30
+106.403439896738
+11
+442.839490392048
+21
+-719.276356082042
+31
+130.597708279963
+12
+445.721745102502
+22
+-717.576266444547
+32
+129.308758123214
+13
+445.721745102502
+23
+-717.576266444547
+33
+129.308758123214
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363081916203
+20
+-571.142011532184
+30
+138.806193017976
+11
+702.221318561055
+21
+-548.126641526877
+31
+153.690618001708
+12
+718.363068074693
+22
+-547.889717752797
+32
+139.587654990762
+13
+718.363068074693
+23
+-547.889717752797
+33
+139.587654990762
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221318561055
+20
+-548.126641526877
+30
+153.690618001708
+11
+718.363081916203
+21
+-571.142011532184
+31
+138.806193017976
+12
+702.221333117862
+22
+-572.580560654599
+32
+152.868771861916
+13
+702.221333117862
+23
+-572.580560654599
+33
+152.868771861916
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335625756533
+20
+-721.646389233184
+30
+132.394587199654
+11
+439.690615872653
+21
+-735.948583762681
+31
+108.288220362449
+12
+436.335620774804
+22
+-737.047580997407
+32
+108.905866027708
+13
+436.335620774804
+23
+-737.047580997407
+33
+108.905866027708
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690615872653
+20
+-735.948583762681
+30
+108.288220362449
+11
+436.335625756533
+21
+-721.646389233184
+31
+132.394587199654
+12
+439.690620823844
+22
+-720.64180705444
+32
+131.632946903436
+13
+439.690620823844
+23
+-720.64180705444
+33
+131.632946903436
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363068074693
+20
+-186.86272
+30
+139.587654990762
+11
+702.221318561055
+21
+-548.126641526877
+31
+153.690618001708
+12
+702.221318561055
+22
+-186.86272
+32
+153.690618001708
+13
+702.221318561055
+23
+-186.86272
+33
+153.690618001708
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221318561055
+20
+-548.126641526877
+30
+153.690618001708
+11
+718.363068074693
+21
+-186.86272
+31
+139.587654990762
+12
+718.363068074693
+22
+-547.889717752797
+32
+139.587654990762
+13
+718.363068074693
+23
+-547.889717752797
+33
+139.587654990762
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717763908762
+20
+-752.465074828487
+30
+84.861675745457
+11
+473.642053400866
+21
+-764.379514823734
+31
+58.4141748490874
+12
+473.717752446486
+22
+-761.101673808691
+32
+57.6167818413605
+13
+473.717752446486
+23
+-761.101673808691
+33
+57.6167818413605
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642053400866
+20
+-764.379514823734
+30
+58.4141748490874
+11
+473.717763908762
+21
+-752.465074828487
+31
+84.861675745457
+12
+473.642065047928
+22
+-755.603683334388
+32
+86.0982896720056
+13
+473.642065047928
+23
+-755.603683334388
+33
+86.0982896720056
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+629.962604584718
+20
+-661.494594174546
+30
+5.83945951983435
+11
+617.23954941635
+21
+-667.162466046757
+31
+-1.62430069394759e-12
+12
+617.239549416349
+22
+-667.162466046756
+32
+5.83945951983507
+13
+617.239549416349
+23
+-667.162466046756
+33
+5.83945951983507
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+617.23954941635
+20
+-667.162466046757
+30
+-1.62430069394759e-12
+11
+629.962604584718
+21
+-661.494594174546
+31
+5.83945951983435
+12
+629.962604584718
+22
+-661.494594174547
+32
+-2.52668996836292e-12
+13
+629.962604584718
+23
+-661.494594174547
+33
+-2.52668996836292e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133279596418
+20
+-599.869415774734
+30
+181.183685835358
+11
+454.667736501664
+21
+-575.898831573499
+31
+185.305488978394
+12
+602.133267369982
+22
+-575.898750159264
+32
+185.30549023988
+13
+602.133267369982
+23
+-575.898750159264
+33
+185.30549023988
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667736501664
+20
+-575.898831573499
+30
+185.305488978394
+11
+602.133279596418
+21
+-599.869415774734
+31
+181.183685835358
+12
+454.667748728094
+22
+-599.869484727166
+32
+181.183686716704
+13
+454.667748728094
+23
+-599.869484727166
+33
+181.183686716704
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275046789786
+20
+-652.245630435845
+30
+31.1354921818382
+11
+753.576407084801
+21
+-630.223630997654
+31
+36.698358790781
+12
+753.576402819491
+22
+-633.437457700021
+32
+26.5600661905556
+13
+753.576402819491
+23
+-633.437457700021
+33
+26.5600661905556
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576407084801
+20
+-630.223630997654
+30
+36.698358790781
+11
+744.275046789786
+21
+-652.245630435845
+31
+31.1354921818382
+12
+744.275052115393
+22
+-648.23289118406
+32
+43.7940230954864
+13
+744.275052115393
+23
+-648.23289118406
+33
+43.7940230954864
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840126975903
+20
+-580.680624318909
+30
+232.050409880217
+11
+466.630414711229
+21
+-611.578139745845
+31
+229.314444371434
+12
+468.840142428527
+22
+-610.976425980055
+32
+226.840985547634
+13
+468.840142428527
+23
+-610.976425980055
+33
+226.840985547634
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630414711229
+20
+-611.578139745845
+30
+229.314444371434
+11
+468.840126975903
+21
+-580.680624318909
+31
+232.050409880217
+12
+466.630399083827
+22
+-580.939676928926
+32
+234.582789982374
+13
+466.630399083827
+23
+-580.939676928926
+33
+234.582789982374
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282004539076
+20
+-742.014746414944
+30
+80.7442486966709
+11
+450.471119570638
+21
+-727.926175547966
+31
+103.779563345764
+12
+450.471111788281
+22
+-739.369532914357
+32
+79.7020319508277
+13
+450.471111788281
+23
+-739.369532914357
+33
+79.7020319508277
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471119570638
+20
+-727.926175547966
+30
+103.779563345764
+11
+448.282004539076
+21
+-742.014746414944
+31
+80.7442486966709
+12
+448.282012434797
+22
+-730.404696521621
+32
+105.17251147419
+13
+448.282012434797
+23
+-730.404696521621
+33
+105.17251147419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090746745054
+20
+-581.165076540648
+30
+236.786190394896
+11
+466.630414711229
+21
+-611.578139745845
+31
+229.314444371434
+12
+466.630399083827
+22
+-580.939676928926
+32
+234.582789982374
+13
+466.630399083827
+23
+-580.939676928926
+33
+234.582789982374
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630414711229
+20
+-611.578139745845
+30
+229.314444371434
+11
+464.090746745054
+21
+-581.165076540648
+31
+236.786190394896
+12
+464.090762524528
+22
+-612.101685596006
+32
+231.466577935614
+13
+464.090762524528
+23
+-612.101685596006
+33
+231.466577935614
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222214863865
+20
+-581.498326831209
+30
+240.043876806793
+11
+461.269972243544
+21
+-612.537006285544
+31
+233.256044045395
+12
+461.269956337624
+22
+-581.352493258009
+32
+238.618284093782
+13
+461.269956337624
+23
+-581.352493258009
+33
+238.618284093782
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269972243544
+20
+-612.537006285544
+30
+233.256044045395
+11
+458.222214863865
+21
+-581.498326831209
+31
+240.043876806793
+12
+458.222230868175
+22
+-612.875739362874
+32
+234.648467298763
+13
+458.222230868175
+23
+-612.875739362874
+33
+234.648467298763
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339903
+20
+-186.86272
+30
+2030.58313313969
+11
+100.155807358117
+21
+-280.294079999999
+31
+2052.97755335166
+12
+100.155807358117
+22
+-186.862719999999
+32
+2052.97755335166
+13
+100.155807358117
+23
+-186.862719999999
+33
+2052.97755335166
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-280.294079999999
+30
+2052.97755335166
+11
+127.443487339903
+21
+-186.86272
+31
+2030.58313313969
+12
+127.443487339902
+22
+-280.29408
+32
+2030.58313313969
+13
+127.443487339902
+23
+-280.29408
+33
+2030.58313313969
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.2381055728783
+20
+-280.29408
+30
+1394.27106395937
+11
+69.0138872107926
+21
+-186.86272
+31
+1404.51683530547
+12
+35.2381055728787
+22
+-186.86272
+32
+1394.27106395937
+13
+35.2381055728787
+23
+-186.86272
+33
+1394.27106395937
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.0138872107926
+20
+-186.86272
+30
+1404.51683530547
+11
+35.2381055728783
+21
+-280.29408
+31
+1394.27106395937
+12
+69.0138872107921
+22
+-280.29408
+32
+1404.51683530547
+13
+69.0138872107921
+23
+-280.29408
+33
+1404.51683530547
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690615872653
+20
+-735.948583762681
+30
+108.288220362449
+11
+442.839477401402
+21
+-746.337240593148
+31
+82.4473163912804
+12
+439.690607723364
+22
+-747.931486742049
+32
+83.0754516399063
+13
+439.690607723364
+23
+-747.931486742049
+33
+83.0754516399063
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839477401402
+20
+-746.337240593148
+30
+82.4473163912804
+11
+439.690615872653
+21
+-735.948583762681
+31
+108.288220362449
+12
+442.839485482368
+22
+-734.454801614587
+32
+107.448702644845
+13
+442.839485482368
+23
+-734.454801614587
+33
+107.448702644845
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602098887118
+20
+-549.195708452133
+30
+217.326639240051
+11
+624.955307916438
+21
+-578.912147406784
+31
+214.763348941721
+12
+624.955290211342
+22
+-549.169431970937
+32
+215.762940693873
+13
+624.955290211342
+23
+-549.169431970937
+33
+215.762940693873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955307916438
+20
+-578.912147406784
+30
+214.763348941721
+11
+599.602098887118
+21
+-549.195708452133
+31
+217.326639240051
+12
+599.602116671527
+22
+-579.071662867255
+32
+216.322569598682
+13
+599.602116671527
+23
+-579.071662867255
+33
+216.322569598682
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+3.51879034228841e-05
+20
+-613.257541505822
+30
+236.217062269571
+11
+448.317768339636
+21
+-643.81703834892
+31
+226.52966896396
+12
+448.317755482775
+22
+-613.257331879904
+32
+236.217059590145
+13
+448.317755482775
+23
+-613.257331879904
+33
+236.217059590145
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317768339636
+20
+-643.81703834892
+30
+226.52966896396
+11
+3.51879034228841e-05
+21
+-613.257541505822
+31
+236.217062269571
+12
+4.80447490185498e-05
+22
+-643.817211330157
+32
+226.529683259707
+13
+4.80447490185498e-05
+23
+-643.817211330157
+33
+226.529683259707
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717738079349
+20
+-579.071732366754
+30
+216.322568521811
+11
+599.602131038669
+21
+-607.239310377804
+31
+211.479085673936
+12
+599.602116671527
+22
+-579.071662867255
+32
+216.322569598682
+13
+599.602116671527
+23
+-579.071662867255
+33
+216.322569598682
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602131038669
+20
+-607.239310377804
+30
+211.479085673936
+11
+473.717738079349
+21
+-579.071732366754
+31
+216.322568521811
+12
+473.717752446486
+22
+-607.239369239249
+32
+211.479086426299
+13
+473.717752446486
+23
+-607.239369239249
+33
+211.479086426299
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024163430099
+20
+-640.917494008958
+30
+40.9117386331972
+11
+767.82932233817
+21
+-666.812843070624
+31
+34.6792140832892
+12
+779.024158535186
+22
+-644.605714246329
+32
+29.2769308468913
+13
+779.024158535186
+23
+-644.605714246329
+33
+29.2769308468913
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.82932233817
+20
+-666.812843070624
+30
+34.6792140832892
+11
+779.024163430099
+21
+-640.917494008958
+31
+40.9117386331972
+12
+767.829328484993
+22
+-662.181333229905
+32
+49.2897100106075
+13
+767.829328484993
+23
+-662.181333229905
+33
+49.2897100106075
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717738079349
+20
+-579.071732366754
+30
+216.322568521811
+11
+473.642053400866
+21
+-608.036762247305
+31
+214.756927441262
+12
+473.717752446486
+22
+-607.239369239249
+32
+211.479086426299
+13
+473.717752446486
+23
+-607.239369239249
+33
+211.479086426299
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642053400866
+20
+-608.036762247305
+30
+214.756927441262
+11
+473.717738079349
+21
+-579.071732366754
+31
+216.322568521811
+12
+473.642038802113
+22
+-579.415028713919
+32
+219.67849237548
+13
+473.642038802113
+23
+-579.415028713919
+33
+219.67849237548
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021391353748
+20
+-675.601700530057
+30
+125.979113140781
+11
+684.332896682708
+21
+-683.128909470703
+31
+103.191916498769
+12
+665.021389999784
+22
+-690.558190885324
+32
+108.824546057595
+13
+665.021389999784
+23
+-690.558190885324
+33
+108.824546057595
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332896682708
+20
+-683.128909470703
+30
+103.191916498769
+11
+665.021391353748
+21
+-675.601700530057
+31
+125.979113140781
+12
+684.332897960916
+22
+-669.009252539392
+32
+119.38666515078
+13
+684.332897960916
+23
+-669.009252539392
+33
+119.38666515078
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201817040574
+20
+-563.621650860098
+30
+65.2904582517363
+11
+764.031409168954
+21
+-546.296855411639
+31
+44.7709041931231
+12
+764.0314182014
+22
+-561.470422367227
+32
+44.2609516834995
+13
+764.0314182014
+23
+-561.470422367227
+33
+44.2609516834995
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031409168954
+20
+-546.296855411639
+30
+44.7709041931231
+11
+760.201817040574
+21
+-563.621650860098
+31
+65.2904582517363
+12
+760.201806938459
+22
+-546.651150672583
+32
+65.8608020071314
+13
+760.201806938459
+23
+-546.651150672583
+33
+65.8608020071314
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006069025402
+20
+-581.599775817026
+30
+241.035583090668
+11
+458.222230868175
+21
+-612.875739362874
+31
+234.648467298763
+12
+458.222214863865
+22
+-581.498326831209
+32
+240.043876806793
+13
+458.222214863865
+23
+-581.498326831209
+33
+240.043876806793
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222230868175
+20
+-612.875739362874
+30
+234.648467298763
+11
+455.006069025402
+21
+-581.599775817026
+31
+241.035583090668
+12
+455.006085098156
+22
+-613.111377811381
+32
+235.617099433291
+13
+455.006085098156
+23
+-613.111377811381
+33
+235.617099433291
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431253196946
+20
+-601.562294416642
+30
+188.142314217608
+11
+454.797653593913
+21
+-576.264066422956
+31
+188.875875742312
+12
+454.797666066761
+22
+-600.71783565349
+32
+184.671000694682
+13
+454.797666066761
+23
+-600.71783565349
+33
+184.671000694682
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797653593913
+20
+-576.264066422956
+30
+188.875875742312
+11
+454.431253196946
+21
+-601.562294416642
+31
+188.142314217608
+12
+454.431240478811
+22
+-576.627625779333
+32
+192.429880890276
+13
+454.431240478811
+23
+-576.627625779333
+33
+192.429880890276
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.20182098394
+20
+-571.352859264312
+30
+63.961061339529
+11
+764.0314182014
+21
+-561.470422367227
+31
+44.2609516834995
+12
+764.031420693374
+22
+-566.35608713258
+32
+43.4208517516957
+13
+764.031420693374
+23
+-566.35608713258
+33
+43.4208517516957
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.0314182014
+20
+-561.470422367227
+30
+44.2609516834995
+11
+760.20182098394
+21
+-571.352859264312
+31
+63.961061339529
+12
+760.201817040574
+22
+-563.621650860098
+32
+65.2904582517363
+13
+760.201817040574
+23
+-563.621650860098
+33
+65.2904582517363
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.10173725466
+20
+-608.824016722648
+30
+217.993091128508
+11
+472.107195414063
+21
+-638.12348215123
+31
+212.079066347413
+12
+473.101749084159
+22
+-636.941767787464
+32
+209.079797462849
+13
+473.101749084159
+23
+-636.941767787464
+33
+209.079797462849
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107195414063
+20
+-638.12348215123
+30
+212.079066347413
+11
+473.10173725466
+21
+-608.824016722648
+31
+217.993091128508
+12
+472.107183407982
+22
+-609.586009613252
+32
+221.125411221167
+13
+472.107183407982
+23
+-609.586009613252
+33
+221.125411221167
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717763908762
+20
+-634.484263142475
+30
+202.842487443351
+11
+473.64207352602
+21
+-661.950912950484
+31
+193.514715177954
+12
+473.717772252345
+22
+-660.298147720458
+32
+190.573891403664
+13
+473.717772252345
+23
+-660.298147720458
+33
+190.573891403664
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.64207352602
+20
+-661.950912950484
+30
+193.514715177954
+11
+473.717763908762
+21
+-634.484263142475
+31
+202.842487443351
+12
+473.642065047928
+22
+-635.720877069339
+32
+205.981095949127
+13
+473.642065047928
+23
+-635.720877069339
+33
+205.981095949127
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636259351108
+20
+-708.826870972768
+30
+93.0455572990973
+11
+665.021379319153
+21
+-712.807071282992
+31
+69.2363238103713
+12
+644.636252442318
+22
+-718.985715046116
+32
+71.6707212889357
+13
+644.636252442318
+23
+-718.985715046116
+33
+71.6707212889357
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021379319153
+20
+-712.807071282992
+30
+69.2363238103713
+11
+644.636259351108
+21
+-708.826870972768
+31
+93.0455572990973
+12
+665.02138596315
+22
+-703.037584126794
+32
+89.7919287945006
+13
+665.02138596315
+23
+-703.037584126794
+33
+89.7919287945006
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201824130007
+20
+-611.213150017197
+30
+29.2082138072124
+11
+764.031423295207
+21
+-590.643016368677
+31
+23.3578379961104
+12
+763.093075318335
+22
+-596.364508960869
+32
+23.3578379945534
+13
+763.093075318335
+23
+-596.364508960869
+33
+23.3578379945534
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031423295207
+20
+-590.643016368677
+30
+23.3578379961104
+11
+760.201824130007
+21
+-611.213150017197
+31
+29.2082138072124
+12
+764.031424128692
+22
+-589.417441849078
+32
+25.9365225576139
+13
+764.031424128692
+23
+-589.417441849078
+33
+25.9365225576139
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031424128692
+20
+-589.417441849078
+30
+25.9365225576139
+11
+760.201824130007
+21
+-611.213150017197
+31
+29.2082138072124
+12
+760.201826420081
+22
+-607.845772298605
+32
+36.2933847183422
+13
+760.201826420081
+23
+-607.845772298605
+33
+36.2933847183422
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282017231929
+20
+-715.574196634022
+30
+127.790856991425
+11
+450.471125884842
+21
+-695.789522350054
+31
+146.166934958744
+12
+450.471124298894
+22
+-713.308606140826
+32
+126.073163560098
+13
+450.471124298894
+23
+-713.308606140826
+33
+126.073163560098
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471125884842
+20
+-695.789522350054
+30
+146.166934958744
+11
+448.282017231929
+21
+-715.574196634022
+31
+127.790856991425
+12
+448.282018840978
+22
+-697.799916727886
+32
+148.177329336375
+13
+448.282018840978
+23
+-697.799916727886
+33
+148.177329336375
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758793128571
+20
+-728.459323997255
+30
+75.4033102397292
+11
+673.957376463676
+21
+-727.485522237732
+31
+103.531852556699
+12
+673.957368701467
+22
+-738.899252779403
+32
+79.5166578326792
+13
+673.957368701467
+23
+-738.899252779403
+33
+79.5166578326792
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957376463676
+20
+-727.485522237732
+30
+103.531852556699
+11
+696.758793128571
+21
+-728.459323997255
+31
+75.4033102397292
+12
+696.758800443365
+22
+-717.703482376537
+32
+98.03426599948
+13
+696.758800443365
+23
+-717.703482376537
+33
+98.03426599948
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884119483233
+20
+-734.56856186502
+30
+107.512580906988
+11
+624.955346864755
+21
+-723.275770827742
+31
+133.629900413365
+12
+624.955341833487
+22
+-738.830110282484
+32
+109.907610082888
+13
+624.955341833487
+23
+-738.830110282484
+33
+109.907610082888
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955346864755
+20
+-723.275770827742
+30
+133.629900413365
+11
+649.884119483233
+21
+-734.56856186502
+31
+107.512580906988
+12
+649.884124396077
+22
+-719.380332193364
+32
+130.67650856366
+13
+649.884124396077
+23
+-719.380332193364
+33
+130.67650856366
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107195414063
+20
+-761.701653732916
+30
+88.5008947532808
+11
+470.677497105752
+21
+-773.716303656482
+31
+60.6855157395589
+12
+472.107183407982
+22
+-770.747998603796
+32
+59.9634222143927
+13
+472.107183407982
+23
+-770.747998603796
+33
+59.9634222143927
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677497105752
+20
+-773.716303656482
+30
+60.6855157395589
+11
+472.107195414063
+21
+-761.701653732916
+31
+88.5008947532808
+12
+470.677509279169
+22
+-764.543874438695
+32
+89.6207321892548
+13
+470.677509279169
+23
+-764.543874438695
+33
+89.6207321892548
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267752143919
+20
+-758.636493889386
+30
+57.017103815686
+11
+432.838915479952
+21
+-763.131305674907
+31
+29.1613230247316
+12
+429.267737950976
+22
+-763.421251234373
+32
+29.1909851596944
+13
+429.267737950976
+23
+-763.421251234373
+33
+29.1909851596944
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838915479952
+20
+-763.131305674907
+30
+29.1613230247316
+11
+429.267752143919
+21
+-758.636493889386
+31
+57.017103815686
+12
+432.838929652884
+22
+-758.353294490404
+32
+56.9482088735863
+13
+432.838929652884
+23
+-758.353294490404
+33
+56.9482088735863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267778397118
+20
+-703.948312537967
+30
+154.325725145835
+11
+432.838954191733
+21
+-722.270804730449
+31
+132.867998161508
+12
+429.267776717416
+22
+-722.503058608961
+32
+133.044085628428
+13
+429.267776717416
+23
+-722.503058608961
+33
+133.044085628428
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838954191733
+20
+-722.270804730449
+30
+132.867998161508
+11
+429.267778397118
+21
+-703.948312537967
+31
+154.325725145835
+12
+432.838955869068
+22
+-703.742219504346
+32
+154.119632112235
+13
+432.838955869068
+23
+-703.742219504346
+33
+154.119632112235
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721721263973
+20
+-752.62898843986
+30
+55.5556638784362
+11
+448.281980096118
+21
+-754.771251996272
+31
+28.306117626709
+12
+445.721707495526
+22
+-757.270638693351
+32
+28.5617953495419
+13
+445.721707495526
+23
+-757.270638693351
+33
+28.5617953495419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281980096118
+20
+-754.771251996272
+30
+28.306117626709
+11
+445.721721263973
+21
+-752.62898843986
+31
+55.5556638784362
+12
+448.281993692064
+22
+-750.187755353023
+32
+54.9617894316777
+13
+448.281993692064
+23
+-750.187755353023
+33
+54.9617894316777
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222258577851
+20
+-743.526108574926
+30
+148.983037664963
+11
+455.006114828511
+21
+-723.308225016813
+31
+173.685637622731
+12
+455.006112926336
+22
+-744.320489807817
+32
+149.585310783685
+13
+455.006112926336
+23
+-744.320489807817
+33
+149.585310783685
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006114828511
+20
+-723.308225016813
+30
+173.685637622731
+11
+458.222258577851
+21
+-743.526108574926
+31
+148.983037664963
+12
+458.222260471925
+22
+-722.603322716877
+32
+172.980735322867
+13
+458.222260471925
+23
+-722.603322716877
+33
+172.980735322867
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282018840978
+20
+-697.799916727886
+30
+148.177329336375
+11
+450.471124298894
+21
+-675.695750953173
+31
+163.686018751541
+12
+450.471125884842
+22
+-695.789522350054
+32
+146.166934958744
+13
+450.471125884842
+23
+-695.789522350054
+33
+146.166934958744
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471124298894
+20
+-675.695750953173
+30
+163.686018751541
+11
+448.282018840978
+21
+-697.799916727886
+31
+148.177329336375
+12
+448.282017231929
+22
+-677.413444384727
+32
+165.951609244563
+13
+448.282017231929
+23
+-677.413444384727
+33
+165.951609244563
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107211244211
+20
+-712.762199391597
+30
+163.139611998578
+11
+470.677523524142
+21
+-734.870094172174
+31
+142.420342197022
+12
+472.107209463225
+22
+-732.435769686289
+32
+140.574720545467
+13
+472.107209463225
+23
+-732.435769686289
+33
+140.574720545467
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677523524142
+20
+-734.870094172174
+30
+142.420342197022
+11
+472.107211244211
+21
+-712.762199391597
+31
+163.139611998578
+12
+470.677525329952
+22
+-714.922321501014
+32
+165.299734107777
+13
+470.677525329952
+23
+-714.922321501014
+33
+165.299734107777
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677525329952
+20
+-714.922321501014
+30
+165.299734107777
+11
+468.840169183023
+21
+-737.123145968814
+31
+144.128529165728
+12
+470.677523524142
+22
+-734.870094172174
+32
+142.420342197022
+13
+470.677523524142
+23
+-734.870094172174
+33
+142.420342197022
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840169183023
+20
+-737.123145968814
+30
+144.128529165728
+11
+470.677525329952
+21
+-714.922321501014
+31
+165.299734107777
+12
+468.840171011807
+22
+-716.921589517517
+32
+167.299002124079
+13
+468.840171011807
+23
+-716.921589517517
+33
+167.299002124079
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317768339636
+20
+-776.152256350036
+30
+94.1944509495159
+11
+5.74034615733243e-05
+21
+-762.391004206896
+31
+123.149179321074
+12
+4.80447490185498e-05
+22
+-776.152270645783
+32
+94.1946239307526
+13
+4.80447490185498e-05
+23
+-776.152270645783
+33
+94.1946239307526
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+5.74034615733243e-05
+20
+-762.391004206896
+30
+123.149179321074
+11
+448.317768339636
+21
+-776.152256350036
+31
+94.1944509495159
+12
+448.31777769836
+22
+-762.390973409752
+32
+123.149041059795
+13
+448.31777769836
+23
+-762.390973409752
+33
+123.149041059795
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797689138238
+20
+-686.233268095701
+30
+136.610680705353
+11
+454.667769896794
+21
+-665.362499898554
+31
+150.056742450276
+12
+454.667771343765
+22
+-683.695448366281
+32
+134.072860976189
+13
+454.667771343765
+23
+-683.695448366281
+33
+134.072860976189
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667769896794
+20
+-665.362499898554
+30
+150.056742450276
+11
+454.797689138238
+21
+-686.233268095701
+31
+136.610680705353
+12
+454.797687662105
+22
+-667.530828563864
+32
+152.916709017132
+13
+454.797687662105
+23
+-667.530828563864
+33
+152.916709017132
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839477401402
+20
+-632.069903787681
+30
+196.714653208256
+11
+439.690596528004
+21
+-606.087584234742
+31
+206.744381898986
+12
+442.839466299903
+22
+-605.682549578299
+32
+205.079413127562
+13
+442.839466299903
+23
+-605.682549578299
+33
+205.079413127562
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690596528004
+20
+-606.087584234742
+30
+206.744381898986
+11
+442.839477401402
+21
+-632.069903787681
+31
+196.714653208256
+12
+439.690607723364
+22
+-632.698039036468
+32
+198.308899357094
+13
+439.690607723364
+23
+-632.698039036468
+33
+198.308899357094
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282012434797
+20
+-730.404696521621
+30
+105.17251147419
+11
+450.471124298894
+21
+-713.308606140826
+31
+126.073163560098
+12
+450.471119570638
+22
+-727.926175547966
+32
+103.779563345764
+13
+450.471119570638
+23
+-727.926175547966
+33
+103.779563345764
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471124298894
+20
+-713.308606140826
+30
+126.073163560098
+11
+448.282012434797
+21
+-730.404696521621
+31
+105.17251147419
+12
+448.282017231929
+22
+-715.574196634022
+32
+127.790856991425
+13
+448.282017231929
+23
+-715.574196634022
+33
+127.790856991425
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690582495428
+20
+-578.575873947693
+30
+211.475076092305
+11
+436.335569590044
+21
+-549.135217804424
+31
+213.722949367545
+12
+439.690564957562
+22
+-549.114088023756
+32
+212.46522637891
+13
+439.690564957562
+23
+-549.114088023756
+33
+212.46522637891
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335569590044
+20
+-549.135217804424
+30
+213.722949367545
+11
+439.690582495428
+21
+-578.575873947693
+31
+211.475076092305
+12
+436.335587191701
+22
+-578.704166932226
+32
+212.72919754513
+13
+436.335587191701
+23
+-578.704166932226
+33
+212.72919754513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471111788281
+20
+-629.324619346527
+30
+189.746945529741
+11
+452.246991021541
+21
+-603.175034087969
+31
+194.771794391524
+12
+452.247001541956
+22
+-628.181198889296
+32
+186.844869872835
+13
+452.247001541956
+23
+-628.181198889296
+33
+186.844869872835
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246991021541
+20
+-603.175034087969
+30
+194.771794391524
+11
+450.471111788281
+21
+-629.324619346527
+31
+189.746945529741
+12
+450.471101097006
+22
+-603.912334485117
+32
+197.802609624747
+13
+450.471101097006
+23
+-603.912334485117
+33
+197.802609624747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957344671825
+20
+-751.440053094339
+30
+27.9652257853831
+11
+649.884100288402
+21
+-754.828812255533
+31
+56.0907148781112
+12
+649.884086364505
+22
+-759.522868440055
+32
+28.7920756889693
+13
+649.884086364505
+23
+-759.522868440055
+33
+28.7920756889693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884100288402
+20
+-754.828812255533
+30
+56.0907148781112
+11
+673.957344671825
+21
+-751.440053094339
+31
+27.9652257853831
+12
+673.957358037872
+22
+-746.934060776874
+32
+54.170165314894
+13
+673.957358037872
+23
+-746.934060776874
+33
+54.170165314894
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894030194972
+20
+-548.526532054241
+30
+177.494989005398
+11
+736.99765201229
+21
+-186.86272
+31
+160.753391204502
+12
+717.894030194972
+22
+-186.86272
+32
+177.494989005399
+13
+717.894030194972
+23
+-186.86272
+33
+177.494989005399
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.99765201229
+20
+-186.86272
+30
+160.753391204502
+11
+717.894030194972
+21
+-548.526532054241
+31
+177.494989005398
+12
+736.99765201229
+22
+-548.245280356442
+32
+160.753391204502
+13
+736.99765201229
+23
+-548.245280356442
+33
+160.753391204502
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133289350819
+20
+-623.054826905935
+30
+173.833938065877
+11
+454.667748728094
+21
+-599.869484727166
+31
+181.183686716704
+12
+602.133279596418
+22
+-599.869415774734
+32
+181.183685835358
+13
+602.133279596418
+23
+-599.869415774734
+33
+181.183685835358
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667748728094
+20
+-599.869484727166
+30
+181.183686716704
+11
+602.133289350819
+21
+-623.054826905935
+31
+173.833938065877
+12
+454.667758482489
+22
+-623.054883804802
+32
+173.83394276819
+13
+454.667758482489
+23
+-623.054883804802
+33
+173.83394276819
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758804887548
+20
+-703.964135051352
+30
+118.98846898236
+11
+673.957382761532
+21
+-695.432070757716
+31
+145.809483366442
+12
+673.957381179691
+22
+-712.905797682657
+32
+125.767734693656
+13
+673.957381179691
+23
+-712.905797682657
+33
+125.767734693656
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957382761532
+20
+-695.432070757716
+30
+145.809483366442
+11
+696.758804887548
+21
+-703.964135051352
+31
+118.98846898236
+12
+696.758806378212
+22
+-687.497596031337
+32
+137.875008640862
+13
+696.758806378212
+23
+-687.497596031337
+33
+137.875008640862
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247001541956
+20
+-736.467457257336
+30
+78.5586114938894
+11
+453.575566723046
+21
+-722.299342389133
+31
+100.617239704551
+12
+453.575559198051
+22
+-733.364267924859
+32
+77.3359522782304
+13
+453.575559198051
+23
+-733.364267924859
+33
+77.3359522782304
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575566723046
+20
+-722.299342389133
+30
+100.617239704551
+11
+452.247001541956
+21
+-736.467457257336
+31
+78.5586114938894
+12
+452.247009199941
+22
+-725.20697903804
+32
+102.251353856666
+13
+452.247009199941
+23
+-725.20697903804
+33
+102.251353856666
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957376463676
+20
+-727.485522237732
+30
+103.531852556699
+11
+649.884124396077
+21
+-719.380332193364
+31
+130.67650856366
+12
+649.884119483233
+22
+-734.56856186502
+32
+107.512580906988
+13
+649.884119483233
+23
+-734.56856186502
+33
+107.512580906988
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884124396077
+20
+-719.380332193364
+30
+130.67650856366
+11
+673.957376463676
+21
+-727.485522237732
+31
+103.531852556699
+12
+673.957381179691
+22
+-712.905797682657
+32
+125.767734693656
+13
+673.957381179691
+23
+-712.905797682657
+33
+125.767734693656
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221360398304
+20
+-645.663323591295
+30
+124.074113264079
+11
+684.332892871929
+21
+-634.846784199308
+31
+145.28747843271
+12
+702.22135687427
+22
+-629.047597461153
+32
+134.968788313225
+13
+702.22135687427
+23
+-629.047597461153
+33
+134.968788313225
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332892871929
+20
+-634.846784199308
+30
+145.28747843271
+11
+702.221360398304
+21
+-645.663323591295
+31
+124.074113264079
+12
+684.332896682708
+22
+-652.814503888805
+32
+133.506322083721
+13
+684.332896682708
+23
+-652.814503888805
+33
+133.506322083721
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636263548619
+20
+-662.459295238253
+30
+146.227531781659
+11
+623.546362358205
+21
+-644.548798426367
+31
+162.550587374486
+12
+644.636259351108
+22
+-642.668144691721
+32
+159.204283586808
+13
+644.636259351108
+23
+-642.668144691721
+33
+159.204283586808
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546362358205
+20
+-644.548798426367
+30
+162.550587374486
+11
+644.636263548619
+21
+-662.459295238253
+31
+146.227531781659
+12
+623.546366648706
+22
+-664.778393037384
+32
+149.286354566558
+13
+623.546366648706
+23
+-664.778393037384
+33
+149.286354566558
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602150844536
+20
+-740.196470143783
+30
+110.675521501907
+11
+473.71777732158
+21
+-724.524762147558
+31
+134.576865377446
+12
+473.717772252345
+22
+-740.196478791399
+32
+110.675560324675
+13
+473.717772252345
+23
+-740.196478791399
+33
+110.675560324675
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71777732158
+20
+-724.524762147558
+30
+134.576865377446
+11
+599.602150844536
+21
+-740.196470143783
+31
+110.675521501907
+12
+599.602155913773
+22
+-724.524747581215
+32
+134.576835581469
+13
+599.602155913773
+23
+-724.524747581215
+33
+134.576835581469
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642034971754
+20
+-769.517333598178
+30
+23.3578378654237
+11
+473.101722427237
+21
+-772.614333460954
+31
+30.1313729498036
+12
+473.101718395121
+22
+-772.841978102158
+32
+23.3578378645206
+13
+473.101718395121
+23
+-772.841978102158
+33
+23.3578378645206
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101722427237
+20
+-772.614333460954
+30
+30.1313729498036
+11
+473.642034971754
+21
+-769.517333598178
+31
+23.3578378654237
+12
+473.642038802113
+22
+-769.301079755069
+32
+29.7924413152051
+13
+473.642038802113
+23
+-769.301079755069
+33
+29.7924413152051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267776717416
+20
+-682.666673022429
+30
+172.880471218973
+11
+0.016298390231306
+21
+-659.055291474171
+31
+188.362205788973
+12
+429.267771709642
+22
+-659.055159092928
+32
+188.362176301584
+13
+429.267771709642
+23
+-659.055159092928
+33
+188.362176301584
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.016298390231306
+20
+-659.055291474171
+30
+188.362205788973
+11
+429.267776717416
+21
+-682.666673022429
+31
+172.880471218973
+12
+0.016303397997907
+22
+-682.666774623337
+32
+172.880520888553
+13
+0.016303397997907
+23
+-682.666774623337
+33
+172.880520888553
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838954191733
+20
+-682.490585555484
+30
+172.648217340479
+11
+429.267771709642
+21
+-659.055159092928
+31
+188.362176301584
+12
+432.838949191021
+22
+-658.912362146436
+32
+188.108094342889
+13
+432.838949191021
+23
+-658.912362146436
+33
+188.108094342889
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267771709642
+20
+-659.055159092928
+30
+188.362176301584
+11
+432.838954191733
+21
+-682.490585555484
+31
+172.648217340479
+12
+429.267776717416
+22
+-682.666673022429
+32
+172.880471218973
+13
+429.267776717416
+23
+-682.666673022429
+33
+172.880471218973
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630441768332
+20
+-695.289054806558
+30
+189.529056864572
+11
+464.090791712392
+21
+-720.287768351753
+31
+170.665180957976
+12
+466.6304436178
+22
+-718.721597772832
+32
+169.099010379212
+13
+466.6304436178
+23
+-718.721597772832
+33
+169.099010379212
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090791712392
+20
+-720.287768351753
+30
+170.665180957976
+11
+466.630441768332
+21
+-695.289054806558
+31
+189.529056864572
+12
+464.090789844927
+22
+-696.627200742591
+32
+191.294034464012
+13
+464.090789844927
+23
+-696.627200742591
+33
+191.294034464012
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317783384355
+20
+-699.580940660874
+30
+195.189933989489
+11
+451.68334645801
+21
+-723.691181151156
+31
+174.068593757036
+12
+451.683344551435
+22
+-699.535098538027
+32
+195.129470137406
+13
+451.683344551435
+23
+-699.535098538027
+33
+195.129470137406
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.68334645801
+20
+-723.691181151156
+30
+174.068593757036
+11
+448.317783384355
+21
+-699.580940660874
+31
+195.189933989489
+12
+448.317785291547
+22
+-723.744834584347
+32
+174.122247190222
+13
+448.317785291547
+23
+-723.744834584347
+33
+174.122247190222
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838940960221
+20
+-633.447412164356
+30
+200.210851816573
+11
+429.267752143919
+21
+-606.639691213326
+31
+209.013906507055
+12
+432.838929652884
+22
+-606.570796271198
+32
+208.73070710808
+13
+432.838929652884
+23
+-606.570796271198
+33
+208.73070710808
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267752143919
+20
+-606.639691213326
+30
+209.013906507055
+11
+432.838940960221
+21
+-633.447412164356
+31
+200.210851816573
+12
+429.267763467221
+22
+-633.554254686993
+32
+200.482021877632
+13
+429.267763467221
+23
+-633.554254686993
+33
+200.482021877632
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683316658874
+20
+-613.239395048328
+30
+236.143333156642
+11
+455.006097921195
+21
+-643.590691959854
+31
+225.95519307716
+12
+455.006085098156
+22
+-613.111377811381
+32
+235.617099433291
+13
+455.006085098156
+23
+-613.111377811381
+33
+235.617099433291
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006097921195
+20
+-643.590691959854
+30
+225.95519307716
+11
+451.683316658874
+21
+-613.239395048328
+31
+236.143333156642
+12
+451.683329511579
+22
+-643.789222672817
+32
+226.45907411243
+13
+451.683329511579
+23
+-643.789222672817
+33
+226.45907411243
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.179983602711226
+20
+-280.294079999999
+30
+2125.50255258978
+11
+46.8683973137003
+21
+-186.862719999999
+31
+2125.50255258978
+12
+0.179983602711646
+22
+-186.862719999999
+32
+2125.50255258978
+13
+0.179983602711646
+23
+-186.862719999999
+33
+2125.50255258978
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973137003
+20
+-186.862719999999
+30
+2125.50255258978
+11
+0.179983602711226
+21
+-280.294079999999
+31
+2125.50255258978
+12
+46.8683973136999
+22
+-280.294079999999
+32
+2125.50255258978
+13
+46.8683973136999
+23
+-280.294079999999
+33
+2125.50255258978
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221360398304
+20
+-645.663323591295
+30
+124.074113264079
+11
+718.363103364091
+21
+-622.121886696301
+31
+122.645633187677
+12
+718.363106545679
+22
+-637.12298630735
+32
+112.809643814588
+13
+718.363106545679
+23
+-637.12298630735
+33
+112.809643814588
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363103364091
+20
+-622.121886696301
+30
+122.645633187677
+11
+702.221360398304
+21
+-645.663323591295
+31
+124.074113264079
+12
+702.22135687427
+22
+-629.047597461153
+32
+134.968788313225
+13
+702.22135687427
+23
+-629.047597461153
+33
+134.968788313225
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840122392167
+20
+-781.931785179335
+30
+23.3578378611765
+11
+466.630399083827
+21
+-784.205377362117
+31
+31.3170895287116
+12
+466.630394345883
+22
+-784.472871509203
+32
+23.3578378599218
+13
+466.630394345883
+23
+-784.472871509203
+33
+23.3578378599218
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630399083827
+20
+-784.205377362117
+30
+31.3170895287116
+11
+468.840122392167
+21
+-781.931785179335
+31
+23.3578378611765
+12
+468.840126975903
+22
+-781.672997259934
+32
+31.0580369189494
+13
+468.840126975903
+23
+-781.672997259934
+33
+31.0580369189494
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575572828439
+20
+-691.225448319662
+30
+141.602860928812
+11
+454.431275216977
+21
+-669.689208643299
+31
+155.763553572255
+12
+454.431276722139
+22
+-688.759443912117
+32
+139.136856521515
+13
+454.431276722139
+23
+-688.759443912117
+33
+139.136856521515
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431275216977
+20
+-669.689208643299
+30
+155.763553572255
+11
+453.575572828439
+21
+-691.225448319662
+31
+141.602860928812
+12
+453.575571294939
+22
+-671.796177947369
+32
+158.542588616663
+13
+453.575571294939
+23
+-671.796177947369
+33
+158.542588616663
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006069025402
+20
+-790.658170470477
+30
+31.9771884161607
+11
+451.683316658874
+21
+-785.765920539638
+31
+63.616807647956
+12
+451.683300548936
+22
+-791.196939781596
+32
+32.0323039932388
+13
+451.683300548936
+23
+-791.196939781596
+33
+32.0323039932388
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683316658874
+20
+-785.765920539638
+30
+63.616807647956
+11
+455.006069025402
+21
+-790.658170470477
+31
+31.9771884161607
+12
+455.006085098156
+22
+-785.239686816274
+32
+63.4887904110616
+13
+455.006085098156
+23
+-785.239686816274
+33
+63.4887904110616
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466065703719
+20
+-627.348021252322
+30
+99.9167335104564
+11
+744.27505599199
+21
+-605.41026540619
+31
+92.9100649699753
+12
+744.27505834726
+22
+-616.515297047424
+32
+85.6286672029373
+13
+744.27505834726
+23
+-616.515297047424
+33
+85.6286672029373
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505599199
+20
+-605.41026540619
+30
+92.9100649699753
+11
+732.466065703719
+21
+-627.348021252322
+31
+99.9167335104564
+12
+732.466062914084
+22
+-614.194966001222
+32
+108.540988733599
+13
+732.466062914084
+23
+-614.194966001222
+33
+108.540988733599
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269972243544
+20
+-612.537006285544
+30
+233.256044045395
+11
+464.090775113584
+21
+-642.024842985963
+31
+221.980972610863
+12
+464.090762524528
+22
+-612.101685596006
+32
+231.466577935614
+13
+464.090762524528
+23
+-612.101685596006
+33
+231.466577935614
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090775113584
+20
+-642.024842985963
+30
+221.980972610863
+11
+461.269972243544
+21
+-612.537006285544
+31
+233.256044045395
+12
+461.26998493348
+22
+-642.699946567149
+32
+223.694427829008
+13
+461.26998493348
+23
+-642.699946567149
+33
+223.694427829008
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546366648706
+20
+-664.778393037384
+30
+149.286354566558
+11
+602.13329645121
+21
+-645.022448764174
+31
+163.393359945326
+12
+623.546362358205
+22
+-644.548798426367
+32
+162.550587374486
+13
+623.546362358205
+23
+-644.548798426367
+33
+162.550587374486
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13329645121
+20
+-645.022448764174
+30
+163.393359945326
+11
+623.546366648706
+21
+-664.778393037384
+31
+149.286354566558
+12
+602.13330076513
+22
+-665.362464994464
+32
+150.056725386733
+13
+602.13330076513
+23
+-665.362464994464
+33
+150.056725386733
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0163050776986444
+20
+-703.948386395801
+30
+154.325799003669
+11
+429.267776717416
+21
+-722.503058608961
+31
+133.044085628428
+12
+0.016303397997907
+22
+-722.503108278541
+32
+133.044187229337
+13
+0.016303397997907
+23
+-722.503108278541
+33
+133.044187229337
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267776717416
+20
+-722.503058608961
+30
+133.044085628428
+11
+0.0163050776986444
+21
+-703.948386395801
+31
+154.325799003669
+12
+429.267778397118
+22
+-703.948312537967
+32
+154.325725145835
+13
+429.267778397118
+23
+-703.948312537967
+33
+154.325725145835
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721745102502
+20
+-678.931345516719
+30
+167.953679054935
+11
+442.839485482368
+21
+-657.071290040049
+31
+184.832214227177
+12
+445.721740244506
+22
+-656.026027291755
+32
+182.972342518915
+13
+445.721740244506
+23
+-656.026027291755
+33
+182.972342518915
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839485482368
+20
+-657.071290040049
+30
+184.832214227177
+11
+445.721745102502
+21
+-678.931345516719
+31
+167.953679054935
+12
+442.839490392048
+22
+-680.220295673638
+32
+169.6537686923
+13
+442.839490392048
+23
+-680.220295673638
+33
+169.6537686923
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090789844927
+20
+-740.916621855406
+30
+147.004613346736
+11
+461.270001665299
+21
+-721.590015329221
+31
+171.967427935313
+12
+461.269999782869
+22
+-742.384173786494
+32
+148.117261370797
+13
+461.269999782869
+23
+-742.384173786494
+33
+148.117261370797
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.270001665299
+20
+-721.590015329221
+30
+171.967427935313
+11
+464.090789844927
+21
+-740.916621855406
+31
+147.004613346736
+12
+464.090791712392
+22
+-720.287768351753
+32
+170.665180957976
+13
+464.090791712392
+23
+-720.287768351753
+33
+170.665180957976
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269999782869
+20
+-742.384173786494
+30
+148.117261370797
+11
+458.222260471925
+21
+-722.603322716877
+31
+172.980735322867
+12
+458.222258577851
+22
+-743.526108574926
+32
+148.983037664963
+13
+458.222258577851
+23
+-743.526108574926
+33
+148.983037664963
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222260471925
+20
+-722.603322716877
+30
+172.980735322867
+11
+461.269999782869
+21
+-742.384173786494
+31
+148.117261370797
+12
+461.270001665299
+22
+-721.590015329221
+32
+171.967427935313
+13
+461.270001665299
+23
+-721.590015329221
+33
+171.967427935313
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683281480069
+20
+-549.621181308374
+30
+242.650939792116
+11
+455.00604998394
+21
+-186.86272
+31
+242.110623248711
+12
+451.683281480069
+22
+-186.86272
+32
+242.650939792116
+13
+451.683281480069
+23
+-186.86272
+33
+242.650939792116
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.00604998394
+20
+-186.86272
+30
+242.110623248711
+11
+451.683281480069
+21
+-549.621181308374
+31
+242.650939792116
+12
+455.00604998394
+22
+-549.612103415805
+32
+242.110623248711
+13
+455.00604998394
+23
+-549.612103415805
+33
+242.110623248711
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997696774917
+20
+-665.645302851503
+30
+116.022715463229
+11
+717.894077714131
+21
+-692.709977485149
+31
+110.455949073024
+12
+736.997695535365
+22
+-679.337949441333
+32
+100.317732616843
+13
+736.997695535365
+23
+-679.337949441333
+33
+100.317732616843
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894077714131
+20
+-692.709977485149
+30
+110.455949073024
+11
+736.997696774917
+21
+-665.645302851503
+31
+116.022715463229
+12
+717.894079090038
+22
+-677.51110607242
+32
+127.888518682951
+13
+717.894079090038
+23
+-677.51110607242
+33
+127.888518682951
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894077714131
+20
+-692.709977485149
+30
+110.455949073024
+11
+696.758806378212
+21
+-687.497596031337
+31
+137.875008640862
+12
+696.758804887548
+22
+-703.964135051352
+32
+118.98846898236
+13
+696.758804887548
+23
+-703.964135051352
+33
+118.98846898236
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758806378212
+20
+-687.497596031337
+30
+137.875008640862
+11
+717.894077714131
+21
+-692.709977485149
+31
+110.455949073024
+12
+717.894079090038
+22
+-677.51110607242
+32
+127.888518682951
+13
+717.894079090038
+23
+-677.51110607242
+33
+127.888518682951
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829316563608
+20
+-668.759576574313
+30
+23.3578379800722
+11
+753.739272918395
+21
+-687.397248351576
+31
+39.6867423818656
+12
+753.739264589701
+22
+-690.205036468984
+32
+23.3578379709152
+13
+753.739264589701
+23
+-690.205036468984
+33
+23.3578379709152
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739272918395
+20
+-687.397248351576
+30
+39.6867423818656
+11
+767.829316563608
+21
+-668.759576574313
+31
+23.3578379800722
+12
+767.82932233817
+22
+-666.812843070624
+32
+34.6792140832892
+13
+767.82932233817
+23
+-666.812843070624
+33
+34.6792140832892
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839492038848
+20
+-701.085065061495
+30
+151.462477669651
+11
+439.690620823844
+21
+-681.255534297249
+31
+171.019219664594
+12
+442.839490392048
+22
+-680.220295673638
+32
+169.6537686923
+13
+442.839490392048
+23
+-680.220295673638
+33
+169.6537686923
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690620823844
+20
+-681.255534297249
+30
+171.019219664594
+11
+442.839492038848
+21
+-701.085065061495
+31
+151.462477669651
+12
+439.690622484567
+22
+-702.296711761968
+32
+152.674124370004
+13
+439.690622484567
+23
+-702.296711761968
+33
+152.674124370004
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222230868175
+20
+-784.271054681722
+30
+63.2531519626526
+11
+455.006097921195
+21
+-775.577780463213
+31
+93.968104560508
+12
+455.006085098156
+22
+-785.239686816274
+32
+63.4887904110616
+13
+455.006085098156
+23
+-785.239686816274
+33
+63.4887904110616
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006097921195
+20
+-775.577780463213
+30
+93.968104560508
+11
+458.222230868175
+21
+-784.271054681722
+31
+63.2531519626526
+12
+458.222243636608
+22
+-774.650292730724
+32
+93.6026725589312
+13
+458.222243636608
+23
+-774.650292730724
+33
+93.6026725589312
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006085098156
+20
+-785.239686816274
+30
+63.4887904110616
+11
+451.683329511579
+21
+-776.081661498503
+31
+94.1666352734205
+12
+451.683316658874
+22
+-785.765920539638
+32
+63.616807647956
+13
+451.683316658874
+23
+-785.765920539638
+33
+63.616807647956
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683329511579
+20
+-776.081661498503
+30
+94.1666352734205
+11
+455.006085098156
+21
+-785.239686816274
+31
+63.4887904110616
+12
+455.006097921195
+22
+-775.577780463213
+32
+93.968104560508
+13
+455.006097921195
+23
+-775.577780463213
+33
+93.968104560508
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681614
+20
+-608.45291709122
+30
+-4.11489509133389e-11
+11
+838.782876772251
+21
+-630.31101453706
+31
+23.3578380792528
+12
+838.782876772249
+22
+-630.311014537056
+32
+-1.18393472803291e-10
+13
+838.782876772249
+23
+-630.311014537056
+33
+-1.18393472803291e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+838.782876772251
+20
+-630.31101453706
+30
+23.3578380792528
+11
+843.130722681614
+21
+-608.45291709122
+31
+-4.11489509133389e-11
+12
+843.130722681617
+22
+-608.452917091224
+32
+23.3578380793307
+13
+843.130722681617
+23
+-608.452917091224
+33
+23.3578380793307
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+772.221088848008
+20
+-745.599413064465
+30
+-2.18378204408509e-10
+11
+746.929122901678
+21
+-767.779871902217
+31
+23.3578380791593
+12
+746.929122901675
+22
+-767.779871902213
+32
+-2.12061479487602e-10
+13
+746.929122901675
+23
+-767.779871902213
+33
+-2.12061479487602e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901678
+20
+-767.779871902217
+30
+23.3578380791593
+11
+772.221088848008
+21
+-745.599413064465
+31
+-2.18378204408509e-10
+12
+772.221088848011
+22
+-745.599413064469
+32
+23.3578380791531
+13
+772.221088848011
+23
+-745.599413064469
+33
+23.3578380791531
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.22135687427
+20
+-684.591375697813
+30
+79.4250100709702
+11
+718.363106545679
+21
+-662.432231199989
+31
+87.5003989193992
+12
+718.363103364091
+22
+-672.268220571567
+32
+72.49929930736
+13
+718.363103364091
+23
+-672.268220571567
+33
+72.49929930736
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363106545679
+20
+-662.432231199989
+30
+87.5003989193992
+11
+702.22135687427
+21
+-684.591375697813
+31
+79.4250100709702
+12
+702.221360398304
+22
+-673.696700650341
+32
+96.0407362022104
+13
+702.221360398304
+23
+-673.696700650341
+33
+96.0407362022104
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839466299903
+20
+-754.702000509797
+30
+56.0599621810555
+11
+445.721707495526
+21
+-757.270638693351
+31
+28.5617953495419
+12
+442.839452384975
+22
+-759.393032819931
+32
+28.7789085623947
+13
+442.839452384975
+23
+-759.393032819931
+33
+28.7789085623947
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721707495526
+20
+-757.270638693351
+30
+28.5617953495419
+11
+442.839466299903
+21
+-754.702000509797
+31
+56.0599621810555
+12
+445.721721263973
+22
+-752.62898843986
+32
+55.5556638784362
+13
+445.721721263973
+23
+-752.62898843986
+33
+55.5556638784362
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.545902396357
+20
+-186.86272
+30
+3.60955709766131e-13
+11
+847.54590239636
+21
+-563.749226612819
+31
+23.3578380793719
+12
+847.545902396357
+22
+-563.749226612815
+32
+1.80477854883065e-13
+13
+847.545902396357
+23
+-563.749226612815
+33
+1.80477854883065e-13
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.54590239636
+20
+-563.749226612819
+30
+23.3578380793719
+11
+847.545902396357
+21
+-186.86272
+31
+3.60955709766131e-13
+12
+847.545902396362
+22
+56.1856515498016
+32
+1.46187062455283e-11
+13
+847.545902396362
+23
+56.1856515498016
+33
+1.46187062455283e-11
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.54590239636
+20
+-563.749226612819
+30
+23.3578380793719
+11
+847.545902396362
+21
+56.1856515498016
+31
+1.46187062455283e-11
+12
+847.545902396365
+22
+56.1856515497976
+32
+23.3578380793863
+13
+847.545902396365
+23
+56.1856515497976
+33
+23.3578380793863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281980096118
+20
+-754.771251996272
+30
+28.306117626709
+11
+450.471084922909
+21
+-752.099463345238
+31
+23.3578378619863
+12
+448.28197715053
+22
+-754.937553544539
+32
+23.3578378606726
+13
+448.28197715053
+23
+-754.937553544539
+33
+23.3578378606726
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471084922909
+20
+-752.099463345238
+30
+23.3578378619863
+11
+448.281980096118
+21
+-754.771251996272
+31
+28.306117626709
+12
+450.471087696265
+22
+-751.942885609203
+32
+28.0167869283821
+13
+450.471087696265
+23
+-751.942885609203
+33
+28.0167869283821
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739249813186
+20
+-186.86272
+30
+141.649769387185
+11
+736.99765201229
+21
+-548.245280356442
+31
+160.753391204502
+12
+753.739249813186
+22
+-547.924349168088
+32
+141.649769387184
+13
+753.739249813186
+23
+-547.924349168088
+33
+141.649769387184
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.99765201229
+20
+-548.245280356442
+30
+160.753391204502
+11
+753.739249813186
+21
+-186.86272
+31
+141.649769387185
+12
+736.99765201229
+22
+-186.86272
+32
+160.753391204502
+13
+736.99765201229
+23
+-186.86272
+33
+160.753391204502
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797687662105
+20
+-667.530828563864
+30
+152.916709017132
+11
+454.667765582876
+21
+-645.022494242574
+31
+163.393370075456
+12
+454.667769896794
+22
+-665.362499898554
+32
+150.056742450276
+13
+454.667769896794
+23
+-665.362499898554
+33
+150.056742450276
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667765582876
+20
+-645.022494242574
+30
+163.393370075456
+11
+454.797687662105
+21
+-667.530828563864
+31
+152.916709017132
+12
+454.797683261242
+22
+-646.78088064753
+32
+166.522129452237
+13
+454.797683261242
+23
+-646.78088064753
+33
+166.522129452237
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221318561055
+20
+-548.126641526877
+30
+153.690618001708
+11
+684.332852026746
+21
+-186.86272
+31
+165.499614915081
+12
+702.221318561055
+22
+-186.86272
+32
+153.690618001708
+13
+702.221318561055
+23
+-186.86272
+33
+153.690618001708
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332852026746
+20
+-186.86272
+30
+165.499614915081
+11
+702.221318561055
+21
+-548.126641526877
+31
+153.690618001708
+12
+684.332852026746
+22
+-548.325028948197
+32
+165.499614915081
+13
+684.332852026746
+23
+-548.325028948197
+33
+165.499614915081
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838954191733
+20
+-722.270804730449
+30
+132.867998161508
+11
+436.335620774804
+21
+-737.047580997407
+31
+108.905866027708
+12
+432.838949191021
+22
+-737.730681730485
+32
+109.289774750901
+13
+432.838949191021
+23
+-737.730681730485
+33
+109.289774750901
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335620774804
+20
+-737.047580997407
+30
+108.905866027708
+11
+432.838954191733
+21
+-722.270804730449
+31
+132.867998161508
+12
+436.335625756533
+22
+-721.646389233184
+32
+132.394587199654
+13
+436.335625756533
+23
+-721.646389233184
+33
+132.394587199654
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.26772029492
+20
+-549.153237717187
+30
+214.795486963908
+11
+0.0162469754877819
+21
+-186.86272
+31
+214.795486963908
+12
+429.26772029492
+22
+-186.86272
+32
+214.795486963908
+13
+429.26772029492
+23
+-186.86272
+33
+214.795486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162469754877819
+20
+-186.86272
+30
+214.795486963908
+11
+429.26772029492
+21
+-549.153237717187
+31
+214.795486963908
+12
+0.0162469754877819
+22
+-549.153365442471
+32
+214.795486963908
+13
+0.0162469754877819
+23
+-549.153365442471
+33
+214.795486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690622484567
+20
+-702.296711761968
+30
+152.674124370004
+11
+436.335625756533
+21
+-682.017174593568
+31
+172.023801843262
+12
+439.690620823844
+22
+-681.255534297249
+32
+171.019219664594
+13
+439.690620823844
+23
+-681.255534297249
+33
+171.019219664594
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335625756533
+20
+-682.017174593568
+30
+172.023801843262
+11
+439.690622484567
+21
+-702.296711761968
+31
+152.674124370004
+12
+436.335627427501
+22
+-703.188137968552
+32
+153.565550576497
+13
+436.335627427501
+23
+-703.188137968552
+33
+153.565550576497
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957368701467
+20
+-738.899252779403
+30
+79.5166578326792
+11
+649.884119483233
+21
+-734.56856186502
+31
+107.512580906988
+12
+649.884111397057
+22
+-746.458660352302
+32
+82.4950785735168
+13
+649.884111397057
+23
+-746.458660352302
+33
+82.4950785735168
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884119483233
+20
+-734.56856186502
+30
+107.512580906988
+11
+673.957368701467
+21
+-738.899252779403
+31
+79.5166578326792
+12
+673.957376463676
+22
+-727.485522237732
+32
+103.531852556699
+13
+673.957376463676
+23
+-727.485522237732
+33
+103.531852556699
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275052115393
+20
+-648.23289118406
+30
+43.7940230954864
+11
+753.576410189591
+21
+-625.658275857869
+31
+46.3041482621511
+12
+753.576407084801
+22
+-630.223630997654
+32
+36.698358790781
+13
+753.576407084801
+23
+-630.223630997654
+33
+36.698358790781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576410189591
+20
+-625.658275857869
+30
+46.3041482621511
+11
+744.275052115393
+21
+-648.23289118406
+31
+43.7940230954864
+12
+744.27505599199
+22
+-642.532652352182
+32
+55.7876780202442
+13
+744.27505599199
+23
+-642.532652352182
+33
+55.7876780202442
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269956337624
+20
+-788.240871473567
+30
+31.7299058573872
+11
+458.222230868175
+21
+-784.271054681722
+31
+63.2531519626526
+12
+458.222214863865
+22
+-789.666464186592
+32
+31.8757394304439
+13
+458.222214863865
+23
+-789.666464186592
+33
+31.8757394304439
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222230868175
+20
+-784.271054681722
+30
+63.2531519626526
+11
+461.269956337624
+21
+-788.240871473567
+31
+31.7299058573872
+12
+461.269972243544
+22
+-782.87863142832
+32
+62.9144188854628
+13
+461.269972243544
+23
+-782.87863142832
+33
+62.9144188854628
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130182819951
+20
+-621.196954326058
+30
+23.3578379966277
+11
+779.024158535186
+21
+-644.605714246329
+31
+29.2769308468913
+12
+779.024155516104
+22
+-645.623514226953
+32
+23.3578379886926
+13
+779.024155516104
+23
+-645.623514226953
+33
+23.3578379886926
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024158535186
+20
+-644.605714246329
+30
+29.2769308468913
+11
+787.130182819951
+21
+-621.196954326058
+31
+23.3578379966277
+12
+787.130182929858
+22
+-621.15990220955
+32
+23.5733173858747
+13
+787.130182929858
+23
+-621.15990220955
+33
+23.5733173858747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024155516104
+20
+-645.623514226953
+30
+23.3578379886926
+11
+767.82932233817
+21
+-666.812843070624
+31
+34.6792140832892
+12
+767.829316563608
+22
+-668.759576574313
+32
+23.3578379800722
+13
+767.829316563608
+23
+-668.759576574313
+33
+23.3578379800722
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.82932233817
+20
+-666.812843070624
+30
+34.6792140832892
+11
+779.024155516104
+21
+-645.623514226953
+31
+23.3578379886926
+12
+779.024158535186
+22
+-644.605714246329
+32
+29.2769308468913
+13
+779.024158535186
+23
+-644.605714246329
+33
+29.2769308468913
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.26998493348
+20
+-773.317015214971
+30
+93.0773591680305
+11
+458.222252930963
+21
+-760.983658189012
+31
+122.358116586891
+12
+458.222243636608
+22
+-774.650292730724
+32
+93.6026725589312
+13
+458.222243636608
+23
+-774.650292730724
+33
+93.6026725589312
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222252930963
+20
+-760.983658189012
+30
+122.358116586891
+11
+461.26998493348
+21
+-773.317015214971
+31
+93.0773591680305
+12
+461.269994170696
+22
+-759.734399297279
+32
+121.656022816523
+13
+461.269994170696
+23
+-759.734399297279
+33
+121.656022816523
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101764681482
+20
+-710.482718842918
+30
+160.860131450129
+11
+472.107209463225
+21
+-732.435769686289
+31
+140.574720545467
+12
+473.101762926689
+22
+-729.866935555387
+32
+138.627118353444
+13
+473.101762926689
+23
+-729.866935555387
+33
+138.627118353444
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107209463225
+20
+-732.435769686289
+30
+140.574720545467
+11
+473.101764681482
+21
+-710.482718842918
+31
+160.860131450129
+12
+472.107211244211
+22
+-712.762199391597
+32
+163.139611998578
+13
+472.107211244211
+23
+-712.762199391597
+33
+163.139611998578
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683300548936
+20
+-791.196939781596
+30
+32.0323039932388
+11
+448.317755482775
+21
+-785.839646973143
+31
+63.6347444795237
+12
+448.317739367628
+22
+-791.272422434329
+32
+32.0400273988949
+13
+448.317739367628
+23
+-791.272422434329
+33
+32.0400273988949
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317755482775
+20
+-785.839646973143
+30
+63.6347444795237
+11
+451.683300548936
+21
+-791.196939781596
+31
+32.0323039932388
+12
+451.683316658874
+22
+-785.765920539638
+32
+63.616807647956
+13
+451.683316658874
+23
+-785.765920539638
+33
+63.616807647956
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006112926336
+20
+-744.320489807817
+30
+149.585310783685
+11
+451.68334645801
+21
+-723.691181151156
+31
+174.068593757036
+12
+451.683344551435
+22
+-744.752057529093
+32
+149.912511141786
+13
+451.683344551435
+23
+-744.752057529093
+33
+149.912511141786
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.68334645801
+20
+-723.691181151156
+30
+174.068593757036
+11
+455.006112926336
+21
+-744.320489807817
+31
+149.585310783685
+12
+455.006114828511
+22
+-723.308225016813
+32
+173.685637622731
+13
+455.006114828511
+23
+-723.308225016813
+33
+173.685637622731
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683344551435
+20
+-744.752057529093
+30
+149.912511141786
+11
+448.317785291547
+21
+-723.744834584347
+31
+174.122247190222
+12
+448.317783384355
+22
+-744.812521381181
+32
+149.958353264626
+13
+448.317783384355
+23
+-744.812521381181
+33
+149.958353264626
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317785291547
+20
+-723.744834584347
+30
+174.122247190222
+11
+451.683344551435
+21
+-744.752057529093
+31
+149.912511141786
+12
+451.68334645801
+22
+-723.691181151156
+32
+174.068593757036
+13
+451.68334645801
+23
+-723.691181151156
+33
+174.068593757036
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317783384355
+20
+-744.812521381181
+30
+149.958353264626
+11
+6.49966391634282e-05
+21
+-723.744911722756
+31
+174.12232432863
+12
+6.30894498883872e-05
+22
+-744.812573256956
+32
+149.958459378386
+13
+6.30894498883872e-05
+23
+-744.812573256956
+33
+149.958459378386
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+6.49966391634282e-05
+20
+-723.744911722756
+30
+174.12232432863
+11
+448.317783384355
+21
+-744.812521381181
+31
+149.958353264626
+12
+448.317785291547
+22
+-723.744834584347
+32
+174.122247190222
+13
+448.317785291547
+23
+-723.744834584347
+33
+174.122247190222
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884111397057
+20
+-632.11766596993
+30
+196.836072967405
+11
+673.957376463676
+21
+-653.154439951202
+31
+177.862934850716
+12
+673.957368701467
+22
+-629.139245228331
+32
+189.276665394806
+13
+673.957368701467
+23
+-629.139245228331
+33
+189.276665394806
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957376463676
+20
+-653.154439951202
+30
+177.862934850716
+11
+649.884111397057
+21
+-632.11766596993
+31
+196.836072967405
+12
+649.884119483233
+22
+-657.135168302204
+32
+184.945974477603
+13
+649.884119483233
+23
+-657.135168302204
+33
+184.945974477603
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+794.401547685756
+20
+-720.307447118133
+30
+-2.12061479487602e-10
+11
+772.221088848011
+21
+-745.599413064469
+31
+23.3578380791531
+12
+772.221088848008
+22
+-745.599413064465
+32
+-2.18378204408509e-10
+13
+772.221088848008
+23
+-745.599413064465
+33
+-2.18378204408509e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+772.221088848011
+20
+-745.599413064469
+30
+23.3578380791531
+11
+794.401547685756
+21
+-720.307447118133
+31
+-2.12061479487602e-10
+12
+794.401547685759
+22
+-720.307447118137
+32
+23.3578380791593
+13
+794.401547685759
+23
+-720.307447118137
+33
+23.3578380791593
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090727919739
+20
+-549.540509167097
+30
+237.849027336606
+11
+466.630380370588
+21
+-186.86272
+31
+235.63929931572
+12
+464.090727919739
+22
+-186.86272
+32
+237.849027336606
+13
+464.090727919739
+23
+-186.86272
+33
+237.849027336606
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630380370588
+20
+-186.86272
+30
+235.63929931572
+11
+464.090727919739
+21
+-549.540509167097
+31
+237.849027336606
+12
+466.630380370588
+22
+-549.503386674047
+32
+235.63929931572
+13
+466.630380370588
+23
+-549.503386674047
+33
+235.63929931572
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739249813186
+20
+-547.924349168088
+30
+141.649769387184
+11
+736.997666927312
+21
+-573.300963343833
+31
+159.911321013811
+12
+753.73926375928
+22
+-571.352333223692
+32
+140.862402824032
+13
+753.73926375928
+23
+-571.352333223692
+33
+140.862402824032
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997666927312
+20
+-573.300963343833
+30
+159.911321013811
+11
+753.739249813186
+21
+-547.924349168088
+31
+141.649769387184
+12
+736.99765201229
+22
+-548.245280356442
+32
+160.753391204502
+13
+736.99765201229
+23
+-548.245280356442
+33
+160.753391204502
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894030194972
+20
+-548.526532054241
+30
+177.494989005398
+11
+736.997666927312
+21
+-573.300963343833
+31
+159.911321013811
+12
+736.99765201229
+22
+-548.245280356442
+32
+160.753391204502
+13
+736.99765201229
+23
+-548.245280356442
+33
+160.753391204502
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997666927312
+20
+-573.300963343833
+30
+159.911321013811
+11
+717.894030194972
+21
+-548.526532054241
+31
+177.494989005398
+12
+717.894045959123
+22
+-575.008661956696
+32
+176.604978855282
+13
+717.894045959123
+23
+-575.008661956696
+33
+176.604978855282
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758800443365
+20
+-647.656853392997
+30
+168.080894990074
+11
+717.894077714131
+21
+-660.078536464024
+31
+143.087390097436
+12
+717.894073612081
+22
+-640.737481474577
+32
+155.769021196026
+13
+717.894073612081
+23
+-640.737481474577
+33
+155.769021196026
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894077714131
+20
+-660.078536464024
+30
+143.087390097436
+11
+696.758800443365
+21
+-647.656853392997
+31
+168.080894990074
+12
+696.758804887548
+22
+-668.611056374494
+32
+154.341547662779
+13
+696.758804887548
+23
+-668.611056374494
+33
+154.341547662779
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201824130007
+20
+-611.213150017197
+30
+29.2082138072124
+11
+763.093075318335
+21
+-596.364508960869
+31
+23.3578379945534
+12
+760.201821668678
+22
+-613.067712196625
+32
+23.3578379899606
+13
+760.201821668678
+23
+-613.067712196625
+33
+23.3578379899606
+70
+0
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839477401402
+20
+-746.337240593148
+30
+82.4473163912804
+11
+445.721721263973
+21
+-752.62898843986
+31
+55.5556638784362
+12
+442.839466299903
+22
+-754.702000509797
+32
+56.0599621810555
+13
+442.839466299903
+23
+-754.702000509797
+33
+56.0599621810555
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721721263973
+20
+-752.62898843986
+30
+55.5556638784362
+11
+442.839477401402
+21
+-746.337240593148
+31
+82.4473163912804
+12
+445.721732248607
+22
+-744.352283565408
+32
+81.6652408886482
+13
+445.721732248607
+23
+-744.352283565408
+33
+81.6652408886482
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642053400866
+20
+-764.379514823734
+30
+58.4141748490874
+11
+473.101722427237
+21
+-772.614333460954
+31
+30.1313729498036
+12
+473.642038802113
+22
+-769.301079755069
+32
+29.7924413152051
+13
+473.642038802113
+23
+-769.301079755069
+33
+29.7924413152051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101722427237
+20
+-772.614333460954
+30
+30.1313729498036
+11
+473.642053400866
+21
+-764.379514823734
+31
+58.4141748490874
+12
+473.10173725466
+22
+-767.61567851106
+32
+59.2014293241045
+13
+473.10173725466
+23
+-767.61567851106
+33
+59.2014293241045
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.10173725466
+20
+-767.61567851106
+30
+59.2014293241045
+11
+472.107168359226
+21
+-775.821269863314
+31
+30.4594290412997
+12
+473.101722427237
+22
+-772.614333460954
+32
+30.1313729498036
+13
+473.101722427237
+23
+-772.614333460954
+33
+30.1313729498036
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107168359226
+20
+-775.821269863314
+30
+30.4594290412997
+11
+473.10173725466
+21
+-767.61567851106
+31
+59.2014293241045
+12
+472.107183407982
+22
+-770.747998603796
+32
+59.9634222143927
+13
+472.107183407982
+23
+-770.747998603796
+33
+59.9634222143927
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281993692064
+20
+-750.187755353023
+30
+54.9617894316777
+11
+450.471111788281
+21
+-739.369532914357
+31
+79.7020319508277
+12
+450.471101097006
+22
+-747.425197006803
+32
+54.2897470886059
+13
+450.471101097006
+23
+-747.425197006803
+33
+54.2897470886059
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471111788281
+20
+-739.369532914357
+30
+79.7020319508277
+11
+448.281993692064
+21
+-750.187755353023
+31
+54.9617894316777
+12
+448.282004539076
+22
+-742.014746414944
+32
+80.7442486966709
+13
+448.282004539076
+23
+-742.014746414944
+33
+80.7442486966709
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997691839832
+20
+-632.515984774395
+30
+141.140229605674
+11
+717.894077714131
+21
+-660.078536464024
+31
+143.087390097436
+12
+736.997695535365
+22
+-649.940320006495
+32
+129.715362054641
+13
+736.997695535365
+23
+-649.940320006495
+33
+129.715362054641
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894077714131
+20
+-660.078536464024
+30
+143.087390097436
+11
+736.997691839832
+21
+-632.515984774395
+31
+141.140229605674
+12
+717.894073612081
+22
+-640.737481474577
+32
+155.769021196026
+13
+717.894073612081
+23
+-640.737481474577
+33
+155.769021196026
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721721263973
+20
+-752.62898843986
+30
+55.5556638784362
+11
+448.282004539076
+21
+-742.014746414944
+31
+80.7442486966709
+12
+448.281993692064
+22
+-750.187755353023
+32
+54.9617894316777
+13
+448.281993692064
+23
+-750.187755353023
+33
+54.9617894316777
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282004539076
+20
+-742.014746414944
+30
+80.7442486966709
+11
+445.721721263973
+21
+-752.62898843986
+31
+55.5556638784362
+12
+445.721732248607
+22
+-744.352283565408
+32
+81.6652408886482
+13
+445.721732248607
+23
+-744.352283565408
+33
+81.6652408886482
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431276722139
+20
+-688.759443912117
+30
+139.136856521515
+11
+454.797687662105
+21
+-667.530828563864
+31
+152.916709017132
+12
+454.797689138238
+22
+-686.233268095701
+32
+136.610680705353
+13
+454.797689138238
+23
+-686.233268095701
+33
+136.610680705353
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797687662105
+20
+-667.530828563864
+30
+152.916709017132
+11
+454.431276722139
+21
+-688.759443912117
+31
+139.136856521515
+12
+454.431275216977
+22
+-669.689208643299
+32
+155.763553572255
+13
+454.431275216977
+23
+-669.689208643299
+33
+155.763553572255
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222243636608
+20
+-774.650292730724
+30
+93.6026725589312
+11
+455.006107255299
+21
+-761.852698834952
+31
+122.846524872111
+12
+455.006097921195
+22
+-775.577780463213
+32
+93.968104560508
+13
+455.006097921195
+23
+-775.577780463213
+33
+93.968104560508
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006107255299
+20
+-761.852698834952
+30
+122.846524872111
+11
+458.222243636608
+21
+-774.650292730724
+31
+93.6026725589312
+12
+458.222252930963
+22
+-760.983658189012
+32
+122.358116586891
+13
+458.222252930963
+23
+-760.983658189012
+33
+122.358116586891
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107183407982
+20
+-609.586009613252
+30
+221.125411221167
+11
+470.677509279169
+21
+-639.24331958749
+31
+214.92128705308
+12
+472.107195414063
+22
+-638.12348215123
+32
+212.079066347413
+13
+472.107195414063
+23
+-638.12348215123
+33
+212.079066347413
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677509279169
+20
+-639.24331958749
+30
+214.92128705308
+11
+472.107183407982
+21
+-609.586009613252
+31
+221.125411221167
+12
+470.677497105752
+22
+-610.308103138718
+32
+224.093716273781
+13
+470.677497105752
+23
+-610.308103138718
+33
+224.093716273781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838929652884
+20
+-758.353294490404
+30
+56.9482088735863
+11
+436.335587191701
+21
+-762.351784924648
+31
+29.0815795342117
+12
+432.838915479952
+22
+-763.131305674907
+32
+29.1613230247316
+13
+432.838915479952
+23
+-763.131305674907
+33
+29.1613230247316
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335587191701
+20
+-762.351784924648
+30
+29.0815795342117
+11
+432.838929652884
+21
+-758.353294490404
+31
+56.9482088735863
+12
+436.335601310833
+22
+-757.591910929275
+32
+56.7629871862785
+13
+436.335601310833
+23
+-757.591910929275
+33
+56.7629871862785
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+693.784141830299
+20
+-590.617873632807
+30
+-9.20437059903634e-12
+11
+698.091838084213
+21
+-577.37232127131
+31
+5.83945951982641
+12
+698.091838084213
+22
+-577.37232127131
+32
+-1.01067598734517e-11
+13
+698.091838084213
+23
+-577.37232127131
+33
+-1.01067598734517e-11
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+698.091838084213
+20
+-577.37232127131
+30
+5.83945951982641
+11
+693.784141830299
+21
+-590.617873632807
+31
+-9.20437059903634e-12
+12
+693.784141830299
+22
+-590.617873632807
+32
+5.83945951982749
+13
+693.784141830299
+23
+-590.617873632807
+33
+5.83945951982749
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+590.370902396357
+21
+-674.370540948851
+31
+1.80477854883065e-13
+12
+0.000467548731318024
+22
+-674.370540948851
+32
+1.80477854883065e-13
+13
+0.000467548731318024
+23
+-674.370540948851
+33
+1.80477854883065e-13
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+590.370902396357
+20
+-674.370540948851
+30
+1.80477854883065e-13
+11
+0.000467548731367373
+21
+-674.37054094885
+31
+5.83945951983706
+12
+590.370902396357
+22
+-674.37054094885
+32
+5.83945951983706
+13
+590.370902396357
+23
+-674.37054094885
+33
+5.83945951983706
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+603.993997054852
+20
+-671.47016230067
+30
+5.83945951983598
+11
+590.370902396357
+21
+-674.370540948851
+31
+1.80477854883065e-13
+12
+590.370902396357
+22
+-674.37054094885
+32
+5.83945951983706
+13
+590.370902396357
+23
+-674.37054094885
+33
+5.83945951983706
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+590.370902396357
+20
+-674.370540948851
+30
+1.80477854883065e-13
+11
+603.993997054852
+21
+-671.47016230067
+31
+5.83945951983598
+12
+603.993997054853
+22
+-671.470162300671
+32
+-5.41433564649196e-13
+13
+603.993997054853
+23
+-671.470162300671
+33
+-5.41433564649196e-13
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+617.239549416349
+20
+-667.162466046756
+30
+5.83945951983507
+11
+603.993997054853
+21
+-671.470162300671
+31
+-5.41433564649196e-13
+12
+603.993997054852
+22
+-671.47016230067
+32
+5.83945951983598
+13
+603.993997054852
+23
+-671.47016230067
+33
+5.83945951983598
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+603.993997054853
+20
+-671.470162300671
+30
+-5.41433564649196e-13
+11
+617.239549416349
+21
+-667.162466046756
+31
+5.83945951983507
+12
+617.23954941635
+22
+-667.162466046757
+32
+-1.62430069394759e-12
+13
+617.23954941635
+23
+-667.162466046757
+33
+-1.62430069394759e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.958402396357
+20
+-786.469309831078
+30
+-1.92750349015114e-10
+11
+688.787514114852
+21
+-801.347945386409
+31
+23.3578380792096
+12
+688.787514114849
+22
+-801.347945386405
+32
+-1.61527680120344e-10
+13
+688.787514114849
+23
+-801.347945386405
+33
+-1.61527680120344e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+718.958402396357
+21
+-786.469309831078
+31
+-1.92750349015114e-10
+12
+718.95840239636
+22
+-786.469309831082
+32
+23.3578380791782
+13
+718.95840239636
+23
+-786.469309831082
+33
+23.3578380791782
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221361580333
+20
+-660.639487120937
+30
+111.016899733167
+11
+718.363106545679
+21
+-637.12298630735
+31
+112.809643814588
+12
+718.363107612844
+22
+-650.643847155672
+32
+101.021259768909
+13
+718.363107612844
+23
+-650.643847155672
+33
+101.021259768909
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363106545679
+20
+-637.12298630735
+30
+112.809643814588
+11
+702.221361580333
+21
+-660.639487120937
+31
+111.016899733167
+12
+702.221360398304
+22
+-645.663323591295
+32
+124.074113264079
+13
+702.221360398304
+23
+-645.663323591295
+33
+124.074113264079
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.00720150166
+20
+-186.86272
+30
+48.7110294035543
+11
+793.570900047839
+21
+-545.937123520845
+31
+23.3578380793295
+12
+793.570900047839
+22
+-186.86272
+32
+23.3578380793295
+13
+793.570900047839
+23
+-186.86272
+33
+23.3578380793295
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.570900047839
+20
+-545.937123520845
+30
+23.3578380793295
+11
+792.00720150166
+21
+-186.86272
+31
+48.7110294035543
+12
+792.00720150166
+22
+-546.363038171439
+32
+48.7110294035543
+13
+792.00720150166
+23
+-546.363038171439
+33
+48.7110294035543
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630399083827
+20
+-784.205377362117
+30
+31.3170895287116
+11
+464.090762524528
+21
+-781.089165318495
+31
+62.4790981961044
+12
+464.090746745054
+22
+-786.408777774662
+32
+31.5424891402109
+13
+464.090746745054
+23
+-786.408777774662
+33
+31.5424891402109
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090762524528
+20
+-781.089165318495
+30
+62.4790981961044
+11
+466.630399083827
+21
+-784.205377362117
+31
+31.3170895287116
+12
+466.630414711229
+22
+-778.937031754263
+32
+61.9555523461604
+13
+466.630414711229
+23
+-778.937031754263
+33
+61.9555523461604
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829301759449
+20
+-186.86272
+30
+120.51449319742
+11
+753.739249813186
+21
+-547.924349168088
+31
+141.649769387184
+12
+767.829301759449
+22
+-547.569288532173
+32
+120.514493197419
+13
+767.829301759449
+23
+-547.569288532173
+33
+120.514493197419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739249813186
+20
+-547.924349168088
+30
+141.649769387184
+11
+767.829301759449
+21
+-186.86272
+31
+120.51449319742
+12
+753.739249813186
+22
+-186.86272
+32
+141.649769387185
+13
+753.739249813186
+23
+-186.86272
+33
+141.649769387185
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840169183023
+20
+-693.751116561201
+30
+187.500558577709
+11
+466.6304436178
+21
+-718.721597772832
+31
+169.099010379212
+12
+468.840171011807
+22
+-716.921589517517
+32
+167.299002124079
+13
+468.840171011807
+23
+-716.921589517517
+33
+167.299002124079
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.6304436178
+20
+-718.721597772832
+30
+169.099010379212
+11
+468.840169183023
+21
+-693.751116561201
+31
+187.500558577709
+12
+466.630441768332
+22
+-695.289054806558
+32
+189.529056864572
+13
+466.630441768332
+23
+-695.289054806558
+33
+189.529056864572
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332896682708
+20
+-652.814503888805
+30
+133.506322083721
+11
+665.02138596315
+21
+-639.414516186541
+31
+153.414996741162
+12
+684.332892871929
+22
+-634.846784199308
+32
+145.28747843271
+13
+684.332892871929
+23
+-634.846784199308
+33
+145.28747843271
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.02138596315
+20
+-639.414516186541
+30
+153.414996741162
+11
+684.332896682708
+21
+-652.814503888805
+31
+133.506322083721
+12
+665.021389999784
+22
+-658.447133448378
+32
+140.935603497775
+13
+665.021389999784
+23
+-658.447133448378
+33
+140.935603497775
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101757695049
+20
+-663.582663624963
+30
+196.418146784964
+11
+472.107209463225
+21
+-690.197307940468
+31
+182.813182295542
+12
+473.101762926689
+22
+-688.249705748186
+32
+180.244348164837
+13
+473.101762926689
+23
+-688.249705748186
+33
+180.244348164837
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107209463225
+20
+-690.197307940468
+30
+182.813182295542
+11
+473.101757695049
+21
+-663.582663624963
+31
+196.418146784964
+12
+472.10720415349
+22
+-665.162054034067
+32
+199.228411696097
+13
+472.10720415349
+23
+-665.162054034067
+33
+199.228411696097
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13329645121
+20
+-713.015947331523
+30
+95.3998613711292
+11
+623.546355296361
+21
+-722.557073202373
+31
+73.0778467179566
+12
+602.133289350819
+22
+-723.456525449862
+32
+73.4322395118387
+13
+602.133289350819
+23
+-723.456525449862
+33
+73.4322395118387
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546355296361
+20
+-722.557073202373
+30
+73.0778467179566
+11
+602.13329645121
+21
+-713.015947331523
+31
+95.3998613711292
+12
+623.546362358205
+22
+-712.173174760634
+32
+94.9262110334071
+13
+623.546362358205
+23
+-712.173174760634
+33
+94.9262110334071
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546362358205
+20
+-712.173174760634
+30
+94.9262110334071
+11
+644.636252442318
+21
+-718.985715046116
+31
+71.6707212889357
+12
+623.546355296361
+22
+-722.557073202373
+32
+73.0778467179566
+13
+623.546355296361
+23
+-722.557073202373
+33
+73.0778467179566
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636252442318
+20
+-718.985715046116
+30
+71.6707212889357
+11
+623.546362358205
+21
+-712.173174760634
+31
+94.9262110334071
+12
+644.636259351108
+22
+-708.826870972768
+32
+93.0455572990973
+13
+644.636259351108
+23
+-708.826870972768
+33
+93.0455572990973
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758783079627
+20
+-736.03100461107
+30
+51.5177928651329
+11
+673.957368701467
+21
+-738.899252779403
+31
+79.5166578326792
+12
+673.957358037872
+22
+-746.934060776874
+32
+54.170165314894
+13
+673.957358037872
+23
+-746.934060776874
+33
+54.170165314894
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957368701467
+20
+-738.899252779403
+30
+79.5166578326792
+11
+696.758783079627
+21
+-736.03100461107
+31
+51.5177928651329
+12
+696.758793128571
+22
+-728.459323997255
+32
+75.4033102397292
+13
+696.758793128571
+23
+-728.459323997255
+33
+75.4033102397292
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+590.370902396357
+20
+-820.924226612815
+30
+1.80477854883065e-13
+11
+0.000796879066902634
+21
+-820.924226610164
+31
+17.0475267240553
+12
+0.000467548731319434
+22
+-820.924226612815
+32
+1.80477854883065e-13
+13
+0.000467548731319434
+23
+-820.924226612815
+33
+1.80477854883065e-13
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000796879066902634
+20
+-820.924226610164
+30
+17.0475267240553
+11
+590.37090239636
+21
+-820.924226612819
+31
+23.3578380793719
+12
+0.000467548734387557
+22
+-820.924226612819
+32
+23.3578380793719
+13
+0.000467548734387557
+23
+-820.924226612819
+33
+23.3578380793719
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+590.37090239636
+20
+-820.924226612819
+30
+23.3578380793719
+11
+0.000796879066902634
+21
+-820.924226610164
+31
+17.0475267240553
+12
+590.370902396357
+22
+-820.924226612815
+32
+1.80477854883065e-13
+13
+590.370902396357
+23
+-820.924226612815
+33
+1.80477854883065e-13
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957327625231
+20
+-548.951311917762
+30
+202.779879874335
+11
+696.758754005207
+21
+-186.86272
+31
+191.585040951661
+12
+673.957327625231
+22
+-186.86272
+32
+202.779879874335
+13
+673.957327625231
+23
+-186.86272
+33
+202.779879874335
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758754005207
+20
+-186.86272
+30
+191.585040951661
+11
+673.957327625231
+21
+-548.951311917762
+31
+202.779879874335
+12
+696.758754005207
+22
+-548.76324041817
+32
+191.585040951661
+13
+696.758754005207
+23
+-548.76324041817
+33
+191.585040951661
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281962880048
+20
+-549.007501396503
+30
+206.120647039576
+11
+445.721690152324
+21
+-186.86272
+31
+208.627211339945
+12
+448.281962880048
+22
+-186.86272
+32
+206.120647039576
+13
+448.281962880048
+23
+-186.86272
+33
+206.120647039576
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721690152324
+20
+-186.86272
+30
+208.627211339945
+11
+448.281962880048
+21
+-549.007501396503
+31
+206.120647039576
+12
+445.721690152324
+22
+-549.049610517709
+32
+208.627211339945
+13
+445.721690152324
+23
+-549.049610517709
+33
+208.627211339945
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471119570638
+20
+-653.402150740311
+30
+178.303588160926
+11
+452.247001541956
+21
+-628.181198889296
+31
+186.844869872835
+12
+452.247009199941
+22
+-651.873941250939
+32
+175.584391651154
+13
+452.247009199941
+23
+-651.873941250939
+33
+175.584391651154
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247001541956
+20
+-628.181198889296
+30
+186.844869872835
+11
+450.471119570638
+21
+-653.402150740311
+31
+178.303588160926
+12
+450.471111788281
+22
+-629.324619346527
+32
+189.746945529741
+13
+450.471111788281
+23
+-629.324619346527
+33
+189.746945529741
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281993692064
+20
+-604.584376828467
+30
+200.565167970899
+11
+450.471087696265
+21
+-577.639374325348
+31
+202.320298229792
+12
+450.471101097006
+22
+-603.912334485117
+32
+197.802609624747
+13
+450.471101097006
+23
+-603.912334485117
+33
+197.802609624747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471087696265
+20
+-577.639374325348
+30
+202.320298229792
+11
+448.281993692064
+21
+-604.584376828467
+31
+200.565167970899
+12
+448.281980096118
+22
+-577.92870502396
+32
+205.148664616833
+13
+448.281980096118
+23
+-577.92870502396
+33
+205.148664616833
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758770484001
+20
+-740.277270942125
+30
+26.8233094768247
+11
+673.957358037872
+21
+-746.934060776874
+31
+54.170165314894
+12
+673.957344671825
+22
+-751.440053094339
+32
+27.9652257853831
+13
+673.957344671825
+23
+-751.440053094339
+33
+27.9652257853831
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957358037872
+20
+-746.934060776874
+30
+54.170165314894
+11
+696.758770484001
+21
+-740.277270942125
+31
+26.8233094768247
+12
+696.758783079627
+22
+-736.03100461107
+32
+51.5177928651329
+13
+696.758783079627
+23
+-736.03100461107
+33
+51.5177928651329
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090746745054
+20
+-786.408777774662
+30
+31.5424891402109
+11
+461.269972243544
+21
+-782.87863142832
+31
+62.9144188854628
+12
+461.269956337624
+22
+-788.240871473567
+32
+31.7299058573872
+13
+461.269956337624
+23
+-788.240871473567
+33
+31.7299058573872
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269972243544
+20
+-782.87863142832
+30
+62.9144188854628
+11
+464.090746745054
+21
+-786.408777774662
+31
+31.5424891402109
+12
+464.090762524528
+22
+-781.089165318495
+32
+62.4790981961044
+13
+464.090762524528
+23
+-781.089165318495
+33
+62.4790981961044
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021389999784
+20
+-658.447133448378
+30
+140.935603497775
+11
+644.636259351108
+21
+-642.668144691721
+31
+159.204283586808
+12
+665.02138596315
+22
+-639.414516186541
+32
+153.414996741162
+13
+665.02138596315
+23
+-639.414516186541
+33
+153.414996741162
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636259351108
+20
+-642.668144691721
+30
+159.204283586808
+11
+665.021389999784
+21
+-658.447133448378
+31
+140.935603497775
+12
+644.636263548619
+22
+-662.459295238253
+32
+146.227531781659
+13
+644.636263548619
+23
+-662.459295238253
+33
+146.227531781659
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024140682123
+20
+-186.86272
+30
+97.713066817443
+11
+787.130167954486
+21
+-546.781824001004
+31
+73.639808098986
+12
+787.130167954486
+22
+-186.86272
+32
+73.639808098986
+13
+787.130167954486
+23
+-186.86272
+33
+73.639808098986
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130167954486
+20
+-546.781824001004
+30
+73.639808098986
+11
+779.024140682123
+21
+-186.86272
+31
+97.713066817443
+12
+779.024140682123
+22
+-547.186238711366
+32
+97.7130668174428
+13
+779.024140682123
+23
+-547.186238711366
+33
+97.7130668174428
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739289860341
+20
+-652.105388357143
+30
+102.482800970232
+11
+736.997695535365
+21
+-679.337949441333
+31
+100.317732616843
+12
+753.73928877638
+22
+-664.079300898903
+32
+88.749145475747
+13
+753.73928877638
+23
+-664.079300898903
+33
+88.749145475747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997695535365
+20
+-679.337949441333
+30
+100.317732616843
+11
+753.739289860341
+21
+-652.105388357143
+31
+102.482800970232
+12
+736.997696774917
+22
+-665.645302851503
+32
+116.022715463229
+13
+736.997696774917
+23
+-665.645302851503
+33
+116.022715463229
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031425007948
+20
+-579.704781244013
+30
+37.0766018107078
+11
+764.878707491771
+21
+-566.32138210224
+31
+23.3578380017417
+12
+764.805052044838
+22
+-569.303684335783
+32
+23.3578380010606
+13
+764.805052044838
+23
+-569.303684335783
+33
+23.3578380010606
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.878707491771
+20
+-566.32138210224
+30
+23.3578380017417
+11
+764.031425007948
+21
+-579.704781244013
+31
+37.0766018107078
+12
+764.031424128692
+22
+-575.559109938211
+32
+39.7948544698768
+13
+764.031424128692
+23
+-575.559109938211
+33
+39.7948544698768
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133279596418
+20
+-730.806273217008
+30
+50.2468283798967
+11
+623.546333434853
+21
+-733.96634875632
+31
+26.1777702748551
+12
+602.133267369982
+22
+-734.928077619115
+32
+26.2761627640122
+13
+602.133267369982
+23
+-734.928077619115
+33
+26.2761627640122
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546333434853
+20
+-733.96634875632
+30
+26.1777702748551
+11
+602.133279596418
+21
+-730.806273217008
+31
+50.2468283798967
+12
+623.546345594915
+22
+-729.866920753093
+32
+50.0183042486409
+13
+623.546345594915
+23
+-729.866920753093
+33
+50.0183042486409
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667765582876
+20
+-713.015957461653
+30
+95.3999068495287
+11
+602.133289350819
+21
+-723.456525449862
+31
+73.4322395118387
+12
+454.667758482489
+22
+-723.456530152174
+32
+73.4322964107047
+13
+454.667758482489
+23
+-723.456530152174
+33
+73.4322964107047
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133289350819
+20
+-723.456525449862
+30
+73.4322395118387
+11
+454.667765582876
+21
+-713.015957461653
+31
+95.3999068495287
+12
+602.13329645121
+22
+-713.015947331523
+32
+95.3998613711292
+13
+602.13329645121
+23
+-713.015947331523
+33
+95.3998613711292
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677518140403
+20
+-751.514112490764
+30
+117.036156904666
+11
+468.84015475682
+21
+-767.174448290109
+31
+90.6571807720069
+12
+470.677509279169
+22
+-764.543874438695
+32
+89.6207321892548
+13
+470.677509279169
+23
+-764.543874438695
+33
+89.6207321892548
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84015475682
+20
+-767.174448290109
+30
+90.6571807720069
+11
+470.677518140403
+21
+-751.514112490764
+31
+117.036156904666
+12
+468.84016373079
+22
+-753.978916343896
+32
+118.421395812685
+13
+468.84016373079
+23
+-753.978916343896
+33
+118.421395812685
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.938975880549
+20
+-818.724058836624
+30
+-6.38891606286052e-11
+11
+590.37090239636
+21
+-820.924226612819
+31
+23.3578380793719
+12
+590.370902396357
+22
+-820.924226612815
+32
+1.80477854883065e-13
+13
+590.370902396357
+23
+-820.924226612815
+33
+1.80477854883065e-13
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+590.37090239636
+20
+-820.924226612819
+30
+23.3578380793719
+11
+623.938975880549
+21
+-818.724058836624
+31
+-6.38891606286052e-11
+12
+623.938975880552
+22
+-818.724058836629
+32
+23.3578380793071
+13
+623.938975880552
+23
+-818.724058836629
+33
+23.3578380793071
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840142428527
+20
+-776.463572930403
+30
+61.353838580619
+11
+466.630399083827
+21
+-784.205377362117
+31
+31.3170895287116
+12
+468.840126975903
+22
+-781.672997259934
+32
+31.0580369189494
+13
+468.840126975903
+23
+-781.672997259934
+33
+31.0580369189494
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630399083827
+20
+-784.205377362117
+30
+31.3170895287116
+11
+468.840142428527
+21
+-776.463572930403
+31
+61.353838580619
+12
+466.630414711229
+22
+-778.937031754263
+32
+61.9555523461604
+13
+466.630414711229
+23
+-778.937031754263
+33
+61.9555523461604
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829301759449
+20
+-547.569288532173
+30
+120.514493197419
+11
+753.73926375928
+21
+-571.352333223692
+31
+140.862402824032
+12
+767.82931463357
+22
+-569.196470349584
+32
+119.787647909415
+13
+767.82931463357
+23
+-569.196470349584
+33
+119.787647909415
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73926375928
+20
+-571.352333223692
+30
+140.862402824032
+11
+767.829301759449
+21
+-547.569288532173
+31
+120.514493197419
+12
+753.739249813186
+22
+-547.924349168088
+32
+141.649769387184
+13
+753.739249813186
+23
+-547.924349168088
+33
+141.649769387184
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797653593913
+20
+-738.498463121584
+30
+26.6414790273437
+11
+454.667748728094
+21
+-730.806274098353
+31
+50.2468973323294
+12
+454.667736501664
+22
+-734.928076357629
+32
+26.2762441782473
+13
+454.667736501664
+23
+-734.928076357629
+33
+26.2762441782473
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667748728094
+20
+-730.806274098353
+30
+50.2468973323294
+11
+454.797653593913
+21
+-738.498463121584
+31
+26.6414790273437
+12
+454.797666066761
+22
+-734.293588076417
+32
+51.0952482583018
+13
+454.797666066761
+23
+-734.293588076417
+33
+51.0952482583018
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281980096118
+20
+-754.771251996272
+30
+28.306117626709
+11
+450.471101097006
+21
+-747.425197006803
+31
+54.2897470886059
+12
+450.471087696265
+22
+-751.942885609203
+32
+28.0167869283821
+13
+450.471087696265
+23
+-751.942885609203
+33
+28.0167869283821
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471101097006
+20
+-747.425197006803
+30
+54.2897470886059
+11
+448.281980096118
+21
+-754.771251996272
+31
+28.306117626709
+12
+448.281993692064
+22
+-750.187755353023
+32
+54.9617894316777
+13
+448.281993692064
+23
+-750.187755353023
+33
+54.9617894316777
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275046789786
+20
+-580.758079568763
+30
+102.623043056121
+11
+753.576397473233
+21
+-565.700992480648
+31
+85.6172131326287
+12
+753.576402819491
+22
+-576.182653575586
+32
+83.8148703207571
+13
+753.576402819491
+23
+-576.182653575586
+33
+83.8148703207571
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576397473233
+20
+-565.700992480648
+30
+85.6172131326287
+11
+744.275046789786
+21
+-580.758079568763
+31
+102.623043056121
+12
+744.275040114523
+22
+-567.670823535761
+32
+104.873423184286
+13
+744.275040114523
+23
+-567.670823535761
+33
+104.873423184286
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838897838644
+20
+-549.148351803013
+30
+214.504708726405
+11
+429.26772029492
+21
+-186.86272
+31
+214.795486963908
+12
+432.838897838644
+22
+-186.86272
+32
+214.504708726405
+13
+432.838897838644
+23
+-186.86272
+33
+214.504708726405
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.26772029492
+20
+-186.86272
+30
+214.795486963908
+11
+432.838897838644
+21
+-549.148351803013
+31
+214.504708726405
+12
+429.26772029492
+22
+-549.153237717187
+32
+214.795486963908
+13
+429.26772029492
+23
+-549.153237717187
+33
+214.795486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667769896794
+20
+-699.679329838522
+30
+115.739912506852
+11
+602.13329645121
+21
+-713.015947331523
+31
+95.3998613711292
+12
+454.667765582876
+22
+-713.015957461653
+32
+95.3999068495287
+13
+454.667765582876
+23
+-713.015957461653
+33
+95.3999068495287
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13329645121
+20
+-713.015947331523
+30
+95.3998613711292
+11
+454.667769896794
+21
+-699.679329838522
+31
+115.739912506852
+12
+602.13330076513
+22
+-699.679312774979
+32
+115.739877602763
+13
+602.13330076513
+23
+-699.679312774979
+33
+115.739877602763
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84016373079
+20
+-753.978916343896
+30
+118.421395812685
+11
+466.630427178961
+21
+-769.542842319152
+31
+91.5903304644009
+12
+468.84015475682
+22
+-767.174448290109
+32
+90.6571807720069
+13
+468.84015475682
+23
+-767.174448290109
+33
+90.6571807720069
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630427178961
+20
+-769.542842319152
+30
+91.5903304644009
+11
+468.84016373079
+21
+-753.978916343896
+31
+118.421395812685
+12
+466.630436254431
+22
+-756.198062094967
+32
+119.668573109345
+13
+466.630436254431
+23
+-756.198062094967
+33
+119.668573109345
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247009199941
+20
+-651.873941250939
+30
+175.584391651154
+11
+453.575559198051
+21
+-626.958539673324
+31
+183.741680540481
+12
+453.575566723046
+22
+-650.239827098532
+32
+172.676755002411
+13
+453.575566723046
+23
+-650.239827098532
+33
+172.676755002411
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575559198051
+20
+-626.958539673324
+30
+183.741680540481
+11
+452.247009199941
+21
+-651.873941250939
+31
+175.584391651154
+12
+452.247001541956
+22
+-628.181198889296
+32
+186.844869872835
+13
+452.247001541956
+23
+-628.181198889296
+33
+186.844869872835
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221343105619
+20
+-699.12426393804
+30
+42.5395709625037
+11
+718.363082853901
+21
+-688.112661424818
+31
+23.3578379602634
+12
+702.221333321817
+22
+-702.422601699266
+32
+23.3578379520354
+13
+702.221333321817
+23
+-702.422601699266
+33
+23.3578379520354
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363082853901
+20
+-688.112661424818
+30
+23.3578379602634
+11
+702.221343105619
+21
+-699.12426393804
+31
+42.5395709625037
+12
+718.363090933403
+22
+-685.388881228845
+32
+39.1981879427727
+13
+718.363090933403
+23
+-685.388881228845
+33
+39.1981879427727
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0
+20
+-549.622587401036
+30
+242.726639240051
+11
+448.317739367628
+21
+-581.662614799822
+31
+241.649835054513
+12
+448.31772029492
+22
+-549.622454002523
+32
+242.726639240051
+13
+448.31772029492
+23
+-549.622454002523
+33
+242.726639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317739367628
+20
+-581.662614799822
+30
+241.649835054513
+11
+0.0
+21
+-549.622587401036
+31
+242.726639240051
+12
+1.90727753096809e-05
+22
+-581.662862311522
+32
+241.649831219402
+13
+1.90727753096809e-05
+23
+-581.662862311522
+33
+241.649831219402
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721746731967
+20
+-699.576473436421
+30
+149.95388604473
+11
+442.839490392048
+21
+-680.220295673638
+31
+169.6537686923
+12
+445.721745102502
+22
+-678.931345516719
+32
+167.953679054935
+13
+445.721745102502
+23
+-678.931345516719
+33
+167.953679054935
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839490392048
+20
+-680.220295673638
+30
+169.6537686923
+11
+445.721746731967
+21
+-699.576473436421
+31
+149.95388604473
+12
+442.839492038848
+22
+-701.085065061495
+32
+151.462477669651
+13
+442.839492038848
+23
+-701.085065061495
+33
+151.462477669651
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.31772029492
+20
+-549.622454002523
+30
+242.726639240051
+11
+451.683300548936
+21
+-581.654891394158
+31
+241.574352401781
+12
+451.683281480069
+22
+-549.621181308374
+32
+242.650939792116
+13
+451.683281480069
+23
+-549.621181308374
+33
+242.650939792116
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683300548936
+20
+-581.654891394158
+30
+241.574352401781
+11
+448.31772029492
+21
+-549.622454002523
+31
+242.726639240051
+12
+448.317739367628
+22
+-581.662614799822
+32
+241.649835054513
+13
+448.317739367628
+23
+-581.662614799822
+33
+241.649835054513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247001541956
+20
+-628.181198889296
+30
+186.844869872835
+11
+453.575548860337
+21
+-602.386639077964
+31
+191.530943822063
+12
+453.575559198051
+22
+-626.958539673324
+32
+183.741680540481
+13
+453.575559198051
+23
+-626.958539673324
+33
+183.741680540481
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575548860337
+20
+-602.386639077964
+30
+191.530943822063
+11
+452.247001541956
+21
+-628.181198889296
+31
+186.844869872835
+12
+452.246991021541
+22
+-603.175034087969
+32
+194.771794391524
+13
+452.246991021541
+23
+-603.175034087969
+33
+194.771794391524
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690620823844
+20
+-720.64180705444
+30
+131.632946903436
+11
+442.839485482368
+21
+-734.454801614587
+31
+107.448702644845
+12
+439.690615872653
+22
+-735.948583762681
+32
+108.288220362449
+13
+439.690615872653
+23
+-735.948583762681
+33
+108.288220362449
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839485482368
+20
+-734.454801614587
+30
+107.448702644845
+11
+439.690620823844
+21
+-720.64180705444
+31
+131.632946903436
+12
+442.839490392048
+22
+-719.276356082042
+32
+130.597708279963
+13
+442.839490392048
+23
+-719.276356082042
+33
+130.597708279963
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130190684252
+20
+-597.186922321698
+30
+60.1350749996264
+11
+779.024169884095
+21
+-620.964740882273
+31
+71.3421534984996
+12
+787.130191214298
+22
+-603.902540579901
+32
+54.279953197846
+13
+787.130191214298
+23
+-603.902540579901
+33
+54.279953197846
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024169884095
+20
+-620.964740882273
+30
+71.3421534984996
+11
+787.130190684252
+21
+-597.186922321698
+31
+60.1350749996264
+12
+779.024169157982
+22
+-611.764971197169
+32
+79.3631234201936
+13
+779.024169157982
+23
+-611.764971197169
+33
+79.3631234201936
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090762524528
+20
+-612.101685596006
+30
+231.466577935614
+11
+466.630427178961
+21
+-641.212917863139
+31
+219.920254933339
+12
+466.630414711229
+22
+-611.578139745845
+32
+229.314444371434
+13
+466.630414711229
+23
+-611.578139745845
+33
+229.314444371434
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630427178961
+20
+-641.212917863139
+30
+219.920254933339
+11
+464.090762524528
+21
+-612.101685596006
+31
+231.466577935614
+12
+464.090775113584
+22
+-642.024842985963
+32
+221.980972610863
+13
+464.090775113584
+23
+-642.024842985963
+33
+221.980972610863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+642.023925698403
+20
+-654.528573978644
+30
+5.83945951983345
+11
+629.962604584718
+21
+-661.494594174547
+31
+-2.52668996836292e-12
+12
+629.962604584718
+22
+-661.494594174546
+32
+5.83945951983435
+13
+629.962604584718
+23
+-661.494594174546
+33
+5.83945951983435
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+629.962604584718
+20
+-661.494594174547
+30
+-2.52668996836292e-12
+11
+642.023925698403
+21
+-654.528573978644
+31
+5.83945951983345
+12
+642.023925698404
+22
+-654.528573978645
+32
+-3.60955709766131e-12
+13
+642.023925698404
+23
+-654.528573978645
+33
+-3.60955709766131e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+681.150249762187
+20
+-615.402249914861
+30
+-7.58006990508875e-12
+11
+688.116269958089
+21
+-603.340928801175
+31
+5.8394595198284
+12
+688.116269958089
+22
+-603.340928801176
+32
+-8.48245917950408e-12
+13
+688.116269958089
+23
+-603.340928801176
+33
+-8.48245917950408e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.116269958089
+20
+-603.340928801175
+30
+5.8394595198284
+11
+681.150249762187
+21
+-615.402249914861
+31
+-7.58006990508875e-12
+12
+681.150249762187
+22
+-615.402249914861
+32
+5.83945951982948
+13
+681.150249762187
+23
+-615.402249914861
+33
+5.83945951982948
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+700.992216732393
+20
+-563.749226612814
+30
+5.83945951982569
+11
+806.270901222104
+21
+56.1856515498016
+31
+1.46187062455283e-11
+12
+700.992216732393
+22
+-563.749226612815
+32
+-1.11896270027501e-11
+13
+700.992216732393
+23
+-563.749226612815
+33
+-1.11896270027501e-11
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+806.270901222104
+20
+56.1856515498016
+30
+1.46187062455283e-11
+11
+700.992216732393
+21
+-563.749226612814
+31
+5.83945951982569
+12
+764.995900047839
+22
+-186.86272
+32
+5.83945951983706
+13
+764.995900047839
+23
+-186.86272
+33
+5.83945951983706
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+806.270901222104
+20
+56.1856515498016
+30
+1.46187062455283e-11
+11
+764.995900047839
+21
+-186.86272
+31
+5.83945951983706
+12
+806.270901222105
+22
+56.1856515497994
+32
+23.3578380793657
+13
+806.270901222105
+23
+56.1856515497994
+33
+23.3578380793657
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+806.270901222105
+20
+56.1856515497994
+30
+23.3578380793657
+11
+764.995900047839
+21
+-186.86272
+31
+5.83945951983706
+12
+764.995900047839
+22
+-186.86272
+32
+23.3578380793295
+13
+764.995900047839
+23
+-186.86272
+33
+23.3578380793295
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642020846985
+20
+-549.252284780773
+30
+220.6922004252
+11
+473.101722427237
+21
+-579.753960348852
+31
+222.99174608133
+12
+473.642038802113
+22
+-579.415028713919
+32
+219.67849237548
+13
+473.642038802113
+23
+-579.415028713919
+33
+219.67849237548
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101722427237
+20
+-579.753960348852
+30
+222.99174608133
+11
+473.642020846985
+21
+-549.252284780773
+31
+220.6922004252
+12
+473.10170430358
+22
+-549.308104906071
+32
+224.014968929071
+13
+473.10170430358
+23
+-549.308104906071
+33
+224.014968929071
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.570900047839
+20
+-545.937123520845
+30
+23.3578380793295
+11
+792.007210733943
+21
+-561.872310305502
+31
+48.1897945304127
+12
+793.543158239603
+22
+-559.33210911257
+32
+23.3578380122893
+13
+793.543158239603
+23
+-559.33210911257
+33
+23.3578380122893
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007210733943
+20
+-561.872310305502
+30
+48.1897945304127
+11
+793.570900047839
+21
+-545.937123520845
+31
+23.3578380793295
+12
+792.00720150166
+22
+-546.363038171439
+32
+48.7110294035543
+13
+792.00720150166
+23
+-546.363038171439
+33
+48.7110294035543
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957381179691
+20
+-712.905797682657
+30
+125.767734693656
+11
+649.884126043939
+21
+-701.17731493105
+31
+151.554727539197
+12
+649.884124396077
+22
+-719.380332193364
+32
+130.67650856366
+13
+649.884124396077
+23
+-719.380332193364
+33
+130.67650856366
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884126043939
+20
+-701.17731493105
+30
+151.554727539197
+11
+673.957381179691
+21
+-712.905797682657
+31
+125.767734693656
+12
+673.957382761532
+22
+-695.432070757716
+32
+145.809483366442
+13
+673.957382761532
+23
+-695.432070757716
+33
+145.809483366442
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884124396077
+20
+-719.380332193364
+30
+130.67650856366
+11
+624.955348552338
+21
+-704.633972822346
+31
+155.011385430145
+12
+624.955346864755
+22
+-723.275770827742
+32
+133.629900413365
+13
+624.955346864755
+23
+-723.275770827742
+33
+133.629900413365
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955348552338
+20
+-704.633972822346
+30
+155.011385430145
+11
+649.884124396077
+21
+-719.380332193364
+31
+130.67650856366
+12
+649.884126043939
+22
+-701.17731493105
+32
+151.554727539197
+13
+649.884126043939
+23
+-701.17731493105
+33
+151.554727539197
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955346864755
+20
+-723.275770827742
+30
+133.629900413365
+11
+599.602157614092
+21
+-705.742266508454
+31
+156.119679116142
+12
+599.602155913773
+22
+-724.524747581215
+32
+134.576835581469
+13
+599.602155913773
+23
+-724.524747581215
+33
+134.576835581469
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602157614092
+20
+-705.742266508454
+30
+156.119679116142
+11
+624.955346864755
+21
+-723.275770827742
+31
+133.629900413365
+12
+624.955348552338
+22
+-704.633972822346
+32
+155.011385430145
+13
+624.955348552338
+23
+-704.633972822346
+33
+155.011385430145
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602155913773
+20
+-724.524747581215
+30
+134.576835581469
+11
+473.717779021898
+21
+-705.742288168363
+31
+156.11970077605
+12
+473.71777732158
+22
+-724.524762147558
+32
+134.576865377446
+13
+473.71777732158
+23
+-724.524762147558
+33
+134.576865377446
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717779021898
+20
+-705.742288168363
+30
+156.11970077605
+11
+599.602155913773
+21
+-724.524747581215
+31
+134.576835581469
+12
+599.602157614092
+22
+-705.742266508454
+32
+156.119679116142
+13
+599.602157614092
+23
+-705.742266508454
+33
+156.119679116142
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717779021898
+20
+-705.742288168363
+30
+156.11970077605
+11
+473.642078676977
+21
+-727.212938735792
+31
+136.614948795724
+12
+473.71777732158
+22
+-724.524762147558
+32
+134.576865377446
+13
+473.71777732158
+23
+-724.524762147558
+33
+134.576865377446
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642078676977
+20
+-727.212938735792
+30
+136.614948795724
+11
+473.717779021898
+21
+-705.742288168363
+31
+156.11970077605
+12
+473.642080404707
+22
+-708.127668368109
+32
+158.505080975556
+13
+473.642080404707
+23
+-708.127668368109
+33
+158.505080975556
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000889626013624645
+20
+-791.564217518411
+30
+23.3578380798509
+11
+448.317739367628
+21
+-791.272422434329
+31
+32.0400273988949
+12
+1.90727753096809e-05
+22
+-791.272418599218
+32
+32.0402749105959
+13
+1.90727753096809e-05
+23
+-791.272418599218
+33
+32.0402749105959
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317739367628
+20
+-791.272422434329
+30
+32.0400273988949
+11
+0.000889626013624645
+21
+-791.564217518411
+31
+23.3578380798509
+12
+448.317734199337
+22
+-791.564213042815
+32
+23.3578378526045
+13
+448.317734199337
+23
+-791.564213042815
+33
+23.3578378526045
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+698.091838084213
+20
+-577.37232127131
+30
+-1.01067598734517e-11
+11
+700.992216732393
+21
+-563.749226612814
+31
+5.83945951982569
+12
+700.992216732393
+22
+-563.749226612815
+32
+-1.11896270027501e-11
+13
+700.992216732393
+23
+-563.749226612815
+33
+-1.11896270027501e-11
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+700.992216732393
+20
+-563.749226612814
+30
+5.83945951982569
+11
+698.091838084213
+21
+-577.37232127131
+31
+-1.01067598734517e-11
+12
+698.091838084213
+22
+-577.37232127131
+32
+5.83945951982641
+13
+698.091838084213
+23
+-577.37232127131
+33
+5.83945951982641
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.00828976046904545
+20
+-763.617295762417
+30
+23.3578364570492
+11
+764.995900047839
+21
+-186.86272
+31
+23.3578380793295
+12
+0.00176534768970384
+22
+-186.86272
+32
+23.3578380793295
+13
+0.00176534768970384
+23
+-186.86272
+33
+23.3578380793295
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.995900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.995900047839
+22
+-545.937132023437
+32
+23.3578380793295
+13
+764.995900047839
+23
+-545.937132023437
+33
+23.3578380793295
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.995900047839
+20
+-545.937132023437
+30
+23.3578380793295
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.975642457445
+22
+-559.332124908489
+32
+23.3578380033138
+13
+764.975642457445
+23
+-559.332124908489
+33
+23.3578380033138
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.975642457445
+20
+-559.332124908489
+30
+23.3578380033138
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.959283764737
+22
+-561.475402706277
+32
+23.3578380028359
+13
+764.959283764737
+23
+-561.475402706277
+33
+23.3578380028359
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.959283764737
+20
+-561.475402706277
+30
+23.3578380028359
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.92809314571
+22
+-563.7670797619
+32
+23.357838002321
+13
+764.92809314571
+23
+-563.7670797619
+33
+23.357838002321
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.92809314571
+20
+-563.7670797619
+30
+23.357838002321
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.878707491771
+22
+-566.32138210224
+32
+23.3578380017417
+13
+764.878707491771
+23
+-566.32138210224
+33
+23.3578380017417
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.878707491771
+20
+-566.32138210224
+30
+23.3578380017417
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.805052044838
+22
+-569.303684335783
+32
+23.3578380010606
+13
+764.805052044838
+23
+-569.303684335783
+33
+23.3578380010606
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.805052044838
+20
+-569.303684335783
+30
+23.3578380010606
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.696220629469
+22
+-572.980425379156
+32
+23.3578380002154
+13
+764.696220629469
+23
+-572.980425379156
+33
+23.3578380002154
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.696220629469
+20
+-572.980425379156
+30
+23.3578380002154
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.531578361879
+22
+-577.829946771796
+32
+23.3578379990944
+13
+764.531578361879
+23
+-577.829946771796
+33
+23.3578379990944
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.531578361879
+20
+-577.829946771796
+30
+23.3578379990944
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.267940787943
+22
+-584.829097037034
+32
+23.3578379974678
+13
+764.267940787943
+23
+-584.829097037034
+33
+23.3578379974678
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.267940787943
+20
+-584.829097037034
+30
+23.3578379974678
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+764.031423295207
+22
+-590.643016368677
+32
+23.3578379961104
+13
+764.031423295207
+23
+-590.643016368677
+33
+23.3578379961104
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031423295207
+20
+-590.643016368677
+30
+23.3578379961104
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+763.093075318335
+22
+-596.364508960869
+32
+23.3578379945534
+13
+763.093075318335
+23
+-596.364508960869
+33
+23.3578379945534
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+763.093075318335
+20
+-596.364508960869
+30
+23.3578379945534
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+760.201821668678
+22
+-613.067712196625
+32
+23.3578379899606
+13
+760.201821668678
+23
+-613.067712196625
+33
+23.3578379899606
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201821668678
+20
+-613.067712196625
+30
+23.3578379899606
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+757.969157364208
+22
+-620.27407578666
+32
+23.3578379876696
+13
+757.969157364208
+23
+-620.27407578666
+33
+23.3578379876696
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+757.969157364208
+20
+-620.27407578666
+30
+23.3578379876696
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+753.576401186168
+22
+-633.988087312601
+32
+23.3578379832645
+13
+753.576401186168
+23
+-633.988087312601
+33
+23.3578379832645
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576401186168
+20
+-633.988087312601
+30
+23.3578379832645
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+744.275042822729
+22
+-653.583013796713
+32
+23.35783797602
+13
+744.275042822729
+23
+-653.583013796713
+33
+23.35783797602
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275042822729
+20
+-653.583013796713
+30
+23.35783797602
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+732.466045885959
+22
+-671.734013479962
+32
+23.3578379683062
+13
+732.466045885959
+23
+-671.734013479962
+33
+23.3578379683062
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466045885959
+20
+-671.734013479962
+30
+23.3578379683062
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+718.363082853901
+22
+-688.112661424818
+32
+23.3578379602634
+13
+718.363082853901
+23
+-688.112661424818
+33
+23.3578379602634
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363082853901
+20
+-688.112661424818
+30
+23.3578379602634
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+702.221333321817
+22
+-702.422601699266
+32
+23.3578379520354
+13
+702.221333321817
+23
+-702.422601699266
+33
+23.3578379520354
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221333321817
+20
+-702.422601699266
+30
+23.3578379520354
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+696.283090443709
+22
+-706.400240289655
+32
+23.3578379492919
+13
+696.283090443709
+23
+-706.400240289655
+33
+23.3578379492919
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.283090443709
+20
+-706.400240289655
+30
+23.3578379492919
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+684.332866703488
+22
+-714.293584916115
+32
+23.3578379437967
+13
+684.332866703488
+23
+-714.293584916115
+33
+23.3578379437967
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332866703488
+20
+-714.293584916115
+30
+23.3578379437967
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+454.667734764409
+22
+-735.026158016502
+32
+23.3578378670709
+13
+454.667734764409
+23
+-735.026158016502
+33
+23.3578378670709
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332866703488
+20
+-714.293584916115
+30
+23.3578379437967
+11
+454.667734764409
+21
+-735.026158016502
+31
+23.3578378670709
+12
+665.021357707386
+22
+-723.600194881456
+32
+23.3578379356765
+13
+665.021357707386
+23
+-723.600194881456
+33
+23.3578379356765
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021357707386
+20
+-723.600194881456
+30
+23.3578379356765
+11
+454.667734764409
+21
+-735.026158016502
+31
+23.3578378670709
+12
+644.636229608527
+22
+-730.229356318714
+32
+23.35783792781
+13
+644.636229608527
+23
+-730.229356318714
+33
+23.35783792781
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636229608527
+20
+-730.229356318714
+30
+23.35783792781
+11
+454.667734764409
+21
+-735.026158016502
+31
+23.3578378670709
+12
+623.546331756218
+22
+-734.061120907196
+32
+23.3578379203391
+13
+623.546331756218
+23
+-734.061120907196
+33
+23.3578379203391
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546331756218
+20
+-734.061120907196
+30
+23.3578379203391
+11
+454.667734764409
+21
+-735.026158016502
+31
+23.3578378670709
+12
+602.133265632776
+22
+-735.026156540265
+32
+23.357837913399
+13
+602.133265632776
+23
+-735.026156540265
+33
+23.357837913399
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667734764409
+20
+-735.026158016502
+30
+23.3578378670709
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+454.797651639243
+22
+-738.608819575715
+32
+23.3578378663214
+13
+454.797651639243
+23
+-738.608819575715
+33
+23.3578378663214
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797651639243
+20
+-738.608819575715
+30
+23.3578378663214
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+454.431238307724
+22
+-742.175043209088
+32
+23.3578378654204
+13
+454.431238307724
+23
+-742.175043209088
+33
+23.3578378654204
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431238307724
+20
+-742.175043209088
+30
+23.3578378654204
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+453.575533520408
+22
+-745.656322242814
+32
+23.3578378643829
+13
+453.575533520408
+23
+-745.656322242814
+33
+23.3578378643829
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575533520408
+20
+-745.656322242814
+30
+23.3578378643829
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+452.24697525056
+22
+-748.985781777358
+32
+23.3578378632311
+13
+452.24697525056
+23
+-748.985781777358
+33
+23.3578378632311
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.24697525056
+20
+-748.985781777358
+30
+23.3578378632311
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+450.471084922909
+22
+-752.099463345238
+32
+23.3578378619863
+13
+450.471084922909
+23
+-752.099463345238
+33
+23.3578378619863
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471084922909
+20
+-752.099463345238
+30
+23.3578378619863
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+448.28197715053
+22
+-754.937553544539
+32
+23.3578378606726
+13
+448.28197715053
+23
+-754.937553544539
+33
+23.3578378606726
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.28197715053
+20
+-754.937553544539
+30
+23.3578378606726
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+445.72170439774
+22
+-757.445533046268
+32
+23.3578378593151
+13
+445.72170439774
+23
+-757.445533046268
+33
+23.3578378593151
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.72170439774
+20
+-757.445533046268
+30
+23.3578378593151
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+442.839449157947
+22
+-759.575223903305
+32
+23.3578378579396
+13
+442.839449157947
+23
+-759.575223903305
+33
+23.3578378579396
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839449157947
+20
+-759.575223903305
+30
+23.3578378579396
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+439.690579164597
+22
+-761.285715042239
+32
+23.357837856573
+13
+439.690579164597
+23
+-761.285715042239
+33
+23.357837856573
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690579164597
+20
+-761.285715042239
+30
+23.357837856573
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+436.335583784501
+22
+-762.544148159569
+32
+23.3578378552417
+13
+436.335583784501
+23
+-762.544148159569
+33
+23.3578378552417
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335583784501
+20
+-762.544148159569
+30
+23.3578378552417
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+432.838912025282
+22
+-763.326348925263
+32
+23.3578378539704
+13
+432.838912025282
+23
+-763.326348925263
+33
+23.3578378539704
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838912025282
+20
+-763.326348925263
+30
+23.3578378539704
+11
+0.00828976046904545
+21
+-763.617295762417
+31
+23.3578364570492
+12
+429.267734478649
+22
+-763.617291372796
+32
+23.3578378527852
+13
+429.267734478649
+23
+-763.617291372796
+33
+23.3578378527852
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71777732158
+20
+-724.524762147558
+30
+134.576865377446
+11
+473.64207352602
+21
+-743.137302565856
+31
+112.328325554405
+12
+473.717772252345
+22
+-740.196478791399
+32
+110.675560324675
+13
+473.717772252345
+23
+-740.196478791399
+33
+110.675560324675
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.64207352602
+20
+-743.137302565856
+30
+112.328325554405
+11
+473.71777732158
+21
+-724.524762147558
+31
+134.576865377446
+12
+473.642078676977
+22
+-727.212938735792
+32
+136.614948795724
+13
+473.642078676977
+23
+-727.212938735792
+33
+136.614948795724
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894066860413
+20
+-715.319417548222
+30
+70.2261702210487
+11
+696.758800443365
+21
+-717.703482376537
+31
+98.03426599948
+12
+696.758793128571
+22
+-728.459323997255
+32
+75.4033102397292
+13
+696.758793128571
+23
+-728.459323997255
+33
+75.4033102397292
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758800443365
+20
+-717.703482376537
+30
+98.03426599948
+11
+717.894066860413
+21
+-715.319417548222
+31
+70.2261702210487
+12
+717.894073612081
+22
+-705.391608581792
+32
+91.1148940822994
+13
+717.894073612081
+23
+-705.391608581792
+33
+91.1148940822994
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.22135687427
+20
+-684.591375697813
+30
+79.4250100709702
+11
+718.363098127435
+21
+-679.968320245868
+31
+56.297813526916
+12
+702.221351073972
+22
+-693.120266957808
+32
+61.4796955534277
+13
+702.221351073972
+23
+-693.120266957808
+33
+61.4796955534277
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363098127435
+20
+-679.968320245868
+30
+56.297813526916
+11
+702.22135687427
+21
+-684.591375697813
+31
+79.4250100709702
+12
+718.363103364091
+22
+-672.268220571567
+32
+72.49929930736
+13
+718.363103364091
+23
+-672.268220571567
+33
+72.49929930736
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677497105752
+20
+-773.716303656482
+30
+60.6855157395589
+11
+468.840126975903
+21
+-781.672997259934
+31
+31.0580369189494
+12
+470.677481847252
+22
+-778.860284147472
+32
+30.7703076765303
+13
+470.677481847252
+23
+-778.860284147472
+33
+30.7703076765303
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840126975903
+20
+-781.672997259934
+30
+31.0580369189494
+11
+470.677497105752
+21
+-773.716303656482
+31
+60.6855157395589
+12
+468.840142428527
+22
+-776.463572930403
+32
+61.353838580619
+13
+468.840142428527
+23
+-776.463572930403
+33
+61.353838580619
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829328484993
+20
+-662.181333229905
+30
+49.2897100106075
+11
+753.739272918395
+21
+-687.397248351576
+31
+39.6867423818656
+12
+767.82932233817
+22
+-666.812843070624
+32
+34.6792140832892
+13
+767.82932233817
+23
+-666.812843070624
+33
+34.6792140832892
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739272918395
+20
+-687.397248351576
+30
+39.6867423818656
+11
+767.829328484993
+21
+-662.181333229905
+31
+49.2897100106075
+12
+753.739280225648
+22
+-681.891377242064
+32
+57.0554860936115
+13
+753.739280225648
+23
+-681.891377242064
+33
+57.0554860936115
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471119570638
+20
+-727.926175547966
+30
+103.779563345764
+11
+452.247013852634
+21
+-710.823016652003
+31
+124.188674487802
+12
+452.247009199941
+22
+-725.20697903804
+32
+102.251353856666
+13
+452.247009199941
+23
+-725.20697903804
+33
+102.251353856666
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247013852634
+20
+-710.823016652003
+30
+124.188674487802
+11
+450.471119570638
+21
+-727.926175547966
+31
+103.779563345764
+12
+450.471124298894
+22
+-713.308606140826
+32
+126.073163560098
+13
+450.471124298894
+23
+-713.308606140826
+33
+126.073163560098
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471111788281
+20
+-739.369532914357
+30
+79.7020319508277
+11
+452.247009199941
+21
+-725.20697903804
+31
+102.251353856666
+12
+452.247001541956
+22
+-736.467457257336
+32
+78.5586114938894
+13
+452.247001541956
+23
+-736.467457257336
+33
+78.5586114938894
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247009199941
+20
+-725.20697903804
+30
+102.251353856666
+11
+450.471111788281
+21
+-739.369532914357
+31
+79.7020319508277
+12
+450.471119570638
+22
+-727.926175547966
+32
+103.779563345764
+13
+450.471119570638
+23
+-727.926175547966
+33
+103.779563345764
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955290211342
+20
+-549.169431970937
+30
+215.762940693873
+11
+649.884068906774
+21
+-186.86272
+31
+210.885907146698
+12
+624.955290211342
+22
+-186.86272
+32
+215.762940693873
+13
+624.955290211342
+23
+-186.86272
+33
+215.762940693873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884068906774
+20
+-186.86272
+30
+210.885907146698
+11
+624.955290211342
+21
+-549.169431970937
+31
+215.762940693873
+12
+649.884068906774
+22
+-549.087494127121
+32
+210.885907146698
+13
+649.884068906774
+23
+-549.087494127121
+33
+210.885907146698
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031409168954
+20
+-546.296855411639
+30
+44.7709041931231
+11
+764.995900047839
+21
+-186.86272
+31
+23.3578380793295
+12
+764.995900047839
+22
+-545.937132023437
+32
+23.3578380793295
+13
+764.995900047839
+23
+-545.937132023437
+33
+23.3578380793295
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.995900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+764.031409168954
+21
+-546.296855411639
+31
+44.7709041931231
+12
+764.031409168954
+22
+-186.86272
+32
+44.7709041931231
+13
+764.031409168954
+23
+-186.86272
+33
+44.7709041931231
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546362358205
+20
+-644.548798426367
+30
+162.550587374486
+11
+602.133289350819
+21
+-623.054826905935
+31
+173.833938065877
+12
+623.546355296361
+22
+-622.700434111963
+32
+172.934485818424
+13
+623.546355296361
+23
+-622.700434111963
+33
+172.934485818424
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133289350819
+20
+-623.054826905935
+30
+173.833938065877
+11
+623.546362358205
+21
+-644.548798426367
+31
+162.550587374486
+12
+602.13329645121
+22
+-645.022448764174
+32
+163.393359945326
+13
+602.13329645121
+23
+-645.022448764174
+33
+163.393359945326
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721740244506
+20
+-656.026027291755
+30
+182.972342518915
+11
+448.282004539076
+21
+-630.366836092636
+31
+192.392159030223
+12
+448.282012434797
+22
+-654.795098868987
+32
+180.78210913444
+13
+448.282012434797
+23
+-654.795098868987
+33
+180.78210913444
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282004539076
+20
+-630.366836092636
+30
+192.392159030223
+11
+445.721740244506
+21
+-656.026027291755
+31
+182.972342518915
+12
+445.721732248607
+22
+-631.28782828485
+32
+194.729696180594
+13
+445.721732248607
+23
+-631.28782828485
+33
+194.729696180594
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006085098156
+20
+-613.111377811381
+30
+235.617099433291
+11
+458.222243636608
+21
+-643.225259958184
+31
+225.027705344708
+12
+458.222230868175
+22
+-612.875739362874
+32
+234.648467298763
+13
+458.222230868175
+23
+-612.875739362874
+33
+234.648467298763
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222243636608
+20
+-643.225259958184
+30
+225.027705344708
+11
+455.006085098156
+21
+-613.111377811381
+31
+235.617099433291
+12
+455.006097921195
+22
+-643.590691959854
+32
+225.95519307716
+13
+455.006097921195
+23
+-643.590691959854
+33
+225.95519307716
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.016303397997907
+20
+-722.503108278541
+30
+133.044187229337
+11
+429.267771709642
+21
+-737.984763689194
+31
+109.432571697368
+12
+0.016298390231306
+22
+-737.984793176583
+32
+109.432704078611
+13
+0.016298390231306
+23
+-737.984793176583
+33
+109.432704078611
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267771709642
+20
+-737.984763689194
+30
+109.432571697368
+11
+0.016303397997907
+21
+-722.503108278541
+31
+133.044187229337
+12
+429.267776717416
+22
+-722.503058608961
+32
+133.044085628428
+13
+429.267776717416
+23
+-722.503058608961
+33
+133.044085628428
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267776717416
+20
+-722.503058608961
+30
+133.044085628428
+11
+432.838949191021
+21
+-737.730681730485
+31
+109.289774750901
+12
+429.267771709642
+22
+-737.984763689194
+32
+109.432571697368
+13
+429.267771709642
+23
+-737.984763689194
+33
+109.432571697368
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838949191021
+20
+-737.730681730485
+30
+109.289774750901
+11
+429.267776717416
+21
+-722.503058608961
+31
+133.044085628428
+12
+432.838954191733
+22
+-722.270804730449
+32
+132.867998161508
+13
+432.838954191733
+23
+-722.270804730449
+33
+132.867998161508
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955307916438
+20
+-764.38593632126
+30
+29.2895600085649
+11
+599.602131038669
+21
+-761.101673056328
+31
+57.616722979916
+12
+599.602116671527
+22
+-765.945156978237
+32
+29.4490754688794
+13
+599.602116671527
+23
+-765.945156978237
+33
+29.4490754688794
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602131038669
+20
+-761.101673056328
+30
+57.616722979916
+11
+624.955307916438
+21
+-764.38593632126
+31
+29.2895600085649
+12
+624.955322175969
+22
+-759.578730682939
+32
+57.2462284142879
+13
+624.955322175969
+23
+-759.578730682939
+33
+57.2462284142879
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576386337194
+20
+-546.993607173192
+30
+86.2459300397311
+11
+760.201806938459
+21
+-186.86272
+31
+65.8608020071314
+12
+760.201806938459
+22
+-546.651150672583
+32
+65.8608020071314
+13
+760.201806938459
+23
+-546.651150672583
+33
+65.8608020071314
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201806938459
+20
+-186.86272
+30
+65.8608020071314
+11
+753.576386337194
+21
+-546.993607173192
+31
+86.2459300397311
+12
+753.576386337194
+22
+-186.86272
+32
+86.2459300397311
+13
+753.576386337194
+23
+-186.86272
+33
+86.2459300397311
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201806938459
+20
+-546.651150672583
+30
+65.8608020071314
+11
+764.031409168954
+21
+-186.86272
+31
+44.7709041931231
+12
+764.031409168954
+22
+-546.296855411639
+32
+44.7709041931231
+13
+764.031409168954
+23
+-546.296855411639
+33
+44.7709041931231
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031409168954
+20
+-186.86272
+30
+44.7709041931231
+11
+760.201806938459
+21
+-546.651150672583
+31
+65.8608020071314
+12
+760.201806938459
+22
+-186.86272
+32
+65.8608020071314
+13
+760.201806938459
+23
+-186.86272
+33
+65.8608020071314
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332892871929
+20
+-694.910065817882
+30
+85.2241968080869
+11
+702.221351073972
+21
+-693.120266957808
+31
+61.4796955534277
+12
+684.332886599671
+22
+-704.132938548301
+32
+65.8187023707334
+13
+684.332886599671
+23
+-704.132938548301
+33
+65.8187023707334
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221351073972
+20
+-693.120266957808
+30
+61.4796955534277
+11
+684.332892871929
+21
+-694.910065817882
+31
+85.2241968080869
+12
+702.22135687427
+22
+-684.591375697813
+32
+79.4250100709702
+13
+702.22135687427
+23
+-684.591375697813
+33
+79.4250100709702
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721745102502
+20
+-717.576266444547
+30
+129.308758123214
+11
+448.282018840978
+21
+-697.799916727886
+31
+148.177329336375
+12
+448.282017231929
+22
+-715.574196634022
+32
+127.790856991425
+13
+448.282017231929
+23
+-715.574196634022
+33
+127.790856991425
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282018840978
+20
+-697.799916727886
+30
+148.177329336375
+11
+445.721745102502
+21
+-717.576266444547
+31
+129.308758123214
+12
+445.721746731967
+22
+-699.576473436421
+32
+149.95388604473
+13
+445.721746731967
+23
+-699.576473436421
+33
+149.95388604473
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13330076513
+20
+-665.362464994464
+30
+150.056725386733
+11
+454.667765582876
+21
+-645.022494242574
+31
+163.393370075456
+12
+602.13329645121
+22
+-645.022448764174
+32
+163.393359945326
+13
+602.13329645121
+23
+-645.022448764174
+33
+163.393359945326
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667765582876
+20
+-645.022494242574
+30
+163.393370075456
+11
+602.13330076513
+21
+-665.362464994464
+31
+150.056725386733
+12
+454.667769896794
+22
+-665.362499898554
+32
+150.056742450276
+13
+454.667769896794
+23
+-665.362499898554
+33
+150.056742450276
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955322175969
+20
+-759.578730682939
+30
+57.2462284142879
+11
+599.60214250095
+21
+-752.465070814344
+31
+84.8616271735756
+12
+599.602131038669
+22
+-761.101673056328
+32
+57.616722979916
+13
+599.602131038669
+23
+-761.101673056328
+33
+57.616722979916
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.60214250095
+20
+-752.465070814344
+30
+84.8616271735756
+11
+624.955322175969
+21
+-759.578730682939
+31
+57.2462284142879
+12
+624.955333552396
+22
+-751.006817642042
+32
+84.2870649622931
+13
+624.955333552396
+23
+-751.006817642042
+33
+84.2870649622931
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.016298390231306
+20
+-737.984793176583
+30
+109.432704078611
+11
+429.267763467221
+21
+-750.104609262675
+31
+83.9316672902124
+12
+0.0162901478210909
+22
+-750.104622950446
+32
+83.93183291483
+13
+0.0162901478210909
+23
+-750.104622950446
+33
+83.93183291483
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267763467221
+20
+-750.104609262675
+30
+83.9316672902124
+11
+0.016298390231306
+21
+-737.984793176583
+31
+109.432704078611
+12
+429.267771709642
+22
+-737.984763689194
+32
+109.432571697368
+13
+429.267771709642
+23
+-737.984763689194
+33
+109.432571697368
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717752446486
+20
+-761.101673808691
+30
+57.6167818413605
+11
+473.642038802113
+21
+-769.301079755069
+31
+29.7924413152051
+12
+473.717738079349
+22
+-765.945155901366
+32
+29.449144968378
+13
+473.717738079349
+23
+-765.945155901366
+33
+29.449144968378
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642038802113
+20
+-769.301079755069
+30
+29.7924413152051
+11
+473.717752446486
+21
+-761.101673808691
+31
+57.6167818413605
+12
+473.642053400866
+22
+-764.379514823734
+32
+58.4141748490874
+13
+473.642053400866
+23
+-764.379514823734
+33
+58.4141748490874
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683344551435
+20
+-699.535098538027
+30
+195.129470137406
+11
+455.006114828511
+21
+-723.308225016813
+31
+173.685637622731
+12
+455.006112926336
+22
+-699.207898179883
+32
+194.697902416163
+13
+455.006112926336
+23
+-699.207898179883
+33
+194.697902416163
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006114828511
+20
+-723.308225016813
+30
+173.685637622731
+11
+451.683344551435
+21
+-699.535098538027
+31
+195.129470137406
+12
+451.68334645801
+22
+-723.691181151156
+32
+174.068593757036
+13
+451.68334645801
+23
+-723.691181151156
+33
+174.068593757036
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642065047928
+20
+-635.720877069339
+30
+205.981095949127
+11
+473.101757695049
+21
+-663.582663624963
+31
+196.418146784964
+12
+473.64207352602
+22
+-661.950912950484
+32
+193.514715177954
+13
+473.64207352602
+23
+-661.950912950484
+33
+193.514715177954
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101757695049
+20
+-663.582663624963
+30
+196.418146784964
+11
+473.642065047928
+21
+-635.720877069339
+31
+205.981095949127
+12
+473.101749084159
+22
+-636.941767787464
+32
+209.079797462849
+13
+473.101749084159
+23
+-636.941767787464
+33
+209.079797462849
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894057585081
+20
+-722.308196422019
+30
+48.1794664928565
+11
+696.758793128571
+21
+-728.459323997255
+31
+75.4033102397292
+12
+696.758783079627
+22
+-736.03100461107
+32
+51.5177928651329
+13
+696.758783079627
+23
+-736.03100461107
+33
+51.5177928651329
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758793128571
+20
+-728.459323997255
+30
+75.4033102397292
+11
+717.894057585081
+21
+-722.308196422019
+31
+48.1794664928565
+12
+717.894066860413
+22
+-715.319417548222
+32
+70.2261702210487
+13
+717.894066860413
+23
+-715.319417548222
+33
+70.2261702210487
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839485482368
+20
+-734.454801614587
+30
+107.448702644845
+11
+445.721732248607
+21
+-744.352283565408
+31
+81.6652408886482
+12
+442.839477401402
+22
+-746.337240593148
+32
+82.4473163912804
+13
+442.839477401402
+23
+-746.337240593148
+33
+82.4473163912804
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721732248607
+20
+-744.352283565408
+30
+81.6652408886482
+11
+442.839485482368
+21
+-734.454801614587
+31
+107.448702644845
+12
+445.721740244506
+22
+-732.59492990622
+32
+106.403439896738
+13
+445.721740244506
+23
+-732.59492990622
+33
+106.403439896738
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957376463676
+20
+-653.154439951202
+30
+177.862934850716
+11
+696.758804887548
+21
+-668.611056374494
+31
+154.341547662779
+12
+696.758800443365
+22
+-647.656853392997
+32
+168.080894990074
+13
+696.758800443365
+23
+-647.656853392997
+33
+168.080894990074
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758804887548
+20
+-668.611056374494
+30
+154.341547662779
+11
+673.957376463676
+21
+-653.154439951202
+31
+177.862934850716
+12
+673.957381179691
+22
+-675.39032208669
+32
+163.283210293402
+13
+673.957381179691
+23
+-675.39032208669
+33
+163.283210293402
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884119483233
+20
+-657.135168302204
+30
+184.945974477603
+11
+673.957381179691
+21
+-675.39032208669
+31
+163.283210293402
+12
+673.957376463676
+22
+-653.154439951202
+32
+177.862934850716
+13
+673.957376463676
+23
+-653.154439951202
+33
+177.862934850716
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957381179691
+20
+-675.39032208669
+30
+163.283210293402
+11
+649.884119483233
+21
+-657.135168302204
+31
+184.945974477603
+12
+649.884124396077
+22
+-680.299095957346
+32
+169.757744803614
+13
+649.884124396077
+23
+-680.299095957346
+33
+169.757744803614
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955341833487
+20
+-659.530197478533
+30
+189.207522894826
+11
+649.884124396077
+21
+-680.299095957346
+31
+169.757744803614
+12
+649.884119483233
+22
+-657.135168302204
+32
+184.945974477603
+13
+649.884119483233
+23
+-657.135168302204
+33
+184.945974477603
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884124396077
+20
+-680.299095957346
+30
+169.757744803614
+11
+624.955341833487
+21
+-659.530197478533
+31
+189.207522894826
+12
+624.955346864755
+22
+-683.252487807443
+32
+173.653183437694
+13
+624.955346864755
+23
+-683.252487807443
+33
+173.653183437694
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602150844536
+20
+-660.298108897689
+30
+190.573882756048
+11
+624.955346864755
+21
+-683.252487807443
+31
+173.653183437694
+12
+624.955341833487
+22
+-659.530197478533
+32
+189.207522894826
+13
+624.955341833487
+23
+-659.530197478533
+33
+189.207522894826
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955346864755
+20
+-683.252487807443
+30
+173.653183437694
+11
+599.602150844536
+21
+-660.298108897689
+31
+190.573882756048
+12
+599.602155913773
+22
+-684.199422975673
+32
+174.902160191072
+13
+599.602155913773
+23
+-684.199422975673
+33
+174.902160191072
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717772252345
+20
+-660.298147720458
+30
+190.573891403664
+11
+599.602155913773
+21
+-684.199422975673
+31
+174.902160191072
+12
+599.602150844536
+22
+-660.298108897689
+32
+190.573882756048
+13
+599.602150844536
+23
+-660.298108897689
+33
+190.573882756048
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602155913773
+20
+-684.199422975673
+30
+174.902160191072
+11
+473.717772252345
+21
+-660.298147720458
+31
+190.573891403664
+12
+473.71777732158
+22
+-684.199452771651
+32
+174.902174757415
+13
+473.71777732158
+23
+-684.199452771651
+33
+174.902174757415
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717772252345
+20
+-660.298147720458
+30
+190.573891403664
+11
+473.642078676977
+21
+-686.237536190199
+31
+177.590351345444
+12
+473.71777732158
+22
+-684.199452771651
+32
+174.902174757415
+13
+473.71777732158
+23
+-684.199452771651
+33
+174.902174757415
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642078676977
+20
+-686.237536190199
+30
+177.590351345444
+11
+473.717772252345
+21
+-660.298147720458
+31
+190.573891403664
+12
+473.64207352602
+22
+-661.950912950484
+32
+193.514715177954
+13
+473.64207352602
+23
+-661.950912950484
+33
+193.514715177954
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.64207352602
+20
+-661.950912950484
+30
+193.514715177954
+11
+473.101762926689
+21
+-688.249705748186
+31
+180.244348164837
+12
+473.642078676977
+22
+-686.237536190199
+32
+177.590351345444
+13
+473.642078676977
+23
+-686.237536190199
+33
+177.590351345444
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101762926689
+20
+-688.249705748186
+30
+180.244348164837
+11
+473.64207352602
+21
+-661.950912950484
+31
+193.514715177954
+12
+473.101757695049
+22
+-663.582663624963
+32
+196.418146784964
+13
+473.101757695049
+23
+-663.582663624963
+33
+196.418146784964
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335627427501
+20
+-703.188137968552
+30
+153.565550576497
+11
+439.690620823844
+21
+-720.64180705444
+31
+131.632946903436
+12
+436.335625756533
+22
+-721.646389233184
+32
+132.394587199654
+13
+436.335625756533
+23
+-721.646389233184
+33
+132.394587199654
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690620823844
+20
+-720.64180705444
+30
+131.632946903436
+11
+436.335627427501
+21
+-703.188137968552
+31
+153.565550576497
+12
+439.690622484567
+22
+-702.296711761968
+32
+152.674124370004
+13
+439.690622484567
+23
+-702.296711761968
+33
+152.674124370004
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.545902396357
+20
+-563.749226612815
+30
+1.80477854883065e-13
+11
+843.130722681617
+21
+-608.452917091224
+31
+23.3578380793307
+12
+843.130722681614
+22
+-608.45291709122
+32
+-4.11489509133389e-11
+13
+843.130722681614
+23
+-608.45291709122
+33
+-4.11489509133389e-11
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+847.545902396357
+21
+-563.749226612815
+31
+1.80477854883065e-13
+12
+847.54590239636
+22
+-563.749226612819
+32
+23.3578380793719
+13
+847.54590239636
+23
+-563.749226612819
+33
+23.3578380793719
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.31772029492
+20
+-549.622454002523
+30
+242.726639240051
+11
+451.683281480069
+21
+-186.86272
+31
+242.650939792116
+12
+448.31772029492
+22
+-186.86272
+32
+242.726639240051
+13
+448.31772029492
+23
+-186.86272
+33
+242.726639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683281480069
+20
+-186.86272
+30
+242.650939792116
+11
+448.31772029492
+21
+-549.622454002523
+31
+242.726639240051
+12
+451.683281480069
+22
+-549.621181308374
+32
+242.650939792116
+13
+451.683281480069
+23
+-549.621181308374
+33
+242.650939792116
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677523524142
+20
+-692.042929592268
+30
+185.247506781241
+11
+468.840171011807
+21
+-716.921589517517
+31
+167.299002124079
+12
+470.677525329952
+22
+-714.922321501014
+32
+165.299734107777
+13
+470.677525329952
+23
+-714.922321501014
+33
+165.299734107777
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840171011807
+20
+-716.921589517517
+30
+167.299002124079
+11
+470.677523524142
+21
+-692.042929592268
+31
+185.247506781241
+12
+468.840169183023
+22
+-693.751116561201
+32
+187.500558577709
+13
+468.840169183023
+23
+-693.751116561201
+33
+187.500558577709
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71777732158
+20
+-684.199452771651
+30
+174.902174757415
+11
+599.602157614092
+21
+-705.742266508454
+31
+156.119679116142
+12
+599.602155913773
+22
+-684.199422975673
+32
+174.902160191072
+13
+599.602155913773
+23
+-684.199422975673
+33
+174.902160191072
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602157614092
+20
+-705.742266508454
+30
+156.119679116142
+11
+473.71777732158
+21
+-684.199452771651
+31
+174.902174757415
+12
+473.717779021898
+22
+-705.742288168363
+32
+156.11970077605
+13
+473.717779021898
+23
+-705.742288168363
+33
+156.11970077605
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101762926689
+20
+-729.866935555387
+30
+138.627118353444
+11
+472.10720415349
+21
+-748.850999084323
+31
+115.539466637413
+12
+473.101757695049
+22
+-746.04073417303
+32
+113.960076228591
+13
+473.101757695049
+23
+-746.04073417303
+33
+113.960076228591
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.10720415349
+20
+-748.850999084323
+30
+115.539466637413
+11
+473.101762926689
+21
+-729.866935555387
+31
+138.627118353444
+12
+472.107209463225
+22
+-732.435769686289
+32
+140.574720545467
+13
+472.107209463225
+23
+-732.435769686289
+33
+140.574720545467
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107209463225
+20
+-732.435769686289
+30
+140.574720545467
+11
+470.677518140403
+21
+-751.514112490764
+31
+117.036156904666
+12
+472.10720415349
+22
+-748.850999084323
+32
+115.539466637413
+13
+472.10720415349
+23
+-748.850999084323
+33
+115.539466637413
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677518140403
+20
+-751.514112490764
+30
+117.036156904666
+11
+472.107209463225
+21
+-732.435769686289
+31
+140.574720545467
+12
+470.677523524142
+22
+-734.870094172174
+32
+142.420342197022
+13
+470.677523524142
+23
+-734.870094172174
+33
+142.420342197022
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677523524142
+20
+-734.870094172174
+30
+142.420342197022
+11
+468.84016373079
+21
+-753.978916343896
+31
+118.421395812685
+12
+470.677518140403
+22
+-751.514112490764
+32
+117.036156904666
+13
+470.677518140403
+23
+-751.514112490764
+33
+117.036156904666
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84016373079
+20
+-753.978916343896
+30
+118.421395812685
+11
+470.677523524142
+21
+-734.870094172174
+31
+142.420342197022
+12
+468.840169183023
+22
+-737.123145968814
+32
+144.128529165728
+13
+468.840169183023
+23
+-737.123145968814
+33
+144.128529165728
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247015413237
+20
+-693.583909707096
+30
+143.961322316008
+11
+453.575571294939
+21
+-671.796177947369
+31
+158.542588616663
+12
+453.575572828439
+22
+-691.225448319662
+32
+141.602860928812
+13
+453.575572828439
+23
+-691.225448319662
+33
+141.602860928812
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575571294939
+20
+-671.796177947369
+30
+158.542588616663
+11
+452.247015413237
+21
+-693.583909707096
+31
+143.961322316008
+12
+452.247013852634
+22
+-673.811261880626
+32
+161.200429262907
+13
+452.247013852634
+23
+-673.811261880626
+33
+161.200429262907
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006063894518
+20
+-790.94784918938
+30
+23.3578378548415
+11
+451.683300548936
+21
+-791.196939781596
+31
+32.0323039932388
+12
+451.683295385243
+22
+-791.4884708222
+32
+23.3578378536789
+13
+451.683295385243
+23
+-791.4884708222
+33
+23.3578378536789
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683300548936
+20
+-791.196939781596
+30
+32.0323039932388
+11
+455.006063894518
+21
+-790.94784918938
+31
+23.3578378548415
+12
+455.006069025402
+22
+-790.658170470477
+32
+31.9771884161607
+13
+455.006069025402
+23
+-790.658170470477
+33
+31.9771884161607
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130167954486
+20
+-186.86272
+30
+73.639808098986
+11
+792.00720150166
+21
+-546.363038171439
+31
+48.7110294035543
+12
+792.00720150166
+22
+-186.86272
+32
+48.7110294035543
+13
+792.00720150166
+23
+-186.86272
+33
+48.7110294035543
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.00720150166
+20
+-546.363038171439
+30
+48.7110294035543
+11
+787.130167954486
+21
+-186.86272
+31
+73.639808098986
+12
+787.130167954486
+22
+-546.781824001004
+32
+73.639808098986
+13
+787.130167954486
+23
+-546.781824001004
+33
+73.639808098986
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667748728094
+20
+-730.806274098353
+30
+50.2468973323294
+11
+602.133267369982
+21
+-734.928077619115
+31
+26.2761627640122
+12
+454.667736501664
+22
+-734.928076357629
+32
+26.2762441782473
+13
+454.667736501664
+23
+-734.928076357629
+33
+26.2762441782473
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133267369982
+20
+-734.928077619115
+30
+26.2761627640122
+11
+454.667748728094
+21
+-730.806274098353
+31
+50.2468973323294
+12
+602.133279596418
+22
+-730.806273217008
+32
+50.2468283798967
+13
+602.133279596418
+23
+-730.806273217008
+33
+50.2468283798967
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840169183023
+20
+-737.123145968814
+30
+144.128529165728
+11
+466.630436254431
+21
+-756.198062094967
+31
+119.668573109345
+12
+468.84016373079
+22
+-753.978916343896
+32
+118.421395812685
+13
+468.84016373079
+23
+-753.978916343896
+33
+118.421395812685
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630436254431
+20
+-756.198062094967
+30
+119.668573109345
+11
+468.840169183023
+21
+-737.123145968814
+31
+144.128529165728
+12
+466.630441768332
+22
+-739.151644255831
+32
+145.666467410881
+13
+466.630441768332
+23
+-739.151644255831
+33
+145.666467410881
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636252442318
+20
+-621.293308682581
+30
+169.363127662308
+11
+623.546345594915
+21
+-599.640891643383
+31
+180.244333371467
+12
+644.636242951136
+22
+-598.733544865996
+32
+176.514545976725
+13
+644.636242951136
+23
+-598.733544865996
+33
+176.514545976725
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546345594915
+20
+-599.640891643383
+30
+180.244333371467
+11
+644.636252442318
+21
+-621.293308682581
+31
+169.363127662308
+12
+623.546355296361
+22
+-622.700434111963
+32
+172.934485818424
+13
+623.546355296361
+23
+-622.700434111963
+33
+172.934485818424
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717752446486
+20
+-607.239369239249
+30
+211.479086426299
+11
+599.60214250095
+21
+-634.484214570593
+31
+202.842483429208
+12
+599.602131038669
+22
+-607.239310377804
+32
+211.479085673936
+13
+599.602131038669
+23
+-607.239310377804
+33
+211.479085673936
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.60214250095
+20
+-634.484214570593
+30
+202.842483429208
+11
+473.717752446486
+21
+-607.239369239249
+31
+211.479086426299
+12
+473.717763908762
+22
+-634.484263142475
+32
+202.842487443351
+13
+473.717763908762
+23
+-634.484263142475
+33
+202.842487443351
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739280225648
+20
+-681.891377242064
+30
+57.0554860936115
+11
+736.997677401125
+21
+-706.00295242646
+31
+44.2129177479029
+12
+753.739272918395
+22
+-687.397248351576
+32
+39.6867423818656
+13
+753.739272918395
+23
+-687.397248351576
+33
+39.6867423818656
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997677401125
+20
+-706.00295242646
+30
+44.2129177479029
+11
+753.739280225648
+21
+-681.891377242064
+31
+57.0554860936115
+12
+736.997685757261
+22
+-699.706769202407
+32
+64.0747689619352
+13
+736.997685757261
+23
+-699.706769202407
+33
+64.0747689619352
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894073612081
+20
+-705.391608581792
+30
+91.1148940822994
+11
+696.758804887548
+21
+-703.964135051352
+31
+118.98846898236
+12
+696.758800443365
+22
+-717.703482376537
+32
+98.03426599948
+13
+696.758800443365
+23
+-717.703482376537
+33
+98.03426599948
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758804887548
+20
+-703.964135051352
+30
+118.98846898236
+11
+717.894073612081
+21
+-705.391608581792
+31
+91.1148940822994
+12
+717.894077714131
+22
+-692.709977485149
+32
+110.455949073024
+13
+717.894077714131
+23
+-692.709977485149
+33
+110.455949073024
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642020846985
+20
+-186.86272
+30
+220.692200425201
+11
+473.71772029492
+21
+-549.195745909472
+31
+217.326639240051
+12
+473.71772029492
+22
+-186.86272
+32
+217.326639240051
+13
+473.71772029492
+23
+-186.86272
+33
+217.326639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-549.195745909472
+30
+217.326639240051
+11
+473.642020846985
+21
+-186.86272
+31
+220.692200425201
+12
+473.642020846985
+22
+-549.252284780773
+32
+220.6922004252
+13
+473.642020846985
+23
+-549.252284780773
+33
+220.6922004252
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222243636608
+20
+-643.225259958184
+30
+225.027705344708
+11
+461.269994170696
+21
+-671.278610214274
+31
+210.111811908437
+12
+461.26998493348
+22
+-642.699946567149
+32
+223.694427829008
+13
+461.26998493348
+23
+-642.699946567149
+33
+223.694427829008
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269994170696
+20
+-671.278610214274
+30
+210.111811908437
+11
+458.222243636608
+21
+-643.225259958184
+31
+225.027705344708
+12
+458.222252930963
+22
+-671.980703984767
+32
+211.3610708001
+13
+458.222252930963
+23
+-671.980703984767
+33
+211.3610708001
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431270729568
+20
+-648.531199395009
+30
+169.63653352158
+11
+454.797676017751
+21
+-624.370524419528
+31
+177.173126470384
+12
+454.797683261242
+22
+-646.78088064753
+32
+166.522129452237
+13
+454.797683261242
+23
+-646.78088064753
+33
+166.522129452237
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797676017751
+20
+-624.370524419528
+30
+177.173126470384
+11
+454.431270729568
+21
+-648.531199395009
+31
+169.63653352158
+12
+454.431263343628
+22
+-625.680128816835
+32
+180.496989380173
+13
+454.431263343628
+23
+-625.680128816835
+33
+180.496989380173
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162788245333154
+20
+-758.636496454861
+30
+57.0173045265452
+11
+429.267737950976
+21
+-763.421251234373
+31
+29.1909851596944
+12
+0.0162646316092562
+22
+-763.421247562364
+32
+29.1912221451116
+13
+0.0162646316092562
+23
+-763.421247562364
+33
+29.1912221451116
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267737950976
+20
+-763.421251234373
+30
+29.1909851596944
+11
+0.0162788245333154
+21
+-758.636496454861
+31
+57.0173045265452
+12
+429.267752143919
+22
+-758.636493889386
+32
+57.017103815686
+13
+429.267752143919
+23
+-758.636493889386
+33
+57.017103815686
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471070624061
+20
+-548.959849908146
+30
+203.284158309243
+11
+452.246960920592
+21
+-186.86272
+31
+200.172233713933
+12
+452.246960920592
+22
+-548.907571431286
+32
+200.172233713933
+13
+452.246960920592
+23
+-548.907571431286
+33
+200.172233713933
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246960920592
+20
+-186.86272
+30
+200.172233713933
+11
+450.471070624061
+21
+-548.959849908146
+31
+203.284158309243
+12
+450.471070624061
+22
+-186.86272
+32
+203.284158309244
+13
+450.471070624061
+23
+-186.86272
+33
+203.284158309244
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006097921195
+20
+-643.590691959854
+30
+225.95519307716
+11
+458.222252930963
+21
+-671.980703984767
+31
+211.3610708001
+12
+458.222243636608
+22
+-643.225259958184
+32
+225.027705344708
+13
+458.222243636608
+23
+-643.225259958184
+33
+225.027705344708
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222252930963
+20
+-671.980703984767
+30
+211.3610708001
+11
+455.006097921195
+21
+-643.590691959854
+31
+225.95519307716
+12
+455.006107255299
+22
+-672.469112270075
+32
+212.230111445991
+13
+455.006107255299
+23
+-672.469112270075
+33
+212.230111445991
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031424128692
+20
+-589.417441849078
+30
+25.9365225576139
+11
+764.267940787943
+21
+-584.829097037034
+31
+23.3578379974678
+12
+764.031423295207
+22
+-590.643016368677
+32
+23.3578379961104
+13
+764.031423295207
+23
+-590.643016368677
+33
+23.3578379961104
+70
+0
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838949191021
+20
+-737.730681730485
+30
+109.289774750901
+11
+436.335612575248
+21
+-749.104396759147
+31
+83.5375802413299
+12
+432.838940960221
+22
+-749.833439201604
+32
+83.824824767603
+13
+432.838940960221
+23
+-749.833439201604
+33
+83.824824767603
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335612575248
+20
+-749.104396759147
+30
+83.5375802413299
+11
+432.838949191021
+21
+-737.730681730485
+31
+109.289774750901
+12
+436.335620774804
+22
+-737.047580997407
+32
+108.905866027708
+13
+436.335620774804
+23
+-737.047580997407
+33
+108.905866027708
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642078676977
+20
+-727.212938735792
+30
+136.614948795724
+11
+473.101757695049
+21
+-746.04073417303
+31
+113.960076228591
+12
+473.64207352602
+22
+-743.137302565856
+32
+112.328325554405
+13
+473.64207352602
+23
+-743.137302565856
+33
+112.328325554405
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101757695049
+20
+-746.04073417303
+30
+113.960076228591
+11
+473.642078676977
+21
+-727.212938735792
+31
+136.614948795724
+12
+473.101762926689
+22
+-729.866935555387
+32
+138.627118353444
+13
+473.101762926689
+23
+-729.866935555387
+33
+138.627118353444
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997695535365
+20
+-649.940320006495
+30
+129.715362054641
+11
+717.894079090038
+21
+-677.51110607242
+31
+127.888518682951
+12
+736.997696774917
+22
+-665.645302851503
+32
+116.022715463229
+13
+736.997696774917
+23
+-665.645302851503
+33
+116.022715463229
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894079090038
+20
+-677.51110607242
+30
+127.888518682951
+11
+736.997695535365
+21
+-649.940320006495
+31
+129.715362054641
+12
+717.894077714131
+22
+-660.078536464024
+32
+143.087390097436
+13
+717.894077714131
+23
+-660.078536464024
+33
+143.087390097436
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758804887548
+20
+-668.611056374494
+30
+154.341547662779
+11
+717.894079090038
+21
+-677.51110607242
+31
+127.888518682951
+12
+717.894077714131
+22
+-660.078536464024
+32
+143.087390097436
+13
+717.894077714131
+23
+-660.078536464024
+33
+143.087390097436
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894079090038
+20
+-677.51110607242
+30
+127.888518682951
+11
+696.758804887548
+21
+-668.611056374494
+31
+154.341547662779
+12
+696.758806378212
+22
+-687.497596031337
+32
+137.875008640862
+13
+696.758806378212
+23
+-687.497596031337
+33
+137.875008640862
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957381179691
+20
+-675.39032208669
+30
+163.283210293402
+11
+696.758806378212
+21
+-687.497596031337
+31
+137.875008640862
+12
+696.758804887548
+22
+-668.611056374494
+32
+154.341547662779
+13
+696.758804887548
+23
+-668.611056374494
+33
+154.341547662779
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758806378212
+20
+-687.497596031337
+30
+137.875008640862
+11
+673.957381179691
+21
+-675.39032208669
+31
+163.283210293402
+12
+673.957382761532
+22
+-695.432070757716
+32
+145.809483366442
+13
+673.957382761532
+23
+-695.432070757716
+33
+145.809483366442
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884124396077
+20
+-680.299095957346
+30
+169.757744803614
+11
+673.957382761532
+21
+-695.432070757716
+31
+145.809483366442
+12
+673.957381179691
+22
+-675.39032208669
+32
+163.283210293402
+13
+673.957381179691
+23
+-675.39032208669
+33
+163.283210293402
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957382761532
+20
+-695.432070757716
+30
+145.809483366442
+11
+649.884124396077
+21
+-680.299095957346
+31
+169.757744803614
+12
+649.884126043939
+22
+-701.17731493105
+32
+151.554727539197
+13
+649.884126043939
+23
+-701.17731493105
+33
+151.554727539197
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955346864755
+20
+-683.252487807443
+30
+173.653183437694
+11
+649.884126043939
+21
+-701.17731493105
+31
+151.554727539197
+12
+649.884124396077
+22
+-680.299095957346
+32
+169.757744803614
+13
+649.884124396077
+23
+-680.299095957346
+33
+169.757744803614
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884126043939
+20
+-701.17731493105
+30
+151.554727539197
+11
+624.955346864755
+21
+-683.252487807443
+31
+173.653183437694
+12
+624.955348552338
+22
+-704.633972822346
+32
+155.011385430145
+13
+624.955348552338
+23
+-704.633972822346
+33
+155.011385430145
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829332959368
+20
+-655.602108768076
+30
+63.1328050448759
+11
+753.739280225648
+21
+-681.891377242064
+31
+57.0554860936115
+12
+767.829328484993
+22
+-662.181333229905
+32
+49.2897100106075
+13
+767.829328484993
+23
+-662.181333229905
+33
+49.2897100106075
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739280225648
+20
+-681.891377242064
+30
+57.0554860936115
+11
+767.829332959368
+21
+-655.602108768076
+31
+63.1328050448759
+12
+753.73928554472
+22
+-674.070091498716
+32
+73.5119548557674
+13
+753.73928554472
+23
+-674.070091498716
+33
+73.5119548557674
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928554472
+20
+-674.070091498716
+30
+73.5119548557674
+11
+736.997685757261
+21
+-699.706769202407
+31
+64.0747689619352
+12
+753.739280225648
+22
+-681.891377242064
+32
+57.0554860936115
+13
+753.739280225648
+23
+-681.891377242064
+33
+57.0554860936115
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997685757261
+20
+-699.706769202407
+30
+64.0747689619352
+11
+753.73928554472
+21
+-674.070091498716
+31
+73.5119548557674
+12
+736.997691839832
+22
+-690.762816990611
+32
+82.8933973835911
+13
+736.997691839832
+23
+-690.762816990611
+33
+82.8933973835911
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997685757261
+20
+-699.706769202407
+30
+64.0747689619352
+11
+717.894073612081
+21
+-705.391608581792
+31
+91.1148940822994
+12
+717.894066860413
+22
+-715.319417548222
+32
+70.2261702210487
+13
+717.894066860413
+23
+-715.319417548222
+33
+70.2261702210487
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894073612081
+20
+-705.391608581792
+30
+91.1148940822994
+11
+736.997685757261
+21
+-699.706769202407
+31
+64.0747689619352
+12
+736.997691839832
+22
+-690.762816990611
+32
+82.8933973835911
+13
+736.997691839832
+23
+-690.762816990611
+33
+82.8933973835911
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.26998493348
+20
+-642.699946567149
+30
+223.694427829008
+11
+464.090784277369
+21
+-670.376318084996
+31
+208.5063328654
+12
+464.090775113584
+22
+-642.024842985963
+32
+221.980972610863
+13
+464.090775113584
+23
+-642.024842985963
+33
+221.980972610863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090784277369
+20
+-670.376318084996
+30
+208.5063328654
+11
+461.26998493348
+21
+-642.699946567149
+31
+223.694427829008
+12
+461.269994170696
+22
+-671.278610214274
+32
+210.111811908437
+13
+461.269994170696
+23
+-671.278610214274
+33
+210.111811908437
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090762524528
+20
+-781.089165318495
+30
+62.4790981961044
+11
+461.26998493348
+21
+-773.317015214971
+31
+93.0773591680305
+12
+461.269972243544
+22
+-782.87863142832
+32
+62.9144188854628
+13
+461.269972243544
+23
+-782.87863142832
+33
+62.9144188854628
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.26998493348
+20
+-773.317015214971
+30
+93.0773591680305
+11
+464.090762524528
+21
+-781.089165318495
+31
+62.4790981961044
+12
+464.090775113584
+22
+-771.603559996758
+32
+92.4022555870175
+13
+464.090775113584
+23
+-771.603559996758
+33
+92.4022555870175
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471101097006
+20
+-747.425197006803
+30
+54.2897470886059
+11
+452.247001541956
+21
+-736.467457257336
+31
+78.5586114938894
+12
+452.246991021541
+22
+-744.394381773506
+32
+53.5524466917642
+13
+452.246991021541
+23
+-744.394381773506
+33
+53.5524466917642
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247001541956
+20
+-736.467457257336
+30
+78.5586114938894
+11
+450.471101097006
+21
+-747.425197006803
+31
+54.2897470886059
+12
+450.471111788281
+22
+-739.369532914357
+32
+79.7020319508277
+13
+450.471111788281
+23
+-739.369532914357
+33
+79.7020319508277
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246991021541
+20
+-744.394381773506
+30
+53.5524466917642
+11
+453.575559198051
+21
+-733.364267924859
+31
+77.3359522782304
+12
+453.575548860337
+22
+-741.153531203966
+32
+52.7640516820845
+13
+453.575548860337
+23
+-741.153531203966
+33
+52.7640516820845
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575559198051
+20
+-733.364267924859
+30
+77.3359522782304
+11
+452.246991021541
+21
+-744.394381773506
+31
+53.5524466917642
+12
+452.247001541956
+22
+-736.467457257336
+32
+78.5586114938894
+13
+452.247001541956
+23
+-736.467457257336
+33
+78.5586114938894
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575548860337
+20
+-741.153531203966
+30
+52.7640516820845
+11
+454.431263343628
+21
+-730.119576764422
+31
+76.0575414220674
+12
+454.431253196946
+22
+-737.764901599428
+32
+51.9397070211046
+13
+454.431253196946
+23
+-737.764901599428
+33
+51.9397070211046
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431263343628
+20
+-730.119576764422
+30
+76.0575414220674
+11
+453.575548860337
+21
+-741.153531203966
+31
+52.7640516820845
+12
+453.575559198051
+22
+-733.364267924859
+32
+77.3359522782304
+13
+453.575559198051
+23
+-733.364267924859
+33
+77.3359522782304
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431253196946
+20
+-737.764901599428
+30
+51.9397070211046
+11
+454.797676017751
+21
+-726.7957138545
+31
+74.7479370250946
+12
+454.797666066761
+22
+-734.293588076417
+32
+51.0952482583018
+13
+454.797666066761
+23
+-734.293588076417
+33
+51.0952482583018
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797676017751
+20
+-726.7957138545
+30
+74.7479370250946
+11
+454.431253196946
+21
+-737.764901599428
+31
+51.9397070211046
+12
+454.431263343628
+22
+-730.119576764422
+32
+76.0575414220674
+13
+454.431263343628
+23
+-730.119576764422
+33
+76.0575414220674
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797666066761
+20
+-734.293588076417
+30
+51.0952482583018
+11
+454.667758482489
+21
+-723.456530152174
+31
+73.4322964107047
+12
+454.667748728094
+22
+-730.806274098353
+32
+50.2468973323294
+13
+454.667748728094
+23
+-730.806274098353
+33
+50.2468973323294
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667758482489
+20
+-723.456530152174
+30
+73.4322964107047
+11
+454.797666066761
+21
+-734.293588076417
+31
+51.0952482583018
+12
+454.797676017751
+22
+-726.7957138545
+32
+74.7479370250946
+13
+454.797676017751
+23
+-726.7957138545
+33
+74.7479370250946
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667758482489
+20
+-723.456530152174
+30
+73.4322964107047
+11
+602.133279596418
+21
+-730.806273217008
+31
+50.2468283798967
+12
+454.667748728094
+22
+-730.806274098353
+32
+50.2468973323294
+13
+454.667748728094
+23
+-730.806274098353
+33
+50.2468973323294
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133279596418
+20
+-730.806273217008
+30
+50.2468283798967
+11
+454.667758482489
+21
+-723.456530152174
+31
+73.4322964107047
+12
+602.133289350819
+22
+-723.456525449862
+32
+73.4322395118387
+13
+602.133289350819
+23
+-723.456525449862
+33
+73.4322395118387
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133289350819
+20
+-723.456525449862
+30
+73.4322395118387
+11
+623.546345594915
+21
+-729.866920753093
+31
+50.0183042486409
+12
+602.133279596418
+22
+-730.806273217008
+32
+50.2468283798967
+13
+602.133279596418
+23
+-730.806273217008
+33
+50.2468283798967
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546345594915
+20
+-729.866920753093
+30
+50.0183042486409
+11
+602.133289350819
+21
+-723.456525449862
+31
+73.4322395118387
+12
+623.546355296361
+22
+-722.557073202373
+32
+73.0778467179566
+13
+623.546355296361
+23
+-722.557073202373
+33
+73.0778467179566
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546355296361
+20
+-722.557073202373
+30
+73.0778467179566
+11
+644.636242951136
+21
+-726.13713335826
+31
+49.1109574716297
+12
+623.546345594915
+22
+-729.866920753093
+32
+50.0183042486409
+13
+623.546345594915
+23
+-729.866920753093
+33
+50.0183042486409
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636242951136
+20
+-726.13713335826
+30
+49.1109574716297
+11
+623.546355296361
+21
+-722.557073202373
+31
+73.0778467179566
+12
+644.636252442318
+22
+-718.985715046116
+32
+71.6707212889357
+13
+644.636252442318
+23
+-718.985715046116
+33
+71.6707212889357
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636252442318
+20
+-718.985715046116
+30
+71.6707212889357
+11
+665.021370191738
+21
+-719.684397959595
+31
+47.5412056189011
+12
+644.636242951136
+22
+-726.13713335826
+32
+49.1109574716297
+13
+644.636242951136
+23
+-726.13713335826
+33
+49.1109574716297
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021370191738
+20
+-719.684397959595
+30
+47.5412056189011
+11
+644.636252442318
+21
+-718.985715046116
+31
+71.6707212889357
+12
+665.021379319153
+22
+-712.807071282992
+32
+69.2363238103713
+13
+665.021379319153
+23
+-712.807071282992
+33
+69.2363238103713
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+672.962315038389
+20
+-626.669841908538
+30
+-6.49720277579036e-12
+11
+681.150249762187
+21
+-615.402249914861
+31
+5.83945951982948
+12
+681.150249762187
+22
+-615.402249914861
+32
+-7.58006990508875e-12
+13
+681.150249762187
+23
+-615.402249914861
+33
+-7.58006990508875e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+681.150249762187
+20
+-615.402249914861
+30
+5.83945951982948
+11
+672.962315038389
+21
+-626.669841908538
+31
+-6.49720277579036e-12
+12
+672.962315038389
+22
+-626.669841908537
+32
+5.83945951983038
+13
+672.962315038389
+23
+-626.669841908537
+33
+5.83945951983038
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+700.992216732393
+20
+-563.749226612814
+30
+5.83945951982569
+11
+0.00176534768975319
+21
+-186.86272
+31
+5.83945951983706
+12
+764.995900047839
+22
+-186.86272
+32
+5.83945951983706
+13
+764.995900047839
+23
+-186.86272
+33
+5.83945951983706
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.00176534768975319
+20
+-186.86272
+30
+5.83945951983706
+11
+700.992216732393
+21
+-563.749226612814
+31
+5.83945951982569
+12
+0.000467548731367373
+22
+-674.37054094885
+32
+5.83945951983706
+13
+0.000467548731367373
+23
+-674.37054094885
+33
+5.83945951983706
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+700.992216732393
+21
+-563.749226612814
+31
+5.83945951982569
+12
+698.091838084213
+22
+-577.37232127131
+32
+5.83945951982641
+13
+698.091838084213
+23
+-577.37232127131
+33
+5.83945951982641
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+698.091838084213
+21
+-577.37232127131
+31
+5.83945951982641
+12
+693.784141830299
+22
+-590.617873632807
+32
+5.83945951982749
+13
+693.784141830299
+23
+-590.617873632807
+33
+5.83945951982749
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+693.784141830299
+21
+-590.617873632807
+31
+5.83945951982749
+12
+688.116269958089
+22
+-603.340928801175
+32
+5.8394595198284
+13
+688.116269958089
+23
+-603.340928801175
+33
+5.8394595198284
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+688.116269958089
+21
+-603.340928801175
+31
+5.8394595198284
+12
+681.150249762187
+22
+-615.402249914861
+32
+5.83945951982948
+13
+681.150249762187
+23
+-615.402249914861
+33
+5.83945951982948
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+681.150249762187
+21
+-615.402249914861
+31
+5.83945951982948
+12
+672.962315038389
+22
+-626.669841908537
+32
+5.83945951983038
+13
+672.962315038389
+23
+-626.669841908537
+33
+5.83945951983038
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+672.962315038389
+21
+-626.669841908537
+31
+5.83945951983038
+12
+663.642071806513
+22
+-637.020396022971
+32
+5.83945951983146
+13
+663.642071806513
+23
+-637.020396022971
+33
+5.83945951983146
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+663.642071806513
+21
+-637.020396022971
+31
+5.83945951983146
+12
+653.29151769208
+22
+-646.340639254846
+32
+5.83945951983237
+13
+653.29151769208
+23
+-646.340639254846
+33
+5.83945951983237
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+653.29151769208
+21
+-646.340639254846
+31
+5.83945951983237
+12
+642.023925698403
+22
+-654.528573978644
+32
+5.83945951983345
+13
+642.023925698403
+23
+-654.528573978644
+33
+5.83945951983345
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+642.023925698403
+21
+-654.528573978644
+31
+5.83945951983345
+12
+629.962604584718
+22
+-661.494594174546
+32
+5.83945951983435
+13
+629.962604584718
+23
+-661.494594174546
+33
+5.83945951983435
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+629.962604584718
+21
+-661.494594174546
+31
+5.83945951983435
+12
+617.239549416349
+22
+-667.162466046756
+32
+5.83945951983507
+13
+617.239549416349
+23
+-667.162466046756
+33
+5.83945951983507
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+617.239549416349
+21
+-667.162466046756
+31
+5.83945951983507
+12
+603.993997054852
+22
+-671.47016230067
+32
+5.83945951983598
+13
+603.993997054852
+23
+-671.47016230067
+33
+5.83945951983598
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.000467548731367373
+20
+-674.37054094885
+30
+5.83945951983706
+11
+603.993997054852
+21
+-671.47016230067
+31
+5.83945951983598
+12
+590.370902396357
+22
+-674.37054094885
+32
+5.83945951983706
+13
+590.370902396357
+23
+-674.37054094885
+33
+5.83945951983706
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.116269958089
+20
+-603.340928801176
+30
+-8.48245917950408e-12
+11
+693.784141830299
+21
+-590.617873632807
+31
+5.83945951982749
+12
+693.784141830299
+22
+-590.617873632807
+32
+-9.20437059903634e-12
+13
+693.784141830299
+23
+-590.617873632807
+33
+-9.20437059903634e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+693.784141830299
+20
+-590.617873632807
+30
+5.83945951982749
+11
+688.116269958089
+21
+-603.340928801176
+31
+-8.48245917950408e-12
+12
+688.116269958089
+22
+-603.340928801175
+32
+5.8394595198284
+13
+688.116269958089
+23
+-603.340928801175
+33
+5.8394595198284
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+663.642071806514
+20
+-637.020396022971
+30
+-5.59481350137503e-12
+11
+672.962315038389
+21
+-626.669841908537
+31
+5.83945951983038
+12
+672.962315038389
+22
+-626.669841908538
+32
+-6.49720277579036e-12
+13
+672.962315038389
+23
+-626.669841908538
+33
+-6.49720277579036e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+672.962315038389
+20
+-626.669841908537
+30
+5.83945951983038
+11
+663.642071806514
+21
+-637.020396022971
+31
+-5.59481350137503e-12
+12
+663.642071806513
+22
+-637.020396022971
+32
+5.83945951983146
+13
+663.642071806513
+23
+-637.020396022971
+33
+5.83945951983146
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+663.642071806513
+20
+-637.020396022971
+30
+5.83945951983146
+11
+653.29151769208
+21
+-646.340639254847
+31
+-4.51194637207664e-12
+12
+653.29151769208
+22
+-646.340639254846
+32
+5.83945951983237
+13
+653.29151769208
+23
+-646.340639254846
+33
+5.83945951983237
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+653.29151769208
+20
+-646.340639254847
+30
+-4.51194637207664e-12
+11
+663.642071806513
+21
+-637.020396022971
+31
+5.83945951983146
+12
+663.642071806514
+22
+-637.020396022971
+32
+-5.59481350137503e-12
+13
+663.642071806514
+23
+-637.020396022971
+33
+-5.59481350137503e-12
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431263343628
+20
+-730.119576764422
+30
+76.0575414220674
+11
+454.797683261242
+21
+-716.144716838612
+31
+97.1582932541697
+12
+454.797676017751
+22
+-726.7957138545
+32
+74.7479370250946
+13
+454.797676017751
+23
+-726.7957138545
+33
+74.7479370250946
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797683261242
+20
+-716.144716838612
+30
+97.1582932541697
+11
+454.431263343628
+21
+-730.119576764422
+31
+76.0575414220674
+12
+454.431270729568
+22
+-719.25912090813
+32
+98.9086120013344
+13
+454.431270729568
+23
+-719.25912090813
+33
+98.9086120013344
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267771709642
+20
+-659.055159092928
+30
+188.362176301584
+11
+0.0162901478210909
+21
+-633.55442031161
+31
+200.482035565403
+12
+429.267763467221
+22
+-633.554254686993
+32
+200.482021877632
+13
+429.267763467221
+23
+-633.554254686993
+33
+200.482021877632
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162901478210909
+20
+-633.55442031161
+30
+200.482035565403
+11
+429.267771709642
+21
+-659.055159092928
+31
+188.362176301584
+12
+0.016298390231306
+22
+-659.055291474171
+32
+188.362205788973
+13
+0.016298390231306
+23
+-659.055291474171
+33
+188.362205788973
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683329511579
+20
+-643.789222672817
+30
+226.45907411243
+11
+455.006107255299
+21
+-672.469112270075
+31
+212.230111445991
+12
+455.006097921195
+22
+-643.590691959854
+32
+225.95519307716
+13
+455.006097921195
+23
+-643.590691959854
+33
+225.95519307716
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006107255299
+20
+-672.469112270075
+30
+212.230111445991
+11
+451.683329511579
+21
+-643.789222672817
+31
+226.45907411243
+12
+451.683338867278
+22
+-672.734452813075
+32
+212.702239692806
+13
+451.683338867278
+23
+-672.734452813075
+33
+212.702239692806
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636264956545
+20
+-680.297547066858
+30
+130.674959677109
+11
+665.021389999784
+21
+-690.558190885324
+31
+108.824546057595
+12
+644.636263548619
+22
+-695.850119169612
+32
+112.836707846937
+13
+644.636263548619
+23
+-695.850119169612
+33
+112.836707846937
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021389999784
+20
+-690.558190885324
+30
+108.824546057595
+11
+644.636264956545
+21
+-680.297547066858
+31
+130.674959677109
+12
+665.021391353748
+22
+-675.601700530057
+32
+125.979113140781
+13
+665.021391353748
+23
+-675.601700530057
+33
+125.979113140781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269972243544
+20
+-782.87863142832
+30
+62.9144188854628
+11
+458.222243636608
+21
+-774.650292730724
+31
+93.6026725589312
+12
+458.222230868175
+22
+-784.271054681722
+32
+63.2531519626526
+13
+458.222230868175
+23
+-784.271054681722
+33
+63.2531519626526
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222243636608
+20
+-774.650292730724
+30
+93.6026725589312
+11
+461.269972243544
+21
+-782.87863142832
+31
+62.9144188854628
+12
+461.26998493348
+22
+-773.317015214971
+32
+93.0773591680305
+13
+461.26998493348
+23
+-773.317015214971
+33
+93.0773591680305
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282004539076
+20
+-630.366836092636
+30
+192.392159030223
+11
+450.471101097006
+21
+-603.912334485117
+31
+197.802609624747
+12
+450.471111788281
+22
+-629.324619346527
+32
+189.746945529741
+13
+450.471111788281
+23
+-629.324619346527
+33
+189.746945529741
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471101097006
+20
+-603.912334485117
+30
+197.802609624747
+11
+448.282004539076
+21
+-630.366836092636
+31
+192.392159030223
+12
+448.281993692064
+22
+-604.584376828467
+32
+200.565167970899
+13
+448.281993692064
+23
+-604.584376828467
+33
+200.565167970899
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84015475682
+20
+-640.279768170507
+30
+217.551860904389
+11
+466.630436254431
+21
+-669.291160506739
+31
+206.575474706326
+12
+468.84016373079
+22
+-668.043983209856
+32
+204.35632895538
+13
+468.84016373079
+23
+-668.043983209856
+33
+204.35632895538
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630436254431
+20
+-669.291160506739
+30
+206.575474706326
+11
+468.84015475682
+21
+-640.279768170507
+31
+217.551860904389
+12
+466.630427178961
+22
+-641.212917863139
+32
+219.920254933339
+13
+466.630427178961
+23
+-641.212917863139
+33
+219.920254933339
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797683261242
+20
+-646.78088064753
+30
+166.522129452237
+11
+454.667758482489
+21
+-623.054883804802
+31
+173.83394276819
+12
+454.667765582876
+22
+-645.022494242574
+32
+163.393370075456
+13
+454.667765582876
+23
+-645.022494242574
+33
+163.393370075456
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667758482489
+20
+-623.054883804802
+30
+173.83394276819
+11
+454.797683261242
+21
+-646.78088064753
+31
+166.522129452237
+12
+454.797676017751
+22
+-624.370524419528
+32
+177.173126470384
+13
+454.797676017751
+23
+-624.370524419528
+33
+177.173126470384
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13329645121
+20
+-645.022448764174
+30
+163.393359945326
+11
+454.667758482489
+21
+-623.054883804802
+31
+173.83394276819
+12
+602.133289350819
+22
+-623.054826905935
+32
+173.833938065877
+13
+602.133289350819
+23
+-623.054826905935
+33
+173.833938065877
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667758482489
+20
+-623.054883804802
+30
+173.83394276819
+11
+602.13329645121
+21
+-645.022448764174
+31
+163.393359945326
+12
+454.667765582876
+22
+-645.022494242574
+32
+163.393370075456
+13
+454.667765582876
+23
+-645.022494242574
+33
+163.393370075456
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090775113584
+20
+-771.603559996758
+30
+92.4022555870175
+11
+461.269994170696
+21
+-759.734399297279
+31
+121.656022816523
+12
+461.26998493348
+22
+-773.317015214971
+32
+93.0773591680305
+13
+461.26998493348
+23
+-773.317015214971
+33
+93.0773591680305
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269994170696
+20
+-759.734399297279
+30
+121.656022816523
+11
+464.090775113584
+21
+-771.603559996758
+31
+92.4022555870175
+12
+464.090784277369
+22
+-758.12892025415
+32
+120.753730687408
+13
+464.090784277369
+23
+-758.12892025415
+33
+120.753730687408
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006107255299
+20
+-672.469112270075
+30
+212.230111445991
+11
+458.222258577851
+21
+-698.605625061081
+31
+193.903521183332
+12
+458.222252930963
+22
+-671.980703984767
+32
+211.3610708001
+13
+458.222252930963
+23
+-671.980703984767
+33
+211.3610708001
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222258577851
+20
+-698.605625061081
+30
+193.903521183332
+11
+455.006107255299
+21
+-672.469112270075
+31
+212.230111445991
+12
+455.006112926336
+22
+-699.207898179883
+32
+194.697902416163
+13
+455.006112926336
+23
+-699.207898179883
+33
+194.697902416163
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-186.862719999999
+30
+2052.97755335166
+11
+69.0235178451101
+21
+-280.294079999999
+31
+2069.61810878401
+12
+69.0235178451106
+22
+-186.862719999999
+32
+2069.61810878401
+13
+69.0235178451106
+23
+-186.862719999999
+33
+2069.61810878401
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.0235178451101
+20
+-280.294079999999
+30
+2069.61810878401
+11
+100.155807358117
+21
+-186.862719999999
+31
+2052.97755335166
+12
+100.155807358117
+22
+-280.294079999999
+32
+2052.97755335166
+13
+100.155807358117
+23
+-280.294079999999
+33
+2052.97755335166
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-280.29408
+30
+1753.52666880208
+11
+127.443487339903
+21
+-186.86272
+31
+1775.92108901406
+12
+100.155807358117
+22
+-186.86272
+32
+1753.52666880208
+13
+100.155807358117
+23
+-186.86272
+33
+1753.52666880208
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339903
+20
+-186.86272
+30
+1775.92108901406
+11
+100.155807358117
+21
+-280.29408
+31
+1753.52666880208
+12
+127.443487339902
+22
+-280.29408
+32
+1775.92108901406
+13
+127.443487339902
+23
+-280.29408
+33
+1775.92108901406
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.837907551873
+20
+-280.29408
+30
+1803.20876899584
+11
+127.443487339903
+21
+-186.86272
+31
+1775.92108901406
+12
+127.443487339902
+22
+-280.29408
+32
+1775.92108901406
+13
+127.443487339902
+23
+-280.29408
+33
+1775.92108901406
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339903
+20
+-186.86272
+30
+1775.92108901406
+11
+149.837907551873
+21
+-280.29408
+31
+1803.20876899584
+12
+149.837907551873
+22
+-186.86272
+32
+1803.20876899584
+13
+149.837907551873
+23
+-186.86272
+33
+1803.20876899584
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.837907551873
+20
+-280.29408
+30
+2003.29545315791
+11
+166.47846298422
+21
+-186.86272
+31
+1972.1631636449
+12
+166.478462984219
+22
+-280.29408
+32
+1972.1631636449
+13
+166.478462984219
+23
+-280.29408
+33
+1972.1631636449
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.47846298422
+20
+-186.86272
+30
+1972.1631636449
+11
+149.837907551873
+21
+-280.29408
+31
+2003.29545315791
+12
+149.837907551873
+22
+-186.86272
+32
+2003.29545315791
+13
+149.837907551873
+23
+-186.86272
+33
+2003.29545315791
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505834726
+20
+-616.515297047424
+30
+85.6286672029373
+11
+753.576410189591
+21
+-595.926735646398
+31
+76.0356884766169
+12
+753.576412075941
+22
+-604.820821451585
+32
+70.2039737536023
+13
+753.576412075941
+23
+-604.820821451585
+33
+70.2039737536023
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576410189591
+20
+-595.926735646398
+30
+76.0356884766169
+11
+744.27505834726
+21
+-616.515297047424
+31
+85.6286672029373
+12
+744.27505599199
+22
+-605.41026540619
+32
+92.9100649699753
+13
+744.27505599199
+23
+-605.41026540619
+33
+92.9100649699753
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101749084159
+20
+-636.941767787464
+30
+209.079797462849
+11
+472.10720415349
+21
+-665.162054034067
+31
+199.228411696097
+12
+473.101757695049
+22
+-663.582663624963
+32
+196.418146784964
+13
+473.101757695049
+23
+-663.582663624963
+33
+196.418146784964
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.10720415349
+20
+-665.162054034067
+30
+199.228411696097
+11
+473.101749084159
+21
+-636.941767787464
+31
+209.079797462849
+12
+472.107195414063
+22
+-638.12348215123
+32
+212.079066347413
+13
+472.107195414063
+23
+-638.12348215123
+33
+212.079066347413
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546355296361
+20
+-622.700434111963
+30
+172.934485818424
+11
+602.133279596418
+21
+-599.869415774734
+31
+181.183685835358
+12
+623.546345594915
+22
+-599.640891643383
+32
+180.244333371467
+13
+623.546345594915
+23
+-599.640891643383
+33
+180.244333371467
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133279596418
+20
+-599.869415774734
+30
+181.183685835358
+11
+623.546355296361
+21
+-622.700434111963
+31
+172.934485818424
+12
+602.133289350819
+22
+-623.054826905935
+32
+173.833938065877
+13
+602.133289350819
+23
+-623.054826905935
+33
+173.833938065877
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+6.30894498883872e-05
+20
+-699.581046774633
+30
+195.189985865263
+11
+448.317785291547
+21
+-723.744834584347
+31
+174.122247190222
+12
+448.317783384355
+22
+-699.580940660874
+32
+195.189933989489
+13
+448.317783384355
+23
+-699.580940660874
+33
+195.189933989489
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317785291547
+20
+-723.744834584347
+30
+174.122247190222
+11
+6.30894498883872e-05
+21
+-699.581046774633
+31
+195.189985865263
+12
+6.49966391634282e-05
+22
+-723.744911722756
+32
+174.12232432863
+13
+6.49966391634282e-05
+23
+-723.744911722756
+33
+174.12232432863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797687662105
+20
+-702.539296405596
+30
+117.908241171874
+11
+454.667771343765
+21
+-683.695448366281
+31
+134.072860976189
+12
+454.667769896794
+22
+-699.679329838522
+32
+115.739912506852
+13
+454.667769896794
+23
+-699.679329838522
+33
+115.739912506852
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667771343765
+20
+-683.695448366281
+30
+134.072860976189
+11
+454.797687662105
+21
+-702.539296405596
+31
+117.908241171874
+12
+454.797689138238
+22
+-686.233268095701
+32
+136.610680705353
+13
+454.797689138238
+23
+-686.233268095701
+33
+136.610680705353
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667771343765
+20
+-683.695448366281
+30
+134.072860976189
+11
+602.13330076513
+21
+-699.679312774979
+31
+115.739877602763
+12
+454.667769896794
+22
+-699.679329838522
+32
+115.739912506852
+13
+454.667769896794
+23
+-699.679329838522
+33
+115.739912506852
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13330076513
+20
+-699.679312774979
+30
+115.739877602763
+11
+454.667771343765
+21
+-683.695448366281
+31
+134.072860976189
+12
+602.133302212101
+22
+-683.695422993079
+32
+134.072835602987
+13
+602.133302212101
+23
+-683.695422993079
+33
+134.072835602987
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222252930963
+20
+-671.980703984767
+30
+211.3610708001
+11
+461.269999782869
+21
+-697.7398487668
+31
+192.761586394987
+12
+461.269994170696
+22
+-671.278610214274
+32
+210.111811908437
+13
+461.269994170696
+23
+-671.278610214274
+33
+210.111811908437
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269999782869
+20
+-697.7398487668
+30
+192.761586394987
+11
+458.222252930963
+21
+-671.980703984767
+31
+211.3610708001
+12
+458.222258577851
+22
+-698.605625061081
+32
+193.903521183332
+13
+458.222258577851
+23
+-698.605625061081
+33
+193.903521183332
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602116671527
+20
+-579.071662867255
+30
+216.322569598682
+11
+624.955322175969
+21
+-606.868815812022
+31
+209.956143300585
+12
+624.955307916438
+22
+-578.912147406784
+32
+214.763348941721
+13
+624.955307916438
+23
+-578.912147406784
+33
+214.763348941721
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955322175969
+20
+-606.868815812022
+30
+209.956143300585
+11
+599.602116671527
+21
+-579.071662867255
+31
+216.322569598682
+12
+599.602131038669
+22
+-607.239310377804
+32
+211.479085673936
+13
+599.602131038669
+23
+-607.239310377804
+33
+211.479085673936
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683329511579
+20
+-776.081661498503
+30
+94.1666352734205
+11
+448.31777769836
+21
+-762.390973409752
+31
+123.149041059795
+12
+448.317768339636
+22
+-776.152256350036
+32
+94.1944509495159
+13
+448.317768339636
+23
+-776.152256350036
+33
+94.1944509495159
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.31777769836
+20
+-762.390973409752
+30
+123.149041059795
+11
+451.683329511579
+21
+-776.081661498503
+31
+94.1666352734205
+12
+451.683338867278
+22
+-762.324827081794
+32
+123.111865415064
+13
+451.683338867278
+23
+-762.324827081794
+33
+123.111865415064
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466058322552
+20
+-664.91507027919
+30
+50.366817478493
+11
+744.27505599199
+21
+-642.532652352182
+31
+55.7876780202442
+12
+744.275052115393
+22
+-648.23289118406
+32
+43.7940230954864
+13
+744.275052115393
+23
+-648.23289118406
+33
+43.7940230954864
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505599199
+20
+-642.532652352182
+30
+55.7876780202442
+11
+732.466058322552
+21
+-664.91507027919
+31
+50.366817478493
+12
+732.466062914084
+22
+-658.163576116691
+32
+64.5723786137012
+13
+732.466062914084
+23
+-658.163576116691
+33
+64.5723786137012
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006097921195
+20
+-775.577780463213
+30
+93.968104560508
+11
+451.683338867278
+21
+-762.324827081794
+31
+123.111865415064
+12
+451.683329511579
+22
+-776.081661498503
+32
+94.1666352734205
+13
+451.683329511579
+23
+-776.081661498503
+33
+94.1666352734205
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683338867278
+20
+-762.324827081794
+30
+123.111865415064
+11
+455.006097921195
+21
+-775.577780463213
+31
+93.968104560508
+12
+455.006107255299
+22
+-761.852698834952
+32
+122.846524872111
+13
+455.006107255299
+23
+-761.852698834952
+33
+122.846524872111
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546317277054
+20
+-548.656939099171
+30
+185.255996085023
+11
+602.133251163261
+21
+-186.86272
+31
+186.220486963908
+12
+623.546317277054
+22
+-186.86272
+32
+185.255996085023
+13
+623.546317277054
+23
+-186.86272
+33
+185.255996085023
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133251163261
+20
+-186.86272
+30
+186.220486963908
+11
+623.546317277054
+21
+-548.656939099171
+31
+185.255996085023
+12
+602.133251163261
+22
+-548.67314817835
+32
+186.220486963908
+13
+602.133251163261
+23
+-548.67314817835
+33
+186.220486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.82931463357
+20
+-569.196470349584
+30
+119.787647909415
+11
+753.739272918395
+21
+-589.30932977233
+31
+137.774660970991
+12
+767.82932233817
+22
+-584.301801471681
+32
+117.190255690543
+13
+767.82932233817
+23
+-584.301801471681
+33
+117.190255690543
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739272918395
+20
+-589.30932977233
+30
+137.774660970991
+11
+767.82931463357
+21
+-569.196470349584
+31
+119.787647909415
+12
+753.73926375928
+22
+-571.352333223692
+32
+140.862402824032
+13
+753.73926375928
+23
+-571.352333223692
+33
+140.862402824032
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73926375928
+20
+-571.352333223692
+30
+140.862402824032
+11
+736.997677401125
+21
+-593.835505140242
+31
+156.380365045419
+12
+753.739272918395
+22
+-589.30932977233
+32
+137.774660970991
+13
+753.739272918395
+23
+-589.30932977233
+33
+137.774660970991
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997677401125
+20
+-593.835505140242
+30
+156.380365045419
+11
+753.73926375928
+21
+-571.352333223692
+31
+140.862402824032
+12
+736.997666927312
+22
+-573.300963343833
+32
+159.911321013811
+13
+736.997666927312
+23
+-573.300963343833
+33
+159.911321013811
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642078676977
+20
+-686.237536190199
+30
+177.590351345444
+11
+473.101764681482
+21
+-710.482718842918
+31
+160.860131450129
+12
+473.642080404707
+22
+-708.127668368109
+32
+158.505080975556
+13
+473.642080404707
+23
+-708.127668368109
+33
+158.505080975556
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101764681482
+20
+-710.482718842918
+30
+160.860131450129
+11
+473.642078676977
+21
+-686.237536190199
+31
+177.590351345444
+12
+473.101762926689
+22
+-688.249705748186
+32
+180.244348164837
+13
+473.101762926689
+23
+-688.249705748186
+33
+180.244348164837
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201828278129
+20
+-598.389085203732
+30
+48.7664978222319
+11
+764.031425007948
+21
+-579.704781244013
+31
+37.0766018107078
+12
+764.031425302868
+22
+-583.441376980459
+32
+33.8187896004645
+13
+764.031425302868
+23
+-583.441376980459
+33
+33.8187896004645
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031425007948
+20
+-579.704781244013
+30
+37.0766018107078
+11
+760.201828278129
+21
+-598.389085203732
+31
+48.7664978222319
+12
+760.20182781144
+22
+-592.476194788978
+32
+53.921748202446
+13
+760.20182781144
+23
+-592.476194788978
+33
+53.921748202446
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721740244506
+20
+-732.59492990622
+30
+106.403439896738
+11
+448.282017231929
+21
+-715.574196634022
+31
+127.790856991425
+12
+448.282012434797
+22
+-730.404696521621
+32
+105.17251147419
+13
+448.282012434797
+23
+-730.404696521621
+33
+105.17251147419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282017231929
+20
+-715.574196634022
+30
+127.790856991425
+11
+445.721740244506
+21
+-732.59492990622
+31
+106.403439896738
+12
+445.721745102502
+22
+-717.576266444547
+32
+129.308758123214
+13
+445.721745102502
+23
+-717.576266444547
+33
+129.308758123214
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13330076513
+20
+-699.679312774979
+30
+115.739877602763
+11
+623.546362358205
+21
+-712.173174760634
+31
+94.9262110334071
+12
+602.13329645121
+22
+-713.015947331523
+32
+95.3998613711292
+13
+602.13329645121
+23
+-713.015947331523
+33
+95.3998613711292
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546362358205
+20
+-712.173174760634
+30
+94.9262110334071
+11
+602.13330076513
+21
+-699.679312774979
+31
+115.739877602763
+12
+623.546366648706
+22
+-698.908941954744
+32
+115.155805645761
+13
+623.546366648706
+23
+-698.908941954744
+33
+115.155805645761
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630441768332
+20
+-739.151644255831
+30
+145.666467410881
+11
+464.090784277369
+21
+-758.12892025415
+31
+120.753730687408
+12
+466.630436254431
+22
+-756.198062094967
+32
+119.668573109345
+13
+466.630436254431
+23
+-756.198062094967
+33
+119.668573109345
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090784277369
+20
+-758.12892025415
+30
+120.753730687408
+11
+466.630441768332
+21
+-739.151644255831
+31
+145.666467410881
+12
+464.090789844927
+22
+-740.916621855406
+32
+147.004613346736
+13
+464.090789844927
+23
+-740.916621855406
+33
+147.004613346736
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090784277369
+20
+-758.12892025415
+30
+120.753730687408
+11
+461.269999782869
+21
+-742.384173786494
+31
+148.117261370797
+12
+461.269994170696
+22
+-759.734399297279
+32
+121.656022816523
+13
+461.269994170696
+23
+-759.734399297279
+33
+121.656022816523
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269999782869
+20
+-742.384173786494
+30
+148.117261370797
+11
+464.090784277369
+21
+-758.12892025415
+31
+120.753730687408
+12
+464.090789844927
+22
+-740.916621855406
+32
+147.004613346736
+13
+464.090789844927
+23
+-740.916621855406
+33
+147.004613346736
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269994170696
+20
+-759.734399297279
+30
+121.656022816523
+11
+458.222258577851
+21
+-743.526108574926
+31
+148.983037664963
+12
+458.222252930963
+22
+-760.983658189012
+32
+122.358116586891
+13
+458.222252930963
+23
+-760.983658189012
+33
+122.358116586891
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222258577851
+20
+-743.526108574926
+30
+148.983037664963
+11
+461.269994170696
+21
+-759.734399297279
+31
+121.656022816523
+12
+461.269999782869
+22
+-742.384173786494
+32
+148.117261370797
+13
+461.269999782869
+23
+-742.384173786494
+33
+148.117261370797
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363103364091
+20
+-672.268220571567
+30
+72.49929930736
+11
+732.466065703719
+21
+-649.539320894872
+31
+77.7254338656707
+12
+732.466062914084
+22
+-658.163576116691
+32
+64.5723786137012
+13
+732.466062914084
+23
+-658.163576116691
+33
+64.5723786137012
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466065703719
+20
+-649.539320894872
+30
+77.7254338656707
+11
+718.363103364091
+21
+-672.268220571567
+31
+72.49929930736
+12
+718.363106545679
+22
+-662.432231199989
+32
+87.5003989193992
+13
+718.363106545679
+23
+-662.432231199989
+33
+87.5003989193992
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466062914084
+20
+-658.163576116691
+30
+64.5723786137012
+11
+744.27505834726
+21
+-635.251254586263
+31
+66.8927096622113
+12
+744.27505599199
+22
+-642.532652352182
+32
+55.7876780202442
+13
+744.27505599199
+23
+-642.532652352182
+33
+55.7876780202442
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505834726
+20
+-635.251254586263
+30
+66.8927096622113
+11
+732.466062914084
+21
+-658.163576116691
+31
+64.5723786137012
+12
+732.466065703719
+22
+-649.539320894872
+32
+77.7254338656707
+13
+732.466065703719
+23
+-649.539320894872
+33
+77.7254338656707
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505599199
+20
+-642.532652352182
+30
+55.7876780202442
+11
+753.576412075941
+21
+-619.82656113575
+31
+55.1982340679256
+12
+753.576410189591
+22
+-625.658275857869
+32
+46.3041482621511
+13
+753.576410189591
+23
+-625.658275857869
+33
+46.3041482621511
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576412075941
+20
+-619.82656113575
+30
+55.1982340679256
+11
+744.27505599199
+21
+-642.532652352182
+31
+55.7876780202442
+12
+744.27505834726
+22
+-635.251254586263
+32
+66.8927096622113
+13
+744.27505834726
+23
+-635.251254586263
+33
+66.8927096622113
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576410189591
+20
+-625.658275857869
+30
+46.3041482621511
+11
+760.20182781144
+21
+-603.54433558335
+31
+42.8536074069585
+12
+760.201826420081
+22
+-607.845772298605
+32
+36.2933847183422
+13
+760.201826420081
+23
+-607.845772298605
+33
+36.2933847183422
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.20182781144
+20
+-603.54433558335
+30
+42.8536074069585
+11
+753.576410189591
+21
+-625.658275857869
+31
+46.3041482621511
+12
+753.576412075941
+22
+-619.82656113575
+32
+55.1982340679256
+13
+753.576412075941
+23
+-619.82656113575
+33
+55.1982340679256
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.00721860814
+20
+-586.233981212786
+30
+36.6113938325108
+11
+787.130190684252
+21
+-609.757662381006
+31
+47.5643349390529
+12
+792.007218281129
+22
+-589.846284379929
+32
+32.4682094668199
+13
+792.007218281129
+23
+-589.846284379929
+33
+32.4682094668199
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130190684252
+20
+-609.757662381006
+30
+47.5643349390529
+11
+792.00721860814
+21
+-586.233981212786
+31
+36.6113938325108
+12
+787.130191214298
+22
+-603.902540579901
+32
+54.279953197846
+13
+787.130191214298
+23
+-603.902540579901
+33
+54.279953197846
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130191214298
+20
+-603.902540579901
+30
+54.279953197846
+11
+779.024169157982
+21
+-628.985710803041
+31
+62.1423838125873
+12
+787.130190684252
+22
+-609.757662381006
+32
+47.5643349390529
+13
+787.130190684252
+23
+-609.757662381006
+33
+47.5643349390529
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024169157982
+20
+-628.985710803041
+30
+62.1423838125873
+11
+787.130191214298
+21
+-603.902540579901
+31
+54.279953197846
+12
+779.024169884095
+22
+-620.964740882273
+32
+71.3421534984996
+13
+779.024169884095
+23
+-620.964740882273
+33
+71.3421534984996
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024169884095
+20
+-620.964740882273
+30
+71.3421534984996
+11
+767.829335677824
+21
+-647.197908223015
+31
+75.9502497139702
+12
+779.024169157982
+22
+-628.985710803041
+32
+62.1423838125873
+13
+779.024169157982
+23
+-628.985710803041
+33
+62.1423838125873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829335677824
+20
+-647.197908223015
+30
+75.9502497139702
+11
+779.024169884095
+21
+-620.964740882273
+31
+71.3421534984996
+12
+767.829336589646
+22
+-637.125515922866
+32
+87.5029285374647
+13
+767.829336589646
+23
+-637.125515922866
+33
+87.5029285374647
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829336589646
+20
+-637.125515922866
+30
+87.5029285374647
+11
+753.73928877638
+21
+-664.079300898903
+31
+88.749145475747
+12
+767.829335677824
+22
+-647.197908223015
+32
+75.9502497139702
+13
+767.829335677824
+23
+-647.197908223015
+33
+75.9502497139702
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928877638
+20
+-664.079300898903
+30
+88.749145475747
+11
+767.829336589646
+21
+-637.125515922866
+31
+87.5029285374647
+12
+753.739289860341
+22
+-652.105388357143
+32
+102.482800970232
+13
+753.739289860341
+23
+-652.105388357143
+33
+102.482800970232
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576412075941
+20
+-619.82656113575
+30
+55.1982340679256
+11
+760.201828278129
+21
+-598.389085203732
+31
+48.7664978222319
+12
+760.20182781144
+22
+-603.54433558335
+32
+42.8536074069585
+13
+760.20182781144
+23
+-603.54433558335
+33
+42.8536074069585
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201828278129
+20
+-598.389085203732
+30
+48.7664978222319
+11
+753.576412075941
+21
+-619.82656113575
+31
+55.1982340679256
+12
+753.576412708658
+22
+-612.837280222141
+32
+63.214692839186
+13
+753.576412708658
+23
+-612.837280222141
+33
+63.214692839186
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739264589701
+20
+-690.205036468984
+30
+23.3578379709152
+11
+736.997666927312
+21
+-709.533908392784
+31
+23.6783759511398
+12
+739.751559375878
+22
+-706.400475394532
+32
+23.357837962948
+13
+739.751559375878
+23
+-706.400475394532
+33
+23.357837962948
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997666927312
+20
+-709.533908392784
+30
+23.6783759511398
+11
+753.739264589701
+21
+-690.205036468984
+31
+23.3578379709152
+12
+753.739272918395
+22
+-687.397248351576
+32
+39.6867423818656
+13
+753.739272918395
+23
+-687.397248351576
+33
+39.6867423818656
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997666927312
+20
+-709.533908392784
+30
+23.6783759511398
+11
+753.739272918395
+21
+-687.397248351576
+31
+39.6867423818656
+12
+736.997677401125
+22
+-706.00295242646
+32
+44.2129177479029
+13
+736.997677401125
+23
+-706.00295242646
+33
+44.2129177479029
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997666927312
+20
+-709.533908392784
+30
+23.6783759511398
+11
+717.894057585081
+21
+-722.308196422019
+31
+48.1794664928565
+12
+717.894045959123
+22
+-726.227566234427
+32
+25.3860745623198
+13
+717.894045959123
+23
+-726.227566234427
+33
+25.3860745623198
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894057585081
+20
+-722.308196422019
+30
+48.1794664928565
+11
+736.997666927312
+21
+-709.533908392784
+31
+23.6783759511398
+12
+736.997677401125
+22
+-706.00295242646
+32
+44.2129177479029
+13
+736.997677401125
+23
+-706.00295242646
+33
+44.2129177479029
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894045959123
+20
+-726.227566234427
+30
+25.3860745623198
+11
+696.758783079627
+21
+-736.03100461107
+31
+51.5177928651329
+12
+696.758770484001
+22
+-740.277270942125
+32
+26.8233094768247
+13
+696.758770484001
+23
+-740.277270942125
+33
+26.8233094768247
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758783079627
+20
+-736.03100461107
+30
+51.5177928651329
+11
+717.894045959123
+21
+-726.227566234427
+31
+25.3860745623198
+12
+717.894057585081
+22
+-722.308196422019
+32
+48.1794664928565
+13
+717.894057585081
+23
+-722.308196422019
+33
+48.1794664928565
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221361580333
+20
+-660.639487120937
+30
+111.016899733167
+11
+684.332896682708
+21
+-652.814503888805
+31
+133.506322083721
+12
+702.221360398304
+22
+-645.663323591295
+32
+124.074113264079
+13
+702.221360398304
+23
+-645.663323591295
+33
+124.074113264079
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332896682708
+20
+-652.814503888805
+30
+133.506322083721
+11
+702.221361580333
+21
+-660.639487120937
+31
+111.016899733167
+12
+684.332897960916
+22
+-669.009252539392
+32
+119.38666515078
+13
+684.332897960916
+23
+-669.009252539392
+33
+119.38666515078
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838915479952
+20
+-578.783910422824
+30
+213.508718295381
+11
+429.26772029492
+21
+-549.153237717187
+31
+214.795486963908
+12
+432.838897838644
+22
+-549.148351803013
+32
+214.504708726405
+13
+432.838897838644
+23
+-549.148351803013
+33
+214.504708726405
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.26772029492
+20
+-549.153237717187
+30
+214.795486963908
+11
+432.838915479952
+21
+-578.783910422824
+31
+213.508718295381
+12
+429.267737950976
+22
+-578.813572557816
+32
+213.798663854844
+13
+429.267737950976
+23
+-578.813572557816
+33
+213.798663854844
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282017231929
+20
+-677.413444384727
+30
+165.951609244563
+11
+450.471119570638
+21
+-653.402150740311
+31
+178.303588160926
+12
+450.471124298894
+22
+-675.695750953173
+32
+163.686018751541
+13
+450.471124298894
+23
+-675.695750953173
+33
+163.686018751541
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471119570638
+20
+-653.402150740311
+30
+178.303588160926
+11
+448.282017231929
+21
+-677.413444384727
+31
+165.951609244563
+12
+448.282012434797
+22
+-654.795098868987
+32
+180.78210913444
+13
+448.282012434797
+23
+-654.795098868987
+33
+180.78210913444
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471124298894
+20
+-675.695750953173
+30
+163.686018751541
+11
+452.247009199941
+21
+-651.873941250939
+31
+175.584391651154
+12
+452.247013852634
+22
+-673.811261880626
+32
+161.200429262907
+13
+452.247013852634
+23
+-673.811261880626
+33
+161.200429262907
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247009199941
+20
+-651.873941250939
+30
+175.584391651154
+11
+450.471124298894
+21
+-675.695750953173
+31
+163.686018751541
+12
+450.471119570638
+22
+-653.402150740311
+32
+178.303588160926
+13
+450.471119570638
+23
+-653.402150740311
+33
+178.303588160926
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247013852634
+20
+-673.811261880626
+30
+161.200429262907
+11
+453.575566723046
+21
+-650.239827098532
+31
+172.676755002411
+12
+453.575571294939
+22
+-671.796177947369
+32
+158.542588616663
+13
+453.575571294939
+23
+-671.796177947369
+33
+158.542588616663
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575566723046
+20
+-650.239827098532
+30
+172.676755002411
+11
+452.247013852634
+21
+-673.811261880626
+31
+161.200429262907
+12
+452.247009199941
+22
+-651.873941250939
+32
+175.584391651154
+13
+452.247009199941
+23
+-651.873941250939
+33
+175.584391651154
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575571294939
+20
+-671.796177947369
+30
+158.542588616663
+11
+454.431270729568
+21
+-648.531199395009
+31
+169.63653352158
+12
+454.431275216977
+22
+-669.689208643299
+32
+155.763553572255
+13
+454.431275216977
+23
+-669.689208643299
+33
+155.763553572255
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431270729568
+20
+-648.531199395009
+30
+169.63653352158
+11
+453.575571294939
+21
+-671.796177947369
+31
+158.542588616663
+12
+453.575566723046
+22
+-650.239827098532
+32
+172.676755002411
+13
+453.575566723046
+23
+-650.239827098532
+33
+172.676755002411
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130167954486
+20
+-546.781824001004
+30
+73.639808098986
+11
+779.024152399766
+21
+-566.87065726704
+31
+97.0515138238504
+12
+787.130178451143
+22
+-564.415115565838
+32
+73.0471892828083
+13
+787.130178451143
+23
+-564.415115565838
+33
+73.0471892828083
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024152399766
+20
+-566.87065726704
+30
+97.0515138238504
+11
+787.130167954486
+21
+-546.781824001004
+31
+73.639808098986
+12
+779.024140682123
+22
+-547.186238711366
+32
+97.7130668174428
+13
+779.024140682123
+23
+-547.186238711366
+33
+97.7130668174428
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024140682123
+20
+-547.186238711366
+30
+97.7130668174428
+11
+767.82931463357
+21
+-569.196470349584
+31
+119.787647909415
+12
+779.024152399766
+22
+-566.87065726704
+32
+97.0515138238504
+13
+779.024152399766
+23
+-566.87065726704
+33
+97.0515138238504
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.82931463357
+20
+-569.196470349584
+30
+119.787647909415
+11
+779.024140682123
+21
+-547.186238711366
+31
+97.7130668174428
+12
+767.829301759449
+22
+-547.569288532173
+32
+120.514493197419
+13
+767.829301759449
+23
+-547.569288532173
+33
+120.514493197419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901675
+20
+-767.779871902213
+30
+-2.12061479487602e-10
+11
+718.95840239636
+21
+-786.469309831082
+31
+23.3578380791782
+12
+718.958402396357
+22
+-786.469309831078
+32
+-1.92750349015114e-10
+13
+718.958402396357
+23
+-786.469309831078
+33
+-1.92750349015114e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+746.929122901675
+21
+-767.779871902213
+31
+-2.12061479487602e-10
+12
+746.929122901678
+22
+-767.779871902217
+32
+23.3578380791593
+13
+746.929122901678
+23
+-767.779871902217
+33
+23.3578380791593
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+827.969621169947
+20
+-662.165838331307
+30
+-1.61527680120344e-10
+11
+813.090985614623
+21
+-692.336726612819
+31
+23.3578380791782
+12
+813.09098561462
+22
+-692.336726612815
+32
+-1.92750349015114e-10
+13
+813.09098561462
+23
+-692.336726612815
+33
+-1.92750349015114e-10
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+813.090985614623
+20
+-692.336726612819
+30
+23.3578380791782
+11
+827.969621169947
+21
+-662.165838331307
+31
+-1.61527680120344e-10
+12
+827.96962116995
+22
+-662.165838331311
+32
+23.3578380792096
+13
+827.96962116995
+23
+-662.165838331311
+33
+23.3578380792096
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101757695049
+20
+-746.04073417303
+30
+113.960076228591
+11
+472.107195414063
+21
+-761.701653732916
+31
+88.5008947532808
+12
+473.101749084159
+22
+-758.702384848233
+32
+87.3191803898169
+13
+473.101749084159
+23
+-758.702384848233
+33
+87.3191803898169
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107195414063
+20
+-761.701653732916
+30
+88.5008947532808
+11
+473.101757695049
+21
+-746.04073417303
+31
+113.960076228591
+12
+472.10720415349
+22
+-748.850999084323
+32
+115.539466637413
+13
+472.10720415349
+23
+-748.850999084323
+33
+115.539466637413
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275052115393
+20
+-593.416610482006
+30
+98.6103038030606
+11
+753.576402819491
+21
+-576.182653575586
+31
+83.8148703207571
+12
+753.576407084801
+22
+-586.320946175488
+32
+80.6010436173693
+13
+753.576407084801
+23
+-586.320946175488
+33
+80.6010436173693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576402819491
+20
+-576.182653575586
+30
+83.8148703207571
+11
+744.275052115393
+21
+-593.416610482006
+31
+98.6103038030606
+12
+744.275046789786
+22
+-580.758079568763
+32
+102.623043056121
+13
+744.275046789786
+23
+-580.758079568763
+33
+102.623043056121
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.20182781144
+20
+-603.54433558335
+30
+42.8536074069585
+11
+764.031425302868
+21
+-583.441376980459
+31
+33.8187896004645
+12
+764.031425007948
+22
+-586.699189190326
+32
+30.0821938636906
+13
+764.031425007948
+23
+-586.699189190326
+33
+30.0821938636906
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031425302868
+20
+-583.441376980459
+30
+33.8187896004645
+11
+760.20182781144
+21
+-603.54433558335
+31
+42.8536074069585
+12
+760.201828278129
+22
+-598.389085203732
+32
+48.7664978222319
+13
+760.201828278129
+23
+-598.389085203732
+33
+48.7664978222319
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928877638
+20
+-664.079300898903
+30
+88.749145475747
+11
+736.997691839832
+21
+-690.762816990611
+31
+82.8933973835911
+12
+753.73928554472
+22
+-674.070091498716
+32
+73.5119548557674
+13
+753.73928554472
+23
+-674.070091498716
+33
+73.5119548557674
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997691839832
+20
+-690.762816990611
+30
+82.8933973835911
+11
+753.73928877638
+21
+-664.079300898903
+31
+88.749145475747
+12
+736.997695535365
+22
+-679.337949441333
+32
+100.317732616843
+13
+736.997695535365
+23
+-679.337949441333
+33
+100.317732616843
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840171011807
+20
+-716.921589517517
+30
+167.299002124079
+11
+466.630441768332
+21
+-739.151644255831
+31
+145.666467410881
+12
+468.840169183023
+22
+-737.123145968814
+32
+144.128529165728
+13
+468.840169183023
+23
+-737.123145968814
+33
+144.128529165728
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630441768332
+20
+-739.151644255831
+30
+145.666467410881
+11
+468.840171011807
+21
+-716.921589517517
+31
+167.299002124079
+12
+466.6304436178
+22
+-718.721597772832
+32
+169.099010379212
+13
+466.6304436178
+23
+-718.721597772832
+33
+169.099010379212
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.6304436178
+20
+-718.721597772832
+30
+169.099010379212
+11
+464.090789844927
+21
+-740.916621855406
+31
+147.004613346736
+12
+466.630441768332
+22
+-739.151644255831
+32
+145.666467410881
+13
+466.630441768332
+23
+-739.151644255831
+33
+145.666467410881
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090789844927
+20
+-740.916621855406
+30
+147.004613346736
+11
+466.6304436178
+21
+-718.721597772832
+31
+169.099010379212
+12
+464.090791712392
+22
+-720.287768351753
+32
+170.665180957976
+13
+464.090791712392
+23
+-720.287768351753
+33
+170.665180957976
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363098127435
+20
+-679.968320245868
+30
+56.297813526916
+11
+732.466062914084
+21
+-658.163576116691
+31
+64.5723786137012
+12
+732.466058322552
+22
+-664.91507027919
+32
+50.366817478493
+13
+732.466058322552
+23
+-664.91507027919
+33
+50.366817478493
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466062914084
+20
+-658.163576116691
+30
+64.5723786137012
+11
+718.363098127435
+21
+-679.968320245868
+31
+56.297813526916
+12
+718.363103364091
+22
+-672.268220571567
+32
+72.49929930736
+13
+718.363103364091
+23
+-672.268220571567
+33
+72.49929930736
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317768339636
+20
+-643.81703834892
+30
+226.52966896396
+11
+451.683338867278
+21
+-672.734452813075
+31
+212.702239692806
+12
+451.683329511579
+22
+-643.789222672817
+32
+226.45907411243
+13
+451.683329511579
+23
+-643.789222672817
+33
+226.45907411243
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683338867278
+20
+-672.734452813075
+30
+212.702239692806
+11
+448.317768339636
+21
+-643.81703834892
+31
+226.52966896396
+12
+448.31777769836
+22
+-672.771628457813
+32
+212.76838602076
+13
+448.31777769836
+23
+-672.771628457813
+33
+212.76838602076
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677509279169
+20
+-639.24331958749
+30
+214.92128705308
+11
+468.84016373079
+21
+-668.043983209856
+31
+204.35632895538
+12
+470.677518140403
+22
+-666.658744301589
+32
+201.891525102388
+13
+470.677518140403
+23
+-666.658744301589
+33
+201.891525102388
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84016373079
+20
+-668.043983209856
+30
+204.35632895538
+11
+470.677509279169
+21
+-639.24331958749
+31
+214.92128705308
+12
+468.84015475682
+22
+-640.279768170507
+32
+217.551860904389
+13
+468.84015475682
+23
+-640.279768170507
+33
+217.551860904389
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677518140403
+20
+-666.658744301589
+30
+201.891525102388
+11
+468.840169183023
+21
+-693.751116561201
+31
+187.500558577709
+12
+470.677523524142
+22
+-692.042929592268
+32
+185.247506781241
+13
+470.677523524142
+23
+-692.042929592268
+33
+185.247506781241
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840169183023
+20
+-693.751116561201
+30
+187.500558577709
+11
+470.677518140403
+21
+-666.658744301589
+31
+201.891525102388
+12
+468.84016373079
+22
+-668.043983209856
+32
+204.35632895538
+13
+468.84016373079
+23
+-668.043983209856
+33
+204.35632895538
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84016373079
+20
+-668.043983209856
+30
+204.35632895538
+11
+466.630441768332
+21
+-695.289054806558
+31
+189.529056864572
+12
+468.840169183023
+22
+-693.751116561201
+32
+187.500558577709
+13
+468.840169183023
+23
+-693.751116561201
+33
+187.500558577709
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630441768332
+20
+-695.289054806558
+30
+189.529056864572
+11
+468.84016373079
+21
+-668.043983209856
+31
+204.35632895538
+12
+466.630436254431
+22
+-669.291160506739
+32
+206.575474706326
+13
+466.630436254431
+23
+-669.291160506739
+33
+206.575474706326
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630436254431
+20
+-669.291160506739
+30
+206.575474706326
+11
+464.090789844927
+21
+-696.627200742591
+31
+191.294034464012
+12
+466.630441768332
+22
+-695.289054806558
+32
+189.529056864572
+13
+466.630441768332
+23
+-695.289054806558
+33
+189.529056864572
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090789844927
+20
+-696.627200742591
+30
+191.294034464012
+11
+466.630436254431
+21
+-669.291160506739
+31
+206.575474706326
+12
+464.090784277369
+22
+-670.376318084996
+32
+208.5063328654
+13
+464.090784277369
+23
+-670.376318084996
+33
+208.5063328654
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269994170696
+20
+-671.278610214274
+30
+210.111811908437
+11
+464.090789844927
+21
+-696.627200742591
+31
+191.294034464012
+12
+464.090784277369
+22
+-670.376318084996
+32
+208.5063328654
+13
+464.090784277369
+23
+-670.376318084996
+33
+208.5063328654
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090789844927
+20
+-696.627200742591
+30
+191.294034464012
+11
+461.269994170696
+21
+-671.278610214274
+31
+210.111811908437
+12
+461.269999782869
+22
+-697.7398487668
+32
+192.761586394987
+13
+461.269999782869
+23
+-697.7398487668
+33
+192.761586394987
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162646316092562
+20
+-763.421247562364
+30
+29.1912221451116
+11
+429.267734478649
+21
+-763.617291372796
+31
+23.3578378527852
+12
+0.00828976046904545
+22
+-763.617295762417
+32
+23.3578364570492
+13
+0.00828976046904545
+23
+-763.617295762417
+33
+23.3578364570492
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267734478649
+20
+-763.617291372796
+30
+23.3578378527852
+11
+0.0162646316092562
+21
+-763.421247562364
+31
+29.1912221451116
+12
+429.267737950976
+22
+-763.421251234373
+32
+29.1909851596944
+13
+429.267737950976
+23
+-763.421251234373
+33
+29.1909851596944
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690582495428
+20
+-761.097663471809
+30
+28.9532865498045
+11
+442.839449157947
+21
+-759.575223903305
+31
+23.3578378579396
+12
+439.690579164597
+22
+-761.285715042239
+32
+23.357837856573
+13
+439.690579164597
+23
+-761.285715042239
+33
+23.357837856573
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839449157947
+20
+-759.575223903305
+30
+23.3578378579396
+11
+439.690582495428
+21
+-761.097663471809
+31
+28.9532865498045
+12
+442.839452384975
+22
+-759.393032819931
+32
+28.7789085623947
+13
+442.839452384975
+23
+-759.393032819931
+33
+28.7789085623947
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466052014781
+20
+-669.667851071909
+30
+35.3737619083722
+11
+744.275042822729
+21
+-653.583013796713
+31
+23.35783797602
+12
+732.466045885959
+22
+-671.734013479962
+32
+23.3578379683062
+13
+732.466045885959
+23
+-671.734013479962
+33
+23.3578379683062
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275042822729
+20
+-653.583013796713
+30
+23.35783797602
+11
+732.466052014781
+21
+-669.667851071909
+31
+35.3737619083722
+12
+744.275046789786
+22
+-652.245630435845
+32
+31.1354921818382
+13
+744.275046789786
+23
+-652.245630435845
+33
+31.1354921818382
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021370191738
+20
+-719.684397959595
+30
+47.5412056189011
+11
+684.332867182503
+21
+-714.266540775895
+31
+24.1625326278822
+12
+665.021358751182
+22
+-723.541264381198
+32
+25.1113068905408
+13
+665.021358751182
+23
+-723.541264381198
+33
+25.1113068905408
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332867182503
+20
+-714.266540775895
+30
+24.1625326278822
+11
+665.021370191738
+21
+-719.684397959595
+31
+47.5412056189011
+12
+684.332877982946
+22
+-710.625470617764
+32
+45.3374518452758
+13
+684.332877982946
+23
+-710.625470617764
+33
+45.3374518452758
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090741872935
+20
+-786.683847141088
+30
+23.3578378586363
+11
+461.269956337624
+21
+-788.240871473567
+31
+31.7299058573872
+12
+461.269951353941
+22
+-788.522239532049
+32
+23.3578378573451
+13
+461.269951353941
+23
+-788.522239532049
+33
+23.3578378573451
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269956337624
+20
+-788.240871473567
+30
+31.7299058573872
+11
+464.090741872935
+21
+-786.683847141088
+31
+23.3578378586363
+12
+464.090746745054
+22
+-786.408777774662
+32
+31.5424891402109
+13
+464.090746745054
+23
+-786.408777774662
+33
+31.5424891402109
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636242951136
+20
+-726.13713335826
+30
+49.1109574716297
+11
+665.021358751182
+21
+-723.541264381198
+31
+25.1113068905408
+12
+644.636231054623
+22
+-730.147712824956
+32
+25.7871288899166
+13
+644.636231054623
+23
+-730.147712824956
+33
+25.7871288899166
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021358751182
+20
+-723.541264381198
+30
+25.1113068905408
+11
+644.636242951136
+21
+-726.13713335826
+31
+49.1109574716297
+12
+665.021370191738
+22
+-719.684397959595
+32
+47.5412056189011
+13
+665.021370191738
+23
+-719.684397959595
+33
+47.5412056189011
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+180.160557528893
+20
+-280.29408
+30
+1570.85958260462
+11
+176.700983922342
+21
+-186.86272
+31
+1535.73394230883
+12
+176.700983922341
+22
+-280.29408
+32
+1535.73394230883
+13
+176.700983922341
+23
+-280.29408
+33
+1535.73394230883
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.700983922342
+20
+-186.86272
+30
+1535.73394230883
+11
+180.160557528893
+21
+-280.29408
+31
+1570.85958260462
+12
+180.160557528894
+22
+-186.86272
+32
+1570.85958260462
+13
+180.160557528894
+23
+-186.86272
+33
+1570.85958260462
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.700983922341
+20
+-280.29408
+30
+1535.73394230883
+11
+166.455212576235
+21
+-186.86272
+31
+1501.95816067091
+12
+166.455212576234
+22
+-280.29408
+32
+1501.95816067091
+13
+166.455212576234
+23
+-280.29408
+33
+1501.95816067091
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.455212576235
+20
+-186.86272
+30
+1501.95816067091
+11
+176.700983922341
+21
+-280.29408
+31
+1535.73394230883
+12
+176.700983922342
+22
+-186.86272
+32
+1535.73394230883
+13
+176.700983922342
+23
+-186.86272
+33
+1535.73394230883
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.455212576234
+20
+-280.29408
+30
+1501.95816067091
+11
+149.816982737509
+21
+-186.86272
+31
+1470.83022203755
+12
+149.816982737509
+22
+-280.29408
+32
+1470.83022203755
+13
+149.816982737509
+23
+-280.29408
+33
+1470.83022203755
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.816982737509
+20
+-186.86272
+30
+1470.83022203755
+11
+166.455212576234
+21
+-280.29408
+31
+1501.95816067091
+12
+166.455212576235
+22
+-186.86272
+32
+1501.95816067091
+13
+166.455212576235
+23
+-186.86272
+33
+1501.95816067091
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.816982737509
+20
+-280.29408
+30
+1470.83022203755
+11
+127.42569224804
+21
+-186.86272
+31
+1443.54635563367
+12
+127.425692248039
+22
+-280.29408
+32
+1443.54635563367
+13
+127.425692248039
+23
+-280.29408
+33
+1443.54635563367
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.42569224804
+20
+-186.86272
+30
+1443.54635563367
+11
+149.816982737509
+21
+-280.29408
+31
+1470.83022203755
+12
+149.816982737509
+22
+-186.86272
+32
+1470.83022203755
+13
+149.816982737509
+23
+-186.86272
+33
+1470.83022203755
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717763908762
+20
+-634.484263142475
+30
+202.842487443351
+11
+599.602150844536
+21
+-660.298108897689
+31
+190.573882756048
+12
+599.60214250095
+22
+-634.484214570593
+32
+202.842483429208
+13
+599.60214250095
+23
+-634.484214570593
+33
+202.842483429208
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602150844536
+20
+-660.298108897689
+30
+190.573882756048
+11
+473.717763908762
+21
+-634.484263142475
+31
+202.842487443351
+12
+473.717772252345
+22
+-660.298147720458
+32
+190.573891403664
+13
+473.717772252345
+23
+-660.298147720458
+33
+190.573891403664
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721732248607
+20
+-631.28782828485
+30
+194.729696180594
+11
+442.839466299903
+21
+-605.682549578299
+31
+205.079413127562
+12
+445.721721263973
+22
+-605.178251275471
+32
+203.006401057676
+13
+445.721721263973
+23
+-605.178251275471
+33
+203.006401057676
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839466299903
+20
+-605.682549578299
+30
+205.079413127562
+11
+445.721732248607
+21
+-631.28782828485
+31
+194.729696180594
+12
+442.839477401402
+22
+-632.069903787681
+32
+196.714653208256
+13
+442.839477401402
+23
+-632.069903787681
+33
+196.714653208256
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546345594915
+20
+-729.866920753093
+30
+50.0183042486409
+11
+644.636231054623
+21
+-730.147712824956
+31
+25.7871288899166
+12
+623.546333434853
+22
+-733.96634875632
+32
+26.1777702748551
+13
+623.546333434853
+23
+-733.96634875632
+33
+26.1777702748551
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636231054623
+20
+-730.147712824956
+30
+25.7871288899166
+11
+623.546345594915
+21
+-729.866920753093
+31
+50.0183042486409
+12
+644.636242951136
+22
+-726.13713335826
+32
+49.1109574716297
+13
+644.636242951136
+23
+-726.13713335826
+33
+49.1109574716297
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431240478811
+20
+-742.052468269584
+30
+27.0050383833634
+11
+454.797666066761
+21
+-734.293588076417
+31
+51.0952482583018
+12
+454.797653593913
+22
+-738.498463121584
+32
+26.6414790273437
+13
+454.797653593913
+23
+-738.498463121584
+33
+26.6414790273437
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797666066761
+20
+-734.293588076417
+30
+51.0952482583018
+11
+454.431240478811
+21
+-742.052468269584
+31
+27.0050383833634
+12
+454.431253196946
+22
+-737.764901599428
+32
+51.9397070211046
+13
+454.431253196946
+23
+-737.764901599428
+33
+51.9397070211046
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275046789786
+20
+-652.245630435845
+30
+31.1354921818382
+11
+753.576401186168
+21
+-633.988087312601
+31
+23.3578379832645
+12
+744.275042822729
+22
+-653.583013796713
+32
+23.35783797602
+13
+744.275042822729
+23
+-653.583013796713
+33
+23.35783797602
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576401186168
+20
+-633.988087312601
+30
+23.3578379832645
+11
+744.275046789786
+21
+-652.245630435845
+31
+31.1354921818382
+12
+753.576402819491
+22
+-633.437457700021
+32
+26.5600661905556
+13
+753.576402819491
+23
+-633.437457700021
+33
+26.5600661905556
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471087696265
+20
+-751.942885609203
+30
+28.0167869283821
+11
+452.246991021541
+21
+-744.394381773506
+31
+53.5524466917642
+12
+452.246977834961
+22
+-748.839872068014
+32
+27.6993612581553
+13
+452.246977834961
+23
+-748.839872068014
+33
+27.6993612581553
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246991021541
+20
+-744.394381773506
+30
+53.5524466917642
+11
+450.471087696265
+21
+-751.942885609203
+31
+28.0167869283821
+12
+450.471101097006
+22
+-747.425197006803
+32
+54.2897470886059
+13
+450.471101097006
+23
+-747.425197006803
+33
+54.2897470886059
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683281480069
+20
+-549.621181308374
+30
+242.650939792116
+11
+455.006069025402
+21
+-581.599775817026
+31
+241.035583090668
+12
+455.00604998394
+22
+-549.612103415805
+32
+242.110623248711
+13
+455.00604998394
+23
+-549.612103415805
+33
+242.110623248711
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006069025402
+20
+-581.599775817026
+30
+241.035583090668
+11
+451.683281480069
+21
+-549.621181308374
+31
+242.650939792116
+12
+451.683300548936
+22
+-581.654891394158
+32
+241.574352401781
+13
+451.683300548936
+23
+-581.654891394158
+33
+241.574352401781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.309565768095
+20
+-569.303680096418
+30
+23.3578380100164
+11
+792.00721860814
+21
+-586.233981212786
+31
+36.6113938325108
+12
+793.160541596036
+22
+-572.980425388099
+32
+23.3578380091579
+13
+793.160541596036
+23
+-572.980425388099
+33
+23.3578380091579
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.00721860814
+20
+-586.233981212786
+30
+36.6113938325108
+11
+793.309565768095
+21
+-569.303680096418
+31
+23.3578380100164
+12
+792.007218281129
+22
+-582.09079684746
+32
+40.22369700007
+13
+792.007218281129
+23
+-582.09079684746
+33
+40.22369700007
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267763467221
+20
+-633.554254686993
+30
+200.482021877632
+11
+0.0162788245333154
+21
+-606.639891924184
+31
+209.013909072529
+12
+429.267752143919
+22
+-606.639691213326
+32
+209.013906507055
+13
+429.267752143919
+23
+-606.639691213326
+33
+209.013906507055
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162788245333154
+20
+-606.639891924184
+30
+209.013909072529
+11
+429.267763467221
+21
+-633.554254686993
+31
+200.482021877632
+12
+0.0162901478210909
+22
+-633.55442031161
+32
+200.482035565403
+13
+0.0162901478210909
+23
+-633.55442031161
+33
+200.482035565403
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363098127435
+20
+-605.920400916633
+30
+130.345732863609
+11
+702.221343105619
+21
+-592.16215835415
+31
+149.501676557166
+12
+718.363090933403
+22
+-588.820775333035
+32
+135.766293848309
+13
+718.363090933403
+23
+-588.820775333035
+33
+135.766293848309
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221343105619
+20
+-592.16215835415
+30
+149.501676557166
+11
+718.363098127435
+21
+-605.920400916633
+31
+130.345732863609
+12
+702.221351073972
+22
+-611.102282944468
+32
+143.497679575028
+13
+702.221351073972
+23
+-611.102282944468
+33
+143.497679575028
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024158535186
+20
+-578.899518233046
+30
+94.9831268667919
+11
+767.829328484993
+21
+-598.912297398533
+31
+112.558745848353
+12
+779.024163430099
+22
+-590.534326018981
+32
+91.2949066282494
+13
+779.024163430099
+23
+-590.534326018981
+33
+91.2949066282494
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829328484993
+20
+-598.912297398533
+30
+112.558745848353
+11
+779.024158535186
+21
+-578.899518233046
+31
+94.9831268667919
+12
+767.82932233817
+22
+-584.301801471681
+32
+117.190255690543
+13
+767.82932233817
+23
+-584.301801471681
+33
+117.190255690543
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.652471048303
+20
+-186.862719999999
+30
+2499.20806403607
+11
+123.089851596878
+21
+-280.294079999999
+31
+2224.76609686633
+12
+123.089851596878
+22
+-186.862719999999
+32
+2224.76609686633
+13
+123.089851596878
+23
+-186.862719999999
+33
+2224.76609686633
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+123.089851596878
+20
+-280.294079999999
+30
+2224.76609686633
+11
+93.652471048303
+21
+-186.862719999999
+31
+2499.20806403607
+12
+93.6524710483026
+22
+-280.294079999999
+32
+2499.20806403607
+13
+93.6524710483026
+23
+-280.294079999999
+33
+2499.20806403607
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269951353941
+20
+-788.522239532049
+30
+23.3578378573451
+11
+458.222214863865
+21
+-789.666464186592
+31
+31.8757394304439
+12
+458.222209793371
+22
+-789.952733412824
+32
+23.3578378560715
+13
+458.222209793371
+23
+-789.952733412824
+33
+23.3578378560715
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222214863865
+20
+-789.666464186592
+30
+31.8757394304439
+11
+461.269951353941
+21
+-788.522239532049
+31
+23.3578378573451
+12
+461.269956337624
+22
+-788.240871473567
+32
+31.7299058573872
+13
+461.269956337624
+23
+-788.240871473567
+33
+31.7299058573872
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246977834961
+20
+-748.839872068014
+30
+27.6993612581553
+11
+453.575548860337
+21
+-741.153531203966
+31
+52.7640516820845
+12
+453.575535902759
+22
+-745.521819843274
+32
+27.3599383202345
+13
+453.575535902759
+23
+-745.521819843274
+33
+27.3599383202345
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575548860337
+20
+-741.153531203966
+30
+52.7640516820845
+11
+452.246977834961
+21
+-748.839872068014
+31
+27.6993612581553
+12
+452.246991021541
+22
+-744.394381773506
+32
+53.5524466917642
+13
+452.246991021541
+23
+-744.394381773506
+33
+53.5524466917642
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721707495526
+20
+-757.270638693351
+30
+28.5617953495419
+11
+448.28197715053
+21
+-754.937553544539
+31
+23.3578378606726
+12
+445.72170439774
+22
+-757.445533046268
+32
+23.3578378593151
+13
+445.72170439774
+23
+-757.445533046268
+33
+23.3578378593151
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.28197715053
+20
+-754.937553544539
+30
+23.3578378606726
+11
+445.721707495526
+21
+-757.270638693351
+31
+28.5617953495419
+12
+448.281980096118
+22
+-754.771251996272
+32
+28.306117626709
+13
+448.281980096118
+23
+-754.771251996272
+33
+28.306117626709
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838915479952
+20
+-763.131305674907
+30
+29.1613230247316
+11
+436.335583784501
+21
+-762.544148159569
+31
+23.3578378552417
+12
+432.838912025282
+22
+-763.326348925263
+32
+23.3578378539704
+13
+432.838912025282
+23
+-763.326348925263
+33
+23.3578378539704
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335583784501
+20
+-762.544148159569
+30
+23.3578378552417
+11
+432.838915479952
+21
+-763.131305674907
+31
+29.1613230247316
+12
+436.335587191701
+22
+-762.351784924648
+32
+29.0815795342117
+13
+436.335587191701
+23
+-762.351784924648
+33
+29.0815795342117
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667736501664
+20
+-734.928076357629
+30
+26.2762441782473
+11
+602.133265632776
+21
+-735.026156540265
+31
+23.357837913399
+12
+454.667734764409
+22
+-735.026158016502
+32
+23.3578378670709
+13
+454.667734764409
+23
+-735.026158016502
+33
+23.3578378670709
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133265632776
+20
+-735.026156540265
+30
+23.357837913399
+11
+454.667736501664
+21
+-734.928076357629
+31
+26.2762441782473
+12
+602.133267369982
+22
+-734.928077619115
+32
+26.2761627640122
+13
+602.133267369982
+23
+-734.928077619115
+33
+26.2761627640122
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928554472
+20
+-623.13454224489
+30
+124.447504114724
+11
+736.997695535365
+21
+-649.940320006495
+31
+129.715362054641
+12
+753.73928877638
+22
+-638.371732863863
+32
+114.456713513376
+13
+753.73928877638
+23
+-638.371732863863
+33
+114.456713513376
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997695535365
+20
+-649.940320006495
+30
+129.715362054641
+11
+753.73928554472
+21
+-623.13454224489
+31
+124.447504114724
+12
+736.997691839832
+22
+-632.515984774395
+32
+141.140229605674
+13
+736.997691839832
+23
+-632.515984774395
+33
+141.140229605674
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221360398304
+20
+-673.696700650341
+30
+96.0407362022104
+11
+718.363107612844
+21
+-650.643847155672
+31
+101.021259768909
+12
+718.363106545679
+22
+-662.432231199989
+32
+87.5003989193992
+13
+718.363106545679
+23
+-662.432231199989
+33
+87.5003989193992
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363107612844
+20
+-650.643847155672
+30
+101.021259768909
+11
+702.221360398304
+21
+-673.696700650341
+31
+96.0407362022104
+12
+702.221361580333
+22
+-660.639487120937
+32
+111.016899733167
+13
+702.221361580333
+23
+-660.639487120937
+33
+111.016899733167
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363106545679
+20
+-662.432231199989
+30
+87.5003989193992
+11
+732.466066639417
+21
+-639.203194165743
+31
+89.5806067801329
+12
+732.466065703719
+22
+-649.539320894872
+32
+77.7254338656707
+13
+732.466065703719
+23
+-649.539320894872
+33
+77.7254338656707
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466066639417
+20
+-639.203194165743
+30
+89.5806067801329
+11
+718.363106545679
+21
+-662.432231199989
+31
+87.5003989193992
+12
+718.363107612844
+22
+-650.643847155672
+32
+101.021259768909
+13
+718.363107612844
+23
+-650.643847155672
+33
+101.021259768909
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466065703719
+20
+-649.539320894872
+30
+77.7254338656707
+11
+744.275059137262
+21
+-626.524535798612
+31
+76.9019484142785
+12
+744.27505834726
+22
+-635.251254586263
+32
+66.8927096622113
+13
+744.27505834726
+23
+-635.251254586263
+33
+66.8927096622113
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275059137262
+20
+-626.524535798612
+30
+76.9019484142785
+11
+732.466065703719
+21
+-649.539320894872
+31
+77.7254338656707
+12
+732.466066639417
+22
+-639.203194165743
+32
+89.5806067801329
+13
+732.466066639417
+23
+-639.203194165743
+33
+89.5806067801329
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.60214250095
+20
+-752.465070814344
+30
+84.8616271735756
+11
+473.717772252345
+21
+-740.196478791399
+31
+110.675560324675
+12
+473.717763908762
+22
+-752.465074828487
+32
+84.861675745457
+13
+473.717763908762
+23
+-752.465074828487
+33
+84.861675745457
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717772252345
+20
+-740.196478791399
+30
+110.675560324675
+11
+599.60214250095
+21
+-752.465070814344
+31
+84.8616271735756
+12
+599.602150844536
+22
+-740.196470143783
+32
+110.675521501907
+13
+599.602150844536
+23
+-740.196470143783
+33
+110.675521501907
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797653593913
+20
+-576.264066422956
+30
+188.875875742312
+11
+454.66772029492
+21
+-548.673192057237
+31
+186.220486963908
+12
+454.667736501664
+22
+-575.898831573499
+32
+185.305488978394
+13
+454.667736501664
+23
+-575.898831573499
+33
+185.305488978394
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.66772029492
+20
+-548.673192057237
+30
+186.220486963908
+11
+454.797653593913
+21
+-576.264066422956
+31
+188.875875742312
+12
+454.797637205561
+22
+-548.733344026199
+32
+189.801126938624
+13
+454.797637205561
+23
+-548.733344026199
+33
+189.801126938624
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.82932233817
+20
+-584.301801471681
+30
+117.190255690543
+11
+753.739280225648
+21
+-606.678073483521
+31
+132.268789859729
+12
+767.829328484993
+22
+-598.912297398533
+32
+112.558745848353
+13
+767.829328484993
+23
+-598.912297398533
+33
+112.558745848353
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739280225648
+20
+-606.678073483521
+30
+132.268789859729
+11
+767.82932233817
+21
+-584.301801471681
+31
+117.190255690543
+12
+753.739272918395
+22
+-589.30932977233
+32
+137.774660970991
+13
+753.739272918395
+23
+-589.30932977233
+33
+137.774660970991
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133267369982
+20
+-575.898750159264
+30
+185.30549023988
+11
+454.66772029492
+21
+-548.673192057237
+31
+186.220486963908
+12
+602.133251163261
+22
+-548.67314817835
+32
+186.220486963908
+13
+602.133251163261
+23
+-548.67314817835
+33
+186.220486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.66772029492
+20
+-548.673192057237
+30
+186.220486963908
+11
+602.133267369982
+21
+-575.898750159264
+31
+185.30549023988
+12
+454.667736501664
+22
+-575.898831573499
+32
+185.305488978394
+13
+454.667736501664
+23
+-575.898831573499
+33
+185.305488978394
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546333434853
+20
+-575.80035767001
+30
+184.343761377095
+11
+602.133251163261
+21
+-548.67314817835
+31
+186.220486963908
+12
+623.546317277054
+22
+-548.656939099171
+32
+185.255996085023
+13
+623.546317277054
+23
+-548.656939099171
+33
+185.255996085023
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133251163261
+20
+-548.67314817835
+30
+186.220486963908
+11
+623.546333434853
+21
+-575.80035767001
+31
+184.343761377095
+12
+602.133267369982
+22
+-575.898750159264
+32
+185.30549023988
+13
+602.133267369982
+23
+-575.898750159264
+33
+185.30549023988
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363106545679
+20
+-637.12298630735
+30
+112.809643814588
+11
+732.466062914084
+21
+-614.194966001222
+31
+108.540988733599
+12
+732.466065703719
+22
+-627.348021252322
+32
+99.9167335104564
+13
+732.466065703719
+23
+-627.348021252322
+33
+99.9167335104564
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466062914084
+20
+-614.194966001222
+30
+108.540988733599
+11
+718.363106545679
+21
+-637.12298630735
+31
+112.809643814588
+12
+718.363103364091
+22
+-622.121886696301
+32
+122.645633187677
+13
+718.363103364091
+23
+-622.121886696301
+33
+122.645633187677
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797676017751
+20
+-624.370524419528
+30
+177.173126470384
+11
+454.667748728094
+21
+-599.869484727166
+31
+181.183686716704
+12
+454.667758482489
+22
+-623.054883804802
+32
+173.83394276819
+13
+454.667758482489
+23
+-623.054883804802
+33
+173.83394276819
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667748728094
+20
+-599.869484727166
+30
+181.183686716704
+11
+454.797676017751
+21
+-624.370524419528
+31
+177.173126470384
+12
+454.797666066761
+22
+-600.71783565349
+32
+184.671000694682
+13
+454.797666066761
+23
+-600.71783565349
+33
+184.671000694682
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221351073972
+20
+-611.102282944468
+30
+143.497679575028
+11
+684.332877982946
+21
+-594.96003923808
+31
+161.00288323661
+12
+702.221343105619
+22
+-592.16215835415
+32
+149.501676557166
+13
+702.221343105619
+23
+-592.16215835415
+33
+149.501676557166
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332877982946
+20
+-594.96003923808
+30
+161.00288323661
+11
+702.221351073972
+21
+-611.102282944468
+31
+143.497679575028
+12
+684.332886599671
+22
+-615.441289762884
+32
+154.510351165083
+13
+684.332886599671
+23
+-615.441289762884
+33
+154.510351165083
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.00720150166
+20
+-546.363038171439
+30
+48.7110294035543
+11
+787.130178451143
+21
+-564.415115565838
+31
+73.0471892828083
+12
+792.007210733943
+22
+-561.872310305502
+32
+48.1897945304127
+13
+792.007210733943
+23
+-561.872310305502
+33
+48.1897945304127
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130178451143
+20
+-564.415115565838
+30
+73.0471892828083
+11
+792.00720150166
+21
+-546.363038171439
+31
+48.7110294035543
+12
+787.130167954486
+22
+-546.781824001004
+32
+73.639808098986
+13
+787.130167954486
+23
+-546.781824001004
+33
+73.639808098986
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576412708658
+20
+-612.837280222141
+30
+63.214692839186
+11
+760.20182781144
+21
+-592.476194788978
+31
+53.921748202446
+12
+760.201828278129
+22
+-598.389085203732
+32
+48.7664978222319
+13
+760.201828278129
+23
+-598.389085203732
+33
+48.7664978222319
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.20182781144
+20
+-592.476194788978
+30
+53.921748202446
+11
+753.576412708658
+21
+-612.837280222141
+31
+63.214692839186
+12
+753.576412075941
+22
+-604.820821451585
+32
+70.2039737536023
+13
+753.576412075941
+23
+-604.820821451585
+33
+70.2039737536023
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602098887118
+20
+-549.195708452133
+30
+217.326639240051
+11
+624.955290211342
+21
+-186.86272
+31
+215.762940693873
+12
+599.602098887118
+22
+-186.86272
+32
+217.326639240051
+13
+599.602098887118
+23
+-186.86272
+33
+217.326639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955290211342
+20
+-186.86272
+30
+215.762940693873
+11
+599.602098887118
+21
+-549.195708452133
+31
+217.326639240051
+12
+624.955290211342
+22
+-549.169431970937
+32
+215.762940693873
+13
+624.955290211342
+23
+-549.169431970937
+33
+215.762940693873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221333117862
+20
+-572.580560654599
+30
+152.868771861916
+11
+684.332852026746
+21
+-548.325028948197
+31
+165.499614915081
+12
+702.221318561055
+22
+-548.126641526877
+32
+153.690618001708
+13
+702.221318561055
+23
+-548.126641526877
+33
+153.690618001708
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332852026746
+20
+-548.325028948197
+30
+165.499614915081
+11
+702.221333117862
+21
+-572.580560654599
+31
+152.868771861916
+12
+684.332867182503
+22
+-573.785120021053
+32
+164.643953396873
+13
+684.332867182503
+23
+-573.785120021053
+33
+164.643953396873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546366648706
+20
+-698.908941954744
+30
+115.155805645761
+11
+644.636259351108
+21
+-708.826870972768
+31
+93.0455572990973
+12
+623.546362358205
+22
+-712.173174760634
+32
+94.9262110334071
+13
+623.546362358205
+23
+-712.173174760634
+33
+94.9262110334071
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636259351108
+20
+-708.826870972768
+30
+93.0455572990973
+11
+623.546366648706
+21
+-698.908941954744
+31
+115.155805645761
+12
+644.636263548619
+22
+-695.850119169612
+32
+112.836707846937
+13
+644.636263548619
+23
+-695.850119169612
+33
+112.836707846937
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636263548619
+20
+-695.850119169612
+30
+112.836707846937
+11
+665.02138596315
+21
+-703.037584126794
+31
+89.7919287945006
+12
+644.636259351108
+22
+-708.826870972768
+32
+93.0455572990973
+13
+644.636259351108
+23
+-708.826870972768
+33
+93.0455572990973
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.02138596315
+20
+-703.037584126794
+30
+89.7919287945006
+11
+644.636263548619
+21
+-695.850119169612
+31
+112.836707846937
+12
+665.021389999784
+22
+-690.558190885324
+32
+108.824546057595
+13
+665.021389999784
+23
+-690.558190885324
+33
+108.824546057595
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839434933817
+20
+-549.08536836124
+30
+210.755700449054
+11
+439.690564957562
+21
+-186.86272
+31
+212.46522637891
+12
+442.839434933817
+22
+-186.86272
+32
+210.755700449054
+13
+442.839434933817
+23
+-186.86272
+33
+210.755700449054
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690564957562
+20
+-186.86272
+30
+212.46522637891
+11
+442.839434933817
+21
+-549.08536836124
+31
+210.755700449054
+12
+439.690564957562
+22
+-549.114088023756
+32
+212.46522637891
+13
+439.690564957562
+23
+-549.114088023756
+33
+212.46522637891
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973136999
+20
+-280.294079999999
+30
+2499.20806403607
+11
+93.652471048303
+21
+-186.862719999999
+31
+2499.20806403607
+12
+46.8683973137003
+22
+-186.862719999999
+32
+2499.20806403607
+13
+46.8683973137003
+23
+-186.862719999999
+33
+2499.20806403607
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.652471048303
+20
+-186.862719999999
+30
+2499.20806403607
+11
+46.8683973136999
+21
+-280.294079999999
+31
+2499.20806403607
+12
+93.6524710483026
+22
+-280.294079999999
+32
+2499.20806403607
+13
+93.6524710483026
+23
+-280.294079999999
+33
+2499.20806403607
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021389999784
+20
+-690.558190885324
+30
+108.824546057595
+11
+684.332892871929
+21
+-694.910065817882
+31
+85.2241968080869
+12
+665.02138596315
+22
+-703.037584126794
+32
+89.7919287945006
+13
+665.02138596315
+23
+-703.037584126794
+33
+89.7919287945006
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332892871929
+20
+-694.910065817882
+30
+85.2241968080869
+11
+665.021389999784
+21
+-690.558190885324
+31
+108.824546057595
+12
+684.332896682708
+22
+-683.128909470703
+32
+103.191916498769
+13
+684.332896682708
+23
+-683.128909470703
+33
+103.191916498769
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.60214250095
+20
+-634.484214570593
+30
+202.842483429208
+11
+624.955341833487
+21
+-659.530197478533
+31
+189.207522894826
+12
+624.955333552396
+22
+-633.909652359165
+32
+201.384230256964
+13
+624.955333552396
+23
+-633.909652359165
+33
+201.384230256964
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955341833487
+20
+-659.530197478533
+30
+189.207522894826
+11
+599.60214250095
+21
+-634.484214570593
+31
+202.842483429208
+12
+599.602150844536
+22
+-660.298108897689
+32
+190.573882756048
+13
+599.602150844536
+23
+-660.298108897689
+33
+190.573882756048
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363090933403
+20
+-685.388881228845
+30
+39.1981879427727
+11
+732.466045885959
+21
+-671.734013479962
+31
+23.3578379683062
+12
+718.363082853901
+22
+-688.112661424818
+32
+23.3578379602634
+13
+718.363082853901
+23
+-688.112661424818
+33
+23.3578379602634
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466045885959
+20
+-671.734013479962
+30
+23.3578379683062
+11
+718.363090933403
+21
+-685.388881228845
+31
+39.1981879427727
+12
+732.466052014781
+22
+-669.667851071909
+32
+35.3737619083722
+13
+732.466052014781
+23
+-669.667851071909
+33
+35.3737619083722
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884083129639
+20
+-759.7055020414
+30
+23.3578379229566
+11
+624.955307916438
+21
+-764.38593632126
+31
+29.2895600085649
+12
+624.955304385432
+22
+-764.585289351978
+32
+23.3578379140486
+13
+624.955304385432
+23
+-764.585289351978
+33
+23.3578379140486
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955307916438
+20
+-764.38593632126
+30
+29.2895600085649
+11
+649.884083129639
+21
+-759.7055020414
+31
+23.3578379229566
+12
+649.884086364505
+22
+-759.522868440055
+32
+28.7920756889693
+13
+649.884086364505
+23
+-759.522868440055
+33
+28.7920756889693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031420693374
+20
+-566.35608713258
+30
+43.4208517516957
+11
+764.975642457445
+21
+-559.332124908489
+31
+23.3578380033138
+12
+764.959283764737
+22
+-561.475402706277
+32
+23.3578380028359
+13
+764.959283764737
+23
+-561.475402706277
+33
+23.3578380028359
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.975642457445
+20
+-559.332124908489
+30
+23.3578380033138
+11
+764.031420693374
+21
+-566.35608713258
+31
+43.4208517516957
+12
+764.0314182014
+22
+-561.470422367227
+32
+44.2609516834995
+13
+764.0314182014
+23
+-561.470422367227
+33
+44.2609516834995
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838949191021
+20
+-658.912362146436
+30
+188.108094342889
+11
+429.267763467221
+21
+-633.554254686993
+31
+200.482021877632
+12
+432.838940960221
+22
+-633.447412164356
+32
+200.210851816573
+13
+432.838940960221
+23
+-633.447412164356
+33
+200.210851816573
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267763467221
+20
+-633.554254686993
+30
+200.482021877632
+11
+432.838949191021
+21
+-658.912362146436
+31
+188.108094342889
+12
+429.267771709642
+22
+-659.055159092928
+32
+188.362176301584
+13
+429.267771709642
+23
+-659.055159092928
+33
+188.362176301584
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636215091063
+20
+-548.592598441069
+30
+181.426393854527
+11
+623.546317277054
+21
+-186.86272
+31
+185.255996085023
+12
+644.636215091063
+22
+-186.86272
+32
+181.426393854527
+13
+644.636215091063
+23
+-186.86272
+33
+181.426393854527
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546317277054
+20
+-186.86272
+30
+185.255996085023
+11
+644.636215091063
+21
+-548.592598441069
+31
+181.426393854527
+12
+623.546317277054
+22
+-548.656939099171
+32
+185.255996085023
+13
+623.546317277054
+23
+-548.656939099171
+33
+185.255996085023
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797683261242
+20
+-716.144716838612
+30
+97.1582932541697
+11
+454.667769896794
+21
+-699.679329838522
+31
+115.739912506852
+12
+454.667765582876
+22
+-713.015957461653
+32
+95.3999068495287
+13
+454.667765582876
+23
+-713.015957461653
+33
+95.3999068495287
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667769896794
+20
+-699.679329838522
+30
+115.739912506852
+11
+454.797683261242
+21
+-716.144716838612
+31
+97.1582932541697
+12
+454.797687662105
+22
+-702.539296405596
+32
+117.908241171874
+13
+454.797687662105
+23
+-702.539296405596
+33
+117.908241171874
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505834726
+20
+-635.251254586263
+30
+66.8927096622113
+11
+753.576412708658
+21
+-612.837280222141
+31
+63.214692839186
+12
+753.576412075941
+22
+-619.82656113575
+32
+55.1982340679256
+13
+753.576412075941
+23
+-619.82656113575
+33
+55.1982340679256
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576412708658
+20
+-612.837280222141
+30
+63.214692839186
+11
+744.27505834726
+21
+-635.251254586263
+31
+66.8927096622113
+12
+744.275059137262
+22
+-626.524535798612
+32
+76.9019484142785
+13
+744.275059137262
+23
+-626.524535798612
+33
+76.9019484142785
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576402819491
+20
+-576.182653575586
+30
+83.8148703207571
+11
+760.201817040574
+21
+-563.621650860098
+31
+65.2904582517363
+12
+760.20182098394
+22
+-571.352859264312
+32
+63.961061339529
+13
+760.20182098394
+23
+-571.352859264312
+33
+63.961061339529
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201817040574
+20
+-563.621650860098
+30
+65.2904582517363
+11
+753.576402819491
+21
+-576.182653575586
+31
+83.8148703207571
+12
+753.576397473233
+22
+-565.700992480648
+32
+85.6172131326287
+13
+753.576397473233
+23
+-565.700992480648
+33
+85.6172131326287
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332896682708
+20
+-683.128909470703
+30
+103.191916498769
+11
+702.22135687427
+21
+-684.591375697813
+31
+79.4250100709702
+12
+684.332892871929
+22
+-694.910065817882
+32
+85.2241968080869
+13
+684.332892871929
+23
+-694.910065817882
+33
+85.2241968080869
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.22135687427
+20
+-684.591375697813
+30
+79.4250100709702
+11
+684.332896682708
+21
+-683.128909470703
+31
+103.191916498769
+12
+702.221360398304
+22
+-673.696700650341
+32
+96.0407362022104
+13
+702.221360398304
+23
+-673.696700650341
+33
+96.0407362022104
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021379319153
+20
+-618.858911203396
+30
+163.184483899429
+11
+644.636242951136
+21
+-598.733544865996
+31
+176.514545976725
+12
+665.021370191738
+22
+-597.163793012617
+32
+170.061810578218
+13
+665.021370191738
+23
+-597.163793012617
+33
+170.061810578218
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636242951136
+20
+-598.733544865996
+30
+176.514545976725
+11
+665.021379319153
+21
+-618.858911203396
+31
+163.184483899429
+12
+644.636252442318
+22
+-621.293308682581
+32
+169.363127662308
+13
+644.636252442318
+23
+-621.293308682581
+33
+169.363127662308
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575535902759
+20
+-745.521819843274
+30
+27.3599383202345
+11
+454.431253196946
+21
+-737.764901599428
+31
+51.9397070211046
+12
+454.431240478811
+22
+-742.052468269584
+32
+27.0050383833634
+13
+454.431240478811
+23
+-742.052468269584
+33
+27.0050383833634
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431253196946
+20
+-737.764901599428
+30
+51.9397070211046
+11
+453.575535902759
+21
+-745.521819843274
+31
+27.3599383202345
+12
+453.575548860337
+22
+-741.153531203966
+32
+52.7640516820845
+13
+453.575548860337
+23
+-741.153531203966
+33
+52.7640516820845
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431275216977
+20
+-669.689208643299
+30
+155.763553572255
+11
+454.797683261242
+21
+-646.78088064753
+31
+166.522129452237
+12
+454.797687662105
+22
+-667.530828563864
+32
+152.916709017132
+13
+454.797687662105
+23
+-667.530828563864
+33
+152.916709017132
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797683261242
+20
+-646.78088064753
+30
+166.522129452237
+11
+454.431275216977
+21
+-669.689208643299
+31
+155.763553572255
+12
+454.431270729568
+22
+-648.531199395009
+32
+169.63653352158
+13
+454.431270729568
+23
+-648.531199395009
+33
+169.63653352158
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677463405893
+20
+-549.413334136112
+30
+230.27885636425
+11
+468.840126975903
+21
+-580.680624318909
+31
+232.050409880217
+12
+470.677481847252
+22
+-580.392895076207
+32
+229.237696767784
+13
+470.677481847252
+23
+-580.392895076207
+33
+229.237696767784
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840126975903
+20
+-580.680624318909
+30
+232.050409880217
+11
+470.677463405893
+21
+-549.413334136112
+31
+230.27885636425
+12
+468.840108391474
+22
+-549.460721801574
+32
+233.09964686487
+13
+468.840108391474
+23
+-549.460721801574
+33
+233.09964686487
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721690152324
+20
+-549.049610517709
+30
+208.627211339945
+11
+442.839434933817
+21
+-186.86272
+31
+210.755700449054
+12
+445.721690152324
+22
+-186.86272
+32
+208.627211339945
+13
+445.721690152324
+23
+-186.86272
+33
+208.627211339945
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839434933817
+20
+-186.86272
+30
+210.755700449054
+11
+445.721690152324
+21
+-549.049610517709
+31
+208.627211339945
+12
+442.839434933817
+22
+-549.08536836124
+32
+210.755700449054
+13
+442.839434933817
+23
+-549.08536836124
+33
+210.755700449054
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957368701467
+20
+-629.139245228331
+30
+189.276665394806
+11
+696.758800443365
+21
+-647.656853392997
+31
+168.080894990074
+12
+696.758793128571
+22
+-625.025897634329
+32
+178.836736613072
+13
+696.758793128571
+23
+-625.025897634329
+33
+178.836736613072
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758800443365
+20
+-647.656853392997
+30
+168.080894990074
+11
+673.957368701467
+21
+-629.139245228331
+31
+189.276665394806
+12
+673.957376463676
+22
+-653.154439951202
+32
+177.862934850716
+13
+673.957376463676
+23
+-653.154439951202
+33
+177.862934850716
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894045959123
+20
+-575.008661956696
+30
+176.604978855282
+11
+736.997677401125
+21
+-593.835505140242
+31
+156.380365045419
+12
+736.997666927312
+22
+-573.300963343833
+32
+159.911321013811
+13
+736.997666927312
+23
+-573.300963343833
+33
+159.911321013811
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997677401125
+20
+-593.835505140242
+30
+156.380365045419
+11
+717.894045959123
+21
+-575.008661956696
+31
+176.604978855282
+12
+717.894057585081
+22
+-597.802053886837
+32
+172.685609040578
+13
+717.894057585081
+23
+-597.802053886837
+33
+172.685609040578
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721707495526
+20
+-578.184382747044
+30
+207.648051313885
+11
+442.839434933817
+21
+-549.08536836124
+31
+210.755700449054
+12
+445.721690152324
+22
+-549.049610517709
+32
+208.627211339945
+13
+445.721690152324
+23
+-549.049610517709
+33
+208.627211339945
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839434933817
+20
+-549.08536836124
+30
+210.755700449054
+11
+445.721707495526
+21
+-578.184382747044
+31
+207.648051313885
+12
+442.839452384975
+22
+-578.401495960111
+32
+209.770445440443
+13
+442.839452384975
+23
+-578.401495960111
+33
+209.770445440443
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839452384975
+20
+-759.393032819931
+30
+28.7789085623947
+11
+445.72170439774
+21
+-757.445533046268
+31
+23.3578378593151
+12
+442.839449157947
+22
+-759.575223903305
+32
+23.3578378579396
+13
+442.839449157947
+23
+-759.575223903305
+33
+23.3578378579396
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.72170439774
+20
+-757.445533046268
+30
+23.3578378593151
+11
+442.839452384975
+21
+-759.393032819931
+31
+28.7789085623947
+12
+445.721707495526
+22
+-757.270638693351
+32
+28.5617953495419
+13
+445.721707495526
+23
+-757.270638693351
+33
+28.5617953495419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894044751764
+20
+-726.295731112839
+30
+23.3578379516926
+11
+696.758770484001
+21
+-740.277270942125
+31
+26.8233094768247
+12
+696.758768421093
+22
+-740.393738342711
+32
+23.357837941943
+13
+696.758768421093
+23
+-740.393738342711
+33
+23.357837941943
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758770484001
+20
+-740.277270942125
+30
+26.8233094768247
+11
+717.894044751764
+21
+-726.295731112839
+31
+23.3578379516926
+12
+717.894045959123
+22
+-726.227566234427
+32
+25.3860745623198
+13
+717.894045959123
+23
+-726.227566234427
+33
+25.3860745623198
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.00604998394
+20
+-549.612103415805
+30
+242.110623248711
+11
+458.222214863865
+21
+-581.498326831209
+31
+240.043876806793
+12
+458.222195872847
+22
+-549.595394709904
+32
+241.116069017578
+13
+458.222195872847
+23
+-549.595394709904
+33
+241.116069017578
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222214863865
+20
+-581.498326831209
+30
+240.043876806793
+11
+455.00604998394
+21
+-549.612103415805
+31
+242.110623248711
+12
+455.006069025402
+22
+-581.599775817026
+32
+241.035583090668
+13
+455.006069025402
+23
+-581.599775817026
+33
+241.035583090668
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024163430099
+20
+-590.534326018981
+30
+91.2949066282494
+11
+767.829332959368
+21
+-612.755392432138
+31
+105.979521385129
+12
+779.024166993188
+22
+-601.558027793705
+32
+86.0556585976989
+13
+779.024166993188
+23
+-601.558027793705
+33
+86.0556585976989
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829332959368
+20
+-612.755392432138
+30
+105.979521385129
+11
+779.024163430099
+21
+-590.534326018981
+31
+91.2949066282494
+12
+767.829328484993
+22
+-598.912297398533
+32
+112.558745848353
+13
+767.829328484993
+23
+-598.912297398533
+33
+112.558745848353
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829328484993
+20
+-598.912297398533
+30
+112.558745848353
+11
+753.73928554472
+21
+-623.13454224489
+31
+124.447504114724
+12
+767.829332959368
+22
+-612.755392432138
+32
+105.979521385129
+13
+767.829332959368
+23
+-612.755392432138
+33
+105.979521385129
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928554472
+20
+-623.13454224489
+30
+124.447504114724
+11
+767.829328484993
+21
+-598.912297398533
+31
+112.558745848353
+12
+753.739280225648
+22
+-606.678073483521
+32
+132.268789859729
+13
+753.739280225648
+23
+-606.678073483521
+33
+132.268789859729
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739280225648
+20
+-606.678073483521
+30
+132.268789859729
+11
+736.997691839832
+21
+-632.515984774395
+31
+141.140229605674
+12
+753.73928554472
+22
+-623.13454224489
+32
+124.447504114724
+13
+753.73928554472
+23
+-623.13454224489
+33
+124.447504114724
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997691839832
+20
+-632.515984774395
+30
+141.140229605674
+11
+753.739280225648
+21
+-606.678073483521
+31
+132.268789859729
+12
+736.997685757261
+22
+-613.69735635364
+32
+150.084181819366
+13
+736.997685757261
+23
+-613.69735635364
+33
+150.084181819366
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894066860413
+20
+-619.848757614325
+30
+165.696830164561
+11
+736.997691839832
+21
+-632.515984774395
+31
+141.140229605674
+12
+736.997685757261
+22
+-613.69735635364
+32
+150.084181819366
+13
+736.997685757261
+23
+-613.69735635364
+33
+150.084181819366
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997691839832
+20
+-632.515984774395
+30
+141.140229605674
+11
+717.894066860413
+21
+-619.848757614325
+31
+165.696830164561
+12
+717.894073612081
+22
+-640.737481474577
+32
+155.769021196026
+13
+717.894073612081
+23
+-640.737481474577
+33
+155.769021196026
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758793128571
+20
+-625.025897634329
+30
+178.836736613072
+11
+717.894073612081
+21
+-640.737481474577
+31
+155.769021196026
+12
+717.894066860413
+22
+-619.848757614325
+32
+165.696830164561
+13
+717.894066860413
+23
+-619.848757614325
+33
+165.696830164561
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894073612081
+20
+-640.737481474577
+30
+155.769021196026
+11
+696.758793128571
+21
+-625.025897634329
+31
+178.836736613072
+12
+696.758800443365
+22
+-647.656853392997
+32
+168.080894990074
+13
+696.758800443365
+23
+-647.656853392997
+33
+168.080894990074
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466066639417
+20
+-639.203194165743
+30
+89.5806067801329
+11
+744.27505834726
+21
+-616.515297047424
+31
+85.6286672029373
+12
+744.275059137262
+22
+-626.524535798612
+32
+76.9019484142785
+13
+744.275059137262
+23
+-626.524535798612
+33
+76.9019484142785
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505834726
+20
+-616.515297047424
+30
+85.6286672029373
+11
+732.466066639417
+21
+-639.203194165743
+31
+89.5806067801329
+12
+732.466065703719
+22
+-627.348021252322
+32
+99.9167335104564
+13
+732.466065703719
+23
+-627.348021252322
+33
+99.9167335104564
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884100288402
+20
+-754.828812255533
+30
+56.0907148781112
+11
+624.955333552396
+21
+-751.006817642042
+31
+84.2870649622931
+12
+624.955322175969
+22
+-759.578730682939
+32
+57.2462284142879
+13
+624.955322175969
+23
+-759.578730682939
+33
+57.2462284142879
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955333552396
+20
+-751.006817642042
+30
+84.2870649622931
+11
+649.884100288402
+21
+-754.828812255533
+31
+56.0907148781112
+12
+649.884111397057
+22
+-746.458660352302
+32
+82.4950785735168
+13
+649.884111397057
+23
+-746.458660352302
+33
+82.4950785735168
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.84015475682
+20
+-767.174448290109
+30
+90.6571807720069
+11
+466.630414711229
+21
+-778.937031754263
+31
+61.9555523461604
+12
+468.840142428527
+22
+-776.463572930403
+32
+61.353838580619
+13
+468.840142428527
+23
+-776.463572930403
+33
+61.353838580619
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630414711229
+20
+-778.937031754263
+30
+61.9555523461604
+11
+468.84015475682
+21
+-767.174448290109
+31
+90.6571807720069
+12
+466.630427178961
+22
+-769.542842319152
+32
+91.5903304644009
+13
+466.630427178961
+23
+-769.542842319152
+33
+91.5903304644009
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.10170430358
+20
+-549.308104906071
+30
+224.014968929071
+11
+472.107168359226
+21
+-580.08201644067
+31
+226.198682483658
+12
+473.101722427237
+22
+-579.753960348852
+32
+222.99174608133
+13
+473.101722427237
+23
+-579.753960348852
+33
+222.99174608133
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107168359226
+20
+-580.08201644067
+30
+226.198682483658
+11
+473.10170430358
+21
+-549.308104906071
+31
+224.014968929071
+12
+472.107150072447
+22
+-549.362133988305
+32
+227.231114817978
+13
+472.107150072447
+23
+-549.362133988305
+33
+227.231114817978
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955333552396
+20
+-751.006817642042
+30
+84.2870649622931
+11
+599.602150844536
+21
+-740.196470143783
+31
+110.675521501907
+12
+599.60214250095
+22
+-752.465070814344
+32
+84.8616271735756
+13
+599.60214250095
+23
+-752.465070814344
+33
+84.8616271735756
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602150844536
+20
+-740.196470143783
+30
+110.675521501907
+11
+624.955333552396
+21
+-751.006817642042
+31
+84.2870649622931
+12
+624.955341833487
+22
+-738.830110282484
+32
+109.907610082888
+13
+624.955341833487
+23
+-738.830110282484
+33
+109.907610082888
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.700983922341
+20
+-280.29408
+30
+1605.98522290042
+11
+180.160557528894
+21
+-186.86272
+31
+1570.85958260462
+12
+180.160557528893
+22
+-280.29408
+32
+1570.85958260462
+13
+180.160557528893
+23
+-280.29408
+33
+1570.85958260462
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+180.160557528894
+20
+-186.86272
+30
+1570.85958260462
+11
+176.700983922341
+21
+-280.29408
+31
+1605.98522290042
+12
+176.700983922342
+22
+-186.86272
+32
+1605.98522290042
+13
+176.700983922342
+23
+-186.86272
+33
+1605.98522290042
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466052014781
+20
+-669.667851071909
+30
+35.3737619083722
+11
+744.275052115393
+21
+-648.23289118406
+31
+43.7940230954864
+12
+744.275046789786
+22
+-652.245630435845
+32
+31.1354921818382
+13
+744.275046789786
+23
+-652.245630435845
+33
+31.1354921818382
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275052115393
+20
+-648.23289118406
+30
+43.7940230954864
+11
+732.466052014781
+21
+-669.667851071909
+31
+35.3737619083722
+12
+732.466058322552
+22
+-664.91507027919
+32
+50.366817478493
+13
+732.466058322552
+23
+-664.91507027919
+33
+50.366817478493
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335587191701
+20
+-578.704166932226
+30
+212.72919754513
+11
+432.838897838644
+21
+-549.148351803013
+31
+214.504708726405
+12
+436.335569590044
+22
+-549.135217804424
+32
+213.722949367545
+13
+436.335569590044
+23
+-549.135217804424
+33
+213.722949367545
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838897838644
+20
+-549.148351803013
+30
+214.504708726405
+11
+436.335587191701
+21
+-578.704166932226
+31
+212.72919754513
+12
+432.838915479952
+22
+-578.783910422824
+32
+213.508718295381
+13
+432.838915479952
+23
+-578.783910422824
+33
+213.508718295381
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642065047928
+20
+-755.603683334388
+30
+86.0982896720056
+11
+473.10173725466
+21
+-767.61567851106
+31
+59.2014293241045
+12
+473.642053400866
+22
+-764.379514823734
+32
+58.4141748490874
+13
+473.642053400866
+23
+-764.379514823734
+33
+58.4141748490874
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.10173725466
+20
+-767.61567851106
+30
+59.2014293241045
+11
+473.642065047928
+21
+-755.603683334388
+31
+86.0982896720056
+12
+473.101749084159
+22
+-758.702384848233
+32
+87.3191803898169
+13
+473.101749084159
+23
+-758.702384848233
+33
+87.3191803898169
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335620774804
+20
+-737.047580997407
+30
+108.905866027708
+11
+439.690607723364
+21
+-747.931486742049
+31
+83.0754516399063
+12
+436.335612575248
+22
+-749.104396759147
+32
+83.5375802413299
+13
+436.335612575248
+23
+-749.104396759147
+33
+83.5375802413299
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690607723364
+20
+-747.931486742049
+30
+83.0754516399063
+11
+436.335620774804
+21
+-737.047580997407
+31
+108.905866027708
+12
+439.690615872653
+22
+-735.948583762681
+32
+108.288220362449
+13
+439.690615872653
+23
+-735.948583762681
+33
+108.288220362449
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-549.195745909472
+30
+217.326639240051
+11
+599.602116671527
+21
+-579.071662867255
+31
+216.322569598682
+12
+599.602098887118
+22
+-549.195708452133
+32
+217.326639240051
+13
+599.602098887118
+23
+-549.195708452133
+33
+217.326639240051
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602116671527
+20
+-579.071662867255
+30
+216.322569598682
+11
+473.71772029492
+21
+-549.195745909472
+31
+217.326639240051
+12
+473.717738079349
+22
+-579.071732366754
+32
+216.322568521811
+13
+473.717738079349
+23
+-579.071732366754
+33
+216.322568521811
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758768421093
+20
+-740.393738342711
+30
+23.357837941943
+11
+673.957344671825
+21
+-751.440053094339
+31
+27.9652257853831
+12
+673.957341929162
+22
+-751.594897963598
+32
+23.3578379323091
+13
+673.957341929162
+23
+-751.594897963598
+33
+23.3578379323091
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957344671825
+20
+-751.440053094339
+30
+27.9652257853831
+11
+696.758768421093
+21
+-740.393738342711
+31
+23.357837941943
+12
+696.758770484001
+22
+-740.277270942125
+32
+26.8233094768247
+13
+696.758770484001
+23
+-740.277270942125
+33
+26.8233094768247
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363107612844
+20
+-650.643847155672
+30
+101.021259768909
+11
+732.466065703719
+21
+-627.348021252322
+31
+99.9167335104564
+12
+732.466066639417
+22
+-639.203194165743
+32
+89.5806067801329
+13
+732.466066639417
+23
+-639.203194165743
+33
+89.5806067801329
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466065703719
+20
+-627.348021252322
+30
+99.9167335104564
+11
+718.363107612844
+21
+-650.643847155672
+31
+101.021259768909
+12
+718.363106545679
+22
+-637.12298630735
+32
+112.809643814588
+13
+718.363106545679
+23
+-637.12298630735
+33
+112.809643814588
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130182929858
+20
+-573.195904769668
+30
+71.5373148305873
+11
+779.024163430099
+21
+-590.534326018981
+31
+91.2949066282494
+12
+787.130186503031
+22
+-581.689044301674
+32
+68.844999694228
+13
+787.130186503031
+23
+-581.689044301674
+33
+68.844999694228
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024163430099
+20
+-590.534326018981
+30
+91.2949066282494
+11
+787.130182929858
+21
+-573.195904769668
+31
+71.5373148305873
+12
+779.024158535186
+22
+-578.899518233046
+32
+94.9831268667919
+13
+779.024158535186
+23
+-578.899518233046
+33
+94.9831268667919
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335612575248
+20
+-633.16016763801
+30
+199.481809374145
+11
+432.838929652884
+21
+-606.570796271198
+31
+208.73070710808
+12
+436.335601310833
+22
+-606.385574583813
+32
+207.969323546969
+13
+436.335601310833
+23
+-606.385574583813
+33
+207.969323546969
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838929652884
+20
+-606.570796271198
+30
+208.73070710808
+11
+436.335612575248
+21
+-633.16016763801
+31
+199.481809374145
+12
+432.838940960221
+22
+-633.447412164356
+32
+200.210851816573
+13
+432.838940960221
+23
+-633.447412164356
+33
+200.210851816573
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.478047748674
+20
+-563.767069108265
+30
+23.3578380112902
+11
+792.007217306199
+21
+-577.494024343961
+31
+43.2377297488181
+12
+793.410423174187
+22
+-566.321374409616
+32
+23.357838010706
+13
+793.410423174187
+23
+-566.321374409616
+33
+23.357838010706
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007217306199
+20
+-577.494024343961
+30
+43.2377297488181
+11
+793.478047748674
+21
+-563.767069108265
+31
+23.3578380112902
+12
+792.007215701535
+22
+-572.529418663124
+32
+45.597263875134
+13
+792.007215701535
+23
+-572.529418663124
+33
+45.597263875134
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955333552396
+20
+-633.909652359165
+30
+201.384230256964
+11
+649.884119483233
+21
+-657.135168302204
+31
+184.945974477603
+12
+649.884111397057
+22
+-632.11766596993
+32
+196.836072967405
+13
+649.884111397057
+23
+-632.11766596993
+33
+196.836072967405
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884119483233
+20
+-657.135168302204
+30
+184.945974477603
+11
+624.955333552396
+21
+-633.909652359165
+31
+201.384230256964
+12
+624.955341833487
+22
+-659.530197478533
+32
+189.207522894826
+13
+624.955341833487
+23
+-659.530197478533
+33
+189.207522894826
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246977834961
+20
+-748.839872068014
+30
+27.6993612581553
+11
+453.575533520408
+21
+-745.656322242814
+31
+23.3578378643829
+12
+452.24697525056
+22
+-748.985781777358
+32
+23.3578378632311
+13
+452.24697525056
+23
+-748.985781777358
+33
+23.3578378632311
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575533520408
+20
+-745.656322242814
+30
+23.3578378643829
+11
+452.246977834961
+21
+-748.839872068014
+31
+27.6993612581553
+12
+453.575535902759
+22
+-745.521819843274
+32
+27.3599383202345
+13
+453.575535902759
+23
+-745.521819843274
+33
+27.3599383202345
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797653593913
+20
+-738.498463121584
+30
+26.6414790273437
+11
+454.667734764409
+21
+-735.026158016502
+31
+23.3578378670709
+12
+454.797651639243
+22
+-738.608819575715
+32
+23.3578378663214
+13
+454.797651639243
+23
+-738.608819575715
+33
+23.3578378663214
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667734764409
+20
+-735.026158016502
+30
+23.3578378670709
+11
+454.797653593913
+21
+-738.498463121584
+31
+26.6414790273437
+12
+454.667736501664
+22
+-734.928076357629
+32
+26.2762441782473
+13
+454.667736501664
+23
+-734.928076357629
+33
+26.2762441782473
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690596528004
+20
+-756.366969281262
+30
+56.4649968373303
+11
+442.839452384975
+21
+-759.393032819931
+31
+28.7789085623947
+12
+439.690582495428
+22
+-761.097663471809
+32
+28.9532865498045
+13
+439.690582495428
+23
+-761.097663471809
+33
+28.9532865498045
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839452384975
+20
+-759.393032819931
+30
+28.7789085623947
+11
+439.690596528004
+21
+-756.366969281262
+31
+56.4649968373303
+12
+442.839466299903
+22
+-754.702000509797
+32
+56.0599621810555
+13
+442.839466299903
+23
+-754.702000509797
+33
+56.0599621810555
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602155913773
+20
+-684.199422975673
+30
+174.902160191072
+11
+624.955348552338
+21
+-704.633972822346
+31
+155.011385430145
+12
+624.955346864755
+22
+-683.252487807443
+32
+173.653183437694
+13
+624.955346864755
+23
+-683.252487807443
+33
+173.653183437694
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955348552338
+20
+-704.633972822346
+30
+155.011385430145
+11
+599.602155913773
+21
+-684.199422975673
+31
+174.902160191072
+12
+599.602157614092
+22
+-705.742266508454
+32
+156.119679116142
+13
+599.602157614092
+23
+-705.742266508454
+33
+156.119679116142
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839490392048
+20
+-680.220295673638
+30
+169.6537686923
+11
+439.690615872653
+21
+-657.910807757804
+31
+186.325996375185
+12
+442.839485482368
+22
+-657.071290040049
+32
+184.832214227177
+13
+442.839485482368
+23
+-657.071290040049
+33
+184.832214227177
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690615872653
+20
+-657.910807757804
+30
+186.325996375185
+11
+442.839490392048
+21
+-680.220295673638
+31
+169.6537686923
+12
+439.690620823844
+22
+-681.255534297249
+32
+171.019219664594
+13
+439.690620823844
+23
+-681.255534297249
+33
+171.019219664594
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636259351108
+20
+-642.668144691721
+30
+159.204283586808
+11
+623.546355296361
+21
+-622.700434111963
+31
+172.934485818424
+12
+644.636252442318
+22
+-621.293308682581
+32
+169.363127662308
+13
+644.636252442318
+23
+-621.293308682581
+33
+169.363127662308
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546355296361
+20
+-622.700434111963
+30
+172.934485818424
+11
+644.636259351108
+21
+-642.668144691721
+31
+159.204283586808
+12
+623.546362358205
+22
+-644.548798426367
+32
+162.550587374486
+13
+623.546362358205
+23
+-644.548798426367
+33
+162.550587374486
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.02138596315
+20
+-639.414516186541
+30
+153.414996741162
+11
+644.636252442318
+21
+-621.293308682581
+31
+169.363127662308
+12
+665.021379319153
+22
+-618.858911203396
+32
+163.184483899429
+13
+665.021379319153
+23
+-618.858911203396
+33
+163.184483899429
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636252442318
+20
+-621.293308682581
+30
+169.363127662308
+11
+665.02138596315
+21
+-639.414516186541
+31
+153.414996741162
+12
+644.636259351108
+22
+-642.668144691721
+32
+159.204283586808
+13
+644.636259351108
+23
+-642.668144691721
+33
+159.204283586808
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332892871929
+20
+-634.846784199308
+30
+145.28747843271
+11
+665.021379319153
+21
+-618.858911203396
+31
+163.184483899429
+12
+684.332886599671
+22
+-615.441289762884
+32
+154.510351165083
+13
+684.332886599671
+23
+-615.441289762884
+33
+154.510351165083
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021379319153
+20
+-618.858911203396
+30
+163.184483899429
+11
+684.332892871929
+21
+-634.846784199308
+31
+145.28747843271
+12
+665.02138596315
+22
+-639.414516186541
+32
+153.414996741162
+13
+665.02138596315
+23
+-639.414516186541
+33
+153.414996741162
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.22135687427
+20
+-629.047597461153
+30
+134.968788313225
+11
+684.332886599671
+21
+-615.441289762884
+31
+154.510351165083
+12
+702.221351073972
+22
+-611.102282944468
+32
+143.497679575028
+13
+702.221351073972
+23
+-611.102282944468
+33
+143.497679575028
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332886599671
+20
+-615.441289762884
+30
+154.510351165083
+11
+702.22135687427
+21
+-629.047597461153
+31
+134.968788313225
+12
+684.332892871929
+22
+-634.846784199308
+32
+145.28747843271
+13
+684.332892871929
+23
+-634.846784199308
+33
+145.28747843271
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363103364091
+20
+-622.121886696301
+30
+122.645633187677
+11
+702.221351073972
+21
+-611.102282944468
+31
+143.497679575028
+12
+718.363098127435
+22
+-605.920400916633
+32
+130.345732863609
+13
+718.363098127435
+23
+-605.920400916633
+33
+130.345732863609
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221351073972
+20
+-611.102282944468
+30
+143.497679575028
+11
+718.363103364091
+21
+-622.121886696301
+31
+122.645633187677
+12
+702.22135687427
+22
+-629.047597461153
+32
+134.968788313225
+13
+702.22135687427
+23
+-629.047597461153
+33
+134.968788313225
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363103364091
+20
+-622.121886696301
+30
+122.645633187677
+11
+732.466058322552
+21
+-599.989404866694
+31
+115.292482897529
+12
+732.466062914084
+22
+-614.194966001222
+32
+108.540988733599
+13
+732.466062914084
+23
+-614.194966001222
+33
+108.540988733599
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466058322552
+20
+-599.989404866694
+30
+115.292482897529
+11
+718.363103364091
+21
+-622.121886696301
+31
+122.645633187677
+12
+718.363098127435
+22
+-605.920400916633
+32
+130.345732863609
+13
+718.363098127435
+23
+-605.920400916633
+33
+130.345732863609
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031425007948
+20
+-586.699189190326
+30
+30.0821938636906
+11
+764.696220629469
+21
+-572.980425379156
+31
+23.3578380002154
+12
+764.531578361879
+22
+-577.829946771796
+32
+23.3578379990944
+13
+764.531578361879
+23
+-577.829946771796
+33
+23.3578379990944
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.696220629469
+20
+-572.980425379156
+30
+23.3578380002154
+11
+764.031425007948
+21
+-586.699189190326
+31
+30.0821938636906
+12
+764.031425302868
+22
+-583.441376980459
+32
+33.8187896004645
+13
+764.031425302868
+23
+-583.441376980459
+33
+33.8187896004645
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.935095112731
+20
+-577.829952364284
+30
+23.3578380080173
+11
+792.007217306199
+21
+-592.860317128213
+31
+27.8714369630177
+12
+792.574093434967
+22
+-584.829110641297
+32
+23.3578380063606
+13
+792.574093434967
+23
+-584.829110641297
+33
+23.3578380063606
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007217306199
+20
+-592.860317128213
+30
+27.8714369630177
+11
+792.935095112731
+21
+-577.829952364284
+31
+23.3578380080173
+12
+792.007218281129
+22
+-589.846284379929
+32
+32.4682094668199
+13
+792.007218281129
+23
+-589.846284379929
+33
+32.4682094668199
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.0314182014
+20
+-561.470422367227
+30
+44.2609516834995
+11
+764.995900047839
+21
+-545.937132023437
+31
+23.3578380793295
+12
+764.975642457445
+22
+-559.332124908489
+32
+23.3578380033138
+13
+764.975642457445
+23
+-559.332124908489
+33
+23.3578380033138
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.995900047839
+20
+-545.937132023437
+30
+23.3578380793295
+11
+764.0314182014
+21
+-561.470422367227
+31
+44.2609516834995
+12
+764.031409168954
+22
+-546.296855411639
+32
+44.7709041931231
+13
+764.031409168954
+23
+-546.296855411639
+33
+44.7709041931231
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024140682123
+20
+-186.86272
+30
+97.713066817443
+11
+767.829301759449
+21
+-547.569288532173
+31
+120.514493197419
+12
+779.024140682123
+22
+-547.186238711366
+32
+97.7130668174428
+13
+779.024140682123
+23
+-547.186238711366
+33
+97.7130668174428
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829301759449
+20
+-547.569288532173
+30
+120.514493197419
+11
+779.024140682123
+21
+-186.86272
+31
+97.713066817443
+12
+767.829301759449
+22
+-186.86272
+32
+120.51449319742
+13
+767.829301759449
+23
+-186.86272
+33
+120.51449319742
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247013852634
+20
+-710.823016652003
+30
+124.188674487802
+11
+453.575572828439
+21
+-691.225448319662
+31
+141.602860928812
+12
+453.575571294939
+22
+-708.165176005556
+32
+122.173590554812
+13
+453.575571294939
+23
+-708.165176005556
+33
+122.173590554812
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575572828439
+20
+-691.225448319662
+30
+141.602860928812
+11
+452.247013852634
+21
+-710.823016652003
+31
+124.188674487802
+12
+452.247015413237
+22
+-693.583909707096
+32
+143.961322316008
+13
+452.247015413237
+23
+-693.583909707096
+33
+143.961322316008
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575571294939
+20
+-708.165176005556
+30
+122.173590554812
+11
+454.431276722139
+21
+-688.759443912117
+31
+139.136856521515
+12
+454.431275216977
+22
+-705.386140960936
+32
+120.066621251022
+13
+454.431275216977
+23
+-705.386140960936
+33
+120.066621251022
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431276722139
+20
+-688.759443912117
+30
+139.136856521515
+11
+453.575571294939
+21
+-708.165176005556
+31
+122.173590554812
+12
+453.575572828439
+22
+-691.225448319662
+32
+141.602860928812
+13
+453.575572828439
+23
+-691.225448319662
+33
+141.602860928812
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335601310833
+20
+-757.591910929275
+30
+56.7629871862785
+11
+439.690582495428
+21
+-761.097663471809
+31
+28.9532865498045
+12
+436.335587191701
+22
+-762.351784924648
+32
+29.0815795342117
+13
+436.335587191701
+23
+-762.351784924648
+33
+29.0815795342117
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690582495428
+20
+-761.097663471809
+30
+28.9532865498045
+11
+436.335601310833
+21
+-757.591910929275
+31
+56.7629871862785
+12
+439.690596528004
+22
+-756.366969281262
+32
+56.4649968373303
+13
+439.690596528004
+23
+-756.366969281262
+33
+56.4649968373303
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006112926336
+20
+-699.207898179883
+30
+194.697902416163
+11
+458.222260471925
+21
+-722.603322716877
+31
+172.980735322867
+12
+458.222258577851
+22
+-698.605625061081
+32
+193.903521183332
+13
+458.222258577851
+23
+-698.605625061081
+33
+193.903521183332
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222260471925
+20
+-722.603322716877
+30
+172.980735322867
+11
+455.006112926336
+21
+-699.207898179883
+31
+194.697902416163
+12
+455.006114828511
+22
+-723.308225016813
+32
+173.685637622731
+13
+455.006114828511
+23
+-723.308225016813
+33
+173.685637622731
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222258577851
+20
+-698.605625061081
+30
+193.903521183332
+11
+461.270001665299
+21
+-721.590015329221
+31
+171.967427935313
+12
+461.269999782869
+22
+-697.7398487668
+32
+192.761586394987
+13
+461.269999782869
+23
+-697.7398487668
+33
+192.761586394987
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.270001665299
+20
+-721.590015329221
+30
+171.967427935313
+11
+458.222258577851
+21
+-698.605625061081
+31
+193.903521183332
+12
+458.222260471925
+22
+-722.603322716877
+32
+172.980735322867
+13
+458.222260471925
+23
+-722.603322716877
+33
+172.980735322867
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471087696265
+20
+-751.942885609203
+30
+28.0167869283821
+11
+452.24697525056
+21
+-748.985781777358
+31
+23.3578378632311
+12
+450.471084922909
+22
+-752.099463345238
+32
+23.3578378619863
+13
+450.471084922909
+23
+-752.099463345238
+33
+23.3578378619863
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.24697525056
+20
+-748.985781777358
+30
+23.3578378632311
+11
+450.471087696265
+21
+-751.942885609203
+31
+28.0167869283821
+12
+452.246977834961
+22
+-748.839872068014
+32
+27.6993612581553
+13
+452.246977834961
+23
+-748.839872068014
+33
+27.6993612581553
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332877982946
+20
+-710.625470617764
+30
+45.3374518452758
+11
+696.283090443709
+21
+-706.400240289655
+31
+23.3578379492919
+12
+684.332867182503
+22
+-714.266540775895
+32
+24.1625326278822
+13
+684.332867182503
+23
+-714.266540775895
+33
+24.1625326278822
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.283090443709
+20
+-706.400240289655
+30
+23.3578379492919
+11
+684.332877982946
+21
+-710.625470617764
+31
+45.3374518452758
+12
+702.221343105619
+22
+-699.12426393804
+32
+42.5395709625037
+13
+702.221343105619
+23
+-699.12426393804
+33
+42.5395709625037
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.283090443709
+20
+-706.400240289655
+30
+23.3578379492919
+11
+702.221343105619
+21
+-699.12426393804
+31
+42.5395709625037
+12
+702.221333321817
+22
+-702.422601699266
+32
+23.3578379520354
+13
+702.221333321817
+23
+-702.422601699266
+33
+23.3578379520354
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466062914084
+20
+-614.194966001222
+30
+108.540988733599
+11
+744.275052115393
+21
+-593.416610482006
+31
+98.6103038030606
+12
+744.27505599199
+22
+-605.41026540619
+32
+92.9100649699753
+13
+744.27505599199
+23
+-605.41026540619
+33
+92.9100649699753
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275052115393
+20
+-593.416610482006
+30
+98.6103038030606
+11
+732.466062914084
+21
+-614.194966001222
+31
+108.540988733599
+12
+732.466058322552
+22
+-599.989404866694
+32
+115.292482897529
+13
+732.466058322552
+23
+-599.989404866694
+33
+115.292482897529
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.27505599199
+20
+-605.41026540619
+30
+92.9100649699753
+11
+753.576407084801
+21
+-586.320946175488
+31
+80.6010436173693
+12
+753.576410189591
+22
+-595.926735646398
+32
+76.0356884766169
+13
+753.576410189591
+23
+-595.926735646398
+33
+76.0356884766169
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576407084801
+20
+-586.320946175488
+30
+80.6010436173693
+11
+744.27505599199
+21
+-605.41026540619
+31
+92.9100649699753
+12
+744.275052115393
+22
+-593.416610482006
+32
+98.6103038030606
+13
+744.275052115393
+23
+-593.416610482006
+33
+98.6103038030606
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576410189591
+20
+-595.926735646398
+30
+76.0356884766169
+11
+760.201824130007
+21
+-578.830801190005
+31
+61.5905626376661
+12
+760.201826420081
+22
+-585.915972100795
+32
+58.2231849183613
+13
+760.201826420081
+23
+-585.915972100795
+33
+58.2231849183613
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201824130007
+20
+-578.830801190005
+30
+61.5905626376661
+11
+753.576410189591
+21
+-595.926735646398
+31
+76.0356884766169
+12
+753.576407084801
+22
+-586.320946175488
+32
+80.6010436173693
+13
+753.576407084801
+23
+-586.320946175488
+33
+80.6010436173693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201826420081
+20
+-585.915972100795
+30
+58.2231849183613
+11
+764.031422681501
+21
+-571.081702518113
+31
+41.9228372915384
+12
+764.031424128692
+22
+-575.559109938211
+32
+39.7948544698768
+13
+764.031424128692
+23
+-575.559109938211
+33
+39.7948544698768
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031422681501
+20
+-571.081702518113
+30
+41.9228372915384
+11
+760.201826420081
+21
+-585.915972100795
+31
+58.2231849183613
+12
+760.201824130007
+22
+-578.830801190005
+32
+61.5905626376661
+13
+760.201824130007
+23
+-578.830801190005
+33
+61.5905626376661
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031424128692
+20
+-575.559109938211
+30
+39.7948544698768
+11
+764.92809314571
+21
+-563.7670797619
+31
+23.357838002321
+12
+764.878707491771
+22
+-566.32138210224
+32
+23.3578380017417
+13
+764.878707491771
+23
+-566.32138210224
+33
+23.3578380017417
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.92809314571
+20
+-563.7670797619
+30
+23.357838002321
+11
+764.031424128692
+21
+-575.559109938211
+31
+39.7948544698768
+12
+764.031422681501
+22
+-571.081702518113
+32
+41.9228372915384
+13
+764.031422681501
+23
+-571.081702518113
+33
+41.9228372915384
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007217306199
+20
+-577.494024343961
+30
+43.2377297488181
+11
+787.130190684252
+21
+-597.186922321698
+31
+60.1350749996264
+12
+792.007218281129
+22
+-582.09079684746
+32
+40.22369700007
+13
+792.007218281129
+23
+-582.09079684746
+33
+40.22369700007
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130190684252
+20
+-597.186922321698
+30
+60.1350749996264
+11
+792.007217306199
+21
+-577.494024343961
+31
+43.2377297488181
+12
+787.130189104003
+22
+-589.736090634929
+32
+65.0204702834338
+13
+787.130189104003
+23
+-589.736090634929
+33
+65.0204702834338
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130189104003
+20
+-589.736090634929
+30
+65.0204702834338
+11
+779.024169157982
+21
+-611.764971197169
+31
+79.3631234201936
+12
+787.130190684252
+22
+-597.186922321698
+32
+60.1350749996264
+13
+787.130190684252
+23
+-597.186922321698
+33
+60.1350749996264
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024169157982
+20
+-611.764971197169
+30
+79.3631234201936
+11
+787.130189104003
+21
+-589.736090634929
+31
+65.0204702834338
+12
+779.024166993188
+22
+-601.558027793705
+32
+86.0556585976989
+13
+779.024166993188
+23
+-601.558027793705
+33
+86.0556585976989
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024166993188
+20
+-601.558027793705
+30
+86.0556585976989
+11
+767.829335677824
+21
+-625.572837100386
+31
+97.5753208387769
+12
+779.024169157982
+22
+-611.764971197169
+32
+79.3631234201936
+13
+779.024169157982
+23
+-611.764971197169
+33
+79.3631234201936
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829335677824
+20
+-625.572837100386
+30
+97.5753208387769
+11
+779.024166993188
+21
+-601.558027793705
+31
+86.0556585976989
+12
+767.829332959368
+22
+-612.755392432138
+32
+105.979521385129
+13
+767.829332959368
+23
+-612.755392432138
+33
+105.979521385129
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829332959368
+20
+-612.755392432138
+30
+105.979521385129
+11
+753.73928877638
+21
+-638.371732863863
+31
+114.456713513376
+12
+767.829335677824
+22
+-625.572837100386
+32
+97.5753208387769
+13
+767.829335677824
+23
+-625.572837100386
+33
+97.5753208387769
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928877638
+20
+-638.371732863863
+30
+114.456713513376
+11
+767.829332959368
+21
+-612.755392432138
+31
+105.979521385129
+12
+753.73928554472
+22
+-623.13454224489
+32
+124.447504114724
+13
+753.73928554472
+23
+-623.13454224489
+33
+124.447504114724
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636231054623
+20
+-575.409716284687
+30
+180.525125445771
+11
+623.546317277054
+21
+-548.656939099171
+31
+185.255996085023
+12
+644.636215091063
+22
+-548.592598441069
+32
+181.426393854527
+13
+644.636215091063
+23
+-548.592598441069
+33
+181.426393854527
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546317277054
+20
+-548.656939099171
+30
+185.255996085023
+11
+644.636231054623
+21
+-575.409716284687
+31
+180.525125445771
+12
+623.546333434853
+22
+-575.80035767001
+32
+184.343761377095
+13
+623.546333434853
+23
+-575.80035767001
+33
+184.343761377095
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021358751182
+20
+-574.733894284646
+30
+173.91867700208
+11
+644.636215091063
+21
+-548.592598441069
+31
+181.426393854527
+12
+665.021343123663
+22
+-548.481290386566
+32
+174.800973253262
+13
+665.021343123663
+23
+-548.481290386566
+33
+174.800973253262
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636215091063
+20
+-548.592598441069
+30
+181.426393854527
+11
+665.021358751182
+21
+-574.733894284646
+31
+173.91867700208
+12
+644.636231054623
+22
+-575.409716284687
+32
+180.525125445771
+13
+644.636231054623
+23
+-575.409716284687
+33
+180.525125445771
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107164131826
+20
+-776.05993979789
+30
+23.3578378634987
+11
+470.677481847252
+21
+-778.860284147472
+31
+30.7703076765303
+12
+470.677477434794
+22
+-779.109402076299
+32
+23.3578378623763
+13
+470.677477434794
+23
+-779.109402076299
+33
+23.3578378623763
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677481847252
+20
+-778.860284147472
+30
+30.7703076765303
+11
+472.107164131826
+21
+-776.05993979789
+31
+23.3578378634987
+12
+472.107168359226
+22
+-775.821269863314
+32
+30.4594290412997
+13
+472.107168359226
+23
+-775.821269863314
+33
+30.4594290412997
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267737950976
+20
+-763.421251234373
+30
+29.1909851596944
+11
+432.838912025282
+21
+-763.326348925263
+31
+23.3578378539704
+12
+429.267734478649
+22
+-763.617291372796
+32
+23.3578378527852
+13
+429.267734478649
+23
+-763.617291372796
+33
+23.3578378527852
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838912025282
+20
+-763.326348925263
+30
+23.3578378539704
+11
+429.267737950976
+21
+-763.421251234373
+31
+29.1909851596944
+12
+432.838915479952
+22
+-763.131305674907
+32
+29.1613230247316
+13
+432.838915479952
+23
+-763.131305674907
+33
+29.1613230247316
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575535902759
+20
+-745.521819843274
+30
+27.3599383202345
+11
+454.431238307724
+21
+-742.175043209088
+31
+23.3578378654204
+12
+453.575533520408
+22
+-745.656322242814
+32
+23.3578378643829
+13
+453.575533520408
+23
+-745.656322242814
+33
+23.3578378643829
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431238307724
+20
+-742.175043209088
+30
+23.3578378654204
+11
+453.575535902759
+21
+-745.521819843274
+31
+27.3599383202345
+12
+454.431240478811
+22
+-742.052468269584
+32
+27.0050383833634
+13
+454.431240478811
+23
+-742.052468269584
+33
+27.0050383833634
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.160541596036
+20
+-572.980425388099
+30
+23.3578380091579
+11
+792.007218281129
+21
+-589.846284379929
+31
+32.4682094668199
+12
+792.935095112731
+22
+-577.829952364284
+32
+23.3578380080173
+13
+792.935095112731
+23
+-577.829952364284
+33
+23.3578380080173
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007218281129
+20
+-589.846284379929
+30
+32.4682094668199
+11
+793.160541596036
+21
+-572.980425388099
+31
+23.3578380091579
+12
+792.00721860814
+22
+-586.233981212786
+32
+36.6113938325108
+13
+792.00721860814
+23
+-586.233981212786
+33
+36.6113938325108
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630394345883
+20
+-784.472871509203
+30
+23.3578378599218
+11
+464.090746745054
+21
+-786.408777774662
+31
+31.5424891402109
+12
+464.090741872935
+22
+-786.683847141088
+32
+23.3578378586363
+13
+464.090741872935
+23
+-786.683847141088
+33
+23.3578378586363
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090746745054
+20
+-786.408777774662
+30
+31.5424891402109
+11
+466.630394345883
+21
+-784.472871509203
+31
+23.3578378599218
+12
+466.630399083827
+22
+-784.205377362117
+32
+31.3170895287116
+13
+466.630399083827
+23
+-784.205377362117
+33
+31.3170895287116
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.283090443709
+20
+-706.400240289655
+30
+23.3578379492919
+11
+684.332866703488
+21
+-714.293584916115
+31
+23.3578379437967
+12
+684.332867182503
+22
+-714.266540775895
+32
+24.1625326278822
+13
+684.332867182503
+23
+-714.266540775895
+33
+24.1625326278822
+70
+0
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431240478811
+20
+-742.052468269584
+30
+27.0050383833634
+11
+454.797651639243
+21
+-738.608819575715
+31
+23.3578378663214
+12
+454.431238307724
+22
+-742.175043209088
+32
+23.3578378654204
+13
+454.431238307724
+23
+-742.175043209088
+33
+23.3578378654204
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797651639243
+20
+-738.608819575715
+30
+23.3578378663214
+11
+454.431240478811
+21
+-742.052468269584
+31
+27.0050383833634
+12
+454.797653593913
+22
+-738.498463121584
+32
+26.6414790273437
+13
+454.797653593913
+23
+-738.498463121584
+33
+26.6414790273437
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677477434794
+20
+-779.109402076299
+30
+23.3578378623763
+11
+468.840126975903
+21
+-781.672997259934
+31
+31.0580369189494
+12
+468.840122392167
+22
+-781.931785179335
+32
+23.3578378611765
+13
+468.840122392167
+23
+-781.931785179335
+33
+23.3578378611765
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840126975903
+20
+-781.672997259934
+30
+31.0580369189494
+11
+470.677477434794
+21
+-779.109402076299
+31
+23.3578378623763
+12
+470.677481847252
+22
+-778.860284147472
+32
+30.7703076765303
+13
+470.677481847252
+23
+-778.860284147472
+33
+30.7703076765303
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031425302868
+20
+-583.441376980459
+30
+33.8187896004645
+11
+764.805052044838
+21
+-569.303684335783
+31
+23.3578380010606
+12
+764.696220629469
+22
+-572.980425379156
+32
+23.3578380002154
+13
+764.696220629469
+23
+-572.980425379156
+33
+23.3578380002154
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.805052044838
+20
+-569.303684335783
+30
+23.3578380010606
+11
+764.031425302868
+21
+-583.441376980459
+31
+33.8187896004645
+12
+764.031425007948
+22
+-579.704781244013
+32
+37.0766018107078
+13
+764.031425007948
+23
+-579.704781244013
+33
+37.0766018107078
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602113045565
+20
+-766.149870997149
+30
+23.3578379057383
+11
+473.717738079349
+21
+-765.945155901366
+31
+29.449144968378
+12
+473.717734453346
+22
+-766.149872257343
+32
+23.3578378661905
+13
+473.717734453346
+23
+-766.149872257343
+33
+23.3578378661905
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717738079349
+20
+-765.945155901366
+30
+29.449144968378
+11
+599.602113045565
+21
+-766.149870997149
+31
+23.3578379057383
+12
+599.602116671527
+22
+-765.945156978237
+32
+29.4490754688794
+13
+599.602116671527
+23
+-765.945156978237
+33
+29.4490754688794
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.425692248039
+20
+-280.29408
+30
+1698.17280957558
+11
+100.141825844156
+21
+-186.862719999999
+31
+1720.56410006505
+12
+127.425692248039
+22
+-186.862719999999
+32
+1698.17280957558
+13
+127.425692248039
+23
+-186.862719999999
+33
+1698.17280957558
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844156
+20
+-186.862719999999
+30
+1720.56410006505
+11
+127.425692248039
+21
+-280.29408
+31
+1698.17280957558
+12
+100.141825844156
+22
+-280.29408
+32
+1720.56410006505
+13
+100.141825844156
+23
+-280.29408
+33
+1720.56410006505
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471124298894
+20
+-713.308606140826
+30
+126.073163560098
+11
+452.247015413237
+21
+-693.583909707096
+31
+143.961322316008
+12
+452.247013852634
+22
+-710.823016652003
+32
+124.188674487802
+13
+452.247013852634
+23
+-710.823016652003
+33
+124.188674487802
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.247015413237
+20
+-693.583909707096
+30
+143.961322316008
+11
+450.471124298894
+21
+-713.308606140826
+31
+126.073163560098
+12
+450.471125884842
+22
+-695.789522350054
+32
+146.166934958744
+13
+450.471125884842
+23
+-695.789522350054
+33
+146.166934958744
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721745102502
+20
+-678.931345516719
+30
+167.953679054935
+11
+448.282012434797
+21
+-654.795098868987
+31
+180.78210913444
+12
+448.282017231929
+22
+-677.413444384727
+32
+165.951609244563
+13
+448.282017231929
+23
+-677.413444384727
+33
+165.951609244563
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282012434797
+20
+-654.795098868987
+30
+180.78210913444
+11
+445.721745102502
+21
+-678.931345516719
+31
+167.953679054935
+12
+445.721740244506
+22
+-656.026027291755
+32
+182.972342518915
+13
+445.721740244506
+23
+-656.026027291755
+33
+182.972342518915
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021343123663
+20
+-548.481290386566
+30
+174.800973253262
+11
+644.636215091063
+21
+-186.86272
+31
+181.426393854527
+12
+665.021343123663
+22
+-186.86272
+32
+174.800973253263
+13
+665.021343123663
+23
+-186.86272
+33
+174.800973253263
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636215091063
+20
+-186.86272
+30
+181.426393854527
+11
+665.021343123663
+21
+-548.481290386566
+31
+174.800973253262
+12
+644.636215091063
+22
+-548.592598441069
+32
+181.426393854527
+13
+644.636215091063
+23
+-548.592598441069
+33
+181.426393854527
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840108391474
+20
+-549.460721801574
+30
+233.09964686487
+11
+466.630399083827
+21
+-580.939676928926
+31
+234.582789982374
+12
+468.840126975903
+22
+-580.680624318909
+32
+232.050409880217
+13
+468.840126975903
+23
+-580.680624318909
+33
+232.050409880217
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630399083827
+20
+-580.939676928926
+30
+234.582789982374
+11
+468.840108391474
+21
+-549.460721801574
+31
+233.09964686487
+12
+466.630380370588
+22
+-549.503386674047
+32
+235.63929931572
+13
+466.630380370588
+23
+-549.503386674047
+33
+235.63929931572
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758754005207
+20
+-548.76324041817
+30
+191.585040951661
+11
+717.894045959123
+21
+-575.008661956696
+31
+176.604978855282
+12
+717.894030194972
+22
+-548.526532054241
+32
+177.494989005398
+13
+717.894030194972
+23
+-548.526532054241
+33
+177.494989005398
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894045959123
+20
+-575.008661956696
+30
+176.604978855282
+11
+696.758754005207
+21
+-548.76324041817
+31
+191.585040951661
+12
+696.758770484001
+22
+-576.445896872616
+32
+190.654683562835
+13
+696.758770484001
+23
+-576.445896872616
+33
+190.654683562835
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758770484001
+20
+-576.445896872616
+30
+190.654683562835
+11
+717.894057585081
+21
+-597.802053886837
+31
+172.685609040578
+12
+717.894045959123
+22
+-575.008661956696
+32
+176.604978855282
+13
+717.894045959123
+23
+-575.008661956696
+33
+176.604978855282
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894057585081
+20
+-597.802053886837
+30
+172.685609040578
+11
+696.758770484001
+21
+-576.445896872616
+31
+190.654683562835
+12
+696.758783079627
+22
+-601.140380260496
+32
+186.408417229293
+13
+696.758783079627
+23
+-601.140380260496
+33
+186.408417229293
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957344671825
+20
+-577.587813182298
+30
+201.817465714933
+11
+696.758783079627
+21
+-601.140380260496
+31
+186.408417229293
+12
+696.758770484001
+22
+-576.445896872616
+32
+190.654683562835
+13
+696.758770484001
+23
+-576.445896872616
+33
+190.654683562835
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758783079627
+20
+-601.140380260496
+30
+186.408417229293
+11
+673.957344671825
+21
+-577.587813182298
+31
+201.817465714933
+12
+673.957358037872
+22
+-603.792752711355
+32
+197.311473394829
+13
+673.957358037872
+23
+-603.792752711355
+33
+197.311473394829
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884086364505
+20
+-578.414663086699
+30
+209.900281060566
+11
+673.957358037872
+21
+-603.792752711355
+31
+197.311473394829
+12
+673.957344671825
+22
+-577.587813182298
+32
+201.817465714933
+13
+673.957344671825
+23
+-577.587813182298
+33
+201.817465714933
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957358037872
+20
+-603.792752711355
+30
+197.311473394829
+11
+649.884086364505
+21
+-578.414663086699
+31
+209.900281060566
+12
+649.884100288402
+22
+-605.713302275367
+32
+205.206224873295
+13
+649.884100288402
+23
+-605.713302275367
+33
+205.206224873295
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955307916438
+20
+-578.912147406784
+30
+214.763348941721
+11
+649.884100288402
+21
+-605.713302275367
+31
+205.206224873295
+12
+649.884086364505
+22
+-578.414663086699
+32
+209.900281060566
+13
+649.884086364505
+23
+-578.414663086699
+33
+209.900281060566
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884100288402
+20
+-605.713302275367
+30
+205.206224873295
+11
+624.955307916438
+21
+-578.912147406784
+31
+214.763348941721
+12
+624.955322175969
+22
+-606.868815812022
+32
+209.956143300585
+13
+624.955322175969
+23
+-606.868815812022
+33
+209.956143300585
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031422681501
+20
+-571.081702518113
+30
+41.9228372915384
+11
+764.959283764737
+21
+-561.475402706277
+31
+23.3578380028359
+12
+764.92809314571
+22
+-563.7670797619
+32
+23.357838002321
+13
+764.92809314571
+23
+-563.7670797619
+33
+23.357838002321
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.959283764737
+20
+-561.475402706277
+30
+23.3578380028359
+11
+764.031422681501
+21
+-571.081702518113
+31
+41.9228372915384
+12
+764.031420693374
+22
+-566.35608713258
+32
+43.4208517516957
+13
+764.031420693374
+23
+-566.35608713258
+33
+43.4208517516957
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332897960916
+20
+-669.009252539392
+30
+119.38666515078
+11
+665.021389999784
+21
+-658.447133448378
+31
+140.935603497775
+12
+684.332896682708
+22
+-652.814503888805
+32
+133.506322083721
+13
+684.332896682708
+23
+-652.814503888805
+33
+133.506322083721
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021389999784
+20
+-658.447133448378
+30
+140.935603497775
+11
+684.332897960916
+21
+-669.009252539392
+31
+119.38666515078
+12
+665.021391353748
+22
+-675.601700530057
+32
+125.979113140781
+13
+665.021391353748
+23
+-675.601700530057
+33
+125.979113140781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758754005207
+20
+-548.76324041817
+30
+191.585040951661
+11
+717.894030194972
+21
+-186.86272
+31
+177.494989005399
+12
+696.758754005207
+22
+-186.86272
+32
+191.585040951661
+13
+696.758754005207
+23
+-186.86272
+33
+191.585040951661
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894030194972
+20
+-186.86272
+30
+177.494989005399
+11
+696.758754005207
+21
+-548.76324041817
+31
+191.585040951661
+12
+717.894030194972
+22
+-548.526532054241
+32
+177.494989005398
+13
+717.894030194972
+23
+-548.526532054241
+33
+177.494989005398
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576407084801
+20
+-586.320946175488
+30
+80.6010436173693
+11
+760.20182098394
+21
+-571.352859264312
+31
+63.961061339529
+12
+760.201824130007
+22
+-578.830801190005
+32
+61.5905626376661
+13
+760.201824130007
+23
+-578.830801190005
+33
+61.5905626376661
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.20182098394
+20
+-571.352859264312
+30
+63.961061339529
+11
+753.576407084801
+21
+-586.320946175488
+31
+80.6010436173693
+12
+753.576402819491
+22
+-576.182653575586
+32
+83.8148703207571
+13
+753.576402819491
+23
+-576.182653575586
+33
+83.8148703207571
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332886599671
+20
+-615.441289762884
+30
+154.510351165083
+11
+665.021370191738
+21
+-597.163793012617
+31
+170.061810578218
+12
+684.332877982946
+22
+-594.96003923808
+32
+161.00288323661
+13
+684.332877982946
+23
+-594.96003923808
+33
+161.00288323661
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021370191738
+20
+-597.163793012617
+30
+170.061810578218
+11
+684.332886599671
+21
+-615.441289762884
+31
+154.510351165083
+12
+665.021379319153
+22
+-618.858911203396
+32
+163.184483899429
+13
+665.021379319153
+23
+-618.858911203396
+33
+163.184483899429
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955322175969
+20
+-606.868815812022
+30
+209.956143300585
+11
+649.884111397057
+21
+-632.11766596993
+31
+196.836072967405
+12
+649.884100288402
+22
+-605.713302275367
+32
+205.206224873295
+13
+649.884100288402
+23
+-605.713302275367
+33
+205.206224873295
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884111397057
+20
+-632.11766596993
+30
+196.836072967405
+11
+624.955322175969
+21
+-606.868815812022
+31
+209.956143300585
+12
+624.955333552396
+22
+-633.909652359165
+32
+201.384230256964
+13
+624.955333552396
+23
+-633.909652359165
+33
+201.384230256964
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335587191701
+20
+-762.351784924648
+30
+29.0815795342117
+11
+439.690579164597
+21
+-761.285715042239
+31
+23.357837856573
+12
+436.335583784501
+22
+-762.544148159569
+32
+23.3578378552417
+13
+436.335583784501
+23
+-762.544148159569
+33
+23.3578378552417
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690579164597
+20
+-761.285715042239
+30
+23.357837856573
+11
+436.335587191701
+21
+-762.351784924648
+31
+29.0815795342117
+12
+439.690582495428
+22
+-761.097663471809
+32
+28.9532865498045
+13
+439.690582495428
+23
+-761.097663471809
+33
+28.9532865498045
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717734453346
+20
+-766.149872257343
+30
+23.3578378661905
+11
+473.642038802113
+21
+-769.301079755069
+31
+29.7924413152051
+12
+473.642034971754
+22
+-769.517333598178
+32
+23.3578378654237
+13
+473.642034971754
+23
+-769.517333598178
+33
+23.3578378654237
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642038802113
+20
+-769.301079755069
+30
+29.7924413152051
+11
+473.717734453346
+21
+-766.149872257343
+31
+23.3578378661905
+12
+473.717738079349
+22
+-765.945155901366
+32
+29.449144968378
+13
+473.717738079349
+23
+-765.945155901366
+33
+29.449144968378
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021358751182
+20
+-723.541264381198
+30
+25.1113068905408
+11
+684.332866703488
+21
+-714.293584916115
+31
+23.3578379437967
+12
+665.021357707386
+22
+-723.600194881456
+32
+23.3578379356765
+13
+665.021357707386
+23
+-723.600194881456
+33
+23.3578379356765
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332866703488
+20
+-714.293584916115
+30
+23.3578379437967
+11
+665.021358751182
+21
+-723.541264381198
+31
+25.1113068905408
+12
+684.332867182503
+22
+-714.266540775895
+32
+24.1625326278822
+13
+684.332867182503
+23
+-714.266540775895
+33
+24.1625326278822
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636231054623
+20
+-730.147712824956
+30
+25.7871288899166
+11
+665.021357707386
+21
+-723.600194881456
+31
+23.3578379356765
+12
+644.636229608527
+22
+-730.229356318714
+32
+23.35783792781
+13
+644.636229608527
+23
+-730.229356318714
+33
+23.35783792781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021357707386
+20
+-723.600194881456
+30
+23.3578379356765
+11
+644.636231054623
+21
+-730.147712824956
+31
+25.7871288899166
+12
+665.021358751182
+22
+-723.541264381198
+32
+25.1113068905408
+13
+665.021358751182
+23
+-723.541264381198
+33
+25.1113068905408
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133267369982
+20
+-734.928077619115
+30
+26.2761627640122
+11
+623.546331756218
+21
+-734.061120907196
+31
+23.3578379203391
+12
+602.133265632776
+22
+-735.026156540265
+32
+23.357837913399
+13
+602.133265632776
+23
+-735.026156540265
+33
+23.357837913399
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546331756218
+20
+-734.061120907196
+30
+23.3578379203391
+11
+602.133267369982
+21
+-734.928077619115
+31
+26.2761627640122
+12
+623.546333434853
+22
+-733.96634875632
+32
+26.1777702748551
+13
+623.546333434853
+23
+-733.96634875632
+33
+26.1777702748551
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997666736503
+20
+-709.544681018119
+30
+23.3578379613892
+11
+717.894045959123
+21
+-726.227566234427
+31
+25.3860745623198
+12
+717.894044751764
+22
+-726.295731112839
+32
+23.3578379516926
+13
+717.894044751764
+23
+-726.295731112839
+33
+23.3578379516926
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894045959123
+20
+-726.227566234427
+30
+25.3860745623198
+11
+736.997666736503
+21
+-709.544681018119
+31
+23.3578379613892
+12
+736.997666927312
+22
+-709.533908392784
+32
+23.6783759511398
+13
+736.997666927312
+23
+-709.533908392784
+33
+23.6783759511398
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576402819491
+20
+-633.437457700021
+30
+26.5600661905556
+11
+757.969157364208
+21
+-620.27407578666
+31
+23.3578379876696
+12
+753.576401186168
+22
+-633.988087312601
+32
+23.3578379832645
+13
+753.576401186168
+23
+-633.988087312601
+33
+23.3578379832645
+70
+0
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101718395121
+20
+-772.841978102158
+30
+23.3578378645206
+11
+472.107168359226
+21
+-775.821269863314
+31
+30.4594290412997
+12
+472.107164131826
+22
+-776.05993979789
+32
+23.3578378634987
+13
+472.107164131826
+23
+-776.05993979789
+33
+23.3578378634987
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107168359226
+20
+-775.821269863314
+30
+30.4594290412997
+11
+473.101718395121
+21
+-772.841978102158
+31
+23.3578378645206
+12
+473.101722427237
+22
+-772.614333460954
+32
+30.1313729498036
+13
+473.101722427237
+23
+-772.614333460954
+33
+30.1313729498036
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957341929162
+20
+-751.594897963598
+30
+23.3578379323091
+11
+649.884086364505
+21
+-759.522868440055
+31
+28.7920756889693
+12
+649.884083129639
+22
+-759.7055020414
+32
+23.3578379229566
+13
+649.884083129639
+23
+-759.7055020414
+33
+23.3578379229566
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884086364505
+20
+-759.522868440055
+30
+28.7920756889693
+11
+673.957341929162
+21
+-751.594897963598
+31
+23.3578379323091
+12
+673.957344671825
+22
+-751.440053094339
+32
+27.9652257853831
+13
+673.957344671825
+23
+-751.440053094339
+33
+27.9652257853831
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683295385243
+20
+-791.4884708222
+30
+23.3578378536789
+11
+448.317739367628
+21
+-791.272422434329
+31
+32.0400273988949
+12
+448.317734199337
+22
+-791.564213042815
+32
+23.3578378526045
+13
+448.317734199337
+23
+-791.564213042815
+33
+23.3578378526045
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317739367628
+20
+-791.272422434329
+30
+32.0400273988949
+11
+451.683295385243
+21
+-791.4884708222
+31
+23.3578378536789
+12
+451.683300548936
+22
+-791.196939781596
+32
+32.0323039932388
+13
+451.683300548936
+23
+-791.196939781596
+33
+32.0323039932388
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997666927312
+20
+-709.533908392784
+30
+23.6783759511398
+11
+736.997666736503
+21
+-709.544681018119
+31
+23.3578379613892
+12
+739.751559375878
+22
+-706.400475394532
+32
+23.357837962948
+13
+739.751559375878
+23
+-706.400475394532
+33
+23.357837962948
+70
+0
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546333434853
+20
+-733.96634875632
+30
+26.1777702748551
+11
+644.636229608527
+21
+-730.229356318714
+31
+23.35783792781
+12
+623.546331756218
+22
+-734.061120907196
+32
+23.3578379203391
+13
+623.546331756218
+23
+-734.061120907196
+33
+23.3578379203391
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636229608527
+20
+-730.229356318714
+30
+23.35783792781
+11
+623.546333434853
+21
+-733.96634875632
+31
+26.1777702748551
+12
+644.636231054623
+22
+-730.147712824956
+32
+25.7871288899166
+13
+644.636231054623
+23
+-730.147712824956
+33
+25.7871288899166
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717752446486
+20
+-607.239369239249
+30
+211.479086426299
+11
+473.642065047928
+21
+-635.720877069339
+31
+205.981095949127
+12
+473.717763908762
+22
+-634.484263142475
+32
+202.842487443351
+13
+473.717763908762
+23
+-634.484263142475
+33
+202.842487443351
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642065047928
+20
+-635.720877069339
+30
+205.981095949127
+11
+473.717752446486
+21
+-607.239369239249
+31
+211.479086426299
+12
+473.642053400866
+22
+-608.036762247305
+32
+214.756927441262
+13
+473.642053400866
+23
+-608.036762247305
+33
+214.756927441262
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683338867278
+20
+-672.734452813075
+30
+212.702239692806
+11
+455.006112926336
+21
+-699.207898179883
+31
+194.697902416163
+12
+455.006107255299
+22
+-672.469112270075
+32
+212.230111445991
+13
+455.006107255299
+23
+-672.469112270075
+33
+212.230111445991
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006112926336
+20
+-699.207898179883
+30
+194.697902416163
+11
+451.683338867278
+21
+-672.734452813075
+31
+212.702239692806
+12
+451.683344551435
+22
+-699.535098538027
+32
+195.129470137406
+13
+451.683344551435
+23
+-699.535098538027
+33
+195.129470137406
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.31777769836
+20
+-672.771628457813
+30
+212.76838602076
+11
+451.683344551435
+21
+-699.535098538027
+31
+195.129470137406
+12
+451.683338867278
+22
+-672.734452813075
+32
+212.702239692806
+13
+451.683338867278
+23
+-672.734452813075
+33
+212.702239692806
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683344551435
+20
+-699.535098538027
+30
+195.129470137406
+11
+448.31777769836
+21
+-672.771628457813
+31
+212.76838602076
+12
+448.317783384355
+22
+-699.580940660874
+32
+195.189933989489
+13
+448.317783384355
+23
+-699.580940660874
+33
+195.189933989489
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690622484567
+20
+-702.296711761968
+30
+152.674124370004
+11
+442.839490392048
+21
+-719.276356082042
+31
+130.597708279963
+12
+439.690620823844
+22
+-720.64180705444
+32
+131.632946903436
+13
+439.690620823844
+23
+-720.64180705444
+33
+131.632946903436
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839490392048
+20
+-719.276356082042
+30
+130.597708279963
+11
+439.690622484567
+21
+-702.296711761968
+31
+152.674124370004
+12
+442.839492038848
+22
+-701.085065061495
+32
+151.462477669651
+13
+442.839492038848
+23
+-701.085065061495
+33
+151.462477669651
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839492038848
+20
+-701.085065061495
+30
+151.462477669651
+11
+445.721745102502
+21
+-717.576266444547
+31
+129.308758123214
+12
+442.839490392048
+22
+-719.276356082042
+32
+130.597708279963
+13
+442.839490392048
+23
+-719.276356082042
+33
+130.597708279963
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721745102502
+20
+-717.576266444547
+30
+129.308758123214
+11
+442.839492038848
+21
+-701.085065061495
+31
+151.462477669651
+12
+445.721746731967
+22
+-699.576473436421
+32
+149.95388604473
+13
+445.721746731967
+23
+-699.576473436421
+33
+149.95388604473
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838955869068
+20
+-703.742219504346
+30
+154.119632112235
+11
+436.335625756533
+21
+-721.646389233184
+31
+132.394587199654
+12
+432.838954191733
+22
+-722.270804730449
+32
+132.867998161508
+13
+432.838954191733
+23
+-722.270804730449
+33
+132.867998161508
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335625756533
+20
+-721.646389233184
+30
+132.394587199654
+11
+432.838955869068
+21
+-703.742219504346
+31
+154.119632112235
+12
+436.335627427501
+22
+-703.188137968552
+32
+153.565550576497
+13
+436.335627427501
+23
+-703.188137968552
+33
+153.565550576497
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546368087822
+20
+-683.011825308716
+30
+133.389237918693
+11
+644.636263548619
+21
+-695.850119169612
+31
+112.836707846937
+12
+623.546366648706
+22
+-698.908941954744
+32
+115.155805645761
+13
+623.546366648706
+23
+-698.908941954744
+33
+115.155805645761
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636263548619
+20
+-695.850119169612
+30
+112.836707846937
+11
+623.546368087822
+21
+-683.011825308716
+31
+133.389237918693
+12
+644.636264956545
+22
+-680.297547066858
+32
+130.674959677109
+13
+644.636264956545
+23
+-680.297547066858
+33
+130.674959677109
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222195872847
+20
+-549.595394709904
+30
+241.116069017578
+11
+461.269956337624
+21
+-581.352493258009
+31
+238.618284093782
+12
+461.269937419119
+22
+-549.571376162653
+32
+239.686382351024
+13
+461.269937419119
+23
+-549.571376162653
+33
+239.686382351024
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269956337624
+20
+-581.352493258009
+30
+238.618284093782
+11
+458.222195872847
+21
+-549.595394709904
+31
+241.116069017578
+12
+458.222214863865
+22
+-581.498326831209
+32
+240.043876806793
+13
+458.222214863865
+23
+-581.498326831209
+33
+240.043876806793
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.243015227678
+20
+-186.862719999999
+30
+2079.8653122236
+11
+0.112465277083137
+21
+-280.294079999999
+31
+2083.32536938894
+12
+0.112465277083556
+22
+-186.862719999999
+32
+2083.32536938894
+13
+0.112465277083556
+23
+-186.862719999999
+33
+2083.32536938894
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.112465277083137
+20
+-280.294079999999
+30
+2083.32536938894
+11
+35.243015227678
+21
+-186.862719999999
+31
+2079.8653122236
+12
+35.2430152276776
+22
+-280.294079999999
+32
+2079.8653122236
+13
+35.2430152276776
+23
+-280.294079999999
+33
+2079.8653122236
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.0235178451101
+20
+-280.294079999999
+30
+2069.61810878401
+11
+35.243015227678
+21
+-186.862719999999
+31
+2079.8653122236
+12
+69.0235178451106
+22
+-186.862719999999
+32
+2069.61810878401
+13
+69.0235178451106
+23
+-186.862719999999
+33
+2069.61810878401
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.243015227678
+20
+-186.862719999999
+30
+2079.8653122236
+11
+69.0235178451101
+21
+-280.294079999999
+31
+2069.61810878401
+12
+35.2430152276776
+22
+-280.294079999999
+32
+2079.8653122236
+13
+35.2430152276776
+23
+-280.294079999999
+33
+2079.8653122236
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+93.5308854426706
+21
+-280.294079999998
+31
+1315.22236639941
+12
+93.530885442671
+22
+-186.862719999998
+32
+1315.22236639941
+13
+93.530885442671
+23
+-186.862719999998
+33
+1315.22236639941
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.5308854426706
+20
+-280.294079999998
+30
+1315.22236639941
+11
+221.739809665471
+21
+-186.86272
+31
+1435.59863370269
+12
+221.73980966547
+22
+-280.29408
+32
+1435.59863370269
+13
+221.73980966547
+23
+-280.29408
+33
+1435.59863370269
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332867182503
+20
+-573.785120021053
+30
+164.643953396873
+11
+665.021343123663
+21
+-548.481290386566
+31
+174.800973253262
+12
+684.332852026746
+22
+-548.325028948197
+32
+165.499614915081
+13
+684.332852026746
+23
+-548.325028948197
+33
+165.499614915081
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021343123663
+20
+-548.481290386566
+30
+174.800973253262
+11
+684.332867182503
+21
+-573.785120021053
+31
+164.643953396873
+12
+665.021358751182
+22
+-574.733894284646
+32
+173.91867700208
+13
+665.021358751182
+23
+-574.733894284646
+33
+173.91867700208
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431275216977
+20
+-705.386140960936
+30
+120.066621251022
+11
+454.797689138238
+21
+-686.233268095701
+31
+136.610680705353
+12
+454.797687662105
+22
+-702.539296405596
+32
+117.908241171874
+13
+454.797687662105
+23
+-702.539296405596
+33
+117.908241171874
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797689138238
+20
+-686.233268095701
+30
+136.610680705353
+11
+454.431275216977
+21
+-705.386140960936
+31
+120.066621251022
+12
+454.431276722139
+22
+-688.759443912117
+32
+139.136856521515
+13
+454.431276722139
+23
+-688.759443912117
+33
+139.136856521515
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133302212101
+20
+-683.695422993079
+30
+134.072835602987
+11
+623.546366648706
+21
+-698.908941954744
+31
+115.155805645761
+12
+602.13330076513
+22
+-699.679312774979
+32
+115.739877602763
+13
+602.13330076513
+23
+-699.679312774979
+33
+115.739877602763
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546366648706
+20
+-698.908941954744
+30
+115.155805645761
+11
+602.133302212101
+21
+-683.695422993079
+31
+134.072835602987
+12
+623.546368087822
+22
+-683.011825308716
+32
+133.389237918693
+13
+623.546368087822
+23
+-683.011825308716
+33
+133.389237918693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281993692064
+20
+-604.584376828467
+30
+200.565167970899
+11
+445.721707495526
+21
+-578.184382747044
+31
+207.648051313885
+12
+448.281980096118
+22
+-577.92870502396
+32
+205.148664616833
+13
+448.281980096118
+23
+-577.92870502396
+33
+205.148664616833
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721707495526
+20
+-578.184382747044
+30
+207.648051313885
+11
+448.281993692064
+21
+-604.584376828467
+31
+200.565167970899
+12
+445.721721263973
+22
+-605.178251275471
+32
+203.006401057676
+13
+445.721721263973
+23
+-605.178251275471
+33
+203.006401057676
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602131038669
+20
+-607.239310377804
+30
+211.479085673936
+11
+624.955333552396
+21
+-633.909652359165
+31
+201.384230256964
+12
+624.955322175969
+22
+-606.868815812022
+32
+209.956143300585
+13
+624.955322175969
+23
+-606.868815812022
+33
+209.956143300585
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955333552396
+20
+-633.909652359165
+30
+201.384230256964
+11
+599.602131038669
+21
+-607.239310377804
+31
+211.479085673936
+12
+599.60214250095
+22
+-634.484214570593
+32
+202.842483429208
+13
+599.60214250095
+23
+-634.484214570593
+33
+202.842483429208
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007215701535
+20
+-572.529418663124
+30
+45.597263875134
+11
+787.130189104003
+21
+-589.736090634929
+31
+65.0204702834338
+12
+792.007217306199
+22
+-577.494024343961
+32
+43.2377297488181
+13
+792.007217306199
+23
+-577.494024343961
+33
+43.2377297488181
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130189104003
+20
+-589.736090634929
+30
+65.0204702834338
+11
+792.007215701535
+21
+-572.529418663124
+31
+45.597263875134
+12
+787.130186503031
+22
+-581.689044301674
+32
+68.844999694228
+13
+787.130186503031
+23
+-581.689044301674
+33
+68.844999694228
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130186503031
+20
+-581.689044301674
+30
+68.844999694228
+11
+779.024166993188
+21
+-601.558027793705
+31
+86.0556585976989
+12
+787.130189104003
+22
+-589.736090634929
+32
+65.0204702834338
+13
+787.130189104003
+23
+-589.736090634929
+33
+65.0204702834338
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024166993188
+20
+-601.558027793705
+30
+86.0556585976989
+11
+787.130186503031
+21
+-581.689044301674
+31
+68.844999694228
+12
+779.024163430099
+22
+-590.534326018981
+32
+91.2949066282494
+13
+779.024163430099
+23
+-590.534326018981
+33
+91.2949066282494
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363081916203
+20
+-571.142011532184
+30
+138.806193017976
+11
+732.466031085639
+21
+-547.618544534505
+31
+123.445905477124
+12
+732.466044108445
+22
+-569.495501821011
+32
+122.710665747149
+13
+732.466044108445
+23
+-569.495501821011
+33
+122.710665747149
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466031085639
+20
+-547.618544534505
+30
+123.445905477124
+11
+718.363081916203
+21
+-571.142011532184
+31
+138.806193017976
+12
+718.363068074693
+22
+-547.889717752797
+32
+139.587654990762
+13
+718.363068074693
+23
+-547.889717752797
+33
+139.587654990762
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466044108445
+20
+-569.495501821011
+30
+122.710665747149
+11
+744.275027999012
+21
+-547.318028491407
+31
+105.557438942816
+12
+744.275040114523
+22
+-567.670823535761
+32
+104.873423184286
+13
+744.275040114523
+23
+-567.670823535761
+33
+104.873423184286
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275027999012
+20
+-547.318028491407
+30
+105.557438942816
+11
+732.466044108445
+21
+-569.495501821011
+31
+122.710665747149
+12
+732.466031085639
+22
+-547.618544534505
+32
+123.445905477124
+13
+732.466031085639
+23
+-547.618544534505
+33
+123.445905477124
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275040114523
+20
+-567.670823535761
+30
+104.873423184286
+11
+753.576386337194
+21
+-546.993607173192
+31
+86.2459300397311
+12
+753.576397473233
+22
+-565.700992480648
+32
+85.6172131326287
+13
+753.576397473233
+23
+-565.700992480648
+33
+85.6172131326287
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576386337194
+20
+-546.993607173192
+30
+86.2459300397311
+11
+744.275040114523
+21
+-567.670823535761
+31
+104.873423184286
+12
+744.275027999012
+22
+-547.318028491407
+32
+105.557438942816
+13
+744.275027999012
+23
+-547.318028491407
+33
+105.557438942816
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576397473233
+20
+-565.700992480648
+30
+85.6172131326287
+11
+760.201806938459
+21
+-546.651150672583
+31
+65.8608020071314
+12
+760.201817040574
+22
+-563.621650860098
+32
+65.2904582517363
+13
+760.201817040574
+23
+-563.621650860098
+33
+65.2904582517363
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201806938459
+20
+-546.651150672583
+30
+65.8608020071314
+11
+753.576397473233
+21
+-565.700992480648
+31
+85.6172131326287
+12
+753.576386337194
+22
+-546.993607173192
+32
+86.2459300397311
+13
+753.576386337194
+23
+-546.993607173192
+33
+86.2459300397311
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007218281129
+20
+-582.09079684746
+30
+40.22369700007
+11
+787.130191214298
+21
+-603.902540579901
+31
+54.279953197846
+12
+792.00721860814
+22
+-586.233981212786
+32
+36.6113938325108
+13
+792.00721860814
+23
+-586.233981212786
+33
+36.6113938325108
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130191214298
+20
+-603.902540579901
+30
+54.279953197846
+11
+792.007218281129
+21
+-582.09079684746
+31
+40.22369700007
+12
+787.130190684252
+22
+-597.186922321698
+32
+60.1350749996264
+13
+787.130190684252
+23
+-597.186922321698
+33
+60.1350749996264
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267778397118
+20
+-703.948312537967
+30
+154.325725145835
+11
+0.016303397997907
+21
+-682.666774623337
+31
+172.880520888553
+12
+429.267776717416
+22
+-682.666673022429
+32
+172.880471218973
+13
+429.267776717416
+23
+-682.666673022429
+33
+172.880471218973
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.016303397997907
+20
+-682.666774623337
+30
+172.880520888553
+11
+429.267778397118
+21
+-703.948312537967
+31
+154.325725145835
+12
+0.0163050776986444
+22
+-703.948386395801
+32
+154.325799003669
+13
+0.0163050776986444
+23
+-703.948386395801
+33
+154.325799003669
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838955869068
+20
+-703.742219504346
+30
+154.119632112235
+11
+429.267776717416
+21
+-682.666673022429
+31
+172.880471218973
+12
+432.838954191733
+22
+-682.490585555484
+32
+172.648217340479
+13
+432.838954191733
+23
+-682.490585555484
+33
+172.648217340479
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267776717416
+20
+-682.666673022429
+30
+172.880471218973
+11
+432.838955869068
+21
+-703.742219504346
+31
+154.119632112235
+12
+429.267778397118
+22
+-703.948312537967
+32
+154.325725145835
+13
+429.267778397118
+23
+-703.948312537967
+33
+154.325725145835
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335627427501
+20
+-703.188137968552
+30
+153.565550576497
+11
+432.838954191733
+21
+-682.490585555484
+31
+172.648217340479
+12
+436.335625756533
+22
+-682.017174593568
+32
+172.023801843262
+13
+436.335625756533
+23
+-682.017174593568
+33
+172.023801843262
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838954191733
+20
+-682.490585555484
+30
+172.648217340479
+11
+436.335627427501
+21
+-703.188137968552
+31
+153.565550576497
+12
+432.838955869068
+22
+-703.742219504346
+32
+154.119632112235
+13
+432.838955869068
+23
+-703.742219504346
+33
+154.119632112235
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090727919739
+20
+-549.540509167097
+30
+237.849027336606
+11
+466.630399083827
+21
+-580.939676928926
+31
+234.582789982374
+12
+466.630380370588
+22
+-549.503386674047
+32
+235.63929931572
+13
+466.630380370588
+23
+-549.503386674047
+33
+235.63929931572
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630399083827
+20
+-580.939676928926
+30
+234.582789982374
+11
+464.090727919739
+21
+-549.540509167097
+31
+237.849027336606
+12
+464.090746745054
+22
+-581.165076540648
+32
+236.786190394896
+13
+464.090746745054
+23
+-581.165076540648
+33
+236.786190394896
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281980096118
+20
+-577.92870502396
+30
+205.148664616833
+11
+445.721690152324
+21
+-549.049610517709
+31
+208.627211339945
+12
+448.281962880048
+22
+-549.007501396503
+32
+206.120647039576
+13
+448.281962880048
+23
+-549.007501396503
+33
+206.120647039576
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721690152324
+20
+-549.049610517709
+30
+208.627211339945
+11
+448.281980096118
+21
+-577.92870502396
+31
+205.148664616833
+12
+445.721707495526
+22
+-578.184382747044
+32
+207.648051313885
+13
+445.721707495526
+23
+-578.184382747044
+33
+207.648051313885
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281980096118
+20
+-577.92870502396
+30
+205.148664616833
+11
+450.471070624061
+21
+-548.959849908146
+31
+203.284158309243
+12
+450.471087696265
+22
+-577.639374325348
+32
+202.320298229792
+13
+450.471087696265
+23
+-577.639374325348
+33
+202.320298229792
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471070624061
+20
+-548.959849908146
+30
+203.284158309243
+11
+448.281980096118
+21
+-577.92870502396
+31
+205.148664616833
+12
+448.281962880048
+22
+-549.007501396503
+32
+206.120647039576
+13
+448.281962880048
+23
+-549.007501396503
+33
+206.120647039576
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471087696265
+20
+-577.639374325348
+30
+202.320298229792
+11
+452.246960920592
+21
+-548.907571431286
+31
+200.172233713933
+12
+452.246977834961
+22
+-577.321948654809
+32
+199.217284688636
+13
+452.246977834961
+23
+-577.321948654809
+33
+199.217284688636
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246960920592
+20
+-548.907571431286
+30
+200.172233713933
+11
+450.471087696265
+21
+-577.639374325348
+31
+202.320298229792
+12
+450.471070624061
+22
+-548.959849908146
+32
+203.284158309243
+13
+450.471070624061
+23
+-548.959849908146
+33
+203.284158309243
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246977834961
+20
+-577.321948654809
+30
+199.217284688636
+11
+453.575519157163
+21
+-548.851670228397
+31
+196.84465290436
+12
+453.575535902759
+22
+-576.982525716554
+32
+195.89923246393
+13
+453.575535902759
+23
+-576.982525716554
+33
+195.89923246393
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575519157163
+20
+-548.851670228397
+30
+196.84465290436
+11
+452.246977834961
+21
+-577.321948654809
+31
+199.217284688636
+12
+452.246960920592
+22
+-548.907571431286
+32
+200.172233713933
+13
+452.246960920592
+23
+-548.907571431286
+33
+200.172233713933
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575535902759
+20
+-576.982525716554
+30
+195.89923246393
+11
+454.431223909685
+21
+-548.793220154026
+31
+193.36533825795
+12
+454.431240478811
+22
+-576.627625779333
+32
+192.429880890276
+13
+454.431240478811
+23
+-576.627625779333
+33
+192.429880890276
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431223909685
+20
+-548.793220154026
+30
+193.36533825795
+11
+453.575535902759
+21
+-576.982525716554
+31
+195.89923246393
+12
+453.575519157163
+22
+-548.851670228397
+32
+196.84465290436
+13
+453.575519157163
+23
+-548.851670228397
+33
+196.84465290436
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.73928877638
+20
+-638.371732863863
+30
+114.456713513376
+11
+736.997696774917
+21
+-665.645302851503
+31
+116.022715463229
+12
+753.739289860341
+22
+-652.105388357143
+32
+102.482800970232
+13
+753.739289860341
+23
+-652.105388357143
+33
+102.482800970232
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997696774917
+20
+-665.645302851503
+30
+116.022715463229
+11
+753.73928877638
+21
+-638.371732863863
+31
+114.456713513376
+12
+736.997695535365
+22
+-649.940320006495
+32
+129.715362054641
+13
+736.997695535365
+23
+-649.940320006495
+33
+129.715362054641
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.10170430358
+20
+-186.86272
+30
+224.014968929072
+11
+472.107150072447
+21
+-549.362133988305
+31
+227.231114817978
+12
+473.10170430358
+22
+-549.308104906071
+32
+224.014968929071
+13
+473.10170430358
+23
+-549.308104906071
+33
+224.014968929071
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107150072447
+20
+-549.362133988305
+30
+227.231114817978
+11
+473.10170430358
+21
+-186.86272
+31
+224.014968929072
+12
+472.107150072447
+22
+-186.86272
+32
+227.231114817978
+13
+472.107150072447
+23
+-186.86272
+33
+227.231114817978
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246991021541
+20
+-603.175034087969
+30
+194.771794391524
+11
+453.575535902759
+21
+-576.982525716554
+31
+195.89923246393
+12
+453.575548860337
+22
+-602.386639077964
+32
+191.530943822063
+13
+453.575548860337
+23
+-602.386639077964
+33
+191.530943822063
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575535902759
+20
+-576.982525716554
+30
+195.89923246393
+11
+452.246991021541
+21
+-603.175034087969
+31
+194.771794391524
+12
+452.246977834961
+22
+-577.321948654809
+32
+199.217284688636
+13
+452.246977834961
+23
+-577.321948654809
+33
+199.217284688636
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335569590044
+20
+-549.135217804424
+30
+213.722949367545
+11
+432.838897838644
+21
+-186.86272
+31
+214.504708726405
+12
+436.335569590044
+22
+-186.86272
+32
+213.722949367545
+13
+436.335569590044
+23
+-186.86272
+33
+213.722949367545
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838897838644
+20
+-186.86272
+30
+214.504708726405
+11
+436.335569590044
+21
+-549.135217804424
+31
+213.722949367545
+12
+432.838897838644
+22
+-549.148351803013
+32
+214.504708726405
+13
+432.838897838644
+23
+-549.148351803013
+33
+214.504708726405
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.543158239603
+20
+-559.33210911257
+30
+23.3578380122893
+11
+792.007213497075
+21
+-567.289596867332
+31
+47.2582811561368
+12
+793.520757722035
+22
+-561.475389395115
+32
+23.3578380118087
+13
+793.520757722035
+23
+-561.475389395115
+33
+23.3578380118087
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007213497075
+20
+-567.289596867332
+30
+47.2582811561368
+11
+793.543158239603
+21
+-559.33210911257
+31
+23.3578380122893
+12
+792.007210733943
+22
+-561.872310305502
+32
+48.1897945304127
+13
+792.007210733943
+23
+-561.872310305502
+33
+48.1897945304127
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007210733943
+20
+-561.872310305502
+30
+48.1897945304127
+11
+787.130182929858
+21
+-573.195904769668
+31
+71.5373148305873
+12
+792.007213497075
+22
+-567.289596867332
+32
+47.2582811561368
+13
+792.007213497075
+23
+-567.289596867332
+33
+47.2582811561368
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130182929858
+20
+-573.195904769668
+30
+71.5373148305873
+11
+792.007210733943
+21
+-561.872310305502
+31
+48.1897945304127
+12
+787.130178451143
+22
+-564.415115565838
+32
+73.0471892828083
+13
+787.130178451143
+23
+-564.415115565838
+33
+73.0471892828083
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130178451143
+20
+-564.415115565838
+30
+73.0471892828083
+11
+779.024158535186
+21
+-578.899518233046
+31
+94.9831268667919
+12
+787.130182929858
+22
+-573.195904769668
+32
+71.5373148305873
+13
+787.130182929858
+23
+-573.195904769668
+33
+71.5373148305873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024158535186
+20
+-578.899518233046
+30
+94.9831268667919
+11
+787.130178451143
+21
+-564.415115565838
+31
+73.0471892828083
+12
+779.024152399766
+22
+-566.87065726704
+32
+97.0515138238504
+13
+779.024152399766
+23
+-566.87065726704
+33
+97.0515138238504
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+779.024152399766
+20
+-566.87065726704
+30
+97.0515138238504
+11
+767.82932233817
+21
+-584.301801471681
+31
+117.190255690543
+12
+779.024158535186
+22
+-578.899518233046
+32
+94.9831268667919
+13
+779.024158535186
+23
+-578.899518233046
+33
+94.9831268667919
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.82932233817
+20
+-584.301801471681
+30
+117.190255690543
+11
+779.024152399766
+21
+-566.87065726704
+31
+97.0515138238504
+12
+767.82931463357
+22
+-569.196470349584
+32
+119.787647909415
+13
+767.82931463357
+23
+-569.196470349584
+33
+119.787647909415
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884068906774
+20
+-549.087494127121
+30
+210.885907146698
+11
+673.957344671825
+21
+-577.587813182298
+31
+201.817465714933
+12
+673.957327625231
+22
+-548.951311917762
+32
+202.779879874335
+13
+673.957327625231
+23
+-548.951311917762
+33
+202.779879874335
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957344671825
+20
+-577.587813182298
+30
+201.817465714933
+11
+649.884068906774
+21
+-549.087494127121
+31
+210.885907146698
+12
+649.884086364505
+22
+-578.414663086699
+32
+209.900281060566
+13
+649.884086364505
+23
+-578.414663086699
+33
+209.900281060566
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955290211342
+20
+-549.169431970937
+30
+215.762940693873
+11
+649.884086364505
+21
+-578.414663086699
+31
+209.900281060566
+12
+649.884068906774
+22
+-549.087494127121
+32
+210.885907146698
+13
+649.884068906774
+23
+-549.087494127121
+33
+210.885907146698
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884086364505
+20
+-578.414663086699
+30
+209.900281060566
+11
+624.955290211342
+21
+-549.169431970937
+31
+215.762940693873
+12
+624.955307916438
+22
+-578.912147406784
+32
+214.763348941721
+13
+624.955307916438
+23
+-578.912147406784
+33
+214.763348941721
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+767.829335677824
+20
+-625.572837100386
+30
+97.5753208387769
+11
+753.739289860341
+21
+-652.105388357143
+31
+102.482800970232
+12
+767.829336589646
+22
+-637.125515922866
+32
+87.5029285374647
+13
+767.829336589646
+23
+-637.125515922866
+33
+87.5029285374647
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.739289860341
+20
+-652.105388357143
+30
+102.482800970232
+11
+767.829335677824
+21
+-625.572837100386
+31
+97.5753208387769
+12
+753.73928877638
+22
+-638.371732863863
+32
+114.456713513376
+13
+753.73928877638
+23
+-638.371732863863
+33
+114.456713513376
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690564957562
+20
+-549.114088023756
+30
+212.46522637891
+11
+436.335569590044
+21
+-186.86272
+31
+213.722949367545
+12
+439.690564957562
+22
+-186.86272
+32
+212.46522637891
+13
+439.690564957562
+23
+-186.86272
+33
+212.46522637891
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335569590044
+20
+-186.86272
+30
+213.722949367545
+11
+439.690564957562
+21
+-549.114088023756
+31
+212.46522637891
+12
+436.335569590044
+22
+-549.135217804424
+32
+213.722949367545
+13
+436.335569590044
+23
+-549.135217804424
+33
+213.722949367545
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.520757722035
+20
+-561.475389395115
+30
+23.3578380118087
+11
+792.007215701535
+21
+-572.529418663124
+31
+45.597263875134
+12
+793.478047748674
+22
+-563.767069108265
+32
+23.3578380112902
+13
+793.478047748674
+23
+-563.767069108265
+33
+23.3578380112902
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007215701535
+20
+-572.529418663124
+30
+45.597263875134
+11
+793.520757722035
+21
+-561.475389395115
+31
+23.3578380118087
+12
+792.007213497075
+22
+-567.289596867332
+32
+47.2582811561368
+13
+792.007213497075
+23
+-567.289596867332
+33
+47.2582811561368
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.2381055728787
+20
+-186.86272
+30
+1394.27106395937
+11
+18.7226850109544
+21
+-186.862719999999
+31
+1315.22236639941
+12
+0.112465277083555
+22
+-186.86272
+32
+1390.81149035281
+13
+0.112465277083555
+23
+-186.86272
+33
+1390.81149035281
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109544
+20
+-186.862719999999
+30
+1315.22236639941
+11
+35.2381055728787
+21
+-186.86272
+31
+1394.27106395937
+12
+56.1267852268127
+22
+-186.862719999999
+32
+1315.22236639941
+13
+56.1267852268127
+23
+-186.862719999999
+33
+1315.22236639941
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+56.1267852268127
+20
+-186.862719999999
+30
+1315.22236639941
+11
+35.2381055728787
+21
+-186.86272
+31
+1394.27106395937
+12
+69.0138872107926
+22
+-186.86272
+32
+1404.51683530547
+13
+69.0138872107926
+23
+-186.86272
+33
+1404.51683530547
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+56.1267852268127
+20
+-186.862719999999
+30
+1315.22236639941
+11
+69.0138872107926
+21
+-186.86272
+31
+1404.51683530547
+12
+56.1267852268127
+22
+-186.862719999999
+32
+268.426375476513
+13
+56.1267852268127
+23
+-186.862719999999
+33
+268.426375476513
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-186.86272
+30
+1753.52666880208
+11
+100.141825844156
+21
+-186.862719999999
+31
+1720.56410006505
+12
+69.3272894690774
+22
+-186.86272
+32
+1737.04848268553
+13
+69.3272894690774
+23
+-186.86272
+33
+1737.04848268553
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844156
+20
+-186.862719999999
+30
+1720.56410006505
+11
+100.155807358117
+21
+-186.86272
+31
+1753.52666880208
+12
+127.425692248039
+22
+-186.862719999999
+32
+1698.17280957558
+13
+127.425692248039
+23
+-186.862719999999
+33
+1698.17280957558
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.425692248039
+20
+-186.862719999999
+30
+1698.17280957558
+11
+100.155807358117
+21
+-186.86272
+31
+1753.52666880208
+12
+127.443487339903
+22
+-186.86272
+32
+1775.92108901406
+13
+127.443487339903
+23
+-186.86272
+33
+1775.92108901406
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.425692248039
+20
+-186.862719999999
+30
+1698.17280957558
+11
+127.443487339903
+21
+-186.86272
+31
+1775.92108901406
+12
+149.816982737509
+22
+-186.86272
+32
+1670.8889431717
+13
+149.816982737509
+23
+-186.86272
+33
+1670.8889431717
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.816982737509
+20
+-186.86272
+30
+1670.8889431717
+11
+127.443487339903
+21
+-186.86272
+31
+1775.92108901406
+12
+149.837907551873
+22
+-186.86272
+32
+1803.20876899584
+13
+149.837907551873
+23
+-186.86272
+33
+1803.20876899584
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.816982737509
+20
+-186.86272
+30
+1670.8889431717
+11
+149.837907551873
+21
+-186.86272
+31
+1803.20876899584
+12
+166.455212576235
+22
+-186.86272
+32
+1639.76100453833
+13
+166.455212576235
+23
+-186.86272
+33
+1639.76100453833
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.455212576235
+20
+-186.86272
+30
+1639.76100453833
+11
+149.837907551873
+21
+-186.86272
+31
+1803.20876899584
+12
+166.47846298422
+22
+-186.86272
+32
+1834.34105850885
+13
+166.47846298422
+23
+-186.86272
+33
+1834.34105850885
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.455212576235
+20
+-186.86272
+30
+1639.76100453833
+11
+166.47846298422
+21
+-186.86272
+31
+1834.34105850885
+12
+176.700983922342
+22
+-186.86272
+32
+1605.98522290042
+13
+176.700983922342
+23
+-186.86272
+33
+1605.98522290042
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.700983922342
+20
+-186.86272
+30
+1605.98522290042
+11
+166.47846298422
+21
+-186.86272
+31
+1834.34105850885
+12
+176.725666423807
+22
+-186.86272
+32
+1868.12156112628
+13
+176.725666423807
+23
+-186.86272
+33
+1868.12156112628
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.700983922342
+20
+-186.86272
+30
+1605.98522290042
+11
+176.725666423807
+21
+-186.86272
+31
+1868.12156112628
+12
+180.160557528894
+22
+-186.86272
+32
+1570.85958260462
+13
+180.160557528894
+23
+-186.86272
+33
+1570.85958260462
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+180.160557528894
+20
+-186.86272
+30
+1570.85958260462
+11
+176.725666423807
+21
+-186.86272
+31
+1868.12156112628
+12
+180.18572358915
+22
+-186.86272
+32
+1903.25211107687
+13
+180.18572358915
+23
+-186.86272
+33
+1903.25211107687
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.652471048303
+20
+-186.862719999999
+30
+2499.20806403607
+11
+46.8683973137003
+21
+-186.862719999999
+31
+2125.50255258978
+12
+46.8683973137003
+22
+-186.862719999999
+32
+2499.20806403607
+13
+46.8683973137003
+23
+-186.862719999999
+33
+2499.20806403607
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973137003
+20
+-186.862719999999
+30
+2125.50255258978
+11
+93.652471048303
+21
+-186.862719999999
+31
+2499.20806403607
+12
+69.0235178451106
+22
+-186.862719999999
+32
+2069.61810878401
+13
+69.0235178451106
+23
+-186.862719999999
+33
+2069.61810878401
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.0235178451106
+20
+-186.862719999999
+30
+2069.61810878401
+11
+93.652471048303
+21
+-186.862719999999
+31
+2499.20806403607
+12
+100.155807358117
+22
+-186.862719999999
+32
+2052.97755335166
+13
+100.155807358117
+23
+-186.862719999999
+33
+2052.97755335166
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-186.862719999999
+30
+2052.97755335166
+11
+93.652471048303
+21
+-186.862719999999
+31
+2499.20806403607
+12
+123.089851596878
+22
+-186.862719999999
+32
+2224.76609686633
+13
+123.089851596878
+23
+-186.862719999999
+33
+2224.76609686633
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-186.862719999999
+30
+2052.97755335166
+11
+123.089851596878
+21
+-186.862719999999
+31
+2224.76609686633
+12
+127.443487339903
+22
+-186.86272
+32
+2030.58313313969
+13
+127.443487339903
+23
+-186.86272
+33
+2030.58313313969
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339903
+20
+-186.86272
+30
+2030.58313313969
+11
+123.089851596878
+21
+-186.862719999999
+31
+2224.76609686633
+12
+221.739809665471
+22
+-186.86272
+32
+2013.4439613934
+13
+221.739809665471
+23
+-186.86272
+33
+2013.4439613934
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+127.443487339903
+20
+-186.86272
+30
+2030.58313313969
+11
+221.739809665471
+21
+-186.86272
+31
+2013.4439613934
+12
+149.837907551873
+22
+-186.86272
+32
+2003.29545315791
+13
+149.837907551873
+23
+-186.86272
+33
+2003.29545315791
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.837907551873
+20
+-186.86272
+30
+2003.29545315791
+11
+221.739809665471
+21
+-186.86272
+31
+2013.4439613934
+12
+166.47846298422
+22
+-186.86272
+32
+1972.1631636449
+13
+166.47846298422
+23
+-186.86272
+33
+1972.1631636449
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.47846298422
+20
+-186.86272
+30
+1972.1631636449
+11
+221.739809665471
+21
+-186.86272
+31
+2013.4439613934
+12
+176.725666423807
+22
+-186.86272
+32
+1938.38266102747
+13
+176.725666423807
+23
+-186.86272
+33
+1938.38266102747
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.725666423807
+20
+-186.86272
+30
+1938.38266102747
+11
+221.739809665471
+21
+-186.86272
+31
+2013.4439613934
+12
+180.18572358915
+22
+-186.86272
+32
+1903.25211107687
+13
+180.18572358915
+23
+-186.86272
+33
+1903.25211107687
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844157
+20
+-186.86272
+30
+1421.1550651442
+11
+93.530885442671
+21
+-186.862719999998
+31
+1315.22236639941
+12
+69.0138872107926
+22
+-186.86272
+32
+1404.51683530547
+13
+69.0138872107926
+23
+-186.86272
+33
+1404.51683530547
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.530885442671
+20
+-186.862719999998
+30
+1315.22236639941
+11
+100.141825844157
+21
+-186.86272
+31
+1421.1550651442
+12
+221.739809665471
+22
+-186.86272
+32
+1435.59863370269
+13
+221.739809665471
+23
+-186.86272
+33
+1435.59863370269
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+100.141825844157
+21
+-186.86272
+31
+1421.1550651442
+12
+127.42569224804
+22
+-186.86272
+32
+1443.54635563367
+13
+127.42569224804
+23
+-186.86272
+33
+1443.54635563367
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+127.42569224804
+21
+-186.86272
+31
+1443.54635563367
+12
+149.816982737509
+22
+-186.86272
+32
+1470.83022203755
+13
+149.816982737509
+23
+-186.86272
+33
+1470.83022203755
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+149.816982737509
+21
+-186.86272
+31
+1470.83022203755
+12
+166.455212576235
+22
+-186.86272
+32
+1501.95816067091
+13
+166.455212576235
+23
+-186.86272
+33
+1501.95816067091
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+166.455212576235
+21
+-186.86272
+31
+1501.95816067091
+12
+176.700983922342
+22
+-186.86272
+32
+1535.73394230883
+13
+176.700983922342
+23
+-186.86272
+33
+1535.73394230883
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+176.700983922342
+21
+-186.86272
+31
+1535.73394230883
+12
+180.160557528894
+22
+-186.86272
+32
+1570.85958260462
+13
+180.160557528894
+23
+-186.86272
+33
+1570.85958260462
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+180.160557528894
+21
+-186.86272
+31
+1570.85958260462
+12
+180.18572358915
+22
+-186.86272
+32
+1903.25211107687
+13
+180.18572358915
+23
+-186.86272
+33
+1903.25211107687
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+221.739809665471
+20
+-186.86272
+30
+1435.59863370269
+11
+180.18572358915
+21
+-186.86272
+31
+1903.25211107687
+12
+221.739809665471
+22
+-186.86272
+32
+2013.4439613934
+13
+221.739809665471
+23
+-186.86272
+33
+2013.4439613934
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162469754877819
+20
+-186.86272
+30
+214.795486963908
+11
+93.530885442671
+21
+-186.862719999999
+31
+242.726639240051
+12
+429.26772029492
+22
+-186.86272
+32
+214.795486963908
+13
+429.26772029492
+23
+-186.86272
+33
+214.795486963908
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.530885442671
+20
+-186.862719999999
+30
+242.726639240051
+11
+0.0162469754877819
+21
+-186.86272
+31
+214.795486963908
+12
+18.7226850109544
+22
+-186.862719999999
+32
+268.426375476513
+13
+18.7226850109544
+23
+-186.862719999999
+33
+268.426375476513
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109544
+20
+-186.862719999999
+30
+268.426375476513
+11
+0.0162469754877819
+21
+-186.86272
+31
+214.795486963908
+12
+0.112465277083555
+22
+-186.86272
+32
+1390.81149035281
+13
+0.112465277083555
+23
+-186.86272
+33
+1390.81149035281
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109544
+20
+-186.862719999999
+30
+268.426375476513
+11
+0.112465277083555
+21
+-186.86272
+31
+1390.81149035281
+12
+18.7226850109544
+22
+-186.862719999999
+32
+1315.22236639941
+13
+18.7226850109544
+23
+-186.862719999999
+33
+1315.22236639941
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.530885442671
+20
+-186.862719999999
+30
+242.726639240051
+11
+18.7226850109544
+21
+-186.862719999999
+31
+268.426375476513
+12
+56.1267852268127
+22
+-186.862719999999
+32
+268.426375476513
+13
+56.1267852268127
+23
+-186.862719999999
+33
+268.426375476513
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.530885442671
+20
+-186.862719999999
+30
+242.726639240051
+11
+56.1267852268127
+21
+-186.862719999999
+31
+268.426375476513
+12
+69.0138872107926
+22
+-186.86272
+32
+1404.51683530547
+13
+69.0138872107926
+23
+-186.86272
+33
+1404.51683530547
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+93.530885442671
+20
+-186.862719999999
+30
+242.726639240051
+11
+69.0138872107926
+21
+-186.86272
+31
+1404.51683530547
+12
+93.530885442671
+22
+-186.862719999998
+32
+1315.22236639941
+13
+93.530885442671
+23
+-186.862719999998
+33
+1315.22236639941
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.26772029492
+20
+-186.86272
+30
+214.795486963908
+11
+93.530885442671
+21
+-186.862719999999
+31
+242.726639240051
+12
+448.31772029492
+22
+-186.86272
+32
+242.726639240051
+13
+448.31772029492
+23
+-186.86272
+33
+242.726639240051
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.26772029492
+20
+-186.86272
+30
+214.795486963908
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+432.838897838644
+22
+-186.86272
+32
+214.504708726405
+13
+432.838897838644
+23
+-186.86272
+33
+214.504708726405
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838897838644
+20
+-186.86272
+30
+214.504708726405
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+436.335569590044
+22
+-186.86272
+32
+213.722949367545
+13
+436.335569590044
+23
+-186.86272
+33
+213.722949367545
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335569590044
+20
+-186.86272
+30
+213.722949367545
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+439.690564957562
+22
+-186.86272
+32
+212.46522637891
+13
+439.690564957562
+23
+-186.86272
+33
+212.46522637891
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690564957562
+20
+-186.86272
+30
+212.46522637891
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+442.839434933817
+22
+-186.86272
+32
+210.755700449054
+13
+442.839434933817
+23
+-186.86272
+33
+210.755700449054
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839434933817
+20
+-186.86272
+30
+210.755700449054
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+445.721690152324
+22
+-186.86272
+32
+208.627211339945
+13
+445.721690152324
+23
+-186.86272
+33
+208.627211339945
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721690152324
+20
+-186.86272
+30
+208.627211339945
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+448.281962880048
+22
+-186.86272
+32
+206.120647039576
+13
+448.281962880048
+23
+-186.86272
+33
+206.120647039576
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281962880048
+20
+-186.86272
+30
+206.120647039576
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+450.471070624061
+22
+-186.86272
+32
+203.284158309244
+13
+450.471070624061
+23
+-186.86272
+33
+203.284158309244
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471070624061
+20
+-186.86272
+30
+203.284158309244
+11
+448.31772029492
+21
+-186.86272
+31
+242.726639240051
+12
+451.683281480069
+22
+-186.86272
+32
+242.650939792116
+13
+451.683281480069
+23
+-186.86272
+33
+242.650939792116
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471070624061
+20
+-186.86272
+30
+203.284158309244
+11
+451.683281480069
+21
+-186.86272
+31
+242.650939792116
+12
+452.246960920592
+22
+-186.86272
+32
+200.172233713933
+13
+452.246960920592
+23
+-186.86272
+33
+200.172233713933
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246960920592
+20
+-186.86272
+30
+200.172233713933
+11
+451.683281480069
+21
+-186.86272
+31
+242.650939792116
+12
+455.00604998394
+22
+-186.86272
+32
+242.110623248711
+13
+455.00604998394
+23
+-186.86272
+33
+242.110623248711
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246960920592
+20
+-186.86272
+30
+200.172233713933
+11
+455.00604998394
+21
+-186.86272
+31
+242.110623248711
+12
+453.575519157163
+22
+-186.86272
+32
+196.84465290436
+13
+453.575519157163
+23
+-186.86272
+33
+196.84465290436
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575519157163
+20
+-186.86272
+30
+196.84465290436
+11
+455.00604998394
+21
+-186.86272
+31
+242.110623248711
+12
+454.431223909685
+22
+-186.86272
+32
+193.36533825795
+13
+454.431223909685
+23
+-186.86272
+33
+193.36533825795
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431223909685
+20
+-186.86272
+30
+193.36533825795
+11
+455.00604998394
+21
+-186.86272
+31
+242.110623248711
+12
+454.797637205561
+22
+-186.86272
+32
+189.801126938625
+13
+454.797637205561
+23
+-186.86272
+33
+189.801126938625
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797637205561
+20
+-186.86272
+30
+189.801126938625
+11
+602.133251163261
+21
+-186.86272
+31
+186.220486963908
+12
+454.66772029492
+22
+-186.86272
+32
+186.220486963908
+13
+454.66772029492
+23
+-186.86272
+33
+186.220486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133251163261
+20
+-186.86272
+30
+186.220486963908
+11
+454.797637205561
+21
+-186.86272
+31
+189.801126938625
+12
+473.71772029492
+22
+-186.86272
+32
+217.326639240051
+13
+473.71772029492
+23
+-186.86272
+33
+217.326639240051
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+454.797637205561
+21
+-186.86272
+31
+189.801126938625
+12
+455.00604998394
+22
+-186.86272
+32
+242.110623248711
+13
+455.00604998394
+23
+-186.86272
+33
+242.110623248711
+70
+15
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+455.00604998394
+21
+-186.86272
+31
+242.110623248711
+12
+458.222195872847
+22
+-186.86272
+32
+241.116069017578
+13
+458.222195872847
+23
+-186.86272
+33
+241.116069017578
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+458.222195872847
+21
+-186.86272
+31
+241.116069017578
+12
+461.269937419119
+22
+-186.86272
+32
+239.686382351025
+13
+461.269937419119
+23
+-186.86272
+33
+239.686382351025
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+461.269937419119
+21
+-186.86272
+31
+239.686382351025
+12
+464.090727919739
+22
+-186.86272
+32
+237.849027336606
+13
+464.090727919739
+23
+-186.86272
+33
+237.849027336606
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+464.090727919739
+21
+-186.86272
+31
+237.849027336606
+12
+466.630380370588
+22
+-186.86272
+32
+235.63929931572
+13
+466.630380370588
+23
+-186.86272
+33
+235.63929931572
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+466.630380370588
+21
+-186.86272
+31
+235.63929931572
+12
+468.840108391474
+22
+-186.86272
+32
+233.09964686487
+13
+468.840108391474
+23
+-186.86272
+33
+233.09964686487
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+468.840108391474
+21
+-186.86272
+31
+233.09964686487
+12
+470.677463405893
+22
+-186.86272
+32
+230.27885636425
+13
+470.677463405893
+23
+-186.86272
+33
+230.27885636425
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+470.677463405893
+21
+-186.86272
+31
+230.27885636425
+12
+472.107150072447
+22
+-186.86272
+32
+227.231114817978
+13
+472.107150072447
+23
+-186.86272
+33
+227.231114817978
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+472.107150072447
+21
+-186.86272
+31
+227.231114817978
+12
+473.10170430358
+22
+-186.86272
+32
+224.014968929072
+13
+473.10170430358
+23
+-186.86272
+33
+224.014968929072
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.71772029492
+20
+-186.86272
+30
+217.326639240051
+11
+473.10170430358
+21
+-186.86272
+31
+224.014968929072
+12
+473.642020846985
+22
+-186.86272
+32
+220.692200425201
+13
+473.642020846985
+23
+-186.86272
+33
+220.692200425201
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133251163261
+20
+-186.86272
+30
+186.220486963908
+11
+473.71772029492
+21
+-186.86272
+31
+217.326639240051
+12
+599.602098887118
+22
+-186.86272
+32
+217.326639240051
+13
+599.602098887118
+23
+-186.86272
+33
+217.326639240051
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133251163261
+20
+-186.86272
+30
+186.220486963908
+11
+599.602098887118
+21
+-186.86272
+31
+217.326639240051
+12
+624.955290211342
+22
+-186.86272
+32
+215.762940693873
+13
+624.955290211342
+23
+-186.86272
+33
+215.762940693873
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133251163261
+20
+-186.86272
+30
+186.220486963908
+11
+624.955290211342
+21
+-186.86272
+31
+215.762940693873
+12
+623.546317277054
+22
+-186.86272
+32
+185.255996085023
+13
+623.546317277054
+23
+-186.86272
+33
+185.255996085023
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546317277054
+20
+-186.86272
+30
+185.255996085023
+11
+624.955290211342
+21
+-186.86272
+31
+215.762940693873
+12
+644.636215091063
+22
+-186.86272
+32
+181.426393854527
+13
+644.636215091063
+23
+-186.86272
+33
+181.426393854527
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636215091063
+20
+-186.86272
+30
+181.426393854527
+11
+624.955290211342
+21
+-186.86272
+31
+215.762940693873
+12
+649.884068906774
+22
+-186.86272
+32
+210.885907146698
+13
+649.884068906774
+23
+-186.86272
+33
+210.885907146698
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636215091063
+20
+-186.86272
+30
+181.426393854527
+11
+649.884068906774
+21
+-186.86272
+31
+210.885907146698
+12
+665.021343123663
+22
+-186.86272
+32
+174.800973253263
+13
+665.021343123663
+23
+-186.86272
+33
+174.800973253263
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021343123663
+20
+-186.86272
+30
+174.800973253263
+11
+649.884068906774
+21
+-186.86272
+31
+210.885907146698
+12
+673.957327625231
+22
+-186.86272
+32
+202.779879874335
+13
+673.957327625231
+23
+-186.86272
+33
+202.779879874335
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021343123663
+20
+-186.86272
+30
+174.800973253263
+11
+673.957327625231
+21
+-186.86272
+31
+202.779879874335
+12
+684.332852026746
+22
+-186.86272
+32
+165.499614915081
+13
+684.332852026746
+23
+-186.86272
+33
+165.499614915081
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332852026746
+20
+-186.86272
+30
+165.499614915081
+11
+673.957327625231
+21
+-186.86272
+31
+202.779879874335
+12
+696.758754005207
+22
+-186.86272
+32
+191.585040951661
+13
+696.758754005207
+23
+-186.86272
+33
+191.585040951661
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332852026746
+20
+-186.86272
+30
+165.499614915081
+11
+696.758754005207
+21
+-186.86272
+31
+191.585040951661
+12
+702.221318561055
+22
+-186.86272
+32
+153.690618001708
+13
+702.221318561055
+23
+-186.86272
+33
+153.690618001708
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221318561055
+20
+-186.86272
+30
+153.690618001708
+11
+696.758754005207
+21
+-186.86272
+31
+191.585040951661
+12
+717.894030194972
+22
+-186.86272
+32
+177.494989005399
+13
+717.894030194972
+23
+-186.86272
+33
+177.494989005399
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221318561055
+20
+-186.86272
+30
+153.690618001708
+11
+717.894030194972
+21
+-186.86272
+31
+177.494989005399
+12
+718.363068074693
+22
+-186.86272
+32
+139.587654990762
+13
+718.363068074693
+23
+-186.86272
+33
+139.587654990762
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363068074693
+20
+-186.86272
+30
+139.587654990762
+11
+717.894030194972
+21
+-186.86272
+31
+177.494989005399
+12
+736.99765201229
+22
+-186.86272
+32
+160.753391204502
+13
+736.99765201229
+23
+-186.86272
+33
+160.753391204502
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363068074693
+20
+-186.86272
+30
+139.587654990762
+11
+736.99765201229
+21
+-186.86272
+31
+160.753391204502
+12
+732.466031085639
+22
+-186.86272
+32
+123.445905477124
+13
+732.466031085639
+23
+-186.86272
+33
+123.445905477124
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466031085639
+20
+-186.86272
+30
+123.445905477124
+11
+736.99765201229
+21
+-186.86272
+31
+160.753391204502
+12
+744.275027999012
+22
+-186.86272
+32
+105.557438942816
+13
+744.275027999012
+23
+-186.86272
+33
+105.557438942816
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275027999012
+20
+-186.86272
+30
+105.557438942816
+11
+736.99765201229
+21
+-186.86272
+31
+160.753391204502
+12
+753.739249813186
+22
+-186.86272
+32
+141.649769387185
+13
+753.739249813186
+23
+-186.86272
+33
+141.649769387185
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275027999012
+20
+-186.86272
+30
+105.557438942816
+11
+753.739249813186
+21
+-186.86272
+31
+141.649769387185
+12
+753.576386337194
+22
+-186.86272
+32
+86.2459300397311
+13
+753.576386337194
+23
+-186.86272
+33
+86.2459300397311
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576386337194
+20
+-186.86272
+30
+86.2459300397311
+11
+753.739249813186
+21
+-186.86272
+31
+141.649769387185
+12
+760.201806938459
+22
+-186.86272
+32
+65.8608020071314
+13
+760.201806938459
+23
+-186.86272
+33
+65.8608020071314
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201806938459
+20
+-186.86272
+30
+65.8608020071314
+11
+753.739249813186
+21
+-186.86272
+31
+141.649769387185
+12
+767.829301759449
+22
+-186.86272
+32
+120.51449319742
+13
+767.829301759449
+23
+-186.86272
+33
+120.51449319742
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.201806938459
+20
+-186.86272
+30
+65.8608020071314
+11
+767.829301759449
+21
+-186.86272
+31
+120.51449319742
+12
+764.031409168954
+22
+-186.86272
+32
+44.7709041931231
+13
+764.031409168954
+23
+-186.86272
+33
+44.7709041931231
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031409168954
+20
+-186.86272
+30
+44.7709041931231
+11
+767.829301759449
+21
+-186.86272
+31
+120.51449319742
+12
+764.995900047839
+22
+-186.86272
+32
+23.3578380793295
+13
+764.995900047839
+23
+-186.86272
+33
+23.3578380793295
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.995900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+767.829301759449
+21
+-186.86272
+31
+120.51449319742
+12
+793.570900047839
+22
+-186.86272
+32
+23.3578380793295
+13
+793.570900047839
+23
+-186.86272
+33
+23.3578380793295
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.570900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+767.829301759449
+21
+-186.86272
+31
+120.51449319742
+12
+779.024140682123
+22
+-186.86272
+32
+97.713066817443
+13
+779.024140682123
+23
+-186.86272
+33
+97.713066817443
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.570900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+779.024140682123
+21
+-186.86272
+31
+97.713066817443
+12
+787.130167954486
+22
+-186.86272
+32
+73.639808098986
+13
+787.130167954486
+23
+-186.86272
+33
+73.639808098986
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.570900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+787.130167954486
+21
+-186.86272
+31
+73.639808098986
+12
+792.00720150166
+22
+-186.86272
+32
+48.7110294035543
+13
+792.00720150166
+23
+-186.86272
+33
+48.7110294035543
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.179983602711646
+20
+-186.862719999999
+30
+2125.50255258978
+11
+35.243015227678
+21
+-186.862719999999
+31
+2079.8653122236
+12
+0.112465277083556
+22
+-186.862719999999
+32
+2083.32536938894
+13
+0.112465277083556
+23
+-186.862719999999
+33
+2083.32536938894
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.243015227678
+20
+-186.862719999999
+30
+2079.8653122236
+11
+0.179983602711646
+21
+-186.862719999999
+31
+2125.50255258978
+12
+46.8683973137003
+22
+-186.862719999999
+32
+2125.50255258978
+13
+46.8683973137003
+23
+-186.862719999999
+33
+2125.50255258978
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.243015227678
+20
+-186.862719999999
+30
+2079.8653122236
+11
+46.8683973137003
+21
+-186.862719999999
+31
+2125.50255258978
+12
+69.0235178451106
+22
+-186.862719999999
+32
+2069.61810878401
+13
+69.0235178451106
+23
+-186.862719999999
+33
+2069.61810878401
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.478462984219
+20
+-280.29408
+30
+1972.1631636449
+11
+176.725666423807
+21
+-186.86272
+31
+1938.38266102747
+12
+176.725666423806
+22
+-280.29408
+32
+1938.38266102747
+13
+176.725666423806
+23
+-280.29408
+33
+1938.38266102747
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.725666423807
+20
+-186.86272
+30
+1938.38266102747
+11
+166.478462984219
+21
+-280.29408
+31
+1972.1631636449
+12
+166.47846298422
+22
+-186.86272
+32
+1972.1631636449
+13
+166.47846298422
+23
+-186.86272
+33
+1972.1631636449
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.112465277083136
+20
+-280.29408
+30
+1390.81149035281
+11
+35.2381055728787
+21
+-186.86272
+31
+1394.27106395937
+12
+0.112465277083555
+22
+-186.86272
+32
+1390.81149035281
+13
+0.112465277083555
+23
+-186.86272
+33
+1390.81149035281
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+35.2381055728787
+20
+-186.86272
+30
+1394.27106395937
+11
+0.112465277083136
+21
+-280.29408
+31
+1390.81149035281
+12
+35.2381055728783
+22
+-280.29408
+32
+1394.27106395937
+13
+35.2381055728783
+23
+-280.29408
+33
+1394.27106395937
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.3272894690769
+20
+-280.29408
+30
+1737.04848268553
+11
+100.155807358117
+21
+-186.86272
+31
+1753.52666880208
+12
+69.3272894690774
+22
+-186.86272
+32
+1737.04848268553
+13
+69.3272894690774
+23
+-186.86272
+33
+1737.04848268553
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.155807358117
+20
+-186.86272
+30
+1753.52666880208
+11
+69.3272894690769
+21
+-280.29408
+31
+1737.04848268553
+12
+100.155807358117
+22
+-280.29408
+32
+1753.52666880208
+13
+100.155807358117
+23
+-280.29408
+33
+1753.52666880208
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+100.141825844156
+20
+-280.29408
+30
+1720.56410006505
+11
+69.3272894690774
+21
+-186.86272
+31
+1737.04848268553
+12
+100.141825844156
+22
+-186.862719999999
+32
+1720.56410006505
+13
+100.141825844156
+23
+-186.862719999999
+33
+1720.56410006505
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+69.3272894690774
+20
+-186.86272
+30
+1737.04848268553
+11
+100.141825844156
+21
+-280.29408
+31
+1720.56410006505
+12
+69.3272894690769
+22
+-280.29408
+32
+1737.04848268553
+13
+69.3272894690769
+23
+-280.29408
+33
+1737.04848268553
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+180.185723589149
+20
+-280.29408
+30
+1903.25211107687
+11
+176.725666423807
+21
+-186.86272
+31
+1868.12156112628
+12
+176.725666423806
+22
+-280.29408
+32
+1868.12156112628
+13
+176.725666423806
+23
+-280.29408
+33
+1868.12156112628
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.725666423807
+20
+-186.86272
+30
+1868.12156112628
+11
+180.185723589149
+21
+-280.29408
+31
+1903.25211107687
+12
+180.18572358915
+22
+-186.86272
+32
+1903.25211107687
+13
+180.18572358915
+23
+-186.86272
+33
+1903.25211107687
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+176.725666423806
+20
+-280.29408
+30
+1868.12156112628
+11
+166.47846298422
+21
+-186.86272
+31
+1834.34105850885
+12
+166.478462984219
+22
+-280.29408
+32
+1834.34105850885
+13
+166.478462984219
+23
+-280.29408
+33
+1834.34105850885
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.47846298422
+20
+-186.86272
+30
+1834.34105850885
+11
+176.725666423806
+21
+-280.29408
+31
+1868.12156112628
+12
+176.725666423807
+22
+-186.86272
+32
+1868.12156112628
+13
+176.725666423807
+23
+-186.86272
+33
+1868.12156112628
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+166.478462984219
+20
+-280.29408
+30
+1834.34105850885
+11
+149.837907551873
+21
+-186.86272
+31
+1803.20876899584
+12
+149.837907551873
+22
+-280.29408
+32
+1803.20876899584
+13
+149.837907551873
+23
+-280.29408
+33
+1803.20876899584
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+149.837907551873
+20
+-186.86272
+30
+1803.20876899584
+11
+166.478462984219
+21
+-280.29408
+31
+1834.34105850885
+12
+166.47846298422
+22
+-186.86272
+32
+1834.34105850885
+13
+166.47846298422
+23
+-186.86272
+33
+1834.34105850885
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282012434797
+20
+-654.795098868987
+30
+180.78210913444
+11
+450.471111788281
+21
+-629.324619346527
+31
+189.746945529741
+12
+450.471119570638
+22
+-653.402150740311
+32
+178.303588160926
+13
+450.471119570638
+23
+-653.402150740311
+33
+178.303588160926
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471111788281
+20
+-629.324619346527
+30
+189.746945529741
+11
+448.282012434797
+21
+-654.795098868987
+31
+180.78210913444
+12
+448.282004539076
+22
+-630.366836092636
+32
+192.392159030223
+13
+448.282004539076
+23
+-630.366836092636
+33
+192.392159030223
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+649.884086364505
+20
+-759.522868440055
+30
+28.7920756889693
+11
+624.955322175969
+21
+-759.578730682939
+31
+57.2462284142879
+12
+624.955307916438
+22
+-764.38593632126
+32
+29.2895600085649
+13
+624.955307916438
+23
+-764.38593632126
+33
+29.2895600085649
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+624.955322175969
+20
+-759.578730682939
+30
+57.2462284142879
+11
+649.884086364505
+21
+-759.522868440055
+31
+28.7920756889693
+12
+649.884100288402
+22
+-754.828812255533
+32
+56.0907148781112
+13
+649.884100288402
+23
+-754.828812255533
+33
+56.0907148781112
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281962880048
+20
+-549.007501396503
+30
+206.120647039576
+11
+450.471070624061
+21
+-186.86272
+31
+203.284158309244
+12
+450.471070624061
+22
+-548.959849908146
+32
+203.284158309243
+13
+450.471070624061
+23
+-548.959849908146
+33
+203.284158309243
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471070624061
+20
+-186.86272
+30
+203.284158309244
+11
+448.281962880048
+21
+-549.007501396503
+31
+206.120647039576
+12
+448.281962880048
+22
+-186.86272
+32
+206.120647039576
+13
+448.281962880048
+23
+-186.86272
+33
+206.120647039576
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332852026746
+20
+-548.325028948197
+30
+165.499614915081
+11
+665.021343123663
+21
+-186.86272
+31
+174.800973253263
+12
+684.332852026746
+22
+-186.86272
+32
+165.499614915081
+13
+684.332852026746
+23
+-186.86272
+33
+165.499614915081
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021343123663
+20
+-186.86272
+30
+174.800973253263
+11
+684.332852026746
+21
+-548.325028948197
+31
+165.499614915081
+12
+665.021343123663
+22
+-548.481290386566
+32
+174.800973253262
+13
+665.021343123663
+23
+-548.481290386566
+33
+174.800973253262
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+599.602116671527
+20
+-765.945156978237
+30
+29.4490754688794
+11
+473.717752446486
+21
+-761.101673808691
+31
+57.6167818413605
+12
+473.717738079349
+22
+-765.945155901366
+32
+29.449144968378
+13
+473.717738079349
+23
+-765.945155901366
+33
+29.449144968378
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.717752446486
+20
+-761.101673808691
+30
+57.6167818413605
+11
+599.602116671527
+21
+-765.945156978237
+31
+29.4490754688794
+12
+599.602131038669
+22
+-761.101673056328
+32
+57.616722979916
+13
+599.602131038669
+23
+-761.101673056328
+33
+57.616722979916
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363098127435
+20
+-605.920400916633
+30
+130.345732863609
+11
+732.466052014781
+21
+-584.996349297051
+31
+120.045263691758
+12
+732.466058322552
+22
+-599.989404866694
+32
+115.292482897529
+13
+732.466058322552
+23
+-599.989404866694
+33
+115.292482897529
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466052014781
+20
+-584.996349297051
+30
+120.045263691758
+11
+718.363098127435
+21
+-605.920400916633
+31
+130.345732863609
+12
+718.363090933403
+22
+-588.820775333035
+32
+135.766293848309
+13
+718.363090933403
+23
+-588.820775333035
+33
+135.766293848309
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973136999
+20
+-280.294079999999
+30
+2499.20806403607
+11
+46.8683973137003
+21
+-186.862719999999
+31
+2125.50255258978
+12
+46.8683973136999
+22
+-280.294079999999
+32
+2125.50255258978
+13
+46.8683973136999
+23
+-280.294079999999
+33
+2125.50255258978
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+46.8683973137003
+20
+-186.862719999999
+30
+2125.50255258978
+11
+46.8683973136999
+21
+-280.294079999999
+31
+2499.20806403607
+12
+46.8683973137003
+22
+-186.862719999999
+32
+2499.20806403607
+13
+46.8683973137003
+23
+-186.862719999999
+33
+2499.20806403607
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+673.957327625231
+20
+-548.951311917762
+30
+202.779879874335
+11
+696.758770484001
+21
+-576.445896872616
+31
+190.654683562835
+12
+696.758754005207
+22
+-548.76324041817
+32
+191.585040951661
+13
+696.758754005207
+23
+-548.76324041817
+33
+191.585040951661
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+696.758770484001
+20
+-576.445896872616
+30
+190.654683562835
+11
+673.957327625231
+21
+-548.951311917762
+31
+202.779879874335
+12
+673.957344671825
+22
+-577.587813182298
+32
+201.817465714933
+13
+673.957344671825
+23
+-577.587813182298
+33
+201.817465714933
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335625756533
+20
+-682.017174593568
+30
+172.023801843262
+11
+432.838949191021
+21
+-658.912362146436
+31
+188.108094342889
+12
+436.335620774804
+22
+-658.528453423172
+32
+187.424993609851
+13
+436.335620774804
+23
+-658.528453423172
+33
+187.424993609851
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838949191021
+20
+-658.912362146436
+30
+188.108094342889
+11
+436.335625756533
+21
+-682.017174593568
+31
+172.023801843262
+12
+432.838954191733
+22
+-682.490585555484
+32
+172.648217340479
+13
+432.838954191733
+23
+-682.490585555484
+33
+172.648217340479
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222209793371
+20
+-789.952733412824
+30
+23.3578378560715
+11
+455.006069025402
+21
+-790.658170470477
+31
+31.9771884161607
+12
+455.006063894518
+22
+-790.94784918938
+32
+23.3578378548415
+13
+455.006063894518
+23
+-790.94784918938
+33
+23.3578378548415
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006069025402
+20
+-790.658170470477
+30
+31.9771884161607
+11
+458.222209793371
+21
+-789.952733412824
+31
+23.3578378560715
+12
+458.222214863865
+22
+-789.666464186592
+32
+31.8757394304439
+13
+458.222214863865
+23
+-789.666464186592
+33
+31.8757394304439
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.995900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+847.545902396365
+21
+56.1856515497976
+31
+23.3578380793863
+12
+806.270901222105
+22
+56.1856515497994
+32
+23.3578380793657
+13
+806.270901222105
+23
+56.1856515497994
+33
+23.3578380793657
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.545902396365
+20
+56.1856515497976
+30
+23.3578380793863
+11
+764.995900047839
+21
+-186.86272
+31
+23.3578380793295
+12
+793.570900047839
+22
+-186.86272
+32
+23.3578380793295
+13
+793.570900047839
+23
+-186.86272
+33
+23.3578380793295
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+793.570900047839
+20
+-186.86272
+30
+23.3578380793295
+11
+847.54590239636
+21
+-563.749226612819
+31
+23.3578380793719
+12
+847.545902396365
+22
+56.1856515497976
+32
+23.3578380793863
+13
+847.545902396365
+23
+56.1856515497976
+33
+23.3578380793863
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.54590239636
+20
+-563.749226612819
+30
+23.3578380793719
+11
+793.570900047839
+21
+-186.86272
+31
+23.3578380793295
+12
+793.570900047839
+22
+-545.937123520845
+32
+23.3578380793295
+13
+793.570900047839
+23
+-545.937123520845
+33
+23.3578380793295
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.54590239636
+20
+-563.749226612819
+30
+23.3578380793719
+11
+793.570900047839
+21
+-545.937123520845
+31
+23.3578380793295
+12
+793.543158239603
+22
+-559.33210911257
+32
+23.3578380122893
+13
+793.543158239603
+23
+-559.33210911257
+33
+23.3578380122893
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.54590239636
+20
+-563.749226612819
+30
+23.3578380793719
+11
+793.543158239603
+21
+-559.33210911257
+31
+23.3578380122893
+12
+793.520757722035
+22
+-561.475389395115
+32
+23.3578380118087
+13
+793.520757722035
+23
+-561.475389395115
+33
+23.3578380118087
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.54590239636
+20
+-563.749226612819
+30
+23.3578380793719
+11
+793.520757722035
+21
+-561.475389395115
+31
+23.3578380118087
+12
+793.478047748674
+22
+-563.767069108265
+32
+23.3578380112902
+13
+793.478047748674
+23
+-563.767069108265
+33
+23.3578380112902
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+847.54590239636
+20
+-563.749226612819
+30
+23.3578380793719
+11
+793.478047748674
+21
+-563.767069108265
+31
+23.3578380112902
+12
+843.130722681617
+22
+-608.452917091224
+32
+23.3578380793307
+13
+843.130722681617
+23
+-608.452917091224
+33
+23.3578380793307
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+793.478047748674
+21
+-563.767069108265
+31
+23.3578380112902
+12
+793.410423174187
+22
+-566.321374409616
+32
+23.357838010706
+13
+793.410423174187
+23
+-566.321374409616
+33
+23.357838010706
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+793.410423174187
+21
+-566.321374409616
+31
+23.357838010706
+12
+793.309565768095
+22
+-569.303680096418
+32
+23.3578380100164
+13
+793.309565768095
+23
+-569.303680096418
+33
+23.3578380100164
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+793.309565768095
+21
+-569.303680096418
+31
+23.3578380100164
+12
+793.160541596036
+22
+-572.980425388099
+32
+23.3578380091579
+13
+793.160541596036
+23
+-572.980425388099
+33
+23.3578380091579
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+793.160541596036
+21
+-572.980425388099
+31
+23.3578380091579
+12
+792.935095112731
+22
+-577.829952364284
+32
+23.3578380080173
+13
+792.935095112731
+23
+-577.829952364284
+33
+23.3578380080173
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+792.935095112731
+21
+-577.829952364284
+31
+23.3578380080173
+12
+792.574093434967
+22
+-584.829110641297
+32
+23.3578380063606
+13
+792.574093434967
+23
+-584.829110641297
+33
+23.3578380063606
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+792.574093434967
+21
+-584.829110641297
+31
+23.3578380063606
+12
+792.00721584731
+22
+-595.005500745675
+32
+23.3578380039372
+13
+792.00721584731
+23
+-595.005500745675
+33
+23.3578380039372
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+792.00721584731
+21
+-595.005500745675
+31
+23.3578380039372
+12
+791.767077835926
+22
+-596.364536149864
+32
+23.3578380035618
+13
+791.767077835926
+23
+-596.364536149864
+33
+23.3578380035618
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+791.767077835926
+21
+-596.364536149864
+31
+23.3578380035618
+12
+787.308111270966
+22
+-620.27413204142
+32
+23.3578379968868
+13
+787.308111270966
+23
+-620.27413204142
+33
+23.3578379968868
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+843.130722681617
+20
+-608.452917091224
+30
+23.3578380793307
+11
+787.308111270966
+21
+-620.27413204142
+31
+23.3578379968868
+12
+838.782876772251
+22
+-630.31101453706
+32
+23.3578380792528
+13
+838.782876772251
+23
+-630.31101453706
+33
+23.3578380792528
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+838.782876772251
+20
+-630.31101453706
+30
+23.3578380792528
+11
+787.308111270966
+21
+-620.27413204142
+31
+23.3578379968868
+12
+787.130182819951
+22
+-621.196954326058
+32
+23.3578379966277
+13
+787.130182819951
+23
+-621.196954326058
+33
+23.3578379966277
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+838.782876772251
+20
+-630.31101453706
+30
+23.3578380792528
+11
+787.130182819951
+21
+-621.196954326058
+31
+23.3578379966277
+12
+779.024155516104
+22
+-645.623514226953
+32
+23.3578379886926
+13
+779.024155516104
+23
+-645.623514226953
+33
+23.3578379886926
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+838.782876772251
+20
+-630.31101453706
+30
+23.3578380792528
+11
+779.024155516104
+21
+-645.623514226953
+31
+23.3578379886926
+12
+827.96962116995
+22
+-662.165838331311
+32
+23.3578380792096
+13
+827.96962116995
+23
+-662.165838331311
+33
+23.3578380792096
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+827.96962116995
+20
+-662.165838331311
+30
+23.3578380792096
+11
+779.024155516104
+21
+-645.623514226953
+31
+23.3578379886926
+12
+767.829316563608
+22
+-668.759576574313
+32
+23.3578379800722
+13
+767.829316563608
+23
+-668.759576574313
+33
+23.3578379800722
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+827.96962116995
+20
+-662.165838331311
+30
+23.3578380792096
+11
+767.829316563608
+21
+-668.759576574313
+31
+23.3578379800722
+12
+813.090985614623
+22
+-692.336726612819
+32
+23.3578380791782
+13
+813.090985614623
+23
+-692.336726612819
+33
+23.3578380791782
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+813.090985614623
+20
+-692.336726612819
+30
+23.3578380791782
+11
+767.829316563608
+21
+-668.759576574313
+31
+23.3578379800722
+12
+753.739264589701
+22
+-690.205036468984
+32
+23.3578379709152
+13
+753.739264589701
+23
+-690.205036468984
+33
+23.3578379709152
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+813.090985614623
+20
+-692.336726612819
+30
+23.3578380791782
+11
+753.739264589701
+21
+-690.205036468984
+31
+23.3578379709152
+12
+739.751559375878
+22
+-706.400475394532
+32
+23.357837962948
+13
+739.751559375878
+23
+-706.400475394532
+33
+23.357837962948
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+813.090985614623
+20
+-692.336726612819
+30
+23.3578380791782
+11
+739.751559375878
+21
+-706.400475394532
+31
+23.357837962948
+12
+794.401547685759
+22
+-720.307447118137
+32
+23.3578380791593
+13
+794.401547685759
+23
+-720.307447118137
+33
+23.3578380791593
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+794.401547685759
+20
+-720.307447118137
+30
+23.3578380791593
+11
+739.751559375878
+21
+-706.400475394532
+31
+23.357837962948
+12
+736.997666736503
+22
+-709.544681018119
+32
+23.3578379613892
+13
+736.997666736503
+23
+-709.544681018119
+33
+23.3578379613892
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+794.401547685759
+20
+-720.307447118137
+30
+23.3578380791593
+11
+736.997666736503
+21
+-709.544681018119
+31
+23.3578379613892
+12
+717.894044751764
+22
+-726.295731112839
+32
+23.3578379516926
+13
+717.894044751764
+23
+-726.295731112839
+33
+23.3578379516926
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+794.401547685759
+20
+-720.307447118137
+30
+23.3578380791593
+11
+717.894044751764
+21
+-726.295731112839
+31
+23.3578379516926
+12
+772.221088848011
+22
+-745.599413064469
+32
+23.3578380791531
+13
+772.221088848011
+23
+-745.599413064469
+33
+23.3578380791531
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+772.221088848011
+20
+-745.599413064469
+30
+23.3578380791531
+11
+717.894044751764
+21
+-726.295731112839
+31
+23.3578379516926
+12
+696.758768421093
+22
+-740.393738342711
+32
+23.357837941943
+13
+696.758768421093
+23
+-740.393738342711
+33
+23.357837941943
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+772.221088848011
+20
+-745.599413064469
+30
+23.3578380791531
+11
+696.758768421093
+21
+-740.393738342711
+31
+23.357837941943
+12
+673.957341929162
+22
+-751.594897963598
+32
+23.3578379323091
+13
+673.957341929162
+23
+-751.594897963598
+33
+23.3578379323091
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+772.221088848011
+20
+-745.599413064469
+30
+23.3578380791531
+11
+673.957341929162
+21
+-751.594897963598
+31
+23.3578379323091
+12
+746.929122901678
+22
+-767.779871902217
+32
+23.3578380791593
+13
+746.929122901678
+23
+-767.779871902217
+33
+23.3578380791593
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901678
+20
+-767.779871902217
+30
+23.3578380791593
+11
+673.957341929162
+21
+-751.594897963598
+31
+23.3578379323091
+12
+649.884083129639
+22
+-759.7055020414
+32
+23.3578379229566
+13
+649.884083129639
+23
+-759.7055020414
+33
+23.3578379229566
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901678
+20
+-767.779871902217
+30
+23.3578380791593
+11
+649.884083129639
+21
+-759.7055020414
+31
+23.3578379229566
+12
+624.955304385432
+22
+-764.585289351978
+32
+23.3578379140486
+13
+624.955304385432
+23
+-764.585289351978
+33
+23.3578379140486
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901678
+20
+-767.779871902217
+30
+23.3578380791593
+11
+624.955304385432
+21
+-764.585289351978
+31
+23.3578379140486
+12
+599.602113045565
+22
+-766.149870997149
+32
+23.3578379057383
+13
+599.602113045565
+23
+-766.149870997149
+33
+23.3578379057383
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901678
+20
+-767.779871902217
+30
+23.3578380791593
+11
+599.602113045565
+21
+-766.149870997149
+31
+23.3578379057383
+12
+473.717734453346
+22
+-766.149872257343
+32
+23.3578378661905
+13
+473.717734453346
+23
+-766.149872257343
+33
+23.3578378661905
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901678
+20
+-767.779871902217
+30
+23.3578380791593
+11
+473.717734453346
+21
+-766.149872257343
+31
+23.3578378661905
+12
+473.642034971754
+22
+-769.517333598178
+32
+23.3578378654237
+13
+473.642034971754
+23
+-769.517333598178
+33
+23.3578378654237
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+746.929122901678
+20
+-767.779871902217
+30
+23.3578380791593
+11
+473.642034971754
+21
+-769.517333598178
+31
+23.3578378654237
+12
+718.95840239636
+22
+-786.469309831082
+32
+23.3578380791782
+13
+718.95840239636
+23
+-786.469309831082
+33
+23.3578380791782
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+473.642034971754
+21
+-769.517333598178
+31
+23.3578378654237
+12
+473.101718395121
+22
+-772.841978102158
+32
+23.3578378645206
+13
+473.101718395121
+23
+-772.841978102158
+33
+23.3578378645206
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+473.101718395121
+21
+-772.841978102158
+31
+23.3578378645206
+12
+472.107164131826
+22
+-776.05993979789
+32
+23.3578378634987
+13
+472.107164131826
+23
+-776.05993979789
+33
+23.3578378634987
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+472.107164131826
+21
+-776.05993979789
+31
+23.3578378634987
+12
+470.677477434794
+22
+-779.109402076299
+32
+23.3578378623763
+13
+470.677477434794
+23
+-779.109402076299
+33
+23.3578378623763
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+470.677477434794
+21
+-779.109402076299
+31
+23.3578378623763
+12
+468.840122392167
+22
+-781.931785179335
+32
+23.3578378611765
+13
+468.840122392167
+23
+-781.931785179335
+33
+23.3578378611765
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+468.840122392167
+21
+-781.931785179335
+31
+23.3578378611765
+12
+466.630394345883
+22
+-784.472871509203
+32
+23.3578378599218
+13
+466.630394345883
+23
+-784.472871509203
+33
+23.3578378599218
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+466.630394345883
+21
+-784.472871509203
+31
+23.3578378599218
+12
+464.090741872935
+22
+-786.683847141088
+32
+23.3578378586363
+13
+464.090741872935
+23
+-786.683847141088
+33
+23.3578378586363
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.95840239636
+20
+-786.469309831082
+30
+23.3578380791782
+11
+464.090741872935
+21
+-786.683847141088
+31
+23.3578378586363
+12
+688.787514114852
+22
+-801.347945386409
+32
+23.3578380792096
+13
+688.787514114852
+23
+-801.347945386409
+33
+23.3578380792096
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+464.090741872935
+21
+-786.683847141088
+31
+23.3578378586363
+12
+461.269951353941
+22
+-788.522239532049
+32
+23.3578378573451
+13
+461.269951353941
+23
+-788.522239532049
+33
+23.3578378573451
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+461.269951353941
+21
+-788.522239532049
+31
+23.3578378573451
+12
+458.222209793371
+22
+-789.952733412824
+32
+23.3578378560715
+13
+458.222209793371
+23
+-789.952733412824
+33
+23.3578378560715
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+458.222209793371
+21
+-789.952733412824
+31
+23.3578378560715
+12
+455.006063894518
+22
+-790.94784918938
+32
+23.3578378548415
+13
+455.006063894518
+23
+-790.94784918938
+33
+23.3578378548415
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+455.006063894518
+21
+-790.94784918938
+31
+23.3578378548415
+12
+451.683295385243
+22
+-791.4884708222
+32
+23.3578378536789
+13
+451.683295385243
+23
+-791.4884708222
+33
+23.3578378536789
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+451.683295385243
+21
+-791.4884708222
+31
+23.3578378536789
+12
+448.317734199337
+22
+-791.564213042815
+32
+23.3578378526045
+13
+448.317734199337
+23
+-791.564213042815
+33
+23.3578378526045
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+448.317734199337
+21
+-791.564213042815
+31
+23.3578378526045
+12
+0.000889626013624645
+22
+-791.564217518411
+32
+23.3578380798509
+13
+0.000889626013624645
+23
+-791.564217518411
+33
+23.3578380798509
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+0.000889626013624645
+21
+-791.564217518411
+31
+23.3578380798509
+12
+0.000467548734387557
+22
+-820.924226612819
+32
+23.3578380793719
+13
+0.000467548734387557
+23
+-820.924226612819
+33
+23.3578380793719
+70
+13
+ 0
+3DFACE
+ 8
+leg_half
+10
+688.787514114852
+20
+-801.347945386409
+30
+23.3578380792096
+11
+0.000467548734387557
+21
+-820.924226612819
+31
+23.3578380793719
+12
+656.932690320601
+22
+-812.16120098871
+32
+23.3578380792528
+13
+656.932690320601
+23
+-812.16120098871
+33
+23.3578380792528
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+656.932690320601
+20
+-812.16120098871
+30
+23.3578380792528
+11
+0.000467548734387557
+21
+-820.924226612819
+31
+23.3578380793719
+12
+623.938975880552
+22
+-818.724058836629
+32
+23.3578380793071
+13
+623.938975880552
+23
+-818.724058836629
+33
+23.3578380793071
+70
+3
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.938975880552
+20
+-818.724058836629
+30
+23.3578380793071
+11
+0.000467548734387557
+21
+-820.924226612819
+31
+23.3578380793719
+12
+590.37090239636
+22
+-820.924226612819
+32
+23.3578380793719
+13
+590.37090239636
+23
+-820.924226612819
+33
+23.3578380793719
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+5.74034615733243e-05
+20
+-672.771766719091
+30
+212.768416817903
+11
+448.317783384355
+21
+-699.580940660874
+31
+195.189933989489
+12
+448.31777769836
+22
+-672.771628457813
+32
+212.76838602076
+13
+448.31777769836
+23
+-672.771628457813
+33
+212.76838602076
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317783384355
+20
+-699.580940660874
+30
+195.189933989489
+11
+5.74034615733243e-05
+21
+-672.771766719091
+31
+212.768416817903
+12
+6.30894498883872e-05
+22
+-699.581046774633
+32
+195.189985865263
+13
+6.30894498883872e-05
+23
+-699.581046774633
+33
+195.189985865263
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721732248607
+20
+-631.28782828485
+30
+194.729696180594
+11
+448.281993692064
+21
+-604.584376828467
+31
+200.565167970899
+12
+448.282004539076
+22
+-630.366836092636
+32
+192.392159030223
+13
+448.282004539076
+23
+-630.366836092636
+33
+192.392159030223
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.281993692064
+20
+-604.584376828467
+30
+200.565167970899
+11
+445.721732248607
+21
+-631.28782828485
+31
+194.729696180594
+12
+445.721721263973
+22
+-605.178251275471
+32
+203.006401057676
+13
+445.721721263973
+23
+-605.178251275471
+33
+203.006401057676
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690620823844
+20
+-681.255534297249
+30
+171.019219664594
+11
+436.335620774804
+21
+-658.528453423172
+31
+187.424993609851
+12
+439.690615872653
+22
+-657.910807757804
+32
+186.325996375185
+13
+439.690615872653
+23
+-657.910807757804
+33
+186.325996375185
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335620774804
+20
+-658.528453423172
+30
+187.424993609851
+11
+439.690620823844
+21
+-681.255534297249
+31
+171.019219664594
+12
+436.335625756533
+22
+-682.017174593568
+32
+172.023801843262
+13
+436.335625756533
+23
+-682.017174593568
+33
+172.023801843262
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101749084159
+20
+-758.702384848233
+30
+87.3191803898169
+11
+472.107183407982
+21
+-770.747998603796
+31
+59.9634222143927
+12
+473.10173725466
+22
+-767.61567851106
+32
+59.2014293241045
+13
+473.10173725466
+23
+-767.61567851106
+33
+59.2014293241045
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107183407982
+20
+-770.747998603796
+30
+59.9634222143927
+11
+473.101749084159
+21
+-758.702384848233
+31
+87.3191803898169
+12
+472.107195414063
+22
+-761.701653732916
+32
+88.5008947532808
+13
+472.107195414063
+23
+-761.701653732916
+33
+88.5008947532808
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721746731967
+20
+-699.576473436421
+30
+149.95388604473
+11
+448.282017231929
+21
+-677.413444384727
+31
+165.951609244563
+12
+448.282018840978
+22
+-697.799916727886
+32
+148.177329336375
+13
+448.282018840978
+23
+-697.799916727886
+33
+148.177329336375
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.282017231929
+20
+-677.413444384727
+30
+165.951609244563
+11
+445.721746731967
+21
+-699.576473436421
+31
+149.95388604473
+12
+445.721745102502
+22
+-678.931345516719
+32
+167.953679054935
+13
+445.721745102502
+23
+-678.931345516719
+33
+167.953679054935
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642080404707
+20
+-708.127668368109
+30
+158.505080975556
+11
+473.101762926689
+21
+-729.866935555387
+31
+138.627118353444
+12
+473.642078676977
+22
+-727.212938735792
+32
+136.614948795724
+13
+473.642078676977
+23
+-727.212938735792
+33
+136.614948795724
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101762926689
+20
+-729.866935555387
+30
+138.627118353444
+11
+473.642080404707
+21
+-708.127668368109
+31
+158.505080975556
+12
+473.101764681482
+22
+-710.482718842918
+32
+160.860131450129
+13
+473.101764681482
+23
+-710.482718842918
+33
+160.860131450129
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+760.20182781144
+20
+-592.476194788978
+30
+53.921748202446
+11
+764.031424128692
+21
+-575.559109938211
+31
+39.7948544698768
+12
+764.031425007948
+22
+-579.704781244013
+32
+37.0766018107078
+13
+764.031425007948
+23
+-579.704781244013
+33
+37.0766018107078
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031424128692
+20
+-575.559109938211
+30
+39.7948544698768
+11
+760.20182781144
+21
+-592.476194788978
+31
+53.921748202446
+12
+760.201826420081
+22
+-585.915972100795
+32
+58.2231849183613
+13
+760.201826420081
+23
+-585.915972100795
+33
+58.2231849183613
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275059137262
+20
+-626.524535798612
+30
+76.9019484142785
+11
+753.576412075941
+21
+-604.820821451585
+31
+70.2039737536023
+12
+753.576412708658
+22
+-612.837280222141
+32
+63.214692839186
+13
+753.576412708658
+23
+-612.837280222141
+33
+63.214692839186
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576412075941
+20
+-604.820821451585
+30
+70.2039737536023
+11
+744.275059137262
+21
+-626.524535798612
+31
+76.9019484142785
+12
+744.27505834726
+22
+-616.515297047424
+32
+85.6286672029373
+13
+744.27505834726
+23
+-616.515297047424
+33
+85.6286672029373
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275027999012
+20
+-547.318028491407
+30
+105.557438942816
+11
+753.576386337194
+21
+-186.86272
+31
+86.2459300397311
+12
+753.576386337194
+22
+-546.993607173192
+32
+86.2459300397311
+13
+753.576386337194
+23
+-546.993607173192
+33
+86.2459300397311
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+753.576386337194
+20
+-186.86272
+30
+86.2459300397311
+11
+744.275027999012
+21
+-547.318028491407
+31
+105.557438942816
+12
+744.275027999012
+22
+-186.86272
+32
+105.557438942816
+13
+744.275027999012
+23
+-186.86272
+33
+105.557438942816
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021370191738
+20
+-597.163793012617
+30
+170.061810578218
+11
+644.636231054623
+21
+-575.409716284687
+31
+180.525125445771
+12
+665.021358751182
+22
+-574.733894284646
+32
+173.91867700208
+13
+665.021358751182
+23
+-574.733894284646
+33
+173.91867700208
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636231054623
+20
+-575.409716284687
+30
+180.525125445771
+11
+665.021370191738
+21
+-597.163793012617
+31
+170.061810578218
+12
+644.636242951136
+22
+-598.733544865996
+32
+176.514545976725
+13
+644.636242951136
+23
+-598.733544865996
+33
+176.514545976725
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007213497075
+20
+-567.289596867332
+30
+47.2582811561368
+11
+787.130186503031
+21
+-581.689044301674
+31
+68.844999694228
+12
+792.007215701535
+22
+-572.529418663124
+32
+45.597263875134
+13
+792.007215701535
+23
+-572.529418663124
+33
+45.597263875134
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+787.130186503031
+20
+-581.689044301674
+30
+68.844999694228
+11
+792.007213497075
+21
+-567.289596867332
+31
+47.2582811561368
+12
+787.130182929858
+22
+-573.195904769668
+32
+71.5373148305873
+13
+787.130182929858
+23
+-573.195904769668
+33
+71.5373148305873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683300548936
+20
+-581.654891394158
+30
+241.574352401781
+11
+455.006085098156
+21
+-613.111377811381
+31
+235.617099433291
+12
+455.006069025402
+22
+-581.599775817026
+32
+241.035583090668
+13
+455.006069025402
+23
+-581.599775817026
+33
+241.035583090668
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006085098156
+20
+-613.111377811381
+30
+235.617099433291
+11
+451.683300548936
+21
+-581.654891394158
+31
+241.574352401781
+12
+451.683316658874
+22
+-613.239395048328
+32
+236.143333156642
+13
+451.683316658874
+23
+-613.239395048328
+33
+236.143333156642
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317739367628
+20
+-581.662614799822
+30
+241.649835054513
+11
+451.683316658874
+21
+-613.239395048328
+31
+236.143333156642
+12
+451.683300548936
+22
+-581.654891394158
+32
+241.574352401781
+13
+451.683300548936
+23
+-581.654891394158
+33
+241.574352401781
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683316658874
+20
+-613.239395048328
+30
+236.143333156642
+11
+448.317739367628
+21
+-581.662614799822
+31
+241.649835054513
+12
+448.317755482775
+22
+-613.257331879904
+32
+236.217059590145
+13
+448.317755482775
+23
+-613.257331879904
+33
+236.217059590145
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332877982946
+20
+-594.96003923808
+30
+161.00288323661
+11
+665.021358751182
+21
+-574.733894284646
+31
+173.91867700208
+12
+684.332867182503
+22
+-573.785120021053
+32
+164.643953396873
+13
+684.332867182503
+23
+-573.785120021053
+33
+164.643953396873
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+665.021358751182
+20
+-574.733894284646
+30
+173.91867700208
+11
+684.332877982946
+21
+-594.96003923808
+31
+161.00288323661
+12
+665.021370191738
+22
+-597.163793012617
+32
+170.061810578218
+13
+665.021370191738
+23
+-597.163793012617
+33
+170.061810578218
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+1.90727753096809e-05
+20
+-581.662862311522
+30
+241.649831219402
+11
+448.317755482775
+21
+-613.257331879904
+31
+236.217059590145
+12
+448.317739367628
+22
+-581.662614799822
+32
+241.649835054513
+13
+448.317739367628
+23
+-581.662614799822
+33
+241.649835054513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317755482775
+20
+-613.257331879904
+30
+236.217059590145
+11
+1.90727753096809e-05
+21
+-581.662862311522
+31
+241.649831219402
+12
+3.51879034228841e-05
+22
+-613.257541505822
+32
+236.217062269571
+13
+3.51879034228841e-05
+23
+-613.257541505822
+33
+236.217062269571
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642053400866
+20
+-608.036762247305
+30
+214.756927441262
+11
+473.101749084159
+21
+-636.941767787464
+31
+209.079797462849
+12
+473.642065047928
+22
+-635.720877069339
+32
+205.981095949127
+13
+473.642065047928
+23
+-635.720877069339
+33
+205.981095949127
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101749084159
+20
+-636.941767787464
+30
+209.079797462849
+11
+473.642053400866
+21
+-608.036762247305
+31
+214.756927441262
+12
+473.10173725466
+22
+-608.824016722648
+32
+217.993091128508
+13
+473.10173725466
+23
+-608.824016722648
+33
+217.993091128508
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.101762926689
+20
+-688.249705748186
+30
+180.244348164837
+11
+472.107211244211
+21
+-712.762199391597
+31
+163.139611998578
+12
+473.101764681482
+22
+-710.482718842918
+32
+160.860131450129
+13
+473.101764681482
+23
+-710.482718842918
+33
+160.860131450129
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107211244211
+20
+-712.762199391597
+30
+163.139611998578
+11
+473.101762926689
+21
+-688.249705748186
+31
+180.244348164837
+12
+472.107209463225
+22
+-690.197307940468
+32
+182.813182295542
+13
+472.107209463225
+23
+-690.197307940468
+33
+182.813182295542
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107209463225
+20
+-690.197307940468
+30
+182.813182295542
+11
+470.677525329952
+21
+-714.922321501014
+31
+165.299734107777
+12
+472.107211244211
+22
+-712.762199391597
+32
+163.139611998578
+13
+472.107211244211
+23
+-712.762199391597
+33
+163.139611998578
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677525329952
+20
+-714.922321501014
+30
+165.299734107777
+11
+472.107209463225
+21
+-690.197307940468
+31
+182.813182295542
+12
+470.677523524142
+22
+-692.042929592268
+32
+185.247506781241
+13
+470.677523524142
+23
+-692.042929592268
+33
+185.247506781241
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575559198051
+20
+-626.958539673324
+30
+183.741680540481
+11
+454.431253196946
+21
+-601.562294416642
+31
+188.142314217608
+12
+454.431263343628
+22
+-625.680128816835
+32
+180.496989380173
+13
+454.431263343628
+23
+-625.680128816835
+33
+180.496989380173
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431253196946
+20
+-601.562294416642
+30
+188.142314217608
+11
+453.575559198051
+21
+-626.958539673324
+31
+183.741680540481
+12
+453.575548860337
+22
+-602.386639077964
+32
+191.530943822063
+13
+453.575548860337
+23
+-602.386639077964
+33
+191.530943822063
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317755482775
+20
+-613.257331879904
+30
+236.217059590145
+11
+451.683329511579
+21
+-643.789222672817
+31
+226.45907411243
+12
+451.683316658874
+22
+-613.239395048328
+32
+236.143333156642
+13
+451.683316658874
+23
+-613.239395048328
+33
+236.143333156642
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683329511579
+20
+-643.789222672817
+30
+226.45907411243
+11
+448.317755482775
+21
+-613.257331879904
+31
+236.217059590145
+12
+448.317768339636
+22
+-643.81703834892
+32
+226.52966896396
+13
+448.317768339636
+23
+-643.81703834892
+33
+226.52966896396
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+717.894057585081
+20
+-597.802053886837
+30
+172.685609040578
+11
+736.997685757261
+21
+-613.69735635364
+31
+150.084181819366
+12
+736.997677401125
+22
+-593.835505140242
+32
+156.380365045419
+13
+736.997677401125
+23
+-593.835505140242
+33
+156.380365045419
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+736.997685757261
+20
+-613.69735635364
+30
+150.084181819366
+11
+717.894057585081
+21
+-597.802053886837
+31
+172.685609040578
+12
+717.894066860413
+22
+-619.848757614325
+32
+165.696830164561
+13
+717.894066860413
+23
+-619.848757614325
+33
+165.696830164561
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267752143919
+20
+-606.639691213326
+30
+209.013906507055
+11
+0.0162646316092562
+21
+-578.813809543233
+31
+213.798660182835
+12
+429.267737950976
+22
+-578.813572557816
+32
+213.798663854844
+13
+429.267737950976
+23
+-578.813572557816
+33
+213.798663854844
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+0.0162646316092562
+20
+-578.813809543233
+30
+213.798660182835
+11
+429.267752143919
+21
+-606.639691213326
+31
+209.013906507055
+12
+0.0162788245333154
+22
+-606.639891924184
+32
+209.013909072529
+13
+0.0162788245333154
+23
+-606.639891924184
+33
+209.013909072529
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221343105619
+20
+-592.16215835415
+30
+149.501676557166
+11
+684.332867182503
+21
+-573.785120021053
+31
+164.643953396873
+12
+702.221333117862
+22
+-572.580560654599
+32
+152.868771861916
+13
+702.221333117862
+23
+-572.580560654599
+33
+152.868771861916
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+684.332867182503
+20
+-573.785120021053
+30
+164.643953396873
+11
+702.221343105619
+21
+-592.16215835415
+31
+149.501676557166
+12
+684.332877982946
+22
+-594.96003923808
+32
+161.00288323661
+13
+684.332877982946
+23
+-594.96003923808
+33
+161.00288323661
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838929652884
+20
+-606.570796271198
+30
+208.73070710808
+11
+429.267737950976
+21
+-578.813572557816
+31
+213.798663854844
+12
+432.838915479952
+22
+-578.783910422824
+32
+213.508718295381
+13
+432.838915479952
+23
+-578.783910422824
+33
+213.508718295381
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+429.267737950976
+20
+-578.813572557816
+30
+213.798663854844
+11
+432.838929652884
+21
+-606.570796271198
+31
+208.73070710808
+12
+429.267752143919
+22
+-606.639691213326
+32
+209.013906507055
+13
+429.267752143919
+23
+-606.639691213326
+33
+209.013906507055
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335601310833
+20
+-606.385574583813
+30
+207.969323546969
+11
+432.838915479952
+21
+-578.783910422824
+31
+213.508718295381
+12
+436.335587191701
+22
+-578.704166932226
+32
+212.72919754513
+13
+436.335587191701
+23
+-578.704166932226
+33
+212.72919754513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838915479952
+20
+-578.783910422824
+30
+213.508718295381
+11
+436.335601310833
+21
+-606.385574583813
+31
+207.969323546969
+12
+432.838929652884
+22
+-606.570796271198
+32
+208.73070710808
+13
+432.838929652884
+23
+-606.570796271198
+33
+208.73070710808
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+718.363090933403
+20
+-588.820775333035
+30
+135.766293848309
+11
+702.221333117862
+21
+-572.580560654599
+31
+152.868771861916
+12
+718.363081916203
+22
+-571.142011532184
+32
+138.806193017976
+13
+718.363081916203
+23
+-571.142011532184
+33
+138.806193017976
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+702.221333117862
+20
+-572.580560654599
+30
+152.868771861916
+11
+718.363090933403
+21
+-588.820775333035
+31
+135.766293848309
+12
+702.221343105619
+22
+-592.16215835415
+32
+149.501676557166
+13
+702.221343105619
+23
+-592.16215835415
+33
+149.501676557166
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.031424128692
+20
+-589.417441849078
+30
+25.9365225576139
+11
+764.531578361879
+21
+-577.829946771796
+31
+23.3578379990944
+12
+764.267940787943
+22
+-584.829097037034
+32
+23.3578379974678
+13
+764.267940787943
+23
+-584.829097037034
+33
+23.3578379974678
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+764.531578361879
+20
+-577.829946771796
+30
+23.3578379990944
+11
+764.031424128692
+21
+-589.417441849078
+31
+25.9365225576139
+12
+764.031425007948
+22
+-586.699189190326
+32
+30.0821938636906
+13
+764.031425007948
+23
+-586.699189190326
+33
+30.0821938636906
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+792.007217306199
+20
+-592.860317128213
+30
+27.8714369630177
+11
+792.00721584731
+21
+-595.005500745675
+31
+23.3578380039372
+12
+792.574093434967
+22
+-584.829110641297
+32
+23.3578380063606
+13
+792.574093434967
+23
+-584.829110641297
+33
+23.3578380063606
+70
+0
+ 0
+3DFACE
+ 8
+leg_half
+10
+458.222252930963
+20
+-760.983658189012
+30
+122.358116586891
+11
+455.006112926336
+21
+-744.320489807817
+31
+149.585310783685
+12
+455.006107255299
+22
+-761.852698834952
+32
+122.846524872111
+13
+455.006107255299
+23
+-761.852698834952
+33
+122.846524872111
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006112926336
+20
+-744.320489807817
+30
+149.585310783685
+11
+458.222252930963
+21
+-760.983658189012
+31
+122.358116586891
+12
+458.222258577851
+22
+-743.526108574926
+32
+148.983037664963
+13
+458.222258577851
+23
+-743.526108574926
+33
+148.983037664963
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+455.006107255299
+20
+-761.852698834952
+30
+122.846524872111
+11
+451.683344551435
+21
+-744.752057529093
+31
+149.912511141786
+12
+451.683338867278
+22
+-762.324827081794
+32
+123.111865415064
+13
+451.683338867278
+23
+-762.324827081794
+33
+123.111865415064
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683344551435
+20
+-744.752057529093
+30
+149.912511141786
+11
+455.006107255299
+21
+-761.852698834952
+31
+122.846524872111
+12
+455.006112926336
+22
+-744.320489807817
+32
+149.585310783685
+13
+455.006112926336
+23
+-744.320489807817
+33
+149.585310783685
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+451.683338867278
+20
+-762.324827081794
+30
+123.111865415064
+11
+448.317783384355
+21
+-744.812521381181
+31
+149.958353264626
+12
+448.31777769836
+22
+-762.390973409752
+32
+123.149041059795
+13
+448.31777769836
+23
+-762.390973409752
+33
+123.149041059795
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.317783384355
+20
+-744.812521381181
+30
+149.958353264626
+11
+451.683338867278
+21
+-762.324827081794
+31
+123.111865415064
+12
+451.683344551435
+22
+-744.752057529093
+32
+149.912511141786
+13
+451.683344551435
+23
+-744.752057529093
+33
+149.912511141786
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.31777769836
+20
+-762.390973409752
+30
+123.149041059795
+11
+6.30894498883872e-05
+21
+-744.812573256956
+31
+149.958459378386
+12
+5.74034615733243e-05
+22
+-762.391004206896
+32
+123.149179321074
+13
+5.74034615733243e-05
+23
+-762.391004206896
+33
+123.149179321074
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+6.30894498883872e-05
+20
+-744.812573256956
+30
+149.958459378386
+11
+448.31777769836
+21
+-762.390973409752
+31
+123.149041059795
+12
+448.317783384355
+22
+-744.812521381181
+32
+149.958353264626
+13
+448.317783384355
+23
+-744.812521381181
+33
+149.958353264626
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+461.269937419119
+20
+-549.571376162653
+30
+239.686382351024
+11
+464.090746745054
+21
+-581.165076540648
+31
+236.786190394896
+12
+464.090727919739
+22
+-549.540509167097
+32
+237.849027336606
+13
+464.090727919739
+23
+-549.540509167097
+33
+237.849027336606
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+464.090746745054
+20
+-581.165076540648
+30
+236.786190394896
+11
+461.269937419119
+21
+-549.571376162653
+31
+239.686382351024
+12
+461.269956337624
+22
+-581.352493258009
+32
+238.618284093782
+13
+461.269956337624
+23
+-581.352493258009
+33
+238.618284093782
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.133302212101
+20
+-683.695422993079
+30
+134.072835602987
+11
+454.667769896794
+21
+-665.362499898554
+31
+150.056742450276
+12
+602.13330076513
+22
+-665.362464994464
+32
+150.056725386733
+13
+602.13330076513
+23
+-665.362464994464
+33
+150.056725386733
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.667769896794
+20
+-665.362499898554
+30
+150.056742450276
+11
+602.133302212101
+21
+-683.695422993079
+31
+134.072835602987
+12
+454.667771343765
+22
+-683.695448366281
+32
+134.072860976189
+13
+454.667771343765
+23
+-683.695448366281
+33
+134.072860976189
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546368087822
+20
+-683.011825308716
+30
+133.389237918693
+11
+602.13330076513
+21
+-665.362464994464
+31
+150.056725386733
+12
+623.546366648706
+22
+-664.778393037384
+32
+149.286354566558
+13
+623.546366648706
+23
+-664.778393037384
+33
+149.286354566558
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+602.13330076513
+20
+-665.362464994464
+30
+150.056725386733
+11
+623.546368087822
+21
+-683.011825308716
+31
+133.389237918693
+12
+602.133302212101
+22
+-683.695422993079
+32
+134.072835602987
+13
+602.133302212101
+23
+-683.695422993079
+33
+134.072835602987
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+644.636264956545
+20
+-680.297547066858
+30
+130.674959677109
+11
+623.546366648706
+21
+-664.778393037384
+31
+149.286354566558
+12
+644.636263548619
+22
+-662.459295238253
+32
+146.227531781659
+13
+644.636263548619
+23
+-662.459295238253
+33
+146.227531781659
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+623.546366648706
+20
+-664.778393037384
+30
+149.286354566558
+11
+644.636264956545
+21
+-680.297547066858
+31
+130.674959677109
+12
+623.546368087822
+22
+-683.011825308716
+32
+133.389237918693
+13
+623.546368087822
+23
+-683.011825308716
+33
+133.389237918693
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+450.471101097006
+20
+-603.912334485117
+30
+197.802609624747
+11
+452.246977834961
+21
+-577.321948654809
+31
+199.217284688636
+12
+452.246991021541
+22
+-603.175034087969
+32
+194.771794391524
+13
+452.246991021541
+23
+-603.175034087969
+33
+194.771794391524
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246977834961
+20
+-577.321948654809
+30
+199.217284688636
+11
+450.471101097006
+21
+-603.912334485117
+31
+197.802609624747
+12
+450.471087696265
+22
+-577.639374325348
+32
+202.320298229792
+13
+450.471087696265
+23
+-577.639374325348
+33
+202.320298229792
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.642020846985
+20
+-186.86272
+30
+220.692200425201
+11
+473.10170430358
+21
+-549.308104906071
+31
+224.014968929071
+12
+473.642020846985
+22
+-549.252284780773
+32
+220.6922004252
+13
+473.642020846985
+23
+-549.252284780773
+33
+220.6922004252
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+473.10170430358
+20
+-549.308104906071
+30
+224.014968929071
+11
+473.642020846985
+21
+-186.86272
+31
+220.692200425201
+12
+473.10170430358
+22
+-186.86272
+32
+224.014968929072
+13
+473.10170430358
+23
+-186.86272
+33
+224.014968929072
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677463405893
+20
+-186.86272
+30
+230.27885636425
+11
+472.107150072447
+21
+-549.362133988305
+31
+227.231114817978
+12
+472.107150072447
+22
+-186.86272
+32
+227.231114817978
+13
+472.107150072447
+23
+-186.86272
+33
+227.231114817978
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107150072447
+20
+-549.362133988305
+30
+227.231114817978
+11
+470.677463405893
+21
+-186.86272
+31
+230.27885636425
+12
+470.677463405893
+22
+-549.413334136112
+32
+230.27885636425
+13
+470.677463405893
+23
+-549.413334136112
+33
+230.27885636425
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677463405893
+20
+-186.86272
+30
+230.27885636425
+11
+468.840108391474
+21
+-549.460721801574
+31
+233.09964686487
+12
+470.677463405893
+22
+-549.413334136112
+32
+230.27885636425
+13
+470.677463405893
+23
+-549.413334136112
+33
+230.27885636425
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840108391474
+20
+-549.460721801574
+30
+233.09964686487
+11
+470.677463405893
+21
+-186.86272
+31
+230.27885636425
+12
+468.840108391474
+22
+-186.86272
+32
+233.09964686487
+13
+468.840108391474
+23
+-186.86272
+33
+233.09964686487
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+466.630380370588
+20
+-186.86272
+30
+235.63929931572
+11
+468.840108391474
+21
+-549.460721801574
+31
+233.09964686487
+12
+468.840108391474
+22
+-186.86272
+32
+233.09964686487
+13
+468.840108391474
+23
+-186.86272
+33
+233.09964686487
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+468.840108391474
+20
+-549.460721801574
+30
+233.09964686487
+11
+466.630380370588
+21
+-186.86272
+31
+235.63929931572
+12
+466.630380370588
+22
+-549.503386674047
+32
+235.63929931572
+13
+466.630380370588
+23
+-549.503386674047
+33
+235.63929931572
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690607723364
+20
+-632.698039036468
+30
+198.308899357094
+11
+436.335601310833
+21
+-606.385574583813
+31
+207.969323546969
+12
+439.690596528004
+22
+-606.087584234742
+32
+206.744381898986
+13
+439.690596528004
+23
+-606.087584234742
+33
+206.744381898986
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335601310833
+20
+-606.385574583813
+30
+207.969323546969
+11
+439.690607723364
+21
+-632.698039036468
+31
+198.308899357094
+12
+436.335612575248
+22
+-633.16016763801
+32
+199.481809374145
+13
+436.335612575248
+23
+-633.16016763801
+33
+199.481809374145
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+732.466058322552
+20
+-599.989404866694
+30
+115.292482897529
+11
+744.275046789786
+21
+-580.758079568763
+31
+102.623043056121
+12
+744.275052115393
+22
+-593.416610482006
+32
+98.6103038030606
+13
+744.275052115393
+23
+-593.416610482006
+33
+98.6103038030606
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+744.275046789786
+20
+-580.758079568763
+30
+102.623043056121
+11
+732.466058322552
+21
+-599.989404866694
+31
+115.292482897529
+12
+732.466052014781
+22
+-584.996349297051
+32
+120.045263691758
+13
+732.466052014781
+23
+-584.996349297051
+33
+120.045263691758
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+472.107195414063
+20
+-638.12348215123
+30
+212.079066347413
+11
+470.677518140403
+21
+-666.658744301589
+31
+201.891525102388
+12
+472.10720415349
+22
+-665.162054034067
+32
+199.228411696097
+13
+472.10720415349
+23
+-665.162054034067
+33
+199.228411696097
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+470.677518140403
+20
+-666.658744301589
+30
+201.891525102388
+11
+472.107195414063
+21
+-638.12348215123
+31
+212.079066347413
+12
+470.677509279169
+22
+-639.24331958749
+32
+214.92128705308
+13
+470.677509279169
+23
+-639.24331958749
+33
+214.92128705308
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+4.80447490185498e-05
+20
+-643.817211330157
+30
+226.529683259707
+11
+448.31777769836
+21
+-672.771628457813
+31
+212.76838602076
+12
+448.317768339636
+22
+-643.81703834892
+32
+226.52966896396
+13
+448.317768339636
+23
+-643.81703834892
+33
+226.52966896396
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+448.31777769836
+20
+-672.771628457813
+30
+212.76838602076
+11
+4.80447490185498e-05
+21
+-643.817211330157
+31
+226.529683259707
+12
+5.74034615733243e-05
+22
+-672.771766719091
+32
+212.768416817903
+13
+5.74034615733243e-05
+23
+-672.771766719091
+33
+212.768416817903
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335620774804
+20
+-658.528453423172
+30
+187.424993609851
+11
+432.838940960221
+21
+-633.447412164356
+31
+200.210851816573
+12
+436.335612575248
+22
+-633.16016763801
+32
+199.481809374145
+13
+436.335612575248
+23
+-633.16016763801
+33
+199.481809374145
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+432.838940960221
+20
+-633.447412164356
+30
+200.210851816573
+11
+436.335620774804
+21
+-658.528453423172
+31
+187.424993609851
+12
+432.838949191021
+22
+-658.912362146436
+32
+188.108094342889
+13
+432.838949191021
+23
+-658.912362146436
+33
+188.108094342889
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690615872653
+20
+-657.910807757804
+30
+186.325996375185
+11
+436.335612575248
+21
+-633.16016763801
+31
+199.481809374145
+12
+439.690607723364
+22
+-632.698039036468
+32
+198.308899357094
+13
+439.690607723364
+23
+-632.698039036468
+33
+198.308899357094
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+436.335612575248
+20
+-633.16016763801
+30
+199.481809374145
+11
+439.690615872653
+21
+-657.910807757804
+31
+186.325996375185
+12
+436.335620774804
+22
+-658.528453423172
+32
+187.424993609851
+13
+436.335620774804
+23
+-658.528453423172
+33
+187.424993609851
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839485482368
+20
+-657.071290040049
+30
+184.832214227177
+11
+439.690607723364
+21
+-632.698039036468
+31
+198.308899357094
+12
+442.839477401402
+22
+-632.069903787681
+32
+196.714653208256
+13
+442.839477401402
+23
+-632.069903787681
+33
+196.714653208256
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+439.690607723364
+20
+-632.698039036468
+30
+198.308899357094
+11
+442.839485482368
+21
+-657.071290040049
+31
+184.832214227177
+12
+439.690615872653
+22
+-657.910807757804
+32
+186.325996375185
+13
+439.690615872653
+23
+-657.910807757804
+33
+186.325996375185
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+445.721740244506
+20
+-656.026027291755
+30
+182.972342518915
+11
+442.839477401402
+21
+-632.069903787681
+31
+196.714653208256
+12
+445.721732248607
+22
+-631.28782828485
+32
+194.729696180594
+13
+445.721732248607
+23
+-631.28782828485
+33
+194.729696180594
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+442.839477401402
+20
+-632.069903787681
+30
+196.714653208256
+11
+445.721740244506
+21
+-656.026027291755
+31
+182.972342518915
+12
+442.839485482368
+22
+-657.071290040049
+32
+184.832214227177
+13
+442.839485482368
+23
+-657.071290040049
+33
+184.832214227177
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575566723046
+20
+-650.239827098532
+30
+172.676755002411
+11
+454.431263343628
+21
+-625.680128816835
+31
+180.496989380173
+12
+454.431270729568
+22
+-648.531199395009
+32
+169.63653352158
+13
+454.431270729568
+23
+-648.531199395009
+33
+169.63653352158
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431263343628
+20
+-625.680128816835
+30
+180.496989380173
+11
+453.575566723046
+21
+-650.239827098532
+31
+172.676755002411
+12
+453.575559198051
+22
+-626.958539673324
+32
+183.741680540481
+13
+453.575559198051
+23
+-626.958539673324
+33
+183.741680540481
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+452.246960920592
+20
+-548.907571431286
+30
+200.172233713933
+11
+453.575519157163
+21
+-186.86272
+31
+196.84465290436
+12
+453.575519157163
+22
+-548.851670228397
+32
+196.84465290436
+13
+453.575519157163
+23
+-548.851670228397
+33
+196.84465290436
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575519157163
+20
+-186.86272
+30
+196.84465290436
+11
+452.246960920592
+21
+-548.907571431286
+31
+200.172233713933
+12
+452.246960920592
+22
+-186.86272
+32
+200.172233713933
+13
+452.246960920592
+23
+-186.86272
+33
+200.172233713933
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+453.575519157163
+20
+-548.851670228397
+30
+196.84465290436
+11
+454.431223909685
+21
+-186.86272
+31
+193.36533825795
+12
+454.431223909685
+22
+-548.793220154026
+32
+193.36533825795
+13
+454.431223909685
+23
+-548.793220154026
+33
+193.36533825795
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431223909685
+20
+-186.86272
+30
+193.36533825795
+11
+453.575519157163
+21
+-548.851670228397
+31
+196.84465290436
+12
+453.575519157163
+22
+-186.86272
+32
+196.84465290436
+13
+453.575519157163
+23
+-186.86272
+33
+196.84465290436
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.431223909685
+20
+-548.793220154026
+30
+193.36533825795
+11
+454.797637205561
+21
+-186.86272
+31
+189.801126938625
+12
+454.797637205561
+22
+-548.733344026199
+32
+189.801126938624
+13
+454.797637205561
+23
+-548.733344026199
+33
+189.801126938624
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797637205561
+20
+-186.86272
+30
+189.801126938625
+11
+454.431223909685
+21
+-548.793220154026
+31
+193.36533825795
+12
+454.431223909685
+22
+-186.86272
+32
+193.36533825795
+13
+454.431223909685
+23
+-186.86272
+33
+193.36533825795
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.797637205561
+20
+-548.733344026199
+30
+189.801126938624
+11
+454.66772029492
+21
+-186.86272
+31
+186.220486963908
+12
+454.66772029492
+22
+-548.673192057237
+32
+186.220486963908
+13
+454.66772029492
+23
+-548.673192057237
+33
+186.220486963908
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+454.66772029492
+20
+-186.86272
+30
+186.220486963908
+11
+454.797637205561
+21
+-548.733344026199
+31
+189.801126938624
+12
+454.797637205561
+22
+-186.86272
+32
+189.801126938625
+13
+454.797637205561
+23
+-186.86272
+33
+189.801126938625
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+56.126785226813
+20
+-233.578399999998
+30
+1315.22236639941
+11
+18.7226850109546
+21
+-233.578399999999
+31
+268.426375476513
+12
+18.7226850109546
+22
+-233.578399999998
+32
+1315.22236639941
+13
+18.7226850109546
+23
+-233.578399999998
+33
+1315.22236639941
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109546
+20
+-233.578399999999
+30
+268.426375476513
+11
+56.126785226813
+21
+-233.578399999998
+31
+1315.22236639941
+12
+56.126785226813
+22
+-233.578399999998
+32
+268.426375476513
+13
+56.126785226813
+23
+-233.578399999998
+33
+268.426375476513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109544
+20
+-186.862719999999
+30
+268.426375476513
+11
+56.126785226813
+21
+-233.578399999998
+31
+268.426375476513
+12
+56.1267852268127
+22
+-186.862719999999
+32
+268.426375476513
+13
+56.1267852268127
+23
+-186.862719999999
+33
+268.426375476513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+56.126785226813
+20
+-233.578399999998
+30
+268.426375476513
+11
+18.7226850109544
+21
+-186.862719999999
+31
+268.426375476513
+12
+18.7226850109546
+22
+-233.578399999999
+32
+268.426375476513
+13
+18.7226850109546
+23
+-233.578399999999
+33
+268.426375476513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109544
+20
+-186.862719999999
+30
+1315.22236639941
+11
+18.7226850109546
+21
+-233.578399999999
+31
+268.426375476513
+12
+18.7226850109544
+22
+-186.862719999999
+32
+268.426375476513
+13
+18.7226850109544
+23
+-186.862719999999
+33
+268.426375476513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109546
+20
+-233.578399999999
+30
+268.426375476513
+11
+18.7226850109544
+21
+-186.862719999999
+31
+1315.22236639941
+12
+18.7226850109546
+22
+-233.578399999998
+32
+1315.22236639941
+13
+18.7226850109546
+23
+-233.578399999998
+33
+1315.22236639941
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+56.126785226813
+20
+-233.578399999998
+30
+1315.22236639941
+11
+18.7226850109544
+21
+-186.862719999999
+31
+1315.22236639941
+12
+56.1267852268127
+22
+-186.862719999999
+32
+1315.22236639941
+13
+56.1267852268127
+23
+-186.862719999999
+33
+1315.22236639941
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+18.7226850109544
+20
+-186.862719999999
+30
+1315.22236639941
+11
+56.126785226813
+21
+-233.578399999998
+31
+1315.22236639941
+12
+18.7226850109546
+22
+-233.578399999998
+32
+1315.22236639941
+13
+18.7226850109546
+23
+-233.578399999998
+33
+1315.22236639941
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+56.126785226813
+20
+-233.578399999998
+30
+1315.22236639941
+11
+56.1267852268127
+21
+-186.862719999999
+31
+268.426375476513
+12
+56.126785226813
+22
+-233.578399999998
+32
+268.426375476513
+13
+56.126785226813
+23
+-233.578399999998
+33
+268.426375476513
+70
+1
+ 0
+3DFACE
+ 8
+leg_half
+10
+56.1267852268127
+20
+-186.862719999999
+30
+268.426375476513
+11
+56.126785226813
+21
+-233.578399999998
+31
+1315.22236639941
+12
+56.1267852268127
+22
+-186.862719999999
+32
+1315.22236639941
+13
+56.1267852268127
+23
+-186.862719999999
+33
+1315.22236639941
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-794.16656
+30
+2070.08261515828
+11
+1071.44060782234
+21
+-804.053109826237
+31
+2084.86773745469
+12
+1080.07459980683
+22
+-800.976532807249
+32
+2069.41239686438
+13
+1080.07459980683
+23
+-800.976532807249
+33
+2069.41239686438
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-804.053109826237
+30
+2084.86773745469
+11
+1080.07459980683
+21
+-794.16656
+31
+2070.08261515828
+12
+1071.44060782234
+22
+-794.16656
+32
+2085.84074377127
+13
+1071.44060782234
+23
+-794.16656
+33
+2085.84074377127
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-794.16656
+30
+2085.84074377127
+11
+1059.82120360007
+21
+-806.749751362303
+31
+2098.41445288964
+12
+1071.44060782234
+22
+-804.053109826237
+32
+2084.86773745469
+13
+1071.44060782234
+23
+-804.053109826237
+33
+2084.86773745469
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-806.749751362303
+30
+2098.41445288964
+11
+1071.44060782234
+21
+-794.16656
+31
+2085.84074377127
+12
+1059.82120360007
+22
+-794.16656
+32
+2099.6528550515
+13
+1059.82120360007
+23
+-794.16656
+33
+2099.6528550515
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-808.96283299496
+30
+2109.5319806407
+11
+1059.82120360007
+21
+-794.16656
+31
+2099.6528550515
+12
+1045.6629890274
+22
+-794.16656
+32
+2110.98818804762
+13
+1045.6629890274
+23
+-794.16656
+33
+2110.98818804762
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-794.16656
+30
+2099.6528550515
+11
+1045.6629890274
+21
+-808.96283299496
+31
+2109.5319806407
+12
+1059.82120360007
+22
+-806.749751362303
+32
+2098.41445288964
+13
+1059.82120360007
+23
+-806.749751362303
+33
+2098.41445288964
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-810.607297088473
+30
+2117.79302936366
+11
+1045.6629890274
+21
+-794.16656
+31
+2110.98818804762
+12
+1029.5099682249
+22
+-794.16656
+32
+2119.41108028308
+13
+1029.5099682249
+23
+-794.16656
+33
+2119.41108028308
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-794.16656
+30
+2110.98818804762
+11
+1029.5099682249
+21
+-810.607297088473
+31
+2117.79302936366
+12
+1045.6629890274
+22
+-808.96283299496
+32
+2109.5319806407
+13
+1045.6629890274
+23
+-808.96283299496
+33
+2109.5319806407
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-811.619948505454
+30
+2122.88013508281
+11
+1029.5099682249
+21
+-794.16656
+31
+2119.41108028308
+12
+1011.98285238754
+22
+-794.16656
+32
+2124.59784829519
+13
+1011.98285238754
+23
+-794.16656
+33
+2124.59784829519
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-794.16656
+30
+2119.41108028308
+11
+1011.98285238754
+21
+-811.619948505454
+31
+2122.88013508281
+12
+1029.5099682249
+22
+-810.607297088473
+32
+2117.79302936366
+13
+1029.5099682249
+23
+-810.607297088473
+33
+2117.79302936366
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-811.961287013471
+30
+2124.59486637848
+11
+1011.98285238754
+21
+-794.16656
+31
+2124.59784829519
+12
+993.755281646067
+22
+-794.16656
+32
+2126.34617316296
+13
+993.755281646067
+23
+-794.16656
+33
+2126.34617316296
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-794.16656
+30
+2124.59784829519
+11
+993.755281646067
+21
+-811.961287013471
+31
+2124.59486637848
+12
+1011.98285238754
+22
+-811.619948505454
+32
+2122.88013508281
+13
+1011.98285238754
+23
+-811.619948505454
+33
+2122.88013508281
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+993.755281646067
+21
+-794.16656
+31
+2245.84761107459
+12
+947.039601646067
+22
+-794.16656
+32
+2245.84761107459
+13
+947.039601646067
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-794.16656
+30
+2245.84761107459
+11
+947.039601646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+993.755281646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+993.755281646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+900.323921646066
+21
+-794.16656
+31
+2200.28420494853
+12
+900.323921646066
+22
+-826.396760603478
+32
+2197.11219961575
+13
+900.323921646066
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-794.16656
+30
+2200.28420494853
+11
+947.039601646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+947.039601646067
+22
+-794.16656
+32
+2245.84761107459
+13
+947.039601646067
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-794.16656
+30
+2200.28420494853
+11
+853.608241646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+900.323921646066
+22
+-826.396760603478
+32
+2197.11219961575
+13
+900.323921646066
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+900.323921646066
+21
+-794.16656
+31
+2200.28420494853
+12
+853.608241646067
+22
+-794.16656
+32
+2245.84761107459
+13
+853.608241646067
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+806.892561646067
+21
+-794.16656
+31
+2200.28420494853
+12
+806.892561646067
+22
+-826.396760603478
+32
+2197.11219961575
+13
+806.892561646067
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-794.16656
+30
+2200.28420494853
+11
+853.608241646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+853.608241646067
+22
+-794.16656
+32
+2245.84761107459
+13
+853.608241646067
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-794.16656
+30
+2200.28420494853
+11
+760.176881646066
+21
+-835.292444325637
+31
+2241.80011766922
+12
+806.892561646067
+22
+-826.396760603478
+32
+2197.11219961575
+13
+806.892561646067
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-835.292444325637
+30
+2241.80011766922
+11
+806.892561646067
+21
+-794.16656
+31
+2200.28420494853
+12
+760.176881646066
+22
+-794.16656
+32
+2245.84761107459
+13
+760.176881646066
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-835.292444325637
+30
+2241.80011766922
+11
+713.461201646067
+21
+-794.16656
+31
+2200.28420494853
+12
+713.461201646067
+22
+-826.396760603478
+32
+2197.11219961575
+13
+713.461201646067
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-794.16656
+30
+2200.28420494853
+11
+760.176881646066
+21
+-835.292444325637
+31
+2241.80011766922
+12
+760.176881646066
+22
+-794.16656
+32
+2245.84761107459
+13
+760.176881646066
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-794.16656
+30
+2200.28420494853
+11
+666.745521646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+713.461201646067
+22
+-826.396760603478
+32
+2197.11219961575
+13
+713.461201646067
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+713.461201646067
+21
+-794.16656
+31
+2200.28420494853
+12
+666.745521646067
+22
+-794.16656
+32
+2245.84761107459
+13
+666.745521646067
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-835.292444325637
+30
+2241.80011766922
+11
+666.745521646067
+21
+-794.16656
+31
+2245.84761107459
+12
+635.537064906387
+22
+-794.16656
+32
+2245.84761107459
+13
+635.537064906387
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-794.16656
+30
+2245.84761107459
+11
+635.537064906387
+21
+-835.292444325637
+31
+2241.80011766922
+12
+666.745521646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+666.745521646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-826.396760603478
+30
+2197.11219961575
+11
+635.537064906387
+21
+-794.16656
+31
+2200.28420494853
+12
+200.646177778547
+22
+-794.16656
+32
+2200.28420494853
+13
+200.646177778547
+23
+-794.16656
+33
+2200.28420494853
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-794.16656
+30
+2200.28420494853
+11
+200.646177778547
+21
+-826.396760603478
+31
+2197.11219961575
+12
+635.537064906387
+22
+-826.396760603478
+32
+2197.11219961575
+13
+635.537064906387
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-810.693774595514
+30
+2118.22745350336
+11
+200.646177778547
+21
+-794.16656
+31
+2119.85401529483
+12
+97.3015169041444
+22
+-794.16656
+32
+2119.85401529483
+13
+97.3015169041444
+23
+-794.16656
+33
+2119.85401529483
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-794.16656
+30
+2119.85401529483
+11
+97.3015169041444
+21
+-810.693774595514
+31
+2118.22745350336
+12
+200.646177778547
+22
+-810.693774595514
+32
+2118.22745350336
+13
+200.646177778547
+23
+-810.693774595514
+33
+2118.22745350336
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-820.853629053581
+30
+2169.2659973228
+11
+97.3015169041444
+21
+-794.16656
+31
+2171.89246330095
+12
+45.3075256523042
+22
+-794.16656
+32
+2171.89246330095
+13
+45.3075256523042
+23
+-794.16656
+33
+2171.89246330095
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-794.16656
+30
+2171.89246330095
+11
+45.3075256523042
+21
+-820.853629053581
+31
+2169.2659973228
+12
+97.3015169041444
+22
+-820.853629053581
+32
+2169.2659973228
+13
+97.3015169041444
+23
+-820.853629053581
+33
+2169.2659973228
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-794.16656
+30
+2052.98408188445
+11
+1080.07459980683
+21
+-800.976532807249
+31
+2069.41239686438
+12
+1085.39140477935
+22
+-797.638258585694
+32
+2052.64240711292
+13
+1085.39140477935
+23
+-797.638258585694
+33
+2052.64240711292
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-800.976532807249
+30
+2069.41239686438
+11
+1085.39140477935
+21
+-794.16656
+31
+2052.98408188445
+12
+1080.07459980683
+22
+-794.16656
+32
+2070.08261515828
+13
+1080.07459980683
+23
+-794.16656
+33
+2070.08261515828
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-800.976532807249
+30
+2069.41239686438
+11
+1071.44060782234
+21
+-813.559725087093
+31
+2081.98611059205
+12
+1080.07459980683
+22
+-807.524802178593
+32
+2067.42749809583
+13
+1080.07459980683
+23
+-807.524802178593
+33
+2067.42749809583
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-813.559725087093
+30
+2081.98611059205
+11
+1080.07459980683
+21
+-800.976532807249
+31
+2069.41239686438
+12
+1071.44060782234
+22
+-804.053109826237
+32
+2084.86773745469
+13
+1071.44060782234
+23
+-804.053109826237
+33
+2084.86773745469
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-804.053109826237
+30
+2084.86773745469
+11
+1059.82120360007
+21
+-818.84937773729
+31
+2094.74683750463
+12
+1071.44060782234
+22
+-813.559725087093
+32
+2081.98611059205
+13
+1071.44060782234
+23
+-813.559725087093
+33
+2081.98611059205
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-818.84937773729
+30
+2094.74683750463
+11
+1071.44060782234
+21
+-804.053109826237
+31
+2084.86773745469
+12
+1059.82120360007
+22
+-806.749751362303
+32
+2098.41445288964
+13
+1059.82120360007
+23
+-806.749751362303
+33
+2098.41445288964
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-808.96283299496
+30
+2109.5319806407
+11
+1059.82120360007
+21
+-818.84937773729
+31
+2094.74683750463
+12
+1059.82120360007
+22
+-806.749751362303
+32
+2098.41445288964
+13
+1059.82120360007
+23
+-806.749751362303
+33
+2098.41445288964
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-818.84937773729
+30
+2094.74683750463
+11
+1045.6629890274
+21
+-808.96283299496
+31
+2109.5319806407
+12
+1045.6629890274
+22
+-823.19049351657
+32
+2105.21931965394
+13
+1045.6629890274
+23
+-823.19049351657
+33
+2105.21931965394
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-810.607297088473
+30
+2117.79302936366
+11
+1045.6629890274
+21
+-823.19049351657
+31
+2105.21931965394
+12
+1045.6629890274
+22
+-808.96283299496
+32
+2109.5319806407
+13
+1045.6629890274
+23
+-808.96283299496
+33
+2109.5319806407
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-823.19049351657
+30
+2105.21931965394
+11
+1029.5099682249
+21
+-810.607297088473
+31
+2117.79302936366
+12
+1029.5099682249
+22
+-826.416225870708
+32
+2113.00105739483
+13
+1029.5099682249
+23
+-826.416225870708
+33
+2113.00105739483
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-811.619948505454
+30
+2122.88013508281
+11
+1029.5099682249
+21
+-826.416225870708
+31
+2113.00105739483
+12
+1029.5099682249
+22
+-810.607297088473
+32
+2117.79302936366
+13
+1029.5099682249
+23
+-810.607297088473
+33
+2117.79302936366
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-826.416225870708
+30
+2113.00105739483
+11
+1011.98285238754
+21
+-811.619948505454
+31
+2122.88013508281
+12
+1011.98285238754
+22
+-828.402613078617
+32
+2117.79300620111
+13
+1011.98285238754
+23
+-828.402613078617
+33
+2117.79300620111
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-811.961287013471
+30
+2124.59486637848
+11
+1011.98285238754
+21
+-828.402613078617
+31
+2117.79300620111
+12
+1011.98285238754
+22
+-811.619948505454
+32
+2122.88013508281
+13
+1011.98285238754
+23
+-811.619948505454
+33
+2122.88013508281
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-828.402613078617
+30
+2117.79300620111
+11
+993.755281646067
+21
+-811.961287013471
+31
+2124.59486637848
+12
+993.755281646067
+22
+-829.072172647213
+32
+2119.40824776262
+13
+993.755281646067
+23
+-829.072172647213
+33
+2119.40824776262
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+993.755281646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+947.039601646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+947.039601646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+947.039601646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+993.755281646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+993.755281646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+900.323921646066
+21
+-826.396760603478
+31
+2197.11219961575
+12
+900.323921646066
+22
+-857.388372672667
+32
+2187.71808200347
+13
+900.323921646066
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-826.396760603478
+30
+2197.11219961575
+11
+947.039601646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+947.039601646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+947.039601646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-826.396760603478
+30
+2197.11219961575
+11
+853.608241646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+900.323921646066
+22
+-857.388372672667
+32
+2187.71808200347
+13
+900.323921646066
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+900.323921646066
+21
+-826.396760603478
+31
+2197.11219961575
+12
+853.608241646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+853.608241646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+806.892561646067
+21
+-826.396760603478
+31
+2197.11219961575
+12
+806.892561646067
+22
+-857.388372672667
+32
+2187.71808200347
+13
+806.892561646067
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-826.396760603478
+30
+2197.11219961575
+11
+853.608241646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+853.608241646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+853.608241646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-826.396760603478
+30
+2197.11219961575
+11
+760.176881646066
+21
+-874.837883980304
+31
+2229.81318035484
+12
+806.892561646067
+22
+-857.388372672667
+32
+2187.71808200347
+13
+806.892561646067
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-874.837883980304
+30
+2229.81318035484
+11
+806.892561646067
+21
+-826.396760603478
+31
+2197.11219961575
+12
+760.176881646066
+22
+-835.292444325637
+32
+2241.80011766922
+13
+760.176881646066
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-874.837883980304
+30
+2229.81318035484
+11
+713.461201646067
+21
+-826.396760603478
+31
+2197.11219961575
+12
+713.461201646067
+22
+-857.388372672667
+32
+2187.71808200347
+13
+713.461201646067
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-826.396760603478
+30
+2197.11219961575
+11
+760.176881646066
+21
+-874.837883980304
+31
+2229.81318035484
+12
+760.176881646066
+22
+-835.292444325637
+32
+2241.80011766922
+13
+760.176881646066
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-826.396760603478
+30
+2197.11219961575
+11
+666.745521646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+713.461201646067
+22
+-857.388372672667
+32
+2187.71808200347
+13
+713.461201646067
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+713.461201646067
+21
+-826.396760603478
+31
+2197.11219961575
+12
+666.745521646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+666.745521646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-874.837883980304
+30
+2229.81318035484
+11
+666.745521646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+635.537064906387
+22
+-835.292444325637
+32
+2241.80011766922
+13
+635.537064906387
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+635.537064906387
+21
+-874.837883980304
+31
+2229.81318035484
+12
+666.745521646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+666.745521646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-857.388372672667
+30
+2187.71808200347
+11
+635.537064906387
+21
+-826.396760603478
+31
+2197.11219961575
+12
+200.646177778547
+22
+-826.396760603478
+32
+2197.11219961575
+13
+200.646177778547
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-826.396760603478
+30
+2197.11219961575
+11
+200.646177778547
+21
+-857.388372672667
+31
+2187.71808200347
+12
+635.537064906387
+22
+-857.388372672667
+32
+2187.71808200347
+13
+635.537064906387
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-826.585857602691
+30
+2113.41027598642
+11
+200.646177778547
+21
+-810.693774595514
+31
+2118.22745350336
+12
+97.3015169041444
+22
+-810.693774595514
+32
+2118.22745350336
+13
+97.3015169041444
+23
+-810.693774595514
+33
+2118.22745350336
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-810.693774595514
+30
+2118.22745350336
+11
+97.3015169041444
+21
+-826.585857602691
+31
+2113.41027598642
+12
+200.646177778547
+22
+-826.585857602691
+32
+2113.41027598642
+13
+200.646177778547
+23
+-826.585857602691
+33
+2113.41027598642
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-846.515129009712
+30
+2161.48753300293
+11
+97.3015169041444
+21
+-820.853629053581
+31
+2169.2659973228
+12
+45.3075256523042
+22
+-820.853629053581
+32
+2169.2659973228
+13
+45.3075256523042
+23
+-820.853629053581
+33
+2169.2659973228
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-820.853629053581
+30
+2169.2659973228
+11
+45.3075256523042
+21
+-846.515129009712
+31
+2161.48753300293
+12
+97.3015169041444
+22
+-846.515129009712
+32
+2161.48753300293
+13
+97.3015169041444
+23
+-846.515129009712
+33
+2161.48753300293
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-797.638258585694
+30
+2052.64240711292
+11
+1080.07459980683
+21
+-807.524802178593
+31
+2067.42749809583
+12
+1085.39140477935
+22
+-800.976541741692
+32
+2051.63051316818
+13
+1085.39140477935
+23
+-800.976541741692
+33
+2051.63051316818
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-807.524802178593
+30
+2067.42749809583
+11
+1085.39140477935
+21
+-797.638258585694
+31
+2052.64240711292
+12
+1080.07459980683
+22
+-800.976532807249
+32
+2069.41239686438
+13
+1080.07459980683
+23
+-800.976532807249
+33
+2069.41239686438
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-807.524802178593
+30
+2067.42749809583
+11
+1071.44060782234
+21
+-822.321071889464
+31
+2077.30660248764
+12
+1080.07459980683
+22
+-813.559721794402
+32
+2064.20419739918
+13
+1080.07459980683
+23
+-813.559721794402
+33
+2064.20419739918
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-822.321071889464
+30
+2077.30660248764
+11
+1080.07459980683
+21
+-807.524802178593
+31
+2067.42749809583
+12
+1071.44060782234
+22
+-813.559725087093
+32
+2081.98611059205
+13
+1071.44060782234
+23
+-813.559725087093
+33
+2081.98611059205
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-813.559725087093
+30
+2081.98611059205
+11
+1059.82120360007
+21
+-830.000457268917
+31
+2088.79095329889
+12
+1071.44060782234
+22
+-822.321071889464
+32
+2077.30660248764
+13
+1071.44060782234
+23
+-822.321071889464
+33
+2077.30660248764
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-830.000457268917
+30
+2088.79095329889
+11
+1071.44060782234
+21
+-813.559725087093
+31
+2081.98611059205
+12
+1059.82120360007
+22
+-818.84937773729
+32
+2094.74683750463
+13
+1059.82120360007
+23
+-818.84937773729
+33
+2094.74683750463
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-823.19049351657
+30
+2105.21931965394
+11
+1059.82120360007
+21
+-830.000457268917
+31
+2088.79095329889
+12
+1059.82120360007
+22
+-818.84937773729
+32
+2094.74683750463
+13
+1059.82120360007
+23
+-818.84937773729
+33
+2094.74683750463
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-830.000457268917
+30
+2088.79095329889
+11
+1045.6629890274
+21
+-823.19049351657
+31
+2105.21931965394
+12
+1045.6629890274
+22
+-836.302780549948
+32
+2098.2159382305
+13
+1045.6629890274
+23
+-836.302780549948
+33
+2098.2159382305
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-826.416225870708
+30
+2113.00105739483
+11
+1045.6629890274
+21
+-836.302780549948
+31
+2098.2159382305
+12
+1045.6629890274
+22
+-823.19049351657
+32
+2105.21931965394
+13
+1045.6629890274
+23
+-823.19049351657
+33
+2105.21931965394
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-836.302780549948
+30
+2098.2159382305
+11
+1029.5099682249
+21
+-826.416225870708
+31
+2113.00105739483
+12
+1029.5099682249
+22
+-840.985818079353
+32
+2105.21931717198
+13
+1029.5099682249
+23
+-840.985818079353
+33
+2105.21931717198
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-828.402613078617
+30
+2117.79300620111
+11
+1029.5099682249
+21
+-840.985818079353
+31
+2105.21931717198
+12
+1029.5099682249
+22
+-826.416225870708
+32
+2113.00105739483
+13
+1029.5099682249
+23
+-826.416225870708
+33
+2113.00105739483
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-840.985818079353
+30
+2105.21931717198
+11
+1011.98285238754
+21
+-828.402613078617
+31
+2117.79300620111
+12
+1011.98285238754
+22
+-843.869605331769
+32
+2109.53195716012
+13
+1011.98285238754
+23
+-843.869605331769
+33
+2109.53195716012
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-829.072172647213
+30
+2119.40824776262
+11
+1011.98285238754
+21
+-843.869605331769
+31
+2109.53195716012
+12
+1011.98285238754
+22
+-828.402613078617
+32
+2117.79300620111
+13
+1011.98285238754
+23
+-828.402613078617
+33
+2117.79300620111
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-843.869605331769
+30
+2109.53195716012
+11
+993.755281646067
+21
+-829.072172647213
+31
+2119.40824776262
+12
+993.755281646067
+22
+-844.841655162215
+32
+2110.9856361601
+13
+993.755281646067
+23
+-844.841655162215
+33
+2110.9856361601
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+993.755281646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+947.039601646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+947.039601646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+947.039601646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+993.755281646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+993.755281646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+900.323921646066
+21
+-857.388372672667
+31
+2187.71808200347
+12
+900.323921646066
+22
+-885.950405936049
+32
+2172.46286278326
+13
+900.323921646066
+23
+-885.950405936049
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-857.388372672667
+30
+2187.71808200347
+11
+947.039601646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+947.039601646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+947.039601646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-857.388372672667
+30
+2187.71808200347
+11
+853.608241646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+900.323921646066
+22
+-885.950405936049
+32
+2172.46286278326
+13
+900.323921646066
+23
+-885.950405936049
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+900.323921646066
+21
+-857.388372672667
+31
+2187.71808200347
+12
+853.608241646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+853.608241646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+806.892561646067
+21
+-857.388372672667
+31
+2187.71808200347
+12
+806.892561646067
+22
+-885.950405936049
+32
+2172.46286278326
+13
+806.892561646067
+23
+-885.950405936049
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-857.388372672667
+30
+2187.71808200347
+11
+853.608241646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+853.608241646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+853.608241646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-857.388372672667
+30
+2187.71808200347
+11
+760.176881646066
+21
+-911.283169895404
+31
+2210.34745041008
+12
+806.892561646067
+22
+-885.950405936049
+32
+2172.46286278326
+13
+806.892561646067
+23
+-885.950405936049
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-911.283169895404
+30
+2210.34745041008
+11
+806.892561646067
+21
+-857.388372672667
+31
+2187.71808200347
+12
+760.176881646066
+22
+-874.837883980304
+32
+2229.81318035484
+13
+760.176881646066
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-911.283169895404
+30
+2210.34745041008
+11
+713.461201646067
+21
+-857.388372672667
+31
+2187.71808200347
+12
+713.461201646067
+22
+-885.950405936049
+32
+2172.46286278326
+13
+713.461201646067
+23
+-885.950405936049
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-857.388372672667
+30
+2187.71808200347
+11
+760.176881646066
+21
+-911.283169895404
+31
+2210.34745041008
+12
+760.176881646066
+22
+-874.837883980304
+32
+2229.81318035484
+13
+760.176881646066
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-857.388372672667
+30
+2187.71808200347
+11
+666.745521646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+713.461201646067
+22
+-885.950405936049
+32
+2172.46286278326
+13
+713.461201646067
+23
+-885.950405936049
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+713.461201646067
+21
+-857.388372672667
+31
+2187.71808200347
+12
+666.745521646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+666.745521646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-911.283169895404
+30
+2210.34745041008
+11
+666.745521646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+635.537064906387
+22
+-874.837883980304
+32
+2229.81318035484
+13
+635.537064906387
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+635.537064906387
+21
+-911.283169895404
+31
+2210.34745041008
+12
+666.745521646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+666.745521646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-885.950405936048
+30
+2172.46286278326
+11
+635.537064906387
+21
+-857.388372672667
+31
+2187.71808200347
+12
+200.646177778547
+22
+-857.388372672667
+32
+2187.71808200347
+13
+200.646177778547
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-857.388372672667
+30
+2187.71808200347
+11
+200.646177778547
+21
+-885.950405936048
+31
+2172.46286278326
+12
+635.537064906387
+22
+-885.950405936048
+32
+2172.46286278326
+13
+635.537064906387
+23
+-885.950405936048
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-841.232085183949
+30
+2105.58760417448
+11
+200.646177778547
+21
+-826.585857602691
+31
+2113.41027598642
+12
+97.3015169041444
+22
+-826.585857602691
+32
+2113.41027598642
+13
+97.3015169041444
+23
+-826.585857602691
+33
+2113.41027598642
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-826.585857602691
+30
+2113.41027598642
+11
+97.3015169041444
+21
+-841.232085183949
+31
+2105.58760417448
+12
+200.646177778547
+22
+-841.232085183949
+32
+2105.58760417448
+13
+200.646177778547
+23
+-841.232085183949
+33
+2105.58760417448
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-870.164902816216
+30
+2148.85599236295
+11
+97.3015169041444
+21
+-846.515129009712
+31
+2161.48753300293
+12
+45.3075256523042
+22
+-846.515129009712
+32
+2161.48753300293
+13
+45.3075256523042
+23
+-846.515129009712
+33
+2161.48753300293
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-846.515129009712
+30
+2161.48753300293
+11
+45.3075256523042
+21
+-870.164902816216
+31
+2148.85599236295
+12
+97.3015169041444
+22
+-870.164902816216
+32
+2148.85599236295
+13
+97.3015169041444
+23
+-870.164902816216
+33
+2148.85599236295
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-800.976541741692
+30
+2051.63051316818
+11
+1080.07459980683
+21
+-813.559721794402
+31
+2064.20419739918
+12
+1085.39140477935
+22
+-804.053121118439
+32
+2049.98728656705
+13
+1085.39140477935
+23
+-804.053121118439
+33
+2049.98728656705
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-813.559721794402
+30
+2064.20419739918
+11
+1085.39140477935
+21
+-800.976541741692
+31
+2051.63051316818
+12
+1080.07459980683
+22
+-807.524802178593
+32
+2067.42749809583
+13
+1080.07459980683
+23
+-807.524802178593
+33
+2067.42749809583
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-813.559721794402
+30
+2064.20419739918
+11
+1071.44060782234
+21
+-830.000456589156
+31
+2071.00904401361
+12
+1080.07459980683
+22
+-818.849373078262
+32
+2059.86636441255
+13
+1080.07459980683
+23
+-818.849373078262
+33
+2059.86636441255
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-830.000456589156
+30
+2071.00904401361
+11
+1080.07459980683
+21
+-813.559721794402
+31
+2064.20419739918
+12
+1071.44060782234
+22
+-822.321071889464
+32
+2077.30660248764
+13
+1071.44060782234
+23
+-822.321071889464
+33
+2077.30660248764
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-822.321071889464
+30
+2077.30660248764
+11
+1059.82120360007
+21
+-839.774460224379
+31
+2080.77568156236
+12
+1071.44060782234
+22
+-830.000456589156
+32
+2071.00904401361
+13
+1071.44060782234
+23
+-830.000456589156
+33
+2071.00904401361
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-839.774460224379
+30
+2080.77568156236
+11
+1071.44060782234
+21
+-822.321071889464
+31
+2077.30660248764
+12
+1059.82120360007
+22
+-830.000457268917
+32
+2088.79095329889
+13
+1059.82120360007
+23
+-830.000457268917
+33
+2088.79095329889
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-830.000457268917
+30
+2088.79095329889
+11
+1045.6629890274
+21
+-847.795796257855
+31
+2088.79097239093
+12
+1059.82120360007
+22
+-839.774460224379
+32
+2080.77568156236
+13
+1059.82120360007
+23
+-839.774460224379
+33
+2080.77568156236
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-847.795796257855
+30
+2088.79097239093
+11
+1059.82120360007
+21
+-830.000457268917
+31
+2088.79095329889
+12
+1045.6629890274
+22
+-836.302780549948
+32
+2098.2159382305
+13
+1045.6629890274
+23
+-836.302780549948
+33
+2098.2159382305
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-840.985818079353
+30
+2105.21931717198
+11
+1045.6629890274
+21
+-847.795796257855
+31
+2088.79097239093
+12
+1045.6629890274
+22
+-836.302780549948
+32
+2098.2159382305
+13
+1045.6629890274
+23
+-836.302780549948
+33
+2098.2159382305
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-847.795796257855
+30
+2088.79097239093
+11
+1029.5099682249
+21
+-840.985818079353
+31
+2105.21931717198
+12
+1029.5099682249
+22
+-853.75617245655
+32
+2094.74685660782
+13
+1029.5099682249
+23
+-853.75617245655
+33
+2094.74685660782
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-843.869605331769
+30
+2109.53195716012
+11
+1029.5099682249
+21
+-853.75617245655
+31
+2094.74685660782
+12
+1029.5099682249
+22
+-840.985818079353
+32
+2105.21931717198
+13
+1029.5099682249
+23
+-840.985818079353
+33
+2105.21931717198
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-853.75617245655
+30
+2094.74685660782
+11
+1011.98285238754
+21
+-843.869605331769
+31
+2109.53195716012
+12
+1011.98285238754
+22
+-857.426537426609
+32
+2098.41445544163
+13
+1011.98285238754
+23
+-857.426537426609
+33
+2098.41445544163
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-844.841655162215
+30
+2110.9856361601
+11
+1011.98285238754
+21
+-857.426537426609
+31
+2098.41445544163
+12
+1011.98285238754
+22
+-843.869605331769
+32
+2109.53195716012
+13
+1011.98285238754
+23
+-843.869605331769
+33
+2109.53195716012
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-857.426537426609
+30
+2098.41445544163
+11
+993.755281646067
+21
+-844.841655162215
+31
+2110.9856361601
+12
+993.755281646067
+22
+-858.663722189056
+32
+2099.65070781135
+13
+993.755281646067
+23
+-858.663722189056
+33
+2099.65070781135
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-943.227730171979
+30
+2184.1509849202
+11
+993.755281646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+947.039601646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+947.039601646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+947.039601646067
+21
+-943.227730171979
+31
+2184.1509849202
+12
+993.755281646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+993.755281646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-943.227730171979
+30
+2184.1509849202
+11
+900.323921646066
+21
+-885.950405936049
+31
+2172.46286278326
+12
+900.323921646066
+22
+-910.985237473082
+32
+2151.93279147451
+13
+900.323921646066
+23
+-910.985237473082
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-885.950405936049
+30
+2172.46286278326
+11
+947.039601646067
+21
+-943.227730171979
+31
+2184.1509849202
+12
+947.039601646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+947.039601646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-885.950405936049
+30
+2172.46286278326
+11
+853.608241646067
+21
+-943.227730171979
+31
+2184.1509849202
+12
+900.323921646066
+22
+-910.985237473082
+32
+2151.93279147451
+13
+900.323921646066
+23
+-910.985237473082
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-943.227730171979
+30
+2184.1509849202
+11
+900.323921646066
+21
+-885.950405936049
+31
+2172.46286278326
+12
+853.608241646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+853.608241646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-943.227730171979
+30
+2184.1509849202
+11
+806.892561646067
+21
+-885.950405936049
+31
+2172.46286278326
+12
+806.892561646067
+22
+-910.985237473082
+32
+2151.93279147451
+13
+806.892561646067
+23
+-910.985237473082
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-885.950405936049
+30
+2172.46286278326
+11
+853.608241646067
+21
+-943.227730171979
+31
+2184.1509849202
+12
+853.608241646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+853.608241646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-885.950405936049
+30
+2172.46286278326
+11
+760.176881646066
+21
+-943.227730171979
+31
+2184.1509849202
+12
+806.892561646067
+22
+-910.985237473082
+32
+2151.93279147451
+13
+806.892561646067
+23
+-910.985237473082
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-943.227730171979
+30
+2184.1509849202
+11
+806.892561646067
+21
+-885.950405936049
+31
+2172.46286278326
+12
+760.176881646066
+22
+-911.283169895404
+32
+2210.34745041008
+13
+760.176881646066
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-943.227730171979
+30
+2184.1509849202
+11
+713.461201646067
+21
+-885.950405936049
+31
+2172.46286278326
+12
+713.461201646067
+22
+-910.985237473082
+32
+2151.93279147451
+13
+713.461201646067
+23
+-910.985237473082
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-885.950405936049
+30
+2172.46286278326
+11
+760.176881646066
+21
+-943.227730171979
+31
+2184.1509849202
+12
+760.176881646066
+22
+-911.283169895404
+32
+2210.34745041008
+13
+760.176881646066
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-885.950405936049
+30
+2172.46286278326
+11
+666.745521646067
+21
+-943.227730171979
+31
+2184.1509849202
+12
+713.461201646067
+22
+-910.985237473082
+32
+2151.93279147451
+13
+713.461201646067
+23
+-910.985237473082
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-943.227730171979
+30
+2184.1509849202
+11
+713.461201646067
+21
+-885.950405936049
+31
+2172.46286278326
+12
+666.745521646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+666.745521646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-943.227730171979
+30
+2184.1509849202
+11
+666.745521646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+635.537064906387
+22
+-911.283169895404
+32
+2210.34745041008
+13
+635.537064906387
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+635.537064906387
+21
+-943.227730171979
+31
+2184.1509849202
+12
+666.745521646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+666.745521646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-910.985237473081
+30
+2151.93279147451
+11
+635.537064906387
+21
+-885.950405936048
+31
+2172.46286278326
+12
+200.646177778547
+22
+-885.950405936048
+32
+2172.46286278326
+13
+200.646177778547
+23
+-885.950405936048
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-885.950405936048
+30
+2172.46286278326
+11
+200.646177778547
+21
+-910.985237473081
+31
+2151.93279147451
+12
+635.537064906387
+22
+-910.985237473081
+32
+2151.93279147451
+13
+635.537064906387
+23
+-910.985237473081
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-854.069611027039
+30
+2095.06005895826
+11
+200.646177778547
+21
+-841.232085183949
+31
+2105.58760417448
+12
+97.3015169041444
+22
+-841.232085183949
+32
+2105.58760417448
+13
+97.3015169041444
+23
+-841.232085183949
+33
+2105.58760417448
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-841.232085183949
+30
+2105.58760417448
+11
+97.3015169041444
+21
+-854.069611027039
+31
+2095.06005895826
+12
+200.646177778547
+22
+-854.069611027035
+32
+2095.06005895826
+13
+200.646177778547
+23
+-854.069611027035
+33
+2095.06005895826
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-890.894102928655
+30
+2131.85679842581
+11
+97.3015169041444
+21
+-870.164902816216
+31
+2148.85599236295
+12
+45.3075256523042
+22
+-870.164902816216
+32
+2148.85599236295
+13
+45.3075256523042
+23
+-870.164902816216
+33
+2148.85599236295
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-870.164902816216
+30
+2148.85599236295
+11
+45.3075256523042
+21
+-890.894102928655
+31
+2131.85679842581
+12
+97.3015169041444
+22
+-890.894102928655
+32
+2131.85679842581
+13
+97.3015169041444
+23
+-890.894102928655
+33
+2131.85679842581
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-804.053121118439
+30
+2049.98728656705
+11
+1080.07459980683
+21
+-818.849373078262
+31
+2059.86636441255
+12
+1085.39140477935
+22
+-806.74976549585
+32
+2047.77587558629
+13
+1085.39140477935
+23
+-806.74976549585
+33
+2047.77587558629
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-818.849373078262
+30
+2059.86636441255
+11
+1085.39140477935
+21
+-804.053121118439
+31
+2049.98728656705
+12
+1080.07459980683
+22
+-813.559721794402
+32
+2064.20419739918
+13
+1080.07459980683
+23
+-813.559721794402
+33
+2064.20419739918
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-818.849373078262
+30
+2059.86636441255
+11
+1071.44060782234
+21
+-836.302764738808
+31
+2063.3354468104
+12
+1080.07459980683
+22
+-823.190477697806
+32
+2054.58069962494
+13
+1080.07459980683
+23
+-823.190477697806
+33
+2054.58069962494
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-836.302764738808
+30
+2063.3354468104
+11
+1080.07459980683
+21
+-818.849373078262
+31
+2059.86636441255
+12
+1071.44060782234
+22
+-830.000456589156
+32
+2071.00904401361
+13
+1071.44060782234
+23
+-830.000456589156
+33
+2071.00904401361
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-830.000456589156
+30
+2071.00904401361
+11
+1059.82120360007
+21
+-847.795777151423
+31
+2071.00904469286
+12
+1071.44060782234
+22
+-836.302764738808
+32
+2063.3354468104
+13
+1071.44060782234
+23
+-836.302764738808
+33
+2063.3354468104
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-847.795777151423
+30
+2071.00904469286
+11
+1071.44060782234
+21
+-830.000456589156
+31
+2071.00904401361
+12
+1059.82120360007
+22
+-839.774460224379
+32
+2080.77568156236
+13
+1059.82120360007
+23
+-839.774460224379
+33
+2080.77568156236
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-839.774460224379
+30
+2080.77568156236
+11
+1045.6629890274
+21
+-857.227870491995
+31
+2077.30661828686
+12
+1059.82120360007
+22
+-847.795777151423
+32
+2071.00904469286
+13
+1059.82120360007
+23
+-847.795777151423
+33
+2071.00904469286
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-857.227870491995
+30
+2077.30661828686
+11
+1059.82120360007
+21
+-839.774460224379
+31
+2080.77568156236
+12
+1045.6629890274
+22
+-847.795796257855
+32
+2088.79097239093
+13
+1045.6629890274
+23
+-847.795796257855
+33
+2088.79097239093
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-857.227870491995
+30
+2077.30661828686
+11
+1029.5099682249
+21
+-853.75617245655
+31
+2094.74685660782
+12
+1029.5099682249
+22
+-864.236531445284
+32
+2081.98612648882
+13
+1029.5099682249
+23
+-864.236531445284
+33
+2081.98612648882
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-853.75617245655
+30
+2094.74685660782
+11
+1045.6629890274
+21
+-857.227870491995
+31
+2077.30661828686
+12
+1045.6629890274
+22
+-847.795796257855
+32
+2088.79097239093
+13
+1045.6629890274
+23
+-847.795796257855
+33
+2088.79097239093
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-864.236531445284
+30
+2081.98612648882
+11
+1011.98285238754
+21
+-857.426537426609
+31
+2098.41445544163
+12
+1011.98285238754
+22
+-868.552424065547
+32
+2084.86774040193
+13
+1011.98285238754
+23
+-868.552424065547
+33
+2084.86774040193
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-857.426537426609
+30
+2098.41445544163
+11
+1029.5099682249
+21
+-864.236531445284
+31
+2081.98612648882
+12
+1029.5099682249
+22
+-853.75617245655
+32
+2094.74685660782
+13
+1029.5099682249
+23
+-853.75617245655
+33
+2094.74685660782
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-868.552424065547
+30
+2084.86774040193
+11
+993.755281646067
+21
+-858.663722189056
+31
+2099.65070781135
+12
+993.755281646067
+22
+-870.007199443395
+32
+2085.83905765611
+13
+993.755281646067
+23
+-870.007199443395
+33
+2085.83905765611
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-858.663722189056
+30
+2099.65070781135
+11
+1011.98285238754
+21
+-868.552424065547
+31
+2084.86774040193
+12
+1011.98285238754
+22
+-857.426537426609
+32
+2098.41445544163
+13
+1011.98285238754
+23
+-857.426537426609
+33
+2098.41445544163
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+947.039601646067
+21
+-943.227730171979
+31
+2184.1509849202
+12
+947.039601646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+947.039601646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-943.227730171979
+30
+2184.1509849202
+11
+993.755281646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+993.755281646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+993.755281646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+900.323921646066
+21
+-910.985237473082
+31
+2151.93279147451
+12
+900.323921646066
+22
+-931.530792747493
+32
+2126.91682720423
+13
+900.323921646066
+23
+-931.530792747493
+33
+2126.91682720423
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-910.985237473082
+30
+2151.93279147451
+11
+947.039601646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+947.039601646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+947.039601646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-910.985237473082
+30
+2151.93279147451
+11
+853.608241646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+900.323921646066
+22
+-931.530792747493
+32
+2126.91682720423
+13
+900.323921646066
+23
+-931.530792747493
+33
+2126.91682720423
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+900.323921646066
+21
+-910.985237473082
+31
+2151.93279147451
+12
+853.608241646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+853.608241646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+806.892561646067
+21
+-910.985237473082
+31
+2151.93279147451
+12
+806.892561646067
+22
+-931.530792747493
+32
+2126.91682720423
+13
+806.892561646067
+23
+-931.530792747493
+33
+2126.91682720423
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-910.985237473082
+30
+2151.93279147451
+11
+853.608241646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+853.608241646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+853.608241646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-910.985237473082
+30
+2151.93279147451
+11
+760.176881646066
+21
+-969.443953273309
+31
+2152.23049936285
+12
+806.892561646067
+22
+-931.530792747493
+32
+2126.91682720423
+13
+806.892561646067
+23
+-931.530792747493
+33
+2126.91682720423
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-969.443953273309
+30
+2152.23049936285
+11
+806.892561646067
+21
+-910.985237473082
+31
+2151.93279147451
+12
+760.176881646066
+22
+-943.227730171979
+32
+2184.1509849202
+13
+760.176881646066
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-969.443953273309
+30
+2152.23049936285
+11
+713.461201646067
+21
+-910.985237473082
+31
+2151.93279147451
+12
+713.461201646067
+22
+-931.530792747493
+32
+2126.91682720423
+13
+713.461201646067
+23
+-931.530792747493
+33
+2126.91682720423
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-910.985237473082
+30
+2151.93279147451
+11
+760.176881646066
+21
+-969.443953273309
+31
+2152.23049936285
+12
+760.176881646066
+22
+-943.227730171979
+32
+2184.1509849202
+13
+760.176881646066
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-910.985237473082
+30
+2151.93279147451
+11
+666.745521646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+713.461201646067
+22
+-931.530792747493
+32
+2126.91682720423
+13
+713.461201646067
+23
+-931.530792747493
+33
+2126.91682720423
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+713.461201646067
+21
+-910.985237473082
+31
+2151.93279147451
+12
+666.745521646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+666.745521646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+635.537064906387
+21
+-943.227730171979
+31
+2184.1509849202
+12
+635.537064906387
+22
+-969.443953273309
+32
+2152.23049936285
+13
+635.537064906387
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-943.227730171979
+30
+2184.1509849202
+11
+666.745521646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+666.745521646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+666.745521646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-931.530792747491
+30
+2126.91682720422
+11
+200.646177778547
+21
+-910.985237473081
+31
+2151.93279147451
+12
+200.646177778547
+22
+-931.530792747491
+32
+2126.91682720422
+13
+200.646177778547
+23
+-931.530792747491
+33
+2126.91682720422
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-910.985237473081
+30
+2151.93279147451
+11
+635.537064906387
+21
+-931.530792747491
+31
+2126.91682720422
+12
+635.537064906387
+22
+-910.985237473081
+32
+2151.93279147451
+13
+635.537064906387
+23
+-910.985237473081
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-864.605096213174
+30
+2082.23220799651
+11
+97.3015169041444
+21
+-854.069611027039
+31
+2095.06005895826
+12
+97.3015169041444
+22
+-864.605096213174
+32
+2082.23220799651
+13
+97.3015169041444
+23
+-864.605096213174
+33
+2082.23220799651
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-854.069611027039
+30
+2095.06005895826
+11
+200.646177778547
+21
+-864.605096213174
+31
+2082.23220799651
+12
+200.646177778547
+22
+-854.069611027035
+32
+2095.06005895826
+13
+200.646177778547
+23
+-854.069611027035
+33
+2095.06005895826
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-907.906117811778
+30
+2111.14322068125
+11
+45.3075256523042
+21
+-890.894102928655
+31
+2131.85679842581
+12
+45.3075256523042
+22
+-907.906117811778
+32
+2111.14322068125
+13
+45.3075256523042
+23
+-907.906117811778
+33
+2111.14322068125
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-890.894102928655
+30
+2131.85679842581
+11
+97.3015169041444
+21
+-907.906117811778
+31
+2111.14322068125
+12
+97.3015169041444
+22
+-890.894102928655
+32
+2131.85679842581
+13
+97.3015169041444
+23
+-890.894102928655
+33
+2131.85679842581
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-806.74976549585
+30
+2047.77587558629
+11
+1080.07459980683
+21
+-823.190477697806
+31
+2054.58069962494
+12
+1085.39140477935
+22
+-808.9628443428
+32
+2045.0812635097
+13
+1085.39140477935
+23
+-808.9628443428
+33
+2045.0812635097
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-823.190477697806
+30
+2054.58069962494
+11
+1085.39140477935
+21
+-806.74976549585
+31
+2047.77587558629
+12
+1080.07459980683
+22
+-818.849373078262
+32
+2059.86636441255
+13
+1080.07459980683
+23
+-818.849373078262
+33
+2059.86636441255
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-823.190477697806
+30
+2054.58069962494
+11
+1071.44060782234
+21
+-840.985802170601
+31
+2054.58070291515
+12
+1080.07459980683
+22
+-826.416209437024
+32
+2048.55032816988
+13
+1080.07459980683
+23
+-826.416209437024
+33
+2048.55032816988
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-840.985802170601
+30
+2054.58070291515
+11
+1080.07459980683
+21
+-823.190477697806
+31
+2054.58069962494
+12
+1071.44060782234
+22
+-836.302764738808
+32
+2063.3354468104
+13
+1071.44060782234
+23
+-836.302764738808
+33
+2063.3354468104
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-836.302764738808
+30
+2063.3354468104
+11
+1059.82120360007
+21
+-853.75615333895
+31
+2059.86636906807
+12
+1071.44060782234
+22
+-840.985802170601
+32
+2054.58070291515
+13
+1071.44060782234
+23
+-840.985802170601
+33
+2054.58070291515
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-853.75615333895
+30
+2059.86636906807
+11
+1071.44060782234
+21
+-836.302764738808
+31
+2063.3354468104
+12
+1059.82120360007
+22
+-847.795777151423
+32
+2071.00904469286
+13
+1059.82120360007
+23
+-847.795777151423
+33
+2071.00904469286
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-853.75615333895
+30
+2059.86636906807
+11
+1045.6629890274
+21
+-857.227870491995
+31
+2077.30661828686
+12
+1045.6629890274
+22
+-864.23653392912
+32
+2064.20421320603
+13
+1045.6629890274
+23
+-864.23653392912
+33
+2064.20421320603
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-857.227870491995
+30
+2077.30661828686
+11
+1059.82120360007
+21
+-853.75615333895
+31
+2059.86636906807
+12
+1059.82120360007
+22
+-847.795777151423
+32
+2071.00904469286
+13
+1059.82120360007
+23
+-847.795777151423
+33
+2071.00904469286
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-864.23653392912
+30
+2064.20421320603
+11
+1029.5099682249
+21
+-864.236531445284
+31
+2081.98612648882
+12
+1029.5099682249
+22
+-872.024140727066
+32
+2067.42751451714
+13
+1029.5099682249
+23
+-872.024140727066
+33
+2067.42751451714
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-864.236531445284
+30
+2081.98612648882
+11
+1045.6629890274
+21
+-864.23653392912
+31
+2064.20421320603
+12
+1045.6629890274
+22
+-857.227870491995
+32
+2077.30661828686
+13
+1045.6629890274
+23
+-857.227870491995
+33
+2077.30661828686
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-872.024140727066
+30
+2067.42751451714
+11
+1011.98285238754
+21
+-868.552424065547
+31
+2084.86774040193
+12
+1011.98285238754
+22
+-876.819703664523
+32
+2069.41240470289
+13
+1011.98285238754
+23
+-876.819703664523
+33
+2069.41240470289
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-868.552424065547
+30
+2084.86774040193
+11
+1029.5099682249
+21
+-872.024140727066
+31
+2067.42751451714
+12
+1029.5099682249
+22
+-864.236531445284
+32
+2081.98612648882
+13
+1029.5099682249
+23
+-864.236531445284
+33
+2081.98612648882
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-876.819703664523
+30
+2069.41240470289
+11
+993.755281646067
+21
+-870.007199443395
+31
+2085.83905765611
+12
+993.755281646067
+22
+-878.436163455843
+32
+2070.08145966418
+13
+993.755281646067
+23
+-878.436163455843
+33
+2070.08145966418
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-870.007199443395
+30
+2085.83905765611
+11
+1011.98285238754
+21
+-876.819703664523
+31
+2069.41240470289
+12
+1011.98285238754
+22
+-868.552424065547
+32
+2084.86774040193
+13
+1011.98285238754
+23
+-868.552424065547
+33
+2084.86774040193
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+947.039601646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+947.039601646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+947.039601646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+993.755281646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+993.755281646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+993.755281646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+900.323921646066
+21
+-931.530792747493
+31
+2126.91682720423
+12
+900.323921646066
+22
+-946.797517592165
+32
+2098.3763194502
+13
+900.323921646066
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-931.530792747493
+30
+2126.91682720423
+11
+947.039601646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+947.039601646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+947.039601646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-931.530792747493
+30
+2126.91682720423
+11
+853.608241646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+900.323921646066
+22
+-946.797517592165
+32
+2098.3763194502
+13
+900.323921646066
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+900.323921646066
+21
+-931.530792747493
+31
+2126.91682720423
+12
+853.608241646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+853.608241646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+806.892561646067
+21
+-931.530792747493
+31
+2126.91682720423
+12
+806.892561646067
+22
+-946.797517592165
+32
+2098.3763194502
+13
+806.892561646067
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-931.530792747493
+30
+2126.91682720423
+11
+853.608241646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+853.608241646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+853.608241646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-931.530792747493
+30
+2126.91682720423
+11
+760.176881646066
+21
+-988.924364447842
+31
+2115.81268009677
+12
+806.892561646067
+22
+-946.797517592165
+32
+2098.3763194502
+13
+806.892561646067
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-988.924364447842
+30
+2115.81268009677
+11
+806.892561646067
+21
+-931.530792747493
+31
+2126.91682720423
+12
+760.176881646066
+22
+-969.443953273309
+32
+2152.23049936285
+13
+760.176881646066
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-988.924364447842
+30
+2115.81268009677
+11
+713.461201646067
+21
+-931.530792747493
+31
+2126.91682720423
+12
+713.461201646067
+22
+-946.797517592165
+32
+2098.3763194502
+13
+713.461201646067
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-931.530792747493
+30
+2126.91682720423
+11
+760.176881646066
+21
+-988.924364447842
+31
+2115.81268009677
+12
+760.176881646066
+22
+-969.443953273309
+32
+2152.23049936285
+13
+760.176881646066
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-931.530792747493
+30
+2126.91682720423
+11
+666.745521646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+713.461201646067
+22
+-946.797517592165
+32
+2098.3763194502
+13
+713.461201646067
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+713.461201646067
+21
+-931.530792747493
+31
+2126.91682720423
+12
+666.745521646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+666.745521646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+635.537064906387
+21
+-969.443953273309
+31
+2152.23049936285
+12
+635.537064906387
+22
+-988.924364447842
+32
+2115.81268009677
+13
+635.537064906387
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-969.443953273309
+30
+2152.23049936285
+11
+666.745521646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+666.745521646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+666.745521646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-946.797517592165
+30
+2098.3763194502
+11
+200.646177778547
+21
+-931.530792747491
+31
+2126.91682720422
+12
+200.646177778547
+22
+-946.797517592165
+32
+2098.3763194502
+13
+200.646177778547
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-931.530792747491
+30
+2126.91682720422
+11
+635.537064906387
+21
+-946.797517592165
+31
+2098.3763194502
+12
+635.537064906387
+22
+-931.530792747491
+32
+2126.91682720422
+13
+635.537064906387
+23
+-931.530792747491
+33
+2126.91682720422
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-872.433667955026
+30
+2067.59701840775
+11
+97.3015169041444
+21
+-864.605096213174
+31
+2082.23220799651
+12
+97.3015169041444
+22
+-872.433667955028
+32
+2067.59701840775
+13
+97.3015169041444
+23
+-872.433667955028
+33
+2067.59701840775
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-864.605096213174
+30
+2082.23220799651
+11
+200.646177778547
+21
+-872.433667955026
+31
+2067.59701840775
+12
+200.646177778547
+22
+-864.605096213174
+32
+2082.23220799651
+13
+200.646177778547
+23
+-864.605096213174
+33
+2082.23220799651
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-920.547185274073
+30
+2087.51127030568
+11
+45.3075256523042
+21
+-907.906117811778
+31
+2111.14322068125
+12
+45.3075256523042
+22
+-920.547185274073
+32
+2087.51127030568
+13
+45.3075256523042
+23
+-920.547185274073
+33
+2087.51127030568
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-907.906117811778
+30
+2111.14322068125
+11
+97.3015169041444
+21
+-920.547185274073
+31
+2087.51127030568
+12
+97.3015169041444
+22
+-907.906117811778
+32
+2111.14322068125
+13
+97.3015169041444
+23
+-907.906117811778
+33
+2111.14322068125
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-808.9628443428
+30
+2045.0812635097
+11
+1080.07459980683
+21
+-826.416209437024
+31
+2048.55032816988
+12
+1085.39140477935
+22
+-810.607310280307
+32
+2042.00700276824
+13
+1085.39140477935
+23
+-810.607310280307
+33
+2042.00700276824
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-826.416209437024
+30
+2048.55032816988
+11
+1085.39140477935
+21
+-808.9628443428
+31
+2045.0812635097
+12
+1080.07459980683
+22
+-823.190477697806
+32
+2054.58069962494
+13
+1080.07459980683
+23
+-823.190477697806
+33
+2054.58069962494
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-826.416209437024
+30
+2048.55032816988
+11
+1071.44060782234
+21
+-843.869602382313
+31
+2045.08125222601
+12
+1080.07459980683
+22
+-828.402605234187
+32
+2042.00699384053
+13
+1080.07459980683
+23
+-828.402605234187
+33
+2042.00699384053
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-843.869602382313
+30
+2045.08125222601
+11
+1080.07459980683
+21
+-826.416209437024
+31
+2048.55032816988
+12
+1071.44060782234
+22
+-840.985802170601
+32
+2054.58070291515
+13
+1071.44060782234
+23
+-840.985802170601
+33
+2054.58070291515
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-840.985802170601
+30
+2054.58070291515
+11
+1059.82120360007
+21
+-857.426534872689
+31
+2047.77586146339
+12
+1071.44060782234
+22
+-843.869602382313
+32
+2045.08125222601
+13
+1071.44060782234
+23
+-843.869602382313
+33
+2045.08125222601
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-857.426534872689
+30
+2047.77586146339
+11
+1071.44060782234
+21
+-840.985802170601
+31
+2054.58070291515
+12
+1059.82120360007
+22
+-853.75615333895
+32
+2059.86636906807
+13
+1059.82120360007
+23
+-853.75615333895
+33
+2059.86636906807
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-857.426534872689
+30
+2047.77586146339
+11
+1045.6629890274
+21
+-864.23653392912
+31
+2064.20421320603
+12
+1045.6629890274
+22
+-868.552447563839
+32
+2049.98727522776
+13
+1045.6629890274
+23
+-868.552447563839
+33
+2049.98727522776
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-864.23653392912
+30
+2064.20421320603
+11
+1059.82120360007
+21
+-857.426534872689
+31
+2047.77586146339
+12
+1059.82120360007
+22
+-853.75615333895
+32
+2059.86636906807
+13
+1059.82120360007
+23
+-853.75615333895
+33
+2059.86636906807
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-868.552447563839
+30
+2049.98727522776
+11
+1029.5099682249
+21
+-872.024140727066
+31
+2067.42751451714
+12
+1029.5099682249
+22
+-876.819726844542
+32
+2051.63049998629
+13
+1029.5099682249
+23
+-876.819726844542
+33
+2051.63049998629
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-872.024140727066
+30
+2067.42751451714
+11
+1045.6629890274
+21
+-868.552447563839
+31
+2049.98727522776
+12
+1045.6629890274
+22
+-864.23653392912
+32
+2064.20421320603
+13
+1045.6629890274
+23
+-864.23653392912
+33
+2064.20421320603
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-876.819726844542
+30
+2051.63049998629
+11
+1011.98285238754
+21
+-876.819703664523
+31
+2069.41240470289
+12
+1011.98285238754
+22
+-881.910669304885
+32
+2052.64238822799
+13
+1011.98285238754
+23
+-881.910669304885
+33
+2052.64238822799
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-876.819703664523
+30
+2069.41240470289
+11
+1029.5099682249
+21
+-876.819726844542
+31
+2051.63049998629
+12
+1029.5099682249
+22
+-872.024140727066
+32
+2067.42751451714
+13
+1029.5099682249
+23
+-872.024140727066
+33
+2067.42751451714
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-881.910669304885
+30
+2052.64238822799
+11
+993.755281646067
+21
+-878.436163455843
+31
+2070.08145966418
+12
+993.755281646067
+22
+-883.626693866424
+32
+2052.98346948944
+13
+993.755281646067
+23
+-883.626693866424
+33
+2052.98346948944
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-878.436163455843
+30
+2070.08145966418
+11
+1011.98285238754
+21
+-881.910669304885
+31
+2052.64238822799
+12
+1011.98285238754
+22
+-876.819703664523
+32
+2069.41240470289
+13
+1011.98285238754
+23
+-876.819703664523
+33
+2069.41240470289
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+947.039601646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+947.039601646067
+22
+-1000.92034241888
+32
+2076.297043493
+13
+947.039601646067
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+993.755281646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+993.755281646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+993.755281646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+900.323921646066
+21
+-946.797517592165
+31
+2098.3763194502
+12
+900.323921646066
+22
+-956.198720333
+32
+2067.40806391972
+13
+900.323921646066
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-946.797517592165
+30
+2098.3763194502
+11
+947.039601646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+947.039601646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+947.039601646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-946.797517592165
+30
+2098.3763194502
+11
+853.608241646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+900.323921646066
+22
+-956.198720333
+32
+2067.40806391972
+13
+900.323921646066
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+900.323921646066
+21
+-946.797517592165
+31
+2098.3763194502
+12
+853.608241646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+853.608241646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+806.892561646067
+21
+-946.797517592165
+31
+2098.3763194502
+12
+806.892561646067
+22
+-956.198720333
+32
+2067.40806391972
+13
+806.892561646067
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-946.797517592165
+30
+2098.3763194502
+11
+853.608241646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+853.608241646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+853.608241646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-946.797517592165
+30
+2098.3763194502
+11
+760.176881646066
+21
+-1000.92034241888
+31
+2076.297043493
+12
+806.892561646067
+22
+-956.198720333
+32
+2067.40806391972
+13
+806.892561646067
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-1000.92034241888
+30
+2076.297043493
+11
+806.892561646067
+21
+-946.797517592165
+31
+2098.3763194502
+12
+760.176881646066
+22
+-988.924364447842
+32
+2115.81268009677
+13
+760.176881646066
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-1000.92034241888
+30
+2076.297043493
+11
+713.461201646067
+21
+-946.797517592165
+31
+2098.3763194502
+12
+713.461201646067
+22
+-956.198720333
+32
+2067.40806391972
+13
+713.461201646067
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-946.797517592165
+30
+2098.3763194502
+11
+760.176881646066
+21
+-1000.92034241888
+31
+2076.297043493
+12
+760.176881646066
+22
+-988.924364447842
+32
+2115.81268009677
+13
+760.176881646066
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-946.797517592165
+30
+2098.3763194502
+11
+666.745521646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+713.461201646067
+22
+-956.198720333
+32
+2067.40806391972
+13
+713.461201646067
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+713.461201646067
+21
+-946.797517592165
+31
+2098.3763194502
+12
+666.745521646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+666.745521646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+635.537064906387
+21
+-988.924364447842
+31
+2115.81268009677
+12
+635.537064906387
+22
+-1000.92034241888
+32
+2076.297043493
+13
+635.537064906387
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-988.924364447842
+30
+2115.81268009677
+11
+666.745521646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+666.745521646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+666.745521646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-956.198720333
+30
+2067.40806391972
+11
+200.646177778547
+21
+-946.797517592165
+31
+2098.3763194502
+12
+200.646177778547
+22
+-956.198720333
+32
+2067.40806391972
+13
+200.646177778547
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-946.797517592165
+30
+2098.3763194502
+11
+635.537064906387
+21
+-956.198720333
+31
+2067.40806391972
+12
+635.537064906387
+22
+-946.797517592165
+32
+2098.3763194502
+13
+635.537064906387
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-877.254478630867
+30
+2051.71691232036
+11
+97.3015169041444
+21
+-872.433667955028
+31
+2067.59701840775
+12
+97.3015169041444
+22
+-877.254478630867
+32
+2051.71691232036
+13
+97.3015169041444
+23
+-877.254478630867
+33
+2051.71691232036
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-872.433667955028
+30
+2067.59701840775
+11
+200.646177778547
+21
+-877.254478630867
+31
+2051.71691232036
+12
+200.646177778547
+22
+-872.433667955026
+32
+2067.59701840775
+13
+200.646177778547
+23
+-872.433667955026
+33
+2067.59701840775
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-928.331516182155
+30
+2061.8691098991
+11
+45.3075256523042
+21
+-920.547185274073
+31
+2087.51127030568
+12
+45.3075256523042
+22
+-928.331516182155
+32
+2061.8691098991
+13
+45.3075256523042
+23
+-928.331516182155
+33
+2061.8691098991
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-920.547185274073
+30
+2087.51127030568
+11
+97.3015169041444
+21
+-928.331516182155
+31
+2061.8691098991
+12
+97.3015169041444
+22
+-920.547185274073
+32
+2087.51127030568
+13
+97.3015169041444
+23
+-920.547185274073
+33
+2087.51127030568
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-810.607310280307
+30
+2042.00700276824
+11
+1080.07459980683
+21
+-828.402605234187
+31
+2042.00699384053
+12
+1085.39140477935
+22
+-811.619967404623
+32
+2038.67123547813
+13
+1085.39140477935
+23
+-811.619967404623
+33
+2038.67123547813
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-828.402605234187
+30
+2042.00699384053
+11
+1085.39140477935
+21
+-810.607310280307
+31
+2042.00700276824
+12
+1080.07459980683
+22
+-826.416209437024
+32
+2048.55032816988
+13
+1080.07459980683
+23
+-826.416209437024
+33
+2048.55032816988
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-828.402605234187
+30
+2042.00699384053
+11
+1071.44060782234
+21
+-844.843342549059
+31
+2035.20215330562
+12
+1080.07459980683
+22
+-829.073329012799
+32
+2035.20215330562
+13
+1080.07459980683
+23
+-829.073329012799
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-844.843342549059
+30
+2035.20215330562
+11
+1080.07459980683
+21
+-828.402605234187
+31
+2042.00699384053
+12
+1071.44060782234
+22
+-843.869602382313
+32
+2045.08125222601
+13
+1071.44060782234
+23
+-843.869602382313
+33
+2045.08125222601
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1071.44060782234
+20
+-843.869602382313
+30
+2045.08125222601
+11
+1059.82120360007
+21
+-858.665871048675
+31
+2035.20215330562
+12
+1071.44060782234
+22
+-844.843342549059
+32
+2035.20215330562
+13
+1071.44060782234
+23
+-844.843342549059
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-858.665871048675
+30
+2035.20215330562
+11
+1071.44060782234
+21
+-843.869602382313
+31
+2045.08125222601
+12
+1059.82120360007
+22
+-857.426534872689
+32
+2047.77586146339
+13
+1059.82120360007
+23
+-857.426534872689
+33
+2047.77586146339
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1059.82120360007
+20
+-858.665871048675
+30
+2035.20215330562
+11
+1045.6629890274
+21
+-868.552447563839
+31
+2049.98727522776
+12
+1045.6629890274
+22
+-870.009753255569
+32
+2035.20215330562
+13
+1045.6629890274
+23
+-870.009753255569
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-868.552447563839
+30
+2049.98727522776
+11
+1059.82120360007
+21
+-858.665871048675
+31
+2035.20215330562
+12
+1059.82120360007
+22
+-857.426534872689
+32
+2047.77586146339
+13
+1059.82120360007
+23
+-857.426534872689
+33
+2047.77586146339
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1045.6629890274
+20
+-870.009753255569
+30
+2035.20215330562
+11
+1029.5099682249
+21
+-876.819726844542
+31
+2051.63049998629
+12
+1029.5099682249
+22
+-878.438998112613
+32
+2035.20215330562
+13
+1029.5099682249
+23
+-878.438998112613
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-876.819726844542
+30
+2051.63049998629
+11
+1045.6629890274
+21
+-870.009753255569
+31
+2035.20215330562
+12
+1045.6629890274
+22
+-868.552447563839
+32
+2049.98727522776
+13
+1045.6629890274
+23
+-868.552447563839
+33
+2049.98727522776
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1029.5099682249
+20
+-878.438998112613
+30
+2035.20215330562
+11
+1011.98285238754
+21
+-881.910669304885
+31
+2052.64238822799
+12
+1011.98285238754
+22
+-883.629678032126
+32
+2035.20215330562
+13
+1011.98285238754
+23
+-883.629678032126
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-881.910669304885
+30
+2052.64238822799
+11
+1029.5099682249
+21
+-878.438998112613
+31
+2035.20215330562
+12
+1029.5099682249
+22
+-876.819726844542
+32
+2051.63049998629
+13
+1029.5099682249
+23
+-876.819726844542
+33
+2051.63049998629
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1011.98285238754
+20
+-883.629678032126
+30
+2035.20215330562
+11
+993.755281646067
+21
+-883.626693866424
+31
+2052.98346948944
+12
+993.755281646067
+22
+-885.379321502337
+32
+2035.20215330562
+13
+993.755281646067
+23
+-885.379321502337
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-883.626693866424
+30
+2052.98346948944
+11
+1011.98285238754
+21
+-883.629678032126
+31
+2035.20215330562
+12
+1011.98285238754
+22
+-881.910669304885
+32
+2052.64238822799
+13
+1011.98285238754
+23
+-881.910669304885
+33
+2052.64238822799
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-1004.97088848041
+30
+2035.20215330562
+11
+947.039601646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+947.039601646067
+22
+-1004.97088848041
+32
+2035.20215330562
+13
+947.039601646067
+23
+-1004.97088848041
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+993.755281646067
+21
+-1004.97088848041
+31
+2035.20215330562
+12
+993.755281646067
+22
+-1000.92034241888
+32
+2076.297043493
+13
+993.755281646067
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+947.039601646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+900.323921646066
+21
+-959.37311802092
+31
+2035.20215330562
+12
+947.039601646067
+22
+-1004.97088848041
+32
+2035.20215330562
+13
+947.039601646067
+23
+-1004.97088848041
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-959.37311802092
+30
+2035.20215330562
+11
+947.039601646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+900.323921646066
+22
+-956.198720333
+32
+2067.40806391972
+13
+900.323921646066
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+900.323921646066
+20
+-956.198720333
+30
+2067.40806391972
+11
+853.608241646067
+21
+-1004.97088848041
+31
+2035.20215330562
+12
+900.323921646066
+22
+-959.37311802092
+32
+2035.20215330562
+13
+900.323921646066
+23
+-959.37311802092
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-1004.97088848041
+30
+2035.20215330562
+11
+900.323921646066
+21
+-956.198720333
+31
+2067.40806391972
+12
+853.608241646067
+22
+-1000.92034241888
+32
+2076.297043493
+13
+853.608241646067
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+853.608241646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+806.892561646067
+21
+-959.37311802092
+31
+2035.20215330562
+12
+853.608241646067
+22
+-1004.97088848041
+32
+2035.20215330562
+13
+853.608241646067
+23
+-1004.97088848041
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-959.37311802092
+30
+2035.20215330562
+11
+853.608241646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+806.892561646067
+22
+-956.198720333
+32
+2067.40806391972
+13
+806.892561646067
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+806.892561646067
+20
+-956.198720333
+30
+2067.40806391972
+11
+760.176881646066
+21
+-1004.97088848041
+31
+2035.20215330562
+12
+806.892561646067
+22
+-959.37311802092
+32
+2035.20215330562
+13
+806.892561646067
+23
+-959.37311802092
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-1004.97088848041
+30
+2035.20215330562
+11
+806.892561646067
+21
+-956.198720333
+31
+2067.40806391972
+12
+760.176881646066
+22
+-1000.92034241888
+32
+2076.297043493
+13
+760.176881646066
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+760.176881646066
+20
+-1000.92034241888
+30
+2076.297043493
+11
+713.461201646067
+21
+-959.37311802092
+31
+2035.20215330562
+12
+760.176881646066
+22
+-1004.97088848041
+32
+2035.20215330562
+13
+760.176881646066
+23
+-1004.97088848041
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-959.37311802092
+30
+2035.20215330562
+11
+760.176881646066
+21
+-1000.92034241888
+31
+2076.297043493
+12
+713.461201646067
+22
+-956.198720333
+32
+2067.40806391972
+13
+713.461201646067
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+713.461201646067
+20
+-956.198720333
+30
+2067.40806391972
+11
+666.745521646067
+21
+-1004.97088848041
+31
+2035.20215330562
+12
+713.461201646067
+22
+-959.37311802092
+32
+2035.20215330562
+13
+713.461201646067
+23
+-959.37311802092
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-1004.97088848041
+30
+2035.20215330562
+11
+713.461201646067
+21
+-956.198720333
+31
+2067.40806391972
+12
+666.745521646067
+22
+-1000.92034241888
+32
+2076.297043493
+13
+666.745521646067
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+666.745521646067
+20
+-1004.97088848041
+30
+2035.20215330562
+11
+635.537064906387
+21
+-1000.92034241888
+31
+2076.297043493
+12
+635.537064906387
+22
+-1004.97088848041
+32
+2035.20215330562
+13
+635.537064906387
+23
+-1004.97088848041
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-1000.92034241888
+30
+2076.297043493
+11
+666.745521646067
+21
+-1004.97088848041
+31
+2035.20215330562
+12
+666.745521646067
+22
+-1000.92034241888
+32
+2076.297043493
+13
+666.745521646067
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-959.37311802092
+30
+2035.20215330562
+11
+200.646177778547
+21
+-956.198720333
+31
+2067.40806391972
+12
+200.646177778547
+22
+-959.37311802092
+32
+2035.20215330562
+13
+200.646177778547
+23
+-959.37311802092
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-956.198720333
+30
+2067.40806391972
+11
+635.537064906387
+21
+-959.37311802092
+31
+2035.20215330562
+12
+635.537064906387
+22
+-956.198720333
+32
+2067.40806391972
+13
+635.537064906387
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-878.882267189965
+30
+2035.20215330562
+11
+97.3015169041444
+21
+-877.254478630867
+31
+2051.71691232036
+12
+97.3015169041444
+22
+-878.882267189966
+32
+2035.20215330562
+13
+97.3015169041444
+23
+-878.882267189966
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-877.254478630867
+30
+2051.71691232036
+11
+200.646177778547
+21
+-878.882267189965
+31
+2035.20215330562
+12
+200.646177778547
+22
+-877.254478630867
+32
+2051.71691232036
+13
+200.646177778547
+23
+-877.254478630867
+33
+2051.71691232036
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-930.959963064732
+30
+2035.20215330562
+11
+45.3075256523042
+21
+-928.331516182155
+31
+2061.8691098991
+12
+45.3075256523042
+22
+-930.959963064732
+32
+2035.20215330562
+13
+45.3075256523042
+23
+-930.959963064732
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-928.331516182155
+30
+2061.8691098991
+11
+97.3015169041444
+21
+-930.959963064732
+31
+2035.20215330562
+12
+97.3015169041444
+22
+-928.331516182155
+32
+2061.8691098991
+13
+97.3015169041444
+23
+-928.331516182155
+33
+2061.8691098991
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-811.619967404623
+30
+2038.67123547813
+11
+1080.07459980683
+21
+-829.073329012799
+31
+2035.20215330562
+12
+1085.39140477935
+22
+-811.96189987036
+32
+2035.20215330562
+13
+1085.39140477935
+23
+-811.96189987036
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1080.07459980683
+20
+-829.073329012799
+30
+2035.20215330562
+11
+1085.39140477935
+21
+-811.619967404623
+31
+2038.67123547813
+12
+1080.07459980683
+22
+-828.402605234187
+32
+2042.00699384053
+13
+1080.07459980683
+23
+-828.402605234187
+33
+2042.00699384053
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-835.292444325637
+30
+2241.80011766922
+11
+635.537064906387
+21
+-794.16656
+31
+2200.28420494853
+12
+635.537064906387
+22
+-826.396760603478
+32
+2197.11219961575
+13
+635.537064906387
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-794.16656
+30
+2200.28420494853
+11
+635.537064906387
+21
+-835.292444325637
+31
+2241.80011766922
+12
+635.537064906387
+22
+-794.16656
+32
+2245.84761107459
+13
+635.537064906387
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-794.16656
+30
+2052.98408188445
+11
+1085.39140477935
+21
+-797.638258585694
+31
+2052.64240711292
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-797.638258585694
+30
+2052.64240711292
+11
+1085.39140477935
+21
+-800.976541741692
+31
+2051.63051316818
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-800.976541741692
+30
+2051.63051316818
+11
+1085.39140477935
+21
+-804.053121118439
+31
+2049.98728656705
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-804.053121118439
+30
+2049.98728656705
+11
+1085.39140477935
+21
+-806.74976549585
+31
+2047.77587558629
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-806.74976549585
+30
+2047.77587558629
+11
+1085.39140477935
+21
+-808.9628443428
+31
+2045.0812635097
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-808.9628443428
+30
+2045.0812635097
+11
+1085.39140477935
+21
+-810.607310280307
+31
+2042.00700276824
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-810.607310280307
+30
+2042.00700276824
+11
+1085.39140477935
+21
+-811.619967404623
+31
+2038.67123547813
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+1085.39140477935
+20
+-811.619967404623
+30
+2038.67123547813
+11
+1085.39140477935
+21
+-811.96189987036
+31
+2035.20215330562
+12
+1087.18664164607
+22
+-794.16656
+32
+2035.20215330562
+13
+1087.18664164607
+23
+-794.16656
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-883.626693866424
+30
+2052.98346948944
+11
+993.755281646067
+21
+-1004.97088848041
+31
+2035.20215330562
+12
+993.755281646067
+22
+-885.379321502337
+32
+2035.20215330562
+13
+993.755281646067
+23
+-885.379321502337
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-1004.97088848041
+30
+2035.20215330562
+11
+993.755281646067
+21
+-883.626693866424
+31
+2052.98346948944
+12
+993.755281646067
+22
+-1000.92034241888
+32
+2076.297043493
+13
+993.755281646067
+23
+-1000.92034241888
+33
+2076.297043493
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-872.433667955028
+30
+2067.59701840775
+11
+97.3015169041444
+21
+-928.331516182155
+31
+2061.8691098991
+12
+97.3015169041444
+22
+-877.254478630867
+32
+2051.71691232036
+13
+97.3015169041444
+23
+-877.254478630867
+33
+2051.71691232036
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-928.331516182155
+30
+2061.8691098991
+11
+97.3015169041444
+21
+-872.433667955028
+31
+2067.59701840775
+12
+97.3015169041444
+22
+-920.547185274073
+32
+2087.51127030568
+13
+97.3015169041444
+23
+-920.547185274073
+33
+2087.51127030568
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-920.547185274073
+30
+2087.51127030568
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-928.331516182155
+32
+2061.8691098991
+13
+45.3075256523042
+23
+-928.331516182155
+33
+2061.8691098991
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-826.396760603478
+30
+2197.11219961575
+11
+200.646177778547
+21
+-794.16656
+31
+2119.85401529483
+12
+200.646177778547
+22
+-810.693774595514
+32
+2118.22745350336
+13
+200.646177778547
+23
+-810.693774595514
+33
+2118.22745350336
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-794.16656
+30
+2119.85401529483
+11
+200.646177778547
+21
+-826.396760603478
+31
+2197.11219961575
+12
+200.646177778547
+22
+-794.16656
+32
+2200.28420494853
+13
+200.646177778547
+23
+-794.16656
+33
+2200.28420494853
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-928.331516182155
+30
+2061.8691098991
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-930.959963064732
+32
+2035.20215330562
+13
+45.3075256523042
+23
+-930.959963064732
+33
+2035.20215330562
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-794.16656
+30
+2171.89246330095
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-820.853629053581
+32
+2169.2659973228
+13
+45.3075256523042
+23
+-820.853629053581
+33
+2169.2659973228
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-907.906117811778
+30
+2111.14322068125
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-920.547185274073
+32
+2087.51127030568
+13
+45.3075256523042
+23
+-920.547185274073
+33
+2087.51127030568
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-890.894102928655
+30
+2131.85679842581
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-907.906117811778
+32
+2111.14322068125
+13
+45.3075256523042
+23
+-907.906117811778
+33
+2111.14322068125
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-870.164902816216
+30
+2148.85599236295
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-890.894102928655
+32
+2131.85679842581
+13
+45.3075256523042
+23
+-890.894102928655
+33
+2131.85679842581
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-846.515129009712
+30
+2161.48753300293
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-870.164902816216
+32
+2148.85599236295
+13
+45.3075256523042
+23
+-870.164902816216
+33
+2148.85599236295
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+45.3075256523042
+20
+-820.853629053581
+30
+2169.2659973228
+11
+45.3075256523042
+21
+-794.16656
+31
+2035.20215330562
+12
+45.3075256523042
+22
+-846.515129009712
+32
+2161.48753300293
+13
+45.3075256523042
+23
+-846.515129009712
+33
+2161.48753300293
+70
+0
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-956.198720333
+30
+2067.40806391972
+11
+200.646177778547
+21
+-878.882267189965
+31
+2035.20215330562
+12
+200.646177778547
+22
+-959.37311802092
+32
+2035.20215330562
+13
+200.646177778547
+23
+-959.37311802092
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-878.882267189965
+30
+2035.20215330562
+11
+200.646177778547
+21
+-956.198720333
+31
+2067.40806391972
+12
+200.646177778547
+22
+-877.254478630867
+32
+2051.71691232036
+13
+200.646177778547
+23
+-877.254478630867
+33
+2051.71691232036
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-956.198720333
+30
+2067.40806391972
+11
+200.646177778547
+21
+-872.433667955026
+31
+2067.59701840775
+12
+200.646177778547
+22
+-877.254478630867
+32
+2051.71691232036
+13
+200.646177778547
+23
+-877.254478630867
+33
+2051.71691232036
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-872.433667955026
+30
+2067.59701840775
+11
+200.646177778547
+21
+-956.198720333
+31
+2067.40806391972
+12
+200.646177778547
+22
+-946.797517592165
+32
+2098.3763194502
+13
+200.646177778547
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-946.797517592165
+30
+2098.3763194502
+11
+200.646177778547
+21
+-864.605096213174
+31
+2082.23220799651
+12
+200.646177778547
+22
+-872.433667955026
+32
+2067.59701840775
+13
+200.646177778547
+23
+-872.433667955026
+33
+2067.59701840775
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-864.605096213174
+30
+2082.23220799651
+11
+200.646177778547
+21
+-946.797517592165
+31
+2098.3763194502
+12
+200.646177778547
+22
+-931.530792747491
+32
+2126.91682720422
+13
+200.646177778547
+23
+-931.530792747491
+33
+2126.91682720422
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-931.530792747491
+30
+2126.91682720422
+11
+200.646177778547
+21
+-854.069611027035
+31
+2095.06005895826
+12
+200.646177778547
+22
+-864.605096213174
+32
+2082.23220799651
+13
+200.646177778547
+23
+-864.605096213174
+33
+2082.23220799651
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-854.069611027035
+30
+2095.06005895826
+11
+200.646177778547
+21
+-931.530792747491
+31
+2126.91682720422
+12
+200.646177778547
+22
+-910.985237473081
+32
+2151.93279147451
+13
+200.646177778547
+23
+-910.985237473081
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-910.985237473081
+30
+2151.93279147451
+11
+200.646177778547
+21
+-841.232085183949
+31
+2105.58760417448
+12
+200.646177778547
+22
+-854.069611027035
+32
+2095.06005895826
+13
+200.646177778547
+23
+-854.069611027035
+33
+2095.06005895826
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-841.232085183949
+30
+2105.58760417448
+11
+200.646177778547
+21
+-910.985237473081
+31
+2151.93279147451
+12
+200.646177778547
+22
+-885.950405936048
+32
+2172.46286278326
+13
+200.646177778547
+23
+-885.950405936048
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-885.950405936048
+30
+2172.46286278326
+11
+200.646177778547
+21
+-826.585857602691
+31
+2113.41027598642
+12
+200.646177778547
+22
+-841.232085183949
+32
+2105.58760417448
+13
+200.646177778547
+23
+-841.232085183949
+33
+2105.58760417448
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-826.585857602691
+30
+2113.41027598642
+11
+200.646177778547
+21
+-885.950405936048
+31
+2172.46286278326
+12
+200.646177778547
+22
+-857.388372672667
+32
+2187.71808200347
+13
+200.646177778547
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-857.388372672667
+30
+2187.71808200347
+11
+200.646177778547
+21
+-810.693774595514
+31
+2118.22745350336
+12
+200.646177778547
+22
+-826.585857602691
+32
+2113.41027598642
+13
+200.646177778547
+23
+-826.585857602691
+33
+2113.41027598642
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+200.646177778547
+20
+-810.693774595514
+30
+2118.22745350336
+11
+200.646177778547
+21
+-857.388372672667
+31
+2187.71808200347
+12
+200.646177778547
+22
+-826.396760603478
+32
+2197.11219961575
+13
+200.646177778547
+23
+-826.396760603478
+33
+2197.11219961575
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-1000.92034241888
+30
+2076.297043493
+11
+635.537064906387
+21
+-959.37311802092
+31
+2035.20215330562
+12
+635.537064906387
+22
+-1004.97088848041
+32
+2035.20215330562
+13
+635.537064906387
+23
+-1004.97088848041
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-959.37311802092
+30
+2035.20215330562
+11
+635.537064906387
+21
+-1000.92034241888
+31
+2076.297043493
+12
+635.537064906387
+22
+-956.198720333
+32
+2067.40806391972
+13
+635.537064906387
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-1000.92034241888
+30
+2076.297043493
+11
+635.537064906387
+21
+-946.797517592165
+31
+2098.3763194502
+12
+635.537064906387
+22
+-956.198720333
+32
+2067.40806391972
+13
+635.537064906387
+23
+-956.198720333
+33
+2067.40806391972
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-946.797517592165
+30
+2098.3763194502
+11
+635.537064906387
+21
+-1000.92034241888
+31
+2076.297043493
+12
+635.537064906387
+22
+-988.924364447842
+32
+2115.81268009677
+13
+635.537064906387
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-988.924364447842
+30
+2115.81268009677
+11
+635.537064906387
+21
+-931.530792747491
+31
+2126.91682720422
+12
+635.537064906387
+22
+-946.797517592165
+32
+2098.3763194502
+13
+635.537064906387
+23
+-946.797517592165
+33
+2098.3763194502
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-931.530792747491
+30
+2126.91682720422
+11
+635.537064906387
+21
+-988.924364447842
+31
+2115.81268009677
+12
+635.537064906387
+22
+-969.443953273309
+32
+2152.23049936285
+13
+635.537064906387
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-969.443953273309
+30
+2152.23049936285
+11
+635.537064906387
+21
+-910.985237473081
+31
+2151.93279147451
+12
+635.537064906387
+22
+-931.530792747491
+32
+2126.91682720422
+13
+635.537064906387
+23
+-931.530792747491
+33
+2126.91682720422
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-910.985237473081
+30
+2151.93279147451
+11
+635.537064906387
+21
+-969.443953273309
+31
+2152.23049936285
+12
+635.537064906387
+22
+-943.227730171979
+32
+2184.1509849202
+13
+635.537064906387
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-943.227730171979
+30
+2184.1509849202
+11
+635.537064906387
+21
+-885.950405936048
+31
+2172.46286278326
+12
+635.537064906387
+22
+-910.985237473081
+32
+2151.93279147451
+13
+635.537064906387
+23
+-910.985237473081
+33
+2151.93279147451
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-885.950405936048
+30
+2172.46286278326
+11
+635.537064906387
+21
+-943.227730171979
+31
+2184.1509849202
+12
+635.537064906387
+22
+-911.283169895404
+32
+2210.34745041008
+13
+635.537064906387
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-911.283169895404
+30
+2210.34745041008
+11
+635.537064906387
+21
+-857.388372672667
+31
+2187.71808200347
+12
+635.537064906387
+22
+-885.950405936048
+32
+2172.46286278326
+13
+635.537064906387
+23
+-885.950405936048
+33
+2172.46286278326
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-857.388372672667
+30
+2187.71808200347
+11
+635.537064906387
+21
+-911.283169895404
+31
+2210.34745041008
+12
+635.537064906387
+22
+-874.837883980304
+32
+2229.81318035484
+13
+635.537064906387
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-874.837883980304
+30
+2229.81318035484
+11
+635.537064906387
+21
+-826.396760603478
+31
+2197.11219961575
+12
+635.537064906387
+22
+-857.388372672667
+32
+2187.71808200347
+13
+635.537064906387
+23
+-857.388372672667
+33
+2187.71808200347
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+635.537064906387
+20
+-826.396760603478
+30
+2197.11219961575
+11
+635.537064906387
+21
+-874.837883980304
+31
+2229.81318035484
+12
+635.537064906387
+22
+-835.292444325637
+32
+2241.80011766922
+13
+635.537064906387
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-794.16656
+30
+2126.34617316296
+11
+993.755281646067
+21
+-835.292444325637
+31
+2241.80011766922
+12
+993.755281646067
+22
+-811.961287013471
+32
+2124.59486637848
+13
+993.755281646067
+23
+-811.961287013471
+33
+2124.59486637848
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-835.292444325637
+30
+2241.80011766922
+11
+993.755281646067
+21
+-794.16656
+31
+2126.34617316296
+12
+993.755281646067
+22
+-794.16656
+32
+2245.84761107459
+13
+993.755281646067
+23
+-794.16656
+33
+2245.84761107459
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-878.436163455843
+30
+2070.08145966418
+11
+993.755281646067
+21
+-1000.92034241888
+31
+2076.297043493
+12
+993.755281646067
+22
+-883.626693866424
+32
+2052.98346948944
+13
+993.755281646067
+23
+-883.626693866424
+33
+2052.98346948944
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-1000.92034241888
+30
+2076.297043493
+11
+993.755281646067
+21
+-878.436163455843
+31
+2070.08145966418
+12
+993.755281646067
+22
+-988.924364447842
+32
+2115.81268009677
+13
+993.755281646067
+23
+-988.924364447842
+33
+2115.81268009677
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-870.007199443395
+30
+2085.83905765611
+11
+993.755281646067
+21
+-988.924364447842
+31
+2115.81268009677
+12
+993.755281646067
+22
+-878.436163455843
+32
+2070.08145966418
+13
+993.755281646067
+23
+-878.436163455843
+33
+2070.08145966418
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-988.924364447842
+30
+2115.81268009677
+11
+993.755281646067
+21
+-870.007199443395
+31
+2085.83905765611
+12
+993.755281646067
+22
+-969.443953273309
+32
+2152.23049936285
+13
+993.755281646067
+23
+-969.443953273309
+33
+2152.23049936285
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-858.663722189056
+30
+2099.65070781135
+11
+993.755281646067
+21
+-969.443953273309
+31
+2152.23049936285
+12
+993.755281646067
+22
+-870.007199443395
+32
+2085.83905765611
+13
+993.755281646067
+23
+-870.007199443395
+33
+2085.83905765611
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-969.443953273309
+30
+2152.23049936285
+11
+993.755281646067
+21
+-858.663722189056
+31
+2099.65070781135
+12
+993.755281646067
+22
+-943.227730171979
+32
+2184.1509849202
+13
+993.755281646067
+23
+-943.227730171979
+33
+2184.1509849202
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-844.841655162215
+30
+2110.9856361601
+11
+993.755281646067
+21
+-943.227730171979
+31
+2184.1509849202
+12
+993.755281646067
+22
+-858.663722189056
+32
+2099.65070781135
+13
+993.755281646067
+23
+-858.663722189056
+33
+2099.65070781135
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-943.227730171979
+30
+2184.1509849202
+11
+993.755281646067
+21
+-844.841655162215
+31
+2110.9856361601
+12
+993.755281646067
+22
+-911.283169895404
+32
+2210.34745041008
+13
+993.755281646067
+23
+-911.283169895404
+33
+2210.34745041008
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-829.072172647213
+30
+2119.40824776262
+11
+993.755281646067
+21
+-911.283169895404
+31
+2210.34745041008
+12
+993.755281646067
+22
+-844.841655162215
+32
+2110.9856361601
+13
+993.755281646067
+23
+-844.841655162215
+33
+2110.9856361601
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-911.283169895404
+30
+2210.34745041008
+11
+993.755281646067
+21
+-829.072172647213
+31
+2119.40824776262
+12
+993.755281646067
+22
+-874.837883980304
+32
+2229.81318035484
+13
+993.755281646067
+23
+-874.837883980304
+33
+2229.81318035484
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-811.961287013471
+30
+2124.59486637848
+11
+993.755281646067
+21
+-874.837883980304
+31
+2229.81318035484
+12
+993.755281646067
+22
+-829.072172647213
+32
+2119.40824776262
+13
+993.755281646067
+23
+-829.072172647213
+33
+2119.40824776262
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+993.755281646067
+20
+-874.837883980304
+30
+2229.81318035484
+11
+993.755281646067
+21
+-811.961287013471
+31
+2124.59486637848
+12
+993.755281646067
+22
+-835.292444325637
+32
+2241.80011766922
+13
+993.755281646067
+23
+-835.292444325637
+33
+2241.80011766922
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-877.254478630867
+30
+2051.71691232036
+11
+97.3015169041444
+21
+-930.959963064732
+31
+2035.20215330562
+12
+97.3015169041444
+22
+-878.882267189966
+32
+2035.20215330562
+13
+97.3015169041444
+23
+-878.882267189966
+33
+2035.20215330562
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-930.959963064732
+30
+2035.20215330562
+11
+97.3015169041444
+21
+-877.254478630867
+31
+2051.71691232036
+12
+97.3015169041444
+22
+-928.331516182155
+32
+2061.8691098991
+13
+97.3015169041444
+23
+-928.331516182155
+33
+2061.8691098991
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-854.069611027039
+30
+2095.06005895826
+11
+97.3015169041444
+21
+-907.906117811778
+31
+2111.14322068125
+12
+97.3015169041444
+22
+-864.605096213174
+32
+2082.23220799651
+13
+97.3015169041444
+23
+-864.605096213174
+33
+2082.23220799651
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-907.906117811778
+30
+2111.14322068125
+11
+97.3015169041444
+21
+-854.069611027039
+31
+2095.06005895826
+12
+97.3015169041444
+22
+-890.894102928655
+32
+2131.85679842581
+13
+97.3015169041444
+23
+-890.894102928655
+33
+2131.85679842581
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-864.605096213174
+30
+2082.23220799651
+11
+97.3015169041444
+21
+-920.547185274073
+31
+2087.51127030568
+12
+97.3015169041444
+22
+-872.433667955028
+32
+2067.59701840775
+13
+97.3015169041444
+23
+-872.433667955028
+33
+2067.59701840775
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-920.547185274073
+30
+2087.51127030568
+11
+97.3015169041444
+21
+-864.605096213174
+31
+2082.23220799651
+12
+97.3015169041444
+22
+-907.906117811778
+32
+2111.14322068125
+13
+97.3015169041444
+23
+-907.906117811778
+33
+2111.14322068125
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-826.585857602691
+30
+2113.41027598642
+11
+97.3015169041444
+21
+-870.164902816216
+31
+2148.85599236295
+12
+97.3015169041444
+22
+-841.232085183949
+32
+2105.58760417448
+13
+97.3015169041444
+23
+-841.232085183949
+33
+2105.58760417448
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-870.164902816216
+30
+2148.85599236295
+11
+97.3015169041444
+21
+-826.585857602691
+31
+2113.41027598642
+12
+97.3015169041444
+22
+-846.515129009712
+32
+2161.48753300293
+13
+97.3015169041444
+23
+-846.515129009712
+33
+2161.48753300293
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-841.232085183949
+30
+2105.58760417448
+11
+97.3015169041444
+21
+-890.894102928655
+31
+2131.85679842581
+12
+97.3015169041444
+22
+-854.069611027039
+32
+2095.06005895826
+13
+97.3015169041444
+23
+-854.069611027039
+33
+2095.06005895826
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-890.894102928655
+30
+2131.85679842581
+11
+97.3015169041444
+21
+-841.232085183949
+31
+2105.58760417448
+12
+97.3015169041444
+22
+-870.164902816216
+32
+2148.85599236295
+13
+97.3015169041444
+23
+-870.164902816216
+33
+2148.85599236295
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-794.16656
+30
+2119.85401529483
+11
+97.3015169041444
+21
+-820.853629053581
+31
+2169.2659973228
+12
+97.3015169041444
+22
+-810.693774595514
+32
+2118.22745350336
+13
+97.3015169041444
+23
+-810.693774595514
+33
+2118.22745350336
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-820.853629053581
+30
+2169.2659973228
+11
+97.3015169041444
+21
+-794.16656
+31
+2119.85401529483
+12
+97.3015169041444
+22
+-794.16656
+32
+2171.89246330095
+13
+97.3015169041444
+23
+-794.16656
+33
+2171.89246330095
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-810.693774595514
+30
+2118.22745350336
+11
+97.3015169041444
+21
+-846.515129009712
+31
+2161.48753300293
+12
+97.3015169041444
+22
+-826.585857602691
+32
+2113.41027598642
+13
+97.3015169041444
+23
+-826.585857602691
+33
+2113.41027598642
+70
+1
+ 0
+3DFACE
+ 8
+arm_half
+10
+97.3015169041444
+20
+-846.515129009712
+30
+2161.48753300293
+11
+97.3015169041444
+21
+-810.693774595514
+31
+2118.22745350336
+12
+97.3015169041444
+22
+-820.853629053581
+32
+2169.2659973228
+13
+97.3015169041444
+23
+-820.853629053581
+33
+2169.2659973228
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+21.0791386559896
+20
+-1635.02461467787
+30
+2001.52587998687
+11
+7.98221268585839
+21
+-1575.77551414673
+31
+1996.02904198905
+12
+22.365520181431
+22
+-1575.77540103232
+32
+2002.06558825272
+13
+22.365520181431
+23
+-1575.77540103232
+33
+2002.06558825272
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98221268585839
+20
+-1575.77551414673
+30
+1996.02904198905
+11
+21.0791386559896
+21
+-1635.02461467787
+31
+2001.52587998687
+12
+7.98254654484851
+22
+-1635.02471767319
+32
+1996.02935672895
+13
+7.98254654484851
+23
+-1635.02471767319
+33
+1996.02935672895
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-67.6768495427695
+20
+-1260.03677189865
+30
+1941.04407925614
+11
+-7.61761898721182
+21
+-1175.36447372759
+31
+1995.95502646913
+12
+-26.4930734323873
+22
+-1260.03663933705
+32
+1922.31304179217
+13
+-26.4930734323873
+23
+-1260.03663933705
+33
+1922.31304179217
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+18.7238320955074
+20
+-1260.0363927542
+30
+1920.768168456
+11
+7.98091066173456
+21
+-1175.36456200926
+31
+1996.02781452793
+12
+61.0900030665619
+22
+-1260.03606969012
+32
+1936.64465220875
+13
+61.0900030665619
+23
+-1260.03606969012
+33
+1936.64465220875
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.1734746098794
+20
+-1635.02429142183
+30
+2043.18474472703
+11
+33.1369283457947
+21
+-1635.02424903062
+31
+2057.56805222281
+12
+0.000316577896367365
+22
+-1635.02455455848
+32
+2035.20251476124
+13
+0.000316577896367365
+23
+-1635.02455455848
+33
+2035.20251476124
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+98.5563030683821
+20
+-1491.10230115877
+30
+2096.29352239028
+11
+33.1365944868046
+21
+-1575.77504550416
+31
+2057.56773748292
+12
+114.432786822367
+22
+-1491.10243675244
+32
+2053.92735141868
+13
+114.432786822367
+23
+-1491.10243675244
+33
+2053.92735141868
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.1249957769614
+20
+-1479.42362718516
+30
+2131.05362422024
+11
+26.4904348219512
+21
+-1260.03514143184
+31
+2148.08890332828
+12
+22.1236937528375
+22
+-1271.71644897083
+32
+2131.05239675912
+13
+22.1236937528375
+23
+-1271.71644897083
+33
+2131.05239675912
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+26.4904348219512
+20
+-1260.03514143184
+30
+2148.08890332828
+11
+22.1249957769614
+21
+-1479.42362718516
+31
+2131.05362422024
+12
+26.491736846075
+22
+-1491.10243207942
+32
+2148.0901307894
+13
+26.491736846075
+23
+-1491.10243207942
+33
+2148.0901307894
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2459633723545
+20
+-1575.77553171729
+30
+2042.81849970453
+11
+-112.887948049741
+21
+-1491.10367640812
+31
+2061.69395415194
+12
+-95.851569329198
+22
+-1479.42468360743
+32
+2057.32721685097
+13
+-95.851569329198
+23
+-1479.42468360743
+33
+2057.32721685097
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-83.4234143215687
+20
+-1271.71506812026
+30
+1983.06846791687
+11
+-98.5563376305701
+21
+-1491.10406090528
+31
+1974.11087765241
+12
+-98.5576396546941
+22
+-1260.0367702577
+32
+1974.10965019129
+13
+-98.5576396546941
+23
+-1260.0367702577
+33
+1974.10965019129
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-98.5563376305701
+20
+-1491.10406090528
+30
+1974.11087765241
+11
+-83.4234143215687
+21
+-1271.71506812026
+31
+1983.06846791687
+12
+-83.4221122974449
+22
+-1479.42500803573
+32
+1983.06969537799
+13
+-83.4221122974449
+23
+-1479.42500803573
+33
+1983.06969537799
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1366290489928
+20
+-1575.77565655989
+30
+2012.83666255977
+11
+-98.5563376305701
+21
+-1491.10406090528
+31
+1974.11087765241
+12
+-83.4221122974449
+22
+-1479.42500803573
+32
+1983.06969537799
+13
+-83.4221122974449
+23
+-1479.42500803573
+33
+1983.06969537799
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98254654484851
+20
+-1635.02471767319
+30
+1996.02935672895
+11
+-7.61631696308793
+21
+-1575.7756024284
+31
+1995.95625393024
+12
+7.98221268585839
+22
+-1575.77551414673
+32
+1996.02904198905
+13
+7.98221268585839
+23
+-1575.77551414673
+33
+1996.02904198905
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61631696308793
+20
+-1575.7756024284
+30
+1995.95625393024
+11
+7.98254654484851
+21
+-1635.02471767319
+31
+1996.02935672895
+12
+-7.61598310409778
+22
+-1635.02480595485
+32
+1995.95656867013
+13
+-7.61598310409778
+23
+-1635.02480595485
+33
+1995.95656867013
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61631696308793
+20
+-1575.7756024284
+30
+1995.95625393024
+11
+-26.4917714082634
+21
+-1491.10392998463
+31
+1922.31426925329
+12
+-22.1251619565284
+22
+-1479.42489487959
+32
+1939.3506517424
+13
+-22.1251619565284
+23
+-1479.42489487959
+33
+1939.3506517424
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98221268585839
+20
+-1575.77551414673
+30
+1996.02904198905
+11
+16.2397851414271
+21
+-1479.42468491837
+31
+1938.18001056121
+12
+18.7251341196313
+22
+-1491.10368340178
+32
+1920.76939591712
+13
+18.7251341196313
+23
+-1491.10368340178
+33
+1920.76939591712
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.365520181431
+20
+-1575.77540103232
+30
+2002.06558825272
+11
+61.0913050906858
+21
+-1491.1033603377
+31
+1936.64587966987
+12
+52.132359515953
+22
+-1479.42441042435
+32
+1951.78010877195
+13
+52.132359515953
+23
+-1479.42441042435
+33
+1951.78010877195
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+94.1568760248532
+20
+-1491.10300997595
+30
+1967.52666978086
+11
+80.0869400614005
+21
+-1271.71596296923
+31
+1978.07922724613
+12
+94.1555740007292
+22
+-1260.03571932837
+32
+1967.52544231974
+13
+94.1555740007292
+23
+-1260.03571932837
+33
+1967.52544231974
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+80.0869400614005
+20
+-1271.71596296923
+30
+1978.07922724613
+11
+94.1568760248532
+21
+-1491.10300997595
+31
+1967.52666978086
+12
+80.0882420855246
+22
+-1479.42411318676
+32
+1978.08045470725
+13
+80.0882420855246
+23
+-1479.42411318676
+33
+1978.08045470725
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3438773424362
+20
+-1575.77528030582
+30
+2013.14688327402
+11
+80.0882420855246
+21
+-1479.42411318676
+31
+1978.08045470725
+12
+94.1568760248532
+22
+-1491.10300997595
+32
+1967.52666978086
+13
+94.1568760248532
+23
+-1491.10300997595
+33
+1967.52666978086
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+16.2384831173033
+20
+-1271.71539123762
+30
+1938.17878310009
+11
+-7.61761898721182
+21
+-1175.36447372759
+31
+1995.95502646913
+12
+7.98091066173456
+22
+-1175.36456200926
+32
+1996.02781452793
+13
+7.98091066173456
+23
+-1175.36456200926
+33
+1996.02781452793
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.1264639806523
+20
+-1271.7151812764
+30
+1939.34942428128
+11
+-7.61761898721182
+21
+-1175.36447372759
+31
+1995.95502646913
+12
+16.2384831173033
+22
+-1271.71539123762
+32
+1938.17878310009
+13
+16.2384831173033
+23
+-1271.71539123762
+33
+1938.17878310009
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3425753183123
+20
+-1175.36479585016
+30
+2013.1456558129
+11
+80.0869400614005
+21
+-1271.71596296923
+31
+1978.07922724613
+12
+22.3642181573071
+22
+-1175.36467512367
+32
+2002.0643607916
+13
+22.3642181573071
+23
+-1175.36467512367
+33
+2002.0643607916
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+52.1310574918292
+20
+-1271.71566573164
+30
+1951.77888131083
+11
+22.3642181573071
+21
+-1175.36467512367
+31
+2002.0643607916
+12
+80.0869400614005
+22
+-1271.71596296923
+32
+1978.07922724613
+13
+80.0869400614005
+23
+-1271.71596296923
+33
+1978.07922724613
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.1236937528375
+20
+-1271.71644897083
+30
+2131.05239675912
+11
+7.61498037677585
+21
+-1175.36497652034
+31
+2074.44691865133
+12
+-7.9835492721704
+22
+-1175.36488823867
+32
+2074.37413059252
+13
+-7.9835492721704
+23
+-1175.36488823867
+33
+2074.37413059252
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-16.241253345118
+20
+-1271.71623900961
+30
+2132.22303794032
+11
+22.1236937528375
+21
+-1271.71644897083
+31
+2131.05239675912
+12
+-7.9835492721704
+22
+-1175.36488823867
+32
+2074.37413059252
+13
+-7.9835492721704
+23
+-1175.36488823867
+33
+2074.37413059252
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-52.1338277196439
+20
+-1271.71596451559
+30
+2118.62293972957
+11
+-22.366856767743
+21
+-1175.36477512426
+31
+2068.33758432885
+12
+-33.3452139287482
+22
+-1175.36465439776
+32
+2057.25628930755
+13
+-33.3452139287482
+23
+-1175.36465439776
+33
+2057.25628930755
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-80.0897102892153
+20
+-1271.715667278
+30
+2092.32259379428
+11
+-52.1338277196439
+21
+-1271.71596451559
+31
+2118.62293972957
+12
+-33.3452139287482
+22
+-1175.36465439776
+32
+2057.25628930755
+13
+-33.3452139287482
+23
+-1175.36465439776
+33
+2057.25628930755
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-95.8528713533217
+20
+-1271.71539254856
+30
+2057.32598938986
+11
+-39.1744773372013
+21
+-1175.36446198731
+31
+2027.21874259443
+12
+-97.0235125333639
+22
+-1271.71518215234
+32
+2018.96104229187
+13
+-97.0235125333639
+23
+-1271.71518215234
+33
+2018.96104229187
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-95.8528713533217
+20
+-1271.71539254856
+30
+2057.32598938986
+11
+-39.2472653964783
+21
+-1175.36454443869
+31
+2042.81727224341
+12
+-39.1744773372013
+22
+-1175.36446198731
+32
+2027.21874259443
+13
+-39.1744773372013
+23
+-1175.36446198731
+33
+2027.21874259443
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.1845368645104
+20
+1078.14493048035
+30
+2043.19517347961
+11
+33.1352924626808
+21
+-1175.36503065183
+31
+2057.5665100218
+12
+39.1718387267654
+22
+-1175.36498826062
+32
+2043.18320252602
+13
+39.1718387267654
+23
+-1175.36498826062
+33
+2043.18320252602
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1352924626808
+20
+-1175.36503065183
+30
+2057.5665100218
+11
+39.1845368645104
+21
+1078.14493048035
+31
+2043.19517347961
+12
+33.1479906004257
+22
+1078.14488808915
+32
+2057.57848097538
+13
+33.1479906004257
+23
+1078.14488808915
+33
+2057.57848097538
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+60.4504242229264
+20
+1076.22873878012
+30
+1995.97422483951
+11
+39.2573249237874
+21
+1078.14501293173
+31
+2027.59664383063
+12
+33.3552734560573
+22
+1078.14512289081
+32
+2013.15762676649
+13
+33.3552734560573
+23
+1078.14512289081
+33
+2013.15762676649
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2573249237874
+20
+1078.14501293173
+30
+2027.59664383063
+11
+60.4504242229264
+21
+1076.22873878012
+31
+1995.97422483951
+12
+70.8657786588185
+22
+1076.22854136019
+32
+2022.0901191445
+13
+70.8657786588185
+23
+1076.22854136019
+33
+2022.0901191445
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2462626691564
+20
+-1635.02437387321
+30
+2027.58621507805
+11
+0.000316577896367365
+21
+-1635.02455455848
+31
+2035.20251476124
+12
+33.3442112014263
+22
+-1635.02448383228
+32
+2013.14719801391
+13
+33.3442112014263
+23
+-1635.02448383228
+33
+2013.14719801391
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-80.0897102892153
+20
+-1271.715667278
+30
+2092.32259379428
+11
+-33.3452139287482
+21
+-1175.36465439776
+31
+2057.25628930755
+12
+-94.1582126111653
+22
+-1260.03606144053
+32
+2102.87650280072
+13
+-94.1582126111653
+23
+-1260.03606144053
+33
+2102.87650280072
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+67.6742109323337
+20
+-1260.03500887024
+30
+2129.35786586431
+11
+57.1202981576705
+21
+-1271.71656243456
+31
+2115.28923569394
+12
+22.0539974410672
+22
+-1175.36502652919
+32
+2068.54486718316
+13
+22.0539974410672
+23
+-1175.36502652919
+33
+2068.54486718316
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+97.0220443296732
+20
+-1479.4236280611
+30
+2051.44200620966
+11
+97.0207423055492
+21
+-1271.71644809489
+31
+2051.44077874854
+12
+114.431484798243
+22
+-1260.03514610487
+32
+2053.92612395756
+13
+114.431484798243
+23
+-1260.03514610487
+33
+2053.92612395756
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+97.0207423055492
+20
+-1271.71644809489
+30
+2051.44077874854
+11
+80.5104813608606
+21
+-1244.21642404447
+31
+2049.07971498233
+12
+114.431484798243
+22
+-1260.03514610487
+32
+2053.92612395756
+13
+114.431484798243
+23
+-1260.03514610487
+33
+2053.92612395756
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+114.431484798243
+20
+-1260.03514610487
+30
+2053.92612395756
+11
+80.5104813608606
+21
+-1244.21642404447
+31
+2049.07971498233
+12
+39.1718387267654
+22
+-1175.36498826062
+32
+2043.18320252602
+13
+39.1718387267654
+23
+-1175.36498826062
+33
+2043.18320252602
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.61628240089973
+20
+-1575.77509963565
+30
+2074.44814611245
+11
+67.6755129564576
+21
+-1491.10229951782
+31
+2129.35909332543
+12
+26.491736846075
+22
+-1491.10243207942
+32
+2148.0901307894
+13
+26.491736846075
+23
+-1491.10243207942
+33
+2148.0901307894
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+6.62400451714528
+20
+1105.46121754713
+30
+2070.64019948415
+11
+0.0625974234421623
+21
+1105.4614427137
+31
+2035.21299417206
+12
+-7.43285738619353
+22
+1105.46129774208
+32
+2070.45440584214
+13
+-7.43285738619353
+23
+1105.46129774208
+33
+2070.45440584214
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.0625974234421623
+20
+1105.4614427137
+30
+2035.21299417206
+11
+-30.1569306708265
+21
+1105.4615087748
+31
+2054.83234841933
+12
+-20.3486042412317
+22
+1105.46140000763
+32
+2064.90342673756
+13
+-20.3486042412317
+23
+1105.46140000763
+33
+2064.90342673756
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.0625974234421623
+20
+1105.4614427137
+30
+2035.21299417206
+11
+-35.3646078887726
+21
+1105.46160748476
+31
+2041.77440126683
+12
+-30.1569306708265
+22
+1105.4615087748
+32
+2054.83234841933
+13
+-30.1569306708265
+23
+1105.4615087748
+33
+2054.83234841933
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.0625974234421623
+20
+1105.4614427137
+30
+2035.21299417206
+11
+-35.1788142463492
+21
+1105.46168110983
+31
+2027.71753936346
+12
+-35.3646078887726
+22
+1105.46160748476
+32
+2041.77440126683
+13
+-35.3646078887726
+23
+1105.46160748476
+33
+2041.77440126683
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.0625974234421623
+20
+1105.4614427137
+30
+2035.21299417206
+11
+-29.6278351413918
+21
+1105.46171844124
+31
+2014.80179250824
+12
+-35.1788142463492
+22
+1105.46168110983
+32
+2027.71753936346
+13
+-35.1788142463492
+23
+1105.46168110983
+33
+2027.71753936346
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.0625974234421623
+20
+1105.4614427137
+30
+2035.21299417206
+11
+-6.49880967025258
+21
+1105.46166788026
+31
+1999.78578885998
+12
+-19.5567568228792
+22
+1105.46171379563
+32
+2004.99346607832
+13
+-19.5567568228792
+23
+1105.46171379563
+33
+2004.99346607832
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.55805223308622
+20
+1105.46158768532
+30
+1999.97158250198
+11
+-6.49880967025258
+21
+1105.46166788026
+31
+1999.78578885998
+12
+0.0625974234421623
+22
+1105.4614427137
+32
+2035.21299417206
+13
+0.0625974234421623
+23
+1105.4614427137
+33
+2035.21299417206
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+20.4737990881245
+20
+1105.46148541976
+30
+2005.52256160656
+11
+7.55805223308622
+21
+1105.46158768532
+31
+1999.97158250198
+12
+0.0625974234421623
+22
+1105.4614427137
+32
+2035.21299417206
+13
+0.0625974234421623
+23
+1105.4614427137
+33
+2035.21299417206
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+30.2821255177192
+20
+1105.46137665259
+30
+2015.5936399248
+11
+20.4737990881245
+21
+1105.46148541976
+31
+2005.52256160656
+12
+0.0625974234421623
+22
+1105.4614427137
+32
+2035.21299417206
+13
+0.0625974234421623
+23
+1105.4614427137
+33
+2035.21299417206
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+35.4898027356652
+20
+1105.46127794263
+30
+2028.65158707729
+11
+30.2821255177192
+21
+1105.46137665259
+31
+2015.5936399248
+12
+0.0625974234421623
+22
+1105.4614427137
+32
+2035.21299417206
+13
+0.0625974234421623
+23
+1105.4614427137
+33
+2035.21299417206
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+35.4898027356652
+20
+1105.46127794263
+30
+2028.65158707729
+11
+0.0625974234421623
+21
+1105.4614427137
+31
+2035.21299417206
+12
+35.3040090932419
+22
+1105.46120431757
+32
+2042.70844898066
+13
+35.3040090932419
+23
+1105.46120431757
+33
+2042.70844898066
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+35.3040090932419
+20
+1105.46120431757
+30
+2042.70844898066
+11
+0.0625974234421623
+21
+1105.4614427137
+31
+2035.21299417206
+12
+29.7530299882844
+22
+1105.46116698616
+32
+2055.62419583589
+13
+29.7530299882844
+23
+1105.46116698616
+33
+2055.62419583589
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+29.7530299882844
+20
+1105.46116698616
+30
+2055.62419583589
+11
+0.0625974234421623
+21
+1105.4614427137
+31
+2035.21299417206
+12
+19.6819516697718
+22
+1105.46117163176
+32
+2065.4325222658
+13
+19.6819516697718
+23
+1105.46117163176
+33
+2065.4325222658
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+19.6819516697718
+20
+1105.46117163176
+30
+2065.4325222658
+11
+0.0625974234421623
+21
+1105.4614427137
+31
+2035.21299417206
+12
+6.62400451714528
+22
+1105.46121754713
+32
+2070.64019948415
+13
+6.62400451714528
+23
+1105.46121754713
+33
+2070.64019948415
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-35.1788142463492
+20
+1105.46168110983
+30
+2027.71753936346
+11
+-59.3694325616239
+21
+1087.68206778655
+31
+1994.39059084441
+12
+-70.4713907715387
+22
+1087.68199312372
+32
+2020.22208455487
+13
+-70.4713907715387
+23
+1087.68199312372
+33
+2020.22208455487
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-59.3694325616239
+20
+1087.68206778655
+30
+1994.39059084441
+11
+-35.1788142463492
+21
+1105.46168110983
+31
+2027.71753936346
+12
+-29.6278351413918
+22
+1105.46171844124
+32
+2014.80179250824
+13
+-29.6278351413918
+23
+1105.46171844124
+33
+2014.80179250824
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+59.3922976977286
+20
+1087.68096487638
+30
+2076.03539749972
+11
+35.3040090932419
+21
+1105.46120431757
+31
+2042.70844898066
+12
+29.7530299882844
+22
+1105.46116698616
+32
+2055.62419583589
+13
+29.7530299882844
+23
+1105.46116698616
+33
+2055.62419583589
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+35.3040090932419
+20
+1105.46120431757
+30
+2042.70844898066
+11
+59.3922976977286
+21
+1087.68096487638
+31
+2076.03539749972
+12
+70.4942559076435
+22
+1087.68103953921
+32
+2050.20390378926
+13
+70.4942559076435
+23
+1087.68103953921
+33
+2050.20390378926
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+13.1342467554502
+20
+1087.68106599834
+30
+2106.06740479624
+11
+19.6819516697718
+21
+1105.46117163176
+31
+2065.4325222658
+12
+6.62400451714528
+22
+1105.46121754713
+32
+2070.64019948415
+13
+6.62400451714528
+23
+1105.46121754713
+33
+2070.64019948415
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+19.6819516697718
+20
+1105.46117163176
+30
+2065.4325222658
+11
+13.1342467554502
+21
+1087.68106599834
+31
+2106.06740479624
+12
+39.2501410607034
+22
+1087.68097416759
+32
+2095.65205035954
+13
+39.2501410607034
+23
+1087.68097416759
+33
+2095.65205035954
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+70.4942559076435
+20
+1087.68103953921
+30
+2050.20390378926
+11
+35.4898027356652
+21
+1105.46127794263
+31
+2028.65158707729
+12
+35.3040090932419
+22
+1105.46120431757
+32
+2042.70844898066
+13
+35.3040090932419
+23
+1105.46120431757
+33
+2042.70844898066
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+35.4898027356652
+20
+1105.46127794263
+30
+2028.65158707729
+11
+70.4942559076435
+21
+1087.68103953921
+31
+2050.20390378926
+12
+70.8658431924901
+22
+1087.68118678933
+32
+2022.09017998252
+13
+70.8658431924901
+23
+1087.68118678933
+33
+2022.09017998252
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-60.4276236204933
+20
+1087.68164845367
+30
+2074.45170266659
+11
+-35.3646078887726
+21
+1105.46160748476
+31
+2041.77440126683
+12
+-70.8429780563856
+22
+1087.6818458736
+32
+2048.3358083616
+13
+-70.8429780563856
+23
+1087.6818458736
+33
+2048.3358083616
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-35.3646078887726
+20
+1105.46160748476
+30
+2041.77440126683
+11
+-60.4276236204933
+21
+1087.68164845367
+31
+2074.45170266659
+12
+-30.1569306708265
+22
+1105.4615087748
+32
+2054.83234841933
+13
+-30.1569306708265
+23
+1105.4615087748
+33
+2054.83234841933
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-29.6278351413918
+20
+1105.46171844124
+30
+2014.80179250824
+11
+-39.2272759245986
+21
+1087.68205849534
+31
+1974.77393798458
+12
+-59.3694325616239
+22
+1087.68206778655
+32
+1994.39059084441
+13
+-59.3694325616239
+23
+1087.68206778655
+33
+1994.39059084441
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2272759245986
+20
+1087.68205849534
+30
+1974.77393798458
+11
+-29.6278351413918
+21
+1105.46171844124
+31
+2014.80179250824
+12
+-19.5567568228792
+22
+1105.46171379563
+32
+2004.99346607832
+13
+-19.5567568228792
+23
+1105.46171379563
+33
+2004.99346607832
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+20.4737990881245
+20
+1105.46148541976
+30
+2005.52256160656
+11
+15.0023421873321
+21
+1087.68180627471
+31
+1964.7301708319
+12
+7.55805223308622
+22
+1105.46158768532
+32
+1999.97158250198
+13
+7.55805223308622
+23
+1105.46158768532
+33
+1999.97158250198
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+15.0023421873321
+20
+1087.68180627471
+30
+1964.7301708319
+11
+20.4737990881245
+21
+1105.46148541976
+31
+2005.52256160656
+12
+40.8338358974086
+22
+1087.68160174359
+32
+1975.83212904106
+13
+40.8338358974086
+23
+1087.68160174359
+33
+1975.83212904106
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-35.3646078887726
+20
+1105.46160748476
+30
+2041.77440126683
+11
+-70.4713907715387
+21
+1087.68199312372
+31
+2020.22208455487
+12
+-70.8429780563856
+22
+1087.6818458736
+32
+2048.3358083616
+13
+-70.8429780563856
+23
+1087.6818458736
+33
+2048.3358083616
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-70.4713907715387
+20
+1087.68199312372
+30
+2020.22208455487
+11
+-35.3646078887726
+21
+1105.46160748476
+31
+2041.77440126683
+12
+-35.1788142463492
+22
+1105.46168110983
+32
+2027.71753936346
+13
+-35.1788142463492
+23
+1105.46168110983
+33
+2027.71753936346
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+35.4898027356652
+20
+1105.46127794263
+30
+2028.65158707729
+11
+60.4504887565981
+21
+1087.68138420926
+31
+1995.97428567753
+12
+30.2821255177192
+22
+1105.46137665259
+32
+2015.5936399248
+13
+30.2821255177192
+23
+1105.46137665259
+33
+2015.5936399248
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+60.4504887565981
+20
+1087.68138420926
+30
+1995.97428567753
+11
+35.4898027356652
+21
+1105.46127794263
+31
+2028.65158707729
+12
+70.8658431924901
+22
+1087.68118678933
+32
+2022.09017998252
+13
+70.8658431924901
+23
+1087.68118678933
+33
+2022.09017998252
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-14.9794770512274
+20
+1087.68122638822
+30
+2105.69581751223
+11
+-20.3486042412317
+21
+1105.46140000763
+31
+2064.90342673756
+12
+-40.8109707613038
+22
+1087.68143091934
+32
+2094.59385930307
+13
+-40.8109707613038
+23
+1087.68143091934
+33
+2094.59385930307
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-20.3486042412317
+20
+1105.46140000763
+30
+2064.90342673756
+11
+-14.9794770512274
+21
+1087.68122638822
+31
+2105.69581751223
+12
+-7.43285738619353
+22
+1105.46129774208
+32
+2070.45440584214
+13
+-7.43285738619353
+23
+1105.46129774208
+33
+2070.45440584214
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-40.8109707613038
+20
+1087.68143091934
+30
+2094.59385930307
+11
+-30.1569306708265
+21
+1105.4615087748
+31
+2054.83234841933
+12
+-60.4276236204933
+22
+1087.68164845367
+32
+2074.45170266659
+13
+-60.4276236204933
+23
+1087.68164845367
+33
+2074.45170266659
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-30.1569306708265
+20
+1105.4615087748
+30
+2054.83234841933
+11
+-40.8109707613038
+21
+1087.68143091934
+31
+2094.59385930307
+12
+-20.3486042412317
+22
+1105.46140000763
+32
+2064.90342673756
+13
+-20.3486042412317
+23
+1105.46140000763
+33
+2064.90342673756
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-19.5567568228792
+20
+1105.46171379563
+30
+2004.99346607832
+11
+-13.1113816193455
+21
+1087.68196666459
+31
+1964.35858354789
+12
+-39.2272759245986
+22
+1087.68205849534
+32
+1974.77393798458
+13
+-39.2272759245986
+23
+1087.68205849534
+33
+1974.77393798458
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-13.1113816193455
+20
+1087.68196666459
+30
+1964.35858354789
+11
+-19.5567568228792
+21
+1105.46171379563
+31
+2004.99346607832
+12
+-6.49880967025258
+22
+1105.46166788026
+32
+1999.78578885998
+13
+-6.49880967025258
+23
+1105.46166788026
+33
+1999.78578885998
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+30.2821255177192
+20
+1105.46137665259
+30
+2015.5936399248
+11
+40.8338358974086
+21
+1087.68160174359
+31
+1975.83212904106
+12
+20.4737990881245
+22
+1105.46148541976
+32
+2005.52256160656
+13
+20.4737990881245
+23
+1105.46148541976
+33
+2005.52256160656
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+40.8338358974086
+20
+1087.68160174359
+30
+1975.83212904106
+11
+30.2821255177192
+21
+1105.46137665259
+31
+2015.5936399248
+12
+60.4504887565981
+22
+1087.68138420926
+32
+1995.97428567753
+13
+60.4504887565981
+23
+1087.68138420926
+33
+1995.97428567753
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+13.1342467554502
+20
+1087.68106599834
+30
+2106.06740479624
+11
+-7.43285738619353
+21
+1105.46129774208
+31
+2070.45440584214
+12
+-14.9794770512274
+22
+1087.68122638822
+32
+2105.69581751223
+13
+-14.9794770512274
+23
+1087.68122638822
+33
+2105.69581751223
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.43285738619353
+20
+1105.46129774208
+30
+2070.45440584214
+11
+13.1342467554502
+21
+1087.68106599834
+31
+2106.06740479624
+12
+6.62400451714528
+22
+1105.46121754713
+32
+2070.64019948415
+13
+6.62400451714528
+23
+1105.46121754713
+33
+2070.64019948415
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-6.49880967025258
+20
+1105.46166788026
+30
+1999.78578885998
+11
+15.0023421873321
+21
+1087.68180627471
+31
+1964.7301708319
+12
+-13.1113816193455
+22
+1087.68196666459
+32
+1964.35858354789
+13
+-13.1113816193455
+23
+1087.68196666459
+33
+1964.35858354789
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+15.0023421873321
+20
+1087.68180627471
+30
+1964.7301708319
+11
+-6.49880967025258
+21
+1105.46166788026
+31
+1999.78578885998
+12
+7.55805223308622
+22
+1105.46158768532
+32
+1999.97158250198
+13
+7.55805223308622
+23
+1105.46158768532
+33
+1999.97158250198
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2501410607034
+20
+1087.68097416759
+30
+2095.65205035954
+11
+29.7530299882844
+21
+1105.46116698616
+31
+2055.62419583589
+12
+19.6819516697718
+22
+1105.46117163176
+32
+2065.4325222658
+13
+19.6819516697718
+23
+1105.46117163176
+33
+2065.4325222658
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+29.7530299882844
+20
+1105.46116698616
+30
+2055.62419583589
+11
+39.2501410607034
+21
+1087.68097416759
+31
+2095.65205035954
+12
+59.3922976977286
+22
+1087.68096487638
+32
+2076.03539749972
+13
+59.3922976977286
+23
+1087.68096487638
+33
+2076.03539749972
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1379310731166
+20
+-1175.3644195961
+30
+2012.83543509865
+11
+-33.1295365918798
+21
+314.385267310674
+31
+2012.8433488532
+12
+-22.056636051503
+22
+-1175.36442371874
+32
+2001.8570779373
+13
+-22.056636051503
+23
+-1175.36442371874
+33
+2001.8570779373
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3452139287482
+20
+-1175.36465439776
+30
+2057.25628930755
+11
+-39.1744773372013
+21
+-1175.36446198731
+31
+2027.21874259443
+12
+-39.2472653964783
+22
+-1175.36454443869
+32
+2042.81727224341
+13
+-39.2472653964783
+23
+-1175.36454443869
+33
+2042.81727224341
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1744773372013
+20
+-1175.36446198731
+30
+2027.21874259443
+11
+-33.3452139287482
+21
+-1175.36465439776
+31
+2057.25628930755
+12
+-33.1379310731166
+22
+-1175.3644195961
+32
+2012.83543509865
+13
+-33.1379310731166
+23
+-1175.3644195961
+33
+2012.83543509865
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1379310731166
+20
+-1175.3644195961
+30
+2012.83543509865
+11
+-33.3452139287482
+21
+-1175.36465439776
+31
+2057.25628930755
+12
+-22.366856767743
+22
+-1175.36477512426
+32
+2068.33758432885
+13
+-22.366856767743
+23
+-1175.36477512426
+33
+2068.33758432885
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1379310731166
+20
+-1175.3644195961
+30
+2012.83543509865
+11
+-22.366856767743
+21
+-1175.36477512426
+31
+2068.33758432885
+12
+-22.056636051503
+22
+-1175.36442371874
+32
+2001.8570779373
+13
+-22.056636051503
+23
+-1175.36442371874
+33
+2001.8570779373
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.056636051503
+20
+-1175.36442371874
+30
+2001.8570779373
+11
+-22.366856767743
+21
+-1175.36477512426
+31
+2068.33758432885
+12
+-7.9835492721704
+22
+-1175.36488823867
+32
+2074.37413059252
+13
+-7.9835492721704
+23
+-1175.36488823867
+33
+2074.37413059252
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.056636051503
+20
+-1175.36442371874
+30
+2001.8570779373
+11
+-7.9835492721704
+21
+-1175.36488823867
+31
+2074.37413059252
+12
+-7.61761898721182
+22
+-1175.36447372759
+32
+1995.95502646913
+13
+-7.61761898721182
+23
+-1175.36447372759
+33
+1995.95502646913
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61761898721182
+20
+-1175.36447372759
+30
+1995.95502646913
+11
+-7.9835492721704
+21
+-1175.36488823867
+31
+2074.37413059252
+12
+7.61498037677585
+22
+-1175.36497652034
+32
+2074.44691865133
+13
+7.61498037677585
+23
+-1175.36497652034
+33
+2074.44691865133
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61761898721182
+20
+-1175.36447372759
+30
+1995.95502646913
+11
+7.61498037677585
+21
+-1175.36497652034
+31
+2074.44691865133
+12
+7.98091066173456
+22
+-1175.36456200926
+32
+1996.02781452793
+13
+7.98091066173456
+23
+-1175.36456200926
+33
+1996.02781452793
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98091066173456
+20
+-1175.36456200926
+30
+1996.02781452793
+11
+7.61498037677585
+21
+-1175.36497652034
+31
+2074.44691865133
+12
+22.0539974410672
+22
+-1175.36502652919
+32
+2068.54486718316
+13
+22.0539974410672
+23
+-1175.36502652919
+33
+2068.54486718316
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98091066173456
+20
+-1175.36456200926
+30
+1996.02781452793
+11
+22.0539974410672
+21
+-1175.36502652919
+31
+2068.54486718316
+12
+22.3642181573071
+22
+-1175.36467512367
+32
+2002.0643607916
+13
+22.3642181573071
+23
+-1175.36467512367
+33
+2002.0643607916
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.3642181573071
+20
+-1175.36467512367
+30
+2002.0643607916
+11
+22.0539974410672
+21
+-1175.36502652919
+31
+2068.54486718316
+12
+33.1352924626808
+22
+-1175.36503065183
+32
+2057.5665100218
+13
+33.1352924626808
+23
+-1175.36503065183
+33
+2057.5665100218
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.3642181573071
+20
+-1175.36467512367
+30
+2002.0643607916
+11
+33.1352924626808
+21
+-1175.36503065183
+31
+2057.5665100218
+12
+33.3425753183123
+22
+-1175.36479585016
+32
+2013.1456558129
+13
+33.3425753183123
+23
+-1175.36479585016
+33
+2013.1456558129
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3425753183123
+20
+-1175.36479585016
+30
+2013.1456558129
+11
+33.1352924626808
+21
+-1175.36503065183
+31
+2057.5665100218
+12
+39.1718387267654
+22
+-1175.36498826062
+32
+2043.18320252602
+13
+39.1718387267654
+23
+-1175.36498826062
+33
+2043.18320252602
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3425753183123
+20
+-1175.36479585016
+30
+2013.1456558129
+11
+39.1718387267654
+21
+-1175.36498826062
+31
+2043.18320252602
+12
+39.2446267860425
+22
+-1175.36490580924
+32
+2027.58467287705
+13
+39.2446267860425
+23
+-1175.36490580924
+33
+2027.58467287705
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+26.4904348219512
+20
+-1260.03514143184
+30
+2148.08890332828
+11
+7.61498037677585
+21
+-1175.36497652034
+31
+2074.44691865133
+12
+22.1236937528375
+22
+-1271.71644897083
+32
+2131.05239675912
+13
+22.1236937528375
+23
+-1271.71644897083
+33
+2131.05239675912
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+83.4206440937541
+20
+-1271.71656212697
+30
+2087.33335312354
+11
+33.1352924626808
+21
+-1175.36503065183
+31
+2057.5665100218
+12
+22.0539974410672
+22
+-1175.36502652919
+32
+2068.54486718316
+13
+22.0539974410672
+23
+-1175.36502652919
+33
+2068.54486718316
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+57.1202981576705
+20
+-1271.71656243456
+30
+2115.28923569394
+11
+83.4206440937541
+21
+-1271.71656212697
+31
+2087.33335312354
+12
+22.0539974410672
+22
+-1175.36502652919
+32
+2068.54486718316
+13
+22.0539974410672
+23
+-1175.36502652919
+33
+2068.54486718316
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+97.0207423055492
+20
+-1271.71644809489
+30
+2051.44077874854
+11
+95.8501011255072
+21
+-1271.71623769867
+31
+2013.07583165055
+12
+39.2446267860425
+22
+-1175.36490580924
+32
+2027.58467287705
+13
+39.2446267860425
+23
+-1175.36490580924
+33
+2027.58467287705
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+97.0207423055492
+20
+-1271.71644809489
+30
+2051.44077874854
+11
+39.2446267860425
+21
+-1175.36490580924
+31
+2027.58467287705
+12
+80.5104813608606
+22
+-1244.21642404447
+32
+2049.07971498233
+13
+80.5104813608606
+23
+-1244.21642404447
+33
+2049.07971498233
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+80.5104813608606
+20
+-1244.21642404447
+30
+2049.07971498233
+11
+39.2446267860425
+21
+-1175.36490580924
+31
+2027.58467287705
+12
+39.1718387267654
+22
+-1175.36498826062
+32
+2043.18320252602
+13
+39.1718387267654
+23
+-1175.36498826062
+33
+2043.18320252602
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1365944868046
+20
+-1575.77504550416
+30
+2057.56773748292
+11
+39.1731407508892
+21
+-1575.77508789537
+31
+2043.18442998714
+12
+114.432786822367
+22
+-1491.10243675244
+32
+2053.92735141868
+13
+114.432786822367
+23
+-1491.10243675244
+33
+2053.92735141868
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-40.8109707613038
+20
+1087.68143091934
+30
+2094.59385930307
+11
+-14.9795415848991
+21
+1076.22858095908
+31
+2105.69575667421
+12
+-14.9794770512274
+22
+1087.68122638822
+32
+2105.69581751223
+13
+-14.9794770512274
+23
+1087.68122638822
+33
+2105.69581751223
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-14.9795415848991
+20
+1076.22858095908
+30
+2105.69575667421
+11
+-40.8109707613038
+21
+1087.68143091934
+31
+2094.59385930307
+12
+-40.8110352949755
+22
+1076.22878549019
+32
+2094.59379846504
+13
+-40.8110352949755
+23
+1076.22878549019
+33
+2094.59379846504
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+13.1342467554502
+20
+1087.68106599834
+30
+2106.06740479624
+11
+39.2500765270318
+21
+1076.22832873845
+31
+2095.65198952152
+12
+39.2501410607034
+22
+1087.68097416759
+32
+2095.65205035954
+13
+39.2501410607034
+23
+1087.68097416759
+33
+2095.65205035954
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2500765270318
+20
+1076.22832873845
+30
+2095.65198952152
+11
+13.1342467554502
+21
+1087.68106599834
+31
+2106.06740479624
+12
+13.1341822217786
+22
+1076.2284205692
+32
+2106.06734395821
+13
+13.1341822217786
+23
+1076.2284205692
+33
+2106.06734395821
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-13.1114461530171
+20
+1076.22932123545
+30
+1964.35852270987
+11
+-39.2272759245986
+21
+1087.68205849534
+31
+1974.77393798458
+12
+-13.1113816193455
+22
+1087.68196666459
+32
+1964.35858354789
+13
+-13.1113816193455
+23
+1087.68196666459
+33
+1964.35858354789
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2272759245986
+20
+1087.68205849534
+30
+1974.77393798458
+11
+-13.1114461530171
+21
+1076.22932123545
+31
+1964.35852270987
+12
+-39.2273404582702
+22
+1076.22941306619
+32
+1974.77387714657
+13
+-39.2273404582702
+23
+1076.22941306619
+33
+1974.77387714657
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+60.4504887565981
+20
+1087.68138420926
+30
+1995.97428567753
+11
+70.8657786588185
+21
+1076.22854136019
+31
+2022.0901191445
+12
+60.4504242229264
+22
+1076.22873878012
+32
+1995.97422483951
+13
+60.4504242229264
+23
+1076.22873878012
+33
+1995.97422483951
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+70.8657786588185
+20
+1076.22854136019
+30
+2022.0901191445
+11
+60.4504887565981
+21
+1087.68138420926
+31
+1995.97428567753
+12
+70.8658431924901
+22
+1087.68118678933
+32
+2022.09017998252
+13
+70.8658431924901
+23
+1087.68118678933
+33
+2022.09017998252
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.056636051503
+20
+-1175.36442371874
+30
+2001.8570779373
+11
+-33.1252329353715
+21
+1078.14549914487
+31
+2012.84740605224
+12
+-22.0439379137581
+22
+1078.14549502223
+32
+2001.86904889088
+13
+-22.0439379137581
+23
+1078.14549502223
+33
+2001.86904889088
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1252329353715
+20
+1078.14549914487
+30
+2012.84740605224
+11
+-22.056636051503
+21
+-1175.36442371874
+31
+2001.8570779373
+12
+-33.1295365918798
+22
+314.385267310674
+32
+2012.8433488532
+13
+-33.1295365918798
+23
+314.385267310674
+33
+2012.8433488532
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.3769162950522
+20
+1078.1452436173
+30
+2002.07633174518
+11
+33.3425753183123
+21
+-1175.36479585016
+31
+2013.1456558129
+12
+22.3642181573071
+22
+-1175.36467512367
+32
+2002.0643607916
+13
+22.3642181573071
+23
+-1175.36467512367
+33
+2002.0643607916
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3425753183123
+20
+-1175.36479585016
+30
+2013.1456558129
+11
+22.3769162950522
+21
+1078.1452436173
+31
+2002.07633174518
+12
+33.3552734560573
+22
+1078.14512289081
+32
+2013.15762676649
+13
+33.3552734560573
+23
+1078.14512289081
+33
+2013.15762676649
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.0666955788121
+20
+1078.14489221178
+30
+2068.55683813674
+11
+13.1341822217786
+21
+1076.2284205692
+31
+2106.06734395821
+12
+7.62767851452085
+22
+1078.14494222063
+32
+2074.45888960491
+13
+7.62767851452085
+23
+1078.14494222063
+33
+2074.45888960491
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+13.1341822217786
+20
+1076.2284205692
+30
+2106.06734395821
+11
+22.0666955788121
+21
+1078.14489221178
+31
+2068.55683813674
+12
+39.2500765270318
+22
+1076.22832873845
+32
+2095.65198952152
+13
+39.2500765270318
+23
+1076.22832873845
+33
+2095.65198952152
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.354158629998
+20
+1078.14514361671
+30
+2068.34955528244
+11
+-14.9795415848991
+21
+1076.22858095908
+31
+2105.69575667421
+12
+-40.8110352949755
+22
+1076.22878549019
+32
+2094.59379846504
+13
+-40.8110352949755
+23
+1076.22878549019
+33
+2094.59379846504
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-14.9795415848991
+20
+1076.22858095908
+30
+2105.69575667421
+11
+-22.354158629998
+21
+1078.14514361671
+31
+2068.34955528244
+12
+-7.97085113442526
+22
+1078.14503050231
+32
+2074.3861015461
+13
+-7.97085113442526
+23
+1078.14503050231
+33
+2074.3861015461
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+15.0022776536605
+20
+1076.22916084557
+30
+1964.73010999387
+11
+22.3769162950522
+21
+1078.1452436173
+31
+2002.07633174518
+12
+7.99360879947956
+22
+1078.14535673171
+32
+1996.03978548152
+13
+7.99360879947956
+23
+1078.14535673171
+33
+1996.03978548152
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.3769162950522
+20
+1078.1452436173
+30
+2002.07633174518
+11
+15.0022776536605
+21
+1076.22916084557
+31
+1964.73010999387
+12
+40.8337713637369
+22
+1076.22895631445
+32
+1975.83206820304
+13
+40.8337713637369
+23
+1076.22895631445
+33
+1975.83206820304
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+15.0022776536605
+20
+1076.22916084557
+30
+1964.73010999387
+11
+-7.60492084946682
+21
+1078.14544501338
+31
+1995.96699742271
+12
+-13.1114461530171
+22
+1076.22932123545
+32
+1964.35852270987
+13
+-13.1114461530171
+23
+1076.22932123545
+33
+1964.35852270987
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.60492084946682
+20
+1078.14544501338
+30
+1995.96699742271
+11
+15.0022776536605
+21
+1076.22916084557
+31
+1964.73010999387
+12
+7.99360879947956
+22
+1078.14535673171
+32
+1996.03978548152
+13
+7.99360879947956
+23
+1078.14535673171
+33
+1996.03978548152
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61761898721182
+20
+-1175.36447372759
+30
+1995.95502646913
+11
+-22.1264639806523
+21
+-1271.7151812764
+31
+1939.34942428128
+12
+-26.4930734323873
+22
+-1260.03663933705
+32
+1922.31304179217
+13
+-26.4930734323873
+23
+-1260.03663933705
+33
+1922.31304179217
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98091066173456
+20
+-1175.36456200926
+30
+1996.02781452793
+11
+18.7238320955074
+21
+-1260.0363927542
+31
+1920.768168456
+12
+16.2384831173033
+22
+-1271.71539123762
+32
+1938.17878310009
+13
+16.2384831173033
+23
+-1271.71539123762
+33
+1938.17878310009
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.000316577896367365
+20
+-1635.02455455848
+30
+2035.20251476124
+11
+-22.055000168389
+21
+-1635.02485596371
+31
+2001.85862013831
+12
+-7.61598310409778
+22
+-1635.02480595485
+32
+1995.95656867013
+13
+-7.61598310409778
+23
+-1635.02480595485
+33
+1995.95656867013
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1369283457947
+20
+-1635.02424903062
+30
+2057.56805222281
+11
+22.0556333241812
+21
+-1635.02425315326
+31
+2068.54640938416
+12
+0.000316577896367365
+22
+-1635.02455455848
+32
+2035.20251476124
+13
+0.000316577896367365
+23
+-1635.02455455848
+33
+2035.20251476124
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.000316577896367365
+20
+-1635.02455455848
+30
+2035.20251476124
+11
+-39.1728414540873
+21
+-1635.02481769514
+31
+2027.22028479544
+12
+-33.1362951900026
+22
+-1635.02486008634
+32
+2012.83697729966
+13
+-33.1362951900026
+23
+-1635.02486008634
+33
+2012.83697729966
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.61661625988982
+20
+-1635.02430316211
+30
+2074.44846085234
+11
+-7.98191338905644
+21
+-1635.02439144378
+31
+2074.37567279353
+12
+0.000316577896367365
+22
+-1635.02455455848
+32
+2035.20251476124
+13
+0.000316577896367365
+23
+-1635.02455455848
+33
+2035.20251476124
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+83.4206440937541
+20
+-1271.71656212697
+30
+2087.33335312354
+11
+98.5563030683821
+21
+-1491.10230115877
+31
+2096.29352239028
+12
+98.5550010442582
+22
+-1260.03501051119
+32
+2096.29229492916
+13
+98.5550010442582
+23
+-1260.03501051119
+33
+2096.29229492916
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+98.5563030683821
+20
+-1491.10230115877
+30
+2096.29352239028
+11
+83.4206440937541
+21
+-1271.71656212697
+31
+2087.33335312354
+12
+83.421946117878
+22
+-1479.42351402902
+32
+2087.33458058465
+13
+83.421946117878
+23
+-1479.42351402902
+33
+2087.33458058465
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+114.432786822367
+20
+-1491.10243675244
+30
+2053.92735141868
+11
+97.0220443296732
+21
+-1479.4236280611
+31
+2051.44200620966
+12
+114.431484798243
+22
+-1260.03514610487
+32
+2053.92612395756
+13
+114.431484798243
+23
+-1260.03514610487
+33
+2053.92612395756
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.97085113442526
+20
+1078.14503050231
+30
+2074.3861015461
+11
+7.61498037677585
+21
+-1175.36497652034
+31
+2074.44691865133
+12
+7.62767851452085
+22
+1078.14494222063
+32
+2074.45888960491
+13
+7.62767851452085
+23
+1078.14494222063
+33
+2074.45888960491
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.61498037677585
+20
+-1175.36497652034
+30
+2074.44691865133
+11
+-7.97085113442526
+21
+1078.14503050231
+31
+2074.3861015461
+12
+-7.9835492721704
+22
+-1175.36488823867
+32
+2074.37413059252
+13
+-7.9835492721704
+23
+-1175.36488823867
+33
+2074.37413059252
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-98.5563376305701
+20
+-1491.10406090528
+30
+1974.11087765241
+11
+-114.43412340868
+21
+-1260.03663466403
+31
+2016.47582116289
+12
+-98.5576396546941
+22
+-1260.0367702577
+32
+1974.10965019129
+13
+-98.5576396546941
+23
+-1260.0367702577
+33
+1974.10965019129
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-114.43412340868
+20
+-1260.03663466403
+30
+2016.47582116289
+11
+-98.5563376305701
+21
+-1491.10406090528
+31
+1974.11087765241
+12
+-114.432821384555
+22
+-1491.10392531161
+32
+2016.47704862401
+13
+-114.432821384555
+23
+-1491.10392531161
+33
+2016.47704862401
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.98224724804656
+20
+-1575.77518791732
+30
+2074.37535805364
+11
+-18.7251686818196
+21
+-1491.10267866227
+31
+2149.63500412557
+12
+-61.0913396528737
+22
+-1491.10300172636
+32
+2133.75852037282
+13
+-61.0913396528737
+23
+-1491.10300172636
+33
+2133.75852037282
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.0556333241812
+20
+-1635.02425315326
+30
+2068.54640938416
+11
+7.61661625988982
+21
+-1635.02430316211
+31
+2074.44846085234
+12
+0.000316577896367365
+22
+-1635.02455455848
+32
+2035.20251476124
+13
+0.000316577896367365
+23
+-1635.02455455848
+33
+2035.20251476124
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+21.0791386559896
+20
+-1635.02461467787
+30
+2001.52587998687
+11
+0.000316577896367365
+21
+-1635.02455455848
+31
+2035.20251476124
+12
+7.98254654484851
+22
+-1635.02471767319
+32
+1996.02935672895
+13
+7.98254654484851
+23
+-1635.02471767319
+33
+1996.02935672895
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+67.6755129564576
+20
+-1491.10229951782
+30
+2129.35909332543
+11
+22.055299465191
+21
+-1575.7750496268
+31
+2068.54609464427
+12
+57.1216001817944
+22
+-1479.42351372144
+32
+2115.29046315506
+13
+57.1216001817944
+23
+-1479.42351372144
+33
+2115.29046315506
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-61.0926416769977
+20
+-1260.03571107878
+30
+2133.75729291171
+11
+-7.9835492721704
+21
+-1175.36488823867
+31
+2074.37413059252
+12
+-22.366856767743
+22
+-1175.36477512426
+32
+2068.33758432885
+13
+-22.366856767743
+23
+-1175.36477512426
+33
+2068.33758432885
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-61.0926416769977
+20
+-1260.03571107878
+30
+2133.75729291171
+11
+-18.7264707059435
+21
+-1260.03538801469
+31
+2149.63377666445
+12
+-7.9835492721704
+22
+-1175.36488823867
+32
+2074.37413059252
+13
+-7.9835492721704
+23
+-1175.36488823867
+33
+2074.37413059252
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+67.6742109323337
+20
+-1260.03500887024
+30
+2129.35786586431
+11
+22.0539974410672
+21
+-1175.36502652919
+31
+2068.54486718316
+12
+7.61498037677585
+22
+-1175.36497652034
+32
+2074.44691865133
+13
+7.61498037677585
+23
+-1175.36497652034
+33
+2074.44691865133
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-114.432821384555
+20
+-1491.10392531161
+30
+2016.47704862401
+11
+-97.0222105092401
+21
+-1479.42489400365
+31
+2018.96226975299
+12
+-97.0235125333639
+22
+-1271.71518215234
+32
+2018.96104229187
+13
+-97.0235125333639
+23
+-1271.71518215234
+33
+2018.96104229187
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1731753130775
+20
+-1575.77561416868
+30
+2027.21997005555
+11
+-97.0222105092401
+21
+-1479.42489400365
+31
+2018.96226975299
+12
+-114.432821384555
+22
+-1491.10392531161
+32
+2016.47704862401
+13
+-114.432821384555
+23
+-1491.10392531161
+33
+2016.47704862401
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-97.0235125333639
+20
+-1271.71518215234
+30
+2018.96104229187
+11
+-39.1744773372013
+21
+-1175.36446198731
+31
+2027.21874259443
+12
+-114.43412340868
+22
+-1260.03663466403
+32
+2016.47582116289
+13
+-114.43412340868
+23
+-1260.03663466403
+33
+2016.47582116289
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-114.432821384555
+20
+-1491.10392531161
+30
+2016.47704862401
+11
+-97.0235125333639
+21
+-1271.71518215234
+31
+2018.96104229187
+12
+-114.43412340868
+22
+-1260.03663466403
+32
+2016.47582116289
+13
+-114.43412340868
+23
+-1260.03663466403
+33
+2016.47582116289
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.3655547436192
+20
+-1575.77530103172
+30
+2068.33881178997
+11
+-33.3439119046243
+21
+-1575.77542175822
+31
+2057.25751676867
+12
+-33.3435780456342
+22
+-1635.02462528468
+32
+2057.25783150856
+13
+-33.3435780456342
+23
+-1635.02462528468
+33
+2057.25783150856
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3435780456342
+20
+-1635.02462528468
+30
+2057.25783150856
+11
+-21.0785055001976
+21
+-1635.02449443909
+31
+2068.87914953561
+12
+-22.3655547436192
+22
+-1575.77530103172
+32
+2068.33881178997
+13
+-22.3655547436192
+23
+-1575.77530103172
+33
+2068.33881178997
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+21.0791386559896
+20
+-1635.02461467787
+30
+2001.52587998687
+11
+22.365520181431
+21
+-1575.77540103232
+31
+2002.06558825272
+12
+33.3442112014263
+22
+-1635.02448383228
+32
+2013.14719801391
+13
+33.3442112014263
+23
+-1635.02448383228
+33
+2013.14719801391
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3442112014263
+20
+-1635.02448383228
+30
+2013.14719801391
+11
+22.365520181431
+21
+-1575.77540103232
+31
+2002.06558825272
+12
+33.3438773424362
+22
+-1575.77528030582
+32
+2013.14688327402
+13
+33.3438773424362
+23
+-1575.77528030582
+33
+2013.14688327402
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+70.4942559076435
+20
+1087.68103953921
+30
+2050.20390378926
+11
+59.3922331640569
+21
+1076.22831944724
+31
+2076.0353366617
+12
+70.4941913739718
+22
+1076.22839411006
+32
+2050.20384295124
+13
+70.4941913739718
+23
+1076.22839411006
+33
+2050.20384295124
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+59.3922331640569
+20
+1076.22831944724
+30
+2076.0353366617
+11
+70.4942559076435
+21
+1087.68103953921
+31
+2050.20390378926
+12
+59.3922976977286
+22
+1087.68096487638
+32
+2076.03539749972
+13
+59.3922976977286
+23
+1087.68096487638
+33
+2076.03539749972
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+40.8337713637369
+20
+1076.22895631445
+30
+1975.83206820304
+11
+15.0023421873321
+21
+1087.68180627471
+31
+1964.7301708319
+12
+40.8338358974086
+22
+1087.68160174359
+32
+1975.83212904106
+13
+40.8338358974086
+23
+1087.68160174359
+33
+1975.83212904106
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+15.0023421873321
+20
+1087.68180627471
+30
+1964.7301708319
+11
+40.8337713637369
+21
+1076.22895631445
+31
+1975.83206820304
+12
+15.0022776536605
+22
+1076.22916084557
+32
+1964.73010999387
+13
+15.0022776536605
+23
+1076.22916084557
+33
+1964.73010999387
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-70.4714553052104
+20
+1076.22934769458
+30
+2020.22202371684
+11
+-59.3694325616239
+21
+1087.68206778655
+31
+1994.39059084441
+12
+-59.3694970952955
+22
+1076.22942235741
+32
+1994.39053000639
+13
+-59.3694970952955
+23
+1076.22942235741
+33
+1994.39053000639
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-59.3694325616239
+20
+1087.68206778655
+30
+1994.39059084441
+11
+-70.4714553052104
+21
+1076.22934769458
+31
+2020.22202371684
+12
+-70.4713907715387
+22
+1087.68199312372
+32
+2020.22208455487
+13
+-70.4713907715387
+23
+1087.68199312372
+33
+2020.22208455487
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-60.4276881541649
+20
+1076.22900302453
+30
+2074.45164182857
+11
+-70.8429780563856
+21
+1087.6818458736
+31
+2048.3358083616
+12
+-70.8430425900572
+22
+1076.22920044446
+32
+2048.33574752358
+13
+-70.8430425900572
+23
+1076.22920044446
+33
+2048.33574752358
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-70.8429780563856
+20
+1087.6818458736
+30
+2048.3358083616
+11
+-60.4276881541649
+21
+1076.22900302453
+31
+2074.45164182857
+12
+-60.4276236204933
+22
+1087.68164845367
+32
+2074.45170266659
+13
+-60.4276236204933
+23
+1087.68164845367
+33
+2074.45170266659
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+112.886611463429
+20
+-1260.03539500836
+30
+2008.70921842963
+11
+94.1568760248532
+21
+-1491.10300997595
+31
+1967.52666978086
+12
+94.1555740007292
+22
+-1260.03571932837
+32
+1967.52544231974
+13
+94.1555740007292
+23
+-1260.03571932837
+33
+1967.52544231974
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+94.1568760248532
+20
+-1491.10300997595
+30
+1967.52666978086
+11
+112.886611463429
+21
+-1260.03539500836
+31
+2008.70921842963
+12
+112.887913487553
+22
+-1491.10268565594
+32
+2008.71044589075
+13
+112.887913487553
+23
+-1491.10268565594
+33
+2008.71044589075
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-112.887948049741
+20
+-1491.10367640812
+30
+2061.69395415194
+11
+-39.2459633723545
+21
+-1575.77553171729
+31
+2042.81849970453
+12
+-33.3439119046243
+22
+-1575.77542175822
+32
+2057.25751676867
+13
+-33.3439119046243
+23
+-1575.77542175822
+33
+2057.25751676867
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.3655547436192
+20
+-1575.77530103172
+30
+2068.33881178997
+11
+-7.98191338905644
+21
+-1635.02439144378
+31
+2074.37567279353
+12
+-7.98224724804656
+22
+-1575.77518791732
+32
+2074.37535805364
+13
+-7.98224724804656
+23
+-1575.77518791732
+33
+2074.37535805364
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.98191338905644
+20
+-1635.02439144378
+30
+2074.37567279353
+11
+-22.3655547436192
+21
+-1575.77530103172
+31
+2068.33881178997
+12
+-21.0785055001976
+22
+-1635.02449443909
+32
+2068.87914953561
+13
+-21.0785055001976
+23
+-1635.02449443909
+33
+2068.87914953561
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.0539974410672
+20
+-1175.36502652919
+30
+2068.54486718316
+11
+33.1352924626808
+21
+-1175.36503065183
+31
+2057.5665100218
+12
+22.062391922304
+22
+314.384660377585
+32
+2068.5527809377
+13
+22.062391922304
+23
+314.384660377585
+33
+2068.5527809377
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98221268585839
+20
+-1575.77551414673
+30
+1996.02904198905
+11
+61.0913050906858
+21
+-1491.1033603377
+31
+1936.64587966987
+12
+22.365520181431
+22
+-1575.77540103232
+32
+2002.06558825272
+13
+22.365520181431
+23
+-1575.77540103232
+33
+2002.06558825272
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-67.6768495427695
+20
+-1260.03677189865
+30
+1941.04407925614
+11
+-22.056636051503
+21
+-1175.36442371874
+31
+2001.8570779373
+12
+-7.61761898721182
+22
+-1175.36447372759
+32
+1995.95502646913
+13
+-7.61761898721182
+23
+-1175.36447372759
+33
+1995.95502646913
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3438773424362
+20
+-1575.77528030582
+30
+2013.14688327402
+11
+52.132359515953
+21
+-1479.42441042435
+31
+1951.78010877195
+12
+80.0882420855246
+22
+-1479.42411318676
+32
+1978.08045470725
+13
+80.0882420855246
+23
+-1479.42411318676
+33
+1978.08045470725
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3325157910026
+20
+1078.14526434321
+30
+2057.26826026113
+11
+-40.8110352949755
+21
+1076.22878549019
+31
+2094.59379846504
+12
+-60.4276881541649
+22
+1076.22900302453
+32
+2074.45164182857
+13
+-60.4276881541649
+23
+1076.22900302453
+33
+2074.45164182857
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-40.8110352949755
+20
+1076.22878549019
+30
+2094.59379846504
+11
+-33.3325157910026
+21
+1078.14526434321
+31
+2057.26826026113
+12
+-22.354158629998
+22
+1078.14514361671
+32
+2068.34955528244
+13
+-22.354158629998
+23
+1078.14514361671
+33
+2068.34955528244
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-95.8528713533217
+20
+-1271.71539254856
+30
+2057.32598938986
+11
+-112.887948049741
+21
+-1491.10367640812
+31
+2061.69395415194
+12
+-112.889250073865
+22
+-1260.03638576054
+32
+2061.69272669082
+13
+-112.889250073865
+23
+-1260.03638576054
+33
+2061.69272669082
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-112.887948049741
+20
+-1491.10367640812
+30
+2061.69395415194
+11
+-95.8528713533217
+21
+-1271.71539254856
+31
+2057.32598938986
+12
+-95.851569329198
+22
+-1479.42468360743
+32
+2057.32721685097
+13
+-95.851569329198
+23
+-1479.42468360743
+33
+2057.32721685097
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.3655547436192
+20
+-1575.77530103172
+30
+2068.33881178997
+11
+-7.98224724804656
+21
+-1575.77518791732
+31
+2074.37535805364
+12
+-61.0913396528737
+22
+-1491.10300172636
+32
+2133.75852037282
+13
+-61.0913396528737
+23
+-1491.10300172636
+33
+2133.75852037282
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2573249237874
+20
+1078.14501293173
+30
+2027.59664383063
+11
+39.1718387267654
+21
+-1175.36498826062
+31
+2043.18320252602
+12
+39.2446267860425
+22
+-1175.36490580924
+32
+2027.58467287705
+13
+39.2446267860425
+23
+-1175.36490580924
+33
+2027.58467287705
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.1718387267654
+20
+-1175.36498826062
+30
+2043.18320252602
+11
+39.2573249237874
+21
+1078.14501293173
+31
+2027.59664383063
+12
+39.1845368645104
+22
+1078.14493048035
+32
+2043.19517347961
+13
+39.1845368645104
+23
+1078.14493048035
+33
+2043.19517347961
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98091066173456
+20
+-1175.36456200926
+30
+1996.02781452793
+11
+-7.60492084946682
+21
+1078.14544501338
+31
+1995.96699742271
+12
+7.99360879947956
+22
+1078.14535673171
+32
+1996.03978548152
+13
+7.99360879947956
+23
+1078.14535673171
+33
+1996.03978548152
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.60492084946682
+20
+1078.14544501338
+30
+1995.96699742271
+11
+7.98091066173456
+21
+-1175.36456200926
+31
+1996.02781452793
+12
+-7.60922450597496
+22
+314.385213179183
+32
+1995.96294022367
+13
+-7.60922450597496
+23
+314.385213179183
+33
+1995.96294022367
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2573249237874
+20
+1078.14501293173
+30
+2027.59664383063
+11
+70.4941913739718
+21
+1076.22839411006
+31
+2050.20384295124
+12
+39.1845368645104
+22
+1078.14493048035
+32
+2043.19517347961
+13
+39.1845368645104
+23
+1078.14493048035
+33
+2043.19517347961
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+70.4941913739718
+20
+1076.22839411006
+30
+2050.20384295124
+11
+39.2573249237874
+21
+1078.14501293173
+31
+2027.59664383063
+12
+70.8657786588185
+22
+1076.22854136019
+32
+2022.0901191445
+13
+70.8657786588185
+23
+1076.22854136019
+33
+2022.0901191445
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-26.4917714082634
+20
+-1491.10392998463
+30
+1922.31426925329
+11
+-67.6768495427695
+21
+-1260.03677189865
+31
+1941.04407925614
+12
+-26.4930734323873
+22
+-1260.03663933705
+32
+1922.31304179217
+13
+-26.4930734323873
+23
+-1260.03663933705
+33
+1922.31304179217
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-67.6768495427695
+20
+-1260.03677189865
+30
+1941.04407925614
+11
+-26.4917714082634
+21
+-1491.10392998463
+31
+1922.31426925329
+12
+-67.6755475186457
+22
+-1491.10406254623
+32
+1941.04530671726
+13
+-67.6755475186457
+23
+-1491.10406254623
+33
+1941.04530671726
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1479906004257
+20
+1078.14488808915
+30
+2057.57848097538
+11
+39.2500765270318
+21
+1076.22832873845
+31
+2095.65198952152
+12
+22.0666955788121
+22
+1078.14489221178
+32
+2068.55683813674
+13
+22.0666955788121
+23
+1078.14489221178
+33
+2068.55683813674
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2500765270318
+20
+1076.22832873845
+30
+2095.65198952152
+11
+33.1479906004257
+21
+1078.14488808915
+31
+2057.57848097538
+12
+59.3922331640569
+22
+1076.22831944724
+32
+2076.0353366617
+13
+59.3922331640569
+23
+1076.22831944724
+33
+2076.0353366617
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-61.0926416769977
+20
+-1260.03571107878
+30
+2133.75729291171
+11
+-18.7251686818196
+21
+-1491.10267866227
+31
+2149.63500412557
+12
+-18.7264707059435
+22
+-1260.03538801469
+32
+2149.63377666445
+13
+-18.7264707059435
+23
+-1260.03538801469
+33
+2149.63377666445
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-18.7251686818196
+20
+-1491.10267866227
+30
+2149.63500412557
+11
+-61.0926416769977
+21
+-1260.03571107878
+31
+2133.75729291171
+12
+-61.0913396528737
+22
+-1491.10300172636
+32
+2133.75852037282
+13
+-61.0913396528737
+23
+-1491.10300172636
+33
+2133.75852037282
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0553340273792
+20
+-1575.77565243725
+30
+2001.85830539842
+11
+-57.1217663613614
+21
+-1479.42500834332
+31
+1955.11381280758
+12
+-67.6755475186457
+22
+-1491.10406254623
+32
+1941.04530671726
+13
+-67.6755475186457
+23
+-1491.10406254623
+33
+1941.04530671726
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-52.13252569552
+20
+-1479.4241116404
+30
+2118.62416719069
+11
+-61.0926416769977
+21
+-1260.03571107878
+31
+2133.75729291171
+12
+-52.1338277196439
+22
+-1271.71596451559
+32
+2118.62293972957
+13
+-52.1338277196439
+23
+-1271.71596451559
+33
+2118.62293972957
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-61.0926416769977
+20
+-1260.03571107878
+30
+2133.75729291171
+11
+-52.13252569552
+21
+-1479.4241116404
+31
+2118.62416719069
+12
+-61.0913396528737
+22
+-1491.10300172636
+32
+2133.75852037282
+13
+-61.0913396528737
+23
+-1491.10300172636
+33
+2133.75852037282
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2345672587327
+20
+1078.14537430228
+30
+2042.82924319699
+11
+-60.4276881541649
+21
+1076.22900302453
+31
+2074.45164182857
+12
+-70.8430425900572
+22
+1076.22920044446
+32
+2048.33574752358
+13
+-70.8430425900572
+23
+1076.22920044446
+33
+2048.33574752358
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-60.4276881541649
+20
+1076.22900302453
+30
+2074.45164182857
+11
+-39.2345672587327
+21
+1078.14537430228
+31
+2042.82924319699
+12
+-33.3325157910026
+22
+1078.14526434321
+32
+2057.26826026113
+13
+-33.3325157910026
+23
+1078.14526434321
+33
+2057.26826026113
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+26.491736846075
+20
+-1491.10243207942
+30
+2148.0901307894
+11
+22.1249957769614
+21
+-1479.42362718516
+31
+2131.05362422024
+12
+7.61628240089973
+22
+-1575.77509963565
+32
+2074.44814611245
+13
+7.61628240089973
+23
+-1575.77509963565
+33
+2074.44814611245
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.98224724804656
+20
+-1575.77518791732
+30
+2074.37535805364
+11
+7.61661625988982
+21
+-1635.02430316211
+31
+2074.44846085234
+12
+7.61628240089973
+22
+-1575.77509963565
+32
+2074.44814611245
+13
+7.61628240089973
+23
+-1575.77509963565
+33
+2074.44814611245
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.61661625988982
+20
+-1635.02430316211
+30
+2074.44846085234
+11
+-7.98224724804656
+21
+-1575.77518791732
+31
+2074.37535805364
+12
+-7.98191338905644
+22
+-1635.02439144378
+32
+2074.37567279353
+13
+-7.98191338905644
+23
+-1635.02439144378
+33
+2074.37567279353
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+80.0869400614005
+20
+-1271.71596296923
+30
+1978.07922724613
+11
+33.3425753183123
+21
+-1175.36479585016
+31
+2013.1456558129
+12
+94.1555740007292
+22
+-1260.03571932837
+32
+1967.52544231974
+13
+94.1555740007292
+23
+-1260.03571932837
+33
+1967.52544231974
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.000316577896367365
+20
+-1635.02455455848
+30
+2035.20251476124
+11
+-7.98191338905644
+21
+-1635.02439144378
+31
+2074.37567279353
+12
+-21.0785055001976
+22
+-1635.02449443909
+32
+2068.87914953561
+13
+-21.0785055001976
+23
+-1635.02449443909
+33
+2068.87914953561
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.000316577896367365
+20
+-1635.02455455848
+30
+2035.20251476124
+11
+-39.2456295133644
+21
+-1635.02473524376
+31
+2042.81881444442
+12
+-39.1728414540873
+22
+-1635.02481769514
+32
+2027.22028479544
+13
+-39.1728414540873
+23
+-1635.02481769514
+33
+2027.22028479544
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3442112014263
+20
+-1635.02448383228
+30
+2013.14719801391
+11
+0.000316577896367365
+21
+-1635.02455455848
+31
+2035.20251476124
+12
+21.0791386559896
+22
+-1635.02461467787
+32
+2001.52587998687
+13
+21.0791386559896
+23
+-1635.02461467787
+33
+2001.52587998687
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2462626691564
+20
+-1635.02437387321
+30
+2027.58621507805
+11
+39.1734746098794
+21
+-1635.02429142183
+31
+2043.18474472703
+12
+0.000316577896367365
+22
+-1635.02455455848
+32
+2035.20251476124
+13
+0.000316577896367365
+23
+-1635.02455455848
+33
+2035.20251476124
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.000316577896367365
+20
+-1635.02455455848
+30
+2035.20251476124
+11
+-33.3435780456342
+21
+-1635.02462528468
+31
+2057.25783150856
+12
+-39.2456295133644
+22
+-1635.02473524376
+32
+2042.81881444442
+13
+-39.2456295133644
+23
+-1635.02473524376
+33
+2042.81881444442
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-18.7264707059435
+20
+-1260.03538801469
+30
+2149.63377666445
+11
+-16.241253345118
+21
+-1271.71623900961
+31
+2132.22303794032
+12
+-7.9835492721704
+22
+-1175.36488823867
+32
+2074.37413059252
+13
+-7.9835492721704
+23
+-1175.36488823867
+33
+2074.37413059252
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-61.0926416769977
+20
+-1260.03571107878
+30
+2133.75729291171
+11
+-22.366856767743
+21
+-1175.36477512426
+31
+2068.33758432885
+12
+-52.1338277196439
+22
+-1271.71596451559
+32
+2118.62293972957
+13
+-52.1338277196439
+23
+-1271.71596451559
+33
+2118.62293972957
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-13.1114461530171
+20
+1076.22932123545
+30
+1964.35852270987
+11
+-22.0439379137581
+21
+1078.14549502223
+31
+2001.86904889088
+12
+-39.2273404582702
+22
+1076.22941306619
+32
+1974.77387714657
+13
+-39.2273404582702
+23
+1076.22941306619
+33
+1974.77387714657
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0439379137581
+20
+1078.14549502223
+30
+2001.86904889088
+11
+-13.1114461530171
+21
+1076.22932123545
+31
+1964.35852270987
+12
+-7.60492084946682
+22
+1078.14544501338
+32
+1995.96699742271
+13
+-7.60492084946682
+23
+1078.14544501338
+33
+1995.96699742271
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.354158629998
+20
+1078.14514361671
+30
+2068.34955528244
+11
+-7.9835492721704
+21
+-1175.36488823867
+31
+2074.37413059252
+12
+-7.97085113442526
+22
+1078.14503050231
+32
+2074.3861015461
+13
+-7.97085113442526
+23
+1078.14503050231
+33
+2074.3861015461
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.9835492721704
+20
+-1175.36488823867
+30
+2074.37413059252
+11
+-22.354158629998
+21
+1078.14514361671
+31
+2068.34955528244
+12
+-22.366856767743
+22
+-1175.36477512426
+32
+2068.33758432885
+13
+-22.366856767743
+23
+-1175.36477512426
+33
+2068.33758432885
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.000316577896367365
+20
+-1635.02455455848
+30
+2035.20251476124
+11
+-33.1362951900026
+21
+-1635.02486008634
+31
+2012.83697729966
+12
+-22.055000168389
+22
+-1635.02485596371
+32
+2001.85862013831
+13
+-22.055000168389
+23
+-1635.02485596371
+33
+2001.85862013831
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-95.8528713533217
+20
+-1271.71539254856
+30
+2057.32598938986
+11
+-112.889250073865
+21
+-1260.03638576054
+31
+2061.69272669082
+12
+-39.2472653964783
+22
+-1175.36454443869
+32
+2042.81727224341
+13
+-39.2472653964783
+23
+-1175.36454443869
+33
+2042.81727224341
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1365944868046
+20
+-1575.77504550416
+30
+2057.56773748292
+11
+39.1734746098794
+21
+-1635.02429142183
+31
+2043.18474472703
+12
+39.1731407508892
+22
+-1575.77508789537
+32
+2043.18442998714
+13
+39.1731407508892
+23
+-1575.77508789537
+33
+2043.18442998714
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.1734746098794
+20
+-1635.02429142183
+30
+2043.18474472703
+11
+33.1365944868046
+21
+-1575.77504550416
+31
+2057.56773748292
+12
+33.1369283457947
+22
+-1635.02424903062
+32
+2057.56805222281
+13
+33.1369283457947
+23
+-1635.02424903062
+33
+2057.56805222281
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.1731407508892
+20
+-1575.77508789537
+30
+2043.18442998714
+11
+97.0220443296732
+21
+-1479.4236280611
+31
+2051.44200620966
+12
+114.432786822367
+22
+-1491.10243675244
+32
+2053.92735141868
+13
+114.432786822367
+23
+-1491.10243675244
+33
+2053.92735141868
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2273404582702
+20
+1076.22941306619
+30
+1974.77387714657
+11
+-59.3694325616239
+21
+1087.68206778655
+31
+1994.39059084441
+12
+-39.2272759245986
+22
+1087.68205849534
+32
+1974.77393798458
+13
+-39.2272759245986
+23
+1087.68205849534
+33
+1974.77393798458
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-59.3694325616239
+20
+1087.68206778655
+30
+1994.39059084441
+11
+-39.2273404582702
+21
+1076.22941306619
+31
+1974.77387714657
+12
+-59.3694970952955
+22
+1076.22942235741
+32
+1994.39053000639
+13
+-59.3694970952955
+23
+1076.22942235741
+33
+1994.39053000639
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2273404582702
+20
+1076.22941306619
+30
+1974.77387714657
+11
+-33.1252329353715
+21
+1078.14549914487
+31
+2012.84740605224
+12
+-59.3694970952955
+22
+1076.22942235741
+32
+1994.39053000639
+13
+-59.3694970952955
+23
+1076.22942235741
+33
+1994.39053000639
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1252329353715
+20
+1078.14549914487
+30
+2012.84740605224
+11
+-39.2273404582702
+21
+1076.22941306619
+31
+1974.77387714657
+12
+-22.0439379137581
+22
+1078.14549502223
+32
+2001.86904889088
+13
+-22.0439379137581
+23
+1078.14549502223
+33
+2001.86904889088
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-59.3694970952955
+20
+1076.22942235741
+30
+1994.39053000639
+11
+-39.1617791994563
+21
+1078.14545675366
+31
+2027.23071354802
+12
+-70.4714553052104
+22
+1076.22934769458
+32
+2020.22202371684
+13
+-70.4714553052104
+23
+1076.22934769458
+33
+2020.22202371684
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1617791994563
+20
+1078.14545675366
+30
+2027.23071354802
+11
+-59.3694970952955
+21
+1076.22942235741
+31
+1994.39053000639
+12
+-33.1252329353715
+22
+1078.14549914487
+32
+2012.84740605224
+13
+-33.1252329353715
+23
+1078.14549914487
+33
+2012.84740605224
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-18.7251686818196
+20
+-1491.10267866227
+30
+2149.63500412557
+11
+-7.98224724804656
+21
+-1575.77518791732
+31
+2074.37535805364
+12
+-16.2399513209942
+22
+-1479.42383714638
+32
+2132.22426540144
+13
+-16.2399513209942
+23
+-1479.42383714638
+33
+2132.22426540144
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3439119046243
+20
+-1575.77542175822
+30
+2057.25751676867
+11
+-80.0884082650914
+21
+-1479.42440887799
+31
+2092.3238212554
+12
+-94.1569105870414
+22
+-1491.10335208811
+32
+2102.87773026184
+13
+-94.1569105870414
+23
+-1491.10335208811
+33
+2102.87773026184
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1362951900026
+20
+-1635.02486008634
+30
+2012.83697729966
+11
+-39.1731753130775
+21
+-1575.77561416868
+31
+2027.21997005555
+12
+-33.1366290489928
+22
+-1575.77565655989
+32
+2012.83666255977
+13
+-33.1366290489928
+23
+-1575.77565655989
+33
+2012.83666255977
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1731753130775
+20
+-1575.77561416868
+30
+2027.21997005555
+11
+-33.1362951900026
+21
+-1635.02486008634
+31
+2012.83697729966
+12
+-39.1728414540873
+22
+-1635.02481769514
+32
+2027.22028479544
+13
+-39.1728414540873
+23
+-1635.02481769514
+33
+2027.22028479544
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.97085113442526
+20
+1078.14503050231
+30
+2074.3861015461
+11
+13.1341822217786
+21
+1076.2284205692
+31
+2106.06734395821
+12
+-14.9795415848991
+22
+1076.22858095908
+32
+2105.69575667421
+13
+-14.9795415848991
+23
+1076.22858095908
+33
+2105.69575667421
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+13.1341822217786
+20
+1076.2284205692
+30
+2106.06734395821
+11
+-7.97085113442526
+21
+1078.14503050231
+31
+2074.3861015461
+12
+7.62767851452085
+22
+1078.14494222063
+32
+2074.45888960491
+13
+7.62767851452085
+23
+1078.14494222063
+33
+2074.45888960491
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.1845368645104
+20
+1078.14493048035
+30
+2043.19517347961
+11
+59.3922331640569
+21
+1076.22831944724
+31
+2076.0353366617
+12
+33.1479906004257
+22
+1078.14488808915
+32
+2057.57848097538
+13
+33.1479906004257
+23
+1078.14488808915
+33
+2057.57848097538
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+59.3922331640569
+20
+1076.22831944724
+30
+2076.0353366617
+11
+39.1845368645104
+21
+1078.14493048035
+31
+2043.19517347961
+12
+70.4941913739718
+22
+1076.22839411006
+32
+2050.20384295124
+13
+70.4941913739718
+23
+1076.22839411006
+33
+2050.20384295124
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.0625974234421623
+20
+1105.4614427137
+30
+2035.21299417206
+11
+-20.3486042412317
+21
+1105.46140000763
+31
+2064.90342673756
+12
+-7.43285738619353
+22
+1105.46129774208
+32
+2070.45440584214
+13
+-7.43285738619353
+23
+1105.46129774208
+33
+2070.45440584214
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-40.8110352949755
+20
+1076.22878549019
+30
+2094.59379846504
+11
+-60.4276236204933
+21
+1087.68164845367
+31
+2074.45170266659
+12
+-60.4276881541649
+22
+1076.22900302453
+32
+2074.45164182857
+13
+-60.4276881541649
+23
+1076.22900302453
+33
+2074.45164182857
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-60.4276236204933
+20
+1087.68164845367
+30
+2074.45170266659
+11
+-40.8110352949755
+21
+1076.22878549019
+31
+2094.59379846504
+12
+-40.8109707613038
+22
+1087.68143091934
+32
+2094.59385930307
+13
+-40.8109707613038
+23
+1087.68143091934
+33
+2094.59385930307
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-61.0913396528737
+20
+-1491.10300172636
+30
+2133.75852037282
+11
+-52.13252569552
+21
+-1479.4241116404
+31
+2118.62416719069
+12
+-22.3655547436192
+22
+-1575.77530103172
+32
+2068.33881178997
+13
+-22.3655547436192
+23
+-1575.77530103172
+33
+2068.33881178997
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-95.851569329198
+20
+-1479.42468360743
+30
+2057.32721685097
+11
+-39.1731753130775
+21
+-1575.77561416868
+31
+2027.21997005555
+12
+-39.2459633723545
+22
+-1575.77553171729
+32
+2042.81849970453
+13
+-39.2459633723545
+23
+-1575.77553171729
+33
+2042.81849970453
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-114.43412340868
+20
+-1260.03663466403
+30
+2016.47582116289
+11
+-33.1379310731166
+21
+-1175.3644195961
+31
+2012.83543509865
+12
+-98.5576396546941
+22
+-1260.0367702577
+32
+1974.10965019129
+13
+-98.5576396546941
+23
+-1260.0367702577
+33
+1974.10965019129
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.1264639806523
+20
+-1271.7151812764
+30
+1939.34942428128
+11
+-26.4917714082634
+21
+-1491.10392998463
+31
+1922.31426925329
+12
+-26.4930734323873
+22
+-1260.03663933705
+32
+1922.31304179217
+13
+-26.4930734323873
+23
+-1260.03663933705
+33
+1922.31304179217
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-26.4917714082634
+20
+-1491.10392998463
+30
+1922.31426925329
+11
+-22.1264639806523
+21
+-1271.7151812764
+31
+1939.34942428128
+12
+-22.1251619565284
+22
+-1479.42489487959
+32
+1939.3506517424
+13
+-22.1251619565284
+23
+-1479.42489487959
+33
+1939.3506517424
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.3642181573071
+20
+-1175.36467512367
+30
+2002.0643607916
+11
+52.1310574918292
+21
+-1271.71566573164
+31
+1951.77888131083
+12
+61.0900030665619
+22
+-1260.03606969012
+32
+1936.64465220875
+13
+61.0900030665619
+23
+-1260.03606969012
+33
+1936.64465220875
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-80.0884082650914
+20
+-1479.42440887799
+30
+2092.3238212554
+11
+-33.3439119046243
+21
+-1575.77542175822
+31
+2057.25751676867
+12
+-22.3655547436192
+22
+-1575.77530103172
+32
+2068.33881178997
+13
+-22.3655547436192
+23
+-1575.77530103172
+33
+2068.33881178997
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+26.4904348219512
+20
+-1260.03514143184
+30
+2148.08890332828
+11
+67.6755129564576
+21
+-1491.10229951782
+31
+2129.35909332543
+12
+67.6742109323337
+22
+-1260.03500887024
+32
+2129.35786586431
+13
+67.6742109323337
+23
+-1260.03500887024
+33
+2129.35786586431
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+67.6755129564576
+20
+-1491.10229951782
+30
+2129.35909332543
+11
+26.4904348219512
+21
+-1260.03514143184
+31
+2148.08890332828
+12
+26.491736846075
+22
+-1491.10243207942
+32
+2148.0901307894
+13
+26.491736846075
+23
+-1491.10243207942
+33
+2148.0901307894
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.1731407508892
+20
+-1575.77508789537
+30
+2043.18442998714
+11
+39.2462626691564
+21
+-1635.02437387321
+31
+2027.58621507805
+12
+39.2459288101664
+22
+-1575.77517034675
+32
+2027.58590033816
+13
+39.2459288101664
+23
+-1575.77517034675
+33
+2027.58590033816
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2462626691564
+20
+-1635.02437387321
+30
+2027.58621507805
+11
+39.1731407508892
+21
+-1575.77508789537
+31
+2043.18442998714
+12
+39.1734746098794
+22
+-1635.02429142183
+32
+2043.18474472703
+13
+39.1734746098794
+23
+-1635.02429142183
+33
+2043.18474472703
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1728414540873
+20
+-1635.02481769514
+30
+2027.22028479544
+11
+-39.2459633723545
+21
+-1575.77553171729
+31
+2042.81849970453
+12
+-39.1731753130775
+22
+-1575.77561416868
+32
+2027.21997005555
+13
+-39.1731753130775
+23
+-1575.77561416868
+33
+2027.21997005555
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2459633723545
+20
+-1575.77553171729
+30
+2042.81849970453
+11
+-39.1728414540873
+21
+-1635.02481769514
+31
+2027.22028479544
+12
+-39.2456295133644
+22
+-1635.02473524376
+32
+2042.81881444442
+13
+-39.2456295133644
+23
+-1635.02473524376
+33
+2042.81881444442
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61761898721182
+20
+-1175.36447372759
+30
+1995.95502646913
+11
+-7.60922450597496
+21
+314.385213179183
+31
+1995.96294022367
+12
+7.98091066173456
+22
+-1175.36456200926
+32
+1996.02781452793
+13
+7.98091066173456
+23
+-1175.36456200926
+33
+1996.02781452793
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+80.0882420855246
+20
+-1479.42411318676
+30
+1978.08045470725
+11
+52.1310574918292
+21
+-1271.71566573164
+31
+1951.77888131083
+12
+80.0869400614005
+22
+-1271.71596296923
+32
+1978.07922724613
+13
+80.0869400614005
+23
+-1271.71596296923
+33
+1978.07922724613
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+52.1310574918292
+20
+-1271.71566573164
+30
+1951.77888131083
+11
+80.0882420855246
+21
+-1479.42411318676
+31
+1978.08045470725
+12
+52.132359515953
+22
+-1479.42441042435
+32
+1951.78010877195
+13
+52.132359515953
+23
+-1479.42441042435
+33
+1951.78010877195
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.61628240089973
+20
+-1575.77509963565
+30
+2074.44814611245
+11
+22.1249957769614
+21
+-1479.42362718516
+31
+2131.05362422024
+12
+-16.2399513209942
+22
+-1479.42383714638
+32
+2132.22426540144
+13
+-16.2399513209942
+23
+-1479.42383714638
+33
+2132.22426540144
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.60922450597496
+20
+314.385213179183
+30
+1995.96294022367
+11
+-22.0439379137581
+21
+1078.14549502223
+31
+2001.86904889088
+12
+-7.60492084946682
+22
+1078.14544501338
+32
+1995.96699742271
+13
+-7.60492084946682
+23
+1078.14544501338
+33
+1995.96699742271
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0439379137581
+20
+1078.14549502223
+30
+2001.86904889088
+11
+-7.60922450597496
+21
+314.385213179183
+31
+1995.96294022367
+12
+-22.056636051503
+22
+-1175.36442371874
+32
+2001.8570779373
+13
+-22.056636051503
+23
+-1175.36442371874
+33
+2001.8570779373
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.056636051503
+20
+-1175.36442371874
+30
+2001.8570779373
+11
+-7.60922450597496
+21
+314.385213179183
+31
+1995.96294022367
+12
+-7.61761898721182
+22
+-1175.36447372759
+32
+1995.95502646913
+13
+-7.61761898721182
+23
+-1175.36447372759
+33
+1995.95502646913
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-70.8430425900572
+20
+1076.22920044446
+30
+2048.33574752358
+11
+-70.4713907715387
+21
+1087.68199312372
+31
+2020.22208455487
+12
+-70.4714553052104
+22
+1076.22934769458
+32
+2020.22202371684
+13
+-70.4714553052104
+23
+1076.22934769458
+33
+2020.22202371684
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-70.4713907715387
+20
+1087.68199312372
+30
+2020.22208455487
+11
+-70.8430425900572
+21
+1076.22920044446
+31
+2048.33574752358
+12
+-70.8429780563856
+22
+1087.6818458736
+32
+2048.3358083616
+13
+-70.8429780563856
+23
+1087.6818458736
+33
+2048.3358083616
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.61628240089973
+20
+-1575.77509963565
+30
+2074.44814611245
+11
+22.055299465191
+21
+-1575.7750496268
+31
+2068.54609464427
+12
+67.6755129564576
+22
+-1491.10229951782
+32
+2129.35909332543
+13
+67.6755129564576
+23
+-1491.10229951782
+33
+2129.35909332543
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+57.1202981576705
+20
+-1271.71656243456
+30
+2115.28923569394
+11
+83.421946117878
+21
+-1479.42351402902
+31
+2087.33458058465
+12
+83.4206440937541
+22
+-1271.71656212697
+32
+2087.33335312354
+13
+83.4206440937541
+23
+-1271.71656212697
+33
+2087.33335312354
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+83.421946117878
+20
+-1479.42351402902
+30
+2087.33458058465
+11
+57.1202981576705
+21
+-1271.71656243456
+31
+2115.28923569394
+12
+57.1216001817944
+22
+-1479.42351372144
+32
+2115.29046315506
+13
+57.1216001817944
+23
+-1479.42351372144
+33
+2115.29046315506
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+18.7251341196313
+20
+-1491.10368340178
+30
+1920.76939591712
+11
+16.2384831173033
+21
+-1271.71539123762
+31
+1938.17878310009
+12
+18.7238320955074
+22
+-1260.0363927542
+32
+1920.768168456
+13
+18.7238320955074
+23
+-1260.0363927542
+33
+1920.768168456
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+16.2384831173033
+20
+-1271.71539123762
+30
+1938.17878310009
+11
+18.7251341196313
+21
+-1491.10368340178
+31
+1920.76939591712
+12
+16.2397851414271
+22
+-1479.42468491837
+32
+1938.18001056121
+13
+16.2397851414271
+23
+-1479.42468491837
+33
+1938.18001056121
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+26.4904348219512
+20
+-1260.03514143184
+30
+2148.08890332828
+11
+67.6742109323337
+21
+-1260.03500887024
+31
+2129.35786586431
+12
+7.61498037677585
+22
+-1175.36497652034
+32
+2074.44691865133
+13
+7.61498037677585
+23
+-1175.36497652034
+33
+2074.44691865133
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+98.5550010442582
+20
+-1260.03501051119
+30
+2096.29229492916
+11
+114.431484798243
+21
+-1260.03514610487
+31
+2053.92612395756
+12
+33.1352924626808
+22
+-1175.36503065183
+32
+2057.5665100218
+13
+33.1352924626808
+23
+-1175.36503065183
+33
+2057.5665100218
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3425753183123
+20
+-1175.36479585016
+30
+2013.1456558129
+11
+112.886611463429
+21
+-1260.03539500836
+31
+2008.70921842963
+12
+94.1555740007292
+22
+-1260.03571932837
+32
+1967.52544231974
+13
+94.1555740007292
+23
+-1260.03571932837
+33
+1967.52544231974
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1352924626808
+20
+-1175.36503065183
+30
+2057.5665100218
+11
+114.431484798243
+21
+-1260.03514610487
+31
+2053.92612395756
+12
+39.1718387267654
+22
+-1175.36498826062
+32
+2043.18320252602
+13
+39.1718387267654
+23
+-1175.36498826062
+33
+2043.18320252602
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-18.7264707059435
+20
+-1260.03538801469
+30
+2149.63377666445
+11
+-16.2399513209942
+21
+-1479.42383714638
+31
+2132.22426540144
+12
+-16.241253345118
+22
+-1271.71623900961
+32
+2132.22303794032
+13
+-16.241253345118
+23
+-1271.71623900961
+33
+2132.22303794032
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-16.2399513209942
+20
+-1479.42383714638
+30
+2132.22426540144
+11
+-18.7264707059435
+21
+-1260.03538801469
+31
+2149.63377666445
+12
+-18.7251686818196
+22
+-1491.10267866227
+32
+2149.63500412557
+13
+-18.7251686818196
+23
+-1491.10267866227
+33
+2149.63500412557
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3439119046243
+20
+-1575.77542175822
+30
+2057.25751676867
+11
+-39.1731753130775
+21
+-1575.77561416868
+31
+2027.21997005555
+12
+-39.2459633723545
+22
+-1575.77553171729
+32
+2042.81849970453
+13
+-39.2459633723545
+23
+-1575.77553171729
+33
+2042.81849970453
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1731753130775
+20
+-1575.77561416868
+30
+2027.21997005555
+11
+-33.3439119046243
+21
+-1575.77542175822
+31
+2057.25751676867
+12
+-33.1366290489928
+22
+-1575.77565655989
+32
+2012.83666255977
+13
+-33.1366290489928
+23
+-1575.77565655989
+33
+2012.83666255977
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1366290489928
+20
+-1575.77565655989
+30
+2012.83666255977
+11
+-33.3439119046243
+21
+-1575.77542175822
+31
+2057.25751676867
+12
+-22.3655547436192
+22
+-1575.77530103172
+32
+2068.33881178997
+13
+-22.3655547436192
+23
+-1575.77530103172
+33
+2068.33881178997
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1366290489928
+20
+-1575.77565655989
+30
+2012.83666255977
+11
+-22.3655547436192
+21
+-1575.77530103172
+31
+2068.33881178997
+12
+-22.0553340273792
+22
+-1575.77565243725
+32
+2001.85830539842
+13
+-22.0553340273792
+23
+-1575.77565243725
+33
+2001.85830539842
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0553340273792
+20
+-1575.77565243725
+30
+2001.85830539842
+11
+-22.3655547436192
+21
+-1575.77530103172
+31
+2068.33881178997
+12
+-7.98224724804656
+22
+-1575.77518791732
+32
+2074.37535805364
+13
+-7.98224724804656
+23
+-1575.77518791732
+33
+2074.37535805364
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0553340273792
+20
+-1575.77565243725
+30
+2001.85830539842
+11
+-7.98224724804656
+21
+-1575.77518791732
+31
+2074.37535805364
+12
+-7.61631696308793
+22
+-1575.7756024284
+32
+1995.95625393024
+13
+-7.61631696308793
+23
+-1575.7756024284
+33
+1995.95625393024
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61631696308793
+20
+-1575.7756024284
+30
+1995.95625393024
+11
+-7.98224724804656
+21
+-1575.77518791732
+31
+2074.37535805364
+12
+7.61628240089973
+22
+-1575.77509963565
+32
+2074.44814611245
+13
+7.61628240089973
+23
+-1575.77509963565
+33
+2074.44814611245
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61631696308793
+20
+-1575.7756024284
+30
+1995.95625393024
+11
+7.61628240089973
+21
+-1575.77509963565
+31
+2074.44814611245
+12
+7.98221268585839
+22
+-1575.77551414673
+32
+1996.02904198905
+13
+7.98221268585839
+23
+-1575.77551414673
+33
+1996.02904198905
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98221268585839
+20
+-1575.77551414673
+30
+1996.02904198905
+11
+7.61628240089973
+21
+-1575.77509963565
+31
+2074.44814611245
+12
+22.055299465191
+22
+-1575.7750496268
+32
+2068.54609464427
+13
+22.055299465191
+23
+-1575.7750496268
+33
+2068.54609464427
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98221268585839
+20
+-1575.77551414673
+30
+1996.02904198905
+11
+22.055299465191
+21
+-1575.7750496268
+31
+2068.54609464427
+12
+22.365520181431
+22
+-1575.77540103232
+32
+2002.06558825272
+13
+22.365520181431
+23
+-1575.77540103232
+33
+2002.06558825272
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.365520181431
+20
+-1575.77540103232
+30
+2002.06558825272
+11
+22.055299465191
+21
+-1575.7750496268
+31
+2068.54609464427
+12
+33.1365944868046
+22
+-1575.77504550416
+32
+2057.56773748292
+13
+33.1365944868046
+23
+-1575.77504550416
+33
+2057.56773748292
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.365520181431
+20
+-1575.77540103232
+30
+2002.06558825272
+11
+33.1365944868046
+21
+-1575.77504550416
+31
+2057.56773748292
+12
+33.3438773424362
+22
+-1575.77528030582
+32
+2013.14688327402
+13
+33.3438773424362
+23
+-1575.77528030582
+33
+2013.14688327402
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3438773424362
+20
+-1575.77528030582
+30
+2013.14688327402
+11
+33.1365944868046
+21
+-1575.77504550416
+31
+2057.56773748292
+12
+39.1731407508892
+22
+-1575.77508789537
+32
+2043.18442998714
+13
+39.1731407508892
+23
+-1575.77508789537
+33
+2043.18442998714
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3438773424362
+20
+-1575.77528030582
+30
+2013.14688327402
+11
+39.1731407508892
+21
+-1575.77508789537
+31
+2043.18442998714
+12
+39.2459288101664
+22
+-1575.77517034675
+32
+2027.58590033816
+13
+39.2459288101664
+23
+-1575.77517034675
+33
+2027.58590033816
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.055299465191
+20
+-1575.7750496268
+30
+2068.54609464427
+11
+33.1369283457947
+21
+-1635.02424903062
+31
+2057.56805222281
+12
+33.1365944868046
+22
+-1575.77504550416
+32
+2057.56773748292
+13
+33.1365944868046
+23
+-1575.77504550416
+33
+2057.56773748292
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1369283457947
+20
+-1635.02424903062
+30
+2057.56805222281
+11
+22.055299465191
+21
+-1575.7750496268
+31
+2068.54609464427
+12
+22.0556333241812
+22
+-1635.02425315326
+32
+2068.54640938416
+13
+22.0556333241812
+23
+-1635.02425315326
+33
+2068.54640938416
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3452139287482
+20
+-1175.36465439776
+30
+2057.25628930755
+11
+-39.2345672587327
+21
+1078.14537430228
+31
+2042.82924319699
+12
+-39.2472653964783
+22
+-1175.36454443869
+32
+2042.81727224341
+13
+-39.2472653964783
+23
+-1175.36454443869
+33
+2042.81727224341
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2345672587327
+20
+1078.14537430228
+30
+2042.82924319699
+11
+-33.3452139287482
+21
+-1175.36465439776
+31
+2057.25628930755
+12
+-33.3325157910026
+22
+1078.14526434321
+32
+2057.26826026113
+13
+-33.3325157910026
+23
+1078.14526434321
+33
+2057.26826026113
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.3642181573071
+20
+-1175.36467512367
+30
+2002.0643607916
+11
+7.99360879947956
+21
+1078.14535673171
+31
+1996.03978548152
+12
+22.3769162950522
+22
+1078.1452436173
+32
+2002.07633174518
+13
+22.3769162950522
+23
+1078.1452436173
+33
+2002.07633174518
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.99360879947956
+20
+1078.14535673171
+30
+1996.03978548152
+11
+22.3642181573071
+21
+-1175.36467512367
+31
+2002.0643607916
+12
+7.98091066173456
+22
+-1175.36456200926
+32
+1996.02781452793
+13
+7.98091066173456
+23
+-1175.36456200926
+33
+1996.02781452793
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3552734560573
+20
+1078.14512289081
+30
+2013.15762676649
+11
+39.2446267860425
+21
+-1175.36490580924
+31
+2027.58467287705
+12
+33.3425753183123
+22
+-1175.36479585016
+32
+2013.1456558129
+13
+33.3425753183123
+23
+-1175.36479585016
+33
+2013.1456558129
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2446267860425
+20
+-1175.36490580924
+30
+2027.58467287705
+11
+33.3552734560573
+21
+1078.14512289081
+31
+2013.15762676649
+12
+39.2573249237874
+22
+1078.14501293173
+32
+2027.59664383063
+13
+39.2573249237874
+23
+1078.14501293173
+33
+2027.59664383063
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-94.1569105870414
+20
+-1491.10335208811
+30
+2102.87773026184
+11
+-112.887948049741
+21
+-1491.10367640812
+31
+2061.69395415194
+12
+-33.3439119046243
+22
+-1575.77542175822
+32
+2057.25751676867
+13
+-33.3439119046243
+23
+-1575.77542175822
+33
+2057.25751676867
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-14.9794770512274
+20
+1087.68122638822
+30
+2105.69581751223
+11
+13.1341822217786
+21
+1076.2284205692
+31
+2106.06734395821
+12
+13.1342467554502
+22
+1087.68106599834
+32
+2106.06740479624
+13
+13.1342467554502
+23
+1087.68106599834
+33
+2106.06740479624
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+13.1341822217786
+20
+1076.2284205692
+30
+2106.06734395821
+11
+-14.9794770512274
+21
+1087.68122638822
+31
+2105.69581751223
+12
+-14.9795415848991
+22
+1076.22858095908
+32
+2105.69575667421
+13
+-14.9795415848991
+23
+1076.22858095908
+33
+2105.69575667421
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.62767851452085
+20
+1078.14494222063
+30
+2074.45888960491
+11
+22.062391922304
+21
+314.384660377585
+31
+2068.5527809377
+12
+22.0666955788121
+22
+1078.14489221178
+32
+2068.55683813674
+13
+22.0666955788121
+23
+1078.14489221178
+33
+2068.55683813674
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.062391922304
+20
+314.384660377585
+30
+2068.5527809377
+11
+7.62767851452085
+21
+1078.14494222063
+31
+2074.45888960491
+12
+7.61498037677585
+22
+-1175.36497652034
+32
+2074.44691865133
+13
+7.61498037677585
+23
+-1175.36497652034
+33
+2074.44691865133
+70
+13
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.062391922304
+20
+314.384660377585
+30
+2068.5527809377
+11
+7.61498037677585
+21
+-1175.36497652034
+31
+2074.44691865133
+12
+22.0539974410672
+22
+-1175.36502652919
+32
+2068.54486718316
+13
+22.0539974410672
+23
+-1175.36502652919
+33
+2068.54486718316
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.98224724804656
+20
+-1575.77518791732
+30
+2074.37535805364
+11
+7.61628240089973
+21
+-1575.77509963565
+31
+2074.44814611245
+12
+-16.2399513209942
+22
+-1479.42383714638
+32
+2132.22426540144
+13
+-16.2399513209942
+23
+-1479.42383714638
+33
+2132.22426540144
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.055299465191
+20
+-1575.7750496268
+30
+2068.54609464427
+11
+33.1365944868046
+21
+-1575.77504550416
+31
+2057.56773748292
+12
+83.421946117878
+22
+-1479.42351402902
+32
+2087.33458058465
+13
+83.421946117878
+23
+-1479.42351402902
+33
+2087.33458058465
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-80.0897102892153
+20
+-1271.715667278
+30
+2092.32259379428
+11
+-52.13252569552
+21
+-1479.4241116404
+31
+2118.62416719069
+12
+-52.1338277196439
+22
+-1271.71596451559
+32
+2118.62293972957
+13
+-52.1338277196439
+23
+-1271.71596451559
+33
+2118.62293972957
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-52.13252569552
+20
+-1479.4241116404
+30
+2118.62416719069
+11
+-80.0897102892153
+21
+-1271.715667278
+31
+2092.32259379428
+12
+-80.0884082650914
+22
+-1479.42440887799
+32
+2092.3238212554
+13
+-80.0884082650914
+23
+-1479.42440887799
+33
+2092.3238212554
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-67.6755475186457
+20
+-1491.10406254623
+30
+1941.04530671726
+11
+-57.1230683854853
+21
+-1271.71506781267
+31
+1955.11258534646
+12
+-67.6768495427695
+22
+-1260.03677189865
+32
+1941.04407925614
+13
+-67.6768495427695
+23
+-1260.03677189865
+33
+1941.04407925614
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-57.1230683854853
+20
+-1271.71506781267
+30
+1955.11258534646
+11
+-67.6755475186457
+21
+-1491.10406254623
+31
+1941.04530671726
+12
+-57.1217663613614
+22
+-1479.42500834332
+32
+1955.11381280758
+13
+-57.1217663613614
+23
+-1479.42500834332
+33
+1955.11381280758
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.366856767743
+20
+-1175.36477512426
+30
+2068.33758432885
+11
+-33.3325157910026
+21
+1078.14526434321
+31
+2057.26826026113
+12
+-33.3452139287482
+22
+-1175.36465439776
+32
+2057.25628930755
+13
+-33.3452139287482
+23
+-1175.36465439776
+33
+2057.25628930755
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3325157910026
+20
+1078.14526434321
+30
+2057.26826026113
+11
+-22.366856767743
+21
+-1175.36477512426
+31
+2068.33758432885
+12
+-22.354158629998
+22
+1078.14514361671
+32
+2068.34955528244
+13
+-22.354158629998
+23
+1078.14514361671
+33
+2068.34955528244
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.0666955788121
+20
+1078.14489221178
+30
+2068.55683813674
+11
+33.1352924626808
+21
+-1175.36503065183
+31
+2057.5665100218
+12
+33.1479906004257
+22
+1078.14488808915
+32
+2057.57848097538
+13
+33.1479906004257
+23
+1078.14488808915
+33
+2057.57848097538
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1352924626808
+20
+-1175.36503065183
+30
+2057.5665100218
+11
+22.0666955788121
+21
+1078.14489221178
+31
+2068.55683813674
+12
+22.062391922304
+22
+314.384660377585
+32
+2068.5527809377
+13
+22.062391922304
+23
+314.384660377585
+33
+2068.5527809377
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-70.4714553052104
+20
+1076.22934769458
+30
+2020.22202371684
+11
+-39.2345672587327
+21
+1078.14537430228
+31
+2042.82924319699
+12
+-70.8430425900572
+22
+1076.22920044446
+32
+2048.33574752358
+13
+-70.8430425900572
+23
+1076.22920044446
+33
+2048.33574752358
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2345672587327
+20
+1078.14537430228
+30
+2042.82924319699
+11
+-70.4714553052104
+21
+1076.22934769458
+31
+2020.22202371684
+12
+-39.1617791994563
+22
+1078.14545675366
+32
+2027.23071354802
+13
+-39.1617791994563
+23
+1078.14545675366
+33
+2027.23071354802
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+40.8337713637369
+20
+1076.22895631445
+30
+1975.83206820304
+11
+33.3552734560573
+21
+1078.14512289081
+31
+2013.15762676649
+12
+22.3769162950522
+22
+1078.1452436173
+32
+2002.07633174518
+13
+22.3769162950522
+23
+1078.1452436173
+33
+2002.07633174518
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3552734560573
+20
+1078.14512289081
+30
+2013.15762676649
+11
+40.8337713637369
+21
+1076.22895631445
+31
+1975.83206820304
+12
+60.4504242229264
+22
+1076.22873878012
+32
+1995.97422483951
+13
+60.4504242229264
+23
+1076.22873878012
+33
+1995.97422483951
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3438773424362
+20
+-1575.77528030582
+30
+2013.14688327402
+11
+22.365520181431
+21
+-1575.77540103232
+31
+2002.06558825272
+12
+52.132359515953
+22
+-1479.42441042435
+32
+1951.78010877195
+13
+52.132359515953
+23
+-1479.42441042435
+33
+1951.78010877195
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1731753130775
+20
+-1575.77561416868
+30
+2027.21997005555
+11
+-114.432821384555
+21
+-1491.10392531161
+31
+2016.47704862401
+12
+-33.1366290489928
+22
+-1575.77565655989
+32
+2012.83666255977
+13
+-33.1366290489928
+23
+-1575.77565655989
+33
+2012.83666255977
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2501410607034
+20
+1087.68097416759
+30
+2095.65205035954
+11
+59.3922331640569
+21
+1076.22831944724
+31
+2076.0353366617
+12
+59.3922976977286
+22
+1087.68096487638
+32
+2076.03539749972
+13
+59.3922976977286
+23
+1087.68096487638
+33
+2076.03539749972
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+59.3922331640569
+20
+1076.22831944724
+30
+2076.0353366617
+11
+39.2501410607034
+21
+1087.68097416759
+31
+2095.65205035954
+12
+39.2500765270318
+22
+1076.22832873845
+32
+2095.65198952152
+13
+39.2500765270318
+23
+1076.22832873845
+33
+2095.65198952152
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0553340273792
+20
+-1575.77565243725
+30
+2001.85830539842
+11
+-83.4221122974449
+21
+-1479.42500803573
+31
+1983.06969537799
+12
+-57.1217663613614
+22
+-1479.42500834332
+32
+1955.11381280758
+13
+-57.1217663613614
+23
+-1479.42500834332
+33
+1955.11381280758
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+97.0220443296732
+20
+-1479.4236280611
+30
+2051.44200620966
+11
+39.1731407508892
+21
+-1575.77508789537
+31
+2043.18442998714
+12
+39.2459288101664
+22
+-1575.77517034675
+32
+2027.58590033816
+13
+39.2459288101664
+23
+-1575.77517034675
+33
+2027.58590033816
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.000316577896367365
+20
+-1635.02455455848
+30
+2035.20251476124
+11
+-21.0785055001976
+21
+-1635.02449443909
+31
+2068.87914953561
+12
+-33.3435780456342
+22
+-1635.02462528468
+32
+2057.25783150856
+13
+-33.3435780456342
+23
+-1635.02462528468
+33
+2057.25783150856
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98254654484851
+20
+-1635.02471767319
+30
+1996.02935672895
+11
+0.000316577896367365
+21
+-1635.02455455848
+31
+2035.20251476124
+12
+-7.61598310409778
+22
+-1635.02480595485
+32
+1995.95656867013
+13
+-7.61598310409778
+23
+-1635.02480595485
+33
+1995.95656867013
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.056636051503
+20
+-1175.36442371874
+30
+2001.8570779373
+11
+-57.1230683854853
+21
+-1271.71506781267
+31
+1955.11258534646
+12
+-83.4234143215687
+22
+-1271.71506812026
+32
+1983.06846791687
+13
+-83.4234143215687
+23
+-1271.71506812026
+33
+1983.06846791687
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-97.0222105092401
+20
+-1479.42489400365
+30
+2018.96226975299
+11
+-95.8528713533217
+21
+-1271.71539254856
+31
+2057.32598938986
+12
+-97.0235125333639
+22
+-1271.71518215234
+32
+2018.96104229187
+13
+-97.0235125333639
+23
+-1271.71518215234
+33
+2018.96104229187
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-95.8528713533217
+20
+-1271.71539254856
+30
+2057.32598938986
+11
+-97.0222105092401
+21
+-1479.42489400365
+31
+2018.96226975299
+12
+-95.851569329198
+22
+-1479.42468360743
+32
+2057.32721685097
+13
+-95.851569329198
+23
+-1479.42468360743
+33
+2057.32721685097
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+0.0625974234421623
+20
+1105.4614427137
+30
+2035.21299417206
+11
+-19.5567568228792
+21
+1105.46171379563
+31
+2004.99346607832
+12
+-29.6278351413918
+22
+1105.46171844124
+32
+2014.80179250824
+13
+-29.6278351413918
+23
+1105.46171844124
+33
+2014.80179250824
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61598310409778
+20
+-1635.02480595485
+30
+1995.95656867013
+11
+-22.0553340273792
+21
+-1575.77565243725
+31
+2001.85830539842
+12
+-7.61631696308793
+22
+-1575.7756024284
+32
+1995.95625393024
+13
+-7.61631696308793
+23
+-1575.7756024284
+33
+1995.95625393024
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0553340273792
+20
+-1575.77565243725
+30
+2001.85830539842
+11
+-7.61598310409778
+21
+-1635.02480595485
+31
+1995.95656867013
+12
+-22.055000168389
+22
+-1635.02485596371
+32
+2001.85862013831
+13
+-22.055000168389
+23
+-1635.02485596371
+33
+2001.85862013831
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-112.889250073865
+20
+-1260.03638576054
+30
+2061.69272669082
+11
+-33.3452139287482
+21
+-1175.36465439776
+31
+2057.25628930755
+12
+-39.2472653964783
+22
+-1175.36454443869
+32
+2042.81727224341
+13
+-39.2472653964783
+23
+-1175.36454443869
+33
+2042.81727224341
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+67.6742109323337
+20
+-1260.03500887024
+30
+2129.35786586431
+11
+57.1216001817944
+21
+-1479.42351372144
+31
+2115.29046315506
+12
+57.1202981576705
+22
+-1271.71656243456
+32
+2115.28923569394
+13
+57.1202981576705
+23
+-1271.71656243456
+33
+2115.28923569394
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+57.1216001817944
+20
+-1479.42351372144
+30
+2115.29046315506
+11
+67.6742109323337
+21
+-1260.03500887024
+31
+2129.35786586431
+12
+67.6755129564576
+22
+-1491.10229951782
+32
+2129.35909332543
+13
+67.6755129564576
+23
+-1491.10229951782
+33
+2129.35909332543
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98221268585839
+20
+-1575.77551414673
+30
+1996.02904198905
+11
+18.7251341196313
+21
+-1491.10368340178
+31
+1920.76939591712
+12
+61.0913050906858
+22
+-1491.1033603377
+32
+1936.64587966987
+13
+61.0913050906858
+23
+-1491.1033603377
+33
+1936.64587966987
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+57.1216001817944
+20
+-1479.42351372144
+30
+2115.29046315506
+11
+22.055299465191
+21
+-1575.7750496268
+31
+2068.54609464427
+12
+83.421946117878
+22
+-1479.42351402902
+32
+2087.33458058465
+13
+83.421946117878
+23
+-1479.42351402902
+33
+2087.33458058465
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+95.8501011255072
+20
+-1271.71623769867
+30
+2013.07583165055
+11
+112.886611463429
+21
+-1260.03539500836
+31
+2008.70921842963
+12
+39.2446267860425
+22
+-1175.36490580924
+32
+2027.58467287705
+13
+39.2446267860425
+23
+-1175.36490580924
+33
+2027.58467287705
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+83.4206440937541
+20
+-1271.71656212697
+30
+2087.33335312354
+11
+98.5550010442582
+21
+-1260.03501051119
+31
+2096.29229492916
+12
+33.1352924626808
+22
+-1175.36503065183
+32
+2057.5665100218
+13
+33.1352924626808
+23
+-1175.36503065183
+33
+2057.5665100218
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2459288101664
+20
+-1575.77517034675
+30
+2027.58590033816
+11
+112.887913487553
+21
+-1491.10268565594
+31
+2008.71044589075
+12
+95.8514031496311
+22
+-1479.42383845732
+32
+2013.07705911167
+13
+95.8514031496311
+23
+-1479.42383845732
+33
+2013.07705911167
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.1365944868046
+20
+-1575.77504550416
+30
+2057.56773748292
+11
+98.5563030683821
+21
+-1491.10230115877
+31
+2096.29352239028
+12
+83.421946117878
+22
+-1479.42351402902
+32
+2087.33458058465
+13
+83.421946117878
+23
+-1479.42351402902
+33
+2087.33458058465
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+70.8658431924901
+20
+1087.68118678933
+30
+2022.09017998252
+11
+70.4941913739718
+21
+1076.22839411006
+31
+2050.20384295124
+12
+70.8657786588185
+22
+1076.22854136019
+32
+2022.0901191445
+13
+70.8657786588185
+23
+1076.22854136019
+33
+2022.0901191445
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+70.4941913739718
+20
+1076.22839411006
+30
+2050.20384295124
+11
+70.8658431924901
+21
+1087.68118678933
+31
+2022.09017998252
+12
+70.4942559076435
+22
+1087.68103953921
+32
+2050.20390378926
+13
+70.4942559076435
+23
+1087.68103953921
+33
+2050.20390378926
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.0553340273792
+20
+-1575.77565243725
+30
+2001.85830539842
+11
+-67.6755475186457
+21
+-1491.10406254623
+31
+1941.04530671726
+12
+-7.61631696308793
+22
+-1575.7756024284
+32
+1995.95625393024
+13
+-7.61631696308793
+23
+-1575.7756024284
+33
+1995.95625393024
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3438773424362
+20
+-1575.77528030582
+30
+2013.14688327402
+11
+94.1568760248532
+21
+-1491.10300997595
+31
+1967.52666978086
+12
+112.887913487553
+22
+-1491.10268565594
+32
+2008.71044589075
+13
+112.887913487553
+23
+-1491.10268565594
+33
+2008.71044589075
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1744773372013
+20
+-1175.36446198731
+30
+2027.21874259443
+11
+-33.1295365918798
+21
+314.385267310674
+31
+2012.8433488532
+12
+-33.1379310731166
+22
+-1175.3644195961
+32
+2012.83543509865
+13
+-33.1379310731166
+23
+-1175.3644195961
+33
+2012.83543509865
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1295365918798
+20
+314.385267310674
+30
+2012.8433488532
+11
+-39.1744773372013
+21
+-1175.36446198731
+31
+2027.21874259443
+12
+-33.1252329353715
+22
+1078.14549914487
+32
+2012.84740605224
+13
+-33.1252329353715
+23
+1078.14549914487
+33
+2012.84740605224
+70
+3
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1252329353715
+20
+1078.14549914487
+30
+2012.84740605224
+11
+-39.1744773372013
+21
+-1175.36446198731
+31
+2027.21874259443
+12
+-39.1617791994563
+22
+1078.14545675366
+32
+2027.23071354802
+13
+-39.1617791994563
+23
+1078.14545675366
+33
+2027.23071354802
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61631696308793
+20
+-1575.7756024284
+30
+1995.95625393024
+11
+-67.6755475186457
+21
+-1491.10406254623
+31
+1941.04530671726
+12
+-26.4917714082634
+22
+-1491.10392998463
+32
+1922.31426925329
+13
+-26.4917714082634
+23
+-1491.10392998463
+33
+1922.31426925329
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.61628240089973
+20
+-1575.77509963565
+30
+2074.44814611245
+11
+22.0556333241812
+21
+-1635.02425315326
+31
+2068.54640938416
+12
+22.055299465191
+22
+-1575.7750496268
+32
+2068.54609464427
+13
+22.055299465191
+23
+-1575.7750496268
+33
+2068.54609464427
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.0556333241812
+20
+-1635.02425315326
+30
+2068.54640938416
+11
+7.61628240089973
+21
+-1575.77509963565
+31
+2074.44814611245
+12
+7.61661625988982
+22
+-1635.02430316211
+32
+2074.44846085234
+13
+7.61661625988982
+23
+-1635.02430316211
+33
+2074.44846085234
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2456295133644
+20
+-1635.02473524376
+30
+2042.81881444442
+11
+-33.3439119046243
+21
+-1575.77542175822
+31
+2057.25751676867
+12
+-39.2459633723545
+22
+-1575.77553171729
+32
+2042.81849970453
+13
+-39.2459633723545
+23
+-1575.77553171729
+33
+2042.81849970453
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.3439119046243
+20
+-1575.77542175822
+30
+2057.25751676867
+11
+-39.2456295133644
+21
+-1635.02473524376
+31
+2042.81881444442
+12
+-33.3435780456342
+22
+-1635.02462528468
+32
+2057.25783150856
+13
+-33.3435780456342
+23
+-1635.02462528468
+33
+2057.25783150856
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1744773372013
+20
+-1175.36446198731
+30
+2027.21874259443
+11
+-33.1379310731166
+21
+-1175.3644195961
+31
+2012.83543509865
+12
+-114.43412340868
+22
+-1260.03663466403
+32
+2016.47582116289
+13
+-114.43412340868
+23
+-1260.03663466403
+33
+2016.47582116289
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-94.1582126111653
+20
+-1260.03606144053
+30
+2102.87650280072
+11
+-33.3452139287482
+21
+-1175.36465439776
+31
+2057.25628930755
+12
+-112.889250073865
+22
+-1260.03638576054
+32
+2061.69272669082
+13
+-112.889250073865
+23
+-1260.03638576054
+33
+2061.69272669082
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-16.241253345118
+20
+-1271.71623900961
+30
+2132.22303794032
+11
+22.1249957769614
+21
+-1479.42362718516
+31
+2131.05362422024
+12
+22.1236937528375
+22
+-1271.71644897083
+32
+2131.05239675912
+13
+22.1236937528375
+23
+-1271.71644897083
+33
+2131.05239675912
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+22.1249957769614
+20
+-1479.42362718516
+30
+2131.05362422024
+11
+-16.241253345118
+21
+-1271.71623900961
+31
+2132.22303794032
+12
+-16.2399513209942
+22
+-1479.42383714638
+32
+2132.22426540144
+13
+-16.2399513209942
+23
+-1479.42383714638
+33
+2132.22426540144
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.055000168389
+20
+-1635.02485596371
+30
+2001.85862013831
+11
+-33.1366290489928
+21
+-1575.77565655989
+31
+2012.83666255977
+12
+-22.0553340273792
+22
+-1575.77565243725
+32
+2001.85830539842
+13
+-22.0553340273792
+23
+-1575.77565243725
+33
+2001.85830539842
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1366290489928
+20
+-1575.77565655989
+30
+2012.83666255977
+11
+-22.055000168389
+21
+-1635.02485596371
+31
+2001.85862013831
+12
+-33.1362951900026
+22
+-1635.02486008634
+32
+2012.83697729966
+13
+-33.1362951900026
+23
+-1635.02486008634
+33
+2012.83697729966
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+97.0207423055492
+20
+-1271.71644809489
+30
+2051.44077874854
+11
+95.8514031496311
+21
+-1479.42383845732
+31
+2013.07705911167
+12
+95.8501011255072
+22
+-1271.71623769867
+32
+2013.07583165055
+13
+95.8501011255072
+23
+-1271.71623769867
+33
+2013.07583165055
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+95.8514031496311
+20
+-1479.42383845732
+30
+2013.07705911167
+11
+97.0207423055492
+21
+-1271.71644809489
+31
+2051.44077874854
+12
+97.0220443296732
+22
+-1479.4236280611
+32
+2051.44200620966
+13
+97.0220443296732
+23
+-1479.4236280611
+33
+2051.44200620966
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-114.432821384555
+20
+-1491.10392531161
+30
+2016.47704862401
+11
+-98.5563376305701
+21
+-1491.10406090528
+31
+1974.11087765241
+12
+-33.1366290489928
+22
+-1575.77565655989
+32
+2012.83666255977
+13
+-33.1366290489928
+23
+-1575.77565655989
+33
+2012.83666255977
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2446267860425
+20
+-1175.36490580924
+30
+2027.58467287705
+11
+112.886611463429
+21
+-1260.03539500836
+31
+2008.70921842963
+12
+33.3425753183123
+22
+-1175.36479585016
+32
+2013.1456558129
+13
+33.3425753183123
+23
+-1175.36479585016
+33
+2013.1456558129
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-83.4234143215687
+20
+-1271.71506812026
+30
+1983.06846791687
+11
+-98.5576396546941
+21
+-1260.0367702577
+31
+1974.10965019129
+12
+-33.1379310731166
+22
+-1175.3644195961
+32
+2012.83543509865
+13
+-33.1379310731166
+23
+-1175.3644195961
+33
+2012.83543509865
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.056636051503
+20
+-1175.36442371874
+30
+2001.8570779373
+11
+-67.6768495427695
+21
+-1260.03677189865
+31
+1941.04407925614
+12
+-57.1230683854853
+22
+-1271.71506781267
+32
+1955.11258534646
+13
+-57.1230683854853
+23
+-1271.71506781267
+33
+1955.11258534646
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+15.0022776536605
+20
+1076.22916084557
+30
+1964.73010999387
+11
+-13.1113816193455
+21
+1087.68196666459
+31
+1964.35858354789
+12
+15.0023421873321
+22
+1087.68180627471
+32
+1964.7301708319
+13
+15.0023421873321
+23
+1087.68180627471
+33
+1964.7301708319
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-13.1113816193455
+20
+1087.68196666459
+30
+1964.35858354789
+11
+15.0022776536605
+21
+1076.22916084557
+31
+1964.73010999387
+12
+-13.1114461530171
+22
+1076.22932123545
+32
+1964.35852270987
+13
+-13.1114461530171
+23
+1076.22932123545
+33
+1964.35852270987
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.2472653964783
+20
+-1175.36454443869
+30
+2042.81727224341
+11
+-39.1617791994563
+21
+1078.14545675366
+31
+2027.23071354802
+12
+-39.1744773372013
+22
+-1175.36446198731
+32
+2027.21874259443
+13
+-39.1744773372013
+23
+-1175.36446198731
+33
+2027.21874259443
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-39.1617791994563
+20
+1078.14545675366
+30
+2027.23071354802
+11
+-39.2472653964783
+21
+-1175.36454443869
+31
+2042.81727224341
+12
+-39.2345672587327
+22
+1078.14537430228
+32
+2042.82924319699
+13
+-39.2345672587327
+23
+1078.14537430228
+33
+2042.82924319699
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-83.4234143215687
+20
+-1271.71506812026
+30
+1983.06846791687
+11
+-33.1379310731166
+21
+-1175.3644195961
+31
+2012.83543509865
+12
+-22.056636051503
+22
+-1175.36442371874
+32
+2001.8570779373
+13
+-22.056636051503
+23
+-1175.36442371874
+33
+2001.8570779373
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+7.98221268585839
+20
+-1575.77551414673
+30
+1996.02904198905
+11
+-22.1251619565284
+21
+-1479.42489487959
+31
+1939.3506517424
+12
+16.2397851414271
+22
+-1479.42468491837
+32
+1938.18001056121
+13
+16.2397851414271
+23
+-1479.42468491837
+33
+1938.18001056121
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-7.61631696308793
+20
+-1575.7756024284
+30
+1995.95625393024
+11
+-22.1251619565284
+21
+-1479.42489487959
+31
+1939.3506517424
+12
+7.98221268585839
+22
+-1575.77551414673
+32
+1996.02904198905
+13
+7.98221268585839
+23
+-1575.77551414673
+33
+1996.02904198905
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+98.5550010442582
+20
+-1260.03501051119
+30
+2096.29229492916
+11
+114.432786822367
+21
+-1491.10243675244
+31
+2053.92735141868
+12
+114.431484798243
+22
+-1260.03514610487
+32
+2053.92612395756
+13
+114.431484798243
+23
+-1260.03514610487
+33
+2053.92612395756
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+114.432786822367
+20
+-1491.10243675244
+30
+2053.92735141868
+11
+98.5550010442582
+21
+-1260.03501051119
+31
+2096.29229492916
+12
+98.5563030683821
+22
+-1491.10230115877
+32
+2096.29352239028
+13
+98.5563030683821
+23
+-1491.10230115877
+33
+2096.29352239028
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-57.1217663613614
+20
+-1479.42500834332
+30
+1955.11381280758
+11
+-83.4234143215687
+21
+-1271.71506812026
+31
+1983.06846791687
+12
+-57.1230683854853
+22
+-1271.71506781267
+32
+1955.11258534646
+13
+-57.1230683854853
+23
+-1271.71506781267
+33
+1955.11258534646
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-83.4234143215687
+20
+-1271.71506812026
+30
+1983.06846791687
+11
+-57.1217663613614
+21
+-1479.42500834332
+31
+1955.11381280758
+12
+-83.4221122974449
+22
+-1479.42500803573
+32
+1983.06969537799
+13
+-83.4221122974449
+23
+-1479.42500803573
+33
+1983.06969537799
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+16.2397851414271
+20
+-1479.42468491837
+30
+1938.18001056121
+11
+-22.1264639806523
+21
+-1271.7151812764
+31
+1939.34942428128
+12
+16.2384831173033
+22
+-1271.71539123762
+32
+1938.17878310009
+13
+16.2384831173033
+23
+-1271.71539123762
+33
+1938.17878310009
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.1264639806523
+20
+-1271.7151812764
+30
+1939.34942428128
+11
+16.2397851414271
+21
+-1479.42468491837
+31
+1938.18001056121
+12
+-22.1251619565284
+22
+-1479.42489487959
+32
+1939.3506517424
+13
+-22.1251619565284
+23
+-1479.42489487959
+33
+1939.3506517424
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-22.3655547436192
+20
+-1575.77530103172
+30
+2068.33881178997
+11
+-52.13252569552
+21
+-1479.4241116404
+31
+2118.62416719069
+12
+-80.0884082650914
+22
+-1479.42440887799
+32
+2092.3238212554
+13
+-80.0884082650914
+23
+-1479.42440887799
+33
+2092.3238212554
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+97.0220443296732
+20
+-1479.4236280611
+30
+2051.44200620966
+11
+39.2459288101664
+21
+-1575.77517034675
+31
+2027.58590033816
+12
+95.8514031496311
+22
+-1479.42383845732
+32
+2013.07705911167
+13
+95.8514031496311
+23
+-1479.42383845732
+33
+2013.07705911167
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+61.0900030665619
+20
+-1260.03606969012
+30
+1936.64465220875
+11
+7.98091066173456
+21
+-1175.36456200926
+31
+1996.02781452793
+12
+22.3642181573071
+22
+-1175.36467512367
+32
+2002.0643607916
+13
+22.3642181573071
+23
+-1175.36467512367
+33
+2002.0643607916
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2459288101664
+20
+-1575.77517034675
+30
+2027.58590033816
+11
+33.3438773424362
+21
+-1575.77528030582
+31
+2013.14688327402
+12
+112.887913487553
+22
+-1491.10268565594
+32
+2008.71044589075
+13
+112.887913487553
+23
+-1491.10268565594
+33
+2008.71044589075
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+-33.1366290489928
+20
+-1575.77565655989
+30
+2012.83666255977
+11
+-83.4221122974449
+21
+-1479.42500803573
+31
+1983.06969537799
+12
+-22.0553340273792
+22
+-1575.77565243725
+32
+2001.85830539842
+13
+-22.0553340273792
+23
+-1575.77565243725
+33
+2001.85830539842
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+52.1310574918292
+20
+-1271.71566573164
+30
+1951.77888131083
+11
+61.0913050906858
+21
+-1491.1033603377
+31
+1936.64587966987
+12
+61.0900030665619
+22
+-1260.03606969012
+32
+1936.64465220875
+13
+61.0900030665619
+23
+-1260.03606969012
+33
+1936.64465220875
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+61.0913050906858
+20
+-1491.1033603377
+30
+1936.64587966987
+11
+52.1310574918292
+21
+-1271.71566573164
+31
+1951.77888131083
+12
+52.132359515953
+22
+-1479.42441042435
+32
+1951.78010877195
+13
+52.132359515953
+23
+-1479.42441042435
+33
+1951.78010877195
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+61.0913050906858
+20
+-1491.1033603377
+30
+1936.64587966987
+11
+18.7238320955074
+21
+-1260.0363927542
+31
+1920.768168456
+12
+61.0900030665619
+22
+-1260.03606969012
+32
+1936.64465220875
+13
+61.0900030665619
+23
+-1260.03606969012
+33
+1936.64465220875
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+18.7238320955074
+20
+-1260.0363927542
+30
+1920.768168456
+11
+61.0913050906858
+21
+-1491.1033603377
+31
+1936.64587966987
+12
+18.7251341196313
+22
+-1491.10368340178
+32
+1920.76939591712
+13
+18.7251341196313
+23
+-1491.10368340178
+33
+1920.76939591712
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-94.1569105870414
+20
+-1491.10335208811
+30
+2102.87773026184
+11
+-80.0897102892153
+21
+-1271.715667278
+31
+2092.32259379428
+12
+-94.1582126111653
+22
+-1260.03606144053
+32
+2102.87650280072
+13
+-94.1582126111653
+23
+-1260.03606144053
+33
+2102.87650280072
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-80.0897102892153
+20
+-1271.715667278
+30
+2092.32259379428
+11
+-94.1569105870414
+21
+-1491.10335208811
+31
+2102.87773026184
+12
+-80.0884082650914
+22
+-1479.42440887799
+32
+2092.3238212554
+13
+-80.0884082650914
+23
+-1479.42440887799
+33
+2092.3238212554
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+95.8501011255072
+20
+-1271.71623769867
+30
+2013.07583165055
+11
+112.887913487553
+21
+-1491.10268565594
+31
+2008.71044589075
+12
+112.886611463429
+22
+-1260.03539500836
+32
+2008.70921842963
+13
+112.886611463429
+23
+-1260.03539500836
+33
+2008.70921842963
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+112.887913487553
+20
+-1491.10268565594
+30
+2008.71044589075
+11
+95.8501011255072
+21
+-1271.71623769867
+31
+2013.07583165055
+12
+95.8514031496311
+22
+-1479.42383845732
+32
+2013.07705911167
+13
+95.8514031496311
+23
+-1479.42383845732
+33
+2013.07705911167
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-95.851569329198
+20
+-1479.42468360743
+30
+2057.32721685097
+11
+-97.0222105092401
+21
+-1479.42489400365
+31
+2018.96226975299
+12
+-39.1731753130775
+22
+-1575.77561416868
+32
+2027.21997005555
+13
+-39.1731753130775
+23
+-1575.77561416868
+33
+2027.21997005555
+70
+0
+ 0
+3DFACE
+ 8
+crank_full
+10
+39.2459288101664
+20
+-1575.77517034675
+30
+2027.58590033816
+11
+33.3442112014263
+21
+-1635.02448383228
+31
+2013.14719801391
+12
+33.3438773424362
+22
+-1575.77528030582
+32
+2013.14688327402
+13
+33.3438773424362
+23
+-1575.77528030582
+33
+2013.14688327402
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+33.3442112014263
+20
+-1635.02448383228
+30
+2013.14719801391
+11
+39.2459288101664
+21
+-1575.77517034675
+31
+2027.58590033816
+12
+39.2462626691564
+22
+-1635.02437387321
+32
+2027.58621507805
+13
+39.2462626691564
+23
+-1635.02437387321
+33
+2027.58621507805
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+40.8338358974086
+20
+1087.68160174359
+30
+1975.83212904106
+11
+60.4504242229264
+21
+1076.22873878012
+31
+1995.97422483951
+12
+40.8337713637369
+22
+1076.22895631445
+32
+1975.83206820304
+13
+40.8337713637369
+23
+1076.22895631445
+33
+1975.83206820304
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+60.4504242229264
+20
+1076.22873878012
+30
+1995.97422483951
+11
+40.8338358974086
+21
+1087.68160174359
+31
+1975.83212904106
+12
+60.4504887565981
+22
+1087.68138420926
+32
+1995.97428567753
+13
+60.4504887565981
+23
+1087.68138420926
+33
+1995.97428567753
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-112.887948049741
+20
+-1491.10367640812
+30
+2061.69395415194
+11
+-94.1582126111653
+21
+-1260.03606144053
+31
+2102.87650280072
+12
+-112.889250073865
+22
+-1260.03638576054
+32
+2061.69272669082
+13
+-112.889250073865
+23
+-1260.03638576054
+33
+2061.69272669082
+70
+1
+ 0
+3DFACE
+ 8
+crank_full
+10
+-94.1582126111653
+20
+-1260.03606144053
+30
+2102.87650280072
+11
+-112.887948049741
+21
+-1491.10367640812
+31
+2061.69395415194
+12
+-94.1569105870414
+22
+-1491.10335208811
+32
+2102.87773026184
+13
+-94.1569105870414
+23
+-1491.10335208811
+33
+2102.87773026184
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1034.12663189037
+20
+-1016.89523242239
+30
+2093.59675330562
+11
+993.755281646064
+21
+-994.988599868068
+31
+1976.80755330562
+12
+1034.12663189037
+22
+-1016.89523242239
+32
+1976.80755330562
+13
+1034.12663189037
+23
+-1016.89523242239
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+993.755281646064
+20
+-994.988599868068
+30
+1976.80755330562
+11
+1034.12663189037
+21
+-1016.89523242239
+31
+2093.59675330562
+12
+993.755281646064
+22
+-994.988599868068
+32
+2093.59675330562
+13
+993.755281646064
+23
+-994.988599868068
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+1976.80755330562
+11
+1329.08826166069
+21
+-929.442444481353
+31
+2093.59675330562
+12
+1329.08826166069
+22
+-929.442444481353
+32
+1976.80755330562
+13
+1329.08826166069
+23
+-929.442444481353
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1329.08826166069
+20
+-929.442444481353
+30
+2093.59675330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1351.75896842588
+22
+-887.662995228551
+32
+2093.59675330562
+13
+1351.75896842588
+23
+-887.662995228551
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1298.70239996067
+20
+-965.996277848705
+30
+2093.59675330562
+11
+1261.76909495036
+21
+-995.919752013918
+31
+1976.80755330562
+12
+1298.70239996067
+22
+-965.996277848705
+32
+1976.80755330562
+13
+1298.70239996067
+23
+-965.996277848705
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1261.76909495036
+20
+-995.919752013918
+30
+1976.80755330562
+11
+1298.70239996067
+21
+-965.996277848705
+31
+2093.59675330562
+12
+1261.76909495036
+22
+-995.919752013918
+32
+2093.59675330562
+13
+1261.76909495036
+23
+-995.919752013918
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+993.755281646067
+20
+-887.662995228552
+30
+1976.80755330562
+11
+1034.12663189037
+21
+-1016.89523242239
+31
+1976.80755330562
+12
+993.755281646064
+22
+-994.988599868068
+32
+1976.80755330562
+13
+993.755281646064
+23
+-994.988599868068
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1034.12663189037
+20
+-1016.89523242239
+30
+1976.80755330562
+11
+993.755281646067
+21
+-887.662995228552
+31
+1976.80755330562
+12
+1351.75896842588
+22
+-887.662995228551
+32
+1976.80755330562
+13
+1351.75896842588
+23
+-887.662995228551
+33
+1976.80755330562
+70
+13
+ 0
+3DFACE
+ 8
+hand_half
+10
+1034.12663189037
+20
+-1016.89523242239
+30
+1976.80755330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1079.52613622403
+22
+-1030.97956170564
+32
+1976.80755330562
+13
+1079.52613622403
+23
+-1030.97956170564
+33
+1976.80755330562
+70
+3
+ 0
+3DFACE
+ 8
+hand_half
+10
+1079.52613622403
+20
+-1030.97956170564
+30
+1976.80755330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1126.80101814733
+22
+-1035.93626063118
+32
+1976.80755330562
+13
+1126.80101814733
+23
+-1035.93626063118
+33
+1976.80755330562
+70
+3
+ 0
+3DFACE
+ 8
+hand_half
+10
+1126.80101814733
+20
+-1035.93626063118
+30
+1976.80755330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1174.13453046003
+22
+-1031.57484603905
+32
+1976.80755330562
+13
+1174.13453046003
+23
+-1031.57484603905
+33
+1976.80755330562
+70
+3
+ 0
+3DFACE
+ 8
+hand_half
+10
+1174.13453046003
+20
+-1031.57484603905
+30
+1976.80755330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1219.70767282888
+22
+-1018.0629246461
+32
+1976.80755330562
+13
+1219.70767282888
+23
+-1018.0629246461
+33
+1976.80755330562
+70
+3
+ 0
+3DFACE
+ 8
+hand_half
+10
+1219.70767282888
+20
+-1018.0629246461
+30
+1976.80755330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1261.76909495036
+22
+-995.919752013918
+32
+1976.80755330562
+13
+1261.76909495036
+23
+-995.919752013918
+33
+1976.80755330562
+70
+3
+ 0
+3DFACE
+ 8
+hand_half
+10
+1261.76909495036
+20
+-995.919752013918
+30
+1976.80755330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1298.70239996067
+22
+-965.996277848705
+32
+1976.80755330562
+13
+1298.70239996067
+23
+-965.996277848705
+33
+1976.80755330562
+70
+3
+ 0
+3DFACE
+ 8
+hand_half
+10
+1298.70239996067
+20
+-965.996277848705
+30
+1976.80755330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+1329.08826166069
+22
+-929.442444481353
+32
+1976.80755330562
+13
+1329.08826166069
+23
+-929.442444481353
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1034.12663189037
+20
+-1016.89523242239
+30
+2093.59675330562
+11
+993.755281646067
+21
+-887.662995228552
+31
+2093.59675330562
+12
+993.755281646064
+22
+-994.988599868068
+32
+2093.59675330562
+13
+993.755281646064
+23
+-994.988599868068
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+993.755281646067
+20
+-887.662995228552
+30
+2093.59675330562
+11
+1034.12663189037
+21
+-1016.89523242239
+31
+2093.59675330562
+12
+1351.75896842588
+22
+-887.662995228551
+32
+2093.59675330562
+13
+1351.75896842588
+23
+-887.662995228551
+33
+2093.59675330562
+70
+3
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+2093.59675330562
+11
+1034.12663189037
+21
+-1016.89523242239
+31
+2093.59675330562
+12
+1079.52613622403
+22
+-1030.97956170564
+32
+2093.59675330562
+13
+1079.52613622403
+23
+-1030.97956170564
+33
+2093.59675330562
+70
+13
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+2093.59675330562
+11
+1079.52613622403
+21
+-1030.97956170564
+31
+2093.59675330562
+12
+1126.80101814733
+22
+-1035.93626063118
+32
+2093.59675330562
+13
+1126.80101814733
+23
+-1035.93626063118
+33
+2093.59675330562
+70
+13
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+2093.59675330562
+11
+1126.80101814733
+21
+-1035.93626063118
+31
+2093.59675330562
+12
+1174.13453046003
+22
+-1031.57484603905
+32
+2093.59675330562
+13
+1174.13453046003
+23
+-1031.57484603905
+33
+2093.59675330562
+70
+13
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+2093.59675330562
+11
+1174.13453046003
+21
+-1031.57484603905
+31
+2093.59675330562
+12
+1219.70767282888
+22
+-1018.0629246461
+32
+2093.59675330562
+13
+1219.70767282888
+23
+-1018.0629246461
+33
+2093.59675330562
+70
+13
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+2093.59675330562
+11
+1219.70767282888
+21
+-1018.0629246461
+31
+2093.59675330562
+12
+1261.76909495036
+22
+-995.919752013918
+32
+2093.59675330562
+13
+1261.76909495036
+23
+-995.919752013918
+33
+2093.59675330562
+70
+13
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+2093.59675330562
+11
+1261.76909495036
+21
+-995.919752013918
+31
+2093.59675330562
+12
+1298.70239996067
+22
+-965.996277848705
+32
+2093.59675330562
+13
+1298.70239996067
+23
+-965.996277848705
+33
+2093.59675330562
+70
+13
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+2093.59675330562
+11
+1298.70239996067
+21
+-965.996277848705
+31
+2093.59675330562
+12
+1329.08826166069
+22
+-929.442444481353
+32
+2093.59675330562
+13
+1329.08826166069
+23
+-929.442444481353
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+993.755281646067
+20
+-887.662995228552
+30
+2093.59675330562
+11
+1351.75896842588
+21
+-887.662995228551
+31
+1976.80755330562
+12
+993.755281646067
+22
+-887.662995228552
+32
+1976.80755330562
+13
+993.755281646067
+23
+-887.662995228552
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1351.75896842588
+20
+-887.662995228551
+30
+1976.80755330562
+11
+993.755281646067
+21
+-887.662995228552
+31
+2093.59675330562
+12
+1351.75896842588
+22
+-887.662995228551
+32
+2093.59675330562
+13
+1351.75896842588
+23
+-887.662995228551
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1329.08826166069
+20
+-929.442444481353
+30
+1976.80755330562
+11
+1298.70239996067
+21
+-965.996277848705
+31
+2093.59675330562
+12
+1298.70239996067
+22
+-965.996277848705
+32
+1976.80755330562
+13
+1298.70239996067
+23
+-965.996277848705
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1298.70239996067
+20
+-965.996277848705
+30
+2093.59675330562
+11
+1329.08826166069
+21
+-929.442444481353
+31
+1976.80755330562
+12
+1329.08826166069
+22
+-929.442444481353
+32
+2093.59675330562
+13
+1329.08826166069
+23
+-929.442444481353
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1126.80101814733
+20
+-1035.93626063118
+30
+2093.59675330562
+11
+1079.52613622403
+21
+-1030.97956170564
+31
+1976.80755330562
+12
+1126.80101814733
+22
+-1035.93626063118
+32
+1976.80755330562
+13
+1126.80101814733
+23
+-1035.93626063118
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1079.52613622403
+20
+-1030.97956170564
+30
+1976.80755330562
+11
+1126.80101814733
+21
+-1035.93626063118
+31
+2093.59675330562
+12
+1079.52613622403
+22
+-1030.97956170564
+32
+2093.59675330562
+13
+1079.52613622403
+23
+-1030.97956170564
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1174.13453046003
+20
+-1031.57484603905
+30
+2093.59675330562
+11
+1126.80101814733
+21
+-1035.93626063118
+31
+1976.80755330562
+12
+1174.13453046003
+22
+-1031.57484603905
+32
+1976.80755330562
+13
+1174.13453046003
+23
+-1031.57484603905
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1126.80101814733
+20
+-1035.93626063118
+30
+1976.80755330562
+11
+1174.13453046003
+21
+-1031.57484603905
+31
+2093.59675330562
+12
+1126.80101814733
+22
+-1035.93626063118
+32
+2093.59675330562
+13
+1126.80101814733
+23
+-1035.93626063118
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1079.52613622403
+20
+-1030.97956170564
+30
+2093.59675330562
+11
+1034.12663189037
+21
+-1016.89523242239
+31
+1976.80755330562
+12
+1079.52613622403
+22
+-1030.97956170564
+32
+1976.80755330562
+13
+1079.52613622403
+23
+-1030.97956170564
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1034.12663189037
+20
+-1016.89523242239
+30
+1976.80755330562
+11
+1079.52613622403
+21
+-1030.97956170564
+31
+2093.59675330562
+12
+1034.12663189037
+22
+-1016.89523242239
+32
+2093.59675330562
+13
+1034.12663189037
+23
+-1016.89523242239
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1219.70767282888
+20
+-1018.0629246461
+30
+2093.59675330562
+11
+1174.13453046003
+21
+-1031.57484603905
+31
+1976.80755330562
+12
+1219.70767282888
+22
+-1018.0629246461
+32
+1976.80755330562
+13
+1219.70767282888
+23
+-1018.0629246461
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1174.13453046003
+20
+-1031.57484603905
+30
+1976.80755330562
+11
+1219.70767282888
+21
+-1018.0629246461
+31
+2093.59675330562
+12
+1174.13453046003
+22
+-1031.57484603905
+32
+2093.59675330562
+13
+1174.13453046003
+23
+-1031.57484603905
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1261.76909495036
+20
+-995.919752013918
+30
+2093.59675330562
+11
+1219.70767282888
+21
+-1018.0629246461
+31
+1976.80755330562
+12
+1261.76909495036
+22
+-995.919752013918
+32
+1976.80755330562
+13
+1261.76909495036
+23
+-995.919752013918
+33
+1976.80755330562
+70
+1
+ 0
+3DFACE
+ 8
+hand_half
+10
+1219.70767282888
+20
+-1018.0629246461
+30
+1976.80755330562
+11
+1261.76909495036
+21
+-995.919752013918
+31
+2093.59675330562
+12
+1219.70767282888
+22
+-1018.0629246461
+32
+2093.59675330562
+13
+1219.70767282888
+23
+-1018.0629246461
+33
+2093.59675330562
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957534796371
+20
+-140.147039999996
+30
+1438.61018379565
+11
+145.758594958837
+21
+-327.009759999997
+31
+1465.17488447662
+12
+123.957534796373
+22
+-327.009759999997
+32
+1438.61018379565
+13
+123.957534796373
+23
+-327.009759999997
+33
+1438.61018379565
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758594958837
+20
+-327.009759999997
+30
+1465.17488447662
+11
+123.957534796371
+21
+-140.147039999996
+31
+1438.61018379565
+12
+145.758594958835
+22
+-140.147039999996
+32
+1465.17488447662
+13
+145.758594958835
+23
+-140.147039999996
+33
+1465.17488447662
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758282406557
+20
+-327.009759999999
+30
+1465.17471220716
+11
+-123.957190847735
+21
+-140.147039999998
+31
+1438.61003729252
+12
+-123.957190847734
+22
+-327.009759999999
+32
+1438.61003729252
+13
+-123.957190847734
+23
+-327.009759999999
+33
+1438.61003729252
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957190847735
+20
+-140.147039999998
+30
+1438.61003729252
+11
+-145.758282406557
+21
+-327.009759999999
+31
+1465.17471220716
+12
+-145.758282406558
+22
+-140.147039999998
+32
+1465.17471220716
+13
+-145.758282406558
+23
+-140.147039999998
+33
+1465.17471220716
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.1997565800718
+20
+-140.14704
+30
+1734.50129493144
+11
+67.0852443586779
+21
+-327.009760000001
+31
+1724.52561249664
+12
+67.0852443586765
+22
+-140.14704
+32
+1724.52561249664
+13
+67.0852443586765
+23
+-140.14704
+33
+1724.52561249664
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.0852443586779
+20
+-327.009760000001
+30
+1724.52561249664
+11
+34.1997565800718
+21
+-140.14704
+31
+1734.50129493144
+12
+34.1997565800732
+22
+-327.009760000001
+32
+1734.50129493144
+13
+34.1997565800732
+23
+-327.009760000001
+33
+1734.50129493144
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.1995591345617
+20
+-327.009759999998
+30
+1390.63365180083
+11
+-67.0850469131678
+21
+-140.147039999997
+31
+1400.60933423564
+12
+-34.1995591345631
+22
+-140.147039999997
+32
+1390.63365180084
+13
+-34.1995591345631
+23
+-140.147039999997
+33
+1390.63365180084
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.0850469131678
+20
+-140.147039999997
+30
+1400.60933423564
+11
+-34.1995591345617
+21
+-327.009759999998
+31
+1390.63365180083
+12
+-67.0850469131664
+22
+-327.009759999998
+32
+1400.60933423564
+13
+-67.0850469131664
+23
+-327.009759999998
+33
+1400.60933423564
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758594958835
+20
+-140.147039999996
+30
+1465.17488447662
+11
+161.958237853255
+21
+-327.009759999997
+31
+1495.48232773022
+12
+145.758594958837
+22
+-327.009759999997
+32
+1465.17488447662
+13
+145.758594958837
+23
+-327.009759999997
+33
+1465.17488447662
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958237853255
+20
+-327.009759999997
+30
+1495.48232773022
+11
+145.758594958835
+21
+-140.147039999996
+31
+1465.17488447662
+12
+161.958237853253
+22
+-140.147039999996
+32
+1495.48232773022
+13
+161.958237853253
+23
+-140.147039999996
+33
+1495.48232773022
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-4.87060060567757e-06
+20
+-140.14704
+30
+1737.86965702509
+11
+34.1997565800732
+21
+-327.009760000001
+31
+1734.50129493144
+12
+34.1997565800718
+22
+-140.14704
+32
+1734.50129493144
+13
+34.1997565800718
+23
+-140.14704
+33
+1734.50129493144
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.1997565800732
+20
+-327.009760000001
+30
+1734.50129493144
+11
+-4.87060060567757e-06
+21
+-140.14704
+31
+1737.86965702509
+12
+-4.87059913788501e-06
+22
+-327.009760000001
+32
+1737.86965702509
+13
+-4.87059913788501e-06
+23
+-327.009760000001
+33
+1737.86965702509
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+171.933879867935
+20
+-140.147039999998
+30
+1596.76733442913
+11
+161.958158566334
+21
+-327.009759999999
+31
+1629.65281041762
+12
+171.933879867937
+22
+-327.009759999998
+32
+1596.76733442913
+13
+171.933879867937
+23
+-327.009759999998
+33
+1596.76733442913
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958158566334
+20
+-327.009759999999
+30
+1629.65281041762
+11
+171.933879867935
+21
+-140.147039999998
+31
+1596.76733442913
+12
+161.958158566332
+22
+-140.147039999998
+32
+1629.65281041762
+13
+161.958158566332
+23
+-140.147039999998
+33
+1629.65281041762
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.0850469131664
+20
+-327.009759999998
+30
+1400.60933423564
+11
+-97.3924901667671
+21
+-140.147039999998
+31
+1416.80897713006
+12
+-67.0850469131678
+22
+-140.147039999997
+32
+1400.60933423564
+13
+-67.0850469131678
+23
+-140.147039999997
+33
+1400.60933423564
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3924901667671
+20
+-140.147039999998
+30
+1416.80897713006
+11
+-67.0850469131664
+21
+-327.009759999998
+31
+1400.60933423564
+12
+-97.3924901667657
+22
+-327.009759999998
+32
+1416.80897713006
+13
+-97.3924901667657
+23
+-327.009759999998
+33
+1416.80897713006
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+175.302282381704
+20
+-140.147039999997
+30
+1562.56757695949
+11
+171.933879867937
+21
+-327.009759999998
+31
+1596.76733442913
+12
+175.302282381706
+22
+-327.009759999998
+32
+1562.56757695949
+13
+175.302282381706
+23
+-327.009759999998
+33
+1562.56757695949
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+171.933879867937
+20
+-327.009759999998
+30
+1596.76733442913
+11
+175.302282381704
+21
+-140.147039999997
+31
+1562.56757695949
+12
+171.933879867935
+22
+-140.147039999998
+32
+1596.76733442913
+13
+171.933879867935
+23
+-140.147039999998
+33
+1596.76733442913
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957337350861
+20
+-327.009760000002
+30
+1686.52476293663
+11
+-145.758397513327
+21
+-140.147040000001
+31
+1659.96006225566
+12
+-145.758397513325
+22
+-327.009760000002
+32
+1659.96006225566
+13
+-145.758397513325
+23
+-327.009760000002
+33
+1659.96006225566
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758397513327
+20
+-140.147040000001
+30
+1659.96006225566
+11
+-123.957337350861
+21
+-327.009760000002
+31
+1686.52476293663
+12
+-123.957337350863
+22
+-140.147040000001
+32
+1686.52476293663
+13
+-123.957337350863
+23
+-140.147040000001
+33
+1686.52476293663
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958158566332
+20
+-140.147039999998
+30
+1629.65281041762
+11
+145.758479852068
+21
+-327.009759999999
+31
+1659.96023452511
+12
+161.958158566334
+22
+-327.009759999999
+32
+1629.65281041762
+13
+161.958158566334
+23
+-327.009759999999
+33
+1629.65281041762
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758479852068
+20
+-327.009759999999
+30
+1659.96023452511
+11
+161.958158566332
+21
+-140.147039999998
+31
+1629.65281041762
+12
+145.758479852067
+22
+-140.147039999998
+32
+1659.96023452511
+13
+145.758479852067
+23
+-140.147039999998
+33
+1659.96023452511
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3924901667657
+20
+-327.009759999998
+30
+1416.80897713006
+11
+-123.957190847735
+21
+-140.147039999998
+31
+1438.61003729252
+12
+-97.3924901667671
+22
+-140.147039999998
+32
+1416.80897713006
+13
+-97.3924901667671
+23
+-140.147039999998
+33
+1416.80897713006
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957190847735
+20
+-140.147039999998
+30
+1438.61003729252
+11
+-97.3924901667657
+21
+-327.009759999998
+31
+1416.80897713006
+12
+-123.957190847734
+22
+-327.009759999999
+32
+1438.61003729252
+13
+-123.957190847734
+23
+-327.009759999999
+33
+1438.61003729252
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.958040407743
+20
+-327.009760000001
+30
+1629.65261900206
+11
+-171.933722842549
+21
+-140.14704
+31
+1596.76713122346
+12
+-171.933722842547
+22
+-327.009760000001
+32
+1596.76713122345
+13
+-171.933722842547
+23
+-327.009760000001
+33
+1596.76713122345
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933722842549
+20
+-140.14704
+30
+1596.76713122346
+11
+-161.958040407743
+21
+-327.009760000001
+31
+1629.65261900206
+12
+-161.958040407745
+22
+-140.14704
+32
+1629.65261900206
+13
+-161.958040407745
+23
+-140.14704
+33
+1629.65261900206
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.0852443586765
+20
+-140.14704
+30
+1724.52561249664
+11
+97.3926876122771
+21
+-327.00976
+31
+1708.32596960222
+12
+97.3926876122757
+22
+-140.147039999999
+32
+1708.32596960222
+13
+97.3926876122757
+23
+-140.147039999999
+33
+1708.32596960222
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3926876122771
+20
+-327.00976
+30
+1708.32596960222
+11
+67.0852443586765
+21
+-140.14704
+31
+1724.52561249664
+12
+67.0852443586779
+22
+-327.009760000001
+32
+1724.52561249664
+13
+67.0852443586779
+23
+-327.009760000001
+33
+1724.52561249664
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.0852383287284
+20
+-140.147040000001
+30
+1724.52553320972
+11
+-34.199762340237
+21
+-327.009760000002
+31
+1734.50125451132
+12
+-34.1997623402384
+22
+-140.147040000001
+32
+1734.50125451132
+13
+-34.1997623402384
+23
+-140.147040000001
+33
+1734.50125451132
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.199762340237
+20
+-327.009760000002
+30
+1734.50125451132
+11
+-67.0852383287284
+21
+-140.147040000001
+31
+1724.52553320972
+12
+-67.085238328727
+22
+-327.009760000002
+32
+1724.52553320972
+13
+-67.085238328727
+23
+-327.009760000002
+33
+1724.52553320972
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.1999597857484
+20
+-327.009759999997
+30
+1390.63369222096
+11
+0.00020231610917012
+21
+-140.147039999996
+31
+1387.26528970719
+12
+34.199959785747
+22
+-140.147039999996
+32
+1390.63369222096
+13
+34.199959785747
+23
+-140.147039999996
+33
+1390.63369222096
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.00020231610917012
+20
+-140.147039999996
+30
+1387.26528970719
+11
+34.1999597857484
+21
+-327.009759999997
+31
+1390.63369222096
+12
+0.000202316110637912
+22
+-327.009759999997
+32
+1387.26528970719
+13
+0.000202316110637912
+23
+-327.009759999997
+33
+1387.26528970719
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000202316110637912
+20
+-327.009759999997
+30
+1387.26528970719
+11
+-34.1995591345631
+21
+-140.147039999997
+31
+1390.63365180084
+12
+0.00020231610917012
+22
+-140.147039999996
+32
+1387.26528970719
+13
+0.00020231610917012
+23
+-140.147039999996
+33
+1387.26528970719
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.1995591345631
+20
+-140.147039999997
+30
+1390.63365180084
+11
+0.000202316110637912
+21
+-327.009759999997
+31
+1387.26528970719
+12
+-34.1995591345617
+22
+-327.009759999998
+32
+1390.63365180083
+13
+-34.1995591345617
+23
+-327.009759999998
+33
+1390.63365180083
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+21.0097297891043
+20
+-2.03037586743449e-12
+30
+1702.4261702469
+11
+27.4505428589692
+21
+-140.14704
+31
+1692.78683069265
+12
+27.4505428589688
+22
+-2.03037586743449e-12
+32
+1692.78683069265
+13
+27.4505428589688
+23
+-2.03037586743449e-12
+33
+1692.78683069265
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+27.4505428589692
+20
+-140.14704
+30
+1692.78683069265
+11
+21.0097297891043
+21
+-2.03037586743449e-12
+31
+1702.4261702469
+12
+21.0097297891047
+22
+-140.14704
+32
+1702.4261702469
+13
+21.0097297891047
+23
+-140.14704
+33
+1702.4261702469
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.0854357742384
+20
+-327.009759999997
+30
+1400.60941352256
+11
+34.199959785747
+21
+-140.147039999996
+31
+1390.63369222096
+12
+67.085435774237
+22
+-140.147039999996
+32
+1400.60941352256
+13
+67.085435774237
+23
+-140.147039999996
+33
+1400.60941352256
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.199959785747
+20
+-140.147039999996
+30
+1390.63369222096
+11
+67.0854357742384
+21
+-327.009759999997
+31
+1400.60941352256
+12
+34.1999597857484
+22
+-327.009759999997
+32
+1390.63369222096
+13
+34.1999597857484
+23
+-327.009759999997
+33
+1390.63369222096
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3926876122757
+20
+-140.147039999999
+30
+1708.32596960222
+11
+123.957388293245
+21
+-327.00976
+31
+1686.52490943975
+12
+123.957388293244
+22
+-140.147039999999
+32
+1686.52490943976
+13
+123.957388293244
+23
+-140.147039999999
+33
+1686.52490943976
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957388293245
+20
+-327.00976
+30
+1686.52490943975
+11
+97.3926876122757
+21
+-140.147039999999
+31
+1708.32596960222
+12
+97.3926876122771
+22
+-327.00976
+32
+1708.32596960222
+13
+97.3926876122771
+23
+-327.00976
+33
+1708.32596960222
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958237853253
+20
+-140.147039999996
+30
+1495.48232773022
+11
+171.933920288059
+21
+-327.009759999998
+31
+1528.36781550882
+12
+161.958237853255
+22
+-327.009759999997
+32
+1495.48232773022
+13
+161.958237853255
+23
+-327.009759999997
+33
+1495.48232773022
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+171.933920288059
+20
+-327.009759999998
+30
+1528.36781550882
+11
+161.958237853253
+21
+-140.147039999996
+31
+1495.48232773022
+12
+171.933920288057
+22
+-140.147039999997
+32
+1528.36781550882
+13
+171.933920288057
+23
+-140.147039999997
+33
+1528.36781550882
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+171.933920288057
+20
+-140.147039999997
+30
+1528.36781550882
+11
+175.302282381706
+21
+-327.009759999998
+31
+1562.56757695949
+12
+171.933920288059
+22
+-327.009759999998
+32
+1528.36781550882
+13
+171.933920288059
+23
+-327.009759999998
+33
+1528.36781550882
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+175.302282381706
+20
+-327.009759999998
+30
+1562.56757695949
+11
+171.933920288057
+21
+-140.147039999997
+31
+1528.36781550882
+12
+175.302282381704
+22
+-140.147039999997
+32
+1562.56757695949
+13
+175.302282381704
+23
+-140.147039999997
+33
+1562.56757695949
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817304
+20
+-327.009759999997
+30
+1416.80909223683
+11
+67.085435774237
+21
+-140.147039999996
+31
+1400.60941352256
+12
+97.3928598817289
+22
+-140.147039999996
+32
+1416.80909223683
+13
+97.3928598817289
+23
+-140.147039999996
+33
+1416.80909223683
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.085435774237
+20
+-140.147039999996
+30
+1400.60941352256
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+67.0854357742384
+22
+-327.009759999997
+32
+1400.60941352256
+13
+67.0854357742384
+23
+-327.009759999997
+33
+1400.60941352256
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758397513325
+20
+-327.009760000002
+30
+1659.96006225566
+11
+-161.958040407745
+21
+-140.14704
+31
+1629.65261900206
+12
+-161.958040407743
+22
+-327.009760000001
+32
+1629.65261900206
+13
+-161.958040407743
+23
+-327.009760000001
+33
+1629.65261900206
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.958040407745
+20
+-140.14704
+30
+1629.65261900206
+11
+-145.758397513325
+21
+-327.009760000002
+31
+1659.96006225566
+12
+-145.758397513327
+22
+-140.147040000001
+32
+1659.96006225566
+13
+-145.758397513327
+23
+-140.147040000001
+33
+1659.96006225566
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957534796371
+20
+-140.147039999996
+30
+1438.61018379565
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+97.3928598817289
+22
+-140.147039999996
+32
+1416.80909223683
+13
+97.3928598817289
+23
+-140.147039999996
+33
+1416.80909223683
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817304
+20
+-327.009759999997
+30
+1416.80909223683
+11
+123.957534796371
+21
+-140.147039999996
+31
+1438.61018379565
+12
+123.957534796373
+22
+-327.009759999997
+32
+1438.61018379565
+13
+123.957534796373
+23
+-327.009759999997
+33
+1438.61018379565
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933722842547
+20
+-327.009760000001
+30
+1596.76713122345
+11
+-175.302084936196
+21
+-140.14704
+31
+1562.56736977278
+12
+-175.302084936194
+22
+-327.009760000001
+32
+1562.56736977278
+13
+-175.302084936194
+23
+-327.009760000001
+33
+1562.56736977278
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-175.302084936196
+20
+-140.14704
+30
+1562.56736977278
+11
+-171.933722842547
+21
+-327.009760000001
+31
+1596.76713122345
+12
+-171.933722842549
+22
+-140.14704
+32
+1596.76713122346
+13
+-171.933722842549
+23
+-140.14704
+33
+1596.76713122346
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-175.302084936194
+20
+-327.009760000001
+30
+1562.56736977278
+11
+-171.933682422427
+21
+-140.147039999999
+31
+1528.36761230315
+12
+-171.933682422425
+22
+-327.00976
+32
+1528.36761230315
+13
+-171.933682422425
+23
+-327.00976
+33
+1528.36761230315
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933682422427
+20
+-140.147039999999
+30
+1528.36761230315
+11
+-175.302084936194
+21
+-327.009760000001
+31
+1562.56736977278
+12
+-175.302084936196
+22
+-140.14704
+32
+1562.56736977278
+13
+-175.302084936196
+23
+-140.14704
+33
+1562.56736977278
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933682422425
+20
+-327.00976
+30
+1528.36761230315
+11
+-161.957961120824
+21
+-140.147039999999
+31
+1495.48213631466
+12
+-161.957961120822
+22
+-327.00976
+32
+1495.48213631465
+13
+-161.957961120822
+23
+-327.00976
+33
+1495.48213631465
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.957961120824
+20
+-140.147039999999
+30
+1495.48213631466
+11
+-171.933682422425
+21
+-327.00976
+31
+1528.36761230315
+12
+-171.933682422427
+22
+-140.147039999999
+32
+1528.36761230315
+13
+-171.933682422427
+23
+-140.147039999999
+33
+1528.36761230315
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.957961120822
+20
+-327.00976
+30
+1495.48213631465
+11
+-145.758282406558
+21
+-140.147039999998
+31
+1465.17471220716
+12
+-145.758282406557
+22
+-327.009759999999
+32
+1465.17471220716
+13
+-145.758282406557
+23
+-327.009759999999
+33
+1465.17471220716
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758282406558
+20
+-140.147039999998
+30
+1465.17471220716
+11
+-161.957961120822
+21
+-327.00976
+31
+1495.48213631465
+12
+-161.957961120824
+22
+-140.147039999999
+32
+1495.48213631466
+13
+-161.957961120824
+23
+-140.147039999999
+33
+1495.48213631466
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758479852067
+20
+-140.147039999998
+30
+1659.96023452511
+11
+123.957388293245
+21
+-327.00976
+31
+1686.52490943975
+12
+145.758479852068
+22
+-327.009759999999
+32
+1659.96023452511
+13
+145.758479852068
+23
+-327.009759999999
+33
+1659.96023452511
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957388293245
+20
+-327.00976
+30
+1686.52490943975
+11
+145.758479852067
+21
+-140.147039999998
+31
+1659.96023452511
+12
+123.957388293244
+22
+-140.147039999999
+32
+1686.52490943976
+13
+123.957388293244
+23
+-140.147039999999
+33
+1686.52490943976
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3926624362203
+20
+-140.147040000001
+30
+1708.32585449545
+11
+-67.085238328727
+21
+-327.009760000002
+31
+1724.52553320972
+12
+-67.0852383287284
+22
+-140.147040000001
+32
+1724.52553320972
+13
+-67.0852383287284
+23
+-140.147040000001
+33
+1724.52553320972
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.085238328727
+20
+-327.009760000002
+30
+1724.52553320972
+11
+-97.3926624362203
+21
+-140.147040000001
+31
+1708.32585449545
+12
+-97.3926624362189
+22
+-327.009760000002
+32
+1708.32585449545
+13
+-97.3926624362189
+23
+-327.009760000002
+33
+1708.32585449545
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957337350861
+20
+-327.009760000002
+30
+1686.52476293663
+11
+-97.3926624362203
+21
+-140.147040000001
+31
+1708.32585449545
+12
+-123.957337350863
+22
+-140.147040000001
+32
+1686.52476293663
+13
+-123.957337350863
+23
+-140.147040000001
+33
+1686.52476293663
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3926624362203
+20
+-140.147040000001
+30
+1708.32585449545
+11
+-123.957337350861
+21
+-327.009760000002
+31
+1686.52476293663
+12
+-97.3926624362189
+22
+-327.009760000002
+32
+1708.32585449545
+13
+-97.3926624362189
+23
+-327.009760000002
+33
+1708.32585449545
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+21.0097668453905
+20
+-140.14704
+30
+1660.40671384141
+11
+11.3704272911448
+21
+-2.03037586743449e-12
+31
+1653.96590077154
+12
+21.0097668453901
+22
+-1.98525640371372e-12
+32
+1660.40671384141
+13
+21.0097668453901
+23
+-1.98525640371372e-12
+33
+1660.40671384141
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+11.3704272911448
+20
+-2.03037586743449e-12
+30
+1653.96590077154
+11
+21.0097668453905
+21
+-140.14704
+31
+1660.40671384141
+12
+11.3704272911452
+22
+-140.14704
+32
+1653.96590077155
+13
+11.3704272911452
+23
+-140.14704
+33
+1653.96590077155
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-11.370338645769
+20
+-140.14704
+30
+1653.96588071683
+11
+-21.0096895600995
+21
+-2.12061479487602e-12
+31
+1660.40667678512
+12
+-11.3703386457694
+22
+-2.07549533115525e-12
+32
+1653.96588071683
+13
+-11.3703386457694
+23
+-2.07549533115525e-12
+33
+1653.96588071683
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-21.0096895600995
+20
+-2.12061479487602e-12
+30
+1660.40667678512
+11
+-11.370338645769
+21
+-140.14704
+31
+1653.96588071683
+12
+-21.0096895600991
+22
+-140.14704
+32
+1660.40667678512
+13
+-21.0096895600991
+23
+-140.14704
+33
+1660.40667678512
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-6.0882486421221e-06
+20
+-2.12061479487602e-12
+30
+1711.12866608211
+11
+11.3703788747745
+21
+-140.14704
+31
+1708.8669663152
+12
+11.3703788747741
+22
+-2.07549533115525e-12
+32
+1708.8669663152
+13
+11.3703788747741
+23
+-2.07549533115525e-12
+33
+1708.8669663152
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+11.3703788747745
+20
+-140.14704
+30
+1708.8669663152
+11
+-6.0882486421221e-06
+21
+-2.12061479487602e-12
+31
+1711.12866608211
+12
+-6.08824821207721e-06
+22
+-140.14704
+32
+1711.12866608211
+13
+-6.08824821207721e-06
+23
+-140.14704
+33
+1711.12866608211
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-27.4505026299636
+20
+-140.14704
+30
+1670.04601633937
+11
+-21.0096895600995
+21
+-2.12061479487602e-12
+31
+1660.40667678512
+12
+-21.0096895600991
+22
+-140.14704
+32
+1660.40667678512
+13
+-21.0096895600991
+23
+-140.14704
+33
+1660.40667678512
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-21.0096895600995
+20
+-2.12061479487602e-12
+30
+1660.40667678512
+11
+-27.4505026299636
+21
+-140.14704
+31
+1670.04601633937
+12
+-27.4505026299641
+22
+-2.12061479487602e-12
+32
+1670.04601633937
+13
+-27.4505026299641
+23
+-2.12061479487602e-12
+33
+1670.04601633937
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+11.3703788747741
+20
+-2.07549533115525e-12
+30
+1708.8669663152
+11
+21.0097297891047
+21
+-140.14704
+31
+1702.4261702469
+12
+21.0097297891043
+22
+-2.03037586743449e-12
+32
+1702.4261702469
+13
+21.0097297891043
+23
+-2.03037586743449e-12
+33
+1702.4261702469
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+21.0097297891047
+20
+-140.14704
+30
+1702.4261702469
+11
+11.3703788747741
+21
+-2.07549533115525e-12
+31
+1708.8669663152
+12
+11.3703788747745
+22
+-140.14704
+32
+1708.8669663152
+13
+11.3703788747745
+23
+-140.14704
+33
+1708.8669663152
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+27.4505428589688
+20
+-2.03037586743449e-12
+30
+1692.78683069265
+11
+29.712262680597
+21
+-140.14704
+31
+1681.41644971876
+12
+29.7122626805966
+22
+-1.98525640371372e-12
+32
+1681.41644971876
+13
+29.7122626805966
+23
+-1.98525640371372e-12
+33
+1681.41644971876
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+29.712262680597
+20
+-140.14704
+30
+1681.41644971876
+11
+27.4505428589688
+21
+-2.03037586743449e-12
+31
+1692.78683069265
+12
+27.4505428589692
+22
+-140.14704
+32
+1692.78683069265
+13
+27.4505428589692
+23
+-140.14704
+33
+1692.78683069265
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+29.7122626805966
+20
+-1.98525640371372e-12
+30
+1681.41644971876
+11
+27.4505629136866
+21
+-140.14704
+31
+1670.04606475574
+12
+27.4505629136862
+22
+-1.98525640371372e-12
+32
+1670.04606475574
+13
+27.4505629136862
+23
+-1.98525640371372e-12
+33
+1670.04606475574
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+27.4505629136866
+20
+-140.14704
+30
+1670.04606475574
+11
+29.7122626805966
+21
+-1.98525640371372e-12
+31
+1681.41644971876
+12
+29.712262680597
+22
+-140.14704
+32
+1681.41644971876
+13
+29.712262680597
+23
+-140.14704
+33
+1681.41644971876
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-21.0097266163854
+20
+-2.16573425859679e-12
+30
+1702.42613319061
+11
+-11.3703870621396
+21
+-140.14704
+31
+1708.86694626048
+12
+-11.37038706214
+22
+-2.12061479487602e-12
+32
+1708.86694626048
+13
+-11.37038706214
+23
+-2.12061479487602e-12
+33
+1708.86694626048
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-11.3703870621396
+20
+-140.14704
+30
+1708.86694626048
+11
+-21.0097266163854
+21
+-2.16573425859679e-12
+31
+1702.42613319061
+12
+-21.009726616385
+22
+-140.14704
+32
+1702.42613319061
+13
+-21.009726616385
+23
+-140.14704
+33
+1702.42613319061
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933722842549
+20
+-140.14704
+30
+1596.76713122346
+11
+-171.933682422427
+21
+-140.147039999999
+31
+1528.36761230315
+12
+-175.302084936196
+22
+-140.14704
+32
+1562.56736977278
+13
+-175.302084936196
+23
+-140.14704
+33
+1562.56736977278
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933682422427
+20
+-140.147039999999
+30
+1528.36761230315
+11
+-171.933722842549
+21
+-140.14704
+31
+1596.76713122346
+12
+-161.958040407745
+22
+-140.14704
+32
+1629.65261900206
+13
+-161.958040407745
+23
+-140.14704
+33
+1629.65261900206
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933682422427
+20
+-140.147039999999
+30
+1528.36761230315
+11
+-161.958040407745
+21
+-140.14704
+31
+1629.65261900206
+12
+-161.957961120824
+22
+-140.147039999999
+32
+1495.48213631466
+13
+-161.957961120824
+23
+-140.147039999999
+33
+1495.48213631466
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.957961120824
+20
+-140.147039999999
+30
+1495.48213631466
+11
+-161.958040407745
+21
+-140.14704
+31
+1629.65261900206
+12
+-145.758397513327
+22
+-140.147040000001
+32
+1659.96006225566
+13
+-145.758397513327
+23
+-140.147040000001
+33
+1659.96006225566
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.957961120824
+20
+-140.147039999999
+30
+1495.48213631466
+11
+-145.758397513327
+21
+-140.147040000001
+31
+1659.96006225566
+12
+-145.758282406558
+22
+-140.147039999998
+32
+1465.17471220716
+13
+-145.758282406558
+23
+-140.147039999998
+33
+1465.17471220716
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758282406558
+20
+-140.147039999998
+30
+1465.17471220716
+11
+-145.758397513327
+21
+-140.147040000001
+31
+1659.96006225566
+12
+-123.957337350863
+22
+-140.147040000001
+32
+1686.52476293663
+13
+-123.957337350863
+23
+-140.147040000001
+33
+1686.52476293663
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758282406558
+20
+-140.147039999998
+30
+1465.17471220716
+11
+-123.957337350863
+21
+-140.147040000001
+31
+1686.52476293663
+12
+-123.957190847735
+22
+-140.147039999998
+32
+1438.61003729252
+13
+-123.957190847735
+23
+-140.147039999998
+33
+1438.61003729252
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957190847735
+20
+-140.147039999998
+30
+1438.61003729252
+11
+-123.957337350863
+21
+-140.147040000001
+31
+1686.52476293663
+12
+-97.3926624362203
+22
+-140.147040000001
+32
+1708.32585449545
+13
+-97.3926624362203
+23
+-140.147040000001
+33
+1708.32585449545
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957190847735
+20
+-140.147039999998
+30
+1438.61003729252
+11
+-97.3926624362203
+21
+-140.147040000001
+31
+1708.32585449545
+12
+-97.3924901667671
+22
+-140.147039999998
+32
+1416.80897713006
+13
+-97.3924901667671
+23
+-140.147039999998
+33
+1416.80897713006
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3924901667671
+20
+-140.147039999998
+30
+1416.80897713006
+11
+-97.3926624362203
+21
+-140.147040000001
+31
+1708.32585449545
+12
+-85.0224388771927
+22
+-140.147039999999
+32
+1562.56737879036
+13
+-85.0224388771927
+23
+-140.147039999999
+33
+1562.56737879036
+70
+15
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-85.0224388771927
+20
+-140.147039999999
+30
+1562.56737879036
+11
+-97.3926624362203
+21
+-140.147040000001
+31
+1708.32585449545
+12
+-83.3887731086227
+22
+-140.147039999999
+32
+1579.15445484661
+13
+-83.3887731086227
+23
+-140.147039999999
+33
+1579.15445484661
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086227
+20
+-140.147039999999
+30
+1579.15445484661
+11
+-97.3926624362203
+21
+-140.147040000001
+31
+1708.32585449545
+12
+-67.0852383287284
+22
+-140.147040000001
+32
+1724.52553320972
+13
+-67.0852383287284
+23
+-140.147040000001
+33
+1724.52553320972
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086227
+20
+-140.147039999999
+30
+1579.15445484661
+11
+-67.0852383287284
+21
+-140.147040000001
+31
+1724.52553320972
+12
+-78.5505197605909
+22
+-140.147039999999
+32
+1595.10410250665
+13
+-78.5505197605909
+23
+-140.147039999999
+33
+1595.10410250665
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5505197605909
+20
+-140.147039999999
+30
+1595.10410250665
+11
+-67.0852383287284
+21
+-140.147040000001
+31
+1724.52553320972
+12
+-70.6936101959386
+22
+-140.14704
+32
+1609.80338575557
+13
+-70.6936101959386
+23
+-140.14704
+33
+1609.80338575557
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6936101959386
+20
+-140.14704
+30
+1609.80338575557
+11
+-67.0852383287284
+21
+-140.147040000001
+31
+1724.52553320972
+12
+-60.1199810430296
+22
+-140.14704
+32
+1622.68741938158
+13
+-60.1199810430296
+23
+-140.14704
+33
+1622.68741938158
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430296
+20
+-140.14704
+30
+1622.68741938158
+11
+-67.0852383287284
+21
+-140.147040000001
+31
+1724.52553320972
+12
+-34.1997623402384
+22
+-140.147040000001
+32
+1734.50125451132
+13
+-34.1997623402384
+23
+-140.147040000001
+33
+1734.50125451132
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430296
+20
+-140.14704
+30
+1622.68741938158
+11
+-34.1997623402384
+21
+-140.147040000001
+31
+1734.50125451132
+12
+-47.2359709404507
+22
+-140.14704
+32
+1633.26107719786
+13
+-47.2359709404507
+23
+-140.14704
+33
+1633.26107719786
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2359709404507
+20
+-140.14704
+30
+1633.26107719786
+11
+-34.1997623402384
+21
+-140.147040000001
+31
+1734.50125451132
+12
+-32.5367051710078
+22
+-140.14704
+32
+1641.11801946432
+13
+-32.5367051710078
+23
+-140.14704
+33
+1641.11801946432
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710078
+20
+-140.14704
+30
+1641.11801946432
+11
+-34.1997623402384
+21
+-140.147040000001
+31
+1734.50125451132
+12
+-29.7122224515915
+22
+-140.14704
+32
+1681.41639731326
+13
+-29.7122224515915
+23
+-140.14704
+33
+1681.41639731326
+70
+15
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-29.7122224515915
+20
+-140.14704
+30
+1681.41639731326
+11
+-34.1997623402384
+21
+-140.147040000001
+31
+1734.50125451132
+12
+-27.450522684681
+22
+-140.14704
+32
+1692.78678227628
+13
+-27.450522684681
+23
+-140.14704
+33
+1692.78678227628
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-27.450522684681
+20
+-140.14704
+30
+1692.78678227628
+11
+-34.1997623402384
+21
+-140.147040000001
+31
+1734.50125451132
+12
+-4.87060060567757e-06
+22
+-140.14704
+32
+1737.86965702509
+13
+-4.87060060567757e-06
+23
+-140.14704
+33
+1737.86965702509
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-27.450522684681
+20
+-140.14704
+30
+1692.78678227628
+11
+-4.87060060567757e-06
+21
+-140.14704
+31
+1737.86965702509
+12
+-21.009726616385
+22
+-140.14704
+32
+1702.42613319061
+13
+-21.009726616385
+23
+-140.14704
+33
+1702.42613319061
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-21.009726616385
+20
+-140.14704
+30
+1702.42613319061
+11
+-4.87060060567757e-06
+21
+-140.14704
+31
+1737.86965702509
+12
+-11.3703870621396
+22
+-140.14704
+32
+1708.86694626048
+13
+-11.3703870621396
+23
+-140.14704
+33
+1708.86694626048
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-11.3703870621396
+20
+-140.14704
+30
+1708.86694626048
+11
+-4.87060060567757e-06
+21
+-140.14704
+31
+1737.86965702509
+12
+-6.08824821207721e-06
+22
+-140.14704
+32
+1711.12866608211
+13
+-6.08824821207721e-06
+23
+-140.14704
+33
+1711.12866608211
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-6.08824821207721e-06
+20
+-140.14704
+30
+1711.12866608211
+11
+-4.87060060567757e-06
+21
+-140.14704
+31
+1737.86965702509
+12
+11.3703788747745
+22
+-140.14704
+32
+1708.8669663152
+13
+11.3703788747745
+23
+-140.14704
+33
+1708.8669663152
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+11.3703788747745
+20
+-140.14704
+30
+1708.8669663152
+11
+-4.87060060567757e-06
+21
+-140.14704
+31
+1737.86965702509
+12
+34.1997565800718
+22
+-140.14704
+32
+1734.50129493144
+13
+34.1997565800718
+23
+-140.14704
+33
+1734.50129493144
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+11.3703788747745
+20
+-140.14704
+30
+1708.8669663152
+11
+34.1997565800718
+21
+-140.14704
+31
+1734.50129493144
+12
+21.0097297891047
+22
+-140.14704
+32
+1702.4261702469
+13
+21.0097297891047
+23
+-140.14704
+33
+1702.4261702469
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+21.0097297891047
+20
+-140.14704
+30
+1702.4261702469
+11
+34.1997565800718
+21
+-140.14704
+31
+1734.50129493144
+12
+27.4505428589692
+22
+-140.14704
+32
+1692.78683069265
+13
+27.4505428589692
+23
+-140.14704
+33
+1692.78683069265
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+27.4505428589692
+20
+-140.14704
+30
+1692.78683069265
+11
+34.1997565800718
+21
+-140.14704
+31
+1734.50129493144
+12
+29.712262680597
+22
+-140.14704
+32
+1681.41644971876
+13
+29.712262680597
+23
+-140.14704
+33
+1681.41644971876
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+29.712262680597
+20
+-140.14704
+30
+1681.41644971876
+11
+34.1997565800718
+21
+-140.14704
+31
+1734.50129493144
+12
+32.5367278632675
+22
+-140.147039999999
+32
+1641.11809184948
+13
+32.5367278632675
+23
+-140.147039999999
+33
+1641.11809184948
+70
+15
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632675
+20
+-140.147039999999
+30
+1641.11809184948
+11
+34.1997565800718
+21
+-140.14704
+31
+1734.50129493144
+12
+47.2360111121902
+22
+-140.147039999999
+32
+1633.26118228483
+13
+47.2360111121902
+23
+-140.147039999999
+33
+1633.26118228483
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121902
+20
+-140.147039999999
+30
+1633.26118228483
+11
+34.1997565800718
+21
+-140.14704
+31
+1734.50129493144
+12
+67.0852443586765
+22
+-140.14704
+32
+1724.52561249664
+13
+67.0852443586765
+23
+-140.14704
+33
+1724.52561249664
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121902
+20
+-140.147039999999
+30
+1633.26118228483
+11
+67.0852443586765
+21
+-140.14704
+31
+1724.52561249664
+12
+60.1200447381919
+22
+-140.147039999999
+32
+1622.68755313192
+13
+60.1200447381919
+23
+-140.147039999999
+33
+1622.68755313192
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1200447381919
+20
+-140.147039999999
+30
+1622.68755313192
+11
+67.0852443586765
+21
+-140.14704
+31
+1724.52561249664
+12
+70.6937025544744
+22
+-140.147039999998
+32
+1609.80354302934
+13
+70.6937025544744
+23
+-140.147039999998
+33
+1609.80354302934
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544744
+20
+-140.147039999998
+30
+1609.80354302934
+11
+67.0852443586765
+21
+-140.14704
+31
+1724.52561249664
+12
+97.3926876122757
+22
+-140.147039999999
+32
+1708.32596960222
+13
+97.3926876122757
+23
+-140.147039999999
+33
+1708.32596960222
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544744
+20
+-140.147039999998
+30
+1609.80354302934
+11
+97.3926876122757
+21
+-140.147039999999
+31
+1708.32596960222
+12
+78.5506448209338
+22
+-140.147039999998
+32
+1595.1042772599
+13
+78.5506448209338
+23
+-140.147039999998
+33
+1595.1042772599
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5506448209338
+20
+-140.147039999998
+30
+1595.1042772599
+11
+97.3926876122757
+21
+-140.147039999999
+31
+1708.32596960222
+12
+83.3889336524938
+22
+-140.147039999998
+32
+1579.15464036367
+13
+83.3889336524938
+23
+-140.147039999998
+33
+1579.15464036367
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889336524938
+20
+-140.147039999998
+30
+1579.15464036367
+11
+97.3926876122757
+21
+-140.147039999999
+31
+1708.32596960222
+12
+85.0226363227013
+22
+-140.147039999998
+32
+1562.56756794192
+13
+85.0226363227013
+23
+-140.147039999998
+33
+1562.56756794192
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3924901667671
+20
+-140.147039999998
+30
+1416.80897713006
+11
+-83.3887362069852
+21
+-140.147039999999
+31
+1545.98030636861
+12
+-67.0850469131678
+22
+-140.147039999997
+32
+1400.60933423564
+13
+-67.0850469131678
+23
+-140.147039999997
+33
+1400.60933423564
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887362069852
+20
+-140.147039999999
+30
+1545.98030636861
+11
+-97.3924901667671
+21
+-140.147039999998
+31
+1416.80897713006
+12
+-85.0224388771927
+22
+-140.147039999999
+32
+1562.56737879036
+13
+-85.0224388771927
+23
+-140.147039999999
+33
+1562.56737879036
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.0850469131678
+20
+-140.147039999997
+30
+1400.60933423564
+11
+-83.3887362069852
+21
+-140.147039999999
+31
+1545.98030636861
+12
+-78.5504473754252
+22
+-140.147039999999
+32
+1530.03066947238
+13
+-78.5504473754252
+23
+-140.147039999999
+33
+1530.03066947238
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.0850469131678
+20
+-140.147039999997
+30
+1400.60933423564
+11
+-78.5504473754252
+21
+-140.147039999999
+31
+1530.03066947238
+12
+-70.6935051089658
+22
+-140.147039999998
+32
+1515.33140370293
+13
+-70.6935051089658
+23
+-140.147039999998
+33
+1515.33140370293
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.0850469131678
+20
+-140.147039999997
+30
+1400.60933423564
+11
+-70.6935051089658
+21
+-140.147039999998
+31
+1515.33140370293
+12
+-60.1198472926833
+22
+-140.147039999998
+32
+1502.44739360036
+13
+-60.1198472926833
+23
+-140.147039999998
+33
+1502.44739360036
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.0850469131678
+20
+-140.147039999997
+30
+1400.60933423564
+11
+-60.1198472926833
+21
+-140.147039999998
+31
+1502.44739360036
+12
+-34.1995591345631
+22
+-140.147039999997
+32
+1390.63365180084
+13
+-34.1995591345631
+23
+-140.147039999997
+33
+1390.63365180084
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.1995591345631
+20
+-140.147039999997
+30
+1390.63365180084
+11
+-60.1198472926833
+21
+-140.147039999998
+31
+1502.44739360036
+12
+-47.2358136666817
+22
+-140.147039999998
+32
+1491.87376444745
+13
+-47.2358136666817
+23
+-140.147039999998
+33
+1491.87376444745
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.1995591345631
+20
+-140.147039999997
+30
+1390.63365180084
+11
+-47.2358136666817
+21
+-140.147039999998
+31
+1491.87376444745
+12
+-32.5365304177589
+22
+-140.147039999998
+32
+1484.01685488279
+13
+-32.5365304177589
+23
+-140.147039999998
+33
+1484.01685488279
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.1995591345631
+20
+-140.147039999997
+30
+1390.63365180084
+11
+-32.5365304177589
+21
+-140.147039999998
+31
+1484.01685488279
+12
+0.00020231610917012
+22
+-140.147039999996
+32
+1387.26528970719
+13
+0.00020231610917012
+23
+-140.147039999996
+33
+1387.26528970719
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.00020231610917012
+20
+-140.147039999996
+30
+1387.26528970719
+11
+-32.5365304177589
+21
+-140.147039999998
+31
+1484.01685488279
+12
+-16.586882757718
+22
+-140.147039999997
+32
+1479.17860153476
+13
+-16.586882757718
+23
+-140.147039999997
+33
+1479.17860153476
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.00020231610917012
+20
+-140.147039999996
+30
+1387.26528970719
+11
+-16.586882757718
+21
+-140.147039999997
+31
+1479.17860153476
+12
+0.000193298531099362
+22
+-140.147039999997
+32
+1477.54493576619
+13
+0.000193298531099362
+23
+-140.147039999997
+33
+1477.54493576619
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.00020231610917012
+20
+-140.147039999996
+30
+1387.26528970719
+11
+0.000193298531099362
+21
+-140.147039999997
+31
+1477.54493576619
+12
+16.5872657202861
+22
+-140.147039999997
+32
+1479.1786384364
+13
+16.5872657202861
+23
+-140.147039999997
+33
+1479.1786384364
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.00020231610917012
+20
+-140.147039999996
+30
+1387.26528970719
+11
+16.5872657202861
+21
+-140.147039999997
+31
+1479.1786384364
+12
+34.199959785747
+22
+-140.147039999996
+32
+1390.63369222096
+13
+34.199959785747
+23
+-140.147039999996
+33
+1390.63369222096
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.199959785747
+20
+-140.147039999996
+30
+1390.63369222096
+11
+16.5872657202861
+21
+-140.147039999997
+31
+1479.1786384364
+12
+32.5369026165164
+22
+-140.147039999997
+32
+1484.01692726796
+13
+32.5369026165164
+23
+-140.147039999997
+33
+1484.01692726796
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.199959785747
+20
+-140.147039999996
+30
+1390.63369222096
+11
+32.5369026165164
+21
+-140.147039999997
+31
+1484.01692726796
+12
+47.2361683859592
+22
+-140.147039999997
+32
+1491.87386953442
+13
+47.2361683859592
+23
+-140.147039999997
+33
+1491.87386953442
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.199959785747
+20
+-140.147039999996
+30
+1390.63369222096
+11
+47.2361683859592
+21
+-140.147039999997
+31
+1491.87386953442
+12
+67.085435774237
+22
+-140.147039999996
+32
+1400.60941352256
+13
+67.085435774237
+23
+-140.147039999996
+33
+1400.60941352256
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.085435774237
+20
+-140.147039999996
+30
+1400.60941352256
+11
+47.2361683859592
+21
+-140.147039999997
+31
+1491.87386953442
+12
+60.1201784885382
+22
+-140.147039999997
+32
+1502.4475273507
+13
+60.1201784885382
+23
+-140.147039999997
+33
+1502.4475273507
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.085435774237
+20
+-140.147039999996
+30
+1400.60941352256
+11
+60.1201784885382
+21
+-140.147039999997
+31
+1502.4475273507
+12
+70.6938076414472
+22
+-140.147039999997
+32
+1515.3315609767
+13
+70.6938076414472
+23
+-140.147039999997
+33
+1515.3315609767
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.085435774237
+20
+-140.147039999996
+30
+1400.60941352256
+11
+70.6938076414472
+21
+-140.147039999997
+31
+1515.3315609767
+12
+97.3928598817289
+22
+-140.147039999996
+32
+1416.80909223683
+13
+97.3928598817289
+23
+-140.147039999996
+33
+1416.80909223683
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817289
+20
+-140.147039999996
+30
+1416.80909223683
+11
+70.6938076414472
+21
+-140.147039999997
+31
+1515.3315609767
+12
+78.5507172060996
+22
+-140.147039999997
+32
+1530.03084422563
+13
+78.5507172060996
+23
+-140.147039999997
+33
+1530.03084422563
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817289
+20
+-140.147039999996
+30
+1416.80909223683
+11
+78.5507172060996
+21
+-140.147039999997
+31
+1530.03084422563
+12
+83.3889705541313
+22
+-140.147039999997
+32
+1545.98049188567
+13
+83.3889705541313
+23
+-140.147039999997
+33
+1545.98049188567
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817289
+20
+-140.147039999996
+30
+1416.80909223683
+11
+83.3889705541313
+21
+-140.147039999997
+31
+1545.98049188567
+12
+85.0226363227013
+22
+-140.147039999998
+32
+1562.56756794192
+13
+85.0226363227013
+23
+-140.147039999998
+33
+1562.56756794192
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817289
+20
+-140.147039999996
+30
+1416.80909223683
+11
+85.0226363227013
+21
+-140.147039999998
+31
+1562.56756794192
+12
+97.3926876122757
+22
+-140.147039999999
+32
+1708.32596960222
+13
+97.3926876122757
+23
+-140.147039999999
+33
+1708.32596960222
+70
+15
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817289
+20
+-140.147039999996
+30
+1416.80909223683
+11
+97.3926876122757
+21
+-140.147039999999
+31
+1708.32596960222
+12
+123.957388293244
+22
+-140.147039999999
+32
+1686.52490943976
+13
+123.957388293244
+23
+-140.147039999999
+33
+1686.52490943976
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3928598817289
+20
+-140.147039999996
+30
+1416.80909223683
+11
+123.957388293244
+21
+-140.147039999999
+31
+1686.52490943976
+12
+123.957534796371
+22
+-140.147039999996
+32
+1438.61018379565
+13
+123.957534796371
+23
+-140.147039999996
+33
+1438.61018379565
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957534796371
+20
+-140.147039999996
+30
+1438.61018379565
+11
+123.957388293244
+21
+-140.147039999999
+31
+1686.52490943976
+12
+145.758479852067
+22
+-140.147039999998
+32
+1659.96023452511
+13
+145.758479852067
+23
+-140.147039999998
+33
+1659.96023452511
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957534796371
+20
+-140.147039999996
+30
+1438.61018379565
+11
+145.758479852067
+21
+-140.147039999998
+31
+1659.96023452511
+12
+145.758594958835
+22
+-140.147039999996
+32
+1465.17488447662
+13
+145.758594958835
+23
+-140.147039999996
+33
+1465.17488447662
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758594958835
+20
+-140.147039999996
+30
+1465.17488447662
+11
+145.758479852067
+21
+-140.147039999998
+31
+1659.96023452511
+12
+161.958158566332
+22
+-140.147039999998
+32
+1629.65281041762
+13
+161.958158566332
+23
+-140.147039999998
+33
+1629.65281041762
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758594958835
+20
+-140.147039999996
+30
+1465.17488447662
+11
+161.958158566332
+21
+-140.147039999998
+31
+1629.65281041762
+12
+161.958237853253
+22
+-140.147039999996
+32
+1495.48232773022
+13
+161.958237853253
+23
+-140.147039999996
+33
+1495.48232773022
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958237853253
+20
+-140.147039999996
+30
+1495.48232773022
+11
+161.958158566332
+21
+-140.147039999998
+31
+1629.65281041762
+12
+171.933879867935
+22
+-140.147039999998
+32
+1596.76733442913
+13
+171.933879867935
+23
+-140.147039999998
+33
+1596.76733442913
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958237853253
+20
+-140.147039999996
+30
+1495.48232773022
+11
+171.933879867935
+21
+-140.147039999998
+31
+1596.76733442913
+12
+171.933920288057
+22
+-140.147039999997
+32
+1528.36781550882
+13
+171.933920288057
+23
+-140.147039999997
+33
+1528.36781550882
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+171.933920288057
+20
+-140.147039999997
+30
+1528.36781550882
+11
+171.933879867935
+21
+-140.147039999998
+31
+1596.76733442913
+12
+175.302282381704
+22
+-140.147039999997
+32
+1562.56757695949
+13
+175.302282381704
+23
+-140.147039999997
+33
+1562.56757695949
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710078
+20
+-140.14704
+30
+1641.11801946432
+11
+-27.4505026299636
+21
+-140.14704
+31
+1670.04601633937
+12
+-16.5870682747775
+22
+-140.14704
+32
+1645.95630829588
+13
+-16.5870682747775
+23
+-140.14704
+33
+1645.95630829588
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-27.4505026299636
+20
+-140.14704
+30
+1670.04601633937
+11
+-32.5367051710078
+21
+-140.14704
+31
+1641.11801946432
+12
+-29.7122224515915
+22
+-140.14704
+32
+1681.41639731326
+13
+-29.7122224515915
+23
+-140.14704
+33
+1681.41639731326
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747775
+20
+-140.14704
+30
+1645.95630829588
+11
+-27.4505026299636
+21
+-140.14704
+31
+1670.04601633937
+12
+-21.0096895600991
+22
+-140.14704
+32
+1660.40667678512
+13
+-21.0096895600991
+23
+-140.14704
+33
+1660.40667678512
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747775
+20
+-140.14704
+30
+1645.95630829588
+11
+-21.0096895600991
+21
+-140.14704
+31
+1660.40667678512
+12
+-11.370338645769
+22
+-140.14704
+32
+1653.96588071683
+13
+-11.370338645769
+23
+-140.14704
+33
+1653.96588071683
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747775
+20
+-140.14704
+30
+1645.95630829588
+11
+-11.370338645769
+21
+-140.14704
+31
+1653.96588071683
+12
+4.14697744393067e-06
+22
+-140.147039999999
+32
+1647.59001096608
+13
+4.14697744393067e-06
+23
+-140.147039999999
+33
+1647.59001096608
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697744393067e-06
+20
+-140.147039999999
+30
+1647.59001096608
+11
+-11.370338645769
+21
+-140.14704
+31
+1653.96588071683
+12
+4.63172537816581e-05
+22
+-140.14704
+32
+1651.70418094992
+13
+4.63172537816581e-05
+23
+-140.14704
+33
+1651.70418094992
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697744393067e-06
+20
+-140.147039999999
+30
+1647.59001096608
+11
+4.63172537816581e-05
+21
+-140.14704
+31
+1651.70418094992
+12
+16.5870802032265
+22
+-140.147039999999
+32
+1645.95634519751
+13
+16.5870802032265
+23
+-140.147039999999
+33
+1645.95634519751
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032265
+20
+-140.147039999999
+30
+1645.95634519751
+11
+4.63172537816581e-05
+21
+-140.14704
+31
+1651.70418094992
+12
+11.3704272911452
+22
+-140.14704
+32
+1653.96590077155
+13
+11.3704272911452
+23
+-140.14704
+33
+1653.96590077155
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032265
+20
+-140.147039999999
+30
+1645.95634519751
+11
+11.3704272911452
+21
+-140.14704
+31
+1653.96590077155
+12
+21.0097668453905
+22
+-140.14704
+32
+1660.40671384141
+13
+21.0097668453905
+23
+-140.14704
+33
+1660.40671384141
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032265
+20
+-140.147039999999
+30
+1645.95634519751
+11
+21.0097668453905
+21
+-140.14704
+31
+1660.40671384141
+12
+32.5367278632675
+22
+-140.147039999999
+32
+1641.11809184948
+13
+32.5367278632675
+23
+-140.147039999999
+33
+1641.11809184948
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632675
+20
+-140.147039999999
+30
+1641.11809184948
+11
+21.0097668453905
+21
+-140.14704
+31
+1660.40671384141
+12
+27.4505629136866
+22
+-140.14704
+32
+1670.04606475574
+13
+27.4505629136866
+23
+-140.14704
+33
+1670.04606475574
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632675
+20
+-140.147039999999
+30
+1641.11809184948
+11
+27.4505629136866
+21
+-140.14704
+31
+1670.04606475574
+12
+29.712262680597
+22
+-140.14704
+32
+1681.41644971876
+13
+29.712262680597
+23
+-140.14704
+33
+1681.41644971876
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.1997623402384
+20
+-140.147040000001
+30
+1734.50125451132
+11
+-4.87059913788501e-06
+21
+-327.009760000001
+31
+1737.86965702509
+12
+-4.87060060567757e-06
+22
+-140.14704
+32
+1737.86965702509
+13
+-4.87060060567757e-06
+23
+-140.14704
+33
+1737.86965702509
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-4.87059913788501e-06
+20
+-327.009760000001
+30
+1737.86965702509
+11
+-34.1997623402384
+21
+-140.147040000001
+31
+1734.50125451132
+12
+-34.199762340237
+22
+-327.009760000002
+32
+1734.50125451132
+13
+-34.199762340237
+23
+-327.009760000002
+33
+1734.50125451132
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6935051089646
+20
+-301.609759999999
+30
+1515.33140370293
+11
+-60.1198472926819
+21
+-327.009759999999
+31
+1502.44739360035
+12
+-60.1198472926821
+22
+-301.609759999999
+32
+1502.44739360035
+13
+-60.1198472926821
+23
+-301.609759999999
+33
+1502.44739360035
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926819
+20
+-327.009759999999
+30
+1502.44739360035
+11
+-70.6935051089646
+21
+-301.609759999999
+31
+1515.33140370293
+12
+-70.6935051089644
+22
+-327.009759999999
+32
+1515.33140370293
+13
+-70.6935051089644
+23
+-327.009759999999
+33
+1515.33140370293
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887362069839
+20
+-301.60976
+30
+1545.98030636861
+11
+-83.3887731086215
+21
+-301.60976
+31
+1579.15445484661
+12
+-85.0224388771915
+22
+-301.60976
+32
+1562.56737879036
+13
+-85.0224388771915
+23
+-301.60976
+33
+1562.56737879036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086215
+20
+-301.60976
+30
+1579.15445484661
+11
+-83.3887362069839
+21
+-301.60976
+31
+1545.98030636861
+12
+-78.5505197605897
+22
+-301.60976
+32
+1595.10410250665
+13
+-78.5505197605897
+23
+-301.60976
+33
+1595.10410250665
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5505197605897
+20
+-301.60976
+30
+1595.10410250665
+11
+-83.3887362069839
+21
+-301.60976
+31
+1545.98030636861
+12
+-78.5504473754239
+22
+-301.60976
+32
+1530.03066947238
+13
+-78.5504473754239
+23
+-301.60976
+33
+1530.03066947238
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5505197605897
+20
+-301.60976
+30
+1595.10410250665
+11
+-78.5504473754239
+21
+-301.60976
+31
+1530.03066947238
+12
+-70.6936101959373
+22
+-301.60976
+32
+1609.80338575557
+13
+-70.6936101959373
+23
+-301.60976
+33
+1609.80338575557
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6936101959373
+20
+-301.60976
+30
+1609.80338575557
+11
+-78.5504473754239
+21
+-301.60976
+31
+1530.03066947238
+12
+-70.6935051089646
+22
+-301.609759999999
+32
+1515.33140370293
+13
+-70.6935051089646
+23
+-301.609759999999
+33
+1515.33140370293
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6936101959373
+20
+-301.60976
+30
+1609.80338575557
+11
+-70.6935051089646
+21
+-301.609759999999
+31
+1515.33140370293
+12
+-60.1199810430283
+22
+-301.609760000001
+32
+1622.68741938157
+13
+-60.1199810430283
+23
+-301.609760000001
+33
+1622.68741938157
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430283
+20
+-301.609760000001
+30
+1622.68741938157
+11
+-70.6935051089646
+21
+-301.609759999999
+31
+1515.33140370293
+12
+-60.1198472926821
+22
+-301.609759999999
+32
+1502.44739360035
+13
+-60.1198472926821
+23
+-301.609759999999
+33
+1502.44739360035
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430283
+20
+-301.609760000001
+30
+1622.68741938157
+11
+-60.1198472926821
+21
+-301.609759999999
+31
+1502.44739360035
+12
+-47.2359709404494
+22
+-301.609760000001
+32
+1633.26107719786
+13
+-47.2359709404494
+23
+-301.609760000001
+33
+1633.26107719786
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2359709404494
+20
+-301.609760000001
+30
+1633.26107719786
+11
+-60.1198472926821
+21
+-301.609759999999
+31
+1502.44739360035
+12
+-47.2358136666804
+22
+-301.609759999999
+32
+1491.87376444745
+13
+-47.2358136666804
+23
+-301.609759999999
+33
+1491.87376444745
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2359709404494
+20
+-301.609760000001
+30
+1633.26107719786
+11
+-47.2358136666804
+21
+-301.609759999999
+31
+1491.87376444745
+12
+-32.5367051710066
+22
+-301.609760000001
+32
+1641.11801946432
+13
+-32.5367051710066
+23
+-301.609760000001
+33
+1641.11801946432
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710066
+20
+-301.609760000001
+30
+1641.11801946432
+11
+-47.2358136666804
+21
+-301.609759999999
+31
+1491.87376444745
+12
+-32.5365304177576
+22
+-301.609759999999
+32
+1484.01685488279
+13
+-32.5365304177576
+23
+-301.609759999999
+33
+1484.01685488279
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710066
+20
+-301.609760000001
+30
+1641.11801946432
+11
+-32.5365304177576
+21
+-301.609759999999
+31
+1484.01685488279
+12
+-16.5870682747763
+22
+-301.60976
+32
+1645.95630829588
+13
+-16.5870682747763
+23
+-301.60976
+33
+1645.95630829588
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747763
+20
+-301.60976
+30
+1645.95630829588
+11
+-32.5365304177576
+21
+-301.609759999999
+31
+1484.01685488279
+12
+-16.5868827577167
+22
+-301.609759999998
+32
+1479.17860153476
+13
+-16.5868827577167
+23
+-301.609759999998
+33
+1479.17860153476
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747763
+20
+-301.60976
+30
+1645.95630829588
+11
+-16.5868827577167
+21
+-301.609759999998
+31
+1479.17860153476
+12
+4.14697870727565e-06
+22
+-301.60976
+32
+1647.59001096608
+13
+4.14697870727565e-06
+23
+-301.60976
+33
+1647.59001096608
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697870727565e-06
+20
+-301.60976
+30
+1647.59001096608
+11
+-16.5868827577167
+21
+-301.609759999998
+31
+1479.17860153476
+12
+0.000193298532362707
+22
+-301.609759999998
+32
+1477.54493576619
+13
+0.000193298532362707
+23
+-301.609759999998
+33
+1477.54493576619
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697870727565e-06
+20
+-301.60976
+30
+1647.59001096608
+11
+0.000193298532362707
+21
+-301.609759999998
+31
+1477.54493576619
+12
+16.5870802032278
+22
+-301.60976
+32
+1645.95634519751
+13
+16.5870802032278
+23
+-301.60976
+33
+1645.95634519751
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032278
+20
+-301.60976
+30
+1645.95634519751
+11
+0.000193298532362707
+21
+-301.609759999998
+31
+1477.54493576619
+12
+16.5872657202874
+22
+-301.609759999998
+32
+1479.1786384364
+13
+16.5872657202874
+23
+-301.609759999998
+33
+1479.1786384364
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032278
+20
+-301.60976
+30
+1645.95634519751
+11
+16.5872657202874
+21
+-301.609759999998
+31
+1479.1786384364
+12
+32.5367278632687
+22
+-301.60976
+32
+1641.11809184948
+13
+32.5367278632687
+23
+-301.60976
+33
+1641.11809184948
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632687
+20
+-301.60976
+30
+1641.11809184948
+11
+16.5872657202874
+21
+-301.609759999998
+31
+1479.1786384364
+12
+32.5369026165177
+22
+-301.609759999998
+32
+1484.01692726796
+13
+32.5369026165177
+23
+-301.609759999998
+33
+1484.01692726796
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632687
+20
+-301.60976
+30
+1641.11809184948
+11
+32.5369026165177
+21
+-301.609759999998
+31
+1484.01692726796
+12
+47.2360111121915
+22
+-301.60976
+32
+1633.26118228483
+13
+47.2360111121915
+23
+-301.60976
+33
+1633.26118228483
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121915
+20
+-301.60976
+30
+1633.26118228483
+11
+32.5369026165177
+21
+-301.609759999998
+31
+1484.01692726796
+12
+47.2361683859605
+22
+-301.609759999998
+32
+1491.87386953442
+13
+47.2361683859605
+23
+-301.609759999998
+33
+1491.87386953442
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121915
+20
+-301.60976
+30
+1633.26118228483
+11
+47.2361683859605
+21
+-301.609759999998
+31
+1491.87386953442
+12
+60.1200447381932
+22
+-301.60976
+32
+1622.68755313192
+13
+60.1200447381932
+23
+-301.60976
+33
+1622.68755313192
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1200447381932
+20
+-301.60976
+30
+1622.68755313192
+11
+47.2361683859605
+21
+-301.609759999998
+31
+1491.87386953442
+12
+60.1201784885394
+22
+-301.609759999998
+32
+1502.4475273507
+13
+60.1201784885394
+23
+-301.609759999998
+33
+1502.4475273507
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1200447381932
+20
+-301.60976
+30
+1622.68755313192
+11
+60.1201784885394
+21
+-301.609759999998
+31
+1502.4475273507
+12
+70.6937025544757
+22
+-301.609759999999
+32
+1609.80354302934
+13
+70.6937025544757
+23
+-301.609759999999
+33
+1609.80354302934
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544757
+20
+-301.609759999999
+30
+1609.80354302934
+11
+60.1201784885394
+21
+-301.609759999998
+31
+1502.4475273507
+12
+70.6938076414485
+22
+-301.609759999998
+32
+1515.3315609767
+13
+70.6938076414485
+23
+-301.609759999998
+33
+1515.3315609767
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544757
+20
+-301.609759999999
+30
+1609.80354302934
+11
+70.6938076414485
+21
+-301.609759999998
+31
+1515.3315609767
+12
+78.550644820935
+22
+-301.609759999999
+32
+1595.1042772599
+13
+78.550644820935
+23
+-301.609759999999
+33
+1595.1042772599
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.550644820935
+20
+-301.609759999999
+30
+1595.1042772599
+11
+70.6938076414485
+21
+-301.609759999998
+31
+1515.3315609767
+12
+78.5507172061008
+22
+-301.609759999998
+32
+1530.03084422562
+13
+78.5507172061008
+23
+-301.609759999998
+33
+1530.03084422562
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.550644820935
+20
+-301.609759999999
+30
+1595.1042772599
+11
+78.5507172061008
+21
+-301.609759999998
+31
+1530.03084422562
+12
+83.388933652495
+22
+-301.609759999999
+32
+1579.15464036367
+13
+83.388933652495
+23
+-301.609759999999
+33
+1579.15464036367
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.388933652495
+20
+-301.609759999999
+30
+1579.15464036367
+11
+78.5507172061008
+21
+-301.609759999998
+31
+1530.03084422562
+12
+83.3889705541326
+22
+-301.609759999998
+32
+1545.98049188567
+13
+83.3889705541326
+23
+-301.609759999998
+33
+1545.98049188567
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.388933652495
+20
+-301.609759999999
+30
+1579.15464036367
+11
+83.3889705541326
+21
+-301.609759999998
+31
+1545.98049188567
+12
+85.0226363227026
+22
+-301.609759999999
+32
+1562.56756794191
+13
+85.0226363227026
+23
+-301.609759999999
+33
+1562.56756794191
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887362069839
+20
+-301.60976
+30
+1545.98030636861
+11
+-78.5504473754237
+21
+-327.00976
+31
+1530.03066947238
+12
+-78.5504473754239
+22
+-301.60976
+32
+1530.03066947238
+13
+-78.5504473754239
+23
+-301.60976
+33
+1530.03066947238
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5504473754237
+20
+-327.00976
+30
+1530.03066947238
+11
+-83.3887362069839
+21
+-301.60976
+31
+1545.98030636861
+12
+-83.3887362069838
+22
+-327.00976
+32
+1545.98030636861
+13
+-83.3887362069838
+23
+-327.00976
+33
+1545.98030636861
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2359709404492
+20
+-327.009760000001
+30
+1633.26107719786
+11
+-60.1199810430283
+21
+-301.609760000001
+31
+1622.68741938157
+12
+-47.2359709404494
+22
+-301.609760000001
+32
+1633.26107719786
+13
+-47.2359709404494
+23
+-301.609760000001
+33
+1633.26107719786
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430283
+20
+-301.609760000001
+30
+1622.68741938157
+11
+-47.2359709404492
+21
+-327.009760000001
+31
+1633.26107719786
+12
+-60.1199810430281
+22
+-327.009760000001
+32
+1622.68741938157
+13
+-60.1199810430281
+23
+-327.009760000001
+33
+1622.68741938157
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-85.0224388771915
+20
+-301.60976
+30
+1562.56737879036
+11
+-83.3887362069838
+21
+-327.00976
+31
+1545.98030636861
+12
+-83.3887362069839
+22
+-301.60976
+32
+1545.98030636861
+13
+-83.3887362069839
+23
+-301.60976
+33
+1545.98030636861
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887362069838
+20
+-327.00976
+30
+1545.98030636861
+11
+-85.0224388771915
+21
+-301.60976
+31
+1562.56737879036
+12
+-85.0224388771913
+22
+-327.00976
+32
+1562.56737879036
+13
+-85.0224388771913
+23
+-327.00976
+33
+1562.56737879036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710064
+20
+-327.009760000001
+30
+1641.11801946432
+11
+-47.2359709404494
+21
+-301.609760000001
+31
+1633.26107719786
+12
+-32.5367051710066
+22
+-301.609760000001
+32
+1641.11801946432
+13
+-32.5367051710066
+23
+-301.609760000001
+33
+1641.11801946432
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2359709404494
+20
+-301.609760000001
+30
+1633.26107719786
+11
+-32.5367051710064
+21
+-327.009760000001
+31
+1641.11801946432
+12
+-47.2359709404492
+22
+-327.009760000001
+32
+1633.26107719786
+13
+-47.2359709404492
+23
+-327.009760000001
+33
+1633.26107719786
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5505197605897
+20
+-301.60976
+30
+1595.10410250665
+11
+-83.3887731086213
+21
+-327.00976
+31
+1579.15445484661
+12
+-83.3887731086215
+22
+-301.60976
+32
+1579.15445484661
+13
+-83.3887731086215
+23
+-301.60976
+33
+1579.15445484661
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086213
+20
+-327.00976
+30
+1579.15445484661
+11
+-78.5505197605897
+21
+-301.60976
+31
+1595.10410250665
+12
+-78.5505197605895
+22
+-327.00976
+32
+1595.10410250665
+13
+-78.5505197605895
+23
+-327.00976
+33
+1595.10410250665
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859594
+20
+-165.547039999997
+30
+1491.87386953442
+11
+60.1201784885382
+21
+-140.147039999997
+31
+1502.4475273507
+12
+47.2361683859592
+22
+-140.147039999997
+32
+1491.87386953442
+13
+47.2361683859592
+23
+-140.147039999997
+33
+1491.87386953442
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1201784885382
+20
+-140.147039999997
+30
+1502.4475273507
+11
+47.2361683859594
+21
+-165.547039999997
+31
+1491.87386953442
+12
+60.1201784885383
+22
+-165.547039999997
+32
+1502.4475273507
+13
+60.1201784885383
+23
+-165.547039999997
+33
+1502.4475273507
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1201784885383
+20
+-165.547039999997
+30
+1502.4475273507
+11
+70.6938076414472
+21
+-140.147039999997
+31
+1515.3315609767
+12
+60.1201784885382
+22
+-140.147039999997
+32
+1502.4475273507
+13
+60.1201784885382
+23
+-140.147039999997
+33
+1502.4475273507
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414472
+20
+-140.147039999997
+30
+1515.3315609767
+11
+60.1201784885383
+21
+-165.547039999997
+31
+1502.4475273507
+12
+70.6938076414473
+22
+-165.547039999997
+32
+1515.3315609767
+13
+70.6938076414473
+23
+-165.547039999997
+33
+1515.3315609767
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414473
+20
+-165.547039999997
+30
+1515.3315609767
+11
+78.5507172060996
+21
+-140.147039999997
+31
+1530.03084422563
+12
+70.6938076414472
+22
+-140.147039999997
+32
+1515.3315609767
+13
+70.6938076414472
+23
+-140.147039999997
+33
+1515.3315609767
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5507172060996
+20
+-140.147039999997
+30
+1530.03084422563
+11
+70.6938076414473
+21
+-165.547039999997
+31
+1515.3315609767
+12
+78.5507172060997
+22
+-165.547039999997
+32
+1530.03084422563
+13
+78.5507172060997
+23
+-165.547039999997
+33
+1530.03084422563
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3924901667657
+20
+-327.009759999998
+30
+1416.80897713006
+11
+-83.3887362069838
+21
+-327.00976
+31
+1545.98030636861
+12
+-85.0224388771913
+22
+-327.00976
+32
+1562.56737879036
+13
+-85.0224388771913
+23
+-327.00976
+33
+1562.56737879036
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887362069838
+20
+-327.00976
+30
+1545.98030636861
+11
+-97.3924901667657
+21
+-327.009759999998
+31
+1416.80897713006
+12
+-67.0850469131664
+22
+-327.009759999998
+32
+1400.60933423564
+13
+-67.0850469131664
+23
+-327.009759999998
+33
+1400.60933423564
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887362069838
+20
+-327.00976
+30
+1545.98030636861
+11
+-67.0850469131664
+21
+-327.009759999998
+31
+1400.60933423564
+12
+-78.5504473754237
+22
+-327.00976
+32
+1530.03066947238
+13
+-78.5504473754237
+23
+-327.00976
+33
+1530.03066947238
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5504473754237
+20
+-327.00976
+30
+1530.03066947238
+11
+-67.0850469131664
+21
+-327.009759999998
+31
+1400.60933423564
+12
+-70.6935051089644
+22
+-327.009759999999
+32
+1515.33140370293
+13
+-70.6935051089644
+23
+-327.009759999999
+33
+1515.33140370293
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6935051089644
+20
+-327.009759999999
+30
+1515.33140370293
+11
+-67.0850469131664
+21
+-327.009759999998
+31
+1400.60933423564
+12
+-60.1198472926819
+22
+-327.009759999999
+32
+1502.44739360035
+13
+-60.1198472926819
+23
+-327.009759999999
+33
+1502.44739360035
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926819
+20
+-327.009759999999
+30
+1502.44739360035
+11
+-67.0850469131664
+21
+-327.009759999998
+31
+1400.60933423564
+12
+-34.1995591345617
+22
+-327.009759999998
+32
+1390.63365180083
+13
+-34.1995591345617
+23
+-327.009759999998
+33
+1390.63365180083
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926819
+20
+-327.009759999999
+30
+1502.44739360035
+11
+-34.1995591345617
+21
+-327.009759999998
+31
+1390.63365180083
+12
+-47.2358136666802
+22
+-327.009759999999
+32
+1491.87376444745
+13
+-47.2358136666802
+23
+-327.009759999999
+33
+1491.87376444745
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2358136666802
+20
+-327.009759999999
+30
+1491.87376444745
+11
+-34.1995591345617
+21
+-327.009759999998
+31
+1390.63365180083
+12
+-32.5365304177574
+22
+-327.009759999999
+32
+1484.01685488279
+13
+-32.5365304177574
+23
+-327.009759999999
+33
+1484.01685488279
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177574
+20
+-327.009759999999
+30
+1484.01685488279
+11
+-34.1995591345617
+21
+-327.009759999998
+31
+1390.63365180083
+12
+0.000202316110637912
+22
+-327.009759999997
+32
+1387.26528970719
+13
+0.000202316110637912
+23
+-327.009759999997
+33
+1387.26528970719
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177574
+20
+-327.009759999999
+30
+1484.01685488279
+11
+0.000202316110637912
+21
+-327.009759999997
+31
+1387.26528970719
+12
+-16.5868827577165
+22
+-327.009759999998
+32
+1479.17860153476
+13
+-16.5868827577165
+23
+-327.009759999998
+33
+1479.17860153476
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5868827577165
+20
+-327.009759999998
+30
+1479.17860153476
+11
+0.000202316110637912
+21
+-327.009759999997
+31
+1387.26528970719
+12
+0.000193298532564334
+22
+-327.009759999998
+32
+1477.54493576619
+13
+0.000193298532564334
+23
+-327.009759999998
+33
+1477.54493576619
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000193298532564334
+20
+-327.009759999998
+30
+1477.54493576619
+11
+0.000202316110637912
+21
+-327.009759999997
+31
+1387.26528970719
+12
+16.5872657202876
+22
+-327.009759999998
+32
+1479.1786384364
+13
+16.5872657202876
+23
+-327.009759999998
+33
+1479.1786384364
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202876
+20
+-327.009759999998
+30
+1479.1786384364
+11
+0.000202316110637912
+21
+-327.009759999997
+31
+1387.26528970719
+12
+34.1999597857484
+22
+-327.009759999997
+32
+1390.63369222096
+13
+34.1999597857484
+23
+-327.009759999997
+33
+1390.63369222096
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202876
+20
+-327.009759999998
+30
+1479.1786384364
+11
+34.1999597857484
+21
+-327.009759999997
+31
+1390.63369222096
+12
+32.5369026165179
+22
+-327.009759999998
+32
+1484.01692726796
+13
+32.5369026165179
+23
+-327.009759999998
+33
+1484.01692726796
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5369026165179
+20
+-327.009759999998
+30
+1484.01692726796
+11
+34.1999597857484
+21
+-327.009759999997
+31
+1390.63369222096
+12
+47.2361683859607
+22
+-327.009759999998
+32
+1491.87386953442
+13
+47.2361683859607
+23
+-327.009759999998
+33
+1491.87386953442
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859607
+20
+-327.009759999998
+30
+1491.87386953442
+11
+34.1999597857484
+21
+-327.009759999997
+31
+1390.63369222096
+12
+67.0854357742384
+22
+-327.009759999997
+32
+1400.60941352256
+13
+67.0854357742384
+23
+-327.009759999997
+33
+1400.60941352256
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859607
+20
+-327.009759999998
+30
+1491.87386953442
+11
+67.0854357742384
+21
+-327.009759999997
+31
+1400.60941352256
+12
+60.1201784885396
+22
+-327.009759999998
+32
+1502.4475273507
+13
+60.1201784885396
+23
+-327.009759999998
+33
+1502.4475273507
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1201784885396
+20
+-327.009759999998
+30
+1502.4475273507
+11
+67.0854357742384
+21
+-327.009759999997
+31
+1400.60941352256
+12
+70.6938076414486
+22
+-327.009759999998
+32
+1515.3315609767
+13
+70.6938076414486
+23
+-327.009759999998
+33
+1515.3315609767
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414486
+20
+-327.009759999998
+30
+1515.3315609767
+11
+67.0854357742384
+21
+-327.009759999997
+31
+1400.60941352256
+12
+97.3928598817304
+22
+-327.009759999997
+32
+1416.80909223683
+13
+97.3928598817304
+23
+-327.009759999997
+33
+1416.80909223683
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414486
+20
+-327.009759999998
+30
+1515.3315609767
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+78.550717206101
+22
+-327.009759999998
+32
+1530.03084422562
+13
+78.550717206101
+23
+-327.009759999998
+33
+1530.03084422562
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.550717206101
+20
+-327.009759999998
+30
+1530.03084422562
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+83.3889705541327
+22
+-327.009759999998
+32
+1545.98049188567
+13
+83.3889705541327
+23
+-327.009759999998
+33
+1545.98049188567
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889705541327
+20
+-327.009759999998
+30
+1545.98049188567
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+85.0226363227028
+22
+-327.009759999999
+32
+1562.56756794191
+13
+85.0226363227028
+23
+-327.009759999999
+33
+1562.56756794191
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+85.0226363227028
+20
+-327.009759999999
+30
+1562.56756794191
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+97.3926876122771
+22
+-327.00976
+32
+1708.32596960222
+13
+97.3926876122771
+23
+-327.00976
+33
+1708.32596960222
+70
+15
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3926876122771
+20
+-327.00976
+30
+1708.32596960222
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+123.957388293245
+22
+-327.00976
+32
+1686.52490943975
+13
+123.957388293245
+23
+-327.00976
+33
+1686.52490943975
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957388293245
+20
+-327.00976
+30
+1686.52490943975
+11
+97.3928598817304
+21
+-327.009759999997
+31
+1416.80909223683
+12
+123.957534796373
+22
+-327.009759999997
+32
+1438.61018379565
+13
+123.957534796373
+23
+-327.009759999997
+33
+1438.61018379565
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+123.957388293245
+20
+-327.00976
+30
+1686.52490943975
+11
+123.957534796373
+21
+-327.009759999997
+31
+1438.61018379565
+12
+145.758479852068
+22
+-327.009759999999
+32
+1659.96023452511
+13
+145.758479852068
+23
+-327.009759999999
+33
+1659.96023452511
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758479852068
+20
+-327.009759999999
+30
+1659.96023452511
+11
+123.957534796373
+21
+-327.009759999997
+31
+1438.61018379565
+12
+145.758594958837
+22
+-327.009759999997
+32
+1465.17488447662
+13
+145.758594958837
+23
+-327.009759999997
+33
+1465.17488447662
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+145.758479852068
+20
+-327.009759999999
+30
+1659.96023452511
+11
+145.758594958837
+21
+-327.009759999997
+31
+1465.17488447662
+12
+161.958158566334
+22
+-327.009759999999
+32
+1629.65281041762
+13
+161.958158566334
+23
+-327.009759999999
+33
+1629.65281041762
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958158566334
+20
+-327.009759999999
+30
+1629.65281041762
+11
+145.758594958837
+21
+-327.009759999997
+31
+1465.17488447662
+12
+161.958237853255
+22
+-327.009759999997
+32
+1495.48232773022
+13
+161.958237853255
+23
+-327.009759999997
+33
+1495.48232773022
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+161.958158566334
+20
+-327.009759999999
+30
+1629.65281041762
+11
+161.958237853255
+21
+-327.009759999997
+31
+1495.48232773022
+12
+171.933879867937
+22
+-327.009759999998
+32
+1596.76733442913
+13
+171.933879867937
+23
+-327.009759999998
+33
+1596.76733442913
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+171.933879867937
+20
+-327.009759999998
+30
+1596.76733442913
+11
+161.958237853255
+21
+-327.009759999997
+31
+1495.48232773022
+12
+171.933920288059
+22
+-327.009759999998
+32
+1528.36781550882
+13
+171.933920288059
+23
+-327.009759999998
+33
+1528.36781550882
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+171.933879867937
+20
+-327.009759999998
+30
+1596.76733442913
+11
+171.933920288059
+21
+-327.009759999998
+31
+1528.36781550882
+12
+175.302282381706
+22
+-327.009759999998
+32
+1562.56757695949
+13
+175.302282381706
+23
+-327.009759999998
+33
+1562.56757695949
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933682422425
+20
+-327.00976
+30
+1528.36761230315
+11
+-171.933722842547
+21
+-327.009760000001
+31
+1596.76713122345
+12
+-175.302084936194
+22
+-327.009760000001
+32
+1562.56736977278
+13
+-175.302084936194
+23
+-327.009760000001
+33
+1562.56736977278
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-171.933722842547
+20
+-327.009760000001
+30
+1596.76713122345
+11
+-171.933682422425
+21
+-327.00976
+31
+1528.36761230315
+12
+-161.958040407743
+22
+-327.009760000001
+32
+1629.65261900206
+13
+-161.958040407743
+23
+-327.009760000001
+33
+1629.65261900206
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.958040407743
+20
+-327.009760000001
+30
+1629.65261900206
+11
+-171.933682422425
+21
+-327.00976
+31
+1528.36761230315
+12
+-161.957961120822
+22
+-327.00976
+32
+1495.48213631465
+13
+-161.957961120822
+23
+-327.00976
+33
+1495.48213631465
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-161.958040407743
+20
+-327.009760000001
+30
+1629.65261900206
+11
+-161.957961120822
+21
+-327.00976
+31
+1495.48213631465
+12
+-145.758397513325
+22
+-327.009760000002
+32
+1659.96006225566
+13
+-145.758397513325
+23
+-327.009760000002
+33
+1659.96006225566
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758397513325
+20
+-327.009760000002
+30
+1659.96006225566
+11
+-161.957961120822
+21
+-327.00976
+31
+1495.48213631465
+12
+-145.758282406557
+22
+-327.009759999999
+32
+1465.17471220716
+13
+-145.758282406557
+23
+-327.009759999999
+33
+1465.17471220716
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-145.758397513325
+20
+-327.009760000002
+30
+1659.96006225566
+11
+-145.758282406557
+21
+-327.009759999999
+31
+1465.17471220716
+12
+-123.957337350861
+22
+-327.009760000002
+32
+1686.52476293663
+13
+-123.957337350861
+23
+-327.009760000002
+33
+1686.52476293663
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957337350861
+20
+-327.009760000002
+30
+1686.52476293663
+11
+-145.758282406557
+21
+-327.009759999999
+31
+1465.17471220716
+12
+-123.957190847734
+22
+-327.009759999999
+32
+1438.61003729252
+13
+-123.957190847734
+23
+-327.009759999999
+33
+1438.61003729252
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-123.957337350861
+20
+-327.009760000002
+30
+1686.52476293663
+11
+-123.957190847734
+21
+-327.009759999999
+31
+1438.61003729252
+12
+-97.3926624362189
+22
+-327.009760000002
+32
+1708.32585449545
+13
+-97.3926624362189
+23
+-327.009760000002
+33
+1708.32585449545
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3926624362189
+20
+-327.009760000002
+30
+1708.32585449545
+11
+-123.957190847734
+21
+-327.009759999999
+31
+1438.61003729252
+12
+-97.3924901667657
+22
+-327.009759999998
+32
+1416.80897713006
+13
+-97.3924901667657
+23
+-327.009759999998
+33
+1416.80897713006
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3926624362189
+20
+-327.009760000002
+30
+1708.32585449545
+11
+-97.3924901667657
+21
+-327.009759999998
+31
+1416.80897713006
+12
+-85.0224388771913
+22
+-327.00976
+32
+1562.56737879036
+13
+-85.0224388771913
+23
+-327.00976
+33
+1562.56737879036
+70
+15
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3926624362189
+20
+-327.009760000002
+30
+1708.32585449545
+11
+-85.0224388771913
+21
+-327.00976
+31
+1562.56737879036
+12
+-83.3887731086213
+22
+-327.00976
+32
+1579.15445484661
+13
+-83.3887731086213
+23
+-327.00976
+33
+1579.15445484661
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-97.3926624362189
+20
+-327.009760000002
+30
+1708.32585449545
+11
+-83.3887731086213
+21
+-327.00976
+31
+1579.15445484661
+12
+-67.085238328727
+22
+-327.009760000002
+32
+1724.52553320972
+13
+-67.085238328727
+23
+-327.009760000002
+33
+1724.52553320972
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.085238328727
+20
+-327.009760000002
+30
+1724.52553320972
+11
+-83.3887731086213
+21
+-327.00976
+31
+1579.15445484661
+12
+-78.5505197605895
+22
+-327.00976
+32
+1595.10410250665
+13
+-78.5505197605895
+23
+-327.00976
+33
+1595.10410250665
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.085238328727
+20
+-327.009760000002
+30
+1724.52553320972
+11
+-78.5505197605895
+21
+-327.00976
+31
+1595.10410250665
+12
+-70.6936101959371
+22
+-327.00976
+32
+1609.80338575557
+13
+-70.6936101959371
+23
+-327.00976
+33
+1609.80338575557
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.085238328727
+20
+-327.009760000002
+30
+1724.52553320972
+11
+-70.6936101959371
+21
+-327.00976
+31
+1609.80338575557
+12
+-60.1199810430281
+22
+-327.009760000001
+32
+1622.68741938157
+13
+-60.1199810430281
+23
+-327.009760000001
+33
+1622.68741938157
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-67.085238328727
+20
+-327.009760000002
+30
+1724.52553320972
+11
+-60.1199810430281
+21
+-327.009760000001
+31
+1622.68741938157
+12
+-34.199762340237
+22
+-327.009760000002
+32
+1734.50125451132
+13
+-34.199762340237
+23
+-327.009760000002
+33
+1734.50125451132
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.199762340237
+20
+-327.009760000002
+30
+1734.50125451132
+11
+-60.1199810430281
+21
+-327.009760000001
+31
+1622.68741938157
+12
+-47.2359709404492
+22
+-327.009760000001
+32
+1633.26107719786
+13
+-47.2359709404492
+23
+-327.009760000001
+33
+1633.26107719786
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.199762340237
+20
+-327.009760000002
+30
+1734.50125451132
+11
+-47.2359709404492
+21
+-327.009760000001
+31
+1633.26107719786
+12
+-32.5367051710064
+22
+-327.009760000001
+32
+1641.11801946432
+13
+-32.5367051710064
+23
+-327.009760000001
+33
+1641.11801946432
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-34.199762340237
+20
+-327.009760000002
+30
+1734.50125451132
+11
+-32.5367051710064
+21
+-327.009760000001
+31
+1641.11801946432
+12
+-4.87059913788501e-06
+22
+-327.009760000001
+32
+1737.86965702509
+13
+-4.87059913788501e-06
+23
+-327.009760000001
+33
+1737.86965702509
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-4.87059913788501e-06
+20
+-327.009760000001
+30
+1737.86965702509
+11
+-32.5367051710064
+21
+-327.009760000001
+31
+1641.11801946432
+12
+-16.5870682747761
+22
+-327.00976
+32
+1645.95630829588
+13
+-16.5870682747761
+23
+-327.00976
+33
+1645.95630829588
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-4.87059913788501e-06
+20
+-327.009760000001
+30
+1737.86965702509
+11
+-16.5870682747761
+21
+-327.00976
+31
+1645.95630829588
+12
+4.14697891172322e-06
+22
+-327.00976
+32
+1647.59001096608
+13
+4.14697891172322e-06
+23
+-327.00976
+33
+1647.59001096608
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-4.87059913788501e-06
+20
+-327.009760000001
+30
+1737.86965702509
+11
+4.14697891172322e-06
+21
+-327.00976
+31
+1647.59001096608
+12
+34.1997565800732
+22
+-327.009760000001
+32
+1734.50129493144
+13
+34.1997565800732
+23
+-327.009760000001
+33
+1734.50129493144
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.1997565800732
+20
+-327.009760000001
+30
+1734.50129493144
+11
+4.14697891172322e-06
+21
+-327.00976
+31
+1647.59001096608
+12
+16.587080203228
+22
+-327.00976
+32
+1645.95634519751
+13
+16.587080203228
+23
+-327.00976
+33
+1645.95634519751
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.1997565800732
+20
+-327.009760000001
+30
+1734.50129493144
+11
+16.587080203228
+21
+-327.00976
+31
+1645.95634519751
+12
+32.5367278632689
+22
+-327.00976
+32
+1641.11809184948
+13
+32.5367278632689
+23
+-327.00976
+33
+1641.11809184948
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.1997565800732
+20
+-327.009760000001
+30
+1734.50129493144
+11
+32.5367278632689
+21
+-327.00976
+31
+1641.11809184948
+12
+47.2360111121917
+22
+-327.00976
+32
+1633.26118228483
+13
+47.2360111121917
+23
+-327.00976
+33
+1633.26118228483
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+34.1997565800732
+20
+-327.009760000001
+30
+1734.50129493144
+11
+47.2360111121917
+21
+-327.00976
+31
+1633.26118228483
+12
+67.0852443586779
+22
+-327.009760000001
+32
+1724.52561249664
+13
+67.0852443586779
+23
+-327.009760000001
+33
+1724.52561249664
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.0852443586779
+20
+-327.009760000001
+30
+1724.52561249664
+11
+47.2360111121917
+21
+-327.00976
+31
+1633.26118228483
+12
+60.1200447381933
+22
+-327.00976
+32
+1622.68755313192
+13
+60.1200447381933
+23
+-327.00976
+33
+1622.68755313192
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.0852443586779
+20
+-327.009760000001
+30
+1724.52561249664
+11
+60.1200447381933
+21
+-327.00976
+31
+1622.68755313192
+12
+70.6937025544759
+22
+-327.009759999999
+32
+1609.80354302934
+13
+70.6937025544759
+23
+-327.009759999999
+33
+1609.80354302934
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+67.0852443586779
+20
+-327.009760000001
+30
+1724.52561249664
+11
+70.6937025544759
+21
+-327.009759999999
+31
+1609.80354302934
+12
+97.3926876122771
+22
+-327.00976
+32
+1708.32596960222
+13
+97.3926876122771
+23
+-327.00976
+33
+1708.32596960222
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3926876122771
+20
+-327.00976
+30
+1708.32596960222
+11
+70.6937025544759
+21
+-327.009759999999
+31
+1609.80354302934
+12
+78.5506448209352
+22
+-327.009759999999
+32
+1595.1042772599
+13
+78.5506448209352
+23
+-327.009759999999
+33
+1595.1042772599
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3926876122771
+20
+-327.00976
+30
+1708.32596960222
+11
+78.5506448209352
+21
+-327.009759999999
+31
+1595.1042772599
+12
+83.3889336524952
+22
+-327.009759999999
+32
+1579.15464036367
+13
+83.3889336524952
+23
+-327.009759999999
+33
+1579.15464036367
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+97.3926876122771
+20
+-327.00976
+30
+1708.32596960222
+11
+83.3889336524952
+21
+-327.009759999999
+31
+1579.15464036367
+12
+85.0226363227028
+22
+-327.009759999999
+32
+1562.56756794191
+13
+85.0226363227028
+23
+-327.009759999999
+33
+1562.56756794191
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086226
+20
+-165.547039999999
+30
+1579.15445484661
+11
+-83.388736206985
+21
+-165.547039999999
+31
+1545.98030636861
+12
+-85.0224388771926
+22
+-165.547039999999
+32
+1562.56737879036
+13
+-85.0224388771926
+23
+-165.547039999999
+33
+1562.56737879036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.388736206985
+20
+-165.547039999999
+30
+1545.98030636861
+11
+-83.3887731086226
+21
+-165.547039999999
+31
+1579.15445484661
+12
+-78.5505197605908
+22
+-165.547039999999
+32
+1595.10410250665
+13
+-78.5505197605908
+23
+-165.547039999999
+33
+1595.10410250665
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.388736206985
+20
+-165.547039999999
+30
+1545.98030636861
+11
+-78.5505197605908
+21
+-165.547039999999
+31
+1595.10410250665
+12
+-78.550447375425
+22
+-165.547039999999
+32
+1530.03066947238
+13
+-78.550447375425
+23
+-165.547039999999
+33
+1530.03066947238
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.550447375425
+20
+-165.547039999999
+30
+1530.03066947238
+11
+-78.5505197605908
+21
+-165.547039999999
+31
+1595.10410250665
+12
+-70.6936101959384
+22
+-165.54704
+32
+1609.80338575558
+13
+-70.6936101959384
+23
+-165.54704
+33
+1609.80338575558
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.550447375425
+20
+-165.547039999999
+30
+1530.03066947238
+11
+-70.6936101959384
+21
+-165.54704
+31
+1609.80338575558
+12
+-70.6935051089657
+22
+-165.547039999998
+32
+1515.33140370293
+13
+-70.6935051089657
+23
+-165.547039999998
+33
+1515.33140370293
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6935051089657
+20
+-165.547039999998
+30
+1515.33140370293
+11
+-70.6936101959384
+21
+-165.54704
+31
+1609.80338575558
+12
+-60.1199810430294
+22
+-165.54704
+32
+1622.68741938158
+13
+-60.1199810430294
+23
+-165.54704
+33
+1622.68741938158
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6935051089657
+20
+-165.547039999998
+30
+1515.33140370293
+11
+-60.1199810430294
+21
+-165.54704
+31
+1622.68741938158
+12
+-60.1198472926832
+22
+-165.547039999998
+32
+1502.44739360036
+13
+-60.1198472926832
+23
+-165.547039999998
+33
+1502.44739360036
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926832
+20
+-165.547039999998
+30
+1502.44739360036
+11
+-60.1199810430294
+21
+-165.54704
+31
+1622.68741938158
+12
+-47.2359709404505
+22
+-165.54704
+32
+1633.26107719786
+13
+-47.2359709404505
+23
+-165.54704
+33
+1633.26107719786
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926832
+20
+-165.547039999998
+30
+1502.44739360036
+11
+-47.2359709404505
+21
+-165.54704
+31
+1633.26107719786
+12
+-47.2358136666815
+22
+-165.547039999998
+32
+1491.87376444745
+13
+-47.2358136666815
+23
+-165.547039999998
+33
+1491.87376444745
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2358136666815
+20
+-165.547039999998
+30
+1491.87376444745
+11
+-47.2359709404505
+21
+-165.54704
+31
+1633.26107719786
+12
+-32.5367051710077
+22
+-165.54704
+32
+1641.11801946432
+13
+-32.5367051710077
+23
+-165.54704
+33
+1641.11801946432
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2358136666815
+20
+-165.547039999998
+30
+1491.87376444745
+11
+-32.5367051710077
+21
+-165.54704
+31
+1641.11801946432
+12
+-32.5365304177587
+22
+-165.547039999998
+32
+1484.01685488279
+13
+-32.5365304177587
+23
+-165.547039999998
+33
+1484.01685488279
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177587
+20
+-165.547039999998
+30
+1484.01685488279
+11
+-32.5367051710077
+21
+-165.54704
+31
+1641.11801946432
+12
+-16.5870682747773
+22
+-165.54704
+32
+1645.95630829588
+13
+-16.5870682747773
+23
+-165.54704
+33
+1645.95630829588
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177587
+20
+-165.547039999998
+30
+1484.01685488279
+11
+-16.5870682747773
+21
+-165.54704
+31
+1645.95630829588
+12
+-16.5868827577177
+22
+-165.547039999997
+32
+1479.17860153476
+13
+-16.5868827577177
+23
+-165.547039999997
+33
+1479.17860153476
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5868827577177
+20
+-165.547039999997
+30
+1479.17860153476
+11
+-16.5870682747773
+21
+-165.54704
+31
+1645.95630829588
+12
+4.14697766952798e-06
+22
+-165.547039999999
+32
+1647.59001096608
+13
+4.14697766952798e-06
+23
+-165.547039999999
+33
+1647.59001096608
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5868827577177
+20
+-165.547039999997
+30
+1479.17860153476
+11
+4.14697766952798e-06
+21
+-165.547039999999
+31
+1647.59001096608
+12
+0.000193298531324959
+22
+-165.547039999997
+32
+1477.54493576619
+13
+0.000193298531324959
+23
+-165.547039999997
+33
+1477.54493576619
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000193298531324959
+20
+-165.547039999997
+30
+1477.54493576619
+11
+4.14697766952798e-06
+21
+-165.547039999999
+31
+1647.59001096608
+12
+16.5870802032267
+22
+-165.547039999999
+32
+1645.95634519751
+13
+16.5870802032267
+23
+-165.547039999999
+33
+1645.95634519751
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000193298531324959
+20
+-165.547039999997
+30
+1477.54493576619
+11
+16.5870802032267
+21
+-165.547039999999
+31
+1645.95634519751
+12
+16.5872657202864
+22
+-165.547039999997
+32
+1479.1786384364
+13
+16.5872657202864
+23
+-165.547039999997
+33
+1479.1786384364
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202864
+20
+-165.547039999997
+30
+1479.1786384364
+11
+16.5870802032267
+21
+-165.547039999999
+31
+1645.95634519751
+12
+32.5367278632676
+22
+-165.547039999999
+32
+1641.11809184948
+13
+32.5367278632676
+23
+-165.547039999999
+33
+1641.11809184948
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202864
+20
+-165.547039999997
+30
+1479.1786384364
+11
+32.5367278632676
+21
+-165.547039999999
+31
+1641.11809184948
+12
+32.5369026165166
+22
+-165.547039999997
+32
+1484.01692726796
+13
+32.5369026165166
+23
+-165.547039999997
+33
+1484.01692726796
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5369026165166
+20
+-165.547039999997
+30
+1484.01692726796
+11
+32.5367278632676
+21
+-165.547039999999
+31
+1641.11809184948
+12
+47.2360111121904
+22
+-165.547039999999
+32
+1633.26118228483
+13
+47.2360111121904
+23
+-165.547039999999
+33
+1633.26118228483
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5369026165166
+20
+-165.547039999997
+30
+1484.01692726796
+11
+47.2360111121904
+21
+-165.547039999999
+31
+1633.26118228483
+12
+47.2361683859594
+22
+-165.547039999997
+32
+1491.87386953442
+13
+47.2361683859594
+23
+-165.547039999997
+33
+1491.87386953442
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859594
+20
+-165.547039999997
+30
+1491.87386953442
+11
+47.2360111121904
+21
+-165.547039999999
+31
+1633.26118228483
+12
+60.1200447381921
+22
+-165.547039999999
+32
+1622.68755313192
+13
+60.1200447381921
+23
+-165.547039999999
+33
+1622.68755313192
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859594
+20
+-165.547039999997
+30
+1491.87386953442
+11
+60.1200447381921
+21
+-165.547039999999
+31
+1622.68755313192
+12
+60.1201784885383
+22
+-165.547039999997
+32
+1502.4475273507
+13
+60.1201784885383
+23
+-165.547039999997
+33
+1502.4475273507
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1201784885383
+20
+-165.547039999997
+30
+1502.4475273507
+11
+60.1200447381921
+21
+-165.547039999999
+31
+1622.68755313192
+12
+70.6937025544746
+22
+-165.547039999998
+32
+1609.80354302934
+13
+70.6937025544746
+23
+-165.547039999998
+33
+1609.80354302934
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1201784885383
+20
+-165.547039999997
+30
+1502.4475273507
+11
+70.6937025544746
+21
+-165.547039999998
+31
+1609.80354302934
+12
+70.6938076414473
+22
+-165.547039999997
+32
+1515.3315609767
+13
+70.6938076414473
+23
+-165.547039999997
+33
+1515.3315609767
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414473
+20
+-165.547039999997
+30
+1515.3315609767
+11
+70.6937025544746
+21
+-165.547039999998
+31
+1609.80354302934
+12
+78.5506448209339
+22
+-165.547039999998
+32
+1595.1042772599
+13
+78.5506448209339
+23
+-165.547039999998
+33
+1595.1042772599
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414473
+20
+-165.547039999997
+30
+1515.3315609767
+11
+78.5506448209339
+21
+-165.547039999998
+31
+1595.1042772599
+12
+78.5507172060997
+22
+-165.547039999997
+32
+1530.03084422563
+13
+78.5507172060997
+23
+-165.547039999997
+33
+1530.03084422563
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5507172060997
+20
+-165.547039999997
+30
+1530.03084422563
+11
+78.5506448209339
+21
+-165.547039999998
+31
+1595.1042772599
+12
+83.3889336524939
+22
+-165.547039999998
+32
+1579.15464036367
+13
+83.3889336524939
+23
+-165.547039999998
+33
+1579.15464036367
+70
+13
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5507172060997
+20
+-165.547039999997
+30
+1530.03084422563
+11
+83.3889336524939
+21
+-165.547039999998
+31
+1579.15464036367
+12
+83.3889705541315
+22
+-165.547039999997
+32
+1545.98049188567
+13
+83.3889705541315
+23
+-165.547039999997
+33
+1545.98049188567
+70
+3
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889705541315
+20
+-165.547039999997
+30
+1545.98049188567
+11
+83.3889336524939
+21
+-165.547039999998
+31
+1579.15464036367
+12
+85.0226363227015
+22
+-165.547039999998
+32
+1562.56756794192
+13
+85.0226363227015
+23
+-165.547039999998
+33
+1562.56756794192
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000193298531099362
+20
+-140.147039999997
+30
+1477.54493576619
+11
+16.5872657202864
+21
+-165.547039999997
+31
+1479.1786384364
+12
+16.5872657202861
+22
+-140.147039999997
+32
+1479.1786384364
+13
+16.5872657202861
+23
+-140.147039999997
+33
+1479.1786384364
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202864
+20
+-165.547039999997
+30
+1479.1786384364
+11
+0.000193298531099362
+21
+-140.147039999997
+31
+1477.54493576619
+12
+0.000193298531324959
+22
+-165.547039999997
+32
+1477.54493576619
+13
+0.000193298531324959
+23
+-165.547039999997
+33
+1477.54493576619
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202861
+20
+-140.147039999997
+30
+1479.1786384364
+11
+32.5369026165166
+21
+-165.547039999997
+31
+1484.01692726796
+12
+32.5369026165164
+22
+-140.147039999997
+32
+1484.01692726796
+13
+32.5369026165164
+23
+-140.147039999997
+33
+1484.01692726796
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5369026165166
+20
+-165.547039999997
+30
+1484.01692726796
+11
+16.5872657202861
+21
+-140.147039999997
+31
+1479.1786384364
+12
+16.5872657202864
+22
+-165.547039999997
+32
+1479.1786384364
+13
+16.5872657202864
+23
+-165.547039999997
+33
+1479.1786384364
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5369026165166
+20
+-165.547039999997
+30
+1484.01692726796
+11
+47.2361683859592
+21
+-140.147039999997
+31
+1491.87386953442
+12
+32.5369026165164
+22
+-140.147039999997
+32
+1484.01692726796
+13
+32.5369026165164
+23
+-140.147039999997
+33
+1484.01692726796
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859592
+20
+-140.147039999997
+30
+1491.87386953442
+11
+32.5369026165166
+21
+-165.547039999997
+31
+1484.01692726796
+12
+47.2361683859594
+22
+-165.547039999997
+32
+1491.87386953442
+13
+47.2361683859594
+23
+-165.547039999997
+33
+1491.87386953442
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5507172060997
+20
+-165.547039999997
+30
+1530.03084422563
+11
+83.3889705541313
+21
+-140.147039999997
+31
+1545.98049188567
+12
+78.5507172060996
+22
+-140.147039999997
+32
+1530.03084422563
+13
+78.5507172060996
+23
+-140.147039999997
+33
+1530.03084422563
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889705541313
+20
+-140.147039999997
+30
+1545.98049188567
+11
+78.5507172060997
+21
+-165.547039999997
+31
+1530.03084422563
+12
+83.3889705541315
+22
+-165.547039999997
+32
+1545.98049188567
+13
+83.3889705541315
+23
+-165.547039999997
+33
+1545.98049188567
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889705541315
+20
+-165.547039999997
+30
+1545.98049188567
+11
+85.0226363227013
+21
+-140.147039999998
+31
+1562.56756794192
+12
+83.3889705541313
+22
+-140.147039999997
+32
+1545.98049188567
+13
+83.3889705541313
+23
+-140.147039999997
+33
+1545.98049188567
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+85.0226363227013
+20
+-140.147039999998
+30
+1562.56756794192
+11
+83.3889705541315
+21
+-165.547039999997
+31
+1545.98049188567
+12
+85.0226363227015
+22
+-165.547039999998
+32
+1562.56756794192
+13
+85.0226363227015
+23
+-165.547039999998
+33
+1562.56756794192
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+85.0226363227015
+20
+-165.547039999998
+30
+1562.56756794192
+11
+83.3889336524938
+21
+-140.147039999998
+31
+1579.15464036367
+12
+85.0226363227013
+22
+-140.147039999998
+32
+1562.56756794192
+13
+85.0226363227013
+23
+-140.147039999998
+33
+1562.56756794192
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889336524938
+20
+-140.147039999998
+30
+1579.15464036367
+11
+85.0226363227015
+21
+-165.547039999998
+31
+1562.56756794192
+12
+83.3889336524939
+22
+-165.547039999998
+32
+1579.15464036367
+13
+83.3889336524939
+23
+-165.547039999998
+33
+1579.15464036367
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889336524939
+20
+-165.547039999998
+30
+1579.15464036367
+11
+78.5506448209338
+21
+-140.147039999998
+31
+1595.1042772599
+12
+83.3889336524938
+22
+-140.147039999998
+32
+1579.15464036367
+13
+83.3889336524938
+23
+-140.147039999998
+33
+1579.15464036367
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5506448209338
+20
+-140.147039999998
+30
+1595.1042772599
+11
+83.3889336524939
+21
+-165.547039999998
+31
+1579.15464036367
+12
+78.5506448209339
+22
+-165.547039999998
+32
+1595.1042772599
+13
+78.5506448209339
+23
+-165.547039999998
+33
+1595.1042772599
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5506448209339
+20
+-165.547039999998
+30
+1595.1042772599
+11
+70.6937025544744
+21
+-140.147039999998
+31
+1609.80354302934
+12
+78.5506448209338
+22
+-140.147039999998
+32
+1595.1042772599
+13
+78.5506448209338
+23
+-140.147039999998
+33
+1595.1042772599
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544744
+20
+-140.147039999998
+30
+1609.80354302934
+11
+78.5506448209339
+21
+-165.547039999998
+31
+1595.1042772599
+12
+70.6937025544746
+22
+-165.547039999998
+32
+1609.80354302934
+13
+70.6937025544746
+23
+-165.547039999998
+33
+1609.80354302934
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544746
+20
+-165.547039999998
+30
+1609.80354302934
+11
+60.1200447381919
+21
+-140.147039999999
+31
+1622.68755313192
+12
+70.6937025544744
+22
+-140.147039999998
+32
+1609.80354302934
+13
+70.6937025544744
+23
+-140.147039999998
+33
+1609.80354302934
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1200447381919
+20
+-140.147039999999
+30
+1622.68755313192
+11
+70.6937025544746
+21
+-165.547039999998
+31
+1609.80354302934
+12
+60.1200447381921
+22
+-165.547039999999
+32
+1622.68755313192
+13
+60.1200447381921
+23
+-165.547039999999
+33
+1622.68755313192
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1200447381921
+20
+-165.547039999999
+30
+1622.68755313192
+11
+47.2360111121902
+21
+-140.147039999999
+31
+1633.26118228483
+12
+60.1200447381919
+22
+-140.147039999999
+32
+1622.68755313192
+13
+60.1200447381919
+23
+-140.147039999999
+33
+1622.68755313192
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121902
+20
+-140.147039999999
+30
+1633.26118228483
+11
+60.1200447381921
+21
+-165.547039999999
+31
+1622.68755313192
+12
+47.2360111121904
+22
+-165.547039999999
+32
+1633.26118228483
+13
+47.2360111121904
+23
+-165.547039999999
+33
+1633.26118228483
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121904
+20
+-165.547039999999
+30
+1633.26118228483
+11
+32.5367278632675
+21
+-140.147039999999
+31
+1641.11809184948
+12
+47.2360111121902
+22
+-140.147039999999
+32
+1633.26118228483
+13
+47.2360111121902
+23
+-140.147039999999
+33
+1633.26118228483
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632675
+20
+-140.147039999999
+30
+1641.11809184948
+11
+47.2360111121904
+21
+-165.547039999999
+31
+1633.26118228483
+12
+32.5367278632676
+22
+-165.547039999999
+32
+1641.11809184948
+13
+32.5367278632676
+23
+-165.547039999999
+33
+1641.11809184948
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632676
+20
+-165.547039999999
+30
+1641.11809184948
+11
+16.5870802032265
+21
+-140.147039999999
+31
+1645.95634519751
+12
+32.5367278632675
+22
+-140.147039999999
+32
+1641.11809184948
+13
+32.5367278632675
+23
+-140.147039999999
+33
+1641.11809184948
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032265
+20
+-140.147039999999
+30
+1645.95634519751
+11
+32.5367278632676
+21
+-165.547039999999
+31
+1641.11809184948
+12
+16.5870802032267
+22
+-165.547039999999
+32
+1645.95634519751
+13
+16.5870802032267
+23
+-165.547039999999
+33
+1645.95634519751
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032267
+20
+-165.547039999999
+30
+1645.95634519751
+11
+4.14697744393067e-06
+21
+-140.147039999999
+31
+1647.59001096608
+12
+16.5870802032265
+22
+-140.147039999999
+32
+1645.95634519751
+13
+16.5870802032265
+23
+-140.147039999999
+33
+1645.95634519751
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697744393067e-06
+20
+-140.147039999999
+30
+1647.59001096608
+11
+16.5870802032267
+21
+-165.547039999999
+31
+1645.95634519751
+12
+4.14697766952798e-06
+22
+-165.547039999999
+32
+1647.59001096608
+13
+4.14697766952798e-06
+23
+-165.547039999999
+33
+1647.59001096608
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697766952798e-06
+20
+-165.547039999999
+30
+1647.59001096608
+11
+-16.5870682747775
+21
+-140.14704
+31
+1645.95630829588
+12
+4.14697744393067e-06
+22
+-140.147039999999
+32
+1647.59001096608
+13
+4.14697744393067e-06
+23
+-140.147039999999
+33
+1647.59001096608
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747775
+20
+-140.14704
+30
+1645.95630829588
+11
+4.14697766952798e-06
+21
+-165.547039999999
+31
+1647.59001096608
+12
+-16.5870682747773
+22
+-165.54704
+32
+1645.95630829588
+13
+-16.5870682747773
+23
+-165.54704
+33
+1645.95630829588
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747773
+20
+-165.54704
+30
+1645.95630829588
+11
+-32.5367051710078
+21
+-140.14704
+31
+1641.11801946432
+12
+-16.5870682747775
+22
+-140.14704
+32
+1645.95630829588
+13
+-16.5870682747775
+23
+-140.14704
+33
+1645.95630829588
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710078
+20
+-140.14704
+30
+1641.11801946432
+11
+-16.5870682747773
+21
+-165.54704
+31
+1645.95630829588
+12
+-32.5367051710077
+22
+-165.54704
+32
+1641.11801946432
+13
+-32.5367051710077
+23
+-165.54704
+33
+1641.11801946432
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710077
+20
+-165.54704
+30
+1641.11801946432
+11
+-47.2359709404507
+21
+-140.14704
+31
+1633.26107719786
+12
+-32.5367051710078
+22
+-140.14704
+32
+1641.11801946432
+13
+-32.5367051710078
+23
+-140.14704
+33
+1641.11801946432
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2359709404507
+20
+-140.14704
+30
+1633.26107719786
+11
+-32.5367051710077
+21
+-165.54704
+31
+1641.11801946432
+12
+-47.2359709404505
+22
+-165.54704
+32
+1633.26107719786
+13
+-47.2359709404505
+23
+-165.54704
+33
+1633.26107719786
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2359709404505
+20
+-165.54704
+30
+1633.26107719786
+11
+-60.1199810430296
+21
+-140.14704
+31
+1622.68741938158
+12
+-47.2359709404507
+22
+-140.14704
+32
+1633.26107719786
+13
+-47.2359709404507
+23
+-140.14704
+33
+1633.26107719786
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430296
+20
+-140.14704
+30
+1622.68741938158
+11
+-47.2359709404505
+21
+-165.54704
+31
+1633.26107719786
+12
+-60.1199810430294
+22
+-165.54704
+32
+1622.68741938158
+13
+-60.1199810430294
+23
+-165.54704
+33
+1622.68741938158
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430296
+20
+-140.14704
+30
+1622.68741938158
+11
+-70.6936101959384
+21
+-165.54704
+31
+1609.80338575558
+12
+-70.6936101959386
+22
+-140.14704
+32
+1609.80338575557
+13
+-70.6936101959386
+23
+-140.14704
+33
+1609.80338575557
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6936101959384
+20
+-165.54704
+30
+1609.80338575558
+11
+-60.1199810430296
+21
+-140.14704
+31
+1622.68741938158
+12
+-60.1199810430294
+22
+-165.54704
+32
+1622.68741938158
+13
+-60.1199810430294
+23
+-165.54704
+33
+1622.68741938158
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6936101959386
+20
+-140.14704
+30
+1609.80338575557
+11
+-78.5505197605908
+21
+-165.547039999999
+31
+1595.10410250665
+12
+-78.5505197605909
+22
+-140.147039999999
+32
+1595.10410250665
+13
+-78.5505197605909
+23
+-140.147039999999
+33
+1595.10410250665
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5505197605908
+20
+-165.547039999999
+30
+1595.10410250665
+11
+-70.6936101959386
+21
+-140.14704
+31
+1609.80338575557
+12
+-70.6936101959384
+22
+-165.54704
+32
+1609.80338575558
+13
+-70.6936101959384
+23
+-165.54704
+33
+1609.80338575558
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5505197605909
+20
+-140.147039999999
+30
+1595.10410250665
+11
+-83.3887731086226
+21
+-165.547039999999
+31
+1579.15445484661
+12
+-83.3887731086227
+22
+-140.147039999999
+32
+1579.15445484661
+13
+-83.3887731086227
+23
+-140.147039999999
+33
+1579.15445484661
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086226
+20
+-165.547039999999
+30
+1579.15445484661
+11
+-78.5505197605909
+21
+-140.147039999999
+31
+1595.10410250665
+12
+-78.5505197605908
+22
+-165.547039999999
+32
+1595.10410250665
+13
+-78.5505197605908
+23
+-165.547039999999
+33
+1595.10410250665
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086227
+20
+-140.147039999999
+30
+1579.15445484661
+11
+-85.0224388771926
+21
+-165.547039999999
+31
+1562.56737879036
+12
+-85.0224388771927
+22
+-140.147039999999
+32
+1562.56737879036
+13
+-85.0224388771927
+23
+-140.147039999999
+33
+1562.56737879036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-85.0224388771926
+20
+-165.547039999999
+30
+1562.56737879036
+11
+-83.3887731086227
+21
+-140.147039999999
+31
+1579.15445484661
+12
+-83.3887731086226
+22
+-165.547039999999
+32
+1579.15445484661
+13
+-83.3887731086226
+23
+-165.547039999999
+33
+1579.15445484661
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-85.0224388771927
+20
+-140.147039999999
+30
+1562.56737879036
+11
+-83.388736206985
+21
+-165.547039999999
+31
+1545.98030636861
+12
+-83.3887362069852
+22
+-140.147039999999
+32
+1545.98030636861
+13
+-83.3887362069852
+23
+-140.147039999999
+33
+1545.98030636861
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.388736206985
+20
+-165.547039999999
+30
+1545.98030636861
+11
+-85.0224388771927
+21
+-140.147039999999
+31
+1562.56737879036
+12
+-85.0224388771926
+22
+-165.547039999999
+32
+1562.56737879036
+13
+-85.0224388771926
+23
+-165.547039999999
+33
+1562.56737879036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887362069852
+20
+-140.147039999999
+30
+1545.98030636861
+11
+-78.550447375425
+21
+-165.547039999999
+31
+1530.03066947238
+12
+-78.5504473754252
+22
+-140.147039999999
+32
+1530.03066947238
+13
+-78.5504473754252
+23
+-140.147039999999
+33
+1530.03066947238
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.550447375425
+20
+-165.547039999999
+30
+1530.03066947238
+11
+-83.3887362069852
+21
+-140.147039999999
+31
+1545.98030636861
+12
+-83.388736206985
+22
+-165.547039999999
+32
+1545.98030636861
+13
+-83.388736206985
+23
+-165.547039999999
+33
+1545.98030636861
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5504473754252
+20
+-140.147039999999
+30
+1530.03066947238
+11
+-70.6935051089657
+21
+-165.547039999998
+31
+1515.33140370293
+12
+-70.6935051089658
+22
+-140.147039999998
+32
+1515.33140370293
+13
+-70.6935051089658
+23
+-140.147039999998
+33
+1515.33140370293
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6935051089657
+20
+-165.547039999998
+30
+1515.33140370293
+11
+-78.5504473754252
+21
+-140.147039999999
+31
+1530.03066947238
+12
+-78.550447375425
+22
+-165.547039999999
+32
+1530.03066947238
+13
+-78.550447375425
+23
+-165.547039999999
+33
+1530.03066947238
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6935051089658
+20
+-140.147039999998
+30
+1515.33140370293
+11
+-60.1198472926832
+21
+-165.547039999998
+31
+1502.44739360036
+12
+-60.1198472926833
+22
+-140.147039999998
+32
+1502.44739360036
+13
+-60.1198472926833
+23
+-140.147039999998
+33
+1502.44739360036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926832
+20
+-165.547039999998
+30
+1502.44739360036
+11
+-70.6935051089658
+21
+-140.147039999998
+31
+1515.33140370293
+12
+-70.6935051089657
+22
+-165.547039999998
+32
+1515.33140370293
+13
+-70.6935051089657
+23
+-165.547039999998
+33
+1515.33140370293
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926833
+20
+-140.147039999998
+30
+1502.44739360036
+11
+-47.2358136666815
+21
+-165.547039999998
+31
+1491.87376444745
+12
+-47.2358136666817
+22
+-140.147039999998
+32
+1491.87376444745
+13
+-47.2358136666817
+23
+-140.147039999998
+33
+1491.87376444745
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2358136666815
+20
+-165.547039999998
+30
+1491.87376444745
+11
+-60.1198472926833
+21
+-140.147039999998
+31
+1502.44739360036
+12
+-60.1198472926832
+22
+-165.547039999998
+32
+1502.44739360036
+13
+-60.1198472926832
+23
+-165.547039999998
+33
+1502.44739360036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2358136666817
+20
+-140.147039999998
+30
+1491.87376444745
+11
+-32.5365304177587
+21
+-165.547039999998
+31
+1484.01685488279
+12
+-32.5365304177589
+22
+-140.147039999998
+32
+1484.01685488279
+13
+-32.5365304177589
+23
+-140.147039999998
+33
+1484.01685488279
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177587
+20
+-165.547039999998
+30
+1484.01685488279
+11
+-47.2358136666817
+21
+-140.147039999998
+31
+1491.87376444745
+12
+-47.2358136666815
+22
+-165.547039999998
+32
+1491.87376444745
+13
+-47.2358136666815
+23
+-165.547039999998
+33
+1491.87376444745
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177589
+20
+-140.147039999998
+30
+1484.01685488279
+11
+-16.5868827577177
+21
+-165.547039999997
+31
+1479.17860153476
+12
+-16.586882757718
+22
+-140.147039999997
+32
+1479.17860153476
+13
+-16.586882757718
+23
+-140.147039999997
+33
+1479.17860153476
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5868827577177
+20
+-165.547039999997
+30
+1479.17860153476
+11
+-32.5365304177589
+21
+-140.147039999998
+31
+1484.01685488279
+12
+-32.5365304177587
+22
+-165.547039999998
+32
+1484.01685488279
+13
+-32.5365304177587
+23
+-165.547039999998
+33
+1484.01685488279
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.586882757718
+20
+-140.147039999997
+30
+1479.17860153476
+11
+0.000193298531324959
+21
+-165.547039999997
+31
+1477.54493576619
+12
+0.000193298531099362
+22
+-140.147039999997
+32
+1477.54493576619
+13
+0.000193298531099362
+23
+-140.147039999997
+33
+1477.54493576619
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000193298531324959
+20
+-165.547039999997
+30
+1477.54493576619
+11
+-16.586882757718
+21
+-140.147039999997
+31
+1479.17860153476
+12
+-16.5868827577177
+22
+-165.547039999997
+32
+1479.17860153476
+13
+-16.5868827577177
+23
+-165.547039999997
+33
+1479.17860153476
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6936101959373
+20
+-301.60976
+30
+1609.80338575557
+11
+-78.5505197605895
+21
+-327.00976
+31
+1595.10410250665
+12
+-78.5505197605897
+22
+-301.60976
+32
+1595.10410250665
+13
+-78.5505197605897
+23
+-301.60976
+33
+1595.10410250665
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5505197605895
+20
+-327.00976
+30
+1595.10410250665
+11
+-70.6936101959373
+21
+-301.60976
+31
+1609.80338575557
+12
+-70.6936101959371
+22
+-327.00976
+32
+1609.80338575557
+13
+-70.6936101959371
+23
+-327.00976
+33
+1609.80338575557
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.587080203228
+20
+-327.00976
+30
+1645.95634519751
+11
+4.14697870727565e-06
+21
+-301.60976
+31
+1647.59001096608
+12
+16.5870802032278
+22
+-301.60976
+32
+1645.95634519751
+13
+16.5870802032278
+23
+-301.60976
+33
+1645.95634519751
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697870727565e-06
+20
+-301.60976
+30
+1647.59001096608
+11
+16.587080203228
+21
+-327.00976
+31
+1645.95634519751
+12
+4.14697891172322e-06
+22
+-327.00976
+32
+1647.59001096608
+13
+4.14697891172322e-06
+23
+-327.00976
+33
+1647.59001096608
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747761
+20
+-327.00976
+30
+1645.95630829588
+11
+-32.5367051710066
+21
+-301.609760000001
+31
+1641.11801946432
+12
+-16.5870682747763
+22
+-301.60976
+32
+1645.95630829588
+13
+-16.5870682747763
+23
+-301.60976
+33
+1645.95630829588
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5367051710066
+20
+-301.609760000001
+30
+1641.11801946432
+11
+-16.5870682747761
+21
+-327.00976
+31
+1645.95630829588
+12
+-32.5367051710064
+22
+-327.009760000001
+32
+1641.11801946432
+13
+-32.5367051710064
+23
+-327.009760000001
+33
+1641.11801946432
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.14697891172322e-06
+20
+-327.00976
+30
+1647.59001096608
+11
+-16.5870682747763
+21
+-301.60976
+31
+1645.95630829588
+12
+4.14697870727565e-06
+22
+-301.60976
+32
+1647.59001096608
+13
+4.14697870727565e-06
+23
+-301.60976
+33
+1647.59001096608
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5870682747763
+20
+-301.60976
+30
+1645.95630829588
+11
+4.14697891172322e-06
+21
+-327.00976
+31
+1647.59001096608
+12
+-16.5870682747761
+22
+-327.00976
+32
+1645.95630829588
+13
+-16.5870682747761
+23
+-327.00976
+33
+1645.95630829588
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2358136666804
+20
+-301.609759999999
+30
+1491.87376444745
+11
+-32.5365304177574
+21
+-327.009759999999
+31
+1484.01685488279
+12
+-32.5365304177576
+22
+-301.609759999999
+32
+1484.01685488279
+13
+-32.5365304177576
+23
+-301.609759999999
+33
+1484.01685488279
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177574
+20
+-327.009759999999
+30
+1484.01685488279
+11
+-47.2358136666804
+21
+-301.609759999999
+31
+1491.87376444745
+12
+-47.2358136666802
+22
+-327.009759999999
+32
+1491.87376444745
+13
+-47.2358136666802
+23
+-327.009759999999
+33
+1491.87376444745
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-78.5504473754239
+20
+-301.60976
+30
+1530.03066947238
+11
+-70.6935051089644
+21
+-327.009759999999
+31
+1515.33140370293
+12
+-70.6935051089646
+22
+-301.609759999999
+32
+1515.33140370293
+13
+-70.6935051089646
+23
+-301.609759999999
+33
+1515.33140370293
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6935051089644
+20
+-327.009759999999
+30
+1515.33140370293
+11
+-78.5504473754239
+21
+-301.60976
+31
+1530.03066947238
+12
+-78.5504473754237
+22
+-327.00976
+32
+1530.03066947238
+13
+-78.5504473754237
+23
+-327.00976
+33
+1530.03066947238
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1199810430283
+20
+-301.609760000001
+30
+1622.68741938157
+11
+-70.6936101959371
+21
+-327.00976
+31
+1609.80338575557
+12
+-70.6936101959373
+22
+-301.60976
+32
+1609.80338575557
+13
+-70.6936101959373
+23
+-301.60976
+33
+1609.80338575557
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-70.6936101959371
+20
+-327.00976
+30
+1609.80338575557
+11
+-60.1199810430283
+21
+-301.609760000001
+31
+1622.68741938157
+12
+-60.1199810430281
+22
+-327.009760000001
+32
+1622.68741938157
+13
+-60.1199810430281
+23
+-327.009760000001
+33
+1622.68741938157
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-32.5365304177576
+20
+-301.609759999999
+30
+1484.01685488279
+11
+-16.5868827577165
+21
+-327.009759999998
+31
+1479.17860153476
+12
+-16.5868827577167
+22
+-301.609759999998
+32
+1479.17860153476
+13
+-16.5868827577167
+23
+-301.609759999998
+33
+1479.17860153476
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5868827577165
+20
+-327.009759999998
+30
+1479.17860153476
+11
+-32.5365304177576
+21
+-301.609759999999
+31
+1484.01685488279
+12
+-32.5365304177574
+22
+-327.009759999999
+32
+1484.01685488279
+13
+-32.5365304177574
+23
+-327.009759999999
+33
+1484.01685488279
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-60.1198472926821
+20
+-301.609759999999
+30
+1502.44739360035
+11
+-47.2358136666802
+21
+-327.009759999999
+31
+1491.87376444745
+12
+-47.2358136666804
+22
+-301.609759999999
+32
+1491.87376444745
+13
+-47.2358136666804
+23
+-301.609759999999
+33
+1491.87376444745
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-47.2358136666802
+20
+-327.009759999999
+30
+1491.87376444745
+11
+-60.1198472926821
+21
+-301.609759999999
+31
+1502.44739360035
+12
+-60.1198472926819
+22
+-327.009759999999
+32
+1502.44739360035
+13
+-60.1198472926819
+23
+-327.009759999999
+33
+1502.44739360035
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-83.3887731086215
+20
+-301.60976
+30
+1579.15445484661
+11
+-85.0224388771913
+21
+-327.00976
+31
+1562.56737879036
+12
+-85.0224388771915
+22
+-301.60976
+32
+1562.56737879036
+13
+-85.0224388771915
+23
+-301.60976
+33
+1562.56737879036
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-85.0224388771913
+20
+-327.00976
+30
+1562.56737879036
+11
+-83.3887731086215
+21
+-301.60976
+31
+1579.15445484661
+12
+-83.3887731086213
+22
+-327.00976
+32
+1579.15445484661
+13
+-83.3887731086213
+23
+-327.00976
+33
+1579.15445484661
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-16.5868827577167
+20
+-301.609759999998
+30
+1479.17860153476
+11
+0.000193298532564334
+21
+-327.009759999998
+31
+1477.54493576619
+12
+0.000193298532362707
+22
+-301.609759999998
+32
+1477.54493576619
+13
+0.000193298532362707
+23
+-301.609759999998
+33
+1477.54493576619
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000193298532564334
+20
+-327.009759999998
+30
+1477.54493576619
+11
+-16.5868827577167
+21
+-301.609759999998
+31
+1479.17860153476
+12
+-16.5868827577165
+22
+-327.009759999998
+32
+1479.17860153476
+13
+-16.5868827577165
+23
+-327.009759999998
+33
+1479.17860153476
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+0.000193298532362707
+20
+-301.609759999998
+30
+1477.54493576619
+11
+16.5872657202876
+21
+-327.009759999998
+31
+1479.1786384364
+12
+16.5872657202874
+22
+-301.609759999998
+32
+1479.1786384364
+13
+16.5872657202874
+23
+-301.609759999998
+33
+1479.1786384364
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202876
+20
+-327.009759999998
+30
+1479.1786384364
+11
+0.000193298532362707
+21
+-301.609759999998
+31
+1477.54493576619
+12
+0.000193298532564334
+22
+-327.009759999998
+32
+1477.54493576619
+13
+0.000193298532564334
+23
+-327.009759999998
+33
+1477.54493576619
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5872657202874
+20
+-301.609759999998
+30
+1479.1786384364
+11
+32.5369026165179
+21
+-327.009759999998
+31
+1484.01692726796
+12
+32.5369026165177
+22
+-301.609759999998
+32
+1484.01692726796
+13
+32.5369026165177
+23
+-301.609759999998
+33
+1484.01692726796
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5369026165179
+20
+-327.009759999998
+30
+1484.01692726796
+11
+16.5872657202874
+21
+-301.609759999998
+31
+1479.1786384364
+12
+16.5872657202876
+22
+-327.009759999998
+32
+1479.1786384364
+13
+16.5872657202876
+23
+-327.009759999998
+33
+1479.1786384364
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5369026165179
+20
+-327.009759999998
+30
+1484.01692726796
+11
+47.2361683859605
+21
+-301.609759999998
+31
+1491.87386953442
+12
+32.5369026165177
+22
+-301.609759999998
+32
+1484.01692726796
+13
+32.5369026165177
+23
+-301.609759999998
+33
+1484.01692726796
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859605
+20
+-301.609759999998
+30
+1491.87386953442
+11
+32.5369026165179
+21
+-327.009759999998
+31
+1484.01692726796
+12
+47.2361683859607
+22
+-327.009759999998
+32
+1491.87386953442
+13
+47.2361683859607
+23
+-327.009759999998
+33
+1491.87386953442
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2361683859607
+20
+-327.009759999998
+30
+1491.87386953442
+11
+60.1201784885394
+21
+-301.609759999998
+31
+1502.4475273507
+12
+47.2361683859605
+22
+-301.609759999998
+32
+1491.87386953442
+13
+47.2361683859605
+23
+-301.609759999998
+33
+1491.87386953442
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1201784885394
+20
+-301.609759999998
+30
+1502.4475273507
+11
+47.2361683859607
+21
+-327.009759999998
+31
+1491.87386953442
+12
+60.1201784885396
+22
+-327.009759999998
+32
+1502.4475273507
+13
+60.1201784885396
+23
+-327.009759999998
+33
+1502.4475273507
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414486
+20
+-327.009759999998
+30
+1515.3315609767
+11
+60.1201784885394
+21
+-301.609759999998
+31
+1502.4475273507
+12
+60.1201784885396
+22
+-327.009759999998
+32
+1502.4475273507
+13
+60.1201784885396
+23
+-327.009759999998
+33
+1502.4475273507
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1201784885394
+20
+-301.609759999998
+30
+1502.4475273507
+11
+70.6938076414486
+21
+-327.009759999998
+31
+1515.3315609767
+12
+70.6938076414485
+22
+-301.609759999998
+32
+1515.3315609767
+13
+70.6938076414485
+23
+-301.609759999998
+33
+1515.3315609767
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.550717206101
+20
+-327.009759999998
+30
+1530.03084422562
+11
+70.6938076414485
+21
+-301.609759999998
+31
+1515.3315609767
+12
+70.6938076414486
+22
+-327.009759999998
+32
+1515.3315609767
+13
+70.6938076414486
+23
+-327.009759999998
+33
+1515.3315609767
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6938076414485
+20
+-301.609759999998
+30
+1515.3315609767
+11
+78.550717206101
+21
+-327.009759999998
+31
+1530.03084422562
+12
+78.5507172061008
+22
+-301.609759999998
+32
+1530.03084422562
+13
+78.5507172061008
+23
+-301.609759999998
+33
+1530.03084422562
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889705541327
+20
+-327.009759999998
+30
+1545.98049188567
+11
+78.5507172061008
+21
+-301.609759999998
+31
+1530.03084422562
+12
+78.550717206101
+22
+-327.009759999998
+32
+1530.03084422562
+13
+78.550717206101
+23
+-327.009759999998
+33
+1530.03084422562
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5507172061008
+20
+-301.609759999998
+30
+1530.03084422562
+11
+83.3889705541327
+21
+-327.009759999998
+31
+1545.98049188567
+12
+83.3889705541326
+22
+-301.609759999998
+32
+1545.98049188567
+13
+83.3889705541326
+23
+-301.609759999998
+33
+1545.98049188567
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+85.0226363227028
+20
+-327.009759999999
+30
+1562.56756794191
+11
+83.3889705541326
+21
+-301.609759999998
+31
+1545.98049188567
+12
+83.3889705541327
+22
+-327.009759999998
+32
+1545.98049188567
+13
+83.3889705541327
+23
+-327.009759999998
+33
+1545.98049188567
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889705541326
+20
+-301.609759999998
+30
+1545.98049188567
+11
+85.0226363227028
+21
+-327.009759999999
+31
+1562.56756794191
+12
+85.0226363227026
+22
+-301.609759999999
+32
+1562.56756794191
+13
+85.0226363227026
+23
+-301.609759999999
+33
+1562.56756794191
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.3889336524952
+20
+-327.009759999999
+30
+1579.15464036367
+11
+85.0226363227026
+21
+-301.609759999999
+31
+1562.56756794191
+12
+85.0226363227028
+22
+-327.009759999999
+32
+1562.56756794191
+13
+85.0226363227028
+23
+-327.009759999999
+33
+1562.56756794191
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+85.0226363227026
+20
+-301.609759999999
+30
+1562.56756794191
+11
+83.3889336524952
+21
+-327.009759999999
+31
+1579.15464036367
+12
+83.388933652495
+22
+-301.609759999999
+32
+1579.15464036367
+13
+83.388933652495
+23
+-301.609759999999
+33
+1579.15464036367
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.5506448209352
+20
+-327.009759999999
+30
+1595.1042772599
+11
+83.388933652495
+21
+-301.609759999999
+31
+1579.15464036367
+12
+83.3889336524952
+22
+-327.009759999999
+32
+1579.15464036367
+13
+83.3889336524952
+23
+-327.009759999999
+33
+1579.15464036367
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+83.388933652495
+20
+-301.609759999999
+30
+1579.15464036367
+11
+78.5506448209352
+21
+-327.009759999999
+31
+1595.1042772599
+12
+78.550644820935
+22
+-301.609759999999
+32
+1595.1042772599
+13
+78.550644820935
+23
+-301.609759999999
+33
+1595.1042772599
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544759
+20
+-327.009759999999
+30
+1609.80354302934
+11
+78.550644820935
+21
+-301.609759999999
+31
+1595.1042772599
+12
+78.5506448209352
+22
+-327.009759999999
+32
+1595.1042772599
+13
+78.5506448209352
+23
+-327.009759999999
+33
+1595.1042772599
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+78.550644820935
+20
+-301.609759999999
+30
+1595.1042772599
+11
+70.6937025544759
+21
+-327.009759999999
+31
+1609.80354302934
+12
+70.6937025544757
+22
+-301.609759999999
+32
+1609.80354302934
+13
+70.6937025544757
+23
+-301.609759999999
+33
+1609.80354302934
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1200447381933
+20
+-327.00976
+30
+1622.68755313192
+11
+70.6937025544757
+21
+-301.609759999999
+31
+1609.80354302934
+12
+70.6937025544759
+22
+-327.009759999999
+32
+1609.80354302934
+13
+70.6937025544759
+23
+-327.009759999999
+33
+1609.80354302934
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+70.6937025544757
+20
+-301.609759999999
+30
+1609.80354302934
+11
+60.1200447381933
+21
+-327.00976
+31
+1622.68755313192
+12
+60.1200447381932
+22
+-301.60976
+32
+1622.68755313192
+13
+60.1200447381932
+23
+-301.60976
+33
+1622.68755313192
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+60.1200447381933
+20
+-327.00976
+30
+1622.68755313192
+11
+47.2360111121915
+21
+-301.60976
+31
+1633.26118228483
+12
+60.1200447381932
+22
+-301.60976
+32
+1622.68755313192
+13
+60.1200447381932
+23
+-301.60976
+33
+1622.68755313192
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121915
+20
+-301.60976
+30
+1633.26118228483
+11
+60.1200447381933
+21
+-327.00976
+31
+1622.68755313192
+12
+47.2360111121917
+22
+-327.00976
+32
+1633.26118228483
+13
+47.2360111121917
+23
+-327.00976
+33
+1633.26118228483
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+47.2360111121917
+20
+-327.00976
+30
+1633.26118228483
+11
+32.5367278632687
+21
+-301.60976
+31
+1641.11809184948
+12
+47.2360111121915
+22
+-301.60976
+32
+1633.26118228483
+13
+47.2360111121915
+23
+-301.60976
+33
+1633.26118228483
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632687
+20
+-301.60976
+30
+1641.11809184948
+11
+47.2360111121917
+21
+-327.00976
+31
+1633.26118228483
+12
+32.5367278632689
+22
+-327.00976
+32
+1641.11809184948
+13
+32.5367278632689
+23
+-327.00976
+33
+1641.11809184948
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+32.5367278632689
+20
+-327.00976
+30
+1641.11809184948
+11
+16.5870802032278
+21
+-301.60976
+31
+1645.95634519751
+12
+32.5367278632687
+22
+-301.60976
+32
+1641.11809184948
+13
+32.5367278632687
+23
+-301.60976
+33
+1641.11809184948
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+16.5870802032278
+20
+-301.60976
+30
+1645.95634519751
+11
+32.5367278632689
+21
+-327.00976
+31
+1641.11809184948
+12
+16.587080203228
+22
+-327.00976
+32
+1645.95634519751
+13
+16.587080203228
+23
+-327.00976
+33
+1645.95634519751
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-29.7122224515915
+20
+-140.14704
+30
+1681.41639731326
+11
+-27.4505026299641
+21
+-2.12061479487602e-12
+31
+1670.04601633937
+12
+-27.4505026299636
+22
+-140.14704
+32
+1670.04601633937
+13
+-27.4505026299636
+23
+-140.14704
+33
+1670.04601633937
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-27.4505026299641
+20
+-2.12061479487602e-12
+30
+1670.04601633937
+11
+-29.7122224515915
+21
+-140.14704
+31
+1681.41639731326
+12
+-29.7122224515919
+22
+-2.16573425859679e-12
+32
+1681.41639731326
+13
+-29.7122224515919
+23
+-2.16573425859679e-12
+33
+1681.41639731326
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+11.3704272911448
+20
+-2.03037586743449e-12
+30
+1653.96590077154
+11
+4.63172537816581e-05
+21
+-140.14704
+31
+1651.70418094992
+12
+4.63172533769929e-05
+22
+-2.03037586743449e-12
+32
+1651.70418094992
+13
+4.63172533769929e-05
+23
+-2.03037586743449e-12
+33
+1651.70418094992
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.63172537816581e-05
+20
+-140.14704
+30
+1651.70418094992
+11
+11.3704272911448
+21
+-2.03037586743449e-12
+31
+1653.96590077154
+12
+11.3704272911452
+22
+-140.14704
+32
+1653.96590077155
+13
+11.3704272911452
+23
+-140.14704
+33
+1653.96590077155
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-27.450522684681
+20
+-140.14704
+30
+1692.78678227628
+11
+-21.0097266163854
+21
+-2.16573425859679e-12
+31
+1702.42613319061
+12
+-27.4505226846814
+22
+-2.16573425859679e-12
+32
+1692.78678227628
+13
+-27.4505226846814
+23
+-2.16573425859679e-12
+33
+1692.78678227628
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-21.0097266163854
+20
+-2.16573425859679e-12
+30
+1702.42613319061
+11
+-27.450522684681
+21
+-140.14704
+31
+1692.78678227628
+12
+-21.009726616385
+22
+-140.14704
+32
+1702.42613319061
+13
+-21.009726616385
+23
+-140.14704
+33
+1702.42613319061
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+27.4505629136862
+20
+-1.98525640371372e-12
+30
+1670.04606475574
+11
+21.0097668453905
+21
+-140.14704
+31
+1660.40671384141
+12
+21.0097668453901
+22
+-1.98525640371372e-12
+32
+1660.40671384141
+13
+21.0097668453901
+23
+-1.98525640371372e-12
+33
+1660.40671384141
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+21.0097668453905
+20
+-140.14704
+30
+1660.40671384141
+11
+27.4505629136862
+21
+-1.98525640371372e-12
+31
+1670.04606475574
+12
+27.4505629136866
+22
+-140.14704
+32
+1670.04606475574
+13
+27.4505629136866
+23
+-140.14704
+33
+1670.04606475574
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-29.7122224515915
+20
+-140.14704
+30
+1681.41639731326
+11
+-27.4505226846814
+21
+-2.16573425859679e-12
+31
+1692.78678227628
+12
+-29.7122224515919
+22
+-2.16573425859679e-12
+32
+1681.41639731326
+13
+-29.7122224515919
+23
+-2.16573425859679e-12
+33
+1681.41639731326
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-27.4505226846814
+20
+-2.16573425859679e-12
+30
+1692.78678227628
+11
+-29.7122224515915
+21
+-140.14704
+31
+1681.41639731326
+12
+-27.450522684681
+22
+-140.14704
+32
+1692.78678227628
+13
+-27.450522684681
+23
+-140.14704
+33
+1692.78678227628
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+4.63172537816581e-05
+20
+-140.14704
+30
+1651.70418094992
+11
+-11.3703386457694
+21
+-2.07549533115525e-12
+31
+1653.96588071683
+12
+4.63172533769929e-05
+22
+-2.03037586743449e-12
+32
+1651.70418094992
+13
+4.63172533769929e-05
+23
+-2.03037586743449e-12
+33
+1651.70418094992
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-11.3703386457694
+20
+-2.07549533115525e-12
+30
+1653.96588071683
+11
+4.63172537816581e-05
+21
+-140.14704
+31
+1651.70418094992
+12
+-11.370338645769
+22
+-140.14704
+32
+1653.96588071683
+13
+-11.370338645769
+23
+-140.14704
+33
+1653.96588071683
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-11.3703870621396
+20
+-140.14704
+30
+1708.86694626048
+11
+-6.0882486421221e-06
+21
+-2.12061479487602e-12
+31
+1711.12866608211
+12
+-11.37038706214
+22
+-2.12061479487602e-12
+32
+1708.86694626048
+13
+-11.37038706214
+23
+-2.12061479487602e-12
+33
+1708.86694626048
+70
+1
+ 0
+3DFACE
+ 8
+rotator_half
+10
+-6.0882486421221e-06
+20
+-2.12061479487602e-12
+30
+1711.12866608211
+11
+-11.3703870621396
+21
+-140.14704
+31
+1708.86694626048
+12
+-6.08824821207721e-06
+22
+-140.14704
+32
+1711.12866608211
+13
+-6.08824821207721e-06
+23
+-140.14704
+33
+1711.12866608211
+70
+1
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/hacks/glx/romanboy.c b/hacks/glx/romanboy.c
new file mode 100644
index 0000000..9ad12f0
--- /dev/null
+++ b/hacks/glx/romanboy.c
@@ -0,0 +1,1552 @@
+/* romanboy --- Shows a 3d immersion of the real projective plane
+ that rotates in 3d or on which you can walk and that can deform
+ smoothly between the Roman surface and the Boy surface. */
+
+#if 0
+static const char sccsid[] = "@(#)romanboy.c 1.1 14/10/03 xlockmore";
+#endif
+
+/* Copyright (c) 2013-2014 Carsten Steger <carsten@mirsanmir.org>. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * REVISION HISTORY:
+ * C. Steger - 14/10/03: Initial version
+ */
+
+/*
+ * This program shows a 3d immersion of the real projective plane
+ * that smoothly deforms between the Roman surface and the Boy
+ * surface. You can walk on the projective plane or turn in 3d. The
+ * smooth deformation (homotopy) between these two famous immersions
+ * of the real projective plane was constructed by Franois Apry.
+ *
+ * The real projective plane is a non-orientable surface. To make
+ * this apparent, the two-sided color mode can be used.
+ * Alternatively, orientation markers (curling arrows) can be drawn as
+ * a texture map on the surface of the projective plane. While
+ * walking on the projective plane, you will notice that the
+ * orientation of the curling arrows changes (which it must because
+ * the projective plane is non-orientable).
+ *
+ * The real projective plane is a model for the projective geometry in
+ * 2d space. One point can be singled out as the origin. A line can
+ * be singled out as the line at infinity, i.e., a line that lies at
+ * an infinite distance to the origin. The line at infinity is
+ * topologically a circle. Points on the line at infinity are also
+ * used to model directions in projective geometry. The origin can be
+ * visualized in different manners. When using distance colors, the
+ * origin is the point that is displayed as fully saturated red, which
+ * is easier to see as the center of the reddish area on the
+ * projective plane. Alternatively, when using distance bands, the
+ * origin is the center of the only band that projects to a disk.
+ * When using direction bands, the origin is the point where all
+ * direction bands collapse to a point. Finally, when orientation
+ * markers are being displayed, the origin the the point where all
+ * orientation markers are compressed to a point. The line at
+ * infinity can also be visualized in different ways. When using
+ * distance colors, the line at infinity is the line that is displayed
+ * as fully saturated magenta. When two-sided colors are used, the
+ * line at infinity lies at the points where the red and green "sides"
+ * of the projective plane meet (of course, the real projective plane
+ * only has one side, so this is a design choice of the
+ * visualization). Alternatively, when orientation markers are being
+ * displayed, the line at infinity is the place where the orientation
+ * markers change their orientation.
+ *
+ * Note that when the projective plane is displayed with bands, the
+ * orientation markers are placed in the middle of the bands. For
+ * distance bands, the bands are chosen in such a way that the band at
+ * the origin is only half as wide as the remaining bands, which
+ * results in a disk being displayed at the origin that has the same
+ * diameter as the remaining bands. This choice, however, also
+ * implies that the band at infinity is half as wide as the other
+ * bands. Since the projective plane is attached to itself (in a
+ * complicated fashion) at the line at infinity, effectively the band
+ * at infinity is again as wide as the remaining bands. However,
+ * since the orientation markers are displayed in the middle of the
+ * bands, this means that only one half of the orientation markers
+ * will be displayed twice at the line at infinity if distance bands
+ * are used. If direction bands are used or if the projective plane
+ * is displayed as a solid surface, the orientation markers are
+ * displayed fully at the respective sides of the line at infinity.
+ *
+ * The immersed projective plane can be projected to the screen either
+ * perspectively or orthographically. When using the walking modes,
+ * perspective projection to the screen will be used.
+ *
+ * There are three display modes for the projective plane: mesh
+ * (wireframe), solid, or transparent. Furthermore, the appearance of
+ * the projective plane can be as a solid object or as a set of
+ * see-through bands. The bands can be distance bands, i.e., bands
+ * that lie at increasing distances from the origin, or direction
+ * bands, i.e., bands that lie at increasing angles with respect to
+ * the origin.
+ *
+ * When the projective plane is displayed with direction bands, you
+ * will be able to see that each direction band (modulo the "pinching"
+ * at the origin) is a Moebius strip, which also shows that the
+ * projective plane is non-orientable.
+ *
+ * Finally, the colors with with the projective plane is drawn can be
+ * set to two-sided, distance, or direction. In two-sided mode, the
+ * projective plane is drawn with red on one "side" and green on the
+ * "other side". As described above, the projective plane only has
+ * one side, so the color jumps from red to green along the line at
+ * infinity. This mode enables you to see that the projective plane
+ * is non-orientable. In distance mode, the projective plane is
+ * displayed with fully saturated colors that depend on the distance
+ * of the points on the projective plane to the origin. The origin is
+ * displayed in red, the line at infinity is displayed in magenta. If
+ * the projective plane is displayed as distance bands, each band will
+ * be displayed with a different color. In direction mode, the
+ * projective plane is displayed with fully saturated colors that
+ * depend on the angle of the points on the projective plane with
+ * respect to the origin. Angles in opposite directions to the origin
+ * (e.g., 15 and 205 degrees) are displayed in the same color since
+ * they are projectively equivalent. If the projective plane is
+ * displayed as direction bands, each band will be displayed with a
+ * different color.
+ *
+ * The rotation speed for each of the three coordinate axes around
+ * which the projective plane rotates can be chosen.
+ *
+ * Furthermore, in the walking mode the walking direction in the 2d
+ * base square of the projective plane and the walking speed can be
+ * chosen. The walking direction is measured as an angle in degrees
+ * in the 2d square that forms the coordinate system of the surface of
+ * the projective plane. A value of 0 or 180 means that the walk is
+ * along a circle at a randomly chosen distance from the origin
+ * (parallel to a distance band). A value of 90 or 270 means that the
+ * walk is directly from the origin to the line at infinity and back
+ * (analogous to a direction band). Any other value results in a
+ * curved path from the origin to the line at infinity and back.
+ *
+ * By default, the immersion of the real projective plane smoothly
+ * deforms between the Roman and Boy surfaces. It is possible to
+ * choose the speed of the deformation. Furthermore, it is possible
+ * to switch the deformation off. It is also possible to determine
+ * the initial deformation of the immersion. This is mostly useful if
+ * the deformation is switched off, in which case it will determine
+ * the appearance of the surface.
+ *
+ * As a final option, it is possible to display generalized versions
+ * of the immersion discussed above by specifying the order of the
+ * surface. The default surface order of 3 results in the immersion
+ * of the real projective described above. The surface order can be
+ * chosen between 2 and 9. Odd surface orders result in generalized
+ * immersions of the real projective plane, while even numbers result
+ * in a immersion of a topological sphere (which is orientable). The
+ * most interesting even case is a surface order of 2, which results
+ * in an immersion of the halfway model of Morin's sphere eversion (if
+ * the deformation is switched off).
+ *
+ * This program is inspired by Franois Apry's book "Models of the
+ * Real Projective Plane", Vieweg, 1987.
+ */
+
+#include "curlicue.h"
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define DISP_WIREFRAME 0
+#define DISP_SURFACE 1
+#define DISP_TRANSPARENT 2
+#define NUM_DISPLAY_MODES 3
+
+#define APPEARANCE_SOLID 0
+#define APPEARANCE_DISTANCE_BANDS 1
+#define APPEARANCE_DIRECTION_BANDS 2
+#define NUM_APPEARANCES 3
+
+#define COLORS_TWOSIDED 0
+#define COLORS_DISTANCE 1
+#define COLORS_DIRECTION 2
+#define NUM_COLORS 3
+
+#define VIEW_WALK 0
+#define VIEW_TURN 1
+#define NUM_VIEW_MODES 2
+
+#define DISP_PERSPECTIVE 0
+#define DISP_ORTHOGRAPHIC 1
+#define NUM_DISP_MODES 2
+
+#define DEF_DISPLAY_MODE "random"
+#define DEF_APPEARANCE "random"
+#define DEF_COLORS "random"
+#define DEF_VIEW_MODE "random"
+#define DEF_MARKS "False"
+#define DEF_DEFORM "True"
+#define DEF_PROJECTION "random"
+#define DEF_SPEEDX "1.1"
+#define DEF_SPEEDY "1.3"
+#define DEF_SPEEDZ "1.5"
+#define DEF_WALK_DIRECTION "83.0"
+#define DEF_WALK_SPEED "20.0"
+#define DEF_DEFORM_SPEED "10.0"
+#define DEF_INIT_DEFORM "1000.0"
+#define DEF_SURFACE_ORDER "3"
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 10000 \n" \
+ "*showFPS: False \n" \
+
+# define release_romanboy 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#ifndef HAVE_JWXYZ
+# include <X11/keysym.h>
+#endif
+
+#include "gltrackball.h"
+
+#include <float.h>
+
+
+#ifdef USE_MODULES
+ModStruct romanboy_description =
+{"romanboy", "init_romanboy", "draw_romanboy",
+ NULL, "draw_romanboy", "change_romanboy",
+ "free_romanboy", &romanboy_opts, 25000, 1, 1, 1, 1.0, 4, "",
+ "Rotate a 3d immersion of the real projective plane in 3d or walk on it",
+ 0, NULL};
+
+#endif
+
+
+static char *mode;
+static char *appear;
+static char *color_mode;
+static char *view_mode;
+static Bool marks;
+static Bool deform;
+static char *proj;
+static float speed_x;
+static float speed_y;
+static float speed_z;
+static float walk_direction;
+static float walk_speed;
+static float deform_speed;
+static float init_deform;
+static int surface_order;
+
+
+static XrmOptionDescRec opts[] =
+{
+ {"-mode", ".displayMode", XrmoptionSepArg, 0 },
+ {"-wireframe", ".displayMode", XrmoptionNoArg, "wireframe" },
+ {"-surface", ".displayMode", XrmoptionNoArg, "surface" },
+ {"-transparent", ".displayMode", XrmoptionNoArg, "transparent" },
+ {"-appearance", ".appearance", XrmoptionSepArg, 0 },
+ {"-solid", ".appearance", XrmoptionNoArg, "solid" },
+ {"-distance-bands", ".appearance", XrmoptionNoArg, "distance-bands" },
+ {"-direction-bands", ".appearance", XrmoptionNoArg, "direction-bands" },
+ {"-colors", ".colors", XrmoptionSepArg, 0 },
+ {"-twosided-colors", ".colors", XrmoptionNoArg, "two-sided" },
+ {"-distance-colors", ".colors", XrmoptionNoArg, "distance" },
+ {"-direction-colors", ".colors", XrmoptionNoArg, "direction" },
+ {"-view-mode", ".viewMode", XrmoptionSepArg, 0 },
+ {"-walk", ".viewMode", XrmoptionNoArg, "walk" },
+ {"-turn", ".viewMode", XrmoptionNoArg, "turn" },
+ {"-deform", ".deform", XrmoptionNoArg, "on"},
+ {"+deform", ".deform", XrmoptionNoArg, "off"},
+ {"-orientation-marks", ".marks", XrmoptionNoArg, "on"},
+ {"+orientation-marks", ".marks", XrmoptionNoArg, "off"},
+ {"-projection", ".projection", XrmoptionSepArg, 0 },
+ {"-perspective", ".projection", XrmoptionNoArg, "perspective" },
+ {"-orthographic", ".projection", XrmoptionNoArg, "orthographic" },
+ {"-speed-x", ".speedx", XrmoptionSepArg, 0 },
+ {"-speed-y", ".speedy", XrmoptionSepArg, 0 },
+ {"-speed-z", ".speedz", XrmoptionSepArg, 0 },
+ {"-walk-direction", ".walkDirection", XrmoptionSepArg, 0 },
+ {"-walk-speed", ".walkSpeed", XrmoptionSepArg, 0 },
+ {"-deformation-speed", ".deformSpeed", XrmoptionSepArg, 0 },
+ {"-initial-deformation", ".initDeform", XrmoptionSepArg, 0 },
+ {"-roman", ".initDeform", XrmoptionNoArg, "0.0" },
+ {"-boy", ".initDeform", XrmoptionNoArg, "1000.0" },
+ {"-surface-order", ".surfaceOrder", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] =
+{
+ { &mode, "displayMode", "DisplayMode", DEF_DISPLAY_MODE, t_String },
+ { &appear, "appearance", "Appearance", DEF_APPEARANCE, t_String },
+ { &color_mode, "colors", "Colors", DEF_COLORS, t_String },
+ { &view_mode, "viewMode", "ViewMode", DEF_VIEW_MODE, t_String },
+ { &deform, "deform", "Deform", DEF_DEFORM, t_Bool },
+ { &marks, "marks", "Marks", DEF_MARKS, t_Bool },
+ { &proj, "projection", "Projection", DEF_PROJECTION, t_String },
+ { &speed_x, "speedx", "Speedx", DEF_SPEEDX, t_Float},
+ { &speed_y, "speedy", "Speedy", DEF_SPEEDY, t_Float},
+ { &speed_z, "speedz", "Speedz", DEF_SPEEDZ, t_Float},
+ { &walk_direction, "walkDirection", "WalkDirection", DEF_WALK_DIRECTION, t_Float},
+ { &walk_speed, "walkSpeed", "WalkSpeed", DEF_WALK_SPEED, t_Float},
+ { &deform_speed, "deformSpeed", "DeformSpeed", DEF_DEFORM_SPEED, t_Float},
+ { &init_deform, "initDeform", "InitDeform", DEF_INIT_DEFORM, t_Float },
+ { &surface_order, "surfaceOrder", "SurfaceOrder", DEF_SURFACE_ORDER, t_Int }
+};
+
+ENTRYPOINT ModeSpecOpt romanboy_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, NULL};
+
+
+/* Offset by which we walk above the projective plane */
+#define DELTAY 0.01
+
+/* Number of subdivisions of the projective plane */
+#define NUMU 64
+#define NUMV 128
+
+/* Number of subdivisions per band */
+#define NUMB 8
+
+
+typedef struct {
+ GLint WindH, WindW;
+ GLXContext *glx_context;
+ /* Options */
+ int display_mode;
+ int appearance;
+ int colors;
+ int view;
+ int projection;
+ Bool marks;
+ /* 3D rotation angles */
+ float alpha, beta, delta;
+ /* Movement parameters */
+ float umove, vmove, dumove, dvmove;
+ int side, dir;
+ /* Deformation parameters */
+ float dd;
+ int defdir;
+ /* The type of the generalized Roman-Boy surface */
+ int g;
+ /* The viewing offset in 3d */
+ float offset3d[3];
+ /* The 3d coordinates of the projective plane and their derivatives */
+ float *pp;
+ float *pn;
+ /* The precomputed colors of the projective plane */
+ float *col;
+ /* The precomputed texture coordinates of the projective plane */
+ float *tex;
+ /* The "curlicue" texture */
+ GLuint tex_name;
+ /* Aspect ratio of the current window */
+ float aspect;
+ /* Trackball states */
+ trackball_state *trackball;
+ Bool button_pressed;
+ /* A random factor to modify the rotation speeds */
+ float speed_scale;
+} romanboystruct;
+
+static romanboystruct *romanboy = (romanboystruct *) NULL;
+
+
+/* Add a rotation around the x-axis to the matrix m. */
+static void rotatex(float m[3][3], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<3; i++)
+ {
+ u = m[i][1];
+ v = m[i][2];
+ m[i][1] = c*u+s*v;
+ m[i][2] = -s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the y-axis to the matrix m. */
+static void rotatey(float m[3][3], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<3; i++)
+ {
+ u = m[i][0];
+ v = m[i][2];
+ m[i][0] = c*u-s*v;
+ m[i][2] = s*u+c*v;
+ }
+}
+
+
+/* Add a rotation around the z-axis to the matrix m. */
+static void rotatez(float m[3][3], float phi)
+{
+ float c, s, u, v;
+ int i;
+
+ phi *= M_PI/180.0;
+ c = cos(phi);
+ s = sin(phi);
+ for (i=0; i<3; i++)
+ {
+ u = m[i][0];
+ v = m[i][1];
+ m[i][0] = c*u+s*v;
+ m[i][1] = -s*u+c*v;
+ }
+}
+
+
+/* Compute the rotation matrix m from the rotation angles. */
+static void rotateall(float al, float be, float de, float m[3][3])
+{
+ int i, j;
+
+ for (i=0; i<3; i++)
+ for (j=0; j<3; j++)
+ m[i][j] = (i==j);
+ rotatex(m,al);
+ rotatey(m,be);
+ rotatez(m,de);
+}
+
+
+/* Multiply two rotation matrices: o=m*n. */
+static void mult_rotmat(float m[3][3], float n[3][3], float o[3][3])
+{
+ int i, j, k;
+
+ for (i=0; i<3; i++)
+ {
+ for (j=0; j<3; j++)
+ {
+ o[i][j] = 0.0;
+ for (k=0; k<3; k++)
+ o[i][j] += m[i][k]*n[k][j];
+ }
+ }
+}
+
+
+/* Compute a 3D rotation matrix from a unit quaternion. */
+static void quat_to_rotmat(float p[4], float m[3][3])
+{
+ double al, be, de;
+ double r00, r01, r02, r12, r22;
+
+ r00 = 1.0-2.0*(p[1]*p[1]+p[2]*p[2]);
+ r01 = 2.0*(p[0]*p[1]+p[2]*p[3]);
+ r02 = 2.0*(p[2]*p[0]-p[1]*p[3]);
+ r12 = 2.0*(p[1]*p[2]+p[0]*p[3]);
+ r22 = 1.0-2.0*(p[1]*p[1]+p[0]*p[0]);
+
+ al = atan2(-r12,r22)*180.0/M_PI;
+ be = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+ de = atan2(-r01,r00)*180.0/M_PI;
+
+ rotateall(al,be,de,m);
+}
+
+
+/* Compute a fully saturated and bright color based on an angle. */
+static void color(romanboystruct *pp, double angle, float col[4])
+{
+ int s;
+ double t;
+
+ if (pp->colors == COLORS_TWOSIDED)
+ return;
+
+ if (angle >= 0.0)
+ angle = fmod(angle,2.0*M_PI);
+ else
+ angle = fmod(angle,-2.0*M_PI);
+ s = floor(angle/(M_PI/3));
+ t = angle/(M_PI/3)-s;
+ if (s >= 6)
+ s = 0;
+ switch (s)
+ {
+ case 0:
+ col[0] = 1.0;
+ col[1] = t;
+ col[2] = 0.0;
+ break;
+ case 1:
+ col[0] = 1.0-t;
+ col[1] = 1.0;
+ col[2] = 0.0;
+ break;
+ case 2:
+ col[0] = 0.0;
+ col[1] = 1.0;
+ col[2] = t;
+ break;
+ case 3:
+ col[0] = 0.0;
+ col[1] = 1.0-t;
+ col[2] = 1.0;
+ break;
+ case 4:
+ col[0] = t;
+ col[1] = 0.0;
+ col[2] = 1.0;
+ break;
+ case 5:
+ col[0] = 1.0;
+ col[1] = 0.0;
+ col[2] = 1.0-t;
+ break;
+ }
+ if (pp->display_mode == DISP_TRANSPARENT)
+ col[3] = 0.7;
+ else
+ col[3] = 1.0;
+}
+
+
+/* Set up the projective plane colors and texture. */
+static void setup_roman_boy_color_texture(ModeInfo *mi, double umin,
+ double umax, double vmin,
+ double vmax, int numu, int numv)
+{
+ int i, j, k, g;
+ double u, v, ur, vr;
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ g = pp->g;
+ ur = umax-umin;
+ vr = vmax-vmin;
+ for (i=0; i<=numv; i++)
+ {
+ for (j=0; j<=numu; j++)
+ {
+ k = i*(numu+1)+j;
+ if (pp->appearance != APPEARANCE_DIRECTION_BANDS)
+ u = -ur*j/numu+umin;
+ else
+ u = ur*j/numu+umin;
+ v = vr*i/numv+vmin;
+ if (pp->colors == COLORS_DIRECTION)
+ color(pp,2.0*M_PI-fmod(2.0*u,2.0*M_PI),&pp->col[4*k]);
+ else /* pp->colors == COLORS_DISTANCE */
+ color(pp,v*(5.0/6.0),&pp->col[4*k]);
+ pp->tex[2*k+0] = -16*g*u/(2.0*M_PI);
+ if (pp->appearance == APPEARANCE_DISTANCE_BANDS)
+ pp->tex[2*k+1] = 32*v/(2.0*M_PI)-0.5;
+ else
+ pp->tex[2*k+1] = 32*v/(2.0*M_PI);
+ }
+ }
+}
+
+
+/* Draw a 3d immersion of the projective plane. */
+static int roman_boy(ModeInfo *mi, double umin, double umax,
+ double vmin, double vmax, int numu, int numv)
+{
+ int polys = 0;
+ static const GLfloat mat_diff_red[] = { 1.0, 0.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_green[] = { 0.0, 1.0, 0.0, 1.0 };
+ static const GLfloat mat_diff_trans_red[] = { 1.0, 0.0, 0.0, 0.7 };
+ static const GLfloat mat_diff_trans_green[] = { 0.0, 1.0, 0.0, 0.7 };
+ float p[3], pu[3], pv[3], pm[3], n[3], b[3], mat[3][3];
+ int i, j, k, l, m, o, g;
+ double u, v, ur, vr, oz;
+ double xx[3], xxu[3], xxv[3];
+ double r, s, t;
+ double d, dd, radius;
+ double cu, su, cgu, sgu, cgm1u, sgm1u, cv, c2v, s2v, cv2;
+ double sqrt2og, h1m1og, gm1, nomx, nomy, nomux, nomuy, nomvx, nomvy;
+ double den, den2, denu, denv;
+ float qu[4], r1[3][3], r2[3][3];
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ g = pp->g;
+ dd = pp->dd;
+ d = ((6.0*dd-15.0)*dd+10.0)*dd*dd*dd;
+ r = 1.0+d*d*(1.0/2.0+d*d*(1.0/6.0+d*d*(1.0/3.0)));
+ radius = 1.0/r;
+ oz = 0.5*r;
+ if (pp->view == VIEW_WALK)
+ {
+ u = pp->umove;
+ v = pp->vmove;
+ if (g & 1)
+ v = 0.5*M_PI-0.25*v;
+ else
+ v = 0.5*M_PI-0.5*v;
+ sqrt2og = M_SQRT2/g;
+ h1m1og = 0.5*(1.0-1.0/g);
+ gm1 = g-1.0;
+ cu = cos(u);
+ su = sin(u);
+ cgu = cos(g*u);
+ sgu = sin(g*u);
+ cgm1u = cos(gm1*u);
+ sgm1u = sin(gm1*u);
+ cv = cos(v);
+ c2v = cos(2.0*v);
+ s2v = sin(2.0*v);
+ cv2 = cv*cv;
+ nomx = sqrt2og*cv2*cgm1u+h1m1og*s2v*cu;
+ nomy = sqrt2og*cv2*sgm1u-h1m1og*s2v*su;
+ nomux = -sqrt2og*cv2*gm1*sgm1u-h1m1og*s2v*su;
+ nomuy = sqrt2og*cv2*gm1*cgm1u-h1m1og*s2v*cu;
+ nomvx = -sqrt2og*s2v*cgm1u+2.0*h1m1og*c2v*cu;
+ nomvy = -sqrt2og*s2v*sgm1u-2.0*h1m1og*c2v*su;
+ den = 1.0/(1.0-0.5*M_SQRT2*d*s2v*sgu);
+ den2 = den*den;
+ denu = 0.5*M_SQRT2*d*g*cgu*s2v;
+ denv = M_SQRT2*d*sgu*c2v;
+ xx[0] = nomx*den;
+ xx[1] = nomy*den;
+ xx[2] = cv2*den-oz;
+ /* Avoid degenerate tangential plane basis vectors. */
+ if (0.5*M_PI-fabs(v) < FLT_EPSILON)
+ {
+ if (0.5*M_PI-v < FLT_EPSILON)
+ v = 0.5*M_PI-FLT_EPSILON;
+ else
+ v = -0.5*M_PI+FLT_EPSILON;
+ cv = cos(v);
+ c2v = cos(2.0*v);
+ s2v = sin(2.0*v);
+ cv2 = cv*cv;
+ nomx = sqrt2og*cv2*cgm1u+h1m1og*s2v*cu;
+ nomy = sqrt2og*cv2*sgm1u-h1m1og*s2v*su;
+ nomux = -sqrt2og*cv2*gm1*sgm1u-h1m1og*s2v*su;
+ nomuy = sqrt2og*cv2*gm1*cgm1u-h1m1og*s2v*cu;
+ nomvx = -sqrt2og*s2v*cgm1u+2.0*h1m1og*c2v*cu;
+ nomvy = -sqrt2og*s2v*sgm1u-2.0*h1m1og*c2v*su;
+ den = 1.0/(1.0-0.5*M_SQRT2*d*s2v*sgu);
+ den2 = den*den;
+ denu = 0.5*M_SQRT2*d*g*cgu*s2v;
+ denv = M_SQRT2*d*sgu*c2v;
+ }
+ xxu[0] = nomux*den+nomx*denu*den2;
+ xxu[1] = nomuy*den+nomy*denu*den2;
+ xxu[2] = cv2*denu*den2;
+ xxv[0] = nomvx*den+nomx*denv*den2;
+ xxv[1] = nomvy*den+nomy*denv*den2;
+ xxv[2] = -s2v*den+cv2*denv*den2;
+ for (l=0; l<3; l++)
+ {
+ p[l] = xx[l]*radius;
+ pu[l] = xxu[l]*radius;
+ pv[l] = xxv[l]*radius;
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/(pp->side*4.0*sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]));
+ n[0] *= t;
+ n[1] *= t;
+ n[2] *= t;
+ pm[0] = pu[0]*pp->dumove-pv[0]*0.25*pp->dvmove;
+ pm[1] = pu[1]*pp->dumove-pv[1]*0.25*pp->dvmove;
+ pm[2] = pu[2]*pp->dumove-pv[2]*0.25*pp->dvmove;
+ t = 1.0/(4.0*sqrt(pm[0]*pm[0]+pm[1]*pm[1]+pm[2]*pm[2]));
+ pm[0] *= t;
+ pm[1] *= t;
+ pm[2] *= t;
+ b[0] = n[1]*pm[2]-n[2]*pm[1];
+ b[1] = n[2]*pm[0]-n[0]*pm[2];
+ b[2] = n[0]*pm[1]-n[1]*pm[0];
+ t = 1.0/(4.0*sqrt(b[0]*b[0]+b[1]*b[1]+b[2]*b[2]));
+ b[0] *= t;
+ b[1] *= t;
+ b[2] *= t;
+
+ /* Compute alpha, beta, gamma from the three basis vectors.
+ | -b[0] -b[1] -b[2] |
+ m = | n[0] n[1] n[2] |
+ | -pm[0] -pm[1] -pm[2] |
+ */
+ pp->alpha = atan2(-n[2],-pm[2])*180/M_PI;
+ pp->beta = atan2(-b[2],sqrt(b[0]*b[0]+b[1]*b[1]))*180/M_PI;
+ pp->delta = atan2(b[1],-b[0])*180/M_PI;
+
+ /* Compute the rotation that rotates the projective plane in 3D. */
+ rotateall(pp->alpha,pp->beta,pp->delta,mat);
+
+ u = pp->umove;
+ v = pp->vmove;
+ if (g & 1)
+ v = 0.5*M_PI-0.25*v;
+ else
+ v = 0.5*M_PI-0.5*v;
+ sqrt2og = M_SQRT2/g;
+ h1m1og = 0.5*(1.0-1.0/g);
+ gm1 = g-1.0;
+ cu = cos(u);
+ su = sin(u);
+ sgu = sin(g*u);
+ cgm1u = cos(gm1*u);
+ sgm1u = sin(gm1*u);
+ cv = cos(v);
+ s2v = sin(2.0*v);
+ cv2 = cv*cv;
+ nomx = sqrt2og*cv2*cgm1u+h1m1og*s2v*cu;
+ nomy = sqrt2og*cv2*sgm1u-h1m1og*s2v*su;
+ den = 1.0/(1.0-0.5*M_SQRT2*d*s2v*sgu);
+ xx[0] = nomx*den;
+ xx[1] = nomy*den;
+ xx[2] = cv2*den-oz;
+ for (l=0; l<3; l++)
+ {
+ r = 0.0;
+ for (m=0; m<3; m++)
+ r += mat[l][m]*xx[m];
+ p[l] = r*radius;
+ }
+
+ pp->offset3d[0] = -p[0];
+ pp->offset3d[1] = -p[1]-DELTAY;
+ pp->offset3d[2] = -p[2];
+ }
+ else
+ {
+ /* Compute the rotation that rotates the projective plane in 3D,
+ including the trackball rotations. */
+ rotateall(pp->alpha,pp->beta,pp->delta,r1);
+
+ gltrackball_get_quaternion(pp->trackball,qu);
+ quat_to_rotmat(qu,r2);
+
+ mult_rotmat(r2,r1,mat);
+ }
+
+ if (pp->colors == COLORS_TWOSIDED)
+ {
+ glColor3fv(mat_diff_red);
+ if (pp->display_mode == DISP_TRANSPARENT)
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_trans_green);
+ }
+ else
+ {
+ glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,mat_diff_red);
+ glMaterialfv(GL_BACK,GL_AMBIENT_AND_DIFFUSE,mat_diff_green);
+ }
+ }
+ glBindTexture(GL_TEXTURE_2D,pp->tex_name);
+
+ ur = umax-umin;
+ vr = vmax-vmin;
+
+ /* Set up the projective plane coordinates and normals. */
+ if (pp->appearance != APPEARANCE_DIRECTION_BANDS)
+ {
+ for (i=0; i<=numv; i++)
+ {
+ if (pp->appearance == APPEARANCE_DISTANCE_BANDS &&
+ ((i & (NUMB-1)) >= NUMB/4+1) && ((i & (NUMB-1)) < 3*NUMB/4))
+ continue;
+ for (j=0; j<=numu; j++)
+ {
+ o = i*(numu+1)+j;
+ u = ur*j/numu+umin;
+ v = vr*i/numv+vmin;
+ if (g & 1)
+ v = 0.5*M_PI-0.25*v;
+ else
+ v = 0.5*M_PI-0.5*v;
+ sqrt2og = M_SQRT2/g;
+ h1m1og = 0.5*(1.0-1.0/g);
+ gm1 = g-1.0;
+ cu = cos(u);
+ su = sin(u);
+ cgu = cos(g*u);
+ sgu = sin(g*u);
+ cgm1u = cos(gm1*u);
+ sgm1u = sin(gm1*u);
+ cv = cos(v);
+ c2v = cos(2.0*v);
+ s2v = sin(2.0*v);
+ cv2 = cv*cv;
+ nomx = sqrt2og*cv2*cgm1u+h1m1og*s2v*cu;
+ nomy = sqrt2og*cv2*sgm1u-h1m1og*s2v*su;
+ nomux = -sqrt2og*cv2*gm1*sgm1u-h1m1og*s2v*su;
+ nomuy = sqrt2og*cv2*gm1*cgm1u-h1m1og*s2v*cu;
+ nomvx = -sqrt2og*s2v*cgm1u+2.0*h1m1og*c2v*cu;
+ nomvy = -sqrt2og*s2v*sgm1u-2.0*h1m1og*c2v*su;
+ den = 1.0/(1.0-0.5*M_SQRT2*d*s2v*sgu);
+ den2 = den*den;
+ denu = 0.5*M_SQRT2*d*g*cgu*s2v;
+ denv = M_SQRT2*d*sgu*c2v;
+ xx[0] = nomx*den;
+ xx[1] = nomy*den;
+ xx[2] = cv2*den-oz;
+ /* Avoid degenerate tangential plane basis vectors. */
+ if (0.5*M_PI-fabs(v) < FLT_EPSILON)
+ {
+ if (0.5*M_PI-v < FLT_EPSILON)
+ v = 0.5*M_PI-FLT_EPSILON;
+ else
+ v = -0.5*M_PI+FLT_EPSILON;
+ cv = cos(v);
+ c2v = cos(2.0*v);
+ s2v = sin(2.0*v);
+ cv2 = cv*cv;
+ nomx = sqrt2og*cv2*cgm1u+h1m1og*s2v*cu;
+ nomy = sqrt2og*cv2*sgm1u-h1m1og*s2v*su;
+ nomux = -sqrt2og*cv2*gm1*sgm1u-h1m1og*s2v*su;
+ nomuy = sqrt2og*cv2*gm1*cgm1u-h1m1og*s2v*cu;
+ nomvx = -sqrt2og*s2v*cgm1u+2.0*h1m1og*c2v*cu;
+ nomvy = -sqrt2og*s2v*sgm1u-2.0*h1m1og*c2v*su;
+ den = 1.0/(1.0-0.5*M_SQRT2*d*s2v*sgu);
+ den2 = den*den;
+ denu = 0.5*M_SQRT2*d*g*cgu*s2v;
+ denv = M_SQRT2*d*sgu*c2v;
+ }
+ xxu[0] = nomux*den+nomx*denu*den2;
+ xxu[1] = nomuy*den+nomy*denu*den2;
+ xxu[2] = cv2*denu*den2;
+ xxv[0] = nomvx*den+nomx*denv*den2;
+ xxv[1] = nomvy*den+nomy*denv*den2;
+ xxv[2] = -s2v*den+cv2*denv*den2;
+ for (l=0; l<3; l++)
+ {
+ r = 0.0;
+ s = 0.0;
+ t = 0.0;
+ for (m=0; m<3; m++)
+ {
+ r += mat[l][m]*xx[m];
+ s += mat[l][m]*xxu[m];
+ t += mat[l][m]*xxv[m];
+ }
+ p[l] = r*radius+pp->offset3d[l];
+ pu[l] = s*radius;
+ pv[l] = t*radius;
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);
+ n[0] *= t;
+ n[1] *= t;
+ n[2] *= t;
+ pp->pp[3*o+0] = p[0];
+ pp->pp[3*o+1] = p[1];
+ pp->pp[3*o+2] = p[2];
+ pp->pn[3*o+0] = n[0];
+ pp->pn[3*o+1] = n[1];
+ pp->pn[3*o+2] = n[2];
+ }
+ }
+ }
+ else /* pp->appearance == APPEARANCE_DIRECTION_BANDS */
+ {
+ for (j=0; j<=numu; j++)
+ {
+ if ((j & (NUMB-1)) >= NUMB/2+1)
+ continue;
+ for (i=0; i<=numv; i++)
+ {
+ o = i*(numu+1)+j;
+ u = -ur*j/numu+umin;
+ v = vr*i/numv+vmin;
+ if (g & 1)
+ v = 0.5*M_PI-0.25*v;
+ else
+ v = 0.5*M_PI-0.5*v;
+ sqrt2og = M_SQRT2/g;
+ h1m1og = 0.5*(1.0-1.0/g);
+ gm1 = g-1.0;
+ cu = cos(u);
+ su = sin(u);
+ cgu = cos(g*u);
+ sgu = sin(g*u);
+ cgm1u = cos(gm1*u);
+ sgm1u = sin(gm1*u);
+ cv = cos(v);
+ c2v = cos(2.0*v);
+ s2v = sin(2.0*v);
+ cv2 = cv*cv;
+ nomx = sqrt2og*cv2*cgm1u+h1m1og*s2v*cu;
+ nomy = sqrt2og*cv2*sgm1u-h1m1og*s2v*su;
+ nomux = -sqrt2og*cv2*gm1*sgm1u-h1m1og*s2v*su;
+ nomuy = sqrt2og*cv2*gm1*cgm1u-h1m1og*s2v*cu;
+ nomvx = -sqrt2og*s2v*cgm1u+2.0*h1m1og*c2v*cu;
+ nomvy = -sqrt2og*s2v*sgm1u-2.0*h1m1og*c2v*su;
+ den = 1.0/(1.0-0.5*M_SQRT2*d*s2v*sgu);
+ den2 = den*den;
+ denu = 0.5*M_SQRT2*d*g*cgu*s2v;
+ denv = M_SQRT2*d*sgu*c2v;
+ xx[0] = nomx*den;
+ xx[1] = nomy*den;
+ xx[2] = cv2*den-oz;
+ /* Avoid degenerate tangential plane basis vectors. */
+ if (0.5*M_PI-fabs(v) < FLT_EPSILON)
+ {
+ if (0.5*M_PI-v < FLT_EPSILON)
+ v = 0.5*M_PI-FLT_EPSILON;
+ else
+ v = -0.5*M_PI+FLT_EPSILON;
+ cv = cos(v);
+ c2v = cos(2.0*v);
+ s2v = sin(2.0*v);
+ cv2 = cv*cv;
+ nomx = sqrt2og*cv2*cgm1u+h1m1og*s2v*cu;
+ nomy = sqrt2og*cv2*sgm1u-h1m1og*s2v*su;
+ nomux = -sqrt2og*cv2*gm1*sgm1u-h1m1og*s2v*su;
+ nomuy = sqrt2og*cv2*gm1*cgm1u-h1m1og*s2v*cu;
+ nomvx = -sqrt2og*s2v*cgm1u+2.0*h1m1og*c2v*cu;
+ nomvy = -sqrt2og*s2v*sgm1u-2.0*h1m1og*c2v*su;
+ den = 1.0/(1.0-0.5*M_SQRT2*d*s2v*sgu);
+ den2 = den*den;
+ denu = 0.5*M_SQRT2*d*g*cgu*s2v;
+ denv = M_SQRT2*d*sgu*c2v;
+ }
+ xxu[0] = nomux*den+nomx*denu*den2;
+ xxu[1] = nomuy*den+nomy*denu*den2;
+ xxu[2] = cv2*denu*den2;
+ xxv[0] = nomvx*den+nomx*denv*den2;
+ xxv[1] = nomvy*den+nomy*denv*den2;
+ xxv[2] = -s2v*den+cv2*denv*den2;
+ for (l=0; l<3; l++)
+ {
+ r = 0.0;
+ s = 0.0;
+ t = 0.0;
+ for (m=0; m<3; m++)
+ {
+ r += mat[l][m]*xx[m];
+ s += mat[l][m]*xxu[m];
+ t += mat[l][m]*xxv[m];
+ }
+ p[l] = r*radius+pp->offset3d[l];
+ pu[l] = s*radius;
+ pv[l] = t*radius;
+ }
+ n[0] = pu[1]*pv[2]-pu[2]*pv[1];
+ n[1] = pu[2]*pv[0]-pu[0]*pv[2];
+ n[2] = pu[0]*pv[1]-pu[1]*pv[0];
+ t = 1.0/sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);
+ n[0] *= t;
+ n[1] *= t;
+ n[2] *= t;
+ pp->pp[3*o+0] = p[0];
+ pp->pp[3*o+1] = p[1];
+ pp->pp[3*o+2] = p[2];
+ pp->pn[3*o+0] = n[0];
+ pp->pn[3*o+1] = n[1];
+ pp->pn[3*o+2] = n[2];
+ }
+ }
+ }
+
+ if (pp->appearance != APPEARANCE_DIRECTION_BANDS)
+ {
+ for (i=0; i<numv; i++)
+ {
+ if (pp->appearance == APPEARANCE_DISTANCE_BANDS &&
+ ((i & (NUMB-1)) >= NUMB/4) && ((i & (NUMB-1)) < 3*NUMB/4))
+ continue;
+ if (pp->display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=numu; j++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = (i+k);
+ m = j;
+ o = l*(numu+1)+m;
+ glTexCoord2fv(&pp->tex[2*o]);
+ if (pp->colors != COLORS_TWOSIDED)
+ {
+ glColor3fv(&pp->col[4*o]);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,
+ &pp->col[4*o]);
+ }
+ glNormal3fv(&pp->pn[3*o]);
+ glVertex3fv(&pp->pp[3*o]);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ }
+ else /* pp->appearance == APPEARANCE_DIRECTION_BANDS */
+ {
+ for (j=0; j<numu; j++)
+ {
+ if ((j & (NUMB-1)) >= NUMB/2)
+ continue;
+ if (pp->display_mode == DISP_WIREFRAME)
+ glBegin(GL_QUAD_STRIP);
+ else
+ glBegin(GL_TRIANGLE_STRIP);
+ for (i=0; i<=numv; i++)
+ {
+ for (k=0; k<=1; k++)
+ {
+ l = i;
+ m = (j+k);
+ o = l*(numu+1)+m;
+ glTexCoord2fv(&pp->tex[2*o]);
+ if (pp->colors != COLORS_TWOSIDED)
+ {
+ glColor3fv(&pp->col[4*o]);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,
+ &pp->col[4*o]);
+ }
+ glNormal3fv(&pp->pn[3*o]);
+ glVertex3fv(&pp->pp[3*o]);
+ polys++;
+ }
+ }
+ glEnd();
+ }
+ }
+
+ polys /= 2;
+ return polys;
+}
+
+
+/* Generate a texture image that shows the orientation reversal. */
+static void gen_texture(ModeInfo *mi)
+{
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ glGenTextures(1,&pp->tex_name);
+ glBindTexture(GL_TEXTURE_2D,pp->tex_name);
+ glPixelStorei(GL_UNPACK_ALIGNMENT,1);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
+ glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,TEX_DIMENSION,TEX_DIMENSION,0,
+ GL_LUMINANCE,GL_UNSIGNED_BYTE,texture);
+}
+
+
+static void init(ModeInfo *mi)
+{
+ static const GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
+ static const GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
+ static const GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ if (deform_speed == 0.0)
+ deform_speed = 10.0;
+
+ if (init_deform < 0.0)
+ init_deform = 0.0;
+ if (init_deform > 1000.0)
+ init_deform = 1000.0;
+
+ if (walk_speed == 0.0)
+ walk_speed = 20.0;
+
+ if (pp->view == VIEW_TURN)
+ {
+ pp->alpha = frand(360.0);
+ pp->beta = frand(360.0);
+ pp->delta = frand(360.0);
+ }
+ else
+ {
+ pp->alpha = 0.0;
+ pp->beta = 0.0;
+ pp->delta = 0.0;
+ }
+ pp->umove = frand(2.0*M_PI);
+ pp->vmove = frand(2.0*M_PI);
+ pp->dumove = 0.0;
+ pp->dvmove = 0.0;
+ pp->side = 1;
+ if (sin(walk_direction*M_PI/180.0) >= 0.0)
+ pp->dir = 1;
+ else
+ pp->dir = -1;
+
+ pp->dd = init_deform*0.001;
+ pp->defdir = -1;
+
+ pp->offset3d[0] = 0.0;
+ pp->offset3d[1] = 0.0;
+ pp->offset3d[2] = -1.8;
+
+ gen_texture(mi);
+ setup_roman_boy_color_texture(mi,0.0,2.0*M_PI,0.0,2.0*M_PI,pp->g*NUMU,NUMV);
+
+ if (pp->marks)
+ glEnable(GL_TEXTURE_2D);
+ else
+ glDisable(GL_TEXTURE_2D);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (pp->projection == DISP_PERSPECTIVE || pp->view == VIEW_WALK)
+ {
+ if (pp->view == VIEW_WALK)
+ gluPerspective(60.0,1.0,0.01,10.0);
+ else
+ gluPerspective(60.0,1.0,0.1,10.0);
+ }
+ else
+ {
+ glOrtho(-1.0,1.0,-1.0,1.0,0.1,10.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ if (pp->display_mode == DISP_WIREFRAME)
+ pp->display_mode = DISP_SURFACE;
+# endif
+
+ if (pp->display_mode == DISP_SURFACE)
+ {
+ glEnable(GL_DEPTH_TEST);
+ glDepthFunc(GL_LESS);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_TRUE);
+ glDisable(GL_BLEND);
+ }
+ else if (pp->display_mode == DISP_TRANSPARENT)
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_SMOOTH);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
+ glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
+ glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
+ glLightfv(GL_LIGHT0,GL_POSITION,light_position);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
+ glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50.0);
+ glDepthMask(GL_FALSE);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ }
+ else /* pp->display_mode == DISP_WIREFRAME */
+ {
+ glDisable(GL_DEPTH_TEST);
+ glShadeModel(GL_FLAT);
+ glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_LIGHT0);
+ glDisable(GL_BLEND);
+ }
+}
+
+
+/* Redisplay the Klein bottle. */
+static void display_romanboy(ModeInfo *mi)
+{
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ if (!pp->button_pressed)
+ {
+ if (deform)
+ {
+ pp->dd += pp->defdir*deform_speed*0.001;
+ if (pp->dd < 0.0)
+ {
+ pp->dd = -pp->dd;
+ pp->defdir = -pp->defdir;
+ }
+ if (pp->dd > 1.0)
+ {
+ pp->dd = 2.0-pp->dd;
+ pp->defdir = -pp->defdir;
+ }
+ }
+ if (pp->view == VIEW_TURN)
+ {
+ pp->alpha += speed_x * pp->speed_scale;
+ if (pp->alpha >= 360.0)
+ pp->alpha -= 360.0;
+ pp->beta += speed_y * pp->speed_scale;
+ if (pp->beta >= 360.0)
+ pp->beta -= 360.0;
+ pp->delta += speed_z * pp->speed_scale;
+ if (pp->delta >= 360.0)
+ pp->delta -= 360.0;
+ }
+ if (pp->view == VIEW_WALK)
+ {
+ pp->dvmove = (pp->dir*sin(walk_direction*M_PI/180.0)*
+ walk_speed*M_PI/4096.0);
+ pp->vmove += pp->dvmove;
+ if (pp->vmove > 2.0*M_PI)
+ {
+ pp->vmove = 4.0*M_PI-pp->vmove;
+ pp->umove = pp->umove-M_PI;
+ if (pp->umove < 0.0)
+ pp->umove += 2.0*M_PI;
+ pp->side = -pp->side;
+ pp->dir = -pp->dir;
+ pp->dvmove = -pp->dvmove;
+ }
+ if (pp->vmove < 0.0)
+ {
+ pp->vmove = -pp->vmove;
+ pp->umove = pp->umove-M_PI;
+ if (pp->umove < 0.0)
+ pp->umove += 2.0*M_PI;
+ pp->dir = -pp->dir;
+ pp->dvmove = -pp->dvmove;
+ }
+ pp->dumove = cos(walk_direction*M_PI/180.0)*walk_speed*M_PI/4096.0;
+ pp->umove += pp->dumove;
+ if (pp->umove >= 2.0*M_PI)
+ pp->umove -= 2.0*M_PI;
+ if (pp->umove < 0.0)
+ pp->umove += 2.0*M_PI;
+ }
+ }
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ if (pp->projection == DISP_PERSPECTIVE || pp->view == VIEW_WALK)
+ {
+ if (pp->view == VIEW_WALK)
+ gluPerspective(60.0,pp->aspect,0.01,10.0);
+ else
+ gluPerspective(60.0,pp->aspect,0.1,10.0);
+ }
+ else
+ {
+ if (pp->aspect >= 1.0)
+ glOrtho(-pp->aspect,pp->aspect,-1.0,1.0,0.1,10.0);
+ else
+ glOrtho(-1.0,1.0,-1.0/pp->aspect,1.0/pp->aspect,0.1,10.0);
+ }
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ mi->polygon_count = roman_boy(mi,0.0,2.0*M_PI,0.0,2.0*M_PI,pp->g*NUMU,NUMV);
+}
+
+
+ENTRYPOINT void reshape_romanboy(ModeInfo *mi, int width, int height)
+{
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ }
+
+ pp->WindW = (GLint)width;
+ pp->WindH = (GLint)height;
+ glViewport(0,y,width,height);
+ pp->aspect = (GLfloat)width/(GLfloat)height;
+}
+
+
+ENTRYPOINT Bool romanboy_handle_event(ModeInfo *mi, XEvent *event)
+{
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress && event->xbutton.button == Button1)
+ {
+ pp->button_pressed = True;
+ gltrackball_start(pp->trackball, event->xbutton.x, event->xbutton.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease &&
+ event->xbutton.button == Button1)
+ {
+ pp->button_pressed = False;
+ return True;
+ }
+ else if (event->xany.type == MotionNotify && pp->button_pressed)
+ {
+ gltrackball_track(pp->trackball, event->xmotion.x, event->xmotion.y,
+ MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+
+ return False;
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize romanboy. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void init_romanboy(ModeInfo *mi)
+{
+ romanboystruct *pp;
+
+ MI_INIT (mi, romanboy);
+ pp = &romanboy[MI_SCREEN(mi)];
+
+ if (surface_order < 2)
+ pp->g = 2;
+ else if (surface_order > 9)
+ pp->g = 9;
+ else
+ pp->g = surface_order;
+
+ pp->pp = calloc(3*pp->g*(NUMU+1)*(NUMV+1),sizeof(float));
+ pp->pn = calloc(3*pp->g*(NUMU+1)*(NUMV+1),sizeof(float));
+ pp->col = calloc(4*pp->g*(NUMU+1)*(NUMV+1),sizeof(float));
+ pp->tex = calloc(2*pp->g*(NUMU+1)*(NUMV+1),sizeof(float));
+
+ pp->trackball = gltrackball_init(True);
+ pp->button_pressed = False;
+
+ /* Set the display mode. */
+ if (!strcasecmp(mode,"random"))
+ {
+ pp->display_mode = random() % NUM_DISPLAY_MODES;
+ }
+ else if (!strcasecmp(mode,"wireframe"))
+ {
+ pp->display_mode = DISP_WIREFRAME;
+ }
+ else if (!strcasecmp(mode,"surface"))
+ {
+ pp->display_mode = DISP_SURFACE;
+ }
+ else if (!strcasecmp(mode,"transparent"))
+ {
+ pp->display_mode = DISP_TRANSPARENT;
+ }
+ else
+ {
+ pp->display_mode = random() % NUM_DISPLAY_MODES;
+ }
+
+ pp->marks = marks;
+
+ /* Orientation marks don't make sense in wireframe mode. */
+ if (pp->display_mode == DISP_WIREFRAME)
+ pp->marks = False;
+
+ /* Set the appearance. */
+ if (!strcasecmp(appear,"random"))
+ {
+ pp->appearance = random() % NUM_APPEARANCES;
+ }
+ else if (!strcasecmp(appear,"solid"))
+ {
+ pp->appearance = APPEARANCE_SOLID;
+ }
+ else if (!strcasecmp(appear,"distance-bands"))
+ {
+ pp->appearance = APPEARANCE_DISTANCE_BANDS;
+ }
+ else if (!strcasecmp(appear,"direction-bands"))
+ {
+ pp->appearance = APPEARANCE_DIRECTION_BANDS;
+ }
+ else
+ {
+ pp->appearance = random() % NUM_APPEARANCES;
+ }
+
+ /* Set the color mode. */
+ if (!strcasecmp(color_mode,"random"))
+ {
+ pp->colors = random() % NUM_COLORS;
+ }
+ else if (!strcasecmp(color_mode,"two-sided"))
+ {
+ pp->colors = COLORS_TWOSIDED;
+ }
+ else if (!strcasecmp(color_mode,"distance"))
+ {
+ pp->colors = COLORS_DISTANCE;
+ }
+ else if (!strcasecmp(color_mode,"direction"))
+ {
+ pp->colors = COLORS_DIRECTION;
+ }
+ else
+ {
+ pp->colors = random() % NUM_COLORS;
+ }
+
+ /* Set the view mode. */
+ if (!strcasecmp(view_mode,"random"))
+ {
+ pp->view = random() % NUM_VIEW_MODES;
+ }
+ else if (!strcasecmp(view_mode,"walk"))
+ {
+ pp->view = VIEW_WALK;
+ }
+ else if (!strcasecmp(view_mode,"turn"))
+ {
+ pp->view = VIEW_TURN;
+ }
+ else
+ {
+ pp->view = random() % NUM_VIEW_MODES;
+ }
+
+ /* Set the 3d projection mode. */
+ if (!strcasecmp(proj,"random"))
+ {
+ /* Orthographic projection only makes sense in turn mode. */
+ if (pp->view == VIEW_TURN)
+ pp->projection = random() % NUM_DISP_MODES;
+ else
+ pp->projection = DISP_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj,"perspective"))
+ {
+ pp->projection = DISP_PERSPECTIVE;
+ }
+ else if (!strcasecmp(proj,"orthographic"))
+ {
+ pp->projection = DISP_ORTHOGRAPHIC;
+ }
+ else
+ {
+ /* Orthographic projection only makes sense in turn mode. */
+ if (pp->view == VIEW_TURN)
+ pp->projection = random() % NUM_DISP_MODES;
+ else
+ pp->projection = DISP_PERSPECTIVE;
+ }
+
+ /* make multiple screens rotate at slightly different rates. */
+ pp->speed_scale = 0.9 + frand(0.3);
+
+ if ((pp->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_romanboy(mi,MI_WIDTH(mi),MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ init(mi);
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void draw_romanboy(ModeInfo *mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ romanboystruct *pp;
+
+ if (romanboy == NULL)
+ return;
+ pp = &romanboy[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+ if (!pp->glx_context)
+ return;
+
+ glXMakeCurrent(display,window,*(pp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ display_romanboy(mi);
+
+ if (MI_IS_FPS(mi))
+ do_fps (mi);
+
+ glFlush();
+
+ glXSwapBuffers(display,window);
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ * The display is being taken away from us. Free up malloc'ed
+ * memory and X resources that we've alloc'ed.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void free_romanboy(ModeInfo *mi)
+{
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ if (pp->pp)
+ (void) free((void *)pp->pp);
+ if (pp->pn)
+ (void) free((void *)pp->pn);
+ if (pp->col)
+ (void) free((void *)pp->col);
+ if (pp->tex)
+ (void) free((void *)pp->tex);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void change_romanboy(ModeInfo *mi)
+{
+ romanboystruct *pp = &romanboy[MI_SCREEN(mi)];
+
+ if (!pp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi),MI_WINDOW(mi),*(pp->glx_context));
+ init(mi);
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("RomanBoy", romanboy)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/romanboy.man b/hacks/glx/romanboy.man
new file mode 100644
index 0000000..2957a0e
--- /dev/null
+++ b/hacks/glx/romanboy.man
@@ -0,0 +1,390 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+romanboy - Draws a 3d immersion of the real projective plane that
+smoothly deforms between the Roman surface and the Boy surface.
+.SH SYNOPSIS
+.B romanboy
+[\-display \fIhost:display.screen\fP]
+[\-install]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fIusecs\fP]
+[\-fps]
+[\-mode \fIdisplay-mode\fP]
+[\-wireframe]
+[\-surface]
+[\-transparent]
+[\-appearance \fIappearance\fP]
+[\-solid]
+[\-distance-bands]
+[\-direction-bands]
+[\-colors \fIcolor-scheme\fP]
+[\-twosided-colors]
+[\-distance-colors]
+[\-direction-colors]
+[\-view-mode \fIview-mode\fP]
+[\-walk]
+[\-turn]
+[\-no-deform]
+[\-deformation-speed \fIfloat\fP]
+[\-initial-deformation \fIfloat\fP]
+[\-roman]
+[\-boy]
+[\-surface-order \fInumber\fP]
+[\-orientation-marks]
+[\-projection \fImode\fP]
+[\-perspective]
+[\-orthographic]
+[\-speed-x \fIfloat\fP]
+[\-speed-y \fIfloat\fP]
+[\-speed-z \fIfloat\fP]
+[\-walk-direction \fIfloat\fP]
+[\-walk-speed \fIfloat\fP]
+.SH DESCRIPTION
+The \fIromanboy\fP program shows a 3d immersion of the real projective
+plane that smoothly deforms between the Roman surface and the Boy
+surface. You can walk on the projective plane or turn in 3d. The
+smooth deformation (homotopy) between these two famous immersions of
+the real projective plane was constructed by Franois Apry.
+.PP
+The real projective plane is a non-orientable surface. To make this
+apparent, the two-sided color mode can be used. Alternatively,
+orientation markers (curling arrows) can be drawn as a texture map on
+the surface of the projective plane. While walking on the projective
+plane, you will notice that the orientation of the curling arrows
+changes (which it must because the projective plane is
+non-orientable).
+.PP
+The real projective plane is a model for the projective geometry in 2d
+space. One point can be singled out as the origin. A line can be
+singled out as the line at infinity, i.e., a line that lies at an
+infinite distance to the origin. The line at infinity is
+topologically a circle. Points on the line at infinity are also used
+to model directions in projective geometry. The origin can be
+visualized in different manners. When using distance colors, the
+origin is the point that is displayed as fully saturated red, which is
+easier to see as the center of the reddish area on the projective
+plane. Alternatively, when using distance bands, the origin is the
+center of the only band that projects to a disk. When using direction
+bands, the origin is the point where all direction bands collapse to a
+point. Finally, when orientation markers are being displayed, the
+origin the the point where all orientation markers are compressed to a
+point. The line at infinity can also be visualized in different ways.
+When using distance colors, the line at infinity is the line that is
+displayed as fully saturated magenta. When two-sided colors are used,
+the line at infinity lies at the points where the red and green
+"sides" of the projective plane meet (of course, the real projective
+plane only has one side, so this is a design choice of the
+visualization). Alternatively, when orientation markers are being
+displayed, the line at infinity is the place where the orientation
+markers change their orientation.
+.PP
+Note that when the projective plane is displayed with bands, the
+orientation markers are placed in the middle of the bands. For
+distance bands, the bands are chosen in such a way that the band at
+the origin is only half as wide as the remaining bands, which results
+in a disk being displayed at the origin that has the same diameter as
+the remaining bands. This choice, however, also implies that the band
+at infinity is half as wide as the other bands. Since the projective
+plane is attached to itself (in a complicated fashion) at the line at
+infinity, effectively the band at infinity is again as wide as the
+remaining bands. However, since the orientation markers are displayed
+in the middle of the bands, this means that only one half of the
+orientation markers will be displayed twice at the line at infinity if
+distance bands are used. If direction bands are used or if the
+projective plane is displayed as a solid surface, the orientation
+markers are displayed fully at the respective sides of the line at
+infinity.
+.PP
+The immersed projective plane can be projected to the screen either
+perspectively or orthographically. When using the walking modes,
+perspective projection to the screen will be used.
+.PP
+There are three display modes for the projective plane: mesh
+(wireframe), solid, or transparent. Furthermore, the appearance of
+the projective plane can be as a solid object or as a set of
+see-through bands. The bands can be distance bands, i.e., bands that
+lie at increasing distances from the origin, or direction bands, i.e.,
+bands that lie at increasing angles with respect to the origin.
+.PP
+When the projective plane is displayed with direction bands, you will
+be able to see that each direction band (modulo the "pinching" at the
+origin) is a Moebius strip, which also shows that the projective plane
+is non-orientable.
+.PP
+Finally, the colors with with the projective plane is drawn can be set
+to two-sided, distance, or direction. In two-sided mode, the
+projective plane is drawn with red on one "side" and green on the
+"other side". As described above, the projective plane only has one
+side, so the color jumps from red to green along the line at infinity.
+This mode enables you to see that the projective plane is
+non-orientable. In distance mode, the projective plane is displayed
+with fully saturated colors that depend on the distance of the points
+on the projective plane to the origin. The origin is displayed in
+red, the line at infinity is displayed in magenta. If the projective
+plane is displayed as distance bands, each band will be displayed with
+a different color. In direction mode, the projective plane is
+displayed with fully saturated colors that depend on the angle of the
+points on the projective plane with respect to the origin. Angles in
+opposite directions to the origin (e.g., 15 and 205 degrees) are
+displayed in the same color since they are projectively equivalent.
+If the projective plane is displayed as direction bands, each band
+will be displayed with a different color.
+.PP
+The rotation speed for each of the three coordinate axes around which
+the projective plane rotates can be chosen.
+.PP
+Furthermore, in the walking mode the walking direction in the 2d base
+square of the projective plane and the walking speed can be chosen.
+The walking direction is measured as an angle in degrees in the 2d
+square that forms the coordinate system of the surface of the
+projective plane. A value of 0 or 180 means that the walk is along a
+circle at a randomly chosen distance from the origin (parallel to a
+distance band). A value of 90 or 270 means that the walk is directly
+from the origin to the line at infinity and back (analogous to a
+direction band). Any other value results in a curved path from the
+origin to the line at infinity and back.
+.PP
+By default, the immersion of the real projective plane smoothly
+deforms between the Roman and Boy surfaces. It is possible to choose
+the speed of the deformation. Furthermore, it is possible to switch
+the deformation off. It is also possible to determine the initial
+deformation of the immersion. This is mostly useful if the
+deformation is switched off, in which case it will determine the
+appearance of the surface.
+.PP
+As a final option, it is possible to display generalized versions of
+the immersion discussed above by specifying the order of the surface.
+The default surface order of 3 results in the immersion of the real
+projective described above. The surface order can be chosen between 2
+and 9. Odd surface orders result in generalized immersions of the
+real projective plane, while even numbers result in a immersion of a
+topological sphere (which is orientable). The most interesting even
+case is a surface order of 2, which results in an immersion of the
+halfway model of Morin's sphere eversion (if the deformation is
+switched off).
+.PP
+This program is inspired by Franois Apry's book "Models of the Real
+Projective Plane", Vieweg, 1987.
+.SH OPTIONS
+.I romanboy
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class, or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How much of a delay should be introduced between steps of the
+animation. Default 10000, or 1/100th second.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.PP
+The following four options are mutually exclusive. They determine how
+the projective plane is displayed.
+.TP 8
+.B \-mode random
+Display the projective plane in a random display mode (default).
+.TP 8
+.B \-mode wireframe \fP(Shortcut: \fB\-wireframe\fP)
+Display the projective plane as a wireframe mesh.
+.TP 8
+.B \-mode surface \fP(Shortcut: \fB\-surface\fP)
+Display the projective plane as a solid surface.
+.TP 8
+.B \-mode transparent \fP(Shortcut: \fB\-transparent\fP)
+Display the projective plane as a transparent surface.
+.PP
+The following four options are mutually exclusive. They determine the
+appearance of the projective plane.
+.TP 8
+.B \-appearance random
+Display the projective plane with a random appearance (default).
+.TP 8
+.B \-appearance solid \fP(Shortcut: \fB\-solid\fP)
+Display the projective plane as a solid object.
+.TP 8
+.B \-appearance distance-bands \fP(Shortcut: \fB\-distance-bands\fP)
+Display the projective plane as see-through bands that lie at
+increasing distances from the origin.
+.PP
+.TP 8
+.B \-appearance direction-bands \fP(Shortcut: \fB\-direction-bands\fP)
+Display the projective plane as see-through bands that lie at
+increasing angles with respect to the origin.
+.PP
+The following four options are mutually exclusive. They determine how
+to color the projective plane.
+.TP 8
+.B \-colors random
+Display the projective plane with a random color scheme (default).
+.TP 8
+.B \-colors twosided \fP(Shortcut: \fB\-twosided-colors\fP)
+Display the projective plane with two colors: red on one "side" and
+green on the "other side." Note that the line at infinity lies at the
+points where the red and green "sides" of the projective plane meet,
+i.e., where the orientation of the projective plane reverses.
+.TP 8
+.B \-colors distance \fP(Shortcut: \fB\-distance-colors\fP)
+Display the projective plane with fully saturated colors that depend
+on the distance of the points on the projective plane to the origin.
+The origin is displayed in red, the line at infinity is displayed in
+magenta. If the projective plane is displayed as distance bands, each
+band will be displayed with a different color.
+.TP 8
+.B \-colors direction \fP(Shortcut: \fB\-direction-colors\fP)
+Display the projective plane with fully saturated colors that depend
+on the angle of the points on the projective plane with respect to the
+origin. Angles in opposite directions to the origin (e.g., 15 and 205
+degrees) are displayed in the same color since they are projectively
+equivalent. If the projective plane is displayed as direction bands,
+each band will be displayed with a different color.
+.PP
+The following three options are mutually exclusive. They determine
+how to view the projective plane.
+.TP 8
+.B \-view-mode random
+View the projective plane in a random view mode (default).
+.TP 8
+.B \-view-mode turn \fP(Shortcut: \fB\-turn\fP)
+View the projective plane while it turns in 3d.
+.TP 8
+.B \-view-mode walk \fP(Shortcut: \fB\-walk\fP)
+View the projective plane as if walking on its surface.
+.PP
+The following options determine whether the surface is being deformed.
+.TP 8
+.B \-deform
+Deform the surface smoothly between the Roman and Boy surfaces
+(default).
+.TP 8
+.B \-no-deform
+Don't deform the surface.
+.PP
+The following option determines the deformation speed.
+.TP 8
+.B \-deformation-speed \fIfloat\fP
+The deformation speed is measured in percent of some sensible maximum
+speed (default: 10.0).
+.PP
+The following options determine the initial deformation of the
+surface. As described above, this is mostly useful if
+\fB\-no-deform\fP is specified.
+.TP 8
+.B \-initial-deformation \fIfloat\fP
+The initial deformation is specified as a number between 0 and 1000.
+A value of 0 corresponds to the Roman surface, while a value of 1000
+corresponds to the Boy surface. The default value is 1000.
+.TP 8
+.B \-roman
+This is a shortcut for \fB\-initial-deformation 0\fP.
+.TP 8
+.B \-boy
+This is a shortcut for \fB\-initial-deformation 1000\fP.
+.PP
+The following option determines the order of the surface to be
+displayed.
+.TP 8
+.B \-surface-order \fInumber\fP
+The surface order can be set to values between 2 and 9 (default: 3).
+As described above, odd surface orders result in generalized
+immersions of the real projective plane, while even numbers result in
+a immersion of a topological sphere.
+.PP
+The following options determine whether orientation marks are shown on
+the projective plane.
+.TP 8
+.B \-orientation-marks
+Display orientation marks on the projective plane.
+.TP 8
+.B \-no-orientation-marks
+Don't display orientation marks on the projective plane (default).
+.PP
+The following three options are mutually exclusive. They determine
+how the projective plane is projected from 3d to 2d (i.e., to the
+screen).
+.TP 8
+.B \-projection random
+Project the projective plane from 3d to 2d using a random projection
+mode (default).
+.TP 8
+.B \-projection perspective \fP(Shortcut: \fB\-perspective\fP)
+Project the projective plane from 3d to 2d using a perspective
+projection.
+.TP 8
+.B \-projection orthographic \fP(Shortcut: \fB\-orthographic\fP)
+Project the projective plane from 3d to 2d using an orthographic
+projection.
+.PP
+The following three options determine the rotation speed of the
+projective plane around the three possible axes. The rotation speed
+is measured in degrees per frame. The speeds should be set to
+relatively small values, e.g., less than 4 in magnitude. In walk
+mode, all speeds are ignored.
+.TP 8
+.B \-speed-x \fIfloat\fP
+Rotation speed around the x axis (default: 1.1).
+.TP 8
+.B \-speed-y \fIfloat\fP
+Rotation speed around the y axis (default: 1.3).
+.TP 8
+.B \-speed-z \fIfloat\fP
+Rotation speed around the z axis (default: 1.5).
+.PP
+The following two options determine the walking speed and direction.
+.TP 8
+.B \-walk-direction \fIfloat\fP
+The walking direction is measured as an angle in degrees in the 2d
+square that forms the coordinate system of the surface of the
+projective plane (default: 83.0). A value of 0 or 180 means that the
+walk is along a circle at a randomly chosen distance from the origin
+(parallel to a distance band). A value of 90 or 270 means that the
+walk is directly from the origin to the line at infinity and back
+(analogous to a direction band). Any other value results in a curved
+path from the origin to the line at infinity and back.
+.TP 8
+.B \-walk-speed \fIfloat\fP
+The walking speed is measured in percent of some sensible maximum
+speed (default: 20.0).
+.SH INTERACTION
+If you run this program in standalone mode in its turn mode, you can
+rotate the projective plane by dragging the mouse while pressing the
+left mouse button. This rotates the projective plane in 3d. To
+examine the projective plane at your leisure, it is best to set all
+speeds to 0. Otherwise, the projective plane will rotate while the
+left mouse button is not pressed. This kind of interaction is not
+available in the walk mode.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2013-2014 by Carsten Steger. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Carsten Steger <carsten@mirsanmir.org>, 03-oct-2014.
diff --git a/hacks/glx/rotator.c b/hacks/glx/rotator.c
new file mode 100644
index 0000000..ab05130
--- /dev/null
+++ b/hacks/glx/rotator.c
@@ -0,0 +1,274 @@
+/* xscreensaver, Copyright (c) 1998-2016 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#include <math.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "rotator.h"
+#include "yarandom.h"
+
+struct rotator {
+
+ double spin_x_speed, spin_y_speed, spin_z_speed; /* scaling factors >= 0. */
+ double wander_speed;
+
+ double rotx, roty, rotz; /* current object rotation, -1 to +1.
+ Sign indicates direction of motion.
+ 0.25 means +90 deg, positive velocity.
+ -0.25 means +90 deg, negative velocity
+ (not +270 deg or -90 deg!)
+ Yes, this is stupid.
+ */
+ double dx, dy, dz; /* current rotational velocity, >= 0. */
+ double ddx, ddy, ddz; /* current rotational acceleration, +/-. */
+ double d_max; /* max rotational velocity, > 0. */
+
+ int wander_frame; /* position in the wander cycle, >= 0. */
+};
+
+
+#undef ABS
+#define ABS(x) ((x)<0?-(x):(x))
+
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+/* Stay in the range [0-1).
+ 1.01 => 0.01.
+ -0.01 => 0.99
+ */
+#define CLAMP(i) do { \
+ while ((i) < 0) (i)++; \
+ while ((i) >= 1) (i)--; \
+ } while (0)
+
+#undef EPSILON
+#define EPSILON 0.000001
+
+
+static void
+rotate_1 (double *pos, double *v, double *dv, double speed, double max_v)
+{
+ /* Sign of *pos is direction of motion.
+ Sign of *v is always positive.
+ It would make way more sense for *v to indicate direction of motion.
+ What was I thinking?
+ */
+
+ double ppos = *pos;
+
+ if (speed == 0) return;
+
+ /* tick position */
+ if (ppos < 0)
+ /* Ignore but preserve the sign on ppos. It's kind of like:
+ ppos = old_sign * (abs(ppos) + (v * old_sign))
+ This is why it would make more sense for that sign bit to be on v.
+ */
+ ppos = -(ppos + *v);
+ else
+ ppos += *v;
+
+ CLAMP (ppos);
+ *pos = (*pos > 0 ? ppos : -ppos); /* preserve old sign bit on pos. */
+
+ /* accelerate */
+ *v += *dv;
+
+ /* clamp velocity */
+ if (*v > max_v || *v < -max_v)
+ {
+ *dv = -*dv;
+ }
+ /* If it stops, start it going in the other direction. */
+ /* Since *v is always positive, <= 0 means stopped. */
+ else if (*v < 0)
+ {
+ if (random() % 4)
+ {
+ *v = 0; /* don't let velocity be negative */
+
+ if (random() % 2) /* stay stopped, and kill acceleration */
+ *dv = 0;
+ else if (*dv < 0) /* was decelerating, accelerate instead */
+ *dv = -*dv;
+ }
+ else
+ {
+ *v = -*v; /* switch to tiny positive velocity, or zero */
+ *dv = -*dv; /* toggle acceleration */
+ *pos = -*pos; /* reverse direction of motion */
+ }
+ }
+
+ /* Alter direction of rotational acceleration randomly. */
+ if (! (random() % 120))
+ *dv = -*dv;
+
+ /* Change acceleration very occasionally. */
+ if (! (random() % 200))
+ {
+#if 0 /* this might make more sense: */
+ if (*dv > -EPSILON && *dv < EPSILON)
+ *dv += 10 * (*dv < 0 ? -EPSILON : EPSILON);
+#else
+ if (*dv == 0)
+ *dv = 0.00001;
+#endif
+ else if (random() & 1)
+ *dv *= 1.2;
+ else
+ *dv *= 0.8;
+ }
+}
+
+
+/* Returns a rotator object, which encapsulates rotation and motion state.
+
+ spin_[xyz]_speed indicates the relative speed of rotation.
+ Specify 0 if you don't want any rotation around that axis.
+
+ spin_accel specifies a scaling factor for the acceleration that is
+ randomly applied to spin: if you want the speed to change faster,
+ make this > 1.
+
+ wander_speed indicates the relative speed through space.
+
+ If randomize_initial_state_p is true, then the initial position and
+ rotation will be randomized (even if the spin speeds are 0.) If it
+ is false, then all values will be initially zeroed.
+ */
+rotator *
+make_rotator (double spin_x_speed,
+ double spin_y_speed,
+ double spin_z_speed,
+ double spin_accel,
+ double wander_speed,
+ int randomize_initial_state_p)
+{
+ rotator *r = (rotator *) calloc (1, sizeof(*r));
+ double d, dd;
+
+ if (!r) return 0;
+
+ if (spin_x_speed < 0 || spin_y_speed < 0 || spin_z_speed < 0 ||
+ wander_speed < 0)
+ abort();
+
+ r->spin_x_speed = spin_x_speed;
+ r->spin_y_speed = spin_y_speed;
+ r->spin_z_speed = spin_z_speed;
+ r->wander_speed = wander_speed;
+
+ if (randomize_initial_state_p)
+ {
+ /* Sign on position is direction of travel. Stripped before returned. */
+ r->rotx = frand(1.0) * RANDSIGN();
+ r->roty = frand(1.0) * RANDSIGN();
+ r->rotz = frand(1.0) * RANDSIGN();
+
+ r->wander_frame = random() % 0xFFFF;
+ }
+ else
+ {
+ r->rotx = r->roty = r->rotz = 0;
+ r->wander_frame = 0;
+ }
+
+ d = 0.006;
+ dd = 0.00006;
+
+ r->dx = BELLRAND(d * r->spin_x_speed);
+ r->dy = BELLRAND(d * r->spin_y_speed);
+ r->dz = BELLRAND(d * r->spin_z_speed);
+
+ r->d_max = r->dx * 2;
+
+ r->ddx = (dd + frand(dd+dd)) * r->spin_x_speed * spin_accel;
+ r->ddy = (dd + frand(dd+dd)) * r->spin_y_speed * spin_accel;
+ r->ddz = (dd + frand(dd+dd)) * r->spin_z_speed * spin_accel;
+
+# if 0
+ fprintf (stderr, "rotator:\n");
+ fprintf (stderr, " wander: %3d %6.2f\n", r->wander_frame, r->wander_speed);
+ fprintf (stderr, " speed: %6.2f %6.2f %6.2f\n",
+ r->spin_x_speed, r->spin_y_speed, r->spin_z_speed);
+ fprintf (stderr, " rot: %6.2f %6.2f %6.2f\n",
+ r->rotx, r->roty, r->rotz);
+ fprintf (stderr, " d: %6.2f %6.2f %6.2f, %6.2f\n",
+ r->dx, r->dy, r->dz,
+ r->d_max);
+ fprintf (stderr, " dd: %6.2f %6.2f %6.2f\n",
+ r->ddx, r->ddy, r->ddz);
+# endif
+
+ return r;
+}
+
+
+void
+free_rotator (rotator *r)
+{
+ free (r);
+}
+
+void
+get_rotation (rotator *rot, double *x_ret, double *y_ret, double *z_ret,
+ int update_p)
+{
+ double x, y, z;
+
+ if (update_p) {
+ rotate_1 (&rot->rotx, &rot->dx, &rot->ddx, rot->spin_x_speed, rot->d_max);
+ rotate_1 (&rot->roty, &rot->dy, &rot->ddy, rot->spin_y_speed, rot->d_max);
+ rotate_1 (&rot->rotz, &rot->dz, &rot->ddz, rot->spin_z_speed, rot->d_max);
+ }
+
+ x = rot->rotx;
+ y = rot->roty;
+ z = rot->rotz;
+ if (x < 0) x = -x;
+ if (y < 0) y = -y;
+ if (z < 0) z = -z;
+
+ if (x_ret) *x_ret = x;
+ if (y_ret) *y_ret = y;
+ if (z_ret) *z_ret = z;
+}
+
+
+void
+get_position (rotator *rot, double *x_ret, double *y_ret, double *z_ret,
+ int update_p)
+{
+ double x = 0.5, y = 0.5, z = 0.5;
+
+ if (rot->wander_speed != 0)
+ {
+ if (update_p)
+ rot->wander_frame++;
+
+# define SINOID(F) ((1 + sin((rot->wander_frame * (F)) / 2 * M_PI)) / 2.0)
+ x = SINOID (0.71 * rot->wander_speed);
+ y = SINOID (0.53 * rot->wander_speed);
+ z = SINOID (0.37 * rot->wander_speed);
+# undef SINOID
+ }
+
+ if (x_ret) *x_ret = x;
+ if (y_ret) *y_ret = y;
+ if (z_ret) *z_ret = z;
+}
diff --git a/hacks/glx/rotator.h b/hacks/glx/rotator.h
new file mode 100644
index 0000000..b3f36f6
--- /dev/null
+++ b/hacks/glx/rotator.h
@@ -0,0 +1,60 @@
+/* xscreensaver, Copyright (c) 1998-2002 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __ROTATOR_H__
+#define __ROTATOR_H__
+
+typedef struct rotator rotator;
+
+/* Returns a rotator object, which encapsulates rotation and motion state.
+
+ spin_[xyz]_speed indicates the relative speed of rotation.
+ Specify 0 if you don't want any rotation around that axis.
+
+ spin_accel specifies a scaling factor for the acceleration that is
+ randomly applied to spin: if you want the speed to change faster,
+ make this > 1.
+
+ wander_speed indicates the relative speed through space.
+
+ If randomize_initial_state_p is true, then the initial position and
+ rotation will be randomized (even if the spin speeds are 0.) If it
+ is false, then all values will be initially zeroed.
+ */
+extern rotator *make_rotator (double spin_x_speed,
+ double spin_y_speed,
+ double spin_z_speed,
+ double spin_accel,
+ double wander_speed,
+ int randomize_initial_state_p);
+
+/* Rotates one step, and returns the new rotation values.
+ x, y, and z range from 0.0-1.0, the fraction through the circle
+ (*not* radians or degrees!)
+ If `update_p' is non-zero, then (maybe) rotate first.
+ */
+extern void get_rotation (rotator *rot,
+ double *x_ret, double *y_ret, double *z_ret,
+ int update_p);
+
+/* Moves one step, and returns the new position values.
+ x, y, and z range from 0.0-1.0, the fraction through space:
+ scale those values as needed.
+ If `update_p' is non-zero, then (maybe) move first.
+ */
+extern void get_position (rotator *rot,
+ double *x_ret, double *y_ret, double *z_ret,
+ int update_p);
+
+/* Destroys and frees a `rotator' object. */
+extern void free_rotator (rotator *r);
+
+#endif /* __ROTATOR_H__ */
diff --git a/hacks/glx/rubik.c b/hacks/glx/rubik.c
new file mode 100644
index 0000000..ed06645
--- /dev/null
+++ b/hacks/glx/rubik.c
@@ -0,0 +1,2140 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* rubik --- Shows an auto-solving Rubik's cube */
+
+#if 0
+static const char sccsid[] = "@(#)rubik.c 5.01 2001/03/01 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * This mode shows an auto-solving rubik's cube "puzzle". If somebody
+ * intends to make a game or something based on this code, please let me
+ * know first, my e-mail address is provided in this comment. Marcelo.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * Since I'm not a native English speaker, my apologies for any grammatical
+ * mistakes.
+ *
+ * My e-mail address is
+ * mfvianna@centroin.com.br
+ *
+ * Marcelo F. Vianna (Jul-31-1997)
+ *
+ * Revision History:
+ * 05-Apr-2002: Removed all gllist uses (fix some bug with nvidia driver)
+ * 01-Mar-2001: Added FPS stuff - Eric Lassauge <lassauge@mail.dotcom.fr>
+ * 01-Nov-2000: Allocation checks
+ * 27-Apr-1999: LxMxN stuff added.
+ * 26-Sep-1998: Added some more movement (the cube does not stay in the screen
+ * center anymore. Also fixed the scale problem immediately after
+ * shuffling when the puzzle is solved.
+ * 08-Aug-1997: Now has some internals from xrubik by David Bagley
+ * This should make it easier to add features.
+ * 02-Aug-1997: Now behaves more like puzzle.c: first show the cube being
+ * shuffled and then being solved. A mode specific option was
+ * added:
+ * "+/-hideshuffling" to provide the original behavior (in which
+ * only the solution is shown).
+ * The color labels corners are now rounded.
+ * Optimized the cubit() routine using glLists.
+ * 01-Aug-1997: Shuffling now avoids movements that undoes the previous
+ * movement and three consecutive identical moves (which is
+ * pretty stupid).
+ * improved the "cycles" option in replacement of David's hack,
+ * now rp->anglestep is a GLfloat, so this option selects the
+ * "exact" number of frames that a rotation (movement) takes to
+ * complete.
+ * 30-Jul-1997: Initial release, there is no algorithm to solve the puzzle,
+ * instead, it randomly shuffle the cube and then make the
+ * movements in the reverse order.
+ * The mode was written in 1 day (I got sick and had the day off).
+ * There was not much to do since I could not leave home... :)
+ */
+
+/*-
+ * Color labels mapping:
+ * =====================
+ *
+ * +-----------+
+ * |0--> |
+ * || |
+ * |v TOP(0) |
+ * | |
+ * | 8|
+ * +-----------+-----------+-----------+
+ * |0--> |0--> |0--> |
+ * || || || |
+ * |v LEFT(1) |v FRONT(2) |v RIGHT(3) |
+ * | | | |
+ * | 8| 8| 8|
+ * +-----------+-----------+-----------+
+ * |0--> |
+ * || |
+ * |v BOTTOM(4)|
+ * | |
+ * | 8|
+ * +-----------+ +---+---+---+
+ * |0--> | | 0 | 1 | 2 |
+ * || | |--xxxxx(N)-+
+ * |v BACK(5) | | 3 | 4 | 5 |
+ * | | +---+---+---+
+ * | 8| | 6 | 7 | 8 |
+ * +-----------+ +---+---+---+
+ *
+ * Map to 3d
+ * FRONT => X, Y
+ * BACK => X, Y
+ * LEFT => Z, Y
+ * RIGHT => Z, Y
+ * TOP => X, Z
+ * BOTTOM => X, Z
+ */
+
+#ifdef STANDALONE
+# define MODE_rubik
+# define DEFAULTS "*delay: 20000 \n" \
+ "*count: -30 \n" \
+ "*showFPS: False \n" \
+ "*cycles: 20 \n" \
+ "*size: -6 \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_rubik 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+# include "vis.h"
+#endif /* !STANDALONE */
+
+#include "gltrackball.h"
+
+#ifdef MODE_rubik
+
+#define DEF_SIZEX "0"
+#define DEF_SIZEY "0"
+#define DEF_SIZEZ "0"
+#define DEF_HIDESHUFFLING "False"
+
+static int sizex;
+static int sizey;
+static int sizez;
+static Bool hideshuffling;
+
+static XrmOptionDescRec opts[] =
+{
+ {"-sizex", ".rubik.sizex", XrmoptionSepArg, 0},
+ {"-sizey", ".rubik.sizey", XrmoptionSepArg, 0},
+ {"-sizez", ".rubik.sizez", XrmoptionSepArg, 0},
+ {"-hideshuffling", ".rubik.hideshuffling", XrmoptionNoArg, "on"},
+ {"+hideshuffling", ".rubik.hideshuffling", XrmoptionNoArg, "off"}
+};
+
+static argtype vars[] =
+{
+ {&sizex, "sizex", "SizeX", DEF_SIZEX, t_Int},
+ {&sizey, "sizey", "SizeY", DEF_SIZEY, t_Int},
+ {&sizez, "sizez", "SizeZ", DEF_SIZEZ, t_Int},
+ {&hideshuffling, "hideshuffling", "Hideshuffling", DEF_HIDESHUFFLING, t_Bool}
+};
+
+static OptionStruct desc[] =
+{
+ {"-sizex num", "number of cubies along x axis (overrides size)"},
+ {"-sizey num", "number of cubies along y axis (overrides size)"},
+ {"-sizez num", "number of cubies along z axis (overrides size)"},
+ {"-/+hideshuffling", "turn on/off hidden shuffle phase"}
+};
+
+ENTRYPOINT ModeSpecOpt rubik_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+#ifdef USE_MODULES
+ModStruct rubik_description =
+{"rubik", "init_rubik", "draw_rubik", (char *) NULL,
+ "draw_rubik", "change_rubik", "free_rubik", &rubik_opts,
+ 10000, -30, 5, -6, 64, 1.0, "",
+ "Shows an auto-solving Rubik's Cube", 0, NULL};
+
+#endif
+
+#define VectMul(X1,Y1,Z1,X2,Y2,Z2) (Y1)*(Z2)-(Z1)*(Y2),(Z1)*(X2)-(X1)*(Z2),(X1)*(Y2)-(Y1)*(X2)
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+
+#define ACTION_SOLVE 1
+#define ACTION_SHUFFLE 0
+
+#define DELAY_AFTER_SHUFFLING 5
+#define DELAY_AFTER_SOLVING 20
+
+/*************************************************************************/
+
+#define MINSIZE 2
+#define MAXSIZEX (rp->sizex)
+#define MAXSIZEY (rp->sizey)
+#define MAXSIZEZ (rp->sizez)
+#define AVSIZE ((rp->sizex+rp->sizey+rp->sizez)/3.0) /* Use of this should be minimized */
+#define MAXMAXSIZE (MAX(MAXSIZEX,MAX(MAXSIZEY,MAXSIZEZ)))
+#define MAXSIZEXY (MAXSIZEX*MAXSIZEY)
+#define MAXSIZEYZ (MAXSIZEY*MAXSIZEZ)
+#define MAXSIZEZX (MAXSIZEZ*MAXSIZEX)
+#define LASTX (MAXSIZEX-1)
+#define LASTY (MAXSIZEY-1)
+#define LASTZ (MAXSIZEZ-1)
+/* These are not likely to change but... */
+#define FIRSTX 0
+#define FIRSTY 0
+#define FIRSTZ 0
+
+#define Scale4Window (0.9/AVSIZE)
+#define Scale4Iconic (2.1/AVSIZE)
+
+#define MAXORIENT 4 /* Number of orientations of a square */
+#define MAXFACES 6 /* Number of faces */
+
+/* Directions relative to the face of a cubie */
+#define TOP 0
+#define RIGHT 1
+#define BOTTOM 2
+#define LEFT 3
+#define CW (MAXORIENT+1)
+#define HALF (MAXORIENT+2)
+#define CCW (2*MAXORIENT-1)
+
+#define TOP_FACE 0
+#define LEFT_FACE 1
+#define FRONT_FACE 2
+#define RIGHT_FACE 3
+#define BOTTOM_FACE 4
+#define BACK_FACE 5
+#define NO_FACE (MAXFACES)
+#define NO_ROTATION (2*MAXORIENT)
+#define NO_DEPTH MAXMAXSIZE
+
+#define REVX(a) (MAXSIZEX - a - 1)
+#define REVY(a) (MAXSIZEY - a - 1)
+#define REVZ(a) (MAXSIZEZ - a - 1)
+
+#define CUBELEN 0.50
+#define CUBEROUND (CUBELEN-0.05)
+#define STICKERLONG (CUBEROUND-0.05)
+#define STICKERSHORT (STICKERLONG-0.05)
+#define STICKERDEPTH (CUBELEN+0.01)
+
+#define ObjCubit 0
+#define MaxObj 1
+typedef struct _RubikLoc {
+ int face;
+ int rotation; /* Not used yet */
+} RubikLoc;
+
+typedef struct _RubikRowNext {
+ int face, direction, sideFace;
+} RubikRowNext;
+
+typedef struct _RubikMove {
+ int face, direction;
+ int position;
+} RubikMove;
+
+typedef struct _RubikSlice {
+ int face, rotation;
+ int depth;
+} RubikSlice;
+
+/*-
+ * Pick a face and a direction on face the next face and orientation
+ * is then known.
+ */
+static const RubikLoc slideNextRow[MAXFACES][MAXORIENT] =
+{
+ {
+ {5, TOP},
+ {3, RIGHT},
+ {2, TOP},
+ {1, LEFT}},
+ {
+ {0, RIGHT},
+ {2, TOP},
+ {4, LEFT},
+ {5, BOTTOM}},
+ {
+ {0, TOP},
+ {3, TOP},
+ {4, TOP},
+ {1, TOP}},
+ {
+ {0, LEFT},
+ {5, BOTTOM},
+ {4, RIGHT},
+ {2, TOP}},
+ {
+ {2, TOP},
+ {3, LEFT},
+ {5, TOP},
+ {1, RIGHT}},
+ {
+ {4, TOP},
+ {3, BOTTOM},
+ {0, TOP},
+ {1, BOTTOM}}
+};
+
+/*-
+ * Examine cubie 0 on each face, its 4 movements (well only 2 since the
+ * other 2 will be opposites) and translate it into slice movements).
+ * CW = DEEP Depth CCW == SHALLOW Depth with reference to faces 0, 1, and 2
+ */
+static const RubikLoc rotateSlice[MAXFACES][MAXORIENT / 2] =
+{
+ {
+ {1, CCW},
+ {2, CW},
+ },
+ {
+ {2, CW},
+ {0, CCW},
+ },
+ {
+ {1, CCW},
+ {0, CCW},
+ },
+ {
+ {2, CCW},
+ {0, CCW},
+ },
+ {
+ {1, CCW},
+ {2, CCW},
+ },
+ {
+ {1, CCW},
+ {0, CW},
+ }
+};
+
+/*-
+ * Rotate face clockwise by a number of orients, then the top of the
+ * face then points to this face
+ */
+static const int rowToRotate[MAXFACES][MAXORIENT] =
+{
+ {3, 2, 1, 5},
+ {2, 4, 5, 0},
+ {3, 4, 1, 0},
+ {5, 4, 2, 0},
+ {3, 5, 1, 2},
+ {3, 0, 1, 4}
+};
+
+/*
+ * This translates a clockwise move to something more manageable
+ */
+static const RubikRowNext rotateToRow[MAXFACES] = /*CW to min face */
+{
+ {1, LEFT, TOP},
+ {0, BOTTOM, RIGHT},
+ {0, RIGHT, BOTTOM},
+ {0, TOP, LEFT},
+ {1, RIGHT, BOTTOM},
+ {0, LEFT, TOP}
+};
+
+typedef struct {
+ GLint WindH, WindW;
+ GLfloat step;
+ RubikMove *moves;
+ int storedmoves;
+ int degreeTurn;
+ int shufflingmoves;
+ int sizex, sizey, sizez;
+ float avsize, avsizeSq;
+ int action;
+ int done;
+ GLfloat anglestep;
+ RubikLoc *cubeLoc[MAXFACES];
+ RubikLoc *rowLoc[MAXORIENT];
+ RubikMove movement;
+ GLfloat rotatestep;
+ GLfloat PX, PY, VX, VY;
+ GLXContext *glx_context;
+ Bool button_down_p;
+ trackball_state *trackball;
+} rubikstruct;
+
+static const float front_shininess[] = {60.0};
+static const float front_specular[] = {0.7, 0.7, 0.7, 1.0};
+static const float ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const float diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const float position0[] = {1.0, 1.0, 1.0, 0.0};
+static const float position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const float lmodel_twoside[] = {GL_TRUE};
+
+static const float MaterialRed[] = {0.5, 0.0, 0.0, 1.0};
+static const float MaterialGreen[] = {0.0, 0.5, 0.0, 1.0};
+static const float MaterialBlue[] = {0.0, 0.0, 0.5, 1.0};
+static const float MaterialYellow[] = {0.7, 0.7, 0.0, 1.0};
+static const float MaterialOrange[] = {0.9, 0.45, 0.36, 1.0};
+
+#if 0
+static float MaterialMagenta[] = {0.7, 0.0, 0.7, 1.0};
+static float MaterialCyan[] = {0.0, 0.7, 0.7, 1.0};
+
+#endif
+static const float MaterialWhite[] = {0.8, 0.8, 0.8, 1.0};
+static const float MaterialGray[] = {0.2, 0.2, 0.2, 1.0};
+static const float MaterialGray3[] = {0.3, 0.3, 0.3, 1.0};
+static const float MaterialGray4[] = {0.4, 0.4, 0.4, 1.0};
+static const float MaterialGray5[] = {0.5, 0.5, 0.5, 1.0};
+static const float MaterialGray6[] = {0.6, 0.6, 0.6, 1.0};
+static const float MaterialGray7[] = {0.7, 0.7, 0.7, 1.0};
+
+static rubikstruct *rubik = (rubikstruct *) NULL;
+
+
+static void
+pickcolor(int C, int mono)
+{
+ switch (C) {
+ case TOP_FACE:
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray3);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialRed);
+ break;
+ case LEFT_FACE:
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray6);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialYellow);
+ break;
+ case FRONT_FACE:
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
+ break;
+ case RIGHT_FACE:
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray4);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGreen);
+ break;
+ case BOTTOM_FACE:
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray7);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialOrange);
+ break;
+ case BACK_FACE:
+ if (mono)
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray5);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialBlue);
+ break;
+#if 0
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialCyan);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialMagenta);
+#endif
+ }
+}
+
+static void
+faceSizes(rubikstruct * rp, int face, int * sizeOfRow, int * sizeOfColumn)
+{
+ switch (face) {
+ case 0: /* TOP */
+ case 4: /* BOTTOM */
+ *sizeOfRow = MAXSIZEX;
+ *sizeOfColumn = MAXSIZEZ;
+ break;
+ case 1: /* LEFT */
+ case 3: /* RIGHT */
+ *sizeOfRow = MAXSIZEZ;
+ *sizeOfColumn = MAXSIZEY;
+ break;
+ case 2: /* FRONT */
+ case 5: /* BACK */
+ *sizeOfRow = MAXSIZEX;
+ *sizeOfColumn = MAXSIZEY;
+ break;
+ default: abort();
+ }
+}
+
+static Bool
+checkFaceSquare(rubikstruct * rp, int face)
+{
+ int sizeOfRow, sizeOfColumn;
+
+ faceSizes(rp, face, &sizeOfRow, &sizeOfColumn);
+ return (sizeOfRow == sizeOfColumn);
+ /* Cubes can be made square with a 4x2 face where 90 degree turns
+ * should be permitted but that is kind of complicated for me.
+ * This can be done in 2 ways where the side of the cubies are
+ * the same size and one where one side (the side with half the
+ * number of cubies) is twice the size of the other. The first is
+ * complicated because faces of cubies can go under other faces.
+ * The second way is similar to "banded cubes" where scotch tape
+ * restricts the moves of some cubes. Here you have to keep track
+ * of the restrictions and show banded cubies graphically as one
+ * cube.
+ */
+}
+
+static int
+sizeFace(rubikstruct * rp, int face)
+{
+ int sizeOfRow, sizeOfColumn;
+
+ faceSizes(rp, face, &sizeOfRow, &sizeOfColumn);
+ return (sizeOfRow * sizeOfColumn);
+}
+
+static int
+sizeRow(rubikstruct * rp, int face)
+{
+ int sizeOfRow, sizeOfColumn; /* sizeOfColumn not used */
+
+ faceSizes(rp, face, &sizeOfRow, &sizeOfColumn);
+ return sizeOfRow;
+}
+
+static Bool
+draw_stickerless_cubit(rubikstruct *rp, unsigned long *polysP)
+{
+ glBegin(GL_QUADS);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+ /* Put sticker here */
+ glNormal3f(0.00, 0.00, 1.00);
+ glVertex3f(-CUBEROUND, -CUBEROUND, CUBELEN);
+ glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
+ glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
+ glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
+ (*polysP)++;
+ glNormal3f(0.00, 0.00, -1.00);
+ glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
+ glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
+ glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
+ glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
+ (*polysP)++;
+ glNormal3f(-1.00, 0.00, 0.00);
+ glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
+ glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
+ glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
+ glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(1.00, 0.00, 0.00);
+ glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
+ glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
+ glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
+ glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
+ (*polysP)++;
+ glNormal3f(0.00, -1.00, 0.00);
+ glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
+ glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
+ glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
+ glVertex3f(-CUBEROUND, -CUBELEN, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(0.00, 1.00, 0.00);
+ glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
+ glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
+ glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
+ glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
+ (*polysP)++;
+
+ /* Edges of cubit */
+ glNormal3f(-1.00, -1.00, 0.00);
+ glVertex3f(-CUBEROUND, -CUBELEN, -CUBEROUND);
+ glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
+ glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
+ glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(1.00, 1.00, 0.00);
+ glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
+ glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
+ glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
+ glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(-1.00, 1.00, 0.00);
+ glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
+ glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
+ glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
+ glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(1.00, -1.00, 0.00);
+ glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
+ glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
+ glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
+ glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(0.00, -1.00, -1.00);
+ glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
+ glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
+ glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
+ glVertex3f(-CUBEROUND, -CUBELEN, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(0.00, 1.00, 1.00);
+ glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
+ glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
+ glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
+ glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
+ (*polysP)++;
+ glNormal3f(0.00, -1.00, 1.00);
+ glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
+ glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
+ glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
+ glVertex3f(-CUBEROUND, -CUBEROUND, CUBELEN);
+ (*polysP)++;
+ glNormal3f(0.00, 1.00, -1.00);
+ glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
+ glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
+ glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
+ glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
+ (*polysP)++;
+ glNormal3f(-1.00, 0.00, -1.00);
+ glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
+ glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
+ glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
+ glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
+ (*polysP)++;
+ glNormal3f(1.00, 0.00, 1.00);
+ glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
+ glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
+ glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
+ glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
+ (*polysP)++;
+ glNormal3f(1.00, 0.00, -1.00);
+ glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
+ glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
+ glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
+ glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
+ (*polysP)++;
+ glNormal3f(-1.00, 0.00, 1.00);
+ glVertex3f(-CUBEROUND, -CUBEROUND, CUBELEN);
+ glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
+ glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
+ glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
+ (*polysP)++;
+ glEnd();
+ glBegin(GL_TRIANGLES);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
+ /* Corners of cubit */
+ glNormal3f(1.00, 1.00, 1.00);
+ glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
+ glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
+ glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
+ (*polysP)++;
+ glNormal3f(-1.00, -1.00, -1.00);
+ glVertex3f(-CUBEROUND, -CUBELEN, -CUBEROUND);
+ glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
+ glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
+ (*polysP)++;
+ glNormal3f(-1.00, 1.00, 1.00);
+ glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
+ glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
+ (*polysP)++;
+ glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
+ glNormal3f(1.00, -1.00, -1.00);
+ glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
+ glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
+ glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
+ (*polysP)++;
+ glNormal3f(1.00, -1.00, 1.00);
+ glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
+ glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
+ glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
+ (*polysP)++;
+ glNormal3f(-1.00, 1.00, -1.00);
+ glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
+ glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
+ glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
+ (*polysP)++;
+ glNormal3f(-1.00, -1.00, 1.00);
+ glVertex3f(-CUBEROUND, -CUBEROUND, CUBELEN);
+ glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
+ glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
+ (*polysP)++;
+ glNormal3f(1.00, 1.00, -1.00);
+ glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
+ glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
+ glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
+ (*polysP)++;
+ glEnd();
+ return True;
+}
+
+static Bool
+draw_cubit(ModeInfo * mi,
+ int back, int front, int left, int right, int bottom, int top,
+ unsigned long *polysP)
+{
+ rubikstruct *rp = &rubik[MI_SCREEN(mi)];
+ int mono = MI_IS_MONO(mi);
+
+ if (!draw_stickerless_cubit(rp, polysP))
+ return False;
+ if (back != NO_FACE) {
+ glBegin(GL_POLYGON);
+ pickcolor(back, mono);
+ glNormal3f(0.00, 0.00, -1.00);
+ glVertex3f(-STICKERSHORT, STICKERLONG, -STICKERDEPTH);
+ glVertex3f(STICKERSHORT, STICKERLONG, -STICKERDEPTH);
+ glVertex3f(STICKERLONG, STICKERSHORT, -STICKERDEPTH);
+ glVertex3f(STICKERLONG, -STICKERSHORT, -STICKERDEPTH);
+ glVertex3f(STICKERSHORT, -STICKERLONG, -STICKERDEPTH);
+ glVertex3f(-STICKERSHORT, -STICKERLONG, -STICKERDEPTH);
+ glVertex3f(-STICKERLONG, -STICKERSHORT, -STICKERDEPTH);
+ glVertex3f(-STICKERLONG, STICKERSHORT, -STICKERDEPTH);
+ (*polysP)++;
+ glEnd();
+ }
+ if (front != NO_FACE) {
+ glBegin(GL_POLYGON);
+ pickcolor(front, mono);
+ glNormal3f(0.00, 0.00, 1.00);
+ glVertex3f(-STICKERSHORT, -STICKERLONG, STICKERDEPTH);
+ glVertex3f(STICKERSHORT, -STICKERLONG, STICKERDEPTH);
+ glVertex3f(STICKERLONG, -STICKERSHORT, STICKERDEPTH);
+ glVertex3f(STICKERLONG, STICKERSHORT, STICKERDEPTH);
+ glVertex3f(STICKERSHORT, STICKERLONG, STICKERDEPTH);
+ glVertex3f(-STICKERSHORT, STICKERLONG, STICKERDEPTH);
+ glVertex3f(-STICKERLONG, STICKERSHORT, STICKERDEPTH);
+ glVertex3f(-STICKERLONG, -STICKERSHORT, STICKERDEPTH);
+ (*polysP)++;
+ glEnd();
+ }
+ if (left != NO_FACE) {
+ glBegin(GL_POLYGON);
+ pickcolor(left, mono);
+ glNormal3f(-1.00, 0.00, 0.00);
+ glVertex3f(-STICKERDEPTH, -STICKERSHORT, STICKERLONG);
+ glVertex3f(-STICKERDEPTH, STICKERSHORT, STICKERLONG);
+ glVertex3f(-STICKERDEPTH, STICKERLONG, STICKERSHORT);
+ glVertex3f(-STICKERDEPTH, STICKERLONG, -STICKERSHORT);
+ glVertex3f(-STICKERDEPTH, STICKERSHORT, -STICKERLONG);
+ glVertex3f(-STICKERDEPTH, -STICKERSHORT, -STICKERLONG);
+ glVertex3f(-STICKERDEPTH, -STICKERLONG, -STICKERSHORT);
+ glVertex3f(-STICKERDEPTH, -STICKERLONG, STICKERSHORT);
+ (*polysP)++;
+ glEnd();
+ }
+ if (right != NO_FACE) {
+ glBegin(GL_POLYGON);
+ pickcolor(right, mono);
+ glNormal3f(1.00, 0.00, 0.00);
+ glVertex3f(STICKERDEPTH, -STICKERSHORT, -STICKERLONG);
+ glVertex3f(STICKERDEPTH, STICKERSHORT, -STICKERLONG);
+ glVertex3f(STICKERDEPTH, STICKERLONG, -STICKERSHORT);
+ glVertex3f(STICKERDEPTH, STICKERLONG, STICKERSHORT);
+ glVertex3f(STICKERDEPTH, STICKERSHORT, STICKERLONG);
+ glVertex3f(STICKERDEPTH, -STICKERSHORT, STICKERLONG);
+ glVertex3f(STICKERDEPTH, -STICKERLONG, STICKERSHORT);
+ glVertex3f(STICKERDEPTH, -STICKERLONG, -STICKERSHORT);
+ (*polysP)++;
+ glEnd();
+ }
+ if (bottom != NO_FACE) {
+ glBegin(GL_POLYGON);
+ pickcolor(bottom, mono);
+ glNormal3f(0.00, -1.00, 0.00);
+ glVertex3f(STICKERLONG, -STICKERDEPTH, -STICKERSHORT);
+ glVertex3f(STICKERLONG, -STICKERDEPTH, STICKERSHORT);
+ glVertex3f(STICKERSHORT, -STICKERDEPTH, STICKERLONG);
+ glVertex3f(-STICKERSHORT, -STICKERDEPTH, STICKERLONG);
+ glVertex3f(-STICKERLONG, -STICKERDEPTH, STICKERSHORT);
+ glVertex3f(-STICKERLONG, -STICKERDEPTH, -STICKERSHORT);
+ glVertex3f(-STICKERSHORT, -STICKERDEPTH, -STICKERLONG);
+ glVertex3f(STICKERSHORT, -STICKERDEPTH, -STICKERLONG);
+ (*polysP)++;
+ glEnd();
+ }
+ if (top != NO_FACE) {
+ glBegin(GL_POLYGON);
+ pickcolor(top, mono);
+ glNormal3f(0.00, 1.00, 0.00);
+ glVertex3f(-STICKERLONG, STICKERDEPTH, -STICKERSHORT);
+ glVertex3f(-STICKERLONG, STICKERDEPTH, STICKERSHORT);
+ glVertex3f(-STICKERSHORT, STICKERDEPTH, STICKERLONG);
+ glVertex3f(STICKERSHORT, STICKERDEPTH, STICKERLONG);
+ glVertex3f(STICKERLONG, STICKERDEPTH, STICKERSHORT);
+ glVertex3f(STICKERLONG, STICKERDEPTH, -STICKERSHORT);
+ glVertex3f(STICKERSHORT, STICKERDEPTH, -STICKERLONG);
+ glVertex3f(-STICKERSHORT, STICKERDEPTH, -STICKERLONG);
+ (*polysP)++;
+ glEnd();
+ }
+ return True;
+}
+
+/* Convert move to weird general notation */
+static void
+convertMove(rubikstruct * rp, RubikMove move, RubikSlice * slice)
+{
+ RubikLoc plane;
+ int sizeOfRow, sizeOfColumn;
+
+ plane = rotateSlice[(int) move.face][move.direction % 2];
+ (*slice).face = plane.face;
+ (*slice).rotation = plane.rotation;
+
+ faceSizes(rp, move.face, &sizeOfRow, &sizeOfColumn);
+ if (plane.face == 1 || /* VERTICAL */
+ (plane.face == 2 && (move.face == 1 || move.face == 3))) {
+ if ((*slice).rotation == CW)
+ (*slice).depth = sizeOfRow - 1 - move.position %
+ sizeOfRow;
+ else
+ (*slice).depth = move.position % sizeOfRow;
+ } else { /* (plane.face == 0 || *//* HORIZONTAL *//*
+ (plane.face == 2 && (move.face == 0 || move.face == 4))) */
+ if ((*slice).rotation == CW)
+ (*slice).depth = sizeOfColumn - 1 - move.position /
+ sizeOfRow;
+ else
+ (*slice).depth = move.position / sizeOfRow;
+ }
+ /* If (*slice).depth = 0 then face 0, face 1, or face 2 moves */
+ if (move.direction / 2)
+ (*slice).rotation = ((*slice).rotation == CW) ? CCW : CW;
+}
+
+/* Assume the size is at least 2, or its just not challenging... */
+static Bool
+draw_cube(ModeInfo * mi)
+{
+#define S1 1
+#define SX ((GLint)S1*(MAXSIZEX-1))
+#define SY ((GLint)S1*(MAXSIZEY-1))
+#define SZ ((GLint)S1*(MAXSIZEZ-1))
+#define HALFX (((GLfloat)MAXSIZEX-1.0)/2.0)
+#define HALFY (((GLfloat)MAXSIZEY-1.0)/2.0)
+#define HALFZ (((GLfloat)MAXSIZEZ-1.0)/2.0)
+#define MIDX(a) (((GLfloat)(2*a-MAXSIZEX+1))/2.0)
+#define MIDY(a) (((GLfloat)(2*a-MAXSIZEY+1))/2.0)
+#define MIDZ(a) (((GLfloat)(2*a-MAXSIZEZ+1))/2.0)
+#define DRAW_CUBIT(mi,b,f,l,r,bm,t) if (!draw_cubit(mi,b,f,l,r,bm,t,&mi->polygon_count)) return False
+ rubikstruct *rp = &rubik[MI_SCREEN(mi)];
+ RubikSlice slice;
+ GLfloat rotatestep;
+ int i, j, k;
+
+ if (rp->movement.face == NO_FACE) {
+ slice.face = NO_FACE;
+ slice.rotation = NO_ROTATION;
+ slice.depth = NO_DEPTH;
+ } else {
+ convertMove(rp, rp->movement, &slice);
+ }
+ rotatestep = (slice.rotation == CCW) ? rp->rotatestep : -rp->rotatestep;
+
+
+/*-
+ * The glRotatef() routine transforms the coordinate system for every future
+ * vertex specification (this is not so simple, but by now comprehending this
+ * is sufficient). So if you want to rotate the inner slice, you can draw
+ * one slice, rotate the anglestep for the centerslice, draw the inner slice,
+ * rotate reversely and draw the other slice.
+ * There is a sequence for drawing cubies for each axis being moved...
+ */
+ switch (slice.face) {
+ case NO_FACE:
+ case TOP_FACE: /* BOTTOM_FACE too */
+ glPushMatrix();
+ if (slice.depth == MAXSIZEY - 1)
+ glRotatef(rotatestep, 0, HALFY, 0);
+
+ glTranslatef(-HALFX, -HALFY, -HALFZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * FIRSTY].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * LASTY].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, -SZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * FIRSTY].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * LASTY].face,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ }
+ glTranslatef(S1, 0, -SZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * LASTY].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ glPopMatrix();
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glPushMatrix();
+ if (slice.depth == REVY(j))
+ glRotatef(rotatestep, 0, HALFY, 0);
+ glTranslatef(-HALFX, MIDY(j), -HALFZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * j].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * REVY(j)].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(1, 0, -SZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * j].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE);
+ /* Center */
+ glTranslatef(0, 0, SZ);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * REVY(j)].face,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(S1, 0, -SZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * j].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * REVY(j)].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ glPopMatrix();
+ }
+ if (slice.depth == 0)
+ glRotatef(rotatestep, 0, HALFY, 0);
+
+ glTranslatef(-HALFX, HALFY, -HALFZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * LASTY].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * FIRSTZ].face);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * k].face);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * FIRSTY].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * LASTZ].face);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, -SZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * LASTY].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * FIRSTZ].face);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * k].face);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * FIRSTY].face,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * LASTZ].face);
+ }
+ glTranslatef(S1, 0, -SZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * LASTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * FIRSTZ].face);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * k].face);
+ }
+ glTranslatef(0, 0, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * LASTZ].face);
+ break;
+ case LEFT_FACE: /* RIGHT_FACE too */
+ /* rotatestep is negative because the RIGHT face is the default here */
+ glPushMatrix();
+ if (slice.depth == 0)
+ glRotatef(-rotatestep, HALFX, 0, 0);
+
+ glTranslatef(-HALFX, -HALFY, -HALFZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * FIRSTY].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * j].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * LASTY].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * FIRSTZ].face);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, -SY, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * k].face);
+ }
+ glTranslatef(0, -SY, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * LASTY].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * REVY(j)].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * FIRSTY].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * LASTZ].face);
+ glPopMatrix();
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glPushMatrix();
+ if (slice.depth == i)
+ glRotatef(-rotatestep, HALFX, 0, 0);
+ glTranslatef(MIDX(i), -HALFY, -HALFZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * FIRSTY].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * j].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * LASTY].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * FIRSTZ].face);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, -SY, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ /* Center */
+ glTranslatef(0, SY, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * k].face);
+ }
+ glTranslatef(0, -SY, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * LASTY].face,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * REVY(j)].face,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * FIRSTY].face,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * LASTZ].face);
+ glPopMatrix();
+ }
+ if (slice.depth == MAXSIZEX - 1)
+ glRotatef(-rotatestep, HALFX, 0, 0);
+ glTranslatef(HALFX, -HALFY, -HALFZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * j].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * LASTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * FIRSTZ].face);
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glTranslatef(0, -SY, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * k].face);
+ }
+ glTranslatef(0, -SY, S1);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * LASTY].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * REVY(j)].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(0, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * LASTZ].face);
+ break;
+ case FRONT_FACE: /* BACK_FACE too */
+ glPushMatrix();
+ if (slice.depth == MAXSIZEZ - 1)
+ glRotatef(rotatestep, 0, 0, HALFZ);
+
+ glTranslatef(-HALFX, -HALFY, -HALFZ);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * FIRSTY].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * FIRSTY].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * LASTZ].face, NO_FACE);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * LASTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(-SX, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * j].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * j].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * j].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(-SX, S1, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][FIRSTX + MAXSIZEX * LASTY].face, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][FIRSTZ + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * FIRSTZ].face);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][i + MAXSIZEX * LASTY].face, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * FIRSTZ].face);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ rp->cubeLoc[BACK_FACE][LASTX + MAXSIZEX * LASTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][LASTZ + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * FIRSTZ].face);
+ glPopMatrix();
+ for (k = 1; k < MAXSIZEZ - 1; k++) {
+ glPushMatrix();
+ if (slice.depth == REVZ(k))
+ glRotatef(rotatestep, 0, 0, HALFZ);
+ glTranslatef(-HALFX, -HALFY, MIDZ(k));
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * REVZ(k)].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(-SX, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ /* Center */
+ glTranslatef(SX, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(-SX, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[LEFT_FACE][k + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * k].face);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * k].face);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][REVZ(k) + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * k].face);
+ glPopMatrix();
+ }
+ if (slice.depth == 0)
+ glRotatef(rotatestep, 0, 0, HALFZ);
+ glTranslatef(-HALFX, -HALFY, HALFZ);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * LASTY].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * LASTY].face, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][FIRSTX + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * LASTY].face,
+ NO_FACE, NO_FACE,
+ rp->cubeLoc[BOTTOM_FACE][i + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * LASTY].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * LASTY].face,
+ rp->cubeLoc[BOTTOM_FACE][LASTX + MAXSIZEX * FIRSTZ].face, NO_FACE);
+ for (j = 1; j < MAXSIZEY - 1; j++) {
+ glTranslatef(-SX, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * REVY(j)].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * REVY(j)].face, NO_FACE,
+ NO_FACE, NO_FACE);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * REVY(j)].face,
+ NO_FACE, NO_FACE,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * REVY(j)].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * REVY(j)].face,
+ NO_FACE, NO_FACE);
+ }
+ glTranslatef(-SX, S1, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][FIRSTX + MAXSIZEX * FIRSTY].face,
+ rp->cubeLoc[LEFT_FACE][LASTZ + MAXSIZEZ * FIRSTY].face, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][FIRSTX + MAXSIZEX * LASTZ].face);
+ for (i = 1; i < MAXSIZEX - 1; i++) {
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][i + MAXSIZEX * FIRSTY].face,
+ NO_FACE, NO_FACE,
+ NO_FACE, rp->cubeLoc[TOP_FACE][i + MAXSIZEX * LASTZ].face);
+ }
+ glTranslatef(S1, 0, 0);
+ DRAW_CUBIT(mi,
+ NO_FACE, rp->cubeLoc[FRONT_FACE][LASTX + MAXSIZEX * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[RIGHT_FACE][FIRSTZ + MAXSIZEZ * FIRSTY].face,
+ NO_FACE, rp->cubeLoc[TOP_FACE][LASTX + MAXSIZEX * LASTZ].face);
+ break;
+ }
+ return True;
+#undef S1
+}
+
+/* From David Bagley's xrubik. Used by permission. ;) */
+static void
+readRC(rubikstruct * rp, int face, int dir, int h, int orient, int size)
+{
+ int g, sizeOfRow;
+
+ sizeOfRow = sizeRow(rp, face);
+ if (dir == TOP || dir == BOTTOM)
+ for (g = 0; g < size; g++)
+ rp->rowLoc[orient][g] =
+ rp->cubeLoc[face][g * sizeOfRow + h];
+ else /* dir == RIGHT || dir == LEFT */
+ for (g = 0; g < size; g++)
+ rp->rowLoc[orient][g] =
+ rp->cubeLoc[face][h * sizeOfRow + g];
+}
+
+static void
+rotateRC(rubikstruct * rp, int rotate, int orient, int size)
+{
+ int g;
+
+ for (g = 0; g < size; g++)
+ rp->rowLoc[orient][g].rotation =
+ (rp->rowLoc[orient][g].rotation + rotate) % MAXORIENT;
+}
+
+static void
+reverseRC(rubikstruct * rp, int orient, int size)
+{
+ int g;
+ RubikLoc temp;
+
+ for (g = 0; g < size / 2; g++) {
+ temp = rp->rowLoc[orient][size - 1 - g];
+ rp->rowLoc[orient][size - 1 - g] = rp->rowLoc[orient][g];
+ rp->rowLoc[orient][g] = temp;
+ }
+}
+
+static void
+writeRC(rubikstruct * rp, int face, int dir, int h, int orient, int size)
+{
+ int g, position, sizeOfRow;
+
+ sizeOfRow = sizeRow(rp, face);
+ if (dir == TOP || dir == BOTTOM) {
+ for (g = 0; g < size; g++) {
+ position = g * sizeOfRow + h;
+ rp->cubeLoc[face][position] = rp->rowLoc[orient][g];
+ /* DrawSquare(face, position); */
+ }
+ } else { /* dir == RIGHT || dir == LEFT */
+ for (g = 0; g < size; g++) {
+ position = h * sizeOfRow + g;
+ rp->cubeLoc[face][position] = rp->rowLoc[orient][g];
+ /* DrawSquare(face, position); */
+ }
+ }
+}
+
+static Bool
+rotateFace(rubikstruct * rp, int face, int direction)
+{
+ int position, i, j, sizeOfRow, sizeOfColumn, sizeOnPlane;
+ RubikLoc *faceLoc;
+
+ faceSizes(rp, face, &sizeOfRow, &sizeOfColumn);
+ sizeOnPlane = sizeOfRow * sizeOfColumn;
+ if ((faceLoc = (RubikLoc *) malloc(sizeOnPlane *
+ sizeof (RubikLoc))) == NULL) {
+ return False;
+ }
+ /* Read Face */
+ for (position = 0; position < sizeOnPlane; position++)
+ faceLoc[position] = rp->cubeLoc[face][position];
+ /* Write Face */
+ for (position = 0; position < sizeOnPlane; position++) {
+ i = position % sizeOfRow;
+ j = position / sizeOfRow;
+ if (direction == CW)
+ rp->cubeLoc[face][position] =
+ faceLoc[(sizeOfRow - i - 1) * sizeOfRow + j];
+ else if (direction == CCW)
+ rp->cubeLoc[face][position] =
+ faceLoc[i * sizeOfRow + sizeOfColumn - j - 1];
+ else /* (direction == HALF) */
+ rp->cubeLoc[face][position] =
+ faceLoc[sizeOfRow - i - 1 + (sizeOfColumn - j - 1) * sizeOfRow];
+ rp->cubeLoc[face][position].rotation =
+ (rp->cubeLoc[face][position].rotation +
+ direction - MAXORIENT) % MAXORIENT;
+ /* DrawSquare(face, position); */
+ }
+ if (faceLoc != NULL)
+ (void) free((void *) faceLoc);
+ return True;
+}
+
+/* Yeah this is big and ugly */
+static void
+slideRC(int face, int direction, int h, int sizeOnOppAxis,
+ int *newFace, int *newDirection, int *newH,
+ int *rotate, Bool *reverse)
+{
+ *newFace = slideNextRow[face][direction].face;
+ *rotate = slideNextRow[face][direction].rotation;
+ *newDirection = (*rotate + direction) % MAXORIENT;
+ switch (*rotate) {
+ case TOP:
+ *newH = h;
+ *reverse = False;
+ break;
+ case RIGHT:
+ if (*newDirection == TOP || *newDirection == BOTTOM) {
+ *newH = sizeOnOppAxis - 1 - h;
+ *reverse = False;
+ } else { /* *newDirection == RIGHT || *newDirection == LEFT */
+ *newH = h;
+ *reverse = True;
+ }
+ break;
+ case BOTTOM:
+ *newH = sizeOnOppAxis - 1 - h;
+ *reverse = True;
+ break;
+ case LEFT:
+ if (*newDirection == TOP || *newDirection == BOTTOM) {
+ *newH = h;
+ *reverse = True;
+ } else { /* *newDirection == RIGHT || *newDirection == LEFT */
+ *newH = sizeOnOppAxis - 1 - h;
+ *reverse = False;
+ }
+ break;
+ default:
+ (void) printf("slideRC: rotate %d\n", *rotate);
+ *newH = 0;
+ *reverse = False;
+ }
+}
+
+static Bool
+moveRubik(rubikstruct * rp, int face, int direction, int position)
+{
+ int newFace, newDirection, rotate, reverse;
+ int h, k, newH;
+ int i, j, sizeOfRow, sizeOfColumn, sizeOnAxis, sizeOnOppAxis;
+
+ faceSizes(rp, face, &sizeOfRow, &sizeOfColumn);
+ if (direction == CW || direction == CCW) {
+ direction = (direction == CCW) ?
+ (rotateToRow[face].direction + 2) % MAXORIENT :
+ rotateToRow[face].direction;
+ if (rotateToRow[face].sideFace == RIGHT) {
+ i = j = sizeOfColumn - 1;
+ } else if (rotateToRow[face].sideFace == BOTTOM) {
+ i = j = sizeOfRow - 1;
+ } else {
+ i = j = 0;
+ }
+ face = rotateToRow[face].face;
+ position = j * sizeOfRow + i;
+ }
+ i = position % sizeOfRow;
+ j = position / sizeOfRow;
+ h = (direction == TOP || direction == BOTTOM) ? i : j;
+ if (direction == TOP || direction == BOTTOM) {
+ sizeOnAxis = sizeOfColumn;
+ sizeOnOppAxis = sizeOfRow;
+ } else {
+ sizeOnAxis = sizeOfRow;
+ sizeOnOppAxis = sizeOfColumn;
+ }
+ /* rotate sides CW or CCW or HALF) */
+
+ if (h == sizeOnOppAxis - 1) {
+ newDirection = (direction == TOP || direction == BOTTOM) ?
+ TOP : RIGHT;
+ if (rp->degreeTurn == 180) {
+ if (!rotateFace(rp, rowToRotate[face][newDirection], HALF))
+ return False;
+ } else if (direction == TOP || direction == RIGHT) {
+ if (!rotateFace(rp, rowToRotate[face][newDirection], CW))
+ return False;
+ } else { /* direction == BOTTOM || direction == LEFT */
+ if (!rotateFace(rp, rowToRotate[face][newDirection], CCW))
+ return False;
+ }
+ }
+ if (h == 0) {
+ newDirection = (direction == TOP || direction == BOTTOM) ?
+ BOTTOM : LEFT;
+ if (rp->degreeTurn == 180) {
+ if (!rotateFace(rp, rowToRotate[face][newDirection], HALF))
+ return False;
+ } else if (direction == TOP || direction == RIGHT) {
+ if (!rotateFace(rp, rowToRotate[face][newDirection], CCW))
+ return False;
+ } else { /* direction == BOTTOM || direction == LEFT */
+ if (!rotateFace(rp, rowToRotate[face][newDirection], CW))
+ return False;
+ }
+ }
+ /* Slide rows or columns */
+ readRC(rp, face, direction, h, 0, sizeOnAxis);
+ if (rp->degreeTurn == 180) {
+ int sizeOnDepthAxis;
+
+ slideRC(face, direction, h, sizeOnOppAxis,
+ &newFace, &newDirection, &newH, &rotate, &reverse);
+ sizeOnDepthAxis = sizeFace(rp, newFace) / sizeOnOppAxis;
+ readRC(rp, newFace, newDirection, newH, 1, sizeOnDepthAxis);
+ rotateRC(rp, rotate, 0, sizeOnAxis);
+ if (reverse == True)
+ reverseRC(rp, 0, sizeOnAxis);
+ face = newFace;
+ direction = newDirection;
+ h = newH;
+ for (k = 2; k <= MAXORIENT + 1; k++) {
+ slideRC(face, direction, h, sizeOnOppAxis,
+ &newFace, &newDirection, &newH, &rotate, &reverse);
+ if (k != MAXORIENT && k != MAXORIENT + 1)
+ readRC(rp, newFace, newDirection, newH, k,
+ (k % 2) ? sizeOnDepthAxis : sizeOnAxis);
+ rotateRC(rp, rotate, k - 2,
+ (k % 2) ? sizeOnDepthAxis : sizeOnAxis);
+ if (k != MAXORIENT + 1)
+ rotateRC(rp, rotate, k - 1,
+ (k % 2) ? sizeOnAxis : sizeOnDepthAxis);
+ if (reverse == True) {
+ reverseRC(rp, k - 2,
+ (k % 2) ? sizeOnDepthAxis : sizeOnAxis);
+ if (k != MAXORIENT + 1)
+ reverseRC(rp, k - 1,
+ (k % 2) ? sizeOnAxis : sizeOnDepthAxis);
+ }
+ writeRC(rp, newFace, newDirection, newH, k - 2,
+ (k % 2) ? sizeOnDepthAxis : sizeOnAxis);
+ face = newFace;
+ direction = newDirection;
+ h = newH;
+ }
+ } else {
+ for (k = 1; k <= MAXORIENT; k++) {
+ slideRC(face, direction, h, sizeOnOppAxis,
+ &newFace, &newDirection, &newH, &rotate, &reverse);
+ if (k != MAXORIENT)
+ readRC(rp, newFace, newDirection, newH, k, sizeOnAxis);
+ rotateRC(rp, rotate, k - 1, sizeOnAxis);
+ if (reverse == True)
+ reverseRC(rp, k - 1, sizeOnAxis);
+ writeRC(rp, newFace, newDirection, newH, k - 1, sizeOnAxis);
+ face = newFace;
+ direction = newDirection;
+ h = newH;
+ }
+ }
+ return True;
+}
+
+#ifdef DEBUG
+static void
+printCube(rubikstruct * rp)
+{
+ int face, position, sizeOfRow, sizeOfColumn;
+
+ for (face = 0; face < MAXFACES; face++) {
+ faceSizes(rp, face, &sizeOfRow, &sizeOfColumn);
+ for (position = 0; position < sizeOfRow * sizeOfColumn; position++) {
+ (void) printf("%d %d ", rp->cubeLoc[face][position].face,
+ rp->cubeLoc[face][position].rotation);
+ if (!((position + 1) % sizeOfRow))
+ (void) printf("\n");
+ }
+ (void) printf("\n");
+ }
+ (void) printf("\n");
+}
+
+#endif
+
+static Bool
+evalmovement(ModeInfo * mi, RubikMove movement)
+{
+ rubikstruct *rp = &rubik[MI_SCREEN(mi)];
+
+#ifdef DEBUG
+ printCube(rp);
+#endif
+ if (movement.face < 0 || movement.face >= MAXFACES)
+ return True;
+ if (!moveRubik(rp, movement.face, movement.direction, movement.position))
+ return False;
+ return True;
+}
+
+static Bool
+compare_moves(rubikstruct * rp, RubikMove move1, RubikMove move2, Bool opp)
+{
+ RubikSlice slice1, slice2;
+
+ convertMove(rp, move1, &slice1);
+ convertMove(rp, move2, &slice2);
+ if (slice1.face == slice2.face &&
+ slice1.depth == slice2.depth) {
+ if (slice1.rotation == slice2.rotation) { /* CW or CCW */
+ if (!opp)
+ return True;
+ } else {
+ if (opp)
+ return True;
+ }
+ }
+ return False;
+}
+
+static Bool
+shuffle(ModeInfo * mi)
+{
+ rubikstruct *rp = &rubik[MI_SCREEN(mi)];
+ int i, face, position;
+ RubikMove move;
+
+ if (sizex)
+ i = sizex;
+ else
+ i = MI_SIZE(mi);
+ if (i < -MINSIZE)
+ i = NRAND(-i - MINSIZE + 1) + MINSIZE;
+ else if (i < MINSIZE)
+ i = MINSIZE;
+
+ if (LRAND() % 2 && !sizey && !sizez) { /* Make normal (NxNxN) cubes more likely */
+ MAXSIZEX = MAXSIZEY = MAXSIZEZ = i;
+ } else {
+ MAXSIZEX = i;
+ if (sizey)
+ i = sizey;
+ else
+ i = MI_SIZE(mi);
+ if (i < -MINSIZE)
+ i = NRAND(-i - MINSIZE + 1) + MINSIZE;
+ else if (i < MINSIZE)
+ i = MINSIZE;
+ if (LRAND() % 2 && !sizez) { /* Make more MxNxN more likely than LxMxN */
+ MAXSIZEY = MAXSIZEZ = i;
+ } else {
+ MAXSIZEY = i;
+ if (sizez)
+ i = sizez;
+ else
+ i = MI_SIZE(mi);
+ if (i < -MINSIZE)
+ i = NRAND(-i - MINSIZE + 1) + MINSIZE;
+ else if (i < MINSIZE)
+ i = MINSIZE;
+ MAXSIZEZ = i;
+ }
+ }
+
+ for (face = 0; face < MAXFACES; face++) {
+ if (rp->cubeLoc[face] != NULL)
+ (void) free((void *) rp->cubeLoc[face]);
+ if ((rp->cubeLoc[face] = (RubikLoc *) malloc(sizeFace(rp, face) *
+ sizeof (RubikLoc))) == NULL) {
+ return False;
+ }
+ for (position = 0; position < sizeFace(rp, face); position++) {
+ rp->cubeLoc[face][position].face = face;
+ rp->cubeLoc[face][position].rotation = TOP;
+ }
+ }
+ for (i = 0; i < MAXORIENT; i++) {
+ if (rp->rowLoc[i] != NULL)
+ (void) free((void *) rp->rowLoc[i]);
+ /* The following is reused so make it the biggest size */
+ if ((rp->rowLoc[i] = (RubikLoc *) malloc(MAXMAXSIZE *
+ sizeof (RubikLoc))) == NULL) {
+ return False;
+ }
+ }
+ rp->storedmoves = MI_COUNT(mi);
+ if (rp->storedmoves < 0) {
+ if (rp->moves != NULL)
+ (void) free((void *) rp->moves);
+ rp->moves = (RubikMove *) NULL;
+ rp->storedmoves = NRAND(-rp->storedmoves) + 1;
+ }
+ if ((rp->storedmoves) && (rp->moves == NULL))
+ if ((rp->moves = (RubikMove *) calloc(rp->storedmoves + 1,
+ sizeof (RubikMove))) == NULL) {
+ return False;
+ }
+ if (MI_CYCLES(mi) <= 1) {
+ rp->anglestep = 90.0;
+ } else {
+ rp->anglestep = 90.0 / (GLfloat) (MI_CYCLES(mi));
+ }
+
+ for (i = 0; i < rp->storedmoves; i++) {
+ Bool condition;
+
+ do {
+ move.face = NRAND(MAXFACES);
+ move.direction = NRAND(MAXORIENT); /* Exclude CW and CCW, its ok */
+ move.position = NRAND(sizeFace(rp, move.face));
+ rp->degreeTurn = (checkFaceSquare(rp,
+ rowToRotate[move.face][move.direction])) ? 90 : 180;
+ condition = True;
+ if (i > 0) { /* avoid immediate undoing moves */
+ if (compare_moves(rp, move, rp->moves[i - 1], True))
+ condition = False;
+ if (rp->degreeTurn == 180 &&
+ compare_moves(rp, move, rp->moves[i - 1], False))
+ condition = False;
+ }
+ if (i > 1) /* avoid 3 consecutive identical moves */
+ if (compare_moves(rp, move, rp->moves[i - 1], False) &&
+ compare_moves(rp, move, rp->moves[i - 2], False))
+ condition = False;
+ /*
+ * Still some silly moves being made....
+ */
+ } while (!condition);
+ if (hideshuffling)
+ if (!evalmovement(mi, move))
+ return False;
+ rp->moves[i] = move;
+ }
+ rp->VX = 0.005;
+ if (NRAND(100) < 50)
+ rp->VX *= -1;
+ rp->VY = 0.005;
+ if (NRAND(100) < 50)
+ rp->VY *= -1;
+ rp->movement.face = NO_FACE;
+ rp->rotatestep = 0;
+ rp->action = hideshuffling ? ACTION_SOLVE : ACTION_SHUFFLE;
+ rp->shufflingmoves = 0;
+ rp->done = 0;
+ return True;
+}
+
+ENTRYPOINT void
+reshape_rubik(ModeInfo * mi, int width, int height)
+{
+ rubikstruct *rp = &rubik[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ }
+
+ glViewport(0, y, rp->WindW = (GLint) width, rp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+ENTRYPOINT Bool
+rubik_handle_event (ModeInfo *mi, XEvent *event)
+{
+ rubikstruct *rp = &rubik[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, rp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &rp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ rp->done = 1;
+ return True;
+ }
+
+ return False;
+}
+
+
+static Bool
+pinit(ModeInfo * mi)
+{
+ glClearDepth(1.0);
+ glColor3f(1.0, 1.0, 1.0);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glShadeModel(GL_FLAT);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+
+ return (shuffle(mi));
+}
+
+ENTRYPOINT void
+free_rubik(ModeInfo *mi)
+{
+ rubikstruct *rp = &rubik[MI_SCREEN(mi)];
+ int i;
+
+ for (i = 0; i < MAXFACES; i++)
+ if (rp->cubeLoc[i] != NULL) {
+ (void) free((void *) rp->cubeLoc[i]);
+ rp->cubeLoc[i] = (RubikLoc *) NULL;
+ }
+ for (i = 0; i < MAXORIENT; i++)
+ if (rp->rowLoc[i] != NULL) {
+ (void) free((void *) rp->rowLoc[i]);
+ rp->rowLoc[i] = (RubikLoc *) NULL;
+ }
+ if (rp->moves != NULL) {
+ (void) free((void *) rp->moves);
+ rp->moves = (RubikMove *) NULL;
+ }
+}
+
+ENTRYPOINT void
+init_rubik(ModeInfo * mi)
+{
+ rubikstruct *rp;
+
+ MI_INIT (mi, rubik);
+ rp = &rubik[MI_SCREEN(mi)];
+ rp->step = NRAND(90);
+ rp->PX = ((float) LRAND() / (float) MAXRAND) * 2.0 - 1.0;
+ rp->PY = ((float) LRAND() / (float) MAXRAND) * 2.0 - 1.0;
+
+ rp->trackball = gltrackball_init (True);
+
+ if ((rp->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_rubik(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ if (!pinit(mi)) {
+ free_rubik(mi);
+ if (MI_IS_VERBOSE(mi)) {
+ (void) fprintf(stderr,
+ "Could not allocate memory for rubik\n");
+ }
+ return;
+ }
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_rubik(ModeInfo * mi)
+{
+ Bool bounced = False;
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ rubikstruct *rp;
+
+ if (rubik == NULL)
+ return;
+ rp = &rubik[MI_SCREEN(mi)];
+ if (rp->cubeLoc[0] == NULL)
+ return;
+
+ MI_IS_DRAWN(mi) = True;
+ if (!rp->glx_context)
+ return;
+
+ mi->polygon_count = 0;
+ glXMakeCurrent(display, window, *(rp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+ glTranslatef(0.0, 0.0, -10.0);
+
+ rp->PX += rp->VX;
+ rp->PY += rp->VY;
+
+ if (rp->PY < -1) {
+ rp->PY += (-1) - (rp->PY);
+ rp->VY = -rp->VY;
+ bounced = True;
+ }
+ if (rp->PY > 1) {
+ rp->PY -= (rp->PY) - 1;
+ rp->VY = -rp->VY;
+ bounced = True;
+ }
+ if (rp->PX < -1) {
+ rp->PX += (-1) - (rp->PX);
+ rp->VX = -rp->VX;
+ bounced = True;
+ }
+ if (rp->PX > 1) {
+ rp->PX -= (rp->PX) - 1;
+ rp->VX = -rp->VX;
+ bounced = True;
+ }
+ if (bounced) {
+ rp->VX += ((float) LRAND() / (float) MAXRAND) * 0.002 - 0.001;
+ rp->VY += ((float) LRAND() / (float) MAXRAND) * 0.002 - 0.001;
+ if (rp->VX > 0.006)
+ rp->VX = 0.006;
+ if (rp->VY > 0.006)
+ rp->VY = 0.006;
+ if (rp->VX < -0.006)
+ rp->VX = -0.006;
+ if (rp->VY < -0.006)
+ rp->VY = -0.006;
+ }
+ if (!MI_IS_ICONIC(mi)) {
+ glTranslatef(rp->PX, rp->PY, 0);
+ glScalef(Scale4Window * rp->WindH / rp->WindW, Scale4Window, Scale4Window);
+ } else {
+ glScalef(Scale4Iconic * rp->WindH / rp->WindW, Scale4Iconic, Scale4Iconic);
+ }
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180) {
+ glScalef (1/h, h, 1); /* #### not quite right */
+ h = 1.8;
+ glScalef (h, h, h);
+ }
+ }
+# endif
+
+ gltrackball_rotate (rp->trackball);
+
+ glRotatef(rp->step * 100, 1, 0, 0);
+ glRotatef(rp->step * 95, 0, 1, 0);
+ glRotatef(rp->step * 90, 0, 0, 1);
+
+ if (!draw_cube(mi)) {
+ MI_ABORT(mi);
+ return;
+ }
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glXSwapBuffers(display, window);
+
+ if (rp->action == ACTION_SHUFFLE) {
+ if (rp->done) {
+ if (++rp->rotatestep > DELAY_AFTER_SHUFFLING) {
+ rp->movement.face = NO_FACE;
+ rp->rotatestep = 0;
+ rp->action = ACTION_SOLVE;
+ rp->done = 0;
+ }
+ } else {
+ if (rp->movement.face == NO_FACE) {
+ if (rp->shufflingmoves < rp->storedmoves) {
+ rp->rotatestep = 0;
+ rp->movement = rp->moves[rp->shufflingmoves];
+ } else {
+ rp->rotatestep = 0;
+ rp->done = 1;
+ }
+ } else {
+ if (rp->rotatestep == 0) {
+ if (rp->movement.direction == CW || rp->movement.direction == CCW)
+ rp->degreeTurn = (checkFaceSquare(rp, rp->movement.face)) ? 90 : 180;
+ else
+ rp->degreeTurn = (checkFaceSquare(rp, rowToRotate[rp->movement.face][rp->movement.direction])) ? 90 : 180;
+ }
+ rp->rotatestep += rp->anglestep;
+ if (rp->rotatestep > rp->degreeTurn) {
+ if (!evalmovement(mi, rp->movement)) {
+ free_rubik(mi);
+ if (MI_IS_VERBOSE(mi)) {
+ (void) fprintf(stderr,
+ "Could not allocate memory for rubik\n");
+ }
+ return;
+ }
+ rp->shufflingmoves++;
+ rp->movement.face = NO_FACE;
+ }
+ }
+ }
+ } else {
+ if (rp->done) {
+ if (++rp->rotatestep > DELAY_AFTER_SOLVING)
+ if (!shuffle(mi)) {
+ free_rubik(mi);
+ if (MI_IS_VERBOSE(mi)) {
+ (void) fprintf(stderr,
+ "Could not allocate memory for rubik\n");
+ }
+ return;
+ }
+ } else {
+ if (rp->movement.face == NO_FACE) {
+ if (rp->storedmoves > 0) {
+ rp->rotatestep = 0;
+ rp->movement = rp->moves[rp->storedmoves - 1];
+ rp->movement.direction = (rp->movement.direction +
+ (MAXORIENT / 2)) % MAXORIENT;
+ } else {
+ rp->rotatestep = 0;
+ rp->done = 1;
+ }
+ } else {
+ if (rp->rotatestep == 0) {
+ if (rp->movement.direction == CW || rp->movement.direction == CCW)
+ rp->degreeTurn = (checkFaceSquare(rp, rp->movement.face)) ? 90 : 180;
+ else
+ rp->degreeTurn = (checkFaceSquare(rp, rowToRotate[rp->movement.face][rp->movement.direction])) ? 90 : 180;
+ }
+ rp->rotatestep += rp->anglestep;
+ if (rp->rotatestep > rp->degreeTurn) {
+ if (!evalmovement(mi, rp->movement)) {
+ free_rubik(mi);
+ if (MI_IS_VERBOSE(mi)) {
+ (void) fprintf(stderr,
+ "Could not allocate memory for rubik\n");
+ }
+ return;
+ }
+ rp->storedmoves--;
+ rp->movement.face = NO_FACE;
+ }
+ }
+ }
+ }
+
+ glPopMatrix();
+
+ glFlush();
+
+ rp->step += 0.002;
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_rubik(ModeInfo * mi)
+{
+ rubikstruct *rp;
+
+ if (rubik == NULL)
+ return;
+ rp = &rubik[MI_SCREEN(mi)];
+
+ if (!rp->glx_context)
+ return;
+ if (!pinit(mi)) {
+ free_rubik(mi);
+ if (MI_IS_VERBOSE(mi)) {
+ (void) fprintf(stderr,
+ "Could not allocate memory for rubik\n");
+ }
+ return;
+ }
+}
+#endif /* !STANDALONE */
+
+#endif
+
+XSCREENSAVER_MODULE ("Rubik", rubik)
diff --git a/hacks/glx/rubik.man b/hacks/glx/rubik.man
new file mode 100644
index 0000000..08e5b94
--- /dev/null
+++ b/hacks/glx/rubik.man
@@ -0,0 +1,69 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+rubik - screen saver that solves Rubik's Cube.
+.SH SYNOPSIS
+.B rubik
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fInumber\fP]
+[\-cycles \fInumber\fP]
+[\-delay \fInumber\fP]
+[\-size \fInumber\fP]
+[\-hideshuffling]
+[\-fps]
+.SH DESCRIPTION
+Draws a Rubik's Cube that rotates in three dimensions and repeatedly
+shuffles and solves itself.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fInumber\fP
+Count. -100 - 100. Default: -30.
+.TP 8
+.B \-cycles \fInumber\fP
+Timeout. 0 - 60. Default: 5.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 40000 (0.04 seconds.).
+.TP 8
+.B \-size \fInumber\fP
+Size. -20 - 20. Default: -6.
+.TP 8
+.B \-hideshuffling | \-no-hideshuffling
+Show Shuffling. Boolean.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Marcelo Vianna. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Marcelo Vianna.
diff --git a/hacks/glx/rubikblocks.c b/hacks/glx/rubikblocks.c
new file mode 100644
index 0000000..fadeb0d
--- /dev/null
+++ b/hacks/glx/rubikblocks.c
@@ -0,0 +1,633 @@
+/* rubikblocks, Copyright (c) 2009 Vasek Potocek <vasek.potocek@post.cz>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* RubikBlocks - a Rubik's Mirror Blocks puzzle introduced in 2008.
+ * No mirrors in this version, though, hence the altered name.
+ */
+
+/* TODO:
+ * add reflection to the faces
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_rubikblocks 0
+# define release_rubikblocks 0
+#include "xlockmore.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+#ifdef USE_GL
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_TEXTURE "True"
+#define DEF_RANDOMIZE "False"
+#define DEF_SPINSPEED "0.1"
+#define DEF_ROTSPEED "3.0"
+#define DEF_WANDERSPEED "0.005"
+#define DEF_WAIT "40.0"
+#define DEF_CUBESIZE "1.0"
+
+#define SHUFFLE 100
+
+#define TEX_WIDTH 64
+#define TEX_HEIGHT 64
+#define BORDER 5
+#define BORDER2 (BORDER*BORDER)
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define rnd01() ((int)(random()%2))
+
+/*************************************************************************/
+
+static Bool spin, wander, rndstart, tex;
+static float spinspeed, tspeed, wspeed, twait, size;
+
+static argtype vars[] = {
+ { &spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ { &wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ { &rndstart, "randomize", "Randomize", DEF_RANDOMIZE, t_Bool},
+ { &tex, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ { &spinspeed, "spinspeed", "SpinSpeed", DEF_SPINSPEED, t_Float},
+ { &tspeed, "rotspeed", "RotSpeed", DEF_ROTSPEED, t_Float},
+ { &wspeed, "wanderspeed", "WanderSpeed", DEF_WANDERSPEED, t_Float},
+ { &twait, "wait", "Wait", DEF_WAIT, t_Float},
+ { &size, "cubesize", "CubeSize", DEF_CUBESIZE, t_Float},
+};
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-randomize", ".randomize", XrmoptionNoArg, "True" },
+ { "+randomize", ".randomize", XrmoptionNoArg, "False" },
+ { "-texture", ".texture", XrmoptionNoArg, "True" },
+ { "+texture", ".texture", XrmoptionNoArg, "False" },
+ { "-spinspeed", ".spinspeed", XrmoptionSepArg, 0 },
+ { "-wanderspeed", ".wanderspeed", XrmoptionSepArg, 0 },
+ { "-rotspeed", ".rotspeed", XrmoptionSepArg, 0 },
+ { "-wait", ".wait", XrmoptionSepArg, 0 },
+ { "-cubesize", ".cubesize", XrmoptionSepArg, 0 },
+};
+
+ENTRYPOINT ModeSpecOpt rubikblocks_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct rubikblocks_description =
+{ "rubikblocks", "init_rubikblocks", "draw_rubikblocks", NULL,
+ "draw_rubikblocks", "change_rubikblocks", NULL, &rubikblocks_opts,
+ 25000, 1, 1, 1, 1.0, 4, "",
+ "Shows randomly shuffling Rubik's Mirror Blocks puzzle", 0, NULL
+};
+#endif
+
+typedef struct {
+ float pos[3]; /* _original_ position */
+ float qr[4]; /* quaternion of rotation */
+ Bool act; /* flag if it is undergoing the current rotation */
+} piece_t;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ GLfloat ratio;
+ Bool button_down;
+
+ Bool pause; /* pause between two rotations */
+ float qfram[4]; /* quaternion describing the rotation in one anim. frame */
+ GLfloat t, tmax; /* rotation clock */
+ piece_t pieces[27]; /* type and tilt of all the pieces */
+
+ unsigned char texture[TEX_HEIGHT][TEX_WIDTH];
+ GLuint list_base;
+ Bool wire;
+} rubikblocks_conf;
+
+static rubikblocks_conf *rubikblocks = NULL;
+
+static const GLfloat shininess = 20.0;
+static const GLfloat ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const GLfloat diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const GLfloat position0[] = {1.0, 1.0, 1.0, 0.0};
+static const GLfloat position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const GLfloat lmodel_ambient[] = {0.1, 0.1, 0.1, 1.0};
+static const GLfloat material_ambient[] = {0.7, 0.7, 0.7, 1.0};
+static const GLfloat material_diffuse[] = {0.7, 0.7, 0.7, 1.0};
+static const GLfloat material_specular[] = {0.2, 0.2, 0.2, 1.0};
+
+/*************************************************************************/
+
+/* Multiplies two quaternions, src*dest, and stores the result in dest. */
+static void
+mult_quat(float src[4], float dest[4])
+{
+ float r, i, j, k;
+ r = src[0]*dest[0] - src[1]*dest[1] - src[2]*dest[2] - src[3]*dest[3];
+ i = src[0]*dest[1] + src[1]*dest[0] + src[2]*dest[3] - src[3]*dest[2];
+ j = src[0]*dest[2] + src[2]*dest[0] + src[3]*dest[1] - src[1]*dest[3];
+ k = src[0]*dest[3] + src[3]*dest[0] + src[1]*dest[2] - src[2]*dest[1];
+ dest[0] = r;
+ dest[1] = i;
+ dest[2] = j;
+ dest[3] = k;
+}
+
+/* Sets the 'act' flag for pieces which will undergo the rotation. */
+static void
+flag_pieces(piece_t pieces[27], int axis, int side)
+{
+ int i, j;
+ float q[4];
+ for(i = 0; i < 27; i++)
+ {
+ q[0] = 0;
+ q[1] = pieces[i].pos[0];
+ q[2] = pieces[i].pos[1];
+ q[3] = pieces[i].pos[2];
+ mult_quat(pieces[i].qr, q);
+ for(j = 1; j < 4; j++)
+ q[j] = -q[j];
+ mult_quat(pieces[i].qr, q);
+ for(j = 1; j < 4; j++)
+ q[j] = -q[j];
+ if(fabs(q[axis] - side) < 0.1)
+ pieces[i].act = True;
+ else
+ pieces[i].act = False;
+ }
+}
+
+/* "Rounds" the value to the nearest from the set {0, +-1/2, +-1/sqrt(2), +-1}.
+ * It is guaranteed to be pretty close to one when this function is called. */
+static float
+settle_value(float v)
+{
+ if(v > 0.9) return 1;
+ else if(v < -0.9) return -1;
+ else if(v > 0.6) return M_SQRT1_2;
+ else if(v < -0.6) return -M_SQRT1_2;
+ else if(v > 0.4) return 0.5;
+ else if(v < -0.4) return -0.5;
+ else return 0;
+}
+
+static void
+randomize(rubikblocks_conf *cp)
+{
+ int axis, side;
+ int i, j;
+ for(i = 0; i < SHUFFLE; i++)
+ {
+ axis = (random()%3)+1;
+ side = rnd01()*2-1;
+ flag_pieces(cp->pieces, axis, side);
+ for(j = 1; j < 4; j++)
+ cp->qfram[j] = 0;
+ cp->qfram[0] = M_SQRT1_2;
+ cp->qfram[axis] = M_SQRT1_2;
+ for(j = 0; j < 27; j++)
+ {
+ if(cp->pieces[j].act)
+ mult_quat(cp->qfram, cp->pieces[j].qr);
+ }
+ }
+}
+
+static void
+finish(rubikblocks_conf *cp)
+{
+ static int axis = 1;
+ int side, angle;
+ int i, j;
+ if(cp->pause)
+ {
+ switch(axis)
+ {
+ case 1:
+ axis = rnd01()+2;
+ break;
+ case 2:
+ axis = 2*rnd01()+1;
+ break;
+ default:
+ axis = rnd01()+1;
+ }
+ side = rnd01()*2-1;
+ angle = rnd01()+1;
+ flag_pieces(cp->pieces, axis, side);
+ cp->pause = False;
+ cp->tmax = 90.0*angle;
+ for(i = 1; i < 4; i++)
+ cp->qfram[i] = 0;
+ cp->qfram[0] = cos(tspeed*M_PI/360);
+ cp->qfram[axis] = sin((rnd01()*2-1)*tspeed*M_PI/360);
+ }
+ else
+ {
+ for(i = 0; i < 27; i++)
+ {
+ for(j = 0; j < 4; j++)
+ {
+ cp->pieces[i].qr[j] = settle_value(cp->pieces[i].qr[j]);
+ }
+ }
+ cp->pause = True;
+ cp->tmax = twait;
+ }
+ cp->t = 0;
+}
+
+static Bool
+draw_main(ModeInfo *mi, rubikblocks_conf *cp)
+{
+ int i;
+ double x, y, z;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ get_position(cp->rot, &x, &y, &z, !cp->button_down);
+ glTranslatef((x-0.5)*6, (y-0.5)*6, -20);
+
+ gltrackball_rotate(cp->trackball);
+
+ get_rotation(cp->rot, &x, &y, &z, !cp->button_down);
+ glRotatef(x*360, 1, 0, 0);
+ glRotatef(y*360, 0, 1, 0);
+ glRotatef(z*360, 0, 0, 1);
+ glScalef(size, size, size);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ if(cp->wire) glColor3f(0.7, 0.7, 0.7);
+ if(!cp->pause)
+ for(i = 0; i < 27; i++)
+ if(cp->pieces[i].act)
+ mult_quat(cp->qfram, cp->pieces[i].qr);
+ for(i = 0; i < 27; i++)
+ {
+ glPushMatrix();
+ if(fabs(cp->pieces[i].qr[0]) < 1)
+ glRotatef(360/M_PI*acos(cp->pieces[i].qr[0]),
+ cp->pieces[i].qr[1], cp->pieces[i].qr[2], cp->pieces[i].qr[3]);
+ glCallList(cp->list_base + i);
+ glPopMatrix();
+ }
+ if((cp->t += tspeed) > cp->tmax) finish(cp);
+ return True;
+}
+
+static void
+draw_horz_line(rubikblocks_conf *cp, int x1, int x2, int y)
+{
+ int x, y0 = y, w;
+ if(y < BORDER) y = -y;
+ else y = -BORDER;
+ for(; y < BORDER; y++) {
+ if(y0+y >= TEX_HEIGHT) break;
+ w = y*y*255/BORDER2;
+ for(x = x1; x <= x2; x++)
+ if(cp->texture[y0+y][x]>w) cp->texture[y0+y][x] = w;
+ }
+}
+
+static void
+draw_vert_line(rubikblocks_conf *cp, int x, int y1, int y2)
+{
+ int x0 = x, y, w;
+ if(x<BORDER) x = -x;
+ else x = -BORDER;
+ for(; x < BORDER; x++) {
+ if(x0+x >= TEX_WIDTH) break;
+ w = x*x*255/BORDER2;
+ for(y = y1; y <= y2; y++)
+ if(cp->texture[y][x0+x]>w) cp->texture[y][x0+x] = w;
+ }
+}
+
+static void
+make_texture(rubikblocks_conf *cp)
+{
+ int x, y;
+ for(y = 0; y < TEX_HEIGHT; y++)
+ for(x = 0; x < TEX_WIDTH; x++)
+ cp->texture[y][x] = 255;
+ draw_horz_line(cp, 0, TEX_WIDTH-1, 0);
+ draw_horz_line(cp, 0, TEX_WIDTH-1, TEX_HEIGHT-1);
+ draw_vert_line(cp, 0, 0, TEX_HEIGHT-1);
+ draw_vert_line(cp, TEX_WIDTH-1, 0, TEX_HEIGHT-1);
+}
+
+/* These simple transforms make the actual shape of the pieces. The parameters
+ * A, B and C affect the excentricity of the pieces in each direction. */
+static float
+fx(float x)
+{
+ const float A = 0.5;
+ if(x > 1.4) return 1.5 - A;
+ else if(x < -1.4) return -1.5 - A;
+ else return x;
+}
+
+static float
+fy(float y)
+{
+ const float B = 0.25;
+ if(y > 1.4) return 1.5 - B;
+ else if(y < -1.4) return -1.5 - B;
+ else return y;
+}
+
+static float
+fz(float z)
+{
+ const float C = 0.0;
+ if(z > 1.4) return 1.5 - C;
+ else if(z < -1.4) return -1.5 - C;
+ else return z;
+}
+
+static void
+init_lists(rubikblocks_conf *cp)
+{
+ GLuint base;
+ int i;
+ float x, y, z;
+ base = cp->list_base = glGenLists(27);
+ for(i = 0; i < 27; i++)
+ {
+ x = cp->pieces[i].pos[0];
+ y = cp->pieces[i].pos[1];
+ z = cp->pieces[i].pos[2];
+ glNewList(base+i, GL_COMPILE);
+ glBegin(GL_QUAD_STRIP);
+ glNormal3f(1, 0, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(fx(x+0.5), fy(y-0.5), fz(z-0.5));
+ glTexCoord2f(0, 1);
+ glVertex3f(fx(x+0.5), fy(y+0.5), fz(z-0.5));
+ glTexCoord2f(1, 0);
+ glVertex3f(fx(x+0.5), fy(y-0.5), fz(z+0.5));
+ glTexCoord2f(1, 1);
+ glVertex3f(fx(x+0.5), fy(y+0.5), fz(z+0.5));
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(0, 0);
+ glVertex3f(fx(x-0.5), fy(y-0.5), fz(z+0.5));
+ glTexCoord2f(0, 1);
+ glVertex3f(fx(x-0.5), fy(y+0.5), fz(z+0.5));
+ glNormal3f(-1, 0, 0);
+ glTexCoord2f(1, 0);
+ glVertex3f(fx(x-0.5), fy(y-0.5), fz(z-0.5));
+ glTexCoord2f(1, 1);
+ glVertex3f(fx(x-0.5), fy(y+0.5), fz(z-0.5));
+ glNormal3f(0, 0, -1);
+ glTexCoord2f(0, 0);
+ glVertex3f(fx(x+0.5), fy(y-0.5), fz(z-0.5));
+ glTexCoord2f(0, 1);
+ glVertex3f(fx(x+0.5), fy(y+0.5), fz(z-0.5));
+ glEnd();
+ glBegin(GL_QUADS);
+ glNormal3f(0, 1, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(fx(x+0.5), fy(y+0.5), fz(z+0.5));
+ glTexCoord2f(0, 1);
+ glVertex3f(fx(x+0.5), fy(y+0.5), fz(z-0.5));
+ glTexCoord2f(1, 1);
+ glVertex3f(fx(x-0.5), fy(y+0.5), fz(z-0.5));
+ glTexCoord2f(1, 0);
+ glVertex3f(fx(x-0.5), fy(y+0.5), fz(z+0.5));
+ glNormal3f(0, -1, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(fx(x+0.5), fy(y-0.5), fz(z-0.5));
+ glTexCoord2f(0, 1);
+ glVertex3f(fx(x+0.5), fy(y-0.5), fz(z+0.5));
+ glTexCoord2f(1, 1);
+ glVertex3f(fx(x-0.5), fy(y-0.5), fz(z+0.5));
+ glTexCoord2f(1, 0);
+ glVertex3f(fx(x-0.5), fy(y-0.5), fz(z-0.5));
+ glEnd();
+ glEndList();
+ }
+}
+
+/* It looks terrible... FIXME: any other ideas, maybe some anisotropic filtering? */
+/*#define MIPMAP*/
+
+static void
+init_gl(ModeInfo *mi)
+{
+ rubikblocks_conf *cp = &rubikblocks[MI_SCREEN(mi)];
+#ifdef MIPMAP
+ int status;
+#endif
+ cp->wire = MI_IS_WIREFRAME(mi);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ cp->wire = 0;
+# endif
+
+ if(MI_IS_MONO(mi))
+ tex = False;
+ if(cp->wire) {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ return;
+ }
+
+ glClearDepth(1.0);
+ glDrawBuffer(GL_BACK);
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ glShadeModel(GL_FLAT);
+ glDepthFunc(GL_LESS);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_COLOR_MATERIAL);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material_ambient);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material_diffuse);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material_specular);
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
+ if (!tex) return;
+ glEnable(GL_TEXTURE_2D);
+#ifdef MIPMAP
+ clear_gl_error();
+ status = gluBuild2DMipmaps(GL_TEXTURE_2D, 1, TEX_WIDTH, TEX_HEIGHT,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, cp->texture);
+ if (status) {
+ const char *s = (char *)gluErrorString(status);
+ fprintf (stderr, "%s: error mipmapping texture: %s\n", progname, (s?s:"(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+#else
+ glTexImage2D(GL_TEXTURE_2D, 0, 1, TEX_WIDTH, TEX_HEIGHT,
+ 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, cp->texture);
+#endif
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+#ifdef MIPMAP
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+#else
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+#endif
+}
+
+static void
+init_cp(rubikblocks_conf *cp)
+{
+ int i, j, k, m;
+
+ cp->pause = True;
+ cp->t = 0.0;
+ cp->tmax = twait;
+
+ for(i = -1, m = 0; i <= 1; i++)
+ for(j = -1; j <= 1; j++)
+ for(k = -1; k <= 1; k++)
+ {
+ cp->pieces[m].pos[0] = k;
+ cp->pieces[m].pos[1] = j;
+ cp->pieces[m].pos[2] = i;
+ cp->pieces[m].qr[0] = 1;
+ cp->pieces[m].qr[1] = 0;
+ cp->pieces[m].qr[2] = 0;
+ cp->pieces[m].qr[3] = 0;
+ m++;
+ }
+
+ cp->rot = make_rotator(spin?spinspeed:0, spin?spinspeed:0, spin?spinspeed:0,
+ 0.1, wander?wspeed:0, True);
+ cp->trackball = gltrackball_init(True);
+
+ if(rndstart) randomize(cp);
+}
+
+/*************************************************************************/
+
+ENTRYPOINT void
+reshape_rubikblocks(ModeInfo *mi, int width, int height)
+{
+ rubikblocks_conf *cp = &rubikblocks[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ }
+ if(!height) height = 1;
+ cp->ratio = (GLfloat)width/(GLfloat)height;
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(30.0, cp->ratio, 1.0, 100.0);
+ glMatrixMode(GL_MODELVIEW);
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+ENTRYPOINT void
+init_rubikblocks(ModeInfo *mi)
+{
+ rubikblocks_conf *cp;
+ MI_INIT(mi, rubikblocks);
+ cp = &rubikblocks[MI_SCREEN(mi)];
+
+ if(tex)
+ make_texture(cp);
+
+ if ((cp->glx_context = init_GL(mi)) != NULL)
+ {
+ init_gl(mi);
+ init_cp(cp);
+ init_lists(cp);
+ reshape_rubikblocks(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_rubikblocks(ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ rubikblocks_conf *cp;
+ if (!rubikblocks) return;
+ cp = &rubikblocks[MI_SCREEN(mi)];
+ MI_IS_DRAWN(mi) = True;
+ if (!cp->glx_context) return;
+ mi->polygon_count = 0;
+ glXMakeCurrent(display, window, *(cp->glx_context));
+ if (!draw_main(mi, cp))
+ {
+ MI_ABORT(mi);
+ return;
+ }
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glFlush();
+ glXSwapBuffers(display, window);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_rubikblocks(ModeInfo * mi)
+{
+ rubikblocks_conf *cp = &rubikblocks[MI_SCREEN(mi)];
+ if (!cp->glx_context) return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cp->glx_context));
+ init_gl(mi);
+}
+#endif /* !STANDALONE */
+
+ENTRYPOINT Bool
+rubikblocks_handle_event (ModeInfo *mi, XEvent *event)
+{
+ rubikblocks_conf *cp = &rubikblocks[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, cp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &cp->button_down))
+ return True;
+
+ return False;
+}
+
+
+XSCREENSAVER_MODULE ("RubikBlocks", rubikblocks)
+
+#endif
diff --git a/hacks/glx/rubikblocks.man b/hacks/glx/rubikblocks.man
new file mode 100644
index 0000000..c18d18f
--- /dev/null
+++ b/hacks/glx/rubikblocks.man
@@ -0,0 +1,117 @@
+.TH XScreenSaver 1 "04-Feb-09" "X Version 11"
+.SH NAME
+rubikblocks - animates the Rubik's Mirror Blocks puzzle
+.SH SYNOPSIS
+.B rubikblocks
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-install]
+[\-delay \fImicroseconds\fP]
+[\-texture] [\-no\-texture]
+[\-mono]
+[\-wireframe]
+[\-spin] [\-no\-spin]
+[\-wander] [\-no\-wander]
+[\-randomize] [\-no\-randomize]
+[\-spinspeed \fInumber\fP]
+[\-rotspeed \fInumber\fP]
+[\-wanderspeed \fInumber\fP]
+[\-wait \fInumber\fP]
+[\-cubesize \fInumber\fP]
+[\-fps]
+.SH DESCRIPTION
+This program animates a puzzle called Rubik's Mirror Blocks.
+The moves are chosen randomly.
+.SH OPTIONS
+.I rubikblocks
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How long to pause between frames. Default is 20000, or 0.02 second.
+.TP 8
+.B \-texture
+Use texture maps. This is the default.
+.TP 8
+.B \-no\-texture
+Use solid colors. Looks a bit weird.
+.TP 8
+.B \-mono
+Disable both texture maps and colors. Ditto.
+.TP 8
+.B \-wireframe
+Only draw outlines. Outlines of each piece, not only the whole object, are drawn.
+.TP 8
+.B \-spin
+Spin the whole object around X, Y and Z axes. This is the default.
+.TP 8
+.B \-no\-spin
+Do not spin, stay in the same tilt all the time.
+.TP 8
+.B \-wander
+Move the object around the screen. This is the default.
+.TP 8
+.B \-no\-wander
+Keep the object centered on the screen.
+.TP 8
+.B \-randomize
+Shuffle the puzzle randomly at startup. This is the default.
+.TP 8
+.B \-no\-randomize
+Do not shuffle at startup, begin at the shape of cube.
+.TP 8
+.B \-spinspeed \fInumber\fP
+The relative speed of spinning. Default is 1.0.
+.TP 8
+.B \-rotspeed \fInumber\fP
+The relative speed of the moves. Default is 3.0. Setting to \(<= 0.0
+makes the object stay at one configuration.
+.TP 8
+.B \-wanderspeed \fInumber\fP
+The relative speed of wandering around the screen. Default is 0.02.
+.TP 8
+.B \-wait \fInumber\fP
+How long to stay at final position after each move. The meaning of
+the argument is again relative. Default is 40.0.
+.TP 8
+.B \-cubesize \fInumber\fP
+Size of the object. Value of 3.0 fills roughly all the screen.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2009 by Vasek Potocek. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Vasek Potocek <vasek.potocek@post.cz>, 04-Feb-09.
diff --git a/hacks/glx/s1_1.c b/hacks/glx/s1_1.c
new file mode 100644
index 0000000..1f93429
--- /dev/null
+++ b/hacks/glx/s1_1.c
@@ -0,0 +1,1733 @@
+#include "gllist.h"
+static const float data[]={
+ 0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
+ 0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+ 0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
+ 0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
+ 0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
+ 0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
+ 0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+ 0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
+ 0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.911846,0.410531,0,0.738539,0.926712,-0.5,
+ 0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
+ 0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
+ 0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
+ 0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
+ 0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
+ 0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
+ 0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
+ 0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
+ 0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
+ 0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
+ 0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
+ 0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
+ 0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
+ 0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+ 0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
+ 0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
+ 0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
+ 0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
+ 0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
+ 0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
+ 0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
+ 0.911846,0.410531,0,0.738539,0.926712,-0.5,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
+ 0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+ 0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+ 0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+ 0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
+ 0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+ 0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
+ 0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+ 0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+ 0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
+ 0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+ 0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
+ 0.244558,0.969635,0,0.677562,0.965162,-0.5,
+ 0.592505,0.805566,0,0.7215,0.950535,-0.5,
+ 0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+ 0.244558,0.969635,0,0.677562,0.965162,-0.5,
+ 0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+ 0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+ 0.911846,0.410531,0,0.738539,0.926712,-0.5,
+ 0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
+ 0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+ 0.911846,0.410531,0,0.738539,0.926712,-0.5,
+ 0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+ 0.592505,0.805566,0,0.7215,0.950535,-0.5,
+ 0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
+ 0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
+ 0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
+ 0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
+ 0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+ 0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
+ 0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
+ 0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
+ 0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+ 0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
+ 0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+ 0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+ 0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
+ 0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
+ 0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
+ 0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
+ 0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+ 0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
+ 0.911846,0.410531,0,0.738539,0.926712,-0.5,
+ 0.592505,0.805566,0,0.7215,0.950535,-0.5,
+ 0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+ 0.911846,0.410531,0,0.738539,0.926712,-0.5,
+ 0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+ 0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
+ 0.244558,0.969635,0,0.677562,0.965162,-0.5,
+ 0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+ 0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+ 0.244558,0.969635,0,0.677562,0.965162,-0.5,
+ 0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+ 0.592505,0.805566,0,0.7215,0.950535,-0.5,
+ 0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
+ 0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+ 0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
+ 0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
+ 0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
+ 0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
+ 0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+ 0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ 0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
+ 0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ 0,0.410531,0.911846,0.5,0.926712,-0.261461,
+ 0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
+ 0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
+ 0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ 0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
+ 0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
+ 0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
+ 0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
+ 0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
+ 0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
+ -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
+ -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
+ -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
+ -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
+ -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
+ -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+ -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
+ -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
+ -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
+ -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
+ -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
+ -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
+ -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
+ 0,0.410531,0.911846,0.5,0.926712,-0.261461,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
+ -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ 0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+ -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+ -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+ -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
+ 0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+ -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
+ -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+ -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+ -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
+ -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+ -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+ 0,0.969635,0.244558,0.5,0.965162,-0.322437,
+ 0,0.805567,0.592505,0.5,0.950535,-0.2785,
+ -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+ 0,0.969635,0.244558,0.5,0.965162,-0.322437,
+ -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+ -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+ 0,0.410531,0.911846,0.5,0.926712,-0.261461,
+ -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
+ -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+ 0,0.410531,0.911846,0.5,0.926712,-0.261461,
+ -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+ 0,0.805567,0.592505,0.5,0.950535,-0.2785,
+ -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
+ -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
+ -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+ -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+ -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+ -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
+ 0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
+ 0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
+ 0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+ 0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
+ 0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+ 0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+ 0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
+ 0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
+ 0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
+ 0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
+ 0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+ 0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
+ 0,0.410531,0.911846,0.5,0.926712,-0.261461,
+ 0,0.805567,0.592505,0.5,0.950535,-0.2785,
+ 0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+ 0,0.410531,0.911846,0.5,0.926712,-0.261461,
+ 0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+ 0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
+ 0,0.969635,0.244558,0.5,0.965162,-0.322437,
+ 0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+ 0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+ 0,0.969635,0.244558,0.5,0.965162,-0.322437,
+ 0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+ 0,0.805567,0.592505,0.5,0.950535,-0.2785,
+ -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
+ -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+ -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
+ -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
+ -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
+ -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
+ -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+ -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
+ -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+ -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
+ -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
+ -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
+ -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
+ -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
+ -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
+ -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
+ -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
+ -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
+ -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
+ -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
+ -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
+ -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
+ -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+ -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
+ -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
+ -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
+ -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
+ -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
+ -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
+ -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
+ -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
+ -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+ -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+ -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+ -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
+ -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+ -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
+ -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+ -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+ -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
+ -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+ -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
+ -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+ -0.592505,0.805566,0,0.2785,0.950535,-0.5,
+ -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+ -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+ -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+ -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+ -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+ -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
+ -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+ -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+ -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+ -0.592505,0.805566,0,0.2785,0.950535,-0.5,
+ -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
+ -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
+ -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
+ -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
+ -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+ -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
+ -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
+ -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+ -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+ -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
+ -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+ -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+ -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+ -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
+ -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
+ -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
+ -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+ -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+ -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+ -0.592505,0.805566,0,0.2785,0.950535,-0.5,
+ -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+ -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+ -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+ -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
+ -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+ -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+ -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+ -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+ -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+ -0.592505,0.805566,0,0.2785,0.950535,-0.5,
+ -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
+ -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+ -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
+ -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
+ -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
+ -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
+ -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+ 0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
+ -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ 0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+ -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
+ -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
+ -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
+ -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
+ -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
+ -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
+ -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
+ -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
+ 0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
+ 0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
+ 0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
+ 0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
+ 0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
+ 0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+ 0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
+ 0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
+ 0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
+ 0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
+ 0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
+ 0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
+ 0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
+ 0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ 0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
+ 0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ 0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+ 0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+ 0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+ 0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
+ 0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+ 0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
+ 0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+ 0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+ 0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
+ 0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+ 0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
+ 0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+ 0,0.805567,-0.592505,0.5,0.950535,-0.7215,
+ 0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+ 0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+ 0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+ 0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+ 0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+ 0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
+ 0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+ 0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+ 0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+ 0,0.805567,-0.592505,0.5,0.950535,-0.7215,
+ 0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
+ 0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
+ 0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
+ 0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
+ 0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+ 0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
+ -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
+ -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
+ -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+ -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
+ -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+ -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+ -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
+ -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
+ -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
+ -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
+ -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+ -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
+ 0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+ 0,0.805567,-0.592505,0.5,0.950535,-0.7215,
+ -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+ 0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+ -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+ -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
+ 0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+ -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+ -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+ 0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+ -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+ 0,0.805567,-0.592505,0.5,0.950535,-0.7215,
+ 0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
+ 0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+ 0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+ 0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
+ 0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+ 0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+ 0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+ 0,0.969635,0.244558,0.5,0.965162,-0.322437,
+ 0,0.996384,0.08496,0.5,0.973972,-0.40225,
+ 0,0.996384,0.08496,0.5,0.973972,-0.40225,
+ 0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+ 0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+ 0,1,0,0.5,0.976924,-0.5,
+ 0.08496,0.996384,0,0.59775,0.973972,-0.5,
+ 0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+ 0,1,0,0.5,0.976924,-0.5,
+ 0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+ 0,0.996384,0.08496,0.5,0.973972,-0.40225,
+ 0.08496,0.996384,0,0.59775,0.973972,-0.5,
+ 0.244558,0.969635,0,0.677562,0.965162,-0.5,
+ 0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+ 0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+ 0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+ 0.08496,0.996384,0,0.59775,0.973972,-0.5,
+ -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
+ -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+ -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+ -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
+ -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+ -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+ -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+ -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+ -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+ -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+ -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+ -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+ 0,1,0,0.5,0.976924,-0.5,
+ 0,0.996384,0.08496,0.5,0.973972,-0.40225,
+ -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+ 0,1,0,0.5,0.976924,-0.5,
+ -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+ -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+ 0,0.996384,0.08496,0.5,0.973972,-0.40225,
+ 0,0.969635,0.244558,0.5,0.965162,-0.322437,
+ -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+ -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+ -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+ 0,0.996384,0.08496,0.5,0.973972,-0.40225,
+ -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
+ -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+ -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+ -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
+ -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+ -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+ -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+ 0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+ 0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+ 0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+ -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+ -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+ 0,1,0,0.5,0.976924,-0.5,
+ -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+ -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+ 0,1,0,0.5,0.976924,-0.5,
+ -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+ 0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+ -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+ -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+ -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+ -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+ -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+ -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+ 0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
+ 0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+ 0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+ 0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
+ 0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+ 0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+ 0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+ 0.244558,0.969635,0,0.677562,0.965162,-0.5,
+ 0.08496,0.996384,0,0.59775,0.973972,-0.5,
+ 0.08496,0.996384,0,0.59775,0.973972,-0.5,
+ 0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+ 0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+ 0,1,0,0.5,0.976924,-0.5,
+ 0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+ 0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+ 0,1,0,0.5,0.976924,-0.5,
+ 0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+ 0.08496,0.996384,0,0.59775,0.973972,-0.5,
+ 0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+ 0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+ 0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+ 0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+ 0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+ 0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+ 0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+ 0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
+ 0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
+ 0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
+ 0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
+ 0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+ 0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
+ 0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
+ 0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
+ 0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
+ 0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
+ 0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
+ 0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
+ 0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+ 0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+ 0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+ 0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
+ 0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
+ 0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+ 0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+ 0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
+ 0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+ 0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
+ 0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
+ 0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
+ 0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
+ 0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
+ 1,-0.00015,0,0.709531,0.494688,-0.5,
+ 0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+ 0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+ 0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
+ 0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
+ 0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+ 0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
+ 0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
+ 0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+ 0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
+ 0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+ 0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
+ 0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
+ 0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
+ 0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
+ 0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
+ 0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
+ 0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
+ 0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
+ 0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
+ 0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
+ 0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
+ 0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
+ 0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
+ 0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
+ 0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+ 0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+ 0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
+ 0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+ 0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
+ 0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
+ 0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+ 1,-0.00015,0,0.709531,0.494688,-0.5,
+ 0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
+ 0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
+ 0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
+ 0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+ 0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
+ 0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
+ 0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+ 0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+ 0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
+ 0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
+ 0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+ 0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+ 0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
+ 0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+ 0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
+ 0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+ 0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+ 0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+ 0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
+ 0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
+ 0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
+ 0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+ 0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
+ 0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
+ 0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
+ 0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
+ 0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
+ 0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
+ -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+ -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
+ -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
+ -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
+ -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
+ -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+ -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
+ -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
+ -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
+ -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
+ -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
+ -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
+ -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
+ 0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+ 0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+ 0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+ -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
+ -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
+ 0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+ -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+ -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
+ 0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+ -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
+ 0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
+ -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
+ -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
+ -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
+ 0,-0.00015,-1,0.5,0.494688,-0.709531,
+ 0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+ 0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+ -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
+ -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
+ 0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+ -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
+ -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
+ 0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+ -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
+ 0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+ -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
+ -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
+ -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
+ -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
+ -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
+ -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
+ 0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
+ 0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
+ 0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
+ 0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
+ 0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
+ 0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
+ 0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
+ 0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
+ 0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+ 0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+ 0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
+ 0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+ 0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
+ 0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
+ 0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+ 0,-0.00015,-1,0.5,0.494688,-0.709531,
+ 0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
+ 0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
+ 0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
+ 0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+ 0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
+ 0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
+ 0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+ 0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+ 0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
+ 0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
+ 0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+ 0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+ 0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
+ 0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+ 0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
+ 0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+ 0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+ 0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+ 0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
+ 0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
+ 0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
+ 0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+ 0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
+ 0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
+ 0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
+ 0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
+ 0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
+ 0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
+ -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
+ -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
+ -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+ -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+ -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
+ -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
+ 0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+ 0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+ -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
+ 0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+ -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
+ -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+ 0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+ 0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+ -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
+ -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
+ -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
+ 0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+ -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
+ -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
+ -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
+ -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
+ -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
+ -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
+ 0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+ 0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
+ 0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
+ 0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
+ 0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
+ 0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+ 0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
+ 0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
+ 0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
+ 0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
+ 0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
+ 0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
+ 0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
+ 0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+ 0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+ 0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+ 0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
+ 0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
+ 0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+ 0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+ 0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
+ 0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+ 0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
+ 0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
+ 0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
+ 0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
+ 0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
+ 0,-0.00015,1,0.5,0.494688,-0.290469,
+ 0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+ 0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+ 0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
+ 0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
+ 0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+ 0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
+ 0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
+ 0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+ 0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
+ 0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+ 0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
+ 0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
+ 0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
+ 0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
+ 0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
+ 0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
+ -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
+ -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
+ -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
+ -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
+ -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
+ -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
+ -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
+ -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
+ 0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+ 0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+ -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
+ 0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+ -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
+ -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
+ 0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+ 0,-0.00015,1,0.5,0.494688,-0.290469,
+ -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
+ -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
+ -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
+ 0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+ -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
+ -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
+ -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+ -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+ -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
+ -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
+ -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+ -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+ -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
+ -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+ -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
+ -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+ -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+ -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+ -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
+ -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
+ -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
+ -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+ -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
+ -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
+ -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
+ -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
+ -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
+ -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
+ -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+ -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
+ -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
+ -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
+ -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
+ -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+ -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
+ -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
+ -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
+ -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
+ -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
+ -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
+ -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
+ -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+ -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+ -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+ -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
+ -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
+ -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+ -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+ -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
+ -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+ -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
+ -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
+ -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
+ -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
+ -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
+ -1,-0.00015,0,0.290469,0.494688,-0.5,
+ -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+ -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+ -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
+ -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
+ -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+ -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
+ -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
+ -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+ -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
+ -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+ -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
+ -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
+ -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
+ -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
+ -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
+ -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
+ -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
+ -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
+ -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
+ -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
+ -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
+ -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
+ -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
+ -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
+ -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+ -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+ -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
+ -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+ -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
+ -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
+ -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+ -1,-0.00015,0,0.290469,0.494688,-0.5,
+ -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
+ -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
+ -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
+ -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+ -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
+ -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
+ -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
+ -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
+ -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
+ -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
+ 0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+ 0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+ -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
+ 0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+ -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
+ -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
+ 0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+ 0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+ -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
+ -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
+ -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
+ 0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+ -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
+ -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
+ -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
+ -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
+ -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
+ -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
+ 0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
+ 0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
+ 0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
+ 0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
+ 0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
+ 0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
+ 0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
+ 0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
+ 0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
+ 0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
+ 0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
+ 0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
+ 0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
+ 0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+ 0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+ 0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+ 0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
+ 0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
+ 0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+ 0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
+ 0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
+ 0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+ 0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
+ 0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
+ 0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
+ 0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
+ 0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
+ 0,-0.00015,-1,0.5,0.494688,-0.709531,
+ 0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+ 0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+ 0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
+ 0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
+ 0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+ 0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
+ 0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
+ 0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+ 0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
+ 0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+ 0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
+ 0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
+ 0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
+ 0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
+ 0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
+ 0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
+ -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
+ -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
+ -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
+ -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
+ -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
+ -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
+ -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
+ -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
+ 0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+ 0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+ -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
+ 0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+ -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
+ -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
+ 0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+ 0,-0.00015,-1,0.5,0.494688,-0.709531,
+ -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
+ -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
+ -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
+ 0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+ -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
+ -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
+ -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
+ -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
+ -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
+ -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
+ -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
+ -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
+ -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
+ -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
+ -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
+ -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
+ -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
+ -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+ -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+ -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+ -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
+ -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
+ -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+ -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
+ -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
+ -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+ -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
+ -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
+ -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
+ -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
+ -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
+ -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
+ -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
+ -1,-0.00015,0,0.290469,0.494688,-0.5,
+ -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+ -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+ -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
+ -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
+ -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+ -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
+ -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
+ -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+ -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
+ -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+ -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
+ -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
+ -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
+ -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
+ -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
+ -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
+ -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
+ -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
+ -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
+ -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
+ -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
+ -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
+ -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
+ -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
+ -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+ -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+ -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
+ -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+ -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
+ -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
+ -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+ -1,-0.00015,0,0.290469,0.494688,-0.5,
+ -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
+ -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
+ -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
+ -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+ -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
+ -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
+ -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
+ -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
+ -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
+ -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
+ -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+ -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+ -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
+ -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+ -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
+ -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
+ -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+ -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+ -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
+ -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
+ -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
+ -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+ -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
+ -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
+ -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
+ -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
+ -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
+ -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
+ -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
+ -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
+ -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
+ -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
+ -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
+ -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
+ -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
+ -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
+ -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
+ -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
+ -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
+ -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
+ -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
+ 0,0.04874,0.998811,0.5,0.295922,-0.285195,
+ 0,0.079157,0.996862,0.5,0.207062,-0.279219,
+ 0,0.079157,0.996862,0.5,0.207062,-0.279219,
+ -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
+ -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
+ 0,0.12379,0.992308,0.5,0.132531,-0.271484,
+ -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
+ -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
+ 0,0.12379,0.992308,0.5,0.132531,-0.271484,
+ -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
+ 0,0.079157,0.996862,0.5,0.207062,-0.279219,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
+ -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
+ -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
+ -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
+ -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
+ -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
+ 0,-0.00015,1,0.5,0.494688,-0.290469,
+ 0,0.022461,0.999748,0.5,0.393625,-0.289063,
+ 0,0.022461,0.999748,0.5,0.393625,-0.289063,
+ -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
+ -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
+ 0,0.04874,0.998811,0.5,0.295922,-0.285195,
+ -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
+ -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
+ 0,0.04874,0.998811,0.5,0.295922,-0.285195,
+ -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
+ 0,0.022461,0.999748,0.5,0.393625,-0.289063,
+ -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
+ -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
+ -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
+ -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
+ -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
+ -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
+ 0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
+ 0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
+ 0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
+ 0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
+ 0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
+ 0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
+ 0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
+ 0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
+ 0,0.04874,0.998811,0.5,0.295922,-0.285195,
+ 0,0.022461,0.999748,0.5,0.393625,-0.289063,
+ 0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
+ 0,0.04874,0.998811,0.5,0.295922,-0.285195,
+ 0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
+ 0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
+ 0,0.022461,0.999748,0.5,0.393625,-0.289063,
+ 0,-0.00015,1,0.5,0.494688,-0.290469,
+ 0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
+ 0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
+ 0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
+ 0,0.022461,0.999748,0.5,0.393625,-0.289063,
+ 0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
+ 0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
+ 0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
+ 0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
+ 0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
+ 0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
+ 0,0.12379,0.992308,0.5,0.132531,-0.271484,
+ 0,0.079157,0.996862,0.5,0.207062,-0.279219,
+ 0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
+ 0,0.12379,0.992308,0.5,0.132531,-0.271484,
+ 0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
+ 0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
+ 0,0.079157,0.996862,0.5,0.207062,-0.279219,
+ 0,0.04874,0.998811,0.5,0.295922,-0.285195,
+ 0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
+ 0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
+ 0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
+ 0,0.079157,0.996862,0.5,0.207062,-0.279219,
+ 0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
+ 0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
+ 0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
+ 0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
+ 0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
+ 0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
+ 0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
+ 0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
+ 0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
+ 0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
+ 0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
+ 0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
+ 0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
+ 0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
+ 0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
+ 0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
+ 0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
+ 0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
+ 0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
+ 0.998811,0.048741,0,0.714805,0.295922,-0.5,
+ 0.996862,0.079157,0,0.720781,0.207062,-0.5,
+ 0.996862,0.079157,0,0.720781,0.207062,-0.5,
+ 0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
+ 0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
+ 0.992308,0.12379,0,0.728516,0.132531,-0.5,
+ 0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
+ 0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
+ 0.992308,0.12379,0,0.728516,0.132531,-0.5,
+ 0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
+ 0.996862,0.079157,0,0.720781,0.207062,-0.5,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
+ 0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
+ 0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
+ 0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
+ 0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
+ 0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
+ 1,-0.00015,0,0.709531,0.494688,-0.5,
+ 0.999748,0.022461,0,0.710938,0.393625,-0.5,
+ 0.999748,0.022461,0,0.710938,0.393625,-0.5,
+ 0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
+ 0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
+ 0.998811,0.048741,0,0.714805,0.295922,-0.5,
+ 0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
+ 0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
+ 0.998811,0.048741,0,0.714805,0.295922,-0.5,
+ 0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
+ 0.999748,0.022461,0,0.710938,0.393625,-0.5,
+ 0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
+ 0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
+ 0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
+ 0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
+ 0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
+ 0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
+ 0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
+ 0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
+ 0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
+ 0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
+ 0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
+ 0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
+ 0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
+ 0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
+ 0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
+ 0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
+ 0.998811,0.048741,0,0.714805,0.295922,-0.5,
+ 0.999748,0.022461,0,0.710938,0.393625,-0.5,
+ 0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
+ 0.998811,0.048741,0,0.714805,0.295922,-0.5,
+ 0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
+ 0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
+ 0.999748,0.022461,0,0.710938,0.393625,-0.5,
+ 1,-0.00015,0,0.709531,0.494688,-0.5,
+ 0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
+ 0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
+ 0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
+ 0.999748,0.022461,0,0.710938,0.393625,-0.5,
+ 0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
+ 0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
+ 0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
+ 0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
+ 0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
+ 0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
+ 0.992308,0.12379,0,0.728516,0.132531,-0.5,
+ 0.996862,0.079157,0,0.720781,0.207062,-0.5,
+ 0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
+ 0.992308,0.12379,0,0.728516,0.132531,-0.5,
+ 0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
+ 0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
+ 0.996862,0.079157,0,0.720781,0.207062,-0.5,
+ 0.998811,0.048741,0,0.714805,0.295922,-0.5,
+ 0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
+ 0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
+ 0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
+ 0.996862,0.079157,0,0.720781,0.207062,-0.5,
+ 0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
+ 0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
+ 0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
+ 0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
+ 0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
+ 0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
+ 0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
+ 0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
+ 0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
+ 0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
+ 0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
+ 0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
+ 0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
+ 0.992308,0.12379,0,0.728516,0.132531,-0.5,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
+ 0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+ 0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+ 0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+ 0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+ 0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
+ 0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
+ 0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
+ 0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
+ 0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+ 0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
+ 0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
+ 0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
+ 0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
+ 0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
+ 0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
+ 0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
+ 0.663755,-0.344758,-0.663755,0.674539,0.040427,-0.674539,
+ 0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
+ 0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
+ 0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
+ 0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
+ 0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
+ 0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
+ 0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.992308,0.12379,0,0.728516,0.132531,-0.5,
+ 0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
+ 0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
+ 0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
+ 0.995686,0.092789,0,0.737656,0.077813,-0.5,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+ 0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.596646,-0.802505,0,0.7215,0.015465,-0.5,
+ 0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+ 0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
+ 0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+ 0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+ 0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+ 0.596646,-0.802505,0,0.7215,0.015465,-0.5,
+ 0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
+ 0.663755,-0.344758,-0.663755,0.674539,0.040427,-0.674539,
+ 0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
+ 0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
+ 0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+ 0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
+ 0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
+ 0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
+ 0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+ 0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+ 0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+ 0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
+ 0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+ 0.596646,-0.802505,0,0.7215,0.015465,-0.5,
+ 0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+ 0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+ 0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+ 0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+ 0.596646,-0.802505,0,0.7215,0.015465,-0.5,
+ 0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
+ 0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
+ 0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
+ 0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
+ 0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
+ 0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
+ 0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
+ 0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ 0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
+ 0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ 0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+ 0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
+ 0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
+ 0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ 0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
+ 0.663755,-0.344758,-0.663755,0.674539,0.040427,-0.674539,
+ 0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
+ 0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
+ 0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
+ 0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
+ -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
+ -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
+ -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
+ -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
+ -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
+ -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
+ -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
+ -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
+ -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+ -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+ -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
+ -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
+ -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+ 0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
+ -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ 0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+ -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
+ -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
+ -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
+ 0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+ -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ 0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
+ -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ 0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+ -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+ -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+ 0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+ -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+ 0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
+ -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+ -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
+ -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
+ -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
+ -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+ -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
+ 0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
+ 0.663755,-0.344758,-0.663755,0.674539,0.040427,-0.674539,
+ 0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
+ 0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
+ 0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+ 0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
+ 0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+ 0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
+ 0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+ 0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+ 0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+ 0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ 0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+ 0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
+ -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
+ -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
+ -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
+ -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
+ -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
+ -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
+ -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
+ -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
+ -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+ -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+ -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+ -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+ -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
+ -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
+ -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
+ -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
+ -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+ -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
+ -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
+ -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
+ -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
+ -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
+ -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
+ -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
+ -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
+ -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+ -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+ -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
+ -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
+ -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+ -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
+ -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+ -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
+ -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
+ -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
+ -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+ -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
+ -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+ -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+ -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+ -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+ -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+ -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
+ -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+ -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
+ -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
+ -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
+ -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+ -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
+ -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
+ -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
+ -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+ -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+ -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+ -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
+ -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+ -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
+ -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+ -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+ -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+ -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+ -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
+ -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
+ -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
+ -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
+ -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
+ -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
+ -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
+ -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
+ 0,0.12379,0.992308,0.5,0.132531,-0.271484,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
+ -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ 0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+ -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+ -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+ -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+ -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
+ -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
+ -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
+ -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
+ -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+ 0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
+ 0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
+ 0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
+ 0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
+ 0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
+ 0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
+ 0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
+ 0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
+ 0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+ 0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+ 0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
+ 0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
+ 0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+ 0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ 0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
+ 0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ 0,0.12379,0.992308,0.5,0.132531,-0.271484,
+ 0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
+ 0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
+ 0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
+ 0,0.092789,0.995686,0.5,0.077813,-0.262344,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+ 0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ 0,-0.802505,0.596646,0.5,0.015465,-0.2785,
+ 0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ 0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+ 0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+ 0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+ 0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+ 0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+ 0,-0.802505,0.596646,0.5,0.015465,-0.2785,
+ 0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+ 0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
+ 0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
+ 0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
+ 0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+ 0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
+ -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
+ -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
+ -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+ -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+ -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+ -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
+ 0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+ 0,-0.802505,0.596646,0.5,0.015465,-0.2785,
+ -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+ 0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+ -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+ -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+ 0,-0.802505,0.596646,0.5,0.015465,-0.2785,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
+const struct gllist *s1_1=&frame;
diff --git a/hacks/glx/s1_2.c b/hacks/glx/s1_2.c
new file mode 100644
index 0000000..5f494de
--- /dev/null
+++ b/hacks/glx/s1_2.c
@@ -0,0 +1,1733 @@
+#include "gllist.h"
+static const float data[]={
+ 0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+ 0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+ 0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+ 0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+ 0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+ 0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+ 0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+ 0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+ 0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+ 0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+ 0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+ 0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+ 0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+ 0.973132,0.23025,0,0.945338,0.554869,-0.5,
+ 0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+ 0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+ 0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+ 0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+ 0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+ 0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+ 0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+ 0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+ 0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+ 0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+ 0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+ 0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+ 0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+ 0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+ 0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+ 0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+ 0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+ 0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+ 0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+ 0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+ 0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+ 0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+ 0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+ 0.973132,0.23025,0,0.945338,0.554869,-0.5,
+ 0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+ 0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+ 0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+ 0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+ 0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+ 0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+ 0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+ 0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+ 0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+ 0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+ 0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
+ 0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+ 0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+ 0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
+ 0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+ 0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+ 0.546916,0.837188,0,0.897467,0.608935,-0.5,
+ 0.788799,0.614652,0,0.934249,0.5808,-0.5,
+ 0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+ 0.546916,0.837188,0,0.897467,0.608935,-0.5,
+ 0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+ 0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+ 0.973132,0.23025,0,0.945338,0.554869,-0.5,
+ 0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+ 0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+ 0.973132,0.23025,0,0.945338,0.554869,-0.5,
+ 0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+ 0.788799,0.614652,0,0.934249,0.5808,-0.5,
+ 0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+ 0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+ 0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+ 0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+ 0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+ 0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+ 0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
+ 0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+ 0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+ 0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
+ 0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+ 0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+ 0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+ 0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+ 0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+ 0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+ 0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+ 0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+ 0.973132,0.23025,0,0.945338,0.554869,-0.5,
+ 0.788799,0.614652,0,0.934249,0.5808,-0.5,
+ 0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+ 0.973132,0.23025,0,0.945338,0.554869,-0.5,
+ 0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+ 0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+ 0.546916,0.837188,0,0.897467,0.608935,-0.5,
+ 0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+ 0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+ 0.546916,0.837188,0,0.897467,0.608935,-0.5,
+ 0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+ 0.788799,0.614652,0,0.934249,0.5808,-0.5,
+ 0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+ 0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
+ 0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
+ 0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+ 0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
+ 0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+ 0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
+ 0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
+ 0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+ 0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+ 0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
+ 0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
+ 0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
+ 0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
+ 0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
+ 0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
+ 0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
+ 0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+ 0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+ 0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+ 0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
+ 0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+ 0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
+ 0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
+ -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
+ -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
+ -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
+ -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
+ -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
+ -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
+ -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
+ -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
+ -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
+ -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
+ -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
+ -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
+ -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
+ 0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
+ 0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+ 0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+ -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
+ -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
+ 0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
+ -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
+ -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
+ 0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
+ -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
+ 0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+ 0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
+ 0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+ 0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+ 0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
+ 0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+ -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
+ 0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+ 0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
+ 0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+ 0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+ 0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+ 0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+ 0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
+ -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
+ 0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+ 0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
+ 0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+ 0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+ -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
+ -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
+ -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
+ -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
+ 0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+ -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
+ 0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
+ 0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
+ 0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+ 0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+ 0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+ 0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
+ 0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+ 0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
+ 0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+ 0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+ 0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+ 0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+ 0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
+ 0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+ 0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+ 0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
+ 0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+ 0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
+ 0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
+ 0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
+ 0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+ 0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
+ 0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+ 0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+ -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
+ -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
+ -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
+ -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
+ -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+ -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+ -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+ -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
+ -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+ -0.655082,0.755558,0,0.487673,0.709673,-0.5,
+ -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
+ -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
+ -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+ -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+ -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
+ -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
+ -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+ -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
+ -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+ -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
+ -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
+ -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
+ -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
+ -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
+ -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+ -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
+ -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
+ -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
+ -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+ -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
+ -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+ -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
+ -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
+ -0.655082,0.755558,0,0.487673,0.709673,-0.5,
+ -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+ -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+ -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+ -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
+ -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+ -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+ 0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
+ 0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+ -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+ 0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
+ -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+ -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
+ 0.084449,0.996428,0,0.561689,0.724552,-0.5,
+ -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+ -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+ 0.084449,0.996428,0,0.561689,0.724552,-0.5,
+ -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+ 0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+ -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+ -0.655082,0.755558,0,0.487673,0.709673,-0.5,
+ -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
+ -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
+ -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+ -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+ -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
+ -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
+ -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+ -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
+ -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+ -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
+ 0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
+ -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
+ -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+ 0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
+ -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+ 0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+ -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
+ -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
+ -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+ -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
+ -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+ -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
+ -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
+ -0.655082,0.755558,0,0.487673,0.709673,-0.5,
+ -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+ -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+ -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+ -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
+ 0.084449,0.996428,0,0.561689,0.724552,-0.5,
+ 0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+ -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+ 0.084449,0.996428,0,0.561689,0.724552,-0.5,
+ -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+ -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+ -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
+ -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
+ -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
+ -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
+ -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
+ -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
+ 0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
+ 0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
+ -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
+ 0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
+ -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
+ -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
+ 0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
+ 0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
+ -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
+ -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
+ -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
+ 0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
+ -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
+ -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
+ -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
+ -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
+ -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
+ -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
+ 0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+ 0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+ 0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+ 0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+ 0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+ 0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
+ 0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+ 0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
+ 0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+ 0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+ 0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+ 0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+ 0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
+ 0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
+ 0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+ 0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
+ 0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+ 0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
+ 0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
+ 0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
+ 0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
+ 0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
+ 0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+ 0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
+ 0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+ 0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
+ 0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
+ 0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
+ 0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+ 0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+ 0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
+ 0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+ 0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+ 0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
+ 0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+ 0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
+ 0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
+ 0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
+ 0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+ 0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
+ 0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+ 0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+ 0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+ 0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+ 0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+ 0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+ 0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+ 0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
+ 0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
+ -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
+ 0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+ 0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
+ 0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+ 0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+ -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
+ -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
+ -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
+ -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
+ 0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+ -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
+ 0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
+ 0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+ 0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+ 0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
+ 0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+ -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
+ 0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+ 0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
+ 0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+ 0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+ 0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+ 0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+ 0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
+ 0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
+ 0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+ 0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
+ 0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+ 0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+ 0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
+ 0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
+ 0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+ 0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+ 0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+ 0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.404722,0.91444,0,0.824871,0.64325,-0.5,
+ 0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+ 0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+ 0.404722,0.91444,0,0.824871,0.64325,-0.5,
+ 0.546916,0.837188,0,0.897467,0.608935,-0.5,
+ 0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+ 0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+ 0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+ 0.404722,0.91444,0,0.824871,0.64325,-0.5,
+ 0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
+ 0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+ 0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+ 0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
+ 0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+ 0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+ 0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+ 0.084449,0.996428,0,0.561689,0.724552,-0.5,
+ 0.24406,0.96976,0,0.640022,0.706898,-0.5,
+ 0.24406,0.96976,0,0.640022,0.706898,-0.5,
+ 0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+ 0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+ 0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+ 0.24406,0.96976,0,0.640022,0.706898,-0.5,
+ 0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+ 0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
+ 0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+ 0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+ 0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+ 0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+ 0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
+ 0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+ 0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+ 0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
+ 0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+ 0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+ 0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+ 0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
+ 0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+ 0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+ 0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+ 0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.24406,0.96976,0,0.640022,0.706898,-0.5,
+ 0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+ 0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+ 0.24406,0.96976,0,0.640022,0.706898,-0.5,
+ 0.084449,0.996428,0,0.561689,0.724552,-0.5,
+ 0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+ 0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+ 0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+ 0.24406,0.96976,0,0.640022,0.706898,-0.5,
+ 0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
+ 0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+ 0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+ 0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
+ 0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+ 0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
+ 0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+ 0.546916,0.837188,0,0.897467,0.608935,-0.5,
+ 0.404722,0.91444,0,0.824871,0.64325,-0.5,
+ 0.404722,0.91444,0,0.824871,0.64325,-0.5,
+ 0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+ 0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+ 0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+ 0.325568,0.945519,0,0.733407,0.677865,-0.5,
+ 0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+ 0.404722,0.91444,0,0.824871,0.64325,-0.5,
+ 0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+ 0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
+ 0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
+ 0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
+ 0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+ 0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+ 0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+ 0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+ 0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
+ 0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+ 0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
+ 0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+ 0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+ 0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
+ 0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+ 0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+ 0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
+ 0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+ 0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+ 0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+ 0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
+ 0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+ 0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
+ 0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+ 0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+ 0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+ 0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+ 0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+ 0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
+ 0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+ 0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+ 0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+ 0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+ 0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+ 0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+ 0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+ 0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+ 0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+ 0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+ 0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+ 0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+ 0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+ 0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+ 0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+ 0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
+ 0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+ 0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+ 0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
+ 0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+ 0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+ 0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+ 0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+ 0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+ 0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+ 0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+ 0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+ 0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
+ 0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+ 0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+ 0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
+ 0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+ 0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+ 0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+ 0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+ 0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+ 0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+ 0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+ 0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+ 0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+ 0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+ 0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+ 0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+ 0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
+ 0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+ 0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
+ 0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
+ 0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+ 0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+ 0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+ 0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+ 0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
+ 0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+ 0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+ 0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+ 0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
+ 0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+ 0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
+ 0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+ 0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+ 0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
+ 0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
+ 0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
+ 0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
+ 0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+ -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
+ -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+ -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
+ -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
+ -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
+ -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
+ -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+ -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+ -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
+ -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
+ -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
+ -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+ 0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
+ 0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
+ -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
+ 0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
+ -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
+ -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
+ 0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
+ 0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
+ -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
+ -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
+ -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
+ 0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
+ -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+ -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+ -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+ -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+ -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+ -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+ 0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+ 0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+ -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+ 0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+ -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+ -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+ 0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+ 0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
+ -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
+ -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
+ -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+ 0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+ -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+ -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+ -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+ -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+ -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+ -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
+ 0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+ 0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+ 0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+ 0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+ 0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+ 0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+ 0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+ 0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
+ 0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
+ 0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
+ 0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+ 0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+ 0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
+ 0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+ 0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+ 0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
+ 0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+ 0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
+ 0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+ 0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+ 0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+ 0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+ 0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+ 0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+ 0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+ 0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+ 0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
+ 0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
+ 0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
+ 0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+ 0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
+ 0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
+ 0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
+ 0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
+ 0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
+ 0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
+ 0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
+ 0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
+ 0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
+ 0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
+ 0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
+ 0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
+ 0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
+ 0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+ 0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
+ 0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
+ 0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
+ 0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
+ -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
+ -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
+ -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
+ -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
+ -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
+ -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+ -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
+ 0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
+ 0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
+ 0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
+ -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
+ -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
+ 0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
+ -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
+ -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
+ 0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
+ -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
+ 0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
+ -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
+ -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+ -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+ -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+ -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
+ -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
+ 0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
+ 0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+ 0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
+ 0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
+ 0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
+ 0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
+ 0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
+ 0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
+ 0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
+ 0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
+ 0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
+ 0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
+ 0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
+ 0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
+ 0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
+ 0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
+ 0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
+ 0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
+ 0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
+ 0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
+ 0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
+ 0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
+ 0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
+ 0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
+ 0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+ 0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+ 0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+ 0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+ 0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+ 0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+ 0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+ 0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+ 0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+ 0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+ 0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+ 0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+ 0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
+ 0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
+ 0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+ 0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
+ 0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+ 0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+ 0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
+ 0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
+ 0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+ 0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+ 0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+ 0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
+ -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+ -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+ -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+ -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+ -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+ -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+ -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+ -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
+ -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+ -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+ -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+ -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+ -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
+ 0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
+ 0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+ 0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+ -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+ -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
+ 0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+ -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+ -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+ 0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+ -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+ 0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+ -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+ -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
+ -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
+ -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
+ -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
+ -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+ -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
+ -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
+ -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+ -0.718122,0.695917,0,0.317323,0.526334,-0.5,
+ -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
+ -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
+ -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
+ -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+ -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+ -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+ -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
+ -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+ -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
+ -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
+ -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
+ -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
+ -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+ -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+ -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
+ -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
+ -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+ -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
+ -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
+ -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+ -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
+ -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+ -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
+ -0.718122,0.695917,0,0.317323,0.526334,-0.5,
+ -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+ -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+ -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
+ -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
+ -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
+ -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+ -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
+ -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+ -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+ -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+ -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+ -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+ -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+ -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+ -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+ -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+ -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+ -0.718122,0.695917,0,0.317323,0.526334,-0.5,
+ -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
+ -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
+ -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+ -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+ -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
+ -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+ -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+ -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+ -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+ -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
+ -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+ -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+ -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+ -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+ -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+ -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+ -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+ -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+ -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
+ -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
+ -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+ -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+ -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
+ -0.718122,0.695917,0,0.317323,0.526334,-0.5,
+ -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+ -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+ -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+ -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+ -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+ -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+ -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+ -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
+ -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+ -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+ -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+ -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
+ -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
+ -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
+ -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+ -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
+ -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+ -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
+ -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
+ -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+ -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+ -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+ -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+ -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
+ -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+ -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
+ -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
+ -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
+ -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+ -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+ 0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+ 0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+ 0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
+ 0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+ 0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
+ 0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
+ 0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+ 0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+ 0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
+ 0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
+ 0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
+ 0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+ -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+ -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
+ 0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
+ -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+ 0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
+ 0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
+ -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
+ -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
+ 0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
+ 0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
+ 0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
+ -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
+ 0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+ 0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+ 0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+ 0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+ 0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+ 0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+ 0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+ -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+ 0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+ 0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+ 0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+ 0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+ -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+ -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+ 0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
+ 0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
+ 0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+ -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+ 0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+ 0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+ 0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+ 0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+ 0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+ 0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
+ -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+ -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+ -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+ -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+ -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+ -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+ -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
+ -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+ -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+ -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
+ -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+ -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+ -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+ -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+ -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+ -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+ -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+ -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+ -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+ 0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+ -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+ -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+ -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+ -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+ -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+ -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
+ -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+ -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+ -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+ -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
+ -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
+ -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
+ -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+ -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+ -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+ -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
+ -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+ -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+ -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+ -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+ -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+ -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+ -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+ -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+ -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
+ -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
+ -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+ -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+ -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+ -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+ -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+ -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+ -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+ -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+ -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+ -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+ -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+ -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+ -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+ -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+ -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+ -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+ -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
+ -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+ -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+ -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
+ -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+ -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+ -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+ -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+ -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+ -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+ -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+ -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+ -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
+ -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+ -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+ -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
+ -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+ -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+ -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+ -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+ -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+ -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+ -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+ -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+ -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+ -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+ -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+ -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+ -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+ -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
+ -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+ -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+ -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+ -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
+ -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
+ -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+ -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+ -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+ -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+ -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
+ -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+ -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+ -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+ -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+ -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+ -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+ -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+ -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
+ -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
+ -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
+ -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+ -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+ -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+ -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
+ -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
+ -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+ -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
+ -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
+ -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
+ -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
+ -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+ -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+ -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
+ -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
+ -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+ -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+ -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
+ -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
+ -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
+ -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+ -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
+ -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
+ -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
+ -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
+ -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
+ -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
+ -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+ -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+ -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+ -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+ -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+ -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+ -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+ 0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+ -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+ -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+ -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+ -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+ -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+ -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+ -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+ -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+ -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+ -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+ -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
+ -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+ -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+ -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
+ -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+ -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+ 0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+ 0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+ 0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+ 0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+ 0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+ 0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+ 0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+ 0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
+ 0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+ 0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+ 0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+ 0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+ 0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
+ -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+ -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+ -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+ 0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+ 0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
+ 0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+ 0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+ 0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+ 0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+ 0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+ -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+ 0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+ 0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
+ 0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
+ 0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+ 0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
+ 0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+ 0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
+ -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
+ -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
+ -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
+ 0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
+ 0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
+ -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+ 0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
+ 0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
+ -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+ 0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
+ -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
+ 0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
+ 0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+ 0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+ 0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+ 0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
+ 0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
+ 0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+ 0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+ 0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
+ 0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+ 0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
+ 0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
+ 0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+ 0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+ 0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+ 0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+ 0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
+ 0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+ 0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+ 0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+ 0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
+ 0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+ 0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
+ 0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+ 0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+ 0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+ 0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
+ 0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
+ 0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
+ 0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+ 0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+ 0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+ 0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+ 0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+ 0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+ 0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+ 0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+ 0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+ 0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+ 0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+ 0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+ 0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+ 0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+ 0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+ 0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+ 0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+ 0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+ 0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+ 0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+ 0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+ 0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+ 0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+ 0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+ 0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+ 0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+ 0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+ 0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+ 0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+ 0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+ 0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+ 0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+ 0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+ 0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+ 0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+ 0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+ 0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+ 0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+ 0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+ 0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+ 0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+ 0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+ 0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+ 0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+ 0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
+ 0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
+ 0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+ 0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
+ 0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+ 0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
+ 0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+ 0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+ 0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+ 0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
+ 0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
+ 0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+ 0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+ 0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
+ 0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+ 0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
+ 0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+ 0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+ 0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+ 0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+ 0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+ 0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
+ 0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+ 0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+ 0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+ 0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
+ 0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
+ 0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
+ 0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+ 0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+ 0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+ 0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
+ 0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+ 0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
+ 0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
+ 0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+ 0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+ 0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
+ 0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
+ 0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
+ 0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+ 0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+ 0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+ 0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
+ 0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+ 0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
+ 0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
+ 0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
+ 0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+ 0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+ 0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+ 0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
+ 0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
+ 0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+ 0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
+ 0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
+ 0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+ 0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
+ 0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+ 0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
+ 0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+ 0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+ 0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+ 0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
+ 0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
+ 0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+ 0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
+ 0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
+ 0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+ 0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
+ 0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+ 0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.528671,-0.848827,0,0.7215,0.015465,-0.5,
+ 0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+ 0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
+ 0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+ 0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+ 0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+ 0.528671,-0.848827,0,0.7215,0.015465,-0.5,
+ 0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
+ 0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+ 0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
+ 0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
+ 0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+ 0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
+ 0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
+ 0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+ 0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
+ 0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
+ 0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+ 0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
+ 0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+ 0.528671,-0.848827,0,0.7215,0.015465,-0.5,
+ 0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+ 0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+ 0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+ 0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+ 0.528671,-0.848827,0,0.7215,0.015465,-0.5,
+ 0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+ 0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+ 0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
+ 0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
+ 0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
+ 0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+ -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
+ -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
+ 0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
+ -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
+ 0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
+ 0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
+ -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
+ -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
+ 0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+ 0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+ 0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
+ -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
+ 0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+ 0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+ 0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
+ 0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+ 0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
+ 0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+ -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
+ -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+ -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
+ -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
+ -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+ -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
+ -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
+ -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
+ -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+ -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
+ -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+ -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
+ -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
+ -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
+ -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+ -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
+ -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+ -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
+ -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
+ -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
+ -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
+ -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
+ -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+ -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+ -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
+ -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
+ -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
+ -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+ -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
+ -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+ -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
+ -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
+ -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
+ -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
+ -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
+ -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+ -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
+ 0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
+ 0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+ 0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+ 0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+ 0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+ 0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
+ -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
+ -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
+ 0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+ -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
+ 0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+ 0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ 0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+ -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
+ -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
+ -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+ -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
+ -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
+ -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+ -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
+ -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+ -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+ -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+ -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+ -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+ -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
+ -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+ -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+ -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
+ -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
+ -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+ -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+ -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
+ -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
+ -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+ -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
+ -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+ -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
+ -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
+ -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+ -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
+ -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
+ -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+ -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
+ -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
+ -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
+ -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+ -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
+ -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+ -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
+ -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
+ -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+ -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+ -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+ -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+ -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
+ -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+ -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
+ -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+ -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+ -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+ -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+ -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
+ -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+ -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
+ -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+ -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+ -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+ -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
+ -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
+ -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
+ -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
+ -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
+ -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+ -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
+ -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
+ -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
+ -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
+ -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
+ -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+ -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
+ -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+ -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
+ -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+ -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+ -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+ -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+ -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
+ -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
+ -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+ -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
+ -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
+ -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
+ -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
+ -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
+ -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
+ -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
+ -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
+ -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
+ -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
+ -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
+ -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
+ -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
+ -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
+ -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
+ -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
+ -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
+ -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
+ -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
+ -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
+ -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
+ -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
+ 0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
+ 0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+ 0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+ 0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+ 0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
+ 0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
+ 0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+ 0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+ 0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
+ 0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+ 0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
+ 0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+ 0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+ -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
+ -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
+ -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
+ 0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
+ 0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+ -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
+ 0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
+ 0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
+ -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
+ 0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
+ -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+ 0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
+ 0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ 0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
+ 0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+ 0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+ -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
+ 0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+ -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
+ 0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+ 0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+ 0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
+ 0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
+ 0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+ 0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
+ -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
+ -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
+ -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
+ -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
+ -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+ -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
+ -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
+ -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
+ -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+ -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
+ -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+ -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+ -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+ 0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ 0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+ -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+ 0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+ -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+ -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0,-1,0,0.5,-0.010924,-0.5,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+ 0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+ 0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+ 0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
+const struct gllist *s1_2=&frame;
diff --git a/hacks/glx/s1_3.c b/hacks/glx/s1_3.c
new file mode 100644
index 0000000..eea1304
--- /dev/null
+++ b/hacks/glx/s1_3.c
@@ -0,0 +1,1733 @@
+#include "gllist.h"
+static const float data[]={
+ 0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
+ 0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
+ 0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+ 0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+ 0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
+ 0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
+ 0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+ 0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+ 0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
+ 0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+ 0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
+ 0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+ 0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+ 0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+ 0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+ 0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+ 0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
+ 0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+ 0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+ 0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
+ 0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
+ 0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+ 0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
+ 0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+ 0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+ 0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
+ 0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
+ 0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
+ 0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
+ 0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+ 0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+ 0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+ 0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
+ 0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+ 0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
+ 0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
+ 0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+ 0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+ 0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+ 0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+ 0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
+ 0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+ 0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+ 0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+ 0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
+ 0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+ 0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
+ 0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+ 0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+ 0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
+ 0.962007,0.273026,0,1.230206,0.391113,-0.5,
+ 0.992798,-0.119797,0,1.239508,0.345749,-0.5,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.962007,0.273026,0,1.230206,0.391113,-0.5,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+ 0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+ 0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.992798,-0.119797,0,1.239508,0.345749,-0.5,
+ 0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+ 0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+ 0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+ 0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+ 0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+ 0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+ 0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+ 0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
+ 0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+ 0.992798,-0.119797,0,1.239508,0.345749,-0.5,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+ 0.962007,0.273026,0,1.230206,0.391113,-0.5,
+ 0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.962007,0.273026,0,1.230206,0.391113,-0.5,
+ 0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+ 0.992798,-0.119797,0,1.239508,0.345749,-0.5,
+ 0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
+ 0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
+ 0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
+ 0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
+ 0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
+ 0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
+ 0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
+ -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
+ -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
+ -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
+ 0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
+ 0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
+ 0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+ 0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
+ 0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
+ 0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+ 0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
+ -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
+ 0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
+ 0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+ 0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
+ 0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
+ 0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
+ 0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
+ -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
+ -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
+ -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
+ -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
+ -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
+ -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
+ -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
+ 0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
+ -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
+ -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
+ -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
+ -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
+ 0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
+ 0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+ -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
+ -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
+ -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
+ 0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
+ -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
+ -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
+ -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
+ -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
+ -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
+ -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
+ 0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+ 0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+ 0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
+ 0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
+ 0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+ 0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+ 0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+ 0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+ 0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+ 0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+ 0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+ 0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
+ 0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+ 0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
+ 0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+ 0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+ 0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+ 0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+ 0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
+ -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
+ 0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+ 0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+ 0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+ 0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
+ 0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+ 0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
+ 0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+ 0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+ 0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+ 0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
+ 0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
+ 0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+ 0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
+ 0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
+ 0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+ 0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
+ 0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+ 0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+ 0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+ 0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+ 0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+ 0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
+ 0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+ 0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+ 0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
+ 0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
+ 0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+ 0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+ -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
+ -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
+ -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
+ -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
+ -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
+ -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
+ -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
+ -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+ -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+ -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+ -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
+ -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
+ -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
+ -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+ -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
+ -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
+ -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
+ -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
+ -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
+ -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
+ -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
+ -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
+ -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
+ -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
+ -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
+ -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
+ -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
+ -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
+ -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
+ -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
+ -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
+ -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+ -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
+ -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
+ -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+ -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+ -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
+ -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
+ -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
+ -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+ 0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+ 0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+ 0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+ 0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+ 0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+ 0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+ 0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+ 0.739038,0.673664,0,1.052644,0.698661,-0.5,
+ 0.507297,0.861771,0,1.018008,0.729398,-0.5,
+ 0.507297,0.861771,0,1.018008,0.729398,-0.5,
+ 0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+ 0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
+ 0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ 0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+ 0.507297,0.861771,0,1.018008,0.729398,-0.5,
+ -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
+ -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
+ 0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+ 0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+ 0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+ -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
+ 0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+ 0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+ 0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+ 0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+ 0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+ 0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+ 0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+ -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
+ -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
+ -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
+ 0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+ 0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ 0.507297,0.861771,0,1.018008,0.729398,-0.5,
+ 0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+ -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+ 0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+ -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
+ 0.507297,0.861771,0,1.018008,0.729398,-0.5,
+ 0.739038,0.673664,0,1.052644,0.698661,-0.5,
+ 0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+ 0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+ 0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+ 0.507297,0.861771,0,1.018008,0.729398,-0.5,
+ -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
+ -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
+ -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
+ -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
+ -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
+ -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
+ -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
+ -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
+ -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
+ -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
+ -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
+ -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
+ -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
+ 0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+ 0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
+ 0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
+ -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
+ -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
+ -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
+ -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
+ -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
+ -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
+ -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
+ 0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
+ 0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
+ 0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
+ 0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
+ 0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
+ 0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
+ 0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
+ 0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
+ 0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+ 0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+ 0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+ 0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
+ 0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
+ 0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+ -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
+ 0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
+ 0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+ 0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
+ 0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+ -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
+ -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
+ 0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
+ 0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
+ 0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
+ -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
+ 0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+ 0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
+ 0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+ 0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+ 0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+ 0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
+ 0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
+ 0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+ 0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+ 0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+ 0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+ 0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
+ 0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+ 0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+ 0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+ 0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+ 0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+ 0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+ 0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+ 0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+ 0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
+ 0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
+ 0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+ 0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+ 0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
+ 0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+ 0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+ 0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+ 0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+ 0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
+ 0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+ -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
+ 0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
+ 0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
+ 0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+ 0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+ 0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+ 0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+ 0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+ 0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+ 0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+ 0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
+ 0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+ 0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
+ 0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+ 0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+ 0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+ 0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+ 0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+ 0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
+ 0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+ 0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+ 0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+ 0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+ 0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
+ 0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+ 0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+ 0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+ 0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+ 0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.905374,0.424615,0,1.19793,0.464638,-0.5,
+ 0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+ 0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+ 0.905374,0.424615,0,1.19793,0.464638,-0.5,
+ 0.962007,0.273026,0,1.230206,0.391113,-0.5,
+ 0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+ 0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+ 0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+ 0.905374,0.424615,0,1.19793,0.464638,-0.5,
+ 0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+ 0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+ 0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+ 0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+ 0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+ 0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
+ 0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+ 0.739038,0.673664,0,1.052644,0.698661,-0.5,
+ 0.820414,0.57177,0,1.10018,0.633946,-0.5,
+ 0.820414,0.57177,0,1.10018,0.633946,-0.5,
+ 0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+ 0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+ 0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+ 0.820414,0.57177,0,1.10018,0.633946,-0.5,
+ 0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+ 0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+ 0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
+ 0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
+ 0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+ 0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+ 0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+ 0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
+ 0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+ 0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+ 0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+ 0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+ 0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
+ 0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+ 0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+ 0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+ 0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+ 0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.820414,0.57177,0,1.10018,0.633946,-0.5,
+ 0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+ 0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+ 0.820414,0.57177,0,1.10018,0.633946,-0.5,
+ 0.739038,0.673664,0,1.052644,0.698661,-0.5,
+ 0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+ 0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+ 0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+ 0.820414,0.57177,0,1.10018,0.633946,-0.5,
+ 0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+ 0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+ 0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+ 0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+ 0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+ 0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
+ 0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+ 0.962007,0.273026,0,1.230206,0.391113,-0.5,
+ 0.905374,0.424615,0,1.19793,0.464638,-0.5,
+ 0.905374,0.424615,0,1.19793,0.464638,-0.5,
+ 0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+ 0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+ 0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+ 0.866025,0.5,0,1.151611,0.550768,-0.5,
+ 0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+ 0.905374,0.424615,0,1.19793,0.464638,-0.5,
+ 0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+ 0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+ 0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
+ 0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
+ 0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+ 0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+ 0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
+ 0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
+ 0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
+ 0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
+ 0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
+ 0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+ 0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
+ 0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
+ 0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
+ 0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
+ 0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
+ 0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
+ 0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+ 0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+ 0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
+ 0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+ 0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
+ 0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
+ 0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+ 0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+ 0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+ 0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+ 0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
+ 0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+ 0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+ 0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+ 0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+ 0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+ 0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+ 0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+ 0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+ 0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+ 0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+ 0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+ 0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+ 0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+ 0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+ 0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+ 0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
+ 0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
+ 0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+ 0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+ 0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
+ 0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+ 0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+ 0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
+ 0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+ 0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
+ 0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+ 0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+ 0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+ 0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+ 0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+ 0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+ 0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
+ 0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
+ 0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+ 0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
+ 0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+ 0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+ 0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
+ 0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+ 0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+ 0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+ 0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+ 0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
+ 0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+ 0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+ 0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+ 0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+ 0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+ 0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+ 0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
+ 0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+ 0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+ 0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
+ 0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+ 0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
+ 0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+ 0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+ 0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+ 0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+ 0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+ 0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+ 0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+ 0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
+ 0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+ 0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+ 0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+ 0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+ 0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
+ 0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
+ 0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
+ 0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
+ 0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+ 0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
+ -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
+ -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
+ -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
+ -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
+ -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
+ -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
+ -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
+ -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
+ -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+ -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+ -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
+ -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
+ 0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+ 0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+ -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
+ 0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+ -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
+ -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+ 0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+ -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
+ -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
+ -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
+ -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
+ 0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+ -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+ -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
+ -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
+ -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
+ -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
+ -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+ 0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
+ 0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+ -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
+ 0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
+ -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
+ -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
+ 0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+ 0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+ -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+ -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+ -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
+ 0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+ -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
+ -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+ -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
+ -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
+ -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
+ -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+ 0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+ 0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+ 0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+ 0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+ 0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+ 0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
+ 0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+ 0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
+ 0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
+ 0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
+ 0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+ 0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+ 0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+ 0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+ 0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+ 0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+ 0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+ 0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
+ 0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+ 0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
+ 0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
+ 0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
+ 0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+ 0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+ 0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
+ 0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
+ 0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
+ 0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
+ 0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
+ 0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
+ -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
+ 0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+ 0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
+ -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
+ 0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
+ 0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
+ 0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+ 0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+ 0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
+ 0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
+ 0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
+ 0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+ 0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
+ 0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
+ 0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
+ 0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
+ 0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
+ 0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
+ -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
+ -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
+ -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
+ -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
+ -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
+ -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
+ -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
+ -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
+ 0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+ 0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+ -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
+ -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
+ 0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+ -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
+ -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
+ 0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+ -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
+ 0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+ -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
+ -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
+ -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
+ -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
+ -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
+ -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
+ 0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
+ 0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
+ 0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
+ 0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
+ 0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
+ 0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
+ 0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
+ 0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
+ 0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
+ 0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
+ 0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
+ 0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
+ 0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
+ 0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+ 0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+ 0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+ 0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
+ 0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
+ -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
+ 0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
+ 0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
+ -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
+ 0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
+ 0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+ 0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+ 0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+ 0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+ 0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+ 0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+ 0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+ 0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+ 0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+ 0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+ 0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+ 0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+ 0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+ 0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+ 0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
+ 0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+ 0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+ 0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+ 0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+ 0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
+ 0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
+ 0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+ 0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+ 0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+ 0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
+ -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
+ -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
+ -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+ -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+ -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
+ -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
+ -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
+ -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
+ -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
+ -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
+ -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
+ -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+ -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
+ 0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+ 0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+ 0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+ -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
+ -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
+ 0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+ -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
+ -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
+ 0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+ -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
+ 0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+ -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
+ -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
+ -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
+ -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
+ -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
+ -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
+ -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+ -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+ -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
+ -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+ -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
+ -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
+ -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+ -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+ -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
+ -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
+ -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
+ -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+ -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
+ -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
+ -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
+ -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
+ -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
+ -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
+ -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
+ -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
+ -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
+ -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
+ -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
+ -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
+ -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
+ -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
+ -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
+ -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
+ -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
+ -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
+ -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
+ -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+ -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+ -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+ -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
+ -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
+ -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+ -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
+ -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
+ -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+ -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
+ -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+ -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
+ -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+ -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
+ -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
+ -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
+ -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+ -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+ -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+ -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+ -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+ -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
+ -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+ -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+ -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
+ -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
+ -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+ -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
+ -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+ -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
+ -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
+ -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+ -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+ -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
+ -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
+ -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
+ -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+ -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
+ -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
+ -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
+ -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+ -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+ -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
+ -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
+ -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
+ -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
+ -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+ -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+ -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+ -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
+ -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+ -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
+ -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
+ -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+ -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+ -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+ -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+ -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
+ -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+ -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
+ -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
+ -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
+ -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
+ -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
+ -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
+ 0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
+ -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
+ -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
+ 0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
+ -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
+ -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
+ -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
+ -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
+ -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+ -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+ -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
+ -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
+ -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
+ -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
+ -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
+ -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
+ -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
+ -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+ 0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+ 0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+ 0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
+ 0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+ 0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
+ 0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+ 0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+ 0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
+ 0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
+ 0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
+ 0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
+ 0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+ -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
+ -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
+ 0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
+ -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
+ 0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
+ 0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
+ -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
+ 0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
+ 0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+ 0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+ 0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
+ -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
+ 0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+ 0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+ 0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
+ 0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
+ 0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
+ 0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+ 0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
+ -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
+ 0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
+ 0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
+ 0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
+ 0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
+ -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
+ -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
+ 0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
+ 0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
+ 0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
+ -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
+ 0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
+ 0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+ 0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
+ 0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
+ 0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
+ 0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
+ -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
+ -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
+ -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
+ -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
+ -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
+ -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
+ -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
+ -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
+ -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+ -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+ -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
+ -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
+ -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
+ -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
+ -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
+ -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
+ -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
+ -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+ -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
+ 0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
+ -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
+ -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
+ -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
+ -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
+ -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+ -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
+ -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
+ -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
+ -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+ -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+ -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
+ -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
+ -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+ -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
+ -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+ -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
+ -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
+ -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+ -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+ -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+ -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+ -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
+ -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+ -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+ -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+ -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+ -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+ -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+ -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
+ -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
+ -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+ -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+ -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
+ -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
+ -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+ -0.716797,0.697282,0,0.501029,0.437003,-0.5,
+ -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
+ -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+ -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
+ -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+ -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+ -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
+ -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
+ -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+ -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
+ -0.716797,0.697282,0,0.501029,0.437003,-0.5,
+ -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
+ -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
+ -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
+ -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
+ -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
+ -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
+ -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+ -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
+ -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
+ -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
+ -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
+ -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+ -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
+ -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
+ -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
+ -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
+ -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
+ -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
+ -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+ -0.716797,0.697282,0,0.501029,0.437003,-0.5,
+ -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
+ -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+ -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
+ -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
+ -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+ -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+ -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
+ -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+ -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
+ -0.716797,0.697282,0,0.501029,0.437003,-0.5,
+ -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
+ -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
+ -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+ -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+ -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+ -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
+ -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+ -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+ -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+ -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+ -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+ -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+ -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+ -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+ -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
+ -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
+ -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+ -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+ -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
+ -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
+ -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+ -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
+ -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+ -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
+ -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
+ -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
+ -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
+ -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
+ -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
+ -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
+ -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
+ -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+ -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
+ -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
+ -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
+ -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
+ -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+ -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
+ -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
+ -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
+ -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
+ -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+ 0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
+ -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
+ -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
+ 0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
+ -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
+ -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
+ -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
+ -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
+ -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
+ -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
+ -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
+ -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
+ -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
+ 0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+ -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
+ -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
+ -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
+ -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
+ -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
+ -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+ -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
+ -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
+ -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
+ -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
+ -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+ -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
+ -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
+ -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
+ -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
+ -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+ 0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+ 0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+ 0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+ 0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+ 0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
+ 0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+ 0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
+ 0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
+ 0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
+ 0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
+ 0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
+ 0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+ 0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
+ -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
+ -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
+ -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
+ 0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
+ 0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
+ 0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+ 0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+ 0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
+ 0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+ 0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
+ -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
+ 0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+ 0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+ 0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
+ 0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+ 0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
+ 0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+ 0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+ 0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
+ -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
+ -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
+ 0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
+ 0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+ -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
+ 0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
+ 0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
+ -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
+ 0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
+ -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
+ 0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
+ 0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
+ 0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+ 0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+ 0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
+ 0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
+ 0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+ 0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+ 0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
+ 0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+ 0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
+ 0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
+ 0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+ 0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
+ 0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
+ 0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
+ 0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
+ 0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+ 0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
+ 0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
+ 0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+ 0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+ 0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
+ 0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
+ 0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
+ 0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+ 0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+ 0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+ 0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
+ 0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+ 0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
+ 0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+ 0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+ 0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+ 0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+ 0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+ 0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
+ 0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
+ 0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
+ 0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+ 0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
+ 0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
+ 0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+ 0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+ 0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
+ 0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
+ 0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+ 0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+ 0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
+ 0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+ 0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
+ 0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+ 0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+ 0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
+ 0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
+ 0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
+ 0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
+ 0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+ 0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
+ 0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
+ 0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+ 0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+ 0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+ 0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+ 0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
+ 0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+ 0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+ 0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
+ 0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+ 0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+ 0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+ 0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+ 0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
+ 0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+ 0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+ 0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+ 0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+ 0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
+ 0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+ 0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+ 0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+ 0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+ 0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
+ 0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
+ 0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+ 0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+ 0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+ 0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
+ 0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
+ 0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+ 0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
+ 0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
+ 0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+ 0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
+ 0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+ 0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+ 0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+ 0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+ 0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+ 0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
+ 0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+ 0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+ 0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+ 0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+ 0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+ 0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+ 0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
+ 0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
+ 0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+ 0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
+ 0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+ 0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+ 0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
+ 0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+ 0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
+ 0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
+ 0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+ 0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
+ 0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
+ 0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
+ 0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+ 0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
+ 0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+ 0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
+ 0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
+ 0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+ 0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+ 0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+ 0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+ 0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
+ 0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+ 0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
+ 0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+ 0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+ 0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+ 0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+ 0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
+ 0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+ 0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+ 0.389749,-0.920921,0,0.725378,0.028862,-0.5,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+ 0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+ 0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.389749,-0.920921,0,0.725378,0.028862,-0.5,
+ 0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
+ 0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
+ 0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+ 0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
+ 0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
+ 0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+ 0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
+ 0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+ 0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+ 0.389749,-0.920921,0,0.725378,0.028862,-0.5,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+ 0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+ 0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+ 0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+ 0.389749,-0.920921,0,0.725378,0.028862,-0.5,
+ 0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
+ 0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+ 0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+ 0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+ 0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
+ 0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
+ 0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
+ 0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
+ 0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
+ 0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
+ 0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
+ 0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+ 0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
+ -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+ 0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
+ 0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
+ 0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
+ 0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
+ 0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
+ 0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
+ 0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
+ 0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
+ 0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
+ 0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
+ -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
+ -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
+ -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
+ -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
+ -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
+ -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
+ -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
+ -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
+ -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+ -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+ -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
+ -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
+ -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+ 0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
+ -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
+ -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+ -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
+ -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+ 0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
+ 0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
+ -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
+ -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
+ -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
+ 0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
+ -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
+ -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
+ -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
+ -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
+ -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+ -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
+ -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+ -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
+ -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+ -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+ -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+ -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
+ -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+ -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+ -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+ -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+ -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+ -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
+ -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+ -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
+ -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
+ -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
+ -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+ -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+ 0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
+ 0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+ 0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+ 0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
+ 0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+ -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+ 0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+ 0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
+ 0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
+ 0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
+ 0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+ 0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+ -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+ -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
+ 0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+ -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+ 0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+ 0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
+ -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+ -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+ 0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+ -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+ 0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+ -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
+ -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
+ -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+ -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+ -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
+ -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+ -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
+ -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+ -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+ -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+ -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+ -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+ -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
+ -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+ -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+ -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
+ -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
+ -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
+ -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
+ -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+ -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
+ -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
+ -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
+ -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
+ -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
+ -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
+ -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+ -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
+ -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
+ -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
+ -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
+ -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
+ -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+ -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
+ -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
+ -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+ -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+ -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+ -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+ -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
+ -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+ -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
+ -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+ -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+ -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
+ -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+ -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
+ -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+ -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
+ -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+ -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+ -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+ -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
+ -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+ -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
+ -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
+ -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
+ -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
+ -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
+ -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+ -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
+ -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
+ -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
+ -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+ -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
+ -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+ -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+ -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
+ -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
+ -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
+ -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
+ -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+ -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
+ -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+ -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+ -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+ -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
+ -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+ -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+ -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+ -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+ -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+ -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
+ -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
+ -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
+ -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
+ -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
+ -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
+ -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
+ -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
+ 0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
+ 0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
+ 0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
+ -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
+ -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
+ -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+ -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+ -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
+ -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+ -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
+ 0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
+ -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+ -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
+ -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
+ -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
+ -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
+ -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+ 0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+ 0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+ 0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
+ 0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
+ 0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
+ 0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+ 0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
+ 0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
+ 0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
+ 0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
+ 0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
+ 0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
+ 0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
+ -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+ 0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
+ 0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
+ 0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
+ 0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
+ 0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
+ 0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+ 0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
+ 0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
+ 0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
+ 0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
+ 0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
+ -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+ 0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+ 0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
+ 0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+ 0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+ -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+ -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
+ 0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+ -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+ 0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+ -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+ -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+ 0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
+ 0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+ -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+ 0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+ -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
+ 0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
+ 0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
+ 0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+ 0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+ 0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+ 0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
+ -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
+ -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
+ -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
+ -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
+ -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+ -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
+ -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
+ -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
+ -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+ -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+ -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+ -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
+ -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+ -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
+ -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+ -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+ -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+ -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+ -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+ -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
+ -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+ -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+ -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+ -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
+ 0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
+ -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+ -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+ 0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
+ -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+ 0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+ -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+ -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+ -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+ -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+ -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+ -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+ -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+ -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+ -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+ 0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+ 0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+ 0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+ -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+ -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+ -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
+ -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+ -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+ -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
+ -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+ -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
+ -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+ -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+ -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+ -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+ -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+ -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+ -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+ -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+ -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+ -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+ -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
+ -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
+ -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+ -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+ -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
+ -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
+ -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+ -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
+ -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+ -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+ -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
+ -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+ -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+ -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+ -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+ -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+ -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+ -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+ -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+ -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+ -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+ -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+ -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+ -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+ 0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
+ 0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+ -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+ 0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
+ -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+ -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+ 0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+ 0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+ -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+ -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+ -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+ 0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+ -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+ -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+ -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+ -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+ -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+ -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+ -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+ -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+ -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+ -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
+const struct gllist *s1_3=&frame;
diff --git a/hacks/glx/s1_4.c b/hacks/glx/s1_4.c
new file mode 100644
index 0000000..397412d
--- /dev/null
+++ b/hacks/glx/s1_4.c
@@ -0,0 +1,1733 @@
+#include "gllist.h"
+static const float data[]={
+ -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
+ -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
+ -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
+ -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
+ -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
+ -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
+ -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+ -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+ -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
+ -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+ -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
+ -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
+ -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+ -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+ -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
+ -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
+ -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
+ -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+ -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
+ -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
+ -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
+ -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
+ -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
+ -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
+ -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
+ -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
+ -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
+ -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
+ -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
+ -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
+ -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
+ -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
+ -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
+ -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
+ -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
+ -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
+ -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
+ -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+ -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+ -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+ -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
+ -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
+ -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+ -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
+ -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
+ -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+ -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
+ -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+ 0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
+ 0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+ 0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+ 0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
+ 0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+ 0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
+ 0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+ 0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
+ 0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+ 0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+ 0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+ 0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+ -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+ -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
+ 0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+ -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+ 0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+ 0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
+ -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
+ -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
+ 0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
+ 0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
+ 0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+ -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
+ 0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
+ 0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
+ 0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+ 0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
+ 0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+ 0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+ 0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
+ -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
+ -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
+ -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
+ 0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+ 0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
+ -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+ 0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
+ 0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+ -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+ 0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+ -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
+ 0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+ 0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+ 0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+ 0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+ 0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+ 0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
+ -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
+ -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+ -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+ -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
+ -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+ -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
+ -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+ -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+ -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+ -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+ -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+ -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+ 0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+ -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
+ -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+ 0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+ -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+ -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+ -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
+ -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
+ -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
+ -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
+ -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+ -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
+ 0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+ 0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
+ 0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
+ 0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+ 0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
+ 0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+ 0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
+ 0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+ 0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
+ 0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
+ 0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
+ 0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
+ 0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
+ 0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+ -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+ -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+ 0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
+ 0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
+ -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+ 0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+ 0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
+ -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+ 0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
+ -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+ 0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
+ 0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
+ 0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+ 0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
+ 0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+ 0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+ 0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
+ 0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
+ 0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+ 0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+ 0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+ 0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
+ 0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+ 0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
+ 0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+ 0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+ 0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+ 0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+ 0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
+ 0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+ 0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+ 0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+ 0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+ 0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
+ 0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
+ 0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
+ 0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
+ 0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
+ 0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
+ 0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
+ 0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
+ -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
+ -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
+ -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
+ 0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
+ 0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
+ 0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+ 0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+ 0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
+ 0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+ 0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
+ -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
+ 0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+ 0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
+ 0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
+ 0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
+ 0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
+ 0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+ 0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
+ 0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+ 0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
+ 0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
+ 0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
+ 0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
+ 0.489941,0.871755,0,1.467526,0.376193,-0.5,
+ 0.561935,0.827181,0,1.524515,0.345196,-0.5,
+ 0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
+ 0.489941,0.871755,0,1.467526,0.376193,-0.5,
+ 0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
+ 0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
+ 0.561935,0.827181,0,1.524515,0.345196,-0.5,
+ 0.887347,0.461103,0,1.558444,0.319842,-0.5,
+ 0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
+ 0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
+ 0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
+ 0.561935,0.827181,0,1.524515,0.345196,-0.5,
+ 0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+ 0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
+ 0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
+ 0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+ 0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
+ 0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
+ 0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
+ 0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+ 0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
+ 0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
+ 0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
+ 0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
+ 0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+ 0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
+ 0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
+ 0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+ 0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
+ 0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
+ 0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
+ 0.887347,0.461103,0,1.558444,0.319842,-0.5,
+ 0.561935,0.827181,0,1.524515,0.345196,-0.5,
+ 0.561935,0.827181,0,1.524515,0.345196,-0.5,
+ 0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
+ 0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
+ 0.489941,0.871755,0,1.467526,0.376193,-0.5,
+ 0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
+ 0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
+ 0.489941,0.871755,0,1.467526,0.376193,-0.5,
+ 0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
+ 0.561935,0.827181,0,1.524515,0.345196,-0.5,
+ 0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
+ 0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+ 0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+ 0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+ 0.887347,0.461103,0,1.558444,0.319842,-0.5,
+ 0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.887347,0.461103,0,1.558444,0.319842,-0.5,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+ 0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+ 0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+ 0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+ 0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
+ 0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
+ 0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+ 0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+ 0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+ 0.887347,0.461103,0,1.558444,0.319842,-0.5,
+ 0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.887347,0.461103,0,1.558444,0.319842,-0.5,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
+ 0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+ 0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+ 0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+ 0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+ 0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+ 0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+ 0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
+ 0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+ 0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
+ 0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
+ -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+ -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+ 0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
+ -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+ 0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
+ 0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+ -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+ 0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+ 0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
+ 0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
+ 0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
+ -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+ 0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
+ 0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+ 0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
+ 0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
+ 0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
+ 0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
+ -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
+ -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
+ -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+ -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
+ -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+ -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+ -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
+ -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
+ -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+ -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+ -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+ -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
+ 0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+ -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+ -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+ 0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+ -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+ -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+ -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+ -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+ -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+ -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+ -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+ -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+ 0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
+ 0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
+ 0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
+ 0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
+ 0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+ 0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
+ 0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
+ 0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
+ 0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+ 0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+ 0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+ 0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
+ 0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+ -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+ 0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+ 0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+ 0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+ 0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+ -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+ -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
+ 0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
+ 0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
+ 0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+ -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+ 0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
+ 0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+ 0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+ 0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
+ 0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+ 0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
+ 0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+ 0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+ 0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
+ 0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
+ 0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+ 0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+ 0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+ 0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+ 0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+ 0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+ 0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+ 0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
+ 0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+ 0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
+ 0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
+ 0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
+ 0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+ 0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+ 0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
+ 0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
+ 0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+ 0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
+ 0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+ 0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+ 0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
+ 0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
+ 0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+ 0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+ 0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+ 0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+ 0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+ 0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+ 0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+ 0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+ 0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+ 0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+ 0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+ 0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+ 0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
+ 0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+ 0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+ 0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
+ 0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+ 0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
+ 0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+ 0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+ 0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+ 0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+ 0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+ 0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+ 0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+ 0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+ 0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+ 0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
+ 0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
+ 0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
+ 0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+ 0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+ 0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
+ 0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
+ 0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+ 0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
+ 0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+ 0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+ 0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
+ 0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
+ 0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+ 0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+ 0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+ 0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+ 0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+ 0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+ 0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+ 0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+ 0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+ 0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+ 0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+ 0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+ 0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
+ 0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+ 0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+ 0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
+ 0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+ 0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
+ 0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+ 0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+ 0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+ 0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+ 0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+ 0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+ 0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+ 0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+ 0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+ 0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+ 0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+ 0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
+ 0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
+ 0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
+ 0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+ 0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+ -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
+ -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
+ -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+ -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
+ -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+ -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
+ -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
+ -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
+ -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
+ -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
+ -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+ -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
+ -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+ -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+ -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+ -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+ -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+ -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
+ -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+ -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+ -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
+ -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
+ -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+ -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+ -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+ -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+ -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
+ -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+ -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
+ -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
+ -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+ -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
+ -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+ -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
+ -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
+ -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
+ -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
+ -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
+ -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
+ -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
+ -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
+ -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+ -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
+ -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
+ -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+ -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
+ -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
+ -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
+ -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
+ -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
+ -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
+ -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
+ -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
+ -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
+ -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
+ -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
+ -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
+ -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
+ -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
+ -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+ -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
+ -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
+ -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+ -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
+ -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+ -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
+ -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
+ -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+ -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+ -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+ -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+ -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
+ -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+ -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
+ -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+ -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+ -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+ -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+ -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
+ -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
+ -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
+ -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
+ -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+ -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
+ 0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+ 0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+ 0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+ 0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+ 0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+ 0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+ 0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+ 0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+ 0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
+ 0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
+ 0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+ 0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+ -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+ -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+ 0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+ -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+ 0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+ 0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
+ -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+ -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+ 0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+ 0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+ 0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+ -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+ 0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
+ 0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
+ 0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
+ 0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
+ 0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
+ 0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
+ 0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+ -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+ 0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
+ 0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+ 0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
+ 0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
+ -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+ -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+ 0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
+ 0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
+ 0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
+ -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+ 0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+ 0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
+ 0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
+ 0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+ 0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
+ 0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
+ -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+ -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
+ -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+ -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+ -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+ -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
+ -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
+ -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
+ -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+ -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+ -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+ -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
+ -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+ -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+ -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+ -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+ -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+ -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+ -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+ 0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+ -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
+ -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
+ -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+ -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+ -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
+ -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
+ -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+ -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+ -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
+ -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
+ -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+ -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+ -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
+ -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+ -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
+ -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+ -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+ -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+ -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+ -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+ -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
+ -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+ -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
+ -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
+ -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
+ -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
+ -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
+ -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+ 0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+ 0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+ 0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+ 0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+ 0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+ 0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+ 0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+ -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+ -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+ -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+ 0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+ 0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+ -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+ 0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
+ 0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+ -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+ 0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+ -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+ 0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
+ 0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+ 0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+ 0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+ 0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+ 0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
+ -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+ -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
+ -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
+ -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
+ -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
+ -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+ -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
+ -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+ -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
+ -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
+ -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
+ -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
+ -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+ -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+ -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+ -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+ -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
+ -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+ -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+ -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+ -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
+ -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+ -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
+ -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+ -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+ -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
+ -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+ -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+ -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+ -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
+ -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
+ 0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+ -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+ -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+ -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+ -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
+ -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+ -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+ -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+ -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+ -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+ -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+ -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+ -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
+ -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
+ -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
+ -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+ -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+ 0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
+ 0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
+ 0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
+ 0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
+ 0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
+ 0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
+ 0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+ 0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
+ 0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
+ 0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+ 0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
+ 0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
+ 0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
+ -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+ -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+ -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+ 0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
+ 0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
+ 0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+ 0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
+ 0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
+ 0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+ 0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
+ -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+ 0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+ 0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
+ 0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+ 0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+ 0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+ 0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+ 0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
+ 0.489941,0.871755,0,1.467526,0.376193,-0.5,
+ 0.499794,0.866144,0,1.389948,0.422275,-0.5,
+ 0.499794,0.866144,0,1.389948,0.422275,-0.5,
+ 0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+ 0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
+ 0.445921,0.895072,0,1.295978,0.472757,-0.5,
+ 0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+ 0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+ 0.445921,0.895072,0,1.295978,0.472757,-0.5,
+ 0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+ 0.499794,0.866144,0,1.389948,0.422275,-0.5,
+ 0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+ 0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+ 0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+ 0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+ 0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+ 0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+ 0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+ 0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+ 0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+ 0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+ 0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+ 0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
+ 0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+ 0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+ 0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+ 0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+ 0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+ 0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+ 0.445921,0.895072,0,1.295978,0.472757,-0.5,
+ 0.499794,0.866144,0,1.389948,0.422275,-0.5,
+ 0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+ 0.445921,0.895072,0,1.295978,0.472757,-0.5,
+ 0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+ 0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+ 0.499794,0.866144,0,1.389948,0.422275,-0.5,
+ 0.489941,0.871755,0,1.467526,0.376193,-0.5,
+ 0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
+ 0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
+ 0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+ 0.499794,0.866144,0,1.389948,0.422275,-0.5,
+ 0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
+ 0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
+ 0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
+ 0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
+ 0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
+ 0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
+ 0.156232,0.98772,0,1.075645,0.544169,-0.5,
+ 0.336559,0.941662,0,1.189812,0.516951,-0.5,
+ 0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
+ 0.156232,0.98772,0,1.075645,0.544169,-0.5,
+ 0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
+ 0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
+ 0.336559,0.941662,0,1.189812,0.516951,-0.5,
+ 0.445921,0.895072,0,1.295978,0.472757,-0.5,
+ 0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+ 0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+ 0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
+ 0.336559,0.941662,0,1.189812,0.516951,-0.5,
+ 0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+ 0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
+ 0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
+ 0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+ 0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
+ 0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+ 0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
+ 0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
+ 0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
+ 0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
+ 0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
+ 0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
+ 0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+ 0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+ 0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
+ 0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+ 0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
+ 0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
+ 0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+ 0.445921,0.895072,0,1.295978,0.472757,-0.5,
+ 0.336559,0.941662,0,1.189812,0.516951,-0.5,
+ 0.336559,0.941662,0,1.189812,0.516951,-0.5,
+ 0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
+ 0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+ 0.156232,0.98772,0,1.075645,0.544169,-0.5,
+ 0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
+ 0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
+ 0.156232,0.98772,0,1.075645,0.544169,-0.5,
+ 0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
+ 0.336559,0.941662,0,1.189812,0.516951,-0.5,
+ -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
+ -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
+ -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
+ -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
+ -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
+ -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
+ 0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+ 0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+ -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
+ 0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+ -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
+ -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
+ 0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+ 0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+ -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+ -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+ -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
+ 0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+ -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
+ -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
+ -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
+ -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
+ -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
+ -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+ 0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+ 0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+ 0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
+ 0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
+ 0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
+ 0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+ 0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
+ 0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
+ 0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
+ 0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
+ 0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
+ 0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
+ 0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+ 0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+ 0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
+ 0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+ 0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
+ 0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
+ 0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+ 0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+ 0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+ 0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+ 0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
+ 0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+ 0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
+ -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+ -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
+ -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
+ 0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
+ 0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
+ 0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+ 0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+ 0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
+ 0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+ 0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
+ -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
+ 0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+ 0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+ 0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
+ 0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
+ 0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
+ 0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+ 0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
+ 0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
+ 0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
+ 0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
+ 0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
+ 0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
+ 0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
+ -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+ 0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+ 0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
+ 0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+ 0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
+ -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+ -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
+ -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+ -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+ 0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+ -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+ 0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+ 0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+ 0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+ 0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+ 0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+ -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+ 0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+ 0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+ 0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
+ 0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
+ 0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+ 0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+ -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
+ -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
+ -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
+ -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
+ -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
+ -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+ -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
+ -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
+ -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+ -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+ -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
+ -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
+ -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+ -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+ -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
+ -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+ -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
+ -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+ -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+ -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+ -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+ -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+ -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
+ -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+ -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+ 0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
+ 0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
+ 0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
+ -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
+ -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+ 0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
+ 0.156232,0.98772,0,1.075645,0.544169,-0.5,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
+ 0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+ -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+ -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+ -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
+ -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+ -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
+ -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
+ -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
+ -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+ 0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
+ 0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
+ -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+ -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+ -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
+ 0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
+ -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
+ -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+ -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
+ -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
+ -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
+ -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+ -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+ -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
+ -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ 0.156232,0.98772,0,1.075645,0.544169,-0.5,
+ 0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
+ 0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
+ -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
+ -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+ -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
+ -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
+ -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
+ -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
+ -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
+ -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
+ -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
+ -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+ -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+ -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+ -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
+ -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
+ -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+ -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+ -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
+ -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+ -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
+ -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+ -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+ -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
+ -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
+ -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
+ -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
+ -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+ -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
+ -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
+ -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
+ -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
+ -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
+ -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
+ -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
+ -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+ -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
+ -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
+ -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
+ -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
+ -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+ 0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+ 0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+ 0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+ -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
+ -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+ 0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+ -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
+ -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
+ 0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+ -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
+ 0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+ 0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
+ 0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
+ 0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+ 0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
+ 0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+ -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+ 0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
+ 0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+ 0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+ 0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+ 0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+ 0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
+ 0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+ -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+ 0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+ 0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+ 0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+ 0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+ -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+ -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
+ -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+ -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+ 0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+ -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+ -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
+ -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+ 0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
+ 0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
+ 0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
+ -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
+ 0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
+ 0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
+ 0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
+ 0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
+ 0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
+ 0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
+ 0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
+ 0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+ 0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+ 0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+ 0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
+ 0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
+ 0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+ -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
+ 0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
+ 0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+ 0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
+ 0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+ 0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
+ 0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+ 0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+ 0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+ 0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
+ 0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
+ 0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+ 0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+ 0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+ 0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+ 0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
+ 0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+ 0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+ 0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
+ 0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
+ 0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+ 0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
+ 0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+ 0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
+ 0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
+ 0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
+ 0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
+ 0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
+ 0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
+ 0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+ 0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
+ 0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
+ 0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+ 0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
+ 0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
+ 0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
+ 0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
+ 0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
+ 0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
+ 0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
+ 0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+ 0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
+ 0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
+ 0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+ 0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+ 0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
+ 0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
+ 0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
+ 0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+ -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+ -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
+ 0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
+ -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+ 0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
+ 0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
+ -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
+ -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
+ 0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+ 0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+ 0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
+ -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
+ 0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
+ 0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+ 0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
+ 0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
+ 0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
+ 0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
+ 0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
+ 0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
+ -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+ 0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
+ 0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
+ -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+ 0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
+ -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+ 0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
+ 0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
+ 0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+ 0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+ 0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
+ 0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+ 0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
+ 0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+ 0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+ -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
+ -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+ -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+ 0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
+ 0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+ 0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+ 0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
+ 0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
+ 0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+ 0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
+ 0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
+ 0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
+ 0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+ 0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+ 0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+ 0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
+ 0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+ 0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
+ 0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+ 0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
+ 0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+ 0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
+ 0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
+ 0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
+ 0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
+ 0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
+ 0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+ 0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+ 0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+ 0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
+ 0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
+ 0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+ 0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+ 0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+ 0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+ 0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+ 0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+ 0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+ 0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
+ 0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+ 0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+ 0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+ 0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+ 0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+ 0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+ 0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+ 0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+ 0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+ 0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+ 0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+ 0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+ 0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
+ 0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+ 0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+ 0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+ 0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+ 0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
+ 0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+ 0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+ 0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+ 0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+ 0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+ 0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+ 0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+ 0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+ 0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+ 0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+ 0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+ 0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+ 0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+ 0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
+ 0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+ 0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+ 0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+ 0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+ -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
+ -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+ -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+ -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+ 0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+ 0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ 0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+ 0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+ -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ 0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+ -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+ 0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+ -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
+ -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+ 0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+ 0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ 0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+ 0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+ -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ 0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ 0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+ -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+ -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+ -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+ -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+ 0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+ 0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+ 0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+ 0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+ 0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+ 0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+ 0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+ 0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
+ 0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+ 0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+ 0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+ 0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+ 0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
+ -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+ 0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
+ 0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
+ 0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+ 0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
+ 0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+ 0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+ 0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+ 0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+ 0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+ 0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
+ -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
+ -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+ -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
+ -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
+ -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
+ -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
+ -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+ -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+ -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+ -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+ -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
+ -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+ -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+ 0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
+ -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
+ -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+ -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
+ -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+ 0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
+ 0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+ -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
+ -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
+ -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
+ 0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
+ -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
+ -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
+ -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
+ -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
+ -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+ -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
+ -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
+ -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+ -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+ -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
+ -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+ -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
+ -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+ -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+ -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+ -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+ -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+ -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+ -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+ -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+ -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
+ -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
+ -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+ -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+ -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
+ -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+ -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+ -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
+ -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+ -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
+ -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+ 0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+ 0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
+ 0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
+ -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+ -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+ -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+ -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+ -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+ -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+ -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+ 0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
+ -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+ -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
+ -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
+ -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
+ -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+ -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+ -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+ -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
+ -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+ -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+ -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
+ -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+ -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+ -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+ -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
+ -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+ -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
+ -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+ -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+ -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+ -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+ -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+ -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
+ -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+ -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+ -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+ -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
+ -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+ -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
+ -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+ -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
+ -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
+ -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+ -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+ -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
+ -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
+ -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+ -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+ -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
+ -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+ -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
+ -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+ -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+ -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+ -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+ -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+ -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
+ -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+ -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+ -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
+ -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
+ -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+ -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
+ -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+ -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
+ -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+ -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+ -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
+ -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+ -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
+ -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+ -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
+ -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+ -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+ -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+ -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+ -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+ -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+ -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+ -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+ -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+ -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
+ -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+ -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+ -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
+ -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
+ -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+ -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+ -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
+ -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
+ -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+ -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
+ -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+ -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+ -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
+ -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+ -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+ -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+ -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+ -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
+ -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+ -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
+ -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+ -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+ -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+ -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+ -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+ -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+ -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+ -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+ -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+ -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
+ -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
+ -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
+ -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
+ -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
+ -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
+ -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+ -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
+ 0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+ 0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
+ 0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
+ -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
+ -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
+ -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+ -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+ -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
+ -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+ -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
+ 0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
+ -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+ -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+ -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+ -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+ -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
+ -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+ 0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+ 0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+ 0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+ 0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+ 0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+ 0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+ 0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+ 0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
+ 0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+ 0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+ 0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+ 0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+ 0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
+ -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+ 0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
+ 0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
+ 0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+ 0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
+ 0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+ 0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+ 0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+ 0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+ 0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+ 0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
+ -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
+ -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
+ -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+ -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
+ -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+ -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+ -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
+ -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
+ -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+ -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+ -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+ -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
+ -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+ 0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
+ -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+ -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+ -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+ -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+ 0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
+ 0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+ -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+ -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+ -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+ 0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
+ -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
+ -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
+ -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
+ -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
+ -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+ -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
+ -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
+ -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+ -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+ -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+ -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+ -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
+ -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+ -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+ -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+ -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+ -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+ -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+ -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
+ -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
+ -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+ -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
+ -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+ -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+ -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
+ -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
+ -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+ -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
+ -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+ -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+ -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
+ -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
+ -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+ -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+ -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+ -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+ -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+ -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+ -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+ -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+ -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+ -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+ -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+ -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+ -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
+ -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+ -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+ -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
+ -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+ -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
+ -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+ -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+ -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+ -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+ -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+ -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+ -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+ -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+ -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+ -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
+ -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
+ -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
+ -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+ -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+ -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
+ -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
+ -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+ -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
+ -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+ -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+ -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
+ -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
+ -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+ -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+ -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+ -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+ -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+ -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+ -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+ -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+ -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+ -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+ -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+ -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+ -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
+ -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+ -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+ -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
+ -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+ -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
+ -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+ -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+ -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+ -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+ -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+ -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+ -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+ -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+ -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+ -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+ -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+ -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
+ -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
+ -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
+ -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+ -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
+const struct gllist *s1_4=&frame;
diff --git a/hacks/glx/s1_5.c b/hacks/glx/s1_5.c
new file mode 100644
index 0000000..dc4510a
--- /dev/null
+++ b/hacks/glx/s1_5.c
@@ -0,0 +1,1733 @@
+#include "gllist.h"
+static const float data[]={
+ 0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+ 0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+ 0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+ 0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+ 0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+ 0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+ 0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+ 0.662437,0.749118,0,0.99928,0.649745,-0.5,
+ 0.577305,0.816529,0,0.944762,0.694795,-0.5,
+ 0.577305,0.816529,0,0.944762,0.694795,-0.5,
+ 0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+ 0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
+ 0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ 0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+ 0.577305,0.816529,0,0.944762,0.694795,-0.5,
+ -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
+ -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
+ 0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+ 0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+ 0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+ -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
+ 0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+ 0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+ 0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+ 0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+ 0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+ 0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+ 0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+ -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
+ -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
+ -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
+ 0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+ 0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ 0.577305,0.816529,0,0.944762,0.694795,-0.5,
+ 0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ 0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+ -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
+ 0.577305,0.816529,0,0.944762,0.694795,-0.5,
+ 0.662437,0.749118,0,0.99928,0.649745,-0.5,
+ 0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+ 0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+ 0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+ 0.577305,0.816529,0,0.944762,0.694795,-0.5,
+ -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+ -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+ -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+ -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+ -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+ -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
+ -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+ -0.744977,0.66709,0,0.882548,0.702579,-0.5,
+ -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+ -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+ -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+ -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
+ -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+ -0.744977,0.66709,0,0.882548,0.702579,-0.5,
+ -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
+ -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
+ -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
+ -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
+ -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+ -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
+ -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+ -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
+ -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+ -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+ -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+ -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+ -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
+ -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
+ -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
+ -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
+ -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+ -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ -0.744977,0.66709,0,0.882548,0.702579,-0.5,
+ -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+ 0.007037,0.999975,0,0.906869,0.713633,-0.5,
+ -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+ -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
+ -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+ -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+ -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+ -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+ -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+ -0.744977,0.66709,0,0.882548,0.702579,-0.5,
+ 0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+ 0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
+ 0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
+ 0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+ 0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
+ 0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+ 0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
+ 0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
+ 0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+ 0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+ 0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
+ 0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
+ -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
+ -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+ 0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
+ -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
+ 0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
+ 0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+ -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+ -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
+ 0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+ 0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+ 0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
+ -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+ 0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
+ -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
+ -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
+ -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
+ 0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+ 0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
+ -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+ -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
+ 0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+ -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+ 0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+ -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
+ -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
+ -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
+ 0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+ 0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+ 0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+ -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
+ 0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
+ 0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
+ 0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+ 0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
+ 0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+ 0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+ -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+ -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+ -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+ -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+ -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+ -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
+ -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+ -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+ -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+ -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+ -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+ -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+ -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
+ -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
+ -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+ -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
+ -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+ -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+ -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
+ -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+ -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
+ -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
+ -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+ -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
+ -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+ -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
+ -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+ -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+ -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+ -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+ -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
+ -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
+ -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+ -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+ -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+ -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
+ -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+ -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
+ -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+ -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+ -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+ -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+ -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+ -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+ -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+ -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+ -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+ -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+ -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
+ -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+ -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
+ -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
+ -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
+ -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
+ -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+ -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+ -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+ -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+ -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
+ -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+ -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
+ -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+ -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+ -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+ -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
+ -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
+ -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
+ -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+ -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
+ -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
+ -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
+ -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
+ -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
+ -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+ -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
+ -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+ -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+ -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+ -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
+ -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+ -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
+ -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+ -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+ -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+ -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+ -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+ -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
+ -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+ -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+ -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
+ -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+ -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
+ -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+ -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+ -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+ -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+ -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+ -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+ -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+ -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+ -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+ -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+ -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+ -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
+ -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
+ -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
+ 0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
+ 0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
+ 0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+ -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
+ 0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
+ 0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+ 0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+ 0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
+ 0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+ 0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
+ 0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+ -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+ -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
+ -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
+ 0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+ 0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+ -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+ -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
+ 0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+ -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+ 0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+ -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
+ 0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+ 0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+ 0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
+ 0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+ 0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
+ 0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+ 0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+ -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
+ -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+ -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+ 0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
+ 0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+ -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+ 0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+ 0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
+ -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+ 0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
+ -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+ 0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+ 0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
+ 0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+ 0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+ 0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
+ 0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+ -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+ -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+ -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+ -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+ -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+ -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
+ -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+ -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+ -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+ -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+ -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+ -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+ -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+ -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+ -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+ -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+ -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+ -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+ -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+ -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
+ -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
+ -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
+ -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+ -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+ -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+ -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
+ -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+ -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+ -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+ -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+ -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
+ -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+ -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
+ -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
+ -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+ -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
+ -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+ -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+ -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+ -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+ -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+ -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
+ -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+ -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+ -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+ -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+ -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+ -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+ -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+ -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+ -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+ -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+ -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+ -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+ -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+ -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+ -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+ -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+ -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+ -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+ -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+ -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+ -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+ -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+ -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+ -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+ -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+ -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+ -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+ -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+ -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+ -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+ -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+ -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+ -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+ -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+ -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+ -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+ -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+ -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+ -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+ -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+ -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+ -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+ -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+ -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+ -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+ -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+ -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+ -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+ -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+ -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+ -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+ -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+ -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+ -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+ -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+ -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+ -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+ -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+ -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+ -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+ -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+ -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+ -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+ -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+ -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+ -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+ -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+ -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+ -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+ -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+ -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+ -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+ -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+ -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+ -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+ -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+ -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+ -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+ -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+ -1,0,0,0.856159,0.481079,-0.5,
+ -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+ -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+ -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+ -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+ -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+ -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+ -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+ -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+ 0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+ 0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+ 0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
+ 0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
+ 0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
+ 0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+ 0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
+ 0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+ 0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
+ 0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
+ 0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
+ 0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
+ 0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
+ 0.700187,0.71396,0,1.161726,0.497346,-0.5,
+ 0.687547,0.72614,0,1.073477,0.582162,-0.5,
+ 0.687547,0.72614,0,1.073477,0.582162,-0.5,
+ 0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
+ 0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
+ 0.662437,0.749118,0,0.99928,0.649745,-0.5,
+ 0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+ 0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
+ 0.662437,0.749118,0,0.99928,0.649745,-0.5,
+ 0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
+ 0.687547,0.72614,0,1.073477,0.582162,-0.5,
+ 0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+ 0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
+ 0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
+ 0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
+ 0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
+ 0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+ 0.726158,0.687528,0,1.357882,0.297224,-0.5,
+ 0.71287,0.701296,0,1.258403,0.4006,-0.5,
+ 0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
+ 0.726158,0.687528,0,1.357882,0.297224,-0.5,
+ 0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
+ 0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
+ 0.71287,0.701296,0,1.258403,0.4006,-0.5,
+ 0.700187,0.71396,0,1.161726,0.497346,-0.5,
+ 0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
+ 0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
+ 0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
+ 0.71287,0.701296,0,1.258403,0.4006,-0.5,
+ 0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+ 0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+ 0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
+ 0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+ 0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
+ 0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
+ 0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
+ 0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
+ 0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+ 0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+ 0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
+ 0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
+ 0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
+ 0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
+ 0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
+ 0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
+ 0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
+ 0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+ 0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
+ 0.700187,0.71396,0,1.161726,0.497346,-0.5,
+ 0.71287,0.701296,0,1.258403,0.4006,-0.5,
+ 0.71287,0.701296,0,1.258403,0.4006,-0.5,
+ 0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
+ 0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
+ 0.726158,0.687528,0,1.357882,0.297224,-0.5,
+ 0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
+ 0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
+ 0.726158,0.687528,0,1.357882,0.297224,-0.5,
+ 0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
+ 0.71287,0.701296,0,1.258403,0.4006,-0.5,
+ 0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
+ 0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+ 0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+ 0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+ 0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
+ 0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
+ 0.662437,0.749118,0,0.99928,0.649745,-0.5,
+ 0.687547,0.72614,0,1.073477,0.582162,-0.5,
+ 0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
+ 0.662437,0.749118,0,0.99928,0.649745,-0.5,
+ 0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
+ 0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+ 0.687547,0.72614,0,1.073477,0.582162,-0.5,
+ 0.700187,0.71396,0,1.161726,0.497346,-0.5,
+ 0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
+ 0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
+ 0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
+ 0.687547,0.72614,0,1.073477,0.582162,-0.5,
+ 0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
+ 0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
+ 0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
+ 0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
+ 0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
+ 0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
+ -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
+ -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
+ 0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
+ -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
+ 0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
+ 0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
+ -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
+ -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+ -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
+ -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
+ 0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
+ -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
+ 0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
+ 0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
+ 0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
+ 0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
+ 0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
+ -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
+ 0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
+ 0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
+ 0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
+ 0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
+ 0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
+ 0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
+ -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
+ -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
+ -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+ -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+ -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+ -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
+ 0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+ 0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+ -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+ 0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+ -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+ -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+ 0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+ 0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
+ -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
+ -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
+ -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+ 0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+ -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+ -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
+ -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+ -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+ -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+ -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
+ 0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
+ 0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+ 0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
+ 0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
+ 0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
+ 0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+ 0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+ 0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+ 0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
+ 0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
+ 0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
+ 0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+ 0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
+ 0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+ 0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
+ 0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
+ 0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
+ 0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
+ 0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+ 0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+ 0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+ 0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+ 0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
+ 0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+ 0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
+ 0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+ 0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+ 0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+ 0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+ 0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
+ 0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
+ 0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
+ 0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+ 0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
+ 0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+ 0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+ 0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
+ 0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
+ 0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
+ 0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
+ 0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+ 0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
+ 0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+ 0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
+ 0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+ 0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+ 0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+ 0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
+ -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
+ 0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
+ 0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
+ -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
+ 0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
+ -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+ 0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
+ 0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
+ 0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
+ 0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
+ 0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
+ 0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
+ 0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
+ -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
+ 0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
+ 0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
+ 0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
+ 0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
+ -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
+ -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+ -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+ -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+ 0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
+ -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
+ 0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
+ 0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+ 0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
+ 0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
+ 0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
+ 0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
+ 0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
+ 0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
+ 0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
+ 0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
+ 0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
+ 0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
+ 0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
+ 0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
+ 0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
+ 0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
+ 0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
+ 0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
+ 0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
+ 0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
+ 0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
+ 0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
+ 0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
+ 0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
+ 0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
+ 0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+ 0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+ 0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
+ 0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+ 0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+ 0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+ 0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+ 0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+ 0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+ 0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+ 0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+ 0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
+ 0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
+ 0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+ 0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
+ 0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+ 0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+ 0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
+ 0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
+ 0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+ 0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+ 0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+ 0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
+ -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+ -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
+ -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
+ -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
+ -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+ -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+ -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+ -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
+ -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+ -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+ -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+ -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
+ -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
+ 0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
+ 0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+ 0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+ -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+ -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
+ 0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+ -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+ -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+ 0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+ -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+ 0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+ -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
+ -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
+ -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+ -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+ -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+ -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
+ -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+ -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+ -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+ -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+ -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+ -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+ -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+ -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
+ -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
+ -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
+ -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+ -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+ -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+ -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
+ -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+ -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+ -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+ -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
+ -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+ -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
+ -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+ -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+ -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+ -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+ -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+ -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
+ -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+ -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+ -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+ -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+ -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
+ -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
+ -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+ -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+ -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+ -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
+ -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+ -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+ -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+ -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+ -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+ -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+ -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
+ -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
+ -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
+ -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
+ -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
+ -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
+ -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
+ -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
+ -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
+ -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
+ -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
+ -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+ -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
+ -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
+ -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+ -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
+ -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
+ -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
+ -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
+ -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
+ -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
+ -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
+ -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
+ -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+ -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
+ -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
+ -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+ -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
+ -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
+ -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
+ -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
+ -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+ -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
+ -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
+ -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
+ -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+ -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
+ -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+ -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
+ -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
+ -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
+ -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+ -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+ -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+ -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+ -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+ -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
+ -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+ -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+ -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
+ -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
+ -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+ -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
+ -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+ -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+ -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+ -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
+ -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+ -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
+ -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
+ 0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+ 0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+ 0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+ 0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+ 0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+ 0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+ 0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
+ 0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+ 0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+ 0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
+ 0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+ 0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+ 0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+ -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+ -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+ -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+ 0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+ 0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+ -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+ 0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+ 0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+ -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+ 0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+ -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+ 0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
+ 0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
+ 0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+ 0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+ 0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+ 0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
+ 0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+ -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+ 0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+ 0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+ 0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+ 0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+ -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+ 0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+ 0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+ -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+ 0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+ -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+ 0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+ 0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
+ 0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
+ 0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
+ 0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+ 0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+ -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
+ -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
+ -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+ -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
+ -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+ -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+ -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
+ -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+ -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
+ -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
+ -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+ -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
+ -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+ -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+ -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+ -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+ -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+ -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
+ -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+ 0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+ -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+ -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+ -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+ -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+ -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
+ -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+ -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
+ -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
+ -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
+ -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+ -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+ -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+ -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+ -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+ -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
+ -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+ -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+ -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+ -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
+ -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+ -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
+ -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+ -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+ -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+ -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+ -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+ -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
+ -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+ -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
+ -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
+ -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
+ -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
+ -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
+ -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
+ -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+ -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+ -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
+ -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+ -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
+ -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
+ -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+ -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+ -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+ -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+ -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
+ -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+ -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
+ -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+ -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+ -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+ -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
+ -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
+ -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
+ -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
+ -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
+ -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
+ -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
+ -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
+ -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
+ -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
+ -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+ -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+ -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+ -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
+ -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+ -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+ -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+ -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+ -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
+ -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+ -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+ -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
+ -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
+ -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+ -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
+ -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+ -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
+ -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+ -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
+ -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
+ -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
+ -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+ -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+ -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+ -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+ -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+ -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
+ -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+ -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+ -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+ -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
+ -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+ -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
+ -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+ -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+ -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+ -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+ -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+ -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
+ -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+ -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
+ -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+ -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
+ -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
+ -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
+ -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+ -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+ -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
+ -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
+ -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+ -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
+ -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+ -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+ -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+ -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
+ -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+ -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
+ -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
+ -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+ -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+ -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+ -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+ -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
+ -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+ -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
+ -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+ -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+ -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
+ -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+ -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
+ -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+ 0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+ -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+ -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+ -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+ -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+ -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+ -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
+ -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+ -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+ -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+ -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+ -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
+ -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+ -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
+ -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
+ -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+ -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
+ 0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+ 0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
+ 0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
+ 0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
+ 0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
+ 0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+ 0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
+ 0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
+ 0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+ 0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+ 0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
+ 0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
+ -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+ -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+ 0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
+ -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+ 0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
+ 0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+ 0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+ 0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+ 0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
+ 0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+ 0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
+ -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+ 0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+ 0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+ 0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
+ 0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
+ 0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+ 0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+ -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+ -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+ 0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+ -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+ 0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+ 0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
+ -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+ -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+ 0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+ 0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+ 0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+ -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+ 0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
+ 0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+ 0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+ 0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
+ 0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+ 0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+ 0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+ 0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+ 0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+ 0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+ 0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
+ 0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+ 0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
+ 0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+ 0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
+ 0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
+ 0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
+ 0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+ 0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+ 0.747578,0.664174,0,1.54438,0.092162,-0.5,
+ 0.754132,0.656723,0,1.623426,0.001822,-0.5,
+ 0.754132,0.656723,0,1.623426,0.001822,-0.5,
+ 0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
+ 0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+ 0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+ 0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+ 0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
+ 0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+ 0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
+ 0.754132,0.656723,0,1.623426,0.001822,-0.5,
+ 0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
+ 0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
+ 0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+ 0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
+ 0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+ 0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
+ 0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
+ 0.726158,0.687528,0,1.357882,0.297224,-0.5,
+ 0.738573,0.674173,0,1.454536,0.19252,-0.5,
+ 0.738573,0.674173,0,1.454536,0.19252,-0.5,
+ 0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+ 0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
+ 0.747578,0.664174,0,1.54438,0.092162,-0.5,
+ 0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+ 0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+ 0.747578,0.664174,0,1.54438,0.092162,-0.5,
+ 0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+ 0.738573,0.674173,0,1.454536,0.19252,-0.5,
+ 0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+ 0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
+ 0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
+ 0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
+ 0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+ 0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+ 0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
+ 0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
+ 0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+ 0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
+ 0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+ 0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
+ 0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
+ 0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
+ 0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+ 0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+ 0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+ 0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
+ 0.747578,0.664174,0,1.54438,0.092162,-0.5,
+ 0.738573,0.674173,0,1.454536,0.19252,-0.5,
+ 0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+ 0.747578,0.664174,0,1.54438,0.092162,-0.5,
+ 0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+ 0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+ 0.738573,0.674173,0,1.454536,0.19252,-0.5,
+ 0.726158,0.687528,0,1.357882,0.297224,-0.5,
+ 0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
+ 0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
+ 0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+ 0.738573,0.674173,0,1.454536,0.19252,-0.5,
+ 0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+ 0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+ 0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+ 0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+ 0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
+ 0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+ 0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+ 0.754132,0.656723,0,1.623426,0.001822,-0.5,
+ 0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
+ 0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+ 0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
+ 0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+ 0.754132,0.656723,0,1.623426,0.001822,-0.5,
+ 0.747578,0.664174,0,1.54438,0.092162,-0.5,
+ 0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+ 0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+ 0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
+ 0.754132,0.656723,0,1.623426,0.001822,-0.5,
+ 0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
+ 0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+ 0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
+ 0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
+ 0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
+ 0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+ 0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+ 0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+ 0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
+ 0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+ 0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
+ 0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+ 0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+ 0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+ 0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+ 0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+ 0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
+ 0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+ 0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
+ 0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+ 0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+ 0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
+ 0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+ 0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+ 0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
+ 0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+ 0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+ 0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+ 0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
+ 0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+ 0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
+ 0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+ 0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+ 0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
+ 0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+ 0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+ 0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
+ 0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+ 0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
+ 0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+ 0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+ 0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+ 0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+ 0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+ 0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
+ 0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+ 0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
+ 0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+ 0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+ 0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
+ 0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+ 0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
+ 0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+ 0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+ 0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+ 0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+ 0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+ 0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+ 0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+ 0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+ 0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+ 0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
+ 0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
+ 0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
+ 0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+ 0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+ 0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
+ 0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+ 0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+ 0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
+ 0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+ 0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+ 0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+ 0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
+ 0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+ 0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+ 0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+ 0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+ 0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+ 0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+ 0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+ 0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+ 0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+ 0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+ 0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+ 0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+ 0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+ 0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+ 0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+ 0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+ 0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+ 0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+ 0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+ 0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+ 0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+ -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+ -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+ -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+ 0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+ 0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+ 0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+ 0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
+ 0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+ 0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+ 0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+ -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+ 0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
+ 0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
+ 0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+ 0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+ 0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+ 0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
+ -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
+ -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
+ -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+ -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
+ -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+ -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+ -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
+ -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
+ -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+ -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
+ -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+ -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
+ -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
+ 0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+ -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+ -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+ -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+ -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
+ -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+ -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+ -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+ -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+ -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+ -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+ 0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+ 0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+ 0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+ 0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+ 0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+ -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
+ 0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+ 0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
+ 0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+ 0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+ 0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+ 0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+ 0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+ -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
+ 0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+ 0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+ 0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+ 0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
+ -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
+ -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
+ -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
+ -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
+ 0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+ -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
+ 0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+ 0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
+ 0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
+ 0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
+ 0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+ 0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+ 0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
+ 0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
+ 0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
+ 0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
+ 0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+ 0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
+ 0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+ 0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
+ 0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+ 0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+ 0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+ 0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
+ 0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+ 0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+ 0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+ 0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+ 0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+ 0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
+ -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
+ -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
+ -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+ -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+ -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+ -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
+ -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+ -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+ -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+ -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+ -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+ -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
+ -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
+ -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+ -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
+ -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+ -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+ -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+ -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
+ -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
+ -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
+ -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+ -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+ -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
+ -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+ -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+ -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
+ -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+ -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
+ -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+ -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+ -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+ -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+ -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+ -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+ -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+ 0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+ 0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+ -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+ 0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+ -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+ -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
+ 0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+ -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+ -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+ 0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+ -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+ 0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+ -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+ -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+ -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+ -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+ -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+ -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+ -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
+ -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
+ -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+ -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
+ -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+ -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+ 0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+ -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
+ -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+ 0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+ -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+ 0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+ -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
+ -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+ -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+ -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
+ -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+ -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
+ -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+ -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+ -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+ -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+ -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+ -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+ 0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+ 0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+ -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+ 0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+ -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+ -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+ -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
+ -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+ -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+ -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
+ -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+ -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
+ -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+ -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+ -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+ -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+ -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+ -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+ -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+ 0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+ -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
+ -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
+ -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+ -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+ -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
+ -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
+ -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+ -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
+ -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+ -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
+ 0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+ 0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+ 0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+ 0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+ 0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+ 0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
+ 0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+ 0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
+ 0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
+ 0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
+ 0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+ 0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+ 0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+ -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+ 0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+ 0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+ 0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+ 0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
+ -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+ -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+ 0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
+ 0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
+ 0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+ -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+ 0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+ 0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
+ 0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+ 0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+ 0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+ 0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+ 0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+ 0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
+ 0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+ 0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+ 0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+ 0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+ 0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+ 0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
+ 0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+ 0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+ 0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+ 0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
+ 0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
+ 0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
+ 0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+ 0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+ 0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+ 0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
+ 0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+ -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
+ 0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+ 0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+ 0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+ 0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
+ -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
+ -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
+ -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
+ -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
+ 0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+ -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
+ 0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+ 0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
+ 0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+ 0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+ 0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+ -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
+ 0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+ 0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
+ 0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+ 0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+ 0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+ 0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
+ 0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
+ 0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+ 0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+ 0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
+ 0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+ 0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+ 0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+ 0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+ 0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+ 0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+ 0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+ 0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+ 0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+ 0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+ 0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+ 0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+ 0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+ 0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+ 0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+ 0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+ 0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+ 0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+ 0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+ 0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+ 0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+ 0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+ 0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+ 0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+ 0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+ 0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+ 0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+ 0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+ 0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+ 0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+ 0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+ 0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+ 0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+ 0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+ 0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+ 0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+ 0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+ 0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
+ 0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+ 0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+ 0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+ 0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+ 0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
+ 0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+ 0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+ 0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+ 0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+ 0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+ 0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+ 0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+ 0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+ 0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+ 0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+ 0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+ 0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+ 0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+ 0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
+ 0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+ 0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+ 0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
+ 0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+ 0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+ 0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+ 0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+ 0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+ 0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+ 0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+ 0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+ 0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+ 0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+ 0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+ 0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+ 0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+ 0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+ 0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+ 0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+ 0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+ 0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
+const struct gllist *s1_5=&frame;
diff --git a/hacks/glx/s1_6.c b/hacks/glx/s1_6.c
new file mode 100644
index 0000000..bf2490e
--- /dev/null
+++ b/hacks/glx/s1_6.c
@@ -0,0 +1,1733 @@
+#include "gllist.h"
+static const float data[]={
+ 0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+ 0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
+ 0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
+ 0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
+ 0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
+ 0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+ 0.964484,0.264141,0,1.502855,0.449898,-0.5,
+ 0.923004,0.384789,0,1.481548,0.525864,-0.5,
+ 0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
+ 0.964484,0.264141,0,1.502855,0.449898,-0.5,
+ 0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
+ 0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
+ 0.923004,0.384789,0,1.481548,0.525864,-0.5,
+ 0.551211,0.834366,0,1.460683,0.568581,-0.5,
+ 0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+ 0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+ 0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
+ 0.923004,0.384789,0,1.481548,0.525864,-0.5,
+ 0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+ 0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+ 0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
+ 0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+ 0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
+ 0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+ 0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
+ 0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
+ 0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+ 0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+ 0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
+ 0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
+ 0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+ 0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+ 0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
+ 0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+ 0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
+ 0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+ 0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+ 0.551211,0.834366,0,1.460683,0.568581,-0.5,
+ 0.923004,0.384789,0,1.481548,0.525864,-0.5,
+ 0.923004,0.384789,0,1.481548,0.525864,-0.5,
+ 0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
+ 0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+ 0.964484,0.264141,0,1.502855,0.449898,-0.5,
+ 0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
+ 0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
+ 0.964484,0.264141,0,1.502855,0.449898,-0.5,
+ 0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
+ 0.923004,0.384789,0,1.481548,0.525864,-0.5,
+ -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
+ -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+ -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+ -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
+ -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+ -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
+ -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+ -0.070011,0.997546,0,1.433279,0.578472,-0.5,
+ -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+ -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+ -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+ -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+ 0.551211,0.834366,0,1.460683,0.568581,-0.5,
+ 0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+ -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+ 0.551211,0.834366,0,1.460683,0.568581,-0.5,
+ -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+ -0.070011,0.997546,0,1.433279,0.578472,-0.5,
+ 0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+ 0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+ -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
+ -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
+ -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+ 0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+ -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
+ -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
+ -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+ -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
+ -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+ -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+ -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
+ 0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+ 0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+ 0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+ -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+ -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
+ 0.551211,0.834366,0,1.460683,0.568581,-0.5,
+ -0.070011,0.997546,0,1.433279,0.578472,-0.5,
+ -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+ 0.551211,0.834366,0,1.460683,0.568581,-0.5,
+ -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+ 0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+ -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+ -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+ -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+ -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+ -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+ -0.070011,0.997546,0,1.433279,0.578472,-0.5,
+ 0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
+ 0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
+ 0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
+ 0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
+ 0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
+ 0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+ 0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
+ 0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+ 0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
+ 0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
+ 0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
+ 0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
+ -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
+ 0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+ 0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
+ -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
+ 0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
+ 0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
+ 0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+ 0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+ 0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+ 0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+ 0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
+ 0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+ -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+ -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
+ -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+ -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+ -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+ -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+ -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+ -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+ -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+ -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+ -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+ -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+ -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+ -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
+ 0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
+ 0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
+ -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+ -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+ 0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+ -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+ -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+ 0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+ -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+ 0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
+ -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
+ -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
+ -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+ -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
+ -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+ -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
+ -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
+ -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
+ -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+ -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+ -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+ -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
+ -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
+ -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+ -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+ -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
+ -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+ -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+ -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+ -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+ -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
+ -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
+ -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+ -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+ -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
+ -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
+ -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
+ -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
+ -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
+ -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
+ -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
+ 0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+ 0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+ 0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+ -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
+ -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
+ -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
+ -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+ -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
+ -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
+ -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
+ 0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+ -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+ -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
+ -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
+ -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
+ -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
+ -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+ -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
+ -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
+ -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+ -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
+ -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+ -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+ -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
+ -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+ -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+ -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+ -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+ -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+ -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+ -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+ -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+ -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+ -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+ -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+ -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+ -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+ -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
+ -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+ -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+ -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
+ -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+ -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
+ -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+ -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+ -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+ -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+ -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+ -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+ -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+ -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+ -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+ -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+ -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
+ -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
+ -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+ -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+ -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
+ -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
+ -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+ -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+ -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+ -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+ -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+ -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+ -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
+ -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+ -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+ -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+ -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+ -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+ -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+ -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+ -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+ -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
+ -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+ -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+ -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+ -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+ 0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+ 0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
+ -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+ 0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+ -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+ -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+ 0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
+ -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
+ -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+ -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+ -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+ 0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
+ -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+ -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+ -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+ -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+ -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+ -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+ 0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
+ 0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+ 0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
+ 0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
+ 0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
+ 0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+ 0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+ 0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+ 0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+ 0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+ 0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
+ 0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+ -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
+ 0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
+ 0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
+ -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
+ 0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
+ 0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+ 0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
+ 0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+ 0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+ 0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+ 0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
+ 0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
+ -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
+ -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
+ -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
+ -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
+ -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
+ -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
+ -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
+ -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
+ -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+ -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+ -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
+ -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
+ -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
+ 0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+ -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
+ -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
+ -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
+ -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+ 0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+ 0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+ -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
+ -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
+ -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
+ 0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+ -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
+ -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
+ -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+ -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
+ -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+ -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
+ -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
+ -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+ -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+ -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+ -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+ -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
+ -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
+ -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+ -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+ -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
+ -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+ -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+ -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+ -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
+ -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
+ -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
+ -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+ -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+ -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
+ -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
+ -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+ -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
+ -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+ -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+ -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
+ -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
+ -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+ -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+ -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+ -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+ -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+ -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+ -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+ -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+ -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+ -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+ -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+ -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+ -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
+ -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+ -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+ -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
+ -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+ -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
+ -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+ -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+ -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+ -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+ -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+ -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+ -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+ -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+ -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+ -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
+ -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
+ -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
+ -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+ -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+ -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
+ -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
+ -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+ -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
+ -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+ -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+ -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
+ -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
+ -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+ -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+ -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+ -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+ -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+ -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+ -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+ -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+ -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+ -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+ -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+ -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+ -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
+ -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+ -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+ -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
+ -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+ -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
+ -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+ -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+ -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+ -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+ -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+ -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+ -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+ -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+ -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+ -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+ -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+ -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
+ -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
+ -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
+ -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+ -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+ 0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
+ 0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+ 0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
+ 0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
+ 0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
+ 0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
+ 0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+ 0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
+ 0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
+ 0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
+ 0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
+ 0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+ 0.97102,0.238998,0,1.564666,0.208184,-0.5,
+ 0.968395,0.249424,0,1.531587,0.340261,-0.5,
+ 0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
+ 0.97102,0.238998,0,1.564666,0.208184,-0.5,
+ 0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
+ 0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
+ 0.968395,0.249424,0,1.531587,0.340261,-0.5,
+ 0.964484,0.264141,0,1.502855,0.449898,-0.5,
+ 0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
+ 0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
+ 0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
+ 0.968395,0.249424,0,1.531587,0.340261,-0.5,
+ 0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
+ 0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+ 0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+ 0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+ 0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+ 0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
+ 0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+ 0.973545,0.228495,0,1.599013,0.064899,-0.5,
+ 0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+ 0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+ 0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+ 0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+ 0.973545,0.228495,0,1.599013,0.064899,-0.5,
+ 0.97102,0.238998,0,1.564666,0.208184,-0.5,
+ 0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
+ 0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
+ 0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+ 0.973545,0.228495,0,1.599013,0.064899,-0.5,
+ 0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
+ 0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
+ 0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+ 0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
+ 0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+ 0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
+ 0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+ 0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+ 0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
+ 0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
+ 0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+ 0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+ 0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
+ 0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
+ 0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+ 0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
+ 0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+ 0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
+ 0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
+ 0.97102,0.238998,0,1.564666,0.208184,-0.5,
+ 0.973545,0.228495,0,1.599013,0.064899,-0.5,
+ 0.973545,0.228495,0,1.599013,0.064899,-0.5,
+ 0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+ 0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
+ 0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+ 0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+ 0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+ 0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+ 0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+ 0.973545,0.228495,0,1.599013,0.064899,-0.5,
+ 0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
+ 0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
+ 0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
+ 0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
+ 0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
+ 0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+ 0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
+ 0.964484,0.264141,0,1.502855,0.449898,-0.5,
+ 0.968395,0.249424,0,1.531587,0.340261,-0.5,
+ 0.968395,0.249424,0,1.531587,0.340261,-0.5,
+ 0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
+ 0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
+ 0.97102,0.238998,0,1.564666,0.208184,-0.5,
+ 0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
+ 0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
+ 0.97102,0.238998,0,1.564666,0.208184,-0.5,
+ 0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
+ 0.968395,0.249424,0,1.531587,0.340261,-0.5,
+ 0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
+ 0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
+ 0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+ 0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+ 0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
+ 0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
+ -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
+ -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
+ -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
+ -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
+ -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
+ -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+ -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
+ -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
+ -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+ -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+ -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
+ -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
+ 0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+ 0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+ -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
+ 0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+ -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
+ -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+ 0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+ 0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+ -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+ -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+ -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
+ 0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+ -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+ -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+ -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
+ -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
+ -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
+ -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+ -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
+ 0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+ -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
+ -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
+ -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
+ -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
+ 0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+ 0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+ -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+ -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+ -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
+ 0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+ -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
+ -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+ -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
+ -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
+ -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
+ -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+ 0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+ 0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
+ 0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
+ 0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+ 0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
+ 0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
+ 0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
+ 0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
+ 0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+ 0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+ 0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
+ 0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
+ 0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+ 0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+ 0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
+ 0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+ 0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
+ 0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+ 0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+ -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
+ 0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
+ 0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
+ 0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
+ 0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+ 0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+ 0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
+ 0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+ 0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+ 0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
+ 0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+ 0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+ 0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+ 0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
+ 0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+ 0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
+ 0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+ 0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+ 0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+ 0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+ 0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+ 0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
+ 0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+ 0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
+ 0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+ 0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
+ 0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
+ 0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
+ 0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+ -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
+ -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+ -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
+ -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
+ -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
+ -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
+ -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+ 0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+ 0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+ 0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+ -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
+ -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+ 0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+ -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+ -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
+ 0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+ -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
+ 0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+ -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+ -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
+ -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
+ -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
+ -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
+ -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+ 0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
+ 0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
+ 0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+ 0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+ 0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
+ 0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
+ 0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
+ 0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+ 0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
+ 0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
+ 0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
+ 0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+ 0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+ 0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+ 0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+ 0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+ 0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
+ 0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+ 0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+ 0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
+ 0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
+ 0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+ 0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
+ 0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+ 0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+ 0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
+ 0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
+ 0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+ 0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
+ 0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
+ 0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
+ -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
+ 0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+ 0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+ 0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
+ 0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
+ 0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+ 0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+ 0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
+ 0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+ 0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
+ 0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+ 0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+ 0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
+ 0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
+ 0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
+ 0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
+ 0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+ -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
+ -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
+ -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+ -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+ -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
+ -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
+ -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
+ -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+ -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
+ -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
+ -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
+ -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+ -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+ 0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+ 0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+ 0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+ -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
+ -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+ -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
+ -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
+ -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
+ -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
+ -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
+ 0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+ -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
+ -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
+ -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
+ -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
+ -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+ -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
+ -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+ -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+ -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+ -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+ -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+ -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
+ -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+ -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+ -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+ -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+ -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+ -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+ -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
+ -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
+ -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+ -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
+ -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+ -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+ -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
+ -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
+ -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
+ -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
+ -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+ -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
+ -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
+ -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+ -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+ -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
+ -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+ -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
+ -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+ -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+ -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+ -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+ -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+ -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+ -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+ -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
+ -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+ -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+ -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+ -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+ -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
+ -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
+ -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
+ -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
+ -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
+ -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+ -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
+ -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+ -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+ -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+ -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
+ -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
+ -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+ -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+ -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
+ -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+ -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
+ -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+ -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+ -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
+ -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+ -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+ -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
+ -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+ -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+ -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+ -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
+ -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+ -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
+ -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
+ -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+ -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
+ -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+ -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+ -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
+ -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+ -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+ -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+ -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
+ -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+ -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
+ -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+ -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+ -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+ -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
+ -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
+ -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
+ -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+ -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
+ -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
+ -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+ -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+ -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
+ -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
+ 0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+ -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+ -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
+ 0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+ -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
+ -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+ -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+ -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+ -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
+ -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
+ -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
+ -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+ -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
+ -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
+ -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
+ -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
+ -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
+ -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
+ 0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+ 0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
+ 0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
+ 0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
+ 0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+ 0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+ 0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+ 0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
+ 0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+ 0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+ 0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+ 0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
+ 0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
+ -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+ -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+ -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+ 0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+ 0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
+ 0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+ 0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+ 0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+ 0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+ 0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+ -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+ 0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+ 0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
+ 0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+ 0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+ 0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+ 0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
+ 0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
+ -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
+ -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+ -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+ 0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+ 0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
+ -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+ 0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
+ 0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+ -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+ 0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+ -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+ 0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
+ 0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+ 0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
+ 0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
+ 0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+ 0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
+ -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+ -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+ -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
+ -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+ -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
+ -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
+ -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+ -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
+ -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
+ -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
+ -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
+ -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+ -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+ -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+ -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
+ -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+ -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
+ -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
+ -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+ -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
+ -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
+ -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
+ -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
+ -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+ -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
+ -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
+ -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
+ -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
+ -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
+ -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
+ -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
+ -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
+ -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
+ -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
+ -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
+ -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
+ -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
+ -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+ -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+ -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+ -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
+ -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
+ -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+ -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
+ -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
+ -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+ -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
+ -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+ -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+ -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+ -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
+ -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
+ -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+ -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+ -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+ -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
+ -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+ -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+ -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+ -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
+ -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+ -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
+ -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+ -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+ -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+ -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
+ -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
+ -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
+ -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+ -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+ -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+ -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
+ -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
+ -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
+ -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+ -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+ -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+ -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
+ -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+ -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
+ -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
+ -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
+ -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+ -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+ -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+ -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
+ -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+ -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+ -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+ -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
+ -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+ -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
+ -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+ -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+ -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+ -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
+ -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
+ -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+ -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
+ -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
+ -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
+ -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
+ -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+ -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+ -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
+ -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+ -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
+ -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
+ -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+ -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+ -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
+ -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
+ -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
+ -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+ -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
+ -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
+ -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
+ -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
+ -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
+ -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
+ -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
+ -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+ -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
+ -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
+ -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
+ -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
+ -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
+ -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
+ -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
+ -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
+ -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
+ -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
+ -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
+ -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+ -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+ -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+ -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
+ -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
+ 0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+ -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
+ -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
+ 0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+ -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
+ -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+ -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
+ -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
+ -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
+ -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
+ -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
+ -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+ -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
+ -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
+ -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
+ -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
+ -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
+ -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
+ -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+ -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
+ -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
+ -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+ -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
+ -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
+ -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
+ -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
+ -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+ -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+ -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
+ -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
+ 0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+ 0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
+ 0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+ 0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+ 0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+ 0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
+ 0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
+ 0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
+ 0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
+ 0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
+ 0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+ 0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
+ -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+ -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
+ 0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+ -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+ 0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+ 0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
+ -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
+ -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
+ 0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
+ 0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
+ 0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+ -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
+ 0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
+ 0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+ 0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
+ 0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
+ 0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
+ 0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
+ 0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+ -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+ 0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
+ 0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+ 0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
+ 0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
+ -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+ -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+ 0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
+ 0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
+ 0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
+ -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+ 0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
+ 0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
+ 0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
+ 0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
+ 0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
+ 0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
+ 0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
+ 0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+ 0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
+ 0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
+ 0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+ 0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
+ 0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
+ 0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
+ 0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+ 0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
+ 0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+ 0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
+ 0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
+ 0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+ 0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+ 0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+ 0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+ 0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
+ 0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+ 0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
+ 0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+ 0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+ 0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+ 0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+ 0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+ 0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+ 0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
+ 0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+ 0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
+ 0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
+ 0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+ 0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+ 0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+ 0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+ 0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
+ 0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+ 0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+ 0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
+ 0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
+ 0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+ 0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
+ 0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+ 0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
+ 0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
+ 0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
+ 0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
+ 0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
+ 0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
+ 0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+ 0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
+ 0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
+ 0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+ 0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
+ 0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+ 0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
+ 0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+ 0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
+ 0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
+ 0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
+ 0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
+ 0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+ 0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+ 0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
+ 0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+ 0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
+ 0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
+ 0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+ 0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+ 0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+ 0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+ 0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
+ 0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+ 0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
+ 0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
+ 0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
+ 0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
+ 0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+ 0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
+ 0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+ 0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+ 0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+ 0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+ 0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+ 0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
+ 0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+ 0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+ 0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
+ 0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
+ 0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+ 0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+ 0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+ 0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
+ 0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+ 0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+ 0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+ 0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
+ 0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+ 0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
+ 0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
+ 0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+ 0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
+ 0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+ 0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
+ 0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+ 0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+ 0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+ 0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
+ 0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
+ 0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
+ 0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+ 0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
+ 0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
+ 0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+ 0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+ 0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
+ 0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
+ 0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
+ 0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+ 0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
+ 0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
+ 0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
+ 0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
+ 0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+ 0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
+ 0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
+ 0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
+ 0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
+ 0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+ 0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
+ 0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
+ 0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+ 0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+ 0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
+ 0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
+ 0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
+ 0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+ 0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
+ 0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+ 0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+ 0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
+ 0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+ 0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
+ 0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+ 0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
+ 0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+ 0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+ 0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+ 0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
+ 0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+ 0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
+ 0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
+ 0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
+ 0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
+ 0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
+ 0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+ 0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
+ 0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
+ 0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
+ 0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+ 0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
+ 0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+ 0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+ 0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
+ 0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
+ 0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
+ 0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
+ 0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+ 0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
+ 0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+ 0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+ 0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+ 0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
+ 0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+ 0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+ 0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+ 0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+ 0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+ 0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
+ 0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
+ 0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+ 0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
+ 0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
+ 0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
+ 0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+ 0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+ 0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+ 0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+ 0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+ 0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
+ 0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ 0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
+ 0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ 0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
+ 0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+ 0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
+ 0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
+ 0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+ 0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+ 0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
+ 0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
+ -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
+ -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+ -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
+ -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
+ -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
+ -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+ -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+ -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
+ -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
+ -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
+ -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
+ -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ 0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+ -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
+ -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
+ 0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+ 0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+ -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+ -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+ -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
+ 0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+ -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
+ -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+ -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+ -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
+ -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+ -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
+ 0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+ 0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
+ -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+ 0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+ -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+ -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
+ -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+ 0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
+ -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
+ -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
+ -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
+ -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
+ -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+ -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
+ 0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
+ 0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
+ 0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+ 0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
+ 0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+ 0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+ 0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
+ 0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
+ 0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
+ 0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
+ 0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+ 0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ 0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
+ 0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+ 0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+ 0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+ 0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
+ 0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+ 0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+ 0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+ 0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+ 0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+ 0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
+ -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
+ -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
+ -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
+ -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
+ -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
+ -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+ -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
+ -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+ -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+ -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+ -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
+ -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
+ -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
+ -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+ -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
+ -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
+ -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+ -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+ -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
+ -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
+ -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+ -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+ -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
+ -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+ -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
+ -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
+ -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+ -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
+ -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
+ -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
+ -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
+ -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+ -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
+ -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
+ -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+ -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+ -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
+ -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
+ -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
+ -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+ -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
+ -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+ -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+ -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
+ -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+ -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
+ -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+ -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
+ -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+ -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+ -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+ -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
+ -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+ -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
+ -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
+ -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
+ -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
+ -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
+ -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+ -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
+ -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
+ -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
+ -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+ -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
+ -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+ -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+ -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
+ -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
+ -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
+ -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
+ -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+ -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
+ -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+ -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+ -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+ -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
+ -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+ -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+ -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+ -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+ -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+ -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
+ -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+ -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
+ -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
+ -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+ -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
+ -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+ -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
+ 0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+ 0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+ 0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+ -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
+ -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
+ -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
+ 0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+ -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
+ -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
+ -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+ -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+ -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
+ -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
+ 0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+ 0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+ 0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
+ 0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+ 0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
+ 0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
+ 0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+ 0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
+ 0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
+ 0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
+ 0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
+ 0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ 0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+ 0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ 0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
+ 0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
+ 0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+ 0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+ 0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
+ 0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
+ 0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
+ 0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+ 0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
+ 0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+ 0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+ 0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
+ 0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+ 0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
+ 0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+ 0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
+ 0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+ 0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+ 0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+ 0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ 0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
+ 0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ 0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+ 0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
+ 0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
+ 0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
+ 0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
+ 0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
+ 0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+ 0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
+ -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
+ -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
+ -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+ -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
+ -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+ -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+ -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
+ -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
+ -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
+ -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
+ -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+ -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ 0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
+ -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+ 0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+ -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+ -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
+ 0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+ -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+ -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+ 0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+ -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+ 0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
+ 0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
+ 0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+ 0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+ 0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
+ 0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+ 0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+ 0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+ 0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+ 0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+ 0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+ 0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+ 0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ 0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+ 0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ 0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+ 0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+ 0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+ 0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+ 0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+ 0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+ 0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+ 0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+ -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
+ -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+ -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+ -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
+ -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+ -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+ -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+ -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+ -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+ -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+ -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+ -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ 0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+ -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+ -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+ 0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+ 0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+ -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+ -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+ -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+ 0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+ -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
+ -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+ -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+ -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
+ -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+ -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+ -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+ 0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+ 0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+ 0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+ -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+ -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+ -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+ 0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+ -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+ -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+ -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+ -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+ -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+ -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+ 0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
+ 0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+ 0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+ 0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
+ 0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+ 0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+ 0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+ 0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+ 0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+ 0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+ 0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+ 0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ 0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+ 0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+ 0,-1,0,1.5,-0.660924,-0.5,
+ 0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+ 0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+ 0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+ 0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+ 0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+ 0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+ 0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+ 0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
+const struct gllist *s1_6=&frame;
diff --git a/hacks/glx/s1_b.c b/hacks/glx/s1_b.c
new file mode 100644
index 0000000..efdecf3
--- /dev/null
+++ b/hacks/glx/s1_b.c
@@ -0,0 +1,505 @@
+#include "gllist.h"
+static const float data[]={
+ -0.137893,0.043508,-0.125711,
+ -0.095845,-0.165656,0.072892,
+ -0.093165,0.152051,0.327744,
+ -0.003795,0.001470,-0.102225,
+ 0.152845,-0.430757,-0.031907,
+ -0.118828,0.399389,0.091047,
+ -0.169137,-0.181241,-0.288763,
+ 0.048660,0.018262,-0.035049,
+ 0.008859,0.208004,-0.059048,
+ -0.009212,-0.042229,-0.000692,
+ -0.040025,0.115695,0.178962,
+ -0.198525,0.018630,0.257202,
+ 0.205081,-0.244569,0.136314,
+ -0.214336,-0.149946,-0.006872,
+ 0.245675,-0.227316,-0.184201,
+ -0.001494,0.259139,-0.260652,
+ 0.070243,0.038750,0.069425,
+ -0.033229,-0.259151,0.298856,
+ 0.088773,-0.065324,0.260294,
+ 0.009195,0.078651,0.055543,
+ -0.090795,0.025672,0.056988,
+ -0.163707,-0.011627,-0.096395,
+ 0.068886,0.257031,-0.264175,
+ -0.018086,-0.285526,0.152989,
+ -0.017489,0.031671,0.000107,
+ -0.075583,-0.097617,0.030074,
+ 0.129221,-0.087628,0.171748,
+ -0.007530,-0.084194,0.186045,
+ 0.474638,0.004818,0.200460,
+ 0.016796,0.096614,-0.221351,
+ 0.187032,0.031017,0.039986,
+ -0.142119,-0.105297,-0.100849,
+ 0.142768,-0.313960,-0.349716,
+ -0.146805,0.140482,0.035653,
+ 0.039939,-0.051822,-0.017672,
+ 0.057111,-0.075686,-0.103478,
+ 0.049696,-0.135070,0.055097,
+ 0.030271,0.075412,-0.103571,
+ 0.100158,-0.022917,0.073895,
+ 0.085544,-0.273613,0.092456,
+ 0.077489,-0.309836,-0.003664,
+ -0.017590,-0.127869,0.153118,
+ -0.157014,-0.242184,0.070478,
+ -0.018167,-0.133639,-0.174937,
+ -0.106973,-0.189783,0.038622,
+ -0.000096,0.104429,-0.032589,
+ -0.032036,-0.021493,0.279829,
+ -0.093181,-0.058024,0.182239,
+ 0.012941,-0.010409,0.088080,
+ 0.256718,-0.118137,-0.078847,
+ -0.113382,0.135060,0.269946,
+ 0.175810,-0.026321,0.013860,
+ -0.110606,-0.023553,-0.255525,
+ 0.007163,0.068674,0.010214,
+ 0.031631,-0.170381,-0.174604,
+ 0.117242,0.014353,-0.021215,
+ 0.090315,0.161755,0.074427,
+ 0.285616,0.335824,-0.083891,
+ -0.145763,0.109292,0.121340,
+ -0.147459,-0.041936,0.010427,
+ -0.082626,0.151300,-0.030875,
+ 0.217154,-0.288504,-0.202483,
+ 0.026532,-0.106796,0.121041,
+ 0.046695,-0.033673,-0.043721,
+ 0.135596,0.217426,-0.219631,
+ 0.137627,0.026335,-0.082390,
+ -0.031665,-0.115897,0.077834,
+ -0.214922,-0.162169,0.073035,
+ -0.076108,0.200481,0.036119,
+ 0.012715,-0.161921,0.179804,
+ 0.140409,-0.165899,-0.005149,
+ -0.054606,0.011149,0.045768,
+ 0.116640,-0.180314,0.045320,
+ 0.342166,0.295895,-0.049250,
+ -0.133242,0.129064,0.136969,
+ 0.137520,-0.387145,0.132137,
+ 0.023302,0.194298,-0.066187,
+ 0.089302,0.128683,-0.072530,
+ -0.141374,0.035924,-0.079354,
+ -0.209233,0.018987,-0.004193,
+ 0.156295,-0.034087,0.344315,
+ -0.005946,0.039791,0.071862,
+ 0.076043,-0.094430,0.090122,
+ 0.127394,0.031466,-0.028015,
+ -0.061000,0.169741,-0.127635,
+ -0.015117,-0.160883,-0.095443,
+ -0.185998,-0.182942,0.056857,
+ 0.016499,-0.308118,-0.075513,
+ 0.024971,-0.301226,-0.027251,
+ -0.035944,0.061566,0.013883,
+ 0.007215,0.046198,-0.227891,
+ 0.189165,0.079471,-0.067849,
+ 0.026963,0.027982,-0.050419,
+ -0.050896,0.069604,-0.196938,
+ 0.064274,-0.205263,0.297868,
+ -0.047543,0.147822,0.166593,
+ 0.010318,-0.002148,0.029434,
+ 0.036107,-0.523568,-0.118442,
+ -0.199410,0.233526,-0.161289,
+ -0.047441,-0.013973,0.112998,
+ -0.043494,-0.181796,0.065864,
+ -0.074984,0.177758,-0.156470,
+ 0.225216,0.081058,-0.169876,
+ -0.041510,0.025763,-0.231350,
+ 0.259015,0.274641,0.018290,
+ 0.039196,0.010028,0.072771,
+ 0.031646,0.075290,0.039258,
+ 0.052930,-0.034809,0.165429,
+ -0.072511,0.095786,-0.222144,
+ 0.038706,0.032296,-0.002495,
+ 0.011675,-0.061944,0.082555,
+ -0.168400,0.074113,0.049321,
+ 0.001263,-0.207436,0.013949,
+ -0.027045,0.015697,-0.047831,
+ 0.121989,-0.043014,-0.004426,
+ 0.238374,-0.320060,-0.111754,
+ 0.095077,0.014640,0.070665,
+ -0.084367,0.016444,0.000788,
+ -0.117804,0.113550,0.087029,
+ -0.109080,-0.155795,0.040085,
+ -0.020370,0.118787,0.101787,
+ 0.140877,-0.144829,0.107720,
+ -0.247002,-0.454632,0.070535,
+ -0.016278,-0.111440,0.270110,
+ -0.017624,-0.146232,0.154626,
+ 0.214030,0.041025,-0.170250,
+ 0.010009,-0.159290,-0.076895,
+ 0.116168,0.156775,-0.077935,
+ 0.199355,0.081120,0.003352,
+ 0.054178,-0.036863,-0.004573,
+ -0.015149,0.057005,-0.008878,
+ 0.374758,-0.007823,-0.078051,
+ -0.034977,0.026837,0.035441,
+ 0.101867,0.121954,0.040450,
+ -0.136911,0.010061,0.082698,
+ 0.121665,-0.589852,0.106401,
+ -0.064574,0.098679,0.059336,
+ 0.103037,-0.075263,0.172586,
+ -0.217492,-0.170584,-0.025846,
+ 0.260366,0.002117,0.041535,
+ -0.024112,-0.023437,-0.088146,
+ -0.007767,0.061738,0.116208,
+ 0.253471,0.113278,0.231012,
+ -0.011399,0.116962,-0.037465,
+ 0.233898,0.226108,0.077176,
+ -0.004640,0.209191,-0.091738,
+ 0.093995,0.328937,0.245098,
+ 0.155739,-0.327971,-0.115265,
+ 0.125306,0.174931,0.130030,
+ 0.005005,-0.022310,0.120651,
+ 0.046982,-0.058839,-0.097958,
+ -0.059618,-0.068114,0.070137,
+ 0.053184,-0.081163,0.000020,
+ 0.188066,-0.082942,-0.013689,
+ -0.161390,-0.335891,-0.060737,
+ 0.131189,0.036733,-0.093511,
+ -0.002496,-0.059035,-0.084055,
+ 0.109820,-0.235531,0.130865,
+ 0.018909,0.062351,0.111532,
+ 0.123548,0.094008,0.056761,
+ 0.106710,-0.049834,-0.147748,
+ 0.102940,-0.113169,0.191710,
+ -0.028647,0.128038,-0.104189,
+ 0.107226,-0.220633,-0.147310,
+ -0.205747,0.063433,-0.026135,
+ -0.064614,0.096963,-0.080108,
+ -0.083255,0.113008,-0.089852,
+ 0.180961,-0.269100,0.115523,
+ 0.044722,-0.023285,0.024813,
+ 0.078986,0.037242,0.005124,
+ 0.115141,0.124478,-0.034603,
+ 0.022454,0.155937,-0.096183,
+ 0.175318,0.007233,-0.138507,
+ 0.019182,-0.037869,0.074242,
+ 0.058218,0.212269,-0.003886,
+ -0.188525,-0.075703,0.075643,
+ -0.029085,-0.076746,-0.273473,
+ -0.105590,-0.238524,-0.087465,
+ 0.086122,-0.340807,-0.192851,
+ -0.247936,-0.003160,0.082106,
+ 0.137988,-0.041876,-0.012086,
+ -0.140714,-0.138827,-0.064179,
+ -0.059380,0.015642,0.113841,
+ -0.031501,0.007130,-0.125767,
+ 0.021294,-0.021957,-0.069365,
+ -0.012419,0.019780,-0.077459,
+ 0.085524,0.087513,-0.107484,
+ -0.303263,0.263672,-0.220649,
+ -0.090267,-0.376337,-0.127634,
+ 0.087681,0.015985,-0.029860,
+ 0.119257,0.140347,0.194003,
+ 0.066270,0.127178,-0.003765,
+ 0.037563,-0.110829,0.000382,
+ 0.034295,-0.045737,0.045204,
+ 0.017365,-0.072708,0.056698,
+ 0.045238,0.187956,-0.055878,
+ -0.132755,0.017969,-0.041205,
+ 0.189702,-0.020780,-0.077422,
+ 0.210419,0.178041,-0.005855,
+ 0.104527,-0.304323,0.002581,
+ 0.043359,-0.060695,-0.011878,
+ -0.000267,0.020510,-0.046383,
+ 0.252891,0.074246,-0.047689,
+ -0.069874,0.118962,-0.052781,
+ 0.086188,0.068354,-0.213621,
+ 0.086637,-0.171519,0.006447,
+ 0.196785,-0.086044,-0.068059,
+ 0.100401,0.243886,-0.142258,
+ 0.173010,0.303375,-0.060085,
+ -0.041181,-0.097467,0.073776,
+ -0.013471,-0.133299,-0.143570,
+ -0.302092,-0.158342,0.230719,
+ 0.074434,-0.143530,0.294895,
+ -0.165626,0.200869,-0.130737,
+ 0.102444,0.277067,0.078210,
+ -0.183696,-0.010502,-0.150481,
+ -0.070029,-0.019635,-0.059141,
+ -0.005930,0.069199,-0.013126,
+ -0.119333,-0.007972,0.119489,
+ 0.033072,0.081756,-0.034481,
+ -0.108282,-0.065310,0.146009,
+ 0.080950,0.111320,0.004291,
+ 0.071208,-0.112941,0.028135,
+ -0.024632,0.190525,-0.285626,
+ -0.105040,0.044008,0.020236,
+ -0.017815,-0.076684,-0.065840,
+ 0.083563,0.100873,-0.141154,
+ -0.062066,-0.010894,0.066110,
+ -0.056763,0.024777,-0.176209,
+ -0.014442,0.052861,0.013010,
+ -0.157546,-0.118279,-0.237648,
+ -0.234497,-0.158049,0.102635,
+ 0.061685,-0.052695,-0.042243,
+ 0.093961,-0.025060,0.046602,
+ 0.004395,0.150912,0.191784,
+ 0.067299,-0.059575,0.161018,
+ -0.233155,-0.109721,0.194653,
+ 0.217444,0.221231,-0.201241,
+ -0.033689,-0.341937,-0.099231,
+ 0.042771,-0.028862,0.067736,
+ 0.110240,0.274029,-0.157689,
+ -0.055994,0.144729,0.090901,
+ 0.211192,0.058165,-0.149872,
+ 0.102735,-0.044061,-0.044795,
+ -0.042153,-0.010955,0.014341,
+ -0.011649,0.099072,-0.086419,
+ -0.018920,0.000640,-0.031729,
+ -0.216886,-0.057512,0.071195,
+ -0.188150,0.049292,0.258489,
+ -0.023494,0.021489,0.199785,
+ -0.045818,0.066753,-0.035593,
+ 0.010986,0.166767,0.275085,
+ -0.177039,0.010372,0.167936,
+ -0.423239,0.027466,-0.126114,
+ -0.102035,0.282640,0.022622,
+ -0.023997,0.176943,0.093272,
+ -0.090009,0.015338,0.250857,
+ 0.011095,0.006703,0.057076,
+ 0.133423,0.234639,-0.070260,
+ -0.295994,0.185615,0.117148,
+ 0.235480,0.066195,0.078641,
+ -0.026545,0.093931,0.008019,
+ 0.181656,-0.088719,0.045959,
+ -0.076308,-0.164584,0.018271,
+ 0.092026,0.201866,-0.106051,
+ 0.019876,0.050967,0.176081,
+ -0.018546,0.138749,-0.008255,
+ -0.026049,-0.068465,-0.055467,
+ -0.260245,0.221833,-0.048541,
+ -0.169783,0.354992,-0.017943,
+ -0.306063,0.074787,0.101971,
+ 0.215973,0.107558,-0.008808,
+ 0.390235,-0.275652,-0.117085,
+ 0.033898,0.046047,-0.108977,
+ -0.263507,-0.091765,-0.250234,
+ -0.044613,0.149563,0.027937,
+ -0.015397,-0.040254,0.065692,
+ -0.017531,-0.013504,0.004021,
+ 0.054665,-0.018996,-0.006954,
+ 0.033068,0.219349,-0.194079,
+ -0.057780,0.011881,0.084904,
+ 0.139243,-0.109890,0.039145,
+ 0.223272,0.208110,0.165882,
+ -0.008046,0.103847,0.278718,
+ -0.035499,0.112662,-0.088418,
+ -0.053118,0.053871,-0.054706,
+ 0.118632,0.086431,-0.022494,
+ 0.014943,0.039622,0.047307,
+ 0.006570,0.093461,0.058982,
+ 0.031448,0.325716,-0.047305,
+ -0.193710,0.087226,0.051790,
+ 0.116154,-0.080023,-0.106643,
+ 0.156514,-0.222710,0.275425,
+ -0.084294,-0.101851,0.425222,
+ 0.030344,-0.141370,-0.282460,
+ 0.003022,0.108996,-0.229152,
+ -0.133040,0.061025,-0.128942,
+ -0.077348,0.013363,-0.072511,
+ -0.050317,0.452190,0.094114,
+ 0.053309,-0.143722,0.249884,
+ -0.257016,0.100544,0.012236,
+ -0.022056,-0.212133,0.023533,
+ 0.153299,0.031763,0.034577,
+ 0.161729,0.084914,0.050770,
+ 0.320438,0.112175,0.135015,
+ -0.040717,0.073400,0.080543,
+ -0.226004,0.143154,0.170139,
+ 0.009756,0.068337,0.132111,
+ 0.380191,0.233715,0.026664,
+ -0.018016,0.265426,-0.110691,
+ 0.041281,0.056674,-0.119834,
+ 0.170794,-0.112611,0.094839,
+ 0.216318,0.002081,0.154653,
+ -0.036815,0.024332,0.172587,
+ -0.064554,0.160699,0.101229,
+ 0.114451,0.016039,0.293489,
+ 0.023010,-0.028932,0.014800,
+ -0.290527,0.172553,0.129526,
+ -0.048159,-0.181222,0.305871,
+ 0.065351,-0.399962,-0.030479,
+ 0.334123,-0.120149,0.241310,
+ -0.203728,-0.155627,0.140805,
+ 0.061022,-0.016097,0.131688,
+ 0.045050,-0.313782,-0.279077,
+ 0.034252,-0.135512,-0.087765,
+ 0.276236,0.036449,0.418332,
+ -0.122146,0.050998,0.131453,
+ -0.087629,0.330142,0.061353,
+ 0.228676,0.093309,-0.009307,
+ 0.435264,0.186185,-0.127484,
+ 0.156565,0.013842,-0.103874,
+ -0.274053,-0.084119,0.096687,
+ -0.027947,-0.051152,-0.078997,
+ 0.013399,0.194440,0.072030,
+ 0.000082,0.130666,0.052218,
+ 0.064984,-0.136859,0.092204,
+ 0.109060,0.424779,-0.111867,
+ 0.061748,0.160827,-0.068538,
+ 0.062960,0.059638,-0.181514,
+ 0.018961,0.072298,0.003517,
+ -0.099508,-0.225455,-0.021791,
+ 0.001955,-0.320555,0.159506,
+ -0.057735,-0.054327,-0.095525,
+ 0.319748,-0.146158,-0.198384,
+ -0.158741,-0.265443,0.036635,
+ -0.093089,-0.358379,-0.110549,
+ -0.049805,0.022246,-0.036724,
+ 0.223000,0.247522,-0.232652,
+ -0.249441,-0.248325,-0.071169,
+ 0.000369,0.094598,-0.162153,
+ -0.133873,-0.188473,0.272734,
+ 0.046594,0.069766,0.015561,
+ 0.111582,-0.239786,0.034658,
+ 0.093232,0.183507,-0.011298,
+ -0.226805,0.514871,-0.064144,
+ 0.085949,0.031412,0.042790,
+ -0.043755,-0.290797,-0.159142,
+ 0.056671,0.167837,0.016536,
+ -0.034538,0.072185,0.066973,
+ -0.021211,0.064120,-0.174756,
+ 0.090627,-0.055253,0.109457,
+ 0.019686,0.004469,-0.096316,
+ -0.038864,-0.135083,0.244529,
+ 0.034613,-0.069587,0.144533,
+ -0.100009,-0.057516,-0.079338,
+ -0.178026,0.085994,0.061804,
+ -0.189256,0.342739,0.043372,
+ -0.046206,0.168946,-0.133904,
+ 0.015314,-0.090127,-0.058530,
+ 0.169657,-0.097086,0.013746,
+ 0.185131,-0.089445,0.347806,
+ -0.264432,-0.170170,-0.335858,
+ -0.086511,0.248252,-0.169698,
+ 0.002287,-0.028338,-0.266432,
+ -0.085060,0.001974,-0.032789,
+ 0.192750,-0.007081,0.098197,
+ 0.012577,0.034983,-0.003058,
+ -0.039249,0.038498,0.067306,
+ 0.021988,0.379705,-0.054619,
+ -0.151707,0.051034,-0.016003,
+ -0.057048,0.075729,-0.213397,
+ -0.137847,0.130600,0.046198,
+ 0.024786,0.049556,-0.045772,
+ -0.082533,0.155397,-0.096145,
+ 0.049152,0.270979,-0.147022,
+ 0.061153,-0.104531,-0.103623,
+ -0.142997,-0.232885,0.040538,
+ 0.048806,-0.013095,-0.003505,
+ -0.095063,0.241414,-0.202255,
+ 0.108558,-0.147584,0.162682,
+ 0.217105,0.252340,-0.114830,
+ -0.188028,0.417252,-0.077456,
+ -0.112855,0.105192,0.073968,
+ -0.186972,0.164022,-0.073415,
+ -0.074349,-0.324874,-0.056645,
+ 0.327855,-0.271424,-0.141142,
+ 0.151049,0.155239,-0.083116,
+ 0.035395,-0.133176,-0.095112,
+ 0.127283,-0.011837,0.199750,
+ -0.120775,0.103698,0.063302,
+ 0.014222,0.198468,0.137537,
+ -0.269656,0.120644,-0.153958,
+ -0.136743,-0.119817,-0.073747,
+ -0.068156,-0.138484,0.033507,
+ -0.106835,0.114964,0.023924,
+ -0.222525,0.330321,-0.007431,
+ -0.011739,0.095156,0.139086,
+ 0.146766,0.037685,0.136122,
+ -0.086532,-0.081295,0.009434,
+ 0.189439,0.290592,-0.048317,
+ 0.139152,0.224931,0.355509,
+ 0.017162,-0.016825,0.094198,
+ -0.237595,0.205475,-0.041412,
+ 0.050511,0.094900,0.252891,
+ -0.012538,-0.014082,0.064629,
+ -0.059810,0.020665,-0.260979,
+ 0.073490,-0.242270,0.085847,
+ 0.049499,-0.045617,-0.015894,
+ -0.121040,0.004350,0.381603,
+ -0.062798,0.055006,0.077472,
+ -0.156846,-0.033342,0.035284,
+ 0.105383,0.002776,-0.046394,
+ 0.247612,0.310528,0.046188,
+ -0.144567,-0.197996,0.083309,
+ -0.317845,-0.014793,-0.041608,
+ -0.169858,0.102631,0.283962,
+ -0.168757,0.093105,0.050325,
+ -0.013639,0.285100,0.047089,
+ 0.216644,0.102018,0.031983,
+ 0.046988,0.081482,0.021865,
+ 0.124995,-0.193086,0.127870,
+ 0.009153,0.178713,-0.077949,
+ -0.235371,-0.046817,-0.125764,
+ -0.089381,0.289172,-0.129356,
+ 0.312993,0.120426,0.296957,
+ -0.106431,0.117096,0.156971,
+ 0.030001,0.244577,0.085119,
+ 0.002958,-0.035469,-0.084615,
+ -0.052248,-0.004298,-0.129170,
+ -0.158458,0.059061,-0.041780,
+ -0.007117,-0.174211,0.098819,
+ -0.158387,0.060840,-0.064818,
+ 0.117241,-0.050754,-0.027945,
+ -0.014301,0.146402,-0.118414,
+ 0.186611,-0.162182,-0.150909,
+ -0.106992,0.286109,-0.055512,
+ 0.109689,-0.346409,0.072611,
+ -0.009694,-0.038102,0.098565,
+ -0.034598,0.323300,0.020962,
+ -0.149219,0.040596,-0.114206,
+ 0.164744,0.048081,0.105464,
+ 0.036214,0.099523,0.038595,
+ 0.056537,0.036271,0.003042,
+ -0.157110,0.001614,-0.133994,
+ -0.104357,-0.032004,0.262334,
+ 0.041215,-0.010418,-0.037968,
+ 0.223491,-0.387946,0.117291,
+ -0.344434,0.110318,-0.031448,
+ 0.123562,-0.315729,0.164533,
+ 0.008207,0.042004,0.050014,
+ -0.191339,-0.069291,-0.220065,
+ 0.023845,0.009474,0.035598,
+ -0.173295,-0.036604,-0.193323,
+ -0.040347,-0.106063,-0.055559,
+ -0.071543,0.136487,0.105697,
+ -0.179027,-0.071852,0.117512,
+ 0.064769,-0.345895,0.012833,
+ 0.044800,-0.032357,-0.042161,
+ 0.243586,0.392499,-0.180641,
+ -0.148924,-0.181446,0.146644,
+ -0.042773,0.045843,-0.176893,
+ 0.025938,0.058109,0.242063,
+ -0.028489,-0.024828,0.161289,
+ 0.073899,-0.081205,-0.023751,
+ 0.026149,0.051399,-0.072348,
+ 0.024308,-0.041819,-0.030578,
+ -0.077778,0.010272,0.066967,
+ -0.139184,-0.018983,0.035150,
+ -0.061359,-0.152358,-0.072849,
+ 0.043101,0.028278,0.077387,
+ 0.065599,-0.049676,0.043708,
+ -0.255767,0.023510,-0.076982,
+ 0.020468,-0.040630,0.208424,
+ 0.044922,0.025184,0.004764,
+ 0.107432,-0.009356,0.239863,
+ -0.005475,0.158400,0.089743,
+ 0.018352,0.134559,0.221650,
+ 0.094423,0.129390,-0.031274,
+ 0.048541,0.100595,-0.155938,
+ -0.016298,-0.036518,-0.149178,
+ -0.329953,-0.327602,-0.150086,
+ 0.148403,-0.363334,0.028237,
+ -0.305790,-0.009844,-0.075571,
+ -0.045131,0.152595,0.228720,
+ 0.039725,-0.127469,0.066522,
+ -0.078576,-0.349749,-0.146881,
+ 0.013160,-0.040312,0.129980,
+ 0.221142,-0.106068,0.254967,
+ 0.180912,-0.207357,-0.196999,
+ 0.098219,0.085231,0.121963,
+};
+static const struct gllist frame={GL_V3F,GL_POINTS,500,data,NULL};
+const struct gllist *s1_b=&frame;
diff --git a/hacks/glx/sballs.c b/hacks/glx/sballs.c
new file mode 100644
index 0000000..6cd95f5
--- /dev/null
+++ b/hacks/glx/sballs.c
@@ -0,0 +1,823 @@
+/* sballs --- balls spinning like crazy in GL */
+
+#if 0
+static const char sccsid[] = "@(#)sballs.c 5.02 2001/03/10 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 2001. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by
+ * Mustata Bogdan (LoneRunner) <lonerunner@planetquake.com>
+ * and can be found at http://www.cfxweb.net/lonerunner/
+ *
+ * Eric Lassauge (November-07-2000) <lassauge@users.sourceforge.net>
+ * http://lassauge.free.fr/linux.html
+ *
+ * REVISION HISTORY:
+ *
+ * E.Lassauge - 03-Oct-2001:
+ * - minor bugfixes - get ready for xscreensaver
+ * E.Lassauge - 09-Mar-2001:
+ * - get rid of my framerate options to use showfps
+ * E.Lassauge - 28-Nov-2000:
+ * - add handling of polyhedrons (like in ico)
+ * - modified release part to add freeing of GL objects
+ * E.Lassauge - 14-Nov-2000:
+ * - use new common xpm_to_ximage function
+ *
+ */
+
+#ifdef STANDALONE /* xscreensaver mode */
+#define DEFAULTS "*delay: 30000 \n" \
+ "*size: 0 \n" \
+ "*cycles: 4 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define release_sballs 0
+#define MODE_sballs
+#include "xlockmore.h" /* from the xscreensaver distribution */
+#include "gltrackball.h"
+#else /* !STANDALONE */
+#include "xlock.h" /* from the xlockmore distribution */
+#include "visgl.h"
+#endif /* !STANDALONE */
+
+#define MINSIZE 32 /* minimal viewport size */
+#define FRAME 50 /* frame count interval */
+#define MAX_OBJ 8 /* number of 3D objects */
+
+#if defined( USE_XPM ) || defined( USE_XPMINC ) || defined( STANDALONE )
+/* USE_XPM & USE_XPMINC in xlock mode ; HAVE_XPM in xscreensaver mode */
+# include "ximage-loader.h"
+# define I_HAVE_XPM
+
+# include "images/gen/sball_png.h"
+# include "images/gen/sball-bg_png.h"
+
+/* Manage option vars */
+#define DEF_TEXTURE "True"
+#define DEF_OBJECT "0"
+static Bool do_texture;
+static int object, object_arg;
+static int spheres;
+
+static XrmOptionDescRec opts[] = {
+ {"-texture", ".sballs.texture", XrmoptionNoArg, "on"},
+ {"+texture", ".sballs.texture", XrmoptionNoArg, "off"},
+ {"-object", ".sballs.object", XrmoptionSepArg, 0},
+
+};
+
+static argtype vars[] = {
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&object_arg, "object", "Object", DEF_OBJECT, t_Int},
+
+};
+
+static OptionStruct desc[] = {
+ /*{"-count spheres", "set number of spheres"},*/
+ /*{"-cycles speed", "set ball speed value"},*/
+ {"-/+texture", "turn on/off texturing"},
+ {"-object num", "number of the 3D object (0 means random)"},
+};
+
+ENTRYPOINT ModeSpecOpt sballs_opts =
+ { sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc };
+
+#ifdef USE_MODULES
+ModStruct sballs_description =
+ { "sballs", "init_sballs", "draw_sballs", NULL,
+ "draw_sballs", "change_sballs", "free_sballs", &sballs_opts,
+ /*
+ delay,count,cycles,size,ncolors,sat
+ */
+ 10000, 0, 10, 400, 64, 1.0, "",
+ "balls spinning like crazy in GL", 0, NULL
+};
+#endif /* USE_MODULES */
+
+/* misc types and defines */
+#define vinit(a,i,j,k) {\
+ (a)[0]=i;\
+ (a)[1]=j;\
+ (a)[2]=k;\
+}
+typedef float vec_t;
+typedef vec_t vec3_t[3];
+
+#define MAX_BALLS 20
+
+/* the mode struct, contains all per screen variables */
+typedef struct {
+ GLint WIDTH, HEIGHT; /* display dimensions */
+ GLXContext *glx_context;
+
+
+ XImage *btexture; /* back texture image bits */
+ XImage *ftexture; /* face texture image bits */
+ GLuint backid; /* back texture id: GL world */
+ GLuint faceid; /* face texture id: GL world */
+
+ vec3_t eye;
+ vec3_t rotm;
+ int speed;
+ float radius[MAX_BALLS];
+
+ trackball_state *trackball;
+ Bool button_down_p;
+
+} sballsstruct;
+
+/* array of sballsstruct indexed by screen number */
+static sballsstruct *sballs = (sballsstruct *) NULL;
+
+/* lights */
+static const float LightAmbient[]= { 1.0f, 1.0f, 1.0f, 1.0f };
+static const float LightDiffuse[]= { 1.0f, 1.0f, 1.0f, 1.0f };
+static const float LightPosition[]= { 0.0f, 0.0f, 4.0f, 1.0f };
+
+/* structure of the polyhedras */
+typedef struct {
+ const char *longname; /* long name of object */
+ const char *shortname; /* short name of object */
+ int numverts; /* number of vertices */
+ float radius; /* radius */
+ vec3_t v[MAX_BALLS];/* the vertices */
+} Polyinfo;
+
+static const Polyinfo polygons[] =
+{
+
+/* 0: objtetra - structure values for tetrahedron */
+ {
+ "tetrahedron", "tetra", /* long and short names */
+ 4, /* number of vertices */
+ 0.8,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 2 of the origin */
+#define T 1.0
+ {T, T, T},
+ {T, -T, -T},
+ {-T, T, -T},
+ {-T, -T, T},
+#undef T
+ }
+ },
+
+/* 1: objcube - structure values for cube */
+
+ {
+ "hexahedron", "cube", /* long and short names */
+ 8, /* number of vertices, edges, and faces */
+ 0.6,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 2 of the origin */
+#define T 1.0
+ {T, T, T},
+ {T, T, -T},
+ {T, -T, -T},
+ {T, -T, T},
+ {-T, T, T},
+ {-T, T, -T},
+ {-T, -T, -T},
+ {-T, -T, T},
+#undef T
+ }
+ },
+
+/* 2: objocta - structure values for octahedron */
+
+ {
+ "octahedron", "octa", /* long and short names */
+ 6, /* number of vertices */
+ 0.6,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 2 of the origin */
+#define T 1.5
+ {T, 0, 0},
+ {-T, 0, 0},
+ {0, T, 0},
+ {0, -T, 0},
+ {0, 0, T},
+ {0, 0, -T},
+#undef T
+ }
+ },
+/* 3: objdodec - structure values for dodecahedron */
+
+ {
+ "dodecahedron", "dodeca", /* long and short names */
+ 20, /* number of vertices */
+ 0.35,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 2 of the origin */
+ {0.000000, 0.500000, 1.000000},
+ {0.000000, -0.500000, 1.000000},
+ {0.000000, -0.500000, -1.000000},
+ {0.000000, 0.500000, -1.000000},
+ {1.000000, 0.000000, 0.500000},
+ {-1.000000, 0.000000, 0.500000},
+ {-1.000000, 0.000000, -0.500000},
+ {1.000000, 0.000000, -0.500000},
+ {0.500000, 1.000000, 0.000000},
+ {-0.500000, 1.000000, 0.000000},
+ {-0.500000, -1.000000, 0.000000},
+ {0.500000, -1.000000, 0.000000},
+ {0.750000, 0.750000, 0.750000},
+ {-0.750000, 0.750000, 0.750000},
+ {-0.750000, -0.750000, 0.750000},
+ {0.750000, -0.750000, 0.750000},
+ {0.750000, -0.750000, -0.750000},
+ {0.750000, 0.750000, -0.750000},
+ {-0.750000, 0.750000, -0.750000},
+ {-0.750000, -0.750000, -0.750000},
+ }
+ },
+
+/* 4: objicosa - structure values for icosahedron */
+
+ {
+ "icosahedron", "icosa", /* long and short names */
+ 12, /* number of vertices */
+ 0.4,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 2 of the origin */
+ {0.00000000, 0.00000000, -0.95105650},
+ {0.00000000, 0.85065080, -0.42532537},
+ {0.80901698, 0.26286556, -0.42532537},
+ {0.50000000, -0.68819095, -0.42532537},
+ {-0.50000000, -0.68819095, -0.42532537},
+ {-0.80901698, 0.26286556, -0.42532537},
+ {0.50000000, 0.68819095, 0.42532537},
+ {0.80901698, -0.26286556, 0.42532537},
+ {0.00000000, -0.85065080, 0.42532537},
+ {-0.80901698, -0.26286556, 0.42532537},
+ {-0.50000000, 0.68819095, 0.42532537},
+ {0.00000000, 0.00000000, 0.95105650}
+ }
+ },
+
+/* 5: objplane - structure values for plane */
+
+ {
+ "plane", "plane", /* long and short names */
+ 4, /* number of vertices */
+ 0.7,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 2 of the origin */
+#define T 1.1
+ {T, 0, 0},
+ {-T, 0, 0},
+ {0, T, 0},
+ {0, -T, 0},
+#undef T
+ }
+ },
+
+/* 6: objpyr - structure values for pyramid */
+
+ {
+ "pyramid", "pyramid", /* long and short names */
+ 5, /* number of vertices */
+ 0.5,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 1 of the origin */
+#define T 1.0
+ {T, 0, 0},
+ {-T, 0, 0},
+ {0, T, 0},
+ {0, -T, 0},
+ {0, 0, T},
+#undef T
+ }
+ },
+
+/* 7: objstar - structure values for octahedron star (stellated octahedron?) */
+ {
+ "star", "star", /* long and short names */
+ 8, /* number of vertices */
+ 0.7,
+ { /* vertices (x,y,z) */
+ /* all points must be within radius 1 of the origin */
+#define T 0.9
+ {T, T, T},
+ {T, -T, -T},
+ {-T, T, -T},
+ {-T, -T, T},
+ {-T, -T, -T},
+ {-T, T, T},
+ {T, -T, T},
+ {T, T, -T},
+#undef T
+ }
+ },
+
+};
+
+
+
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Misc funcs.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+
+/* initialise textures */
+static void inittextures(ModeInfo * mi)
+{
+ sballsstruct *sb = &sballs[MI_SCREEN(mi)];
+
+#if defined( I_HAVE_XPM )
+ if (do_texture) {
+
+ glGenTextures(1, &sb->backid);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, sb->backid);
+#endif /* HAVE_GLBINDTEXTURE */
+
+ sb->btexture = image_data_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+ sball_bg_png,
+ sizeof(sball_bg_png));
+ if (!(sb->btexture)) {
+ (void) fprintf(stderr, "Error reading the background texture.\n");
+ glDeleteTextures(1, &sb->backid);
+ do_texture = False;
+ sb->faceid = 0; /* default textures */
+ sb->backid = 0;
+ return;
+ }
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ sb->btexture->width, sb->btexture->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, sb->btexture->data);
+ check_gl_error("texture");
+
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+/*
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ Let's pixellate it instead:
+*/
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ glGenTextures(1, &sb->faceid);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, sb->faceid);
+#endif /* HAVE_GLBINDTEXTURE */
+
+ sb->ftexture = image_data_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+ sball_png, sizeof(sball_png));
+ if (!(sb->ftexture)) {
+ (void) fprintf(stderr, "Error reading the face texture.\n");
+ glDeleteTextures(1, &sb->faceid);
+ sb->faceid = 0;
+ return;
+ }
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ clear_gl_error();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ sb->ftexture->width, sb->ftexture->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, sb->ftexture->data);
+ check_gl_error("texture");
+
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+/*
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ Let's pixellate it instead:
+*/
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ }
+ else
+ {
+ sb->faceid = 0; /* default textures */
+ sb->backid = 0;
+ }
+#else /* !I_HAVE_XPM */
+ do_texture = False;
+ sb->faceid = 0; /* default textures */
+ sb->backid = 0;
+#endif /* !I_HAVE_XPM */
+}
+
+static void drawSphere(ModeInfo * mi,int sphere_num)
+{
+ sballsstruct *sb = &sballs[MI_SCREEN(mi)];
+ float x = polygons[object].v[sphere_num][0];
+ float y = polygons[object].v[sphere_num][1];
+ float z = polygons[object].v[sphere_num][2];
+ int numMajor = 15;
+ int numMinor = 30;
+ float radius = sb->radius[sphere_num];
+ double majorStep = (M_PI / numMajor);
+ double minorStep = (2.0 * M_PI / numMinor);
+ int i, j;
+
+ glPushMatrix();
+ glTranslatef(x, y, z);
+
+ glColor4f(1, 1, 1, 1);
+ for (i = 0; i < numMajor; ++i)
+ {
+ double a = i * majorStep;
+ double b = a + majorStep;
+ double r0 = radius * sin(a);
+ double r1 = radius * sin(b);
+ GLfloat z0 = radius * cos(a);
+ GLfloat z1 = radius * cos(b);
+
+ glBegin(MI_IS_WIREFRAME(mi) ? GL_LINE_STRIP: GL_TRIANGLE_STRIP);
+ for (j = 0; j <= numMinor; ++j)
+ {
+ double c = j * minorStep;
+ GLfloat x = cos(c);
+ GLfloat y = sin(c);
+
+ glNormal3f((x * r0) / radius, (y * r0) / radius, z0 / radius);
+ glTexCoord2f(j / (GLfloat) numMinor, i / (GLfloat) numMajor);
+ glVertex3f(x * r0, y * r0, z0);
+
+ glNormal3f((x * r1) / radius, (y * r1) / radius, z1 / radius);
+ glTexCoord2f(j / (GLfloat) numMinor, (i + 1) / (GLfloat) numMajor);
+ glVertex3f(x * r1, y * r1, z1);
+
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+
+ glPopMatrix();
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * GL funcs.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+#ifndef STANDALONE
+static void Reshape(ModeInfo * mi)
+#else
+ENTRYPOINT void reshape_sballs(ModeInfo * mi, int width, int height)
+#endif
+{
+
+ sballsstruct *sb = &sballs[MI_SCREEN(mi)];
+ int size = MI_SIZE(mi);
+
+ /* Viewport is specified size if size >= MINSIZE && size < screensize */
+ if (size <= 1) {
+ sb->WIDTH = MI_WIDTH(mi);
+ sb->HEIGHT = MI_HEIGHT(mi);
+ } else if (size < MINSIZE) {
+ sb->WIDTH = MINSIZE;
+ sb->HEIGHT = MINSIZE;
+ } else {
+ sb->WIDTH = (size > MI_WIDTH(mi)) ? MI_WIDTH(mi) : size;
+ sb->HEIGHT = (size > MI_HEIGHT(mi)) ? MI_HEIGHT(mi) : size;
+ }
+
+ if (width > height * 5) { /* tiny window: show middle */
+ sb->WIDTH = width;
+ sb->HEIGHT = sb->WIDTH*0.75;
+ }
+
+ glViewport((MI_WIDTH(mi) - sb->WIDTH) / 2, (MI_HEIGHT(mi) - sb->HEIGHT) / 2, sb->WIDTH, sb->HEIGHT);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(55.0, (float)sb->WIDTH / (float) sb->HEIGHT, 1.0, 300.0);
+
+ glMatrixMode(GL_MODELVIEW);
+
+}
+
+static void Draw(ModeInfo * mi)
+{
+ sballsstruct *sb = &sballs[MI_SCREEN(mi)];
+ int sphere;
+
+ mi->polygon_count = 0;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glEnable(GL_DEPTH_TEST);
+
+ /* move eyes */
+ glTranslatef (-sb->eye[0], -sb->eye[1], -sb->eye[2]);
+
+ /* draw background */
+ if (do_texture)
+ {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_TEXTURE_2D);
+ glColor3f(1, 1, 1);
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, sb->backid);
+#endif /* HAVE_GLBINDTEXTURE */
+ }
+ else
+ {
+ glColor3f(0, 0, 0);
+ }
+ glBegin(GL_QUAD_STRIP);
+#ifndef HAVE_MOBILE
+ /* Letterbox the background image */
+ glNormal3f(0, 0, 1); glTexCoord2f(0,0); glVertex3f(8, 4.1, -4);
+ glNormal3f(0, 0, 1); glTexCoord2f(0,1); glVertex3f(8, -4.1, -4);
+ glNormal3f(0, 0, 1); glTexCoord2f(1,0); glVertex3f(-8, 4.1, -4);
+ glNormal3f(0, 0, 1); glTexCoord2f(1,1); glVertex3f(-8, -4.1, -4);
+#else
+ /* Fill the iPhone screen. Letterboxing looks dumb there. */
+ glNormal3f(0, 0, 1); glTexCoord2f(0,0); glVertex3f(4, 5.2, -4);
+ glNormal3f(0, 0, 1); glTexCoord2f(0,1); glVertex3f(4, -5.2, -4);
+ glNormal3f(0, 0, 1); glTexCoord2f(1,0); glVertex3f(-4, 5.2, -4);
+ glNormal3f(0, 0, 1); glTexCoord2f(1,1); glVertex3f(-4, -5.2, -4);
+#endif
+ glEnd();
+ mi->polygon_count++;
+
+ gltrackball_rotate (sb->trackball);
+
+ /* rotate the balls */
+ glRotatef(sb->rotm[0], 1.0f, 0.0f, 0.0f);
+ glRotatef(sb->rotm[1], 0.0f, 1.0f, 0.0f);
+ glRotatef(sb->rotm[2], 0.0f, 0.0f, 1.0f);
+
+ if (! sb->button_down_p) {
+ sb->rotm[0] += sb->speed;
+ sb->rotm[1] += -(sb->speed);
+ sb->rotm[2] += 0;
+ }
+
+ /* draw the balls */
+ if (do_texture)
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, sb->faceid);
+ else
+#endif /* HAVE_GLBINDTEXTURE */
+ glEnable(GL_LIGHTING);
+ for (sphere=0;sphere<spheres;sphere++)
+ {
+ drawSphere(mi,sphere);
+ }
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_LIGHTING);
+
+ /* manage framerate display */
+ if (MI_IS_FPS(mi)) do_fps (mi);
+ glPopMatrix();
+}
+
+
+static void Init(ModeInfo * mi)
+{
+ sballsstruct *sb = &sballs[MI_SCREEN(mi)];
+ int i;
+
+ /* Default settings */
+ if (MI_IS_WIREFRAME(mi))
+ do_texture = False;
+ if (do_texture)
+ inittextures(mi);
+ else
+ {
+ sb->btexture = (XImage*) NULL;
+ sb->ftexture = (XImage*) NULL;
+ }
+
+ vinit(sb->eye ,0.0f, 0.0f, 6.0f);
+ vinit(sb->rotm ,0.0f, 0.0f, 0.0f);
+ sb->speed = MI_CYCLES(mi);
+
+ /* initialise object number */
+ object = object_arg-1;
+ if (object < 0 || object >= MAX_OBJ)
+ object = NRAND(MAX_OBJ);
+
+ /* initialise sphere number */
+ spheres = MI_COUNT(mi);
+ if (MI_COUNT(mi) > polygons[object].numverts)
+ spheres = polygons[object].numverts;
+ if (MI_COUNT(mi) < 1)
+ spheres = polygons[object].numverts;
+ /* initialise sphere radius */
+ for(i=0; i < spheres;i++)
+ {
+#if RANDOM_RADIUS
+ sb->radius[i] = ((float) LRAND() / (float) MAXRAND);
+ if (sb->radius[i] < 0.3)
+ sb->radius[i] = 0.3;
+ if (sb->radius[i] > 0.7)
+ sb->radius[i] = 0.7;
+#else
+ sb->radius[i] = polygons[object].radius;
+#endif
+ }
+
+ if (MI_IS_DEBUG(mi)) {
+ (void) fprintf(stderr,
+ "%s:\n\tobject=%s\n\tspheres=%d\n\tspeed=%d\n\ttexture=%s\n",
+ MI_NAME(mi),
+ polygons[object].shortname,
+ spheres,
+ (int) MI_CYCLES(mi),
+ do_texture ? "on" : "off"
+ );
+ }
+
+ glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);
+ glEnable(GL_LIGHT1);
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ * Xlock hooks.
+ *-----------------------------------------------------------------------------
+ *-----------------------------------------------------------------------------
+ */
+
+/*
+ *-----------------------------------------------------------------------------
+ * Initialize sballs. Called each time the window changes.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void init_sballs(ModeInfo * mi)
+{
+ sballsstruct *sb;
+
+ MI_INIT(mi, sballs);
+ sb = &sballs[MI_SCREEN(mi)];
+
+ sb->trackball = gltrackball_init (True);
+
+ if ((sb->glx_context = init_GL(mi)) != NULL) {
+
+#ifndef STANDALONE
+ Reshape(mi); /* xlock mode */
+#else
+ reshape_sballs(mi,MI_WIDTH(mi),MI_HEIGHT(mi)); /* xscreensaver mode */
+#endif
+ glDrawBuffer(GL_BACK);
+ Init(mi);
+
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * Called by the mainline code periodically to update the display.
+ *-----------------------------------------------------------------------------
+ */
+ENTRYPOINT void draw_sballs(ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ sballsstruct *sb;
+
+ if (sballs == NULL)
+ return;
+ sb = &sballs[MI_SCREEN(mi)];
+
+ MI_IS_DRAWN(mi) = True;
+ if (!sb->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(sb->glx_context));
+ Draw(mi);
+#ifndef STANDALONE
+ Reshape(mi); /* xlock mode */
+#else
+ reshape_sballs(mi,MI_WIDTH(mi),MI_HEIGHT(mi)); /* xscreensaver mode */
+#endif
+
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ * The display is being taken away from us. Free up malloc'ed
+ * memory and X resources that we've alloc'ed.
+ *-----------------------------------------------------------------------------
+ */
+
+ENTRYPOINT void free_sballs(ModeInfo * mi)
+{
+ sballsstruct *sb = &sballs[MI_SCREEN(mi)];
+ if (sb->glx_context)
+ {
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sb->glx_context));
+ if (sb->btexture)
+ {
+ glDeleteTextures(1,&sb->backid);
+ XDestroyImage(sb->btexture);
+ sb->btexture = 0;
+ }
+ if (sb->ftexture)
+ {
+ glDeleteTextures(1,&sb->faceid);
+ XDestroyImage(sb->ftexture);
+ sb->ftexture = 0;
+ }
+ }
+}
+
+ENTRYPOINT Bool
+sballs_handle_event (ModeInfo *mi, XEvent *event)
+{
+ sballsstruct *sb = &sballs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, sb->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &sb->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+#ifndef STANDALONE
+ENTRYPOINT void change_sballs(ModeInfo * mi)
+{
+ sballsstruct *sb;
+
+ if (sballs == NULL)
+ return;
+ sb = &sballs[MI_SCREEN(mi)];
+
+ if (!sb->glx_context)
+ return;
+
+ /* initialise object number */
+ if ((object == 0) || (object > MAX_OBJ))
+ object = NRAND(MAX_OBJ-1)+1;
+ object--;
+
+ /* correct sphere number */
+ spheres = MI_COUNT(mi);
+ if (MI_COUNT(mi) > polygons[object].numverts)
+ spheres = polygons[object].numverts;
+ if (MI_COUNT(mi) < 1)
+ spheres = polygons[object].numverts;
+
+ if (MI_IS_DEBUG(mi)) {
+ (void) fprintf(stderr,
+ "%s:\n\tobject=%s\n\tspheres=%d\n\tspeed=%d\n\ttexture=%s\n",
+ MI_NAME(mi),
+ polygons[object].shortname,
+ spheres,
+ (int) MI_CYCLES(mi),
+ do_texture ? "on" : "off"
+ );
+ }
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sb->glx_context));
+
+}
+#endif /* !STANDALONE */
+
+XSCREENSAVER_MODULE ("SBalls", sballs)
+
+#endif /* MODE_sballs */
diff --git a/hacks/glx/sballs.man b/hacks/glx/sballs.man
new file mode 100644
index 0000000..33cb942
--- /dev/null
+++ b/hacks/glx/sballs.man
@@ -0,0 +1,125 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "03-Oct-01" "X Version 11"
+.SH NAME
+sballs - draws balls spinning like crazy in GL
+.SH SYNOPSIS
+.B sballs
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-object \fIobject_number\fP]
+[\-cycles \fIsphere_speed\fP]
+[\-size \fIviewport_size\fP]
+[\-texture] [\-no-texture]
+[\-wireframe] [\-no-wireframe]
+[\-trackmouse] [\-no-trackmouse]
+[\-fps]
+.SH DESCRIPTION
+The \fIsballs\fP program draws an animation of balls spinning like crazy in GL.
+.SH OPTIONS
+.I sballs
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-object \fIobject_number\fP\fP
+Specify how the spheres are grouped (forming an object).
+Objects are:
+.TP 10
+.B 1
+tetrahedron
+.TP 10
+.B 2
+cube. This is the default.
+.TP 10
+.B 3
+octahedron
+.TP 10
+.B 4
+dodecahedron
+.TP 10
+.B 5
+icosahedron
+.TP 10
+.B 6
+plane
+.TP 10
+.B 7
+pyramid
+.TP 10
+.B 8
+star
+.TP 8
+.B \-size \fIviewport_size\fP\fP
+Viewport of GL scene is specified size if greater than 32 and less than screensize. Default value is 0, meaning full screensize.
+.TP 8
+.B \-texture
+Show a textured background and spheres. This is the default.
+.TP 8
+.B \-no\-texture
+Disables texturing the animation.
+.TP 8
+.B \-trackmouse
+Let the mouse be a joystick to change the view of the animation.
+This implies
+.I \-no\-wander.
+.TP 8
+.B \-no\-trackmouse
+Disables mouse tracking. This is the default.
+.TP 8
+.B \-wire
+Draw a wireframe rendition of the spheres.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2001 by Eric Lassauge.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+
+The original code for this mode was written by
+Mustata Bogdan (LoneRunner) <lonerunner@planetquake.com>
+and can be found at http://www.cfxweb.net/lonerunner/
+
+.SH AUTHOR
+Mustata Bogdan (LoneRunner) <lonerunner@planetquake.com>
+Eric Lassauge <lassauge@users.sourceforge.net>
diff --git a/hacks/glx/seccam.c b/hacks/glx/seccam.c
new file mode 100644
index 0000000..a72dd1a
--- /dev/null
+++ b/hacks/glx/seccam.c
@@ -0,0 +1,1388 @@
+/* Generated from "seccam.dxf" on 31-May-2017.
+ Smoothed vertex normals.
+ Components: body, cap, hinge, lens, pipe.
+ */
+
+#include "gllist.h"
+
+static const float seccam_body_data[] = {
+ 0,0.894427,0.447214,-5,2.25,5,
+ 0,0.952226,0.305393,7.75,3,3.5,
+ 0,0.988273,0.152697,-5,3,3.5,
+ 0,0.952226,0.305393,7.75,3,3.5,
+ 0,0.894427,0.447214,-5,2.25,5,
+ 0,0.894427,0.447214,7.75,2.25,5,
+ 0,0.172669,-0.98498,7.75,2.450912,1.010298,
+ 0,0.083016,-0.996548,-5,2.36871,1,
+ 0,0.22073,-0.975335,-5,2.450912,1.010298,
+ 0,0.083016,-0.996548,-5,2.36871,1,
+ 0,0.172669,-0.98498,7.75,2.450912,1.010298,
+ 0,0.041508,-0.999138,7.75,2.36871,1,
+ 0,0.996548,-0.083016,-5,3,1.63129,
+ 0,0.98498,-0.172669,7.75,2.989702,1.549088,
+ 0,0.975335,-0.22073,-5,2.989702,1.549088,
+ 0,0.98498,-0.172669,7.75,2.989702,1.549088,
+ 0,0.996548,-0.083016,-5,3,1.63129,
+ 0,0.999138,-0.041508,7.75,3,1.63129,
+ 0,0.041508,-0.999138,7.75,2.36871,1,
+ 0,0,-1,-5,2.25,1,
+ 0,0.083016,-0.996548,-5,2.36871,1,
+ 0,0,-1,-5,2.25,1,
+ 0,0.041508,-0.999138,7.75,2.36871,1,
+ 0,0,-1,7.75,2.25,1,
+ 0,0.450399,-0.892827,7.75,2.640242,1.078314,
+ 0,0.361055,-0.932544,-5,2.548078,1.037344,
+ 0,0.49361,-0.869683,-5,2.640242,1.078314,
+ 0,0.361055,-0.932544,-5,2.548078,1.037344,
+ 0,0.450399,-0.892827,7.75,2.640242,1.078314,
+ 0,0.314923,-0.949117,7.75,2.548078,1.037344,
+ 0,0.869683,-0.49361,-5,2.921686,1.359758,
+ 0,0.817322,-0.576182,7.75,2.867672,1.274581,
+ 0,0.788104,-0.615542,-5,2.867672,1.274581,
+ 0,0.817322,-0.576182,7.75,2.867672,1.274581,
+ 0,0.869683,-0.49361,-5,2.921686,1.359758,
+ 0,0.892827,-0.450399,7.75,2.921686,1.359758,
+ 0,0,-1,7.75,2.25,1,
+ 0,0,-1,-5,0,1,
+ 0,0,-1,-5,2.25,1,
+ 0,0,-1,-5,0,1,
+ 0,0,-1,7.75,2.25,1,
+ 0,0,-1,7.75,0,1,
+ 0,0,1,7.75,0,5,
+ 0,0,1,-5,2.25,5,
+ 0,0,1,-5,0,5,
+ 0,0,1,-5,2.25,5,
+ 0,0,1,7.75,0,5,
+ 0,0,1,7.75,2.25,5,
+ 0,0.576182,-0.817322,7.75,2.725419,1.132328,
+ 0,0.49361,-0.869683,-5,2.640242,1.078314,
+ 0,0.615542,-0.788104,-5,2.725419,1.132328,
+ 0,0.49361,-0.869683,-5,2.640242,1.078314,
+ 0,0.576182,-0.817322,7.75,2.725419,1.132328,
+ 0,0.450399,-0.892827,7.75,2.640242,1.078314,
+ 0,1,0,-5,3,1.75,
+ 0,0.999138,-0.041508,7.75,3,1.63129,
+ 0,0.996548,-0.083016,-5,3,1.63129,
+ 0,0.999138,-0.041508,7.75,3,1.63129,
+ 0,1,0,-5,3,1.75,
+ 0,1,0,7.75,3,1.75,
+ 0,0.932544,-0.361055,-5,2.962656,1.451922,
+ 0,0.892827,-0.450399,7.75,2.921686,1.359758,
+ 0,0.869683,-0.49361,-5,2.921686,1.359758,
+ 0,0.892827,-0.450399,7.75,2.921686,1.359758,
+ 0,0.932544,-0.361055,-5,2.962656,1.451922,
+ 0,0.949117,-0.314923,7.75,2.962656,1.451922,
+ 0,0.788104,-0.615542,-5,2.867672,1.274581,
+ 0,0.707107,-0.707107,7.75,2.801777,1.198223,
+ 0,0.707107,-0.707107,-5,2.801777,1.198223,
+ 0,0.707107,-0.707107,7.75,2.801777,1.198223,
+ 0,0.788104,-0.615542,-5,2.867672,1.274581,
+ 0,0.817322,-0.576182,7.75,2.867672,1.274581,
+ 0,0.988273,0.152697,-5,3,3.5,
+ 0,1,0,7.75,3,1.75,
+ 0,1,0,-5,3,1.75,
+ 0,1,0,7.75,3,1.75,
+ 0,0.988273,0.152697,-5,3,3.5,
+ 0,0.952226,0.305393,7.75,3,3.5,
+ 0,0.975335,-0.22073,-5,2.989702,1.549088,
+ 0,0.949117,-0.314923,7.75,2.962656,1.451922,
+ 0,0.932544,-0.361055,-5,2.962656,1.451922,
+ 0,0.949117,-0.314923,7.75,2.962656,1.451922,
+ 0,0.975335,-0.22073,-5,2.989702,1.549088,
+ 0,0.98498,-0.172669,7.75,2.989702,1.549088,
+ 0,0.707107,-0.707107,7.75,2.801777,1.198223,
+ 0,0.615542,-0.788104,-5,2.725419,1.132328,
+ 0,0.707107,-0.707107,-5,2.801777,1.198223,
+ 0,0.615542,-0.788104,-5,2.725419,1.132328,
+ 0,0.707107,-0.707107,7.75,2.801777,1.198223,
+ 0,0.576182,-0.817322,7.75,2.725419,1.132328,
+ 0,0.314923,-0.949117,7.75,2.548078,1.037344,
+ 0,0.22073,-0.975335,-5,2.450912,1.010298,
+ 0,0.361055,-0.932544,-5,2.548078,1.037344,
+ 0,0.22073,-0.975335,-5,2.450912,1.010298,
+ 0,0.314923,-0.949117,7.75,2.548078,1.037344,
+ 0,0.172669,-0.98498,7.75,2.450912,1.010298,
+ 1,0,0,7.75,3.002239,1.649165,
+ 1,0,0,7.75,3,1.75,
+ 1,0,0,7.75,3,1.63129,
+ 1,0,0,7.75,2.36871,1,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,2.350835,0.997761,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,0,1.875,
+ 1,0,0,7.75,0,1,
+ 1,0,0,7.75,0,1.875,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,1.174754,1.875947,
+ 1,0,0,7.75,1.174754,1.875947,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,1.245773,1.89962,
+ 1,0,0,7.75,1.245773,1.89962,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,1.306225,1.943775,
+ 1,0,0,7.75,1.306225,1.943775,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,1.35038,2.004227,
+ 1,0,0,7.75,1.35038,2.004227,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,1.374053,2.075246,
+ 1,0,0,7.75,1.374053,2.075246,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,1.374053,3.924754,
+ 1,0,0,7.75,1.174754,4.124053,
+ 1,0,0,7.75,0,5,
+ 1,0,0,7.75,0,4.125,
+ 1,0,0,7.75,0,5,
+ 1,0,0,7.75,1.174754,4.124053,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,1.174754,4.124053,
+ 1,0,0,7.75,1.245773,4.10038,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,1.245773,4.10038,
+ 1,0,0,7.75,1.306225,4.056225,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,1.306225,4.056225,
+ 1,0,0,7.75,1.35038,3.995773,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,1.35038,3.995773,
+ 1,0,0,7.75,1.374053,3.924754,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,1.374053,3.924754,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,2.25,1,
+ 1,0,0,7.75,2.36871,1,
+ 1,0,0,7.75,2.25,5,
+ 1,0,0,7.75,2.36871,1,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.36871,1,
+ 1,0,0,7.75,2.450912,1.010298,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.450912,1.010298,
+ 1,0,0,7.75,2.548078,1.037344,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.548078,1.037344,
+ 1,0,0,7.75,2.640242,1.078314,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.640242,1.078314,
+ 1,0,0,7.75,2.725419,1.132328,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.725419,1.132328,
+ 1,0,0,7.75,2.801777,1.198223,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.801777,1.198223,
+ 1,0,0,7.75,2.867672,1.274581,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.867672,1.274581,
+ 1,0,0,7.75,2.921686,1.359758,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.921686,1.359758,
+ 1,0,0,7.75,2.962656,1.451922,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.962656,1.451922,
+ 1,0,0,7.75,2.989702,1.549088,
+ 1,0,0,7.75,3,3.5,
+ 1,0,0,7.75,2.989702,1.549088,
+ 1,0,0,7.75,3,1.63129,
+ 0.966335,0.244997,0.078574,7.75,3,3.5,
+ 0.555363,0.830891,-0.034519,7.75,3,1.63129,
+ 0.316228,0.948683,0,7.75,3,1.75,
+ 0,-0.976994,0.213265,7.75,1.374053,2.075246,
+ 0,-0.888698,0.458494,7.55,1.35038,2.004227,
+ 0,-0.888698,0.458494,7.75,1.35038,2.004227,
+ 0,-0.888698,0.458494,7.55,1.35038,2.004227,
+ 0,-0.976994,0.213265,7.75,1.374053,2.075246,
+ 0,-0.994299,0.106632,7.55,1.374053,2.075246,
+ 0,-0.000806,1,7.75,0,1.875,
+ 0,-0.10717,0.994241,7.55,1.174754,1.875947,
+ 0,-0.000806,1,7.55,0,1.875,
+ 0,-0.10717,0.994241,7.55,1.174754,1.875947,
+ 0,-0.000806,1,7.75,0,1.875,
+ 0,-0.213524,0.976938,7.75,1.174754,1.875947,
+ 0,-0.10717,-0.994241,7.75,1.174754,4.124053,
+ 0,-0.000806,-1,7.55,0,4.125,
+ 0,-0.213524,-0.976938,7.55,1.174754,4.124053,
+ 0,-0.000806,-1,7.55,0,4.125,
+ 0,-0.10717,-0.994241,7.75,1.174754,4.124053,
+ 0,-0.000806,-1,7.75,0,4.125,
+ 0,-0.411789,-0.911279,7.75,1.245773,4.10038,
+ 0,-0.213524,-0.976938,7.55,1.174754,4.124053,
+ 0,-0.503965,-0.863724,7.55,1.245773,4.10038,
+ 0,-0.213524,-0.976938,7.55,1.174754,4.124053,
+ 0,-0.411789,-0.911279,7.75,1.245773,4.10038,
+ 0,-0.10717,-0.994241,7.75,1.174754,4.124053,
+ 0,-0.911279,-0.411789,7.75,1.35038,3.995773,
+ 0,-0.976994,-0.213265,7.55,1.374053,3.924754,
+ 0,-0.994299,-0.106632,7.75,1.374053,3.924754,
+ 0,-0.976994,-0.213265,7.55,1.374053,3.924754,
+ 0,-0.911279,-0.411789,7.75,1.35038,3.995773,
+ 0,-0.863724,-0.503965,7.55,1.35038,3.995773,
+ 0,-0.742826,0.669484,7.75,1.306225,1.943775,
+ 0,-0.888698,0.458494,7.55,1.35038,2.004227,
+ 0,-0.669484,0.742826,7.55,1.306225,1.943775,
+ 0,-0.888698,0.458494,7.55,1.35038,2.004227,
+ 0,-0.742826,0.669484,7.75,1.306225,1.943775,
+ 0,-0.888698,0.458494,7.75,1.35038,2.004227,
+ 0,-0.707107,-0.707107,7.75,1.306225,4.056225,
+ 0,-0.503965,-0.863724,7.55,1.245773,4.10038,
+ 0,-0.707107,-0.707107,7.55,1.306225,4.056225,
+ 0,-0.503965,-0.863724,7.55,1.245773,4.10038,
+ 0,-0.707107,-0.707107,7.75,1.306225,4.056225,
+ 0,-0.411789,-0.911279,7.75,1.245773,4.10038,
+ 0,-0.213524,0.976938,7.75,1.174754,1.875947,
+ 0,-0.411789,0.911279,7.55,1.245773,1.89962,
+ 0,-0.10717,0.994241,7.55,1.174754,1.875947,
+ 0,-0.411789,0.911279,7.55,1.245773,1.89962,
+ 0,-0.213524,0.976938,7.75,1.174754,1.875947,
+ 0,-0.503965,0.863724,7.75,1.245773,1.89962,
+ 0,-0.994299,-0.106632,7.75,1.374053,3.924754,
+ 0,-0.994299,0.106632,7.55,1.374053,2.075246,
+ 0,-0.976994,0.213265,7.75,1.374053,2.075246,
+ 0,-0.994299,0.106632,7.55,1.374053,2.075246,
+ 0,-0.994299,-0.106632,7.75,1.374053,3.924754,
+ 0,-0.976994,-0.213265,7.55,1.374053,3.924754,
+ 0,-0.503965,0.863724,7.75,1.245773,1.89962,
+ 0,-0.669484,0.742826,7.55,1.306225,1.943775,
+ 0,-0.411789,0.911279,7.55,1.245773,1.89962,
+ 0,-0.669484,0.742826,7.55,1.306225,1.943775,
+ 0,-0.503965,0.863724,7.75,1.245773,1.89962,
+ 0,-0.742826,0.669484,7.75,1.306225,1.943775,
+ 0,-0.707107,-0.707107,7.75,1.306225,4.056225,
+ 0,-0.863724,-0.503965,7.55,1.35038,3.995773,
+ 0,-0.911279,-0.411789,7.75,1.35038,3.995773,
+ 0,-0.863724,-0.503965,7.55,1.35038,3.995773,
+ 0,-0.707107,-0.707107,7.75,1.306225,4.056225,
+ 0,-0.707107,-0.707107,7.55,1.306225,4.056225,
+ -1,0,0,-5,2.25,5,
+ -1,0,0,-5,0,1,
+ -1,0,0,-5,0,5,
+ -1,0,0,-5,0,1,
+ -1,0,0,-5,2.25,5,
+ -1,0,0,-5,2.25,1,
+ -1,0,0,-5,2.25,1,
+ -1,0,0,-5,2.25,5,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.25,1,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.36871,1,
+ -1,0,0,-5,2.36871,1,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.450912,1.010298,
+ -1,0,0,-5,2.450912,1.010298,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.548078,1.037344,
+ -1,0,0,-5,2.548078,1.037344,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.640242,1.078314,
+ -1,0,0,-5,2.640242,1.078314,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.725419,1.132328,
+ -1,0,0,-5,2.725419,1.132328,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.801777,1.198223,
+ -1,0,0,-5,2.801777,1.198223,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.867672,1.274581,
+ -1,0,0,-5,2.867672,1.274581,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.921686,1.359758,
+ -1,0,0,-5,2.921686,1.359758,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.962656,1.451922,
+ -1,0,0,-5,2.962656,1.451922,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,2.989702,1.549088,
+ -1,0,0,-5,2.989702,1.549088,
+ -1,0,0,-5,3,3.5,
+ -1,0,0,-5,3,1.63129,
+ -0.316719,0.945245,-0.078743,-5,3,1.63129,
+ -0.971484,0.234324,0.036205,-5,3,3.5,
+ 0,1,0,-5,3,1.75
+};
+static const struct gllist seccam_body_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 294, seccam_body_data, 0
+};
+const struct gllist *seccam_body = &seccam_body_frame;
+
+static const float seccam_cap_data[] = {
+ 0,-0.499258,-0.866453,9.5,2.292275,5.079185,
+ 0,-0.389309,-0.921107,-5.5,2.247183,5.1016,
+ 0,-0.551704,-0.83404,-5.5,2.292275,5.079185,
+ 0,-0.389309,-0.921107,-5.5,2.247183,5.1016,
+ 0,-0.499258,-0.866453,9.5,2.292275,5.079185,
+ 0,-0.331806,-0.943348,9.5,2.247183,5.1016,
+ 0,-0.672883,-0.739749,9.5,2.332489,5.048877,
+ 0,-0.551704,-0.83404,-5.5,2.292275,5.079185,
+ 0,-0.672883,-0.739749,-5.5,2.332489,5.048877,
+ 0,-0.551704,-0.83404,-5.5,2.292275,5.079185,
+ 0,-0.672883,-0.739749,9.5,2.332489,5.048877,
+ 0,-0.499258,-0.866453,9.5,2.292275,5.079185,
+ 0,-0.331806,-0.943348,9.5,2.247183,5.1016,
+ 0,-0.213696,-0.9769,-5.5,2.198743,5.115361,
+ 0,-0.389309,-0.921107,-5.5,2.247183,5.1016,
+ 0,-0.213696,-0.9769,-5.5,2.198743,5.115361,
+ 0,-0.331806,-0.943348,9.5,2.247183,5.1016,
+ 0,-0.153089,-0.988212,9.5,2.198743,5.115361,
+ 0,-0.153089,-0.988212,9.5,2.198743,5.115361,
+ 0,-0.061479,-0.998108,-5.5,2.148601,5.12,
+ 0,-0.213696,-0.9769,-5.5,2.198743,5.115361,
+ 0,-0.061479,-0.998108,-5.5,2.148601,5.12,
+ 0,-0.153089,-0.988212,9.5,2.198743,5.115361,
+ 0,-0.03074,-0.999527,9.5,2.148601,5.12,
+ 0,-0.815421,-0.578869,9.5,2.36646,5.011706,
+ 0,-0.877321,-0.479905,-5.5,2.393034,4.968932,
+ 0,-0.872852,-0.487984,9.5,2.393034,4.968932,
+ 0,-0.877321,-0.479905,-5.5,2.393034,4.968932,
+ 0,-0.815421,-0.578869,9.5,2.36646,5.011706,
+ 0,-0.778198,-0.628018,-5.5,2.36646,5.011706,
+ 0,-0.03074,-0.999527,9.5,2.148601,5.12,
+ 0,0,-1,-5.5,0,5.12,
+ 0,-0.061479,-0.998108,-5.5,2.148601,5.12,
+ 0,0,-1,-5.5,0,5.12,
+ 0,-0.03074,-0.999527,9.5,2.148601,5.12,
+ 0,0,-1,9.5,0,5.12,
+ 0,-0.672883,-0.739749,9.5,2.332489,5.048877,
+ 0,-0.778198,-0.628018,-5.5,2.36646,5.011706,
+ 0,-0.815421,-0.578869,9.5,2.36646,5.011706,
+ 0,-0.778198,-0.628018,-5.5,2.36646,5.011706,
+ 0,-0.672883,-0.739749,9.5,2.332489,5.048877,
+ 0,-0.672883,-0.739749,-5.5,2.332489,5.048877,
+ 0,0.213696,0.9769,9.5,2.242938,5.153304,
+ 0,0.331806,0.943348,-5.5,2.292351,5.139267,
+ 0,0.153089,0.988212,-5.5,2.242938,5.153304,
+ 0,0.331806,0.943348,-5.5,2.292351,5.139267,
+ 0,0.213696,0.9769,9.5,2.242938,5.153304,
+ 0,0.389309,0.921107,9.5,2.292351,5.139267,
+ 0,0.389309,0.921107,9.5,2.292351,5.139267,
+ 0,0.499258,0.866453,-5.5,2.33835,5.116402,
+ 0,0.331806,0.943348,-5.5,2.292351,5.139267,
+ 0,0.499258,0.866453,-5.5,2.33835,5.116402,
+ 0,0.389309,0.921107,9.5,2.292351,5.139267,
+ 0,0.551704,0.83404,9.5,2.33835,5.116402,
+ 0,0.672883,0.739749,-5.5,2.379372,5.085485,
+ 0,0.778198,0.628018,9.5,2.414026,5.047566,
+ 0,0.815421,0.578869,-5.5,2.414026,5.047566,
+ 0,0.778198,0.628018,9.5,2.414026,5.047566,
+ 0,0.672883,0.739749,-5.5,2.379372,5.085485,
+ 0,0.672883,0.739749,9.5,2.379372,5.085485,
+ 0,0.815421,0.578869,-5.5,2.414026,5.047566,
+ 0,0.865241,0.501356,9.5,2.441134,5.003932,
+ 0,0.883881,0.467712,-5.5,2.441134,5.003932,
+ 0,0.865241,0.501356,9.5,2.441134,5.003932,
+ 0,0.815421,0.578869,-5.5,2.414026,5.047566,
+ 0,0.778198,0.628018,9.5,2.414026,5.047566,
+ 0,0,1,9.5,0,5.158037,
+ 0,0.03074,0.999527,-5.5,2.191788,5.158037,
+ 0,0,1,-5.5,0,5.158037,
+ 0,0.03074,0.999527,-5.5,2.191788,5.158037,
+ 0,0,1,9.5,0,5.158037,
+ 0,0.061479,0.998108,9.5,2.191788,5.158037,
+ 0,0.061479,0.998108,9.5,2.191788,5.158037,
+ 0,0.153089,0.988212,-5.5,2.242938,5.153304,
+ 0,0.03074,0.999527,-5.5,2.191788,5.158037,
+ 0,0.153089,0.988212,-5.5,2.242938,5.153304,
+ 0,0.061479,0.998108,9.5,2.191788,5.158037,
+ 0,0.213696,0.9769,9.5,2.242938,5.153304,
+ 0,0.551704,0.83404,9.5,2.33835,5.116402,
+ 0,0.672883,0.739749,-5.5,2.379372,5.085485,
+ 0,0.499258,0.866453,-5.5,2.33835,5.116402,
+ 0,0.672883,0.739749,-5.5,2.379372,5.085485,
+ 0,0.551704,0.83404,9.5,2.33835,5.116402,
+ 0,0.672883,0.739749,9.5,2.379372,5.085485,
+ 0,0,-1,-5,3.152109,3.22762,
+ -0.004217,0,-0.999991,-5.066635,3.09,3.22762,
+ -0.008435,0,-0.999964,-5.066635,3.152109,3.22762,
+ -0.004217,0,-0.999991,-5.066635,3.09,3.22762,
+ 0,0,-1,-5,3.152109,3.22762,
+ 0,0,-1,-5,3.09,3.22762,
+ -1,0,0,-5.5,2.191788,5.158037,
+ -1,0,0,-5.5,0,5.12,
+ -1,0,0,-5.5,0,5.158037,
+ -1,0,0,-5.5,0,5.12,
+ -1,0,0,-5.5,2.191788,5.158037,
+ -1,0,0,-5.5,2.148601,5.12,
+ -1,0,0,-5.5,2.148601,5.12,
+ -1,0,0,-5.5,2.191788,5.158037,
+ -1,0,0,-5.5,2.198743,5.115361,
+ -1,0,0,-5.5,2.198743,5.115361,
+ -1,0,0,-5.5,2.191788,5.158037,
+ -1,0,0,-5.5,2.242938,5.153304,
+ -1,0,0,-5.5,2.198743,5.115361,
+ -1,0,0,-5.5,2.242938,5.153304,
+ -1,0,0,-5.5,2.247183,5.1016,
+ -1,0,0,-5.5,2.247183,5.1016,
+ -1,0,0,-5.5,2.242938,5.153304,
+ -1,0,0,-5.5,2.292351,5.139267,
+ -1,0,0,-5.5,2.247183,5.1016,
+ -1,0,0,-5.5,2.292351,5.139267,
+ -1,0,0,-5.5,2.292275,5.079185,
+ -1,0,0,-5.5,2.292275,5.079185,
+ -1,0,0,-5.5,2.292351,5.139267,
+ -1,0,0,-5.5,2.332489,5.048877,
+ -1,0,0,-5.5,2.332489,5.048877,
+ -1,0,0,-5.5,2.292351,5.139267,
+ -1,0,0,-5.5,2.33835,5.116402,
+ -1,0,0,-5.5,2.332489,5.048877,
+ -1,0,0,-5.5,2.33835,5.116402,
+ -1,0,0,-5.5,2.36646,5.011706,
+ -1,0,0,-5.5,2.36646,5.011706,
+ -1,0,0,-5.5,2.33835,5.116402,
+ -1,0,0,-5.5,2.379372,5.085485,
+ -1,0,0,-5.5,2.36646,5.011706,
+ -1,0,0,-5.5,2.379372,5.085485,
+ -1,0,0,-5.5,2.393034,4.968932,
+ -1,0,0,-5.5,2.393034,4.968932,
+ -1,0,0,-5.5,2.379372,5.085485,
+ -1,0,0,-5.5,2.414026,5.047566,
+ -1,0,0,-5.5,2.393034,4.968932,
+ -1,0,0,-5.5,2.414026,5.047566,
+ -1,0,0,-5.5,3.012323,3.730353,
+ -1,0,0,-5.5,3.012323,3.730353,
+ -1,0,0,-5.5,2.414026,5.047566,
+ -1,0,0,-5.5,2.441134,5.003932,
+ -1,0,0,-5.5,3.012323,3.730353,
+ -1,0,0,-5.5,2.441134,5.003932,
+ -1,0,0,-5.5,3.072871,3.740458,
+ -1,0,0,-5.5,3.012323,3.730353,
+ -1,0,0,-5.5,3.072871,3.740458,
+ -0.999991,0,-0.004217,-5.5,3.013942,3.726777,
+ -0.999991,0,-0.004217,-5.5,3.013942,3.726777,
+ -1,0,0,-5.5,3.072871,3.740458,
+ -0.999979,-0.003174,-0.005654,-5.5,3.079063,3.726777,
+ -0.008435,0,-0.999964,-5.066635,3.152109,3.22762,
+ -0.115062,0,-0.993358,-5.136049,3.09,3.228498,
+ -0.217337,0,-0.976097,-5.136049,3.152109,3.228498,
+ -0.115062,0,-0.993358,-5.136049,3.09,3.228498,
+ -0.008435,0,-0.999964,-5.066635,3.152109,3.22762,
+ -0.004217,0,-0.999991,-5.066635,3.09,3.22762,
+ -0.217337,0,-0.976097,-5.136049,3.152109,3.228498,
+ -0.411789,0,-0.911279,-5.265128,3.09,3.271524,
+ -0.503965,0,-0.863724,-5.265128,3.152109,3.271524,
+ -0.411789,0,-0.911279,-5.265128,3.09,3.271524,
+ -0.217337,0,-0.976097,-5.136049,3.152109,3.228498,
+ -0.115062,0,-0.993358,-5.136049,3.09,3.228498,
+ -0.503965,0,-0.863724,-5.265128,3.152109,3.271524,
+ -0.707107,0,-0.707107,-5.375,3.09,3.351777,
+ -0.742826,0,-0.669484,-5.375,3.152109,3.351777,
+ -0.707107,0,-0.707107,-5.375,3.09,3.351777,
+ -0.503965,0,-0.863724,-5.265128,3.152109,3.271524,
+ -0.411789,0,-0.911279,-5.265128,3.09,3.271524,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.807527,0,-0.589831,-5.452667,3.087804,3.458109,
+ -0.911279,0,-0.411789,-5.455253,3.087392,3.461649,
+ -0.807527,0,-0.589831,-5.452667,3.087804,3.458109,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.807527,0,-0.589831,-5.41118,3.09,3.40131,
+ -0.807527,0,-0.589831,-5.41118,3.09,3.40131,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.707107,0,-0.707107,-5.375,3.09,3.351777,
+ -0.707107,0,-0.707107,-5.375,3.09,3.351777,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.742826,0,-0.669484,-5.375,3.152109,3.351777,
+ -0.742826,0,-0.669484,-5.375,3.152109,3.351777,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.807527,0,-0.589831,-5.41373,3.152109,3.404801,
+ -0.973406,0.015316,-0.228574,-5.498279,3.128292,3.590727,
+ -0.948683,0,-0.316228,-5.491487,3.070318,3.570354,
+ -0.993064,-0.002828,-0.117538,-5.498279,3.064669,3.590727,
+ -0.948683,0,-0.316228,-5.491487,3.070318,3.570354,
+ -0.973406,0.015316,-0.228574,-5.498279,3.128292,3.590727,
+ -0.948683,0,-0.316228,-5.472893,3.08123,3.514569,
+ -0.948683,0,-0.316228,-5.472893,3.08123,3.514569,
+ -0.973406,0.015316,-0.228574,-5.498279,3.128292,3.590727,
+ -0.911279,0,-0.411789,-5.455253,3.087392,3.461649,
+ -0.911279,0,-0.411789,-5.455253,3.087392,3.461649,
+ -0.973406,0.015316,-0.228574,-5.498279,3.128292,3.590727,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.973406,0.015316,-0.228574,-5.498279,3.128292,3.590727,
+ -0.948683,0,-0.316228,-5.493784,3.132031,3.577243,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.948683,0,-0.316228,-5.493784,3.132031,3.577243,
+ -0.948683,0,-0.316228,-5.474815,3.143163,3.520337,
+ -0.880629,0,-0.473806,-5.455253,3.149911,3.461649,
+ -0.948683,0,-0.316228,-5.474815,3.143163,3.520337,
+ -0.948683,0,-0.316228,-5.455617,3.149869,3.462742,
+ 0.002121,-0.92655,-0.376167,-5,3.035761,3.678568,
+ 0.004239,-0.926812,-0.375501,-5.499357,3.034537,3.675953,
+ 0.001061,-0.94351,-0.331343,-5.498714,3.055131,3.625129,
+ 0.004239,-0.926812,-0.375501,-5.499357,3.034537,3.675953,
+ 0.002121,-0.92655,-0.376167,-5,3.035761,3.678568,
+ 0.00106,-0.915118,-0.403184,-5.5,3.013942,3.726777,
+ -0.999844,0.016157,-0.007185,-5.5,3.09678,3.687633,
+ -0.999852,-0.007895,-0.015313,-5.498714,3.055131,3.625129,
+ -0.999925,-0.005639,-0.01087,-5.499357,3.034537,3.675953,
+ -0.999852,-0.007895,-0.015313,-5.498714,3.055131,3.625129,
+ -0.999844,0.016157,-0.007185,-5.5,3.09678,3.687633,
+ -0.993064,-0.002828,-0.117538,-5.498279,3.064669,3.590727,
+ -0.993064,-0.002828,-0.117538,-5.498279,3.064669,3.590727,
+ -0.999844,0.016157,-0.007185,-5.5,3.09678,3.687633,
+ -0.973406,0.015316,-0.228574,-5.498279,3.128292,3.590727,
+ -0.973406,0.015316,-0.228574,-5.498279,3.128292,3.590727,
+ -0.999844,0.016157,-0.007185,-5.5,3.09678,3.687633,
+ -0.994223,0.106009,0.016812,-5.498815,3.116539,3.633119,
+ -0.999979,-0.003174,-0.005654,-5.5,3.079063,3.726777,
+ -0.999925,-0.005639,-0.01087,-5.499357,3.034537,3.675953,
+ -0.999991,0,-0.004217,-5.5,3.013942,3.726777,
+ -0.999925,-0.005639,-0.01087,-5.499357,3.034537,3.675953,
+ -0.999979,-0.003174,-0.005654,-5.5,3.079063,3.726777,
+ -0.999844,0.016157,-0.007185,-5.5,3.09678,3.687633,
+ 0,0.963648,0.267176,-5.498279,3.128292,3.590727,
+ 0,0.970208,0.242274,8.7276,3.132031,3.577243,
+ 0,0.976128,0.217194,-5.493784,3.132031,3.577243,
+ 0,0.970208,0.242274,8.7276,3.132031,3.577243,
+ 0,0.963648,0.267176,-5.498279,3.128292,3.590727,
+ 0,0.956449,0.291901,8.783476,3.116539,3.633119,
+ 0,0.956449,0.291901,8.783476,3.116539,3.633119,
+ 0,0.963648,0.267176,-5.498279,3.128292,3.590727,
+ 0,0.94861,0.316448,-5.498815,3.116539,3.633119,
+ 0,0,-1,8.377977,3.152109,3.22762,
+ 0,0,-1,-5,3.09,3.22762,
+ 0,0,-1,-5,3.152109,3.22762,
+ 0,0,-1,-5,3.09,3.22762,
+ 0,0,-1,8.377977,3.152109,3.22762,
+ 0,0,-1,8.377977,3.09,3.22762,
+ 0,-0.997016,-0.077198,8.608467,3.087804,3.458109,
+ 0,-0.999668,-0.025756,-5.41118,3.09,3.40131,
+ 0,-0.999985,-0.005519,8.551667,3.09,3.40131,
+ 0,-0.999668,-0.025756,-5.41118,3.09,3.40131,
+ 0,-0.997016,-0.077198,8.608467,3.087804,3.458109,
+ 0,-0.997016,-0.077198,-5.452667,3.087804,3.458109,
+ 0,0.883881,0.467712,-5.5,2.441134,5.003932,
+ 0,0.904554,0.42636,8.890816,3.072871,3.740458,
+ 0,0.902899,0.429852,-5.5,3.072871,3.740458,
+ 0,0.904554,0.42636,8.890816,3.072871,3.740458,
+ 0,0.883881,0.467712,-5.5,2.441134,5.003932,
+ 0,0.894427,0.447214,9.5,2.768279,4.349643,
+ 0,0.894427,0.447214,9.5,2.768279,4.349643,
+ 0,0.883881,0.467712,-5.5,2.441134,5.003932,
+ 0,0.865241,0.501356,9.5,2.441134,5.003932,
+ 0,0.976128,0.217194,-5.493784,3.132031,3.577243,
+ 0,0.986016,0.166653,8.670694,3.143163,3.520337,
+ 0,0.989982,0.141191,-5.474815,3.143163,3.520337,
+ 0,0.986016,0.166653,8.670694,3.143163,3.520337,
+ 0,0.976128,0.217194,-5.493784,3.132031,3.577243,
+ 0,0.970208,0.242274,8.7276,3.132031,3.577243,
+ 0,-0.958309,-0.285734,8.775486,3.055131,3.625129,
+ 0,-0.973249,-0.229753,-5.491487,3.070318,3.570354,
+ 0,-0.973249,-0.229753,8.720711,3.070318,3.570354,
+ 0,-0.973249,-0.229753,-5.491487,3.070318,3.570354,
+ 0,-0.958309,-0.285734,8.775486,3.055131,3.625129,
+ 0,-0.963648,-0.267176,-5.498279,3.064669,3.590727,
+ 0,-0.963648,-0.267176,-5.498279,3.064669,3.590727,
+ 0,-0.958309,-0.285734,8.775486,3.055131,3.625129,
+ 0.001061,-0.94351,-0.331343,-5.498714,3.055131,3.625129,
+ 0,-0.902899,-0.429852,8.880711,3.012323,3.730353,
+ 0,-0.877321,-0.479905,-5.5,2.393034,4.968932,
+ 0,-0.902899,-0.429852,-5.5,3.012323,3.730353,
+ 0,-0.877321,-0.479905,-5.5,2.393034,4.968932,
+ 0,-0.902899,-0.429852,8.880711,3.012323,3.730353,
+ 0,-0.894427,-0.447214,9.5,2.702679,4.349643,
+ 0,-0.877321,-0.479905,-5.5,2.393034,4.968932,
+ 0,-0.894427,-0.447214,9.5,2.702679,4.349643,
+ 0,-0.872852,-0.487984,9.5,2.393034,4.968932,
+ 0,1,0,-5.136049,3.152109,3.228498,
+ 0,1,0,-5,3.152109,3.22762,
+ 0,1,0,-5.066635,3.152109,3.22762,
+ 0,1,0,-5,3.152109,3.22762,
+ 0,1,0,-5.136049,3.152109,3.228498,
+ 0,1,0,8.377977,3.152109,3.22762,
+ 0,1,0,8.377977,3.152109,3.22762,
+ 0,1,0,-5.136049,3.152109,3.228498,
+ 0,0.999917,0.012878,8.555159,3.152109,3.404801,
+ 0,0.999917,0.012878,8.555159,3.152109,3.404801,
+ 0,1,0,-5.136049,3.152109,3.228498,
+ 0,1,0,-5.265128,3.152109,3.271524,
+ 0,0.999917,0.012878,8.555159,3.152109,3.404801,
+ 0,1,0,-5.265128,3.152109,3.271524,
+ 0,1,0,-5.375,3.152109,3.351777,
+ 0,0.999917,0.012878,8.555159,3.152109,3.404801,
+ 0,1,0,-5.375,3.152109,3.351777,
+ 0,0.999813,0.019317,-5.41373,3.152109,3.404801,
+ 0,-0.926282,-0.376831,8.828926,3.035761,3.678568,
+ 0.00106,-0.915118,-0.403184,-5.5,3.013942,3.726777,
+ 0.002121,-0.92655,-0.376167,-5,3.035761,3.678568,
+ 0.00106,-0.915118,-0.403184,-5.5,3.013942,3.726777,
+ 0,-0.926282,-0.376831,8.828926,3.035761,3.678568,
+ 0,-0.902899,-0.429852,8.880711,3.012323,3.730353,
+ 0.00106,-0.915118,-0.403184,-5.5,3.013942,3.726777,
+ 0,-0.902899,-0.429852,8.880711,3.012323,3.730353,
+ 0,-0.902899,-0.429852,-5.5,3.012323,3.730353,
+ 0,-0.988081,-0.153935,8.664927,3.08123,3.514569,
+ 0,-0.973249,-0.229753,-5.491487,3.070318,3.570354,
+ 0,-0.988081,-0.153935,-5.472893,3.08123,3.514569,
+ 0,-0.973249,-0.229753,-5.491487,3.070318,3.570354,
+ 0,-0.988081,-0.153935,8.664927,3.08123,3.514569,
+ 0,-0.973249,-0.229753,8.720711,3.070318,3.570354,
+ 0,0.999254,0.038628,-5.455253,3.149911,3.461649,
+ 0,0.999917,0.012878,8.555159,3.152109,3.404801,
+ 0,0.999813,0.019317,-5.41373,3.152109,3.404801,
+ 0,0.999917,0.012878,8.555159,3.152109,3.404801,
+ 0,0.999254,0.038628,-5.455253,3.149911,3.461649,
+ 0,0.997016,0.077198,8.613099,3.149869,3.462742,
+ 0,0.997016,0.077198,8.613099,3.149869,3.462742,
+ 0,0.999254,0.038628,-5.455253,3.149911,3.461649,
+ 0,0.997016,0.077198,-5.455617,3.149869,3.462742,
+ 0,0.92135,0.388735,-5.5,3.09678,3.687633,
+ 0,0.904554,0.42636,8.890816,3.072871,3.740458,
+ 0,0.93106,0.364865,8.83799,3.09678,3.687633,
+ 0,0.904554,0.42636,8.890816,3.072871,3.740458,
+ 0,0.92135,0.388735,-5.5,3.09678,3.687633,
+ 0,0.911034,0.41233,-5.5,3.079063,3.726777,
+ 0,0.904554,0.42636,8.890816,3.072871,3.740458,
+ 0,0.911034,0.41233,-5.5,3.079063,3.726777,
+ 0,0.902899,0.429852,-5.5,3.072871,3.740458,
+ 0,-0.997016,-0.077198,8.608467,3.087804,3.458109,
+ 0,-0.99329,-0.115653,-5.455253,3.087392,3.461649,
+ 0,-0.997016,-0.077198,-5.452667,3.087804,3.458109,
+ 0,-0.99329,-0.115653,-5.455253,3.087392,3.461649,
+ 0,-0.997016,-0.077198,8.608467,3.087804,3.458109,
+ 0,-0.988081,-0.153935,8.664927,3.08123,3.514569,
+ 0,-0.99329,-0.115653,-5.455253,3.087392,3.461649,
+ 0,-0.988081,-0.153935,8.664927,3.08123,3.514569,
+ 0,-0.988081,-0.153935,-5.472893,3.08123,3.514569,
+ 0,0.94861,0.316448,-5.498815,3.116539,3.633119,
+ 0,0.93106,0.364865,8.83799,3.09678,3.687633,
+ 0,0.956449,0.291901,8.783476,3.116539,3.633119,
+ 0,0.93106,0.364865,8.83799,3.09678,3.687633,
+ 0,0.94861,0.316448,-5.498815,3.116539,3.633119,
+ 0,0.92135,0.388735,-5.5,3.09678,3.687633,
+ 0,-0.926282,-0.376831,8.828926,3.035761,3.678568,
+ 0.001061,-0.94351,-0.331343,-5.498714,3.055131,3.625129,
+ 0,-0.958309,-0.285734,8.775486,3.055131,3.625129,
+ 0.001061,-0.94351,-0.331343,-5.498714,3.055131,3.625129,
+ 0,-0.926282,-0.376831,8.828926,3.035761,3.678568,
+ 0.002121,-0.92655,-0.376167,-5,3.035761,3.678568,
+ 0,-0.999985,-0.005519,8.551667,3.09,3.40131,
+ 0,-1,0,-5,3.09,3.22762,
+ 0,-1,0,8.377977,3.09,3.22762,
+ 0,-1,0,-5,3.09,3.22762,
+ 0,-0.999985,-0.005519,8.551667,3.09,3.40131,
+ 0,-1,0,-5.066635,3.09,3.22762,
+ 0,-1,0,-5.066635,3.09,3.22762,
+ 0,-0.999985,-0.005519,8.551667,3.09,3.40131,
+ 0,-1,0,-5.136049,3.09,3.228498,
+ 0,-1,0,-5.136049,3.09,3.228498,
+ 0,-0.999985,-0.005519,8.551667,3.09,3.40131,
+ 0,-1,0,-5.265128,3.09,3.271524,
+ 0,-1,0,-5.265128,3.09,3.271524,
+ 0,-0.999985,-0.005519,8.551667,3.09,3.40131,
+ 0,-1,0,-5.375,3.09,3.351777,
+ 0,-1,0,-5.375,3.09,3.351777,
+ 0,-0.999985,-0.005519,8.551667,3.09,3.40131,
+ 0,-0.999668,-0.025756,-5.41118,3.09,3.40131,
+ 0,0.989982,0.141191,-5.474815,3.143163,3.520337,
+ 0,0.997016,0.077198,8.613099,3.149869,3.462742,
+ 0,0.997016,0.077198,-5.455617,3.149869,3.462742,
+ 0,0.997016,0.077198,8.613099,3.149869,3.462742,
+ 0,0.989982,0.141191,-5.474815,3.143163,3.520337,
+ 0,0.986016,0.166653,8.670694,3.143163,3.520337,
+ 1,0,0,9.5,2.148601,5.12,
+ 1,0,0,9.5,0,5.158037,
+ 1,0,0,9.5,0,5.12,
+ 1,0,0,9.5,0,5.158037,
+ 1,0,0,9.5,2.148601,5.12,
+ 1,0,0,9.5,2.191788,5.158037,
+ 1,0,0,9.5,2.191788,5.158037,
+ 1,0,0,9.5,2.148601,5.12,
+ 1,0,0,9.5,2.198743,5.115361,
+ 1,0,0,9.5,2.191788,5.158037,
+ 1,0,0,9.5,2.198743,5.115361,
+ 1,0,0,9.5,2.242938,5.153304,
+ 1,0,0,9.5,2.242938,5.153304,
+ 1,0,0,9.5,2.198743,5.115361,
+ 1,0,0,9.5,2.247183,5.1016,
+ 1,0,0,9.5,2.242938,5.153304,
+ 1,0,0,9.5,2.247183,5.1016,
+ 1,0,0,9.5,2.292351,5.139267,
+ 1,0,0,9.5,2.292351,5.139267,
+ 1,0,0,9.5,2.247183,5.1016,
+ 1,0,0,9.5,2.292275,5.079185,
+ 1,0,0,9.5,2.292351,5.139267,
+ 1,0,0,9.5,2.292275,5.079185,
+ 1,0,0,9.5,2.332489,5.048877,
+ 1,0,0,9.5,2.292351,5.139267,
+ 1,0,0,9.5,2.332489,5.048877,
+ 1,0,0,9.5,2.33835,5.116402,
+ 1,0,0,9.5,2.33835,5.116402,
+ 1,0,0,9.5,2.332489,5.048877,
+ 1,0,0,9.5,2.36646,5.011706,
+ 1,0,0,9.5,2.33835,5.116402,
+ 1,0,0,9.5,2.36646,5.011706,
+ 1,0,0,9.5,2.379372,5.085485,
+ 1,0,0,9.5,2.379372,5.085485,
+ 1,0,0,9.5,2.36646,5.011706,
+ 1,0,0,9.5,2.393034,4.968932,
+ 1,0,0,9.5,2.379372,5.085485,
+ 1,0,0,9.5,2.393034,4.968932,
+ 1,0,0,9.5,2.414026,5.047566,
+ 1,0,0,9.5,2.414026,5.047566,
+ 1,0,0,9.5,2.393034,4.968932,
+ 1,0,0,9.5,2.702679,4.349643,
+ 1,0,0,9.5,2.414026,5.047566,
+ 1,0,0,9.5,2.702679,4.349643,
+ 1,0,0,9.5,2.441134,5.003932,
+ 1,0,0,9.5,2.441134,5.003932,
+ 1,0,0,9.5,2.702679,4.349643,
+ 1,0,0,9.5,2.768279,4.349643,
+ 0.707107,0,-0.707107,8.377977,3.152109,3.22762,
+ 0.707107,0,-0.707107,8.551667,3.09,3.40131,
+ 0.707107,0,-0.707107,8.377977,3.09,3.22762,
+ 0.707107,0,-0.707107,8.551667,3.09,3.40131,
+ 0.707107,0,-0.707107,8.377977,3.152109,3.22762,
+ 0.707107,0,-0.707107,8.555159,3.152109,3.404801,
+ 0.707107,0,-0.707107,8.551667,3.09,3.40131,
+ 0.707107,0,-0.707107,8.555159,3.152109,3.404801,
+ 0.707107,0,-0.707107,8.608467,3.087804,3.458109,
+ 0.707107,0,-0.707107,8.608467,3.087804,3.458109,
+ 0.707107,0,-0.707107,8.555159,3.152109,3.404801,
+ 0.707107,0,-0.707107,8.613099,3.149869,3.462742,
+ 0.707107,0,-0.707107,8.608467,3.087804,3.458109,
+ 0.707107,0,-0.707107,8.613099,3.149869,3.462742,
+ 0.707107,0,-0.707107,8.664927,3.08123,3.514569,
+ 0.707107,0,-0.707107,8.664927,3.08123,3.514569,
+ 0.707107,0,-0.707107,8.613099,3.149869,3.462742,
+ 0.707107,0,-0.707107,8.670694,3.143163,3.520337,
+ 0.707107,0,-0.707107,8.664927,3.08123,3.514569,
+ 0.707107,0,-0.707107,8.670694,3.143163,3.520337,
+ 0.707107,0,-0.707107,8.720711,3.070318,3.570354,
+ 0.707107,0,-0.707107,8.720711,3.070318,3.570354,
+ 0.707107,0,-0.707107,8.670694,3.143163,3.520337,
+ 0.707107,0,-0.707107,8.7276,3.132031,3.577243,
+ 0.707107,0,-0.707107,8.720711,3.070318,3.570354,
+ 0.707107,0,-0.707107,8.7276,3.132031,3.577243,
+ 0.707107,0,-0.707107,8.775486,3.055131,3.625129,
+ 0.707107,0,-0.707107,8.775486,3.055131,3.625129,
+ 0.707107,0,-0.707107,8.7276,3.132031,3.577243,
+ 0.707107,0,-0.707107,8.783476,3.116539,3.633119,
+ 0.707107,0,-0.707107,8.775486,3.055131,3.625129,
+ 0.707107,0,-0.707107,8.783476,3.116539,3.633119,
+ 0.707107,0,-0.707107,8.828926,3.035761,3.678568,
+ 0.707107,0,-0.707107,8.828926,3.035761,3.678568,
+ 0.707107,0,-0.707107,8.783476,3.116539,3.633119,
+ 0.707107,0,-0.707107,8.83799,3.09678,3.687633,
+ 0.707107,0,-0.707107,8.828926,3.035761,3.678568,
+ 0.707107,0,-0.707107,8.83799,3.09678,3.687633,
+ 0.707107,0,-0.707107,8.880711,3.012323,3.730353,
+ 0.707107,0,-0.707107,8.880711,3.012323,3.730353,
+ 0.707107,0,-0.707107,8.83799,3.09678,3.687633,
+ 0.707107,0,-0.707107,8.890816,3.072871,3.740458,
+ 0.707107,0,-0.707107,8.880711,3.012323,3.730353,
+ 0.707107,0,-0.707107,8.890816,3.072871,3.740458,
+ 0.707107,0,-0.707107,9.5,2.702679,4.349643,
+ 0.707107,0,-0.707107,9.5,2.702679,4.349643,
+ 0.707107,0,-0.707107,8.890816,3.072871,3.740458,
+ 0.707107,0,-0.707107,9.5,2.768279,4.349643
+};
+static const struct gllist seccam_cap_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 468, seccam_cap_data, 0
+};
+const struct gllist *seccam_cap = &seccam_cap_frame;
+
+static const float seccam_hinge_data[] = {
+ 0.843272,0,-0.537487,0.649519,0.375,-0.375,
+ 0.707107,0,-0.707107,0.53033,0.625,-0.53033,
+ 0.887114,0,-0.461551,0.649519,0.625,-0.375,
+ 0.707107,0,-0.707107,0.53033,0.625,-0.53033,
+ 0.843272,0,-0.537487,0.649519,0.375,-0.375,
+ 0.707107,0,-0.707107,0.53033,0.375,-0.53033,
+ 0.991445,0,-0.130526,0.75,0.375,0,
+ 0.976344,0,-0.216222,0.724444,0.625,-0.194114,
+ 0.991445,0,-0.130526,0.75,0.625,0,
+ 0.976344,0,-0.216222,0.724444,0.625,-0.194114,
+ 0.991445,0,-0.130526,0.75,0.375,0,
+ 0.95365,0,-0.300918,0.724444,0.375,-0.194114,
+ 0.537487,0,-0.843272,0.375,0.375,-0.649519,
+ 0.707107,0,-0.707107,0.53033,0.625,-0.53033,
+ 0.707107,0,-0.707107,0.53033,0.375,-0.53033,
+ 0.707107,0,-0.707107,0.53033,0.625,-0.53033,
+ 0.537487,0,-0.843272,0.375,0.375,-0.649519,
+ 0.461551,0,-0.887114,0.375,0.625,-0.649519,
+ -0.976344,0,-0.216222,-0.724444,0.375,-0.194114,
+ -0.991445,0,-0.130526,-0.75,0.625,0,
+ -0.95365,0,-0.300918,-0.724444,0.625,-0.194114,
+ -0.991445,0,-0.130526,-0.75,0.625,0,
+ -0.976344,0,-0.216222,-0.724444,0.375,-0.194114,
+ -0.991445,0,-0.130526,-0.75,0.375,0,
+ 0.300918,0,-0.95365,0.194114,0.375,-0.724444,
+ 0.461551,0,-0.887114,0.375,0.625,-0.649519,
+ 0.537487,0,-0.843272,0.375,0.375,-0.649519,
+ 0.461551,0,-0.887114,0.375,0.625,-0.649519,
+ 0.300918,0,-0.95365,0.194114,0.375,-0.724444,
+ 0.216222,0,-0.976344,0.194114,0.625,-0.724444,
+ 0,1,0,-0.194114,0.625,-0.724444,
+ 0,1,0,0.194114,0.625,-0.724444,
+ 0,1,0,0,0.625,-0.75,
+ 0,1,0,0.194114,0.625,-0.724444,
+ 0,1,0,-0.194114,0.625,-0.724444,
+ 0,1,0,-0.375,0.625,-0.649519,
+ 0,1,0,0.194114,0.625,-0.724444,
+ 0,1,0,-0.375,0.625,-0.649519,
+ 0,1,0,0.375,0.625,-0.649519,
+ 0,1,0,0.375,0.625,-0.649519,
+ 0,1,0,-0.375,0.625,-0.649519,
+ 0,1,0,-0.53033,0.625,-0.53033,
+ 0,1,0,0.375,0.625,-0.649519,
+ 0,1,0,-0.53033,0.625,-0.53033,
+ 0,1,0,0.53033,0.625,-0.53033,
+ 0,1,0,0.53033,0.625,-0.53033,
+ 0,1,0,-0.53033,0.625,-0.53033,
+ 0,1,0,-0.649519,0.625,-0.375,
+ 0,1,0,0.53033,0.625,-0.53033,
+ 0,1,0,-0.649519,0.625,-0.375,
+ 0,1,0,0.649519,0.625,-0.375,
+ 0,1,0,0.649519,0.625,-0.375,
+ 0,1,0,-0.649519,0.625,-0.375,
+ 0,1,0,-0.724444,0.625,-0.194114,
+ 0,1,0,0.649519,0.625,-0.375,
+ 0,1,0,-0.724444,0.625,-0.194114,
+ 0,1,0,0.724444,0.625,-0.194114,
+ 0,1,0,0.724444,0.625,-0.194114,
+ 0,1,0,-0.724444,0.625,-0.194114,
+ 0,1,0,0.75,0.625,0,
+ 0,1,0,0.75,0.625,0,
+ 0,1,0,-0.724444,0.625,-0.194114,
+ 0,1,0,-0.75,0.625,0,
+ -0.707107,0,-0.707107,-0.53033,0.375,-0.53033,
+ -0.537487,0,-0.843272,-0.375,0.625,-0.649519,
+ -0.461551,0,-0.887114,-0.375,0.375,-0.649519,
+ -0.537487,0,-0.843272,-0.375,0.625,-0.649519,
+ -0.707107,0,-0.707107,-0.53033,0.375,-0.53033,
+ -0.707107,0,-0.707107,-0.53033,0.625,-0.53033,
+ -0.707107,0,-0.707107,-0.53033,0.375,-0.53033,
+ -0.843272,0,-0.537487,-0.649519,0.625,-0.375,
+ -0.707107,0,-0.707107,-0.53033,0.625,-0.53033,
+ -0.843272,0,-0.537487,-0.649519,0.625,-0.375,
+ -0.707107,0,-0.707107,-0.53033,0.375,-0.53033,
+ -0.887114,0,-0.461551,-0.649519,0.375,-0.375,
+ -0.461551,0,-0.887114,-0.375,0.375,-0.649519,
+ -0.300918,0,-0.95365,-0.194114,0.625,-0.724444,
+ -0.216222,0,-0.976344,-0.194114,0.375,-0.724444,
+ -0.300918,0,-0.95365,-0.194114,0.625,-0.724444,
+ -0.461551,0,-0.887114,-0.375,0.375,-0.649519,
+ -0.537487,0,-0.843272,-0.375,0.625,-0.649519,
+ -0.216222,0,-0.976344,-0.194114,0.375,-0.724444,
+ -0.043842,0,-0.999038,0,0.625,-0.75,
+ 0.043842,0,-0.999038,0,0.375,-0.75,
+ -0.043842,0,-0.999038,0,0.625,-0.75,
+ -0.216222,0,-0.976344,-0.194114,0.375,-0.724444,
+ -0.300918,0,-0.95365,-0.194114,0.625,-0.724444,
+ 0.95365,0,-0.300918,0.724444,0.375,-0.194114,
+ 0.887114,0,-0.461551,0.649519,0.625,-0.375,
+ 0.976344,0,-0.216222,0.724444,0.625,-0.194114,
+ 0.887114,0,-0.461551,0.649519,0.625,-0.375,
+ 0.95365,0,-0.300918,0.724444,0.375,-0.194114,
+ 0.843272,0,-0.537487,0.649519,0.375,-0.375,
+ 0.043842,0,-0.999038,0,0.375,-0.75,
+ 0.216222,0,-0.976344,0.194114,0.625,-0.724444,
+ 0.300918,0,-0.95365,0.194114,0.375,-0.724444,
+ 0.216222,0,-0.976344,0.194114,0.625,-0.724444,
+ 0.043842,0,-0.999038,0,0.375,-0.75,
+ -0.043842,0,-0.999038,0,0.625,-0.75,
+ -0.887114,0,-0.461551,-0.649519,0.375,-0.375,
+ -0.95365,0,-0.300918,-0.724444,0.625,-0.194114,
+ -0.843272,0,-0.537487,-0.649519,0.625,-0.375,
+ -0.95365,0,-0.300918,-0.724444,0.625,-0.194114,
+ -0.887114,0,-0.461551,-0.649519,0.375,-0.375,
+ -0.976344,0,-0.216222,-0.724444,0.375,-0.194114,
+ 0,-1,0,0.194114,0.375,-0.724444,
+ 0,-1,0,-0.194114,0.375,-0.724444,
+ 0,-1,0,0,0.375,-0.75,
+ 0,-1,0,-0.194114,0.375,-0.724444,
+ 0,-1,0,0.194114,0.375,-0.724444,
+ 0,-1,0,0.375,0.375,-0.649519,
+ 0,-1,0,-0.194114,0.375,-0.724444,
+ 0,-1,0,0.375,0.375,-0.649519,
+ 0,-1,0,-0.375,0.375,-0.649519,
+ 0,-1,0,-0.375,0.375,-0.649519,
+ 0,-1,0,0.375,0.375,-0.649519,
+ 0,-1,0,0.53033,0.375,-0.53033,
+ 0,-1,0,-0.375,0.375,-0.649519,
+ 0,-1,0,0.53033,0.375,-0.53033,
+ 0,-1,0,-0.53033,0.375,-0.53033,
+ 0,-1,0,-0.53033,0.375,-0.53033,
+ 0,-1,0,0.53033,0.375,-0.53033,
+ 0,-1,0,0.649519,0.375,-0.375,
+ 0,-1,0,-0.53033,0.375,-0.53033,
+ 0,-1,0,0.649519,0.375,-0.375,
+ 0,-1,0,-0.649519,0.375,-0.375,
+ 0,-1,0,-0.649519,0.375,-0.375,
+ 0,-1,0,0.649519,0.375,-0.375,
+ 0,-1,0,0.724444,0.375,-0.194114,
+ 0,-1,0,-0.649519,0.375,-0.375,
+ 0,-1,0,0.724444,0.375,-0.194114,
+ 0,-1,0,-0.724444,0.375,-0.194114,
+ 0,-1,0,-0.724444,0.375,-0.194114,
+ 0,-1,0,0.724444,0.375,-0.194114,
+ 0,-1,0,0.75,0.375,0,
+ 0,-1,0,-0.724444,0.375,-0.194114,
+ 0,-1,0,0.75,0.375,0,
+ 0,-1,0,-0.75,0.375,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,0.965926,0.258819,0,
+ 0,0,-1,1,0,0,
+ 0,0,-1,0.965926,0.258819,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,0.866025,0.5,0,
+ 0,0,-1,0.866025,0.5,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,0.707107,0.707107,0,
+ 0,0,-1,0.707107,0.707107,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,0.5,0.866025,0,
+ 0,0,-1,0.5,0.866025,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,0.258819,0.965926,0,
+ 0,0,-1,0.258819,0.965926,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,0,1,0,
+ 0,0,-1,0,1,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,-0.258819,0.965926,0,
+ 0,0,-1,-0.258819,0.965926,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,-0.5,0.866025,0,
+ 0,0,-1,-0.5,0.866025,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,-0.707107,0.707107,0,
+ 0,0,-1,-0.707107,0.707107,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,-0.866025,0.5,0,
+ 0,0,-1,-0.866025,0.5,0,
+ 0,0,-1,-1,0,0,
+ 0,0,-1,-0.965926,0.258819,0,
+ 0.043842,0.999038,0,0,1,1,
+ 0.216222,0.976344,0,0.258819,0.965926,0,
+ -0.043842,0.999038,0,0,1,0,
+ 0.216222,0.976344,0,0.258819,0.965926,0,
+ 0.043842,0.999038,0,0,1,1,
+ 0.300918,0.95365,0,0.258819,0.965926,1,
+ -0.707107,0.707107,0,-0.707107,0.707107,1,
+ -0.537487,0.843272,0,-0.5,0.866025,0,
+ -0.707107,0.707107,0,-0.707107,0.707107,0,
+ -0.537487,0.843272,0,-0.5,0.866025,0,
+ -0.707107,0.707107,0,-0.707107,0.707107,1,
+ -0.461551,0.887114,0,-0.5,0.866025,1,
+ -0.461551,0.887114,0,-0.5,0.866025,1,
+ -0.300918,0.95365,0,-0.258819,0.965926,0,
+ -0.537487,0.843272,0,-0.5,0.866025,0,
+ -0.300918,0.95365,0,-0.258819,0.965926,0,
+ -0.461551,0.887114,0,-0.5,0.866025,1,
+ -0.216222,0.976344,0,-0.258819,0.965926,1,
+ 0.300918,0.95365,0,0.258819,0.965926,1,
+ 0.461551,0.887114,0,0.5,0.866025,0,
+ 0.216222,0.976344,0,0.258819,0.965926,0,
+ 0.461551,0.887114,0,0.5,0.866025,0,
+ 0.300918,0.95365,0,0.258819,0.965926,1,
+ 0.537487,0.843272,0,0.5,0.866025,1,
+ 0.991445,0.130526,0,1,0,1,
+ 0.976344,0.216222,0,0.965926,0.258819,0,
+ 0.95365,0.300918,0,0.965926,0.258819,1,
+ 0.976344,0.216222,0,0.965926,0.258819,0,
+ 0.991445,0.130526,0,1,0,1,
+ 0.991445,0.130526,0,1,0,0,
+ 0.843272,0.537487,0,0.866025,0.5,1,
+ 0.707107,0.707107,0,0.707107,0.707107,0,
+ 0.707107,0.707107,0,0.707107,0.707107,1,
+ 0.707107,0.707107,0,0.707107,0.707107,0,
+ 0.843272,0.537487,0,0.866025,0.5,1,
+ 0.887114,0.461551,0,0.866025,0.5,0,
+ -0.216222,0.976344,0,-0.258819,0.965926,1,
+ -0.043842,0.999038,0,0,1,0,
+ -0.300918,0.95365,0,-0.258819,0.965926,0,
+ -0.043842,0.999038,0,0,1,0,
+ -0.216222,0.976344,0,-0.258819,0.965926,1,
+ 0.043842,0.999038,0,0,1,1,
+ -0.95365,0.300918,0,-0.965926,0.258819,0,
+ -0.887114,0.461551,0,-0.866025,0.5,1,
+ -0.843272,0.537487,0,-0.866025,0.5,0,
+ -0.887114,0.461551,0,-0.866025,0.5,1,
+ -0.95365,0.300918,0,-0.965926,0.258819,0,
+ -0.976344,0.216222,0,-0.965926,0.258819,1,
+ -0.843272,0.537487,0,-0.866025,0.5,0,
+ -0.707107,0.707107,0,-0.707107,0.707107,1,
+ -0.707107,0.707107,0,-0.707107,0.707107,0,
+ -0.707107,0.707107,0,-0.707107,0.707107,1,
+ -0.843272,0.537487,0,-0.866025,0.5,0,
+ -0.887114,0.461551,0,-0.866025,0.5,1,
+ 0.537487,0.843272,0,0.5,0.866025,1,
+ 0.707107,0.707107,0,0.707107,0.707107,0,
+ 0.461551,0.887114,0,0.5,0.866025,0,
+ 0.707107,0.707107,0,0.707107,0.707107,0,
+ 0.537487,0.843272,0,0.5,0.866025,1,
+ 0.707107,0.707107,0,0.707107,0.707107,1,
+ 0.95365,0.300918,0,0.965926,0.258819,1,
+ 0.887114,0.461551,0,0.866025,0.5,0,
+ 0.843272,0.537487,0,0.866025,0.5,1,
+ 0.887114,0.461551,0,0.866025,0.5,0,
+ 0.95365,0.300918,0,0.965926,0.258819,1,
+ 0.976344,0.216222,0,0.965926,0.258819,0,
+ -0.991445,0.130526,0,-1,0,0,
+ -0.976344,0.216222,0,-0.965926,0.258819,1,
+ -0.95365,0.300918,0,-0.965926,0.258819,0,
+ -0.976344,0.216222,0,-0.965926,0.258819,1,
+ -0.991445,0.130526,0,-1,0,0,
+ -0.991445,0.130526,0,-1,0,1
+};
+static const struct gllist seccam_hinge_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 243, seccam_hinge_data, 0
+};
+const struct gllist *seccam_hinge = &seccam_hinge_frame;
+
+static const float seccam_lens_data[] = {
+ 1,0,0,7.55,-1.923472,1.31269,
+ 1,0,0,7.55,2.033558,4.687325,
+ 1,0,0,7.55,-1.923714,4.687325,
+ 1,0,0,7.55,2.033558,4.687325,
+ 1,0,0,7.55,-1.923472,1.31269,
+ 1,0,0,7.55,2.0338,1.31269
+};
+static const struct gllist seccam_lens_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 6, seccam_lens_data, 0
+};
+const struct gllist *seccam_lens = &seccam_lens_frame;
+
+static const float seccam_pipe_data[] = {
+ -0.752339,0.658776,0,-0.265165,0.265165,0.4375,
+ -0.921725,0.383318,0.05908,-0.346455,0.143506,-1.759639,
+ -0.947173,0.320722,0,-0.346455,0.143506,0.4375,
+ -0.921725,0.383318,0.05908,-0.346455,0.143506,-1.759639,
+ -0.752339,0.658776,0,-0.265165,0.265165,0.4375,
+ -0.704865,0.70779,0.046895,-0.265165,0.265165,-1.76471,
+ -0.704865,0.70779,0.046895,-0.265165,0.265165,-1.76471,
+ -0.442968,0.896538,0,-0.143506,0.346455,0.4375,
+ -0.381068,0.924135,0.027592,-0.143506,0.346455,-1.772299,
+ -0.442968,0.896538,0,-0.143506,0.346455,0.4375,
+ -0.704865,0.70779,0.046895,-0.265165,0.265165,-1.76471,
+ -0.752339,0.658776,0,-0.265165,0.265165,0.4375,
+ -0.381068,0.924135,0.027592,-0.143506,0.346455,-1.772299,
+ -0.066159,0.997809,0,0,0.375,0.4375,
+ 0.000257,0.999991,0.00412,0,0.375,-1.78125,
+ -0.066159,0.997809,0,0,0.375,0.4375,
+ -0.381068,0.924135,0.027592,-0.143506,0.346455,-1.772299,
+ -0.442968,0.896538,0,-0.143506,0.346455,0.4375,
+ 0.000257,0.999991,0.00412,0,0.375,-1.78125,
+ 0.320722,0.947173,0,0.143506,0.346455,0.4375,
+ 0.381543,0.924135,-0.019977,0.143506,0.346455,-1.790201,
+ 0.320722,0.947173,0,0.143506,0.346455,0.4375,
+ 0.000257,0.999991,0.00412,0,0.375,-1.78125,
+ -0.066159,0.997809,0,0,0.375,0.4375,
+ 0.381543,0.924135,-0.019977,0.143506,0.346455,-1.790201,
+ 0.707107,0.707107,0,0.265165,0.265165,0.4375,
+ 0.704059,0.707717,-0.058632,0.265165,0.265165,-1.79779,
+ 0.707107,0.707107,0,0.265165,0.265165,0.4375,
+ 0.381543,0.924135,-0.019977,0.143506,0.346455,-1.790201,
+ 0.320722,0.947173,0,0.143506,0.346455,0.4375,
+ 0.921725,0.383318,-0.05908,0.346455,0.143506,-1.802861,
+ 0.707107,0.707107,0,0.265165,0.265165,0.4375,
+ 0.947173,0.320722,0,0.346455,0.143506,0.4375,
+ 0.707107,0.707107,0,0.265165,0.265165,0.4375,
+ 0.921725,0.383318,-0.05908,0.346455,0.143506,-1.802861,
+ 0.704059,0.707717,-0.058632,0.265165,0.265165,-1.79779,
+ 0.979876,0.195414,-0.040695,0.375,0,-1.804641,
+ 0.947173,0.320722,0,0.346455,0.143506,0.4375,
+ 0.980785,0.19509,0,0.375,0,0.4375,
+ 0.947173,0.320722,0,0.346455,0.143506,0.4375,
+ 0.979876,0.195414,-0.040695,0.375,0,-1.804641,
+ 0.921725,0.383318,-0.05908,0.346455,0.143506,-1.802861,
+ -0.947173,0.320722,0,-0.346455,0.143506,0.4375,
+ -0.979876,0.195414,0.040695,-0.375,0,-1.757859,
+ -0.980785,0.19509,0,-0.375,0,0.4375,
+ -0.979876,0.195414,0.040695,-0.375,0,-1.757859,
+ -0.947173,0.320722,0,-0.346455,0.143506,0.4375,
+ -0.921725,0.383318,0.05908,-0.346455,0.143506,-1.759639,
+ -0.704865,0.70779,0.046895,-0.265165,0.265165,-1.76471,
+ -0.882346,0.387175,0.26751,-0.423809,0.143506,-2.377279,
+ -0.921725,0.383318,0.05908,-0.346455,0.143506,-1.759639,
+ -0.882346,0.387175,0.26751,-0.423809,0.143506,-2.377279,
+ -0.704865,0.70779,0.046895,-0.265165,0.265165,-1.76471,
+ -0.670724,0.711915,0.208102,-0.344833,0.265165,-2.400829,
+ -0.670724,0.711915,0.208102,-0.344833,0.265165,-2.400829,
+ -0.381068,0.924135,0.027592,-0.143506,0.346455,-1.772299,
+ -0.35955,0.925667,0.117746,-0.226638,0.346455,-2.436073,
+ -0.381068,0.924135,0.027592,-0.143506,0.346455,-1.772299,
+ -0.670724,0.711915,0.208102,-0.344833,0.265165,-2.400829,
+ -0.704865,0.70779,0.046895,-0.265165,0.265165,-1.76471,
+ -0.35955,0.925667,0.117746,-0.226638,0.346455,-2.436073,
+ 0.000257,0.999991,0.00412,0,0.375,-1.78125,
+ 0.003116,0.999941,0.010449,-0.087217,0.375,-2.477647,
+ 0.000257,0.999991,0.00412,0,0.375,-1.78125,
+ -0.35955,0.925667,0.117746,-0.226638,0.346455,-2.436073,
+ -0.381068,0.924135,0.027592,-0.143506,0.346455,-1.772299,
+ 0.003116,0.999941,0.010449,-0.087217,0.375,-2.477647,
+ 0.381543,0.924135,-0.019977,0.143506,0.346455,-1.790201,
+ 0.365318,0.925667,-0.098401,0.052203,0.346455,-2.51922,
+ 0.381543,0.924135,-0.019977,0.143506,0.346455,-1.790201,
+ 0.003116,0.999941,0.010449,-0.087217,0.375,-2.477647,
+ 0.000257,0.999991,0.00412,0,0.375,-1.78125,
+ 0.365318,0.925667,-0.098401,0.052203,0.346455,-2.51922,
+ 0.704059,0.707717,-0.058632,0.265165,0.265165,-1.79779,
+ 0.661307,0.711395,-0.237887,0.170398,0.265165,-2.554465,
+ 0.704059,0.707717,-0.058632,0.265165,0.265165,-1.79779,
+ 0.365318,0.925667,-0.098401,0.052203,0.346455,-2.51922,
+ 0.381543,0.924135,-0.019977,0.143506,0.346455,-1.790201,
+ 0.882346,0.387175,-0.26751,0.249374,0.143506,-2.578014,
+ 0.704059,0.707717,-0.058632,0.265165,0.265165,-1.79779,
+ 0.921725,0.383318,-0.05908,0.346455,0.143506,-1.802861,
+ 0.704059,0.707717,-0.058632,0.265165,0.265165,-1.79779,
+ 0.882346,0.387175,-0.26751,0.249374,0.143506,-2.578014,
+ 0.661307,0.711395,-0.237887,0.170398,0.265165,-2.554465,
+ 0.953546,0.197386,-0.227573,0.277106,0,-2.586284,
+ 0.921725,0.383318,-0.05908,0.346455,0.143506,-1.802861,
+ 0.979876,0.195414,-0.040695,0.375,0,-1.804641,
+ 0.921725,0.383318,-0.05908,0.346455,0.143506,-1.802861,
+ 0.953546,0.197386,-0.227573,0.277106,0,-2.586284,
+ 0.882346,0.387175,-0.26751,0.249374,0.143506,-2.578014,
+ -0.921725,0.383318,0.05908,-0.346455,0.143506,-1.759639,
+ -0.953546,0.197386,0.227573,-0.451541,0,-2.36901,
+ -0.979876,0.195414,0.040695,-0.375,0,-1.757859,
+ -0.953546,0.197386,0.227573,-0.451541,0,-2.36901,
+ -0.921725,0.383318,0.05908,-0.346455,0.143506,-1.759639,
+ -0.882346,0.387175,0.26751,-0.423809,0.143506,-2.377279,
+ -0.670724,0.711915,0.208102,-0.344833,0.265165,-2.400829,
+ -0.727589,0.447862,0.519648,-0.681469,0.143506,-2.903944,
+ -0.882346,0.387175,0.26751,-0.423809,0.143506,-2.377279,
+ -0.727589,0.447862,0.519648,-0.681469,0.143506,-2.903944,
+ -0.670724,0.711915,0.208102,-0.344833,0.265165,-2.400829,
+ -0.558784,0.739142,0.376071,-0.614405,0.265165,-2.951841,
+ -0.558784,0.739142,0.376071,-0.614405,0.265165,-2.951841,
+ -0.35955,0.925667,0.117746,-0.226638,0.346455,-2.436073,
+ -0.301902,0.925667,0.228024,-0.514037,0.346455,-3.023525,
+ -0.35955,0.925667,0.117746,-0.226638,0.346455,-2.436073,
+ -0.558784,0.739142,0.376071,-0.614405,0.265165,-2.951841,
+ -0.670724,0.711915,0.208102,-0.344833,0.265165,-2.400829,
+ -0.301902,0.925667,0.228024,-0.514037,0.346455,-3.023525,
+ 0.003116,0.999941,0.010449,-0.087217,0.375,-2.477647,
+ 0.006337,0.999941,0.008873,-0.395645,0.375,-3.108081,
+ 0.003116,0.999941,0.010449,-0.087217,0.375,-2.477647,
+ -0.301902,0.925667,0.228024,-0.514037,0.346455,-3.023525,
+ -0.35955,0.925667,0.117746,-0.226638,0.346455,-2.436073,
+ 0.006337,0.999941,0.008873,-0.395645,0.375,-3.108081,
+ 0.365318,0.925667,-0.098401,0.052203,0.346455,-2.51922,
+ 0.313635,0.925667,-0.211597,-0.277253,0.346455,-3.192637,
+ 0.365318,0.925667,-0.098401,0.052203,0.346455,-2.51922,
+ 0.006337,0.999941,0.008873,-0.395645,0.375,-3.108081,
+ 0.003116,0.999941,0.010449,-0.087217,0.375,-2.477647,
+ 0.313635,0.925667,-0.211597,-0.277253,0.346455,-3.192637,
+ 0.661307,0.711395,-0.237887,0.170398,0.265165,-2.554465,
+ 0.548361,0.711395,-0.439564,-0.176885,0.265165,-3.264321,
+ 0.661307,0.711395,-0.237887,0.170398,0.265165,-2.554465,
+ 0.313635,0.925667,-0.211597,-0.277253,0.346455,-3.192637,
+ 0.365318,0.925667,-0.098401,0.052203,0.346455,-2.51922,
+ 0.747834,0.387175,-0.539295,-0.109821,0.143506,-3.312218,
+ 0.661307,0.711395,-0.237887,0.170398,0.265165,-2.554465,
+ 0.882346,0.387175,-0.26751,0.249374,0.143506,-2.578014,
+ 0.661307,0.711395,-0.237887,0.170398,0.265165,-2.554465,
+ 0.747834,0.387175,-0.539295,-0.109821,0.143506,-3.312218,
+ 0.548361,0.711395,-0.439564,-0.176885,0.265165,-3.264321,
+ 0.82814,0.197386,-0.524617,-0.086272,0,-3.329037,
+ 0.882346,0.387175,-0.26751,0.249374,0.143506,-2.578014,
+ 0.953546,0.197386,-0.227573,0.277106,0,-2.586284,
+ 0.882346,0.387175,-0.26751,0.249374,0.143506,-2.578014,
+ 0.82814,0.197386,-0.524617,-0.086272,0,-3.329037,
+ 0.747834,0.387175,-0.539295,-0.109821,0.143506,-3.312218,
+ -0.882346,0.387175,0.26751,-0.423809,0.143506,-2.377279,
+ -0.797706,0.197679,0.569726,-0.705019,0,-2.887125,
+ -0.953546,0.197386,0.227573,-0.451541,0,-2.36901,
+ -0.797706,0.197679,0.569726,-0.705019,0,-2.887125,
+ -0.882346,0.387175,0.26751,-0.423809,0.143506,-2.377279,
+ -0.727589,0.447862,0.519648,-0.681469,0.143506,-2.903944,
+ -0.727589,0.447862,0.519648,-0.681469,0.143506,-2.903944,
+ -0.439564,0.711395,0.548361,-1.048159,0.265165,-3.385595,
+ -0.539295,0.387175,0.747834,-1.096056,0.143506,-3.318531,
+ -0.439564,0.711395,0.548361,-1.048159,0.265165,-3.385595,
+ -0.727589,0.447862,0.519648,-0.681469,0.143506,-2.903944,
+ -0.558784,0.739142,0.376071,-0.614405,0.265165,-2.951841,
+ -0.439564,0.711395,0.548361,-1.048159,0.265165,-3.385595,
+ -0.301902,0.925667,0.228024,-0.514037,0.346455,-3.023525,
+ -0.211597,0.925667,0.313635,-0.976475,0.346455,-3.485963,
+ -0.301902,0.925667,0.228024,-0.514037,0.346455,-3.023525,
+ -0.439564,0.711395,0.548361,-1.048159,0.265165,-3.385595,
+ -0.558784,0.739142,0.376071,-0.614405,0.265165,-2.951841,
+ -0.211597,0.925667,0.313635,-0.976475,0.346455,-3.485963,
+ 0.006337,0.999941,0.008873,-0.395645,0.375,-3.108081,
+ 0.008873,0.999941,0.006337,-0.891919,0.375,-3.604355,
+ 0.006337,0.999941,0.008873,-0.395645,0.375,-3.108081,
+ -0.211597,0.925667,0.313635,-0.976475,0.346455,-3.485963,
+ -0.301902,0.925667,0.228024,-0.514037,0.346455,-3.023525,
+ 0.008873,0.999941,0.006337,-0.891919,0.375,-3.604355,
+ 0.313635,0.925667,-0.211597,-0.277253,0.346455,-3.192637,
+ 0.228024,0.925667,-0.301902,-0.807363,0.346455,-3.722747,
+ 0.313635,0.925667,-0.211597,-0.277253,0.346455,-3.192637,
+ 0.008873,0.999941,0.006337,-0.891919,0.375,-3.604355,
+ 0.006337,0.999941,0.008873,-0.395645,0.375,-3.108081,
+ 0.228024,0.925667,-0.301902,-0.807363,0.346455,-3.722747,
+ 0.548361,0.711395,-0.439564,-0.176885,0.265165,-3.264321,
+ 0.376096,0.711395,-0.593691,-0.735679,0.265165,-3.823115,
+ 0.548361,0.711395,-0.439564,-0.176885,0.265165,-3.264321,
+ 0.228024,0.925667,-0.301902,-0.807363,0.346455,-3.722747,
+ 0.313635,0.925667,-0.211597,-0.277253,0.346455,-3.192637,
+ 0.532425,0.387175,-0.752741,-0.687782,0.143506,-3.890179,
+ 0.548361,0.711395,-0.439564,-0.176885,0.265165,-3.264321,
+ 0.747834,0.387175,-0.539295,-0.109821,0.143506,-3.312218,
+ 0.548361,0.711395,-0.439564,-0.176885,0.265165,-3.264321,
+ 0.532425,0.387175,-0.752741,-0.687782,0.143506,-3.890179,
+ 0.376096,0.711395,-0.593691,-0.735679,0.265165,-3.823115,
+ 0.747834,0.387175,-0.539295,-0.109821,0.143506,-3.312218,
+ 0.613149,0.197386,-0.76491,-0.670963,0,-3.913728,
+ 0.532425,0.387175,-0.752741,-0.687782,0.143506,-3.890179,
+ 0.613149,0.197386,-0.76491,-0.670963,0,-3.913728,
+ 0.747834,0.387175,-0.539295,-0.109821,0.143506,-3.312218,
+ 0.82814,0.197386,-0.524617,-0.086272,0,-3.329037,
+ -0.797706,0.197679,0.569726,-0.705019,0,-2.887125,
+ -0.539295,0.387175,0.747834,-1.096056,0.143506,-3.318531,
+ -0.524617,0.197386,0.82814,-1.112875,0,-3.294981,
+ -0.539295,0.387175,0.747834,-1.096056,0.143506,-3.318531,
+ -0.797706,0.197679,0.569726,-0.705019,0,-2.887125,
+ -0.727589,0.447862,0.519648,-0.681469,0.143506,-2.903944,
+ -0.539295,0.387175,0.747834,-1.096056,0.143506,-3.318531,
+ -0.237887,0.711395,0.661307,-1.599171,0.265165,-3.655167,
+ -0.26751,0.387175,0.882346,-1.622721,0.143506,-3.576191,
+ -0.237887,0.711395,0.661307,-1.599171,0.265165,-3.655167,
+ -0.539295,0.387175,0.747834,-1.096056,0.143506,-3.318531,
+ -0.439564,0.711395,0.548361,-1.048159,0.265165,-3.385595,
+ -0.237887,0.711395,0.661307,-1.599171,0.265165,-3.655167,
+ -0.211597,0.925667,0.313635,-0.976475,0.346455,-3.485963,
+ -0.098401,0.925667,0.365318,-1.563927,0.346455,-3.773362,
+ -0.211597,0.925667,0.313635,-0.976475,0.346455,-3.485963,
+ -0.237887,0.711395,0.661307,-1.599171,0.265165,-3.655167,
+ -0.439564,0.711395,0.548361,-1.048159,0.265165,-3.385595,
+ -0.098401,0.925667,0.365318,-1.563927,0.346455,-3.773362,
+ 0.008873,0.999941,0.006337,-0.891919,0.375,-3.604355,
+ 0.010449,0.999941,0.003116,-1.522353,0.375,-3.912783,
+ 0.008873,0.999941,0.006337,-0.891919,0.375,-3.604355,
+ -0.098401,0.925667,0.365318,-1.563927,0.346455,-3.773362,
+ -0.211597,0.925667,0.313635,-0.976475,0.346455,-3.485963,
+ 0.010449,0.999941,0.003116,-1.522353,0.375,-3.912783,
+ 0.228024,0.925667,-0.301902,-0.807363,0.346455,-3.722747,
+ 0.117746,0.925667,-0.35955,-1.48078,0.346455,-4.052203,
+ 0.228024,0.925667,-0.301902,-0.807363,0.346455,-3.722747,
+ 0.010449,0.999941,0.003116,-1.522353,0.375,-3.912783,
+ 0.008873,0.999941,0.006337,-0.891919,0.375,-3.604355,
+ 0.117746,0.925667,-0.35955,-1.48078,0.346455,-4.052203,
+ 0.376096,0.711395,-0.593691,-0.735679,0.265165,-3.823115,
+ 0.163146,0.711395,-0.683594,-1.445535,0.265165,-4.170398,
+ 0.376096,0.711395,-0.593691,-0.735679,0.265165,-3.823115,
+ 0.117746,0.925667,-0.35955,-1.48078,0.346455,-4.052203,
+ 0.228024,0.925667,-0.301902,-0.807363,0.346455,-3.722747,
+ 0.376096,0.711395,-0.593691,-0.735679,0.265165,-3.823115,
+ 0.259419,0.387175,-0.884758,-1.421986,0.143506,-4.249374,
+ 0.163146,0.711395,-0.683594,-1.445535,0.265165,-4.170398,
+ 0.259419,0.387175,-0.884758,-1.421986,0.143506,-4.249374,
+ 0.376096,0.711395,-0.593691,-0.735679,0.265165,-3.823115,
+ 0.532425,0.387175,-0.752741,-0.687782,0.143506,-3.890179,
+ 0.532425,0.387175,-0.752741,-0.687782,0.143506,-3.890179,
+ 0.331829,0.197386,-0.922458,-1.413716,0,-4.277106,
+ 0.259419,0.387175,-0.884758,-1.421986,0.143506,-4.249374,
+ 0.331829,0.197386,-0.922458,-1.413716,0,-4.277106,
+ 0.532425,0.387175,-0.752741,-0.687782,0.143506,-3.890179,
+ 0.613149,0.197386,-0.76491,-0.670963,0,-3.913728,
+ -0.524617,0.197386,0.82814,-1.112875,0,-3.294981,
+ -0.26751,0.387175,0.882346,-1.622721,0.143506,-3.576191,
+ -0.227573,0.197386,0.953546,-1.63099,0,-3.548459,
+ -0.26751,0.387175,0.882346,-1.622721,0.143506,-3.576191,
+ -0.524617,0.197386,0.82814,-1.112875,0,-3.294981,
+ -0.539295,0.387175,0.747834,-1.096056,0.143506,-3.318531,
+ -0.26751,0.387175,0.882346,-1.622721,0.143506,-3.576191,
+ -0.058632,0.707717,0.704059,-2.23529,0.265165,-3.734835,
+ -0.05908,0.383318,0.921725,-2.240361,0.143506,-3.653545,
+ -0.058632,0.707717,0.704059,-2.23529,0.265165,-3.734835,
+ -0.26751,0.387175,0.882346,-1.622721,0.143506,-3.576191,
+ -0.237887,0.711395,0.661307,-1.599171,0.265165,-3.655167,
+ -0.058632,0.707717,0.704059,-2.23529,0.265165,-3.734835,
+ -0.098401,0.925667,0.365318,-1.563927,0.346455,-3.773362,
+ -0.019977,0.924135,0.381543,-2.227701,0.346455,-3.856494,
+ -0.098401,0.925667,0.365318,-1.563927,0.346455,-3.773362,
+ -0.058632,0.707717,0.704059,-2.23529,0.265165,-3.734835,
+ -0.237887,0.711395,0.661307,-1.599171,0.265165,-3.655167,
+ -0.019977,0.924135,0.381543,-2.227701,0.346455,-3.856494,
+ 0.010449,0.999941,0.003116,-1.522353,0.375,-3.912783,
+ 0.00412,0.999991,0.000257,-2.21875,0.375,-4,
+ 0.010449,0.999941,0.003116,-1.522353,0.375,-3.912783,
+ -0.019977,0.924135,0.381543,-2.227701,0.346455,-3.856494,
+ -0.098401,0.925667,0.365318,-1.563927,0.346455,-3.773362,
+ 0.00412,0.999991,0.000257,-2.21875,0.375,-4,
+ 0.117746,0.925667,-0.35955,-1.48078,0.346455,-4.052203,
+ 0.027592,0.924135,-0.381068,-2.209799,0.346455,-4.143506,
+ 0.117746,0.925667,-0.35955,-1.48078,0.346455,-4.052203,
+ 0.00412,0.999991,0.000257,-2.21875,0.375,-4,
+ 0.010449,0.999941,0.003116,-1.522353,0.375,-3.912783,
+ 0.027592,0.924135,-0.381068,-2.209799,0.346455,-4.143506,
+ 0.163146,0.711395,-0.683594,-1.445535,0.265165,-4.170398,
+ 0.029316,0.707717,-0.705888,-2.20221,0.265165,-4.265165,
+ 0.163146,0.711395,-0.683594,-1.445535,0.265165,-4.170398,
+ 0.027592,0.924135,-0.381068,-2.209799,0.346455,-4.143506,
+ 0.117746,0.925667,-0.35955,-1.48078,0.346455,-4.052203,
+ 0.163146,0.711395,-0.683594,-1.445535,0.265165,-4.170398,
+ 0.055921,0.383318,-0.921922,-2.197139,0.143506,-4.346455,
+ 0.029316,0.707717,-0.705888,-2.20221,0.265165,-4.265165,
+ 0.055921,0.383318,-0.921922,-2.197139,0.143506,-4.346455,
+ 0.163146,0.711395,-0.683594,-1.445535,0.265165,-4.170398,
+ 0.259419,0.387175,-0.884758,-1.421986,0.143506,-4.249374,
+ 0.259419,0.387175,-0.884758,-1.421986,0.143506,-4.249374,
+ 0.08139,0.195414,-0.977338,-2.195359,0,-4.375,
+ 0.055921,0.383318,-0.921922,-2.197139,0.143506,-4.346455,
+ 0.08139,0.195414,-0.977338,-2.195359,0,-4.375,
+ 0.259419,0.387175,-0.884758,-1.421986,0.143506,-4.249374,
+ 0.331829,0.197386,-0.922458,-1.413716,0,-4.277106,
+ -0.227573,0.197386,0.953546,-1.63099,0,-3.548459,
+ -0.05908,0.383318,0.921725,-2.240361,0.143506,-3.653545,
+ -0.040695,0.195414,0.979876,-2.242141,0,-3.625,
+ -0.05908,0.383318,0.921725,-2.240361,0.143506,-3.653545,
+ -0.227573,0.197386,0.953546,-1.63099,0,-3.548459,
+ -0.26751,0.387175,0.882346,-1.622721,0.143506,-3.576191,
+ -0.05908,0.383318,0.921725,-2.240361,0.143506,-3.653545,
+ 0,0.707107,0.707107,-7.983022,0.265165,-3.734835,
+ 0,0.320722,0.947173,-7.983022,0.143506,-3.653545,
+ 0,0.707107,0.707107,-7.983022,0.265165,-3.734835,
+ -0.05908,0.383318,0.921725,-2.240361,0.143506,-3.653545,
+ -0.058632,0.707717,0.704059,-2.23529,0.265165,-3.734835,
+ 0,0.707107,0.707107,-7.983022,0.265165,-3.734835,
+ -0.019977,0.924135,0.381543,-2.227701,0.346455,-3.856494,
+ 0,0.947173,0.320722,-7.983022,0.346455,-3.856494,
+ -0.019977,0.924135,0.381543,-2.227701,0.346455,-3.856494,
+ 0,0.707107,0.707107,-7.983022,0.265165,-3.734835,
+ -0.058632,0.707717,0.704059,-2.23529,0.265165,-3.734835,
+ 0,0.947173,0.320722,-7.983022,0.346455,-3.856494,
+ 0.00412,0.999991,0.000257,-2.21875,0.375,-4,
+ 0,0.997809,-0.066159,-7.983022,0.375,-4,
+ 0.00412,0.999991,0.000257,-2.21875,0.375,-4,
+ 0,0.947173,0.320722,-7.983022,0.346455,-3.856494,
+ -0.019977,0.924135,0.381543,-2.227701,0.346455,-3.856494,
+ 0,0.997809,-0.066159,-7.983022,0.375,-4,
+ 0.027592,0.924135,-0.381068,-2.209799,0.346455,-4.143506,
+ 0,0.896538,-0.442968,-7.983022,0.346455,-4.143506,
+ 0.027592,0.924135,-0.381068,-2.209799,0.346455,-4.143506,
+ 0,0.997809,-0.066159,-7.983022,0.375,-4,
+ 0.00412,0.999991,0.000257,-2.21875,0.375,-4,
+ 0,0.896538,-0.442968,-7.983022,0.346455,-4.143506,
+ 0.029316,0.707717,-0.705888,-2.20221,0.265165,-4.265165,
+ 0,0.707107,-0.707107,-7.983022,0.265165,-4.265165,
+ 0.029316,0.707717,-0.705888,-2.20221,0.265165,-4.265165,
+ 0,0.896538,-0.442968,-7.983022,0.346455,-4.143506,
+ 0.027592,0.924135,-0.381068,-2.209799,0.346455,-4.143506,
+ 0.029316,0.707717,-0.705888,-2.20221,0.265165,-4.265165,
+ 0,0.442968,-0.896538,-7.983022,0.143506,-4.346455,
+ 0,0.707107,-0.707107,-7.983022,0.265165,-4.265165,
+ 0,0.442968,-0.896538,-7.983022,0.143506,-4.346455,
+ 0.029316,0.707717,-0.705888,-2.20221,0.265165,-4.265165,
+ 0.055921,0.383318,-0.921922,-2.197139,0.143506,-4.346455,
+ 0.055921,0.383318,-0.921922,-2.197139,0.143506,-4.346455,
+ 0,0.19509,-0.980785,-7.983022,0,-4.375,
+ 0,0.442968,-0.896538,-7.983022,0.143506,-4.346455,
+ 0,0.19509,-0.980785,-7.983022,0,-4.375,
+ 0.055921,0.383318,-0.921922,-2.197139,0.143506,-4.346455,
+ 0.08139,0.195414,-0.977338,-2.195359,0,-4.375,
+ -0.040695,0.195414,0.979876,-2.242141,0,-3.625,
+ 0,0.320722,0.947173,-7.983022,0.143506,-3.653545,
+ 0,0.19509,0.980785,-7.983022,0,-3.625,
+ 0,0.320722,0.947173,-7.983022,0.143506,-3.653545,
+ -0.040695,0.195414,0.979876,-2.242141,0,-3.625,
+ -0.05908,0.383318,0.921725,-2.240361,0.143506,-3.653545
+};
+static const struct gllist seccam_pipe_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 336, seccam_pipe_data, 0
+};
+const struct gllist *seccam_pipe = &seccam_pipe_frame;
diff --git a/hacks/glx/seccam.dxf b/hacks/glx/seccam.dxf
new file mode 100644
index 0000000..1afb828
--- /dev/null
+++ b/hacks/glx/seccam.dxf
@@ -0,0 +1,13606 @@
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.25
+30
+5.0
+11
+7.750000000000005
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+3.0
+32
+3.5
+13
+-4.999999999999995
+23
+3.0
+33
+3.5
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+-4.999999999999995
+21
+2.25
+31
+5.0
+12
+7.750000000000005
+22
+2.25
+32
+5.0
+13
+7.750000000000005
+23
+2.25
+33
+5.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.4509122005603654
+30
+1.0102984675382511
+11
+-4.999999999999995
+21
+2.3687095903662865
+31
+1.0
+12
+-4.999999999999995
+22
+2.4509122005603654
+32
+1.0102984675382511
+13
+-4.999999999999995
+23
+2.4509122005603654
+33
+1.0102984675382511
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.3687095903662865
+30
+1.0
+11
+7.750000000000005
+21
+2.4509122005603654
+31
+1.0102984675382511
+12
+7.750000000000005
+22
+2.3687095903662865
+32
+1.0
+13
+7.750000000000005
+23
+2.3687095903662865
+33
+1.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+3.0
+30
+1.6312904096337157
+11
+7.750000000000005
+21
+2.9897015324617477
+31
+1.5490877994396335
+12
+-4.999999999999995
+22
+2.9897015324617477
+32
+1.5490877994396335
+13
+-4.999999999999995
+23
+2.9897015324617477
+33
+1.5490877994396335
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.9897015324617477
+30
+1.5490877994396335
+11
+-4.999999999999995
+21
+3.0
+31
+1.6312904096337157
+12
+7.750000000000005
+22
+3.0
+32
+1.6312904096337157
+13
+7.750000000000005
+23
+3.0
+33
+1.6312904096337157
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.3687095903662865
+30
+1.0
+11
+-4.999999999999995
+21
+2.25
+31
+1.0
+12
+-4.999999999999995
+22
+2.3687095903662865
+32
+1.0
+13
+-4.999999999999995
+23
+2.3687095903662865
+33
+1.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.25
+30
+1.0
+11
+7.750000000000005
+21
+2.3687095903662865
+31
+1.0
+12
+7.750000000000005
+22
+2.25
+32
+1.0
+13
+7.750000000000005
+23
+2.25
+33
+1.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.6402416202020973
+30
+1.078314212963632
+11
+-4.999999999999995
+21
+2.5480782113171188
+31
+1.0373436898884558
+12
+-4.999999999999995
+22
+2.6402416202020973
+32
+1.078314212963632
+13
+-4.999999999999995
+23
+2.6402416202020973
+33
+1.078314212963632
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.5480782113171188
+30
+1.0373436898884558
+11
+7.750000000000005
+21
+2.6402416202020973
+31
+1.078314212963632
+12
+7.750000000000005
+22
+2.5480782113171188
+32
+1.0373436898884558
+13
+7.750000000000005
+23
+2.5480782113171188
+33
+1.0373436898884558
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.921685787036367
+30
+1.3597583797979014
+11
+7.750000000000005
+21
+2.867671745559793
+31
+1.2745811467968204
+12
+-4.999999999999995
+22
+2.867671745559793
+32
+1.2745811467968204
+13
+-4.999999999999995
+23
+2.867671745559793
+33
+1.2745811467968204
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.867671745559793
+30
+1.2745811467968204
+11
+-4.999999999999995
+21
+2.921685787036367
+31
+1.3597583797979014
+12
+7.750000000000005
+22
+2.921685787036367
+32
+1.3597583797979014
+13
+7.750000000000005
+23
+2.921685787036367
+33
+1.3597583797979014
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+1.0
+11
+-4.999999999999995
+21
+0.0
+31
+1.0
+12
+-4.999999999999995
+22
+2.25
+32
+1.0
+13
+-4.999999999999995
+23
+2.25
+33
+1.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+0.0
+30
+1.0
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000005
+22
+0.0
+32
+1.0
+13
+7.750000000000005
+23
+0.0
+33
+1.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+0.0
+30
+5.0
+11
+-4.999999999999995
+21
+2.25
+31
+5.0
+12
+-4.999999999999995
+22
+0.0
+32
+5.0
+13
+-4.999999999999995
+23
+0.0
+33
+5.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.25
+30
+5.0
+11
+7.750000000000005
+21
+0.0
+31
+5.0
+12
+7.750000000000005
+22
+2.25
+32
+5.0
+13
+7.750000000000005
+23
+2.25
+33
+5.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.7254188532031787
+30
+1.1323282544402056
+11
+-4.999999999999995
+21
+2.6402416202020973
+31
+1.078314212963632
+12
+-4.999999999999995
+22
+2.7254188532031787
+32
+1.1323282544402056
+13
+-4.999999999999995
+23
+2.7254188532031787
+33
+1.1323282544402056
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.6402416202020973
+30
+1.078314212963632
+11
+7.750000000000005
+21
+2.7254188532031787
+31
+1.1323282544402056
+12
+7.750000000000005
+22
+2.6402416202020973
+32
+1.078314212963632
+13
+7.750000000000005
+23
+2.6402416202020973
+33
+1.078314212963632
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+3.0
+30
+1.75
+11
+7.750000000000005
+21
+3.0
+31
+1.6312904096337157
+12
+-4.999999999999995
+22
+3.0
+32
+1.6312904096337157
+13
+-4.999999999999995
+23
+3.0
+33
+1.6312904096337157
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+1.6312904096337157
+11
+-4.999999999999995
+21
+3.0
+31
+1.75
+12
+7.750000000000005
+22
+3.0
+32
+1.75
+13
+7.750000000000005
+23
+3.0
+33
+1.75
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.9626563101115444
+30
+1.4519217886828808
+11
+7.750000000000005
+21
+2.921685787036367
+31
+1.3597583797979014
+12
+-4.999999999999995
+22
+2.921685787036367
+32
+1.3597583797979014
+13
+-4.999999999999995
+23
+2.921685787036367
+33
+1.3597583797979014
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.921685787036367
+30
+1.3597583797979014
+11
+-4.999999999999995
+21
+2.9626563101115444
+31
+1.4519217886828808
+12
+7.750000000000005
+22
+2.9626563101115444
+32
+1.4519217886828808
+13
+7.750000000000005
+23
+2.9626563101115444
+33
+1.4519217886828808
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.867671745559793
+30
+1.2745811467968204
+11
+7.750000000000005
+21
+2.8017766952966365
+31
+1.1982233047033635
+12
+-4.999999999999995
+22
+2.8017766952966365
+32
+1.1982233047033635
+13
+-4.999999999999995
+23
+2.8017766952966365
+33
+1.1982233047033635
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.8017766952966365
+30
+1.1982233047033635
+11
+-4.999999999999995
+21
+2.867671745559793
+31
+1.2745811467968204
+12
+7.750000000000005
+22
+2.867671745559793
+32
+1.2745811467968204
+13
+7.750000000000005
+23
+2.867671745559793
+33
+1.2745811467968204
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+3.0
+31
+1.75
+12
+-4.999999999999995
+22
+3.0
+32
+1.75
+13
+-4.999999999999995
+23
+3.0
+33
+1.75
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+1.75
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+7.750000000000005
+22
+3.0
+32
+3.5
+13
+7.750000000000005
+23
+3.0
+33
+3.5
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.9897015324617477
+30
+1.5490877994396335
+11
+7.750000000000005
+21
+2.9626563101115444
+31
+1.4519217886828808
+12
+-4.999999999999995
+22
+2.9626563101115444
+32
+1.4519217886828808
+13
+-4.999999999999995
+23
+2.9626563101115444
+33
+1.4519217886828808
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.9626563101115444
+30
+1.4519217886828808
+11
+-4.999999999999995
+21
+2.9897015324617477
+31
+1.5490877994396335
+12
+7.750000000000005
+22
+2.9897015324617477
+32
+1.5490877994396335
+13
+7.750000000000005
+23
+2.9897015324617477
+33
+1.5490877994396335
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.8017766952966365
+30
+1.1982233047033635
+11
+-4.999999999999995
+21
+2.7254188532031787
+31
+1.1323282544402056
+12
+-4.999999999999995
+22
+2.8017766952966365
+32
+1.1982233047033635
+13
+-4.999999999999995
+23
+2.8017766952966365
+33
+1.1982233047033635
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.7254188532031787
+30
+1.1323282544402056
+11
+7.750000000000005
+21
+2.8017766952966365
+31
+1.1982233047033635
+12
+7.750000000000005
+22
+2.7254188532031787
+32
+1.1323282544402056
+13
+7.750000000000005
+23
+2.7254188532031787
+33
+1.1323282544402056
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.5480782113171188
+30
+1.0373436898884558
+11
+-4.999999999999995
+21
+2.4509122005603654
+31
+1.0102984675382511
+12
+-4.999999999999995
+22
+2.5480782113171188
+32
+1.0373436898884558
+13
+-4.999999999999995
+23
+2.5480782113171188
+33
+1.0373436898884558
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.4509122005603654
+30
+1.0102984675382511
+11
+7.750000000000005
+21
+2.5480782113171188
+31
+1.0373436898884558
+12
+7.750000000000005
+22
+2.4509122005603654
+32
+1.0102984675382511
+13
+7.750000000000005
+23
+2.4509122005603654
+33
+1.0102984675382511
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0022393770907527
+30
+1.649165170260476
+11
+7.750000000000005
+21
+3.0
+31
+1.75
+12
+7.750000000000005
+22
+3.0
+32
+1.6312904096337157
+13
+7.750000000000005
+23
+3.0
+33
+1.6312904096337157
+70
+0
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.3687095903662865
+30
+1.0
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000005
+22
+2.350834829739524
+32
+0.9977606229092469
+13
+7.750000000000005
+23
+2.350834829739524
+33
+0.9977606229092469
+70
+0
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+1.0
+11
+7.750000000000005
+21
+0.0
+31
+1.875
+12
+7.750000000000005
+22
+0.0
+32
+1.0
+13
+7.750000000000005
+23
+0.0
+33
+1.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+0.0
+30
+1.875
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000005
+22
+1.1747544018386193
+32
+1.8759471195380106
+13
+7.750000000000005
+23
+1.1747544018386193
+33
+1.8759471195380106
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+1.1747544018386193
+30
+1.8759471195380106
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000005
+22
+1.2457732068062848
+32
+1.8996200545272304
+13
+7.750000000000005
+23
+1.2457732068062848
+33
+1.8996200545272304
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+1.2457732068062848
+30
+1.8996200545272304
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000007
+22
+1.3062249999999933
+32
+1.9437749999999956
+13
+7.750000000000007
+23
+1.3062249999999933
+33
+1.9437749999999956
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000007
+20
+1.3062249999999933
+30
+1.9437749999999956
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000007
+22
+1.350379945472767
+32
+2.0042267931937126
+13
+7.750000000000007
+23
+1.350379945472767
+33
+2.0042267931937126
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000007
+20
+1.350379945472767
+30
+2.0042267931937126
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000005
+22
+1.3740528804619876
+32
+2.075245598161383
+13
+7.750000000000005
+23
+1.3740528804619876
+33
+2.075245598161383
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+1.3740528804619876
+30
+2.075245598161383
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.7500000000000036
+22
+1.3740528804619905
+32
+3.9247544018386162
+13
+7.7500000000000036
+23
+1.3740528804619905
+33
+3.9247544018386162
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.7500000000000036
+20
+1.1747544018386225
+30
+4.124052880461991
+11
+7.750000000000005
+21
+0.0
+31
+5.0
+12
+7.750000000000005
+22
+0.0
+32
+4.125
+13
+7.750000000000005
+23
+0.0
+33
+4.125
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+0.0
+30
+5.0
+11
+7.7500000000000036
+21
+1.1747544018386225
+31
+4.124052880461991
+12
+7.750000000000005
+22
+2.25
+32
+5.0
+13
+7.750000000000005
+23
+2.25
+33
+5.0
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+5.0
+11
+7.7500000000000036
+21
+1.1747544018386225
+31
+4.124052880461991
+12
+7.7500000000000036
+22
+1.2457732068062874
+32
+4.100379945472771
+13
+7.7500000000000036
+23
+1.2457732068062874
+33
+4.100379945472771
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+5.0
+11
+7.7500000000000036
+21
+1.2457732068062874
+31
+4.100379945472771
+12
+7.7500000000000036
+22
+1.3062249999999964
+32
+4.056225000000004
+13
+7.7500000000000036
+23
+1.3062249999999964
+33
+4.056225000000004
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+5.0
+11
+7.7500000000000036
+21
+1.3062249999999964
+31
+4.056225000000004
+12
+7.7500000000000036
+22
+1.3503799454727698
+32
+3.9957732068062874
+13
+7.7500000000000036
+23
+1.3503799454727698
+33
+3.9957732068062874
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+5.0
+11
+7.7500000000000036
+21
+1.3503799454727698
+31
+3.9957732068062874
+12
+7.7500000000000036
+22
+1.3740528804619905
+32
+3.9247544018386162
+13
+7.7500000000000036
+23
+1.3740528804619905
+33
+3.9247544018386162
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+5.0
+11
+7.7500000000000036
+21
+1.3740528804619905
+31
+3.9247544018386162
+12
+7.750000000000005
+22
+2.25
+32
+1.0
+13
+7.750000000000005
+23
+2.25
+33
+1.0
+70
+15
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+5.0
+11
+7.750000000000005
+21
+2.25
+31
+1.0
+12
+7.750000000000005
+22
+2.3687095903662865
+32
+1.0
+13
+7.750000000000005
+23
+2.3687095903662865
+33
+1.0
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+2.25
+30
+5.0
+11
+7.750000000000005
+21
+2.3687095903662865
+31
+1.0
+12
+7.750000000000005
+22
+3.0
+32
+3.5
+13
+7.750000000000005
+23
+3.0
+33
+3.5
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.3687095903662865
+31
+1.0
+12
+7.750000000000005
+22
+2.4509122005603654
+32
+1.0102984675382511
+13
+7.750000000000005
+23
+2.4509122005603654
+33
+1.0102984675382511
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.4509122005603654
+31
+1.0102984675382511
+12
+7.750000000000005
+22
+2.5480782113171188
+32
+1.0373436898884558
+13
+7.750000000000005
+23
+2.5480782113171188
+33
+1.0373436898884558
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.5480782113171188
+31
+1.0373436898884558
+12
+7.750000000000005
+22
+2.6402416202020973
+32
+1.078314212963632
+13
+7.750000000000005
+23
+2.6402416202020973
+33
+1.078314212963632
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.6402416202020973
+31
+1.078314212963632
+12
+7.750000000000005
+22
+2.7254188532031787
+32
+1.1323282544402056
+13
+7.750000000000005
+23
+2.7254188532031787
+33
+1.1323282544402056
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.7254188532031787
+31
+1.1323282544402056
+12
+7.750000000000005
+22
+2.8017766952966365
+32
+1.1982233047033635
+13
+7.750000000000005
+23
+2.8017766952966365
+33
+1.1982233047033635
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.8017766952966365
+31
+1.1982233047033635
+12
+7.750000000000005
+22
+2.867671745559793
+32
+1.2745811467968204
+13
+7.750000000000005
+23
+2.867671745559793
+33
+1.2745811467968204
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.867671745559793
+31
+1.2745811467968204
+12
+7.750000000000005
+22
+2.921685787036367
+32
+1.3597583797979014
+13
+7.750000000000005
+23
+2.921685787036367
+33
+1.3597583797979014
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.921685787036367
+31
+1.3597583797979014
+12
+7.750000000000005
+22
+2.9626563101115444
+32
+1.4519217886828808
+13
+7.750000000000005
+23
+2.9626563101115444
+33
+1.4519217886828808
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.9626563101115444
+31
+1.4519217886828808
+12
+7.750000000000005
+22
+2.9897015324617477
+32
+1.5490877994396335
+13
+7.750000000000005
+23
+2.9897015324617477
+33
+1.5490877994396335
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+2.9897015324617477
+31
+1.5490877994396335
+12
+7.750000000000005
+22
+3.0
+32
+1.6312904096337157
+13
+7.750000000000005
+23
+3.0
+33
+1.6312904096337157
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+3.0
+30
+3.5
+11
+7.750000000000005
+21
+3.0
+31
+1.6312904096337157
+12
+7.750000000000005
+22
+3.0
+32
+1.75
+13
+7.750000000000005
+23
+3.0
+33
+1.75
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+1.3740528804619876
+30
+2.075245598161383
+11
+7.550000000000008
+21
+1.350379945472767
+31
+2.0042267931937126
+12
+7.750000000000007
+22
+1.350379945472767
+32
+2.0042267931937126
+13
+7.750000000000007
+23
+1.350379945472767
+33
+2.0042267931937126
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000008
+20
+1.350379945472767
+30
+2.0042267931937126
+11
+7.750000000000005
+21
+1.3740528804619876
+31
+2.075245598161383
+12
+7.550000000000006
+22
+1.3740528804619876
+32
+2.075245598161383
+13
+7.550000000000006
+23
+1.3740528804619876
+33
+2.075245598161383
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+0.0
+30
+1.875
+11
+7.550000000000006
+21
+1.1747544018386193
+31
+1.8759471195380104
+12
+7.550000000000006
+22
+-2.222303025906979e-17
+32
+1.8749999999999998
+13
+7.550000000000006
+23
+-2.222303025906979e-17
+33
+1.8749999999999998
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000006
+20
+1.1747544018386193
+30
+1.8759471195380104
+11
+7.750000000000005
+21
+0.0
+31
+1.875
+12
+7.750000000000005
+22
+1.1747544018386193
+32
+1.8759471195380106
+13
+7.750000000000005
+23
+1.1747544018386193
+33
+1.8759471195380106
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.7500000000000036
+20
+1.1747544018386225
+30
+4.124052880461991
+11
+7.550000000000006
+21
+-2.222303025906979e-17
+31
+4.125
+12
+7.550000000000004
+22
+1.1747544018386225
+32
+4.124052880461991
+13
+7.550000000000004
+23
+1.1747544018386225
+33
+4.124052880461991
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000006
+20
+-2.222303025906979e-17
+30
+4.125
+11
+7.7500000000000036
+21
+1.1747544018386225
+31
+4.124052880461991
+12
+7.750000000000005
+22
+0.0
+32
+4.125
+13
+7.750000000000005
+23
+0.0
+33
+4.125
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.7500000000000036
+20
+1.2457732068062874
+30
+4.100379945472771
+11
+7.550000000000004
+21
+1.1747544018386225
+31
+4.124052880461991
+12
+7.550000000000004
+22
+1.2457732068062874
+32
+4.100379945472771
+13
+7.550000000000004
+23
+1.2457732068062874
+33
+4.100379945472771
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000004
+20
+1.1747544018386225
+30
+4.124052880461991
+11
+7.7500000000000036
+21
+1.2457732068062874
+31
+4.100379945472771
+12
+7.7500000000000036
+22
+1.1747544018386225
+32
+4.124052880461991
+13
+7.7500000000000036
+23
+1.1747544018386225
+33
+4.124052880461991
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.7500000000000036
+20
+1.3503799454727698
+30
+3.9957732068062874
+11
+7.550000000000004
+21
+1.3740528804619905
+31
+3.9247544018386162
+12
+7.7500000000000036
+22
+1.3740528804619905
+32
+3.9247544018386162
+13
+7.7500000000000036
+23
+1.3740528804619905
+33
+3.9247544018386162
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000004
+20
+1.3740528804619905
+30
+3.9247544018386162
+11
+7.7500000000000036
+21
+1.3503799454727698
+31
+3.9957732068062874
+12
+7.550000000000004
+22
+1.3503799454727698
+32
+3.9957732068062874
+13
+7.550000000000004
+23
+1.3503799454727698
+33
+3.9957732068062874
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000007
+20
+1.3062249999999933
+30
+1.9437749999999956
+11
+7.550000000000008
+21
+1.350379945472767
+31
+2.0042267931937126
+12
+7.550000000000008
+22
+1.3062249999999933
+32
+1.9437749999999956
+13
+7.550000000000008
+23
+1.3062249999999933
+33
+1.9437749999999956
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000008
+20
+1.350379945472767
+30
+2.0042267931937126
+11
+7.750000000000007
+21
+1.3062249999999933
+31
+1.9437749999999956
+12
+7.750000000000007
+22
+1.350379945472767
+32
+2.0042267931937126
+13
+7.750000000000007
+23
+1.350379945472767
+33
+2.0042267931937126
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.7500000000000036
+20
+1.3062249999999964
+30
+4.056225000000004
+11
+7.550000000000004
+21
+1.2457732068062874
+31
+4.100379945472771
+12
+7.550000000000004
+22
+1.3062249999999964
+32
+4.056225000000004
+13
+7.550000000000004
+23
+1.3062249999999964
+33
+4.056225000000004
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000004
+20
+1.2457732068062874
+30
+4.100379945472771
+11
+7.7500000000000036
+21
+1.3062249999999964
+31
+4.056225000000004
+12
+7.7500000000000036
+22
+1.2457732068062874
+32
+4.100379945472771
+13
+7.7500000000000036
+23
+1.2457732068062874
+33
+4.100379945472771
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+1.1747544018386193
+30
+1.8759471195380106
+11
+7.550000000000006
+21
+1.2457732068062848
+31
+1.8996200545272304
+12
+7.550000000000006
+22
+1.1747544018386193
+32
+1.8759471195380104
+13
+7.550000000000006
+23
+1.1747544018386193
+33
+1.8759471195380104
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000006
+20
+1.2457732068062848
+30
+1.8996200545272304
+11
+7.750000000000005
+21
+1.1747544018386193
+31
+1.8759471195380106
+12
+7.750000000000005
+22
+1.2457732068062848
+32
+1.8996200545272304
+13
+7.750000000000005
+23
+1.2457732068062848
+33
+1.8996200545272304
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.7500000000000036
+20
+1.3740528804619905
+30
+3.9247544018386162
+11
+7.550000000000006
+21
+1.3740528804619876
+31
+2.075245598161383
+12
+7.750000000000005
+22
+1.3740528804619876
+32
+2.075245598161383
+13
+7.750000000000005
+23
+1.3740528804619876
+33
+2.075245598161383
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000006
+20
+1.3740528804619876
+30
+2.075245598161383
+11
+7.7500000000000036
+21
+1.3740528804619905
+31
+3.9247544018386162
+12
+7.550000000000004
+22
+1.3740528804619905
+32
+3.9247544018386162
+13
+7.550000000000004
+23
+1.3740528804619905
+33
+3.9247544018386162
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.750000000000005
+20
+1.2457732068062848
+30
+1.8996200545272304
+11
+7.550000000000008
+21
+1.3062249999999933
+31
+1.9437749999999956
+12
+7.550000000000006
+22
+1.2457732068062848
+32
+1.8996200545272304
+13
+7.550000000000006
+23
+1.2457732068062848
+33
+1.8996200545272304
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000008
+20
+1.3062249999999933
+30
+1.9437749999999956
+11
+7.750000000000005
+21
+1.2457732068062848
+31
+1.8996200545272304
+12
+7.750000000000007
+22
+1.3062249999999933
+32
+1.9437749999999956
+13
+7.750000000000007
+23
+1.3062249999999933
+33
+1.9437749999999956
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.7500000000000036
+20
+1.3062249999999964
+30
+4.056225000000004
+11
+7.550000000000004
+21
+1.3503799454727698
+31
+3.9957732068062874
+12
+7.7500000000000036
+22
+1.3503799454727698
+32
+3.9957732068062874
+13
+7.7500000000000036
+23
+1.3503799454727698
+33
+3.9957732068062874
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+7.550000000000004
+20
+1.3503799454727698
+30
+3.9957732068062874
+11
+7.7500000000000036
+21
+1.3062249999999964
+31
+4.056225000000004
+12
+7.550000000000004
+22
+1.3062249999999964
+32
+4.056225000000004
+13
+7.550000000000004
+23
+1.3062249999999964
+33
+4.056225000000004
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.25
+30
+5.0
+11
+-4.999999999999995
+21
+0.0
+31
+1.0
+12
+-4.999999999999995
+22
+0.0
+32
+5.0
+13
+-4.999999999999995
+23
+0.0
+33
+5.0
+70
+1
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+0.0
+30
+1.0
+11
+-4.999999999999995
+21
+2.25
+31
+5.0
+12
+-4.999999999999995
+22
+2.25
+32
+1.0
+13
+-4.999999999999995
+23
+2.25
+33
+1.0
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.25
+30
+1.0
+11
+-4.999999999999995
+21
+2.25
+31
+5.0
+12
+-4.999999999999995
+22
+3.0
+32
+3.5
+13
+-4.999999999999995
+23
+3.0
+33
+3.5
+70
+13
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.25
+30
+1.0
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.3687095903662865
+32
+1.0
+13
+-4.999999999999995
+23
+2.3687095903662865
+33
+1.0
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.3687095903662865
+30
+1.0
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.4509122005603654
+32
+1.0102984675382511
+13
+-4.999999999999995
+23
+2.4509122005603654
+33
+1.0102984675382511
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.4509122005603654
+30
+1.0102984675382511
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.5480782113171188
+32
+1.0373436898884558
+13
+-4.999999999999995
+23
+2.5480782113171188
+33
+1.0373436898884558
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.5480782113171188
+30
+1.0373436898884558
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.6402416202020973
+32
+1.078314212963632
+13
+-4.999999999999995
+23
+2.6402416202020973
+33
+1.078314212963632
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.6402416202020973
+30
+1.078314212963632
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.7254188532031787
+32
+1.1323282544402056
+13
+-4.999999999999995
+23
+2.7254188532031787
+33
+1.1323282544402056
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.7254188532031787
+30
+1.1323282544402056
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.8017766952966365
+32
+1.1982233047033635
+13
+-4.999999999999995
+23
+2.8017766952966365
+33
+1.1982233047033635
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.8017766952966365
+30
+1.1982233047033635
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.867671745559793
+32
+1.2745811467968204
+13
+-4.999999999999995
+23
+2.867671745559793
+33
+1.2745811467968204
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.867671745559793
+30
+1.2745811467968204
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.921685787036367
+32
+1.3597583797979014
+13
+-4.999999999999995
+23
+2.921685787036367
+33
+1.3597583797979014
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.921685787036367
+30
+1.3597583797979014
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.9626563101115444
+32
+1.4519217886828808
+13
+-4.999999999999995
+23
+2.9626563101115444
+33
+1.4519217886828808
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.9626563101115444
+30
+1.4519217886828808
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+2.9897015324617477
+32
+1.5490877994396335
+13
+-4.999999999999995
+23
+2.9897015324617477
+33
+1.5490877994396335
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+2.9897015324617477
+30
+1.5490877994396335
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+3.0
+32
+1.6312904096337157
+13
+-4.999999999999995
+23
+3.0
+33
+1.6312904096337157
+70
+3
+ 0
+3DFACE
+ 8
+body
+10
+-4.999999999999995
+20
+3.0
+30
+1.6312904096337157
+11
+-4.999999999999995
+21
+3.0
+31
+3.5
+12
+-4.999999999999995
+22
+3.0
+32
+1.75
+13
+-4.999999999999995
+23
+3.0
+33
+1.75
+70
+1
+ 0
+LINE
+ 8
+pipe
+10
+-0.08721736878314612
+20
+8.494352845371596e-15
+30
+-2.4776466855968224
+11
+-0.3956452587067991
+21
+1.0422940645021578e-14
+31
+-3.1080810198814763
+ 0
+LINE
+ 8
+pipe
+10
+-1.5223533144031824
+20
+1.2493526601693497e-14
+30
+-3.9127826312168583
+11
+-2.2187500000000036
+21
+1.2411535748317739e-14
+31
+-4.000000000000002
+ 0
+LINE
+ 8
+pipe
+10
+-2.6645352591003757e-15
+20
+6.228730001642882e-15
+30
+-1.7812500000000018
+11
+-2.6645352591003757e-15
+21
+4.592425496802568e-17
+31
+0.4374999999999982
+ 0
+LINE
+ 8
+pipe
+10
+-8.000000000000002
+20
+1.2411535748317739e-14
+30
+-4.000000000000002
+11
+-2.2187500000000036
+21
+1.2411535748317739e-14
+31
+-4.000000000000002
+ 0
+LINE
+ 8
+pipe
+10
+-2.6645352591003757e-15
+20
+6.228730001642882e-15
+30
+-1.7812500000000018
+11
+-0.08721736878314612
+21
+8.494352845371596e-15
+31
+-2.4776466855968224
+ 0
+LINE
+ 8
+pipe
+10
+-0.8919189801185281
+20
+1.1805865272252293e-14
+30
+-3.604354741293205
+11
+-1.5223533144031824
+21
+1.2493526601693497e-14
+31
+-3.9127826312168583
+ 0
+LINE
+ 8
+pipe
+10
+-0.3956452587067991
+20
+1.0422940645021578e-14
+30
+-3.1080810198814763
+11
+-0.8919189801185281
+21
+1.1805865272252293e-14
+31
+-3.604354741293205
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.2651650429449557
+20
+0.2651650429449638
+30
+0.4374999999999982
+11
+-0.3464548246917367
+21
+0.14350628713692343
+31
+-1.7596392507172038
+12
+-0.3464548246917367
+22
+0.1435062871369173
+32
+0.4374999999999982
+13
+-0.3464548246917367
+23
+0.1435062871369173
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.3464548246917367
+20
+0.14350628713692343
+30
+-1.7596392507172038
+11
+-0.2651650429449557
+21
+0.2651650429449638
+31
+0.4374999999999982
+12
+-0.2651650429449557
+22
+0.26516504294496995
+32
+-1.764709848576957
+13
+-0.2651650429449557
+23
+0.26516504294496995
+33
+-1.764709848576957
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.2651650429449557
+20
+0.26516504294496995
+30
+-1.764709848576957
+11
+-0.1435062871369066
+21
+0.34645482469173966
+31
+0.4374999999999982
+12
+-0.1435062871369066
+22
+0.3464548246917458
+32
+-1.7722985345540216
+13
+-0.1435062871369066
+23
+0.3464548246917458
+33
+-1.7722985345540216
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.1435062871369066
+20
+0.34645482469173966
+30
+0.4374999999999982
+11
+-0.2651650429449557
+21
+0.26516504294496995
+31
+-1.764709848576957
+12
+-0.2651650429449557
+22
+0.2651650429449638
+32
+0.4374999999999982
+13
+-0.2651650429449557
+23
+0.2651650429449638
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.1435062871369066
+20
+0.3464548246917458
+30
+-1.7722985345540216
+11
+5.329070518200751e-15
+21
+0.37500000000000466
+31
+0.4374999999999982
+12
+5.329070518200751e-15
+22
+0.3750000000000108
+32
+-1.7812500000000009
+13
+5.329070518200751e-15
+23
+0.3750000000000108
+33
+-1.7812500000000009
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+5.329070518200751e-15
+20
+0.37500000000000466
+30
+0.4374999999999982
+11
+-0.1435062871369066
+21
+0.3464548246917458
+31
+-1.7722985345540216
+12
+-0.1435062871369066
+22
+0.34645482469173966
+32
+0.4374999999999982
+13
+-0.1435062871369066
+23
+0.34645482469173966
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+5.329070518200751e-15
+20
+0.3750000000000108
+30
+-1.7812500000000009
+11
+0.1435062871369155
+21
+0.34645482469173394
+31
+0.4374999999999982
+12
+0.1435062871369155
+22
+0.34645482469174016
+32
+-1.7902014654459806
+13
+0.1435062871369155
+23
+0.34645482469174016
+33
+-1.7902014654459806
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.1435062871369155
+20
+0.34645482469173394
+30
+0.4374999999999982
+11
+5.329070518200751e-15
+21
+0.3750000000000108
+31
+-1.7812500000000009
+12
+5.329070518200751e-15
+22
+0.37500000000000466
+32
+0.4374999999999982
+13
+5.329070518200751e-15
+23
+0.37500000000000466
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.1435062871369155
+20
+0.34645482469174016
+30
+-1.7902014654459806
+11
+0.265165042944961
+21
+0.26516504294495347
+31
+0.4374999999999982
+12
+0.265165042944961
+22
+0.2651650429449597
+32
+-1.7977901514230457
+13
+0.265165042944961
+23
+0.2651650429449597
+33
+-1.7977901514230457
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.265165042944961
+20
+0.26516504294495347
+30
+0.4374999999999982
+11
+0.1435062871369155
+21
+0.34645482469174016
+31
+-1.7902014654459806
+12
+0.1435062871369155
+22
+0.34645482469173394
+32
+0.4374999999999982
+13
+0.1435062871369155
+23
+0.34645482469173394
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.3464548246917367
+20
+0.14350628713691005
+30
+-1.8028607492827988
+11
+0.265165042944961
+21
+0.26516504294495347
+31
+0.4374999999999982
+12
+0.3464548246917367
+22
+0.1435062871369038
+32
+0.4374999999999982
+13
+0.3464548246917367
+23
+0.1435062871369038
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.265165042944961
+20
+0.26516504294495347
+30
+0.4374999999999982
+11
+0.3464548246917367
+21
+0.14350628713691005
+31
+-1.8028607492827988
+12
+0.265165042944961
+22
+0.2651650429449597
+32
+-1.7977901514230457
+13
+0.265165042944961
+23
+0.2651650429449597
+33
+-1.7977901514230457
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.3750000000000018
+20
+-1.1024457386968605e-15
+30
+-1.8046413064661762
+11
+0.3464548246917367
+21
+0.1435062871369038
+31
+0.4374999999999982
+12
+0.3750000000000018
+22
+-7.350434090010048e-15
+32
+0.4374999999999982
+13
+0.3750000000000018
+23
+-7.350434090010048e-15
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.3464548246917367
+20
+0.1435062871369038
+30
+0.4374999999999982
+11
+0.3750000000000018
+21
+-1.1024457386968605e-15
+31
+-1.8046413064661762
+12
+0.3464548246917367
+22
+0.14350628713691005
+32
+-1.8028607492827988
+13
+0.3464548246917367
+23
+0.14350628713691005
+33
+-1.8028607492827988
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.3464548246917367
+20
+0.1435062871369173
+30
+0.4374999999999982
+11
+-0.3750000000000071
+21
+1.3513981487014599e-14
+31
+-1.7578586935338274
+12
+-0.3750000000000071
+22
+7.396358344978072e-15
+32
+0.4374999999999982
+13
+-0.3750000000000071
+23
+7.396358344978072e-15
+33
+0.4374999999999982
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.3750000000000071
+20
+1.3513981487014599e-14
+30
+-1.7578586935338274
+11
+-0.3464548246917367
+21
+0.1435062871369173
+31
+0.4374999999999982
+12
+-0.3464548246917367
+22
+0.14350628713692343
+32
+-1.7596392507172038
+13
+-0.3464548246917367
+23
+0.14350628713692343
+33
+-1.7596392507172038
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.2651650429449557
+20
+0.26516504294496995
+30
+-1.764709848576957
+11
+-0.4238086227292559
+21
+0.14350628713692543
+31
+-2.3772791694998214
+12
+-0.3464548246917367
+22
+0.14350628713692343
+32
+-1.7596392507172038
+13
+-0.3464548246917367
+23
+0.14350628713692343
+33
+-1.7596392507172038
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.4238086227292559
+20
+0.14350628713692543
+30
+-2.3772791694998214
+11
+-0.2651650429449557
+21
+0.26516504294496995
+31
+-1.764709848576957
+12
+-0.3448331615114766
+22
+0.265165042944972
+32
+-2.4008287144809053
+13
+-0.3448331615114766
+23
+0.265165042944972
+33
+-2.4008287144809053
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.3448331615114766
+20
+0.265165042944972
+30
+-2.4008287144809053
+11
+-0.1435062871369066
+21
+0.3464548246917458
+31
+-1.7722985345540216
+12
+-0.22663803114378656
+22
+0.34645482469174793
+32
+-2.4360730992077455
+13
+-0.22663803114378656
+23
+0.34645482469174793
+33
+-2.4360730992077455
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.1435062871369066
+20
+0.3464548246917458
+30
+-1.7722985345540216
+11
+-0.3448331615114766
+21
+0.265165042944972
+31
+-2.4008287144809053
+12
+-0.2651650429449557
+22
+0.26516504294496995
+32
+-1.764709848576957
+13
+-0.2651650429449557
+23
+0.26516504294496995
+33
+-1.764709848576957
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.22663803114378656
+20
+0.34645482469174793
+30
+-2.4360730992077455
+11
+5.329070518200751e-15
+21
+0.3750000000000108
+31
+-1.7812500000000009
+12
+-0.08721736878313813
+22
+0.3750000000000131
+32
+-2.4776466855968238
+13
+-0.08721736878313813
+23
+0.3750000000000131
+33
+-2.4776466855968238
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+5.329070518200751e-15
+20
+0.3750000000000108
+30
+-1.7812500000000009
+11
+-0.22663803114378656
+21
+0.34645482469174793
+31
+-2.4360730992077455
+12
+-0.1435062871369066
+22
+0.3464548246917458
+32
+-1.7722985345540216
+13
+-0.1435062871369066
+23
+0.3464548246917458
+33
+-1.7722985345540216
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.08721736878313813
+20
+0.3750000000000131
+30
+-2.4776466855968238
+11
+0.1435062871369155
+21
+0.34645482469174016
+31
+-1.7902014654459806
+12
+0.05220329357750764
+22
+0.34645482469174255
+32
+-2.519220271985901
+13
+0.05220329357750764
+23
+0.34645482469174255
+33
+-2.519220271985901
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.1435062871369155
+20
+0.34645482469174016
+30
+-1.7902014654459806
+11
+-0.08721736878313813
+21
+0.3750000000000131
+31
+-2.4776466855968238
+12
+5.329070518200751e-15
+22
+0.3750000000000108
+32
+-1.7812500000000009
+13
+5.329070518200751e-15
+23
+0.3750000000000108
+33
+-1.7812500000000009
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.05220329357750764
+20
+0.34645482469174255
+30
+-2.519220271985901
+11
+0.265165042944961
+21
+0.2651650429449597
+31
+-1.7977901514230457
+12
+0.1703984239451941
+22
+0.2651650429449621
+32
+-2.554464656712741
+13
+0.1703984239451941
+23
+0.2651650429449621
+33
+-2.554464656712741
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.265165042944961
+20
+0.2651650429449597
+30
+-1.7977901514230457
+11
+0.05220329357750764
+21
+0.34645482469174255
+31
+-2.519220271985901
+12
+0.1435062871369155
+22
+0.34645482469174016
+32
+-1.7902014654459806
+13
+0.1435062871369155
+23
+0.34645482469174016
+33
+-1.7902014654459806
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.249373885162969
+20
+0.14350628713691257
+30
+-2.578014201693824
+11
+0.265165042944961
+21
+0.2651650429449597
+31
+-1.7977901514230457
+12
+0.3464548246917367
+22
+0.14350628713691005
+32
+-1.8028607492827988
+13
+0.3464548246917367
+23
+0.14350628713691005
+33
+-1.8028607492827988
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.265165042944961
+20
+0.2651650429449597
+30
+-1.7977901514230457
+11
+0.249373885162969
+21
+0.14350628713691257
+31
+-2.578014201693824
+12
+0.1703984239451941
+22
+0.2651650429449621
+32
+-2.554464656712741
+13
+0.1703984239451941
+23
+0.2651650429449621
+33
+-2.554464656712741
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.27710637917476255
+20
+1.4405113201022419e-15
+30
+-2.586283702182938
+11
+0.3464548246917367
+21
+0.14350628713691005
+31
+-1.8028607492827988
+12
+0.3750000000000018
+22
+-1.1024457386968605e-15
+32
+-1.8046413064661762
+13
+0.3750000000000018
+23
+-1.1024457386968605e-15
+33
+-1.8046413064661762
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.3464548246917367
+20
+0.14350628713691005
+30
+-1.8028607492827988
+11
+0.27710637917476255
+21
+1.4405113201022419e-15
+31
+-2.586283702182938
+12
+0.249373885162969
+22
+0.14350628713691257
+32
+-2.578014201693824
+13
+0.249373885162969
+23
+0.14350628713691257
+33
+-2.578014201693824
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.3464548246917367
+20
+0.14350628713692343
+30
+-1.7596392507172038
+11
+-0.4515411167410548
+21
+1.5502270115672923e-14
+31
+-2.3690096690107065
+12
+-0.3750000000000071
+22
+1.3513981487014599e-14
+32
+-1.7578586935338274
+13
+-0.3750000000000071
+23
+1.3513981487014599e-14
+33
+-1.7578586935338274
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.4515411167410548
+20
+1.5502270115672923e-14
+30
+-2.3690096690107065
+11
+-0.3464548246917367
+21
+0.14350628713692343
+31
+-1.7596392507172038
+12
+-0.4238086227292559
+22
+0.14350628713692543
+32
+-2.3772791694998214
+13
+-0.4238086227292559
+23
+0.14350628713692543
+33
+-2.3772791694998214
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.3448331615114766
+20
+0.265165042944972
+30
+-2.4008287144809053
+11
+-0.6814692043452624
+21
+0.14350628713692704
+31
+-2.9039438536912954
+12
+-0.4238086227292559
+22
+0.14350628713692543
+32
+-2.3772791694998214
+13
+-0.4238086227292559
+23
+0.14350628713692543
+33
+-2.3772791694998214
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.6814692043452624
+20
+0.14350628713692704
+30
+-2.9039438536912954
+11
+-0.3448331615114766
+21
+0.265165042944972
+31
+-2.4008287144809053
+12
+-0.6144054358449154
+22
+0.26516504294497373
+32
+-2.9518411970195952
+13
+-0.6144054358449154
+23
+0.26516504294497373
+33
+-2.9518411970195952
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.6144054358449154
+20
+0.26516504294497373
+30
+-2.9518411970195952
+11
+-0.22663803114378656
+21
+0.34645482469174793
+31
+-2.4360730992077455
+12
+-0.514037413441236
+22
+0.34645482469174976
+32
+-3.0235246370610946
+13
+-0.514037413441236
+23
+0.34645482469174976
+33
+-3.0235246370610946
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.22663803114378656
+20
+0.34645482469174793
+30
+-2.4360730992077455
+11
+-0.6144054358449154
+21
+0.26516504294497373
+31
+-2.9518411970195952
+12
+-0.3448331615114766
+22
+0.265165042944972
+32
+-2.4008287144809053
+13
+-0.3448331615114766
+23
+0.265165042944972
+33
+-2.4008287144809053
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.514037413441236
+20
+0.34645482469174976
+30
+-3.0235246370610946
+11
+-0.08721736878313813
+21
+0.3750000000000131
+31
+-2.4776466855968238
+12
+-0.395645258706792
+22
+0.37500000000001504
+32
+-3.10808101988148
+13
+-0.395645258706792
+23
+0.37500000000001504
+33
+-3.10808101988148
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.08721736878313813
+20
+0.3750000000000131
+30
+-2.4776466855968238
+11
+-0.514037413441236
+21
+0.34645482469174976
+31
+-3.0235246370610946
+12
+-0.22663803114378656
+22
+0.34645482469174793
+32
+-2.4360730992077455
+13
+-0.22663803114378656
+23
+0.34645482469174793
+33
+-2.4360730992077455
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.395645258706792
+20
+0.37500000000001504
+30
+-3.10808101988148
+11
+0.05220329357750764
+21
+0.34645482469174255
+31
+-2.519220271985901
+12
+-0.2772531039723507
+22
+0.3464548246917446
+32
+-3.1926374027018634
+13
+-0.2772531039723507
+23
+0.3464548246917446
+33
+-3.1926374027018634
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.05220329357750764
+20
+0.34645482469174255
+30
+-2.519220271985901
+11
+-0.395645258706792
+21
+0.37500000000001504
+31
+-3.10808101988148
+12
+-0.08721736878313813
+22
+0.3750000000000131
+32
+-2.4776466855968238
+13
+-0.08721736878313813
+23
+0.3750000000000131
+33
+-2.4776466855968238
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.2772531039723507
+20
+0.3464548246917446
+30
+-3.1926374027018634
+11
+0.1703984239451941
+21
+0.2651650429449621
+31
+-2.554464656712741
+12
+-0.1768850815686731
+22
+0.2651650429449643
+32
+-3.264320842743362
+13
+-0.1768850815686731
+23
+0.2651650429449643
+33
+-3.264320842743362
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.1703984239451941
+20
+0.2651650429449621
+30
+-2.554464656712741
+11
+-0.2772531039723507
+21
+0.3464548246917446
+31
+-3.1926374027018634
+12
+0.05220329357750764
+22
+0.34645482469174255
+32
+-2.519220271985901
+13
+0.05220329357750764
+23
+0.34645482469174255
+33
+-2.519220271985901
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.10982131306833232
+20
+0.14350628713691482
+30
+-3.3122181860716595
+11
+0.1703984239451941
+21
+0.2651650429449621
+31
+-2.554464656712741
+12
+0.249373885162969
+22
+0.14350628713691257
+32
+-2.578014201693824
+13
+0.249373885162969
+23
+0.14350628713691257
+33
+-2.578014201693824
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.1703984239451941
+20
+0.2651650429449621
+30
+-2.554464656712741
+11
+-0.10982131306833232
+21
+0.14350628713691482
+31
+-3.3122181860716595
+12
+-0.1768850815686731
+22
+0.2651650429449643
+32
+-3.264320842743362
+13
+-0.1768850815686731
+23
+0.2651650429449643
+33
+-3.264320842743362
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.08627164929092768
+20
+3.712700234448697e-15
+30
+-3.329037496355521
+11
+0.249373885162969
+21
+0.14350628713691257
+31
+-2.578014201693824
+12
+0.27710637917476255
+22
+1.4405113201022419e-15
+32
+-2.586283702182938
+13
+0.27710637917476255
+23
+1.4405113201022419e-15
+33
+-2.586283702182938
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+0.249373885162969
+20
+0.14350628713691257
+30
+-2.578014201693824
+11
+-0.08627164929092768
+21
+3.712700234448697e-15
+31
+-3.329037496355521
+12
+-0.10982131306833232
+22
+0.14350628713691482
+32
+-3.3122181860716595
+13
+-0.10982131306833232
+23
+0.14350628713691482
+33
+-3.3122181860716595
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.4238086227292559
+20
+0.14350628713692543
+30
+-2.3772791694998214
+11
+-0.7050188681226714
+21
+1.7087256800626433e-14
+31
+-2.887124543407431
+12
+-0.4515411167410548
+22
+1.5502270115672923e-14
+32
+-2.3690096690107065
+13
+-0.4515411167410548
+23
+1.5502270115672923e-14
+33
+-2.3690096690107065
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.7050188681226714
+20
+1.7087256800626433e-14
+30
+-2.887124543407431
+11
+-0.4238086227292559
+21
+0.14350628713692543
+31
+-2.3772791694998214
+12
+-0.6814692043452624
+22
+0.14350628713692704
+32
+-2.9039438536912954
+13
+-0.6814692043452624
+23
+0.14350628713692704
+33
+-2.9039438536912954
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.6814692043452624
+20
+0.14350628713692704
+30
+-2.9039438536912954
+11
+-1.0481588029804083
+21
+0.2651650429449749
+31
+-3.3855945641550873
+12
+-1.0960561463087082
+22
+0.1435062871369282
+32
+-3.318530795654741
+13
+-1.0960561463087082
+23
+0.1435062871369282
+33
+-3.318530795654741
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.0481588029804083
+20
+0.2651650429449749
+30
+-3.3855945641550873
+11
+-0.6814692043452624
+21
+0.14350628713692704
+31
+-2.9039438536912954
+12
+-0.6144054358449154
+22
+0.26516504294497373
+32
+-2.9518411970195952
+13
+-0.6144054358449154
+23
+0.26516504294497373
+33
+-2.9518411970195952
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.0481588029804083
+20
+0.2651650429449749
+30
+-3.3855945641550873
+11
+-0.514037413441236
+21
+0.34645482469174976
+31
+-3.0235246370610946
+12
+-0.976475362938908
+22
+0.34645482469175104
+32
+-3.4859625865587667
+13
+-0.976475362938908
+23
+0.34645482469175104
+33
+-3.4859625865587667
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.514037413441236
+20
+0.34645482469174976
+30
+-3.0235246370610946
+11
+-1.0481588029804083
+21
+0.2651650429449749
+31
+-3.3855945641550873
+12
+-0.6144054358449154
+22
+0.26516504294497373
+32
+-2.9518411970195952
+13
+-0.6144054358449154
+23
+0.26516504294497373
+33
+-2.9518411970195952
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.976475362938908
+20
+0.34645482469175104
+30
+-3.4859625865587667
+11
+-0.395645258706792
+21
+0.37500000000001504
+31
+-3.10808101988148
+12
+-0.8919189801185237
+22
+0.37500000000001643
+32
+-3.60435474129321
+13
+-0.8919189801185237
+23
+0.37500000000001643
+33
+-3.60435474129321
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.395645258706792
+20
+0.37500000000001504
+30
+-3.10808101988148
+11
+-0.976475362938908
+21
+0.34645482469175104
+31
+-3.4859625865587667
+12
+-0.514037413441236
+22
+0.34645482469174976
+32
+-3.0235246370610946
+13
+-0.514037413441236
+23
+0.34645482469174976
+33
+-3.0235246370610946
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.8919189801185237
+20
+0.37500000000001643
+30
+-3.60435474129321
+11
+-0.2772531039723507
+21
+0.3464548246917446
+31
+-3.1926374027018634
+12
+-0.8073625972981393
+22
+0.3464548246917461
+32
+-3.7227468960276524
+13
+-0.8073625972981393
+23
+0.3464548246917461
+33
+-3.7227468960276524
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.2772531039723507
+20
+0.3464548246917446
+30
+-3.1926374027018634
+11
+-0.8919189801185237
+21
+0.37500000000001643
+31
+-3.60435474129321
+12
+-0.395645258706792
+22
+0.37500000000001504
+32
+-3.10808101988148
+13
+-0.395645258706792
+23
+0.37500000000001504
+33
+-3.10808101988148
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.8073625972981393
+20
+0.3464548246917461
+30
+-3.7227468960276524
+11
+-0.1768850815686731
+21
+0.2651650429449643
+31
+-3.264320842743362
+12
+-0.7356791572566417
+22
+0.26516504294496585
+32
+-3.8231149184313296
+13
+-0.7356791572566417
+23
+0.26516504294496585
+33
+-3.8231149184313296
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.1768850815686731
+20
+0.2651650429449643
+30
+-3.264320842743362
+11
+-0.8073625972981393
+21
+0.3464548246917461
+31
+-3.7227468960276524
+12
+-0.2772531039723507
+22
+0.3464548246917446
+32
+-3.1926374027018634
+13
+-0.2772531039723507
+23
+0.3464548246917446
+33
+-3.1926374027018634
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.6877818139283445
+20
+0.14350628713691643
+30
+-3.8901786869316712
+11
+-0.1768850815686731
+21
+0.2651650429449643
+31
+-3.264320842743362
+12
+-0.10982131306833232
+22
+0.14350628713691482
+32
+-3.3122181860716595
+13
+-0.10982131306833232
+23
+0.14350628713691482
+33
+-3.3122181860716595
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.1768850815686731
+20
+0.2651650429449643
+30
+-3.264320842743362
+11
+-0.6877818139283445
+21
+0.14350628713691643
+31
+-3.8901786869316712
+12
+-0.7356791572566417
+22
+0.26516504294496585
+32
+-3.8231149184313296
+13
+-0.7356791572566417
+23
+0.26516504294496585
+33
+-3.8231149184313296
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.10982131306833232
+20
+0.14350628713691482
+30
+-3.3122181860716595
+11
+-0.6709625036444828
+21
+5.342009518651689e-15
+31
+-3.9137283507090763
+12
+-0.6877818139283445
+22
+0.14350628713691643
+32
+-3.8901786869316712
+13
+-0.6877818139283445
+23
+0.14350628713691643
+33
+-3.8901786869316712
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.6709625036444828
+20
+5.342009518651689e-15
+30
+-3.9137283507090763
+11
+-0.10982131306833232
+21
+0.14350628713691482
+31
+-3.3122181860716595
+12
+-0.08627164929092768
+22
+3.712700234448697e-15
+32
+-3.329037496355521
+13
+-0.08627164929092768
+23
+3.712700234448697e-15
+33
+-3.329037496355521
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.7050188681226714
+20
+1.7087256800626433e-14
+30
+-2.887124543407431
+11
+-1.0960561463087082
+21
+0.1435062871369282
+31
+-3.318530795654741
+12
+-1.1128754565925734
+22
+1.822379677088487e-14
+32
+-3.294981131877333
+13
+-1.1128754565925734
+23
+1.822379677088487e-14
+33
+-3.294981131877333
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.0960561463087082
+20
+0.1435062871369282
+30
+-3.318530795654741
+11
+-0.7050188681226714
+21
+1.7087256800626433e-14
+31
+-2.887124543407431
+12
+-0.6814692043452624
+22
+0.14350628713692704
+32
+-2.9039438536912954
+13
+-0.6814692043452624
+23
+0.14350628713692704
+33
+-2.9039438536912954
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.0960561463087082
+20
+0.1435062871369282
+30
+-3.318530795654741
+11
+-1.5991712855190992
+21
+0.2651650429449755
+31
+-3.655166838488527
+12
+-1.6227208305001835
+22
+0.14350628713692878
+32
+-3.5761913772707477
+13
+-1.6227208305001835
+23
+0.14350628713692878
+33
+-3.5761913772707477
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.5991712855190992
+20
+0.2651650429449755
+30
+-3.655166838488527
+11
+-1.0960561463087082
+21
+0.1435062871369282
+31
+-3.318530795654741
+12
+-1.0481588029804083
+22
+0.2651650429449749
+32
+-3.3855945641550873
+13
+-1.0481588029804083
+23
+0.2651650429449749
+33
+-3.3855945641550873
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.5991712855190992
+20
+0.2651650429449755
+30
+-3.655166838488527
+11
+-0.976475362938908
+21
+0.34645482469175104
+31
+-3.4859625865587667
+12
+-1.563926900792259
+22
+0.3464548246917517
+32
+-3.773361968856217
+13
+-1.563926900792259
+23
+0.3464548246917517
+33
+-3.773361968856217
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.976475362938908
+20
+0.34645482469175104
+30
+-3.4859625865587667
+11
+-1.5991712855190992
+21
+0.2651650429449755
+31
+-3.655166838488527
+12
+-1.0481588029804083
+22
+0.2651650429449749
+32
+-3.3855945641550873
+13
+-1.0481588029804083
+23
+0.2651650429449749
+33
+-3.3855945641550873
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.563926900792259
+20
+0.3464548246917517
+30
+-3.773361968856217
+11
+-0.8919189801185237
+21
+0.37500000000001643
+31
+-3.60435474129321
+12
+-1.5223533144031798
+22
+0.3750000000000171
+32
+-3.9127826312168645
+13
+-1.5223533144031798
+23
+0.3750000000000171
+33
+-3.9127826312168645
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.8919189801185237
+20
+0.37500000000001643
+30
+-3.60435474129321
+11
+-1.563926900792259
+21
+0.3464548246917517
+31
+-3.773361968856217
+12
+-0.976475362938908
+22
+0.34645482469175104
+32
+-3.4859625865587667
+13
+-0.976475362938908
+23
+0.34645482469175104
+33
+-3.4859625865587667
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.5223533144031798
+20
+0.3750000000000171
+30
+-3.9127826312168645
+11
+-0.8073625972981393
+21
+0.3464548246917461
+31
+-3.7227468960276524
+12
+-1.4807797280141024
+22
+0.3464548246917468
+32
+-4.052203293577511
+13
+-1.4807797280141024
+23
+0.3464548246917468
+33
+-4.052203293577511
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.8073625972981393
+20
+0.3464548246917461
+30
+-3.7227468960276524
+11
+-1.5223533144031798
+21
+0.3750000000000171
+31
+-3.9127826312168645
+12
+-0.8919189801185237
+22
+0.37500000000001643
+32
+-3.60435474129321
+13
+-0.8919189801185237
+23
+0.37500000000001643
+33
+-3.60435474129321
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.4807797280141024
+20
+0.3464548246917468
+30
+-4.052203293577511
+11
+-0.7356791572566417
+21
+0.26516504294496585
+31
+-3.8231149184313296
+12
+-1.445535343287263
+22
+0.2651650429449666
+32
+-4.1703984239451986
+13
+-1.445535343287263
+23
+0.2651650429449666
+33
+-4.1703984239451986
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.7356791572566417
+20
+0.26516504294496585
+30
+-3.8231149184313296
+11
+-1.4807797280141024
+21
+0.3464548246917468
+31
+-4.052203293577511
+12
+-0.8073625972981393
+22
+0.3464548246917461
+32
+-3.7227468960276524
+13
+-0.8073625972981393
+23
+0.3464548246917461
+33
+-3.7227468960276524
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.7356791572566417
+20
+0.26516504294496585
+30
+-3.8231149184313296
+11
+-1.4219857983061805
+21
+0.14350628713691724
+31
+-4.2493738851629725
+12
+-1.445535343287263
+22
+0.2651650429449666
+32
+-4.1703984239451986
+13
+-1.445535343287263
+23
+0.2651650429449666
+33
+-4.1703984239451986
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.4219857983061805
+20
+0.14350628713691724
+30
+-4.2493738851629725
+11
+-0.7356791572566417
+21
+0.26516504294496585
+31
+-3.8231149184313296
+12
+-0.6877818139283445
+22
+0.14350628713691643
+32
+-3.8901786869316712
+13
+-0.6877818139283445
+23
+0.14350628713691643
+33
+-3.8901786869316712
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-0.6877818139283445
+20
+0.14350628713691643
+30
+-3.8901786869316712
+11
+-1.413716297817066
+21
+6.15218598552793e-15
+31
+-4.277106379174766
+12
+-1.4219857983061805
+22
+0.14350628713691724
+32
+-4.2493738851629725
+13
+-1.4219857983061805
+23
+0.14350628713691724
+33
+-4.2493738851629725
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.413716297817066
+20
+6.15218598552793e-15
+30
+-4.277106379174766
+11
+-0.6877818139283445
+21
+0.14350628713691643
+31
+-3.8901786869316712
+12
+-0.6709625036444828
+22
+5.342009518651689e-15
+32
+-3.9137283507090763
+13
+-0.6709625036444828
+23
+5.342009518651689e-15
+33
+-3.9137283507090763
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.1128754565925734
+20
+1.822379677088487e-14
+30
+-3.294981131877333
+11
+-1.6227208305001835
+21
+0.14350628713692878
+31
+-3.5761913772707477
+12
+-1.6309903309892988
+22
+1.878894296289104e-14
+32
+-3.5484588832589496
+13
+-1.6309903309892988
+23
+1.878894296289104e-14
+33
+-3.5484588832589496
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.6227208305001835
+20
+0.14350628713692878
+30
+-3.5761913772707477
+11
+-1.1128754565925734
+21
+1.822379677088487e-14
+31
+-3.294981131877333
+12
+-1.0960561463087082
+22
+0.1435062871369282
+32
+-3.318530795654741
+13
+-1.0960561463087082
+23
+0.1435062871369282
+33
+-3.318530795654741
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.6227208305001835
+20
+0.14350628713692878
+30
+-3.5761913772707477
+11
+-2.2352901514230483
+21
+0.26516504294497545
+31
+-3.734834957055048
+12
+-2.240360749282801
+22
+0.1435062871369287
+32
+-3.653545175308267
+13
+-2.240360749282801
+23
+0.1435062871369287
+33
+-3.653545175308267
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.2352901514230483
+20
+0.26516504294497545
+30
+-3.734834957055048
+11
+-1.6227208305001835
+21
+0.14350628713692878
+31
+-3.5761913772707477
+12
+-1.5991712855190992
+22
+0.2651650429449755
+32
+-3.655166838488527
+13
+-1.5991712855190992
+23
+0.2651650429449755
+33
+-3.655166838488527
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.2352901514230483
+20
+0.26516504294497545
+30
+-3.734834957055048
+11
+-1.563926900792259
+21
+0.3464548246917517
+31
+-3.773361968856217
+12
+-2.227701465445983
+22
+0.34645482469175165
+32
+-3.8564937128630965
+13
+-2.227701465445983
+23
+0.34645482469175165
+33
+-3.8564937128630965
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.563926900792259
+20
+0.3464548246917517
+30
+-3.773361968856217
+11
+-2.2352901514230483
+21
+0.26516504294497545
+31
+-3.734834957055048
+12
+-1.5991712855190992
+22
+0.2651650429449755
+32
+-3.655166838488527
+13
+-1.5991712855190992
+23
+0.2651650429449755
+33
+-3.655166838488527
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.227701465445983
+20
+0.34645482469175165
+30
+-3.8564937128630965
+11
+-1.5223533144031798
+21
+0.3750000000000171
+31
+-3.9127826312168645
+12
+-2.2187500000000036
+22
+0.37500000000001704
+32
+-4.000000000000008
+13
+-2.2187500000000036
+23
+0.37500000000001704
+33
+-4.000000000000008
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.5223533144031798
+20
+0.3750000000000171
+30
+-3.9127826312168645
+11
+-2.227701465445983
+21
+0.34645482469175165
+31
+-3.8564937128630965
+12
+-1.563926900792259
+22
+0.3464548246917517
+32
+-3.773361968856217
+13
+-1.563926900792259
+23
+0.3464548246917517
+33
+-3.773361968856217
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.2187500000000036
+20
+0.37500000000001704
+30
+-4.000000000000008
+11
+-1.4807797280141024
+21
+0.3464548246917468
+31
+-4.052203293577511
+12
+-2.2097985345540234
+22
+0.34645482469174677
+32
+-4.143506287136919
+13
+-2.2097985345540234
+23
+0.34645482469174677
+33
+-4.143506287136919
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.4807797280141024
+20
+0.3464548246917468
+30
+-4.052203293577511
+11
+-2.2187500000000036
+21
+0.37500000000001704
+31
+-4.000000000000008
+12
+-1.5223533144031798
+22
+0.3750000000000171
+32
+-3.9127826312168645
+13
+-1.5223533144031798
+23
+0.3750000000000171
+33
+-3.9127826312168645
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.2097985345540234
+20
+0.34645482469174677
+30
+-4.143506287136919
+11
+-1.445535343287263
+21
+0.2651650429449666
+31
+-4.1703984239451986
+12
+-2.202209848576959
+22
+0.2651650429449665
+32
+-4.265165042944965
+13
+-2.202209848576959
+23
+0.2651650429449665
+33
+-4.265165042944965
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.445535343287263
+20
+0.2651650429449666
+30
+-4.1703984239451986
+11
+-2.2097985345540234
+21
+0.34645482469174677
+31
+-4.143506287136919
+12
+-1.4807797280141024
+22
+0.3464548246917468
+32
+-4.052203293577511
+13
+-1.4807797280141024
+23
+0.3464548246917468
+33
+-4.052203293577511
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.445535343287263
+20
+0.2651650429449666
+30
+-4.1703984239451986
+11
+-2.197139250717206
+21
+0.14350628713691715
+31
+-4.34645482469174
+12
+-2.202209848576959
+22
+0.2651650429449665
+32
+-4.265165042944965
+13
+-2.202209848576959
+23
+0.2651650429449665
+33
+-4.265165042944965
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.197139250717206
+20
+0.14350628713691715
+30
+-4.34645482469174
+11
+-1.445535343287263
+21
+0.2651650429449666
+31
+-4.1703984239451986
+12
+-1.4219857983061805
+22
+0.14350628713691724
+32
+-4.2493738851629725
+13
+-1.4219857983061805
+23
+0.14350628713691724
+33
+-4.2493738851629725
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.4219857983061805
+20
+0.14350628713691724
+30
+-4.2493738851629725
+11
+-2.195358693533829
+21
+6.060158656298807e-15
+31
+-4.375000000000006
+12
+-2.197139250717206
+22
+0.14350628713691715
+32
+-4.34645482469174
+13
+-2.197139250717206
+23
+0.14350628713691715
+33
+-4.34645482469174
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.195358693533829
+20
+6.060158656298807e-15
+30
+-4.375000000000006
+11
+-1.4219857983061805
+21
+0.14350628713691724
+31
+-4.2493738851629725
+12
+-1.413716297817066
+22
+6.15218598552793e-15
+32
+-4.277106379174766
+13
+-1.413716297817066
+23
+6.15218598552793e-15
+33
+-4.277106379174766
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-1.6309903309892988
+20
+1.878894296289104e-14
+30
+-3.5484588832589496
+11
+-2.240360749282801
+21
+0.1435062871369287
+31
+-3.653545175308267
+12
+-2.242141306466179
+22
+1.8716988585368647e-14
+32
+-3.6249999999999973
+13
+-2.242141306466179
+23
+1.8716988585368647e-14
+33
+-3.6249999999999973
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.240360749282801
+20
+0.1435062871369287
+30
+-3.653545175308267
+11
+-1.6309903309892988
+21
+1.878894296289104e-14
+31
+-3.5484588832589496
+12
+-1.6227208305001835
+22
+0.14350628713692878
+32
+-3.5761913772707477
+13
+-1.6227208305001835
+23
+0.14350628713692878
+33
+-3.5761913772707477
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.240360749282801
+20
+0.1435062871369287
+30
+-3.653545175308267
+11
+-7.983021822074795
+21
+0.26516504294497545
+31
+-3.734834957055048
+12
+-7.983021822074795
+22
+0.1435062871369287
+32
+-3.653545175308267
+13
+-7.983021822074795
+23
+0.1435062871369287
+33
+-3.653545175308267
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+0.26516504294497545
+30
+-3.734834957055048
+11
+-2.240360749282801
+21
+0.1435062871369287
+31
+-3.653545175308267
+12
+-2.2352901514230483
+22
+0.26516504294497545
+32
+-3.734834957055048
+13
+-2.2352901514230483
+23
+0.26516504294497545
+33
+-3.734834957055048
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+0.26516504294497545
+30
+-3.734834957055048
+11
+-2.227701465445983
+21
+0.34645482469175165
+31
+-3.8564937128630965
+12
+-7.983021822074795
+22
+0.34645482469175165
+32
+-3.8564937128630965
+13
+-7.983021822074795
+23
+0.34645482469175165
+33
+-3.8564937128630965
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.227701465445983
+20
+0.34645482469175165
+30
+-3.8564937128630965
+11
+-7.983021822074795
+21
+0.26516504294497545
+31
+-3.734834957055048
+12
+-2.2352901514230483
+22
+0.26516504294497545
+32
+-3.734834957055048
+13
+-2.2352901514230483
+23
+0.26516504294497545
+33
+-3.734834957055048
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+0.34645482469175165
+30
+-3.8564937128630965
+11
+-2.2187500000000036
+21
+0.37500000000001704
+31
+-4.000000000000008
+12
+-7.983021822074795
+22
+0.37500000000001704
+32
+-4.000000000000008
+13
+-7.983021822074795
+23
+0.37500000000001704
+33
+-4.000000000000008
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.2187500000000036
+20
+0.37500000000001704
+30
+-4.000000000000008
+11
+-7.983021822074795
+21
+0.34645482469175165
+31
+-3.8564937128630965
+12
+-2.227701465445983
+22
+0.34645482469175165
+32
+-3.8564937128630965
+13
+-2.227701465445983
+23
+0.34645482469175165
+33
+-3.8564937128630965
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+0.37500000000001704
+30
+-4.000000000000008
+11
+-2.2097985345540234
+21
+0.34645482469174677
+31
+-4.143506287136919
+12
+-7.983021822074795
+22
+0.34645482469174677
+32
+-4.143506287136919
+13
+-7.983021822074795
+23
+0.34645482469174677
+33
+-4.143506287136919
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.2097985345540234
+20
+0.34645482469174677
+30
+-4.143506287136919
+11
+-7.983021822074795
+21
+0.37500000000001704
+31
+-4.000000000000008
+12
+-2.2187500000000036
+22
+0.37500000000001704
+32
+-4.000000000000008
+13
+-2.2187500000000036
+23
+0.37500000000001704
+33
+-4.000000000000008
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+0.34645482469174677
+30
+-4.143506287136919
+11
+-2.202209848576959
+21
+0.2651650429449665
+31
+-4.265165042944965
+12
+-7.983021822074795
+22
+0.2651650429449665
+32
+-4.265165042944965
+13
+-7.983021822074795
+23
+0.2651650429449665
+33
+-4.265165042944965
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.202209848576959
+20
+0.2651650429449665
+30
+-4.265165042944965
+11
+-7.983021822074795
+21
+0.34645482469174677
+31
+-4.143506287136919
+12
+-2.2097985345540234
+22
+0.34645482469174677
+32
+-4.143506287136919
+13
+-2.2097985345540234
+23
+0.34645482469174677
+33
+-4.143506287136919
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.202209848576959
+20
+0.2651650429449665
+30
+-4.265165042944965
+11
+-7.983021822074795
+21
+0.14350628713691715
+31
+-4.34645482469174
+12
+-7.983021822074795
+22
+0.2651650429449665
+32
+-4.265165042944965
+13
+-7.983021822074795
+23
+0.2651650429449665
+33
+-4.265165042944965
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+0.14350628713691715
+30
+-4.34645482469174
+11
+-2.202209848576959
+21
+0.2651650429449665
+31
+-4.265165042944965
+12
+-2.197139250717206
+22
+0.14350628713691715
+32
+-4.34645482469174
+13
+-2.197139250717206
+23
+0.14350628713691715
+33
+-4.34645482469174
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.197139250717206
+20
+0.14350628713691715
+30
+-4.34645482469174
+11
+-7.983021822074795
+21
+6.060158656298807e-15
+31
+-4.375000000000006
+12
+-7.983021822074795
+22
+0.14350628713691715
+32
+-4.34645482469174
+13
+-7.983021822074795
+23
+0.14350628713691715
+33
+-4.34645482469174
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+6.060158656298807e-15
+30
+-4.375000000000006
+11
+-2.197139250717206
+21
+0.14350628713691715
+31
+-4.34645482469174
+12
+-2.195358693533829
+22
+6.060158656298807e-15
+32
+-4.375000000000006
+13
+-2.195358693533829
+23
+6.060158656298807e-15
+33
+-4.375000000000006
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-2.242141306466179
+20
+1.8716988585368647e-14
+30
+-3.6249999999999973
+11
+-7.983021822074795
+21
+0.1435062871369287
+31
+-3.653545175308267
+12
+-7.983021822074795
+22
+1.8716988585368647e-14
+32
+-3.6249999999999973
+13
+-7.983021822074795
+23
+1.8716988585368647e-14
+33
+-3.6249999999999973
+70
+1
+ 0
+3DFACE
+ 8
+pipe
+10
+-7.983021822074795
+20
+0.1435062871369287
+30
+-3.653545175308267
+11
+-2.242141306466179
+21
+1.8716988585368647e-14
+31
+-3.6249999999999973
+12
+-2.240360749282801
+22
+0.1435062871369287
+32
+-3.653545175308267
+13
+-2.240360749282801
+23
+0.1435062871369287
+33
+-3.653545175308267
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2922750396074334
+30
+5.079185156719955
+11
+-5.499999999999995
+21
+2.2471825367939746
+31
+5.101599911452267
+12
+-5.499999999999995
+22
+2.2922750396074334
+32
+5.079185156719955
+13
+-5.499999999999995
+23
+2.2922750396074334
+33
+5.079185156719955
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.2471825367939746
+30
+5.101599911452267
+11
+9.500000000000005
+21
+2.2922750396074334
+31
+5.079185156719955
+12
+9.500000000000005
+22
+2.2471825367939746
+32
+5.101599911452267
+13
+9.500000000000005
+23
+2.2471825367939746
+33
+5.101599911452267
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.3324893860329072
+30
+5.0488773791494435
+11
+-5.499999999999995
+21
+2.2922750396074334
+31
+5.079185156719955
+12
+-5.499999999999995
+22
+2.3324893860329072
+32
+5.0488773791494435
+13
+-5.499999999999995
+23
+2.3324893860329072
+33
+5.0488773791494435
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.2922750396074334
+30
+5.079185156719955
+11
+9.500000000000005
+21
+2.3324893860329072
+31
+5.0488773791494435
+12
+9.500000000000005
+22
+2.2922750396074334
+32
+5.079185156719955
+13
+9.500000000000005
+23
+2.2922750396074334
+33
+5.079185156719955
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2471825367939746
+30
+5.101599911452267
+11
+-5.499999999999995
+21
+2.198742898510912
+31
+5.115360597579695
+12
+-5.499999999999995
+22
+2.2471825367939746
+32
+5.101599911452267
+13
+-5.499999999999995
+23
+2.2471825367939746
+33
+5.101599911452267
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.198742898510912
+30
+5.115360597579695
+11
+9.500000000000005
+21
+2.2471825367939746
+31
+5.101599911452267
+12
+9.500000000000005
+22
+2.198742898510912
+32
+5.115360597579695
+13
+9.500000000000005
+23
+2.198742898510912
+33
+5.115360597579695
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.198742898510912
+30
+5.115360597579695
+11
+-5.499999999999995
+21
+2.14860079060873
+31
+5.119999999999996
+12
+-5.499999999999995
+22
+2.198742898510912
+32
+5.115360597579695
+13
+-5.499999999999995
+23
+2.198742898510912
+33
+5.115360597579695
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.14860079060873
+30
+5.119999999999996
+11
+9.500000000000005
+21
+2.198742898510912
+31
+5.115360597579695
+12
+9.500000000000005
+22
+2.14860079060873
+32
+5.119999999999996
+13
+9.500000000000005
+23
+2.14860079060873
+33
+5.119999999999996
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.36646018267338
+30
+5.011705615466466
+11
+-5.499999999999995
+21
+2.3930340227089686
+31
+4.968931954582056
+12
+9.500000000000005
+22
+2.3930340227089686
+32
+4.968931954582056
+13
+9.500000000000005
+23
+2.3930340227089686
+33
+4.968931954582056
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3930340227089686
+30
+4.968931954582056
+11
+9.500000000000005
+21
+2.36646018267338
+31
+5.011705615466466
+12
+-5.499999999999995
+22
+2.36646018267338
+32
+5.011705615466466
+13
+-5.499999999999995
+23
+2.36646018267338
+33
+5.011705615466466
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.14860079060873
+30
+5.119999999999996
+11
+-5.499999999999995
+21
+0.0
+31
+5.119999999999996
+12
+-5.499999999999995
+22
+2.14860079060873
+32
+5.119999999999996
+13
+-5.499999999999995
+23
+2.14860079060873
+33
+5.119999999999996
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+0.0
+30
+5.119999999999996
+11
+9.500000000000005
+21
+2.14860079060873
+31
+5.119999999999996
+12
+9.500000000000005
+22
+0.0
+32
+5.119999999999996
+13
+9.500000000000005
+23
+0.0
+33
+5.119999999999996
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.3324893860329072
+30
+5.0488773791494435
+11
+-5.499999999999995
+21
+2.36646018267338
+31
+5.011705615466466
+12
+9.500000000000005
+22
+2.36646018267338
+32
+5.011705615466466
+13
+9.500000000000005
+23
+2.36646018267338
+33
+5.011705615466466
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.36646018267338
+30
+5.011705615466466
+11
+9.500000000000005
+21
+2.3324893860329072
+31
+5.0488773791494435
+12
+-5.499999999999995
+22
+2.3324893860329072
+32
+5.0488773791494435
+13
+-5.499999999999995
+23
+2.3324893860329072
+33
+5.0488773791494435
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2429376307709816
+30
+5.153304187744393
+11
+-5.499999999999995
+21
+2.2923509057835325
+31
+5.139266911825803
+12
+-5.499999999999995
+22
+2.2429376307709816
+32
+5.153304187744393
+13
+-5.499999999999995
+23
+2.2429376307709816
+33
+5.153304187744393
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.2923509057835325
+30
+5.139266911825803
+11
+9.500000000000005
+21
+2.2429376307709816
+31
+5.153304187744393
+12
+9.500000000000005
+22
+2.2923509057835325
+32
+5.139266911825803
+13
+9.500000000000005
+23
+2.2923509057835325
+33
+5.139266911825803
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2923509057835325
+30
+5.139266911825803
+11
+-5.499999999999995
+21
+2.3383497679035443
+31
+5.116401620523369
+12
+-5.499999999999995
+22
+2.2923509057835325
+32
+5.139266911825803
+13
+-5.499999999999995
+23
+2.2923509057835325
+33
+5.139266911825803
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3383497679035443
+30
+5.116401620523369
+11
+9.500000000000005
+21
+2.2923509057835325
+31
+5.139266911825803
+12
+9.500000000000005
+22
+2.3383497679035443
+32
+5.116401620523369
+13
+9.500000000000005
+23
+2.3383497679035443
+33
+5.116401620523369
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3793724226921675
+30
+5.085484656623693
+11
+9.500000000000005
+21
+2.4140260323451184
+31
+5.047565740490686
+12
+-5.499999999999995
+22
+2.4140260323451184
+32
+5.047565740490686
+13
+-5.499999999999995
+23
+2.4140260323451184
+33
+5.047565740490686
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.4140260323451184
+30
+5.047565740490686
+11
+-5.499999999999995
+21
+2.3793724226921675
+31
+5.085484656623693
+12
+9.500000000000005
+22
+2.3793724226921675
+32
+5.085484656623693
+13
+9.500000000000005
+23
+2.3793724226921675
+33
+5.085484656623693
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.4140260323451184
+30
+5.047565740490686
+11
+9.500000000000005
+21
+2.4411340065654183
+31
+5.003932329022501
+12
+-5.499999999999995
+22
+2.4411340065654183
+32
+5.003932329022501
+13
+-5.499999999999995
+23
+2.4411340065654183
+33
+5.003932329022501
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.4411340065654183
+30
+5.003932329022501
+11
+-5.499999999999995
+21
+2.4140260323451184
+31
+5.047565740490686
+12
+9.500000000000005
+22
+2.4140260323451184
+32
+5.047565740490686
+13
+9.500000000000005
+23
+2.4140260323451184
+33
+5.047565740490686
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+0.0
+30
+5.15803684215334
+11
+-5.499999999999995
+21
+2.1917876664999696
+31
+5.15803684215334
+12
+-5.499999999999995
+22
+0.0
+32
+5.15803684215334
+13
+-5.499999999999995
+23
+0.0
+33
+5.15803684215334
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.1917876664999696
+30
+5.15803684215334
+11
+9.500000000000005
+21
+0.0
+31
+5.15803684215334
+12
+9.500000000000005
+22
+2.1917876664999696
+32
+5.15803684215334
+13
+9.500000000000005
+23
+2.1917876664999696
+33
+5.15803684215334
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.1917876664999696
+30
+5.15803684215334
+11
+-5.499999999999995
+21
+2.2429376307709816
+31
+5.153304187744393
+12
+-5.499999999999995
+22
+2.1917876664999696
+32
+5.15803684215334
+13
+-5.499999999999995
+23
+2.1917876664999696
+33
+5.15803684215334
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.2429376307709816
+30
+5.153304187744393
+11
+9.500000000000005
+21
+2.1917876664999696
+31
+5.15803684215334
+12
+9.500000000000005
+22
+2.2429376307709816
+32
+5.153304187744393
+13
+9.500000000000005
+23
+2.2429376307709816
+33
+5.153304187744393
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.3383497679035443
+30
+5.116401620523369
+11
+-5.499999999999995
+21
+2.3793724226921675
+31
+5.085484656623693
+12
+-5.499999999999995
+22
+2.3383497679035443
+32
+5.116401620523369
+13
+-5.499999999999995
+23
+2.3383497679035443
+33
+5.116401620523369
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3793724226921675
+30
+5.085484656623693
+11
+9.500000000000005
+21
+2.3383497679035443
+31
+5.116401620523369
+12
+9.500000000000005
+22
+2.3793724226921675
+32
+5.085484656623693
+13
+9.500000000000005
+23
+2.3793724226921675
+33
+5.085484656623693
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-4.999999999999995
+20
+3.152109
+30
+3.227619793365834
+11
+-5.06663474057502
+21
+3.089999999999999
+31
+3.227619793365834
+12
+-5.06663474057502
+22
+3.1521089999999985
+32
+3.227619793365834
+13
+-5.06663474057502
+23
+3.1521089999999985
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.06663474057502
+20
+3.089999999999999
+30
+3.227619793365834
+11
+-4.999999999999995
+21
+3.152109
+31
+3.227619793365834
+12
+-4.999999999999995
+22
+3.09
+32
+3.227619793365834
+13
+-4.999999999999995
+23
+3.09
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.1917876664999696
+30
+5.15803684215334
+11
+-5.499999999999995
+21
+0.0
+31
+5.119999999999996
+12
+-5.499999999999995
+22
+0.0
+32
+5.15803684215334
+13
+-5.499999999999995
+23
+0.0
+33
+5.15803684215334
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+0.0
+30
+5.119999999999996
+11
+-5.499999999999995
+21
+2.1917876664999696
+31
+5.15803684215334
+12
+-5.499999999999995
+22
+2.14860079060873
+32
+5.119999999999996
+13
+-5.499999999999995
+23
+2.14860079060873
+33
+5.119999999999996
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.14860079060873
+30
+5.119999999999996
+11
+-5.499999999999995
+21
+2.1917876664999696
+31
+5.15803684215334
+12
+-5.499999999999995
+22
+2.198742898510912
+32
+5.115360597579695
+13
+-5.499999999999995
+23
+2.198742898510912
+33
+5.115360597579695
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.198742898510912
+30
+5.115360597579695
+11
+-5.499999999999995
+21
+2.1917876664999696
+31
+5.15803684215334
+12
+-5.499999999999995
+22
+2.2429376307709816
+32
+5.153304187744393
+13
+-5.499999999999995
+23
+2.2429376307709816
+33
+5.153304187744393
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.198742898510912
+30
+5.115360597579695
+11
+-5.499999999999995
+21
+2.2429376307709816
+31
+5.153304187744393
+12
+-5.499999999999995
+22
+2.2471825367939746
+32
+5.101599911452267
+13
+-5.499999999999995
+23
+2.2471825367939746
+33
+5.101599911452267
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.2471825367939746
+30
+5.101599911452267
+11
+-5.499999999999995
+21
+2.2429376307709816
+31
+5.153304187744393
+12
+-5.499999999999995
+22
+2.2923509057835325
+32
+5.139266911825803
+13
+-5.499999999999995
+23
+2.2923509057835325
+33
+5.139266911825803
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.2471825367939746
+30
+5.101599911452267
+11
+-5.499999999999995
+21
+2.2923509057835325
+31
+5.139266911825803
+12
+-5.499999999999995
+22
+2.2922750396074334
+32
+5.079185156719955
+13
+-5.499999999999995
+23
+2.2922750396074334
+33
+5.079185156719955
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.2922750396074334
+30
+5.079185156719955
+11
+-5.499999999999995
+21
+2.2923509057835325
+31
+5.139266911825803
+12
+-5.499999999999995
+22
+2.3324893860329072
+32
+5.0488773791494435
+13
+-5.499999999999995
+23
+2.3324893860329072
+33
+5.0488773791494435
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3324893860329072
+30
+5.0488773791494435
+11
+-5.499999999999995
+21
+2.2923509057835325
+31
+5.139266911825803
+12
+-5.499999999999995
+22
+2.3383497679035443
+32
+5.116401620523369
+13
+-5.499999999999995
+23
+2.3383497679035443
+33
+5.116401620523369
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3324893860329072
+30
+5.0488773791494435
+11
+-5.499999999999995
+21
+2.3383497679035443
+31
+5.116401620523369
+12
+-5.499999999999995
+22
+2.36646018267338
+32
+5.011705615466466
+13
+-5.499999999999995
+23
+2.36646018267338
+33
+5.011705615466466
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.36646018267338
+30
+5.011705615466466
+11
+-5.499999999999995
+21
+2.3383497679035443
+31
+5.116401620523369
+12
+-5.499999999999995
+22
+2.3793724226921675
+32
+5.085484656623693
+13
+-5.499999999999995
+23
+2.3793724226921675
+33
+5.085484656623693
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.36646018267338
+30
+5.011705615466466
+11
+-5.499999999999995
+21
+2.3793724226921675
+31
+5.085484656623693
+12
+-5.499999999999995
+22
+2.3930340227089686
+32
+4.968931954582056
+13
+-5.499999999999995
+23
+2.3930340227089686
+33
+4.968931954582056
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3930340227089686
+30
+4.968931954582056
+11
+-5.499999999999995
+21
+2.3793724226921675
+31
+5.085484656623693
+12
+-5.499999999999995
+22
+2.4140260323451184
+32
+5.047565740490686
+13
+-5.499999999999995
+23
+2.4140260323451184
+33
+5.047565740490686
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3930340227089686
+30
+4.968931954582056
+11
+-5.499999999999995
+21
+2.4140260323451184
+31
+5.047565740490686
+12
+-5.499999999999995
+22
+3.0123234243928083
+32
+3.7303531512143784
+13
+-5.499999999999995
+23
+3.0123234243928083
+33
+3.7303531512143784
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.0123234243928083
+30
+3.7303531512143784
+11
+-5.499999999999995
+21
+2.4140260323451184
+31
+5.047565740490686
+12
+-5.499999999999995
+22
+2.4411340065654183
+32
+5.003932329022501
+13
+-5.499999999999995
+23
+2.4411340065654183
+33
+5.003932329022501
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.0123234243928083
+30
+3.7303531512143784
+11
+-5.499999999999995
+21
+2.4411340065654183
+31
+5.003932329022501
+12
+-5.499999999999995
+22
+3.072871125223104
+32
+3.7404580917071333
+13
+-5.499999999999995
+23
+3.072871125223104
+33
+3.7404580917071333
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.0123234243928083
+30
+3.7303531512143784
+11
+-5.499999999999995
+21
+3.072871125223104
+31
+3.7404580917071333
+12
+-5.499999999999995
+22
+3.0139421213514037
+32
+3.7267766757513905
+13
+-5.499999999999995
+23
+3.0139421213514037
+33
+3.7267766757513905
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.0139421213514037
+30
+3.7267766757513905
+11
+-5.499999999999995
+21
+3.072871125223104
+31
+3.7404580917071333
+12
+-5.499999999999995
+22
+3.0790632735059664
+32
+3.72677667575139
+13
+-5.499999999999995
+23
+3.0790632735059664
+33
+3.72677667575139
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.06663474057502
+20
+3.1521089999999985
+30
+3.227619793365834
+11
+-5.136049439910264
+21
+3.09
+31
+3.2284980853079333
+12
+-5.136049439910264
+22
+3.152109
+32
+3.2284980853079333
+13
+-5.136049439910264
+23
+3.152109
+33
+3.2284980853079333
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.136049439910264
+20
+3.09
+30
+3.2284980853079333
+11
+-5.06663474057502
+21
+3.1521089999999985
+31
+3.227619793365834
+12
+-5.06663474057502
+22
+3.089999999999999
+32
+3.227619793365834
+13
+-5.06663474057502
+23
+3.089999999999999
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.136049439910264
+20
+3.152109
+30
+3.2284980853079333
+11
+-5.265127602337854
+21
+3.0900000000000003
+31
+3.2715241394504626
+12
+-5.265127602337854
+22
+3.152109
+32
+3.2715241394504626
+13
+-5.265127602337854
+23
+3.152109
+33
+3.2715241394504626
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.265127602337854
+20
+3.0900000000000003
+30
+3.2715241394504626
+11
+-5.136049439910264
+21
+3.152109
+31
+3.2284980853079333
+12
+-5.136049439910264
+22
+3.09
+32
+3.2284980853079333
+13
+-5.136049439910264
+23
+3.09
+33
+3.2284980853079333
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.265127602337854
+20
+3.152109
+30
+3.2715241394504626
+11
+-5.374999999999995
+21
+3.0900000000000003
+31
+3.3517766757513896
+12
+-5.374999999999995
+22
+3.152109
+32
+3.3517766757513896
+13
+-5.374999999999995
+23
+3.152109
+33
+3.3517766757513896
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.374999999999995
+20
+3.0900000000000003
+30
+3.3517766757513896
+11
+-5.265127602337854
+21
+3.152109
+31
+3.2715241394504626
+12
+-5.265127602337854
+22
+3.0900000000000003
+32
+3.2715241394504626
+13
+-5.265127602337854
+23
+3.0900000000000003
+33
+3.2715241394504626
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.1499114528701706
+30
+3.4616490734135317
+11
+-5.452666904421266
+21
+3.0878043383057854
+31
+3.4581091282954834
+12
+-5.455252536300922
+22
+3.087392168967912
+32
+3.461649073413532
+13
+-5.455252536300922
+23
+3.087392168967912
+33
+3.461649073413532
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.452666904421266
+20
+3.0878043383057854
+30
+3.4581091282954834
+11
+-5.455252536300922
+21
+3.1499114528701706
+31
+3.4616490734135317
+12
+-5.4111798476732265
+22
+3.089999999999999
+32
+3.401309896682915
+13
+-5.4111798476732265
+23
+3.089999999999999
+33
+3.401309896682915
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4111798476732265
+20
+3.089999999999999
+30
+3.401309896682915
+11
+-5.455252536300922
+21
+3.1499114528701706
+31
+3.4616490734135317
+12
+-5.374999999999995
+22
+3.0900000000000003
+32
+3.3517766757513896
+13
+-5.374999999999995
+23
+3.0900000000000003
+33
+3.3517766757513896
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.374999999999995
+20
+3.0900000000000003
+30
+3.3517766757513896
+11
+-5.455252536300922
+21
+3.1499114528701706
+31
+3.4616490734135317
+12
+-5.374999999999995
+22
+3.152109
+32
+3.3517766757513896
+13
+-5.374999999999995
+23
+3.152109
+33
+3.3517766757513896
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.374999999999995
+20
+3.152109
+30
+3.3517766757513896
+11
+-5.455252536300922
+21
+3.1499114528701706
+31
+3.4616490734135317
+12
+-5.41372985422196
+22
+3.152109
+32
+3.4048010677595886
+13
+-5.41372985422196
+23
+3.152109
+33
+3.4048010677595886
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4982785904434515
+20
+3.128292290009669
+30
+3.590727235841121
+11
+-5.491487383235348
+21
+3.0703175939727343
+31
+3.5703536142168106
+12
+-5.4982785904434515
+22
+3.0646689131920426
+32
+3.590727235841121
+13
+-5.4982785904434515
+23
+3.0646689131920426
+33
+3.590727235841121
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.491487383235348
+20
+3.0703175939727343
+30
+3.5703536142168106
+11
+-5.4982785904434515
+21
+3.128292290009669
+31
+3.590727235841121
+12
+-5.47289263174993
+22
+3.081230457795461
+32
+3.5145693597605545
+13
+-5.47289263174993
+23
+3.081230457795461
+33
+3.5145693597605545
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.47289263174993
+20
+3.081230457795461
+30
+3.5145693597605545
+11
+-5.4982785904434515
+21
+3.128292290009669
+31
+3.590727235841121
+12
+-5.455252536300922
+22
+3.087392168967912
+32
+3.461649073413532
+13
+-5.455252536300922
+23
+3.087392168967912
+33
+3.461649073413532
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.087392168967912
+30
+3.461649073413532
+11
+-5.4982785904434515
+21
+3.128292290009669
+31
+3.590727235841121
+12
+-5.455252536300922
+22
+3.1499114528701706
+32
+3.4616490734135317
+13
+-5.455252536300922
+23
+3.1499114528701706
+33
+3.4616490734135317
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.1499114528701706
+30
+3.4616490734135317
+11
+-5.4982785904434515
+21
+3.128292290009669
+31
+3.590727235841121
+12
+-5.493783699835049
+22
+3.132030977611587
+32
+3.5772425640159144
+13
+-5.493783699835049
+23
+3.132030977611587
+33
+3.5772425640159144
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.1499114528701706
+30
+3.4616490734135317
+11
+-5.493783699835049
+21
+3.132030977611587
+31
+3.5772425640159144
+12
+-5.4748151938447736
+22
+3.143163189997152
+32
+3.5203370460450882
+13
+-5.4748151938447736
+23
+3.143163189997152
+33
+3.5203370460450882
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.1499114528701706
+30
+3.4616490734135317
+11
+-5.4748151938447736
+21
+3.143163189997152
+31
+3.5203370460450882
+12
+-5.455616833138935
+22
+3.149869205505734
+32
+3.4627419639275696
+13
+-5.455616833138935
+23
+3.149869205505734
+33
+3.4627419639275696
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-4.999999999999995
+20
+3.0357609534623577
+30
+3.6785684442714244
+11
+-5.499356934626736
+21
+3.034536500225599
+31
+3.675952812525448
+12
+-5.498713869253477
+22
+3.055130879099794
+32
+3.6251289492995054
+13
+-5.498713869253477
+23
+3.055130879099794
+33
+3.6251289492995054
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499356934626736
+20
+3.034536500225599
+30
+3.675952812525448
+11
+-4.999999999999995
+21
+3.0357609534623577
+31
+3.6785684442714244
+12
+-5.499999999999995
+22
+3.0139421213514037
+32
+3.7267766757513905
+13
+-5.499999999999995
+23
+3.0139421213514037
+33
+3.7267766757513905
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.096779748626952
+30
+3.6876325121546265
+11
+-5.498713869253477
+21
+3.055130879099794
+31
+3.6251289492995054
+12
+-5.499356934626736
+22
+3.034536500225599
+32
+3.675952812525448
+13
+-5.499356934626736
+23
+3.034536500225599
+33
+3.675952812525448
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.498713869253477
+20
+3.055130879099794
+30
+3.6251289492995054
+11
+-5.499999999999995
+21
+3.096779748626952
+31
+3.6876325121546265
+12
+-5.4982785904434515
+22
+3.0646689131920426
+32
+3.590727235841121
+13
+-5.4982785904434515
+23
+3.0646689131920426
+33
+3.590727235841121
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4982785904434515
+20
+3.0646689131920426
+30
+3.590727235841121
+11
+-5.499999999999995
+21
+3.096779748626952
+31
+3.6876325121546265
+12
+-5.4982785904434515
+22
+3.128292290009669
+32
+3.590727235841121
+13
+-5.4982785904434515
+23
+3.128292290009669
+33
+3.590727235841121
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4982785904434515
+20
+3.128292290009669
+30
+3.590727235841121
+11
+-5.499999999999995
+21
+3.096779748626952
+31
+3.6876325121546265
+12
+-5.498814964478946
+22
+3.116539009769701
+32
+3.6331188833337724
+13
+-5.498814964478946
+23
+3.116539009769701
+33
+3.6331188833337724
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.0790632735059664
+30
+3.72677667575139
+11
+-5.499356934626736
+21
+3.034536500225599
+31
+3.675952812525448
+12
+-5.499999999999995
+22
+3.0139421213514037
+32
+3.7267766757513905
+13
+-5.499999999999995
+23
+3.0139421213514037
+33
+3.7267766757513905
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499356934626736
+20
+3.034536500225599
+30
+3.675952812525448
+11
+-5.499999999999995
+21
+3.0790632735059664
+31
+3.72677667575139
+12
+-5.499999999999995
+22
+3.096779748626952
+32
+3.6876325121546265
+13
+-5.499999999999995
+23
+3.096779748626952
+33
+3.6876325121546265
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4982785904434515
+20
+3.128292290009669
+30
+3.590727235841121
+11
+8.7276000111177
+21
+3.132030977611586
+31
+3.577242564015919
+12
+-5.493783699835049
+22
+3.132030977611587
+32
+3.5772425640159144
+13
+-5.493783699835049
+23
+3.132030977611587
+33
+3.5772425640159144
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.7276000111177
+20
+3.132030977611586
+30
+3.577242564015919
+11
+-5.4982785904434515
+21
+3.128292290009669
+31
+3.590727235841121
+12
+8.783476330435551
+22
+3.1165390097697028
+32
+3.6331188833337706
+13
+8.783476330435551
+23
+3.1165390097697028
+33
+3.6331188833337706
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.783476330435551
+20
+3.1165390097697028
+30
+3.6331188833337706
+11
+-5.4982785904434515
+21
+3.128292290009669
+31
+3.590727235841121
+12
+-5.498814964478946
+22
+3.116539009769701
+32
+3.6331188833337724
+13
+-5.498814964478946
+23
+3.116539009769701
+33
+3.6331188833337724
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.377977240467615
+20
+3.1521089999999994
+30
+3.227619793365838
+11
+-4.999999999999995
+21
+3.09
+31
+3.227619793365834
+12
+-4.999999999999995
+22
+3.152109
+32
+3.227619793365834
+13
+-4.999999999999995
+23
+3.152109
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-4.999999999999995
+20
+3.09
+30
+3.227619793365834
+11
+8.377977240467615
+21
+3.1521089999999994
+31
+3.227619793365838
+12
+8.377977240467612
+22
+3.09
+32
+3.227619793365834
+13
+8.377977240467612
+23
+3.09
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.608466575397262
+20
+3.087804338305786
+30
+3.4581091282954852
+11
+-5.4111798476732265
+21
+3.089999999999999
+31
+3.401309896682915
+12
+8.55166734378469
+22
+3.09
+32
+3.401309896682911
+13
+8.55166734378469
+23
+3.09
+33
+3.401309896682911
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4111798476732265
+20
+3.089999999999999
+30
+3.401309896682915
+11
+8.608466575397262
+21
+3.087804338305786
+31
+3.4581091282954852
+12
+-5.452666904421266
+22
+3.0878043383057854
+32
+3.4581091282954834
+13
+-5.452666904421266
+23
+3.0878043383057854
+33
+3.4581091282954834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.4411340065654183
+30
+5.003932329022501
+11
+8.890815538808916
+21
+3.072871125223103
+31
+3.740458091707135
+12
+-5.499999999999995
+22
+3.072871125223104
+32
+3.7404580917071333
+13
+-5.499999999999995
+23
+3.072871125223104
+33
+3.7404580917071333
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.890815538808916
+20
+3.072871125223103
+30
+3.740458091707135
+11
+-5.499999999999995
+21
+2.4411340065654183
+31
+5.003932329022501
+12
+9.500000000000005
+22
+2.768278894627561
+32
+4.349642552898219
+13
+9.500000000000005
+23
+2.768278894627561
+33
+4.349642552898219
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.768278894627561
+30
+4.349642552898219
+11
+-5.499999999999995
+21
+2.4411340065654183
+31
+5.003932329022501
+12
+9.500000000000005
+22
+2.4411340065654183
+32
+5.003932329022501
+13
+9.500000000000005
+23
+2.4411340065654183
+33
+5.003932329022501
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.493783699835049
+20
+3.132030977611587
+30
+3.5772425640159144
+11
+8.670694493146872
+21
+3.1431631899971517
+31
+3.5203370460450913
+12
+-5.4748151938447736
+22
+3.143163189997152
+32
+3.5203370460450882
+13
+-5.4748151938447736
+23
+3.143163189997152
+33
+3.5203370460450882
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.670694493146872
+20
+3.1431631899971517
+30
+3.5203370460450913
+11
+-5.493783699835049
+21
+3.132030977611587
+31
+3.5772425640159144
+12
+8.7276000111177
+22
+3.132030977611586
+32
+3.577242564015919
+13
+8.7276000111177
+23
+3.132030977611586
+33
+3.577242564015919
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.775486396401288
+20
+3.055130879099793
+30
+3.6251289492995054
+11
+-5.491487383235348
+21
+3.0703175939727343
+31
+3.5703536142168106
+12
+8.720711061318589
+22
+3.070317593972734
+32
+3.57035361421681
+13
+8.720711061318589
+23
+3.070317593972734
+33
+3.57035361421681
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.491487383235348
+20
+3.0703175939727343
+30
+3.5703536142168106
+11
+8.775486396401288
+21
+3.055130879099793
+31
+3.6251289492995054
+12
+-5.4982785904434515
+22
+3.0646689131920426
+32
+3.590727235841121
+13
+-5.4982785904434515
+23
+3.0646689131920426
+33
+3.590727235841121
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4982785904434515
+20
+3.0646689131920426
+30
+3.590727235841121
+11
+8.775486396401288
+21
+3.055130879099793
+31
+3.6251289492995054
+12
+-5.498713869253477
+22
+3.055130879099794
+32
+3.6251289492995054
+13
+-5.498713869253477
+23
+3.055130879099794
+33
+3.6251289492995054
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.880710598316162
+20
+3.0123234243928074
+30
+3.7303531512143793
+11
+-5.499999999999995
+21
+2.3930340227089686
+31
+4.968931954582056
+12
+-5.499999999999995
+22
+3.0123234243928083
+32
+3.7303531512143784
+13
+-5.499999999999995
+23
+3.0123234243928083
+33
+3.7303531512143784
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3930340227089686
+30
+4.968931954582056
+11
+8.880710598316162
+21
+3.0123234243928074
+31
+3.7303531512143793
+12
+9.500000000000002
+22
+2.70267872355089
+32
+4.349642552898214
+13
+9.500000000000002
+23
+2.70267872355089
+33
+4.349642552898214
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+2.3930340227089686
+30
+4.968931954582056
+11
+9.500000000000002
+21
+2.70267872355089
+31
+4.349642552898214
+12
+9.500000000000005
+22
+2.3930340227089686
+32
+4.968931954582056
+13
+9.500000000000005
+23
+2.3930340227089686
+33
+4.968931954582056
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.136049439910264
+20
+3.152109
+30
+3.2284980853079333
+11
+-4.999999999999995
+21
+3.152109
+31
+3.227619793365834
+12
+-5.06663474057502
+22
+3.1521089999999985
+32
+3.227619793365834
+13
+-5.06663474057502
+23
+3.1521089999999985
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-4.999999999999995
+20
+3.152109
+30
+3.227619793365834
+11
+-5.136049439910264
+21
+3.152109
+31
+3.2284980853079333
+12
+8.377977240467615
+22
+3.1521089999999994
+32
+3.227619793365838
+13
+8.377977240467615
+23
+3.1521089999999994
+33
+3.227619793365838
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.377977240467615
+20
+3.1521089999999994
+30
+3.227619793365838
+11
+-5.136049439910264
+21
+3.152109
+31
+3.2284980853079333
+12
+8.55515851486137
+22
+3.152109
+32
+3.4048010677595912
+13
+8.55515851486137
+23
+3.152109
+33
+3.4048010677595912
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.55515851486137
+20
+3.152109
+30
+3.4048010677595912
+11
+-5.136049439910264
+21
+3.152109
+31
+3.2284980853079333
+12
+-5.265127602337854
+22
+3.152109
+32
+3.2715241394504626
+13
+-5.265127602337854
+23
+3.152109
+33
+3.2715241394504626
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.55515851486137
+20
+3.152109
+30
+3.4048010677595912
+11
+-5.265127602337854
+21
+3.152109
+31
+3.2715241394504626
+12
+-5.374999999999995
+22
+3.152109
+32
+3.3517766757513896
+13
+-5.374999999999995
+23
+3.152109
+33
+3.3517766757513896
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.55515851486137
+20
+3.152109
+30
+3.4048010677595912
+11
+-5.374999999999995
+21
+3.152109
+31
+3.3517766757513896
+12
+-5.41372985422196
+22
+3.152109
+32
+3.4048010677595886
+13
+-5.41372985422196
+23
+3.152109
+33
+3.4048010677595886
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.828925891373206
+20
+3.035760953462357
+30
+3.6785684442714257
+11
+-5.499999999999995
+21
+3.0139421213514037
+31
+3.7267766757513905
+12
+-4.999999999999995
+22
+3.0357609534623577
+32
+3.6785684442714244
+13
+-4.999999999999995
+23
+3.0357609534623577
+33
+3.6785684442714244
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.0139421213514037
+30
+3.7267766757513905
+11
+8.828925891373206
+21
+3.035760953462357
+31
+3.6785684442714257
+12
+8.880710598316162
+22
+3.0123234243928074
+32
+3.7303531512143793
+13
+8.880710598316162
+23
+3.0123234243928074
+33
+3.7303531512143793
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.0139421213514037
+30
+3.7267766757513905
+11
+8.880710598316162
+21
+3.0123234243928074
+31
+3.7303531512143793
+12
+-5.499999999999995
+22
+3.0123234243928083
+32
+3.7303531512143784
+13
+-5.499999999999995
+23
+3.0123234243928083
+33
+3.7303531512143784
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.664926806862336
+20
+3.081230457795461
+30
+3.5145693597605576
+11
+-5.491487383235348
+21
+3.0703175939727343
+31
+3.5703536142168106
+12
+-5.47289263174993
+22
+3.081230457795461
+32
+3.5145693597605545
+13
+-5.47289263174993
+23
+3.081230457795461
+33
+3.5145693597605545
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.491487383235348
+20
+3.0703175939727343
+30
+3.5703536142168106
+11
+8.664926806862336
+21
+3.081230457795461
+31
+3.5145693597605576
+12
+8.720711061318589
+22
+3.070317593972734
+32
+3.57035361421681
+13
+8.720711061318589
+23
+3.070317593972734
+33
+3.57035361421681
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.1499114528701706
+30
+3.4616490734135317
+11
+8.55515851486137
+21
+3.152109
+31
+3.4048010677595912
+12
+-5.41372985422196
+22
+3.152109
+32
+3.4048010677595886
+13
+-5.41372985422196
+23
+3.152109
+33
+3.4048010677595886
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.55515851486137
+20
+3.152109
+30
+3.4048010677595912
+11
+-5.455252536300922
+21
+3.1499114528701706
+31
+3.4616490734135317
+12
+8.613099411029346
+22
+3.149869205505735
+32
+3.4627419639275705
+13
+8.613099411029346
+23
+3.149869205505735
+33
+3.4627419639275705
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.613099411029346
+20
+3.149869205505735
+30
+3.4627419639275705
+11
+-5.455252536300922
+21
+3.1499114528701706
+31
+3.4616490734135317
+12
+-5.455616833138935
+22
+3.149869205505734
+32
+3.4627419639275696
+13
+-5.455616833138935
+23
+3.149869205505734
+33
+3.4627419639275696
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.499999999999995
+20
+3.096779748626952
+30
+3.6876325121546265
+11
+8.890815538808916
+21
+3.072871125223103
+31
+3.740458091707135
+12
+8.837989959256406
+22
+3.096779748626954
+32
+3.687632512154624
+13
+8.837989959256406
+23
+3.096779748626954
+33
+3.687632512154624
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.890815538808916
+20
+3.072871125223103
+30
+3.740458091707135
+11
+-5.499999999999995
+21
+3.096779748626952
+31
+3.6876325121546265
+12
+-5.499999999999995
+22
+3.0790632735059664
+32
+3.72677667575139
+13
+-5.499999999999995
+23
+3.0790632735059664
+33
+3.72677667575139
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.890815538808916
+20
+3.072871125223103
+30
+3.740458091707135
+11
+-5.499999999999995
+21
+3.0790632735059664
+31
+3.72677667575139
+12
+-5.499999999999995
+22
+3.072871125223104
+32
+3.7404580917071333
+13
+-5.499999999999995
+23
+3.072871125223104
+33
+3.7404580917071333
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.608466575397262
+20
+3.087804338305786
+30
+3.4581091282954852
+11
+-5.455252536300922
+21
+3.087392168967912
+31
+3.461649073413532
+12
+-5.452666904421266
+22
+3.0878043383057854
+32
+3.4581091282954834
+13
+-5.452666904421266
+23
+3.0878043383057854
+33
+3.4581091282954834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.087392168967912
+30
+3.461649073413532
+11
+8.608466575397262
+21
+3.087804338305786
+31
+3.4581091282954852
+12
+8.664926806862336
+22
+3.081230457795461
+32
+3.5145693597605576
+13
+8.664926806862336
+23
+3.081230457795461
+33
+3.5145693597605576
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+-5.455252536300922
+20
+3.087392168967912
+30
+3.461649073413532
+11
+8.664926806862336
+21
+3.081230457795461
+31
+3.5145693597605576
+12
+-5.47289263174993
+22
+3.081230457795461
+32
+3.5145693597605545
+13
+-5.47289263174993
+23
+3.081230457795461
+33
+3.5145693597605545
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.498814964478946
+20
+3.116539009769701
+30
+3.6331188833337724
+11
+8.837989959256406
+21
+3.096779748626954
+31
+3.687632512154624
+12
+8.783476330435551
+22
+3.1165390097697028
+32
+3.6331188833337706
+13
+8.783476330435551
+23
+3.1165390097697028
+33
+3.6331188833337706
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.837989959256406
+20
+3.096779748626954
+30
+3.687632512154624
+11
+-5.498814964478946
+21
+3.116539009769701
+31
+3.6331188833337724
+12
+-5.499999999999995
+22
+3.096779748626952
+32
+3.6876325121546265
+13
+-5.499999999999995
+23
+3.096779748626952
+33
+3.6876325121546265
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.828925891373206
+20
+3.035760953462357
+30
+3.6785684442714257
+11
+-5.498713869253477
+21
+3.055130879099794
+31
+3.6251289492995054
+12
+8.775486396401288
+22
+3.055130879099793
+32
+3.6251289492995054
+13
+8.775486396401288
+23
+3.055130879099793
+33
+3.6251289492995054
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.498713869253477
+20
+3.055130879099794
+30
+3.6251289492995054
+11
+8.828925891373206
+21
+3.035760953462357
+31
+3.6785684442714257
+12
+-4.999999999999995
+22
+3.0357609534623577
+32
+3.6785684442714244
+13
+-4.999999999999995
+23
+3.0357609534623577
+33
+3.6785684442714244
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.55166734378469
+20
+3.09
+30
+3.401309896682911
+11
+-4.999999999999995
+21
+3.09
+31
+3.227619793365834
+12
+8.377977240467612
+22
+3.09
+32
+3.227619793365834
+13
+8.377977240467612
+23
+3.09
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-4.999999999999995
+20
+3.09
+30
+3.227619793365834
+11
+8.55166734378469
+21
+3.09
+31
+3.401309896682911
+12
+-5.06663474057502
+22
+3.089999999999999
+32
+3.227619793365834
+13
+-5.06663474057502
+23
+3.089999999999999
+33
+3.227619793365834
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.06663474057502
+20
+3.089999999999999
+30
+3.227619793365834
+11
+8.55166734378469
+21
+3.09
+31
+3.401309896682911
+12
+-5.136049439910264
+22
+3.09
+32
+3.2284980853079333
+13
+-5.136049439910264
+23
+3.09
+33
+3.2284980853079333
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.136049439910264
+20
+3.09
+30
+3.2284980853079333
+11
+8.55166734378469
+21
+3.09
+31
+3.401309896682911
+12
+-5.265127602337854
+22
+3.0900000000000003
+32
+3.2715241394504626
+13
+-5.265127602337854
+23
+3.0900000000000003
+33
+3.2715241394504626
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.265127602337854
+20
+3.0900000000000003
+30
+3.2715241394504626
+11
+8.55166734378469
+21
+3.09
+31
+3.401309896682911
+12
+-5.374999999999995
+22
+3.0900000000000003
+32
+3.3517766757513896
+13
+-5.374999999999995
+23
+3.0900000000000003
+33
+3.3517766757513896
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+-5.374999999999995
+20
+3.0900000000000003
+30
+3.3517766757513896
+11
+8.55166734378469
+21
+3.09
+31
+3.401309896682911
+12
+-5.4111798476732265
+22
+3.089999999999999
+32
+3.401309896682915
+13
+-5.4111798476732265
+23
+3.089999999999999
+33
+3.401309896682915
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+-5.4748151938447736
+20
+3.143163189997152
+30
+3.5203370460450882
+11
+8.613099411029346
+21
+3.149869205505735
+31
+3.4627419639275705
+12
+-5.455616833138935
+22
+3.149869205505734
+32
+3.4627419639275696
+13
+-5.455616833138935
+23
+3.149869205505734
+33
+3.4627419639275696
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.613099411029346
+20
+3.149869205505735
+30
+3.4627419639275705
+11
+-5.4748151938447736
+21
+3.143163189997152
+31
+3.5203370460450882
+12
+8.670694493146872
+22
+3.1431631899971517
+32
+3.5203370460450913
+13
+8.670694493146872
+23
+3.1431631899971517
+33
+3.5203370460450913
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.14860079060873
+30
+5.119999999999996
+11
+9.500000000000005
+21
+0.0
+31
+5.15803684215334
+12
+9.500000000000005
+22
+0.0
+32
+5.119999999999996
+13
+9.500000000000005
+23
+0.0
+33
+5.119999999999996
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+0.0
+30
+5.15803684215334
+11
+9.500000000000005
+21
+2.14860079060873
+31
+5.119999999999996
+12
+9.500000000000005
+22
+2.1917876664999696
+32
+5.15803684215334
+13
+9.500000000000005
+23
+2.1917876664999696
+33
+5.15803684215334
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.1917876664999696
+30
+5.15803684215334
+11
+9.500000000000005
+21
+2.14860079060873
+31
+5.119999999999996
+12
+9.500000000000005
+22
+2.198742898510912
+32
+5.115360597579695
+13
+9.500000000000005
+23
+2.198742898510912
+33
+5.115360597579695
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.1917876664999696
+30
+5.15803684215334
+11
+9.500000000000005
+21
+2.198742898510912
+31
+5.115360597579695
+12
+9.500000000000005
+22
+2.2429376307709816
+32
+5.153304187744393
+13
+9.500000000000005
+23
+2.2429376307709816
+33
+5.153304187744393
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2429376307709816
+30
+5.153304187744393
+11
+9.500000000000005
+21
+2.198742898510912
+31
+5.115360597579695
+12
+9.500000000000005
+22
+2.2471825367939746
+32
+5.101599911452267
+13
+9.500000000000005
+23
+2.2471825367939746
+33
+5.101599911452267
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2429376307709816
+30
+5.153304187744393
+11
+9.500000000000005
+21
+2.2471825367939746
+31
+5.101599911452267
+12
+9.500000000000005
+22
+2.2923509057835325
+32
+5.139266911825803
+13
+9.500000000000005
+23
+2.2923509057835325
+33
+5.139266911825803
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2923509057835325
+30
+5.139266911825803
+11
+9.500000000000005
+21
+2.2471825367939746
+31
+5.101599911452267
+12
+9.500000000000005
+22
+2.2922750396074334
+32
+5.079185156719955
+13
+9.500000000000005
+23
+2.2922750396074334
+33
+5.079185156719955
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2923509057835325
+30
+5.139266911825803
+11
+9.500000000000005
+21
+2.2922750396074334
+31
+5.079185156719955
+12
+9.500000000000005
+22
+2.3324893860329072
+32
+5.0488773791494435
+13
+9.500000000000005
+23
+2.3324893860329072
+33
+5.0488773791494435
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.2923509057835325
+30
+5.139266911825803
+11
+9.500000000000005
+21
+2.3324893860329072
+31
+5.0488773791494435
+12
+9.500000000000005
+22
+2.3383497679035443
+32
+5.116401620523369
+13
+9.500000000000005
+23
+2.3383497679035443
+33
+5.116401620523369
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.3383497679035443
+30
+5.116401620523369
+11
+9.500000000000005
+21
+2.3324893860329072
+31
+5.0488773791494435
+12
+9.500000000000005
+22
+2.36646018267338
+32
+5.011705615466466
+13
+9.500000000000005
+23
+2.36646018267338
+33
+5.011705615466466
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.3383497679035443
+30
+5.116401620523369
+11
+9.500000000000005
+21
+2.36646018267338
+31
+5.011705615466466
+12
+9.500000000000005
+22
+2.3793724226921675
+32
+5.085484656623693
+13
+9.500000000000005
+23
+2.3793724226921675
+33
+5.085484656623693
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.3793724226921675
+30
+5.085484656623693
+11
+9.500000000000005
+21
+2.36646018267338
+31
+5.011705615466466
+12
+9.500000000000005
+22
+2.3930340227089686
+32
+4.968931954582056
+13
+9.500000000000005
+23
+2.3930340227089686
+33
+4.968931954582056
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.3793724226921675
+30
+5.085484656623693
+11
+9.500000000000005
+21
+2.3930340227089686
+31
+4.968931954582056
+12
+9.500000000000005
+22
+2.4140260323451184
+32
+5.047565740490686
+13
+9.500000000000005
+23
+2.4140260323451184
+33
+5.047565740490686
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.4140260323451184
+30
+5.047565740490686
+11
+9.500000000000005
+21
+2.3930340227089686
+31
+4.968931954582056
+12
+9.500000000000002
+22
+2.70267872355089
+32
+4.349642552898214
+13
+9.500000000000002
+23
+2.70267872355089
+33
+4.349642552898214
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.4140260323451184
+30
+5.047565740490686
+11
+9.500000000000002
+21
+2.70267872355089
+31
+4.349642552898214
+12
+9.500000000000005
+22
+2.4411340065654183
+32
+5.003932329022501
+13
+9.500000000000005
+23
+2.4411340065654183
+33
+5.003932329022501
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000005
+20
+2.4411340065654183
+30
+5.003932329022501
+11
+9.500000000000002
+21
+2.70267872355089
+31
+4.349642552898214
+12
+9.500000000000005
+22
+2.768278894627561
+32
+4.349642552898219
+13
+9.500000000000005
+23
+2.768278894627561
+33
+4.349642552898219
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.377977240467615
+20
+3.1521089999999994
+30
+3.227619793365838
+11
+8.55166734378469
+21
+3.09
+31
+3.401309896682911
+12
+8.377977240467612
+22
+3.09
+32
+3.227619793365834
+13
+8.377977240467612
+23
+3.09
+33
+3.227619793365834
+70
+1
+ 0
+3DFACE
+ 8
+cap
+10
+8.55166734378469
+20
+3.09
+30
+3.401309896682911
+11
+8.377977240467615
+21
+3.1521089999999994
+31
+3.227619793365838
+12
+8.55515851486137
+22
+3.152109
+32
+3.4048010677595912
+13
+8.55515851486137
+23
+3.152109
+33
+3.4048010677595912
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.55166734378469
+20
+3.09
+30
+3.401309896682911
+11
+8.55515851486137
+21
+3.152109
+31
+3.4048010677595912
+12
+8.608466575397262
+22
+3.087804338305786
+32
+3.4581091282954852
+13
+8.608466575397262
+23
+3.087804338305786
+33
+3.4581091282954852
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.608466575397262
+20
+3.087804338305786
+30
+3.4581091282954852
+11
+8.55515851486137
+21
+3.152109
+31
+3.4048010677595912
+12
+8.613099411029346
+22
+3.149869205505735
+32
+3.4627419639275705
+13
+8.613099411029346
+23
+3.149869205505735
+33
+3.4627419639275705
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.608466575397262
+20
+3.087804338305786
+30
+3.4581091282954852
+11
+8.613099411029346
+21
+3.149869205505735
+31
+3.4627419639275705
+12
+8.664926806862336
+22
+3.081230457795461
+32
+3.5145693597605576
+13
+8.664926806862336
+23
+3.081230457795461
+33
+3.5145693597605576
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.664926806862336
+20
+3.081230457795461
+30
+3.5145693597605576
+11
+8.613099411029346
+21
+3.149869205505735
+31
+3.4627419639275705
+12
+8.670694493146872
+22
+3.1431631899971517
+32
+3.5203370460450913
+13
+8.670694493146872
+23
+3.1431631899971517
+33
+3.5203370460450913
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.664926806862336
+20
+3.081230457795461
+30
+3.5145693597605576
+11
+8.670694493146872
+21
+3.1431631899971517
+31
+3.5203370460450913
+12
+8.720711061318589
+22
+3.070317593972734
+32
+3.57035361421681
+13
+8.720711061318589
+23
+3.070317593972734
+33
+3.57035361421681
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.720711061318589
+20
+3.070317593972734
+30
+3.57035361421681
+11
+8.670694493146872
+21
+3.1431631899971517
+31
+3.5203370460450913
+12
+8.7276000111177
+22
+3.132030977611586
+32
+3.577242564015919
+13
+8.7276000111177
+23
+3.132030977611586
+33
+3.577242564015919
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.720711061318589
+20
+3.070317593972734
+30
+3.57035361421681
+11
+8.7276000111177
+21
+3.132030977611586
+31
+3.577242564015919
+12
+8.775486396401288
+22
+3.055130879099793
+32
+3.6251289492995054
+13
+8.775486396401288
+23
+3.055130879099793
+33
+3.6251289492995054
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.775486396401288
+20
+3.055130879099793
+30
+3.6251289492995054
+11
+8.7276000111177
+21
+3.132030977611586
+31
+3.577242564015919
+12
+8.783476330435551
+22
+3.1165390097697028
+32
+3.6331188833337706
+13
+8.783476330435551
+23
+3.1165390097697028
+33
+3.6331188833337706
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.775486396401288
+20
+3.055130879099793
+30
+3.6251289492995054
+11
+8.783476330435551
+21
+3.1165390097697028
+31
+3.6331188833337706
+12
+8.828925891373206
+22
+3.035760953462357
+32
+3.6785684442714257
+13
+8.828925891373206
+23
+3.035760953462357
+33
+3.6785684442714257
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.828925891373206
+20
+3.035760953462357
+30
+3.6785684442714257
+11
+8.783476330435551
+21
+3.1165390097697028
+31
+3.6331188833337706
+12
+8.837989959256406
+22
+3.096779748626954
+32
+3.687632512154624
+13
+8.837989959256406
+23
+3.096779748626954
+33
+3.687632512154624
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.828925891373206
+20
+3.035760953462357
+30
+3.6785684442714257
+11
+8.837989959256406
+21
+3.096779748626954
+31
+3.687632512154624
+12
+8.880710598316162
+22
+3.0123234243928074
+32
+3.7303531512143793
+13
+8.880710598316162
+23
+3.0123234243928074
+33
+3.7303531512143793
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+8.880710598316162
+20
+3.0123234243928074
+30
+3.7303531512143793
+11
+8.837989959256406
+21
+3.096779748626954
+31
+3.687632512154624
+12
+8.890815538808916
+22
+3.072871125223103
+32
+3.740458091707135
+13
+8.890815538808916
+23
+3.072871125223103
+33
+3.740458091707135
+70
+13
+ 0
+3DFACE
+ 8
+cap
+10
+8.880710598316162
+20
+3.0123234243928074
+30
+3.7303531512143793
+11
+8.890815538808916
+21
+3.072871125223103
+31
+3.740458091707135
+12
+9.500000000000002
+22
+2.70267872355089
+32
+4.349642552898214
+13
+9.500000000000002
+23
+2.70267872355089
+33
+4.349642552898214
+70
+3
+ 0
+3DFACE
+ 8
+cap
+10
+9.500000000000002
+20
+2.70267872355089
+30
+4.349642552898214
+11
+8.890815538808916
+21
+3.072871125223103
+31
+3.740458091707135
+12
+9.500000000000005
+22
+2.768278894627561
+32
+4.349642552898219
+13
+9.500000000000005
+23
+2.768278894627561
+33
+4.349642552898219
+70
+1
+ 0
+3DFACE
+ 8
+lens
+10
+7.549999999999994
+20
+-1.9234723584537645
+30
+1.312690181611032
+11
+7.549999999999996
+21
+2.033557928245138
+31
+4.6873245059755515
+12
+7.549999999999996
+22
+-1.9237143674853878
+32
+4.6873245059755515
+13
+7.549999999999996
+23
+-1.9237143674853878
+33
+4.6873245059755515
+70
+1
+ 0
+3DFACE
+ 8
+lens
+10
+7.549999999999996
+20
+2.033557928245138
+30
+4.6873245059755515
+11
+7.549999999999994
+21
+-1.9234723584537645
+31
+1.312690181611032
+12
+7.549999999999995
+22
+2.033799937276761
+32
+1.312690181611032
+13
+7.549999999999995
+23
+2.033799937276761
+33
+1.312690181611032
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.6495190528383337
+20
+0.374999999999997
+30
+-0.37499999999999933
+11
+0.5303300858899189
+21
+0.625000000000002
+31
+-0.5303300858899107
+12
+0.6495190528383366
+22
+0.6250000000000006
+32
+-0.37499999999999933
+13
+0.6495190528383366
+23
+0.6250000000000006
+33
+-0.37499999999999933
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.5303300858899189
+20
+0.625000000000002
+30
+-0.5303300858899107
+11
+0.6495190528383337
+21
+0.374999999999997
+31
+-0.37499999999999933
+12
+0.530330085889916
+22
+0.37499999999999845
+32
+-0.5303300858899107
+13
+0.530330085889916
+23
+0.37499999999999845
+33
+-0.5303300858899107
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7500000000000047
+20
+0.3749999999999958
+30
+-2.220446049250313e-16
+11
+0.7244443697168106
+21
+0.6249999999999997
+31
+-0.19411428382689278
+12
+0.7500000000000075
+22
+0.6249999999999993
+32
+-2.220446049250313e-16
+13
+0.7500000000000075
+23
+0.6249999999999993
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7244443697168106
+20
+0.6249999999999997
+30
+-0.19411428382689278
+11
+0.7500000000000047
+21
+0.3749999999999958
+31
+-2.220446049250313e-16
+12
+0.7244443697168077
+22
+0.3749999999999961
+32
+-0.19411428382689278
+13
+0.7244443697168077
+23
+0.3749999999999961
+33
+-0.19411428382689278
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.37500000000000466
+20
+0.3750000000000002
+30
+-0.6495190528383283
+11
+0.5303300858899189
+21
+0.625000000000002
+31
+-0.5303300858899107
+12
+0.530330085889916
+22
+0.37499999999999845
+32
+-0.5303300858899107
+13
+0.530330085889916
+23
+0.37499999999999845
+33
+-0.5303300858899107
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.5303300858899189
+20
+0.625000000000002
+30
+-0.5303300858899107
+11
+0.37500000000000466
+21
+0.3750000000000002
+31
+-0.6495190528383283
+12
+0.37500000000000755
+22
+0.6250000000000038
+32
+-0.6495190528383283
+13
+0.37500000000000755
+23
+0.6250000000000038
+33
+-0.6495190528383283
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7244443697167984
+20
+0.3750000000000132
+30
+-0.194114283826891
+11
+-0.7499999999999925
+21
+0.6250000000000171
+31
+-2.220446049250313e-16
+12
+-0.7244443697167955
+22
+0.6250000000000168
+32
+-0.194114283826891
+13
+-0.7244443697167955
+23
+0.6250000000000168
+33
+-0.194114283826891
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7499999999999925
+20
+0.6250000000000171
+30
+-2.220446049250313e-16
+11
+-0.7244443697167984
+21
+0.3750000000000132
+31
+-0.194114283826891
+12
+-0.7499999999999953
+22
+0.37500000000001354
+32
+-2.220446049250313e-16
+13
+-0.7499999999999953
+23
+0.37500000000001354
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.19411428382689633
+20
+0.37500000000000233
+30
+-0.7244443697168006
+11
+0.37500000000000755
+21
+0.6250000000000038
+31
+-0.6495190528383283
+12
+0.37500000000000466
+22
+0.3750000000000002
+32
+-0.6495190528383283
+13
+0.37500000000000466
+23
+0.3750000000000002
+33
+-0.6495190528383283
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.37500000000000755
+20
+0.6250000000000038
+30
+-0.6495190528383283
+11
+0.19411428382689633
+21
+0.37500000000000233
+31
+-0.7244443697168006
+12
+0.19411428382689921
+22
+0.625000000000006
+32
+-0.7244443697168006
+13
+0.19411428382689921
+23
+0.625000000000006
+33
+-0.7244443697168006
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.19411428382688056
+20
+0.6250000000000104
+30
+-0.7244443697168006
+11
+0.19411428382689921
+21
+0.625000000000006
+31
+-0.7244443697168006
+12
+7.549516567451064e-15
+22
+0.6250000000000082
+32
+-0.7499999999999993
+13
+7.549516567451064e-15
+23
+0.6250000000000082
+33
+-0.7499999999999993
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.19411428382689921
+20
+0.625000000000006
+30
+-0.7244443697168006
+11
+-0.19411428382688056
+21
+0.6250000000000104
+31
+-0.7244443697168006
+12
+-0.37499999999999245
+22
+0.6250000000000127
+32
+-0.6495190528383283
+13
+-0.37499999999999245
+23
+0.6250000000000127
+33
+-0.6495190528383283
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+0.19411428382689921
+20
+0.625000000000006
+30
+-0.7244443697168006
+11
+-0.37499999999999245
+21
+0.6250000000000127
+31
+-0.6495190528383283
+12
+0.37500000000000755
+22
+0.6250000000000038
+32
+-0.6495190528383283
+13
+0.37500000000000755
+23
+0.6250000000000038
+33
+-0.6495190528383283
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.37500000000000755
+20
+0.6250000000000038
+30
+-0.6495190528383283
+11
+-0.37499999999999245
+21
+0.6250000000000127
+31
+-0.6495190528383283
+12
+-0.5303300858899038
+22
+0.6250000000000144
+32
+-0.5303300858899107
+13
+-0.5303300858899038
+23
+0.6250000000000144
+33
+-0.5303300858899107
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+0.37500000000000755
+20
+0.6250000000000038
+30
+-0.6495190528383283
+11
+-0.5303300858899038
+21
+0.6250000000000144
+31
+-0.5303300858899107
+12
+0.5303300858899189
+22
+0.625000000000002
+32
+-0.5303300858899107
+13
+0.5303300858899189
+23
+0.625000000000002
+33
+-0.5303300858899107
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.5303300858899189
+20
+0.625000000000002
+30
+-0.5303300858899107
+11
+-0.5303300858899038
+21
+0.6250000000000144
+31
+-0.5303300858899107
+12
+-0.6495190528383215
+22
+0.6250000000000159
+32
+-0.37499999999999933
+13
+-0.6495190528383215
+23
+0.6250000000000159
+33
+-0.37499999999999933
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+0.5303300858899189
+20
+0.625000000000002
+30
+-0.5303300858899107
+11
+-0.6495190528383215
+21
+0.6250000000000159
+31
+-0.37499999999999933
+12
+0.6495190528383366
+22
+0.6250000000000006
+32
+-0.37499999999999933
+13
+0.6495190528383366
+23
+0.6250000000000006
+33
+-0.37499999999999933
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.6495190528383366
+20
+0.6250000000000006
+30
+-0.37499999999999933
+11
+-0.6495190528383215
+21
+0.6250000000000159
+31
+-0.37499999999999933
+12
+-0.7244443697167955
+22
+0.6250000000000168
+32
+-0.194114283826891
+13
+-0.7244443697167955
+23
+0.6250000000000168
+33
+-0.194114283826891
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+0.6495190528383366
+20
+0.6250000000000006
+30
+-0.37499999999999933
+11
+-0.7244443697167955
+21
+0.6250000000000168
+31
+-0.194114283826891
+12
+0.7244443697168106
+22
+0.6249999999999997
+32
+-0.19411428382689278
+13
+0.7244443697168106
+23
+0.6249999999999997
+33
+-0.19411428382689278
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7244443697168106
+20
+0.6249999999999997
+30
+-0.19411428382689278
+11
+-0.7244443697167955
+21
+0.6250000000000168
+31
+-0.194114283826891
+12
+0.7500000000000075
+22
+0.6249999999999993
+32
+-2.220446049250313e-16
+13
+0.7500000000000075
+23
+0.6249999999999993
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7500000000000075
+20
+0.6249999999999993
+30
+-2.220446049250313e-16
+11
+-0.7244443697167955
+21
+0.6250000000000168
+31
+-0.194114283826891
+12
+-0.7499999999999925
+22
+0.6250000000000171
+32
+-2.220446049250313e-16
+13
+-0.7499999999999925
+23
+0.6250000000000171
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.5303300858899067
+20
+0.3750000000000109
+30
+-0.5303300858899107
+11
+-0.37499999999999245
+21
+0.6250000000000127
+31
+-0.6495190528383283
+12
+-0.37499999999999534
+22
+0.3750000000000091
+32
+-0.6495190528383283
+13
+-0.37499999999999534
+23
+0.3750000000000091
+33
+-0.6495190528383283
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.37499999999999245
+20
+0.6250000000000127
+30
+-0.6495190528383283
+11
+-0.5303300858899067
+21
+0.3750000000000109
+31
+-0.5303300858899107
+12
+-0.5303300858899038
+22
+0.6250000000000144
+32
+-0.5303300858899107
+13
+-0.5303300858899038
+23
+0.6250000000000144
+33
+-0.5303300858899107
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.5303300858899067
+20
+0.3750000000000109
+30
+-0.5303300858899107
+11
+-0.6495190528383215
+21
+0.6250000000000159
+31
+-0.37499999999999933
+12
+-0.5303300858899038
+22
+0.6250000000000144
+32
+-0.5303300858899107
+13
+-0.5303300858899038
+23
+0.6250000000000144
+33
+-0.5303300858899107
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.6495190528383215
+20
+0.6250000000000159
+30
+-0.37499999999999933
+11
+-0.5303300858899067
+21
+0.3750000000000109
+31
+-0.5303300858899107
+12
+-0.6495190528383243
+22
+0.3750000000000123
+32
+-0.37499999999999933
+13
+-0.6495190528383243
+23
+0.3750000000000123
+33
+-0.37499999999999933
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.37499999999999534
+20
+0.3750000000000091
+30
+-0.6495190528383283
+11
+-0.19411428382688056
+21
+0.6250000000000104
+31
+-0.7244443697168006
+12
+-0.19411428382688345
+22
+0.375000000000007
+32
+-0.7244443697168006
+13
+-0.19411428382688345
+23
+0.375000000000007
+33
+-0.7244443697168006
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.19411428382688056
+20
+0.6250000000000104
+30
+-0.7244443697168006
+11
+-0.37499999999999534
+21
+0.3750000000000091
+31
+-0.6495190528383283
+12
+-0.37499999999999245
+22
+0.6250000000000127
+32
+-0.6495190528383283
+13
+-0.37499999999999245
+23
+0.6250000000000127
+33
+-0.6495190528383283
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.19411428382688345
+20
+0.375000000000007
+30
+-0.7244443697168006
+11
+7.549516567451064e-15
+21
+0.6250000000000082
+31
+-0.7499999999999993
+12
+4.6629367034256575e-15
+22
+0.37500000000000466
+32
+-0.7499999999999993
+13
+4.6629367034256575e-15
+23
+0.37500000000000466
+33
+-0.7499999999999993
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+7.549516567451064e-15
+20
+0.6250000000000082
+30
+-0.7499999999999993
+11
+-0.19411428382688345
+21
+0.375000000000007
+31
+-0.7244443697168006
+12
+-0.19411428382688056
+22
+0.6250000000000104
+32
+-0.7244443697168006
+13
+-0.19411428382688056
+23
+0.6250000000000104
+33
+-0.7244443697168006
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7244443697168077
+20
+0.3749999999999961
+30
+-0.19411428382689278
+11
+0.6495190528383366
+21
+0.6250000000000006
+31
+-0.37499999999999933
+12
+0.7244443697168106
+22
+0.6249999999999997
+32
+-0.19411428382689278
+13
+0.7244443697168106
+23
+0.6249999999999997
+33
+-0.19411428382689278
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.6495190528383366
+20
+0.6250000000000006
+30
+-0.37499999999999933
+11
+0.7244443697168077
+21
+0.3749999999999961
+31
+-0.19411428382689278
+12
+0.6495190528383337
+22
+0.374999999999997
+32
+-0.37499999999999933
+13
+0.6495190528383337
+23
+0.374999999999997
+33
+-0.37499999999999933
+70
+1
+ 0
+LINE
+ 8
+hinge
+10
+-0.9999999999999996
+20
+1.6431300764452317e-14
+30
+0.9999999999999996
+11
+1.0000000000000002
+21
+-7.105427357601002e-15
+31
+0.9999999999999996
+ 0
+3DFACE
+ 8
+hinge
+10
+4.6629367034256575e-15
+20
+0.37500000000000466
+30
+-0.7499999999999993
+11
+0.19411428382689921
+21
+0.625000000000006
+31
+-0.7244443697168006
+12
+0.19411428382689633
+22
+0.37500000000000233
+32
+-0.7244443697168006
+13
+0.19411428382689633
+23
+0.37500000000000233
+33
+-0.7244443697168006
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.19411428382689921
+20
+0.625000000000006
+30
+-0.7244443697168006
+11
+4.6629367034256575e-15
+21
+0.37500000000000466
+31
+-0.7499999999999993
+12
+7.549516567451064e-15
+22
+0.6250000000000082
+32
+-0.7499999999999993
+13
+7.549516567451064e-15
+23
+0.6250000000000082
+33
+-0.7499999999999993
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.6495190528383243
+20
+0.3750000000000123
+30
+-0.37499999999999933
+11
+-0.7244443697167955
+21
+0.6250000000000168
+31
+-0.194114283826891
+12
+-0.6495190528383215
+22
+0.6250000000000159
+32
+-0.37499999999999933
+13
+-0.6495190528383215
+23
+0.6250000000000159
+33
+-0.37499999999999933
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7244443697167955
+20
+0.6250000000000168
+30
+-0.194114283826891
+11
+-0.6495190528383243
+21
+0.3750000000000123
+31
+-0.37499999999999933
+12
+-0.7244443697167984
+22
+0.3750000000000132
+32
+-0.194114283826891
+13
+-0.7244443697167984
+23
+0.3750000000000132
+33
+-0.194114283826891
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.19411428382689633
+20
+0.37500000000000233
+30
+-0.7244443697168006
+11
+-0.19411428382688345
+21
+0.375000000000007
+31
+-0.7244443697168006
+12
+4.6629367034256575e-15
+22
+0.37500000000000466
+32
+-0.7499999999999993
+13
+4.6629367034256575e-15
+23
+0.37500000000000466
+33
+-0.7499999999999993
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.19411428382688345
+20
+0.375000000000007
+30
+-0.7244443697168006
+11
+0.19411428382689633
+21
+0.37500000000000233
+31
+-0.7244443697168006
+12
+0.37500000000000466
+22
+0.3750000000000002
+32
+-0.6495190528383283
+13
+0.37500000000000466
+23
+0.3750000000000002
+33
+-0.6495190528383283
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.19411428382688345
+20
+0.375000000000007
+30
+-0.7244443697168006
+11
+0.37500000000000466
+21
+0.3750000000000002
+31
+-0.6495190528383283
+12
+-0.37499999999999534
+22
+0.3750000000000091
+32
+-0.6495190528383283
+13
+-0.37499999999999534
+23
+0.3750000000000091
+33
+-0.6495190528383283
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.37499999999999534
+20
+0.3750000000000091
+30
+-0.6495190528383283
+11
+0.37500000000000466
+21
+0.3750000000000002
+31
+-0.6495190528383283
+12
+0.530330085889916
+22
+0.37499999999999845
+32
+-0.5303300858899107
+13
+0.530330085889916
+23
+0.37499999999999845
+33
+-0.5303300858899107
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.37499999999999534
+20
+0.3750000000000091
+30
+-0.6495190528383283
+11
+0.530330085889916
+21
+0.37499999999999845
+31
+-0.5303300858899107
+12
+-0.5303300858899067
+22
+0.3750000000000109
+32
+-0.5303300858899107
+13
+-0.5303300858899067
+23
+0.3750000000000109
+33
+-0.5303300858899107
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.5303300858899067
+20
+0.3750000000000109
+30
+-0.5303300858899107
+11
+0.530330085889916
+21
+0.37499999999999845
+31
+-0.5303300858899107
+12
+0.6495190528383337
+22
+0.374999999999997
+32
+-0.37499999999999933
+13
+0.6495190528383337
+23
+0.374999999999997
+33
+-0.37499999999999933
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.5303300858899067
+20
+0.3750000000000109
+30
+-0.5303300858899107
+11
+0.6495190528383337
+21
+0.374999999999997
+31
+-0.37499999999999933
+12
+-0.6495190528383243
+22
+0.3750000000000123
+32
+-0.37499999999999933
+13
+-0.6495190528383243
+23
+0.3750000000000123
+33
+-0.37499999999999933
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.6495190528383243
+20
+0.3750000000000123
+30
+-0.37499999999999933
+11
+0.6495190528383337
+21
+0.374999999999997
+31
+-0.37499999999999933
+12
+0.7244443697168077
+22
+0.3749999999999961
+32
+-0.19411428382689278
+13
+0.7244443697168077
+23
+0.3749999999999961
+33
+-0.19411428382689278
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.6495190528383243
+20
+0.3750000000000123
+30
+-0.37499999999999933
+11
+0.7244443697168077
+21
+0.3749999999999961
+31
+-0.19411428382689278
+12
+-0.7244443697167984
+22
+0.3750000000000132
+32
+-0.194114283826891
+13
+-0.7244443697167984
+23
+0.3750000000000132
+33
+-0.194114283826891
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7244443697167984
+20
+0.3750000000000132
+30
+-0.194114283826891
+11
+0.7244443697168077
+21
+0.3749999999999961
+31
+-0.19411428382689278
+12
+0.7500000000000047
+22
+0.3749999999999958
+32
+-2.220446049250313e-16
+13
+0.7500000000000047
+23
+0.3749999999999958
+33
+-2.220446049250313e-16
+70
+13
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7244443697167984
+20
+0.3750000000000132
+30
+-0.194114283826891
+11
+0.7500000000000047
+21
+0.3749999999999958
+31
+-2.220446049250313e-16
+12
+-0.7499999999999953
+22
+0.37500000000001354
+32
+-2.220446049250313e-16
+13
+-0.7499999999999953
+23
+0.37500000000001354
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.9999999999999996
+20
+1.6431300764452317e-14
+30
+-2.220446049250313e-16
+11
+0.9659258262890719
+21
+0.2588190451025134
+31
+-2.220446049250313e-16
+12
+1.0000000000000002
+22
+-7.105427357601002e-15
+32
+-2.220446049250313e-16
+13
+1.0000000000000002
+23
+-7.105427357601002e-15
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.9659258262890719
+20
+0.2588190451025134
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+0.8660254037844454
+22
+0.4999999999999938
+32
+-2.220446049250313e-16
+13
+0.8660254037844454
+23
+0.4999999999999938
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.8660254037844454
+20
+0.4999999999999938
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+0.7071067811865565
+22
+0.7071067811865436
+32
+-2.220446049250313e-16
+13
+0.7071067811865565
+23
+0.7071067811865436
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7071067811865565
+20
+0.7071067811865436
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+0.5000000000000104
+22
+0.8660254037844374
+32
+-2.220446049250313e-16
+13
+0.5000000000000104
+23
+0.8660254037844374
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.5000000000000104
+20
+0.8660254037844374
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+0.2588190451025332
+22
+0.9659258262890692
+32
+-2.220446049250313e-16
+13
+0.2588190451025332
+23
+0.9659258262890692
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+0.2588190451025332
+20
+0.9659258262890692
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+1.199040866595169e-14
+22
+1.0000000000000047
+32
+-2.220446049250313e-16
+13
+1.199040866595169e-14
+23
+1.0000000000000047
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+1.199040866595169e-14
+20
+1.0000000000000047
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+-0.2588190451025092
+22
+0.965925826289077
+32
+-2.220446049250313e-16
+13
+-0.2588190451025092
+23
+0.965925826289077
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.2588190451025092
+20
+0.965925826289077
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+-0.49999999999998956
+22
+0.8660254037844491
+32
+-2.220446049250313e-16
+13
+-0.49999999999998956
+23
+0.8660254037844491
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.49999999999998956
+20
+0.8660254037844491
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+-0.7071067811865395
+22
+0.7071067811865602
+32
+-2.220446049250313e-16
+13
+-0.7071067811865395
+23
+0.7071067811865602
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7071067811865395
+20
+0.7071067811865602
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+-0.8660254037844322
+22
+0.5000000000000151
+32
+-2.220446049250313e-16
+13
+-0.8660254037844322
+23
+0.5000000000000151
+33
+-2.220446049250313e-16
+70
+3
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.8660254037844322
+20
+0.5000000000000151
+30
+-2.220446049250313e-16
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+-0.9659258262890644
+22
+0.25881904510253695
+32
+-2.220446049250313e-16
+13
+-0.9659258262890644
+23
+0.25881904510253695
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+1.199040866595169e-14
+20
+1.0000000000000047
+30
+0.9999999999999996
+11
+0.2588190451025332
+21
+0.9659258262890692
+31
+-2.220446049250313e-16
+12
+1.199040866595169e-14
+22
+1.0000000000000047
+32
+-2.220446049250313e-16
+13
+1.199040866595169e-14
+23
+1.0000000000000047
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.2588190451025332
+20
+0.9659258262890692
+30
+-2.220446049250313e-16
+11
+1.199040866595169e-14
+21
+1.0000000000000047
+31
+0.9999999999999996
+12
+0.2588190451025332
+22
+0.9659258262890692
+32
+0.9999999999999996
+13
+0.2588190451025332
+23
+0.9659258262890692
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7071067811865395
+20
+0.7071067811865602
+30
+0.9999999999999996
+11
+-0.49999999999998956
+21
+0.8660254037844491
+31
+-2.220446049250313e-16
+12
+-0.7071067811865395
+22
+0.7071067811865602
+32
+-2.220446049250313e-16
+13
+-0.7071067811865395
+23
+0.7071067811865602
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.49999999999998956
+20
+0.8660254037844491
+30
+-2.220446049250313e-16
+11
+-0.7071067811865395
+21
+0.7071067811865602
+31
+0.9999999999999996
+12
+-0.49999999999998956
+22
+0.8660254037844491
+32
+0.9999999999999996
+13
+-0.49999999999998956
+23
+0.8660254037844491
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.49999999999998956
+20
+0.8660254037844491
+30
+0.9999999999999996
+11
+-0.2588190451025092
+21
+0.965925826289077
+31
+-2.220446049250313e-16
+12
+-0.49999999999998956
+22
+0.8660254037844491
+32
+-2.220446049250313e-16
+13
+-0.49999999999998956
+23
+0.8660254037844491
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.2588190451025092
+20
+0.965925826289077
+30
+-2.220446049250313e-16
+11
+-0.49999999999998956
+21
+0.8660254037844491
+31
+0.9999999999999996
+12
+-0.2588190451025092
+22
+0.965925826289077
+32
+0.9999999999999996
+13
+-0.2588190451025092
+23
+0.965925826289077
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.2588190451025332
+20
+0.9659258262890692
+30
+0.9999999999999996
+11
+0.5000000000000104
+21
+0.8660254037844374
+31
+-2.220446049250313e-16
+12
+0.2588190451025332
+22
+0.9659258262890692
+32
+-2.220446049250313e-16
+13
+0.2588190451025332
+23
+0.9659258262890692
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.5000000000000104
+20
+0.8660254037844374
+30
+-2.220446049250313e-16
+11
+0.2588190451025332
+21
+0.9659258262890692
+31
+0.9999999999999996
+12
+0.5000000000000104
+22
+0.8660254037844374
+32
+0.9999999999999996
+13
+0.5000000000000104
+23
+0.8660254037844374
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+1.0000000000000002
+20
+-7.105427357601002e-15
+30
+0.9999999999999996
+11
+0.9659258262890719
+21
+0.2588190451025134
+31
+-2.220446049250313e-16
+12
+0.9659258262890719
+22
+0.2588190451025134
+32
+0.9999999999999996
+13
+0.9659258262890719
+23
+0.2588190451025134
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.9659258262890719
+20
+0.2588190451025134
+30
+-2.220446049250313e-16
+11
+1.0000000000000002
+21
+-7.105427357601002e-15
+31
+0.9999999999999996
+12
+1.0000000000000002
+22
+-7.105427357601002e-15
+32
+-2.220446049250313e-16
+13
+1.0000000000000002
+23
+-7.105427357601002e-15
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.8660254037844454
+20
+0.4999999999999938
+30
+0.9999999999999996
+11
+0.7071067811865565
+21
+0.7071067811865436
+31
+-2.220446049250313e-16
+12
+0.7071067811865565
+22
+0.7071067811865436
+32
+0.9999999999999996
+13
+0.7071067811865565
+23
+0.7071067811865436
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7071067811865565
+20
+0.7071067811865436
+30
+-2.220446049250313e-16
+11
+0.8660254037844454
+21
+0.4999999999999938
+31
+0.9999999999999996
+12
+0.8660254037844454
+22
+0.4999999999999938
+32
+-2.220446049250313e-16
+13
+0.8660254037844454
+23
+0.4999999999999938
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.2588190451025092
+20
+0.965925826289077
+30
+0.9999999999999996
+11
+1.199040866595169e-14
+21
+1.0000000000000047
+31
+-2.220446049250313e-16
+12
+-0.2588190451025092
+22
+0.965925826289077
+32
+-2.220446049250313e-16
+13
+-0.2588190451025092
+23
+0.965925826289077
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+1.199040866595169e-14
+20
+1.0000000000000047
+30
+-2.220446049250313e-16
+11
+-0.2588190451025092
+21
+0.965925826289077
+31
+0.9999999999999996
+12
+1.199040866595169e-14
+22
+1.0000000000000047
+32
+0.9999999999999996
+13
+1.199040866595169e-14
+23
+1.0000000000000047
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.9659258262890644
+20
+0.25881904510253695
+30
+-2.220446049250313e-16
+11
+-0.8660254037844322
+21
+0.5000000000000151
+31
+0.9999999999999996
+12
+-0.8660254037844322
+22
+0.5000000000000151
+32
+-2.220446049250313e-16
+13
+-0.8660254037844322
+23
+0.5000000000000151
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.8660254037844322
+20
+0.5000000000000151
+30
+0.9999999999999996
+11
+-0.9659258262890644
+21
+0.25881904510253695
+31
+-2.220446049250313e-16
+12
+-0.9659258262890644
+22
+0.25881904510253695
+32
+0.9999999999999996
+13
+-0.9659258262890644
+23
+0.25881904510253695
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.8660254037844322
+20
+0.5000000000000151
+30
+-2.220446049250313e-16
+11
+-0.7071067811865395
+21
+0.7071067811865602
+31
+0.9999999999999996
+12
+-0.7071067811865395
+22
+0.7071067811865602
+32
+-2.220446049250313e-16
+13
+-0.7071067811865395
+23
+0.7071067811865602
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.7071067811865395
+20
+0.7071067811865602
+30
+0.9999999999999996
+11
+-0.8660254037844322
+21
+0.5000000000000151
+31
+-2.220446049250313e-16
+12
+-0.8660254037844322
+22
+0.5000000000000151
+32
+0.9999999999999996
+13
+-0.8660254037844322
+23
+0.5000000000000151
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.5000000000000104
+20
+0.8660254037844374
+30
+0.9999999999999996
+11
+0.7071067811865565
+21
+0.7071067811865436
+31
+-2.220446049250313e-16
+12
+0.5000000000000104
+22
+0.8660254037844374
+32
+-2.220446049250313e-16
+13
+0.5000000000000104
+23
+0.8660254037844374
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.7071067811865565
+20
+0.7071067811865436
+30
+-2.220446049250313e-16
+11
+0.5000000000000104
+21
+0.8660254037844374
+31
+0.9999999999999996
+12
+0.7071067811865565
+22
+0.7071067811865436
+32
+0.9999999999999996
+13
+0.7071067811865565
+23
+0.7071067811865436
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.9659258262890719
+20
+0.2588190451025134
+30
+0.9999999999999996
+11
+0.8660254037844454
+21
+0.4999999999999938
+31
+-2.220446049250313e-16
+12
+0.8660254037844454
+22
+0.4999999999999938
+32
+0.9999999999999996
+13
+0.8660254037844454
+23
+0.4999999999999938
+33
+0.9999999999999996
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+0.8660254037844454
+20
+0.4999999999999938
+30
+-2.220446049250313e-16
+11
+0.9659258262890719
+21
+0.2588190451025134
+31
+0.9999999999999996
+12
+0.9659258262890719
+22
+0.2588190451025134
+32
+-2.220446049250313e-16
+13
+0.9659258262890719
+23
+0.2588190451025134
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.9999999999999996
+20
+1.6431300764452317e-14
+30
+-2.220446049250313e-16
+11
+-0.9659258262890644
+21
+0.25881904510253695
+31
+0.9999999999999996
+12
+-0.9659258262890644
+22
+0.25881904510253695
+32
+-2.220446049250313e-16
+13
+-0.9659258262890644
+23
+0.25881904510253695
+33
+-2.220446049250313e-16
+70
+1
+ 0
+3DFACE
+ 8
+hinge
+10
+-0.9659258262890644
+20
+0.25881904510253695
+30
+0.9999999999999996
+11
+-0.9999999999999996
+21
+1.6431300764452317e-14
+31
+-2.220446049250313e-16
+12
+-0.9999999999999996
+22
+1.6431300764452317e-14
+32
+0.9999999999999996
+13
+-0.9999999999999996
+23
+1.6431300764452317e-14
+33
+0.9999999999999996
+70
+1
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/hacks/glx/shark.c b/hacks/glx/shark.c
new file mode 100644
index 0000000..682ed6e
--- /dev/null
+++ b/hacks/glx/shark.c
@@ -0,0 +1,1395 @@
+/* atlantis --- Shows moving 3D sea animals */
+
+#if 0
+static const char sccsid[] = "@(#)shark.c 1.2 98/06/16 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 1998. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Mark J. Kilgard
+ * as a demo for openGL programming.
+ *
+ * Porting it to xlock was possible by comparing the original Mesa's morph3d
+ * demo with it's ported version to xlock, so thanks for Marcelo F. Vianna
+ * (look at morph3d.c) for his indirect help.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * My e-mail address is lassauge@users.sourceforge.net
+ *
+ * Eric Lassauge (May-13-1998)
+ *
+ */
+
+/**
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+#ifdef USE_GL
+
+#include "atlantis.h"
+
+/* *INDENT-OFF* */
+#if 0
+static const float N001[3] = {0, 1, 0};
+#endif
+static const float N002[3] = {0.000077, -0.020611, 0.999788};
+static const float N003[3] = {0.961425, 0.258729, -0.09339};
+static const float N004[3] = {0.510811, -0.769633, -0.383063};
+static const float N005[3] = {0.400123, 0.855734, -0.328055};
+static const float N006[3] = {-0.770715, 0.610204, -0.18344};
+static const float N007[3] = {-0.915597, -0.373345, -0.149316};
+static const float N008[3] = {-0.972788, 0.208921, -0.100179};
+static const float N009[3] = {-0.939713, -0.312268, -0.139383};
+static const float N010[3] = {-0.624138, -0.741047, -0.247589};
+static const float N011[3] = {0.591434, -0.768401, -0.244471};
+static const float N012[3] = {0.935152, -0.328495, -0.132598};
+static const float N013[3] = {0.997102, 0.074243, -0.016593};
+static const float N014[3] = {0.969995, 0.241712, -0.026186};
+static const float N015[3] = {0.844539, 0.502628, -0.184714};
+static const float N016[3] = {-0.906608, 0.386308, -0.169787};
+static const float N017[3] = {-0.970016, 0.241698, -0.025516};
+static const float N018[3] = {-0.998652, 0.050493, -0.012045};
+static const float N019[3] = {-0.942685, -0.333051, -0.020556};
+static const float N020[3] = {-0.660944, -0.750276, 0.01548};
+static const float N021[3] = {0.503549, -0.862908, -0.042749};
+static const float N022[3] = {0.953202, -0.302092, -0.012089};
+static const float N023[3] = {0.998738, 0.023574, 0.044344};
+static const float N024[3] = {0.979297, 0.193272, 0.060202};
+static const float N025[3] = {0.7983, 0.464885, 0.382883};
+static const float N026[3] = {-0.75659, 0.452403, 0.472126};
+static const float N027[3] = {-0.953855, 0.293003, 0.065651};
+static const float N028[3] = {-0.998033, 0.040292, 0.048028};
+static const float N029[3] = {-0.977079, -0.204288, 0.059858};
+static const float N030[3] = {-0.729117, -0.675304, 0.11114};
+static const float N031[3] = {0.598361, -0.792753, 0.116221};
+static const float N032[3] = {0.965192, -0.252991, 0.066332};
+static const float N033[3] = {0.998201, -0.00279, 0.059892};
+static const float N034[3] = {0.978657, 0.193135, 0.070207};
+static const float N035[3] = {0.718815, 0.680392, 0.142733};
+static const float N036[3] = {-0.383096, 0.906212, 0.178936};
+static const float N037[3] = {-0.952831, 0.29259, 0.080647};
+static const float N038[3] = {-0.99768, 0.032417, 0.059861};
+static const float N039[3] = {-0.982629, -0.169881, 0.0747};
+static const float N040[3] = {-0.695424, -0.703466, 0.1467};
+static const float N041[3] = {0.359323, -0.915531, 0.180805};
+static const float N042[3] = {0.943356, -0.319387, 0.089842};
+static const float N043[3] = {0.998272, -0.032435, 0.048993};
+static const float N044[3] = {0.978997, 0.193205, 0.065084};
+static const float N045[3] = {0.872144, 0.470094, -0.135565};
+static const float N046[3] = {-0.664282, 0.737945, -0.119027};
+static const float N047[3] = {-0.954508, 0.28857, 0.075107};
+static const float N048[3] = {-0.998273, 0.032406, 0.048993};
+static const float N049[3] = {-0.979908, -0.193579, 0.048038};
+static const float N050[3] = {-0.858736, -0.507202, -0.072938};
+static const float N051[3] = {0.643545, -0.763887, -0.048237};
+static const float N052[3] = {0.95558, -0.288954, 0.058068};
+#if 0
+static const float N053[3] = {0, 1, 0};
+static const float N054[3] = {0, 1, 0};
+static const float N055[3] = {0, 1, 0};
+static const float N056[3] = {0, 1, 0};
+static const float N057[3] = {0, 1, 0};
+#endif
+static const float N058[3] = {0.00005, 0.793007, -0.609213};
+static const float N059[3] = {0.91351, 0.235418, -0.331779};
+static const float N060[3] = {-0.80797, 0.495, -0.319625};
+static const float N061[3] = {0, 0.784687, -0.619892};
+static const float N062[3] = {0, -1, 0};
+static const float N063[3] = {0, 1, 0};
+static const float N064[3] = {0, 1, 0};
+static const float N065[3] = {0, 1, 0};
+static const float N066[3] = {-0.055784, 0.257059, 0.964784};
+#if 0
+static const float N067[3] = {0, 1, 0};
+static const float N068[3] = {0, 1, 0};
+#endif
+static const float N069[3] = {-0.000505, -0.929775, -0.368127};
+static const float N070[3] = {0, 1, 0};
+#if 0
+static const float N071[3] = {-0.987102, 0.131723, -0.090984};
+static const float N072[3] = {-0.987102, 0.131723, -0.090984};
+static const float N073[3] = {-0.987102, 0.131723, -0.090984};
+static const float N074[3] = {0, 1, 0};
+static const float N075[3] = {0, 1, 0};
+static const float N076[3] = {0, 1, 0};
+static const float N077[3] = {0.99521, 0.071962, -0.066168};
+static const float N078[3] = {0.99521, 0.071962, -0.066168};
+static const float N079[3] = {0.99521, 0.071962, -0.066168};
+static const float N080[3] = {0, 1, 0};
+static const float N081[3] = {0, 1, 0};
+static const float N082[3] = {0, 1, 0};
+static const float P001[3] = {0, 0, 0};
+#endif
+static float P002[3] = {0, -36.59, 5687.72};
+static const float P003[3] = {90, 114.73, 724.38};
+static float P004[3] = {58.24, -146.84, 262.35};
+static const float P005[3] = {27.81, 231.52, 510.43};
+static const float P006[3] = {-27.81, 230.43, 509.76};
+static float P007[3] = {-46.09, -146.83, 265.84};
+static const float P008[3] = {-90, 103.84, 718.53};
+static const float P009[3] = {-131.1, -165.92, 834.85};
+static float P010[3] = {-27.81, -285.31, 500};
+static float P011[3] = {27.81, -285.32, 500};
+static const float P012[3] = {147.96, -170.89, 845.5};
+static const float P013[3] = {180, 0, 2000};
+static const float P014[3] = {145.62, 352.67, 2000};
+static const float P015[3] = {55.62, 570.63, 2000};
+static const float P016[3] = {-55.62, 570.64, 2000};
+static const float P017[3] = {-145.62, 352.68, 2000};
+static const float P018[3] = {-180, 0.01, 2000};
+static const float P019[3] = {-178.2, -352.66, 2001.61};
+static const float P020[3] = {-55.63, -570.63, 2000};
+static const float P021[3] = {55.62, -570.64, 2000};
+static const float P022[3] = {179.91, -352.69, 1998.39};
+static float P023[3] = {150, 0, 3000};
+static float P024[3] = {121.35, 293.89, 3000};
+static float P025[3] = {46.35, 502.93, 2883.09};
+static float P026[3] = {-46.35, 497.45, 2877.24};
+static float P027[3] = {-121.35, 293.9, 3000};
+static float P028[3] = {-150, 0, 3000};
+static float P029[3] = {-152.21, -304.84, 2858.68};
+static float P030[3] = {-46.36, -475.52, 3000};
+static float P031[3] = {46.35, -475.53, 3000};
+static float P032[3] = {155.64, -304.87, 2863.5};
+static float P033[3] = {90, 0, 4000};
+static float P034[3] = {72.81, 176.33, 4000};
+static float P035[3] = {27.81, 285.32, 4000};
+static float P036[3] = {-27.81, 285.32, 4000};
+static float P037[3] = {-72.81, 176.34, 4000};
+static float P038[3] = {-90, 0, 4000};
+static float P039[3] = {-72.81, -176.33, 4000};
+static float P040[3] = {-27.81, -285.31, 4000};
+static float P041[3] = {27.81, -285.32, 4000};
+static float P042[3] = {72.81, -176.34, 4000};
+static float P043[3] = {30, 0, 5000};
+static float P044[3] = {24.27, 58.78, 5000};
+static float P045[3] = {9.27, 95.11, 5000};
+static float P046[3] = {-9.27, 95.11, 5000};
+static float P047[3] = {-24.27, 58.78, 5000};
+static float P048[3] = {-30, 0, 5000};
+static float P049[3] = {-24.27, -58.78, 5000};
+static float P050[3] = {-9.27, -95.1, 5000};
+static float P051[3] = {9.27, -95.11, 5000};
+static float P052[3] = {24.27, -58.78, 5000};
+#if 0
+static const float P053[3] = {0, 0, 0};
+static const float P054[3] = {0, 0, 0};
+static const float P055[3] = {0, 0, 0};
+static const float P056[3] = {0, 0, 0};
+static const float P057[3] = {0, 0, 0};
+#endif
+static const float P058[3] = {0, 1212.72, 2703.08};
+static const float P059[3] = {50.36, 0, 108.14};
+static const float P060[3] = {-22.18, 0, 108.14};
+static float P061[3] = {0, 1181.61, 6344.65};
+static const float P062[3] = {516.45, -887.08, 2535.45};
+static const float P063[3] = {-545.69, -879.31, 2555.63};
+static const float P064[3] = {618.89, -1005.64, 2988.32};
+static const float P065[3] = {-635.37, -1014.79, 2938.68};
+static const float P066[3] = {0, 1374.43, 3064.18};
+#if 0
+static const float P067[3] = {158.49, -11.89, 1401.56};
+static const float P068[3] = {-132.08, -17.9, 1394.31};
+#endif
+static float P069[3] = {0, -418.25, 5765.04};
+static float P070[3] = {0, 1266.91, 6629.6};
+static const float P071[3] = {-139.12, -124.96, 997.98};
+static const float P072[3] = {-139.24, -110.18, 1020.68};
+static const float P073[3] = {-137.33, -94.52, 1022.63};
+static const float P074[3] = {-137.03, -79.91, 996.89};
+static const float P075[3] = {-135.21, -91.48, 969.14};
+static const float P076[3] = {-135.39, -110.87, 968.76};
+static const float P077[3] = {150.23, -78.44, 995.53};
+static const float P078[3] = {152.79, -92.76, 1018.46};
+static const float P079[3] = {154.19, -110.2, 1020.55};
+static const float P080[3] = {151.33, -124.15, 993.77};
+static const float P081[3] = {150.49, -111.19, 969.86};
+static const float P082[3] = {150.79, -92.41, 969.7};
+static const float iP002[3] = {0, -36.59, 5687.72};
+static const float iP004[3] = {58.24, -146.84, 262.35};
+static const float iP007[3] = {-46.09, -146.83, 265.84};
+static const float iP010[3] = {-27.81, -285.31, 500};
+static const float iP011[3] = {27.81, -285.32, 500};
+static const float iP023[3] = {150, 0, 3000};
+static const float iP024[3] = {121.35, 293.89, 3000};
+static const float iP025[3] = {46.35, 502.93, 2883.09};
+static const float iP026[3] = {-46.35, 497.45, 2877.24};
+static const float iP027[3] = {-121.35, 293.9, 3000};
+static const float iP028[3] = {-150, 0, 3000};
+static const float iP029[3] = {-121.35, -304.84, 2853.86};
+static const float iP030[3] = {-46.36, -475.52, 3000};
+static const float iP031[3] = {46.35, -475.53, 3000};
+static const float iP032[3] = {121.35, -304.87, 2853.86};
+static const float iP033[3] = {90, 0, 4000};
+static const float iP034[3] = {72.81, 176.33, 4000};
+static const float iP035[3] = {27.81, 285.32, 4000};
+static const float iP036[3] = {-27.81, 285.32, 4000};
+static const float iP037[3] = {-72.81, 176.34, 4000};
+static const float iP038[3] = {-90, 0, 4000};
+static const float iP039[3] = {-72.81, -176.33, 4000};
+static const float iP040[3] = {-27.81, -285.31, 4000};
+static const float iP041[3] = {27.81, -285.32, 4000};
+static const float iP042[3] = {72.81, -176.34, 4000};
+static const float iP043[3] = {30, 0, 5000};
+static const float iP044[3] = {24.27, 58.78, 5000};
+static const float iP045[3] = {9.27, 95.11, 5000};
+static const float iP046[3] = {-9.27, 95.11, 5000};
+static const float iP047[3] = {-24.27, 58.78, 5000};
+static const float iP048[3] = {-30, 0, 5000};
+static const float iP049[3] = {-24.27, -58.78, 5000};
+static const float iP050[3] = {-9.27, -95.1, 5000};
+static const float iP051[3] = {9.27, -95.11, 5000};
+static const float iP052[3] = {24.27, -58.78, 5000};
+#if 0
+static const float iP053[3] = {0, 0, 0};
+#endif
+static const float iP061[3] = {0, 1181.61, 6344.65};
+static const float iP069[3] = {0, -418.25, 5765.04};
+static const float iP070[3] = {0, 1266.91, 6629.6};
+/* *INDENT-ON* */
+
+
+
+static void
+Fish001(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N007);
+ glVertex3fv(P007);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N004);
+ glVertex3fv(P004);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glNormal3fv(N007);
+ glVertex3fv(P007);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N004);
+ glVertex3fv(P004);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P071);
+ glVertex3fv(P072);
+ glVertex3fv(P073);
+ glVertex3fv(P074);
+ glVertex3fv(P075);
+ glVertex3fv(P076);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P077);
+ glVertex3fv(P078);
+ glVertex3fv(P079);
+ glVertex3fv(P080);
+ glVertex3fv(P081);
+ glVertex3fv(P082);
+ glEnd();
+}
+
+static void
+Fish002(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+}
+
+static void
+Fish003(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glEnd();
+}
+
+static void
+Fish004(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glNormal3fv(N061);
+ glVertex3fv(P061);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N061);
+ glVertex3fv(P061);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N061);
+ glVertex3fv(P061);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N061);
+ glVertex3fv(P061);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glNormal3fv(N061);
+ glVertex3fv(P061);
+ glEnd();
+}
+
+static void
+Fish005(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+}
+
+static void
+Fish006(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glEnd();
+}
+
+static void
+Fish007(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N064);
+ glVertex3fv(P064);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+}
+
+static void
+Fish008(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+}
+
+static void
+Fish009(GLenum cap)
+{
+ glBegin(cap);
+ glVertex3fv(P059);
+ glVertex3fv(P012);
+ glVertex3fv(P009);
+ glVertex3fv(P060);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P012);
+ glVertex3fv(P004);
+ glVertex3fv(P007);
+ glVertex3fv(P009);
+ glEnd();
+}
+
+static void
+Fish_1(GLenum cap)
+{
+ Fish004(cap);
+ Fish005(cap);
+ Fish003(cap);
+ Fish007(cap);
+ Fish006(cap);
+ Fish002(cap);
+ Fish008(cap);
+ Fish009(cap);
+ Fish001(cap);
+}
+
+static void
+Fish_2(GLenum cap)
+{
+ Fish005(cap);
+ Fish004(cap);
+ Fish003(cap);
+ Fish008(cap);
+ Fish006(cap);
+ Fish002(cap);
+ Fish007(cap);
+ Fish009(cap);
+ Fish001(cap);
+}
+
+static void
+Fish_3(GLenum cap)
+{
+ Fish005(cap);
+ Fish004(cap);
+ Fish007(cap);
+ Fish003(cap);
+ Fish002(cap);
+ Fish008(cap);
+ Fish009(cap);
+ Fish001(cap);
+ Fish006(cap);
+}
+
+static void
+Fish_4(GLenum cap)
+{
+ Fish005(cap);
+ Fish004(cap);
+ Fish008(cap);
+ Fish003(cap);
+ Fish002(cap);
+ Fish007(cap);
+ Fish009(cap);
+ Fish001(cap);
+ Fish006(cap);
+}
+
+static void
+Fish_5(GLenum cap)
+{
+ Fish009(cap);
+ Fish006(cap);
+ Fish007(cap);
+ Fish001(cap);
+ Fish002(cap);
+ Fish003(cap);
+ Fish008(cap);
+ Fish004(cap);
+ Fish005(cap);
+}
+
+static void
+Fish_6(GLenum cap)
+{
+ Fish009(cap);
+ Fish006(cap);
+ Fish008(cap);
+ Fish001(cap);
+ Fish002(cap);
+ Fish007(cap);
+ Fish003(cap);
+ Fish004(cap);
+ Fish005(cap);
+}
+
+static void
+Fish_7(GLenum cap)
+{
+ Fish009(cap);
+ Fish001(cap);
+ Fish007(cap);
+ Fish005(cap);
+ Fish002(cap);
+ Fish008(cap);
+ Fish003(cap);
+ Fish004(cap);
+ Fish006(cap);
+}
+
+static void
+Fish_8(GLenum cap)
+{
+ Fish009(cap);
+ Fish008(cap);
+ Fish001(cap);
+ Fish002(cap);
+ Fish007(cap);
+ Fish003(cap);
+ Fish005(cap);
+ Fish004(cap);
+ Fish006(cap);
+}
+
+void
+DrawShark(fishRec * fish, int wire)
+{
+ float mat[4][4];
+ int n;
+ float seg1, seg2, seg3, seg4, segup;
+ float thrash, chomp;
+ GLenum cap;
+
+ fish->htail = (int) (fish->htail - (int) (5 * fish->v)) % 360;
+
+ thrash = 50 * fish->v;
+
+ seg1 = 0.6 * thrash * sin(fish->htail * RRAD);
+ seg2 = 1.8 * thrash * sin((fish->htail + 45) * RRAD);
+ seg3 = 3 * thrash * sin((fish->htail + 90) * RRAD);
+ seg4 = 4 * thrash * sin((fish->htail + 110) * RRAD);
+
+ chomp = 0;
+ if (fish->v > 2) {
+ chomp = -(fish->v - 2) * 200;
+ }
+ P004[1] = iP004[1] + chomp;
+ P007[1] = iP007[1] + chomp;
+ P010[1] = iP010[1] + chomp;
+ P011[1] = iP011[1] + chomp;
+
+ P023[0] = iP023[0] + seg1;
+ P024[0] = iP024[0] + seg1;
+ P025[0] = iP025[0] + seg1;
+ P026[0] = iP026[0] + seg1;
+ P027[0] = iP027[0] + seg1;
+ P028[0] = iP028[0] + seg1;
+ P029[0] = iP029[0] + seg1;
+ P030[0] = iP030[0] + seg1;
+ P031[0] = iP031[0] + seg1;
+ P032[0] = iP032[0] + seg1;
+ P033[0] = iP033[0] + seg2;
+ P034[0] = iP034[0] + seg2;
+ P035[0] = iP035[0] + seg2;
+ P036[0] = iP036[0] + seg2;
+ P037[0] = iP037[0] + seg2;
+ P038[0] = iP038[0] + seg2;
+ P039[0] = iP039[0] + seg2;
+ P040[0] = iP040[0] + seg2;
+ P041[0] = iP041[0] + seg2;
+ P042[0] = iP042[0] + seg2;
+ P043[0] = iP043[0] + seg3;
+ P044[0] = iP044[0] + seg3;
+ P045[0] = iP045[0] + seg3;
+ P046[0] = iP046[0] + seg3;
+ P047[0] = iP047[0] + seg3;
+ P048[0] = iP048[0] + seg3;
+ P049[0] = iP049[0] + seg3;
+ P050[0] = iP050[0] + seg3;
+ P051[0] = iP051[0] + seg3;
+ P052[0] = iP052[0] + seg3;
+ P002[0] = iP002[0] + seg4;
+ P061[0] = iP061[0] + seg4;
+ P069[0] = iP069[0] + seg4;
+ P070[0] = iP070[0] + seg4;
+
+ fish->vtail += ((fish->dtheta - fish->vtail) * 0.1);
+
+ if (fish->vtail > 0.5) {
+ fish->vtail = 0.5;
+ } else if (fish->vtail < -0.5) {
+ fish->vtail = -0.5;
+ }
+ segup = thrash * fish->vtail;
+
+ P023[1] = iP023[1] + segup;
+ P024[1] = iP024[1] + segup;
+ P025[1] = iP025[1] + segup;
+ P026[1] = iP026[1] + segup;
+ P027[1] = iP027[1] + segup;
+ P028[1] = iP028[1] + segup;
+ P029[1] = iP029[1] + segup;
+ P030[1] = iP030[1] + segup;
+ P031[1] = iP031[1] + segup;
+ P032[1] = iP032[1] + segup;
+ P033[1] = iP033[1] + segup * 5;
+ P034[1] = iP034[1] + segup * 5;
+ P035[1] = iP035[1] + segup * 5;
+ P036[1] = iP036[1] + segup * 5;
+ P037[1] = iP037[1] + segup * 5;
+ P038[1] = iP038[1] + segup * 5;
+ P039[1] = iP039[1] + segup * 5;
+ P040[1] = iP040[1] + segup * 5;
+ P041[1] = iP041[1] + segup * 5;
+ P042[1] = iP042[1] + segup * 5;
+ P043[1] = iP043[1] + segup * 12;
+ P044[1] = iP044[1] + segup * 12;
+ P045[1] = iP045[1] + segup * 12;
+ P046[1] = iP046[1] + segup * 12;
+ P047[1] = iP047[1] + segup * 12;
+ P048[1] = iP048[1] + segup * 12;
+ P049[1] = iP049[1] + segup * 12;
+ P050[1] = iP050[1] + segup * 12;
+ P051[1] = iP051[1] + segup * 12;
+ P052[1] = iP052[1] + segup * 12;
+ P002[1] = iP002[1] + segup * 17;
+ P061[1] = iP061[1] + segup * 17;
+ P069[1] = iP069[1] + segup * 17;
+ P070[1] = iP070[1] + segup * 17;
+
+ glPushMatrix();
+
+ glTranslatef(0, 0, -3000);
+
+ glGetFloatv(GL_MODELVIEW_MATRIX, &mat[0][0]);
+ n = 0;
+ if (mat[0][2] >= 0) {
+ n += 1;
+ }
+ if (mat[1][2] >= 0) {
+ n += 2;
+ }
+ if (mat[2][2] >= 0) {
+ n += 4;
+ }
+ glScalef(2, 1, 1);
+
+ glEnable(GL_CULL_FACE);
+ cap = wire ? GL_LINE_LOOP : GL_POLYGON;
+ switch (n) {
+ case 0:
+ Fish_1(cap);
+ break;
+ case 1:
+ Fish_2(cap);
+ break;
+ case 2:
+ Fish_3(cap);
+ break;
+ case 3:
+ Fish_4(cap);
+ break;
+ case 4:
+ Fish_5(cap);
+ break;
+ case 5:
+ Fish_6(cap);
+ break;
+ case 6:
+ Fish_7(cap);
+ break;
+ case 7:
+ Fish_8(cap);
+ break;
+ }
+ glDisable(GL_CULL_FACE);
+
+ glPopMatrix();
+}
+#endif
diff --git a/hacks/glx/ships.c b/hacks/glx/ships.c
new file mode 100644
index 0000000..a2fb36c
--- /dev/null
+++ b/hacks/glx/ships.c
@@ -0,0 +1,4976 @@
+/* Generated from "ships.dxf" on 28-Jan-2018.
+ Faceted face normals. Normalized to unit bounding box.
+ Components: ship1, ship2, ship3, ship4, ship5, ship6, ship7, ship8.
+ */
+
+#include "gllist.h"
+
+static const float ships_ship1_data[] = {
+ 0,1,0,0.116962,0,0.06683,
+ 0,1,0,0.155077,0,0.058558,
+ 0,1,0,0.116882,0,0.064477,
+ 0,1,0,0.155077,0,0.058558,
+ 0,1,0,0.116962,0,0.06683,
+ 0,1,0,0.183794,0,0.06683,
+ 0,1,0,0.155077,0,0.058558,
+ 0,1,0,0.183794,0,0.06683,
+ 0,1,0,0.165867,0,0.042832,
+ 0,1,0,0.165867,0,0.042832,
+ 0,1,0,0.183794,0,0.06683,
+ 0,1,0,0.182076,0,-0.033078,
+ 0,1,0,0.182076,0,-0.033078,
+ 0,1,0,0.183794,0,0.06683,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.183794,0,0.06683,
+ 0,1,0,0.206431,0,0.085132,
+ 0,1,0,0.144982,0,0.047158,
+ 0,1,0,0.144464,0,-0.025545,
+ 0,1,0,0.142517,0,-0.008241,
+ 0,1,0,0.144464,0,-0.025545,
+ 0,1,0,0.144982,0,0.047158,
+ 0,1,0,0.150519,0,0.014247,
+ 0,1,0,0.144464,0,-0.025545,
+ 0,1,0,0.150519,0,0.014247,
+ 0,1,0,0.182076,0,-0.033078,
+ 0,1,0,0.150519,0,0.014247,
+ 0,1,0,0.144982,0,0.047158,
+ 0,1,0,0.145659,0,0.055321,
+ 0,1,0,0.150519,0,0.014247,
+ 0,1,0,0.145659,0,0.055321,
+ 0,1,0,0.148882,0,0.056932,
+ 0,1,0,0.182076,0,-0.033078,
+ 0,1,0,0.150519,0,0.014247,
+ 0,1,0,0.165867,0,0.042832,
+ 0,1,0,0.563884,0,0.184308,
+ 0,1,0,0.588726,0,-0.050731,
+ 0,1,0,0.505825,0,0.177803,
+ 0,1,0,0.588726,0,-0.050731,
+ 0,1,0,0.563884,0,0.184308,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.588726,0,-0.050731,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.651336,0,-0.055351,
+ 0,1,0,0.651336,0,-0.055351,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.654279,0,-0.056707,
+ 0,1,0,0.175726,0,0.171966,
+ 0,1,0,0.206431,0,0.085132,
+ 0,1,0,0.171797,0,0.170156,
+ 0,1,0,0.206431,0,0.085132,
+ 0,1,0,0.175726,0,0.171966,
+ 0,1,0,0.194183,0,0.133925,
+ 0,1,0,0.206431,0,0.085132,
+ 0,1,0,0.194183,0,0.133925,
+ 0,1,0,0.214272,0,0.096042,
+ 0,1,0,0.206431,0,0.085132,
+ 0,1,0,0.214272,0,0.096042,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.214272,0,0.096042,
+ 0,1,0,0.215488,0,0.116749,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.215488,0,0.116749,
+ 0,1,0,0.239742,0,0.126581,
+ 0,1,0,0.360276,0,-0.04832,
+ 0,1,0,0.182076,0,-0.033078,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.360276,0,-0.04832,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.360276,0,-0.04832,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.373485,0,-0.04699,
+ 0,1,0,0.373485,0,-0.04699,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.406711,0,-0.042205,
+ 0,1,0,0.322926,0,0.320583,
+ 0,1,0,0.32449,0,0.313371,
+ 0,1,0,0.301859,0,0.3108,
+ 0,1,0,0.32449,0,0.313371,
+ 0,1,0,0.322926,0,0.320583,
+ 0,1,0,0.324435,0,0.321321,
+ 0,1,0,0.32449,0,0.313371,
+ 0,1,0,0.324435,0,0.321321,
+ 0,1,0,0.334072,0,0.331602,
+ 0,1,0,0.32449,0,0.313371,
+ 0,1,0,0.334072,0,0.331602,
+ 0,1,0,0.332829,0,0.298122,
+ 0,1,0,0.336773,0,0.355518,
+ 0,1,0,0.334072,0,0.331602,
+ 0,1,0,0.332052,0,0.33913,
+ 0,1,0,0.334072,0,0.331602,
+ 0,1,0,0.336773,0,0.355518,
+ 0,1,0,0.334395,0,0.258292,
+ 0,1,0,0.342277,0,0.362383,
+ 0,1,0,0.336773,0,0.355518,
+ 0,1,0,0.305543,0,0.360518,
+ 0,1,0,0.34814,0,0.369892,
+ 0,1,0,0.347981,0,0.350547,
+ 0,1,0,0.344815,0,0.375591,
+ 0,1,0,0.347981,0,0.350547,
+ 0,1,0,0.34814,0,0.369892,
+ 0,1,0,0.353013,0,0.361538,
+ 0,1,0,0.347981,0,0.350547,
+ 0,1,0,0.353013,0,0.361538,
+ 0,1,0,0.362663,0,0.354466,
+ 0,1,0,0.362663,0,0.354466,
+ 0,1,0,0.353013,0,0.361538,
+ 0,1,0,0.393197,0,0.356483,
+ 0,1,0,0.362663,0,0.354466,
+ 0,1,0,0.393197,0,0.356483,
+ 0,1,0,0.378025,0,0.353893,
+ 0,1,0,0.378679,0,0.229386,
+ 0,1,0,0.368952,0,0.22393,
+ 0,1,0,0.361091,0,0.236693,
+ 0,1,0,0.374536,0,0.329731,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.347981,0,0.350547,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.374536,0,0.329731,
+ 0,1,0,0.369252,0,0.304088,
+ 0,1,0,0.369252,0,0.304088,
+ 0,1,0,0.374536,0,0.329731,
+ 0,1,0,0.375498,0,0.311907,
+ 0,1,0,0.378815,0,0.30157,
+ 0,1,0,0.371067,0,0.2787,
+ 0,1,0,0.369252,0,0.304088,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.371067,0,0.2787,
+ 0,1,0,0.409606,0,0.272745,
+ 0,1,0,0.371067,0,0.2787,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.369252,0,0.304088,
+ 0,1,0,0.329387,0,0.234545,
+ 0,1,0,0.368952,0,0.214645,
+ 0,1,0,0.311459,0,0.21872,
+ 0,1,0,0.368952,0,0.214645,
+ 0,1,0,0.329387,0,0.234545,
+ 0,1,0,0.334395,0,0.258292,
+ 0,1,0,0.368952,0,0.214645,
+ 0,1,0,0.334395,0,0.258292,
+ 0,1,0,0.361091,0,0.236693,
+ 0,1,0,0.361091,0,0.236693,
+ 0,1,0,0.334395,0,0.258292,
+ 0,1,0,0.336773,0,0.355518,
+ 0,1,0,0.361091,0,0.236693,
+ 0,1,0,0.336773,0,0.355518,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.336773,0,0.355518,
+ 0,1,0,0.342277,0,0.362383,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.342277,0,0.362383,
+ 0,1,0,0.343893,0,0.36804,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.343893,0,0.36804,
+ 0,1,0,0.344815,0,0.375591,
+ 0,1,0,0.355027,0,0.271558,
+ 0,1,0,0.344815,0,0.375591,
+ 0,1,0,0.347981,0,0.350547,
+ 0,1,0,0.368952,0,0.214645,
+ 0,1,0,0.361091,0,0.236693,
+ 0,1,0,0.368952,0,0.22393,
+ 0,1,0,0.25875,0,0.2828,
+ 0,1,0,0.267311,0,0.276092,
+ 0,1,0,0.25728,0,0.280552,
+ 0,1,0,0.267311,0,0.276092,
+ 0,1,0,0.25875,0,0.2828,
+ 0,1,0,0.273094,0,0.278099,
+ 0,1,0,0.273094,0,0.278099,
+ 0,1,0,0.25875,0,0.2828,
+ 0,1,0,0.303096,0,0.283554,
+ 0,1,0,0.267311,0,0.276092,
+ 0,1,0,0.273094,0,0.278099,
+ 0,1,0,0.267457,0,0.244485,
+ 0,1,0,0.273094,0,0.278099,
+ 0,1,0,0.303096,0,0.283554,
+ 0,1,0,0.325469,0,0.275657,
+ 0,1,0,0.325469,0,0.275657,
+ 0,1,0,0.303096,0,0.283554,
+ 0,1,0,0.320429,0,0.283567,
+ 0,1,0,0.325469,0,0.275657,
+ 0,1,0,0.320429,0,0.283567,
+ 0,1,0,0.332829,0,0.298122,
+ 0,1,0,0.325469,0,0.275657,
+ 0,1,0,0.332829,0,0.298122,
+ 0,1,0,0.334395,0,0.258292,
+ 0,1,0,0.334395,0,0.258292,
+ 0,1,0,0.332829,0,0.298122,
+ 0,1,0,0.334072,0,0.331602,
+ 0,1,0,0.273094,0,0.214646,
+ 0,1,0,0.267457,0,0.244485,
+ 0,1,0,0.273094,0,0.278099,
+ 0,1,0,0.418177,0,0.231171,
+ 0,1,0,0.409996,0,0.219049,
+ 0,1,0,0.409996,0,0.259494,
+ 0,1,0,0.409996,0,0.219049,
+ 0,1,0,0.418177,0,0.231171,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.418177,0,0.231171,
+ 0,1,0,0.418324,0,0.202436,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.395625,0,0.207154,
+ 0,1,0,0.409996,0,0.219049,
+ 0,1,0,0.505825,0,0.177803,
+ 0,1,0,0.495108,0,0.177713,
+ 0,1,0,0.495108,0,0.212769,
+ 0,1,0,0.406711,0,-0.042205,
+ 0,1,0,0.460766,0,0.175176,
+ 0,1,0,0.495108,0,0.177713,
+ 0,1,0,0.460766,0,0.175176,
+ 0,1,0,0.406711,0,-0.042205,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.460766,0,0.175176,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.42226,0,0.181691,
+ 0,1,0,0.495108,0,0.177713,
+ 0,1,0,0.44763,0,-0.044825,
+ 0,1,0,0.406711,0,-0.042205,
+ 0,1,0,0.44763,0,-0.044825,
+ 0,1,0,0.495108,0,0.177713,
+ 0,1,0,0.480357,0,-0.052799,
+ 0,1,0,0.480357,0,-0.052799,
+ 0,1,0,0.495108,0,0.177713,
+ 0,1,0,0.496626,0,-0.056372,
+ 0,1,0,0.496626,0,-0.056372,
+ 0,1,0,0.495108,0,0.177713,
+ 0,1,0,0.505825,0,0.177803,
+ 0,1,0,0.85052,0,0.207976,
+ 0,1,0,0.85018,0,-0.03742,
+ 0,1,0,0.786183,0,0.207755,
+ 0,1,0,0.85018,0,-0.03742,
+ 0,1,0,0.85052,0,0.207976,
+ 0,1,0,0.850681,0,0.089096,
+ 0,1,0,0.850681,0,0.089096,
+ 0,1,0,0.85052,0,0.207976,
+ 0,1,0,0.855957,0,0.183257,
+ 0,1,0,0.850681,0,0.089096,
+ 0,1,0,0.855957,0,0.183257,
+ 0,1,0,0.853091,0,0.109288,
+ 0,1,0,0.853091,0,0.109288,
+ 0,1,0,0.855957,0,0.183257,
+ 0,1,0,0.862404,0,0.162275,
+ 0,1,0,0.853091,0,0.109288,
+ 0,1,0,0.862404,0,0.162275,
+ 0,1,0,0.865092,0,0.162319,
+ 0,1,0,0.725123,0,0.201897,
+ 0,1,0,0.858149,0,-0.077347,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.858149,0,-0.077347,
+ 0,1,0,0.725123,0,0.201897,
+ 0,1,0,0.786183,0,0.207755,
+ 0,1,0,0.858149,0,-0.077347,
+ 0,1,0,0.786183,0,0.207755,
+ 0,1,0,0.85018,0,-0.03742,
+ 0,1,0,0.858149,0,-0.077347,
+ 0,1,0,0.85018,0,-0.03742,
+ 0,1,0,0.85643,0,-0.06679,
+ 0,1,0,0.856701,0,0.198121,
+ 0,1,0,0.855957,0,0.183257,
+ 0,1,0,0.85052,0,0.207976,
+ 0,1,0,0.855957,0,0.183257,
+ 0,1,0,0.856701,0,0.198121,
+ 0,1,0,0.871968,0,0.193412,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.66245,0,-0.066583,
+ 0,1,0,0.654279,0,-0.056707,
+ 0,1,0,0.66245,0,-0.066583,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.77276,0,-0.075247,
+ 0,1,0,0.77276,0,-0.075247,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.7813,0,-0.067188,
+ 0,1,0,0.7813,0,-0.067188,
+ 0,1,0,0.691269,0,0.197453,
+ 0,1,0,0.858149,0,-0.077347,
+ 0,1,0,0.282027,0,0.139433,
+ 0,1,0,0.281231,0,0.130089,
+ 0,1,0,0.202972,0,0.139577,
+ 0,1,0,0.292538,0,0.191458,
+ 0,1,0,0.28622,0,0.16455,
+ 0,1,0,0.283073,0,0.18298,
+ 0,1,0,0.281231,0,0.130089,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.268468,0,0.112678,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.281231,0,0.130089,
+ 0,1,0,0.282027,0,0.139433,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.282027,0,0.139433,
+ 0,1,0,0.28622,0,0.16455,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.28622,0,0.16455,
+ 0,1,0,0.292538,0,0.191458,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.292538,0,0.191458,
+ 0,1,0,0.294058,0,0.21557,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.294058,0,0.21557,
+ 0,1,0,0.311459,0,0.21872,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.311459,0,0.21872,
+ 0,1,0,0.368952,0,0.214645,
+ 0,1,0,0.41681,0,0.172841,
+ 0,1,0,0.368952,0,0.214645,
+ 0,1,0,0.395625,0,0.207154,
+ 0,1,0,0.588726,0,-0.050731,
+ 0,1,0,0.496626,0,-0.056372,
+ 0,1,0,0.505825,0,0.177803,
+ 0,1,0,0.34814,0,0.466117,
+ 0,1,0,0.344815,0,0.375591,
+ 0,1,0,0.344815,0,0.466117,
+ 0,1,0,0.344815,0,0.375591,
+ 0,1,0,0.34814,0,0.466117,
+ 0,1,0,0.34814,0,0.369892
+};
+static const struct gllist ships_ship1_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 318, ships_ship1_data, 0
+};
+const struct gllist *ships_ship1 = &ships_ship1_frame;
+
+static const float ships_ship2_data[] = {
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.082078,0,-0.023373,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.007746,0,0.002005,
+ 0,1,0,0.000601,0,-0.005265,
+ 0,1,0,-0.000907,0,-0.004103,
+ 0,1,0,0.000601,0,-0.005265,
+ 0,1,0,0.007746,0,0.002005,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.007746,0,0.002005,
+ 0,1,0,0.011124,0,0.003295,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.011124,0,0.003295,
+ 0,1,0,0.034381,0,0.008035,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.034381,0,0.008035,
+ 0,1,0,0.036326,0,0.008049,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.036326,0,0.008049,
+ 0,1,0,0.04544,0,0.006283,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.04544,0,0.006283,
+ 0,1,0,0.046047,0,0.005835,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.046047,0,0.005835,
+ 0,1,0,0.082078,0,-0.023373,
+ 0,1,0,0.05233,0,-0.01634,
+ 0,1,0,0.082078,0,-0.023373,
+ 0,1,0,0.056496,0,-0.017817,
+ 0,1,0,0.05539,0,0.015178,
+ 0,1,0,0.082078,0,-0.023373,
+ 0,1,0,0.046047,0,0.005835,
+ 0,1,0,0.082078,0,-0.023373,
+ 0,1,0,0.05539,0,0.015178,
+ 0,1,0,0.114262,0,0.021494,
+ 0,1,0,0.082078,0,-0.023373,
+ 0,1,0,0.114262,0,0.021494,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.114262,0,0.021494,
+ 0,1,0,0.115443,0,0.022381,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.115443,0,0.022381,
+ 0,1,0,0.135675,0,0.029186,
+ 0,1,0,0.135675,0,0.029186,
+ 0,1,0,0.115443,0,0.022381,
+ 0,1,0,0.123036,0,0.035357,
+ 0,1,0,0.135675,0,0.029186,
+ 0,1,0,0.123036,0,0.035357,
+ 0,1,0,0.125791,0,0.037178,
+ 0,1,0,0.135675,0,0.029186,
+ 0,1,0,0.125791,0,0.037178,
+ 0,1,0,0.128954,0,0.038029,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.135675,0,0.029186,
+ 0,1,0,0.149603,0,0.030315,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.149603,0,0.030315,
+ 0,1,0,0.155902,0,0.031606,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.155902,0,0.031606,
+ 0,1,0,0.19146,0,0.034085,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.19146,0,0.034085,
+ 0,1,0,0.215206,0,0.033981,
+ 0,1,0,0.215206,0,0.033981,
+ 0,1,0,0.19146,0,0.034085,
+ 0,1,0,0.198656,0,0.03732,
+ 0,1,0,0.215206,0,0.033981,
+ 0,1,0,0.198656,0,0.03732,
+ 0,1,0,0.204208,0,0.039424,
+ 0,1,0,0.215206,0,0.033981,
+ 0,1,0,0.204208,0,0.039424,
+ 0,1,0,0.205257,0,0.039407,
+ 0,1,0,0.148814,0,0.110426,
+ 0,1,0,0.15748,0,0.109506,
+ 0,1,0,0.149603,0,0.030315,
+ 0,1,0,0.15748,0,0.109506,
+ 0,1,0,0.148814,0,0.110426,
+ 0,1,0,0.159954,0,0.112868,
+ 0,1,0,0.159954,0,0.112868,
+ 0,1,0,0.148814,0,0.110426,
+ 0,1,0,0.166818,0,0.122163,
+ 0,1,0,0.149603,0,0.030315,
+ 0,1,0,0.15748,0,0.109506,
+ 0,1,0,0.155902,0,0.031606,
+ 0,1,0,0.159954,0,0.112868,
+ 0,1,0,0.166818,0,0.122163,
+ 0,1,0,0.166936,0,0.115979,
+ 0,1,0,0.166936,0,0.115979,
+ 0,1,0,0.166818,0,0.122163,
+ 0,1,0,0.167792,0,0.118769,
+ 0,1,0,0.19581,0,0.059166,
+ 0,1,0,0.19146,0,0.034085,
+ 0,1,0,0.189765,0,0.059166,
+ 0,1,0,0.19146,0,0.034085,
+ 0,1,0,0.19581,0,0.059166,
+ 0,1,0,0.198656,0,0.03732,
+ 0,1,0,0.239422,0,0.050277,
+ 0,1,0,0.241019,0,0.031691,
+ 0,1,0,0.229393,0,0.036323,
+ 0,1,0,0.241019,0,0.031691,
+ 0,1,0,0.239422,0,0.050277,
+ 0,1,0,0.243607,0,0.051238,
+ 0,1,0,0.241019,0,0.031691,
+ 0,1,0,0.243607,0,0.051238,
+ 0,1,0,0.247913,0,0.050436,
+ 0,1,0,0.256691,0,0.038188,
+ 0,1,0,0.275723,0,0.033421,
+ 0,1,0,0.252993,0,0.034769,
+ 0,1,0,0.275723,0,0.033421,
+ 0,1,0,0.256691,0,0.038188,
+ 0,1,0,0.256714,0,0.038965,
+ 0,1,0,0.275723,0,0.033421,
+ 0,1,0,0.256714,0,0.038965,
+ 0,1,0,0.262006,0,0.043711,
+ 0,1,0,0.275723,0,0.033421,
+ 0,1,0,0.262006,0,0.043711,
+ 0,1,0,0.273095,0,0.046817,
+ 0,1,0,0.289924,0,0.059902,
+ 0,1,0,0.295792,0,0.032171,
+ 0,1,0,0.285549,0,0.033421,
+ 0,1,0,0.295792,0,0.032171,
+ 0,1,0,0.289924,0,0.059902,
+ 0,1,0,0.295191,0,0.059902,
+ 0,1,0,0.309389,0,0.113628,
+ 0,1,0,0.30392,0,0.107488,
+ 0,1,0,0.302842,0,0.109306,
+ 0,1,0,0.30392,0,0.107488,
+ 0,1,0,0.309389,0,0.113628,
+ 0,1,0,0.30413,0,0.105206,
+ 0,1,0,0.30413,0,0.105206,
+ 0,1,0,0.309389,0,0.113628,
+ 0,1,0,0.311562,0,0.078755,
+ 0,1,0,0.311562,0,0.078755,
+ 0,1,0,0.309389,0,0.113628,
+ 0,1,0,0.31579,0,0.077563,
+ 0,1,0,0.311562,0,0.078755,
+ 0,1,0,0.31579,0,0.077563,
+ 0,1,0,0.311665,0,0.071318,
+ 0,1,0,0.315386,0,0.144383,
+ 0,1,0,0.312981,0,0.131794,
+ 0,1,0,0.312651,0,0.133195,
+ 0,1,0,0.312981,0,0.131794,
+ 0,1,0,0.315386,0,0.144383,
+ 0,1,0,0.321788,0,0.1221,
+ 0,1,0,0.321788,0,0.1221,
+ 0,1,0,0.315386,0,0.144383,
+ 0,1,0,0.32648,0,0.141993,
+ 0,1,0,0.321788,0,0.1221,
+ 0,1,0,0.32648,0,0.141993,
+ 0,1,0,0.322054,0,0.120653,
+ 0,1,0,0.322054,0,0.120653,
+ 0,1,0,0.32648,0,0.141993,
+ 0,1,0,0.322874,0,0.096569,
+ 0,1,0,0.322874,0,0.096569,
+ 0,1,0,0.32648,0,0.141993,
+ 0,1,0,0.323482,0,0.093677,
+ 0,1,0,0.323449,0,0.083168,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.321915,0,0.077563,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.323449,0,0.083168,
+ 0,1,0,0.323482,0,0.093677,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.323482,0,0.093677,
+ 0,1,0,0.32648,0,0.141993,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.32648,0,0.141993,
+ 0,1,0,0.327612,0,0.134409,
+ 0,1,0,0.327612,0,0.134409,
+ 0,1,0,0.32648,0,0.141993,
+ 0,1,0,0.327459,0,0.138248,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.327612,0,0.134409,
+ 0,1,0,0.331449,0,0.108836,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.331449,0,0.108836,
+ 0,1,0,0.332251,0,0.082544,
+ 0,1,0,0.332251,0,0.082544,
+ 0,1,0,0.331449,0,0.108836,
+ 0,1,0,0.333204,0,0.102871,
+ 0,1,0,0.332251,0,0.082544,
+ 0,1,0,0.333204,0,0.102871,
+ 0,1,0,0.333121,0,0.093642,
+ 0,1,0,0.333121,0,0.093642,
+ 0,1,0,0.333204,0,0.102871,
+ 0,1,0,0.333462,0,0.095451,
+ 0,1,0,0.348516,0,0.105101,
+ 0,1,0,0.397365,0,0.086139,
+ 0,1,0,0.345482,0,0.078911,
+ 0,1,0,0.397365,0,0.086139,
+ 0,1,0,0.348516,0,0.105101,
+ 0,1,0,0.350483,0,0.11097,
+ 0,1,0,0.397365,0,0.086139,
+ 0,1,0,0.350483,0,0.11097,
+ 0,1,0,0.394512,0,0.087776,
+ 0,1,0,0.394512,0,0.087776,
+ 0,1,0,0.350483,0,0.11097,
+ 0,1,0,0.351201,0,0.1154,
+ 0,1,0,0.394512,0,0.087776,
+ 0,1,0,0.351201,0,0.1154,
+ 0,1,0,0.352062,0,0.133162,
+ 0,1,0,0.394512,0,0.087776,
+ 0,1,0,0.352062,0,0.133162,
+ 0,1,0,0.362231,0,0.135702,
+ 0,1,0,0.394512,0,0.087776,
+ 0,1,0,0.362231,0,0.135702,
+ 0,1,0,0.38958,0,0.099906,
+ 0,1,0,0.38958,0,0.099906,
+ 0,1,0,0.362231,0,0.135702,
+ 0,1,0,0.387409,0,0.108858,
+ 0,1,0,0.387409,0,0.108858,
+ 0,1,0,0.362231,0,0.135702,
+ 0,1,0,0.38428,0,0.198644,
+ 0,1,0,0.406915,0,0.152377,
+ 0,1,0,0.403253,0,0.135128,
+ 0,1,0,0.401572,0,0.147035,
+ 0,1,0,0.403253,0,0.135128,
+ 0,1,0,0.406915,0,0.152377,
+ 0,1,0,0.407934,0,0.130498,
+ 0,1,0,0.407934,0,0.130498,
+ 0,1,0,0.406915,0,0.152377,
+ 0,1,0,0.41953,0,0.148153,
+ 0,1,0,0.407934,0,0.130498,
+ 0,1,0,0.41953,0,0.148153,
+ 0,1,0,0.410269,0,0.08858,
+ 0,1,0,0.410269,0,0.08858,
+ 0,1,0,0.41953,0,0.148153,
+ 0,1,0,0.425347,0,0.083593,
+ 0,1,0,0.425347,0,0.083593,
+ 0,1,0,0.451234,0,0.037834,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.451234,0,0.037834,
+ 0,1,0,0.425347,0,0.083593,
+ 0,1,0,0.444133,0,0.07151,
+ 0,1,0,0.444133,0,0.07151,
+ 0,1,0,0.425347,0,0.083593,
+ 0,1,0,0.444133,0,0.084461,
+ 0,1,0,0.451234,0,0.037834,
+ 0,1,0,0.444133,0,0.07151,
+ 0,1,0,0.445707,0,0.066652,
+ 0,1,0,0.295792,0,0.032171,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.295792,0,0.032171,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.226528,0,0.034709,
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.218433,0,0.033347,
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.226528,0,0.034709,
+ 0,1,0,0.229393,0,0.036323,
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.229393,0,0.036323,
+ 0,1,0,0.241019,0,0.031691,
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.241019,0,0.031691,
+ 0,1,0,0.252993,0,0.034769,
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.252993,0,0.034769,
+ 0,1,0,0.275723,0,0.033421,
+ 0,1,0,0.27313,0,-0.03143,
+ 0,1,0,0.275723,0,0.033421,
+ 0,1,0,0.295792,0,0.032171,
+ 0,1,0,0.295792,0,0.032171,
+ 0,1,0,0.275723,0,0.033421,
+ 0,1,0,0.285549,0,0.033421,
+ 0,1,0,0.298627,0,0.033229,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.295792,0,0.032171,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.298627,0,0.033229,
+ 0,1,0,0.302246,0,0.036983,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.302246,0,0.036983,
+ 0,1,0,0.308875,0,0.065389,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.308875,0,0.065389,
+ 0,1,0,0.311665,0,0.071318,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.311665,0,0.071318,
+ 0,1,0,0.31579,0,0.077563,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.31579,0,0.077563,
+ 0,1,0,0.321915,0,0.077563,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.321915,0,0.077563,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.331265,0,0.078444,
+ 0,1,0,0.345482,0,0.078911,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.345482,0,0.078911,
+ 0,1,0,0.397365,0,0.086139,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.397365,0,0.086139,
+ 0,1,0,0.399049,0,0.086793,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.399049,0,0.086793,
+ 0,1,0,0.410269,0,0.08858,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.410269,0,0.08858,
+ 0,1,0,0.425347,0,0.083593,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.350411,0,0.198046,
+ 0,1,0,0.348022,0,0.202613,
+ 0,1,0,0.350411,0,0.198046,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.360613,0,0.196837,
+ 0,1,0,0.360613,0,0.196837,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.362231,0,0.157776,
+ 0,1,0,0.362231,0,0.157776,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.362244,0,0.144871,
+ 0,1,0,0.358945,0,0.220663,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.357496,0,0.219463,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.358945,0,0.220663,
+ 0,1,0,0.366627,0,0.223011,
+ 0,1,0,0.380369,0,0.324825,
+ 0,1,0,0.373861,0,0.224955,
+ 0,1,0,0.369225,0,0.227836,
+ 0,1,0,0.373861,0,0.224955,
+ 0,1,0,0.380369,0,0.324825,
+ 0,1,0,0.38352,0,0.322964,
+ 0,1,0,0.38352,0,0.322964,
+ 0,1,0,0.380369,0,0.324825,
+ 0,1,0,0.381407,0,0.329175,
+ 0,1,0,0.38352,0,0.322964,
+ 0,1,0,0.381407,0,0.329175,
+ 0,1,0,0.381858,0,0.329038,
+ 0,1,0,0.38352,0,0.322964,
+ 0,1,0,0.381858,0,0.329038,
+ 0,1,0,0.383958,0,0.323947,
+ 0,1,0,0.362244,0,0.144871,
+ 0,1,0,0.38428,0,0.198644,
+ 0,1,0,0.362231,0,0.135702,
+ 0,1,0,0.38428,0,0.198644,
+ 0,1,0,0.362244,0,0.144871,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.38428,0,0.198644,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.380949,0,0.201539,
+ 0,1,0,0.380949,0,0.201539,
+ 0,1,0,0.363156,0,0.202613,
+ 0,1,0,0.366627,0,0.223011,
+ 0,1,0,0.380949,0,0.201539,
+ 0,1,0,0.366627,0,0.223011,
+ 0,1,0,0.36848,0,0.224601,
+ 0,1,0,0.380949,0,0.201539,
+ 0,1,0,0.36848,0,0.224601,
+ 0,1,0,0.369225,0,0.227836,
+ 0,1,0,0.380949,0,0.201539,
+ 0,1,0,0.369225,0,0.227836,
+ 0,1,0,0.373861,0,0.224955,
+ 0,1,0,0.380949,0,0.201539,
+ 0,1,0,0.373861,0,0.224955,
+ 0,1,0,0.380949,0,0.223681,
+ 0,1,0,0.358191,0,0.154835,
+ 0,1,0,0.35916,0,0.147807,
+ 0,1,0,0.356002,0,0.149867,
+ 0,1,0,0.35916,0,0.147807,
+ 0,1,0,0.358191,0,0.154835,
+ 0,1,0,0.362231,0,0.157776,
+ 0,1,0,0.35916,0,0.147807,
+ 0,1,0,0.362231,0,0.157776,
+ 0,1,0,0.36019,0,0.147475,
+ 0,1,0,0.36019,0,0.147475,
+ 0,1,0,0.362231,0,0.157776,
+ 0,1,0,0.362244,0,0.144871,
+ 0,1,0,0.478811,0,0.092274,
+ 0,1,0,0.473165,0,0.036584,
+ 0,1,0,0.463625,0,0.042121,
+ 0,1,0,0.473165,0,0.036584,
+ 0,1,0,0.478811,0,0.092274,
+ 0,1,0,0.490493,0,0.092799,
+ 0,1,0,0.490493,0,0.092799,
+ 0,1,0,0.478811,0,0.092274,
+ 0,1,0,0.481892,0,0.096319,
+ 0,1,0,0.490493,0,0.092799,
+ 0,1,0,0.481892,0,0.096319,
+ 0,1,0,0.498402,0,0.106856,
+ 0,1,0,0.490493,0,0.092799,
+ 0,1,0,0.498402,0,0.106856,
+ 0,1,0,0.491729,0,0.094592,
+ 0,1,0,0.491729,0,0.094592,
+ 0,1,0,0.498402,0,0.106856,
+ 0,1,0,0.500624,0,0.09968,
+ 0,1,0,0.500624,0,0.09968,
+ 0,1,0,0.498402,0,0.106856,
+ 0,1,0,0.499526,0,0.10796,
+ 0,1,0,0.500624,0,0.09968,
+ 0,1,0,0.499526,0,0.10796,
+ 0,1,0,0.50155,0,0.101548,
+ 0,1,0,0.545711,0,0.050757,
+ 0,1,0,0.551148,0,0.030911,
+ 0,1,0,0.530999,0,0.030908,
+ 0,1,0,0.551148,0,0.030911,
+ 0,1,0,0.545711,0,0.050757,
+ 0,1,0,0.556558,0,0.03991,
+ 0,1,0,0.551148,0,0.030911,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.530999,0,0.030908,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.551148,0,0.030911,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.551148,0,0.030911,
+ 0,1,0,0.569784,0,0.030911,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.569784,0,0.030911,
+ 0,1,0,0.57627,0,0.03241,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.57627,0,0.03241,
+ 0,1,0,0.578786,0,0.032037,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.578786,0,0.032037,
+ 0,1,0,0.584034,0,0.028571,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.584034,0,0.028571,
+ 0,1,0,0.593555,0,0.027764,
+ 0,1,0,0.454472,0,0.039998,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.452392,0,0.034041,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.454472,0,0.039998,
+ 0,1,0,0.4559,0,0.041105,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.4559,0,0.041105,
+ 0,1,0,0.463625,0,0.042121,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.463625,0,0.042121,
+ 0,1,0,0.473165,0,0.036584,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.473165,0,0.036584,
+ 0,1,0,0.521992,0,0.026308,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.521992,0,0.026308,
+ 0,1,0,0.526188,0,0.027401,
+ 0,1,0,0.53283,0,-0.042382,
+ 0,1,0,0.526188,0,0.027401,
+ 0,1,0,0.530999,0,0.030908,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.593555,0,0.027764,
+ 0,1,0,0.61703,0,-0.045932,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.686573,0,0.025396,
+ 0,1,0,0.64097,0,0.065405,
+ 0,1,0,0.636461,0,0.040099,
+ 0,1,0,0.634712,0,0.065405,
+ 0,1,0,0.667649,0,0.066339,
+ 0,1,0,0.66702,0,0.042964,
+ 0,1,0,0.66702,0,0.066177,
+ 0,1,0,0.595342,0,0.029428,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.593555,0,0.027764,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.595342,0,0.029428,
+ 0,1,0,0.600274,0,0.047426,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.600274,0,0.047426,
+ 0,1,0,0.621236,0,0.041148,
+ 0,1,0,0.621236,0,0.041148,
+ 0,1,0,0.600274,0,0.047426,
+ 0,1,0,0.612783,0,0.047426,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.621236,0,0.041148,
+ 0,1,0,0.636461,0,0.040099,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.636461,0,0.040099,
+ 0,1,0,0.646435,0,0.040846,
+ 0,1,0,0.646435,0,0.040846,
+ 0,1,0,0.636461,0,0.040099,
+ 0,1,0,0.644949,0,0.043771,
+ 0,1,0,0.644949,0,0.043771,
+ 0,1,0,0.636461,0,0.040099,
+ 0,1,0,0.64097,0,0.065405,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.646435,0,0.040846,
+ 0,1,0,0.658856,0,0.033146,
+ 0,1,0,0.658856,0,0.033146,
+ 0,1,0,0.646435,0,0.040846,
+ 0,1,0,0.658114,0,0.033868,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.658856,0,0.033146,
+ 0,1,0,0.660833,0,0.041706,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.660833,0,0.041706,
+ 0,1,0,0.66702,0,0.042964,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.66702,0,0.042964,
+ 0,1,0,0.667649,0,0.066339,
+ 0,1,0,0.67251,0,0.024493,
+ 0,1,0,0.667649,0,0.066339,
+ 0,1,0,0.671724,0,0.060605,
+ 0,1,0,0.733263,0,0.068956,
+ 0,1,0,0.724391,0,0.035637,
+ 0,1,0,0.724391,0,0.067731,
+ 0,1,0,0.724391,0,0.035637,
+ 0,1,0,0.733263,0,0.068956,
+ 0,1,0,0.731575,0,0.035178,
+ 0,1,0,0.751012,0,0.070143,
+ 0,1,0,0.745822,0,0.032981,
+ 0,1,0,0.744276,0,0.067174,
+ 0,1,0,0.686573,0,0.025396,
+ 0,1,0,0.702004,0,0.036422,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.702004,0,0.036422,
+ 0,1,0,0.686573,0,0.025396,
+ 0,1,0,0.693908,0,0.039314,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.702004,0,0.036422,
+ 0,1,0,0.705222,0,0.035648,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.705222,0,0.035648,
+ 0,1,0,0.724391,0,0.035637,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.724391,0,0.035637,
+ 0,1,0,0.731575,0,0.035178,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.731575,0,0.035178,
+ 0,1,0,0.745822,0,0.032981,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.745822,0,0.032981,
+ 0,1,0,0.751012,0,0.070143,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.751012,0,0.070143,
+ 0,1,0,0.751251,0,0.069879,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.686573,0,0.025396,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.758328,0,0.022225,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.752838,0,0.022247,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.758328,0,0.022225,
+ 0,1,0,0.760717,0,0.023705,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.760717,0,0.023705,
+ 0,1,0,0.763686,0,0.029793,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.763686,0,0.029793,
+ 0,1,0,0.775494,0,0.029431,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.775494,0,0.029431,
+ 0,1,0,0.815305,0,0.030123,
+ 0,1,0,0.815305,0,0.030123,
+ 0,1,0,0.775494,0,0.029431,
+ 0,1,0,0.793924,0,0.030164,
+ 0,1,0,0.793924,0,0.030164,
+ 0,1,0,0.775494,0,0.029431,
+ 0,1,0,0.777172,0,0.032133,
+ 0,1,0,0.793924,0,0.030164,
+ 0,1,0,0.777172,0,0.032133,
+ 0,1,0,0.792169,0,0.030598,
+ 0,1,0,0.792169,0,0.030598,
+ 0,1,0,0.777172,0,0.032133,
+ 0,1,0,0.780437,0,0.034775,
+ 0,1,0,0.792169,0,0.030598,
+ 0,1,0,0.780437,0,0.034775,
+ 0,1,0,0.783285,0,0.035582,
+ 0,1,0,0.792169,0,0.030598,
+ 0,1,0,0.783285,0,0.035582,
+ 0,1,0,0.785043,0,0.03528,
+ 0,1,0,0.815305,0,0.030123,
+ 0,1,0,0.793924,0,0.030164,
+ 0,1,0,0.804859,0,0.033487,
+ 0,1,0,0.800558,0,0.159259,
+ 0,1,0,0.787813,0,0.145168,
+ 0,1,0,0.784219,0,0.148766,
+ 0,1,0,0.787813,0,0.145168,
+ 0,1,0,0.800558,0,0.159259,
+ 0,1,0,0.796022,0,0.149859,
+ 0,1,0,0.796022,0,0.149859,
+ 0,1,0,0.800558,0,0.159259,
+ 0,1,0,0.799435,0,0.133145,
+ 0,1,0,0.799435,0,0.133145,
+ 0,1,0,0.792353,0,0.128543,
+ 0,1,0,0.790974,0,0.134211,
+ 0,1,0,0.792353,0,0.128543,
+ 0,1,0,0.799435,0,0.133145,
+ 0,1,0,0.797658,0,0.124415,
+ 0,1,0,0.797658,0,0.124415,
+ 0,1,0,0.799435,0,0.133145,
+ 0,1,0,0.804859,0,0.033487,
+ 0,1,0,0.804859,0,0.033487,
+ 0,1,0,0.799435,0,0.133145,
+ 0,1,0,0.800558,0,0.159259,
+ 0,1,0,0.804859,0,0.033487,
+ 0,1,0,0.800558,0,0.159259,
+ 0,1,0,0.815305,0,0.030123,
+ 0,1,0,0.815305,0,0.030123,
+ 0,1,0,0.777658,0,-0.051804,
+ 0,1,0,0.773649,0,-0.052537,
+ 0,1,0,0.777658,0,-0.051804,
+ 0,1,0,0.815305,0,0.030123,
+ 0,1,0,0.845392,0,-0.047089,
+ 0,1,0,0.86606,0,0.023103,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.845392,0,-0.047089,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.86606,0,0.023103,
+ 0,1,0,0.886731,0,0.026124,
+ 0,1,0,0.841367,0,0.029285,
+ 0,1,0,0.845392,0,-0.047089,
+ 0,1,0,0.815305,0,0.030123,
+ 0,1,0,0.845392,0,-0.047089,
+ 0,1,0,0.841367,0,0.029285,
+ 0,1,0,0.851862,0,0.025179,
+ 0,1,0,0.845392,0,-0.047089,
+ 0,1,0,0.851862,0,0.025179,
+ 0,1,0,0.853977,0,0.024647,
+ 0,1,0,0.845392,0,-0.047089,
+ 0,1,0,0.853977,0,0.024647,
+ 0,1,0,0.86606,0,0.023103,
+ 0,1,0,0.886731,0,0.026124,
+ 0,1,0,0.86606,0,0.023103,
+ 0,1,0,0.879107,0,0.033745,
+ 0,1,0,0.93232,0,0.028568,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.886731,0,0.026124,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.93232,0,0.028568,
+ 0,1,0,0.936722,0,0.029307,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.936722,0,0.029307,
+ 0,1,0,0.941445,0,0.029359,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.941445,0,0.029359,
+ 0,1,0,0.942786,0,0.0299,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.942786,0,0.0299,
+ 0,1,0,0.955336,0,0.037642,
+ 0,1,0,0.957862,0,0.037913,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.955336,0,0.037642,
+ 0,1,0,0.964659,0,-0.059776,
+ 0,1,0,0.957862,0,0.037913,
+ 0,1,0,0.967828,0,0.035511
+};
+static const struct gllist ships_ship2_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 648, ships_ship2_data, 0
+};
+const struct gllist *ships_ship2 = &ships_ship2_frame;
+
+static const float ships_ship3_data[] = {
+ 0,1,0,0.015851,0,0.046394,
+ 0,1,0,0.015929,0,0.038282,
+ 0,1,0,0.014266,0,0.040885,
+ 0,1,0,0.015929,0,0.038282,
+ 0,1,0,0.015851,0,0.046394,
+ 0,1,0,0.018182,0,0.047508,
+ 0,1,0,0.015929,0,0.038282,
+ 0,1,0,0.018182,0,0.047508,
+ 0,1,0,0.019779,0,0.038229,
+ 0,1,0,0.019779,0,0.038229,
+ 0,1,0,0.018182,0,0.047508,
+ 0,1,0,0.035945,0,0.047566,
+ 0,1,0,0.019779,0,0.038229,
+ 0,1,0,0.035945,0,0.047566,
+ 0,1,0,0.02188,0,0.036875,
+ 0,1,0,0.02188,0,0.036875,
+ 0,1,0,0.035945,0,0.047566,
+ 0,1,0,0.029478,0,0.024544,
+ 0,1,0,0.029478,0,0.024544,
+ 0,1,0,0.035945,0,0.047566,
+ 0,1,0,0.037645,0,0.003234,
+ 0,1,0,0.037645,0,0.003234,
+ 0,1,0,0.035945,0,0.047566,
+ 0,1,0,0.042065,0,0.052086,
+ 0,1,0,0.037645,0,0.003234,
+ 0,1,0,0.042065,0,0.052086,
+ 0,1,0,0.040264,0,-0.011908,
+ 0,1,0,0.040264,0,-0.011908,
+ 0,1,0,0.042065,0,0.052086,
+ 0,1,0,0.040536,0,-0.021064,
+ 0,1,0,0.040536,0,-0.021064,
+ 0,1,0,0.042065,0,0.052086,
+ 0,1,0,0.041948,0,-0.030472,
+ 0,1,0,0.041948,0,-0.030472,
+ 0,1,0,0.042065,0,0.052086,
+ 0,1,0,0.053729,0,0.047541,
+ 0,1,0,0.053729,0,0.047541,
+ 0,1,0,0.042065,0,0.052086,
+ 0,1,0,0.044194,0,0.054994,
+ 0,1,0,0.053729,0,0.047541,
+ 0,1,0,0.044194,0,0.054994,
+ 0,1,0,0.049793,0,0.051119,
+ 0,1,0,0.049793,0,0.051119,
+ 0,1,0,0.044194,0,0.054994,
+ 0,1,0,0.048873,0,0.056721,
+ 0,1,0,0.049793,0,0.051119,
+ 0,1,0,0.048873,0,0.056721,
+ 0,1,0,0.049708,0,0.055744,
+ 0,1,0,0.295437,0,0.189535,
+ 0,1,0,0.295348,0,0.125306,
+ 0,1,0,0.292194,0,0.125174,
+ 0,1,0,0.295348,0,0.125306,
+ 0,1,0,0.295437,0,0.189535,
+ 0,1,0,0.298384,0,0.189681,
+ 0,1,0,0.298384,0,0.189681,
+ 0,1,0,0.295437,0,0.189535,
+ 0,1,0,0.29722,0,0.191215,
+ 0,1,0,0.290227,0,0.117533,
+ 0,1,0,0.295356,0,0.120633,
+ 0,1,0,0.289122,0,0.111447,
+ 0,1,0,0.295356,0,0.120633,
+ 0,1,0,0.290227,0,0.117533,
+ 0,1,0,0.292194,0,0.125174,
+ 0,1,0,0.295356,0,0.120633,
+ 0,1,0,0.292194,0,0.125174,
+ 0,1,0,0.295348,0,0.125306,
+ 0,1,0,0.053729,0,0.047541,
+ 0,1,0,0.045608,0,-0.036047,
+ 0,1,0,0.041948,0,-0.030472,
+ 0,1,0,0.045608,0,-0.036047,
+ 0,1,0,0.053729,0,0.047541,
+ 0,1,0,0.063489,0,-0.048855,
+ 0,1,0,0.063489,0,-0.048855,
+ 0,1,0,0.053729,0,0.047541,
+ 0,1,0,0.073036,0,0.047538,
+ 0,1,0,0.063489,0,-0.048855,
+ 0,1,0,0.073036,0,0.047538,
+ 0,1,0,0.07063,0,-0.057463,
+ 0,1,0,0.07063,0,-0.057463,
+ 0,1,0,0.073036,0,0.047538,
+ 0,1,0,0.071931,0,-0.074179,
+ 0,1,0,0.071931,0,-0.074179,
+ 0,1,0,0.073036,0,0.047538,
+ 0,1,0,0.073929,0,-0.07413,
+ 0,1,0,0.073929,0,-0.07413,
+ 0,1,0,0.073036,0,0.047538,
+ 0,1,0,0.080232,0,0.046154,
+ 0,1,0,0.073929,0,-0.07413,
+ 0,1,0,0.080232,0,0.046154,
+ 0,1,0,0.079608,0,-0.072847,
+ 0,1,0,0.079608,0,-0.072847,
+ 0,1,0,0.080232,0,0.046154,
+ 0,1,0,0.095979,0,0.048639,
+ 0,1,0,0.095979,0,0.048639,
+ 0,1,0,0.080232,0,0.046154,
+ 0,1,0,0.093136,0,0.048192,
+ 0,1,0,0.093136,0,0.048192,
+ 0,1,0,0.080232,0,0.046154,
+ 0,1,0,0.08401,0,0.04815,
+ 0,1,0,0.066853,0,-0.066771,
+ 0,1,0,0.071931,0,-0.074179,
+ 0,1,0,0.066006,0,-0.069836,
+ 0,1,0,0.071931,0,-0.074179,
+ 0,1,0,0.066853,0,-0.066771,
+ 0,1,0,0.068385,0,-0.066732,
+ 0,1,0,0.071931,0,-0.074179,
+ 0,1,0,0.068385,0,-0.066732,
+ 0,1,0,0.07063,0,-0.057463,
+ 0,1,0,0.095979,0,0.048639,
+ 0,1,0,0.095594,0,-0.07618,
+ 0,1,0,0.079608,0,-0.072847,
+ 0,1,0,0.095594,0,-0.07618,
+ 0,1,0,0.095979,0,0.048639,
+ 0,1,0,0.107623,0,-0.080766,
+ 0,1,0,0.107623,0,-0.080766,
+ 0,1,0,0.095979,0,0.048639,
+ 0,1,0,0.099578,0,0.054939,
+ 0,1,0,0.107623,0,-0.080766,
+ 0,1,0,0.099578,0,0.054939,
+ 0,1,0,0.104217,0,0.056863,
+ 0,1,0,0.107623,0,-0.080766,
+ 0,1,0,0.104217,0,0.056863,
+ 0,1,0,0.112866,0,0.056826,
+ 0,1,0,0.107623,0,-0.080766,
+ 0,1,0,0.112866,0,0.056826,
+ 0,1,0,0.112866,0,0.049101,
+ 0,1,0,0.107623,0,-0.080766,
+ 0,1,0,0.112866,0,0.049101,
+ 0,1,0,0.117782,0,-0.082199,
+ 0,1,0,0.117782,0,-0.082199,
+ 0,1,0,0.112866,0,0.049101,
+ 0,1,0,0.120566,0,0.049101,
+ 0,1,0,0.117782,0,-0.082199,
+ 0,1,0,0.120566,0,0.049101,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.120566,0,0.049101,
+ 0,1,0,0.122811,0,0.049147,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.122811,0,0.049147,
+ 0,1,0,0.132573,0,0.050735,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.132573,0,0.050735,
+ 0,1,0,0.143604,0,0.049297,
+ 0,1,0,0.151725,0,0.053824,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.143604,0,0.049297,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.151725,0,0.053824,
+ 0,1,0,0.153019,0,0.055208,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.153019,0,0.055208,
+ 0,1,0,0.160992,0,0.05183,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.160992,0,0.05183,
+ 0,1,0,0.161772,0,0.050677,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.161772,0,0.050677,
+ 0,1,0,0.163342,0,0.052327,
+ 0,1,0,0.162074,0,-0.085334,
+ 0,1,0,0.163342,0,0.052327,
+ 0,1,0,0.164064,0,-0.086036,
+ 0,1,0,0.164064,0,-0.086036,
+ 0,1,0,0.163342,0,0.052327,
+ 0,1,0,0.179323,0,-0.085322,
+ 0,1,0,0.179323,0,-0.085322,
+ 0,1,0,0.163342,0,0.052327,
+ 0,1,0,0.210986,0,-0.085355,
+ 0,1,0,0.210986,0,-0.085355,
+ 0,1,0,0.163342,0,0.052327,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.164064,0,-0.086036,
+ 0,1,0,0.179323,0,-0.085322,
+ 0,1,0,0.174355,0,-0.086232,
+ 0,1,0,0.164004,0,0.058998,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.163342,0,0.052327,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.164004,0,0.058998,
+ 0,1,0,0.166036,0,0.0644,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.166036,0,0.0644,
+ 0,1,0,0.176335,0,0.078644,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.176335,0,0.078644,
+ 0,1,0,0.181777,0,0.081599,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.181777,0,0.081599,
+ 0,1,0,0.201083,0,0.081563,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.201083,0,0.081563,
+ 0,1,0,0.205442,0,0.082139,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.205442,0,0.082139,
+ 0,1,0,0.222419,0,0.080429,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.222419,0,0.080429,
+ 0,1,0,0.22596,0,0.081582,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.22596,0,0.081582,
+ 0,1,0,0.235552,0,0.080432,
+ 0,1,0,0.226909,0,-0.085975,
+ 0,1,0,0.235552,0,0.080432,
+ 0,1,0,0.242832,0,-0.086596,
+ 0,1,0,0.242832,0,-0.086596,
+ 0,1,0,0.235552,0,0.080432,
+ 0,1,0,0.262862,0,-0.08689,
+ 0,1,0,0.262862,0,-0.08689,
+ 0,1,0,0.235552,0,0.080432,
+ 0,1,0,0.283076,0,-0.088384,
+ 0,1,0,0.237151,0,0.081245,
+ 0,1,0,0.283076,0,-0.088384,
+ 0,1,0,0.235552,0,0.080432,
+ 0,1,0,0.283076,0,-0.088384,
+ 0,1,0,0.237151,0,0.081245,
+ 0,1,0,0.25104,0,0.090562,
+ 0,1,0,0.283076,0,-0.088384,
+ 0,1,0,0.25104,0,0.090562,
+ 0,1,0,0.262936,0,0.095569,
+ 0,1,0,0.283076,0,-0.088384,
+ 0,1,0,0.262936,0,0.095569,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.283076,0,-0.088384,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.336118,0,-0.084098,
+ 0,1,0,0.283076,0,-0.088384,
+ 0,1,0,0.336118,0,-0.084098,
+ 0,1,0,0.321823,0,-0.086865,
+ 0,1,0,0.278458,0,0.097208,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.262936,0,0.095569,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.278458,0,0.097208,
+ 0,1,0,0.284215,0,0.102654,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.284215,0,0.102654,
+ 0,1,0,0.288497,0,0.109486,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.288497,0,0.109486,
+ 0,1,0,0.289122,0,0.111447,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.289122,0,0.111447,
+ 0,1,0,0.295356,0,0.120633,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.295356,0,0.120633,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.350542,0,-0.081588,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.364966,0,-0.079077,
+ 0,1,0,0.298197,0,0.122344,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.295356,0,0.120633,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.298197,0,0.122344,
+ 0,1,0,0.305665,0,0.124623,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.305665,0,0.124623,
+ 0,1,0,0.322084,0,0.123258,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.322084,0,0.123258,
+ 0,1,0,0.325168,0,0.12322,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.325168,0,0.12322,
+ 0,1,0,0.33646,0,0.127836,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.33646,0,0.127836,
+ 0,1,0,0.357946,0,0.146587,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.357946,0,0.146587,
+ 0,1,0,0.362818,0,0.147952,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.362818,0,0.147952,
+ 0,1,0,0.385985,0,0.148029,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.385985,0,0.148029,
+ 0,1,0,0.396055,0,0.148029,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.396055,0,0.148029,
+ 0,1,0,0.397327,0,0.147452,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.397327,0,0.147452,
+ 0,1,0,0.39755,0,0.147372,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.39755,0,0.147372,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.402829,0,-0.069765,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.448393,0,-0.069842,
+ 0,1,0,0.448393,0,-0.069842,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.452983,0,-0.069752,
+ 0,1,0,0.387946,0,0.149451,
+ 0,1,0,0.396055,0,0.148029,
+ 0,1,0,0.385985,0,0.148029,
+ 0,1,0,0.396055,0,0.148029,
+ 0,1,0,0.387946,0,0.149451,
+ 0,1,0,0.392417,0,0.149679,
+ 0,1,0,0.392417,0,0.149679,
+ 0,1,0,0.387946,0,0.149451,
+ 0,1,0,0.389737,0,0.16196,
+ 0,1,0,0.392417,0,0.149679,
+ 0,1,0,0.389737,0,0.16196,
+ 0,1,0,0.391512,0,0.158236,
+ 0,1,0,0.391512,0,0.158236,
+ 0,1,0,0.389737,0,0.16196,
+ 0,1,0,0.391138,0,0.169794,
+ 0,1,0,0.39265,0,0.179964,
+ 0,1,0,0.391512,0,0.158236,
+ 0,1,0,0.391138,0,0.169794,
+ 0,1,0,0.391512,0,0.158236,
+ 0,1,0,0.39265,0,0.179964,
+ 0,1,0,0.394239,0,0.174853,
+ 0,1,0,0.394239,0,0.174853,
+ 0,1,0,0.39265,0,0.179964,
+ 0,1,0,0.397569,0,0.204221,
+ 0,1,0,0.394239,0,0.174853,
+ 0,1,0,0.397569,0,0.204221,
+ 0,1,0,0.40666,0,0.219098,
+ 0,1,0,0.40666,0,0.219098,
+ 0,1,0,0.397569,0,0.204221,
+ 0,1,0,0.404345,0,0.223788,
+ 0,1,0,0.40666,0,0.219098,
+ 0,1,0,0.404345,0,0.223788,
+ 0,1,0,0.408002,0,0.244733,
+ 0,1,0,0.40666,0,0.219098,
+ 0,1,0,0.408002,0,0.244733,
+ 0,1,0,0.408099,0,0.224636,
+ 0,1,0,0.408099,0,0.224636,
+ 0,1,0,0.408002,0,0.244733,
+ 0,1,0,0.408103,0,0.249253,
+ 0,1,0,0.408099,0,0.224636,
+ 0,1,0,0.408103,0,0.249253,
+ 0,1,0,0.409262,0,0.230389,
+ 0,1,0,0.409262,0,0.230389,
+ 0,1,0,0.408103,0,0.249253,
+ 0,1,0,0.409766,0,0.262537,
+ 0,1,0,0.409262,0,0.230389,
+ 0,1,0,0.409766,0,0.262537,
+ 0,1,0,0.409683,0,0.234017,
+ 0,1,0,0.409683,0,0.234017,
+ 0,1,0,0.409766,0,0.262537,
+ 0,1,0,0.410439,0,0.237557,
+ 0,1,0,0.410439,0,0.237557,
+ 0,1,0,0.409766,0,0.262537,
+ 0,1,0,0.411514,0,0.264809,
+ 0,1,0,0.410439,0,0.237557,
+ 0,1,0,0.411514,0,0.264809,
+ 0,1,0,0.410716,0,0.23952,
+ 0,1,0,0.410716,0,0.23952,
+ 0,1,0,0.411514,0,0.264809,
+ 0,1,0,0.411294,0,0.23952,
+ 0,1,0,0.411294,0,0.23952,
+ 0,1,0,0.411514,0,0.264809,
+ 0,1,0,0.412466,0,0.250129,
+ 0,1,0,0.412466,0,0.250129,
+ 0,1,0,0.411514,0,0.264809,
+ 0,1,0,0.413564,0,0.265255,
+ 0,1,0,0.412466,0,0.250129,
+ 0,1,0,0.413564,0,0.265255,
+ 0,1,0,0.414263,0,0.261778,
+ 0,1,0,0.414263,0,0.261778,
+ 0,1,0,0.413564,0,0.265255,
+ 0,1,0,0.414269,0,0.264074,
+ 0,1,0,0.410716,0,0.237056,
+ 0,1,0,0.410439,0,0.237557,
+ 0,1,0,0.410716,0,0.23952,
+ 0,1,0,0.449951,0,0.131491,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.449885,0,0.112195,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.449951,0,0.131491,
+ 0,1,0,0.456562,0,0.143466,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.456562,0,0.143466,
+ 0,1,0,0.461568,0,0.148136,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.461568,0,0.148136,
+ 0,1,0,0.488701,0,0.15421,
+ 0,1,0,0.488701,0,0.15421,
+ 0,1,0,0.461568,0,0.148136,
+ 0,1,0,0.470528,0,0.152711,
+ 0,1,0,0.488701,0,0.15421,
+ 0,1,0,0.470528,0,0.152711,
+ 0,1,0,0.478978,0,0.154784,
+ 0,1,0,0.397327,0,0.148029,
+ 0,1,0,0.397327,0,0.147452,
+ 0,1,0,0.396055,0,0.148029,
+ 0,1,0,0.397327,0,0.147452,
+ 0,1,0,0.397327,0,0.148029,
+ 0,1,0,0.39755,0,0.147372,
+ 0,1,0,0.414121,0,0.239961,
+ 0,1,0,0.412797,0,0.232563,
+ 0,1,0,0.412797,0,0.23952,
+ 0,1,0,0.412797,0,0.232563,
+ 0,1,0,0.412705,0,0.228176,
+ 0,1,0,0.412671,0,0.232563,
+ 0,1,0,0.412705,0,0.228176,
+ 0,1,0,0.412797,0,0.232563,
+ 0,1,0,0.414375,0,0.214159,
+ 0,1,0,0.414375,0,0.214159,
+ 0,1,0,0.412797,0,0.232563,
+ 0,1,0,0.414121,0,0.239961,
+ 0,1,0,0.414375,0,0.214159,
+ 0,1,0,0.414121,0,0.239961,
+ 0,1,0,0.415751,0,0.237628,
+ 0,1,0,0.414375,0,0.214159,
+ 0,1,0,0.415751,0,0.237628,
+ 0,1,0,0.41744,0,0.195384,
+ 0,1,0,0.41744,0,0.195384,
+ 0,1,0,0.415751,0,0.237628,
+ 0,1,0,0.417574,0,0.222045,
+ 0,1,0,0.41744,0,0.195384,
+ 0,1,0,0.417574,0,0.222045,
+ 0,1,0,0.418892,0,0.189839,
+ 0,1,0,0.418892,0,0.189839,
+ 0,1,0,0.417574,0,0.222045,
+ 0,1,0,0.420163,0,0.207736,
+ 0,1,0,0.418892,0,0.189839,
+ 0,1,0,0.420163,0,0.207736,
+ 0,1,0,0.422448,0,0.176471,
+ 0,1,0,0.422448,0,0.176471,
+ 0,1,0,0.420163,0,0.207736,
+ 0,1,0,0.420471,0,0.206322,
+ 0,1,0,0.422448,0,0.176471,
+ 0,1,0,0.420471,0,0.206322,
+ 0,1,0,0.422094,0,0.189984,
+ 0,1,0,0.422448,0,0.176471,
+ 0,1,0,0.422094,0,0.189984,
+ 0,1,0,0.422204,0,0.18577,
+ 0,1,0,0.422448,0,0.176471,
+ 0,1,0,0.422204,0,0.18577,
+ 0,1,0,0.422281,0,0.185797,
+ 0,1,0,0.422448,0,0.176471,
+ 0,1,0,0.422281,0,0.185797,
+ 0,1,0,0.445986,0,0.117057,
+ 0,1,0,0.422448,0,0.176471,
+ 0,1,0,0.445986,0,0.117057,
+ 0,1,0,0.440637,0,0.123725,
+ 0,1,0,0.440637,0,0.123725,
+ 0,1,0,0.445986,0,0.117057,
+ 0,1,0,0.446342,0,0.105798,
+ 0,1,0,0.446342,0,0.105798,
+ 0,1,0,0.445986,0,0.117057,
+ 0,1,0,0.449885,0,0.112195,
+ 0,1,0,0.404666,0,0.144819,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.39755,0,0.147372,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.404666,0,0.144819,
+ 0,1,0,0.417249,0,0.137992,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.417249,0,0.137992,
+ 0,1,0,0.417828,0,0.135939,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.417828,0,0.135939,
+ 0,1,0,0.418963,0,0.137857,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.418963,0,0.137857,
+ 0,1,0,0.420489,0,0.14266,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.420489,0,0.14266,
+ 0,1,0,0.423494,0,0.136547,
+ 0,1,0,0.423494,0,0.136547,
+ 0,1,0,0.420489,0,0.14266,
+ 0,1,0,0.423393,0,0.140375,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.423494,0,0.136547,
+ 0,1,0,0.426619,0,0.128495,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.426619,0,0.128495,
+ 0,1,0,0.446342,0,0.105798,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.446342,0,0.105798,
+ 0,1,0,0.449885,0,0.112195,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.449885,0,0.112195,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.47088,0,-0.068458,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.472985,0,-0.079165,
+ 0,1,0,0.472985,0,-0.079165,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.477482,0,-0.083803,
+ 0,1,0,0.477482,0,-0.083803,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.493522,0,-0.08792,
+ 0,1,0,0.493522,0,-0.08792,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.503354,0,-0.089342,
+ 0,1,0,0.503354,0,-0.089342,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.50828,0,-0.088395,
+ 0,1,0,0.50828,0,-0.088395,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.534723,0,-0.08711,
+ 0,1,0,0.534723,0,-0.08711,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.523233,0,0.184872,
+ 0,1,0,0.522566,0,0.172052,
+ 0,1,0,0.522412,0,0.19779,
+ 0,1,0,0.503876,0,0.164781,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.495993,0,0.155045,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.503876,0,0.164781,
+ 0,1,0,0.507138,0,0.175776,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.507138,0,0.175776,
+ 0,1,0,0.511315,0,0.197987,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.511315,0,0.197987,
+ 0,1,0,0.511757,0,0.204784,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.511757,0,0.204784,
+ 0,1,0,0.515058,0,0.208096,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.515058,0,0.208096,
+ 0,1,0,0.517911,0,0.206731,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.517911,0,0.206731,
+ 0,1,0,0.522566,0,0.172052,
+ 0,1,0,0.522566,0,0.172052,
+ 0,1,0,0.517911,0,0.206731,
+ 0,1,0,0.522412,0,0.19779,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.522566,0,0.172052,
+ 0,1,0,0.525238,0,0.168112,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.525238,0,0.168112,
+ 0,1,0,0.541531,0,0.157186,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.541531,0,0.157186,
+ 0,1,0,0.550193,0,0.142374,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.550193,0,0.142374,
+ 0,1,0,0.550431,0,0.139425,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.550431,0,0.139425,
+ 0,1,0,0.555635,0,0.135535,
+ 0,1,0,0.557055,0,-0.086961,
+ 0,1,0,0.555635,0,0.135535,
+ 0,1,0,0.579593,0,-0.085334,
+ 0,1,0,0.579593,0,-0.085334,
+ 0,1,0,0.555635,0,0.135535,
+ 0,1,0,0.598969,0,-0.084539,
+ 0,1,0,0.569712,0,0.137066,
+ 0,1,0,0.570459,0,0.127076,
+ 0,1,0,0.570371,0,0.122531,
+ 0,1,0,0.570459,0,0.127076,
+ 0,1,0,0.569712,0,0.137066,
+ 0,1,0,0.571755,0,0.13583,
+ 0,1,0,0.590147,0,0.136555,
+ 0,1,0,0.589106,0,0.113213,
+ 0,1,0,0.588142,0,0.137089,
+ 0,1,0,0.589106,0,0.113213,
+ 0,1,0,0.590147,0,0.136555,
+ 0,1,0,0.591503,0,0.117398,
+ 0,1,0,0.591503,0,0.117398,
+ 0,1,0,0.590147,0,0.136555,
+ 0,1,0,0.596161,0,0.12439,
+ 0,1,0,0.591503,0,0.117398,
+ 0,1,0,0.596161,0,0.12439,
+ 0,1,0,0.595853,0,0.123322,
+ 0,1,0,0.555635,0,0.135535,
+ 0,1,0,0.570371,0,0.122531,
+ 0,1,0,0.598969,0,-0.084539,
+ 0,1,0,0.570371,0,0.122531,
+ 0,1,0,0.555635,0,0.135535,
+ 0,1,0,0.569712,0,0.137066,
+ 0,1,0,0.598969,0,-0.084539,
+ 0,1,0,0.570371,0,0.122531,
+ 0,1,0,0.577399,0,0.12947,
+ 0,1,0,0.598969,0,-0.084539,
+ 0,1,0,0.577399,0,0.12947,
+ 0,1,0,0.589106,0,0.113213,
+ 0,1,0,0.589106,0,0.113213,
+ 0,1,0,0.577399,0,0.12947,
+ 0,1,0,0.588142,0,0.137089,
+ 0,1,0,0.598969,0,-0.084539,
+ 0,1,0,0.589106,0,0.113213,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.598969,0,-0.084539,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.618344,0,-0.083744,
+ 0,1,0,0.618344,0,-0.083744,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.620558,0,-0.083594,
+ 0,1,0,0.638795,0,0.138343,
+ 0,1,0,0.630773,0,0.109371,
+ 0,1,0,0.628868,0,0.134444,
+ 0,1,0,0.630773,0,0.109371,
+ 0,1,0,0.638795,0,0.138343,
+ 0,1,0,0.635865,0,0.11419,
+ 0,1,0,0.635865,0,0.11419,
+ 0,1,0,0.638795,0,0.138343,
+ 0,1,0,0.641805,0,0.120056,
+ 0,1,0,0.641805,0,0.120056,
+ 0,1,0,0.638795,0,0.138343,
+ 0,1,0,0.640371,0,0.13732,
+ 0,1,0,0.641805,0,0.120056,
+ 0,1,0,0.640371,0,0.13732,
+ 0,1,0,0.644216,0,0.129739,
+ 0,1,0,0.593283,0,0.112433,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.589106,0,0.113213,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.593283,0,0.112433,
+ 0,1,0,0.608183,0,0.115627,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.608183,0,0.115627,
+ 0,1,0,0.620228,0,0.125744,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.620228,0,0.125744,
+ 0,1,0,0.628868,0,0.134444,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.628868,0,0.134444,
+ 0,1,0,0.630773,0,0.109371,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.630773,0,0.109371,
+ 0,1,0,0.632083,0,0.099196,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.632083,0,0.099196,
+ 0,1,0,0.633435,0,0.097076,
+ 0,1,0,0.636807,0,-0.079832,
+ 0,1,0,0.633435,0,0.097076,
+ 0,1,0,0.659098,0,-0.082422,
+ 0,1,0,0.659098,0,-0.082422,
+ 0,1,0,0.633435,0,0.097076,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.683151,0,0.104598,
+ 0,1,0,0.676838,0,0.095602,
+ 0,1,0,0.67674,0,0.096198,
+ 0,1,0,0.676838,0,0.095602,
+ 0,1,0,0.683151,0,0.104598,
+ 0,1,0,0.681594,0,0.095206,
+ 0,1,0,0.645913,0,0.095497,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.633435,0,0.097076,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.645913,0,0.095497,
+ 0,1,0,0.658364,0,0.095442,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.658364,0,0.095442,
+ 0,1,0,0.665007,0,0.092662,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.665007,0,0.092662,
+ 0,1,0,0.668193,0,0.093641,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.668193,0,0.093641,
+ 0,1,0,0.675042,0,0.093973,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.675042,0,0.093973,
+ 0,1,0,0.676838,0,0.095602,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.676838,0,0.095602,
+ 0,1,0,0.681594,0,0.095206,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.681594,0,0.095206,
+ 0,1,0,0.682756,0,0.094429,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.682756,0,0.094429,
+ 0,1,0,0.69471,0,0.095379,
+ 0,1,0,0.688136,0,-0.086747,
+ 0,1,0,0.69471,0,0.095379,
+ 0,1,0,0.697541,0,-0.085334,
+ 0,1,0,0.697541,0,-0.085334,
+ 0,1,0,0.69471,0,0.095379,
+ 0,1,0,0.714606,0,0.090823,
+ 0,1,0,0.697541,0,-0.085334,
+ 0,1,0,0.714606,0,0.090823,
+ 0,1,0,0.721669,0,-0.084006,
+ 0,1,0,0.721669,0,-0.084006,
+ 0,1,0,0.714606,0,0.090823,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.721669,0,-0.084006,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.740914,0,-0.08382,
+ 0,1,0,0.666293,0,0.147331,
+ 0,1,0,0.664464,0,0.129539,
+ 0,1,0,0.659941,0,0.133769,
+ 0,1,0,0.664464,0,0.129539,
+ 0,1,0,0.666293,0,0.147331,
+ 0,1,0,0.670008,0,0.146624,
+ 0,1,0,0.670008,0,0.146624,
+ 0,1,0,0.666293,0,0.147331,
+ 0,1,0,0.672392,0,0.152118,
+ 0,1,0,0.658491,0,0.105804,
+ 0,1,0,0.665007,0,0.092662,
+ 0,1,0,0.658364,0,0.095442,
+ 0,1,0,0.665007,0,0.092662,
+ 0,1,0,0.658491,0,0.105804,
+ 0,1,0,0.659941,0,0.133769,
+ 0,1,0,0.665007,0,0.092662,
+ 0,1,0,0.659941,0,0.133769,
+ 0,1,0,0.664565,0,0.096331,
+ 0,1,0,0.664565,0,0.096331,
+ 0,1,0,0.659941,0,0.133769,
+ 0,1,0,0.664464,0,0.129539,
+ 0,1,0,0.683316,0,0.128023,
+ 0,1,0,0.67432,0,0.110964,
+ 0,1,0,0.673619,0,0.119635,
+ 0,1,0,0.67432,0,0.110964,
+ 0,1,0,0.683316,0,0.128023,
+ 0,1,0,0.67674,0,0.096198,
+ 0,1,0,0.67674,0,0.096198,
+ 0,1,0,0.683316,0,0.128023,
+ 0,1,0,0.683151,0,0.104598,
+ 0,1,0,0.683151,0,0.104598,
+ 0,1,0,0.683316,0,0.128023,
+ 0,1,0,0.68523,0,0.10755,
+ 0,1,0,0.68523,0,0.10755,
+ 0,1,0,0.683316,0,0.128023,
+ 0,1,0,0.686054,0,0.131038,
+ 0,1,0,0.68523,0,0.10755,
+ 0,1,0,0.686054,0,0.131038,
+ 0,1,0,0.689344,0,0.118277,
+ 0,1,0,0.689344,0,0.118277,
+ 0,1,0,0.686054,0,0.131038,
+ 0,1,0,0.690758,0,0.15228,
+ 0,1,0,0.689344,0,0.118277,
+ 0,1,0,0.690758,0,0.15228,
+ 0,1,0,0.690744,0,0.135418,
+ 0,1,0,0.690744,0,0.135418,
+ 0,1,0,0.690758,0,0.15228,
+ 0,1,0,0.695374,0,0.151256,
+ 0,1,0,0.695374,0,0.151256,
+ 0,1,0,0.690758,0,0.15228,
+ 0,1,0,0.694023,0,0.154102,
+ 0,1,0,0.676838,0,0.095602,
+ 0,1,0,0.675042,0,0.093973,
+ 0,1,0,0.67674,0,0.096198,
+ 0,1,0,0.700699,0,0.113833,
+ 0,1,0,0.698637,0,0.107129,
+ 0,1,0,0.698607,0,0.110847,
+ 0,1,0,0.698637,0,0.107129,
+ 0,1,0,0.700699,0,0.113833,
+ 0,1,0,0.700027,0,0.1007,
+ 0,1,0,0.71142,0,0.121852,
+ 0,1,0,0.710934,0,0.096154,
+ 0,1,0,0.706288,0,0.114609,
+ 0,1,0,0.710934,0,0.096154,
+ 0,1,0,0.71142,0,0.121852,
+ 0,1,0,0.712349,0,0.097834,
+ 0,1,0,0.712349,0,0.097834,
+ 0,1,0,0.71142,0,0.121852,
+ 0,1,0,0.718607,0,0.119625,
+ 0,1,0,0.712349,0,0.097834,
+ 0,1,0,0.718607,0,0.119625,
+ 0,1,0,0.716207,0,0.10467,
+ 0,1,0,0.716207,0,0.10467,
+ 0,1,0,0.718607,0,0.119625,
+ 0,1,0,0.720963,0,0.115796,
+ 0,1,0,0.700027,0,0.1007,
+ 0,1,0,0.714606,0,0.090823,
+ 0,1,0,0.69471,0,0.095379,
+ 0,1,0,0.714606,0,0.090823,
+ 0,1,0,0.700027,0,0.1007,
+ 0,1,0,0.710934,0,0.096154,
+ 0,1,0,0.710934,0,0.096154,
+ 0,1,0,0.700027,0,0.1007,
+ 0,1,0,0.700699,0,0.113833,
+ 0,1,0,0.710934,0,0.096154,
+ 0,1,0,0.700699,0,0.113833,
+ 0,1,0,0.70433,0,0.107742,
+ 0,1,0,0.70433,0,0.107742,
+ 0,1,0,0.700699,0,0.113833,
+ 0,1,0,0.703083,0,0.111247,
+ 0,1,0,0.710934,0,0.096154,
+ 0,1,0,0.70433,0,0.107742,
+ 0,1,0,0.706288,0,0.114609,
+ 0,1,0,0.72999,0,0.121899,
+ 0,1,0,0.726299,0,0.121245,
+ 0,1,0,0.724778,0,0.123159,
+ 0,1,0,0.726299,0,0.121245,
+ 0,1,0,0.72999,0,0.121899,
+ 0,1,0,0.727211,0,0.118538,
+ 0,1,0,0.727211,0,0.118538,
+ 0,1,0,0.72999,0,0.121899,
+ 0,1,0,0.728191,0,0.109149,
+ 0,1,0,0.717693,0,0.090808,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.714606,0,0.090823,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.717693,0,0.090808,
+ 0,1,0,0.724838,0,0.096644,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.724838,0,0.096644,
+ 0,1,0,0.728191,0,0.109149,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.728191,0,0.109149,
+ 0,1,0,0.72999,0,0.121899,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.72999,0,0.121899,
+ 0,1,0,0.735872,0,0.120998,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.735872,0,0.120998,
+ 0,1,0,0.746533,0,0.123297,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.746533,0,0.123297,
+ 0,1,0,0.75824,0,0.125027,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.75824,0,0.125027,
+ 0,1,0,0.769164,0,0.128267,
+ 0,1,0,0.760371,0,-0.082103,
+ 0,1,0,0.769164,0,0.128267,
+ 0,1,0,0.773434,0,-0.081962,
+ 0,1,0,0.773434,0,-0.081962,
+ 0,1,0,0.769164,0,0.128267,
+ 0,1,0,0.770977,0,0.129352,
+ 0,1,0,0.773434,0,-0.081962,
+ 0,1,0,0.770977,0,0.129352,
+ 0,1,0,0.780388,0,0.131047,
+ 0,1,0,0.773434,0,-0.081962,
+ 0,1,0,0.780388,0,0.131047,
+ 0,1,0,0.781407,0,-0.077168,
+ 0,1,0,0.781407,0,-0.077168,
+ 0,1,0,0.780388,0,0.131047,
+ 0,1,0,0.785378,0,0.128196,
+ 0,1,0,0.781407,0,-0.077168,
+ 0,1,0,0.785378,0,0.128196,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.785378,0,0.128196,
+ 0,1,0,0.798004,0,0.111252,
+ 0,1,0,0.798004,0,0.111252,
+ 0,1,0,0.785378,0,0.128196,
+ 0,1,0,0.795684,0,0.117865,
+ 0,1,0,0.798004,0,0.111252,
+ 0,1,0,0.795684,0,0.117865,
+ 0,1,0,0.797348,0,0.11477,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.798004,0,0.111252,
+ 0,1,0,0.802588,0,0.109414,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.802588,0,0.109414,
+ 0,1,0,0.807957,0,0.109245,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.807957,0,0.109245,
+ 0,1,0,0.810112,0,0.105565,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.810112,0,0.105565,
+ 0,1,0,0.809692,0,0.098815,
+ 0,1,0,0.698986,0,0.159118,
+ 0,1,0,0.697733,0,0.157344,
+ 0,1,0,0.697047,0,0.159257,
+ 0,1,0,0.697733,0,0.157344,
+ 0,1,0,0.698986,0,0.159118,
+ 0,1,0,0.704953,0,0.147311,
+ 0,1,0,0.704953,0,0.147311,
+ 0,1,0,0.698986,0,0.159118,
+ 0,1,0,0.700381,0,0.158805,
+ 0,1,0,0.704953,0,0.147311,
+ 0,1,0,0.700381,0,0.158805,
+ 0,1,0,0.707131,0,0.15673,
+ 0,1,0,0.704953,0,0.147311,
+ 0,1,0,0.707131,0,0.15673,
+ 0,1,0,0.70634,0,0.142556,
+ 0,1,0,0.70634,0,0.142556,
+ 0,1,0,0.707131,0,0.15673,
+ 0,1,0,0.713988,0,0.128847,
+ 0,1,0,0.713988,0,0.128847,
+ 0,1,0,0.707131,0,0.15673,
+ 0,1,0,0.709295,0,0.14924,
+ 0,1,0,0.713988,0,0.128847,
+ 0,1,0,0.709295,0,0.14924,
+ 0,1,0,0.712793,0,0.136003,
+ 0,1,0,0.713988,0,0.128847,
+ 0,1,0,0.712793,0,0.136003,
+ 0,1,0,0.720359,0,0.128477,
+ 0,1,0,0.713988,0,0.128847,
+ 0,1,0,0.720359,0,0.128477,
+ 0,1,0,0.724778,0,0.123159,
+ 0,1,0,0.724778,0,0.123159,
+ 0,1,0,0.720359,0,0.128477,
+ 0,1,0,0.72999,0,0.121899,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.785814,0,-0.077411,
+ 0,1,0,0.781407,0,-0.077168,
+ 0,1,0,0.785814,0,-0.077411,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.800677,0,-0.080722,
+ 0,1,0,0.800677,0,-0.080722,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.822454,0,-0.079411,
+ 0,1,0,0.822454,0,-0.079411,
+ 0,1,0,0.808261,0,0.092493,
+ 0,1,0,0.817664,0,0.087083,
+ 0,1,0,0.822454,0,-0.079411,
+ 0,1,0,0.817664,0,0.087083,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.822454,0,-0.079411,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.876622,0,-0.077509,
+ 0,1,0,0.876622,0,-0.077509,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.891471,0,-0.072365,
+ 0,1,0,0.876622,0,-0.077509,
+ 0,1,0,0.891471,0,-0.072365,
+ 0,1,0,0.886758,0,-0.075894,
+ 0,1,0,0.879236,0,0.103329,
+ 0,1,0,0.880494,0,0.087719,
+ 0,1,0,0.876092,0,0.089178,
+ 0,1,0,0.880494,0,0.087719,
+ 0,1,0,0.879236,0,0.103329,
+ 0,1,0,0.880933,0,0.112746,
+ 0,1,0,0.880494,0,0.087719,
+ 0,1,0,0.880933,0,0.112746,
+ 0,1,0,0.882485,0,0.101668,
+ 0,1,0,0.882485,0,0.101668,
+ 0,1,0,0.880933,0,0.112746,
+ 0,1,0,0.883682,0,0.116359,
+ 0,1,0,0.935113,0,0.086174,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.935113,0,0.086174,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.983297,0,-0.043914,
+ 0,1,0,0.983297,0,-0.043914,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.988108,0,-0.009716,
+ 0,1,0,0.983297,0,-0.043914,
+ 0,1,0,0.988108,0,-0.009716,
+ 0,1,0,0.987389,0,-0.028605,
+ 0,1,0,0.988108,0,-0.009716,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.990187,0,0.00336,
+ 0,1,0,0.988108,0,-0.009716,
+ 0,1,0,0.98919,0,-0.02392,
+ 0,1,0,0.987389,0,-0.028605,
+ 0,1,0,0.98919,0,-0.02392,
+ 0,1,0,0.988108,0,-0.009716,
+ 0,1,0,0.988446,0,-0.01112,
+ 0,1,0,0.832307,0,0.092813,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.817664,0,0.087083,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.832307,0,0.092813,
+ 0,1,0,0.837239,0,0.093877,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.837239,0,0.093877,
+ 0,1,0,0.852684,0,0.093915,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.852684,0,0.093915,
+ 0,1,0,0.868186,0,0.090299,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.868186,0,0.090299,
+ 0,1,0,0.874095,0,0.087813,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.874095,0,0.087813,
+ 0,1,0,0.876092,0,0.089178,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.876092,0,0.089178,
+ 0,1,0,0.880494,0,0.087719,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.880494,0,0.087719,
+ 0,1,0,0.889776,0,0.087627,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.889776,0,0.087627,
+ 0,1,0,0.930862,0,0.086184,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.930862,0,0.086184,
+ 0,1,0,0.935113,0,0.086174,
+ 0,1,0,0.990594,0,0.044208,
+ 0,1,0,0.988787,0,0.009887,
+ 0,1,0,0.979628,0,0.056886,
+ 0,1,0,0.988787,0,0.009887,
+ 0,1,0,0.990594,0,0.044208,
+ 0,1,0,0.992143,0,0.01847,
+ 0,1,0,0.992143,0,0.01847,
+ 0,1,0,0.990594,0,0.044208,
+ 0,1,0,0.996902,0,0.039876,
+ 0,1,0,0.992143,0,0.01847,
+ 0,1,0,0.996902,0,0.039876,
+ 0,1,0,0.998585,0,0.029074,
+ 0,1,0,0.998585,0,0.029074,
+ 0,1,0,0.996902,0,0.039876,
+ 0,1,0,0.999093,0,0.039624,
+ 0,1,0,0.916362,0,0.10467,
+ 0,1,0,0.914865,0,0.097326,
+ 0,1,0,0.914857,0,0.102711,
+ 0,1,0,0.914865,0,0.097326,
+ 0,1,0,0.916362,0,0.10467,
+ 0,1,0,0.91648,0,0.095495,
+ 0,1,0,0.91648,0,0.095495,
+ 0,1,0,0.916362,0,0.10467,
+ 0,1,0,0.927423,0,0.107904,
+ 0,1,0,0.91648,0,0.095495,
+ 0,1,0,0.927423,0,0.107904,
+ 0,1,0,0.921214,0,0.093992,
+ 0,1,0,0.921214,0,0.093992,
+ 0,1,0,0.927423,0,0.107904,
+ 0,1,0,0.935113,0,0.086174,
+ 0,1,0,0.935113,0,0.086174,
+ 0,1,0,0.927423,0,0.107904,
+ 0,1,0,0.945177,0,0.107786,
+ 0,1,0,0.935113,0,0.086174,
+ 0,1,0,0.945177,0,0.107786,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.945177,0,0.107786,
+ 0,1,0,0.956964,0,0.106578,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.956964,0,0.106578,
+ 0,1,0,0.962517,0,0.102149,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.962517,0,0.102149,
+ 0,1,0,0.973408,0,0.069285,
+ 0,1,0,0.973408,0,0.069285,
+ 0,1,0,0.962517,0,0.102149,
+ 0,1,0,0.972771,0,0.079921,
+ 0,1,0,0.972771,0,0.079921,
+ 0,1,0,0.962517,0,0.102149,
+ 0,1,0,0.972658,0,0.08315,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.973408,0,0.069285,
+ 0,1,0,0.976736,0,0.059775,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.976736,0,0.059775,
+ 0,1,0,0.979628,0,0.056886,
+ 0,1,0,0.989048,0,0.004923,
+ 0,1,0,0.979628,0,0.056886,
+ 0,1,0,0.988787,0,0.009887,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.915167,0,-0.070111,
+ 0,1,0,0.894145,0,-0.071426,
+ 0,1,0,0.915167,0,-0.070111,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.939839,0,-0.069902,
+ 0,1,0,0.939839,0,-0.069902,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.964695,0,-0.068243,
+ 0,1,0,0.964695,0,-0.068243,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.973177,0,-0.068253,
+ 0,1,0,0.973177,0,-0.068253,
+ 0,1,0,0.980026,0,-0.051806,
+ 0,1,0,0.980817,0,-0.058157,
+ 0,1,0,0.973177,0,-0.068253,
+ 0,1,0,0.980817,0,-0.058157,
+ 0,1,0,0.982753,0,-0.067376
+};
+static const struct gllist ships_ship3_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 1044, ships_ship3_data, 0
+};
+const struct gllist *ships_ship3 = &ships_ship3_frame;
+
+static const float ships_ship4_data[] = {
+ 0,1,0,0.304943,0,0.190323,
+ 0,1,0,0.326396,0,0.170348,
+ 0,1,0,0.299248,0,0.187399,
+ 0,1,0,0.326396,0,0.170348,
+ 0,1,0,0.304943,0,0.190323,
+ 0,1,0,0.345944,0,0.166544,
+ 0,1,0,0.246234,0,0.135536,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.245025,0,0.128414,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.246234,0,0.135536,
+ 0,1,0,0.257787,0,0.135536,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.257787,0,0.135536,
+ 0,1,0,0.262284,0,0.12738,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.262284,0,0.12738,
+ 0,1,0,0.273445,0,0.128616,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.273445,0,0.128616,
+ 0,1,0,0.273481,0,0.138748,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.273481,0,0.138748,
+ 0,1,0,0.275634,0,0.164606,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.275634,0,0.164606,
+ 0,1,0,0.28583,0,0.172039,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.28583,0,0.172039,
+ 0,1,0,0.297928,0,0.175909,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.297928,0,0.175909,
+ 0,1,0,0.326396,0,0.170348,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.326396,0,0.170348,
+ 0,1,0,0.358476,0,-0.020344,
+ 0,1,0,0.358476,0,-0.020344,
+ 0,1,0,0.326396,0,0.170348,
+ 0,1,0,0.345944,0,0.166544,
+ 0,1,0,0.14381,0,0.103841,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.14156,0,0.094759,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.14381,0,0.103841,
+ 0,1,0,0.158432,0,0.103903,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.158432,0,0.103903,
+ 0,1,0,0.168776,0,0.095234,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.168776,0,0.095234,
+ 0,1,0,0.175846,0,0.104926,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.175846,0,0.104926,
+ 0,1,0,0.194066,0,0.087656,
+ 0,1,0,0.194066,0,0.087656,
+ 0,1,0,0.175846,0,0.104926,
+ 0,1,0,0.190935,0,0.102262,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.194066,0,0.087656,
+ 0,1,0,0.202579,0,0.103094,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.202579,0,0.103094,
+ 0,1,0,0.210571,0,0.087724,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.210571,0,0.087724,
+ 0,1,0,0.223665,0,0.105104,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.223665,0,0.105104,
+ 0,1,0,0.223681,0,0.123024,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.223681,0,0.123024,
+ 0,1,0,0.245025,0,0.128414,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.245025,0,0.128414,
+ 0,1,0,0.297968,0,-0.027452,
+ 0,1,0,0.036626,0,0.113962,
+ 0,1,0,0.03682,0,0.09696,
+ 0,1,0,0.031803,0,0.10418,
+ 0,1,0,0.03682,0,0.09696,
+ 0,1,0,0.036626,0,0.113962,
+ 0,1,0,0.05721,0,0.099867,
+ 0,1,0,0.03682,0,0.09696,
+ 0,1,0,0.05721,0,0.099867,
+ 0,1,0,0.039559,0,0.002209,
+ 0,1,0,0.039559,0,0.002209,
+ 0,1,0,0.05721,0,0.099867,
+ 0,1,0,0.051559,0,-0.037322,
+ 0,1,0,0.051559,0,-0.037322,
+ 0,1,0,0.05721,0,0.099867,
+ 0,1,0,0.061101,0,0.092082,
+ 0,1,0,0.03061,0,-0.010889,
+ 0,1,0,0.03271,0,-0.026229,
+ 0,1,0,0.025668,0,-0.013396,
+ 0,1,0,0.03271,0,-0.026229,
+ 0,1,0,0.03061,0,-0.010889,
+ 0,1,0,0.039559,0,0.002209,
+ 0,1,0,0.03271,0,-0.026229,
+ 0,1,0,0.039559,0,0.002209,
+ 0,1,0,0.051559,0,-0.037322,
+ 0,1,0,0.009609,0,0.103487,
+ 0,1,0,0.015049,0,0.084688,
+ 0,1,0,0.006732,0,0.089029,
+ 0,1,0,0.015049,0,0.084688,
+ 0,1,0,0.009609,0,0.103487,
+ 0,1,0,0.022363,0,0.103487,
+ 0,1,0,0.015049,0,0.084688,
+ 0,1,0,0.022363,0,0.103487,
+ 0,1,0,0.017935,0,0.071363,
+ 0,1,0,0.017935,0,0.071363,
+ 0,1,0,0.022363,0,0.103487,
+ 0,1,0,0.03285,0,0.034328,
+ 0,1,0,0.03285,0,0.034328,
+ 0,1,0,0.022363,0,0.103487,
+ 0,1,0,0.031087,0,0.094974,
+ 0,1,0,0.03285,0,0.034328,
+ 0,1,0,0.031087,0,0.094974,
+ 0,1,0,0.03682,0,0.09696,
+ 0,1,0,0.03285,0,0.034328,
+ 0,1,0,0.03682,0,0.09696,
+ 0,1,0,0.039559,0,0.002209,
+ 0,1,0,0.106151,0,0.104429,
+ 0,1,0,0.104181,0,0.088847,
+ 0,1,0,0.096575,0,0.104429,
+ 0,1,0,0.061101,0,0.092082,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.051559,0,-0.037322,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.061101,0,0.092082,
+ 0,1,0,0.091936,0,0.089043,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.091936,0,0.089043,
+ 0,1,0,0.104181,0,0.088847,
+ 0,1,0,0.104181,0,0.088847,
+ 0,1,0,0.091936,0,0.089043,
+ 0,1,0,0.096575,0,0.104429,
+ 0,1,0,0.23746,0,-0.034559,
+ 0,1,0,0.104181,0,0.088847,
+ 0,1,0,0.14156,0,0.094759,
+ 0,1,0,0.329906,0,0.185972,
+ 0,1,0,0.342762,0,0.172869,
+ 0,1,0,0.324891,0,0.186066,
+ 0,1,0,0.342762,0,0.172869,
+ 0,1,0,0.329906,0,0.185972,
+ 0,1,0,0.339844,0,0.181324,
+ 0,1,0,0.342762,0,0.172869,
+ 0,1,0,0.339844,0,0.181324,
+ 0,1,0,0.360305,0,0.183469,
+ 0,1,0,0.342762,0,0.172869,
+ 0,1,0,0.360305,0,0.183469,
+ 0,1,0,0.345944,0,0.166544,
+ 0,1,0,0.345944,0,0.166544,
+ 0,1,0,0.360305,0,0.183469,
+ 0,1,0,0.358476,0,-0.020344,
+ 0,1,0,0.358476,0,-0.020344,
+ 0,1,0,0.360305,0,0.183469,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.360305,0,0.183469,
+ 0,1,0,0.369467,0,0.182719,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.369467,0,0.182719,
+ 0,1,0,0.38488,0,0.188501,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.38488,0,0.188501,
+ 0,1,0,0.397781,0,0.183285,
+ 0,1,0,0.408713,0,0.203571,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.397781,0,0.183285,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.408713,0,0.203571,
+ 0,1,0,0.410142,0,0.215072,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.410142,0,0.215072,
+ 0,1,0,0.425881,0,0.215072,
+ 0,1,0,0.415493,0,-0.021069,
+ 0,1,0,0.425881,0,0.215072,
+ 0,1,0,0.479404,0,-0.030146,
+ 0,1,0,0.479404,0,-0.030146,
+ 0,1,0,0.425881,0,0.215072,
+ 0,1,0,0.489913,0,0.219775,
+ 0,1,0,0.418248,0,0.35148,
+ 0,1,0,0.418356,0,0.341484,
+ 0,1,0,0.405514,0,0.352143,
+ 0,1,0,0.418356,0,0.341484,
+ 0,1,0,0.418248,0,0.35148,
+ 0,1,0,0.428617,0,0.369988,
+ 0,1,0,0.418356,0,0.341484,
+ 0,1,0,0.428617,0,0.369988,
+ 0,1,0,0.42234,0,0.318448,
+ 0,1,0,0.42234,0,0.318448,
+ 0,1,0,0.428617,0,0.369988,
+ 0,1,0,0.427764,0,0.276224,
+ 0,1,0,0.427764,0,0.276224,
+ 0,1,0,0.428617,0,0.369988,
+ 0,1,0,0.452839,0,0.343883,
+ 0,1,0,0.452839,0,0.343883,
+ 0,1,0,0.428617,0,0.369988,
+ 0,1,0,0.445208,0,0.355164,
+ 0,1,0,0.410902,0,0.298372,
+ 0,1,0,0.390397,0,0.283464,
+ 0,1,0,0.383552,0,0.29897,
+ 0,1,0,0.390397,0,0.283464,
+ 0,1,0,0.410902,0,0.298372,
+ 0,1,0,0.399968,0,0.282169,
+ 0,1,0,0.399968,0,0.282169,
+ 0,1,0,0.410902,0,0.298372,
+ 0,1,0,0.404167,0,0.283968,
+ 0,1,0,0.404167,0,0.283968,
+ 0,1,0,0.410902,0,0.298372,
+ 0,1,0,0.420169,0,0.284013,
+ 0,1,0,0.420169,0,0.284013,
+ 0,1,0,0.410902,0,0.298372,
+ 0,1,0,0.414131,0,0.314687,
+ 0,1,0,0.420169,0,0.284013,
+ 0,1,0,0.414131,0,0.314687,
+ 0,1,0,0.42234,0,0.318448,
+ 0,1,0,0.420169,0,0.284013,
+ 0,1,0,0.42234,0,0.318448,
+ 0,1,0,0.427764,0,0.276224,
+ 0,1,0,0.520644,0,0.224976,
+ 0,1,0,0.516866,0,0.207753,
+ 0,1,0,0.503959,0,0.226903,
+ 0,1,0,0.530608,0,0.199574,
+ 0,1,0,0.52136,0,0.179767,
+ 0,1,0,0.516866,0,0.207753,
+ 0,1,0,0.489913,0,0.219775,
+ 0,1,0,0.537226,0,-0.025853,
+ 0,1,0,0.479404,0,-0.030146,
+ 0,1,0,0.537226,0,-0.025853,
+ 0,1,0,0.489913,0,0.219775,
+ 0,1,0,0.503959,0,0.226903,
+ 0,1,0,0.537226,0,-0.025853,
+ 0,1,0,0.503959,0,0.226903,
+ 0,1,0,0.516866,0,0.207753,
+ 0,1,0,0.537226,0,-0.025853,
+ 0,1,0,0.516866,0,0.207753,
+ 0,1,0,0.52136,0,0.179767,
+ 0,1,0,0.537226,0,-0.025853,
+ 0,1,0,0.52136,0,0.179767,
+ 0,1,0,0.523769,0,0.167802,
+ 0,1,0,0.537226,0,-0.025853,
+ 0,1,0,0.523769,0,0.167802,
+ 0,1,0,0.548236,0,0.136243,
+ 0,1,0,0.537226,0,-0.025853,
+ 0,1,0,0.548236,0,0.136243,
+ 0,1,0,0.566645,0,-0.018616,
+ 0,1,0,0.566645,0,-0.018616,
+ 0,1,0,0.548236,0,0.136243,
+ 0,1,0,0.549719,0,0.12887,
+ 0,1,0,0.566645,0,-0.018616,
+ 0,1,0,0.549719,0,0.12887,
+ 0,1,0,0.554575,0,0.12323,
+ 0,1,0,0.552753,0,0.178346,
+ 0,1,0,0.523769,0,0.167802,
+ 0,1,0,0.52136,0,0.179767,
+ 0,1,0,0.523769,0,0.167802,
+ 0,1,0,0.552753,0,0.178346,
+ 0,1,0,0.560238,0,0.169988,
+ 0,1,0,0.541347,0,0.163708,
+ 0,1,0,0.548236,0,0.136243,
+ 0,1,0,0.523769,0,0.167802,
+ 0,1,0,0.548236,0,0.136243,
+ 0,1,0,0.541347,0,0.163708,
+ 0,1,0,0.555944,0,0.155783,
+ 0,1,0,0.555944,0,0.155783,
+ 0,1,0,0.541347,0,0.163708,
+ 0,1,0,0.559142,0,0.163585,
+ 0,1,0,0.560035,0,0.144169,
+ 0,1,0,0.548236,0,0.136243,
+ 0,1,0,0.555944,0,0.155783,
+ 0,1,0,0.564799,0,0.119242,
+ 0,1,0,0.566645,0,-0.018616,
+ 0,1,0,0.554575,0,0.12323,
+ 0,1,0,0.566645,0,-0.018616,
+ 0,1,0,0.564799,0,0.119242,
+ 0,1,0,0.58033,0,0.115393,
+ 0,1,0,0.566645,0,-0.018616,
+ 0,1,0,0.58033,0,0.115393,
+ 0,1,0,0.62089,0,-0.018575,
+ 0,1,0,0.62089,0,-0.018575,
+ 0,1,0,0.58033,0,0.115393,
+ 0,1,0,0.585431,0,0.121481,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.583856,0,0.153968,
+ 0,1,0,0.581753,0,0.158505,
+ 0,1,0,0.583856,0,0.153968,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.585431,0,0.121481,
+ 0,1,0,0.585431,0,0.121481,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.637038,0,0.134243,
+ 0,1,0,0.583856,0,0.153968,
+ 0,1,0,0.574491,0,0.147231,
+ 0,1,0,0.570974,0,0.157277,
+ 0,1,0,0.574491,0,0.147231,
+ 0,1,0,0.583856,0,0.153968,
+ 0,1,0,0.585431,0,0.121481,
+ 0,1,0,0.637038,0,0.134243,
+ 0,1,0,0.62089,0,-0.018575,
+ 0,1,0,0.585431,0,0.121481,
+ 0,1,0,0.62089,0,-0.018575,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.61878,0,-0.025619,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.62089,0,-0.018575,
+ 0,1,0,0.637038,0,0.134243,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.637038,0,0.134243,
+ 0,1,0,0.661318,0,0.122183,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.661318,0,0.122183,
+ 0,1,0,0.670206,0,0.110851,
+ 0,1,0,0.573562,0,0.172873,
+ 0,1,0,0.581753,0,0.158505,
+ 0,1,0,0.572534,0,0.161272,
+ 0,1,0,0.581753,0,0.158505,
+ 0,1,0,0.573562,0,0.172873,
+ 0,1,0,0.583793,0,0.171573,
+ 0,1,0,0.581753,0,0.158505,
+ 0,1,0,0.583793,0,0.171573,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.583793,0,0.171573,
+ 0,1,0,0.584888,0,0.181456,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.584888,0,0.181456,
+ 0,1,0,0.624872,0,0.174338,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.624872,0,0.174338,
+ 0,1,0,0.633124,0,0.175123,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.633124,0,0.175123,
+ 0,1,0,0.634269,0,0.164334,
+ 0,1,0,0.633973,0,0.156872,
+ 0,1,0,0.634269,0,0.164334,
+ 0,1,0,0.668778,0,0.167913,
+ 0,1,0,0.668778,0,0.167913,
+ 0,1,0,0.634269,0,0.164334,
+ 0,1,0,0.665861,0,0.175198,
+ 0,1,0,0.6544,0,0.149992,
+ 0,1,0,0.637038,0,0.134243,
+ 0,1,0,0.635778,0,0.146679,
+ 0,1,0,0.637038,0,0.134243,
+ 0,1,0,0.6544,0,0.149992,
+ 0,1,0,0.661318,0,0.122183,
+ 0,1,0,0.661318,0,0.122183,
+ 0,1,0,0.6544,0,0.149992,
+ 0,1,0,0.662997,0,0.135334,
+ 0,1,0,0.665945,0,0.129564,
+ 0,1,0,0.670206,0,0.110851,
+ 0,1,0,0.661318,0,0.122183,
+ 0,1,0,0.670206,0,0.110851,
+ 0,1,0,0.665945,0,0.129564,
+ 0,1,0,0.672333,0,0.136286,
+ 0,1,0,0.735491,0,0.103255,
+ 0,1,0,0.75396,0,0.088343,
+ 0,1,0,0.734536,0,0.096627,
+ 0,1,0,0.75396,0,0.088343,
+ 0,1,0,0.735491,0,0.103255,
+ 0,1,0,0.756588,0,0.09584,
+ 0,1,0,0.75396,0,0.088343,
+ 0,1,0,0.756588,0,0.09584,
+ 0,1,0,0.787724,0,0.092968,
+ 0,1,0,0.787724,0,0.092968,
+ 0,1,0,0.756588,0,0.09584,
+ 0,1,0,0.779594,0,0.095468,
+ 0,1,0,0.692539,0,0.110851,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.670206,0,0.110851,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.692539,0,0.110851,
+ 0,1,0,0.700333,0,0.101232,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.700333,0,0.101232,
+ 0,1,0,0.702466,0,0.086725,
+ 0,1,0,0.702152,0,-0.018998,
+ 0,1,0,0.702466,0,0.086725,
+ 0,1,0,0.73176,0,-0.018818,
+ 0,1,0,0.73176,0,-0.018818,
+ 0,1,0,0.702466,0,0.086725,
+ 0,1,0,0.720485,0,0.08966,
+ 0,1,0,0.73176,0,-0.018818,
+ 0,1,0,0.720485,0,0.08966,
+ 0,1,0,0.734536,0,0.096627,
+ 0,1,0,0.73176,0,-0.018818,
+ 0,1,0,0.734536,0,0.096627,
+ 0,1,0,0.761369,0,-0.022527,
+ 0,1,0,0.761369,0,-0.022527,
+ 0,1,0,0.734536,0,0.096627,
+ 0,1,0,0.75396,0,0.088343,
+ 0,1,0,0.761369,0,-0.022527,
+ 0,1,0,0.75396,0,0.088343,
+ 0,1,0,0.793365,0,-0.023345,
+ 0,1,0,0.762469,0,0.0869,
+ 0,1,0,0.793365,0,-0.023345,
+ 0,1,0,0.75396,0,0.088343,
+ 0,1,0,0.793365,0,-0.023345,
+ 0,1,0,0.762469,0,0.0869,
+ 0,1,0,0.792877,0,0.074633,
+ 0,1,0,0.793365,0,-0.023345,
+ 0,1,0,0.792877,0,0.074633,
+ 0,1,0,0.803272,0,0.067506,
+ 0,1,0,0.793365,0,-0.023345,
+ 0,1,0,0.803272,0,0.067506,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.803272,0,0.067506,
+ 0,1,0,0.821617,0,0.065833,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.821617,0,0.065833,
+ 0,1,0,0.84053,0,0.064639,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.84053,0,0.064639,
+ 0,1,0,0.852984,0,0.059455,
+ 0,1,0,0.88081,0,0.08527,
+ 0,1,0,0.84053,0,0.064639,
+ 0,1,0,0.821617,0,0.065833,
+ 0,1,0,0.84053,0,0.064639,
+ 0,1,0,0.88081,0,0.08527,
+ 0,1,0,0.847707,0,0.067725,
+ 0,1,0,0.847707,0,0.067725,
+ 0,1,0,0.88081,0,0.08527,
+ 0,1,0,0.882139,0,0.078045,
+ 0,1,0,0.882139,0,0.078045,
+ 0,1,0,0.88081,0,0.08527,
+ 0,1,0,0.883984,0,0.079929,
+ 0,1,0,0.929535,0,0.061348,
+ 0,1,0,0.920327,0,0.053894,
+ 0,1,0,0.897836,0,0.057214,
+ 0,1,0,0.920327,0,0.053894,
+ 0,1,0,0.929535,0,0.061348,
+ 0,1,0,0.938087,0,0.057211,
+ 0,1,0,0.864701,0,0.066306,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.852984,0,0.059455,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.864701,0,0.066306,
+ 0,1,0,0.880233,0,0.058765,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.880233,0,0.058765,
+ 0,1,0,0.897836,0,0.057214,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.897836,0,0.057214,
+ 0,1,0,0.920327,0,0.053894,
+ 0,1,0,0.904408,0,-0.014934,
+ 0,1,0,0.920327,0,0.053894,
+ 0,1,0,0.96438,0,-0.016439,
+ 0,1,0,0.96438,0,-0.016439,
+ 0,1,0,0.920327,0,0.053894,
+ 0,1,0,0.935168,0,0.046694,
+ 0,1,0,0.958106,0,0.048214,
+ 0,1,0,0.96438,0,-0.016439,
+ 0,1,0,0.935168,0,0.046694,
+ 0,1,0,0.96438,0,-0.016439,
+ 0,1,0,0.958106,0,0.048214,
+ 0,1,0,0.966364,0,0.035069,
+ 0,1,0,0.966364,0,0.035069,
+ 0,1,0,0.958106,0,0.048214,
+ 0,1,0,0.966595,0,0.039642,
+ 0,1,0,0.973143,0,0.031323,
+ 0,1,0,0.967674,0,-0.002108,
+ 0,1,0,0.966364,0,0.035069,
+ 0,1,0,0.96438,0,-0.016439,
+ 0,1,0,0.967674,0,-0.002108,
+ 0,1,0,0.981188,0,-0.014459,
+ 0,1,0,0.967674,0,-0.002108,
+ 0,1,0,0.96438,0,-0.016439,
+ 0,1,0,0.966364,0,0.035069,
+ 0,1,0,0.981188,0,-0.014459,
+ 0,1,0,0.967674,0,-0.002108,
+ 0,1,0,0.984607,0,-0.00735,
+ 0,1,0,0.476049,0,0.277053,
+ 0,1,0,0.427764,0,0.276224,
+ 0,1,0,0.452839,0,0.343883,
+ 0,1,0,0.427524,0,0.227217,
+ 0,1,0,0.489913,0,0.219775,
+ 0,1,0,0.425881,0,0.215072,
+ 0,1,0,0.489913,0,0.219775,
+ 0,1,0,0.427524,0,0.227217,
+ 0,1,0,0.427764,0,0.276224,
+ 0,1,0,0.489913,0,0.219775,
+ 0,1,0,0.427764,0,0.276224,
+ 0,1,0,0.47774,0,0.264282,
+ 0,1,0,0.47774,0,0.264282,
+ 0,1,0,0.427764,0,0.276224,
+ 0,1,0,0.476049,0,0.277053,
+ 0,1,0,0.489913,0,0.219775,
+ 0,1,0,0.47774,0,0.264282,
+ 0,1,0,0.489232,0,0.230519,
+ 0,1,0,0.473055,0,0.390849,
+ 0,1,0,0.458901,0,0.371717,
+ 0,1,0,0.439417,0,0.380594,
+ 0,1,0,0.458901,0,0.371717,
+ 0,1,0,0.474537,0,0.318785,
+ 0,1,0,0.452839,0,0.343883,
+ 0,1,0,0.474537,0,0.318785,
+ 0,1,0,0.458901,0,0.371717,
+ 0,1,0,0.473055,0,0.390849,
+ 0,1,0,0.474537,0,0.318785,
+ 0,1,0,0.473055,0,0.390849,
+ 0,1,0,0.483181,0,0.363554,
+ 0,1,0,0.474537,0,0.318785,
+ 0,1,0,0.483181,0,0.363554,
+ 0,1,0,0.484033,0,0.350585,
+ 0,1,0,0.476049,0,0.277053,
+ 0,1,0,0.452839,0,0.343883,
+ 0,1,0,0.474537,0,0.318785,
+ 0,1,0,0.503726,0,0.315268,
+ 0,1,0,0.476049,0,0.277053,
+ 0,1,0,0.474537,0,0.318785,
+ 0,1,0,0.476049,0,0.277053,
+ 0,1,0,0.503726,0,0.315268,
+ 0,1,0,0.492139,0,0.292934,
+ 0,1,0,0.492139,0,0.292934,
+ 0,1,0,0.503726,0,0.315268,
+ 0,1,0,0.506622,0,0.300411,
+ 0,1,0,0.492139,0,0.292934,
+ 0,1,0,0.506622,0,0.300411,
+ 0,1,0,0.574724,0,0.29066,
+ 0,1,0,0.574724,0,0.29066,
+ 0,1,0,0.506622,0,0.300411,
+ 0,1,0,0.571048,0,0.29579
+};
+static const struct gllist ships_ship4_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 522, ships_ship4_data, 0
+};
+const struct gllist *ships_ship4 = &ships_ship4_frame;
+
+static const float ships_ship5_data[] = {
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.001715,0,-0.045957,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.181433,0,0.064832,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.181433,0,0.064832,
+ 0,1,0,0.181484,0,0.064736,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.181484,0,0.064736,
+ 0,1,0,0.181506,0,0.064743,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.052158,0,0.02414,
+ 0,1,0,0.048308,0,0.034479,
+ 0,1,0,0.136388,0,0.141637,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.125094,0,0.067408,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.136388,0,0.141637,
+ 0,1,0,0.171394,0,0.137342,
+ 0,1,0,0.095935,0,0.057113,
+ 0,1,0,0.111465,0,0.057453,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.111465,0,0.057453,
+ 0,1,0,0.095935,0,0.057113,
+ 0,1,0,0.100355,0,0.06043,
+ 0,1,0,0.016847,0,0.048638,
+ 0,1,0,0.014814,0,0.024288,
+ 0,1,0,0.012424,0,0.046373,
+ 0,1,0,0.014814,0,0.024288,
+ 0,1,0,0.016847,0,0.048638,
+ 0,1,0,0.021172,0,0.02702,
+ 0,1,0,0.014814,0,0.024288,
+ 0,1,0,0.021172,0,0.02702,
+ 0,1,0,0.026929,0,0.024129,
+ 0,1,0,0.021172,0,0.02702,
+ 0,1,0,0.016847,0,0.048638,
+ 0,1,0,0.017702,0,0.047032,
+ 0,1,0,0.008355,0,0.00998,
+ 0,1,0,0.052158,0,0.02414,
+ 0,1,0,0.008266,0,-0.029831,
+ 0,1,0,0.052158,0,0.02414,
+ 0,1,0,0.008355,0,0.00998,
+ 0,1,0,0.044731,0,0.024115,
+ 0,1,0,0.044731,0,0.024115,
+ 0,1,0,0.008355,0,0.00998,
+ 0,1,0,0.01012,0,0.024024,
+ 0,1,0,0.044731,0,0.024115,
+ 0,1,0,0.01012,0,0.024024,
+ 0,1,0,0.026929,0,0.024129,
+ 0,1,0,0.026929,0,0.024129,
+ 0,1,0,0.01012,0,0.024024,
+ 0,1,0,0.014814,0,0.024288,
+ 0,1,0,0.044731,0,0.024115,
+ 0,1,0,0.026929,0,0.024129,
+ 0,1,0,0.032846,0,0.025595,
+ 0,1,0,0.044731,0,0.024115,
+ 0,1,0,0.032846,0,0.025595,
+ 0,1,0,0.039222,0,0.025488,
+ 0,1,0,0.034322,0,0.058994,
+ 0,1,0,0.026929,0,0.024129,
+ 0,1,0,0.021172,0,0.02702,
+ 0,1,0,0.026929,0,0.024129,
+ 0,1,0,0.034322,0,0.058994,
+ 0,1,0,0.037972,0,0.057261,
+ 0,1,0,0.042779,0,0.077034,
+ 0,1,0,0.061377,0,0.061235,
+ 0,1,0,0.040701,0,0.072796,
+ 0,1,0,0.061377,0,0.061235,
+ 0,1,0,0.042779,0,0.077034,
+ 0,1,0,0.063459,0,0.06709,
+ 0,1,0,0.070295,0,0.075306,
+ 0,1,0,0.063459,0,0.06709,
+ 0,1,0,0.063459,0,0.075306,
+ 0,1,0,0.053526,0,0.041817,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.048308,0,0.034479,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.053526,0,0.041817,
+ 0,1,0,0.058269,0,0.056058,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.058269,0,0.056058,
+ 0,1,0,0.061377,0,0.061235,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.061377,0,0.061235,
+ 0,1,0,0.087644,0,0.050772,
+ 0,1,0,0.087644,0,0.050772,
+ 0,1,0,0.061377,0,0.061235,
+ 0,1,0,0.063459,0,0.06709,
+ 0,1,0,0.087644,0,0.050772,
+ 0,1,0,0.063459,0,0.06709,
+ 0,1,0,0.076667,0,0.063045,
+ 0,1,0,0.076667,0,0.063045,
+ 0,1,0,0.063459,0,0.06709,
+ 0,1,0,0.070295,0,0.075306,
+ 0,1,0,0.070295,0,0.075306,
+ 0,1,0,0.076728,0,0.082213,
+ 0,1,0,0.076667,0,0.063045,
+ 0,1,0,0.076728,0,0.082213,
+ 0,1,0,0.070295,0,0.075306,
+ 0,1,0,0.079137,0,0.246431,
+ 0,1,0,0.076728,0,0.082213,
+ 0,1,0,0.079137,0,0.246431,
+ 0,1,0,0.080977,0,0.237572,
+ 0,1,0,0.076728,0,0.082213,
+ 0,1,0,0.080616,0,0.066126,
+ 0,1,0,0.076667,0,0.063045,
+ 0,1,0,0.080616,0,0.066126,
+ 0,1,0,0.076728,0,0.082213,
+ 0,1,0,0.082403,0,0.082213,
+ 0,1,0,0.125094,0,0.067408,
+ 0,1,0,0.111465,0,0.057453,
+ 0,1,0,0.113351,0,0.069023,
+ 0,1,0,0.003246,0,-0.031262,
+ 0,1,0,0.001715,0,-0.045957,
+ 0,1,0,0.001618,0,-0.038157,
+ 0,1,0,0.001715,0,-0.045957,
+ 0,1,0,0.003246,0,-0.031262,
+ 0,1,0,0.00775,0,-0.031028,
+ 0,1,0,0.001715,0,-0.045957,
+ 0,1,0,0.00775,0,-0.031028,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.00775,0,-0.031028,
+ 0,1,0,0.008266,0,-0.029831,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.008266,0,-0.029831,
+ 0,1,0,0.052158,0,0.02414,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.052158,0,0.02414,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.095908,0,0.047446,
+ 0,1,0,0.111465,0,0.057453,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.111465,0,0.057453,
+ 0,1,0,0.125094,0,0.067408,
+ 0,1,0,0.171507,0,0.07103,
+ 0,1,0,0.181433,0,0.064832,
+ 0,1,0,0.166125,0,0.064832,
+ 0,1,0,0.181433,0,0.064832,
+ 0,1,0,0.171507,0,0.07103,
+ 0,1,0,0.178121,0,0.07103,
+ 0,1,0,0.207789,0,0.072818,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.194012,0,0.069031,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.207789,0,0.072818,
+ 0,1,0,0.214555,0,0.072818,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.214555,0,0.072818,
+ 0,1,0,0.256317,0,0.072881,
+ 0,1,0,0.181484,0,0.064832,
+ 0,1,0,0.181484,0,0.064736,
+ 0,1,0,0.181433,0,0.064832,
+ 0,1,0,0.181484,0,0.064736,
+ 0,1,0,0.181484,0,0.064832,
+ 0,1,0,0.181506,0,0.064743,
+ 0,1,0,0.191757,0,0.068026,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.181506,0,0.064743,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.191757,0,0.068026,
+ 0,1,0,0.194012,0,0.069031,
+ 0,1,0,0.207789,0,0.072818,
+ 0,1,0,0.194012,0,0.069031,
+ 0,1,0,0.207789,0,0.086154,
+ 0,1,0,0.224037,0,0.154308,
+ 0,1,0,0.256317,0,0.072881,
+ 0,1,0,0.214555,0,0.072818,
+ 0,1,0,0.256317,0,0.072881,
+ 0,1,0,0.224037,0,0.154308,
+ 0,1,0,0.225964,0,0.161564,
+ 0,1,0,0.256317,0,0.072881,
+ 0,1,0,0.225964,0,0.161564,
+ 0,1,0,0.234166,0,0.160331,
+ 0,1,0,0.256317,0,0.072881,
+ 0,1,0,0.234166,0,0.160331,
+ 0,1,0,0.261724,0,0.159312,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.261557,0,0.072881,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.261557,0,0.072881,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.256317,0,0.072881,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.261557,0,0.072881,
+ 0,1,0,0.277221,0,0.075279,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.277221,0,0.075279,
+ 0,1,0,0.317776,0,0.082282,
+ 0,1,0,0.269452,0,0.084624,
+ 0,1,0,0.261557,0,0.072881,
+ 0,1,0,0.261557,0,0.084624,
+ 0,1,0,0.261557,0,0.072881,
+ 0,1,0,0.269452,0,0.084624,
+ 0,1,0,0.277221,0,0.075279,
+ 0,1,0,0.289785,0,0.088598,
+ 0,1,0,0.287961,0,0.07869,
+ 0,1,0,0.281601,0,0.088598,
+ 0,1,0,0.277221,0,0.075279,
+ 0,1,0,0.287961,0,0.07869,
+ 0,1,0,0.317776,0,0.082282,
+ 0,1,0,0.287961,0,0.07869,
+ 0,1,0,0.277221,0,0.075279,
+ 0,1,0,0.281601,0,0.088598,
+ 0,1,0,0.317776,0,0.082282,
+ 0,1,0,0.287961,0,0.07869,
+ 0,1,0,0.299525,0,0.081697,
+ 0,1,0,0.317776,0,0.082282,
+ 0,1,0,0.299525,0,0.081697,
+ 0,1,0,0.310606,0,0.087359,
+ 0,1,0,0.333544,0,0.184582,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.317776,0,0.082282,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.333544,0,0.184582,
+ 0,1,0,0.37772,0,0.181407,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.37772,0,0.181407,
+ 0,1,0,0.370959,0,0.119141,
+ 0,1,0,0.370959,0,0.119141,
+ 0,1,0,0.372074,0,0.108315,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.372074,0,0.108315,
+ 0,1,0,0.370959,0,0.119141,
+ 0,1,0,0.372137,0,0.112193,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.376455,0,-0.041627,
+ 0,1,0,0.207789,0,-0.043575,
+ 0,1,0,0.376455,0,-0.041627,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.420461,0,0.087749,
+ 0,1,0,0.376455,0,-0.041627,
+ 0,1,0,0.420461,0,0.087749,
+ 0,1,0,0.454473,0,0.095982,
+ 0,1,0,0.394231,0,0.112852,
+ 0,1,0,0.38823,0,0.091739,
+ 0,1,0,0.38823,0,0.106849,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.403191,0,0.089718,
+ 0,1,0,0.420461,0,0.087749,
+ 0,1,0,0.403191,0,0.089718,
+ 0,1,0,0.366697,0,0.082669,
+ 0,1,0,0.38823,0,0.091739,
+ 0,1,0,0.403191,0,0.089718,
+ 0,1,0,0.38823,0,0.091739,
+ 0,1,0,0.397302,0,0.093667,
+ 0,1,0,0.397302,0,0.093667,
+ 0,1,0,0.38823,0,0.091739,
+ 0,1,0,0.394231,0,0.112852,
+ 0,1,0,0.397302,0,0.093667,
+ 0,1,0,0.394231,0,0.112852,
+ 0,1,0,0.396581,0,0.105608,
+ 0,1,0,0.420461,0,0.087749,
+ 0,1,0,0.446113,0,0.095183,
+ 0,1,0,0.454473,0,0.095982,
+ 0,1,0,0.446113,0,0.095183,
+ 0,1,0,0.420461,0,0.087749,
+ 0,1,0,0.436002,0,0.094225,
+ 0,1,0,0.436002,0,0.094225,
+ 0,1,0,0.420461,0,0.087749,
+ 0,1,0,0.431829,0,0.094236,
+ 0,1,0,0.431829,0,0.094236,
+ 0,1,0,0.420461,0,0.087749,
+ 0,1,0,0.422378,0,0.108735,
+ 0,1,0,0.431829,0,0.094236,
+ 0,1,0,0.422378,0,0.108735,
+ 0,1,0,0.428035,0,0.110773,
+ 0,1,0,0.431829,0,0.094236,
+ 0,1,0,0.428035,0,0.110773,
+ 0,1,0,0.430142,0,0.106462,
+ 0,1,0,0.446113,0,0.095183,
+ 0,1,0,0.436002,0,0.094225,
+ 0,1,0,0.43972,0,0.097141,
+ 0,1,0,0.446113,0,0.095183,
+ 0,1,0,0.43972,0,0.097141,
+ 0,1,0,0.442315,0,0.106176,
+ 0,1,0,0.446113,0,0.095183,
+ 0,1,0,0.442315,0,0.106176,
+ 0,1,0,0.446113,0,0.10759,
+ 0,1,0,0.463906,0,0.207466,
+ 0,1,0,0.497607,0,0.091808,
+ 0,1,0,0.454473,0,0.095982,
+ 0,1,0,0.497607,0,0.091808,
+ 0,1,0,0.463906,0,0.207466,
+ 0,1,0,0.497655,0,0.099429,
+ 0,1,0,0.497655,0,0.099429,
+ 0,1,0,0.463906,0,0.207466,
+ 0,1,0,0.509623,0,0.205684,
+ 0,1,0,0.50481,0,0.10516,
+ 0,1,0,0.511486,0,0.090215,
+ 0,1,0,0.501456,0,0.091808,
+ 0,1,0,0.511486,0,0.090215,
+ 0,1,0,0.50481,0,0.10516,
+ 0,1,0,0.509337,0,0.103405,
+ 0,1,0,0.52893,0,0.10095,
+ 0,1,0,0.553107,0,0.091478,
+ 0,1,0,0.511486,0,0.090215,
+ 0,1,0,0.553107,0,0.091478,
+ 0,1,0,0.52893,0,0.10095,
+ 0,1,0,0.54413,0,0.10095,
+ 0,1,0,0.644949,0,0.236471,
+ 0,1,0,0.572047,0,0.105355,
+ 0,1,0,0.569738,0,0.111048,
+ 0,1,0,0.572047,0,0.105355,
+ 0,1,0,0.644949,0,0.236471,
+ 0,1,0,0.644873,0,0.222943,
+ 0,1,0,0.644873,0,0.222943,
+ 0,1,0,0.644949,0,0.236471,
+ 0,1,0,0.64714,0,0.231454,
+ 0,1,0,0.550144,0,0.127813,
+ 0,1,0,0.547445,0,0.124606,
+ 0,1,0,0.545142,0,0.125558,
+ 0,1,0,0.547445,0,0.124606,
+ 0,1,0,0.550144,0,0.127813,
+ 0,1,0,0.552892,0,0.116183,
+ 0,1,0,0.552892,0,0.116183,
+ 0,1,0,0.550144,0,0.127813,
+ 0,1,0,0.566351,0,0.123158,
+ 0,1,0,0.552892,0,0.116183,
+ 0,1,0,0.566351,0,0.123158,
+ 0,1,0,0.552912,0,0.114184,
+ 0,1,0,0.552912,0,0.114184,
+ 0,1,0,0.566351,0,0.123158,
+ 0,1,0,0.556858,0,0.098286,
+ 0,1,0,0.556422,0,0.095834,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.553107,0,0.091478,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.556422,0,0.095834,
+ 0,1,0,0.556858,0,0.098286,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.556858,0,0.098286,
+ 0,1,0,0.572047,0,0.105355,
+ 0,1,0,0.572047,0,0.105355,
+ 0,1,0,0.556858,0,0.098286,
+ 0,1,0,0.569738,0,0.111048,
+ 0,1,0,0.569738,0,0.111048,
+ 0,1,0,0.556858,0,0.098286,
+ 0,1,0,0.566351,0,0.123158,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.572047,0,0.105355,
+ 0,1,0,0.579834,0,0.105355,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.579834,0,0.105355,
+ 0,1,0,0.579933,0,0.109136,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.579933,0,0.109136,
+ 0,1,0,0.582443,0,0.111613,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.582443,0,0.111613,
+ 0,1,0,0.591814,0,0.112965,
+ 0,1,0,0.634432,0,0.166831,
+ 0,1,0,0.620851,0,0.091797,
+ 0,1,0,0.614411,0,0.098278,
+ 0,1,0,0.620851,0,0.091797,
+ 0,1,0,0.634432,0,0.166831,
+ 0,1,0,0.641824,0,0.166831,
+ 0,1,0,0.636952,0,0.101194,
+ 0,1,0,0.631438,0,0.091797,
+ 0,1,0,0.629595,0,0.098001,
+ 0,1,0,0.631438,0,0.091797,
+ 0,1,0,0.636952,0,0.101194,
+ 0,1,0,0.643871,0,0.087598,
+ 0,1,0,0.667128,0,0.360389,
+ 0,1,0,0.663409,0,0.259363,
+ 0,1,0,0.660866,0,0.358077,
+ 0,1,0,0.660866,0,0.358077,
+ 0,1,0,0.652329,0,0.09576,
+ 0,1,0,0.643871,0,0.087598,
+ 0,1,0,0.652329,0,0.09576,
+ 0,1,0,0.660866,0,0.358077,
+ 0,1,0,0.663409,0,0.249927,
+ 0,1,0,0.663409,0,0.249927,
+ 0,1,0,0.660866,0,0.358077,
+ 0,1,0,0.663409,0,0.259363,
+ 0,1,0,0.652329,0,0.09576,
+ 0,1,0,0.657966,0,0.089941,
+ 0,1,0,0.643871,0,0.087598,
+ 0,1,0,0.657966,0,0.089941,
+ 0,1,0,0.652329,0,0.09576,
+ 0,1,0,0.657966,0,0.095447,
+ 0,1,0,0.669946,0,0.10117,
+ 0,1,0,0.663424,0,0.094392,
+ 0,1,0,0.663409,0,0.099025,
+ 0,1,0,0.663424,0,0.094392,
+ 0,1,0,0.698505,0,0.081469,
+ 0,1,0,0.662071,0,0.090935,
+ 0,1,0,0.698505,0,0.081469,
+ 0,1,0,0.663424,0,0.094392,
+ 0,1,0,0.669946,0,0.092138,
+ 0,1,0,0.669946,0,0.092138,
+ 0,1,0,0.663424,0,0.094392,
+ 0,1,0,0.669946,0,0.10117,
+ 0,1,0,0.698505,0,0.081469,
+ 0,1,0,0.669946,0,0.092138,
+ 0,1,0,0.682405,0,0.093684,
+ 0,1,0,0.698505,0,0.081469,
+ 0,1,0,0.682405,0,0.093684,
+ 0,1,0,0.687829,0,0.097372,
+ 0,1,0,0.759943,0,0.121689,
+ 0,1,0,0.761196,0,0.112841,
+ 0,1,0,0.757564,0,0.116773,
+ 0,1,0,0.761196,0,0.112841,
+ 0,1,0,0.759943,0,0.121689,
+ 0,1,0,0.763846,0,0.119808,
+ 0,1,0,0.739593,0,0.106753,
+ 0,1,0,0.730899,0,0.094722,
+ 0,1,0,0.727889,0,0.103317,
+ 0,1,0,0.730899,0,0.094722,
+ 0,1,0,0.739593,0,0.106753,
+ 0,1,0,0.739289,0,0.082921,
+ 0,1,0,0.739289,0,0.082921,
+ 0,1,0,0.739593,0,0.106753,
+ 0,1,0,0.741908,0,0.084462,
+ 0,1,0,0.741908,0,0.084462,
+ 0,1,0,0.739593,0,0.106753,
+ 0,1,0,0.742166,0,0.093571,
+ 0,1,0,0.741908,0,0.084462,
+ 0,1,0,0.742166,0,0.093571,
+ 0,1,0,0.783334,0,0.120508,
+ 0,1,0,0.783334,0,0.120508,
+ 0,1,0,0.742166,0,0.093571,
+ 0,1,0,0.761196,0,0.112841,
+ 0,1,0,0.783334,0,0.120508,
+ 0,1,0,0.761196,0,0.112841,
+ 0,1,0,0.767964,0,0.117251,
+ 0,1,0,0.767964,0,0.117251,
+ 0,1,0,0.761196,0,0.112841,
+ 0,1,0,0.763846,0,0.119808,
+ 0,1,0,0.783334,0,0.120508,
+ 0,1,0,0.767964,0,0.117251,
+ 0,1,0,0.777789,0,0.128777,
+ 0,1,0,0.721492,0,0.088515,
+ 0,1,0,0.741942,0,0.07987,
+ 0,1,0,0.72121,0,0.082325,
+ 0,1,0,0.741942,0,0.07987,
+ 0,1,0,0.721492,0,0.088515,
+ 0,1,0,0.739289,0,0.082921,
+ 0,1,0,0.739289,0,0.082921,
+ 0,1,0,0.721492,0,0.088515,
+ 0,1,0,0.730899,0,0.094722,
+ 0,1,0,0.745551,0,0.080024,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.741942,0,0.07987,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.745551,0,0.080024,
+ 0,1,0,0.747943,0,0.080733,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.747943,0,0.080733,
+ 0,1,0,0.764433,0,0.083265,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.764433,0,0.083265,
+ 0,1,0,0.772205,0,0.083449,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.787201,0,0.073019,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.892328,0,0.094571,
+ 0,1,0,0.787201,0,0.073019,
+ 0,1,0,0.93599,0,-0.034208,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.93599,0,-0.034208,
+ 0,1,0,0.787201,0,0.073019,
+ 0,1,0,0.916393,0,0.003488,
+ 0,1,0,0.916393,0,0.003488,
+ 0,1,0,0.787201,0,0.073019,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.93599,0,-0.034208,
+ 0,1,0,0.916393,0,0.003488,
+ 0,1,0,0.936516,0,-0.027225,
+ 0,1,0,0.777327,0,0.11054,
+ 0,1,0,0.793083,0,0.086486,
+ 0,1,0,0.774096,0,0.103935,
+ 0,1,0,0.793083,0,0.086486,
+ 0,1,0,0.777327,0,0.11054,
+ 0,1,0,0.781652,0,0.108678,
+ 0,1,0,0.793083,0,0.086486,
+ 0,1,0,0.781652,0,0.108678,
+ 0,1,0,0.805114,0,0.089496,
+ 0,1,0,0.793083,0,0.086486,
+ 0,1,0,0.805114,0,0.089496,
+ 0,1,0,0.794464,0,0.083624,
+ 0,1,0,0.8128,0,0.105465,
+ 0,1,0,0.805114,0,0.089496,
+ 0,1,0,0.800691,0,0.103287,
+ 0,1,0,0.794464,0,0.083624,
+ 0,1,0,0.787201,0,0.073019,
+ 0,1,0,0.787201,0,0.083237,
+ 0,1,0,0.787201,0,0.073019,
+ 0,1,0,0.794464,0,0.083624,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.794464,0,0.083624,
+ 0,1,0,0.805114,0,0.089496,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.805114,0,0.089496,
+ 0,1,0,0.817616,0,0.086439,
+ 0,1,0,0.817616,0,0.086439,
+ 0,1,0,0.805114,0,0.089496,
+ 0,1,0,0.815769,0,0.089603,
+ 0,1,0,0.815769,0,0.089603,
+ 0,1,0,0.805114,0,0.089496,
+ 0,1,0,0.8128,0,0.105465,
+ 0,1,0,0.846707,0,0.099473,
+ 0,1,0,0.841234,0,0.094315,
+ 0,1,0,0.841234,0,0.099473,
+ 0,1,0,0.8516,0,0.100934,
+ 0,1,0,0.852472,0,0.096213,
+ 0,1,0,0.850639,0,0.099893,
+ 0,1,0,0.852472,0,0.096213,
+ 0,1,0,0.8516,0,0.100934,
+ 0,1,0,0.857423,0,0.100975,
+ 0,1,0,0.892328,0,0.101988,
+ 0,1,0,0.862558,0,0.094381,
+ 0,1,0,0.861866,0,0.107563,
+ 0,1,0,0.825162,0,0.09278,
+ 0,1,0,0.831943,0,0.090034,
+ 0,1,0,0.82127,0,0.090034,
+ 0,1,0,0.831943,0,0.090034,
+ 0,1,0,0.825162,0,0.09278,
+ 0,1,0,0.841234,0,0.094315,
+ 0,1,0,0.831943,0,0.090034,
+ 0,1,0,0.841234,0,0.094315,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.841234,0,0.094315,
+ 0,1,0,0.846707,0,0.093071,
+ 0,1,0,0.832532,0,0.080587,
+ 0,1,0,0.846707,0,0.093071,
+ 0,1,0,0.892328,0,0.094571,
+ 0,1,0,0.846707,0,0.093071,
+ 0,1,0,0.841234,0,0.094315,
+ 0,1,0,0.846707,0,0.099473,
+ 0,1,0,0.892328,0,0.094571,
+ 0,1,0,0.846707,0,0.093071,
+ 0,1,0,0.862558,0,0.094381,
+ 0,1,0,0.862558,0,0.094381,
+ 0,1,0,0.846707,0,0.093071,
+ 0,1,0,0.857423,0,0.094381,
+ 0,1,0,0.857423,0,0.094381,
+ 0,1,0,0.846707,0,0.093071,
+ 0,1,0,0.852472,0,0.096213,
+ 0,1,0,0.857423,0,0.094381,
+ 0,1,0,0.852472,0,0.096213,
+ 0,1,0,0.857423,0,0.100975,
+ 0,1,0,0.892328,0,0.094571,
+ 0,1,0,0.862558,0,0.094381,
+ 0,1,0,0.892328,0,0.101988,
+ 0,1,0,0.899199,0,0.094571,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.892328,0,0.094571,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.899199,0,0.094571,
+ 0,1,0,0.899404,0,0.097981,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.899404,0,0.097981,
+ 0,1,0,0.909473,0,0.097981,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.909473,0,0.097981,
+ 0,1,0,0.916301,0,0.092997,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.916301,0,0.092997,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.916301,0,0.092997,
+ 0,1,0,0.918851,0,0.098476,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.918851,0,0.098476,
+ 0,1,0,0.925888,0,0.095161,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.925888,0,0.095161,
+ 0,1,0,0.926485,0,0.100656,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.926485,0,0.100656,
+ 0,1,0,0.92745,0,0.10042,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.92745,0,0.10042,
+ 0,1,0,0.929789,0,0.096688,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.929789,0,0.096688,
+ 0,1,0,0.935651,0,0.092805,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.915137,0,0.028034,
+ 0,1,0,0.909874,0,0.024996,
+ 0,1,0,0.915137,0,0.028034,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.966042,0,0.048493,
+ 0,1,0,0.966042,0,0.048493,
+ 0,1,0,0.935651,0,0.083822,
+ 0,1,0,0.946131,0,0.086203,
+ 0,1,0,0.966042,0,0.048493,
+ 0,1,0,0.946131,0,0.086203,
+ 0,1,0,0.947032,0,0.091237,
+ 0,1,0,0.966042,0,0.048493,
+ 0,1,0,0.947032,0,0.091237,
+ 0,1,0,0.952058,0,0.086382,
+ 0,1,0,0.952058,0,0.086382,
+ 0,1,0,0.947032,0,0.091237,
+ 0,1,0,0.951521,0,0.095301,
+ 0,1,0,0.966042,0,0.048493,
+ 0,1,0,0.952058,0,0.086382,
+ 0,1,0,0.959508,0,0.086382,
+ 0,1,0,0.966042,0,0.048493,
+ 0,1,0,0.959508,0,0.086382,
+ 0,1,0,0.96675,0,0.087777,
+ 0,1,0,0.966042,0,0.048493,
+ 0,1,0,0.96675,0,0.087777,
+ 0,1,0,0.967897,0,0.050346,
+ 0,1,0,0.967897,0,0.050346,
+ 0,1,0,0.96675,0,0.087777,
+ 0,1,0,0.98216,0,0.092901,
+ 0,1,0,0.967897,0,0.050346,
+ 0,1,0,0.98216,0,0.092901,
+ 0,1,0,0.976559,0,0.061589,
+ 0,1,0,0.976559,0,0.061589,
+ 0,1,0,0.98216,0,0.092901,
+ 0,1,0,0.989246,0,0.074312,
+ 0,1,0,0.98144,0,0.13698,
+ 0,1,0,0.96675,0,0.087777,
+ 0,1,0,0.959508,0,0.086382,
+ 0,1,0,0.96675,0,0.087777,
+ 0,1,0,0.98144,0,0.13698,
+ 0,1,0,0.985565,0,0.138938,
+ 0,1,0,0.985565,0,0.138938,
+ 0,1,0,0.98144,0,0.13698,
+ 0,1,0,0.984862,0,0.140108,
+ 0,1,0,0.985565,0,0.138938,
+ 0,1,0,0.984862,0,0.140108,
+ 0,1,0,0.985414,0,0.139537,
+ 0,1,0,0.60316,0,0.098248,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.60316,0,0.098248,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.60316,0,0.098248,
+ 0,1,0,0.620851,0,0.091797,
+ 0,1,0,0.620851,0,0.091797,
+ 0,1,0,0.60316,0,0.098248,
+ 0,1,0,0.614411,0,0.098278,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.620851,0,0.091797,
+ 0,1,0,0.631438,0,0.091797,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.631438,0,0.091797,
+ 0,1,0,0.643871,0,0.087598,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.643871,0,0.087598,
+ 0,1,0,0.657966,0,0.089941,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.657966,0,0.089941,
+ 0,1,0,0.662071,0,0.090935,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.662071,0,0.090935,
+ 0,1,0,0.698505,0,0.081469,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.698505,0,0.081469,
+ 0,1,0,0.704247,0,0.079546,
+ 0,1,0,0.454473,0,0.095982,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.376455,0,-0.041627,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.454473,0,0.095982,
+ 0,1,0,0.497607,0,0.091808,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.497607,0,0.091808,
+ 0,1,0,0.501456,0,0.091808,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.501456,0,0.091808,
+ 0,1,0,0.511486,0,0.090215,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.511486,0,0.090215,
+ 0,1,0,0.553107,0,0.091478,
+ 0,1,0,0.591814,0,-0.039138,
+ 0,1,0,0.553107,0,0.091478,
+ 0,1,0,0.591814,0,0.095491,
+ 0,1,0,0.72121,0,0.082325,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.704247,0,0.079546,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.72121,0,0.082325,
+ 0,1,0,0.741942,0,0.07987,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.741942,0,0.07987,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.755534,0,-0.037246,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.935029,0,-0.035172,
+ 0,1,0,0.935029,0,-0.035172,
+ 0,1,0,0.775495,0,0.071129,
+ 0,1,0,0.93599,0,-0.034208,
+ 0,1,0,0.693133,0,0.290579,
+ 0,1,0,0.663409,0,0.249927,
+ 0,1,0,0.663409,0,0.259363,
+ 0,1,0,0.663409,0,0.249927,
+ 0,1,0,0.693133,0,0.290579,
+ 0,1,0,0.69697,0,0.283488
+};
+static const struct gllist ships_ship5_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 702, ships_ship5_data, 0
+};
+const struct gllist *ships_ship5 = &ships_ship5_frame;
+
+static const float ships_ship6_data[] = {
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.00761,0,0.035711,
+ 0,1,0,0.005168,0,0.049856,
+ 0,1,0,0.00761,0,0.035711,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.012035,0,-0.003074,
+ 0,1,0,0.012035,0,-0.003074,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.012056,0,-0.009788,
+ 0,1,0,0.012056,0,-0.009788,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.020554,0,-0.019586,
+ 0,1,0,0.020554,0,-0.019586,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.069502,0,-0.027048,
+ 0,1,0,0.069502,0,-0.027048,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.100116,0,-0.032121,
+ 0,1,0,0.100116,0,-0.032121,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.119522,0,-0.037428,
+ 0,1,0,0.317531,0,0.099131,
+ 0,1,0,0.301761,0,-0.052847,
+ 0,1,0,0.301761,0,0.101015,
+ 0,1,0,0.301761,0,-0.052847,
+ 0,1,0,0.317531,0,0.099131,
+ 0,1,0,0.327571,0,0.095154,
+ 0,1,0,0.301761,0,-0.052847,
+ 0,1,0,0.327571,0,0.095154,
+ 0,1,0,0.337878,0,0.093814,
+ 0,1,0,0.114815,0,0.086584,
+ 0,1,0,0.119522,0,-0.037428,
+ 0,1,0,0.113471,0,0.075648,
+ 0,1,0,0.119522,0,-0.037428,
+ 0,1,0,0.114815,0,0.086584,
+ 0,1,0,0.149053,0,0.088333,
+ 0,1,0,0.044223,0,0.078999,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.037078,0,0.07165,
+ 0,1,0,0.037189,0,0.049856,
+ 0,1,0,0.044223,0,0.078999,
+ 0,1,0,0.119522,0,-0.037428,
+ 0,1,0,0.119522,0,-0.037428,
+ 0,1,0,0.044223,0,0.078999,
+ 0,1,0,0.055073,0,0.07854,
+ 0,1,0,0.119522,0,-0.037428,
+ 0,1,0,0.055073,0,0.07854,
+ 0,1,0,0.113471,0,0.075648,
+ 0,1,0,0.149053,0,0.088333,
+ 0,1,0,0.179741,0,-0.042731,
+ 0,1,0,0.119522,0,-0.037428,
+ 0,1,0,0.179741,0,-0.042731,
+ 0,1,0,0.149053,0,0.088333,
+ 0,1,0,0.301761,0,0.101015,
+ 0,1,0,0.179741,0,-0.042731,
+ 0,1,0,0.301761,0,0.101015,
+ 0,1,0,0.301761,0,-0.052847,
+ 0,1,0,0.172143,0,0.125958,
+ 0,1,0,0.149053,0,0.088333,
+ 0,1,0,0.149053,0,0.125958,
+ 0,1,0,0.149053,0,0.088333,
+ 0,1,0,0.172143,0,0.125958,
+ 0,1,0,0.301761,0,0.101015,
+ 0,1,0,0.172143,0,0.125958,
+ 0,1,0,0.264064,0,0.128088,
+ 0,1,0,0.301761,0,0.101015,
+ 0,1,0,0.264064,0,0.128088,
+ 0,1,0,0.172143,0,0.125958,
+ 0,1,0,0.257925,0,0.133426,
+ 0,1,0,0.307142,0,0.1844,
+ 0,1,0,0.265691,0,0.157236,
+ 0,1,0,0.262648,0,0.186124,
+ 0,1,0,0.265691,0,0.157236,
+ 0,1,0,0.307142,0,0.1844,
+ 0,1,0,0.304541,0,0.176581,
+ 0,1,0,0.265691,0,0.157236,
+ 0,1,0,0.304541,0,0.176581,
+ 0,1,0,0.301761,0,0.101015,
+ 0,1,0,0.301761,0,0.101015,
+ 0,1,0,0.264064,0,0.128088,
+ 0,1,0,0.265691,0,0.157236,
+ 0,1,0,0.257941,0,0.155385,
+ 0,1,0,0.172143,0,0.125958,
+ 0,1,0,0.170246,0,0.156415,
+ 0,1,0,0.172143,0,0.125958,
+ 0,1,0,0.257941,0,0.155385,
+ 0,1,0,0.257925,0,0.133426,
+ 0,1,0,0.337878,0,0.093814,
+ 0,1,0,0.314473,0,-0.053901,
+ 0,1,0,0.301761,0,-0.052847,
+ 0,1,0,0.314473,0,-0.053901,
+ 0,1,0,0.337878,0,0.093814,
+ 0,1,0,0.439288,0,-0.062858,
+ 0,1,0,0.439288,0,-0.062858,
+ 0,1,0,0.337878,0,0.093814,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.684966,0,0.102797,
+ 0,1,0,0.692751,0,0.029614,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.692751,0,0.029614,
+ 0,1,0,0.684966,0,0.102797,
+ 0,1,0,0.692758,0,0.037014,
+ 0,1,0,0.692758,0,0.037014,
+ 0,1,0,0.684966,0,0.102797,
+ 0,1,0,0.693759,0,0.091606,
+ 0,1,0,0.410007,0,0.09773,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.337878,0,0.093814,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.410007,0,0.09773,
+ 0,1,0,0.46531,0,0.0988,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.46531,0,0.0988,
+ 0,1,0,0.554952,0,0.103058,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.554952,0,0.103058,
+ 0,1,0,0.642868,0,0.109787,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.642868,0,0.109787,
+ 0,1,0,0.684966,0,0.102797,
+ 0,1,0,0.684966,0,0.102797,
+ 0,1,0,0.642868,0,0.109787,
+ 0,1,0,0.662723,0,0.107084,
+ 0,1,0,0.692751,0,0.029614,
+ 0,1,0,0.698436,0,-0.076424,
+ 0,1,0,0.596878,0,-0.07232,
+ 0,1,0,0.698436,0,-0.076424,
+ 0,1,0,0.692751,0,0.029614,
+ 0,1,0,0.834403,0,-0.08059,
+ 0,1,0,0.904352,0,0.036065,
+ 0,1,0,0.925985,0,-0.018014,
+ 0,1,0,0.801927,0,0.033143,
+ 0,1,0,0.925985,0,-0.018014,
+ 0,1,0,0.904352,0,0.036065,
+ 0,1,0,0.980572,0,0.03958,
+ 0,1,0,0.925985,0,-0.018014,
+ 0,1,0,0.980572,0,0.03958,
+ 0,1,0,0.976029,0,0.029161,
+ 0,1,0,0.757179,0,0.029859,
+ 0,1,0,0.834403,0,-0.08059,
+ 0,1,0,0.692751,0,0.029614,
+ 0,1,0,0.834403,0,-0.08059,
+ 0,1,0,0.757179,0,0.029859,
+ 0,1,0,0.801927,0,0.033143,
+ 0,1,0,0.868277,0,-0.047334,
+ 0,1,0,0.834403,0,-0.08059,
+ 0,1,0,0.801927,0,0.033143,
+ 0,1,0,0.834403,0,-0.08059,
+ 0,1,0,0.868277,0,-0.047334,
+ 0,1,0,0.851539,0,-0.083355,
+ 0,1,0,0.851539,0,-0.083355,
+ 0,1,0,0.868277,0,-0.047334,
+ 0,1,0,0.891466,0,-0.085733,
+ 0,1,0,0.925985,0,-0.018014,
+ 0,1,0,0.868277,0,-0.047334,
+ 0,1,0,0.801927,0,0.033143,
+ 0,1,0,0.868277,0,-0.047334,
+ 0,1,0,0.925985,0,-0.018014,
+ 0,1,0,0.879096,0,-0.042237,
+ 0,1,0,0.763854,0,0.035269,
+ 0,1,0,0.801927,0,0.033143,
+ 0,1,0,0.757179,0,0.029859,
+ 0,1,0,0.801927,0,0.033143,
+ 0,1,0,0.763854,0,0.035269,
+ 0,1,0,0.773021,0,0.039488,
+ 0,1,0,0.801927,0,0.033143,
+ 0,1,0,0.773021,0,0.039488,
+ 0,1,0,0.796625,0,0.034321,
+ 0,1,0,0.796625,0,0.034321,
+ 0,1,0,0.773021,0,0.039488,
+ 0,1,0,0.786431,0,0.038696
+};
+static const struct gllist ships_ship6_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 171, ships_ship6_data, 0
+};
+const struct gllist *ships_ship6 = &ships_ship6_frame;
+
+static const float ships_ship7_data[] = {
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.014324,0,-0.091298,
+ 0,1,0,0.008486,0,0.067418,
+ 0,1,0,0.622021,0,0.158469,
+ 0,1,0,0.618682,0,0.141172,
+ 0,1,0,0.616974,0,0.153637,
+ 0,1,0,0.668086,0,0.19311,
+ 0,1,0,0.622021,0,0.185792,
+ 0,1,0,0.618171,0,0.193377,
+ 0,1,0,0.622021,0,0.185792,
+ 0,1,0,0.668086,0,0.19311,
+ 0,1,0,0.622021,0,0.158469,
+ 0,1,0,0.622021,0,0.158469,
+ 0,1,0,0.668086,0,0.19311,
+ 0,1,0,0.656931,0,0.083623,
+ 0,1,0,0.656931,0,0.083623,
+ 0,1,0,0.668086,0,0.19311,
+ 0,1,0,0.668588,0,0.191766,
+ 0,1,0,0.609389,0,0.079131,
+ 0,1,0,0.656931,0,0.083623,
+ 0,1,0,0.597457,0,0.051725,
+ 0,1,0,0.656931,0,0.083623,
+ 0,1,0,0.609389,0,0.079131,
+ 0,1,0,0.618682,0,0.141172,
+ 0,1,0,0.656931,0,0.083623,
+ 0,1,0,0.618682,0,0.141172,
+ 0,1,0,0.622021,0,0.158469,
+ 0,1,0,0.120954,0,0.083755,
+ 0,1,0,0.13173,0,0.077601,
+ 0,1,0,0.116971,0,0.077939,
+ 0,1,0,0.13173,0,0.077601,
+ 0,1,0,0.120954,0,0.083755,
+ 0,1,0,0.132081,0,0.085502,
+ 0,1,0,0.284714,0,0.077601,
+ 0,1,0,0.327336,0,-0.097558,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.327336,0,-0.097558,
+ 0,1,0,0.284714,0,0.077601,
+ 0,1,0,0.315366,0,0.092546,
+ 0,1,0,0.327336,0,-0.097558,
+ 0,1,0,0.315366,0,0.092546,
+ 0,1,0,0.317931,0,0.120779,
+ 0,1,0,0.327336,0,-0.097558,
+ 0,1,0,0.317931,0,0.120779,
+ 0,1,0,0.330962,0,0.131536,
+ 0,1,0,0.327336,0,-0.097558,
+ 0,1,0,0.330962,0,0.131536,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.330962,0,0.131536,
+ 0,1,0,0.34539,0,0.136116,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.34539,0,0.136116,
+ 0,1,0,0.348844,0,0.131725,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.348844,0,0.131725,
+ 0,1,0,0.355564,0,0.134282,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.355564,0,0.134282,
+ 0,1,0,0.362675,0,0.139519,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.362675,0,0.139519,
+ 0,1,0,0.367321,0,0.138882,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.367321,0,0.138882,
+ 0,1,0,0.37021,0,0.158014,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.37021,0,0.158014,
+ 0,1,0,0.377344,0,0.138085,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.377344,0,0.138085,
+ 0,1,0,0.428914,0,0.138503,
+ 0,1,0,0.428914,0,0.138503,
+ 0,1,0,0.377344,0,0.138085,
+ 0,1,0,0.418305,0,0.141517,
+ 0,1,0,0.009607,0,0.075536,
+ 0,1,0,0.000711,0,0.067906,
+ 0,1,0,0,0,0.069294,
+ 0,1,0,0.000711,0,0.067906,
+ 0,1,0,0.009607,0,0.075536,
+ 0,1,0,0.008486,0,0.067418,
+ 0,1,0,0.008486,0,0.067418,
+ 0,1,0,0.009607,0,0.075536,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.009607,0,0.075536,
+ 0,1,0,0.041213,0,0.073473,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.041213,0,0.073473,
+ 0,1,0,0.086238,0,0.074943,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.086238,0,0.074943,
+ 0,1,0,0.096676,0,0.077939,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.096676,0,0.077939,
+ 0,1,0,0.116971,0,0.077939,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.116971,0,0.077939,
+ 0,1,0,0.13173,0,0.077601,
+ 0,1,0,0.17083,0,-0.094428,
+ 0,1,0,0.13173,0,0.077601,
+ 0,1,0,0.284714,0,0.077601,
+ 0,1,0,0.287798,0,0.099437,
+ 0,1,0,0.284714,0,0.077601,
+ 0,1,0,0.281269,0,0.098363,
+ 0,1,0,0.284714,0,0.077601,
+ 0,1,0,0.287798,0,0.099437,
+ 0,1,0,0.290717,0,0.092546,
+ 0,1,0,0.284714,0,0.077601,
+ 0,1,0,0.290717,0,0.092546,
+ 0,1,0,0.315366,0,0.092546,
+ 0,1,0,0.245353,0,0.230555,
+ 0,1,0,0.311617,0,0.103912,
+ 0,1,0,0.245351,0,0.225658,
+ 0,1,0,0.311617,0,0.103912,
+ 0,1,0,0.245353,0,0.230555,
+ 0,1,0,0.315583,0,0.110485,
+ 0,1,0,0.311617,0,0.103912,
+ 0,1,0,0.315583,0,0.110485,
+ 0,1,0,0.315366,0,0.092546,
+ 0,1,0,0.315366,0,0.092546,
+ 0,1,0,0.315583,0,0.110485,
+ 0,1,0,0.317931,0,0.120779,
+ 0,1,0,0.317931,0,0.120779,
+ 0,1,0,0.315583,0,0.110485,
+ 0,1,0,0.316521,0,0.120995,
+ 0,1,0,0.332508,0,0.260412,
+ 0,1,0,0.331132,0,0.250756,
+ 0,1,0,0.327441,0,0.260681,
+ 0,1,0,0.330962,0,0.131536,
+ 0,1,0,0.317931,0,0.120779,
+ 0,1,0,0.328331,0,0.211178,
+ 0,1,0,0.340791,0,0.338854,
+ 0,1,0,0.338533,0,0.299547,
+ 0,1,0,0.329553,0,0.330834,
+ 0,1,0,0.345635,0,0.395783,
+ 0,1,0,0.314718,0,0.384075,
+ 0,1,0,0.313951,0,0.386601,
+ 0,1,0,0.314718,0,0.384075,
+ 0,1,0,0.345635,0,0.395783,
+ 0,1,0,0.345113,0,0.39162,
+ 0,1,0,0.327947,0,0.216964,
+ 0,1,0,0.267365,0,0.206311,
+ 0,1,0,0.26709,0,0.20931,
+ 0,1,0,0.267365,0,0.206311,
+ 0,1,0,0.327947,0,0.216964,
+ 0,1,0,0.328331,0,0.211178,
+ 0,1,0,0.328331,0,0.211178,
+ 0,1,0,0.327947,0,0.216964,
+ 0,1,0,0.331132,0,0.250756,
+ 0,1,0,0.328331,0,0.211178,
+ 0,1,0,0.331132,0,0.250756,
+ 0,1,0,0.330962,0,0.131536,
+ 0,1,0,0.330962,0,0.131536,
+ 0,1,0,0.331132,0,0.250756,
+ 0,1,0,0.33706,0,0.213894,
+ 0,1,0,0.33706,0,0.213894,
+ 0,1,0,0.331132,0,0.250756,
+ 0,1,0,0.332508,0,0.260412,
+ 0,1,0,0.33706,0,0.213894,
+ 0,1,0,0.332508,0,0.260412,
+ 0,1,0,0.338533,0,0.299547,
+ 0,1,0,0.33706,0,0.213894,
+ 0,1,0,0.338533,0,0.299547,
+ 0,1,0,0.337814,0,0.218526,
+ 0,1,0,0.337814,0,0.218526,
+ 0,1,0,0.338533,0,0.299547,
+ 0,1,0,0.342221,0,0.274447,
+ 0,1,0,0.342221,0,0.274447,
+ 0,1,0,0.338533,0,0.299547,
+ 0,1,0,0.341927,0,0.280776,
+ 0,1,0,0.341927,0,0.280776,
+ 0,1,0,0.338533,0,0.299547,
+ 0,1,0,0.340791,0,0.338854,
+ 0,1,0,0.342221,0,0.274447,
+ 0,1,0,0.341927,0,0.280776,
+ 0,1,0,0.39956,0,0.285924,
+ 0,1,0,0.342221,0,0.274447,
+ 0,1,0,0.39956,0,0.285924,
+ 0,1,0,0.453565,0,0.289694,
+ 0,1,0,0.453565,0,0.289694,
+ 0,1,0,0.39956,0,0.285924,
+ 0,1,0,0.407973,0,0.28984,
+ 0,1,0,0.407973,0,0.28984,
+ 0,1,0,0.39956,0,0.285924,
+ 0,1,0,0.401022,0,0.293318,
+ 0,1,0,0.407973,0,0.28984,
+ 0,1,0,0.401022,0,0.293318,
+ 0,1,0,0.407039,0,0.296757,
+ 0,1,0,0.453565,0,0.289694,
+ 0,1,0,0.407973,0,0.28984,
+ 0,1,0,0.459932,0,0.294641,
+ 0,1,0,0.453565,0,0.289694,
+ 0,1,0,0.459932,0,0.294641,
+ 0,1,0,0.460649,0,0.292436,
+ 0,1,0,0.345113,0,0.39162,
+ 0,1,0,0.341927,0,0.280776,
+ 0,1,0,0.340791,0,0.338854,
+ 0,1,0,0.341927,0,0.280776,
+ 0,1,0,0.345113,0,0.39162,
+ 0,1,0,0.346201,0,0.35631,
+ 0,1,0,0.346201,0,0.35631,
+ 0,1,0,0.345113,0,0.39162,
+ 0,1,0,0.345635,0,0.395783,
+ 0,1,0,0.346201,0,0.35631,
+ 0,1,0,0.345635,0,0.395783,
+ 0,1,0,0.347948,0,0.411892,
+ 0,1,0,0.346201,0,0.35631,
+ 0,1,0,0.347948,0,0.411892,
+ 0,1,0,0.347402,0,0.391374,
+ 0,1,0,0.347402,0,0.391374,
+ 0,1,0,0.347948,0,0.411892,
+ 0,1,0,0.350552,0,0.396948,
+ 0,1,0,0.347402,0,0.391374,
+ 0,1,0,0.350552,0,0.396948,
+ 0,1,0,0.382114,0,0.401417,
+ 0,1,0,0.382114,0,0.401417,
+ 0,1,0,0.350552,0,0.396948,
+ 0,1,0,0.381306,0,0.404196,
+ 0,1,0,0.349356,0,0.370527,
+ 0,1,0,0.346201,0,0.35631,
+ 0,1,0,0.347402,0,0.391374,
+ 0,1,0,0.385815,0,0.249062,
+ 0,1,0,0.390794,0,0.225064,
+ 0,1,0,0.380095,0,0.243782,
+ 0,1,0,0.390794,0,0.225064,
+ 0,1,0,0.385815,0,0.249062,
+ 0,1,0,0.43745,0,0.149593,
+ 0,1,0,0.390794,0,0.225064,
+ 0,1,0,0.43745,0,0.149593,
+ 0,1,0,0.393313,0,0.220564,
+ 0,1,0,0.393313,0,0.220564,
+ 0,1,0,0.43745,0,0.149593,
+ 0,1,0,0.430713,0,0.148117,
+ 0,1,0,0.337814,0,0.218526,
+ 0,1,0,0.393313,0,0.220564,
+ 0,1,0,0.33706,0,0.213894,
+ 0,1,0,0.393313,0,0.220564,
+ 0,1,0,0.337814,0,0.218526,
+ 0,1,0,0.390794,0,0.225064,
+ 0,1,0,0.36139,0,0.170056,
+ 0,1,0,0.362675,0,0.139519,
+ 0,1,0,0.355564,0,0.134282,
+ 0,1,0,0.362675,0,0.139519,
+ 0,1,0,0.36139,0,0.170056,
+ 0,1,0,0.364485,0,0.169719,
+ 0,1,0,0.46663,0,0.27632,
+ 0,1,0,0.46013,0,0.257261,
+ 0,1,0,0.458352,0,0.27632,
+ 0,1,0,0.467463,0,0.329531,
+ 0,1,0,0.47107,0,0.29969,
+ 0,1,0,0.465354,0,0.329827,
+ 0,1,0,0.47107,0,0.29969,
+ 0,1,0,0.467463,0,0.329531,
+ 0,1,0,0.473423,0,0.35107,
+ 0,1,0,0.485465,0,0.322943,
+ 0,1,0,0.477384,0,0.305137,
+ 0,1,0,0.476383,0,0.327431,
+ 0,1,0,0.477384,0,0.305137,
+ 0,1,0,0.485465,0,0.322943,
+ 0,1,0,0.528435,0,0.306428,
+ 0,1,0,0.528435,0,0.306428,
+ 0,1,0,0.485465,0,0.322943,
+ 0,1,0,0.520583,0,0.315234,
+ 0,1,0,0.475946,0,0.372381,
+ 0,1,0,0.473423,0,0.35107,
+ 0,1,0,0.468659,0,0.37335,
+ 0,1,0,0.473423,0,0.35107,
+ 0,1,0,0.475946,0,0.372381,
+ 0,1,0,0.475869,0,0.279193,
+ 0,1,0,0.475869,0,0.279193,
+ 0,1,0,0.475946,0,0.372381,
+ 0,1,0,0.476383,0,0.327431,
+ 0,1,0,0.475869,0,0.279193,
+ 0,1,0,0.476383,0,0.327431,
+ 0,1,0,0.477384,0,0.305137,
+ 0,1,0,0.475869,0,0.279193,
+ 0,1,0,0.477384,0,0.305137,
+ 0,1,0,0.486025,0,0.280547,
+ 0,1,0,0.486025,0,0.280547,
+ 0,1,0,0.477384,0,0.305137,
+ 0,1,0,0.483949,0,0.293936,
+ 0,1,0,0.47107,0,0.29969,
+ 0,1,0,0.46663,0,0.27632,
+ 0,1,0,0.463702,0,0.296102,
+ 0,1,0,0.46663,0,0.27632,
+ 0,1,0,0.47107,0,0.29969,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.47107,0,0.29969,
+ 0,1,0,0.475869,0,0.279193,
+ 0,1,0,0.475869,0,0.279193,
+ 0,1,0,0.47107,0,0.29969,
+ 0,1,0,0.473423,0,0.35107,
+ 0,1,0,0.46013,0,0.257261,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.456111,0,0.138352,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.46013,0,0.257261,
+ 0,1,0,0.46663,0,0.27632,
+ 0,1,0,0.477848,0,0.418978,
+ 0,1,0,0.442748,0,0.408702,
+ 0,1,0,0.44226,0,0.411925,
+ 0,1,0,0.442748,0,0.408702,
+ 0,1,0,0.477848,0,0.418978,
+ 0,1,0,0.475946,0,0.413137,
+ 0,1,0,0.475946,0,0.413137,
+ 0,1,0,0.477848,0,0.418978,
+ 0,1,0,0.475946,0,0.372381,
+ 0,1,0,0.475946,0,0.372381,
+ 0,1,0,0.477848,0,0.418978,
+ 0,1,0,0.476383,0,0.327431,
+ 0,1,0,0.476383,0,0.327431,
+ 0,1,0,0.477848,0,0.418978,
+ 0,1,0,0.478415,0,0.336819,
+ 0,1,0,0.478415,0,0.336819,
+ 0,1,0,0.477848,0,0.418978,
+ 0,1,0,0.480807,0,0.438935,
+ 0,1,0,0.478415,0,0.336819,
+ 0,1,0,0.480807,0,0.438935,
+ 0,1,0,0.480645,0,0.413861,
+ 0,1,0,0.480645,0,0.413861,
+ 0,1,0,0.480807,0,0.438935,
+ 0,1,0,0.482457,0,0.419142,
+ 0,1,0,0.480645,0,0.413861,
+ 0,1,0,0.482457,0,0.419142,
+ 0,1,0,0.518255,0,0.421079,
+ 0,1,0,0.482457,0,0.419142,
+ 0,1,0,0.480807,0,0.438935,
+ 0,1,0,0.482457,0,0.438748,
+ 0,1,0,0.518255,0,0.421079,
+ 0,1,0,0.482457,0,0.419142,
+ 0,1,0,0.517782,0,0.423624,
+ 0,1,0,0.478415,0,0.336819,
+ 0,1,0,0.480966,0,0.371794,
+ 0,1,0,0.488375,0,0.340838,
+ 0,1,0,0.480966,0,0.371794,
+ 0,1,0,0.478415,0,0.336819,
+ 0,1,0,0.480645,0,0.413861,
+ 0,1,0,0.488375,0,0.340838,
+ 0,1,0,0.480966,0,0.371794,
+ 0,1,0,0.487638,0,0.351236,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.478574,0,0.146831,
+ 0,1,0,0.500967,0,0.138201,
+ 0,1,0,0.478574,0,0.146831,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.474716,0,0.16388,
+ 0,1,0,0.478574,0,0.146831,
+ 0,1,0,0.474716,0,0.16388,
+ 0,1,0,0.477013,0,0.163688,
+ 0,1,0,0.500967,0,0.138201,
+ 0,1,0,0.478574,0,0.146831,
+ 0,1,0,0.486654,0,0.154293,
+ 0,1,0,0.500967,0,0.138201,
+ 0,1,0,0.486654,0,0.154293,
+ 0,1,0,0.496634,0,0.150891,
+ 0,1,0,0.524782,0,0.213734,
+ 0,1,0,0.523887,0,0.186165,
+ 0,1,0,0.519853,0,0.206749,
+ 0,1,0,0.523887,0,0.186165,
+ 0,1,0,0.520443,0,0.136372,
+ 0,1,0,0.520309,0,0.15512,
+ 0,1,0,0.520443,0,0.136372,
+ 0,1,0,0.523887,0,0.186165,
+ 0,1,0,0.572047,0,0.202588,
+ 0,1,0,0.572047,0,0.202588,
+ 0,1,0,0.523887,0,0.186165,
+ 0,1,0,0.524782,0,0.213734,
+ 0,1,0,0.572047,0,0.202588,
+ 0,1,0,0.524782,0,0.213734,
+ 0,1,0,0.574691,0,0.213144,
+ 0,1,0,0.572047,0,0.202588,
+ 0,1,0,0.574691,0,0.213144,
+ 0,1,0,0.57819,0,0.2068,
+ 0,1,0,0.520443,0,0.136372,
+ 0,1,0,0.569256,0,0.178476,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.569256,0,0.178476,
+ 0,1,0,0.520443,0,0.136372,
+ 0,1,0,0.572047,0,0.202588,
+ 0,1,0,0.5725,0,0.174129,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.569256,0,0.178476,
+ 0,1,0,0.428914,0,0.138503,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.428914,0,0.138503,
+ 0,1,0,0.456111,0,0.138352,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.456111,0,0.138352,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.468552,0,0.139316,
+ 0,1,0,0.500967,0,0.138201,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.500967,0,0.138201,
+ 0,1,0,0.520443,0,0.136372,
+ 0,1,0,0.597457,0,0.051725,
+ 0,1,0,0.694309,0,-0.093781,
+ 0,1,0,0.596177,0,0.051864,
+ 0,1,0,0.694309,0,-0.093781,
+ 0,1,0,0.597457,0,0.051725,
+ 0,1,0,0.656931,0,0.083623,
+ 0,1,0,0.694309,0,-0.093781,
+ 0,1,0,0.656931,0,0.083623,
+ 0,1,0,0.666578,0,0.083623,
+ 0,1,0,0.694309,0,-0.093781,
+ 0,1,0,0.666578,0,0.083623,
+ 0,1,0,0.683404,0,0.087819,
+ 0,1,0,0.694309,0,-0.093781,
+ 0,1,0,0.683404,0,0.087819,
+ 0,1,0,0.695292,0,0.090379,
+ 0,1,0,0.694309,0,-0.093781,
+ 0,1,0,0.695292,0,0.090379,
+ 0,1,0,0.798565,0,-0.08952,
+ 0,1,0,0.798565,0,-0.08952,
+ 0,1,0,0.695292,0,0.090379,
+ 0,1,0,0.770867,0,0.070277,
+ 0,1,0,0.798565,0,-0.08952,
+ 0,1,0,0.770867,0,0.070277,
+ 0,1,0,0.790788,0,0.064708,
+ 0,1,0,0.798565,0,-0.08952,
+ 0,1,0,0.790788,0,0.064708,
+ 0,1,0,0.811472,0,0.062538,
+ 0,1,0,0.674737,0,0.116819,
+ 0,1,0,0.669179,0,0.104053,
+ 0,1,0,0.66632,0,0.109728,
+ 0,1,0,0.669179,0,0.104053,
+ 0,1,0,0.666578,0,0.083623,
+ 0,1,0,0.663318,0,0.09943,
+ 0,1,0,0.666578,0,0.083623,
+ 0,1,0,0.669179,0,0.104053,
+ 0,1,0,0.683404,0,0.087819,
+ 0,1,0,0.683404,0,0.087819,
+ 0,1,0,0.669179,0,0.104053,
+ 0,1,0,0.674737,0,0.116819,
+ 0,1,0,0.683404,0,0.087819,
+ 0,1,0,0.674737,0,0.116819,
+ 0,1,0,0.682157,0,0.113373,
+ 0,1,0,0.740263,0,0.3376,
+ 0,1,0,0.717651,0,0.327031,
+ 0,1,0,0.698159,0,0.328757,
+ 0,1,0,0.717651,0,0.327031,
+ 0,1,0,0.740263,0,0.3376,
+ 0,1,0,0.739514,0,0.330799,
+ 0,1,0,0.746733,0,0.349037,
+ 0,1,0,0.742502,0,0.228901,
+ 0,1,0,0.740263,0,0.3376,
+ 0,1,0,0.742502,0,0.228901,
+ 0,1,0,0.746733,0,0.349037,
+ 0,1,0,0.747104,0,0.331665,
+ 0,1,0,0.747104,0,0.331665,
+ 0,1,0,0.746733,0,0.349037,
+ 0,1,0,0.747255,0,0.337924,
+ 0,1,0,0.747104,0,0.331665,
+ 0,1,0,0.747255,0,0.337924,
+ 0,1,0,0.788766,0,0.335619,
+ 0,1,0,0.788766,0,0.335619,
+ 0,1,0,0.747255,0,0.337924,
+ 0,1,0,0.786613,0,0.341369,
+ 0,1,0,0.734225,0,0.221566,
+ 0,1,0,0.717701,0,0.212449,
+ 0,1,0,0.716987,0,0.217392,
+ 0,1,0,0.717701,0,0.212449,
+ 0,1,0,0.734225,0,0.221566,
+ 0,1,0,0.727255,0,0.210387,
+ 0,1,0,0.727255,0,0.210387,
+ 0,1,0,0.734225,0,0.221566,
+ 0,1,0,0.729666,0,0.180357,
+ 0,1,0,0.729666,0,0.180357,
+ 0,1,0,0.734225,0,0.221566,
+ 0,1,0,0.733489,0,0.097134,
+ 0,1,0,0.733489,0,0.097134,
+ 0,1,0,0.734225,0,0.221566,
+ 0,1,0,0.738759,0,0.212174,
+ 0,1,0,0.738759,0,0.212174,
+ 0,1,0,0.734225,0,0.221566,
+ 0,1,0,0.739514,0,0.330799,
+ 0,1,0,0.738759,0,0.212174,
+ 0,1,0,0.739514,0,0.330799,
+ 0,1,0,0.742502,0,0.228901,
+ 0,1,0,0.738759,0,0.212174,
+ 0,1,0,0.742502,0,0.228901,
+ 0,1,0,0.750578,0,0.219996,
+ 0,1,0,0.742502,0,0.228901,
+ 0,1,0,0.739514,0,0.330799,
+ 0,1,0,0.740263,0,0.3376,
+ 0,1,0,0.750578,0,0.219996,
+ 0,1,0,0.742502,0,0.228901,
+ 0,1,0,0.748683,0,0.227909,
+ 0,1,0,0.703808,0,0.097401,
+ 0,1,0,0.695292,0,0.090379,
+ 0,1,0,0.694034,0,0.097401,
+ 0,1,0,0.695292,0,0.090379,
+ 0,1,0,0.703808,0,0.097401,
+ 0,1,0,0.719793,0,0.090445,
+ 0,1,0,0.695292,0,0.090379,
+ 0,1,0,0.719793,0,0.090445,
+ 0,1,0,0.770867,0,0.070277,
+ 0,1,0,0.719793,0,0.090445,
+ 0,1,0,0.703808,0,0.097401,
+ 0,1,0,0.707051,0,0.10343,
+ 0,1,0,0.719793,0,0.090445,
+ 0,1,0,0.707051,0,0.10343,
+ 0,1,0,0.71883,0,0.101826,
+ 0,1,0,0.770867,0,0.070277,
+ 0,1,0,0.719793,0,0.090445,
+ 0,1,0,0.725651,0,0.097121,
+ 0,1,0,0.770867,0,0.070277,
+ 0,1,0,0.725651,0,0.097121,
+ 0,1,0,0.733489,0,0.097134,
+ 0,1,0,0.733489,0,0.097134,
+ 0,1,0,0.725651,0,0.097121,
+ 0,1,0,0.729666,0,0.180357,
+ 0,1,0,0.770867,0,0.070277,
+ 0,1,0,0.733489,0,0.097134,
+ 0,1,0,0.745404,0,0.097732,
+ 0,1,0,0.770867,0,0.070277,
+ 0,1,0,0.745404,0,0.097732,
+ 0,1,0,0.770867,0,0.090136,
+ 0,1,0,0.795116,0,0.092,
+ 0,1,0,0.790788,0,0.064708,
+ 0,1,0,0.780926,0,0.089234,
+ 0,1,0,0.790788,0,0.064708,
+ 0,1,0,0.795116,0,0.092,
+ 0,1,0,0.811472,0,0.062538,
+ 0,1,0,0.811472,0,0.062538,
+ 0,1,0,0.839683,0,-0.0832,
+ 0,1,0,0.798565,0,-0.08952,
+ 0,1,0,0.839683,0,-0.0832,
+ 0,1,0,0.811472,0,0.062538,
+ 0,1,0,0.821874,0,0.066961,
+ 0,1,0,0.839683,0,-0.0832,
+ 0,1,0,0.821874,0,0.066961,
+ 0,1,0,0.824648,0,0.054798,
+ 0,1,0,0.839683,0,-0.0832,
+ 0,1,0,0.824648,0,0.054798,
+ 0,1,0,0.841015,0,0.05224,
+ 0,1,0,0.839683,0,-0.0832,
+ 0,1,0,0.841015,0,0.05224,
+ 0,1,0,0.873228,0,-0.082377,
+ 0,1,0,0.860183,0,0.056987,
+ 0,1,0,0.873228,0,-0.082377,
+ 0,1,0,0.841015,0,0.05224,
+ 0,1,0,0.873228,0,-0.082377,
+ 0,1,0,0.860183,0,0.056987,
+ 0,1,0,0.866568,0,0.058768,
+ 0,1,0,0.873228,0,-0.082377,
+ 0,1,0,0.866568,0,0.058768,
+ 0,1,0,0.914203,0,-0.088048,
+ 0,1,0,0.860315,0,0.058264,
+ 0,1,0,0.860183,0,0.056987,
+ 0,1,0,0.841015,0,0.05224,
+ 0,1,0,0.844083,0,0.132103,
+ 0,1,0,0.841015,0,0.05224,
+ 0,1,0,0.841015,0,0.131717,
+ 0,1,0,0.841015,0,0.05224,
+ 0,1,0,0.844083,0,0.132103,
+ 0,1,0,0.847015,0,0.061852,
+ 0,1,0,0.841015,0,0.05224,
+ 0,1,0,0.847015,0,0.061852,
+ 0,1,0,0.860315,0,0.058264,
+ 0,1,0,0.847015,0,0.061852,
+ 0,1,0,0.844083,0,0.132103,
+ 0,1,0,0.845568,0,0.125387,
+ 0,1,0,0.936557,0,0.052887,
+ 0,1,0,0.936486,0,0.00536,
+ 0,1,0,0.921574,0,0.072794,
+ 0,1,0,0.936486,0,0.00536,
+ 0,1,0,0.936557,0,0.052887,
+ 0,1,0,0.936557,0,0.027166,
+ 0,1,0,0.936486,0,0.00536,
+ 0,1,0,0.936557,0,0.027166,
+ 0,1,0,0.940124,0,0.021527,
+ 0,1,0,0.891583,0,0.060764,
+ 0,1,0,0.866568,0,0.058768,
+ 0,1,0,0.865717,0,0.063887,
+ 0,1,0,0.866568,0,0.058768,
+ 0,1,0,0.891583,0,0.060764,
+ 0,1,0,0.914203,0,-0.088048,
+ 0,1,0,0.914203,0,-0.088048,
+ 0,1,0,0.891583,0,0.060764,
+ 0,1,0,0.904169,0,0.074437,
+ 0,1,0,0.914203,0,-0.088048,
+ 0,1,0,0.904169,0,0.074437,
+ 0,1,0,0.911647,0,0.068036,
+ 0,1,0,0.914203,0,-0.088048,
+ 0,1,0,0.911647,0,0.068036,
+ 0,1,0,0.914909,0,0.074511,
+ 0,1,0,0.914203,0,-0.088048,
+ 0,1,0,0.914909,0,0.074511,
+ 0,1,0,0.941242,0,-0.028276,
+ 0,1,0,0.914203,0,-0.088048,
+ 0,1,0,0.941242,0,-0.028276,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.941242,0,-0.028276,
+ 0,1,0,0.914909,0,0.074511,
+ 0,1,0,0.921574,0,0.072794,
+ 0,1,0,0.941242,0,-0.028276,
+ 0,1,0,0.921574,0,0.072794,
+ 0,1,0,0.936486,0,0.00536,
+ 0,1,0,0.988265,0,0.034438,
+ 0,1,0,0.940124,0,0.021527,
+ 0,1,0,0.936557,0,0.027166,
+ 0,1,0,0.940124,0,0.021527,
+ 0,1,0,0.988265,0,0.034438,
+ 0,1,0,0.988726,0,0.030608,
+ 0,1,0,0.936486,0,0.00536,
+ 0,1,0,0.944142,0,-0.00253,
+ 0,1,0,0.941242,0,-0.028276,
+ 0,1,0,0.944142,0,-0.00253,
+ 0,1,0,0.936486,0,0.00536,
+ 0,1,0,0.960369,0,0.001815,
+ 0,1,0,0.944142,0,-0.00253,
+ 0,1,0,0.960369,0,0.001815,
+ 0,1,0,0.960221,0,-0.000654,
+ 0,1,0,0.980908,0,-0.045793,
+ 0,1,0,0.975212,0,-0.050942,
+ 0,1,0,0.974361,0,-0.040383,
+ 0,1,0,0.941242,0,-0.028276,
+ 0,1,0,0.950727,0,-0.029415,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.950727,0,-0.029415,
+ 0,1,0,0.941242,0,-0.028276,
+ 0,1,0,0.94791,0,-0.017538,
+ 0,1,0,0.950727,0,-0.029415,
+ 0,1,0,0.94791,0,-0.017538,
+ 0,1,0,0.949423,0,-0.017734,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.950727,0,-0.029415,
+ 0,1,0,0.958398,0,-0.035904,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.958398,0,-0.035904,
+ 0,1,0,0.963588,0,-0.026807,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.963588,0,-0.026807,
+ 0,1,0,0.9736,0,-0.02933,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.9736,0,-0.02933,
+ 0,1,0,0.974361,0,-0.040383,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.974361,0,-0.040383,
+ 0,1,0,0.975212,0,-0.050942,
+ 0,1,0,0.969736,0,-0.083885,
+ 0,1,0,0.975212,0,-0.050942,
+ 0,1,0,0.978121,0,-0.065859,
+ 0,1,0,0.58558,0,0.077834,
+ 0,1,0,0.583383,0,0.057688,
+ 0,1,0,0.578541,0,0.071411,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.643211,0,-0.08754,
+ 0,1,0,0.37477,0,-0.091097,
+ 0,1,0,0.643211,0,-0.08754,
+ 0,1,0,0.560158,0,0.070785,
+ 0,1,0,0.581853,0,0.056878,
+ 0,1,0,0.643211,0,-0.08754,
+ 0,1,0,0.581853,0,0.056878,
+ 0,1,0,0.583383,0,0.057688,
+ 0,1,0,0.643211,0,-0.08754,
+ 0,1,0,0.583383,0,0.057688,
+ 0,1,0,0.58558,0,0.077834,
+ 0,1,0,0.643211,0,-0.08754,
+ 0,1,0,0.58558,0,0.077834,
+ 0,1,0,0.596177,0,0.051864,
+ 0,1,0,0.596177,0,0.051864,
+ 0,1,0,0.58558,0,0.077834,
+ 0,1,0,0.593621,0,0.073449,
+ 0,1,0,0.643211,0,-0.08754,
+ 0,1,0,0.596177,0,0.051864,
+ 0,1,0,0.694309,0,-0.093781
+};
+static const struct gllist ships_ship7_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 672, ships_ship7_data, 0
+};
+const struct gllist *ships_ship7 = &ships_ship7_frame;
+
+static const float ships_ship8_data[] = {
+ 0,1,0,0.005832,0,0.055975,
+ 0,1,0,0.003363,0,0.050178,
+ 0,1,0,0.002964,0,0.052735,
+ 0,1,0,0.02253,0,0.059668,
+ 0,1,0,0.010321,0,0.057502,
+ 0,1,0,0.010321,0,0.059668,
+ 0,1,0,0.010321,0,0.057502,
+ 0,1,0,0.02253,0,0.059668,
+ 0,1,0,0.011938,0,0.035003,
+ 0,1,0,0.011938,0,0.035003,
+ 0,1,0,0.02253,0,0.059668,
+ 0,1,0,0.02045,0,0.031007,
+ 0,1,0,0.02045,0,0.031007,
+ 0,1,0,0.02253,0,0.059668,
+ 0,1,0,0.022233,0,0.029468,
+ 0,1,0,0.022233,0,0.029468,
+ 0,1,0,0.02253,0,0.059668,
+ 0,1,0,0.023945,0,0.02295,
+ 0,1,0,0.023945,0,0.02295,
+ 0,1,0,0.02253,0,0.059668,
+ 0,1,0,0.024481,0,0.057055,
+ 0,1,0,0.023945,0,0.02295,
+ 0,1,0,0.024481,0,0.057055,
+ 0,1,0,0.0251,0,0.012782,
+ 0,1,0,0.0251,0,0.012782,
+ 0,1,0,0.024481,0,0.057055,
+ 0,1,0,0.026015,0,0.053784,
+ 0,1,0,0.0251,0,0.012782,
+ 0,1,0,0.026015,0,0.053784,
+ 0,1,0,0.028168,0,0.004866,
+ 0,1,0,0.028168,0,0.004866,
+ 0,1,0,0.026015,0,0.053784,
+ 0,1,0,0.028936,0,0.051351,
+ 0,1,0,0.028168,0,0.004866,
+ 0,1,0,0.028936,0,0.051351,
+ 0,1,0,0.044663,0,-0.019137,
+ 0,1,0,0.044663,0,-0.019137,
+ 0,1,0,0.028936,0,0.051351,
+ 0,1,0,0.033428,0,0.050917,
+ 0,1,0,0.044663,0,-0.019137,
+ 0,1,0,0.033428,0,0.050917,
+ 0,1,0,0.03541,0,0.049777,
+ 0,1,0,0.044663,0,-0.019137,
+ 0,1,0,0.03541,0,0.049777,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.044663,0,-0.019137,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.045996,0,-0.025663,
+ 0,1,0,0.045996,0,-0.025663,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.047669,0,-0.023914,
+ 0,1,0,0.047669,0,-0.023914,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.062945,0,-0.046148,
+ 0,1,0,0.062945,0,-0.046148,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.057326,0,0.049434,
+ 0,1,0,0.062945,0,-0.046148,
+ 0,1,0,0.057326,0,0.049434,
+ 0,1,0,0.073875,0,0.047148,
+ 0,1,0,0.047669,0,-0.023914,
+ 0,1,0,0.045011,0,-0.027703,
+ 0,1,0,0.045996,0,-0.025663,
+ 0,1,0,0.002434,0,0.045554,
+ 0,1,0,0.011938,0,0.035003,
+ 0,1,0,0.002202,0,0.042612,
+ 0,1,0,0.011938,0,0.035003,
+ 0,1,0,0.002434,0,0.045554,
+ 0,1,0,0.003363,0,0.050178,
+ 0,1,0,0.011938,0,0.035003,
+ 0,1,0,0.003363,0,0.050178,
+ 0,1,0,0.005832,0,0.055975,
+ 0,1,0,0.011938,0,0.035003,
+ 0,1,0,0.005832,0,0.055975,
+ 0,1,0,0.010321,0,0.057502,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.438902,0,-0.078115,
+ 0,1,0,0.438902,0,-0.078115,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.42304,0,0.142145,
+ 0,1,0,0.438902,0,-0.078115,
+ 0,1,0,0.42304,0,0.142145,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.438902,0,-0.078115,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.452409,0,-0.078112,
+ 0,1,0,0.452409,0,-0.078112,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.45572,0,-0.076151,
+ 0,1,0,0.036206,0,0.061696,
+ 0,1,0,0.03541,0,0.049777,
+ 0,1,0,0.033904,0,0.057269,
+ 0,1,0,0.03541,0,0.049777,
+ 0,1,0,0.036206,0,0.061696,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.036206,0,0.061696,
+ 0,1,0,0.043939,0,0.060872,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.043939,0,0.060872,
+ 0,1,0,0.049068,0,0.059312,
+ 0,1,0,0.052082,0,0.050568,
+ 0,1,0,0.049068,0,0.059312,
+ 0,1,0,0.051072,0,0.054396,
+ 0,1,0,0.072814,0,0.059976,
+ 0,1,0,0.072474,0,0.049213,
+ 0,1,0,0.070112,0,0.057303,
+ 0,1,0,0.072474,0,0.049213,
+ 0,1,0,0.072814,0,0.059976,
+ 0,1,0,0.07525,0,0.052979,
+ 0,1,0,0.07525,0,0.052979,
+ 0,1,0,0.072814,0,0.059976,
+ 0,1,0,0.075906,0,0.056689,
+ 0,1,0,0.058722,0,0.052729,
+ 0,1,0,0.073875,0,0.047148,
+ 0,1,0,0.057326,0,0.049434,
+ 0,1,0,0.073875,0,0.047148,
+ 0,1,0,0.058722,0,0.052729,
+ 0,1,0,0.059767,0,0.057637,
+ 0,1,0,0.073875,0,0.047148,
+ 0,1,0,0.059767,0,0.057637,
+ 0,1,0,0.062576,0,0.059836,
+ 0,1,0,0.073875,0,0.047148,
+ 0,1,0,0.062576,0,0.059836,
+ 0,1,0,0.072474,0,0.049213,
+ 0,1,0,0.072474,0,0.049213,
+ 0,1,0,0.062576,0,0.059836,
+ 0,1,0,0.070112,0,0.057303,
+ 0,1,0,0.073875,0,0.047148,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.062945,0,-0.046148,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.073875,0,0.047148,
+ 0,1,0,0.077211,0,0.046012,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.077211,0,0.046012,
+ 0,1,0,0.08503,0,0.046156,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.08503,0,0.046156,
+ 0,1,0,0.092167,0,0.045258,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.092167,0,0.045258,
+ 0,1,0,0.096503,0,0.046612,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.096503,0,0.046612,
+ 0,1,0,0.098793,0,0.043324,
+ 0,1,0,0.119348,0,0.043466,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.098793,0,0.043324,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.119348,0,0.043466,
+ 0,1,0,0.12502,0,0.040413,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.12502,0,0.040413,
+ 0,1,0,0.131056,0,0.037851,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.131056,0,0.037851,
+ 0,1,0,0.137656,0,0.037851,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.137656,0,0.037851,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.137656,0,0.037851,
+ 0,1,0,0.139518,0,0.038519,
+ 0,1,0,0.139518,0,0.038519,
+ 0,1,0,0.137656,0,0.037851,
+ 0,1,0,0.138069,0,0.040466,
+ 0,1,0,0.139518,0,0.038519,
+ 0,1,0,0.138069,0,0.040466,
+ 0,1,0,0.138791,0,0.04013,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.139518,0,0.038519,
+ 0,1,0,0.142802,0,0.039252,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.142802,0,0.039252,
+ 0,1,0,0.14614,0,0.039719,
+ 0,1,0,0.14614,0,0.039719,
+ 0,1,0,0.142802,0,0.039252,
+ 0,1,0,0.14388,0,0.04044,
+ 0,1,0,0.125341,0,0.043539,
+ 0,1,0,0.131056,0,0.037851,
+ 0,1,0,0.12502,0,0.040413,
+ 0,1,0,0.131056,0,0.037851,
+ 0,1,0,0.125341,0,0.043539,
+ 0,1,0,0.128161,0,0.043825,
+ 0,1,0,0.145652,0,0.052722,
+ 0,1,0,0.146904,0,0.041826,
+ 0,1,0,0.144617,0,0.046237,
+ 0,1,0,0.146904,0,0.041826,
+ 0,1,0,0.145652,0,0.052722,
+ 0,1,0,0.1479,0,0.055176,
+ 0,1,0,0.146904,0,0.041826,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.14614,0,0.039719,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.146904,0,0.041826,
+ 0,1,0,0.158948,0,0.040799,
+ 0,1,0,0.158948,0,0.040799,
+ 0,1,0,0.146904,0,0.041826,
+ 0,1,0,0.1479,0,0.055176,
+ 0,1,0,0.158948,0,0.040799,
+ 0,1,0,0.1479,0,0.055176,
+ 0,1,0,0.150072,0,0.053004,
+ 0,1,0,0.158948,0,0.040799,
+ 0,1,0,0.150072,0,0.053004,
+ 0,1,0,0.151217,0,0.055047,
+ 0,1,0,0.158948,0,0.040799,
+ 0,1,0,0.151217,0,0.055047,
+ 0,1,0,0.15571,0,0.055047,
+ 0,1,0,0.158948,0,0.040799,
+ 0,1,0,0.15571,0,0.055047,
+ 0,1,0,0.158149,0,0.046535,
+ 0,1,0,0.158149,0,0.046535,
+ 0,1,0,0.15571,0,0.055047,
+ 0,1,0,0.158105,0,0.050391,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.158948,0,0.040799,
+ 0,1,0,0.164424,0,0.045919,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.21016,0,0.039644,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.21016,0,0.039644,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.203635,0,0.039688,
+ 0,1,0,0.203635,0,0.039688,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.201135,0,0.040599,
+ 0,1,0,0.201135,0,0.040599,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.170685,0,0.041151,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.16306,0,0.038153,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.170685,0,0.041151,
+ 0,1,0,0.174519,0,0.043527,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.174519,0,0.043527,
+ 0,1,0,0.181947,0,0.046578,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.181947,0,0.046578,
+ 0,1,0,0.19086,0,0.046478,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.19086,0,0.046478,
+ 0,1,0,0.192825,0,0.048165,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.192825,0,0.048165,
+ 0,1,0,0.203826,0,0.070368,
+ 0,1,0,0.198876,0,0.044189,
+ 0,1,0,0.203826,0,0.070368,
+ 0,1,0,0.208131,0,0.070368,
+ 0,1,0,0.21016,0,0.039644,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.108166,0,-0.049511,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.21016,0,0.039644,
+ 0,1,0,0.211879,0,0.043758,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.211879,0,0.043758,
+ 0,1,0,0.214133,0,0.046343,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.214133,0,0.046343,
+ 0,1,0,0.217067,0,0.047303,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.217067,0,0.047303,
+ 0,1,0,0.220717,0,0.051314,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.220717,0,0.051314,
+ 0,1,0,0.22281,0,0.064939,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.22281,0,0.064939,
+ 0,1,0,0.22375,0,0.067435,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.22375,0,0.067435,
+ 0,1,0,0.223758,0,0.071907,
+ 0,1,0,0.27304,0,0.092137,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.223758,0,0.071907,
+ 0,1,0,0.414461,0,-0.072292,
+ 0,1,0,0.27304,0,0.092137,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.280165,0,0.133184,
+ 0,1,0,0.296022,0,0.116631,
+ 0,1,0,0.277564,0,0.132002,
+ 0,1,0,0.296022,0,0.116631,
+ 0,1,0,0.280165,0,0.133184,
+ 0,1,0,0.333437,0,0.135428,
+ 0,1,0,0.296022,0,0.116631,
+ 0,1,0,0.333437,0,0.135428,
+ 0,1,0,0.296022,0,0.111411,
+ 0,1,0,0.296022,0,0.111411,
+ 0,1,0,0.272364,0,0.103443,
+ 0,1,0,0.271875,0,0.104698,
+ 0,1,0,0.272364,0,0.103443,
+ 0,1,0,0.296022,0,0.111411,
+ 0,1,0,0.27304,0,0.092137,
+ 0,1,0,0.27304,0,0.092137,
+ 0,1,0,0.296022,0,0.111411,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.296022,0,0.111411,
+ 0,1,0,0.333437,0,0.135428,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.333437,0,0.135428,
+ 0,1,0,0.339306,0,0.140563,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.339306,0,0.140563,
+ 0,1,0,0.346191,0,0.144191,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.346191,0,0.144191,
+ 0,1,0,0.361782,0,0.130795,
+ 0,1,0,0.361782,0,0.130795,
+ 0,1,0,0.346191,0,0.144191,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.27304,0,0.092137,
+ 0,1,0,0.272185,0,0.097253,
+ 0,1,0,0.272364,0,0.103443,
+ 0,1,0,0.396131,0,0.201591,
+ 0,1,0,0.394287,0,0.192194,
+ 0,1,0,0.393804,0,0.200441,
+ 0,1,0,0.36561,0,0.142342,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.364378,0,0.128268,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.36561,0,0.142342,
+ 0,1,0,0.367505,0,0.14929,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.367505,0,0.14929,
+ 0,1,0,0.367521,0,0.190175,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.367521,0,0.190175,
+ 0,1,0,0.394287,0,0.192194,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.394287,0,0.192194,
+ 0,1,0,0.39762,0,0.192106,
+ 0,1,0,0.39762,0,0.192106,
+ 0,1,0,0.394287,0,0.192194,
+ 0,1,0,0.396131,0,0.201591,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.39762,0,0.192106,
+ 0,1,0,0.411441,0,0.192103,
+ 0,1,0,0.417031,0,0.142145,
+ 0,1,0,0.411441,0,0.192103,
+ 0,1,0,0.41751,0,0.189939,
+ 0,1,0,0.46729,0,0.156326,
+ 0,1,0,0.46455,0,0.14786,
+ 0,1,0,0.46391,0,0.154195,
+ 0,1,0,0.46455,0,0.14786,
+ 0,1,0,0.46729,0,0.156326,
+ 0,1,0,0.467188,0,0.151932,
+ 0,1,0,0.467188,0,0.151932,
+ 0,1,0,0.46729,0,0.156326,
+ 0,1,0,0.468792,0,0.153724,
+ 0,1,0,0.494957,0,0.142883,
+ 0,1,0,0.492192,0,0.138739,
+ 0,1,0,0.473771,0,0.142883,
+ 0,1,0,0.430244,0,0.148851,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.42304,0,0.142145,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.430244,0,0.148851,
+ 0,1,0,0.436776,0,0.145631,
+ 0,1,0,0.436776,0,0.145631,
+ 0,1,0,0.430244,0,0.148851,
+ 0,1,0,0.4303,0,0.152047,
+ 0,1,0,0.436776,0,0.145631,
+ 0,1,0,0.4303,0,0.152047,
+ 0,1,0,0.431657,0,0.154623,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.436776,0,0.145631,
+ 0,1,0,0.46087,0,0.143294,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.46087,0,0.143294,
+ 0,1,0,0.462544,0,0.148898,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.462544,0,0.148898,
+ 0,1,0,0.46455,0,0.14786,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.46455,0,0.14786,
+ 0,1,0,0.468291,0,0.149647,
+ 0,1,0,0.468291,0,0.149647,
+ 0,1,0,0.46455,0,0.14786,
+ 0,1,0,0.467188,0,0.151932,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.468291,0,0.149647,
+ 0,1,0,0.470539,0,0.149639,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.470539,0,0.149639,
+ 0,1,0,0.473771,0,0.142883,
+ 0,1,0,0.473771,0,0.142883,
+ 0,1,0,0.470539,0,0.149639,
+ 0,1,0,0.472711,0,0.147588,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.473771,0,0.142883,
+ 0,1,0,0.492192,0,0.138739,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.554376,0,-0.083574,
+ 0,1,0,0.45572,0,-0.076151,
+ 0,1,0,0.554376,0,-0.083574,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.554376,0,-0.083574,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.654247,0,0.015187,
+ 0,1,0,0.502776,0,0.108696,
+ 0,1,0,0.501788,0,0.10362,
+ 0,1,0,0.495229,0,0.109265,
+ 0,1,0,0.520624,0,0.103177,
+ 0,1,0,0.512293,0,0.098887,
+ 0,1,0,0.511027,0,0.103177,
+ 0,1,0,0.525775,0,0.103226,
+ 0,1,0,0.525756,0,0.097929,
+ 0,1,0,0.523115,0,0.103226,
+ 0,1,0,0.573637,0,0.088855,
+ 0,1,0,0.558207,0,0.086926,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.558207,0,0.086926,
+ 0,1,0,0.573637,0,0.088855,
+ 0,1,0,0.571308,0,0.086919,
+ 0,1,0,0.604955,0,0.07973,
+ 0,1,0,0.603117,0,0.073276,
+ 0,1,0,0.601069,0,0.081537,
+ 0,1,0,0.603117,0,0.073276,
+ 0,1,0,0.604955,0,0.07973,
+ 0,1,0,0.60802,0,0.073309,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.509626,0,0.097197,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.509626,0,0.097197,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.501788,0,0.10362,
+ 0,1,0,0.501788,0,0.10362,
+ 0,1,0,0.492192,0,0.102364,
+ 0,1,0,0.495229,0,0.109265,
+ 0,1,0,0.509626,0,0.097197,
+ 0,1,0,0.501788,0,0.10362,
+ 0,1,0,0.506596,0,0.10335,
+ 0,1,0,0.509626,0,0.097197,
+ 0,1,0,0.506596,0,0.10335,
+ 0,1,0,0.509379,0,0.098989,
+ 0,1,0,0.509379,0,0.098989,
+ 0,1,0,0.506596,0,0.10335,
+ 0,1,0,0.509367,0,0.100434,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.509626,0,0.097197,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.509626,0,0.097197,
+ 0,1,0,0.512293,0,0.098887,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.512293,0,0.098887,
+ 0,1,0,0.522474,0,0.099087,
+ 0,1,0,0.522474,0,0.099087,
+ 0,1,0,0.512293,0,0.098887,
+ 0,1,0,0.520624,0,0.103177,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.522474,0,0.099087,
+ 0,1,0,0.523115,0,0.103226,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.523115,0,0.103226,
+ 0,1,0,0.525756,0,0.097929,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.559466,0,0.085046,
+ 0,1,0,0.559466,0,0.085046,
+ 0,1,0,0.528723,0,0.087979,
+ 0,1,0,0.558207,0,0.086926,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.559466,0,0.085046,
+ 0,1,0,0.569292,0,0.083154,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.569292,0,0.083154,
+ 0,1,0,0.577201,0,0.080132,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.577201,0,0.080132,
+ 0,1,0,0.579331,0,0.083338,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.579331,0,0.083338,
+ 0,1,0,0.580957,0,0.082369,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.580957,0,0.082369,
+ 0,1,0,0.587377,0,0.083066,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.587377,0,0.083066,
+ 0,1,0,0.603117,0,0.068976,
+ 0,1,0,0.603117,0,0.068976,
+ 0,1,0,0.587377,0,0.083066,
+ 0,1,0,0.59551,0,0.082918,
+ 0,1,0,0.603117,0,0.068976,
+ 0,1,0,0.59551,0,0.082918,
+ 0,1,0,0.601069,0,0.081537,
+ 0,1,0,0.603117,0,0.068976,
+ 0,1,0,0.601069,0,0.081537,
+ 0,1,0,0.603117,0,0.073276,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.603117,0,0.068976,
+ 0,1,0,0.618127,0,0.067729,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.618127,0,0.067729,
+ 0,1,0,0.63036,0,0.064661,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.63036,0,0.064661,
+ 0,1,0,0.644519,0,0.053387,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.644519,0,0.053387,
+ 0,1,0,0.647455,0,0.043469,
+ 0,1,0,0.647455,0,0.043469,
+ 0,1,0,0.644519,0,0.053387,
+ 0,1,0,0.646258,0,0.049809,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.647455,0,0.043469,
+ 0,1,0,0.650701,0,0.037636,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.650701,0,0.037636,
+ 0,1,0,0.653033,0,0.035305,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.653033,0,0.035305,
+ 0,1,0,0.654069,0,0.029472,
+ 0,1,0,0.655501,0,0.016428,
+ 0,1,0,0.654247,0,0.015187,
+ 0,1,0,0.654112,0,0.015207,
+ 0,1,0,0.945366,0,-0.037253,
+ 0,1,0,0.943627,0,-0.044241,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.860413,0,-0.101142,
+ 0,1,0,0.814871,0,-0.103174,
+ 0,1,0,0.860413,0,-0.101142,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.94546,0,-0.104852,
+ 0,1,0,0.94546,0,-0.104852,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.943627,0,-0.044241,
+ 0,1,0,0.675281,0,0.011748,
+ 0,1,0,0.814871,0,-0.103174,
+ 0,1,0,0.669576,0,0.012951,
+ 0,1,0,0.814871,0,-0.103174,
+ 0,1,0,0.675281,0,0.011748,
+ 0,1,0,0.827887,0,0.032351,
+ 0,1,0,0.814871,0,-0.103174,
+ 0,1,0,0.827887,0,0.032351,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.827887,0,0.032351,
+ 0,1,0,0.881549,0,0.0425,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.881549,0,0.0425,
+ 0,1,0,0.884461,0,0.043681,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.884461,0,0.043681,
+ 0,1,0,0.892484,0,0.045416,
+ 0,1,0,0.892484,0,0.045416,
+ 0,1,0,0.884461,0,0.043681,
+ 0,1,0,0.88951,0,0.046355,
+ 0,1,0,0.932523,0,0.067243,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.929184,0,0.060147,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.932523,0,0.067243,
+ 0,1,0,0.931834,0,0.058098,
+ 0,1,0,0.931834,0,0.058098,
+ 0,1,0,0.932523,0,0.067243,
+ 0,1,0,0.932515,0,0.061838,
+ 0,1,0,0.932515,0,0.061838,
+ 0,1,0,0.932523,0,0.067243,
+ 0,1,0,0.933892,0,0.064053,
+ 0,1,0,0.935665,0,0.058098,
+ 0,1,0,0.932778,0,0.053821,
+ 0,1,0,0.931834,0,0.058098,
+ 0,1,0,0.932778,0,0.053821,
+ 0,1,0,0.935665,0,0.058098,
+ 0,1,0,0.935665,0,0.054317,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.932778,0,0.053821,
+ 0,1,0,0.93821,0,0.052186,
+ 0,1,0,0.932778,0,0.053821,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.931834,0,0.058098,
+ 0,1,0,0.95718,0,0.097525,
+ 0,1,0,0.956297,0,0.088372,
+ 0,1,0,0.956137,0,0.091159,
+ 0,1,0,0.956297,0,0.088372,
+ 0,1,0,0.95718,0,0.097525,
+ 0,1,0,0.957079,0,0.084323,
+ 0,1,0,0.957079,0,0.084323,
+ 0,1,0,0.95718,0,0.097525,
+ 0,1,0,0.957195,0,0.055454,
+ 0,1,0,0.957195,0,0.055454,
+ 0,1,0,0.95718,0,0.097525,
+ 0,1,0,0.957651,0,0.104195,
+ 0,1,0,0.957195,0,0.055454,
+ 0,1,0,0.957651,0,0.104195,
+ 0,1,0,0.960891,0,0.055267,
+ 0,1,0,0.960891,0,0.055267,
+ 0,1,0,0.957651,0,0.104195,
+ 0,1,0,0.959009,0,0.097879,
+ 0,1,0,0.93821,0,0.052186,
+ 0,1,0,0.945366,0,-0.037253,
+ 0,1,0,0.931238,0,0.050966,
+ 0,1,0,0.945366,0,-0.037253,
+ 0,1,0,0.93821,0,0.052186,
+ 0,1,0,0.957195,0,0.055454,
+ 0,1,0,0.945366,0,-0.037253,
+ 0,1,0,0.957195,0,0.055454,
+ 0,1,0,0.972642,0,0.02864,
+ 0,1,0,0.972642,0,0.02864,
+ 0,1,0,0.957195,0,0.055454,
+ 0,1,0,0.960891,0,0.055267,
+ 0,1,0,0.972642,0,0.02864,
+ 0,1,0,0.960891,0,0.055267,
+ 0,1,0,0.985604,0,0.059894,
+ 0,1,0,0.972642,0,0.02864,
+ 0,1,0,0.985604,0,0.059894,
+ 0,1,0,0.988456,0,0.057791,
+ 0,1,0,0.988456,0,0.057791,
+ 0,1,0,0.985604,0,0.059894,
+ 0,1,0,0.987834,0,0.059485,
+ 0,1,0,0.654247,0,0.015187,
+ 0,1,0,0.814871,0,-0.103174,
+ 0,1,0,0.554376,0,-0.083574,
+ 0,1,0,0.814871,0,-0.103174,
+ 0,1,0,0.654247,0,0.015187,
+ 0,1,0,0.669576,0,0.012951,
+ 0,1,0,0.655501,0,0.016428,
+ 0,1,0,0.669576,0,0.012951,
+ 0,1,0,0.654247,0,0.015187,
+ 0,1,0,0.669576,0,0.012951,
+ 0,1,0,0.655501,0,0.016428,
+ 0,1,0,0.657185,0,0.02107,
+ 0,1,0,0.669576,0,0.012951,
+ 0,1,0,0.657185,0,0.02107,
+ 0,1,0,0.659916,0,0.02521,
+ 0,1,0,0.669576,0,0.012951,
+ 0,1,0,0.659916,0,0.02521,
+ 0,1,0,0.664177,0,0.020241,
+ 0,1,0,0.664177,0,0.020241,
+ 0,1,0,0.659916,0,0.02521,
+ 0,1,0,0.66073,0,0.026097,
+ 0,1,0,0.664177,0,0.020241,
+ 0,1,0,0.66073,0,0.026097,
+ 0,1,0,0.66237,0,0.026134,
+ 0,1,0,0.669576,0,0.012951,
+ 0,1,0,0.664177,0,0.020241,
+ 0,1,0,0.668157,0,0.021264,
+ 0,1,0,0.347066,0,0.549424,
+ 0,1,0,0.3464,0,0.534556,
+ 0,1,0,0.345213,0,0.547729,
+ 0,1,0,0.348058,0,0.418216,
+ 0,1,0,0.346981,0,0.41173,
+ 0,1,0,0.344483,0,0.413246,
+ 0,1,0,0.346981,0,0.41173,
+ 0,1,0,0.348058,0,0.418216,
+ 0,1,0,0.347565,0,0.40265,
+ 0,1,0,0.327308,0,0.536788,
+ 0,1,0,0.32919,0,0.535075,
+ 0,1,0,0.321335,0,0.537318,
+ 0,1,0,0.32919,0,0.535075,
+ 0,1,0,0.327308,0,0.536788,
+ 0,1,0,0.328188,0,0.5366,
+ 0,1,0,0.32919,0,0.535075,
+ 0,1,0,0.328188,0,0.5366,
+ 0,1,0,0.3464,0,0.534556,
+ 0,1,0,0.32919,0,0.535075,
+ 0,1,0,0.3464,0,0.534556,
+ 0,1,0,0.346293,0,0.532502,
+ 0,1,0,0.346293,0,0.532502,
+ 0,1,0,0.3464,0,0.534556,
+ 0,1,0,0.346334,0,0.471726,
+ 0,1,0,0.346334,0,0.471726,
+ 0,1,0,0.3464,0,0.534556,
+ 0,1,0,0.347276,0,0.465686,
+ 0,1,0,0.347276,0,0.465686,
+ 0,1,0,0.3464,0,0.534556,
+ 0,1,0,0.347066,0,0.549424,
+ 0,1,0,0.347276,0,0.465686,
+ 0,1,0,0.347066,0,0.549424,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.347066,0,0.549424,
+ 0,1,0,0.349227,0,0.547746,
+ 0,1,0,0.347276,0,0.465686,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.347278,0,0.458759,
+ 0,1,0,0.347278,0,0.458759,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.347293,0,0.42338,
+ 0,1,0,0.347293,0,0.42338,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.348058,0,0.418216,
+ 0,1,0,0.345815,0,0.388,
+ 0,1,0,0.347024,0,0.386769,
+ 0,1,0,0.345487,0,0.387331,
+ 0,1,0,0.347024,0,0.386769,
+ 0,1,0,0.345815,0,0.388,
+ 0,1,0,0.347565,0,0.40265,
+ 0,1,0,0.347024,0,0.386769,
+ 0,1,0,0.347565,0,0.40265,
+ 0,1,0,0.348186,0,0.347995,
+ 0,1,0,0.348186,0,0.347995,
+ 0,1,0,0.347565,0,0.40265,
+ 0,1,0,0.348058,0,0.418216,
+ 0,1,0,0.348186,0,0.347995,
+ 0,1,0,0.348058,0,0.418216,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.348186,0,0.347995,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.348219,0,0.515458,
+ 0,1,0,0.348219,0,0.515458,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.349188,0,0.531671,
+ 0,1,0,0.349188,0,0.531671,
+ 0,1,0,0.34814,0,0.533961,
+ 0,1,0,0.38184,0,0.527549,
+ 0,1,0,0.349188,0,0.531671,
+ 0,1,0,0.38184,0,0.527549,
+ 0,1,0,0.380546,0,0.52602,
+ 0,1,0,0.347221,0,0.339233,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.346151,0,0.335537,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.347221,0,0.339233,
+ 0,1,0,0.347364,0,0.342998,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.347364,0,0.342998,
+ 0,1,0,0.348186,0,0.347995,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.348186,0,0.347995,
+ 0,1,0,0.348219,0,0.515458,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.348219,0,0.515458,
+ 0,1,0,0.349153,0,0.508619,
+ 0,1,0,0.349278,0,0.501883,
+ 0,1,0,0.349188,0,0.496373,
+ 0,1,0,0.349153,0,0.508619,
+ 0,1,0,0.349188,0,0.496373,
+ 0,1,0,0.349278,0,0.501883,
+ 0,1,0,0.351564,0,0.493203,
+ 0,1,0,0.351564,0,0.493203,
+ 0,1,0,0.349278,0,0.501883,
+ 0,1,0,0.351549,0,0.496092,
+ 0,1,0,0.349237,0,0.470978,
+ 0,1,0,0.349203,0,0.461645,
+ 0,1,0,0.349188,0,0.496373,
+ 0,1,0,0.349203,0,0.461645,
+ 0,1,0,0.349237,0,0.470978,
+ 0,1,0,0.349729,0,0.465878,
+ 0,1,0,0.352189,0,0.414687,
+ 0,1,0,0.351043,0,0.412516,
+ 0,1,0,0.350152,0,0.418304,
+ 0,1,0,0.351043,0,0.412516,
+ 0,1,0,0.352189,0,0.414687,
+ 0,1,0,0.354741,0,0.41097,
+ 0,1,0,0.352609,0,0.387986,
+ 0,1,0,0.352082,0,0.381934,
+ 0,1,0,0.351117,0,0.39323,
+ 0,1,0,0.355774,0,0.331472,
+ 0,1,0,0.355466,0,0.329124,
+ 0,1,0,0.352095,0,0.363754,
+ 0,1,0,0.341708,0,0.323397,
+ 0,1,0,0.311235,0,0.324384,
+ 0,1,0,0.3097,0,0.326063,
+ 0,1,0,0.311235,0,0.324384,
+ 0,1,0,0.341708,0,0.323397,
+ 0,1,0,0.346191,0,0.320472,
+ 0,1,0,0.346191,0,0.320472,
+ 0,1,0,0.341708,0,0.323397,
+ 0,1,0,0.345765,0,0.324132,
+ 0,1,0,0.346191,0,0.320472,
+ 0,1,0,0.345765,0,0.324132,
+ 0,1,0,0.347876,0,0.322954,
+ 0,1,0,0.346191,0,0.320472,
+ 0,1,0,0.347876,0,0.322954,
+ 0,1,0,0.346191,0,0.144191,
+ 0,1,0,0.346191,0,0.144191,
+ 0,1,0,0.347876,0,0.322954,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.347876,0,0.322954,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.350152,0,0.418304,
+ 0,1,0,0.350152,0,0.418304,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.349203,0,0.461645,
+ 0,1,0,0.349203,0,0.461645,
+ 0,1,0,0.348223,0,0.336993,
+ 0,1,0,0.349153,0,0.508619,
+ 0,1,0,0.349203,0,0.461645,
+ 0,1,0,0.349153,0,0.508619,
+ 0,1,0,0.349188,0,0.496373,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.350152,0,0.418304,
+ 0,1,0,0.351117,0,0.39323,
+ 0,1,0,0.351117,0,0.39323,
+ 0,1,0,0.350152,0,0.418304,
+ 0,1,0,0.351043,0,0.412516,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.351117,0,0.39323,
+ 0,1,0,0.352095,0,0.363754,
+ 0,1,0,0.352095,0,0.363754,
+ 0,1,0,0.351117,0,0.39323,
+ 0,1,0,0.352082,0,0.381934,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.352095,0,0.363754,
+ 0,1,0,0.355481,0,0.327095,
+ 0,1,0,0.355481,0,0.327095,
+ 0,1,0,0.352095,0,0.363754,
+ 0,1,0,0.355466,0,0.329124,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.355481,0,0.327095,
+ 0,1,0,0.35597,0,0.324825,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.35597,0,0.324825,
+ 0,1,0,0.357392,0,0.322493,
+ 0,1,0,0.358829,0,0.141179,
+ 0,1,0,0.357392,0,0.322493,
+ 0,1,0,0.358837,0,0.319339,
+ 0,1,0,0.358837,0,0.319339,
+ 0,1,0,0.357392,0,0.322493,
+ 0,1,0,0.393191,0,0.319422,
+ 0,1,0,0.358837,0,0.319339,
+ 0,1,0,0.393191,0,0.319422,
+ 0,1,0,0.396476,0,0.31792,
+ 0,1,0,0.347293,0,0.42338,
+ 0,1,0,0.346836,0,0.454548,
+ 0,1,0,0.347278,0,0.458759,
+ 0,1,0,0.346981,0,0.41173,
+ 0,1,0,0.34676,0,0.408074,
+ 0,1,0,0.343807,0,0.406572,
+ 0,1,0,0.34676,0,0.408074,
+ 0,1,0,0.346981,0,0.41173,
+ 0,1,0,0.347565,0,0.40265
+};
+static const struct gllist ships_ship8_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 837, ships_ship8_data, 0
+};
+const struct gllist *ships_ship8 = &ships_ship8_frame;
diff --git a/hacks/glx/ships.dxf b/hacks/glx/ships.dxf
new file mode 100644
index 0000000..e7da383
--- /dev/null
+++ b/hacks/glx/ships.dxf
@@ -0,0 +1,49148 @@
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+3DFACE
+ 8
+ship8
+10
+49.775390625
+20
+3.2784742802494105e-12
+30
+477.7269729070317
+11
+28.705078125
+21
+3.275041154070235e-12
+31
+428.2504104070317
+12
+25.30078125
+22
+3.276555242404111e-12
+32
+450.0707229070317
+13
+25.30078125
+23
+3.276555242404111e-12
+33
+450.0707229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+192.28125
+20
+3.2806608449807706e-12
+30
+509.2386916570317
+11
+88.08984375
+21
+3.2793785048612634e-12
+31
+490.7582229070317
+12
+88.08984375
+22
+3.2806608449807706e-12
+32
+509.2386916570317
+13
+88.08984375
+23
+3.2806608449807706e-12
+33
+509.2386916570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+88.08984375
+20
+3.2793785048612634e-12
+30
+490.7582229070317
+11
+192.28125
+21
+3.2806608449807706e-12
+31
+509.2386916570317
+12
+101.888671875
+22
+3.2660542022625028e-12
+32
+298.7347854070317
+13
+101.888671875
+23
+3.2660542022625028e-12
+33
+298.7347854070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+101.888671875
+20
+3.2660542022625028e-12
+30
+298.7347854070317
+11
+192.28125
+21
+3.2806608449807706e-12
+31
+509.2386916570317
+12
+174.533203125
+22
+3.263687931021053e-12
+32
+264.6332229070317
+13
+174.533203125
+23
+3.263687931021053e-12
+33
+264.6332229070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+174.533203125
+20
+3.263687931021053e-12
+30
+264.6332229070317
+11
+192.28125
+21
+3.2806608449807706e-12
+31
+509.2386916570317
+12
+189.75
+22
+3.262776388044536e-12
+32
+251.49650415703172
+13
+189.75
+23
+3.262776388044536e-12
+33
+251.49650415703172
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+189.75
+20
+3.262776388044536e-12
+30
+251.49650415703172
+11
+192.28125
+21
+3.2806608449807706e-12
+31
+509.2386916570317
+12
+204.357421875
+22
+3.2589163572599444e-12
+32
+195.86759790703172
+13
+204.357421875
+23
+3.2589163572599444e-12
+33
+195.86759790703172
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+204.357421875
+20
+3.2589163572599444e-12
+30
+195.86759790703172
+11
+192.28125
+21
+3.2806608449807706e-12
+31
+509.2386916570317
+12
+208.93359375
+22
+3.2791134174300907e-12
+32
+486.9379104070317
+13
+208.93359375
+23
+3.2791134174300907e-12
+33
+486.9379104070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+204.357421875
+20
+3.2589163572599444e-12
+30
+195.86759790703172
+11
+208.93359375
+21
+3.2791134174300907e-12
+31
+486.9379104070317
+12
+214.21875
+22
+3.252894969444503e-12
+32
+109.09025415703172
+13
+214.21875
+23
+3.252894969444503e-12
+33
+109.09025415703172
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+214.21875
+20
+3.252894969444503e-12
+30
+109.09025415703172
+11
+208.93359375
+21
+3.2791134174300907e-12
+31
+486.9379104070317
+12
+222.0234375
+22
+3.2771764902489453e-12
+32
+459.0238479070317
+13
+222.0234375
+23
+3.2771764902489453e-12
+33
+459.0238479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+214.21875
+20
+3.252894969444503e-12
+30
+109.09025415703172
+11
+222.0234375
+21
+3.2771764902489453e-12
+31
+459.0238479070317
+12
+240.3984375
+22
+3.248207150301219e-12
+32
+41.53166040703172
+13
+240.3984375
+23
+3.248207150301219e-12
+33
+41.53166040703172
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+240.3984375
+20
+3.248207150301219e-12
+30
+41.53166040703172
+11
+222.0234375
+21
+3.2771764902489453e-12
+31
+459.0238479070317
+12
+246.9609375
+22
+3.275735585561712e-12
+32
+438.2582229070317
+13
+246.9609375
+23
+3.275735585561712e-12
+33
+438.2582229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+240.3984375
+20
+3.248207150301219e-12
+30
+41.53166040703172
+11
+246.9609375
+21
+3.275735585561712e-12
+31
+438.2582229070317
+12
+381.181640625
+22
+3.2339924466683045e-12
+32
+-163.32380834296828
+13
+381.181640625
+23
+3.2339924466683045e-12
+33
+-163.32380834296828
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+381.181640625
+20
+3.2339924466683045e-12
+30
+-163.32380834296828
+11
+246.9609375
+21
+3.275735585561712e-12
+31
+438.2582229070317
+12
+285.298828125
+22
+3.275478629646833e-12
+32
+434.5550979070317
+13
+285.298828125
+23
+3.275478629646833e-12
+33
+434.5550979070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+381.181640625
+20
+3.2339924466683045e-12
+30
+-163.32380834296828
+11
+285.298828125
+21
+3.275478629646833e-12
+31
+434.5550979070317
+12
+302.208984375
+22
+3.2748037137944608e-12
+32
+424.8285354070317
+13
+302.208984375
+23
+3.2748037137944608e-12
+33
+424.8285354070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+381.181640625
+20
+3.2339924466683045e-12
+30
+-163.32380834296828
+11
+302.208984375
+21
+3.2748037137944608e-12
+31
+424.8285354070317
+12
+444.498046875
+22
+3.2752720891329745e-12
+32
+431.5785354070317
+13
+444.498046875
+23
+3.2752720891329745e-12
+33
+431.5785354070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+381.181640625
+20
+3.2339924466683045e-12
+30
+-163.32380834296828
+11
+444.498046875
+21
+3.2752720891329745e-12
+31
+431.5785354070317
+12
+392.560546875
+22
+3.230127536973937e-12
+32
+-219.02302709296828
+13
+392.560546875
+23
+3.230127536973937e-12
+33
+-219.02302709296828
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+392.560546875
+20
+3.230127536973937e-12
+30
+-219.02302709296828
+11
+444.498046875
+21
+3.2752720891329745e-12
+31
+431.5785354070317
+12
+406.83984375
+22
+3.2311634921497467e-12
+32
+-204.09333959296828
+13
+406.83984375
+23
+3.2311634921497467e-12
+33
+-204.09333959296828
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+406.83984375
+20
+3.2311634921497467e-12
+30
+-204.09333959296828
+11
+444.498046875
+21
+3.2752720891329745e-12
+31
+431.5785354070317
+12
+537.2109375
+22
+3.2179961278154534e-12
+32
+-393.8550583429683
+13
+537.2109375
+23
+3.2179961278154534e-12
+33
+-393.8550583429683
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+537.2109375
+20
+3.2179961278154534e-12
+30
+-393.8550583429683
+11
+444.498046875
+21
+3.2752720891329745e-12
+31
+431.5785354070317
+12
+489.2578125
+22
+3.2746004258871197e-12
+32
+421.8988479070317
+13
+489.2578125
+23
+3.2746004258871197e-12
+33
+421.8988479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+537.2109375
+20
+3.2179961278154534e-12
+30
+-393.8550583429683
+11
+489.2578125
+21
+3.2746004258871197e-12
+31
+421.8988479070317
+12
+630.4921875
+22
+3.2732465284242285e-12
+32
+402.3871291570317
+13
+630.4921875
+23
+3.2732465284242285e-12
+33
+402.3871291570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+406.83984375
+20
+3.2311634921497467e-12
+30
+-204.09333959296828
+11
+384.15234375
+21
+3.2289191936527017e-12
+31
+-236.43708959296828
+12
+392.560546875
+22
+3.230127536973937e-12
+32
+-219.02302709296828
+13
+392.560546875
+23
+3.230127536973937e-12
+33
+-219.02302709296828
+70
+12
+ 0
+3DFACE
+ 8
+ship8
+10
+20.77734375
+20
+3.2723024593825367e-12
+30
+388.7816604070317
+11
+101.888671875
+21
+3.2660542022625028e-12
+31
+298.7347854070317
+12
+18.791015625
+22
+3.2705606885924388e-12
+32
+363.6800979070317
+13
+18.791015625
+23
+3.2705606885924388e-12
+33
+363.6800979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+101.888671875
+20
+3.2660542022625028e-12
+30
+298.7347854070317
+11
+20.77734375
+21
+3.2723024593825367e-12
+31
+388.7816604070317
+12
+28.705078125
+22
+3.275041154070235e-12
+32
+428.2504104070317
+13
+28.705078125
+23
+3.275041154070235e-12
+33
+428.2504104070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+101.888671875
+20
+3.2660542022625028e-12
+30
+298.7347854070317
+11
+28.705078125
+21
+3.275041154070235e-12
+31
+428.2504104070317
+12
+49.775390625
+22
+3.2784742802494105e-12
+32
+477.7269729070317
+13
+49.775390625
+23
+3.2784742802494105e-12
+33
+477.7269729070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+101.888671875
+20
+3.2660542022625028e-12
+30
+298.7347854070317
+11
+49.775390625
+21
+3.2784742802494105e-12
+31
+477.7269729070317
+12
+88.08984375
+22
+3.2793785048612634e-12
+32
+490.7582229070317
+13
+88.08984375
+23
+3.2793785048612634e-12
+33
+490.7582229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3559.189453125
+20
+3.3295044239017857e-12
+30
+1213.1488479070317
+11
+3537.2578125
+21
+3.2025137207923604e-12
+31
+-616.9800583429683
+12
+3109.822265625
+22
+3.321286713535432e-12
+32
+1094.7191604070317
+13
+3109.822265625
+23
+3.321286713535432e-12
+33
+1094.7191604070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+3559.189453125
+21
+3.3295044239017857e-12
+31
+1213.1488479070317
+12
+3745.8515625
+22
+3.199065144732227e-12
+32
+-666.6792770929683
+13
+3745.8515625
+23
+3.199065144732227e-12
+33
+-666.6792770929683
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3745.8515625
+20
+3.199065144732227e-12
+30
+-666.6792770929683
+11
+3559.189453125
+21
+3.3295044239017857e-12
+31
+1213.1488479070317
+12
+3610.4765625
+22
+3.3295044239017857e-12
+32
+1213.1488479070317
+13
+3610.4765625
+23
+3.3295044239017857e-12
+33
+1213.1488479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3745.8515625
+20
+3.199065144732227e-12
+30
+-666.6792770929683
+11
+3610.4765625
+21
+3.3295044239017857e-12
+31
+1213.1488479070317
+12
+4200.662109375
+22
+3.305945794895848e-12
+32
+873.6332229070317
+13
+4200.662109375
+23
+3.305945794895848e-12
+33
+873.6332229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3745.8515625
+20
+3.199065144732227e-12
+30
+-666.6792770929683
+11
+4200.662109375
+21
+3.305945794895848e-12
+31
+873.6332229070317
+12
+3861.134765625
+22
+3.199066771035486e-12
+32
+-666.6558395929683
+13
+3861.134765625
+23
+3.199066771035486e-12
+33
+-666.6558395929683
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3861.134765625
+20
+3.199066771035486e-12
+30
+-666.6558395929683
+11
+4200.662109375
+21
+3.305945794895848e-12
+31
+873.6332229070317
+12
+3889.388671875
+22
+3.200227951562218e-12
+32
+-649.9214645929683
+13
+3889.388671875
+23
+3.200227951562218e-12
+33
+-649.9214645929683
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+309.005859375
+20
+3.2818618699373414e-12
+30
+526.5472854070317
+11
+302.208984375
+21
+3.2748037137944608e-12
+31
+424.8285354070317
+12
+289.359375
+22
+3.2792402690842715e-12
+32
+488.7660354070317
+13
+289.359375
+23
+3.2792402690842715e-12
+33
+488.7660354070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+302.208984375
+20
+3.2748037137944608e-12
+30
+424.8285354070317
+11
+309.005859375
+21
+3.2818618699373414e-12
+31
+526.5472854070317
+12
+444.498046875
+22
+3.2752720891329745e-12
+32
+431.5785354070317
+13
+444.498046875
+23
+3.2752720891329745e-12
+33
+431.5785354070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+444.498046875
+20
+3.2752720891329745e-12
+30
+431.5785354070317
+11
+309.005859375
+21
+3.2818618699373414e-12
+31
+526.5472854070317
+12
+375.0
+22
+3.281373978959723e-12
+32
+519.5160354070317
+13
+375.0
+23
+3.281373978959723e-12
+33
+519.5160354070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+444.498046875
+20
+3.2752720891329745e-12
+30
+431.5785354070317
+11
+375.0
+21
+3.281373978959723e-12
+31
+519.5160354070317
+12
+418.775390625
+22
+3.2804502387087653e-12
+32
+506.2035354070317
+13
+418.775390625
+23
+3.2804502387087653e-12
+33
+506.2035354070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+444.498046875
+20
+3.2752720891329745e-12
+30
+431.5785354070317
+11
+418.775390625
+21
+3.2804502387087653e-12
+31
+506.2035354070317
+12
+435.87890625
+22
+3.2775391558756417e-12
+32
+464.2504104070317
+13
+435.87890625
+23
+3.2775391558756417e-12
+33
+464.2504104070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+621.439453125
+20
+3.2808438040973775e-12
+30
+511.8754104070317
+11
+618.533203125
+21
+3.274469508474792e-12
+31
+420.0121291570317
+12
+598.376953125
+22
+3.2792605978750056e-12
+32
+489.0590041570317
+13
+598.376953125
+23
+3.2792605978750056e-12
+33
+489.0590041570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+618.533203125
+20
+3.274469508474792e-12
+30
+420.0121291570317
+11
+621.439453125
+21
+3.2808438040973775e-12
+31
+511.8754104070317
+12
+642.228515625
+22
+3.276699983394138e-12
+32
+452.1566604070317
+13
+642.228515625
+23
+3.276699983394138e-12
+33
+452.1566604070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+642.228515625
+20
+3.276699983394138e-12
+30
+452.1566604070317
+11
+621.439453125
+21
+3.2808438040973775e-12
+31
+511.8754104070317
+12
+647.830078125
+22
+3.27889711909668e-12
+32
+483.8207229070317
+13
+647.830078125
+23
+3.27889711909668e-12
+33
+483.8207229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+501.169921875
+20
+3.2765519897975937e-12
+30
+450.0238479070317
+11
+630.4921875
+21
+3.2732465284242285e-12
+31
+402.3871291570317
+12
+489.2578125
+22
+3.2746004258871197e-12
+32
+421.8988479070317
+13
+489.2578125
+23
+3.2746004258871197e-12
+33
+421.8988479070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+630.4921875
+20
+3.2732465284242285e-12
+30
+402.3871291570317
+11
+501.169921875
+21
+3.2765519897975937e-12
+31
+450.0238479070317
+12
+510.087890625
+22
+3.279458193720941e-12
+32
+491.9066604070317
+13
+510.087890625
+23
+3.279458193720941e-12
+33
+491.9066604070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+630.4921875
+20
+3.2732465284242285e-12
+30
+402.3871291570317
+11
+510.087890625
+21
+3.279458193720941e-12
+31
+491.9066604070317
+12
+534.05859375
+22
+3.2807608626311824e-12
+32
+510.6800979070317
+13
+534.05859375
+23
+3.2807608626311824e-12
+33
+510.6800979070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+630.4921875
+20
+3.2732465284242285e-12
+30
+402.3871291570317
+11
+534.05859375
+21
+3.2807608626311824e-12
+31
+510.6800979070317
+12
+618.533203125
+22
+3.274469508474792e-12
+32
+420.0121291570317
+13
+618.533203125
+23
+3.274469508474792e-12
+33
+420.0121291570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+618.533203125
+20
+3.274469508474792e-12
+30
+420.0121291570317
+11
+534.05859375
+21
+3.2807608626311824e-12
+31
+510.6800979070317
+12
+598.376953125
+22
+3.2792605978750056e-12
+32
+489.0590041570317
+13
+598.376953125
+23
+3.2792605978750056e-12
+33
+489.0590041570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+630.4921875
+20
+3.2732465284242285e-12
+30
+402.3871291570317
+11
+923.1499643265097
+21
+3.2160044039029977e-12
+31
+-422.5588249668367
+12
+537.2109375
+22
+3.2179961278154534e-12
+32
+-393.8550583429683
+13
+537.2109375
+23
+3.2179961278154534e-12
+33
+-393.8550583429683
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+630.4921875
+21
+3.2732465284242285e-12
+31
+402.3871291570317
+12
+658.96875
+22
+3.2725740520267443e-12
+32
+392.6957229070317
+13
+658.96875
+23
+3.2725740520267443e-12
+33
+392.6957229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+658.96875
+21
+3.2725740520267443e-12
+31
+392.6957229070317
+12
+725.701171875
+22
+3.2726594329478276e-12
+32
+393.9261916570317
+13
+725.701171875
+23
+3.2726594329478276e-12
+33
+393.9261916570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+725.701171875
+21
+3.2726594329478276e-12
+31
+393.9261916570317
+12
+786.609375
+22
+3.2721276317822234e-12
+32
+386.2621291570317
+13
+786.609375
+23
+3.2721276317822234e-12
+33
+386.2621291570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+786.609375
+21
+3.2721276317822234e-12
+31
+386.2621291570317
+12
+823.611328125
+22
+3.2729293992887765e-12
+32
+397.8168166570317
+13
+823.611328125
+23
+3.2729293992887765e-12
+33
+397.8168166570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+823.611328125
+21
+3.2729293992887765e-12
+31
+397.8168166570317
+12
+843.158203125
+22
+3.2709819011364494e-12
+32
+369.7504104070317
+13
+843.158203125
+23
+3.2709819011364494e-12
+33
+369.7504104070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1018.587890625
+20
+3.2710664689059032e-12
+30
+370.9691604070317
+11
+923.1499643265097
+21
+3.2160044039029977e-12
+31
+-422.5588249668367
+12
+843.158203125
+22
+3.2709819011364494e-12
+32
+369.7504104070317
+13
+843.158203125
+23
+3.2709819011364494e-12
+33
+369.7504104070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+1018.587890625
+21
+3.2710664689059032e-12
+31
+370.9691604070317
+12
+1066.9921875
+22
+3.2692580196821974e-12
+32
+344.9066604070317
+13
+1066.9921875
+23
+3.2692580196821974e-12
+33
+344.9066604070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+1066.9921875
+21
+3.2692580196821974e-12
+31
+344.9066604070317
+12
+1118.5078125
+22
+3.267740678741804e-12
+32
+323.0394729070317
+13
+1118.5078125
+23
+3.267740678741804e-12
+33
+323.0394729070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+1118.5078125
+21
+3.267740678741804e-12
+31
+323.0394729070317
+12
+1174.83984375
+22
+3.267740678741804e-12
+32
+323.0394729070317
+13
+1174.83984375
+23
+3.267740678741804e-12
+33
+323.0394729070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+923.1499643265097
+20
+3.2160044039029977e-12
+30
+-422.5588249668367
+11
+1174.83984375
+21
+3.267740678741804e-12
+31
+323.0394729070317
+12
+1391.6484375
+22
+3.267919572100264e-12
+32
+325.6175979070317
+13
+1391.6484375
+23
+3.267919572100264e-12
+33
+325.6175979070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+1391.6484375
+20
+3.267919572100264e-12
+30
+325.6175979070317
+11
+1174.83984375
+21
+3.267740678741804e-12
+31
+323.0394729070317
+12
+1190.73046875
+22
+3.2681366835853043e-12
+32
+328.7465041570317
+13
+1190.73046875
+23
+3.2681366835853043e-12
+33
+328.7465041570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+1190.73046875
+20
+3.2681366835853043e-12
+30
+328.7465041570317
+11
+1174.83984375
+21
+3.267740678741804e-12
+31
+323.0394729070317
+12
+1178.361328125
+22
+3.2692897325957426e-12
+32
+345.3636916570317
+13
+1178.361328125
+23
+3.2692897325957426e-12
+33
+345.3636916570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1190.73046875
+20
+3.2681366835853043e-12
+30
+328.7465041570317
+11
+1178.361328125
+21
+3.2692897325957426e-12
+31
+345.3636916570317
+12
+1184.525390625
+22
+3.2690905104465484e-12
+32
+342.4925979070317
+13
+1184.525390625
+23
+3.2690905104465484e-12
+33
+342.4925979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1391.6484375
+20
+3.267919572100264e-12
+30
+325.6175979070317
+11
+1190.73046875
+21
+3.2681366835853043e-12
+31
+328.7465041570317
+12
+1218.755859375
+22
+3.2685709065553847e-12
+32
+335.0043166570317
+13
+1218.755859375
+23
+3.2685709065553847e-12
+33
+335.0043166570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1391.6484375
+20
+3.267919572100264e-12
+30
+325.6175979070317
+11
+1218.755859375
+21
+3.2685709065553847e-12
+31
+335.0043166570317
+12
+1247.25
+22
+3.2688473781093685e-12
+32
+338.9886916570317
+13
+1247.25
+23
+3.2688473781093685e-12
+33
+338.9886916570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+1247.25
+20
+3.2688473781093685e-12
+30
+338.9886916570317
+11
+1218.755859375
+21
+3.2685709065553847e-12
+31
+335.0043166570317
+12
+1227.9609375
+22
+3.2692742827147847e-12
+32
+345.1410354070317
+13
+1227.9609375
+23
+3.2692742827147847e-12
+33
+345.1410354070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1069.734375
+20
+3.2711095659422595e-12
+30
+371.5902541570317
+11
+1118.5078125
+21
+3.267740678741804e-12
+31
+323.0394729070317
+12
+1066.9921875
+22
+3.2692580196821974e-12
+32
+344.9066604070317
+13
+1066.9921875
+23
+3.2692580196821974e-12
+33
+344.9066604070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1118.5078125
+20
+3.267740678741804e-12
+30
+323.0394729070317
+11
+1069.734375
+21
+3.2711095659422595e-12
+31
+371.5902541570317
+12
+1093.798828125
+22
+3.2712787014811673e-12
+32
+374.0277541570317
+13
+1093.798828125
+23
+3.2712787014811673e-12
+33
+374.0277541570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1243.078125
+20
+3.276547924039447e-12
+30
+449.9652541570317
+11
+1253.765625
+21
+3.270094752708813e-12
+31
+356.9652541570317
+12
+1234.248046875
+22
+3.27270740889396e-12
+32
+394.6175979070317
+13
+1234.248046875
+23
+3.27270740889396e-12
+33
+394.6175979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1253.765625
+20
+3.270094752708813e-12
+30
+356.9652541570317
+11
+1243.078125
+21
+3.276547924039447e-12
+31
+449.9652541570317
+12
+1262.267578125
+22
+3.2780010260011205e-12
+32
+470.9066604070317
+13
+1262.267578125
+23
+3.2780010260011205e-12
+33
+470.9066604070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1253.765625
+20
+3.270094752708813e-12
+30
+356.9652541570317
+11
+1391.6484375
+21
+3.267919572100264e-12
+31
+325.6175979070317
+12
+1247.25
+22
+3.2688473781093685e-12
+32
+338.9886916570317
+13
+1247.25
+23
+3.2688473781093685e-12
+33
+338.9886916570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1391.6484375
+20
+3.267919572100264e-12
+30
+325.6175979070317
+11
+1253.765625
+21
+3.270094752708813e-12
+31
+356.9652541570317
+12
+1356.556640625
+22
+3.2694865152900487e-12
+32
+348.1996291570317
+13
+1356.556640625
+23
+3.2694865152900487e-12
+33
+348.1996291570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+1356.556640625
+20
+3.2694865152900487e-12
+30
+348.1996291570317
+11
+1253.765625
+21
+3.270094752708813e-12
+31
+356.9652541570317
+12
+1262.267578125
+22
+3.2780010260011205e-12
+32
+470.9066604070317
+13
+1262.267578125
+23
+3.2780010260011205e-12
+33
+470.9066604070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+1356.556640625
+20
+3.2694865152900487e-12
+30
+348.1996291570317
+11
+1262.267578125
+21
+3.2780010260011205e-12
+31
+470.9066604070317
+12
+1280.806640625
+22
+3.2767146201234665e-12
+32
+452.3675979070317
+13
+1280.806640625
+23
+3.2767146201234665e-12
+33
+452.3675979070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1356.556640625
+20
+3.2694865152900487e-12
+30
+348.1996291570317
+11
+1280.806640625
+21
+3.2767146201234665e-12
+31
+452.3675979070317
+12
+1290.57421875
+22
+3.2779245897479603e-12
+32
+469.8050979070317
+13
+1290.57421875
+23
+3.2779245897479603e-12
+33
+469.8050979070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1356.556640625
+20
+3.2694865152900487e-12
+30
+348.1996291570317
+11
+1290.57421875
+21
+3.2779245897479603e-12
+31
+469.8050979070317
+12
+1328.923828125
+22
+3.2779245897479603e-12
+32
+469.8050979070317
+13
+1328.923828125
+23
+3.2779245897479603e-12
+33
+469.8050979070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1356.556640625
+20
+3.2694865152900487e-12
+30
+348.1996291570317
+11
+1328.923828125
+21
+3.2779245897479603e-12
+31
+469.8050979070317
+12
+1349.7421875
+22
+3.272883862797532e-12
+32
+397.1605666570317
+13
+1349.7421875
+23
+3.272883862797532e-12
+33
+397.1605666570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+1349.7421875
+20
+3.272883862797532e-12
+30
+397.1605666570317
+11
+1328.923828125
+21
+3.2779245897479603e-12
+31
+469.8050979070317
+12
+1349.3671875
+22
+3.2751671925727865e-12
+32
+430.0668166570317
+13
+1349.3671875
+23
+3.2751671925727865e-12
+33
+430.0668166570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1391.6484375
+20
+3.267919572100264e-12
+30
+325.6175979070317
+11
+1356.556640625
+21
+3.2694865152900487e-12
+31
+348.1996291570317
+12
+1403.296875
+22
+3.2725187577159476e-12
+32
+391.8988479070317
+13
+1403.296875
+23
+3.2725187577159476e-12
+33
+391.8988479070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1391.6484375
+20
+3.267919572100264e-12
+30
+325.6175979070317
+11
+1793.630859375
+21
+3.2688026547697535e-12
+31
+338.3441604070317
+12
+923.1499643265097
+22
+3.2160044039029977e-12
+32
+-422.5588249668367
+13
+923.1499643265097
+23
+3.2160044039029977e-12
+33
+-422.5588249668367
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1793.630859375
+20
+3.2688026547697535e-12
+30
+338.3441604070317
+11
+1391.6484375
+21
+3.267919572100264e-12
+31
+325.6175979070317
+12
+1737.943359375
+22
+3.268828675621893e-12
+32
+338.7191604070317
+13
+1737.943359375
+23
+3.268828675621893e-12
+33
+338.7191604070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+1737.943359375
+20
+3.268828675621893e-12
+30
+338.7191604070317
+11
+1391.6484375
+21
+3.267919572100264e-12
+31
+325.6175979070317
+12
+1716.603515625
+22
+3.269368608303791e-12
+32
+346.5004104070317
+13
+1716.603515625
+23
+3.269368608303791e-12
+33
+346.5004104070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+1716.603515625
+20
+3.269368608303791e-12
+30
+346.5004104070317
+11
+1391.6484375
+21
+3.267919572100264e-12
+31
+325.6175979070317
+12
+1697.326171875
+22
+3.2714941866629488e-12
+32
+377.1332229070317
+13
+1697.326171875
+23
+3.2714941866629488e-12
+33
+377.1332229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1456.728515625
+20
+3.2696954952587953e-12
+30
+351.2113479070317
+11
+1697.326171875
+21
+3.2714941866629488e-12
+31
+377.1332229070317
+12
+1391.6484375
+22
+3.267919572100264e-12
+32
+325.6175979070317
+13
+1391.6484375
+23
+3.267919572100264e-12
+33
+325.6175979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1697.326171875
+20
+3.2714941866629488e-12
+30
+377.1332229070317
+11
+1456.728515625
+21
+3.2696954952587953e-12
+31
+351.2113479070317
+12
+1489.453125
+22
+3.2711022475775953e-12
+32
+371.4847854070317
+13
+1489.453125
+23
+3.2711022475775953e-12
+33
+371.4847854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1697.326171875
+20
+3.2714941866629488e-12
+30
+377.1332229070317
+11
+1489.453125
+21
+3.2711022475775953e-12
+31
+371.4847854070317
+12
+1552.845703125
+22
+3.2729090704980424e-12
+32
+397.5238479070317
+13
+1552.845703125
+23
+3.2729090704980424e-12
+33
+397.5238479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1697.326171875
+20
+3.2714941866629488e-12
+30
+377.1332229070317
+11
+1552.845703125
+21
+3.2729090704980424e-12
+31
+397.5238479070317
+12
+1628.91796875
+22
+3.2728497104290988e-12
+32
+396.6683791570317
+13
+1628.91796875
+23
+3.2728497104290988e-12
+33
+396.6683791570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1697.326171875
+20
+3.2714941866629488e-12
+30
+377.1332229070317
+11
+1628.91796875
+21
+3.2728497104290988e-12
+31
+396.6683791570317
+12
+1645.6875
+22
+3.2738490737815873e-12
+32
+411.0707229070317
+13
+1645.6875
+23
+3.2738490737815873e-12
+33
+411.0707229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1697.326171875
+20
+3.2714941866629488e-12
+30
+377.1332229070317
+11
+1645.6875
+21
+3.2738490737815873e-12
+31
+411.0707229070317
+12
+1739.572265625
+22
+3.2869977356284052e-12
+32
+600.5629104070317
+13
+1739.572265625
+23
+3.2869977356284052e-12
+33
+600.5629104070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+1697.326171875
+20
+3.2714941866629488e-12
+30
+377.1332229070317
+11
+1739.572265625
+21
+3.2869977356284052e-12
+31
+600.5629104070317
+12
+1776.31640625
+22
+3.2869977356284052e-12
+32
+600.5629104070317
+13
+1776.31640625
+23
+3.2869977356284052e-12
+33
+600.5629104070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+1793.630859375
+20
+3.2688026547697535e-12
+30
+338.3441604070317
+11
+3537.2578125
+21
+3.2025137207923604e-12
+31
+-616.9800583429683
+12
+923.1499643265097
+22
+3.2160044039029977e-12
+32
+-422.5588249668367
+13
+923.1499643265097
+23
+3.2160044039029977e-12
+33
+-422.5588249668367
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+1793.630859375
+21
+3.2688026547697535e-12
+31
+338.3441604070317
+12
+1808.302734375
+22
+3.2712388570513284e-12
+32
+373.4535354070317
+13
+1808.302734375
+23
+3.2712388570513284e-12
+33
+373.4535354070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+1808.302734375
+21
+3.2712388570513284e-12
+31
+373.4535354070317
+12
+1827.5390625
+22
+3.272770021569421e-12
+32
+395.5199416570317
+13
+1827.5390625
+23
+3.272770021569421e-12
+33
+395.5199416570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+1827.5390625
+21
+3.272770021569421e-12
+31
+395.5199416570317
+12
+1852.58203125
+22
+3.2733384145583466e-12
+32
+403.7113479070317
+13
+1852.58203125
+23
+3.2733384145583466e-12
+33
+403.7113479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+1852.58203125
+21
+3.2733384145583466e-12
+31
+403.7113479070317
+12
+1883.73046875
+22
+3.2757136304677192e-12
+32
+437.9418166570317
+13
+1883.73046875
+23
+3.2757136304677192e-12
+33
+437.9418166570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+1883.73046875
+21
+3.2757136304677192e-12
+31
+437.9418166570317
+12
+1901.595703125
+22
+3.2837825340858995e-12
+32
+554.2269729070317
+13
+1901.595703125
+23
+3.2837825340858995e-12
+33
+554.2269729070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+1901.595703125
+21
+3.2837825340858995e-12
+31
+554.2269729070317
+12
+1909.6171875
+22
+3.2852608437480835e-12
+32
+575.5316604070317
+13
+1909.6171875
+23
+3.2852608437480835e-12
+33
+575.5316604070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+1909.6171875
+21
+3.2852608437480835e-12
+31
+575.5316604070317
+12
+1909.681640625
+22
+3.2879092786049224e-12
+32
+613.6996291570317
+13
+1909.681640625
+23
+3.2879092786049224e-12
+33
+613.6996291570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2330.291015625
+20
+3.299889441560344e-12
+30
+786.3519729070317
+11
+3537.2578125
+21
+3.2025137207923604e-12
+31
+-616.9800583429683
+12
+1909.681640625
+22
+3.2879092786049224e-12
+32
+613.6996291570317
+13
+1909.681640625
+23
+3.2879092786049224e-12
+33
+613.6996291570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3537.2578125
+20
+3.2025137207923604e-12
+30
+-616.9800583429683
+11
+2330.291015625
+21
+3.299889441560344e-12
+31
+786.3519729070317
+12
+3109.822265625
+22
+3.321286713535432e-12
+32
+1094.7191604070317
+13
+3109.822265625
+23
+3.321286713535432e-12
+33
+1094.7191604070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2391.09375
+20
+3.3241977963685554e-12
+30
+1136.6722854070317
+11
+2526.427734375
+21
+3.314395253476571e-12
+31
+995.4027541570317
+12
+2368.8984375
+22
+3.323497672815673e-12
+32
+1126.5824416570317
+13
+2368.8984375
+23
+3.323497672815673e-12
+33
+1126.5824416570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2526.427734375
+20
+3.314395253476571e-12
+30
+995.4027541570317
+11
+2391.09375
+21
+3.3241977963685554e-12
+31
+1136.6722854070317
+12
+2845.751953125
+22
+3.3255264861309364e-12
+32
+1155.8207229070317
+13
+2845.751953125
+23
+3.3255264861309364e-12
+33
+1155.8207229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2526.427734375
+20
+3.314395253476571e-12
+30
+995.4027541570317
+11
+2845.751953125
+21
+3.3255264861309364e-12
+31
+1155.8207229070317
+12
+2526.427734375
+22
+3.3113036509817284e-12
+32
+950.8480666570317
+13
+2526.427734375
+23
+3.3113036509817284e-12
+33
+950.8480666570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2526.427734375
+20
+3.3113036509817284e-12
+30
+950.8480666570317
+11
+2324.51953125
+21
+3.3065849320765284e-12
+31
+882.8441604070317
+12
+2320.34765625
+22
+3.307328152665767e-12
+32
+893.5550979070317
+13
+2320.34765625
+23
+3.307328152665767e-12
+33
+893.5550979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2324.51953125
+20
+3.3065849320765284e-12
+30
+882.8441604070317
+11
+2526.427734375
+21
+3.3113036509817284e-12
+31
+950.8480666570317
+12
+2330.291015625
+22
+3.299889441560344e-12
+32
+786.3519729070317
+13
+2330.291015625
+23
+3.299889441560344e-12
+33
+786.3519729070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2330.291015625
+20
+3.299889441560344e-12
+30
+786.3519729070317
+11
+2526.427734375
+21
+3.3113036509817284e-12
+31
+950.8480666570317
+12
+3109.822265625
+22
+3.321286713535432e-12
+32
+1094.7191604070317
+13
+3109.822265625
+23
+3.321286713535432e-12
+33
+1094.7191604070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3109.822265625
+20
+3.321286713535432e-12
+30
+1094.7191604070317
+11
+2526.427734375
+21
+3.3113036509817284e-12
+31
+950.8480666570317
+12
+2845.751953125
+22
+3.3255264861309364e-12
+32
+1155.8207229070317
+13
+2845.751953125
+23
+3.3255264861309364e-12
+33
+1155.8207229070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3109.822265625
+20
+3.321286713535432e-12
+30
+1094.7191604070317
+11
+2845.751953125
+21
+3.3255264861309364e-12
+31
+1155.8207229070317
+12
+2895.837890625
+22
+3.3285676732247582e-12
+32
+1199.6488479070317
+13
+2895.837890625
+23
+3.3285676732247582e-12
+33
+1199.6488479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3109.822265625
+20
+3.321286713535432e-12
+30
+1094.7191604070317
+11
+2895.837890625
+21
+3.3285676732247582e-12
+31
+1199.6488479070317
+12
+2954.6015625
+22
+3.3307160198295382e-12
+32
+1230.6097854070317
+13
+2954.6015625
+23
+3.3307160198295382e-12
+33
+1230.6097854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3109.822265625
+20
+3.321286713535432e-12
+30
+1094.7191604070317
+11
+2954.6015625
+21
+3.3307160198295382e-12
+31
+1230.6097854070317
+12
+3087.662109375
+22
+3.322782912533462e-12
+32
+1116.2816604070317
+13
+3087.662109375
+23
+3.322782912533462e-12
+33
+1116.2816604070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3087.662109375
+20
+3.322782912533462e-12
+30
+1116.2816604070317
+11
+2954.6015625
+21
+3.3307160198295382e-12
+31
+1230.6097854070317
+12
+3062.466796875
+22
+3.3289327783063427e-12
+32
+1204.9105666570317
+13
+3062.466796875
+23
+3.3289327783063427e-12
+33
+1204.9105666570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2330.291015625
+20
+3.299889441560344e-12
+30
+786.3519729070317
+11
+2322.990234375
+21
+3.302919244531355e-12
+31
+830.0160354070317
+12
+2324.51953125
+22
+3.3065849320765284e-12
+32
+882.8441604070317
+13
+2324.51953125
+23
+3.3065849320765284e-12
+33
+882.8441604070317
+70
+12
+ 0
+3DFACE
+ 8
+ship8
+10
+3380.818359375
+20
+3.3647090105434763e-12
+30
+1720.5004104070317
+11
+3365.0859375
+21
+3.359143800792108e-12
+31
+1640.2972854070317
+12
+3360.9609375
+22
+3.364027589478069e-12
+32
+1710.6800979070317
+13
+3360.9609375
+23
+3.364027589478069e-12
+33
+1710.6800979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3120.33984375
+20
+3.329621517736414e-12
+30
+1214.8363479070317
+11
+3559.189453125
+21
+3.3295044239017857e-12
+31
+1213.1488479070317
+12
+3109.822265625
+22
+3.321286713535432e-12
+32
+1094.7191604070317
+13
+3109.822265625
+23
+3.321286713535432e-12
+33
+1094.7191604070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3559.189453125
+20
+3.3295044239017857e-12
+30
+1213.1488479070317
+11
+3120.33984375
+21
+3.329621517736414e-12
+31
+1214.8363479070317
+12
+3136.505859375
+22
+3.3337360649809966e-12
+32
+1274.1332229070317
+13
+3136.505859375
+23
+3.3337360649809966e-12
+33
+1274.1332229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3559.189453125
+20
+3.3295044239017857e-12
+30
+1213.1488479070317
+11
+3136.505859375
+21
+3.3337360649809966e-12
+31
+1274.1332229070317
+12
+3136.646484375
+22
+3.357948467896943e-12
+32
+1623.0707229070317
+13
+3136.646484375
+23
+3.357948467896943e-12
+33
+1623.0707229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3559.189453125
+20
+3.3295044239017857e-12
+30
+1213.1488479070317
+11
+3136.646484375
+21
+3.357948467896943e-12
+31
+1623.0707229070317
+12
+3365.0859375
+22
+3.359143800792108e-12
+32
+1640.2972854070317
+13
+3365.0859375
+23
+3.359143800792108e-12
+33
+1640.2972854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3559.189453125
+20
+3.3295044239017857e-12
+30
+1213.1488479070317
+11
+3365.0859375
+21
+3.359143800792108e-12
+31
+1640.2972854070317
+12
+3393.52734375
+22
+3.359091759087829e-12
+32
+1639.5472854070317
+13
+3393.52734375
+23
+3.359091759087829e-12
+33
+1639.5472854070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3393.52734375
+20
+3.359091759087829e-12
+30
+1639.5472854070317
+11
+3365.0859375
+21
+3.359143800792108e-12
+31
+1640.2972854070317
+12
+3380.818359375
+22
+3.3647090105434763e-12
+32
+1720.5004104070317
+13
+3380.818359375
+23
+3.3647090105434763e-12
+33
+1720.5004104070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3559.189453125
+20
+3.3295044239017857e-12
+30
+1213.1488479070317
+11
+3393.52734375
+21
+3.359091759087829e-12
+31
+1639.5472854070317
+12
+3511.482421875
+22
+3.35909013278457e-12
+32
+1639.5238479070317
+13
+3511.482421875
+23
+3.35909013278457e-12
+33
+1639.5238479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3559.189453125
+20
+3.3295044239017857e-12
+30
+1213.1488479070317
+11
+3511.482421875
+21
+3.35909013278457e-12
+31
+1639.5238479070317
+12
+3563.28515625
+22
+3.3578086058166923e-12
+32
+1621.0550979070317
+13
+3563.28515625
+23
+3.3578086058166923e-12
+33
+1621.0550979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3988.13671875
+20
+3.3379026539298584e-12
+30
+1334.1800979070317
+11
+3964.751953125
+21
+3.332888760983199e-12
+31
+1261.9222854070317
+12
+3959.28515625
+22
+3.3366406426010853e-12
+32
+1315.9925979070317
+13
+3959.28515625
+23
+3.3366406426010853e-12
+33
+1315.9925979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3964.751953125
+20
+3.332888760983199e-12
+30
+1261.9222854070317
+11
+3988.13671875
+21
+3.3379026539298584e-12
+31
+1334.1800979070317
+12
+3987.263671875
+22
+3.335300568715893e-12
+32
+1296.6800979070317
+13
+3987.263671875
+23
+3.335300568715893e-12
+33
+1296.6800979070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3987.263671875
+20
+3.335300568715893e-12
+30
+1296.6800979070317
+11
+3988.13671875
+21
+3.3379026539298584e-12
+31
+1334.1800979070317
+12
+4000.951171875
+22
+3.3363617315922134e-12
+32
+1311.9730666570317
+13
+4000.951171875
+23
+3.3363617315922134e-12
+33
+1311.9730666570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4224.263671875
+20
+3.3299418994783836e-12
+30
+1219.4535354070317
+11
+4200.662109375
+21
+3.3274878078609627e-12
+31
+1184.0863479070317
+12
+4043.443359375
+22
+3.3299418994783836e-12
+32
+1219.4535354070317
+13
+4043.443359375
+23
+3.3299418994783836e-12
+33
+1219.4535354070317
+70
+2
+ 0
+3DFACE
+ 8
+ship8
+10
+3671.96484375
+20
+3.3334758564596e-12
+30
+1270.3832229070317
+11
+4200.662109375
+21
+3.305945794895848e-12
+31
+873.6332229070317
+12
+3610.4765625
+22
+3.3295044239017857e-12
+32
+1213.1488479070317
+13
+3610.4765625
+23
+3.3295044239017857e-12
+33
+1213.1488479070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+3671.96484375
+21
+3.3334758564596e-12
+31
+1270.3832229070317
+12
+3727.7109375
+22
+3.3315690158887412e-12
+32
+1242.9027541570317
+13
+3727.7109375
+23
+3.3315690158887412e-12
+33
+1242.9027541570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3727.7109375
+20
+3.3315690158887412e-12
+30
+1242.9027541570317
+11
+3671.96484375
+21
+3.3334758564596e-12
+31
+1270.3832229070317
+12
+3672.439453125
+22
+3.3353688734527598e-12
+32
+1297.6644729070317
+13
+3672.439453125
+23
+3.3353688734527598e-12
+33
+1297.6644729070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3727.7109375
+20
+3.3315690158887412e-12
+30
+1242.9027541570317
+11
+3672.439453125
+21
+3.3353688734527598e-12
+31
+1297.6644729070317
+12
+3684.0234375
+22
+3.336894345909447e-12
+32
+1319.6488479070317
+13
+3684.0234375
+23
+3.336894345909447e-12
+33
+1319.6488479070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+3727.7109375
+21
+3.3315690158887412e-12
+31
+1242.9027541570317
+12
+3933.345703125
+22
+3.3301850318155635e-12
+32
+1222.9574416570317
+13
+3933.345703125
+23
+3.3301850318155635e-12
+33
+1222.9574416570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+3933.345703125
+21
+3.3301850318155635e-12
+31
+1222.9574416570317
+12
+3947.630859375
+22
+3.3335035036149985e-12
+32
+1270.7816604070317
+13
+3947.630859375
+23
+3.3335035036149985e-12
+33
+1270.7816604070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+3947.630859375
+21
+3.3335035036149985e-12
+31
+1270.7816604070317
+12
+3964.751953125
+22
+3.332888760983199e-12
+32
+1261.9222854070317
+13
+3964.751953125
+23
+3.332888760983199e-12
+33
+1261.9222854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+3964.751953125
+21
+3.332888760983199e-12
+31
+1261.9222854070317
+12
+3996.6796875
+22
+3.3339474844046313e-12
+32
+1277.1800979070317
+13
+3996.6796875
+23
+3.3339474844046313e-12
+33
+1277.1800979070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3996.6796875
+20
+3.3339474844046313e-12
+30
+1277.1800979070317
+11
+3964.751953125
+21
+3.332888760983199e-12
+31
+1261.9222854070317
+12
+3987.263671875
+22
+3.335300568715893e-12
+32
+1296.6800979070317
+13
+3987.263671875
+23
+3.335300568715893e-12
+33
+1296.6800979070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+3996.6796875
+21
+3.3339474844046313e-12
+31
+1277.1800979070317
+12
+4015.86328125
+22
+3.333942605494855e-12
+32
+1277.1097854070317
+13
+4015.86328125
+23
+3.333942605494855e-12
+33
+1277.1097854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+4015.86328125
+21
+3.333942605494855e-12
+31
+1277.1097854070317
+12
+4043.443359375
+22
+3.3299418994783836e-12
+32
+1219.4535354070317
+13
+4043.443359375
+23
+3.3299418994783836e-12
+33
+1219.4535354070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+4043.443359375
+20
+3.3299418994783836e-12
+30
+1219.4535354070317
+11
+4015.86328125
+21
+3.333942605494855e-12
+31
+1277.1097854070317
+12
+4034.396484375
+22
+3.332727756960585e-12
+32
+1259.6019729070317
+13
+4034.396484375
+23
+3.332727756960585e-12
+33
+1259.6019729070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+4043.443359375
+21
+3.3299418994783836e-12
+31
+1219.4535354070317
+12
+4200.662109375
+22
+3.3274878078609627e-12
+32
+1184.0863479070317
+13
+4200.662109375
+23
+3.3274878078609627e-12
+33
+1184.0863479070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+4731.378671360422
+21
+3.195832103794981e-12
+31
+-713.2723073657894
+12
+3889.388671875
+22
+3.200227951562218e-12
+32
+-649.9214645929683
+13
+3889.388671875
+23
+3.200227951562218e-12
+33
+-649.9214645929683
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4731.378671360422
+20
+3.195832103794981e-12
+30
+-713.2723073657894
+11
+4200.662109375
+21
+3.305945794895848e-12
+31
+873.6332229070317
+12
+5582.583984375
+22
+3.25433099522196e-12
+32
+129.78556665703172
+13
+5582.583984375
+23
+3.25433099522196e-12
+33
+129.78556665703172
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4731.378671360422
+20
+3.195832103794981e-12
+30
+-713.2723073657894
+11
+5582.583984375
+21
+3.25433099522196e-12
+31
+129.78556665703172
+12
+5583.738082531767
+22
+3.254319312204251e-12
+32
+129.61719662759015
+13
+5583.738082531767
+23
+3.254319312204251e-12
+33
+129.61719662759015
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4290.990234375
+20
+3.3096960502104755e-12
+30
+927.6800979070317
+11
+4282.564453125
+21
+3.3066898286367163e-12
+31
+884.3558791570317
+12
+4226.583984375
+22
+3.3100326949850323e-12
+32
+932.5316604070317
+13
+4226.583984375
+23
+3.3100326949850323e-12
+33
+932.5316604070317
+70
+2
+ 0
+3DFACE
+ 8
+ship8
+10
+4443.322265625
+20
+3.3064271806604317e-12
+30
+880.5707229070317
+11
+4372.212890625
+21
+3.303886894970298e-12
+31
+843.9613479070317
+12
+4361.408203125
+22
+3.3064271806604317e-12
+32
+880.5707229070317
+13
+4361.408203125
+23
+3.3064271806604317e-12
+33
+880.5707229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4487.279296875
+20
+3.306456454119089e-12
+30
+880.9925979070317
+11
+4487.115234375
+21
+3.303319315133002e-12
+31
+835.7816604070317
+12
+4464.580078125
+22
+3.306456454119089e-12
+32
+880.9925979070317
+13
+4464.580078125
+23
+3.306456454119089e-12
+33
+880.9925979070317
+70
+2
+ 0
+3DFACE
+ 8
+ship8
+10
+4895.759765625
+20
+3.297946009166164e-12
+30
+758.3441604070317
+11
+4764.076171875
+21
+3.2968035311269073e-12
+31
+741.8793166570317
+12
+4512.439453125
+22
+3.2974272184266296e-12
+32
+750.8675979070317
+13
+4512.439453125
+23
+3.2974272184266296e-12
+33
+750.8675979070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+4764.076171875
+20
+3.2968035311269073e-12
+30
+741.8793166570317
+11
+4895.759765625
+21
+3.297946009166164e-12
+31
+758.3441604070317
+12
+4875.884765625
+22
+3.2967994653687605e-12
+32
+741.8207229070317
+13
+4875.884765625
+23
+3.2967994653687605e-12
+33
+741.8207229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5163.052734375
+20
+3.29254180343741e-12
+30
+680.4613479070317
+11
+5147.361328125
+21
+3.2887199907793985e-12
+31
+625.3832229070317
+12
+5129.888671875
+22
+3.293611910981653e-12
+32
+695.8832229070317
+13
+5129.888671875
+23
+3.293611910981653e-12
+33
+695.8832229070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+5147.361328125
+20
+3.2887199907793985e-12
+30
+625.3832229070317
+11
+5163.052734375
+21
+3.29254180343741e-12
+31
+680.4613479070317
+12
+5189.208984375
+22
+3.2887395064185032e-12
+32
+625.6644729070317
+13
+5189.208984375
+23
+3.2887395064185032e-12
+33
+625.6644729070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+4200.662109375
+20
+3.305945794895848e-12
+30
+873.6332229070317
+11
+4349.455078125
+21
+3.302885905314551e-12
+31
+829.5355666570317
+12
+5582.583984375
+22
+3.25433099522196e-12
+32
+129.78556665703172
+13
+5582.583984375
+23
+3.25433099522196e-12
+33
+129.78556665703172
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+4349.455078125
+20
+3.302885905314551e-12
+30
+829.5355666570317
+11
+4200.662109375
+21
+3.305945794895848e-12
+31
+873.6332229070317
+12
+4282.564453125
+22
+3.3066898286367163e-12
+32
+884.3558791570317
+13
+4282.564453125
+23
+3.3066898286367163e-12
+33
+884.3558791570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+4282.564453125
+20
+3.3066898286367163e-12
+30
+884.3558791570317
+11
+4200.662109375
+21
+3.305945794895848e-12
+31
+873.6332229070317
+12
+4226.583984375
+22
+3.3100326949850323e-12
+32
+932.5316604070317
+13
+4226.583984375
+23
+3.3100326949850323e-12
+33
+932.5316604070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4349.455078125
+20
+3.302885905314551e-12
+30
+829.5355666570317
+11
+4282.564453125
+21
+3.3066898286367163e-12
+31
+884.3558791570317
+12
+4323.591796875
+22
+3.3065296377657316e-12
+32
+882.0472854070317
+13
+4323.591796875
+23
+3.3065296377657316e-12
+33
+882.0472854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4349.455078125
+20
+3.302885905314551e-12
+30
+829.5355666570317
+11
+4323.591796875
+21
+3.3065296377657316e-12
+31
+882.0472854070317
+12
+4347.345703125
+22
+3.303947068190871e-12
+32
+844.8285354070317
+13
+4347.345703125
+23
+3.303947068190871e-12
+33
+844.8285354070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+4347.345703125
+20
+3.303947068190871e-12
+30
+844.8285354070317
+11
+4323.591796875
+21
+3.3065296377657316e-12
+31
+882.0472854070317
+12
+4347.240234375
+22
+3.3048033168565916e-12
+32
+857.1683791570317
+13
+4347.240234375
+23
+3.3048033168565916e-12
+33
+857.1683791570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+4349.455078125
+21
+3.302885905314551e-12
+31
+829.5355666570317
+12
+4512.439453125
+22
+3.2974272184266296e-12
+32
+750.8675979070317
+13
+4512.439453125
+23
+3.2974272184266296e-12
+33
+750.8675979070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+4512.439453125
+20
+3.2974272184266296e-12
+30
+750.8675979070317
+11
+4349.455078125
+21
+3.302885905314551e-12
+31
+829.5355666570317
+12
+4372.212890625
+22
+3.303886894970298e-12
+32
+843.9613479070317
+13
+4372.212890625
+23
+3.303886894970298e-12
+33
+843.9613479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4512.439453125
+20
+3.2974272184266296e-12
+30
+750.8675979070317
+11
+4372.212890625
+21
+3.303886894970298e-12
+31
+843.9613479070317
+12
+4459.107421875
+22
+3.3040056151081854e-12
+32
+845.6722854070317
+13
+4459.107421875
+23
+3.3040056151081854e-12
+33
+845.6722854070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+4459.107421875
+20
+3.3040056151081854e-12
+30
+845.6722854070317
+11
+4372.212890625
+21
+3.303886894970298e-12
+31
+843.9613479070317
+12
+4443.322265625
+22
+3.3064271806604317e-12
+32
+880.5707229070317
+13
+4443.322265625
+23
+3.3064271806604317e-12
+33
+880.5707229070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+4512.439453125
+20
+3.2974272184266296e-12
+30
+750.8675979070317
+11
+4459.107421875
+21
+3.3040056151081854e-12
+31
+845.6722854070317
+12
+4464.580078125
+22
+3.306456454119089e-12
+32
+880.9925979070317
+13
+4464.580078125
+23
+3.306456454119089e-12
+33
+880.9925979070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+4512.439453125
+20
+3.2974272184266296e-12
+30
+750.8675979070317
+11
+4464.580078125
+21
+3.306456454119089e-12
+31
+880.9925979070317
+12
+4487.115234375
+22
+3.303319315133002e-12
+32
+835.7816604070317
+13
+4487.115234375
+23
+3.303319315133002e-12
+33
+835.7816604070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+4512.439453125
+21
+3.2974272184266296e-12
+31
+750.8675979070317
+12
+4774.822265625
+22
+3.2956903265463078e-12
+32
+725.8363479070317
+13
+4774.822265625
+23
+3.2956903265463078e-12
+33
+725.8363479070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+4774.822265625
+20
+3.2956903265463078e-12
+30
+725.8363479070317
+11
+4512.439453125
+21
+3.2974272184266296e-12
+31
+750.8675979070317
+12
+4764.076171875
+22
+3.2968035311269073e-12
+32
+741.8793166570317
+13
+4764.076171875
+23
+3.2968035311269073e-12
+33
+741.8793166570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+4774.822265625
+21
+3.2956903265463078e-12
+31
+725.8363479070317
+12
+4858.681640625
+22
+3.294569803601044e-12
+32
+709.6879104070317
+13
+4858.681640625
+23
+3.294569803601044e-12
+33
+709.6879104070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+4858.681640625
+21
+3.294569803601044e-12
+31
+709.6879104070317
+12
+4926.181640625
+22
+3.2927800568648136e-12
+32
+683.8949416570317
+13
+4926.181640625
+23
+3.2927800568648136e-12
+33
+683.8949416570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+4926.181640625
+21
+3.2927800568648136e-12
+31
+683.8949416570317
+12
+4944.357421875
+22
+3.294678765919379e-12
+32
+711.2582229070317
+13
+4944.357421875
+23
+3.294678765919379e-12
+33
+711.2582229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+4944.357421875
+21
+3.294678765919379e-12
+31
+711.2582229070317
+12
+4958.232421875
+22
+3.2941046808690477e-12
+32
+702.9847854070317
+13
+4958.232421875
+23
+3.2941046808690477e-12
+33
+702.9847854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+4958.232421875
+21
+3.2941046808690477e-12
+31
+702.9847854070317
+12
+5013.029296875
+22
+3.2945177618967647e-12
+32
+708.9379104070317
+13
+5013.029296875
+23
+3.2945177618967647e-12
+33
+708.9379104070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5013.029296875
+21
+3.2945177618967647e-12
+31
+708.9379104070317
+12
+5147.361328125
+22
+3.28617319987623e-12
+32
+588.6800979070317
+13
+5147.361328125
+23
+3.28617319987623e-12
+33
+588.6800979070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+5147.361328125
+20
+3.28617319987623e-12
+30
+588.6800979070317
+11
+5013.029296875
+21
+3.2945177618967647e-12
+31
+708.9379104070317
+12
+5082.439453125
+22
+3.2944299415207934e-12
+32
+707.6722854070317
+13
+5082.439453125
+23
+3.2944299415207934e-12
+33
+707.6722854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5147.361328125
+20
+3.28617319987623e-12
+30
+588.6800979070317
+11
+5082.439453125
+21
+3.2944299415207934e-12
+31
+707.6722854070317
+12
+5129.888671875
+22
+3.293611910981653e-12
+32
+695.8832229070317
+13
+5129.888671875
+23
+3.293611910981653e-12
+33
+695.8832229070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5147.361328125
+20
+3.28617319987623e-12
+30
+588.6800979070317
+11
+5129.888671875
+21
+3.293611910981653e-12
+31
+695.8832229070317
+12
+5147.361328125
+22
+3.2887199907793985e-12
+32
+625.3832229070317
+13
+5147.361328125
+23
+3.2887199907793985e-12
+33
+625.3832229070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5147.361328125
+21
+3.28617319987623e-12
+31
+588.6800979070317
+12
+5275.470703125
+22
+3.2854348581967674e-12
+32
+578.0394729070317
+13
+5275.470703125
+23
+3.2854348581967674e-12
+33
+578.0394729070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5275.470703125
+21
+3.2854348581967674e-12
+31
+578.0394729070317
+12
+5379.873046875
+22
+3.283618277456768e-12
+32
+551.8597854070317
+13
+5379.873046875
+23
+3.283618277456768e-12
+33
+551.8597854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5379.873046875
+21
+3.283618277456768e-12
+31
+551.8597854070317
+12
+5500.716796875
+22
+3.276941489428059e-12
+32
+455.6371291570317
+13
+5500.716796875
+23
+3.276941489428059e-12
+33
+455.6371291570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5500.716796875
+21
+3.276941489428059e-12
+31
+455.6371291570317
+12
+5525.771484375
+22
+3.271068095209162e-12
+32
+370.9925979070317
+13
+5525.771484375
+23
+3.271068095209162e-12
+33
+370.9925979070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+5525.771484375
+20
+3.271068095209162e-12
+30
+370.9925979070317
+11
+5500.716796875
+21
+3.276941489428059e-12
+31
+455.6371291570317
+12
+5515.552734375
+22
+3.274822416281936e-12
+32
+425.0980666570317
+13
+5515.552734375
+23
+3.274822416281936e-12
+33
+425.0980666570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5525.771484375
+21
+3.271068095209162e-12
+31
+370.9925979070317
+12
+5553.474609375
+22
+3.267613827087623e-12
+32
+321.2113479070317
+13
+5553.474609375
+23
+3.267613827087623e-12
+33
+321.2113479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5553.474609375
+21
+3.267613827087623e-12
+31
+321.2113479070317
+12
+5573.373046875
+22
+3.266233095620963e-12
+32
+301.3129104070317
+13
+5573.373046875
+23
+3.266233095620963e-12
+33
+301.3129104070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5582.583984375
+20
+3.25433099522196e-12
+30
+129.78556665703172
+11
+5573.373046875
+21
+3.266233095620963e-12
+31
+301.3129104070317
+12
+5582.220703125
+22
+3.262778827499424e-12
+32
+251.53166040703172
+13
+5582.220703125
+23
+3.262778827499424e-12
+33
+251.53166040703172
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5594.443359375
+20
+3.255053887020465e-12
+30
+140.20353540703172
+11
+5583.738082531767
+21
+3.254319312204251e-12
+31
+129.61719662759015
+12
+5582.583984375
+22
+3.25433099522196e-12
+32
+129.78556665703172
+13
+5582.583984375
+23
+3.25433099522196e-12
+33
+129.78556665703172
+70
+0
+ 0
+3DFACE
+ 8
+ship8
+10
+8068.318359375
+20
+3.2232637240704742e-12
+30
+-317.9409958429683
+11
+8053.482421875
+21
+3.21912559542864e-12
+31
+-377.5777145929683
+12
+7947.744140625
+22
+3.27550790310549e-12
+32
+434.9769729070317
+13
+7947.744140625
+23
+3.27550790310549e-12
+33
+434.9769729070317
+70
+2
+ 0
+3DFACE
+ 8
+ship8
+10
+7947.744140625
+20
+3.27550790310549e-12
+30
+434.9769729070317
+11
+7343.279296875
+21
+3.1854285919077907e-12
+31
+-863.2027145929683
+12
+6954.603515625
+22
+3.1842251274963318e-12
+32
+-880.5464645929683
+13
+6954.603515625
+23
+3.1842251274963318e-12
+33
+-880.5464645929683
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+7343.279296875
+20
+3.1854285919077907e-12
+30
+-863.2027145929683
+11
+7947.744140625
+21
+3.27550790310549e-12
+31
+434.9769729070317
+12
+8069.126953125
+22
+3.183231456205249e-12
+32
+-894.8667770929683
+13
+8069.126953125
+23
+3.183231456205249e-12
+33
+-894.8667770929683
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+8069.126953125
+20
+3.183231456205249e-12
+30
+-894.8667770929683
+11
+7947.744140625
+21
+3.27550790310549e-12
+31
+434.9769729070317
+12
+8053.482421875
+22
+3.21912559542864e-12
+32
+-377.5777145929683
+13
+8053.482421875
+23
+3.21912559542864e-12
+33
+-377.5777145929683
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+5763.251953125
+20
+3.252282666267592e-12
+30
+100.26603540703172
+11
+6954.603515625
+21
+3.1842251274963318e-12
+31
+-880.5464645929683
+12
+5714.560546875
+22
+3.252994987094915e-12
+32
+110.53166040703172
+13
+5714.560546875
+23
+3.252994987094915e-12
+33
+110.53166040703172
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+6954.603515625
+20
+3.1842251274963318e-12
+30
+-880.5464645929683
+11
+5763.251953125
+21
+3.252282666267592e-12
+31
+100.26603540703172
+12
+7065.685546875
+22
+3.2644840064662006e-12
+32
+276.1058791570317
+13
+7065.685546875
+23
+3.2644840064662006e-12
+33
+276.1058791570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+6954.603515625
+20
+3.1842251274963318e-12
+30
+-880.5464645929683
+11
+7065.685546875
+21
+3.2644840064662006e-12
+31
+276.1058791570317
+12
+7947.744140625
+22
+3.27550790310549e-12
+32
+434.9769729070317
+13
+7947.744140625
+23
+3.27550790310549e-12
+33
+434.9769729070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+7947.744140625
+20
+3.27550790310549e-12
+30
+434.9769729070317
+11
+7065.685546875
+21
+3.2644840064662006e-12
+31
+276.1058791570317
+12
+7523.666015625
+22
+3.270494010158831e-12
+32
+362.7191604070317
+13
+7523.666015625
+23
+3.270494010158831e-12
+33
+362.7191604070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+7947.744140625
+20
+3.27550790310549e-12
+30
+434.9769729070317
+11
+7523.666015625
+21
+3.270494010158831e-12
+31
+362.7191604070317
+12
+7548.521484375
+22
+3.271193320560084e-12
+32
+372.7972854070317
+13
+7548.521484375
+23
+3.271193320560084e-12
+33
+372.7972854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+7947.744140625
+20
+3.27550790310549e-12
+30
+434.9769729070317
+11
+7548.521484375
+21
+3.271193320560084e-12
+31
+372.7972854070317
+12
+7616.994140625
+22
+3.2722211442196003e-12
+32
+387.6097854070317
+13
+7616.994140625
+23
+3.2722211442196003e-12
+33
+387.6097854070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+7616.994140625
+20
+3.2722211442196003e-12
+30
+387.6097854070317
+11
+7548.521484375
+21
+3.271193320560084e-12
+31
+372.7972854070317
+12
+7591.611328125
+22
+3.2727773399340854e-12
+32
+395.6254104070317
+13
+7591.611328125
+23
+3.2727773399340854e-12
+33
+395.6254104070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+7958.712890625
+20
+3.2851470025199725e-12
+30
+573.8910354070317
+11
+7947.744140625
+21
+3.27550790310549e-12
+31
+434.9769729070317
+12
+7930.212890625
+22
+3.2809446348994187e-12
+32
+513.3285354070317
+13
+7930.212890625
+23
+3.2809446348994187e-12
+33
+513.3285354070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+7947.744140625
+20
+3.27550790310549e-12
+30
+434.9769729070317
+11
+7958.712890625
+21
+3.2851470025199725e-12
+31
+573.8910354070317
+12
+7952.830078125
+22
+3.2797314126684074e-12
+32
+495.8441604070317
+13
+7952.830078125
+23
+3.2797314126684074e-12
+33
+495.8441604070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+7952.830078125
+20
+3.2797314126684074e-12
+30
+495.8441604070317
+11
+7958.712890625
+21
+3.2851470025199725e-12
+31
+573.8910354070317
+12
+7958.642578125
+22
+3.2819464377067953e-12
+32
+527.7660354070317
+13
+7958.642578125
+23
+3.2819464377067953e-12
+33
+527.7660354070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+7958.642578125
+20
+3.2819464377067953e-12
+30
+527.7660354070317
+11
+7958.712890625
+21
+3.2851470025199725e-12
+31
+573.8910354070317
+12
+7970.396484375
+22
+3.2832580512849596e-12
+32
+546.6683791570317
+13
+7970.396484375
+23
+3.2832580512849596e-12
+33
+546.6683791570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+7985.525390625
+20
+3.2797314126684074e-12
+30
+495.8441604070317
+11
+7960.892578125
+21
+3.277198445342938e-12
+31
+459.3402541570317
+12
+7952.830078125
+22
+3.2797314126684074e-12
+32
+495.8441604070317
+13
+7952.830078125
+23
+3.2797314126684074e-12
+33
+495.8441604070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+7960.892578125
+20
+3.277198445342938e-12
+30
+459.3402541570317
+11
+7985.525390625
+21
+3.2797314126684074e-12
+31
+495.8441604070317
+12
+7985.525390625
+22
+3.2774919930811386e-12
+32
+463.5707229070317
+13
+7985.525390625
+23
+3.2774919930811386e-12
+33
+463.5707229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+7947.744140625
+20
+3.27550790310549e-12
+30
+434.9769729070317
+11
+7960.892578125
+21
+3.277198445342938e-12
+31
+459.3402541570317
+12
+8007.251953125
+22
+3.2762299817523655e-12
+32
+445.3832229070317
+13
+8007.251953125
+23
+3.2762299817523655e-12
+33
+445.3832229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+7960.892578125
+20
+3.277198445342938e-12
+30
+459.3402541570317
+11
+7947.744140625
+21
+3.27550790310549e-12
+31
+434.9769729070317
+12
+7952.830078125
+22
+3.2797314126684074e-12
+32
+495.8441604070317
+13
+7952.830078125
+23
+3.2797314126684074e-12
+33
+495.8441604070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+8169.146484375
+20
+3.303080248553969e-12
+30
+832.3363479070317
+11
+8161.611328125
+21
+3.2976597797926277e-12
+31
+754.2191604070317
+12
+8160.251953125
+22
+3.299310477600237e-12
+32
+778.0082229070317
+13
+8160.251953125
+23
+3.299310477600237e-12
+33
+778.0082229070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+8161.611328125
+20
+3.2976597797926277e-12
+30
+754.2191604070317
+11
+8169.146484375
+21
+3.303080248553969e-12
+31
+832.3363479070317
+12
+8168.291015625
+22
+3.295261795637633e-12
+32
+719.6605666570317
+13
+8168.291015625
+23
+3.295261795637633e-12
+33
+719.6605666570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+8168.291015625
+20
+3.295261795637633e-12
+30
+719.6605666570317
+11
+8169.146484375
+21
+3.303080248553969e-12
+31
+832.3363479070317
+12
+8169.275390625
+22
+3.278165282630252e-12
+32
+473.2738479070317
+13
+8169.275390625
+23
+3.278165282630252e-12
+33
+473.2738479070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+8169.275390625
+20
+3.278165282630252e-12
+30
+473.2738479070317
+11
+8169.146484375
+21
+3.303080248553969e-12
+31
+832.3363479070317
+12
+8173.166015625
+22
+3.30703053916942e-12
+32
+889.2660354070317
+13
+8173.166015625
+23
+3.30703053916942e-12
+33
+889.2660354070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+8169.275390625
+20
+3.278165282630252e-12
+30
+473.2738479070317
+11
+8173.166015625
+21
+3.30703053916942e-12
+31
+889.2660354070317
+12
+8200.822265625
+22
+3.2780546940086586e-12
+32
+471.6800979070317
+13
+8200.822265625
+23
+3.2780546940086586e-12
+33
+471.6800979070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+8200.822265625
+20
+3.2780546940086586e-12
+30
+471.6800979070317
+11
+8173.166015625
+21
+3.30703053916942e-12
+31
+889.2660354070317
+12
+8184.755859375
+22
+3.303290041674345e-12
+32
+835.3597854070317
+13
+8184.755859375
+23
+3.303290041674345e-12
+33
+835.3597854070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+8007.251953125
+20
+3.2762299817523655e-12
+30
+445.3832229070317
+11
+8068.318359375
+21
+3.2232637240704742e-12
+31
+-317.9409958429683
+12
+7947.744140625
+22
+3.27550790310549e-12
+32
+434.9769729070317
+13
+7947.744140625
+23
+3.27550790310549e-12
+33
+434.9769729070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+8068.318359375
+20
+3.2232637240704742e-12
+30
+-317.9409958429683
+11
+8007.251953125
+21
+3.2762299817523655e-12
+31
+445.3832229070317
+12
+8169.275390625
+22
+3.278165282630252e-12
+32
+473.2738479070317
+13
+8169.275390625
+23
+3.278165282630252e-12
+33
+473.2738479070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+8068.318359375
+20
+3.2232637240704742e-12
+30
+-317.9409958429683
+11
+8169.275390625
+21
+3.278165282630252e-12
+31
+473.2738479070317
+12
+8301.111328125
+22
+3.2622860576120294e-12
+32
+244.43009790703172
+13
+8301.111328125
+23
+3.2622860576120294e-12
+33
+244.43009790703172
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+8301.111328125
+20
+3.2622860576120294e-12
+30
+244.43009790703172
+11
+8169.275390625
+21
+3.278165282630252e-12
+31
+473.2738479070317
+12
+8200.822265625
+22
+3.2780546940086586e-12
+32
+471.6800979070317
+13
+8200.822265625
+23
+3.2780546940086586e-12
+33
+471.6800979070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+8301.111328125
+20
+3.2622860576120294e-12
+30
+244.43009790703172
+11
+8200.822265625
+21
+3.2780546940086586e-12
+31
+471.6800979070317
+12
+8411.736328125
+22
+3.2807950149996157e-12
+32
+511.1722854070317
+13
+8411.736328125
+23
+3.2807950149996157e-12
+33
+511.1722854070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+8301.111328125
+20
+3.2622860576120294e-12
+30
+244.43009790703172
+11
+8411.736328125
+21
+3.2807950149996157e-12
+31
+511.1722854070317
+12
+8436.076171875
+22
+3.27954926670343e-12
+32
+493.2191604070317
+13
+8436.076171875
+23
+3.27954926670343e-12
+33
+493.2191604070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+8436.076171875
+20
+3.27954926670343e-12
+30
+493.2191604070317
+11
+8411.736328125
+21
+3.2807950149996157e-12
+31
+511.1722854070317
+12
+8430.767578125
+22
+3.280552695814065e-12
+32
+507.6800979070317
+13
+8430.767578125
+23
+3.280552695814065e-12
+33
+507.6800979070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5583.738082531767
+20
+3.254319312204251e-12
+30
+129.61719662759015
+11
+6954.603515625
+21
+3.1842251274963318e-12
+31
+-880.5464645929683
+12
+4731.378671360422
+22
+3.195832103794981e-12
+32
+-713.2723073657894
+13
+4731.378671360422
+23
+3.195832103794981e-12
+33
+-713.2723073657894
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+6954.603515625
+20
+3.1842251274963318e-12
+30
+-880.5464645929683
+11
+5583.738082531767
+21
+3.254319312204251e-12
+31
+129.61719662759015
+12
+5714.560546875
+22
+3.252994987094915e-12
+32
+110.53166040703172
+13
+5714.560546875
+23
+3.252994987094915e-12
+33
+110.53166040703172
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5594.443359375
+20
+3.255053887020465e-12
+30
+140.20353540703172
+11
+5714.560546875
+21
+3.252994987094915e-12
+31
+110.53166040703172
+12
+5583.738082531767
+22
+3.254319312204251e-12
+32
+129.61719662759015
+13
+5583.738082531767
+23
+3.254319312204251e-12
+33
+129.61719662759015
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5714.560546875
+20
+3.252994987094915e-12
+30
+110.53166040703172
+11
+5594.443359375
+21
+3.255053887020465e-12
+31
+140.20353540703172
+12
+5608.810546875
+22
+3.257803152679345e-12
+32
+179.82462915703172
+13
+5608.810546875
+23
+3.257803152679345e-12
+33
+179.82462915703172
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5714.560546875
+20
+3.252994987094915e-12
+30
+110.53166040703172
+11
+5608.810546875
+21
+3.257803152679345e-12
+31
+179.82462915703172
+12
+5632.119140625
+22
+3.2602548048418778e-12
+32
+215.15666040703172
+13
+5632.119140625
+23
+3.2602548048418778e-12
+33
+215.15666040703172
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5714.560546875
+20
+3.252994987094915e-12
+30
+110.53166040703172
+11
+5632.119140625
+21
+3.2602548048418778e-12
+31
+215.15666040703172
+12
+5668.482421875
+22
+3.257312009095209e-12
+32
+172.74650415703172
+13
+5668.482421875
+23
+3.257312009095209e-12
+33
+172.74650415703172
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+5668.482421875
+20
+3.257312009095209e-12
+30
+172.74650415703172
+11
+5632.119140625
+21
+3.2602548048418778e-12
+31
+215.15666040703172
+12
+5639.068359375
+22
+3.260780100794447e-12
+32
+222.72697290703172
+13
+5639.068359375
+23
+3.260780100794447e-12
+33
+222.72697290703172
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+5668.482421875
+20
+3.257312009095209e-12
+30
+172.74650415703172
+11
+5639.068359375
+21
+3.260780100794447e-12
+31
+222.72697290703172
+12
+5653.060546875
+22
+3.26080205588844e-12
+32
+223.04337915703172
+13
+5653.060546875
+23
+3.26080205588844e-12
+33
+223.04337915703172
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+5714.560546875
+20
+3.252994987094915e-12
+30
+110.53166040703172
+11
+5668.482421875
+21
+3.257312009095209e-12
+31
+172.74650415703172
+12
+5702.455078125
+22
+3.2579178070590853e-12
+32
+181.47697290703172
+13
+5702.455078125
+23
+3.2579178070590853e-12
+33
+181.47697290703172
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2962.06640625
+20
+3.570698207597256e-12
+30
+4689.117597907032
+11
+2956.388671875
+21
+3.5618929951786865e-12
+31
+4562.221113532032
+12
+2946.251953125
+22
+3.569694371910806e-12
+32
+4674.650801032032
+13
+2946.251953125
+23
+3.569694371910806e-12
+33
+4674.650801032032
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2970.5390625
+20
+3.492995877350108e-12
+30
+3569.3090041570317
+11
+2961.345703125
+21
+3.4891549556288065e-12
+31
+3513.9554885320317
+12
+2940.029296875
+22
+3.4900526750276245e-12
+32
+3526.8929885320317
+13
+2940.029296875
+23
+3.4900526750276245e-12
+33
+3526.8929885320317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2961.345703125
+20
+3.4891549556288065e-12
+30
+3513.9554885320317
+11
+2970.5390625
+21
+3.492995877350108e-12
+31
+3569.3090041570317
+12
+2966.33203125
+22
+3.4837775839038215e-12
+32
+3436.4593947820317
+13
+2966.33203125
+23
+3.4837775839038215e-12
+33
+3436.4593947820317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2793.4453125
+20
+3.5632151797280326e-12
+30
+4581.275801032032
+11
+2809.505859375
+21
+3.562200366494586e-12
+31
+4566.650801032032
+12
+2742.462890625
+22
+3.563529056256967e-12
+32
+4585.799238532032
+13
+2742.462890625
+23
+3.563529056256967e-12
+33
+4585.799238532032
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2809.505859375
+20
+3.562200366494586e-12
+30
+4566.650801032032
+11
+2793.4453125
+21
+3.5632151797280326e-12
+31
+4581.275801032032
+12
+2800.95703125
+22
+3.5631037779548097e-12
+32
+4579.670332282032
+13
+2800.95703125
+23
+3.5631037779548097e-12
+33
+4579.670332282032
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2809.505859375
+20
+3.562200366494586e-12
+30
+4566.650801032032
+11
+2800.95703125
+21
+3.5631037779548097e-12
+31
+4579.670332282032
+12
+2956.388671875
+22
+3.5618929951786865e-12
+32
+4562.221113532032
+13
+2956.388671875
+23
+3.5618929951786865e-12
+33
+4562.221113532032
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2809.505859375
+20
+3.562200366494586e-12
+30
+4566.650801032032
+11
+2956.388671875
+21
+3.5618929951786865e-12
+31
+4562.221113532032
+12
+2955.46875
+22
+3.5606765203411578e-12
+32
+4544.689863532032
+13
+2955.46875
+23
+3.5606765203411578e-12
+33
+4544.689863532032
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2955.46875
+20
+3.5606765203411578e-12
+30
+4544.689863532032
+11
+2956.388671875
+21
+3.5618929951786865e-12
+31
+4562.221113532032
+12
+2955.826171875
+22
+3.5246848029222427e-12
+32
+4025.9945510320317
+13
+2955.826171875
+23
+3.5246848029222427e-12
+33
+4025.9945510320317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2955.826171875
+20
+3.5246848029222427e-12
+30
+4025.9945510320317
+11
+2956.388671875
+21
+3.5618929951786865e-12
+31
+4562.221113532032
+12
+2963.859375
+22
+3.52110774890467e-12
+32
+3974.4437697820317
+13
+2963.859375
+23
+3.52110774890467e-12
+33
+3974.4437697820317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2963.859375
+20
+3.52110774890467e-12
+30
+3974.4437697820317
+11
+2956.388671875
+21
+3.5618929951786865e-12
+31
+4562.221113532032
+12
+2962.06640625
+22
+3.570698207597256e-12
+32
+4689.117597907032
+13
+2962.06640625
+23
+3.570698207597256e-12
+33
+4689.117597907032
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2963.859375
+20
+3.52110774890467e-12
+30
+3974.4437697820317
+11
+2962.06640625
+21
+3.570698207597256e-12
+31
+4689.117597907032
+12
+2971.236328125
+22
+3.561540493947357e-12
+32
+4557.141035407032
+13
+2971.236328125
+23
+3.561540493947357e-12
+33
+4557.141035407032
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.236328125
+20
+3.561540493947357e-12
+30
+4557.141035407032
+11
+2962.06640625
+21
+3.570698207597256e-12
+31
+4689.117597907032
+12
+2980.51171875
+22
+3.569704536306173e-12
+32
+4674.797285407032
+13
+2980.51171875
+23
+3.569704536306173e-12
+33
+4674.797285407032
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2963.859375
+20
+3.52110774890467e-12
+30
+3974.4437697820317
+11
+2971.236328125
+21
+3.561540493947357e-12
+31
+4557.141035407032
+12
+2963.876953125
+22
+3.517005398934528e-12
+32
+3915.3226760320317
+13
+2963.876953125
+23
+3.517005398934528e-12
+33
+3915.3226760320317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2963.876953125
+20
+3.517005398934528e-12
+30
+3915.3226760320317
+11
+2971.236328125
+21
+3.561540493947357e-12
+31
+4557.141035407032
+12
+2964.005859375
+22
+3.4960537340523318e-12
+32
+3613.3773635320317
+13
+2964.005859375
+23
+3.4960537340523318e-12
+33
+3613.3773635320317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2964.005859375
+20
+3.4960537340523318e-12
+30
+3613.3773635320317
+11
+2971.236328125
+21
+3.561540493947357e-12
+31
+4557.141035407032
+12
+2970.5390625
+22
+3.492995877350108e-12
+32
+3569.3090041570317
+13
+2970.5390625
+23
+3.492995877350108e-12
+33
+3569.3090041570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2951.396484375
+20
+3.475101662594321e-12
+30
+3311.4261916570317
+11
+2961.708984375
+21
+3.474372672158596e-12
+31
+3300.9203322820317
+12
+2948.58984375
+22
+3.4747056577508206e-12
+32
+3305.7191604070317
+13
+2948.58984375
+23
+3.4747056577508206e-12
+33
+3305.7191604070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2961.708984375
+20
+3.474372672158596e-12
+30
+3300.9203322820317
+11
+2951.396484375
+21
+3.475101662594321e-12
+31
+3311.4261916570317
+12
+2966.33203125
+22
+3.4837775839038215e-12
+32
+3436.4593947820317
+13
+2966.33203125
+23
+3.4837775839038215e-12
+33
+3436.4593947820317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2961.708984375
+20
+3.474372672158596e-12
+30
+3300.9203322820317
+11
+2966.33203125
+21
+3.4837775839038215e-12
+31
+3436.4593947820317
+12
+2971.62890625
+22
+3.451410489872797e-12
+32
+2970.0004104070317
+13
+2971.62890625
+23
+3.451410489872797e-12
+33
+2970.0004104070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.62890625
+20
+3.451410489872797e-12
+30
+2970.0004104070317
+11
+2966.33203125
+21
+3.4837775839038215e-12
+31
+3436.4593947820317
+12
+2970.5390625
+22
+3.492995877350108e-12
+32
+3569.3090041570317
+13
+2970.5390625
+23
+3.492995877350108e-12
+33
+3569.3090041570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.62890625
+20
+3.451410489872797e-12
+30
+2970.0004104070317
+11
+2970.5390625
+21
+3.492995877350108e-12
+31
+3569.3090041570317
+12
+2971.236328125
+22
+3.561540493947357e-12
+32
+4557.141035407032
+13
+2971.236328125
+23
+3.561540493947357e-12
+33
+4557.141035407032
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.62890625
+20
+3.451410489872797e-12
+30
+2970.0004104070317
+11
+2971.236328125
+21
+3.561540493947357e-12
+31
+4557.141035407032
+12
+2971.91015625
+22
+3.550582869165861e-12
+32
+4399.225019782032
+13
+2971.91015625
+23
+3.550582869165861e-12
+33
+4399.225019782032
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.91015625
+20
+3.550582869165861e-12
+30
+4399.225019782032
+11
+2971.236328125
+21
+3.561540493947357e-12
+31
+4557.141035407032
+12
+2980.177734375
+22
+3.5601845636053925e-12
+32
+4537.600019782032
+13
+2980.177734375
+23
+3.5601845636053925e-12
+33
+4537.600019782032
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.177734375
+20
+3.5601845636053925e-12
+30
+4537.600019782032
+11
+2971.236328125
+21
+3.561540493947357e-12
+31
+4557.141035407032
+12
+3258.85546875
+22
+3.5577434824140414e-12
+32
+4502.420332282032
+13
+3258.85546875
+23
+3.5577434824140414e-12
+33
+4502.420332282032
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.177734375
+20
+3.5601845636053925e-12
+30
+4537.600019782032
+11
+3258.85546875
+21
+3.5577434824140414e-12
+31
+4502.420332282032
+12
+3247.8046875
+22
+3.5568380380747444e-12
+32
+4489.371504157032
+13
+3247.8046875
+23
+3.5568380380747444e-12
+33
+4489.371504157032
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2963.390625
+20
+3.44622136275001e-12
+30
+2895.2172072820317
+11
+2971.9453125
+21
+3.4448947058667023e-12
+31
+2876.0980666570317
+12
+2954.26171875
+22
+3.4440327651395763e-12
+32
+2863.6761916570317
+13
+2954.26171875
+23
+3.4440327651395763e-12
+33
+2863.6761916570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.9453125
+20
+3.4448947058667023e-12
+30
+2876.0980666570317
+11
+2963.390625
+21
+3.44622136275001e-12
+31
+2895.2172072820317
+12
+2964.615234375
+22
+3.4484510245177263e-12
+32
+2927.3500197820317
+13
+2964.615234375
+23
+3.4484510245177263e-12
+33
+2927.3500197820317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.9453125
+20
+3.4448947058667023e-12
+30
+2876.0980666570317
+11
+2964.615234375
+21
+3.4484510245177263e-12
+31
+2927.3500197820317
+12
+2971.62890625
+22
+3.451410489872797e-12
+32
+2970.0004104070317
+13
+2971.62890625
+23
+3.451410489872797e-12
+33
+2970.0004104070317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.9453125
+20
+3.4448947058667023e-12
+30
+2876.0980666570317
+11
+2971.62890625
+21
+3.451410489872797e-12
+31
+2970.0004104070317
+12
+2971.91015625
+22
+3.550582869165861e-12
+32
+4399.225019782032
+13
+2971.91015625
+23
+3.550582869165861e-12
+33
+4399.225019782032
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2971.9453125
+20
+3.4448947058667023e-12
+30
+2876.0980666570317
+11
+2971.91015625
+21
+3.550582869165861e-12
+31
+4399.225019782032
+12
+2979.87890625
+22
+3.546532967475813e-12
+32
+4340.859785407032
+13
+2979.87890625
+23
+3.546532967475813e-12
+33
+4340.859785407032
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.951171875
+20
+3.542544052157967e-12
+30
+4283.373457282032
+11
+2980.177734375
+21
+3.539280874669329e-12
+31
+4236.346113532032
+12
+2979.87890625
+22
+3.546532967475813e-12
+32
+4340.859785407032
+13
+2979.87890625
+23
+3.546532967475813e-12
+33
+4340.859785407032
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.177734375
+20
+3.539280874669329e-12
+30
+4236.346113532032
+11
+2980.951171875
+21
+3.542544052157967e-12
+31
+4283.373457282032
+12
+3000.462890625
+22
+3.537403307557127e-12
+32
+4209.287519782032
+13
+3000.462890625
+23
+3.537403307557127e-12
+33
+4209.287519782032
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3000.462890625
+20
+3.537403307557127e-12
+30
+4209.287519782032
+11
+2980.951171875
+21
+3.542544052157967e-12
+31
+4283.373457282032
+12
+3000.333984375
+22
+3.539114178585309e-12
+32
+4233.943769782032
+13
+3000.333984375
+23
+3.539114178585309e-12
+33
+4233.943769782032
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.599609375
+20
+3.524242041860054e-12
+30
+4019.6136916570317
+11
+2980.3125
+21
+3.5187146436594513e-12
+31
+3939.9554885320317
+12
+2980.177734375
+22
+3.539280874669329e-12
+32
+4236.346113532032
+13
+2980.177734375
+23
+3.539280874669329e-12
+33
+4236.346113532032
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.3125
+20
+3.5187146436594513e-12
+30
+3939.9554885320317
+11
+2980.599609375
+21
+3.524242041860054e-12
+31
+4019.6136916570317
+12
+2984.80078125
+22
+3.521221590132781e-12
+32
+3976.0843947820317
+13
+2984.80078125
+23
+3.521221590132781e-12
+33
+3976.0843947820317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3005.794921875
+20
+3.4909056710868275e-12
+30
+3539.1859572820317
+11
+2996.009765625
+21
+3.4896200783608028e-12
+31
+3520.6586135320317
+12
+2988.41015625
+22
+3.4930479190543873e-12
+32
+3570.0590041570317
+13
+2988.41015625
+23
+3.4930479190543873e-12
+33
+3570.0590041570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2996.009765625
+20
+3.4896200783608028e-12
+30
+3520.6586135320317
+11
+3005.794921875
+21
+3.4909056710868275e-12
+31
+3539.1859572820317
+12
+3027.57421875
+22
+3.4887048762019535e-12
+32
+3507.4691604070317
+13
+3027.57421875
+23
+3.4887048762019535e-12
+33
+3507.4691604070317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+3009.375
+20
+3.4750935310780273e-12
+30
+3311.3090041570317
+11
+3004.880859375
+21
+3.471509565271605e-12
+31
+3259.6586135320317
+12
+2996.642578125
+22
+3.478198957150569e-12
+32
+3356.0629104070317
+13
+2996.642578125
+23
+3.478198957150569e-12
+33
+3356.0629104070317
+70
+2
+ 0
+3DFACE
+ 8
+ship8
+10
+3036.392578125
+20
+3.441625429740844e-12
+30
+2828.9828322820317
+11
+3033.76171875
+21
+3.440234940454631e-12
+31
+2808.9437697820317
+12
+3004.9921875
+22
+3.460743031123009e-12
+32
+3104.4965041570317
+13
+3004.9921875
+23
+3.460743031123009e-12
+33
+3104.4965041570317
+70
+2
+ 0
+3DFACE
+ 8
+ship8
+10
+2916.33984375
+20
+3.4368432850085534e-12
+30
+2760.0648635320317
+11
+2656.265625
+21
+3.4374279410300662e-12
+31
+2768.4906447820317
+12
+2643.169921875
+22
+3.438422018896964e-12
+32
+2782.8168166570317
+13
+2643.169921875
+23
+3.438422018896964e-12
+33
+2782.8168166570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2656.265625
+20
+3.4374279410300662e-12
+30
+2768.4906447820317
+11
+2916.33984375
+21
+3.4368432850085534e-12
+31
+2760.0648635320317
+12
+2954.6015625
+22
+3.435111272038008e-12
+32
+2735.1039260320317
+13
+2954.6015625
+23
+3.435111272038008e-12
+33
+2735.1039260320317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2954.6015625
+20
+3.435111272038008e-12
+30
+2735.1039260320317
+11
+2916.33984375
+21
+3.4368432850085534e-12
+31
+2760.0648635320317
+12
+2950.96875
+22
+3.4372783211302632e-12
+32
+2766.3343947820317
+13
+2950.96875
+23
+3.4372783211302632e-12
+33
+2766.3343947820317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2954.6015625
+20
+3.435111272038008e-12
+30
+2735.1039260320317
+11
+2950.96875
+21
+3.4372783211302632e-12
+31
+2766.3343947820317
+12
+2968.986328125
+22
+3.4365810436080835e-12
+32
+2756.2855666570317
+13
+2968.986328125
+23
+3.4365810436080835e-12
+33
+2756.2855666570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+2954.6015625
+20
+3.435111272038008e-12
+30
+2735.1039260320317
+11
+2968.986328125
+21
+3.4365810436080835e-12
+31
+2756.2855666570317
+12
+2954.6015625
+22
+3.3307160198295382e-12
+32
+1230.6097854070317
+13
+2954.6015625
+23
+3.3307160198295382e-12
+33
+1230.6097854070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2954.6015625
+20
+3.3307160198295382e-12
+30
+1230.6097854070317
+11
+2968.986328125
+21
+3.4365810436080835e-12
+31
+2756.2855666570317
+12
+3062.466796875
+22
+3.3289327783063427e-12
+32
+1204.9105666570317
+13
+3062.466796875
+23
+3.3289327783063427e-12
+33
+1204.9105666570317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+2968.986328125
+21
+3.4365810436080835e-12
+31
+2756.2855666570317
+12
+2971.9453125
+22
+3.4448947058667023e-12
+32
+2876.0980666570317
+13
+2971.9453125
+23
+3.4448947058667023e-12
+33
+2876.0980666570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+2971.9453125
+21
+3.4448947058667023e-12
+31
+2876.0980666570317
+12
+2988.41015625
+22
+3.4930479190543873e-12
+32
+3570.0590041570317
+13
+2988.41015625
+23
+3.4930479190543873e-12
+33
+3570.0590041570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2988.41015625
+20
+3.4930479190543873e-12
+30
+3570.0590041570317
+11
+2971.9453125
+21
+3.4448947058667023e-12
+31
+2876.0980666570317
+12
+2980.3125
+22
+3.5187146436594513e-12
+32
+3939.9554885320317
+13
+2980.3125
+23
+3.5187146436594513e-12
+33
+3939.9554885320317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.3125
+20
+3.5187146436594513e-12
+30
+3939.9554885320317
+11
+2971.9453125
+21
+3.4448947058667023e-12
+31
+2876.0980666570317
+12
+2979.87890625
+22
+3.546532967475813e-12
+32
+4340.859785407032
+13
+2979.87890625
+23
+3.546532967475813e-12
+33
+4340.859785407032
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2980.3125
+20
+3.5187146436594513e-12
+30
+3939.9554885320317
+11
+2979.87890625
+21
+3.546532967475813e-12
+31
+4340.859785407032
+12
+2980.177734375
+22
+3.539280874669329e-12
+32
+4236.346113532032
+13
+2980.177734375
+23
+3.539280874669329e-12
+33
+4236.346113532032
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+2988.41015625
+21
+3.4930479190543873e-12
+31
+3570.0590041570317
+12
+2996.642578125
+22
+3.478198957150569e-12
+32
+3356.0629104070317
+13
+2996.642578125
+23
+3.478198957150569e-12
+33
+3356.0629104070317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+2996.642578125
+20
+3.478198957150569e-12
+30
+3356.0629104070317
+11
+2988.41015625
+21
+3.4930479190543873e-12
+31
+3570.0590041570317
+12
+2996.009765625
+22
+3.4896200783608028e-12
+32
+3520.6586135320317
+13
+2996.009765625
+23
+3.4896200783608028e-12
+33
+3520.6586135320317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+2996.642578125
+21
+3.478198957150569e-12
+31
+3356.0629104070317
+12
+3004.9921875
+22
+3.460743031123009e-12
+32
+3104.4965041570317
+13
+3004.9921875
+23
+3.460743031123009e-12
+33
+3104.4965041570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3004.9921875
+20
+3.460743031123009e-12
+30
+3104.4965041570317
+11
+2996.642578125
+21
+3.478198957150569e-12
+31
+3356.0629104070317
+12
+3004.880859375
+22
+3.471509565271605e-12
+32
+3259.6586135320317
+13
+3004.880859375
+23
+3.471509565271605e-12
+33
+3259.6586135320317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+3004.9921875
+21
+3.460743031123009e-12
+31
+3104.4965041570317
+12
+3033.890625
+22
+3.4390335089222457e-12
+32
+2791.6293166570317
+13
+3033.890625
+23
+3.4390335089222457e-12
+33
+2791.6293166570317
+70
+15
+ 0
+3DFACE
+ 8
+ship8
+10
+3033.890625
+20
+3.4390335089222457e-12
+30
+2791.6293166570317
+11
+3004.9921875
+21
+3.460743031123009e-12
+31
+3104.4965041570317
+12
+3033.76171875
+22
+3.440234940454631e-12
+32
+2808.9437697820317
+13
+3033.76171875
+23
+3.440234940454631e-12
+33
+2808.9437697820317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+3033.890625
+21
+3.4390335089222457e-12
+31
+2791.6293166570317
+12
+3038.0625
+22
+3.437688962703092e-12
+32
+2772.2523635320317
+13
+3038.0625
+23
+3.437688962703092e-12
+33
+2772.2523635320317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+3038.0625
+21
+3.437688962703092e-12
+31
+2772.2523635320317
+12
+3050.197265625
+22
+3.436307824660617e-12
+32
+2752.3480666570317
+13
+3050.197265625
+23
+3.436307824660617e-12
+33
+2752.3480666570317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.466796875
+20
+3.3289327783063427e-12
+30
+1204.9105666570317
+11
+3050.197265625
+21
+3.436307824660617e-12
+31
+2752.3480666570317
+12
+3062.53125
+22
+3.4344400153679677e-12
+32
+2725.4300979070317
+13
+3062.53125
+23
+3.4344400153679677e-12
+33
+2725.4300979070317
+70
+3
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.53125
+20
+3.4344400153679677e-12
+30
+2725.4300979070317
+11
+3050.197265625
+21
+3.436307824660617e-12
+31
+2752.3480666570317
+12
+3355.728515625
+22
+3.4344892110415443e-12
+32
+2726.1390822820317
+13
+3355.728515625
+23
+3.4344892110415443e-12
+33
+2726.1390822820317
+70
+13
+ 0
+3DFACE
+ 8
+ship8
+10
+3062.53125
+20
+3.4344400153679677e-12
+30
+2725.4300979070317
+11
+3355.728515625
+21
+3.4344892110415443e-12
+31
+2726.1390822820317
+12
+3383.765625
+22
+3.4336000297348346e-12
+32
+2713.3246291570317
+13
+3383.765625
+23
+3.4336000297348346e-12
+33
+2713.3246291570317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2964.005859375
+20
+3.4960537340523318e-12
+30
+3613.3773635320317
+11
+2960.103515625
+21
+3.514511869463083e-12
+31
+3879.3871291570317
+12
+2963.876953125
+22
+3.517005398934528e-12
+32
+3915.3226760320317
+13
+2963.876953125
+23
+3.517005398934528e-12
+33
+3915.3226760320317
+70
+12
+ 0
+3DFACE
+ 8
+ship8
+10
+2961.345703125
+20
+3.4891549556288065e-12
+30
+3513.9554885320317
+11
+2959.458984375
+21
+3.48698953283981e-12
+31
+3482.7484572820317
+12
+2934.2578125
+22
+3.4860999449572855e-12
+32
+3469.9281447820317
+13
+2934.2578125
+23
+3.4860999449572855e-12
+33
+3469.9281447820317
+70
+1
+ 0
+3DFACE
+ 8
+ship8
+10
+2959.458984375
+20
+3.48698953283981e-12
+30
+3482.7484572820317
+11
+2961.345703125
+21
+3.4891549556288065e-12
+31
+3513.9554885320317
+12
+2966.33203125
+22
+3.4837775839038215e-12
+32
+3436.4593947820317
+13
+2966.33203125
+23
+3.4837775839038215e-12
+33
+3436.4593947820317
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+998.227187499999
+20
+-4.830517875888812e-13
+30
+570.3682710197586
+11
+1323.522109374999
+21
+-4.87950603316953e-13
+31
+499.7688960197586
+12
+997.541406249999
+22
+-4.844455457446439e-13
+32
+550.2820991447584
+13
+997.541406249999
+23
+-4.844455457446439e-13
+33
+550.2820991447584
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+1323.522109374999
+20
+-4.87950603316953e-13
+30
+499.7688960197586
+11
+998.227187499999
+21
+-4.830517875888812e-13
+31
+570.3682710197586
+12
+1568.607695312499
+22
+-4.830517875888812e-13
+32
+570.3682710197586
+13
+1568.607695312499
+23
+-4.830517875888812e-13
+33
+570.3682710197586
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+1323.522109374999
+20
+-4.87950603316953e-13
+30
+499.7688960197586
+11
+1568.607695312499
+21
+-4.830517875888812e-13
+31
+570.3682710197586
+12
+1415.606289062499
+22
+-4.972636126650276e-13
+32
+365.55428664475835
+13
+1415.606289062499
+23
+-4.972636126650276e-13
+33
+365.55428664475835
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+1415.606289062499
+20
+-4.972636126650276e-13
+30
+365.55428664475835
+11
+1568.607695312499
+21
+-4.830517875888812e-13
+31
+570.3682710197586
+12
+1553.944609374999
+22
+-5.422182613925436e-13
+32
+-282.3104789802417
+13
+1553.944609374999
+23
+-5.422182613925436e-13
+33
+-282.3104789802417
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+1553.944609374999
+20
+-5.422182613925436e-13
+30
+-282.3104789802417
+11
+1568.607695312499
+21
+-4.830517875888812e-13
+31
+570.3682710197586
+12
+2291.2677343749992
+22
+-4.559004270019568e-13
+32
+961.6606147697582
+13
+2291.2677343749992
+23
+-4.559004270019568e-13
+33
+961.6606147697582
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2291.2677343749992
+20
+-4.559004270019568e-13
+30
+961.6606147697582
+11
+1568.607695312499
+21
+-4.830517875888812e-13
+31
+570.3682710197586
+12
+1761.808515624999
+22
+-4.722135334665755e-13
+32
+726.5639741447583
+13
+1761.808515624999
+23
+-4.722135334665755e-13
+33
+726.5639741447583
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+1237.366328124999
+20
+-4.947015019851619e-13
+30
+402.4781928947584
+11
+1232.944843749999
+21
+-5.377571082659446e-13
+31
+-218.01848679274173
+12
+1216.3236718749993
+22
+-5.275092916732367e-13
+32
+-70.33188523024171
+13
+1216.3236718749993
+23
+-5.275092916732367e-13
+33
+-70.33188523024171
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+1232.944843749999
+20
+-5.377571082659446e-13
+30
+-218.01848679274173
+11
+1237.366328124999
+21
+-4.947015019851619e-13
+31
+402.4781928947584
+12
+1284.622070312499
+22
+-5.141915756026739e-13
+32
+121.59663039475834
+13
+1284.622070312499
+23
+-5.141915756026739e-13
+33
+121.59663039475834
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+1232.944843749999
+20
+-5.377571082659446e-13
+30
+-218.01848679274173
+11
+1284.622070312499
+21
+-5.141915756026739e-13
+31
+121.59663039475834
+12
+1553.944609374999
+22
+-5.422182613925436e-13
+32
+-282.3104789802417
+13
+1553.944609374999
+23
+-5.422182613925436e-13
+33
+-282.3104789802417
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+1284.622070312499
+20
+-5.141915756026739e-13
+30
+121.59663039475834
+11
+1237.366328124999
+21
+-4.947015019851619e-13
+31
+402.4781928947584
+12
+1243.1413281249993
+22
+-4.898678034395698e-13
+32
+472.13913039475824
+13
+1243.1413281249993
+23
+-4.898678034395698e-13
+33
+472.13913039475824
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+1284.622070312499
+20
+-5.141915756026739e-13
+30
+121.59663039475834
+11
+1243.1413281249993
+21
+-4.898678034395698e-13
+31
+472.13913039475824
+12
+1270.6447656249993
+22
+-4.889135862655437e-13
+32
+485.89084914475825
+13
+1270.6447656249993
+23
+-4.889135862655437e-13
+33
+485.89084914475825
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+1553.944609374999
+20
+-5.422182613925436e-13
+30
+-282.3104789802417
+11
+1284.622070312499
+21
+-5.141915756026739e-13
+31
+121.59663039475834
+12
+1415.606289062499
+22
+-4.972636126650276e-13
+32
+365.55428664475835
+13
+1415.606289062499
+23
+-4.972636126650276e-13
+33
+365.55428664475835
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+4812.524453124999
+20
+-4.134803393771037e-13
+30
+1572.9985053947585
+11
+5024.539140624999
+21
+-5.526720736875186e-13
+31
+-432.9657914802417
+12
+4317.01140625
+22
+-4.173328972982214e-13
+32
+1517.4772944572583
+13
+4317.01140625
+23
+-4.173328972982214e-13
+33
+1517.4772944572583
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+5024.539140624999
+20
+-5.526720736875186e-13
+30
+-432.9657914802417
+11
+4812.524453124999
+21
+-4.134803393771037e-13
+31
+1572.9985053947585
+12
+5899.704296874999
+22
+-4.0569570543703274e-13
+32
+1685.1869038322584
+13
+5899.704296874999
+23
+-4.0569570543703274e-13
+33
+1685.1869038322584
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+5024.539140624999
+20
+-5.526720736875186e-13
+30
+-432.9657914802417
+11
+5899.704296874999
+21
+-4.0569570543703274e-13
+31
+1685.1869038322584
+12
+5558.8890624999985
+22
+-5.55408247605166e-13
+32
+-472.39821335524175
+13
+5558.8890624999985
+23
+-5.55408247605166e-13
+33
+-472.39821335524175
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+5558.8890624999985
+20
+-5.55408247605166e-13
+30
+-472.39821335524175
+11
+5899.704296874999
+21
+-4.0569570543703274e-13
+31
+1685.1869038322584
+12
+5584.010312499999
+22
+-5.562115682313309e-13
+32
+-483.9752836677417
+13
+5584.010312499999
+23
+-5.562115682313309e-13
+33
+-483.9752836677417
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+1499.749843749999
+20
+-4.2078974311042517e-13
+30
+1467.6588960197578
+11
+1761.808515624999
+21
+-4.722135334665755e-13
+31
+726.5639741447583
+12
+1466.218749999999
+22
+-4.218616721143181e-13
+32
+1452.2107710197583
+13
+1466.218749999999
+23
+-4.218616721143181e-13
+33
+1452.2107710197583
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+1761.808515624999
+20
+-4.722135334665755e-13
+30
+726.5639741447583
+11
+1499.749843749999
+21
+-4.2078974311042517e-13
+31
+1467.6588960197578
+12
+1657.271992187499
+22
+-4.4331778374130655e-13
+32
+1142.9956147697583
+13
+1657.271992187499
+23
+-4.4331778374130655e-13
+33
+1142.9956147697583
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+1761.808515624999
+20
+-4.722135334665755e-13
+30
+726.5639741447583
+11
+1657.271992187499
+21
+-4.4331778374130655e-13
+31
+1142.9956147697583
+12
+1828.7263281249989
+22
+-4.657525314857511e-13
+32
+819.6768257072583
+13
+1828.7263281249989
+23
+-4.657525314857511e-13
+33
+819.6768257072583
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+1761.808515624999
+20
+-4.722135334665755e-13
+30
+726.5639741447583
+11
+1828.7263281249989
+21
+-4.657525314857511e-13
+31
+819.6768257072583
+12
+2291.2677343749992
+22
+-4.559004270019568e-13
+32
+961.6606147697582
+13
+2291.2677343749992
+23
+-4.559004270019568e-13
+33
+961.6606147697582
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2291.2677343749992
+20
+-4.559004270019568e-13
+30
+961.6606147697582
+11
+1828.7263281249989
+21
+-4.657525314857511e-13
+31
+819.6768257072583
+12
+1839.1032812499989
+22
+-4.5348921286995216e-13
+32
+996.4098725822582
+13
+1839.1032812499989
+23
+-4.5348921286995216e-13
+33
+996.4098725822582
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+2291.2677343749992
+20
+-4.559004270019568e-13
+30
+961.6606147697582
+11
+1839.1032812499989
+21
+-4.5348921286995216e-13
+31
+996.4098725822582
+12
+2046.100937499999
+22
+-4.476668601788303e-13
+32
+1080.3188178947582
+13
+2046.100937499999
+23
+-4.476668601788303e-13
+33
+1080.3188178947582
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3074.808906249999
+20
+-5.51244504687007e-13
+30
+-412.39235398024175
+11
+1553.944609374999
+21
+-5.422182613925436e-13
+31
+-282.3104789802417
+12
+2291.2677343749992
+22
+-4.559004270019568e-13
+32
+961.6606147697582
+13
+2291.2677343749992
+23
+-4.559004270019568e-13
+33
+961.6606147697582
+70
+0
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+3074.808906249999
+21
+-5.51244504687007e-13
+31
+-412.39235398024175
+12
+2291.2677343749992
+22
+-4.559004270019568e-13
+32
+961.6606147697582
+13
+2291.2677343749992
+23
+-4.559004270019568e-13
+33
+961.6606147697582
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3074.808906249999
+20
+-5.51244504687007e-13
+30
+-412.39235398024175
+11
+3557.310156249999
+21
+-4.2027131015760776e-13
+31
+1475.1303022697584
+12
+3187.547734374999
+22
+-5.504568372297071e-13
+32
+-401.0408696052417
+13
+3187.547734374999
+23
+-5.504568372297071e-13
+33
+-401.0408696052417
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+3187.547734374999
+20
+-5.504568372297071e-13
+30
+-401.0408696052417
+11
+3557.310156249999
+21
+-4.2027131015760776e-13
+31
+1475.1303022697584
+12
+3471.118281249999
+22
+-5.476229875383404e-13
+32
+-360.2007914802417
+13
+3471.118281249999
+23
+-5.476229875383404e-13
+33
+-360.2007914802417
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2756.046953124999
+20
+-3.327776097218626e-13
+30
+2736.0474116447585
+11
+2769.392617187499
+21
+-3.3704842031506016e-13
+31
+2674.4985444572585
+12
+2576.245937499999
+22
+-3.385711605822725e-13
+32
+2652.5535444572583
+13
+2576.245937499999
+23
+-3.385711605822725e-13
+33
+2652.5535444572583
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2769.392617187499
+20
+-3.3704842031506016e-13
+30
+2674.4985444572585
+11
+2756.046953124999
+21
+-3.327776097218626e-13
+31
+2736.0474116447585
+12
+2768.9233984374996
+22
+-3.323405732471447e-13
+32
+2742.3457710197586
+13
+2768.9233984374996
+23
+-3.323405732471447e-13
+33
+2742.3457710197586
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+2769.392617187499
+20
+-3.3704842031506016e-13
+30
+2674.4985444572585
+11
+2768.9233984374996
+21
+-3.323405732471447e-13
+31
+2742.3457710197586
+12
+2851.1720312499992
+22
+-3.2625180362193595e-13
+32
+2830.0941889885084
+13
+2851.1720312499992
+23
+-3.2625180362193595e-13
+33
+2830.0941889885084
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+2769.392617187499
+20
+-3.3704842031506016e-13
+30
+2674.4985444572585
+11
+2851.1720312499992
+21
+-3.2625180362193595e-13
+31
+2830.0941889885084
+12
+2840.560468749999
+22
+-3.460790464968055e-13
+32
+2544.3535053947585
+13
+2840.560468749999
+23
+-3.460790464968055e-13
+33
+2544.3535053947585
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2874.226914062499
+20
+-3.120888164326492e-13
+30
+3034.2043452385083
+11
+2851.1720312499992
+21
+-3.2625180362193595e-13
+31
+2830.0941889885084
+12
+2833.928242187499
+22
+-3.217940941924874e-13
+32
+2894.336552269758
+13
+2833.928242187499
+23
+-3.217940941924874e-13
+33
+2894.336552269758
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2851.1720312499992
+20
+-3.2625180362193595e-13
+30
+2830.0941889885084
+11
+2874.226914062499
+21
+-3.120888164326492e-13
+31
+3034.2043452385083
+12
+2853.924179687499
+22
+-3.69666806659865e-13
+32
+2204.4180561760086
+13
+2853.924179687499
+23
+-3.69666806659865e-13
+33
+2204.4180561760086
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+2921.1939062499996
+20
+-3.080233754149641e-13
+30
+3092.7935249260086
+11
+2874.226914062499
+21
+-3.120888164326492e-13
+31
+3034.2043452385083
+12
+2607.683593749999
+22
+-3.0912786301009684e-13
+32
+3076.8761811760082
+13
+2607.683593749999
+23
+-3.0912786301009684e-13
+33
+3076.8761811760082
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2971.234179687499
+20
+-3.035764911226861e-13
+30
+3156.8798815393284
+11
+2969.875351562499
+21
+-3.150328644328273e-13
+31
+2991.7761421135083
+12
+2942.859179687499
+22
+-3.0020148693299397e-13
+32
+3205.5188178947583
+13
+2942.859179687499
+23
+-3.0020148693299397e-13
+33
+3205.5188178947583
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2969.875351562499
+20
+-3.150328644328273e-13
+30
+2991.7761421135083
+11
+2971.234179687499
+21
+-3.035764911226861e-13
+31
+3156.8798815393284
+12
+3012.826914062499
+22
+-3.0852365069189783e-13
+32
+3085.5837983635083
+13
+3012.826914062499
+23
+-3.0852365069189783e-13
+33
+3085.5837983635083
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+2969.875351562499
+20
+-3.150328644328273e-13
+30
+2991.7761421135083
+11
+3012.826914062499
+21
+-3.0852365069189783e-13
+31
+3085.5837983635083
+12
+3095.183828124999
+22
+-3.127118125534865e-13
+32
+3025.2260249260084
+13
+3095.183828124999
+23
+-3.127118125534865e-13
+33
+3025.2260249260084
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+3095.183828124999
+20
+-3.127118125534865e-13
+30
+3025.2260249260084
+11
+3012.826914062499
+21
+-3.0852365069189783e-13
+31
+3085.5837983635083
+12
+3355.780703124999
+22
+-3.115174757690672e-13
+32
+3042.4382319572583
+13
+3355.780703124999
+23
+-3.115174757690672e-13
+33
+3042.4382319572583
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3095.183828124999
+20
+-3.127118125534865e-13
+30
+3025.2260249260084
+11
+3355.780703124999
+21
+-3.115174757690672e-13
+31
+3042.4382319572583
+12
+3226.294374999999
+22
+-3.1305117325448547e-13
+32
+3020.3353218010084
+13
+3226.294374999999
+23
+-3.1305117325448547e-13
+33
+3020.3353218010084
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3231.870859374999
+20
+-3.867847990675355e-13
+30
+1957.7217866447581
+11
+3148.855234374999
+21
+-3.9001623924807976e-13
+31
+1911.1518257072585
+12
+3081.765976562499
+22
+-3.824579501298005e-13
+32
+2020.0782514885082
+13
+3081.765976562499
+23
+-3.824579501298005e-13
+33
+2020.0782514885082
+70
+2
+ 0
+3DFACE
+ 8
+ship1
+10
+3196.517031249999
+20
+-3.273600479775963e-13
+30
+2814.122704613508
+11
+3030.016562499999
+21
+-3.618107942697687e-13
+31
+2317.6351264885084
+12
+2969.875351562499
+22
+-3.150328644328273e-13
+32
+2991.7761421135083
+13
+2969.875351562499
+23
+-3.150328644328273e-13
+33
+2991.7761421135083
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+3030.016562499999
+20
+-3.618107942697687e-13
+30
+2317.6351264885084
+11
+3196.517031249999
+21
+-3.273600479775963e-13
+31
+2814.122704613508
+12
+3151.417890624999
+22
+-3.4254612628391646e-13
+32
+2595.268251488508
+13
+3151.417890624999
+23
+-3.4254612628391646e-13
+33
+2595.268251488508
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3151.417890624999
+20
+-3.4254612628391646e-13
+30
+2595.268251488508
+11
+3196.517031249999
+21
+-3.273600479775963e-13
+31
+2814.122704613508
+12
+3204.728359374999
+22
+-3.3791560587019543e-13
+32
+2662.001083519758
+13
+3204.728359374999
+23
+-3.3791560587019543e-13
+33
+2662.001083519758
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3233.034882812499
+20
+-3.440369340866439e-13
+30
+2573.7834468010083
+11
+3166.911132812499
+21
+-3.5758068191562086e-13
+31
+2378.5974702385083
+12
+3151.417890624999
+22
+-3.4254612628391646e-13
+32
+2595.268251488508
+13
+3151.417890624999
+23
+-3.4254612628391646e-13
+33
+2595.268251488508
+70
+2
+ 0
+3DFACE
+ 8
+ship1
+10
+3030.016562499999
+20
+-3.618107942697687e-13
+30
+2317.6351264885084
+11
+3166.911132812499
+21
+-3.5758068191562086e-13
+31
+2378.5974702385083
+12
+3495.824453124999
+22
+-3.6110765392434114e-13
+32
+2327.7684468010084
+13
+3495.824453124999
+23
+-3.6110765392434114e-13
+33
+2327.7684468010084
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3166.911132812499
+20
+-3.5758068191562086e-13
+30
+2378.5974702385083
+11
+3030.016562499999
+21
+-3.618107942697687e-13
+31
+2317.6351264885084
+12
+3151.417890624999
+22
+-3.4254612628391646e-13
+32
+2595.268251488508
+13
+3151.417890624999
+23
+-3.4254612628391646e-13
+33
+2595.268251488508
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+2811.189179687499
+20
+-3.837296135684142e-13
+30
+2001.7516499260082
+11
+3148.855234374999
+21
+-3.95514884407068e-13
+31
+1831.9079975822583
+12
+2658.178749999999
+22
+-3.931017918947997e-13
+32
+1866.6843257072583
+13
+2658.178749999999
+23
+-3.931017918947997e-13
+33
+1866.6843257072583
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3148.855234374999
+20
+-3.95514884407068e-13
+30
+1831.9079975822583
+11
+2811.189179687499
+21
+-3.837296135684142e-13
+31
+2001.7516499260082
+12
+2853.924179687499
+22
+-3.69666806659865e-13
+32
+2204.4180561760086
+13
+2853.924179687499
+23
+-3.69666806659865e-13
+33
+2204.4180561760086
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3148.855234374999
+20
+-3.95514884407068e-13
+30
+1831.9079975822583
+11
+2853.924179687499
+21
+-3.69666806659865e-13
+31
+2204.4180561760086
+12
+3081.765976562499
+22
+-3.824579501298005e-13
+32
+2020.0782514885082
+13
+3081.765976562499
+23
+-3.824579501298005e-13
+33
+2020.0782514885082
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3081.765976562499
+20
+-3.824579501298005e-13
+30
+2020.0782514885082
+11
+2853.924179687499
+21
+-3.69666806659865e-13
+31
+2204.4180561760086
+12
+2874.226914062499
+22
+-3.120888164326492e-13
+32
+3034.2043452385083
+13
+2874.226914062499
+23
+-3.120888164326492e-13
+33
+3034.2043452385083
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3081.765976562499
+20
+-3.824579501298005e-13
+30
+2020.0782514885082
+11
+2874.226914062499
+21
+-3.120888164326492e-13
+31
+3034.2043452385083
+12
+3030.016562499999
+22
+-3.618107942697687e-13
+32
+2317.6351264885084
+13
+3030.016562499999
+23
+-3.618107942697687e-13
+33
+2317.6351264885084
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+3030.016562499999
+20
+-3.618107942697687e-13
+30
+2317.6351264885084
+11
+2874.226914062499
+21
+-3.120888164326492e-13
+31
+3034.2043452385083
+12
+2921.1939062499996
+22
+-3.080233754149641e-13
+32
+3092.7935249260086
+13
+2921.1939062499996
+23
+-3.080233754149641e-13
+33
+3092.7935249260086
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3030.016562499999
+20
+-3.618107942697687e-13
+30
+2317.6351264885084
+11
+2921.1939062499996
+21
+-3.080233754149641e-13
+31
+3092.7935249260086
+12
+2934.990742187499
+22
+-3.0467328421442117e-13
+32
+3141.073427269758
+13
+2934.990742187499
+23
+-3.0467328421442117e-13
+33
+3141.073427269758
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3030.016562499999
+20
+-3.618107942697687e-13
+30
+2317.6351264885084
+11
+2934.990742187499
+21
+-3.0467328421442117e-13
+31
+3141.073427269758
+12
+2942.859179687499
+22
+-3.0020148693299397e-13
+32
+3205.5188178947583
+13
+2942.859179687499
+23
+-3.0020148693299397e-13
+33
+3205.5188178947583
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3030.016562499999
+20
+-3.618107942697687e-13
+30
+2317.6351264885084
+11
+2942.859179687499
+21
+-3.0020148693299397e-13
+31
+3205.5188178947583
+12
+2969.875351562499
+22
+-3.150328644328273e-13
+32
+2991.7761421135083
+13
+2969.875351562499
+23
+-3.150328644328273e-13
+33
+2991.7761421135083
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3148.855234374999
+20
+-3.95514884407068e-13
+30
+1831.9079975822583
+11
+3081.765976562499
+21
+-3.824579501298005e-13
+31
+2020.0782514885082
+12
+3148.855234374999
+22
+-3.9001623924807976e-13
+32
+1911.1518257072585
+13
+3148.855234374999
+23
+-3.9001623924807976e-13
+33
+1911.1518257072585
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2208.324296874999
+20
+-3.5515318848799644e-13
+30
+2413.5813374260083
+11
+2281.3960937499987
+21
+-3.5912533661924474e-13
+31
+2356.336649926008
+12
+2195.781718749999
+22
+-3.5648433396829824e-13
+32
+2394.3975093010085
+13
+2195.781718749999
+23
+-3.5648433396829824e-13
+33
+2394.3975093010085
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2281.3960937499987
+20
+-3.5912533661924474e-13
+30
+2356.336649926008
+11
+2208.324296874999
+21
+-3.5515318848799644e-13
+31
+2413.5813374260083
+12
+2330.7452734374992
+22
+-3.57936634975617e-13
+32
+2373.4676460197584
+13
+2330.7452734374992
+23
+-3.57936634975617e-13
+33
+2373.4676460197584
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+2330.7452734374992
+20
+-3.57936634975617e-13
+30
+2373.4676460197584
+11
+2208.324296874999
+21
+-3.5515318848799644e-13
+31
+2413.5813374260083
+12
+2586.8033593749988
+22
+-3.5470644704858204e-13
+32
+2420.0195600822585
+13
+2586.8033593749988
+23
+-3.5470644704858204e-13
+33
+2420.0195600822585
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+2281.3960937499987
+20
+-3.5912533661924474e-13
+30
+2356.336649926008
+11
+2330.7452734374992
+21
+-3.57936634975617e-13
+31
+2373.4676460197584
+12
+2282.641328124999
+22
+-3.778430828849448e-13
+32
+2086.5854975822585
+13
+2282.641328124999
+23
+-3.778430828849448e-13
+33
+2086.5854975822585
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2330.7452734374992
+20
+-3.57936634975617e-13
+30
+2373.4676460197584
+11
+2586.8033593749988
+21
+-3.5470644704858204e-13
+31
+2420.0195600822585
+12
+2777.7483203124993
+22
+-3.593833008421443e-13
+32
+2352.6189936760084
+13
+2777.7483203124993
+23
+-3.593833008421443e-13
+33
+2352.6189936760084
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2777.7483203124993
+20
+-3.593833008421443e-13
+30
+2352.6189936760084
+11
+2586.8033593749988
+21
+-3.5470644704858204e-13
+31
+2420.0195600822585
+12
+2734.7335937499993
+22
+-3.546986204641494e-13
+32
+2420.1323530510085
+13
+2734.7335937499993
+23
+-3.546986204641494e-13
+33
+2420.1323530510085
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+2777.7483203124993
+20
+-3.593833008421443e-13
+30
+2352.6189936760084
+11
+2734.7335937499993
+21
+-3.546986204641494e-13
+31
+2420.1323530510085
+12
+2840.560468749999
+22
+-3.460790464968055e-13
+32
+2544.3535053947585
+13
+2840.560468749999
+23
+-3.460790464968055e-13
+33
+2544.3535053947585
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+2777.7483203124993
+20
+-3.593833008421443e-13
+30
+2352.6189936760084
+11
+2840.560468749999
+21
+-3.460790464968055e-13
+31
+2544.3535053947585
+12
+2853.924179687499
+22
+-3.69666806659865e-13
+32
+2204.4180561760086
+13
+2853.924179687499
+23
+-3.69666806659865e-13
+33
+2204.4180561760086
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+2853.924179687499
+20
+-3.69666806659865e-13
+30
+2204.4180561760086
+11
+2840.560468749999
+21
+-3.460790464968055e-13
+31
+2544.3535053947585
+12
+2851.1720312499992
+22
+-3.2625180362193595e-13
+32
+2830.0941889885084
+13
+2851.1720312499992
+23
+-3.2625180362193595e-13
+33
+2830.0941889885084
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+2330.7452734374992
+20
+-3.955142582803135e-13
+30
+1831.9170210197585
+11
+2282.641328124999
+21
+-3.778430828849448e-13
+31
+2086.5854975822585
+12
+2330.7452734374992
+22
+-3.57936634975617e-13
+32
+2373.4676460197584
+13
+2330.7452734374992
+23
+-3.57936634975617e-13
+33
+2373.4676460197584
+70
+2
+ 0
+3DFACE
+ 8
+ship1
+10
+3568.977460937499
+20
+-3.857278971057532e-13
+30
+1972.9533491447578
+11
+3499.154101562499
+21
+-3.929064403473612e-13
+31
+1869.4996382072582
+12
+3499.154101562499
+22
+-3.6895490053987314e-13
+32
+2214.6777046135085
+13
+3499.154101562499
+23
+-3.6895490053987314e-13
+33
+2214.6777046135085
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3499.154101562499
+20
+-3.929064403473612e-13
+30
+1869.4996382072582
+11
+3568.977460937499
+21
+-3.857278971057532e-13
+31
+1972.9533491447578
+12
+3557.310156249999
+22
+-4.2027131015760776e-13
+32
+1475.1303022697584
+13
+3557.310156249999
+23
+-4.2027131015760776e-13
+33
+1475.1303022697584
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+3568.977460937499
+21
+-3.857278971057532e-13
+31
+1972.9533491447578
+12
+3570.231718749999
+22
+-4.02744770042554e-13
+32
+1727.7143647697585
+13
+3570.231718749999
+23
+-4.02744770042554e-13
+33
+1727.7143647697585
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+3376.498515624999
+21
+-3.999509924634825e-13
+31
+1767.9769428947584
+12
+3499.154101562499
+22
+-3.929064403473612e-13
+32
+1869.4996382072582
+13
+3499.154101562499
+23
+-3.929064403473612e-13
+33
+1869.4996382072582
+70
+12
+ 0
+3DFACE
+ 8
+ship1
+10
+4317.01140625
+20
+-4.173328972982214e-13
+30
+1517.4772944572583
+11
+4225.549843749999
+21
+-4.1738611807236326e-13
+31
+1516.7103022697584
+12
+4225.549843749999
+22
+-3.966256332697469e-13
+32
+1815.9004194572585
+13
+4225.549843749999
+23
+-3.966256332697469e-13
+33
+1815.9004194572585
+70
+0
+ 0
+3DFACE
+ 8
+ship1
+10
+3471.118281249999
+20
+-5.476229875383404e-13
+30
+-360.2007914802417
+11
+3932.450546874999
+21
+-4.1888882228342817e-13
+31
+1495.0540522697584
+12
+4225.549843749999
+22
+-4.1738611807236326e-13
+32
+1516.7103022697584
+13
+4225.549843749999
+23
+-4.1738611807236326e-13
+33
+1516.7103022697584
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3932.450546874999
+20
+-4.1888882228342817e-13
+30
+1495.0540522697584
+11
+3471.118281249999
+21
+-5.476229875383404e-13
+31
+-360.2007914802417
+12
+3557.310156249999
+22
+-4.2027131015760776e-13
+32
+1475.1303022697584
+13
+3557.310156249999
+23
+-4.2027131015760776e-13
+33
+1475.1303022697584
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3932.450546874999
+20
+-4.1888882228342817e-13
+30
+1495.0540522697584
+11
+3557.310156249999
+21
+-4.2027131015760776e-13
+31
+1475.1303022697584
+12
+3603.816953124999
+22
+-4.1503062922151894e-13
+32
+1550.6564741447578
+13
+3603.816953124999
+23
+-4.1503062922151894e-13
+33
+1550.6564741447578
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+4225.549843749999
+20
+-4.1738611807236326e-13
+30
+1516.7103022697584
+11
+3820.343359374999
+21
+-5.491745296362649e-13
+31
+-382.5608696052417
+12
+3471.118281249999
+22
+-5.476229875383404e-13
+32
+-360.2007914802417
+13
+3471.118281249999
+23
+-5.476229875383404e-13
+33
+-360.2007914802417
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3820.343359374999
+20
+-5.491745296362649e-13
+30
+-382.5608696052417
+11
+4225.549843749999
+21
+-4.1738611807236326e-13
+31
+1516.7103022697584
+12
+4099.654843749999
+22
+-5.538967776195364e-13
+32
+-450.6156352302417
+13
+4099.654843749999
+23
+-5.538967776195364e-13
+33
+-450.6156352302417
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+4099.654843749999
+20
+-5.538967776195364e-13
+30
+-450.6156352302417
+11
+4225.549843749999
+21
+-4.1738611807236326e-13
+31
+1516.7103022697584
+12
+4238.5075
+22
+-5.560130860501194e-13
+32
+-481.1148539802417
+13
+4238.5075
+23
+-5.560130860501194e-13
+33
+-481.1148539802417
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+4238.5075
+20
+-5.560130860501194e-13
+30
+-481.1148539802417
+11
+4225.549843749999
+21
+-4.1738611807236326e-13
+31
+1516.7103022697584
+12
+4317.01140625
+22
+-4.173328972982214e-13
+32
+1517.4772944572583
+13
+4317.01140625
+23
+-4.173328972982214e-13
+33
+1517.4772944572583
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+7258.850546874999
+20
+-3.9946449197515037e-13
+30
+1774.9881538322584
+11
+7255.945
+21
+-5.447891378469739e-13
+31
+-319.3607133552417
+12
+6709.756328124999
+22
+-3.9959535246686385e-13
+32
+1773.1022553947578
+13
+6709.756328124999
+23
+-3.9959535246686385e-13
+33
+1773.1022553947578
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+7255.945
+20
+-5.447891378469739e-13
+30
+-319.3607133552417
+11
+7258.850546874999
+21
+-3.9946449197515037e-13
+31
+1774.9881538322584
+12
+7260.2221093749995
+22
+-4.698655581367866e-13
+32
+760.4018647697583
+13
+7260.2221093749995
+23
+-4.698655581367866e-13
+33
+760.4018647697583
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+7260.2221093749995
+20
+-4.698655581367866e-13
+30
+760.4018647697583
+11
+7258.850546874999
+21
+-3.9946449197515037e-13
+31
+1774.9881538322584
+12
+7305.249062499999
+22
+-4.141027093711863e-13
+32
+1564.0292085197584
+13
+7305.249062499999
+23
+-4.141027093711863e-13
+33
+1564.0292085197584
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+7260.2221093749995
+20
+-4.698655581367866e-13
+30
+760.4018647697583
+11
+7305.249062499999
+21
+-4.141027093711863e-13
+31
+1564.0292085197584
+12
+7280.795546874999
+22
+-4.579077893772378e-13
+32
+932.7314741447583
+13
+7280.795546874999
+23
+-4.579077893772378e-13
+33
+932.7314741447583
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+7280.795546874999
+20
+-4.579077893772378e-13
+30
+932.7314741447583
+11
+7305.249062499999
+21
+-4.141027093711863e-13
+31
+1564.0292085197584
+12
+7360.273984374999
+22
+-4.26528820943184e-13
+32
+1384.9500678947584
+13
+7360.273984374999
+23
+-4.26528820943184e-13
+33
+1384.9500678947584
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+7280.795546874999
+20
+-4.579077893772378e-13
+30
+932.7314741447583
+11
+7360.273984374999
+21
+-4.26528820943184e-13
+31
+1384.9500678947584
+12
+7383.211562499999
+22
+-4.265025236194904e-13
+32
+1385.329052269758
+13
+7383.211562499999
+23
+-4.265025236194904e-13
+33
+1385.329052269758
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+6188.634765625
+20
+-4.0306409468740535e-13
+30
+1723.1124116447581
+11
+7323.963671874999
+21
+-5.684341886080801e-13
+31
+-660.1218071052417
+12
+5899.704296874999
+22
+-4.0569570543703274e-13
+32
+1685.1869038322584
+13
+5899.704296874999
+23
+-4.0569570543703274e-13
+33
+1685.1869038322584
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+7323.963671874999
+20
+-5.684341886080801e-13
+30
+-660.1218071052417
+11
+6188.634765625
+21
+-4.0306409468740535e-13
+31
+1723.1124116447581
+12
+6709.756328124999
+22
+-3.9959535246686385e-13
+32
+1773.1022553947578
+13
+6709.756328124999
+23
+-3.9959535246686385e-13
+33
+1773.1022553947578
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+7323.963671874999
+20
+-5.684341886080801e-13
+30
+-660.1218071052417
+11
+6709.756328124999
+21
+-3.9959535246686385e-13
+31
+1773.1022553947578
+12
+7255.945
+22
+-5.447891378469739e-13
+32
+-319.3607133552417
+13
+7255.945
+23
+-5.447891378469739e-13
+33
+-319.3607133552417
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+7323.963671874999
+20
+-5.684341886080801e-13
+30
+-660.1218071052417
+11
+7255.945
+21
+-5.447891378469739e-13
+31
+-319.3607133552417
+12
+7309.291562499999
+22
+-5.621823129632955e-13
+32
+-570.0227836677417
+13
+7309.291562499999
+23
+-5.621823129632955e-13
+33
+-570.0227836677417
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+7311.6015625
+20
+-4.053006194548736e-13
+30
+1690.8806928947583
+11
+7305.249062499999
+21
+-4.141027093711863e-13
+31
+1564.0292085197584
+12
+7258.850546874999
+22
+-3.9946449197515037e-13
+32
+1774.9881538322584
+13
+7258.850546874999
+23
+-3.9946449197515037e-13
+33
+1774.9881538322584
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+7305.249062499999
+20
+-4.141027093711863e-13
+30
+1564.0292085197584
+11
+7311.6015625
+21
+-4.053006194548736e-13
+31
+1690.8806928947583
+12
+7441.9
+22
+-4.0808938801990834e-13
+32
+1650.6903022697584
+13
+7441.9
+23
+-4.0808938801990834e-13
+33
+1650.6903022697584
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+5899.704296874999
+20
+-4.0569570543703274e-13
+30
+1685.1869038322584
+11
+5653.743437499999
+21
+-5.620602182461465e-13
+31
+-568.2632133552418
+12
+5584.010312499999
+22
+-5.562115682313309e-13
+32
+-483.9752836677417
+13
+5584.010312499999
+23
+-5.562115682313309e-13
+33
+-483.9752836677417
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+5653.743437499999
+20
+-5.620602182461465e-13
+30
+-568.2632133552418
+11
+5899.704296874999
+21
+-4.0569570543703274e-13
+31
+1685.1869038322584
+12
+6595.1947656249995
+22
+-5.671907008734239e-13
+32
+-642.2012602302417
+13
+6595.1947656249995
+23
+-5.671907008734239e-13
+33
+-642.2012602302417
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+6595.1947656249995
+20
+-5.671907008734239e-13
+30
+-642.2012602302417
+11
+5899.704296874999
+21
+-4.0569570543703274e-13
+31
+1685.1869038322584
+12
+6668.086093749998
+22
+-5.624183627497836e-13
+32
+-573.4246196052417
+13
+6668.086093749998
+23
+-5.624183627497836e-13
+33
+-573.4246196052417
+70
+3
+ 0
+3DFACE
+ 8
+ship1
+10
+6668.086093749998
+20
+-5.624183627497836e-13
+30
+-573.4246196052417
+11
+5899.704296874999
+21
+-4.0569570543703274e-13
+31
+1685.1869038322584
+12
+7323.963671874999
+22
+-5.684341886080801e-13
+32
+-660.1218071052417
+13
+7323.963671874999
+23
+-5.684341886080801e-13
+33
+-660.1218071052417
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2406.984296874999
+20
+-4.400556633497865e-13
+30
+1190.0077241447584
+11
+2400.198671874999
+21
+-4.4558937160703303e-13
+31
+1110.2585835197583
+12
+1732.283828124999
+22
+-4.3997051011115963e-13
+32
+1191.2349116447583
+13
+1732.283828124999
+23
+-4.3997051011115963e-13
+33
+1191.2349116447583
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2496.695312499999
+20
+-4.0924647026242834e-13
+30
+1634.0149897697584
+11
+2442.771249999999
+21
+-4.251813961672625e-13
+31
+1404.3685053947584
+12
+2415.917499999999
+22
+-4.1426675458089433e-13
+32
+1561.6650678947585
+13
+2415.917499999999
+23
+-4.1426675458089433e-13
+33
+1561.6650678947585
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2400.198671874999
+20
+-4.4558937160703303e-13
+30
+1110.2585835197583
+11
+3557.310156249999
+21
+-4.2027131015760776e-13
+31
+1475.1303022697584
+12
+2291.2677343749992
+22
+-4.559004270019568e-13
+32
+961.6606147697582
+13
+2291.2677343749992
+23
+-4.559004270019568e-13
+33
+961.6606147697582
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+2400.198671874999
+21
+-4.4558937160703303e-13
+31
+1110.2585835197583
+12
+2406.984296874999
+22
+-4.400556633497865e-13
+32
+1190.0077241447584
+13
+2406.984296874999
+23
+-4.400556633497865e-13
+33
+1190.0077241447584
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+2406.984296874999
+21
+-4.400556633497865e-13
+31
+1190.0077241447584
+12
+2442.771249999999
+22
+-4.251813961672625e-13
+32
+1404.3685053947584
+13
+2442.771249999999
+23
+-4.251813961672625e-13
+33
+1404.3685053947584
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+2442.771249999999
+21
+-4.251813961672625e-13
+31
+1404.3685053947584
+12
+2496.695312499999
+22
+-4.0924647026242834e-13
+32
+1634.0149897697584
+13
+2496.695312499999
+23
+-4.0924647026242834e-13
+33
+1634.0149897697584
+70
+15
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+2496.695312499999
+21
+-4.0924647026242834e-13
+31
+1634.0149897697584
+12
+2509.671015624999
+22
+-3.949670234967839e-13
+32
+1839.8035053947583
+13
+2509.671015624999
+23
+-3.949670234967839e-13
+33
+1839.8035053947583
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+2509.671015624999
+21
+-3.949670234967839e-13
+31
+1839.8035053947583
+12
+2658.178749999999
+22
+-3.931017918947997e-13
+32
+1866.6843257072583
+13
+2658.178749999999
+23
+-3.931017918947997e-13
+33
+1866.6843257072583
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+2658.178749999999
+21
+-3.931017918947997e-13
+31
+1866.6843257072583
+12
+3148.855234374999
+22
+-3.95514884407068e-13
+32
+1831.9079975822583
+13
+3148.855234374999
+23
+-3.95514884407068e-13
+33
+1831.9079975822583
+70
+13
+ 0
+3DFACE
+ 8
+ship1
+10
+3557.310156249999
+20
+-4.2027131015760776e-13
+30
+1475.1303022697584
+11
+3148.855234374999
+21
+-3.95514884407068e-13
+31
+1831.9079975822583
+12
+3376.498515624999
+22
+-3.999509924634825e-13
+32
+1767.9769428947584
+13
+3376.498515624999
+23
+-3.999509924634825e-13
+33
+1767.9769428947584
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+5024.539140624999
+20
+-5.526720736875186e-13
+30
+-432.9657914802417
+11
+4238.5075
+21
+-5.560130860501194e-13
+31
+-481.1148539802417
+12
+4317.01140625
+22
+-4.173328972982214e-13
+32
+1517.4772944572583
+13
+4317.01140625
+23
+-4.173328972982214e-13
+33
+1517.4772944572583
+70
+0
+ 0
+3DFACE
+ 8
+ship1
+10
+2971.234179687499
+20
+-2.465915231422641e-13
+30
+3978.1198193388427
+11
+2942.859179687499
+21
+-3.0020148693299397e-13
+31
+3205.5188178947583
+12
+2942.859179687499
+22
+-2.465915231422641e-13
+32
+3978.1198193388427
+13
+2942.859179687499
+23
+-2.465915231422641e-13
+33
+3978.1198193388427
+70
+1
+ 0
+3DFACE
+ 8
+ship1
+10
+2942.859179687499
+20
+-3.0020148693299397e-13
+30
+3205.5188178947583
+11
+2971.234179687499
+21
+-2.465915231422641e-13
+31
+3978.1198193388427
+12
+2971.234179687499
+22
+-3.035764911226861e-13
+32
+3156.8798815393284
+13
+2971.234179687499
+23
+-3.035764911226861e-13
+33
+3156.8798815393284
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+1457.96484375
+20
+9.113482809120638e-13
+30
+-805.9081714760168
+11
+122.25
+21
+9.132018600511993e-13
+31
+-779.1952808510168
+12
+72.421875
+22
+1.0071948700410283e-12
+32
+575.3867503989832
+13
+72.421875
+23
+1.0071948700410283e-12
+33
+575.3867503989832
+70
+0
+ 0
+3DFACE
+ 8
+ship7
+10
+5308.705078125
+20
+1.061115767735793e-12
+30
+1352.4687816489832
+11
+5280.205078125
+21
+1.050872496660693e-12
+31
+1204.8476878989832
+12
+5265.626953125
+22
+1.0582542871520606e-12
+32
+1311.2305003989832
+13
+5265.626953125
+23
+1.0582542871520606e-12
+33
+1311.2305003989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5701.845703125
+20
+1.0816307701930206e-12
+30
+1648.1211253989832
+11
+5308.705078125
+21
+1.0772966720085098e-12
+31
+1585.6601878989832
+12
+5275.845703125
+22
+1.0817885216091172e-12
+32
+1650.3945628989832
+13
+5275.845703125
+23
+1.0817885216091172e-12
+33
+1650.3945628989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5308.705078125
+20
+1.0772966720085098e-12
+30
+1585.6601878989832
+11
+5701.845703125
+21
+1.0816307701930206e-12
+31
+1648.1211253989832
+12
+5308.705078125
+22
+1.061115767735793e-12
+32
+1352.4687816489832
+13
+5308.705078125
+23
+1.061115767735793e-12
+33
+1352.4687816489832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+5308.705078125
+20
+1.061115767735793e-12
+30
+1352.4687816489832
+11
+5701.845703125
+21
+1.0816307701930206e-12
+31
+1648.1211253989832
+12
+5606.642578125
+22
+1.0167916855707837e-12
+32
+713.6914378989832
+13
+5606.642578125
+23
+1.0167916855707837e-12
+33
+713.6914378989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+5606.642578125
+20
+1.0167916855707837e-12
+30
+713.6914378989832
+11
+5701.845703125
+21
+1.0816307701930206e-12
+31
+1648.1211253989832
+12
+5706.134765625
+22
+1.080834694747873e-12
+32
+1636.6484691489832
+13
+5706.134765625
+23
+1.080834694747873e-12
+33
+1636.6484691489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5200.892578125
+20
+1.0141310534395043e-12
+30
+675.3476878989832
+11
+5606.642578125
+21
+1.0167916855707837e-12
+31
+713.6914378989832
+12
+5099.056640625
+22
+9.979013600690256e-13
+32
+441.45315664898317
+13
+5099.056640625
+23
+9.979013600690256e-13
+33
+441.45315664898317
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5606.642578125
+20
+1.0167916855707837e-12
+30
+713.6914378989832
+11
+5200.892578125
+21
+1.0141310534395043e-12
+31
+675.3476878989832
+12
+5280.205078125
+22
+1.050872496660693e-12
+32
+1204.8476878989832
+13
+5280.205078125
+23
+1.050872496660693e-12
+33
+1204.8476878989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+5606.642578125
+20
+1.0167916855707837e-12
+30
+713.6914378989832
+11
+5280.205078125
+21
+1.050872496660693e-12
+31
+1204.8476878989832
+12
+5308.705078125
+22
+1.061115767735793e-12
+32
+1352.4687816489832
+13
+5308.705078125
+23
+1.061115767735793e-12
+33
+1352.4687816489832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+1032.29296875
+20
+1.0168697481272027e-12
+30
+714.8164378989832
+11
+1124.26171875
+21
+1.0132252025243926e-12
+31
+662.2930003989832
+12
+998.296875
+22
+1.0134252378252162e-12
+32
+665.1758128989832
+13
+998.296875
+23
+1.0134252378252162e-12
+33
+665.1758128989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+1124.26171875
+20
+1.0132252025243926e-12
+30
+662.2930003989832
+11
+1032.29296875
+21
+1.0168697481272027e-12
+31
+714.8164378989832
+12
+1127.26171875
+22
+1.0179040769997538e-12
+32
+729.7226878989832
+13
+1127.26171875
+23
+1.0179040769997538e-12
+33
+729.7226878989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2429.91796875
+20
+1.0132252025243926e-12
+30
+662.2930003989832
+11
+2793.6796875
+21
+9.094947017729282e-13
+31
+-832.6210621010168
+12
+1457.96484375
+22
+9.113482809120638e-13
+32
+-805.9081714760168
+13
+1457.96484375
+23
+9.113482809120638e-13
+33
+-805.9081714760168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2793.6796875
+20
+9.094947017729282e-13
+30
+-832.6210621010168
+11
+2429.91796875
+21
+1.0132252025243926e-12
+31
+662.2930003989832
+12
+2691.52734375
+22
+1.0220755448583918e-12
+32
+789.8398753989832
+13
+2691.52734375
+23
+1.0220755448583918e-12
+33
+789.8398753989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2793.6796875
+20
+9.094947017729282e-13
+30
+-832.6210621010168
+11
+2691.52734375
+21
+1.0220755448583918e-12
+31
+789.8398753989832
+12
+2713.41796875
+22
+1.038795568661377e-12
+32
+1030.8008128989832
+13
+2713.41796875
+23
+1.038795568661377e-12
+33
+1030.8008128989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2793.6796875
+20
+9.094947017729282e-13
+30
+-832.6210621010168
+11
+2713.41796875
+21
+1.038795568661377e-12
+31
+1030.8008128989832
+12
+2824.62890625
+22
+1.0451657985258156e-12
+32
+1122.6055003989832
+13
+2824.62890625
+23
+1.0451657985258156e-12
+33
+1122.6055003989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2793.6796875
+20
+9.094947017729282e-13
+30
+-832.6210621010168
+11
+2824.62890625
+21
+1.0451657985258156e-12
+31
+1122.6055003989832
+12
+3198.515625
+22
+9.133213933407158e-13
+32
+-777.4726246010168
+13
+3198.515625
+23
+9.133213933407158e-13
+33
+-777.4726246010168
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+2824.62890625
+21
+1.0451657985258156e-12
+31
+1122.6055003989832
+12
+2947.76953125
+22
+1.0478784723613743e-12
+32
+1161.6992503989832
+13
+2947.76953125
+23
+1.0478784723613743e-12
+33
+1161.6992503989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+2947.76953125
+21
+1.0478784723613743e-12
+31
+1161.6992503989832
+12
+2977.2421875
+22
+1.0452780134506678e-12
+32
+1124.2226878989832
+13
+2977.2421875
+23
+1.0452780134506678e-12
+33
+1124.2226878989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+2977.2421875
+21
+1.0452780134506678e-12
+31
+1124.2226878989832
+12
+3034.59375
+22
+1.0467921017845438e-12
+32
+1146.0430003989832
+13
+3034.59375
+23
+1.0467921017845438e-12
+33
+1146.0430003989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+3034.59375
+21
+1.0467921017845438e-12
+31
+1146.0430003989832
+12
+3095.28515625
+22
+1.0498934620989386e-12
+32
+1190.7383128989832
+13
+3095.28515625
+23
+1.0498934620989386e-12
+33
+1190.7383128989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+3095.28515625
+21
+1.0498934620989386e-12
+31
+1190.7383128989832
+12
+3134.94140625
+22
+1.0495161597429137e-12
+32
+1185.3008128989832
+13
+3134.94140625
+23
+1.0495161597429137e-12
+33
+1185.3008128989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+3134.94140625
+21
+1.0495161597429137e-12
+31
+1185.3008128989832
+12
+3159.59765625
+22
+1.0608466145464734e-12
+32
+1348.5898753989832
+13
+3159.59765625
+23
+1.0608466145464734e-12
+33
+1348.5898753989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+3159.59765625
+21
+1.0608466145464734e-12
+31
+1348.5898753989832
+12
+3220.4765625
+22
+1.0490445317978825e-12
+32
+1178.5039378989832
+13
+3220.4765625
+23
+1.0490445317978825e-12
+33
+1178.5039378989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3198.515625
+20
+9.133213933407158e-13
+30
+-777.4726246010168
+11
+3220.4765625
+21
+1.0490445317978825e-12
+31
+1178.5039378989832
+12
+3660.609375
+22
+1.0492917298932092e-12
+32
+1182.0664378989832
+13
+3660.609375
+23
+1.0492917298932092e-12
+33
+1182.0664378989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+3660.609375
+20
+1.0492917298932092e-12
+30
+1182.0664378989832
+11
+3220.4765625
+21
+1.0490445317978825e-12
+31
+1178.5039378989832
+12
+3570.0703125
+22
+1.0510765977196634e-12
+32
+1207.7890941489832
+13
+3570.0703125
+23
+1.0510765977196634e-12
+33
+1207.7890941489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+81.99609375
+20
+1.012002222473829e-12
+30
+644.6680003989832
+11
+6.0703125
+21
+1.0074835388694525e-12
+31
+579.5469066489832
+12
+0.0
+22
+1.0083056351667397e-12
+32
+591.3945628989832
+13
+0.0
+23
+1.0083056351667397e-12
+33
+591.3945628989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6.0703125
+20
+1.0074835388694525e-12
+30
+579.5469066489832
+11
+81.99609375
+21
+1.012002222473829e-12
+31
+644.6680003989832
+12
+72.421875
+22
+1.0071948700410283e-12
+32
+575.3867503989832
+13
+72.421875
+23
+1.0071948700410283e-12
+33
+575.3867503989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+72.421875
+20
+1.0071948700410283e-12
+30
+575.3867503989832
+11
+81.99609375
+21
+1.012002222473829e-12
+31
+644.6680003989832
+12
+1457.96484375
+22
+9.113482809120638e-13
+32
+-805.9081714760168
+13
+1457.96484375
+23
+9.113482809120638e-13
+33
+-805.9081714760168
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+1457.96484375
+20
+9.113482809120638e-13
+30
+-805.9081714760168
+11
+81.99609375
+21
+1.012002222473829e-12
+31
+644.6680003989832
+12
+351.73828125
+22
+1.010780868726524e-12
+32
+627.0664378989832
+13
+351.73828125
+23
+1.010780868726524e-12
+33
+627.0664378989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+1457.96484375
+20
+9.113482809120638e-13
+30
+-805.9081714760168
+11
+351.73828125
+21
+1.010780868726524e-12
+31
+627.0664378989832
+12
+736.0078125
+22
+1.0116509409699437e-12
+32
+639.6055003989832
+13
+736.0078125
+23
+1.0116509409699437e-12
+33
+639.6055003989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+1457.96484375
+20
+9.113482809120638e-13
+30
+-805.9081714760168
+11
+736.0078125
+21
+1.0116509409699437e-12
+31
+639.6055003989832
+12
+825.09375
+22
+1.0134252378252162e-12
+32
+665.1758128989832
+13
+825.09375
+23
+1.0134252378252162e-12
+33
+665.1758128989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+1457.96484375
+20
+9.113482809120638e-13
+30
+-805.9081714760168
+11
+825.09375
+21
+1.0134252378252162e-12
+31
+665.1758128989832
+12
+998.296875
+22
+1.0134252378252162e-12
+32
+665.1758128989832
+13
+998.296875
+23
+1.0134252378252162e-12
+33
+665.1758128989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+1457.96484375
+20
+9.113482809120638e-13
+30
+-805.9081714760168
+11
+998.296875
+21
+1.0134252378252162e-12
+31
+665.1758128989832
+12
+1124.26171875
+22
+1.0132252025243926e-12
+32
+662.2930003989832
+13
+1124.26171875
+23
+1.0132252025243926e-12
+33
+662.2930003989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+1457.96484375
+20
+9.113482809120638e-13
+30
+-805.9081714760168
+11
+1124.26171875
+21
+1.0132252025243926e-12
+31
+662.2930003989832
+12
+2429.91796875
+22
+1.0132252025243926e-12
+32
+662.2930003989832
+13
+2429.91796875
+23
+1.0132252025243926e-12
+33
+662.2930003989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2456.23828125
+20
+1.0261567528861704e-12
+30
+848.6562816489832
+11
+2429.91796875
+21
+1.0132252025243926e-12
+31
+662.2930003989832
+12
+2400.515625
+22
+1.0255208683120076e-12
+32
+839.4922191489832
+13
+2400.515625
+23
+1.0255208683120076e-12
+33
+839.4922191489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2429.91796875
+20
+1.0132252025243926e-12
+30
+662.2930003989832
+11
+2456.23828125
+21
+1.0261567528861704e-12
+31
+848.6562816489832
+12
+2481.15234375
+22
+1.0220755448583918e-12
+32
+789.8398753989832
+13
+2481.15234375
+23
+1.0220755448583918e-12
+33
+789.8398753989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2429.91796875
+20
+1.0132252025243926e-12
+30
+662.2930003989832
+11
+2481.15234375
+21
+1.0220755448583918e-12
+31
+789.8398753989832
+12
+2691.52734375
+22
+1.0220755448583918e-12
+32
+789.8398753989832
+13
+2691.52734375
+23
+1.0220755448583918e-12
+33
+789.8398753989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2093.98828125
+20
+1.1038054151257803e-12
+30
+1967.6914378989832
+11
+2659.5234375
+21
+1.028806814046268e-12
+31
+886.8476878989832
+12
+2093.9765625
+22
+1.1009057164154679e-12
+32
+1925.9023753989832
+13
+2093.9765625
+23
+1.1009057164154679e-12
+33
+1925.9023753989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2659.5234375
+20
+1.028806814046268e-12
+30
+886.8476878989832
+11
+2093.98828125
+21
+1.1038054151257803e-12
+31
+1967.6914378989832
+12
+2693.37890625
+22
+1.0326993708960341e-12
+32
+942.9453441489832
+13
+2693.37890625
+23
+1.0326993708960341e-12
+33
+942.9453441489832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2659.5234375
+20
+1.028806814046268e-12
+30
+886.8476878989832
+11
+2693.37890625
+21
+1.0326993708960341e-12
+31
+942.9453441489832
+12
+2691.52734375
+22
+1.0220755448583918e-12
+32
+789.8398753989832
+13
+2691.52734375
+23
+1.0220755448583918e-12
+33
+789.8398753989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2691.52734375
+20
+1.0220755448583918e-12
+30
+789.8398753989832
+11
+2693.37890625
+21
+1.0326993708960341e-12
+31
+942.9453441489832
+12
+2713.41796875
+22
+1.038795568661377e-12
+32
+1030.8008128989832
+13
+2713.41796875
+23
+1.038795568661377e-12
+33
+1030.8008128989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2713.41796875
+20
+1.038795568661377e-12
+30
+1030.8008128989832
+11
+2693.37890625
+21
+1.0326993708960341e-12
+31
+942.9453441489832
+12
+2701.3828125
+22
+1.0389232334671872e-12
+32
+1032.6406566489832
+13
+2701.3828125
+23
+1.0389232334671872e-12
+33
+1032.6406566489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2837.82421875
+20
+1.1214869907304886e-12
+30
+2222.509797273983
+11
+2826.08203125
+21
+1.1157689084728e-12
+31
+2140.103547273983
+12
+2794.58203125
+22
+1.121646368449844e-12
+32
+2224.806672273983
+13
+2794.58203125
+23
+1.121646368449844e-12
+33
+2224.806672273983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2824.62890625
+20
+1.0451657985258156e-12
+30
+1122.6055003989832
+11
+2713.41796875
+21
+1.038795568661377e-12
+31
+1030.8008128989832
+12
+2802.17578125
+22
+1.0923302193321938e-12
+32
+1802.3164378989832
+13
+2802.17578125
+23
+1.0923302193321938e-12
+33
+1802.3164378989832
+70
+12
+ 0
+3DFACE
+ 8
+ship7
+10
+2908.51171875
+20
+1.1679411235886172e-12
+30
+2891.984406648983
+11
+2889.24609375
+21
+1.1446630318948103e-12
+31
+2556.511750398983
+12
+2812.60546875
+22
+1.1631915049215014e-12
+32
+2823.535187898983
+13
+2812.60546875
+23
+1.1631915049215014e-12
+33
+2823.535187898983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2949.85546875
+20
+1.2016547967178687e-12
+30
+3377.849641023983
+11
+2685.99609375
+21
+1.1947210527742808e-12
+31
+3277.923859773983
+12
+2679.4453125
+22
+1.1962172517723108e-12
+32
+3299.486359773983
+13
+2679.4453125
+23
+1.1962172517723108e-12
+33
+3299.486359773983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2685.99609375
+20
+1.1947210527742808e-12
+30
+3277.923859773983
+11
+2949.85546875
+21
+1.2016547967178687e-12
+31
+3377.849641023983
+12
+2945.40234375
+22
+1.1991897275534513e-12
+32
+3342.324250398983
+13
+2945.40234375
+23
+1.1991897275534513e-12
+33
+3342.324250398983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2798.89453125
+20
+1.0957568402983342e-12
+30
+1851.6992503989832
+11
+2281.8515625
+21
+1.0894484099577273e-12
+31
+1760.7851878989832
+12
+2279.5078125
+22
+1.0912243331162585e-12
+32
+1786.3789378989832
+13
+2279.5078125
+23
+1.0912243331162585e-12
+33
+1786.3789378989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2281.8515625
+20
+1.0894484099577273e-12
+30
+1760.7851878989832
+11
+2798.89453125
+21
+1.0957568402983342e-12
+31
+1851.6992503989832
+12
+2802.17578125
+22
+1.0923302193321938e-12
+32
+1802.3164378989832
+13
+2802.17578125
+23
+1.0923302193321938e-12
+33
+1802.3164378989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2802.17578125
+20
+1.0923302193321938e-12
+30
+1802.3164378989832
+11
+2798.89453125
+21
+1.0957568402983342e-12
+31
+1851.6992503989832
+12
+2826.08203125
+22
+1.1157689084728e-12
+32
+2140.103547273983
+13
+2826.08203125
+23
+1.1157689084728e-12
+33
+2140.103547273983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2802.17578125
+20
+1.0923302193321938e-12
+30
+1802.3164378989832
+11
+2826.08203125
+21
+1.1157689084728e-12
+31
+2140.103547273983
+12
+2824.62890625
+22
+1.0451657985258156e-12
+32
+1122.6055003989832
+13
+2824.62890625
+23
+1.0451657985258156e-12
+33
+1122.6055003989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+2824.62890625
+20
+1.0451657985258156e-12
+30
+1122.6055003989832
+11
+2826.08203125
+21
+1.1157689084728e-12
+31
+2140.103547273983
+12
+2876.671875
+22
+1.093938633255076e-12
+32
+1825.4961253989832
+13
+2876.671875
+23
+1.093938633255076e-12
+33
+1825.4961253989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2876.671875
+20
+1.093938633255076e-12
+30
+1825.4961253989832
+11
+2826.08203125
+21
+1.1157689084728e-12
+31
+2140.103547273983
+12
+2837.82421875
+22
+1.1214869907304886e-12
+32
+2222.509797273983
+13
+2837.82421875
+23
+1.1214869907304886e-12
+33
+2222.509797273983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+2876.671875
+20
+1.093938633255076e-12
+30
+1825.4961253989832
+11
+2837.82421875
+21
+1.1214869907304886e-12
+31
+2222.509797273983
+12
+2889.24609375
+22
+1.1446630318948103e-12
+32
+2556.511750398983
+13
+2889.24609375
+23
+1.1446630318948103e-12
+33
+2556.511750398983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2876.671875
+20
+1.093938633255076e-12
+30
+1825.4961253989832
+11
+2889.24609375
+21
+1.1446630318948103e-12
+31
+2556.511750398983
+12
+2883.10546875
+22
+1.0966822068525506e-12
+32
+1865.0351878989832
+13
+2883.10546875
+23
+1.0966822068525506e-12
+33
+1865.0351878989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+2883.10546875
+20
+1.0966822068525506e-12
+30
+1865.0351878989832
+11
+2889.24609375
+21
+1.1446630318948103e-12
+31
+2556.511750398983
+12
+2920.72265625
+22
+1.1297990266858488e-12
+32
+2342.298859773983
+13
+2920.72265625
+23
+1.1297990266858488e-12
+33
+2342.298859773983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2920.72265625
+20
+1.1297990266858488e-12
+30
+2342.298859773983
+11
+2889.24609375
+21
+1.1446630318948103e-12
+31
+2556.511750398983
+12
+2918.21484375
+22
+1.133546842545588e-12
+32
+2396.310578523983
+13
+2918.21484375
+23
+1.133546842545588e-12
+33
+2396.310578523983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+2918.21484375
+20
+1.133546842545588e-12
+30
+2396.310578523983
+11
+2889.24609375
+21
+1.1446630318948103e-12
+31
+2556.511750398983
+12
+2908.51171875
+22
+1.1679411235886172e-12
+32
+2891.984406648983
+13
+2908.51171875
+23
+1.1679411235886172e-12
+33
+2891.984406648983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+2920.72265625
+20
+1.1297990266858488e-12
+30
+2342.298859773983
+11
+2918.21484375
+21
+1.133546842545588e-12
+31
+2396.310578523983
+12
+3410.0859375
+22
+1.1365957545798888e-12
+32
+2440.250031648983
+13
+3410.0859375
+23
+1.1365957545798888e-12
+33
+2440.250031648983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2920.72265625
+20
+1.1297990266858488e-12
+30
+2342.298859773983
+11
+3410.0859375
+21
+1.1365957545798888e-12
+31
+2440.250031648983
+12
+3870.99609375
+22
+1.138828262378308e-12
+32
+2472.423859773983
+13
+3870.99609375
+23
+1.138828262378308e-12
+33
+2472.423859773983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+3870.99609375
+20
+1.138828262378308e-12
+30
+2472.423859773983
+11
+3410.0859375
+21
+1.1365957545798888e-12
+31
+2440.250031648983
+12
+3481.88671875
+22
+1.1389148630268353e-12
+32
+2473.671906648983
+13
+3481.88671875
+23
+1.1389148630268353e-12
+33
+2473.671906648983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+3481.88671875
+20
+1.1389148630268353e-12
+30
+2473.671906648983
+11
+3410.0859375
+21
+1.1365957545798888e-12
+31
+2440.250031648983
+12
+3422.56640625
+22
+1.1409745761040146e-12
+32
+2503.355500398983
+13
+3422.56640625
+23
+1.1409745761040146e-12
+33
+2503.355500398983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3481.88671875
+20
+1.1389148630268353e-12
+30
+2473.671906648983
+11
+3422.56640625
+21
+1.1409745761040146e-12
+31
+2503.355500398983
+12
+3473.91796875
+22
+1.1430107077839424e-12
+32
+2532.699250398983
+13
+3473.91796875
+23
+1.1430107077839424e-12
+33
+2532.699250398983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3870.99609375
+20
+1.138828262378308e-12
+30
+2472.423859773983
+11
+3481.88671875
+21
+1.1389148630268353e-12
+31
+2473.671906648983
+12
+3925.3359375
+22
+1.1417576411230923e-12
+32
+2514.640656648983
+13
+3925.3359375
+23
+1.1417576411230923e-12
+33
+2514.640656648983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3870.99609375
+20
+1.138828262378308e-12
+30
+2472.423859773983
+11
+3925.3359375
+21
+1.1417576411230923e-12
+31
+2514.640656648983
+12
+3931.453125
+22
+1.1404521261821482e-12
+32
+2495.826203523983
+13
+3931.453125
+23
+1.1404521261821482e-12
+33
+2495.826203523983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2945.40234375
+20
+1.1991897275534513e-12
+30
+3342.324250398983
+11
+2918.21484375
+21
+1.133546842545588e-12
+31
+2396.310578523983
+12
+2908.51171875
+22
+1.1679411235886172e-12
+32
+2891.984406648983
+13
+2908.51171875
+23
+1.1679411235886172e-12
+33
+2891.984406648983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2918.21484375
+20
+1.133546842545588e-12
+30
+2396.310578523983
+11
+2945.40234375
+21
+1.1991897275534513e-12
+31
+3342.324250398983
+12
+2954.68359375
+22
+1.1782787202527234e-12
+32
+3040.964875398983
+13
+2954.68359375
+23
+1.1782787202527234e-12
+33
+3040.964875398983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+2954.68359375
+20
+1.1782787202527234e-12
+30
+3040.964875398983
+11
+2945.40234375
+21
+1.1991897275534513e-12
+31
+3342.324250398983
+12
+2949.85546875
+22
+1.2016547967178687e-12
+32
+3377.849641023983
+13
+2949.85546875
+23
+1.2016547967178687e-12
+33
+3377.849641023983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+2954.68359375
+20
+1.1782787202527234e-12
+30
+3040.964875398983
+11
+2949.85546875
+21
+1.2016547967178687e-12
+31
+3377.849641023983
+12
+2969.6015625
+22
+1.2111946916335686e-12
+32
+3515.334016023983
+13
+2969.6015625
+23
+1.2111946916335686e-12
+33
+3515.334016023983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2954.68359375
+20
+1.1782787202527234e-12
+30
+3040.964875398983
+11
+2969.6015625
+21
+1.2111946916335686e-12
+31
+3515.334016023983
+12
+2964.9375
+22
+1.1990437668359805e-12
+32
+3340.220734773983
+13
+2964.9375
+23
+1.1990437668359805e-12
+33
+3340.220734773983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+2964.9375
+20
+1.1990437668359805e-12
+30
+3340.220734773983
+11
+2969.6015625
+21
+1.2111946916335686e-12
+31
+3515.334016023983
+12
+2991.8203125
+22
+1.2023447558753841e-12
+32
+3387.793000398983
+13
+2991.8203125
+23
+1.2023447558753841e-12
+33
+3387.793000398983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+2964.9375
+20
+1.1990437668359805e-12
+30
+3340.220734773983
+11
+2991.8203125
+21
+1.2023447558753841e-12
+31
+3387.793000398983
+12
+3261.1875
+22
+1.2049911578531497e-12
+32
+3425.931672273983
+13
+3261.1875
+23
+1.2049911578531497e-12
+33
+3425.931672273983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+3261.1875
+20
+1.2049911578531497e-12
+30
+3425.931672273983
+11
+2991.8203125
+21
+1.2023447558753841e-12
+31
+3387.793000398983
+12
+3254.296875
+22
+1.2066369767509827e-12
+32
+3449.650422273983
+13
+3254.296875
+23
+1.2066369767509827e-12
+33
+3449.650422273983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2981.61328125
+20
+1.1866980922231596e-12
+30
+3162.300812898983
+11
+2954.68359375
+21
+1.1782787202527234e-12
+31
+3040.964875398983
+12
+2964.9375
+22
+1.1990437668359805e-12
+32
+3340.220734773983
+13
+2964.9375
+23
+1.1990437668359805e-12
+33
+3340.220734773983
+70
+2
+ 0
+3DFACE
+ 8
+ship7
+10
+3292.78125
+20
+1.1147658859379794e-12
+30
+2125.648469148983
+11
+3335.2734375
+21
+1.1005536217599532e-12
+31
+1920.8281566489832
+12
+3243.9609375
+22
+1.1116389113472597e-12
+32
+2080.584016023983
+13
+3243.9609375
+23
+1.1116389113472597e-12
+33
+2080.584016023983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3335.2734375
+20
+1.1005536217599532e-12
+30
+1920.8281566489832
+11
+3292.78125
+21
+1.1147658859379794e-12
+31
+2125.648469148983
+12
+3733.46484375
+22
+1.0558595556035832e-12
+32
+1276.7187816489832
+13
+3733.46484375
+23
+1.0558595556035832e-12
+33
+1276.7187816489832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3335.2734375
+20
+1.1005536217599532e-12
+30
+1920.8281566489832
+11
+3733.46484375
+21
+1.0558595556035832e-12
+31
+1276.7187816489832
+12
+3356.765625
+22
+1.097888923870527e-12
+32
+1882.4258128989832
+13
+3356.765625
+23
+1.097888923870527e-12
+33
+1882.4258128989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+3356.765625
+20
+1.097888923870527e-12
+30
+1882.4258128989832
+11
+3733.46484375
+21
+1.0558595556035832e-12
+31
+1276.7187816489832
+12
+3675.9609375
+22
+1.0549854176020168e-12
+32
+1264.1211253989832
+13
+3675.9609375
+23
+1.0549854176020168e-12
+33
+1264.1211253989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+2883.10546875
+20
+1.0966822068525506e-12
+30
+1865.0351878989832
+11
+3356.765625
+21
+1.097888923870527e-12
+31
+1882.4258128989832
+12
+2876.671875
+22
+1.093938633255076e-12
+32
+1825.4961253989832
+13
+2876.671875
+23
+1.093938633255076e-12
+33
+1825.4961253989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3356.765625
+20
+1.097888923870527e-12
+30
+1882.4258128989832
+11
+2883.10546875
+21
+1.0966822068525506e-12
+31
+1865.0351878989832
+12
+3335.2734375
+22
+1.1005536217599532e-12
+32
+1920.8281566489832
+13
+3335.2734375
+23
+1.1005536217599532e-12
+33
+1920.8281566489832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+3084.31640625
+20
+1.0679779543359968e-12
+30
+1451.3633128989832
+11
+3095.28515625
+21
+1.0498934620989386e-12
+31
+1190.7383128989832
+12
+3034.59375
+22
+1.0467921017845438e-12
+32
+1146.0430003989832
+13
+3034.59375
+23
+1.0467921017845438e-12
+33
+1146.0430003989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3095.28515625
+20
+1.0498934620989386e-12
+30
+1190.7383128989832
+11
+3084.31640625
+21
+1.0679779543359968e-12
+31
+1451.3633128989832
+12
+3110.73046875
+22
+1.0677779190351733e-12
+32
+1448.4805003989832
+13
+3110.73046875
+23
+1.0677779190351733e-12
+33
+1448.4805003989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3982.5
+20
+1.1309077589324867e-12
+30
+2358.277375398983
+11
+3927.0234375
+21
+1.1196212143169126e-12
+31
+2195.621125398983
+12
+3911.84765625
+22
+1.1309077589324867e-12
+32
+2358.277375398983
+13
+3911.84765625
+23
+1.1309077589324867e-12
+33
+2358.277375398983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3989.61328125
+20
+1.1624198240252348e-12
+30
+2812.414094148983
+11
+4020.3984375
+21
+1.1447475996642642e-12
+31
+2557.730500398983
+12
+3971.61328125
+22
+1.1625954647771775e-12
+32
+2814.945344148983
+13
+3971.61328125
+23
+1.1625954647771775e-12
+33
+2814.945344148983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4020.3984375
+20
+1.1447475996642642e-12
+30
+2557.730500398983
+11
+3989.61328125
+21
+1.1624198240252348e-12
+31
+2812.414094148983
+12
+4040.47265625
+22
+1.1751757336350699e-12
+32
+2996.246125398983
+13
+4040.47265625
+23
+1.1751757336350699e-12
+33
+2996.246125398983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4143.24609375
+20
+1.1585187290833604e-12
+30
+2756.193391023983
+11
+4074.28125
+21
+1.1479737787537664e-12
+31
+2604.224641023983
+12
+4065.73828125
+22
+1.161176515183937e-12
+32
+2794.496125398983
+13
+4065.73828125
+23
+1.161176515183937e-12
+33
+2794.496125398983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4074.28125
+20
+1.1479737787537664e-12
+30
+2604.224641023983
+11
+4143.24609375
+21
+1.1585187290833604e-12
+31
+2756.193391023983
+12
+4509.978515625
+22
+1.1487381412853687e-12
+32
+2615.240266023983
+13
+4509.978515625
+23
+1.1487381412853687e-12
+33
+2615.240266023983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4509.978515625
+20
+1.1487381412853687e-12
+30
+2615.240266023983
+11
+4143.24609375
+21
+1.1585187290833604e-12
+31
+2756.193391023983
+12
+4442.970703125
+22
+1.1539532892602955e-12
+32
+2690.398469148983
+13
+4442.970703125
+23
+1.1539532892602955e-12
+33
+2690.398469148983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4062.01171875
+20
+1.1877958469228012e-12
+30
+3178.121125398983
+11
+4040.47265625
+21
+1.1751757336350699e-12
+31
+2996.246125398983
+12
+3999.8203125
+22
+1.1883699319731322e-12
+32
+3186.394562898983
+13
+3999.8203125
+23
+1.1883699319731322e-12
+33
+3186.394562898983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4040.47265625
+20
+1.1751757336350699e-12
+30
+2996.246125398983
+11
+4062.01171875
+21
+1.1877958469228012e-12
+31
+3178.121125398983
+12
+4061.35546875
+22
+1.1326096852927459e-12
+32
+2382.804719148983
+13
+4061.35546875
+23
+1.1326096852927459e-12
+33
+2382.804719148983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4061.35546875
+20
+1.1326096852927459e-12
+30
+2382.804719148983
+11
+4062.01171875
+21
+1.1877958469228012e-12
+31
+3178.121125398983
+12
+4065.73828125
+22
+1.161176515183937e-12
+32
+2794.496125398983
+13
+4065.73828125
+23
+1.161176515183937e-12
+33
+2794.496125398983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4061.35546875
+20
+1.1326096852927459e-12
+30
+2382.804719148983
+11
+4065.73828125
+21
+1.161176515183937e-12
+31
+2794.496125398983
+12
+4074.28125
+22
+1.1479737787537664e-12
+32
+2604.224641023983
+13
+4074.28125
+23
+1.1479737787537664e-12
+33
+2604.224641023983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4061.35546875
+20
+1.1326096852927459e-12
+30
+2382.804719148983
+11
+4074.28125
+21
+1.1479737787537664e-12
+31
+2604.224641023983
+12
+4148.02734375
+22
+1.1334110462234842e-12
+32
+2394.353547273983
+13
+4148.02734375
+23
+1.1334110462234842e-12
+33
+2394.353547273983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4148.02734375
+20
+1.1334110462234842e-12
+30
+2394.353547273983
+11
+4074.28125
+21
+1.1479737787537664e-12
+31
+2604.224641023983
+12
+4130.30859375
+22
+1.1413400877614138e-12
+32
+2508.623078523983
+13
+4130.30859375
+23
+1.1413400877614138e-12
+33
+2508.623078523983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4020.3984375
+20
+1.1447475996642642e-12
+30
+2557.730500398983
+11
+3982.5
+21
+1.1309077589324867e-12
+31
+2358.277375398983
+12
+3957.515625
+22
+1.1426228344567357e-12
+32
+2527.109406648983
+13
+3957.515625
+23
+1.1426228344567357e-12
+33
+2527.109406648983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3982.5
+20
+1.1309077589324867e-12
+30
+2358.277375398983
+11
+4020.3984375
+21
+1.1447475996642642e-12
+31
+2557.730500398983
+12
+3998.90625
+22
+1.0497731156577927e-12
+32
+1189.0039378989832
+13
+3998.90625
+23
+1.0497731156577927e-12
+33
+1189.0039378989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+3998.90625
+20
+1.0497731156577927e-12
+30
+1189.0039378989832
+11
+4020.3984375
+21
+1.1447475996642642e-12
+31
+2557.730500398983
+12
+4061.35546875
+22
+1.1326096852927459e-12
+32
+2382.804719148983
+13
+4061.35546875
+23
+1.1326096852927459e-12
+33
+2382.804719148983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4061.35546875
+20
+1.1326096852927459e-12
+30
+2382.804719148983
+11
+4020.3984375
+21
+1.1447475996642642e-12
+31
+2557.730500398983
+12
+4040.47265625
+22
+1.1751757336350699e-12
+32
+2996.246125398983
+13
+4040.47265625
+23
+1.1751757336350699e-12
+33
+2996.246125398983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+3927.0234375
+20
+1.1196212143169126e-12
+30
+2195.621125398983
+11
+3998.90625
+21
+1.0497731156577927e-12
+31
+1189.0039378989832
+12
+3892.72265625
+22
+1.0492022832139791e-12
+32
+1180.7773753989832
+13
+3892.72265625
+23
+1.0492022832139791e-12
+33
+1180.7773753989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3998.90625
+20
+1.0497731156577927e-12
+30
+1189.0039378989832
+11
+3927.0234375
+21
+1.1196212143169126e-12
+31
+2195.621125398983
+12
+3982.5
+22
+1.1309077589324867e-12
+32
+2358.277375398983
+13
+3982.5
+23
+1.1309077589324867e-12
+33
+2358.277375398983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4078.2421875
+20
+1.2153909606169022e-12
+30
+3575.808625398983
+11
+3778.67578125
+21
+1.2093057403985558e-12
+31
+3488.111359773983
+12
+3774.515625
+22
+1.2112142072726734e-12
+32
+3515.615266023983
+13
+3774.515625
+23
+1.2112142072726734e-12
+33
+3515.615266023983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3778.67578125
+20
+1.2093057403985558e-12
+30
+3488.111359773983
+11
+4078.2421875
+21
+1.2153909606169022e-12
+31
+3575.808625398983
+12
+4062.01171875
+22
+1.2119322201614019e-12
+32
+3525.962922273983
+13
+4062.01171875
+23
+1.2119322201614019e-12
+33
+3525.962922273983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4062.01171875
+20
+1.2119322201614019e-12
+30
+3525.962922273983
+11
+4078.2421875
+21
+1.2153909606169022e-12
+31
+3575.808625398983
+12
+4062.01171875
+22
+1.1877958469228012e-12
+32
+3178.121125398983
+13
+4062.01171875
+23
+1.1877958469228012e-12
+33
+3178.121125398983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4062.01171875
+20
+1.1877958469228012e-12
+30
+3178.121125398983
+11
+4078.2421875
+21
+1.2153909606169022e-12
+31
+3575.808625398983
+12
+4065.73828125
+22
+1.161176515183937e-12
+32
+2794.496125398983
+13
+4065.73828125
+23
+1.161176515183937e-12
+33
+2794.496125398983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4065.73828125
+20
+1.161176515183937e-12
+30
+2794.496125398983
+11
+4078.2421875
+21
+1.2153909606169022e-12
+31
+3575.808625398983
+12
+4083.08203125
+22
+1.1667360328738996e-12
+32
+2874.617219148983
+13
+4083.08203125
+23
+1.1667360328738996e-12
+33
+2874.617219148983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4083.08203125
+20
+1.1667360328738996e-12
+30
+2874.617219148983
+11
+4078.2421875
+21
+1.2153909606169022e-12
+31
+3575.808625398983
+12
+4103.49609375
+22
+1.2272097129738951e-12
+32
+3746.134797273983
+13
+4103.49609375
+23
+1.2272097129738951e-12
+33
+3746.134797273983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4083.08203125
+20
+1.1667360328738996e-12
+30
+2874.617219148983
+11
+4103.49609375
+21
+1.2272097129738951e-12
+31
+3746.134797273983
+12
+4102.11328125
+22
+1.2123607510700768e-12
+32
+3532.138703523983
+13
+4102.11328125
+23
+1.2123607510700768e-12
+33
+3532.138703523983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4102.11328125
+20
+1.2123607510700768e-12
+30
+3532.138703523983
+11
+4103.49609375
+21
+1.2272097129738951e-12
+31
+3746.134797273983
+12
+4117.58203125
+22
+1.2154881322366112e-12
+32
+3577.209016023983
+13
+4117.58203125
+23
+1.2154881322366112e-12
+33
+3577.209016023983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4102.11328125
+20
+1.2123607510700768e-12
+30
+3532.138703523983
+11
+4117.58203125
+21
+1.2154881322366112e-12
+31
+3577.209016023983
+12
+4423.095703125
+22
+1.216635489185644e-12
+32
+3593.744172273983
+13
+4423.095703125
+23
+1.216635489185644e-12
+33
+3593.744172273983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4117.58203125
+20
+1.2154881322366112e-12
+30
+3577.209016023983
+11
+4103.49609375
+21
+1.2272097129738951e-12
+31
+3746.134797273983
+12
+4117.58203125
+22
+1.2270991243523016e-12
+32
+3744.541047273983
+13
+4117.58203125
+23
+1.2270991243523016e-12
+33
+3744.541047273983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4423.095703125
+20
+1.216635489185644e-12
+30
+3593.744172273983
+11
+4117.58203125
+21
+1.2154881322366112e-12
+31
+3577.209016023983
+12
+4419.064453125
+22
+1.2181422591548557e-12
+32
+3615.459016023983
+13
+4419.064453125
+23
+1.2181422591548557e-12
+33
+3615.459016023983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4083.08203125
+20
+1.1667360328738996e-12
+30
+2874.617219148983
+11
+4104.85546875
+21
+1.1874486311770627e-12
+31
+3173.117219148983
+12
+4168.08984375
+22
+1.1691161276930484e-12
+32
+2908.918000398983
+13
+4168.08984375
+23
+1.1691161276930484e-12
+33
+2908.918000398983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4104.85546875
+20
+1.1874486311770627e-12
+30
+3173.117219148983
+11
+4083.08203125
+21
+1.1667360328738996e-12
+31
+2874.617219148983
+12
+4102.11328125
+22
+1.2123607510700768e-12
+32
+3532.138703523983
+13
+4102.11328125
+23
+1.2123607510700768e-12
+33
+3532.138703523983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4168.08984375
+20
+1.1691161276930484e-12
+30
+2908.918000398983
+11
+4104.85546875
+21
+1.1874486311770627e-12
+31
+3173.117219148983
+12
+4161.796875
+22
+1.1752737184064083e-12
+32
+2997.658234773983
+13
+4161.796875
+23
+1.1752737184064083e-12
+33
+2997.658234773983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+3998.90625
+20
+1.0497731156577927e-12
+30
+1189.0039378989832
+11
+4084.44140625
+21
+1.0542234945253026e-12
+31
+1253.1406566489832
+12
+4275.556640625
+22
+1.049112836534749e-12
+32
+1179.4883128989832
+13
+4275.556640625
+23
+1.049112836534749e-12
+33
+1179.4883128989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4084.44140625
+20
+1.0542234945253026e-12
+30
+1253.1406566489832
+11
+3998.90625
+21
+1.0497731156577927e-12
+31
+1189.0039378989832
+12
+4051.51171875
+22
+1.064320398307117e-12
+32
+1398.6523753989832
+13
+4051.51171875
+23
+1.064320398307117e-12
+33
+1398.6523753989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4084.44140625
+20
+1.0542234945253026e-12
+30
+1253.1406566489832
+11
+4051.51171875
+21
+1.064320398307117e-12
+31
+1398.6523753989832
+12
+4071.1171875
+22
+1.064206557079006e-12
+32
+1397.0117503989832
+13
+4071.1171875
+23
+1.064206557079006e-12
+33
+1397.0117503989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4275.556640625
+20
+1.049112836534749e-12
+30
+1179.4883128989832
+11
+4084.44140625
+21
+1.0542234945253026e-12
+31
+1253.1406566489832
+12
+4153.39453125
+22
+1.0586429736308967e-12
+32
+1316.8320628989832
+13
+4153.39453125
+23
+1.0586429736308967e-12
+33
+1316.8320628989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4275.556640625
+20
+1.049112836534749e-12
+30
+1179.4883128989832
+11
+4153.39453125
+21
+1.0586429736308967e-12
+31
+1316.8320628989832
+12
+4238.572265625
+22
+1.0566279838933323e-12
+32
+1287.7930003989832
+13
+4238.572265625
+23
+1.0566279838933323e-12
+33
+1287.7930003989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4478.806640625
+20
+1.0938443076660698e-12
+30
+1824.1367503989832
+11
+4471.166015625
+21
+1.0775178492516968e-12
+31
+1588.8476878989832
+12
+4436.736328125
+22
+1.0897078053274944e-12
+32
+1764.5234691489832
+13
+4436.736328125
+23
+1.0897078053274944e-12
+33
+1764.5234691489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4471.166015625
+20
+1.0775178492516968e-12
+30
+1588.8476878989832
+11
+4441.775390625
+21
+1.048029718564436e-12
+31
+1163.8789378989832
+12
+4440.626953125
+22
+1.0591324909117739e-12
+32
+1323.8867503989832
+13
+4440.626953125
+23
+1.0591324909117739e-12
+33
+1323.8867503989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4441.775390625
+20
+1.048029718564436e-12
+30
+1163.8789378989832
+11
+4471.166015625
+21
+1.0775178492516968e-12
+31
+1588.8476878989832
+12
+4882.189453125
+22
+1.0872431427388918e-12
+32
+1729.0039378989832
+13
+4882.189453125
+23
+1.0872431427388918e-12
+33
+1729.0039378989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4882.189453125
+20
+1.0872431427388918e-12
+30
+1729.0039378989832
+11
+4471.166015625
+21
+1.0775178492516968e-12
+31
+1588.8476878989832
+12
+4478.806640625
+22
+1.0938443076660698e-12
+32
+1824.1367503989832
+13
+4478.806640625
+23
+1.0938443076660698e-12
+33
+1824.1367503989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+4882.189453125
+20
+1.0872431427388918e-12
+30
+1729.0039378989832
+11
+4478.806640625
+21
+1.0938443076660698e-12
+31
+1824.1367503989832
+12
+4904.759765625
+22
+1.0934946524654432e-12
+32
+1819.0976878989832
+13
+4904.759765625
+23
+1.0934946524654432e-12
+33
+1819.0976878989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4882.189453125
+20
+1.0872431427388918e-12
+30
+1729.0039378989832
+11
+4904.759765625
+21
+1.0934946524654432e-12
+31
+1819.0976878989832
+12
+4934.619140625
+22
+1.089737891937781e-12
+32
+1764.9570628989832
+13
+4934.619140625
+23
+1.089737891937781e-12
+33
+1764.9570628989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4441.775390625
+20
+1.048029718564436e-12
+30
+1163.8789378989832
+11
+4858.376953125
+21
+1.0729642001272577e-12
+31
+1523.2226878989832
+12
+4780.728515625
+22
+1.009188717836229e-12
+32
+604.1211253989832
+13
+4780.728515625
+23
+1.009188717836229e-12
+33
+604.1211253989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+4858.376953125
+20
+1.0729642001272577e-12
+30
+1523.2226878989832
+11
+4441.775390625
+21
+1.048029718564436e-12
+31
+1163.8789378989832
+12
+4882.189453125
+22
+1.0872431427388918e-12
+32
+1729.0039378989832
+13
+4882.189453125
+23
+1.0872431427388918e-12
+33
+1729.0039378989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4886.056640625
+20
+1.0703897620686909e-12
+30
+1486.1211253989832
+11
+4780.728515625
+21
+1.009188717836229e-12
+31
+604.1211253989832
+12
+4858.376953125
+22
+1.0729642001272577e-12
+32
+1523.2226878989832
+13
+4858.376953125
+23
+1.0729642001272577e-12
+33
+1523.2226878989832
+70
+2
+ 0
+3DFACE
+ 8
+ship7
+10
+3660.609375
+20
+1.0492917298932092e-12
+30
+1182.0664378989832
+11
+4780.728515625
+21
+1.009188717836229e-12
+31
+604.1211253989832
+12
+3198.515625
+22
+9.133213933407158e-13
+32
+-777.4726246010168
+13
+3198.515625
+23
+9.133213933407158e-13
+33
+-777.4726246010168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4780.728515625
+20
+1.009188717836229e-12
+30
+604.1211253989832
+11
+3660.609375
+21
+1.0492917298932092e-12
+31
+1182.0664378989832
+12
+3892.72265625
+22
+1.0492022832139791e-12
+32
+1180.7773753989832
+13
+3892.72265625
+23
+1.0492022832139791e-12
+33
+1180.7773753989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4780.728515625
+20
+1.009188717836229e-12
+30
+604.1211253989832
+11
+3892.72265625
+21
+1.0492022832139791e-12
+31
+1180.7773753989832
+12
+3998.90625
+22
+1.0497731156577927e-12
+32
+1189.0039378989832
+13
+3998.90625
+23
+1.0497731156577927e-12
+33
+1189.0039378989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4780.728515625
+20
+1.009188717836229e-12
+30
+604.1211253989832
+11
+3998.90625
+21
+1.0497731156577927e-12
+31
+1189.0039378989832
+12
+4275.556640625
+22
+1.049112836534749e-12
+32
+1179.4883128989832
+13
+4275.556640625
+23
+1.049112836534749e-12
+33
+1179.4883128989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+4780.728515625
+20
+1.009188717836229e-12
+30
+604.1211253989832
+11
+4275.556640625
+21
+1.049112836534749e-12
+31
+1179.4883128989832
+12
+4441.775390625
+22
+1.048029718564436e-12
+32
+1163.8789378989832
+13
+4441.775390625
+23
+1.048029718564436e-12
+33
+1163.8789378989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5099.056640625
+20
+9.979013600690256e-13
+30
+441.45315664898317
+11
+5925.650390625
+21
+9.11731681905309e-13
+31
+-800.3827808510168
+12
+5088.134765625
+22
+9.979834883835914e-13
+32
+442.63675039898317
+13
+5088.134765625
+23
+9.979834883835914e-13
+33
+442.63675039898317
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5925.650390625
+20
+9.11731681905309e-13
+30
+-800.3827808510168
+11
+5099.056640625
+21
+9.979013600690256e-13
+31
+441.45315664898317
+12
+5606.642578125
+22
+1.0167916855707837e-12
+32
+713.6914378989832
+13
+5606.642578125
+23
+1.0167916855707837e-12
+33
+713.6914378989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+5925.650390625
+20
+9.11731681905309e-13
+30
+-800.3827808510168
+11
+5606.642578125
+21
+1.0167916855707837e-12
+31
+713.6914378989832
+12
+5688.978515625
+22
+1.0167916855707837e-12
+32
+713.6914378989832
+13
+5688.978515625
+23
+1.0167916855707837e-12
+33
+713.6914378989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+5925.650390625
+20
+9.11731681905309e-13
+30
+-800.3827808510168
+11
+5688.978515625
+21
+1.0167916855707837e-12
+31
+713.6914378989832
+12
+5832.580078125
+22
+1.0192766769501205e-12
+32
+749.5039378989832
+13
+5832.580078125
+23
+1.0192766769501205e-12
+33
+749.5039378989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+5925.650390625
+20
+9.11731681905309e-13
+30
+-800.3827808510168
+11
+5832.580078125
+21
+1.0192766769501205e-12
+31
+749.5039378989832
+12
+5934.041015625
+22
+1.0207923915872552e-12
+32
+771.3476878989832
+13
+5934.041015625
+23
+1.0207923915872552e-12
+33
+771.3476878989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+5925.650390625
+20
+9.11731681905309e-13
+30
+-800.3827808510168
+11
+5934.041015625
+21
+1.0207923915872552e-12
+31
+771.3476878989832
+12
+6815.431640625
+22
+9.142548914112258e-13
+32
+-764.0194996010168
+13
+6815.431640625
+23
+9.142548914112258e-13
+33
+-764.0194996010168
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6815.431640625
+20
+9.142548914112258e-13
+30
+-764.0194996010168
+11
+5934.041015625
+21
+1.0207923915872552e-12
+31
+771.3476878989832
+12
+6579.041015625
+22
+1.0088878517333644e-12
+32
+599.7851878989832
+13
+6579.041015625
+23
+1.0088878517333644e-12
+33
+599.7851878989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6815.431640625
+20
+9.142548914112258e-13
+30
+-764.0194996010168
+11
+6579.041015625
+21
+1.0088878517333644e-12
+31
+599.7851878989832
+12
+6749.056640625
+22
+1.0055897087246635e-12
+32
+552.2539378989832
+13
+6749.056640625
+23
+1.0055897087246635e-12
+33
+552.2539378989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6815.431640625
+20
+9.142548914112258e-13
+30
+-764.0194996010168
+11
+6749.056640625
+21
+1.0055897087246635e-12
+31
+552.2539378989832
+12
+6925.587890625
+22
+1.0043049291502681e-12
+32
+533.7383128989832
+13
+6925.587890625
+23
+1.0043049291502681e-12
+33
+533.7383128989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5758.611328125
+20
+1.0364504393622909e-12
+30
+997.0039378989832
+11
+5711.173828125
+21
+1.0288905686640926e-12
+31
+888.0547191489832
+12
+5686.775390625
+22
+1.0322513243482545e-12
+32
+936.4883128989832
+13
+5686.775390625
+23
+1.0322513243482545e-12
+33
+936.4883128989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5711.173828125
+20
+1.0288905686640926e-12
+30
+888.0547191489832
+11
+5688.978515625
+21
+1.0167916855707837e-12
+31
+713.6914378989832
+12
+5661.158203125
+22
+1.0261526871280235e-12
+32
+848.5976878989832
+13
+5661.158203125
+23
+1.0261526871280235e-12
+33
+848.5976878989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5688.978515625
+20
+1.0167916855707837e-12
+30
+713.6914378989832
+11
+5711.173828125
+21
+1.0288905686640926e-12
+31
+888.0547191489832
+12
+5832.580078125
+22
+1.0192766769501205e-12
+32
+749.5039378989832
+13
+5832.580078125
+23
+1.0192766769501205e-12
+33
+749.5039378989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+5832.580078125
+20
+1.0192766769501205e-12
+30
+749.5039378989832
+11
+5711.173828125
+21
+1.0288905686640926e-12
+31
+888.0547191489832
+12
+5758.611328125
+22
+1.0364504393622909e-12
+32
+997.0039378989832
+13
+5758.611328125
+23
+1.0364504393622909e-12
+33
+997.0039378989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+5832.580078125
+20
+1.0192766769501205e-12
+30
+749.5039378989832
+11
+5758.611328125
+21
+1.0364504393622909e-12
+31
+997.0039378989832
+12
+5821.939453125
+22
+1.034409428772587e-12
+32
+967.5898753989832
+13
+5821.939453125
+23
+1.034409428772587e-12
+33
+967.5898753989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6317.853515625
+20
+1.1671987161510078e-12
+30
+2881.285187898983
+11
+6124.869140625
+21
+1.1609394814839774e-12
+31
+2791.080109773983
+12
+5958.509765625
+22
+1.1619616130820881e-12
+32
+2805.810578523983
+13
+5958.509765625
+23
+1.1619616130820881e-12
+33
+2805.810578523983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6124.869140625
+20
+1.1609394814839774e-12
+30
+2791.080109773983
+11
+6317.853515625
+21
+1.1671987161510078e-12
+31
+2881.285187898983
+12
+6311.455078125
+22
+1.1631707695549526e-12
+32
+2823.236359773983
+13
+6311.455078125
+23
+1.1631707695549526e-12
+33
+2823.236359773983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6373.072265625
+20
+1.1739714560719816e-12
+30
+2978.890656648983
+11
+6336.955078125
+21
+1.102826380564026e-12
+31
+1953.5820628989832
+12
+6317.853515625
+22
+1.1671987161510078e-12
+32
+2881.285187898983
+13
+6317.853515625
+23
+1.1671987161510078e-12
+33
+2881.285187898983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6336.955078125
+20
+1.102826380564026e-12
+30
+1953.5820628989832
+11
+6373.072265625
+21
+1.1739714560719816e-12
+31
+2978.890656648983
+12
+6376.236328125
+22
+1.1636838682330813e-12
+32
+2830.630891023983
+13
+6376.236328125
+23
+1.1636838682330813e-12
+33
+2830.630891023983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6376.236328125
+20
+1.1636838682330813e-12
+30
+2830.630891023983
+11
+6373.072265625
+21
+1.1739714560719816e-12
+31
+2978.890656648983
+12
+6377.525390625
+22
+1.1673906199355377e-12
+32
+2884.050812898983
+13
+6377.525390625
+23
+1.1673906199355377e-12
+33
+2884.050812898983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6376.236328125
+20
+1.1636838682330813e-12
+30
+2830.630891023983
+11
+6377.525390625
+21
+1.1673906199355377e-12
+31
+2884.050812898983
+12
+6731.806640625
+22
+1.1660253383498353e-12
+32
+2864.375031648983
+13
+6731.806640625
+23
+1.1660253383498353e-12
+33
+2864.375031648983
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6731.806640625
+20
+1.1660253383498353e-12
+30
+2864.375031648983
+11
+6377.525390625
+21
+1.1673906199355377e-12
+31
+2884.050812898983
+12
+6713.431640625
+22
+1.1694304107977976e-12
+32
+2913.447297273983
+13
+6713.431640625
+23
+1.1694304107977976e-12
+33
+2913.447297273983
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6266.314453125
+20
+1.0984825245599628e-12
+30
+1890.9805003989832
+11
+6125.291015625
+21
+1.093083197740985e-12
+31
+1813.1680003989832
+12
+6119.197265625
+22
+1.0960105436066958e-12
+32
+1855.3555003989832
+13
+6119.197265625
+23
+1.0960105436066958e-12
+33
+1855.3555003989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6125.291015625
+20
+1.093083197740985e-12
+30
+1813.1680003989832
+11
+6266.314453125
+21
+1.0984825245599628e-12
+31
+1890.9805003989832
+12
+6206.830078125
+22
+1.09186184399368e-12
+32
+1795.5664378989832
+13
+6206.830078125
+23
+1.09186184399368e-12
+33
+1795.5664378989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6206.830078125
+20
+1.09186184399368e-12
+30
+1795.5664378989832
+11
+6266.314453125
+21
+1.0984825245599628e-12
+31
+1890.9805003989832
+12
+6227.408203125
+22
+1.0740782178594865e-12
+32
+1539.2773753989832
+13
+6227.408203125
+23
+1.0740782178594865e-12
+33
+1539.2773753989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6227.408203125
+20
+1.0740782178594865e-12
+30
+1539.2773753989832
+11
+6266.314453125
+21
+1.0984825245599628e-12
+31
+1890.9805003989832
+12
+6260.033203125
+22
+1.0247930976037267e-12
+32
+829.0039378989832
+13
+6260.033203125
+23
+1.0247930976037267e-12
+33
+829.0039378989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+6260.033203125
+20
+1.0247930976037267e-12
+30
+829.0039378989832
+11
+6266.314453125
+21
+1.0984825245599628e-12
+31
+1890.9805003989832
+12
+6305.009765625
+22
+1.0929205674151121e-12
+32
+1810.8242503989832
+13
+6305.009765625
+23
+1.0929205674151121e-12
+33
+1810.8242503989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6305.009765625
+20
+1.0929205674151121e-12
+30
+1810.8242503989832
+11
+6266.314453125
+21
+1.0984825245599628e-12
+31
+1890.9805003989832
+12
+6311.455078125
+22
+1.1631707695549526e-12
+32
+2823.236359773983
+13
+6311.455078125
+23
+1.1631707695549526e-12
+33
+2823.236359773983
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6305.009765625
+20
+1.0929205674151121e-12
+30
+1810.8242503989832
+11
+6311.455078125
+21
+1.1631707695549526e-12
+31
+2823.236359773983
+12
+6336.955078125
+22
+1.102826380564026e-12
+32
+1953.5820628989832
+13
+6336.955078125
+23
+1.102826380564026e-12
+33
+1953.5820628989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+6305.009765625
+20
+1.0929205674151121e-12
+30
+1810.8242503989832
+11
+6336.955078125
+21
+1.102826380564026e-12
+31
+1953.5820628989832
+12
+6405.884765625
+22
+1.0975522790959702e-12
+32
+1877.5742503989832
+13
+6405.884765625
+23
+1.0975522790959702e-12
+33
+1877.5742503989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6336.955078125
+20
+1.102826380564026e-12
+30
+1953.5820628989832
+11
+6311.455078125
+21
+1.1631707695549526e-12
+31
+2823.236359773983
+12
+6317.853515625
+22
+1.1671987161510078e-12
+32
+2881.285187898983
+13
+6317.853515625
+23
+1.1671987161510078e-12
+33
+2881.285187898983
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+6405.884765625
+20
+1.0975522790959702e-12
+30
+1877.5742503989832
+11
+6336.955078125
+21
+1.102826380564026e-12
+31
+1953.5820628989832
+12
+6389.712890625
+22
+1.1022384719359957e-12
+32
+1945.1094066489832
+13
+6389.712890625
+23
+1.1022384719359957e-12
+33
+1945.1094066489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6006.720703125
+20
+1.0249508490198234e-12
+30
+831.2773753989832
+11
+5934.041015625
+21
+1.0207923915872552e-12
+31
+771.3476878989832
+12
+5923.306640625
+22
+1.0249508490198234e-12
+32
+831.2773753989832
+13
+5923.306640625
+23
+1.0249508490198234e-12
+33
+831.2773753989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5934.041015625
+20
+1.0207923915872552e-12
+30
+771.3476878989832
+11
+6006.720703125
+21
+1.0249508490198234e-12
+31
+831.2773753989832
+12
+6143.150390625
+22
+1.0208314228654647e-12
+32
+771.9101878989832
+13
+6143.150390625
+23
+1.0208314228654647e-12
+33
+771.9101878989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+5934.041015625
+20
+1.0207923915872552e-12
+30
+771.3476878989832
+11
+6143.150390625
+21
+1.0208314228654647e-12
+31
+771.9101878989832
+12
+6579.041015625
+22
+1.0088878517333644e-12
+32
+599.7851878989832
+13
+6579.041015625
+23
+1.0088878517333644e-12
+33
+599.7851878989832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+6143.150390625
+20
+1.0208314228654647e-12
+30
+771.9101878989832
+11
+6006.720703125
+21
+1.0249508490198234e-12
+31
+831.2773753989832
+12
+6034.400390625
+22
+1.0285213978243612e-12
+32
+882.7344066489832
+13
+6034.400390625
+23
+1.0285213978243612e-12
+33
+882.7344066489832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6143.150390625
+20
+1.0208314228654647e-12
+30
+771.9101878989832
+11
+6034.400390625
+21
+1.0285213978243612e-12
+31
+882.7344066489832
+12
+6134.923828125
+22
+1.027571636721264e-12
+32
+869.0469066489832
+13
+6134.923828125
+23
+1.027571636721264e-12
+33
+869.0469066489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6579.041015625
+20
+1.0088878517333644e-12
+30
+599.7851878989832
+11
+6143.150390625
+21
+1.0208314228654647e-12
+31
+771.9101878989832
+12
+6193.142578125
+22
+1.024784966087433e-12
+32
+828.8867503989832
+13
+6193.142578125
+23
+1.024784966087433e-12
+33
+828.8867503989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6579.041015625
+20
+1.0088878517333644e-12
+30
+599.7851878989832
+11
+6193.142578125
+21
+1.024784966087433e-12
+31
+828.8867503989832
+12
+6260.033203125
+22
+1.0247930976037267e-12
+32
+829.0039378989832
+13
+6260.033203125
+23
+1.0247930976037267e-12
+33
+829.0039378989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+6260.033203125
+20
+1.0247930976037267e-12
+30
+829.0039378989832
+11
+6193.142578125
+21
+1.024784966087433e-12
+31
+828.8867503989832
+12
+6227.408203125
+22
+1.0740782178594865e-12
+32
+1539.2773753989832
+13
+6227.408203125
+23
+1.0740782178594865e-12
+33
+1539.2773753989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6579.041015625
+20
+1.0088878517333644e-12
+30
+599.7851878989832
+11
+6260.033203125
+21
+1.0247930976037267e-12
+31
+829.0039378989832
+12
+6361.728515625
+22
+1.0251468185625001e-12
+32
+834.1015941489832
+13
+6361.728515625
+23
+1.0251468185625001e-12
+33
+834.1015941489832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+6579.041015625
+20
+1.0088878517333644e-12
+30
+599.7851878989832
+11
+6361.728515625
+21
+1.0251468185625001e-12
+31
+834.1015941489832
+12
+6579.041015625
+22
+1.0206484637488578e-12
+32
+769.2734691489832
+13
+6579.041015625
+23
+1.0206484637488578e-12
+33
+769.2734691489832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6785.994140625
+20
+1.0217527236615342e-12
+30
+785.1875316489832
+11
+6749.056640625
+21
+1.0055897087246635e-12
+31
+552.2539378989832
+12
+6664.892578125
+22
+1.0201142231283655e-12
+32
+761.5742503989832
+13
+6664.892578125
+23
+1.0201142231283655e-12
+33
+761.5742503989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6749.056640625
+20
+1.0055897087246635e-12
+30
+552.2539378989832
+11
+6785.994140625
+21
+1.0217527236615342e-12
+31
+785.1875316489832
+12
+6925.587890625
+22
+1.0043049291502681e-12
+32
+533.7383128989832
+13
+6925.587890625
+23
+1.0043049291502681e-12
+33
+533.7383128989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+6925.587890625
+20
+1.0043049291502681e-12
+30
+533.7383128989832
+11
+7166.361328125
+21
+9.17997828361189e-13
+31
+-710.0780933510168
+12
+6815.431640625
+22
+9.142548914112258e-13
+32
+-764.0194996010168
+13
+6815.431640625
+23
+9.142548914112258e-13
+33
+-764.0194996010168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7166.361328125
+20
+9.17997828361189e-13
+30
+-710.0780933510168
+11
+6925.587890625
+21
+1.0043049291502681e-12
+31
+533.7383128989832
+12
+7014.369140625
+22
+1.00692409054845e-12
+32
+571.4844066489832
+13
+7014.369140625
+23
+1.00692409054845e-12
+33
+571.4844066489832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7166.361328125
+20
+9.17997828361189e-13
+30
+-710.0780933510168
+11
+7014.369140625
+21
+1.00692409054845e-12
+31
+571.4844066489832
+12
+7038.041015625
+22
+9.997211934155426e-13
+32
+467.67971914898317
+13
+7038.041015625
+23
+9.997211934155426e-13
+33
+467.67971914898317
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7166.361328125
+20
+9.17997828361189e-13
+30
+-710.0780933510168
+11
+7038.041015625
+21
+9.997211934155426e-13
+31
+467.67971914898317
+12
+7177.728515625
+22
+9.982062919300372e-13
+32
+445.84768789898317
+13
+7177.728515625
+23
+9.982062919300372e-13
+33
+445.84768789898317
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7166.361328125
+20
+9.17997828361189e-13
+30
+-710.0780933510168
+11
+7177.728515625
+21
+9.982062919300372e-13
+31
+445.84768789898317
+12
+7452.650390625
+22
+9.18484906187178e-13
+32
+-703.0585621010168
+13
+7452.650390625
+23
+9.18484906187178e-13
+33
+-703.0585621010168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7341.322265625
+20
+1.001017357112749e-12
+30
+486.35940664898317
+11
+7452.650390625
+21
+9.18484906187178e-13
+31
+-703.0585621010168
+12
+7177.728515625
+22
+9.982062919300372e-13
+32
+445.84768789898317
+13
+7177.728515625
+23
+9.982062919300372e-13
+33
+445.84768789898317
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7452.650390625
+20
+9.18484906187178e-13
+30
+-703.0585621010168
+11
+7341.322265625
+21
+1.001017357112749e-12
+31
+486.35940664898317
+12
+7395.814453125
+22
+1.0020720147760342e-12
+32
+501.55862539898317
+13
+7395.814453125
+23
+1.0020720147760342e-12
+33
+501.55862539898317
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7452.650390625
+20
+9.18484906187178e-13
+30
+-703.0585621010168
+11
+7395.814453125
+21
+1.0020720147760342e-12
+31
+501.55862539898317
+12
+7802.361328125
+22
+9.151265899579042e-13
+32
+-751.4569996010168
+13
+7802.361328125
+23
+9.151265899579042e-13
+33
+-751.4569996010168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7342.447265625
+20
+1.0017735881280576e-12
+30
+497.25784414898317
+11
+7341.322265625
+21
+1.001017357112749e-12
+31
+486.35940664898317
+12
+7177.728515625
+22
+9.982062919300372e-13
+32
+445.84768789898317
+13
+7177.728515625
+23
+9.982062919300372e-13
+33
+445.84768789898317
+70
+2
+ 0
+3DFACE
+ 8
+ship7
+10
+7203.908203125
+20
+1.045501630148743e-12
+30
+1127.4453441489832
+11
+7177.728515625
+21
+9.982062919300372e-13
+31
+445.84768789898317
+12
+7177.728515625
+22
+1.0452731345408917e-12
+32
+1124.1523753989832
+13
+7177.728515625
+23
+1.0452731345408917e-12
+33
+1124.1523753989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7177.728515625
+20
+9.982062919300372e-13
+30
+445.84768789898317
+11
+7203.908203125
+21
+1.045501630148743e-12
+31
+1127.4453441489832
+12
+7228.939453125
+22
+1.003898353335586e-12
+32
+527.8789378989832
+13
+7228.939453125
+23
+1.003898353335586e-12
+33
+527.8789378989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+7177.728515625
+20
+9.982062919300372e-13
+30
+445.84768789898317
+11
+7228.939453125
+21
+1.003898353335586e-12
+31
+527.8789378989832
+12
+7342.447265625
+22
+1.0017735881280576e-12
+32
+497.25784414898317
+13
+7342.447265625
+23
+1.0017735881280576e-12
+33
+497.25784414898317
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7228.939453125
+20
+1.003898353335586e-12
+30
+527.8789378989832
+11
+7203.908203125
+21
+1.045501630148743e-12
+31
+1127.4453441489832
+12
+7216.587890625
+22
+1.041524505529523e-12
+32
+1070.1289378989832
+13
+7216.587890625
+23
+1.041524505529523e-12
+33
+1070.1289378989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7993.142578125
+20
+9.985892863474677e-13
+30
+451.36721914898317
+11
+7992.533203125
+21
+9.704436690002871e-13
+31
+45.74612539898317
+12
+7865.267578125
+22
+1.0103783586699888e-12
+32
+621.2656566489832
+13
+7865.267578125
+23
+1.0103783586699888e-12
+33
+621.2656566489832
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+7992.533203125
+20
+9.704436690002871e-13
+30
+45.74612539898317
+11
+7993.142578125
+21
+9.985892863474677e-13
+31
+451.36721914898317
+12
+7993.142578125
+22
+9.833573300262188e-13
+32
+231.85159414898317
+13
+7993.142578125
+23
+9.833573300262188e-13
+33
+231.85159414898317
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7992.533203125
+20
+9.704436690002871e-13
+30
+45.74612539898317
+11
+7993.142578125
+21
+9.833573300262188e-13
+31
+231.85159414898317
+12
+8023.587890625
+22
+9.800177162844204e-13
+32
+183.72268789898317
+13
+8023.587890625
+23
+9.800177162844204e-13
+33
+183.72268789898317
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7609.306640625
+20
+1.0032543372451297e-12
+30
+518.5976878989832
+11
+7395.814453125
+21
+1.0020720147760342e-12
+31
+501.55862539898317
+12
+7388.548828125
+22
+1.0051034440503037e-12
+32
+545.2461253989832
+13
+7388.548828125
+23
+1.0051034440503037e-12
+33
+545.2461253989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7395.814453125
+20
+1.0020720147760342e-12
+30
+501.55862539898317
+11
+7609.306640625
+21
+1.0032543372451297e-12
+31
+518.5976878989832
+12
+7802.361328125
+22
+9.151265899579042e-13
+32
+-751.4569996010168
+13
+7802.361328125
+23
+9.151265899579042e-13
+33
+-751.4569996010168
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+7802.361328125
+20
+9.151265899579042e-13
+30
+-751.4569996010168
+11
+7609.306640625
+21
+1.0032543372451297e-12
+31
+518.5976878989832
+12
+7716.720703125
+22
+1.0113517011703377e-12
+32
+635.2930003989832
+13
+7716.720703125
+23
+1.0113517011703377e-12
+33
+635.2930003989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7802.361328125
+20
+9.151265899579042e-13
+30
+-751.4569996010168
+11
+7716.720703125
+21
+1.0113517011703377e-12
+31
+635.2930003989832
+12
+7780.541015625
+22
+1.0075607882742421e-12
+32
+580.6601878989832
+13
+7780.541015625
+23
+1.0075607882742421e-12
+33
+580.6601878989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7802.361328125
+20
+9.151265899579042e-13
+30
+-751.4569996010168
+11
+7780.541015625
+21
+1.0075607882742421e-12
+31
+580.6601878989832
+12
+7808.384765625
+22
+1.0113956113583233e-12
+32
+635.9258128989832
+13
+7808.384765625
+23
+1.0113956113583233e-12
+33
+635.9258128989832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+7802.361328125
+20
+9.151265899579042e-13
+30
+-751.4569996010168
+11
+7808.384765625
+21
+1.0113956113583233e-12
+31
+635.9258128989832
+12
+8033.126953125
+22
+9.50523893535754e-13
+32
+-241.32809335101683
+13
+8033.126953125
+23
+9.50523893535754e-13
+33
+-241.32809335101683
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+7802.361328125
+20
+9.151265899579042e-13
+30
+-751.4569996010168
+11
+8033.126953125
+21
+9.50523893535754e-13
+31
+-241.32809335101683
+12
+8276.314453125
+22
+9.175920656981362e-13
+32
+-715.9257496010168
+13
+8276.314453125
+23
+9.175920656981362e-13
+33
+-715.9257496010168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+8033.126953125
+20
+9.50523893535754e-13
+30
+-241.32809335101683
+11
+7808.384765625
+21
+1.0113956113583233e-12
+31
+635.9258128989832
+12
+7865.267578125
+22
+1.0103783586699888e-12
+32
+621.2656566489832
+13
+7865.267578125
+23
+1.0103783586699888e-12
+33
+621.2656566489832
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+8033.126953125
+20
+9.50523893535754e-13
+30
+-241.32809335101683
+11
+7865.267578125
+21
+1.0103783586699888e-12
+31
+621.2656566489832
+12
+7992.533203125
+22
+9.704436690002871e-13
+32
+45.74612539898317
+13
+7992.533203125
+23
+9.704436690002871e-13
+33
+45.74612539898317
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+8434.447265625
+20
+9.876637810553313e-13
+30
+293.91409414898317
+11
+8023.587890625
+21
+9.800177162844204e-13
+31
+183.72268789898317
+12
+7993.142578125
+22
+9.833573300262188e-13
+32
+231.85159414898317
+13
+7993.142578125
+23
+9.833573300262188e-13
+33
+231.85159414898317
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+8023.587890625
+20
+9.800177162844204e-13
+30
+183.72268789898317
+11
+8434.447265625
+21
+9.876637810553313e-13
+31
+293.91409414898317
+12
+8438.384765625
+22
+9.853959011610347e-13
+32
+261.23050039898317
+13
+8438.384765625
+23
+9.853959011610347e-13
+33
+261.23050039898317
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+7992.533203125
+20
+9.704436690002871e-13
+30
+45.74612539898317
+11
+8057.876953125
+21
+9.657712997379608e-13
+31
+-21.589812101016832
+12
+8033.126953125
+22
+9.50523893535754e-13
+32
+-241.32809335101683
+13
+8033.126953125
+23
+9.50523893535754e-13
+33
+-241.32809335101683
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+8057.876953125
+20
+9.657712997379608e-13
+30
+-21.589812101016832
+11
+7992.533203125
+21
+9.704436690002871e-13
+31
+45.74612539898317
+12
+8196.369140625
+22
+9.68344111493269e-13
+32
+15.488312898983168
+13
+8196.369140625
+23
+9.68344111493269e-13
+33
+15.488312898983168
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+8057.876953125
+20
+9.657712997379608e-13
+30
+-21.589812101016832
+11
+8196.369140625
+21
+9.68344111493269e-13
+31
+15.488312898983168
+12
+8195.103515625
+22
+9.668820648636722e-13
+32
+-5.5819996010168325
+13
+8195.103515625
+23
+9.668820648636722e-13
+33
+-5.5819996010168325
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+8371.658203125
+20
+9.401505181999559e-13
+30
+-390.82418710101683
+11
+8323.048828125
+21
+9.371011995898404e-13
+31
+-434.76949960101683
+12
+8315.783203125
+22
+9.433543356196505e-13
+32
+-344.65231210101683
+13
+8315.783203125
+23
+9.433543356196505e-13
+33
+-344.65231210101683
+70
+2
+ 0
+3DFACE
+ 8
+ship7
+10
+8033.126953125
+20
+9.50523893535754e-13
+30
+-241.32809335101683
+11
+8114.080078125
+21
+9.498497908350112e-13
+31
+-251.04293710101683
+12
+8276.314453125
+22
+9.175920656981362e-13
+32
+-715.9257496010168
+13
+8276.314453125
+23
+9.175920656981362e-13
+33
+-715.9257496010168
+70
+3
+ 0
+3DFACE
+ 8
+ship7
+10
+8114.080078125
+20
+9.498497908350112e-13
+30
+-251.04293710101683
+11
+8033.126953125
+21
+9.50523893535754e-13
+31
+-241.32809335101683
+12
+8090.033203125
+22
+9.56883552429011e-13
+32
+-149.67574960101683
+13
+8090.033203125
+23
+9.56883552429011e-13
+33
+-149.67574960101683
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+8114.080078125
+20
+9.498497908350112e-13
+30
+-251.04293710101683
+11
+8090.033203125
+21
+9.56883552429011e-13
+31
+-149.67574960101683
+12
+8102.947265625
+22
+9.567672717460118e-13
+32
+-151.35153085101683
+13
+8102.947265625
+23
+9.567672717460118e-13
+33
+-151.35153085101683
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+8276.314453125
+20
+9.175920656981362e-13
+30
+-715.9257496010168
+11
+8114.080078125
+21
+9.498497908350112e-13
+31
+-251.04293710101683
+12
+8179.541015625
+22
+9.460068362346363e-13
+32
+-306.42574960101683
+13
+8179.541015625
+23
+9.460068362346363e-13
+33
+-306.42574960101683
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+8276.314453125
+20
+9.175920656981362e-13
+30
+-715.9257496010168
+11
+8179.541015625
+21
+9.460068362346363e-13
+31
+-306.42574960101683
+12
+8223.837890625
+22
+9.513939657791737e-13
+32
+-228.78903085101683
+13
+8223.837890625
+23
+9.513939657791737e-13
+33
+-228.78903085101683
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+8276.314453125
+20
+9.175920656981362e-13
+30
+-715.9257496010168
+11
+8223.837890625
+21
+9.513939657791737e-13
+31
+-228.78903085101683
+12
+8309.291015625
+22
+9.499002062360318e-13
+32
+-250.31637460101683
+13
+8309.291015625
+23
+9.499002062360318e-13
+33
+-250.31637460101683
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+8276.314453125
+20
+9.175920656981362e-13
+30
+-715.9257496010168
+11
+8309.291015625
+21
+9.499002062360318e-13
+31
+-250.31637460101683
+12
+8315.783203125
+22
+9.433543356196505e-13
+32
+-344.65231210101683
+13
+8315.783203125
+23
+9.433543356196505e-13
+33
+-344.65231210101683
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+8276.314453125
+20
+9.175920656981362e-13
+30
+-715.9257496010168
+11
+8315.783203125
+21
+9.433543356196505e-13
+31
+-344.65231210101683
+12
+8323.048828125
+22
+9.371011995898404e-13
+32
+-434.76949960101683
+13
+8323.048828125
+23
+9.371011995898404e-13
+33
+-434.76949960101683
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+8276.314453125
+20
+9.175920656981362e-13
+30
+-715.9257496010168
+11
+8323.048828125
+21
+9.371011995898404e-13
+31
+-434.76949960101683
+12
+8347.869140625
+22
+9.282671202884285e-13
+32
+-562.0819996010168
+13
+8347.869140625
+23
+9.282671202884285e-13
+33
+-562.0819996010168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4997.689453125
+20
+1.0133634383013845e-12
+30
+664.2851878989832
+11
+4978.939453125
+21
+1.001432877595354e-12
+31
+492.34768789898317
+12
+4937.619140625
+22
+1.0095595149792191e-12
+32
+609.4648753989832
+13
+4937.619140625
+23
+1.0095595149792191e-12
+33
+609.4648753989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+4780.728515625
+20
+1.009188717836229e-12
+30
+604.1211253989832
+11
+5489.548828125
+21
+9.15427456060769e-13
+31
+-747.1210621010168
+12
+3198.515625
+22
+9.133213933407158e-13
+32
+-777.4726246010168
+13
+3198.515625
+23
+9.133213933407158e-13
+33
+-777.4726246010168
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5489.548828125
+20
+9.15427456060769e-13
+30
+-747.1210621010168
+11
+4780.728515625
+21
+1.009188717836229e-12
+31
+604.1211253989832
+12
+4965.884765625
+22
+1.0009531181340292e-12
+32
+485.43362539898317
+13
+4965.884765625
+23
+1.0009531181340292e-12
+33
+485.43362539898317
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+5489.548828125
+20
+9.15427456060769e-13
+30
+-747.1210621010168
+11
+4965.884765625
+21
+1.0009531181340292e-12
+31
+485.43362539898317
+12
+4978.939453125
+22
+1.001432877595354e-12
+32
+492.34768789898317
+13
+4978.939453125
+23
+1.001432877595354e-12
+33
+492.34768789898317
+70
+13
+ 0
+3DFACE
+ 8
+ship7
+10
+5489.548828125
+20
+9.15427456060769e-13
+30
+-747.1210621010168
+11
+4978.939453125
+21
+1.001432877595354e-12
+31
+492.34768789898317
+12
+4997.689453125
+22
+1.0133634383013845e-12
+32
+664.2851878989832
+13
+4997.689453125
+23
+1.0133634383013845e-12
+33
+664.2851878989832
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+5489.548828125
+20
+9.15427456060769e-13
+30
+-747.1210621010168
+11
+4997.689453125
+21
+1.0133634383013845e-12
+31
+664.2851878989832
+12
+5088.134765625
+22
+9.979834883835914e-13
+32
+442.63675039898317
+13
+5088.134765625
+23
+9.979834883835914e-13
+33
+442.63675039898317
+70
+15
+ 0
+3DFACE
+ 8
+ship7
+10
+5088.134765625
+20
+9.979834883835914e-13
+30
+442.63675039898317
+11
+4997.689453125
+21
+1.0133634383013845e-12
+31
+664.2851878989832
+12
+5066.314453125
+22
+1.0107662319971955e-12
+32
+626.8555003989832
+13
+5066.314453125
+23
+1.0107662319971955e-12
+33
+626.8555003989832
+70
+1
+ 0
+3DFACE
+ 8
+ship7
+10
+5489.548828125
+20
+9.15427456060769e-13
+30
+-747.1210621010168
+11
+5088.134765625
+21
+9.979834883835914e-13
+31
+442.63675039898317
+12
+5925.650390625
+22
+9.11731681905309e-13
+32
+-800.3827808510168
+13
+5925.650390625
+23
+9.11731681905309e-13
+33
+-800.3827808510168
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+317.39093237733323
+20
+-1.1134146989805194e-12
+30
+425.50307997950904
+11
+64.94561987733323
+21
+-1.1217917870662286e-12
+31
+304.77651747950904
+12
+44.10968237733323
+22
+-1.1134146989805194e-12
+32
+425.50307997950904
+13
+44.10968237733323
+23
+-1.1134146989805194e-12
+33
+425.50307997950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+64.94561987733323
+20
+-1.1217917870662286e-12
+30
+304.77651747950904
+11
+317.39093237733323
+21
+-1.1134146989805194e-12
+31
+425.50307997950904
+12
+102.71515112733323
+22
+-1.1447600679892478e-12
+32
+-26.23129502049096
+13
+102.71515112733323
+23
+-1.1447600679892478e-12
+33
+-26.23129502049096
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+102.71515112733323
+20
+-1.1447600679892478e-12
+30
+-26.23129502049096
+11
+317.39093237733323
+21
+-1.1134146989805194e-12
+31
+425.50307997950904
+12
+102.89093237733323
+22
+-1.1487363794568384e-12
+32
+-83.53598252049096
+13
+102.89093237733323
+23
+-1.1487363794568384e-12
+33
+-83.53598252049096
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+102.89093237733323
+20
+-1.1487363794568384e-12
+30
+-83.53598252049096
+11
+317.39093237733323
+21
+-1.1134146989805194e-12
+31
+425.50307997950904
+12
+175.41827612733323
+22
+-1.1545390294839808e-12
+32
+-167.16098252049096
+13
+175.41827612733323
+23
+-1.1545390294839808e-12
+33
+-167.16098252049096
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+175.41827612733323
+20
+-1.1545390294839808e-12
+30
+-167.16098252049096
+11
+317.39093237733323
+21
+-1.1134146989805194e-12
+31
+425.50307997950904
+12
+593.1682761273332
+22
+-1.1589576954379455e-12
+32
+-230.84067002049096
+13
+593.1682761273332
+23
+-1.1589576954379455e-12
+33
+-230.84067002049096
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+593.1682761273332
+20
+-1.1589576954379455e-12
+30
+-230.84067002049096
+11
+317.39093237733323
+21
+-1.1134146989805194e-12
+31
+425.50307997950904
+12
+854.4495261273332
+22
+-1.161962290708446e-12
+32
+-274.14145127049096
+13
+854.4495261273332
+23
+-1.161962290708446e-12
+33
+-274.14145127049096
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+854.4495261273332
+20
+-1.161962290708446e-12
+30
+-274.14145127049096
+11
+317.39093237733323
+21
+-1.1134146989805194e-12
+31
+425.50307997950904
+12
+1020.0706198773332
+22
+-1.1651051217559383e-12
+32
+-319.43442002049096
+13
+1020.0706198773332
+23
+-1.1651051217559383e-12
+33
+-319.43442002049096
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+2709.9964011273332
+20
+-1.0842339396091583e-12
+30
+846.042142479509
+11
+2575.4065573773332
+21
+-1.1742363712869048e-12
+31
+-451.02959437277104
+12
+2575.4065573773332
+22
+-1.0831182955736707e-12
+32
+862.120267479509
+13
+2575.4065573773332
+23
+-1.0831182955736707e-12
+33
+862.120267479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+2575.4065573773332
+20
+-1.1742363712869048e-12
+30
+-451.02959437277104
+11
+2709.9964011273332
+21
+-1.0842339396091583e-12
+31
+846.042142479509
+12
+2795.6839011273332
+22
+-1.0865888267277968e-12
+32
+812.104642479509
+13
+2795.6839011273332
+23
+-1.0865888267277968e-12
+33
+812.104642479509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+2575.4065573773332
+20
+-1.1742363712869048e-12
+30
+-451.02959437277104
+11
+2795.6839011273332
+21
+-1.0865888267277968e-12
+31
+812.104642479509
+12
+2883.6565573773332
+22
+-1.0873824627180562e-12
+32
+800.667142479509
+13
+2883.6565573773332
+23
+-1.0873824627180562e-12
+33
+800.667142479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+979.8987448773332
+20
+-1.0916645191982877e-12
+30
+738.956204979509
+11
+1020.0706198773332
+21
+-1.1651051217559383e-12
+31
+-319.43442002049096
+12
+968.4260886273332
+22
+-1.0981404587745436e-12
+32
+645.628079979509
+13
+968.4260886273332
+23
+-1.0981404587745436e-12
+33
+645.628079979509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+1020.0706198773332
+20
+-1.1651051217559383e-12
+30
+-319.43442002049096
+11
+979.8987448773332
+21
+-1.0916645191982877e-12
+31
+738.956204979509
+12
+1272.1057761273332
+22
+-1.0906285640224778e-12
+32
+753.885892479509
+13
+1272.1057761273332
+23
+-1.0906285640224778e-12
+33
+753.885892479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+377.42608862733323
+20
+-1.0961563687988951e-12
+30
+674.221829979509
+11
+317.39093237733323
+21
+-1.1134146989805194e-12
+31
+425.50307997950904
+12
+316.44171362733323
+22
+-1.100508356319252e-12
+32
+611.503079979509
+13
+316.44171362733323
+23
+-1.100508356319252e-12
+33
+611.503079979509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+317.39093237733323
+20
+-1.1134146989805194e-12
+30
+425.50307997950904
+11
+377.42608862733323
+21
+-1.0961563687988951e-12
+31
+674.221829979509
+12
+1020.0706198773332
+22
+-1.1651051217559383e-12
+32
+-319.43442002049096
+13
+1020.0706198773332
+23
+-1.1651051217559383e-12
+33
+-319.43442002049096
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+1020.0706198773332
+20
+-1.1651051217559383e-12
+30
+-319.43442002049096
+11
+377.42608862733323
+21
+-1.0961563687988951e-12
+31
+674.221829979509
+12
+470.02765112733323
+22
+-1.0964279614431027e-12
+32
+670.307767479509
+13
+470.02765112733323
+23
+-1.0964279614431027e-12
+33
+670.307767479509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+1020.0706198773332
+20
+-1.1651051217559383e-12
+30
+-319.43442002049096
+11
+470.02765112733323
+21
+-1.0964279614431027e-12
+31
+670.307767479509
+12
+968.4260886273332
+22
+-1.0981404587745436e-12
+32
+645.628079979509
+13
+968.4260886273332
+23
+-1.0981404587745436e-12
+33
+645.628079979509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+1272.1057761273332
+20
+-1.0906285640224778e-12
+30
+753.885892479509
+11
+1534.0198386273332
+21
+-1.1682455133485425e-12
+31
+-364.69223252049096
+12
+1020.0706198773332
+22
+-1.1651051217559383e-12
+32
+-319.43442002049096
+13
+1020.0706198773332
+23
+-1.1651051217559383e-12
+33
+-319.43442002049096
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+1534.0198386273332
+20
+-1.1682455133485425e-12
+30
+-364.69223252049096
+11
+1272.1057761273332
+21
+-1.0906285640224778e-12
+31
+753.885892479509
+12
+2575.4065573773332
+22
+-1.0831182955736707e-12
+32
+862.120267479509
+13
+2575.4065573773332
+23
+-1.0831182955736707e-12
+33
+862.120267479509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+1534.0198386273332
+20
+-1.1682455133485425e-12
+30
+-364.69223252049096
+11
+2575.4065573773332
+21
+-1.0831182955736707e-12
+31
+862.120267479509
+12
+2575.4065573773332
+22
+-1.1742363712869048e-12
+32
+-451.02959437277104
+13
+2575.4065573773332
+23
+-1.1742363712869048e-12
+33
+-451.02959437277104
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+1469.1682761273332
+20
+-1.068346583074642e-12
+30
+1075.003079979509
+11
+1272.1057761273332
+21
+-1.0906285640224778e-12
+31
+753.885892479509
+12
+1272.1057761273332
+22
+-1.068346583074642e-12
+32
+1075.003079979509
+13
+1272.1057761273332
+23
+-1.068346583074642e-12
+33
+1075.003079979509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+1272.1057761273332
+20
+-1.0906285640224778e-12
+30
+753.885892479509
+11
+1469.1682761273332
+21
+-1.068346583074642e-12
+31
+1075.003079979509
+12
+2575.4065573773332
+22
+-1.0831182955736707e-12
+32
+862.120267479509
+13
+2575.4065573773332
+23
+-1.0831182955736707e-12
+33
+862.120267479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+1469.1682761273332
+20
+-1.068346583074642e-12
+30
+1075.003079979509
+11
+2253.6799948773332
+21
+-1.0670853848974982e-12
+31
+1093.178861229509
+12
+2575.4065573773332
+22
+-1.0831182955736707e-12
+32
+862.120267479509
+13
+2575.4065573773332
+23
+-1.0831182955736707e-12
+33
+862.120267479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+2253.6799948773332
+20
+-1.0670853848974982e-12
+30
+1093.178861229509
+11
+1469.1682761273332
+21
+-1.068346583074642e-12
+31
+1075.003079979509
+12
+2201.2854636273332
+22
+-1.0639238513625304e-12
+32
+1138.741361229509
+13
+2201.2854636273332
+23
+-1.0639238513625304e-12
+33
+1138.741361229509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+2621.3323386273332
+20
+-1.0337372234256459e-12
+30
+1573.776517479509
+11
+2267.5667136273332
+21
+-1.0498238021093564e-12
+31
+1341.944486229509
+12
+2241.5979636273332
+22
+-1.0327159049791645e-12
+32
+1588.495267479509
+13
+2241.5979636273332
+23
+-1.0327159049791645e-12
+33
+1588.495267479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+2267.5667136273332
+20
+-1.0498238021093564e-12
+30
+1341.944486229509
+11
+2621.3323386273332
+21
+-1.0337372234256459e-12
+31
+1573.776517479509
+12
+2599.1370261273332
+22
+-1.0383673088032452e-12
+32
+1507.049954979509
+13
+2599.1370261273332
+23
+-1.0383673088032452e-12
+33
+1507.049954979509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+2267.5667136273332
+20
+-1.0498238021093564e-12
+30
+1341.944486229509
+11
+2599.1370261273332
+21
+-1.0383673088032452e-12
+31
+1507.049954979509
+12
+2575.4065573773332
+22
+-1.0831182955736707e-12
+32
+862.120267479509
+13
+2575.4065573773332
+23
+-1.0831182955736707e-12
+33
+862.120267479509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+2575.4065573773332
+20
+-1.0831182955736707e-12
+30
+862.120267479509
+11
+2253.6799948773332
+21
+-1.0670853848974982e-12
+31
+1093.178861229509
+12
+2267.5667136273332
+22
+-1.0498238021093564e-12
+32
+1341.944486229509
+13
+2267.5667136273332
+23
+-1.0498238021093564e-12
+33
+1341.944486229509
+70
+12
+ 0
+3DFACE
+ 8
+ship6
+10
+2201.4260886273332
+20
+-1.0509199305057393e-12
+30
+1326.147611229509
+11
+1469.1682761273332
+21
+-1.068346583074642e-12
+31
+1075.003079979509
+12
+1452.9846823773332
+22
+-1.0503100667837162e-12
+32
+1334.936673729509
+13
+1452.9846823773332
+23
+-1.0503100667837162e-12
+33
+1334.936673729509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+1469.1682761273332
+20
+-1.068346583074642e-12
+30
+1075.003079979509
+11
+2201.4260886273332
+21
+-1.0509199305057393e-12
+31
+1326.147611229509
+12
+2201.2854636273332
+22
+-1.0639238513625304e-12
+32
+1138.741361229509
+13
+2201.2854636273332
+23
+-1.0639238513625304e-12
+33
+1138.741361229509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+2883.6565573773332
+20
+-1.0873824627180562e-12
+30
+800.667142479509
+11
+2683.8987448773332
+21
+-1.1748605018534197e-12
+31
+-460.02426377049096
+12
+2575.4065573773332
+22
+-1.1742363712869048e-12
+32
+-451.02959437277104
+13
+2575.4065573773332
+23
+-1.1742363712869048e-12
+33
+-451.02959437277104
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+2683.8987448773332
+20
+-1.1748605018534197e-12
+30
+-460.02426377049096
+11
+2883.6565573773332
+21
+-1.0873824627180562e-12
+31
+800.667142479509
+12
+3749.1448386273332
+22
+-1.180164689931762e-12
+32
+-536.465670020491
+13
+3749.1448386273332
+23
+-1.180164689931762e-12
+33
+-536.465670020491
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+3749.1448386273332
+20
+-1.180164689931762e-12
+30
+-536.465670020491
+11
+2883.6565573773332
+21
+-1.0873824627180562e-12
+31
+800.667142479509
+12
+5094.117494877333
+22
+-1.1857681178097101e-12
+32
+-617.219576270491
+13
+5094.117494877333
+23
+-1.1857681178097101e-12
+33
+-617.219576270491
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+5845.910463627333
+20
+-1.082062824758756e-12
+30
+877.331204979509
+11
+5912.355776127333
+21
+-1.1254021803006053e-12
+31
+252.74526747950904
+12
+5094.117494877333
+22
+-1.1857681178097101e-12
+32
+-617.219576270491
+13
+5094.117494877333
+23
+-1.1857681178097101e-12
+33
+-617.219576270491
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+5912.355776127333
+20
+-1.1254021803006053e-12
+30
+252.74526747950904
+11
+5845.910463627333
+21
+-1.082062824758756e-12
+31
+877.331204979509
+12
+5912.414369877333
+22
+-1.121020106169962e-12
+32
+315.89761122950904
+13
+5912.414369877333
+23
+-1.121020106169962e-12
+33
+315.89761122950904
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+5912.414369877333
+20
+-1.121020106169962e-12
+30
+315.89761122950904
+11
+5845.910463627333
+21
+-1.082062824758756e-12
+31
+877.331204979509
+12
+5920.957338627333
+22
+-1.0886900105380737e-12
+32
+781.823392479509
+13
+5920.957338627333
+23
+-1.0886900105380737e-12
+33
+781.823392479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+3499.2424948773332
+20
+-1.0850633542711097e-12
+30
+834.089017479509
+11
+5094.117494877333
+21
+-1.1857681178097101e-12
+31
+-617.219576270491
+12
+2883.6565573773332
+22
+-1.0873824627180562e-12
+32
+800.667142479509
+13
+2883.6565573773332
+23
+-1.0873824627180562e-12
+33
+800.667142479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+5094.117494877333
+20
+-1.1857681178097101e-12
+30
+-617.219576270491
+11
+3499.2424948773332
+21
+-1.0850633542711097e-12
+31
+834.089017479509
+12
+3971.2385886273332
+22
+-1.084429909151835e-12
+32
+843.217923729509
+13
+3971.2385886273332
+23
+-1.084429909151835e-12
+33
+843.217923729509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+5094.117494877333
+20
+-1.1857681178097101e-12
+30
+-617.219576270491
+11
+3971.2385886273332
+21
+-1.084429909151835e-12
+31
+843.217923729509
+12
+4736.297182377333
+22
+-1.0819083259491769e-12
+32
+879.557767479509
+13
+4736.297182377333
+23
+-1.0819083259491769e-12
+33
+879.557767479509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+5094.117494877333
+20
+-1.1857681178097101e-12
+30
+-617.219576270491
+11
+4736.297182377333
+21
+-1.0819083259491769e-12
+31
+879.557767479509
+12
+5486.625307377333
+22
+-1.0779230698136633e-12
+32
+936.991361229509
+13
+5486.625307377333
+23
+-1.0779230698136633e-12
+33
+936.991361229509
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+5094.117494877333
+20
+-1.1857681178097101e-12
+30
+-617.219576270491
+11
+5486.625307377333
+21
+-1.0779230698136633e-12
+31
+936.991361229509
+12
+5845.910463627333
+22
+-1.082062824758756e-12
+32
+877.331204979509
+13
+5845.910463627333
+23
+-1.082062824758756e-12
+33
+877.331204979509
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+5845.910463627333
+20
+-1.082062824758756e-12
+30
+877.331204979509
+11
+5486.625307377333
+21
+-1.0779230698136633e-12
+31
+936.991361229509
+12
+5656.078432377333
+22
+-1.0795241653718812e-12
+32
+913.917142479509
+13
+5656.078432377333
+23
+-1.0795241653718812e-12
+33
+913.917142479509
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+5912.355776127333
+20
+-1.1254021803006053e-12
+30
+252.74526747950904
+11
+5960.871401127333
+21
+-1.1881986280298795e-12
+31
+-652.246920020491
+12
+5094.117494877333
+22
+-1.1857681178097101e-12
+32
+-617.219576270491
+13
+5094.117494877333
+23
+-1.1857681178097101e-12
+33
+-617.219576270491
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+5960.871401127333
+20
+-1.1881986280298795e-12
+30
+-652.246920020491
+11
+5912.355776127333
+21
+-1.1254021803006053e-12
+31
+252.74526747950904
+12
+7121.297182377333
+22
+-1.1906657300733703e-12
+32
+-687.801607520491
+13
+7121.297182377333
+23
+-1.1906657300733703e-12
+33
+-687.801607520491
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+7718.285463627333
+20
+-1.1215819939458527e-12
+30
+307.79995497950904
+11
+7902.914369877333
+21
+-1.1536079708683589e-12
+31
+-153.74301377049096
+12
+6844.125307377333
+22
+-1.1233123806131395e-12
+32
+282.86245497950904
+13
+6844.125307377333
+23
+-1.1233123806131395e-12
+33
+282.86245497950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+7902.914369877333
+20
+-1.1536079708683589e-12
+30
+-153.74301377049096
+11
+7718.285463627333
+21
+-1.1215819939458527e-12
+31
+307.79995497950904
+12
+8368.793276127333
+22
+-1.1195003257746805e-12
+32
+337.79995497950904
+13
+8368.793276127333
+23
+-1.1195003257746805e-12
+33
+337.79995497950904
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+7902.914369877333
+20
+-1.1536079708683589e-12
+30
+-153.74301377049096
+11
+8368.793276127333
+21
+-1.1195003257746805e-12
+31
+337.79995497950904
+12
+8330.015932377333
+22
+-1.1256705203382955e-12
+32
+248.87807997950904
+13
+8330.015932377333
+23
+-1.1256705203382955e-12
+33
+248.87807997950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+6462.222963627333
+20
+-1.1252574393105785e-12
+30
+254.83120497950904
+11
+7121.297182377333
+21
+-1.1906657300733703e-12
+31
+-687.801607520491
+12
+5912.355776127333
+22
+-1.1254021803006053e-12
+32
+252.74526747950904
+13
+5912.355776127333
+23
+-1.1254021803006053e-12
+33
+252.74526747950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+7121.297182377333
+20
+-1.1906657300733703e-12
+30
+-687.801607520491
+11
+6462.222963627333
+21
+-1.1252574393105785e-12
+31
+254.83120497950904
+12
+6844.125307377333
+22
+-1.1233123806131395e-12
+32
+282.86245497950904
+13
+6844.125307377333
+23
+-1.1233123806131395e-12
+33
+282.86245497950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+7410.398744877333
+20
+-1.170971197610171e-12
+30
+-403.97348252049096
+11
+7121.297182377333
+21
+-1.1906657300733703e-12
+31
+-687.801607520491
+12
+6844.125307377333
+22
+-1.1233123806131395e-12
+32
+282.86245497950904
+13
+6844.125307377333
+23
+-1.1233123806131395e-12
+33
+282.86245497950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+7121.297182377333
+20
+-1.1906657300733703e-12
+30
+-687.801607520491
+11
+7410.398744877333
+21
+-1.170971197610171e-12
+31
+-403.97348252049096
+12
+7267.547182377333
+22
+-1.1923034174549096e-12
+32
+-711.403170020491
+13
+7267.547182377333
+23
+-1.1923034174549096e-12
+33
+-711.403170020491
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+7267.547182377333
+20
+-1.1923034174549096e-12
+30
+-711.403170020491
+11
+7410.398744877333
+21
+-1.170971197610171e-12
+31
+-403.97348252049096
+12
+7608.304994877333
+22
+-1.1937117960769683e-12
+32
+-731.700045020491
+13
+7608.304994877333
+23
+-1.1937117960769683e-12
+33
+-731.700045020491
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+7902.914369877333
+20
+-1.1536079708683589e-12
+30
+-153.74301377049096
+11
+7410.398744877333
+21
+-1.170971197610171e-12
+31
+-403.97348252049096
+12
+6844.125307377333
+22
+-1.1233123806131395e-12
+32
+282.86245497950904
+13
+6844.125307377333
+23
+-1.1233123806131395e-12
+33
+282.86245497950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+7410.398744877333
+20
+-1.170971197610171e-12
+30
+-403.97348252049096
+11
+7902.914369877333
+21
+-1.1536079708683589e-12
+31
+-153.74301377049096
+12
+7502.730776127333
+22
+-1.1679527787619715e-12
+32
+-360.47348252049096
+13
+7502.730776127333
+23
+-1.1679527787619715e-12
+33
+-360.47348252049096
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+6519.187807377333
+20
+-1.1220536218908839e-12
+30
+301.00307997950904
+11
+6844.125307377333
+21
+-1.1233123806131395e-12
+31
+282.86245497950904
+12
+6462.222963627333
+22
+-1.1252574393105785e-12
+32
+254.83120497950904
+13
+6462.222963627333
+23
+-1.1252574393105785e-12
+33
+254.83120497950904
+70
+1
+ 0
+3DFACE
+ 8
+ship6
+10
+6844.125307377333
+20
+-1.1233123806131395e-12
+30
+282.86245497950904
+11
+6519.187807377333
+21
+-1.1220536218908839e-12
+31
+301.00307997950904
+12
+6597.422182377333
+22
+-1.119554806933848e-12
+32
+337.01479872950904
+13
+6597.422182377333
+23
+-1.119554806933848e-12
+33
+337.01479872950904
+70
+13
+ 0
+3DFACE
+ 8
+ship6
+10
+6844.125307377333
+20
+-1.1233123806131395e-12
+30
+282.86245497950904
+11
+6597.422182377333
+21
+-1.119554806933848e-12
+31
+337.01479872950904
+12
+6798.879213627333
+22
+-1.1226146965151451e-12
+32
+292.91714247950904
+13
+6798.879213627333
+23
+-1.1226146965151451e-12
+33
+292.91714247950904
+70
+3
+ 0
+3DFACE
+ 8
+ship6
+10
+6798.879213627333
+20
+-1.1226146965151451e-12
+30
+292.91714247950904
+11
+6597.422182377333
+21
+-1.119554806933848e-12
+31
+337.01479872950904
+12
+6711.879213627333
+22
+-1.120023995423991e-12
+32
+330.25307997950904
+13
+6711.879213627333
+23
+-1.120023995423991e-12
+33
+330.25307997950904
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1417.806640625
+20
+1.2593217484438424e-12
+30
+553.3181820138116
+11
+1773.400390625
+21
+1.1951219247337787e-12
+31
+-371.89878482744916
+12
+14.638671875
+22
+1.1937117960769683e-12
+32
+-392.22088048618843
+13
+14.638671875
+23
+1.1937117960769683e-12
+33
+-392.22088048618843
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.1951219247337787e-12
+30
+-371.89878482744916
+11
+1417.806640625
+21
+1.2593217484438424e-12
+31
+553.3181820138116
+12
+1548.4543265297798
+22
+8.875013776411845e-13
+32
+553.3181820138088
+13
+1548.4543265297798
+23
+8.875013776411845e-13
+33
+553.3181820138088
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.1951219247337787e-12
+30
+-371.89878482744916
+11
+1548.4543265297798
+21
+8.875013776411845e-13
+31
+553.3181820138088
+12
+1548.892578125
+22
+1.2592648278297869e-12
+32
+552.4978695138116
+13
+1548.892578125
+23
+1.2592648278297869e-12
+33
+552.4978695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.1951219247337787e-12
+30
+-371.89878482744916
+11
+1548.892578125
+21
+1.2592648278297869e-12
+31
+552.4978695138116
+12
+1549.0772780519674
+22
+8.865082253681158e-13
+32
+552.5570169376306
+13
+1549.0772780519674
+23
+8.865082253681158e-13
+33
+552.5570169376306
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+818.533203125
+20
+1.2490256225128338e-12
+30
+404.93536951381157
+11
+445.150390625
+21
+1.235223186756007e-12
+31
+206.02130701381157
+12
+412.291015625
+22
+1.241346218525119e-12
+32
+294.26349451381157
+13
+412.291015625
+23
+1.241346218525119e-12
+33
+294.26349451381157
+70
+0
+ 0
+3DFACE
+ 8
+ship5
+10
+1164.013671875
+20
+1.3048061979839543e-12
+30
+1208.8181820138116
+11
+1417.806640625
+21
+1.2593217484438424e-12
+31
+553.3181820138116
+12
+1067.626953125
+22
+1.2608472209005295e-12
+32
+575.3025570138116
+13
+1067.626953125
+23
+1.2608472209005295e-12
+33
+575.3025570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1417.806640625
+20
+1.2593217484438424e-12
+30
+553.3181820138116
+11
+1164.013671875
+21
+1.3048061979839543e-12
+31
+1208.8181820138116
+12
+1462.783203125
+22
+1.3022626596873033e-12
+32
+1172.1619320138116
+13
+1462.783203125
+23
+1.3022626596873033e-12
+33
+1172.1619320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+818.767578125
+20
+1.2547502099835572e-12
+30
+487.43536951381157
+11
+951.306640625
+21
+1.2549518715876395e-12
+31
+490.34161951381157
+12
+818.533203125
+22
+1.2490256225128338e-12
+32
+404.93536951381157
+13
+818.533203125
+23
+1.2490256225128338e-12
+33
+404.93536951381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+951.306640625
+20
+1.2549518715876395e-12
+30
+490.34161951381157
+11
+818.767578125
+21
+1.2547502099835572e-12
+31
+487.43536951381157
+12
+856.490234375
+22
+1.256714784320101e-12
+32
+515.7478695138116
+13
+856.490234375
+23
+1.256714784320101e-12
+33
+515.7478695138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+143.779296875
+20
+1.2497314381271218e-12
+30
+415.10724451381157
+11
+126.435546875
+21
+1.2353110071319784e-12
+31
+207.28693201381157
+12
+106.033203125
+22
+1.248389737938671e-12
+32
+395.77130701381157
+13
+106.033203125
+23
+1.248389737938671e-12
+33
+395.77130701381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+126.435546875
+20
+1.2353110071319784e-12
+30
+207.28693201381157
+11
+143.779296875
+21
+1.2497314381271218e-12
+31
+415.10724451381157
+12
+180.693359375
+22
+1.236929178874413e-12
+32
+230.60724451381157
+13
+180.693359375
+23
+1.236929178874413e-12
+33
+230.60724451381157
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+126.435546875
+20
+1.2353110071319784e-12
+30
+207.28693201381157
+11
+180.693359375
+21
+1.236929178874413e-12
+31
+230.60724451381157
+12
+229.830078125
+22
+1.2352166815429722e-12
+32
+205.92755701381157
+13
+229.830078125
+23
+1.2352166815429722e-12
+33
+205.92755701381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+180.693359375
+20
+1.236929178874413e-12
+30
+230.60724451381157
+11
+143.779296875
+21
+1.2497314381271218e-12
+31
+415.10724451381157
+12
+151.080078125
+22
+1.2487800507207658e-12
+32
+401.39630701381157
+13
+151.080078125
+23
+1.2487800507207658e-12
+33
+401.39630701381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+71.310546875
+20
+1.2268379671540042e-12
+30
+85.17755701381157
+11
+445.150390625
+21
+1.235223186756007e-12
+31
+206.02130701381157
+12
+70.548828125
+22
+1.2032614488122206e-12
+32
+-254.59588048618843
+13
+70.548828125
+23
+1.2032614488122206e-12
+33
+-254.59588048618843
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+445.150390625
+20
+1.235223186756007e-12
+30
+206.02130701381157
+11
+71.310546875
+21
+1.2268379671540042e-12
+31
+85.17755701381157
+12
+381.763671875
+22
+1.2352085500266785e-12
+32
+205.81036951381157
+13
+381.763671875
+23
+1.2352085500266785e-12
+33
+205.81036951381157
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+381.763671875
+20
+1.2352085500266785e-12
+30
+205.81036951381157
+11
+71.310546875
+21
+1.2268379671540042e-12
+31
+85.17755701381157
+12
+86.369140625
+22
+1.2351548820191405e-12
+32
+205.03693201381157
+13
+86.369140625
+23
+1.2351548820191405e-12
+33
+205.03693201381157
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+381.763671875
+20
+1.2352085500266785e-12
+30
+205.81036951381157
+11
+86.369140625
+21
+1.2351548820191405e-12
+31
+205.03693201381157
+12
+229.830078125
+22
+1.2352166815429722e-12
+32
+205.92755701381157
+13
+229.830078125
+23
+1.2352166815429722e-12
+33
+205.92755701381157
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+229.830078125
+20
+1.2352166815429722e-12
+30
+205.92755701381157
+11
+86.369140625
+21
+1.2351548820191405e-12
+31
+205.03693201381157
+12
+126.435546875
+22
+1.2353110071319784e-12
+32
+207.28693201381157
+13
+126.435546875
+23
+1.2353110071319784e-12
+33
+207.28693201381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+381.763671875
+20
+1.2352085500266785e-12
+30
+205.81036951381157
+11
+229.830078125
+21
+1.2352166815429722e-12
+31
+205.92755701381157
+12
+280.326171875
+22
+1.236085127483133e-12
+32
+218.44318201381157
+13
+280.326171875
+23
+1.236085127483133e-12
+33
+218.44318201381157
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+381.763671875
+20
+1.2352085500266785e-12
+30
+205.81036951381157
+11
+280.326171875
+21
+1.236085127483133e-12
+31
+218.44318201381157
+12
+334.748046875
+22
+1.2360217016560426e-12
+32
+217.52911951381157
+13
+334.748046875
+23
+1.2360217016560426e-12
+33
+217.52911951381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+292.923828125
+20
+1.255864227715786e-12
+30
+503.49005701381157
+11
+229.830078125
+21
+1.2352166815429722e-12
+31
+205.92755701381157
+12
+180.693359375
+22
+1.236929178874413e-12
+32
+230.60724451381157
+13
+180.693359375
+23
+1.236929178874413e-12
+33
+230.60724451381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+229.830078125
+20
+1.2352166815429722e-12
+30
+205.92755701381157
+11
+292.923828125
+21
+1.255864227715786e-12
+31
+503.49005701381157
+12
+324.072265625
+22
+1.2548380303595286e-12
+32
+488.70099451381157
+13
+324.072265625
+23
+1.2548380303595286e-12
+33
+488.70099451381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+365.099609375
+20
+1.266547413822372e-12
+30
+657.4509945138116
+11
+523.830078125
+21
+1.2571912911749084e-12
+31
+522.6150570138116
+12
+347.369140625
+22
+1.2640380278941543e-12
+32
+621.2869320138116
+13
+347.369140625
+23
+1.2640380278941543e-12
+33
+621.2869320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+523.830078125
+20
+1.2571912911749084e-12
+30
+522.6150570138116
+11
+365.099609375
+21
+1.266547413822372e-12
+31
+657.4509945138116
+12
+541.595703125
+22
+1.260658569722517e-12
+32
+572.5838070138116
+13
+541.595703125
+23
+1.260658569722517e-12
+33
+572.5838070138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+599.943359375
+20
+1.265524469072632e-12
+30
+642.7088070138116
+11
+541.595703125
+21
+1.260658569722517e-12
+31
+572.5838070138116
+12
+541.595703125
+22
+1.265524469072632e-12
+32
+642.7088070138116
+13
+541.595703125
+23
+1.265524469072632e-12
+33
+642.7088070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+456.822265625
+20
+1.2456917008324409e-12
+30
+356.88849451381157
+11
+818.533203125
+21
+1.2490256225128338e-12
+31
+404.93536951381157
+12
+412.291015625
+22
+1.241346218525119e-12
+32
+294.26349451381157
+13
+412.291015625
+23
+1.241346218525119e-12
+33
+294.26349451381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+818.533203125
+20
+1.2490256225128338e-12
+30
+404.93536951381157
+11
+456.822265625
+21
+1.2456917008324409e-12
+31
+356.88849451381157
+12
+497.298828125
+22
+1.2541257095322056e-12
+32
+478.43536951381157
+13
+497.298828125
+23
+1.2541257095322056e-12
+33
+478.43536951381157
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+818.533203125
+20
+1.2490256225128338e-12
+30
+404.93536951381157
+11
+497.298828125
+21
+1.2541257095322056e-12
+31
+478.43536951381157
+12
+523.830078125
+22
+1.2571912911749084e-12
+32
+522.6150570138116
+13
+523.830078125
+23
+1.2571912911749084e-12
+33
+522.6150570138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+818.533203125
+20
+1.2490256225128338e-12
+30
+404.93536951381157
+11
+523.830078125
+21
+1.2571912911749084e-12
+31
+522.6150570138116
+12
+748.009765625
+22
+1.2509950757591537e-12
+32
+433.31818201381157
+13
+748.009765625
+23
+1.2509950757591537e-12
+33
+433.31818201381157
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+748.009765625
+20
+1.2509950757591537e-12
+30
+433.31818201381157
+11
+523.830078125
+21
+1.2571912911749084e-12
+31
+522.6150570138116
+12
+541.595703125
+22
+1.260658569722517e-12
+32
+572.5838070138116
+13
+541.595703125
+23
+1.260658569722517e-12
+33
+572.5838070138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+748.009765625
+20
+1.2509950757591537e-12
+30
+433.31818201381157
+11
+541.595703125
+21
+1.260658569722517e-12
+31
+572.5838070138116
+12
+654.318359375
+22
+1.2582630250224103e-12
+32
+538.0603695138116
+13
+654.318359375
+23
+1.2582630250224103e-12
+33
+538.0603695138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+654.318359375
+20
+1.2582630250224103e-12
+30
+538.0603695138116
+11
+541.595703125
+21
+1.260658569722517e-12
+31
+572.5838070138116
+12
+599.943359375
+22
+1.265524469072632e-12
+32
+642.7088070138116
+13
+599.943359375
+23
+1.265524469072632e-12
+33
+642.7088070138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+599.943359375
+20
+1.265524469072632e-12
+30
+642.7088070138116
+11
+654.845703125
+21
+1.2696146217683335e-12
+31
+701.6541195138116
+12
+654.318359375
+22
+1.2582630250224103e-12
+32
+538.0603695138116
+13
+654.318359375
+23
+1.2582630250224103e-12
+33
+538.0603695138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+654.845703125
+20
+1.2696146217683335e-12
+30
+701.6541195138116
+11
+599.943359375
+21
+1.265524469072632e-12
+31
+642.7088070138116
+12
+675.400390625
+22
+1.3668659303370245e-12
+32
+2103.1931820138125
+13
+675.400390625
+23
+1.3668659303370245e-12
+33
+2103.1931820138125
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+654.845703125
+20
+1.2696146217683335e-12
+30
+701.6541195138116
+11
+675.400390625
+21
+1.3668659303370245e-12
+31
+2103.1931820138125
+12
+691.103515625
+22
+1.3616194760243672e-12
+32
+2027.5838070138125
+13
+691.103515625
+23
+1.3616194760243672e-12
+33
+2027.5838070138125
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+654.845703125
+20
+1.2696146217683335e-12
+30
+701.6541195138116
+11
+688.021484375
+21
+1.2600877372787034e-12
+31
+564.3572445138116
+12
+654.318359375
+22
+1.2582630250224103e-12
+32
+538.0603695138116
+13
+654.318359375
+23
+1.2582630250224103e-12
+33
+538.0603695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+688.021484375
+20
+1.2600877372787034e-12
+30
+564.3572445138116
+11
+654.845703125
+21
+1.2696146217683335e-12
+31
+701.6541195138116
+12
+703.279296875
+22
+1.2696146217683335e-12
+32
+701.6541195138116
+13
+703.279296875
+23
+1.2696146217683335e-12
+33
+701.6541195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1067.626953125
+20
+1.2608472209005295e-12
+30
+575.3025570138116
+11
+951.306640625
+21
+1.2549518715876395e-12
+31
+490.34161951381157
+12
+967.408203125
+22
+1.2618034872166617e-12
+32
+589.0838070138116
+13
+967.408203125
+23
+1.2618034872166617e-12
+33
+589.0838070138116
+70
+0
+ 0
+3DFACE
+ 8
+ship5
+10
+27.705078125
+20
+1.2024141448144232e-12
+30
+-266.80681798618843
+11
+14.638671875
+21
+1.1937117960769683e-12
+31
+-392.22088048618843
+12
+13.806640625
+22
+1.1983304973317566e-12
+32
+-325.65838048618843
+13
+13.806640625
+23
+1.1983304973317566e-12
+33
+-325.65838048618843
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+14.638671875
+20
+1.1937117960769683e-12
+30
+-392.22088048618843
+11
+27.705078125
+21
+1.2024141448144232e-12
+31
+-266.80681798618843
+12
+66.142578125
+22
+1.2025523805914151e-12
+32
+-264.81463048618843
+13
+66.142578125
+23
+1.2025523805914151e-12
+33
+-264.81463048618843
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+14.638671875
+20
+1.1937117960769683e-12
+30
+-392.22088048618843
+11
+66.142578125
+21
+1.2025523805914151e-12
+31
+-264.81463048618843
+12
+1417.806640625
+22
+1.2593217484438424e-12
+32
+553.3181820138116
+13
+1417.806640625
+23
+1.2593217484438424e-12
+33
+553.3181820138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+1417.806640625
+20
+1.2593217484438424e-12
+30
+553.3181820138116
+11
+66.142578125
+21
+1.2025523805914151e-12
+31
+-264.81463048618843
+12
+70.548828125
+22
+1.2032614488122206e-12
+32
+-254.59588048618843
+13
+70.548828125
+23
+1.2032614488122206e-12
+33
+-254.59588048618843
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+1417.806640625
+20
+1.2593217484438424e-12
+30
+553.3181820138116
+11
+70.548828125
+21
+1.2032614488122206e-12
+31
+-254.59588048618843
+12
+445.150390625
+22
+1.235223186756007e-12
+32
+206.02130701381157
+13
+445.150390625
+23
+1.235223186756007e-12
+33
+206.02130701381157
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+1417.806640625
+20
+1.2593217484438424e-12
+30
+553.3181820138116
+11
+445.150390625
+21
+1.235223186756007e-12
+31
+206.02130701381157
+12
+818.533203125
+22
+1.2490256225128338e-12
+32
+404.93536951381157
+13
+818.533203125
+23
+1.2490256225128338e-12
+33
+404.93536951381157
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+1417.806640625
+20
+1.2593217484438424e-12
+30
+553.3181820138116
+11
+818.533203125
+21
+1.2490256225128338e-12
+31
+404.93536951381157
+12
+951.306640625
+22
+1.2549518715876395e-12
+32
+490.34161951381157
+13
+951.306640625
+23
+1.2549518715876395e-12
+33
+490.34161951381157
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+1417.806640625
+20
+1.2593217484438424e-12
+30
+553.3181820138116
+11
+951.306640625
+21
+1.2549518715876395e-12
+31
+490.34161951381157
+12
+1067.626953125
+22
+1.2608472209005295e-12
+32
+575.3025570138116
+13
+1067.626953125
+23
+1.2608472209005295e-12
+33
+575.3025570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1463.744140625
+20
+1.262992314898792e-12
+30
+606.2166195138116
+11
+1548.4543265297798
+21
+8.875013776411845e-13
+31
+553.3181820138088
+12
+1417.806640625
+22
+1.2593217484438424e-12
+32
+553.3181820138116
+13
+1417.806640625
+23
+1.2593217484438424e-12
+33
+553.3181820138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1548.4543265297798
+20
+8.875013776411845e-13
+30
+553.3181820138088
+11
+1463.744140625
+21
+1.262992314898792e-12
+31
+606.2166195138116
+12
+1520.193359375
+22
+1.262992314898792e-12
+32
+606.2166195138116
+13
+1520.193359375
+23
+1.262992314898792e-12
+33
+606.2166195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.2640510383202241e-12
+30
+621.4744320138116
+11
+1773.400390625
+21
+1.1951219247337787e-12
+31
+-371.89878482744916
+12
+1655.814453125
+22
+1.2618083661264379e-12
+32
+589.1541195138116
+13
+1655.814453125
+23
+1.2618083661264379e-12
+33
+589.1541195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.1951219247337787e-12
+30
+-371.89878482744916
+11
+1773.400390625
+21
+1.2640510383202241e-12
+31
+621.4744320138116
+12
+1831.138671875
+22
+1.2640510383202241e-12
+32
+621.4744320138116
+13
+1831.138671875
+23
+1.2640510383202241e-12
+33
+621.4744320138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.1951219247337787e-12
+30
+-371.89878482744916
+11
+1831.138671875
+21
+1.2640510383202241e-12
+31
+621.4744320138116
+12
+2187.564453125
+22
+1.2640884432951749e-12
+32
+622.0134945138116
+13
+2187.564453125
+23
+1.2640884432951749e-12
+33
+622.0134945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1548.892578125
+20
+5.131864985047363e-13
+30
+553.3181820138088
+11
+1548.892578125
+21
+1.2592648278297869e-12
+31
+552.4978695138116
+12
+1548.4543265297798
+22
+8.875013776411845e-13
+32
+553.3181820138088
+13
+1548.4543265297798
+23
+8.875013776411845e-13
+33
+553.3181820138088
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1548.892578125
+20
+1.2592648278297869e-12
+30
+552.4978695138116
+11
+1548.892578125
+21
+5.131864985047363e-13
+31
+553.3181820138088
+12
+1549.0772780519674
+22
+8.865082253681158e-13
+32
+552.5570169376306
+13
+1549.0772780519674
+23
+8.865082253681158e-13
+33
+552.5570169376306
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1636.572265625
+20
+1.2612131391337433e-12
+30
+580.5759945138116
+11
+1773.400390625
+21
+1.1951219247337787e-12
+31
+-371.89878482744916
+12
+1549.0772780519674
+22
+8.865082253681158e-13
+32
+552.5570169376306
+13
+1549.0772780519674
+23
+8.865082253681158e-13
+33
+552.5570169376306
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.1951219247337787e-12
+30
+-371.89878482744916
+11
+1636.572265625
+21
+1.2612131391337433e-12
+31
+580.5759945138116
+12
+1655.814453125
+22
+1.2618083661264379e-12
+32
+589.1541195138116
+13
+1655.814453125
+23
+1.2618083661264379e-12
+33
+589.1541195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.2640510383202241e-12
+30
+621.4744320138116
+11
+1655.814453125
+21
+1.2618083661264379e-12
+31
+589.1541195138116
+12
+1773.400390625
+22
+1.2719483669446086e-12
+32
+735.2869320138116
+13
+1773.400390625
+23
+1.2719483669446086e-12
+33
+735.2869320138116
+70
+0
+ 0
+3DFACE
+ 8
+ship5
+10
+1912.068359375
+20
+1.3123099612197264e-12
+30
+1316.9588070138116
+11
+2187.564453125
+21
+1.2640884432951749e-12
+31
+622.0134945138116
+12
+1831.138671875
+22
+1.2640510383202241e-12
+32
+621.4744320138116
+13
+1831.138671875
+23
+1.2640510383202241e-12
+33
+621.4744320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+2187.564453125
+20
+1.2640884432951749e-12
+30
+622.0134945138116
+11
+1912.068359375
+21
+1.3123099612197264e-12
+31
+1316.9588070138116
+12
+1928.509765625
+22
+1.3166066544292865e-12
+32
+1378.8806820138125
+13
+1928.509765625
+23
+1.3166066544292865e-12
+33
+1378.8806820138125
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+2187.564453125
+20
+1.2640884432951749e-12
+30
+622.0134945138116
+11
+1928.509765625
+21
+1.3166066544292865e-12
+31
+1378.8806820138125
+12
+1998.517578125
+22
+1.3158764442661175e-12
+32
+1368.3572445138125
+13
+1998.517578125
+23
+1.3158764442661175e-12
+33
+1368.3572445138125
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+2187.564453125
+20
+1.2640884432951749e-12
+30
+622.0134945138116
+11
+1998.517578125
+21
+1.3158764442661175e-12
+31
+1368.3572445138125
+12
+2233.712890625
+22
+1.3152730857571293e-12
+32
+1359.6619320138125
+13
+2233.712890625
+23
+1.3152730857571293e-12
+33
+1359.6619320138125
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+1773.400390625
+20
+1.1951219247337787e-12
+30
+-371.89878482744916
+11
+2232.283203125
+21
+1.2640884432951749e-12
+31
+622.0134945138116
+12
+3129.611328125
+22
+1.2698845881092824e-12
+32
+705.5447445138116
+13
+3129.611328125
+23
+1.2698845881092824e-12
+33
+705.5447445138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+2232.283203125
+20
+1.2640884432951749e-12
+30
+622.0134945138116
+11
+1773.400390625
+21
+1.1951219247337787e-12
+31
+-371.89878482744916
+12
+2187.564453125
+22
+1.2640884432951749e-12
+32
+622.0134945138116
+13
+2187.564453125
+23
+1.2640884432951749e-12
+33
+622.0134945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3129.611328125
+20
+1.2698845881092824e-12
+30
+705.5447445138116
+11
+2232.283203125
+21
+1.2640884432951749e-12
+31
+622.0134945138116
+12
+2365.970703125
+22
+1.2655082060400447e-12
+32
+642.4744320138116
+13
+2365.970703125
+23
+1.2655082060400447e-12
+33
+642.4744320138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3129.611328125
+20
+1.2698845881092824e-12
+30
+705.5447445138116
+11
+2365.970703125
+21
+1.2655082060400447e-12
+31
+642.4744320138116
+12
+2712.095703125
+22
+1.2696552793498017e-12
+32
+702.2400570138116
+13
+2712.095703125
+23
+1.2696552793498017e-12
+33
+702.2400570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+2299.666015625
+20
+1.271042516029497e-12
+30
+722.2322445138116
+11
+2232.283203125
+21
+1.2640884432951749e-12
+31
+622.0134945138116
+12
+2232.283203125
+22
+1.271042516029497e-12
+32
+722.2322445138116
+13
+2232.283203125
+23
+1.271042516029497e-12
+33
+722.2322445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+2232.283203125
+20
+1.2640884432951749e-12
+30
+622.0134945138116
+11
+2299.666015625
+21
+1.271042516029497e-12
+31
+722.2322445138116
+12
+2365.970703125
+22
+1.2655082060400447e-12
+32
+642.4744320138116
+13
+2365.970703125
+23
+1.2655082060400447e-12
+33
+642.4744320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+2473.197265625
+20
+1.2733957768448767e-12
+30
+756.1463070138116
+11
+2457.634765625
+21
+1.2675280746873852e-12
+31
+671.5838070138116
+12
+2403.353515625
+22
+1.2733957768448767e-12
+32
+756.1463070138116
+13
+2403.353515625
+23
+1.2733957768448767e-12
+33
+756.1463070138116
+70
+2
+ 0
+3DFACE
+ 8
+ship5
+10
+2365.970703125
+20
+1.2655082060400447e-12
+30
+642.4744320138116
+11
+2457.634765625
+21
+1.2675280746873852e-12
+31
+671.5838070138116
+12
+2712.095703125
+22
+1.2696552793498017e-12
+32
+702.2400570138116
+13
+2712.095703125
+23
+1.2696552793498017e-12
+33
+702.2400570138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+2457.634765625
+20
+1.2675280746873852e-12
+30
+671.5838070138116
+11
+2365.970703125
+21
+1.2655082060400447e-12
+31
+642.4744320138116
+12
+2403.353515625
+22
+1.2733957768448767e-12
+32
+756.1463070138116
+13
+2403.353515625
+23
+1.2733957768448767e-12
+33
+756.1463070138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+2712.095703125
+20
+1.2696552793498017e-12
+30
+702.2400570138116
+11
+2457.634765625
+21
+1.2675280746873852e-12
+31
+671.5838070138116
+12
+2556.330078125
+22
+1.2693088767556926e-12
+32
+697.2478695138116
+13
+2556.330078125
+23
+1.2693088767556926e-12
+33
+697.2478695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+2712.095703125
+20
+1.2696552793498017e-12
+30
+702.2400570138116
+11
+2556.330078125
+21
+1.2693088767556926e-12
+31
+697.2478695138116
+12
+2650.900390625
+22
+1.2726623140751903e-12
+32
+745.5759945138116
+13
+2650.900390625
+23
+1.2726623140751903e-12
+33
+745.5759945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+2846.662109375
+20
+1.3302383283439467e-12
+30
+1575.3338070138125
+11
+3129.611328125
+21
+1.2698845881092824e-12
+31
+705.5447445138116
+12
+2712.095703125
+22
+1.2696552793498017e-12
+32
+702.2400570138116
+13
+2712.095703125
+23
+1.2696552793498017e-12
+33
+702.2400570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3129.611328125
+20
+1.2698845881092824e-12
+30
+705.5447445138116
+11
+2846.662109375
+21
+1.3302383283439467e-12
+31
+1575.3338070138125
+12
+3223.689453125
+22
+1.3283583217768569e-12
+32
+1548.2400570138125
+13
+3223.689453125
+23
+1.3283583217768569e-12
+33
+1548.2400570138125
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3129.611328125
+20
+1.2698845881092824e-12
+30
+705.5447445138116
+11
+3223.689453125
+21
+1.3283583217768569e-12
+31
+1548.2400570138125
+12
+3165.986328125
+22
+1.2914835216884524e-12
+32
+1016.8181820138116
+13
+3165.986328125
+23
+1.2914835216884524e-12
+33
+1016.8181820138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3165.986328125
+20
+1.2914835216884524e-12
+30
+1016.8181820138116
+11
+3175.501953125
+21
+1.2850726342425456e-12
+31
+924.4275570138116
+12
+3129.611328125
+22
+1.2698845881092824e-12
+32
+705.5447445138116
+13
+3129.611328125
+23
+1.2698845881092824e-12
+33
+705.5447445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3175.501953125
+20
+1.2850726342425456e-12
+30
+924.4275570138116
+11
+3165.986328125
+21
+1.2914835216884524e-12
+31
+1016.8181820138116
+12
+3176.041015625
+22
+1.2873689744438699e-12
+32
+957.5213070138116
+13
+3176.041015625
+23
+1.2873689744438699e-12
+33
+957.5213070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3129.611328125
+20
+1.2698845881092824e-12
+30
+705.5447445138116
+11
+3212.896745144124
+21
+8.685692946118428e-13
+31
+-355.26572856685834
+12
+1773.400390625
+22
+1.1951219247337787e-12
+32
+-371.89878482744916
+13
+1773.400390625
+23
+1.1951219247337787e-12
+33
+-371.89878482744916
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3212.896745144124
+20
+8.685692946118428e-13
+30
+-355.26572856685834
+11
+3129.611328125
+21
+1.2698845881092824e-12
+31
+705.5447445138116
+12
+3588.470703125
+22
+1.2728932491379297e-12
+32
+748.9041195138116
+13
+3588.470703125
+23
+1.2728932491379297e-12
+33
+748.9041195138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3212.896745144124
+20
+8.685692946118428e-13
+30
+-355.26572856685834
+11
+3588.470703125
+21
+1.2728932491379297e-12
+31
+748.9041195138116
+12
+3878.744140625
+22
+1.277768906307597e-12
+32
+819.1697445138116
+13
+3878.744140625
+23
+1.277768906307597e-12
+33
+819.1697445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3364.607421875
+20
+1.2877592872259647e-12
+30
+963.1463070138116
+11
+3313.384765625
+21
+1.2752562677728618e-12
+31
+782.9588070138116
+12
+3313.384765625
+22
+1.2842041883023847e-12
+32
+911.9119320138116
+13
+3313.384765625
+23
+1.2842041883023847e-12
+33
+911.9119320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3129.611328125
+20
+1.2698845881092824e-12
+30
+705.5447445138116
+11
+3441.072265625
+21
+1.2740593085744378e-12
+31
+765.7088070138116
+12
+3588.470703125
+22
+1.2728932491379297e-12
+32
+748.9041195138116
+13
+3588.470703125
+23
+1.2728932491379297e-12
+33
+748.9041195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3441.072265625
+20
+1.2740593085744378e-12
+30
+765.7088070138116
+11
+3129.611328125
+21
+1.2698845881092824e-12
+31
+705.5447445138116
+12
+3313.384765625
+22
+1.2752562677728618e-12
+32
+782.9588070138116
+13
+3313.384765625
+23
+1.2752562677728618e-12
+33
+782.9588070138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3441.072265625
+20
+1.2740593085744378e-12
+30
+765.7088070138116
+11
+3313.384765625
+21
+1.2752562677728618e-12
+31
+782.9588070138116
+12
+3390.810546875
+22
+1.276397932660489e-12
+32
+799.4119320138116
+13
+3390.810546875
+23
+1.276397932660489e-12
+33
+799.4119320138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+3390.810546875
+20
+1.276397932660489e-12
+30
+799.4119320138116
+11
+3313.384765625
+21
+1.2752562677728618e-12
+31
+782.9588070138116
+12
+3364.607421875
+22
+1.2877592872259647e-12
+32
+963.1463070138116
+13
+3364.607421875
+23
+1.2877592872259647e-12
+33
+963.1463070138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+3390.810546875
+20
+1.276397932660489e-12
+30
+799.4119320138116
+11
+3364.607421875
+21
+1.2877592872259647e-12
+31
+963.1463070138116
+12
+3384.658203125
+22
+1.2834690992294395e-12
+32
+901.3181820138116
+13
+3384.658203125
+23
+1.2834690992294395e-12
+33
+901.3181820138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3588.470703125
+20
+1.2728932491379297e-12
+30
+748.9041195138116
+11
+3807.400390625
+21
+1.277295652059307e-12
+31
+812.3494320138116
+12
+3878.744140625
+22
+1.277768906307597e-12
+32
+819.1697445138116
+13
+3878.744140625
+23
+1.277768906307597e-12
+33
+819.1697445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3807.400390625
+20
+1.277295652059307e-12
+30
+812.3494320138116
+11
+3588.470703125
+21
+1.2728932491379297e-12
+31
+748.9041195138116
+12
+3721.103515625
+22
+1.276728072222011e-12
+32
+804.1697445138116
+13
+3721.103515625
+23
+1.276728072222011e-12
+33
+804.1697445138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+3721.103515625
+20
+1.276728072222011e-12
+30
+804.1697445138116
+11
+3588.470703125
+21
+1.2728932491379297e-12
+31
+748.9041195138116
+12
+3685.490234375
+22
+1.2767345774350458e-12
+32
+804.2634945138116
+13
+3685.490234375
+23
+1.2767345774350458e-12
+33
+804.2634945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+3685.490234375
+20
+1.2767345774350458e-12
+30
+804.2634945138116
+11
+3588.470703125
+21
+1.2728932491379297e-12
+31
+748.9041195138116
+12
+3604.830078125
+22
+1.285321458641131e-12
+32
+928.0134945138116
+13
+3604.830078125
+23
+1.285321458641131e-12
+33
+928.0134945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3685.490234375
+20
+1.2767345774350458e-12
+30
+804.2634945138116
+11
+3604.830078125
+21
+1.285321458641131e-12
+31
+928.0134945138116
+12
+3653.111328125
+22
+1.2865281756591074e-12
+32
+945.4041195138116
+13
+3653.111328125
+23
+1.2865281756591074e-12
+33
+945.4041195138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3685.490234375
+20
+1.2767345774350458e-12
+30
+804.2634945138116
+11
+3653.111328125
+21
+1.2865281756591074e-12
+31
+945.4041195138116
+12
+3671.087890625
+22
+1.283974879542904e-12
+32
+908.6072445138116
+13
+3671.087890625
+23
+1.283974879542904e-12
+33
+908.6072445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3807.400390625
+20
+1.277295652059307e-12
+30
+812.3494320138116
+11
+3721.103515625
+21
+1.276728072222011e-12
+31
+804.1697445138116
+12
+3752.837890625
+22
+1.2784552062827803e-12
+32
+829.0603695138116
+13
+3752.837890625
+23
+1.2784552062827803e-12
+33
+829.0603695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3807.400390625
+20
+1.277295652059307e-12
+30
+812.3494320138116
+11
+3752.837890625
+21
+1.2784552062827803e-12
+31
+829.0603695138116
+12
+3774.986328125
+22
+1.2838057440039963e-12
+32
+906.1697445138116
+13
+3774.986328125
+23
+1.2838057440039963e-12
+33
+906.1697445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+3807.400390625
+20
+1.277295652059307e-12
+30
+812.3494320138116
+11
+3774.986328125
+21
+1.2838057440039963e-12
+31
+906.1697445138116
+12
+3807.400390625
+22
+1.2846432901822413e-12
+32
+918.2400570138116
+13
+3807.400390625
+23
+1.2846432901822413e-12
+33
+918.2400570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3959.251953125
+20
+1.3437903133989293e-12
+30
+1770.6384945138125
+11
+4246.876953125
+21
+1.27529692535433e-12
+31
+783.5447445138116
+12
+3878.744140625
+22
+1.277768906307597e-12
+32
+819.1697445138116
+13
+3878.744140625
+23
+1.277768906307597e-12
+33
+819.1697445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4246.876953125
+20
+1.27529692535433e-12
+30
+783.5447445138116
+11
+3959.251953125
+21
+1.3437903133989293e-12
+31
+1770.6384945138125
+12
+4247.287109375
+22
+1.279809916897301e-12
+32
+848.5838070138116
+13
+4247.287109375
+23
+1.279809916897301e-12
+33
+848.5838070138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+4247.287109375
+20
+1.279809916897301e-12
+30
+848.5838070138116
+11
+3959.251953125
+21
+1.3437903133989293e-12
+31
+1770.6384945138125
+12
+4349.427734375
+22
+1.3427348425840147e-12
+32
+1755.4275570138125
+13
+4349.427734375
+23
+1.3427348425840147e-12
+33
+1755.4275570138125
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4308.353515625
+20
+1.2832040117982668e-12
+30
+897.4978695138116
+11
+4365.330078125
+21
+1.2743536694642676e-12
+31
+769.9509945138116
+12
+4279.724609375
+22
+1.27529692535433e-12
+32
+783.5447445138116
+13
+4279.724609375
+23
+1.27529692535433e-12
+33
+783.5447445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4365.330078125
+20
+1.2743536694642676e-12
+30
+769.9509945138116
+11
+4308.353515625
+21
+1.2832040117982668e-12
+31
+897.4978695138116
+12
+4346.990234375
+22
+1.2821648040159395e-12
+32
+882.5213070138116
+13
+4346.990234375
+23
+1.2821648040159395e-12
+33
+882.5213070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4514.205078125
+20
+1.2807108889026364e-12
+30
+861.5681820138116
+11
+4720.548828125
+21
+1.2751017689632826e-12
+31
+780.7322445138116
+12
+4365.330078125
+22
+1.2743536694642676e-12
+32
+769.9509945138116
+13
+4365.330078125
+23
+1.2743536694642676e-12
+33
+769.9509945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4720.548828125
+20
+1.2751017689632826e-12
+30
+780.7322445138116
+11
+4514.205078125
+21
+1.2807108889026364e-12
+31
+861.5681820138116
+12
+4643.931640625
+22
+1.2807108889026364e-12
+32
+861.5681820138116
+13
+4643.931640625
+23
+1.2807108889026364e-12
+33
+861.5681820138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5504.380859375
+20
+1.3609673284176171e-12
+30
+2018.1853695138125
+11
+4882.197265625
+21
+1.2833194793296365e-12
+31
+899.1619320138116
+12
+4862.486328125
+22
+1.2866908059849802e-12
+32
+947.7478695138116
+13
+4862.486328125
+23
+1.2866908059849802e-12
+33
+947.7478695138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4882.197265625
+20
+1.2833194793296365e-12
+30
+899.1619320138116
+11
+5504.380859375
+21
+1.3609673284176171e-12
+31
+2018.1853695138125
+12
+5503.736328125
+22
+1.3529561585651217e-12
+32
+1902.7322445138125
+13
+5503.736328125
+23
+1.3529561585651217e-12
+33
+1902.7322445138125
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+5503.736328125
+20
+1.3529561585651217e-12
+30
+1902.7322445138125
+11
+5504.380859375
+21
+1.3609673284176171e-12
+31
+2018.1853695138125
+12
+5523.083984375
+22
+1.3579960723639206e-12
+32
+1975.3650570138125
+13
+5523.083984375
+23
+1.3579960723639206e-12
+33
+1975.3650570138125
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4695.259765625
+20
+1.2966193873795162e-12
+30
+1090.8338070138116
+11
+4672.220703125
+21
+1.2947198651733216e-12
+31
+1063.4588070138116
+12
+4652.568359375
+22
+1.2952841924041003e-12
+32
+1071.5916195138116
+13
+4652.568359375
+23
+1.2952841924041003e-12
+33
+1071.5916195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+4672.220703125
+20
+1.2947198651733216e-12
+30
+1063.4588070138116
+11
+4695.259765625
+21
+1.2966193873795162e-12
+31
+1090.8338070138116
+12
+4718.708984375
+22
+1.289731993078802e-12
+32
+991.5759945138116
+13
+4718.708984375
+23
+1.289731993078802e-12
+33
+991.5759945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+4718.708984375
+20
+1.289731993078802e-12
+30
+991.5759945138116
+11
+4695.259765625
+21
+1.2966193873795162e-12
+31
+1090.8338070138116
+12
+4833.576171875
+22
+1.2938628033559718e-12
+32
+1051.1072445138116
+13
+4833.576171875
+23
+1.2938628033559718e-12
+33
+1051.1072445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+4718.708984375
+20
+1.289731993078802e-12
+30
+991.5759945138116
+11
+4833.576171875
+21
+1.2938628033559718e-12
+31
+1051.1072445138116
+12
+4718.884765625
+22
+1.2885480443064479e-12
+32
+974.5134945138116
+13
+4718.884765625
+23
+1.2885480443064479e-12
+33
+974.5134945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+4718.884765625
+20
+1.2885480443064479e-12
+30
+974.5134945138116
+11
+4833.576171875
+21
+1.2938628033559718e-12
+31
+1051.1072445138116
+12
+4752.564453125
+22
+1.27913337474167e-12
+32
+838.8338070138116
+13
+4752.564453125
+23
+1.27913337474167e-12
+33
+838.8338070138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+4748.837890625
+20
+1.2776810859316257e-12
+30
+817.9041195138116
+11
+5050.900390625
+21
+1.2774777980242846e-12
+31
+814.9744320138116
+12
+4720.548828125
+22
+1.2751017689632826e-12
+32
+780.7322445138116
+13
+4720.548828125
+23
+1.2751017689632826e-12
+33
+780.7322445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+1.2774777980242846e-12
+30
+814.9744320138116
+11
+4748.837890625
+21
+1.2776810859316257e-12
+31
+817.9041195138116
+12
+4752.564453125
+22
+1.27913337474167e-12
+32
+838.8338070138116
+13
+4752.564453125
+23
+1.27913337474167e-12
+33
+838.8338070138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+1.2774777980242846e-12
+30
+814.9744320138116
+11
+4752.564453125
+21
+1.27913337474167e-12
+31
+838.8338070138116
+12
+4882.197265625
+22
+1.2833194793296365e-12
+32
+899.1619320138116
+13
+4882.197265625
+23
+1.2833194793296365e-12
+33
+899.1619320138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+4882.197265625
+20
+1.2833194793296365e-12
+30
+899.1619320138116
+11
+4752.564453125
+21
+1.27913337474167e-12
+31
+838.8338070138116
+12
+4862.486328125
+22
+1.2866908059849802e-12
+32
+947.7478695138116
+13
+4862.486328125
+23
+1.2866908059849802e-12
+33
+947.7478695138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+4862.486328125
+20
+1.2866908059849802e-12
+30
+947.7478695138116
+11
+4752.564453125
+21
+1.27913337474167e-12
+31
+838.8338070138116
+12
+4833.576171875
+22
+1.2938628033559718e-12
+32
+1051.1072445138116
+13
+4833.576171875
+23
+1.2938628033559718e-12
+33
+1051.1072445138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+1.2774777980242846e-12
+30
+814.9744320138116
+11
+4882.197265625
+21
+1.2833194793296365e-12
+31
+899.1619320138116
+12
+4948.654296875
+22
+1.2833194793296365e-12
+32
+899.1619320138116
+13
+4948.654296875
+23
+1.2833194793296365e-12
+33
+899.1619320138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+1.2774777980242846e-12
+30
+814.9744320138116
+11
+4948.654296875
+21
+1.2833194793296365e-12
+31
+899.1619320138116
+12
+4949.498046875
+22
+1.2855588989169053e-12
+32
+931.4353695138116
+13
+4949.498046875
+23
+1.2855588989169053e-12
+33
+931.4353695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+1.2774777980242846e-12
+30
+814.9744320138116
+11
+4949.498046875
+21
+1.2855588989169053e-12
+31
+931.4353695138116
+12
+4970.919921875
+22
+1.2870258244562782e-12
+32
+952.5759945138116
+13
+4970.919921875
+23
+1.2870258244562782e-12
+33
+952.5759945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+1.2774777980242846e-12
+30
+814.9744320138116
+11
+4970.919921875
+21
+1.2870258244562782e-12
+31
+952.5759945138116
+12
+5050.900390625
+22
+1.2878259656595725e-12
+32
+964.1072445138116
+13
+5050.900390625
+23
+1.2878259656595725e-12
+33
+964.1072445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5414.626953125
+20
+1.3197259040795273e-12
+30
+1423.8338070138125
+11
+5298.716796875
+21
+1.2752904201412951e-12
+31
+783.4509945138116
+12
+5243.755859375
+22
+1.2791284958318938e-12
+32
+838.7634945138116
+13
+5243.755859375
+23
+1.2791284958318938e-12
+33
+838.7634945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5298.716796875
+20
+1.2752904201412951e-12
+30
+783.4509945138116
+11
+5414.626953125
+21
+1.3197259040795273e-12
+31
+1423.8338070138125
+12
+5477.708984375
+22
+1.3197259040795273e-12
+32
+1423.8338070138125
+13
+5477.708984375
+23
+1.3197259040795273e-12
+33
+1423.8338070138125
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5436.130859375
+20
+1.2808556298926632e-12
+30
+863.6541195138116
+11
+5389.068359375
+21
+1.2752904201412951e-12
+31
+783.4509945138116
+12
+5373.341796875
+22
+1.2789642392027623e-12
+32
+836.3963070138116
+13
+5373.341796875
+23
+1.2789642392027623e-12
+33
+836.3963070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5389.068359375
+20
+1.2752904201412951e-12
+30
+783.4509945138116
+11
+5436.130859375
+21
+1.2808556298926632e-12
+31
+863.6541195138116
+12
+5495.181640625
+22
+1.2728038024586996e-12
+32
+747.6150570138116
+13
+5495.181640625
+23
+1.2728038024586996e-12
+33
+747.6150570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5693.673828125
+20
+1.434352636664471e-12
+30
+3075.7791195138125
+11
+5661.927734375
+21
+1.3745241923823759e-12
+31
+2213.5603695138125
+12
+5640.224609375
+22
+1.4329832893206218e-12
+32
+3056.0447445138125
+13
+5640.224609375
+23
+1.4329832893206218e-12
+33
+3056.0447445138125
+70
+2
+ 0
+3DFACE
+ 8
+ship5
+10
+5640.224609375
+20
+1.4329832893206218e-12
+30
+3056.0447445138125
+11
+5567.369140625
+21
+1.27763717574364e-12
+31
+817.2713070138116
+12
+5495.181640625
+22
+1.2728038024586996e-12
+32
+747.6150570138116
+13
+5495.181640625
+23
+1.2728038024586996e-12
+33
+747.6150570138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+5567.369140625
+20
+1.27763717574364e-12
+30
+817.2713070138116
+11
+5640.224609375
+21
+1.4329832893206218e-12
+31
+3056.0447445138125
+12
+5661.927734375
+22
+1.3689362143853856e-12
+32
+2133.0291195138125
+13
+5661.927734375
+23
+1.3689362143853856e-12
+33
+2133.0291195138125
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+5661.927734375
+20
+1.3689362143853856e-12
+30
+2133.0291195138125
+11
+5640.224609375
+21
+1.4329832893206218e-12
+31
+3056.0447445138125
+12
+5661.927734375
+22
+1.3745241923823759e-12
+32
+2213.5603695138125
+13
+5661.927734375
+23
+1.3745241923823759e-12
+33
+2213.5603695138125
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+5567.369140625
+20
+1.27763717574364e-12
+30
+817.2713070138116
+11
+5615.474609375
+21
+1.2741910391383948e-12
+31
+767.6072445138116
+12
+5495.181640625
+22
+1.2728038024586996e-12
+32
+747.6150570138116
+13
+5495.181640625
+23
+1.2728038024586996e-12
+33
+747.6150570138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5615.474609375
+20
+1.2741910391383948e-12
+30
+767.6072445138116
+11
+5567.369140625
+21
+1.27763717574364e-12
+31
+817.2713070138116
+12
+5615.474609375
+22
+1.277451777172145e-12
+32
+814.5994320138116
+13
+5615.474609375
+23
+1.277451777172145e-12
+33
+814.5994320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5717.720703125
+20
+1.2808409931633347e-12
+30
+863.4431820138116
+11
+5662.056640625
+21
+1.2768272767207933e-12
+31
+805.5994320138116
+12
+5661.927734375
+22
+1.2795708503182679e-12
+32
+845.1384945138116
+13
+5661.927734375
+23
+1.2795708503182679e-12
+33
+845.1384945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5662.056640625
+20
+1.2768272767207933e-12
+30
+805.5994320138116
+11
+5961.458984375
+21
+1.2691738935852181e-12
+31
+695.3025570138116
+12
+5650.513671875
+22
+1.2747797609180544e-12
+32
+776.0916195138116
+13
+5650.513671875
+23
+1.2747797609180544e-12
+33
+776.0916195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5961.458984375
+20
+1.2691738935852181e-12
+30
+695.3025570138116
+11
+5662.056640625
+21
+1.2768272767207933e-12
+31
+805.5994320138116
+12
+5717.720703125
+22
+1.2754920817453774e-12
+32
+786.3572445138116
+13
+5717.720703125
+23
+1.2754920817453774e-12
+33
+786.3572445138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+5717.720703125
+20
+1.2754920817453774e-12
+30
+786.3572445138116
+11
+5662.056640625
+21
+1.2768272767207933e-12
+31
+805.5994320138116
+12
+5717.720703125
+22
+1.2808409931633347e-12
+32
+863.4431820138116
+13
+5717.720703125
+23
+1.2808409931633347e-12
+33
+863.4431820138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+5961.458984375
+20
+1.2691738935852181e-12
+30
+695.3025570138116
+11
+5717.720703125
+21
+1.2754920817453774e-12
+31
+786.3572445138116
+12
+5824.056640625
+22
+1.2764076904800414e-12
+32
+799.5525570138116
+13
+5824.056640625
+23
+1.2764076904800414e-12
+33
+799.5525570138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5961.458984375
+20
+1.2691738935852181e-12
+30
+695.3025570138116
+11
+5824.056640625
+21
+1.2764076904800414e-12
+31
+799.5525570138116
+12
+5870.345703125
+22
+1.2785918157565135e-12
+32
+831.0291195138116
+13
+5870.345703125
+23
+1.2785918157565135e-12
+33
+831.0291195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6485.814453125
+20
+1.2929927311125522e-12
+30
+1038.5681820138116
+11
+6496.501953125
+21
+1.2877527820129298e-12
+31
+963.0525570138116
+12
+6465.505859375
+22
+1.2900816482794286e-12
+32
+996.6150570138116
+13
+6465.505859375
+23
+1.2900816482794286e-12
+33
+996.6150570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6496.501953125
+20
+1.2877527820129298e-12
+30
+963.0525570138116
+11
+6485.814453125
+21
+1.2929927311125522e-12
+31
+1038.5681820138116
+12
+6519.119140625
+22
+1.2918787133803233e-12
+32
+1022.5134945138116
+13
+6519.119140625
+23
+1.2918787133803233e-12
+33
+1022.5134945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6312.130859375
+20
+1.2841472676883292e-12
+30
+911.0916195138116
+11
+6237.927734375
+21
+1.2770224331118407e-12
+31
+808.4119320138116
+12
+6212.240234375
+22
+1.2821127623116602e-12
+32
+881.7713070138116
+13
+6212.240234375
+23
+1.2821127623116602e-12
+33
+881.7713070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6237.927734375
+20
+1.2770224331118407e-12
+30
+808.4119320138116
+11
+6312.130859375
+21
+1.2841472676883292e-12
+31
+911.0916195138116
+12
+6309.541015625
+22
+1.2700342080090854e-12
+32
+707.7009945138116
+13
+6309.541015625
+23
+1.2700342080090854e-12
+33
+707.7009945138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+6309.541015625
+20
+1.2700342080090854e-12
+30
+707.7009945138116
+11
+6312.130859375
+21
+1.2841472676883292e-12
+31
+911.0916195138116
+12
+6331.888671875
+22
+1.270946564137232e-12
+32
+720.8494320138116
+13
+6331.888671875
+23
+1.270946564137232e-12
+33
+720.8494320138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6331.888671875
+20
+1.270946564137232e-12
+30
+720.8494320138116
+11
+6312.130859375
+21
+1.2841472676883292e-12
+31
+911.0916195138116
+12
+6334.091796875
+22
+1.2763410120464336e-12
+32
+798.5916195138116
+13
+6334.091796875
+23
+1.2763410120464336e-12
+33
+798.5916195138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6331.888671875
+20
+1.270946564137232e-12
+30
+720.8494320138116
+11
+6334.091796875
+21
+1.2763410120464336e-12
+31
+798.5916195138116
+12
+6685.443359375
+22
+1.292293420711299e-12
+32
+1028.4900570138116
+13
+6685.443359375
+23
+1.292293420711299e-12
+33
+1028.4900570138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6685.443359375
+20
+1.292293420711299e-12
+30
+1028.4900570138116
+11
+6334.091796875
+21
+1.2763410120464336e-12
+31
+798.5916195138116
+12
+6496.501953125
+22
+1.2877527820129298e-12
+32
+963.0525570138116
+13
+6496.501953125
+23
+1.2877527820129298e-12
+33
+963.0525570138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6685.443359375
+20
+1.292293420711299e-12
+30
+1028.4900570138116
+11
+6496.501953125
+21
+1.2877527820129298e-12
+31
+963.0525570138116
+12
+6554.263671875
+22
+1.2903646250464473e-12
+32
+1000.6931820138116
+13
+6554.263671875
+23
+1.2903646250464473e-12
+33
+1000.6931820138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+6554.263671875
+20
+1.2903646250464473e-12
+30
+1000.6931820138116
+11
+6496.501953125
+21
+1.2877527820129298e-12
+31
+963.0525570138116
+12
+6519.119140625
+22
+1.2918787133803233e-12
+32
+1022.5134945138116
+13
+6519.119140625
+23
+1.2918787133803233e-12
+33
+1022.5134945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6685.443359375
+20
+1.292293420711299e-12
+30
+1028.4900570138116
+11
+6554.263671875
+21
+1.2903646250464473e-12
+31
+1000.6931820138116
+12
+6638.123046875
+22
+1.2971902198233298e-12
+32
+1099.0603695138116
+13
+6638.123046875
+23
+1.2971902198233298e-12
+33
+1099.0603695138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6157.642578125
+20
+1.2733469877471149e-12
+30
+755.4431820138116
+11
+6332.181640625
+21
+1.2682273850886383e-12
+31
+681.6619320138116
+12
+6155.240234375
+22
+1.2696813002019414e-12
+32
+702.6150570138116
+13
+6155.240234375
+23
+1.2696813002019414e-12
+33
+702.6150570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6332.181640625
+20
+1.2682273850886383e-12
+30
+681.6619320138116
+11
+6157.642578125
+21
+1.2733469877471149e-12
+31
+755.4431820138116
+12
+6309.541015625
+22
+1.2700342080090854e-12
+32
+707.7009945138116
+13
+6309.541015625
+23
+1.2700342080090854e-12
+33
+707.7009945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6309.541015625
+20
+1.2700342080090854e-12
+30
+707.7009945138116
+11
+6157.642578125
+21
+1.2733469877471149e-12
+31
+755.4431820138116
+12
+6237.927734375
+22
+1.2770224331118407e-12
+32
+808.4119320138116
+13
+6237.927734375
+23
+1.2770224331118407e-12
+33
+808.4119320138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6362.978515625
+20
+1.268318458071127e-12
+30
+682.9744320138116
+11
+6618.541015625
+21
+1.2630508618161063e-12
+31
+607.0603695138116
+12
+6332.181640625
+22
+1.2682273850886383e-12
+32
+681.6619320138116
+13
+6332.181640625
+23
+1.2682273850886383e-12
+33
+681.6619320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6618.541015625
+20
+1.2630508618161063e-12
+30
+607.0603695138116
+11
+6362.978515625
+21
+1.268318458071127e-12
+31
+682.9744320138116
+12
+6383.392578125
+22
+1.268738044311879e-12
+32
+689.0213070138116
+13
+6383.392578125
+23
+1.268738044311879e-12
+33
+689.0213070138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6618.541015625
+20
+1.2630508618161063e-12
+30
+607.0603695138116
+11
+6383.392578125
+21
+1.268738044311879e-12
+31
+689.0213070138116
+12
+6524.134765625
+22
+1.2702374959164264e-12
+32
+710.6306820138116
+13
+6524.134765625
+23
+1.2702374959164264e-12
+33
+710.6306820138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6618.541015625
+20
+1.2630508618161063e-12
+30
+607.0603695138116
+11
+6524.134765625
+21
+1.2702374959164264e-12
+31
+710.6306820138116
+12
+6590.462890625
+22
+1.2703464582347612e-12
+32
+712.2009945138116
+13
+6590.462890625
+23
+1.2703464582347612e-12
+33
+712.2009945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7105.326171875
+20
+1.2686518502391664e-12
+30
+687.7791195138116
+11
+7765.408203125
+21
+1.2357305933727303e-12
+31
+213.33380701381157
+12
+6718.443359375
+22
+1.2641697584581113e-12
+32
+623.1853695138116
+13
+6718.443359375
+23
+1.2641697584581113e-12
+33
+623.1853695138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7765.408203125
+20
+1.2357305933727303e-12
+30
+213.33380701381157
+11
+7105.326171875
+21
+1.2686518502391664e-12
+31
+687.7791195138116
+12
+7615.666015625
+22
+1.2769329864326107e-12
+32
+807.1228695138116
+13
+7615.666015625
+23
+1.2769329864326107e-12
+33
+807.1228695138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6718.443359375
+20
+1.2641697584581113e-12
+30
+623.1853695138116
+11
+7988.298828125
+21
+1.2006691214178078e-12
+31
+-291.95525548618843
+12
+6618.541015625
+22
+1.2630508618161063e-12
+32
+607.0603695138116
+13
+6618.541015625
+23
+1.2630508618161063e-12
+33
+607.0603695138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7988.298828125
+20
+1.2006691214178078e-12
+30
+-291.95525548618843
+11
+6718.443359375
+21
+1.2641697584581113e-12
+31
+623.1853695138116
+12
+7821.048828125
+22
+1.2229933862503706e-12
+32
+29.771307013811565
+13
+7821.048828125
+23
+1.2229933862503706e-12
+33
+29.771307013811565
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+7821.048828125
+20
+1.2229933862503706e-12
+30
+29.771307013811565
+11
+6718.443359375
+21
+1.2641697584581113e-12
+31
+623.1853695138116
+12
+7765.408203125
+22
+1.2357305933727303e-12
+32
+213.33380701381157
+13
+7765.408203125
+23
+1.2357305933727303e-12
+33
+213.33380701381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7988.298828125
+20
+1.2006691214178078e-12
+30
+-291.95525548618843
+11
+7821.048828125
+21
+1.2229933862503706e-12
+31
+29.771307013811565
+12
+7992.787109375
+22
+1.2048048106047538e-12
+32
+-232.35369298618843
+13
+7992.787109375
+23
+1.2048048106047538e-12
+33
+-232.35369298618843
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6634.173828125
+20
+1.2863899398821155e-12
+30
+943.4119320138116
+11
+6768.646484375
+21
+1.2721451496389147e-12
+31
+738.1228695138116
+12
+6606.599609375
+22
+1.282478680544874e-12
+32
+887.0447445138116
+13
+6606.599609375
+23
+1.282478680544874e-12
+33
+887.0447445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6768.646484375
+20
+1.2721451496389147e-12
+30
+738.1228695138116
+11
+6634.173828125
+21
+1.2863899398821155e-12
+31
+943.4119320138116
+12
+6671.087890625
+22
+1.2852873062726977e-12
+32
+927.5213070138116
+13
+6671.087890625
+23
+1.2852873062726977e-12
+33
+927.5213070138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6768.646484375
+20
+1.2721451496389147e-12
+30
+738.1228695138116
+11
+6671.087890625
+21
+1.2852873062726977e-12
+31
+927.5213070138116
+12
+6871.326171875
+22
+1.2739275780104808e-12
+32
+763.8103695138116
+13
+6871.326171875
+23
+1.2739275780104808e-12
+33
+763.8103695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6768.646484375
+20
+1.2721451496389147e-12
+30
+738.1228695138116
+11
+6871.326171875
+21
+1.2739275780104808e-12
+31
+763.8103695138116
+12
+6780.435546875
+22
+1.2704505416433198e-12
+32
+713.7009945138116
+13
+6780.435546875
+23
+1.2704505416433198e-12
+33
+713.7009945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6936.927734375
+20
+1.2833845314599857e-12
+30
+900.0994320138116
+11
+6871.326171875
+21
+1.2739275780104808e-12
+31
+763.8103695138116
+12
+6833.580078125
+22
+1.2820948729758141e-12
+32
+881.5134945138116
+13
+6833.580078125
+23
+1.2820948729758141e-12
+33
+881.5134945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6780.435546875
+20
+1.2704505416433198e-12
+30
+713.7009945138116
+11
+6718.443359375
+21
+1.2641697584581113e-12
+31
+623.1853695138116
+12
+6718.443359375
+22
+1.2702212328838391e-12
+32
+710.3963070138116
+13
+6718.443359375
+23
+1.2702212328838391e-12
+33
+710.3963070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6718.443359375
+20
+1.2641697584581113e-12
+30
+623.1853695138116
+11
+6780.435546875
+21
+1.2704505416433198e-12
+31
+713.7009945138116
+12
+7105.326171875
+22
+1.2686518502391664e-12
+32
+687.7791195138116
+13
+7105.326171875
+23
+1.2686518502391664e-12
+33
+687.7791195138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7105.326171875
+20
+1.2686518502391664e-12
+30
+687.7791195138116
+11
+6780.435546875
+21
+1.2704505416433198e-12
+31
+713.7009945138116
+12
+6871.326171875
+22
+1.2739275780104808e-12
+32
+763.8103695138116
+13
+6871.326171875
+23
+1.2739275780104808e-12
+33
+763.8103695138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+7105.326171875
+20
+1.2686518502391664e-12
+30
+687.7791195138116
+11
+6871.326171875
+21
+1.2739275780104808e-12
+31
+763.8103695138116
+12
+6978.025390625
+22
+1.2721175024835163e-12
+32
+737.7244320138116
+13
+6978.025390625
+23
+1.2721175024835163e-12
+33
+737.7244320138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6978.025390625
+20
+1.2721175024835163e-12
+30
+737.7244320138116
+11
+6871.326171875
+21
+1.2739275780104808e-12
+31
+763.8103695138116
+12
+6962.263671875
+22
+1.2739910038375712e-12
+32
+764.7244320138116
+13
+6962.263671875
+23
+1.2739910038375712e-12
+33
+764.7244320138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6962.263671875
+20
+1.2739910038375712e-12
+30
+764.7244320138116
+11
+6871.326171875
+21
+1.2739275780104808e-12
+31
+763.8103695138116
+12
+6936.927734375
+22
+1.2833845314599857e-12
+32
+900.0994320138116
+13
+6936.927734375
+23
+1.2833845314599857e-12
+33
+900.0994320138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7226.310546875
+20
+1.2798359377494406e-12
+30
+848.9588070138116
+11
+7179.599609375
+21
+1.276781740229549e-12
+31
+804.9431820138116
+12
+7179.599609375
+22
+1.2798359377494406e-12
+32
+848.9588070138116
+13
+7179.599609375
+23
+1.2798359377494406e-12
+33
+848.9588070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7268.064453125
+20
+1.280701131083084e-12
+30
+861.4275570138116
+11
+7275.505859375
+21
+1.2779055157813302e-12
+31
+821.1384945138116
+12
+7259.861328125
+22
+1.280084762148026e-12
+32
+852.5447445138116
+13
+7259.861328125
+23
+1.280084762148026e-12
+33
+852.5447445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7275.505859375
+20
+1.2779055157813302e-12
+30
+821.1384945138116
+11
+7268.064453125
+21
+1.280701131083084e-12
+31
+861.4275570138116
+12
+7317.763671875
+22
+1.280725525631965e-12
+32
+861.7791195138116
+13
+7317.763671875
+23
+1.280725525631965e-12
+33
+861.7791195138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7615.666015625
+20
+1.2813256315344357e-12
+30
+870.4275570138116
+11
+7361.591796875
+21
+1.2768207715077584e-12
+31
+805.5056820138116
+12
+7355.685546875
+22
+1.284627027149654e-12
+32
+918.0056820138116
+13
+7355.685546875
+23
+1.284627027149654e-12
+33
+918.0056820138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7042.431640625
+20
+1.2758726367079198e-12
+30
+791.8416195138116
+11
+7100.298828125
+21
+1.2742463334491916e-12
+31
+768.4041195138116
+12
+7009.208984375
+22
+1.2742463334491916e-12
+32
+768.4041195138116
+13
+7009.208984375
+23
+1.2742463334491916e-12
+33
+768.4041195138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7100.298828125
+20
+1.2742463334491916e-12
+30
+768.4041195138116
+11
+7042.431640625
+21
+1.2758726367079198e-12
+31
+791.8416195138116
+12
+7179.599609375
+22
+1.276781740229549e-12
+32
+804.9431820138116
+13
+7179.599609375
+23
+1.276781740229549e-12
+33
+804.9431820138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7100.298828125
+20
+1.2742463334491916e-12
+30
+768.4041195138116
+11
+7179.599609375
+21
+1.276781740229549e-12
+31
+804.9431820138116
+12
+7105.326171875
+22
+1.2686518502391664e-12
+32
+687.7791195138116
+13
+7105.326171875
+23
+1.2686518502391664e-12
+33
+687.7791195138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7105.326171875
+20
+1.2686518502391664e-12
+30
+687.7791195138116
+11
+7179.599609375
+21
+1.276781740229549e-12
+31
+804.9431820138116
+12
+7226.310546875
+22
+1.276045024853345e-12
+32
+794.3259945138116
+13
+7226.310546875
+23
+1.276045024853345e-12
+33
+794.3259945138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+7105.326171875
+20
+1.2686518502391664e-12
+30
+687.7791195138116
+11
+7226.310546875
+21
+1.276045024853345e-12
+31
+794.3259945138116
+12
+7615.666015625
+22
+1.2769329864326107e-12
+32
+807.1228695138116
+13
+7615.666015625
+23
+1.2769329864326107e-12
+33
+807.1228695138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7226.310546875
+20
+1.276045024853345e-12
+30
+794.3259945138116
+11
+7179.599609375
+21
+1.276781740229549e-12
+31
+804.9431820138116
+12
+7226.310546875
+22
+1.2798359377494406e-12
+32
+848.9588070138116
+13
+7226.310546875
+23
+1.2798359377494406e-12
+33
+848.9588070138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7615.666015625
+20
+1.2769329864326107e-12
+30
+807.1228695138116
+11
+7226.310546875
+21
+1.276045024853345e-12
+31
+794.3259945138116
+12
+7361.591796875
+22
+1.2768207715077584e-12
+32
+805.5056820138116
+13
+7361.591796875
+23
+1.2768207715077584e-12
+33
+805.5056820138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+7361.591796875
+20
+1.2768207715077584e-12
+30
+805.5056820138116
+11
+7226.310546875
+21
+1.276045024853345e-12
+31
+794.3259945138116
+12
+7317.763671875
+22
+1.2768207715077584e-12
+32
+805.5056820138116
+13
+7317.763671875
+23
+1.2768207715077584e-12
+33
+805.5056820138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7317.763671875
+20
+1.2768207715077584e-12
+30
+805.5056820138116
+11
+7226.310546875
+21
+1.276045024853345e-12
+31
+794.3259945138116
+12
+7275.505859375
+22
+1.2779055157813302e-12
+32
+821.1384945138116
+13
+7275.505859375
+23
+1.2779055157813302e-12
+33
+821.1384945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7317.763671875
+20
+1.2768207715077584e-12
+30
+805.5056820138116
+11
+7275.505859375
+21
+1.2779055157813302e-12
+31
+821.1384945138116
+12
+7317.763671875
+22
+1.280725525631965e-12
+32
+861.7791195138116
+13
+7317.763671875
+23
+1.280725525631965e-12
+33
+861.7791195138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7615.666015625
+20
+1.2769329864326107e-12
+30
+807.1228695138116
+11
+7361.591796875
+21
+1.2768207715077584e-12
+31
+805.5056820138116
+12
+7615.666015625
+22
+1.2813256315344357e-12
+32
+870.4275570138116
+13
+7615.666015625
+23
+1.2813256315344357e-12
+33
+870.4275570138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7674.306640625
+20
+1.2769329864326107e-12
+30
+807.1228695138116
+11
+7765.408203125
+21
+1.2357305933727303e-12
+31
+213.33380701381157
+12
+7615.666015625
+22
+1.2769329864326107e-12
+32
+807.1228695138116
+13
+7615.666015625
+23
+1.2769329864326107e-12
+33
+807.1228695138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7765.408203125
+20
+1.2357305933727303e-12
+30
+213.33380701381157
+11
+7674.306640625
+21
+1.2769329864326107e-12
+31
+807.1228695138116
+12
+7676.052734375
+22
+1.2789528550799512e-12
+32
+836.2322445138116
+13
+7676.052734375
+23
+1.2789528550799512e-12
+33
+836.2322445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7765.408203125
+20
+1.2357305933727303e-12
+30
+213.33380701381157
+11
+7676.052734375
+21
+1.2789528550799512e-12
+31
+836.2322445138116
+12
+7761.986328125
+22
+1.2789528550799512e-12
+32
+836.2322445138116
+13
+7761.986328125
+23
+1.2789528550799512e-12
+33
+836.2322445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7765.408203125
+20
+1.2357305933727303e-12
+30
+213.33380701381157
+11
+7761.986328125
+21
+1.2789528550799512e-12
+31
+836.2322445138116
+12
+7820.263671875
+22
+1.2760011146653594e-12
+32
+793.6931820138116
+13
+7820.263671875
+23
+1.2760011146653594e-12
+33
+793.6931820138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7765.408203125
+20
+1.2357305933727303e-12
+30
+213.33380701381157
+11
+7820.263671875
+21
+1.2760011146653594e-12
+31
+793.6931820138116
+12
+7985.404296875
+22
+1.2705676354779483e-12
+32
+715.3884945138116
+13
+7985.404296875
+23
+1.2705676354779483e-12
+33
+715.3884945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7985.404296875
+20
+1.2705676354779483e-12
+30
+715.3884945138116
+11
+7820.263671875
+21
+1.2760011146653594e-12
+31
+793.6931820138116
+12
+7842.025390625
+22
+1.2792455896665222e-12
+32
+840.4509945138116
+13
+7842.025390625
+23
+1.2792455896665222e-12
+33
+840.4509945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7985.404296875
+20
+1.2705676354779483e-12
+30
+715.3884945138116
+11
+7842.025390625
+21
+1.2792455896665222e-12
+31
+840.4509945138116
+12
+7902.083984375
+22
+1.2772826416332372e-12
+32
+812.1619320138116
+13
+7902.083984375
+23
+1.2772826416332372e-12
+33
+812.1619320138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7985.404296875
+20
+1.2705676354779483e-12
+30
+715.3884945138116
+11
+7902.083984375
+21
+1.2772826416332372e-12
+31
+812.1619320138116
+12
+7907.181640625
+22
+1.2805368744539525e-12
+32
+859.0603695138116
+13
+7907.181640625
+23
+1.2805368744539525e-12
+33
+859.0603695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7985.404296875
+20
+1.2705676354779483e-12
+30
+715.3884945138116
+11
+7907.181640625
+21
+1.2805368744539525e-12
+31
+859.0603695138116
+12
+7915.419921875
+22
+1.2803970123737018e-12
+32
+857.0447445138116
+13
+7915.419921875
+23
+1.2803970123737018e-12
+33
+857.0447445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7985.404296875
+20
+1.2705676354779483e-12
+30
+715.3884945138116
+11
+7915.419921875
+21
+1.2803970123737018e-12
+31
+857.0447445138116
+12
+7935.376953125
+22
+1.2781868662450901e-12
+32
+825.1931820138116
+13
+7935.376953125
+23
+1.2781868662450901e-12
+33
+825.1931820138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+7985.404296875
+20
+1.2705676354779483e-12
+30
+715.3884945138116
+11
+7935.376953125
+21
+1.2781868662450901e-12
+31
+825.1931820138116
+12
+7985.404296875
+22
+1.2758872734372484e-12
+32
+792.0525570138116
+13
+7985.404296875
+23
+1.2758872734372484e-12
+33
+792.0525570138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7985.404296875
+20
+1.2705676354779483e-12
+30
+715.3884945138116
+11
+7810.326171875
+21
+1.2375292847768837e-12
+31
+239.25568201381157
+12
+7765.408203125
+22
+1.2357305933727303e-12
+32
+213.33380701381157
+13
+7765.408203125
+23
+1.2357305933727303e-12
+33
+213.33380701381157
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+7810.326171875
+20
+1.2375292847768837e-12
+30
+239.25568201381157
+11
+7985.404296875
+21
+1.2705676354779483e-12
+31
+715.3884945138116
+12
+8244.787109375
+22
+1.2496452440544092e-12
+32
+413.86505701381157
+13
+8244.787109375
+23
+1.2496452440544092e-12
+33
+413.86505701381157
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+8244.787109375
+20
+1.2496452440544092e-12
+30
+413.86505701381157
+11
+7985.404296875
+21
+1.2705676354779483e-12
+31
+715.3884945138116
+12
+8074.853515625
+22
+1.2719776404032657e-12
+32
+735.7088070138116
+13
+8074.853515625
+23
+1.2719776404032657e-12
+33
+735.7088070138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+8244.787109375
+20
+1.2496452440544092e-12
+30
+413.86505701381157
+11
+8074.853515625
+21
+1.2719776404032657e-12
+31
+735.7088070138116
+12
+8082.541015625
+22
+1.2749586542765146e-12
+32
+778.6697445138116
+13
+8082.541015625
+23
+1.2749586542765146e-12
+33
+778.6697445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+8244.787109375
+20
+1.2496452440544092e-12
+30
+413.86505701381157
+11
+8082.541015625
+21
+1.2749586542765146e-12
+31
+778.6697445138116
+12
+8125.431640625
+22
+1.272083350115083e-12
+32
+737.2322445138116
+13
+8125.431640625
+23
+1.272083350115083e-12
+33
+737.2322445138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+8125.431640625
+20
+1.272083350115083e-12
+30
+737.2322445138116
+11
+8082.541015625
+21
+1.2749586542765146e-12
+31
+778.6697445138116
+12
+8120.849609375
+22
+1.2773655830994324e-12
+32
+813.3572445138116
+13
+8120.849609375
+23
+1.2773655830994324e-12
+33
+813.3572445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+8244.787109375
+20
+1.2496452440544092e-12
+30
+413.86505701381157
+11
+8125.431640625
+21
+1.272083350115083e-12
+31
+737.2322445138116
+12
+8189.017578125
+22
+1.272083350115083e-12
+32
+737.2322445138116
+13
+8189.017578125
+23
+1.272083350115083e-12
+33
+737.2322445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+8244.787109375
+20
+1.2496452440544092e-12
+30
+413.86505701381157
+11
+8189.017578125
+21
+1.272083350115083e-12
+31
+737.2322445138116
+12
+8250.822265625
+22
+1.272909512170517e-12
+32
+749.1384945138116
+13
+8250.822265625
+23
+1.272909512170517e-12
+33
+749.1384945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+8244.787109375
+20
+1.2496452440544092e-12
+30
+413.86505701381157
+11
+8250.822265625
+21
+1.272909512170517e-12
+31
+749.1384945138116
+12
+8260.619140625
+22
+1.2507429987540508e-12
+32
+429.68536951381157
+13
+8260.619140625
+23
+1.2507429987540508e-12
+33
+429.68536951381157
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+8260.619140625
+20
+1.2507429987540508e-12
+30
+429.68536951381157
+11
+8250.822265625
+21
+1.272909512170517e-12
+31
+749.1384945138116
+12
+8382.341796875
+22
+1.2759441940513039e-12
+32
+792.8728695138116
+13
+8382.341796875
+23
+1.2759441940513039e-12
+33
+792.8728695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+8260.619140625
+20
+1.2507429987540508e-12
+30
+429.68536951381157
+11
+8382.341796875
+21
+1.2759441940513039e-12
+31
+792.8728695138116
+12
+8334.541015625
+22
+1.2574010842952843e-12
+32
+525.6384945138116
+13
+8334.541015625
+23
+1.2574010842952843e-12
+33
+525.6384945138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+8334.541015625
+20
+1.2574010842952843e-12
+30
+525.6384945138116
+11
+8382.341796875
+21
+1.2759441940513039e-12
+31
+792.8728695138116
+12
+8442.822265625
+22
+1.2649357472929723e-12
+32
+634.2244320138116
+13
+8442.822265625
+23
+1.2649357472929723e-12
+33
+634.2244320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+8376.201171875
+20
+1.3020479876571511e-12
+30
+1169.0681820138116
+11
+8250.822265625
+21
+1.272909512170517e-12
+31
+749.1384945138116
+12
+8189.017578125
+22
+1.272083350115083e-12
+32
+737.2322445138116
+13
+8189.017578125
+23
+1.272083350115083e-12
+33
+737.2322445138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+8250.822265625
+20
+1.272909512170517e-12
+30
+749.1384945138116
+11
+8376.201171875
+21
+1.3020479876571511e-12
+31
+1169.0681820138116
+12
+8411.404296875
+22
+1.3032075418806244e-12
+32
+1185.7791195138116
+13
+8411.404296875
+23
+1.3032075418806244e-12
+33
+1185.7791195138116
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+8411.404296875
+20
+1.3032075418806244e-12
+30
+1185.7791195138116
+11
+8376.201171875
+21
+1.3020479876571511e-12
+31
+1169.0681820138116
+12
+8405.404296875
+22
+1.3039003470688426e-12
+32
+1195.7634945138116
+13
+8405.404296875
+23
+1.3039003470688426e-12
+33
+1195.7634945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+8411.404296875
+20
+1.3032075418806244e-12
+30
+1185.7791195138116
+11
+8405.404296875
+21
+1.3039003470688426e-12
+31
+1195.7634945138116
+12
+8410.115234375
+22
+1.3035620759910271e-12
+32
+1190.8884945138116
+13
+8410.115234375
+23
+1.3035620759910271e-12
+33
+1190.8884945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5147.732421875
+20
+1.2791106064960478e-12
+30
+838.5056820138116
+11
+5050.900390625
+21
+4.516144876606367e-13
+31
+-334.0280102867964
+12
+5050.900390625
+22
+1.2774777980242846e-12
+32
+814.9744320138116
+13
+5050.900390625
+23
+1.2774777980242846e-12
+33
+814.9744320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+4.516144876606367e-13
+30
+-334.0280102867964
+11
+5147.732421875
+21
+1.2791106064960478e-12
+31
+838.5056820138116
+12
+6448.18009835036
+22
+8.086549426529305e-13
+32
+-317.88275787443763
+13
+6448.18009835036
+23
+8.086549426529305e-13
+33
+-317.88275787443763
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+5147.732421875
+21
+1.2791106064960478e-12
+31
+838.5056820138116
+12
+5298.716796875
+22
+1.2752904201412951e-12
+32
+783.4509945138116
+13
+5298.716796875
+23
+1.2752904201412951e-12
+33
+783.4509945138116
+70
+15
+ 0
+3DFACE
+ 8
+ship5
+10
+5298.716796875
+20
+1.2752904201412951e-12
+30
+783.4509945138116
+11
+5147.732421875
+21
+1.2791106064960478e-12
+31
+838.5056820138116
+12
+5243.755859375
+22
+1.2791284958318938e-12
+32
+838.7634945138116
+13
+5243.755859375
+23
+1.2791284958318938e-12
+33
+838.7634945138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+5298.716796875
+21
+1.2752904201412951e-12
+31
+783.4509945138116
+12
+5389.068359375
+22
+1.2752904201412951e-12
+32
+783.4509945138116
+13
+5389.068359375
+23
+1.2752904201412951e-12
+33
+783.4509945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+5389.068359375
+21
+1.2752904201412951e-12
+31
+783.4509945138116
+12
+5495.181640625
+22
+1.2728038024586996e-12
+32
+747.6150570138116
+13
+5495.181640625
+23
+1.2728038024586996e-12
+33
+747.6150570138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+5495.181640625
+21
+1.2728038024586996e-12
+31
+747.6150570138116
+12
+5615.474609375
+22
+1.2741910391383948e-12
+32
+767.6072445138116
+13
+5615.474609375
+23
+1.2741910391383948e-12
+33
+767.6072445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+5615.474609375
+21
+1.2741910391383948e-12
+31
+767.6072445138116
+12
+5650.513671875
+22
+1.2747797609180544e-12
+32
+776.0916195138116
+13
+5650.513671875
+23
+1.2747797609180544e-12
+33
+776.0916195138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+5650.513671875
+21
+1.2747797609180544e-12
+31
+776.0916195138116
+12
+5961.458984375
+22
+1.2691738935852181e-12
+32
+695.3025570138116
+13
+5961.458984375
+23
+1.2691738935852181e-12
+33
+695.3025570138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+5961.458984375
+21
+1.2691738935852181e-12
+31
+695.3025570138116
+12
+6010.466796875
+22
+1.2680354813041084e-12
+32
+678.8963070138116
+13
+6010.466796875
+23
+1.2680354813041084e-12
+33
+678.8963070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+3878.744140625
+20
+1.277768906307597e-12
+30
+819.1697445138116
+11
+5050.900390625
+21
+4.516144876606367e-13
+31
+-334.0280102867964
+12
+3212.896745144124
+22
+8.685692946118428e-13
+32
+-355.26572856685834
+13
+3212.896745144124
+23
+8.685692946118428e-13
+33
+-355.26572856685834
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+4.516144876606367e-13
+30
+-334.0280102867964
+11
+3878.744140625
+21
+1.277768906307597e-12
+31
+819.1697445138116
+12
+4246.876953125
+22
+1.27529692535433e-12
+32
+783.5447445138116
+13
+4246.876953125
+23
+1.27529692535433e-12
+33
+783.5447445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+4.516144876606367e-13
+30
+-334.0280102867964
+11
+4246.876953125
+21
+1.27529692535433e-12
+31
+783.5447445138116
+12
+4279.724609375
+22
+1.27529692535433e-12
+32
+783.5447445138116
+13
+4279.724609375
+23
+1.27529692535433e-12
+33
+783.5447445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+4.516144876606367e-13
+30
+-334.0280102867964
+11
+4279.724609375
+21
+1.27529692535433e-12
+31
+783.5447445138116
+12
+4365.330078125
+22
+1.2743536694642676e-12
+32
+769.9509945138116
+13
+4365.330078125
+23
+1.2743536694642676e-12
+33
+769.9509945138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+4.516144876606367e-13
+30
+-334.0280102867964
+11
+4365.330078125
+21
+1.2743536694642676e-12
+31
+769.9509945138116
+12
+4720.548828125
+22
+1.2751017689632826e-12
+32
+780.7322445138116
+13
+4720.548828125
+23
+1.2751017689632826e-12
+33
+780.7322445138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+5050.900390625
+20
+4.516144876606367e-13
+30
+-334.0280102867964
+11
+4720.548828125
+21
+1.2751017689632826e-12
+31
+780.7322445138116
+12
+5050.900390625
+22
+1.2774777980242846e-12
+32
+814.9744320138116
+13
+5050.900390625
+23
+1.2774777980242846e-12
+33
+814.9744320138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6155.240234375
+20
+1.2696813002019414e-12
+30
+702.6150570138116
+11
+6448.18009835036
+21
+8.086549426529305e-13
+31
+-317.88275787443763
+12
+6010.466796875
+22
+1.2680354813041084e-12
+32
+678.8963070138116
+13
+6010.466796875
+23
+1.2680354813041084e-12
+33
+678.8963070138116
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+6155.240234375
+21
+1.2696813002019414e-12
+31
+702.6150570138116
+12
+6332.181640625
+22
+1.2682273850886383e-12
+32
+681.6619320138116
+13
+6332.181640625
+23
+1.2682273850886383e-12
+33
+681.6619320138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+6332.181640625
+21
+1.2682273850886383e-12
+31
+681.6619320138116
+12
+6618.541015625
+22
+1.2630508618161063e-12
+32
+607.0603695138116
+13
+6618.541015625
+23
+1.2630508618161063e-12
+33
+607.0603695138116
+70
+13
+ 0
+3DFACE
+ 8
+ship5
+10
+6448.18009835036
+20
+8.086549426529305e-13
+30
+-317.88275787443763
+11
+6618.541015625
+21
+1.2630508618161063e-12
+31
+607.0603695138116
+12
+7980.095703125
+22
+1.2000982889739942e-12
+32
+-300.18181798618843
+13
+7980.095703125
+23
+1.2000982889739942e-12
+33
+-300.18181798618843
+70
+3
+ 0
+3DFACE
+ 8
+ship5
+10
+7980.095703125
+20
+1.2000982889739942e-12
+30
+-300.18181798618843
+11
+6618.541015625
+21
+1.2630508618161063e-12
+31
+607.0603695138116
+12
+7988.298828125
+22
+1.2006691214178078e-12
+32
+-291.95525548618843
+13
+7988.298828125
+23
+1.2006691214178078e-12
+33
+-291.95525548618843
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5915.615234375
+20
+1.39301038152434e-12
+30
+2479.9744320138125
+11
+5661.927734375
+21
+1.3689362143853856e-12
+31
+2133.0291195138125
+12
+5661.927734375
+22
+1.3745241923823759e-12
+32
+2213.5603695138125
+13
+5661.927734375
+23
+1.3745241923823759e-12
+33
+2213.5603695138125
+70
+1
+ 0
+3DFACE
+ 8
+ship5
+10
+5661.927734375
+20
+1.3689362143853856e-12
+30
+2133.0291195138125
+11
+5915.615234375
+21
+1.39301038152434e-12
+31
+2479.9744320138125
+12
+5948.357421875
+22
+1.3888112665103036e-12
+32
+2419.4588070138125
+13
+5948.357421875
+23
+1.3888112665103036e-12
+33
+2419.4588070138125
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2602.564453125
+20
+2.2007835007512032e-13
+30
+1624.3351834406803
+11
+2785.658203125
+21
+2.0824862017113098e-13
+31
+1453.8508084406803
+12
+2553.9609375
+22
+2.1834633710457473e-13
+32
+1599.3742459406803
+13
+2553.9609375
+23
+2.1834633710457473e-13
+33
+1599.3742459406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2785.658203125
+20
+2.0824862017113098e-13
+30
+1453.8508084406803
+11
+2602.564453125
+21
+2.2007835007512032e-13
+31
+1624.3351834406803
+12
+2952.498046875
+22
+2.0599619015779235e-13
+32
+1421.3898709406803
+13
+2952.498046875
+23
+2.0599619015779235e-13
+33
+1421.3898709406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2101.505859375
+20
+1.8763278691186224e-13
+30
+1156.7453396906803
+11
+2543.0390625
+21
+9.111046877889606e-14
+31
+-234.2878634343192
+12
+2091.193359375
+22
+1.834149694103505e-13
+32
+1095.9601834406803
+13
+2091.193359375
+23
+1.834149694103505e-13
+33
+1095.9601834406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2101.505859375
+21
+1.8763278691186224e-13
+31
+1156.7453396906803
+12
+2200.107421875
+22
+1.8763278691186224e-13
+32
+1156.7453396906803
+13
+2200.107421875
+23
+1.8763278691186224e-13
+33
+1156.7453396906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2200.107421875
+21
+1.8763278691186224e-13
+31
+1156.7453396906803
+12
+2238.486328125
+22
+1.8280266623343932e-13
+32
+1087.1359646906803
+13
+2238.486328125
+23
+1.8280266623343932e-13
+33
+1087.1359646906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2238.486328125
+21
+1.8280266623343932e-13
+31
+1087.1359646906803
+12
+2333.748046875
+22
+1.8353450269986703e-13
+32
+1097.6828396906803
+13
+2333.748046875
+23
+1.8353450269986703e-13
+33
+1097.6828396906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2333.748046875
+21
+1.8353450269986703e-13
+31
+1097.6828396906803
+12
+2334.052734375
+22
+1.8953474857294493e-13
+32
+1184.1554959406803
+13
+2334.052734375
+23
+1.8953474857294493e-13
+33
+1184.1554959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2334.052734375
+21
+1.8953474857294493e-13
+31
+1184.1554959406803
+12
+2352.427734375
+22
+2.048480200571302e-13
+32
+1404.8429959406803
+13
+2352.427734375
+23
+2.048480200571302e-13
+33
+1404.8429959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2352.427734375
+21
+2.048480200571302e-13
+31
+1404.8429959406803
+12
+2439.4453125
+22
+2.092504229785076e-13
+32
+1468.2883084406803
+13
+2439.4453125
+23
+2.092504229785076e-13
+33
+1468.2883084406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2439.4453125
+21
+2.092504229785076e-13
+31
+1468.2883084406803
+12
+2542.693359375
+22
+2.115418842700557e-13
+32
+1501.3117459406803
+13
+2542.693359375
+23
+2.115418842700557e-13
+33
+1501.3117459406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2542.693359375
+21
+2.115418842700557e-13
+31
+1501.3117459406803
+12
+2785.658203125
+22
+2.0824862017113098e-13
+32
+1453.8508084406803
+13
+2785.658203125
+23
+2.0824862017113098e-13
+33
+1453.8508084406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2543.0390625
+20
+9.111046877889606e-14
+30
+-234.2878634343192
+11
+2785.658203125
+21
+2.0824862017113098e-13
+31
+1453.8508084406803
+12
+3059.44921875
+22
+9.531974818829947e-14
+32
+-173.6257540593192
+13
+3059.44921875
+23
+9.531974818829947e-14
+33
+-173.6257540593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3059.44921875
+20
+9.531974818829947e-14
+30
+-173.6257540593192
+11
+2785.658203125
+21
+2.0824862017113098e-13
+31
+1453.8508084406803
+12
+2952.498046875
+22
+2.0599619015779235e-13
+32
+1421.3898709406803
+13
+2952.498046875
+23
+2.0599619015779235e-13
+33
+1421.3898709406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+1227.357421875
+20
+1.6886280785125006e-13
+30
+886.2414334406803
+11
+2026.62890625
+21
+8.690118936949265e-14
+31
+-294.9499728093192
+12
+1208.15625
+22
+1.6348462297463572e-13
+32
+808.7336209406803
+13
+1208.15625
+23
+1.6348462297463572e-13
+33
+808.7336209406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1227.357421875
+21
+1.6886280785125006e-13
+31
+886.2414334406803
+12
+1352.15625
+22
+1.6889939967457145e-13
+32
+886.7687771906803
+13
+1352.15625
+23
+1.6889939967457145e-13
+33
+886.7687771906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1352.15625
+21
+1.6889939967457145e-13
+31
+886.7687771906803
+12
+1440.43359375
+22
+1.637659734383957e-13
+32
+812.7883084406803
+13
+1440.43359375
+23
+1.637659734383957e-13
+33
+812.7883084406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1440.43359375
+21
+1.637659734383957e-13
+31
+812.7883084406803
+12
+1500.7734375
+22
+1.6950519763844773e-13
+32
+895.4992459406803
+13
+1500.7734375
+23
+1.6950519763844773e-13
+33
+895.4992459406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1500.7734375
+21
+1.6950519763844773e-13
+31
+895.4992459406803
+12
+1656.275390625
+22
+1.5927818959593508e-13
+32
+748.1125271906803
+13
+1656.275390625
+23
+1.5927818959593508e-13
+33
+748.1125271906803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+1656.275390625
+20
+1.5927818959593508e-13
+30
+748.1125271906803
+11
+1500.7734375
+21
+1.6950519763844773e-13
+31
+895.4992459406803
+12
+1629.55078125
+22
+1.6792768347748132e-13
+32
+872.7648709406803
+13
+1629.55078125
+23
+1.6792768347748132e-13
+33
+872.7648709406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1656.275390625
+21
+1.5927818959593508e-13
+31
+748.1125271906803
+12
+1728.931640625
+22
+1.6842045336487598e-13
+32
+879.8664334406803
+13
+1728.931640625
+23
+1.6842045336487598e-13
+33
+879.8664334406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1728.931640625
+21
+1.6842045336487598e-13
+31
+879.8664334406803
+12
+1797.140625
+22
+1.5931803402577393e-13
+32
+748.6867459406803
+13
+1797.140625
+23
+1.5931803402577393e-13
+33
+748.6867459406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1797.140625
+21
+1.5931803402577393e-13
+31
+748.6867459406803
+12
+1908.890625
+22
+1.6961090735026506e-13
+32
+897.0226834406803
+13
+1908.890625
+23
+1.6961090735026506e-13
+33
+897.0226834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1908.890625
+21
+1.6961090735026506e-13
+31
+897.0226834406803
+12
+1909.03125
+22
+1.802233492650963e-13
+32
+1049.9640896906803
+13
+1909.03125
+23
+1.802233492650963e-13
+33
+1049.9640896906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+1909.03125
+21
+1.802233492650963e-13
+31
+1049.9640896906803
+12
+2091.193359375
+22
+1.834149694103505e-13
+32
+1095.9601834406803
+13
+2091.193359375
+23
+1.834149694103505e-13
+33
+1095.9601834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+2091.193359375
+21
+1.834149694103505e-13
+31
+1095.9601834406803
+12
+2543.0390625
+22
+9.111046877889606e-14
+32
+-234.2878634343192
+13
+2543.0390625
+23
+9.111046877889606e-14
+33
+-234.2878634343192
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+312.5859375
+20
+1.7485654851129305e-13
+30
+972.6203396906803
+11
+314.244140625
+21
+1.6478810503650642e-13
+31
+827.5187771906803
+12
+271.4296875
+22
+1.69063656303703e-13
+32
+889.1359646906803
+13
+271.4296875
+23
+1.69063656303703e-13
+33
+889.1359646906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+314.244140625
+20
+1.6478810503650642e-13
+30
+827.5187771906803
+11
+312.5859375
+21
+1.7485654851129305e-13
+31
+972.6203396906803
+12
+488.26171875
+22
+1.6650954703587028e-13
+32
+852.3273709406803
+13
+488.26171875
+23
+1.6650954703587028e-13
+33
+852.3273709406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+314.244140625
+20
+1.6478810503650642e-13
+30
+827.5187771906803
+11
+488.26171875
+21
+1.6650954703587028e-13
+31
+852.3273709406803
+12
+337.6171875
+22
+1.0867576370060528e-13
+32
+18.854714690680794
+13
+337.6171875
+23
+1.0867576370060528e-13
+33
+18.854714690680794
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+337.6171875
+20
+1.0867576370060528e-13
+30
+18.854714690680794
+11
+488.26171875
+21
+1.6650954703587028e-13
+31
+852.3273709406803
+12
+440.033203125
+22
+8.526512829121202e-14
+32
+-318.5280978093192
+13
+440.033203125
+23
+8.526512829121202e-14
+33
+-318.5280978093192
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+440.033203125
+20
+8.526512829121202e-14
+30
+-318.5280978093192
+11
+488.26171875
+21
+1.6650954703587028e-13
+31
+852.3273709406803
+12
+521.47265625
+22
+1.6189897729737567e-13
+32
+785.8820584406803
+13
+521.47265625
+23
+1.6189897729737567e-13
+33
+785.8820584406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+261.24609375
+20
+1.0091911030810086e-13
+30
+-92.9304415593192
+11
+279.169921875
+21
+9.183458030484482e-14
+31
+-223.8523165593192
+12
+219.064453125
+22
+9.943429543288196e-14
+32
+-114.3288790593192
+13
+219.064453125
+23
+9.943429543288196e-14
+33
+-114.3288790593192
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+279.169921875
+20
+9.183458030484482e-14
+30
+-223.8523165593192
+11
+261.24609375
+21
+1.0091911030810086e-13
+31
+-92.9304415593192
+12
+337.6171875
+22
+1.0867576370060528e-13
+32
+18.854714690680794
+13
+337.6171875
+23
+1.0867576370060528e-13
+33
+18.854714690680794
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+279.169921875
+20
+9.183458030484482e-14
+30
+-223.8523165593192
+11
+337.6171875
+21
+1.0867576370060528e-13
+31
+18.854714690680794
+12
+440.033203125
+22
+8.526512829121202e-14
+32
+-318.5280978093192
+13
+440.033203125
+23
+8.526512829121202e-14
+33
+-318.5280978093192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+82.0078125
+20
+1.6865301473087412e-13
+30
+883.2179959406803
+11
+128.4375
+21
+1.5752015577324984e-13
+31
+722.7765896906803
+12
+57.45703125
+22
+1.600913412252992e-13
+32
+759.8312771906803
+13
+57.45703125
+23
+1.600913412252992e-13
+33
+759.8312771906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+128.4375
+20
+1.5752015577324984e-13
+30
+722.7765896906803
+11
+82.0078125
+21
+1.6865301473087412e-13
+31
+883.2179959406803
+12
+190.86328125
+22
+1.6865301473087412e-13
+32
+883.2179959406803
+13
+190.86328125
+23
+1.6865301473087412e-13
+33
+883.2179959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+128.4375
+20
+1.5752015577324984e-13
+30
+722.7765896906803
+11
+190.86328125
+21
+1.6865301473087412e-13
+31
+883.2179959406803
+12
+153.064453125
+22
+1.4962933236190034e-13
+32
+609.0578396906803
+13
+153.064453125
+23
+1.4962933236190034e-13
+33
+609.0578396906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+153.064453125
+20
+1.4962933236190034e-13
+30
+609.0578396906803
+11
+190.86328125
+21
+1.6865301473087412e-13
+31
+883.2179959406803
+12
+280.359375
+22
+1.2769700661469097e-13
+32
+292.9797146906808
+13
+280.359375
+23
+1.2769700661469097e-13
+33
+292.9797146906808
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+280.359375
+20
+1.2769700661469097e-13
+30
+292.9797146906808
+11
+190.86328125
+21
+1.6865301473087412e-13
+31
+883.2179959406803
+12
+265.3125
+22
+1.6361147462881652e-13
+32
+810.5617459406803
+13
+265.3125
+23
+1.6361147462881652e-13
+33
+810.5617459406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+280.359375
+20
+1.2769700661469097e-13
+30
+292.9797146906808
+11
+265.3125
+21
+1.6361147462881652e-13
+31
+810.5617459406803
+12
+314.244140625
+22
+1.6478810503650642e-13
+32
+827.5187771906803
+13
+314.244140625
+23
+1.6478810503650642e-13
+33
+827.5187771906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+280.359375
+20
+1.2769700661469097e-13
+30
+292.9797146906808
+11
+314.244140625
+21
+1.6478810503650642e-13
+31
+827.5187771906803
+12
+337.6171875
+22
+1.0867576370060528e-13
+32
+18.854714690680794
+13
+337.6171875
+23
+1.0867576370060528e-13
+33
+18.854714690680794
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+905.958984375
+20
+1.692108367486179e-13
+30
+891.2570584406803
+11
+889.142578125
+21
+1.5998319205859378e-13
+31
+758.2726834406803
+12
+824.232421875
+22
+1.692108367486179e-13
+32
+891.2570584406803
+13
+824.232421875
+23
+1.692108367486179e-13
+33
+891.2570584406803
+70
+2
+ 0
+3DFACE
+ 8
+ship4
+10
+521.47265625
+20
+1.6189897729737567e-13
+30
+785.8820584406803
+11
+2026.62890625
+21
+8.690118936949265e-14
+31
+-294.9499728093192
+12
+440.033203125
+22
+8.526512829121202e-14
+32
+-318.5280978093192
+13
+440.033203125
+23
+8.526512829121202e-14
+33
+-318.5280978093192
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+521.47265625
+21
+1.6189897729737567e-13
+31
+785.8820584406803
+12
+784.634765625
+22
+1.6009947274159285e-13
+32
+759.9484646906803
+13
+784.634765625
+23
+1.6009947274159285e-13
+33
+759.9484646906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+784.634765625
+21
+1.6009947274159285e-13
+31
+759.9484646906803
+12
+889.142578125
+22
+1.5998319205859378e-13
+32
+758.2726834406803
+13
+889.142578125
+23
+1.5998319205859378e-13
+33
+758.2726834406803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+889.142578125
+20
+1.5998319205859378e-13
+30
+758.2726834406803
+11
+784.634765625
+21
+1.6009947274159285e-13
+31
+759.9484646906803
+12
+824.232421875
+22
+1.692108367486179e-13
+32
+891.2570584406803
+13
+824.232421875
+23
+1.692108367486179e-13
+33
+891.2570584406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2026.62890625
+20
+8.690118936949265e-14
+30
+-294.9499728093192
+11
+889.142578125
+21
+1.5998319205859378e-13
+31
+758.2726834406803
+12
+1208.15625
+22
+1.6348462297463572e-13
+32
+808.7336209406803
+13
+1208.15625
+23
+1.6348462297463572e-13
+33
+808.7336209406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2815.6171875
+20
+2.175014725616654e-13
+30
+1587.1984646906803
+11
+2925.33984375
+21
+2.0974156656264352e-13
+31
+1475.3664334406803
+12
+2772.814453125
+22
+2.1755676687246216e-13
+32
+1587.9953396906803
+13
+2772.814453125
+23
+2.1755676687246216e-13
+33
+1587.9953396906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+2925.33984375
+20
+2.0974156656264352e-13
+30
+1475.3664334406803
+11
+2815.6171875
+21
+2.175014725616654e-13
+31
+1587.1984646906803
+12
+2900.431640625
+22
+2.1474895429626783e-13
+32
+1547.5304959406803
+13
+2900.431640625
+23
+2.1474895429626783e-13
+33
+1547.5304959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2925.33984375
+20
+2.0974156656264352e-13
+30
+1475.3664334406803
+11
+2900.431640625
+21
+2.1474895429626783e-13
+31
+1547.5304959406803
+12
+3075.05859375
+22
+2.160190971413346e-13
+32
+1565.8351834406803
+13
+3075.05859375
+23
+2.160190971413346e-13
+33
+1565.8351834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+2925.33984375
+20
+2.0974156656264352e-13
+30
+1475.3664334406803
+11
+3075.05859375
+21
+2.160190971413346e-13
+31
+1565.8351834406803
+12
+2952.498046875
+22
+2.0599619015779235e-13
+32
+1421.3898709406803
+13
+2952.498046875
+23
+2.0599619015779235e-13
+33
+1421.3898709406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+2952.498046875
+20
+2.0599619015779235e-13
+30
+1421.3898709406803
+11
+3075.05859375
+21
+2.160190971413346e-13
+31
+1565.8351834406803
+12
+3059.44921875
+22
+9.531974818829947e-14
+32
+-173.6257540593192
+13
+3059.44921875
+23
+9.531974818829947e-14
+33
+-173.6257540593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3059.44921875
+20
+9.531974818829947e-14
+30
+-173.6257540593192
+11
+3075.05859375
+21
+2.160190971413346e-13
+31
+1565.8351834406803
+12
+3546.0703125
+22
+9.489040412799521e-14
+32
+-179.8132540593192
+13
+3546.0703125
+23
+9.489040412799521e-14
+33
+-179.8132540593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3546.0703125
+20
+9.489040412799521e-14
+30
+-179.8132540593192
+11
+3075.05859375
+21
+2.160190971413346e-13
+31
+1565.8351834406803
+12
+3153.251953125
+22
+2.1557511635170178e-13
+32
+1559.4367459406803
+13
+3153.251953125
+23
+2.1557511635170178e-13
+33
+1559.4367459406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+3546.0703125
+20
+9.489040412799521e-14
+30
+-179.8132540593192
+11
+3153.251953125
+21
+2.1557511635170178e-13
+31
+1559.4367459406803
+12
+3284.794921875
+22
+2.1899929786295412e-13
+32
+1608.7844021906803
+13
+3284.794921875
+23
+2.1899929786295412e-13
+33
+1608.7844021906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+3546.0703125
+20
+9.489040412799521e-14
+30
+-179.8132540593192
+11
+3284.794921875
+21
+2.1899929786295412e-13
+31
+1608.7844021906803
+12
+3394.8984375
+22
+2.159101348229998e-13
+32
+1564.2648709406803
+13
+3394.8984375
+23
+2.159101348229998e-13
+33
+1564.2648709406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+3488.203125
+20
+2.2792363699522533e-13
+30
+1737.3976834406803
+11
+3546.0703125
+21
+9.489040412799521e-14
+31
+-179.8132540593192
+12
+3394.8984375
+22
+2.159101348229998e-13
+32
+1564.2648709406803
+13
+3394.8984375
+23
+2.159101348229998e-13
+33
+1564.2648709406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+3546.0703125
+20
+9.489040412799521e-14
+30
+-179.8132540593192
+11
+3488.203125
+21
+2.2792363699522533e-13
+31
+1737.3976834406803
+12
+3500.40234375
+22
+2.3473459504277927e-13
+32
+1835.5539334406803
+13
+3500.40234375
+23
+2.3473459504277927e-13
+33
+1835.5539334406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+3546.0703125
+20
+9.489040412799521e-14
+30
+-179.8132540593192
+11
+3500.40234375
+21
+2.3473459504277927e-13
+31
+1835.5539334406803
+12
+3634.728515625
+22
+2.3473459504277927e-13
+32
+1835.5539334406803
+13
+3634.728515625
+23
+2.3473459504277927e-13
+33
+1835.5539334406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+3546.0703125
+20
+9.489040412799521e-14
+30
+-179.8132540593192
+11
+3634.728515625
+21
+2.3473459504277927e-13
+31
+1835.5539334406803
+12
+4091.525390625
+22
+8.951465870626896e-14
+32
+-257.2859103093192
+13
+4091.525390625
+23
+8.951465870626896e-14
+33
+-257.2859103093192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+4091.525390625
+20
+8.951465870626896e-14
+30
+-257.2859103093192
+11
+3634.728515625
+21
+2.3473459504277927e-13
+31
+1835.5539334406803
+12
+4181.208984375
+22
+2.375196393733514e-13
+32
+1875.6906521906803
+13
+4181.208984375
+23
+2.375196393733514e-13
+33
+1875.6906521906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+3569.578125
+20
+3.1551633051032923e-13
+30
+2999.7414334406803
+11
+3570.498046875
+21
+3.095965866485584e-13
+31
+2914.4289334406803
+12
+3460.8984375
+22
+3.159090827473121e-13
+32
+3005.4015896906803
+13
+3460.8984375
+23
+3.159090827473121e-13
+33
+3005.4015896906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+3570.498046875
+20
+3.095965866485584e-13
+30
+2914.4289334406803
+11
+3569.578125
+21
+3.1551633051032923e-13
+31
+2999.7414334406803
+12
+3658.078125
+22
+3.264768013225283e-13
+32
+3157.6984646906803
+13
+3658.078125
+23
+3.264768013225283e-13
+33
+3157.6984646906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+3570.498046875
+20
+3.095965866485584e-13
+30
+2914.4289334406803
+11
+3658.078125
+21
+3.264768013225283e-13
+31
+3157.6984646906803
+12
+3604.5
+22
+2.959543417627164e-13
+32
+2717.8234646906803
+13
+3604.5
+23
+2.959543417627164e-13
+33
+2717.8234646906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3604.5
+20
+2.959543417627164e-13
+30
+2717.8234646906803
+11
+3658.078125
+21
+3.264768013225283e-13
+31
+3157.6984646906803
+12
+3650.794921875
+22
+2.709491160081401e-13
+32
+2357.4601834406803
+13
+3650.794921875
+23
+2.709491160081401e-13
+33
+2357.4601834406803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+3650.794921875
+20
+2.709491160081401e-13
+30
+2357.4601834406803
+11
+3658.078125
+21
+3.264768013225283e-13
+31
+3157.6984646906803
+12
+3864.796875
+22
+3.110171625450575e-13
+32
+2934.9015896906803
+13
+3864.796875
+23
+3.110171625450575e-13
+33
+2934.9015896906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3864.796875
+20
+3.110171625450575e-13
+30
+2934.9015896906803
+11
+3658.078125
+21
+3.264768013225283e-13
+31
+3157.6984646906803
+12
+3799.669921875
+22
+3.176980163319132e-13
+32
+3031.1828396906803
+13
+3799.669921875
+23
+3.176980163319132e-13
+33
+3031.1828396906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+3506.888671875
+20
+2.840652517897835e-13
+30
+2546.4836209406803
+11
+3331.880859375
+21
+2.7523686454977714e-13
+31
+2419.2531521906803
+12
+3273.462890625
+22
+2.8441978590018624e-13
+32
+2551.5929959406803
+13
+3273.462890625
+23
+2.8441978590018624e-13
+33
+2551.5929959406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+3331.880859375
+20
+2.7523686454977714e-13
+30
+2419.2531521906803
+11
+3506.888671875
+21
+2.840652517897835e-13
+31
+2546.4836209406803
+12
+3413.56640625
+22
+2.7447006256328677e-13
+32
+2408.2023709406803
+13
+3413.56640625
+23
+2.7447006256328677e-13
+33
+2408.2023709406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3413.56640625
+20
+2.7447006256328677e-13
+30
+2408.2023709406803
+11
+3506.888671875
+21
+2.840652517897835e-13
+31
+2546.4836209406803
+12
+3449.40234375
+22
+2.7553529119775377e-13
+32
+2423.5539334406803
+13
+3449.40234375
+23
+2.7553529119775377e-13
+33
+2423.5539334406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3449.40234375
+20
+2.7553529119775377e-13
+30
+2423.5539334406803
+11
+3506.888671875
+21
+2.840652517897835e-13
+31
+2546.4836209406803
+12
+3585.978515625
+22
+2.755621252015228e-13
+32
+2423.9406521906803
+13
+3585.978515625
+23
+2.755621252015228e-13
+33
+2423.9406521906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+3585.978515625
+20
+2.755621252015228e-13
+30
+2423.9406521906803
+11
+3506.888671875
+21
+2.840652517897835e-13
+31
+2546.4836209406803
+12
+3534.439453125
+22
+2.9372711944988805e-13
+32
+2685.7258084406803
+13
+3534.439453125
+23
+2.9372711944988805e-13
+33
+2685.7258084406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+3585.978515625
+20
+2.755621252015228e-13
+30
+2423.9406521906803
+11
+3534.439453125
+21
+2.9372711944988805e-13
+31
+2685.7258084406803
+12
+3604.5
+22
+2.959543417627164e-13
+32
+2717.8234646906803
+13
+3604.5
+23
+2.959543417627164e-13
+33
+2717.8234646906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+3585.978515625
+20
+2.755621252015228e-13
+30
+2423.9406521906803
+11
+3604.5
+21
+2.959543417627164e-13
+31
+2717.8234646906803
+12
+3650.794921875
+22
+2.709491160081401e-13
+32
+2357.4601834406803
+13
+3650.794921875
+23
+2.709491160081401e-13
+33
+2357.4601834406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+4443.486328125
+20
+2.4059985774538273e-13
+30
+1920.0812771906803
+11
+4411.248046875
+21
+2.3040049685826847e-13
+31
+1773.0929959406803
+12
+4301.091796875
+22
+2.417407094813806e-13
+32
+1936.5226834406803
+13
+4301.091796875
+23
+2.417407094813806e-13
+33
+1936.5226834406803
+70
+2
+ 0
+3DFACE
+ 8
+ship4
+10
+4528.529296875
+20
+2.2555655260214646e-13
+30
+1703.2844021906803
+11
+4449.603515625
+21
+2.138268403485689e-13
+31
+1534.2414334406803
+12
+4411.248046875
+22
+2.3040049685826847e-13
+32
+1773.0929959406803
+13
+4411.248046875
+23
+2.3040049685826847e-13
+33
+1773.0929959406803
+70
+2
+ 0
+3DFACE
+ 8
+ship4
+10
+4181.208984375
+20
+2.375196393733514e-13
+30
+1875.6906521906803
+11
+4585.013671875
+21
+9.205738385129059e-14
+31
+-220.6413790593192
+12
+4091.525390625
+22
+8.951465870626896e-14
+32
+-257.2859103093192
+13
+4091.525390625
+23
+8.951465870626896e-14
+33
+-257.2859103093192
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4585.013671875
+20
+9.205738385129059e-14
+30
+-220.6413790593192
+11
+4181.208984375
+21
+2.375196393733514e-13
+31
+1875.6906521906803
+12
+4301.091796875
+22
+2.417407094813806e-13
+32
+1936.5226834406803
+13
+4301.091796875
+23
+2.417407094813806e-13
+33
+1936.5226834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4585.013671875
+20
+9.205738385129059e-14
+30
+-220.6413790593192
+11
+4301.091796875
+21
+2.417407094813806e-13
+31
+1936.5226834406803
+12
+4411.248046875
+22
+2.3040049685826847e-13
+32
+1773.0929959406803
+13
+4411.248046875
+23
+2.3040049685826847e-13
+33
+1773.0929959406803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+4585.013671875
+20
+9.205738385129059e-14
+30
+-220.6413790593192
+11
+4411.248046875
+21
+2.3040049685826847e-13
+31
+1773.0929959406803
+12
+4449.603515625
+22
+2.138268403485689e-13
+32
+1534.2414334406803
+13
+4449.603515625
+23
+2.138268403485689e-13
+33
+1534.2414334406803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+4585.013671875
+20
+9.205738385129059e-14
+30
+-220.6413790593192
+11
+4449.603515625
+21
+2.138268403485689e-13
+31
+1534.2414334406803
+12
+4470.158203125
+22
+2.067410370502899e-13
+32
+1432.1242459406803
+13
+4470.158203125
+23
+2.067410370502899e-13
+33
+1432.1242459406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4585.013671875
+20
+9.205738385129059e-14
+30
+-220.6413790593192
+11
+4470.158203125
+21
+2.067410370502899e-13
+31
+1432.1242459406803
+12
+4678.974609375
+22
+1.8805156000098476e-13
+32
+1162.7804959406803
+13
+4678.974609375
+23
+1.8805156000098476e-13
+33
+1162.7804959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4585.013671875
+20
+9.205738385129059e-14
+30
+-220.6413790593192
+11
+4678.974609375
+21
+1.8805156000098476e-13
+31
+1162.7804959406803
+12
+4836.087890625
+22
+9.634269293803954e-14
+32
+-158.8835665593192
+13
+4836.087890625
+23
+9.634269293803954e-14
+33
+-158.8835665593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+4836.087890625
+20
+9.634269293803954e-14
+30
+-158.8835665593192
+11
+4678.974609375
+21
+1.8805156000098476e-13
+31
+1162.7804959406803
+12
+4691.630859375
+22
+1.836849357512994e-13
+32
+1099.8508084406803
+13
+4691.630859375
+23
+1.836849357512994e-13
+33
+1099.8508084406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4836.087890625
+20
+9.634269293803954e-14
+30
+-158.8835665593192
+11
+4691.630859375
+21
+1.836849357512994e-13
+31
+1099.8508084406803
+12
+4733.080078125
+22
+1.8034532200950092e-13
+32
+1051.7219021906803
+13
+4733.080078125
+23
+1.8034532200950092e-13
+33
+1051.7219021906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4717.529296875
+20
+2.1298522841217703e-13
+30
+1522.1125271906803
+11
+4470.158203125
+21
+2.067410370502899e-13
+31
+1432.1242459406803
+12
+4449.603515625
+22
+2.138268403485689e-13
+32
+1534.2414334406803
+13
+4449.603515625
+23
+2.138268403485689e-13
+33
+1534.2414334406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4470.158203125
+20
+2.067410370502899e-13
+30
+1432.1242459406803
+11
+4717.529296875
+21
+2.1298522841217703e-13
+31
+1522.1125271906803
+12
+4781.408203125
+22
+2.0803557444423758e-13
+32
+1450.7804959406803
+13
+4781.408203125
+23
+2.0803557444423758e-13
+33
+1450.7804959406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4620.181640625
+20
+2.0431621889152606e-13
+30
+1397.1789334406803
+11
+4678.974609375
+21
+1.8805156000098476e-13
+31
+1162.7804959406803
+12
+4470.158203125
+22
+2.067410370502899e-13
+32
+1432.1242459406803
+13
+4470.158203125
+23
+2.067410370502899e-13
+33
+1432.1242459406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4678.974609375
+20
+1.8805156000098476e-13
+30
+1162.7804959406803
+11
+4620.181640625
+21
+2.0431621889152606e-13
+31
+1397.1789334406803
+12
+4744.763671875
+22
+1.9962352083846567e-13
+32
+1329.5500271906803
+13
+4744.763671875
+23
+1.9962352083846567e-13
+33
+1329.5500271906803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+4744.763671875
+20
+1.9962352083846567e-13
+30
+1329.5500271906803
+11
+4620.181640625
+21
+2.0431621889152606e-13
+31
+1397.1789334406803
+12
+4772.056640625
+22
+2.0424384839651265e-13
+32
+1396.1359646906803
+13
+4772.056640625
+23
+2.0424384839651265e-13
+33
+1396.1359646906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4779.673828125
+20
+1.9274507120567451e-13
+30
+1230.4211209406803
+11
+4678.974609375
+21
+1.8805156000098476e-13
+31
+1162.7804959406803
+12
+4744.763671875
+22
+1.9962352083846567e-13
+32
+1329.5500271906803
+13
+4744.763671875
+23
+1.9962352083846567e-13
+33
+1329.5500271906803
+70
+2
+ 0
+3DFACE
+ 8
+ship4
+10
+4820.337890625
+20
+1.7798311652619813e-13
+30
+1017.6789334406803
+11
+4836.087890625
+21
+9.634269293803954e-14
+31
+-158.8835665593192
+12
+4733.080078125
+22
+1.8034532200950092e-13
+32
+1051.7219021906803
+13
+4733.080078125
+23
+1.8034532200950092e-13
+33
+1051.7219021906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4836.087890625
+20
+9.634269293803954e-14
+30
+-158.8835665593192
+11
+4820.337890625
+21
+1.7798311652619813e-13
+31
+1017.6789334406803
+12
+4952.888671875
+22
+1.7570385250909048e-13
+32
+984.8312771906803
+13
+4952.888671875
+23
+1.7570385250909048e-13
+33
+984.8312771906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4836.087890625
+20
+9.634269293803954e-14
+30
+-158.8835665593192
+11
+4952.888671875
+21
+1.7570385250909048e-13
+31
+984.8312771906803
+12
+5299.048828125
+22
+9.636708748692047e-14
+32
+-158.5320040593192
+13
+5299.048828125
+23
+9.636708748692047e-14
+33
+-158.5320040593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+5299.048828125
+20
+9.636708748692047e-14
+30
+-158.5320040593192
+11
+4952.888671875
+21
+1.7570385250909048e-13
+31
+984.8312771906803
+12
+4996.423828125
+22
+1.7930936683369102e-13
+32
+1036.7922146906803
+13
+4996.423828125
+23
+1.7930936683369102e-13
+33
+1036.7922146906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5410.705078125
+20
+2.0026835008055143e-13
+30
+1338.8429959406803
+11
+4982.982421875
+21
+1.985485343844463e-13
+31
+1314.0578396906803
+12
+4965.029296875
+22
+2.0123518736786538e-13
+32
+1352.7765896906803
+13
+4965.029296875
+23
+2.0123518736786538e-13
+33
+1352.7765896906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4982.982421875
+20
+1.985485343844463e-13
+30
+1314.0578396906803
+11
+5410.705078125
+21
+2.0026835008055143e-13
+31
+1338.8429959406803
+12
+4996.423828125
+22
+1.7930936683369102e-13
+32
+1036.7922146906803
+13
+4996.423828125
+23
+1.7930936683369102e-13
+33
+1036.7922146906803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+4996.423828125
+20
+1.7930936683369102e-13
+30
+1036.7922146906803
+11
+5410.705078125
+21
+2.0026835008055143e-13
+31
+1338.8429959406803
+12
+5436.861328125
+22
+1.8686679807700123e-13
+32
+1145.7062771906803
+13
+5436.861328125
+23
+1.8686679807700123e-13
+33
+1145.7062771906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4982.982421875
+20
+1.985485343844463e-13
+30
+1314.0578396906803
+11
+4903.048828125
+21
+1.9455839933915652e-13
+31
+1256.5539334406803
+12
+4873.037109375
+22
+2.0050822981121385e-13
+32
+1342.3000271906803
+13
+4873.037109375
+23
+2.0050822981121385e-13
+33
+1342.3000271906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4903.048828125
+20
+1.9455839933915652e-13
+30
+1256.5539334406803
+11
+4982.982421875
+21
+1.985485343844463e-13
+31
+1314.0578396906803
+12
+4996.423828125
+22
+1.7930936683369102e-13
+32
+1036.7922146906803
+13
+4996.423828125
+23
+1.7930936683369102e-13
+33
+1036.7922146906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+5436.861328125
+20
+1.8686679807700123e-13
+30
+1145.7062771906803
+11
+5299.048828125
+21
+9.636708748692047e-14
+31
+-158.5320040593192
+12
+4996.423828125
+22
+1.7930936683369102e-13
+32
+1036.7922146906803
+13
+4996.423828125
+23
+1.7930936683369102e-13
+33
+1036.7922146906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5299.048828125
+20
+9.636708748692047e-14
+30
+-158.5320040593192
+11
+5992.587890625
+21
+9.611663678507631e-14
+31
+-162.1413790593192
+12
+5281.037109375
+22
+9.219561962828249e-14
+32
+-218.6491915593192
+13
+5281.037109375
+23
+9.219561962828249e-14
+33
+-218.6491915593192
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5992.587890625
+20
+9.611663678507631e-14
+30
+-162.1413790593192
+11
+5299.048828125
+21
+9.636708748692047e-14
+31
+-158.5320040593192
+12
+5436.861328125
+22
+1.8686679807700123e-13
+32
+1145.7062771906803
+13
+5436.861328125
+23
+1.8686679807700123e-13
+33
+1145.7062771906803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+5992.587890625
+20
+9.611663678507631e-14
+30
+-162.1413790593192
+11
+5436.861328125
+21
+1.8686679807700123e-13
+31
+1145.7062771906803
+12
+5644.083984375
+22
+1.797248873162961e-13
+32
+1042.7804959406803
+13
+5644.083984375
+23
+1.797248873162961e-13
+33
+1042.7804959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+5992.587890625
+20
+9.611663678507631e-14
+30
+-162.1413790593192
+11
+5644.083984375
+21
+1.797248873162961e-13
+31
+1042.7804959406803
+12
+5719.939453125
+22
+1.7301394691915394e-13
+32
+946.0656521906803
+13
+5719.939453125
+23
+1.7301394691915394e-13
+33
+946.0656521906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4895.126953125
+20
+2.0974400601753162e-13
+30
+1475.4015896906803
+11
+4965.029296875
+21
+2.0123518736786538e-13
+31
+1352.7765896906803
+12
+4886.349609375
+22
+2.028736879010341e-13
+32
+1376.3898709406803
+13
+4886.349609375
+23
+2.028736879010341e-13
+33
+1376.3898709406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4965.029296875
+20
+2.0123518736786538e-13
+30
+1352.7765896906803
+11
+4895.126953125
+21
+2.0974400601753162e-13
+31
+1475.4015896906803
+12
+4982.443359375
+22
+2.0897395142452379e-13
+32
+1464.3039334406803
+13
+4982.443359375
+23
+2.0897395142452379e-13
+33
+1464.3039334406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4965.029296875
+20
+2.0123518736786538e-13
+30
+1352.7765896906803
+11
+4982.443359375
+21
+2.0897395142452379e-13
+31
+1464.3039334406803
+12
+5410.705078125
+22
+2.0026835008055143e-13
+32
+1338.8429959406803
+13
+5410.705078125
+23
+2.0026835008055143e-13
+33
+1338.8429959406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+5410.705078125
+20
+2.0026835008055143e-13
+30
+1338.8429959406803
+11
+4982.443359375
+21
+2.0897395142452379e-13
+31
+1464.3039334406803
+12
+4991.783203125
+22
+2.1482701685268678e-13
+32
+1548.6554959406803
+13
+4991.783203125
+23
+2.1482701685268678e-13
+33
+1548.6554959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+5410.705078125
+20
+2.0026835008055143e-13
+30
+1338.8429959406803
+11
+4991.783203125
+21
+2.1482701685268678e-13
+31
+1548.6554959406803
+12
+5333.033203125
+22
+2.1061163880606314e-13
+32
+1487.9054959406803
+13
+5333.033203125
+23
+2.1061163880606314e-13
+33
+1487.9054959406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+5410.705078125
+20
+2.0026835008055143e-13
+30
+1338.8429959406803
+11
+5333.033203125
+21
+2.1061163880606314e-13
+31
+1487.9054959406803
+12
+5403.462890625
+22
+2.1107676153805942e-13
+32
+1494.6086209406803
+13
+5403.462890625
+23
+2.1107676153805942e-13
+33
+1494.6086209406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+5410.705078125
+20
+2.0026835008055143e-13
+30
+1338.8429959406803
+11
+5403.462890625
+21
+2.1107676153805942e-13
+31
+1494.6086209406803
+12
+5413.236328125
+22
+2.046870160345161e-13
+32
+1402.5226834406803
+13
+5413.236328125
+23
+2.046870160345161e-13
+33
+1402.5226834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+5410.705078125
+20
+2.0026835008055143e-13
+30
+1338.8429959406803
+11
+5413.236328125
+21
+2.046870160345161e-13
+31
+1402.5226834406803
+12
+5707.751953125
+22
+2.0680690233226838e-13
+32
+1433.0734646906803
+13
+5707.751953125
+23
+2.0680690233226838e-13
+33
+1433.0734646906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+5707.751953125
+20
+2.0680690233226838e-13
+30
+1433.0734646906803
+11
+5413.236328125
+21
+2.046870160345161e-13
+31
+1402.5226834406803
+12
+5682.861328125
+22
+2.1112067172604508e-13
+32
+1495.2414334406803
+13
+5682.861328125
+23
+2.1112067172604508e-13
+33
+1495.2414334406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5585.044921875
+20
+1.9619364726580778e-13
+30
+1280.1203396906803
+11
+5436.861328125
+21
+1.8686679807700123e-13
+31
+1145.7062771906803
+12
+5426.115234375
+22
+1.9423151238415214e-13
+32
+1251.8429959406803
+13
+5426.115234375
+23
+1.9423151238415214e-13
+33
+1251.8429959406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5436.861328125
+20
+1.8686679807700123e-13
+30
+1145.7062771906803
+11
+5585.044921875
+21
+1.9619364726580778e-13
+31
+1280.1203396906803
+12
+5644.083984375
+22
+1.797248873162961e-13
+32
+1042.7804959406803
+13
+5644.083984375
+23
+1.797248873162961e-13
+33
+1042.7804959406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+5644.083984375
+20
+1.797248873162961e-13
+30
+1042.7804959406803
+11
+5585.044921875
+21
+1.9619364726580778e-13
+31
+1280.1203396906803
+12
+5658.416015625
+22
+1.875132536223457e-13
+32
+1155.0226834406803
+13
+5658.416015625
+23
+1.875132536223457e-13
+33
+1155.0226834406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5683.576171875
+20
+1.8409639047575764e-13
+30
+1105.7804959406803
+11
+5719.939453125
+21
+1.7301394691915394e-13
+31
+946.0656521906803
+12
+5644.083984375
+22
+1.797248873162961e-13
+32
+1042.7804959406803
+13
+5644.083984375
+23
+1.797248873162961e-13
+33
+1042.7804959406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5719.939453125
+20
+1.7301394691915394e-13
+30
+946.0656521906803
+11
+5683.576171875
+21
+1.8409639047575764e-13
+31
+1105.7804959406803
+12
+5738.091796875
+22
+1.8807676770149505e-13
+32
+1163.1437771906803
+13
+5738.091796875
+23
+1.8807676770149505e-13
+33
+1163.1437771906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+6277.119140625
+20
+1.6851559210551158e-13
+30
+881.2375271906803
+11
+6434.748046875
+21
+1.5968476541061715e-13
+31
+753.9719021906803
+12
+6268.974609375
+22
+1.6459050919057093e-13
+32
+824.6711209406803
+13
+6268.974609375
+23
+1.6459050919057093e-13
+33
+824.6711209406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+6434.748046875
+20
+1.5968476541061715e-13
+30
+753.9719021906803
+11
+6277.119140625
+21
+1.6851559210551158e-13
+31
+881.2375271906803
+12
+6457.177734375
+22
+1.641245733069453e-13
+32
+817.9562771906803
+13
+6457.177734375
+23
+1.641245733069453e-13
+33
+817.9562771906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+6434.748046875
+20
+1.5968476541061715e-13
+30
+753.9719021906803
+11
+6457.177734375
+21
+1.641245733069453e-13
+31
+817.9562771906803
+12
+6722.912109375
+22
+1.6242346009831553e-13
+32
+793.4406521906803
+13
+6722.912109375
+23
+1.6242346009831553e-13
+33
+793.4406521906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+6722.912109375
+20
+1.6242346009831553e-13
+30
+793.4406521906803
+11
+6457.177734375
+21
+1.641245733069453e-13
+31
+817.9562771906803
+12
+6653.525390625
+22
+1.639042092153876e-13
+32
+814.7804959406803
+13
+6653.525390625
+23
+1.639042092153876e-13
+33
+814.7804959406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5910.544921875
+20
+1.7301394691915394e-13
+30
+946.0656521906803
+11
+5992.587890625
+21
+9.611663678507631e-14
+31
+-162.1413790593192
+12
+5719.939453125
+22
+1.7301394691915394e-13
+32
+946.0656521906803
+13
+5719.939453125
+23
+1.7301394691915394e-13
+33
+946.0656521906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+5992.587890625
+20
+9.611663678507631e-14
+30
+-162.1413790593192
+11
+5910.544921875
+21
+1.7301394691915394e-13
+31
+946.0656521906803
+12
+5977.060546875
+22
+1.6731781975545822e-13
+32
+863.9758084406803
+13
+5977.060546875
+23
+1.6731781975545822e-13
+33
+863.9758084406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+5992.587890625
+20
+9.611663678507631e-14
+30
+-162.1413790593192
+11
+5977.060546875
+21
+1.6731781975545822e-13
+31
+863.9758084406803
+12
+5995.271484375
+22
+1.587268727912262e-13
+32
+740.1672146906803
+13
+5995.271484375
+23
+1.587268727912262e-13
+33
+740.1672146906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+5992.587890625
+20
+9.611663678507631e-14
+30
+-162.1413790593192
+11
+5995.271484375
+21
+1.587268727912262e-13
+31
+740.1672146906803
+12
+6245.279296875
+22
+9.622315964852302e-14
+32
+-160.6062228093192
+13
+6245.279296875
+23
+9.622315964852302e-14
+33
+-160.6062228093192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+6245.279296875
+20
+9.622315964852302e-14
+30
+-160.6062228093192
+11
+5995.271484375
+21
+1.587268727912262e-13
+31
+740.1672146906803
+12
+6149.056640625
+22
+1.6046457782317735e-13
+32
+765.2101834406803
+13
+6149.056640625
+23
+1.6046457782317735e-13
+33
+765.2101834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+6245.279296875
+20
+9.622315964852302e-14
+30
+-160.6062228093192
+11
+6149.056640625
+21
+1.6046457782317735e-13
+31
+765.2101834406803
+12
+6268.974609375
+22
+1.6459050919057093e-13
+32
+824.6711209406803
+13
+6268.974609375
+23
+1.6459050919057093e-13
+33
+824.6711209406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+6245.279296875
+20
+9.622315964852302e-14
+30
+-160.6062228093192
+11
+6268.974609375
+21
+1.6459050919057093e-13
+31
+824.6711209406803
+12
+6497.982421875
+22
+9.40268370976105e-14
+32
+-192.2585665593192
+13
+6497.982421875
+23
+9.40268370976105e-14
+33
+-192.2585665593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+6497.982421875
+20
+9.40268370976105e-14
+30
+-192.2585665593192
+11
+6268.974609375
+21
+1.6459050919057093e-13
+31
+824.6711209406803
+12
+6434.748046875
+22
+1.5968476541061715e-13
+32
+753.9719021906803
+13
+6434.748046875
+23
+1.5968476541061715e-13
+33
+753.9719021906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+6497.982421875
+20
+9.40268370976105e-14
+30
+-192.2585665593192
+11
+6434.748046875
+21
+1.5968476541061715e-13
+31
+753.9719021906803
+12
+6771.052734375
+22
+9.354219872650948e-14
+32
+-199.2429415593192
+13
+6771.052734375
+23
+9.354219872650948e-14
+33
+-199.2429415593192
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+6507.369140625
+20
+1.5883014304815545e-13
+30
+741.6554959406803
+11
+6771.052734375
+21
+9.354219872650948e-14
+31
+-199.2429415593192
+12
+6434.748046875
+22
+1.5968476541061715e-13
+32
+753.9719021906803
+13
+6434.748046875
+23
+1.5968476541061715e-13
+33
+753.9719021906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+6771.052734375
+20
+9.354219872650948e-14
+30
+-199.2429415593192
+11
+6507.369140625
+21
+1.5883014304815545e-13
+31
+741.6554959406803
+12
+6766.892578125
+22
+1.5156544639141633e-13
+32
+636.9601834406803
+13
+6766.892578125
+23
+1.5156544639141633e-13
+33
+636.9601834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+6771.052734375
+20
+9.354219872650948e-14
+30
+-199.2429415593192
+11
+6766.892578125
+21
+1.5156544639141633e-13
+31
+636.9601834406803
+12
+6855.603515625
+22
+1.473451894350165e-13
+32
+576.1398709406803
+13
+6855.603515625
+23
+1.473451894350165e-13
+33
+576.1398709406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+6771.052734375
+20
+9.354219872650948e-14
+30
+-199.2429415593192
+11
+6855.603515625
+21
+1.473451894350165e-13
+31
+576.1398709406803
+12
+7718.759765625
+22
+9.852356560799413e-14
+32
+-127.4538790593192
+13
+7718.759765625
+23
+9.852356560799413e-14
+33
+-127.4538790593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+7718.759765625
+20
+9.852356560799413e-14
+30
+-127.4538790593192
+11
+6855.603515625
+21
+1.473451894350165e-13
+31
+576.1398709406803
+12
+7012.177734375
+22
+1.4635395759882163e-13
+32
+561.8547146906803
+13
+7012.177734375
+23
+1.4635395759882163e-13
+33
+561.8547146906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+7718.759765625
+20
+9.852356560799413e-14
+30
+-127.4538790593192
+11
+7012.177734375
+21
+1.4635395759882163e-13
+31
+561.8547146906803
+12
+7173.591796875
+22
+1.456473288329042e-13
+32
+551.6711209406803
+13
+7173.591796875
+23
+1.456473288329042e-13
+33
+551.6711209406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+7718.759765625
+20
+9.852356560799413e-14
+30
+-127.4538790593192
+11
+7173.591796875
+21
+1.456473288329042e-13
+31
+551.6711209406803
+12
+7279.880859375
+22
+1.4257686828042515e-13
+32
+507.4211209406808
+13
+7279.880859375
+23
+1.4257686828042515e-13
+33
+507.4211209406808
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+7517.361328125
+20
+1.5786493206410023e-13
+30
+727.7453396906803
+11
+7173.591796875
+21
+1.456473288329042e-13
+31
+551.6711209406803
+12
+7012.177734375
+22
+1.4635395759882163e-13
+32
+561.8547146906803
+13
+7012.177734375
+23
+1.4635395759882163e-13
+33
+561.8547146906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+7173.591796875
+20
+1.456473288329042e-13
+30
+551.6711209406803
+11
+7517.361328125
+21
+1.5786493206410023e-13
+31
+727.7453396906803
+12
+7234.845703125
+22
+1.474744805440854e-13
+32
+578.0031521906803
+13
+7234.845703125
+23
+1.474744805440854e-13
+33
+578.0031521906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+7234.845703125
+20
+1.474744805440854e-13
+30
+578.0031521906803
+11
+7517.361328125
+21
+1.5786493206410023e-13
+31
+727.7453396906803
+12
+7528.705078125
+22
+1.5358612819038619e-13
+32
+666.0812771906803
+13
+7528.705078125
+23
+1.5358612819038619e-13
+33
+666.0812771906803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+7528.705078125
+20
+1.5358612819038619e-13
+30
+666.0812771906803
+11
+7517.361328125
+21
+1.5786493206410023e-13
+31
+727.7453396906803
+12
+7544.455078125
+22
+1.5470177222587377e-13
+32
+682.1594021906803
+13
+7544.455078125
+23
+1.5470177222587377e-13
+33
+682.1594021906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+7933.212890625
+20
+1.4369820437731838e-13
+30
+523.5812771906803
+11
+7854.626953125
+21
+1.3928360418150043e-13
+31
+459.9601834406808
+12
+7662.673828125
+22
+1.412498048213029e-13
+32
+488.2961209406808
+13
+7662.673828125
+23
+1.412498048213029e-13
+33
+488.2961209406808
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+7854.626953125
+20
+1.3928360418150043e-13
+30
+459.9601834406808
+11
+7933.212890625
+21
+1.4369820437731838e-13
+31
+523.5812771906803
+12
+8006.197265625
+22
+1.4124817851804417e-13
+32
+488.2726834406808
+13
+8006.197265625
+23
+1.4124817851804417e-13
+33
+488.2726834406808
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+7379.876953125
+20
+1.4663449491095225e-13
+30
+565.8976834406803
+11
+7718.759765625
+21
+9.852356560799413e-14
+31
+-127.4538790593192
+12
+7279.880859375
+22
+1.4257686828042515e-13
+32
+507.4211209406808
+13
+7279.880859375
+23
+1.4257686828042515e-13
+33
+507.4211209406808
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+7718.759765625
+20
+9.852356560799413e-14
+30
+-127.4538790593192
+11
+7379.876953125
+21
+1.4663449491095225e-13
+31
+565.8976834406803
+12
+7512.439453125
+22
+1.4216866616248436e-13
+32
+501.5383084406808
+13
+7512.439453125
+23
+1.4216866616248436e-13
+33
+501.5383084406808
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+7718.759765625
+20
+9.852356560799413e-14
+30
+-127.4538790593192
+11
+7512.439453125
+21
+1.4216866616248436e-13
+31
+501.5383084406808
+12
+7662.673828125
+22
+1.412498048213029e-13
+32
+488.2961209406808
+13
+7662.673828125
+23
+1.412498048213029e-13
+33
+488.2961209406808
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+7718.759765625
+20
+9.852356560799413e-14
+30
+-127.4538790593192
+11
+7662.673828125
+21
+1.412498048213029e-13
+31
+488.2961209406808
+12
+7854.626953125
+22
+1.3928360418150043e-13
+32
+459.9601834406808
+13
+7854.626953125
+23
+1.3928360418150043e-13
+33
+459.9601834406808
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+7718.759765625
+20
+9.852356560799413e-14
+30
+-127.4538790593192
+11
+7854.626953125
+21
+1.3928360418150043e-13
+31
+459.9601834406808
+12
+8230.599609375
+22
+9.763235142221105e-14
+32
+-140.2976290593192
+13
+8230.599609375
+23
+9.763235142221105e-14
+33
+-140.2976290593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+8230.599609375
+20
+9.763235142221105e-14
+30
+-140.2976290593192
+11
+7854.626953125
+21
+1.3928360418150043e-13
+31
+459.9601834406808
+12
+7981.283203125
+22
+1.350202501887443e-13
+32
+398.5187771906808
+13
+7981.283203125
+23
+1.350202501887443e-13
+33
+398.5187771906808
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+8177.056640625
+20
+1.359204090424504e-13
+30
+411.4914334406808
+11
+8230.599609375
+21
+9.763235142221105e-14
+31
+-140.2976290593192
+12
+7981.283203125
+22
+1.350202501887443e-13
+32
+398.5187771906808
+13
+7981.283203125
+23
+1.350202501887443e-13
+33
+398.5187771906808
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+8230.599609375
+20
+9.763235142221105e-14
+30
+-140.2976290593192
+11
+8177.056640625
+21
+1.359204090424504e-13
+31
+411.4914334406808
+12
+8247.533203125
+22
+1.2813529534291823e-13
+32
+299.2961209406808
+13
+8247.533203125
+23
+1.2813529534291823e-13
+33
+299.2961209406808
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+8247.533203125
+20
+1.2813529534291823e-13
+30
+299.2961209406808
+11
+8177.056640625
+21
+1.359204090424504e-13
+31
+411.4914334406808
+12
+8249.501953125
+22
+1.3084390342033014e-13
+32
+338.3312771906808
+13
+8249.501953125
+23
+1.3084390342033014e-13
+33
+338.3312771906808
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+8305.388671875
+20
+1.259170176980129e-13
+30
+267.3273709406808
+11
+8258.712890625
+21
+1.0611921497788446e-13
+31
+-17.989035309319206
+12
+8247.533203125
+22
+1.2813529534291823e-13
+32
+299.2961209406808
+13
+8247.533203125
+23
+1.2813529534291823e-13
+33
+299.2961209406808
+70
+2
+ 0
+3DFACE
+ 8
+ship4
+10
+8230.599609375
+20
+9.763235142221105e-14
+30
+-140.2976290593192
+11
+8258.712890625
+21
+1.0611921497788446e-13
+31
+-17.989035309319206
+12
+8374.048828125
+22
+9.880491607175412e-14
+32
+-123.3991915593192
+13
+8374.048828125
+23
+9.880491607175412e-14
+33
+-123.3991915593192
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+8258.712890625
+20
+1.0611921497788446e-13
+30
+-17.989035309319206
+11
+8230.599609375
+21
+9.763235142221105e-14
+31
+-140.2976290593192
+12
+8247.533203125
+22
+1.2813529534291823e-13
+32
+299.2961209406808
+13
+8247.533203125
+23
+1.2813529534291823e-13
+33
+299.2961209406808
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+8374.048828125
+20
+9.880491607175412e-14
+30
+-123.3991915593192
+11
+8258.712890625
+21
+1.0611921497788446e-13
+31
+-17.989035309319206
+12
+8403.228515625
+22
+1.0301460205697222e-13
+32
+-62.731222809319206
+13
+8403.228515625
+23
+1.0301460205697222e-13
+33
+-62.731222809319206
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4062.884765625
+20
+2.71440259592276e-13
+30
+2364.5383084406803
+11
+3650.794921875
+21
+2.709491160081401e-13
+31
+2357.4601834406803
+12
+3864.796875
+22
+3.110171625450575e-13
+32
+2934.9015896906803
+13
+3864.796875
+23
+3.110171625450575e-13
+33
+2934.9015896906803
+70
+0
+ 0
+3DFACE
+ 8
+ship4
+10
+3648.744140625
+20
+2.41926921204505e-13
+30
+1939.2062771906803
+11
+4181.208984375
+21
+2.375196393733514e-13
+31
+1875.6906521906803
+12
+3634.728515625
+22
+2.3473459504277927e-13
+32
+1835.5539334406803
+13
+3634.728515625
+23
+2.3473459504277927e-13
+33
+1835.5539334406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4181.208984375
+20
+2.375196393733514e-13
+30
+1875.6906521906803
+11
+3648.744140625
+21
+2.41926921204505e-13
+31
+1939.2062771906803
+12
+3650.794921875
+22
+2.709491160081401e-13
+32
+2357.4601834406803
+13
+3650.794921875
+23
+2.709491160081401e-13
+33
+2357.4601834406803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4181.208984375
+20
+2.375196393733514e-13
+30
+1875.6906521906803
+11
+3650.794921875
+21
+2.709491160081401e-13
+31
+2357.4601834406803
+12
+4077.31640625
+22
+2.6387713628756027e-13
+32
+2255.5422146906803
+13
+4077.31640625
+23
+2.6387713628756027e-13
+33
+2255.5422146906803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+4077.31640625
+20
+2.6387713628756027e-13
+30
+2255.5422146906803
+11
+3650.794921875
+21
+2.709491160081401e-13
+31
+2357.4601834406803
+12
+4062.884765625
+22
+2.71440259592276e-13
+32
+2364.5383084406803
+13
+4062.884765625
+23
+2.71440259592276e-13
+33
+2364.5383084406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4181.208984375
+20
+2.375196393733514e-13
+30
+1875.6906521906803
+11
+4077.31640625
+21
+2.6387713628756027e-13
+31
+2255.5422146906803
+12
+4175.40234375
+22
+2.438825508731257e-13
+32
+1967.3898709406803
+13
+4175.40234375
+23
+2.438825508731257e-13
+33
+1967.3898709406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4037.33203125
+20
+3.388310140274575e-13
+30
+3335.7414334406803
+11
+3916.53515625
+21
+3.2750055922389776e-13
+31
+3172.4523709406803
+12
+3750.24609375
+22
+3.3275758450773685e-13
+32
+3248.2140896906803
+13
+3750.24609375
+23
+3.3275758450773685e-13
+33
+3248.2140896906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+3916.53515625
+20
+3.2750055922389776e-13
+30
+3172.4523709406803
+11
+4049.98828125
+21
+2.9615437706354e-13
+31
+2720.7062771906803
+12
+3864.796875
+22
+3.110171625450575e-13
+32
+2934.9015896906803
+13
+3864.796875
+23
+3.110171625450575e-13
+33
+2934.9015896906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4049.98828125
+20
+2.9615437706354e-13
+30
+2720.7062771906803
+11
+3916.53515625
+21
+3.2750055922389776e-13
+31
+3172.4523709406803
+12
+4037.33203125
+22
+3.388310140274575e-13
+32
+3335.7414334406803
+13
+4037.33203125
+23
+3.388310140274575e-13
+33
+3335.7414334406803
+70
+15
+ 0
+3DFACE
+ 8
+ship4
+10
+4049.98828125
+20
+2.9615437706354e-13
+30
+2720.7062771906803
+11
+4037.33203125
+21
+3.388310140274575e-13
+31
+3335.7414334406803
+12
+4123.7578125
+22
+3.22666372787328e-13
+32
+3102.7844021906803
+13
+4123.7578125
+23
+3.22666372787328e-13
+33
+3102.7844021906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4049.98828125
+20
+2.9615437706354e-13
+30
+2720.7062771906803
+11
+4123.7578125
+21
+3.22666372787328e-13
+31
+3102.7844021906803
+12
+4131.029296875
+22
+3.149861556479838e-13
+32
+2992.1008084406803
+13
+4131.029296875
+23
+3.149861556479838e-13
+33
+2992.1008084406803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4062.884765625
+20
+2.71440259592276e-13
+30
+2364.5383084406803
+11
+3864.796875
+21
+3.110171625450575e-13
+31
+2934.9015896906803
+12
+4049.98828125
+22
+2.9615437706354e-13
+32
+2720.7062771906803
+13
+4049.98828125
+23
+2.9615437706354e-13
+33
+2720.7062771906803
+70
+0
+ 0
+3DFACE
+ 8
+ship4
+10
+4299.099609375
+20
+2.940710825891091e-13
+30
+2690.6828396906803
+11
+4062.884765625
+21
+2.71440259592276e-13
+31
+2364.5383084406803
+12
+4049.98828125
+22
+2.9615437706354e-13
+32
+2720.7062771906803
+13
+4049.98828125
+23
+2.9615437706354e-13
+33
+2720.7062771906803
+70
+1
+ 0
+3DFACE
+ 8
+ship4
+10
+4062.884765625
+20
+2.71440259592276e-13
+30
+2364.5383084406803
+11
+4299.099609375
+21
+2.940710825891091e-13
+31
+2690.6828396906803
+12
+4200.2109375
+22
+2.8084517133750153e-13
+32
+2500.0773709406803
+13
+4200.2109375
+23
+2.8084517133750153e-13
+33
+2500.0773709406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+4200.2109375
+20
+2.8084517133750153e-13
+30
+2500.0773709406803
+11
+4299.099609375
+21
+2.940710825891091e-13
+31
+2690.6828396906803
+12
+4323.814453125
+22
+2.852727819593892e-13
+32
+2563.8859646906803
+13
+4323.814453125
+23
+2.852727819593892e-13
+33
+2563.8859646906803
+70
+13
+ 0
+3DFACE
+ 8
+ship4
+10
+4200.2109375
+20
+2.8084517133750153e-13
+30
+2500.0773709406803
+11
+4323.814453125
+21
+2.852727819593892e-13
+31
+2563.8859646906803
+12
+4905.041015625
+22
+2.7949859223927453e-13
+32
+2480.6711209406803
+13
+4905.041015625
+23
+2.7949859223927453e-13
+33
+2480.6711209406803
+70
+3
+ 0
+3DFACE
+ 8
+ship4
+10
+4905.041015625
+20
+2.7949859223927453e-13
+30
+2480.6711209406803
+11
+4323.814453125
+21
+2.852727819593892e-13
+31
+2563.8859646906803
+12
+4873.669921875
+22
+2.825365267265789e-13
+32
+2524.4523709406803
+13
+4873.669921875
+23
+2.825365267265789e-13
+33
+2524.4523709406803
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+135.28125
+20
+8.03841043207909e-14
+30
+395.95703125
+11
+135.94921875
+21
+7.558000449450764e-14
+31
+326.72265625
+12
+121.751953125
+22
+7.712173998378202e-14
+32
+348.94140625
+13
+121.751953125
+23
+7.712173998378202e-14
+33
+348.94140625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+135.94921875
+20
+7.558000449450764e-14
+30
+326.72265625
+11
+135.28125
+21
+8.03841043207909e-14
+31
+395.95703125
+12
+155.1796875
+22
+8.104357029220521e-14
+32
+405.4609375
+13
+155.1796875
+23
+8.104357029220521e-14
+33
+405.4609375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+135.94921875
+20
+7.558000449450764e-14
+30
+326.72265625
+11
+155.1796875
+21
+8.104357029220521e-14
+31
+405.4609375
+12
+168.80859375
+22
+7.554829158096243e-14
+32
+326.265625
+13
+168.80859375
+23
+7.554829158096243e-14
+33
+326.265625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+168.80859375
+20
+7.554829158096243e-14
+30
+326.265625
+11
+155.1796875
+21
+8.104357029220521e-14
+31
+405.4609375
+12
+306.7734375
+22
+8.107772266063851e-14
+32
+405.953125
+13
+306.7734375
+23
+8.107772266063851e-14
+33
+405.953125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+168.80859375
+20
+7.554829158096243e-14
+30
+326.265625
+11
+306.7734375
+21
+8.107772266063851e-14
+31
+405.953125
+12
+186.73828125
+22
+7.47465240744094e-14
+32
+314.7109375
+13
+186.73828125
+23
+7.47465240744094e-14
+33
+314.7109375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+186.73828125
+20
+7.47465240744094e-14
+30
+314.7109375
+11
+306.7734375
+21
+8.107772266063851e-14
+31
+405.953125
+12
+251.583984375
+22
+6.744442244271953e-14
+32
+209.4765625
+13
+251.583984375
+23
+6.744442244271953e-14
+33
+209.4765625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+251.583984375
+20
+6.744442244271953e-14
+30
+209.4765625
+11
+306.7734375
+21
+8.107772266063851e-14
+31
+405.953125
+12
+321.287109375
+22
+5.482430915498826e-14
+32
+27.6015625
+13
+321.287109375
+23
+5.482430915498826e-14
+33
+27.6015625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+321.287109375
+20
+5.482430915498826e-14
+30
+27.6015625
+11
+306.7734375
+21
+8.107772266063851e-14
+31
+405.953125
+12
+359.00390625
+22
+8.375461782450522e-14
+32
+444.53125
+13
+359.00390625
+23
+8.375461782450522e-14
+33
+444.53125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+321.287109375
+20
+5.482430915498826e-14
+30
+27.6015625
+11
+359.00390625
+21
+8.375461782450522e-14
+31
+444.53125
+12
+343.640625
+22
+4.585687298636065e-14
+32
+-101.6328125
+13
+343.640625
+23
+4.585687298636065e-14
+33
+-101.6328125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+343.640625
+20
+4.585687298636065e-14
+30
+-101.6328125
+11
+359.00390625
+21
+8.375461782450522e-14
+31
+444.53125
+12
+345.955078125
+22
+4.0434777921760645e-14
+32
+-179.7734375
+13
+345.955078125
+23
+4.0434777921760645e-14
+33
+-179.7734375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+345.955078125
+20
+4.0434777921760645e-14
+30
+-179.7734375
+11
+359.00390625
+21
+8.375461782450522e-14
+31
+444.53125
+12
+358.0078125
+22
+3.486306295735764e-14
+32
+-260.0703125
+13
+358.0078125
+23
+3.486306295735764e-14
+33
+-260.0703125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+358.0078125
+20
+3.486306295735764e-14
+30
+-260.0703125
+11
+359.00390625
+21
+8.375461782450522e-14
+31
+444.53125
+12
+458.5546875
+22
+8.106308593130995e-14
+32
+405.7421875
+13
+458.5546875
+23
+8.106308593130995e-14
+33
+405.7421875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+458.5546875
+20
+8.106308593130995e-14
+30
+405.7421875
+11
+359.00390625
+21
+8.375461782450522e-14
+31
+444.53125
+12
+377.1796875
+22
+8.547687297549844e-14
+32
+469.3515625
+13
+377.1796875
+23
+8.547687297549844e-14
+33
+469.3515625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+458.5546875
+20
+8.106308593130995e-14
+30
+405.7421875
+11
+377.1796875
+21
+8.547687297549844e-14
+31
+469.3515625
+12
+424.962890625
+22
+8.318215907743287e-14
+32
+436.28125
+13
+424.962890625
+23
+8.318215907743287e-14
+33
+436.28125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+424.962890625
+20
+8.318215907743287e-14
+30
+436.28125
+11
+377.1796875
+21
+8.547687297549844e-14
+31
+469.3515625
+12
+417.111328125
+22
+8.649981772523851e-14
+32
+484.09375
+13
+417.111328125
+23
+8.649981772523851e-14
+33
+484.09375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+424.962890625
+20
+8.318215907743287e-14
+30
+436.28125
+11
+417.111328125
+21
+8.649981772523851e-14
+31
+484.09375
+12
+424.2421875
+22
+8.592085376513126e-14
+32
+475.75
+13
+424.2421875
+23
+8.592085376513126e-14
+33
+475.75
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2521.435546875
+20
+1.651527222271132e-13
+30
+1617.6015625
+11
+2520.6796875
+21
+1.2711592846034736e-13
+31
+1069.43359375
+12
+2493.755859375
+22
+1.270378659039284e-13
+32
+1068.30859375
+13
+2493.755859375
+23
+1.270378659039284e-13
+33
+1068.30859375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+2520.6796875
+20
+1.2711592846034736e-13
+30
+1069.43359375
+11
+2521.435546875
+21
+1.651527222271132e-13
+31
+1617.6015625
+12
+2546.58984375
+22
+1.6523972945145515e-13
+32
+1618.85546875
+13
+2546.58984375
+23
+1.6523972945145515e-13
+33
+1618.85546875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+2546.58984375
+20
+1.6523972945145515e-13
+30
+1618.85546875
+11
+2521.435546875
+21
+1.651527222271132e-13
+31
+1617.6015625
+12
+2536.65234375
+22
+1.6614801982145488e-13
+32
+1631.9453125
+13
+2536.65234375
+23
+1.6614801982145488e-13
+33
+1631.9453125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2476.974609375
+20
+1.2251267708651703e-13
+30
+1003.09375
+11
+2520.75
+21
+1.2434877346562123e-13
+31
+1029.5546875
+12
+2467.541015625
+22
+1.1890878906517521e-13
+32
+951.15625
+13
+2467.541015625
+23
+1.1890878906517521e-13
+33
+951.15625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2520.75
+20
+1.2434877346562123e-13
+30
+1029.5546875
+11
+2476.974609375
+21
+1.2251267708651703e-13
+31
+1003.09375
+12
+2493.755859375
+22
+1.270378659039284e-13
+32
+1068.30859375
+13
+2493.755859375
+23
+1.270378659039284e-13
+33
+1068.30859375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2520.75
+20
+1.2434877346562123e-13
+30
+1029.5546875
+11
+2493.755859375
+21
+1.270378659039284e-13
+31
+1068.30859375
+12
+2520.6796875
+22
+1.2711592846034736e-13
+32
+1069.43359375
+13
+2520.6796875
+23
+1.2711592846034736e-13
+33
+1069.43359375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+458.5546875
+20
+8.106308593130995e-14
+30
+405.7421875
+11
+389.244140625
+21
+3.1561667342139277e-14
+31
+-307.6484375
+12
+358.0078125
+22
+3.486306295735764e-14
+32
+-260.0703125
+13
+358.0078125
+23
+3.486306295735764e-14
+33
+-260.0703125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+389.244140625
+20
+3.1561667342139277e-14
+30
+-307.6484375
+11
+458.5546875
+21
+8.106308593130995e-14
+31
+405.7421875
+12
+541.857421875
+22
+2.3976588943430688e-14
+32
+-416.9609375
+13
+541.857421875
+23
+2.3976588943430688e-14
+33
+-416.9609375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+541.857421875
+20
+2.3976588943430688e-14
+30
+-416.9609375
+11
+458.5546875
+21
+8.106308593130995e-14
+31
+405.7421875
+12
+623.33203125
+22
+8.106145962805122e-14
+32
+405.71875
+13
+623.33203125
+23
+8.106145962805122e-14
+33
+405.71875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+541.857421875
+20
+2.3976588943430688e-14
+30
+-416.9609375
+11
+623.33203125
+21
+8.106145962805122e-14
+31
+405.71875
+12
+602.794921875
+22
+1.8878941378946967e-14
+32
+-490.42578125
+13
+602.794921875
+23
+1.8878941378946967e-14
+33
+-490.42578125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+602.794921875
+20
+1.8878941378946967e-14
+30
+-490.42578125
+11
+623.33203125
+21
+8.106145962805122e-14
+31
+405.71875
+12
+613.8984375
+22
+8.979633443068069e-15
+32
+-633.08984375
+13
+613.8984375
+23
+8.979633443068069e-15
+33
+-633.08984375
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+613.8984375
+20
+8.979633443068069e-15
+30
+-633.08984375
+11
+623.33203125
+21
+8.106145962805122e-14
+31
+405.71875
+12
+630.955078125
+22
+9.008906901725178e-15
+32
+-632.66796875
+13
+630.955078125
+23
+9.008906901725178e-15
+33
+-632.66796875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+630.955078125
+20
+9.008906901725178e-15
+30
+-632.66796875
+11
+623.33203125
+21
+8.106145962805122e-14
+31
+405.71875
+12
+684.75
+22
+8.024180278565218e-14
+32
+393.90625
+13
+684.75
+23
+8.024180278565218e-14
+33
+393.90625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+630.955078125
+20
+9.008906901725178e-15
+30
+-632.66796875
+11
+684.75
+21
+8.024180278565218e-14
+31
+393.90625
+12
+679.423828125
+22
+9.768390523551274e-15
+32
+-621.72265625
+13
+679.423828125
+23
+9.768390523551274e-15
+33
+-621.72265625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+679.423828125
+20
+9.768390523551274e-15
+30
+-621.72265625
+11
+684.75
+21
+8.024180278565218e-14
+31
+393.90625
+12
+819.146484375
+22
+8.171360723480126e-14
+32
+415.1171875
+13
+819.146484375
+23
+8.171360723480126e-14
+33
+415.1171875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+819.146484375
+20
+8.171360723480126e-14
+30
+415.1171875
+11
+684.75
+21
+8.024180278565218e-14
+31
+393.90625
+12
+794.8828125
+22
+8.144851980362855e-14
+32
+411.296875
+13
+794.8828125
+23
+8.144851980362855e-14
+33
+411.296875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+794.8828125
+20
+8.144851980362855e-14
+30
+411.296875
+11
+684.75
+21
+8.024180278565218e-14
+31
+393.90625
+12
+716.994140625
+22
+8.142412525474763e-14
+32
+410.9453125
+13
+716.994140625
+23
+8.142412525474763e-14
+33
+410.9453125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+570.5625
+20
+1.3366586483487541e-14
+30
+-569.8671875
+11
+613.8984375
+21
+8.979633443068069e-15
+31
+-633.08984375
+12
+563.33203125
+22
+1.1551632046746807e-14
+32
+-596.0234375
+13
+563.33203125
+23
+1.1551632046746807e-14
+33
+-596.0234375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+613.8984375
+20
+8.979633443068069e-15
+30
+-633.08984375
+11
+570.5625
+21
+1.3366586483487541e-14
+31
+-569.8671875
+12
+583.634765625
+22
+1.3390167880739101e-14
+32
+-569.52734375
+13
+583.634765625
+23
+1.3390167880739101e-14
+33
+-569.52734375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+613.8984375
+20
+8.979633443068069e-15
+30
+-633.08984375
+11
+583.634765625
+21
+1.3390167880739101e-14
+31
+-569.52734375
+12
+602.794921875
+22
+1.8878941378946967e-14
+32
+-490.42578125
+13
+602.794921875
+23
+1.8878941378946967e-14
+33
+-490.42578125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+819.146484375
+20
+8.171360723480126e-14
+30
+415.1171875
+11
+815.853515625
+21
+7.794871519084534e-15
+31
+-650.1640625
+12
+679.423828125
+22
+9.768390523551274e-15
+32
+-621.72265625
+13
+679.423828125
+23
+9.768390523551274e-15
+33
+-621.72265625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+815.853515625
+20
+7.794871519084534e-15
+30
+-650.1640625
+11
+819.146484375
+21
+8.171360723480126e-14
+31
+415.1171875
+12
+918.521484375
+22
+5.0789450770083455e-15
+32
+-689.3046875
+13
+918.521484375
+23
+5.0789450770083455e-15
+33
+-689.3046875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+918.521484375
+20
+5.0789450770083455e-15
+30
+-689.3046875
+11
+819.146484375
+21
+8.171360723480126e-14
+31
+415.1171875
+12
+849.85546875
+22
+8.544434691032388e-14
+32
+468.8828125
+13
+849.85546875
+23
+8.544434691032388e-14
+33
+468.8828125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+918.521484375
+20
+5.0789450770083455e-15
+30
+-689.3046875
+11
+849.85546875
+21
+8.544434691032388e-14
+31
+468.8828125
+12
+889.447265625
+22
+8.658357234306302e-14
+32
+485.30078125
+13
+889.447265625
+23
+8.658357234306302e-14
+33
+485.30078125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+918.521484375
+20
+5.0789450770083455e-15
+30
+-689.3046875
+11
+889.447265625
+21
+8.658357234306302e-14
+31
+485.30078125
+12
+963.26953125
+22
+8.656161724907019e-14
+32
+484.984375
+13
+963.26953125
+23
+8.656161724907019e-14
+33
+484.984375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+918.521484375
+20
+5.0789450770083455e-15
+30
+-689.3046875
+11
+963.26953125
+21
+8.656161724907019e-14
+31
+484.984375
+12
+963.26953125
+22
+8.19868261822676e-14
+32
+419.0546875
+13
+963.26953125
+23
+8.19868261822676e-14
+33
+419.0546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+918.521484375
+20
+5.0789450770083455e-15
+30
+-689.3046875
+11
+963.26953125
+21
+8.19868261822676e-14
+31
+419.0546875
+12
+1005.22265625
+22
+4.2300147759521955e-15
+32
+-701.5390625
+13
+1005.22265625
+23
+4.2300147759521955e-15
+33
+-701.5390625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+1005.22265625
+20
+4.2300147759521955e-15
+30
+-701.5390625
+11
+963.26953125
+21
+8.19868261822676e-14
+31
+419.0546875
+12
+1028.982421875
+22
+8.19868261822676e-14
+32
+419.0546875
+13
+1028.982421875
+23
+8.19868261822676e-14
+33
+419.0546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1005.22265625
+20
+4.2300147759521955e-15
+30
+-701.5390625
+11
+1028.982421875
+21
+8.19868261822676e-14
+31
+419.0546875
+12
+1383.240234375
+22
+2.3735896061138906e-15
+32
+-728.29296875
+13
+1383.240234375
+23
+2.3735896061138906e-15
+33
+-728.29296875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1028.982421875
+21
+8.19868261822676e-14
+31
+419.0546875
+12
+1048.142578125
+22
+8.201447333766598e-14
+32
+419.453125
+13
+1048.142578125
+23
+8.201447333766598e-14
+33
+419.453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1048.142578125
+21
+8.201447333766598e-14
+31
+419.453125
+12
+1131.45703125
+22
+8.295447662121092e-14
+32
+433.0
+13
+1131.45703125
+23
+8.295447662121092e-14
+33
+433.0
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1131.45703125
+21
+8.295447662121092e-14
+31
+433.0
+12
+1225.60546875
+22
+8.210310686526667e-14
+32
+420.73046875
+13
+1225.60546875
+23
+8.210310686526667e-14
+33
+420.73046875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+1294.91015625
+20
+8.47840677872802e-14
+30
+459.3671875
+11
+1383.240234375
+21
+2.3735896061138906e-15
+31
+-728.29296875
+12
+1225.60546875
+22
+8.210310686526667e-14
+32
+420.73046875
+13
+1225.60546875
+23
+8.210310686526667e-14
+33
+420.73046875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1294.91015625
+21
+8.47840677872802e-14
+31
+459.3671875
+12
+1305.955078125
+22
+8.560372462967925e-14
+32
+471.1796875
+13
+1305.955078125
+23
+8.560372462967925e-14
+33
+471.1796875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1305.955078125
+21
+8.560372462967925e-14
+31
+471.1796875
+12
+1374.0
+22
+8.360337162144349e-14
+32
+442.3515625
+13
+1374.0
+23
+8.360337162144349e-14
+33
+442.3515625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1374.0
+21
+8.360337162144349e-14
+31
+442.3515625
+12
+1380.65625
+22
+8.292032425277762e-14
+32
+432.5078125
+13
+1380.65625
+23
+8.292032425277762e-14
+33
+432.5078125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1380.65625
+21
+8.292032425277762e-14
+31
+432.5078125
+12
+1394.0625
+22
+8.38977325112733e-14
+32
+446.59375
+13
+1394.0625
+23
+8.38977325112733e-14
+33
+446.59375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1383.240234375
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+1394.0625
+21
+8.38977325112733e-14
+31
+446.59375
+12
+1400.220703125
+22
+1.958069123508821e-15
+32
+-734.28125
+13
+1400.220703125
+23
+1.958069123508821e-15
+33
+-734.28125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+1400.220703125
+20
+1.958069123508821e-15
+30
+-734.28125
+11
+1394.0625
+21
+8.38977325112733e-14
+31
+446.59375
+12
+1530.451171875
+22
+2.3809079707781677e-15
+32
+-728.1875
+13
+1530.451171875
+23
+2.3809079707781677e-15
+33
+-728.1875
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+1530.451171875
+20
+2.3809079707781677e-15
+30
+-728.1875
+11
+1394.0625
+21
+8.38977325112733e-14
+31
+446.59375
+12
+1800.6796875
+22
+2.3613923316734287e-15
+32
+-728.46875
+13
+1800.6796875
+23
+2.3613923316734287e-15
+33
+-728.46875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+1800.6796875
+20
+2.3613923316734287e-15
+30
+-728.46875
+11
+1394.0625
+21
+8.38977325112733e-14
+31
+446.59375
+12
+1936.576171875
+22
+1.9938477952008427e-15
+32
+-733.765625
+13
+1936.576171875
+23
+1.9938477952008427e-15
+33
+-733.765625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+1400.220703125
+20
+1.958069123508821e-15
+30
+-734.28125
+11
+1530.451171875
+21
+2.3809079707781677e-15
+31
+-728.1875
+12
+1488.046875
+22
+1.8417884405097507e-15
+32
+-735.95703125
+13
+1488.046875
+23
+1.8417884405097507e-15
+33
+-735.95703125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+1399.7109375
+20
+8.784802312672424e-14
+30
+503.5234375
+11
+1936.576171875
+21
+1.9938477952008427e-15
+31
+-733.765625
+12
+1394.0625
+22
+8.38977325112733e-14
+32
+446.59375
+13
+1394.0625
+23
+8.38977325112733e-14
+33
+446.59375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1399.7109375
+21
+8.784802312672424e-14
+31
+503.5234375
+12
+1417.0546875
+22
+9.104696163664272e-14
+32
+549.625
+13
+1417.0546875
+23
+9.104696163664272e-14
+33
+549.625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1417.0546875
+21
+9.104696163664272e-14
+31
+549.625
+12
+1504.9453125
+22
+9.948259663966619e-14
+32
+671.1953125
+13
+1504.9453125
+23
+9.948259663966619e-14
+33
+671.1953125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1504.9453125
+21
+9.948259663966619e-14
+31
+671.1953125
+12
+1551.392578125
+22
+1.0123249894605779e-13
+32
+696.4140625
+13
+1551.392578125
+23
+1.0123249894605779e-13
+33
+696.4140625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1551.392578125
+21
+1.0123249894605779e-13
+31
+696.4140625
+12
+1716.1640625
+22
+1.0121135700369432e-13
+32
+696.109375
+13
+1716.1640625
+23
+1.0121135700369432e-13
+33
+696.109375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1716.1640625
+21
+1.0121135700369432e-13
+31
+696.109375
+12
+1753.365234375
+22
+1.015520675363979e-13
+32
+701.01953125
+13
+1753.365234375
+23
+1.015520675363979e-13
+33
+701.01953125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1753.365234375
+21
+1.015520675363979e-13
+31
+701.01953125
+12
+1898.255859375
+22
+1.0053969375783955e-13
+32
+686.4296875
+13
+1898.255859375
+23
+1.0053969375783955e-13
+33
+686.4296875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1898.255859375
+21
+1.0053969375783955e-13
+31
+686.4296875
+12
+1928.478515625
+22
+1.0122274112650542e-13
+32
+696.2734375
+13
+1928.478515625
+23
+1.0122274112650542e-13
+33
+696.2734375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+1928.478515625
+21
+1.0122274112650542e-13
+31
+696.2734375
+12
+2010.345703125
+22
+1.0054132006109828e-13
+32
+686.453125
+13
+2010.345703125
+23
+1.0054132006109828e-13
+33
+686.453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+1936.576171875
+20
+1.9938477952008427e-15
+30
+-733.765625
+11
+2010.345703125
+21
+1.0054132006109828e-13
+31
+686.453125
+12
+2072.47265625
+22
+1.6263032587282567e-15
+32
+-739.0625
+13
+2072.47265625
+23
+1.6263032587282567e-15
+33
+-739.0625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+2072.47265625
+20
+1.6263032587282567e-15
+30
+-739.0625
+11
+2010.345703125
+21
+1.0054132006109828e-13
+31
+686.453125
+12
+2243.419921875
+22
+1.4522888100443332e-15
+32
+-741.5703125
+13
+2243.419921875
+23
+1.4522888100443332e-15
+33
+-741.5703125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+2243.419921875
+20
+1.4522888100443332e-15
+30
+-741.5703125
+11
+2010.345703125
+21
+1.0054132006109828e-13
+31
+686.453125
+12
+2415.9375
+22
+5.675798372961616e-16
+32
+-754.3203125
+13
+2415.9375
+23
+5.675798372961616e-16
+33
+-754.3203125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2023.986328125
+20
+1.0102270582568185e-13
+30
+693.390625
+11
+2415.9375
+21
+5.675798372961616e-16
+31
+-754.3203125
+12
+2010.345703125
+22
+1.0054132006109828e-13
+32
+686.453125
+13
+2010.345703125
+23
+1.0054132006109828e-13
+33
+686.453125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2415.9375
+20
+5.675798372961616e-16
+30
+-754.3203125
+11
+2023.986328125
+21
+1.0102270582568185e-13
+31
+693.390625
+12
+2142.52734375
+22
+1.0654075278254682e-13
+32
+772.9140625
+13
+2142.52734375
+23
+1.0654075278254682e-13
+33
+772.9140625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2415.9375
+20
+5.675798372961616e-16
+30
+-754.3203125
+11
+2142.52734375
+21
+1.0654075278254682e-13
+31
+772.9140625
+12
+2244.052734375
+22
+1.0950550362320843e-13
+32
+815.640625
+13
+2244.052734375
+23
+1.0950550362320843e-13
+33
+815.640625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2415.9375
+20
+5.675798372961616e-16
+30
+-754.3203125
+11
+2244.052734375
+21
+1.0950550362320843e-13
+31
+815.640625
+12
+2991.7353515625
+22
+4.592273826833915e-15
+32
+-696.318359375
+13
+2991.7353515625
+23
+4.592273826833915e-15
+33
+-696.318359375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2415.9375
+20
+5.675798372961616e-16
+30
+-754.3203125
+11
+2991.7353515625
+21
+4.592273826833915e-15
+31
+-696.318359375
+12
+2868.6328125
+22
+3.105426072541606e-15
+32
+-717.74609375
+13
+2868.6328125
+23
+3.105426072541606e-15
+33
+-717.74609375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2415.9375
+20
+5.675798372961616e-16
+30
+-754.3203125
+11
+2868.6328125
+21
+3.105426072541606e-15
+31
+-717.74609375
+12
+2746.62890625
+22
+1.4669255393728875e-15
+32
+-741.359375
+13
+2746.62890625
+23
+1.4669255393728875e-15
+33
+-741.359375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2376.52734375
+20
+1.104764066686692e-13
+30
+829.6328125
+11
+2991.7353515625
+21
+4.592273826833915e-15
+31
+-696.318359375
+12
+2244.052734375
+22
+1.0950550362320843e-13
+32
+815.640625
+13
+2244.052734375
+23
+1.0950550362320843e-13
+33
+815.640625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2991.7353515625
+20
+4.592273826833915e-15
+30
+-696.318359375
+11
+2376.52734375
+21
+1.104764066686692e-13
+31
+829.6328125
+12
+2425.658203125
+22
+1.1370136603072734e-13
+32
+876.109375
+13
+2425.658203125
+23
+1.1370136603072734e-13
+33
+876.109375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2991.7353515625
+20
+4.592273826833915e-15
+30
+-696.318359375
+11
+2425.658203125
+21
+1.1370136603072734e-13
+31
+876.109375
+12
+2462.208984375
+22
+1.1774760853844324e-13
+32
+934.421875
+13
+2462.208984375
+23
+1.1774760853844324e-13
+33
+934.421875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2991.7353515625
+20
+4.592273826833915e-15
+30
+-696.318359375
+11
+2462.208984375
+21
+1.1774760853844324e-13
+31
+934.421875
+12
+2467.541015625
+22
+1.1890878906517521e-13
+32
+951.15625
+13
+2467.541015625
+23
+1.1890878906517521e-13
+33
+951.15625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2991.7353515625
+20
+4.592273826833915e-15
+30
+-696.318359375
+11
+2467.541015625
+21
+1.1890878906517521e-13
+31
+951.15625
+12
+2520.75
+22
+1.2434877346562123e-13
+32
+1029.5546875
+13
+2520.75
+23
+1.2434877346562123e-13
+33
+1029.5546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2991.7353515625
+20
+4.592273826833915e-15
+30
+-696.318359375
+11
+2520.75
+21
+1.2434877346562123e-13
+31
+1029.5546875
+12
+3437.982421875
+22
+1.1593915931473742e-14
+32
+-595.4140625
+13
+3437.982421875
+23
+1.1593915931473742e-14
+33
+-595.4140625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+2991.7353515625
+20
+4.592273826833915e-15
+30
+-696.318359375
+11
+3437.982421875
+21
+1.1593915931473742e-14
+31
+-595.4140625
+12
+3114.837890625
+22
+6.079121581126223e-15
+32
+-674.890625
+13
+3114.837890625
+23
+6.079121581126223e-15
+33
+-674.890625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+2544.99609375
+20
+1.2536196039580894e-13
+30
+1044.15625
+11
+3437.982421875
+21
+1.1593915931473742e-14
+31
+-595.4140625
+12
+2520.75
+22
+1.2434877346562123e-13
+32
+1029.5546875
+13
+2520.75
+23
+1.2434877346562123e-13
+33
+1029.5546875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+2544.99609375
+21
+1.2536196039580894e-13
+31
+1044.15625
+12
+2608.728515625
+22
+1.267117921005534e-13
+32
+1063.609375
+13
+2608.728515625
+23
+1.267117921005534e-13
+33
+1063.609375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+2608.728515625
+21
+1.267117921005534e-13
+31
+1063.609375
+12
+2748.861328125
+22
+1.2590351938096545e-13
+32
+1051.9609375
+13
+2748.861328125
+23
+1.2590351938096545e-13
+33
+1051.9609375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+2748.861328125
+21
+1.2590351938096545e-13
+31
+1051.9609375
+12
+2775.17578125
+22
+1.2588075113534325e-13
+32
+1051.6328125
+13
+2775.17578125
+23
+1.2588075113534325e-13
+33
+1051.6328125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+2775.17578125
+21
+1.2588075113534325e-13
+31
+1051.6328125
+12
+2871.55078125
+22
+1.2861456691326545e-13
+32
+1091.03125
+13
+2871.55078125
+23
+1.2861456691326545e-13
+33
+1091.03125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+2871.55078125
+21
+1.2861456691326545e-13
+31
+1091.03125
+12
+3054.92578125
+22
+1.3971896556386199e-13
+32
+1251.0625
+13
+3054.92578125
+23
+1.3971896556386199e-13
+33
+1251.0625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+3054.92578125
+21
+1.3971896556386199e-13
+31
+1251.0625
+12
+3096.50390625
+22
+1.4052723828344993e-13
+32
+1262.7109375
+13
+3096.50390625
+23
+1.4052723828344993e-13
+33
+1262.7109375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+3096.50390625
+21
+1.4052723828344993e-13
+31
+1262.7109375
+12
+3294.228515625
+22
+1.4057277477469432e-13
+32
+1263.3671875
+13
+3294.228515625
+23
+1.4057277477469432e-13
+33
+1263.3671875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+3294.228515625
+21
+1.4057277477469432e-13
+31
+1263.3671875
+12
+3380.175721042694
+22
+1.4057277477469432e-13
+32
+1263.3671875
+13
+3380.175721042694
+23
+1.4057277477469432e-13
+33
+1263.3671875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+3380.175721042694
+21
+1.4057277477469432e-13
+31
+1263.3671875
+12
+3391.025390625
+22
+1.4023125109036139e-13
+32
+1258.4453125
+13
+3391.025390625
+23
+1.4023125109036139e-13
+33
+1258.4453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+3391.025390625
+21
+1.4023125109036139e-13
+31
+1258.4453125
+12
+3392.9298188391676
+22
+1.401838317238979e-13
+32
+1257.761927408368
+13
+3392.9298188391676
+23
+1.401838317238979e-13
+33
+1257.761927408368
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+3392.9298188391676
+21
+1.401838317238979e-13
+31
+1257.761927408368
+12
+4018.76953125
+22
+1.2368036282628392e-14
+32
+-584.2578125
+13
+4018.76953125
+23
+1.2368036282628392e-14
+33
+-584.2578125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3437.982421875
+20
+1.1593915931473742e-14
+30
+-595.4140625
+11
+4018.76953125
+21
+1.2368036282628392e-14
+31
+-584.2578125
+12
+3826.8515625
+22
+1.154837944022935e-14
+32
+-596.0703125
+13
+3826.8515625
+23
+1.154837944022935e-14
+33
+-596.0703125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3826.8515625
+20
+1.154837944022935e-14
+30
+-596.0703125
+11
+4018.76953125
+21
+1.2368036282628392e-14
+31
+-584.2578125
+12
+3866.033203125
+22
+1.1601234296138019e-14
+32
+-595.30859375
+13
+3866.033203125
+23
+1.1601234296138019e-14
+33
+-595.30859375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3310.96875
+20
+1.4141519986271556e-13
+30
+1275.5078125
+11
+3380.175721042694
+21
+1.4057277477469432e-13
+31
+1263.3671875
+12
+3294.228515625
+22
+1.4057277477469432e-13
+32
+1263.3671875
+13
+3294.228515625
+23
+1.4057277477469432e-13
+33
+1263.3671875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3380.175721042694
+20
+1.4057277477469432e-13
+30
+1263.3671875
+11
+3310.96875
+21
+1.4141519986271556e-13
+31
+1275.5078125
+12
+3349.125
+22
+1.4155018303319e-13
+32
+1277.453125
+13
+3349.125
+23
+1.4155018303319e-13
+33
+1277.453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3349.125
+20
+1.4155018303319e-13
+30
+1277.453125
+11
+3310.96875
+21
+1.4141519986271556e-13
+31
+1275.5078125
+12
+3326.25
+22
+1.4882301120622277e-13
+32
+1382.265625
+13
+3326.25
+23
+1.4882301120622277e-13
+33
+1382.265625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3349.125
+20
+1.4155018303319e-13
+30
+1277.453125
+11
+3326.25
+21
+1.4882301120622277e-13
+31
+1382.265625
+12
+3341.40234375
+22
+1.4661774398738725e-13
+32
+1350.484375
+13
+3341.40234375
+23
+1.4661774398738725e-13
+33
+1350.484375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3341.40234375
+20
+1.4661774398738725e-13
+30
+1350.484375
+11
+3326.25
+21
+1.4882301120622277e-13
+31
+1382.265625
+12
+3338.203125
+22
+1.5346204125174512e-13
+32
+1449.12109375
+13
+3338.203125
+23
+1.5346204125174512e-13
+33
+1449.12109375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3351.111328125
+20
+1.5948505537044522e-13
+30
+1535.921875
+11
+3341.40234375
+21
+1.4661774398738725e-13
+31
+1350.484375
+12
+3338.203125
+22
+1.5346204125174512e-13
+32
+1449.12109375
+13
+3338.203125
+23
+1.5346204125174512e-13
+33
+1449.12109375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3341.40234375
+20
+1.4661774398738725e-13
+30
+1350.484375
+11
+3351.111328125
+21
+1.5948505537044522e-13
+31
+1535.921875
+12
+3364.67578125
+22
+1.5645850500595193e-13
+32
+1492.3046875
+13
+3364.67578125
+23
+1.5645850500595193e-13
+33
+1492.3046875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3364.67578125
+20
+1.5645850500595193e-13
+30
+1492.3046875
+11
+3351.111328125
+21
+1.5948505537044522e-13
+31
+1535.921875
+12
+3393.09375
+22
+1.738501920547919e-13
+32
+1742.9453125
+13
+3393.09375
+23
+1.738501920547919e-13
+33
+1742.9453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3364.67578125
+20
+1.5645850500595193e-13
+30
+1492.3046875
+11
+3393.09375
+21
+1.738501920547919e-13
+31
+1742.9453125
+12
+3470.677734375
+22
+1.8266068995895224e-13
+32
+1869.91796875
+13
+3470.677734375
+23
+1.8266068995895224e-13
+33
+1869.91796875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3470.677734375
+20
+1.8266068995895224e-13
+30
+1869.91796875
+11
+3393.09375
+21
+1.738501920547919e-13
+31
+1742.9453125
+12
+3450.919921875
+22
+1.8543760277323074e-13
+32
+1909.9375
+13
+3450.919921875
+23
+1.8543760277323074e-13
+33
+1909.9375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3470.677734375
+20
+1.8266068995895224e-13
+30
+1869.91796875
+11
+3450.919921875
+21
+1.8543760277323074e-13
+31
+1909.9375
+12
+3482.1328125
+22
+1.9784141772755115e-13
+32
+2088.6953125
+13
+3482.1328125
+23
+1.9784141772755115e-13
+33
+2088.6953125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3470.677734375
+20
+1.8266068995895224e-13
+30
+1869.91796875
+11
+3482.1328125
+21
+1.9784141772755115e-13
+31
+2088.6953125
+12
+3482.958984375
+22
+1.8594013048017777e-13
+32
+1917.1796875
+13
+3482.958984375
+23
+1.8594013048017777e-13
+33
+1917.1796875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3482.958984375
+20
+1.8594013048017777e-13
+30
+1917.1796875
+11
+3482.1328125
+21
+1.9784141772755115e-13
+31
+2088.6953125
+12
+3482.994140625
+22
+2.0051831289141786e-13
+32
+2127.2734375
+13
+3482.994140625
+23
+2.0051831289141786e-13
+33
+2127.2734375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3482.958984375
+20
+1.8594013048017777e-13
+30
+1917.1796875
+11
+3482.994140625
+21
+2.0051831289141786e-13
+31
+2127.2734375
+12
+3492.884765625
+22
+1.8934723580721347e-13
+32
+1966.28125
+13
+3492.884765625
+23
+1.8934723580721347e-13
+33
+1966.28125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3492.884765625
+20
+1.8934723580721347e-13
+30
+1966.28125
+11
+3482.994140625
+21
+2.0051831289141786e-13
+31
+2127.2734375
+12
+3497.19140625
+22
+2.083855549055158e-13
+32
+2240.65234375
+13
+3497.19140625
+23
+2.083855549055158e-13
+33
+2240.65234375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3492.884765625
+20
+1.8934723580721347e-13
+30
+1966.28125
+11
+3497.19140625
+21
+2.083855549055158e-13
+31
+2240.65234375
+12
+3496.482421875
+22
+1.914955824119935e-13
+32
+1997.2421875
+13
+3496.482421875
+23
+1.914955824119935e-13
+33
+1997.2421875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3496.482421875
+20
+1.914955824119935e-13
+30
+1997.2421875
+11
+3497.19140625
+21
+2.083855549055158e-13
+31
+2240.65234375
+12
+3502.93359375
+22
+1.9359188731249422e-13
+32
+2027.453125
+13
+3502.93359375
+23
+1.9359188731249422e-13
+33
+2027.453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3502.93359375
+20
+1.9359188731249422e-13
+30
+2027.453125
+11
+3497.19140625
+21
+2.083855549055158e-13
+31
+2240.65234375
+12
+3512.109375
+22
+2.0973050770048407e-13
+32
+2260.03515625
+13
+3512.109375
+23
+2.0973050770048407e-13
+33
+2260.03515625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3502.93359375
+20
+1.9359188731249422e-13
+30
+2027.453125
+11
+3512.109375
+21
+2.0973050770048407e-13
+31
+2260.03515625
+12
+3505.30078125
+22
+1.9475469414248492e-13
+32
+2044.2109375
+13
+3505.30078125
+23
+1.9475469414248492e-13
+33
+2044.2109375
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+3505.30078125
+20
+1.9475469414248492e-13
+30
+2044.2109375
+11
+3512.109375
+21
+2.0973050770048407e-13
+31
+2260.03515625
+12
+3510.234375
+22
+1.9475469414248492e-13
+32
+2044.2109375
+13
+3510.234375
+23
+1.9475469414248492e-13
+33
+2044.2109375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3510.234375
+20
+1.9475469414248492e-13
+30
+2044.2109375
+11
+3512.109375
+21
+2.0973050770048407e-13
+31
+2260.03515625
+12
+3520.23046875
+22
+2.0103710363095217e-13
+32
+2134.75
+13
+3520.23046875
+23
+2.0103710363095217e-13
+33
+2134.75
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3520.23046875
+20
+2.0103710363095217e-13
+30
+2134.75
+11
+3512.109375
+21
+2.0973050770048407e-13
+31
+2260.03515625
+12
+3529.60546875
+22
+2.099947819800274e-13
+32
+2263.84375
+13
+3529.60546875
+23
+2.099947819800274e-13
+33
+2263.84375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3520.23046875
+20
+2.0103710363095217e-13
+30
+2134.75
+11
+3529.60546875
+21
+2.099947819800274e-13
+31
+2263.84375
+12
+3535.5703125
+22
+2.0793588205447744e-13
+32
+2234.171875
+13
+3535.5703125
+23
+2.0793588205447744e-13
+33
+2234.171875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3535.5703125
+20
+2.0793588205447744e-13
+30
+2234.171875
+11
+3529.60546875
+21
+2.099947819800274e-13
+31
+2263.84375
+12
+3535.6171875
+22
+2.0929547157877426e-13
+32
+2253.765625
+13
+3535.6171875
+23
+2.0929547157877426e-13
+33
+2253.765625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3505.30078125
+20
+1.932950869677763e-13
+30
+2023.17578125
+11
+3502.93359375
+21
+1.9359188731249422e-13
+31
+2027.453125
+12
+3505.30078125
+22
+1.9475469414248492e-13
+32
+2044.2109375
+13
+3505.30078125
+23
+1.9475469414248492e-13
+33
+2044.2109375
+70
+2
+ 0
+3DFACE
+ 8
+ship3
+10
+3840.15234375
+20
+1.3077917655063276e-13
+30
+1122.2265625
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+3839.58984375
+22
+1.1935195670317866e-13
+32
+957.54296875
+13
+3839.58984375
+23
+1.1935195670317866e-13
+33
+957.54296875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+4233.10546875
+20
+1.4472797960074502e-13
+30
+1323.25
+11
+3840.15234375
+21
+1.3077917655063276e-13
+31
+1122.2265625
+12
+3896.578125
+22
+1.3787067191031732e-13
+32
+1224.42578125
+13
+3896.578125
+23
+1.3787067191031732e-13
+33
+1224.42578125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4233.10546875
+20
+1.4472797960074502e-13
+30
+1323.25
+11
+3896.578125
+21
+1.3787067191031732e-13
+31
+1224.42578125
+12
+3939.298828125
+22
+1.4063620060178472e-13
+32
+1264.28125
+13
+3939.298828125
+23
+1.4063620060178472e-13
+33
+1264.28125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4233.10546875
+20
+1.4472797960074502e-13
+30
+1323.25
+11
+3939.298828125
+21
+1.4063620060178472e-13
+31
+1264.28125
+12
+4170.8671875
+22
+1.4423358341009163e-13
+32
+1316.125
+13
+4170.8671875
+23
+1.4423358341009163e-13
+33
+1316.125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4170.8671875
+20
+1.4423358341009163e-13
+30
+1316.125
+11
+3939.298828125
+21
+1.4063620060178472e-13
+31
+1264.28125
+12
+4015.76953125
+22
+1.43345621830826e-13
+32
+1303.328125
+13
+4015.76953125
+23
+1.43345621830826e-13
+33
+1303.328125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4170.8671875
+20
+1.4423358341009163e-13
+30
+1316.125
+11
+4015.76953125
+21
+1.43345621830826e-13
+31
+1303.328125
+12
+4087.88671875
+22
+1.4457348079116583e-13
+32
+1321.0234375
+13
+4087.88671875
+23
+1.4457348079116583e-13
+33
+1321.0234375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3391.025390625
+20
+1.4057277477469432e-13
+30
+1263.3671875
+11
+3391.025390625
+21
+1.4023125109036139e-13
+31
+1258.4453125
+12
+3380.175721042694
+22
+1.4057277477469432e-13
+32
+1263.3671875
+13
+3380.175721042694
+23
+1.4057277477469432e-13
+33
+1263.3671875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3391.025390625
+20
+1.4023125109036139e-13
+30
+1258.4453125
+11
+3391.025390625
+21
+1.4057277477469432e-13
+31
+1263.3671875
+12
+3392.9298188391676
+22
+1.401838317238979e-13
+32
+1257.761927408368
+13
+3392.9298188391676
+23
+1.401838317238979e-13
+33
+1257.761927408368
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3534.357421875
+20
+1.950157158155108e-13
+30
+2047.97265625
+11
+3523.060546875
+21
+1.9063445483649688e-13
+31
+1984.83203125
+12
+3523.060546875
+22
+1.9475469414248492e-13
+32
+2044.2109375
+13
+3523.060546875
+23
+1.9475469414248492e-13
+33
+2044.2109375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3523.060546875
+20
+1.9063445483649688e-13
+30
+1984.83203125
+11
+3522.275390625
+21
+1.880364353806785e-13
+31
+1947.390625
+12
+3521.982421875
+22
+1.9063445483649688e-13
+32
+1984.83203125
+13
+3521.982421875
+23
+1.9063445483649688e-13
+33
+1984.83203125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+3522.275390625
+20
+1.880364353806785e-13
+30
+1947.390625
+11
+3523.060546875
+21
+1.9063445483649688e-13
+31
+1984.83203125
+12
+3536.525390625
+22
+1.7973578354812947e-13
+32
+1827.765625
+13
+3536.525390625
+23
+1.7973578354812947e-13
+33
+1827.765625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3536.525390625
+20
+1.7973578354812947e-13
+30
+1827.765625
+11
+3523.060546875
+21
+1.9063445483649688e-13
+31
+1984.83203125
+12
+3534.357421875
+22
+1.950157158155108e-13
+32
+2047.97265625
+13
+3534.357421875
+23
+1.950157158155108e-13
+33
+2047.97265625
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+3536.525390625
+20
+1.7973578354812947e-13
+30
+1827.765625
+11
+3534.357421875
+21
+1.950157158155108e-13
+31
+2047.97265625
+12
+3548.267578125
+22
+1.9363417119722115e-13
+32
+2028.0625
+13
+3548.267578125
+23
+1.9363417119722115e-13
+33
+2028.0625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3536.525390625
+20
+1.7973578354812947e-13
+30
+1827.765625
+11
+3548.267578125
+21
+1.9363417119722115e-13
+31
+2028.0625
+12
+3562.6875
+22
+1.6861674816820438e-13
+32
+1667.5234375
+13
+3562.6875
+23
+1.6861674816820438e-13
+33
+1667.5234375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3562.6875
+20
+1.6861674816820438e-13
+30
+1667.5234375
+11
+3548.267578125
+21
+1.9363417119722115e-13
+31
+2028.0625
+12
+3563.82421875
+22
+1.8440571335556766e-13
+32
+1895.06640625
+13
+3563.82421875
+23
+1.8440571335556766e-13
+33
+1895.06640625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3562.6875
+20
+1.6861674816820438e-13
+30
+1667.5234375
+11
+3563.82421875
+21
+1.8440571335556766e-13
+31
+1895.06640625
+12
+3575.07421875
+22
+1.6533324188883203e-13
+32
+1620.203125
+13
+3575.07421875
+23
+1.6533324188883203e-13
+33
+1620.203125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3575.07421875
+20
+1.6533324188883203e-13
+30
+1620.203125
+11
+3563.82421875
+21
+1.8440571335556766e-13
+31
+1895.06640625
+12
+3585.92578125
+22
+1.7593186022596408e-13
+32
+1772.9453125
+13
+3585.92578125
+23
+1.7593186022596408e-13
+33
+1772.9453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3575.07421875
+20
+1.6533324188883203e-13
+30
+1620.203125
+11
+3585.92578125
+21
+1.7593186022596408e-13
+31
+1772.9453125
+12
+3605.42578125
+22
+1.5741639762534287e-13
+32
+1506.109375
+13
+3605.42578125
+23
+1.5741639762534287e-13
+33
+1506.109375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3605.42578125
+20
+1.5741639762534287e-13
+30
+1506.109375
+11
+3585.92578125
+21
+1.7593186022596408e-13
+31
+1772.9453125
+12
+3588.556640625
+22
+1.7509431404771902e-13
+32
+1760.875
+13
+3588.556640625
+23
+1.7509431404771902e-13
+33
+1760.875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3605.42578125
+20
+1.5741639762534287e-13
+30
+1506.109375
+11
+3588.556640625
+21
+1.7509431404771902e-13
+31
+1760.875
+12
+3602.40234375
+22
+1.6541862280991526e-13
+32
+1621.43359375
+13
+3602.40234375
+23
+1.6541862280991526e-13
+33
+1621.43359375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3605.42578125
+20
+1.5741639762534287e-13
+30
+1506.109375
+11
+3602.40234375
+21
+1.6541862280991526e-13
+31
+1621.43359375
+12
+3603.345703125
+22
+1.6292306045939675e-13
+32
+1585.46875
+13
+3603.345703125
+23
+1.6292306045939675e-13
+33
+1585.46875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3605.42578125
+20
+1.5741639762534287e-13
+30
+1506.109375
+11
+3603.345703125
+21
+1.6292306045939675e-13
+31
+1585.46875
+12
+3604.001953125
+22
+1.6293932349198403e-13
+32
+1585.703125
+13
+3604.001953125
+23
+1.6293932349198403e-13
+33
+1585.703125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3605.42578125
+20
+1.5741639762534287e-13
+30
+1506.109375
+11
+3604.001953125
+21
+1.6293932349198403e-13
+31
+1585.703125
+12
+3806.30859375
+22
+1.2223132662275704e-13
+32
+999.0390625
+13
+3806.30859375
+23
+1.2223132662275704e-13
+33
+999.0390625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3605.42578125
+20
+1.5741639762534287e-13
+30
+1506.109375
+11
+3806.30859375
+21
+1.2223132662275704e-13
+31
+999.0390625
+12
+3760.6640625
+22
+1.2617999093494925e-13
+32
+1055.9453125
+13
+3760.6640625
+23
+1.2617999093494925e-13
+33
+1055.9453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3760.6640625
+20
+1.2617999093494925e-13
+30
+1055.9453125
+11
+3806.30859375
+21
+1.2223132662275704e-13
+31
+999.0390625
+12
+3809.349609375
+22
+1.155634832619712e-13
+32
+902.9453125
+13
+3809.349609375
+23
+1.155634832619712e-13
+33
+902.9453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+3809.349609375
+20
+1.155634832619712e-13
+30
+902.9453125
+11
+3806.30859375
+21
+1.2223132662275704e-13
+31
+999.0390625
+12
+3839.58984375
+22
+1.1935195670317866e-13
+32
+957.54296875
+13
+3839.58984375
+23
+1.1935195670317866e-13
+33
+957.54296875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+3453.662109375
+20
+1.38671626265241e-13
+30
+1235.96875
+11
+4018.76953125
+21
+1.2368036282628392e-14
+31
+-584.2578125
+12
+3392.9298188391676
+22
+1.401838317238979e-13
+32
+1257.761927408368
+13
+3392.9298188391676
+23
+1.401838317238979e-13
+33
+1257.761927408368
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3453.662109375
+21
+1.38671626265241e-13
+31
+1235.96875
+12
+3561.052734375
+22
+1.3462863636404254e-13
+32
+1177.703125
+13
+3561.052734375
+23
+1.3462863636404254e-13
+33
+1177.703125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3561.052734375
+21
+1.3462863636404254e-13
+31
+1177.703125
+12
+3565.998046875
+22
+1.3341297467814317e-13
+32
+1160.18359375
+13
+3565.998046875
+23
+1.3341297467814317e-13
+33
+1160.18359375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3565.998046875
+21
+1.3341297467814317e-13
+31
+1160.18359375
+12
+3575.68359375
+22
+1.3454894750436486e-13
+32
+1176.5546875
+13
+3575.68359375
+23
+1.3454894750436486e-13
+33
+1176.5546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3575.68359375
+21
+1.3454894750436486e-13
+31
+1176.5546875
+12
+3588.708984375
+22
+1.3739335190388058e-13
+32
+1217.546875
+13
+3588.708984375
+23
+1.3739335190388058e-13
+33
+1217.546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3588.708984375
+21
+1.3739335190388058e-13
+31
+1217.546875
+12
+3614.349609375
+22
+1.3377320084995148e-13
+32
+1165.375
+13
+3614.349609375
+23
+1.3377320084995148e-13
+33
+1165.375
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+3614.349609375
+20
+1.3377320084995148e-13
+30
+1165.375
+11
+3588.708984375
+21
+1.3739335190388058e-13
+31
+1217.546875
+12
+3613.494140625
+22
+1.3604026759261867e-13
+32
+1198.046875
+13
+3613.494140625
+23
+1.3604026759261867e-13
+33
+1198.046875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3614.349609375
+21
+1.3377320084995148e-13
+31
+1165.375
+12
+3641.02734375
+22
+1.2900487969536023e-13
+32
+1096.65625
+13
+3641.02734375
+23
+1.2900487969536023e-13
+33
+1096.65625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3641.02734375
+21
+1.2900487969536023e-13
+31
+1096.65625
+12
+3809.349609375
+22
+1.155634832619712e-13
+32
+902.9453125
+13
+3809.349609375
+23
+1.155634832619712e-13
+33
+902.9453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3809.349609375
+21
+1.155634832619712e-13
+31
+902.9453125
+12
+3839.58984375
+22
+1.1935195670317866e-13
+32
+957.54296875
+13
+3839.58984375
+23
+1.1935195670317866e-13
+33
+957.54296875
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+3839.58984375
+21
+1.1935195670317866e-13
+31
+957.54296875
+12
+4233.10546875
+22
+1.4472797960074502e-13
+32
+1323.25
+13
+4233.10546875
+23
+1.4472797960074502e-13
+33
+1323.25
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4018.76953125
+20
+1.2368036282628392e-14
+30
+-584.2578125
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+4036.734375
+22
+6.027079876846919e-15
+32
+-675.640625
+13
+4036.734375
+23
+6.027079876846919e-15
+33
+-675.640625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4036.734375
+20
+6.027079876846919e-15
+30
+-675.640625
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+4075.119140625
+22
+3.2802536728548937e-15
+32
+-715.2265625
+13
+4075.119140625
+23
+3.2802536728548937e-15
+33
+-715.2265625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4075.119140625
+20
+3.2802536728548937e-15
+30
+-715.2265625
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+4212.01171875
+22
+8.424250880212369e-16
+32
+-750.359375
+13
+4212.01171875
+23
+8.424250880212369e-16
+33
+-750.359375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4212.01171875
+20
+8.424250880212369e-16
+30
+-750.359375
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+4295.923828125
+22
+0.0
+32
+-762.5
+13
+4295.923828125
+23
+0.0
+33
+-762.5
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4295.923828125
+20
+0.0
+30
+-762.5
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+4337.970703125
+22
+5.610746242612485e-16
+32
+-754.4140625
+13
+4337.970703125
+23
+5.610746242612485e-16
+33
+-754.4140625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4337.970703125
+20
+5.610746242612485e-16
+30
+-754.4140625
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+4563.650390625
+22
+1.3221845493460727e-15
+32
+-743.4453125
+13
+4563.650390625
+23
+1.3221845493460727e-15
+33
+-743.4453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4563.650390625
+20
+1.3221845493460727e-15
+30
+-743.4453125
+11
+4233.10546875
+21
+1.4472797960074502e-13
+31
+1323.25
+12
+4754.244140625
+22
+1.4100049253173985e-15
+32
+-742.1796875
+13
+4754.244140625
+23
+1.4100049253173985e-15
+33
+-742.1796875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+4465.587890625
+20
+1.623912592937926e-13
+30
+1577.8046875
+11
+4459.892578125
+21
+1.547996756820491e-13
+31
+1468.3984375
+12
+4458.580078125
+22
+1.7004138982285033e-13
+32
+1688.0546875
+13
+4458.580078125
+23
+1.7004138982285033e-13
+33
+1688.0546875
+70
+2
+ 0
+3DFACE
+ 8
+ship3
+10
+4300.376953125
+20
+1.5049322465293669e-13
+30
+1406.3359375
+11
+4754.244140625
+21
+1.4100049253173985e-15
+31
+-742.1796875
+12
+4233.10546875
+22
+1.4472797960074502e-13
+32
+1323.25
+13
+4233.10546875
+23
+1.4472797960074502e-13
+33
+1323.25
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4300.376953125
+21
+1.5049322465293669e-13
+31
+1406.3359375
+12
+4328.220703125
+22
+1.5700494290088463e-13
+32
+1500.1796875
+13
+4328.220703125
+23
+1.5700494290088463e-13
+33
+1500.1796875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4328.220703125
+21
+1.5700494290088463e-13
+31
+1500.1796875
+12
+4363.869140625
+22
+1.7015848365747877e-13
+32
+1689.7421875
+13
+4363.869140625
+23
+1.7015848365747877e-13
+33
+1689.7421875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4363.869140625
+21
+1.7015848365747877e-13
+31
+1689.7421875
+12
+4367.642578125
+22
+1.741835842228312e-13
+32
+1747.75
+13
+4367.642578125
+23
+1.741835842228312e-13
+33
+1747.75
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4367.642578125
+21
+1.741835842228312e-13
+31
+1747.75
+12
+4395.814453125
+22
+1.7614490595285748e-13
+32
+1776.015625
+13
+4395.814453125
+23
+1.7614490595285748e-13
+33
+1776.015625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4395.814453125
+21
+1.7614490595285748e-13
+31
+1776.015625
+12
+4420.166015625
+22
+1.7533663323326953e-13
+32
+1764.3671875
+13
+4420.166015625
+23
+1.7533663323326953e-13
+33
+1764.3671875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4420.166015625
+21
+1.7533663323326953e-13
+31
+1764.3671875
+12
+4459.892578125
+22
+1.547996756820491e-13
+32
+1468.3984375
+13
+4459.892578125
+23
+1.547996756820491e-13
+33
+1468.3984375
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+4459.892578125
+20
+1.547996756820491e-13
+30
+1468.3984375
+11
+4420.166015625
+21
+1.7533663323326953e-13
+31
+1764.3671875
+12
+4458.580078125
+22
+1.7004138982285033e-13
+32
+1688.0546875
+13
+4458.580078125
+23
+1.7004138982285033e-13
+33
+1688.0546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4459.892578125
+21
+1.547996756820491e-13
+31
+1468.3984375
+12
+4482.697265625
+22
+1.5246593050577406e-13
+32
+1434.765625
+13
+4482.697265625
+23
+1.5246593050577406e-13
+33
+1434.765625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4482.697265625
+21
+1.5246593050577406e-13
+31
+1434.765625
+12
+4621.751953125
+22
+1.459956829909237e-13
+32
+1341.51953125
+13
+4621.751953125
+23
+1.459956829909237e-13
+33
+1341.51953125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4621.751953125
+21
+1.459956829909237e-13
+31
+1341.51953125
+12
+4695.673828125
+22
+1.3722421636497284e-13
+32
+1215.109375
+13
+4695.673828125
+23
+1.3722421636497284e-13
+33
+1215.109375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4695.673828125
+21
+1.3722421636497284e-13
+31
+1215.109375
+12
+4697.712890625
+22
+1.354775666650987e-13
+32
+1189.9375
+13
+4697.712890625
+23
+1.354775666650987e-13
+33
+1189.9375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4697.712890625
+21
+1.354775666650987e-13
+31
+1189.9375
+12
+4742.126953125
+22
+1.3317390809911012e-13
+32
+1156.73828125
+13
+4742.126953125
+23
+1.3317390809911012e-13
+33
+1156.73828125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4754.244140625
+20
+1.4100049253173985e-15
+30
+-742.1796875
+11
+4742.126953125
+21
+1.3317390809911012e-13
+31
+1156.73828125
+12
+4946.595703125
+22
+2.3735896061138906e-15
+32
+-728.29296875
+13
+4946.595703125
+23
+2.3735896061138906e-15
+33
+-728.29296875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4946.595703125
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+4742.126953125
+21
+1.3317390809911012e-13
+31
+1156.73828125
+12
+5111.958984375
+22
+2.844404399515721e-15
+32
+-721.5078125
+13
+5111.958984375
+23
+2.844404399515721e-15
+33
+-721.5078125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+4862.267578125
+20
+1.3408057216585112e-13
+30
+1169.8046875
+11
+4868.642578125
+21
+1.2816408091059772e-13
+31
+1084.5390625
+12
+4867.892578125
+22
+1.2547254901740246e-13
+32
+1045.75
+13
+4867.892578125
+23
+1.2547254901740246e-13
+33
+1045.75
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+4868.642578125
+20
+1.2816408091059772e-13
+30
+1084.5390625
+11
+4862.267578125
+21
+1.3408057216585112e-13
+31
+1169.8046875
+12
+4879.705078125
+22
+1.333487356994234e-13
+32
+1159.2578125
+13
+4879.705078125
+23
+1.333487356994234e-13
+33
+1159.2578125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5036.666015625
+20
+1.3377807975972766e-13
+30
+1165.4453125
+11
+5027.783203125
+21
+1.1995450206053748e-13
+31
+966.2265625
+12
+5019.556640625
+22
+1.340943957435503e-13
+32
+1170.00390625
+13
+5019.556640625
+23
+1.340943957435503e-13
+33
+1170.00390625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5027.783203125
+20
+1.1995450206053748e-13
+30
+966.2265625
+11
+5036.666015625
+21
+1.3377807975972766e-13
+31
+1165.4453125
+12
+5048.244140625
+22
+1.2243298822683935e-13
+32
+1001.9453125
+13
+5048.244140625
+23
+1.2243298822683935e-13
+33
+1001.9453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5048.244140625
+20
+1.2243298822683935e-13
+30
+1001.9453125
+11
+5036.666015625
+21
+1.3377807975972766e-13
+31
+1165.4453125
+12
+5087.994140625
+22
+1.2657355632356149e-13
+32
+1061.6171875
+13
+5087.994140625
+23
+1.2657355632356149e-13
+33
+1061.6171875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5048.244140625
+20
+1.2243298822683935e-13
+30
+1001.9453125
+11
+5087.994140625
+21
+1.2657355632356149e-13
+31
+1061.6171875
+12
+5085.369140625
+22
+1.259409243559162e-13
+32
+1052.5
+13
+5085.369140625
+23
+1.259409243559162e-13
+33
+1052.5
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+4742.126953125
+20
+1.3317390809911012e-13
+30
+1156.73828125
+11
+4867.892578125
+21
+1.2547254901740246e-13
+31
+1045.75
+12
+5111.958984375
+22
+2.844404399515721e-15
+32
+-721.5078125
+13
+5111.958984375
+23
+2.844404399515721e-15
+33
+-721.5078125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+4867.892578125
+20
+1.2547254901740246e-13
+30
+1045.75
+11
+4742.126953125
+21
+1.3317390809911012e-13
+31
+1156.73828125
+12
+4862.267578125
+22
+1.3408057216585112e-13
+32
+1169.8046875
+13
+4862.267578125
+23
+1.3408057216585112e-13
+33
+1169.8046875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5111.958984375
+20
+2.844404399515721e-15
+30
+-721.5078125
+11
+4867.892578125
+21
+1.2547254901740246e-13
+31
+1045.75
+12
+4927.869140625
+22
+1.2958221735220876e-13
+32
+1104.9765625
+13
+4927.869140625
+23
+1.2958221735220876e-13
+33
+1104.9765625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5111.958984375
+20
+2.844404399515721e-15
+30
+-721.5078125
+11
+4927.869140625
+21
+1.2958221735220876e-13
+31
+1104.9765625
+12
+5027.783203125
+22
+1.1995450206053748e-13
+32
+966.2265625
+13
+5027.783203125
+23
+1.1995450206053748e-13
+33
+966.2265625
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+5027.783203125
+20
+1.1995450206053748e-13
+30
+966.2265625
+11
+4927.869140625
+21
+1.2958221735220876e-13
+31
+1104.9765625
+12
+5019.556640625
+22
+1.340943957435503e-13
+32
+1170.00390625
+13
+5019.556640625
+23
+1.340943957435503e-13
+33
+1170.00390625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5111.958984375
+20
+2.844404399515721e-15
+30
+-721.5078125
+11
+5027.783203125
+21
+1.1995450206053748e-13
+31
+966.2265625
+12
+5434.892578125
+22
+5.631888184975953e-15
+32
+-681.3359375
+13
+5434.892578125
+23
+5.631888184975953e-15
+33
+-681.3359375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5111.958984375
+20
+2.844404399515721e-15
+30
+-721.5078125
+11
+5434.892578125
+21
+5.631888184975953e-15
+31
+-681.3359375
+12
+5277.322265625
+22
+3.315219192917551e-15
+32
+-714.72265625
+13
+5277.322265625
+23
+3.315219192917551e-15
+33
+-714.72265625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5277.322265625
+20
+3.315219192917551e-15
+30
+-714.72265625
+11
+5434.892578125
+21
+5.631888184975953e-15
+31
+-681.3359375
+12
+5296.212890625
+22
+3.403852720518241e-15
+32
+-713.4453125
+13
+5296.212890625
+23
+3.403852720518241e-15
+33
+-713.4453125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5451.861328125
+20
+1.3483680318115976e-13
+30
+1180.703125
+11
+5383.400390625
+21
+1.1767930380157665e-13
+31
+933.4375
+12
+5367.134765625
+22
+1.3252745255376563e-13
+32
+1147.421875
+13
+5367.134765625
+23
+1.3252745255376563e-13
+33
+1147.421875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5383.400390625
+20
+1.1767930380157665e-13
+30
+933.4375
+11
+5451.861328125
+21
+1.3483680318115976e-13
+31
+1180.703125
+12
+5426.853515625
+22
+1.2053346602064474e-13
+32
+974.5703125
+13
+5426.853515625
+23
+1.2053346602064474e-13
+33
+974.5703125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5426.853515625
+20
+1.2053346602064474e-13
+30
+974.5703125
+11
+5451.861328125
+21
+1.3483680318115976e-13
+31
+1180.703125
+12
+5477.548828125
+22
+1.240072497812883e-13
+32
+1024.6328125
+13
+5477.548828125
+23
+1.240072497812883e-13
+33
+1024.6328125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5477.548828125
+20
+1.240072497812883e-13
+30
+1024.6328125
+11
+5451.861328125
+21
+1.3483680318115976e-13
+31
+1180.703125
+12
+5465.314453125
+22
+1.3423100521728348e-13
+32
+1171.97265625
+13
+5465.314453125
+23
+1.3423100521728348e-13
+33
+1171.97265625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5477.548828125
+20
+1.240072497812883e-13
+30
+1024.6328125
+11
+5465.314453125
+21
+1.3423100521728348e-13
+31
+1171.97265625
+12
+5498.126953125
+22
+1.2974159507156413e-13
+32
+1107.2734375
+13
+5498.126953125
+23
+1.2974159507156413e-13
+33
+1107.2734375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5063.431640625
+20
+1.1949263193505866e-13
+30
+959.5703125
+11
+5434.892578125
+21
+5.631888184975953e-15
+31
+-681.3359375
+12
+5027.783203125
+22
+1.1995450206053748e-13
+32
+966.2265625
+13
+5027.783203125
+23
+1.1995450206053748e-13
+33
+966.2265625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5434.892578125
+20
+5.631888184975953e-15
+30
+-681.3359375
+11
+5063.431640625
+21
+1.1949263193505866e-13
+31
+959.5703125
+12
+5190.603515625
+22
+1.2138402262495962e-13
+32
+986.828125
+13
+5190.603515625
+23
+1.2138402262495962e-13
+33
+986.828125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5434.892578125
+20
+5.631888184975953e-15
+30
+-681.3359375
+11
+5190.603515625
+21
+1.2138402262495962e-13
+31
+986.828125
+12
+5293.400390625
+22
+1.2737532383011452e-13
+32
+1073.171875
+13
+5293.400390625
+23
+1.2737532383011452e-13
+33
+1073.171875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5434.892578125
+20
+5.631888184975953e-15
+30
+-681.3359375
+11
+5293.400390625
+21
+1.2737532383011452e-13
+31
+1073.171875
+12
+5367.134765625
+22
+1.3252745255376563e-13
+32
+1147.421875
+13
+5367.134765625
+23
+1.3252745255376563e-13
+33
+1147.421875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5434.892578125
+20
+5.631888184975953e-15
+30
+-681.3359375
+11
+5367.134765625
+21
+1.3252745255376563e-13
+31
+1147.421875
+12
+5383.400390625
+22
+1.1767930380157665e-13
+32
+933.4375
+13
+5383.400390625
+23
+1.1767930380157665e-13
+33
+933.4375
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+5434.892578125
+20
+5.631888184975953e-15
+30
+-681.3359375
+11
+5383.400390625
+21
+1.1767930380157665e-13
+31
+933.4375
+12
+5394.580078125
+22
+1.1165385022798846e-13
+32
+846.6015625
+13
+5394.580078125
+23
+1.1165385022798846e-13
+33
+846.6015625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5434.892578125
+20
+5.631888184975953e-15
+30
+-681.3359375
+11
+5394.580078125
+21
+1.1165385022798846e-13
+31
+846.6015625
+12
+5406.111328125
+22
+1.1039834411225025e-13
+32
+828.5078125
+13
+5406.111328125
+23
+1.1039834411225025e-13
+33
+828.5078125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5434.892578125
+20
+5.631888184975953e-15
+30
+-681.3359375
+11
+5406.111328125
+21
+1.1039834411225025e-13
+31
+828.5078125
+12
+5625.134765625
+22
+4.098284211995207e-15
+32
+-703.4375
+13
+5625.134765625
+23
+4.098284211995207e-15
+33
+-703.4375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5625.134765625
+20
+4.098284211995207e-15
+30
+-703.4375
+11
+5406.111328125
+21
+1.1039834411225025e-13
+31
+828.5078125
+12
+5872.962890625
+22
+1.5368565794982025e-15
+32
+-740.3515625
+13
+5872.962890625
+23
+1.5368565794982025e-15
+33
+-740.3515625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5830.423828125
+20
+1.1485278873790694e-13
+30
+892.703125
+11
+5776.541015625
+21
+1.0952501926231317e-13
+31
+815.921875
+12
+5775.706477050341
+22
+1.0987827545937493e-13
+32
+821.0128333278517
+13
+5775.706477050341
+23
+1.0987827545937493e-13
+33
+821.0128333278517
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5776.541015625
+20
+1.0952501926231317e-13
+30
+815.921875
+11
+5830.423828125
+21
+1.1485278873790694e-13
+31
+892.703125
+12
+5817.134765625
+22
+1.092908315930563e-13
+32
+812.546875
+13
+5817.134765625
+23
+1.092908315930563e-13
+33
+812.546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5512.611328125
+20
+1.094632197384815e-13
+30
+815.03125
+11
+5872.962890625
+21
+1.5368565794982025e-15
+31
+-740.3515625
+12
+5406.111328125
+22
+1.1039834411225025e-13
+32
+828.5078125
+13
+5406.111328125
+23
+1.1039834411225025e-13
+33
+828.5078125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5512.611328125
+21
+1.094632197384815e-13
+31
+815.03125
+12
+5618.876953125
+22
+1.0943069367330693e-13
+32
+814.5625
+13
+5618.876953125
+23
+1.0943069367330693e-13
+33
+814.5625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5618.876953125
+21
+1.0943069367330693e-13
+31
+814.5625
+12
+5675.572265625
+22
+1.0778406162384457e-13
+32
+790.83203125
+13
+5675.572265625
+23
+1.0778406162384457e-13
+33
+790.83203125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5675.572265625
+21
+1.0778406162384457e-13
+31
+790.83203125
+12
+5702.759765625
+22
+1.083638387355812e-13
+32
+799.1875
+13
+5702.759765625
+23
+1.083638387355812e-13
+33
+799.1875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5702.759765625
+21
+1.083638387355812e-13
+31
+799.1875
+12
+5761.212890625
+22
+1.0856062142988732e-13
+32
+802.0234375
+13
+5761.212890625
+23
+1.0856062142988732e-13
+33
+802.0234375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5761.212890625
+21
+1.0856062142988732e-13
+31
+802.0234375
+12
+5776.541015625
+22
+1.0952501926231317e-13
+32
+815.921875
+13
+5776.541015625
+23
+1.0952501926231317e-13
+33
+815.921875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5776.541015625
+21
+1.0952501926231317e-13
+31
+815.921875
+12
+5817.134765625
+22
+1.092908315930563e-13
+32
+812.546875
+13
+5817.134765625
+23
+1.092908315930563e-13
+33
+812.546875
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5817.134765625
+21
+1.092908315930563e-13
+31
+812.546875
+12
+5827.048828125
+22
+1.0883058777083621e-13
+32
+805.9140625
+13
+5827.048828125
+23
+1.0883058777083621e-13
+33
+805.9140625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5827.048828125
+21
+1.0883058777083621e-13
+31
+805.9140625
+12
+5929.072265625
+22
+1.0939328869835618e-13
+32
+814.0234375
+13
+5929.072265625
+23
+1.0939328869835618e-13
+33
+814.0234375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5872.962890625
+20
+1.5368565794982025e-15
+30
+-740.3515625
+11
+5929.072265625
+21
+1.0939328869835618e-13
+31
+814.0234375
+12
+5953.236328125
+22
+2.3735896061138906e-15
+32
+-728.29296875
+13
+5953.236328125
+23
+2.3735896061138906e-15
+33
+-728.29296875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5953.236328125
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+5929.072265625
+21
+1.0939328869835618e-13
+31
+814.0234375
+12
+6098.876953125
+22
+1.06695251592126e-13
+32
+775.140625
+13
+6098.876953125
+23
+1.06695251592126e-13
+33
+775.140625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5953.236328125
+20
+2.3735896061138906e-15
+30
+-728.29296875
+11
+6098.876953125
+21
+1.06695251592126e-13
+31
+775.140625
+12
+6159.158203125
+22
+3.1599072317090027e-15
+32
+-716.9609375
+13
+6159.158203125
+23
+3.1599072317090027e-15
+33
+-716.9609375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6159.158203125
+20
+3.1599072317090027e-15
+30
+-716.9609375
+11
+6098.876953125
+21
+1.06695251592126e-13
+31
+775.140625
+12
+6489.462890625
+22
+4.2869353900076845e-15
+32
+-700.71875
+13
+6489.462890625
+23
+4.2869353900076845e-15
+33
+-700.71875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6159.158203125
+20
+3.1599072317090027e-15
+30
+-716.9609375
+11
+6489.462890625
+21
+4.2869353900076845e-15
+31
+-700.71875
+12
+6323.408203125
+22
+3.270495853302524e-15
+32
+-715.3671875
+13
+6323.408203125
+23
+3.270495853302524e-15
+33
+-715.3671875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5686.541015625
+20
+1.4015969374697734e-13
+30
+1257.4140625
+11
+5670.931640625
+21
+1.2962287493367697e-13
+31
+1105.5625
+12
+5632.330078125
+22
+1.3212819510374785e-13
+32
+1141.66796875
+13
+5632.330078125
+23
+1.3212819510374785e-13
+33
+1141.66796875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5670.931640625
+20
+1.2962287493367697e-13
+30
+1105.5625
+11
+5686.541015625
+21
+1.4015969374697734e-13
+31
+1257.4140625
+12
+5718.251953125
+22
+1.3974092065785482e-13
+32
+1251.37890625
+13
+5718.251953125
+23
+1.3974092065785482e-13
+33
+1251.37890625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5718.251953125
+20
+1.3974092065785482e-13
+30
+1251.37890625
+11
+5686.541015625
+21
+1.4015969374697734e-13
+31
+1257.4140625
+12
+5738.595703125
+22
+1.429943403269407e-13
+32
+1298.265625
+13
+5738.595703125
+23
+1.429943403269407e-13
+33
+1298.265625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5619.955078125
+20
+1.1556673586848865e-13
+30
+902.9921875
+11
+5675.572265625
+21
+1.0778406162384457e-13
+31
+790.83203125
+12
+5618.876953125
+22
+1.0943069367330693e-13
+32
+814.5625
+13
+5618.876953125
+23
+1.0943069367330693e-13
+33
+814.5625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5675.572265625
+20
+1.0778406162384457e-13
+30
+790.83203125
+11
+5619.955078125
+21
+1.1556673586848865e-13
+31
+902.9921875
+12
+5632.330078125
+22
+1.3212819510374785e-13
+32
+1141.66796875
+13
+5632.330078125
+23
+1.3212819510374785e-13
+33
+1141.66796875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5675.572265625
+20
+1.0778406162384457e-13
+30
+790.83203125
+11
+5632.330078125
+21
+1.3212819510374785e-13
+31
+1141.66796875
+12
+5671.798828125
+22
+1.0995680277750552e-13
+32
+822.14453125
+13
+5671.798828125
+23
+1.0995680277750552e-13
+33
+822.14453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5671.798828125
+20
+1.0995680277750552e-13
+30
+822.14453125
+11
+5632.330078125
+21
+1.3212819510374785e-13
+31
+1141.66796875
+12
+5670.931640625
+22
+1.2962287493367697e-13
+32
+1105.5625
+13
+5670.931640625
+23
+1.2962287493367697e-13
+33
+1105.5625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5831.830078125
+20
+1.2872515553485897e-13
+30
+1092.625
+11
+5755.048828125
+21
+1.1862255969163904e-13
+31
+947.03125
+12
+5749.072265625
+22
+1.237576122310735e-13
+32
+1021.03515625
+13
+5749.072265625
+23
+1.237576122310735e-13
+33
+1021.03515625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5755.048828125
+20
+1.1862255969163904e-13
+30
+947.03125
+11
+5831.830078125
+21
+1.2872515553485897e-13
+31
+1092.625
+12
+5775.706477050341
+22
+1.0987827545937493e-13
+32
+821.0128333278517
+13
+5775.706477050341
+23
+1.0987827545937493e-13
+33
+821.0128333278517
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5775.706477050341
+20
+1.0987827545937493e-13
+30
+821.0128333278517
+11
+5831.830078125
+21
+1.2872515553485897e-13
+31
+1092.625
+12
+5830.423828125
+22
+1.1485278873790694e-13
+32
+892.703125
+13
+5830.423828125
+23
+1.1485278873790694e-13
+33
+892.703125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5830.423828125
+20
+1.1485278873790694e-13
+30
+892.703125
+11
+5831.830078125
+21
+1.2872515553485897e-13
+31
+1092.625
+12
+5848.166015625
+22
+1.1660106474103982e-13
+32
+917.8984375
+13
+5848.166015625
+23
+1.1660106474103982e-13
+33
+917.8984375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5848.166015625
+20
+1.1660106474103982e-13
+30
+917.8984375
+11
+5831.830078125
+21
+1.2872515553485897e-13
+31
+1092.625
+12
+5855.197265625
+22
+1.305108365129426e-13
+32
+1118.359375
+13
+5855.197265625
+23
+1.305108365129426e-13
+33
+1118.359375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5848.166015625
+20
+1.1660106474103982e-13
+30
+917.8984375
+11
+5855.197265625
+21
+1.305108365129426e-13
+31
+1118.359375
+12
+5883.275390625
+22
+1.229534052696324e-13
+32
+1009.4453125
+13
+5883.275390625
+23
+1.229534052696324e-13
+33
+1009.4453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5883.275390625
+20
+1.229534052696324e-13
+30
+1009.4453125
+11
+5855.197265625
+21
+1.305108365129426e-13
+31
+1118.359375
+12
+5895.345703125
+22
+1.4309029221920566e-13
+32
+1299.6484375
+13
+5895.345703125
+23
+1.4309029221920566e-13
+33
+1299.6484375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+5883.275390625
+20
+1.229534052696324e-13
+30
+1009.4453125
+11
+5895.345703125
+21
+1.4309029221920566e-13
+31
+1299.6484375
+12
+5895.228515625
+22
+1.3310479021061417e-13
+32
+1155.7421875
+13
+5895.228515625
+23
+1.3310479021061417e-13
+33
+1155.7421875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5895.228515625
+20
+1.3310479021061417e-13
+30
+1155.7421875
+11
+5895.345703125
+21
+1.4309029221920566e-13
+31
+1299.6484375
+12
+5934.744140625
+22
+1.4248368110370002e-13
+32
+1290.90625
+13
+5934.744140625
+23
+1.4248368110370002e-13
+33
+1290.90625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+5934.744140625
+20
+1.4248368110370002e-13
+30
+1290.90625
+11
+5895.345703125
+21
+1.4309029221920566e-13
+31
+1299.6484375
+12
+5923.212890625
+22
+1.4416934443137186e-13
+32
+1315.19921875
+13
+5923.212890625
+23
+1.4416934443137186e-13
+33
+1315.19921875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5776.541015625
+20
+1.0952501926231317e-13
+30
+815.921875
+11
+5761.212890625
+21
+1.0856062142988732e-13
+31
+802.0234375
+12
+5775.706477050341
+22
+1.0987827545937493e-13
+32
+821.0128333278517
+13
+5775.706477050341
+23
+1.0987827545937493e-13
+33
+821.0128333278517
+70
+0
+ 0
+3DFACE
+ 8
+ship3
+10
+5980.189453125
+20
+1.2032204659701007e-13
+30
+971.5234375
+11
+5962.587890625
+21
+1.1635142719082503e-13
+31
+914.30078125
+12
+5962.330078125
+22
+1.185534418031431e-13
+32
+946.03515625
+13
+5962.330078125
+23
+1.185534418031431e-13
+33
+946.03515625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5962.587890625
+20
+1.1635142719082503e-13
+30
+914.30078125
+11
+5980.189453125
+21
+1.2032204659701007e-13
+31
+971.5234375
+12
+5974.447265625
+22
+1.1254425126214218e-13
+32
+859.43359375
+13
+5974.447265625
+23
+1.1254425126214218e-13
+33
+859.43359375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6071.689453125
+20
+1.2507085211249658e-13
+30
+1039.9609375
+11
+6067.541015625
+21
+1.0985190621731755e-13
+31
+820.6328125
+12
+6027.884765625
+22
+1.207814772676008e-13
+32
+978.14453125
+13
+6027.884765625
+23
+1.207814772676008e-13
+33
+978.14453125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6067.541015625
+20
+1.0985190621731755e-13
+30
+820.6328125
+11
+6071.689453125
+21
+1.2507085211249658e-13
+31
+1039.9609375
+12
+6079.611328125
+22
+1.1084720381165925e-13
+32
+834.9765625
+13
+6079.611328125
+23
+1.1084720381165925e-13
+33
+834.9765625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6079.611328125
+20
+1.1084720381165925e-13
+30
+834.9765625
+11
+6071.689453125
+21
+1.2507085211249658e-13
+31
+1039.9609375
+12
+6133.025390625
+22
+1.2375192016966796e-13
+32
+1020.953125
+13
+6133.025390625
+23
+1.2375192016966796e-13
+33
+1020.953125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6079.611328125
+20
+1.1084720381165925e-13
+30
+834.9765625
+11
+6133.025390625
+21
+1.2375192016966796e-13
+31
+1020.953125
+12
+6112.541015625
+22
+1.1489507262263388e-13
+32
+893.3125
+13
+6112.541015625
+23
+1.1489507262263388e-13
+33
+893.3125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6112.541015625
+20
+1.1489507262263388e-13
+30
+893.3125
+11
+6133.025390625
+21
+1.2375192016966796e-13
+31
+1020.953125
+12
+6153.134765625
+22
+1.214840402753714e-13
+32
+988.26953125
+13
+6153.134765625
+23
+1.214840402753714e-13
+33
+988.26953125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5974.447265625
+20
+1.1254425126214218e-13
+30
+859.43359375
+11
+6098.876953125
+21
+1.06695251592126e-13
+31
+775.140625
+12
+5929.072265625
+22
+1.0939328869835618e-13
+32
+814.0234375
+13
+5929.072265625
+23
+1.0939328869835618e-13
+33
+814.0234375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+6098.876953125
+20
+1.06695251592126e-13
+30
+775.140625
+11
+5974.447265625
+21
+1.1254425126214218e-13
+31
+859.43359375
+12
+6067.541015625
+22
+1.0985190621731755e-13
+32
+820.6328125
+13
+6067.541015625
+23
+1.0985190621731755e-13
+33
+820.6328125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6067.541015625
+20
+1.0985190621731755e-13
+30
+820.6328125
+11
+5974.447265625
+21
+1.1254425126214218e-13
+31
+859.43359375
+12
+5980.189453125
+22
+1.2032204659701007e-13
+32
+971.5234375
+13
+5980.189453125
+23
+1.2032204659701007e-13
+33
+971.5234375
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+6067.541015625
+20
+1.0985190621731755e-13
+30
+820.6328125
+11
+5980.189453125
+21
+1.2032204659701007e-13
+31
+971.5234375
+12
+6011.173828125
+22
+1.167149059691508e-13
+32
+919.5390625
+13
+6011.173828125
+23
+1.167149059691508e-13
+33
+919.5390625
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+6011.173828125
+20
+1.167149059691508e-13
+30
+919.5390625
+11
+5980.189453125
+21
+1.2032204659701007e-13
+31
+971.5234375
+12
+6000.533203125
+22
+1.1879006892728805e-13
+32
+949.4453125
+13
+6000.533203125
+23
+1.1879006892728805e-13
+33
+949.4453125
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+6067.541015625
+20
+1.0985190621731755e-13
+30
+820.6328125
+11
+6011.173828125
+21
+1.167149059691508e-13
+31
+919.5390625
+12
+6027.884765625
+22
+1.207814772676008e-13
+32
+978.14453125
+13
+6027.884765625
+23
+1.207814772676008e-13
+33
+978.14453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6230.173828125
+20
+1.2509849926789496e-13
+30
+1040.359375
+11
+6198.673828125
+21
+1.2471143909231763e-13
+31
+1034.78125
+12
+6185.689453125
+22
+1.2584497246365123e-13
+32
+1051.1171875
+13
+6185.689453125
+23
+1.2584497246365123e-13
+33
+1051.1171875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+6198.673828125
+20
+1.2471143909231763e-13
+30
+1034.78125
+11
+6230.173828125
+21
+1.2509849926789496e-13
+31
+1040.359375
+12
+6206.455078125
+22
+1.2310790407921157e-13
+32
+1011.671875
+13
+6206.455078125
+23
+1.2310790407921157e-13
+33
+1011.671875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6206.455078125
+20
+1.2310790407921157e-13
+30
+1011.671875
+11
+6230.173828125
+21
+1.2509849926789496e-13
+31
+1040.359375
+12
+6214.822265625
+22
+1.1754757323761966e-13
+32
+931.5390625
+13
+6214.822265625
+23
+1.1754757323761966e-13
+33
+931.5390625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6125.220703125
+20
+1.06686306924203e-13
+30
+775.01171875
+11
+6489.462890625
+21
+4.2869353900076845e-15
+31
+-700.71875
+12
+6098.876953125
+22
+1.06695251592126e-13
+32
+775.140625
+13
+6098.876953125
+23
+1.06695251592126e-13
+33
+775.140625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6125.220703125
+21
+1.06686306924203e-13
+31
+775.01171875
+12
+6186.205078125
+22
+1.1014220134900055e-13
+32
+824.81640625
+13
+6186.205078125
+23
+1.1014220134900055e-13
+33
+824.81640625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6186.205078125
+21
+1.1014220134900055e-13
+31
+824.81640625
+12
+6214.822265625
+22
+1.1754757323761966e-13
+32
+931.5390625
+13
+6214.822265625
+23
+1.1754757323761966e-13
+33
+931.5390625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6214.822265625
+21
+1.1754757323761966e-13
+31
+931.5390625
+12
+6230.173828125
+22
+1.2509849926789496e-13
+32
+1040.359375
+13
+6230.173828125
+23
+1.2509849926789496e-13
+33
+1040.359375
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6230.173828125
+21
+1.2509849926789496e-13
+31
+1040.359375
+12
+6280.376953125
+22
+1.245650717990321e-13
+32
+1032.671875
+13
+6280.376953125
+23
+1.245650717990321e-13
+33
+1032.671875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6280.376953125
+21
+1.245650717990321e-13
+31
+1032.671875
+12
+6371.361328125
+22
+1.2592628762658764e-13
+32
+1052.2890625
+13
+6371.361328125
+23
+1.2592628762658764e-13
+33
+1052.2890625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6371.361328125
+21
+1.2592628762658764e-13
+31
+1052.2890625
+12
+6471.275390625
+22
+1.2695085867958644e-13
+32
+1067.0546875
+13
+6471.275390625
+23
+1.2695085867958644e-13
+33
+1067.0546875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6471.275390625
+21
+1.2695085867958644e-13
+31
+1067.0546875
+12
+6564.509765625
+22
+1.2886989652488579e-13
+32
+1094.7109375
+13
+6564.509765625
+23
+1.2886989652488579e-13
+33
+1094.7109375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6489.462890625
+20
+4.2869353900076845e-15
+30
+-700.71875
+11
+6564.509765625
+21
+1.2886989652488579e-13
+31
+1094.7109375
+12
+6600.955078125
+22
+4.37069000783219e-15
+32
+-699.51171875
+13
+6600.955078125
+23
+4.37069000783219e-15
+33
+-699.51171875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6600.955078125
+20
+4.37069000783219e-15
+30
+-699.51171875
+11
+6564.509765625
+21
+1.2886989652488579e-13
+31
+1094.7109375
+12
+6579.978515625
+22
+1.2951228631208345e-13
+32
+1103.96875
+13
+6579.978515625
+23
+1.2951228631208345e-13
+33
+1103.96875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6600.955078125
+20
+4.37069000783219e-15
+30
+-699.51171875
+11
+6579.978515625
+21
+1.2951228631208345e-13
+31
+1103.96875
+12
+6660.298828125
+22
+1.3051571542271878e-13
+32
+1118.4296875
+13
+6660.298828125
+23
+1.3051571542271878e-13
+33
+1118.4296875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6600.955078125
+20
+4.37069000783219e-15
+30
+-699.51171875
+11
+6660.298828125
+21
+1.3051571542271878e-13
+31
+1118.4296875
+12
+6668.994140625
+22
+7.209402345942362e-15
+32
+-658.6015625
+13
+6668.994140625
+23
+7.209402345942362e-15
+33
+-658.6015625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6668.994140625
+20
+7.209402345942362e-15
+30
+-658.6015625
+11
+6660.298828125
+21
+1.3051571542271878e-13
+31
+1118.4296875
+12
+6702.884765625
+22
+1.2882761264015885e-13
+32
+1094.1015625
+13
+6702.884765625
+23
+1.2882761264015885e-13
+33
+1094.1015625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6668.994140625
+20
+7.209402345942362e-15
+30
+-658.6015625
+11
+6702.884765625
+21
+1.2882761264015885e-13
+31
+1094.1015625
+12
+6898.189453125
+22
+1.0768404397343279e-13
+32
+789.390625
+13
+6898.189453125
+23
+1.0768404397343279e-13
+33
+789.390625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6898.189453125
+20
+1.0768404397343279e-13
+30
+789.390625
+11
+6702.884765625
+21
+1.2882761264015885e-13
+31
+1094.1015625
+12
+6810.650390625
+22
+1.187933215338055e-13
+32
+949.4921875
+13
+6810.650390625
+23
+1.187933215338055e-13
+33
+949.4921875
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+6810.650390625
+20
+1.187933215338055e-13
+30
+949.4921875
+11
+6702.884765625
+21
+1.2882761264015885e-13
+31
+1094.1015625
+12
+6790.845703125
+22
+1.2270945978082315e-13
+32
+1005.9296875
+13
+6790.845703125
+23
+1.2270945978082315e-13
+33
+1005.9296875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6810.650390625
+20
+1.187933215338055e-13
+30
+949.4921875
+11
+6790.845703125
+21
+1.2270945978082315e-13
+31
+1005.9296875
+12
+6805.048828125
+22
+1.208766160082364e-13
+32
+979.515625
+13
+6805.048828125
+23
+1.208766160082364e-13
+33
+979.515625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+6898.189453125
+20
+1.0768404397343279e-13
+30
+789.390625
+11
+6810.650390625
+21
+1.187933215338055e-13
+31
+949.4921875
+12
+6849.767578125
+22
+1.1770451150208694e-13
+32
+933.80078125
+13
+6849.767578125
+23
+1.1770451150208694e-13
+33
+933.80078125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6898.189453125
+20
+1.0768404397343279e-13
+30
+789.390625
+11
+6849.767578125
+21
+1.1770451150208694e-13
+31
+933.80078125
+12
+6895.587890625
+22
+1.1760449385167515e-13
+32
+932.359375
+13
+6895.587890625
+23
+1.1760449385167515e-13
+33
+932.359375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6898.189453125
+20
+1.0768404397343279e-13
+30
+789.390625
+11
+6895.587890625
+21
+1.1760449385167515e-13
+31
+932.359375
+12
+6913.986328125
+22
+1.154252474849793e-13
+32
+900.953125
+13
+6913.986328125
+23
+1.154252474849793e-13
+33
+900.953125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6898.189453125
+20
+1.0768404397343279e-13
+30
+789.390625
+11
+6913.986328125
+21
+1.154252474849793e-13
+31
+900.953125
+12
+6910.400390625
+22
+1.1142779407502523e-13
+32
+843.34375
+13
+6910.400390625
+23
+1.1142779407502523e-13
+33
+843.34375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5965.564453125
+20
+1.4713978733343902e-13
+30
+1358.0078125
+11
+5954.876953125
+21
+1.4608919542830057e-13
+31
+1342.8671875
+12
+5949.017578125
+22
+1.472219156480048e-13
+32
+1359.19140625
+13
+5949.017578125
+23
+1.472219156480048e-13
+33
+1359.19140625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+5954.876953125
+20
+1.4608919542830057e-13
+30
+1342.8671875
+11
+5965.564453125
+21
+1.4713978733343902e-13
+31
+1358.0078125
+12
+6016.494140625
+22
+1.4014749647253688e-13
+32
+1257.23828125
+13
+6016.494140625
+23
+1.4014749647253688e-13
+33
+1257.23828125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6016.494140625
+20
+1.4014749647253688e-13
+30
+1257.23828125
+11
+5965.564453125
+21
+1.4713978733343902e-13
+31
+1358.0078125
+12
+5977.470703125
+22
+1.46954388761944e-13
+32
+1355.3359375
+13
+5977.470703125
+23
+1.46954388761944e-13
+33
+1355.3359375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6016.494140625
+20
+1.4014749647253688e-13
+30
+1257.23828125
+11
+5977.470703125
+21
+1.46954388761944e-13
+31
+1355.3359375
+12
+6035.080078125
+22
+1.457257166499748e-13
+32
+1337.62890625
+13
+6035.080078125
+23
+1.457257166499748e-13
+33
+1337.62890625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6016.494140625
+20
+1.4014749647253688e-13
+30
+1257.23828125
+11
+6035.080078125
+21
+1.457257166499748e-13
+31
+1337.62890625
+12
+6028.330078125
+22
+1.373315523800489e-13
+32
+1216.65625
+13
+6028.330078125
+23
+1.373315523800489e-13
+33
+1216.65625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6028.330078125
+20
+1.373315523800489e-13
+30
+1216.65625
+11
+6035.080078125
+21
+1.457257166499748e-13
+31
+1337.62890625
+12
+6093.603515625
+22
+1.2921304651247745e-13
+32
+1099.65625
+13
+6093.603515625
+23
+1.2921304651247745e-13
+33
+1099.65625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6093.603515625
+20
+1.2921304651247745e-13
+30
+1099.65625
+11
+6035.080078125
+21
+1.457257166499748e-13
+31
+1337.62890625
+12
+6053.548828125
+22
+1.4128997451179348e-13
+32
+1273.703125
+13
+6053.548828125
+23
+1.4128997451179348e-13
+33
+1273.703125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6093.603515625
+20
+1.2921304651247745e-13
+30
+1099.65625
+11
+6053.548828125
+21
+1.4128997451179348e-13
+31
+1273.703125
+12
+6083.408203125
+22
+1.3345119280472328e-13
+32
+1160.734375
+13
+6083.408203125
+23
+1.3345119280472328e-13
+33
+1160.734375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6093.603515625
+20
+1.2921304651247745e-13
+30
+1099.65625
+11
+6083.408203125
+21
+1.3345119280472328e-13
+31
+1160.734375
+12
+6147.978515625
+22
+1.289943087241785e-13
+32
+1096.50390625
+13
+6147.978515625
+23
+1.289943087241785e-13
+33
+1096.50390625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+6093.603515625
+20
+1.2921304651247745e-13
+30
+1099.65625
+11
+6147.978515625
+21
+1.289943087241785e-13
+31
+1096.50390625
+12
+6185.689453125
+22
+1.2584497246365123e-13
+32
+1051.1171875
+13
+6185.689453125
+23
+1.2584497246365123e-13
+33
+1051.1171875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6185.689453125
+20
+1.2584497246365123e-13
+30
+1051.1171875
+11
+6147.978515625
+21
+1.289943087241785e-13
+31
+1096.50390625
+12
+6230.173828125
+22
+1.2509849926789496e-13
+32
+1040.359375
+13
+6230.173828125
+23
+1.2509849926789496e-13
+33
+1040.359375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+6898.189453125
+20
+1.0768404397343279e-13
+30
+789.390625
+11
+6706.611328125
+21
+7.065474507544911e-15
+31
+-660.67578125
+12
+6668.994140625
+22
+7.209402345942362e-15
+32
+-658.6015625
+13
+6668.994140625
+23
+7.209402345942362e-15
+33
+-658.6015625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+6706.611328125
+20
+7.065474507544911e-15
+30
+-660.67578125
+11
+6898.189453125
+21
+1.0768404397343279e-13
+31
+789.390625
+12
+6833.455078125
+22
+5.104965929147998e-15
+32
+-688.9296875
+13
+6833.455078125
+23
+5.104965929147998e-15
+33
+-688.9296875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+6833.455078125
+20
+5.104965929147998e-15
+30
+-688.9296875
+11
+6898.189453125
+21
+1.0768404397343279e-13
+31
+789.390625
+12
+7019.314453125
+22
+5.88152573519074e-15
+32
+-677.73828125
+13
+7019.314453125
+23
+5.88152573519074e-15
+33
+-677.73828125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+7019.314453125
+20
+5.88152573519074e-15
+30
+-677.73828125
+11
+6898.189453125
+21
+1.0768404397343279e-13
+31
+789.390625
+12
+6978.439453125
+22
+1.0448022655373812e-13
+32
+743.21875
+13
+6978.439453125
+23
+1.0448022655373812e-13
+33
+743.21875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7019.314453125
+20
+5.88152573519074e-15
+30
+-677.73828125
+11
+6978.439453125
+21
+1.0448022655373812e-13
+31
+743.21875
+12
+7631.173828125
+22
+1.0610002459943146e-14
+32
+-609.59375
+13
+7631.173828125
+23
+1.0610002459943146e-14
+33
+-609.59375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7019.314453125
+20
+5.88152573519074e-15
+30
+-677.73828125
+11
+7631.173828125
+21
+1.0610002459943146e-14
+31
+-609.59375
+12
+7481.619140625
+22
+7.007740741860058e-15
+32
+-661.5078125
+13
+7481.619140625
+23
+7.007740741860058e-15
+33
+-661.5078125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+7481.619140625
+20
+7.007740741860058e-15
+30
+-661.5078125
+11
+7631.173828125
+21
+1.0610002459943146e-14
+31
+-609.59375
+12
+7608.345703125
+22
+1.0053806745458083e-14
+32
+-617.609375
+13
+7608.345703125
+23
+1.0053806745458083e-14
+33
+-617.609375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7481.619140625
+20
+7.007740741860058e-15
+30
+-661.5078125
+11
+7608.345703125
+21
+1.0053806745458083e-14
+31
+-617.609375
+12
+7568.126953125
+22
+7.964007057992273e-15
+32
+-647.7265625
+13
+7568.126953125
+23
+7.964007057992273e-15
+33
+-647.7265625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7503.931640625
+20
+1.1410143663237449e-13
+30
+881.875
+11
+7514.666015625
+21
+1.0485671575813371e-13
+31
+748.64453125
+12
+7477.095703125
+22
+1.0572109594014778e-13
+32
+761.1015625
+13
+7477.095703125
+23
+1.0572109594014778e-13
+33
+761.1015625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7514.666015625
+20
+1.0485671575813371e-13
+30
+748.64453125
+11
+7503.931640625
+21
+1.1410143663237449e-13
+31
+881.875
+12
+7518.416015625
+22
+1.1967803050655368e-13
+32
+962.2421875
+13
+7518.416015625
+23
+1.1967803050655368e-13
+33
+962.2421875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7514.666015625
+20
+1.0485671575813371e-13
+30
+748.64453125
+11
+7518.416015625
+21
+1.1967803050655368e-13
+31
+962.2421875
+12
+7531.658203125
+22
+1.1311752316084389e-13
+32
+867.6953125
+13
+7531.658203125
+23
+1.1311752316084389e-13
+33
+867.6953125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+7531.658203125
+20
+1.1311752316084389e-13
+30
+867.6953125
+11
+7518.416015625
+21
+1.1967803050655368e-13
+31
+962.2421875
+12
+7541.876953125
+22
+1.218174324434107e-13
+32
+993.07421875
+13
+7541.876953125
+23
+1.218174324434107e-13
+33
+993.07421875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7980.814453125
+20
+1.0394192017509907e-13
+30
+735.4609375
+11
+8364.134765625
+21
+2.2229126091927176e-14
+31
+-442.14453125
+12
+7631.173828125
+22
+1.0610002459943146e-14
+32
+-609.59375
+13
+7631.173828125
+23
+1.0610002459943146e-14
+33
+-609.59375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+8364.134765625
+20
+2.2229126091927176e-14
+30
+-442.14453125
+11
+7980.814453125
+21
+1.0394192017509907e-13
+31
+735.4609375
+12
+8441.126953125
+22
+5.582448565910614e-14
+32
+42.015625
+13
+8441.126953125
+23
+5.582448565910614e-14
+33
+42.015625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8364.134765625
+20
+2.2229126091927176e-14
+30
+-442.14453125
+11
+8441.126953125
+21
+5.582448565910614e-14
+31
+42.015625
+12
+8392.048828125
+22
+2.6903121657512186e-14
+32
+-374.78515625
+13
+8392.048828125
+23
+2.6903121657512186e-14
+33
+-374.78515625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8392.048828125
+20
+2.6903121657512186e-14
+30
+-374.78515625
+11
+8441.126953125
+21
+5.582448565910614e-14
+31
+42.015625
+12
+8433.111328125
+22
+4.7155476138455166e-14
+32
+-82.91796875
+13
+8433.111328125
+23
+4.7155476138455166e-14
+33
+-82.91796875
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+8392.048828125
+20
+2.6903121657512186e-14
+30
+-374.78515625
+11
+8433.111328125
+21
+4.7155476138455166e-14
+31
+-82.91796875
+12
+8426.970703125
+22
+3.596894917329285e-14
+32
+-244.1328125
+13
+8426.970703125
+23
+3.596894917329285e-14
+33
+-244.1328125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8433.111328125
+20
+4.7155476138455166e-14
+30
+-82.91796875
+11
+8441.126953125
+21
+5.582448565910614e-14
+31
+42.015625
+12
+8450.853515625
+22
+5.489911910488976e-14
+32
+28.6796875
+13
+8450.853515625
+23
+5.489911910488976e-14
+33
+28.6796875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+8433.111328125
+20
+4.7155476138455166e-14
+30
+-82.91796875
+11
+8442.345703125
+21
+3.874342253268326e-14
+31
+-204.1484375
+12
+8426.970703125
+22
+3.596894917329285e-14
+32
+-244.1328125
+13
+8426.970703125
+23
+3.596894917329285e-14
+33
+-244.1328125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8442.345703125
+20
+3.874342253268326e-14
+30
+-204.1484375
+11
+8433.111328125
+21
+4.7155476138455166e-14
+31
+-82.91796875
+12
+8435.994140625
+22
+4.632362202161566e-14
+32
+-94.90625
+13
+8435.994140625
+23
+4.632362202161566e-14
+33
+-94.90625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7103.408203125
+20
+1.0787350830307463e-13
+30
+792.12109375
+11
+7631.173828125
+21
+1.0610002459943146e-14
+31
+-609.59375
+12
+6978.439453125
+22
+1.0448022655373812e-13
+32
+743.21875
+13
+6978.439453125
+23
+1.0448022655373812e-13
+33
+743.21875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7103.408203125
+21
+1.0787350830307463e-13
+31
+792.12109375
+12
+7145.501953125
+22
+1.0850370081583183e-13
+32
+801.203125
+13
+7145.501953125
+23
+1.0850370081583183e-13
+33
+801.203125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7145.501953125
+21
+1.0850370081583183e-13
+31
+801.203125
+12
+7277.314453125
+22
+1.0852646906145402e-13
+32
+801.53125
+13
+7277.314453125
+23
+1.0852646906145402e-13
+33
+801.53125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7277.314453125
+21
+1.0852646906145402e-13
+31
+801.53125
+12
+7409.619140625
+22
+1.0638462766970891e-13
+32
+770.6640625
+13
+7409.619140625
+23
+1.0638462766970891e-13
+33
+770.6640625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7409.619140625
+21
+1.0638462766970891e-13
+31
+770.6640625
+12
+7460.056640625
+22
+1.0491282322055984e-13
+32
+749.453125
+13
+7460.056640625
+23
+1.0491282322055984e-13
+33
+749.453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7460.056640625
+21
+1.0491282322055984e-13
+31
+749.453125
+12
+7477.095703125
+22
+1.0572109594014778e-13
+32
+761.1015625
+13
+7477.095703125
+23
+1.0572109594014778e-13
+33
+761.1015625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7477.095703125
+21
+1.0572109594014778e-13
+31
+761.1015625
+12
+7514.666015625
+22
+1.0485671575813371e-13
+32
+748.64453125
+13
+7514.666015625
+23
+1.0485671575813371e-13
+33
+748.64453125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7514.666015625
+21
+1.0485671575813371e-13
+31
+748.64453125
+12
+7593.884765625
+22
+1.0480223459896632e-13
+32
+747.859375
+13
+7593.884765625
+23
+1.0480223459896632e-13
+33
+747.859375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7593.884765625
+21
+1.0480223459896632e-13
+31
+747.859375
+12
+7944.533203125
+22
+1.0394761223650462e-13
+32
+735.54296875
+13
+7944.533203125
+23
+1.0394761223650462e-13
+33
+735.54296875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7631.173828125
+20
+1.0610002459943146e-14
+30
+-609.59375
+11
+7944.533203125
+21
+1.0394761223650462e-13
+31
+735.54296875
+12
+7980.814453125
+22
+1.0394192017509907e-13
+32
+735.4609375
+13
+7980.814453125
+23
+1.0394192017509907e-13
+33
+735.4609375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+8454.322265625
+20
+7.908956692684321e-14
+30
+377.30078125
+11
+8438.900390625
+21
+5.876402879925746e-14
+31
+84.37890625
+12
+8360.736328125
+22
+8.659739592076221e-14
+32
+485.5
+13
+8360.736328125
+23
+8.659739592076221e-14
+33
+485.5
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8438.900390625
+20
+5.876402879925746e-14
+30
+84.37890625
+11
+8454.322265625
+21
+7.908956692684321e-14
+31
+377.30078125
+12
+8467.541015625
+22
+6.384703963441263e-14
+32
+157.6328125
+13
+8467.541015625
+23
+6.384703963441263e-14
+33
+157.6328125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8467.541015625
+20
+6.384703963441263e-14
+30
+157.6328125
+11
+8454.322265625
+21
+7.908956692684321e-14
+31
+377.30078125
+12
+8508.158203125
+22
+7.652407353619939e-14
+32
+340.328125
+13
+8508.158203125
+23
+7.652407353619939e-14
+33
+340.328125
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8467.541015625
+20
+6.384703963441263e-14
+30
+157.6328125
+11
+8508.158203125
+21
+7.652407353619939e-14
+31
+340.328125
+12
+8522.525390625
+22
+7.012700966799179e-14
+32
+248.13671875
+13
+8522.525390625
+23
+7.012700966799179e-14
+33
+248.13671875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8522.525390625
+20
+7.012700966799179e-14
+30
+248.13671875
+11
+8508.158203125
+21
+7.652407353619939e-14
+31
+340.328125
+12
+8526.861328125
+22
+7.637445363639639e-14
+32
+338.171875
+13
+8526.861328125
+23
+7.637445363639639e-14
+33
+338.171875
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7820.783203125
+20
+1.1489507262263388e-13
+30
+893.3125
+11
+7808.009765625
+21
+1.1054633770879452e-13
+31
+830.640625
+12
+7807.939453125
+22
+1.1373551839916063e-13
+32
+876.6015625
+13
+7807.939453125
+23
+1.1373551839916063e-13
+33
+876.6015625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7808.009765625
+20
+1.1054633770879452e-13
+30
+830.640625
+11
+7820.783203125
+21
+1.1489507262263388e-13
+31
+893.3125
+12
+7821.791015625
+22
+1.0946159343522277e-13
+32
+815.0078125
+13
+7821.791015625
+23
+1.0946159343522277e-13
+33
+815.0078125
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+7821.791015625
+20
+1.0946159343522277e-13
+30
+815.0078125
+11
+7820.783203125
+21
+1.1489507262263388e-13
+31
+893.3125
+12
+7915.189453125
+22
+1.1681085786141576e-13
+32
+920.921875
+13
+7915.189453125
+23
+1.1681085786141576e-13
+33
+920.921875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7821.791015625
+20
+1.0946159343522277e-13
+30
+815.0078125
+11
+7915.189453125
+21
+1.1681085786141576e-13
+31
+920.921875
+12
+7862.197265625
+22
+1.0857200555269841e-13
+32
+802.1875
+13
+7862.197265625
+23
+1.0857200555269841e-13
+33
+802.1875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+7862.197265625
+20
+1.0857200555269841e-13
+30
+802.1875
+11
+7915.189453125
+21
+1.1681085786141576e-13
+31
+920.921875
+12
+7980.814453125
+22
+1.0394192017509907e-13
+32
+735.4609375
+13
+7980.814453125
+23
+1.0394192017509907e-13
+33
+735.4609375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+7980.814453125
+20
+1.0394192017509907e-13
+30
+735.4609375
+11
+7915.189453125
+21
+1.1681085786141576e-13
+31
+920.921875
+12
+8066.712890625
+22
+1.1674092682129045e-13
+32
+919.9140625
+13
+8066.712890625
+23
+1.1674092682129045e-13
+33
+919.9140625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+7980.814453125
+20
+1.0394192017509907e-13
+30
+735.4609375
+11
+8066.712890625
+21
+1.1674092682129045e-13
+31
+919.9140625
+12
+8441.126953125
+22
+5.582448565910614e-14
+32
+42.015625
+13
+8441.126953125
+23
+5.582448565910614e-14
+33
+42.015625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8441.126953125
+20
+5.582448565910614e-14
+30
+42.015625
+11
+8066.712890625
+21
+1.1674092682129045e-13
+31
+919.9140625
+12
+8167.306640625
+22
+1.1602535338745001e-13
+32
+909.6015625
+13
+8167.306640625
+23
+1.1602535338745001e-13
+33
+909.6015625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8441.126953125
+20
+5.582448565910614e-14
+30
+42.015625
+11
+8167.306640625
+21
+1.1602535338745001e-13
+31
+909.6015625
+12
+8214.697265625
+22
+1.1340212623112134e-13
+32
+871.796875
+13
+8214.697265625
+23
+1.1340212623112134e-13
+33
+871.796875
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8441.126953125
+20
+5.582448565910614e-14
+30
+42.015625
+11
+8214.697265625
+21
+1.1340212623112134e-13
+31
+871.796875
+12
+8307.650390625
+22
+9.394015513392029e-14
+32
+591.3203125
+13
+8307.650390625
+23
+9.394015513392029e-14
+33
+591.3203125
+70
+15
+ 0
+3DFACE
+ 8
+ship3
+10
+8307.650390625
+20
+9.394015513392029e-14
+30
+591.3203125
+11
+8214.697265625
+21
+1.1340212623112134e-13
+31
+871.796875
+12
+8302.212890625
+22
+1.0023882765497483e-13
+32
+682.09375
+13
+8302.212890625
+23
+1.0023882765497483e-13
+33
+682.09375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8302.212890625
+20
+1.0023882765497483e-13
+30
+682.09375
+11
+8214.697265625
+21
+1.1340212623112134e-13
+31
+871.796875
+12
+8301.251953125
+22
+1.0215136028723926e-13
+32
+709.65625
+13
+8301.251953125
+23
+1.0215136028723926e-13
+33
+709.65625
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+8441.126953125
+20
+5.582448565910614e-14
+30
+42.015625
+11
+8307.650390625
+21
+9.394015513392029e-14
+31
+591.3203125
+12
+8336.056640625
+22
+8.830826694894434e-14
+32
+510.15625
+13
+8336.056640625
+23
+8.830826694894434e-14
+33
+510.15625
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8441.126953125
+20
+5.582448565910614e-14
+30
+42.015625
+11
+8336.056640625
+21
+8.830826694894434e-14
+31
+510.15625
+12
+8360.736328125
+22
+8.659739592076221e-14
+32
+485.5
+13
+8360.736328125
+23
+8.659739592076221e-14
+33
+485.5
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8441.126953125
+20
+5.582448565910614e-14
+30
+42.015625
+11
+8360.736328125
+21
+8.659739592076221e-14
+31
+485.5
+12
+8438.900390625
+22
+5.876402879925746e-14
+32
+84.37890625
+13
+8438.900390625
+23
+5.876402879925746e-14
+33
+84.37890625
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8364.134765625
+20
+2.2229126091927176e-14
+30
+-442.14453125
+11
+7810.587890625
+21
+1.1389001720873981e-14
+31
+-598.3671875
+12
+7631.173828125
+22
+1.0610002459943146e-14
+32
+-609.59375
+13
+7631.173828125
+23
+1.0610002459943146e-14
+33
+-609.59375
+70
+1
+ 0
+3DFACE
+ 8
+ship3
+10
+7810.587890625
+20
+1.1389001720873981e-14
+30
+-598.3671875
+11
+8364.134765625
+21
+2.2229126091927176e-14
+31
+-442.14453125
+12
+8021.150390625
+22
+1.1512600768537329e-14
+32
+-596.5859375
+13
+8021.150390625
+23
+1.1512600768537329e-14
+33
+-596.5859375
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8021.150390625
+20
+1.1512600768537329e-14
+30
+-596.5859375
+11
+8364.134765625
+21
+2.2229126091927176e-14
+31
+-442.14453125
+12
+8233.283203125
+22
+1.2494887936809196e-14
+32
+-582.4296875
+13
+8233.283203125
+23
+1.2494887936809196e-14
+33
+-582.4296875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8233.283203125
+20
+1.2494887936809196e-14
+30
+-582.4296875
+11
+8364.134765625
+21
+2.2229126091927176e-14
+31
+-442.14453125
+12
+8305.681640625
+22
+1.2489195875403647e-14
+32
+-582.51171875
+13
+8305.681640625
+23
+1.2489195875403647e-14
+33
+-582.51171875
+70
+3
+ 0
+3DFACE
+ 8
+ship3
+10
+8305.681640625
+20
+1.2489195875403647e-14
+30
+-582.51171875
+11
+8364.134765625
+21
+2.2229126091927176e-14
+31
+-442.14453125
+12
+8370.884765625
+22
+1.8468299806118083e-14
+32
+-496.34375
+13
+8370.884765625
+23
+1.8468299806118083e-14
+33
+-496.34375
+70
+13
+ 0
+3DFACE
+ 8
+ship3
+10
+8305.681640625
+20
+1.2489195875403647e-14
+30
+-582.51171875
+11
+8370.884765625
+21
+1.8468299806118083e-14
+31
+-496.34375
+12
+8387.408203125
+22
+1.3008799766567325e-14
+32
+-575.0234375
+13
+8387.408203125
+23
+1.3008799766567325e-14
+33
+-575.0234375
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2331.0584563925167
+20
+7.363034515030426e-14
+30
+-268.24057302868596
+11
+700.505859375
+21
+7.840169485850979e-14
+31
+-199.47817697131404
+12
+1864.236328125
+22
+1.119913623642832e-13
+32
+284.59994802868596
+13
+1864.236328125
+23
+1.119913623642832e-13
+33
+284.59994802868596
+70
+0
+ 0
+3DFACE
+ 8
+ship2
+10
+66.111328125
+20
+9.34303632724176e-14
+30
+17.107760528685958
+11
+5.126953125
+21
+8.912553854656391e-14
+31
+-44.93130197131404
+12
+-7.740234375
+22
+8.981346482500596e-14
+32
+-35.01723947131404
+13
+-7.740234375
+23
+8.981346482500596e-14
+33
+-35.01723947131404
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5.126953125
+20
+8.912553854656391e-14
+30
+-44.93130197131404
+11
+66.111328125
+21
+9.34303632724176e-14
+31
+17.107760528685958
+12
+446.619140625
+22
+8.256665750411285e-14
+32
+-139.45473947131404
+13
+446.619140625
+23
+8.256665750411285e-14
+33
+-139.45473947131404
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+446.619140625
+20
+8.256665750411285e-14
+30
+-139.45473947131404
+11
+66.111328125
+21
+9.34303632724176e-14
+31
+17.107760528685958
+12
+94.939453125
+22
+9.419472580401989e-14
+32
+28.123385528685958
+13
+94.939453125
+23
+9.419472580401989e-14
+33
+28.123385528685958
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+446.619140625
+20
+8.256665750411285e-14
+30
+-139.45473947131404
+11
+94.939453125
+21
+9.419472580401989e-14
+31
+28.123385528685958
+12
+293.431640625
+22
+9.700172522858486e-14
+32
+68.57651052868596
+13
+293.431640625
+23
+9.700172522858486e-14
+33
+68.57651052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+446.619140625
+20
+8.256665750411285e-14
+30
+-139.45473947131404
+11
+293.431640625
+21
+9.700172522858486e-14
+31
+68.57651052868596
+12
+310.025390625
+22
+9.70098567448785e-14
+32
+68.69369802868596
+13
+310.025390625
+23
+9.70098567448785e-14
+33
+68.69369802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+446.619140625
+20
+8.256665750411285e-14
+30
+-139.45473947131404
+11
+310.025390625
+21
+9.70098567448785e-14
+31
+68.69369802868596
+12
+387.814453125
+22
+9.596414374951623e-14
+32
+53.62338552868596
+13
+387.814453125
+23
+9.596414374951623e-14
+33
+53.62338552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+446.619140625
+20
+8.256665750411285e-14
+30
+-139.45473947131404
+11
+387.814453125
+21
+9.596414374951623e-14
+31
+53.62338552868596
+12
+392.994140625
+22
+9.569905631834352e-14
+32
+49.80307302868596
+13
+392.994140625
+23
+9.569905631834352e-14
+33
+49.80307302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+446.619140625
+20
+8.256665750411285e-14
+30
+-139.45473947131404
+11
+392.994140625
+21
+9.569905631834352e-14
+31
+49.80307302868596
+12
+700.505859375
+22
+7.840169485850979e-14
+32
+-199.47817697131404
+13
+700.505859375
+23
+7.840169485850979e-14
+33
+-199.47817697131404
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+446.619140625
+20
+8.256665750411285e-14
+30
+-139.45473947131404
+11
+700.505859375
+21
+7.840169485850979e-14
+31
+-199.47817697131404
+12
+482.173828125
+22
+8.169170635091705e-14
+32
+-152.06411447131404
+13
+482.173828125
+23
+8.169170635091705e-14
+33
+-152.06411447131404
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+472.728515625
+20
+1.0123174000453705e-13
+30
+129.53744802868596
+11
+700.505859375
+21
+7.840169485850979e-14
+31
+-199.47817697131404
+12
+392.994140625
+22
+9.569905631834352e-14
+32
+49.80307302868596
+13
+392.994140625
+23
+9.569905631834352e-14
+33
+49.80307302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+700.505859375
+20
+7.840169485850979e-14
+30
+-199.47817697131404
+11
+472.728515625
+21
+1.0123174000453705e-13
+31
+129.53744802868596
+12
+975.181640625
+22
+1.0497223749961204e-13
+32
+183.44369802868596
+13
+975.181640625
+23
+1.0497223749961204e-13
+33
+183.44369802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+700.505859375
+20
+7.840169485850979e-14
+30
+-199.47817697131404
+11
+975.181640625
+21
+1.0497223749961204e-13
+31
+183.44369802868596
+12
+1864.236328125
+22
+1.119913623642832e-13
+32
+284.59994802868596
+13
+1864.236328125
+23
+1.119913623642832e-13
+33
+284.59994802868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+1864.236328125
+20
+1.119913623642832e-13
+30
+284.59994802868596
+11
+975.181640625
+21
+1.0497223749961204e-13
+31
+183.44369802868596
+12
+985.259765625
+22
+1.0549753345218127e-13
+32
+191.01401052868596
+13
+985.259765625
+23
+1.0549753345218127e-13
+33
+191.01401052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1864.236328125
+20
+1.119913623642832e-13
+30
+284.59994802868596
+11
+985.259765625
+21
+1.0549753345218127e-13
+31
+191.01401052868596
+12
+1157.935546875
+22
+1.0952751292730989e-13
+32
+249.09213552868596
+13
+1157.935546875
+23
+1.0952751292730989e-13
+33
+249.09213552868596
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+1157.935546875
+20
+1.0952751292730989e-13
+30
+249.09213552868596
+11
+985.259765625
+21
+1.0549753345218127e-13
+31
+191.01401052868596
+12
+1050.064453125
+22
+1.1318181634967228e-13
+32
+301.75619802868596
+13
+1050.064453125
+23
+1.1318181634967228e-13
+33
+301.75619802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1157.935546875
+20
+1.0952751292730989e-13
+30
+249.09213552868596
+11
+1050.064453125
+21
+1.1318181634967228e-13
+31
+301.75619802868596
+12
+1073.572265625
+22
+1.1426005541020912e-13
+32
+317.29526052868596
+13
+1073.572265625
+23
+1.1426005541020912e-13
+33
+317.29526052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1157.935546875
+20
+1.0952751292730989e-13
+30
+249.09213552868596
+11
+1073.572265625
+21
+1.1426005541020912e-13
+31
+317.29526052868596
+12
+1100.572265625
+22
+1.1476420942041488e-13
+32
+324.56088552868596
+13
+1100.572265625
+23
+1.1476420942041488e-13
+33
+324.56088552868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+1864.236328125
+20
+1.119913623642832e-13
+30
+284.59994802868596
+11
+1157.935546875
+21
+1.0952751292730989e-13
+31
+249.09213552868596
+12
+1276.798828125
+22
+1.101959235666472e-13
+32
+258.72494802868596
+13
+1276.798828125
+23
+1.101959235666472e-13
+33
+258.72494802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1864.236328125
+20
+1.119913623642832e-13
+30
+284.59994802868596
+11
+1276.798828125
+21
+1.101959235666472e-13
+31
+258.72494802868596
+12
+1330.564453125
+22
+1.1096028609824948e-13
+32
+269.74057302868596
+13
+1330.564453125
+23
+1.1096028609824948e-13
+33
+269.74057302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1864.236328125
+20
+1.119913623642832e-13
+30
+284.59994802868596
+11
+1330.564453125
+21
+1.1096028609824948e-13
+31
+269.74057302868596
+12
+1634.033203125
+22
+1.124288379408811e-13
+32
+290.90463552868596
+13
+1634.033203125
+23
+1.124288379408811e-13
+33
+290.90463552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1864.236328125
+20
+1.119913623642832e-13
+30
+284.59994802868596
+11
+1634.033203125
+21
+1.124288379408811e-13
+31
+290.90463552868596
+12
+1836.697265625
+22
+1.1236703841704943e-13
+32
+290.01401052868596
+13
+1836.697265625
+23
+1.1236703841704943e-13
+33
+290.01401052868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+1836.697265625
+20
+1.1236703841704943e-13
+30
+290.01401052868596
+11
+1634.033203125
+21
+1.124288379408811e-13
+31
+290.90463552868596
+12
+1695.451171875
+22
+1.1434462317966299e-13
+32
+318.51401052868596
+13
+1695.451171875
+23
+1.1434462317966299e-13
+33
+318.51401052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1836.697265625
+20
+1.1236703841704943e-13
+30
+290.01401052868596
+11
+1695.451171875
+21
+1.1434462317966299e-13
+31
+318.51401052868596
+12
+1742.830078125
+22
+1.1559037147584883e-13
+32
+336.46713552868596
+13
+1742.830078125
+23
+1.1559037147584883e-13
+33
+336.46713552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1836.697265625
+20
+1.1236703841704943e-13
+30
+290.01401052868596
+11
+1742.830078125
+21
+1.1559037147584883e-13
+31
+336.46713552868596
+12
+1751.783203125
+22
+1.1558061365629646e-13
+32
+336.32651052868596
+13
+1751.783203125
+23
+1.1558061365629646e-13
+33
+336.32651052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+1270.072265625
+20
+1.576384422302679e-13
+30
+942.443698028686
+11
+1344.029296875
+21
+1.5709363063859394e-13
+31
+934.592135528686
+12
+1276.798828125
+22
+1.101959235666472e-13
+32
+258.72494802868596
+13
+1276.798828125
+23
+1.101959235666472e-13
+33
+258.72494802868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+1344.029296875
+20
+1.5709363063859394e-13
+30
+934.592135528686
+11
+1270.072265625
+21
+1.576384422302679e-13
+31
+942.443698028686
+12
+1365.146484375
+22
+1.5908422582727733e-13
+32
+963.279635528686
+13
+1365.146484375
+23
+1.5908422582727733e-13
+33
+963.279635528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+1365.146484375
+20
+1.5908422582727733e-13
+30
+963.279635528686
+11
+1270.072265625
+21
+1.576384422302679e-13
+31
+942.443698028686
+12
+1423.728515625
+22
+1.6458926235807247e-13
+32
+1042.615573028686
+13
+1423.728515625
+23
+1.6458926235807247e-13
+33
+1042.615573028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+1276.798828125
+20
+1.101959235666472e-13
+30
+258.72494802868596
+11
+1344.029296875
+21
+1.5709363063859394e-13
+31
+934.592135528686
+12
+1330.564453125
+22
+1.1096028609824948e-13
+32
+269.74057302868596
+13
+1330.564453125
+23
+1.1096028609824948e-13
+33
+269.74057302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+1365.146484375
+20
+1.5908422582727733e-13
+30
+963.279635528686
+11
+1423.728515625
+21
+1.6458926235807247e-13
+31
+1042.615573028686
+12
+1424.736328125
+22
+1.6092682741941644e-13
+32
+989.834323028686
+13
+1424.736328125
+23
+1.6092682741941644e-13
+33
+989.834323028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+1424.736328125
+20
+1.6092682741941644e-13
+30
+989.834323028686
+11
+1423.728515625
+21
+1.6458926235807247e-13
+31
+1042.615573028686
+12
+1432.037109375
+22
+1.6257915153028435e-13
+32
+1013.646823028686
+13
+1432.037109375
+23
+1.6257915153028435e-13
+33
+1013.646823028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+1671.158203125
+20
+1.2728186560284627e-13
+30
+504.95932302868596
+11
+1634.033203125
+21
+1.124288379408811e-13
+31
+290.90463552868596
+12
+1619.572265625
+22
+1.2728186560284627e-13
+32
+504.95932302868596
+13
+1619.572265625
+23
+1.2728186560284627e-13
+33
+504.95932302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+1634.033203125
+20
+1.124288379408811e-13
+30
+290.90463552868596
+11
+1671.158203125
+21
+1.2728186560284627e-13
+31
+504.95932302868596
+12
+1695.451171875
+22
+1.1434462317966299e-13
+32
+318.51401052868596
+13
+1695.451171875
+23
+1.1434462317966299e-13
+33
+318.51401052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2043.369140625
+20
+1.220175219543429e-13
+30
+429.09213552868596
+11
+2056.998046875
+21
+1.1101070149927006e-13
+31
+270.46713552868596
+12
+1957.775390625
+22
+1.1375427509674463e-13
+32
+310.00619802868596
+13
+1957.775390625
+23
+1.1375427509674463e-13
+33
+310.00619802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2056.998046875
+20
+1.1101070149927006e-13
+30
+270.46713552868596
+11
+2043.369140625
+21
+1.220175219543429e-13
+31
+429.09213552868596
+12
+2079.087890625
+22
+1.225867280948978e-13
+32
+437.29526052868596
+13
+2079.087890625
+23
+1.225867280948978e-13
+33
+437.29526052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2056.998046875
+20
+1.1101070149927006e-13
+30
+270.46713552868596
+11
+2079.087890625
+21
+1.225867280948978e-13
+31
+437.29526052868596
+12
+2115.837890625
+22
+1.2211184754334914e-13
+32
+430.45151052868596
+13
+2115.837890625
+23
+1.2211184754334914e-13
+33
+430.45151052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2190.755859375
+20
+1.1485853500942111e-13
+30
+325.92026052868596
+11
+2353.189453125
+21
+1.1203527255226886e-13
+31
+285.23276052868596
+12
+2159.197265625
+22
+1.1283378745230443e-13
+32
+296.74057302868596
+13
+2159.197265625
+23
+1.1283378745230443e-13
+33
+296.74057302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2353.189453125
+20
+1.1203527255226886e-13
+30
+285.23276052868596
+11
+2190.755859375
+21
+1.1485853500942111e-13
+31
+325.92026052868596
+12
+2190.955078125
+22
+1.153187788316412e-13
+32
+332.55307302868596
+13
+2190.955078125
+23
+1.153187788316412e-13
+33
+332.55307302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2353.189453125
+20
+1.1203527255226886e-13
+30
+285.23276052868596
+11
+2190.955078125
+21
+1.153187788316412e-13
+31
+332.55307302868596
+12
+2236.119140625
+22
+1.1812903086272364e-13
+32
+373.05307302868596
+13
+2236.119140625
+23
+1.1812903086272364e-13
+33
+373.05307302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2353.189453125
+20
+1.1203527255226886e-13
+30
+285.23276052868596
+11
+2236.119140625
+21
+1.1812903086272364e-13
+31
+373.05307302868596
+12
+2330.759765625
+22
+1.199683798483453e-13
+32
+399.56088552868596
+13
+2330.759765625
+23
+1.199683798483453e-13
+33
+399.56088552868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2474.384765625
+20
+1.2771771487618544e-13
+30
+511.24057302868596
+11
+2524.470703125
+21
+1.112953045695475e-13
+31
+274.56869802868596
+12
+2437.048828125
+22
+1.1203527255226886e-13
+32
+285.23276052868596
+13
+2437.048828125
+23
+1.1203527255226886e-13
+33
+285.23276052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2524.470703125
+20
+1.112953045695475e-13
+30
+274.56869802868596
+11
+2474.384765625
+21
+1.2771771487618544e-13
+31
+511.24057302868596
+12
+2519.337890625
+22
+1.2771771487618544e-13
+32
+511.24057302868596
+13
+2519.337890625
+23
+1.2771771487618544e-13
+33
+511.24057302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2640.509765625
+20
+1.5953471182994505e-13
+30
+969.771823028686
+11
+2593.833984375
+21
+1.5589829774342867e-13
+31
+917.365573028686
+12
+2584.634765625
+22
+1.5697491050070678e-13
+32
+932.881198028686
+13
+2584.634765625
+23
+1.5697491050070678e-13
+33
+932.881198028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2593.833984375
+20
+1.5589829774342867e-13
+30
+917.365573028686
+11
+2640.509765625
+21
+1.5953471182994505e-13
+31
+969.771823028686
+12
+2595.626953125
+22
+1.545468397354255e-13
+32
+897.889010528686
+13
+2595.626953125
+23
+1.545468397354255e-13
+33
+897.889010528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2595.626953125
+20
+1.545468397354255e-13
+30
+897.889010528686
+11
+2640.509765625
+21
+1.5953471182994505e-13
+31
+969.771823028686
+12
+2659.060546875
+22
+1.3888228674735492e-13
+32
+672.139010528686
+13
+2659.060546875
+23
+1.3888228674735492e-13
+33
+672.139010528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2659.060546875
+20
+1.3888228674735492e-13
+30
+672.139010528686
+11
+2640.509765625
+21
+1.5953471182994505e-13
+31
+969.771823028686
+12
+2695.142578125
+22
+1.3817647113306686e-13
+32
+661.967135528686
+13
+2695.142578125
+23
+1.3817647113306686e-13
+33
+661.967135528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2659.060546875
+20
+1.3888228674735492e-13
+30
+672.139010528686
+11
+2695.142578125
+21
+1.3817647113306686e-13
+31
+661.967135528686
+12
+2659.939453125
+22
+1.344782575227188e-13
+32
+608.670260528686
+13
+2659.939453125
+23
+1.344782575227188e-13
+33
+608.670260528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2691.697265625
+20
+1.777476820244428e-13
+30
+1232.248385528686
+11
+2671.166015625
+21
+1.7029270788643247e-13
+31
+1124.810885528686
+12
+2668.353515625
+22
+1.7112212254838388e-13
+32
+1136.764010528686
+13
+2668.353515625
+23
+1.7112212254838388e-13
+33
+1136.764010528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2671.166015625
+20
+1.7029270788643247e-13
+30
+1124.810885528686
+11
+2691.697265625
+21
+1.777476820244428e-13
+31
+1232.248385528686
+12
+2746.330078125
+22
+1.6455185738312172e-13
+32
+1042.076510528686
+13
+2746.330078125
+23
+1.6455185738312172e-13
+33
+1042.076510528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2746.330078125
+20
+1.6455185738312172e-13
+30
+1042.076510528686
+11
+2691.697265625
+21
+1.777476820244428e-13
+31
+1232.248385528686
+12
+2786.373046875
+22
+1.7633279818934922e-13
+32
+1211.857760528686
+13
+2786.373046875
+23
+1.7633279818934922e-13
+33
+1211.857760528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2746.330078125
+20
+1.6455185738312172e-13
+30
+1042.076510528686
+11
+2786.373046875
+21
+1.7633279818934922e-13
+31
+1211.857760528686
+12
+2748.603515625
+22
+1.6369479556577193e-13
+32
+1029.724948028686
+13
+2748.603515625
+23
+1.6369479556577193e-13
+33
+1029.724948028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2748.603515625
+20
+1.6369479556577193e-13
+30
+1029.724948028686
+11
+2786.373046875
+21
+1.7633279818934922e-13
+31
+1211.857760528686
+12
+2755.599609375
+22
+1.4943211598672512e-13
+32
+824.178073028686
+13
+2755.599609375
+23
+1.4943211598672512e-13
+33
+824.178073028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2755.599609375
+20
+1.4943211598672512e-13
+30
+824.178073028686
+11
+2786.373046875
+21
+1.7633279818934922e-13
+31
+1211.857760528686
+12
+2760.791015625
+22
+1.4771961865528427e-13
+32
+799.498385528686
+13
+2760.791015625
+23
+1.4771961865528427e-13
+33
+799.498385528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2760.509765625
+20
+1.4149575608413123e-13
+30
+709.803073028686
+11
+2827.212890625
+21
+1.3869851447911863e-13
+31
+669.490573028686
+12
+2747.419921875
+22
+1.3817647113306686e-13
+32
+661.967135528686
+13
+2747.419921875
+23
+1.3817647113306686e-13
+33
+661.967135528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2827.212890625
+20
+1.3869851447911863e-13
+30
+669.490573028686
+11
+2760.509765625
+21
+1.4149575608413123e-13
+31
+709.803073028686
+12
+2760.791015625
+22
+1.4771961865528427e-13
+32
+799.498385528686
+13
+2760.791015625
+23
+1.4771961865528427e-13
+33
+799.498385528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2827.212890625
+20
+1.3869851447911863e-13
+30
+669.490573028686
+11
+2760.791015625
+21
+1.4771961865528427e-13
+31
+799.498385528686
+12
+2786.373046875
+22
+1.7633279818934922e-13
+32
+1211.857760528686
+13
+2786.373046875
+23
+1.7633279818934922e-13
+33
+1211.857760528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+2827.212890625
+20
+1.3869851447911863e-13
+30
+669.490573028686
+11
+2786.373046875
+21
+1.7633279818934922e-13
+31
+1211.857760528686
+12
+2796.041015625
+22
+1.7184094858874177e-13
+32
+1147.123385528686
+13
+2796.041015625
+23
+1.7184094858874177e-13
+33
+1147.123385528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+2796.041015625
+20
+1.7184094858874177e-13
+30
+1147.123385528686
+11
+2786.373046875
+21
+1.7633279818934922e-13
+31
+1211.857760528686
+12
+2794.728515625
+22
+1.7411452054444387e-13
+32
+1179.889010528686
+13
+2794.728515625
+23
+1.7411452054444387e-13
+33
+1179.889010528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2827.212890625
+20
+1.3869851447911863e-13
+30
+669.490573028686
+11
+2796.041015625
+21
+1.7184094858874177e-13
+31
+1147.123385528686
+12
+2828.783203125
+22
+1.5669681264346424e-13
+32
+928.873385528686
+13
+2828.783203125
+23
+1.5669681264346424e-13
+33
+928.873385528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2827.212890625
+20
+1.3869851447911863e-13
+30
+669.490573028686
+11
+2828.783203125
+21
+1.5669681264346424e-13
+31
+928.873385528686
+12
+2835.626953125
+22
+1.4112658524439992e-13
+32
+704.482760528686
+13
+2835.626953125
+23
+1.4112658524439992e-13
+33
+704.482760528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2835.626953125
+20
+1.4112658524439992e-13
+30
+704.482760528686
+11
+2828.783203125
+21
+1.5669681264346424e-13
+31
+928.873385528686
+12
+2843.759765625
+22
+1.5316448196550647e-13
+32
+877.967135528686
+13
+2843.759765625
+23
+1.5316448196550647e-13
+33
+877.967135528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2835.626953125
+20
+1.4112658524439992e-13
+30
+704.482760528686
+11
+2843.759765625
+21
+1.5316448196550647e-13
+31
+877.967135528686
+12
+2843.056640625
+22
+1.476984767129208e-13
+32
+799.193698028686
+13
+2843.056640625
+23
+1.476984767129208e-13
+33
+799.193698028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2843.056640625
+20
+1.476984767129208e-13
+30
+799.193698028686
+11
+2843.759765625
+21
+1.5316448196550647e-13
+31
+877.967135528686
+12
+2845.962890625
+22
+1.4877021056042272e-13
+32
+814.639010528686
+13
+2845.962890625
+23
+1.4877021056042272e-13
+33
+814.639010528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2974.447265625
+20
+1.5448504021159382e-13
+30
+896.998385528686
+11
+3391.353515625
+21
+1.432554162100752e-13
+31
+735.162448028686
+12
+2948.548828125
+22
+1.3897498603310243e-13
+32
+673.474948028686
+13
+2948.548828125
+23
+1.3897498603310243e-13
+33
+673.474948028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3391.353515625
+20
+1.432554162100752e-13
+30
+735.162448028686
+11
+2974.447265625
+21
+1.5448504021159382e-13
+31
+896.998385528686
+12
+2991.228515625
+22
+1.579604502754961e-13
+32
+947.084323028686
+13
+2991.228515625
+23
+1.579604502754961e-13
+33
+947.084323028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3391.353515625
+20
+1.432554162100752e-13
+30
+735.162448028686
+11
+2991.228515625
+21
+1.579604502754961e-13
+31
+947.084323028686
+12
+3367.001953125
+22
+1.4422469295227724e-13
+32
+749.131198028686
+13
+3367.001953125
+23
+1.4422469295227724e-13
+33
+749.131198028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3367.001953125
+20
+1.4422469295227724e-13
+30
+749.131198028686
+11
+2991.228515625
+21
+1.579604502754961e-13
+31
+947.084323028686
+12
+2997.357421875
+22
+1.6058367743182478e-13
+32
+984.889010528686
+13
+2997.357421875
+23
+1.6058367743182478e-13
+33
+984.889010528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3367.001953125
+20
+1.4422469295227724e-13
+30
+749.131198028686
+11
+2997.357421875
+21
+1.6058367743182478e-13
+31
+984.889010528686
+12
+3004.705078125
+22
+1.7110260690927914e-13
+32
+1136.482760528686
+13
+3004.705078125
+23
+1.7110260690927914e-13
+33
+1136.482760528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3367.001953125
+20
+1.4422469295227724e-13
+30
+749.131198028686
+11
+3004.705078125
+21
+1.7110260690927914e-13
+31
+1136.482760528686
+12
+3091.494140625
+22
+1.7260693742360278e-13
+32
+1158.162448028686
+13
+3091.494140625
+23
+1.7260693742360278e-13
+33
+1158.162448028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3367.001953125
+20
+1.4422469295227724e-13
+30
+749.131198028686
+11
+3091.494140625
+21
+1.7260693742360278e-13
+31
+1158.162448028686
+12
+3324.908203125
+22
+1.5140807444607995e-13
+32
+852.654635528686
+13
+3324.908203125
+23
+1.5140807444607995e-13
+33
+852.654635528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3324.908203125
+20
+1.5140807444607995e-13
+30
+852.654635528686
+11
+3091.494140625
+21
+1.7260693742360278e-13
+31
+1158.162448028686
+12
+3306.380859375
+22
+1.5670982306953407e-13
+32
+929.060885528686
+13
+3306.380859375
+23
+1.5670982306953407e-13
+33
+929.060885528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3306.380859375
+20
+1.5670982306953407e-13
+30
+929.060885528686
+11
+3091.494140625
+21
+1.7260693742360278e-13
+31
+1158.162448028686
+12
+3279.673828125
+22
+2.0988180811365442e-13
+32
+1695.349948028686
+13
+3279.673828125
+23
+2.0988180811365442e-13
+33
+1695.349948028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3472.857421875
+20
+1.8248185081060075e-13
+30
+1300.474948028686
+11
+3441.603515625
+21
+1.7226704004252857e-13
+31
+1153.264010528686
+12
+3427.259765625
+22
+1.793186909723743e-13
+32
+1254.889010528686
+13
+3427.259765625
+23
+1.793186909723743e-13
+33
+1254.889010528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3441.603515625
+20
+1.7226704004252857e-13
+30
+1153.264010528686
+11
+3472.857421875
+21
+1.8248185081060075e-13
+31
+1300.474948028686
+12
+3481.552734375
+22
+1.6952509274831273e-13
+32
+1113.748385528686
+13
+3481.552734375
+23
+1.6952509274831273e-13
+33
+1113.748385528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3481.552734375
+20
+1.6952509274831273e-13
+30
+1113.748385528686
+11
+3472.857421875
+21
+1.8248185081060075e-13
+31
+1300.474948028686
+12
+3580.517578125
+22
+1.799805963986767e-13
+32
+1264.428073028686
+13
+3580.517578125
+23
+1.799805963986767e-13
+33
+1264.428073028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3481.552734375
+20
+1.6952509274831273e-13
+30
+1113.748385528686
+11
+3580.517578125
+21
+1.799805963986767e-13
+31
+1264.428073028686
+12
+3501.486328125
+22
+1.4470119980708462e-13
+32
+755.998385528686
+13
+3501.486328125
+23
+1.4470119980708462e-13
+33
+755.998385528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3501.486328125
+20
+1.4470119980708462e-13
+30
+755.998385528686
+11
+3580.517578125
+21
+1.799805963986767e-13
+31
+1264.428073028686
+12
+3630.169921875
+22
+1.417478330892341e-13
+32
+713.435885528686
+13
+3630.169921875
+23
+1.417478330892341e-13
+33
+713.435885528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3630.169921875
+20
+1.417478330892341e-13
+30
+713.435885528686
+11
+3851.103515625
+21
+1.1464874188904517e-13
+31
+322.89682302868596
+12
+3860.982421875
+22
+1.1240281708874145e-13
+32
+290.52963552868596
+13
+3860.982421875
+23
+1.1240281708874145e-13
+33
+290.52963552868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3851.103515625
+20
+1.1464874188904517e-13
+30
+322.89682302868596
+11
+3630.169921875
+21
+1.417478330892341e-13
+31
+713.435885528686
+12
+3790.494140625
+22
+1.3459209875082978e-13
+32
+610.310885528686
+13
+3790.494140625
+23
+1.3459209875082978e-13
+33
+610.310885528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+3790.494140625
+20
+1.3459209875082978e-13
+30
+610.310885528686
+11
+3630.169921875
+21
+1.417478330892341e-13
+31
+713.435885528686
+12
+3790.494140625
+22
+1.4226174491899224e-13
+32
+720.842135528686
+13
+3790.494140625
+23
+1.4226174491899224e-13
+33
+720.842135528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3851.103515625
+20
+1.1464874188904517e-13
+30
+322.89682302868596
+11
+3790.494140625
+21
+1.3459209875082978e-13
+31
+610.310885528686
+12
+3803.935546875
+22
+1.317151682861395e-13
+32
+568.849948028686
+13
+3803.935546875
+23
+1.317151682861395e-13
+33
+568.849948028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2524.470703125
+20
+1.112953045695475e-13
+30
+274.56869802868596
+11
+4547.488741033201
+21
+6.714459055936259e-14
+31
+-361.7101472974264
+12
+2331.0584563925167
+22
+7.363034515030426e-14
+32
+-268.24057302868596
+13
+2331.0584563925167
+23
+7.363034515030426e-14
+33
+-268.24057302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+2524.470703125
+21
+1.112953045695475e-13
+31
+274.56869802868596
+12
+3860.982421875
+22
+1.1240281708874145e-13
+32
+290.52963552868596
+13
+3860.982421875
+23
+1.1240281708874145e-13
+33
+290.52963552868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+1933.330078125
+20
+1.1279800878061241e-13
+30
+296.22494802868596
+11
+2331.0584563925167
+21
+7.363034515030426e-14
+31
+-268.24057302868596
+12
+1864.236328125
+22
+1.119913623642832e-13
+32
+284.59994802868596
+13
+1864.236328125
+23
+1.119913623642832e-13
+33
+284.59994802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2331.0584563925167
+20
+7.363034515030426e-14
+30
+-268.24057302868596
+11
+1933.330078125
+21
+1.1279800878061241e-13
+31
+296.22494802868596
+12
+1957.775390625
+22
+1.1375427509674463e-13
+32
+310.00619802868596
+13
+1957.775390625
+23
+1.1375427509674463e-13
+33
+310.00619802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2331.0584563925167
+20
+7.363034515030426e-14
+30
+-268.24057302868596
+11
+1957.775390625
+21
+1.1375427509674463e-13
+31
+310.00619802868596
+12
+2056.998046875
+22
+1.1101070149927006e-13
+32
+270.46713552868596
+13
+2056.998046875
+23
+1.1101070149927006e-13
+33
+270.46713552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2331.0584563925167
+20
+7.363034515030426e-14
+30
+-268.24057302868596
+11
+2056.998046875
+21
+1.1101070149927006e-13
+31
+270.46713552868596
+12
+2159.197265625
+22
+1.1283378745230443e-13
+32
+296.74057302868596
+13
+2159.197265625
+23
+1.1283378745230443e-13
+33
+296.74057302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2331.0584563925167
+20
+7.363034515030426e-14
+30
+-268.24057302868596
+11
+2159.197265625
+21
+1.1283378745230443e-13
+31
+296.74057302868596
+12
+2353.189453125
+22
+1.1203527255226886e-13
+32
+285.23276052868596
+13
+2353.189453125
+23
+1.1203527255226886e-13
+33
+285.23276052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+2331.0584563925167
+20
+7.363034515030426e-14
+30
+-268.24057302868596
+11
+2353.189453125
+21
+1.1203527255226886e-13
+31
+285.23276052868596
+12
+2524.470703125
+22
+1.112953045695475e-13
+32
+274.56869802868596
+13
+2524.470703125
+23
+1.112953045695475e-13
+33
+274.56869802868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+2524.470703125
+20
+1.112953045695475e-13
+30
+274.56869802868596
+11
+2353.189453125
+21
+1.1203527255226886e-13
+31
+285.23276052868596
+12
+2437.048828125
+22
+1.1203527255226886e-13
+32
+285.23276052868596
+13
+2437.048828125
+23
+1.1203527255226886e-13
+33
+285.23276052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2548.658203125
+20
+1.1192143132415788e-13
+30
+283.59213552868596
+11
+3860.982421875
+21
+1.1240281708874145e-13
+31
+290.52963552868596
+12
+2524.470703125
+22
+1.112953045695475e-13
+32
+274.56869802868596
+13
+2524.470703125
+23
+1.112953045695475e-13
+33
+274.56869802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2548.658203125
+21
+1.1192143132415788e-13
+31
+283.59213552868596
+12
+2579.548828125
+22
+1.141445878788394e-13
+32
+315.63119802868596
+13
+2579.548828125
+23
+1.141445878788394e-13
+33
+315.63119802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2579.548828125
+21
+1.141445878788394e-13
+31
+315.63119802868596
+12
+2636.126953125
+22
+1.309670687871245e-13
+32
+558.068698028686
+13
+2636.126953125
+23
+1.309670687871245e-13
+33
+558.068698028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2636.126953125
+21
+1.309670687871245e-13
+31
+558.068698028686
+12
+2659.939453125
+22
+1.344782575227188e-13
+32
+608.670260528686
+13
+2659.939453125
+23
+1.344782575227188e-13
+33
+608.670260528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2659.939453125
+21
+1.344782575227188e-13
+31
+608.670260528686
+12
+2695.142578125
+22
+1.3817647113306686e-13
+32
+661.967135528686
+13
+2695.142578125
+23
+1.3817647113306686e-13
+33
+661.967135528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2695.142578125
+21
+1.3817647113306686e-13
+31
+661.967135528686
+12
+2747.419921875
+22
+1.3817647113306686e-13
+32
+661.967135528686
+13
+2747.419921875
+23
+1.3817647113306686e-13
+33
+661.967135528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2747.419921875
+21
+1.3817647113306686e-13
+31
+661.967135528686
+12
+2827.212890625
+22
+1.3869851447911863e-13
+32
+669.490573028686
+13
+2827.212890625
+23
+1.3869851447911863e-13
+33
+669.490573028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2827.212890625
+21
+1.3869851447911863e-13
+31
+669.490573028686
+12
+2948.548828125
+22
+1.3897498603310243e-13
+32
+673.474948028686
+13
+2948.548828125
+23
+1.3897498603310243e-13
+33
+673.474948028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+2948.548828125
+21
+1.3897498603310243e-13
+31
+673.474948028686
+12
+3391.353515625
+22
+1.432554162100752e-13
+32
+735.162448028686
+13
+3391.353515625
+23
+1.432554162100752e-13
+33
+735.162448028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+3391.353515625
+21
+1.432554162100752e-13
+31
+735.162448028686
+12
+3405.720703125
+22
+1.4364247638565253e-13
+32
+740.740573028686
+13
+3405.720703125
+23
+1.4364247638565253e-13
+33
+740.740573028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+3405.720703125
+21
+1.4364247638565253e-13
+31
+740.740573028686
+12
+3501.486328125
+22
+1.4470119980708462e-13
+32
+755.998385528686
+13
+3501.486328125
+23
+1.4470119980708462e-13
+33
+755.998385528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3860.982421875
+20
+1.1240281708874145e-13
+30
+290.52963552868596
+11
+3501.486328125
+21
+1.4470119980708462e-13
+31
+755.998385528686
+12
+3630.169921875
+22
+1.417478330892341e-13
+32
+713.435885528686
+13
+3630.169921875
+23
+1.417478330892341e-13
+33
+713.435885528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3099.392578125
+20
+2.1223181632251675e-13
+30
+1729.217135528686
+11
+2990.619140625
+21
+2.0952727400325166e-13
+31
+1690.240573028686
+12
+2970.228515625
+22
+2.1223181632251675e-13
+32
+1729.217135528686
+13
+2970.228515625
+23
+2.1223181632251675e-13
+33
+1729.217135528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+2990.619140625
+20
+2.0952727400325166e-13
+30
+1690.240573028686
+11
+3099.392578125
+21
+2.1223181632251675e-13
+31
+1729.217135528686
+12
+3077.689453125
+22
+2.0881170056941123e-13
+32
+1679.928073028686
+13
+3077.689453125
+23
+2.0881170056941123e-13
+33
+1679.928073028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3077.689453125
+20
+2.0881170056941123e-13
+30
+1679.928073028686
+11
+3099.392578125
+21
+2.1223181632251675e-13
+31
+1729.217135528686
+12
+3091.494140625
+22
+1.856791630172605e-13
+32
+1346.553073028686
+13
+3091.494140625
+23
+1.856791630172605e-13
+33
+1346.553073028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3091.494140625
+20
+1.856791630172605e-13
+30
+1346.553073028686
+11
+3099.392578125
+21
+2.1223181632251675e-13
+31
+1729.217135528686
+12
+3091.611328125
+22
+1.7803716400449643e-13
+32
+1236.420260528686
+13
+3091.611328125
+23
+1.7803716400449643e-13
+33
+1236.420260528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+3063.451171875
+20
+2.2292150764213758e-13
+30
+1883.271823028686
+11
+3099.392578125
+21
+2.1223181632251675e-13
+31
+1729.217135528686
+12
+3051.087890625
+22
+2.2221081311807334e-13
+32
+1873.029635528686
+13
+3051.087890625
+23
+2.2221081311807334e-13
+33
+1873.029635528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3099.392578125
+20
+2.1223181632251675e-13
+30
+1729.217135528686
+11
+3063.451171875
+21
+2.2292150764213758e-13
+31
+1883.271823028686
+12
+3129.017578125
+22
+2.2431199692835024e-13
+32
+1903.310885528686
+13
+3129.017578125
+23
+2.2431199692835024e-13
+33
+1903.310885528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3246.298828125
+20
+2.8460719024570036e-13
+30
+2772.256198028686
+11
+3190.751953125
+21
+2.2546341963552985e-13
+31
+1919.904635528686
+12
+3151.189453125
+22
+2.271694117539358e-13
+32
+1944.490573028686
+13
+3151.189453125
+23
+2.271694117539358e-13
+33
+1944.490573028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3190.751953125
+20
+2.2546341963552985e-13
+30
+1919.904635528686
+11
+3246.298828125
+21
+2.8460719024570036e-13
+31
+2772.256198028686
+12
+3273.193359375
+22
+2.835045566362826e-13
+32
+2756.365573028686
+13
+3273.193359375
+23
+2.835045566362826e-13
+33
+2756.365573028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3273.193359375
+20
+2.835045566362826e-13
+30
+2756.365573028686
+11
+3246.298828125
+21
+2.8460719024570036e-13
+31
+2772.256198028686
+12
+3255.158203125
+22
+2.871832546075259e-13
+32
+2809.381198028686
+13
+3255.158203125
+23
+2.871832546075259e-13
+33
+2809.381198028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3273.193359375
+20
+2.835045566362826e-13
+30
+2756.365573028686
+11
+3255.158203125
+21
+2.871832546075259e-13
+31
+2809.381198028686
+12
+3259.001953125
+22
+2.871019394445895e-13
+32
+2808.209323028686
+13
+3259.001953125
+23
+2.871019394445895e-13
+33
+2808.209323028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3273.193359375
+20
+2.835045566362826e-13
+30
+2756.365573028686
+11
+3259.001953125
+21
+2.871019394445895e-13
+31
+2808.209323028686
+12
+3276.931640625
+22
+2.840867732029073e-13
+32
+2764.756198028686
+13
+3276.931640625
+23
+2.840867732029073e-13
+33
+2764.756198028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3091.611328125
+20
+1.7803716400449643e-13
+30
+1236.420260528686
+11
+3279.673828125
+21
+2.0988180811365442e-13
+31
+1695.349948028686
+12
+3091.494140625
+22
+1.7260693742360278e-13
+32
+1158.162448028686
+13
+3091.494140625
+23
+1.7260693742360278e-13
+33
+1158.162448028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3279.673828125
+20
+2.0988180811365442e-13
+30
+1695.349948028686
+11
+3091.611328125
+21
+1.7803716400449643e-13
+31
+1236.420260528686
+12
+3099.392578125
+22
+2.1223181632251675e-13
+32
+1729.217135528686
+13
+3099.392578125
+23
+2.1223181632251675e-13
+33
+1729.217135528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+3279.673828125
+20
+2.0988180811365442e-13
+30
+1695.349948028686
+11
+3099.392578125
+21
+2.1223181632251675e-13
+31
+1729.217135528686
+12
+3251.244140625
+22
+2.11595931748354e-13
+32
+1720.053073028686
+13
+3251.244140625
+23
+2.11595931748354e-13
+33
+1720.053073028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3251.244140625
+20
+2.11595931748354e-13
+30
+1720.053073028686
+11
+3099.392578125
+21
+2.1223181632251675e-13
+31
+1729.217135528686
+12
+3129.017578125
+22
+2.2431199692835024e-13
+32
+1903.310885528686
+13
+3129.017578125
+23
+2.2431199692835024e-13
+33
+1903.310885528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+3251.244140625
+20
+2.11595931748354e-13
+30
+1720.053073028686
+11
+3129.017578125
+21
+2.2431199692835024e-13
+31
+1903.310885528686
+12
+3144.826171875
+22
+2.252536265151539e-13
+32
+1916.881198028686
+13
+3144.826171875
+23
+2.252536265151539e-13
+33
+1916.881198028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3251.244140625
+20
+2.11595931748354e-13
+30
+1720.053073028686
+11
+3144.826171875
+21
+2.252536265151539e-13
+31
+1916.881198028686
+12
+3151.189453125
+22
+2.271694117539358e-13
+32
+1944.490573028686
+13
+3151.189453125
+23
+2.271694117539358e-13
+33
+1944.490573028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3251.244140625
+20
+2.11595931748354e-13
+30
+1720.053073028686
+11
+3151.189453125
+21
+2.271694117539358e-13
+31
+1944.490573028686
+12
+3190.751953125
+22
+2.2546341963552985e-13
+32
+1919.904635528686
+13
+3190.751953125
+23
+2.2546341963552985e-13
+33
+1919.904635528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+3251.244140625
+20
+2.11595931748354e-13
+30
+1720.053073028686
+11
+3190.751953125
+21
+2.2546341963552985e-13
+31
+1919.904635528686
+12
+3251.244140625
+22
+2.2470881492347994e-13
+32
+1909.029635528686
+13
+3251.244140625
+23
+2.2470881492347994e-13
+33
+1909.029635528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3057.017578125
+20
+1.8393739222716254e-13
+30
+1321.451510528686
+11
+3065.291015625
+21
+1.7977568218807694e-13
+31
+1261.474948028686
+12
+3038.337890625
+22
+1.8099540963212313e-13
+32
+1279.053073028686
+13
+3038.337890625
+23
+1.8099540963212313e-13
+33
+1279.053073028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3065.291015625
+20
+1.7977568218807694e-13
+30
+1261.474948028686
+11
+3057.017578125
+21
+1.8393739222716254e-13
+31
+1321.451510528686
+12
+3091.494140625
+22
+1.856791630172605e-13
+32
+1346.553073028686
+13
+3091.494140625
+23
+1.856791630172605e-13
+33
+1346.553073028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+3065.291015625
+20
+1.7977568218807694e-13
+30
+1261.474948028686
+11
+3091.494140625
+21
+1.856791630172605e-13
+31
+1346.553073028686
+12
+3074.080078125
+22
+1.7957889949377082e-13
+32
+1258.639010528686
+13
+3074.080078125
+23
+1.7957889949377082e-13
+33
+1258.639010528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+3074.080078125
+20
+1.7957889949377082e-13
+30
+1258.639010528686
+11
+3091.494140625
+21
+1.856791630172605e-13
+31
+1346.553073028686
+12
+3091.611328125
+22
+1.7803716400449643e-13
+32
+1236.420260528686
+13
+3091.611328125
+23
+1.7803716400449643e-13
+33
+1236.420260528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+4086.462890625
+20
+1.4688857769007413e-13
+30
+787.521823028686
+11
+4038.275390625
+21
+1.139087739063238e-13
+31
+312.23276052868596
+12
+3956.853515625
+22
+1.1718740127591998e-13
+32
+359.48276052868596
+13
+3956.853515625
+23
+1.1718740127591998e-13
+33
+359.48276052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+4038.275390625
+20
+1.139087739063238e-13
+30
+312.23276052868596
+11
+4086.462890625
+21
+1.4688857769007413e-13
+31
+787.521823028686
+12
+4186.166015625
+22
+1.4719920161249123e-13
+32
+791.998385528686
+13
+4186.166015625
+23
+1.4719920161249123e-13
+33
+791.998385528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+4186.166015625
+20
+1.4719920161249123e-13
+30
+791.998385528686
+11
+4086.462890625
+21
+1.4688857769007413e-13
+31
+787.521823028686
+12
+4112.759765625
+22
+1.4928412239018085e-13
+32
+822.045260528686
+13
+4112.759765625
+23
+1.4928412239018085e-13
+33
+822.045260528686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4186.166015625
+20
+1.4719920161249123e-13
+30
+791.998385528686
+11
+4112.759765625
+21
+1.4928412239018085e-13
+31
+822.045260528686
+12
+4253.666015625
+22
+1.5552424799392117e-13
+32
+911.974948028686
+13
+4253.666015625
+23
+1.5552424799392117e-13
+33
+911.974948028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4186.166015625
+20
+1.4719920161249123e-13
+30
+791.998385528686
+11
+4253.666015625
+21
+1.5552424799392117e-13
+31
+911.974948028686
+12
+4196.712890625
+22
+1.4826117764044078e-13
+32
+807.303073028686
+13
+4196.712890625
+23
+1.4826117764044078e-13
+33
+807.303073028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+4196.712890625
+20
+1.4826117764044078e-13
+30
+807.303073028686
+11
+4253.666015625
+21
+1.5552424799392117e-13
+31
+911.974948028686
+12
+4272.626953125
+22
+1.5127471757886424e-13
+32
+850.732760528686
+13
+4272.626953125
+23
+1.5127471757886424e-13
+33
+850.732760528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+4272.626953125
+20
+1.5127471757886424e-13
+30
+850.732760528686
+11
+4253.666015625
+21
+1.5552424799392117e-13
+31
+911.974948028686
+12
+4263.251953125
+22
+1.5617802190392993e-13
+32
+921.396823028686
+13
+4263.251953125
+23
+1.5617802190392993e-13
+33
+921.396823028686
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4272.626953125
+20
+1.5127471757886424e-13
+30
+850.732760528686
+11
+4263.251953125
+21
+1.5617802190392993e-13
+31
+921.396823028686
+12
+4280.525390625
+22
+1.5238060379479945e-13
+32
+866.670260528686
+13
+4280.525390625
+23
+1.5238060379479945e-13
+33
+866.670260528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+4657.423828125
+20
+1.2230212502462035e-13
+30
+433.19369802868596
+11
+4703.830078125
+21
+1.1054883137379123e-13
+31
+263.81088552868596
+12
+4531.869140625
+22
+1.105472050705325e-13
+32
+263.78744802868596
+13
+4531.869140625
+23
+1.105472050705325e-13
+33
+263.78744802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+4703.830078125
+20
+1.1054883137379123e-13
+30
+263.81088552868596
+11
+4657.423828125
+21
+1.2230212502462035e-13
+31
+433.19369802868596
+12
+4750.001953125
+22
+1.1587822715264373e-13
+32
+340.61557302868596
+13
+4750.001953125
+23
+1.1587822715264373e-13
+33
+340.61557302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+4703.830078125
+20
+1.1054883137379123e-13
+30
+263.81088552868596
+11
+4547.488741033201
+21
+6.714459055936259e-14
+31
+-361.7101472974264
+12
+4531.869140625
+22
+1.105472050705325e-13
+32
+263.78744802868596
+13
+4531.869140625
+23
+1.105472050705325e-13
+33
+263.78744802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+4703.830078125
+21
+1.1054883137379123e-13
+31
+263.81088552868596
+12
+5266.105489290916
+22
+6.504176246391654e-14
+32
+-392.0150939440673
+13
+5266.105489290916
+23
+6.504176246391654e-14
+33
+-392.0150939440673
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+5266.105489290916
+20
+6.504176246391654e-14
+30
+-392.0150939440673
+11
+4703.830078125
+21
+1.1054883137379123e-13
+31
+263.81088552868596
+12
+4862.876953125
+22
+1.1054883137379123e-13
+32
+263.81088552868596
+13
+4862.876953125
+23
+1.1054883137379123e-13
+33
+263.81088552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5266.105489290916
+20
+6.504176246391654e-14
+30
+-392.0150939440673
+11
+4862.876953125
+21
+1.1054883137379123e-13
+31
+263.81088552868596
+12
+4918.236328125
+22
+1.1143679295305686e-13
+32
+276.60776052868596
+13
+4918.236328125
+23
+1.1143679295305686e-13
+33
+276.60776052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5266.105489290916
+20
+6.504176246391654e-14
+30
+-392.0150939440673
+11
+4918.236328125
+21
+1.1143679295305686e-13
+31
+276.60776052868596
+12
+4939.705078125
+22
+1.1121561570986982e-13
+32
+273.42026052868596
+13
+4939.705078125
+23
+1.1121561570986982e-13
+33
+273.42026052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5266.105489290916
+20
+6.504176246391654e-14
+30
+-392.0150939440673
+11
+4939.705078125
+21
+1.1121561570986982e-13
+31
+273.42026052868596
+12
+4984.494140625
+22
+1.0916322099735476e-13
+32
+243.84213552868596
+13
+4984.494140625
+23
+1.0916322099735476e-13
+33
+243.84213552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5266.105489290916
+20
+6.504176246391654e-14
+30
+-392.0150939440673
+11
+4984.494140625
+21
+1.0916322099735476e-13
+31
+243.84213552868596
+12
+5065.751953125
+22
+1.0868508783928865e-13
+32
+236.95151052868596
+13
+5065.751953125
+23
+1.0868508783928865e-13
+33
+236.95151052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+3878.736328125
+20
+1.1593026885692304e-13
+30
+341.36557302868596
+11
+4547.488741033201
+21
+6.714459055936259e-14
+31
+-361.7101472974264
+12
+3860.982421875
+22
+1.1240281708874145e-13
+32
+290.52963552868596
+13
+3860.982421875
+23
+1.1240281708874145e-13
+33
+290.52963552868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+3878.736328125
+21
+1.1593026885692304e-13
+31
+341.36557302868596
+12
+3890.923828125
+22
+1.1658566907019052e-13
+32
+350.81088552868596
+13
+3890.923828125
+23
+1.1658566907019052e-13
+33
+350.81088552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+3890.923828125
+21
+1.1658566907019052e-13
+31
+350.81088552868596
+12
+3956.853515625
+22
+1.1718740127591998e-13
+32
+359.48276052868596
+13
+3956.853515625
+23
+1.1718740127591998e-13
+33
+359.48276052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+3956.853515625
+21
+1.1718740127591998e-13
+31
+359.48276052868596
+12
+4038.275390625
+22
+1.139087739063238e-13
+32
+312.23276052868596
+13
+4038.275390625
+23
+1.139087739063238e-13
+33
+312.23276052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+4038.275390625
+21
+1.139087739063238e-13
+31
+312.23276052868596
+12
+4454.994140625
+22
+1.0782314711216268e-13
+32
+224.52963552868596
+13
+4454.994140625
+23
+1.0782314711216268e-13
+33
+224.52963552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+4454.994140625
+21
+1.0782314711216268e-13
+31
+224.52963552868596
+12
+4490.806640625
+22
+1.0847041580913652e-13
+32
+233.85776052868596
+13
+4490.806640625
+23
+1.0847041580913652e-13
+33
+233.85776052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+4547.488741033201
+20
+6.714459055936259e-14
+30
+-361.7101472974264
+11
+4490.806640625
+21
+1.0847041580913652e-13
+31
+233.85776052868596
+12
+4531.869140625
+22
+1.105472050705325e-13
+32
+263.78744802868596
+13
+4531.869140625
+23
+1.105472050705325e-13
+33
+263.78744802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5266.105489290916
+21
+6.504176246391654e-14
+31
+-392.0150939440673
+12
+5065.751953125
+22
+1.0868508783928865e-13
+32
+236.95151052868596
+13
+5065.751953125
+23
+1.0868508783928865e-13
+33
+236.95151052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5266.105489290916
+20
+6.504176246391654e-14
+30
+-392.0150939440673
+11
+5739.603515625
+21
+1.067481606581433e-13
+31
+209.03744802868596
+12
+6602.783203125
+22
+6.11303542508157e-14
+32
+-448.38442697131404
+13
+6602.783203125
+23
+6.11303542508157e-14
+33
+-448.38442697131404
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+6602.783203125
+20
+6.11303542508157e-14
+30
+-448.38442697131404
+11
+5739.603515625
+21
+1.067481606581433e-13
+31
+209.03744802868596
+12
+5859.626953125
+22
+1.072832144302649e-13
+32
+216.74838552868596
+13
+5859.626953125
+23
+1.072832144302649e-13
+33
+216.74838552868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5470.423828125
+20
+1.3097682660667687e-13
+30
+558.209323028686
+11
+5431.939453125
+21
+1.1599044207749598e-13
+31
+342.23276052868596
+12
+5417.009765625
+22
+1.3097682660667687e-13
+32
+558.209323028686
+13
+5417.009765625
+23
+1.3097682660667687e-13
+33
+558.209323028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5698.119140625
+20
+1.3152976971464447e-13
+30
+566.178073028686
+11
+5692.751953125
+21
+1.1768667637634955e-13
+31
+366.67807302868596
+12
+5692.751953125
+22
+1.314338178223795e-13
+32
+564.795260528686
+13
+5692.751953125
+23
+1.314338178223795e-13
+33
+564.795260528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5081.009765625
+20
+1.0967062761407798e-13
+30
+251.15463552868596
+11
+5739.603515625
+21
+1.067481606581433e-13
+31
+209.03744802868596
+12
+5065.751953125
+22
+1.0868508783928865e-13
+32
+236.95151052868596
+13
+5065.751953125
+23
+1.0868508783928865e-13
+33
+236.95151052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5081.009765625
+21
+1.0967062761407798e-13
+31
+251.15463552868596
+12
+5123.103515625
+22
+1.2032941917178297e-13
+32
+404.76401052868596
+13
+5123.103515625
+23
+1.2032941917178297e-13
+33
+404.76401052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5123.103515625
+21
+1.2032941917178297e-13
+31
+404.76401052868596
+12
+5302.001953125
+22
+1.1661168992233018e-13
+32
+351.18588552868596
+13
+5302.001953125
+23
+1.1661168992233018e-13
+33
+351.18588552868596
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+5302.001953125
+20
+1.1661168992233018e-13
+30
+351.18588552868596
+11
+5123.103515625
+21
+1.2032941917178297e-13
+31
+404.76401052868596
+12
+5229.861328125
+22
+1.2032941917178297e-13
+32
+404.76401052868596
+13
+5229.861328125
+23
+1.2032941917178297e-13
+33
+404.76401052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5302.001953125
+21
+1.1661168992233018e-13
+31
+351.18588552868596
+12
+5431.939453125
+22
+1.1599044207749598e-13
+32
+342.23276052868596
+13
+5431.939453125
+23
+1.1599044207749598e-13
+33
+342.23276052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5431.939453125
+21
+1.1599044207749598e-13
+31
+342.23276052868596
+12
+5517.064453125
+22
+1.1643279656387007e-13
+32
+348.60776052868596
+13
+5517.064453125
+23
+1.1643279656387007e-13
+33
+348.60776052868596
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+5517.064453125
+20
+1.1643279656387007e-13
+30
+348.60776052868596
+11
+5431.939453125
+21
+1.1599044207749598e-13
+31
+342.23276052868596
+12
+5504.384765625
+22
+1.1816480953441566e-13
+32
+373.56869802868596
+13
+5504.384765625
+23
+1.1816480953441566e-13
+33
+373.56869802868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+5504.384765625
+20
+1.1816480953441566e-13
+30
+373.56869802868596
+11
+5431.939453125
+21
+1.1599044207749598e-13
+31
+342.23276052868596
+12
+5470.423828125
+22
+1.3097682660667687e-13
+32
+558.209323028686
+13
+5470.423828125
+23
+1.3097682660667687e-13
+33
+558.209323028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5517.064453125
+21
+1.1643279656387007e-13
+31
+348.60776052868596
+12
+5623.072265625
+22
+1.1187264222639604e-13
+32
+282.88901052868596
+13
+5623.072265625
+23
+1.1187264222639604e-13
+33
+282.88901052868596
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+5623.072265625
+20
+1.1187264222639604e-13
+30
+282.88901052868596
+11
+5517.064453125
+21
+1.1643279656387007e-13
+31
+348.60776052868596
+12
+5616.744140625
+22
+1.1230035998344157e-13
+32
+289.05307302868596
+13
+5616.744140625
+23
+1.1230035998344157e-13
+33
+289.05307302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5623.072265625
+21
+1.1187264222639604e-13
+31
+282.88901052868596
+12
+5639.947265625
+22
+1.16941829483852e-13
+32
+355.94369802868596
+13
+5639.947265625
+23
+1.16941829483852e-13
+33
+355.94369802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5639.947265625
+21
+1.16941829483852e-13
+31
+355.94369802868596
+12
+5692.751953125
+22
+1.1768667637634955e-13
+32
+366.67807302868596
+13
+5692.751953125
+23
+1.1768667637634955e-13
+33
+366.67807302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5692.751953125
+21
+1.1768667637634955e-13
+31
+366.67807302868596
+12
+5698.119140625
+22
+1.3152976971464447e-13
+32
+566.178073028686
+13
+5698.119140625
+23
+1.3152976971464447e-13
+33
+566.178073028686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+5739.603515625
+20
+1.067481606581433e-13
+30
+209.03744802868596
+11
+5698.119140625
+21
+1.3152976971464447e-13
+31
+566.178073028686
+12
+5732.900390625
+22
+1.2813404851041987e-13
+32
+517.240573028686
+13
+5732.900390625
+23
+1.2813404851041987e-13
+33
+517.240573028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6258.111328125
+20
+1.330796367202125e-13
+30
+588.514010528686
+11
+6182.384765625
+21
+1.1334769928206256e-13
+31
+304.14682302868596
+12
+6182.384765625
+22
+1.323543054668197e-13
+32
+578.060885528686
+13
+6182.384765625
+23
+1.323543054668197e-13
+33
+578.060885528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6182.384765625
+20
+1.1334769928206256e-13
+30
+304.14682302868596
+11
+6258.111328125
+21
+1.330796367202125e-13
+31
+588.514010528686
+12
+6243.697265625
+22
+1.1307610663785495e-13
+32
+300.23276052868596
+13
+6243.697265625
+23
+1.1307610663785495e-13
+33
+300.23276052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6409.587890625
+20
+1.337821997279831e-13
+30
+598.639010528686
+11
+6365.291015625
+21
+1.1177506403087234e-13
+31
+281.48276052868596
+12
+6352.095703125
+22
+1.3202416590529786e-13
+32
+573.303073028686
+13
+6352.095703125
+23
+1.3202416590529786e-13
+33
+573.303073028686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+5859.626953125
+20
+1.072832144302649e-13
+30
+216.74838552868596
+11
+5991.322265625
+21
+1.1381282201405885e-13
+31
+310.84994802868596
+12
+6425.173828125
+22
+1.0541784459250358e-13
+32
+189.86557302868596
+13
+6425.173828125
+23
+1.0541784459250358e-13
+33
+189.86557302868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+5991.322265625
+20
+1.1381282201405885e-13
+30
+310.84994802868596
+11
+5859.626953125
+21
+1.072832144302649e-13
+31
+216.74838552868596
+12
+5922.228515625
+22
+1.155253193454997e-13
+32
+335.52963552868596
+13
+5922.228515625
+23
+1.155253193454997e-13
+33
+335.52963552868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6425.173828125
+20
+1.0541784459250358e-13
+30
+189.86557302868596
+11
+5991.322265625
+21
+1.1381282201405885e-13
+31
+310.84994802868596
+12
+6018.791015625
+22
+1.1335420449509748e-13
+32
+304.24057302868596
+13
+6018.791015625
+23
+1.1335420449509748e-13
+33
+304.24057302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6425.173828125
+20
+1.0541784459250358e-13
+30
+189.86557302868596
+11
+6018.791015625
+21
+1.1335420449509748e-13
+31
+304.24057302868596
+12
+6182.384765625
+22
+1.1334769928206256e-13
+32
+304.14682302868596
+13
+6182.384765625
+23
+1.1334769928206256e-13
+33
+304.14682302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6425.173828125
+20
+1.0541784459250358e-13
+30
+189.86557302868596
+11
+6182.384765625
+21
+1.1334769928206256e-13
+31
+304.14682302868596
+12
+6243.697265625
+22
+1.1307610663785495e-13
+32
+300.23276052868596
+13
+6243.697265625
+23
+1.1307610663785495e-13
+33
+300.23276052868596
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+6425.173828125
+20
+1.0541784459250358e-13
+30
+189.86557302868596
+11
+6243.697265625
+21
+1.1307610663785495e-13
+31
+300.23276052868596
+12
+6365.291015625
+22
+1.1177506403087234e-13
+32
+281.48276052868596
+13
+6365.291015625
+23
+1.1177506403087234e-13
+33
+281.48276052868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6425.173828125
+20
+1.0541784459250358e-13
+30
+189.86557302868596
+11
+6365.291015625
+21
+1.1177506403087234e-13
+31
+281.48276052868596
+12
+6409.587890625
+22
+1.337821997279831e-13
+32
+598.639010528686
+13
+6409.587890625
+23
+1.337821997279831e-13
+33
+598.639010528686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+6425.173828125
+20
+1.0541784459250358e-13
+30
+189.86557302868596
+11
+6409.587890625
+21
+1.337821997279831e-13
+31
+598.639010528686
+12
+6411.626953125
+22
+1.336260746151452e-13
+32
+596.389010528686
+13
+6411.626953125
+23
+1.336260746151452e-13
+33
+596.389010528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6602.783203125
+20
+6.11303542508157e-14
+30
+-448.38442697131404
+11
+5859.626953125
+21
+1.072832144302649e-13
+31
+216.74838552868596
+12
+6425.173828125
+22
+1.0541784459250358e-13
+32
+189.86557302868596
+13
+6425.173828125
+23
+1.0541784459250358e-13
+33
+189.86557302868596
+70
+0
+ 0
+3DFACE
+ 8
+ship2
+10
+6472.025390625
+20
+1.0540483416643376e-13
+30
+189.67807302868596
+11
+6602.783203125
+21
+6.11303542508157e-14
+31
+-448.38442697131404
+12
+6425.173828125
+22
+1.0541784459250358e-13
+32
+189.86557302868596
+13
+6425.173828125
+23
+1.0541784459250358e-13
+33
+189.86557302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6602.783203125
+20
+6.11303542508157e-14
+30
+-448.38442697131404
+11
+6472.025390625
+21
+1.0540483416643376e-13
+31
+189.67807302868596
+12
+6492.416015625
+22
+1.0628141162288829e-13
+32
+202.31088552868596
+13
+6492.416015625
+23
+1.0628141162288829e-13
+33
+202.31088552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6602.783203125
+20
+6.11303542508157e-14
+30
+-448.38442697131404
+11
+6492.416015625
+21
+1.0628141162288829e-13
+31
+202.31088552868596
+12
+6517.751953125
+22
+1.0988692594748883e-13
+32
+254.27182302868596
+13
+6517.751953125
+23
+1.0988692594748883e-13
+33
+254.27182302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6602.783203125
+20
+6.11303542508157e-14
+30
+-448.38442697131404
+11
+6517.751953125
+21
+1.0988692594748883e-13
+31
+254.27182302868596
+12
+6618.533203125
+22
+1.096722539173367e-13
+32
+251.17807302868596
+13
+6618.533203125
+23
+1.096722539173367e-13
+33
+251.17807302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6602.783203125
+20
+6.11303542508157e-14
+30
+-448.38442697131404
+11
+6618.533203125
+21
+1.096722539173367e-13
+31
+251.17807302868596
+12
+6958.306640625
+22
+1.1008208233853622e-13
+32
+257.08432302868596
+13
+6958.306640625
+23
+1.1008208233853622e-13
+33
+257.08432302868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+6958.306640625
+20
+1.1008208233853622e-13
+30
+257.08432302868596
+11
+6618.533203125
+21
+1.096722539173367e-13
+31
+251.17807302868596
+12
+6775.822265625
+22
+1.1010647688741715e-13
+32
+257.43588552868596
+13
+6775.822265625
+23
+1.1010647688741715e-13
+33
+257.43588552868596
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+6775.822265625
+20
+1.1010647688741715e-13
+30
+257.43588552868596
+11
+6618.533203125
+21
+1.096722539173367e-13
+31
+251.17807302868596
+12
+6632.853515625
+22
+1.1127253632392531e-13
+32
+274.24057302868596
+13
+6632.853515625
+23
+1.1127253632392531e-13
+33
+274.24057302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6775.822265625
+20
+1.1010647688741715e-13
+30
+257.43588552868596
+11
+6632.853515625
+21
+1.1127253632392531e-13
+31
+274.24057302868596
+12
+6760.845703125
+22
+1.1036343280229621e-13
+32
+261.13901052868596
+13
+6760.845703125
+23
+1.1036343280229621e-13
+33
+261.13901052868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+6760.845703125
+20
+1.1036343280229621e-13
+30
+261.13901052868596
+11
+6632.853515625
+21
+1.1127253632392531e-13
+31
+274.24057302868596
+12
+6660.720703125
+22
+1.1283704005882189e-13
+32
+296.78744802868596
+13
+6660.720703125
+23
+1.1283704005882189e-13
+33
+296.78744802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6760.845703125
+20
+1.1036343280229621e-13
+30
+261.13901052868596
+11
+6660.720703125
+21
+1.1283704005882189e-13
+31
+296.78744802868596
+12
+6685.025390625
+22
+1.13315173216888e-13
+32
+303.67807302868596
+13
+6685.025390625
+23
+1.13315173216888e-13
+33
+303.67807302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+6760.845703125
+20
+1.1036343280229621e-13
+30
+261.13901052868596
+11
+6685.025390625
+21
+1.13315173216888e-13
+31
+303.67807302868596
+12
+6700.025390625
+22
+1.1313627985842789e-13
+32
+301.09994802868596
+13
+6700.025390625
+23
+1.1313627985842789e-13
+33
+301.09994802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6958.306640625
+20
+1.1008208233853622e-13
+30
+257.08432302868596
+11
+6775.822265625
+21
+1.1010647688741715e-13
+31
+257.43588552868596
+12
+6869.150390625
+22
+1.1207430383047834e-13
+32
+285.79526052868596
+13
+6869.150390625
+23
+1.1207430383047834e-13
+33
+285.79526052868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6832.447265625
+20
+1.8655736677697377e-13
+30
+1359.209323028686
+11
+6723.673828125
+21
+1.7821280475643908e-13
+31
+1238.951510528686
+12
+6692.994140625
+22
+1.803432620253731e-13
+32
+1269.654635528686
+13
+6692.994140625
+23
+1.803432620253731e-13
+33
+1269.654635528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6723.673828125
+20
+1.7821280475643908e-13
+30
+1238.951510528686
+11
+6832.447265625
+21
+1.8655736677697377e-13
+31
+1359.209323028686
+12
+6793.728515625
+22
+1.8099053072234694e-13
+32
+1278.982760528686
+13
+6793.728515625
+23
+1.8099053072234694e-13
+33
+1278.982760528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+6793.728515625
+20
+1.8099053072234694e-13
+30
+1278.982760528686
+11
+6832.447265625
+21
+1.8655736677697377e-13
+31
+1359.209323028686
+12
+6822.861328125
+22
+1.7109284908972677e-13
+32
+1136.342135528686
+13
+6822.861328125
+23
+1.7109284908972677e-13
+33
+1136.342135528686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+6822.861328125
+20
+1.7109284908972677e-13
+30
+1136.342135528686
+11
+6762.416015625
+21
+1.6836716482809821e-13
+31
+1097.060885528686
+12
+6750.650390625
+22
+1.7172385475411334e-13
+32
+1145.435885528686
+13
+6750.650390625
+23
+1.7172385475411334e-13
+33
+1145.435885528686
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6762.416015625
+20
+1.6836716482809821e-13
+30
+1097.060885528686
+11
+6822.861328125
+21
+1.7109284908972677e-13
+31
+1136.342135528686
+12
+6807.697265625
+22
+1.6592283103022964e-13
+32
+1061.834323028686
+13
+6807.697265625
+23
+1.6592283103022964e-13
+33
+1061.834323028686
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+6807.697265625
+20
+1.6592283103022964e-13
+30
+1061.834323028686
+11
+6822.861328125
+21
+1.7109284908972677e-13
+31
+1136.342135528686
+12
+6869.150390625
+22
+1.1207430383047834e-13
+32
+285.79526052868596
+13
+6869.150390625
+23
+1.1207430383047834e-13
+33
+285.79526052868596
+70
+3
+ 0
+3DFACE
+ 8
+ship2
+10
+6869.150390625
+20
+1.1207430383047834e-13
+30
+285.79526052868596
+11
+6822.861328125
+21
+1.7109284908972677e-13
+31
+1136.342135528686
+12
+6832.447265625
+22
+1.8655736677697377e-13
+32
+1359.209323028686
+13
+6832.447265625
+23
+1.8655736677697377e-13
+33
+1359.209323028686
+70
+15
+ 0
+3DFACE
+ 8
+ship2
+10
+6869.150390625
+20
+1.1207430383047834e-13
+30
+285.79526052868596
+11
+6832.447265625
+21
+1.8655736677697377e-13
+31
+1359.209323028686
+12
+6958.306640625
+22
+1.1008208233853622e-13
+32
+257.08432302868596
+13
+6958.306640625
+23
+1.1008208233853622e-13
+33
+257.08432302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6958.306640625
+20
+1.1008208233853622e-13
+30
+257.08432302868596
+11
+6637.001953125
+21
+6.156457722089614e-14
+31
+-442.12661447131404
+12
+6602.783203125
+22
+6.11303542508157e-14
+32
+-448.38442697131404
+13
+6602.783203125
+23
+6.11303542508157e-14
+33
+-448.38442697131404
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+6637.001953125
+20
+6.156457722089614e-14
+30
+-442.12661447131404
+11
+6958.306640625
+21
+1.1008208233853622e-13
+31
+257.08432302868596
+12
+7215.087890625
+22
+6.435693991613256e-14
+32
+-401.88442697131404
+13
+7215.087890625
+23
+6.435693991613256e-14
+33
+-401.88442697131404
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+7391.478515625
+20
+1.059252512092268e-13
+30
+197.17807302868596
+11
+8232.978515625
+21
+5.684341886080802e-14
+31
+-510.16567697131404
+12
+7215.087890625
+22
+6.435693991613256e-14
+32
+-401.88442697131404
+13
+7215.087890625
+23
+6.435693991613256e-14
+33
+-401.88442697131404
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+8232.978515625
+20
+5.684341886080802e-14
+30
+-510.16567697131404
+11
+7391.478515625
+21
+1.059252512092268e-13
+31
+197.17807302868596
+12
+7567.892578125
+22
+1.0771418479382788e-13
+32
+222.95932302868596
+13
+7567.892578125
+23
+1.0771418479382788e-13
+33
+222.95932302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+7180.728515625
+20
+1.0958605984462411e-13
+30
+249.93588552868596
+11
+7215.087890625
+21
+6.435693991613256e-14
+31
+-401.88442697131404
+12
+6958.306640625
+22
+1.1008208233853622e-13
+32
+257.08432302868596
+13
+6958.306640625
+23
+1.1008208233853622e-13
+33
+257.08432302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+7215.087890625
+20
+6.435693991613256e-14
+30
+-401.88442697131404
+11
+7180.728515625
+21
+1.0958605984462411e-13
+31
+249.93588552868596
+12
+7270.306640625
+22
+1.0715473647282536e-13
+32
+214.89682302868596
+13
+7270.306640625
+23
+1.0715473647282536e-13
+33
+214.89682302868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+7215.087890625
+20
+6.435693991613256e-14
+30
+-401.88442697131404
+11
+7270.306640625
+21
+1.0715473647282536e-13
+31
+214.89682302868596
+12
+7288.353515625
+22
+1.0683923364063208e-13
+32
+210.34994802868596
+13
+7288.353515625
+23
+1.0683923364063208e-13
+33
+210.34994802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+7215.087890625
+20
+6.435693991613256e-14
+30
+-401.88442697131404
+11
+7288.353515625
+21
+1.0683923364063208e-13
+31
+210.34994802868596
+12
+7391.478515625
+22
+1.059252512092268e-13
+32
+197.17807302868596
+13
+7391.478515625
+23
+1.059252512092268e-13
+33
+197.17807302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+7567.892578125
+20
+1.0771418479382788e-13
+30
+222.95932302868596
+11
+7391.478515625
+21
+1.059252512092268e-13
+31
+197.17807302868596
+12
+7502.830078125
+22
+1.122271763367988e-13
+32
+287.99838552868596
+13
+7502.830078125
+23
+1.122271763367988e-13
+33
+287.99838552868596
+70
+0
+ 0
+3DFACE
+ 8
+ship2
+10
+7956.978515625
+20
+1.0916159469409603e-13
+30
+243.81869802868596
+11
+8232.978515625
+21
+5.684341886080802e-14
+31
+-510.16567697131404
+12
+7567.892578125
+22
+1.0771418479382788e-13
+32
+222.95932302868596
+13
+7567.892578125
+23
+1.0771418479382788e-13
+33
+222.95932302868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+8232.978515625
+20
+5.684341886080802e-14
+30
+-510.16567697131404
+11
+7956.978515625
+21
+1.0916159469409603e-13
+31
+243.81869802868596
+12
+7994.548828125
+22
+1.0959907027069393e-13
+32
+250.12338552868596
+13
+7994.548828125
+23
+1.0959907027069393e-13
+33
+250.12338552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+8232.978515625
+20
+5.684341886080802e-14
+30
+-510.16567697131404
+11
+7994.548828125
+21
+1.0959907027069393e-13
+31
+250.12338552868596
+12
+8034.861328125
+22
+1.0962997003260977e-13
+32
+250.56869802868596
+13
+8034.861328125
+23
+1.0962997003260977e-13
+33
+250.56869802868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+8232.978515625
+20
+5.684341886080802e-14
+30
+-510.16567697131404
+11
+8034.861328125
+21
+1.0962997003260977e-13
+31
+250.56869802868596
+12
+8046.298828125
+22
+1.0995035177457924e-13
+32
+255.18588552868596
+13
+8046.298828125
+23
+1.0995035177457924e-13
+33
+255.18588552868596
+70
+13
+ 0
+3DFACE
+ 8
+ship2
+10
+8232.978515625
+20
+5.684341886080802e-14
+30
+-510.16567697131404
+11
+8046.298828125
+21
+1.0995035177457924e-13
+31
+255.18588552868596
+12
+8153.408203125
+22
+1.145349006609342e-13
+32
+321.25619802868596
+13
+8153.408203125
+23
+1.145349006609342e-13
+33
+321.25619802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+8174.970703125
+20
+1.146959046835483e-13
+30
+323.57651052868596
+11
+8232.978515625
+21
+5.684341886080802e-14
+31
+-510.16567697131404
+12
+8153.408203125
+22
+1.145349006609342e-13
+32
+321.25619802868596
+13
+8153.408203125
+23
+1.145349006609342e-13
+33
+321.25619802868596
+70
+1
+ 0
+3DFACE
+ 8
+ship2
+10
+8232.978515625
+20
+5.684341886080802e-14
+30
+-510.16567697131404
+11
+8174.970703125
+21
+1.146959046835483e-13
+31
+323.57651052868596
+12
+8260.025390625
+22
+1.1327288933216106e-13
+32
+303.06869802868596
+13
+8260.025390625
+23
+1.1327288933216106e-13
+33
+303.06869802868596
+70
+1
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/hacks/glx/sierpinski3d.c b/hacks/glx/sierpinski3d.c
new file mode 100644
index 0000000..0317299
--- /dev/null
+++ b/hacks/glx/sierpinski3d.c
@@ -0,0 +1,581 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* Sierpinski3D --- 3D sierpinski gasket */
+
+#if 0
+static const char sccsid[] = "@(#)sierpinski3D.c 00.01 99/11/04 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ * 1999: written by Tim Robinson <the_luggage@bigfoot.com>
+ * a 3-D representation of the Sierpinski gasket fractal.
+ *
+ * 10-Dec-99 jwz rewrote to draw a set of tetrahedrons instead of a
+ * random scattering of points.
+ */
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_gasket 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "150"
+#define DEF_MAX_DEPTH "5"
+
+#include "rotator.h"
+#include "gltrackball.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static int max_depth;
+static int speed;
+static Bool do_spin;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ {"-depth", ".sierpinski3d.maxDepth", XrmoptionSepArg, 0 },
+ {"-speed", ".sierpinski3d.speed", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Int},
+ {&max_depth, "maxDepth", "MaxDepth", DEF_MAX_DEPTH, t_Int},
+};
+
+
+ENTRYPOINT ModeSpecOpt gasket_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct gasket_description =
+{"gasket", "init_gasket", "draw_gasket", NULL,
+ "draw_gasket", "init_gasket", "free_gasket", &gasket_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "Shows GL's Sierpinski gasket", 0, NULL};
+
+#endif
+
+typedef struct {
+ double x,y,z;
+} XYZ;
+
+typedef struct {
+ GLuint gasket0, gasket1, gasket2, gasket3;
+ GLXContext *glx_context;
+ Window window;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int current_depth;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor0;
+ int ccolor1;
+ int ccolor2;
+ int ccolor3;
+
+ int tick;
+
+} gasketstruct;
+
+static gasketstruct *gasket = NULL;
+
+
+static void
+triangle (GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat x3, GLfloat y3, GLfloat z3,
+ Bool wireframe_p)
+{
+ if (wireframe_p)
+ glBegin (GL_LINE_LOOP);
+ else
+ glBegin (GL_TRIANGLES);
+ glVertex3f (x1, y1, z1);
+ glVertex3f (x2, y2, z2);
+ glVertex3f (x3, y3, z3);
+ glEnd();
+}
+
+static void
+four_tetras (gasketstruct *gp,
+ XYZ *outer, XYZ *normals,
+ Bool wireframe_p, int countdown, int which,
+ int *countP)
+{
+ if (countdown <= 0)
+ {
+ (*countP)++;
+ if (which == 0)
+ {
+ glNormal3f (normals[0].x, normals[0].y, normals[0].z);
+ triangle (outer[0].x, outer[0].y, outer[0].z,
+ outer[1].x, outer[1].y, outer[1].z,
+ outer[2].x, outer[2].y, outer[2].z,
+ wireframe_p);
+ }
+ else if (which == 1)
+ {
+ glNormal3f (normals[1].x, normals[1].y, normals[1].z);
+ triangle (outer[0].x, outer[0].y, outer[0].z,
+ outer[3].x, outer[3].y, outer[3].z,
+ outer[1].x, outer[1].y, outer[1].z,
+ wireframe_p);
+ }
+ else if (which == 2)
+ {
+ glNormal3f (normals[2].x, normals[2].y, normals[2].z);
+ triangle (outer[0].x, outer[0].y, outer[0].z,
+ outer[2].x, outer[2].y, outer[2].z,
+ outer[3].x, outer[3].y, outer[3].z,
+ wireframe_p);
+ }
+ else
+ {
+ glNormal3f (normals[3].x, normals[3].y, normals[3].z);
+ triangle (outer[1].x, outer[1].y, outer[1].z,
+ outer[3].x, outer[3].y, outer[3].z,
+ outer[2].x, outer[2].y, outer[2].z,
+ wireframe_p);
+ }
+ }
+ else
+ {
+# define M01 0
+# define M02 1
+# define M03 2
+# define M12 3
+# define M13 4
+# define M23 5
+ XYZ inner[M23+1];
+ XYZ corner[4];
+
+ inner[M01].x = (outer[0].x + outer[1].x) / 2.0;
+ inner[M01].y = (outer[0].y + outer[1].y) / 2.0;
+ inner[M01].z = (outer[0].z + outer[1].z) / 2.0;
+
+ inner[M02].x = (outer[0].x + outer[2].x) / 2.0;
+ inner[M02].y = (outer[0].y + outer[2].y) / 2.0;
+ inner[M02].z = (outer[0].z + outer[2].z) / 2.0;
+
+ inner[M03].x = (outer[0].x + outer[3].x) / 2.0;
+ inner[M03].y = (outer[0].y + outer[3].y) / 2.0;
+ inner[M03].z = (outer[0].z + outer[3].z) / 2.0;
+
+ inner[M12].x = (outer[1].x + outer[2].x) / 2.0;
+ inner[M12].y = (outer[1].y + outer[2].y) / 2.0;
+ inner[M12].z = (outer[1].z + outer[2].z) / 2.0;
+
+ inner[M13].x = (outer[1].x + outer[3].x) / 2.0;
+ inner[M13].y = (outer[1].y + outer[3].y) / 2.0;
+ inner[M13].z = (outer[1].z + outer[3].z) / 2.0;
+
+ inner[M23].x = (outer[2].x + outer[3].x) / 2.0;
+ inner[M23].y = (outer[2].y + outer[3].y) / 2.0;
+ inner[M23].z = (outer[2].z + outer[3].z) / 2.0;
+
+ countdown--;
+
+ corner[0] = outer[0];
+ corner[1] = inner[M01];
+ corner[2] = inner[M02];
+ corner[3] = inner[M03];
+ four_tetras (gp, corner, normals, wireframe_p, countdown, which, countP);
+
+ corner[0] = inner[M01];
+ corner[1] = outer[1];
+ corner[2] = inner[M12];
+ corner[3] = inner[M13];
+ four_tetras (gp, corner, normals, wireframe_p, countdown, which, countP);
+
+ corner[0] = inner[M02];
+ corner[1] = inner[M12];
+ corner[2] = outer[2];
+ corner[3] = inner[M23];
+ four_tetras (gp, corner, normals, wireframe_p, countdown, which, countP);
+
+ corner[0] = inner[M03];
+ corner[1] = inner[M13];
+ corner[2] = inner[M23];
+ corner[3] = outer[3];
+ four_tetras (gp, corner, normals, wireframe_p, countdown, which, countP);
+ }
+}
+
+
+static void
+compile_gasket(ModeInfo *mi, int which)
+{
+ Bool wireframe_p = MI_IS_WIREFRAME(mi);
+ gasketstruct *gp = &gasket[MI_SCREEN(mi)];
+ int count = 0;
+ XYZ vertex[5];
+ XYZ normal[4];
+
+ vertex[0].x = -1; vertex[0].y = -1; vertex[0].z = -1;
+ vertex[1].x = 1; vertex[1].y = 1; vertex[1].z = -1;
+ vertex[2].x = 1; vertex[2].y = -1; vertex[2].z = 1;
+ vertex[3].x = -1; vertex[3].y = 1; vertex[3].z = 1;
+ vertex[4].x = 0; vertex[4].y = 0; vertex[4].z = 0; /* center */
+
+ normal[0].x = 1; normal[0].y = -1; normal[0].z = -1;
+ normal[1].x = -1; normal[1].y = 1; normal[1].z = -1;
+ normal[2].x = -1; normal[2].y = -1; normal[2].z = 1;
+ normal[3].x = 1; normal[3].y = 1; normal[3].z = 1;
+
+ four_tetras (gp, vertex, normal, wireframe_p,
+ (gp->current_depth < 0
+ ? -gp->current_depth : gp->current_depth),
+ which,
+ &count);
+ mi->polygon_count += count;
+}
+
+static void
+draw(ModeInfo *mi)
+{
+ Bool wireframe_p = MI_IS_WIREFRAME(mi);
+ gasketstruct *gp = &gasket[MI_SCREEN(mi)];
+
+ static const GLfloat pos[] = {-4.0, 3.0, 10.0, 1.0};
+ static const GLfloat white[] = {1.0, 1.0, 1.0, 1.0};
+
+ GLfloat color0[] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color1[] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color2[] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat color3[] = {0.0, 0.0, 0.0, 1.0};
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (!wireframe_p)
+ {
+ glColor4fv (white);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+
+ color0[0] = gp->colors[gp->ccolor0].red / 65536.0;
+ color0[1] = gp->colors[gp->ccolor0].green / 65536.0;
+ color0[2] = gp->colors[gp->ccolor0].blue / 65536.0;
+
+ color1[0] = gp->colors[gp->ccolor1].red / 65536.0;
+ color1[1] = gp->colors[gp->ccolor1].green / 65536.0;
+ color1[2] = gp->colors[gp->ccolor1].blue / 65536.0;
+
+ color2[0] = gp->colors[gp->ccolor2].red / 65536.0;
+ color2[1] = gp->colors[gp->ccolor2].green / 65536.0;
+ color2[2] = gp->colors[gp->ccolor2].blue / 65536.0;
+
+ color3[0] = gp->colors[gp->ccolor3].red / 65536.0;
+ color3[1] = gp->colors[gp->ccolor3].green / 65536.0;
+ color3[2] = gp->colors[gp->ccolor3].blue / 65536.0;
+
+ gp->ccolor0++;
+ gp->ccolor1++;
+ gp->ccolor2++;
+ gp->ccolor3++;
+ if (gp->ccolor0 >= gp->ncolors) gp->ccolor0 = 0;
+ if (gp->ccolor1 >= gp->ncolors) gp->ccolor1 = 0;
+ if (gp->ccolor2 >= gp->ncolors) gp->ccolor2 = 0;
+ if (gp->ccolor3 >= gp->ncolors) gp->ccolor3 = 0;
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ }
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glPushMatrix();
+
+ {
+ double x, y, z;
+ get_position (gp->rot, &x, &y, &z, !gp->button_down_p);
+ glTranslatef((x - 0.5) * 10,
+ (y - 0.5) * 10,
+ (z - 0.5) * 20);
+
+ gltrackball_rotate (gp->trackball);
+
+ get_rotation (gp->rot, &x, &y, &z, !gp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ glScalef (4, 4, 4);
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color0);
+ glCallList(gp->gasket0);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color1);
+ glCallList(gp->gasket1);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color2);
+ glCallList(gp->gasket2);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color3);
+ glCallList(gp->gasket3);
+
+ glPopMatrix();
+
+
+ if (gp->tick++ >= speed)
+ {
+ gp->tick = 0;
+ if (gp->current_depth >= max_depth)
+ gp->current_depth = -max_depth;
+ gp->current_depth++;
+
+ /* We make four different lists so that each face of the tetrahedrons
+ can have a different color (all triangles facing in the same
+ direction have the same color, which is different from all
+ triangles facing in other directions.)
+ */
+ glDeleteLists (gp->gasket0, 1);
+ glDeleteLists (gp->gasket1, 1);
+ glDeleteLists (gp->gasket2, 1);
+ glDeleteLists (gp->gasket3, 1);
+
+ mi->polygon_count = 0;
+ glNewList (gp->gasket0, GL_COMPILE); compile_gasket (mi, 0); glEndList();
+ glNewList (gp->gasket1, GL_COMPILE); compile_gasket (mi, 1); glEndList();
+ glNewList (gp->gasket2, GL_COMPILE); compile_gasket (mi, 2); glEndList();
+ glNewList (gp->gasket3, GL_COMPILE); compile_gasket (mi, 3); glEndList();
+
+ mi->recursion_depth = (gp->current_depth > 0
+ ? gp->current_depth
+ : -gp->current_depth);
+ }
+}
+
+
+/* new window size or exposure */
+ENTRYPOINT void
+reshape_gasket(ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+static void
+pinit(ModeInfo *mi)
+{
+ gasketstruct *gp = &gasket[MI_SCREEN(mi)];
+
+ /* draw the gasket */
+ gp->gasket0 = glGenLists(1);
+ gp->gasket1 = glGenLists(1);
+ gp->gasket2 = glGenLists(1);
+ gp->gasket3 = glGenLists(1);
+ gp->current_depth = 1; /* start out at level 1, not 0 */
+}
+
+
+ENTRYPOINT Bool
+gasket_handle_event (ModeInfo *mi, XEvent *event)
+{
+ gasketstruct *gp = &gasket[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, gp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &gp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == '+' || c == '=' ||
+ keysym == XK_Up || keysym == XK_Right || keysym == XK_Next)
+ {
+ gp->tick = speed;
+ gp->current_depth += (gp->current_depth > 0 ? 1 : -1);
+ gp->current_depth--;
+ return True;
+ }
+ else if (c == '-' || c == '_' ||
+ keysym == XK_Down || keysym == XK_Left || keysym == XK_Prior)
+ {
+ gp->tick = speed;
+ gp->current_depth -= (gp->current_depth > 0 ? 1 : -1);
+ gp->current_depth--;
+ return True;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ goto DEF;
+ }
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ DEF:
+ gp->tick = speed;
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_gasket(ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ gasketstruct *gp;
+
+ MI_INIT (mi, gasket);
+ gp = &gasket[screen];
+
+ gp->window = MI_WINDOW(mi);
+
+ {
+ double spin_speed = 1.0;
+ double wander_speed = 0.03;
+ gp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ 1.0,
+ do_wander ? wander_speed : 0,
+ True);
+ gp->trackball = gltrackball_init (True);
+ }
+
+ gp->ncolors = 255;
+ gp->colors = (XColor *) calloc(gp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ gp->colors, &gp->ncolors,
+ False, 0, False);
+ gp->ccolor0 = 0;
+ gp->ccolor1 = gp->ncolors * 0.25;
+ gp->ccolor2 = gp->ncolors * 0.5;
+ gp->ccolor3 = gp->ncolors * 0.75;
+ gp->tick = 999999;
+
+ if ((gp->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_gasket(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ pinit(mi);
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_gasket(ModeInfo * mi)
+{
+ gasketstruct *gp = &gasket[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!gp->glx_context) return;
+
+ glDrawBuffer(GL_BACK);
+
+ /* 0 = 4 polygons
+ 1 = 16 polygons
+ 2 = 64 polygons
+ 3 = 256 polygons
+ 4 = 1,024 polygons
+ 5 = 4,096 polygons
+ 6 = 16,384 polygons
+ 7 = 65,536 polygons, 30 fps (3GHz Core 2 Duo, GeForce 8800 GS)
+ 8 = 262,144 polygons, 12 fps
+ 9 = 1,048,576 polygons, 4 fps
+ 10 = 4,194,304 polygons, 1 fps
+ 11 = 16,777,216 polygons, 0.3 fps
+ 12 = 67,108,864 polygons, OOM!
+ 13 = 268,435,456 polygons
+ 14 = 1,073,741,824 polygons, 31 bits
+ 15 = 4,294,967,296 polygons, 33 bits
+ 16 = 17,179,869,184 polygons, 35 bits
+ */
+ if (max_depth > 10)
+ max_depth = 10;
+
+ glXMakeCurrent(display, window, *(gp->glx_context));
+ draw(mi);
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+ENTRYPOINT void
+free_gasket(ModeInfo * mi)
+{
+ gasketstruct *gp = &gasket[MI_SCREEN(mi)];
+
+ if (gp->glx_context)
+ {
+ /* Display lists MUST be freed while their glXContext is current. */
+ glXMakeCurrent(MI_DISPLAY(mi), gp->window, *(gp->glx_context));
+
+ if (glIsList(gp->gasket0)) glDeleteLists(gp->gasket0, 1);
+ if (glIsList(gp->gasket1)) glDeleteLists(gp->gasket1, 1);
+ if (glIsList(gp->gasket2)) glDeleteLists(gp->gasket2, 1);
+ if (glIsList(gp->gasket3)) glDeleteLists(gp->gasket3, 1);
+ }
+}
+
+XSCREENSAVER_MODULE_2 ("Sierpinski3D", sierpinski3d, gasket)
+
+/*********************************************************/
+
+#endif
diff --git a/hacks/glx/sierpinski3d.man b/hacks/glx/sierpinski3d.man
new file mode 100644
index 0000000..ed3b69a
--- /dev/null
+++ b/hacks/glx/sierpinski3d.man
@@ -0,0 +1,67 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+sierpinski3d - 3D Sierpinski triangle fractal.
+.SH SYNOPSIS
+.B sierpinski3d
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-depth \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+This draws the three-dimensional variant of the recursive Sierpinski
+triangle fractal, using GL.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Number of frames before changing shape. Default: 150.
+.TP 8
+.B \-depth \fInumber\fP
+Max depth to descend. Default: 5. You probably don't have enough
+memory for 6.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Tim Robinson and Jamie Zawinski. Permission to
+use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation. No representations are made about the suitability of
+this software for any purpose. It is provided "as is" without express
+or implied warranty.
+.SH AUTHOR
+Tim Robinson and Jamie Zawinski.
diff --git a/hacks/glx/skytentacles.c b/hacks/glx/skytentacles.c
new file mode 100644
index 0000000..1061482
--- /dev/null
+++ b/hacks/glx/skytentacles.c
@@ -0,0 +1,1103 @@
+/* Sky Tentacles, Copyright (c) 2008-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 9 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+# define free_tentacles 0
+# define release_tentacles 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#include "ximage-loader.h"
+#include "images/gen/scales_png.h"
+
+#ifdef USE_GL /* whole file */
+
+# ifndef HAVE_JWZGLES
+# define HAVE_POLYGONMODE
+# endif
+
+#define DEF_SPEED "1.0"
+#define DEF_SMOOTH "True"
+#define DEF_TEXTURE "True"
+#define DEF_CEL "False"
+#define DEF_INTERSECT "False"
+#define DEF_SLICES "16"
+#define DEF_SEGMENTS "24"
+#define DEF_WIGGLINESS "0.35"
+#define DEF_FLEXIBILITY "0.35"
+#define DEF_THICKNESS "1.0"
+#define DEF_LENGTH "9.0"
+#define DEF_COLOR "#305A30"
+#define DEF_STRIPE "#451A30"
+#define DEF_SUCKER "#453E30"
+#define DEF_DEBUG "False"
+
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+typedef struct {
+ GLfloat length; /* length of the segment coming out of this segment */
+ GLfloat th; /* vector tilt (on yz plane) from previous segment */
+ GLfloat phi; /* vector rotation (on xy plane) from previous segment */
+ GLfloat thickness; /* radius of tentacle at the bottom of this segment */
+ rotator *rot; /* motion modeller */
+} segment;
+
+typedef struct {
+ ModeInfo *mi;
+ GLfloat x, y, z; /* position of the base */
+ int nsegments;
+ segment *segments;
+ GLfloat tentacle_color[4], stripe_color[4], sucker_color[4];
+} tentacle;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int ntentacles;
+ int tentacles_size;
+ tentacle **tentacles;
+ GLfloat tentacle_color[4], stripe_color[4], sucker_color[4];
+
+ int torus_polys;
+ int torus_step;
+ XYZ *torus_points;
+ XYZ *torus_normals;
+
+ GLfloat line_thickness;
+ GLfloat outline_color[4];
+ XImage *texture;
+ GLuint texid;
+
+ Bool left_p;
+
+
+} tentacles_configuration;
+
+static tentacles_configuration *tcs = NULL;
+
+static int debug_p;
+static GLfloat arg_speed;
+static int smooth_p;
+static int texture_p;
+static int cel_p;
+static int intersect_p;
+static int arg_slices;
+static int arg_segments;
+static GLfloat arg_thickness;
+static GLfloat arg_length;
+static GLfloat arg_wiggliness;
+static GLfloat arg_flexibility;
+static char *arg_color, *arg_stripe, *arg_sucker;
+
+/* we can only have one light when doing cel shading */
+static GLfloat light_pos[4] = {1.0, 1.0, 1.0, 0.0};
+
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-no-smooth", ".smooth", XrmoptionNoArg, "False" },
+ { "-texture", ".texture", XrmoptionNoArg, "True" },
+ { "-no-texture", ".texture", XrmoptionNoArg, "False" },
+ { "-cel", ".cel", XrmoptionNoArg, "True" },
+ { "-no-cel", ".cel", XrmoptionNoArg, "False" },
+ { "-intersect", ".intersect", XrmoptionNoArg, "True" },
+ { "-no-intersect", ".intersect", XrmoptionNoArg, "False" },
+ { "-slices", ".slices", XrmoptionSepArg, 0 },
+ { "-segments", ".segments", XrmoptionSepArg, 0 },
+ { "-thickness", ".thickness", XrmoptionSepArg, 0 },
+ { "-length", ".length", XrmoptionSepArg, 0 },
+ { "-wiggliness", ".wiggliness", XrmoptionSepArg, 0 },
+ { "-flexibility", ".flexibility", XrmoptionSepArg, 0 },
+ { "-color", ".tentacleColor", XrmoptionSepArg, 0 },
+ { "-stripe-color", ".stripeColor", XrmoptionSepArg, 0 },
+ { "-sucker-color", ".suckerColor", XrmoptionSepArg, 0 },
+ { "-debug", ".debug", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ {&arg_speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&smooth_p, "smooth", "Smooth", DEF_SMOOTH, t_Bool},
+ {&texture_p, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&cel_p, "cel", "Cel", DEF_CEL, t_Bool},
+ {&intersect_p, "intersect", "Intersect", DEF_INTERSECT, t_Bool},
+ {&arg_slices, "slices", "Slices", DEF_SLICES, t_Int},
+ {&arg_segments, "segments", "Segments", DEF_SEGMENTS, t_Int},
+ {&arg_thickness, "thickness", "Thickness", DEF_THICKNESS, t_Float},
+ {&arg_length, "length", "Length", DEF_LENGTH, t_Float},
+ {&arg_wiggliness, "wiggliness", "Wiggliness", DEF_WIGGLINESS, t_Float},
+ {&arg_flexibility, "flexibility", "Flexibility", DEF_FLEXIBILITY, t_Float},
+ {&arg_color, "tentacleColor", "Color", DEF_COLOR, t_String},
+ {&arg_stripe, "stripeColor", "Color", DEF_STRIPE, t_String},
+ {&arg_sucker, "suckerColor", "Color", DEF_SUCKER, t_String},
+ {&debug_p, "debug", "Debug", DEF_DEBUG, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt tentacles_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_tentacles (ModeInfo *mi, int width, int height)
+{
+ tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ tc->line_thickness = (MI_IS_WIREFRAME (mi) ? 1 : MAX (3, width / 200));
+}
+
+
+static void
+normalize (GLfloat *x, GLfloat *y, GLfloat *z)
+{
+ GLfloat d = sqrt((*x)*(*x) + (*y)*(*y) + (*z)*(*z));
+ *x /= d;
+ *y /= d;
+ *z /= d;
+}
+
+static GLfloat
+dot (GLfloat x0, GLfloat y0, GLfloat z0,
+ GLfloat x1, GLfloat y1, GLfloat z1)
+{
+ return x0*x1 + y0*y1 + z0*z1;
+}
+
+
+static void
+compute_unit_torus (ModeInfo *mi, double ratio, int slices1, int slices2)
+{
+ tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
+ Bool wire = MI_IS_WIREFRAME (mi);
+ int i, j, k, fp;
+
+ if (wire) slices1 /= 2;
+ if (wire) slices2 /= 4;
+ if (slices1 < 3) slices1 = 3;
+ if (slices2 < 3) slices2 = 3;
+
+ tc->torus_polys = slices1 * (slices2+1) * 2;
+ tc->torus_points = (XYZ *) calloc (tc->torus_polys + 1,
+ sizeof (*tc->torus_points));
+ tc->torus_normals = (XYZ *) calloc (tc->torus_polys + 1,
+ sizeof (*tc->torus_normals));
+ tc->torus_step = 2 * (slices2+1);
+ fp = 0;
+ for (i = 0; i < slices1; i++)
+ for (j = 0; j <= slices2; j++)
+ for (k = 0; k <= 1; k++)
+ {
+ double s = (i + k) % slices1 + 0.5;
+ double t = j % slices2;
+ XYZ p;
+ p.x = cos(t*M_PI*2/slices2) * cos(s*M_PI*2/slices1);
+ p.y = sin(t*M_PI*2/slices2) * cos(s*M_PI*2/slices1);
+ p.z = sin(s*M_PI*2/slices1);
+ tc->torus_normals[fp] = p;
+
+ p.x = (1 + ratio * cos(s*M_PI*2/slices1)) * cos(t*M_PI*2/slices2) / 2;
+ p.y = (1 + ratio * cos(s*M_PI*2/slices1)) * sin(t*M_PI*2/slices2) / 2;
+ p.z = ratio * sin(s*M_PI*2/slices1) / 2;
+ tc->torus_points[fp] = p;
+ fp++;
+ }
+ if (fp != tc->torus_polys) abort();
+ tc->torus_polys = fp;
+}
+
+
+/* Initializes a new tentacle and stores it in the list.
+ */
+static tentacle *
+make_tentacle (ModeInfo *mi, int which, int total)
+{
+ tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
+ tentacle *t = (tentacle *) calloc (1, sizeof (*t));
+ double brightness;
+ int i;
+
+ t->mi = mi;
+
+ /* position tentacles on a grid */
+ {
+ int cols = (int) (sqrt(total) + 0.5);
+ int rows = (total+cols-1) / cols;
+ int xx = which % cols;
+ int yy = which / cols;
+ double spc = arg_thickness * 0.8;
+ if (!intersect_p) cols = 1, xx = 0;
+ t->x = (cols * spc / 2) - (spc * (xx + 0.5));
+ t->y = (rows * spc / 2) - (spc * (yy + 0.5));
+ t->z = 0;
+ }
+
+ /* Brighten or darken the colors of this tentacle from the default.
+ */
+ brightness = 0.6 + frand(3.0);
+ memcpy (t->tentacle_color, tc->tentacle_color, 4 * sizeof(*t->tentacle_color));
+ memcpy (t->stripe_color, tc->stripe_color, 4 * sizeof(*t->stripe_color));
+ memcpy (t->sucker_color, tc->sucker_color, 4 * sizeof(*t->sucker_color));
+# define FROB(X) \
+ t->X[0] *= brightness; if (t->X[0] > 1) t->X[0] = 1; \
+ t->X[1] *= brightness; if (t->X[1] > 1) t->X[1] = 1; \
+ t->X[2] *= brightness; if (t->X[2] > 1) t->X[2] = 1
+ FROB (tentacle_color);
+ FROB (stripe_color);
+ FROB (sucker_color);
+# undef FROB
+
+ t->nsegments = (arg_segments) + BELLRAND(arg_segments);
+
+ t->segments = (segment *) calloc (t->nsegments+1, sizeof(*t->segments));
+ for (i = 0; i < t->nsegments; i++)
+ {
+ double spin_speed = 0;
+ double spin_accel = 0;
+ double wander_speed = arg_speed * (0.02 + BELLRAND(0.1));
+ t->segments[i].rot = make_rotator (spin_speed, spin_speed, spin_speed,
+ spin_accel, wander_speed, True);
+ }
+
+ t->segments[0].thickness = (((arg_thickness * 0.5) +
+ BELLRAND(arg_thickness * 0.6))
+ / 1.0);
+
+ if (tc->tentacles_size <= tc->ntentacles)
+ {
+ tc->tentacles_size = (tc->tentacles_size * 1.2) + tc->ntentacles + 2;
+ tc->tentacles = (tentacle **)
+ realloc (tc->tentacles, tc->tentacles_size * sizeof(*tc->tentacles));
+ if (! tc->tentacles)
+ {
+ fprintf (stderr, "%s: out of memory (%d tentacles)\n",
+ progname, tc->tentacles_size);
+ exit (1);
+ }
+ }
+
+ tc->tentacles[tc->ntentacles++] = t;
+ return t;
+}
+
+
+static void
+draw_sucker (tentacle *t, Bool front_p)
+{
+ tentacles_configuration *tc = &tcs[MI_SCREEN(t->mi)];
+ Bool wire = MI_IS_WIREFRAME (t->mi);
+ int i, j;
+ int strips = tc->torus_polys / tc->torus_step;
+ int points = 0;
+
+ glFrontFace (front_p ? GL_CW : GL_CCW);
+ for (i = 0; i < strips; i++)
+ {
+ int ii = i * tc->torus_step;
+
+ /* Leave off the polygons on the underside. This reduces polygon
+ count by about 10% with the default settings. */
+ if (strips > 4 && i >= strips/2 && i < strips-1)
+ continue;
+
+ glBegin (wire ? GL_LINE_STRIP : GL_QUAD_STRIP);
+ for (j = 0; j < tc->torus_step; j++)
+ {
+ XYZ sp = tc->torus_points[ii+j];
+ XYZ sn = tc->torus_normals[ii+j];
+ glNormal3f(sn.x, sn.y, sn.z);
+ glVertex3f(sp.x, sp.y, sp.z);
+ points++;
+ }
+ glEnd();
+ }
+ t->mi->polygon_count += points/2;
+}
+
+static void
+draw_tentacle_1 (tentacle *t, Bool front_p, Bool outline_p)
+{
+ tentacles_configuration *tc = &tcs[MI_SCREEN(t->mi)];
+ int i;
+ Bool wire = MI_IS_WIREFRAME (t->mi);
+ XYZ ctr = { 0,0,0 }; /* current position of base of segment */
+ double cth = 0; /* overall orientation of current segment */
+ double cphi = 0;
+ double cth_cos = 1, cth_sin = 0;
+ double cphi_cos = 1, cphi_sin = 0;
+
+ GLfloat light[3]; /* vector to the light */
+
+ GLfloat t0 = 0.0; /* texture coordinate */
+
+ XYZ *ring, *oring; /* points around the edge (this, and previous) */
+ XYZ *norm, *onorm; /* their normals */
+ XYZ *ucirc; /* unit circle, to save some trig */
+
+ /* Which portion of the radius the indented/colored stripe takes up */
+ int indented_points = arg_slices * 0.2;
+
+ /* We do rotation this way to minimize the number of calls to sin/cos.
+ We have to hack the transformations manually instead of using
+ glRotate/glTranslate because those calls are not allowed *inside*
+ of a glBegin/glEnd block...
+ */
+# define ROT(P) do { \
+ XYZ _p = P; \
+ _p.y = ((P.y * cth_sin - P.x * cth_cos)); \
+ _p.x = ((P.y * cth_cos + P.x * cth_sin) * cphi_sin - (P.z * cphi_cos)); \
+ _p.z = ((P.y * cth_cos + P.x * cth_sin) * cphi_cos + (P.z * cphi_sin)); \
+ P = _p; \
+ } while(0)
+
+ ring = (XYZ *) malloc (arg_slices * sizeof(*ring));
+ norm = (XYZ *) malloc (arg_slices * sizeof(*norm));
+ oring = (XYZ *) malloc (arg_slices * sizeof(*oring));
+ onorm = (XYZ *) malloc (arg_slices * sizeof(*onorm));
+ ucirc = (XYZ *) malloc (arg_slices * sizeof(*ucirc));
+
+ light[0] = light_pos[0];
+ light[1] = light_pos[1];
+ light[2] = light_pos[2];
+ normalize (&light[0], &light[1], &light[2]);
+
+ for (i = 0; i < arg_slices; i++)
+ {
+ double a = M_PI * 2 * i / arg_slices;
+ ucirc[i].x = cos(a);
+ ucirc[i].y = sin(a);
+ ucirc[i].z = 0;
+ }
+
+
+# ifdef HAVE_POLYGONMODE
+ if (cel_p)
+ glPolygonMode (GL_FRONT_AND_BACK, (front_p ? GL_FILL : GL_LINE));
+# endif
+
+ glPushMatrix();
+ glTranslatef (t->x, t->y, t->z);
+
+ if (debug_p)
+ {
+ glPushAttrib (GL_ENABLE_BIT);
+ glDisable (GL_LIGHTING);
+ glDisable (GL_TEXTURE_1D);
+ glDisable (GL_TEXTURE_2D);
+ glColor3f (1, 1, 1);
+ glLineWidth (1);
+ glBegin(GL_LINE_LOOP);
+ for (i = 0; i < arg_slices; i++)
+ glVertex3f (arg_thickness / 2 * cos (M_PI * 2 * i / arg_slices),
+ arg_thickness / 2 * sin (M_PI * 2 * i / arg_slices),
+ 0);
+ glEnd();
+ glPopAttrib();
+ }
+
+ if (!front_p || outline_p)
+ glColor4fv (tc->outline_color);
+ else if (wire)
+ glColor4fv (t->tentacle_color);
+ else
+ {
+ static const GLfloat bspec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat bshiny = 128.0;
+ glMaterialfv (GL_FRONT, GL_SPECULAR, bspec);
+ glMateriali (GL_FRONT, GL_SHININESS, bshiny);
+ }
+
+ for (i = 0; i < t->nsegments; i++)
+ {
+ int j;
+ GLfloat t1 = t0 + i / (t->nsegments * M_PI * 2);
+
+ for (j = 0; j < arg_slices; j++)
+ {
+ /* Construct a vertical disc at the origin, to use as the
+ base of this segment.
+ */
+ double r = t->segments[i].thickness / 2;
+
+ if (j <= indented_points/2 || j >= arg_slices-indented_points/2)
+ r *= 0.75; /* indent the stripe */
+
+ if (outline_p)
+ r *= 1.1;
+
+ ring[j].x = r * ucirc[j].x;
+ ring[j].y = 0;
+ ring[j].z = r * ucirc[j].y;
+
+ /* Then rotate the points by the angle of the current segment. */
+ ROT(ring[j]);
+
+ /* Then move the ring to the base of this segment. */
+ ring[j].x += ctr.x;
+ ring[j].y += ctr.y;
+ ring[j].z += ctr.z;
+ }
+
+
+ /* Compute the normals of the faces on this segment. We do this
+ first so that the normals of the vertexes can be the average
+ of the normals of the faces.
+ #### Uh, except I didn't actually implement that...
+ but it would be a good idea.
+ */
+ if (i > 0)
+ for (j = 0; j <= arg_slices; j++)
+ {
+ int j0 = j % arg_slices;
+ int j1 = (j+1) % arg_slices;
+ norm[j0] = calc_normal (oring[j0], ring[j0], ring[j1]);
+ }
+
+ /* Draw!
+ */
+ if (i > 0)
+ {
+ int j;
+ glLineWidth (tc->line_thickness);
+ glFrontFace (front_p ? GL_CCW : GL_CW);
+ glBegin (wire ? GL_LINES : smooth_p ? GL_QUAD_STRIP : GL_QUADS);
+ for (j = 0; j <= arg_slices; j++)
+ {
+ int j0 = j % arg_slices;
+ int j1 = (j+1) % arg_slices;
+
+ GLfloat ts = j / (double) arg_slices;
+
+ if (!front_p || outline_p)
+ glColor4fv (tc->outline_color);
+ else if (j <= indented_points/2 ||
+ j >= arg_slices-indented_points/2)
+ {
+ glColor4fv (t->stripe_color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ t->stripe_color);
+ }
+ else
+ {
+ glColor4fv (t->tentacle_color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ t->tentacle_color);
+ }
+
+ /* For cel shading, the 1d texture coordinate (s) is the
+ dot product of the lighting vector and the vertex normal.
+ */
+ if (cel_p)
+ {
+ t0 = dot (light[0], light[1], light[2],
+ onorm[j0].x, onorm[j0].y, onorm[j0].z);
+ t1 = dot (light[0], light[1], light[2],
+ norm[j0].x, norm[j0].y, norm[j0].z);
+ if (t0 < 0) t0 = 0;
+ if (t1 < 0) t1 = 0;
+ }
+
+ glTexCoord2f (t0, ts);
+ glNormal3f (onorm[j0].x, onorm[j0].y, onorm[j0].z);
+ glVertex3f (oring[j0].x, oring[j0].y, oring[j0].z);
+
+ glTexCoord2f (t1, ts);
+ glNormal3f ( norm[j0].x, norm[j0].y, norm[j0].z);
+ glVertex3f ( ring[j0].x, ring[j0].y, ring[j0].z);
+
+ if (!smooth_p)
+ {
+ ts = j1 / (double) arg_slices;
+ glTexCoord2f (t1, ts);
+ glVertex3f ( ring[j1].x, ring[j1].y, ring[j1].z);
+ glTexCoord2f (t0, ts);
+ glVertex3f (oring[j1].x, oring[j1].y, oring[j1].z);
+ }
+ t->mi->polygon_count++;
+ }
+ glEnd ();
+
+ if (wire)
+ {
+ glBegin (GL_LINE_LOOP);
+ for (j = 0; j < arg_slices; j++)
+ glVertex3f (ring[j].x, ring[j].y, ring[j].z);
+ glEnd();
+ }
+
+ /* Now draw the suckers!
+ */
+ {
+ double seg_length = arg_length / t->nsegments;
+ double sucker_size = arg_thickness / 5;
+ double sucker_spacing = sucker_size * 1.3;
+ int nsuckers = seg_length / sucker_spacing;
+ double oth = cth - t->segments[i-1].th;
+ double ophi = cphi - t->segments[i-1].phi;
+ int k;
+
+ if (!wire)
+ glLineWidth (MAX (2, tc->line_thickness / 2.0));
+ glDisable (GL_TEXTURE_2D);
+
+ /* Sometimes we have N suckers on one segment;
+ sometimes we have one sucker every N segments. */
+ if (nsuckers == 0)
+ {
+ int segs_per_sucker =
+ (int) ((sucker_spacing / seg_length) + 0.5);
+ nsuckers = (i % segs_per_sucker) ? 0 : 1;
+ }
+
+ if (outline_p)
+ {
+ glColor4fv (tc->outline_color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ tc->outline_color);
+ }
+ else if (front_p)
+ {
+ glColor4fv (t->sucker_color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ t->sucker_color);
+ }
+
+ for (k = 0; k < nsuckers; k++)
+ {
+ double scale;
+ XYZ p0 = ring[0];
+ XYZ p1 = oring[0];
+ XYZ p;
+ p.x = p0.x + (p1.x - p0.x) * (k + 0.5) / nsuckers;
+ p.y = p0.y + (p1.y - p0.y) * (k + 0.5) / nsuckers;
+ p.z = p0.z + (p1.z - p0.z) * (k + 0.5) / nsuckers;
+
+ glPushMatrix();
+ glTranslatef (p.x, p.y, p.z);
+ glRotatef (ophi * 180 / M_PI, 0, 1, 0);
+ glRotatef (-oth * 180 / M_PI, 1, 0, 0);
+ glRotatef (90, 1, 0, 0);
+
+ { /* Not quite right: this is the slope of the outer edge
+ if the next segment was not tilted at all... If there
+ is any tilt, then the angle of this wall and the
+ opposite wall are very different.
+ */
+ double slope = ((t->segments[i-1].thickness -
+ t->segments[i].thickness) /
+ t->segments[i].length);
+ glRotatef (-45 * slope, 1, 0, 0);
+ }
+
+ scale = t->segments[i].thickness / arg_thickness;
+ scale *= 0.7 * sucker_size;
+
+ glScalef (scale, scale, scale * 4);
+
+ glTranslatef (0, 0, -0.1); /* embed */
+
+ if (outline_p)
+ {
+ scale = 1.1;
+ glScalef (scale, scale, scale);
+ }
+
+ glTranslatef (1, 0, 0); /* left */
+ draw_sucker (t, front_p);
+
+ glTranslatef (-2, 0, 0); /* right */
+ draw_sucker (t, front_p);
+
+ glPopMatrix();
+ }
+
+ if (texture_p) glEnable (GL_TEXTURE_2D);
+ }
+ }
+
+ /* Now draw the end caps.
+ */
+ glLineWidth (tc->line_thickness);
+ if (!outline_p && (i == 0 || i == t->nsegments-1))
+ {
+ int j;
+ GLfloat ctrz = ctr.z + ((i == 0 ? -1 : 1) *
+ t->segments[i].thickness / 4);
+ if (front_p)
+ {
+ glColor4fv (t->tentacle_color);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+ t->tentacle_color);
+ }
+ glFrontFace ((front_p ? i == 0 : i != 0) ? GL_CCW : GL_CW);
+ glBegin (wire ? GL_LINES : GL_TRIANGLE_FAN);
+ glNormal3f (0, 0, (i == 0 ? -1 : 1));
+ glTexCoord2f (t0 - 0.25, 0.5);
+ glVertex3f (ctr.x, ctr.y, ctrz);
+ for (j = 0; j <= arg_slices; j++)
+ {
+ int jj = j % arg_slices;
+ GLfloat ts = j / (double) arg_slices;
+ glTexCoord2f (t0, ts);
+ glNormal3f (norm[jj].x, norm[jj].y, norm[jj].z);
+ glVertex3f (ring[jj].x, ring[jj].y, ring[jj].z);
+ if (wire) glVertex3f (ctr.x, ctr.y, ctrz);
+ t->mi->polygon_count++;
+ }
+ glEnd();
+ }
+
+ /* Now move to the end of this segment in preparation for the next.
+ */
+ if (i != t->nsegments-1)
+ {
+ XYZ p;
+ p.x = 0;
+ p.y = t->segments[i].length;
+ p.z = 0;
+ ROT (p);
+ ctr.x += p.x;
+ ctr.y += p.y;
+ ctr.z += p.z;
+
+ /* Accumulate the current angle and rotation, to keep track of the
+ rotation of the upcoming segment.
+ */
+ cth += t->segments[i].th;
+ cphi += t->segments[i].phi;
+
+ cth_sin = sin (cth);
+ cth_cos = cos (cth);
+ cphi_sin = sin (cphi);
+ cphi_cos = cos (cphi);
+
+ memcpy (oring, ring, arg_slices * sizeof(*ring));
+ memcpy (onorm, norm, arg_slices * sizeof(*norm));
+ }
+
+ t0 = t1;
+ }
+
+ glPopMatrix();
+
+ free (ring);
+ free (norm);
+ free (oring);
+ free (onorm);
+ free (ucirc);
+}
+
+
+static void
+draw_tentacle (tentacle *t, Bool front_p)
+{
+# ifndef HAVE_POLYGONMODE
+ Bool wire = MI_IS_WIREFRAME (t->mi);
+ if (!wire && cel_p && front_p)
+ {
+ draw_tentacle_1 (t, front_p, True);
+ glClear (GL_DEPTH_BUFFER_BIT);
+ }
+# endif /* HAVE_POLYGONMODE */
+
+ draw_tentacle_1 (t, front_p, False);
+}
+
+
+static void
+move_tentacle (tentacle *t)
+{
+ /* tentacles_configuration *tc = &tcs[MI_SCREEN(t->mi)]; */
+ GLfloat len = 0;
+ double pos = 0;
+ int i, j;
+ int skip = t->nsegments * (1 - (arg_wiggliness + 0.5));
+ int tick = 0;
+ int last = 0;
+
+ for (i = 0; i < t->nsegments; i++)
+ {
+ if (++tick >= skip || i == t->nsegments-1)
+ {
+ /* randomize the motion of this segment... */
+ double x, y, z;
+ double phi_range = M_PI * 0.8 * arg_flexibility;
+ double th_range = M_PI * 0.9 * arg_flexibility;
+ get_position (t->segments[i].rot, &x, &y, &z, True);
+ t->segments[i].phi = phi_range * (0.5 - y);
+ t->segments[i].th = th_range * (0.5 - z);
+ t->segments[i].length = ((0.8 + ((0.5 - x) * 0.4)) *
+ (arg_length / t->nsegments));
+
+ /* ...and make the previous N segments be interpolated
+ between this one and the previous randomized one. */
+ for (j = last+1; j <= i; j++)
+ {
+ t->segments[j].phi = (t->segments[i].phi / (i - last));
+ t->segments[j].th = (t->segments[i].th / (i - last));
+ t->segments[j].length = (t->segments[i].length);
+ }
+
+ tick = 0;
+ last = i;
+ }
+ len += t->segments[i].length;
+ }
+
+ /* thickness of segment is relative to current position on tentacle
+ (not just the index of the segment). */
+ for (i = 0; i < t->nsegments; i++)
+ {
+ if (i > 0)
+ {
+ double tt = (t->segments[0].thickness * (len - pos) / len);
+ if (tt < 0.001) tt = 0.001;
+ t->segments[i].thickness = tt;
+ }
+ pos += t->segments[i].length;
+ }
+}
+
+
+
+ENTRYPOINT Bool
+tentacles_handle_event (ModeInfo *mi, XEvent *event)
+{
+ tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, tc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &tc->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ')
+ {
+ gltrackball_reset (tc->trackball, 0, 0);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+static void
+parse_color (ModeInfo *mi, const char *name, const char *s, GLfloat *a)
+{
+ XColor c;
+ a[3] = 1.0; /* alpha */
+
+ if (! XParseColor (MI_DISPLAY(mi), MI_COLORMAP(mi), s, &c))
+ {
+ fprintf (stderr, "%s: can't parse %s color %s", progname, name, s);
+ exit (1);
+ }
+ a[0] = c.red / 65536.0;
+ a[1] = c.green / 65536.0;
+ a[2] = c.blue / 65536.0;
+}
+
+
+ENTRYPOINT void
+init_tentacles (ModeInfo *mi)
+{
+ tentacles_configuration *tc;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+
+ MI_INIT (mi, tcs);
+
+ tc = &tcs[MI_SCREEN(mi)];
+
+ tc->glx_context = init_GL(mi);
+
+ reshape_tentacles (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+ glLightfv(GL_LIGHT0, GL_POSITION, light_pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ if (!wire && !cel_p)
+ {
+ glEnable (GL_LIGHTING);
+ glEnable (GL_LIGHT0);
+ }
+
+ tc->trackball = gltrackball_init (False);
+
+ tc->left_p = !(random() % 5);
+
+ if (arg_segments < 2) arg_segments = 2;
+ if (arg_slices < 3) arg_slices = 3;
+ if (arg_thickness < 0.1) arg_thickness = 0.1;
+ if (arg_wiggliness < 0) arg_wiggliness = 0;
+ if (arg_wiggliness > 1) arg_wiggliness = 1;
+ if (arg_flexibility < 0) arg_flexibility = 0;
+ if (arg_flexibility > 1) arg_flexibility = 1;
+
+ parse_color (mi, "tentacleColor", arg_color, tc->tentacle_color);
+ parse_color (mi, "stripeColor", arg_stripe, tc->stripe_color);
+ parse_color (mi, "suckerColor", arg_sucker, tc->sucker_color);
+
+ /* Black outlines for light colors, white outlines for dark colors. */
+ if (tc->tentacle_color[0] + tc->tentacle_color[1] + tc->tentacle_color[2]
+ < 0.4)
+ tc->outline_color[0] = 1;
+ tc->outline_color[1] = tc->outline_color[0];
+ tc->outline_color[2] = tc->outline_color[0];
+ tc->outline_color[3] = 1;
+
+ for (i = 0; i < MI_COUNT(mi); i++)
+ move_tentacle (make_tentacle (mi, i, MI_COUNT(mi)));
+
+ if (wire) texture_p = cel_p = False;
+ if (cel_p) texture_p = False;
+
+ if (texture_p || cel_p) {
+ glGenTextures(1, &tc->texid);
+# ifdef HAVE_GLBINDTEXTURE
+ glBindTexture ((cel_p ? GL_TEXTURE_1D : GL_TEXTURE_2D), tc->texid);
+# endif
+
+ if (cel_p)
+ {
+ /* "16 1 3 1",
+ "X c #808080",
+ "x c #C0C0C0",
+ ". c #FFFFFF",
+ "XXXxxxxx........"
+ */
+ int w = 16;
+ tc->texture = XCreateImage (MI_DISPLAY(mi), MI_VISUAL(mi),
+ 32, ZPixmap, 0, 0, w, 1, 32, 0);
+ tc->texture->data = (char *) calloc(1, tc->texture->bytes_per_line);
+ /* ABGR */
+ for (i = 0; i < 3; i++) XPutPixel (tc->texture, i, 0, 0xFF808080);
+ for (; i < 8; i++) XPutPixel (tc->texture, i, 0, 0xFFC0C0C0);
+ for (; i < w; i++) XPutPixel (tc->texture, i, 0, 0xFFFFFFFF);
+ }
+ else
+ tc->texture = image_data_to_ximage (MI_DISPLAY(mi), MI_VISUAL(mi),
+ scales_png, sizeof(scales_png));
+
+ if (!tc->texture) texture_p = cel_p = False;
+ }
+
+ if (texture_p) {
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ clear_gl_error();
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ tc->texture->width, tc->texture->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, tc->texture->data);
+ check_gl_error("texture");
+
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ glEnable(GL_TEXTURE_2D);
+ } else if (cel_p) {
+ clear_gl_error();
+ glTexImage1D (GL_TEXTURE_1D, 0, GL_RGBA,
+ tc->texture->width, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, tc->texture->data);
+ check_gl_error("texture");
+
+ glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+ glEnable(GL_TEXTURE_1D);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glEnable (GL_LINE_SMOOTH);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+
+ /* Dark gray instead of black, so the outlines show up */
+ glClearColor (0.13, 0.13, 0.13, 1.0);
+ }
+
+ compute_unit_torus (mi, 0.5,
+ MAX(5, arg_slices/6),
+ MAX(9, arg_slices/3));
+}
+
+
+ENTRYPOINT void
+draw_tentacles (ModeInfo *mi)
+{
+ tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!tc->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tc->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+# if 1
+ glScalef (3, 3, 3);
+# else
+ glPushAttrib (GL_ENABLE_BIT);
+ glPushMatrix();
+ { GLfloat s = 8.7/1600; glScalef(s,s,s); }
+ glTranslatef(-800,-514,0);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_TEXTURE_1D);
+ glDisable(GL_TEXTURE_2D);
+ glColor3f (1, 1, 1);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(0,0,0);
+ glVertex3f(0,1028,0);
+ glVertex3f(1600,1028,0);
+ glVertex3f(1600,0,0);
+ glEnd();
+ glPopMatrix();
+ glPopAttrib();
+# endif
+
+ gltrackball_rotate (tc->trackball);
+
+ mi->polygon_count = 0;
+
+ if (debug_p)
+ {
+ glPushAttrib (GL_ENABLE_BIT);
+ glDisable (GL_LIGHTING);
+ glDisable (GL_TEXTURE_1D);
+ glDisable (GL_TEXTURE_2D);
+ glColor3f (1, 1, 1);
+ glLineWidth (1);
+ glBegin(GL_LINES);
+ glVertex3f(-0.5, 0, 0); glVertex3f(0.5, 0, 0);
+ glVertex3f(0, -0.5, 0); glVertex3f(0, 0.5, 0);
+ glEnd();
+ glPopAttrib();
+ }
+ else
+ {
+ GLfloat rx = 45;
+ GLfloat ry = -45;
+ GLfloat rz = 70;
+ if (tc->left_p)
+ ry = -ry, rz = -rz;
+ glRotatef (ry, 0, 1, 0);
+ glRotatef (rx, 1, 0, 0);
+ glRotatef (rz, 0, 0, 1);
+ if (intersect_p)
+ glTranslatef (0, -2.0, -4.5);
+ else
+ glTranslatef (0, -2.5, -5.0);
+ }
+
+ if (!tc->button_down_p)
+ for (i = 0; i < tc->ntentacles; i++)
+ move_tentacle (tc->tentacles[i]);
+
+#if 1
+ for (i = 0; i < tc->ntentacles; i++)
+ {
+ if (! intersect_p)
+ glClear(GL_DEPTH_BUFFER_BIT);
+ draw_tentacle (tc->tentacles[i], True);
+ if (cel_p)
+ draw_tentacle (tc->tentacles[i], False);
+ }
+#else
+ glScalef (3, 3, 3);
+ glScalef (1, 1, 4);
+ glColor3f(1,1,1);
+ glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
+ draw_sucker (tc->tentacles[0], True);
+ if (cel_p)
+ {
+ glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);
+ glLineWidth (tc->line_thickness);
+ glColor4fv (tc->outline_color);
+ draw_sucker (tc->tentacles[0], False);
+ }
+#endif
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("SkyTentacles", skytentacles, tentacles)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/skytentacles.man b/hacks/glx/skytentacles.man
new file mode 100644
index 0000000..2e5cd16
--- /dev/null
+++ b/hacks/glx/skytentacles.man
@@ -0,0 +1,102 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+skytentacles - 3D tentacles from the sky!
+.SH SYNOPSIS
+.B skytentacles
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fIint\fP]
+[\-speed \fIratio\fP]
+[\-count \fIint\fP]
+[\-slices \fIint\fP]
+[\-length \fIfloat\fP]
+[\-wiggliness \fIratio\fP]
+[\-flexibility \fIratio\fP]
+[\-color \fIcolor\fP]
+[\-stripe\-color \fIcolor\fP]
+[\-sucker\-color \fIcolor\fP]
+[\-segments \fIint\fP]
+[\-thickness \fIratio\fP]
+[\-no\-smooth]
+[\-fps]
+.SH DESCRIPTION
+There is a tentacled abomination in the sky. From above you it devours.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fIint\fP
+Delay between frames, in microseconds. Default 30000.
+.TP 8
+.B \-speed \fIratio\fP
+Less than 1 for slower, greater than 1 for faster. Default 1.
+.TP 8
+.B \-count \fIint\fP
+How many tentacles. Default 8.
+.TP 8
+.B \-thickness \fIratio\fP
+Less than 1 for thinner tentacles, greater than 1 for thicker. Default 1.
+.TP 8
+.B \-length \fIratio\fP
+Length of the tentacles. Default 9.
+.TP 8
+.B \-wiggliness \fIratio\fP
+A measure of how bendy the tentacles are. Smaller numbers result in
+smoother flexing; larger numbers make it "crinkly". Default 0.35.
+.TP 8
+.B \-flexibility \fIratio\fP
+Another measure of how bendy the tentacles are. Smaller numbers
+result in straighter tentacles; larger numbers result in more extreme
+curves. Default 0.35.
+.TP 8
+.B \-color \fIcolor\fP
+.TP 8
+.B \-stripe\-color \fIcolor\fP
+.TP 8
+.B \-sucker\-color \fIcolor\fP
+The colors of the various parts of the tentacle. Default green
+with a redish stripe.
+.TP 8
+.B \-slices \fIint\fP
+.TP 8
+.B \-segments \fIint\fP
+Larger numbers increase number of polygons in the object mesh.
+Default 32.
+.TP 8
+.B \-no\-smooth
+Make the tentacles appear faceted instead of smooth.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2008 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/sonar-icmp.c b/hacks/glx/sonar-icmp.c
new file mode 100644
index 0000000..3464c37
--- /dev/null
+++ b/hacks/glx/sonar-icmp.c
@@ -0,0 +1,1703 @@
+/* sonar, Copyright (c) 1998-2018 Jamie Zawinski and Stephen Martin
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * This implements the "ping" sensor for sonar.
+ */
+
+#include "screenhackI.h"
+#include "sonar.h"
+#include "version.h"
+#include "async_netdb.h"
+
+#undef usleep /* conflicts with unistd.h on OSX */
+
+#ifdef USE_IPHONE
+ /* Note: to get this to compile for iPhone, you need to fix Xcode!
+ The icmp headers exist for the simulator build environment, but
+ not for the real-device build environment. This appears to
+ just be an Apple bug, not intentional.
+
+ xc=/Applications/Xcode.app/Contents
+ for path in /Developer/Platforms/iPhone*?/Developer/SDKs/?* \
+ $xc/Developer/Platforms/iPhone*?/Developer/SDKs/?* ; do
+ for file in \
+ /usr/include/netinet/ip.h \
+ /usr/include/netinet/in_systm.h \
+ /usr/include/netinet/ip_icmp.h \
+ /usr/include/netinet/ip_var.h \
+ /usr/include/netinet/udp.h
+ do
+ ln -s "$file" "$path$file"
+ done
+ done
+ */
+#endif
+
+#ifndef HAVE_MOBILE
+# define READ_FILES
+#endif
+
+#if defined(HAVE_ICMP) || defined(HAVE_ICMPHDR)
+# include <unistd.h>
+# include <sys/stat.h>
+# include <limits.h>
+# include <signal.h>
+# include <fcntl.h>
+# include <sys/types.h>
+# include <sys/time.h>
+# include <sys/ipc.h>
+# ifndef HAVE_ANDROID
+# include <sys/shm.h>
+# endif
+# include <sys/socket.h>
+# include <netinet/in_systm.h>
+# include <netinet/in.h>
+# include <netinet/ip.h>
+# include <netinet/ip_icmp.h>
+# include <netinet/udp.h>
+# include <arpa/inet.h>
+# include <netdb.h>
+# include <errno.h>
+# ifdef HAVE_GETIFADDRS
+# include <ifaddrs.h>
+# endif
+#endif /* HAVE_ICMP || HAVE_ICMPHDR */
+
+#if defined(HAVE_ICMP)
+# define HAVE_PING
+# define ICMP icmp
+# define ICMP_TYPE(p) (p)->icmp_type
+# define ICMP_CODE(p) (p)->icmp_code
+# define ICMP_CHECKSUM(p) (p)->icmp_cksum
+# define ICMP_ID(p) (p)->icmp_id
+# define ICMP_SEQ(p) (p)->icmp_seq
+#elif defined(HAVE_ICMPHDR)
+# define HAVE_PING
+# define ICMP icmphdr
+# define ICMP_TYPE(p) (p)->type
+# define ICMP_CODE(p) (p)->code
+# define ICMP_CHECKSUM(p) (p)->checksum
+# define ICMP_ID(p) (p)->un.echo.id
+# define ICMP_SEQ(p) (p)->un.echo.sequence
+#else
+# undef HAVE_PING
+#endif
+
+#ifndef HAVE_MOBILE
+# define LOAD_FILES
+#endif
+
+#ifndef HAVE_PING
+
+sonar_sensor_data *
+sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret,
+ const char *subnet, int timeout,
+ Bool resolve_p, Bool times_p, Bool debug_p)
+{
+ if (! (!subnet || !*subnet || !strcmp(subnet, "default")))
+ fprintf (stderr, "%s: not compiled with support for pinging hosts.\n",
+ progname);
+ return 0;
+}
+
+#else /* HAVE_PING -- whole file */
+
+
+#if defined(__DECC) || defined(_IP_VHL)
+ /* This is how you do it on DEC C, and possibly some BSD systems. */
+# define IP_HDRLEN(ip) ((ip)->ip_vhl & 0x0F)
+#else
+ /* This is how you do it on everything else. */
+# define IP_HDRLEN(ip) ((ip)->ip_hl)
+#endif
+
+/* yes, there is only one, even when multiple savers are running in the
+ same address space - since we can only open this socket before dropping
+ privs.
+ */
+static int global_icmpsock = 0;
+
+/* Set by a signal handler. */
+static int timer_expired;
+
+
+
+static u_short checksum(u_short *, int);
+static long delta(struct timeval *, struct timeval *);
+
+
+typedef struct {
+ Display *dpy; /* Only used to get *useThreads. */
+
+ char *version; /* short version number of xscreensaver */
+ int icmpsock; /* socket for sending pings */
+ int pid; /* our process ID */
+ int seq; /* packet sequence number */
+ int timeout; /* packet timeout */
+
+ int target_count;
+ sonar_bogie *targets; /* the hosts we will ping;
+ those that pong end up on ssd->pending. */
+ sonar_bogie *last_pinged; /* pointer into 'targets' list */
+ double last_ping_time;
+
+ Bool resolve_p;
+ Bool times_p;
+ Bool debug_p;
+
+} ping_data;
+
+typedef struct {
+ async_name_from_addr_t lookup_name;
+ async_addr_from_name_t lookup_addr;
+ async_netdb_sockaddr_storage_t address; /* ip address */
+ socklen_t addrlen;
+ char *fallback;
+} ping_bogie;
+
+
+
+/* Packs an IP address quad into bigendian network order. */
+static in_addr_t
+pack_addr (unsigned int a, unsigned int b, unsigned int c, unsigned int d)
+{
+ unsigned long i = (((a & 255) << 24) |
+ ((b & 255) << 16) |
+ ((c & 255) << 8) |
+ ((d & 255) ));
+ return htonl (i);
+}
+
+/* Unpacks an IP address quad from bigendian network order. */
+static void
+unpack_addr (unsigned long addr,
+ unsigned int *a, unsigned int *b,
+ unsigned int *c, unsigned int *d)
+{
+ addr = ntohl (addr);
+ *a = (addr >> 24) & 255;
+ *b = (addr >> 16) & 255;
+ *c = (addr >> 8) & 255;
+ *d = (addr ) & 255;
+}
+
+
+
+
+/* Resolves the bogie's name (either a hostname or ip address string)
+ to a hostent. Returns 1 if successful, 0 if something went wrong.
+ */
+static int
+resolve_bogie_hostname (ping_data *pd, sonar_bogie *sb, Bool resolve_p)
+{
+ ping_bogie *pb = (ping_bogie *) sb->closure;
+
+ unsigned int ip[4];
+ char c;
+
+ if (4 == sscanf (sb->name, " %u.%u.%u.%u %c",
+ &ip[0], &ip[1], &ip[2], &ip[3], &c))
+ {
+ /* It's an IP address.
+ */
+ struct sockaddr_in *iaddr = (struct sockaddr_in *) &(pb->address);
+
+ if (ip[3] == 0)
+ {
+ if (pd->debug_p > 1)
+ fprintf (stderr, "%s: ignoring bogus IP %s\n",
+ progname, sb->name);
+ return 0;
+ }
+
+ iaddr->sin_family = AF_INET;
+ iaddr->sin_addr.s_addr = pack_addr (ip[0], ip[1], ip[2], ip[3]);
+ pb->addrlen = sizeof(struct sockaddr_in);
+
+ if (resolve_p)
+ {
+ pb->lookup_name =
+ async_name_from_addr_start (pd->dpy,
+ (const struct sockaddr *)&pb->address,
+ pb->addrlen);
+ if (!pb->lookup_name)
+ {
+ fprintf (stderr, "%s: unable to start host resolution.\n",
+ progname);
+ }
+ }
+ }
+ else
+ {
+ /* It's a host name. */
+
+ /* don't waste time being confused by non-hostname tokens
+ in .ssh/known_hosts */
+ if (!strcmp (sb->name, "ssh-rsa") ||
+ !strcmp (sb->name, "ssh-dsa") ||
+ !strcmp (sb->name, "ssh-dss") ||
+ !strncmp (sb->name, "ecdsa-", 6) ||
+ strlen (sb->name) >= 80)
+ return 0;
+
+ /* .ssh/known_hosts sometimes contains weirdness like "[host]:port".
+ Ignore it. */
+ if (strchr (sb->name, '['))
+ {
+ if (pd->debug_p)
+ fprintf (stderr, "%s: ignoring bogus address \"%s\"\n",
+ progname, sb->name);
+ return 0;
+ }
+
+ /* If the name contains a colon, it's probably IPv6. */
+ if (strchr (sb->name, ':'))
+ {
+ if (pd->debug_p)
+ fprintf (stderr, "%s: ignoring ipv6 address \"%s\"\n",
+ progname, sb->name);
+ return 0;
+ }
+
+ pb->lookup_addr = async_addr_from_name_start(pd->dpy, sb->name);
+ if (!pb->lookup_addr)
+ {
+ if (pd->debug_p)
+ /* Either address space exhaustion or RAM exhaustion. */
+ fprintf (stderr, "%s: unable to start host resolution.\n",
+ progname);
+ return 0;
+ }
+ }
+ return 1;
+}
+
+
+static void
+print_address (FILE *out, int width, const void *sockaddr, socklen_t addrlen)
+{
+#ifdef HAVE_GETADDRINFO
+ char buf[NI_MAXHOST];
+#else
+ char buf[50];
+#endif
+
+ const struct sockaddr *addr = (const struct sockaddr *)sockaddr;
+ const char *ips = buf;
+
+ if (!addr->sa_family)
+ ips = "<no address>";
+ else
+ {
+#ifdef HAVE_GETADDRINFO
+ int gai_error = getnameinfo (sockaddr, addrlen, buf, sizeof(buf),
+ NULL, 0, NI_NUMERICHOST);
+ if (gai_error == EAI_SYSTEM)
+ ips = strerror(errno);
+ else if (gai_error)
+ ips = gai_strerror(gai_error);
+#else
+ switch (addr->sa_family)
+ {
+ case AF_INET:
+ {
+ u_long ip = ((struct sockaddr_in *)sockaddr)->sin_addr.s_addr;
+ unsigned int a, b, c, d;
+ unpack_addr (ip, &a, &b, &c, &d); /* ip is in network order */
+ sprintf (buf, "%u.%u.%u.%u", a, b, c, d);
+ }
+ break;
+ default:
+ ips = "<unknown>";
+ break;
+ }
+#endif
+ }
+
+ fprintf (out, "%-*s", width, ips);
+}
+
+
+static void
+print_host (FILE *out, const sonar_bogie *sb)
+{
+ const ping_bogie *pb = (const ping_bogie *) sb->closure;
+ const char *name = sb->name;
+ if (!name || !*name) name = "<unknown>";
+ print_address (out, 16, &pb->address, pb->addrlen);
+ fprintf (out, " %s\n", name);
+}
+
+
+static Bool
+is_address_ok(Bool debug_p, const sonar_bogie *b)
+{
+ const ping_bogie *pb = (const ping_bogie *) b->closure;
+ const struct sockaddr *addr = (const struct sockaddr *)&pb->address;
+
+ switch (addr->sa_family)
+ {
+ case AF_INET:
+ {
+ struct sockaddr_in *iaddr = (struct sockaddr_in *) addr;
+
+ /* Don't ever use loopback (127.0.0.x) hosts */
+ unsigned long ip = iaddr->sin_addr.s_addr;
+ if ((ntohl (ip) & 0xFFFFFF00L) == 0x7f000000L) /* 127.0.0.x */
+ {
+ if (debug_p)
+ fprintf (stderr, "%s: ignoring loopback host %s\n",
+ progname, b->name);
+ return False;
+ }
+
+ /* Don't ever use broadcast (255.x.x.x) hosts */
+ if ((ntohl (ip) & 0xFF000000L) == 0xFF000000L) /* 255.x.x.x */
+ {
+ if (debug_p)
+ fprintf (stderr, "%s: ignoring broadcast host %s\n",
+ progname, b->name);
+ return False;
+ }
+ }
+
+ break;
+ }
+
+ return True;
+}
+
+
+/* Create a sonar_bogie from a host name or ip address string.
+ Returns NULL if the name could not be resolved.
+ */
+static sonar_bogie *
+bogie_for_host (sonar_sensor_data *ssd, const char *name, const char *fallback)
+{
+ ping_data *pd = (ping_data *) ssd->closure;
+ sonar_bogie *b = (sonar_bogie *) calloc (1, sizeof(*b));
+ ping_bogie *pb = (ping_bogie *) calloc (1, sizeof(*pb));
+ Bool resolve_p = pd->resolve_p;
+
+ b->name = strdup (name);
+ b->closure = pb;
+
+ if (! resolve_bogie_hostname (pd, b, resolve_p))
+ goto FAIL;
+
+ if (! pb->lookup_addr && ! is_address_ok (pd->debug_p, b))
+ goto FAIL;
+
+ if (pd->debug_p > 1)
+ {
+ fprintf (stderr, "%s: added ", progname);
+ print_host (stderr, b);
+ }
+
+ if (fallback)
+ pb->fallback = strdup (fallback);
+ return b;
+
+ FAIL:
+ if (b) sonar_free_bogie (ssd, b);
+
+ if (fallback)
+ return bogie_for_host (ssd, fallback, NULL);
+
+ return 0;
+}
+
+
+#ifdef READ_FILES
+
+/* Return a list of bogies read from a file.
+ The file can be like /etc/hosts or .ssh/known_hosts or probably
+ just about anything that has host names in it.
+ */
+static sonar_bogie *
+read_hosts_file (sonar_sensor_data *ssd, const char *filename)
+{
+ ping_data *pd = (ping_data *) ssd->closure;
+ FILE *fp;
+ char buf[LINE_MAX];
+ char *p;
+ sonar_bogie *list = 0;
+ char *addr, *name;
+ sonar_bogie *new;
+
+ /* Kludge: on OSX, variables have not been expanded in the command
+ line arguments, so as a special case, allow the string to begin
+ with literal "$HOME/" or "~/".
+
+ This is so that the "Known Hosts" menu item in sonar.xml works.
+ */
+ if (!strncmp(filename, "~/", 2) || !strncmp(filename, "$HOME/", 6))
+ {
+ char *s = strchr (filename, '/');
+ strcpy (buf, getenv("HOME"));
+ strcat (buf, s);
+ filename = buf;
+ }
+
+ fp = fopen(filename, "r");
+ if (!fp)
+ {
+ char buf2[1024];
+ sprintf(buf2, "%s: %s", progname, filename);
+#ifdef HAVE_JWXYZ
+ if (pd->debug_p) /* on OSX don't syslog this */
+#endif
+ perror (buf2);
+ return 0;
+ }
+
+ if (pd->debug_p)
+ fprintf (stderr, "%s: reading \"%s\"\n", progname, filename);
+
+ while ((p = fgets(buf, LINE_MAX, fp)))
+ {
+ while ((*p == ' ') || (*p == '\t')) /* skip whitespace */
+ p++;
+ if (*p == '#') /* skip comments */
+ continue;
+
+ /* Get the name and address */
+
+ if ((addr = strtok(buf, " ,;\t\n")))
+ name = strtok(0, " ,;\t\n");
+ else
+ continue;
+
+ /* Check to see if the addr looks like an addr. If not, assume
+ the addr is a name and there is no addr. This way, we can
+ handle files whose lines have "xx.xx.xx.xx hostname" as their
+ first two tokens, and also files that have a hostname as their
+ first token (like .ssh/known_hosts and .rhosts.)
+ */
+ {
+ int i; char c;
+ if (4 != sscanf(addr, "%d.%d.%d.%d%c", &i, &i, &i, &i, &c))
+ {
+ name = addr;
+ addr = 0;
+ }
+ }
+
+ /* If the name is all digits, it's not a name. */
+ if (name)
+ {
+ const char *s;
+ for (s = name; *s; s++)
+ if (*s < '0' || *s > '9')
+ break;
+ if (! *s)
+ {
+ if (pd->debug_p > 1)
+ fprintf (stderr, "%s: skipping bogus name \"%s\" (%s)\n",
+ progname, name, addr);
+ name = 0;
+ }
+ }
+
+ /* Create a new target using first the name then the address */
+
+ if (!name)
+ {
+ name = addr;
+ addr = NULL;
+ }
+
+ new = bogie_for_host (ssd, name, addr);
+
+ if (new)
+ {
+ new->next = list;
+ list = new;
+ }
+ }
+
+ fclose(fp);
+ return list;
+}
+#endif /* READ_FILES */
+
+
+static sonar_bogie **
+found_duplicate_host (const ping_data *pd, sonar_bogie **list,
+ sonar_bogie *bogie)
+{
+ if (pd->debug_p)
+ {
+ fprintf (stderr, "%s: deleted duplicate: ", progname);
+ print_host (stderr, bogie);
+ }
+
+ return list;
+}
+
+
+static sonar_bogie **
+find_duplicate_host (const ping_data *pd, sonar_bogie **list,
+ sonar_bogie *bogie)
+{
+ const ping_bogie *pb = (const ping_bogie *) bogie->closure;
+ const struct sockaddr *addr1 = (const struct sockaddr *) &(pb->address);
+
+ while(*list)
+ {
+ const ping_bogie *pb2 = (const ping_bogie *) (*list)->closure;
+
+ if (!pb2->lookup_addr)
+ {
+ const struct sockaddr *addr2 =
+ (const struct sockaddr *) &(pb2->address);
+
+ if (addr1->sa_family == addr2->sa_family)
+ {
+ switch (addr1->sa_family)
+ {
+ case AF_INET:
+ {
+ unsigned long ip1 =
+ ((const struct sockaddr_in *)addr1)->sin_addr.s_addr;
+ const struct sockaddr_in *i2 =
+ (const struct sockaddr_in *)addr2;
+ unsigned long ip2 = i2->sin_addr.s_addr;
+
+ if (ip1 == ip2)
+ return found_duplicate_host (pd, list, bogie);
+ }
+ break;
+#ifdef AF_INET6
+ case AF_INET6:
+ {
+ if (! memcmp(
+ &((const struct sockaddr_in6 *)addr1)->sin6_addr,
+ &((const struct sockaddr_in6 *)addr2)->sin6_addr,
+ 16))
+ return found_duplicate_host (pd, list, bogie);
+ }
+ break;
+#endif
+ default:
+ {
+ /* Fallback behavior: Just memcmp the two addresses.
+
+ For this to work, unused space in the sockaddr must be
+ set to zero. Which may actually be the case:
+ - async_addr_from_name_finish won't put garbage into
+ sockaddr_in.sin_zero or elsewhere unless getaddrinfo
+ does.
+ - ping_bogie is allocated with calloc(). */
+
+ if (pb->addrlen == pb2->addrlen &&
+ ! memcmp(addr1, addr2, pb->addrlen))
+ return found_duplicate_host (pd, list, bogie);
+ }
+ break;
+ }
+ }
+ }
+
+ list = &(*list)->next;
+ }
+
+ return NULL;
+}
+
+
+static sonar_bogie *
+delete_duplicate_hosts (sonar_sensor_data *ssd, sonar_bogie *list)
+{
+ ping_data *pd = (ping_data *) ssd->closure;
+ sonar_bogie *head = list;
+ sonar_bogie *sb = head;
+
+ while (sb)
+ {
+ ping_bogie *pb = (ping_bogie *) sb->closure;
+
+ if (!pb->lookup_addr)
+ {
+ sonar_bogie **sb2 = find_duplicate_host (pd, &sb->next, sb);
+ if (sb2)
+ *sb2 = (*sb2)->next;
+ /* #### sb leaked */
+ else
+ sb = sb->next;
+ }
+ else
+ sb = sb->next;
+ }
+
+ return head;
+}
+
+
+static unsigned long
+width_mask (unsigned long width)
+{
+ unsigned long m = 0;
+ int i;
+ for (i = 0; i < width; i++)
+ m |= (1L << (31-i));
+ return m;
+}
+
+
+#ifdef HAVE_GETIFADDRS
+static unsigned int
+mask_width (unsigned long mask)
+{
+ int i;
+ for (i = 0; i < 32; i++)
+ if (mask & (1 << i))
+ break;
+ return 32-i;
+}
+#endif
+
+
+/* Generate a list of bogies consisting of all of the entries on
+ the same subnet. 'base' ip is in network order; 0 means localhost.
+ */
+static sonar_bogie *
+subnet_hosts (sonar_sensor_data *ssd, char **error_ret, char **desc_ret,
+ unsigned long n_base, int subnet_width)
+{
+ ping_data *pd = (ping_data *) ssd->closure;
+ unsigned long h_mask; /* host order */
+ unsigned long h_base; /* host order */
+ char address[BUFSIZ];
+ char *p;
+ int i;
+ sonar_bogie *new;
+ sonar_bogie *list = 0;
+ char buf[1024];
+
+ if (subnet_width < 24)
+ {
+ sprintf (buf,
+ "Pinging %lu hosts is a bad\n"
+ "idea. Please use a subnet\n"
+ "mask of 24 bits or more.",
+ (unsigned long) (1L << (32 - subnet_width)) - 1);
+ *error_ret = strdup(buf);
+ return 0;
+ }
+ else if (subnet_width > 30)
+ {
+ sprintf (buf,
+ "An %d-bit subnet\n"
+ "doesn't make sense.\n"
+ "Try \"subnet/24\"\n"
+ "or \"subnet/29\".\n",
+ subnet_width);
+ *error_ret = strdup(buf);
+ return 0;
+ }
+
+
+ if (pd->debug_p)
+ fprintf (stderr, "%s: adding %d-bit subnet\n", progname, subnet_width);
+
+
+ if (! n_base)
+ {
+# ifdef HAVE_GETIFADDRS
+
+ /* To determine the local subnet, we need to know the local IP address.
+ Do this by looking at the IPs of every network interface.
+ */
+ struct in_addr in = { 0, };
+ struct ifaddrs *all = 0, *ifa;
+
+ if (pd->debug_p)
+ fprintf (stderr, "%s: listing network interfaces\n", progname);
+
+ getifaddrs (&all);
+ for (ifa = all; ifa; ifa = ifa->ifa_next)
+ {
+ struct in_addr in2;
+ unsigned long mask;
+ if (! ifa->ifa_addr)
+ continue;
+ else if (ifa->ifa_addr->sa_family != AF_INET)
+ {
+ if (pd->debug_p)
+ fprintf (stderr, "%s: if: %4s: %s\n", progname,
+ ifa->ifa_name,
+ (
+# ifdef AF_UNIX
+ ifa->ifa_addr->sa_family == AF_UNIX ? "local" :
+# endif
+# ifdef AF_LINK
+ ifa->ifa_addr->sa_family == AF_LINK ? "link" :
+# endif
+# ifdef AF_INET6
+ ifa->ifa_addr->sa_family == AF_INET6 ? "ipv6" :
+# endif
+ "other"));
+ continue;
+ }
+ in2 = ((struct sockaddr_in *) ifa->ifa_addr)->sin_addr;
+ mask = ntohl (((struct sockaddr_in *) ifa->ifa_netmask)
+ ->sin_addr.s_addr);
+ if (pd->debug_p)
+ fprintf (stderr, "%s: if: %4s: inet = %s /%d 0x%08lx\n",
+ progname,
+ ifa->ifa_name,
+ inet_ntoa (in2),
+ mask_width (mask),
+ mask);
+ if (in2.s_addr == 0x0100007f || /* 127.0.0.1 in network order */
+ mask == 0)
+ continue;
+
+ /* At least on the AT&T 3G network, pinging either of the two
+ hosts on a /31 network doesn't work, so don't try.
+ */
+ if (mask_width (mask) == 31)
+ {
+ sprintf (buf,
+ "Can't ping subnet:\n"
+ "local network is\n"
+ "%.100s/%d,\n"
+ "a p2p bridge\n"
+ "on if %.100s.",
+ inet_ntoa (in2), mask_width (mask), ifa->ifa_name);
+ if (*error_ret) free (*error_ret);
+ *error_ret = strdup (buf);
+ continue;
+ }
+
+ in = in2;
+ subnet_width = mask_width (mask);
+ }
+
+ if (in.s_addr)
+ {
+ if (*error_ret) free (*error_ret);
+ *error_ret = 0;
+ n_base = in.s_addr; /* already in network order, I think? */
+ }
+ else if (!*error_ret)
+ *error_ret = strdup ("Unable to determine\nlocal IP address\n");
+
+ if (all)
+ freeifaddrs (all);
+
+ if (*error_ret)
+ return 0;
+
+# else /* !HAVE_GETIFADDRS */
+
+ /* If we can't walk the list of network interfaces to figure out
+ our local IP address, try to do it by finding the local host
+ name, then resolving that.
+ */
+ char hostname[BUFSIZ];
+ struct hostent *hent = 0;
+
+ if (gethostname(hostname, BUFSIZ))
+ {
+ *error_ret = strdup ("Unable to determine\n"
+ "local host name!");
+ return 0;
+ }
+
+ /* Get our IP address and convert it to a string */
+
+ hent = gethostbyname(hostname);
+ if (! hent)
+ {
+ strcat (hostname, ".local"); /* Necessary on iphone */
+ hent = gethostbyname(hostname);
+ }
+
+ if (! hent)
+ {
+ sprintf(buf,
+ "Unable to resolve\n"
+ "local host \"%.100s\"",
+ hostname);
+ *error_ret = strdup(buf);
+ return 0;
+ }
+
+ strcpy (address, inet_ntoa(*((struct in_addr *)hent->h_addr_list[0])));
+ n_base = pack_addr (hent->h_addr_list[0][0],
+ hent->h_addr_list[0][1],
+ hent->h_addr_list[0][2],
+ hent->h_addr_list[0][3]);
+
+ if (n_base == 0x0100007f) /* 127.0.0.1 in network order */
+ {
+ unsigned int a, b, c, d;
+ unpack_addr (n_base, &a, &b, &c, &d);
+ sprintf (buf,
+ "Unable to determine\n"
+ "local subnet address:\n"
+ "\"%.100s\"\n"
+ "resolves to\n"
+ "loopback address\n"
+ "%u.%u.%u.%u.",
+ hostname, a, b, c, d);
+ *error_ret = strdup(buf);
+ return 0;
+ }
+
+# endif /* !HAVE_GETIFADDRS */
+ }
+
+
+ /* Construct targets for all addresses in this subnet */
+
+ h_mask = width_mask (subnet_width);
+ h_base = ntohl (n_base);
+
+ if (desc_ret && !*desc_ret) {
+ char buf2[255];
+ unsigned int a, b, c, d;
+ unsigned long bb = n_base & htonl(h_mask);
+ unpack_addr (bb, &a, &b, &c, &d);
+ if (subnet_width > 24)
+ sprintf (buf2, "%u.%u.%u.%u/%d", a, b, c, d, subnet_width);
+ else
+ sprintf (buf2, "%u.%u.%u/%d", a, b, c, subnet_width);
+ *desc_ret = strdup (buf2);
+ }
+
+ for (i = 255; i >= 0; i--) {
+ unsigned int a, b, c, d;
+ int ip = (h_base & 0xFFFFFF00L) | i; /* host order */
+
+ if ((ip & h_mask) != (h_base & h_mask)) /* skip out-of-subnet host */
+ continue;
+ else if (subnet_width == 31) /* 1-bit bridge: 2 hosts */
+ ;
+ else if ((ip & ~h_mask) == 0) /* skip network address */
+ continue;
+ else if ((ip & ~h_mask) == ~h_mask) /* skip broadcast address */
+ continue;
+
+ unpack_addr (htonl (ip), &a, &b, &c, &d);
+ sprintf (address, "%u.%u.%u.%u", a, b, c, d);
+
+ if (pd->debug_p > 1)
+ {
+ unsigned int aa, ab, ac, ad;
+ unsigned int ma, mb, mc, md;
+ unpack_addr (htonl (h_base & h_mask), &aa, &ab, &ac, &ad);
+ unpack_addr (htonl (h_mask), &ma, &mb, &mc, &md);
+ fprintf (stderr,
+ "%s: subnet: %s (%u.%u.%u.%u & %u.%u.%u.%u / %d)\n",
+ progname, address,
+ aa, ab, ac, ad,
+ ma, mb, mc, md,
+ subnet_width);
+ }
+
+ p = address + strlen(address) + 1;
+ sprintf(p, "%d", i);
+
+ new = bogie_for_host (ssd, address, NULL);
+ if (new)
+ {
+ new->next = list;
+ list = new;
+ }
+ }
+
+ return list;
+}
+
+
+/* Send a ping packet.
+ */
+static void
+send_ping (ping_data *pd, const sonar_bogie *b)
+{
+ ping_bogie *pb = (ping_bogie *) b->closure;
+ u_char *packet;
+ struct ICMP *icmph;
+ const char *token = "org.jwz.xscreensaver.sonar";
+ char *host_id;
+
+ unsigned long pcktsiz = (sizeof(struct ICMP) + sizeof(struct timeval) +
+ sizeof(socklen_t) + pb->addrlen +
+ strlen(token) + 1 +
+ strlen(pd->version) + 1);
+
+ /* Create the ICMP packet */
+
+ if (! (packet = (u_char *) calloc(1, pcktsiz)))
+ return; /* Out of memory */
+
+ icmph = (struct ICMP *) packet;
+ ICMP_TYPE(icmph) = ICMP_ECHO;
+ ICMP_CODE(icmph) = 0;
+ ICMP_CHECKSUM(icmph) = 0;
+ ICMP_ID(icmph) = pd->pid;
+ ICMP_SEQ(icmph) = pd->seq++;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ gettimeofday((struct timeval *) &packet[sizeof(struct ICMP)],
+ (struct timezone *) 0);
+# else
+ gettimeofday((struct timeval *) &packet[sizeof(struct ICMP)]);
+# endif
+
+ /* We store the sockaddr of the host we're pinging in the packet, and parse
+ that out of the return packet later (see get_ping() for why).
+ After that, we also include the name and version of this program,
+ just to give a clue to anyone sniffing and wondering what's up.
+ */
+ host_id = (char *) &packet[sizeof(struct ICMP) + sizeof(struct timeval)];
+ *(socklen_t *)host_id = pb->addrlen;
+ host_id += sizeof(socklen_t);
+ memcpy(host_id, &pb->address, pb->addrlen);
+ host_id += pb->addrlen;
+ sprintf (host_id, "%.20s %.20s", token, pd->version);
+
+ ICMP_CHECKSUM(icmph) = checksum((u_short *)packet, pcktsiz);
+
+ /* Send it */
+
+ if (sendto(pd->icmpsock, packet, pcktsiz, 0,
+ (struct sockaddr *)&pb->address, sizeof(pb->address))
+ != pcktsiz)
+ {
+#if 0
+ char buf[BUFSIZ];
+ sprintf(buf, "%s: pinging %.100s", progname, b->name);
+ perror(buf);
+#endif
+ }
+}
+
+/* signal handler */
+static void
+sigcatcher (int sig)
+{
+ timer_expired = 1;
+}
+
+
+/* Compute the checksum on a ping packet.
+ */
+static u_short
+checksum (u_short *packet, int size)
+{
+ register int nleft = size;
+ register u_short *w = packet;
+ register int sum = 0;
+ u_short answer = 0;
+
+ /* Using a 32 bit accumulator (sum), we add sequential 16 bit words
+ to it, and at the end, fold back all the carry bits from the
+ top 16 bits into the lower 16 bits.
+ */
+ while (nleft > 1)
+ {
+ sum += *w++;
+ nleft -= 2;
+ }
+
+ /* mop up an odd byte, if necessary */
+
+ if (nleft == 1)
+ {
+ *(u_char *)(&answer) = *(u_char *)w ;
+ *(1 + (u_char *)(&answer)) = 0;
+ sum += answer;
+ }
+
+ /* add back carry outs from top 16 bits to low 16 bits */
+
+ sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */
+ sum += (sum >> 16); /* add carry */
+ answer = ~sum; /* truncate to 16 bits */
+
+ return(answer);
+}
+
+
+/* Copies the sonar_bogie and the underlying ping_bogie.
+ */
+static sonar_bogie *
+copy_ping_bogie (sonar_sensor_data *ssd, const sonar_bogie *b)
+{
+ sonar_bogie *b2 = sonar_copy_bogie (ssd, b);
+ if (b->closure)
+ {
+ ping_bogie *pb = (ping_bogie *) b->closure;
+ ping_bogie *pb2 = (ping_bogie *) calloc (1, sizeof(*pb));
+ pb2->address = pb->address;
+ b2->closure = pb2;
+ }
+ return b2;
+}
+
+
+/* Look for all outstanding ping replies.
+ */
+static sonar_bogie *
+get_ping (sonar_sensor_data *ssd)
+{
+ ping_data *pd = (ping_data *) ssd->closure;
+ struct sockaddr from;
+ socklen_t fromlen;
+ int result;
+ u_char packet[1024];
+ struct timeval now;
+ struct timeval *then;
+ struct ip *ip;
+ int iphdrlen;
+ struct ICMP *icmph;
+ sonar_bogie *bl = 0;
+ sonar_bogie *new = 0;
+ struct sigaction sa;
+ struct itimerval it;
+ fd_set rfds;
+ struct timeval tv;
+
+ /* Set up a signal to interrupt our wait for a packet */
+
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0;
+ sa.sa_handler = sigcatcher;
+ if (sigaction(SIGALRM, &sa, 0) == -1)
+ {
+ char msg[1024];
+ sprintf(msg, "%s: unable to trap SIGALRM", progname);
+ perror(msg);
+ exit(1);
+ }
+
+ /* Set up a timer to interupt us if we don't get a packet */
+
+ it.it_interval.tv_sec = 0;
+ it.it_interval.tv_usec = 0;
+ it.it_value.tv_sec = 0;
+ it.it_value.tv_usec = pd->timeout;
+ timer_expired = 0;
+ setitimer(ITIMER_REAL, &it, 0);
+
+ /* Wait for a result packet */
+
+ fromlen = sizeof(from);
+ while (! timer_expired)
+ {
+ tv.tv_usec = pd->timeout;
+ tv.tv_sec = 0;
+#if 0
+ /* This breaks on BSD, which uses bzero() in the definition of FD_ZERO */
+ FD_ZERO(&rfds);
+#else
+ memset (&rfds, 0, sizeof(rfds));
+#endif
+ FD_SET(pd->icmpsock, &rfds);
+ /* only wait a little while, in case we raced with the timer expiration.
+ From Valentijn Sessink <valentyn@openoffice.nl> */
+ if (select(pd->icmpsock + 1, &rfds, 0, 0, &tv) >0)
+ {
+ result = (int)recvfrom (pd->icmpsock, packet, sizeof(packet),
+ 0, &from, &fromlen);
+
+ /* Check the packet */
+
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ gettimeofday(&now, (struct timezone *) 0);
+# else
+ gettimeofday(&now);
+# endif
+ ip = (struct ip *) packet;
+ iphdrlen = IP_HDRLEN(ip) << 2;
+ icmph = (struct ICMP *) &packet[iphdrlen];
+ then = (struct timeval *) &packet[iphdrlen + sizeof(struct ICMP)];
+
+
+ /* Ignore anything but ICMP Replies */
+ if (ICMP_TYPE(icmph) != ICMP_ECHOREPLY)
+ continue;
+
+ /* Ignore packets not set from us */
+ if (ICMP_ID(icmph) != pd->pid)
+ continue;
+
+ /* Find the bogie in 'targets' that corresponds to this packet
+ and copy it, so that this bogie stays in the same spot (th)
+ on the screen, and so that we don't have to resolve it again.
+
+ We could find the bogie by comparing ip->ip_src.s_addr to
+ pb->address, but it is possible that, in certain weird router
+ or NAT situations, that the reply will come back from a
+ different address than the one we sent it to. So instead,
+ we parse the sockaddr out of the reply packet payload.
+ */
+ {
+ const socklen_t *host_id = (socklen_t *) &packet[
+ iphdrlen + sizeof(struct ICMP) + sizeof(struct timeval)];
+
+ sonar_bogie *b;
+
+ /* Ensure that a maliciously-crafted return packet can't
+ make us overflow in memcmp. */
+ if (result > 0 && (const u_char *)(host_id + 1) <= packet + result)
+ {
+ const u_char *host_end = (const u_char *)(host_id + 1) +
+ *host_id;
+
+ if ((const u_char *)(host_id + 1) <= host_end &&
+ host_end <= packet + result)
+ {
+ for (b = pd->targets; b; b = b->next)
+ {
+ ping_bogie *pb = (ping_bogie *)b->closure;
+ if (*host_id == pb->addrlen &&
+ !memcmp(&pb->address, host_id + 1, pb->addrlen) )
+ {
+ /* Check to see if the name lookup is done. */
+ if (pb->lookup_name &&
+ async_name_from_addr_is_done (pb->lookup_name))
+ {
+ char *host = NULL;
+
+ async_name_from_addr_finish (pb->lookup_name,
+ &host, NULL);
+
+ if (pd->debug_p > 1)
+ fprintf (stderr, "%s: %s => %s\n",
+ progname, b->name,
+ host ? host : "<unknown>");
+
+ if (host)
+ {
+ free(b->name);
+ b->name = host;
+ }
+
+ pb->lookup_name = NULL;
+ }
+
+ new = copy_ping_bogie (ssd, b);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ if (! new) /* not in targets? */
+ {
+ unsigned int a, b, c, d;
+ unpack_addr (ip->ip_src.s_addr, &a, &b, &c, &d);
+ fprintf (stderr,
+ "%s: UNEXPECTED PING REPLY! "
+ "%4d bytes, icmp_seq=%-4d from %d.%d.%d.%d\n",
+ progname, result, ICMP_SEQ(icmph), a, b, c, d);
+ continue;
+ }
+
+ new->next = bl;
+ bl = new;
+
+ {
+ double msec = delta(then, &now) / 1000.0;
+
+ if (pd->times_p)
+ {
+ if (new->desc) free (new->desc);
+ new->desc = (char *) malloc (30);
+ if (msec > 99) sprintf (new->desc, "%.0f ms", msec);
+ else if (msec > 9) sprintf (new->desc, "%.1f ms", msec);
+ else if (msec > 1) sprintf (new->desc, "%.2f ms", msec);
+ else sprintf (new->desc, "%.3f ms", msec);
+ }
+
+ if (pd->debug_p && pd->times_p) /* ping-like stdout log */
+ {
+ char *s = strdup(new->name);
+ char *s2 = s;
+ if (strlen(s) > 28)
+ {
+ s2 = s + strlen(s) - 28;
+ strncpy (s2, "...", 3);
+ }
+ fprintf (stdout,
+ "%3d bytes from %28s: icmp_seq=%-4d time=%s\n",
+ result, s2, ICMP_SEQ(icmph), new->desc);
+ fflush (stdout);
+ free(s);
+ }
+
+ /* The radius must be between 0.0 and 1.0.
+ We want to display ping times on a logarithmic scale,
+ with the three rings being 2.5, 70 and 2,000 milliseconds.
+ */
+ if (msec <= 0) msec = 0.001;
+ new->r = log (msec * 10) / log (20000);
+
+ /* Don't put anyone *too* close to the center of the screen. */
+ if (new->r < 0) new->r = 0;
+ if (new->r < 0.1) new->r += 0.1;
+ }
+ }
+ }
+
+ return bl;
+}
+
+
+/* difference between the two times in microseconds.
+ */
+static long
+delta (struct timeval *then, struct timeval *now)
+{
+ return (((now->tv_sec - then->tv_sec) * 1000000) +
+ (now->tv_usec - then->tv_usec));
+}
+
+
+static void
+ping_free_data (sonar_sensor_data *ssd, void *closure)
+{
+ ping_data *pd = (ping_data *) closure;
+ sonar_bogie *b = pd->targets;
+ while (b)
+ {
+ sonar_bogie *b2 = b->next;
+ sonar_free_bogie (ssd, b);
+ b = b2;
+ }
+ free (pd);
+}
+
+static void
+ping_free_bogie_data (sonar_sensor_data *sd, void *closure)
+{
+ ping_bogie *pb = (ping_bogie *) closure;
+
+ if (pb->lookup_name)
+ async_name_from_addr_cancel (pb->lookup_name);
+ if (pb->lookup_addr)
+ async_addr_from_name_cancel (pb->lookup_addr);
+ free (pb->fallback);
+
+ free (closure);
+}
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+static void
+free_bogie_after_lookup(sonar_sensor_data *ssd, sonar_bogie **sbp,
+ sonar_bogie **sb)
+{
+ ping_bogie *pb = (ping_bogie *)(*sb)->closure;
+
+ *sbp = (*sb)->next;
+ pb->lookup_addr = NULL; /* Prevent double-free in sonar_free_bogie. */
+ sonar_free_bogie (ssd, *sb);
+ *sb = NULL;
+}
+
+
+/* Pings the next bogie, if it's time.
+ Returns all outstanding ping replies.
+ */
+static sonar_bogie *
+ping_scan (sonar_sensor_data *ssd)
+{
+ ping_data *pd = (ping_data *) ssd->closure;
+ double now = double_time();
+ double ping_cycle = 10; /* re-ping a given host every 10 seconds */
+ double ping_interval = ping_cycle / pd->target_count;
+
+ if (now > pd->last_ping_time + ping_interval) /* time to ping someone */
+ {
+ struct sonar_bogie **sbp;
+
+ if (pd->last_pinged)
+ {
+ sbp = &pd->last_pinged->next;
+ if (!*sbp)
+ sbp = &pd->targets;
+ }
+ else
+ sbp = &pd->targets;
+
+ if (!*sbp)
+ /* Aaaaand we're out of bogies. */
+ pd->last_pinged = NULL;
+ else
+ {
+ sonar_bogie *sb = *sbp;
+ ping_bogie *pb = (ping_bogie *)sb->closure;
+ if (pb->lookup_addr &&
+ async_addr_from_name_is_done (pb->lookup_addr))
+ {
+ if (async_addr_from_name_finish (pb->lookup_addr, &pb->address,
+ &pb->addrlen, NULL))
+ {
+ char *fallback = pb->fallback;
+ pb->fallback = NULL;
+
+ if (pd->debug_p)
+ fprintf (stderr, "%s: could not resolve host: %s\n",
+ progname, sb->name);
+
+ free_bogie_after_lookup (ssd, sbp, &sb);
+
+ /* Insert the fallback bogie right where the old one was. */
+ if (fallback)
+ {
+ sonar_bogie *new_bogie = bogie_for_host (ssd, fallback,
+ NULL);
+ if (new_bogie) {
+ new_bogie->next = *sbp;
+
+ if (! ((ping_bogie *)new_bogie->closure)->lookup_addr &&
+ ! find_duplicate_host(pd, &pd->targets, new_bogie))
+ *sbp = new_bogie;
+ else
+ sonar_free_bogie (ssd, new_bogie);
+ }
+
+ free (fallback);
+ }
+ }
+ else
+ {
+ if (pd->debug_p > 1)
+ {
+ fprintf (stderr, "%s: %s => ", progname, sb->name);
+ print_address (stderr, 0, &pb->address, pb->addrlen);
+ putc('\n', stderr);
+ }
+
+ if (! is_address_ok (pd->debug_p, sb))
+ free_bogie_after_lookup (ssd, sbp, &sb);
+ else if (find_duplicate_host (pd, &pd->targets, sb))
+ /* Tricky: find_duplicate_host skips the current bogie when
+ scanning the targets list because pb->lookup_addr hasn't
+ been NULL'd yet.
+
+ Not that it matters much, but behavior here is to
+ keep the existing address.
+ */
+ free_bogie_after_lookup (ssd, sbp, &sb);
+ }
+
+ if (sb)
+ pb->lookup_addr = NULL;
+ }
+
+ if (sb && !pb->lookup_addr)
+ {
+ if (!pb->addrlen) abort();
+ send_ping (pd, sb);
+ pd->last_pinged = sb;
+ }
+ }
+
+ pd->last_ping_time = now;
+ }
+
+ return get_ping (ssd);
+}
+
+
+/* Returns a list of hosts to ping based on the "-ping" argument.
+ */
+static sonar_bogie *
+parse_mode (sonar_sensor_data *ssd, char **error_ret, char **desc_ret,
+ const char *ping_arg, Bool ping_works_p)
+{
+ ping_data *pd = (ping_data *) ssd->closure;
+ char *source, *token, *end, dummy;
+ sonar_bogie *hostlist = 0;
+ const char *fallback = "subnet";
+
+ AGAIN:
+
+ if (fallback && (!ping_arg || !*ping_arg || !strcmp (ping_arg, "default")))
+ source = strdup(fallback);
+ else if (ping_arg)
+ source = strdup(ping_arg);
+ else
+ return 0;
+
+ token = source;
+ end = source + strlen(source);
+ while (token < end)
+ {
+ char *next;
+ sonar_bogie *new = 0;
+# ifdef READ_FILES
+ struct stat st;
+# endif
+ unsigned int n0=0, n1=0, n2=0, n3=0, m=0;
+ char d;
+
+ for (next = token;
+ *next &&
+ *next != ',' && *next != ' ' && *next != '\t' && *next != '\n';
+ next++)
+ ;
+ *next = 0;
+
+
+ if (pd->debug_p)
+ fprintf (stderr, "%s: parsing %s\n", progname, token);
+
+ if (!ping_works_p)
+ {
+ *error_ret = strdup ("Sonar must be setuid to ping!\n"
+ "Running simulation instead.");
+ return 0;
+ }
+
+ if ((4 == sscanf (token, "%u.%u.%u/%u %c", &n0,&n1,&n2, &m,&d)) ||
+ (5 == sscanf (token, "%u.%u.%u.%u/%u %c", &n0,&n1,&n2,&n3,&m,&d)))
+ {
+ /* subnet: A.B.C.D/M
+ subnet: A.B.C/M
+ */
+ unsigned long ip = pack_addr (n0, n1, n2, n3);
+ new = subnet_hosts (ssd, error_ret, desc_ret, ip, m);
+ }
+ else if (4 == sscanf (token, "%u.%u.%u.%u %c", &n0, &n1, &n2, &n3, &d))
+ {
+ /* IP: A.B.C.D
+ */
+ new = bogie_for_host (ssd, token, NULL);
+ }
+ else if (!strcmp (token, "subnet"))
+ {
+ new = subnet_hosts (ssd, error_ret, desc_ret, 0, 24);
+ }
+ else if (1 == sscanf (token, "subnet/%u %c", &m, &dummy))
+ {
+ new = subnet_hosts (ssd, error_ret, desc_ret, 0, m);
+ }
+ else if (*token == '.' || *token == '/' ||
+ *token == '$' || *token == '~')
+ {
+# ifdef READ_FILES
+ new = read_hosts_file (ssd, token);
+# else
+ if (pd->debug_p) fprintf (stderr, "%s: skipping file\n", progname);
+# endif
+ }
+# ifdef READ_FILES
+ else if (!stat (token, &st))
+ {
+ new = read_hosts_file (ssd, token);
+ }
+# endif /* READ_FILES */
+ else
+ {
+ /* not an existant file - must be a host name
+ */
+ new = bogie_for_host (ssd, token, NULL);
+ }
+
+ if (new)
+ {
+ sonar_bogie *nn = new;
+ while (nn->next)
+ nn = nn->next;
+ nn->next = hostlist;
+ hostlist = new;
+ }
+
+ token = next + 1;
+ while (token < end &&
+ (*token == ',' || *token == ' ' ||
+ *token == '\t' || *token == '\n'))
+ token++;
+ }
+
+ free (source);
+
+ /* If the arg was completely unparsable, fall back to the local subnet.
+ This happens if the default is "/etc/hosts" but READ_FILES is off.
+ Or if we're on a /31 network, in which case we try twice then fail.
+ */
+ if (!hostlist && fallback)
+ {
+ if (pd->debug_p)
+ fprintf (stderr, "%s: no hosts parsed! Trying %s\n",
+ progname, fallback);
+ ping_arg = fallback;
+ fallback = 0;
+ goto AGAIN;
+ }
+
+ return hostlist;
+}
+
+
+sonar_sensor_data *
+sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret,
+ const char *subnet, int timeout,
+ Bool resolve_p, Bool times_p, Bool debug_p)
+{
+ /* Important! Do not return from this function without disavowing privileges
+ with setuid(getuid()).
+ */
+ sonar_sensor_data *ssd = (sonar_sensor_data *) calloc (1, sizeof(*ssd));
+ ping_data *pd = (ping_data *) calloc (1, sizeof(*pd));
+ sonar_bogie *b;
+ char *s;
+
+ Bool socket_initted_p = False;
+ Bool socket_raw_p = False;
+
+ pd->dpy = dpy;
+
+ pd->resolve_p = resolve_p;
+ pd->times_p = times_p;
+ pd->debug_p = debug_p;
+
+ ssd->closure = pd;
+ ssd->scan_cb = ping_scan;
+ ssd->free_data_cb = ping_free_data;
+ ssd->free_bogie_cb = ping_free_bogie_data;
+
+ /* Get short version number. */
+ s = strchr (screensaver_id, ' ');
+ pd->version = strdup (s+1);
+ s = strchr (pd->version, ' ');
+ *s = 0;
+
+
+ /* Create the ICMP socket. Do this before dropping privs.
+
+ Raw sockets can only be opened by root (or setuid root), so we
+ only try to do this when the effective uid is 0.
+
+ We used to just always try, and notice the failure. But apparently
+ that causes "SELinux" to log spurious warnings when running with the
+ "strict" policy. So to avoid that, we just don't try unless we
+ know it will work.
+
+ On MacOS X, we can avoid the whole problem by using a
+ non-privileged datagram instead of a raw socket.
+ */
+ if (global_icmpsock)
+ {
+ pd->icmpsock = global_icmpsock;
+ socket_initted_p = True;
+ if (debug_p)
+ fprintf (stderr, "%s: re-using icmp socket\n", progname);
+
+ }
+ else if ((pd->icmpsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP)) >= 0)
+ {
+ socket_initted_p = True;
+ }
+ else if (geteuid() == 0 &&
+ (pd->icmpsock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) >= 0)
+ {
+ socket_initted_p = True;
+ socket_raw_p = True;
+ }
+
+ if (socket_initted_p)
+ {
+ global_icmpsock = pd->icmpsock;
+ socket_initted_p = True;
+ if (debug_p)
+ fprintf (stderr, "%s: opened %s icmp socket\n", progname,
+ (socket_raw_p ? "raw" : "dgram"));
+ }
+ else if (debug_p)
+ fprintf (stderr, "%s: unable to open icmp socket\n", progname);
+
+ /* Disavow privs */
+ setuid(getuid());
+
+ pd->pid = getpid() & 0xFFFF;
+ pd->seq = 0;
+ pd->timeout = timeout;
+
+ /* Generate a list of targets */
+
+ pd->targets = parse_mode (ssd, error_ret, desc_ret, subnet,
+ socket_initted_p);
+ pd->targets = delete_duplicate_hosts (ssd, pd->targets);
+
+ if (debug_p)
+ {
+ fprintf (stderr, "%s: Target list:\n", progname);
+ for (b = pd->targets; b; b = b->next)
+ {
+ fprintf (stderr, "%s: ", progname);
+ print_host (stderr, b);
+ }
+ }
+
+ /* Make sure there is something to ping */
+
+ pd->target_count = 0;
+ for (b = pd->targets; b; b = b->next)
+ pd->target_count++;
+
+ if (pd->target_count == 0)
+ {
+ if (! *error_ret)
+ *error_ret = strdup ("No hosts to ping!\n"
+ "Simulating instead.");
+ if (pd) ping_free_data (ssd, pd);
+ if (ssd) free (ssd);
+ return 0;
+ }
+
+ /* Distribute them evenly around the display field, clockwise.
+ Even on a /24, allocated IPs tend to cluster together, so
+ don't put any two hosts closer together than N degrees to
+ avoid unnecessary overlap when we have plenty of space due
+ to addresses that probably won't respond. And don't spread
+ them out too far apart, because that looks too symmetrical
+ when there are a small number of hosts.
+ */
+ {
+ double th = frand(M_PI);
+ double sep = 360.0 / pd->target_count;
+ if (sep < 23) sep = 23;
+ if (sep > 43) sep = 43;
+ sep /= 180/M_PI;
+ for (b = pd->targets; b; b = b->next) {
+ b->th = th;
+ th += sep;
+ }
+ }
+
+ return ssd;
+}
+
+#endif /* HAVE_PING -- whole file */
diff --git a/hacks/glx/sonar-sim.c b/hacks/glx/sonar-sim.c
new file mode 100644
index 0000000..ea5452e
--- /dev/null
+++ b/hacks/glx/sonar-sim.c
@@ -0,0 +1,112 @@
+/* sonar, Copyright (c) 1998-2012 Jamie Zawinski and Stephen Martin
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * This implements the "simulation" sensor for sonar.
+ */
+
+#include "screenhackI.h"
+#include "sonar.h"
+
+typedef struct {
+ const char *team_a_name;
+ const char *team_b_name;
+ int team_a_count;
+ int team_b_count;
+ sonar_bogie *targets;
+ Bool debug_p;
+} sim_data;
+
+
+static void
+sim_free_data (sonar_sensor_data *ssd, void *closure)
+{
+ sim_data *sd = (sim_data *) closure;
+ free (sd);
+}
+
+static void
+sim_free_bogie_data (sonar_sensor_data *ssd, void *closure)
+{
+ free (closure);
+}
+
+
+/* Return an updated (moved) copy of the bogies.
+ */
+static sonar_bogie *
+sim_scan (sonar_sensor_data *ssd)
+{
+ sim_data *sd = (sim_data *) ssd->closure;
+ sonar_bogie *b, *b2, *list = 0;
+ double scale = 0.01;
+ for (b = sd->targets; b; b = b->next)
+ {
+ b->r += scale * (0.5 - frand(1.0));
+ b->th += scale * (0.5 - frand(1.0));
+ while (b->r < 0.2) b->r += scale * 0.1;
+ while (b->r > 0.9) b->r -= scale * 0.1;
+
+ b2 = sonar_copy_bogie (ssd, b);
+ b2->next = list;
+ list = b2;
+ }
+ return list;
+}
+
+
+static void
+make_bogies (sonar_sensor_data *ssd)
+{
+ sim_data *sd = (sim_data *) ssd->closure;
+ int i, j;
+
+ for (j = 0; j <= 1; j++)
+ for (i = 0; i < (j ? sd->team_a_count : sd->team_b_count); i++)
+ {
+ sonar_bogie *b = (sonar_bogie *) calloc (1, sizeof(*b));
+ const char *name = (j ? sd->team_a_name : sd->team_b_name);
+ b->name = (char *) malloc (strlen(name) + 10);
+ sprintf (b->name, "%s%03d", name, i+1);
+ b->r = 0.3 + frand(0.5);
+ b->th = frand (M_PI*2);
+ b->next = sd->targets;
+ sd->targets = b;
+ if (sd->debug_p)
+ fprintf (stderr, "%s: %s: %5.2f %5.2f\n", progname,
+ b->name, b->r, b->th);
+ }
+}
+
+
+sonar_sensor_data *
+sonar_init_simulation (Display *dpy, char **error_ret, char **desc_ret,
+ const char *team_a_name, const char *team_b_name,
+ int team_a_count, int team_b_count,
+ Bool debug_p)
+{
+ sonar_sensor_data *ssd = (sonar_sensor_data *) calloc (1, sizeof(*ssd));
+ sim_data *sd = (sim_data *) calloc (1, sizeof(*sd));
+
+ sd->team_a_name = team_a_name;
+ sd->team_b_name = team_b_name;
+ sd->team_a_count = team_a_count;
+ sd->team_b_count = team_b_count;
+ sd->debug_p = debug_p;
+
+ ssd->closure = sd;
+ ssd->scan_cb = sim_scan;
+ ssd->free_data_cb = sim_free_data;
+ ssd->free_bogie_cb = sim_free_bogie_data;
+
+ make_bogies (ssd);
+
+ return ssd;
+}
+
diff --git a/hacks/glx/sonar.c b/hacks/glx/sonar.c
new file mode 100644
index 0000000..c4ea949
--- /dev/null
+++ b/hacks/glx/sonar.c
@@ -0,0 +1,1258 @@
+/* sonar, Copyright (c) 1998-2018 Jamie Zawinski and Stephen Martin
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* Created in Apr 1998 by Stephen Martin <smartin@vanderfleet-martin.net>
+ * for the RedHat Screensaver Contest
+ * Heavily hacked by jwz ever since.
+ * Rewritten in OpenGL by jwz, Aug 2008.
+ *
+ * This is an implementation of a general purpose reporting tool in the
+ * format of a Sonar display. It is designed such that a sensor is read
+ * on every movement of a sweep arm and the results of that sensor are
+ * displayed on the screen. The location of the display points (targets) on the
+ * screen are determined by the current localtion of the sweep and a distance
+ * value associated with the target.
+ *
+ * Currently the only two sensors that are implemented are the simulator
+ * (the default) and the ping sensor. The simulator randomly creates a set
+ * of bogies that move around on the scope while the ping sensor can be
+ * used to display hosts on your network.
+ *
+ * The ping code is only compiled in if you define HAVE_ICMP or HAVE_ICMPHDR,
+ * because, unfortunately, different systems have different ways of creating
+ * these sorts of packets.
+ *
+ * In order to use the ping sensor on most systems, this program must be
+ * installed as setuid root, so that it can create an ICMP RAW socket. Root
+ * privileges are disavowed shortly after startup (just after connecting to
+ * the X server and reading the resource database) so this is *believed* to
+ * be a safe thing to do, but it is usually recommended that you have as few
+ * setuid programs around as possible, on general principles.
+ *
+ * It is not necessary to make it setuid on MacOS systems, because on those
+ * systems, unprivileged programs can ping by using ICMP DGRAM sockets
+ * instead of ICMP RAW.
+ *
+ * It should be easy to extend this code to support other sorts of sensors.
+ * Some ideas:
+ *
+ * - search the output of "netstat" for the list of hosts to ping;
+ * - plot the contents of /proc/interrupts;
+ * - plot the process table, by process size, cpu usage, or total time;
+ * - plot the logged on users by idle time or cpu usage.
+ * - plot IM contacts or Facebook friends and their last-activity times.
+ */
+
+#define DEF_FONT "-*-courier-bold-r-normal-*-*-480-*-*-*-*-iso8859-1"
+#define DEF_SPEED "1.0"
+#define DEF_SWEEP_SIZE "0.3"
+#define DEF_FONT_SIZE "12"
+#define DEF_TEAM_A_NAME "F18"
+#define DEF_TEAM_B_NAME "MIG"
+#define DEF_TEAM_A_COUNT "4"
+#define DEF_TEAM_B_COUNT "4"
+#define DEF_PING "default"
+#define DEF_PING_TIMEOUT "3000"
+#define DEF_RESOLVE "True"
+#define DEF_TIMES "True"
+#define DEF_WOBBLE "True"
+#define DEF_DEBUG "False"
+
+#include "thread_util.h"
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*font: " DEF_FONT "\n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*texFontCacheSize: 300 \n" \
+ THREAD_DEFAULTS_XLOCK
+
+
+# define release_sonar 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h> /* for setuid() */
+#endif
+
+#include "xlockmore.h"
+#include "sonar.h"
+#include "gltrackball.h"
+#include "rotator.h"
+#include "texfont.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+/* #define TEST_ASYNC_NETDB 1 */
+
+# if TEST_ASYNC_NETDB
+# include "async_netdb.h"
+
+# include <assert.h>
+# include <netinet/in.h>
+# include <stdio.h>
+# endif /* TEST_ASYNC_NETDB */
+
+typedef struct {
+ double x,y,z;
+} XYZ;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ rotator *rot;
+ Bool button_down_p;
+
+ double start_time;
+ GLfloat sweep_offset;
+
+ GLuint screen_list, grid_list, sweep_list, table_list;
+ int screen_polys, grid_polys, sweep_polys, table_polys;
+ GLfloat sweep_th;
+ GLfloat line_thickness;
+
+ texture_font_data *texfont;
+
+ enum { MSG, RESOLVE, RUN } state;
+ sonar_sensor_data *ssd;
+ char *error;
+ char *desc;
+
+ sonar_bogie *displayed; /* on screen and fading */
+ sonar_bogie *pending; /* returned by sensor, not yet on screen */
+
+# if TEST_ASYNC_NETDB
+ async_name_from_addr_t query0;
+ async_addr_from_name_t query1;
+# endif
+} sonar_configuration;
+
+static sonar_configuration *sps = NULL;
+
+static GLfloat speed;
+static GLfloat sweep_size;
+static GLfloat font_size;
+static Bool resolve_p;
+static Bool times_p;
+static Bool wobble_p;
+static Bool debug_p;
+
+static char *team_a_name;
+static char *team_b_name;
+static int team_a_count;
+static int team_b_count;
+static int ping_timeout;
+static char *ping_arg;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-sweep-size", ".sweepSize", XrmoptionSepArg, 0 },
+ { "-font-size", ".fontSize", XrmoptionSepArg, 0 },
+ { "-team-a-name", ".teamAName", XrmoptionSepArg, 0 },
+ { "-team-b-name", ".teamBName", XrmoptionSepArg, 0 },
+ { "-team-a-count", ".teamACount", XrmoptionSepArg, 0 },
+ { "-team-b-count", ".teamBCount", XrmoptionSepArg, 0 },
+ { "-ping", ".ping", XrmoptionSepArg, 0 },
+ { "-ping-timeout", ".pingTimeout", XrmoptionSepArg, 0 },
+ { "-dns", ".resolve", XrmoptionNoArg, "True" },
+ { "+dns", ".resolve", XrmoptionNoArg, "False" },
+ { "-times", ".times", XrmoptionNoArg, "True" },
+ { "+times", ".times", XrmoptionNoArg, "False" },
+ { "-wobble", ".wobble", XrmoptionNoArg, "True" },
+ { "+wobble", ".wobble", XrmoptionNoArg, "False" },
+ THREAD_OPTIONS
+ { "-debug", ".debug", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&sweep_size, "sweepSize", "SweepSize", DEF_SWEEP_SIZE, t_Float},
+ {&font_size, "fontSize", "FontSize", DEF_FONT_SIZE, t_Float},
+ {&team_a_name, "teamAName", "TeamName", DEF_TEAM_A_NAME, t_String},
+ {&team_b_name, "teamBName", "TeamName", DEF_TEAM_B_NAME, t_String},
+ {&team_a_count, "teamACount", "TeamCount", DEF_TEAM_A_COUNT, t_Int},
+ {&team_b_count, "teamBCount", "TeamCount", DEF_TEAM_A_COUNT, t_Int},
+ {&ping_arg, "ping", "Ping", DEF_PING, t_String},
+ {&ping_timeout, "pingTimeout", "PingTimeout", DEF_PING_TIMEOUT, t_Int},
+ {&resolve_p, "resolve", "Resolve", DEF_RESOLVE, t_Bool},
+ {&times_p, "times", "Times", DEF_TIMES, t_Bool},
+ {&wobble_p, "wobble", "Wobble", DEF_WOBBLE, t_Bool},
+ {&debug_p, "debug", "Debug", DEF_DEBUG, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt sonar_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static int
+draw_screen (ModeInfo *mi, Bool mesh_p, Bool sweep_p)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+ int i;
+ int th_steps, r_steps, r_skip, th_skip, th_skip2, outer_r;
+ GLfloat curvature = M_PI * 0.4;
+ GLfloat r0, r1, z0, z1, zoff;
+ XYZ *ring;
+
+ static const GLfloat glass[4] = {0.0, 0.4, 0.0, 0.5};
+ static const GLfloat lines[4] = {0.0, 0.7, 0.0, 0.5};
+ static const GLfloat sweepc[4] = {0.2, 1.0, 0.2, 0.5};
+ static const GLfloat spec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat shiny = 20.0;
+
+ if (wire && !(mesh_p || sweep_p)) return 0;
+
+ glDisable (GL_TEXTURE_2D);
+
+ glFrontFace (GL_CCW);
+ th_steps = 36 * 4; /* must be a multiple of th_skip2 divisor */
+ r_steps = 40;
+ r_skip = 1;
+ th_skip = 1;
+ th_skip2 = 1;
+ outer_r = 0;
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, spec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mesh_p ? lines : glass);
+ if (wire) glColor3fv (lines);
+
+ if (mesh_p)
+ {
+ th_skip = th_steps / 12;
+ th_skip2 = th_steps / 36;
+ r_skip = r_steps / 3;
+ outer_r = r_steps * 0.93;
+
+ if (! wire)
+ glLineWidth (sp->line_thickness);
+ }
+
+ ring = (XYZ *) calloc (th_steps, sizeof(*ring));
+
+ for (i = 0; i < th_steps; i++)
+ {
+ double a = M_PI * 2 * i / th_steps;
+ ring[i].x = cos(a);
+ ring[i].y = sin(a);
+ }
+
+ /* place the bottom of the disc on the xy plane. */
+ zoff = cos (curvature/2 * (M_PI/2)) / 2;
+
+ for (i = r_steps; i > 0; i--)
+ {
+ int j0, j1;
+
+ r0 = i / (GLfloat) r_steps;
+ r1 = (i+1) / (GLfloat) r_steps;
+
+ if (r1 > 1) r1 = 1; /* avoid asin lossage */
+
+ z0 = cos (curvature/2 * asin (r0)) / 2 - zoff;
+ z1 = cos (curvature/2 * asin (r1)) / 2 - zoff;
+
+ glBegin(wire || mesh_p ? GL_LINES : GL_QUAD_STRIP);
+ for (j0 = 0; j0 <= th_steps; j0++)
+ {
+ if (mesh_p &&
+ (i < outer_r
+ ? (j0 % th_skip != 0)
+ : (j0 % th_skip2 != 0)))
+ continue;
+
+ if (sweep_p)
+ {
+ GLfloat color[4];
+ GLfloat r = 1 - (j0 / (GLfloat) (th_steps * sweep_size));
+#if 0
+ color[0] = glass[0] + (sweepc[0] - glass[0]) * r;
+ color[1] = glass[1] + (sweepc[1] - glass[1]) * r;
+ color[2] = glass[2] + (sweepc[2] - glass[2]) * r;
+ color[3] = glass[3];
+#else
+ color[0] = sweepc[0];
+ color[1] = sweepc[1];
+ color[2] = sweepc[2];
+ color[3] = r;
+#endif
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ }
+
+ j1 = j0 % th_steps;
+ glNormal3f (r0 * ring[j1].x, r0 * ring[j1].y, z0);
+ glVertex3f (r0 * ring[j1].x, r0 * ring[j1].y, z0);
+ glNormal3f (r1 * ring[j1].x, r1 * ring[j1].y, z1);
+ glVertex3f (r1 * ring[j1].x, r1 * ring[j1].y, z1);
+ polys++;
+
+ if (sweep_p && j0 >= th_steps * sweep_size)
+ break;
+ if (sweep_p && wire)
+ break;
+ }
+ glEnd();
+
+ if (mesh_p &&
+ (i == outer_r ||
+ i == r_steps ||
+ (i % r_skip == 0 &&
+ i < r_steps - r_skip)))
+ {
+ glBegin(GL_LINE_LOOP);
+ for (j0 = 0; j0 < th_steps; j0++)
+ {
+ glNormal3f (r0 * ring[j0].x, r0 * ring[j0].y, z0);
+ glVertex3f (r0 * ring[j0].x, r0 * ring[j0].y, z0);
+ polys++;
+ }
+ glEnd();
+ }
+ }
+
+ /* one more polygon for the middle */
+ if (!wire && !sweep_p)
+ {
+ glBegin(wire || mesh_p ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3f (0, 0, 1);
+ for (i = 0; i < th_steps; i++)
+ {
+ glNormal3f (r0 * ring[i].x, r0 * ring[i].y, z0);
+ glVertex3f (r0 * ring[i].x, r0 * ring[i].y, z0);
+ }
+ polys++;
+ glEnd();
+ }
+
+ free (ring);
+
+ return polys;
+}
+
+
+static int
+draw_text (ModeInfo *mi, const char *string, GLfloat r, GLfloat th,
+ GLfloat ttl, GLfloat size)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+ GLfloat font_scale = 0.001 * (size > 0 ? size : font_size) / 14.0;
+ int lines = 0, max_w = 0, lh = 0;
+ char *string2 = strdup (string);
+ char *token = string2;
+ char *line;
+
+ if (MI_WIDTH(mi) > 2560) font_scale /= 2; /* Retina displays */
+
+ if (size <= 0) /* if size not specified, draw in yellow with alpha */
+ {
+ GLfloat color[4];
+ color[0] = 1;
+ color[1] = 1;
+ color[2] = 0;
+ color[3] = (ttl / (M_PI * 2)) * 1.2;
+ if (color[3] > 1) color[3] = 1;
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ if (wire)
+ glColor3f (color[0]*color[3], color[1]*color[3], color[2]*color[3]);
+ }
+
+ while ((line = strtok (token, "\r\n")))
+ {
+ XCharStruct e;
+ int w, ascent, descent;
+ texture_string_metrics (sp->texfont, line, &e, &ascent, &descent);
+ w = e.width;
+ lh = ascent + descent;
+ if (w > max_w) max_w = w;
+ lines++;
+ token = 0;
+ }
+
+ glPushMatrix();
+ glTranslatef (r * cos (th), r * sin(th), 0);
+ glScalef (font_scale, font_scale, font_scale);
+
+ if (size <= 0) /* Draw the dot */
+ {
+ GLfloat s = font_size * 1.7;
+ glDisable (GL_TEXTURE_2D);
+ glFrontFace (GL_CW);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (0, s, 0);
+ glVertex3f (s, s, 0);
+ glVertex3f (s, 0, 0);
+ glVertex3f (0, 0, 0);
+ glEnd();
+ glTranslatef (-max_w/2, -lh, 0);
+ }
+ else
+ glTranslatef (-max_w/2, -lh/2, 0);
+
+ /* draw each line, centered */
+ if (! wire) glEnable (GL_TEXTURE_2D);
+ free (string2);
+ string2 = strdup (string);
+ token = string2;
+ while ((line = strtok (token, "\r\n")))
+ {
+ XCharStruct e;
+ int w;
+ texture_string_metrics (sp->texfont, line, &e, 0, 0);
+ w = e.width;
+ glPushMatrix();
+ glTranslatef ((max_w-w)/2, 0, polys * 4); /* 'polys' stops Z-fighting. */
+
+ if (wire)
+ {
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0);
+ glVertex3f (w, 0, 0);
+ glVertex3f (w, lh, 0);
+ glVertex3f (0, lh, 0);
+ glEnd();
+ }
+ else
+ {
+ glFrontFace (GL_CW);
+ print_texture_string (sp->texfont, line);
+ }
+ glPopMatrix();
+ glTranslatef (0, -lh, 0);
+ polys++;
+ token = 0;
+ }
+ glPopMatrix();
+
+ free (string2);
+
+ if (! wire) glEnable (GL_DEPTH_TEST);
+
+ return polys;
+}
+
+
+/* There's a disc with a hole in it around the screen, to act as a mask
+ preventing slightly off-screen bogies from showing up. This clips 'em.
+ */
+static int
+draw_table (ModeInfo *mi)
+{
+ /*sonar_configuration *sp = &sps[MI_SCREEN(mi)];*/
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+ int i;
+ int th_steps = 36 * 4; /* same as in draw_screen */
+
+ static const GLfloat color[4] = {0.0, 0.0, 0.0, 1.0};
+ static const GLfloat spec[4] = {0.0, 0.0, 0.0, 1.0};
+ static const GLfloat shiny = 0.0;
+
+ if (wire) return 0;
+
+ glDisable (GL_TEXTURE_2D);
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, spec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+
+ glFrontFace (GL_CCW);
+ glBegin(wire ? GL_LINES : GL_QUAD_STRIP);
+ glNormal3f (0, 0, 1);
+ for (i = 0; i <= th_steps; i++)
+ {
+ double a = M_PI * 2 * i / th_steps;
+ double x = cos(a);
+ double y = sin(a);
+ glVertex3f (x, y, 0);
+ glVertex3f (x*10, y*10, 0);
+ polys++;
+ }
+ glEnd();
+
+ return polys;
+}
+
+
+static int
+draw_angles (ModeInfo *mi)
+{
+ int i;
+ int polys = 0;
+
+ static const GLfloat text[4] = {0.15, 0.15, 0.15, 1.0};
+ static const GLfloat spec[4] = {0.0, 0.0, 0.0, 1.0};
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, text);
+ glTranslatef (0, 0, 0.01);
+ for (i = 0; i < 360; i += 10)
+ {
+ char buf[10];
+ GLfloat a = M_PI/2 - (i / 180.0 * M_PI);
+ sprintf (buf, "%d", i);
+ polys += draw_text (mi, buf, 1.07, a, 0, 10.0);
+ }
+
+ return polys;
+}
+
+
+static int
+draw_bogies (ModeInfo *mi)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+ int polys = 0;
+ sonar_bogie *b;
+
+ for (b = sp->displayed; b; b = b->next)
+ {
+ char *s = (char *)
+ malloc (strlen (b->name) + (b->desc ? strlen(b->desc) : 0) + 3);
+ strcpy (s, b->name);
+ if (b->desc)
+ {
+ strcat (s, "\n");
+ strcat (s, b->desc);
+ }
+ polys += draw_text (mi, s, b->r, b->th, b->ttl, -1);
+ free (s);
+
+ /* Move *very slightly* forward so that the text is not all in the
+ same plane: this prevents flickering with overlapping text as
+ the textures fight for priority. */
+ glTranslatef(0, 0, 0.00002);
+ }
+
+ return polys;
+}
+
+
+/* called from sonar-sim.c and sonar-icmp.c */
+sonar_bogie *
+sonar_copy_bogie (sonar_sensor_data *ssd, const sonar_bogie *b)
+{
+ sonar_bogie *b2 = (sonar_bogie *) calloc (1, sizeof(*b2));
+ b2->name = strdup (b->name);
+ b2->desc = b->desc ? strdup (b->desc) : 0;
+ b2->r = b->r;
+ b2->th = b->th;
+ b2->ttl = b->ttl;
+ /* does not copy b->closure */
+
+ /* Take this opportunity to normalize 'th' to the range [0-2pi). */
+ while (b2->th < 0) b2->th += M_PI*2;
+ while (b2->th >= M_PI*2) b2->th -= M_PI*2;
+
+ return b2;
+}
+
+
+/* called from sonar-icmp.c */
+void
+sonar_free_bogie (sonar_sensor_data *ssd, sonar_bogie *b)
+{
+ if (b->closure)
+ ssd->free_bogie_cb (ssd, b->closure);
+ free (b->name);
+ if (b->desc) free (b->desc);
+ free (b);
+}
+
+/* removes it from the list and frees it
+ */
+static void
+delete_bogie (sonar_sensor_data *ssd, sonar_bogie *b,
+ sonar_bogie **from_list)
+{
+ sonar_bogie *ob, *prev;
+ for (prev = 0, ob = *from_list; ob; prev = ob, ob = ob->next)
+ if (ob == b)
+ {
+ if (prev)
+ prev->next = b->next;
+ else
+ (*from_list) = b->next;
+ sonar_free_bogie (ssd, b);
+ break;
+ }
+}
+
+
+/* copies the bogie and adds it to the list.
+ if there's another bogie there with the same name, frees that one.
+ */
+static void
+copy_and_insert_bogie (sonar_sensor_data *ssd, sonar_bogie *b,
+ sonar_bogie **to_list)
+{
+ sonar_bogie *ob, *next;
+ if (!b) abort();
+ for (ob = *to_list, next = ob ? ob->next : 0;
+ ob;
+ ob = next, next = ob ? ob->next : 0)
+ {
+ if (ob == b) abort(); /* this will end badly */
+ if (!strcmp (ob->name, b->name)) /* match! */
+ {
+ delete_bogie (ssd, ob, to_list);
+ break;
+ }
+ }
+
+ b = sonar_copy_bogie (ssd, b);
+ b->next = *to_list;
+ *to_list = b;
+}
+
+
+static void
+update_sensor_data (sonar_configuration *sp)
+{
+ sonar_bogie *new_list = sp->ssd->scan_cb (sp->ssd);
+ sonar_bogie *b2;
+
+ /* If a bogie exists in 'new_list' but not 'pending', add it.
+ If a bogie exists in both, update it in 'pending'.
+ */
+ for (b2 = new_list; b2; b2 = b2->next)
+ {
+ if (debug_p > 2)
+ fprintf (stderr, "%s: updated: %s (%5.2f %5.2f %5.2f)\n",
+ progname, b2->name, b2->r, b2->th, b2->ttl);
+ copy_and_insert_bogie (sp->ssd, b2, &sp->pending);
+ }
+ if (debug_p > 2) fprintf (stderr, "\n");
+}
+
+
+/* Returns whether the given angle lies between two other angles.
+ When those angles cross 0, it assumes the wedge is the smaller one.
+ That is: 5 lies between 10 and 350 degrees (a 20 degree wedge).
+ */
+static Bool
+point_in_wedge (GLfloat th, GLfloat low, GLfloat high)
+{
+ if (low < high)
+ return (th > low && th <= high);
+ else
+ return (th <= high || th > low);
+}
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+static void
+sweep (sonar_configuration *sp)
+{
+ sonar_bogie *b;
+
+ /* Move the sweep forward (clockwise).
+ */
+ GLfloat prev_sweep, this_sweep, tick;
+ GLfloat cycle_secs = 30 / speed; /* default to one cycle every N seconds */
+ this_sweep = ((cycle_secs - fmod (double_time() - sp->start_time +
+ sp->sweep_offset,
+ cycle_secs))
+ / cycle_secs
+ * M_PI * 2);
+ prev_sweep = sp->sweep_th;
+ tick = prev_sweep - this_sweep;
+ while (tick < 0) tick += M_PI*2;
+
+ sp->sweep_th = this_sweep;
+
+ if (this_sweep < 0 || this_sweep >= M_PI*2) abort();
+ if (prev_sweep < 0) /* skip first time */
+ return;
+
+ if (tick < 0 || tick >= M_PI*2) abort();
+
+
+ /* Go through the 'pending' sensor data, find those bogies who are
+ just now being swept, and move them from 'pending' to 'displayed'.
+ (Leave bogies that have not yet been swept alone: we'll get to
+ them when the sweep moves forward.)
+ */
+ b = sp->pending;
+ while (b)
+ {
+ sonar_bogie *next = b->next;
+ if (point_in_wedge (b->th, this_sweep, prev_sweep))
+ {
+ if (debug_p > 1) {
+ time_t t = time((time_t *) 0);
+ fprintf (stderr,
+ "%s: sweep hit: %02d:%02d: %s: (%5.2f %5.2f %5.2f;"
+ " th=[%.2f < %.2f <= %.2f])\n",
+ progname,
+ (int) (t / 60) % 60, (int) t % 60,
+ b->name, b->r, b->th, b->ttl,
+ this_sweep, b->th, prev_sweep);
+ }
+ b->ttl = M_PI * 2.1;
+ copy_and_insert_bogie (sp->ssd, b, &sp->displayed);
+ delete_bogie (sp->ssd, b, &sp->pending);
+ }
+ b = next;
+ }
+
+
+ /* Update TTL on all currently-displayed bogies; delete the dead.
+
+ Request sensor updates on the ones just now being swept.
+
+ Any updates go into 'pending' and might not show up until
+ the next time the sweep comes around. This is to prevent
+ already-drawn bogies from jumping to a new position without
+ having faded out first.
+ */
+ b = sp->displayed;
+ while (b)
+ {
+ sonar_bogie *next = b->next;
+ b->ttl -= tick;
+
+ if (b->ttl <= 0)
+ {
+ if (debug_p > 1)
+ fprintf (stderr, "%s: TTL expired: %s (%5.2f %5.2f %5.2f)\n",
+ progname, b->name, b->r, b->th, b->ttl);
+ delete_bogie (sp->ssd, b, &sp->displayed);
+ }
+ b = next;
+ }
+
+ update_sensor_data (sp);
+}
+
+
+static void
+draw_startup_blurb (ModeInfo *mi)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+
+ if (sp->error)
+ {
+ const char *msg = sp->error;
+ static const GLfloat color[4] = {0, 1, 0, 1};
+
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glTranslatef (0, 0, 0.3);
+ draw_text (mi, msg, 0, 0, 0, 30.0);
+
+ /* only leave error message up for N seconds */
+ if (sp->start_time + 6 < double_time())
+ {
+ free (sp->error);
+ sp->error = 0;
+ }
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_sonar (ModeInfo *mi, int width, int height)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ sp->line_thickness = (MI_IS_WIREFRAME (mi) ? 1 : MAX (1, height / 300.0));
+}
+
+
+ENTRYPOINT Bool
+sonar_handle_event (ModeInfo *mi, XEvent *event)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, sp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &sp->button_down_p))
+ return True;
+
+ return False;
+}
+
+ENTRYPOINT void
+init_sonar (ModeInfo *mi)
+{
+ sonar_configuration *sp;
+
+ MI_INIT (mi, sps);
+ sp = &sps[MI_SCREEN(mi)];
+ sp->glx_context = init_GL(mi);
+
+ reshape_sonar (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
+ sp->trackball = gltrackball_init (False);
+ sp->rot = make_rotator (0, 0, 0, 0, speed * 0.003, True);
+
+ sp->texfont = load_texture_font (MI_DISPLAY(mi), "font");
+ check_gl_error ("loading font");
+
+ sp->table_list = glGenLists (1);
+ glNewList (sp->table_list, GL_COMPILE);
+ sp->table_polys = draw_table (mi);
+ glEndList ();
+
+ sp->screen_list = glGenLists (1);
+ glNewList (sp->screen_list, GL_COMPILE);
+ sp->screen_polys = draw_screen (mi, False, False);
+ glEndList ();
+
+ sp->grid_list = glGenLists (1);
+ glNewList (sp->grid_list, GL_COMPILE);
+ sp->grid_polys = draw_screen (mi, True, False);
+ glEndList ();
+
+ sp->sweep_list = glGenLists (1);
+ glNewList (sp->sweep_list, GL_COMPILE);
+ sp->sweep_polys = draw_screen (mi, False, True);
+ glEndList ();
+
+ sp->start_time = double_time ();
+ sp->sweep_offset = random() % 60;
+ sp->sweep_th = -1;
+ sp->state = MSG;
+}
+
+
+# ifdef TEST_ASYNC_NETDB
+
+# include <arpa/inet.h>
+
+static void _print_sockaddr (void *addr, socklen_t addrlen, FILE *stream)
+{
+ sa_family_t family = ((struct sockaddr *)addr)->sa_family;
+ char buf[256];
+ switch (family)
+ {
+ case AF_INET:
+ fputs (inet_ntoa(((struct sockaddr_in *)addr)->sin_addr), stream);
+ break;
+ case AF_INET6:
+ inet_ntop(family, &((struct sockaddr_in6 *)addr)->sin6_addr,
+ buf, sizeof (buf));
+ fputs (buf, stream);
+ break;
+ default:
+ abort();
+ break;
+ }
+}
+
+static void _print_error (int gai_error, int errno_error, FILE *stream)
+{
+ fputs (gai_error == EAI_SYSTEM ? strerror(errno_error) : gai_strerror(gai_error), stream);
+}
+
+# if ASYNC_NETDB_USE_GAI
+
+static void _print_thread (pthread_t thread, FILE *stream)
+{
+# ifdef __linux__
+ fprintf (stream, "%#lx", thread);
+# elif defined __APPLE__ && defined __MACH__
+ fprintf (stream, "%p", thread);
+# else
+ putc ('?', stream);
+# endif
+}
+
+# endif /* ASYNC_NETDB_USE_GAI */
+
+# endif /* TEST_ASYNC_NETDB */
+
+
+static void
+init_sensor (ModeInfo *mi)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+
+ if (sp->ssd) abort();
+
+ if (!ping_arg || !*ping_arg ||
+ !strcmp(ping_arg, "default") ||
+ !!strcmp (ping_arg, "simulation"))
+ /* sonar_init_ping() always disavows privs, even on failure. */
+ sp->ssd = sonar_init_ping (MI_DISPLAY (mi), &sp->error, &sp->desc,
+ ping_arg, ping_timeout, resolve_p, times_p,
+ debug_p);
+ else
+ setuid(getuid()); /* Disavow privs if not pinging. */
+
+ sp->start_time = double_time (); /* for error message timing */
+
+ if (!sp->ssd)
+ sp->ssd = sonar_init_simulation (MI_DISPLAY (mi), &sp->error, &sp->desc,
+ team_a_name, team_b_name,
+ team_a_count, team_b_count,
+ debug_p);
+ if (!sp->ssd)
+ abort();
+
+# if TEST_ASYNC_NETDB
+ /*
+ For extremely mysterious reasons, setuid apparently causes
+ pthread_join(3) to deadlock.
+ A rough guess at the sequence of events:
+ 1. Worker thread is created.
+ 2. Worker thread exits.
+ 3. setuid(getuid()) is called.
+ 4. pthread_join is called slightly later.
+
+ This may have something to do with glibc's use of SIGSETXID.
+ */
+
+ putc ('\n', stderr);
+
+# if !ASYNC_NETDB_USE_GAI
+ fputs ("Warning: getaddrinfo() was not available at compile time.\n", stderr);
+# endif
+
+ {
+ static const unsigned long addresses[] =
+ {
+ INADDR_LOOPBACK,
+ 0x00010203,
+ 0x08080808
+ };
+ struct sockaddr_in addr;
+ addr.sin_family = AF_INET;
+ addr.sin_port = 0;
+ addr.sin_addr.s_addr = htonl (addresses[random () % 3]);
+
+ sp->query0 = async_name_from_addr_start (MI_DISPLAY (mi), (void *)&addr,
+ sizeof(addr));
+ assert (sp->query0);
+ if (sp->query0)
+ {
+ fputs ("Looking up hostname from address: ", stderr);
+ _print_sockaddr (&addr, sizeof(addr), stderr);
+# if ASYNC_NETDB_USE_GAI
+ fputs (" @ ", stderr);
+ _print_thread (sp->query0->io.thread, stderr);
+# endif
+ putc ('\n', stderr);
+ }
+
+ if (!(random () & 3))
+ {
+ fputs ("Aborted hostname lookup (early)\n", stderr);
+ async_name_from_addr_cancel (sp->query0);
+ sp->query0 = NULL;
+ }
+ }
+
+ {
+ static const char *const hosts[] =
+ {
+ "example.com",
+ "invalid",
+ "ip6-localhost"
+ };
+ const char *host = hosts[random () % 3];
+
+ sp->query1 = async_addr_from_name_start (MI_DISPLAY(mi), host);
+
+ assert (sp->query1);
+
+ fprintf (stderr, "Looking up address from hostname: %s", host);
+# if ASYNC_NETDB_USE_GAI
+ fputs (" @ ", stderr);
+ _print_thread (sp->query1->io.thread, stderr);
+# endif
+ putc ('\n', stderr);
+
+ if (!(random () & 3))
+ {
+ fputs ("Aborted address lookup (early)\n", stderr);
+ async_addr_from_name_cancel (sp->query1);
+ sp->query1 = NULL;
+ }
+ }
+
+ fflush (stderr);
+# endif
+}
+
+
+ENTRYPOINT void
+draw_sonar (ModeInfo *mi)
+{
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (!sp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.05, 0.07, 1.00, 0.0};
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glShadeModel(GL_SMOOTH);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ {
+ GLfloat s = 7;
+ if (MI_WIDTH(mi) < MI_HEIGHT(mi))
+ s *= (MI_WIDTH(mi) / (float) MI_HEIGHT(mi));
+ glScalef (s,s,s);
+ }
+
+ gltrackball_rotate (sp->trackball);
+
+ if (wobble_p)
+ {
+ double x, y, z;
+ double max = 40;
+ get_position (sp->rot, &x, &y, &z, !sp->button_down_p);
+ glRotatef (max/2 - x*max, 1, 0, 0);
+ glRotatef (max/2 - z*max, 0, 1, 0);
+ }
+
+ mi->polygon_count = 0;
+
+ glPushMatrix(); /* table */
+ glCallList (sp->table_list);
+ mi->polygon_count += sp->table_polys;
+ glPopMatrix();
+
+ glPushMatrix(); /* text */
+ glTranslatef (0, 0, -0.01);
+ mi->polygon_count += draw_bogies (mi);
+ glPopMatrix();
+
+ glCallList (sp->screen_list); /* glass */
+ mi->polygon_count += sp->screen_polys;
+
+ glTranslatef (0, 0, 0.004); /* sweep */
+ glPushMatrix();
+ glRotatef ((sp->sweep_th * 180 / M_PI), 0, 0, 1);
+ if (sp->sweep_th >= 0)
+ glCallList (sp->sweep_list);
+ mi->polygon_count += sp->sweep_polys;
+ glPopMatrix();
+
+ glTranslatef (0, 0, 0.004); /* grid */
+ glCallList (sp->grid_list);
+ mi->polygon_count += sp->screen_polys;
+
+ glPushMatrix();
+ mi->polygon_count += draw_angles (mi); /* angles */
+ glPopMatrix();
+
+ if (sp->desc) /* local subnet */
+ {
+ glPushMatrix();
+ glTranslatef (0, 0, 0.00002);
+ mi->polygon_count += draw_text (mi, sp->desc, 1.35, M_PI * 0.75, 0, 10);
+ /* glRotatef (45, 0, 0, 1); */
+ /* mi->polygon_count += draw_text (mi, sp->desc, 1.2, M_PI/2, 0, 10); */
+ glPopMatrix();
+ }
+
+ if (sp->error)
+ sp->state = MSG;
+
+ switch (sp->state) {
+ case MSG: /* Frame 1: get "Resolving Hosts" on screen. */
+ draw_startup_blurb(mi);
+ sp->state++;
+ break;
+ case RESOLVE: /* Frame 2: gethostbyaddr may take a while. */
+ if (! sp->ssd)
+ init_sensor (mi);
+ sp->state++;
+ break;
+ case RUN: /* Frame N: ping away */
+ sweep (sp);
+ break;
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+
+# if TEST_ASYNC_NETDB
+ if(sp->query0 && async_name_from_addr_is_done (sp->query0))
+ {
+ if (!(random () & 3))
+ {
+ fputs ("Aborted hostname lookup (late)\n", stderr);
+ async_name_from_addr_cancel (sp->query0);
+ }
+ else
+ {
+ char *hostname = NULL;
+ int errno_error;
+ int gai_error = async_name_from_addr_finish (sp->query0, &hostname,
+ &errno_error);
+
+ if(gai_error)
+ {
+ fputs ("Couldn't get hostname: ", stderr);
+ _print_error (gai_error, errno_error, stderr);
+ putc ('\n', stderr);
+ }
+ else
+ {
+ fprintf (stderr, "Got a hostname: %s\n", hostname);
+ free (hostname);
+ }
+ }
+
+ sp->query0 = NULL;
+ }
+
+ if(sp->query1 && async_addr_from_name_is_done (sp->query1))
+ {
+ if (!(random () & 3))
+ {
+ fputs ("Aborted address lookup (late)\n", stderr);
+ async_addr_from_name_cancel (sp->query1);
+ }
+ else
+ {
+ async_netdb_sockaddr_storage_t addr;
+ socklen_t addrlen;
+ int errno_error;
+ int gai_error = async_addr_from_name_finish (sp->query1, &addr,
+ &addrlen, &errno_error);
+
+ if (gai_error)
+ {
+ fputs ("Couldn't get address: ", stderr);
+ _print_error (gai_error, errno_error, stderr);
+ putc ('\n', stderr);
+ }
+ else
+ {
+ fputs ("Got an address: ", stderr);
+ _print_sockaddr (&addr, addrlen, stderr);
+ putc ('\n', stderr);
+ }
+ }
+
+ sp->query1 = NULL;
+ }
+
+ fflush (stderr);
+# endif /* TEST_ASYNC_NETDB */
+}
+
+ENTRYPOINT void
+free_sonar (ModeInfo *mi)
+{
+#if 0
+ sonar_configuration *sp = &sps[MI_SCREEN(mi)];
+ sonar_bogie *b = sp->displayed;
+ while (b)
+ {
+ sonar_bogie *next = b->next;
+ free_bogie (sp->ssd, b);
+ b = next;
+ }
+ sp->displayed = 0;
+
+ b = sp->pending;
+ while (b)
+ {
+ sonar_bogie *next = b->next;
+ free_bogie (sp->ssd, b);
+ b = next;
+ }
+ sp->pending = 0;
+
+ sp->ssd->free_data_cb (sp->ssd, sp->ssd->closure);
+ free (sp->ssd);
+ sp->ssd = 0;
+#endif
+}
+
+XSCREENSAVER_MODULE ("Sonar", sonar)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/sonar.h b/hacks/glx/sonar.h
new file mode 100644
index 0000000..d6473e0
--- /dev/null
+++ b/hacks/glx/sonar.h
@@ -0,0 +1,71 @@
+/* sonar, Copyright (c) 1998-2012 Jamie Zawinski and Stephen Martin
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __SONAR_XSCREENSAVER_H__
+#define __SONAR_XSCREENSAVER_H__
+
+typedef struct sonar_sensor_data sonar_sensor_data;
+typedef struct sonar_bogie sonar_bogie;
+
+struct sonar_bogie {
+ void *closure;
+ char *name; /* bogie name, e.g., host name */
+ char *desc; /* second line of text, e.g., ping time */
+ double r; /* distance, 0 - 1.0 */
+ double th; /* heading, 0 - 2 pi */
+ double ttl; /* time to live, 0 - 2 pi */
+ sonar_bogie *next; /* next one in the list */
+};
+
+struct sonar_sensor_data {
+ void *closure;
+
+ /* Called frequently (every time the sweep moves).
+ Returns a list of new bogies to be added to the display list
+ once the sweep comes around to their position.
+ */
+ sonar_bogie *(*scan_cb) (sonar_sensor_data *);
+
+ /* Called when a bogie is freed, to free bogie->closure */
+ void (*free_bogie_cb) (sonar_sensor_data *, void *closure);
+
+ /* Called at exit, to free ssd->closure */
+ void (*free_data_cb) (sonar_sensor_data *, void *closure);
+};
+
+/* frees bogie and its contents, including calling the free_bogie_cb. */
+extern void sonar_free_bogie (sonar_sensor_data *ssd, sonar_bogie *b);
+
+/* makes a copy of the bogie, not including the 'closure' data. */
+extern sonar_bogie *sonar_copy_bogie (sonar_sensor_data *,
+ const sonar_bogie *);
+
+
+/* Set up and return sensor state for ICMP pings. */
+extern sonar_sensor_data *sonar_init_ping (Display *dpy,
+ char **error_ret,
+ char **desc_ret,
+ const char *subnets,
+ int ping_timeout,
+ Bool resolve_p, Bool times_p,
+ Bool debug_p);
+
+/* Set up and return sensor state for the simulation. */
+extern sonar_sensor_data *sonar_init_simulation (Display *dpy,
+ char **error_ret,
+ char **desc_ret,
+ const char *team_a_name,
+ const char *team_b_name,
+ int team_a_count,
+ int team_b_count,
+ Bool debug_p);
+
+#endif /* __SONAR_XSCREENSAVER_H__ */
diff --git a/hacks/glx/sonar.man b/hacks/glx/sonar.man
new file mode 100644
index 0000000..9927b3b
--- /dev/null
+++ b/hacks/glx/sonar.man
@@ -0,0 +1,169 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH Sonar 1 "12-Aug-08" "X Version 11"
+.SH NAME
+sonar - display a sonar scope
+.SH SYNOPSIS
+.B sonar
+[\-ping \fIhosts-or-subnets\fP]
+[\-ping\-timeout \fIint\fP]
+[\-delay \fIusecs\fP]
+[\-speed \fIratio\fP]
+[\-sweep-size \fIratio\fP]
+[\-font-size \fIpoints\fP]
+[\-team-a-name \fIstring\fP]
+[\-team-b-name \fIstring\fP]
+[\-team-a-count \fIint\fP]
+[\-team-b-count \fIint\fP]
+[\-no\-dns]
+[\-no\-times]
+[\-no\-wobble]
+[\-debug]
+[\-fps]
+.SH DESCRIPTION
+This draws a sonar screen that pings (get it?) the hosts on
+your local network, and plots their distance (response time) from you.
+The three rings represent ping times of approximately 2.5, 70 and 2,000
+milliseconds respectively.
+
+Alternately, it can run a simulation that doesn't involve hosts.
+.SH OPTIONS
+.I sonar
+understands the following options:
+.TP 8
+.B \-ping \fIhosts-or-subnets\fP
+The list of things to ping, separated by commas or spaces.
+Elements of this list may be:
+.RS 8
+.TP 12
+.B simulation
+Run in simulation mode instead of pinging real hosts.
+.TP 12
+.I hostname
+Ping the given host.
+.TP 12
+.I A.B.C.D
+Ping the given IPv4 address.
+.TP 12
+.B subnet
+Ping the local subnet. On systems where we can determine the local
+network mask, we use that; otherwise, we assume Class C (254 hosts).
+.TP 12
+.B subnet/\fINN\fP
+Ping a different-sized local subnet: e.g., \fBsubnet/28\fP would ping
+a 4-bit subnet (the nearest 14 addresses). On systems where we can
+determine the local network mask, we always use that.
+.TP 12
+.I A.B.C.D/NN
+Ping an arbitrary other IPv4 subnet. The address specifies
+the base address, and the part after the slash is how wide the
+subnet is. Typical values are /24 (for 254 addresses) and /28 (for
+14 addresses).
+.TP 12
+.I filename
+Ping the hosts listed in the given file. This file can be in the
+format used by \fI/etc/hosts\fP, or it can be any file that has host
+names as the first or second element on each line. If you use ssh,
+try this:
+
+ sonar -ping $HOME/.ssh/known_hosts
+.RE
+.TP 8
+.B \-ping\-timeout \fIint\fP
+The amount of time in milliseconds the program will wait for an answer
+to a ping.
+.TP 8
+.B \-delay \fIint\fP
+Delay between frames, in microseconds. Default 20000.
+.TP 8
+.B \-speed \fIratio\fP
+Less than 1 for slower, greater than 1 for faster. Default 1.
+.TP 8
+.B \-sweep-size \fIratio\fP
+How big the glowing sweep area should be. Default 0.3.
+.TP 8
+.B \-font-size \fIpoints\fP
+How large the text should be. Default 10 points.
+.TP 8
+.B \-no\-wobble
+Keep the display stationary instead of very slowly wobbling back and forth.
+.TP 8
+.B \-no\-dns
+Do not attempt to resolve IP addresses to hostnames.
+.TP 8
+.B \-no\-times
+Do not display ping times beneath the host names.
+.TP 8
+.B \-team-a-name \fIstring\fP
+In simulation mode, the name of team A.
+.TP 8
+.B \-team-b-name \fIstring\fP
+In simulation mode, the name of team B.
+.TP 8
+.B \-team-a-count \fIint\fP
+In simulation mode, the number of bogies on team A.
+.TP 8
+.B \-team-b-count \fIint\fP
+In simulation mode, the number of bogies on team B.
+.TP 8
+.B \-fps
+Display the current frame rate, polygon count, and CPU load.
+.SH NOTES
+On most Unix systems, this program must be installed as setuid root
+in order to ping hosts. This is because root privileges are needed
+to create an ICMP RAW socket. Privileges are disavowed shortly after
+startup (just after connecting to the X server) so this is believed
+to be safe:
+.EX
+chown root:root sonar
+chmod u+s sonar
+.EE
+It is not necessary to make it setuid on MacOS systems, because on
+MacOS, unprivileged programs can ping by using ICMP DGRAM sockets
+instead of ICMP RAW.
+
+In ping-mode, the display is a logarithmic scale, calibrated so that the
+three rings represent ping times of approximately 2.5, 70 and 2,000
+milliseconds respectively.
+
+This means that if any the hosts you are pinging take longer than 2
+seconds to respond, they won't show up; and if you are pinging several
+hosts with very fast response times, they will all appear close to the
+center of the screen (making their names hard to read.)
+.SH BUGS
+Does not support IPv6.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR ping (8),
+.BR ping6 (8)
+.SH COPYRIGHT
+Copyright \(co 2000-2012 by Jamie Zawinski <jwz@jwz.org>
+.RE
+Copyright \(co 1998 by Stephen Martin. <smartin@canada.com>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation. No representations are made about the suitability of this
+software for any purpose. It is provided "as is" without express or
+implied warranty.
+
+.SH AUTHORS
+Stephen Martin <smartin@canada.com>, 3-nov-1998.
+
+Subnet support, etc. added by Jamie Zawinski, 17-Jul-2000.
+
+Rewritten using OpenGL instead of X11 by Jamie Zawinski, 12-Aug-2008.
diff --git a/hacks/glx/sphere.c b/hacks/glx/sphere.c
new file mode 100644
index 0000000..dee4541
--- /dev/null
+++ b/hacks/glx/sphere.c
@@ -0,0 +1,155 @@
+/* sphere, Copyright (c) 2002 Paul Bourke <pbourke@swin.edu.au>,
+ * Copyright (c) 2010-2014 Jamie Zawinski <jwz@jwz.org>
+ * Utility function to create a unit sphere in GL.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * 8-Oct-98: dek Released initial version of "glplanet"
+ * 21-Mar-01: jwz@jwz.org Broke sphere routine out into its own file.
+ * 28-Feb-02: jwz@jwz.org New implementation from Paul Bourke:
+ * http://astronomy.swin.edu.au/~pbourke/opengl/sphere/
+ * 21-Aug-10 jwz@jwz.org Converted to use glDrawArrays, for OpenGL ES.
+ */
+
+#include <math.h>
+#include <stdlib.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_COCOA
+#elif defined(HAVE_ANDROID)
+# include <GLES/gl.h>
+#else /* real X11 */
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "sphere.h"
+
+typedef struct { GLfloat x, y, z; } XYZ;
+
+static int
+unit_sphere_1 (int stacks, int slices, int wire_p, int half_p)
+{
+ int polys = 0;
+ int i,j;
+ double theta1, theta2, theta3;
+ XYZ p, n;
+ XYZ la = { 0, -1, 0 }, lb = { 0, -1, 0 };
+ XYZ c = {0, 0, 0}; /* center */
+ double r = 1.0; /* radius */
+ int stacks2 = stacks * 2;
+ int end = (half_p ? stacks/2 : stacks);
+
+ int mode = (wire_p ? GL_LINE_STRIP : GL_TRIANGLE_STRIP);
+
+ int arraysize, out;
+ struct { XYZ p; XYZ n; GLfloat s, t; } *array;
+
+ if (r < 0)
+ r = -r;
+ if (slices < 0)
+ slices = -slices;
+
+ arraysize = (stacks+1) * (slices+1) * (wire_p ? 4 : 2);
+ array = (void *) calloc (arraysize, sizeof(*array));
+ if (! array) abort();
+ out = 0;
+
+ if (slices < 4 || stacks < 2 || r <= 0)
+ {
+ mode = GL_POINTS;
+ array[out++].p = c;
+ goto END;
+ }
+
+ for (j = 0; j < end; j++)
+ {
+ theta1 = j * (M_PI+M_PI) / stacks2 - M_PI_2;
+ theta2 = (j + 1) * (M_PI+M_PI) / stacks2 - M_PI_2;
+
+ for (i = slices; i >= 0; i--)
+ {
+ theta3 = i * (M_PI+M_PI) / slices;
+
+ if (wire_p)
+ {
+ array[out++].p = lb; /* vertex */
+ array[out++].p = la; /* vertex */
+ }
+
+ n.x = cos (theta2) * cos(theta3);
+ n.y = sin (theta2);
+ n.z = cos (theta2) * sin(theta3);
+ p.x = c.x + r * n.x;
+ p.y = c.y + r * n.y;
+ p.z = c.z + r * n.z;
+
+ array[out].p = p; /* vertex */
+ array[out].n = n; /* normal */
+ array[out].s = i / (GLfloat) slices; /* texture */
+ array[out].t = 2*(j+1) / (GLfloat) stacks2;
+ out++;
+
+ if (wire_p) la = p;
+
+ n.x = cos(theta1) * cos(theta3);
+ n.y = sin(theta1);
+ n.z = cos(theta1) * sin(theta3);
+ p.x = c.x + r * n.x;
+ p.y = c.y + r * n.y;
+ p.z = c.z + r * n.z;
+
+ array[out].p = p; /* vertex */
+ array[out].n = n; /* normal */
+ array[out].s = i / (GLfloat) slices; /* texture */
+ array[out].t = 2*j / (GLfloat) stacks2;
+ out++;
+
+ if (out >= arraysize) abort();
+
+ if (wire_p) lb = p;
+ polys++;
+ }
+ }
+
+ END:
+
+ glEnableClientState (GL_VERTEX_ARRAY);
+ glEnableClientState (GL_NORMAL_ARRAY);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p);
+ glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n);
+ glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s);
+
+ glDrawArrays (mode, 0, out);
+
+ free (array);
+
+ return polys;
+}
+
+
+int
+unit_sphere (int stacks, int slices, int wire_p)
+{
+ return unit_sphere_1 (stacks, slices, wire_p, 0);
+}
+
+int
+unit_dome (int stacks, int slices, int wire_p)
+{
+ return unit_sphere_1 (stacks, slices, wire_p, 1);
+}
diff --git a/hacks/glx/sphere.h b/hacks/glx/sphere.h
new file mode 100644
index 0000000..9852377
--- /dev/null
+++ b/hacks/glx/sphere.h
@@ -0,0 +1,24 @@
+/* sphere, Copyright (c) 2001-2014 Jamie Zawinski <jwz@jwz.org>
+ * Utility function to create a unit sphere in GL.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __SPHERE_H__
+#define __SPHERE_H__
+
+/* Creates a diameter 1 sphere at 0, 0, 0.
+ stacks = number of north/south divisions (latitude)
+ slices = number of clockwise/counterclockwise divisions (longitude)
+ Returns number of polygons used.
+ */
+extern int unit_sphere (int stacks, int slices, int wire_p);
+extern int unit_dome (int stacks, int slices, int wire_p);
+
+#endif /* __SPHERE_H__ */
diff --git a/hacks/glx/spheremonics.c b/hacks/glx/spheremonics.c
new file mode 100644
index 0000000..9cefbf3
--- /dev/null
+++ b/hacks/glx/spheremonics.c
@@ -0,0 +1,882 @@
+/* xscreensaver, Copyright (c) 2002-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Algorithm by Paul Bourke <pbourke@swin.edu.au>
+ * http://astronomy.swin.edu.au/~pbourke/geometry/sphericalh/
+ * Screensaver veneer and parameter selection by jwz.
+ *
+ * Paul says:
+ *
+ * These closed objects are commonly called spherical harmonics,
+ * although they are only remotely related to the mathematical
+ * definition found in the solution to certain wave functions, most
+ * notable the eigenfunctions of angular momentum operators.
+ *
+ * The formula is quite simple: the form used here is based upon
+ * spherical (polar) coordinates (radius, theta, phi).
+ *
+ * r = sin(m0 phi) ^ m1 +
+ * cos(m2 phi) ^ m3 +
+ * sin(m4 theta) ^ m5 +
+ * cos(m6 theta) ^ m7
+ *
+ * Where phi ranges from 0 to pi (lines of latitude), and theta ranges
+ * from 0 to 2 pi (lines of longitude), and r is the radius. The
+ * parameters m0, m1, m2, m3, m4, m5, m6, and m7 are all integers
+ * greater than or equal to 0.
+ *
+ * As the degree increases, the objects become increasingly "pointed"
+ * and a large number of polygons are required to represent the surface
+ * faithfully.
+ *
+ * jwz adds:
+ *
+ * The eight parameters live in the `cc->m' array.
+ * Each time we permute the image, we alter *one* of those eight parameters.
+ * Each time we alter a parameter, we move it in the same direction (either
+ * toward larger or smaller values) in the range [0, 3].
+ *
+ * By altering only one parameter at a time, and only by small amounts,
+ * we tend to produce successive objects that are pretty similar to each
+ * other, so you can see a progression.
+ *
+ * It'd be nice if they were even closer together, so that it looked more
+ * like a morph, but, well, that's not how it works.
+ *
+ * There tends to be a dark stripe in the colormaps. I don't know why.
+ * Perhaps utils/colors.c is at fault?
+ *
+ * Note that this equation sometimes generates faces that are inside out:
+ * -parameters 01210111
+ * To make this work, we need to render back-faces with two-sided lighting:
+ * figuring out how to correct the winding and normals on those inside out
+ * surfaces would be too hard.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+ "*labelfont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n"
+
+# define free_spheremonics 0
+# define release_spheremonics 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "texfont.h"
+#include "normals.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_DURATION "100"
+#define DEF_SPIN "XYZ"
+#define DEF_WANDER "False"
+#define DEF_RESOLUTION "64"
+#define DEF_BBOX "False"
+#define DEF_GRID "True"
+#define DEF_SMOOTH "True"
+#define DEF_PARMS "(default)"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLuint dlist, dlist2;
+ GLfloat scale;
+ XYZ bbox[2];
+
+ int resolution;
+ int ncolors;
+ XColor *colors;
+
+ int m[8];
+ int dm[8];
+ int m_max;
+
+ int tracer;
+ int mesher;
+ int polys1, polys2; /* polygon counts */
+
+ texture_font_data *font_data;
+
+ int change_tick;
+ int done_once;
+
+} spheremonics_configuration;
+
+static spheremonics_configuration *ccs = NULL;
+
+static char *do_spin;
+static Bool do_wander;
+static Bool do_bbox;
+static Bool do_grid;
+static int smooth_p;
+static char *static_parms;
+static int res;
+static int duration;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-resolution", ".resolution", XrmoptionSepArg, 0 },
+ { "-duration", ".duration", XrmoptionSepArg, 0 },
+ { "-bbox", ".bbox", XrmoptionNoArg, "True" },
+ { "+bbox", ".bbox", XrmoptionNoArg, "False" },
+ { "-grid", ".grid", XrmoptionNoArg, "True" },
+ { "+grid", ".grid", XrmoptionNoArg, "False" },
+ {"-smooth", ".smooth", XrmoptionNoArg, "True" },
+ {"+smooth", ".smooth", XrmoptionNoArg, "False" },
+ { "-parameters", ".parameters", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&res, "resolution", "Resolution", DEF_RESOLUTION, t_Int},
+ {&duration, "duration", "Duration", DEF_DURATION, t_Int},
+ {&do_bbox, "bbox", "BBox", DEF_BBOX, t_Bool},
+ {&do_grid, "grid", "Grid", DEF_GRID, t_Bool},
+ {&smooth_p, "smooth", "Smooth", DEF_SMOOTH, t_Bool},
+ {&static_parms, "parameters", "Parameters", DEF_PARMS, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt spheremonics_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_spheremonics (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+
+# endif
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static void
+gl_init (ModeInfo *mi)
+{
+/* spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)]; */
+ int wire = MI_IS_WIREFRAME(mi);
+
+ static const GLfloat pos[4] = {5.0, 5.0, 10.0, 1.0};
+
+ glEnable(GL_NORMALIZE);
+
+ if (!wire)
+ {
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+
+ /* With objects that have proper winding and normals set up on all
+ their faces, one can cull back-faces; however, these equations
+ generate objects that are sometimes "inside out", and determining
+ whether a facet has been inverted like that is really hard.
+ So we render both front and back faces, at a probable performance
+ penalty on non-accelerated systems.
+
+ When rendering back faces, we also need to do two-sided lighting,
+ or the fact that the normals are flipped gives us too-dark surfaces
+ on the inside-out surfaces.
+
+ This isn't generally something you'd want, because you end up
+ with half the lighting dynamic range (kind of.) So if you had
+ a sphere with correctly pointing normals, and a single light
+ source, it would be illuminated from two sides. In this case,
+ though, it saves us from a difficult and time consuming
+ inside/outside test. And we don't really care about a precise
+ lighting effect.
+ */
+ glDisable(GL_CULL_FACE);
+ glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, True);
+ }
+
+ if (smooth_p)
+ {
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+ }
+}
+
+
+
+/* generate the object */
+
+static XYZ
+sphere_eval (double theta, double phi, int *m)
+{
+ double r = 0;
+ XYZ p;
+
+ r += pow (sin(m[0] * phi), (double)m[1]);
+ r += pow (cos(m[2] * phi), (double)m[3]);
+ r += pow (sin(m[4] * theta),(double)m[5]);
+ r += pow (cos(m[6] * theta),(double)m[7]);
+
+ p.x = r * sin(phi) * cos(theta);
+ p.y = r * cos(phi);
+ p.z = r * sin(phi) * sin(theta);
+
+ return (p);
+}
+
+
+static void
+do_color (int i, XColor *colors)
+{
+ GLfloat c[4];
+ c[0] = colors[i].red / 65535.0;
+ c[1] = colors[i].green / 65535.0;
+ c[2] = colors[i].blue / 65535.0;
+ c[3] = 1.0;
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c);
+ glColor3f (c[0], c[1], c[2]);
+}
+
+
+static void
+draw_circle (ModeInfo *mi, Bool teeth_p)
+{
+ GLfloat th;
+ int tick = 0;
+ GLfloat x, y;
+ GLfloat step = (M_PI / 180);
+
+ glBegin(GL_LINE_LOOP);
+ for (th = 0; th < M_PI*2; th += step*5)
+ {
+ GLfloat r1 = 0.5;
+ x = cos (th);
+ y = sin (th);
+ glVertex3f(x*r1, y*r1, 0);
+ }
+ glEnd();
+
+ if (!teeth_p) return;
+
+ glBegin(GL_LINES);
+ for (th = 0; th < M_PI*2; th += step)
+ {
+ GLfloat r1 = 0.5;
+ GLfloat r2 = r1 - 0.01;
+ if (! (tick % 10))
+ r2 -= 0.02;
+ else if (! (tick % 5))
+ r2 -= 0.01;
+ tick++;
+
+ x = cos (th);
+ y = sin (th);
+ glVertex3f(x*r1, y*r1, 0);
+ glVertex3f(x*r2, y*r2, 0);
+ }
+ glEnd();
+}
+
+
+static void
+draw_bounding_box (ModeInfo *mi)
+{
+ /* spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)]; */
+
+ static const GLfloat c1[4] = { 0.2, 0.2, 0.6, 1.0 };
+ static const GLfloat c2[4] = { 1.0, 0.0, 0.0, 1.0 };
+ int wire = MI_IS_WIREFRAME(mi);
+
+ GLfloat x1,y1,z1,x2,y2,z2;
+
+# if 0
+ x1 = cc->bbox[0].x;
+ y1 = cc->bbox[0].y;
+ z1 = cc->bbox[0].z;
+ x2 = cc->bbox[1].x;
+ y2 = cc->bbox[1].y;
+ z2 = cc->bbox[1].z;
+# else
+ x1 = y1 = z1 = -0.5;
+ x2 = y2 = z2 = 0.5;
+# endif
+
+ if (do_bbox && !wire)
+ {
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c1);
+ glFrontFace(GL_CCW);
+ glEnable(GL_CULL_FACE);
+
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, 1, 0);
+ glVertex3f(x1, y1, z1); glVertex3f(x1, y1, z2);
+ glVertex3f(x2, y1, z2); glVertex3f(x2, y1, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, -1, 0);
+ glVertex3f(x2, y2, z1); glVertex3f(x2, y2, z2);
+ glVertex3f(x1, y2, z2); glVertex3f(x1, y2, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, 0, 1);
+ glVertex3f(x1, y1, z1); glVertex3f(x2, y1, z1);
+ glVertex3f(x2, y2, z1); glVertex3f(x1, y2, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(0, 0, -1);
+ glVertex3f(x1, y2, z2); glVertex3f(x2, y2, z2);
+ glVertex3f(x2, y1, z2); glVertex3f(x1, y1, z2);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(1, 0, 0);
+ glVertex3f(x1, y2, z1); glVertex3f(x1, y2, z2);
+ glVertex3f(x1, y1, z2); glVertex3f(x1, y1, z1);
+ glEnd();
+ glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(-1, 0, 0);
+ glVertex3f(x2, y1, z1); glVertex3f(x2, y1, z2);
+ glVertex3f(x2, y2, z2); glVertex3f(x2, y2, z1);
+ glEnd();
+ glDisable(GL_CULL_FACE);
+ }
+
+ if (do_grid)
+ {
+ glDisable (GL_LIGHTING);
+ glColor3f (c2[0], c2[1], c2[2]);
+ glPushMatrix();
+ glBegin(GL_LINES);
+ glVertex3f(0, -0.66, 0);
+ glVertex3f(0, 0.66, 0);
+ glEnd();
+ draw_circle (mi, True);
+ glRotatef(90, 1, 0, 0);
+ draw_circle (mi, True);
+ glRotatef(90, 0, 1, 0);
+ draw_circle (mi, True);
+ glPopMatrix();
+ }
+ else
+ {
+#if 0
+ glBegin(GL_LINES);
+ if (x1 > 0) x1 = 0; if (x2 < 0) x2 = 0;
+ if (y1 > 0) y1 = 0; if (y2 < 0) y2 = 0;
+ if (z1 > 0) z1 = 0; if (z2 < 0) z2 = 0;
+ glVertex3f(x1, 0, 0); glVertex3f(x2, 0, 0);
+ glVertex3f(0 , y1, 0); glVertex3f(0, y2, 0);
+ glVertex3f(0, 0, z1); glVertex3f(0, 0, z2);
+ glEnd();
+#endif
+ }
+}
+
+
+static void
+do_tracer (ModeInfo *mi)
+{
+ spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)];
+
+ if (cc->tracer == -1 &&
+ cc->mesher == -1 &&
+ !(random() % (duration * 4)))
+ {
+ if (random() & 1)
+ cc->tracer = ((random() & 1) ? 0 : 180);
+ else
+ cc->mesher = ((random() % ((duration / 3) + 1)) +
+ (random() % ((duration / 3) + 1)));
+ }
+
+ if (cc->tracer >= 0)
+ {
+ int d = (90 - cc->tracer);
+ GLfloat th = d * (M_PI / 180);
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+ GLfloat s = 1.5 / cc->scale;
+
+ if (s > 0.001)
+ {
+ static const GLfloat c[4] = { 0.6, 0.5, 1.0, 1.0 };
+
+ glDisable (GL_LIGHTING);
+
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+ glTranslatef (0, 0, y*s/2);
+ s *= x;
+ glScalef(s, s, s);
+ glColor3f (c[0], c[1], c[2]);
+ draw_circle (mi, False);
+ glPopMatrix();
+
+ if (! MI_IS_WIREFRAME(mi)) glEnable (GL_LIGHTING);
+ }
+
+ cc->tracer += 5;
+ if (cc->tracer == 180 || cc->tracer == 360)
+ cc->tracer = -1;
+ }
+}
+
+
+static int
+unit_spheremonics (ModeInfo *mi,
+ int resolution, Bool wire, int *m, XColor *colors)
+{
+ spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int polys = 0;
+ int i, j;
+ double du, dv;
+ XYZ q[4];
+ XYZ n[4];
+ int res = (wire == 2
+ ? resolution / 2
+ : resolution);
+
+ cc->bbox[0].x = cc->bbox[0].y = cc->bbox[0].z = 0;
+ cc->bbox[1].x = cc->bbox[1].y = cc->bbox[1].z = 0;
+
+ du = (M_PI+M_PI) / (double)res; /* Theta */
+ dv = M_PI / (double)res; /* Phi */
+
+ if (wire)
+ glColor3f (1, 1, 1);
+
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+
+ for (i = 0; i < res; i++) {
+ double u = i * du;
+ for (j = 0; j < res; j++) {
+ double v = j * dv;
+ q[0] = sphere_eval (u, v, m);
+ n[0] = calc_normal(q[0],
+ sphere_eval (u+du/10, v, m),
+ sphere_eval (u, v+dv/10, m));
+ glNormal3f(n[0].x,n[0].y,n[0].z);
+ if (!wire) do_color (i, colors);
+ glVertex3f(q[0].x,q[0].y,q[0].z);
+
+ q[1] = sphere_eval (u+du, v, m);
+ n[1] = calc_normal(q[1],
+ sphere_eval (u+du+du/10, v, m),
+ sphere_eval (u+du, v+dv/10, m));
+ glNormal3f(n[1].x,n[1].y,n[1].z);
+ if (!wire) do_color ((i+1)%res, colors);
+ glVertex3f(q[1].x,q[1].y,q[1].z);
+
+ q[2] = sphere_eval (u+du, v+dv, m);
+ n[2] = calc_normal(q[2],
+ sphere_eval (u+du+du/10, v+dv, m),
+ sphere_eval (u+du, v+dv+dv/10, m));
+ glNormal3f(n[2].x,n[2].y,n[2].z);
+ if (!wire) do_color ((i+1)%res, colors);
+ glVertex3f(q[2].x,q[2].y,q[2].z);
+
+ q[3] = sphere_eval (u,v+dv, m);
+ n[3] = calc_normal(q[3],
+ sphere_eval (u+du/10, v+dv, m),
+ sphere_eval (u, v+dv+dv/10, m));
+ glNormal3f(n[3].x,n[3].y,n[3].z);
+ if (!wire) do_color (i, colors);
+ glVertex3f(q[3].x,q[3].y,q[3].z);
+
+ polys++;
+
+# define CHECK_BBOX(N) \
+ if (q[(N)].x < cc->bbox[0].x) cc->bbox[0].x = q[(N)].x; \
+ if (q[(N)].y < cc->bbox[0].y) cc->bbox[0].y = q[(N)].y; \
+ if (q[(N)].z < cc->bbox[0].z) cc->bbox[0].z = q[(N)].z; \
+ if (q[(N)].x > cc->bbox[1].x) cc->bbox[1].x = q[(N)].x; \
+ if (q[(N)].y > cc->bbox[1].y) cc->bbox[1].y = q[(N)].y; \
+ if (q[(N)].z > cc->bbox[1].z) cc->bbox[1].z = q[(N)].z
+
+ CHECK_BBOX(0);
+ CHECK_BBOX(1);
+ CHECK_BBOX(2);
+ CHECK_BBOX(3);
+# undef CHECK_BBOX
+ }
+ }
+ glEnd();
+
+ {
+ GLfloat w = cc->bbox[1].x - cc->bbox[0].x;
+ GLfloat h = cc->bbox[1].y - cc->bbox[0].y;
+ GLfloat d = cc->bbox[1].z - cc->bbox[0].z;
+ GLfloat wh = (w > h ? w : h);
+ GLfloat hd = (h > d ? h : d);
+ GLfloat scale = (wh > hd ? wh : hd);
+
+ cc->scale = 1/scale;
+
+ if (wire < 2 && (do_bbox || do_grid))
+ {
+ GLfloat s = scale * 1.5;
+ glPushMatrix();
+ glScalef(s, s, s);
+ draw_bounding_box (mi);
+ glPopMatrix();
+ }
+ }
+ return polys;
+}
+
+
+static void
+init_colors (ModeInfo *mi)
+{
+ spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int i;
+ cc->ncolors = cc->resolution;
+ cc->colors = (XColor *) calloc(cc->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ cc->colors, &cc->ncolors,
+ False, 0, False);
+
+ /* brighter colors, please... */
+ for (i = 0; i < cc->ncolors; i++)
+ {
+ cc->colors[i].red = (cc->colors[i].red / 2) + 32767;
+ cc->colors[i].green = (cc->colors[i].green / 2) + 32767;
+ cc->colors[i].blue = (cc->colors[i].blue / 2) + 32767;
+ }
+}
+
+
+/* Pick one of the parameters to the function and tweak it up or down.
+ */
+static void
+tweak_parameters (ModeInfo *mi)
+{
+ spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)];
+
+ /* If the -parameters command line option was specified, just use that
+ all the time.
+ */
+ if (static_parms &&
+ *static_parms &&
+ !!strcasecmp (static_parms, "(default)"))
+ {
+ unsigned long n;
+ char dummy;
+ if (8 == sscanf (static_parms, "%d %d %d %d %d %d %d %d %c",
+ &cc->m[0], &cc->m[1], &cc->m[2], &cc->m[3],
+ &cc->m[4], &cc->m[5], &cc->m[6], &cc->m[7],
+ &dummy))
+ return;
+ else if (strlen (static_parms) == 8 &&
+ 1 == sscanf (static_parms, "%lu %c", &n, &dummy))
+ {
+ const char *s = static_parms;
+ int i = 0;
+ while (*s)
+ cc->m[i++] = (*s++)-'0';
+ return;
+ }
+ fprintf (stderr,
+ "%s: -parameters must be a string of 8 ints (not \"%s\")\n",
+ progname, static_parms);
+ exit (1);
+ }
+
+ static_parms = 0;
+
+
+# define SHIFT(N) do { \
+ int n = (N); \
+ cc->m[n] += cc->dm[n]; \
+ if (cc->m[n] <= 0) \
+ cc->m[n] = 0, cc->dm[n] = -cc->dm[n]; \
+ else if (cc->m[n] >= cc->m_max) \
+ cc->m[n] = cc->m_max, cc->dm[n] = -cc->dm[n]; \
+ } while(0)
+
+/* else if (cc->m[n] >= cc->m_max/2 && (! (random() % 3))) \
+ cc->m[n] = cc->m_max/2, cc->dm[n] = -cc->dm[n]; \
+*/
+
+ switch(random() % 8)
+ {
+ case 0: SHIFT(0); break;
+ case 1: SHIFT(1); break;
+ case 2: SHIFT(2); break;
+ case 3: SHIFT(3); break;
+ case 4: SHIFT(4); break;
+ case 5: SHIFT(5); break;
+ case 6: SHIFT(6); break;
+ case 7: SHIFT(7); break;
+ default: abort(); break;
+ }
+# undef SHIFT
+
+#if 0
+ printf ("%s: state: %d %d %d %d %d %d %d %d\n",
+ progname,
+ cc->m[0], cc->m[1], cc->m[2], cc->m[3],
+ cc->m[4], cc->m[5], cc->m[6], cc->m[7]);
+#endif
+
+}
+
+
+static void
+generate_spheremonics (ModeInfo *mi)
+{
+ spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+
+ tweak_parameters (mi);
+
+ if (!cc->done_once || (0 == (random() % 20)))
+ {
+ init_colors (mi);
+ cc->done_once = True;
+ }
+
+ {
+ glNewList(cc->dlist, GL_COMPILE);
+ cc->polys1 = unit_spheremonics (mi, cc->resolution, wire,cc->m,cc->colors);
+ glEndList();
+
+ glNewList(cc->dlist2, GL_COMPILE);
+ glPushMatrix();
+ glScalef (1.05, 1.05, 1.05);
+ cc->polys2 = unit_spheremonics (mi, cc->resolution, 2, cc->m, cc->colors);
+ glPopMatrix();
+ glEndList();
+ }
+}
+
+
+
+
+ENTRYPOINT void
+init_spheremonics (ModeInfo *mi)
+{
+ spheremonics_configuration *cc;
+
+ MI_INIT (mi, ccs);
+
+ cc = &ccs[MI_SCREEN(mi)];
+
+ if ((cc->glx_context = init_GL(mi)) != NULL) {
+ gl_init(mi);
+ reshape_spheremonics (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ {
+ Bool spinx=False, spiny=False, spinz=False;
+ double spin_speed = 1.0;
+ double wander_speed = 0.03;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') spinx = True;
+ else if (*s == 'y' || *s == 'Y') spiny = True;
+ else if (*s == 'z' || *s == 'Z') spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ cc->rot = make_rotator (spinx ? spin_speed : 0,
+ spinz ? spin_speed : 0,
+ spiny ? spin_speed : 0,
+ 1.0,
+ do_wander ? wander_speed : 0,
+ (spinx && spiny && spinz));
+ cc->trackball = gltrackball_init (True);
+ }
+
+ cc->tracer = -1;
+ cc->mesher = -1;
+
+ cc->resolution = res;
+
+ cc->font_data = load_texture_font (mi->dpy, "labelfont");
+
+ cc->dlist = glGenLists(1);
+ cc->dlist2 = glGenLists(1);
+
+ cc->m_max = 4; /* 9? */
+ {
+ unsigned int i;
+ for (i = 0; i < countof(cc->dm); i++)
+ cc->dm[i] = 1; /* going up! */
+
+ /* Generate a few more times so we don't always start off with a sphere */
+ for (i = 0; i < 5; i++)
+ tweak_parameters (mi);
+ }
+
+ generate_spheremonics(mi);
+}
+
+
+ENTRYPOINT Bool
+spheremonics_handle_event (ModeInfo *mi, XEvent *event)
+{
+ spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, cc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &cc->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ cc->change_tick = duration;
+ return True;
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+draw_spheremonics (ModeInfo *mi)
+{
+ spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!cc->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cc->glx_context));
+
+ gl_init(mi);
+
+ glShadeModel(GL_SMOOTH);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ glScalef(1.1, 1.1, 1.1);
+
+ {
+ double x, y, z;
+ get_position (cc->rot, &x, &y, &z, !cc->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 6,
+ (z - 0.5) * 8);
+
+ gltrackball_rotate (cc->trackball);
+
+ get_rotation (cc->rot, &x, &y, &z, !cc->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ glScalef(7,7,7);
+
+ mi->polygon_count = 0;
+
+ glScalef (cc->scale, cc->scale, cc->scale);
+ glCallList (cc->dlist);
+ mi->polygon_count += cc->polys1;
+
+ if (cc->mesher >= 0 /* || cc->button_down_p */)
+ {
+ glDisable (GL_LIGHTING);
+ glCallList (cc->dlist2);
+ mi->polygon_count += cc->polys2;
+ if (cc->mesher >= 0)
+ cc->mesher--;
+ }
+ do_tracer(mi);
+
+
+ if (cc->button_down_p)
+ {
+ char buf[200];
+ sprintf (buf,
+ ((cc->m[0]<10 && cc->m[1]<10 && cc->m[2]<10 && cc->m[3]<10 &&
+ cc->m[4]<10 && cc->m[5]<10 && cc->m[6]<10 && cc->m[7]<10)
+ ? "%d%d%d%d%d%d%d%d"
+ : "%d %d %d %d %d %d %d %d"),
+ cc->m[0], cc->m[1], cc->m[2], cc->m[3],
+ cc->m[4], cc->m[5], cc->m[6], cc->m[7]);
+
+ glColor3f(1.0, 1.0, 0.0);
+ print_texture_label (mi->dpy, cc->font_data,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, buf);
+ }
+
+ if (!static_parms)
+ {
+ if (cc->change_tick++ >= duration && !cc->button_down_p)
+ {
+ generate_spheremonics(mi);
+ cc->change_tick = 0;
+ cc->mesher = -1; /* turn off the mesh when switching objects */
+ }
+ }
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Spheremonics", spheremonics)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/spheremonics.man b/hacks/glx/spheremonics.man
new file mode 100644
index 0000000..5e6f437
--- /dev/null
+++ b/hacks/glx/spheremonics.man
@@ -0,0 +1,92 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+spheremonics - 3d spherical harmonic shapes.
+.SH SYNOPSIS
+.B spheremonics
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-duration \fInumber\fP]
+[\-resolution \fInumber\fP]
+[\-wander]
+[\-no-spin]
+[\-spin \fI[XYZ]\fP]
+[\-wireframe]
+[\-no-smooth]
+[\-no-grid]
+[\-bbox]
+[\-fps]
+.SH DESCRIPTION
+These closed objects are commonly called spherical harmonics, although they
+are only remotely related to the mathematical definition found in the
+solution to certain wave functions, most notable the eigenfunctions of
+angular momentum operators.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-duration \fInumber\fP
+Duration. 5 - 1000. Default: 100.
+.TP 8
+.B \-resolution \fInumber\fP
+Resolution. 5 - 100. Default: 64.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin \fI[XYZ]\fP
+Around which axes should the object spin?
+.TP 8
+.B \-no-spin
+Don't spin.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-smooth | \-no-smooth
+Smoothed Lines. Boolean.
+.TP 8
+.B \-grid | \-no-grid
+Draw Grid. Boolean.
+.TP 8
+.B \-bbox | \-no-bbox
+Draw Bounding Box. Boolean.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Paul Bourke and Jamie Zawinski. Permission to
+use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation. No representations are made about the suitability of
+this software for any purpose. It is provided "as is" without express
+or implied warranty.
+.SH AUTHOR
+Paul Bourke and Jamie Zawinski.
diff --git a/hacks/glx/splitflap.c b/hacks/glx/splitflap.c
new file mode 100644
index 0000000..b84a359
--- /dev/null
+++ b/hacks/glx/splitflap.c
@@ -0,0 +1,1408 @@
+/* splitflap, Copyright (c) 2015-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Draws a split-flap text display.
+ */
+
+#define FLAP_FONT "-*-helvetica-bold-r-normal-*-*-1440-*-*-*-*-*-*"
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*flapFont: " FLAP_FONT "\n" \
+ "*frameColor: #444444" "\n" \
+ "*caseColor: #666666" "\n" \
+ "*discColor: #888888" "\n" \
+ "*finColor: #222222" "\n" \
+ "*textColor: #FFFF00" "\n" \
+ "*multiSample: True \n" \
+ "*program: xscreensaver-text\n" \
+ "*usePty: False\n"
+
+# define release_splitflap 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_SPEED "1.0"
+#define DEF_WIDTH "22"
+#define DEF_HEIGHT "8"
+#define DEF_SPIN "XYZ"
+#define DEF_WANDER "True"
+#define DEF_FACE_FRONT "True"
+#define DEF_MODE "Text"
+
+#include "xlockmore.h"
+
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#include "gltrackball.h"
+#include "rotator.h"
+#include "ximage-loader.h"
+#include "utf8wc.h"
+#include "textclient.h"
+#include "texfont.h"
+#include "gllist.h"
+
+extern const struct gllist
+ *splitflap_obj_box_quarter_frame, *splitflap_obj_disc_quarter,
+ *splitflap_obj_fin_edge_half, *splitflap_obj_fin_face_half;
+static struct gllist *splitflap_obj_outer_frame = 0;
+
+static const struct gllist * const *all_objs[] = {
+ &splitflap_obj_box_quarter_frame, &splitflap_obj_disc_quarter,
+ &splitflap_obj_fin_edge_half, &splitflap_obj_fin_face_half,
+ (const struct gllist * const *) &splitflap_obj_outer_frame
+};
+
+#define SPLITFLAP_QUARTER_FRAME 0
+#define SPLITFLAP_DISC_QUARTER 1
+#define SPLITFLAP_FIN_EDGE_HALF 2
+#define SPLITFLAP_FIN_FACE_HALF 3
+#define SPLITFLAP_OUTER_FRAME 4
+
+#define COLON_WIDTH 0.5
+
+typedef struct {
+ int target_index; /* desired character */
+ double current_index; /* currently displayed, fractional */
+ GLfloat sticky; /* bottom fin doesn't fall all the way */
+ int missing; /* which fin has snapped off, or -1 */
+ const char * const *spool; /* chars available for display */
+ int spool_size; /* how many fins on the spool */
+} flapper;
+
+typedef struct {
+ const char *text;
+ GLuint texid;
+ XCharStruct metrics;
+ int tex_width, tex_height;
+} texinfo;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot, *rot2;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool spinx, spiny, spinz;
+
+ texinfo *texinfo;
+ int texinfo_size;
+
+ GLuint *dlists;
+ GLfloat component_colors[countof(all_objs)][4];
+ GLfloat text_color[4];
+
+ flapper *flappers; /* grid_width * grid_height */
+
+ texture_font_data *font_data;
+ int ascent, descent;
+
+ text_data *tc;
+ unsigned char text[5];
+ int linger;
+ int clock_p;
+ Bool first_time_p;
+
+} splitflap_configuration;
+
+static const char * const digit_s1_spool[] = { " ", "1" };
+static const char * const digit_01_spool[] = { "0", "1" };
+static const char * const ap_spool[] = { "A", "P" };
+static const char * const m_spool[] = { "M" };
+static const char * const digit_05_spool[] = { "0", "1", "2", "3", "4", "5" };
+static const char * const digit_spool[] = {
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
+};
+
+static const char * const ascii_spool[] = {
+ " ", "!", "\"", "#", "$", "%", "&", "'",
+ "(", ")", "*", "+", ",", "-", ".", "/",
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
+ ":", ";", "<", "=", ">", "?", "@",
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
+ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
+ "[", "\\", "]", "^", "_", "`", "{", "|", "}", "~",
+};
+
+
+/* If we include these, the flappers just take too long. It's boring. */
+static const char * const latin1_spool[] = {
+ " ", "!", "\"", "#", "$", "%", "&", "'",
+ "(", ")", "*", "+", ",", "-", ".", "/",
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
+ ":", ";", "<", "=", ">", "?", "@",
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
+ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
+ "[", "\\", "]", "^", "_", "`", "{", "|", "}", "~",
+
+ "\302\241", "\302\242", "\302\243", "\302\245",
+ "\302\247", "\302\251", "\302\265", "\302\266",
+
+ "\303\200", "\303\201", "\303\202", "\303\203",
+ "\303\204", "\303\205", "\303\206", "\303\207",
+ "\303\210", "\303\211", "\303\212", "\303\213",
+ "\303\214", "\303\215", "\303\216", "\303\217",
+ "\303\220", "\303\221", "\303\222", "\303\223",
+ "\303\224", "\303\225", "\303\226", "\303\230",
+ "\303\231", "\303\232", "\303\233", "\303\234",
+ "\303\235", "\303\236", "\303\237", "\303\267",
+};
+
+
+static splitflap_configuration *bps = NULL;
+
+static GLfloat speed;
+static int grid_width, grid_height;
+static char *do_spin;
+static Bool do_wander;
+static Bool face_front_p;
+static char *mode_str;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-width", ".width", XrmoptionSepArg, 0 },
+ { "-height", ".height", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionSepArg, 0 },
+ { "+spin", ".spin", XrmoptionNoArg, "" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-front", ".faceFront", XrmoptionNoArg, "True" },
+ { "+front", ".faceFront", XrmoptionNoArg, "False" },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&grid_width, "width", "Width", DEF_WIDTH, t_Int},
+ {&grid_height, "height", "Height", DEF_HEIGHT, t_Int},
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_String},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&face_front_p, "faceFront", "FaceFront", DEF_FACE_FRONT, t_Bool},
+ {&mode_str, "mode", "Mode", DEF_MODE, t_String},
+};
+
+ENTRYPOINT ModeSpecOpt splitflap_opts = {
+ countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_splitflap (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (40.0, 1/h, 0.5, 25);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0, 0, 3, /* 10x lower than traditional, for better depth rez */
+ 0, 0, 0,
+ 0, 1, 0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (h, h, h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+splitflap_handle_event (ModeInfo *mi, XEvent *event)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+static void
+init_textures (ModeInfo *mi)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ const char * const *spool = latin1_spool;
+ int max = countof(latin1_spool);
+
+ bp->texinfo = (texinfo *) calloc (max+1, sizeof(*bp->texinfo));
+ texture_string_metrics (bp->font_data, "", 0, &bp->ascent, &bp->descent);
+
+ for (i = 0; i < max; i++)
+ {
+ texinfo *ti = &bp->texinfo[i];
+ glGenTextures (1, &ti->texid);
+ glBindTexture (GL_TEXTURE_2D, ti->texid);
+
+ ti->text = spool[i];
+
+ /* fprintf(stderr, "%d \\%03o\\%03o %s\n", i,
+ (unsigned char) ti->text[0],
+ (unsigned char) ti->text[1],
+ ti->text); */
+
+ string_to_texture (bp->font_data, ti->text, &ti->metrics,
+ &ti->tex_width, &ti->tex_height);
+ }
+ bp->texinfo_size = i;
+
+ glBindTexture (GL_TEXTURE_2D, 0);
+}
+
+
+static void
+parse_color (ModeInfo *mi, char *key, GLfloat color[4])
+{
+ XColor xcolor;
+ char *string = get_string_resource (mi->dpy, key, "Color");
+ if (!XParseColor (mi->dpy, mi->xgwa.colormap, string, &xcolor))
+ {
+ fprintf (stderr, "%s: unparsable color in %s: %s\n", progname,
+ key, string);
+ exit (1);
+ }
+
+ color[0] = xcolor.red / 65536.0;
+ color[1] = xcolor.green / 65536.0;
+ color[2] = xcolor.blue / 65536.0;
+ color[3] = 1;
+}
+
+
+static int draw_outer_frame (ModeInfo *mi);
+
+ENTRYPOINT void
+init_splitflap (ModeInfo *mi)
+{
+ splitflap_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+ bp->glx_context = init_GL(mi);
+ reshape_splitflap (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ bp->first_time_p = True;
+
+ if (!mode_str || !*mode_str || !strcasecmp(mode_str, "text"))
+ {
+ bp->clock_p = 0;
+ }
+ else if (!strcasecmp (mode_str, "clock") ||
+ !strcasecmp (mode_str, "clock12"))
+ {
+ bp->clock_p = 12;
+ grid_width = 8;
+ grid_height = 1;
+ }
+ else if (!strcasecmp (mode_str, "clock24"))
+ {
+ bp->clock_p = 24;
+ grid_width = 6;
+ grid_height = 1;
+ }
+ else
+ {
+ fprintf (stderr,
+ "%s: `mode' must be text, clock12 or clock24: not `%s'\n",
+ progname, mode_str);
+ exit (1);
+ }
+
+ if (! bp->clock_p)
+ {
+ bp->tc = textclient_open (MI_DISPLAY (mi));
+ bp->text[0] = 0;
+
+ if (grid_width > 10)
+ textclient_reshape (bp->tc,
+ grid_width, grid_height,
+ grid_width, grid_height,
+ 0);
+ }
+
+ if (bp->clock_p)
+ speed /= 4;
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
+/* GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};*/
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+
+ {
+ double spin_speed = 0.5;
+ double wander_speed = 0.005;
+ double tilt_speed = 0.001;
+ double spin_accel = 0.5;
+
+ char *s = do_spin;
+ while (*s)
+ {
+ if (*s == 'x' || *s == 'X') bp->spinx = True;
+ else if (*s == 'y' || *s == 'Y') bp->spiny = True;
+ else if (*s == 'z' || *s == 'Z') bp->spinz = True;
+ else if (*s == '0') ;
+ else
+ {
+ fprintf (stderr,
+ "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+ progname, do_spin);
+ exit (1);
+ }
+ s++;
+ }
+
+ bp->rot = make_rotator (bp->spinx ? spin_speed : 0,
+ bp->spiny ? spin_speed : 0,
+ bp->spinz ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->rot2 = (face_front_p
+ ? make_rotator (0, 0, 0, 0, tilt_speed, True)
+ : 0);
+ bp->trackball = gltrackball_init (False);
+ }
+
+ bp->dlists = (GLuint *) calloc (countof(all_objs)+1, sizeof(GLuint));
+ for (i = 0; i < countof(all_objs); i++)
+ bp->dlists[i] = glGenLists (1);
+
+ parse_color (mi, "textColor", bp->text_color);
+ for (i = 0; i < countof(all_objs); i++)
+ {
+ const struct gllist *gll = *all_objs[i];
+ char *key = 0;
+ GLfloat spec[4] = {0.4, 0.4, 0.4, 1.0};
+ GLfloat shiny = 80; /* 0-128 */
+
+ glNewList (bp->dlists[i], GL_COMPILE);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ glMatrixMode(GL_MODELVIEW);
+
+ glRotatef (-90, 1, 0, 0);
+
+ glBindTexture (GL_TEXTURE_2D, 0);
+
+ switch (i) {
+ case SPLITFLAP_QUARTER_FRAME:
+ key = "frameColor";
+ break;
+ case SPLITFLAP_OUTER_FRAME:
+ key = "caseColor";
+ break;
+ case SPLITFLAP_DISC_QUARTER:
+ key = (wire ? "frameColor" : "discColor");
+ break;
+ case SPLITFLAP_FIN_EDGE_HALF:
+ case SPLITFLAP_FIN_FACE_HALF:
+ key = "finColor";
+ break;
+ default:
+ abort();
+ }
+
+ parse_color (mi, key, bp->component_colors[i]);
+
+ if (wire && i == SPLITFLAP_FIN_EDGE_HALF)
+ bp->component_colors[i][0] =
+ bp->component_colors[i][1] =
+ bp->component_colors[i][2] = 0.7;
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+
+ switch (i) {
+ case SPLITFLAP_OUTER_FRAME:
+ if (! splitflap_obj_outer_frame)
+ splitflap_obj_outer_frame =
+ (struct gllist *) calloc (1, sizeof(*splitflap_obj_outer_frame));
+ splitflap_obj_outer_frame->points = draw_outer_frame(mi);
+ break;
+ default:
+ renderList (gll, wire);
+ break;
+ }
+
+ glMatrixMode(GL_TEXTURE);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+
+ glEndList ();
+ }
+
+ if (grid_width < 1) grid_width = 1;
+ if (grid_height < 1) grid_height = 1;
+ bp->flappers = (flapper *) calloc (grid_width * grid_height,
+ sizeof (flapper));
+
+ for (i = 0; i < grid_width * grid_height; i++)
+ {
+ flapper *f = &bp->flappers[i];
+
+ if (!bp->clock_p)
+ {
+ f->spool = ascii_spool;
+ f->spool_size = countof (ascii_spool);
+ }
+ else
+ {
+ switch (i) {
+ case 0:
+ if (bp->clock_p == 12)
+ {
+ f->spool = digit_s1_spool;
+ f->spool_size = countof (digit_s1_spool);
+ }
+ else
+ {
+ f->spool = digit_01_spool;
+ f->spool_size = countof (digit_01_spool);
+ }
+ break;
+ case 1: case 3: case 5:
+ f->spool = digit_spool;
+ f->spool_size = countof (digit_spool);
+ break;
+ case 2: case 4:
+ f->spool = digit_05_spool;
+ f->spool_size = countof (digit_05_spool);
+ break;
+ case 6:
+ f->spool = ap_spool;
+ f->spool_size = countof (ap_spool);
+ break;
+ case 7:
+ f->spool = m_spool;
+ f->spool_size = countof (m_spool);
+ break;
+ default:
+ abort();
+ }
+ }
+
+ f->target_index = random() % f->spool_size;
+ /* f->target_index = 0; */
+ f->current_index = f->target_index;
+ f->missing = (((random() % 10) == 0)
+ ? (random() % f->spool_size)
+ : -1);
+ }
+
+ bp->font_data = load_texture_font (mi->dpy, "flapFont");
+ init_textures (mi);
+
+ reshape_splitflap (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+
+static int
+draw_component (ModeInfo *mi, int i)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE,
+ bp->component_colors[i]);
+ glCallList (bp->dlists[i]);
+ return (*all_objs[i])->points / 3;
+}
+
+
+static int
+draw_frame_quarter (ModeInfo *mi, flapper *f)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_component (mi, SPLITFLAP_QUARTER_FRAME);
+ glPopMatrix();
+ return count;
+}
+
+static int
+draw_disc_quarter (ModeInfo *mi, flapper *f)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_component (mi, SPLITFLAP_DISC_QUARTER);
+ glPopMatrix();
+ return count;
+}
+
+static int
+draw_fin_edge_half (ModeInfo *mi, flapper *f)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_component (mi, SPLITFLAP_FIN_EDGE_HALF);
+ glPopMatrix();
+ return count;
+}
+
+static int
+draw_fin_face_half (ModeInfo *mi, flapper *f)
+{
+ int count = 0;
+ if (MI_IS_WIREFRAME(mi)) return 0;
+ glPushMatrix();
+ count += draw_component (mi, SPLITFLAP_FIN_FACE_HALF);
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_frame (ModeInfo *mi, flapper *f)
+{
+ int count = 0;
+
+ glPushMatrix();
+
+ glFrontFace (GL_CCW);
+ count += draw_frame_quarter (mi, f);
+ count += draw_disc_quarter (mi, f);
+
+ glScalef (-1, 1, 1);
+ glFrontFace (GL_CW);
+ count += draw_frame_quarter (mi, f);
+ count += draw_disc_quarter (mi, f);
+
+ glScalef ( 1, -1, 1);
+ glFrontFace (GL_CCW);
+ count += draw_frame_quarter (mi, f);
+ count += draw_disc_quarter (mi, f);
+
+ glScalef (-1, 1, 1);
+ glFrontFace (GL_CW);
+ count += draw_frame_quarter (mi, f);
+ count += draw_disc_quarter (mi, f);
+
+ glPopMatrix();
+ return count;
+}
+
+
+static void
+draw_fin_text_quad (ModeInfo *mi, flapper *f, int index, Bool top_p)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ /* 15 / is weird
+ 27 ; descends too far
+ 32 @ is too wide
+ 59 [ descends too far
+ 79 A^ is taller than the font
+ 89 I` is weird
+ */
+
+ GLfloat z = 0.035; /* Lifted off the surface by this distance */
+ GLfloat bot = 0.013; /* Distance away from the mid gutter */
+ GLfloat scale = 1.8; /* Scale to fill the panel */
+
+ int lh = bp->ascent + bp->descent;
+ texinfo *ti;
+ GLfloat qx0, qy0, qx1, qy1;
+ GLfloat tx0, ty0, tx1, ty1;
+ XCharStruct overall;
+ int tex_width, tex_height;
+ int i;
+
+ for (i = 0; i < bp->texinfo_size; i++)
+ {
+ ti = &bp->texinfo[i];
+ if (!strcmp (f->spool[index], ti->text))
+ break;
+ }
+ if (i >= bp->texinfo_size) abort();
+
+ overall = ti->metrics;
+ tex_width = ti->tex_width;
+ tex_height = ti->tex_height;
+
+ if (bp->ascent < overall.ascent)
+ /* WTF! &Aacute; has a higher ascent than the font itself!
+ Scale it down so that it doesn't overlap the fin. */
+ scale *= bp->ascent / (GLfloat) overall.ascent * 0.98;
+
+ glPushMatrix();
+
+ glNormal3f (0, 0, 1);
+ glFrontFace (top_p ? GL_CCW : GL_CW);
+
+ if (! wire)
+ {
+ glBindTexture (GL_TEXTURE_2D, ti->texid);
+ enable_texture_string_parameters();
+ }
+
+ glTranslatef (0, 0, z); /* Move to just above the surface */
+ glScalef (1.0 / lh, 1.0 / lh, 1); /* Scale to font pixel coordinates */
+ glScalef (scale, scale, 1); /* Fill the panel with the font */
+
+ if (!top_p)
+ {
+ glRotatef (180, 0, 0, 1);
+ }
+
+ /* Position the XCharStruct origin at 0,0 in the scene. */
+ qx0 = -overall.lbearing;
+ qy0 = -overall.descent;
+ qx1 = overall.rbearing;
+ qy1 = overall.ascent;
+
+ /* Center horizontally. */
+ qx0 -= (overall.rbearing - overall.lbearing) / 2.0;
+ qx1 -= (overall.rbearing - overall.lbearing) / 2.0;
+
+
+ /* Move origin to below font descenders. */
+ qy0 += bp->descent;
+ qy1 += bp->descent;
+
+ /* Center vertically. */
+ qy0 -= (bp->ascent + bp->descent) / 2.0;
+ qy1 -= (bp->ascent + bp->descent) / 2.0;
+
+ /* Move the descenders down a bit, if there's room.
+ This means that weirdos like [ and $ might not be on the baseline.
+ #### This looks good with X11 fonts but bad with MacOS fonts. WTF?
+ */
+#ifndef HAVE_COCOA
+ {
+ GLfloat off = bp->descent / 3.0;
+ GLfloat max = bp->descent - off;
+ if (overall.descent > max)
+ off = max - overall.descent;
+ if (off < 0)
+ off = 0;
+ qy0 -= off;
+ qy1 -= off;
+ }
+# endif /* !HAVE_COCOA */
+
+ /* Attach the texture to the quad. */
+ tx0 = 0;
+ ty1 = 0;
+ tx1 = (overall.rbearing - overall.lbearing) / (GLfloat) tex_width;
+ ty0 = (overall.ascent + overall.descent) / (GLfloat) tex_height;
+
+ /* Convert from font ascent/descent to character ascent/descent. */
+
+ /* Flip texture horizontally on bottom panel. */
+ if (!top_p)
+ {
+ GLfloat s = tx0;
+ tx0 = tx1;
+ tx1 = s;
+ }
+
+
+ /* Cut the character in half, truncating just above the split line. */
+ {
+ GLfloat oqy0 = qy0;
+ GLfloat oqy1 = qy1;
+ GLfloat r0, r1;
+
+ bot *= lh * scale;
+
+ if (top_p)
+ {
+ if (qy0 < bot)
+ qy0 = bot;
+ }
+ else
+ {
+ if (qy1 > -bot)
+ qy1 = -bot;
+ }
+
+ r0 = (qy0 - oqy0) / (oqy1 - oqy0);
+ r1 = (qy1 - oqy1) / (oqy1 - oqy0);
+ ty0 -= r0 * (ty0 - ty1);
+ ty1 -= r1 * (ty0 - ty1);
+ }
+
+ glColor4fv (bp->text_color);
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glTexCoord2f (tx0, ty0); glVertex3f (qx0, qy0, 0);
+ glTexCoord2f (tx1, ty0); glVertex3f (qx1, qy0, 0);
+ glTexCoord2f (tx1, ty1); glVertex3f (qx1, qy1, 0);
+ glTexCoord2f (tx0, ty1); glVertex3f (qx0, qy1, 0);
+ glEnd();
+
+ glPopMatrix();
+
+ if (! wire)
+ {
+ glDisable (GL_BLEND);
+ glEnable (GL_LIGHTING);
+ glDisable (GL_TEXTURE_2D);
+ }
+}
+
+
+static int
+draw_fin (ModeInfo *mi, flapper *f, int front_index, int back_index,
+ Bool text_p)
+{
+ int count = 0;
+
+ glPushMatrix();
+
+ glFrontFace (GL_CCW);
+
+ if (! text_p)
+ count += draw_fin_edge_half (mi, f);
+
+ if (front_index >= 0)
+ {
+ if (text_p)
+ {
+ draw_fin_text_quad (mi, f, front_index, True);
+ count++;
+ }
+ else
+ count += draw_fin_face_half (mi, f);
+ }
+
+ glScalef (-1, 1, 1);
+ if (! text_p)
+ {
+ glFrontFace (GL_CW);
+ count += draw_fin_edge_half (mi, f);
+ if (front_index >= 0)
+ count += draw_fin_face_half (mi, f);
+ }
+
+ if (back_index >= 0)
+ {
+ glRotatef (180, 0, 1, 0);
+ if (text_p)
+ {
+ draw_fin_text_quad (mi, f, back_index, False);
+ count++;
+ }
+ else
+ {
+ count += draw_fin_face_half (mi, f);
+ glScalef (-1, 1, 1);
+ glFrontFace (GL_CCW);
+ count += draw_fin_face_half (mi, f);
+ }
+ }
+
+ glPopMatrix();
+ return count;
+}
+
+
+/* The case holding the grid of flappers.
+ */
+static int
+draw_outer_frame (ModeInfo *mi)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ int count = 0;
+ GLfloat w = grid_width;
+ GLfloat h = grid_height;
+ GLfloat d = 1;
+
+ if (bp->clock_p == 12)
+ w += COLON_WIDTH * 3;
+ else if (bp->clock_p == 24)
+ w += COLON_WIDTH * 2;
+
+ w += 0.2;
+ h += 0.2;
+
+ if (bp->clock_p) w += 0.25;
+ if (w > 3) w += 0.5;
+ if (h > 3) h += 0.5;
+
+ if (MI_IS_WIREFRAME(mi))
+ return 0;
+
+ glFrontFace (GL_CCW);
+ glPushMatrix();
+ glTranslatef (0, 1.03, 0);
+
+ glBegin (GL_QUADS);
+
+ glNormal3f ( 0, 1, 0); /* back */
+ glVertex3f (-w, d, h);
+ glVertex3f ( w, d, h);
+ glVertex3f ( w, d, -h);
+ glVertex3f (-w, d, -h);
+ count++;
+
+ glNormal3f ( 0, -1, 0); /* front */
+ glVertex3f (-w, -d, -h);
+ glVertex3f ( w, -d, -h);
+ glVertex3f ( w, -d, h);
+ glVertex3f (-w, -d, h);
+ count++;
+
+ glNormal3f ( 0, 0, 1); /* top */
+ glVertex3f (-w, -d, h);
+ glVertex3f ( w, -d, h);
+ glVertex3f ( w, d, h);
+ glVertex3f (-w, d, h);
+ count++;
+
+ glNormal3f ( 0, 0, -1); /* bottom */
+ glVertex3f (-w, d, -h);
+ glVertex3f ( w, d, -h);
+ glVertex3f ( w, -d, -h);
+ glVertex3f (-w, -d, -h);
+ count++;
+
+ glNormal3f ( 1, 0, 0); /* left */
+ glVertex3f ( w, -d, h);
+ glVertex3f ( w, -d, -h);
+ glVertex3f ( w, d, -h);
+ glVertex3f ( w, d, h);
+ count++;
+
+ glNormal3f (-1, 0, 0); /* right */
+ glVertex3f (-w, -d, -h);
+ glVertex3f (-w, -d, h);
+ glVertex3f (-w, d, h);
+ glVertex3f (-w, d, -h);
+ count++;
+
+ glEnd();
+ glPopMatrix();
+
+ return count;
+}
+
+
+static void
+tick_flapper (ModeInfo *mi, flapper *f)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ double prev = f->current_index;
+ Bool wrapped_p = False;
+
+ if (bp->button_down_p) return;
+ if (f->current_index == f->target_index)
+ return;
+
+ f->current_index += speed * 0.35; /* turn the crank */
+
+ while (f->current_index > f->spool_size)
+ {
+ f->current_index -= f->spool_size;
+ wrapped_p = True;
+ }
+
+ if (f->current_index < 0) abort();
+
+ if ((prev < f->target_index || wrapped_p) &&
+ f->current_index > f->target_index) /* just overshot */
+ f->current_index = f->target_index;
+}
+
+
+#define MOD(M,N) (((M)+(N)) % (N)) /* Works with negatives */
+
+static int
+draw_flapper (ModeInfo *mi, flapper *f, Bool text_p)
+{
+ int prev_index = floor (f->current_index);
+ int next_index = MOD (prev_index+1, f->spool_size);
+ int count = 0;
+ GLfloat epsilon = 0.02;
+ GLfloat r = f->current_index - prev_index;
+ Bool moving_p = (r > 0 && r < 1);
+ GLfloat sticky = f->sticky;
+
+ if (f->missing >= 0)
+ sticky = 0;
+
+ if (f->missing >= 0 &&
+ MOD (prev_index, f->spool_size) == f->missing)
+ {
+ moving_p = False;
+ sticky = 0;
+ }
+
+ if (!moving_p)
+ next_index = prev_index;
+
+ if (! text_p)
+ count += draw_frame (mi, f);
+
+ /* Top flap, flat: top half of target char */
+ if (!moving_p || !text_p || r > epsilon)
+ {
+ int p2 = next_index;
+
+ if (p2 == f->missing)
+ p2 = MOD (p2+1, f->spool_size);
+
+ count += draw_fin (mi, f, p2, -1, text_p);
+ }
+
+ /* Bottom flap, flat: bottom half of prev char */
+ if (!moving_p || !text_p || r < 1 - epsilon)
+ {
+ int p2 = prev_index;
+
+ if (!moving_p && sticky)
+ p2 = MOD (p2-1, f->spool_size);
+
+ if (f->missing >= 0 &&
+ p2 == MOD (f->missing+1, f->spool_size))
+ p2 = MOD (p2-1, f->spool_size);
+
+ glPushMatrix();
+ glRotatef (180, 1, 0, 0);
+ count += draw_fin (mi, f, -1, p2, text_p);
+ glPopMatrix();
+ }
+
+ /* Moving flap, front: top half of prev char */
+ /* Moving flap, back: bottom half of target char */
+ if (moving_p || sticky)
+ {
+ if (!moving_p)
+ r = 1.0;
+ if (sticky && r > 1 - sticky)
+ r = 1 - sticky;
+ glPushMatrix();
+ glRotatef (r * 180, 1, 0, 0);
+ count += draw_fin (mi, f, prev_index, next_index, text_p);
+ glPopMatrix();
+ }
+
+ return count;
+}
+
+
+static int
+draw_colon (ModeInfo *mi)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat s = 1.0 / (bp->ascent + bp->descent);
+ GLfloat z = 0.01;
+ int count = 0;
+ XCharStruct m;
+
+ texture_string_metrics (bp->font_data, ":", &m, 0, 0);
+
+ s *= 2;
+
+ glPushMatrix();
+
+ glTranslatef (-(1 + COLON_WIDTH), 0, 0);
+ glScalef (s, s, 1);
+
+ glTranslatef (-m.lbearing - (m.rbearing - m.lbearing)/2,
+ -(m.ascent + m.descent) / 2,
+ 0);
+
+ glEnable (GL_TEXTURE_2D);
+
+ /* draw the text five times, to give it a border. */
+ {
+ const XPoint offsets[] = {{ -1, -1 },
+ { -1, 1 },
+ { 1, 1 },
+ { 1, -1 },
+ { 0, 0 }};
+ int i;
+ GLfloat n = 1.5;
+
+ glColor3f (0, 0, 0);
+ for (i = 0; i < countof(offsets); i++)
+ {
+ glPushMatrix();
+ if (offsets[i].x == 0)
+ {
+ glColor4fv (bp->text_color);
+ glTranslatef (0, 0, z * 2);
+ }
+ glTranslatef (n * offsets[i].x, n * offsets[i].y, 0);
+ print_texture_string (bp->font_data, ":");
+ count++;
+ glPopMatrix();
+ }
+ }
+
+ glPopMatrix();
+
+ return count;
+}
+
+
+/* Reads and returns a single Unicode character from the text client.
+ */
+static unsigned long
+read_unicode (ModeInfo *mi)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ const unsigned char *end = bp->text + sizeof(bp->text) - 1; /* 4 bytes */
+ unsigned long uc = 0;
+ long L;
+ int i;
+
+ if (bp->clock_p || !bp->tc) abort();
+
+ /* Fill the buffer with available input.
+ */
+ i = strlen ((char *) bp->text);
+ while (i < (end - bp->text))
+ {
+ int c = textclient_getc (bp->tc);
+ if (c <= 0) break;
+ bp->text[i++] = (char) c;
+ bp->text[i] = 0;
+ }
+
+ /* Pop 1-4 bytes from the front of the buffer and extract a UTF8 character.
+ */
+ L = utf8_decode (bp->text, i, &uc);
+ if (L)
+ {
+ int j = end - bp->text - L;
+ memmove (bp->text, bp->text + L, j);
+ bp->text[j] = 0;
+ }
+ else
+ uc = 0;
+
+ return uc;
+}
+
+
+/* Given a Unicode character, finds the corresponding index on the spool,
+ if any. Returns 0 if not found.
+ */
+static int
+find_index (ModeInfo *mi, flapper *f, long uc)
+{
+ char string[5];
+ int L = utf8_encode (uc, string, sizeof(string) - 1);
+ int i;
+ if (L <= 0) return 0;
+ string[L] = 0;
+ for (i = 0; i < f->spool_size; i++)
+ {
+ if (!strcmp (string, f->spool[i]))
+ return i;
+ }
+ return 0;
+}
+
+
+/* Read input from the text client and populate the spool with it.
+ */
+static void
+fill_targets (ModeInfo *mi)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ int x, y;
+ Bool cls_p = False;
+
+ if (bp->clock_p)
+ {
+ char buf[80];
+ time_t now = time ((time_t *) 0);
+ struct tm *tm = localtime (&now);
+ const char *fmt = (bp->clock_p == 24
+ ? "%H%M%S"
+ : "%I%M%S%p");
+ int i;
+ strftime (buf, sizeof(buf)-1, fmt, tm);
+ if (bp->clock_p == 12 && buf[0] == '0')
+ buf[0] = ' ';
+
+ for (i = 0; i < strlen(buf); i++)
+ {
+ flapper *f = &bp->flappers[i];
+ f->target_index = find_index (mi, f, buf[i]);
+ }
+ for (; i < grid_width * grid_height; i++)
+ {
+ flapper *f = &bp->flappers[i];
+ f->target_index = find_index (mi, f, ' ');
+ }
+ return;
+ }
+
+ for (y = 0; y < grid_height; y++)
+ {
+ Bool nl_p = False;
+ for (x = 0; x < grid_width; x++)
+ {
+ int i = y * grid_width + x;
+ flapper *f = &bp->flappers[i];
+ unsigned long uc = ((nl_p || cls_p) ? ' ' : read_unicode (mi));
+ if (uc == '\r' || uc == '\n')
+ nl_p = True;
+ else if (uc == 12) /* ^L */
+ cls_p = True;
+
+ /* Convert Unicode to the closest Latin1 equivalent. */
+ if (uc > 127)
+ {
+ Bool ascii_p = (f->spool != latin1_spool);
+ unsigned char s[5], *s2;
+ int L = utf8_encode (uc, (char *) s, sizeof(s));
+ s[L] = 0;
+ s2 = (unsigned char *) utf8_to_latin1 ((char *) s, ascii_p);
+
+ if (s2[0] < 128) /* ASCII */
+ uc = s2[0];
+ else /* Latin1 -> UTF8 -> Unicode */
+ {
+ s[0] = (s2[0] > 0xBF ? 0xC3 : 0xC2);
+ s[1] = s2[0] & (s2[0] > 0xBF ? 0xBF : 0xFF);
+ s[2] = 0;
+ utf8_decode (s, 2, &uc);
+ }
+
+ free (s2);
+ }
+
+ /* Upcase ASCII. Upcasing Unicrud would be rocket surgery. */
+ if (uc >= 'a' && uc <= 'z') uc += ('A'-'a');
+
+ f->target_index = find_index (mi, f, uc);
+
+ f->sticky = (((random() % 20) == 0)
+ ? 0.05 + frand(0.1) + frand(0.1)
+ : 0);
+ }
+ }
+
+# if 0
+ for (y = 0; y < grid_height; y++)
+ {
+ fprintf (stderr, "# ");
+ for (x = 0; x < grid_width; x++)
+ {
+ int i = y * grid_width + x;
+ flapper *f = &bp->flappers[i];
+ fprintf(stderr, "%s", bp->spool[f->target_index]);
+ }
+ fprintf (stderr, " #\n");
+ }
+ fprintf (stderr, "\n");
+# endif
+}
+
+
+static void
+draw_flappers (ModeInfo *mi, Bool text_p)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ int x, y;
+ int running = 0;
+
+ for (y = 0; y < grid_height; y++)
+ for (x = 0; x < grid_width; x++)
+ {
+ int i = (grid_height - y - 1) * grid_width + x;
+ flapper *f = &bp->flappers[i];
+ GLfloat xx = x;
+ GLfloat yy = y;
+
+ if (bp->clock_p)
+ {
+ if (x >= 2) xx += COLON_WIDTH;
+ if (x >= 4) xx += COLON_WIDTH;
+ if (x >= 6) xx += COLON_WIDTH;
+ }
+
+ xx *= 2.01;
+ yy *= 1.98;
+
+ glPushMatrix();
+ glTranslatef (xx, yy, 0);
+ mi->polygon_count += draw_flapper (mi, f, text_p);
+
+ if (text_p && bp->clock_p && (x == 2 || x == 4))
+ mi->polygon_count += draw_colon (mi);
+
+ glPopMatrix();
+
+ if (text_p)
+ {
+ tick_flapper (mi, f);
+ if (f->current_index != f->target_index)
+ running++;
+ }
+ }
+
+ if (text_p && !running)
+ {
+ if (bp->clock_p)
+ fill_targets (mi);
+ else if (bp->linger)
+ {
+ bp->linger--;
+ if (!bp->linger)
+ fill_targets (mi);
+ }
+ else
+ {
+ /* Base of 1 second, plus 1 second for every 25 characters.
+ Also multiply by speed? */
+ bp->linger = 30;
+ if (!bp->first_time_p)
+ bp->linger += (grid_width * grid_height * 1.2);
+ bp->first_time_p = False;
+ }
+ }
+}
+
+
+ENTRYPOINT void
+draw_splitflap (ModeInfo *mi)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ glScalef (0.1, 0.1, 0.1); /* because of gluLookAt */
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 8,
+ (y - 0.5) * 8,
+ (z - 0.5) * 8);
+
+ gltrackball_rotate (bp->trackball);
+
+ if (face_front_p)
+ {
+ double maxx = 120;
+ double maxy = 60;
+ double maxz = 45;
+ get_position (bp->rot2, &x, &y, &z, !bp->button_down_p);
+ if (bp->spinx) glRotatef (maxy/2 - x*maxy, 1, 0, 0);
+ if (bp->spiny) glRotatef (maxx/2 - y*maxx, 0, 1, 0);
+ if (bp->spinz) glRotatef (maxz/2 - z*maxz, 0, 0, 1);
+ }
+ else
+ {
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1, 0, 0);
+ glRotatef (y * 360, 0, 1, 0);
+ glRotatef (z * 360, 0, 0, 1);
+ }
+ }
+
+ /* Fit the whole grid on the screen */
+ {
+ GLfloat r = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int cells = (grid_width > grid_height
+ ? grid_width * r
+ : grid_height);
+ GLfloat s = 8;
+# ifdef HAVE_MOBILE
+ s *= 2; /* #### What. Why is this necessary? */
+#endif
+ s /= cells;
+ glScalef (s, s, s);
+ }
+
+ mi->polygon_count = 0;
+ mi->polygon_count += draw_component (mi, SPLITFLAP_OUTER_FRAME);
+
+ {
+ GLfloat xoff = (bp->clock_p == 12 ? COLON_WIDTH * 3 :
+ bp->clock_p == 24 ? COLON_WIDTH * 2 :
+ 0);
+ glTranslatef (1 - (grid_width + xoff), 1 - grid_height, 0);
+ }
+
+ /* We must render all text after all polygons, or alpha blending
+ doesn't work right. */
+ draw_flappers (mi, False);
+ draw_flappers (mi, True);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT void
+free_splitflap (ModeInfo *mi)
+{
+ splitflap_configuration *bp = &bps[MI_SCREEN(mi)];
+ if (bp->tc)
+ textclient_close (bp->tc);
+ bp->tc = 0;
+ /* #### bp->texinfo */
+}
+
+XSCREENSAVER_MODULE ("SplitFlap", splitflap)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/splitflap.dxf b/hacks/glx/splitflap.dxf
new file mode 100644
index 0000000..d00149a
--- /dev/null
+++ b/hacks/glx/splitflap.dxf
@@ -0,0 +1,1658 @@
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-33.50000000000001
+20
+-1.2499999999999996
+30
+34.82654508887018
+11
+-33.500000000000014
+21
+-1.2499999999999996
+31
+30.826545088870194
+12
+-5.639932965095795e-15
+22
+-1.2499999999999996
+32
+30.826545088870194
+13
+-5.639932965095795e-15
+23
+-1.2499999999999996
+33
+30.826545088870194
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-33.500000000000014
+20
+-1.2499999999999996
+30
+30.826545088870194
+11
+-37.50000000000001
+21
+-1.2499999999999996
+31
+30.826545088870187
+12
+-33.50000000000001
+22
+-1.2499999999999996
+32
+17.66327254443509
+13
+-33.50000000000001
+23
+-1.2499999999999996
+33
+17.66327254443509
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-33.500000000000014
+20
+-1.2499999999999996
+30
+30.826545088870194
+11
+-33.50000000000001
+21
+-1.2499999999999996
+31
+17.66327254443509
+12
+-5.639932965095795e-15
+22
+-1.2499999999999996
+32
+30.826545088870194
+13
+-5.639932965095795e-15
+23
+-1.2499999999999996
+33
+30.826545088870194
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-5.639932965095795e-15
+20
+-1.2499999999999996
+30
+30.826545088870194
+11
+-33.50000000000001
+21
+-1.2499999999999996
+31
+17.66327254443509
+12
+-5.639932965095795e-15
+22
+-1.2499999999999996
+32
+17.66327254443509
+13
+-5.639932965095795e-15
+23
+-1.2499999999999996
+33
+17.66327254443509
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-33.50000000000001
+20
+-1.2499999999999996
+30
+34.82654508887018
+11
+-5.639932965095795e-15
+21
+-1.2499999999999996
+31
+30.826545088870194
+12
+-5.639932965095795e-15
+22
+-1.2499999999999996
+32
+34.82654508887018
+13
+-5.639932965095795e-15
+23
+-1.2499999999999996
+33
+34.82654508887018
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-37.50000000000001
+20
+-1.2499999999999996
+30
+30.826545088870187
+11
+-37.50000000000001
+21
+-1.2499999999999996
+31
+17.66327254443509
+12
+-33.50000000000001
+22
+-1.2499999999999996
+32
+17.66327254443509
+13
+-33.50000000000001
+23
+-1.2499999999999996
+33
+17.66327254443509
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-33.50000000000001
+20
+-1.2499999999999996
+30
+17.66327254443509
+11
+-5.639932965095795e-15
+21
+-1.2499999999999996
+31
+0.49999999999999906
+12
+-5.639932965095795e-15
+22
+-1.2499999999999996
+32
+17.66327254443509
+13
+-5.639932965095795e-15
+23
+-1.2499999999999996
+33
+17.66327254443509
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-33.50000000000001
+20
+-1.2499999999999996
+30
+17.66327254443509
+11
+-33.50000000000001
+21
+-1.2499999999999996
+31
+0.49999999999999906
+12
+-5.639932965095795e-15
+22
+-1.2499999999999996
+32
+0.49999999999999906
+13
+-5.639932965095795e-15
+23
+-1.2499999999999996
+33
+0.49999999999999906
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-36.96410161513776
+20
+-1.2499999999999996
+30
+32.82654508887019
+11
+-37.50000000000001
+21
+-1.2499999999999996
+31
+30.826545088870187
+12
+-33.500000000000014
+22
+-1.2499999999999996
+32
+30.826545088870194
+13
+-33.500000000000014
+23
+-1.2499999999999996
+33
+30.826545088870194
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-35.50000000000001
+20
+-1.2499999999999996
+30
+34.29064670400795
+11
+-36.96410161513776
+21
+-1.2499999999999996
+31
+32.82654508887019
+12
+-33.500000000000014
+22
+-1.2499999999999996
+32
+30.826545088870194
+13
+-33.500000000000014
+23
+-1.2499999999999996
+33
+30.826545088870194
+70
+0
+ 0
+3DFACE
+ 8
+fin_face_half
+10
+-33.50000000000001
+20
+-1.2499999999999996
+30
+34.82654508887018
+11
+-35.50000000000001
+21
+-1.2499999999999996
+31
+34.29064670400795
+12
+-33.500000000000014
+22
+-1.2499999999999996
+32
+30.826545088870194
+13
+-33.500000000000014
+23
+-1.2499999999999996
+33
+30.826545088870194
+70
+0
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-34.0
+20
+-3.27117099240816
+30
+-1.6097177653715823e-14
+11
+-38.5
+21
+-3.2711709924081642
+31
+3.105896849114554
+12
+-38.50000000000001
+22
+-3.2711709924081416
+32
+-1.6919798895287383e-14
+13
+-38.50000000000001
+23
+-3.2711709924081416
+33
+-1.6919798895287383e-14
+70
+1
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-38.5
+20
+-3.2711709924081642
+30
+3.105896849114554
+11
+-34.0
+21
+-3.27117099240816
+31
+-1.6097177653715823e-14
+12
+-33.999999999999986
+22
+-3.2711709924081824
+32
+3.105896849114554
+13
+-33.999999999999986
+23
+-3.2711709924081824
+33
+3.105896849114554
+70
+1
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-33.999999999999986
+20
+-1.6634404790586517
+30
+9.106028809813777
+11
+-38.5
+21
+-3.2711709924081642
+31
+3.105896849114554
+12
+-33.999999999999986
+22
+-3.2711709924081824
+32
+3.105896849114554
+13
+-33.999999999999986
+23
+-3.2711709924081824
+33
+3.105896849114554
+70
+1
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-38.5
+20
+-3.2711709924081642
+30
+3.105896849114554
+11
+-33.999999999999986
+21
+-1.6634404790586517
+31
+9.106028809813777
+12
+-38.5
+22
+-1.6634404790586328
+32
+9.106028809813777
+13
+-38.5
+23
+-1.6634404790586328
+33
+9.106028809813777
+70
+1
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-33.999999999999986
+20
+1.4999999999999922
+30
+14.585268446263385
+11
+-38.5
+21
+-1.6634404790586328
+31
+9.106028809813777
+12
+-33.999999999999986
+22
+-1.6634404790586517
+32
+9.106028809813777
+13
+-33.999999999999986
+23
+-1.6634404790586517
+33
+9.106028809813777
+70
+1
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-38.5
+20
+-1.6634404790586328
+30
+9.106028809813777
+11
+-33.999999999999986
+21
+1.4999999999999922
+31
+14.585268446263385
+12
+-38.5
+22
+1.4999999999999922
+32
+14.585268446263385
+13
+-38.5
+23
+1.4999999999999922
+33
+14.585268446263385
+70
+1
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-38.5
+20
+1.4999999999999922
+30
+-1.6919798895287383e-14
+11
+-38.50000000000001
+21
+-3.2711709924081416
+31
+-1.6919798895287383e-14
+12
+-38.5
+22
+-3.2711709924081642
+32
+3.105896849114554
+13
+-38.5
+23
+-3.2711709924081642
+33
+3.105896849114554
+70
+0
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-38.5
+20
+1.4999999999999922
+30
+-1.6919798895287383e-14
+11
+-38.5
+21
+-3.2711709924081642
+31
+3.105896849114554
+12
+-38.5
+22
+-1.6634404790586328
+32
+9.106028809813777
+13
+-38.5
+23
+-1.6634404790586328
+33
+9.106028809813777
+70
+0
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-33.999999999999986
+20
+1.4999999999999922
+30
+14.585268446263385
+11
+-33.999999999999986
+21
+-1.6634404790586517
+31
+9.106028809813777
+12
+-33.999999999999986
+22
+1.4999999999999922
+32
+-1.4804824033376462e-14
+13
+-33.999999999999986
+23
+1.4999999999999922
+33
+-1.4804824033376462e-14
+70
+0
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-33.999999999999986
+20
+1.4999999999999922
+30
+-1.4804824033376462e-14
+11
+-33.999999999999986
+21
+-3.2711709924081824
+31
+3.105896849114554
+12
+-34.0
+22
+-3.27117099240816
+32
+-1.6097177653715823e-14
+13
+-34.0
+23
+-3.27117099240816
+33
+-1.6097177653715823e-14
+70
+0
+ 0
+3DFACE
+ 8
+disc_quarter
+10
+-33.999999999999986
+20
+1.4999999999999922
+30
+-1.4804824033376462e-14
+11
+-33.999999999999986
+21
+-1.6634404790586517
+31
+9.106028809813777
+12
+-33.999999999999986
+22
+-3.2711709924081824
+32
+3.105896849114554
+13
+-33.999999999999986
+23
+-3.2711709924081824
+33
+3.105896849114554
+70
+0
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+5.639932965095795e-15
+20
+1.5000000000000084
+30
+35.826545088870176
+11
+-38.49999999999998
+21
+-1.9999999999999913
+31
+35.826545088870176
+12
+-38.499999999999986
+22
+1.5000000000000084
+32
+35.826545088870176
+13
+-38.499999999999986
+23
+1.5000000000000084
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-38.49999999999998
+20
+-1.9999999999999913
+30
+35.826545088870176
+11
+5.639932965095795e-15
+21
+1.5000000000000084
+31
+35.826545088870176
+12
+5.639932965095795e-15
+22
+-1.9999999999999913
+32
+35.826545088870176
+13
+5.639932965095795e-15
+23
+-1.9999999999999913
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-40.49999999999998
+20
+-1.9999999999999913
+30
+39.82654508887017
+11
+5.639932965095795e-15
+21
+2.500000000000008
+31
+39.82654508887017
+12
+-40.49999999999999
+22
+2.500000000000008
+32
+39.82654508887017
+13
+-40.49999999999999
+23
+2.500000000000008
+33
+39.82654508887017
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+5.639932965095795e-15
+20
+2.500000000000008
+30
+39.82654508887017
+11
+-40.49999999999998
+21
+-1.9999999999999913
+31
+39.82654508887017
+12
+5.639932965095795e-15
+22
+-1.9999999999999913
+32
+39.82654508887017
+13
+5.639932965095795e-15
+23
+-1.9999999999999913
+33
+39.82654508887017
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+5.639932965095795e-15
+20
+-1.9999999999999913
+30
+39.82654508887017
+11
+-38.49999999999998
+21
+-1.9999999999999913
+31
+35.826545088870176
+12
+5.639932965095795e-15
+22
+-1.9999999999999913
+32
+35.826545088870176
+13
+5.639932965095795e-15
+23
+-1.9999999999999913
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-38.49999999999998
+20
+-1.9999999999999913
+30
+35.826545088870176
+11
+5.639932965095795e-15
+21
+-1.9999999999999913
+31
+39.82654508887017
+12
+-40.49999999999998
+22
+-1.9999999999999913
+32
+35.826545088870176
+13
+-40.49999999999998
+23
+-1.9999999999999913
+33
+35.826545088870176
+70
+3
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-40.49999999999998
+20
+-1.9999999999999913
+30
+35.826545088870176
+11
+5.639932965095795e-15
+21
+-1.9999999999999913
+31
+39.82654508887017
+12
+-40.49999999999998
+22
+-1.9999999999999913
+32
+39.82654508887017
+13
+-40.49999999999998
+23
+-1.9999999999999913
+33
+39.82654508887017
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-40.49999999999999
+20
+2.500000000000008
+30
+39.82654508887017
+11
+-40.49999999999998
+21
+-1.9999999999999913
+31
+35.826545088870176
+12
+-40.49999999999998
+22
+-1.9999999999999913
+32
+39.82654508887017
+13
+-40.49999999999998
+23
+-1.9999999999999913
+33
+39.82654508887017
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-40.49999999999998
+20
+-1.9999999999999913
+30
+35.826545088870176
+11
+-40.49999999999999
+21
+2.500000000000008
+31
+39.82654508887017
+12
+-40.49999999999999
+22
+2.500000000000008
+32
+35.826545088870176
+13
+-40.49999999999999
+23
+2.500000000000008
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-40.49999999999999
+20
+2.500000000000008
+30
+35.826545088870176
+11
+-40.49999999999998
+21
+-1.9999999999999913
+31
+-0.0017362311270455954
+12
+-40.49999999999998
+22
+-1.9999999999999913
+32
+35.826545088870176
+13
+-40.49999999999998
+23
+-1.9999999999999913
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-40.49999999999998
+20
+-1.9999999999999913
+30
+-0.0017362311270455954
+11
+-40.49999999999999
+21
+2.500000000000008
+31
+35.826545088870176
+12
+-40.49999999999999
+22
+2.500000000000008
+32
+-0.0017362311270455954
+13
+-40.49999999999999
+23
+2.500000000000008
+33
+-0.0017362311270455954
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-38.5
+20
+-2.023352891115778
+30
+-1.6919798895287383e-14
+11
+-40.49999999999998
+21
+-1.9999999999999913
+31
+35.826545088870176
+12
+-40.49999999999998
+22
+-1.9999999999999913
+32
+-0.0017362311270455954
+13
+-40.49999999999998
+23
+-1.9999999999999913
+33
+-0.0017362311270455954
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-40.49999999999998
+20
+-1.9999999999999913
+30
+35.826545088870176
+11
+-38.5
+21
+-2.023352891115778
+31
+-1.6919798895287383e-14
+12
+-38.49999999999998
+22
+-1.9999999999999913
+32
+35.826545088870176
+13
+-38.49999999999998
+23
+-1.9999999999999913
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-38.499999999999986
+20
+1.500000000000011
+30
+-1.6919798895287383e-14
+11
+-38.49999999999998
+21
+-1.9999999999999913
+31
+35.826545088870176
+12
+-38.5
+22
+-2.023352891115778
+32
+-1.6919798895287383e-14
+13
+-38.5
+23
+-2.023352891115778
+33
+-1.6919798895287383e-14
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-38.49999999999998
+20
+-1.9999999999999913
+30
+35.826545088870176
+11
+-38.499999999999986
+21
+1.500000000000011
+31
+-1.6919798895287383e-14
+12
+-38.499999999999986
+22
+1.5000000000000084
+32
+35.826545088870176
+13
+-38.499999999999986
+23
+1.5000000000000084
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+5.639932965095795e-15
+20
+1.5000000000000084
+30
+35.826545088870176
+11
+-38.499999999999986
+21
+1.500000000000011
+31
+-1.6919798895287383e-14
+12
+5.639932965095795e-15
+22
+1.5000000000000084
+32
+-2.255973186038318e-14
+13
+5.639932965095795e-15
+23
+1.5000000000000084
+33
+-2.255973186038318e-14
+70
+1
+ 0
+3DFACE
+ 8
+box_quarter_frame
+10
+-38.499999999999986
+20
+1.500000000000011
+30
+-1.6919798895287383e-14
+11
+5.639932965095795e-15
+21
+1.5000000000000084
+31
+35.826545088870176
+12
+-38.499999999999986
+22
+1.5000000000000084
+32
+35.826545088870176
+13
+-38.499999999999986
+23
+1.5000000000000084
+33
+35.826545088870176
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-33.49999999999999
+20
+0.25000000000000006
+30
+17.66327254443509
+11
+-37.49999999999999
+21
+-1.2499999999999996
+31
+17.66327254443509
+12
+-37.49999999999999
+22
+0.25000000000000006
+32
+17.66327254443509
+13
+-37.49999999999999
+23
+0.25000000000000006
+33
+17.66327254443509
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-37.49999999999999
+20
+-1.2499999999999996
+30
+17.66327254443509
+11
+-33.49999999999999
+21
+0.25000000000000006
+31
+17.66327254443509
+12
+-33.49999999999999
+22
+-1.2499999999999996
+32
+17.66327254443509
+13
+-33.49999999999999
+23
+-1.2499999999999996
+33
+17.66327254443509
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-37.49999999999999
+20
+0.25000000000000006
+30
+30.826545088870187
+11
+-37.49999999999999
+21
+-1.2499999999999996
+31
+17.66327254443509
+12
+-37.49999999999999
+22
+-1.2499999999999996
+32
+30.826545088870187
+13
+-37.49999999999999
+23
+-1.2499999999999996
+33
+30.826545088870187
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-37.49999999999999
+20
+-1.2499999999999996
+30
+17.66327254443509
+11
+-37.49999999999999
+21
+0.25000000000000006
+31
+30.826545088870187
+12
+-37.49999999999999
+22
+0.25000000000000006
+32
+17.66327254443509
+13
+-37.49999999999999
+23
+0.25000000000000006
+33
+17.66327254443509
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+5.639932965095795e-15
+20
+-1.2499999999999996
+30
+34.82654508887018
+11
+-33.49999999999999
+21
+0.25000000000000006
+31
+34.82654508887018
+12
+-33.49999999999999
+22
+-1.2499999999999996
+32
+34.82654508887018
+13
+-33.49999999999999
+23
+-1.2499999999999996
+33
+34.82654508887018
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-33.49999999999999
+20
+0.25000000000000006
+30
+34.82654508887018
+11
+5.639932965095795e-15
+21
+-1.2499999999999996
+31
+34.82654508887018
+12
+5.639932965095795e-15
+22
+0.25000000000000006
+32
+34.82654508887018
+13
+5.639932965095795e-15
+23
+0.25000000000000006
+33
+34.82654508887018
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+5.639932965095795e-15
+20
+0.25000000000000006
+30
+0.49999999999999906
+11
+-33.49999999999999
+21
+-1.2499999999999996
+31
+0.49999999999999906
+12
+-33.49999999999999
+22
+0.25000000000000006
+32
+0.49999999999999906
+13
+-33.49999999999999
+23
+0.25000000000000006
+33
+0.49999999999999906
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-33.49999999999999
+20
+-1.2499999999999996
+30
+0.49999999999999906
+11
+5.639932965095795e-15
+21
+0.25000000000000006
+31
+0.49999999999999906
+12
+5.639932965095795e-15
+22
+-1.2499999999999996
+32
+0.49999999999999906
+13
+5.639932965095795e-15
+23
+-1.2499999999999996
+33
+0.49999999999999906
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-33.49999999999999
+20
+0.25000000000000006
+30
+17.66327254443509
+11
+-33.49999999999999
+21
+-1.2499999999999996
+31
+0.49999999999999906
+12
+-33.49999999999999
+22
+-1.2499999999999996
+32
+17.66327254443509
+13
+-33.49999999999999
+23
+-1.2499999999999996
+33
+17.66327254443509
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-33.49999999999999
+20
+-1.2499999999999996
+30
+0.49999999999999906
+11
+-33.49999999999999
+21
+0.25000000000000006
+31
+17.66327254443509
+12
+-33.49999999999999
+22
+0.25000000000000006
+32
+0.49999999999999906
+13
+-33.49999999999999
+23
+0.25000000000000006
+33
+0.49999999999999906
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-36.96410161513774
+20
+0.25000000000000006
+30
+32.82654508887019
+11
+-37.49999999999999
+21
+-1.2499999999999996
+31
+30.826545088870187
+12
+-36.96410161513774
+22
+-1.2499999999999996
+32
+32.82654508887019
+13
+-36.96410161513774
+23
+-1.2499999999999996
+33
+32.82654508887019
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-37.49999999999999
+20
+-1.2499999999999996
+30
+30.826545088870187
+11
+-36.96410161513774
+21
+0.25000000000000006
+31
+32.82654508887019
+12
+-37.49999999999999
+22
+0.25000000000000006
+32
+30.826545088870187
+13
+-37.49999999999999
+23
+0.25000000000000006
+33
+30.826545088870187
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-35.5
+20
+0.25000000000000006
+30
+34.29064670400795
+11
+-36.96410161513774
+21
+-1.2499999999999996
+31
+32.82654508887019
+12
+-35.5
+22
+-1.2499999999999996
+32
+34.29064670400795
+13
+-35.5
+23
+-1.2499999999999996
+33
+34.29064670400795
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-36.96410161513774
+20
+-1.2499999999999996
+30
+32.82654508887019
+11
+-35.5
+21
+0.25000000000000006
+31
+34.29064670400795
+12
+-36.96410161513774
+22
+0.25000000000000006
+32
+32.82654508887019
+13
+-36.96410161513774
+23
+0.25000000000000006
+33
+32.82654508887019
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-33.49999999999999
+20
+-1.2499999999999996
+30
+34.82654508887018
+11
+-35.5
+21
+0.25000000000000006
+31
+34.29064670400795
+12
+-35.5
+22
+-1.2499999999999996
+32
+34.29064670400795
+13
+-35.5
+23
+-1.2499999999999996
+33
+34.29064670400795
+70
+1
+ 0
+3DFACE
+ 8
+fin_edge_half
+10
+-35.5
+20
+0.25000000000000006
+30
+34.29064670400795
+11
+-33.49999999999999
+21
+-1.2499999999999996
+31
+34.82654508887018
+12
+-33.49999999999999
+22
+0.25000000000000006
+32
+34.82654508887018
+13
+-33.49999999999999
+23
+0.25000000000000006
+33
+34.82654508887018
+70
+1
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/hacks/glx/splitflap.man b/hacks/glx/splitflap.man
new file mode 100644
index 0000000..432f490
--- /dev/null
+++ b/hacks/glx/splitflap.man
@@ -0,0 +1,98 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+splitflap - a simulation of a split-flap electromechanical display.
+.SH SYNOPSIS
+.B splitflap
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fImicroseconds\fP]
+[\-speed \fIfloat\fP]
+[\-width \fIcolumns\fP]
+[\-height \fIrows\fP]
+[\-mode text | clock12 | clock24]
+[\-no-wander]
+[\-spin \fIaxes\fP]
+[\-no\-spin]
+[\-front] [\-no-front]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Simulates a split-flap display, an old style of electromechanical sign as
+seen in airports and train stations, and commonly used in alarm clocks in
+the 1960s and 1970s.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-width \fInumber\fP
+Columns of the display. Default: 22.
+.TP 8
+.B \-height \fInumber\fP
+Rows of the display. Default: 8.
+.TP 8
+.B \-mode clock12
+Display a 12-hour clock.
+.TP 8
+.B \-mode clock24
+Display a 24-hour clock.
+.TP 8
+.B \-front | \-no-front
+When spinning, never spin all the way around or upside down:
+always face mostly forward so that the text is easily readable.
+This is the default.
+.TP 8
+.B \-no\-front
+Allow spins to go all the way around or upside down.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin
+Which axes around which the text should spin. The default is "XYZ",
+meaning rotate it freely in space. "\fB\-spin Z\fP" would rotate the
+text in the plane of the screen while not rotating it into or out
+of the screen; etc.
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2015 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/splitflap_obj.c b/hacks/glx/splitflap_obj.c
new file mode 100644
index 0000000..f814bb9
--- /dev/null
+++ b/hacks/glx/splitflap_obj.c
@@ -0,0 +1,200 @@
+/* Generated from "splitflap.dxf" on 04-May-2015.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ Components: box_quarter_frame, disc_quarter, fin_edge_half,
+ fin_face_half.
+ */
+
+#include "gllist.h"
+
+static const float splitflap_obj_box_quarter_frame_data[] = {
+ 0,0,-1,0,0.037037,0.884606,
+ 0,0,-1,-0.950617,-0.049383,0.884606,
+ 0,0,-1,-0.950617,0.037037,0.884606,
+ 0,0,-1,-0.950617,-0.049383,0.884606,
+ 0,0,-1,0,0.037037,0.884606,
+ 0,0,-1,0,-0.049383,0.884606,
+ 0,0,1,-1,-0.049383,0.983371,
+ 0,0,1,0,0.061728,0.983371,
+ 0,0,1,-1,0.061728,0.983371,
+ 0,0,1,0,0.061728,0.983371,
+ 0,0,1,-1,-0.049383,0.983371,
+ 0,0,1,0,-0.049383,0.983371,
+ 0,-1,0,0,-0.049383,0.983371,
+ 0,-1,0.000217,-0.950617,-0.049383,0.884606,
+ 0,-1,0,0,-0.049383,0.884606,
+ 0,-1,0.000217,-0.950617,-0.049383,0.884606,
+ 0,-1,0,0,-0.049383,0.983371,
+ -0.002919,-0.999996,0.000163,-1,-0.049383,0.884606,
+ -0.002919,-0.999996,0.000163,-1,-0.049383,0.884606,
+ 0,-1,0,0,-0.049383,0.983371,
+ 0,-1,0,-1,-0.049383,0.983371,
+ -1,0,0,-1,0.061728,0.983371,
+ -1,0,0,-1,-0.049383,0.884606,
+ -1,0,0,-1,-0.049383,0.983371,
+ -1,0,0,-1,-0.049383,0.884606,
+ -1,0,0,-1,0.061728,0.983371,
+ -1,0,0,-1,0.061728,0.884606,
+ -1,0,0,-1,0.061728,0.884606,
+ -1,0,0,-1,-0.049383,-0.000043,
+ -1,0,0,-1,-0.049383,0.884606,
+ -1,0,0,-1,-0.049383,-0.000043,
+ -1,0,0,-1,0.061728,0.884606,
+ -1,0,0,-1,0.061728,-0.000043,
+ -0.005838,-0.999983,0.000326,-0.950617,-0.049959,0,
+ -0.002919,-0.999996,0.000163,-1,-0.049383,0.884606,
+ -0.011676,-0.999932,0,-1,-0.049383,-0.000043,
+ -0.002919,-0.999996,0.000163,-1,-0.049383,0.884606,
+ -0.005838,-0.999983,0.000326,-0.950617,-0.049959,0,
+ 0,-1,0.000217,-0.950617,-0.049383,0.884606,
+ 1,0,0,-0.950617,0.037037,0,
+ 1,0,0,-0.950617,-0.049383,0.884606,
+ 1,0,0,-0.950617,-0.049959,0,
+ 1,0,0,-0.950617,-0.049383,0.884606,
+ 1,0,0,-0.950617,0.037037,0,
+ 1,0,0,-0.950617,0.037037,0.884606,
+ 0,-1,0,0,0.037037,0.884606,
+ 0,-1,0,-0.950617,0.037037,0,
+ 0,-1,0,0,0.037037,0,
+ 0,-1,0,-0.950617,0.037037,0,
+ 0,-1,0,0,0.037037,0.884606,
+ 0,-1,0,-0.950617,0.037037,0.884606
+};
+static const struct gllist splitflap_obj_box_quarter_frame_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 51, splitflap_obj_box_quarter_frame_data, 0
+};
+const struct gllist *splitflap_obj_box_quarter_frame = &splitflap_obj_box_quarter_frame_frame;
+
+static const float splitflap_obj_disc_quarter_data[] = {
+ 0,-1,0,-0.839506,-0.08077,0,
+ 0,-0.991445,0.130526,-0.950617,-0.08077,0.076689,
+ 0,-1,0,-0.950617,-0.08077,0,
+ 0,-0.991445,0.130526,-0.950617,-0.08077,0.076689,
+ 0,-1,0,-0.839506,-0.08077,0,
+ 0,-0.991445,0.130526,-0.839506,-0.08077,0.076689,
+ 0,-0.939769,0.341811,-0.839506,-0.041073,0.22484,
+ 0,-0.991445,0.130526,-0.950617,-0.08077,0.076689,
+ 0,-0.991445,0.130526,-0.839506,-0.08077,0.076689,
+ 0,-0.991445,0.130526,-0.950617,-0.08077,0.076689,
+ 0,-0.939769,0.341811,-0.839506,-0.041073,0.22484,
+ 0,-0.906214,0.42282,-0.950617,-0.041073,0.22484,
+ 0,-0.866025,0.5,-0.839506,0.037037,0.36013,
+ 0,-0.906214,0.42282,-0.950617,-0.041073,0.22484,
+ 0,-0.939769,0.341811,-0.839506,-0.041073,0.22484,
+ 0,-0.906214,0.42282,-0.950617,-0.041073,0.22484,
+ 0,-0.866025,0.5,-0.839506,0.037037,0.36013,
+ 0,-0.866025,0.5,-0.950617,0.037037,0.36013,
+ -1,0,0,-0.950617,0.037037,0,
+ -1,0,0,-0.950617,-0.08077,0,
+ -1,0,0,-0.950617,-0.08077,0.076689,
+ -1,0,0,-0.950617,0.037037,0,
+ -1,0,0,-0.950617,-0.08077,0.076689,
+ -1,0,0,-0.950617,-0.041073,0.22484,
+ 1,0,0,-0.839506,0.037037,0.36013,
+ 1,0,0,-0.839506,-0.041073,0.22484,
+ 1,0,0,-0.839506,0.037037,0,
+ 1,0,0,-0.839506,0.037037,0,
+ 1,0,0,-0.839506,-0.08077,0.076689,
+ 1,0,0,-0.839506,-0.08077,0,
+ 1,0,0,-0.839506,0.037037,0,
+ 1,0,0,-0.839506,-0.041073,0.22484,
+ 1,0,0,-0.839506,-0.08077,0.076689
+};
+static const struct gllist splitflap_obj_disc_quarter_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 33, splitflap_obj_disc_quarter_data, 0
+};
+const struct gllist *splitflap_obj_disc_quarter = &splitflap_obj_disc_quarter_frame;
+
+static const float splitflap_obj_fin_edge_half_data[] = {
+ 0,0,-1,-0.82716,0.006173,0.43613,
+ 0,0,-1,-0.925926,-0.030864,0.43613,
+ 0,0,-1,-0.925926,0.006173,0.43613,
+ 0,0,-1,-0.925926,-0.030864,0.43613,
+ 0,0,-1,-0.82716,0.006173,0.43613,
+ 0,0,-1,-0.82716,-0.030864,0.43613,
+ -0.996214,0,0.086934,-0.925926,0.006173,0.761149,
+ -1,0,0,-0.925926,-0.030864,0.43613,
+ -0.984769,0,0.173868,-0.925926,-0.030864,0.761149,
+ -1,0,0,-0.925926,-0.030864,0.43613,
+ -0.996214,0,0.086934,-0.925926,0.006173,0.761149,
+ -1,0,0,-0.925926,0.006173,0.43613,
+ 0,0,1,0,-0.030864,0.859915,
+ -0.086934,0,0.996214,-0.82716,0.006173,0.859915,
+ -0.173868,0,0.984769,-0.82716,-0.030864,0.859915,
+ -0.086934,0,0.996214,-0.82716,0.006173,0.859915,
+ 0,0,1,0,-0.030864,0.859915,
+ 0,0,1,0,0.006173,0.859915,
+ 0,0,-1,0,0.006173,0.012346,
+ 0,0,-1,-0.82716,-0.030864,0.012346,
+ 0,0,-1,-0.82716,0.006173,0.012346,
+ 0,0,-1,-0.82716,-0.030864,0.012346,
+ 0,0,-1,0,0.006173,0.012346,
+ 0,0,-1,0,-0.030864,0.012346,
+ -1,0,0,-0.82716,0.006173,0.43613,
+ -1,0,0,-0.82716,-0.030864,0.012346,
+ -1,0,0,-0.82716,-0.030864,0.43613,
+ -1,0,0,-0.82716,-0.030864,0.012346,
+ -1,0,0,-0.82716,0.006173,0.43613,
+ -1,0,0,-0.82716,0.006173,0.012346,
+ -0.907073,0,0.420974,-0.912694,0.006173,0.810532,
+ -0.984769,0,0.173868,-0.925926,-0.030864,0.761149,
+ -0.81811,0,0.575061,-0.912694,-0.030864,0.810532,
+ -0.984769,0,0.173868,-0.925926,-0.030864,0.761149,
+ -0.907073,0,0.420974,-0.912694,0.006173,0.810532,
+ -0.996214,0,0.086934,-0.925926,0.006173,0.761149,
+ -0.707107,0,0.707107,-0.876543,0.006173,0.846683,
+ -0.81811,0,0.575061,-0.912694,-0.030864,0.810532,
+ -0.707107,0,0.707107,-0.876543,-0.030864,0.846683,
+ -0.81811,0,0.575061,-0.912694,-0.030864,0.810532,
+ -0.707107,0,0.707107,-0.876543,0.006173,0.846683,
+ -0.907073,0,0.420974,-0.912694,0.006173,0.810532,
+ -0.173868,0,0.984769,-0.82716,-0.030864,0.859915,
+ -0.258819,0,0.965926,-0.876543,0.006173,0.846683,
+ -0.258819,0,0.965926,-0.876543,-0.030864,0.846683,
+ -0.258819,0,0.965926,-0.876543,0.006173,0.846683,
+ -0.173868,0,0.984769,-0.82716,-0.030864,0.859915,
+ -0.086934,0,0.996214,-0.82716,0.006173,0.859915
+};
+static const struct gllist splitflap_obj_fin_edge_half_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 48, splitflap_obj_fin_edge_half_data, 0
+};
+const struct gllist *splitflap_obj_fin_edge_half = &splitflap_obj_fin_edge_half_frame;
+
+static const float splitflap_obj_fin_face_half_data[] = {
+ 0,-1,0,-0.82716,-0.030864,0.859915,
+ 0,-1,0,-0.82716,-0.030864,0.761149,
+ 0,-1,0,0,-0.030864,0.761149,
+ 0,-1,0,-0.82716,-0.030864,0.761149,
+ 0,-1,0,-0.925926,-0.030864,0.761149,
+ 0,-1,0,-0.82716,-0.030864,0.43613,
+ 0,-1,0,-0.82716,-0.030864,0.761149,
+ 0,-1,0,-0.82716,-0.030864,0.43613,
+ 0,-1,0,0,-0.030864,0.761149,
+ 0,-1,0,0,-0.030864,0.761149,
+ 0,-1,0,-0.82716,-0.030864,0.43613,
+ 0,-1,0,0,-0.030864,0.43613,
+ 0,-1,0,-0.82716,-0.030864,0.859915,
+ 0,-1,0,0,-0.030864,0.761149,
+ 0,-1,0,0,-0.030864,0.859915,
+ 0,-1,0,-0.925926,-0.030864,0.761149,
+ 0,-1,0,-0.925926,-0.030864,0.43613,
+ 0,-1,0,-0.82716,-0.030864,0.43613,
+ 0,-1,0,-0.82716,-0.030864,0.43613,
+ 0,-1,0,0,-0.030864,0.012346,
+ 0,-1,0,0,-0.030864,0.43613,
+ 0,-1,0,-0.82716,-0.030864,0.43613,
+ 0,-1,0,-0.82716,-0.030864,0.012346,
+ 0,-1,0,0,-0.030864,0.012346,
+ 0,-1,0,-0.912694,-0.030864,0.810532,
+ 0,-1,0,-0.925926,-0.030864,0.761149,
+ 0,-1,0,-0.82716,-0.030864,0.761149,
+ 0,-1,0,-0.876543,-0.030864,0.846683,
+ 0,-1,0,-0.912694,-0.030864,0.810532,
+ 0,-1,0,-0.82716,-0.030864,0.761149,
+ 0,-1,0,-0.82716,-0.030864,0.859915,
+ 0,-1,0,-0.876543,-0.030864,0.846683,
+ 0,-1,0,-0.82716,-0.030864,0.761149
+};
+static const struct gllist splitflap_obj_fin_face_half_frame = {
+ GL_N3F_V3F, GL_TRIANGLES, 33, splitflap_obj_fin_face_half_data, 0
+};
+const struct gllist *splitflap_obj_fin_face_half = &splitflap_obj_fin_face_half_frame;
diff --git a/hacks/glx/splodesic.c b/hacks/glx/splodesic.c
new file mode 100644
index 0000000..2823133
--- /dev/null
+++ b/hacks/glx/splodesic.c
@@ -0,0 +1,640 @@
+/* splodesic, Copyright (c) 2016 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define release_splodesic 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "normals.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_FREQ "4"
+
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+typedef struct { double a, o; } LL; /* latitude + longitude */
+
+typedef struct triangle triangle;
+struct triangle {
+ XYZ p[3];
+ triangle *next;
+ triangle *neighbors[3];
+ GLfloat altitude;
+ GLfloat velocity;
+ GLfloat thrust;
+ int thrust_duration;
+ int refcount;
+};
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int count;
+ triangle *triangles;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor;
+
+} splodesic_configuration;
+
+static splodesic_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static int depth_arg;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-depth", ".freq", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" }
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&depth_arg, "freq", "Depth", DEF_FREQ, t_Int},
+};
+
+ENTRYPOINT ModeSpecOpt splodesic_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Creates a triangle specified by 3 polar endpoints.
+ */
+static void
+make_triangle1 (ModeInfo *mi, LL v1, LL v2, LL v3)
+{
+ splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ triangle *t = (triangle *) calloc (1, sizeof(*t));
+
+ t->p[0].x = cos (v1.a) * cos (v1.o);
+ t->p[0].y = cos (v1.a) * sin (v1.o);
+ t->p[0].z = sin (v1.a);
+
+ t->p[1].x = cos (v2.a) * cos (v2.o);
+ t->p[1].y = cos (v2.a) * sin (v2.o);
+ t->p[1].z = sin (v2.a);
+
+ t->p[2].x = cos (v3.a) * cos (v3.o);
+ t->p[2].y = cos (v3.a) * sin (v3.o);
+ t->p[2].z = sin (v3.a);
+
+ t->next = bp->triangles;
+ bp->triangles = t;
+ bp->count++;
+}
+
+
+/* Computes the midpoint of a line between two polar coords.
+ */
+static void
+midpoint2 (LL v1, LL v2, LL *vm_ret,
+ XYZ *p1_ret, XYZ *p2_ret, XYZ *pm_ret)
+{
+ XYZ p1, p2, pm;
+ LL vm;
+ GLfloat hyp;
+
+ p1.x = cos (v1.a) * cos (v1.o);
+ p1.y = cos (v1.a) * sin (v1.o);
+ p1.z = sin (v1.a);
+
+ p2.x = cos (v2.a) * cos (v2.o);
+ p2.y = cos (v2.a) * sin (v2.o);
+ p2.z = sin (v2.a);
+
+ pm.x = (p1.x + p2.x) / 2;
+ pm.y = (p1.y + p2.y) / 2;
+ pm.z = (p1.z + p2.z) / 2;
+
+ vm.o = atan2 (pm.y, pm.x);
+ hyp = sqrt (pm.x * pm.x + pm.y * pm.y);
+ vm.a = atan2 (pm.z, hyp);
+
+ *p1_ret = p1;
+ *p2_ret = p2;
+ *pm_ret = pm;
+ *vm_ret = vm;
+}
+
+
+/* Creates triangular geodesic facets to the given depth.
+ */
+static void
+make_triangle (ModeInfo *mi, LL v1, LL v2, LL v3, int depth)
+{
+ if (depth <= 0)
+ make_triangle1 (mi, v1, v2, v3);
+ else
+ {
+ LL v12, v23, v13;
+ XYZ p1, p2, p3, p12, p23, p13;
+
+ midpoint2 (v1, v2, &v12, &p1, &p2, &p12);
+ midpoint2 (v2, v3, &v23, &p2, &p3, &p23);
+ midpoint2 (v1, v3, &v13, &p1, &p3, &p13);
+ depth--;
+
+ make_triangle (mi, v1, v12, v13, depth);
+ make_triangle (mi, v12, v2, v23, depth);
+ make_triangle (mi, v13, v23, v3, depth);
+ make_triangle (mi, v12, v23, v13, depth);
+ }
+}
+
+
+/* Creates triangles of a geodesic to the given depth (frequency).
+ */
+static void
+make_geodesic (ModeInfo *mi)
+{
+ int depth = depth_arg;
+ GLfloat th0 = atan (0.5); /* lat division: 26.57 deg */
+ GLfloat s = M_PI / 5; /* lon division: 72 deg */
+ int i;
+
+ for (i = 0; i < 10; i++)
+ {
+ GLfloat th1 = s * i;
+ GLfloat th2 = s * (i+1);
+ GLfloat th3 = s * (i+2);
+ LL v1, v2, v3, vc;
+ v1.a = th0; v1.o = th1;
+ v2.a = th0; v2.o = th3;
+ v3.a = -th0; v3.o = th2;
+ vc.a = M_PI/2; vc.o = th2;
+
+ if (i & 1) /* north */
+ {
+ make_triangle (mi, v1, v2, vc, depth);
+ make_triangle (mi, v2, v1, v3, depth);
+ }
+ else /* south */
+ {
+ v1.a = -v1.a;
+ v2.a = -v2.a;
+ v3.a = -v3.a;
+ vc.a = -vc.a;
+ make_triangle (mi, v2, v1, vc, depth);
+ make_triangle (mi, v1, v2, v3, depth);
+ }
+ }
+}
+
+
+/* Add t1 to the neighbor list of t0. */
+static void
+link_neighbor (int i, int j, triangle *t0, triangle *t1)
+{
+ int k;
+ if (t0 == t1)
+ return;
+ for (k = 0; k < countof(t0->neighbors); k++)
+ {
+ if (t0->neighbors[k] == t1 ||
+ t0->neighbors[k] == 0)
+ {
+ t0->neighbors[k] = t1;
+ return;
+ }
+ }
+ fprintf (stderr, "%d %d: too many neighbors\n", i, j);
+ abort();
+}
+
+
+static int
+feq (GLfloat a, GLfloat b) /* Oh for fuck's sake */
+{
+ const GLfloat e = 0.00001;
+ GLfloat d = a - b;
+ return (d > -e && d < e);
+}
+
+
+/* Link each triangle to its three neighbors.
+ */
+static void
+link_neighbors (ModeInfo *mi)
+{
+ splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ triangle *t0 = bp->triangles;
+ int i;
+
+ /* Triangles are neighbors if they share an edge (exactly 2 points).
+ (There must be a faster than N! way to do this...)
+ */
+ for (i = 0, t0 = bp->triangles; t0; t0 = t0->next, i++)
+ {
+ triangle *t1;
+ int j;
+
+ for (j = i+1, t1 = t0->next; t1; t1 = t1->next, j++)
+ {
+ int count = 0;
+ int ii, jj;
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ if (feq (t0->p[ii].x, t1->p[jj].x) &&
+ feq (t0->p[ii].y, t1->p[jj].y) &&
+ feq (t0->p[ii].z, t1->p[jj].z))
+ count++;
+ if (count >= 3)
+ {
+ fprintf (stderr, "%d %d: too many matches: %d\n", i, j, count);
+ abort();
+ }
+ if (count == 2)
+ {
+ link_neighbor (i, j, t0, t1);
+ link_neighbor (j, i, t1, t0);
+ }
+ }
+
+ if (! (t0->neighbors[0] && t0->neighbors[1] && t0->neighbors[2]))
+ {
+ fprintf (stderr, "%d: missing neighbors\n", i);
+ abort();
+ }
+
+ t0->altitude = 60; /* Fall in from space */
+ }
+}
+
+
+/* Add thrust to the triangle, and propagate some of that to its neighbors.
+ */
+static void
+add_thrust (triangle *t, GLfloat thrust)
+{
+ GLfloat dampen = 0;
+ if (t->refcount)
+ return;
+ t->refcount++;
+ t->velocity += thrust;
+
+ /* Eyeballed this to look roughly the same at various depths. Eh. */
+ switch (depth_arg) {
+ case 0: dampen = 0.5; break;
+ case 1: dampen = 0.7; break;
+ case 2: dampen = 0.9; break;
+ case 3: dampen = 0.98; break;
+ case 4: dampen = 0.985; break;
+ default: dampen = 0.993; break;
+ }
+
+ thrust *= dampen;
+ if (thrust > 0.1)
+ {
+ add_thrust (t->neighbors[0], thrust);
+ add_thrust (t->neighbors[1], thrust);
+ add_thrust (t->neighbors[2], thrust);
+ }
+}
+
+
+static void
+tick_triangles (ModeInfo *mi)
+{
+ splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat gravity = 0.1;
+ triangle *t;
+ int i;
+
+ /* Compute new velocities. */
+ for (i = 0, t = bp->triangles; t; t = t->next, i++)
+ {
+ if (t->thrust > 0)
+ {
+ add_thrust (t, t->thrust);
+ t->thrust_duration--;
+ if (t->thrust_duration <= 0)
+ {
+ t->thrust_duration = 0;
+ t->thrust = 0;
+ }
+ }
+ }
+
+ /* Apply new velocities. */
+ for (i = 0, t = bp->triangles; t; t = t->next, i++)
+ {
+ t->altitude += t->velocity;
+ t->velocity -= gravity;
+ if (t->altitude < 0)
+ {
+ t->velocity = 0;
+ t->altitude = 0;
+ }
+ t->refcount = 0; /* Clear for next time */
+ }
+
+ /* Add eruptions. */
+ if (frand(1 / speed) < 0.2)
+ {
+ int n = random() % bp->count;
+ for (i = 0, t = bp->triangles; t; t = t->next, i++)
+ if (i == n)
+ break;
+ t->thrust += gravity * 1.5;
+ t->thrust_duration = 1 + BELLRAND(16);
+ }
+
+ bp->ccolor++;
+ if (bp->ccolor >= bp->ncolors)
+ bp->ccolor = 0;
+}
+
+
+static void
+draw_triangles (ModeInfo *mi)
+{
+ splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ triangle *t;
+ GLfloat c[4];
+ int c0 = bp->ccolor;
+ int c1 = (c0 + bp->ncolors / 2) % bp->ncolors;
+
+ c[0] = bp->colors[c0].red / 65536.0;
+ c[1] = bp->colors[c0].green / 65536.0;
+ c[2] = bp->colors[c0].blue / 65536.0;
+ c[3] = 1;
+
+ if (wire)
+ glColor4fv (c);
+ else
+ {
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, c);
+
+ c[0] = bp->colors[c1].red / 65536.0;
+ c[1] = bp->colors[c1].green / 65536.0;
+ c[2] = bp->colors[c1].blue / 65536.0;
+ c[3] = 1;
+ glMaterialfv (GL_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+ }
+
+ glFrontFace (GL_CCW);
+ for (t = bp->triangles; t; t = t->next)
+ {
+ GLfloat a = t->altitude * 0.25;
+ XYZ c;
+ glPushMatrix();
+
+ c.x = t->p[0].x + t->p[1].x + t->p[2].x;
+ c.y = t->p[0].y + t->p[1].y + t->p[2].y;
+ c.z = t->p[0].z + t->p[1].z + t->p[2].z;
+ if (a > 0)
+ glTranslatef (a * c.x / 3, a * c.y / 3, a * c.z / 3);
+ glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLES);
+ glNormal3f (c.x, c.y, c.z);
+ glVertex3f (t->p[0].x, t->p[0].y, t->p[0].z);
+ glVertex3f (t->p[1].x, t->p[1].y, t->p[1].z);
+ glVertex3f (t->p[2].x, t->p[2].y, t->p[2].z);
+ glEnd();
+ mi->polygon_count++;
+ glPopMatrix();
+ }
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_splodesic (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+splodesic_handle_event (ModeInfo *mi, XEvent *event)
+{
+ splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ bp->ncolors = 1024;
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_splodesic (ModeInfo *mi)
+{
+ splodesic_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_splodesic (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {4.0, 1.4, 1.1, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 0.2, 0.2, 1.0};
+ GLfloat cspec[4] = {1, 1, 1, 1};
+ static const GLfloat shiny = 10;
+ int lightmodel = 1;
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ glLightModeliv (GL_LIGHT_MODEL_TWO_SIDE, &lightmodel);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, cspec);
+ glMateriali (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+ }
+
+ {
+ double spin_speed = 0.5;
+ double wander_speed = 0.005;
+ double spin_accel = 1.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ True);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->ncolors = 1024;
+ bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ bp->colors, &bp->ncolors,
+ False, 0, False);
+
+# ifdef HAVE_MOBILE
+ depth_arg--;
+# endif
+
+ if (depth_arg < 0) depth_arg = 0;
+ if (depth_arg > 10) depth_arg = 10;
+
+ make_geodesic (mi);
+ link_neighbors (mi);
+}
+
+
+ENTRYPOINT void
+draw_splodesic (ModeInfo *mi)
+{
+ splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glDisable(GL_CULL_FACE);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 6,
+ (y - 0.5) * 6,
+ (z - 0.5) * 8);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+# ifdef HAVE_MOBILE
+ glScalef (3, 3, 3);
+#else
+ glScalef (4, 4, 4);
+# endif
+
+ if (! bp->button_down_p)
+ tick_triangles (mi);
+ draw_triangles (mi);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_splodesic (ModeInfo *mi)
+{
+ splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
+ while (bp->triangles)
+ {
+ triangle *t = bp->triangles->next;
+ free (bp->triangles);
+ bp->triangles = t;
+ }
+}
+
+XSCREENSAVER_MODULE ("Splodesic", splodesic)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/splodesic.man b/hacks/glx/splodesic.man
new file mode 100644
index 0000000..bf31e1d
--- /dev/null
+++ b/hacks/glx/splodesic.man
@@ -0,0 +1,69 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+splodesic - k
+A geodesic sphere experiences a series of eruptions.
+.SH SYNOPSIS
+.B splodesic
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-no-wander]
+[\-no-spin]
+[\-fps]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-depth \fInumber\fP]
+.SH DESCRIPTION
+A geodesic sphere experiences a series of eruptions.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether the object should spin.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Frequency of eruptions. 2.0 means twice as often, 0.5 means half as often.
+.TP 8
+.B \-depth \fInumber\fP
+Depth (frequency) of the geodesic. 0 - 5. Default: 4.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/sproingies.c b/hacks/glx/sproingies.c
new file mode 100644
index 0000000..1860b11
--- /dev/null
+++ b/hacks/glx/sproingies.c
@@ -0,0 +1,906 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* sproingies.c - 3D sproingies */
+
+#if 0
+static const char sccsid[] = "@(#)sproingies.c 4.04 97/07/28 xlockmore";
+#endif
+
+/*-
+ * sproingies.c - Copyright 1996 by Ed Mackey, freely distributable.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ * See sproingiewrap.c
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifdef STANDALONE
+# include "xlockmoreI.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#if !defined(HAVE_JWZGLES) && !defined(HAVE_COCOA)
+# include <GL/glu.h>
+#endif
+
+#include "gllist.h"
+#include "sproingies.h"
+
+#define MAXSPROING 100
+#define TARGET_COUNT 40
+#define BOOM_FRAME 50
+#define NO_FRAME (-10)
+#define RESET_SPROINGIE_LIFE (-30 + myrand(28))
+#define NEW_SPROINGIE_LIFE (40 + myrand(200))
+#define JUMP_LEFT 0
+#define JUMP_RIGHT 1
+
+#define FIRST_FRAME 0
+#define LAST_FRAME 5
+/*-
+ * The sproingies have six "real" frames, (s1_1 to s1_6) that show a
+ * sproingie jumping off a block, headed down and to the right.
+ * The frames are numbered from 0 (FIRST_FRAME) to 5 (LAST_FRAME).
+ *
+ * There are other frame numbers for special cases (e.g. BOOM_FRAME).
+ */
+
+extern const struct gllist *s1_1;
+extern const struct gllist *s1_2;
+extern const struct gllist *s1_3;
+extern const struct gllist *s1_4;
+extern const struct gllist *s1_5;
+extern const struct gllist *s1_6;
+extern const struct gllist *s1_b;
+
+static int
+myrand(int range)
+{
+ return ((int) (((float) range) * LRAND() / (MAXRAND)));
+}
+
+static int smart_sproingies = 0;
+
+static GLuint
+build_TopsSides(int wireframe)
+{
+ GLuint dl_num;
+ GLfloat mat_color[4] =
+ {0.0, 0.0, 0.0, 1.0};
+
+ dl_num = glGenLists(2);
+ if (!dl_num)
+ return (0); /* 0 means out of display lists. */
+
+ /* Surface: Tops */
+ glNewList(dl_num, GL_COMPILE);
+ mat_color[0] = 0.392157;
+ mat_color[1] = 0.784314;
+ mat_color[2] = 0.941176;
+ if (wireframe)
+ glColor3fv(mat_color);
+ else {
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat_color);
+ }
+ glEndList();
+
+ /* Surface: Sides */
+ glNewList(dl_num + 1, GL_COMPILE);
+ if (wireframe)
+ glColor3fv(mat_color);
+ else {
+ /* jwz: in wireframe mode, color tops and sides the same. */
+ mat_color[0] = 0.156863;
+ mat_color[1] = 0.156863;
+ mat_color[2] = 0.392157;
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat_color);
+ }
+ glEndList();
+ return (dl_num);
+}
+
+static void
+LayGround(int sx, int sy, int sz, int width, int height, sp_instance * si)
+{
+ int x, y, z, w, h;
+ GLenum begin_polygon;
+
+ if (si->wireframe)
+ begin_polygon = GL_LINE_LOOP;
+ else
+ begin_polygon = GL_POLYGON;
+
+ if (!si->wireframe) {
+ if (!si->mono)
+ glCallList(si->TopsSides); /* Render the tops */
+ glNormal3f(0.0, 1.0, 0.0);
+
+ for (h = 0; h < height; ++h) {
+ x = sx + h;
+ y = sy - (h << 1);
+ z = sz + h;
+ for (w = 0; w < width; ++w) {
+ glBegin(begin_polygon);
+ glVertex3i(x, y, z);
+ glVertex3i(x, y, z - 1);
+ glVertex3i(x + 1, y, z - 1);
+ glVertex3i(x + 1, y, z);
+ glEnd();
+ glBegin(begin_polygon);
+ glVertex3i(x + 1, y - 1, z);
+ glVertex3i(x + 1, y - 1, z - 1);
+ glVertex3i(x + 2, y - 1, z - 1);
+ glVertex3i(x + 2, y - 1, z);
+ glEnd();
+ ++x;
+ --z;
+ }
+ }
+ }
+ if (!si->mono)
+ glCallList(si->TopsSides + 1); /* Render the sides */
+ if (!si->wireframe)
+ glNormal3f(0.0, 0.0, 1.0);
+
+ for (h = 0; h < height; ++h) {
+ x = sx + h;
+ y = sy - (h << 1);
+ z = sz + h;
+ for (w = 0; w < width; ++w) {
+ glBegin(begin_polygon);
+ glVertex3i(x, y, z);
+ glVertex3i(x + 1, y, z);
+ glVertex3i(x + 1, y - 1, z);
+ glVertex3i(x, y - 1, z);
+ glEnd();
+ glBegin(begin_polygon);
+ glVertex3i(x + 1, y - 1, z);
+ glVertex3i(x + 2, y - 1, z);
+ glVertex3i(x + 2, y - 2, z);
+ glVertex3i(x + 1, y - 2, z);
+/*-
+ * PURIFY 4.0.1 reports an unitialized memory read on the next line when using
+ * MesaGL 2.2 and -mono. This has been fixed in MesaGL 2.3 and later. */
+ glEnd();
+ ++x;
+ --z;
+ }
+ }
+
+ /* Render the other sides */
+ if (!si->wireframe)
+ glNormal3f(1.0, 0.0, 0.0);
+
+ for (h = 0; h < height; ++h) {
+ x = sx + h;
+ y = sy - (h << 1);
+ z = sz + h;
+ for (w = 0; w < width; ++w) {
+ glBegin(begin_polygon);
+ glVertex3i(x + 1, y, z);
+ glVertex3i(x + 1, y, z - 1);
+ glVertex3i(x + 1, y - 1, z - 1);
+ glVertex3i(x + 1, y - 1, z);
+ glEnd();
+ glBegin(begin_polygon);
+ glVertex3i(x + 2, y - 1, z);
+ glVertex3i(x + 2, y - 1, z - 1);
+ glVertex3i(x + 2, y - 2, z - 1);
+ glVertex3i(x + 2, y - 2, z);
+ glEnd();
+ ++x;
+ --z;
+ }
+ }
+
+ if (si->wireframe) {
+ if (!si->mono)
+ glCallList(si->TopsSides); /* Render the tops */
+
+ for (h = 0; h < height; ++h) {
+ x = sx + h;
+ y = sy - (h << 1);
+ z = sz + h;
+ for (w = 0; w < width; ++w) {
+ glBegin(begin_polygon);
+ glVertex3i(x, y, z);
+ glVertex3i(x, y, z - 1);
+ glVertex3i(x + 1, y, z - 1);
+ glVertex3i(x + 1, y, z);
+ glEnd();
+ glBegin(begin_polygon);
+ glVertex3i(x + 1, y - 1, z);
+ glVertex3i(x + 1, y - 1, z - 1);
+ glVertex3i(x + 2, y - 1, z - 1);
+ glVertex3i(x + 2, y - 1, z);
+ glEnd();
+ ++x;
+ --z;
+ }
+ }
+ }
+}
+
+static void
+AdvanceSproingie(int t, sp_instance * si)
+{
+ int g_higher, g_back, t2;
+ struct sPosColor *thisSproingie = &(si->positions[t]);
+ struct sPosColor *S2 = &(si->positions[0]);
+
+ if (thisSproingie->life > 0) {
+ if ((++(thisSproingie->frame)) > LAST_FRAME) {
+ if (thisSproingie->frame >= BOOM_FRAME) {
+ if ((thisSproingie->r -= 0.08) < 0.0)
+ thisSproingie->r = 0.0;
+ if ((thisSproingie->g -= 0.08) < 0.0)
+ thisSproingie->g = 0.0;
+ if ((thisSproingie->b -= 0.08) < 0.0)
+ thisSproingie->b = 0.0;
+ if ((--(thisSproingie->life)) < 1) {
+ thisSproingie->life = RESET_SPROINGIE_LIFE;
+ }
+ return;
+ }
+ thisSproingie->frame = FIRST_FRAME;
+
+ /* Check for collisions */
+ for (t2 = 0; t2 < si->maxsproingies; ++t2) {
+ if ((t2 != t) && (thisSproingie->x == S2->x) &&
+ (thisSproingie->y == S2->y) && (thisSproingie->z == S2->z) &&
+ (S2->life > 10) && (S2->frame < LAST_FRAME + 1)) {
+#if 0
+ if (thisSproingie->life > S2->life) {
+ S2->life = 10;
+ } else {
+#endif
+ if (thisSproingie->life > 10) {
+ thisSproingie->life = 10;
+ thisSproingie->frame = BOOM_FRAME;
+ if ((thisSproingie->r += 0.5) > 1.0)
+ thisSproingie->r = 1.0;
+ if ((thisSproingie->g += 0.5) > 1.0)
+ thisSproingie->g = 1.0;
+ if ((thisSproingie->b += 0.5) > 1.0)
+ thisSproingie->b = 1.0;
+ }
+#if 0
+ }
+#endif
+ }
+ ++S2;
+ }
+ }
+ /* Time to disappear... */
+ if (!((thisSproingie->life == 10) &&
+ (thisSproingie->frame > FIRST_FRAME) &&
+ (thisSproingie->frame < BOOM_FRAME))) {
+ if ((--(thisSproingie->life)) < 1) {
+ thisSproingie->life = RESET_SPROINGIE_LIFE;
+ } else if (thisSproingie->life < 9) {
+ thisSproingie->frame -= 2;
+ }
+ } /* ... else wait here for frame FIRST_FRAME to come about. */
+ } else if (++(thisSproingie->life) >= 0) {
+ if (1 || t > 1) {
+ g_higher = -3 + myrand(5);
+ g_back = -2 + myrand(5);
+ } else if (t == 1) {
+ g_higher = -2 + myrand(3);
+ g_back = -1 + myrand(3);
+ } else {
+ g_higher = -1;
+ g_back = 0;
+ }
+
+ thisSproingie->x = (-g_higher - g_back);
+ thisSproingie->y = (g_higher << 1);
+ thisSproingie->z = (g_back - g_higher);
+ thisSproingie->life = NEW_SPROINGIE_LIFE;
+ thisSproingie->frame = NO_FRAME;
+ thisSproingie->r = (GLfloat) (40 + myrand(200)) / 255.0;
+ thisSproingie->g = (GLfloat) (40 + myrand(200)) / 255.0;
+ thisSproingie->b = (GLfloat) (40 + myrand(200)) / 255.0;
+
+ for (t2 = 0; t2 < si->maxsproingies; ++t2) {
+ if ((t2 != t) && (thisSproingie->x == S2->x) &&
+ (thisSproingie->y == S2->y) && (thisSproingie->z == S2->z) &&
+ (S2->life > 10) && (S2->frame < FIRST_FRAME)) {
+ /* If another is already on this place, wait. */
+ thisSproingie->life = -1;
+ }
+ ++S2;
+ }
+ }
+}
+
+static void
+NextSproingie(sp_instance *si)
+{
+ int ddx, t;
+ struct sPosColor *thisSproingie = &(si->positions[0]);
+
+ /* Although the sproingies cycle has six frames, the blocks cycle */
+ /* has twelve. After a full cycle (12 frames), re-center positions */
+ /* of sproingies */
+ if (++si->sframe > 11) {
+ si->sframe = FIRST_FRAME;
+ for (t = 0; t < si->maxsproingies; ++t) {
+ thisSproingie->x -= 1;
+ thisSproingie->y += 2;
+ thisSproingie->z -= 1;
+ ++thisSproingie;
+ }
+ }
+
+ for (t = 0; t < si->maxsproingies; ++t) {
+ AdvanceSproingie(t, si);
+ }
+
+ if (si->target_count < 0) { /* track to current target */
+ if (si->target_rx < si->rotx)
+ --si->rotx;
+ else if (si->target_rx > si->rotx)
+ ++si->rotx;
+
+ if (si->target_ry < si->roty)
+ --si->roty;
+ else if (si->target_ry > si->roty)
+ ++si->roty;
+
+ ddx = (si->target_dist - si->dist) / 8;
+ if (ddx)
+ si->dist += ddx;
+ else if (si->target_dist < si->dist)
+ --si->dist;
+ else if (si->target_dist > si->dist)
+ ++si->dist;
+
+ if ((si->target_rx == si->rotx) && (si->target_ry == si->roty) &&
+ (si->target_dist == si->dist)) {
+ si->target_count = TARGET_COUNT;
+ if (si->target_dist <= 32)
+ si->target_count >>= 2;
+ }
+ } else if (--si->target_count < 0) { /* make up new target */
+ si->target_rx = myrand(100) - 35;
+ si->target_ry = -myrand(90);
+ si->target_dist = 32 << myrand(2); /* could be 32, 64, or 128, (previously or 256) */
+
+ if (si->target_dist >= si->dist) /* no duplicate distances */
+ si->target_dist <<= 1;
+ }
+ /* Otherwise just hang loose for a while here */
+}
+
+#ifdef __AUXFUNCS__
+void
+PrintEm(void)
+{
+ int t, count = 0;
+
+ for (t = 0; t < maxsproingies; ++t) {
+ if (positions[t].life > 0)
+ ++count;
+ }
+ (void) printf("RotX: %d, RotY: %d, Dist: %d. Targets: X %d, Y %d, D %d. Visible: %d\n",
+ rotx, roty, dist, target_rx, target_ry, target_dist, count);
+}
+
+void
+ResetEm(void)
+{
+ int t;
+
+ for (t = 0; t < maxsproingies; ++t) {
+ positions[t].x = 0;
+ positions[t].y = 0;
+ positions[t].z = 0;
+ positions[t].life = -2;
+ positions[t].frame = FIRST_FRAME;
+ }
+}
+
+void
+distAdd(void)
+{
+ if (dist < (1 << 16 << 4))
+ dist <<= 1;
+}
+
+void
+distSubtract(void)
+{
+ if (dist > 1)
+ dist >>= 1;
+}
+
+void
+rotxAdd(void)
+{
+ rotx = (rotx + 5) % 360;
+}
+
+void
+rotxSubtract(void)
+{
+ rotx = (rotx - 5) % 360;
+}
+
+void
+rotyAdd(void)
+{
+ roty = (roty + 5) % 360;
+}
+
+void
+rotySubtract(void)
+{
+ roty = (roty - 5) % 360;
+}
+
+void
+rotxBAdd(void)
+{
+ rotx = (rotx + 45) % 360;
+}
+
+void
+rotxBSubtract(void)
+{
+ rotx = (rotx - 45) % 360;
+}
+
+void
+rotyBAdd(void)
+{
+ roty = (roty + 45) % 360;
+}
+
+void
+rotyBSubtract(void)
+{
+ roty = (roty - 45) % 360;
+}
+
+#endif /* __AUXFUNCS__ */
+
+static void
+RenderSproingie(int t, sp_instance * si)
+{
+ GLfloat scale, pointsize, mat_color[4] =
+ {0.0, 0.0, 0.0, 1.0};
+#ifndef HAVE_JWZGLES
+ GLdouble clipplane[4] =
+ {0.0, 1.0, 0.0, 0.0};
+#endif
+ struct sPosColor *thisSproingie = &(si->positions[t]);
+
+ if (thisSproingie->life < 1)
+ return;
+
+ glPushMatrix();
+
+ if (!si->mono) {
+ mat_color[0] = thisSproingie->r;
+ mat_color[1] = thisSproingie->g;
+ mat_color[2] = thisSproingie->b;
+ if (si->wireframe)
+ glColor3fv(mat_color);
+ else {
+ glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat_color);
+ }
+ }
+
+ if (thisSproingie->frame < FIRST_FRAME) {
+ glEnable(GL_CLIP_PLANE0);
+ glTranslatef((GLfloat) (thisSproingie->x),
+ (GLfloat) (thisSproingie->y) +
+ ((GLfloat) (thisSproingie->frame) / 9.0),
+ (GLfloat) (thisSproingie->z));
+
+#ifndef HAVE_JWZGLES
+ /* OpenGLES doesn't have this but it doesn't seem to matter */
+ clipplane[3] = ((GLdouble) (thisSproingie->frame) / 9.0) +
+ (si->wireframe ? 0.0 : 0.1);
+ glClipPlane(GL_CLIP_PLANE0, clipplane);
+#endif
+
+/** glCallList(si->sproingies[0]);*/
+/**/ renderList(si->sproingies[0], si->wireframe);
+ glDisable(GL_CLIP_PLANE0);
+ } else if (thisSproingie->frame >= BOOM_FRAME) {
+ glTranslatef((GLfloat) (thisSproingie->x) + 0.5,
+ (GLfloat) (thisSproingie->y) + 0.5,
+ (GLfloat) (thisSproingie->z) - 0.5);
+ {
+ int boom_scale = thisSproingie->frame - BOOM_FRAME;
+ if (boom_scale >= 31) boom_scale = 31;
+ scale = (GLfloat) (1 << boom_scale);
+ }
+ glScalef(scale, scale, scale);
+ if (!si->wireframe) {
+ if (!si->mono)
+ glColor3fv(mat_color);
+ glDisable(GL_LIGHTING);
+ }
+ pointsize = (GLfloat) ((BOOM_FRAME + 8) - thisSproingie->frame) -
+ (si->dist / 64.0);
+ glPointSize((pointsize < 1.0) ? 1.0 : pointsize);
+/*-
+ * PURIFY 4.0.1 reports an unitialized memory read on the next line when using
+ * MesaGL 2.2. This has been tracked to MesaGL 2.2 src/points.c line 313. */
+/** glCallList(si->SproingieBoom);*/
+/**/ renderList(si->SproingieBoom, si->wireframe);
+ glPointSize(1.0);
+ if (!si->wireframe) {
+ glEnable(GL_LIGHTING);
+ }
+ } else {
+ if (thisSproingie->direction == JUMP_LEFT) {
+ /* When the sproingie jumps to the left, the frames must be */
+ /* rotated and translated */
+ glTranslatef((GLfloat) (thisSproingie->x ),
+ (GLfloat) (thisSproingie->y ),
+ (GLfloat) (thisSproingie->z - 1));
+ glRotatef((GLfloat) - 90.0, 0.0, 1.0, 0.0);
+ if (thisSproingie->frame == LAST_FRAME) {
+ thisSproingie->x -= 0;
+ thisSproingie->y -= 1;
+ thisSproingie->z += 1;
+ }
+ } else {
+ glTranslatef((GLfloat) (thisSproingie->x),
+ (GLfloat) (thisSproingie->y),
+ (GLfloat) (thisSproingie->z));
+ glRotatef((GLfloat) - 0.0, 0.0, 1.0, 0.0);
+ if (thisSproingie->frame == LAST_FRAME) {
+ thisSproingie->x += 1;
+ thisSproingie->y -= 1;
+ thisSproingie->z -= 0;
+ }
+ }
+/* } */
+/** glCallList(si->sproingies[thisSproingie->frame]);*/
+/**/ renderList(si->sproingies[thisSproingie->frame], si->wireframe);
+
+ /* Every 6 frame cycle... */
+ if (thisSproingie->frame == LAST_FRAME) {
+ /* ...check if the sproingies have gone out of the bricks */
+ if (((thisSproingie->x - thisSproingie->z == 6) &&
+ (2*thisSproingie->x + thisSproingie->y == 6)) ||
+ ((thisSproingie->z - thisSproingie->x == 5) &&
+ (2*thisSproingie->x + thisSproingie->y == -5))) {
+ /* If they have, then they die */
+ if (thisSproingie->life > 0 && thisSproingie->frame < BOOM_FRAME && thisSproingie->frame > FIRST_FRAME) {
+ thisSproingie->frame = BOOM_FRAME;
+ }
+ } else {
+ /* If not, they choose a direction for the next hop */
+ if (smart_sproingies) {
+ if ((thisSproingie->x - thisSproingie->z == 5) &&
+ (2*thisSproingie->x + thisSproingie->y == 5)) {
+ thisSproingie->direction = JUMP_LEFT;
+ } else if ((thisSproingie->z - thisSproingie->x == 4) &&
+ (2*thisSproingie->x + thisSproingie->y == -4)) {
+ thisSproingie->direction = JUMP_RIGHT;
+ } else {
+ thisSproingie->direction = myrand(2);
+ }
+ } else {
+ thisSproingie->direction = myrand(2);
+ }
+ }
+ }
+ }
+
+ glPopMatrix();
+
+}
+
+static void
+ComputeGround(sp_instance * si)
+{
+ int g_higher, g_back, g_width, g_height;
+
+ /* higher: x-1, y+2, z-1 */
+ /* back: x-1, y, z+1 */
+
+ if (si->groundlevel == 0) {
+ g_back = 2;
+ g_width = 5;
+ } else if (si->groundlevel == 1) {
+ g_back = 4;
+ g_width = 8;
+ } else {
+ g_back = 8;
+ g_width = 16;
+ }
+
+ if ((g_higher = si->dist >> 3) < 4)
+ g_higher = 4;
+ if (g_higher > 16)
+ g_higher = 16;
+ g_height = g_higher << 1;
+
+ if (si->rotx < -10)
+ g_higher += (g_higher >> 2);
+ else if (si->rotx > 10)
+ g_higher -= (g_higher >> 2);
+
+#if 0
+ if (si->dist > 128) {
+ ++g_higher;
+ ++g_back;
+ g_back <<= 1;
+ } else if (si->dist > 64) {
+ ++g_higher;
+ ++g_back;
+ } else if (si->dist > 32) {
+ /* nothing special */
+ } else {
+ if (g_higher > 2) {
+ g_higher = g_back = 4;
+ }
+ }
+#endif
+
+ /* startx, starty, startz, width, height */
+ LayGround((-g_higher - g_back), (g_higher << 1), (g_back - g_higher),
+ (g_width), (g_height), si);
+}
+
+void
+DisplaySproingies(sp_instance *si)
+{
+ int t;
+ GLfloat position[] =
+ {8.0, 5.0, -2.0, 0.1};
+
+ if (si->wireframe)
+ glClear(GL_COLOR_BUFFER_BIT);
+ else
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glTranslatef(0.0, 0.0, -(GLfloat) (si->dist) / 16.0); /* viewing transform */
+ glRotatef((GLfloat) si->rotx, 1.0, 0.0, 0.0);
+ glRotatef((GLfloat) si->roty, 0.0, 1.0, 0.0);
+
+ if (!si->wireframe)
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+
+#if 0 /* Show light pos */
+ glPushMatrix();
+ glTranslatef(position[0], position[1], position[2]);
+ glColor3f(1.0, 1.0, 1.0);
+ if (!si->wireframe) {
+ glDisable(GL_LIGHTING);
+ }
+ glCallList(si->SproingieBoom);
+ if (!si->wireframe) {
+ glEnable(GL_LIGHTING);
+ }
+ glPopMatrix();
+#endif
+
+ glTranslatef((GLfloat) si->sframe * (-1.0 / 12.0) - 0.75,
+ (GLfloat) si->sframe * (2.0 / 12.0) - 0.5,
+ (GLfloat) si->sframe * (-1.0 / 12.0) + 0.75);
+
+ if (si->wireframe)
+ ComputeGround(si);
+
+ for (t = 0; t < si->maxsproingies; ++t) {
+ RenderSproingie(t, si);
+ }
+
+ if (!si->wireframe)
+ ComputeGround(si);
+
+ glPopMatrix();
+ glFlush();
+}
+
+void
+NextSproingieDisplay(sp_instance *si)
+{
+ NextSproingie(si);
+/* if (pause) usleep(pause); don't do this! -jwz */
+ DisplaySproingies(si);
+}
+
+void
+ReshapeSproingies(int width, int height)
+{
+ double h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport(0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(65.0, 1/h, 0.1, 2000.0); /* was 200000.0 */
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+void
+CleanupSproingies(sp_instance *si)
+{
+ if (! si) return;
+
+/*
+ int t;
+ if (si->SproingieBoom) {
+ for (t = 0; t < 6; ++t)
+ glDeleteLists(si->sproingies[t], 1);
+
+ glDeleteLists(si->TopsSides, 2);
+ glDeleteLists(si->SproingieBoom, 1);
+
+ si->SproingieBoom = 0;
+ }
+*/
+ if (si->TopsSides) {
+ glDeleteLists(si->TopsSides, 2);
+ }
+ if (si->positions) {
+ (void) free((void *) (si->positions));
+ si->positions = NULL;
+ }
+}
+
+void
+InitSproingies(sp_instance *si, int wfmode, int grnd, int mspr, int smrtspr,
+ int mono)
+{
+ GLfloat ambient[] =
+ {0.2, 0.2, 0.2, 1.0};
+ GLfloat position[] =
+ {10.0, 1.0, 1.0, 10.0};
+ GLfloat mat_diffuse[] =
+ {0.6, 0.6, 0.6, 1.0};
+ GLfloat mat_specular[] =
+ {0.8, 0.8, 0.8, 1.0};
+ GLfloat mat_shininess[] =
+ {50.0};
+
+ int t;
+
+ memset (si, 0, sizeof(*si));
+
+ if (mspr < 0)
+ mspr = 0;
+ if (mspr >= MAXSPROING)
+ mspr = MAXSPROING - 1;
+
+ smart_sproingies = smrtspr;
+
+ si->rotx = 0;
+ si->roty = -45;
+ si->dist = (16 << 2);
+ si->sframe = 0;
+ si->target_count = 0;
+ si->mono = mono;
+
+ si->wireframe = si->flatshade = 0;
+
+ if (wfmode == 2)
+ si->flatshade = 1;
+ else if (wfmode)
+ si->wireframe = 1;
+
+ si->groundlevel = grnd;
+ si->maxsproingies = mspr;
+
+ if (si->maxsproingies) {
+ si->positions = (struct sPosColor *) calloc(si->maxsproingies,
+ sizeof (struct sPosColor));
+
+ if (!(si->positions))
+ si->maxsproingies = 0;
+ }
+ for (t = 0; t < si->maxsproingies; ++t) {
+ si->positions[t].x = 0;
+ si->positions[t].y = 0;
+ si->positions[t].z = 0;
+ si->positions[t].life = (-t * ((si->maxsproingies > 19) ? 1 : 4)) - 2;
+ si->positions[t].frame = FIRST_FRAME;
+ si->positions[t].direction = myrand(2);
+ }
+
+#if 0 /* Test boom */
+ si->positions[0].x = 0;
+ si->positions[0].y = 0;
+ si->positions[0].z = 0;
+ si->positions[0].life = 10;
+ si->positions[0].frame = BOOM_FRAME;
+ si->positions[0].r = 0.656863;
+ si->positions[0].g = 1.0;
+ si->positions[0].b = 0.656863;
+#endif
+
+ if (!(si->TopsSides = build_TopsSides(si->wireframe)))
+ (void) fprintf(stderr, "build_TopsSides\n");
+/*
+ if (!(si->sproingies[0] = BuildLWO(si->wireframe, &LWO_s1_1)))
+ (void) fprintf(stderr, "BuildLWO - 1\n");
+ if (!(si->sproingies[1] = BuildLWO(si->wireframe, &LWO_s1_2)))
+ (void) fprintf(stderr, "BuildLWO - 2\n");
+ if (!(si->sproingies[2] = BuildLWO(si->wireframe, &LWO_s1_3)))
+ (void) fprintf(stderr, "BuildLWO - 3\n");
+ if (!(si->sproingies[3] = BuildLWO(si->wireframe, &LWO_s1_4)))
+ (void) fprintf(stderr, "BuildLWO - 4\n");
+ if (!(si->sproingies[4] = BuildLWO(si->wireframe, &LWO_s1_5)))
+ (void) fprintf(stderr, "BuildLWO - 5\n");
+ if (!(si->sproingies[5] = BuildLWO(si->wireframe, &LWO_s1_6)))
+ (void) fprintf(stderr, "BuildLWO - 6\n");
+
+ if (!(si->SproingieBoom = BuildLWO(si->wireframe, &LWO_s1_b)))
+ (void) fprintf(stderr, "BuildLWO - b\n");
+*/
+ si->sproingies[0]=s1_1;
+ si->sproingies[1]=s1_2;
+ si->sproingies[2]=s1_3;
+ si->sproingies[3]=s1_4;
+ si->sproingies[4]=s1_5;
+ si->sproingies[5]=s1_6;
+ si->SproingieBoom=s1_b;
+
+ if (si->wireframe) {
+ glShadeModel(GL_FLAT);
+ glDisable(GL_LIGHTING);
+ } else {
+ if (si->flatshade) {
+ glShadeModel(GL_FLAT);
+ position[0] = 1.0;
+ position[3] = 0.0;
+ }
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_DEPTH_TEST);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);
+
+ /* glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE); */
+ glCullFace(GL_BACK);
+ glEnable(GL_CULL_FACE);
+
+ glFrontFace(GL_CW);
+ /* glEnable(GL_NORMALIZE); */
+ }
+}
+
+#endif /* USE_GL */
+
+/* End of sproingies.c */
+
diff --git a/hacks/glx/sproingies.h b/hacks/glx/sproingies.h
new file mode 100644
index 0000000..29a79ba
--- /dev/null
+++ b/hacks/glx/sproingies.h
@@ -0,0 +1,43 @@
+/*-
+ * sproingies.c - Copyright 1996 by Ed Mackey, freely distributable.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Revision History:
+ * See sproingiewrap.c
+ */
+
+struct sPosColor { /* Position and color of the sproingie */
+ int x, y, z; /* Position */
+ int frame; /* Current frame (0-5) */
+ int life; /* Life points */
+ GLfloat r, g, b; /* Color RGB */
+ int direction; /* Direction of next hop (left or right) */
+};
+
+typedef struct {
+ int rotx, roty, dist, wireframe, flatshade, groundlevel,
+ maxsproingies, mono;
+ int sframe, target_rx, target_ry, target_dist, target_count;
+ const struct gllist *sproingies[6];
+ const struct gllist *SproingieBoom;
+ GLuint TopsSides;
+ struct sPosColor *positions;
+} sp_instance;
+
+extern void DisplaySproingies(sp_instance *si);
+extern void NextSproingieDisplay(sp_instance *si);
+extern void ReshapeSproingies(int w, int h);
+extern void CleanupSproingies(sp_instance *si);
+extern void InitSproingies(sp_instance *, int wfmode, int grnd, int mspr,
+ int smrtspr, int mono);
diff --git a/hacks/glx/sproingies.man b/hacks/glx/sproingies.man
new file mode 100644
index 0000000..5150fca
--- /dev/null
+++ b/hacks/glx/sproingies.man
@@ -0,0 +1,68 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+sproingies - Q-Bert meets Marble Madness!
+.SH SYNOPSIS
+.B sproingies
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-count \fInumber\fP]
+[\-delay \fInumber\fP]
+[\-size \fInumber\fP]
+[\-no\-fall]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Q-Bert meets Marble Madness!
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-count \fInumber\fP
+How many sproingies to draw at once. Default: 5.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 25000 (0.03 seconds.).
+.TP 8
+.B \-size \fInumber\fP
+How much to scale the image down. Default 0 (full screen.)
+.TP 8
+.B \-no\-fall
+Make sproingies "smart", so they do not fall down the edge.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Ed Mackey. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Ed Mackey. Some additional code by Sergio Gutirrez "Sergut".
diff --git a/hacks/glx/sproingiewrap.c b/hacks/glx/sproingiewrap.c
new file mode 100644
index 0000000..7089f9c
--- /dev/null
+++ b/hacks/glx/sproingiewrap.c
@@ -0,0 +1,231 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* sproingiewrap.c - sproingies wrapper */
+
+#if 0
+static const char sccsid[] = "@(#)sproingiewrap.c 4.07 97/11/24 xlockmore";
+#endif
+
+/*-
+ * sproingiewrap.c - Copyright 1996 Sproingie Technologies Incorporated.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Programming: Ed Mackey, http://www.netaxs.com/~emackey/
+ * Gordon Wrigley, gdw33@student.canterbury.ac.nz
+ * Sergio Gutirrez "Sergut", sergut@gmail.com
+ * Sproingie 3D objects modeled by: Al Mackey, al@iam.com
+ * (using MetaNURBS in NewTek's Lightwave 3D v5).
+ *
+ * Revision History:
+ * 01-Sep-06: Make the sproingies select a new direction after each hop
+ * (6 frames); if they fall towards the edge, they explode.
+ * (TODO: let them fall for a time before they explode or
+ * disappear) [sergut]
+ * 13-Dec-02: Changed triangle normals into vertex normals to give a smooth
+ * apperance and moved the sproingies from Display Lists to
+ * Vertex Arrays, still need to do this for the TopsSides.
+ * [gordon]
+ * 26-Apr-97: Added glPointSize() calls around explosions, plus other fixes.
+ * 28-Mar-97: Added size support.
+ * 22-Mar-97: Updated to use glX interface instead of xmesa one.
+ * Also, support for multiscreens added.
+ * 20-Mar-97: Updated for xlockmore v4.02alpha7 and higher, using
+ * xlockmore's built-in Mesa/OpenGL support instead of
+ * my own. Submitted for inclusion in xlockmore.
+ * 09-Dec-96: Written.
+ */
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 30000 \n" \
+ "*count: 8 \n" \
+ "*size: 0 \n" \
+ "*showFPS: False \n" \
+ "*fpsTop: True \n" \
+ "*wireframe: False \n"
+
+# define release_sproingies 0
+# define sproingies_handle_event 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#define DEF_SMART_SPROINGIES "True" /* Smart sproingies do not fall down the edge */
+
+#include "sproingies.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+static XrmOptionDescRec opts[] = {
+ {"-fall", ".smartSproingies", XrmoptionNoArg, "False"},
+ {"-no-fall", ".smartSproingies", XrmoptionNoArg, "True"},
+};
+
+static int smrt_spr;
+
+static argtype vars[] = {
+ {&smrt_spr, "smartSproingies", "Boolean", DEF_SMART_SPROINGIES, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt sproingies_opts =
+{countof(opts), opts, countof(vars), vars, NULL};
+
+#ifdef USE_MODULES
+ModStruct sproingies_description =
+{"sproingies", "init_sproingies", "draw_sproingies", NULL,
+ "refresh_sproingies", "init_sproingies", "free_sproingies", &sproingies_opts,
+ 1000, 5, 0, 400, 4, 1.0, "",
+ "Shows Sproingies! Nontoxic. Safe for pets and small children", 0, NULL};
+
+#endif
+
+#define MINSIZE 32
+
+#include <time.h>
+
+typedef struct {
+ GLfloat view_rotx, view_roty, view_rotz;
+ GLint gear1, gear2, gear3;
+ GLfloat angle;
+ GLuint limit;
+ GLuint count;
+ GLXContext *glx_context;
+ int mono;
+ Window window;
+ sp_instance si;
+} sproingiesstruct;
+
+static sproingiesstruct *sproingies = NULL;
+
+
+ENTRYPOINT void
+init_sproingies (ModeInfo * mi)
+{
+ Window window = MI_WINDOW(mi);
+ int screen = MI_SCREEN(mi);
+
+ int count = MI_COUNT(mi);
+ int size = MI_SIZE(mi);
+
+ sproingiesstruct *sp;
+ int wfmode = 0, grnd = 0, mspr, w, h;
+
+ MI_INIT (mi, sproingies);
+ sp = &sproingies[screen];
+
+ sp->mono = (MI_IS_MONO(mi) ? 1 : 0);
+ sp->window = window;
+ if ((sp->glx_context = init_GL(mi)) != NULL) {
+
+ if (MI_IS_WIREFRAME(mi))
+ wfmode = 1;
+
+ if (grnd > 2)
+ grnd = 2;
+
+ mspr = count;
+ if (mspr > 100)
+ mspr = 100;
+
+ /* wireframe, ground, maxsproingies */
+ InitSproingies(&sp->si, wfmode, grnd, mspr, smrt_spr, sp->mono);
+
+ /* Viewport is specified size if size >= MINSIZE && size < screensize */
+ if (size == 0) {
+ w = MI_WIDTH(mi);
+ h = MI_HEIGHT(mi);
+ } else if (size < MINSIZE) {
+ w = MINSIZE;
+ h = MINSIZE;
+ } else {
+ w = (size > MI_WIDTH(mi)) ? MI_WIDTH(mi) : size;
+ h = (size > MI_HEIGHT(mi)) ? MI_HEIGHT(mi) : size;
+ }
+
+ glViewport((MI_WIDTH(mi) - w) / 2, (MI_HEIGHT(mi) - h) / 2, w, h);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(65.0, (GLfloat) w / (GLfloat) h, 0.1, 2000.0); /* was 200000.0 */
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ DisplaySproingies(&sp->si);
+
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+/* ARGSUSED */
+ENTRYPOINT void
+draw_sproingies (ModeInfo * mi)
+{
+ sproingiesstruct *sp = &sproingies[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!sp->glx_context)
+ return;
+
+ glDrawBuffer(GL_BACK);
+ glXMakeCurrent(display, window, *(sp->glx_context));
+
+ glPushMatrix();
+ glRotatef(current_device_rotation(), 0, 0, 1);
+ NextSproingieDisplay(&sp->si); /* It will swap. */
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+refresh_sproingies(ModeInfo * mi)
+{
+ /* No need to do anything here... The whole screen is updated
+ * every frame anyway. Otherwise this would be just like
+ * draw_sproingies, above, but replace NextSproingieDisplay(...)
+ * with DisplaySproingies(...).
+ */
+}
+#endif /* !STANDALONE */
+
+ENTRYPOINT void
+reshape_sproingies (ModeInfo *mi, int w, int h)
+{
+ ReshapeSproingies(w, h);
+}
+
+
+ENTRYPOINT void
+free_sproingies (ModeInfo * mi)
+{
+ sproingiesstruct *sp = &sproingies[MI_SCREEN(mi)];
+
+ if (sp->glx_context) {
+
+ glXMakeCurrent(MI_DISPLAY(mi), sp->window, *(sp->glx_context));
+ CleanupSproingies(&sp->si);
+ }
+}
+
+XSCREENSAVER_MODULE ("Sproingies", sproingies)
+
+#endif /* USE_GL */
+
+/* End of sproingiewrap.c */
diff --git a/hacks/glx/stairs.c b/hacks/glx/stairs.c
new file mode 100644
index 0000000..7b6fbe2
--- /dev/null
+++ b/hacks/glx/stairs.c
@@ -0,0 +1,589 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* stairs --- Infinite Stairs, and Escher-like scene. */
+
+#if 0
+static const char sccsid[] = "@(#)stairs.c 4.07 97/11/24 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * This mode shows some interesting scenes that are impossible OR very
+ * weird to build in the real universe. Much of the scenes are inspirated
+ * on Mauritz Cornelis stairs's works which derivated the mode's name.
+ * M.C. Escher (1898-1972) was a dutch artist and many people prefer to
+ * say he was a mathematician.
+ *
+ * Thanks goes to Brian Paul for making it possible and inexpensive to use
+ * OpenGL at home.
+ *
+ * Since I'm not a native English speaker, my apologies for any grammatical
+ * mistake.
+ *
+ * My e-mail address is
+ * m-vianna@usa.net
+ *
+ * Marcelo F. Vianna (Jun-01-1997)
+ *
+ * Revision History:
+ * 07-Jan-98: This would be a scene for the escher mode, but now escher mode
+ * was splitted in different modes for each scene. This is the
+ * initial release and is not working yet.
+ * Marcelo F. Vianna.
+ *
+ */
+
+/*-
+ * Texture mapping is only available on RGBA contexts, Mono and color index
+ * visuals DO NOT support texture mapping in OpenGL.
+ *
+ * BUT Mesa do implements RGBA contexts in pseudo color visuals, so texture
+ * mapping shuld work on PseudoColor, DirectColor, TrueColor using Mesa. Mono
+ * is not officially supported for both OpenGL and Mesa, but seems to not crash
+ * Mesa.
+ *
+ * In real OpenGL, PseudoColor DO NOT support texture map (as far as I know).
+ */
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n"
+
+# define release_stairs 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#if 0
+#include "e_textures.h"
+#else
+#include "ximage-loader.h"
+#include "images/gen/wood_png.h"
+#endif
+
+#include "sphere.h"
+#include "gltrackball.h"
+
+ENTRYPOINT ModeSpecOpt stairs_opts =
+{0, NULL, 0, NULL, NULL};
+
+#ifdef USE_MODULES
+ModStruct stairs_description =
+{"stairs", "init_stairs", "draw_stairs", NULL,
+ "draw_stairs", "change_stairs", "free_stairs", &stairs_opts,
+ 1000, 1, 1, 1, 4, 1.0, "",
+ "Shows Infinite Stairs, an Escher-like scene", 0, NULL};
+
+#endif
+
+#define Scale4Window 0.3
+#define Scale4Iconic 0.4
+
+#define sqr(A) ((A)*(A))
+
+#ifndef Pi
+#define Pi M_PI
+#endif
+
+/*************************************************************************/
+
+typedef struct {
+ GLint WindH, WindW;
+ GLfloat step;
+ int rotating;
+ int AreObjectsDefined[1];
+ int sphere_position;
+ int sphere_tick;
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+ GLuint objects;
+} stairsstruct;
+
+static const float front_shininess[] = {60.0};
+static const float front_specular[] = {0.7, 0.7, 0.7, 1.0};
+static const float ambient[] = {0.0, 0.0, 0.0, 1.0};
+static const float diffuse[] = {1.0, 1.0, 1.0, 1.0};
+static const float position0[] = {1.0, 1.0, 1.0, 0.0};
+static const float position1[] = {-1.0, -1.0, 1.0, 0.0};
+static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
+static const float lmodel_twoside[] = {GL_TRUE};
+
+static const float MaterialYellow[] = {0.7, 0.7, 0.0, 1.0};
+static const float MaterialWhite[] = {0.7, 0.7, 0.7, 1.0};
+
+static const float ball_positions[] = {
+ -3.0, 3.0, 1.0,
+ -3.0, 2.8, 2.0,
+ -3.0, 2.6, 3.0,
+
+ -2.0, 2.4, 3.0,
+ -1.0, 2.2, 3.0,
+ 0.0, 2.0, 3.0,
+ 1.0, 1.8, 3.0,
+ 2.0, 1.6, 3.0,
+
+ 2.0, 1.5, 2.0,
+ 2.0, 1.4, 1.0,
+ 2.0, 1.3, 0.0,
+ 2.0, 1.2, -1.0,
+ 2.0, 1.1, -2.0,
+
+ 1.0, 0.9, -2.0,
+ 0.0, 0.7, -2.0,
+ -1.0, 0.5, -2.0,
+};
+
+#define NPOSITIONS ((sizeof ball_positions) / (sizeof ball_positions[0]) / 3)
+#define SPHERE_TICKS 32
+
+static stairsstruct *stairs = NULL;
+
+static int
+draw_block(GLfloat width, GLfloat height, GLfloat thickness)
+{
+ int polys = 0;
+ glFrontFace(GL_CCW);
+ glBegin(GL_QUADS);
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(0, 0);
+ glVertex3f(-width, -height, thickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(width, -height, thickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(width, height, thickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-width, height, thickness);
+ polys++;
+ glNormal3f(0, 0, -1);
+ glTexCoord2f(0, 0);
+ glVertex3f(-width, height, -thickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(width, height, -thickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(width, -height, -thickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-width, -height, -thickness);
+ polys++;
+ glNormal3f(0, 1, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(-width, height, thickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(width, height, thickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(width, height, -thickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-width, height, -thickness);
+ polys++;
+ glNormal3f(0, -1, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(-width, -height, -thickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(width, -height, -thickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(width, -height, thickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-width, -height, thickness);
+ polys++;
+ glNormal3f(1, 0, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(width, -height, thickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(width, -height, -thickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(width, height, -thickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(width, height, thickness);
+ polys++;
+ glNormal3f(-1, 0, 0);
+ glTexCoord2f(0, 0);
+ glVertex3f(-width, height, thickness);
+ glTexCoord2f(1, 0);
+ glVertex3f(-width, height, -thickness);
+ glTexCoord2f(1, 1);
+ glVertex3f(-width, -height, -thickness);
+ glTexCoord2f(0, 1);
+ glVertex3f(-width, -height, thickness);
+ polys++;
+ glEnd();
+ return polys;
+}
+
+static void
+draw_stairs_internal(ModeInfo * mi)
+{
+ GLfloat X;
+
+ mi->polygon_count = 0;
+
+ glPushMatrix();
+ glPushMatrix();
+ glTranslatef(-3.0, 0.1, 2.0);
+ for (X = 0; X < 2; X++) {
+ mi->polygon_count += draw_block(0.5, 2.7 + 0.1 * X, 0.5);
+ glTranslatef(0.0, 0.1, -1.0);
+ }
+ glPopMatrix();
+ glTranslatef(-3.0, 0.0, 3.0);
+ glPushMatrix();
+
+ for (X = 0; X < 6; X++) {
+ mi->polygon_count += draw_block(0.5, 2.6 - 0.1 * X, 0.5);
+ glTranslatef(1.0, -0.1, 0.0);
+ }
+ glTranslatef(-1.0, -0.9, -1.0);
+ for (X = 0; X < 5; X++) {
+ mi->polygon_count += draw_block(0.5, 3.0 - 0.1 * X, 0.5);
+ glTranslatef(0.0, 0.0, -1.0);
+ }
+ glTranslatef(-1.0, -1.1, 1.0);
+ for (X = 0; X < 3; X++) {
+ mi->polygon_count += draw_block(0.5, 3.5 - 0.1 * X, 0.5);
+ glTranslatef(-1.0, -0.1, 0.0);
+ }
+ glPopMatrix();
+ glPopMatrix();
+}
+
+/*#define DEBUG*/
+/*#define DEBUG_PATH*/
+
+static int
+draw_sphere(int pos, int tick)
+{
+ int pos2 = (pos+1) % NPOSITIONS;
+ GLfloat x1 = ball_positions[pos*3];
+ GLfloat y1 = ball_positions[pos*3+1];
+ GLfloat z1 = ball_positions[pos*3+2];
+ GLfloat x2 = ball_positions[pos2*3];
+ GLfloat y2 = ball_positions[pos2*3+1];
+ GLfloat z2 = ball_positions[pos2*3+2];
+ GLfloat frac = tick / (GLfloat) SPHERE_TICKS;
+ GLfloat x = x1 + (x2 - x1) * frac;
+ GLfloat y = y1 + (y2 - y1) * frac + (2 * sin (M_PI * frac));
+ GLfloat z = z1 + (z2 - z1) * frac;
+ int polys = 0;
+
+ glPushMatrix();
+
+# ifdef DEBUG_PATH
+ glVertex3f(x, y, z);
+ if (tick == 0) {
+ glVertex3f(x, y-7.5, z);
+ glVertex3f(x, y, z); glVertex3f(x, y, z-0.6);
+ glVertex3f(x, y, z); glVertex3f(x, y, z+0.6);
+ glVertex3f(x, y, z); glVertex3f(x+0.6, y, z);
+ glVertex3f(x, y, z); glVertex3f(x-0.6, y, z);
+ glVertex3f(x, y, z);
+ }
+
+# else /* !DEBUG_PATH */
+ y += 0.5;
+ glTranslatef(x, y, z);
+
+ glScalef (0.5, 0.5, 0.5);
+
+ /* make ball a little smaller on the gap to obscure distance */
+ if (pos == NPOSITIONS-1)
+ glScalef (0.95, 0.95, 0.95);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialYellow);
+ glDisable (GL_TEXTURE_2D);
+ glShadeModel(GL_SMOOTH);
+ glFrontFace(GL_CCW);
+ polys += unit_sphere (32, 32, False);
+ glShadeModel(GL_FLAT);
+ glEnable (GL_TEXTURE_2D);
+#endif /* !DEBUG_PATH */
+
+ glPopMatrix();
+ return polys;
+}
+
+
+
+ENTRYPOINT void
+reshape_stairs (ModeInfo * mi, int width, int height)
+{
+ stairsstruct *sp = &stairs[MI_SCREEN(mi)];
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width;
+ y = -height/2;
+ }
+
+ glViewport(0, y, sp->WindW = (GLint) width, sp->WindH = (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0);
+ glMatrixMode(GL_MODELVIEW);
+ if (width >= 1024) {
+ glLineWidth(3);
+ glPointSize(3);
+ } else if (width >= 512) {
+ glLineWidth(2);
+ glPointSize(2);
+ } else {
+ glLineWidth(1);
+ glPointSize(1);
+ }
+}
+
+ENTRYPOINT Bool
+stairs_handle_event (ModeInfo *mi, XEvent *event)
+{
+ stairsstruct *sp = &stairs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, sp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &sp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ gltrackball_reset (sp->trackball, 0, 0);
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+static void
+pinit(ModeInfo *mi)
+{
+ /* int status; */
+ glClearDepth(1.0);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, position0);
+ glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT1, GL_POSITION, position1);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+ glEnable(GL_NORMALIZE);
+ glCullFace(GL_BACK);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
+ glShadeModel(GL_FLAT);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_CULL_FACE);
+
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+#if 0
+ clear_gl_error();
+ status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
+ WoodTextureWidth, WoodTextureHeight,
+ GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+ if (status)
+ {
+ const char *s = (char *) gluErrorString (status);
+ fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+ progname, WoodTextureWidth, WoodTextureHeight,
+ (s ? s : "(unknown)"));
+ exit (1);
+ }
+ check_gl_error("mipmapping");
+#else
+ {
+ XImage *img = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ wood_png, sizeof(wood_png));
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ img->width, img->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, img->data);
+ check_gl_error("texture");
+ XDestroyImage (img);
+ }
+#endif
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
+}
+
+ENTRYPOINT void
+init_stairs (ModeInfo * mi)
+{
+ int screen = MI_SCREEN(mi);
+ stairsstruct *sp;
+
+ MI_INIT (mi, stairs);
+ sp = &stairs[screen];
+
+ sp->step = 0.0;
+ sp->rotating = 0;
+ sp->sphere_position = NRAND(NPOSITIONS);
+ sp->sphere_tick = 0;
+
+ if ((sp->glx_context = init_GL(mi)) != NULL) {
+
+ reshape_stairs(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glDrawBuffer(GL_BACK);
+ if (!glIsList(sp->objects))
+ sp->objects = glGenLists(1);
+ pinit(mi);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+
+ sp->trackball = gltrackball_init (False);
+}
+
+ENTRYPOINT void
+draw_stairs (ModeInfo * mi)
+{
+ stairsstruct *sp = &stairs[MI_SCREEN(mi)];
+ GLfloat rot = current_device_rotation();
+
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!sp->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(sp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+
+ glRotatef(rot, 0, 0, 1);
+
+ glTranslatef(0.0, 0.0, -10.0);
+
+ if (!MI_IS_ICONIC(mi)) {
+ glScalef(Scale4Window * sp->WindH / sp->WindW, Scale4Window, Scale4Window);
+ } else {
+ glScalef(Scale4Iconic * sp->WindH / sp->WindW, Scale4Iconic, Scale4Iconic);
+ }
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ if (rot != 0 && rot != 180 && rot != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ gltrackball_rotate (sp->trackball);
+
+ glTranslatef(0, 0.5, 0);
+ glRotatef(44.5, 1, 0, 0);
+ glRotatef(50, 0, 1, 0);
+
+ if (!sp->rotating) {
+ if ((LRAND() % 500) == 0)
+ sp->rotating = (LRAND() & 1) ? 1 : -1;
+ }
+
+ if (sp->rotating) {
+ glRotatef(sp->rotating * sp->step, 0, 1, 0);
+ if (sp->step >= 360) {
+ sp->rotating = 0;
+ sp->step = 0;
+ }
+
+# ifndef DEBUG
+ if (!sp->button_down_p)
+ sp->step += 2;
+# endif /* DEBUG */
+ }
+
+ draw_stairs_internal(mi);
+
+
+# ifdef DEBUG
+ {
+ int i, j;
+# ifdef DEBUG_PATH
+ glDisable(GL_LIGHTING);
+ glDisable(GL_TEXTURE_2D);
+ glBegin (GL_LINE_LOOP);
+# endif /* DEBUG_PATH */
+ for (i = 0; i < NPOSITIONS; i ++)
+ for (j = 0; j < SPHERE_TICKS; j++)
+ mi->polygon_count += draw_sphere(i, j);
+# ifdef DEBUG_PATH
+ glEnd();
+ glEnable(GL_LIGHTING);
+ glEnable(GL_TEXTURE_2D);
+# endif /* DEBUG_PATH */
+ }
+#else /* !DEBUG */
+ mi->polygon_count += draw_sphere(sp->sphere_position, sp->sphere_tick);
+#endif /* !DEBUG */
+
+ if (sp->button_down_p)
+ ;
+ else if (++sp->sphere_tick >= SPHERE_TICKS)
+ {
+ sp->sphere_tick = 0;
+ if (++sp->sphere_position >= NPOSITIONS)
+ sp->sphere_position = 0;
+ }
+
+ glPopMatrix();
+
+ if (mi->fps_p) do_fps (mi);
+ glFlush();
+
+ glXSwapBuffers(display, window);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+change_stairs (ModeInfo * mi)
+{
+ stairsstruct *sp = &stairs[MI_SCREEN(mi)];
+
+ if (!sp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sp->glx_context));
+ pinit();
+}
+#endif /* !STANDALONE */
+
+ENTRYPOINT void
+free_stairs (ModeInfo * mi)
+{
+ stairsstruct *sp = &stairs[MI_SCREEN(mi)];
+ if (glIsList(sp->objects)) {
+ glDeleteLists(sp->objects, 1);
+ }
+}
+
+XSCREENSAVER_MODULE ("Stairs", stairs)
+
+#endif
diff --git a/hacks/glx/stairs.man b/hacks/glx/stairs.man
new file mode 100644
index 0000000..898f7ff
--- /dev/null
+++ b/hacks/glx/stairs.man
@@ -0,0 +1,56 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+stairs - Escher's infinite staircase.
+.SH SYNOPSIS
+.B stairs
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+This draws an "infinite" staircase.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Marcelo Vianna. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Marcelo Vianna.
diff --git a/hacks/glx/starwars.c b/hacks/glx/starwars.c
new file mode 100644
index 0000000..1efcd15
--- /dev/null
+++ b/hacks/glx/starwars.c
@@ -0,0 +1,1075 @@
+/* starwars, Copyright (c) 1998-2018 Jamie Zawinski <jwz@jwz.org> and
+ * Claudio Matsuoka <claudio@helllabs.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Star Wars -- Phosphor meets a well-known scroller from a galaxy far,
+ * far away.
+ *
+ * Feb 2000 Claudio Matsuoka First version.
+ * Jan 2001 Jamie Zawinski Rewrote large sections to add the ability to
+ * run a subprocess, customization of the font
+ * size and other parameters, etc.
+ * Feb 2001 jepler@inetnebr.com Added anti-aliased lines, and fade-to-black.
+ * Feb 2005 Jamie Zawinski Added texture fonts.
+ *
+ *
+ * For the fanboys:
+ *
+ * starwars -program 'cat starwars.txt' -columns 25 -no-wrap
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include <ctype.h>
+#include <sys/stat.h>
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#include "starwars.h"
+#define DEFAULTS "*delay: 40000 \n" \
+ "*showFPS: False \n" \
+ "*fpsTop: True \n" \
+ "*usePty: False \n" \
+ "*texFontCacheSize: 300\n" \
+ "*font: " DEF_FONT "\n" \
+ "*textLiteral: " DEF_TEXT "\n" \
+ "*program: xscreensaver-text --cols 0" /* don't wrap */
+
+# define release_sws 0
+# define sws_handle_event xlockmore_no_events
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "textclient.h"
+#include "utf8wc.h"
+
+#ifdef USE_GL /* whole file */
+
+/* Should be in <GL/glext.h> */
+# ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+# endif
+# ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+# define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
+
+#define DEF_LINES "125"
+#define DEF_STEPS "35"
+#define DEF_SPIN "0.03"
+#define DEF_SIZE "-1"
+#define DEF_COLUMNS "-1"
+#define DEF_LINE_WRAP "True"
+#define DEF_ALIGNMENT "Center"
+#define DEF_SMOOTH "True"
+#define DEF_THICK "True"
+#define DEF_FADE "True"
+#define DEF_TEXTURES "True"
+#define DEF_DEBUG "False"
+
+#define DEF_FONT "-*-utopia-bold-r-normal-*-*-360-*-*-*-*-*-*"
+
+#define TAB_WIDTH 8
+
+#define MAX_THICK_LINES 25
+#define FONT_WEIGHT 14
+
+#ifndef HAVE_MOBILE
+# define KEEP_ASPECT /* Letterboxing looks dumb on iPhone. */
+#endif
+
+#include "texfont.h"
+#include "glutstroke.h"
+#include "glut_roman.h"
+#define GLUT_FONT (&glutStrokeRoman)
+
+typedef struct {
+ Display *dpy;
+ GLXContext *glx_context;
+
+ GLuint text_list, star_list;
+ texture_font_data *texfont;
+ text_data *tc;
+
+ char *buf;
+ int buf_size;
+ int buf_tail;
+
+ char **lines;
+ int *line_widths;
+ int total_lines;
+
+ double star_theta;
+ double char_width;
+ double line_height;
+ double descent;
+ double font_scale;
+ double intra_line_scroll;
+
+ int line_pixel_width; /* in font units (for wrapping text) */
+ int line_pixel_height; /* in screen units (for computing line thickness) */
+ GLfloat line_thickness;
+
+} sws_configuration;
+
+
+static sws_configuration *scs = NULL;
+
+static int max_lines;
+static int scroll_steps;
+static float star_spin;
+static float font_size;
+static int target_columns;
+static int wrap_p;
+static int smooth_p;
+static int thick_p;
+static int fade_p;
+static int textures_p;
+static int debug_p;
+static char *alignment_str;
+static int alignment;
+
+static XrmOptionDescRec opts[] = {
+ {"-lines", ".lines", XrmoptionSepArg, 0 },
+ {"-steps", ".steps", XrmoptionSepArg, 0 },
+ {"-spin", ".spin", XrmoptionSepArg, 0 },
+ {"-size", ".size", XrmoptionSepArg, 0 },
+ {"-columns", ".columns", XrmoptionSepArg, 0 },
+/*{"-font", ".font", XrmoptionSepArg, 0 },*/
+ {"-fade", ".fade", XrmoptionNoArg, "True" },
+ {"-no-fade", ".fade", XrmoptionNoArg, "False" },
+ {"-textures", ".textures", XrmoptionNoArg, "True" },
+ {"-smooth", ".smooth", XrmoptionNoArg, "True" },
+ {"-no-smooth", ".smooth", XrmoptionNoArg, "False" },
+ {"-thick", ".thick", XrmoptionNoArg, "True" },
+ {"-no-thick", ".thick", XrmoptionNoArg, "False" },
+ {"-no-textures", ".textures", XrmoptionNoArg, "False" },
+ {"-wrap", ".lineWrap", XrmoptionNoArg, "True" },
+ {"-no-wrap", ".lineWrap", XrmoptionNoArg, "False" },
+ {"-nowrap", ".lineWrap", XrmoptionNoArg, "False" },
+ {"-alignment", ".alignment", XrmoptionSepArg, 0 },
+ {"-left", ".alignment", XrmoptionNoArg, "Left" },
+ {"-right", ".alignment", XrmoptionNoArg, "Right" },
+ {"-center", ".alignment", XrmoptionNoArg, "Center" },
+ {"-debug", ".debug", XrmoptionNoArg, "True" },
+};
+
+static argtype vars[] = {
+ {&max_lines, "lines", "Integer", DEF_LINES, t_Int},
+ {&scroll_steps, "steps", "Integer", DEF_STEPS, t_Int},
+ {&star_spin, "spin", "Float", DEF_SPIN, t_Float},
+ {&font_size, "size", "Float", DEF_SIZE, t_Float},
+ {&target_columns, "columns", "Integer", DEF_COLUMNS, t_Int},
+ {&wrap_p, "lineWrap", "Boolean", DEF_LINE_WRAP, t_Bool},
+ {&alignment_str, "alignment", "Alignment", DEF_ALIGNMENT, t_String},
+ {&smooth_p, "smooth", "Boolean", DEF_SMOOTH, t_Bool},
+ {&thick_p, "thick", "Boolean", DEF_THICK, t_Bool},
+ {&fade_p, "fade", "Boolean", DEF_FADE, t_Bool},
+ {&textures_p, "textures", "Boolean", DEF_TEXTURES, t_Bool},
+ {&debug_p, "debug", "Boolean", DEF_DEBUG, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt sws_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+/* Tabs are bad, mmmkay? */
+
+static char *
+untabify (const char *string)
+{
+ const char *ostring = string;
+ char *result = (char *) malloc ((strlen(string) * 8) + 1);
+ char *out = result;
+ int col = 0;
+ while (*string)
+ {
+ if (*string == '\t')
+ {
+ do {
+ col++;
+ *out++ = ' ';
+ } while (col % TAB_WIDTH);
+ string++;
+ }
+ else if (*string == '\r' || *string == '\n')
+ {
+ *out++ = *string++;
+ col = 0;
+ }
+ else if (*string == '\010') /* backspace */
+ {
+ if (string > ostring)
+ out--, string++;
+ }
+ else
+ {
+ *out++ = *string++;
+ col++;
+ }
+ }
+ *out = 0;
+
+ return result;
+}
+
+static void
+strip (char *s, Bool leading, Bool trailing)
+{
+ int L = strlen(s);
+ if (trailing)
+ while (L > 0 && (s[L-1] == ' ' || s[L-1] == '\t'))
+ s[L--] = 0;
+ if (leading)
+ {
+ char *s2 = s;
+ while (*s2 == ' ' || *s2 == '\t')
+ s2++;
+ if (s == s2)
+ return;
+ while (*s2)
+ *s++ = *s2++;
+ *s = 0;
+ }
+}
+
+
+static int
+sw_string_width (sws_configuration *sc, const char *s)
+{
+ if (textures_p)
+ {
+ XCharStruct e;
+ texture_string_metrics (sc->texfont, s, &e, 0, 0);
+ return e.width;
+ }
+ else
+ return glutStrokeLength (GLUT_FONT, (unsigned char *) s);
+}
+
+
+static int
+sw_string_width2 (sws_configuration *sc, const char *s, size_t size)
+{
+ char *s2 = (char *) malloc (size + 1);
+ int result;
+
+ strncpy (s2, s, size);
+ s2[size] = 0;
+
+ result = sw_string_width (sc, s2);
+
+ free (s2);
+ return result;
+}
+
+
+/* Populates the sc->lines list with as many lines as possible.
+ */
+static void
+get_more_lines (sws_configuration *sc)
+{
+ /* wrap anyway, if it's absurdly long. */
+ int wrap_pix = (wrap_p ? sc->line_pixel_width : 10000);
+
+ char *s = sc->buf;
+
+ int target = sc->buf_size - sc->buf_tail - 2;
+
+ /* Fill as much as we can into sc->buf.
+ */
+ while (target > 0)
+ {
+ int c = textclient_getc (sc->tc);
+ if (c <= 0)
+ break;
+ sc->buf[sc->buf_tail++] = (char) c;
+ sc->buf[sc->buf_tail] = 0;
+ target--;
+ }
+
+ while (sc->total_lines < max_lines)
+ {
+ char *next_s = s;
+ unsigned counter = 0;
+
+ /* OS X is really slow to calcuate the bounds for a line of text,
+ so skip ahead a bit.
+
+ Really though, the right thing to do is probably to wrap
+ CTLineCreateTruncatedLine, one way or another. */
+ for (;;)
+ {
+ if (next_s >= sc->buf + sc->buf_tail)
+ break;
+
+ if (!counter)
+ {
+ if (s > sc->buf &&
+ sw_string_width2 (sc, sc->buf, next_s - sc->buf) >= wrap_pix)
+ break;
+
+ counter = 12; /* <-- Adjust to taste. */
+ s = next_s;
+ }
+
+ if (*next_s == '\r' || *next_s == '\n')
+ break;
+
+ --counter;
+ ++next_s;
+ }
+
+ for (;;)
+ {
+ if (s >= sc->buf + sc->buf_tail)
+ /* Reached end of buffer before end of line. Bail. */
+ return;
+
+ /* When checking pixel width, always measure the line from the
+ beginning, or else multi-byte UTF-8 characters, particularly
+ combining diacriticals, aren't measured right. */
+
+ if (*s == '\r' || *s == '\n' ||
+ (s > sc->buf && sw_string_width2 (sc, sc->buf, s - sc->buf) >= wrap_pix))
+ {
+ int L = s - sc->buf;
+
+ if (*s == '\r' || *s == '\n')
+ {
+ if (*s == '\r' && s[1] == '\n') /* swallow CRLF too */
+ *s++ = 0;
+
+ *s++ = 0;
+ }
+ else
+ {
+ /* We wrapped -- try to back up to the previous word boundary. */
+ char *s2 = s;
+ int n = 0;
+ while (s2 > sc->buf && *s2 != ' ' && *s2 != '\t')
+ s2--, n++;
+ if (s2 > sc->buf)
+ {
+ s = s2;
+ *s++ = 0;
+ L = s - sc->buf;
+ }
+ }
+
+ sc->lines[sc->total_lines] = (char *) malloc (L+1);
+ memcpy (sc->lines[sc->total_lines], sc->buf, L);
+ sc->lines[sc->total_lines][L] = 0;
+
+ if (!textures_p)
+ {
+ /* The GLUT font only has ASCII characters. */
+ char *s1 = utf8_to_latin1 (sc->lines[sc->total_lines], True);
+ free (sc->lines[sc->total_lines]);
+ sc->lines[sc->total_lines] = s1;
+ }
+
+ {
+ char *t = sc->lines[sc->total_lines];
+ char *ut = untabify (t);
+ strip (ut, (alignment == 0), 1); /* if centering, strip
+ leading whitespace too */
+ sc->lines[sc->total_lines] = ut;
+ free (t);
+ }
+
+ sc->line_widths[sc->total_lines] =
+ sw_string_width(sc, sc->lines[sc->total_lines]);
+
+ sc->total_lines++;
+
+ if (sc->buf_tail > (s - sc->buf))
+ {
+ int i = sc->buf_tail - (s - sc->buf);
+ memmove (sc->buf, s, i);
+ sc->buf_tail = i;
+ sc->buf[sc->buf_tail] = 0;
+ }
+ else
+ {
+ sc->buf_tail = 0;
+ }
+
+ sc->buf[sc->buf_tail] = 0;
+ s = sc->buf;
+
+ break;
+ }
+ else
+ {
+ s++;
+ }
+ }
+ }
+}
+
+
+static void
+draw_string (sws_configuration *sc, GLfloat x, GLfloat y, const char *s)
+{
+ const char *os = s;
+ if (!s || !*s) return;
+ glPushMatrix ();
+ glTranslatef (x, y, 0);
+
+ if (textures_p)
+ print_texture_string (sc->texfont, s);
+ else
+ while (*s)
+ glutStrokeCharacter (GLUT_FONT, *s++);
+ glPopMatrix ();
+
+ if (debug_p)
+ {
+ GLfloat h = sc->line_height / sc->font_scale;
+ char **chars = utf8_split (os, 0);
+ int i, w = 0;
+ char *s2 = (char *) malloc (strlen(s) + 1);
+ *s2 = 0;
+
+ if (textures_p) glDisable (GL_TEXTURE_2D);
+ glLineWidth (1);
+
+ glColor3f (0.2, 0.2, 0.5);
+
+ glBegin (GL_LINES);
+
+ for (i = 0; chars[i]; i++)
+ {
+ glVertex3f (x + w, y - sc->descent, 0); /* char left */
+ glVertex3f (x + w, y - sc->descent + h, 0);
+ strcat (s2, chars[i]);
+ w = sw_string_width (sc, s2);
+ free (chars[i]);
+ }
+
+ glVertex3f (x + w, y - sc->descent, 0); /* char right */
+ glVertex3f (x + w, y - sc->descent + h, 0);
+
+ glVertex3f (x, y - sc->descent + h, 0); /* ascent */
+ glVertex3f (x + w, y - sc->descent + h, 0);
+
+ glVertex3f (x - sc->char_width, y, 0); /* baseline */
+ glVertex3f (x + sc->char_width + w, y, 0);
+
+ glVertex3f (x, y - sc->descent, 0); /* descent */
+ glVertex3f (x + w, y - sc->descent, 0);
+
+ glEnd();
+
+ free (s2);
+ free (chars);
+
+ if (textures_p) glEnable (GL_TEXTURE_2D);
+ }
+}
+
+
+static void
+grid (double width, double height, double xspacing, double yspacing, double z)
+{
+ double x, y;
+ for (y = 0; y <= height/2; y += yspacing)
+ {
+ glBegin(GL_LINES);
+ glVertex3f(-width/2, y, z);
+ glVertex3f( width/2, y, z);
+ glVertex3f(-width/2, -y, z);
+ glVertex3f( width/2, -y, z);
+ glEnd();
+ }
+ for (x = 0; x <= width/2; x += xspacing)
+ {
+ glBegin(GL_LINES);
+ glVertex3f( x, -height/2, z);
+ glVertex3f( x, height/2, z);
+ glVertex3f(-x, -height/2, z);
+ glVertex3f(-x, height/2, z);
+ glEnd();
+ }
+
+ glBegin(GL_LINES);
+ glVertex3f(-width, 0, z);
+ glVertex3f( width, 0, z);
+ glVertex3f(0, -height, z);
+ glVertex3f(0, height, z);
+ glEnd();
+}
+
+static void
+box (double width, double height, double depth)
+{
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-width/2, -height/2, -depth/2);
+ glVertex3f(-width/2, height/2, -depth/2);
+ glVertex3f( width/2, height/2, -depth/2);
+ glVertex3f( width/2, -height/2, -depth/2);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-width/2, -height/2, depth/2);
+ glVertex3f(-width/2, height/2, depth/2);
+ glVertex3f( width/2, height/2, depth/2);
+ glVertex3f( width/2, -height/2, depth/2);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(-width/2, -height/2, -depth/2);
+ glVertex3f(-width/2, -height/2, depth/2);
+ glVertex3f(-width/2, height/2, depth/2);
+ glVertex3f(-width/2, height/2, -depth/2);
+ glEnd();
+ glBegin(GL_LINE_LOOP);
+ glVertex3f( width/2, -height/2, -depth/2);
+ glVertex3f( width/2, -height/2, depth/2);
+ glVertex3f( width/2, height/2, depth/2);
+ glVertex3f( width/2, height/2, -depth/2);
+ glEnd();
+
+ glBegin(GL_LINES);
+ glVertex3f(-width/2, height/2, depth/2);
+ glVertex3f(-width/2, -height/2, -depth/2);
+
+ glVertex3f( width/2, height/2, depth/2);
+ glVertex3f( width/2, -height/2, -depth/2);
+
+ glVertex3f(-width/2, -height/2, depth/2);
+ glVertex3f(-width/2, height/2, -depth/2);
+
+ glVertex3f( width/2, -height/2, depth/2);
+ glVertex3f( width/2, height/2, -depth/2);
+ glEnd();
+}
+
+
+/* Construct stars (number of stars is dependent on size of screen) */
+static void
+init_stars (ModeInfo *mi, int width, int height)
+{
+ sws_configuration *sc = &scs[MI_SCREEN(mi)];
+ int i, j;
+ int size = (width > height ? width : height);
+ int nstars = size * size / 320;
+ int max_size = 3;
+ GLfloat inc = 0.5;
+ int steps = max_size / inc;
+ GLfloat scale = 1;
+
+ if (MI_WIDTH(mi) > 2560) { /* Retina displays */
+ scale *= 2;
+ nstars = (size/scale) * (size/scale) / 320;
+ }
+
+ glDeleteLists (sc->star_list, 1);
+ sc->star_list = glGenLists (1);
+ glNewList (sc->star_list, GL_COMPILE);
+
+ glEnable(GL_POINT_SMOOTH);
+
+ for (j = 1; j <= steps; j++)
+ {
+ glPointSize(inc * j * scale);
+ glBegin (GL_POINTS);
+ for (i = 0; i < nstars / steps; i++)
+ {
+ glColor3f (0.6 + frand(0.3),
+ 0.6 + frand(0.3),
+ 0.6 + frand(0.3));
+ glVertex2f (2 * size * (0.5 - frand(1.0)),
+ 2 * size * (0.5 - frand(1.0)));
+ }
+ glEnd ();
+ }
+ glEndList ();
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_sws (ModeInfo *mi, int width, int height)
+{
+ sws_configuration *sc = &scs[MI_SCREEN(mi)];
+
+ /* Set up matrices for perspective text display
+ */
+ {
+ GLfloat desired_aspect = (GLfloat) 3/4;
+ int w = mi->xgwa.width;
+ int h = mi->xgwa.height;
+ int yoff = 0;
+ GLfloat rot = current_device_rotation();
+
+#ifdef KEEP_ASPECT
+ {
+ int h2 = w * desired_aspect;
+ yoff = (h - h2) / 2; /* Wide window: letterbox at top and bottom. */
+ if (yoff < 0) yoff = 0; /* Tall window: clip off the top. */
+ h = h2;
+ }
+#endif
+
+ glViewport (0, yoff, w, h);
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity();
+
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+ gluPerspective (80.0, 1/desired_aspect, 1000, 55000);
+ gluLookAt (0.0, 0.0, 4600.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ /* Horrible kludge to prevent the text from materializing already
+ on screen on iPhone in landscape mode.
+ */
+ if ((rot > 45 && rot < 135) ||
+ (rot < -45 && rot > -135))
+ {
+ GLfloat s = 1.1;
+ glScalef (s, s, s);
+ }
+
+ glRotatef (-60.0, 1.0, 0.0, 0.0);
+
+#if 0
+ glRotatef (60.0, 1.0, 0.0, 0.0);
+ glTranslatef (260, 3200, 0);
+ glScalef (1.85, 1.85, 1);
+#endif
+
+ /* The above gives us an arena where the bottom edge of the screen is
+ represented by the line (-2100,-3140,0) - ( 2100,-3140,0). */
+
+ /* Now let's move the origin to the front of the screen. */
+ glTranslatef (0.0, -3140, 0.0);
+
+ /* And then let's scale so that the bottom of the screen is 1.0 wide. */
+ glScalef (4200, 4200, 4200);
+ }
+
+
+ /* Compute the height in pixels of the line at the bottom of the screen. */
+ {
+ GLdouble mm[17], pm[17];
+ GLint vp[5];
+ GLdouble x = 0.5, y1 = 0, z = 0;
+ GLdouble y2 = sc->line_height;
+ GLdouble wx=-1, wy1=-1, wy2=-1, wz=-1;
+
+ glGetDoublev (GL_MODELVIEW_MATRIX, mm);
+ glGetDoublev (GL_PROJECTION_MATRIX, pm);
+ glGetIntegerv (GL_VIEWPORT, vp);
+ gluProject (x, y1, z, mm, pm, vp, &wx, &wy1, &wz);
+ gluProject (x, y2, z, mm, pm, vp, &wx, &wy2, &wz);
+ sc->line_pixel_height = (wy2 - wy1);
+ glLineWidth (1);
+ }
+
+ /* Compute the best looking line thickness for the bottom line.
+ */
+ if (!thick_p)
+ sc->line_thickness = 1.0;
+ else
+ sc->line_thickness = (GLfloat) sc->line_pixel_height / FONT_WEIGHT;
+
+ if (sc->line_thickness < 1.2)
+ sc->line_thickness = 1.0;
+}
+
+
+static void
+gl_init (ModeInfo *mi)
+{
+ sws_configuration *sc = &scs[MI_SCREEN(mi)];
+
+ glDisable (GL_LIGHTING);
+ glDisable (GL_DEPTH_TEST);
+
+ if (smooth_p)
+ {
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+ }
+
+ sc->text_list = glGenLists (1);
+ glNewList (sc->text_list, GL_COMPILE);
+ glEndList ();
+
+ sc->star_list = glGenLists (1);
+ glNewList (sc->star_list, GL_COMPILE);
+ glEndList ();
+
+ sc->line_thickness = 1.0;
+}
+
+
+ENTRYPOINT void
+init_sws (ModeInfo *mi)
+{
+ double font_height;
+
+ sws_configuration *sc = 0;
+
+ MI_INIT (mi, scs);
+
+ sc = &scs[MI_SCREEN(mi)];
+
+ sc->dpy = MI_DISPLAY(mi);
+ sc = &scs[MI_SCREEN(mi)];
+ /* Unchecked malloc. :( */
+ sc->lines = (char **) calloc (max_lines+1, sizeof(char *));
+ sc->line_widths = (int *) calloc (max_lines+1, sizeof(int));
+
+ if ((sc->glx_context = init_GL(mi)) != NULL) {
+ gl_init(mi);
+ reshape_sws (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
+ init_stars (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+
+ if (textures_p)
+ {
+ XCharStruct e;
+ int cw, ascent, descent;
+ sc->texfont = load_texture_font (MI_DISPLAY(mi), "font");
+ texture_string_metrics (sc->texfont, "n", &e, &ascent, &descent);
+ cw = e.width;
+ sc->char_width = cw;
+ font_height = ascent + descent;
+ sc->descent = descent;
+ glEnable(GL_ALPHA_TEST);
+ glEnable (GL_TEXTURE_2D);
+
+ check_gl_error ("loading font");
+
+ /* "Anistropic filtering helps for quadrilateral-angled textures.
+ A sharper image is accomplished by interpolating and filtering
+ multiple samples from one or more mipmaps to better approximate
+ very distorted textures. This is the next level of filtering
+ after trilinear filtering." */
+ if (smooth_p &&
+ strstr ((char *) glGetString(GL_EXTENSIONS),
+ "GL_EXT_texture_filter_anisotropic"))
+ {
+ GLfloat anisotropic = 0.0;
+ glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &anisotropic);
+ if (anisotropic >= 1.0)
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT,
+ anisotropic);
+ }
+ }
+ else
+ {
+ font_height = GLUT_FONT->top - GLUT_FONT->bottom;
+ sc->char_width = glutStrokeWidth (GLUT_FONT, 'z'); /* 'n' seems wide */
+ sc->descent = 0;
+ }
+
+ sc->font_scale = 1.0 / sc->char_width;
+
+
+ /* We consider a font that consumes 80 columns to be "18 points".
+
+ If neither -size nor -columns was specified, default to 60 columns
+ (which is 24 points.)
+
+ If both were specified, -columns has priority.
+ */
+ {
+ int base_col = 80;
+ int base_size = 18;
+
+ if (target_columns <= 0 && font_size <= 0)
+ target_columns = 60;
+
+ if (target_columns > 0)
+ font_size = base_size * (base_col / (double) target_columns);
+ else if (font_size > 0)
+ target_columns = base_col * (base_size / (double) font_size);
+ }
+
+ sc->line_pixel_width = target_columns * sc->char_width;
+
+ sc->font_scale /= target_columns;
+ sc->line_height = font_height * sc->font_scale;
+
+ /* Buffer only a few lines of text.
+ If the buffer is too big, there's a significant delay between
+ when the program launches and when the text appears, which can be
+ irritating for time-sensitive output (clock, current music, etc.)
+
+ I'd like to buffer only 2 lines, but we need to assume that we
+ could get a whole line of N-byte Unicrud, and if we fill the buffer
+ before hitting the end of the line, we stall.
+ */
+ sc->buf_size = target_columns * 2 * 4;
+ if (sc->buf_size < 80) sc->buf_size = 80;
+ sc->buf = (char *) calloc (1, sc->buf_size);
+
+ sc->total_lines = max_lines-1;
+
+ if (random() & 1)
+ star_spin = -star_spin;
+
+ if (!alignment_str || !*alignment_str ||
+ !strcasecmp(alignment_str, "left"))
+ alignment = -1;
+ else if (!strcasecmp(alignment_str, "center") ||
+ !strcasecmp(alignment_str, "middle"))
+ alignment = 0;
+ else if (!strcasecmp(alignment_str, "right"))
+ alignment = 1;
+ else
+ {
+ fprintf (stderr,
+ "%s: alignment must be left, center, or right, not \"%s\"\n",
+ progname, alignment_str);
+ exit (1);
+ }
+
+ sc->tc = textclient_open (sc->dpy);
+
+ /* one more reshape, after line_height has been computed */
+ reshape_sws (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+
+static void
+draw_stars (ModeInfo *mi)
+{
+ sws_configuration *sc = &scs[MI_SCREEN(mi)];
+
+ glMatrixMode (GL_PROJECTION);
+ glPushMatrix ();
+ {
+ glLoadIdentity ();
+
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix ();
+ {
+ glLoadIdentity ();
+ glOrtho (-0.5 * MI_WIDTH(mi), 0.5 * MI_WIDTH(mi),
+ -0.5 * MI_HEIGHT(mi), 0.5 * MI_HEIGHT(mi),
+ -100.0, 100.0);
+ glRotatef (sc->star_theta, 0.0, 0.0, 1.0);
+ if (textures_p) glDisable (GL_TEXTURE_2D);
+
+ glCallList (sc->star_list);
+ if (textures_p) glEnable (GL_TEXTURE_2D);
+ }
+ glPopMatrix ();
+ }
+ glMatrixMode (GL_PROJECTION);
+ glPopMatrix ();
+}
+
+ENTRYPOINT void
+draw_sws (ModeInfo *mi)
+{
+ sws_configuration *sc = &scs[MI_SCREEN(mi)];
+/* XtAppContext app = XtDisplayToApplicationContext (sc->dpy);*/
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int i;
+
+ if (!sc->glx_context)
+ return;
+
+ glDrawBuffer (GL_BACK);
+ glXMakeCurrent (dpy, window, *(sc->glx_context));
+
+ glClear (GL_COLOR_BUFFER_BIT);
+
+ draw_stars (mi);
+
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix ();
+
+# ifdef HAVE_MOBILE
+ /* Need to do this every time to get device rotation right */
+ reshape_sws (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+# endif
+
+ if (debug_p)
+ {
+ int i;
+ glPushMatrix ();
+ if (textures_p) glDisable (GL_TEXTURE_2D);
+ glLineWidth (1);
+ glTranslatef (0,-1, 0);
+
+ glColor3f(1, 0, 0); /* Red line is where text appears */
+ glPushMatrix();
+ glTranslatef(0, -0.028, 0);
+ glLineWidth (4);
+ glBegin(GL_LINES);
+ glVertex3f(-0.5, 1, 0);
+ glVertex3f( 0.5, 1, 0);
+ glVertex3f(-0.5, -1, 0);
+ glVertex3f( 0.5, -1, 0);
+ glEnd();
+ glLineWidth (1);
+ glPopMatrix();
+
+ glColor3f (0.2, 0.2, 0.2);
+ for (i = 0; i < 16; i++)
+ {
+ box (1, 1, 1);
+ grid (1, 1, sc->char_width * sc->font_scale, sc->line_height, 0);
+ glTranslatef(0, 1, 0);
+ }
+ if (textures_p) glEnable (GL_TEXTURE_2D);
+ glPopMatrix ();
+ check_gl_error ("debug render");
+ }
+
+ /* Scroll to current position */
+ glTranslatef (0.0, sc->intra_line_scroll, 0.0);
+
+ glColor3f (1.0, 1.0, 0.4);
+
+ mi->polygon_count = 0;
+
+ glPushMatrix ();
+ glScalef (sc->font_scale, sc->font_scale, sc->font_scale);
+ for (i = 0; i < sc->total_lines; i++)
+ {
+ double fade = (fade_p ? 1.0 * i / sc->total_lines : 1.0);
+ int offscreen_lines = 2;
+
+ double x = -0.5;
+ double y = ((sc->total_lines - (i + offscreen_lines) - 1)
+ * sc->line_height);
+ double xoff = 0;
+ char *line = sc->lines[i];
+
+ if (debug_p)
+ {
+ double xx = x * 1.4; /* a little more to the left */
+ char n[20];
+ sprintf(n, "%d:", i);
+ glColor3f (1.0, 1.0, 1.0);
+ draw_string (sc, xx / sc->font_scale, y / sc->font_scale, n);
+ }
+
+ if (!line || !*line)
+ continue;
+
+ if (sc->line_thickness != 1 && !textures_p)
+ {
+ int max_thick_lines = MAX_THICK_LINES;
+ GLfloat thinnest_line = 1.0;
+ GLfloat thickest_line = sc->line_thickness;
+ GLfloat range = thickest_line - thinnest_line;
+ GLfloat thickness;
+
+ int j = sc->total_lines - i - 1;
+
+ if (j > max_thick_lines)
+ thickness = thinnest_line;
+ else
+ thickness = (thinnest_line +
+ (range * ((max_thick_lines - j) /
+ (GLfloat) max_thick_lines)));
+
+ glLineWidth (thickness);
+ }
+
+ if (alignment >= 0)
+ {
+ int n = sc->line_widths[i];
+ xoff = 1.0 - (n * sc->font_scale);
+ }
+
+ if (alignment == 0)
+ xoff /= 2;
+
+ glColor3f (fade, fade, 0.5 * fade);
+ draw_string (sc, (x + xoff) / sc->font_scale, y / sc->font_scale,
+ line);
+ if (textures_p)
+ mi->polygon_count += strlen (line);
+ }
+ glPopMatrix ();
+
+
+
+ sc->intra_line_scroll += sc->line_height / scroll_steps;
+
+ if (sc->intra_line_scroll >= sc->line_height)
+ {
+ sc->intra_line_scroll = 0;
+
+ /* Drop the oldest line off the end. */
+ if (sc->lines[0])
+ free (sc->lines[0]);
+
+ /* Scroll the contents of the lines array toward 0. */
+ if (sc->total_lines > 0)
+ {
+ for (i = 1; i < sc->total_lines; i++) {
+ sc->lines[i-1] = sc->lines[i];
+ sc->line_widths[i-1] = sc->line_widths[i];
+ }
+ sc->lines[--sc->total_lines] = 0;
+ }
+
+ /* Bring in new lines at the end. */
+ get_more_lines (sc);
+
+ if (sc->total_lines < max_lines)
+ /* Oops, we ran out of text... well, insert some blank lines
+ here so that new text still pulls in from the bottom of
+ the screen, isntead of just appearing. */
+ sc->total_lines = max_lines;
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(dpy, window);
+
+ sc->star_theta += star_spin;
+}
+
+ENTRYPOINT void
+free_sws (ModeInfo *mi)
+{
+ sws_configuration *sc = &scs[MI_SCREEN(mi)];
+ if (sc->tc)
+ textclient_close (sc->tc);
+
+ /* #### there's more to free here */
+}
+
+
+#ifdef __GNUC__
+ __extension__ /* don't warn about "string length is greater than the length
+ ISO C89 compilers are required to support" when including
+ "starwars.txt" in the defaults... */
+#endif
+
+XSCREENSAVER_MODULE_2 ("StarWars", starwars, sws)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/starwars.h b/hacks/glx/starwars.h
new file mode 100644
index 0000000..fc0a3f5
--- /dev/null
+++ b/hacks/glx/starwars.h
@@ -0,0 +1,363 @@
+#define DEF_TEXT \
+"Episode IV\\n" \
+"\\n" \
+"STAR WARS: A NEW HOPE\\n" \
+"\\n" \
+"It is a period of Civil War.\\n" \
+"Rebel Spaceships, striking\\n" \
+"from a hidden base, have won\\n" \
+"their first victory against\\n" \
+"the evil Galactic Empire.\\n" \
+"\\n" \
+"During the battle, Rebel\\n" \
+"spies managed to steal secret\\n" \
+"plans to the Empire's\\n" \
+"ultimate weapon, the DEATH\\n" \
+"STAR, an armored space\\n" \
+"station with enough power to\\n" \
+"destroy an entire planet.\\n" \
+"\\n" \
+"Pursued by the Empire's\\n" \
+"sinister agents, Princess\\n" \
+"Leia races home aboard her\\n" \
+"starship, custodian of the\\n" \
+"stolen plans that can save\\n" \
+"her people and restore\\n" \
+"freedom to the galaxy...\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"Episode V\\n" \
+"\\n" \
+"THE EMPIRE STRIKES BACK\\n" \
+"\\n" \
+"It is a dark time for the\\n" \
+"Rebellion. Although the Death\\n" \
+"Star has been destroyed,\\n" \
+"Imperial troops have driven the\\n" \
+"Rebel forces from their hidden\\n" \
+"base and pursued them across\\n" \
+"the galaxy.\\n" \
+"\\n" \
+"Evading the dreaded Imperial\\n" \
+"Starfleet, a group of freedom\\n" \
+"fighters led by Luke Skywalker\\n" \
+"has established a new secret\\n" \
+"base on the remote ice world\\n" \
+"of Hoth.\\n" \
+"\\n" \
+"The evil lord Darth Vader,\\n" \
+"obsessed with finding young\\n" \
+"Skywalker, has dispatched\\n" \
+"thousands of remote probes into\\n" \
+"the far reaches of space....\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"Episode VI\\n" \
+"\\n" \
+"RETURN OF THE JEDI\\n" \
+"\\n" \
+"Luke Skywalker has returned to\\n" \
+"his home planet of Tatooine in\\n" \
+"an attempt to rescue his\\n" \
+"friend Han Solo from the\\n" \
+"clutches of the vile gangster\\n" \
+"Jabba the Hutt.\\n" \
+"\\n" \
+"Little does Luke know that the\\n" \
+"GALACTIC EMPIRE has secretly\\n" \
+"begun construction on a new\\n" \
+"armored space station even\\n" \
+"more powerful than the first\\n" \
+"dreaded Death Star.\\n" \
+"\\n" \
+"When completed, this ultimate\\n" \
+"weapon will spell certain doom\\n" \
+"for the small band of rebels\\n" \
+"struggling to restore freedom\\n" \
+"to the galaxy...\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"Episode I\\n" \
+"\\n" \
+"THE PHANTOM MENACE\\n" \
+"\\n" \
+"Turmoil has engulfed the\\n" \
+"Galactic Republic. The taxation\\n" \
+"of trade routes to outlying star\\n" \
+"systems is in dispute.\\n" \
+"\\n" \
+"Hoping to resolve the matter\\n" \
+"with a blockade of deadly\\n" \
+"battleships, the greedy Trade\\n" \
+"Federation has stopped all\\n" \
+"shipping to the small planet\\n" \
+"of Naboo.\\n" \
+"\\n" \
+"While the Congress of the\\n" \
+"Republic endlessly debates\\n" \
+"this alarming chain of events,\\n" \
+"the Supreme Chancellor has\\n" \
+"secretly dispatched two Jedi\\n" \
+"Knights, the guardians of\\n" \
+"peace and justice in the\\n" \
+"galaxy to settle the conflict...\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"Episode II\\n" \
+"\\n" \
+"ATTACK OF THE CLONES\\n" \
+"\\n" \
+"There is unrest in the Galactic\\n" \
+"Senate. Several thousand solar\\n" \
+"systems have declared their\\n" \
+"intentions to leave the Republic.\\n" \
+"\\n" \
+"This separatist movement,\\n" \
+"under the leadership of the\\n" \
+"mysterious Count Dooku, has\\n" \
+"made it difficult for the limited\\n" \
+"number of Jedi Knights to\\n" \
+"maintain peace and order in the\\n" \
+"galaxy.\\n" \
+"\\n" \
+"Senator Amidala, the former\\n" \
+"Queen of Naboo, is returning\\n" \
+"to the Galactic Senate to vote\\n" \
+"on the critical issue of creating\\n" \
+"an ARMY OF THE REPUBLIC\\n" \
+"to assist the overwhelmed\\n" \
+"Jedi....\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"Episode III\\n" \
+"\\n" \
+"REVENGE OF THE SITH\\n" \
+"\\n" \
+"War! The Republic is crumbling\\n" \
+"under attacks by the ruthless\\n" \
+"Sith Lord, Count Dooku.\\n" \
+"There are heroes on both sides.\\n" \
+"Evil is everywhere.\\n" \
+"\\n" \
+"In a stunning move, the\\n" \
+"fiendish droid leader, General\\n" \
+"Grievous, has swept into the\\n" \
+"Republic capital and kidnapped\\n" \
+"Chancellor Palpatine, leader of\\n" \
+"the Galactic Senate.\\n" \
+"\\n" \
+"As the Separatist Droid Army\\n" \
+"attempts to flee th besieged\\n" \
+"capital with their valuable\\n" \
+"hostage, two Jedi Knights lead a\\n" \
+"desperate mission to rescue the\\n" \
+"captive Chancellor....\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"Episode VII\\n" \
+"THE FORCE AWAKENS\\n" \
+"Luke Skywalker has vanished.\\n" \
+"In his absence, the sinister\\n" \
+"FIRST ORDER has risen from\\n" \
+"the ashes of the Empire\\n" \
+"and will not rest until\\n" \
+"Skywalker, the last Jedi,\\n" \
+"has been destroyed.\\n" \
+"\\n" \
+"With the support of the\\n" \
+"REPUBLIC, General Leia Organa\\n" \
+"leads a brave RESISTANCE.\\n" \
+"She is desperate to find her\\n" \
+"brother Luke and gain his\\n" \
+"help in restoring peace and \\n" \
+"justice to the galaxy.\\n" \
+"\\n" \
+"Leia has sent her most daring\\n" \
+"pilot on a secret mission\\n" \
+"to Jakku, where an old ally\\n" \
+"has discovered a clue to\\n" \
+"Luke's whereabouts...\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n" \
+"\\n"
diff --git a/hacks/glx/starwars.man b/hacks/glx/starwars.man
new file mode 100644
index 0000000..d7dc7f2
--- /dev/null
+++ b/hacks/glx/starwars.man
@@ -0,0 +1,181 @@
+.de EX \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "25-Jul-98" "X Version 11"
+.SH NAME
+starwars - draws a perspective text crawl, like at the beginning of the movie
+.SH SYNOPSIS
+.B starwars
+[\-display \fIhost:display.screen\fP] [\-window] [\-root]
+[\-visual \fIvisual\fP]
+[\-delay \fImicroseconds\fP]
+[\-program \fIcommand\fP]
+[\-size \fIinteger\fP ]
+[\-columns \fIinteger\fP]
+[\-wrap | \-no\-wrap]
+[\-left | \-center | \-right]
+[\-lines \fIinteger\fP]
+[\-spin \fIfloat\fP]
+[\-steps \fIinteger\fP]
+[\-delay \fIusecs\fP]
+[\-font \fIxlfd\fP]
+[\-no\-textures]
+[\-no\-smooth]
+[\-no\-thick]
+[\-fps]
+.SH DESCRIPTION
+The \fIstarwars\fP program runs another program to generate a stream of
+text, then animates that text receeding into the background at an angle,
+in front of a star field.
+.SH OPTIONS
+.I starwars
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-program \fIsh-command\fP
+The command to run to generate the text to display. This option may be
+any string acceptable to /bin/sh. The program will be run at the end of
+a pipe, and any characters that it prints to \fIstdout\fP will be printed
+on the starwars window. If the program exits, it will be launched again
+after we have processed all the text it produced.
+
+Note that starwars is \fInot\fP a terminal emulator: programs that try to
+directly address the screen will not do what you might expect. This
+program merely draws the characters on the screen left to right, top
+to bottom, in perspective. Lines (may) wrap when they reach the right
+edge.
+
+In other words, programs like
+.BR fortune (1)
+will work, but programs like
+.BR top (1)
+won't.
+
+Some examples:
+.EX
+starwars -program 'cat /usr/src/linux*/README'
+starwars -columns 30 -program 'ping www.starwars.com'
+starwars -left -no-wrap -program 'ps -auxwwf'
+starwars -left -no-wrap -columns 45 -program 'top -bn1'
+starwars -left -columns 40 -program 'od -txC /dev/urandom'
+starwars -font fixed -program 'od -txC /dev/urandom'
+.EE
+.TP 8
+.B \-size \fIinteger\fP
+How large a font to use, in points. (Well, in some arbitrary unit
+we're calling "points" for the sake of argument.) Default: 24.
+.TP 8
+.B \-columns \fIinteger\fP
+How many columns of text should be visible on the bottom line of the
+screen. Default: 60.
+
+Only one of \fI\-columns\fP and \fI\-size\fP may be specified;
+if both are specified, \fI\-columns\fP takes priority.
+.TP 8
+.B \-wrap
+Word-wrap lines when they reach the rightmost column. This is the default.
+.TP 8
+.B \-no\-wrap
+Do not word-wrap: just let the lines go off the right side of the screen.
+.TP 8
+.B \-left | \-center | \-right
+Whether to align the text flush left, centered, or flush right.
+The default is centered.
+.TP 8
+.B \-lines \fIinteger\fP
+How many lines should be allowed to be on the screen before they fall off
+the end. The default is 125.
+.TP 8
+.B \-spin \fIfloat\fP
+The star field on the background slowly rotates. This is how fast.
+The default is 0.03.
+.TP 8
+.B \-steps \fIinteger\fP
+How many steps should be used to scroll a single line. The default is 35.
+If the animation looks jerky to you, increase this number.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between steps of the animation; default is 40000 (1/25th second.)
+.TP 8
+.B \-font \fIfont-name\fP
+The name of the font to use. For best effect, this should be a large
+font (at least 36 points.) The bigger the font, the better looking the
+characters will be. Note that the size of this font affects only the
+clarity of the characters, not their size on the screen: for that, use
+the \fI\-size\fP or \fI\-columns\fP options.
+
+Default: -*-utopia-bold-r-normal-*-*-720-*-*-*-*-iso8859-1
+.TP 8
+.B \-no\-textures
+Instead of texture-mapping a real font to render the text, use a
+built-in font composed of line segments. On graphics cards without
+texture support, the line-segment font will have much better
+performance.
+.TP 8
+.B \-no\-smooth
+When using the line-segment font, turn off anti-aliasing of the lines
+used to draw the font. This will make the text blockier, but may
+improve performance.
+.TP 8
+.B \-no\-thick
+When using the line-segment font, turn off use of thick lines for the
+characters that are close to the foreground. This will make the text
+appear unnaturally skinny, but may improve performance.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR xscreensaver (1),
+.BR xscreensaver-text (1),
+.BR fortune (1),
+.BR phosphor (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR fontglide (MANSUFFIX),
+.BR ljlatest (MANSUFFIX),
+.BR dadadodo (1),
+.BR webcollage (MANSUFFIX),
+.BR driftnet (1)
+.BR EtherPEG ,
+.BR EtherPeek
+.SH COPYRIGHT
+Copyright \(co 1998-2005 by Jamie Zawinski and Claudio Matsuoka.
+Permission to use, copy, modify, distribute, and sell this software and
+its documentation for any purpose is hereby granted without fee,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org> and Claudio Matauoka <claudio@helllabs.org>
diff --git a/hacks/glx/starwars.txt b/hacks/glx/starwars.txt
new file mode 100644
index 0000000..0412ded
--- /dev/null
+++ b/hacks/glx/starwars.txt
@@ -0,0 +1,415 @@
+Episode IV
+
+STAR WARS: A NEW HOPE
+
+It is a period of Civil War.
+Rebel Spaceships, striking
+from a hidden base, have won
+their first victory against
+the evil Galactic Empire.
+
+During the battle, Rebel
+spies managed to steal secret
+plans to the Empire's
+ultimate weapon, the DEATH
+STAR, an armored space
+station with enough power to
+destroy an entire planet.
+
+Pursued by the Empire's
+sinister agents, Princess
+Leia races home aboard her
+starship, custodian of the
+stolen plans that can save
+her people and restore
+freedom to the galaxy.....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Episode V
+
+THE EMPIRE STRIKES BACK
+
+It is a dark time for the
+Rebellion. Although the Death
+Star has been destroyed,
+Imperial troops have driven the
+Rebel forces from their hidden
+base and pursued them across
+the galaxy.
+
+Evading the dreaded Imperial
+Starfleet, a group of freedom
+fighters led by Luke Skywalker
+has established a new secret
+base on the remote ice world
+of Hoth.
+
+The evil lord Darth Vader,
+obsessed with finding young
+Skywalker, has dispatched
+thousands of remote probes into
+the far reaches of space....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Episode VI
+
+RETURN OF THE JEDI
+
+Luke Skywalker has returned to
+his home planet of Tatooine in
+an attempt to rescue his
+friend Han Solo from the
+clutches of the vile gangster
+Jabba the Hutt.
+
+Little does Luke know that the
+GALACTIC EMPIRE has secretly
+begun construction on a new
+armored space station even
+more powerful than the first
+dreaded Death Star.
+
+When completed, this ultimate
+weapon will spell certain doom
+for the small band of rebels
+struggling to restore freedom
+to the galaxy...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Episode I
+
+THE PHANTOM MENACE
+
+Turmoil has engulfed the
+Galactic Republic. The taxation
+of trade routes to outlying star
+systems is in dispute.
+
+Hoping to resolve the matter
+with a blockade of deadly
+battleships, the greedy Trade
+Federation has stopped all
+shipping to the small planet
+of Naboo.
+
+While the Congress of the
+Republic endlessly debates
+this alarming chain of events,
+the Supreme Chancellor has
+secretly dispatched two Jedi
+Knights, the guardians of
+peace and justice in the
+galaxy, to settle the conflict....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Episode II
+
+ATTACK OF THE CLONES
+
+There is unrest in the Galactic
+Senate. Several thousand solar
+systems have declared their
+intentions to leave the Republic.
+
+This separatist movement,
+under the leadership of the
+mysterious Count Dooku, has
+made it difficult for the limited
+number of Jedi Knights to maintain
+peace and order in the galaxy.
+
+Senator Amidala, the former
+Queen of Naboo, is returning
+to the Galactic Senate to vote
+on the critical issue of creating
+an ARMY OF THE REPUBLIC
+to assist the overwhelmed
+Jedi....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Episode III
+
+REVENGE OF THE SITH
+
+War! The Republic is crumbling
+under attacks by the ruthless
+Sith Lord, Count Dooku.
+There are heroes on both sides.
+Evil is everywhere.
+
+In a stunning move, the
+fiendish droid leader, General
+Grievous, has swept into the
+Republic capital and kidnapped
+Chancellor Palpatine, leader of
+the Galactic Senate.
+
+As the Separatist Droid Army
+attempts to flee the besieged
+capital with their valuable
+hostage, two Jedi Knights lead a
+desperate mission to rescue the
+captive Chancellor....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Episode VII
+
+THE FORCE AWAKENS
+
+Luke Skywalker has vanished.
+In his absence, the sinister
+FIRST ORDER has risen from
+the ashes of the Empire
+and will not rest until
+Skywalker, the last Jedi,
+has been destroyed.
+
+With the support of the
+REPUBLIC, General Leia Organa
+leads a brave RESISTANCE.
+She is desperate to find her
+brother Luke and gain his
+help in restoring peace
+and justice to the galaxy.
+
+Leia has sent her most daring
+pilot on a secret mission
+to Jakku, where an old ally
+has discovered a clue to
+Luke's whereabouts....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Episode VIII
+
+THE LAST JEDI
+
+The FIRST ORDER reigns.
+Having decimated the peaceful
+Republic, Supreme Leader Snoke
+now deploys the merciless
+legions to seize military
+control of the galaxy.
+
+Only General Leia Organa's
+band of RESISTANCE fighters
+stand against the rising
+tyranny, certain that Jedi
+Master Luke Skywalker will
+return and restore a spark of
+hope to the fight.
+
+But the Resistance has been
+exposed. As the First Order
+speeds toward the rebel base,
+the brave heroes mount a
+desperate escape....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hacks/glx/stonerview-move.c b/hacks/glx/stonerview-move.c
new file mode 100644
index 0000000..8639f10
--- /dev/null
+++ b/hacks/glx/stonerview-move.c
@@ -0,0 +1,147 @@
+/* StonerView: An eccentric visual toy.
+ Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com)
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+*/
+
+#include <math.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "yarandom.h"
+#include "stonerview.h"
+
+
+void
+stonerview_init_move(stonerview_state *st)
+{
+ /*st->theta = new_osc_linear(
+ new_osc_wrap(0, 36000, 25),
+ new_osc_constant(2000));*/
+
+ st->theta = new_osc_linear(st,
+ new_osc_velowrap(st, 0, 36000, new_osc_multiplex(st,
+ new_osc_randphaser(st, 300, 600),
+ new_osc_constant(st, 25),
+ new_osc_constant(st, 75),
+ new_osc_constant(st, 50),
+ new_osc_constant(st, 100))
+ ),
+
+ new_osc_multiplex(st,
+ new_osc_buffer(st, new_osc_randphaser(st, 300, 600)),
+ new_osc_buffer(st, new_osc_wrap(st, 0, 36000, 10)),
+ new_osc_buffer(st, new_osc_wrap(st, 0, 36000, -8)),
+ new_osc_wrap(st, 0, 36000, 4),
+ new_osc_buffer(st, new_osc_bounce(st, -2000, 2000, 20))
+ )
+ );
+
+ st->rad = new_osc_buffer(st, new_osc_multiplex(st,
+ new_osc_randphaser(st, 250, 500),
+ new_osc_bounce(st, -1000, 1000, 10),
+ new_osc_bounce(st, 200, 1000, -15),
+ new_osc_bounce(st, 400, 1000, 10),
+ new_osc_bounce(st, -1000, 1000, -20)));
+ /*st->rad = new_osc_constant(st, 1000);*/
+
+ st->alti = new_osc_linear(st,
+ new_osc_constant(st, -1000),
+ new_osc_constant(st, 2000 / st->num_els));
+
+ /*st->alti = new_osc_multiplex(
+ new_osc_buffer(st, new_osc_randphaser(60, 270)),
+ new_osc_buffer(st, new_osc_bounce(-1000, 1000, 48)),
+ new_osc_linear(
+ new_osc_constant(-1000),
+ new_osc_constant(2000 / st->num_els)),
+ new_osc_buffer(st, new_osc_bounce(-1000, 1000, 27)),
+ new_osc_linear(
+ new_osc_constant(-1000),
+ new_osc_constant(2000 / st->num_els))
+ );*/
+
+ /*st->color = new_osc_buffer(st, new_osc_randphaser(5, 35));*/
+
+ /*st->color = new_osc_buffer(st, new_osc_multiplex(
+ new_osc_randphaser(25, 70),
+ new_osc_wrap(0, 3600, 20),
+ new_osc_wrap(0, 3600, 30),
+ new_osc_wrap(0, 3600, -20),
+ new_osc_wrap(0, 3600, 10)));*/
+ st->color = new_osc_multiplex(st,
+ new_osc_buffer(st, new_osc_randphaser(st, 150, 300)),
+ new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 13)),
+ new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 32)),
+ new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 17)),
+ new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 7)));
+
+ stonerview_move_increment(st);
+}
+
+/* Set up the list of polygon data for rendering. */
+void
+stonerview_move_increment(stonerview_state *st)
+{
+ int ix, val;
+/* double fval; */
+/* double recipels = (1.0 / (double)st->num_els); */
+ double pt[2];
+ double ptrad, pttheta;
+
+ for (ix=0; ix<st->num_els; ix++) {
+ stonerview_elem_t *el = &st->elist[ix];
+
+ /* Grab r and theta... */
+ val = osc_get(st, st->theta, ix);
+ pttheta = val * (0.01 * M_PI / 180.0);
+ ptrad = (double)osc_get(st, st->rad, ix) * 0.001;
+ /* And convert them to x,y coordinates. */
+ pt[0] = ptrad * cos(pttheta);
+ pt[1] = ptrad * sin(pttheta);
+
+ /* Set x,y,z. */
+ el->pos[0] = pt[0];
+ el->pos[1] = pt[1];
+ el->pos[2] = (double)osc_get(st, st->alti, ix) * 0.001;
+
+ /* Set which way the square is rotated. This is fixed for now, although
+ it would be trivial to make the squares spin as they revolve. */
+ el->vervec[0] = 0.11;
+ el->vervec[1] = 0.0;
+
+ /* Grab the color, and convert it to RGB values. Technically, we're
+ converting an HSV value to RGB, where S and V are always 1. */
+ val = osc_get(st, st->color, ix);
+ if (val < 1200) {
+ el->col[0] = ((double)val / 1200.0);
+ el->col[1] = 0;
+ el->col[2] = (double)(1200 - val) / 1200.0;
+ }
+ else if (val < 2400) {
+ el->col[0] = (double)(2400 - val) / 1200.0;
+ el->col[1] = ((double)(val - 1200) / 1200.0);
+ el->col[2] = 0;
+ }
+ else {
+ el->col[0] = 0;
+ el->col[1] = (double)(3600 - val) / 1200.0;
+ el->col[2] = ((double)(val - 2400) / 1200.0);
+ }
+ el->col[3] = 1.0;
+ }
+
+ osc_increment(st);
+}
+
diff --git a/hacks/glx/stonerview-move.h b/hacks/glx/stonerview-move.h
new file mode 100644
index 0000000..82073e9
--- /dev/null
+++ b/hacks/glx/stonerview-move.h
@@ -0,0 +1,32 @@
+/* StonerView: An eccentric visual toy.
+ Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com)
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+*/
+
+#ifndef __STONERVIEW_MOVE_H__
+#define __STONERVIEW_MOVE_H__
+
+typedef struct {
+ double pos[3];
+ double vervec[2];
+ double col[4];
+} stonerview_elem_t;
+
+extern void stonerview_init_move(stonerview_state *);
+extern void stonerview_final_move(stonerview_state *);
+extern void stonerview_move_increment(stonerview_state *);
+
+
+extern stonerview_state * stonerview_init_view(int wireframe_p,
+ int transparent_p);
+extern void stonerview_win_draw(stonerview_state *);
+extern void stonerview_win_release(stonerview_state *);
+
+#endif /* __STONERVIEW_MOVE_H__ */
diff --git a/hacks/glx/stonerview-osc.c b/hacks/glx/stonerview-osc.c
new file mode 100644
index 0000000..1b79a23
--- /dev/null
+++ b/hacks/glx/stonerview-osc.c
@@ -0,0 +1,341 @@
+/* StonerView: An eccentric visual toy.
+ Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com)
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+*/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "yarandom.h"
+#include "stonerview.h"
+
+
+/* Return a random number between min and max, inclusive. */
+static int rand_range(int min, int max)
+{
+ int res;
+ unsigned int diff = (max+1) - min;
+ if (diff <= 1)
+ return min;
+ res = random() % diff;
+ return min+res;
+}
+
+
+/* Create a new, blank osc_t. The caller must fill in the type data. */
+static osc_t *create_osc(stonerview_state *st, int type)
+{
+ osc_t *osc = (osc_t *)malloc(sizeof(osc_t));
+ if (!osc)
+ return NULL;
+
+ osc->type = type;
+ osc->next = NULL;
+
+ *st->osctail = osc;
+ st->osctail = &(osc->next);
+
+ return osc;
+}
+
+/* Creation functions for all the osc_t types. These are all pretty obvious
+ in their construction. */
+
+osc_t *new_osc_constant(stonerview_state *st, int val)
+{
+ osc_t *osc = create_osc(st, otyp_Constant);
+ if (!osc)
+ return NULL;
+
+ osc->u.oconstant.val = val;
+ return osc;
+}
+
+osc_t *new_osc_bounce(stonerview_state *st, int min, int max, int step)
+{
+ int diff;
+ osc_t *osc = create_osc(st, otyp_Bounce);
+ if (!osc)
+ return NULL;
+
+ osc->u.obounce.min = min;
+ osc->u.obounce.max = max;
+ osc->u.obounce.step = step;
+
+ /* Pick a random initial value between min and max. */
+ if (step < 0)
+ step = (-step);
+ diff = (max-min) / step;
+ osc->u.obounce.val = min + step * rand_range(0, diff-1);
+
+ return osc;
+}
+
+osc_t *new_osc_wrap(stonerview_state *st, int min, int max, int step)
+{
+ int diff;
+ osc_t *osc = create_osc(st, otyp_Wrap);
+ if (!osc)
+ return NULL;
+
+ osc->u.owrap.min = min;
+ osc->u.owrap.max = max;
+ osc->u.owrap.step = step;
+
+ /* Pick a random initial value between min and max. */
+ if (step < 0)
+ step = (-step);
+ diff = (max-min) / step;
+ osc->u.owrap.val = min + step * rand_range(0, diff-1);
+
+ return osc;
+}
+
+osc_t *new_osc_velowrap(stonerview_state *st, int min, int max, osc_t *step)
+{
+ osc_t *osc = create_osc(st, otyp_VeloWrap);
+ if (!osc)
+ return NULL;
+
+ osc->u.ovelowrap.min = min;
+ osc->u.ovelowrap.max = max;
+ osc->u.ovelowrap.step = step;
+
+ /* Pick a random initial value between min and max. */
+ osc->u.ovelowrap.val = rand_range(min, max);
+
+ return osc;
+}
+
+osc_t *new_osc_multiplex(stonerview_state *st,
+ osc_t *sel, osc_t *ox0,
+ osc_t *ox1, osc_t *ox2,
+ osc_t *ox3)
+{
+ osc_t *osc = create_osc(st, otyp_Multiplex);
+ if (!osc)
+ return NULL;
+
+ osc->u.omultiplex.sel = sel;
+ osc->u.omultiplex.val[0] = ox0;
+ osc->u.omultiplex.val[1] = ox1;
+ osc->u.omultiplex.val[2] = ox2;
+ osc->u.omultiplex.val[3] = ox3;
+
+ return osc;
+}
+
+osc_t *new_osc_phaser(stonerview_state *st, int phaselen)
+{
+ osc_t *osc = create_osc(st, otyp_Phaser);
+ if (!osc)
+ return NULL;
+
+ osc->u.ophaser.phaselen = phaselen;
+
+ osc->u.ophaser.count = 0;
+ /* Pick a random phase to start in. */
+ osc->u.ophaser.curphase = rand_range(0, NUM_PHASES-1);
+
+ return osc;
+}
+
+osc_t *new_osc_randphaser(stonerview_state *st,
+ int minphaselen, int maxphaselen)
+{
+ osc_t *osc = create_osc(st, otyp_RandPhaser);
+ if (!osc)
+ return NULL;
+
+ osc->u.orandphaser.minphaselen = minphaselen;
+ osc->u.orandphaser.maxphaselen = maxphaselen;
+
+ osc->u.orandphaser.count = 0;
+ /* Pick a random phaselen to start with. */
+ osc->u.orandphaser.curphaselen = rand_range(minphaselen, maxphaselen);
+ /* Pick a random phase to start in. */
+ osc->u.orandphaser.curphase = rand_range(0, NUM_PHASES-1);
+
+ return osc;
+}
+
+osc_t *new_osc_linear(stonerview_state *st, osc_t *base, osc_t *diff)
+{
+ osc_t *osc = create_osc(st, otyp_Linear);
+ if (!osc)
+ return NULL;
+
+ osc->u.olinear.base = base;
+ osc->u.olinear.diff = diff;
+
+ return osc;
+}
+
+osc_t *new_osc_buffer(stonerview_state *st, osc_t *val)
+{
+ int ix;
+ osc_t *osc = create_osc(st, otyp_Buffer);
+ if (!osc)
+ return NULL;
+
+ osc->u.obuffer.val = val;
+ osc->u.obuffer.firstel = st->num_els-1;
+
+ /* The last N values are stored in a ring buffer, which we must initialize
+ here. */
+ for (ix=0; ix<st->num_els; ix++) {
+ osc->u.obuffer.el[ix] = osc_get(st, val, 0);
+ }
+
+ return osc;
+}
+
+/* Compute f(i,el) for the current i. */
+int osc_get(stonerview_state *st, osc_t *osc, int el)
+{
+ if (!osc)
+ return 0;
+
+ switch (osc->type) {
+
+ case otyp_Constant:
+ return osc->u.oconstant.val;
+
+ case otyp_Bounce:
+ return osc->u.obounce.val;
+
+ case otyp_Wrap:
+ return osc->u.owrap.val;
+
+ case otyp_VeloWrap:
+ return osc->u.ovelowrap.val;
+
+ case otyp_Linear:
+ return osc_get(st, osc->u.olinear.base, el)
+ + el * osc_get(st, osc->u.olinear.diff, el);
+
+ case otyp_Multiplex: {
+ struct omultiplex_struct *ox = &(osc->u.omultiplex);
+ int sel = osc_get(st, ox->sel, el);
+ return osc_get(st, ox->val[sel % NUM_PHASES], el);
+ }
+
+ case otyp_Phaser: {
+ struct ophaser_struct *ox = &(osc->u.ophaser);
+ return ox->curphase;
+ }
+
+ case otyp_RandPhaser: {
+ struct orandphaser_struct *ox = &(osc->u.orandphaser);
+ return ox->curphase;
+ }
+
+ case otyp_Buffer: {
+ struct obuffer_struct *ox = &(osc->u.obuffer);
+ return ox->el[(ox->firstel + el) % st->num_els];
+ }
+
+ default:
+ return 0;
+ }
+}
+
+/* Increment i. This affects all osc_t objects; we go down the linked list to
+ get them all. */
+void osc_increment(stonerview_state *st)
+{
+ osc_t *osc;
+
+ for (osc = st->oscroot; osc; osc = osc->next) {
+ switch (osc->type) {
+
+ case otyp_Bounce: {
+ struct obounce_struct *ox = &(osc->u.obounce);
+ ox->val += ox->step;
+ if (ox->val < ox->min && ox->step < 0) {
+ ox->step = -(ox->step);
+ ox->val = ox->min + (ox->min - ox->val);
+ }
+ if (ox->val > ox->max && ox->step > 0) {
+ ox->step = -(ox->step);
+ ox->val = ox->max + (ox->max - ox->val);
+ }
+ break;
+ }
+
+ case otyp_Wrap: {
+ struct owrap_struct *ox = &(osc->u.owrap);
+ ox->val += ox->step;
+ if (ox->val < ox->min && ox->step < 0) {
+ ox->val += (ox->max - ox->min);
+ }
+ if (ox->val > ox->max && ox->step > 0) {
+ ox->val -= (ox->max - ox->min);
+ }
+ break;
+ }
+
+ case otyp_VeloWrap: {
+ struct ovelowrap_struct *ox = &(osc->u.ovelowrap);
+ int diff = (ox->max - ox->min);
+ ox->val += osc_get(st, ox->step, 0);
+ while (ox->val < ox->min)
+ ox->val += diff;
+ while (ox->val > ox->max)
+ ox->val -= diff;
+ break;
+ }
+
+ case otyp_Phaser: {
+ struct ophaser_struct *ox = &(osc->u.ophaser);
+ ox->count++;
+ if (ox->count >= ox->phaselen) {
+ ox->count = 0;
+ ox->curphase++;
+ if (ox->curphase >= NUM_PHASES)
+ ox->curphase = 0;
+ }
+ break;
+ }
+
+ case otyp_RandPhaser: {
+ struct orandphaser_struct *ox = &(osc->u.orandphaser);
+ ox->count++;
+ if (ox->count >= ox->curphaselen) {
+ ox->count = 0;
+ ox->curphaselen = rand_range(ox->minphaselen, ox->maxphaselen);
+ ox->curphase++;
+ if (ox->curphase >= NUM_PHASES)
+ ox->curphase = 0;
+ }
+ break;
+ }
+
+ case otyp_Buffer: {
+ struct obuffer_struct *ox = &(osc->u.obuffer);
+ ox->firstel--;
+ if (ox->firstel < 0)
+ ox->firstel += st->num_els;
+ ox->el[ox->firstel] = osc_get(st, ox->val, 0);
+ /* We can assume that ox->val has already been incremented, since it
+ was created first. This is why new objects are put on the end
+ of the linked list... yeah, it's gross. */
+ break;
+ }
+
+ default:
+ break;
+ }
+ }
+}
diff --git a/hacks/glx/stonerview-osc.h b/hacks/glx/stonerview-osc.h
new file mode 100644
index 0000000..b8c0778
--- /dev/null
+++ b/hacks/glx/stonerview-osc.h
@@ -0,0 +1,175 @@
+/* StonerView: An eccentric visual toy.
+ Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com)
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+*/
+
+#ifndef __STONERVIEW_OSC_H__
+#define __STONERVIEW_OSC_H__
+
+/* This defines the osc_t object, which generates a stream of
+ numbers. It is the heart of the StonerSound/StonerView engine.
+
+ The idea is simple; an osc_t represents some function f(), which
+ can be evaluated to generate an infinite stream of integers (f(0),
+ f(1), f(2), f(3)...). Some of these functions are defined in
+ terms of other osc_t functions: f(i) = g(h(i)) or some such thing.
+
+ To simplify the code, we don't try to calculate f(i) for any
+ arbitrary i. Instead, we start with i=0. Calling osc_get(f)
+ returns f(0) for all osc_t's in the system. When we're ready, we
+ call osc_increment(), which advances every osc_t to i=1;
+ thereafter, calling osc_get(f) returns f(1). When you call
+ osc_increment() again, you get f(2). And so on. You can't go
+ backwards, or move forwards more than 1 at a time, or move some
+ osc_t's without moving others. This is a very restricted model, but
+ it's exactly what's needed for this system.
+
+ Now, there's an additional complication. To get the rippling
+ effect, we don't pull out single values, but *sets* of N elements
+ at a time. (N is defined by NUM_ELS below.) So f(i) is really an
+ ordered N-tuple (f(i,0), f(i,1), f(i,2), f(i,3), f(i,4)). And f()
+ generates an infinite stream of these N-tuples. The osc_get() call
+ really has two parameters; you call osc_get(f, n) to find the n'th
+ element of the current N-tuple. Remember, n must be between 0 and
+ n-1.
+
+ (Do *not* try to get an infinite stream f(i) by calling
+ osc_get(f, i) for i ranging to infinity! Use osc_increment() to
+ advance to the next N-tuple in the stream.)
+*/
+
+#define NUM_ELS (40) /* Forty polygons at a time. */
+
+#define NUM_PHASES (4) /* Some of the osc functions switch between P
+ alternatives. We arbitrarily choose P=4. */
+
+/* Here are the functions which are available.
+ Constant: f(i,n) = k. Always the same value. Very simple.
+ Wrap: f(i,n) slides up or down as i increases. There's a minimum and maximum
+ value, and a step. When the current value reaches the min or max, it jumps
+ to the other end and keeps moving the same direction.
+ Bounce: f(i,n) slides up and down as i increases. There's a minimum and
+ maximum value, and a step. When the current value reaches the min or max,
+ the step is flipped to move the other way.
+ Phaser: f(i,n) = floor(i / phaselen) modulo 4. That is, it generates
+ phaselen 0 values, and then phaselen 1 values, then phaselen 2 values,
+ then phaselen 3 values, then back to 0. (Phaselen is a parameter you
+ supply when you create the phaser.) As you see, this is much the same as
+ the Wrap function, with a minimum of 0, a maximum of 3, and a step of
+ 1/phaselen. But since this code uses integer math, fractional steps
+ aren't possible; it's easier to write a separate function.
+ RandPhaser: The same as Phaser, but the phaselen isn't fixed. It varies
+ randomly between a minimum and maximum value you supply.
+ Multiplex: There are five subsidiary functions within a multiplex function:
+ g0, g1, g2, g3, and a selector function s. Then:
+ f(i,n) = gX(i,n), where X = s(i,n). (Obviously s must generate only values
+ in the range 0 to 3. This is what the phaser functions are designed for,
+ but you can use anything.)
+ Linear: There are two subsidiary functions within this, a and b. Then:
+ f(i,n) = a(i,n) + n*b(i,n). This is an easy way to make an N-tuple that
+ forms a linear sequence, such as (41, 43, 45, 47, 49).
+ Buffer: This takes a subsidiary function g, and computes:
+ f(i,n) = g(i-n,0). That is, the 0th element of the N-tuple is the
+ *current* value of g; the 1st element is the *previous* value of g; the
+ 2nd element is the second-to-last value, and so on back in time. This
+ is a weird idea, but it causes exactly the rippling-change effect that
+ we want.
+
+ Note that Buffer only looks up g(i,0) -- it only uses the 0th elements of
+ the N-tuples that g generates. This saves time and memory, but it means
+ that certain things don't work. For example, if you try to build
+ Buffer(Linear(A,B)), B will have no effect, because Linear computes
+ a(i,n) + n*b(i,n), and inside the Buffer, n is always zero. On the other
+ hand, Linear(Buffer(A),Buffer(B)) works fine, and is probably what you
+ wanted anyway.
+ Similarly, Buffer(Buffer(A)) is the same as Buffer(A). Proof left as an
+ exercise.
+*/
+
+#define otyp_Constant (1)
+#define otyp_Bounce (2)
+#define otyp_Wrap (3)
+#define otyp_Phaser (4)
+#define otyp_RandPhaser (5)
+#define otyp_VeloWrap (7)
+#define otyp_Linear (6)
+#define otyp_Buffer (8)
+#define otyp_Multiplex (9)
+
+/* The osc_t structure itself. */
+typedef struct osc_struct {
+ int type; /* An otyp_* constant. */
+
+ struct osc_struct *next; /* osc.c uses this to maintain a private linked list
+ of all osc_t objects created. */
+
+ /* Union of the data used by all the possible osc_t functions. */
+ union {
+ struct {
+ int val;
+ } oconstant;
+ struct owrap_struct {
+ int min, max, step;
+ int val;
+ } owrap;
+ struct obounce_struct {
+ int min, max, step;
+ int val;
+ } obounce;
+ struct omultiplex_struct {
+ struct osc_struct *sel;
+ struct osc_struct *val[NUM_PHASES];
+ } omultiplex;
+ struct ophaser_struct {
+ int phaselen;
+ int count;
+ int curphase;
+ } ophaser;
+ struct orandphaser_struct {
+ int minphaselen, maxphaselen;
+ int count;
+ int curphaselen;
+ int curphase;
+ } orandphaser;
+ struct ovelowrap_struct {
+ int min, max;
+ struct osc_struct *step;
+ int val;
+ } ovelowrap;
+ struct olinear_struct {
+ struct osc_struct *base;
+ struct osc_struct *diff;
+ } olinear;
+ struct obuffer_struct {
+ struct osc_struct *val;
+ int firstel;
+ int el[NUM_ELS];
+ } obuffer;
+ } u;
+} osc_t;
+
+extern osc_t *new_osc_constant(stonerview_state *, int val);
+extern osc_t *new_osc_bounce(stonerview_state *, int min, int max, int step);
+extern osc_t *new_osc_wrap(stonerview_state *, int min, int max, int step);
+extern osc_t *new_osc_phaser(stonerview_state *, int phaselen);
+extern osc_t *new_osc_randphaser(stonerview_state *,
+ int minphaselen, int maxphaselen);
+extern osc_t *new_osc_velowrap(stonerview_state *,
+ int min, int max, osc_t *step);
+extern osc_t *new_osc_linear(stonerview_state *, osc_t *base, osc_t *diff);
+extern osc_t *new_osc_buffer(stonerview_state *st, osc_t *val);
+extern osc_t *new_osc_multiplex(stonerview_state *,
+ osc_t *sel, osc_t *ox0, osc_t *ox1,
+ osc_t *ox2, osc_t *ox3);
+
+extern int osc_get(stonerview_state *, osc_t *osc, int el);
+extern void osc_increment(stonerview_state *);
+
+#endif /* __STONERVIEW_OSC_H__ */
diff --git a/hacks/glx/stonerview-view.c b/hacks/glx/stonerview-view.c
new file mode 100644
index 0000000..baf40e4
--- /dev/null
+++ b/hacks/glx/stonerview-view.c
@@ -0,0 +1,134 @@
+/* StonerView: An eccentric visual toy.
+ Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com)
+ http://www.eblong.com/zarf/stonerview.html
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+*/
+
+/* Ported away from GLUT (so that it can do `-root' and work with xscreensaver)
+ by Jamie Zawinski <jwz@jwz.org>, 22-Jan-2001.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_COCOA
+# include "jwxyz.h"
+#elif defined(HAVE_ANDROID)
+# include <GLES/gl.h>
+#else /* real Xlib */
+# include <GL/glx.h>
+# include <GL/glu.h>
+#endif /* !HAVE_COCOA */
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include <stdlib.h>
+#include "stonerview.h"
+
+static GLfloat view_rotx = -45.0, view_roty = 0.0, view_rotz = 15.0;
+static GLfloat view_scale = 4.0;
+
+
+stonerview_state *
+stonerview_init_view(int wireframe_p, int transparent_p)
+{
+ stonerview_state *st = (stonerview_state *) calloc (1, sizeof(*st));
+
+ st->wireframe = wireframe_p;
+ st->transparent = transparent_p;
+ st->num_els = NUM_ELS;
+ st->elist = (stonerview_elem_t *) calloc (st->num_els, sizeof(*st->elist));
+
+ st->osctail = &st->oscroot;
+
+ /* for trackball, two-sided lighting and no face culling */
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
+
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+
+ glEnable(GL_NORMALIZE);
+
+ glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_BLEND);
+
+ if (st->transparent)
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+
+ return st;
+}
+
+/* callback: draw everything */
+void
+stonerview_win_draw(stonerview_state *st)
+{
+ int ix;
+ static const GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 };
+ static const GLfloat gray[] = { 0.6, 0.6, 0.6, 1.0 };
+
+ glDrawBuffer(GL_BACK);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glScalef(view_scale, view_scale, view_scale);
+ glRotatef(view_rotx, 1.0, 0.0, 0.0);
+ glRotatef(view_roty, 0.0, 1.0, 0.0);
+ glRotatef(view_rotz, 0.0, 0.0, 1.0);
+
+ glShadeModel(GL_FLAT);
+
+ for (ix=0; ix < st->num_els; ix++) {
+ stonerview_elem_t *el = &st->elist[ix];
+
+ glNormal3f(0.0, 0.0, 1.0);
+
+ /* outline the square */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, (st->wireframe ? white : gray));
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(el->pos[0]-el->vervec[0], el->pos[1]-el->vervec[1], el->pos[2]);
+ glVertex3f(el->pos[0]+el->vervec[1], el->pos[1]-el->vervec[0], el->pos[2]);
+ glVertex3f(el->pos[0]+el->vervec[0], el->pos[1]+el->vervec[1], el->pos[2]);
+ glVertex3f(el->pos[0]-el->vervec[1], el->pos[1]+el->vervec[0], el->pos[2]);
+ glEnd();
+
+ if (st->wireframe) continue;
+
+ /* fill the square */
+ {
+ GLfloat col[4];
+ col[0] = el->col[0]; col[1] = el->col[1];
+ col[2] = el->col[2]; col[3] = el->col[3];
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
+ }
+ glBegin(GL_QUADS);
+ glVertex3f(el->pos[0]-el->vervec[0], el->pos[1]-el->vervec[1], el->pos[2]);
+ glVertex3f(el->pos[0]+el->vervec[1], el->pos[1]-el->vervec[0], el->pos[2]);
+ glVertex3f(el->pos[0]+el->vervec[0], el->pos[1]+el->vervec[1], el->pos[2]);
+ glVertex3f(el->pos[0]-el->vervec[1], el->pos[1]+el->vervec[0], el->pos[2]);
+ glEnd();
+ }
+
+ glPopMatrix();
+}
+
+void
+stonerview_win_release(stonerview_state *st)
+{
+ free (st->elist);
+ /*free (st->oscroot); -- #### how do we free this? */
+ free (st);
+}
diff --git a/hacks/glx/stonerview.c b/hacks/glx/stonerview.c
new file mode 100644
index 0000000..880ef01
--- /dev/null
+++ b/hacks/glx/stonerview.c
@@ -0,0 +1,154 @@
+/* StonerView: An eccentric visual toy.
+ Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com)
+
+ For the latest version, source code, and links to more of my stuff, see:
+ http://www.eblong.com/zarf/stonerview.html
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+*/
+
+/* Ported away from GLUT (so that it can do `-root' and work with xscreensaver)
+ by Jamie Zawinski <jwz@jwz.org>, 22-Jan-2001.
+
+ Revamped to work in the xlockmore framework so that it will also work
+ with the MacOS X port of xscreensaver by jwz, 21-Feb-2006.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n"
+
+# define release_stonerview 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+
+#ifdef USE_GL /* whole file */
+
+#include "stonerview.h"
+#include "gltrackball.h"
+
+#define DEF_TRANSPARENT "True"
+
+typedef struct {
+ GLXContext *glx_context;
+ stonerview_state *st;
+ trackball_state *trackball;
+ Bool button_down_p;
+} stonerview_configuration;
+
+static stonerview_configuration *bps = NULL;
+
+static Bool transparent_p;
+
+
+static XrmOptionDescRec opts[] = {
+ { "-transparent", ".transparent", XrmoptionNoArg, "True" },
+ { "+transparent", ".transparent", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&transparent_p, "transparent", "Transparent", DEF_TRANSPARENT, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt stonerview_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+ENTRYPOINT void
+reshape_stonerview (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport(0, 0, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0, 0.0, -40.0);
+}
+
+
+ENTRYPOINT void
+init_stonerview (ModeInfo *mi)
+{
+ stonerview_configuration *bp;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ bp->trackball = gltrackball_init (False);
+ bp->st = stonerview_init_view(MI_IS_WIREFRAME(mi), transparent_p);
+ stonerview_init_move(bp->st);
+
+ reshape_stonerview (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+}
+
+
+ENTRYPOINT void
+draw_stonerview (ModeInfo *mi)
+{
+ stonerview_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glPushMatrix ();
+ glRotatef( current_device_rotation(), 0, 0, 1);
+ gltrackball_rotate (bp->trackball);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (h, h, h);
+ }
+# endif
+
+ stonerview_win_draw(bp->st);
+ if (! bp->button_down_p)
+ stonerview_move_increment(bp->st);
+ glPopMatrix ();
+
+ mi->polygon_count = NUM_ELS;
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(MI_DISPLAY (mi), MI_WINDOW(mi));
+}
+
+ENTRYPOINT void
+free_stonerview (ModeInfo *mi)
+{
+ stonerview_configuration *bp = &bps[MI_SCREEN(mi)];
+ if (bp->st)
+ stonerview_win_release (bp->st);
+}
+
+ENTRYPOINT Bool
+stonerview_handle_event (ModeInfo *mi, XEvent *event)
+{
+ stonerview_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+
+ return False;
+}
+
+XSCREENSAVER_MODULE ("StonerView", stonerview)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/stonerview.h b/hacks/glx/stonerview.h
new file mode 100644
index 0000000..0afd7a6
--- /dev/null
+++ b/hacks/glx/stonerview.h
@@ -0,0 +1,59 @@
+/* StonerView: An eccentric visual toy.
+ Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com)
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+*/
+
+#ifndef __STONERVIEW_H__
+# define __STONERVIEW_H__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+typedef struct stonerview_state stonerview_state;
+
+#include "stonerview-osc.h"
+#include "stonerview-move.h"
+
+struct stonerview_state {
+
+ int wireframe;
+ int transparent;
+
+ /* The list of polygons. This is filled in by move_increment(), and rendered
+ by perform_render(). */
+ int num_els;
+ stonerview_elem_t *elist;
+
+ /* A linked list of all osc_t objects created. New objects are added
+ to the end of the list, not the beginning. */
+ osc_t *oscroot;
+ osc_t **osctail;
+
+ /* The polygons are controlled by four parameters. Each is represented by
+ an osc_t object, which is just something that returns a stream of numbers.
+ (Originally the name stood for "oscillator", but it does ever so much more
+ now... see osc.c.)
+ Imagine a cylinder with a vertical axis (along the Z axis), stretching
+ from Z=1 to Z=-1, and a radius of 1.
+ */
+ osc_t *theta; /* Angle around the axis. This is expressed in
+ hundredths of a degree, so it's actually 0 to 36000. */
+ osc_t *rad; /* Distance from the axis. This goes up to 1000,
+ but we actually allow negative distances -- that just
+ goes to the opposite side of the circle -- so the range
+ is really -1000 to 1000. */
+ osc_t *alti; /* Height (Z position). This goes from -1000 to 1000. */
+ osc_t *color; /* Consider this to be an angle of a circle going
+ around the color wheel. It's in tenths of a degree
+ (consistency is all I ask) so it ranges from 0 to 3600. */
+};
+
+#endif /* __STONERVIEW_H__ */
diff --git a/hacks/glx/stonerview.man b/hacks/glx/stonerview.man
new file mode 100644
index 0000000..820e9af
--- /dev/null
+++ b/hacks/glx/stonerview.man
@@ -0,0 +1,53 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+stonerview - 3D undulating ribbons of squares.
+.SH SYNOPSIS
+.B stonerview
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Chains of colorful squares dance around each other in complex spiral
+patterns. This is a clone of the SGI "electropaint" screen saver.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Andrew Plotkin. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Andrew Plotkin.
diff --git a/hacks/glx/superquadrics.c b/hacks/glx/superquadrics.c
new file mode 100644
index 0000000..3c08335
--- /dev/null
+++ b/hacks/glx/superquadrics.c
@@ -0,0 +1,807 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* superquadrics --- 3D mathematical shapes */
+
+#if 0
+static const char sccsid[] = "@(#)superquadrics.c 4.07 97/11/24 xlockmore";
+#endif
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * Superquadrics were invented by Dr. Alan Barr of Caltech University.
+ * They were first published in "Computer Graphics and Applications",
+ * volume 1, number 1, 1981, in the article "Superquadrics and Angle-
+ * Preserving Transformations." Dr. Barr based the Superquadrics on
+ * Piet Hein's "super ellipses." Super ellipses are like 2D ellipses,
+ * except that the formula includes an exponent, raising its X and Y
+ * values to a (fractional) power, and allowing them to gradually
+ * change from round to square edges. Superquadrics extend this
+ * idea into 3 dimensions, using two exponents to modify a
+ * quadric surface in a similar fashion.
+ *
+ * Revision History:
+ * 30-Mar-97: Turned into a module for xlockmore 4.02 alpha. The code
+ * is almost unrecognizable now from the first revision, except for
+ * a few remaining two-letter variable names. I still don't have
+ * the normal vectors working right (I wrote the buggy normal vector
+ * code myself, can you tell?)
+ * 07-Jan-97: A legend reborn; Superquadrics make an appearance as a
+ * real OpenGL program written in C. I can even render them with
+ * proper lighting and specular highlights. Gee, they look almost
+ * as good now as the original color plates of them that my uncle
+ * showed me as a child in 1981. I don't know what computer hardware
+ * he was using at the time, but it's taken a couple decades for the
+ * PC clone hardware to catch up to it.
+ * 05-Jan-97: After almost a decade, Superquadrics had almost faded away
+ * into the myths and folklore of all the things my brother and I played
+ * with on computers when we were kids with too much time on our hands.
+ * I had since gotten involved in Unix, OpenGL, and other things.
+ * A sudden flash of inspiration caused me to dig out the old Pascal
+ * source code, run it through p2c, and start ripping away the old
+ * wireframe rendering code, to be replaced by OpenGL.
+ * Late 1989 or early 1990: Around this time I did the Turbo Pascal
+ * port of the Superquadrics. Unfortunately, many of the original variable
+ * names remained the same from the C= 64 original. This was unfortunate
+ * because BASIC on the c64 only allowed 2-letter, global variable names.
+ * But the speed improvement over BASIC was very impressive at the time.
+ * Thanksgiving, 1987: Written. My uncle Al, who invented Superquadrics some
+ * years earlier, came to visit us. I was a high school kid at the time,
+ * with nothing more than a Commodore 64. Somehow we wrote this program,
+ * (he did the math obviously, I just coded it into BASIC for the c64).
+ * Yeah, 320x200 resolution, colorless white wireframe, and half an hour
+ * rendering time per superquadric. PLOT x,y. THOSE were the days.
+ * In the following years I would port Superquadrics to AppleBASIC,
+ * AmigaBASIC, and then Turbo Pascal for IBM clones. 5 minutes on a 286!
+ * Talk about fast rendering! But these days, when my Pentium 166 runs
+ * the same program, the superquadric will already be waiting on the
+ * screen before my monitor can change frequency from text to graphics
+ * mode. Can't time the number of minutes that way! Darn ;)
+ *
+ * Ed Mackey
+ */
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 40000 \n" \
+ "*count: 25 \n" \
+ "*cycles: 40 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_superquadrics 0
+# define release_superquadrics 0
+# define superquadrics_handle_event 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+/*-
+ * Note for low-CPU-speed machines: If your frame rate is so low that
+ * attempts at animation appear futile, try using "-cycles 1", which puts
+ * Superquadrics into kind of a slide-show mode. It will still use up
+ * all of your CPU power, but it may look nicer.
+ */
+
+#define DEF_SPINSPEED "5.0"
+
+static float spinspeed;
+
+static XrmOptionDescRec opts[] =
+{
+ {"-spinspeed", ".superquadrics.spinspeed", XrmoptionSepArg, 0}
+};
+static argtype vars[] =
+{
+ {&spinspeed, "spinspeed", "Spinspeed", DEF_SPINSPEED, t_Float}
+};
+static OptionStruct desc[] =
+{
+ {"-spinspeed num", "speed of rotation, in degrees per frame"}
+};
+
+ENTRYPOINT ModeSpecOpt superquadrics_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+#ifdef USE_MODULES
+ModStruct superquadrics_description =
+{"superquadrics", "init_superquadrics", "draw_superquadrics", NULL,
+ "refresh_superquadrics", "init_superquadrics", NULL, &superquadrics_opts,
+ 1000, 25, 40, 1, 4, 1.0, "",
+ "Shows 3D mathematical shapes", 0, NULL};
+
+#endif
+
+#define MaxRes 50
+#define MinRes 5
+
+typedef double dimi[MaxRes + 1];
+
+typedef struct {
+ double xExponent, yExponent;
+ GLfloat r[4], g[4], b[4];
+ long Mode;
+ int rotx, rotz;
+} state;
+
+typedef struct {
+ GLXContext *glx_context;
+ int dist, wireframe, flatshade, shownorms, maxcount, maxwait;
+ int counter, viewcount, viewwait, mono;
+ GLfloat curmat[4][4], rotx, roty, rotz, spinspeed;
+ /* In dimi: the first letter stands for cosine/sine, the second
+ * stands for North, South, East, or West. I think.
+ */
+ dimi cs, se, sw, sn, ss, ce, cw, cn, Prevxx, Prevyy, Prevzz,
+ Prevxn, Prevyn, Prevzn;
+ double xExponent, yExponent, Mode;
+ int resolution;
+ state now, later;
+
+ int pats[4][4];
+ int cullmode;
+
+} superquadricsstruct;
+
+static superquadricsstruct *superquadrics = NULL;
+
+#define CLIP_NORMALS 10000.0
+
+static void ReshapeSuperquadrics(int w, int h);
+
+static int
+myrand(int range)
+{
+ return ((int) (((float) range) * LRAND() / (MAXRAND)));
+}
+
+static float
+myrandreal(void)
+{
+ return (LRAND() / (MAXRAND));
+}
+
+/* Some old, old, OLD code follows. Ahh this takes me back..... */
+
+/* Output from p2c, the Pascal-to-C translator */
+/* From input file "squad.pas" */
+
+static double
+XtoY(double x, double y)
+{
+ double z, a;
+
+ /* This is NOT your typical raise-X-to-the-Y-power function. Do not attempt
+ * to replace this with a standard exponent function. If you must, just
+ * replace the "a = exp(y * log(z));" line with something faster.
+ */
+
+ z = fabs(x);
+ if (z < 1e-20) {
+ a = 0.0;
+ return a;
+ }
+ a = exp(y * log(z));
+ if (a > CLIP_NORMALS)
+ a = CLIP_NORMALS;
+ if (x < 0)
+ a = -a;
+ return a;
+}
+
+
+static double
+Sine(double x, double e)
+{
+ /* This is just the sine wave raised to the exponent. BUT, you can't
+ * raise negative numbers to fractional exponents. So we have a special
+ * XtoY routune which handles it in a way useful to superquadrics.
+ */
+
+ return (XtoY(sin(x), e));
+}
+
+
+static double
+Cosine(double x, double e)
+{
+ return (XtoY(cos(x), e));
+}
+
+
+static void
+MakeUpStuff(int allstuff, superquadricsstruct * sp)
+{
+ int dostuff;
+ int t, pat;
+ GLfloat r, g, b, r2, g2, b2;
+
+ /* randomize it. */
+
+ if (sp->maxcount < 2)
+ allstuff = 1;
+ dostuff = allstuff * 15;
+ if (!dostuff) {
+ dostuff = myrand(3) + 1;
+ if (myrand(2) || (dostuff & 1))
+ dostuff |= 4;
+ if (myrand(2))
+ dostuff |= 8;
+ }
+ if (dostuff & 1) {
+ sp->later.xExponent = (((long) floor(myrandreal() * 250 + 0.5)) / 100.0) + 0.1;
+ sp->later.yExponent = (((long) floor(myrandreal() * 250 + 0.5)) / 100.0) + 0.1;
+
+ /* Increase the 2.0 .. 2.5 range to 2.0 .. 3.0 */
+ if (sp->later.xExponent > 2.0)
+ sp->later.xExponent = (sp->later.xExponent * 2.0) - 2.0;
+ if (sp->later.yExponent > 2.0)
+ sp->later.yExponent = (sp->later.yExponent * 2.0) - 2.0;
+ }
+ if (dostuff & 2) {
+ do {
+ sp->later.Mode = myrand(3L) + 1;
+ } while (!allstuff && (sp->later.Mode == sp->now.Mode));
+ /* On init: make sure it can stay in mode 1 if it feels like it. */
+ }
+ if (dostuff & 4) {
+ if (sp->mono) {
+ if (sp->wireframe) {
+ b = g = r = 1.0;
+ b2 = g2 = r2 = 1.0;
+ } else {
+ b = g = r = (GLfloat) (140 + myrand(100)) / 255.0;
+ b2 = g2 = r2 = ((r > 0.69) ? (1.0 - r) : r);
+ }
+ } else {
+ r = (GLfloat) (40 + myrand(200)) / 255.0;
+ g = (GLfloat) (40 + myrand(200)) / 255.0;
+ b = (GLfloat) (40 + myrand(200)) / 255.0;
+
+ r2 = ((myrand(4) && ((r < 0.31) || (r > 0.69))) ? (1.0 - r) : r);
+ g2 = ((myrand(4) && ((g < 0.31) || (g > 0.69))) ? (1.0 - g) : g);
+ b2 = ((myrand(4) && ((b < 0.31) || (b > 0.69))) ? (1.0 - b) : b);
+ }
+
+ pat = myrand(4);
+ for (t = 0; t < 4; ++t) {
+ sp->later.r[t] = sp->pats[pat][t] ? r : r2;
+ sp->later.g[t] = sp->pats[pat][t] ? g : g2;
+ sp->later.b[t] = sp->pats[pat][t] ? b : b2;
+ }
+ }
+ if (dostuff & 8) {
+ sp->later.rotx = myrand(360) - 180;
+ sp->later.rotz = myrand(160) - 80;
+ }
+}
+
+static void
+inputs(superquadricsstruct * sp)
+{
+ int iv;
+ double u, v, mode3, cn3, inverter2, flatu, flatv;
+
+ if (sp->Mode < 1.000001) {
+ mode3 = 1.0;
+ cn3 = 0.0;
+ inverter2 = 1.0;
+ } else if (sp->Mode < 2.000001) {
+ mode3 = 1.0;
+ cn3 = (sp->Mode - 1.0) * 1.5;
+ inverter2 = (sp->Mode - 1.0) * -2.0 + 1.0;
+ } else {
+ mode3 = (sp->Mode - 1.0);
+ cn3 = (sp->Mode - 2.0) / 2.0 + 1.5;
+ inverter2 = -1.0;
+ }
+
+ if (sp->flatshade) {
+ flatu = M_PI / (sp->resolution - 1);
+ flatv = mode3 * M_PI / ((sp->resolution - 1) * 2);
+ } else {
+ flatu = flatv = 0.0;
+ }
+
+ /* (void) printf("Calculating....\n"); */
+ for (iv = 1; iv <= sp->resolution; iv++) {
+
+ /* u ranges from PI down to -PI */
+ u = (1 - iv) * 2 * M_PI / (sp->resolution - 1) + M_PI;
+
+ /* v ranges from PI/2 down to -PI/2 */
+ v = (1 - iv) * mode3 * M_PI / (sp->resolution - 1) + M_PI * (mode3 / 2.0);
+
+ /* Use of xExponent */
+ sp->se[iv] = Sine(u, sp->xExponent);
+ sp->ce[iv] = Cosine(u, sp->xExponent);
+ sp->sn[iv] = Sine(v, sp->yExponent);
+ sp->cn[iv] = Cosine(v, sp->yExponent) * inverter2 + cn3;
+
+ /* Normal vector computations only */
+ sp->sw[iv] = Sine(u + flatu, 2 - sp->xExponent);
+ sp->cw[iv] = Cosine(u + flatu, 2 - sp->xExponent);
+ sp->ss[iv] = Sine(v + flatv, 2 - sp->yExponent) * inverter2;
+ sp->cs[iv] = Cosine(v + flatv, 2 - sp->yExponent);
+ } /* next */
+
+ /* Now fix up the endpoints */
+ sp->se[sp->resolution] = sp->se[1];
+ sp->ce[sp->resolution] = sp->ce[1];
+
+ if (sp->Mode > 2.999999) {
+ sp->sn[sp->resolution] = sp->sn[1];
+ sp->cn[sp->resolution] = sp->cn[1];
+ }
+}
+
+
+static int
+DoneScale(superquadricsstruct * sp)
+{
+ double xx, yy, zz, xp = 0, yp = 0, zp = 0, xn, yn, zn, xnp = 0,
+ ynp = 0, znp = 0;
+ int ih, iv;
+ int polys = 0;
+
+ /* Hey don't knock my 2-letter variable names. Simon's BASIC rules, man! ;-> */
+ /* Just kidding..... */
+ int toggle = 0;
+
+ for (ih = 1; ih <= sp->resolution; ih++) {
+ toggle ^= 2;
+ for (iv = 1; iv <= sp->resolution; iv++) {
+ toggle ^= 1;
+ if (sp->wireframe)
+ glColor3f(sp->curmat[toggle][0], sp->curmat[toggle][1], sp->curmat[toggle][2]);
+ else
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, sp->curmat[toggle]);
+
+ xx = sp->cn[iv] * sp->ce[ih];
+ zz = sp->cn[iv] * sp->se[ih];
+ yy = sp->sn[iv];
+
+ if (sp->wireframe) {
+ if ((ih > 1) || (iv > 1)) {
+ glBegin(GL_LINES);
+ if (ih > 1) {
+ glVertex3f(xx, yy, zz);
+ glVertex3f(sp->Prevxx[iv], sp->Prevyy[iv], sp->Prevzz[iv]);
+ polys++;
+ }
+ if (iv > 1) {
+ glVertex3f(xx, yy, zz);
+ glVertex3f(sp->Prevxx[iv - 1], sp->Prevyy[iv - 1], sp->Prevzz[iv - 1]);
+ polys++;
+ }
+/* PURIFY 4.0.1 reports an unitialized memory read on the next line when using
+ * MesaGL 2.2 and -mono. This has been fixed in MesaGL 2.3 and later. */
+ glEnd();
+ }
+ } else {
+ if ((sp->cs[iv] > 1e+10) || (sp->cs[iv] < -1e+10)) {
+ xn = sp->cs[iv];
+ zn = sp->cs[iv];
+ yn = sp->ss[iv];
+ } else {
+ xn = sp->cs[iv] * sp->cw[ih];
+ zn = sp->cs[iv] * sp->sw[ih];
+ yn = sp->ss[iv];
+ }
+ if ((ih > 1) && (iv > 1)) {
+ glNormal3f(xn, yn, zn);
+ glBegin(GL_POLYGON);
+ glVertex3f(xx, yy, zz);
+ if (!sp->flatshade)
+ glNormal3f(sp->Prevxn[iv], sp->Prevyn[iv], sp->Prevzn[iv]);
+ glVertex3f(sp->Prevxx[iv], sp->Prevyy[iv], sp->Prevzz[iv]);
+ if (!sp->flatshade)
+ glNormal3f(xnp, ynp, znp);
+ glVertex3f(xp, yp, zp);
+ if (!sp->flatshade)
+ glNormal3f(sp->Prevxn[iv - 1], sp->Prevyn[iv - 1], sp->Prevzn[iv - 1]);
+ glVertex3f(sp->Prevxx[iv - 1], sp->Prevyy[iv - 1], sp->Prevzz[iv - 1]);
+ polys++;
+ glEnd();
+ }
+ if (sp->shownorms) {
+ if (!sp->flatshade)
+ glShadeModel(GL_FLAT);
+ glDisable(GL_LIGHTING);
+ glBegin(GL_LINES);
+ glVertex3f(xx, yy, zz);
+ glVertex3f(xx + xn, yy + yn, zz + zn);
+ polys++;
+ glEnd();
+ if (!sp->flatshade)
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_LIGHTING);
+ }
+ xnp = sp->Prevxn[iv];
+ ynp = sp->Prevyn[iv];
+ znp = sp->Prevzn[iv];
+ sp->Prevxn[iv] = xn;
+ sp->Prevyn[iv] = yn;
+ sp->Prevzn[iv] = zn;
+ }
+
+ xp = sp->Prevxx[iv];
+ yp = sp->Prevyy[iv];
+ zp = sp->Prevzz[iv];
+ sp->Prevxx[iv] = xx;
+ sp->Prevyy[iv] = yy;
+ sp->Prevzz[iv] = zz;
+
+ } /* next */
+ } /* next */
+ return polys;
+}
+
+/**** End of really old code ****/
+
+static void
+SetCull(int init, superquadricsstruct * sp)
+{
+ if (init) {
+ glDisable(GL_CULL_FACE);
+ sp->cullmode = 0;
+ return;
+ }
+ if (sp->Mode < 1.0001) {
+ if (sp->cullmode != 1) {
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ sp->cullmode = 1;
+ }
+ } else if (sp->Mode > 2.9999) {
+ if (sp->cullmode != 2) {
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_FRONT);
+ sp->cullmode = 2;
+ }
+ } else {
+ if (sp->cullmode) {
+ glDisable(GL_CULL_FACE);
+ sp->cullmode = 0;
+ }
+ }
+}
+
+static void
+SetCurrentShape(superquadricsstruct * sp)
+{
+ int t;
+
+ sp->xExponent = sp->now.xExponent = sp->later.xExponent;
+ sp->yExponent = sp->now.yExponent = sp->later.yExponent;
+
+ for (t = 0; t < 4; ++t) {
+ sp->curmat[t][0] = sp->now.r[t] = sp->later.r[t];
+ sp->curmat[t][1] = sp->now.g[t] = sp->later.g[t];
+ sp->curmat[t][2] = sp->now.b[t] = sp->later.b[t];
+ }
+
+ sp->Mode = (double) (sp->now.Mode = sp->later.Mode);
+ sp->rotx = sp->now.rotx = sp->later.rotx;
+ sp->rotz = sp->now.rotz = sp->later.rotz;
+
+ sp->counter = -sp->maxwait;
+
+ inputs(sp);
+}
+
+static void
+NextSuperquadric(superquadricsstruct * sp)
+{
+ double fnow, flater;
+ int t;
+
+ sp->roty -= sp->spinspeed;
+ while (sp->roty >= 360.0)
+ sp->roty -= 360.0;
+ while (sp->roty < 0.0)
+ sp->roty += 360.0;
+
+ --sp->viewcount;
+
+ if (sp->counter > 0) {
+ if (--sp->counter == 0) {
+ SetCurrentShape(sp);
+ if (sp->counter == 0) { /* Happens if sp->maxwait == 0 */
+ MakeUpStuff(0, sp);
+ sp->counter = sp->maxcount;
+ }
+ } else {
+ fnow = (double) sp->counter / (double) sp->maxcount;
+ flater = (double) (sp->maxcount - sp->counter) / (double) sp->maxcount;
+ sp->xExponent = sp->now.xExponent * fnow + sp->later.xExponent * flater;
+ sp->yExponent = sp->now.yExponent * fnow + sp->later.yExponent * flater;
+
+ for (t = 0; t < 4; ++t) {
+ sp->curmat[t][0] = sp->now.r[t] * fnow + sp->later.r[t] * flater;
+ sp->curmat[t][1] = sp->now.g[t] * fnow + sp->later.g[t] * flater;
+ sp->curmat[t][2] = sp->now.b[t] * fnow + sp->later.b[t] * flater;
+ }
+
+ sp->Mode = (double) sp->now.Mode * fnow + (double) sp->later.Mode * flater;
+ sp->rotx = (double) sp->now.rotx * fnow + (double) sp->later.rotx * flater;
+ sp->rotz = (double) sp->now.rotz * fnow + (double) sp->later.rotz * flater;
+
+ inputs(sp);
+ }
+ } else {
+ if (++sp->counter >= 0) {
+ MakeUpStuff(0, sp);
+ sp->counter = sp->maxcount;
+ }
+ }
+}
+
+static int
+DisplaySuperquadrics(ModeInfo *mi)
+{
+ superquadricsstruct *sp = &superquadrics[MI_SCREEN(mi)];
+ int polys = 0;
+ glDrawBuffer(GL_BACK);
+ if (sp->wireframe)
+ glClear(GL_COLOR_BUFFER_BIT);
+ else
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (sp->viewcount < 1) {
+ sp->viewcount = sp->viewwait;
+/* ReshapeSuperquadrics(-1, -1);*/
+ }
+ glPushMatrix();
+ glTranslatef(0.0, 0.0, -((GLfloat) (sp->dist) / 16.0) - (sp->Mode * 3.0 - 1.0)); /* viewing transform */
+ glRotatef(sp->rotx, 1.0, 0.0, 0.0); /* pitch */
+ glRotatef(sp->rotz, 0.0, 0.0, 1.0); /* bank */
+ glRotatef(sp->roty, 0.0, 1.0, 0.0); /* "spin", like heading but comes after P & B */
+
+ SetCull(0, sp);
+
+ glScalef(0.7, 0.7, 0.7); /* jwz: scale it down a bit */
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ polys = DoneScale(sp);
+
+ glPopMatrix();
+
+ /* Remember to flush & swap the buffers after calling this function! */
+ return polys;
+}
+
+static int
+NextSuperquadricDisplay(ModeInfo *mi)
+{
+ superquadricsstruct *sp = &superquadrics[MI_SCREEN(mi)];
+ NextSuperquadric(sp);
+ return DisplaySuperquadrics(mi);
+}
+
+#define MINSIZE 200
+static void
+ReshapeSuperquadrics(int w, int h)
+{
+#if 0
+ int maxsize, cursize;
+
+ maxsize = (w < h) ? w : h;
+ if (maxsize <= MINSIZE) {
+ cursize = maxsize;
+ } else {
+ cursize = myrand(maxsize - MINSIZE) + MINSIZE;
+ }
+ if ((w > cursize) && (h > cursize)) {
+ glViewport(myrand(w - cursize), myrand(h - cursize), cursize, cursize);
+ w = h = cursize;
+ } else {
+ glViewport(0, 0, w, h);
+ }
+#else
+ int y = 0;
+
+ if (w > h * 5) { /* tiny window: show middle */
+ h = w;
+ y = -h/2;
+ }
+
+ glViewport(0, y, w, h);
+#endif
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(15.0, (GLfloat) w / (GLfloat) h, 0.1, 200.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+static void
+InitSuperquadrics(int wfmode, int snorm, int res, int count, float speed, superquadricsstruct * sp)
+{
+ GLfloat ambient[] =
+ {0.4, 0.4, 0.4, 1.0};
+ GLfloat position[] =
+ {10.0, 1.0, 1.0, 10.0};
+ GLfloat mat_diffuse[] =
+ {1.0, 0.5, 0.5, 1.0};
+ GLfloat mat_specular[] =
+ {0.8, 0.8, 0.8, 1.0};
+ GLfloat mat_shininess[] =
+ {50.0};
+
+ int t;
+
+ for (t = 0; t < 4; ++t) {
+ sp->curmat[t][0] = 0.0;
+ sp->curmat[t][1] = 0.0;
+ sp->curmat[t][2] = 0.0;
+ sp->curmat[t][3] = 1.0;
+ }
+
+ sp->rotx = 35.0;
+ sp->roty = 0.0;
+ sp->rotz = 0.0;
+ sp->dist = (16 << 3);
+ sp->wireframe = sp->flatshade = sp->shownorms = 0;
+ sp->maxcount = count;
+ if (sp->maxcount < 1)
+ sp->maxcount = 1;
+ sp->maxwait = sp->maxcount >> 1;
+ SetCull(1, sp);
+
+ sp->mono = 0;
+ sp->spinspeed = speed;
+ sp->viewcount = sp->viewwait = (sp->maxcount < 2) ? 1 : (sp->maxcount << 3);
+
+ if (res < MinRes)
+ res = MinRes;
+ if (res > MaxRes)
+ res = MaxRes;
+ sp->resolution = res;
+
+ if (wfmode == 2)
+ sp->flatshade = 1;
+ else if (wfmode)
+ sp->wireframe = 1;
+
+ if (snorm)
+ sp->shownorms = 1;
+
+ glClearDepth(1.0);
+
+ if (sp->wireframe) {
+ glShadeModel(GL_FLAT);
+ glDisable(GL_LIGHTING);
+ glColor3f(mat_diffuse[0], mat_diffuse[1], mat_diffuse[2]);
+ } else {
+ if (sp->flatshade) {
+ glShadeModel(GL_FLAT);
+ position[0] = 1.0;
+ position[3] = 0.0;
+ }
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_DEPTH_TEST);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+
+ /*glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, mat_diffuse); */
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);
+
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
+
+ glFrontFace(GL_CW);
+ glEnable(GL_NORMALIZE);
+ }
+
+ MakeUpStuff(1, sp);
+ SetCurrentShape(sp);
+ MakeUpStuff(1, sp); /* Initialize it */
+ sp->counter = sp->maxcount;
+}
+
+/* End of superquadrics main functions */
+
+ENTRYPOINT void
+init_superquadrics(ModeInfo * mi)
+{
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int screen = MI_SCREEN(mi);
+
+ superquadricsstruct *sp;
+
+ MI_INIT (mi, superquadrics);
+ sp = &superquadrics[screen];
+ sp->mono = (MI_IS_MONO(mi) ? 1 : 0);
+
+ sp->pats[1][1] = 1;
+ sp->pats[1][3] = 1;
+ sp->pats[2][2] = 1;
+ sp->pats[2][3] = 1;
+ sp->pats[3][1] = 1;
+ sp->pats[3][2] = 1;
+
+/* {0, 0, 0, 0},
+ {0, 1, 0, 1},
+ {0, 0, 1, 1},
+ {0, 1, 1, 0}
+ */
+
+ if ((sp->glx_context = init_GL(mi)) != NULL) {
+
+ InitSuperquadrics(MI_IS_WIREFRAME(mi), 0,
+ MI_COUNT(mi), MI_CYCLES(mi), spinspeed, sp);
+ ReshapeSuperquadrics(MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ DisplaySuperquadrics(mi);
+ glFinish();
+ glXSwapBuffers(display, window);
+ } else {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+ENTRYPOINT void
+draw_superquadrics(ModeInfo * mi)
+{
+ superquadricsstruct *sp = &superquadrics[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!sp->glx_context)
+ return;
+
+ glXMakeCurrent(display, window, *(sp->glx_context));
+
+ mi->polygon_count = NextSuperquadricDisplay(mi);
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+#ifndef STANDALONE
+ENTRYPOINT void
+refresh_superquadrics(ModeInfo * mi)
+{
+ /* Nothing happens here */
+}
+#endif
+
+ENTRYPOINT void
+reshape_superquadrics(ModeInfo * mi, int width, int height)
+{
+ ReshapeSuperquadrics(MI_WIDTH(mi), MI_HEIGHT(mi));
+}
+
+
+#endif
+
+/* End of superquadrics.c */
+
+XSCREENSAVER_MODULE ("Superquadrics", superquadrics)
diff --git a/hacks/glx/superquadrics.man b/hacks/glx/superquadrics.man
new file mode 100644
index 0000000..8a127f0
--- /dev/null
+++ b/hacks/glx/superquadrics.man
@@ -0,0 +1,70 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+superquadrics - morphing 3d shapes.
+.SH SYNOPSIS
+.B superquadrics
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-spinspeed \fInumber\fP]
+[\-count \fInumber\fP]
+[\-cycles \fInumber\fP]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Ed Mackey reports that he wrote the first version of this program in BASIC
+on a Commodore 64 in 1987, as a 320x200 black and white wireframe. Now it
+is GL and has specular reflections.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 40000 (0.04 seconds.).
+.TP 8
+.B \-spinspeed \fInumber\fP
+0.1 - 15.0. Default: 5.0.
+.TP 8
+.B \-count \fInumber\fP
+0 - 100. Default: 25.
+.TP 8
+.B \-cycles \fInumber\fP
+0 - 100. Default: 40.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2002 by Ed Mackey. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Ed Mackey.
diff --git a/hacks/glx/surfaces.c b/hacks/glx/surfaces.c
new file mode 100644
index 0000000..4c79740
--- /dev/null
+++ b/hacks/glx/surfaces.c
@@ -0,0 +1,648 @@
+/* Surface --- Parametric 3d surfaces visualization */
+
+/*
+ * Revision History:
+ * 2000: written by Andrey Mirtchovski <mirtchov@cpsc.ucalgary.ca>
+ *
+ * 01-Mar-2003 mirtchov Modified as a xscreensaver hack.
+ * 01-jan-2009 steger Renamed from klein.c to surfaces.c.
+ * Removed the Klein bottle.
+ * Added many new surfaces.
+ * Added many command line options.
+ *
+ */
+
+/* surfaces to draw */
+#define SURFACE_RANDOM -1
+#define SURFACE_DINI 0
+#define SURFACE_ENNEPER 1
+#define SURFACE_KUEN 2
+#define SURFACE_MOEBIUS 3
+#define SURFACE_SEASHELL 4
+#define SURFACE_SWALLOWTAIL 5
+#define SURFACE_BOHEMIAN 6
+#define SURFACE_WHITNEY 7
+#define SURFACE_PLUECKER 8
+#define SURFACE_HENNEBERG 9
+#define SURFACE_CATALAN 10
+#define SURFACE_CORKSCREW 11
+#define NUM_SURFACES 12
+
+/* primitives to draw with
+ * note that we skip the polygons and
+ * triangle fans -- too slow
+ *
+ * also removed triangle_strip and quads --
+ * just doesn't look good enough
+ */
+#define RENDER_RANDOM -1
+#define RENDER_POINTS 0
+#define RENDER_LINES 1
+#define RENDER_LINE_LOOP 2
+#define NUM_RENDER 3
+
+#ifdef STANDALONE
+# define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_surface 0
+# define release_surface 0
+# include "xlockmore.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#define DEF_SURFACE "random"
+#define DEF_MODE "random"
+#define DEF_SPIN "True"
+#define DEF_WANDER "False"
+#define DEF_SPEED "300"
+
+#include "rotator.h"
+#include "gltrackball.h"
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+
+static char *surface_type;
+static char *render_mode;
+static int render;
+static int speed;
+static Bool do_spin;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-surface", ".surface", XrmoptionSepArg, 0 },
+ { "-random-surface", ".surface", XrmoptionNoArg, "random" },
+ { "-dini", ".surface", XrmoptionNoArg, "dini" },
+ { "-enneper", ".surface", XrmoptionNoArg, "enneper" },
+ { "-kuen", ".surface", XrmoptionNoArg, "kuen" },
+ { "-moebius", ".surface", XrmoptionNoArg, "moebius" },
+ { "-seashell", ".surface", XrmoptionNoArg, "seashell" },
+ { "-swallowtail", ".surface", XrmoptionNoArg, "swallowtail" },
+ { "-bohemian", ".surface", XrmoptionNoArg, "bohemian" },
+ { "-whitney", ".surface", XrmoptionNoArg, "whitney" },
+ { "-pluecker", ".surface", XrmoptionNoArg, "pluecker" },
+ { "-henneberg", ".surface", XrmoptionNoArg, "henneberg" },
+ { "-catalan", ".surface", XrmoptionNoArg, "catalan" },
+ { "-corkscrew", ".surface", XrmoptionNoArg, "corkscrew" },
+ { "-mode", ".mode", XrmoptionSepArg, 0 },
+ { "-random-mode", ".mode", XrmoptionNoArg, "random" },
+ { "-points", ".mode", XrmoptionNoArg, "points" },
+ { "-lines", ".mode", XrmoptionNoArg, "lines" },
+ { "-line-loops", ".mode", XrmoptionNoArg, "line-loops" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&surface_type, "surface", "Surface", DEF_SURFACE, t_String },
+ {&render_mode, "mode", "Mode", DEF_MODE, t_String },
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool },
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool },
+ {&speed, "speed", "Speed", DEF_SPEED, t_Int },
+};
+
+
+ENTRYPOINT ModeSpecOpt surface_opts =
+{countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+typedef struct {
+ GLfloat x;
+ GLfloat y;
+ GLfloat z;
+} GL_VECTOR;
+
+typedef struct {
+ GLXContext *glx_context;
+ Window window;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int render;
+ Bool random_render;
+ int surface;
+ Bool random_surface;
+ int frame;
+
+ float du, dv;
+ float a, b, c;
+
+ float draw_step;
+} surfacestruct;
+
+static surfacestruct *surface = NULL;
+
+
+static void draw(ModeInfo *mi)
+{
+ surfacestruct *sp = &surface[MI_SCREEN(mi)];
+ double u, v;
+ float coord[3];
+ int render;
+
+ mi->polygon_count = 0;
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ glPushMatrix();
+
+ {
+ double x, y, z;
+ get_position(sp->rot, &x, &y, &z, !sp->button_down_p);
+ glTranslatef((x-0.5)*10, (y-0.5)*10, (z-0.5)*20);
+
+ gltrackball_rotate(sp->trackball);
+
+ get_rotation(sp->rot, &x, &y, &z, !sp->button_down_p);
+ glRotatef(x*360, 1.0, 0.0, 0.0);
+ glRotatef(y*360, 0.0, 1.0, 0.0);
+ glRotatef(z*360, 0.0, 0.0, 1.0);
+ }
+
+ glScalef(4.0, 4.0, 4.0);
+
+ switch(sp->surface)
+ {
+ case SURFACE_DINI:
+ for (v=0.11; v<=2.0; v+=sp->dv)
+ {
+ glBegin(sp->render);
+ for (u=0; u<=6.0*M_PI; u+=sp->du)
+ {
+ coord[0] = sp->a*cos(u)*sin(v);
+ coord[1] = sp->a*sin(u)*sin(v);
+ coord[2] = sp->a*(cos(v)+log(tan(0.5*v)))+0.2*sp->b*u;
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_ENNEPER:
+ for (u=-M_PI; u<=M_PI; u+=sp->du)
+ {
+ glBegin(sp->render);
+ for (v=-M_PI; v<M_PI; v+=sp->dv)
+ {
+ coord[0] = sp->a*(u-(1.0/3.0*u*u*u)+u*v*v);
+ coord[1] = sp->b*(v-(1.0/3.0*v*v*v)+u*u*v);
+ coord[2] = u*u-v*v;
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_KUEN:
+ for (u=-4.48; u<=4.48; u+=sp->du)
+ {
+ glBegin(sp->render);
+ for (v=M_PI/51; v<M_PI; v+=sp->dv)
+ {
+ coord[0] = 2*(cos(u)+u*sin(u))*sin(v)/(1+u*u*sin(v)*sin(v));
+ coord[1] = 2*(sin(u)-u*cos(u))*sin(v)/(1+u*u*sin(v)*sin(v));
+ coord[2] = log(tan(0.5*v))+2*cos(v)/(1+u*u*sin(v)*sin(v));
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_MOEBIUS:
+ for (u=-M_PI; u<M_PI; u+=sp->du)
+ {
+ glBegin(sp->render);
+ for (v=-0.735; v<0.74; v+=sp->dv)
+ {
+ coord[0] = cos(u)+v*cos(u/2)*cos(u);
+ coord[1] = sin(u)+v*cos(u/2)*sin(u);
+ coord[2] = v*sin(u/2);
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_SEASHELL:
+ for (u=0; u<2*M_PI; u+=sp->du)
+ {
+ glBegin(sp->render);
+ for (v=0; v<2*M_PI; v+=sp->dv)
+ {
+ coord[0] = sp->a*(1-v/(2*M_PI))*cos(2*v)*(1+cos(u))+sp->c*cos(2*v);
+ coord[1] = sp->a*(1-v/(2*M_PI))*sin(2*v)*(1+cos(u))+sp->c*sin(2*v);
+ coord[2] = 2*sp->b*v/(2*M_PI)+sp->a*(1-v/(2*M_PI))*sin(u);
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_SWALLOWTAIL:
+ for (u=-2.5; u<2.0; u+=sp->du)
+ {
+ glBegin(sp->render);
+ for (v=-1.085; v<1.09; v+=sp->dv)
+ {
+ coord[0] = u*v*v+3*v*v*v*v;
+ coord[1] = -2*u*v-4*v*v*v;
+ coord[2] = u;
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_BOHEMIAN:
+ for (u=-M_PI; u<M_PI; u+=sp->du)
+ {
+ glBegin(sp->render);
+ for (v=-M_PI; v<M_PI; v+=sp->dv)
+ {
+ coord[0] = sp->a*cos(u);
+ coord[1] = sp->b*cos(v)+sp->a*sin(u);
+ coord[2] = sin(v);
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_WHITNEY:
+ for (v=-1.995; v<2.0; v+=sp->dv)
+ {
+ glBegin(sp->render);
+ for (u=-1.995; u<2.0; u+=sp->du)
+ {
+ coord[0] = u*v;
+ coord[1] = u;
+ coord[2] = v*v-2;
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_PLUECKER:
+ for (u=0; u<2.5; u+=sp->dv)
+ {
+ glBegin(sp->render);
+ for (v=-M_PI; v<M_PI; v+=sp->du)
+ {
+ coord[0] = u*cos(v);
+ coord[1] = u*sin(v);
+ coord[2] = 2*cos(v)*sin(v);
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_HENNEBERG:
+ for (u=0.9; u<2.55; u+=sp->dv)
+ {
+ glBegin(sp->render);
+ for (v=-M_PI; v<M_PI; v+=sp->du)
+ {
+ coord[0] = sinh(1.0/3.0*u)*cos(v)-1.0/3.0*sinh(u)*cos(3.0*v);
+ coord[1] = sinh(1.0/3.0*u)*sin(v)+1.0/3.0*sinh(u)*sin(3.0*v);
+ coord[2] = cosh(2.0/3.0*u)*cos(2.0*v);
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_CATALAN:
+ for (v=-2; v<2; v+=sp->du)
+ {
+ glBegin(sp->render);
+ for (u=-2*M_PI; u<2*M_PI+0.05; u+=sp->dv)
+ {
+ coord[0] = 0.33*(u-sin(u)*cosh(v));
+ coord[1] = 0.33*(1.0-cos(u)*cosh(v));
+ coord[2] = 0.33*4.0*sin(0.5*u)*sinh(0.5*v);
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ case SURFACE_CORKSCREW:
+ for (v=-M_PI; v<M_PI; v+=sp->du)
+ {
+ glBegin(sp->render);
+ for (u=-M_PI; u<M_PI; u+=sp->dv)
+ {
+ coord[0] = 0.5*(sp->a+2.0)*cos(u)*cos(v);
+ coord[1] = 0.5*(sp->a+2.0)*sin(u)*cos(v);
+ coord[2] = 0.5*(sp->a+2.0)*sin(v)+u;
+ glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
+ glVertex3fv(coord);
+ mi->polygon_count++;
+ }
+ glEnd();
+ }
+ break;
+ }
+ glPopMatrix();
+
+ if (sp->render == GL_LINES)
+ mi->polygon_count /= 2;
+
+ sp->a = sin(sp->draw_step+=0.01);
+ sp->b = cos(sp->draw_step+=0.01);
+ sp->c = sin(sp->draw_step+0.25*M_PI);
+
+ if (sp->random_surface || sp->random_render)
+ {
+ sp->frame++;
+ if (sp->frame >= speed)
+ {
+ sp->frame = 0;
+ if (sp->random_surface)
+ sp->surface = random() % NUM_SURFACES;
+ if (sp->random_render)
+ {
+ render = random() % NUM_RENDER;
+ switch (render)
+ {
+ case RENDER_POINTS:
+ sp->render = GL_POINTS;
+ break;
+ case RENDER_LINES:
+ sp->render = GL_LINES;
+ break;
+ case RENDER_LINE_LOOP:
+ if (sp->surface == SURFACE_BOHEMIAN ||
+ sp->surface == SURFACE_PLUECKER ||
+ sp->surface == SURFACE_HENNEBERG)
+ sp->render = GL_LINE_LOOP;
+ else
+ sp->render = GL_LINE_STRIP;
+ break;
+ default:
+ sp->render = GL_LINE_LOOP;
+ break;
+ }
+ }
+ }
+ }
+}
+
+
+/* new window size or exposure */
+ENTRYPOINT void reshape_surface(ModeInfo *mi, int width, int height)
+{
+ surfacestruct *sp = &surface[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sp->glx_context));
+
+ glViewport(0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt(0.0, 0.0, 30.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool surface_handle_event(ModeInfo *mi, XEvent *event)
+{
+ surfacestruct *sp = &surface[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, sp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &sp->button_down_p))
+ return True;
+
+ return False;
+}
+
+
+ENTRYPOINT void init_surface(ModeInfo *mi)
+{
+ int screen = MI_SCREEN(mi);
+ surfacestruct *sp;
+
+ MI_INIT (mi, surface);
+ sp = &surface[screen];
+
+ sp->window = MI_WINDOW(mi);
+
+ {
+ double spin_speed = 1.0;
+ double wander_speed = 0.03;
+ sp->rot = make_rotator(do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ 1.0,
+ do_wander ? wander_speed : 0,
+ True);
+ sp->trackball = gltrackball_init (True);
+ }
+
+ if (!strcasecmp(surface_type,"random"))
+ {
+ sp->random_surface = True;
+ sp->surface = random() % NUM_SURFACES;
+ }
+ else if (!strcasecmp(surface_type,"dini"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_DINI;
+ }
+ else if (!strcasecmp(surface_type,"enneper"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_ENNEPER;
+ }
+ else if (!strcasecmp(surface_type,"kuen"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_KUEN;
+ }
+ else if (!strcasecmp(surface_type,"moebius"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_MOEBIUS;
+ }
+ else if (!strcasecmp(surface_type,"seashell"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_SEASHELL;
+ }
+ else if (!strcasecmp(surface_type,"swallowtail"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_SWALLOWTAIL;
+ }
+ else if (!strcasecmp(surface_type,"bohemian"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_BOHEMIAN;
+ }
+ else if (!strcasecmp(surface_type,"whitney"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_WHITNEY;
+ }
+ else if (!strcasecmp(surface_type,"pluecker"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_PLUECKER;
+ }
+ else if (!strcasecmp(surface_type,"henneberg"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_HENNEBERG;
+ }
+ else if (!strcasecmp(surface_type,"catalan"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_CATALAN;
+ }
+ else if (!strcasecmp(surface_type,"corkscrew"))
+ {
+ sp->random_surface = False;
+ sp->surface = SURFACE_CORKSCREW;
+ }
+ else
+ {
+ sp->random_surface = True;
+ sp->surface = random() % NUM_SURFACES;
+ }
+
+ if (!strcasecmp(render_mode,"random"))
+ {
+ sp->random_render = True;
+ render = random() % NUM_RENDER;
+ }
+ else if (!strcasecmp(render_mode,"points"))
+ {
+ sp->random_render = False;
+ render = RENDER_POINTS;
+ }
+ else if (!strcasecmp(render_mode,"lines"))
+ {
+ sp->random_render = False;
+ render = RENDER_LINES;
+ }
+ else if (!strcasecmp(render_mode,"line-loops"))
+ {
+ sp->random_render = False;
+ render = RENDER_LINE_LOOP;
+ }
+ else
+ {
+ sp->random_render = True;
+ render = random() % NUM_RENDER;
+ }
+
+ switch (render)
+ {
+ case RENDER_POINTS:
+ sp->render = GL_POINTS;
+ break;
+ case RENDER_LINES:
+ sp->render = GL_LINES;
+ break;
+ case RENDER_LINE_LOOP:
+ if (sp->surface == SURFACE_BOHEMIAN ||
+ sp->surface == SURFACE_PLUECKER ||
+ sp->surface == SURFACE_HENNEBERG)
+ sp->render = GL_LINE_LOOP;
+ else
+ sp->render = GL_LINE_STRIP;
+ break;
+ default:
+ sp->render = GL_LINE_LOOP;
+ break;
+ }
+
+ sp->frame = 0;
+
+ sp->du = 0.07;
+ sp->dv = 0.07;
+ sp->a = sp->b = 1;
+ sp->c = 0.1;
+
+ if ((sp->glx_context = init_GL(mi)) != NULL)
+ {
+ reshape_surface(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ }
+ else
+ {
+ MI_CLEARWINDOW(mi);
+ }
+}
+
+
+ENTRYPOINT void draw_surface(ModeInfo * mi)
+{
+ surfacestruct *sp = &surface[MI_SCREEN(mi)];
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!sp->glx_context)
+ return;
+
+ glDrawBuffer(GL_BACK);
+
+ glXMakeCurrent(display, window, *(sp->glx_context));
+ draw(mi);
+ if (mi->fps_p)
+ do_fps(mi);
+ glFinish();
+ glXSwapBuffers(display, window);
+}
+
+
+XSCREENSAVER_MODULE_2("Surfaces", surfaces, surface)
+
+#endif
diff --git a/hacks/glx/surfaces.man b/hacks/glx/surfaces.man
new file mode 100644
index 0000000..4c62a0e
--- /dev/null
+++ b/hacks/glx/surfaces.man
@@ -0,0 +1,127 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+surfaces - Draws some interesting 3d parametric surfaces.
+.SH SYNOPSIS
+.B surfaces
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-speed \fInumber\fP]
+[\-rand]
+[\-spin]
+[\-wander]
+[\-fps]
+[\-surface \fIsurface-name\fP]
+[\-random-surface]
+[\-dini]
+[\-enneper]
+[\-kuen]
+[\-moebius]
+[\-seashell]
+[\-swallowtail]
+[\-bohemian]
+[\-whitney]
+[\-pluecker]
+[\-henneberg]
+[\-catalan]
+[\-corkscrew]
+[\-mode \fIdisplay-mode\fP]
+[\-random-mode]
+[\-points]
+[\-lines]
+[\-line-loops]
+.SH DESCRIPTION
+This draws one of several three dimensional parametric surfaces.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class, or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Number of frames before changing shape. Default: 1000.
+.TP 8
+.B \-surface random \fP(Shortcut: \fB\-random-surface\fP)
+Display a random surface. This is the default.
+.TP 8
+.B \-surface dini \fP(Shortcut: \fB\-dini\fP)
+Display Dini's surface.
+.TP 8
+.B \-surface enneper \fP(Shortcut: \fB\-enneper\fP)
+Display Enneper's minimal surface.
+.TP 8
+.B \-surface kuen \fP(Shortcut: \fB\-kuen\fP)
+Display the Kuen surface.
+.TP 8
+.B \-surface moebius \fP(Shortcut: \fB\-moebius\fP)
+Display the Moebius strip.
+.TP 8
+.B \-surface seashell \fP(Shortcut: \fB\-seashell\fP)
+Display the seashell surface.
+.TP 8
+.B \-surface swallowtail \fP(Shortcut: \fB\-swallowtail\fP)
+Display the swallowtail catastrophe.
+.TP 8
+.B \-surface bohemian \fP(Shortcut: \fB\-bohemian\fP)
+Display the Bohemian dome.
+.TP 8
+.B \-surface whitney \fP(Shortcut: \fB\-whitney\fP)
+Display the Whitney umbrella.
+.TP 8
+.B \-surface pluecker \fP(Shortcut: \fB\-pluecker\fP)
+Display Pluecker's conoid.
+.TP 8
+.B \-surface henneberg \fP(Shortcut: \fB\-henneberg\fP)
+Display Henneberg's minimal surface.
+.TP 8
+.B \-surface catalan \fP(Shortcut: \fB\-catalan\fP)
+Display Catalan's minimal surface.
+.TP 8
+.B \-surface corkscrew \fP(Shortcut: \fB\-corkscrew\fP)
+Display the corkscrew surface.
+.TP 8
+.B \-mode random \fP(Shortcut: \fB\-random-mode\fP)
+Use random OpenGL primitives to display the surface. This is the
+default.
+.TP 8
+.B \-mode points \fP(Shortcut: \fB\-points\fP)
+Use OpenGL points to display the surface.
+.TP 8
+.B \-mode lines \fP(Shortcut: \fB\-lines\fP)
+Use OpenGL lines to display the surface.
+.TP 8
+.B \-mode line-loops \fP(Shortcut: \fB\-line-loops\fP)
+Use OpenGL line loops to display the surface.
+.TP 8
+.B \-wander | \-no-wander
+Whether to wander around the screen.
+.TP 8
+.B \-spin | \-no-spin
+Whether to rotate around the center of the figure.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH AUTHORS
+Andrey Mirtchovski, Carsten Steger
diff --git a/hacks/glx/swim.c b/hacks/glx/swim.c
new file mode 100644
index 0000000..e20655a
--- /dev/null
+++ b/hacks/glx/swim.c
@@ -0,0 +1,232 @@
+/* atlantis --- Shows moving 3D sea animals */
+
+#if 0
+static const char sccsid[] = "@(#)swim.c 1.3 98/06/18 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 1998. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Mark J. Kilgard
+ * as a demo for openGL programming.
+ *
+ * Porting it to xlock was possible by comparing the original Mesa's morph3d
+ * demo with it's ported version to xlock, so thanks for Marcelo F. Vianna
+ * (look at morph3d.c) for his indirect help.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * My e-mail address is lassauge@users.sourceforge.net
+ *
+ * Eric Lassauge (May-13-1998)
+ *
+ */
+
+/**
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+#ifdef STANDALONE
+# include <math.h>
+# include "xlockmoreI.h" /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h" /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL
+
+#include "atlantis.h"
+
+void
+FishTransform(fishRec * fish)
+{
+
+ glTranslatef(fish->y, fish->z, -fish->x);
+ glRotatef(-fish->psi, 0.0, 1.0, 0.0);
+ glRotatef(fish->theta, 1.0, 0.0, 0.0);
+ glRotatef(-fish->phi, 0.0, 0.0, 1.0);
+}
+
+void
+WhalePilot(fishRec * fish, float whalespeed, Bool whaledir)
+{
+
+ fish->phi = -20.0;
+ fish->theta = 0.0;
+ fish->psi += ((whaledir) ? -0.5 : 0.5);
+
+ fish->x += whalespeed * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
+ fish->y += whalespeed * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
+ fish->z += whalespeed * fish->v * sin(fish->theta / RAD);
+}
+
+void
+SharkPilot(fishRec * fish, float sharkspeed)
+{
+ float X, Y, Z, tpsi, ttheta, thetal;
+
+ fish->xt = 60000.0;
+ fish->yt = 0.0;
+ fish->zt = 0.0;
+
+ X = fish->xt - fish->x;
+ Y = fish->yt - fish->y;
+ Z = fish->zt - fish->z;
+
+ thetal = fish->theta;
+
+ ttheta = RAD * atan(Z / (sqrt(X * X + Y * Y)));
+
+ if (ttheta > fish->theta + 0.25) {
+ fish->theta += 0.5;
+ } else if (ttheta < fish->theta - 0.25) {
+ fish->theta -= 0.5;
+ }
+ if (fish->theta > 90.0) {
+ fish->theta = 90.0;
+ }
+ if (fish->theta < -90.0) {
+ fish->theta = -90.0;
+ }
+ fish->dtheta = fish->theta - thetal;
+
+ tpsi = RAD * atan2(Y, X);
+
+ fish->attack = 0;
+
+ if (fabs(tpsi - fish->psi) < 10.0) {
+ fish->attack = 1;
+ } else if (fabs(tpsi - fish->psi) < 45.0) {
+ if (fish->psi > tpsi) {
+ fish->psi -= 0.5;
+ if (fish->psi < -180.0) {
+ fish->psi += 360.0;
+ }
+ } else if (fish->psi < tpsi) {
+ fish->psi += 0.5;
+ if (fish->psi > 180.0) {
+ fish->psi -= 360.0;
+ }
+ }
+ } else {
+ if (NRAND(100) > 98) {
+ fish->sign = (fish->sign < 0 ? 1 : -1);
+ }
+ fish->psi += (fish->sign ? 1 : -1);
+ if (fish->psi > 180.0) {
+ fish->psi -= 360.0;
+ }
+ if (fish->psi < -180.0) {
+ fish->psi += 360.0;
+ }
+ }
+
+ if (fish->attack) {
+ if (fish->v < 1.1) {
+ fish->spurt = 1;
+ }
+ if (fish->spurt) {
+ fish->v += 0.2;
+ }
+ if (fish->v > 5.0) {
+ fish->spurt = 0;
+ }
+ if ((fish->v > 1.0) && (!fish->spurt)) {
+ fish->v -= 0.2;
+ }
+ } else {
+ if (!(NRAND(400)) && (!fish->spurt)) {
+ fish->spurt = 1;
+ }
+ if (fish->spurt) {
+ fish->v += 0.05;
+ }
+ if (fish->v > 3.0) {
+ fish->spurt = 0;
+ }
+ if ((fish->v > 1.0) && (!fish->spurt)) {
+ fish->v -= 0.05;
+ }
+ }
+
+ fish->x += sharkspeed * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
+ fish->y += sharkspeed * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
+ fish->z += sharkspeed * fish->v * sin(fish->theta / RAD);
+}
+
+void
+SharkMiss(atlantisstruct * ap, int i)
+{
+ int j;
+ float avoid, thetal;
+ float X, Y, Z, R;
+
+ for (j = 0; j < ap->num_sharks; j++) {
+ if (j != i) {
+ X = ap->sharks[j].x - ap->sharks[i].x;
+ Y = ap->sharks[j].y - ap->sharks[i].y;
+ Z = ap->sharks[j].z - ap->sharks[i].z;
+
+ R = sqrt(X * X + Y * Y + Z * Z);
+
+ avoid = 1.0;
+ thetal = ap->sharks[i].theta;
+
+ if (R < ap->sharksize) {
+ if (Z > 0.0) {
+ ap->sharks[i].theta -= avoid;
+ } else {
+ ap->sharks[i].theta += avoid;
+ }
+ }
+ ap->sharks[i].dtheta += (ap->sharks[i].theta - thetal);
+ }
+ }
+}
+#endif
diff --git a/hacks/glx/tangram.c b/hacks/glx/tangram.c
new file mode 100644
index 0000000..c250f54
--- /dev/null
+++ b/hacks/glx/tangram.c
@@ -0,0 +1,1067 @@
+/* tangram, Copyright (c) 2005-2014 Jeremy English <jhe@jeremyenglish.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation. No representations are made
+ * about the suitability of this software for any purpose. It is
+ * provided "as is" without express or implied warranty.
+ *
+ * Sun 10 July 2005 Changed the code that solves the puzzles.
+ * Also, limited the palette and added names.
+ *
+ * Wed 13 July 2005 Added option to turn off rotation.
+ * Changed color and materials
+ */
+
+
+#define DEFAULTS "*delay: 10000 \n" \
+ "*wireframe: False \n" \
+ "*titleFont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n" \
+ "*titleFont2: -*-helvetica-medium-r-normal-*-*-120-*-*-*-*-*-*\n" \
+ "*titleFont3: -*-helvetica-medium-r-normal-*-*-80-*-*-*-*-*-*\n" \
+
+# define free_tangram 0
+# define release_tangram 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+
+#include <ctype.h>
+
+
+#ifdef USE_GL /* whole file */
+
+#include <time.h>
+#include <math.h>
+#include "tangram_shapes.h"
+#include "texfont.h"
+
+typedef struct {
+ GLubyte r;
+ GLubyte g;
+ GLubyte b;
+} color;
+
+typedef struct {
+ GLfloat x;
+ GLfloat y;
+ GLfloat z;
+} coord;
+
+typedef struct {
+ coord crd; /* coordinates */
+ GLint r; /* rotation */
+ GLint fr; /* flip Rotate. Used to keep track during animation */
+ GLint dl; /* display List */
+ GLfloat dz; /* velocity */
+ GLfloat ddz; /* Acceleration */
+ GLfloat solved; /* shapes state */
+ Bool up; /* Move up the z axis? */
+} tangram_shape;
+
+typedef struct {
+ char *name;
+ tangram_shape ts[7];
+} puzzle;
+
+typedef enum {
+ no_shape = -1,
+ small_triangle1 = 0,
+ small_triangle2 = 1,
+ medium_triangle = 2,
+ large_triangle1 = 3,
+ large_triangle2 = 4,
+ square = 5,
+ rhomboid = 6
+} shape_type;
+
+#define SPEED 0.03
+enum {
+ BOTTOM = 0,
+ DEF_WAIT = 500,
+ INIT_DZ = 2,
+ NUM_SHAPES = 7
+};
+
+typedef struct {
+ GLXContext *glx_context;
+ tangram_shape tsm1, tsm2, tm, tlg1, tlg2, sq, rh;
+ tangram_shape n_tsm1, n_tsm2, n_tm, n_tlg1, n_tlg2, n_sq, n_rh;
+ char *puzzle_name;
+ int csi;
+
+ int ncolors;
+ XColor *colors;
+ int ccolor;
+
+ texture_font_data *font1_data, *font2_data, *font3_data;
+ GLfloat theta[3];
+ Bool going_down[3];
+
+ const char *pn;
+ int display_counter;
+
+} tangram_configuration;
+
+static tangram_configuration *tps = NULL;
+
+#define DEF_VIEWING_TIME "5"
+#define DEF_ROTATE "True"
+#define DEF_X_CAMERA_ROTATE "0.2"
+#define DEF_Y_CAMERA_ROTATE "0.5"
+#define DEF_Z_CAMERA_ROTATE "0"
+#define DEF_LABELS "True"
+
+static GLuint viewing_time;
+static Bool do_rotate;
+static Bool do_labels;
+static GLfloat x_camera_rotate;
+static GLfloat y_camera_rotate;
+static GLfloat z_camera_rotate;
+static int wire;
+
+static XrmOptionDescRec opts[] = {
+ {"-viewing_time", ".viewingTime", XrmoptionSepArg, 0},
+ {"-rotate", ".rotate", XrmoptionNoArg, "True"},
+ {"+rotate", ".rotate", XrmoptionNoArg, "False"},
+ {"-labels", ".labels", XrmoptionNoArg, "True"},
+ {"+labels", ".labels", XrmoptionNoArg, "False"},
+ {"-x_camera_rotate", ".xCameraRotate", XrmoptionSepArg, 0},
+ {"-y_camera_rotate", ".yCameraRotate", XrmoptionSepArg, 0},
+ {"-z_camera_rotate", ".zCameraRotate", XrmoptionSepArg, 0}
+};
+
+static argtype vars[] = {
+ {&viewing_time, "viewingTime", "ViewingTime", DEF_VIEWING_TIME, t_Int},
+ {&do_rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+ {&do_labels, "labels", "Labels", DEF_LABELS, t_Bool},
+ {&x_camera_rotate, "xCameraRotate", "XCameraRotate", DEF_X_CAMERA_ROTATE, t_Float},
+ {&y_camera_rotate, "yCameraRotate", "YCameraRotate", DEF_Y_CAMERA_ROTATE, t_Float},
+ {&z_camera_rotate, "zCameraRotate", "ZCameraRotate", DEF_Z_CAMERA_ROTATE, t_Float}
+};
+
+ENTRYPOINT ModeSpecOpt tangram_opts = { countof(opts), opts, countof(vars), vars, NULL };
+
+static const puzzle solved[] = {
+ {"Teapot", {
+ {{-1.664000, -1.552000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.696000, 0.944000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.064000, -2.128000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.960000, -1.056000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.104000, 0.960000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.376000, -0.800000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.152000, 0.736000, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Candle", {
+ {{-0.016000, 2.176001, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.016000, 2.960001, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.000000, 0.400000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-2.015998, 2.208001, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.000001, 2.208001, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.496000, 0.432000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.016000, -0.672000, 0}, 335, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Square", {
+ {{-0.048000, -0.016000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.704000, 0.736000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.488000, 1.424001, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.016000, -0.016000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.000000, 0.000000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.688000, 0.720000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.784000, 0.672000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Crane", {
+ {{1.248001, 1.759999, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.024000, 3.071999, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.975999, -2.096001, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.480000, -1.968001, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.056000, -0.496000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.239999, -1.312001, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.223999, -1.360001, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Crane", {
+ {{0.320000, 1.360000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.704000, 3.072000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.200000, -3.392000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.688000, -1.184000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.768000, 0.192000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.168000, -2.304000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.312000, 1.296000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Duck", {
+ {{-1.391999, 1.424000, 0}, 65, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.768000, 2.000000, 0}, 99, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.688001, -1.872000, 0}, 270, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.343999, 0.944000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.112000, -0.464000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.984001, -1.120000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.536001, 0.912000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Pelican", {
+ {{1.088000, 0.064001, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.864000, -1.279999, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.807999, 1.520000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.824001, -1.231998, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.368000, 1.472000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.832000, -2.271998, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.776001, 0.816000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Cat", {
+ {{0.416000, -2.432000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.352000, -2.432000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.832000, -0.480000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.632000, 3.056000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.616000, 1.040000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.088000, -1.696000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.832000, -0.432000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Coi", {
+ {{1.264000, -1.232000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.216000, 0.816000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.631999, 1.872000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.832000, 2.287999, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.608000, 0.912000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.240001, -0.176000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.256000, -1.200000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Man Skipping", {
+ {{1.727998, 2.303998, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.120000, 3.376001, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.879998, -3.008001, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.072000, 2.559999, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.440000, 0.144000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.192001, -2.592001, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.015999, 0.176000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Old Man", {
+ {{-0.400000, 1.744000, 0}, 58, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.704000, 0.128000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.656000, 0.320000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.112000, -0.384000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.096000, -0.399999, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.736000, 0.352000, 0}, 123, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.336000, 0.352000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Spear Head", {
+ {{0.688000, -0.144000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.080000, 0.592000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.048000, 0.592000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.488000, -0.848000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.376000, -0.864000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.688000, -0.128000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.504000, -0.832000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Diamond", {
+ {{0.624000, -1.776000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.144000, 0.432000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.800000, -0.272000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-2.320000, -0.304000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{2.048000, -0.320000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.112000, 0.480000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.832000, -0.320000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Arrow", {
+ {{-2.048001, -1.232000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.112000, 0.943999, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.312001, -0.560000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.496000, 0.656000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.528000, 0.608000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-2.048001, -2.704000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.312001, -0.512000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Lady", {
+ {{-0.720000, 3.440000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.912000, -1.072000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.736000, 3.440000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.720000, 1.984000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.672000, 0.544000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.192000, -3.840000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.528000, -2.480000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Running Man", {
+ {{1.136000, 2.720000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-2.304001, 1.776000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.256000, 0.288000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.304000, 0.304000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.096000, -0.128000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.656000, -2.832000, 0}, 105, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.784000, -0.096000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Parallelogram", {
+ {{-1.104000, -1.455999, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.912000, -0.447999, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.048000, -1.471999, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.136000, -1.439999, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.944000, 1.552000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.912000, 0.560000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.112000, 1.568000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"N", {
+ {{-1.615999, 0.064000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.592000, 0.112000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.432000, 0.096000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.679999, -0.880000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.488001, 1.103999, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.640000, 0.112000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.392001, -0.928000, 0}, 270, 180, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Farm House", {
+ {{2.112000, 1.504000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.040000, 1.472000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.032000, -1.600000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.056000, 1.504000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.992000, -0.528000, 0}, 0, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.080000, 0.512000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.104000, 0.480000, 0}, 270, 180, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Vulture", {
+ {{0.912000, 1.728000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-2.623998, -1.040000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.992000, 1.104000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.944000, -0.288000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.448000, -1.760000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.887998, -0.368000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{3.008002, 2.160000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Swan", {
+ {{0.720000, 0.352000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.672000, -1.568000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.376000, 1.104000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.151999, 1.488000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.320000, 2.096000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.656000, 0.304000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.624000, -2.559999, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"High Karate", {
+ {{-0.144000, 2.576000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.696001, -2.432000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.176001, -0.400000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.624000, -0.512000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.576000, -1.152000, 0}, 0, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.919999, -1.376000, 0}, 303, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.448000, -0.096001, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Lazy", {
+ {{-2.416000, 1.120000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.952000, -2.016000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.552000, -0.640000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.016000, 1.840000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.456000, -1.072000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.848000, -0.816000, 0}, 332, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.200000, -1.792000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Bat", {
+ {{-0.304000, -0.352000, 0}, 259, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.304000, -1.344000, 0}, 105, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.312000, -1.024000, 0}, 300, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.952000, 0.240000, 0}, 195, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-2.272000, 0.096000, 0}, 11, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.112000, -1.056000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.560000, -1.344000, 0}, 281, 180, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Sail Boat", {
+ {{0.544000, 2.000000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.880000, 0.160000, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.656000, -1.503999, 0}, 220, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.656000, -0.336000, 0}, 50, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.688000, -0.288000, 0}, 310, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.864000, 1.232000, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.496000, 2.016001, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Glenda", {
+ {{-2.016000, 2.080000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.240001, 1.824000, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.239999, -0.752000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.264000, 2.784000, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.248000, 0.736000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.240001, 0.304000, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.544000, -2.976001, 0}, 149, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Cat", {
+ {{1.376000, -1.536001, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.488000, -1.552001, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.352000, -0.048000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-2.144000, 2.415999, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-2.096000, 0.368000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.144000, -0.800000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.392000, -0.064000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Lying Cat", {
+ {{2.480000, -0.912000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{2.592000, -0.928000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.352000, 1.280000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.688000, 0.336000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.808000, -0.112000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{3.248000, -0.176000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.472000, 1.024000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Witch", {
+ {{-0.943999, -0.304000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.144000, 0.288000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.360000, -2.304000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.328000, -0.848000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.008000, 1.584000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.512000, 2.688000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.863999, -0.096000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Laugh", {
+ {{0.703999, -0.160000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.064000, -0.400000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.767999, -1.408000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.232000, -1.328000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.040000, 2.624000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.288000, 1.264000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.760001, -1.408000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Standing Man", {
+ {{0.272000, 3.392000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.144000, -1.328000, 0}, 331, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.216001, 0.272000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.736000, 0.208000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.432000, -3.440000, 0}, 151, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.720000, 2.320000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.263998, 0.272000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Walking Man", {
+ {{-1.056000, -3.456000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.736000, 2.000000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.488000, 1.760000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.432000, 0.016000, 0}, 0, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.432000, -0.064000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.560000, -2.576000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.032000, 2.656000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Repose", {
+ {{-2.800000, -2.304000, 0}, 101, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.888000, 2.032000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.856000, 2.016000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.352000, -0.144000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-2.848000, 0.976000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.424000, -1.104000, 0}, 236, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.792000, 2.016000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Shape", {
+ {{1.263999, 1.600001, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.311999, -1.568000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.736000, 0.576000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.736000, -2.591999, 0}, 360, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.768000, 2.640001, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.784000, -0.528000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.736000, 0.496000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Shape", {
+ {{-0.816000, 1.392000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.832000, -1.807999, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.216000, -0.752000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.232000, -2.815999, 0}, 270, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.248000, 2.400000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.864000, 1.392000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.240000, 1.328000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Lightning", {
+ {{0.176000, -2.448000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.888000, 2.880000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.856000, 1.824000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.872000, -1.392000, 0}, 0, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.264000, -0.432000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{2.320001, -2.432000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.872000, 1.728000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"E", {
+ {{0.928000, 1.664000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.896000, -1.519998, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.136000, 0.608000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.152000, -2.559998, 0}, 0, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.152000, 2.672002, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.960000, -0.384000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.136000, 0.528000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Dagger", {
+ {{-0.096000, 0.448000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.640000, 2.656000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.064000, -3.104000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.767999, 1.184000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.080000, 0.416000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.416000, -2.064000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.112000, 3.328001, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Knight", {
+ {{-0.368000, 0.400000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.871998, -1.808000, 0}, 225, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.056000, -0.368000, 0}, 0, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.056000, -1.840000, 0}, 45, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.352000, 1.440000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.128000, 0.432000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.119999, -1.120000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Candy", {
+ {{-1.039999, 1.136000, 0}, 360, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.024000, 0.096000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.016000, 0.048000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.016000, -1.008000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.016000, 1.216000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.024000, 0.144000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.032000, 1.088000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"King", {
+ {{-0.688000, 1.904000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.800000, 1.904000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.512000, -1.392000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.488000, 1.120000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.392000, 1.120000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.496000, -1.312000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.480000, -1.376000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Top", {
+ {{-1.055999, -0.800000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.103999, 0.208000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{0.000000, -0.784000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.016000, 0.272000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.032000, 0.288000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{0.480000, -1.855999, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.096001, 0.224000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Dog", {
+ {{-2.896000, -0.128000, 0}, 45, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.800000, 0.992000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-1.152000, -0.416000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.016000, 0.656000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.456000, -0.736000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{2.864000, 0.736000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.048000, 1.664000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, True},
+ },
+ },
+ {"Moose Head", {
+ {{2.944000, -0.288000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.936000, -0.224000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.112000, 1.808000, 0}, 315, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{-2.128000, 0.768000, 0}, 90, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{1.888000, 0.768000, 0}, 180, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.112000, -0.688000, 0}, 135, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-3.184000, -1.216000, 0}, 360, 180, 0, INIT_DZ, -SPEED, 0, False},
+ },
+ },
+ {"Negative Square", {
+ {{-1.520000, -0.624000, 0}, 270, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-1.520000, 0.480000, 0}, 180, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{2.352000, 0.480000, 0}, 225, 0, 0, INIT_DZ, -SPEED, 0, True},
+ {{-0.080000, -3.040000, 0}, 315, 180, 0, INIT_DZ, -SPEED, 0, False},
+ {{-0.096000, 2.944000, 0}, 135, 180, 0, INIT_DZ, -SPEED, 0, True},
+ {{-2.528000, -0.576000, 0}, 90, 0, 0, INIT_DZ, -SPEED, 0, False},
+ {{1.360000, -1.600000, 0}, 360, 180, INIT_DZ, -SPEED, 0, True},
+ }}
+};
+
+
+static void get_solved_puzzle(ModeInfo * mi,
+ tangram_shape * tsm1, tangram_shape * tsm2,
+ tangram_shape * tm, tangram_shape * tlg1,
+ tangram_shape * tlg2, tangram_shape * sq,
+ tangram_shape * rh)
+{
+ tangram_configuration *tp = &tps[MI_SCREEN(mi)];
+ int sz = sizeof(solved) / sizeof(solved[0]);
+ int r;
+
+ /* we don't want to see the same puzzle twice */
+ do {
+ r = random() % sz;
+ } while (r == tp->csi);
+ tp->csi = r;
+
+ *tsm1 = solved[r].ts[small_triangle1];
+ *tsm2 = solved[r].ts[small_triangle2];
+ *tm = solved[r].ts[medium_triangle];
+ *tlg1 = solved[r].ts[large_triangle1];
+ *tlg2 = solved[r].ts[large_triangle2];
+ *sq = solved[r].ts[square];
+ *rh = solved[r].ts[rhomboid];
+
+ tp->puzzle_name = solved[r].name;
+}
+
+static int approach_number(int goal, int current, int step)
+{
+
+ int i = 0;
+
+ if (goal > current) {
+ while (i < step) {
+ current++;
+ if (goal <= current)
+ break;
+ i++;
+ }
+ } else if (goal < current) {
+ while (i < step) {
+ current--;
+ if (goal >= current)
+ break;
+ i++;
+ }
+ }
+
+ return current;
+}
+
+/* gt - floating point greater than comparison */
+static Bool gt(GLfloat x1, GLfloat x2, GLfloat per)
+{
+ if ((x1 > x2) && (fabs(x1 - x2) > per))
+ return True;
+ else
+ return False;
+}
+
+/* lt - floating point less than comparison */
+static Bool lt(GLfloat x1, GLfloat x2, GLfloat per)
+{
+ if ((x1 < x2) && (fabs(x1 - x2) > per))
+ return True;
+ else
+ return False;
+}
+
+static GLfloat approach_float(GLfloat goal, GLfloat current,
+ Bool * changed, GLfloat per)
+{
+ *changed = False;
+ if (gt(goal, current, per)) {
+ current += per;
+ *changed = True;
+ } else if (lt(goal, current, per)) {
+ current -= per;
+ *changed = True;
+ }
+ return current;
+}
+
+#if 0
+static void print_shape(char *s, tangram_shape sh)
+{
+ fprintf(stderr, "%s\n", s);
+ fprintf(stderr, "(%f, %f, %f)\n", sh.crd.x, sh.crd.y, sh.crd.z);
+ fprintf(stderr, "%d\n", sh.r);
+ fprintf(stderr, "%d\n", sh.fr);
+ fprintf(stderr, "\n");
+}
+#endif
+
+
+static void reset_shape(tangram_shape * ts)
+{
+ GLfloat r = random() % 10;
+ GLfloat f = r / 10;
+ ts->crd.z = BOTTOM;
+ ts->dz = INIT_DZ + f;
+ ts->ddz = -SPEED;
+}
+
+static void bounce(tangram_shape * ts)
+{
+ ts->crd.z *= -1; /* ignore this */
+ ts->dz += ts->ddz;
+ ts->crd.z += ts->dz * SPEED;
+ if (ts->crd.z < BOTTOM) {
+ reset_shape(ts);
+ }
+
+ ts->crd.z *= -1; /* ignore this */
+}
+
+static void draw_tangram_shape(tangram_shape ts)
+{
+ glPushMatrix();
+
+ if (!do_rotate) {
+ ts.up = True;
+ }
+
+ glTranslatef(ts.crd.x, ts.crd.y, ts.up ? ts.crd.z : -ts.crd.z);
+ glRotated(90, 1, 0, 0);
+ glRotated(ts.fr, 1, 0, 0);
+ glRotated(ts.r, 0, 1, 0);
+ glCallList(ts.dl);
+ glPopMatrix();
+}
+
+static void load_fonts(ModeInfo * mi)
+{
+ tangram_configuration *tp = &tps[MI_SCREEN(mi)];
+ tp->font1_data = load_texture_font (mi->dpy, "titleFont");
+ tp->font2_data = load_texture_font (mi->dpy, "titleFont2");
+ tp->font3_data = load_texture_font (mi->dpy, "titleFont3");
+}
+
+static void draw_shapes(ModeInfo * mi)
+{
+ tangram_configuration *tp = &tps[MI_SCREEN(mi)];
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (h, 1/h, 1);
+ }
+# endif
+
+ draw_tangram_shape(tp->tsm1);
+
+ draw_tangram_shape(tp->tsm2);
+ draw_tangram_shape(tp->tm);
+ draw_tangram_shape(tp->tlg1);
+ draw_tangram_shape(tp->tlg2);
+ draw_tangram_shape(tp->sq);
+ draw_tangram_shape(tp->rh);
+
+ if (do_labels)
+ {
+ texture_font_data *f;
+ if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375)
+ f = tp->font1_data;
+ else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260)
+ f = tp->font2_data;
+ else
+ f = tp->font3_data;
+
+ glColor3f(0.8, 0.8, 0);
+ print_texture_label (mi->dpy, f,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, tp->pn);
+ }
+}
+
+ENTRYPOINT void reshape_tangram(ModeInfo * mi, int w, int h)
+{
+ int y = 0;
+
+ if (w > h * 5) { /* tiny window: show middle */
+ h = w;
+ y = -h/2;
+ }
+
+ glViewport(0, y, w, h);
+}
+
+static void set_camera(tangram_configuration *tp)
+{
+ glPushMatrix();
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(60, -1, 0.1, 50);
+
+
+ gluLookAt(0, 5, -5, 0, 0, 0, 0, -1, 0);
+
+ if (do_rotate) {
+ glRotatef(tp->theta[0], 1, 0, 0);
+ glRotatef(tp->theta[1], 0, 1, 0);
+ glRotatef(tp->theta[2], 0, 0, 1);
+ }
+
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+
+
+ if (tp->going_down[0] && tp->theta[0] < 0) {
+
+ tp->going_down[0] = False;
+ } else if ((!tp->going_down[0]) && tp->theta[0] > 90) {
+
+ tp->going_down[0] = True;
+ }
+
+ if (tp->theta[1] > 360.0)
+ tp->theta[1] -= 360.0;
+
+ if (tp->theta[2] > 360.0)
+ tp->theta[2] -= 360.0;
+
+ if (tp->going_down[0])
+ tp->theta[0] -= x_camera_rotate;
+ else
+ tp->theta[0] += x_camera_rotate;
+
+ tp->theta[1] += y_camera_rotate;
+ tp->theta[2] += z_camera_rotate;
+}
+
+static void init_shapes(ModeInfo * mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ tangram_configuration *tp = &tps[MI_SCREEN(mi)];
+ get_solved_puzzle(mi, &tp->tsm1, &tp->tsm2, &tp->tm, &tp->tlg1,
+ &tp->tlg2, &tp->sq, &tp->rh);
+ get_solved_puzzle(mi, &tp->n_tsm1, &tp->n_tsm2, &tp->n_tm, &tp->n_tlg1,
+ &tp->n_tlg2, &tp->n_sq, &tp->n_rh);
+ tp->tsm1.dl = tangram_get_sm_tri_dl(wire);
+ tp->tsm2.dl = tangram_get_sm_tri_dl(wire);
+ tp->tm.dl = tangram_get_md_tri_dl(wire);
+ tp->tlg1.dl = tangram_get_lg_tri_dl(wire);
+ tp->tlg2.dl = tangram_get_lg_tri_dl(wire);
+ tp->sq.dl = tangram_get_square_dl(wire);
+ tp->rh.dl = tangram_get_rhomboid_dl(wire);
+}
+
+static void gl_init(ModeInfo * mi)
+{
+
+ int wire = MI_IS_WIREFRAME(mi);
+
+ GLfloat y = do_rotate ? -10 : 3;
+ GLfloat x = do_rotate ? 5 : 10;
+ GLfloat pos[4] = { 0, 0, -5, 1.00 };
+ GLfloat pos2[4] = { 0, 0, 5, 1.00 };
+ GLfloat dif2[4] = { 1, 1, 1, 1 };
+
+ pos[0] = -x;
+ pos[1] = y;
+
+ pos2[1] = x;
+ pos2[1] = y;
+
+ if (!wire) {
+ glEnable(GL_LIGHTING);
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glEnable(GL_LIGHT0);
+ if (do_rotate) {
+ glLightfv(GL_LIGHT1, GL_POSITION, pos2);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, dif2);
+ glEnable(GL_LIGHT1);
+ }
+ glEnable(GL_DEPTH_TEST);
+ }
+
+}
+
+ENTRYPOINT void init_tangram(ModeInfo * mi)
+{
+ tangram_configuration *tp;
+
+ MI_INIT (mi, tps);
+
+ tp = &tps[MI_SCREEN(mi)];
+
+ if ((tp->glx_context = init_GL(mi)) != NULL) {
+ gl_init(mi);
+ }
+
+ reshape_tangram (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ wire = MI_IS_WIREFRAME(mi);
+
+ load_fonts(mi);
+ init_shapes(mi);
+
+ tp->theta[0] = tp->theta[1] = tp->theta[2] = 1;
+
+}
+
+static Bool all_solved(tangram_shape * ls[])
+{
+ int i;
+ Bool b = True;
+ for (i = 0; i < NUM_SHAPES; i++) {
+ b = (b && ls[i]->solved);
+ }
+ return b;
+}
+
+static void solve(tangram_shape * new_s, tangram_shape * old_s)
+{
+ Bool moved_x, moved_y, moved_r, moved_fr, z_ok;
+
+ old_s->fr = approach_number(new_s->fr, old_s->fr, 2);
+ moved_fr = (old_s->fr != new_s->fr);
+
+ old_s->r = approach_number(new_s->r, old_s->r, 2);
+ moved_r = (old_s->r != new_s->r);
+
+ old_s->crd.x =
+ approach_float(new_s->crd.x, old_s->crd.x, &moved_x, 0.1);
+ if (!moved_x)
+ old_s->crd.x = new_s->crd.x;
+
+ old_s->crd.y =
+ approach_float(new_s->crd.y, old_s->crd.y, &moved_y, 0.1);
+ if (!moved_y)
+ old_s->crd.y = new_s->crd.y;
+
+ z_ok = (-old_s->crd.z <= BOTTOM);
+
+ old_s->solved = (moved_x == False && moved_y == False &&
+ moved_r == False && moved_fr == False &&
+ z_ok == True);
+}
+
+static void set_not_solved(tangram_shape * ls[])
+{
+ int i;
+ for (i = 0; i < NUM_SHAPES; i++)
+ ls[i]->solved = False;
+}
+
+
+ENTRYPOINT void draw_tangram(ModeInfo * mi)
+{
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ tangram_configuration *tp = &tps[MI_SCREEN(mi)];
+
+ tangram_shape *ls[NUM_SHAPES];
+ tangram_shape *nls[NUM_SHAPES];
+
+
+ int i;
+ int MAX_DISPLAY;
+
+ GLfloat color[4] = { 0.0, 0.0, 0.0, 1.0 };
+ GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 };
+ MAX_DISPLAY = viewing_time * 100;
+
+ if (! tp->glx_context)
+ return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tp->glx_context));
+
+ ls[small_triangle1] = &tp->tsm1;
+ ls[small_triangle2] = &tp->tsm2;
+ ls[medium_triangle] = &tp->tm;
+ ls[large_triangle1] = &tp->tlg1;
+ ls[large_triangle2] = &tp->tlg2;
+ ls[square] = &tp->sq;
+ ls[rhomboid] = &tp->rh;
+
+ nls[small_triangle1] = &tp->n_tsm1;
+ nls[small_triangle2] = &tp->n_tsm2;
+ nls[medium_triangle] = &tp->n_tm;
+ nls[large_triangle1] = &tp->n_tlg1;
+ nls[large_triangle2] = &tp->n_tlg2;
+ nls[square] = &tp->n_sq;
+ nls[rhomboid] = &tp->n_rh;
+
+ set_camera(tp);
+
+ if (tp->display_counter <= 0) {
+ for (i = 0; i < NUM_SHAPES; i++) {
+ if (ls[i]->solved) {
+ if (all_solved(ls)) {
+ tp->display_counter = MAX_DISPLAY;
+ tp->pn = tp->puzzle_name;
+ get_solved_puzzle(mi, nls[small_triangle1],
+ nls[small_triangle2],
+ nls[medium_triangle],
+ nls[large_triangle1],
+ nls[large_triangle2], nls[square],
+ nls[rhomboid]);
+ tp->ncolors = 128;
+ tp->colors =
+ (XColor *) calloc(tp->ncolors, sizeof(XColor));
+
+ make_random_colormap(0, 0, 0,
+ tp->colors, &tp->ncolors,
+ True, False, 0, False);
+
+
+ color[0] = tp->colors[0].red / 65536.0;
+ color[1] = tp->colors[1].green / 65536.0;
+ color[2] = tp->colors[2].blue / 65536.0;
+
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE,
+ color);
+
+ set_not_solved(ls);
+ break;
+ }
+ } else {
+ tp->pn = "";
+ bounce(ls[i]);
+ solve(nls[i], ls[i]);
+ }
+ }
+ } else {
+ tp->display_counter--;
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glPushMatrix();
+
+ glLoadIdentity();
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white);
+ glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 128);
+
+ draw_shapes(mi);
+
+ if (mi->fps_p) do_fps (mi);
+
+ glFlush();
+ glPopMatrix();
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT Bool
+tangram_handle_event (ModeInfo *mi, XEvent *event)
+{
+ tangram_configuration *tp = &tps[MI_SCREEN(mi)];
+
+ if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ tp->display_counter = 0;
+ return True;
+ }
+
+ return False;
+}
+
+
+
+XSCREENSAVER_MODULE ("Tangram", tangram)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/tangram.man b/hacks/glx/tangram.man
new file mode 100644
index 0000000..c5d3980
--- /dev/null
+++ b/hacks/glx/tangram.man
@@ -0,0 +1,67 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+tangram - watch the computer solve tangram puzzles.
+.SH SYNOPSIS
+.B tangram
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-wireframe]
+[\-viewing_time \fInumber\fP]
+[\-rotate]
+[\-fps]
+.SH DESCRIPTION
+The \fItangram\fP program uses a few basic shapes to build silhouettes of recognizable objects.
+.SH OPTIONS
+.I tangram
+accepts the following options:
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-viewing_time \fInumber\fP
+Specify the length of time, in seconds, that the finished puzzle
+should be displayed. Default: 5
+.TP 8
+.B \-rotate | \-no-rotate
+Rotate the camera around the puzzle.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2005 by Jeremy English. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jeremy English <jhe@jeremyenglish.org>
diff --git a/hacks/glx/tangram_shapes.c b/hacks/glx/tangram_shapes.c
new file mode 100644
index 0000000..267b187
--- /dev/null
+++ b/hacks/glx/tangram_shapes.c
@@ -0,0 +1,240 @@
+/* tangram, Copyright (c) 2005 Jeremy English <jhe@jeremyenglish.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_ANDROID
+#include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "tangram_shapes.h"
+
+#define small_scale ( 1 )
+#define large_scale ( 2 )
+#define medium_scale ( 1.414213562 )
+
+#define alpha (0.05)
+
+static void
+tri_45_90(int wire)
+{
+ GLfloat vertices[][3] = {
+ {0, alpha, 0},
+ {0, alpha, 1},
+ {1, alpha, 0},
+ {0, -alpha, 0},
+ {0, -alpha, 1},
+ {1, -alpha, 0}
+ };
+
+ glBegin((wire) ? GL_LINE_LOOP : GL_TRIANGLES);
+
+ glNormal3f(0, 1, 0);
+ glVertex3fv(vertices[0]);
+ glNormal3f(0, 1, 0);
+ glVertex3fv(vertices[2]);
+ glNormal3f(0, 1, 0);
+ glVertex3fv(vertices[1]);
+
+ glNormal3f(0, -1, 0);
+ glVertex3fv(vertices[3]);
+ glNormal3f(0, -1, 0);
+ glVertex3fv(vertices[4]);
+ glNormal3f(0, -1, 0);
+ glVertex3fv(vertices[5]);
+ glEnd();
+
+ glBegin((wire) ? GL_LINE_LOOP : GL_QUADS);
+ glNormal3f(1, 0, 1);
+ glVertex3fv(vertices[2]);
+ glNormal3f(1, 0, 1);
+ glVertex3fv(vertices[5]);
+ glNormal3f(1, 0, 1);
+ glVertex3fv(vertices[4]);
+ glNormal3f(1, 0, 1);
+ glVertex3fv(vertices[1]);
+
+ glNormal3f(-1, 0, 0);
+ glVertex3fv(vertices[0]);
+ glNormal3f(-1, 0, 0);
+ glVertex3fv(vertices[1]);
+ glNormal3f(-1, 0, 0);
+ glVertex3fv(vertices[4]);
+ glNormal3f(-1, 0, 0);
+ glVertex3fv(vertices[3]);
+
+ glNormal3f(0, 0, -1);
+ glVertex3fv(vertices[0]);
+ glNormal3f(0, 0, -1);
+ glVertex3fv(vertices[3]);
+ glNormal3f(0, 0, -1);
+ glVertex3fv(vertices[5]);
+ glNormal3f(0, 0, -1);
+ glVertex3fv(vertices[2]);
+ glEnd();
+}
+
+static void
+unit_cube(int wire)
+{
+ glBegin((wire) ? GL_LINE_LOOP : GL_QUADS);
+
+
+ glNormal3f(0.0f, 1.0f, 0.0f);
+ glVertex3f(0.0f, alpha, 0.0f);
+ glVertex3f(0.0f, alpha, 1.0f);
+ glVertex3f(1.0f, alpha, 1.0f);
+ glVertex3f(1.0f, alpha, 0.0f);
+
+ glNormal3f(0.0f, 0.0f, 1.0f);
+ glVertex3f(0.0f, -alpha, 1.0f);
+ glVertex3f(1.0f, -alpha, 1.0f);
+ glVertex3f(1.0f, alpha, 1.0f);
+ glVertex3f(0.0f, alpha, 1.0f);
+
+ glNormal3f(0.0f, 0.0f, -1.0f);
+ glVertex3f(0.0f, -alpha, 0.0f);
+ glVertex3f(0.0f, alpha, 0.0f);
+ glVertex3f(1.0f, alpha, 0.0f);
+ glVertex3f(1.0f, -alpha, 0.0f);
+
+ glNormal3f(1.0f, 0.0f, 0.0f);
+ glVertex3f(1.0f, -alpha, 0.0f);
+ glVertex3f(1.0f, alpha, 0.0f);
+ glVertex3f(1.0f, alpha, 1.0f);
+ glVertex3f(1.0f, -alpha, 1.0f);
+
+ glNormal3f(-1.0f, 0.0f, 0.0f);
+ glVertex3f(0.0f, -alpha, 0.0f);
+ glVertex3f(0.0f, -alpha, 1.0f);
+ glVertex3f(0.0f, alpha, 1.0f);
+ glVertex3f(0.0f, alpha, 0.0f);
+
+ glNormal3f(0.0f, -1.0f, 0.0f);
+ glVertex3f(0.0f, -alpha, 0.0f);
+ glVertex3f(1.0f, -alpha, 0.0f);
+ glVertex3f(1.0f, -alpha, 1.0f);
+ glVertex3f(0.0f, -alpha, 1.0f);
+
+ glEnd();
+}
+
+static void
+unit_rhomboid(int wire)
+{
+ glBegin((wire) ? GL_LINE_LOOP : GL_QUADS);
+
+ glNormal3f(0.0f, 1.0f, 0.0f);
+ glVertex3f(0, alpha, 0);
+ glVertex3f(1, alpha, 1);
+ glVertex3f(1, alpha, 2);
+ glVertex3f(0, alpha, 1);
+
+ glNormal3f(0.0f, -1.0f, 0.0f);
+ glVertex3f(0, -alpha, 0);
+ glVertex3f(0, -alpha, 1);
+ glVertex3f(1, -alpha, 2);
+ glVertex3f(1, -alpha, 1);
+
+ glNormal3f(-1.0f, 0.0f, 0.0f);
+ glVertex3f(0, alpha, 0);
+ glVertex3f(0, alpha, 1);
+ glVertex3f(0, -alpha, 1);
+ glVertex3f(0, -alpha, 0);
+
+
+ glNormal3f(0.0f, 0.0f, 1.0f);
+ glVertex3f(0, alpha, 1);
+ glVertex3f(1, alpha, 2);
+ glVertex3f(1, -alpha, 2);
+ glVertex3f(0, -alpha, 1);
+
+ glNormal3f(1.0f, 0.0f, 0.0f);
+ glVertex3f(1, alpha, 1);
+ glVertex3f(1, -alpha, 1);
+ glVertex3f(1, -alpha, 2);
+ glVertex3f(1, alpha, 2);
+
+ glNormal3f(0.0f, 0.0f, 1.0f);
+ glVertex3f(0, alpha, 0);
+ glVertex3f(0, -alpha, 0);
+ glVertex3f(1, -alpha, 1);
+ glVertex3f(1, alpha, 1);
+
+ glEnd();
+}
+
+/* All of the pieces have the same thickness so all of the Y values are the same */
+
+GLuint
+tangram_get_sm_tri_dl(int wire)
+{
+ GLuint triangle = glGenLists(1);
+ glNewList(triangle, GL_COMPILE);
+ glScalef(small_scale, small_scale, small_scale);
+ tri_45_90(wire);
+ glEndList();
+ return triangle;
+}
+
+GLuint
+tangram_get_lg_tri_dl(int wire)
+{
+ GLuint triangle = glGenLists(1);
+ glNewList(triangle, GL_COMPILE);
+ glScalef(large_scale, small_scale, large_scale);
+ tri_45_90(wire);
+ glEndList();
+ return triangle;
+}
+
+GLuint
+tangram_get_md_tri_dl(int wire)
+{
+ GLuint triangle = glGenLists(1);
+ glNewList(triangle, GL_COMPILE);
+ glScalef(medium_scale, small_scale, medium_scale);
+ tri_45_90(wire);
+ glEndList();
+ return triangle;
+}
+
+GLuint
+tangram_get_square_dl(int wire)
+{
+ GLuint square = glGenLists(1);
+ glNewList(square, GL_COMPILE);
+ glScalef(small_scale, small_scale, small_scale);
+ unit_cube(wire);
+ glEndList();
+ return square;
+}
+
+GLuint
+tangram_get_rhomboid_dl(int wire)
+{
+ GLuint rhomboid = glGenLists(1);
+ glNewList(rhomboid, GL_COMPILE);
+ glScalef(small_scale, small_scale, small_scale);
+ unit_rhomboid(wire);
+ glEndList();
+ return rhomboid;
+}
diff --git a/hacks/glx/tangram_shapes.h b/hacks/glx/tangram_shapes.h
new file mode 100644
index 0000000..254f8f3
--- /dev/null
+++ b/hacks/glx/tangram_shapes.h
@@ -0,0 +1,15 @@
+#ifndef TANGRAM_SHAPES_H
+#define TANGRAM_SHAPES_H
+
+/* get_sm_tri_dl - Get small triangle Display List */
+GLuint tangram_get_sm_tri_dl(int wire);
+/* get_lg_tri_dl - Get large triangle Display List */
+GLuint tangram_get_lg_tri_dl(int wire);
+/* get_md_tri_dl - Get medium triangle Display List */
+GLuint tangram_get_md_tri_dl(int wire);
+/* get_square_dl - Get square Display List */
+GLuint tangram_get_square_dl(int wire);
+/* get_rhomboid_dl - Get rhomboid Display List */
+GLuint tangram_get_rhomboid_dl(int wire);
+
+#endif
diff --git a/hacks/glx/teapot.c b/hacks/glx/teapot.c
new file mode 100644
index 0000000..c885d27
--- /dev/null
+++ b/hacks/glx/teapot.c
@@ -0,0 +1,285 @@
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/**
+(c) Copyright 1993, Silicon Graphics, Inc.
+
+ALL RIGHTS RESERVED
+
+Permission to use, copy, modify, and distribute this software
+for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that
+both the copyright notice and this permission notice appear in
+supporting documentation, and that the name of Silicon
+Graphics, Inc. not be used in advertising or publicity
+pertaining to distribution of the software without specific,
+written prior permission.
+
+THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU
+"AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
+OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO
+EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE
+ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER,
+INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE,
+SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR
+NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF THE POSSIBILITY
+OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+US Government Users Restricted Rights
+
+Use, duplication, or disclosure by the Government is subject to
+restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+(c)(1)(ii) of the Rights in Technical Data and Computer
+Software clause at DFARS 252.227-7013 and/or in similar or
+successor clauses in the FAR or the DOD or NASA FAR
+Supplement. Unpublished-- rights reserved under the copyright
+laws of the United States. Contractor/manufacturer is Silicon
+Graphics, Inc., 2011 N. Shoreline Blvd., Mountain View, CA
+94039-7311.
+
+OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+*/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "teapot.h"
+
+#ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+#endif
+#ifdef HAVE_ANDROID
+# include <GLES/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#else
+# define HAVE_GLMAP
+#endif
+
+
+#ifdef HAVE_GLMAP
+
+/* Rim, body, lid, and bottom data must be reflected in x
+ and y; handle and spout data across the y axis only. */
+
+static long patchdata[][16] =
+{
+ /* rim */
+ {102, 103, 104, 105, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15},
+ /* body */
+ {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27},
+ {24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40},
+ /* lid */
+ {96, 96, 96, 96, 97, 98, 99, 100, 101, 101, 101,
+ 101, 0, 1, 2, 3,},
+ {0, 1, 2, 3, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117},
+ /* bottom */
+ {118, 118, 118, 118, 124, 122, 119, 121, 123, 126,
+ 125, 120, 40, 39, 38, 37},
+ /* handle */
+ {41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56},
+ {53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 28, 65, 66, 67},
+ /* spout */
+ {68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83},
+ {80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95}
+};
+/* *INDENT-OFF* */
+
+static float cpdata[][3] =
+{
+ {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, {0,
+ -0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125},
+ {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, {1.4375,
+ 0, 2.53125}, {1.4375, -0.805, 2.53125}, {0.805, -1.4375,
+ 2.53125}, {0, -1.4375, 2.53125}, {1.5, 0, 2.4}, {1.5, -0.84,
+ 2.4}, {0.84, -1.5, 2.4}, {0, -1.5, 2.4}, {1.75, 0, 1.875},
+ {1.75, -0.98, 1.875}, {0.98, -1.75, 1.875}, {0, -1.75,
+ 1.875}, {2, 0, 1.35}, {2, -1.12, 1.35}, {1.12, -2, 1.35},
+ {0, -2, 1.35}, {2, 0, 0.9}, {2, -1.12, 0.9}, {1.12, -2,
+ 0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, {2, 0, 0.45}, {2, -1.12,
+ 0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, {1.5, 0, 0.225},
+ {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, {0, -1.5, 0.225},
+ {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, {0.84, -1.5, 0.15}, {0,
+ -1.5, 0.15}, {-1.6, 0, 2.025}, {-1.6, -0.3, 2.025}, {-1.5,
+ -0.3, 2.25}, {-1.5, 0, 2.25}, {-2.3, 0, 2.025}, {-2.3, -0.3,
+ 2.025}, {-2.5, -0.3, 2.25}, {-2.5, 0, 2.25}, {-2.7, 0,
+ 2.025}, {-2.7, -0.3, 2.025}, {-3, -0.3, 2.25}, {-3, 0,
+ 2.25}, {-2.7, 0, 1.8}, {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8},
+ {-3, 0, 1.8}, {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3,
+ -0.3, 1.35}, {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3,
+ 1.125}, {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2,
+ -0.3, 0.9}, {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0,
+ 1.425}, {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0,
+ 0.6}, {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66,
+ 0.825}, {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1},
+ {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, {2.7,
+ -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, {2.8, 0,
+ 2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375},
+ {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475},
+ {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4},
+ {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, {0, 0,
+ 3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, {0.45, -0.8,
+ 3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, {1.4,
+ -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, {0.4, 0,
+ 2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, {0, -0.4,
+ 2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, {0.728, -1.3,
+ 2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, {1.3, -0.728, 2.4},
+ {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, {0, 0, 0}, {1.425,
+ -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, {0.798, -1.425,
+ 0}, {0, -1.5, 0.075}, {0, -1.425, 0}, {1.5, -0.84, 0.075},
+ {0.84, -1.5, 0.075}
+};
+
+static float tex[2][2][2] =
+{
+ { {0, 0},
+ {1, 0}},
+ { {0, 1},
+ {1, 1}}
+};
+
+
+int
+unit_teapot (int grid, int wire_p)
+{
+ GLenum type = wire_p ? GL_LINE : GL_FILL;
+ float p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3];
+ long i, j, k, l;
+ int polys = 0;
+
+ glPushAttrib(GL_ENABLE_BIT | GL_EVAL_BIT);
+ glEnable(GL_AUTO_NORMAL);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_MAP2_VERTEX_3);
+ glEnable(GL_MAP2_TEXTURE_COORD_2);
+ glFrontFace (GL_CW);
+ glPushMatrix();
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ glScalef(0.5, 0.5, 0.5);
+ glTranslatef(0.0, 0.0, -1.5);
+ for (i = 0; i < 10; i++) {
+ for (j = 0; j < 4; j++) {
+ for (k = 0; k < 4; k++) {
+ for (l = 0; l < 3; l++) {
+ p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+ q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+ if (l == 1)
+ q[j][k][l] *= -1.0;
+ if (i < 6) {
+ r[j][k][l] =
+ cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+ if (l == 0)
+ r[j][k][l] *= -1.0;
+ s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+ if (l == 0)
+ s[j][k][l] *= -1.0;
+ if (l == 1)
+ s[j][k][l] *= -1.0;
+ }
+ }
+ }
+ }
+ glMap2f(GL_MAP2_TEXTURE_COORD_2, 0, 1, 2, 2, 0, 1, 4, 2,
+ &tex[0][0][0]);
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &p[0][0][0]);
+ glMapGrid2f(grid, 0.0, 1.0, grid, 0.0, 1.0);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ polys += grid*grid*2;
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &q[0][0][0]);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ polys += grid*grid*2;
+ if (i < 6) {
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &r[0][0][0]);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ polys += grid*grid*2;
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &s[0][0][0]);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ polys += grid*grid*2;
+ }
+ }
+ glPopMatrix();
+ glPopAttrib();
+
+ return polys;
+}
+
+#else /* !HAVE_GLMAP */
+
+# include "normals.h"
+# include "teapot2.h"
+
+int
+unit_teapot (int grid, int wire_p)
+{
+ int polys = sizeof (teapot_triangles) / sizeof (*teapot_triangles) / 9;
+ int i;
+ const GLfloat *p = teapot_triangles;
+ GLfloat scale = 1 / 2.3;
+
+ glPushMatrix();
+ glScalef (scale, scale, scale);
+ glTranslatef (0, -1.25, 0);
+
+ if (wire_p)
+ {
+ glBegin (GL_LINES);
+ for (i = 0; i < polys; i++)
+ {
+ XYZ p1, p2, p3;
+ p1.x = *p++; p1.y = *p++; p1.z = *p++;
+ p2.x = *p++; p2.y = *p++; p2.z = *p++;
+ p3.x = *p++; p3.y = *p++; p3.z = *p++;
+ glVertex3f (p1.x, p1.y, p1.z); /* Draw 2 edges of each triangle */
+ glVertex3f (p2.x, p2.y, p2.z);
+ glVertex3f (p1.x, p1.y, p1.z);
+ glVertex3f (p3.x, p3.y, p3.z);
+ i++; /* Skip every other triangle */
+ p += 9;
+ }
+ glEnd();
+ polys /= 2;
+ }
+ else
+ {
+ glFrontFace (GL_CCW);
+ glBegin (GL_TRIANGLES);
+ for (i = 0; i < polys; i++)
+ {
+ XYZ p1, p2, p3;
+ p1.x = *p++; p1.y = *p++; p1.z = *p++;
+ p2.x = *p++; p2.y = *p++; p2.z = *p++;
+ p3.x = *p++; p3.y = *p++; p3.z = *p++;
+ do_normal (p1.x, p1.y, p1.z,
+ p2.x, p2.y, p2.z,
+ p3.x, p3.y, p3.z);
+ glVertex3f (p1.x, p1.y, p1.z);
+ glVertex3f (p2.x, p2.y, p2.z);
+ glVertex3f (p3.x, p3.y, p3.z);
+ }
+ glEnd();
+ }
+ glPopMatrix();
+
+ return polys;
+}
+
+#endif /* !HAVE_GLMAP */
diff --git a/hacks/glx/teapot.h b/hacks/glx/teapot.h
new file mode 100644
index 0000000..60b5fe5
--- /dev/null
+++ b/hacks/glx/teapot.h
@@ -0,0 +1,7 @@
+
+#ifndef __TEAPOT_H__
+#define __TEAPOT_H__
+
+extern int unit_teapot (int density, int wire_p);
+
+#endif /* __TEAPOT_H__ */
diff --git a/hacks/glx/teapot2.h b/hacks/glx/teapot2.h
new file mode 100644
index 0000000..c9d4def
--- /dev/null
+++ b/hacks/glx/teapot2.h
@@ -0,0 +1,6330 @@
+/* The Utah Teapot. Martin Newell, 1975.
+
+ Since GLUtesselator doesn't exist in the iOS build, we use these
+ triangles there instead of generating the teapot from Newell's
+ original Bezier patches, because I didn't feel like re-implementing
+ that code.
+ */
+
+static const GLfloat teapot_triangles[] = {
+ 1.368074,2.435437,-0.227403, 1.381968,2.4,-0.229712, 1.4,2.4,0,
+ 1.4,2.4,0, 1.385925,2.435437,0, 1.368074,2.435437,-0.227403,
+ 1.316296,2.435437,-0.442166, 1.329664,2.4,-0.446656, 1.381968,2.4,-0.229712,
+ 1.381968,2.4,-0.229712, 1.368074,2.435437,-0.227403, 1.316296,2.435437,-0.442166,
+ 1.233252,2.435437,-0.641628, 1.245776,2.4,-0.648144, 1.329664,2.4,-0.446656,
+ 1.329664,2.4,-0.446656, 1.316296,2.435437,-0.442166, 1.233252,2.435437,-0.641628,
+ 1.121601,2.435437,-0.823129, 1.132992,2.4,-0.831488, 1.245776,2.4,-0.648144,
+ 1.245776,2.4,-0.648144, 1.233252,2.435437,-0.641628, 1.121601,2.435437,-0.823129,
+ 0.984007,2.435437,-0.984007, 0.994,2.4,-0.994, 1.132992,2.4,-0.831488,
+ 1.132992,2.4,-0.831488, 1.121601,2.435437,-0.823129, 0.984007,2.435437,-0.984007,
+ 0.823129,2.435437,-1.121601, 0.831488,2.4,-1.132992, 0.994,2.4,-0.994,
+ 0.994,2.4,-0.994, 0.984007,2.435437,-0.984007, 0.823129,2.435437,-1.121601,
+ 0.641628,2.435437,-1.233252, 0.648144,2.4,-1.245776, 0.831488,2.4,-1.132992,
+ 0.831488,2.4,-1.132992, 0.823129,2.435437,-1.121601, 0.641628,2.435437,-1.233252,
+ 0.442166,2.435437,-1.316296, 0.446656,2.4,-1.329664, 0.648144,2.4,-1.245776,
+ 0.648144,2.4,-1.245776, 0.641628,2.435437,-1.233252, 0.442166,2.435437,-1.316296,
+ 0.227403,2.435437,-1.368074, 0.229712,2.4,-1.381968, 0.446656,2.4,-1.329664,
+ 0.446656,2.4,-1.329664, 0.442166,2.435437,-1.316296, 0.227403,2.435437,-1.368074,
+ 0,2.435437,-1.385925, 0,2.4,-1.4, 0.229712,2.4,-1.381968,
+ 0.229712,2.4,-1.381968, 0.227403,2.435437,-1.368074, 0,2.435437,-1.385925,
+ 1.36262,2.463,-0.226496, 1.368074,2.435437,-0.227403, 1.385925,2.435437,0,
+ 1.385925,2.435437,0, 1.3804,2.463,0, 1.36262,2.463,-0.226496,
+ 1.311049,2.463,-0.440403, 1.316296,2.435437,-0.442166, 1.368074,2.435437,-0.227403,
+ 1.368074,2.435437,-0.227403, 1.36262,2.463,-0.226496, 1.311049,2.463,-0.440403,
+ 1.228335,2.463,-0.63907, 1.233252,2.435437,-0.641628, 1.316296,2.435437,-0.442166,
+ 1.316296,2.435437,-0.442166, 1.311049,2.463,-0.440403, 1.228335,2.463,-0.63907,
+ 1.11713,2.463,-0.819847, 1.121601,2.435437,-0.823129, 1.233252,2.435437,-0.641628,
+ 1.233252,2.435437,-0.641628, 1.228335,2.463,-0.63907, 1.11713,2.463,-0.819847,
+ 0.980084,2.463,-0.980084, 0.984007,2.435437,-0.984007, 1.121601,2.435437,-0.823129,
+ 1.121601,2.435437,-0.823129, 1.11713,2.463,-0.819847, 0.980084,2.463,-0.980084,
+ 0.819847,2.463,-1.11713, 0.823129,2.435437,-1.121601, 0.984007,2.435437,-0.984007,
+ 0.984007,2.435437,-0.984007, 0.980084,2.463,-0.980084, 0.819847,2.463,-1.11713,
+ 0.63907,2.463,-1.228335, 0.641628,2.435437,-1.233252, 0.823129,2.435437,-1.121601,
+ 0.823129,2.435437,-1.121601, 0.819847,2.463,-1.11713, 0.63907,2.463,-1.228335,
+ 0.440403,2.463,-1.311049, 0.442166,2.435437,-1.316296, 0.641628,2.435437,-1.233252,
+ 0.641628,2.435437,-1.233252, 0.63907,2.463,-1.228335, 0.440403,2.463,-1.311049,
+ 0.226496,2.463,-1.36262, 0.227403,2.435437,-1.368074, 0.442166,2.435437,-1.316296,
+ 0.442166,2.435437,-1.316296, 0.440403,2.463,-1.311049, 0.226496,2.463,-1.36262,
+ 0,2.463,-1.3804, 0,2.435437,-1.385925, 0.227403,2.435437,-1.368074,
+ 0.227403,2.435437,-1.368074, 0.226496,2.463,-1.36262, 0,2.463,-1.3804,
+ 1.364422,2.482687,-0.226795, 1.36262,2.463,-0.226496, 1.3804,2.463,0,
+ 1.3804,2.463,0, 1.382225,2.482687,0, 1.364422,2.482687,-0.226795,
+ 1.312782,2.482687,-0.440985, 1.311049,2.463,-0.440403, 1.36262,2.463,-0.226496,
+ 1.36262,2.463,-0.226496, 1.364422,2.482687,-0.226795, 1.312782,2.482687,-0.440985,
+ 1.229959,2.482687,-0.639915, 1.228335,2.463,-0.63907, 1.311049,2.463,-0.440403,
+ 1.311049,2.463,-0.440403, 1.312782,2.482687,-0.440985, 1.229959,2.482687,-0.639915,
+ 1.118607,2.482687,-0.820931, 1.11713,2.463,-0.819847, 1.228335,2.463,-0.63907,
+ 1.228335,2.463,-0.63907, 1.229959,2.482687,-0.639915, 1.118607,2.482687,-0.820931,
+ 0.98138,2.482687,-0.98138, 0.980084,2.463,-0.980084, 1.11713,2.463,-0.819847,
+ 1.11713,2.463,-0.819847, 1.118607,2.482687,-0.820931, 0.98138,2.482687,-0.98138,
+ 0.820931,2.482687,-1.118607, 0.819847,2.463,-1.11713, 0.980084,2.463,-0.980084,
+ 0.980084,2.463,-0.980084, 0.98138,2.482687,-0.98138, 0.820931,2.482687,-1.118607,
+ 0.639915,2.482687,-1.229959, 0.63907,2.463,-1.228335, 0.819847,2.463,-1.11713,
+ 0.819847,2.463,-1.11713, 0.820931,2.482687,-1.118607, 0.639915,2.482687,-1.229959,
+ 0.440985,2.482687,-1.312782, 0.440403,2.463,-1.311049, 0.63907,2.463,-1.228335,
+ 0.63907,2.463,-1.228335, 0.639915,2.482687,-1.229959, 0.440985,2.482687,-1.312782,
+ 0.226795,2.482687,-1.364422, 0.226496,2.463,-1.36262, 0.440403,2.463,-1.311049,
+ 0.440403,2.463,-1.311049, 0.440985,2.482687,-1.312782, 0.226795,2.482687,-1.364422,
+ 0,2.482687,-1.382225, 0,2.463,-1.3804, 0.226496,2.463,-1.36262,
+ 0.226496,2.463,-1.36262, 0.226795,2.482687,-1.364422, 0,2.482687,-1.382225,
+ 1.372294,2.4945,-0.228104, 1.364422,2.482687,-0.226795, 1.382225,2.482687,0,
+ 1.382225,2.482687,0, 1.3902,2.4945,0, 1.372294,2.4945,-0.228104,
+ 1.320356,2.4945,-0.443529, 1.312782,2.482687,-0.440985, 1.364422,2.482687,-0.226795,
+ 1.364422,2.482687,-0.226795, 1.372294,2.4945,-0.228104, 1.320356,2.4945,-0.443529,
+ 1.237056,2.4945,-0.643607, 1.229959,2.482687,-0.639915, 1.312782,2.482687,-0.440985,
+ 1.312782,2.482687,-0.440985, 1.320356,2.4945,-0.443529, 1.237056,2.4945,-0.643607,
+ 1.125061,2.4945,-0.825668, 1.118607,2.482687,-0.820931, 1.229959,2.482687,-0.639915,
+ 1.229959,2.482687,-0.639915, 1.237056,2.4945,-0.643607, 1.125061,2.4945,-0.825668,
+ 0.987042,2.4945,-0.987042, 0.98138,2.482687,-0.98138, 1.118607,2.482687,-0.820931,
+ 1.118607,2.482687,-0.820931, 1.125061,2.4945,-0.825668, 0.987042,2.4945,-0.987042,
+ 0.825668,2.4945,-1.125061, 0.820931,2.482687,-1.118607, 0.98138,2.482687,-0.98138,
+ 0.98138,2.482687,-0.98138, 0.987042,2.4945,-0.987042, 0.825668,2.4945,-1.125061,
+ 0.643607,2.4945,-1.237056, 0.639915,2.482687,-1.229959, 0.820931,2.482687,-1.118607,
+ 0.820931,2.482687,-1.118607, 0.825668,2.4945,-1.125061, 0.643607,2.4945,-1.237056,
+ 0.443529,2.4945,-1.320356, 0.440985,2.482687,-1.312782, 0.639915,2.482687,-1.229959,
+ 0.639915,2.482687,-1.229959, 0.643607,2.4945,-1.237056, 0.443529,2.4945,-1.320356,
+ 0.228104,2.4945,-1.372294, 0.226795,2.482687,-1.364422, 0.440985,2.482687,-1.312782,
+ 0.440985,2.482687,-1.312782, 0.443529,2.4945,-1.320356, 0.228104,2.4945,-1.372294,
+ 0,2.4945,-1.3902, 0,2.482687,-1.382225, 0.226795,2.482687,-1.364422,
+ 0.226795,2.482687,-1.364422, 0.228104,2.4945,-1.372294, 0,2.4945,-1.3902,
+ 1.385053,2.498438,-0.230225, 1.372294,2.4945,-0.228104, 1.3902,2.4945,0,
+ 1.3902,2.4945,0, 1.403125,2.498438,0, 1.385053,2.498438,-0.230225,
+ 1.332632,2.498438,-0.447653, 1.320356,2.4945,-0.443529, 1.372294,2.4945,-0.228104,
+ 1.372294,2.4945,-0.228104, 1.385053,2.498438,-0.230225, 1.332632,2.498438,-0.447653,
+ 1.248557,2.498438,-0.649591, 1.237056,2.4945,-0.643607, 1.320356,2.4945,-0.443529,
+ 1.320356,2.4945,-0.443529, 1.332632,2.498438,-0.447653, 1.248557,2.498438,-0.649591,
+ 1.135521,2.498438,-0.833344, 1.125061,2.4945,-0.825668, 1.237056,2.4945,-0.643607,
+ 1.237056,2.4945,-0.643607, 1.248557,2.498438,-0.649591, 1.135521,2.498438,-0.833344,
+ 0.996219,2.498438,-0.996219, 0.987042,2.4945,-0.987042, 1.125061,2.4945,-0.825668,
+ 1.125061,2.4945,-0.825668, 1.135521,2.498438,-0.833344, 0.996219,2.498438,-0.996219,
+ 0.833344,2.498438,-1.135521, 0.825668,2.4945,-1.125061, 0.987042,2.4945,-0.987042,
+ 0.987042,2.4945,-0.987042, 0.996219,2.498438,-0.996219, 0.833344,2.498438,-1.135521,
+ 0.649591,2.498438,-1.248557, 0.643607,2.4945,-1.237056, 0.825668,2.4945,-1.125061,
+ 0.825668,2.4945,-1.125061, 0.833344,2.498438,-1.135521, 0.649591,2.498438,-1.248557,
+ 0.447653,2.498438,-1.332632, 0.443529,2.4945,-1.320356, 0.643607,2.4945,-1.237056,
+ 0.643607,2.4945,-1.237056, 0.649591,2.498438,-1.248557, 0.447653,2.498438,-1.332632,
+ 0.230225,2.498438,-1.385053, 0.228104,2.4945,-1.372294, 0.443529,2.4945,-1.320356,
+ 0.443529,2.4945,-1.320356, 0.447653,2.498438,-1.332632, 0.230225,2.498438,-1.385053,
+ 0,2.498438,-1.403125, 0,2.4945,-1.3902, 0.228104,2.4945,-1.372294,
+ 0.228104,2.4945,-1.372294, 0.230225,2.498438,-1.385053, 0,2.498438,-1.403125,
+ 1.401513,2.4945,-0.232961, 1.385053,2.498438,-0.230225, 1.403125,2.498438,0,
+ 1.403125,2.498438,0, 1.4198,2.4945,0, 1.401513,2.4945,-0.232961,
+ 1.348469,2.4945,-0.452973, 1.332632,2.498438,-0.447653, 1.385053,2.498438,-0.230225,
+ 1.385053,2.498438,-0.230225, 1.401513,2.4945,-0.232961, 1.348469,2.4945,-0.452973,
+ 1.263395,2.4945,-0.657311, 1.248557,2.498438,-0.649591, 1.332632,2.498438,-0.447653,
+ 1.332632,2.498438,-0.447653, 1.348469,2.4945,-0.452973, 1.263395,2.4945,-0.657311,
+ 1.149016,2.4945,-0.843248, 1.135521,2.498438,-0.833344, 1.248557,2.498438,-0.649591,
+ 1.248557,2.498438,-0.649591, 1.263395,2.4945,-0.657311, 1.149016,2.4945,-0.843248,
+ 1.008058,2.4945,-1.008058, 0.996219,2.498438,-0.996219, 1.135521,2.498438,-0.833344,
+ 1.135521,2.498438,-0.833344, 1.149016,2.4945,-0.843248, 1.008058,2.4945,-1.008058,
+ 0.843248,2.4945,-1.149016, 0.833344,2.498438,-1.135521, 0.996219,2.498438,-0.996219,
+ 0.996219,2.498438,-0.996219, 1.008058,2.4945,-1.008058, 0.843248,2.4945,-1.149016,
+ 0.657311,2.4945,-1.263395, 0.649591,2.498438,-1.248557, 0.833344,2.498438,-1.135521,
+ 0.833344,2.498438,-1.135521, 0.843248,2.4945,-1.149016, 0.657311,2.4945,-1.263395,
+ 0.452973,2.4945,-1.348469, 0.447653,2.498438,-1.332632, 0.649591,2.498438,-1.248557,
+ 0.649591,2.498438,-1.248557, 0.657311,2.4945,-1.263395, 0.452973,2.4945,-1.348469,
+ 0.232961,2.4945,-1.401513, 0.230225,2.498438,-1.385053, 0.447653,2.498438,-1.332632,
+ 0.447653,2.498438,-1.332632, 0.452973,2.4945,-1.348469, 0.232961,2.4945,-1.401513,
+ 0,2.4945,-1.4198, 0,2.498438,-1.403125, 0.230225,2.498438,-1.385053,
+ 0.230225,2.498438,-1.385053, 0.232961,2.4945,-1.401513, 0,2.4945,-1.4198,
+ 1.42049,2.482687,-0.236115, 1.401513,2.4945,-0.232961, 1.4198,2.4945,0,
+ 1.4198,2.4945,0, 1.439025,2.482687,0, 1.42049,2.482687,-0.236115,
+ 1.366728,2.482687,-0.459107, 1.348469,2.4945,-0.452973, 1.401513,2.4945,-0.232961,
+ 1.401513,2.4945,-0.232961, 1.42049,2.482687,-0.236115, 1.366728,2.482687,-0.459107,
+ 1.280502,2.482687,-0.666211, 1.263395,2.4945,-0.657311, 1.348469,2.4945,-0.452973,
+ 1.348469,2.4945,-0.452973, 1.366728,2.482687,-0.459107, 1.280502,2.482687,-0.666211,
+ 1.164574,2.482687,-0.854666, 1.149016,2.4945,-0.843248, 1.263395,2.4945,-0.657311,
+ 1.263395,2.4945,-0.657311, 1.280502,2.482687,-0.666211, 1.164574,2.482687,-0.854666,
+ 1.021708,2.482687,-1.021708, 1.008058,2.4945,-1.008058, 1.149016,2.4945,-0.843248,
+ 1.149016,2.4945,-0.843248, 1.164574,2.482687,-0.854666, 1.021708,2.482687,-1.021708,
+ 0.854666,2.482687,-1.164574, 0.843248,2.4945,-1.149016, 1.008058,2.4945,-1.008058,
+ 1.008058,2.4945,-1.008058, 1.021708,2.482687,-1.021708, 0.854666,2.482687,-1.164574,
+ 0.666211,2.482687,-1.280502, 0.657311,2.4945,-1.263395, 0.843248,2.4945,-1.149016,
+ 0.843248,2.4945,-1.149016, 0.854666,2.482687,-1.164574, 0.666211,2.482687,-1.280502,
+ 0.459107,2.482687,-1.366728, 0.452973,2.4945,-1.348469, 0.657311,2.4945,-1.263395,
+ 0.657311,2.4945,-1.263395, 0.666211,2.482687,-1.280502, 0.459107,2.482687,-1.366728,
+ 0.236115,2.482687,-1.42049, 0.232961,2.4945,-1.401513, 0.452973,2.4945,-1.348469,
+ 0.452973,2.4945,-1.348469, 0.459107,2.482687,-1.366728, 0.236115,2.482687,-1.42049,
+ 0,2.482687,-1.439025, 0,2.4945,-1.4198, 0.232961,2.4945,-1.401513,
+ 0.232961,2.4945,-1.401513, 0.236115,2.482687,-1.42049, 0,2.482687,-1.439025,
+ 1.4408,2.463,-0.239491, 1.42049,2.482687,-0.236115, 1.439025,2.482687,0,
+ 1.439025,2.482687,0, 1.4596,2.463,0, 1.4408,2.463,-0.239491,
+ 1.38627,2.463,-0.465671, 1.366728,2.482687,-0.459107, 1.42049,2.482687,-0.236115,
+ 1.42049,2.482687,-0.236115, 1.4408,2.463,-0.239491, 1.38627,2.463,-0.465671,
+ 1.29881,2.463,-0.675736, 1.280502,2.482687,-0.666211, 1.366728,2.482687,-0.459107,
+ 1.366728,2.482687,-0.459107, 1.38627,2.463,-0.465671, 1.29881,2.463,-0.675736,
+ 1.181225,2.463,-0.866886, 1.164574,2.482687,-0.854666, 1.280502,2.482687,-0.666211,
+ 1.280502,2.482687,-0.666211, 1.29881,2.463,-0.675736, 1.181225,2.463,-0.866886,
+ 1.036316,2.463,-1.036316, 1.021708,2.482687,-1.021708, 1.164574,2.482687,-0.854666,
+ 1.164574,2.482687,-0.854666, 1.181225,2.463,-0.866886, 1.036316,2.463,-1.036316,
+ 0.866886,2.463,-1.181225, 0.854666,2.482687,-1.164574, 1.021708,2.482687,-1.021708,
+ 1.021708,2.482687,-1.021708, 1.036316,2.463,-1.036316, 0.866886,2.463,-1.181225,
+ 0.675736,2.463,-1.29881, 0.666211,2.482687,-1.280502, 0.854666,2.482687,-1.164574,
+ 0.854666,2.482687,-1.164574, 0.866886,2.463,-1.181225, 0.675736,2.463,-1.29881,
+ 0.465671,2.463,-1.38627, 0.459107,2.482687,-1.366728, 0.666211,2.482687,-1.280502,
+ 0.666211,2.482687,-1.280502, 0.675736,2.463,-1.29881, 0.465671,2.463,-1.38627,
+ 0.239491,2.463,-1.4408, 0.236115,2.482687,-1.42049, 0.459107,2.482687,-1.366728,
+ 0.459107,2.482687,-1.366728, 0.465671,2.463,-1.38627, 0.239491,2.463,-1.4408,
+ 0,2.463,-1.4596, 0,2.482687,-1.439025, 0.236115,2.482687,-1.42049,
+ 0.236115,2.482687,-1.42049, 0.239491,2.463,-1.4408, 0,2.463,-1.4596,
+ 1.461258,2.435437,-0.242892, 1.4408,2.463,-0.239491, 1.4596,2.463,0,
+ 1.4596,2.463,0, 1.480325,2.435437,0, 1.461258,2.435437,-0.242892,
+ 1.405953,2.435437,-0.472283, 1.38627,2.463,-0.465671, 1.4408,2.463,-0.239491,
+ 1.4408,2.463,-0.239491, 1.461258,2.435437,-0.242892, 1.405953,2.435437,-0.472283,
+ 1.317252,2.435437,-0.685331, 1.29881,2.463,-0.675736, 1.38627,2.463,-0.465671,
+ 1.38627,2.463,-0.465671, 1.405953,2.435437,-0.472283, 1.317252,2.435437,-0.685331,
+ 1.197997,2.435437,-0.879195, 1.181225,2.463,-0.866886, 1.29881,2.463,-0.675736,
+ 1.29881,2.463,-0.675736, 1.317252,2.435437,-0.685331, 1.197997,2.435437,-0.879195,
+ 1.051031,2.435437,-1.051031, 1.036316,2.463,-1.036316, 1.181225,2.463,-0.866886,
+ 1.181225,2.463,-0.866886, 1.197997,2.435437,-0.879195, 1.051031,2.435437,-1.051031,
+ 0.879195,2.435437,-1.197997, 0.866886,2.463,-1.181225, 1.036316,2.463,-1.036316,
+ 1.036316,2.463,-1.036316, 1.051031,2.435437,-1.051031, 0.879195,2.435437,-1.197997,
+ 0.685331,2.435437,-1.317252, 0.675736,2.463,-1.29881, 0.866886,2.463,-1.181225,
+ 0.866886,2.463,-1.181225, 0.879195,2.435437,-1.197997, 0.685331,2.435437,-1.317252,
+ 0.472283,2.435437,-1.405953, 0.465671,2.463,-1.38627, 0.675736,2.463,-1.29881,
+ 0.675736,2.463,-1.29881, 0.685331,2.435437,-1.317252, 0.472283,2.435437,-1.405953,
+ 0.242892,2.435437,-1.461258, 0.239491,2.463,-1.4408, 0.465671,2.463,-1.38627,
+ 0.465671,2.463,-1.38627, 0.472283,2.435437,-1.405953, 0.242892,2.435437,-1.461258,
+ 0,2.435437,-1.480325, 0,2.463,-1.4596, 0.239491,2.463,-1.4408,
+ 0.239491,2.463,-1.4408, 0.242892,2.435437,-1.461258, 0,2.435437,-1.480325,
+ 1.48068,2.4,-0.24612, 1.461258,2.435437,-0.242892, 1.480325,2.435437,0,
+ 1.480325,2.435437,0, 1.5,2.4,0, 1.48068,2.4,-0.24612,
+ 1.42464,2.4,-0.47856, 1.405953,2.435437,-0.472283, 1.461258,2.435437,-0.242892,
+ 1.461258,2.435437,-0.242892, 1.48068,2.4,-0.24612, 1.42464,2.4,-0.47856,
+ 1.33476,2.4,-0.69444, 1.317252,2.435437,-0.685331, 1.405953,2.435437,-0.472283,
+ 1.405953,2.435437,-0.472283, 1.42464,2.4,-0.47856, 1.33476,2.4,-0.69444,
+ 1.21392,2.4,-0.89088, 1.197997,2.435437,-0.879195, 1.317252,2.435437,-0.685331,
+ 1.317252,2.435437,-0.685331, 1.33476,2.4,-0.69444, 1.21392,2.4,-0.89088,
+ 1.065,2.4,-1.065, 1.051031,2.435437,-1.051031, 1.197997,2.435437,-0.879195,
+ 1.197997,2.435437,-0.879195, 1.21392,2.4,-0.89088, 1.065,2.4,-1.065,
+ 0.89088,2.4,-1.21392, 0.879195,2.435437,-1.197997, 1.051031,2.435437,-1.051031,
+ 1.051031,2.435437,-1.051031, 1.065,2.4,-1.065, 0.89088,2.4,-1.21392,
+ 0.69444,2.4,-1.33476, 0.685331,2.435437,-1.317252, 0.879195,2.435437,-1.197997,
+ 0.879195,2.435437,-1.197997, 0.89088,2.4,-1.21392, 0.69444,2.4,-1.33476,
+ 0.47856,2.4,-1.42464, 0.472283,2.435437,-1.405953, 0.685331,2.435437,-1.317252,
+ 0.685331,2.435437,-1.317252, 0.69444,2.4,-1.33476, 0.47856,2.4,-1.42464,
+ 0.24612,2.4,-1.48068, 0.242892,2.435437,-1.461258, 0.472283,2.435437,-1.405953,
+ 0.472283,2.435437,-1.405953, 0.47856,2.4,-1.42464, 0.24612,2.4,-1.48068,
+ 0,2.4,-1.5, 0,2.435437,-1.480325, 0.242892,2.435437,-1.461258,
+ 0.242892,2.435437,-1.461258, 0.24612,2.4,-1.48068, 0,2.4,-1.5,
+ -0.227403,2.435437,-1.368074, -0.229712,2.4,-1.381968, 0,2.4,-1.4,
+ 0,2.4,-1.4, 0,2.435437,-1.385925, -0.227403,2.435437,-1.368074,
+ -0.442166,2.435437,-1.316296, -0.446656,2.4,-1.329664, -0.229712,2.4,-1.381968,
+ -0.229712,2.4,-1.381968, -0.227403,2.435437,-1.368074, -0.442166,2.435437,-1.316296,
+ -0.641628,2.435437,-1.233252, -0.648144,2.4,-1.245776, -0.446656,2.4,-1.329664,
+ -0.446656,2.4,-1.329664, -0.442166,2.435437,-1.316296, -0.641628,2.435437,-1.233252,
+ -0.823129,2.435437,-1.121601, -0.831488,2.4,-1.132992, -0.648144,2.4,-1.245776,
+ -0.648144,2.4,-1.245776, -0.641628,2.435437,-1.233252, -0.823129,2.435437,-1.121601,
+ -0.984007,2.435437,-0.984007, -0.994,2.4,-0.994, -0.831488,2.4,-1.132992,
+ -0.831488,2.4,-1.132992, -0.823129,2.435437,-1.121601, -0.984007,2.435437,-0.984007,
+ -1.121601,2.435437,-0.823129, -1.132992,2.4,-0.831488, -0.994,2.4,-0.994,
+ -0.994,2.4,-0.994, -0.984007,2.435437,-0.984007, -1.121601,2.435437,-0.823129,
+ -1.233252,2.435437,-0.641628, -1.245776,2.4,-0.648144, -1.132992,2.4,-0.831488,
+ -1.132992,2.4,-0.831488, -1.121601,2.435437,-0.823129, -1.233252,2.435437,-0.641628,
+ -1.316296,2.435437,-0.442166, -1.329664,2.4,-0.446656, -1.245776,2.4,-0.648144,
+ -1.245776,2.4,-0.648144, -1.233252,2.435437,-0.641628, -1.316296,2.435437,-0.442166,
+ -1.368074,2.435437,-0.227403, -1.381968,2.4,-0.229712, -1.329664,2.4,-0.446656,
+ -1.329664,2.4,-0.446656, -1.316296,2.435437,-0.442166, -1.368074,2.435437,-0.227403,
+ -1.385925,2.435437,0, -1.4,2.4,0, -1.381968,2.4,-0.229712,
+ -1.381968,2.4,-0.229712, -1.368074,2.435437,-0.227403, -1.385925,2.435437,0,
+ -0.226496,2.463,-1.36262, -0.227403,2.435437,-1.368074, 0,2.435437,-1.385925,
+ 0,2.435437,-1.385925, 0,2.463,-1.3804, -0.226496,2.463,-1.36262,
+ -0.440403,2.463,-1.311049, -0.442166,2.435437,-1.316296, -0.227403,2.435437,-1.368074,
+ -0.227403,2.435437,-1.368074, -0.226496,2.463,-1.36262, -0.440403,2.463,-1.311049,
+ -0.63907,2.463,-1.228335, -0.641628,2.435437,-1.233252, -0.442166,2.435437,-1.316296,
+ -0.442166,2.435437,-1.316296, -0.440403,2.463,-1.311049, -0.63907,2.463,-1.228335,
+ -0.819847,2.463,-1.11713, -0.823129,2.435437,-1.121601, -0.641628,2.435437,-1.233252,
+ -0.641628,2.435437,-1.233252, -0.63907,2.463,-1.228335, -0.819847,2.463,-1.11713,
+ -0.980084,2.463,-0.980084, -0.984007,2.435437,-0.984007, -0.823129,2.435437,-1.121601,
+ -0.823129,2.435437,-1.121601, -0.819847,2.463,-1.11713, -0.980084,2.463,-0.980084,
+ -1.11713,2.463,-0.819847, -1.121601,2.435437,-0.823129, -0.984007,2.435437,-0.984007,
+ -0.984007,2.435437,-0.984007, -0.980084,2.463,-0.980084, -1.11713,2.463,-0.819847,
+ -1.228335,2.463,-0.63907, -1.233252,2.435437,-0.641628, -1.121601,2.435437,-0.823129,
+ -1.121601,2.435437,-0.823129, -1.11713,2.463,-0.819847, -1.228335,2.463,-0.63907,
+ -1.311049,2.463,-0.440403, -1.316296,2.435437,-0.442166, -1.233252,2.435437,-0.641628,
+ -1.233252,2.435437,-0.641628, -1.228335,2.463,-0.63907, -1.311049,2.463,-0.440403,
+ -1.36262,2.463,-0.226496, -1.368074,2.435437,-0.227403, -1.316296,2.435437,-0.442166,
+ -1.316296,2.435437,-0.442166, -1.311049,2.463,-0.440403, -1.36262,2.463,-0.226496,
+ -1.3804,2.463,0, -1.385925,2.435437,0, -1.368074,2.435437,-0.227403,
+ -1.368074,2.435437,-0.227403, -1.36262,2.463,-0.226496, -1.3804,2.463,0,
+ -0.226795,2.482687,-1.364422, -0.226496,2.463,-1.36262, 0,2.463,-1.3804,
+ 0,2.463,-1.3804, 0,2.482687,-1.382225, -0.226795,2.482687,-1.364422,
+ -0.440985,2.482687,-1.312782, -0.440403,2.463,-1.311049, -0.226496,2.463,-1.36262,
+ -0.226496,2.463,-1.36262, -0.226795,2.482687,-1.364422, -0.440985,2.482687,-1.312782,
+ -0.639915,2.482687,-1.229959, -0.63907,2.463,-1.228335, -0.440403,2.463,-1.311049,
+ -0.440403,2.463,-1.311049, -0.440985,2.482687,-1.312782, -0.639915,2.482687,-1.229959,
+ -0.820931,2.482687,-1.118607, -0.819847,2.463,-1.11713, -0.63907,2.463,-1.228335,
+ -0.63907,2.463,-1.228335, -0.639915,2.482687,-1.229959, -0.820931,2.482687,-1.118607,
+ -0.98138,2.482687,-0.98138, -0.980084,2.463,-0.980084, -0.819847,2.463,-1.11713,
+ -0.819847,2.463,-1.11713, -0.820931,2.482687,-1.118607, -0.98138,2.482687,-0.98138,
+ -1.118607,2.482687,-0.820931, -1.11713,2.463,-0.819847, -0.980084,2.463,-0.980084,
+ -0.980084,2.463,-0.980084, -0.98138,2.482687,-0.98138, -1.118607,2.482687,-0.820931,
+ -1.229959,2.482687,-0.639915, -1.228335,2.463,-0.63907, -1.11713,2.463,-0.819847,
+ -1.11713,2.463,-0.819847, -1.118607,2.482687,-0.820931, -1.229959,2.482687,-0.639915,
+ -1.312782,2.482687,-0.440985, -1.311049,2.463,-0.440403, -1.228335,2.463,-0.63907,
+ -1.228335,2.463,-0.63907, -1.229959,2.482687,-0.639915, -1.312782,2.482687,-0.440985,
+ -1.364422,2.482687,-0.226795, -1.36262,2.463,-0.226496, -1.311049,2.463,-0.440403,
+ -1.311049,2.463,-0.440403, -1.312782,2.482687,-0.440985, -1.364422,2.482687,-0.226795,
+ -1.382225,2.482687,0, -1.3804,2.463,0, -1.36262,2.463,-0.226496,
+ -1.36262,2.463,-0.226496, -1.364422,2.482687,-0.226795, -1.382225,2.482687,0,
+ -0.228104,2.4945,-1.372294, -0.226795,2.482687,-1.364422, 0,2.482687,-1.382225,
+ 0,2.482687,-1.382225, 0,2.4945,-1.3902, -0.228104,2.4945,-1.372294,
+ -0.443529,2.4945,-1.320356, -0.440985,2.482687,-1.312782, -0.226795,2.482687,-1.364422,
+ -0.226795,2.482687,-1.364422, -0.228104,2.4945,-1.372294, -0.443529,2.4945,-1.320356,
+ -0.643607,2.4945,-1.237056, -0.639915,2.482687,-1.229959, -0.440985,2.482687,-1.312782,
+ -0.440985,2.482687,-1.312782, -0.443529,2.4945,-1.320356, -0.643607,2.4945,-1.237056,
+ -0.825668,2.4945,-1.125061, -0.820931,2.482687,-1.118607, -0.639915,2.482687,-1.229959,
+ -0.639915,2.482687,-1.229959, -0.643607,2.4945,-1.237056, -0.825668,2.4945,-1.125061,
+ -0.987042,2.4945,-0.987042, -0.98138,2.482687,-0.98138, -0.820931,2.482687,-1.118607,
+ -0.820931,2.482687,-1.118607, -0.825668,2.4945,-1.125061, -0.987042,2.4945,-0.987042,
+ -1.125061,2.4945,-0.825668, -1.118607,2.482687,-0.820931, -0.98138,2.482687,-0.98138,
+ -0.98138,2.482687,-0.98138, -0.987042,2.4945,-0.987042, -1.125061,2.4945,-0.825668,
+ -1.237056,2.4945,-0.643607, -1.229959,2.482687,-0.639915, -1.118607,2.482687,-0.820931,
+ -1.118607,2.482687,-0.820931, -1.125061,2.4945,-0.825668, -1.237056,2.4945,-0.643607,
+ -1.320356,2.4945,-0.443529, -1.312782,2.482687,-0.440985, -1.229959,2.482687,-0.639915,
+ -1.229959,2.482687,-0.639915, -1.237056,2.4945,-0.643607, -1.320356,2.4945,-0.443529,
+ -1.372294,2.4945,-0.228104, -1.364422,2.482687,-0.226795, -1.312782,2.482687,-0.440985,
+ -1.312782,2.482687,-0.440985, -1.320356,2.4945,-0.443529, -1.372294,2.4945,-0.228104,
+ -1.3902,2.4945,0, -1.382225,2.482687,0, -1.364422,2.482687,-0.226795,
+ -1.364422,2.482687,-0.226795, -1.372294,2.4945,-0.228104, -1.3902,2.4945,0,
+ -0.230225,2.498438,-1.385053, -0.228104,2.4945,-1.372294, 0,2.4945,-1.3902,
+ 0,2.4945,-1.3902, 0,2.498438,-1.403125, -0.230225,2.498438,-1.385053,
+ -0.447653,2.498438,-1.332632, -0.443529,2.4945,-1.320356, -0.228104,2.4945,-1.372294,
+ -0.228104,2.4945,-1.372294, -0.230225,2.498438,-1.385053, -0.447653,2.498438,-1.332632,
+ -0.649591,2.498438,-1.248557, -0.643607,2.4945,-1.237056, -0.443529,2.4945,-1.320356,
+ -0.443529,2.4945,-1.320356, -0.447653,2.498438,-1.332632, -0.649591,2.498438,-1.248557,
+ -0.833344,2.498438,-1.135521, -0.825668,2.4945,-1.125061, -0.643607,2.4945,-1.237056,
+ -0.643607,2.4945,-1.237056, -0.649591,2.498438,-1.248557, -0.833344,2.498438,-1.135521,
+ -0.996219,2.498438,-0.996219, -0.987042,2.4945,-0.987042, -0.825668,2.4945,-1.125061,
+ -0.825668,2.4945,-1.125061, -0.833344,2.498438,-1.135521, -0.996219,2.498438,-0.996219,
+ -1.135521,2.498438,-0.833344, -1.125061,2.4945,-0.825668, -0.987042,2.4945,-0.987042,
+ -0.987042,2.4945,-0.987042, -0.996219,2.498438,-0.996219, -1.135521,2.498438,-0.833344,
+ -1.248557,2.498438,-0.649591, -1.237056,2.4945,-0.643607, -1.125061,2.4945,-0.825668,
+ -1.125061,2.4945,-0.825668, -1.135521,2.498438,-0.833344, -1.248557,2.498438,-0.649591,
+ -1.332632,2.498438,-0.447653, -1.320356,2.4945,-0.443529, -1.237056,2.4945,-0.643607,
+ -1.237056,2.4945,-0.643607, -1.248557,2.498438,-0.649591, -1.332632,2.498438,-0.447653,
+ -1.385053,2.498438,-0.230225, -1.372294,2.4945,-0.228104, -1.320356,2.4945,-0.443529,
+ -1.320356,2.4945,-0.443529, -1.332632,2.498438,-0.447653, -1.385053,2.498438,-0.230225,
+ -1.403125,2.498438,0, -1.3902,2.4945,0, -1.372294,2.4945,-0.228104,
+ -1.372294,2.4945,-0.228104, -1.385053,2.498438,-0.230225, -1.403125,2.498438,0,
+ -0.232961,2.4945,-1.401513, -0.230225,2.498438,-1.385053, 0,2.498438,-1.403125,
+ 0,2.498438,-1.403125, 0,2.4945,-1.4198, -0.232961,2.4945,-1.401513,
+ -0.452973,2.4945,-1.348469, -0.447653,2.498438,-1.332632, -0.230225,2.498438,-1.385053,
+ -0.230225,2.498438,-1.385053, -0.232961,2.4945,-1.401513, -0.452973,2.4945,-1.348469,
+ -0.657311,2.4945,-1.263395, -0.649591,2.498438,-1.248557, -0.447653,2.498438,-1.332632,
+ -0.447653,2.498438,-1.332632, -0.452973,2.4945,-1.348469, -0.657311,2.4945,-1.263395,
+ -0.843248,2.4945,-1.149016, -0.833344,2.498438,-1.135521, -0.649591,2.498438,-1.248557,
+ -0.649591,2.498438,-1.248557, -0.657311,2.4945,-1.263395, -0.843248,2.4945,-1.149016,
+ -1.008058,2.4945,-1.008058, -0.996219,2.498438,-0.996219, -0.833344,2.498438,-1.135521,
+ -0.833344,2.498438,-1.135521, -0.843248,2.4945,-1.149016, -1.008058,2.4945,-1.008058,
+ -1.149016,2.4945,-0.843248, -1.135521,2.498438,-0.833344, -0.996219,2.498438,-0.996219,
+ -0.996219,2.498438,-0.996219, -1.008058,2.4945,-1.008058, -1.149016,2.4945,-0.843248,
+ -1.263395,2.4945,-0.657311, -1.248557,2.498438,-0.649591, -1.135521,2.498438,-0.833344,
+ -1.135521,2.498438,-0.833344, -1.149016,2.4945,-0.843248, -1.263395,2.4945,-0.657311,
+ -1.348469,2.4945,-0.452973, -1.332632,2.498438,-0.447653, -1.248557,2.498438,-0.649591,
+ -1.248557,2.498438,-0.649591, -1.263395,2.4945,-0.657311, -1.348469,2.4945,-0.452973,
+ -1.401513,2.4945,-0.232961, -1.385053,2.498438,-0.230225, -1.332632,2.498438,-0.447653,
+ -1.332632,2.498438,-0.447653, -1.348469,2.4945,-0.452973, -1.401513,2.4945,-0.232961,
+ -1.4198,2.4945,0, -1.403125,2.498438,0, -1.385053,2.498438,-0.230225,
+ -1.385053,2.498438,-0.230225, -1.401513,2.4945,-0.232961, -1.4198,2.4945,0,
+ -0.236115,2.482687,-1.42049, -0.232961,2.4945,-1.401513, 0,2.4945,-1.4198,
+ 0,2.4945,-1.4198, 0,2.482687,-1.439025, -0.236115,2.482687,-1.42049,
+ -0.459107,2.482687,-1.366728, -0.452973,2.4945,-1.348469, -0.232961,2.4945,-1.401513,
+ -0.232961,2.4945,-1.401513, -0.236115,2.482687,-1.42049, -0.459107,2.482687,-1.366728,
+ -0.666211,2.482687,-1.280502, -0.657311,2.4945,-1.263395, -0.452973,2.4945,-1.348469,
+ -0.452973,2.4945,-1.348469, -0.459107,2.482687,-1.366728, -0.666211,2.482687,-1.280502,
+ -0.854666,2.482687,-1.164574, -0.843248,2.4945,-1.149016, -0.657311,2.4945,-1.263395,
+ -0.657311,2.4945,-1.263395, -0.666211,2.482687,-1.280502, -0.854666,2.482687,-1.164574,
+ -1.021708,2.482687,-1.021708, -1.008058,2.4945,-1.008058, -0.843248,2.4945,-1.149016,
+ -0.843248,2.4945,-1.149016, -0.854666,2.482687,-1.164574, -1.021708,2.482687,-1.021708,
+ -1.164574,2.482687,-0.854666, -1.149016,2.4945,-0.843248, -1.008058,2.4945,-1.008058,
+ -1.008058,2.4945,-1.008058, -1.021708,2.482687,-1.021708, -1.164574,2.482687,-0.854666,
+ -1.280502,2.482687,-0.666211, -1.263395,2.4945,-0.657311, -1.149016,2.4945,-0.843248,
+ -1.149016,2.4945,-0.843248, -1.164574,2.482687,-0.854666, -1.280502,2.482687,-0.666211,
+ -1.366728,2.482687,-0.459107, -1.348469,2.4945,-0.452973, -1.263395,2.4945,-0.657311,
+ -1.263395,2.4945,-0.657311, -1.280502,2.482687,-0.666211, -1.366728,2.482687,-0.459107,
+ -1.42049,2.482687,-0.236115, -1.401513,2.4945,-0.232961, -1.348469,2.4945,-0.452973,
+ -1.348469,2.4945,-0.452973, -1.366728,2.482687,-0.459107, -1.42049,2.482687,-0.236115,
+ -1.439025,2.482687,0, -1.4198,2.4945,0, -1.401513,2.4945,-0.232961,
+ -1.401513,2.4945,-0.232961, -1.42049,2.482687,-0.236115, -1.439025,2.482687,0,
+ -0.239491,2.463,-1.4408, -0.236115,2.482687,-1.42049, 0,2.482687,-1.439025,
+ 0,2.482687,-1.439025, 0,2.463,-1.4596, -0.239491,2.463,-1.4408,
+ -0.465671,2.463,-1.38627, -0.459107,2.482687,-1.366728, -0.236115,2.482687,-1.42049,
+ -0.236115,2.482687,-1.42049, -0.239491,2.463,-1.4408, -0.465671,2.463,-1.38627,
+ -0.675736,2.463,-1.29881, -0.666211,2.482687,-1.280502, -0.459107,2.482687,-1.366728,
+ -0.459107,2.482687,-1.366728, -0.465671,2.463,-1.38627, -0.675736,2.463,-1.29881,
+ -0.866886,2.463,-1.181225, -0.854666,2.482687,-1.164574, -0.666211,2.482687,-1.280502,
+ -0.666211,2.482687,-1.280502, -0.675736,2.463,-1.29881, -0.866886,2.463,-1.181225,
+ -1.036316,2.463,-1.036316, -1.021708,2.482687,-1.021708, -0.854666,2.482687,-1.164574,
+ -0.854666,2.482687,-1.164574, -0.866886,2.463,-1.181225, -1.036316,2.463,-1.036316,
+ -1.181225,2.463,-0.866886, -1.164574,2.482687,-0.854666, -1.021708,2.482687,-1.021708,
+ -1.021708,2.482687,-1.021708, -1.036316,2.463,-1.036316, -1.181225,2.463,-0.866886,
+ -1.29881,2.463,-0.675736, -1.280502,2.482687,-0.666211, -1.164574,2.482687,-0.854666,
+ -1.164574,2.482687,-0.854666, -1.181225,2.463,-0.866886, -1.29881,2.463,-0.675736,
+ -1.38627,2.463,-0.465671, -1.366728,2.482687,-0.459107, -1.280502,2.482687,-0.666211,
+ -1.280502,2.482687,-0.666211, -1.29881,2.463,-0.675736, -1.38627,2.463,-0.465671,
+ -1.4408,2.463,-0.239491, -1.42049,2.482687,-0.236115, -1.366728,2.482687,-0.459107,
+ -1.366728,2.482687,-0.459107, -1.38627,2.463,-0.465671, -1.4408,2.463,-0.239491,
+ -1.4596,2.463,0, -1.439025,2.482687,0, -1.42049,2.482687,-0.236115,
+ -1.42049,2.482687,-0.236115, -1.4408,2.463,-0.239491, -1.4596,2.463,0,
+ -0.242892,2.435437,-1.461258, -0.239491,2.463,-1.4408, 0,2.463,-1.4596,
+ 0,2.463,-1.4596, 0,2.435437,-1.480325, -0.242892,2.435437,-1.461258,
+ -0.472283,2.435437,-1.405953, -0.465671,2.463,-1.38627, -0.239491,2.463,-1.4408,
+ -0.239491,2.463,-1.4408, -0.242892,2.435437,-1.461258, -0.472283,2.435437,-1.405953,
+ -0.685331,2.435437,-1.317252, -0.675736,2.463,-1.29881, -0.465671,2.463,-1.38627,
+ -0.465671,2.463,-1.38627, -0.472283,2.435437,-1.405953, -0.685331,2.435437,-1.317252,
+ -0.879195,2.435437,-1.197997, -0.866886,2.463,-1.181225, -0.675736,2.463,-1.29881,
+ -0.675736,2.463,-1.29881, -0.685331,2.435437,-1.317252, -0.879195,2.435437,-1.197997,
+ -1.051031,2.435437,-1.051031, -1.036316,2.463,-1.036316, -0.866886,2.463,-1.181225,
+ -0.866886,2.463,-1.181225, -0.879195,2.435437,-1.197997, -1.051031,2.435437,-1.051031,
+ -1.197997,2.435437,-0.879195, -1.181225,2.463,-0.866886, -1.036316,2.463,-1.036316,
+ -1.036316,2.463,-1.036316, -1.051031,2.435437,-1.051031, -1.197997,2.435437,-0.879195,
+ -1.317252,2.435437,-0.685331, -1.29881,2.463,-0.675736, -1.181225,2.463,-0.866886,
+ -1.181225,2.463,-0.866886, -1.197997,2.435437,-0.879195, -1.317252,2.435437,-0.685331,
+ -1.405953,2.435437,-0.472283, -1.38627,2.463,-0.465671, -1.29881,2.463,-0.675736,
+ -1.29881,2.463,-0.675736, -1.317252,2.435437,-0.685331, -1.405953,2.435437,-0.472283,
+ -1.461258,2.435437,-0.242892, -1.4408,2.463,-0.239491, -1.38627,2.463,-0.465671,
+ -1.38627,2.463,-0.465671, -1.405953,2.435437,-0.472283, -1.461258,2.435437,-0.242892,
+ -1.480325,2.435437,0, -1.4596,2.463,0, -1.4408,2.463,-0.239491,
+ -1.4408,2.463,-0.239491, -1.461258,2.435437,-0.242892, -1.480325,2.435437,0,
+ -0.24612,2.4,-1.48068, -0.242892,2.435437,-1.461258, 0,2.435437,-1.480325,
+ 0,2.435437,-1.480325, 0,2.4,-1.5, -0.24612,2.4,-1.48068,
+ -0.47856,2.4,-1.42464, -0.472283,2.435437,-1.405953, -0.242892,2.435437,-1.461258,
+ -0.242892,2.435437,-1.461258, -0.24612,2.4,-1.48068, -0.47856,2.4,-1.42464,
+ -0.69444,2.4,-1.33476, -0.685331,2.435437,-1.317252, -0.472283,2.435437,-1.405953,
+ -0.472283,2.435437,-1.405953, -0.47856,2.4,-1.42464, -0.69444,2.4,-1.33476,
+ -0.89088,2.4,-1.21392, -0.879195,2.435437,-1.197997, -0.685331,2.435437,-1.317252,
+ -0.685331,2.435437,-1.317252, -0.69444,2.4,-1.33476, -0.89088,2.4,-1.21392,
+ -1.065,2.4,-1.065, -1.051031,2.435437,-1.051031, -0.879195,2.435437,-1.197997,
+ -0.879195,2.435437,-1.197997, -0.89088,2.4,-1.21392, -1.065,2.4,-1.065,
+ -1.21392,2.4,-0.89088, -1.197997,2.435437,-0.879195, -1.051031,2.435437,-1.051031,
+ -1.051031,2.435437,-1.051031, -1.065,2.4,-1.065, -1.21392,2.4,-0.89088,
+ -1.33476,2.4,-0.69444, -1.317252,2.435437,-0.685331, -1.197997,2.435437,-0.879195,
+ -1.197997,2.435437,-0.879195, -1.21392,2.4,-0.89088, -1.33476,2.4,-0.69444,
+ -1.42464,2.4,-0.47856, -1.405953,2.435437,-0.472283, -1.317252,2.435437,-0.685331,
+ -1.317252,2.435437,-0.685331, -1.33476,2.4,-0.69444, -1.42464,2.4,-0.47856,
+ -1.48068,2.4,-0.24612, -1.461258,2.435437,-0.242892, -1.405953,2.435437,-0.472283,
+ -1.405953,2.435437,-0.472283, -1.42464,2.4,-0.47856, -1.48068,2.4,-0.24612,
+ -1.5,2.4,0, -1.480325,2.435437,0, -1.461258,2.435437,-0.242892,
+ -1.461258,2.435437,-0.242892, -1.48068,2.4,-0.24612, -1.5,2.4,0,
+ -1.368074,2.435437,0.227403, -1.381968,2.4,0.229712, -1.4,2.4,0,
+ -1.4,2.4,0, -1.385925,2.435437,0, -1.368074,2.435437,0.227403,
+ -1.316296,2.435437,0.442166, -1.329664,2.4,0.446656, -1.381968,2.4,0.229712,
+ -1.381968,2.4,0.229712, -1.368074,2.435437,0.227403, -1.316296,2.435437,0.442166,
+ -1.233252,2.435437,0.641628, -1.245776,2.4,0.648144, -1.329664,2.4,0.446656,
+ -1.329664,2.4,0.446656, -1.316296,2.435437,0.442166, -1.233252,2.435437,0.641628,
+ -1.121601,2.435437,0.823129, -1.132992,2.4,0.831488, -1.245776,2.4,0.648144,
+ -1.245776,2.4,0.648144, -1.233252,2.435437,0.641628, -1.121601,2.435437,0.823129,
+ -0.984007,2.435437,0.984007, -0.994,2.4,0.994, -1.132992,2.4,0.831488,
+ -1.132992,2.4,0.831488, -1.121601,2.435437,0.823129, -0.984007,2.435437,0.984007,
+ -0.823129,2.435437,1.121601, -0.831488,2.4,1.132992, -0.994,2.4,0.994,
+ -0.994,2.4,0.994, -0.984007,2.435437,0.984007, -0.823129,2.435437,1.121601,
+ -0.641628,2.435437,1.233252, -0.648144,2.4,1.245776, -0.831488,2.4,1.132992,
+ -0.831488,2.4,1.132992, -0.823129,2.435437,1.121601, -0.641628,2.435437,1.233252,
+ -0.442166,2.435437,1.316296, -0.446656,2.4,1.329664, -0.648144,2.4,1.245776,
+ -0.648144,2.4,1.245776, -0.641628,2.435437,1.233252, -0.442166,2.435437,1.316296,
+ -0.227403,2.435437,1.368074, -0.229712,2.4,1.381968, -0.446656,2.4,1.329664,
+ -0.446656,2.4,1.329664, -0.442166,2.435437,1.316296, -0.227403,2.435437,1.368074,
+ 0,2.435437,1.385925, 0,2.4,1.4, -0.229712,2.4,1.381968,
+ -0.229712,2.4,1.381968, -0.227403,2.435437,1.368074, 0,2.435437,1.385925,
+ -1.36262,2.463,0.226496, -1.368074,2.435437,0.227403, -1.385925,2.435437,0,
+ -1.385925,2.435437,0, -1.3804,2.463,0, -1.36262,2.463,0.226496,
+ -1.311049,2.463,0.440403, -1.316296,2.435437,0.442166, -1.368074,2.435437,0.227403,
+ -1.368074,2.435437,0.227403, -1.36262,2.463,0.226496, -1.311049,2.463,0.440403,
+ -1.228335,2.463,0.63907, -1.233252,2.435437,0.641628, -1.316296,2.435437,0.442166,
+ -1.316296,2.435437,0.442166, -1.311049,2.463,0.440403, -1.228335,2.463,0.63907,
+ -1.11713,2.463,0.819847, -1.121601,2.435437,0.823129, -1.233252,2.435437,0.641628,
+ -1.233252,2.435437,0.641628, -1.228335,2.463,0.63907, -1.11713,2.463,0.819847,
+ -0.980084,2.463,0.980084, -0.984007,2.435437,0.984007, -1.121601,2.435437,0.823129,
+ -1.121601,2.435437,0.823129, -1.11713,2.463,0.819847, -0.980084,2.463,0.980084,
+ -0.819847,2.463,1.11713, -0.823129,2.435437,1.121601, -0.984007,2.435437,0.984007,
+ -0.984007,2.435437,0.984007, -0.980084,2.463,0.980084, -0.819847,2.463,1.11713,
+ -0.63907,2.463,1.228335, -0.641628,2.435437,1.233252, -0.823129,2.435437,1.121601,
+ -0.823129,2.435437,1.121601, -0.819847,2.463,1.11713, -0.63907,2.463,1.228335,
+ -0.440403,2.463,1.311049, -0.442166,2.435437,1.316296, -0.641628,2.435437,1.233252,
+ -0.641628,2.435437,1.233252, -0.63907,2.463,1.228335, -0.440403,2.463,1.311049,
+ -0.226496,2.463,1.36262, -0.227403,2.435437,1.368074, -0.442166,2.435437,1.316296,
+ -0.442166,2.435437,1.316296, -0.440403,2.463,1.311049, -0.226496,2.463,1.36262,
+ 0,2.463,1.3804, 0,2.435437,1.385925, -0.227403,2.435437,1.368074,
+ -0.227403,2.435437,1.368074, -0.226496,2.463,1.36262, 0,2.463,1.3804,
+ -1.364422,2.482687,0.226795, -1.36262,2.463,0.226496, -1.3804,2.463,0,
+ -1.3804,2.463,0, -1.382225,2.482687,0, -1.364422,2.482687,0.226795,
+ -1.312782,2.482687,0.440985, -1.311049,2.463,0.440403, -1.36262,2.463,0.226496,
+ -1.36262,2.463,0.226496, -1.364422,2.482687,0.226795, -1.312782,2.482687,0.440985,
+ -1.229959,2.482687,0.639915, -1.228335,2.463,0.63907, -1.311049,2.463,0.440403,
+ -1.311049,2.463,0.440403, -1.312782,2.482687,0.440985, -1.229959,2.482687,0.639915,
+ -1.118607,2.482687,0.820931, -1.11713,2.463,0.819847, -1.228335,2.463,0.63907,
+ -1.228335,2.463,0.63907, -1.229959,2.482687,0.639915, -1.118607,2.482687,0.820931,
+ -0.98138,2.482687,0.98138, -0.980084,2.463,0.980084, -1.11713,2.463,0.819847,
+ -1.11713,2.463,0.819847, -1.118607,2.482687,0.820931, -0.98138,2.482687,0.98138,
+ -0.820931,2.482687,1.118607, -0.819847,2.463,1.11713, -0.980084,2.463,0.980084,
+ -0.980084,2.463,0.980084, -0.98138,2.482687,0.98138, -0.820931,2.482687,1.118607,
+ -0.639915,2.482687,1.229959, -0.63907,2.463,1.228335, -0.819847,2.463,1.11713,
+ -0.819847,2.463,1.11713, -0.820931,2.482687,1.118607, -0.639915,2.482687,1.229959,
+ -0.440985,2.482687,1.312782, -0.440403,2.463,1.311049, -0.63907,2.463,1.228335,
+ -0.63907,2.463,1.228335, -0.639915,2.482687,1.229959, -0.440985,2.482687,1.312782,
+ -0.226795,2.482687,1.364422, -0.226496,2.463,1.36262, -0.440403,2.463,1.311049,
+ -0.440403,2.463,1.311049, -0.440985,2.482687,1.312782, -0.226795,2.482687,1.364422,
+ 0,2.482687,1.382225, 0,2.463,1.3804, -0.226496,2.463,1.36262,
+ -0.226496,2.463,1.36262, -0.226795,2.482687,1.364422, 0,2.482687,1.382225,
+ -1.372294,2.4945,0.228104, -1.364422,2.482687,0.226795, -1.382225,2.482687,0,
+ -1.382225,2.482687,0, -1.3902,2.4945,0, -1.372294,2.4945,0.228104,
+ -1.320356,2.4945,0.443529, -1.312782,2.482687,0.440985, -1.364422,2.482687,0.226795,
+ -1.364422,2.482687,0.226795, -1.372294,2.4945,0.228104, -1.320356,2.4945,0.443529,
+ -1.237056,2.4945,0.643607, -1.229959,2.482687,0.639915, -1.312782,2.482687,0.440985,
+ -1.312782,2.482687,0.440985, -1.320356,2.4945,0.443529, -1.237056,2.4945,0.643607,
+ -1.125061,2.4945,0.825668, -1.118607,2.482687,0.820931, -1.229959,2.482687,0.639915,
+ -1.229959,2.482687,0.639915, -1.237056,2.4945,0.643607, -1.125061,2.4945,0.825668,
+ -0.987042,2.4945,0.987042, -0.98138,2.482687,0.98138, -1.118607,2.482687,0.820931,
+ -1.118607,2.482687,0.820931, -1.125061,2.4945,0.825668, -0.987042,2.4945,0.987042,
+ -0.825668,2.4945,1.125061, -0.820931,2.482687,1.118607, -0.98138,2.482687,0.98138,
+ -0.98138,2.482687,0.98138, -0.987042,2.4945,0.987042, -0.825668,2.4945,1.125061,
+ -0.643607,2.4945,1.237056, -0.639915,2.482687,1.229959, -0.820931,2.482687,1.118607,
+ -0.820931,2.482687,1.118607, -0.825668,2.4945,1.125061, -0.643607,2.4945,1.237056,
+ -0.443529,2.4945,1.320356, -0.440985,2.482687,1.312782, -0.639915,2.482687,1.229959,
+ -0.639915,2.482687,1.229959, -0.643607,2.4945,1.237056, -0.443529,2.4945,1.320356,
+ -0.228104,2.4945,1.372294, -0.226795,2.482687,1.364422, -0.440985,2.482687,1.312782,
+ -0.440985,2.482687,1.312782, -0.443529,2.4945,1.320356, -0.228104,2.4945,1.372294,
+ 0,2.4945,1.3902, 0,2.482687,1.382225, -0.226795,2.482687,1.364422,
+ -0.226795,2.482687,1.364422, -0.228104,2.4945,1.372294, 0,2.4945,1.3902,
+ -1.385053,2.498438,0.230225, -1.372294,2.4945,0.228104, -1.3902,2.4945,0,
+ -1.3902,2.4945,0, -1.403125,2.498438,0, -1.385053,2.498438,0.230225,
+ -1.332632,2.498438,0.447653, -1.320356,2.4945,0.443529, -1.372294,2.4945,0.228104,
+ -1.372294,2.4945,0.228104, -1.385053,2.498438,0.230225, -1.332632,2.498438,0.447653,
+ -1.248557,2.498438,0.649591, -1.237056,2.4945,0.643607, -1.320356,2.4945,0.443529,
+ -1.320356,2.4945,0.443529, -1.332632,2.498438,0.447653, -1.248557,2.498438,0.649591,
+ -1.135521,2.498438,0.833344, -1.125061,2.4945,0.825668, -1.237056,2.4945,0.643607,
+ -1.237056,2.4945,0.643607, -1.248557,2.498438,0.649591, -1.135521,2.498438,0.833344,
+ -0.996219,2.498438,0.996219, -0.987042,2.4945,0.987042, -1.125061,2.4945,0.825668,
+ -1.125061,2.4945,0.825668, -1.135521,2.498438,0.833344, -0.996219,2.498438,0.996219,
+ -0.833344,2.498438,1.135521, -0.825668,2.4945,1.125061, -0.987042,2.4945,0.987042,
+ -0.987042,2.4945,0.987042, -0.996219,2.498438,0.996219, -0.833344,2.498438,1.135521,
+ -0.649591,2.498438,1.248557, -0.643607,2.4945,1.237056, -0.825668,2.4945,1.125061,
+ -0.825668,2.4945,1.125061, -0.833344,2.498438,1.135521, -0.649591,2.498438,1.248557,
+ -0.447653,2.498438,1.332632, -0.443529,2.4945,1.320356, -0.643607,2.4945,1.237056,
+ -0.643607,2.4945,1.237056, -0.649591,2.498438,1.248557, -0.447653,2.498438,1.332632,
+ -0.230225,2.498438,1.385053, -0.228104,2.4945,1.372294, -0.443529,2.4945,1.320356,
+ -0.443529,2.4945,1.320356, -0.447653,2.498438,1.332632, -0.230225,2.498438,1.385053,
+ 0,2.498438,1.403125, 0,2.4945,1.3902, -0.228104,2.4945,1.372294,
+ -0.228104,2.4945,1.372294, -0.230225,2.498438,1.385053, 0,2.498438,1.403125,
+ -1.401513,2.4945,0.232961, -1.385053,2.498438,0.230225, -1.403125,2.498438,0,
+ -1.403125,2.498438,0, -1.4198,2.4945,0, -1.401513,2.4945,0.232961,
+ -1.348469,2.4945,0.452973, -1.332632,2.498438,0.447653, -1.385053,2.498438,0.230225,
+ -1.385053,2.498438,0.230225, -1.401513,2.4945,0.232961, -1.348469,2.4945,0.452973,
+ -1.263395,2.4945,0.657311, -1.248557,2.498438,0.649591, -1.332632,2.498438,0.447653,
+ -1.332632,2.498438,0.447653, -1.348469,2.4945,0.452973, -1.263395,2.4945,0.657311,
+ -1.149016,2.4945,0.843248, -1.135521,2.498438,0.833344, -1.248557,2.498438,0.649591,
+ -1.248557,2.498438,0.649591, -1.263395,2.4945,0.657311, -1.149016,2.4945,0.843248,
+ -1.008058,2.4945,1.008058, -0.996219,2.498438,0.996219, -1.135521,2.498438,0.833344,
+ -1.135521,2.498438,0.833344, -1.149016,2.4945,0.843248, -1.008058,2.4945,1.008058,
+ -0.843248,2.4945,1.149016, -0.833344,2.498438,1.135521, -0.996219,2.498438,0.996219,
+ -0.996219,2.498438,0.996219, -1.008058,2.4945,1.008058, -0.843248,2.4945,1.149016,
+ -0.657311,2.4945,1.263395, -0.649591,2.498438,1.248557, -0.833344,2.498438,1.135521,
+ -0.833344,2.498438,1.135521, -0.843248,2.4945,1.149016, -0.657311,2.4945,1.263395,
+ -0.452973,2.4945,1.348469, -0.447653,2.498438,1.332632, -0.649591,2.498438,1.248557,
+ -0.649591,2.498438,1.248557, -0.657311,2.4945,1.263395, -0.452973,2.4945,1.348469,
+ -0.232961,2.4945,1.401513, -0.230225,2.498438,1.385053, -0.447653,2.498438,1.332632,
+ -0.447653,2.498438,1.332632, -0.452973,2.4945,1.348469, -0.232961,2.4945,1.401513,
+ 0,2.4945,1.4198, 0,2.498438,1.403125, -0.230225,2.498438,1.385053,
+ -0.230225,2.498438,1.385053, -0.232961,2.4945,1.401513, 0,2.4945,1.4198,
+ -1.42049,2.482687,0.236115, -1.401513,2.4945,0.232961, -1.4198,2.4945,0,
+ -1.4198,2.4945,0, -1.439025,2.482687,0, -1.42049,2.482687,0.236115,
+ -1.366728,2.482687,0.459107, -1.348469,2.4945,0.452973, -1.401513,2.4945,0.232961,
+ -1.401513,2.4945,0.232961, -1.42049,2.482687,0.236115, -1.366728,2.482687,0.459107,
+ -1.280502,2.482687,0.666211, -1.263395,2.4945,0.657311, -1.348469,2.4945,0.452973,
+ -1.348469,2.4945,0.452973, -1.366728,2.482687,0.459107, -1.280502,2.482687,0.666211,
+ -1.164574,2.482687,0.854666, -1.149016,2.4945,0.843248, -1.263395,2.4945,0.657311,
+ -1.263395,2.4945,0.657311, -1.280502,2.482687,0.666211, -1.164574,2.482687,0.854666,
+ -1.021708,2.482687,1.021708, -1.008058,2.4945,1.008058, -1.149016,2.4945,0.843248,
+ -1.149016,2.4945,0.843248, -1.164574,2.482687,0.854666, -1.021708,2.482687,1.021708,
+ -0.854666,2.482687,1.164574, -0.843248,2.4945,1.149016, -1.008058,2.4945,1.008058,
+ -1.008058,2.4945,1.008058, -1.021708,2.482687,1.021708, -0.854666,2.482687,1.164574,
+ -0.666211,2.482687,1.280502, -0.657311,2.4945,1.263395, -0.843248,2.4945,1.149016,
+ -0.843248,2.4945,1.149016, -0.854666,2.482687,1.164574, -0.666211,2.482687,1.280502,
+ -0.459107,2.482687,1.366728, -0.452973,2.4945,1.348469, -0.657311,2.4945,1.263395,
+ -0.657311,2.4945,1.263395, -0.666211,2.482687,1.280502, -0.459107,2.482687,1.366728,
+ -0.236115,2.482687,1.42049, -0.232961,2.4945,1.401513, -0.452973,2.4945,1.348469,
+ -0.452973,2.4945,1.348469, -0.459107,2.482687,1.366728, -0.236115,2.482687,1.42049,
+ 0,2.482687,1.439025, 0,2.4945,1.4198, -0.232961,2.4945,1.401513,
+ -0.232961,2.4945,1.401513, -0.236115,2.482687,1.42049, 0,2.482687,1.439025,
+ -1.4408,2.463,0.239491, -1.42049,2.482687,0.236115, -1.439025,2.482687,0,
+ -1.439025,2.482687,0, -1.4596,2.463,0, -1.4408,2.463,0.239491,
+ -1.38627,2.463,0.465671, -1.366728,2.482687,0.459107, -1.42049,2.482687,0.236115,
+ -1.42049,2.482687,0.236115, -1.4408,2.463,0.239491, -1.38627,2.463,0.465671,
+ -1.29881,2.463,0.675736, -1.280502,2.482687,0.666211, -1.366728,2.482687,0.459107,
+ -1.366728,2.482687,0.459107, -1.38627,2.463,0.465671, -1.29881,2.463,0.675736,
+ -1.181225,2.463,0.866886, -1.164574,2.482687,0.854666, -1.280502,2.482687,0.666211,
+ -1.280502,2.482687,0.666211, -1.29881,2.463,0.675736, -1.181225,2.463,0.866886,
+ -1.036316,2.463,1.036316, -1.021708,2.482687,1.021708, -1.164574,2.482687,0.854666,
+ -1.164574,2.482687,0.854666, -1.181225,2.463,0.866886, -1.036316,2.463,1.036316,
+ -0.866886,2.463,1.181225, -0.854666,2.482687,1.164574, -1.021708,2.482687,1.021708,
+ -1.021708,2.482687,1.021708, -1.036316,2.463,1.036316, -0.866886,2.463,1.181225,
+ -0.675736,2.463,1.29881, -0.666211,2.482687,1.280502, -0.854666,2.482687,1.164574,
+ -0.854666,2.482687,1.164574, -0.866886,2.463,1.181225, -0.675736,2.463,1.29881,
+ -0.465671,2.463,1.38627, -0.459107,2.482687,1.366728, -0.666211,2.482687,1.280502,
+ -0.666211,2.482687,1.280502, -0.675736,2.463,1.29881, -0.465671,2.463,1.38627,
+ -0.239491,2.463,1.4408, -0.236115,2.482687,1.42049, -0.459107,2.482687,1.366728,
+ -0.459107,2.482687,1.366728, -0.465671,2.463,1.38627, -0.239491,2.463,1.4408,
+ 0,2.463,1.4596, 0,2.482687,1.439025, -0.236115,2.482687,1.42049,
+ -0.236115,2.482687,1.42049, -0.239491,2.463,1.4408, 0,2.463,1.4596,
+ -1.461258,2.435437,0.242892, -1.4408,2.463,0.239491, -1.4596,2.463,0,
+ -1.4596,2.463,0, -1.480325,2.435437,0, -1.461258,2.435437,0.242892,
+ -1.405953,2.435437,0.472283, -1.38627,2.463,0.465671, -1.4408,2.463,0.239491,
+ -1.4408,2.463,0.239491, -1.461258,2.435437,0.242892, -1.405953,2.435437,0.472283,
+ -1.317252,2.435437,0.685331, -1.29881,2.463,0.675736, -1.38627,2.463,0.465671,
+ -1.38627,2.463,0.465671, -1.405953,2.435437,0.472283, -1.317252,2.435437,0.685331,
+ -1.197997,2.435437,0.879195, -1.181225,2.463,0.866886, -1.29881,2.463,0.675736,
+ -1.29881,2.463,0.675736, -1.317252,2.435437,0.685331, -1.197997,2.435437,0.879195,
+ -1.051031,2.435437,1.051031, -1.036316,2.463,1.036316, -1.181225,2.463,0.866886,
+ -1.181225,2.463,0.866886, -1.197997,2.435437,0.879195, -1.051031,2.435437,1.051031,
+ -0.879195,2.435437,1.197997, -0.866886,2.463,1.181225, -1.036316,2.463,1.036316,
+ -1.036316,2.463,1.036316, -1.051031,2.435437,1.051031, -0.879195,2.435437,1.197997,
+ -0.685331,2.435437,1.317252, -0.675736,2.463,1.29881, -0.866886,2.463,1.181225,
+ -0.866886,2.463,1.181225, -0.879195,2.435437,1.197997, -0.685331,2.435437,1.317252,
+ -0.472283,2.435437,1.405953, -0.465671,2.463,1.38627, -0.675736,2.463,1.29881,
+ -0.675736,2.463,1.29881, -0.685331,2.435437,1.317252, -0.472283,2.435437,1.405953,
+ -0.242892,2.435437,1.461258, -0.239491,2.463,1.4408, -0.465671,2.463,1.38627,
+ -0.465671,2.463,1.38627, -0.472283,2.435437,1.405953, -0.242892,2.435437,1.461258,
+ 0,2.435437,1.480325, 0,2.463,1.4596, -0.239491,2.463,1.4408,
+ -0.239491,2.463,1.4408, -0.242892,2.435437,1.461258, 0,2.435437,1.480325,
+ -1.48068,2.4,0.24612, -1.461258,2.435437,0.242892, -1.480325,2.435437,0,
+ -1.480325,2.435437,0, -1.5,2.4,0, -1.48068,2.4,0.24612,
+ -1.42464,2.4,0.47856, -1.405953,2.435437,0.472283, -1.461258,2.435437,0.242892,
+ -1.461258,2.435437,0.242892, -1.48068,2.4,0.24612, -1.42464,2.4,0.47856,
+ -1.33476,2.4,0.69444, -1.317252,2.435437,0.685331, -1.405953,2.435437,0.472283,
+ -1.405953,2.435437,0.472283, -1.42464,2.4,0.47856, -1.33476,2.4,0.69444,
+ -1.21392,2.4,0.89088, -1.197997,2.435437,0.879195, -1.317252,2.435437,0.685331,
+ -1.317252,2.435437,0.685331, -1.33476,2.4,0.69444, -1.21392,2.4,0.89088,
+ -1.065,2.4,1.065, -1.051031,2.435437,1.051031, -1.197997,2.435437,0.879195,
+ -1.197997,2.435437,0.879195, -1.21392,2.4,0.89088, -1.065,2.4,1.065,
+ -0.89088,2.4,1.21392, -0.879195,2.435437,1.197997, -1.051031,2.435437,1.051031,
+ -1.051031,2.435437,1.051031, -1.065,2.4,1.065, -0.89088,2.4,1.21392,
+ -0.69444,2.4,1.33476, -0.685331,2.435437,1.317252, -0.879195,2.435437,1.197997,
+ -0.879195,2.435437,1.197997, -0.89088,2.4,1.21392, -0.69444,2.4,1.33476,
+ -0.47856,2.4,1.42464, -0.472283,2.435437,1.405953, -0.685331,2.435437,1.317252,
+ -0.685331,2.435437,1.317252, -0.69444,2.4,1.33476, -0.47856,2.4,1.42464,
+ -0.24612,2.4,1.48068, -0.242892,2.435437,1.461258, -0.472283,2.435437,1.405953,
+ -0.472283,2.435437,1.405953, -0.47856,2.4,1.42464, -0.24612,2.4,1.48068,
+ 0,2.4,1.5, 0,2.435437,1.480325, -0.242892,2.435437,1.461258,
+ -0.242892,2.435437,1.461258, -0.24612,2.4,1.48068, 0,2.4,1.5,
+ 0.227403,2.435437,1.368074, 0.229712,2.4,1.381968, 0,2.4,1.4,
+ 0,2.4,1.4, 0,2.435437,1.385925, 0.227403,2.435437,1.368074,
+ 0.442166,2.435437,1.316296, 0.446656,2.4,1.329664, 0.229712,2.4,1.381968,
+ 0.229712,2.4,1.381968, 0.227403,2.435437,1.368074, 0.442166,2.435437,1.316296,
+ 0.641628,2.435437,1.233252, 0.648144,2.4,1.245776, 0.446656,2.4,1.329664,
+ 0.446656,2.4,1.329664, 0.442166,2.435437,1.316296, 0.641628,2.435437,1.233252,
+ 0.823129,2.435437,1.121601, 0.831488,2.4,1.132992, 0.648144,2.4,1.245776,
+ 0.648144,2.4,1.245776, 0.641628,2.435437,1.233252, 0.823129,2.435437,1.121601,
+ 0.984007,2.435437,0.984007, 0.994,2.4,0.994, 0.831488,2.4,1.132992,
+ 0.831488,2.4,1.132992, 0.823129,2.435437,1.121601, 0.984007,2.435437,0.984007,
+ 1.121601,2.435437,0.823129, 1.132992,2.4,0.831488, 0.994,2.4,0.994,
+ 0.994,2.4,0.994, 0.984007,2.435437,0.984007, 1.121601,2.435437,0.823129,
+ 1.233252,2.435437,0.641628, 1.245776,2.4,0.648144, 1.132992,2.4,0.831488,
+ 1.132992,2.4,0.831488, 1.121601,2.435437,0.823129, 1.233252,2.435437,0.641628,
+ 1.316296,2.435437,0.442166, 1.329664,2.4,0.446656, 1.245776,2.4,0.648144,
+ 1.245776,2.4,0.648144, 1.233252,2.435437,0.641628, 1.316296,2.435437,0.442166,
+ 1.368074,2.435437,0.227403, 1.381968,2.4,0.229712, 1.329664,2.4,0.446656,
+ 1.329664,2.4,0.446656, 1.316296,2.435437,0.442166, 1.368074,2.435437,0.227403,
+ 1.385925,2.435437,0, 1.4,2.4,0, 1.381968,2.4,0.229712,
+ 1.381968,2.4,0.229712, 1.368074,2.435437,0.227403, 1.385925,2.435437,0,
+ 0.226496,2.463,1.36262, 0.227403,2.435437,1.368074, 0,2.435437,1.385925,
+ 0,2.435437,1.385925, 0,2.463,1.3804, 0.226496,2.463,1.36262,
+ 0.440403,2.463,1.311049, 0.442166,2.435437,1.316296, 0.227403,2.435437,1.368074,
+ 0.227403,2.435437,1.368074, 0.226496,2.463,1.36262, 0.440403,2.463,1.311049,
+ 0.63907,2.463,1.228335, 0.641628,2.435437,1.233252, 0.442166,2.435437,1.316296,
+ 0.442166,2.435437,1.316296, 0.440403,2.463,1.311049, 0.63907,2.463,1.228335,
+ 0.819847,2.463,1.11713, 0.823129,2.435437,1.121601, 0.641628,2.435437,1.233252,
+ 0.641628,2.435437,1.233252, 0.63907,2.463,1.228335, 0.819847,2.463,1.11713,
+ 0.980084,2.463,0.980084, 0.984007,2.435437,0.984007, 0.823129,2.435437,1.121601,
+ 0.823129,2.435437,1.121601, 0.819847,2.463,1.11713, 0.980084,2.463,0.980084,
+ 1.11713,2.463,0.819847, 1.121601,2.435437,0.823129, 0.984007,2.435437,0.984007,
+ 0.984007,2.435437,0.984007, 0.980084,2.463,0.980084, 1.11713,2.463,0.819847,
+ 1.228335,2.463,0.63907, 1.233252,2.435437,0.641628, 1.121601,2.435437,0.823129,
+ 1.121601,2.435437,0.823129, 1.11713,2.463,0.819847, 1.228335,2.463,0.63907,
+ 1.311049,2.463,0.440403, 1.316296,2.435437,0.442166, 1.233252,2.435437,0.641628,
+ 1.233252,2.435437,0.641628, 1.228335,2.463,0.63907, 1.311049,2.463,0.440403,
+ 1.36262,2.463,0.226496, 1.368074,2.435437,0.227403, 1.316296,2.435437,0.442166,
+ 1.316296,2.435437,0.442166, 1.311049,2.463,0.440403, 1.36262,2.463,0.226496,
+ 1.3804,2.463,0, 1.385925,2.435437,0, 1.368074,2.435437,0.227403,
+ 1.368074,2.435437,0.227403, 1.36262,2.463,0.226496, 1.3804,2.463,0,
+ 0.226795,2.482687,1.364422, 0.226496,2.463,1.36262, 0,2.463,1.3804,
+ 0,2.463,1.3804, 0,2.482687,1.382225, 0.226795,2.482687,1.364422,
+ 0.440985,2.482687,1.312782, 0.440403,2.463,1.311049, 0.226496,2.463,1.36262,
+ 0.226496,2.463,1.36262, 0.226795,2.482687,1.364422, 0.440985,2.482687,1.312782,
+ 0.639915,2.482687,1.229959, 0.63907,2.463,1.228335, 0.440403,2.463,1.311049,
+ 0.440403,2.463,1.311049, 0.440985,2.482687,1.312782, 0.639915,2.482687,1.229959,
+ 0.820931,2.482687,1.118607, 0.819847,2.463,1.11713, 0.63907,2.463,1.228335,
+ 0.63907,2.463,1.228335, 0.639915,2.482687,1.229959, 0.820931,2.482687,1.118607,
+ 0.98138,2.482687,0.98138, 0.980084,2.463,0.980084, 0.819847,2.463,1.11713,
+ 0.819847,2.463,1.11713, 0.820931,2.482687,1.118607, 0.98138,2.482687,0.98138,
+ 1.118607,2.482687,0.820931, 1.11713,2.463,0.819847, 0.980084,2.463,0.980084,
+ 0.980084,2.463,0.980084, 0.98138,2.482687,0.98138, 1.118607,2.482687,0.820931,
+ 1.229959,2.482687,0.639915, 1.228335,2.463,0.63907, 1.11713,2.463,0.819847,
+ 1.11713,2.463,0.819847, 1.118607,2.482687,0.820931, 1.229959,2.482687,0.639915,
+ 1.312782,2.482687,0.440985, 1.311049,2.463,0.440403, 1.228335,2.463,0.63907,
+ 1.228335,2.463,0.63907, 1.229959,2.482687,0.639915, 1.312782,2.482687,0.440985,
+ 1.364422,2.482687,0.226795, 1.36262,2.463,0.226496, 1.311049,2.463,0.440403,
+ 1.311049,2.463,0.440403, 1.312782,2.482687,0.440985, 1.364422,2.482687,0.226795,
+ 1.382225,2.482687,0, 1.3804,2.463,0, 1.36262,2.463,0.226496,
+ 1.36262,2.463,0.226496, 1.364422,2.482687,0.226795, 1.382225,2.482687,0,
+ 0.228104,2.4945,1.372294, 0.226795,2.482687,1.364422, 0,2.482687,1.382225,
+ 0,2.482687,1.382225, 0,2.4945,1.3902, 0.228104,2.4945,1.372294,
+ 0.443529,2.4945,1.320356, 0.440985,2.482687,1.312782, 0.226795,2.482687,1.364422,
+ 0.226795,2.482687,1.364422, 0.228104,2.4945,1.372294, 0.443529,2.4945,1.320356,
+ 0.643607,2.4945,1.237056, 0.639915,2.482687,1.229959, 0.440985,2.482687,1.312782,
+ 0.440985,2.482687,1.312782, 0.443529,2.4945,1.320356, 0.643607,2.4945,1.237056,
+ 0.825668,2.4945,1.125061, 0.820931,2.482687,1.118607, 0.639915,2.482687,1.229959,
+ 0.639915,2.482687,1.229959, 0.643607,2.4945,1.237056, 0.825668,2.4945,1.125061,
+ 0.987042,2.4945,0.987042, 0.98138,2.482687,0.98138, 0.820931,2.482687,1.118607,
+ 0.820931,2.482687,1.118607, 0.825668,2.4945,1.125061, 0.987042,2.4945,0.987042,
+ 1.125061,2.4945,0.825668, 1.118607,2.482687,0.820931, 0.98138,2.482687,0.98138,
+ 0.98138,2.482687,0.98138, 0.987042,2.4945,0.987042, 1.125061,2.4945,0.825668,
+ 1.237056,2.4945,0.643607, 1.229959,2.482687,0.639915, 1.118607,2.482687,0.820931,
+ 1.118607,2.482687,0.820931, 1.125061,2.4945,0.825668, 1.237056,2.4945,0.643607,
+ 1.320356,2.4945,0.443529, 1.312782,2.482687,0.440985, 1.229959,2.482687,0.639915,
+ 1.229959,2.482687,0.639915, 1.237056,2.4945,0.643607, 1.320356,2.4945,0.443529,
+ 1.372294,2.4945,0.228104, 1.364422,2.482687,0.226795, 1.312782,2.482687,0.440985,
+ 1.312782,2.482687,0.440985, 1.320356,2.4945,0.443529, 1.372294,2.4945,0.228104,
+ 1.3902,2.4945,0, 1.382225,2.482687,0, 1.364422,2.482687,0.226795,
+ 1.364422,2.482687,0.226795, 1.372294,2.4945,0.228104, 1.3902,2.4945,0,
+ 0.230225,2.498438,1.385053, 0.228104,2.4945,1.372294, 0,2.4945,1.3902,
+ 0,2.4945,1.3902, 0,2.498438,1.403125, 0.230225,2.498438,1.385053,
+ 0.447653,2.498438,1.332632, 0.443529,2.4945,1.320356, 0.228104,2.4945,1.372294,
+ 0.228104,2.4945,1.372294, 0.230225,2.498438,1.385053, 0.447653,2.498438,1.332632,
+ 0.649591,2.498438,1.248557, 0.643607,2.4945,1.237056, 0.443529,2.4945,1.320356,
+ 0.443529,2.4945,1.320356, 0.447653,2.498438,1.332632, 0.649591,2.498438,1.248557,
+ 0.833344,2.498438,1.135521, 0.825668,2.4945,1.125061, 0.643607,2.4945,1.237056,
+ 0.643607,2.4945,1.237056, 0.649591,2.498438,1.248557, 0.833344,2.498438,1.135521,
+ 0.996219,2.498438,0.996219, 0.987042,2.4945,0.987042, 0.825668,2.4945,1.125061,
+ 0.825668,2.4945,1.125061, 0.833344,2.498438,1.135521, 0.996219,2.498438,0.996219,
+ 1.135521,2.498438,0.833344, 1.125061,2.4945,0.825668, 0.987042,2.4945,0.987042,
+ 0.987042,2.4945,0.987042, 0.996219,2.498438,0.996219, 1.135521,2.498438,0.833344,
+ 1.248557,2.498438,0.649591, 1.237056,2.4945,0.643607, 1.125061,2.4945,0.825668,
+ 1.125061,2.4945,0.825668, 1.135521,2.498438,0.833344, 1.248557,2.498438,0.649591,
+ 1.332632,2.498438,0.447653, 1.320356,2.4945,0.443529, 1.237056,2.4945,0.643607,
+ 1.237056,2.4945,0.643607, 1.248557,2.498438,0.649591, 1.332632,2.498438,0.447653,
+ 1.385053,2.498438,0.230225, 1.372294,2.4945,0.228104, 1.320356,2.4945,0.443529,
+ 1.320356,2.4945,0.443529, 1.332632,2.498438,0.447653, 1.385053,2.498438,0.230225,
+ 1.403125,2.498438,0, 1.3902,2.4945,0, 1.372294,2.4945,0.228104,
+ 1.372294,2.4945,0.228104, 1.385053,2.498438,0.230225, 1.403125,2.498438,0,
+ 0.232961,2.4945,1.401513, 0.230225,2.498438,1.385053, 0,2.498438,1.403125,
+ 0,2.498438,1.403125, 0,2.4945,1.4198, 0.232961,2.4945,1.401513,
+ 0.452973,2.4945,1.348469, 0.447653,2.498438,1.332632, 0.230225,2.498438,1.385053,
+ 0.230225,2.498438,1.385053, 0.232961,2.4945,1.401513, 0.452973,2.4945,1.348469,
+ 0.657311,2.4945,1.263395, 0.649591,2.498438,1.248557, 0.447653,2.498438,1.332632,
+ 0.447653,2.498438,1.332632, 0.452973,2.4945,1.348469, 0.657311,2.4945,1.263395,
+ 0.843248,2.4945,1.149016, 0.833344,2.498438,1.135521, 0.649591,2.498438,1.248557,
+ 0.649591,2.498438,1.248557, 0.657311,2.4945,1.263395, 0.843248,2.4945,1.149016,
+ 1.008058,2.4945,1.008058, 0.996219,2.498438,0.996219, 0.833344,2.498438,1.135521,
+ 0.833344,2.498438,1.135521, 0.843248,2.4945,1.149016, 1.008058,2.4945,1.008058,
+ 1.149016,2.4945,0.843248, 1.135521,2.498438,0.833344, 0.996219,2.498438,0.996219,
+ 0.996219,2.498438,0.996219, 1.008058,2.4945,1.008058, 1.149016,2.4945,0.843248,
+ 1.263395,2.4945,0.657311, 1.248557,2.498438,0.649591, 1.135521,2.498438,0.833344,
+ 1.135521,2.498438,0.833344, 1.149016,2.4945,0.843248, 1.263395,2.4945,0.657311,
+ 1.348469,2.4945,0.452973, 1.332632,2.498438,0.447653, 1.248557,2.498438,0.649591,
+ 1.248557,2.498438,0.649591, 1.263395,2.4945,0.657311, 1.348469,2.4945,0.452973,
+ 1.401513,2.4945,0.232961, 1.385053,2.498438,0.230225, 1.332632,2.498438,0.447653,
+ 1.332632,2.498438,0.447653, 1.348469,2.4945,0.452973, 1.401513,2.4945,0.232961,
+ 1.4198,2.4945,0, 1.403125,2.498438,0, 1.385053,2.498438,0.230225,
+ 1.385053,2.498438,0.230225, 1.401513,2.4945,0.232961, 1.4198,2.4945,0,
+ 0.236115,2.482687,1.42049, 0.232961,2.4945,1.401513, 0,2.4945,1.4198,
+ 0,2.4945,1.4198, 0,2.482687,1.439025, 0.236115,2.482687,1.42049,
+ 0.459107,2.482687,1.366728, 0.452973,2.4945,1.348469, 0.232961,2.4945,1.401513,
+ 0.232961,2.4945,1.401513, 0.236115,2.482687,1.42049, 0.459107,2.482687,1.366728,
+ 0.666211,2.482687,1.280502, 0.657311,2.4945,1.263395, 0.452973,2.4945,1.348469,
+ 0.452973,2.4945,1.348469, 0.459107,2.482687,1.366728, 0.666211,2.482687,1.280502,
+ 0.854666,2.482687,1.164574, 0.843248,2.4945,1.149016, 0.657311,2.4945,1.263395,
+ 0.657311,2.4945,1.263395, 0.666211,2.482687,1.280502, 0.854666,2.482687,1.164574,
+ 1.021708,2.482687,1.021708, 1.008058,2.4945,1.008058, 0.843248,2.4945,1.149016,
+ 0.843248,2.4945,1.149016, 0.854666,2.482687,1.164574, 1.021708,2.482687,1.021708,
+ 1.164574,2.482687,0.854666, 1.149016,2.4945,0.843248, 1.008058,2.4945,1.008058,
+ 1.008058,2.4945,1.008058, 1.021708,2.482687,1.021708, 1.164574,2.482687,0.854666,
+ 1.280502,2.482687,0.666211, 1.263395,2.4945,0.657311, 1.149016,2.4945,0.843248,
+ 1.149016,2.4945,0.843248, 1.164574,2.482687,0.854666, 1.280502,2.482687,0.666211,
+ 1.366728,2.482687,0.459107, 1.348469,2.4945,0.452973, 1.263395,2.4945,0.657311,
+ 1.263395,2.4945,0.657311, 1.280502,2.482687,0.666211, 1.366728,2.482687,0.459107,
+ 1.42049,2.482687,0.236115, 1.401513,2.4945,0.232961, 1.348469,2.4945,0.452973,
+ 1.348469,2.4945,0.452973, 1.366728,2.482687,0.459107, 1.42049,2.482687,0.236115,
+ 1.439025,2.482687,0, 1.4198,2.4945,0, 1.401513,2.4945,0.232961,
+ 1.401513,2.4945,0.232961, 1.42049,2.482687,0.236115, 1.439025,2.482687,0,
+ 0.239491,2.463,1.4408, 0.236115,2.482687,1.42049, 0,2.482687,1.439025,
+ 0,2.482687,1.439025, 0,2.463,1.4596, 0.239491,2.463,1.4408,
+ 0.465671,2.463,1.38627, 0.459107,2.482687,1.366728, 0.236115,2.482687,1.42049,
+ 0.236115,2.482687,1.42049, 0.239491,2.463,1.4408, 0.465671,2.463,1.38627,
+ 0.675736,2.463,1.29881, 0.666211,2.482687,1.280502, 0.459107,2.482687,1.366728,
+ 0.459107,2.482687,1.366728, 0.465671,2.463,1.38627, 0.675736,2.463,1.29881,
+ 0.866886,2.463,1.181225, 0.854666,2.482687,1.164574, 0.666211,2.482687,1.280502,
+ 0.666211,2.482687,1.280502, 0.675736,2.463,1.29881, 0.866886,2.463,1.181225,
+ 1.036316,2.463,1.036316, 1.021708,2.482687,1.021708, 0.854666,2.482687,1.164574,
+ 0.854666,2.482687,1.164574, 0.866886,2.463,1.181225, 1.036316,2.463,1.036316,
+ 1.181225,2.463,0.866886, 1.164574,2.482687,0.854666, 1.021708,2.482687,1.021708,
+ 1.021708,2.482687,1.021708, 1.036316,2.463,1.036316, 1.181225,2.463,0.866886,
+ 1.29881,2.463,0.675736, 1.280502,2.482687,0.666211, 1.164574,2.482687,0.854666,
+ 1.164574,2.482687,0.854666, 1.181225,2.463,0.866886, 1.29881,2.463,0.675736,
+ 1.38627,2.463,0.465671, 1.366728,2.482687,0.459107, 1.280502,2.482687,0.666211,
+ 1.280502,2.482687,0.666211, 1.29881,2.463,0.675736, 1.38627,2.463,0.465671,
+ 1.4408,2.463,0.239491, 1.42049,2.482687,0.236115, 1.366728,2.482687,0.459107,
+ 1.366728,2.482687,0.459107, 1.38627,2.463,0.465671, 1.4408,2.463,0.239491,
+ 1.4596,2.463,0, 1.439025,2.482687,0, 1.42049,2.482687,0.236115,
+ 1.42049,2.482687,0.236115, 1.4408,2.463,0.239491, 1.4596,2.463,0,
+ 0.242892,2.435437,1.461258, 0.239491,2.463,1.4408, 0,2.463,1.4596,
+ 0,2.463,1.4596, 0,2.435437,1.480325, 0.242892,2.435437,1.461258,
+ 0.472283,2.435437,1.405953, 0.465671,2.463,1.38627, 0.239491,2.463,1.4408,
+ 0.239491,2.463,1.4408, 0.242892,2.435437,1.461258, 0.472283,2.435437,1.405953,
+ 0.685331,2.435437,1.317252, 0.675736,2.463,1.29881, 0.465671,2.463,1.38627,
+ 0.465671,2.463,1.38627, 0.472283,2.435437,1.405953, 0.685331,2.435437,1.317252,
+ 0.879195,2.435437,1.197997, 0.866886,2.463,1.181225, 0.675736,2.463,1.29881,
+ 0.675736,2.463,1.29881, 0.685331,2.435437,1.317252, 0.879195,2.435437,1.197997,
+ 1.051031,2.435437,1.051031, 1.036316,2.463,1.036316, 0.866886,2.463,1.181225,
+ 0.866886,2.463,1.181225, 0.879195,2.435437,1.197997, 1.051031,2.435437,1.051031,
+ 1.197997,2.435437,0.879195, 1.181225,2.463,0.866886, 1.036316,2.463,1.036316,
+ 1.036316,2.463,1.036316, 1.051031,2.435437,1.051031, 1.197997,2.435437,0.879195,
+ 1.317252,2.435437,0.685331, 1.29881,2.463,0.675736, 1.181225,2.463,0.866886,
+ 1.181225,2.463,0.866886, 1.197997,2.435437,0.879195, 1.317252,2.435437,0.685331,
+ 1.405953,2.435437,0.472283, 1.38627,2.463,0.465671, 1.29881,2.463,0.675736,
+ 1.29881,2.463,0.675736, 1.317252,2.435437,0.685331, 1.405953,2.435437,0.472283,
+ 1.461258,2.435437,0.242892, 1.4408,2.463,0.239491, 1.38627,2.463,0.465671,
+ 1.38627,2.463,0.465671, 1.405953,2.435437,0.472283, 1.461258,2.435437,0.242892,
+ 1.480325,2.435437,0, 1.4596,2.463,0, 1.4408,2.463,0.239491,
+ 1.4408,2.463,0.239491, 1.461258,2.435437,0.242892, 1.480325,2.435437,0,
+ 0.24612,2.4,1.48068, 0.242892,2.435437,1.461258, 0,2.435437,1.480325,
+ 0,2.435437,1.480325, 0,2.4,1.5, 0.24612,2.4,1.48068,
+ 0.47856,2.4,1.42464, 0.472283,2.435437,1.405953, 0.242892,2.435437,1.461258,
+ 0.242892,2.435437,1.461258, 0.24612,2.4,1.48068, 0.47856,2.4,1.42464,
+ 0.69444,2.4,1.33476, 0.685331,2.435437,1.317252, 0.472283,2.435437,1.405953,
+ 0.472283,2.435437,1.405953, 0.47856,2.4,1.42464, 0.69444,2.4,1.33476,
+ 0.89088,2.4,1.21392, 0.879195,2.435437,1.197997, 0.685331,2.435437,1.317252,
+ 0.685331,2.435437,1.317252, 0.69444,2.4,1.33476, 0.89088,2.4,1.21392,
+ 1.065,2.4,1.065, 1.051031,2.435437,1.051031, 0.879195,2.435437,1.197997,
+ 0.879195,2.435437,1.197997, 0.89088,2.4,1.21392, 1.065,2.4,1.065,
+ 1.21392,2.4,0.89088, 1.197997,2.435437,0.879195, 1.051031,2.435437,1.051031,
+ 1.051031,2.435437,1.051031, 1.065,2.4,1.065, 1.21392,2.4,0.89088,
+ 1.33476,2.4,0.69444, 1.317252,2.435437,0.685331, 1.197997,2.435437,0.879195,
+ 1.197997,2.435437,0.879195, 1.21392,2.4,0.89088, 1.33476,2.4,0.69444,
+ 1.42464,2.4,0.47856, 1.405953,2.435437,0.472283, 1.317252,2.435437,0.685331,
+ 1.317252,2.435437,0.685331, 1.33476,2.4,0.69444, 1.42464,2.4,0.47856,
+ 1.48068,2.4,0.24612, 1.461258,2.435437,0.242892, 1.405953,2.435437,0.472283,
+ 1.405953,2.435437,0.472283, 1.42464,2.4,0.47856, 1.48068,2.4,0.24612,
+ 1.5,2.4,0, 1.480325,2.435437,0, 1.461258,2.435437,0.242892,
+ 1.461258,2.435437,0.242892, 1.48068,2.4,0.24612, 1.5,2.4,0,
+ 1.554467,2.242575,-0.258385, 1.48068,2.4,-0.24612, 1.5,2.4,0,
+ 1.5,2.4,0, 1.57475,2.242575,0, 1.554467,2.242575,-0.258385,
+ 1.495635,2.242575,-0.502408, 1.42464,2.4,-0.47856, 1.48068,2.4,-0.24612,
+ 1.48068,2.4,-0.24612, 1.554467,2.242575,-0.258385, 1.495635,2.242575,-0.502408,
+ 1.401276,2.242575,-0.729046, 1.33476,2.4,-0.69444, 1.42464,2.4,-0.47856,
+ 1.42464,2.4,-0.47856, 1.495635,2.242575,-0.502408, 1.401276,2.242575,-0.729046,
+ 1.274414,2.242575,-0.935276, 1.21392,2.4,-0.89088, 1.33476,2.4,-0.69444,
+ 1.33476,2.4,-0.69444, 1.401276,2.242575,-0.729046, 1.274414,2.242575,-0.935276,
+ 1.118073,2.242575,-1.118073, 1.065,2.4,-1.065, 1.21392,2.4,-0.89088,
+ 1.21392,2.4,-0.89088, 1.274414,2.242575,-0.935276, 1.118073,2.242575,-1.118073,
+ 0.935276,2.242575,-1.274414, 0.89088,2.4,-1.21392, 1.065,2.4,-1.065,
+ 1.065,2.4,-1.065, 1.118073,2.242575,-1.118073, 0.935276,2.242575,-1.274414,
+ 0.729046,2.242575,-1.401276, 0.69444,2.4,-1.33476, 0.89088,2.4,-1.21392,
+ 0.89088,2.4,-1.21392, 0.935276,2.242575,-1.274414, 0.729046,2.242575,-1.401276,
+ 0.502408,2.242575,-1.495635, 0.47856,2.4,-1.42464, 0.69444,2.4,-1.33476,
+ 0.69444,2.4,-1.33476, 0.729046,2.242575,-1.401276, 0.502408,2.242575,-1.495635,
+ 0.258385,2.242575,-1.554467, 0.24612,2.4,-1.48068, 0.47856,2.4,-1.42464,
+ 0.47856,2.4,-1.42464, 0.502408,2.242575,-1.495635, 0.258385,2.242575,-1.554467,
+ 0,2.242575,-1.57475, 0,2.4,-1.5, 0.24612,2.4,-1.48068,
+ 0.24612,2.4,-1.48068, 0.258385,2.242575,-1.554467, 0,2.242575,-1.57475,
+ 1.626774,2.0856,-0.270404, 1.554467,2.242575,-0.258385, 1.57475,2.242575,0,
+ 1.57475,2.242575,0, 1.648,2.0856,0, 1.626774,2.0856,-0.270404,
+ 1.565204,2.0856,-0.525778, 1.495635,2.242575,-0.502408, 1.554467,2.242575,-0.258385,
+ 1.554467,2.242575,-0.258385, 1.626774,2.0856,-0.270404, 1.565204,2.0856,-0.525778,
+ 1.466456,2.0856,-0.762958, 1.401276,2.242575,-0.729046, 1.495635,2.242575,-0.502408,
+ 1.495635,2.242575,-0.502408, 1.565204,2.0856,-0.525778, 1.466456,2.0856,-0.762958,
+ 1.333693,2.0856,-0.97878, 1.274414,2.242575,-0.935276, 1.401276,2.242575,-0.729046,
+ 1.401276,2.242575,-0.729046, 1.466456,2.0856,-0.762958, 1.333693,2.0856,-0.97878,
+ 1.17008,2.0856,-1.17008, 1.118073,2.242575,-1.118073, 1.274414,2.242575,-0.935276,
+ 1.274414,2.242575,-0.935276, 1.333693,2.0856,-0.97878, 1.17008,2.0856,-1.17008,
+ 0.97878,2.0856,-1.333693, 0.935276,2.242575,-1.274414, 1.118073,2.242575,-1.118073,
+ 1.118073,2.242575,-1.118073, 1.17008,2.0856,-1.17008, 0.97878,2.0856,-1.333693,
+ 0.762958,2.0856,-1.466456, 0.729046,2.242575,-1.401276, 0.935276,2.242575,-1.274414,
+ 0.935276,2.242575,-1.274414, 0.97878,2.0856,-1.333693, 0.762958,2.0856,-1.466456,
+ 0.525778,2.0856,-1.565204, 0.502408,2.242575,-1.495635, 0.729046,2.242575,-1.401276,
+ 0.729046,2.242575,-1.401276, 0.762958,2.0856,-1.466456, 0.525778,2.0856,-1.565204,
+ 0.270404,2.0856,-1.626774, 0.258385,2.242575,-1.554467, 0.502408,2.242575,-1.495635,
+ 0.502408,2.242575,-1.495635, 0.525778,2.0856,-1.565204, 0.270404,2.0856,-1.626774,
+ 0,2.0856,-1.648, 0,2.242575,-1.57475, 0.258385,2.242575,-1.554467,
+ 0.258385,2.242575,-1.554467, 0.270404,2.0856,-1.626774, 0,2.0856,-1.648,
+ 1.696119,1.929525,-0.28193, 1.626774,2.0856,-0.270404, 1.648,2.0856,0,
+ 1.648,2.0856,0, 1.71825,1.929525,0, 1.696119,1.929525,-0.28193,
+ 1.631925,1.929525,-0.54819, 1.565204,2.0856,-0.525778, 1.626774,2.0856,-0.270404,
+ 1.626774,2.0856,-0.270404, 1.696119,1.929525,-0.28193, 1.631925,1.929525,-0.54819,
+ 1.528968,1.929525,-0.795481, 1.466456,2.0856,-0.762958, 1.565204,2.0856,-0.525778,
+ 1.565204,2.0856,-0.525778, 1.631925,1.929525,-0.54819, 1.528968,1.929525,-0.795481,
+ 1.390545,1.929525,-1.020503, 1.333693,2.0856,-0.97878, 1.466456,2.0856,-0.762958,
+ 1.466456,2.0856,-0.762958, 1.528968,1.929525,-0.795481, 1.390545,1.929525,-1.020503,
+ 1.219958,1.929525,-1.219958, 1.17008,2.0856,-1.17008, 1.333693,2.0856,-0.97878,
+ 1.333693,2.0856,-0.97878, 1.390545,1.929525,-1.020503, 1.219958,1.929525,-1.219958,
+ 1.020503,1.929525,-1.390545, 0.97878,2.0856,-1.333693, 1.17008,2.0856,-1.17008,
+ 1.17008,2.0856,-1.17008, 1.219958,1.929525,-1.219958, 1.020503,1.929525,-1.390545,
+ 0.795481,1.929525,-1.528968, 0.762958,2.0856,-1.466456, 0.97878,2.0856,-1.333693,
+ 0.97878,2.0856,-1.333693, 1.020503,1.929525,-1.390545, 0.795481,1.929525,-1.528968,
+ 0.54819,1.929525,-1.631925, 0.525778,2.0856,-1.565204, 0.762958,2.0856,-1.466456,
+ 0.762958,2.0856,-1.466456, 0.795481,1.929525,-1.528968, 0.54819,1.929525,-1.631925,
+ 0.28193,1.929525,-1.696119, 0.270404,2.0856,-1.626774, 0.525778,2.0856,-1.565204,
+ 0.525778,2.0856,-1.565204, 0.54819,1.929525,-1.631925, 0.28193,1.929525,-1.696119,
+ 0,1.929525,-1.71825, 0,2.0856,-1.648, 0.270404,2.0856,-1.626774,
+ 0.270404,2.0856,-1.626774, 0.28193,1.929525,-1.696119, 0,1.929525,-1.71825,
+ 1.761022,1.7748,-0.292719, 1.696119,1.929525,-0.28193, 1.71825,1.929525,0,
+ 1.71825,1.929525,0, 1.784,1.7748,0, 1.761022,1.7748,-0.292719,
+ 1.694372,1.7748,-0.569167, 1.631925,1.929525,-0.54819, 1.696119,1.929525,-0.28193,
+ 1.696119,1.929525,-0.28193, 1.761022,1.7748,-0.292719, 1.694372,1.7748,-0.569167,
+ 1.587475,1.7748,-0.825921, 1.528968,1.929525,-0.795481, 1.631925,1.929525,-0.54819,
+ 1.631925,1.929525,-0.54819, 1.694372,1.7748,-0.569167, 1.587475,1.7748,-0.825921,
+ 1.443756,1.7748,-1.059553, 1.390545,1.929525,-1.020503, 1.528968,1.929525,-0.795481,
+ 1.528968,1.929525,-0.795481, 1.587475,1.7748,-0.825921, 1.443756,1.7748,-1.059553,
+ 1.26664,1.7748,-1.26664, 1.219958,1.929525,-1.219958, 1.390545,1.929525,-1.020503,
+ 1.390545,1.929525,-1.020503, 1.443756,1.7748,-1.059553, 1.26664,1.7748,-1.26664,
+ 1.059553,1.7748,-1.443756, 1.020503,1.929525,-1.390545, 1.219958,1.929525,-1.219958,
+ 1.219958,1.929525,-1.219958, 1.26664,1.7748,-1.26664, 1.059553,1.7748,-1.443756,
+ 0.825921,1.7748,-1.587475, 0.795481,1.929525,-1.528968, 1.020503,1.929525,-1.390545,
+ 1.020503,1.929525,-1.390545, 1.059553,1.7748,-1.443756, 0.825921,1.7748,-1.587475,
+ 0.569167,1.7748,-1.694372, 0.54819,1.929525,-1.631925, 0.795481,1.929525,-1.528968,
+ 0.795481,1.929525,-1.528968, 0.825921,1.7748,-1.587475, 0.569167,1.7748,-1.694372,
+ 0.292719,1.7748,-1.761022, 0.28193,1.929525,-1.696119, 0.54819,1.929525,-1.631925,
+ 0.54819,1.929525,-1.631925, 0.569167,1.7748,-1.694372, 0.292719,1.7748,-1.761022,
+ 0,1.7748,-1.784, 0,1.929525,-1.71825, 0.28193,1.929525,-1.696119,
+ 0.28193,1.929525,-1.696119, 0.292719,1.7748,-1.761022, 0,1.7748,-1.784,
+ 1.820003,1.621875,-0.302523, 1.761022,1.7748,-0.292719, 1.784,1.7748,0,
+ 1.784,1.7748,0, 1.84375,1.621875,0, 1.820003,1.621875,-0.302523,
+ 1.75112,1.621875,-0.58823, 1.694372,1.7748,-0.569167, 1.761022,1.7748,-0.292719,
+ 1.761022,1.7748,-0.292719, 1.820003,1.621875,-0.302523, 1.75112,1.621875,-0.58823,
+ 1.640643,1.621875,-0.853583, 1.587475,1.7748,-0.825921, 1.694372,1.7748,-0.569167,
+ 1.694372,1.7748,-0.569167, 1.75112,1.621875,-0.58823, 1.640643,1.621875,-0.853583,
+ 1.49211,1.621875,-1.09504, 1.443756,1.7748,-1.059553, 1.587475,1.7748,-0.825921,
+ 1.587475,1.7748,-0.825921, 1.640643,1.621875,-0.853583, 1.49211,1.621875,-1.09504,
+ 1.309063,1.621875,-1.309063, 1.26664,1.7748,-1.26664, 1.443756,1.7748,-1.059553,
+ 1.443756,1.7748,-1.059553, 1.49211,1.621875,-1.09504, 1.309063,1.621875,-1.309063,
+ 1.09504,1.621875,-1.49211, 1.059553,1.7748,-1.443756, 1.26664,1.7748,-1.26664,
+ 1.26664,1.7748,-1.26664, 1.309063,1.621875,-1.309063, 1.09504,1.621875,-1.49211,
+ 0.853583,1.621875,-1.640643, 0.825921,1.7748,-1.587475, 1.059553,1.7748,-1.443756,
+ 1.059553,1.7748,-1.443756, 1.09504,1.621875,-1.49211, 0.853583,1.621875,-1.640643,
+ 0.58823,1.621875,-1.75112, 0.569167,1.7748,-1.694372, 0.825921,1.7748,-1.587475,
+ 0.825921,1.7748,-1.587475, 0.853583,1.621875,-1.640643, 0.58823,1.621875,-1.75112,
+ 0.302522,1.621875,-1.820003, 0.292719,1.7748,-1.761022, 0.569167,1.7748,-1.694372,
+ 0.569167,1.7748,-1.694372, 0.58823,1.621875,-1.75112, 0.302522,1.621875,-1.820003,
+ 0,1.621875,-1.84375, 0,1.7748,-1.784, 0.292719,1.7748,-1.761022,
+ 0.292719,1.7748,-1.761022, 0.302522,1.621875,-1.820003, 0,1.621875,-1.84375,
+ 1.87158,1.4712,-0.311096, 1.820003,1.621875,-0.302523, 1.84375,1.621875,0,
+ 1.84375,1.621875,0, 1.896,1.4712,0, 1.87158,1.4712,-0.311096,
+ 1.800745,1.4712,-0.6049, 1.75112,1.621875,-0.58823, 1.820003,1.621875,-0.302523,
+ 1.820003,1.621875,-0.302523, 1.87158,1.4712,-0.311096, 1.800745,1.4712,-0.6049,
+ 1.687137,1.4712,-0.877772, 1.640643,1.621875,-0.853583, 1.75112,1.621875,-0.58823,
+ 1.75112,1.621875,-0.58823, 1.800745,1.4712,-0.6049, 1.687137,1.4712,-0.877772,
+ 1.534395,1.4712,-1.126072, 1.49211,1.621875,-1.09504, 1.640643,1.621875,-0.853583,
+ 1.640643,1.621875,-0.853583, 1.687137,1.4712,-0.877772, 1.534395,1.4712,-1.126072,
+ 1.34616,1.4712,-1.34616, 1.309063,1.621875,-1.309063, 1.49211,1.621875,-1.09504,
+ 1.49211,1.621875,-1.09504, 1.534395,1.4712,-1.126072, 1.34616,1.4712,-1.34616,
+ 1.126072,1.4712,-1.534395, 1.09504,1.621875,-1.49211, 1.309063,1.621875,-1.309063,
+ 1.309063,1.621875,-1.309063, 1.34616,1.4712,-1.34616, 1.126072,1.4712,-1.534395,
+ 0.877772,1.4712,-1.687137, 0.853583,1.621875,-1.640643, 1.09504,1.621875,-1.49211,
+ 1.09504,1.621875,-1.49211, 1.126072,1.4712,-1.534395, 0.877772,1.4712,-1.687137,
+ 0.6049,1.4712,-1.800745, 0.58823,1.621875,-1.75112, 0.853583,1.621875,-1.640643,
+ 0.853583,1.621875,-1.640643, 0.877772,1.4712,-1.687137, 0.6049,1.4712,-1.800745,
+ 0.311096,1.4712,-1.87158, 0.302522,1.621875,-1.820003, 0.58823,1.621875,-1.75112,
+ 0.58823,1.621875,-1.75112, 0.6049,1.4712,-1.800745, 0.311096,1.4712,-1.87158,
+ 0,1.4712,-1.896, 0,1.621875,-1.84375, 0.302522,1.621875,-1.820003,
+ 0.302522,1.621875,-1.820003, 0.311096,1.4712,-1.87158, 0,1.4712,-1.896,
+ 1.914272,1.323225,-0.318192, 1.87158,1.4712,-0.311096, 1.896,1.4712,0,
+ 1.896,1.4712,0, 1.93925,1.323225,0, 1.914272,1.323225,-0.318192,
+ 1.841822,1.323225,-0.618698, 1.800745,1.4712,-0.6049, 1.87158,1.4712,-0.311096,
+ 1.87158,1.4712,-0.311096, 1.914272,1.323225,-0.318192, 1.841822,1.323225,-0.618698,
+ 1.725622,1.323225,-0.897795, 1.687137,1.4712,-0.877772, 1.800745,1.4712,-0.6049,
+ 1.800745,1.4712,-0.6049, 1.841822,1.323225,-0.618698, 1.725622,1.323225,-0.897795,
+ 1.569396,1.323225,-1.151759, 1.534395,1.4712,-1.126072, 1.687137,1.4712,-0.877772,
+ 1.687137,1.4712,-0.877772, 1.725622,1.323225,-0.897795, 1.569396,1.323225,-1.151759,
+ 1.376867,1.323225,-1.376868, 1.34616,1.4712,-1.34616, 1.534395,1.4712,-1.126072,
+ 1.534395,1.4712,-1.126072, 1.569396,1.323225,-1.151759, 1.376867,1.323225,-1.376868,
+ 1.151759,1.323225,-1.569396, 1.126072,1.4712,-1.534395, 1.34616,1.4712,-1.34616,
+ 1.34616,1.4712,-1.34616, 1.376867,1.323225,-1.376868, 1.151759,1.323225,-1.569396,
+ 0.897795,1.323225,-1.725622, 0.877772,1.4712,-1.687137, 1.126072,1.4712,-1.534395,
+ 1.126072,1.4712,-1.534395, 1.151759,1.323225,-1.569396, 0.897795,1.323225,-1.725622,
+ 0.618698,1.323225,-1.841822, 0.6049,1.4712,-1.800745, 0.877772,1.4712,-1.687137,
+ 0.877772,1.4712,-1.687137, 0.897795,1.323225,-1.725622, 0.618698,1.323225,-1.841822,
+ 0.318192,1.323225,-1.914272, 0.311096,1.4712,-1.87158, 0.6049,1.4712,-1.800745,
+ 0.6049,1.4712,-1.800745, 0.618698,1.323225,-1.841822, 0.318192,1.323225,-1.914272,
+ 0,1.323225,-1.93925, 0,1.4712,-1.896, 0.311096,1.4712,-1.87158,
+ 0.311096,1.4712,-1.87158, 0.318192,1.323225,-1.914272, 0,1.323225,-1.93925,
+ 1.946601,1.1784,-0.323566, 1.914272,1.323225,-0.318192, 1.93925,1.323225,0,
+ 1.93925,1.323225,0, 1.972,1.1784,0, 1.946601,1.1784,-0.323566,
+ 1.872927,1.1784,-0.629147, 1.841822,1.323225,-0.618698, 1.914272,1.323225,-0.318192,
+ 1.914272,1.323225,-0.318192, 1.946601,1.1784,-0.323566, 1.872927,1.1784,-0.629147,
+ 1.754764,1.1784,-0.912957, 1.725622,1.323225,-0.897795, 1.841822,1.323225,-0.618698,
+ 1.841822,1.323225,-0.618698, 1.872927,1.1784,-0.629147, 1.754764,1.1784,-0.912957,
+ 1.5959,1.1784,-1.17121, 1.569396,1.323225,-1.151759, 1.725622,1.323225,-0.897795,
+ 1.725622,1.323225,-0.897795, 1.754764,1.1784,-0.912957, 1.5959,1.1784,-1.17121,
+ 1.40012,1.1784,-1.40012, 1.376867,1.323225,-1.376868, 1.569396,1.323225,-1.151759,
+ 1.569396,1.323225,-1.151759, 1.5959,1.1784,-1.17121, 1.40012,1.1784,-1.40012,
+ 1.17121,1.1784,-1.5959, 1.151759,1.323225,-1.569396, 1.376867,1.323225,-1.376868,
+ 1.376867,1.323225,-1.376868, 1.40012,1.1784,-1.40012, 1.17121,1.1784,-1.5959,
+ 0.912957,1.1784,-1.754764, 0.897795,1.323225,-1.725622, 1.151759,1.323225,-1.569396,
+ 1.151759,1.323225,-1.569396, 1.17121,1.1784,-1.5959, 0.912957,1.1784,-1.754764,
+ 0.629147,1.1784,-1.872927, 0.618698,1.323225,-1.841822, 0.897795,1.323225,-1.725622,
+ 0.897795,1.323225,-1.725622, 0.912957,1.1784,-1.754764, 0.629147,1.1784,-1.872927,
+ 0.323566,1.1784,-1.946601, 0.318192,1.323225,-1.914272, 0.618698,1.323225,-1.841822,
+ 0.618698,1.323225,-1.841822, 0.629147,1.1784,-1.872927, 0.323566,1.1784,-1.946601,
+ 0,1.1784,-1.972, 0,1.323225,-1.93925, 0.318192,1.323225,-1.914272,
+ 0.318192,1.323225,-1.914272, 0.323566,1.1784,-1.946601, 0,1.1784,-1.972,
+ 1.967083,1.037175,-0.32697, 1.946601,1.1784,-0.323566, 1.972,1.1784,0,
+ 1.972,1.1784,0, 1.99275,1.037175,0, 1.967083,1.037175,-0.32697,
+ 1.892634,1.037175,-0.635767, 1.872927,1.1784,-0.629147, 1.946601,1.1784,-0.323566,
+ 1.946601,1.1784,-0.323566, 1.967083,1.037175,-0.32697, 1.892634,1.037175,-0.635767,
+ 1.773229,1.037175,-0.922564, 1.754764,1.1784,-0.912957, 1.872927,1.1784,-0.629147,
+ 1.872927,1.1784,-0.629147, 1.892634,1.037175,-0.635767, 1.773229,1.037175,-0.922564,
+ 1.612693,1.037175,-1.183534, 1.5959,1.1784,-1.17121, 1.754764,1.1784,-0.912957,
+ 1.754764,1.1784,-0.912957, 1.773229,1.037175,-0.922564, 1.612693,1.037175,-1.183534,
+ 1.414853,1.037175,-1.414853, 1.40012,1.1784,-1.40012, 1.5959,1.1784,-1.17121,
+ 1.5959,1.1784,-1.17121, 1.612693,1.037175,-1.183534, 1.414853,1.037175,-1.414853,
+ 1.183534,1.037175,-1.612693, 1.17121,1.1784,-1.5959, 1.40012,1.1784,-1.40012,
+ 1.40012,1.1784,-1.40012, 1.414853,1.037175,-1.414853, 1.183534,1.037175,-1.612693,
+ 0.922564,1.037175,-1.773229, 0.912957,1.1784,-1.754764, 1.17121,1.1784,-1.5959,
+ 1.17121,1.1784,-1.5959, 1.183534,1.037175,-1.612693, 0.922564,1.037175,-1.773229,
+ 0.635767,1.037175,-1.892634, 0.629147,1.1784,-1.872927, 0.912957,1.1784,-1.754764,
+ 0.912957,1.1784,-1.754764, 0.922564,1.037175,-1.773229, 0.635767,1.037175,-1.892634,
+ 0.32697,1.037175,-1.967083, 0.323566,1.1784,-1.946601, 0.629147,1.1784,-1.872927,
+ 0.629147,1.1784,-1.872927, 0.635767,1.037175,-1.892634, 0.32697,1.037175,-1.967083,
+ 0,1.037175,-1.99275, 0,1.1784,-1.972, 0.323566,1.1784,-1.946601,
+ 0.323566,1.1784,-1.946601, 0.32697,1.037175,-1.967083, 0,1.037175,-1.99275,
+ 1.97424,0.9,-0.32816, 1.967083,1.037175,-0.32697, 1.99275,1.037175,0,
+ 1.99275,1.037175,0, 2,0.9,0, 1.97424,0.9,-0.32816,
+ 1.89952,0.9,-0.63808, 1.892634,1.037175,-0.635767, 1.967083,1.037175,-0.32697,
+ 1.967083,1.037175,-0.32697, 1.97424,0.9,-0.32816, 1.89952,0.9,-0.63808,
+ 1.77968,0.9,-0.92592, 1.773229,1.037175,-0.922564, 1.892634,1.037175,-0.635767,
+ 1.892634,1.037175,-0.635767, 1.89952,0.9,-0.63808, 1.77968,0.9,-0.92592,
+ 1.61856,0.9,-1.18784, 1.612693,1.037175,-1.183534, 1.773229,1.037175,-0.922564,
+ 1.773229,1.037175,-0.922564, 1.77968,0.9,-0.92592, 1.61856,0.9,-1.18784,
+ 1.42,0.9,-1.42, 1.414853,1.037175,-1.414853, 1.612693,1.037175,-1.183534,
+ 1.612693,1.037175,-1.183534, 1.61856,0.9,-1.18784, 1.42,0.9,-1.42,
+ 1.18784,0.9,-1.61856, 1.183534,1.037175,-1.612693, 1.414853,1.037175,-1.414853,
+ 1.414853,1.037175,-1.414853, 1.42,0.9,-1.42, 1.18784,0.9,-1.61856,
+ 0.92592,0.9,-1.77968, 0.922564,1.037175,-1.773229, 1.183534,1.037175,-1.612693,
+ 1.183534,1.037175,-1.612693, 1.18784,0.9,-1.61856, 0.92592,0.9,-1.77968,
+ 0.63808,0.9,-1.89952, 0.635767,1.037175,-1.892634, 0.922564,1.037175,-1.773229,
+ 0.922564,1.037175,-1.773229, 0.92592,0.9,-1.77968, 0.63808,0.9,-1.89952,
+ 0.32816,0.9,-1.97424, 0.32697,1.037175,-1.967083, 0.635767,1.037175,-1.892634,
+ 0.635767,1.037175,-1.892634, 0.63808,0.9,-1.89952, 0.32816,0.9,-1.97424,
+ 0,0.9,-2, 0,1.037175,-1.99275, 0.32697,1.037175,-1.967083,
+ 0.32697,1.037175,-1.967083, 0.32816,0.9,-1.97424, 0,0.9,-2,
+ -0.258385,2.242575,-1.554467, -0.24612,2.4,-1.48068, 0,2.4,-1.5,
+ 0,2.4,-1.5, 0,2.242575,-1.57475, -0.258385,2.242575,-1.554467,
+ -0.502408,2.242575,-1.495635, -0.47856,2.4,-1.42464, -0.24612,2.4,-1.48068,
+ -0.24612,2.4,-1.48068, -0.258385,2.242575,-1.554467, -0.502408,2.242575,-1.495635,
+ -0.729046,2.242575,-1.401276, -0.69444,2.4,-1.33476, -0.47856,2.4,-1.42464,
+ -0.47856,2.4,-1.42464, -0.502408,2.242575,-1.495635, -0.729046,2.242575,-1.401276,
+ -0.935276,2.242575,-1.274414, -0.89088,2.4,-1.21392, -0.69444,2.4,-1.33476,
+ -0.69444,2.4,-1.33476, -0.729046,2.242575,-1.401276, -0.935276,2.242575,-1.274414,
+ -1.118073,2.242575,-1.118073, -1.065,2.4,-1.065, -0.89088,2.4,-1.21392,
+ -0.89088,2.4,-1.21392, -0.935276,2.242575,-1.274414, -1.118073,2.242575,-1.118073,
+ -1.274414,2.242575,-0.935276, -1.21392,2.4,-0.89088, -1.065,2.4,-1.065,
+ -1.065,2.4,-1.065, -1.118073,2.242575,-1.118073, -1.274414,2.242575,-0.935276,
+ -1.401276,2.242575,-0.729046, -1.33476,2.4,-0.69444, -1.21392,2.4,-0.89088,
+ -1.21392,2.4,-0.89088, -1.274414,2.242575,-0.935276, -1.401276,2.242575,-0.729046,
+ -1.495635,2.242575,-0.502408, -1.42464,2.4,-0.47856, -1.33476,2.4,-0.69444,
+ -1.33476,2.4,-0.69444, -1.401276,2.242575,-0.729046, -1.495635,2.242575,-0.502408,
+ -1.554467,2.242575,-0.258385, -1.48068,2.4,-0.24612, -1.42464,2.4,-0.47856,
+ -1.42464,2.4,-0.47856, -1.495635,2.242575,-0.502408, -1.554467,2.242575,-0.258385,
+ -1.57475,2.242575,0, -1.5,2.4,0, -1.48068,2.4,-0.24612,
+ -1.48068,2.4,-0.24612, -1.554467,2.242575,-0.258385, -1.57475,2.242575,0,
+ -0.270404,2.0856,-1.626774, -0.258385,2.242575,-1.554467, 0,2.242575,-1.57475,
+ 0,2.242575,-1.57475, 0,2.0856,-1.648, -0.270404,2.0856,-1.626774,
+ -0.525778,2.0856,-1.565204, -0.502408,2.242575,-1.495635, -0.258385,2.242575,-1.554467,
+ -0.258385,2.242575,-1.554467, -0.270404,2.0856,-1.626774, -0.525778,2.0856,-1.565204,
+ -0.762958,2.0856,-1.466456, -0.729046,2.242575,-1.401276, -0.502408,2.242575,-1.495635,
+ -0.502408,2.242575,-1.495635, -0.525778,2.0856,-1.565204, -0.762958,2.0856,-1.466456,
+ -0.97878,2.0856,-1.333693, -0.935276,2.242575,-1.274414, -0.729046,2.242575,-1.401276,
+ -0.729046,2.242575,-1.401276, -0.762958,2.0856,-1.466456, -0.97878,2.0856,-1.333693,
+ -1.17008,2.0856,-1.17008, -1.118073,2.242575,-1.118073, -0.935276,2.242575,-1.274414,
+ -0.935276,2.242575,-1.274414, -0.97878,2.0856,-1.333693, -1.17008,2.0856,-1.17008,
+ -1.333693,2.0856,-0.97878, -1.274414,2.242575,-0.935276, -1.118073,2.242575,-1.118073,
+ -1.118073,2.242575,-1.118073, -1.17008,2.0856,-1.17008, -1.333693,2.0856,-0.97878,
+ -1.466456,2.0856,-0.762958, -1.401276,2.242575,-0.729046, -1.274414,2.242575,-0.935276,
+ -1.274414,2.242575,-0.935276, -1.333693,2.0856,-0.97878, -1.466456,2.0856,-0.762958,
+ -1.565204,2.0856,-0.525778, -1.495635,2.242575,-0.502408, -1.401276,2.242575,-0.729046,
+ -1.401276,2.242575,-0.729046, -1.466456,2.0856,-0.762958, -1.565204,2.0856,-0.525778,
+ -1.626774,2.0856,-0.270404, -1.554467,2.242575,-0.258385, -1.495635,2.242575,-0.502408,
+ -1.495635,2.242575,-0.502408, -1.565204,2.0856,-0.525778, -1.626774,2.0856,-0.270404,
+ -1.648,2.0856,0, -1.57475,2.242575,0, -1.554467,2.242575,-0.258385,
+ -1.554467,2.242575,-0.258385, -1.626774,2.0856,-0.270404, -1.648,2.0856,0,
+ -0.28193,1.929525,-1.696119, -0.270404,2.0856,-1.626774, 0,2.0856,-1.648,
+ 0,2.0856,-1.648, 0,1.929525,-1.71825, -0.28193,1.929525,-1.696119,
+ -0.54819,1.929525,-1.631925, -0.525778,2.0856,-1.565204, -0.270404,2.0856,-1.626774,
+ -0.270404,2.0856,-1.626774, -0.28193,1.929525,-1.696119, -0.54819,1.929525,-1.631925,
+ -0.795481,1.929525,-1.528968, -0.762958,2.0856,-1.466456, -0.525778,2.0856,-1.565204,
+ -0.525778,2.0856,-1.565204, -0.54819,1.929525,-1.631925, -0.795481,1.929525,-1.528968,
+ -1.020503,1.929525,-1.390545, -0.97878,2.0856,-1.333693, -0.762958,2.0856,-1.466456,
+ -0.762958,2.0856,-1.466456, -0.795481,1.929525,-1.528968, -1.020503,1.929525,-1.390545,
+ -1.219958,1.929525,-1.219958, -1.17008,2.0856,-1.17008, -0.97878,2.0856,-1.333693,
+ -0.97878,2.0856,-1.333693, -1.020503,1.929525,-1.390545, -1.219958,1.929525,-1.219958,
+ -1.390545,1.929525,-1.020503, -1.333693,2.0856,-0.97878, -1.17008,2.0856,-1.17008,
+ -1.17008,2.0856,-1.17008, -1.219958,1.929525,-1.219958, -1.390545,1.929525,-1.020503,
+ -1.528968,1.929525,-0.795481, -1.466456,2.0856,-0.762958, -1.333693,2.0856,-0.97878,
+ -1.333693,2.0856,-0.97878, -1.390545,1.929525,-1.020503, -1.528968,1.929525,-0.795481,
+ -1.631925,1.929525,-0.54819, -1.565204,2.0856,-0.525778, -1.466456,2.0856,-0.762958,
+ -1.466456,2.0856,-0.762958, -1.528968,1.929525,-0.795481, -1.631925,1.929525,-0.54819,
+ -1.696119,1.929525,-0.28193, -1.626774,2.0856,-0.270404, -1.565204,2.0856,-0.525778,
+ -1.565204,2.0856,-0.525778, -1.631925,1.929525,-0.54819, -1.696119,1.929525,-0.28193,
+ -1.71825,1.929525,0, -1.648,2.0856,0, -1.626774,2.0856,-0.270404,
+ -1.626774,2.0856,-0.270404, -1.696119,1.929525,-0.28193, -1.71825,1.929525,0,
+ -0.292719,1.7748,-1.761022, -0.28193,1.929525,-1.696119, 0,1.929525,-1.71825,
+ 0,1.929525,-1.71825, 0,1.7748,-1.784, -0.292719,1.7748,-1.761022,
+ -0.569167,1.7748,-1.694372, -0.54819,1.929525,-1.631925, -0.28193,1.929525,-1.696119,
+ -0.28193,1.929525,-1.696119, -0.292719,1.7748,-1.761022, -0.569167,1.7748,-1.694372,
+ -0.825921,1.7748,-1.587475, -0.795481,1.929525,-1.528968, -0.54819,1.929525,-1.631925,
+ -0.54819,1.929525,-1.631925, -0.569167,1.7748,-1.694372, -0.825921,1.7748,-1.587475,
+ -1.059553,1.7748,-1.443756, -1.020503,1.929525,-1.390545, -0.795481,1.929525,-1.528968,
+ -0.795481,1.929525,-1.528968, -0.825921,1.7748,-1.587475, -1.059553,1.7748,-1.443756,
+ -1.26664,1.7748,-1.26664, -1.219958,1.929525,-1.219958, -1.020503,1.929525,-1.390545,
+ -1.020503,1.929525,-1.390545, -1.059553,1.7748,-1.443756, -1.26664,1.7748,-1.26664,
+ -1.443756,1.7748,-1.059553, -1.390545,1.929525,-1.020503, -1.219958,1.929525,-1.219958,
+ -1.219958,1.929525,-1.219958, -1.26664,1.7748,-1.26664, -1.443756,1.7748,-1.059553,
+ -1.587475,1.7748,-0.825921, -1.528968,1.929525,-0.795481, -1.390545,1.929525,-1.020503,
+ -1.390545,1.929525,-1.020503, -1.443756,1.7748,-1.059553, -1.587475,1.7748,-0.825921,
+ -1.694372,1.7748,-0.569167, -1.631925,1.929525,-0.54819, -1.528968,1.929525,-0.795481,
+ -1.528968,1.929525,-0.795481, -1.587475,1.7748,-0.825921, -1.694372,1.7748,-0.569167,
+ -1.761022,1.7748,-0.292719, -1.696119,1.929525,-0.28193, -1.631925,1.929525,-0.54819,
+ -1.631925,1.929525,-0.54819, -1.694372,1.7748,-0.569167, -1.761022,1.7748,-0.292719,
+ -1.784,1.7748,0, -1.71825,1.929525,0, -1.696119,1.929525,-0.28193,
+ -1.696119,1.929525,-0.28193, -1.761022,1.7748,-0.292719, -1.784,1.7748,0,
+ -0.302523,1.621875,-1.820003, -0.292719,1.7748,-1.761022, 0,1.7748,-1.784,
+ 0,1.7748,-1.784, 0,1.621875,-1.84375, -0.302523,1.621875,-1.820003,
+ -0.58823,1.621875,-1.75112, -0.569167,1.7748,-1.694372, -0.292719,1.7748,-1.761022,
+ -0.292719,1.7748,-1.761022, -0.302523,1.621875,-1.820003, -0.58823,1.621875,-1.75112,
+ -0.853583,1.621875,-1.640643, -0.825921,1.7748,-1.587475, -0.569167,1.7748,-1.694372,
+ -0.569167,1.7748,-1.694372, -0.58823,1.621875,-1.75112, -0.853583,1.621875,-1.640643,
+ -1.09504,1.621875,-1.49211, -1.059553,1.7748,-1.443756, -0.825921,1.7748,-1.587475,
+ -0.825921,1.7748,-1.587475, -0.853583,1.621875,-1.640643, -1.09504,1.621875,-1.49211,
+ -1.309063,1.621875,-1.309063, -1.26664,1.7748,-1.26664, -1.059553,1.7748,-1.443756,
+ -1.059553,1.7748,-1.443756, -1.09504,1.621875,-1.49211, -1.309063,1.621875,-1.309063,
+ -1.49211,1.621875,-1.09504, -1.443756,1.7748,-1.059553, -1.26664,1.7748,-1.26664,
+ -1.26664,1.7748,-1.26664, -1.309063,1.621875,-1.309063, -1.49211,1.621875,-1.09504,
+ -1.640643,1.621875,-0.853583, -1.587475,1.7748,-0.825921, -1.443756,1.7748,-1.059553,
+ -1.443756,1.7748,-1.059553, -1.49211,1.621875,-1.09504, -1.640643,1.621875,-0.853583,
+ -1.75112,1.621875,-0.58823, -1.694372,1.7748,-0.569167, -1.587475,1.7748,-0.825921,
+ -1.587475,1.7748,-0.825921, -1.640643,1.621875,-0.853583, -1.75112,1.621875,-0.58823,
+ -1.820003,1.621875,-0.302522, -1.761022,1.7748,-0.292719, -1.694372,1.7748,-0.569167,
+ -1.694372,1.7748,-0.569167, -1.75112,1.621875,-0.58823, -1.820003,1.621875,-0.302522,
+ -1.84375,1.621875,0, -1.784,1.7748,0, -1.761022,1.7748,-0.292719,
+ -1.761022,1.7748,-0.292719, -1.820003,1.621875,-0.302522, -1.84375,1.621875,0,
+ -0.311096,1.4712,-1.87158, -0.302523,1.621875,-1.820003, 0,1.621875,-1.84375,
+ 0,1.621875,-1.84375, 0,1.4712,-1.896, -0.311096,1.4712,-1.87158,
+ -0.6049,1.4712,-1.800745, -0.58823,1.621875,-1.75112, -0.302523,1.621875,-1.820003,
+ -0.302523,1.621875,-1.820003, -0.311096,1.4712,-1.87158, -0.6049,1.4712,-1.800745,
+ -0.877772,1.4712,-1.687137, -0.853583,1.621875,-1.640643, -0.58823,1.621875,-1.75112,
+ -0.58823,1.621875,-1.75112, -0.6049,1.4712,-1.800745, -0.877772,1.4712,-1.687137,
+ -1.126072,1.4712,-1.534395, -1.09504,1.621875,-1.49211, -0.853583,1.621875,-1.640643,
+ -0.853583,1.621875,-1.640643, -0.877772,1.4712,-1.687137, -1.126072,1.4712,-1.534395,
+ -1.34616,1.4712,-1.34616, -1.309063,1.621875,-1.309063, -1.09504,1.621875,-1.49211,
+ -1.09504,1.621875,-1.49211, -1.126072,1.4712,-1.534395, -1.34616,1.4712,-1.34616,
+ -1.534395,1.4712,-1.126072, -1.49211,1.621875,-1.09504, -1.309063,1.621875,-1.309063,
+ -1.309063,1.621875,-1.309063, -1.34616,1.4712,-1.34616, -1.534395,1.4712,-1.126072,
+ -1.687137,1.4712,-0.877772, -1.640643,1.621875,-0.853583, -1.49211,1.621875,-1.09504,
+ -1.49211,1.621875,-1.09504, -1.534395,1.4712,-1.126072, -1.687137,1.4712,-0.877772,
+ -1.800745,1.4712,-0.6049, -1.75112,1.621875,-0.58823, -1.640643,1.621875,-0.853583,
+ -1.640643,1.621875,-0.853583, -1.687137,1.4712,-0.877772, -1.800745,1.4712,-0.6049,
+ -1.87158,1.4712,-0.311096, -1.820003,1.621875,-0.302522, -1.75112,1.621875,-0.58823,
+ -1.75112,1.621875,-0.58823, -1.800745,1.4712,-0.6049, -1.87158,1.4712,-0.311096,
+ -1.896,1.4712,0, -1.84375,1.621875,0, -1.820003,1.621875,-0.302522,
+ -1.820003,1.621875,-0.302522, -1.87158,1.4712,-0.311096, -1.896,1.4712,0,
+ -0.318192,1.323225,-1.914272, -0.311096,1.4712,-1.87158, 0,1.4712,-1.896,
+ 0,1.4712,-1.896, 0,1.323225,-1.93925, -0.318192,1.323225,-1.914272,
+ -0.618698,1.323225,-1.841822, -0.6049,1.4712,-1.800745, -0.311096,1.4712,-1.87158,
+ -0.311096,1.4712,-1.87158, -0.318192,1.323225,-1.914272, -0.618698,1.323225,-1.841822,
+ -0.897795,1.323225,-1.725622, -0.877772,1.4712,-1.687137, -0.6049,1.4712,-1.800745,
+ -0.6049,1.4712,-1.800745, -0.618698,1.323225,-1.841822, -0.897795,1.323225,-1.725622,
+ -1.151759,1.323225,-1.569396, -1.126072,1.4712,-1.534395, -0.877772,1.4712,-1.687137,
+ -0.877772,1.4712,-1.687137, -0.897795,1.323225,-1.725622, -1.151759,1.323225,-1.569396,
+ -1.376868,1.323225,-1.376867, -1.34616,1.4712,-1.34616, -1.126072,1.4712,-1.534395,
+ -1.126072,1.4712,-1.534395, -1.151759,1.323225,-1.569396, -1.376868,1.323225,-1.376867,
+ -1.569396,1.323225,-1.151759, -1.534395,1.4712,-1.126072, -1.34616,1.4712,-1.34616,
+ -1.34616,1.4712,-1.34616, -1.376868,1.323225,-1.376867, -1.569396,1.323225,-1.151759,
+ -1.725622,1.323225,-0.897795, -1.687137,1.4712,-0.877772, -1.534395,1.4712,-1.126072,
+ -1.534395,1.4712,-1.126072, -1.569396,1.323225,-1.151759, -1.725622,1.323225,-0.897795,
+ -1.841822,1.323225,-0.618698, -1.800745,1.4712,-0.6049, -1.687137,1.4712,-0.877772,
+ -1.687137,1.4712,-0.877772, -1.725622,1.323225,-0.897795, -1.841822,1.323225,-0.618698,
+ -1.914272,1.323225,-0.318192, -1.87158,1.4712,-0.311096, -1.800745,1.4712,-0.6049,
+ -1.800745,1.4712,-0.6049, -1.841822,1.323225,-0.618698, -1.914272,1.323225,-0.318192,
+ -1.93925,1.323225,0, -1.896,1.4712,0, -1.87158,1.4712,-0.311096,
+ -1.87158,1.4712,-0.311096, -1.914272,1.323225,-0.318192, -1.93925,1.323225,0,
+ -0.323566,1.1784,-1.946601, -0.318192,1.323225,-1.914272, 0,1.323225,-1.93925,
+ 0,1.323225,-1.93925, 0,1.1784,-1.972, -0.323566,1.1784,-1.946601,
+ -0.629147,1.1784,-1.872927, -0.618698,1.323225,-1.841822, -0.318192,1.323225,-1.914272,
+ -0.318192,1.323225,-1.914272, -0.323566,1.1784,-1.946601, -0.629147,1.1784,-1.872927,
+ -0.912957,1.1784,-1.754764, -0.897795,1.323225,-1.725622, -0.618698,1.323225,-1.841822,
+ -0.618698,1.323225,-1.841822, -0.629147,1.1784,-1.872927, -0.912957,1.1784,-1.754764,
+ -1.17121,1.1784,-1.5959, -1.151759,1.323225,-1.569396, -0.897795,1.323225,-1.725622,
+ -0.897795,1.323225,-1.725622, -0.912957,1.1784,-1.754764, -1.17121,1.1784,-1.5959,
+ -1.40012,1.1784,-1.40012, -1.376868,1.323225,-1.376867, -1.151759,1.323225,-1.569396,
+ -1.151759,1.323225,-1.569396, -1.17121,1.1784,-1.5959, -1.40012,1.1784,-1.40012,
+ -1.5959,1.1784,-1.17121, -1.569396,1.323225,-1.151759, -1.376868,1.323225,-1.376867,
+ -1.376868,1.323225,-1.376867, -1.40012,1.1784,-1.40012, -1.5959,1.1784,-1.17121,
+ -1.754764,1.1784,-0.912957, -1.725622,1.323225,-0.897795, -1.569396,1.323225,-1.151759,
+ -1.569396,1.323225,-1.151759, -1.5959,1.1784,-1.17121, -1.754764,1.1784,-0.912957,
+ -1.872927,1.1784,-0.629147, -1.841822,1.323225,-0.618698, -1.725622,1.323225,-0.897795,
+ -1.725622,1.323225,-0.897795, -1.754764,1.1784,-0.912957, -1.872927,1.1784,-0.629147,
+ -1.946601,1.1784,-0.323566, -1.914272,1.323225,-0.318192, -1.841822,1.323225,-0.618698,
+ -1.841822,1.323225,-0.618698, -1.872927,1.1784,-0.629147, -1.946601,1.1784,-0.323566,
+ -1.972,1.1784,0, -1.93925,1.323225,0, -1.914272,1.323225,-0.318192,
+ -1.914272,1.323225,-0.318192, -1.946601,1.1784,-0.323566, -1.972,1.1784,0,
+ -0.32697,1.037175,-1.967083, -0.323566,1.1784,-1.946601, 0,1.1784,-1.972,
+ 0,1.1784,-1.972, 0,1.037175,-1.99275, -0.32697,1.037175,-1.967083,
+ -0.635767,1.037175,-1.892634, -0.629147,1.1784,-1.872927, -0.323566,1.1784,-1.946601,
+ -0.323566,1.1784,-1.946601, -0.32697,1.037175,-1.967083, -0.635767,1.037175,-1.892634,
+ -0.922564,1.037175,-1.773229, -0.912957,1.1784,-1.754764, -0.629147,1.1784,-1.872927,
+ -0.629147,1.1784,-1.872927, -0.635767,1.037175,-1.892634, -0.922564,1.037175,-1.773229,
+ -1.183534,1.037175,-1.612693, -1.17121,1.1784,-1.5959, -0.912957,1.1784,-1.754764,
+ -0.912957,1.1784,-1.754764, -0.922564,1.037175,-1.773229, -1.183534,1.037175,-1.612693,
+ -1.414853,1.037175,-1.414853, -1.40012,1.1784,-1.40012, -1.17121,1.1784,-1.5959,
+ -1.17121,1.1784,-1.5959, -1.183534,1.037175,-1.612693, -1.414853,1.037175,-1.414853,
+ -1.612693,1.037175,-1.183534, -1.5959,1.1784,-1.17121, -1.40012,1.1784,-1.40012,
+ -1.40012,1.1784,-1.40012, -1.414853,1.037175,-1.414853, -1.612693,1.037175,-1.183534,
+ -1.773229,1.037175,-0.922564, -1.754764,1.1784,-0.912957, -1.5959,1.1784,-1.17121,
+ -1.5959,1.1784,-1.17121, -1.612693,1.037175,-1.183534, -1.773229,1.037175,-0.922564,
+ -1.892634,1.037175,-0.635767, -1.872927,1.1784,-0.629147, -1.754764,1.1784,-0.912957,
+ -1.754764,1.1784,-0.912957, -1.773229,1.037175,-0.922564, -1.892634,1.037175,-0.635767,
+ -1.967083,1.037175,-0.32697, -1.946601,1.1784,-0.323566, -1.872927,1.1784,-0.629147,
+ -1.872927,1.1784,-0.629147, -1.892634,1.037175,-0.635767, -1.967083,1.037175,-0.32697,
+ -1.99275,1.037175,0, -1.972,1.1784,0, -1.946601,1.1784,-0.323566,
+ -1.946601,1.1784,-0.323566, -1.967083,1.037175,-0.32697, -1.99275,1.037175,0,
+ -0.32816,0.9,-1.97424, -0.32697,1.037175,-1.967083, 0,1.037175,-1.99275,
+ 0,1.037175,-1.99275, 0,0.9,-2, -0.32816,0.9,-1.97424,
+ -0.63808,0.9,-1.89952, -0.635767,1.037175,-1.892634, -0.32697,1.037175,-1.967083,
+ -0.32697,1.037175,-1.967083, -0.32816,0.9,-1.97424, -0.63808,0.9,-1.89952,
+ -0.92592,0.9,-1.77968, -0.922564,1.037175,-1.773229, -0.635767,1.037175,-1.892634,
+ -0.635767,1.037175,-1.892634, -0.63808,0.9,-1.89952, -0.92592,0.9,-1.77968,
+ -1.18784,0.9,-1.61856, -1.183534,1.037175,-1.612693, -0.922564,1.037175,-1.773229,
+ -0.922564,1.037175,-1.773229, -0.92592,0.9,-1.77968, -1.18784,0.9,-1.61856,
+ -1.42,0.9,-1.42, -1.414853,1.037175,-1.414853, -1.183534,1.037175,-1.612693,
+ -1.183534,1.037175,-1.612693, -1.18784,0.9,-1.61856, -1.42,0.9,-1.42,
+ -1.61856,0.9,-1.18784, -1.612693,1.037175,-1.183534, -1.414853,1.037175,-1.414853,
+ -1.414853,1.037175,-1.414853, -1.42,0.9,-1.42, -1.61856,0.9,-1.18784,
+ -1.77968,0.9,-0.92592, -1.773229,1.037175,-0.922564, -1.612693,1.037175,-1.183534,
+ -1.612693,1.037175,-1.183534, -1.61856,0.9,-1.18784, -1.77968,0.9,-0.92592,
+ -1.89952,0.9,-0.63808, -1.892634,1.037175,-0.635767, -1.773229,1.037175,-0.922564,
+ -1.773229,1.037175,-0.922564, -1.77968,0.9,-0.92592, -1.89952,0.9,-0.63808,
+ -1.97424,0.9,-0.32816, -1.967083,1.037175,-0.32697, -1.892634,1.037175,-0.635767,
+ -1.892634,1.037175,-0.635767, -1.89952,0.9,-0.63808, -1.97424,0.9,-0.32816,
+ -2,0.9,0, -1.99275,1.037175,0, -1.967083,1.037175,-0.32697,
+ -1.967083,1.037175,-0.32697, -1.97424,0.9,-0.32816, -2,0.9,0,
+ -1.554467,2.242575,0.258385, -1.48068,2.4,0.24612, -1.5,2.4,0,
+ -1.5,2.4,0, -1.57475,2.242575,0, -1.554467,2.242575,0.258385,
+ -1.495635,2.242575,0.502408, -1.42464,2.4,0.47856, -1.48068,2.4,0.24612,
+ -1.48068,2.4,0.24612, -1.554467,2.242575,0.258385, -1.495635,2.242575,0.502408,
+ -1.401276,2.242575,0.729046, -1.33476,2.4,0.69444, -1.42464,2.4,0.47856,
+ -1.42464,2.4,0.47856, -1.495635,2.242575,0.502408, -1.401276,2.242575,0.729046,
+ -1.274414,2.242575,0.935276, -1.21392,2.4,0.89088, -1.33476,2.4,0.69444,
+ -1.33476,2.4,0.69444, -1.401276,2.242575,0.729046, -1.274414,2.242575,0.935276,
+ -1.118073,2.242575,1.118073, -1.065,2.4,1.065, -1.21392,2.4,0.89088,
+ -1.21392,2.4,0.89088, -1.274414,2.242575,0.935276, -1.118073,2.242575,1.118073,
+ -0.935276,2.242575,1.274414, -0.89088,2.4,1.21392, -1.065,2.4,1.065,
+ -1.065,2.4,1.065, -1.118073,2.242575,1.118073, -0.935276,2.242575,1.274414,
+ -0.729046,2.242575,1.401276, -0.69444,2.4,1.33476, -0.89088,2.4,1.21392,
+ -0.89088,2.4,1.21392, -0.935276,2.242575,1.274414, -0.729046,2.242575,1.401276,
+ -0.502408,2.242575,1.495635, -0.47856,2.4,1.42464, -0.69444,2.4,1.33476,
+ -0.69444,2.4,1.33476, -0.729046,2.242575,1.401276, -0.502408,2.242575,1.495635,
+ -0.258385,2.242575,1.554467, -0.24612,2.4,1.48068, -0.47856,2.4,1.42464,
+ -0.47856,2.4,1.42464, -0.502408,2.242575,1.495635, -0.258385,2.242575,1.554467,
+ 0,2.242575,1.57475, 0,2.4,1.5, -0.24612,2.4,1.48068,
+ -0.24612,2.4,1.48068, -0.258385,2.242575,1.554467, 0,2.242575,1.57475,
+ -1.626774,2.0856,0.270404, -1.554467,2.242575,0.258385, -1.57475,2.242575,0,
+ -1.57475,2.242575,0, -1.648,2.0856,0, -1.626774,2.0856,0.270404,
+ -1.565204,2.0856,0.525778, -1.495635,2.242575,0.502408, -1.554467,2.242575,0.258385,
+ -1.554467,2.242575,0.258385, -1.626774,2.0856,0.270404, -1.565204,2.0856,0.525778,
+ -1.466456,2.0856,0.762958, -1.401276,2.242575,0.729046, -1.495635,2.242575,0.502408,
+ -1.495635,2.242575,0.502408, -1.565204,2.0856,0.525778, -1.466456,2.0856,0.762958,
+ -1.333693,2.0856,0.97878, -1.274414,2.242575,0.935276, -1.401276,2.242575,0.729046,
+ -1.401276,2.242575,0.729046, -1.466456,2.0856,0.762958, -1.333693,2.0856,0.97878,
+ -1.17008,2.0856,1.17008, -1.118073,2.242575,1.118073, -1.274414,2.242575,0.935276,
+ -1.274414,2.242575,0.935276, -1.333693,2.0856,0.97878, -1.17008,2.0856,1.17008,
+ -0.97878,2.0856,1.333693, -0.935276,2.242575,1.274414, -1.118073,2.242575,1.118073,
+ -1.118073,2.242575,1.118073, -1.17008,2.0856,1.17008, -0.97878,2.0856,1.333693,
+ -0.762958,2.0856,1.466456, -0.729046,2.242575,1.401276, -0.935276,2.242575,1.274414,
+ -0.935276,2.242575,1.274414, -0.97878,2.0856,1.333693, -0.762958,2.0856,1.466456,
+ -0.525778,2.0856,1.565204, -0.502408,2.242575,1.495635, -0.729046,2.242575,1.401276,
+ -0.729046,2.242575,1.401276, -0.762958,2.0856,1.466456, -0.525778,2.0856,1.565204,
+ -0.270404,2.0856,1.626774, -0.258385,2.242575,1.554467, -0.502408,2.242575,1.495635,
+ -0.502408,2.242575,1.495635, -0.525778,2.0856,1.565204, -0.270404,2.0856,1.626774,
+ 0,2.0856,1.648, 0,2.242575,1.57475, -0.258385,2.242575,1.554467,
+ -0.258385,2.242575,1.554467, -0.270404,2.0856,1.626774, 0,2.0856,1.648,
+ -1.696119,1.929525,0.28193, -1.626774,2.0856,0.270404, -1.648,2.0856,0,
+ -1.648,2.0856,0, -1.71825,1.929525,0, -1.696119,1.929525,0.28193,
+ -1.631925,1.929525,0.54819, -1.565204,2.0856,0.525778, -1.626774,2.0856,0.270404,
+ -1.626774,2.0856,0.270404, -1.696119,1.929525,0.28193, -1.631925,1.929525,0.54819,
+ -1.528968,1.929525,0.795481, -1.466456,2.0856,0.762958, -1.565204,2.0856,0.525778,
+ -1.565204,2.0856,0.525778, -1.631925,1.929525,0.54819, -1.528968,1.929525,0.795481,
+ -1.390545,1.929525,1.020503, -1.333693,2.0856,0.97878, -1.466456,2.0856,0.762958,
+ -1.466456,2.0856,0.762958, -1.528968,1.929525,0.795481, -1.390545,1.929525,1.020503,
+ -1.219958,1.929525,1.219958, -1.17008,2.0856,1.17008, -1.333693,2.0856,0.97878,
+ -1.333693,2.0856,0.97878, -1.390545,1.929525,1.020503, -1.219958,1.929525,1.219958,
+ -1.020503,1.929525,1.390545, -0.97878,2.0856,1.333693, -1.17008,2.0856,1.17008,
+ -1.17008,2.0856,1.17008, -1.219958,1.929525,1.219958, -1.020503,1.929525,1.390545,
+ -0.795481,1.929525,1.528968, -0.762958,2.0856,1.466456, -0.97878,2.0856,1.333693,
+ -0.97878,2.0856,1.333693, -1.020503,1.929525,1.390545, -0.795481,1.929525,1.528968,
+ -0.54819,1.929525,1.631925, -0.525778,2.0856,1.565204, -0.762958,2.0856,1.466456,
+ -0.762958,2.0856,1.466456, -0.795481,1.929525,1.528968, -0.54819,1.929525,1.631925,
+ -0.28193,1.929525,1.696119, -0.270404,2.0856,1.626774, -0.525778,2.0856,1.565204,
+ -0.525778,2.0856,1.565204, -0.54819,1.929525,1.631925, -0.28193,1.929525,1.696119,
+ 0,1.929525,1.71825, 0,2.0856,1.648, -0.270404,2.0856,1.626774,
+ -0.270404,2.0856,1.626774, -0.28193,1.929525,1.696119, 0,1.929525,1.71825,
+ -1.761022,1.7748,0.292719, -1.696119,1.929525,0.28193, -1.71825,1.929525,0,
+ -1.71825,1.929525,0, -1.784,1.7748,0, -1.761022,1.7748,0.292719,
+ -1.694372,1.7748,0.569167, -1.631925,1.929525,0.54819, -1.696119,1.929525,0.28193,
+ -1.696119,1.929525,0.28193, -1.761022,1.7748,0.292719, -1.694372,1.7748,0.569167,
+ -1.587475,1.7748,0.825921, -1.528968,1.929525,0.795481, -1.631925,1.929525,0.54819,
+ -1.631925,1.929525,0.54819, -1.694372,1.7748,0.569167, -1.587475,1.7748,0.825921,
+ -1.443756,1.7748,1.059553, -1.390545,1.929525,1.020503, -1.528968,1.929525,0.795481,
+ -1.528968,1.929525,0.795481, -1.587475,1.7748,0.825921, -1.443756,1.7748,1.059553,
+ -1.26664,1.7748,1.26664, -1.219958,1.929525,1.219958, -1.390545,1.929525,1.020503,
+ -1.390545,1.929525,1.020503, -1.443756,1.7748,1.059553, -1.26664,1.7748,1.26664,
+ -1.059553,1.7748,1.443756, -1.020503,1.929525,1.390545, -1.219958,1.929525,1.219958,
+ -1.219958,1.929525,1.219958, -1.26664,1.7748,1.26664, -1.059553,1.7748,1.443756,
+ -0.825921,1.7748,1.587475, -0.795481,1.929525,1.528968, -1.020503,1.929525,1.390545,
+ -1.020503,1.929525,1.390545, -1.059553,1.7748,1.443756, -0.825921,1.7748,1.587475,
+ -0.569167,1.7748,1.694372, -0.54819,1.929525,1.631925, -0.795481,1.929525,1.528968,
+ -0.795481,1.929525,1.528968, -0.825921,1.7748,1.587475, -0.569167,1.7748,1.694372,
+ -0.292719,1.7748,1.761022, -0.28193,1.929525,1.696119, -0.54819,1.929525,1.631925,
+ -0.54819,1.929525,1.631925, -0.569167,1.7748,1.694372, -0.292719,1.7748,1.761022,
+ 0,1.7748,1.784, 0,1.929525,1.71825, -0.28193,1.929525,1.696119,
+ -0.28193,1.929525,1.696119, -0.292719,1.7748,1.761022, 0,1.7748,1.784,
+ -1.820003,1.621875,0.302523, -1.761022,1.7748,0.292719, -1.784,1.7748,0,
+ -1.784,1.7748,0, -1.84375,1.621875,0, -1.820003,1.621875,0.302523,
+ -1.75112,1.621875,0.58823, -1.694372,1.7748,0.569167, -1.761022,1.7748,0.292719,
+ -1.761022,1.7748,0.292719, -1.820003,1.621875,0.302523, -1.75112,1.621875,0.58823,
+ -1.640643,1.621875,0.853583, -1.587475,1.7748,0.825921, -1.694372,1.7748,0.569167,
+ -1.694372,1.7748,0.569167, -1.75112,1.621875,0.58823, -1.640643,1.621875,0.853583,
+ -1.49211,1.621875,1.09504, -1.443756,1.7748,1.059553, -1.587475,1.7748,0.825921,
+ -1.587475,1.7748,0.825921, -1.640643,1.621875,0.853583, -1.49211,1.621875,1.09504,
+ -1.309063,1.621875,1.309063, -1.26664,1.7748,1.26664, -1.443756,1.7748,1.059553,
+ -1.443756,1.7748,1.059553, -1.49211,1.621875,1.09504, -1.309063,1.621875,1.309063,
+ -1.09504,1.621875,1.49211, -1.059553,1.7748,1.443756, -1.26664,1.7748,1.26664,
+ -1.26664,1.7748,1.26664, -1.309063,1.621875,1.309063, -1.09504,1.621875,1.49211,
+ -0.853583,1.621875,1.640643, -0.825921,1.7748,1.587475, -1.059553,1.7748,1.443756,
+ -1.059553,1.7748,1.443756, -1.09504,1.621875,1.49211, -0.853583,1.621875,1.640643,
+ -0.58823,1.621875,1.75112, -0.569167,1.7748,1.694372, -0.825921,1.7748,1.587475,
+ -0.825921,1.7748,1.587475, -0.853583,1.621875,1.640643, -0.58823,1.621875,1.75112,
+ -0.302522,1.621875,1.820003, -0.292719,1.7748,1.761022, -0.569167,1.7748,1.694372,
+ -0.569167,1.7748,1.694372, -0.58823,1.621875,1.75112, -0.302522,1.621875,1.820003,
+ 0,1.621875,1.84375, 0,1.7748,1.784, -0.292719,1.7748,1.761022,
+ -0.292719,1.7748,1.761022, -0.302522,1.621875,1.820003, 0,1.621875,1.84375,
+ -1.87158,1.4712,0.311096, -1.820003,1.621875,0.302523, -1.84375,1.621875,0,
+ -1.84375,1.621875,0, -1.896,1.4712,0, -1.87158,1.4712,0.311096,
+ -1.800745,1.4712,0.6049, -1.75112,1.621875,0.58823, -1.820003,1.621875,0.302523,
+ -1.820003,1.621875,0.302523, -1.87158,1.4712,0.311096, -1.800745,1.4712,0.6049,
+ -1.687137,1.4712,0.877772, -1.640643,1.621875,0.853583, -1.75112,1.621875,0.58823,
+ -1.75112,1.621875,0.58823, -1.800745,1.4712,0.6049, -1.687137,1.4712,0.877772,
+ -1.534395,1.4712,1.126072, -1.49211,1.621875,1.09504, -1.640643,1.621875,0.853583,
+ -1.640643,1.621875,0.853583, -1.687137,1.4712,0.877772, -1.534395,1.4712,1.126072,
+ -1.34616,1.4712,1.34616, -1.309063,1.621875,1.309063, -1.49211,1.621875,1.09504,
+ -1.49211,1.621875,1.09504, -1.534395,1.4712,1.126072, -1.34616,1.4712,1.34616,
+ -1.126072,1.4712,1.534395, -1.09504,1.621875,1.49211, -1.309063,1.621875,1.309063,
+ -1.309063,1.621875,1.309063, -1.34616,1.4712,1.34616, -1.126072,1.4712,1.534395,
+ -0.877772,1.4712,1.687137, -0.853583,1.621875,1.640643, -1.09504,1.621875,1.49211,
+ -1.09504,1.621875,1.49211, -1.126072,1.4712,1.534395, -0.877772,1.4712,1.687137,
+ -0.6049,1.4712,1.800745, -0.58823,1.621875,1.75112, -0.853583,1.621875,1.640643,
+ -0.853583,1.621875,1.640643, -0.877772,1.4712,1.687137, -0.6049,1.4712,1.800745,
+ -0.311096,1.4712,1.87158, -0.302522,1.621875,1.820003, -0.58823,1.621875,1.75112,
+ -0.58823,1.621875,1.75112, -0.6049,1.4712,1.800745, -0.311096,1.4712,1.87158,
+ 0,1.4712,1.896, 0,1.621875,1.84375, -0.302522,1.621875,1.820003,
+ -0.302522,1.621875,1.820003, -0.311096,1.4712,1.87158, 0,1.4712,1.896,
+ -1.914272,1.323225,0.318192, -1.87158,1.4712,0.311096, -1.896,1.4712,0,
+ -1.896,1.4712,0, -1.93925,1.323225,0, -1.914272,1.323225,0.318192,
+ -1.841822,1.323225,0.618698, -1.800745,1.4712,0.6049, -1.87158,1.4712,0.311096,
+ -1.87158,1.4712,0.311096, -1.914272,1.323225,0.318192, -1.841822,1.323225,0.618698,
+ -1.725622,1.323225,0.897795, -1.687137,1.4712,0.877772, -1.800745,1.4712,0.6049,
+ -1.800745,1.4712,0.6049, -1.841822,1.323225,0.618698, -1.725622,1.323225,0.897795,
+ -1.569396,1.323225,1.151759, -1.534395,1.4712,1.126072, -1.687137,1.4712,0.877772,
+ -1.687137,1.4712,0.877772, -1.725622,1.323225,0.897795, -1.569396,1.323225,1.151759,
+ -1.376867,1.323225,1.376868, -1.34616,1.4712,1.34616, -1.534395,1.4712,1.126072,
+ -1.534395,1.4712,1.126072, -1.569396,1.323225,1.151759, -1.376867,1.323225,1.376868,
+ -1.151759,1.323225,1.569396, -1.126072,1.4712,1.534395, -1.34616,1.4712,1.34616,
+ -1.34616,1.4712,1.34616, -1.376867,1.323225,1.376868, -1.151759,1.323225,1.569396,
+ -0.897795,1.323225,1.725622, -0.877772,1.4712,1.687137, -1.126072,1.4712,1.534395,
+ -1.126072,1.4712,1.534395, -1.151759,1.323225,1.569396, -0.897795,1.323225,1.725622,
+ -0.618698,1.323225,1.841822, -0.6049,1.4712,1.800745, -0.877772,1.4712,1.687137,
+ -0.877772,1.4712,1.687137, -0.897795,1.323225,1.725622, -0.618698,1.323225,1.841822,
+ -0.318192,1.323225,1.914272, -0.311096,1.4712,1.87158, -0.6049,1.4712,1.800745,
+ -0.6049,1.4712,1.800745, -0.618698,1.323225,1.841822, -0.318192,1.323225,1.914272,
+ 0,1.323225,1.93925, 0,1.4712,1.896, -0.311096,1.4712,1.87158,
+ -0.311096,1.4712,1.87158, -0.318192,1.323225,1.914272, 0,1.323225,1.93925,
+ -1.946601,1.1784,0.323566, -1.914272,1.323225,0.318192, -1.93925,1.323225,0,
+ -1.93925,1.323225,0, -1.972,1.1784,0, -1.946601,1.1784,0.323566,
+ -1.872927,1.1784,0.629147, -1.841822,1.323225,0.618698, -1.914272,1.323225,0.318192,
+ -1.914272,1.323225,0.318192, -1.946601,1.1784,0.323566, -1.872927,1.1784,0.629147,
+ -1.754764,1.1784,0.912957, -1.725622,1.323225,0.897795, -1.841822,1.323225,0.618698,
+ -1.841822,1.323225,0.618698, -1.872927,1.1784,0.629147, -1.754764,1.1784,0.912957,
+ -1.5959,1.1784,1.17121, -1.569396,1.323225,1.151759, -1.725622,1.323225,0.897795,
+ -1.725622,1.323225,0.897795, -1.754764,1.1784,0.912957, -1.5959,1.1784,1.17121,
+ -1.40012,1.1784,1.40012, -1.376867,1.323225,1.376868, -1.569396,1.323225,1.151759,
+ -1.569396,1.323225,1.151759, -1.5959,1.1784,1.17121, -1.40012,1.1784,1.40012,
+ -1.17121,1.1784,1.5959, -1.151759,1.323225,1.569396, -1.376867,1.323225,1.376868,
+ -1.376867,1.323225,1.376868, -1.40012,1.1784,1.40012, -1.17121,1.1784,1.5959,
+ -0.912957,1.1784,1.754764, -0.897795,1.323225,1.725622, -1.151759,1.323225,1.569396,
+ -1.151759,1.323225,1.569396, -1.17121,1.1784,1.5959, -0.912957,1.1784,1.754764,
+ -0.629147,1.1784,1.872927, -0.618698,1.323225,1.841822, -0.897795,1.323225,1.725622,
+ -0.897795,1.323225,1.725622, -0.912957,1.1784,1.754764, -0.629147,1.1784,1.872927,
+ -0.323566,1.1784,1.946601, -0.318192,1.323225,1.914272, -0.618698,1.323225,1.841822,
+ -0.618698,1.323225,1.841822, -0.629147,1.1784,1.872927, -0.323566,1.1784,1.946601,
+ 0,1.1784,1.972, 0,1.323225,1.93925, -0.318192,1.323225,1.914272,
+ -0.318192,1.323225,1.914272, -0.323566,1.1784,1.946601, 0,1.1784,1.972,
+ -1.967083,1.037175,0.32697, -1.946601,1.1784,0.323566, -1.972,1.1784,0,
+ -1.972,1.1784,0, -1.99275,1.037175,0, -1.967083,1.037175,0.32697,
+ -1.892634,1.037175,0.635767, -1.872927,1.1784,0.629147, -1.946601,1.1784,0.323566,
+ -1.946601,1.1784,0.323566, -1.967083,1.037175,0.32697, -1.892634,1.037175,0.635767,
+ -1.773229,1.037175,0.922564, -1.754764,1.1784,0.912957, -1.872927,1.1784,0.629147,
+ -1.872927,1.1784,0.629147, -1.892634,1.037175,0.635767, -1.773229,1.037175,0.922564,
+ -1.612693,1.037175,1.183534, -1.5959,1.1784,1.17121, -1.754764,1.1784,0.912957,
+ -1.754764,1.1784,0.912957, -1.773229,1.037175,0.922564, -1.612693,1.037175,1.183534,
+ -1.414853,1.037175,1.414853, -1.40012,1.1784,1.40012, -1.5959,1.1784,1.17121,
+ -1.5959,1.1784,1.17121, -1.612693,1.037175,1.183534, -1.414853,1.037175,1.414853,
+ -1.183534,1.037175,1.612693, -1.17121,1.1784,1.5959, -1.40012,1.1784,1.40012,
+ -1.40012,1.1784,1.40012, -1.414853,1.037175,1.414853, -1.183534,1.037175,1.612693,
+ -0.922564,1.037175,1.773229, -0.912957,1.1784,1.754764, -1.17121,1.1784,1.5959,
+ -1.17121,1.1784,1.5959, -1.183534,1.037175,1.612693, -0.922564,1.037175,1.773229,
+ -0.635767,1.037175,1.892634, -0.629147,1.1784,1.872927, -0.912957,1.1784,1.754764,
+ -0.912957,1.1784,1.754764, -0.922564,1.037175,1.773229, -0.635767,1.037175,1.892634,
+ -0.32697,1.037175,1.967083, -0.323566,1.1784,1.946601, -0.629147,1.1784,1.872927,
+ -0.629147,1.1784,1.872927, -0.635767,1.037175,1.892634, -0.32697,1.037175,1.967083,
+ 0,1.037175,1.99275, 0,1.1784,1.972, -0.323566,1.1784,1.946601,
+ -0.323566,1.1784,1.946601, -0.32697,1.037175,1.967083, 0,1.037175,1.99275,
+ -1.97424,0.9,0.32816, -1.967083,1.037175,0.32697, -1.99275,1.037175,0,
+ -1.99275,1.037175,0, -2,0.9,0, -1.97424,0.9,0.32816,
+ -1.89952,0.9,0.63808, -1.892634,1.037175,0.635767, -1.967083,1.037175,0.32697,
+ -1.967083,1.037175,0.32697, -1.97424,0.9,0.32816, -1.89952,0.9,0.63808,
+ -1.77968,0.9,0.92592, -1.773229,1.037175,0.922564, -1.892634,1.037175,0.635767,
+ -1.892634,1.037175,0.635767, -1.89952,0.9,0.63808, -1.77968,0.9,0.92592,
+ -1.61856,0.9,1.18784, -1.612693,1.037175,1.183534, -1.773229,1.037175,0.922564,
+ -1.773229,1.037175,0.922564, -1.77968,0.9,0.92592, -1.61856,0.9,1.18784,
+ -1.42,0.9,1.42, -1.414853,1.037175,1.414853, -1.612693,1.037175,1.183534,
+ -1.612693,1.037175,1.183534, -1.61856,0.9,1.18784, -1.42,0.9,1.42,
+ -1.18784,0.9,1.61856, -1.183534,1.037175,1.612693, -1.414853,1.037175,1.414853,
+ -1.414853,1.037175,1.414853, -1.42,0.9,1.42, -1.18784,0.9,1.61856,
+ -0.92592,0.9,1.77968, -0.922564,1.037175,1.773229, -1.183534,1.037175,1.612693,
+ -1.183534,1.037175,1.612693, -1.18784,0.9,1.61856, -0.92592,0.9,1.77968,
+ -0.63808,0.9,1.89952, -0.635767,1.037175,1.892634, -0.922564,1.037175,1.773229,
+ -0.922564,1.037175,1.773229, -0.92592,0.9,1.77968, -0.63808,0.9,1.89952,
+ -0.32816,0.9,1.97424, -0.32697,1.037175,1.967083, -0.635767,1.037175,1.892634,
+ -0.635767,1.037175,1.892634, -0.63808,0.9,1.89952, -0.32816,0.9,1.97424,
+ 0,0.9,2, 0,1.037175,1.99275, -0.32697,1.037175,1.967083,
+ -0.32697,1.037175,1.967083, -0.32816,0.9,1.97424, 0,0.9,2,
+ 0.258385,2.242575,1.554467, 0.24612,2.4,1.48068, 0,2.4,1.5,
+ 0,2.4,1.5, 0,2.242575,1.57475, 0.258385,2.242575,1.554467,
+ 0.502408,2.242575,1.495635, 0.47856,2.4,1.42464, 0.24612,2.4,1.48068,
+ 0.24612,2.4,1.48068, 0.258385,2.242575,1.554467, 0.502408,2.242575,1.495635,
+ 0.729046,2.242575,1.401276, 0.69444,2.4,1.33476, 0.47856,2.4,1.42464,
+ 0.47856,2.4,1.42464, 0.502408,2.242575,1.495635, 0.729046,2.242575,1.401276,
+ 0.935276,2.242575,1.274414, 0.89088,2.4,1.21392, 0.69444,2.4,1.33476,
+ 0.69444,2.4,1.33476, 0.729046,2.242575,1.401276, 0.935276,2.242575,1.274414,
+ 1.118073,2.242575,1.118073, 1.065,2.4,1.065, 0.89088,2.4,1.21392,
+ 0.89088,2.4,1.21392, 0.935276,2.242575,1.274414, 1.118073,2.242575,1.118073,
+ 1.274414,2.242575,0.935276, 1.21392,2.4,0.89088, 1.065,2.4,1.065,
+ 1.065,2.4,1.065, 1.118073,2.242575,1.118073, 1.274414,2.242575,0.935276,
+ 1.401276,2.242575,0.729046, 1.33476,2.4,0.69444, 1.21392,2.4,0.89088,
+ 1.21392,2.4,0.89088, 1.274414,2.242575,0.935276, 1.401276,2.242575,0.729046,
+ 1.495635,2.242575,0.502408, 1.42464,2.4,0.47856, 1.33476,2.4,0.69444,
+ 1.33476,2.4,0.69444, 1.401276,2.242575,0.729046, 1.495635,2.242575,0.502408,
+ 1.554467,2.242575,0.258385, 1.48068,2.4,0.24612, 1.42464,2.4,0.47856,
+ 1.42464,2.4,0.47856, 1.495635,2.242575,0.502408, 1.554467,2.242575,0.258385,
+ 1.57475,2.242575,0, 1.5,2.4,0, 1.48068,2.4,0.24612,
+ 1.48068,2.4,0.24612, 1.554467,2.242575,0.258385, 1.57475,2.242575,0,
+ 0.270404,2.0856,1.626774, 0.258385,2.242575,1.554467, 0,2.242575,1.57475,
+ 0,2.242575,1.57475, 0,2.0856,1.648, 0.270404,2.0856,1.626774,
+ 0.525778,2.0856,1.565204, 0.502408,2.242575,1.495635, 0.258385,2.242575,1.554467,
+ 0.258385,2.242575,1.554467, 0.270404,2.0856,1.626774, 0.525778,2.0856,1.565204,
+ 0.762958,2.0856,1.466456, 0.729046,2.242575,1.401276, 0.502408,2.242575,1.495635,
+ 0.502408,2.242575,1.495635, 0.525778,2.0856,1.565204, 0.762958,2.0856,1.466456,
+ 0.97878,2.0856,1.333693, 0.935276,2.242575,1.274414, 0.729046,2.242575,1.401276,
+ 0.729046,2.242575,1.401276, 0.762958,2.0856,1.466456, 0.97878,2.0856,1.333693,
+ 1.17008,2.0856,1.17008, 1.118073,2.242575,1.118073, 0.935276,2.242575,1.274414,
+ 0.935276,2.242575,1.274414, 0.97878,2.0856,1.333693, 1.17008,2.0856,1.17008,
+ 1.333693,2.0856,0.97878, 1.274414,2.242575,0.935276, 1.118073,2.242575,1.118073,
+ 1.118073,2.242575,1.118073, 1.17008,2.0856,1.17008, 1.333693,2.0856,0.97878,
+ 1.466456,2.0856,0.762958, 1.401276,2.242575,0.729046, 1.274414,2.242575,0.935276,
+ 1.274414,2.242575,0.935276, 1.333693,2.0856,0.97878, 1.466456,2.0856,0.762958,
+ 1.565204,2.0856,0.525778, 1.495635,2.242575,0.502408, 1.401276,2.242575,0.729046,
+ 1.401276,2.242575,0.729046, 1.466456,2.0856,0.762958, 1.565204,2.0856,0.525778,
+ 1.626774,2.0856,0.270404, 1.554467,2.242575,0.258385, 1.495635,2.242575,0.502408,
+ 1.495635,2.242575,0.502408, 1.565204,2.0856,0.525778, 1.626774,2.0856,0.270404,
+ 1.648,2.0856,0, 1.57475,2.242575,0, 1.554467,2.242575,0.258385,
+ 1.554467,2.242575,0.258385, 1.626774,2.0856,0.270404, 1.648,2.0856,0,
+ 0.28193,1.929525,1.696119, 0.270404,2.0856,1.626774, 0,2.0856,1.648,
+ 0,2.0856,1.648, 0,1.929525,1.71825, 0.28193,1.929525,1.696119,
+ 0.54819,1.929525,1.631925, 0.525778,2.0856,1.565204, 0.270404,2.0856,1.626774,
+ 0.270404,2.0856,1.626774, 0.28193,1.929525,1.696119, 0.54819,1.929525,1.631925,
+ 0.795481,1.929525,1.528968, 0.762958,2.0856,1.466456, 0.525778,2.0856,1.565204,
+ 0.525778,2.0856,1.565204, 0.54819,1.929525,1.631925, 0.795481,1.929525,1.528968,
+ 1.020503,1.929525,1.390545, 0.97878,2.0856,1.333693, 0.762958,2.0856,1.466456,
+ 0.762958,2.0856,1.466456, 0.795481,1.929525,1.528968, 1.020503,1.929525,1.390545,
+ 1.219958,1.929525,1.219958, 1.17008,2.0856,1.17008, 0.97878,2.0856,1.333693,
+ 0.97878,2.0856,1.333693, 1.020503,1.929525,1.390545, 1.219958,1.929525,1.219958,
+ 1.390545,1.929525,1.020503, 1.333693,2.0856,0.97878, 1.17008,2.0856,1.17008,
+ 1.17008,2.0856,1.17008, 1.219958,1.929525,1.219958, 1.390545,1.929525,1.020503,
+ 1.528968,1.929525,0.795481, 1.466456,2.0856,0.762958, 1.333693,2.0856,0.97878,
+ 1.333693,2.0856,0.97878, 1.390545,1.929525,1.020503, 1.528968,1.929525,0.795481,
+ 1.631925,1.929525,0.54819, 1.565204,2.0856,0.525778, 1.466456,2.0856,0.762958,
+ 1.466456,2.0856,0.762958, 1.528968,1.929525,0.795481, 1.631925,1.929525,0.54819,
+ 1.696119,1.929525,0.28193, 1.626774,2.0856,0.270404, 1.565204,2.0856,0.525778,
+ 1.565204,2.0856,0.525778, 1.631925,1.929525,0.54819, 1.696119,1.929525,0.28193,
+ 1.71825,1.929525,0, 1.648,2.0856,0, 1.626774,2.0856,0.270404,
+ 1.626774,2.0856,0.270404, 1.696119,1.929525,0.28193, 1.71825,1.929525,0,
+ 0.292719,1.7748,1.761022, 0.28193,1.929525,1.696119, 0,1.929525,1.71825,
+ 0,1.929525,1.71825, 0,1.7748,1.784, 0.292719,1.7748,1.761022,
+ 0.569167,1.7748,1.694372, 0.54819,1.929525,1.631925, 0.28193,1.929525,1.696119,
+ 0.28193,1.929525,1.696119, 0.292719,1.7748,1.761022, 0.569167,1.7748,1.694372,
+ 0.825921,1.7748,1.587475, 0.795481,1.929525,1.528968, 0.54819,1.929525,1.631925,
+ 0.54819,1.929525,1.631925, 0.569167,1.7748,1.694372, 0.825921,1.7748,1.587475,
+ 1.059553,1.7748,1.443756, 1.020503,1.929525,1.390545, 0.795481,1.929525,1.528968,
+ 0.795481,1.929525,1.528968, 0.825921,1.7748,1.587475, 1.059553,1.7748,1.443756,
+ 1.26664,1.7748,1.26664, 1.219958,1.929525,1.219958, 1.020503,1.929525,1.390545,
+ 1.020503,1.929525,1.390545, 1.059553,1.7748,1.443756, 1.26664,1.7748,1.26664,
+ 1.443756,1.7748,1.059553, 1.390545,1.929525,1.020503, 1.219958,1.929525,1.219958,
+ 1.219958,1.929525,1.219958, 1.26664,1.7748,1.26664, 1.443756,1.7748,1.059553,
+ 1.587475,1.7748,0.825921, 1.528968,1.929525,0.795481, 1.390545,1.929525,1.020503,
+ 1.390545,1.929525,1.020503, 1.443756,1.7748,1.059553, 1.587475,1.7748,0.825921,
+ 1.694372,1.7748,0.569167, 1.631925,1.929525,0.54819, 1.528968,1.929525,0.795481,
+ 1.528968,1.929525,0.795481, 1.587475,1.7748,0.825921, 1.694372,1.7748,0.569167,
+ 1.761022,1.7748,0.292719, 1.696119,1.929525,0.28193, 1.631925,1.929525,0.54819,
+ 1.631925,1.929525,0.54819, 1.694372,1.7748,0.569167, 1.761022,1.7748,0.292719,
+ 1.784,1.7748,0, 1.71825,1.929525,0, 1.696119,1.929525,0.28193,
+ 1.696119,1.929525,0.28193, 1.761022,1.7748,0.292719, 1.784,1.7748,0,
+ 0.302523,1.621875,1.820003, 0.292719,1.7748,1.761022, 0,1.7748,1.784,
+ 0,1.7748,1.784, 0,1.621875,1.84375, 0.302523,1.621875,1.820003,
+ 0.58823,1.621875,1.75112, 0.569167,1.7748,1.694372, 0.292719,1.7748,1.761022,
+ 0.292719,1.7748,1.761022, 0.302523,1.621875,1.820003, 0.58823,1.621875,1.75112,
+ 0.853583,1.621875,1.640643, 0.825921,1.7748,1.587475, 0.569167,1.7748,1.694372,
+ 0.569167,1.7748,1.694372, 0.58823,1.621875,1.75112, 0.853583,1.621875,1.640643,
+ 1.09504,1.621875,1.49211, 1.059553,1.7748,1.443756, 0.825921,1.7748,1.587475,
+ 0.825921,1.7748,1.587475, 0.853583,1.621875,1.640643, 1.09504,1.621875,1.49211,
+ 1.309063,1.621875,1.309063, 1.26664,1.7748,1.26664, 1.059553,1.7748,1.443756,
+ 1.059553,1.7748,1.443756, 1.09504,1.621875,1.49211, 1.309063,1.621875,1.309063,
+ 1.49211,1.621875,1.09504, 1.443756,1.7748,1.059553, 1.26664,1.7748,1.26664,
+ 1.26664,1.7748,1.26664, 1.309063,1.621875,1.309063, 1.49211,1.621875,1.09504,
+ 1.640643,1.621875,0.853583, 1.587475,1.7748,0.825921, 1.443756,1.7748,1.059553,
+ 1.443756,1.7748,1.059553, 1.49211,1.621875,1.09504, 1.640643,1.621875,0.853583,
+ 1.75112,1.621875,0.58823, 1.694372,1.7748,0.569167, 1.587475,1.7748,0.825921,
+ 1.587475,1.7748,0.825921, 1.640643,1.621875,0.853583, 1.75112,1.621875,0.58823,
+ 1.820003,1.621875,0.302522, 1.761022,1.7748,0.292719, 1.694372,1.7748,0.569167,
+ 1.694372,1.7748,0.569167, 1.75112,1.621875,0.58823, 1.820003,1.621875,0.302522,
+ 1.84375,1.621875,0, 1.784,1.7748,0, 1.761022,1.7748,0.292719,
+ 1.761022,1.7748,0.292719, 1.820003,1.621875,0.302522, 1.84375,1.621875,0,
+ 0.311096,1.4712,1.87158, 0.302523,1.621875,1.820003, 0,1.621875,1.84375,
+ 0,1.621875,1.84375, 0,1.4712,1.896, 0.311096,1.4712,1.87158,
+ 0.6049,1.4712,1.800745, 0.58823,1.621875,1.75112, 0.302523,1.621875,1.820003,
+ 0.302523,1.621875,1.820003, 0.311096,1.4712,1.87158, 0.6049,1.4712,1.800745,
+ 0.877772,1.4712,1.687137, 0.853583,1.621875,1.640643, 0.58823,1.621875,1.75112,
+ 0.58823,1.621875,1.75112, 0.6049,1.4712,1.800745, 0.877772,1.4712,1.687137,
+ 1.126072,1.4712,1.534395, 1.09504,1.621875,1.49211, 0.853583,1.621875,1.640643,
+ 0.853583,1.621875,1.640643, 0.877772,1.4712,1.687137, 1.126072,1.4712,1.534395,
+ 1.34616,1.4712,1.34616, 1.309063,1.621875,1.309063, 1.09504,1.621875,1.49211,
+ 1.09504,1.621875,1.49211, 1.126072,1.4712,1.534395, 1.34616,1.4712,1.34616,
+ 1.534395,1.4712,1.126072, 1.49211,1.621875,1.09504, 1.309063,1.621875,1.309063,
+ 1.309063,1.621875,1.309063, 1.34616,1.4712,1.34616, 1.534395,1.4712,1.126072,
+ 1.687137,1.4712,0.877772, 1.640643,1.621875,0.853583, 1.49211,1.621875,1.09504,
+ 1.49211,1.621875,1.09504, 1.534395,1.4712,1.126072, 1.687137,1.4712,0.877772,
+ 1.800745,1.4712,0.6049, 1.75112,1.621875,0.58823, 1.640643,1.621875,0.853583,
+ 1.640643,1.621875,0.853583, 1.687137,1.4712,0.877772, 1.800745,1.4712,0.6049,
+ 1.87158,1.4712,0.311096, 1.820003,1.621875,0.302522, 1.75112,1.621875,0.58823,
+ 1.75112,1.621875,0.58823, 1.800745,1.4712,0.6049, 1.87158,1.4712,0.311096,
+ 1.896,1.4712,0, 1.84375,1.621875,0, 1.820003,1.621875,0.302522,
+ 1.820003,1.621875,0.302522, 1.87158,1.4712,0.311096, 1.896,1.4712,0,
+ 0.318192,1.323225,1.914272, 0.311096,1.4712,1.87158, 0,1.4712,1.896,
+ 0,1.4712,1.896, 0,1.323225,1.93925, 0.318192,1.323225,1.914272,
+ 0.618698,1.323225,1.841822, 0.6049,1.4712,1.800745, 0.311096,1.4712,1.87158,
+ 0.311096,1.4712,1.87158, 0.318192,1.323225,1.914272, 0.618698,1.323225,1.841822,
+ 0.897795,1.323225,1.725622, 0.877772,1.4712,1.687137, 0.6049,1.4712,1.800745,
+ 0.6049,1.4712,1.800745, 0.618698,1.323225,1.841822, 0.897795,1.323225,1.725622,
+ 1.151759,1.323225,1.569396, 1.126072,1.4712,1.534395, 0.877772,1.4712,1.687137,
+ 0.877772,1.4712,1.687137, 0.897795,1.323225,1.725622, 1.151759,1.323225,1.569396,
+ 1.376868,1.323225,1.376867, 1.34616,1.4712,1.34616, 1.126072,1.4712,1.534395,
+ 1.126072,1.4712,1.534395, 1.151759,1.323225,1.569396, 1.376868,1.323225,1.376867,
+ 1.569396,1.323225,1.151759, 1.534395,1.4712,1.126072, 1.34616,1.4712,1.34616,
+ 1.34616,1.4712,1.34616, 1.376868,1.323225,1.376867, 1.569396,1.323225,1.151759,
+ 1.725622,1.323225,0.897795, 1.687137,1.4712,0.877772, 1.534395,1.4712,1.126072,
+ 1.534395,1.4712,1.126072, 1.569396,1.323225,1.151759, 1.725622,1.323225,0.897795,
+ 1.841822,1.323225,0.618698, 1.800745,1.4712,0.6049, 1.687137,1.4712,0.877772,
+ 1.687137,1.4712,0.877772, 1.725622,1.323225,0.897795, 1.841822,1.323225,0.618698,
+ 1.914272,1.323225,0.318192, 1.87158,1.4712,0.311096, 1.800745,1.4712,0.6049,
+ 1.800745,1.4712,0.6049, 1.841822,1.323225,0.618698, 1.914272,1.323225,0.318192,
+ 1.93925,1.323225,0, 1.896,1.4712,0, 1.87158,1.4712,0.311096,
+ 1.87158,1.4712,0.311096, 1.914272,1.323225,0.318192, 1.93925,1.323225,0,
+ 0.323566,1.1784,1.946601, 0.318192,1.323225,1.914272, 0,1.323225,1.93925,
+ 0,1.323225,1.93925, 0,1.1784,1.972, 0.323566,1.1784,1.946601,
+ 0.629147,1.1784,1.872927, 0.618698,1.323225,1.841822, 0.318192,1.323225,1.914272,
+ 0.318192,1.323225,1.914272, 0.323566,1.1784,1.946601, 0.629147,1.1784,1.872927,
+ 0.912957,1.1784,1.754764, 0.897795,1.323225,1.725622, 0.618698,1.323225,1.841822,
+ 0.618698,1.323225,1.841822, 0.629147,1.1784,1.872927, 0.912957,1.1784,1.754764,
+ 1.17121,1.1784,1.5959, 1.151759,1.323225,1.569396, 0.897795,1.323225,1.725622,
+ 0.897795,1.323225,1.725622, 0.912957,1.1784,1.754764, 1.17121,1.1784,1.5959,
+ 1.40012,1.1784,1.40012, 1.376868,1.323225,1.376867, 1.151759,1.323225,1.569396,
+ 1.151759,1.323225,1.569396, 1.17121,1.1784,1.5959, 1.40012,1.1784,1.40012,
+ 1.5959,1.1784,1.17121, 1.569396,1.323225,1.151759, 1.376868,1.323225,1.376867,
+ 1.376868,1.323225,1.376867, 1.40012,1.1784,1.40012, 1.5959,1.1784,1.17121,
+ 1.754764,1.1784,0.912957, 1.725622,1.323225,0.897795, 1.569396,1.323225,1.151759,
+ 1.569396,1.323225,1.151759, 1.5959,1.1784,1.17121, 1.754764,1.1784,0.912957,
+ 1.872927,1.1784,0.629147, 1.841822,1.323225,0.618698, 1.725622,1.323225,0.897795,
+ 1.725622,1.323225,0.897795, 1.754764,1.1784,0.912957, 1.872927,1.1784,0.629147,
+ 1.946601,1.1784,0.323566, 1.914272,1.323225,0.318192, 1.841822,1.323225,0.618698,
+ 1.841822,1.323225,0.618698, 1.872927,1.1784,0.629147, 1.946601,1.1784,0.323566,
+ 1.972,1.1784,0, 1.93925,1.323225,0, 1.914272,1.323225,0.318192,
+ 1.914272,1.323225,0.318192, 1.946601,1.1784,0.323566, 1.972,1.1784,0,
+ 0.32697,1.037175,1.967083, 0.323566,1.1784,1.946601, 0,1.1784,1.972,
+ 0,1.1784,1.972, 0,1.037175,1.99275, 0.32697,1.037175,1.967083,
+ 0.635767,1.037175,1.892634, 0.629147,1.1784,1.872927, 0.323566,1.1784,1.946601,
+ 0.323566,1.1784,1.946601, 0.32697,1.037175,1.967083, 0.635767,1.037175,1.892634,
+ 0.922564,1.037175,1.773229, 0.912957,1.1784,1.754764, 0.629147,1.1784,1.872927,
+ 0.629147,1.1784,1.872927, 0.635767,1.037175,1.892634, 0.922564,1.037175,1.773229,
+ 1.183534,1.037175,1.612693, 1.17121,1.1784,1.5959, 0.912957,1.1784,1.754764,
+ 0.912957,1.1784,1.754764, 0.922564,1.037175,1.773229, 1.183534,1.037175,1.612693,
+ 1.414853,1.037175,1.414853, 1.40012,1.1784,1.40012, 1.17121,1.1784,1.5959,
+ 1.17121,1.1784,1.5959, 1.183534,1.037175,1.612693, 1.414853,1.037175,1.414853,
+ 1.612693,1.037175,1.183534, 1.5959,1.1784,1.17121, 1.40012,1.1784,1.40012,
+ 1.40012,1.1784,1.40012, 1.414853,1.037175,1.414853, 1.612693,1.037175,1.183534,
+ 1.773229,1.037175,0.922564, 1.754764,1.1784,0.912957, 1.5959,1.1784,1.17121,
+ 1.5959,1.1784,1.17121, 1.612693,1.037175,1.183534, 1.773229,1.037175,0.922564,
+ 1.892634,1.037175,0.635767, 1.872927,1.1784,0.629147, 1.754764,1.1784,0.912957,
+ 1.754764,1.1784,0.912957, 1.773229,1.037175,0.922564, 1.892634,1.037175,0.635767,
+ 1.967083,1.037175,0.32697, 1.946601,1.1784,0.323566, 1.872927,1.1784,0.629147,
+ 1.872927,1.1784,0.629147, 1.892634,1.037175,0.635767, 1.967083,1.037175,0.32697,
+ 1.99275,1.037175,0, 1.972,1.1784,0, 1.946601,1.1784,0.323566,
+ 1.946601,1.1784,0.323566, 1.967083,1.037175,0.32697, 1.99275,1.037175,0,
+ 0.32816,0.9,1.97424, 0.32697,1.037175,1.967083, 0,1.037175,1.99275,
+ 0,1.037175,1.99275, 0,0.9,2, 0.32816,0.9,1.97424,
+ 0.63808,0.9,1.89952, 0.635767,1.037175,1.892634, 0.32697,1.037175,1.967083,
+ 0.32697,1.037175,1.967083, 0.32816,0.9,1.97424, 0.63808,0.9,1.89952,
+ 0.92592,0.9,1.77968, 0.922564,1.037175,1.773229, 0.635767,1.037175,1.892634,
+ 0.635767,1.037175,1.892634, 0.63808,0.9,1.89952, 0.92592,0.9,1.77968,
+ 1.18784,0.9,1.61856, 1.183534,1.037175,1.612693, 0.922564,1.037175,1.773229,
+ 0.922564,1.037175,1.773229, 0.92592,0.9,1.77968, 1.18784,0.9,1.61856,
+ 1.42,0.9,1.42, 1.414853,1.037175,1.414853, 1.183534,1.037175,1.612693,
+ 1.183534,1.037175,1.612693, 1.18784,0.9,1.61856, 1.42,0.9,1.42,
+ 1.61856,0.9,1.18784, 1.612693,1.037175,1.183534, 1.414853,1.037175,1.414853,
+ 1.414853,1.037175,1.414853, 1.42,0.9,1.42, 1.61856,0.9,1.18784,
+ 1.77968,0.9,0.92592, 1.773229,1.037175,0.922564, 1.612693,1.037175,1.183534,
+ 1.612693,1.037175,1.183534, 1.61856,0.9,1.18784, 1.77968,0.9,0.92592,
+ 1.89952,0.9,0.63808, 1.892634,1.037175,0.635767, 1.773229,1.037175,0.922564,
+ 1.773229,1.037175,0.922564, 1.77968,0.9,0.92592, 1.89952,0.9,0.63808,
+ 1.97424,0.9,0.32816, 1.967083,1.037175,0.32697, 1.892634,1.037175,0.635767,
+ 1.892634,1.037175,0.635767, 1.89952,0.9,0.63808, 1.97424,0.9,0.32816,
+ 2,0.9,0, 1.99275,1.037175,0, 1.967083,1.037175,0.32697,
+ 1.967083,1.037175,0.32697, 1.97424,0.9,0.32816, 2,0.9,0,
+ 1.96042,0.771675,-0.325863, 1.97424,0.9,-0.32816, 2,0.9,0,
+ 2,0.9,0, 1.986,0.771675,0, 1.96042,0.771675,-0.325863,
+ 1.886223,0.771675,-0.633613, 1.89952,0.9,-0.63808, 1.97424,0.9,-0.32816,
+ 1.97424,0.9,-0.32816, 1.96042,0.771675,-0.325863, 1.886223,0.771675,-0.633613,
+ 1.767222,0.771675,-0.919439, 1.77968,0.9,-0.92592, 1.89952,0.9,-0.63808,
+ 1.89952,0.9,-0.63808, 1.886223,0.771675,-0.633613, 1.767222,0.771675,-0.919439,
+ 1.60723,0.771675,-1.179525, 1.61856,0.9,-1.18784, 1.77968,0.9,-0.92592,
+ 1.77968,0.9,-0.92592, 1.767222,0.771675,-0.919439, 1.60723,0.771675,-1.179525,
+ 1.41006,0.771675,-1.41006, 1.42,0.9,-1.42, 1.61856,0.9,-1.18784,
+ 1.61856,0.9,-1.18784, 1.60723,0.771675,-1.179525, 1.41006,0.771675,-1.41006,
+ 1.179525,0.771675,-1.60723, 1.18784,0.9,-1.61856, 1.42,0.9,-1.42,
+ 1.42,0.9,-1.42, 1.41006,0.771675,-1.41006, 1.179525,0.771675,-1.60723,
+ 0.919439,0.771675,-1.767222, 0.92592,0.9,-1.77968, 1.18784,0.9,-1.61856,
+ 1.18784,0.9,-1.61856, 1.179525,0.771675,-1.60723, 0.919439,0.771675,-1.767222,
+ 0.633613,0.771675,-1.886223, 0.63808,0.9,-1.89952, 0.92592,0.9,-1.77968,
+ 0.92592,0.9,-1.77968, 0.919439,0.771675,-1.767222, 0.633613,0.771675,-1.886223,
+ 0.325863,0.771675,-1.96042, 0.32816,0.9,-1.97424, 0.63808,0.9,-1.89952,
+ 0.63808,0.9,-1.89952, 0.633613,0.771675,-1.886223, 0.325863,0.771675,-1.96042,
+ 0,0.771675,-1.986, 0,0.9,-2, 0.32816,0.9,-1.97424,
+ 0.32816,0.9,-1.97424, 0.325863,0.771675,-1.96042, 0,0.771675,-1.986,
+ 1.92291,0.6564,-0.319628, 1.96042,0.771675,-0.325863, 1.986,0.771675,0,
+ 1.986,0.771675,0, 1.948,0.6564,0, 1.92291,0.6564,-0.319628,
+ 1.850132,0.6564,-0.62149, 1.886223,0.771675,-0.633613, 1.96042,0.771675,-0.325863,
+ 1.96042,0.771675,-0.325863, 1.92291,0.6564,-0.319628, 1.850132,0.6564,-0.62149,
+ 1.733408,0.6564,-0.901846, 1.767222,0.771675,-0.919439, 1.886223,0.771675,-0.633613,
+ 1.886223,0.771675,-0.633613, 1.850132,0.6564,-0.62149, 1.733408,0.6564,-0.901846,
+ 1.576477,0.6564,-1.156956, 1.60723,0.771675,-1.179525, 1.767222,0.771675,-0.919439,
+ 1.767222,0.771675,-0.919439, 1.733408,0.6564,-0.901846, 1.576477,0.6564,-1.156956,
+ 1.38308,0.6564,-1.38308, 1.41006,0.771675,-1.41006, 1.60723,0.771675,-1.179525,
+ 1.60723,0.771675,-1.179525, 1.576477,0.6564,-1.156956, 1.38308,0.6564,-1.38308,
+ 1.156956,0.6564,-1.576477, 1.179525,0.771675,-1.60723, 1.41006,0.771675,-1.41006,
+ 1.41006,0.771675,-1.41006, 1.38308,0.6564,-1.38308, 1.156956,0.6564,-1.576477,
+ 0.901846,0.6564,-1.733408, 0.919439,0.771675,-1.767222, 1.179525,0.771675,-1.60723,
+ 1.179525,0.771675,-1.60723, 1.156956,0.6564,-1.576477, 0.901846,0.6564,-1.733408,
+ 0.62149,0.6564,-1.850132, 0.633613,0.771675,-1.886223, 0.919439,0.771675,-1.767222,
+ 0.919439,0.771675,-1.767222, 0.901846,0.6564,-1.733408, 0.62149,0.6564,-1.850132,
+ 0.319628,0.6564,-1.92291, 0.325863,0.771675,-1.96042, 0.633613,0.771675,-1.886223,
+ 0.633613,0.771675,-1.886223, 0.62149,0.6564,-1.850132, 0.319628,0.6564,-1.92291,
+ 0,0.6564,-1.948, 0,0.771675,-1.986, 0.325863,0.771675,-1.96042,
+ 0.325863,0.771675,-1.96042, 0.319628,0.6564,-1.92291, 0,0.6564,-1.948,
+ 1.867631,0.553725,-0.310439, 1.92291,0.6564,-0.319628, 1.948,0.6564,0,
+ 1.948,0.6564,0, 1.892,0.553725,0, 1.867631,0.553725,-0.310439,
+ 1.796946,0.553725,-0.603624, 1.850132,0.6564,-0.62149, 1.92291,0.6564,-0.319628,
+ 1.92291,0.6564,-0.319628, 1.867631,0.553725,-0.310439, 1.796946,0.553725,-0.603624,
+ 1.683577,0.553725,-0.87592, 1.733408,0.6564,-0.901846, 1.850132,0.6564,-0.62149,
+ 1.850132,0.6564,-0.62149, 1.796946,0.553725,-0.603624, 1.683577,0.553725,-0.87592,
+ 1.531158,0.553725,-1.123697, 1.576477,0.6564,-1.156956, 1.733408,0.6564,-0.901846,
+ 1.733408,0.6564,-0.901846, 1.683577,0.553725,-0.87592, 1.531158,0.553725,-1.123697,
+ 1.34332,0.553725,-1.34332, 1.38308,0.6564,-1.38308, 1.576477,0.6564,-1.156956,
+ 1.576477,0.6564,-1.156956, 1.531158,0.553725,-1.123697, 1.34332,0.553725,-1.34332,
+ 1.123697,0.553725,-1.531158, 1.156956,0.6564,-1.576477, 1.38308,0.6564,-1.38308,
+ 1.38308,0.6564,-1.38308, 1.34332,0.553725,-1.34332, 1.123697,0.553725,-1.531158,
+ 0.87592,0.553725,-1.683577, 0.901846,0.6564,-1.733408, 1.156956,0.6564,-1.576477,
+ 1.156956,0.6564,-1.576477, 1.123697,0.553725,-1.531158, 0.87592,0.553725,-1.683577,
+ 0.603624,0.553725,-1.796946, 0.62149,0.6564,-1.850132, 0.901846,0.6564,-1.733408,
+ 0.901846,0.6564,-1.733408, 0.87592,0.553725,-1.683577, 0.603624,0.553725,-1.796946,
+ 0.310439,0.553725,-1.867631, 0.319628,0.6564,-1.92291, 0.62149,0.6564,-1.850132,
+ 0.62149,0.6564,-1.850132, 0.603624,0.553725,-1.796946, 0.310439,0.553725,-1.867631,
+ 0,0.553725,-1.892, 0,0.6564,-1.948, 0.319628,0.6564,-1.92291,
+ 0.319628,0.6564,-1.92291, 0.310439,0.553725,-1.867631, 0,0.553725,-1.892,
+ 1.800507,0.4632,-0.299282, 1.867631,0.553725,-0.310439, 1.892,0.553725,0,
+ 1.892,0.553725,0, 1.824,0.4632,0, 1.800507,0.4632,-0.299282,
+ 1.732362,0.4632,-0.581929, 1.796946,0.553725,-0.603624, 1.867631,0.553725,-0.310439,
+ 1.867631,0.553725,-0.310439, 1.800507,0.4632,-0.299282, 1.732362,0.4632,-0.581929,
+ 1.623068,0.4632,-0.844439, 1.683577,0.553725,-0.87592, 1.796946,0.553725,-0.603624,
+ 1.796946,0.553725,-0.603624, 1.732362,0.4632,-0.581929, 1.623068,0.4632,-0.844439,
+ 1.476127,0.4632,-1.08331, 1.531158,0.553725,-1.123697, 1.683577,0.553725,-0.87592,
+ 1.683577,0.553725,-0.87592, 1.623068,0.4632,-0.844439, 1.476127,0.4632,-1.08331,
+ 1.29504,0.4632,-1.29504, 1.34332,0.553725,-1.34332, 1.531158,0.553725,-1.123697,
+ 1.531158,0.553725,-1.123697, 1.476127,0.4632,-1.08331, 1.29504,0.4632,-1.29504,
+ 1.08331,0.4632,-1.476127, 1.123697,0.553725,-1.531158, 1.34332,0.553725,-1.34332,
+ 1.34332,0.553725,-1.34332, 1.29504,0.4632,-1.29504, 1.08331,0.4632,-1.476127,
+ 0.844439,0.4632,-1.623068, 0.87592,0.553725,-1.683577, 1.123697,0.553725,-1.531158,
+ 1.123697,0.553725,-1.531158, 1.08331,0.4632,-1.476127, 0.844439,0.4632,-1.623068,
+ 0.581929,0.4632,-1.732362, 0.603624,0.553725,-1.796946, 0.87592,0.553725,-1.683577,
+ 0.87592,0.553725,-1.683577, 0.844439,0.4632,-1.623068, 0.581929,0.4632,-1.732362,
+ 0.299282,0.4632,-1.800507, 0.310439,0.553725,-1.867631, 0.603624,0.553725,-1.796946,
+ 0.603624,0.553725,-1.796946, 0.581929,0.4632,-1.732362, 0.299282,0.4632,-1.800507,
+ 0,0.4632,-1.824, 0,0.553725,-1.892, 0.310439,0.553725,-1.867631,
+ 0.310439,0.553725,-1.867631, 0.299282,0.4632,-1.800507, 0,0.4632,-1.824,
+ 1.72746,0.384375,-0.28714, 1.800507,0.4632,-0.299282, 1.824,0.4632,0,
+ 1.824,0.4632,0, 1.75,0.384375,0, 1.72746,0.384375,-0.28714,
+ 1.66208,0.384375,-0.55832, 1.732362,0.4632,-0.581929, 1.800507,0.4632,-0.299282,
+ 1.800507,0.4632,-0.299282, 1.72746,0.384375,-0.28714, 1.66208,0.384375,-0.55832,
+ 1.55722,0.384375,-0.81018, 1.623068,0.4632,-0.844439, 1.732362,0.4632,-0.581929,
+ 1.732362,0.4632,-0.581929, 1.66208,0.384375,-0.55832, 1.55722,0.384375,-0.81018,
+ 1.41624,0.384375,-1.03936, 1.476127,0.4632,-1.08331, 1.623068,0.4632,-0.844439,
+ 1.623068,0.4632,-0.844439, 1.55722,0.384375,-0.81018, 1.41624,0.384375,-1.03936,
+ 1.2425,0.384375,-1.2425, 1.29504,0.4632,-1.29504, 1.476127,0.4632,-1.08331,
+ 1.476127,0.4632,-1.08331, 1.41624,0.384375,-1.03936, 1.2425,0.384375,-1.2425,
+ 1.03936,0.384375,-1.41624, 1.08331,0.4632,-1.476127, 1.29504,0.4632,-1.29504,
+ 1.29504,0.4632,-1.29504, 1.2425,0.384375,-1.2425, 1.03936,0.384375,-1.41624,
+ 0.81018,0.384375,-1.55722, 0.844439,0.4632,-1.623068, 1.08331,0.4632,-1.476127,
+ 1.08331,0.4632,-1.476127, 1.03936,0.384375,-1.41624, 0.81018,0.384375,-1.55722,
+ 0.55832,0.384375,-1.66208, 0.581929,0.4632,-1.732362, 0.844439,0.4632,-1.623068,
+ 0.844439,0.4632,-1.623068, 0.81018,0.384375,-1.55722, 0.55832,0.384375,-1.66208,
+ 0.28714,0.384375,-1.72746, 0.299282,0.4632,-1.800507, 0.581929,0.4632,-1.732362,
+ 0.581929,0.4632,-1.732362, 0.55832,0.384375,-1.66208, 0.28714,0.384375,-1.72746,
+ 0,0.384375,-1.75, 0,0.4632,-1.824, 0.299282,0.4632,-1.800507,
+ 0.299282,0.4632,-1.800507, 0.28714,0.384375,-1.72746, 0,0.384375,-1.75,
+ 1.654413,0.3168,-0.274998, 1.72746,0.384375,-0.28714, 1.75,0.384375,0,
+ 1.75,0.384375,0, 1.676,0.3168,0, 1.654413,0.3168,-0.274998,
+ 1.591798,0.3168,-0.534711, 1.66208,0.384375,-0.55832, 1.72746,0.384375,-0.28714,
+ 1.72746,0.384375,-0.28714, 1.654413,0.3168,-0.274998, 1.591798,0.3168,-0.534711,
+ 1.491372,0.3168,-0.775921, 1.55722,0.384375,-0.81018, 1.66208,0.384375,-0.55832,
+ 1.66208,0.384375,-0.55832, 1.591798,0.3168,-0.534711, 1.491372,0.3168,-0.775921,
+ 1.356353,0.3168,-0.99541, 1.41624,0.384375,-1.03936, 1.55722,0.384375,-0.81018,
+ 1.55722,0.384375,-0.81018, 1.491372,0.3168,-0.775921, 1.356353,0.3168,-0.99541,
+ 1.18996,0.3168,-1.18996, 1.2425,0.384375,-1.2425, 1.41624,0.384375,-1.03936,
+ 1.41624,0.384375,-1.03936, 1.356353,0.3168,-0.99541, 1.18996,0.3168,-1.18996,
+ 0.99541,0.3168,-1.356353, 1.03936,0.384375,-1.41624, 1.2425,0.384375,-1.2425,
+ 1.2425,0.384375,-1.2425, 1.18996,0.3168,-1.18996, 0.99541,0.3168,-1.356353,
+ 0.775921,0.3168,-1.491372, 0.81018,0.384375,-1.55722, 1.03936,0.384375,-1.41624,
+ 1.03936,0.384375,-1.41624, 0.99541,0.3168,-1.356353, 0.775921,0.3168,-1.491372,
+ 0.534711,0.3168,-1.591798, 0.55832,0.384375,-1.66208, 0.81018,0.384375,-1.55722,
+ 0.81018,0.384375,-1.55722, 0.775921,0.3168,-1.491372, 0.534711,0.3168,-1.591798,
+ 0.274998,0.3168,-1.654413, 0.28714,0.384375,-1.72746, 0.55832,0.384375,-1.66208,
+ 0.55832,0.384375,-1.66208, 0.534711,0.3168,-1.591798, 0.274998,0.3168,-1.654413,
+ 0,0.3168,-1.676, 0,0.384375,-1.75, 0.28714,0.384375,-1.72746,
+ 0.28714,0.384375,-1.72746, 0.274998,0.3168,-1.654413, 0,0.3168,-1.676,
+ 1.587289,0.260025,-0.263841, 1.654413,0.3168,-0.274998, 1.676,0.3168,0,
+ 1.676,0.3168,0, 1.608,0.260025,0, 1.587289,0.260025,-0.263841,
+ 1.527214,0.260025,-0.513016, 1.591798,0.3168,-0.534711, 1.654413,0.3168,-0.274998,
+ 1.654413,0.3168,-0.274998, 1.587289,0.260025,-0.263841, 1.527214,0.260025,-0.513016,
+ 1.430863,0.260025,-0.74444, 1.491372,0.3168,-0.775921, 1.591798,0.3168,-0.534711,
+ 1.591798,0.3168,-0.534711, 1.527214,0.260025,-0.513016, 1.430863,0.260025,-0.74444,
+ 1.301322,0.260025,-0.955023, 1.356353,0.3168,-0.99541, 1.491372,0.3168,-0.775921,
+ 1.491372,0.3168,-0.775921, 1.430863,0.260025,-0.74444, 1.301322,0.260025,-0.955023,
+ 1.14168,0.260025,-1.14168, 1.18996,0.3168,-1.18996, 1.356353,0.3168,-0.99541,
+ 1.356353,0.3168,-0.99541, 1.301322,0.260025,-0.955023, 1.14168,0.260025,-1.14168,
+ 0.955023,0.260025,-1.301322, 0.99541,0.3168,-1.356353, 1.18996,0.3168,-1.18996,
+ 1.18996,0.3168,-1.18996, 1.14168,0.260025,-1.14168, 0.955023,0.260025,-1.301322,
+ 0.74444,0.260025,-1.430863, 0.775921,0.3168,-1.491372, 0.99541,0.3168,-1.356353,
+ 0.99541,0.3168,-1.356353, 0.955023,0.260025,-1.301322, 0.74444,0.260025,-1.430863,
+ 0.513016,0.260025,-1.527214, 0.534711,0.3168,-1.591798, 0.775921,0.3168,-1.491372,
+ 0.775921,0.3168,-1.491372, 0.74444,0.260025,-1.430863, 0.513016,0.260025,-1.527214,
+ 0.263841,0.260025,-1.587289, 0.274998,0.3168,-1.654413, 0.534711,0.3168,-1.591798,
+ 0.534711,0.3168,-1.591798, 0.513016,0.260025,-1.527214, 0.263841,0.260025,-1.587289,
+ 0,0.260025,-1.608, 0,0.3168,-1.676, 0.274998,0.3168,-1.654413,
+ 0.274998,0.3168,-1.654413, 0.263841,0.260025,-1.587289, 0,0.260025,-1.608,
+ 1.53201,0.2136,-0.254652, 1.587289,0.260025,-0.263841, 1.608,0.260025,0,
+ 1.608,0.260025,0, 1.552,0.2136,0, 1.53201,0.2136,-0.254652,
+ 1.474028,0.2136,-0.49515, 1.527214,0.260025,-0.513016, 1.587289,0.260025,-0.263841,
+ 1.587289,0.260025,-0.263841, 1.53201,0.2136,-0.254652, 1.474028,0.2136,-0.49515,
+ 1.381032,0.2136,-0.718514, 1.430863,0.260025,-0.74444, 1.527214,0.260025,-0.513016,
+ 1.527214,0.260025,-0.513016, 1.474028,0.2136,-0.49515, 1.381032,0.2136,-0.718514,
+ 1.256003,0.2136,-0.921764, 1.301322,0.260025,-0.955023, 1.430863,0.260025,-0.74444,
+ 1.430863,0.260025,-0.74444, 1.381032,0.2136,-0.718514, 1.256003,0.2136,-0.921764,
+ 1.10192,0.2136,-1.10192, 1.14168,0.260025,-1.14168, 1.301322,0.260025,-0.955023,
+ 1.301322,0.260025,-0.955023, 1.256003,0.2136,-0.921764, 1.10192,0.2136,-1.10192,
+ 0.921764,0.2136,-1.256003, 0.955023,0.260025,-1.301322, 1.14168,0.260025,-1.14168,
+ 1.14168,0.260025,-1.14168, 1.10192,0.2136,-1.10192, 0.921764,0.2136,-1.256003,
+ 0.718514,0.2136,-1.381032, 0.74444,0.260025,-1.430863, 0.955023,0.260025,-1.301322,
+ 0.955023,0.260025,-1.301322, 0.921764,0.2136,-1.256003, 0.718514,0.2136,-1.381032,
+ 0.49515,0.2136,-1.474028, 0.513016,0.260025,-1.527214, 0.74444,0.260025,-1.430863,
+ 0.74444,0.260025,-1.430863, 0.718514,0.2136,-1.381032, 0.49515,0.2136,-1.474028,
+ 0.254652,0.2136,-1.53201, 0.263841,0.260025,-1.587289, 0.513016,0.260025,-1.527214,
+ 0.513016,0.260025,-1.527214, 0.49515,0.2136,-1.474028, 0.254652,0.2136,-1.53201,
+ 0,0.2136,-1.552, 0,0.260025,-1.608, 0.263841,0.260025,-1.587289,
+ 0.263841,0.260025,-1.587289, 0.254652,0.2136,-1.53201, 0,0.2136,-1.552,
+ 1.4945,0.177075,-0.248417, 1.53201,0.2136,-0.254652, 1.552,0.2136,0,
+ 1.552,0.2136,0, 1.514,0.177075,0, 1.4945,0.177075,-0.248417,
+ 1.437937,0.177075,-0.483027, 1.474028,0.2136,-0.49515, 1.53201,0.2136,-0.254652,
+ 1.53201,0.2136,-0.254652, 1.4945,0.177075,-0.248417, 1.437937,0.177075,-0.483027,
+ 1.347218,0.177075,-0.700921, 1.381032,0.2136,-0.718514, 1.474028,0.2136,-0.49515,
+ 1.474028,0.2136,-0.49515, 1.437937,0.177075,-0.483027, 1.347218,0.177075,-0.700921,
+ 1.22525,0.177075,-0.899195, 1.256003,0.2136,-0.921764, 1.381032,0.2136,-0.718514,
+ 1.381032,0.2136,-0.718514, 1.347218,0.177075,-0.700921, 1.22525,0.177075,-0.899195,
+ 1.07494,0.177075,-1.07494, 1.10192,0.2136,-1.10192, 1.256003,0.2136,-0.921764,
+ 1.256003,0.2136,-0.921764, 1.22525,0.177075,-0.899195, 1.07494,0.177075,-1.07494,
+ 0.899195,0.177075,-1.22525, 0.921764,0.2136,-1.256003, 1.10192,0.2136,-1.10192,
+ 1.10192,0.2136,-1.10192, 1.07494,0.177075,-1.07494, 0.899195,0.177075,-1.22525,
+ 0.700921,0.177075,-1.347218, 0.718514,0.2136,-1.381032, 0.921764,0.2136,-1.256003,
+ 0.921764,0.2136,-1.256003, 0.899195,0.177075,-1.22525, 0.700921,0.177075,-1.347218,
+ 0.483027,0.177075,-1.437937, 0.49515,0.2136,-1.474028, 0.718514,0.2136,-1.381032,
+ 0.718514,0.2136,-1.381032, 0.700921,0.177075,-1.347218, 0.483027,0.177075,-1.437937,
+ 0.248417,0.177075,-1.4945, 0.254652,0.2136,-1.53201, 0.49515,0.2136,-1.474028,
+ 0.49515,0.2136,-1.474028, 0.483027,0.177075,-1.437937, 0.248417,0.177075,-1.4945,
+ 0,0.177075,-1.514, 0,0.2136,-1.552, 0.254652,0.2136,-1.53201,
+ 0.254652,0.2136,-1.53201, 0.248417,0.177075,-1.4945, 0,0.177075,-1.514,
+ 1.48068,0.15,-0.24612, 1.4945,0.177075,-0.248417, 1.514,0.177075,0,
+ 1.514,0.177075,0, 1.5,0.15,0, 1.48068,0.15,-0.24612,
+ 1.42464,0.15,-0.47856, 1.437937,0.177075,-0.483027, 1.4945,0.177075,-0.248417,
+ 1.4945,0.177075,-0.248417, 1.48068,0.15,-0.24612, 1.42464,0.15,-0.47856,
+ 1.33476,0.15,-0.69444, 1.347218,0.177075,-0.700921, 1.437937,0.177075,-0.483027,
+ 1.437937,0.177075,-0.483027, 1.42464,0.15,-0.47856, 1.33476,0.15,-0.69444,
+ 1.21392,0.15,-0.89088, 1.22525,0.177075,-0.899195, 1.347218,0.177075,-0.700921,
+ 1.347218,0.177075,-0.700921, 1.33476,0.15,-0.69444, 1.21392,0.15,-0.89088,
+ 1.065,0.15,-1.065, 1.07494,0.177075,-1.07494, 1.22525,0.177075,-0.899195,
+ 1.22525,0.177075,-0.899195, 1.21392,0.15,-0.89088, 1.065,0.15,-1.065,
+ 0.89088,0.15,-1.21392, 0.899195,0.177075,-1.22525, 1.07494,0.177075,-1.07494,
+ 1.07494,0.177075,-1.07494, 1.065,0.15,-1.065, 0.89088,0.15,-1.21392,
+ 0.69444,0.15,-1.33476, 0.700921,0.177075,-1.347218, 0.899195,0.177075,-1.22525,
+ 0.899195,0.177075,-1.22525, 0.89088,0.15,-1.21392, 0.69444,0.15,-1.33476,
+ 0.47856,0.15,-1.42464, 0.483027,0.177075,-1.437937, 0.700921,0.177075,-1.347218,
+ 0.700921,0.177075,-1.347218, 0.69444,0.15,-1.33476, 0.47856,0.15,-1.42464,
+ 0.24612,0.15,-1.48068, 0.248417,0.177075,-1.4945, 0.483027,0.177075,-1.437937,
+ 0.483027,0.177075,-1.437937, 0.47856,0.15,-1.42464, 0.24612,0.15,-1.48068,
+ 0,0.15,-1.5, 0,0.177075,-1.514, 0.248417,0.177075,-1.4945,
+ 0.248417,0.177075,-1.4945, 0.24612,0.15,-1.48068, 0,0.15,-1.5,
+ -0.325863,0.771675,-1.96042, -0.32816,0.9,-1.97424, 0,0.9,-2,
+ 0,0.9,-2, 0,0.771675,-1.986, -0.325863,0.771675,-1.96042,
+ -0.633613,0.771675,-1.886223, -0.63808,0.9,-1.89952, -0.32816,0.9,-1.97424,
+ -0.32816,0.9,-1.97424, -0.325863,0.771675,-1.96042, -0.633613,0.771675,-1.886223,
+ -0.919439,0.771675,-1.767222, -0.92592,0.9,-1.77968, -0.63808,0.9,-1.89952,
+ -0.63808,0.9,-1.89952, -0.633613,0.771675,-1.886223, -0.919439,0.771675,-1.767222,
+ -1.179525,0.771675,-1.60723, -1.18784,0.9,-1.61856, -0.92592,0.9,-1.77968,
+ -0.92592,0.9,-1.77968, -0.919439,0.771675,-1.767222, -1.179525,0.771675,-1.60723,
+ -1.41006,0.771675,-1.41006, -1.42,0.9,-1.42, -1.18784,0.9,-1.61856,
+ -1.18784,0.9,-1.61856, -1.179525,0.771675,-1.60723, -1.41006,0.771675,-1.41006,
+ -1.60723,0.771675,-1.179525, -1.61856,0.9,-1.18784, -1.42,0.9,-1.42,
+ -1.42,0.9,-1.42, -1.41006,0.771675,-1.41006, -1.60723,0.771675,-1.179525,
+ -1.767222,0.771675,-0.919439, -1.77968,0.9,-0.92592, -1.61856,0.9,-1.18784,
+ -1.61856,0.9,-1.18784, -1.60723,0.771675,-1.179525, -1.767222,0.771675,-0.919439,
+ -1.886223,0.771675,-0.633613, -1.89952,0.9,-0.63808, -1.77968,0.9,-0.92592,
+ -1.77968,0.9,-0.92592, -1.767222,0.771675,-0.919439, -1.886223,0.771675,-0.633613,
+ -1.96042,0.771675,-0.325863, -1.97424,0.9,-0.32816, -1.89952,0.9,-0.63808,
+ -1.89952,0.9,-0.63808, -1.886223,0.771675,-0.633613, -1.96042,0.771675,-0.325863,
+ -1.986,0.771675,0, -2,0.9,0, -1.97424,0.9,-0.32816,
+ -1.97424,0.9,-0.32816, -1.96042,0.771675,-0.325863, -1.986,0.771675,0,
+ -0.319628,0.6564,-1.92291, -0.325863,0.771675,-1.96042, 0,0.771675,-1.986,
+ 0,0.771675,-1.986, 0,0.6564,-1.948, -0.319628,0.6564,-1.92291,
+ -0.62149,0.6564,-1.850132, -0.633613,0.771675,-1.886223, -0.325863,0.771675,-1.96042,
+ -0.325863,0.771675,-1.96042, -0.319628,0.6564,-1.92291, -0.62149,0.6564,-1.850132,
+ -0.901846,0.6564,-1.733408, -0.919439,0.771675,-1.767222, -0.633613,0.771675,-1.886223,
+ -0.633613,0.771675,-1.886223, -0.62149,0.6564,-1.850132, -0.901846,0.6564,-1.733408,
+ -1.156956,0.6564,-1.576477, -1.179525,0.771675,-1.60723, -0.919439,0.771675,-1.767222,
+ -0.919439,0.771675,-1.767222, -0.901846,0.6564,-1.733408, -1.156956,0.6564,-1.576477,
+ -1.38308,0.6564,-1.38308, -1.41006,0.771675,-1.41006, -1.179525,0.771675,-1.60723,
+ -1.179525,0.771675,-1.60723, -1.156956,0.6564,-1.576477, -1.38308,0.6564,-1.38308,
+ -1.576477,0.6564,-1.156956, -1.60723,0.771675,-1.179525, -1.41006,0.771675,-1.41006,
+ -1.41006,0.771675,-1.41006, -1.38308,0.6564,-1.38308, -1.576477,0.6564,-1.156956,
+ -1.733408,0.6564,-0.901846, -1.767222,0.771675,-0.919439, -1.60723,0.771675,-1.179525,
+ -1.60723,0.771675,-1.179525, -1.576477,0.6564,-1.156956, -1.733408,0.6564,-0.901846,
+ -1.850132,0.6564,-0.62149, -1.886223,0.771675,-0.633613, -1.767222,0.771675,-0.919439,
+ -1.767222,0.771675,-0.919439, -1.733408,0.6564,-0.901846, -1.850132,0.6564,-0.62149,
+ -1.92291,0.6564,-0.319628, -1.96042,0.771675,-0.325863, -1.886223,0.771675,-0.633613,
+ -1.886223,0.771675,-0.633613, -1.850132,0.6564,-0.62149, -1.92291,0.6564,-0.319628,
+ -1.948,0.6564,0, -1.986,0.771675,0, -1.96042,0.771675,-0.325863,
+ -1.96042,0.771675,-0.325863, -1.92291,0.6564,-0.319628, -1.948,0.6564,0,
+ -0.310439,0.553725,-1.867631, -0.319628,0.6564,-1.92291, 0,0.6564,-1.948,
+ 0,0.6564,-1.948, 0,0.553725,-1.892, -0.310439,0.553725,-1.867631,
+ -0.603624,0.553725,-1.796946, -0.62149,0.6564,-1.850132, -0.319628,0.6564,-1.92291,
+ -0.319628,0.6564,-1.92291, -0.310439,0.553725,-1.867631, -0.603624,0.553725,-1.796946,
+ -0.87592,0.553725,-1.683577, -0.901846,0.6564,-1.733408, -0.62149,0.6564,-1.850132,
+ -0.62149,0.6564,-1.850132, -0.603624,0.553725,-1.796946, -0.87592,0.553725,-1.683577,
+ -1.123697,0.553725,-1.531158, -1.156956,0.6564,-1.576477, -0.901846,0.6564,-1.733408,
+ -0.901846,0.6564,-1.733408, -0.87592,0.553725,-1.683577, -1.123697,0.553725,-1.531158,
+ -1.34332,0.553725,-1.34332, -1.38308,0.6564,-1.38308, -1.156956,0.6564,-1.576477,
+ -1.156956,0.6564,-1.576477, -1.123697,0.553725,-1.531158, -1.34332,0.553725,-1.34332,
+ -1.531158,0.553725,-1.123697, -1.576477,0.6564,-1.156956, -1.38308,0.6564,-1.38308,
+ -1.38308,0.6564,-1.38308, -1.34332,0.553725,-1.34332, -1.531158,0.553725,-1.123697,
+ -1.683577,0.553725,-0.87592, -1.733408,0.6564,-0.901846, -1.576477,0.6564,-1.156956,
+ -1.576477,0.6564,-1.156956, -1.531158,0.553725,-1.123697, -1.683577,0.553725,-0.87592,
+ -1.796946,0.553725,-0.603624, -1.850132,0.6564,-0.62149, -1.733408,0.6564,-0.901846,
+ -1.733408,0.6564,-0.901846, -1.683577,0.553725,-0.87592, -1.796946,0.553725,-0.603624,
+ -1.867631,0.553725,-0.310439, -1.92291,0.6564,-0.319628, -1.850132,0.6564,-0.62149,
+ -1.850132,0.6564,-0.62149, -1.796946,0.553725,-0.603624, -1.867631,0.553725,-0.310439,
+ -1.892,0.553725,0, -1.948,0.6564,0, -1.92291,0.6564,-0.319628,
+ -1.92291,0.6564,-0.319628, -1.867631,0.553725,-0.310439, -1.892,0.553725,0,
+ -0.299282,0.4632,-1.800507, -0.310439,0.553725,-1.867631, 0,0.553725,-1.892,
+ 0,0.553725,-1.892, 0,0.4632,-1.824, -0.299282,0.4632,-1.800507,
+ -0.581929,0.4632,-1.732362, -0.603624,0.553725,-1.796946, -0.310439,0.553725,-1.867631,
+ -0.310439,0.553725,-1.867631, -0.299282,0.4632,-1.800507, -0.581929,0.4632,-1.732362,
+ -0.844439,0.4632,-1.623068, -0.87592,0.553725,-1.683577, -0.603624,0.553725,-1.796946,
+ -0.603624,0.553725,-1.796946, -0.581929,0.4632,-1.732362, -0.844439,0.4632,-1.623068,
+ -1.08331,0.4632,-1.476127, -1.123697,0.553725,-1.531158, -0.87592,0.553725,-1.683577,
+ -0.87592,0.553725,-1.683577, -0.844439,0.4632,-1.623068, -1.08331,0.4632,-1.476127,
+ -1.29504,0.4632,-1.29504, -1.34332,0.553725,-1.34332, -1.123697,0.553725,-1.531158,
+ -1.123697,0.553725,-1.531158, -1.08331,0.4632,-1.476127, -1.29504,0.4632,-1.29504,
+ -1.476127,0.4632,-1.08331, -1.531158,0.553725,-1.123697, -1.34332,0.553725,-1.34332,
+ -1.34332,0.553725,-1.34332, -1.29504,0.4632,-1.29504, -1.476127,0.4632,-1.08331,
+ -1.623068,0.4632,-0.844439, -1.683577,0.553725,-0.87592, -1.531158,0.553725,-1.123697,
+ -1.531158,0.553725,-1.123697, -1.476127,0.4632,-1.08331, -1.623068,0.4632,-0.844439,
+ -1.732362,0.4632,-0.581929, -1.796946,0.553725,-0.603624, -1.683577,0.553725,-0.87592,
+ -1.683577,0.553725,-0.87592, -1.623068,0.4632,-0.844439, -1.732362,0.4632,-0.581929,
+ -1.800507,0.4632,-0.299282, -1.867631,0.553725,-0.310439, -1.796946,0.553725,-0.603624,
+ -1.796946,0.553725,-0.603624, -1.732362,0.4632,-0.581929, -1.800507,0.4632,-0.299282,
+ -1.824,0.4632,0, -1.892,0.553725,0, -1.867631,0.553725,-0.310439,
+ -1.867631,0.553725,-0.310439, -1.800507,0.4632,-0.299282, -1.824,0.4632,0,
+ -0.28714,0.384375,-1.72746, -0.299282,0.4632,-1.800507, 0,0.4632,-1.824,
+ 0,0.4632,-1.824, 0,0.384375,-1.75, -0.28714,0.384375,-1.72746,
+ -0.55832,0.384375,-1.66208, -0.581929,0.4632,-1.732362, -0.299282,0.4632,-1.800507,
+ -0.299282,0.4632,-1.800507, -0.28714,0.384375,-1.72746, -0.55832,0.384375,-1.66208,
+ -0.81018,0.384375,-1.55722, -0.844439,0.4632,-1.623068, -0.581929,0.4632,-1.732362,
+ -0.581929,0.4632,-1.732362, -0.55832,0.384375,-1.66208, -0.81018,0.384375,-1.55722,
+ -1.03936,0.384375,-1.41624, -1.08331,0.4632,-1.476127, -0.844439,0.4632,-1.623068,
+ -0.844439,0.4632,-1.623068, -0.81018,0.384375,-1.55722, -1.03936,0.384375,-1.41624,
+ -1.2425,0.384375,-1.2425, -1.29504,0.4632,-1.29504, -1.08331,0.4632,-1.476127,
+ -1.08331,0.4632,-1.476127, -1.03936,0.384375,-1.41624, -1.2425,0.384375,-1.2425,
+ -1.41624,0.384375,-1.03936, -1.476127,0.4632,-1.08331, -1.29504,0.4632,-1.29504,
+ -1.29504,0.4632,-1.29504, -1.2425,0.384375,-1.2425, -1.41624,0.384375,-1.03936,
+ -1.55722,0.384375,-0.81018, -1.623068,0.4632,-0.844439, -1.476127,0.4632,-1.08331,
+ -1.476127,0.4632,-1.08331, -1.41624,0.384375,-1.03936, -1.55722,0.384375,-0.81018,
+ -1.66208,0.384375,-0.55832, -1.732362,0.4632,-0.581929, -1.623068,0.4632,-0.844439,
+ -1.623068,0.4632,-0.844439, -1.55722,0.384375,-0.81018, -1.66208,0.384375,-0.55832,
+ -1.72746,0.384375,-0.28714, -1.800507,0.4632,-0.299282, -1.732362,0.4632,-0.581929,
+ -1.732362,0.4632,-0.581929, -1.66208,0.384375,-0.55832, -1.72746,0.384375,-0.28714,
+ -1.75,0.384375,0, -1.824,0.4632,0, -1.800507,0.4632,-0.299282,
+ -1.800507,0.4632,-0.299282, -1.72746,0.384375,-0.28714, -1.75,0.384375,0,
+ -0.274998,0.3168,-1.654413, -0.28714,0.384375,-1.72746, 0,0.384375,-1.75,
+ 0,0.384375,-1.75, 0,0.3168,-1.676, -0.274998,0.3168,-1.654413,
+ -0.534711,0.3168,-1.591798, -0.55832,0.384375,-1.66208, -0.28714,0.384375,-1.72746,
+ -0.28714,0.384375,-1.72746, -0.274998,0.3168,-1.654413, -0.534711,0.3168,-1.591798,
+ -0.775921,0.3168,-1.491372, -0.81018,0.384375,-1.55722, -0.55832,0.384375,-1.66208,
+ -0.55832,0.384375,-1.66208, -0.534711,0.3168,-1.591798, -0.775921,0.3168,-1.491372,
+ -0.99541,0.3168,-1.356353, -1.03936,0.384375,-1.41624, -0.81018,0.384375,-1.55722,
+ -0.81018,0.384375,-1.55722, -0.775921,0.3168,-1.491372, -0.99541,0.3168,-1.356353,
+ -1.18996,0.3168,-1.18996, -1.2425,0.384375,-1.2425, -1.03936,0.384375,-1.41624,
+ -1.03936,0.384375,-1.41624, -0.99541,0.3168,-1.356353, -1.18996,0.3168,-1.18996,
+ -1.356353,0.3168,-0.99541, -1.41624,0.384375,-1.03936, -1.2425,0.384375,-1.2425,
+ -1.2425,0.384375,-1.2425, -1.18996,0.3168,-1.18996, -1.356353,0.3168,-0.99541,
+ -1.491372,0.3168,-0.775921, -1.55722,0.384375,-0.81018, -1.41624,0.384375,-1.03936,
+ -1.41624,0.384375,-1.03936, -1.356353,0.3168,-0.99541, -1.491372,0.3168,-0.775921,
+ -1.591798,0.3168,-0.534711, -1.66208,0.384375,-0.55832, -1.55722,0.384375,-0.81018,
+ -1.55722,0.384375,-0.81018, -1.491372,0.3168,-0.775921, -1.591798,0.3168,-0.534711,
+ -1.654413,0.3168,-0.274998, -1.72746,0.384375,-0.28714, -1.66208,0.384375,-0.55832,
+ -1.66208,0.384375,-0.55832, -1.591798,0.3168,-0.534711, -1.654413,0.3168,-0.274998,
+ -1.676,0.3168,0, -1.75,0.384375,0, -1.72746,0.384375,-0.28714,
+ -1.72746,0.384375,-0.28714, -1.654413,0.3168,-0.274998, -1.676,0.3168,0,
+ -0.263841,0.260025,-1.587289, -0.274998,0.3168,-1.654413, 0,0.3168,-1.676,
+ 0,0.3168,-1.676, 0,0.260025,-1.608, -0.263841,0.260025,-1.587289,
+ -0.513016,0.260025,-1.527214, -0.534711,0.3168,-1.591798, -0.274998,0.3168,-1.654413,
+ -0.274998,0.3168,-1.654413, -0.263841,0.260025,-1.587289, -0.513016,0.260025,-1.527214,
+ -0.74444,0.260025,-1.430863, -0.775921,0.3168,-1.491372, -0.534711,0.3168,-1.591798,
+ -0.534711,0.3168,-1.591798, -0.513016,0.260025,-1.527214, -0.74444,0.260025,-1.430863,
+ -0.955023,0.260025,-1.301322, -0.99541,0.3168,-1.356353, -0.775921,0.3168,-1.491372,
+ -0.775921,0.3168,-1.491372, -0.74444,0.260025,-1.430863, -0.955023,0.260025,-1.301322,
+ -1.14168,0.260025,-1.14168, -1.18996,0.3168,-1.18996, -0.99541,0.3168,-1.356353,
+ -0.99541,0.3168,-1.356353, -0.955023,0.260025,-1.301322, -1.14168,0.260025,-1.14168,
+ -1.301322,0.260025,-0.955023, -1.356353,0.3168,-0.99541, -1.18996,0.3168,-1.18996,
+ -1.18996,0.3168,-1.18996, -1.14168,0.260025,-1.14168, -1.301322,0.260025,-0.955023,
+ -1.430863,0.260025,-0.74444, -1.491372,0.3168,-0.775921, -1.356353,0.3168,-0.99541,
+ -1.356353,0.3168,-0.99541, -1.301322,0.260025,-0.955023, -1.430863,0.260025,-0.74444,
+ -1.527214,0.260025,-0.513016, -1.591798,0.3168,-0.534711, -1.491372,0.3168,-0.775921,
+ -1.491372,0.3168,-0.775921, -1.430863,0.260025,-0.74444, -1.527214,0.260025,-0.513016,
+ -1.587289,0.260025,-0.263841, -1.654413,0.3168,-0.274998, -1.591798,0.3168,-0.534711,
+ -1.591798,0.3168,-0.534711, -1.527214,0.260025,-0.513016, -1.587289,0.260025,-0.263841,
+ -1.608,0.260025,0, -1.676,0.3168,0, -1.654413,0.3168,-0.274998,
+ -1.654413,0.3168,-0.274998, -1.587289,0.260025,-0.263841, -1.608,0.260025,0,
+ -0.254652,0.2136,-1.53201, -0.263841,0.260025,-1.587289, 0,0.260025,-1.608,
+ 0,0.260025,-1.608, 0,0.2136,-1.552, -0.254652,0.2136,-1.53201,
+ -0.49515,0.2136,-1.474028, -0.513016,0.260025,-1.527214, -0.263841,0.260025,-1.587289,
+ -0.263841,0.260025,-1.587289, -0.254652,0.2136,-1.53201, -0.49515,0.2136,-1.474028,
+ -0.718514,0.2136,-1.381032, -0.74444,0.260025,-1.430863, -0.513016,0.260025,-1.527214,
+ -0.513016,0.260025,-1.527214, -0.49515,0.2136,-1.474028, -0.718514,0.2136,-1.381032,
+ -0.921764,0.2136,-1.256003, -0.955023,0.260025,-1.301322, -0.74444,0.260025,-1.430863,
+ -0.74444,0.260025,-1.430863, -0.718514,0.2136,-1.381032, -0.921764,0.2136,-1.256003,
+ -1.10192,0.2136,-1.10192, -1.14168,0.260025,-1.14168, -0.955023,0.260025,-1.301322,
+ -0.955023,0.260025,-1.301322, -0.921764,0.2136,-1.256003, -1.10192,0.2136,-1.10192,
+ -1.256003,0.2136,-0.921764, -1.301322,0.260025,-0.955023, -1.14168,0.260025,-1.14168,
+ -1.14168,0.260025,-1.14168, -1.10192,0.2136,-1.10192, -1.256003,0.2136,-0.921764,
+ -1.381032,0.2136,-0.718514, -1.430863,0.260025,-0.74444, -1.301322,0.260025,-0.955023,
+ -1.301322,0.260025,-0.955023, -1.256003,0.2136,-0.921764, -1.381032,0.2136,-0.718514,
+ -1.474028,0.2136,-0.49515, -1.527214,0.260025,-0.513016, -1.430863,0.260025,-0.74444,
+ -1.430863,0.260025,-0.74444, -1.381032,0.2136,-0.718514, -1.474028,0.2136,-0.49515,
+ -1.53201,0.2136,-0.254652, -1.587289,0.260025,-0.263841, -1.527214,0.260025,-0.513016,
+ -1.527214,0.260025,-0.513016, -1.474028,0.2136,-0.49515, -1.53201,0.2136,-0.254652,
+ -1.552,0.2136,0, -1.608,0.260025,0, -1.587289,0.260025,-0.263841,
+ -1.587289,0.260025,-0.263841, -1.53201,0.2136,-0.254652, -1.552,0.2136,0,
+ -0.248417,0.177075,-1.4945, -0.254652,0.2136,-1.53201, 0,0.2136,-1.552,
+ 0,0.2136,-1.552, 0,0.177075,-1.514, -0.248417,0.177075,-1.4945,
+ -0.483027,0.177075,-1.437937, -0.49515,0.2136,-1.474028, -0.254652,0.2136,-1.53201,
+ -0.254652,0.2136,-1.53201, -0.248417,0.177075,-1.4945, -0.483027,0.177075,-1.437937,
+ -0.700921,0.177075,-1.347218, -0.718514,0.2136,-1.381032, -0.49515,0.2136,-1.474028,
+ -0.49515,0.2136,-1.474028, -0.483027,0.177075,-1.437937, -0.700921,0.177075,-1.347218,
+ -0.899195,0.177075,-1.22525, -0.921764,0.2136,-1.256003, -0.718514,0.2136,-1.381032,
+ -0.718514,0.2136,-1.381032, -0.700921,0.177075,-1.347218, -0.899195,0.177075,-1.22525,
+ -1.07494,0.177075,-1.07494, -1.10192,0.2136,-1.10192, -0.921764,0.2136,-1.256003,
+ -0.921764,0.2136,-1.256003, -0.899195,0.177075,-1.22525, -1.07494,0.177075,-1.07494,
+ -1.22525,0.177075,-0.899195, -1.256003,0.2136,-0.921764, -1.10192,0.2136,-1.10192,
+ -1.10192,0.2136,-1.10192, -1.07494,0.177075,-1.07494, -1.22525,0.177075,-0.899195,
+ -1.347218,0.177075,-0.700921, -1.381032,0.2136,-0.718514, -1.256003,0.2136,-0.921764,
+ -1.256003,0.2136,-0.921764, -1.22525,0.177075,-0.899195, -1.347218,0.177075,-0.700921,
+ -1.437937,0.177075,-0.483027, -1.474028,0.2136,-0.49515, -1.381032,0.2136,-0.718514,
+ -1.381032,0.2136,-0.718514, -1.347218,0.177075,-0.700921, -1.437937,0.177075,-0.483027,
+ -1.4945,0.177075,-0.248417, -1.53201,0.2136,-0.254652, -1.474028,0.2136,-0.49515,
+ -1.474028,0.2136,-0.49515, -1.437937,0.177075,-0.483027, -1.4945,0.177075,-0.248417,
+ -1.514,0.177075,0, -1.552,0.2136,0, -1.53201,0.2136,-0.254652,
+ -1.53201,0.2136,-0.254652, -1.4945,0.177075,-0.248417, -1.514,0.177075,0,
+ -0.24612,0.15,-1.48068, -0.248417,0.177075,-1.4945, 0,0.177075,-1.514,
+ 0,0.177075,-1.514, 0,0.15,-1.5, -0.24612,0.15,-1.48068,
+ -0.47856,0.15,-1.42464, -0.483027,0.177075,-1.437937, -0.248417,0.177075,-1.4945,
+ -0.248417,0.177075,-1.4945, -0.24612,0.15,-1.48068, -0.47856,0.15,-1.42464,
+ -0.69444,0.15,-1.33476, -0.700921,0.177075,-1.347218, -0.483027,0.177075,-1.437937,
+ -0.483027,0.177075,-1.437937, -0.47856,0.15,-1.42464, -0.69444,0.15,-1.33476,
+ -0.89088,0.15,-1.21392, -0.899195,0.177075,-1.22525, -0.700921,0.177075,-1.347218,
+ -0.700921,0.177075,-1.347218, -0.69444,0.15,-1.33476, -0.89088,0.15,-1.21392,
+ -1.065,0.15,-1.065, -1.07494,0.177075,-1.07494, -0.899195,0.177075,-1.22525,
+ -0.899195,0.177075,-1.22525, -0.89088,0.15,-1.21392, -1.065,0.15,-1.065,
+ -1.21392,0.15,-0.89088, -1.22525,0.177075,-0.899195, -1.07494,0.177075,-1.07494,
+ -1.07494,0.177075,-1.07494, -1.065,0.15,-1.065, -1.21392,0.15,-0.89088,
+ -1.33476,0.15,-0.69444, -1.347218,0.177075,-0.700921, -1.22525,0.177075,-0.899195,
+ -1.22525,0.177075,-0.899195, -1.21392,0.15,-0.89088, -1.33476,0.15,-0.69444,
+ -1.42464,0.15,-0.47856, -1.437937,0.177075,-0.483027, -1.347218,0.177075,-0.700921,
+ -1.347218,0.177075,-0.700921, -1.33476,0.15,-0.69444, -1.42464,0.15,-0.47856,
+ -1.48068,0.15,-0.24612, -1.4945,0.177075,-0.248417, -1.437937,0.177075,-0.483027,
+ -1.437937,0.177075,-0.483027, -1.42464,0.15,-0.47856, -1.48068,0.15,-0.24612,
+ -1.5,0.15,0, -1.514,0.177075,0, -1.4945,0.177075,-0.248417,
+ -1.4945,0.177075,-0.248417, -1.48068,0.15,-0.24612, -1.5,0.15,0,
+ -1.96042,0.771675,0.325863, -1.97424,0.9,0.32816, -2,0.9,0,
+ -2,0.9,0, -1.986,0.771675,0, -1.96042,0.771675,0.325863,
+ -1.886223,0.771675,0.633613, -1.89952,0.9,0.63808, -1.97424,0.9,0.32816,
+ -1.97424,0.9,0.32816, -1.96042,0.771675,0.325863, -1.886223,0.771675,0.633613,
+ -1.767222,0.771675,0.919439, -1.77968,0.9,0.92592, -1.89952,0.9,0.63808,
+ -1.89952,0.9,0.63808, -1.886223,0.771675,0.633613, -1.767222,0.771675,0.919439,
+ -1.60723,0.771675,1.179525, -1.61856,0.9,1.18784, -1.77968,0.9,0.92592,
+ -1.77968,0.9,0.92592, -1.767222,0.771675,0.919439, -1.60723,0.771675,1.179525,
+ -1.41006,0.771675,1.41006, -1.42,0.9,1.42, -1.61856,0.9,1.18784,
+ -1.61856,0.9,1.18784, -1.60723,0.771675,1.179525, -1.41006,0.771675,1.41006,
+ -1.179525,0.771675,1.60723, -1.18784,0.9,1.61856, -1.42,0.9,1.42,
+ -1.42,0.9,1.42, -1.41006,0.771675,1.41006, -1.179525,0.771675,1.60723,
+ -0.919439,0.771675,1.767222, -0.92592,0.9,1.77968, -1.18784,0.9,1.61856,
+ -1.18784,0.9,1.61856, -1.179525,0.771675,1.60723, -0.919439,0.771675,1.767222,
+ -0.633613,0.771675,1.886223, -0.63808,0.9,1.89952, -0.92592,0.9,1.77968,
+ -0.92592,0.9,1.77968, -0.919439,0.771675,1.767222, -0.633613,0.771675,1.886223,
+ -0.325863,0.771675,1.96042, -0.32816,0.9,1.97424, -0.63808,0.9,1.89952,
+ -0.63808,0.9,1.89952, -0.633613,0.771675,1.886223, -0.325863,0.771675,1.96042,
+ 0,0.771675,1.986, 0,0.9,2, -0.32816,0.9,1.97424,
+ -0.32816,0.9,1.97424, -0.325863,0.771675,1.96042, 0,0.771675,1.986,
+ -1.92291,0.6564,0.319628, -1.96042,0.771675,0.325863, -1.986,0.771675,0,
+ -1.986,0.771675,0, -1.948,0.6564,0, -1.92291,0.6564,0.319628,
+ -1.850132,0.6564,0.62149, -1.886223,0.771675,0.633613, -1.96042,0.771675,0.325863,
+ -1.96042,0.771675,0.325863, -1.92291,0.6564,0.319628, -1.850132,0.6564,0.62149,
+ -1.733408,0.6564,0.901846, -1.767222,0.771675,0.919439, -1.886223,0.771675,0.633613,
+ -1.886223,0.771675,0.633613, -1.850132,0.6564,0.62149, -1.733408,0.6564,0.901846,
+ -1.576477,0.6564,1.156956, -1.60723,0.771675,1.179525, -1.767222,0.771675,0.919439,
+ -1.767222,0.771675,0.919439, -1.733408,0.6564,0.901846, -1.576477,0.6564,1.156956,
+ -1.38308,0.6564,1.38308, -1.41006,0.771675,1.41006, -1.60723,0.771675,1.179525,
+ -1.60723,0.771675,1.179525, -1.576477,0.6564,1.156956, -1.38308,0.6564,1.38308,
+ -1.156956,0.6564,1.576477, -1.179525,0.771675,1.60723, -1.41006,0.771675,1.41006,
+ -1.41006,0.771675,1.41006, -1.38308,0.6564,1.38308, -1.156956,0.6564,1.576477,
+ -0.901846,0.6564,1.733408, -0.919439,0.771675,1.767222, -1.179525,0.771675,1.60723,
+ -1.179525,0.771675,1.60723, -1.156956,0.6564,1.576477, -0.901846,0.6564,1.733408,
+ -0.62149,0.6564,1.850132, -0.633613,0.771675,1.886223, -0.919439,0.771675,1.767222,
+ -0.919439,0.771675,1.767222, -0.901846,0.6564,1.733408, -0.62149,0.6564,1.850132,
+ -0.319628,0.6564,1.92291, -0.325863,0.771675,1.96042, -0.633613,0.771675,1.886223,
+ -0.633613,0.771675,1.886223, -0.62149,0.6564,1.850132, -0.319628,0.6564,1.92291,
+ 0,0.6564,1.948, 0,0.771675,1.986, -0.325863,0.771675,1.96042,
+ -0.325863,0.771675,1.96042, -0.319628,0.6564,1.92291, 0,0.6564,1.948,
+ -1.867631,0.553725,0.310439, -1.92291,0.6564,0.319628, -1.948,0.6564,0,
+ -1.948,0.6564,0, -1.892,0.553725,0, -1.867631,0.553725,0.310439,
+ -1.796946,0.553725,0.603624, -1.850132,0.6564,0.62149, -1.92291,0.6564,0.319628,
+ -1.92291,0.6564,0.319628, -1.867631,0.553725,0.310439, -1.796946,0.553725,0.603624,
+ -1.683577,0.553725,0.87592, -1.733408,0.6564,0.901846, -1.850132,0.6564,0.62149,
+ -1.850132,0.6564,0.62149, -1.796946,0.553725,0.603624, -1.683577,0.553725,0.87592,
+ -1.531158,0.553725,1.123697, -1.576477,0.6564,1.156956, -1.733408,0.6564,0.901846,
+ -1.733408,0.6564,0.901846, -1.683577,0.553725,0.87592, -1.531158,0.553725,1.123697,
+ -1.34332,0.553725,1.34332, -1.38308,0.6564,1.38308, -1.576477,0.6564,1.156956,
+ -1.576477,0.6564,1.156956, -1.531158,0.553725,1.123697, -1.34332,0.553725,1.34332,
+ -1.123697,0.553725,1.531158, -1.156956,0.6564,1.576477, -1.38308,0.6564,1.38308,
+ -1.38308,0.6564,1.38308, -1.34332,0.553725,1.34332, -1.123697,0.553725,1.531158,
+ -0.87592,0.553725,1.683577, -0.901846,0.6564,1.733408, -1.156956,0.6564,1.576477,
+ -1.156956,0.6564,1.576477, -1.123697,0.553725,1.531158, -0.87592,0.553725,1.683577,
+ -0.603624,0.553725,1.796946, -0.62149,0.6564,1.850132, -0.901846,0.6564,1.733408,
+ -0.901846,0.6564,1.733408, -0.87592,0.553725,1.683577, -0.603624,0.553725,1.796946,
+ -0.310439,0.553725,1.867631, -0.319628,0.6564,1.92291, -0.62149,0.6564,1.850132,
+ -0.62149,0.6564,1.850132, -0.603624,0.553725,1.796946, -0.310439,0.553725,1.867631,
+ 0,0.553725,1.892, 0,0.6564,1.948, -0.319628,0.6564,1.92291,
+ -0.319628,0.6564,1.92291, -0.310439,0.553725,1.867631, 0,0.553725,1.892,
+ -1.800507,0.4632,0.299282, -1.867631,0.553725,0.310439, -1.892,0.553725,0,
+ -1.892,0.553725,0, -1.824,0.4632,0, -1.800507,0.4632,0.299282,
+ -1.732362,0.4632,0.581929, -1.796946,0.553725,0.603624, -1.867631,0.553725,0.310439,
+ -1.867631,0.553725,0.310439, -1.800507,0.4632,0.299282, -1.732362,0.4632,0.581929,
+ -1.623068,0.4632,0.844439, -1.683577,0.553725,0.87592, -1.796946,0.553725,0.603624,
+ -1.796946,0.553725,0.603624, -1.732362,0.4632,0.581929, -1.623068,0.4632,0.844439,
+ -1.476127,0.4632,1.08331, -1.531158,0.553725,1.123697, -1.683577,0.553725,0.87592,
+ -1.683577,0.553725,0.87592, -1.623068,0.4632,0.844439, -1.476127,0.4632,1.08331,
+ -1.29504,0.4632,1.29504, -1.34332,0.553725,1.34332, -1.531158,0.553725,1.123697,
+ -1.531158,0.553725,1.123697, -1.476127,0.4632,1.08331, -1.29504,0.4632,1.29504,
+ -1.08331,0.4632,1.476127, -1.123697,0.553725,1.531158, -1.34332,0.553725,1.34332,
+ -1.34332,0.553725,1.34332, -1.29504,0.4632,1.29504, -1.08331,0.4632,1.476127,
+ -0.844439,0.4632,1.623068, -0.87592,0.553725,1.683577, -1.123697,0.553725,1.531158,
+ -1.123697,0.553725,1.531158, -1.08331,0.4632,1.476127, -0.844439,0.4632,1.623068,
+ -0.581929,0.4632,1.732362, -0.603624,0.553725,1.796946, -0.87592,0.553725,1.683577,
+ -0.87592,0.553725,1.683577, -0.844439,0.4632,1.623068, -0.581929,0.4632,1.732362,
+ -0.299282,0.4632,1.800507, -0.310439,0.553725,1.867631, -0.603624,0.553725,1.796946,
+ -0.603624,0.553725,1.796946, -0.581929,0.4632,1.732362, -0.299282,0.4632,1.800507,
+ 0,0.4632,1.824, 0,0.553725,1.892, -0.310439,0.553725,1.867631,
+ -0.310439,0.553725,1.867631, -0.299282,0.4632,1.800507, 0,0.4632,1.824,
+ -1.72746,0.384375,0.28714, -1.800507,0.4632,0.299282, -1.824,0.4632,0,
+ -1.824,0.4632,0, -1.75,0.384375,0, -1.72746,0.384375,0.28714,
+ -1.66208,0.384375,0.55832, -1.732362,0.4632,0.581929, -1.800507,0.4632,0.299282,
+ -1.800507,0.4632,0.299282, -1.72746,0.384375,0.28714, -1.66208,0.384375,0.55832,
+ -1.55722,0.384375,0.81018, -1.623068,0.4632,0.844439, -1.732362,0.4632,0.581929,
+ -1.732362,0.4632,0.581929, -1.66208,0.384375,0.55832, -1.55722,0.384375,0.81018,
+ -1.41624,0.384375,1.03936, -1.476127,0.4632,1.08331, -1.623068,0.4632,0.844439,
+ -1.623068,0.4632,0.844439, -1.55722,0.384375,0.81018, -1.41624,0.384375,1.03936,
+ -1.2425,0.384375,1.2425, -1.29504,0.4632,1.29504, -1.476127,0.4632,1.08331,
+ -1.476127,0.4632,1.08331, -1.41624,0.384375,1.03936, -1.2425,0.384375,1.2425,
+ -1.03936,0.384375,1.41624, -1.08331,0.4632,1.476127, -1.29504,0.4632,1.29504,
+ -1.29504,0.4632,1.29504, -1.2425,0.384375,1.2425, -1.03936,0.384375,1.41624,
+ -0.81018,0.384375,1.55722, -0.844439,0.4632,1.623068, -1.08331,0.4632,1.476127,
+ -1.08331,0.4632,1.476127, -1.03936,0.384375,1.41624, -0.81018,0.384375,1.55722,
+ -0.55832,0.384375,1.66208, -0.581929,0.4632,1.732362, -0.844439,0.4632,1.623068,
+ -0.844439,0.4632,1.623068, -0.81018,0.384375,1.55722, -0.55832,0.384375,1.66208,
+ -0.28714,0.384375,1.72746, -0.299282,0.4632,1.800507, -0.581929,0.4632,1.732362,
+ -0.581929,0.4632,1.732362, -0.55832,0.384375,1.66208, -0.28714,0.384375,1.72746,
+ 0,0.384375,1.75, 0,0.4632,1.824, -0.299282,0.4632,1.800507,
+ -0.299282,0.4632,1.800507, -0.28714,0.384375,1.72746, 0,0.384375,1.75,
+ -1.654413,0.3168,0.274998, -1.72746,0.384375,0.28714, -1.75,0.384375,0,
+ -1.75,0.384375,0, -1.676,0.3168,0, -1.654413,0.3168,0.274998,
+ -1.591798,0.3168,0.534711, -1.66208,0.384375,0.55832, -1.72746,0.384375,0.28714,
+ -1.72746,0.384375,0.28714, -1.654413,0.3168,0.274998, -1.591798,0.3168,0.534711,
+ -1.491372,0.3168,0.775921, -1.55722,0.384375,0.81018, -1.66208,0.384375,0.55832,
+ -1.66208,0.384375,0.55832, -1.591798,0.3168,0.534711, -1.491372,0.3168,0.775921,
+ -1.356353,0.3168,0.99541, -1.41624,0.384375,1.03936, -1.55722,0.384375,0.81018,
+ -1.55722,0.384375,0.81018, -1.491372,0.3168,0.775921, -1.356353,0.3168,0.99541,
+ -1.18996,0.3168,1.18996, -1.2425,0.384375,1.2425, -1.41624,0.384375,1.03936,
+ -1.41624,0.384375,1.03936, -1.356353,0.3168,0.99541, -1.18996,0.3168,1.18996,
+ -0.99541,0.3168,1.356353, -1.03936,0.384375,1.41624, -1.2425,0.384375,1.2425,
+ -1.2425,0.384375,1.2425, -1.18996,0.3168,1.18996, -0.99541,0.3168,1.356353,
+ -0.775921,0.3168,1.491372, -0.81018,0.384375,1.55722, -1.03936,0.384375,1.41624,
+ -1.03936,0.384375,1.41624, -0.99541,0.3168,1.356353, -0.775921,0.3168,1.491372,
+ -0.534711,0.3168,1.591798, -0.55832,0.384375,1.66208, -0.81018,0.384375,1.55722,
+ -0.81018,0.384375,1.55722, -0.775921,0.3168,1.491372, -0.534711,0.3168,1.591798,
+ -0.274998,0.3168,1.654413, -0.28714,0.384375,1.72746, -0.55832,0.384375,1.66208,
+ -0.55832,0.384375,1.66208, -0.534711,0.3168,1.591798, -0.274998,0.3168,1.654413,
+ 0,0.3168,1.676, 0,0.384375,1.75, -0.28714,0.384375,1.72746,
+ -0.28714,0.384375,1.72746, -0.274998,0.3168,1.654413, 0,0.3168,1.676,
+ -1.587289,0.260025,0.263841, -1.654413,0.3168,0.274998, -1.676,0.3168,0,
+ -1.676,0.3168,0, -1.608,0.260025,0, -1.587289,0.260025,0.263841,
+ -1.527214,0.260025,0.513016, -1.591798,0.3168,0.534711, -1.654413,0.3168,0.274998,
+ -1.654413,0.3168,0.274998, -1.587289,0.260025,0.263841, -1.527214,0.260025,0.513016,
+ -1.430863,0.260025,0.74444, -1.491372,0.3168,0.775921, -1.591798,0.3168,0.534711,
+ -1.591798,0.3168,0.534711, -1.527214,0.260025,0.513016, -1.430863,0.260025,0.74444,
+ -1.301322,0.260025,0.955023, -1.356353,0.3168,0.99541, -1.491372,0.3168,0.775921,
+ -1.491372,0.3168,0.775921, -1.430863,0.260025,0.74444, -1.301322,0.260025,0.955023,
+ -1.14168,0.260025,1.14168, -1.18996,0.3168,1.18996, -1.356353,0.3168,0.99541,
+ -1.356353,0.3168,0.99541, -1.301322,0.260025,0.955023, -1.14168,0.260025,1.14168,
+ -0.955023,0.260025,1.301322, -0.99541,0.3168,1.356353, -1.18996,0.3168,1.18996,
+ -1.18996,0.3168,1.18996, -1.14168,0.260025,1.14168, -0.955023,0.260025,1.301322,
+ -0.74444,0.260025,1.430863, -0.775921,0.3168,1.491372, -0.99541,0.3168,1.356353,
+ -0.99541,0.3168,1.356353, -0.955023,0.260025,1.301322, -0.74444,0.260025,1.430863,
+ -0.513016,0.260025,1.527214, -0.534711,0.3168,1.591798, -0.775921,0.3168,1.491372,
+ -0.775921,0.3168,1.491372, -0.74444,0.260025,1.430863, -0.513016,0.260025,1.527214,
+ -0.263841,0.260025,1.587289, -0.274998,0.3168,1.654413, -0.534711,0.3168,1.591798,
+ -0.534711,0.3168,1.591798, -0.513016,0.260025,1.527214, -0.263841,0.260025,1.587289,
+ 0,0.260025,1.608, 0,0.3168,1.676, -0.274998,0.3168,1.654413,
+ -0.274998,0.3168,1.654413, -0.263841,0.260025,1.587289, 0,0.260025,1.608,
+ -1.53201,0.2136,0.254652, -1.587289,0.260025,0.263841, -1.608,0.260025,0,
+ -1.608,0.260025,0, -1.552,0.2136,0, -1.53201,0.2136,0.254652,
+ -1.474028,0.2136,0.49515, -1.527214,0.260025,0.513016, -1.587289,0.260025,0.263841,
+ -1.587289,0.260025,0.263841, -1.53201,0.2136,0.254652, -1.474028,0.2136,0.49515,
+ -1.381032,0.2136,0.718514, -1.430863,0.260025,0.74444, -1.527214,0.260025,0.513016,
+ -1.527214,0.260025,0.513016, -1.474028,0.2136,0.49515, -1.381032,0.2136,0.718514,
+ -1.256003,0.2136,0.921764, -1.301322,0.260025,0.955023, -1.430863,0.260025,0.74444,
+ -1.430863,0.260025,0.74444, -1.381032,0.2136,0.718514, -1.256003,0.2136,0.921764,
+ -1.10192,0.2136,1.10192, -1.14168,0.260025,1.14168, -1.301322,0.260025,0.955023,
+ -1.301322,0.260025,0.955023, -1.256003,0.2136,0.921764, -1.10192,0.2136,1.10192,
+ -0.921764,0.2136,1.256003, -0.955023,0.260025,1.301322, -1.14168,0.260025,1.14168,
+ -1.14168,0.260025,1.14168, -1.10192,0.2136,1.10192, -0.921764,0.2136,1.256003,
+ -0.718514,0.2136,1.381032, -0.74444,0.260025,1.430863, -0.955023,0.260025,1.301322,
+ -0.955023,0.260025,1.301322, -0.921764,0.2136,1.256003, -0.718514,0.2136,1.381032,
+ -0.49515,0.2136,1.474028, -0.513016,0.260025,1.527214, -0.74444,0.260025,1.430863,
+ -0.74444,0.260025,1.430863, -0.718514,0.2136,1.381032, -0.49515,0.2136,1.474028,
+ -0.254652,0.2136,1.53201, -0.263841,0.260025,1.587289, -0.513016,0.260025,1.527214,
+ -0.513016,0.260025,1.527214, -0.49515,0.2136,1.474028, -0.254652,0.2136,1.53201,
+ 0,0.2136,1.552, 0,0.260025,1.608, -0.263841,0.260025,1.587289,
+ -0.263841,0.260025,1.587289, -0.254652,0.2136,1.53201, 0,0.2136,1.552,
+ -1.4945,0.177075,0.248417, -1.53201,0.2136,0.254652, -1.552,0.2136,0,
+ -1.552,0.2136,0, -1.514,0.177075,0, -1.4945,0.177075,0.248417,
+ -1.437937,0.177075,0.483027, -1.474028,0.2136,0.49515, -1.53201,0.2136,0.254652,
+ -1.53201,0.2136,0.254652, -1.4945,0.177075,0.248417, -1.437937,0.177075,0.483027,
+ -1.347218,0.177075,0.700921, -1.381032,0.2136,0.718514, -1.474028,0.2136,0.49515,
+ -1.474028,0.2136,0.49515, -1.437937,0.177075,0.483027, -1.347218,0.177075,0.700921,
+ -1.22525,0.177075,0.899195, -1.256003,0.2136,0.921764, -1.381032,0.2136,0.718514,
+ -1.381032,0.2136,0.718514, -1.347218,0.177075,0.700921, -1.22525,0.177075,0.899195,
+ -1.07494,0.177075,1.07494, -1.10192,0.2136,1.10192, -1.256003,0.2136,0.921764,
+ -1.256003,0.2136,0.921764, -1.22525,0.177075,0.899195, -1.07494,0.177075,1.07494,
+ -0.899195,0.177075,1.22525, -0.921764,0.2136,1.256003, -1.10192,0.2136,1.10192,
+ -1.10192,0.2136,1.10192, -1.07494,0.177075,1.07494, -0.899195,0.177075,1.22525,
+ -0.700921,0.177075,1.347218, -0.718514,0.2136,1.381032, -0.921764,0.2136,1.256003,
+ -0.921764,0.2136,1.256003, -0.899195,0.177075,1.22525, -0.700921,0.177075,1.347218,
+ -0.483027,0.177075,1.437937, -0.49515,0.2136,1.474028, -0.718514,0.2136,1.381032,
+ -0.718514,0.2136,1.381032, -0.700921,0.177075,1.347218, -0.483027,0.177075,1.437937,
+ -0.248417,0.177075,1.4945, -0.254652,0.2136,1.53201, -0.49515,0.2136,1.474028,
+ -0.49515,0.2136,1.474028, -0.483027,0.177075,1.437937, -0.248417,0.177075,1.4945,
+ 0,0.177075,1.514, 0,0.2136,1.552, -0.254652,0.2136,1.53201,
+ -0.254652,0.2136,1.53201, -0.248417,0.177075,1.4945, 0,0.177075,1.514,
+ -1.48068,0.15,0.24612, -1.4945,0.177075,0.248417, -1.514,0.177075,0,
+ -1.514,0.177075,0, -1.5,0.15,0, -1.48068,0.15,0.24612,
+ -1.42464,0.15,0.47856, -1.437937,0.177075,0.483027, -1.4945,0.177075,0.248417,
+ -1.4945,0.177075,0.248417, -1.48068,0.15,0.24612, -1.42464,0.15,0.47856,
+ -1.33476,0.15,0.69444, -1.347218,0.177075,0.700921, -1.437937,0.177075,0.483027,
+ -1.437937,0.177075,0.483027, -1.42464,0.15,0.47856, -1.33476,0.15,0.69444,
+ -1.21392,0.15,0.89088, -1.22525,0.177075,0.899195, -1.347218,0.177075,0.700921,
+ -1.347218,0.177075,0.700921, -1.33476,0.15,0.69444, -1.21392,0.15,0.89088,
+ -1.065,0.15,1.065, -1.07494,0.177075,1.07494, -1.22525,0.177075,0.899195,
+ -1.22525,0.177075,0.899195, -1.21392,0.15,0.89088, -1.065,0.15,1.065,
+ -0.89088,0.15,1.21392, -0.899195,0.177075,1.22525, -1.07494,0.177075,1.07494,
+ -1.07494,0.177075,1.07494, -1.065,0.15,1.065, -0.89088,0.15,1.21392,
+ -0.69444,0.15,1.33476, -0.700921,0.177075,1.347218, -0.899195,0.177075,1.22525,
+ -0.899195,0.177075,1.22525, -0.89088,0.15,1.21392, -0.69444,0.15,1.33476,
+ -0.47856,0.15,1.42464, -0.483027,0.177075,1.437937, -0.700921,0.177075,1.347218,
+ -0.700921,0.177075,1.347218, -0.69444,0.15,1.33476, -0.47856,0.15,1.42464,
+ -0.24612,0.15,1.48068, -0.248417,0.177075,1.4945, -0.483027,0.177075,1.437937,
+ -0.483027,0.177075,1.437937, -0.47856,0.15,1.42464, -0.24612,0.15,1.48068,
+ 0,0.15,1.5, 0,0.177075,1.514, -0.248417,0.177075,1.4945,
+ -0.248417,0.177075,1.4945, -0.24612,0.15,1.48068, 0,0.15,1.5,
+ 0.325863,0.771675,1.96042, 0.32816,0.9,1.97424, 0,0.9,2,
+ 0,0.9,2, 0,0.771675,1.986, 0.325863,0.771675,1.96042,
+ 0.633613,0.771675,1.886223, 0.63808,0.9,1.89952, 0.32816,0.9,1.97424,
+ 0.32816,0.9,1.97424, 0.325863,0.771675,1.96042, 0.633613,0.771675,1.886223,
+ 0.919439,0.771675,1.767222, 0.92592,0.9,1.77968, 0.63808,0.9,1.89952,
+ 0.63808,0.9,1.89952, 0.633613,0.771675,1.886223, 0.919439,0.771675,1.767222,
+ 1.179525,0.771675,1.60723, 1.18784,0.9,1.61856, 0.92592,0.9,1.77968,
+ 0.92592,0.9,1.77968, 0.919439,0.771675,1.767222, 1.179525,0.771675,1.60723,
+ 1.41006,0.771675,1.41006, 1.42,0.9,1.42, 1.18784,0.9,1.61856,
+ 1.18784,0.9,1.61856, 1.179525,0.771675,1.60723, 1.41006,0.771675,1.41006,
+ 1.60723,0.771675,1.179525, 1.61856,0.9,1.18784, 1.42,0.9,1.42,
+ 1.42,0.9,1.42, 1.41006,0.771675,1.41006, 1.60723,0.771675,1.179525,
+ 1.767222,0.771675,0.919439, 1.77968,0.9,0.92592, 1.61856,0.9,1.18784,
+ 1.61856,0.9,1.18784, 1.60723,0.771675,1.179525, 1.767222,0.771675,0.919439,
+ 1.886223,0.771675,0.633613, 1.89952,0.9,0.63808, 1.77968,0.9,0.92592,
+ 1.77968,0.9,0.92592, 1.767222,0.771675,0.919439, 1.886223,0.771675,0.633613,
+ 1.96042,0.771675,0.325863, 1.97424,0.9,0.32816, 1.89952,0.9,0.63808,
+ 1.89952,0.9,0.63808, 1.886223,0.771675,0.633613, 1.96042,0.771675,0.325863,
+ 1.986,0.771675,0, 2,0.9,0, 1.97424,0.9,0.32816,
+ 1.97424,0.9,0.32816, 1.96042,0.771675,0.325863, 1.986,0.771675,0,
+ 0.319628,0.6564,1.92291, 0.325863,0.771675,1.96042, 0,0.771675,1.986,
+ 0,0.771675,1.986, 0,0.6564,1.948, 0.319628,0.6564,1.92291,
+ 0.62149,0.6564,1.850132, 0.633613,0.771675,1.886223, 0.325863,0.771675,1.96042,
+ 0.325863,0.771675,1.96042, 0.319628,0.6564,1.92291, 0.62149,0.6564,1.850132,
+ 0.901846,0.6564,1.733408, 0.919439,0.771675,1.767222, 0.633613,0.771675,1.886223,
+ 0.633613,0.771675,1.886223, 0.62149,0.6564,1.850132, 0.901846,0.6564,1.733408,
+ 1.156956,0.6564,1.576477, 1.179525,0.771675,1.60723, 0.919439,0.771675,1.767222,
+ 0.919439,0.771675,1.767222, 0.901846,0.6564,1.733408, 1.156956,0.6564,1.576477,
+ 1.38308,0.6564,1.38308, 1.41006,0.771675,1.41006, 1.179525,0.771675,1.60723,
+ 1.179525,0.771675,1.60723, 1.156956,0.6564,1.576477, 1.38308,0.6564,1.38308,
+ 1.576477,0.6564,1.156956, 1.60723,0.771675,1.179525, 1.41006,0.771675,1.41006,
+ 1.41006,0.771675,1.41006, 1.38308,0.6564,1.38308, 1.576477,0.6564,1.156956,
+ 1.733408,0.6564,0.901846, 1.767222,0.771675,0.919439, 1.60723,0.771675,1.179525,
+ 1.60723,0.771675,1.179525, 1.576477,0.6564,1.156956, 1.733408,0.6564,0.901846,
+ 1.850132,0.6564,0.62149, 1.886223,0.771675,0.633613, 1.767222,0.771675,0.919439,
+ 1.767222,0.771675,0.919439, 1.733408,0.6564,0.901846, 1.850132,0.6564,0.62149,
+ 1.92291,0.6564,0.319628, 1.96042,0.771675,0.325863, 1.886223,0.771675,0.633613,
+ 1.886223,0.771675,0.633613, 1.850132,0.6564,0.62149, 1.92291,0.6564,0.319628,
+ 1.948,0.6564,0, 1.986,0.771675,0, 1.96042,0.771675,0.325863,
+ 1.96042,0.771675,0.325863, 1.92291,0.6564,0.319628, 1.948,0.6564,0,
+ 0.310439,0.553725,1.867631, 0.319628,0.6564,1.92291, 0,0.6564,1.948,
+ 0,0.6564,1.948, 0,0.553725,1.892, 0.310439,0.553725,1.867631,
+ 0.603624,0.553725,1.796946, 0.62149,0.6564,1.850132, 0.319628,0.6564,1.92291,
+ 0.319628,0.6564,1.92291, 0.310439,0.553725,1.867631, 0.603624,0.553725,1.796946,
+ 0.87592,0.553725,1.683577, 0.901846,0.6564,1.733408, 0.62149,0.6564,1.850132,
+ 0.62149,0.6564,1.850132, 0.603624,0.553725,1.796946, 0.87592,0.553725,1.683577,
+ 1.123697,0.553725,1.531158, 1.156956,0.6564,1.576477, 0.901846,0.6564,1.733408,
+ 0.901846,0.6564,1.733408, 0.87592,0.553725,1.683577, 1.123697,0.553725,1.531158,
+ 1.34332,0.553725,1.34332, 1.38308,0.6564,1.38308, 1.156956,0.6564,1.576477,
+ 1.156956,0.6564,1.576477, 1.123697,0.553725,1.531158, 1.34332,0.553725,1.34332,
+ 1.531158,0.553725,1.123697, 1.576477,0.6564,1.156956, 1.38308,0.6564,1.38308,
+ 1.38308,0.6564,1.38308, 1.34332,0.553725,1.34332, 1.531158,0.553725,1.123697,
+ 1.683577,0.553725,0.87592, 1.733408,0.6564,0.901846, 1.576477,0.6564,1.156956,
+ 1.576477,0.6564,1.156956, 1.531158,0.553725,1.123697, 1.683577,0.553725,0.87592,
+ 1.796946,0.553725,0.603624, 1.850132,0.6564,0.62149, 1.733408,0.6564,0.901846,
+ 1.733408,0.6564,0.901846, 1.683577,0.553725,0.87592, 1.796946,0.553725,0.603624,
+ 1.867631,0.553725,0.310439, 1.92291,0.6564,0.319628, 1.850132,0.6564,0.62149,
+ 1.850132,0.6564,0.62149, 1.796946,0.553725,0.603624, 1.867631,0.553725,0.310439,
+ 1.892,0.553725,0, 1.948,0.6564,0, 1.92291,0.6564,0.319628,
+ 1.92291,0.6564,0.319628, 1.867631,0.553725,0.310439, 1.892,0.553725,0,
+ 0.299282,0.4632,1.800507, 0.310439,0.553725,1.867631, 0,0.553725,1.892,
+ 0,0.553725,1.892, 0,0.4632,1.824, 0.299282,0.4632,1.800507,
+ 0.581929,0.4632,1.732362, 0.603624,0.553725,1.796946, 0.310439,0.553725,1.867631,
+ 0.310439,0.553725,1.867631, 0.299282,0.4632,1.800507, 0.581929,0.4632,1.732362,
+ 0.844439,0.4632,1.623068, 0.87592,0.553725,1.683577, 0.603624,0.553725,1.796946,
+ 0.603624,0.553725,1.796946, 0.581929,0.4632,1.732362, 0.844439,0.4632,1.623068,
+ 1.08331,0.4632,1.476127, 1.123697,0.553725,1.531158, 0.87592,0.553725,1.683577,
+ 0.87592,0.553725,1.683577, 0.844439,0.4632,1.623068, 1.08331,0.4632,1.476127,
+ 1.29504,0.4632,1.29504, 1.34332,0.553725,1.34332, 1.123697,0.553725,1.531158,
+ 1.123697,0.553725,1.531158, 1.08331,0.4632,1.476127, 1.29504,0.4632,1.29504,
+ 1.476127,0.4632,1.08331, 1.531158,0.553725,1.123697, 1.34332,0.553725,1.34332,
+ 1.34332,0.553725,1.34332, 1.29504,0.4632,1.29504, 1.476127,0.4632,1.08331,
+ 1.623068,0.4632,0.844439, 1.683577,0.553725,0.87592, 1.531158,0.553725,1.123697,
+ 1.531158,0.553725,1.123697, 1.476127,0.4632,1.08331, 1.623068,0.4632,0.844439,
+ 1.732362,0.4632,0.581929, 1.796946,0.553725,0.603624, 1.683577,0.553725,0.87592,
+ 1.683577,0.553725,0.87592, 1.623068,0.4632,0.844439, 1.732362,0.4632,0.581929,
+ 1.800507,0.4632,0.299282, 1.867631,0.553725,0.310439, 1.796946,0.553725,0.603624,
+ 1.796946,0.553725,0.603624, 1.732362,0.4632,0.581929, 1.800507,0.4632,0.299282,
+ 1.824,0.4632,0, 1.892,0.553725,0, 1.867631,0.553725,0.310439,
+ 1.867631,0.553725,0.310439, 1.800507,0.4632,0.299282, 1.824,0.4632,0,
+ 0.28714,0.384375,1.72746, 0.299282,0.4632,1.800507, 0,0.4632,1.824,
+ 0,0.4632,1.824, 0,0.384375,1.75, 0.28714,0.384375,1.72746,
+ 0.55832,0.384375,1.66208, 0.581929,0.4632,1.732362, 0.299282,0.4632,1.800507,
+ 0.299282,0.4632,1.800507, 0.28714,0.384375,1.72746, 0.55832,0.384375,1.66208,
+ 0.81018,0.384375,1.55722, 0.844439,0.4632,1.623068, 0.581929,0.4632,1.732362,
+ 0.581929,0.4632,1.732362, 0.55832,0.384375,1.66208, 0.81018,0.384375,1.55722,
+ 1.03936,0.384375,1.41624, 1.08331,0.4632,1.476127, 0.844439,0.4632,1.623068,
+ 0.844439,0.4632,1.623068, 0.81018,0.384375,1.55722, 1.03936,0.384375,1.41624,
+ 1.2425,0.384375,1.2425, 1.29504,0.4632,1.29504, 1.08331,0.4632,1.476127,
+ 1.08331,0.4632,1.476127, 1.03936,0.384375,1.41624, 1.2425,0.384375,1.2425,
+ 1.41624,0.384375,1.03936, 1.476127,0.4632,1.08331, 1.29504,0.4632,1.29504,
+ 1.29504,0.4632,1.29504, 1.2425,0.384375,1.2425, 1.41624,0.384375,1.03936,
+ 1.55722,0.384375,0.81018, 1.623068,0.4632,0.844439, 1.476127,0.4632,1.08331,
+ 1.476127,0.4632,1.08331, 1.41624,0.384375,1.03936, 1.55722,0.384375,0.81018,
+ 1.66208,0.384375,0.55832, 1.732362,0.4632,0.581929, 1.623068,0.4632,0.844439,
+ 1.623068,0.4632,0.844439, 1.55722,0.384375,0.81018, 1.66208,0.384375,0.55832,
+ 1.72746,0.384375,0.28714, 1.800507,0.4632,0.299282, 1.732362,0.4632,0.581929,
+ 1.732362,0.4632,0.581929, 1.66208,0.384375,0.55832, 1.72746,0.384375,0.28714,
+ 1.75,0.384375,0, 1.824,0.4632,0, 1.800507,0.4632,0.299282,
+ 1.800507,0.4632,0.299282, 1.72746,0.384375,0.28714, 1.75,0.384375,0,
+ 0.274998,0.3168,1.654413, 0.28714,0.384375,1.72746, 0,0.384375,1.75,
+ 0,0.384375,1.75, 0,0.3168,1.676, 0.274998,0.3168,1.654413,
+ 0.534711,0.3168,1.591798, 0.55832,0.384375,1.66208, 0.28714,0.384375,1.72746,
+ 0.28714,0.384375,1.72746, 0.274998,0.3168,1.654413, 0.534711,0.3168,1.591798,
+ 0.775921,0.3168,1.491372, 0.81018,0.384375,1.55722, 0.55832,0.384375,1.66208,
+ 0.55832,0.384375,1.66208, 0.534711,0.3168,1.591798, 0.775921,0.3168,1.491372,
+ 0.99541,0.3168,1.356353, 1.03936,0.384375,1.41624, 0.81018,0.384375,1.55722,
+ 0.81018,0.384375,1.55722, 0.775921,0.3168,1.491372, 0.99541,0.3168,1.356353,
+ 1.18996,0.3168,1.18996, 1.2425,0.384375,1.2425, 1.03936,0.384375,1.41624,
+ 1.03936,0.384375,1.41624, 0.99541,0.3168,1.356353, 1.18996,0.3168,1.18996,
+ 1.356353,0.3168,0.99541, 1.41624,0.384375,1.03936, 1.2425,0.384375,1.2425,
+ 1.2425,0.384375,1.2425, 1.18996,0.3168,1.18996, 1.356353,0.3168,0.99541,
+ 1.491372,0.3168,0.775921, 1.55722,0.384375,0.81018, 1.41624,0.384375,1.03936,
+ 1.41624,0.384375,1.03936, 1.356353,0.3168,0.99541, 1.491372,0.3168,0.775921,
+ 1.591798,0.3168,0.534711, 1.66208,0.384375,0.55832, 1.55722,0.384375,0.81018,
+ 1.55722,0.384375,0.81018, 1.491372,0.3168,0.775921, 1.591798,0.3168,0.534711,
+ 1.654413,0.3168,0.274998, 1.72746,0.384375,0.28714, 1.66208,0.384375,0.55832,
+ 1.66208,0.384375,0.55832, 1.591798,0.3168,0.534711, 1.654413,0.3168,0.274998,
+ 1.676,0.3168,0, 1.75,0.384375,0, 1.72746,0.384375,0.28714,
+ 1.72746,0.384375,0.28714, 1.654413,0.3168,0.274998, 1.676,0.3168,0,
+ 0.263841,0.260025,1.587289, 0.274998,0.3168,1.654413, 0,0.3168,1.676,
+ 0,0.3168,1.676, 0,0.260025,1.608, 0.263841,0.260025,1.587289,
+ 0.513016,0.260025,1.527214, 0.534711,0.3168,1.591798, 0.274998,0.3168,1.654413,
+ 0.274998,0.3168,1.654413, 0.263841,0.260025,1.587289, 0.513016,0.260025,1.527214,
+ 0.74444,0.260025,1.430863, 0.775921,0.3168,1.491372, 0.534711,0.3168,1.591798,
+ 0.534711,0.3168,1.591798, 0.513016,0.260025,1.527214, 0.74444,0.260025,1.430863,
+ 0.955023,0.260025,1.301322, 0.99541,0.3168,1.356353, 0.775921,0.3168,1.491372,
+ 0.775921,0.3168,1.491372, 0.74444,0.260025,1.430863, 0.955023,0.260025,1.301322,
+ 1.14168,0.260025,1.14168, 1.18996,0.3168,1.18996, 0.99541,0.3168,1.356353,
+ 0.99541,0.3168,1.356353, 0.955023,0.260025,1.301322, 1.14168,0.260025,1.14168,
+ 1.301322,0.260025,0.955023, 1.356353,0.3168,0.99541, 1.18996,0.3168,1.18996,
+ 1.18996,0.3168,1.18996, 1.14168,0.260025,1.14168, 1.301322,0.260025,0.955023,
+ 1.430863,0.260025,0.74444, 1.491372,0.3168,0.775921, 1.356353,0.3168,0.99541,
+ 1.356353,0.3168,0.99541, 1.301322,0.260025,0.955023, 1.430863,0.260025,0.74444,
+ 1.527214,0.260025,0.513016, 1.591798,0.3168,0.534711, 1.491372,0.3168,0.775921,
+ 1.491372,0.3168,0.775921, 1.430863,0.260025,0.74444, 1.527214,0.260025,0.513016,
+ 1.587289,0.260025,0.263841, 1.654413,0.3168,0.274998, 1.591798,0.3168,0.534711,
+ 1.591798,0.3168,0.534711, 1.527214,0.260025,0.513016, 1.587289,0.260025,0.263841,
+ 1.608,0.260025,0, 1.676,0.3168,0, 1.654413,0.3168,0.274998,
+ 1.654413,0.3168,0.274998, 1.587289,0.260025,0.263841, 1.608,0.260025,0,
+ 0.254652,0.2136,1.53201, 0.263841,0.260025,1.587289, 0,0.260025,1.608,
+ 0,0.260025,1.608, 0,0.2136,1.552, 0.254652,0.2136,1.53201,
+ 0.49515,0.2136,1.474028, 0.513016,0.260025,1.527214, 0.263841,0.260025,1.587289,
+ 0.263841,0.260025,1.587289, 0.254652,0.2136,1.53201, 0.49515,0.2136,1.474028,
+ 0.718514,0.2136,1.381032, 0.74444,0.260025,1.430863, 0.513016,0.260025,1.527214,
+ 0.513016,0.260025,1.527214, 0.49515,0.2136,1.474028, 0.718514,0.2136,1.381032,
+ 0.921764,0.2136,1.256003, 0.955023,0.260025,1.301322, 0.74444,0.260025,1.430863,
+ 0.74444,0.260025,1.430863, 0.718514,0.2136,1.381032, 0.921764,0.2136,1.256003,
+ 1.10192,0.2136,1.10192, 1.14168,0.260025,1.14168, 0.955023,0.260025,1.301322,
+ 0.955023,0.260025,1.301322, 0.921764,0.2136,1.256003, 1.10192,0.2136,1.10192,
+ 1.256003,0.2136,0.921764, 1.301322,0.260025,0.955023, 1.14168,0.260025,1.14168,
+ 1.14168,0.260025,1.14168, 1.10192,0.2136,1.10192, 1.256003,0.2136,0.921764,
+ 1.381032,0.2136,0.718514, 1.430863,0.260025,0.74444, 1.301322,0.260025,0.955023,
+ 1.301322,0.260025,0.955023, 1.256003,0.2136,0.921764, 1.381032,0.2136,0.718514,
+ 1.474028,0.2136,0.49515, 1.527214,0.260025,0.513016, 1.430863,0.260025,0.74444,
+ 1.430863,0.260025,0.74444, 1.381032,0.2136,0.718514, 1.474028,0.2136,0.49515,
+ 1.53201,0.2136,0.254652, 1.587289,0.260025,0.263841, 1.527214,0.260025,0.513016,
+ 1.527214,0.260025,0.513016, 1.474028,0.2136,0.49515, 1.53201,0.2136,0.254652,
+ 1.552,0.2136,0, 1.608,0.260025,0, 1.587289,0.260025,0.263841,
+ 1.587289,0.260025,0.263841, 1.53201,0.2136,0.254652, 1.552,0.2136,0,
+ 0.248417,0.177075,1.4945, 0.254652,0.2136,1.53201, 0,0.2136,1.552,
+ 0,0.2136,1.552, 0,0.177075,1.514, 0.248417,0.177075,1.4945,
+ 0.483027,0.177075,1.437937, 0.49515,0.2136,1.474028, 0.254652,0.2136,1.53201,
+ 0.254652,0.2136,1.53201, 0.248417,0.177075,1.4945, 0.483027,0.177075,1.437937,
+ 0.700921,0.177075,1.347218, 0.718514,0.2136,1.381032, 0.49515,0.2136,1.474028,
+ 0.49515,0.2136,1.474028, 0.483027,0.177075,1.437937, 0.700921,0.177075,1.347218,
+ 0.899195,0.177075,1.22525, 0.921764,0.2136,1.256003, 0.718514,0.2136,1.381032,
+ 0.718514,0.2136,1.381032, 0.700921,0.177075,1.347218, 0.899195,0.177075,1.22525,
+ 1.07494,0.177075,1.07494, 1.10192,0.2136,1.10192, 0.921764,0.2136,1.256003,
+ 0.921764,0.2136,1.256003, 0.899195,0.177075,1.22525, 1.07494,0.177075,1.07494,
+ 1.22525,0.177075,0.899195, 1.256003,0.2136,0.921764, 1.10192,0.2136,1.10192,
+ 1.10192,0.2136,1.10192, 1.07494,0.177075,1.07494, 1.22525,0.177075,0.899195,
+ 1.347218,0.177075,0.700921, 1.381032,0.2136,0.718514, 1.256003,0.2136,0.921764,
+ 1.256003,0.2136,0.921764, 1.22525,0.177075,0.899195, 1.347218,0.177075,0.700921,
+ 1.437937,0.177075,0.483027, 1.474028,0.2136,0.49515, 1.381032,0.2136,0.718514,
+ 1.381032,0.2136,0.718514, 1.347218,0.177075,0.700921, 1.437937,0.177075,0.483027,
+ 1.4945,0.177075,0.248417, 1.53201,0.2136,0.254652, 1.474028,0.2136,0.49515,
+ 1.474028,0.2136,0.49515, 1.437937,0.177075,0.483027, 1.4945,0.177075,0.248417,
+ 1.514,0.177075,0, 1.552,0.2136,0, 1.53201,0.2136,0.254652,
+ 1.53201,0.2136,0.254652, 1.4945,0.177075,0.248417, 1.514,0.177075,0,
+ 0.24612,0.15,1.48068, 0.248417,0.177075,1.4945, 0,0.177075,1.514,
+ 0,0.177075,1.514, 0,0.15,1.5, 0.24612,0.15,1.48068,
+ 0.47856,0.15,1.42464, 0.483027,0.177075,1.437937, 0.248417,0.177075,1.4945,
+ 0.248417,0.177075,1.4945, 0.24612,0.15,1.48068, 0.47856,0.15,1.42464,
+ 0.69444,0.15,1.33476, 0.700921,0.177075,1.347218, 0.483027,0.177075,1.437937,
+ 0.483027,0.177075,1.437937, 0.47856,0.15,1.42464, 0.69444,0.15,1.33476,
+ 0.89088,0.15,1.21392, 0.899195,0.177075,1.22525, 0.700921,0.177075,1.347218,
+ 0.700921,0.177075,1.347218, 0.69444,0.15,1.33476, 0.89088,0.15,1.21392,
+ 1.065,0.15,1.065, 1.07494,0.177075,1.07494, 0.899195,0.177075,1.22525,
+ 0.899195,0.177075,1.22525, 0.89088,0.15,1.21392, 1.065,0.15,1.065,
+ 1.21392,0.15,0.89088, 1.22525,0.177075,0.899195, 1.07494,0.177075,1.07494,
+ 1.07494,0.177075,1.07494, 1.065,0.15,1.065, 1.21392,0.15,0.89088,
+ 1.33476,0.15,0.69444, 1.347218,0.177075,0.700921, 1.22525,0.177075,0.899195,
+ 1.22525,0.177075,0.899195, 1.21392,0.15,0.89088, 1.33476,0.15,0.69444,
+ 1.42464,0.15,0.47856, 1.437937,0.177075,0.483027, 1.347218,0.177075,0.700921,
+ 1.347218,0.177075,0.700921, 1.33476,0.15,0.69444, 1.42464,0.15,0.47856,
+ 1.48068,0.15,0.24612, 1.4945,0.177075,0.248417, 1.437937,0.177075,0.483027,
+ 1.437937,0.177075,0.483027, 1.42464,0.15,0.47856, 1.48068,0.15,0.24612,
+ 1.5,0.15,0, 1.514,0.177075,0, 1.4945,0.177075,0.248417,
+ 1.4945,0.177075,0.248417, 1.48068,0.15,0.24612, 1.5,0.15,0,
+ -1.800455,2.031069,-0.081, -1.5972,2.0313,-0.081, -1.6,2.025,0,
+ -1.6,2.025,0, -1.8009,2.024775,0, -1.800455,2.031069,-0.081,
+ -1.799246,2.048152,-0.144, -1.5896,2.0484,-0.144, -1.5972,2.0313,-0.081,
+ -1.5972,2.0313,-0.081, -1.800455,2.031069,-0.081, -1.799246,2.048152,-0.144,
+ -1.797466,2.073326,-0.189, -1.5784,2.0736,-0.189, -1.5896,2.0484,-0.144,
+ -1.5896,2.0484,-0.144, -1.799246,2.048152,-0.144, -1.797466,2.073326,-0.189,
+ -1.795303,2.103896,-0.216, -1.5648,2.1042,-0.216, -1.5784,2.0736,-0.189,
+ -1.5784,2.0736,-0.189, -1.797466,2.073326,-0.189, -1.795303,2.103896,-0.216,
+ -1.79295,2.137163,-0.225, -1.55,2.1375,-0.225, -1.5648,2.1042,-0.216,
+ -1.5648,2.1042,-0.216, -1.795303,2.103896,-0.216, -1.79295,2.137163,-0.225,
+ -1.790597,2.170429,-0.216, -1.5352,2.1708,-0.216, -1.55,2.1375,-0.225,
+ -1.55,2.1375,-0.225, -1.79295,2.137163,-0.225, -1.790597,2.170429,-0.216,
+ -1.788434,2.200999,-0.189, -1.5216,2.2014,-0.189, -1.5352,2.1708,-0.216,
+ -1.5352,2.1708,-0.216, -1.790597,2.170429,-0.216, -1.788434,2.200999,-0.189,
+ -1.786654,2.226173,-0.144, -1.5104,2.2266,-0.144, -1.5216,2.2014,-0.189,
+ -1.5216,2.2014,-0.189, -1.788434,2.200999,-0.189, -1.786654,2.226173,-0.144,
+ -1.785445,2.243256,-0.081, -1.5028,2.2437,-0.081, -1.5104,2.2266,-0.144,
+ -1.5104,2.2266,-0.144, -1.786654,2.226173,-0.144, -1.785445,2.243256,-0.081,
+ -1.785,2.24955,0, -1.5,2.25,0, -1.5028,2.2437,-0.081,
+ -1.5028,2.2437,-0.081, -1.785445,2.243256,-0.081, -1.785,2.24955,0,
+ -1.98479,2.02945,-0.081, -1.800455,2.031069,-0.081, -1.8009,2.024775,0,
+ -1.8009,2.024775,0, -1.9832,2.0232,0, -1.98479,2.02945,-0.081,
+ -1.989107,2.046413,-0.144, -1.799246,2.048152,-0.144, -1.800455,2.031069,-0.081,
+ -1.800455,2.031069,-0.081, -1.98479,2.02945,-0.081, -1.989107,2.046413,-0.144,
+ -1.995469,2.071411,-0.189, -1.797466,2.073326,-0.189, -1.799246,2.048152,-0.144,
+ -1.799246,2.048152,-0.144, -1.989107,2.046413,-0.144, -1.995469,2.071411,-0.189,
+ -2.003194,2.101766,-0.216, -1.795303,2.103896,-0.216, -1.797466,2.073326,-0.189,
+ -1.797466,2.073326,-0.189, -1.995469,2.071411,-0.189, -2.003194,2.101766,-0.216,
+ -2.0116,2.1348,-0.225, -1.79295,2.137163,-0.225, -1.795303,2.103896,-0.216,
+ -1.795303,2.103896,-0.216, -2.003194,2.101766,-0.216, -2.0116,2.1348,-0.225,
+ -2.020006,2.167834,-0.216, -1.790597,2.170429,-0.216, -1.79295,2.137163,-0.225,
+ -1.79295,2.137163,-0.225, -2.0116,2.1348,-0.225, -2.020006,2.167834,-0.216,
+ -2.027731,2.198189,-0.189, -1.788434,2.200999,-0.189, -1.790597,2.170429,-0.216,
+ -1.790597,2.170429,-0.216, -2.020006,2.167834,-0.216, -2.027731,2.198189,-0.189,
+ -2.034093,2.223187,-0.144, -1.786654,2.226173,-0.144, -1.788434,2.200999,-0.189,
+ -1.788434,2.200999,-0.189, -2.027731,2.198189,-0.189, -2.034093,2.223187,-0.144,
+ -2.03841,2.24015,-0.081, -1.785445,2.243256,-0.081, -1.786654,2.226173,-0.144,
+ -1.786654,2.226173,-0.144, -2.034093,2.223187,-0.144, -2.03841,2.24015,-0.081,
+ -2.04,2.2464,0, -1.785,2.24955,0, -1.785445,2.243256,-0.081,
+ -1.785445,2.243256,-0.081, -2.03841,2.24015,-0.081, -2.04,2.2464,0,
+ -2.149624,2.025055,-0.081, -1.98479,2.02945,-0.081, -1.9832,2.0232,0,
+ -1.9832,2.0232,0, -2.1463,2.018925,0, -2.149624,2.025055,-0.081,
+ -2.158645,2.041693,-0.144, -1.989107,2.046413,-0.144, -1.98479,2.02945,-0.081,
+ -1.98479,2.02945,-0.081, -2.149624,2.025055,-0.081, -2.158645,2.041693,-0.144,
+ -2.171939,2.066213,-0.189, -1.995469,2.071411,-0.189, -1.989107,2.046413,-0.144,
+ -1.989107,2.046413,-0.144, -2.158645,2.041693,-0.144, -2.171939,2.066213,-0.189,
+ -2.188082,2.095987,-0.216, -2.003194,2.101766,-0.216, -1.995469,2.071411,-0.189,
+ -1.995469,2.071411,-0.189, -2.171939,2.066213,-0.189, -2.188082,2.095987,-0.216,
+ -2.20565,2.128388,-0.225, -2.0116,2.1348,-0.225, -2.003194,2.101766,-0.216,
+ -2.003194,2.101766,-0.216, -2.188082,2.095987,-0.216, -2.20565,2.128388,-0.225,
+ -2.223218,2.160788,-0.216, -2.020006,2.167834,-0.216, -2.0116,2.1348,-0.225,
+ -2.0116,2.1348,-0.225, -2.20565,2.128388,-0.225, -2.223218,2.160788,-0.216,
+ -2.239361,2.190562,-0.189, -2.027731,2.198189,-0.189, -2.020006,2.167834,-0.216,
+ -2.020006,2.167834,-0.216, -2.223218,2.160788,-0.216, -2.239361,2.190562,-0.189,
+ -2.252655,2.215082,-0.144, -2.034093,2.223187,-0.144, -2.027731,2.198189,-0.189,
+ -2.027731,2.198189,-0.189, -2.239361,2.190562,-0.189, -2.252655,2.215082,-0.144,
+ -2.261676,2.23172,-0.081, -2.03841,2.24015,-0.081, -2.034093,2.223187,-0.144,
+ -2.034093,2.223187,-0.144, -2.252655,2.215082,-0.144, -2.261676,2.23172,-0.081,
+ -2.265,2.23785,0, -2.04,2.2464,0, -2.03841,2.24015,-0.081,
+ -2.03841,2.24015,-0.081, -2.261676,2.23172,-0.081, -2.265,2.23785,0,
+ -2.294371,2.016497,-0.081, -2.149624,2.025055,-0.081, -2.1463,2.018925,0,
+ -2.1463,2.018925,0, -2.2896,2.0106,0, -2.294371,2.016497,-0.081,
+ -2.307322,2.032502,-0.144, -2.158645,2.041693,-0.144, -2.149624,2.025055,-0.081,
+ -2.149624,2.025055,-0.081, -2.294371,2.016497,-0.081, -2.307322,2.032502,-0.144,
+ -2.326406,2.05609,-0.189, -2.171939,2.066213,-0.189, -2.158645,2.041693,-0.144,
+ -2.158645,2.041693,-0.144, -2.307322,2.032502,-0.144, -2.326406,2.05609,-0.189,
+ -2.349581,2.084731,-0.216, -2.188082,2.095987,-0.216, -2.171939,2.066213,-0.189,
+ -2.171939,2.066213,-0.189, -2.326406,2.05609,-0.189, -2.349581,2.084731,-0.216,
+ -2.3748,2.1159,-0.225, -2.20565,2.128388,-0.225, -2.188082,2.095987,-0.216,
+ -2.188082,2.095987,-0.216, -2.349581,2.084731,-0.216, -2.3748,2.1159,-0.225,
+ -2.400019,2.147069,-0.216, -2.223218,2.160788,-0.216, -2.20565,2.128388,-0.225,
+ -2.20565,2.128388,-0.225, -2.3748,2.1159,-0.225, -2.400019,2.147069,-0.216,
+ -2.423194,2.17571,-0.189, -2.239361,2.190562,-0.189, -2.223218,2.160788,-0.216,
+ -2.223218,2.160788,-0.216, -2.400019,2.147069,-0.216, -2.423194,2.17571,-0.189,
+ -2.442278,2.199298,-0.144, -2.252655,2.215082,-0.144, -2.239361,2.190562,-0.189,
+ -2.239361,2.190562,-0.189, -2.423194,2.17571,-0.189, -2.442278,2.199298,-0.144,
+ -2.455229,2.215303,-0.081, -2.261676,2.23172,-0.081, -2.252655,2.215082,-0.144,
+ -2.252655,2.215082,-0.144, -2.442278,2.199298,-0.144, -2.455229,2.215303,-0.081,
+ -2.46,2.2212,0, -2.265,2.23785,0, -2.261676,2.23172,-0.081,
+ -2.261676,2.23172,-0.081, -2.455229,2.215303,-0.081, -2.46,2.2212,0,
+ -2.41845,2.002387,-0.081, -2.294371,2.016497,-0.081, -2.2896,2.0106,0,
+ -2.2896,2.0106,0, -2.4125,1.996875,0, -2.41845,2.002387,-0.081,
+ -2.4346,2.01735,-0.144, -2.307322,2.032502,-0.144, -2.294371,2.016497,-0.081,
+ -2.294371,2.016497,-0.081, -2.41845,2.002387,-0.081, -2.4346,2.01735,-0.144,
+ -2.4584,2.0394,-0.189, -2.326406,2.05609,-0.189, -2.307322,2.032502,-0.144,
+ -2.307322,2.032502,-0.144, -2.4346,2.01735,-0.144, -2.4584,2.0394,-0.189,
+ -2.4873,2.066175,-0.216, -2.349581,2.084731,-0.216, -2.326406,2.05609,-0.189,
+ -2.326406,2.05609,-0.189, -2.4584,2.0394,-0.189, -2.4873,2.066175,-0.216,
+ -2.51875,2.095312,-0.225, -2.3748,2.1159,-0.225, -2.349581,2.084731,-0.216,
+ -2.349581,2.084731,-0.216, -2.4873,2.066175,-0.216, -2.51875,2.095312,-0.225,
+ -2.5502,2.12445,-0.216, -2.400019,2.147069,-0.216, -2.3748,2.1159,-0.225,
+ -2.3748,2.1159,-0.225, -2.51875,2.095312,-0.225, -2.5502,2.12445,-0.216,
+ -2.5791,2.151225,-0.189, -2.423194,2.17571,-0.189, -2.400019,2.147069,-0.216,
+ -2.400019,2.147069,-0.216, -2.5502,2.12445,-0.216, -2.5791,2.151225,-0.189,
+ -2.6029,2.173275,-0.144, -2.442278,2.199298,-0.144, -2.423194,2.17571,-0.189,
+ -2.423194,2.17571,-0.189, -2.5791,2.151225,-0.189, -2.6029,2.173275,-0.144,
+ -2.61905,2.188238,-0.081, -2.455229,2.215303,-0.081, -2.442278,2.199298,-0.144,
+ -2.442278,2.199298,-0.144, -2.6029,2.173275,-0.144, -2.61905,2.188238,-0.081,
+ -2.625,2.19375,0, -2.46,2.2212,0, -2.455229,2.215303,-0.081,
+ -2.455229,2.215303,-0.081, -2.61905,2.188238,-0.081, -2.625,2.19375,0,
+ -2.521277,1.981339,-0.081, -2.41845,2.002387,-0.081, -2.4125,1.996875,0,
+ -2.4125,1.996875,0, -2.5144,1.9764,0, -2.521277,1.981339,-0.081,
+ -2.539942,1.994746,-0.144, -2.4346,2.01735,-0.144, -2.41845,2.002387,-0.081,
+ -2.41845,2.002387,-0.081, -2.521277,1.981339,-0.081, -2.539942,1.994746,-0.144,
+ -2.56745,2.014502,-0.189, -2.4584,2.0394,-0.189, -2.4346,2.01735,-0.144,
+ -2.4346,2.01735,-0.144, -2.539942,1.994746,-0.144, -2.56745,2.014502,-0.189,
+ -2.600851,2.038493,-0.216, -2.4873,2.066175,-0.216, -2.4584,2.0394,-0.189,
+ -2.4584,2.0394,-0.189, -2.56745,2.014502,-0.189, -2.600851,2.038493,-0.216,
+ -2.6372,2.0646,-0.225, -2.51875,2.095312,-0.225, -2.4873,2.066175,-0.216,
+ -2.4873,2.066175,-0.216, -2.600851,2.038493,-0.216, -2.6372,2.0646,-0.225,
+ -2.673549,2.090707,-0.216, -2.5502,2.12445,-0.216, -2.51875,2.095312,-0.225,
+ -2.51875,2.095312,-0.225, -2.6372,2.0646,-0.225, -2.673549,2.090707,-0.216,
+ -2.70695,2.114698,-0.189, -2.5791,2.151225,-0.189, -2.5502,2.12445,-0.216,
+ -2.5502,2.12445,-0.216, -2.673549,2.090707,-0.216, -2.70695,2.114698,-0.189,
+ -2.734458,2.134454,-0.144, -2.6029,2.173275,-0.144, -2.5791,2.151225,-0.189,
+ -2.5791,2.151225,-0.189, -2.70695,2.114698,-0.189, -2.734458,2.134454,-0.144,
+ -2.753123,2.147861,-0.081, -2.61905,2.188238,-0.081, -2.6029,2.173275,-0.144,
+ -2.6029,2.173275,-0.144, -2.734458,2.134454,-0.144, -2.753123,2.147861,-0.081,
+ -2.76,2.1528,0, -2.625,2.19375,0, -2.61905,2.188238,-0.081,
+ -2.61905,2.188238,-0.081, -2.753123,2.147861,-0.081, -2.76,2.1528,0,
+ -2.602268,1.951964,-0.081, -2.521277,1.981339,-0.081, -2.5144,1.9764,0,
+ -2.5144,1.9764,0, -2.5947,1.947825,0, -2.602268,1.951964,-0.081,
+ -2.622811,1.963199,-0.144, -2.539942,1.994746,-0.144, -2.521277,1.981339,-0.081,
+ -2.521277,1.981339,-0.081, -2.602268,1.951964,-0.081, -2.622811,1.963199,-0.144,
+ -2.653085,1.979755,-0.189, -2.56745,2.014502,-0.189, -2.539942,1.994746,-0.144,
+ -2.539942,1.994746,-0.144, -2.622811,1.963199,-0.144, -2.653085,1.979755,-0.189,
+ -2.689846,1.999859,-0.216, -2.600851,2.038493,-0.216, -2.56745,2.014502,-0.189,
+ -2.56745,2.014502,-0.189, -2.653085,1.979755,-0.189, -2.689846,1.999859,-0.216,
+ -2.72985,2.021737,-0.225, -2.6372,2.0646,-0.225, -2.600851,2.038493,-0.216,
+ -2.600851,2.038493,-0.216, -2.689846,1.999859,-0.216, -2.72985,2.021737,-0.225,
+ -2.769854,2.043616,-0.216, -2.673549,2.090707,-0.216, -2.6372,2.0646,-0.225,
+ -2.6372,2.0646,-0.225, -2.72985,2.021737,-0.225, -2.769854,2.043616,-0.216,
+ -2.806615,2.06372,-0.189, -2.70695,2.114698,-0.189, -2.673549,2.090707,-0.216,
+ -2.673549,2.090707,-0.216, -2.769854,2.043616,-0.216, -2.806615,2.06372,-0.189,
+ -2.836889,2.080276,-0.144, -2.734458,2.134454,-0.144, -2.70695,2.114698,-0.189,
+ -2.70695,2.114698,-0.189, -2.806615,2.06372,-0.189, -2.836889,2.080276,-0.144,
+ -2.857432,2.091511,-0.081, -2.753123,2.147861,-0.081, -2.734458,2.134454,-0.144,
+ -2.734458,2.134454,-0.144, -2.836889,2.080276,-0.144, -2.857432,2.091511,-0.081,
+ -2.865,2.09565,0, -2.76,2.1528,0, -2.753123,2.147861,-0.081,
+ -2.753123,2.147861,-0.081, -2.857432,2.091511,-0.081, -2.865,2.09565,0,
+ -2.660842,1.912874,-0.081, -2.602268,1.951964,-0.081, -2.5947,1.947825,0,
+ -2.5947,1.947825,0, -2.6528,1.9098,0, -2.660842,1.912874,-0.081,
+ -2.682669,1.921219,-0.144, -2.622811,1.963199,-0.144, -2.602268,1.951964,-0.081,
+ -2.602268,1.951964,-0.081, -2.660842,1.912874,-0.081, -2.682669,1.921219,-0.144,
+ -2.714835,1.933517,-0.189, -2.653085,1.979755,-0.189, -2.622811,1.963199,-0.144,
+ -2.622811,1.963199,-0.144, -2.682669,1.921219,-0.144, -2.714835,1.933517,-0.189,
+ -2.753894,1.94845,-0.216, -2.689846,1.999859,-0.216, -2.653085,1.979755,-0.189,
+ -2.653085,1.979755,-0.189, -2.714835,1.933517,-0.189, -2.753894,1.94845,-0.216,
+ -2.7964,1.9647,-0.225, -2.72985,2.021737,-0.225, -2.689846,1.999859,-0.216,
+ -2.689846,1.999859,-0.216, -2.753894,1.94845,-0.216, -2.7964,1.9647,-0.225,
+ -2.838906,1.98095,-0.216, -2.769854,2.043616,-0.216, -2.72985,2.021737,-0.225,
+ -2.72985,2.021737,-0.225, -2.7964,1.9647,-0.225, -2.838906,1.98095,-0.216,
+ -2.877965,1.995883,-0.189, -2.806615,2.06372,-0.189, -2.769854,2.043616,-0.216,
+ -2.769854,2.043616,-0.216, -2.838906,1.98095,-0.216, -2.877965,1.995883,-0.189,
+ -2.910131,2.008181,-0.144, -2.836889,2.080276,-0.144, -2.806615,2.06372,-0.189,
+ -2.806615,2.06372,-0.189, -2.877965,1.995883,-0.189, -2.910131,2.008181,-0.144,
+ -2.931958,2.016526,-0.081, -2.857432,2.091511,-0.081, -2.836889,2.080276,-0.144,
+ -2.836889,2.080276,-0.144, -2.910131,2.008181,-0.144, -2.931958,2.016526,-0.081,
+ -2.94,2.0196,0, -2.865,2.09565,0, -2.857432,2.091511,-0.081,
+ -2.857432,2.091511,-0.081, -2.931958,2.016526,-0.081, -2.94,2.0196,0,
+ -2.696413,1.862682,-0.081, -2.660842,1.912874,-0.081, -2.6528,1.9098,0,
+ -2.6528,1.9098,0, -2.6881,1.860975,0, -2.696413,1.862682,-0.081,
+ -2.718978,1.867316,-0.144, -2.682669,1.921219,-0.144, -2.660842,1.912874,-0.081,
+ -2.660842,1.912874,-0.081, -2.696413,1.862682,-0.081, -2.718978,1.867316,-0.144,
+ -2.75223,1.874146,-0.189, -2.714835,1.933517,-0.189, -2.682669,1.921219,-0.144,
+ -2.682669,1.921219,-0.144, -2.718978,1.867316,-0.144, -2.75223,1.874146,-0.189,
+ -2.792609,1.882438,-0.216, -2.753894,1.94845,-0.216, -2.714835,1.933517,-0.189,
+ -2.714835,1.933517,-0.189, -2.75223,1.874146,-0.189, -2.792609,1.882438,-0.216,
+ -2.83655,1.891463,-0.225, -2.7964,1.9647,-0.225, -2.753894,1.94845,-0.216,
+ -2.753894,1.94845,-0.216, -2.792609,1.882438,-0.216, -2.83655,1.891463,-0.225,
+ -2.880491,1.900487,-0.216, -2.838906,1.98095,-0.216, -2.7964,1.9647,-0.225,
+ -2.7964,1.9647,-0.225, -2.83655,1.891463,-0.225, -2.880491,1.900487,-0.216,
+ -2.92087,1.908779,-0.189, -2.877965,1.995883,-0.189, -2.838906,1.98095,-0.216,
+ -2.838906,1.98095,-0.216, -2.880491,1.900487,-0.216, -2.92087,1.908779,-0.189,
+ -2.954122,1.915609,-0.144, -2.910131,2.008181,-0.144, -2.877965,1.995883,-0.189,
+ -2.877965,1.995883,-0.189, -2.92087,1.908779,-0.189, -2.954122,1.915609,-0.144,
+ -2.976687,1.920243,-0.081, -2.931958,2.016526,-0.081, -2.910131,2.008181,-0.144,
+ -2.910131,2.008181,-0.144, -2.954122,1.915609,-0.144, -2.976687,1.920243,-0.081,
+ -2.985,1.92195,0, -2.94,2.0196,0, -2.931958,2.016526,-0.081,
+ -2.931958,2.016526,-0.081, -2.976687,1.920243,-0.081, -2.985,1.92195,0,
+ -2.7084,1.8,-0.081, -2.696413,1.862682,-0.081, -2.6881,1.860975,0,
+ -2.6881,1.860975,0, -2.7,1.8,0, -2.7084,1.8,-0.081,
+ -2.7312,1.8,-0.144, -2.718978,1.867316,-0.144, -2.696413,1.862682,-0.081,
+ -2.696413,1.862682,-0.081, -2.7084,1.8,-0.081, -2.7312,1.8,-0.144,
+ -2.7648,1.8,-0.189, -2.75223,1.874146,-0.189, -2.718978,1.867316,-0.144,
+ -2.718978,1.867316,-0.144, -2.7312,1.8,-0.144, -2.7648,1.8,-0.189,
+ -2.8056,1.8,-0.216, -2.792609,1.882438,-0.216, -2.75223,1.874146,-0.189,
+ -2.75223,1.874146,-0.189, -2.7648,1.8,-0.189, -2.8056,1.8,-0.216,
+ -2.85,1.8,-0.225, -2.83655,1.891463,-0.225, -2.792609,1.882438,-0.216,
+ -2.792609,1.882438,-0.216, -2.8056,1.8,-0.216, -2.85,1.8,-0.225,
+ -2.8944,1.8,-0.216, -2.880491,1.900487,-0.216, -2.83655,1.891463,-0.225,
+ -2.83655,1.891463,-0.225, -2.85,1.8,-0.225, -2.8944,1.8,-0.216,
+ -2.9352,1.8,-0.189, -2.92087,1.908779,-0.189, -2.880491,1.900487,-0.216,
+ -2.880491,1.900487,-0.216, -2.8944,1.8,-0.216, -2.9352,1.8,-0.189,
+ -2.9688,1.8,-0.144, -2.954122,1.915609,-0.144, -2.92087,1.908779,-0.189,
+ -2.92087,1.908779,-0.189, -2.9352,1.8,-0.189, -2.9688,1.8,-0.144,
+ -2.9916,1.8,-0.081, -2.976687,1.920243,-0.081, -2.954122,1.915609,-0.144,
+ -2.954122,1.915609,-0.144, -2.9688,1.8,-0.144, -2.9916,1.8,-0.081,
+ -3,1.8,0, -2.985,1.92195,0, -2.976687,1.920243,-0.081,
+ -2.976687,1.920243,-0.081, -2.9916,1.8,-0.081, -3,1.8,0,
+ -1.785445,2.243256,0.081, -1.5028,2.2437,0.081, -1.5,2.25,0,
+ -1.5,2.25,0, -1.785,2.24955,0, -1.785445,2.243256,0.081,
+ -1.786654,2.226173,0.144, -1.5104,2.2266,0.144, -1.5028,2.2437,0.081,
+ -1.5028,2.2437,0.081, -1.785445,2.243256,0.081, -1.786654,2.226173,0.144,
+ -1.788434,2.200999,0.189, -1.5216,2.2014,0.189, -1.5104,2.2266,0.144,
+ -1.5104,2.2266,0.144, -1.786654,2.226173,0.144, -1.788434,2.200999,0.189,
+ -1.790597,2.170429,0.216, -1.5352,2.1708,0.216, -1.5216,2.2014,0.189,
+ -1.5216,2.2014,0.189, -1.788434,2.200999,0.189, -1.790597,2.170429,0.216,
+ -1.79295,2.137163,0.225, -1.55,2.1375,0.225, -1.5352,2.1708,0.216,
+ -1.5352,2.1708,0.216, -1.790597,2.170429,0.216, -1.79295,2.137163,0.225,
+ -1.795303,2.103896,0.216, -1.5648,2.1042,0.216, -1.55,2.1375,0.225,
+ -1.55,2.1375,0.225, -1.79295,2.137163,0.225, -1.795303,2.103896,0.216,
+ -1.797466,2.073326,0.189, -1.5784,2.0736,0.189, -1.5648,2.1042,0.216,
+ -1.5648,2.1042,0.216, -1.795303,2.103896,0.216, -1.797466,2.073326,0.189,
+ -1.799246,2.048152,0.144, -1.5896,2.0484,0.144, -1.5784,2.0736,0.189,
+ -1.5784,2.0736,0.189, -1.797466,2.073326,0.189, -1.799246,2.048152,0.144,
+ -1.800455,2.031069,0.081, -1.5972,2.0313,0.081, -1.5896,2.0484,0.144,
+ -1.5896,2.0484,0.144, -1.799246,2.048152,0.144, -1.800455,2.031069,0.081,
+ -1.8009,2.024775,0, -1.6,2.025,0, -1.5972,2.0313,0.081,
+ -1.5972,2.0313,0.081, -1.800455,2.031069,0.081, -1.8009,2.024775,0,
+ -2.03841,2.24015,0.081, -1.785445,2.243256,0.081, -1.785,2.24955,0,
+ -1.785,2.24955,0, -2.04,2.2464,0, -2.03841,2.24015,0.081,
+ -2.034093,2.223187,0.144, -1.786654,2.226173,0.144, -1.785445,2.243256,0.081,
+ -1.785445,2.243256,0.081, -2.03841,2.24015,0.081, -2.034093,2.223187,0.144,
+ -2.027731,2.198189,0.189, -1.788434,2.200999,0.189, -1.786654,2.226173,0.144,
+ -1.786654,2.226173,0.144, -2.034093,2.223187,0.144, -2.027731,2.198189,0.189,
+ -2.020006,2.167834,0.216, -1.790597,2.170429,0.216, -1.788434,2.200999,0.189,
+ -1.788434,2.200999,0.189, -2.027731,2.198189,0.189, -2.020006,2.167834,0.216,
+ -2.0116,2.1348,0.225, -1.79295,2.137163,0.225, -1.790597,2.170429,0.216,
+ -1.790597,2.170429,0.216, -2.020006,2.167834,0.216, -2.0116,2.1348,0.225,
+ -2.003194,2.101766,0.216, -1.795303,2.103896,0.216, -1.79295,2.137163,0.225,
+ -1.79295,2.137163,0.225, -2.0116,2.1348,0.225, -2.003194,2.101766,0.216,
+ -1.995469,2.071411,0.189, -1.797466,2.073326,0.189, -1.795303,2.103896,0.216,
+ -1.795303,2.103896,0.216, -2.003194,2.101766,0.216, -1.995469,2.071411,0.189,
+ -1.989107,2.046413,0.144, -1.799246,2.048152,0.144, -1.797466,2.073326,0.189,
+ -1.797466,2.073326,0.189, -1.995469,2.071411,0.189, -1.989107,2.046413,0.144,
+ -1.98479,2.02945,0.081, -1.800455,2.031069,0.081, -1.799246,2.048152,0.144,
+ -1.799246,2.048152,0.144, -1.989107,2.046413,0.144, -1.98479,2.02945,0.081,
+ -1.9832,2.0232,0, -1.8009,2.024775,0, -1.800455,2.031069,0.081,
+ -1.800455,2.031069,0.081, -1.98479,2.02945,0.081, -1.9832,2.0232,0,
+ -2.261676,2.23172,0.081, -2.03841,2.24015,0.081, -2.04,2.2464,0,
+ -2.04,2.2464,0, -2.265,2.23785,0, -2.261676,2.23172,0.081,
+ -2.252655,2.215082,0.144, -2.034093,2.223187,0.144, -2.03841,2.24015,0.081,
+ -2.03841,2.24015,0.081, -2.261676,2.23172,0.081, -2.252655,2.215082,0.144,
+ -2.239361,2.190562,0.189, -2.027731,2.198189,0.189, -2.034093,2.223187,0.144,
+ -2.034093,2.223187,0.144, -2.252655,2.215082,0.144, -2.239361,2.190562,0.189,
+ -2.223218,2.160788,0.216, -2.020006,2.167834,0.216, -2.027731,2.198189,0.189,
+ -2.027731,2.198189,0.189, -2.239361,2.190562,0.189, -2.223218,2.160788,0.216,
+ -2.20565,2.128387,0.225, -2.0116,2.1348,0.225, -2.020006,2.167834,0.216,
+ -2.020006,2.167834,0.216, -2.223218,2.160788,0.216, -2.20565,2.128387,0.225,
+ -2.188082,2.095987,0.216, -2.003194,2.101766,0.216, -2.0116,2.1348,0.225,
+ -2.0116,2.1348,0.225, -2.20565,2.128387,0.225, -2.188082,2.095987,0.216,
+ -2.171939,2.066213,0.189, -1.995469,2.071411,0.189, -2.003194,2.101766,0.216,
+ -2.003194,2.101766,0.216, -2.188082,2.095987,0.216, -2.171939,2.066213,0.189,
+ -2.158645,2.041693,0.144, -1.989107,2.046413,0.144, -1.995469,2.071411,0.189,
+ -1.995469,2.071411,0.189, -2.171939,2.066213,0.189, -2.158645,2.041693,0.144,
+ -2.149624,2.025055,0.081, -1.98479,2.02945,0.081, -1.989107,2.046413,0.144,
+ -1.989107,2.046413,0.144, -2.158645,2.041693,0.144, -2.149624,2.025055,0.081,
+ -2.1463,2.018925,0, -1.9832,2.0232,0, -1.98479,2.02945,0.081,
+ -1.98479,2.02945,0.081, -2.149624,2.025055,0.081, -2.1463,2.018925,0,
+ -2.455229,2.215303,0.081, -2.261676,2.23172,0.081, -2.265,2.23785,0,
+ -2.265,2.23785,0, -2.46,2.2212,0, -2.455229,2.215303,0.081,
+ -2.442278,2.199298,0.144, -2.252655,2.215082,0.144, -2.261676,2.23172,0.081,
+ -2.261676,2.23172,0.081, -2.455229,2.215303,0.081, -2.442278,2.199298,0.144,
+ -2.423194,2.17571,0.189, -2.239361,2.190562,0.189, -2.252655,2.215082,0.144,
+ -2.252655,2.215082,0.144, -2.442278,2.199298,0.144, -2.423194,2.17571,0.189,
+ -2.400019,2.147069,0.216, -2.223218,2.160788,0.216, -2.239361,2.190562,0.189,
+ -2.239361,2.190562,0.189, -2.423194,2.17571,0.189, -2.400019,2.147069,0.216,
+ -2.3748,2.1159,0.225, -2.20565,2.128387,0.225, -2.223218,2.160788,0.216,
+ -2.223218,2.160788,0.216, -2.400019,2.147069,0.216, -2.3748,2.1159,0.225,
+ -2.349581,2.084731,0.216, -2.188082,2.095987,0.216, -2.20565,2.128387,0.225,
+ -2.20565,2.128387,0.225, -2.3748,2.1159,0.225, -2.349581,2.084731,0.216,
+ -2.326406,2.05609,0.189, -2.171939,2.066213,0.189, -2.188082,2.095987,0.216,
+ -2.188082,2.095987,0.216, -2.349581,2.084731,0.216, -2.326406,2.05609,0.189,
+ -2.307322,2.032502,0.144, -2.158645,2.041693,0.144, -2.171939,2.066213,0.189,
+ -2.171939,2.066213,0.189, -2.326406,2.05609,0.189, -2.307322,2.032502,0.144,
+ -2.294371,2.016497,0.081, -2.149624,2.025055,0.081, -2.158645,2.041693,0.144,
+ -2.158645,2.041693,0.144, -2.307322,2.032502,0.144, -2.294371,2.016497,0.081,
+ -2.2896,2.0106,0, -2.1463,2.018925,0, -2.149624,2.025055,0.081,
+ -2.149624,2.025055,0.081, -2.294371,2.016497,0.081, -2.2896,2.0106,0,
+ -2.61905,2.188238,0.081, -2.455229,2.215303,0.081, -2.46,2.2212,0,
+ -2.46,2.2212,0, -2.625,2.19375,0, -2.61905,2.188238,0.081,
+ -2.6029,2.173275,0.144, -2.442278,2.199298,0.144, -2.455229,2.215303,0.081,
+ -2.455229,2.215303,0.081, -2.61905,2.188238,0.081, -2.6029,2.173275,0.144,
+ -2.5791,2.151225,0.189, -2.423194,2.17571,0.189, -2.442278,2.199298,0.144,
+ -2.442278,2.199298,0.144, -2.6029,2.173275,0.144, -2.5791,2.151225,0.189,
+ -2.5502,2.12445,0.216, -2.400019,2.147069,0.216, -2.423194,2.17571,0.189,
+ -2.423194,2.17571,0.189, -2.5791,2.151225,0.189, -2.5502,2.12445,0.216,
+ -2.51875,2.095312,0.225, -2.3748,2.1159,0.225, -2.400019,2.147069,0.216,
+ -2.400019,2.147069,0.216, -2.5502,2.12445,0.216, -2.51875,2.095312,0.225,
+ -2.4873,2.066175,0.216, -2.349581,2.084731,0.216, -2.3748,2.1159,0.225,
+ -2.3748,2.1159,0.225, -2.51875,2.095312,0.225, -2.4873,2.066175,0.216,
+ -2.4584,2.0394,0.189, -2.326406,2.05609,0.189, -2.349581,2.084731,0.216,
+ -2.349581,2.084731,0.216, -2.4873,2.066175,0.216, -2.4584,2.0394,0.189,
+ -2.4346,2.01735,0.144, -2.307322,2.032502,0.144, -2.326406,2.05609,0.189,
+ -2.326406,2.05609,0.189, -2.4584,2.0394,0.189, -2.4346,2.01735,0.144,
+ -2.41845,2.002388,0.081, -2.294371,2.016497,0.081, -2.307322,2.032502,0.144,
+ -2.307322,2.032502,0.144, -2.4346,2.01735,0.144, -2.41845,2.002388,0.081,
+ -2.4125,1.996875,0, -2.2896,2.0106,0, -2.294371,2.016497,0.081,
+ -2.294371,2.016497,0.081, -2.41845,2.002388,0.081, -2.4125,1.996875,0,
+ -2.753123,2.147861,0.081, -2.61905,2.188238,0.081, -2.625,2.19375,0,
+ -2.625,2.19375,0, -2.76,2.1528,0, -2.753123,2.147861,0.081,
+ -2.734458,2.134454,0.144, -2.6029,2.173275,0.144, -2.61905,2.188238,0.081,
+ -2.61905,2.188238,0.081, -2.753123,2.147861,0.081, -2.734458,2.134454,0.144,
+ -2.70695,2.114698,0.189, -2.5791,2.151225,0.189, -2.6029,2.173275,0.144,
+ -2.6029,2.173275,0.144, -2.734458,2.134454,0.144, -2.70695,2.114698,0.189,
+ -2.673549,2.090707,0.216, -2.5502,2.12445,0.216, -2.5791,2.151225,0.189,
+ -2.5791,2.151225,0.189, -2.70695,2.114698,0.189, -2.673549,2.090707,0.216,
+ -2.6372,2.0646,0.225, -2.51875,2.095312,0.225, -2.5502,2.12445,0.216,
+ -2.5502,2.12445,0.216, -2.673549,2.090707,0.216, -2.6372,2.0646,0.225,
+ -2.600851,2.038493,0.216, -2.4873,2.066175,0.216, -2.51875,2.095312,0.225,
+ -2.51875,2.095312,0.225, -2.6372,2.0646,0.225, -2.600851,2.038493,0.216,
+ -2.56745,2.014502,0.189, -2.4584,2.0394,0.189, -2.4873,2.066175,0.216,
+ -2.4873,2.066175,0.216, -2.600851,2.038493,0.216, -2.56745,2.014502,0.189,
+ -2.539942,1.994746,0.144, -2.4346,2.01735,0.144, -2.4584,2.0394,0.189,
+ -2.4584,2.0394,0.189, -2.56745,2.014502,0.189, -2.539942,1.994746,0.144,
+ -2.521277,1.981339,0.081, -2.41845,2.002388,0.081, -2.4346,2.01735,0.144,
+ -2.4346,2.01735,0.144, -2.539942,1.994746,0.144, -2.521277,1.981339,0.081,
+ -2.5144,1.9764,0, -2.4125,1.996875,0, -2.41845,2.002388,0.081,
+ -2.41845,2.002388,0.081, -2.521277,1.981339,0.081, -2.5144,1.9764,0,
+ -2.857432,2.091511,0.081, -2.753123,2.147861,0.081, -2.76,2.1528,0,
+ -2.76,2.1528,0, -2.865,2.09565,0, -2.857432,2.091511,0.081,
+ -2.836889,2.080276,0.144, -2.734458,2.134454,0.144, -2.753123,2.147861,0.081,
+ -2.753123,2.147861,0.081, -2.857432,2.091511,0.081, -2.836889,2.080276,0.144,
+ -2.806615,2.06372,0.189, -2.70695,2.114698,0.189, -2.734458,2.134454,0.144,
+ -2.734458,2.134454,0.144, -2.836889,2.080276,0.144, -2.806615,2.06372,0.189,
+ -2.769854,2.043616,0.216, -2.673549,2.090707,0.216, -2.70695,2.114698,0.189,
+ -2.70695,2.114698,0.189, -2.806615,2.06372,0.189, -2.769854,2.043616,0.216,
+ -2.72985,2.021737,0.225, -2.6372,2.0646,0.225, -2.673549,2.090707,0.216,
+ -2.673549,2.090707,0.216, -2.769854,2.043616,0.216, -2.72985,2.021737,0.225,
+ -2.689846,1.999859,0.216, -2.600851,2.038493,0.216, -2.6372,2.0646,0.225,
+ -2.6372,2.0646,0.225, -2.72985,2.021737,0.225, -2.689846,1.999859,0.216,
+ -2.653085,1.979755,0.189, -2.56745,2.014502,0.189, -2.600851,2.038493,0.216,
+ -2.600851,2.038493,0.216, -2.689846,1.999859,0.216, -2.653085,1.979755,0.189,
+ -2.622811,1.963199,0.144, -2.539942,1.994746,0.144, -2.56745,2.014502,0.189,
+ -2.56745,2.014502,0.189, -2.653085,1.979755,0.189, -2.622811,1.963199,0.144,
+ -2.602268,1.951964,0.081, -2.521277,1.981339,0.081, -2.539942,1.994746,0.144,
+ -2.539942,1.994746,0.144, -2.622811,1.963199,0.144, -2.602268,1.951964,0.081,
+ -2.5947,1.947825,0, -2.5144,1.9764,0, -2.521277,1.981339,0.081,
+ -2.521277,1.981339,0.081, -2.602268,1.951964,0.081, -2.5947,1.947825,0,
+ -2.931958,2.016526,0.081, -2.857432,2.091511,0.081, -2.865,2.09565,0,
+ -2.865,2.09565,0, -2.94,2.0196,0, -2.931958,2.016526,0.081,
+ -2.910131,2.008181,0.144, -2.836889,2.080276,0.144, -2.857432,2.091511,0.081,
+ -2.857432,2.091511,0.081, -2.931958,2.016526,0.081, -2.910131,2.008181,0.144,
+ -2.877965,1.995883,0.189, -2.806615,2.06372,0.189, -2.836889,2.080276,0.144,
+ -2.836889,2.080276,0.144, -2.910131,2.008181,0.144, -2.877965,1.995883,0.189,
+ -2.838906,1.98095,0.216, -2.769854,2.043616,0.216, -2.806615,2.06372,0.189,
+ -2.806615,2.06372,0.189, -2.877965,1.995883,0.189, -2.838906,1.98095,0.216,
+ -2.7964,1.9647,0.225, -2.72985,2.021737,0.225, -2.769854,2.043616,0.216,
+ -2.769854,2.043616,0.216, -2.838906,1.98095,0.216, -2.7964,1.9647,0.225,
+ -2.753894,1.94845,0.216, -2.689846,1.999859,0.216, -2.72985,2.021737,0.225,
+ -2.72985,2.021737,0.225, -2.7964,1.9647,0.225, -2.753894,1.94845,0.216,
+ -2.714835,1.933517,0.189, -2.653085,1.979755,0.189, -2.689846,1.999859,0.216,
+ -2.689846,1.999859,0.216, -2.753894,1.94845,0.216, -2.714835,1.933517,0.189,
+ -2.682669,1.921219,0.144, -2.622811,1.963199,0.144, -2.653085,1.979755,0.189,
+ -2.653085,1.979755,0.189, -2.714835,1.933517,0.189, -2.682669,1.921219,0.144,
+ -2.660842,1.912874,0.081, -2.602268,1.951964,0.081, -2.622811,1.963199,0.144,
+ -2.622811,1.963199,0.144, -2.682669,1.921219,0.144, -2.660842,1.912874,0.081,
+ -2.6528,1.9098,0, -2.5947,1.947825,0, -2.602268,1.951964,0.081,
+ -2.602268,1.951964,0.081, -2.660842,1.912874,0.081, -2.6528,1.9098,0,
+ -2.976687,1.920243,0.081, -2.931958,2.016526,0.081, -2.94,2.0196,0,
+ -2.94,2.0196,0, -2.985,1.92195,0, -2.976687,1.920243,0.081,
+ -2.954122,1.915609,0.144, -2.910131,2.008181,0.144, -2.931958,2.016526,0.081,
+ -2.931958,2.016526,0.081, -2.976687,1.920243,0.081, -2.954122,1.915609,0.144,
+ -2.92087,1.908779,0.189, -2.877965,1.995883,0.189, -2.910131,2.008181,0.144,
+ -2.910131,2.008181,0.144, -2.954122,1.915609,0.144, -2.92087,1.908779,0.189,
+ -2.880491,1.900487,0.216, -2.838906,1.98095,0.216, -2.877965,1.995883,0.189,
+ -2.877965,1.995883,0.189, -2.92087,1.908779,0.189, -2.880491,1.900487,0.216,
+ -2.83655,1.891463,0.225, -2.7964,1.9647,0.225, -2.838906,1.98095,0.216,
+ -2.838906,1.98095,0.216, -2.880491,1.900487,0.216, -2.83655,1.891463,0.225,
+ -2.792609,1.882438,0.216, -2.753894,1.94845,0.216, -2.7964,1.9647,0.225,
+ -2.7964,1.9647,0.225, -2.83655,1.891463,0.225, -2.792609,1.882438,0.216,
+ -2.75223,1.874146,0.189, -2.714835,1.933517,0.189, -2.753894,1.94845,0.216,
+ -2.753894,1.94845,0.216, -2.792609,1.882438,0.216, -2.75223,1.874146,0.189,
+ -2.718978,1.867316,0.144, -2.682669,1.921219,0.144, -2.714835,1.933517,0.189,
+ -2.714835,1.933517,0.189, -2.75223,1.874146,0.189, -2.718978,1.867316,0.144,
+ -2.696413,1.862682,0.081, -2.660842,1.912874,0.081, -2.682669,1.921219,0.144,
+ -2.682669,1.921219,0.144, -2.718978,1.867316,0.144, -2.696413,1.862682,0.081,
+ -2.6881,1.860975,0, -2.6528,1.9098,0, -2.660842,1.912874,0.081,
+ -2.660842,1.912874,0.081, -2.696413,1.862682,0.081, -2.6881,1.860975,0,
+ -2.9916,1.8,0.081, -2.976687,1.920243,0.081, -2.985,1.92195,0,
+ -2.985,1.92195,0, -3,1.8,0, -2.9916,1.8,0.081,
+ -2.9688,1.8,0.144, -2.954122,1.915609,0.144, -2.976687,1.920243,0.081,
+ -2.976687,1.920243,0.081, -2.9916,1.8,0.081, -2.9688,1.8,0.144,
+ -2.9352,1.8,0.189, -2.92087,1.908779,0.189, -2.954122,1.915609,0.144,
+ -2.954122,1.915609,0.144, -2.9688,1.8,0.144, -2.9352,1.8,0.189,
+ -2.8944,1.8,0.216, -2.880491,1.900487,0.216, -2.92087,1.908779,0.189,
+ -2.92087,1.908779,0.189, -2.9352,1.8,0.189, -2.8944,1.8,0.216,
+ -2.85,1.8,0.225, -2.83655,1.891463,0.225, -2.880491,1.900487,0.216,
+ -2.880491,1.900487,0.216, -2.8944,1.8,0.216, -2.85,1.8,0.225,
+ -2.8056,1.8,0.216, -2.792609,1.882438,0.216, -2.83655,1.891463,0.225,
+ -2.83655,1.891463,0.225, -2.85,1.8,0.225, -2.8056,1.8,0.216,
+ -2.7648,1.8,0.189, -2.75223,1.874146,0.189, -2.792609,1.882438,0.216,
+ -2.792609,1.882438,0.216, -2.8056,1.8,0.216, -2.7648,1.8,0.189,
+ -2.7312,1.8,0.144, -2.718978,1.867316,0.144, -2.75223,1.874146,0.189,
+ -2.75223,1.874146,0.189, -2.7648,1.8,0.189, -2.7312,1.8,0.144,
+ -2.7084,1.8,0.081, -2.696413,1.862682,0.081, -2.718978,1.867316,0.144,
+ -2.718978,1.867316,0.144, -2.7312,1.8,0.144, -2.7084,1.8,0.081,
+ -2.7,1.8,0, -2.6881,1.860975,0, -2.696413,1.862682,0.081,
+ -2.696413,1.862682,0.081, -2.7084,1.8,0.081, -2.7,1.8,0,
+ -2.702175,1.724519,-0.081, -2.7084,1.8,-0.081, -2.7,1.8,0,
+ -2.7,1.8,0, -2.6939,1.7262,0, -2.702175,1.724519,-0.081,
+ -2.724637,1.719956,-0.144, -2.7312,1.8,-0.144, -2.7084,1.8,-0.081,
+ -2.7084,1.8,-0.081, -2.702175,1.724519,-0.081, -2.724637,1.719956,-0.144,
+ -2.757739,1.713232,-0.189, -2.7648,1.8,-0.189, -2.7312,1.8,-0.144,
+ -2.7312,1.8,-0.144, -2.724637,1.719956,-0.144, -2.757739,1.713232,-0.189,
+ -2.797934,1.705067,-0.216, -2.8056,1.8,-0.216, -2.7648,1.8,-0.189,
+ -2.7648,1.8,-0.189, -2.757739,1.713232,-0.189, -2.797934,1.705067,-0.216,
+ -2.841675,1.696181,-0.225, -2.85,1.8,-0.225, -2.8056,1.8,-0.216,
+ -2.8056,1.8,-0.216, -2.797934,1.705067,-0.216, -2.841675,1.696181,-0.225,
+ -2.885416,1.687296,-0.216, -2.8944,1.8,-0.216, -2.85,1.8,-0.225,
+ -2.85,1.8,-0.225, -2.841675,1.696181,-0.225, -2.885416,1.687296,-0.216,
+ -2.925611,1.679131,-0.189, -2.9352,1.8,-0.189, -2.8944,1.8,-0.216,
+ -2.8944,1.8,-0.216, -2.885416,1.687296,-0.216, -2.925611,1.679131,-0.189,
+ -2.958713,1.672406,-0.144, -2.9688,1.8,-0.144, -2.9352,1.8,-0.189,
+ -2.9352,1.8,-0.189, -2.925611,1.679131,-0.189, -2.958713,1.672406,-0.144,
+ -2.981175,1.667844,-0.081, -2.9916,1.8,-0.081, -2.9688,1.8,-0.144,
+ -2.9688,1.8,-0.144, -2.958713,1.672406,-0.144, -2.981175,1.667844,-0.081,
+ -2.98945,1.666162,0, -3,1.8,0, -2.9916,1.8,-0.081,
+ -2.9916,1.8,-0.081, -2.981175,1.667844,-0.081, -2.98945,1.666162,0,
+ -2.683107,1.63861,-0.081, -2.702175,1.724519,-0.081, -2.6939,1.7262,0,
+ -2.6939,1.7262,0, -2.6752,1.6416,0, -2.683107,1.63861,-0.081,
+ -2.70457,1.630493,-0.144, -2.724637,1.719956,-0.144, -2.702175,1.724519,-0.081,
+ -2.702175,1.724519,-0.081, -2.683107,1.63861,-0.081, -2.70457,1.630493,-0.144,
+ -2.736198,1.618531,-0.189, -2.757739,1.713232,-0.189, -2.724637,1.719956,-0.144,
+ -2.724637,1.719956,-0.144, -2.70457,1.630493,-0.144, -2.736198,1.618531,-0.189,
+ -2.774605,1.604006,-0.216, -2.797934,1.705067,-0.216, -2.757739,1.713232,-0.189,
+ -2.757739,1.713232,-0.189, -2.736198,1.618531,-0.189, -2.774605,1.604006,-0.216,
+ -2.8164,1.5882,-0.225, -2.841675,1.696181,-0.225, -2.797934,1.705067,-0.216,
+ -2.797934,1.705067,-0.216, -2.774605,1.604006,-0.216, -2.8164,1.5882,-0.225,
+ -2.858195,1.572394,-0.216, -2.885416,1.687296,-0.216, -2.841675,1.696181,-0.225,
+ -2.841675,1.696181,-0.225, -2.8164,1.5882,-0.225, -2.858195,1.572394,-0.216,
+ -2.896602,1.557869,-0.189, -2.925611,1.679131,-0.189, -2.885416,1.687296,-0.216,
+ -2.885416,1.687296,-0.216, -2.858195,1.572394,-0.216, -2.896602,1.557869,-0.189,
+ -2.92823,1.545907,-0.144, -2.958713,1.672406,-0.144, -2.925611,1.679131,-0.189,
+ -2.925611,1.679131,-0.189, -2.896602,1.557869,-0.189, -2.92823,1.545907,-0.144,
+ -2.949693,1.53779,-0.081, -2.981175,1.667844,-0.081, -2.958713,1.672406,-0.144,
+ -2.958713,1.672406,-0.144, -2.92823,1.545907,-0.144, -2.949693,1.53779,-0.081,
+ -2.9576,1.5348,0, -2.98945,1.666162,0, -2.981175,1.667844,-0.081,
+ -2.981175,1.667844,-0.081, -2.949693,1.53779,-0.081, -2.9576,1.5348,0,
+ -2.650604,1.544903,-0.081, -2.683107,1.63861,-0.081, -2.6752,1.6416,0,
+ -2.6752,1.6416,0, -2.6433,1.5489,0, -2.650604,1.544903,-0.081,
+ -2.670428,1.534053,-0.144, -2.70457,1.630493,-0.144, -2.683107,1.63861,-0.081,
+ -2.683107,1.63861,-0.081, -2.650604,1.544903,-0.081, -2.670428,1.534053,-0.144,
+ -2.699644,1.518063,-0.189, -2.736198,1.618531,-0.189, -2.70457,1.630493,-0.144,
+ -2.70457,1.630493,-0.144, -2.670428,1.534053,-0.144, -2.699644,1.518063,-0.189,
+ -2.735119,1.498648,-0.216, -2.774605,1.604006,-0.216, -2.736198,1.618531,-0.189,
+ -2.736198,1.618531,-0.189, -2.699644,1.518063,-0.189, -2.735119,1.498648,-0.216,
+ -2.773725,1.477519,-0.225, -2.8164,1.5882,-0.225, -2.774605,1.604006,-0.216,
+ -2.774605,1.604006,-0.216, -2.735119,1.498648,-0.216, -2.773725,1.477519,-0.225,
+ -2.812331,1.45639,-0.216, -2.858195,1.572394,-0.216, -2.8164,1.5882,-0.225,
+ -2.8164,1.5882,-0.225, -2.773725,1.477519,-0.225, -2.812331,1.45639,-0.216,
+ -2.847806,1.436974,-0.189, -2.896602,1.557869,-0.189, -2.858195,1.572394,-0.216,
+ -2.858195,1.572394,-0.216, -2.812331,1.45639,-0.216, -2.847806,1.436974,-0.189,
+ -2.877022,1.420985,-0.144, -2.92823,1.545907,-0.144, -2.896602,1.557869,-0.189,
+ -2.896602,1.557869,-0.189, -2.847806,1.436974,-0.189, -2.877022,1.420985,-0.144,
+ -2.896846,1.410135,-0.081, -2.949693,1.53779,-0.081, -2.92823,1.545907,-0.144,
+ -2.92823,1.545907,-0.144, -2.877022,1.420985,-0.144, -2.896846,1.410135,-0.081,
+ -2.90415,1.406137,0, -2.9576,1.5348,0, -2.949693,1.53779,-0.081,
+ -2.949693,1.53779,-0.081, -2.896846,1.410135,-0.081, -2.90415,1.406137,0,
+ -2.604074,1.446029,-0.081, -2.650604,1.544903,-0.081, -2.6433,1.5489,0,
+ -2.6433,1.5489,0, -2.5976,1.4508,0, -2.604074,1.446029,-0.081,
+ -2.621645,1.433078,-0.144, -2.670428,1.534053,-0.144, -2.650604,1.544903,-0.081,
+ -2.650604,1.544903,-0.081, -2.604074,1.446029,-0.081, -2.621645,1.433078,-0.144,
+ -2.647539,1.413994,-0.189, -2.699644,1.518063,-0.189, -2.670428,1.534053,-0.144,
+ -2.670428,1.534053,-0.144, -2.621645,1.433078,-0.144, -2.647539,1.413994,-0.189,
+ -2.678982,1.390819,-0.216, -2.735119,1.498648,-0.216, -2.699644,1.518063,-0.189,
+ -2.699644,1.518063,-0.189, -2.647539,1.413994,-0.189, -2.678982,1.390819,-0.216,
+ -2.7132,1.3656,-0.225, -2.773725,1.477519,-0.225, -2.735119,1.498648,-0.216,
+ -2.735119,1.498648,-0.216, -2.678982,1.390819,-0.216, -2.7132,1.3656,-0.225,
+ -2.747418,1.340381,-0.216, -2.812331,1.45639,-0.216, -2.773725,1.477519,-0.225,
+ -2.773725,1.477519,-0.225, -2.7132,1.3656,-0.225, -2.747418,1.340381,-0.216,
+ -2.778861,1.317206,-0.189, -2.847806,1.436974,-0.189, -2.812331,1.45639,-0.216,
+ -2.812331,1.45639,-0.216, -2.747418,1.340381,-0.216, -2.778861,1.317206,-0.189,
+ -2.804755,1.298122,-0.144, -2.877022,1.420985,-0.144, -2.847806,1.436974,-0.189,
+ -2.847806,1.436974,-0.189, -2.778861,1.317206,-0.189, -2.804755,1.298122,-0.144,
+ -2.822326,1.285171,-0.081, -2.896846,1.410135,-0.081, -2.877022,1.420985,-0.144,
+ -2.877022,1.420985,-0.144, -2.804755,1.298122,-0.144, -2.822326,1.285171,-0.081,
+ -2.8288,1.2804,0, -2.90415,1.406137,0, -2.896846,1.410135,-0.081,
+ -2.896846,1.410135,-0.081, -2.822326,1.285171,-0.081, -2.8288,1.2804,0,
+ -2.542925,1.344619,-0.081, -2.604074,1.446029,-0.081, -2.5976,1.4508,0,
+ -2.5976,1.4508,0, -2.5375,1.35,0, -2.542925,1.344619,-0.081,
+ -2.55765,1.330013,-0.144, -2.621645,1.433078,-0.144, -2.604074,1.446029,-0.081,
+ -2.604074,1.446029,-0.081, -2.542925,1.344619,-0.081, -2.55765,1.330013,-0.144,
+ -2.57935,1.308488,-0.189, -2.647539,1.413994,-0.189, -2.621645,1.433078,-0.144,
+ -2.621645,1.433078,-0.144, -2.55765,1.330013,-0.144, -2.57935,1.308488,-0.189,
+ -2.6057,1.28235,-0.216, -2.678982,1.390819,-0.216, -2.647539,1.413994,-0.189,
+ -2.647539,1.413994,-0.189, -2.57935,1.308488,-0.189, -2.6057,1.28235,-0.216,
+ -2.634375,1.253906,-0.225, -2.7132,1.3656,-0.225, -2.678982,1.390819,-0.216,
+ -2.678982,1.390819,-0.216, -2.6057,1.28235,-0.216, -2.634375,1.253906,-0.225,
+ -2.66305,1.225463,-0.216, -2.747418,1.340381,-0.216, -2.7132,1.3656,-0.225,
+ -2.7132,1.3656,-0.225, -2.634375,1.253906,-0.225, -2.66305,1.225463,-0.216,
+ -2.6894,1.199325,-0.189, -2.778861,1.317206,-0.189, -2.747418,1.340381,-0.216,
+ -2.747418,1.340381,-0.216, -2.66305,1.225463,-0.216, -2.6894,1.199325,-0.189,
+ -2.7111,1.1778,-0.144, -2.804755,1.298122,-0.144, -2.778861,1.317206,-0.189,
+ -2.778861,1.317206,-0.189, -2.6894,1.199325,-0.189, -2.7111,1.1778,-0.144,
+ -2.725825,1.163194,-0.081, -2.822326,1.285171,-0.081, -2.804755,1.298122,-0.144,
+ -2.804755,1.298122,-0.144, -2.7111,1.1778,-0.144, -2.725825,1.163194,-0.081,
+ -2.73125,1.157813,0, -2.8288,1.2804,0, -2.822326,1.285171,-0.081,
+ -2.822326,1.285171,-0.081, -2.725825,1.163194,-0.081, -2.73125,1.157813,0,
+ -2.466566,1.243303,-0.081, -2.542925,1.344619,-0.081, -2.5375,1.35,0,
+ -2.5375,1.35,0, -2.4624,1.2492,0, -2.466566,1.243303,-0.081,
+ -2.477875,1.227298,-0.144, -2.55765,1.330013,-0.144, -2.542925,1.344619,-0.081,
+ -2.542925,1.344619,-0.081, -2.466566,1.243303,-0.081, -2.477875,1.227298,-0.144,
+ -2.494541,1.20371,-0.189, -2.57935,1.308488,-0.189, -2.55765,1.330013,-0.144,
+ -2.55765,1.330013,-0.144, -2.477875,1.227298,-0.144, -2.494541,1.20371,-0.189,
+ -2.514778,1.175069,-0.216, -2.6057,1.28235,-0.216, -2.57935,1.308488,-0.189,
+ -2.57935,1.308488,-0.189, -2.494541,1.20371,-0.189, -2.514778,1.175069,-0.216,
+ -2.5368,1.1439,-0.225, -2.634375,1.253906,-0.225, -2.6057,1.28235,-0.216,
+ -2.6057,1.28235,-0.216, -2.514778,1.175069,-0.216, -2.5368,1.1439,-0.225,
+ -2.558822,1.112731,-0.216, -2.66305,1.225463,-0.216, -2.634375,1.253906,-0.225,
+ -2.634375,1.253906,-0.225, -2.5368,1.1439,-0.225, -2.558822,1.112731,-0.216,
+ -2.579059,1.08409,-0.189, -2.6894,1.199325,-0.189, -2.66305,1.225463,-0.216,
+ -2.66305,1.225463,-0.216, -2.558822,1.112731,-0.216, -2.579059,1.08409,-0.189,
+ -2.595725,1.060502,-0.144, -2.7111,1.1778,-0.144, -2.6894,1.199325,-0.189,
+ -2.6894,1.199325,-0.189, -2.579059,1.08409,-0.189, -2.595725,1.060502,-0.144,
+ -2.607034,1.044497,-0.081, -2.725825,1.163194,-0.081, -2.7111,1.1778,-0.144,
+ -2.7111,1.1778,-0.144, -2.595725,1.060502,-0.144, -2.607034,1.044497,-0.081,
+ -2.6112,1.0386,0, -2.73125,1.157813,0, -2.725825,1.163194,-0.081,
+ -2.725825,1.163194,-0.081, -2.607034,1.044497,-0.081, -2.6112,1.0386,0,
+ -2.374406,1.144713,-0.081, -2.466566,1.243303,-0.081, -2.4624,1.2492,0,
+ -2.4624,1.2492,0, -2.3717,1.1511,0, -2.374406,1.144713,-0.081,
+ -2.381752,1.127376,-0.144, -2.477875,1.227298,-0.144, -2.466566,1.243303,-0.081,
+ -2.466566,1.243303,-0.081, -2.374406,1.144713,-0.081, -2.381752,1.127376,-0.144,
+ -2.392576,1.101828,-0.189, -2.494541,1.20371,-0.189, -2.477875,1.227298,-0.144,
+ -2.477875,1.227298,-0.144, -2.381752,1.127376,-0.144, -2.392576,1.101828,-0.189,
+ -2.405721,1.070804,-0.216, -2.514778,1.175069,-0.216, -2.494541,1.20371,-0.189,
+ -2.494541,1.20371,-0.189, -2.392576,1.101828,-0.189, -2.405721,1.070804,-0.216,
+ -2.420025,1.037044,-0.225, -2.5368,1.1439,-0.225, -2.514778,1.175069,-0.216,
+ -2.514778,1.175069,-0.216, -2.405721,1.070804,-0.216, -2.420025,1.037044,-0.225,
+ -2.434329,1.003283,-0.216, -2.558822,1.112731,-0.216, -2.5368,1.1439,-0.225,
+ -2.5368,1.1439,-0.225, -2.420025,1.037044,-0.225, -2.434329,1.003283,-0.216,
+ -2.447474,0.97226,-0.189, -2.579059,1.08409,-0.189, -2.558822,1.112731,-0.216,
+ -2.558822,1.112731,-0.216, -2.434329,1.003283,-0.216, -2.447474,0.97226,-0.189,
+ -2.458298,0.946711,-0.144, -2.595725,1.060502,-0.144, -2.579059,1.08409,-0.189,
+ -2.579059,1.08409,-0.189, -2.447474,0.97226,-0.189, -2.458298,0.946711,-0.144,
+ -2.465644,0.929375,-0.081, -2.607034,1.044497,-0.081, -2.595725,1.060502,-0.144,
+ -2.595725,1.060502,-0.144, -2.458298,0.946711,-0.144, -2.465644,0.929375,-0.081,
+ -2.46835,0.922987,0, -2.6112,1.0386,0, -2.607034,1.044497,-0.081,
+ -2.607034,1.044497,-0.081, -2.465644,0.929375,-0.081, -2.46835,0.922987,0,
+ -2.265853,1.051478,-0.081, -2.374406,1.144713,-0.081, -2.3717,1.1511,0,
+ -2.3717,1.1511,0, -2.2648,1.0584,0, -2.265853,1.051478,-0.081,
+ -2.26871,1.032691,-0.144, -2.381752,1.127376,-0.144, -2.374406,1.144713,-0.081,
+ -2.374406,1.144713,-0.081, -2.265853,1.051478,-0.081, -2.26871,1.032691,-0.144,
+ -2.272922,1.005005,-0.189, -2.392576,1.101828,-0.189, -2.381752,1.127376,-0.144,
+ -2.381752,1.127376,-0.144, -2.26871,1.032691,-0.144, -2.272922,1.005005,-0.189,
+ -2.278035,0.971386,-0.216, -2.405721,1.070804,-0.216, -2.392576,1.101828,-0.189,
+ -2.392576,1.101828,-0.189, -2.272922,1.005005,-0.189, -2.278035,0.971386,-0.216,
+ -2.2836,0.9348,-0.225, -2.420025,1.037044,-0.225, -2.405721,1.070804,-0.216,
+ -2.405721,1.070804,-0.216, -2.278035,0.971386,-0.216, -2.2836,0.9348,-0.225,
+ -2.289165,0.898214,-0.216, -2.434329,1.003283,-0.216, -2.420025,1.037044,-0.225,
+ -2.420025,1.037044,-0.225, -2.2836,0.9348,-0.225, -2.289165,0.898214,-0.216,
+ -2.294278,0.864595,-0.189, -2.447474,0.97226,-0.189, -2.434329,1.003283,-0.216,
+ -2.434329,1.003283,-0.216, -2.289165,0.898214,-0.216, -2.294278,0.864595,-0.189,
+ -2.29849,0.836909,-0.144, -2.458298,0.946711,-0.144, -2.447474,0.97226,-0.189,
+ -2.447474,0.97226,-0.189, -2.294278,0.864595,-0.189, -2.29849,0.836909,-0.144,
+ -2.301347,0.818122,-0.081, -2.465644,0.929375,-0.081, -2.458298,0.946711,-0.144,
+ -2.458298,0.946711,-0.144, -2.29849,0.836909,-0.144, -2.301347,0.818122,-0.081,
+ -2.3024,0.8112,0, -2.46835,0.922987,0, -2.465644,0.929375,-0.081,
+ -2.465644,0.929375,-0.081, -2.301347,0.818122,-0.081, -2.3024,0.8112,0,
+ -2.140315,0.966231,-0.081, -2.265853,1.051478,-0.081, -2.2648,1.0584,0,
+ -2.2648,1.0584,0, -2.1411,0.9738,0, -2.140315,0.966231,-0.081,
+ -2.138183,0.945685,-0.144, -2.26871,1.032691,-0.144, -2.265853,1.051478,-0.081,
+ -2.265853,1.051478,-0.081, -2.140315,0.966231,-0.081, -2.138183,0.945685,-0.144,
+ -2.135041,0.915407,-0.189, -2.272922,1.005005,-0.189, -2.26871,1.032691,-0.144,
+ -2.26871,1.032691,-0.144, -2.138183,0.945685,-0.144, -2.135041,0.915407,-0.189,
+ -2.131226,0.878641,-0.216, -2.278035,0.971386,-0.216, -2.272922,1.005005,-0.189,
+ -2.272922,1.005005,-0.189, -2.135041,0.915407,-0.189, -2.131226,0.878641,-0.216,
+ -2.127075,0.838631,-0.225, -2.2836,0.9348,-0.225, -2.278035,0.971386,-0.216,
+ -2.278035,0.971386,-0.216, -2.131226,0.878641,-0.216, -2.127075,0.838631,-0.225,
+ -2.122924,0.798621,-0.216, -2.289165,0.898214,-0.216, -2.2836,0.9348,-0.225,
+ -2.2836,0.9348,-0.225, -2.127075,0.838631,-0.225, -2.122924,0.798621,-0.216,
+ -2.119109,0.761855,-0.189, -2.294278,0.864595,-0.189, -2.289165,0.898214,-0.216,
+ -2.289165,0.898214,-0.216, -2.122924,0.798621,-0.216, -2.119109,0.761855,-0.189,
+ -2.115967,0.731578,-0.144, -2.29849,0.836909,-0.144, -2.294278,0.864595,-0.189,
+ -2.294278,0.864595,-0.189, -2.119109,0.761855,-0.189, -2.115967,0.731578,-0.144,
+ -2.113835,0.711032,-0.081, -2.301347,0.818122,-0.081, -2.29849,0.836909,-0.144,
+ -2.29849,0.836909,-0.144, -2.115967,0.731578,-0.144, -2.113835,0.711032,-0.081,
+ -2.11305,0.703463,0, -2.3024,0.8112,0, -2.301347,0.818122,-0.081,
+ -2.301347,0.818122,-0.081, -2.113835,0.711032,-0.081, -2.11305,0.703463,0,
+ -1.9972,0.8916,-0.081, -2.140315,0.966231,-0.081, -2.1411,0.9738,0,
+ -2.1411,0.9738,0, -2,0.9,0, -1.9972,0.8916,-0.081,
+ -1.9896,0.8688,-0.144, -2.138183,0.945685,-0.144, -2.140315,0.966231,-0.081,
+ -2.140315,0.966231,-0.081, -1.9972,0.8916,-0.081, -1.9896,0.8688,-0.144,
+ -1.9784,0.8352,-0.189, -2.135041,0.915407,-0.189, -2.138183,0.945685,-0.144,
+ -2.138183,0.945685,-0.144, -1.9896,0.8688,-0.144, -1.9784,0.8352,-0.189,
+ -1.9648,0.7944,-0.216, -2.131226,0.878641,-0.216, -2.135041,0.915407,-0.189,
+ -2.135041,0.915407,-0.189, -1.9784,0.8352,-0.189, -1.9648,0.7944,-0.216,
+ -1.95,0.75,-0.225, -2.127075,0.838631,-0.225, -2.131226,0.878641,-0.216,
+ -2.131226,0.878641,-0.216, -1.9648,0.7944,-0.216, -1.95,0.75,-0.225,
+ -1.9352,0.7056,-0.216, -2.122924,0.798621,-0.216, -2.127075,0.838631,-0.225,
+ -2.127075,0.838631,-0.225, -1.95,0.75,-0.225, -1.9352,0.7056,-0.216,
+ -1.9216,0.6648,-0.189, -2.119109,0.761855,-0.189, -2.122924,0.798621,-0.216,
+ -2.122924,0.798621,-0.216, -1.9352,0.7056,-0.216, -1.9216,0.6648,-0.189,
+ -1.9104,0.6312,-0.144, -2.115967,0.731578,-0.144, -2.119109,0.761855,-0.189,
+ -2.119109,0.761855,-0.189, -1.9216,0.6648,-0.189, -1.9104,0.6312,-0.144,
+ -1.9028,0.6084,-0.081, -2.113835,0.711032,-0.081, -2.115967,0.731578,-0.144,
+ -2.115967,0.731578,-0.144, -1.9104,0.6312,-0.144, -1.9028,0.6084,-0.081,
+ -1.9,0.6,0, -2.11305,0.703463,0, -2.113835,0.711032,-0.081,
+ -2.113835,0.711032,-0.081, -1.9028,0.6084,-0.081, -1.9,0.6,0,
+ -2.981175,1.667844,0.081, -2.9916,1.8,0.081, -3,1.8,0,
+ -3,1.8,0, -2.98945,1.666162,0, -2.981175,1.667844,0.081,
+ -2.958713,1.672406,0.144, -2.9688,1.8,0.144, -2.9916,1.8,0.081,
+ -2.9916,1.8,0.081, -2.981175,1.667844,0.081, -2.958713,1.672406,0.144,
+ -2.925611,1.679131,0.189, -2.9352,1.8,0.189, -2.9688,1.8,0.144,
+ -2.9688,1.8,0.144, -2.958713,1.672406,0.144, -2.925611,1.679131,0.189,
+ -2.885416,1.687296,0.216, -2.8944,1.8,0.216, -2.9352,1.8,0.189,
+ -2.9352,1.8,0.189, -2.925611,1.679131,0.189, -2.885416,1.687296,0.216,
+ -2.841675,1.696181,0.225, -2.85,1.8,0.225, -2.8944,1.8,0.216,
+ -2.8944,1.8,0.216, -2.885416,1.687296,0.216, -2.841675,1.696181,0.225,
+ -2.797934,1.705067,0.216, -2.8056,1.8,0.216, -2.85,1.8,0.225,
+ -2.85,1.8,0.225, -2.841675,1.696181,0.225, -2.797934,1.705067,0.216,
+ -2.757739,1.713232,0.189, -2.7648,1.8,0.189, -2.8056,1.8,0.216,
+ -2.8056,1.8,0.216, -2.797934,1.705067,0.216, -2.757739,1.713232,0.189,
+ -2.724637,1.719956,0.144, -2.7312,1.8,0.144, -2.7648,1.8,0.189,
+ -2.7648,1.8,0.189, -2.757739,1.713232,0.189, -2.724637,1.719956,0.144,
+ -2.702175,1.724519,0.081, -2.7084,1.8,0.081, -2.7312,1.8,0.144,
+ -2.7312,1.8,0.144, -2.724637,1.719956,0.144, -2.702175,1.724519,0.081,
+ -2.6939,1.7262,0, -2.7,1.8,0, -2.7084,1.8,0.081,
+ -2.7084,1.8,0.081, -2.702175,1.724519,0.081, -2.6939,1.7262,0,
+ -2.949693,1.53779,0.081, -2.981175,1.667844,0.081, -2.98945,1.666162,0,
+ -2.98945,1.666162,0, -2.9576,1.5348,0, -2.949693,1.53779,0.081,
+ -2.92823,1.545907,0.144, -2.958713,1.672406,0.144, -2.981175,1.667844,0.081,
+ -2.981175,1.667844,0.081, -2.949693,1.53779,0.081, -2.92823,1.545907,0.144,
+ -2.896602,1.557869,0.189, -2.925611,1.679131,0.189, -2.958713,1.672406,0.144,
+ -2.958713,1.672406,0.144, -2.92823,1.545907,0.144, -2.896602,1.557869,0.189,
+ -2.858195,1.572394,0.216, -2.885416,1.687296,0.216, -2.925611,1.679131,0.189,
+ -2.925611,1.679131,0.189, -2.896602,1.557869,0.189, -2.858195,1.572394,0.216,
+ -2.8164,1.5882,0.225, -2.841675,1.696181,0.225, -2.885416,1.687296,0.216,
+ -2.885416,1.687296,0.216, -2.858195,1.572394,0.216, -2.8164,1.5882,0.225,
+ -2.774605,1.604006,0.216, -2.797934,1.705067,0.216, -2.841675,1.696181,0.225,
+ -2.841675,1.696181,0.225, -2.8164,1.5882,0.225, -2.774605,1.604006,0.216,
+ -2.736198,1.618531,0.189, -2.757739,1.713232,0.189, -2.797934,1.705067,0.216,
+ -2.797934,1.705067,0.216, -2.774605,1.604006,0.216, -2.736198,1.618531,0.189,
+ -2.70457,1.630493,0.144, -2.724637,1.719956,0.144, -2.757739,1.713232,0.189,
+ -2.757739,1.713232,0.189, -2.736198,1.618531,0.189, -2.70457,1.630493,0.144,
+ -2.683107,1.63861,0.081, -2.702175,1.724519,0.081, -2.724637,1.719956,0.144,
+ -2.724637,1.719956,0.144, -2.70457,1.630493,0.144, -2.683107,1.63861,0.081,
+ -2.6752,1.6416,0, -2.6939,1.7262,0, -2.702175,1.724519,0.081,
+ -2.702175,1.724519,0.081, -2.683107,1.63861,0.081, -2.6752,1.6416,0,
+ -2.896846,1.410135,0.081, -2.949693,1.53779,0.081, -2.9576,1.5348,0,
+ -2.9576,1.5348,0, -2.90415,1.406137,0, -2.896846,1.410135,0.081,
+ -2.877022,1.420985,0.144, -2.92823,1.545907,0.144, -2.949693,1.53779,0.081,
+ -2.949693,1.53779,0.081, -2.896846,1.410135,0.081, -2.877022,1.420985,0.144,
+ -2.847806,1.436974,0.189, -2.896602,1.557869,0.189, -2.92823,1.545907,0.144,
+ -2.92823,1.545907,0.144, -2.877022,1.420985,0.144, -2.847806,1.436974,0.189,
+ -2.812331,1.45639,0.216, -2.858195,1.572394,0.216, -2.896602,1.557869,0.189,
+ -2.896602,1.557869,0.189, -2.847806,1.436974,0.189, -2.812331,1.45639,0.216,
+ -2.773725,1.477519,0.225, -2.8164,1.5882,0.225, -2.858195,1.572394,0.216,
+ -2.858195,1.572394,0.216, -2.812331,1.45639,0.216, -2.773725,1.477519,0.225,
+ -2.735119,1.498648,0.216, -2.774605,1.604006,0.216, -2.8164,1.5882,0.225,
+ -2.8164,1.5882,0.225, -2.773725,1.477519,0.225, -2.735119,1.498648,0.216,
+ -2.699644,1.518063,0.189, -2.736198,1.618531,0.189, -2.774605,1.604006,0.216,
+ -2.774605,1.604006,0.216, -2.735119,1.498648,0.216, -2.699644,1.518063,0.189,
+ -2.670428,1.534053,0.144, -2.70457,1.630493,0.144, -2.736198,1.618531,0.189,
+ -2.736198,1.618531,0.189, -2.699644,1.518063,0.189, -2.670428,1.534053,0.144,
+ -2.650604,1.544903,0.081, -2.683107,1.63861,0.081, -2.70457,1.630493,0.144,
+ -2.70457,1.630493,0.144, -2.670428,1.534053,0.144, -2.650604,1.544903,0.081,
+ -2.6433,1.5489,0, -2.6752,1.6416,0, -2.683107,1.63861,0.081,
+ -2.683107,1.63861,0.081, -2.650604,1.544903,0.081, -2.6433,1.5489,0,
+ -2.822326,1.285171,0.081, -2.896846,1.410135,0.081, -2.90415,1.406137,0,
+ -2.90415,1.406137,0, -2.8288,1.2804,0, -2.822326,1.285171,0.081,
+ -2.804755,1.298122,0.144, -2.877022,1.420985,0.144, -2.896846,1.410135,0.081,
+ -2.896846,1.410135,0.081, -2.822326,1.285171,0.081, -2.804755,1.298122,0.144,
+ -2.778861,1.317206,0.189, -2.847806,1.436974,0.189, -2.877022,1.420985,0.144,
+ -2.877022,1.420985,0.144, -2.804755,1.298122,0.144, -2.778861,1.317206,0.189,
+ -2.747418,1.340381,0.216, -2.812331,1.45639,0.216, -2.847806,1.436974,0.189,
+ -2.847806,1.436974,0.189, -2.778861,1.317206,0.189, -2.747418,1.340381,0.216,
+ -2.7132,1.3656,0.225, -2.773725,1.477519,0.225, -2.812331,1.45639,0.216,
+ -2.812331,1.45639,0.216, -2.747418,1.340381,0.216, -2.7132,1.3656,0.225,
+ -2.678982,1.390819,0.216, -2.735119,1.498648,0.216, -2.773725,1.477519,0.225,
+ -2.773725,1.477519,0.225, -2.7132,1.3656,0.225, -2.678982,1.390819,0.216,
+ -2.647539,1.413994,0.189, -2.699644,1.518063,0.189, -2.735119,1.498648,0.216,
+ -2.735119,1.498648,0.216, -2.678982,1.390819,0.216, -2.647539,1.413994,0.189,
+ -2.621645,1.433078,0.144, -2.670428,1.534053,0.144, -2.699644,1.518063,0.189,
+ -2.699644,1.518063,0.189, -2.647539,1.413994,0.189, -2.621645,1.433078,0.144,
+ -2.604074,1.446029,0.081, -2.650604,1.544903,0.081, -2.670428,1.534053,0.144,
+ -2.670428,1.534053,0.144, -2.621645,1.433078,0.144, -2.604074,1.446029,0.081,
+ -2.5976,1.4508,0, -2.6433,1.5489,0, -2.650604,1.544903,0.081,
+ -2.650604,1.544903,0.081, -2.604074,1.446029,0.081, -2.5976,1.4508,0,
+ -2.725825,1.163194,0.081, -2.822326,1.285171,0.081, -2.8288,1.2804,0,
+ -2.8288,1.2804,0, -2.73125,1.157813,0, -2.725825,1.163194,0.081,
+ -2.7111,1.1778,0.144, -2.804755,1.298122,0.144, -2.822326,1.285171,0.081,
+ -2.822326,1.285171,0.081, -2.725825,1.163194,0.081, -2.7111,1.1778,0.144,
+ -2.6894,1.199325,0.189, -2.778861,1.317206,0.189, -2.804755,1.298122,0.144,
+ -2.804755,1.298122,0.144, -2.7111,1.1778,0.144, -2.6894,1.199325,0.189,
+ -2.66305,1.225463,0.216, -2.747418,1.340381,0.216, -2.778861,1.317206,0.189,
+ -2.778861,1.317206,0.189, -2.6894,1.199325,0.189, -2.66305,1.225463,0.216,
+ -2.634375,1.253906,0.225, -2.7132,1.3656,0.225, -2.747418,1.340381,0.216,
+ -2.747418,1.340381,0.216, -2.66305,1.225463,0.216, -2.634375,1.253906,0.225,
+ -2.6057,1.28235,0.216, -2.678982,1.390819,0.216, -2.7132,1.3656,0.225,
+ -2.7132,1.3656,0.225, -2.634375,1.253906,0.225, -2.6057,1.28235,0.216,
+ -2.57935,1.308488,0.189, -2.647539,1.413994,0.189, -2.678982,1.390819,0.216,
+ -2.678982,1.390819,0.216, -2.6057,1.28235,0.216, -2.57935,1.308488,0.189,
+ -2.55765,1.330013,0.144, -2.621645,1.433078,0.144, -2.647539,1.413994,0.189,
+ -2.647539,1.413994,0.189, -2.57935,1.308488,0.189, -2.55765,1.330013,0.144,
+ -2.542925,1.344619,0.081, -2.604074,1.446029,0.081, -2.621645,1.433078,0.144,
+ -2.621645,1.433078,0.144, -2.55765,1.330013,0.144, -2.542925,1.344619,0.081,
+ -2.5375,1.35,0, -2.5976,1.4508,0, -2.604074,1.446029,0.081,
+ -2.604074,1.446029,0.081, -2.542925,1.344619,0.081, -2.5375,1.35,0,
+ -2.607034,1.044497,0.081, -2.725825,1.163194,0.081, -2.73125,1.157813,0,
+ -2.73125,1.157813,0, -2.6112,1.0386,0, -2.607034,1.044497,0.081,
+ -2.595725,1.060502,0.144, -2.7111,1.1778,0.144, -2.725825,1.163194,0.081,
+ -2.725825,1.163194,0.081, -2.607034,1.044497,0.081, -2.595725,1.060502,0.144,
+ -2.579059,1.08409,0.189, -2.6894,1.199325,0.189, -2.7111,1.1778,0.144,
+ -2.7111,1.1778,0.144, -2.595725,1.060502,0.144, -2.579059,1.08409,0.189,
+ -2.558822,1.112731,0.216, -2.66305,1.225463,0.216, -2.6894,1.199325,0.189,
+ -2.6894,1.199325,0.189, -2.579059,1.08409,0.189, -2.558822,1.112731,0.216,
+ -2.5368,1.1439,0.225, -2.634375,1.253906,0.225, -2.66305,1.225463,0.216,
+ -2.66305,1.225463,0.216, -2.558822,1.112731,0.216, -2.5368,1.1439,0.225,
+ -2.514778,1.175069,0.216, -2.6057,1.28235,0.216, -2.634375,1.253906,0.225,
+ -2.634375,1.253906,0.225, -2.5368,1.1439,0.225, -2.514778,1.175069,0.216,
+ -2.494541,1.20371,0.189, -2.57935,1.308488,0.189, -2.6057,1.28235,0.216,
+ -2.6057,1.28235,0.216, -2.514778,1.175069,0.216, -2.494541,1.20371,0.189,
+ -2.477875,1.227298,0.144, -2.55765,1.330013,0.144, -2.57935,1.308488,0.189,
+ -2.57935,1.308488,0.189, -2.494541,1.20371,0.189, -2.477875,1.227298,0.144,
+ -2.466566,1.243303,0.081, -2.542925,1.344619,0.081, -2.55765,1.330013,0.144,
+ -2.55765,1.330013,0.144, -2.477875,1.227298,0.144, -2.466566,1.243303,0.081,
+ -2.4624,1.2492,0, -2.5375,1.35,0, -2.542925,1.344619,0.081,
+ -2.542925,1.344619,0.081, -2.466566,1.243303,0.081, -2.4624,1.2492,0,
+ -2.465644,0.929375,0.081, -2.607034,1.044497,0.081, -2.6112,1.0386,0,
+ -2.6112,1.0386,0, -2.46835,0.922987,0, -2.465644,0.929375,0.081,
+ -2.458298,0.946711,0.144, -2.595725,1.060502,0.144, -2.607034,1.044497,0.081,
+ -2.607034,1.044497,0.081, -2.465644,0.929375,0.081, -2.458298,0.946711,0.144,
+ -2.447474,0.97226,0.189, -2.579059,1.08409,0.189, -2.595725,1.060502,0.144,
+ -2.595725,1.060502,0.144, -2.458298,0.946711,0.144, -2.447474,0.97226,0.189,
+ -2.434329,1.003283,0.216, -2.558822,1.112731,0.216, -2.579059,1.08409,0.189,
+ -2.579059,1.08409,0.189, -2.447474,0.97226,0.189, -2.434329,1.003283,0.216,
+ -2.420025,1.037044,0.225, -2.5368,1.1439,0.225, -2.558822,1.112731,0.216,
+ -2.558822,1.112731,0.216, -2.434329,1.003283,0.216, -2.420025,1.037044,0.225,
+ -2.405721,1.070804,0.216, -2.514778,1.175069,0.216, -2.5368,1.1439,0.225,
+ -2.5368,1.1439,0.225, -2.420025,1.037044,0.225, -2.405721,1.070804,0.216,
+ -2.392576,1.101828,0.189, -2.494541,1.20371,0.189, -2.514778,1.175069,0.216,
+ -2.514778,1.175069,0.216, -2.405721,1.070804,0.216, -2.392576,1.101828,0.189,
+ -2.381752,1.127376,0.144, -2.477875,1.227298,0.144, -2.494541,1.20371,0.189,
+ -2.494541,1.20371,0.189, -2.392576,1.101828,0.189, -2.381752,1.127376,0.144,
+ -2.374406,1.144713,0.081, -2.466566,1.243303,0.081, -2.477875,1.227298,0.144,
+ -2.477875,1.227298,0.144, -2.381752,1.127376,0.144, -2.374406,1.144713,0.081,
+ -2.3717,1.1511,0, -2.4624,1.2492,0, -2.466566,1.243303,0.081,
+ -2.466566,1.243303,0.081, -2.374406,1.144713,0.081, -2.3717,1.1511,0,
+ -2.301347,0.818122,0.081, -2.465644,0.929375,0.081, -2.46835,0.922987,0,
+ -2.46835,0.922987,0, -2.3024,0.8112,0, -2.301347,0.818122,0.081,
+ -2.29849,0.836909,0.144, -2.458298,0.946711,0.144, -2.465644,0.929375,0.081,
+ -2.465644,0.929375,0.081, -2.301347,0.818122,0.081, -2.29849,0.836909,0.144,
+ -2.294278,0.864595,0.189, -2.447474,0.97226,0.189, -2.458298,0.946711,0.144,
+ -2.458298,0.946711,0.144, -2.29849,0.836909,0.144, -2.294278,0.864595,0.189,
+ -2.289165,0.898214,0.216, -2.434329,1.003283,0.216, -2.447474,0.97226,0.189,
+ -2.447474,0.97226,0.189, -2.294278,0.864595,0.189, -2.289165,0.898214,0.216,
+ -2.2836,0.9348,0.225, -2.420025,1.037044,0.225, -2.434329,1.003283,0.216,
+ -2.434329,1.003283,0.216, -2.289165,0.898214,0.216, -2.2836,0.9348,0.225,
+ -2.278035,0.971386,0.216, -2.405721,1.070804,0.216, -2.420025,1.037044,0.225,
+ -2.420025,1.037044,0.225, -2.2836,0.9348,0.225, -2.278035,0.971386,0.216,
+ -2.272922,1.005005,0.189, -2.392576,1.101828,0.189, -2.405721,1.070804,0.216,
+ -2.405721,1.070804,0.216, -2.278035,0.971386,0.216, -2.272922,1.005005,0.189,
+ -2.26871,1.032691,0.144, -2.381752,1.127376,0.144, -2.392576,1.101828,0.189,
+ -2.392576,1.101828,0.189, -2.272922,1.005005,0.189, -2.26871,1.032691,0.144,
+ -2.265853,1.051478,0.081, -2.374406,1.144713,0.081, -2.381752,1.127376,0.144,
+ -2.381752,1.127376,0.144, -2.26871,1.032691,0.144, -2.265853,1.051478,0.081,
+ -2.2648,1.0584,0, -2.3717,1.1511,0, -2.374406,1.144713,0.081,
+ -2.374406,1.144713,0.081, -2.265853,1.051478,0.081, -2.2648,1.0584,0,
+ -2.113835,0.711032,0.081, -2.301347,0.818122,0.081, -2.3024,0.8112,0,
+ -2.3024,0.8112,0, -2.11305,0.703463,0, -2.113835,0.711032,0.081,
+ -2.115967,0.731578,0.144, -2.29849,0.836909,0.144, -2.301347,0.818122,0.081,
+ -2.301347,0.818122,0.081, -2.113835,0.711032,0.081, -2.115967,0.731578,0.144,
+ -2.119109,0.761855,0.189, -2.294278,0.864595,0.189, -2.29849,0.836909,0.144,
+ -2.29849,0.836909,0.144, -2.115967,0.731578,0.144, -2.119109,0.761855,0.189,
+ -2.122924,0.798621,0.216, -2.289165,0.898214,0.216, -2.294278,0.864595,0.189,
+ -2.294278,0.864595,0.189, -2.119109,0.761855,0.189, -2.122924,0.798621,0.216,
+ -2.127075,0.838631,0.225, -2.2836,0.9348,0.225, -2.289165,0.898214,0.216,
+ -2.289165,0.898214,0.216, -2.122924,0.798621,0.216, -2.127075,0.838631,0.225,
+ -2.131226,0.878641,0.216, -2.278035,0.971386,0.216, -2.2836,0.9348,0.225,
+ -2.2836,0.9348,0.225, -2.127075,0.838631,0.225, -2.131226,0.878641,0.216,
+ -2.135041,0.915407,0.189, -2.272922,1.005005,0.189, -2.278035,0.971386,0.216,
+ -2.278035,0.971386,0.216, -2.131226,0.878641,0.216, -2.135041,0.915407,0.189,
+ -2.138183,0.945685,0.144, -2.26871,1.032691,0.144, -2.272922,1.005005,0.189,
+ -2.272922,1.005005,0.189, -2.135041,0.915407,0.189, -2.138183,0.945685,0.144,
+ -2.140315,0.966231,0.081, -2.265853,1.051478,0.081, -2.26871,1.032691,0.144,
+ -2.26871,1.032691,0.144, -2.138183,0.945685,0.144, -2.140315,0.966231,0.081,
+ -2.1411,0.9738,0, -2.2648,1.0584,0, -2.265853,1.051478,0.081,
+ -2.265853,1.051478,0.081, -2.140315,0.966231,0.081, -2.1411,0.9738,0,
+ -1.9028,0.6084,0.081, -2.113835,0.711032,0.081, -2.11305,0.703463,0,
+ -2.11305,0.703463,0, -1.9,0.6,0, -1.9028,0.6084,0.081,
+ -1.9104,0.6312,0.144, -2.115967,0.731578,0.144, -2.113835,0.711032,0.081,
+ -2.113835,0.711032,0.081, -1.9028,0.6084,0.081, -1.9104,0.6312,0.144,
+ -1.9216,0.6648,0.189, -2.119109,0.761855,0.189, -2.115967,0.731578,0.144,
+ -2.115967,0.731578,0.144, -1.9104,0.6312,0.144, -1.9216,0.6648,0.189,
+ -1.9352,0.7056,0.216, -2.122924,0.798621,0.216, -2.119109,0.761855,0.189,
+ -2.119109,0.761855,0.189, -1.9216,0.6648,0.189, -1.9352,0.7056,0.216,
+ -1.95,0.75,0.225, -2.127075,0.838631,0.225, -2.122924,0.798621,0.216,
+ -2.122924,0.798621,0.216, -1.9352,0.7056,0.216, -1.95,0.75,0.225,
+ -1.9648,0.7944,0.216, -2.131226,0.878641,0.216, -2.127075,0.838631,0.225,
+ -2.127075,0.838631,0.225, -1.95,0.75,0.225, -1.9648,0.7944,0.216,
+ -1.9784,0.8352,0.189, -2.135041,0.915407,0.189, -2.131226,0.878641,0.216,
+ -2.131226,0.878641,0.216, -1.9648,0.7944,0.216, -1.9784,0.8352,0.189,
+ -1.9896,0.8688,0.144, -2.138183,0.945685,0.144, -2.135041,0.915407,0.189,
+ -2.135041,0.915407,0.189, -1.9784,0.8352,0.189, -1.9896,0.8688,0.144,
+ -1.9972,0.8916,0.081, -2.140315,0.966231,0.081, -2.138183,0.945685,0.144,
+ -2.138183,0.945685,0.144, -1.9896,0.8688,0.144, -1.9972,0.8916,0.081,
+ -2,0.9,0, -2.1411,0.9738,0, -2.140315,0.966231,0.081,
+ -2.140315,0.966231,0.081, -1.9972,0.8916,0.081, -2,0.9,0,
+ 1.939394,1.423221,-0.1751, 1.7,1.4019,-0.1782, 1.7,1.425,0,
+ 1.7,1.425,0, 1.9359,1.4442,0, 1.939394,1.423221,-0.1751,
+ 1.948879,1.366278,-0.31129, 1.7,1.3392,-0.3168, 1.7,1.4019,-0.1782,
+ 1.7,1.4019,-0.1782, 1.939394,1.423221,-0.1751, 1.948879,1.366278,-0.31129,
+ 1.962857,1.282362,-0.408568, 1.7,1.2468,-0.4158, 1.7,1.3392,-0.3168,
+ 1.7,1.3392,-0.3168, 1.948879,1.366278,-0.31129, 1.962857,1.282362,-0.408568,
+ 1.97983,1.180464,-0.466934, 1.7,1.1346,-0.4752, 1.7,1.2468,-0.4158,
+ 1.7,1.2468,-0.4158, 1.962857,1.282362,-0.408568, 1.97983,1.180464,-0.466934,
+ 1.9983,1.069575,-0.48639, 1.7,1.0125,-0.495, 1.7,1.1346,-0.4752,
+ 1.7,1.1346,-0.4752, 1.97983,1.180464,-0.466934, 1.9983,1.069575,-0.48639,
+ 2.01677,0.958686,-0.466934, 1.7,0.8904,-0.4752, 1.7,1.0125,-0.495,
+ 1.7,1.0125,-0.495, 1.9983,1.069575,-0.48639, 2.01677,0.958686,-0.466934,
+ 2.033743,0.856788,-0.408568, 1.7,0.7782,-0.4158, 1.7,0.8904,-0.4752,
+ 1.7,0.8904,-0.4752, 2.01677,0.958686,-0.466934, 2.033743,0.856788,-0.408568,
+ 2.047721,0.772872,-0.31129, 1.7,0.6858,-0.3168, 1.7,0.7782,-0.4158,
+ 1.7,0.7782,-0.4158, 2.033743,0.856788,-0.408568, 2.047721,0.772872,-0.31129,
+ 2.057206,0.715929,-0.1751, 1.7,0.6231,-0.1782, 1.7,0.6858,-0.3168,
+ 1.7,0.6858,-0.3168, 2.047721,0.772872,-0.31129, 2.057206,0.715929,-0.1751,
+ 2.0607,0.69495,0, 1.7,0.6,0, 1.7,0.6231,-0.1782,
+ 1.7,0.6231,-0.1782, 2.057206,0.715929,-0.1751, 2.0607,0.69495,0,
+ 2.116979,1.47912,-0.166687, 1.939394,1.423221,-0.1751, 1.9359,1.4442,0,
+ 1.9359,1.4442,0, 2.1112,1.4976,0, 2.116979,1.47912,-0.166687,
+ 2.132666,1.42896,-0.296333, 1.948879,1.366278,-0.31129, 1.939394,1.423221,-0.1751,
+ 1.939394,1.423221,-0.1751, 2.116979,1.47912,-0.166687, 2.132666,1.42896,-0.296333,
+ 2.155782,1.35504,-0.388937, 1.962857,1.282362,-0.408568, 1.948879,1.366278,-0.31129,
+ 1.948879,1.366278,-0.31129, 2.132666,1.42896,-0.296333, 2.155782,1.35504,-0.388937,
+ 2.183853,1.26528,-0.444499, 1.97983,1.180464,-0.466934, 1.962857,1.282362,-0.408568,
+ 1.962857,1.282362,-0.408568, 2.155782,1.35504,-0.388937, 2.183853,1.26528,-0.444499,
+ 2.2144,1.1676,-0.46302, 1.9983,1.069575,-0.48639, 1.97983,1.180464,-0.466934,
+ 1.97983,1.180464,-0.466934, 2.183853,1.26528,-0.444499, 2.2144,1.1676,-0.46302,
+ 2.244947,1.06992,-0.444499, 2.01677,0.958686,-0.466934, 1.9983,1.069575,-0.48639,
+ 1.9983,1.069575,-0.48639, 2.2144,1.1676,-0.46302, 2.244947,1.06992,-0.444499,
+ 2.273018,0.98016,-0.388937, 2.033743,0.856788,-0.408568, 2.01677,0.958686,-0.466934,
+ 2.01677,0.958686,-0.466934, 2.244947,1.06992,-0.444499, 2.273018,0.98016,-0.388937,
+ 2.296134,0.90624,-0.296333, 2.047721,0.772872,-0.31129, 2.033743,0.856788,-0.408568,
+ 2.033743,0.856788,-0.408568, 2.273018,0.98016,-0.388937, 2.296134,0.90624,-0.296333,
+ 2.311821,0.85608,-0.166687, 2.057206,0.715929,-0.1751, 2.047721,0.772872,-0.31129,
+ 2.047721,0.772872,-0.31129, 2.296134,0.90624,-0.296333, 2.311821,0.85608,-0.166687,
+ 2.3176,0.8376,0, 2.0607,0.69495,0, 2.057206,0.715929,-0.1751,
+ 2.057206,0.715929,-0.1751, 2.311821,0.85608,-0.166687, 2.3176,0.8376,0,
+ 2.244457,1.563171,-0.154289, 2.116979,1.47912,-0.166687, 2.1112,1.4976,0,
+ 2.1112,1.4976,0, 2.2373,1.5789,0, 2.244457,1.563171,-0.154289,
+ 2.263882,1.520478,-0.274291, 2.132666,1.42896,-0.296333, 2.116979,1.47912,-0.166687,
+ 2.116979,1.47912,-0.166687, 2.244457,1.563171,-0.154289, 2.263882,1.520478,-0.274291,
+ 2.29251,1.457562,-0.360007, 2.155782,1.35504,-0.388937, 2.132666,1.42896,-0.296333,
+ 2.132666,1.42896,-0.296333, 2.263882,1.520478,-0.274291, 2.29251,1.457562,-0.360007,
+ 2.327271,1.381164,-0.411437, 2.183853,1.26528,-0.444499, 2.155782,1.35504,-0.388937,
+ 2.155782,1.35504,-0.388937, 2.29251,1.457562,-0.360007, 2.327271,1.381164,-0.411437,
+ 2.3651,1.298025,-0.42858, 2.2144,1.1676,-0.46302, 2.183853,1.26528,-0.444499,
+ 2.183853,1.26528,-0.444499, 2.327271,1.381164,-0.411437, 2.3651,1.298025,-0.42858,
+ 2.402929,1.214886,-0.411437, 2.244947,1.06992,-0.444499, 2.2144,1.1676,-0.46302,
+ 2.2144,1.1676,-0.46302, 2.3651,1.298025,-0.42858, 2.402929,1.214886,-0.411437,
+ 2.43769,1.138488,-0.360007, 2.273018,0.98016,-0.388937, 2.244947,1.06992,-0.444499,
+ 2.244947,1.06992,-0.444499, 2.402929,1.214886,-0.411437, 2.43769,1.138488,-0.360007,
+ 2.466318,1.075572,-0.274291, 2.296134,0.90624,-0.296333, 2.273018,0.98016,-0.388937,
+ 2.273018,0.98016,-0.388937, 2.43769,1.138488,-0.360007, 2.466318,1.075572,-0.274291,
+ 2.485743,1.032879,-0.154289, 2.311821,0.85608,-0.166687, 2.296134,0.90624,-0.296333,
+ 2.296134,0.90624,-0.296333, 2.466318,1.075572,-0.274291, 2.485743,1.032879,-0.154289,
+ 2.4929,1.01715,0, 2.3176,0.8376,0, 2.311821,0.85608,-0.166687,
+ 2.311821,0.85608,-0.166687, 2.485743,1.032879,-0.154289, 2.4929,1.01715,0,
+ 2.33353,1.668948,-0.139234, 2.244457,1.563171,-0.154289, 2.2373,1.5789,0,
+ 2.2373,1.5789,0, 2.3256,1.6818,0, 2.33353,1.668948,-0.139234,
+ 2.355053,1.634064,-0.247526, 2.263882,1.520478,-0.274291, 2.244457,1.563171,-0.154289,
+ 2.244457,1.563171,-0.154289, 2.33353,1.668948,-0.139234, 2.355053,1.634064,-0.247526,
+ 2.386771,1.582656,-0.324878, 2.29251,1.457562,-0.360007, 2.263882,1.520478,-0.274291,
+ 2.263882,1.520478,-0.274291, 2.355053,1.634064,-0.247526, 2.386771,1.582656,-0.324878,
+ 2.425286,1.520232,-0.37129, 2.327271,1.381164,-0.411437, 2.29251,1.457562,-0.360007,
+ 2.29251,1.457562,-0.360007, 2.386771,1.582656,-0.324878, 2.425286,1.520232,-0.37129,
+ 2.4672,1.4523,-0.38676, 2.3651,1.298025,-0.42858, 2.327271,1.381164,-0.411437,
+ 2.327271,1.381164,-0.411437, 2.425286,1.520232,-0.37129, 2.4672,1.4523,-0.38676,
+ 2.509114,1.384368,-0.37129, 2.402929,1.214886,-0.411437, 2.3651,1.298025,-0.42858,
+ 2.3651,1.298025,-0.42858, 2.4672,1.4523,-0.38676, 2.509114,1.384368,-0.37129,
+ 2.547629,1.321944,-0.324878, 2.43769,1.138488,-0.360007, 2.402929,1.214886,-0.411437,
+ 2.402929,1.214886,-0.411437, 2.509114,1.384368,-0.37129, 2.547629,1.321944,-0.324878,
+ 2.579347,1.270536,-0.247526, 2.466318,1.075572,-0.274291, 2.43769,1.138488,-0.360007,
+ 2.43769,1.138488,-0.360007, 2.547629,1.321944,-0.324878, 2.579347,1.270536,-0.247526,
+ 2.60087,1.235652,-0.139234, 2.485743,1.032879,-0.154289, 2.466318,1.075572,-0.274291,
+ 2.466318,1.075572,-0.274291, 2.579347,1.270536,-0.247526, 2.60087,1.235652,-0.139234,
+ 2.6088,1.2228,0, 2.4929,1.01715,0, 2.485743,1.032879,-0.154289,
+ 2.485743,1.032879,-0.154289, 2.60087,1.235652,-0.139234, 2.6088,1.2228,0,
+ 2.3959,1.790025,-0.12285, 2.33353,1.668948,-0.139234, 2.3256,1.6818,0,
+ 2.3256,1.6818,0, 2.3875,1.8,0, 2.3959,1.790025,-0.12285,
+ 2.4187,1.76295,-0.2184, 2.355053,1.634064,-0.247526, 2.33353,1.668948,-0.139234,
+ 2.33353,1.668948,-0.139234, 2.3959,1.790025,-0.12285, 2.4187,1.76295,-0.2184,
+ 2.4523,1.72305,-0.28665, 2.386771,1.582656,-0.324878, 2.355053,1.634064,-0.247526,
+ 2.355053,1.634064,-0.247526, 2.4187,1.76295,-0.2184, 2.4523,1.72305,-0.28665,
+ 2.4931,1.6746,-0.3276, 2.425286,1.520232,-0.37129, 2.386771,1.582656,-0.324878,
+ 2.386771,1.582656,-0.324878, 2.4523,1.72305,-0.28665, 2.4931,1.6746,-0.3276,
+ 2.5375,1.621875,-0.34125, 2.4672,1.4523,-0.38676, 2.425286,1.520232,-0.37129,
+ 2.425286,1.520232,-0.37129, 2.4931,1.6746,-0.3276, 2.5375,1.621875,-0.34125,
+ 2.5819,1.56915,-0.3276, 2.509114,1.384368,-0.37129, 2.4672,1.4523,-0.38676,
+ 2.4672,1.4523,-0.38676, 2.5375,1.621875,-0.34125, 2.5819,1.56915,-0.3276,
+ 2.6227,1.5207,-0.28665, 2.547629,1.321944,-0.324878, 2.509114,1.384368,-0.37129,
+ 2.509114,1.384368,-0.37129, 2.5819,1.56915,-0.3276, 2.6227,1.5207,-0.28665,
+ 2.6563,1.4808,-0.2184, 2.579347,1.270536,-0.247526, 2.547629,1.321944,-0.324878,
+ 2.547629,1.321944,-0.324878, 2.6227,1.5207,-0.28665, 2.6563,1.4808,-0.2184,
+ 2.6791,1.453725,-0.12285, 2.60087,1.235652,-0.139234, 2.579347,1.270536,-0.247526,
+ 2.579347,1.270536,-0.247526, 2.6563,1.4808,-0.2184, 2.6791,1.453725,-0.12285,
+ 2.6875,1.44375,0, 2.6088,1.2228,0, 2.60087,1.235652,-0.139234,
+ 2.60087,1.235652,-0.139234, 2.6791,1.453725,-0.12285, 2.6875,1.44375,0,
+ 2.44327,1.919976,-0.106466, 2.3959,1.790025,-0.12285, 2.3875,1.8,0,
+ 2.3875,1.8,0, 2.4344,1.9272,0, 2.44327,1.919976,-0.106466,
+ 2.467347,1.900368,-0.189274, 2.4187,1.76295,-0.2184, 2.3959,1.790025,-0.12285,
+ 2.3959,1.790025,-0.12285, 2.44327,1.919976,-0.106466, 2.467347,1.900368,-0.189274,
+ 2.502829,1.871472,-0.248422, 2.4523,1.72305,-0.28665, 2.4187,1.76295,-0.2184,
+ 2.4187,1.76295,-0.2184, 2.467347,1.900368,-0.189274, 2.502829,1.871472,-0.248422,
+ 2.545914,1.836384,-0.28391, 2.4931,1.6746,-0.3276, 2.4523,1.72305,-0.28665,
+ 2.4523,1.72305,-0.28665, 2.502829,1.871472,-0.248422, 2.545914,1.836384,-0.28391,
+ 2.5928,1.7982,-0.29574, 2.5375,1.621875,-0.34125, 2.4931,1.6746,-0.3276,
+ 2.4931,1.6746,-0.3276, 2.545914,1.836384,-0.28391, 2.5928,1.7982,-0.29574,
+ 2.639686,1.760016,-0.28391, 2.5819,1.56915,-0.3276, 2.5375,1.621875,-0.34125,
+ 2.5375,1.621875,-0.34125, 2.5928,1.7982,-0.29574, 2.639686,1.760016,-0.28391,
+ 2.682771,1.724928,-0.248422, 2.6227,1.5207,-0.28665, 2.5819,1.56915,-0.3276,
+ 2.5819,1.56915,-0.3276, 2.639686,1.760016,-0.28391, 2.682771,1.724928,-0.248422,
+ 2.718253,1.696032,-0.189274, 2.6563,1.4808,-0.2184, 2.6227,1.5207,-0.28665,
+ 2.6227,1.5207,-0.28665, 2.682771,1.724928,-0.248422, 2.718253,1.696032,-0.189274,
+ 2.74233,1.676424,-0.106466, 2.6791,1.453725,-0.12285, 2.6563,1.4808,-0.2184,
+ 2.6563,1.4808,-0.2184, 2.718253,1.696032,-0.189274, 2.74233,1.676424,-0.106466,
+ 2.7512,1.6692,0, 2.6875,1.44375,0, 2.6791,1.453725,-0.12285,
+ 2.6791,1.453725,-0.12285, 2.74233,1.676424,-0.106466, 2.7512,1.6692,0,
+ 2.487343,2.052375,-0.091411, 2.44327,1.919976,-0.106466, 2.4344,1.9272,0,
+ 2.4344,1.9272,0, 2.4777,2.0571,0, 2.487343,2.052375,-0.091411,
+ 2.513518,2.03955,-0.162509, 2.467347,1.900368,-0.189274, 2.44327,1.919976,-0.106466,
+ 2.44327,1.919976,-0.106466, 2.487343,2.052375,-0.091411, 2.513518,2.03955,-0.162509,
+ 2.55209,2.02065,-0.213293, 2.502829,1.871472,-0.248422, 2.467347,1.900368,-0.189274,
+ 2.467347,1.900368,-0.189274, 2.513518,2.03955,-0.162509, 2.55209,2.02065,-0.213293,
+ 2.598929,1.9977,-0.243763, 2.545914,1.836384,-0.28391, 2.502829,1.871472,-0.248422,
+ 2.502829,1.871472,-0.248422, 2.55209,2.02065,-0.213293, 2.598929,1.9977,-0.243763,
+ 2.6499,1.972725,-0.25392, 2.5928,1.7982,-0.29574, 2.545914,1.836384,-0.28391,
+ 2.545914,1.836384,-0.28391, 2.598929,1.9977,-0.243763, 2.6499,1.972725,-0.25392,
+ 2.700871,1.94775,-0.243763, 2.639686,1.760016,-0.28391, 2.5928,1.7982,-0.29574,
+ 2.5928,1.7982,-0.29574, 2.6499,1.972725,-0.25392, 2.700871,1.94775,-0.243763,
+ 2.74771,1.9248,-0.213293, 2.682771,1.724928,-0.248422, 2.639686,1.760016,-0.28391,
+ 2.639686,1.760016,-0.28391, 2.700871,1.94775,-0.243763, 2.74771,1.9248,-0.213293,
+ 2.786282,1.9059,-0.162509, 2.718253,1.696032,-0.189274, 2.682771,1.724928,-0.248422,
+ 2.682771,1.724928,-0.248422, 2.74771,1.9248,-0.213293, 2.786282,1.9059,-0.162509,
+ 2.812457,1.893075,-0.091411, 2.74233,1.676424,-0.106466, 2.718253,1.696032,-0.189274,
+ 2.718253,1.696032,-0.189274, 2.786282,1.9059,-0.162509, 2.812457,1.893075,-0.091411,
+ 2.8221,1.88835,0, 2.7512,1.6692,0, 2.74233,1.676424,-0.106466,
+ 2.74233,1.676424,-0.106466, 2.812457,1.893075,-0.091411, 2.8221,1.88835,0,
+ 2.539821,2.180796,-0.079013, 2.487343,2.052375,-0.091411, 2.4777,2.0571,0,
+ 2.4777,2.0571,0, 2.5288,2.1834,0, 2.539821,2.180796,-0.079013,
+ 2.569734,2.173728,-0.140467, 2.513518,2.03955,-0.162509, 2.487343,2.052375,-0.091411,
+ 2.487343,2.052375,-0.091411, 2.539821,2.180796,-0.079013, 2.569734,2.173728,-0.140467,
+ 2.613818,2.163312,-0.184363, 2.55209,2.02065,-0.213293, 2.513518,2.03955,-0.162509,
+ 2.513518,2.03955,-0.162509, 2.569734,2.173728,-0.140467, 2.613818,2.163312,-0.184363,
+ 2.667347,2.150664,-0.210701, 2.598929,1.9977,-0.243763, 2.55209,2.02065,-0.213293,
+ 2.55209,2.02065,-0.213293, 2.613818,2.163312,-0.184363, 2.667347,2.150664,-0.210701,
+ 2.7256,2.1369,-0.21948, 2.6499,1.972725,-0.25392, 2.598929,1.9977,-0.243763,
+ 2.598929,1.9977,-0.243763, 2.667347,2.150664,-0.210701, 2.7256,2.1369,-0.21948,
+ 2.783853,2.123136,-0.210701, 2.700871,1.94775,-0.243763, 2.6499,1.972725,-0.25392,
+ 2.6499,1.972725,-0.25392, 2.7256,2.1369,-0.21948, 2.783853,2.123136,-0.210701,
+ 2.837382,2.110488,-0.184363, 2.74771,1.9248,-0.213293, 2.700871,1.94775,-0.243763,
+ 2.700871,1.94775,-0.243763, 2.783853,2.123136,-0.210701, 2.837382,2.110488,-0.184363,
+ 2.881466,2.100072,-0.140467, 2.786282,1.9059,-0.162509, 2.74771,1.9248,-0.213293,
+ 2.74771,1.9248,-0.213293, 2.837382,2.110488,-0.184363, 2.881466,2.100072,-0.140467,
+ 2.911379,2.093004,-0.079013, 2.812457,1.893075,-0.091411, 2.786282,1.9059,-0.162509,
+ 2.786282,1.9059,-0.162509, 2.881466,2.100072,-0.140467, 2.911379,2.093004,-0.079013,
+ 2.9224,2.0904,0, 2.8221,1.88835,0, 2.812457,1.893075,-0.091411,
+ 2.812457,1.893075,-0.091411, 2.911379,2.093004,-0.079013, 2.9224,2.0904,0,
+ 2.612406,2.298813,-0.0706, 2.539821,2.180796,-0.079013, 2.5288,2.1834,0,
+ 2.5288,2.1834,0, 2.5991,2.2998,0, 2.612406,2.298813,-0.0706,
+ 2.648521,2.296134,-0.12551, 2.569734,2.173728,-0.140467, 2.539821,2.180796,-0.079013,
+ 2.539821,2.180796,-0.079013, 2.612406,2.298813,-0.0706, 2.648521,2.296134,-0.12551,
+ 2.701743,2.292186,-0.164732, 2.613818,2.163312,-0.184363, 2.569734,2.173728,-0.140467,
+ 2.569734,2.173728,-0.140467, 2.648521,2.296134,-0.12551, 2.701743,2.292186,-0.164732,
+ 2.76637,2.287392,-0.188266, 2.667347,2.150664,-0.210701, 2.613818,2.163312,-0.184363,
+ 2.613818,2.163312,-0.184363, 2.701743,2.292186,-0.164732, 2.76637,2.287392,-0.188266,
+ 2.8367,2.282175,-0.19611, 2.7256,2.1369,-0.21948, 2.667347,2.150664,-0.210701,
+ 2.667347,2.150664,-0.210701, 2.76637,2.287392,-0.188266, 2.8367,2.282175,-0.19611,
+ 2.90703,2.276958,-0.188266, 2.783853,2.123136,-0.210701, 2.7256,2.1369,-0.21948,
+ 2.7256,2.1369,-0.21948, 2.8367,2.282175,-0.19611, 2.90703,2.276958,-0.188266,
+ 2.971657,2.272164,-0.164732, 2.837382,2.110488,-0.184363, 2.783853,2.123136,-0.210701,
+ 2.783853,2.123136,-0.210701, 2.90703,2.276958,-0.188266, 2.971657,2.272164,-0.164732,
+ 3.024879,2.268216,-0.12551, 2.881466,2.100072,-0.140467, 2.837382,2.110488,-0.184363,
+ 2.837382,2.110488,-0.184363, 2.971657,2.272164,-0.164732, 3.024879,2.268216,-0.12551,
+ 3.060994,2.265537,-0.0706, 2.911379,2.093004,-0.079013, 2.881466,2.100072,-0.140467,
+ 2.881466,2.100072,-0.140467, 3.024879,2.268216,-0.12551, 3.060994,2.265537,-0.0706,
+ 3.0743,2.26455,0, 2.9224,2.0904,0, 2.911379,2.093004,-0.079013,
+ 2.911379,2.093004,-0.079013, 3.060994,2.265537,-0.0706, 3.0743,2.26455,0,
+ 2.7168,2.4,-0.0675, 2.612406,2.298813,-0.0706, 2.5991,2.2998,0,
+ 2.5991,2.2998,0, 2.7,2.4,0, 2.7168,2.4,-0.0675,
+ 2.7624,2.4,-0.12, 2.648521,2.296134,-0.12551, 2.612406,2.298813,-0.0706,
+ 2.612406,2.298813,-0.0706, 2.7168,2.4,-0.0675, 2.7624,2.4,-0.12,
+ 2.8296,2.4,-0.1575, 2.701743,2.292186,-0.164732, 2.648521,2.296134,-0.12551,
+ 2.648521,2.296134,-0.12551, 2.7624,2.4,-0.12, 2.8296,2.4,-0.1575,
+ 2.9112,2.4,-0.18, 2.76637,2.287392,-0.188266, 2.701743,2.292186,-0.164732,
+ 2.701743,2.292186,-0.164732, 2.8296,2.4,-0.1575, 2.9112,2.4,-0.18,
+ 3,2.4,-0.1875, 2.8367,2.282175,-0.19611, 2.76637,2.287392,-0.188266,
+ 2.76637,2.287392,-0.188266, 2.9112,2.4,-0.18, 3,2.4,-0.1875,
+ 3.0888,2.4,-0.18, 2.90703,2.276958,-0.188266, 2.8367,2.282175,-0.19611,
+ 2.8367,2.282175,-0.19611, 3,2.4,-0.1875, 3.0888,2.4,-0.18,
+ 3.1704,2.4,-0.1575, 2.971657,2.272164,-0.164732, 2.90703,2.276958,-0.188266,
+ 2.90703,2.276958,-0.188266, 3.0888,2.4,-0.18, 3.1704,2.4,-0.1575,
+ 3.2376,2.4,-0.12, 3.024879,2.268216,-0.12551, 2.971657,2.272164,-0.164732,
+ 2.971657,2.272164,-0.164732, 3.1704,2.4,-0.1575, 3.2376,2.4,-0.12,
+ 3.2832,2.4,-0.0675, 3.060994,2.265537,-0.0706, 3.024879,2.268216,-0.12551,
+ 3.024879,2.268216,-0.12551, 3.2376,2.4,-0.12, 3.2832,2.4,-0.0675,
+ 3.3,2.4,0, 3.0743,2.26455,0, 3.060994,2.265537,-0.0706,
+ 3.060994,2.265537,-0.0706, 3.2832,2.4,-0.0675, 3.3,2.4,0,
+ 2.057206,0.715929,0.1751, 1.7,0.6231,0.1782, 1.7,0.6,0,
+ 1.7,0.6,0, 2.0607,0.69495,0, 2.057206,0.715929,0.1751,
+ 2.047721,0.772872,0.31129, 1.7,0.6858,0.3168, 1.7,0.6231,0.1782,
+ 1.7,0.6231,0.1782, 2.057206,0.715929,0.1751, 2.047721,0.772872,0.31129,
+ 2.033743,0.856788,0.408568, 1.7,0.7782,0.4158, 1.7,0.6858,0.3168,
+ 1.7,0.6858,0.3168, 2.047721,0.772872,0.31129, 2.033743,0.856788,0.408568,
+ 2.01677,0.958686,0.466934, 1.7,0.8904,0.4752, 1.7,0.7782,0.4158,
+ 1.7,0.7782,0.4158, 2.033743,0.856788,0.408568, 2.01677,0.958686,0.466934,
+ 1.9983,1.069575,0.48639, 1.7,1.0125,0.495, 1.7,0.8904,0.4752,
+ 1.7,0.8904,0.4752, 2.01677,0.958686,0.466934, 1.9983,1.069575,0.48639,
+ 1.97983,1.180464,0.466934, 1.7,1.1346,0.4752, 1.7,1.0125,0.495,
+ 1.7,1.0125,0.495, 1.9983,1.069575,0.48639, 1.97983,1.180464,0.466934,
+ 1.962857,1.282362,0.408568, 1.7,1.2468,0.4158, 1.7,1.1346,0.4752,
+ 1.7,1.1346,0.4752, 1.97983,1.180464,0.466934, 1.962857,1.282362,0.408568,
+ 1.948879,1.366278,0.31129, 1.7,1.3392,0.3168, 1.7,1.2468,0.4158,
+ 1.7,1.2468,0.4158, 1.962857,1.282362,0.408568, 1.948879,1.366278,0.31129,
+ 1.939394,1.423221,0.1751, 1.7,1.4019,0.1782, 1.7,1.3392,0.3168,
+ 1.7,1.3392,0.3168, 1.948879,1.366278,0.31129, 1.939394,1.423221,0.1751,
+ 1.9359,1.4442,0, 1.7,1.425,0, 1.7,1.4019,0.1782,
+ 1.7,1.4019,0.1782, 1.939394,1.423221,0.1751, 1.9359,1.4442,0,
+ 2.311821,0.85608,0.166687, 2.057206,0.715929,0.1751, 2.0607,0.69495,0,
+ 2.0607,0.69495,0, 2.3176,0.8376,0, 2.311821,0.85608,0.166687,
+ 2.296134,0.90624,0.296333, 2.047721,0.772872,0.31129, 2.057206,0.715929,0.1751,
+ 2.057206,0.715929,0.1751, 2.311821,0.85608,0.166687, 2.296134,0.90624,0.296333,
+ 2.273018,0.98016,0.388937, 2.033743,0.856788,0.408568, 2.047721,0.772872,0.31129,
+ 2.047721,0.772872,0.31129, 2.296134,0.90624,0.296333, 2.273018,0.98016,0.388937,
+ 2.244947,1.06992,0.444499, 2.01677,0.958686,0.466934, 2.033743,0.856788,0.408568,
+ 2.033743,0.856788,0.408568, 2.273018,0.98016,0.388937, 2.244947,1.06992,0.444499,
+ 2.2144,1.1676,0.46302, 1.9983,1.069575,0.48639, 2.01677,0.958686,0.466934,
+ 2.01677,0.958686,0.466934, 2.244947,1.06992,0.444499, 2.2144,1.1676,0.46302,
+ 2.183853,1.26528,0.444499, 1.97983,1.180464,0.466934, 1.9983,1.069575,0.48639,
+ 1.9983,1.069575,0.48639, 2.2144,1.1676,0.46302, 2.183853,1.26528,0.444499,
+ 2.155782,1.35504,0.388937, 1.962857,1.282362,0.408568, 1.97983,1.180464,0.466934,
+ 1.97983,1.180464,0.466934, 2.183853,1.26528,0.444499, 2.155782,1.35504,0.388937,
+ 2.132666,1.42896,0.296333, 1.948879,1.366278,0.31129, 1.962857,1.282362,0.408568,
+ 1.962857,1.282362,0.408568, 2.155782,1.35504,0.388937, 2.132666,1.42896,0.296333,
+ 2.116979,1.47912,0.166687, 1.939394,1.423221,0.1751, 1.948879,1.366278,0.31129,
+ 1.948879,1.366278,0.31129, 2.132666,1.42896,0.296333, 2.116979,1.47912,0.166687,
+ 2.1112,1.4976,0, 1.9359,1.4442,0, 1.939394,1.423221,0.1751,
+ 1.939394,1.423221,0.1751, 2.116979,1.47912,0.166687, 2.1112,1.4976,0,
+ 2.485743,1.032879,0.154289, 2.311821,0.85608,0.166687, 2.3176,0.8376,0,
+ 2.3176,0.8376,0, 2.4929,1.01715,0, 2.485743,1.032879,0.154289,
+ 2.466318,1.075572,0.274291, 2.296134,0.90624,0.296333, 2.311821,0.85608,0.166687,
+ 2.311821,0.85608,0.166687, 2.485743,1.032879,0.154289, 2.466318,1.075572,0.274291,
+ 2.43769,1.138488,0.360007, 2.273018,0.98016,0.388937, 2.296134,0.90624,0.296333,
+ 2.296134,0.90624,0.296333, 2.466318,1.075572,0.274291, 2.43769,1.138488,0.360007,
+ 2.402929,1.214886,0.411437, 2.244947,1.06992,0.444499, 2.273018,0.98016,0.388937,
+ 2.273018,0.98016,0.388937, 2.43769,1.138488,0.360007, 2.402929,1.214886,0.411437,
+ 2.3651,1.298025,0.42858, 2.2144,1.1676,0.46302, 2.244947,1.06992,0.444499,
+ 2.244947,1.06992,0.444499, 2.402929,1.214886,0.411437, 2.3651,1.298025,0.42858,
+ 2.327271,1.381164,0.411437, 2.183853,1.26528,0.444499, 2.2144,1.1676,0.46302,
+ 2.2144,1.1676,0.46302, 2.3651,1.298025,0.42858, 2.327271,1.381164,0.411437,
+ 2.29251,1.457562,0.360007, 2.155782,1.35504,0.388937, 2.183853,1.26528,0.444499,
+ 2.183853,1.26528,0.444499, 2.327271,1.381164,0.411437, 2.29251,1.457562,0.360007,
+ 2.263882,1.520478,0.274291, 2.132666,1.42896,0.296333, 2.155782,1.35504,0.388937,
+ 2.155782,1.35504,0.388937, 2.29251,1.457562,0.360007, 2.263882,1.520478,0.274291,
+ 2.244457,1.563171,0.154289, 2.116979,1.47912,0.166687, 2.132666,1.42896,0.296333,
+ 2.132666,1.42896,0.296333, 2.263882,1.520478,0.274291, 2.244457,1.563171,0.154289,
+ 2.2373,1.5789,0, 2.1112,1.4976,0, 2.116979,1.47912,0.166687,
+ 2.116979,1.47912,0.166687, 2.244457,1.563171,0.154289, 2.2373,1.5789,0,
+ 2.60087,1.235652,0.139234, 2.485743,1.032879,0.154289, 2.4929,1.01715,0,
+ 2.4929,1.01715,0, 2.6088,1.2228,0, 2.60087,1.235652,0.139234,
+ 2.579347,1.270536,0.247526, 2.466318,1.075572,0.274291, 2.485743,1.032879,0.154289,
+ 2.485743,1.032879,0.154289, 2.60087,1.235652,0.139234, 2.579347,1.270536,0.247526,
+ 2.547629,1.321944,0.324878, 2.43769,1.138488,0.360007, 2.466318,1.075572,0.274291,
+ 2.466318,1.075572,0.274291, 2.579347,1.270536,0.247526, 2.547629,1.321944,0.324878,
+ 2.509114,1.384368,0.37129, 2.402929,1.214886,0.411437, 2.43769,1.138488,0.360007,
+ 2.43769,1.138488,0.360007, 2.547629,1.321944,0.324878, 2.509114,1.384368,0.37129,
+ 2.4672,1.4523,0.38676, 2.3651,1.298025,0.42858, 2.402929,1.214886,0.411437,
+ 2.402929,1.214886,0.411437, 2.509114,1.384368,0.37129, 2.4672,1.4523,0.38676,
+ 2.425286,1.520232,0.37129, 2.327271,1.381164,0.411437, 2.3651,1.298025,0.42858,
+ 2.3651,1.298025,0.42858, 2.4672,1.4523,0.38676, 2.425286,1.520232,0.37129,
+ 2.386771,1.582656,0.324878, 2.29251,1.457562,0.360007, 2.327271,1.381164,0.411437,
+ 2.327271,1.381164,0.411437, 2.425286,1.520232,0.37129, 2.386771,1.582656,0.324878,
+ 2.355053,1.634064,0.247526, 2.263882,1.520478,0.274291, 2.29251,1.457562,0.360007,
+ 2.29251,1.457562,0.360007, 2.386771,1.582656,0.324878, 2.355053,1.634064,0.247526,
+ 2.33353,1.668948,0.139234, 2.244457,1.563171,0.154289, 2.263882,1.520478,0.274291,
+ 2.263882,1.520478,0.274291, 2.355053,1.634064,0.247526, 2.33353,1.668948,0.139234,
+ 2.3256,1.6818,0, 2.2373,1.5789,0, 2.244457,1.563171,0.154289,
+ 2.244457,1.563171,0.154289, 2.33353,1.668948,0.139234, 2.3256,1.6818,0,
+ 2.6791,1.453725,0.12285, 2.60087,1.235652,0.139234, 2.6088,1.2228,0,
+ 2.6088,1.2228,0, 2.6875,1.44375,0, 2.6791,1.453725,0.12285,
+ 2.6563,1.4808,0.2184, 2.579347,1.270536,0.247526, 2.60087,1.235652,0.139234,
+ 2.60087,1.235652,0.139234, 2.6791,1.453725,0.12285, 2.6563,1.4808,0.2184,
+ 2.6227,1.5207,0.28665, 2.547629,1.321944,0.324878, 2.579347,1.270536,0.247526,
+ 2.579347,1.270536,0.247526, 2.6563,1.4808,0.2184, 2.6227,1.5207,0.28665,
+ 2.5819,1.56915,0.3276, 2.509114,1.384368,0.37129, 2.547629,1.321944,0.324878,
+ 2.547629,1.321944,0.324878, 2.6227,1.5207,0.28665, 2.5819,1.56915,0.3276,
+ 2.5375,1.621875,0.34125, 2.4672,1.4523,0.38676, 2.509114,1.384368,0.37129,
+ 2.509114,1.384368,0.37129, 2.5819,1.56915,0.3276, 2.5375,1.621875,0.34125,
+ 2.4931,1.6746,0.3276, 2.425286,1.520232,0.37129, 2.4672,1.4523,0.38676,
+ 2.4672,1.4523,0.38676, 2.5375,1.621875,0.34125, 2.4931,1.6746,0.3276,
+ 2.4523,1.72305,0.28665, 2.386771,1.582656,0.324878, 2.425286,1.520232,0.37129,
+ 2.425286,1.520232,0.37129, 2.4931,1.6746,0.3276, 2.4523,1.72305,0.28665,
+ 2.4187,1.76295,0.2184, 2.355053,1.634064,0.247526, 2.386771,1.582656,0.324878,
+ 2.386771,1.582656,0.324878, 2.4523,1.72305,0.28665, 2.4187,1.76295,0.2184,
+ 2.3959,1.790025,0.12285, 2.33353,1.668948,0.139234, 2.355053,1.634064,0.247526,
+ 2.355053,1.634064,0.247526, 2.4187,1.76295,0.2184, 2.3959,1.790025,0.12285,
+ 2.3875,1.8,0, 2.3256,1.6818,0, 2.33353,1.668948,0.139234,
+ 2.33353,1.668948,0.139234, 2.3959,1.790025,0.12285, 2.3875,1.8,0,
+ 2.74233,1.676424,0.106466, 2.6791,1.453725,0.12285, 2.6875,1.44375,0,
+ 2.6875,1.44375,0, 2.7512,1.6692,0, 2.74233,1.676424,0.106466,
+ 2.718253,1.696032,0.189274, 2.6563,1.4808,0.2184, 2.6791,1.453725,0.12285,
+ 2.6791,1.453725,0.12285, 2.74233,1.676424,0.106466, 2.718253,1.696032,0.189274,
+ 2.682771,1.724928,0.248422, 2.6227,1.5207,0.28665, 2.6563,1.4808,0.2184,
+ 2.6563,1.4808,0.2184, 2.718253,1.696032,0.189274, 2.682771,1.724928,0.248422,
+ 2.639686,1.760016,0.28391, 2.5819,1.56915,0.3276, 2.6227,1.5207,0.28665,
+ 2.6227,1.5207,0.28665, 2.682771,1.724928,0.248422, 2.639686,1.760016,0.28391,
+ 2.5928,1.7982,0.29574, 2.5375,1.621875,0.34125, 2.5819,1.56915,0.3276,
+ 2.5819,1.56915,0.3276, 2.639686,1.760016,0.28391, 2.5928,1.7982,0.29574,
+ 2.545914,1.836384,0.28391, 2.4931,1.6746,0.3276, 2.5375,1.621875,0.34125,
+ 2.5375,1.621875,0.34125, 2.5928,1.7982,0.29574, 2.545914,1.836384,0.28391,
+ 2.502829,1.871472,0.248422, 2.4523,1.72305,0.28665, 2.4931,1.6746,0.3276,
+ 2.4931,1.6746,0.3276, 2.545914,1.836384,0.28391, 2.502829,1.871472,0.248422,
+ 2.467347,1.900368,0.189274, 2.4187,1.76295,0.2184, 2.4523,1.72305,0.28665,
+ 2.4523,1.72305,0.28665, 2.502829,1.871472,0.248422, 2.467347,1.900368,0.189274,
+ 2.44327,1.919976,0.106466, 2.3959,1.790025,0.12285, 2.4187,1.76295,0.2184,
+ 2.4187,1.76295,0.2184, 2.467347,1.900368,0.189274, 2.44327,1.919976,0.106466,
+ 2.4344,1.9272,0, 2.3875,1.8,0, 2.3959,1.790025,0.12285,
+ 2.3959,1.790025,0.12285, 2.44327,1.919976,0.106466, 2.4344,1.9272,0,
+ 2.812457,1.893075,0.091411, 2.74233,1.676424,0.106466, 2.7512,1.6692,0,
+ 2.7512,1.6692,0, 2.8221,1.88835,0, 2.812457,1.893075,0.091411,
+ 2.786282,1.9059,0.162509, 2.718253,1.696032,0.189274, 2.74233,1.676424,0.106466,
+ 2.74233,1.676424,0.106466, 2.812457,1.893075,0.091411, 2.786282,1.9059,0.162509,
+ 2.74771,1.9248,0.213293, 2.682771,1.724928,0.248422, 2.718253,1.696032,0.189274,
+ 2.718253,1.696032,0.189274, 2.786282,1.9059,0.162509, 2.74771,1.9248,0.213293,
+ 2.700871,1.94775,0.243763, 2.639686,1.760016,0.28391, 2.682771,1.724928,0.248422,
+ 2.682771,1.724928,0.248422, 2.74771,1.9248,0.213293, 2.700871,1.94775,0.243763,
+ 2.6499,1.972725,0.25392, 2.5928,1.7982,0.29574, 2.639686,1.760016,0.28391,
+ 2.639686,1.760016,0.28391, 2.700871,1.94775,0.243763, 2.6499,1.972725,0.25392,
+ 2.598929,1.9977,0.243763, 2.545914,1.836384,0.28391, 2.5928,1.7982,0.29574,
+ 2.5928,1.7982,0.29574, 2.6499,1.972725,0.25392, 2.598929,1.9977,0.243763,
+ 2.55209,2.02065,0.213293, 2.502829,1.871472,0.248422, 2.545914,1.836384,0.28391,
+ 2.545914,1.836384,0.28391, 2.598929,1.9977,0.243763, 2.55209,2.02065,0.213293,
+ 2.513518,2.03955,0.162509, 2.467347,1.900368,0.189274, 2.502829,1.871472,0.248422,
+ 2.502829,1.871472,0.248422, 2.55209,2.02065,0.213293, 2.513518,2.03955,0.162509,
+ 2.487343,2.052375,0.091411, 2.44327,1.919976,0.106466, 2.467347,1.900368,0.189274,
+ 2.467347,1.900368,0.189274, 2.513518,2.03955,0.162509, 2.487343,2.052375,0.091411,
+ 2.4777,2.0571,0, 2.4344,1.9272,0, 2.44327,1.919976,0.106466,
+ 2.44327,1.919976,0.106466, 2.487343,2.052375,0.091411, 2.4777,2.0571,0,
+ 2.911379,2.093004,0.079013, 2.812457,1.893075,0.091411, 2.8221,1.88835,0,
+ 2.8221,1.88835,0, 2.9224,2.0904,0, 2.911379,2.093004,0.079013,
+ 2.881466,2.100072,0.140467, 2.786282,1.9059,0.162509, 2.812457,1.893075,0.091411,
+ 2.812457,1.893075,0.091411, 2.911379,2.093004,0.079013, 2.881466,2.100072,0.140467,
+ 2.837382,2.110488,0.184363, 2.74771,1.9248,0.213293, 2.786282,1.9059,0.162509,
+ 2.786282,1.9059,0.162509, 2.881466,2.100072,0.140467, 2.837382,2.110488,0.184363,
+ 2.783853,2.123136,0.210701, 2.700871,1.94775,0.243763, 2.74771,1.9248,0.213293,
+ 2.74771,1.9248,0.213293, 2.837382,2.110488,0.184363, 2.783853,2.123136,0.210701,
+ 2.7256,2.1369,0.21948, 2.6499,1.972725,0.25392, 2.700871,1.94775,0.243763,
+ 2.700871,1.94775,0.243763, 2.783853,2.123136,0.210701, 2.7256,2.1369,0.21948,
+ 2.667347,2.150664,0.210701, 2.598929,1.9977,0.243763, 2.6499,1.972725,0.25392,
+ 2.6499,1.972725,0.25392, 2.7256,2.1369,0.21948, 2.667347,2.150664,0.210701,
+ 2.613818,2.163312,0.184363, 2.55209,2.02065,0.213293, 2.598929,1.9977,0.243763,
+ 2.598929,1.9977,0.243763, 2.667347,2.150664,0.210701, 2.613818,2.163312,0.184363,
+ 2.569734,2.173728,0.140467, 2.513518,2.03955,0.162509, 2.55209,2.02065,0.213293,
+ 2.55209,2.02065,0.213293, 2.613818,2.163312,0.184363, 2.569734,2.173728,0.140467,
+ 2.539821,2.180796,0.079013, 2.487343,2.052375,0.091411, 2.513518,2.03955,0.162509,
+ 2.513518,2.03955,0.162509, 2.569734,2.173728,0.140467, 2.539821,2.180796,0.079013,
+ 2.5288,2.1834,0, 2.4777,2.0571,0, 2.487343,2.052375,0.091411,
+ 2.487343,2.052375,0.091411, 2.539821,2.180796,0.079013, 2.5288,2.1834,0,
+ 3.060994,2.265537,0.0706, 2.911379,2.093004,0.079013, 2.9224,2.0904,0,
+ 2.9224,2.0904,0, 3.0743,2.26455,0, 3.060994,2.265537,0.0706,
+ 3.024879,2.268216,0.12551, 2.881466,2.100072,0.140467, 2.911379,2.093004,0.079013,
+ 2.911379,2.093004,0.079013, 3.060994,2.265537,0.0706, 3.024879,2.268216,0.12551,
+ 2.971657,2.272164,0.164732, 2.837382,2.110488,0.184363, 2.881466,2.100072,0.140467,
+ 2.881466,2.100072,0.140467, 3.024879,2.268216,0.12551, 2.971657,2.272164,0.164732,
+ 2.90703,2.276958,0.188266, 2.783853,2.123136,0.210701, 2.837382,2.110488,0.184363,
+ 2.837382,2.110488,0.184363, 2.971657,2.272164,0.164732, 2.90703,2.276958,0.188266,
+ 2.8367,2.282175,0.19611, 2.7256,2.1369,0.21948, 2.783853,2.123136,0.210701,
+ 2.783853,2.123136,0.210701, 2.90703,2.276958,0.188266, 2.8367,2.282175,0.19611,
+ 2.76637,2.287392,0.188266, 2.667347,2.150664,0.210701, 2.7256,2.1369,0.21948,
+ 2.7256,2.1369,0.21948, 2.8367,2.282175,0.19611, 2.76637,2.287392,0.188266,
+ 2.701743,2.292186,0.164732, 2.613818,2.163312,0.184363, 2.667347,2.150664,0.210701,
+ 2.667347,2.150664,0.210701, 2.76637,2.287392,0.188266, 2.701743,2.292186,0.164732,
+ 2.648521,2.296134,0.12551, 2.569734,2.173728,0.140467, 2.613818,2.163312,0.184363,
+ 2.613818,2.163312,0.184363, 2.701743,2.292186,0.164732, 2.648521,2.296134,0.12551,
+ 2.612406,2.298813,0.0706, 2.539821,2.180796,0.079013, 2.569734,2.173728,0.140467,
+ 2.569734,2.173728,0.140467, 2.648521,2.296134,0.12551, 2.612406,2.298813,0.0706,
+ 2.5991,2.2998,0, 2.5288,2.1834,0, 2.539821,2.180796,0.079013,
+ 2.539821,2.180796,0.079013, 2.612406,2.298813,0.0706, 2.5991,2.2998,0,
+ 3.2832,2.4,0.0675, 3.060994,2.265537,0.0706, 3.0743,2.26455,0,
+ 3.0743,2.26455,0, 3.3,2.4,0, 3.2832,2.4,0.0675,
+ 3.2376,2.4,0.12, 3.024879,2.268216,0.12551, 3.060994,2.265537,0.0706,
+ 3.060994,2.265537,0.0706, 3.2832,2.4,0.0675, 3.2376,2.4,0.12,
+ 3.1704,2.4,0.1575, 2.971657,2.272164,0.164732, 3.024879,2.268216,0.12551,
+ 3.024879,2.268216,0.12551, 3.2376,2.4,0.12, 3.1704,2.4,0.1575,
+ 3.0888,2.4,0.18, 2.90703,2.276958,0.188266, 2.971657,2.272164,0.164732,
+ 2.971657,2.272164,0.164732, 3.1704,2.4,0.1575, 3.0888,2.4,0.18,
+ 3,2.4,0.1875, 2.8367,2.282175,0.19611, 2.90703,2.276958,0.188266,
+ 2.90703,2.276958,0.188266, 3.0888,2.4,0.18, 3,2.4,0.1875,
+ 2.9112,2.4,0.18, 2.76637,2.287392,0.188266, 2.8367,2.282175,0.19611,
+ 2.8367,2.282175,0.19611, 3,2.4,0.1875, 2.9112,2.4,0.18,
+ 2.8296,2.4,0.1575, 2.701743,2.292186,0.164732, 2.76637,2.287392,0.188266,
+ 2.76637,2.287392,0.188266, 2.9112,2.4,0.18, 2.8296,2.4,0.1575,
+ 2.7624,2.4,0.12, 2.648521,2.296134,0.12551, 2.701743,2.292186,0.164732,
+ 2.701743,2.292186,0.164732, 2.8296,2.4,0.1575, 2.7624,2.4,0.12,
+ 2.7168,2.4,0.0675, 2.612406,2.298813,0.0706, 2.648521,2.296134,0.12551,
+ 2.648521,2.296134,0.12551, 2.7624,2.4,0.12, 2.7168,2.4,0.0675,
+ 2.7,2.4,0, 2.5991,2.2998,0, 2.612406,2.298813,0.0706,
+ 2.612406,2.298813,0.0706, 2.7168,2.4,0.0675, 2.7,2.4,0,
+ 2.747407,2.420406,-0.066744, 2.7168,2.4,-0.0675, 2.7,2.4,0,
+ 2.7,2.4,0, 2.7298,2.42025,0, 2.747407,2.420406,-0.066744,
+ 2.795198,2.420829,-0.118656, 2.7624,2.4,-0.12, 2.7168,2.4,-0.0675,
+ 2.7168,2.4,-0.0675, 2.747407,2.420406,-0.066744, 2.795198,2.420829,-0.118656,
+ 2.865626,2.421453,-0.155736, 2.8296,2.4,-0.1575, 2.7624,2.4,-0.12,
+ 2.7624,2.4,-0.12, 2.795198,2.420829,-0.118656, 2.865626,2.421453,-0.155736,
+ 2.951146,2.42221,-0.177984, 2.9112,2.4,-0.18, 2.8296,2.4,-0.1575,
+ 2.8296,2.4,-0.1575, 2.865626,2.421453,-0.155736, 2.951146,2.42221,-0.177984,
+ 3.044212,2.423034,-0.1854, 3,2.4,-0.1875, 2.9112,2.4,-0.18,
+ 2.9112,2.4,-0.18, 2.951146,2.42221,-0.177984, 3.044212,2.423034,-0.1854,
+ 3.137279,2.423859,-0.177984, 3.0888,2.4,-0.18, 3,2.4,-0.1875,
+ 3,2.4,-0.1875, 3.044212,2.423034,-0.1854, 3.137279,2.423859,-0.177984,
+ 3.222799,2.424616,-0.155736, 3.1704,2.4,-0.1575, 3.0888,2.4,-0.18,
+ 3.0888,2.4,-0.18, 3.137279,2.423859,-0.177984, 3.222799,2.424616,-0.155736,
+ 3.293227,2.42524,-0.118656, 3.2376,2.4,-0.12, 3.1704,2.4,-0.1575,
+ 3.1704,2.4,-0.1575, 3.222799,2.424616,-0.155736, 3.293227,2.42524,-0.118656,
+ 3.341018,2.425663,-0.066744, 3.2832,2.4,-0.0675, 3.2376,2.4,-0.12,
+ 3.2376,2.4,-0.12, 3.293227,2.42524,-0.118656, 3.341018,2.425663,-0.066744,
+ 3.358625,2.425819,0, 3.3,2.4,0, 3.2832,2.4,-0.0675,
+ 3.2832,2.4,-0.0675, 3.341018,2.425663,-0.066744, 3.358625,2.425819,0,
+ 2.776365,2.436302,-0.064692, 2.747407,2.420406,-0.066744, 2.7298,2.42025,0,
+ 2.7298,2.42025,0, 2.7584,2.436,0, 2.776365,2.436302,-0.064692,
+ 2.825126,2.437123,-0.115008, 2.795198,2.420829,-0.118656, 2.747407,2.420406,-0.066744,
+ 2.747407,2.420406,-0.066744, 2.776365,2.436302,-0.064692, 2.825126,2.437123,-0.115008,
+ 2.896986,2.438333,-0.150948, 2.865626,2.421453,-0.155736, 2.795198,2.420829,-0.118656,
+ 2.795198,2.420829,-0.118656, 2.825126,2.437123,-0.115008, 2.896986,2.438333,-0.150948,
+ 2.984243,2.439802,-0.172512, 2.951146,2.42221,-0.177984, 2.865626,2.421453,-0.155736,
+ 2.865626,2.421453,-0.155736, 2.896986,2.438333,-0.150948, 2.984243,2.439802,-0.172512,
+ 3.0792,2.4414,-0.1797, 3.044212,2.423034,-0.1854, 2.951146,2.42221,-0.177984,
+ 2.951146,2.42221,-0.177984, 2.984243,2.439802,-0.172512, 3.0792,2.4414,-0.1797,
+ 3.174157,2.442998,-0.172512, 3.137279,2.423859,-0.177984, 3.044212,2.423034,-0.1854,
+ 3.044212,2.423034,-0.1854, 3.0792,2.4414,-0.1797, 3.174157,2.442998,-0.172512,
+ 3.261414,2.444467,-0.150948, 3.222799,2.424616,-0.155736, 3.137279,2.423859,-0.177984,
+ 3.137279,2.423859,-0.177984, 3.174157,2.442998,-0.172512, 3.261414,2.444467,-0.150948,
+ 3.333274,2.445677,-0.115008, 3.293227,2.42524,-0.118656, 3.222799,2.424616,-0.155736,
+ 3.222799,2.424616,-0.155736, 3.261414,2.444467,-0.150948, 3.333274,2.445677,-0.115008,
+ 3.382035,2.446498,-0.064692, 3.341018,2.425663,-0.066744, 3.293227,2.42524,-0.118656,
+ 3.293227,2.42524,-0.118656, 3.333274,2.445677,-0.115008, 3.382035,2.446498,-0.064692,
+ 3.4,2.4468,0, 3.358625,2.425819,0, 3.341018,2.425663,-0.066744,
+ 3.341018,2.425663,-0.066744, 3.382035,2.446498,-0.064692, 3.4,2.4468,0,
+ 2.802528,2.44768,-0.061668, 2.776365,2.436302,-0.064692, 2.7584,2.436,0,
+ 2.7584,2.436,0, 2.7846,2.44725,0, 2.802528,2.44768,-0.061668,
+ 2.851189,2.448847,-0.109632, 2.825126,2.437123,-0.115008, 2.776365,2.436302,-0.064692,
+ 2.776365,2.436302,-0.064692, 2.802528,2.44768,-0.061668, 2.851189,2.448847,-0.109632,
+ 2.922899,2.450567,-0.143892, 2.896986,2.438333,-0.150948, 2.825126,2.437123,-0.115008,
+ 2.825126,2.437123,-0.115008, 2.851189,2.448847,-0.109632, 2.922899,2.450567,-0.143892,
+ 3.009977,2.452655,-0.164448, 2.984243,2.439802,-0.172512, 2.896986,2.438333,-0.150948,
+ 2.896986,2.438333,-0.150948, 2.922899,2.450567,-0.143892, 3.009977,2.452655,-0.164448,
+ 3.104737,2.454928,-0.1713, 3.0792,2.4414,-0.1797, 2.984243,2.439802,-0.172512,
+ 2.984243,2.439802,-0.172512, 3.009977,2.452655,-0.164448, 3.104737,2.454928,-0.1713,
+ 3.199498,2.457201,-0.164448, 3.174157,2.442998,-0.172512, 3.0792,2.4414,-0.1797,
+ 3.0792,2.4414,-0.1797, 3.104737,2.454928,-0.1713, 3.199498,2.457201,-0.164448,
+ 3.286576,2.459289,-0.143892, 3.261414,2.444467,-0.150948, 3.174157,2.442998,-0.172512,
+ 3.174157,2.442998,-0.172512, 3.199498,2.457201,-0.164448, 3.286576,2.459289,-0.143892,
+ 3.358286,2.461009,-0.109632, 3.333274,2.445677,-0.115008, 3.261414,2.444467,-0.150948,
+ 3.261414,2.444467,-0.150948, 3.286576,2.459289,-0.143892, 3.358286,2.461009,-0.109632,
+ 3.406947,2.462176,-0.061668, 3.382035,2.446498,-0.064692, 3.333274,2.445677,-0.115008,
+ 3.333274,2.445677,-0.115008, 3.358286,2.461009,-0.109632, 3.406947,2.462176,-0.061668,
+ 3.424875,2.462606,0, 3.4,2.4468,0, 3.382035,2.446498,-0.064692,
+ 3.382035,2.446498,-0.064692, 3.406947,2.462176,-0.061668, 3.424875,2.462606,0,
+ 2.82475,2.454529,-0.057996, 2.802528,2.44768,-0.061668, 2.7846,2.44725,0,
+ 2.7846,2.44725,0, 2.8072,2.454,0, 2.82475,2.454529,-0.057996,
+ 2.872387,2.455966,-0.103104, 2.851189,2.448847,-0.109632, 2.802528,2.44768,-0.061668,
+ 2.802528,2.44768,-0.061668, 2.82475,2.454529,-0.057996, 2.872387,2.455966,-0.103104,
+ 2.942589,2.458082,-0.135324, 2.922899,2.450567,-0.143892, 2.851189,2.448847,-0.109632,
+ 2.851189,2.448847,-0.109632, 2.872387,2.455966,-0.103104, 2.942589,2.458082,-0.135324,
+ 3.027834,2.460653,-0.154656, 3.009977,2.452655,-0.164448, 2.922899,2.450567,-0.143892,
+ 2.922899,2.450567,-0.143892, 2.942589,2.458082,-0.135324, 3.027834,2.460653,-0.154656,
+ 3.1206,2.46345,-0.1611, 3.104737,2.454928,-0.1713, 3.009977,2.452655,-0.164448,
+ 3.009977,2.452655,-0.164448, 3.027834,2.460653,-0.154656, 3.1206,2.46345,-0.1611,
+ 3.213366,2.466247,-0.154656, 3.199498,2.457201,-0.164448, 3.104737,2.454928,-0.1713,
+ 3.104737,2.454928,-0.1713, 3.1206,2.46345,-0.1611, 3.213366,2.466247,-0.154656,
+ 3.298611,2.468818,-0.135324, 3.286576,2.459289,-0.143892, 3.199498,2.457201,-0.164448,
+ 3.199498,2.457201,-0.164448, 3.213366,2.466247,-0.154656, 3.298611,2.468818,-0.135324,
+ 3.368813,2.470934,-0.103104, 3.358286,2.461009,-0.109632, 3.286576,2.459289,-0.143892,
+ 3.286576,2.459289,-0.143892, 3.298611,2.468818,-0.135324, 3.368813,2.470934,-0.103104,
+ 3.41645,2.472371,-0.057996, 3.406947,2.462176,-0.061668, 3.358286,2.461009,-0.109632,
+ 3.358286,2.461009,-0.109632, 3.368813,2.470934,-0.103104, 3.41645,2.472371,-0.057996,
+ 3.434,2.4729,0, 3.424875,2.462606,0, 3.406947,2.462176,-0.061668,
+ 3.406947,2.462176,-0.061668, 3.41645,2.472371,-0.057996, 3.434,2.4729,0,
+ 2.841887,2.456841,-0.054, 2.82475,2.454529,-0.057996, 2.8072,2.454,0,
+ 2.8072,2.454,0, 2.825,2.45625,0, 2.841887,2.456841,-0.054,
+ 2.887725,2.458444,-0.096, 2.872387,2.455966,-0.103104, 2.82475,2.454529,-0.057996,
+ 2.82475,2.454529,-0.057996, 2.841887,2.456841,-0.054, 2.887725,2.458444,-0.096,
+ 2.955275,2.460806,-0.126, 2.942589,2.458082,-0.135324, 2.872387,2.455966,-0.103104,
+ 2.872387,2.455966,-0.103104, 2.887725,2.458444,-0.096, 2.955275,2.460806,-0.126,
+ 3.0373,2.463675,-0.144, 3.027834,2.460653,-0.154656, 2.942589,2.458082,-0.135324,
+ 2.942589,2.458082,-0.135324, 2.955275,2.460806,-0.126, 3.0373,2.463675,-0.144,
+ 3.126562,2.466797,-0.15, 3.1206,2.46345,-0.1611, 3.027834,2.460653,-0.154656,
+ 3.027834,2.460653,-0.154656, 3.0373,2.463675,-0.144, 3.126562,2.466797,-0.15,
+ 3.215825,2.469919,-0.144, 3.213366,2.466247,-0.154656, 3.1206,2.46345,-0.1611,
+ 3.1206,2.46345,-0.1611, 3.126562,2.466797,-0.15, 3.215825,2.469919,-0.144,
+ 3.29785,2.472787,-0.126, 3.298611,2.468818,-0.135324, 3.213366,2.466247,-0.154656,
+ 3.213366,2.466247,-0.154656, 3.215825,2.469919,-0.144, 3.29785,2.472787,-0.126,
+ 3.3654,2.47515,-0.096, 3.368813,2.470934,-0.103104, 3.298611,2.468818,-0.135324,
+ 3.298611,2.468818,-0.135324, 3.29785,2.472787,-0.126, 3.3654,2.47515,-0.096,
+ 3.411237,2.476753,-0.054, 3.41645,2.472371,-0.057996, 3.368813,2.470934,-0.103104,
+ 3.368813,2.470934,-0.103104, 3.3654,2.47515,-0.096, 3.411237,2.476753,-0.054,
+ 3.428125,2.477344,0, 3.434,2.4729,0, 3.41645,2.472371,-0.057996,
+ 3.41645,2.472371,-0.057996, 3.411237,2.476753,-0.054, 3.428125,2.477344,0,
+ 2.852794,2.454605,-0.050004, 2.841887,2.456841,-0.054, 2.825,2.45625,0,
+ 2.825,2.45625,0, 2.8368,2.454,0, 2.852794,2.454605,-0.050004,
+ 2.896205,2.456246,-0.088896, 2.887725,2.458444,-0.096, 2.841887,2.456841,-0.054,
+ 2.841887,2.456841,-0.054, 2.852794,2.454605,-0.050004, 2.896205,2.456246,-0.088896,
+ 2.960179,2.458666,-0.116676, 2.955275,2.460806,-0.126, 2.887725,2.458444,-0.096,
+ 2.887725,2.458444,-0.096, 2.896205,2.456246,-0.088896, 2.960179,2.458666,-0.116676,
+ 3.037862,2.461603,-0.133344, 3.0373,2.463675,-0.144, 2.955275,2.460806,-0.126,
+ 2.955275,2.460806,-0.126, 2.960179,2.458666,-0.116676, 3.037862,2.461603,-0.133344,
+ 3.1224,2.4648,-0.1389, 3.126562,2.466797,-0.15, 3.0373,2.463675,-0.144,
+ 3.0373,2.463675,-0.144, 3.037862,2.461603,-0.133344, 3.1224,2.4648,-0.1389,
+ 3.206938,2.467997,-0.133344, 3.215825,2.469919,-0.144, 3.126562,2.466797,-0.15,
+ 3.126562,2.466797,-0.15, 3.1224,2.4648,-0.1389, 3.206938,2.467997,-0.133344,
+ 3.284621,2.470934,-0.116676, 3.29785,2.472787,-0.126, 3.215825,2.469919,-0.144,
+ 3.215825,2.469919,-0.144, 3.206938,2.467997,-0.133344, 3.284621,2.470934,-0.116676,
+ 3.348595,2.473354,-0.088896, 3.3654,2.47515,-0.096, 3.29785,2.472787,-0.126,
+ 3.29785,2.472787,-0.126, 3.284621,2.470934,-0.116676, 3.348595,2.473354,-0.088896,
+ 3.392006,2.474995,-0.050004, 3.411237,2.476753,-0.054, 3.3654,2.47515,-0.096,
+ 3.3654,2.47515,-0.096, 3.348595,2.473354,-0.088896, 3.392006,2.474995,-0.050004,
+ 3.408,2.4756,0, 3.428125,2.477344,0, 3.411237,2.476753,-0.054,
+ 3.411237,2.476753,-0.054, 3.392006,2.474995,-0.050004, 3.408,2.4756,0,
+ 2.856323,2.447812,-0.046332, 2.852794,2.454605,-0.050004, 2.8368,2.454,0,
+ 2.8368,2.454,0, 2.8414,2.44725,0, 2.856323,2.447812,-0.046332,
+ 2.896829,2.449338,-0.082368, 2.896205,2.456246,-0.088896, 2.852794,2.454605,-0.050004,
+ 2.852794,2.454605,-0.050004, 2.856323,2.447812,-0.046332, 2.896829,2.449338,-0.082368,
+ 2.956523,2.451588,-0.108108, 2.960179,2.458666,-0.116676, 2.896205,2.456246,-0.088896,
+ 2.896205,2.456246,-0.088896, 2.896829,2.449338,-0.082368, 2.956523,2.451588,-0.108108,
+ 3.029007,2.454319,-0.123552, 3.037862,2.461603,-0.133344, 2.960179,2.458666,-0.116676,
+ 2.960179,2.458666,-0.116676, 2.956523,2.451588,-0.108108, 3.029007,2.454319,-0.123552,
+ 3.107887,2.457291,-0.1287, 3.1224,2.4648,-0.1389, 3.037862,2.461603,-0.133344,
+ 3.037862,2.461603,-0.133344, 3.029007,2.454319,-0.123552, 3.107887,2.457291,-0.1287,
+ 3.186768,2.460263,-0.123552, 3.206938,2.467997,-0.133344, 3.1224,2.4648,-0.1389,
+ 3.1224,2.4648,-0.1389, 3.107887,2.457291,-0.1287, 3.186768,2.460263,-0.123552,
+ 3.259252,2.462994,-0.108108, 3.284621,2.470934,-0.116676, 3.206938,2.467997,-0.133344,
+ 3.206938,2.467997,-0.133344, 3.186768,2.460263,-0.123552, 3.259252,2.462994,-0.108108,
+ 3.318946,2.465243,-0.082368, 3.348595,2.473354,-0.088896, 3.284621,2.470934,-0.116676,
+ 3.284621,2.470934,-0.116676, 3.259252,2.462994,-0.108108, 3.318946,2.465243,-0.082368,
+ 3.359452,2.466769,-0.046332, 3.392006,2.474995,-0.050004, 3.348595,2.473354,-0.088896,
+ 3.348595,2.473354,-0.088896, 3.318946,2.465243,-0.082368, 3.359452,2.466769,-0.046332,
+ 3.374375,2.467331,0, 3.408,2.4756,0, 3.392006,2.474995,-0.050004,
+ 3.392006,2.474995,-0.050004, 3.359452,2.466769,-0.046332, 3.374375,2.467331,0,
+ 2.851331,2.436454,-0.043308, 2.856323,2.447812,-0.046332, 2.8414,2.44725,0,
+ 2.8414,2.44725,0, 2.8376,2.436,0, 2.851331,2.436454,-0.043308,
+ 2.888602,2.437685,-0.076992, 2.896829,2.449338,-0.082368, 2.856323,2.447812,-0.046332,
+ 2.856323,2.447812,-0.046332, 2.851331,2.436454,-0.043308, 2.888602,2.437685,-0.076992,
+ 2.943526,2.439499,-0.101052, 2.956523,2.451588,-0.108108, 2.896829,2.449338,-0.082368,
+ 2.896829,2.449338,-0.082368, 2.888602,2.437685,-0.076992, 2.943526,2.439499,-0.101052,
+ 3.010221,2.441702,-0.115488, 3.029007,2.454319,-0.123552, 2.956523,2.451588,-0.108108,
+ 2.956523,2.451588,-0.108108, 2.943526,2.439499,-0.101052, 3.010221,2.441702,-0.115488,
+ 3.0828,2.4441,-0.1203, 3.107887,2.457291,-0.1287, 3.029007,2.454319,-0.123552,
+ 3.029007,2.454319,-0.123552, 3.010221,2.441702,-0.115488, 3.0828,2.4441,-0.1203,
+ 3.155379,2.446498,-0.115488, 3.186768,2.460263,-0.123552, 3.107887,2.457291,-0.1287,
+ 3.107887,2.457291,-0.1287, 3.0828,2.4441,-0.1203, 3.155379,2.446498,-0.115488,
+ 3.222074,2.448701,-0.101052, 3.259252,2.462994,-0.108108, 3.186768,2.460263,-0.123552,
+ 3.186768,2.460263,-0.123552, 3.155379,2.446498,-0.115488, 3.222074,2.448701,-0.101052,
+ 3.276998,2.450515,-0.076992, 3.318946,2.465243,-0.082368, 3.259252,2.462994,-0.108108,
+ 3.259252,2.462994,-0.108108, 3.222074,2.448701,-0.101052, 3.276998,2.450515,-0.076992,
+ 3.314269,2.451746,-0.043308, 3.359452,2.466769,-0.046332, 3.318946,2.465243,-0.082368,
+ 3.318946,2.465243,-0.082368, 3.276998,2.450515,-0.076992, 3.314269,2.451746,-0.043308,
+ 3.328,2.4522,0, 3.374375,2.467331,0, 3.359452,2.466769,-0.046332,
+ 3.359452,2.466769,-0.046332, 3.314269,2.451746,-0.043308, 3.328,2.4522,0,
+ 2.836672,2.420519,-0.041256, 2.851331,2.436454,-0.043308, 2.8376,2.436,0,
+ 2.8376,2.436,0, 2.8242,2.42025,0, 2.836672,2.420519,-0.041256,
+ 2.870524,2.42125,-0.073344, 2.888602,2.437685,-0.076992, 2.851331,2.436454,-0.043308,
+ 2.851331,2.436454,-0.043308, 2.836672,2.420519,-0.041256, 2.870524,2.42125,-0.073344,
+ 2.920412,2.422328,-0.096264, 2.943526,2.439499,-0.101052, 2.888602,2.437685,-0.076992,
+ 2.888602,2.437685,-0.076992, 2.870524,2.42125,-0.073344, 2.920412,2.422328,-0.096264,
+ 2.98099,2.423636,-0.110016, 3.010221,2.441702,-0.115488, 2.943526,2.439499,-0.101052,
+ 2.943526,2.439499,-0.101052, 2.920412,2.422328,-0.096264, 2.98099,2.423636,-0.110016,
+ 3.046912,2.425059,-0.1146, 3.0828,2.4441,-0.1203, 3.010221,2.441702,-0.115488,
+ 3.010221,2.441702,-0.115488, 2.98099,2.423636,-0.110016, 3.046912,2.425059,-0.1146,
+ 3.112835,2.426483,-0.110016, 3.155379,2.446498,-0.115488, 3.0828,2.4441,-0.1203,
+ 3.0828,2.4441,-0.1203, 3.046912,2.425059,-0.1146, 3.112835,2.426483,-0.110016,
+ 3.173413,2.427791,-0.096264, 3.222074,2.448701,-0.101052, 3.155379,2.446498,-0.115488,
+ 3.155379,2.446498,-0.115488, 3.112835,2.426483,-0.110016, 3.173413,2.427791,-0.096264,
+ 3.223301,2.428868,-0.073344, 3.276998,2.450515,-0.076992, 3.222074,2.448701,-0.101052,
+ 3.222074,2.448701,-0.101052, 3.173413,2.427791,-0.096264, 3.223301,2.428868,-0.073344,
+ 3.257153,2.429599,-0.041256, 3.314269,2.451746,-0.043308, 3.276998,2.450515,-0.076992,
+ 3.276998,2.450515,-0.076992, 3.223301,2.428868,-0.073344, 3.257153,2.429599,-0.041256,
+ 3.269625,2.429869,0, 3.328,2.4522,0, 3.314269,2.451746,-0.043308,
+ 3.314269,2.451746,-0.043308, 3.257153,2.429599,-0.041256, 3.269625,2.429869,0,
+ 2.8112,2.4,-0.0405, 2.836672,2.420519,-0.041256, 2.8242,2.42025,0,
+ 2.8242,2.42025,0, 2.8,2.4,0, 2.8112,2.4,-0.0405,
+ 2.8416,2.4,-0.072, 2.870524,2.42125,-0.073344, 2.836672,2.420519,-0.041256,
+ 2.836672,2.420519,-0.041256, 2.8112,2.4,-0.0405, 2.8416,2.4,-0.072,
+ 2.8864,2.4,-0.0945, 2.920412,2.422328,-0.096264, 2.870524,2.42125,-0.073344,
+ 2.870524,2.42125,-0.073344, 2.8416,2.4,-0.072, 2.8864,2.4,-0.0945,
+ 2.9408,2.4,-0.108, 2.98099,2.423636,-0.110016, 2.920412,2.422328,-0.096264,
+ 2.920412,2.422328,-0.096264, 2.8864,2.4,-0.0945, 2.9408,2.4,-0.108,
+ 3,2.4,-0.1125, 3.046912,2.425059,-0.1146, 2.98099,2.423636,-0.110016,
+ 2.98099,2.423636,-0.110016, 2.9408,2.4,-0.108, 3,2.4,-0.1125,
+ 3.0592,2.4,-0.108, 3.112835,2.426483,-0.110016, 3.046912,2.425059,-0.1146,
+ 3.046912,2.425059,-0.1146, 3,2.4,-0.1125, 3.0592,2.4,-0.108,
+ 3.1136,2.4,-0.0945, 3.173413,2.427791,-0.096264, 3.112835,2.426483,-0.110016,
+ 3.112835,2.426483,-0.110016, 3.0592,2.4,-0.108, 3.1136,2.4,-0.0945,
+ 3.1584,2.4,-0.072, 3.223301,2.428868,-0.073344, 3.173413,2.427791,-0.096264,
+ 3.173413,2.427791,-0.096264, 3.1136,2.4,-0.0945, 3.1584,2.4,-0.072,
+ 3.1888,2.4,-0.0405, 3.257153,2.429599,-0.041256, 3.223301,2.428868,-0.073344,
+ 3.223301,2.428868,-0.073344, 3.1584,2.4,-0.072, 3.1888,2.4,-0.0405,
+ 3.2,2.4,0, 3.269625,2.429869,0, 3.257153,2.429599,-0.041256,
+ 3.257153,2.429599,-0.041256, 3.1888,2.4,-0.0405, 3.2,2.4,0,
+ 3.341018,2.425663,0.066744, 3.2832,2.4,0.0675, 3.3,2.4,0,
+ 3.3,2.4,0, 3.358625,2.425819,0, 3.341018,2.425663,0.066744,
+ 3.293227,2.42524,0.118656, 3.2376,2.4,0.12, 3.2832,2.4,0.0675,
+ 3.2832,2.4,0.0675, 3.341018,2.425663,0.066744, 3.293227,2.42524,0.118656,
+ 3.222799,2.424616,0.155736, 3.1704,2.4,0.1575, 3.2376,2.4,0.12,
+ 3.2376,2.4,0.12, 3.293227,2.42524,0.118656, 3.222799,2.424616,0.155736,
+ 3.137279,2.423859,0.177984, 3.0888,2.4,0.18, 3.1704,2.4,0.1575,
+ 3.1704,2.4,0.1575, 3.222799,2.424616,0.155736, 3.137279,2.423859,0.177984,
+ 3.044212,2.423034,0.1854, 3,2.4,0.1875, 3.0888,2.4,0.18,
+ 3.0888,2.4,0.18, 3.137279,2.423859,0.177984, 3.044212,2.423034,0.1854,
+ 2.951146,2.42221,0.177984, 2.9112,2.4,0.18, 3,2.4,0.1875,
+ 3,2.4,0.1875, 3.044212,2.423034,0.1854, 2.951146,2.42221,0.177984,
+ 2.865626,2.421453,0.155736, 2.8296,2.4,0.1575, 2.9112,2.4,0.18,
+ 2.9112,2.4,0.18, 2.951146,2.42221,0.177984, 2.865626,2.421453,0.155736,
+ 2.795198,2.420829,0.118656, 2.7624,2.4,0.12, 2.8296,2.4,0.1575,
+ 2.8296,2.4,0.1575, 2.865626,2.421453,0.155736, 2.795198,2.420829,0.118656,
+ 2.747407,2.420406,0.066744, 2.7168,2.4,0.0675, 2.7624,2.4,0.12,
+ 2.7624,2.4,0.12, 2.795198,2.420829,0.118656, 2.747407,2.420406,0.066744,
+ 2.7298,2.42025,0, 2.7,2.4,0, 2.7168,2.4,0.0675,
+ 2.7168,2.4,0.0675, 2.747407,2.420406,0.066744, 2.7298,2.42025,0,
+ 3.382035,2.446498,0.064692, 3.341018,2.425663,0.066744, 3.358625,2.425819,0,
+ 3.358625,2.425819,0, 3.4,2.4468,0, 3.382035,2.446498,0.064692,
+ 3.333274,2.445677,0.115008, 3.293227,2.42524,0.118656, 3.341018,2.425663,0.066744,
+ 3.341018,2.425663,0.066744, 3.382035,2.446498,0.064692, 3.333274,2.445677,0.115008,
+ 3.261414,2.444467,0.150948, 3.222799,2.424616,0.155736, 3.293227,2.42524,0.118656,
+ 3.293227,2.42524,0.118656, 3.333274,2.445677,0.115008, 3.261414,2.444467,0.150948,
+ 3.174157,2.442998,0.172512, 3.137279,2.423859,0.177984, 3.222799,2.424616,0.155736,
+ 3.222799,2.424616,0.155736, 3.261414,2.444467,0.150948, 3.174157,2.442998,0.172512,
+ 3.0792,2.4414,0.1797, 3.044212,2.423034,0.1854, 3.137279,2.423859,0.177984,
+ 3.137279,2.423859,0.177984, 3.174157,2.442998,0.172512, 3.0792,2.4414,0.1797,
+ 2.984243,2.439802,0.172512, 2.951146,2.42221,0.177984, 3.044212,2.423034,0.1854,
+ 3.044212,2.423034,0.1854, 3.0792,2.4414,0.1797, 2.984243,2.439802,0.172512,
+ 2.896986,2.438333,0.150948, 2.865626,2.421453,0.155736, 2.951146,2.42221,0.177984,
+ 2.951146,2.42221,0.177984, 2.984243,2.439802,0.172512, 2.896986,2.438333,0.150948,
+ 2.825126,2.437123,0.115008, 2.795198,2.420829,0.118656, 2.865626,2.421453,0.155736,
+ 2.865626,2.421453,0.155736, 2.896986,2.438333,0.150948, 2.825126,2.437123,0.115008,
+ 2.776365,2.436302,0.064692, 2.747407,2.420406,0.066744, 2.795198,2.420829,0.118656,
+ 2.795198,2.420829,0.118656, 2.825126,2.437123,0.115008, 2.776365,2.436302,0.064692,
+ 2.7584,2.436,0, 2.7298,2.42025,0, 2.747407,2.420406,0.066744,
+ 2.747407,2.420406,0.066744, 2.776365,2.436302,0.064692, 2.7584,2.436,0,
+ 3.406947,2.462176,0.061668, 3.382035,2.446498,0.064692, 3.4,2.4468,0,
+ 3.4,2.4468,0, 3.424875,2.462606,0, 3.406947,2.462176,0.061668,
+ 3.358286,2.461009,0.109632, 3.333274,2.445677,0.115008, 3.382035,2.446498,0.064692,
+ 3.382035,2.446498,0.064692, 3.406947,2.462176,0.061668, 3.358286,2.461009,0.109632,
+ 3.286576,2.459289,0.143892, 3.261414,2.444467,0.150948, 3.333274,2.445677,0.115008,
+ 3.333274,2.445677,0.115008, 3.358286,2.461009,0.109632, 3.286576,2.459289,0.143892,
+ 3.199498,2.457201,0.164448, 3.174157,2.442998,0.172512, 3.261414,2.444467,0.150948,
+ 3.261414,2.444467,0.150948, 3.286576,2.459289,0.143892, 3.199498,2.457201,0.164448,
+ 3.104738,2.454928,0.1713, 3.0792,2.4414,0.1797, 3.174157,2.442998,0.172512,
+ 3.174157,2.442998,0.172512, 3.199498,2.457201,0.164448, 3.104738,2.454928,0.1713,
+ 3.009977,2.452655,0.164448, 2.984243,2.439802,0.172512, 3.0792,2.4414,0.1797,
+ 3.0792,2.4414,0.1797, 3.104738,2.454928,0.1713, 3.009977,2.452655,0.164448,
+ 2.922899,2.450567,0.143892, 2.896986,2.438333,0.150948, 2.984243,2.439802,0.172512,
+ 2.984243,2.439802,0.172512, 3.009977,2.452655,0.164448, 2.922899,2.450567,0.143892,
+ 2.851189,2.448847,0.109632, 2.825126,2.437123,0.115008, 2.896986,2.438333,0.150948,
+ 2.896986,2.438333,0.150948, 2.922899,2.450567,0.143892, 2.851189,2.448847,0.109632,
+ 2.802528,2.44768,0.061668, 2.776365,2.436302,0.064692, 2.825126,2.437123,0.115008,
+ 2.825126,2.437123,0.115008, 2.851189,2.448847,0.109632, 2.802528,2.44768,0.061668,
+ 2.7846,2.44725,0, 2.7584,2.436,0, 2.776365,2.436302,0.064692,
+ 2.776365,2.436302,0.064692, 2.802528,2.44768,0.061668, 2.7846,2.44725,0,
+ 3.41645,2.472371,0.057996, 3.406947,2.462176,0.061668, 3.424875,2.462606,0,
+ 3.424875,2.462606,0, 3.434,2.4729,0, 3.41645,2.472371,0.057996,
+ 3.368813,2.470934,0.103104, 3.358286,2.461009,0.109632, 3.406947,2.462176,0.061668,
+ 3.406947,2.462176,0.061668, 3.41645,2.472371,0.057996, 3.368813,2.470934,0.103104,
+ 3.298611,2.468818,0.135324, 3.286576,2.459289,0.143892, 3.358286,2.461009,0.109632,
+ 3.358286,2.461009,0.109632, 3.368813,2.470934,0.103104, 3.298611,2.468818,0.135324,
+ 3.213366,2.466247,0.154656, 3.199498,2.457201,0.164448, 3.286576,2.459289,0.143892,
+ 3.286576,2.459289,0.143892, 3.298611,2.468818,0.135324, 3.213366,2.466247,0.154656,
+ 3.1206,2.46345,0.1611, 3.104738,2.454928,0.1713, 3.199498,2.457201,0.164448,
+ 3.199498,2.457201,0.164448, 3.213366,2.466247,0.154656, 3.1206,2.46345,0.1611,
+ 3.027834,2.460653,0.154656, 3.009977,2.452655,0.164448, 3.104738,2.454928,0.1713,
+ 3.104738,2.454928,0.1713, 3.1206,2.46345,0.1611, 3.027834,2.460653,0.154656,
+ 2.942589,2.458082,0.135324, 2.922899,2.450567,0.143892, 3.009977,2.452655,0.164448,
+ 3.009977,2.452655,0.164448, 3.027834,2.460653,0.154656, 2.942589,2.458082,0.135324,
+ 2.872387,2.455966,0.103104, 2.851189,2.448847,0.109632, 2.922899,2.450567,0.143892,
+ 2.922899,2.450567,0.143892, 2.942589,2.458082,0.135324, 2.872387,2.455966,0.103104,
+ 2.82475,2.454529,0.057996, 2.802528,2.44768,0.061668, 2.851189,2.448847,0.109632,
+ 2.851189,2.448847,0.109632, 2.872387,2.455966,0.103104, 2.82475,2.454529,0.057996,
+ 2.8072,2.454,0, 2.7846,2.44725,0, 2.802528,2.44768,0.061668,
+ 2.802528,2.44768,0.061668, 2.82475,2.454529,0.057996, 2.8072,2.454,0,
+ 3.411237,2.476753,0.054, 3.41645,2.472371,0.057996, 3.434,2.4729,0,
+ 3.434,2.4729,0, 3.428125,2.477344,0, 3.411237,2.476753,0.054,
+ 3.3654,2.47515,0.096, 3.368813,2.470934,0.103104, 3.41645,2.472371,0.057996,
+ 3.41645,2.472371,0.057996, 3.411237,2.476753,0.054, 3.3654,2.47515,0.096,
+ 3.29785,2.472788,0.126, 3.298611,2.468818,0.135324, 3.368813,2.470934,0.103104,
+ 3.368813,2.470934,0.103104, 3.3654,2.47515,0.096, 3.29785,2.472788,0.126,
+ 3.215825,2.469919,0.144, 3.213366,2.466247,0.154656, 3.298611,2.468818,0.135324,
+ 3.298611,2.468818,0.135324, 3.29785,2.472788,0.126, 3.215825,2.469919,0.144,
+ 3.126562,2.466797,0.15, 3.1206,2.46345,0.1611, 3.213366,2.466247,0.154656,
+ 3.213366,2.466247,0.154656, 3.215825,2.469919,0.144, 3.126562,2.466797,0.15,
+ 3.0373,2.463675,0.144, 3.027834,2.460653,0.154656, 3.1206,2.46345,0.1611,
+ 3.1206,2.46345,0.1611, 3.126562,2.466797,0.15, 3.0373,2.463675,0.144,
+ 2.955275,2.460806,0.126, 2.942589,2.458082,0.135324, 3.027834,2.460653,0.154656,
+ 3.027834,2.460653,0.154656, 3.0373,2.463675,0.144, 2.955275,2.460806,0.126,
+ 2.887725,2.458444,0.096, 2.872387,2.455966,0.103104, 2.942589,2.458082,0.135324,
+ 2.942589,2.458082,0.135324, 2.955275,2.460806,0.126, 2.887725,2.458444,0.096,
+ 2.841887,2.456841,0.054, 2.82475,2.454529,0.057996, 2.872387,2.455966,0.103104,
+ 2.872387,2.455966,0.103104, 2.887725,2.458444,0.096, 2.841887,2.456841,0.054,
+ 2.825,2.45625,0, 2.8072,2.454,0, 2.82475,2.454529,0.057996,
+ 2.82475,2.454529,0.057996, 2.841887,2.456841,0.054, 2.825,2.45625,0,
+ 3.392006,2.474995,0.050004, 3.411237,2.476753,0.054, 3.428125,2.477344,0,
+ 3.428125,2.477344,0, 3.408,2.4756,0, 3.392006,2.474995,0.050004,
+ 3.348595,2.473354,0.088896, 3.3654,2.47515,0.096, 3.411237,2.476753,0.054,
+ 3.411237,2.476753,0.054, 3.392006,2.474995,0.050004, 3.348595,2.473354,0.088896,
+ 3.284621,2.470934,0.116676, 3.29785,2.472788,0.126, 3.3654,2.47515,0.096,
+ 3.3654,2.47515,0.096, 3.348595,2.473354,0.088896, 3.284621,2.470934,0.116676,
+ 3.206938,2.467997,0.133344, 3.215825,2.469919,0.144, 3.29785,2.472788,0.126,
+ 3.29785,2.472788,0.126, 3.284621,2.470934,0.116676, 3.206938,2.467997,0.133344,
+ 3.1224,2.4648,0.1389, 3.126562,2.466797,0.15, 3.215825,2.469919,0.144,
+ 3.215825,2.469919,0.144, 3.206938,2.467997,0.133344, 3.1224,2.4648,0.1389,
+ 3.037862,2.461603,0.133344, 3.0373,2.463675,0.144, 3.126562,2.466797,0.15,
+ 3.126562,2.466797,0.15, 3.1224,2.4648,0.1389, 3.037862,2.461603,0.133344,
+ 2.960179,2.458666,0.116676, 2.955275,2.460806,0.126, 3.0373,2.463675,0.144,
+ 3.0373,2.463675,0.144, 3.037862,2.461603,0.133344, 2.960179,2.458666,0.116676,
+ 2.896205,2.456246,0.088896, 2.887725,2.458444,0.096, 2.955275,2.460806,0.126,
+ 2.955275,2.460806,0.126, 2.960179,2.458666,0.116676, 2.896205,2.456246,0.088896,
+ 2.852794,2.454605,0.050004, 2.841887,2.456841,0.054, 2.887725,2.458444,0.096,
+ 2.887725,2.458444,0.096, 2.896205,2.456246,0.088896, 2.852794,2.454605,0.050004,
+ 2.8368,2.454,0, 2.825,2.45625,0, 2.841887,2.456841,0.054,
+ 2.841887,2.456841,0.054, 2.852794,2.454605,0.050004, 2.8368,2.454,0,
+ 3.359452,2.466769,0.046332, 3.392006,2.474995,0.050004, 3.408,2.4756,0,
+ 3.408,2.4756,0, 3.374375,2.467331,0, 3.359452,2.466769,0.046332,
+ 3.318946,2.465243,0.082368, 3.348595,2.473354,0.088896, 3.392006,2.474995,0.050004,
+ 3.392006,2.474995,0.050004, 3.359452,2.466769,0.046332, 3.318946,2.465243,0.082368,
+ 3.259252,2.462994,0.108108, 3.284621,2.470934,0.116676, 3.348595,2.473354,0.088896,
+ 3.348595,2.473354,0.088896, 3.318946,2.465243,0.082368, 3.259252,2.462994,0.108108,
+ 3.186768,2.460263,0.123552, 3.206938,2.467997,0.133344, 3.284621,2.470934,0.116676,
+ 3.284621,2.470934,0.116676, 3.259252,2.462994,0.108108, 3.186768,2.460263,0.123552,
+ 3.107887,2.457291,0.1287, 3.1224,2.4648,0.1389, 3.206938,2.467997,0.133344,
+ 3.206938,2.467997,0.133344, 3.186768,2.460263,0.123552, 3.107887,2.457291,0.1287,
+ 3.029007,2.454319,0.123552, 3.037862,2.461603,0.133344, 3.1224,2.4648,0.1389,
+ 3.1224,2.4648,0.1389, 3.107887,2.457291,0.1287, 3.029007,2.454319,0.123552,
+ 2.956523,2.451588,0.108108, 2.960179,2.458666,0.116676, 3.037862,2.461603,0.133344,
+ 3.037862,2.461603,0.133344, 3.029007,2.454319,0.123552, 2.956523,2.451588,0.108108,
+ 2.896829,2.449338,0.082368, 2.896205,2.456246,0.088896, 2.960179,2.458666,0.116676,
+ 2.960179,2.458666,0.116676, 2.956523,2.451588,0.108108, 2.896829,2.449338,0.082368,
+ 2.856323,2.447812,0.046332, 2.852794,2.454605,0.050004, 2.896205,2.456246,0.088896,
+ 2.896205,2.456246,0.088896, 2.896829,2.449338,0.082368, 2.856323,2.447812,0.046332,
+ 2.8414,2.44725,0, 2.8368,2.454,0, 2.852794,2.454605,0.050004,
+ 2.852794,2.454605,0.050004, 2.856323,2.447812,0.046332, 2.8414,2.44725,0,
+ 3.314269,2.451746,0.043308, 3.359452,2.466769,0.046332, 3.374375,2.467331,0,
+ 3.374375,2.467331,0, 3.328,2.4522,0, 3.314269,2.451746,0.043308,
+ 3.276998,2.450515,0.076992, 3.318946,2.465243,0.082368, 3.359452,2.466769,0.046332,
+ 3.359452,2.466769,0.046332, 3.314269,2.451746,0.043308, 3.276998,2.450515,0.076992,
+ 3.222074,2.448701,0.101052, 3.259252,2.462994,0.108108, 3.318946,2.465243,0.082368,
+ 3.318946,2.465243,0.082368, 3.276998,2.450515,0.076992, 3.222074,2.448701,0.101052,
+ 3.155379,2.446498,0.115488, 3.186768,2.460263,0.123552, 3.259252,2.462994,0.108108,
+ 3.259252,2.462994,0.108108, 3.222074,2.448701,0.101052, 3.155379,2.446498,0.115488,
+ 3.0828,2.4441,0.1203, 3.107887,2.457291,0.1287, 3.186768,2.460263,0.123552,
+ 3.186768,2.460263,0.123552, 3.155379,2.446498,0.115488, 3.0828,2.4441,0.1203,
+ 3.010221,2.441702,0.115488, 3.029007,2.454319,0.123552, 3.107887,2.457291,0.1287,
+ 3.107887,2.457291,0.1287, 3.0828,2.4441,0.1203, 3.010221,2.441702,0.115488,
+ 2.943526,2.439499,0.101052, 2.956523,2.451588,0.108108, 3.029007,2.454319,0.123552,
+ 3.029007,2.454319,0.123552, 3.010221,2.441702,0.115488, 2.943526,2.439499,0.101052,
+ 2.888602,2.437685,0.076992, 2.896829,2.449338,0.082368, 2.956523,2.451588,0.108108,
+ 2.956523,2.451588,0.108108, 2.943526,2.439499,0.101052, 2.888602,2.437685,0.076992,
+ 2.851331,2.436454,0.043308, 2.856323,2.447812,0.046332, 2.896829,2.449338,0.082368,
+ 2.896829,2.449338,0.082368, 2.888602,2.437685,0.076992, 2.851331,2.436454,0.043308,
+ 2.8376,2.436,0, 2.8414,2.44725,0, 2.856323,2.447812,0.046332,
+ 2.856323,2.447812,0.046332, 2.851331,2.436454,0.043308, 2.8376,2.436,0,
+ 3.257153,2.429599,0.041256, 3.314269,2.451746,0.043308, 3.328,2.4522,0,
+ 3.328,2.4522,0, 3.269625,2.429869,0, 3.257153,2.429599,0.041256,
+ 3.223301,2.428868,0.073344, 3.276998,2.450515,0.076992, 3.314269,2.451746,0.043308,
+ 3.314269,2.451746,0.043308, 3.257153,2.429599,0.041256, 3.223301,2.428868,0.073344,
+ 3.173413,2.427791,0.096264, 3.222074,2.448701,0.101052, 3.276998,2.450515,0.076992,
+ 3.276998,2.450515,0.076992, 3.223301,2.428868,0.073344, 3.173413,2.427791,0.096264,
+ 3.112835,2.426483,0.110016, 3.155379,2.446498,0.115488, 3.222074,2.448701,0.101052,
+ 3.222074,2.448701,0.101052, 3.173413,2.427791,0.096264, 3.112835,2.426483,0.110016,
+ 3.046912,2.425059,0.1146, 3.0828,2.4441,0.1203, 3.155379,2.446498,0.115488,
+ 3.155379,2.446498,0.115488, 3.112835,2.426483,0.110016, 3.046912,2.425059,0.1146,
+ 2.98099,2.423636,0.110016, 3.010221,2.441702,0.115488, 3.0828,2.4441,0.1203,
+ 3.0828,2.4441,0.1203, 3.046912,2.425059,0.1146, 2.98099,2.423636,0.110016,
+ 2.920412,2.422328,0.096264, 2.943526,2.439499,0.101052, 3.010221,2.441702,0.115488,
+ 3.010221,2.441702,0.115488, 2.98099,2.423636,0.110016, 2.920412,2.422328,0.096264,
+ 2.870524,2.42125,0.073344, 2.888602,2.437685,0.076992, 2.943526,2.439499,0.101052,
+ 2.943526,2.439499,0.101052, 2.920412,2.422328,0.096264, 2.870524,2.42125,0.073344,
+ 2.836672,2.420519,0.041256, 2.851331,2.436454,0.043308, 2.888602,2.437685,0.076992,
+ 2.888602,2.437685,0.076992, 2.870524,2.42125,0.073344, 2.836672,2.420519,0.041256,
+ 2.8242,2.42025,0, 2.8376,2.436,0, 2.851331,2.436454,0.043308,
+ 2.851331,2.436454,0.043308, 2.836672,2.420519,0.041256, 2.8242,2.42025,0,
+ 3.1888,2.4,0.0405, 3.257153,2.429599,0.041256, 3.269625,2.429869,0,
+ 3.269625,2.429869,0, 3.2,2.4,0, 3.1888,2.4,0.0405,
+ 3.1584,2.4,0.072, 3.223301,2.428868,0.073344, 3.257153,2.429599,0.041256,
+ 3.257153,2.429599,0.041256, 3.1888,2.4,0.0405, 3.1584,2.4,0.072,
+ 3.1136,2.4,0.0945, 3.173413,2.427791,0.096264, 3.223301,2.428868,0.073344,
+ 3.223301,2.428868,0.073344, 3.1584,2.4,0.072, 3.1136,2.4,0.0945,
+ 3.0592,2.4,0.108, 3.112835,2.426483,0.110016, 3.173413,2.427791,0.096264,
+ 3.173413,2.427791,0.096264, 3.1136,2.4,0.0945, 3.0592,2.4,0.108,
+ 3,2.4,0.1125, 3.046912,2.425059,0.1146, 3.112835,2.426483,0.110016,
+ 3.112835,2.426483,0.110016, 3.0592,2.4,0.108, 3,2.4,0.1125,
+ 2.9408,2.4,0.108, 2.98099,2.423636,0.110016, 3.046912,2.425059,0.1146,
+ 3.046912,2.425059,0.1146, 3,2.4,0.1125, 2.9408,2.4,0.108,
+ 2.8864,2.4,0.0945, 2.920412,2.422328,0.096264, 2.98099,2.423636,0.110016,
+ 2.98099,2.423636,0.110016, 2.9408,2.4,0.108, 2.8864,2.4,0.0945,
+ 2.8416,2.4,0.072, 2.870524,2.42125,0.073344, 2.920412,2.422328,0.096264,
+ 2.920412,2.422328,0.096264, 2.8864,2.4,0.0945, 2.8416,2.4,0.072,
+ 2.8112,2.4,0.0405, 2.836672,2.420519,0.041256, 2.870524,2.42125,0.073344,
+ 2.870524,2.42125,0.073344, 2.8416,2.4,0.072, 2.8112,2.4,0.0405,
+ 2.8,2.4,0, 2.8242,2.42025,0, 2.836672,2.420519,0.041256,
+ 2.836672,2.420519,0.041256, 2.8112,2.4,0.0405, 2.8,2.4,0,
+ 0,3.15,0, 0.1946,3.14145,0, 0.192107,3.14145,-0.032048,
+ 0,3.15,0, 0.192107,3.14145,-0.032048, 0.18487,3.14145,-0.062272,
+ 0,3.15,0, 0.18487,3.14145,-0.062272, 0.173255,3.14145,-0.090306,
+ 0,3.15,0, 0.173255,3.14145,-0.090306, 0.157626,3.14145,-0.115787,
+ 0,3.15,0, 0.157626,3.14145,-0.115787, 0.138348,3.14145,-0.138348,
+ 0,3.15,0, 0.138348,3.14145,-0.138348, 0.115787,3.14145,-0.157626,
+ 0,3.15,0, 0.115787,3.14145,-0.157626, 0.090306,3.14145,-0.173255,
+ 0,3.15,0, 0.090306,3.14145,-0.173255, 0.062272,3.14145,-0.18487,
+ 0,3.15,0, 0.062272,3.14145,-0.18487, 0.032048,3.14145,-0.192107,
+ 0,3.15,0, 0.032048,3.14145,-0.192107, 0,3.14145,-0.1946,
+ 0.304843,3.1176,-0.050855, 0.192107,3.14145,-0.032048, 0.1946,3.14145,0,
+ 0.1946,3.14145,0, 0.3088,3.1176,0, 0.304843,3.1176,-0.050855,
+ 0.29336,3.1176,-0.098814, 0.18487,3.14145,-0.062272, 0.192107,3.14145,-0.032048,
+ 0.192107,3.14145,-0.032048, 0.304843,3.1176,-0.050855, 0.29336,3.1176,-0.098814,
+ 0.274928,3.1176,-0.143301, 0.173255,3.14145,-0.090306, 0.18487,3.14145,-0.062272,
+ 0.18487,3.14145,-0.062272, 0.29336,3.1176,-0.098814, 0.274928,3.1176,-0.143301,
+ 0.250127,3.1176,-0.183734, 0.157626,3.14145,-0.115787, 0.173255,3.14145,-0.090306,
+ 0.173255,3.14145,-0.090306, 0.274928,3.1176,-0.143301, 0.250127,3.1176,-0.183734,
+ 0.219536,3.1176,-0.219536, 0.138348,3.14145,-0.138348, 0.157626,3.14145,-0.115787,
+ 0.157626,3.14145,-0.115787, 0.250127,3.1176,-0.183734, 0.219536,3.1176,-0.219536,
+ 0.183734,3.1176,-0.250127, 0.115787,3.14145,-0.157626, 0.138348,3.14145,-0.138348,
+ 0.138348,3.14145,-0.138348, 0.219536,3.1176,-0.219536, 0.183734,3.1176,-0.250127,
+ 0.143301,3.1176,-0.274928, 0.090306,3.14145,-0.173255, 0.115787,3.14145,-0.157626,
+ 0.115787,3.14145,-0.157626, 0.183734,3.1176,-0.250127, 0.143301,3.1176,-0.274928,
+ 0.098814,3.1176,-0.29336, 0.062272,3.14145,-0.18487, 0.090306,3.14145,-0.173255,
+ 0.090306,3.14145,-0.173255, 0.143301,3.1176,-0.274928, 0.098814,3.1176,-0.29336,
+ 0.050855,3.1176,-0.304843, 0.032048,3.14145,-0.192107, 0.062272,3.14145,-0.18487,
+ 0.062272,3.14145,-0.18487, 0.098814,3.1176,-0.29336, 0.050855,3.1176,-0.304843,
+ 0,3.1176,-0.3088, 0,3.14145,-0.1946, 0.032048,3.14145,-0.192107,
+ 0.032048,3.14145,-0.192107, 0.050855,3.1176,-0.304843, 0,3.1176,-0.3088,
+ 0.35361,3.08115,-0.058988, 0.304843,3.1176,-0.050855, 0.3088,3.1176,0,
+ 0.3088,3.1176,0, 0.3582,3.08115,0, 0.35361,3.08115,-0.058988,
+ 0.340289,3.08115,-0.114619, 0.29336,3.1176,-0.098814, 0.304843,3.1176,-0.050855,
+ 0.304843,3.1176,-0.050855, 0.35361,3.08115,-0.058988, 0.340289,3.08115,-0.114619,
+ 0.318907,3.08115,-0.166221, 0.274928,3.1176,-0.143301, 0.29336,3.1176,-0.098814,
+ 0.29336,3.1176,-0.098814, 0.340289,3.08115,-0.114619, 0.318907,3.08115,-0.166221,
+ 0.290138,3.08115,-0.213123, 0.250127,3.1176,-0.183734, 0.274928,3.1176,-0.143301,
+ 0.274928,3.1176,-0.143301, 0.318907,3.08115,-0.166221, 0.290138,3.08115,-0.213123,
+ 0.254653,3.08115,-0.254653, 0.219536,3.1176,-0.219536, 0.250127,3.1176,-0.183734,
+ 0.250127,3.1176,-0.183734, 0.290138,3.08115,-0.213123, 0.254653,3.08115,-0.254653,
+ 0.213123,3.08115,-0.290138, 0.183734,3.1176,-0.250127, 0.219536,3.1176,-0.219536,
+ 0.219536,3.1176,-0.219536, 0.254653,3.08115,-0.254653, 0.213123,3.08115,-0.290138,
+ 0.166221,3.08115,-0.318907, 0.143301,3.1176,-0.274928, 0.183734,3.1176,-0.250127,
+ 0.183734,3.1176,-0.250127, 0.213123,3.08115,-0.290138, 0.166221,3.08115,-0.318907,
+ 0.114619,3.08115,-0.340289, 0.098814,3.1176,-0.29336, 0.143301,3.1176,-0.274928,
+ 0.143301,3.1176,-0.274928, 0.166221,3.08115,-0.318907, 0.114619,3.08115,-0.340289,
+ 0.058988,3.08115,-0.35361, 0.050855,3.1176,-0.304843, 0.098814,3.1176,-0.29336,
+ 0.098814,3.1176,-0.29336, 0.114619,3.08115,-0.340289, 0.058988,3.08115,-0.35361,
+ 0,3.08115,-0.3582, 0,3.1176,-0.3088, 0.050855,3.1176,-0.304843,
+ 0.050855,3.1176,-0.304843, 0.058988,3.08115,-0.35361, 0,3.08115,-0.3582,
+ 0.353807,3.0348,-0.059016, 0.35361,3.08115,-0.058988, 0.3582,3.08115,0,
+ 0.3582,3.08115,0, 0.3584,3.0348,0, 0.353807,3.0348,-0.059016,
+ 0.340477,3.0348,-0.114676, 0.340289,3.08115,-0.114619, 0.35361,3.08115,-0.058988,
+ 0.35361,3.08115,-0.058988, 0.353807,3.0348,-0.059016, 0.340477,3.0348,-0.114676,
+ 0.319082,3.0348,-0.166306, 0.318907,3.08115,-0.166221, 0.340289,3.08115,-0.114619,
+ 0.340289,3.08115,-0.114619, 0.340477,3.0348,-0.114676, 0.319082,3.0348,-0.166306,
+ 0.290295,3.0348,-0.213234, 0.290138,3.08115,-0.213123, 0.318907,3.08115,-0.166221,
+ 0.318907,3.08115,-0.166221, 0.319082,3.0348,-0.166306, 0.290295,3.0348,-0.213234,
+ 0.254788,3.0348,-0.254788, 0.254653,3.08115,-0.254653, 0.290138,3.08115,-0.213123,
+ 0.290138,3.08115,-0.213123, 0.290295,3.0348,-0.213234, 0.254788,3.0348,-0.254788,
+ 0.213234,3.0348,-0.290295, 0.213123,3.08115,-0.290138, 0.254653,3.08115,-0.254653,
+ 0.254653,3.08115,-0.254653, 0.254788,3.0348,-0.254788, 0.213234,3.0348,-0.290295,
+ 0.166306,3.0348,-0.319082, 0.166221,3.08115,-0.318907, 0.213123,3.08115,-0.290138,
+ 0.213123,3.08115,-0.290138, 0.213234,3.0348,-0.290295, 0.166306,3.0348,-0.319082,
+ 0.114676,3.0348,-0.340477, 0.114619,3.08115,-0.340289, 0.166221,3.08115,-0.318907,
+ 0.166221,3.08115,-0.318907, 0.166306,3.0348,-0.319082, 0.114676,3.0348,-0.340477,
+ 0.059016,3.0348,-0.353807, 0.058988,3.08115,-0.35361, 0.114619,3.08115,-0.340289,
+ 0.114619,3.08115,-0.340289, 0.114676,3.0348,-0.340477, 0.059016,3.0348,-0.353807,
+ 0,3.0348,-0.3584, 0,3.08115,-0.3582, 0.058988,3.08115,-0.35361,
+ 0.058988,3.08115,-0.35361, 0.059016,3.0348,-0.353807, 0,3.0348,-0.3584,
+ 0.320834,2.98125,-0.053508, 0.353807,3.0348,-0.059016, 0.3584,3.0348,0,
+ 0.3584,3.0348,0, 0.325,2.98125,0, 0.320834,2.98125,-0.053508,
+ 0.308744,2.98125,-0.103976, 0.340477,3.0348,-0.114676, 0.353807,3.0348,-0.059016,
+ 0.353807,3.0348,-0.059016, 0.320834,2.98125,-0.053508, 0.308744,2.98125,-0.103976,
+ 0.28934,2.98125,-0.150793, 0.319082,3.0348,-0.166306, 0.340477,3.0348,-0.114676,
+ 0.340477,3.0348,-0.114676, 0.308744,2.98125,-0.103976, 0.28934,2.98125,-0.150793,
+ 0.263232,2.98125,-0.193348, 0.290295,3.0348,-0.213234, 0.319082,3.0348,-0.166306,
+ 0.319082,3.0348,-0.166306, 0.28934,2.98125,-0.150793, 0.263232,2.98125,-0.193348,
+ 0.231031,2.98125,-0.231031, 0.254788,3.0348,-0.254788, 0.290295,3.0348,-0.213234,
+ 0.290295,3.0348,-0.213234, 0.263232,2.98125,-0.193348, 0.231031,2.98125,-0.231031,
+ 0.193348,2.98125,-0.263232, 0.213234,3.0348,-0.290295, 0.254788,3.0348,-0.254788,
+ 0.254788,3.0348,-0.254788, 0.231031,2.98125,-0.231031, 0.193348,2.98125,-0.263232,
+ 0.150793,2.98125,-0.28934, 0.166306,3.0348,-0.319082, 0.213234,3.0348,-0.290295,
+ 0.213234,3.0348,-0.290295, 0.193348,2.98125,-0.263232, 0.150793,2.98125,-0.28934,
+ 0.103976,2.98125,-0.308744, 0.114676,3.0348,-0.340477, 0.166306,3.0348,-0.319082,
+ 0.166306,3.0348,-0.319082, 0.150793,2.98125,-0.28934, 0.103976,2.98125,-0.308744,
+ 0.053508,2.98125,-0.320834, 0.059016,3.0348,-0.353807, 0.114676,3.0348,-0.340477,
+ 0.114676,3.0348,-0.340477, 0.103976,2.98125,-0.308744, 0.053508,2.98125,-0.320834,
+ 0,2.98125,-0.325, 0,3.0348,-0.3584, 0.059016,3.0348,-0.353807,
+ 0.059016,3.0348,-0.353807, 0.053508,2.98125,-0.320834, 0,2.98125,-0.325,
+ 0.270092,2.9232,-0.045032, 0.320834,2.98125,-0.053508, 0.325,2.98125,0,
+ 0.325,2.98125,0, 0.2736,2.9232,0, 0.270092,2.9232,-0.045032,
+ 0.25991,2.9232,-0.087511, 0.308744,2.98125,-0.103976, 0.320834,2.98125,-0.053508,
+ 0.320834,2.98125,-0.053508, 0.270092,2.9232,-0.045032, 0.25991,2.9232,-0.087511,
+ 0.243569,2.9232,-0.12692, 0.28934,2.98125,-0.150793, 0.308744,2.98125,-0.103976,
+ 0.308744,2.98125,-0.103976, 0.25991,2.9232,-0.087511, 0.243569,2.9232,-0.12692,
+ 0.221585,2.9232,-0.162745, 0.263232,2.98125,-0.193348, 0.28934,2.98125,-0.150793,
+ 0.28934,2.98125,-0.150793, 0.243569,2.9232,-0.12692, 0.221585,2.9232,-0.162745,
+ 0.194472,2.9232,-0.194472, 0.231031,2.98125,-0.231031, 0.263232,2.98125,-0.193348,
+ 0.263232,2.98125,-0.193348, 0.221585,2.9232,-0.162745, 0.194472,2.9232,-0.194472,
+ 0.162745,2.9232,-0.221585, 0.193348,2.98125,-0.263232, 0.231031,2.98125,-0.231031,
+ 0.231031,2.98125,-0.231031, 0.194472,2.9232,-0.194472, 0.162745,2.9232,-0.221585,
+ 0.12692,2.9232,-0.243569, 0.150793,2.98125,-0.28934, 0.193348,2.98125,-0.263232,
+ 0.193348,2.98125,-0.263232, 0.162745,2.9232,-0.221585, 0.12692,2.9232,-0.243569,
+ 0.087511,2.9232,-0.25991, 0.103976,2.98125,-0.308744, 0.150793,2.98125,-0.28934,
+ 0.150793,2.98125,-0.28934, 0.12692,2.9232,-0.243569, 0.087511,2.9232,-0.25991,
+ 0.045032,2.9232,-0.270092, 0.053508,2.98125,-0.320834, 0.103976,2.98125,-0.308744,
+ 0.103976,2.98125,-0.308744, 0.087511,2.9232,-0.25991, 0.045032,2.9232,-0.270092,
+ 0,2.9232,-0.2736, 0,2.98125,-0.325, 0.053508,2.98125,-0.320834,
+ 0.053508,2.98125,-0.320834, 0.045032,2.9232,-0.270092, 0,2.9232,-0.2736,
+ 0.216979,2.86335,-0.036157, 0.270092,2.9232,-0.045032, 0.2736,2.9232,0,
+ 0.2736,2.9232,0, 0.2198,2.86335,0, 0.216979,2.86335,-0.036157,
+ 0.208794,2.86335,-0.07027, 0.25991,2.9232,-0.087511, 0.270092,2.9232,-0.045032,
+ 0.270092,2.9232,-0.045032, 0.216979,2.86335,-0.036157, 0.208794,2.86335,-0.07027,
+ 0.195658,2.86335,-0.101925, 0.243569,2.9232,-0.12692, 0.25991,2.9232,-0.087511,
+ 0.25991,2.9232,-0.087511, 0.208794,2.86335,-0.07027, 0.195658,2.86335,-0.101925,
+ 0.177989,2.86335,-0.130707, 0.221585,2.9232,-0.162745, 0.243569,2.9232,-0.12692,
+ 0.243569,2.9232,-0.12692, 0.195658,2.86335,-0.101925, 0.177989,2.86335,-0.130707,
+ 0.1562,2.86335,-0.1562, 0.194472,2.9232,-0.194472, 0.221585,2.9232,-0.162745,
+ 0.221585,2.9232,-0.162745, 0.177989,2.86335,-0.130707, 0.1562,2.86335,-0.1562,
+ 0.130707,2.86335,-0.177989, 0.162745,2.9232,-0.221585, 0.194472,2.9232,-0.194472,
+ 0.194472,2.9232,-0.194472, 0.1562,2.86335,-0.1562, 0.130707,2.86335,-0.177989,
+ 0.101925,2.86335,-0.195658, 0.12692,2.9232,-0.243569, 0.162745,2.9232,-0.221585,
+ 0.162745,2.9232,-0.221585, 0.130707,2.86335,-0.177989, 0.101925,2.86335,-0.195658,
+ 0.07027,2.86335,-0.208794, 0.087511,2.9232,-0.25991, 0.12692,2.9232,-0.243569,
+ 0.12692,2.9232,-0.243569, 0.101925,2.86335,-0.195658, 0.07027,2.86335,-0.208794,
+ 0.036157,2.86335,-0.216979, 0.045032,2.9232,-0.270092, 0.087511,2.9232,-0.25991,
+ 0.087511,2.9232,-0.25991, 0.07027,2.86335,-0.208794, 0.036157,2.86335,-0.216979,
+ 0,2.86335,-0.2198, 0,2.9232,-0.2736, 0.045032,2.9232,-0.270092,
+ 0.045032,2.9232,-0.270092, 0.036157,2.86335,-0.216979, 0,2.86335,-0.2198,
+ 0.176897,2.8044,-0.02945, 0.216979,2.86335,-0.036157, 0.2198,2.86335,0,
+ 0.2198,2.86335,0, 0.1792,2.8044,0, 0.176897,2.8044,-0.02945,
+ 0.170215,2.8044,-0.057246, 0.208794,2.86335,-0.07027, 0.216979,2.86335,-0.036157,
+ 0.216979,2.86335,-0.036157, 0.176897,2.8044,-0.02945, 0.170215,2.8044,-0.057246,
+ 0.159496,2.8044,-0.083047, 0.195658,2.86335,-0.101925, 0.208794,2.86335,-0.07027,
+ 0.208794,2.86335,-0.07027, 0.170215,2.8044,-0.057246, 0.159496,2.8044,-0.083047,
+ 0.145078,2.8044,-0.106513, 0.177989,2.86335,-0.130707, 0.195658,2.86335,-0.101925,
+ 0.195658,2.86335,-0.101925, 0.159496,2.8044,-0.083047, 0.145078,2.8044,-0.106513,
+ 0.127304,2.8044,-0.127304, 0.1562,2.86335,-0.1562, 0.177989,2.86335,-0.130707,
+ 0.177989,2.86335,-0.130707, 0.145078,2.8044,-0.106513, 0.127304,2.8044,-0.127304,
+ 0.106513,2.8044,-0.145078, 0.130707,2.86335,-0.177989, 0.1562,2.86335,-0.1562,
+ 0.1562,2.86335,-0.1562, 0.127304,2.8044,-0.127304, 0.106513,2.8044,-0.145078,
+ 0.083047,2.8044,-0.159496, 0.101925,2.86335,-0.195658, 0.130707,2.86335,-0.177989,
+ 0.130707,2.86335,-0.177989, 0.106513,2.8044,-0.145078, 0.083047,2.8044,-0.159496,
+ 0.057246,2.8044,-0.170215, 0.07027,2.86335,-0.208794, 0.101925,2.86335,-0.195658,
+ 0.101925,2.86335,-0.195658, 0.083047,2.8044,-0.159496, 0.057246,2.8044,-0.170215,
+ 0.02945,2.8044,-0.176897, 0.036157,2.86335,-0.216979, 0.07027,2.86335,-0.208794,
+ 0.07027,2.86335,-0.208794, 0.057246,2.8044,-0.170215, 0.02945,2.8044,-0.176897,
+ 0,2.8044,-0.1792, 0,2.86335,-0.2198, 0.036157,2.86335,-0.216979,
+ 0.036157,2.86335,-0.216979, 0.02945,2.8044,-0.176897, 0,2.8044,-0.1792,
+ 0.165245,2.74905,-0.02748, 0.176897,2.8044,-0.02945, 0.1792,2.8044,0,
+ 0.1792,2.8044,0, 0.1674,2.74905,0, 0.165245,2.74905,-0.02748,
+ 0.158995,2.74905,-0.053428, 0.170215,2.8044,-0.057246, 0.176897,2.8044,-0.02945,
+ 0.176897,2.8044,-0.02945, 0.165245,2.74905,-0.02748, 0.158995,2.74905,-0.053428,
+ 0.148969,2.74905,-0.077523, 0.159496,2.8044,-0.083047, 0.170215,2.8044,-0.057246,
+ 0.170215,2.8044,-0.057246, 0.158995,2.74905,-0.053428, 0.148969,2.74905,-0.077523,
+ 0.135489,2.74905,-0.099446, 0.145078,2.8044,-0.106513, 0.159496,2.8044,-0.083047,
+ 0.159496,2.8044,-0.083047, 0.148969,2.74905,-0.077523, 0.135489,2.74905,-0.099446,
+ 0.118874,2.74905,-0.118874, 0.127304,2.8044,-0.127304, 0.145078,2.8044,-0.106513,
+ 0.145078,2.8044,-0.106513, 0.135489,2.74905,-0.099446, 0.118874,2.74905,-0.118874,
+ 0.099446,2.74905,-0.135489, 0.106513,2.8044,-0.145078, 0.127304,2.8044,-0.127304,
+ 0.127304,2.8044,-0.127304, 0.118874,2.74905,-0.118874, 0.099446,2.74905,-0.135489,
+ 0.077523,2.74905,-0.148969, 0.083047,2.8044,-0.159496, 0.106513,2.8044,-0.145078,
+ 0.106513,2.8044,-0.145078, 0.099446,2.74905,-0.135489, 0.077523,2.74905,-0.148969,
+ 0.053428,2.74905,-0.158995, 0.057246,2.8044,-0.170215, 0.083047,2.8044,-0.159496,
+ 0.083047,2.8044,-0.159496, 0.077523,2.74905,-0.148969, 0.053428,2.74905,-0.158995,
+ 0.02748,2.74905,-0.165245, 0.02945,2.8044,-0.176897, 0.057246,2.8044,-0.170215,
+ 0.057246,2.8044,-0.170215, 0.053428,2.74905,-0.158995, 0.02748,2.74905,-0.165245,
+ 0,2.74905,-0.1674, 0,2.8044,-0.1792, 0.02945,2.8044,-0.176897,
+ 0.02945,2.8044,-0.176897, 0.02748,2.74905,-0.165245, 0,2.74905,-0.1674,
+ 0.197424,2.7,-0.032816, 0.165245,2.74905,-0.02748, 0.1674,2.74905,0,
+ 0.1674,2.74905,0, 0.2,2.7,0, 0.197424,2.7,-0.032816,
+ 0.189952,2.7,-0.063808, 0.158995,2.74905,-0.053428, 0.165245,2.74905,-0.02748,
+ 0.165245,2.74905,-0.02748, 0.197424,2.7,-0.032816, 0.189952,2.7,-0.063808,
+ 0.177968,2.7,-0.092592, 0.148969,2.74905,-0.077523, 0.158995,2.74905,-0.053428,
+ 0.158995,2.74905,-0.053428, 0.189952,2.7,-0.063808, 0.177968,2.7,-0.092592,
+ 0.161856,2.7,-0.118784, 0.135489,2.74905,-0.099446, 0.148969,2.74905,-0.077523,
+ 0.148969,2.74905,-0.077523, 0.177968,2.7,-0.092592, 0.161856,2.7,-0.118784,
+ 0.142,2.7,-0.142, 0.118874,2.74905,-0.118874, 0.135489,2.74905,-0.099446,
+ 0.135489,2.74905,-0.099446, 0.161856,2.7,-0.118784, 0.142,2.7,-0.142,
+ 0.118784,2.7,-0.161856, 0.099446,2.74905,-0.135489, 0.118874,2.74905,-0.118874,
+ 0.118874,2.74905,-0.118874, 0.142,2.7,-0.142, 0.118784,2.7,-0.161856,
+ 0.092592,2.7,-0.177968, 0.077523,2.74905,-0.148969, 0.099446,2.74905,-0.135489,
+ 0.099446,2.74905,-0.135489, 0.118784,2.7,-0.161856, 0.092592,2.7,-0.177968,
+ 0.063808,2.7,-0.189952, 0.053428,2.74905,-0.158995, 0.077523,2.74905,-0.148969,
+ 0.077523,2.74905,-0.148969, 0.092592,2.7,-0.177968, 0.063808,2.7,-0.189952,
+ 0.032816,2.7,-0.197424, 0.02748,2.74905,-0.165245, 0.053428,2.74905,-0.158995,
+ 0.053428,2.74905,-0.158995, 0.063808,2.7,-0.189952, 0.032816,2.7,-0.197424,
+ 0,2.7,-0.2, 0,2.74905,-0.1674, 0.02748,2.74905,-0.165245,
+ 0.02748,2.74905,-0.165245, 0.032816,2.7,-0.197424, 0,2.7,-0.2,
+ 0,3.15,0, 0,3.14145,-0.1946, -0.032048,3.14145,-0.192107,
+ 0,3.15,0, -0.032048,3.14145,-0.192107, -0.062272,3.14145,-0.18487,
+ 0,3.15,0, -0.062272,3.14145,-0.18487, -0.090306,3.14145,-0.173255,
+ 0,3.15,0, -0.090306,3.14145,-0.173255, -0.115787,3.14145,-0.157626,
+ 0,3.15,0, -0.115787,3.14145,-0.157626, -0.138348,3.14145,-0.138348,
+ 0,3.15,0, -0.138348,3.14145,-0.138348, -0.157626,3.14145,-0.115787,
+ 0,3.15,0, -0.157626,3.14145,-0.115787, -0.173255,3.14145,-0.090306,
+ 0,3.15,0, -0.173255,3.14145,-0.090306, -0.18487,3.14145,-0.062272,
+ 0,3.15,0, -0.18487,3.14145,-0.062272, -0.192107,3.14145,-0.032048,
+ 0,3.15,0, -0.192107,3.14145,-0.032048, -0.1946,3.14145,0,
+ -0.050855,3.1176,-0.304843, -0.032048,3.14145,-0.192107, 0,3.14145,-0.1946,
+ 0,3.14145,-0.1946, 0,3.1176,-0.3088, -0.050855,3.1176,-0.304843,
+ -0.098814,3.1176,-0.29336, -0.062272,3.14145,-0.18487, -0.032048,3.14145,-0.192107,
+ -0.032048,3.14145,-0.192107, -0.050855,3.1176,-0.304843, -0.098814,3.1176,-0.29336,
+ -0.143301,3.1176,-0.274928, -0.090306,3.14145,-0.173255, -0.062272,3.14145,-0.18487,
+ -0.062272,3.14145,-0.18487, -0.098814,3.1176,-0.29336, -0.143301,3.1176,-0.274928,
+ -0.183734,3.1176,-0.250127, -0.115787,3.14145,-0.157626, -0.090306,3.14145,-0.173255,
+ -0.090306,3.14145,-0.173255, -0.143301,3.1176,-0.274928, -0.183734,3.1176,-0.250127,
+ -0.219536,3.1176,-0.219536, -0.138348,3.14145,-0.138348, -0.115787,3.14145,-0.157626,
+ -0.115787,3.14145,-0.157626, -0.183734,3.1176,-0.250127, -0.219536,3.1176,-0.219536,
+ -0.250127,3.1176,-0.183734, -0.157626,3.14145,-0.115787, -0.138348,3.14145,-0.138348,
+ -0.138348,3.14145,-0.138348, -0.219536,3.1176,-0.219536, -0.250127,3.1176,-0.183734,
+ -0.274928,3.1176,-0.143301, -0.173255,3.14145,-0.090306, -0.157626,3.14145,-0.115787,
+ -0.157626,3.14145,-0.115787, -0.250127,3.1176,-0.183734, -0.274928,3.1176,-0.143301,
+ -0.29336,3.1176,-0.098814, -0.18487,3.14145,-0.062272, -0.173255,3.14145,-0.090306,
+ -0.173255,3.14145,-0.090306, -0.274928,3.1176,-0.143301, -0.29336,3.1176,-0.098814,
+ -0.304843,3.1176,-0.050855, -0.192107,3.14145,-0.032048, -0.18487,3.14145,-0.062272,
+ -0.18487,3.14145,-0.062272, -0.29336,3.1176,-0.098814, -0.304843,3.1176,-0.050855,
+ -0.3088,3.1176,0, -0.1946,3.14145,0, -0.192107,3.14145,-0.032048,
+ -0.192107,3.14145,-0.032048, -0.304843,3.1176,-0.050855, -0.3088,3.1176,0,
+ -0.058988,3.08115,-0.35361, -0.050855,3.1176,-0.304843, 0,3.1176,-0.3088,
+ 0,3.1176,-0.3088, 0,3.08115,-0.3582, -0.058988,3.08115,-0.35361,
+ -0.114619,3.08115,-0.340289, -0.098814,3.1176,-0.29336, -0.050855,3.1176,-0.304843,
+ -0.050855,3.1176,-0.304843, -0.058988,3.08115,-0.35361, -0.114619,3.08115,-0.340289,
+ -0.166221,3.08115,-0.318907, -0.143301,3.1176,-0.274928, -0.098814,3.1176,-0.29336,
+ -0.098814,3.1176,-0.29336, -0.114619,3.08115,-0.340289, -0.166221,3.08115,-0.318907,
+ -0.213123,3.08115,-0.290138, -0.183734,3.1176,-0.250127, -0.143301,3.1176,-0.274928,
+ -0.143301,3.1176,-0.274928, -0.166221,3.08115,-0.318907, -0.213123,3.08115,-0.290138,
+ -0.254653,3.08115,-0.254653, -0.219536,3.1176,-0.219536, -0.183734,3.1176,-0.250127,
+ -0.183734,3.1176,-0.250127, -0.213123,3.08115,-0.290138, -0.254653,3.08115,-0.254653,
+ -0.290138,3.08115,-0.213123, -0.250127,3.1176,-0.183734, -0.219536,3.1176,-0.219536,
+ -0.219536,3.1176,-0.219536, -0.254653,3.08115,-0.254653, -0.290138,3.08115,-0.213123,
+ -0.318907,3.08115,-0.166221, -0.274928,3.1176,-0.143301, -0.250127,3.1176,-0.183734,
+ -0.250127,3.1176,-0.183734, -0.290138,3.08115,-0.213123, -0.318907,3.08115,-0.166221,
+ -0.340289,3.08115,-0.114619, -0.29336,3.1176,-0.098814, -0.274928,3.1176,-0.143301,
+ -0.274928,3.1176,-0.143301, -0.318907,3.08115,-0.166221, -0.340289,3.08115,-0.114619,
+ -0.35361,3.08115,-0.058988, -0.304843,3.1176,-0.050855, -0.29336,3.1176,-0.098814,
+ -0.29336,3.1176,-0.098814, -0.340289,3.08115,-0.114619, -0.35361,3.08115,-0.058988,
+ -0.3582,3.08115,0, -0.3088,3.1176,0, -0.304843,3.1176,-0.050855,
+ -0.304843,3.1176,-0.050855, -0.35361,3.08115,-0.058988, -0.3582,3.08115,0,
+ -0.059016,3.0348,-0.353807, -0.058988,3.08115,-0.35361, 0,3.08115,-0.3582,
+ 0,3.08115,-0.3582, 0,3.0348,-0.3584, -0.059016,3.0348,-0.353807,
+ -0.114676,3.0348,-0.340477, -0.114619,3.08115,-0.340289, -0.058988,3.08115,-0.35361,
+ -0.058988,3.08115,-0.35361, -0.059016,3.0348,-0.353807, -0.114676,3.0348,-0.340477,
+ -0.166306,3.0348,-0.319082, -0.166221,3.08115,-0.318907, -0.114619,3.08115,-0.340289,
+ -0.114619,3.08115,-0.340289, -0.114676,3.0348,-0.340477, -0.166306,3.0348,-0.319082,
+ -0.213234,3.0348,-0.290295, -0.213123,3.08115,-0.290138, -0.166221,3.08115,-0.318907,
+ -0.166221,3.08115,-0.318907, -0.166306,3.0348,-0.319082, -0.213234,3.0348,-0.290295,
+ -0.254788,3.0348,-0.254788, -0.254653,3.08115,-0.254653, -0.213123,3.08115,-0.290138,
+ -0.213123,3.08115,-0.290138, -0.213234,3.0348,-0.290295, -0.254788,3.0348,-0.254788,
+ -0.290295,3.0348,-0.213234, -0.290138,3.08115,-0.213123, -0.254653,3.08115,-0.254653,
+ -0.254653,3.08115,-0.254653, -0.254788,3.0348,-0.254788, -0.290295,3.0348,-0.213234,
+ -0.319082,3.0348,-0.166306, -0.318907,3.08115,-0.166221, -0.290138,3.08115,-0.213123,
+ -0.290138,3.08115,-0.213123, -0.290295,3.0348,-0.213234, -0.319082,3.0348,-0.166306,
+ -0.340477,3.0348,-0.114676, -0.340289,3.08115,-0.114619, -0.318907,3.08115,-0.166221,
+ -0.318907,3.08115,-0.166221, -0.319082,3.0348,-0.166306, -0.340477,3.0348,-0.114676,
+ -0.353807,3.0348,-0.059016, -0.35361,3.08115,-0.058988, -0.340289,3.08115,-0.114619,
+ -0.340289,3.08115,-0.114619, -0.340477,3.0348,-0.114676, -0.353807,3.0348,-0.059016,
+ -0.3584,3.0348,0, -0.3582,3.08115,0, -0.35361,3.08115,-0.058988,
+ -0.35361,3.08115,-0.058988, -0.353807,3.0348,-0.059016, -0.3584,3.0348,0,
+ -0.053508,2.98125,-0.320834, -0.059016,3.0348,-0.353807, 0,3.0348,-0.3584,
+ 0,3.0348,-0.3584, 0,2.98125,-0.325, -0.053508,2.98125,-0.320834,
+ -0.103976,2.98125,-0.308744, -0.114676,3.0348,-0.340477, -0.059016,3.0348,-0.353807,
+ -0.059016,3.0348,-0.353807, -0.053508,2.98125,-0.320834, -0.103976,2.98125,-0.308744,
+ -0.150793,2.98125,-0.28934, -0.166306,3.0348,-0.319082, -0.114676,3.0348,-0.340477,
+ -0.114676,3.0348,-0.340477, -0.103976,2.98125,-0.308744, -0.150793,2.98125,-0.28934,
+ -0.193348,2.98125,-0.263232, -0.213234,3.0348,-0.290295, -0.166306,3.0348,-0.319082,
+ -0.166306,3.0348,-0.319082, -0.150793,2.98125,-0.28934, -0.193348,2.98125,-0.263232,
+ -0.231031,2.98125,-0.231031, -0.254788,3.0348,-0.254788, -0.213234,3.0348,-0.290295,
+ -0.213234,3.0348,-0.290295, -0.193348,2.98125,-0.263232, -0.231031,2.98125,-0.231031,
+ -0.263232,2.98125,-0.193348, -0.290295,3.0348,-0.213234, -0.254788,3.0348,-0.254788,
+ -0.254788,3.0348,-0.254788, -0.231031,2.98125,-0.231031, -0.263232,2.98125,-0.193348,
+ -0.28934,2.98125,-0.150793, -0.319082,3.0348,-0.166306, -0.290295,3.0348,-0.213234,
+ -0.290295,3.0348,-0.213234, -0.263232,2.98125,-0.193348, -0.28934,2.98125,-0.150793,
+ -0.308744,2.98125,-0.103976, -0.340477,3.0348,-0.114676, -0.319082,3.0348,-0.166306,
+ -0.319082,3.0348,-0.166306, -0.28934,2.98125,-0.150793, -0.308744,2.98125,-0.103976,
+ -0.320834,2.98125,-0.053508, -0.353807,3.0348,-0.059016, -0.340477,3.0348,-0.114676,
+ -0.340477,3.0348,-0.114676, -0.308744,2.98125,-0.103976, -0.320834,2.98125,-0.053508,
+ -0.325,2.98125,0, -0.3584,3.0348,0, -0.353807,3.0348,-0.059016,
+ -0.353807,3.0348,-0.059016, -0.320834,2.98125,-0.053508, -0.325,2.98125,0,
+ -0.045032,2.9232,-0.270092, -0.053508,2.98125,-0.320834, 0,2.98125,-0.325,
+ 0,2.98125,-0.325, 0,2.9232,-0.2736, -0.045032,2.9232,-0.270092,
+ -0.087511,2.9232,-0.25991, -0.103976,2.98125,-0.308744, -0.053508,2.98125,-0.320834,
+ -0.053508,2.98125,-0.320834, -0.045032,2.9232,-0.270092, -0.087511,2.9232,-0.25991,
+ -0.12692,2.9232,-0.243569, -0.150793,2.98125,-0.28934, -0.103976,2.98125,-0.308744,
+ -0.103976,2.98125,-0.308744, -0.087511,2.9232,-0.25991, -0.12692,2.9232,-0.243569,
+ -0.162745,2.9232,-0.221585, -0.193348,2.98125,-0.263232, -0.150793,2.98125,-0.28934,
+ -0.150793,2.98125,-0.28934, -0.12692,2.9232,-0.243569, -0.162745,2.9232,-0.221585,
+ -0.194472,2.9232,-0.194472, -0.231031,2.98125,-0.231031, -0.193348,2.98125,-0.263232,
+ -0.193348,2.98125,-0.263232, -0.162745,2.9232,-0.221585, -0.194472,2.9232,-0.194472,
+ -0.221585,2.9232,-0.162745, -0.263232,2.98125,-0.193348, -0.231031,2.98125,-0.231031,
+ -0.231031,2.98125,-0.231031, -0.194472,2.9232,-0.194472, -0.221585,2.9232,-0.162745,
+ -0.243569,2.9232,-0.12692, -0.28934,2.98125,-0.150793, -0.263232,2.98125,-0.193348,
+ -0.263232,2.98125,-0.193348, -0.221585,2.9232,-0.162745, -0.243569,2.9232,-0.12692,
+ -0.25991,2.9232,-0.087511, -0.308744,2.98125,-0.103976, -0.28934,2.98125,-0.150793,
+ -0.28934,2.98125,-0.150793, -0.243569,2.9232,-0.12692, -0.25991,2.9232,-0.087511,
+ -0.270092,2.9232,-0.045032, -0.320834,2.98125,-0.053508, -0.308744,2.98125,-0.103976,
+ -0.308744,2.98125,-0.103976, -0.25991,2.9232,-0.087511, -0.270092,2.9232,-0.045032,
+ -0.2736,2.9232,0, -0.325,2.98125,0, -0.320834,2.98125,-0.053508,
+ -0.320834,2.98125,-0.053508, -0.270092,2.9232,-0.045032, -0.2736,2.9232,0,
+ -0.036157,2.86335,-0.216979, -0.045032,2.9232,-0.270092, 0,2.9232,-0.2736,
+ 0,2.9232,-0.2736, 0,2.86335,-0.2198, -0.036157,2.86335,-0.216979,
+ -0.07027,2.86335,-0.208794, -0.087511,2.9232,-0.25991, -0.045032,2.9232,-0.270092,
+ -0.045032,2.9232,-0.270092, -0.036157,2.86335,-0.216979, -0.07027,2.86335,-0.208794,
+ -0.101925,2.86335,-0.195658, -0.12692,2.9232,-0.243569, -0.087511,2.9232,-0.25991,
+ -0.087511,2.9232,-0.25991, -0.07027,2.86335,-0.208794, -0.101925,2.86335,-0.195658,
+ -0.130707,2.86335,-0.177989, -0.162745,2.9232,-0.221585, -0.12692,2.9232,-0.243569,
+ -0.12692,2.9232,-0.243569, -0.101925,2.86335,-0.195658, -0.130707,2.86335,-0.177989,
+ -0.1562,2.86335,-0.1562, -0.194472,2.9232,-0.194472, -0.162745,2.9232,-0.221585,
+ -0.162745,2.9232,-0.221585, -0.130707,2.86335,-0.177989, -0.1562,2.86335,-0.1562,
+ -0.177989,2.86335,-0.130707, -0.221585,2.9232,-0.162745, -0.194472,2.9232,-0.194472,
+ -0.194472,2.9232,-0.194472, -0.1562,2.86335,-0.1562, -0.177989,2.86335,-0.130707,
+ -0.195658,2.86335,-0.101925, -0.243569,2.9232,-0.12692, -0.221585,2.9232,-0.162745,
+ -0.221585,2.9232,-0.162745, -0.177989,2.86335,-0.130707, -0.195658,2.86335,-0.101925,
+ -0.208794,2.86335,-0.07027, -0.25991,2.9232,-0.087511, -0.243569,2.9232,-0.12692,
+ -0.243569,2.9232,-0.12692, -0.195658,2.86335,-0.101925, -0.208794,2.86335,-0.07027,
+ -0.216979,2.86335,-0.036157, -0.270092,2.9232,-0.045032, -0.25991,2.9232,-0.087511,
+ -0.25991,2.9232,-0.087511, -0.208794,2.86335,-0.07027, -0.216979,2.86335,-0.036157,
+ -0.2198,2.86335,0, -0.2736,2.9232,0, -0.270092,2.9232,-0.045032,
+ -0.270092,2.9232,-0.045032, -0.216979,2.86335,-0.036157, -0.2198,2.86335,0,
+ -0.02945,2.8044,-0.176897, -0.036157,2.86335,-0.216979, 0,2.86335,-0.2198,
+ 0,2.86335,-0.2198, 0,2.8044,-0.1792, -0.02945,2.8044,-0.176897,
+ -0.057246,2.8044,-0.170215, -0.07027,2.86335,-0.208794, -0.036157,2.86335,-0.216979,
+ -0.036157,2.86335,-0.216979, -0.02945,2.8044,-0.176897, -0.057246,2.8044,-0.170215,
+ -0.083047,2.8044,-0.159496, -0.101925,2.86335,-0.195658, -0.07027,2.86335,-0.208794,
+ -0.07027,2.86335,-0.208794, -0.057246,2.8044,-0.170215, -0.083047,2.8044,-0.159496,
+ -0.106513,2.8044,-0.145078, -0.130707,2.86335,-0.177989, -0.101925,2.86335,-0.195658,
+ -0.101925,2.86335,-0.195658, -0.083047,2.8044,-0.159496, -0.106513,2.8044,-0.145078,
+ -0.127304,2.8044,-0.127304, -0.1562,2.86335,-0.1562, -0.130707,2.86335,-0.177989,
+ -0.130707,2.86335,-0.177989, -0.106513,2.8044,-0.145078, -0.127304,2.8044,-0.127304,
+ -0.145078,2.8044,-0.106513, -0.177989,2.86335,-0.130707, -0.1562,2.86335,-0.1562,
+ -0.1562,2.86335,-0.1562, -0.127304,2.8044,-0.127304, -0.145078,2.8044,-0.106513,
+ -0.159496,2.8044,-0.083047, -0.195658,2.86335,-0.101925, -0.177989,2.86335,-0.130707,
+ -0.177989,2.86335,-0.130707, -0.145078,2.8044,-0.106513, -0.159496,2.8044,-0.083047,
+ -0.170215,2.8044,-0.057246, -0.208794,2.86335,-0.07027, -0.195658,2.86335,-0.101925,
+ -0.195658,2.86335,-0.101925, -0.159496,2.8044,-0.083047, -0.170215,2.8044,-0.057246,
+ -0.176897,2.8044,-0.02945, -0.216979,2.86335,-0.036157, -0.208794,2.86335,-0.07027,
+ -0.208794,2.86335,-0.07027, -0.170215,2.8044,-0.057246, -0.176897,2.8044,-0.02945,
+ -0.1792,2.8044,0, -0.2198,2.86335,0, -0.216979,2.86335,-0.036157,
+ -0.216979,2.86335,-0.036157, -0.176897,2.8044,-0.02945, -0.1792,2.8044,0,
+ -0.02748,2.74905,-0.165245, -0.02945,2.8044,-0.176897, 0,2.8044,-0.1792,
+ 0,2.8044,-0.1792, 0,2.74905,-0.1674, -0.02748,2.74905,-0.165245,
+ -0.053428,2.74905,-0.158995, -0.057246,2.8044,-0.170215, -0.02945,2.8044,-0.176897,
+ -0.02945,2.8044,-0.176897, -0.02748,2.74905,-0.165245, -0.053428,2.74905,-0.158995,
+ -0.077523,2.74905,-0.148969, -0.083047,2.8044,-0.159496, -0.057246,2.8044,-0.170215,
+ -0.057246,2.8044,-0.170215, -0.053428,2.74905,-0.158995, -0.077523,2.74905,-0.148969,
+ -0.099446,2.74905,-0.135489, -0.106513,2.8044,-0.145078, -0.083047,2.8044,-0.159496,
+ -0.083047,2.8044,-0.159496, -0.077523,2.74905,-0.148969, -0.099446,2.74905,-0.135489,
+ -0.118874,2.74905,-0.118874, -0.127304,2.8044,-0.127304, -0.106513,2.8044,-0.145078,
+ -0.106513,2.8044,-0.145078, -0.099446,2.74905,-0.135489, -0.118874,2.74905,-0.118874,
+ -0.135489,2.74905,-0.099446, -0.145078,2.8044,-0.106513, -0.127304,2.8044,-0.127304,
+ -0.127304,2.8044,-0.127304, -0.118874,2.74905,-0.118874, -0.135489,2.74905,-0.099446,
+ -0.148969,2.74905,-0.077523, -0.159496,2.8044,-0.083047, -0.145078,2.8044,-0.106513,
+ -0.145078,2.8044,-0.106513, -0.135489,2.74905,-0.099446, -0.148969,2.74905,-0.077523,
+ -0.158995,2.74905,-0.053428, -0.170215,2.8044,-0.057246, -0.159496,2.8044,-0.083047,
+ -0.159496,2.8044,-0.083047, -0.148969,2.74905,-0.077523, -0.158995,2.74905,-0.053428,
+ -0.165245,2.74905,-0.02748, -0.176897,2.8044,-0.02945, -0.170215,2.8044,-0.057246,
+ -0.170215,2.8044,-0.057246, -0.158995,2.74905,-0.053428, -0.165245,2.74905,-0.02748,
+ -0.1674,2.74905,0, -0.1792,2.8044,0, -0.176897,2.8044,-0.02945,
+ -0.176897,2.8044,-0.02945, -0.165245,2.74905,-0.02748, -0.1674,2.74905,0,
+ -0.032816,2.7,-0.197424, -0.02748,2.74905,-0.165245, 0,2.74905,-0.1674,
+ 0,2.74905,-0.1674, 0,2.7,-0.2, -0.032816,2.7,-0.197424,
+ -0.063808,2.7,-0.189952, -0.053428,2.74905,-0.158995, -0.02748,2.74905,-0.165245,
+ -0.02748,2.74905,-0.165245, -0.032816,2.7,-0.197424, -0.063808,2.7,-0.189952,
+ -0.092592,2.7,-0.177968, -0.077523,2.74905,-0.148969, -0.053428,2.74905,-0.158995,
+ -0.053428,2.74905,-0.158995, -0.063808,2.7,-0.189952, -0.092592,2.7,-0.177968,
+ -0.118784,2.7,-0.161856, -0.099446,2.74905,-0.135489, -0.077523,2.74905,-0.148969,
+ -0.077523,2.74905,-0.148969, -0.092592,2.7,-0.177968, -0.118784,2.7,-0.161856,
+ -0.142,2.7,-0.142, -0.118874,2.74905,-0.118874, -0.099446,2.74905,-0.135489,
+ -0.099446,2.74905,-0.135489, -0.118784,2.7,-0.161856, -0.142,2.7,-0.142,
+ -0.161856,2.7,-0.118784, -0.135489,2.74905,-0.099446, -0.118874,2.74905,-0.118874,
+ -0.118874,2.74905,-0.118874, -0.142,2.7,-0.142, -0.161856,2.7,-0.118784,
+ -0.177968,2.7,-0.092592, -0.148969,2.74905,-0.077523, -0.135489,2.74905,-0.099446,
+ -0.135489,2.74905,-0.099446, -0.161856,2.7,-0.118784, -0.177968,2.7,-0.092592,
+ -0.189952,2.7,-0.063808, -0.158995,2.74905,-0.053428, -0.148969,2.74905,-0.077523,
+ -0.148969,2.74905,-0.077523, -0.177968,2.7,-0.092592, -0.189952,2.7,-0.063808,
+ -0.197424,2.7,-0.032816, -0.165245,2.74905,-0.02748, -0.158995,2.74905,-0.053428,
+ -0.158995,2.74905,-0.053428, -0.189952,2.7,-0.063808, -0.197424,2.7,-0.032816,
+ -0.2,2.7,0, -0.1674,2.74905,0, -0.165245,2.74905,-0.02748,
+ -0.165245,2.74905,-0.02748, -0.197424,2.7,-0.032816, -0.2,2.7,0,
+ 0,3.15,0, -0.1946,3.14145,0, -0.192107,3.14145,0.032048,
+ 0,3.15,0, -0.192107,3.14145,0.032048, -0.18487,3.14145,0.062272,
+ 0,3.15,0, -0.18487,3.14145,0.062272, -0.173255,3.14145,0.090306,
+ 0,3.15,0, -0.173255,3.14145,0.090306, -0.157626,3.14145,0.115787,
+ 0,3.15,0, -0.157626,3.14145,0.115787, -0.138348,3.14145,0.138348,
+ 0,3.15,0, -0.138348,3.14145,0.138348, -0.115787,3.14145,0.157626,
+ 0,3.15,0, -0.115787,3.14145,0.157626, -0.090306,3.14145,0.173255,
+ 0,3.15,0, -0.090306,3.14145,0.173255, -0.062272,3.14145,0.18487,
+ 0,3.15,0, -0.062272,3.14145,0.18487, -0.032048,3.14145,0.192107,
+ 0,3.15,0, -0.032048,3.14145,0.192107, 0,3.14145,0.1946,
+ -0.304843,3.1176,0.050855, -0.192107,3.14145,0.032048, -0.1946,3.14145,0,
+ -0.1946,3.14145,0, -0.3088,3.1176,0, -0.304843,3.1176,0.050855,
+ -0.29336,3.1176,0.098814, -0.18487,3.14145,0.062272, -0.192107,3.14145,0.032048,
+ -0.192107,3.14145,0.032048, -0.304843,3.1176,0.050855, -0.29336,3.1176,0.098814,
+ -0.274928,3.1176,0.143301, -0.173255,3.14145,0.090306, -0.18487,3.14145,0.062272,
+ -0.18487,3.14145,0.062272, -0.29336,3.1176,0.098814, -0.274928,3.1176,0.143301,
+ -0.250127,3.1176,0.183734, -0.157626,3.14145,0.115787, -0.173255,3.14145,0.090306,
+ -0.173255,3.14145,0.090306, -0.274928,3.1176,0.143301, -0.250127,3.1176,0.183734,
+ -0.219536,3.1176,0.219536, -0.138348,3.14145,0.138348, -0.157626,3.14145,0.115787,
+ -0.157626,3.14145,0.115787, -0.250127,3.1176,0.183734, -0.219536,3.1176,0.219536,
+ -0.183734,3.1176,0.250127, -0.115787,3.14145,0.157626, -0.138348,3.14145,0.138348,
+ -0.138348,3.14145,0.138348, -0.219536,3.1176,0.219536, -0.183734,3.1176,0.250127,
+ -0.143301,3.1176,0.274928, -0.090306,3.14145,0.173255, -0.115787,3.14145,0.157626,
+ -0.115787,3.14145,0.157626, -0.183734,3.1176,0.250127, -0.143301,3.1176,0.274928,
+ -0.098814,3.1176,0.29336, -0.062272,3.14145,0.18487, -0.090306,3.14145,0.173255,
+ -0.090306,3.14145,0.173255, -0.143301,3.1176,0.274928, -0.098814,3.1176,0.29336,
+ -0.050855,3.1176,0.304843, -0.032048,3.14145,0.192107, -0.062272,3.14145,0.18487,
+ -0.062272,3.14145,0.18487, -0.098814,3.1176,0.29336, -0.050855,3.1176,0.304843,
+ 0,3.1176,0.3088, 0,3.14145,0.1946, -0.032048,3.14145,0.192107,
+ -0.032048,3.14145,0.192107, -0.050855,3.1176,0.304843, 0,3.1176,0.3088,
+ -0.35361,3.08115,0.058988, -0.304843,3.1176,0.050855, -0.3088,3.1176,0,
+ -0.3088,3.1176,0, -0.3582,3.08115,0, -0.35361,3.08115,0.058988,
+ -0.340289,3.08115,0.114619, -0.29336,3.1176,0.098814, -0.304843,3.1176,0.050855,
+ -0.304843,3.1176,0.050855, -0.35361,3.08115,0.058988, -0.340289,3.08115,0.114619,
+ -0.318907,3.08115,0.166221, -0.274928,3.1176,0.143301, -0.29336,3.1176,0.098814,
+ -0.29336,3.1176,0.098814, -0.340289,3.08115,0.114619, -0.318907,3.08115,0.166221,
+ -0.290138,3.08115,0.213123, -0.250127,3.1176,0.183734, -0.274928,3.1176,0.143301,
+ -0.274928,3.1176,0.143301, -0.318907,3.08115,0.166221, -0.290138,3.08115,0.213123,
+ -0.254653,3.08115,0.254653, -0.219536,3.1176,0.219536, -0.250127,3.1176,0.183734,
+ -0.250127,3.1176,0.183734, -0.290138,3.08115,0.213123, -0.254653,3.08115,0.254653,
+ -0.213123,3.08115,0.290138, -0.183734,3.1176,0.250127, -0.219536,3.1176,0.219536,
+ -0.219536,3.1176,0.219536, -0.254653,3.08115,0.254653, -0.213123,3.08115,0.290138,
+ -0.166221,3.08115,0.318907, -0.143301,3.1176,0.274928, -0.183734,3.1176,0.250127,
+ -0.183734,3.1176,0.250127, -0.213123,3.08115,0.290138, -0.166221,3.08115,0.318907,
+ -0.114619,3.08115,0.340289, -0.098814,3.1176,0.29336, -0.143301,3.1176,0.274928,
+ -0.143301,3.1176,0.274928, -0.166221,3.08115,0.318907, -0.114619,3.08115,0.340289,
+ -0.058988,3.08115,0.35361, -0.050855,3.1176,0.304843, -0.098814,3.1176,0.29336,
+ -0.098814,3.1176,0.29336, -0.114619,3.08115,0.340289, -0.058988,3.08115,0.35361,
+ 0,3.08115,0.3582, 0,3.1176,0.3088, -0.050855,3.1176,0.304843,
+ -0.050855,3.1176,0.304843, -0.058988,3.08115,0.35361, 0,3.08115,0.3582,
+ -0.353807,3.0348,0.059016, -0.35361,3.08115,0.058988, -0.3582,3.08115,0,
+ -0.3582,3.08115,0, -0.3584,3.0348,0, -0.353807,3.0348,0.059016,
+ -0.340477,3.0348,0.114676, -0.340289,3.08115,0.114619, -0.35361,3.08115,0.058988,
+ -0.35361,3.08115,0.058988, -0.353807,3.0348,0.059016, -0.340477,3.0348,0.114676,
+ -0.319082,3.0348,0.166306, -0.318907,3.08115,0.166221, -0.340289,3.08115,0.114619,
+ -0.340289,3.08115,0.114619, -0.340477,3.0348,0.114676, -0.319082,3.0348,0.166306,
+ -0.290295,3.0348,0.213234, -0.290138,3.08115,0.213123, -0.318907,3.08115,0.166221,
+ -0.318907,3.08115,0.166221, -0.319082,3.0348,0.166306, -0.290295,3.0348,0.213234,
+ -0.254788,3.0348,0.254788, -0.254653,3.08115,0.254653, -0.290138,3.08115,0.213123,
+ -0.290138,3.08115,0.213123, -0.290295,3.0348,0.213234, -0.254788,3.0348,0.254788,
+ -0.213234,3.0348,0.290295, -0.213123,3.08115,0.290138, -0.254653,3.08115,0.254653,
+ -0.254653,3.08115,0.254653, -0.254788,3.0348,0.254788, -0.213234,3.0348,0.290295,
+ -0.166306,3.0348,0.319082, -0.166221,3.08115,0.318907, -0.213123,3.08115,0.290138,
+ -0.213123,3.08115,0.290138, -0.213234,3.0348,0.290295, -0.166306,3.0348,0.319082,
+ -0.114676,3.0348,0.340477, -0.114619,3.08115,0.340289, -0.166221,3.08115,0.318907,
+ -0.166221,3.08115,0.318907, -0.166306,3.0348,0.319082, -0.114676,3.0348,0.340477,
+ -0.059016,3.0348,0.353807, -0.058988,3.08115,0.35361, -0.114619,3.08115,0.340289,
+ -0.114619,3.08115,0.340289, -0.114676,3.0348,0.340477, -0.059016,3.0348,0.353807,
+ 0,3.0348,0.3584, 0,3.08115,0.3582, -0.058988,3.08115,0.35361,
+ -0.058988,3.08115,0.35361, -0.059016,3.0348,0.353807, 0,3.0348,0.3584,
+ -0.320834,2.98125,0.053508, -0.353807,3.0348,0.059016, -0.3584,3.0348,0,
+ -0.3584,3.0348,0, -0.325,2.98125,0, -0.320834,2.98125,0.053508,
+ -0.308744,2.98125,0.103976, -0.340477,3.0348,0.114676, -0.353807,3.0348,0.059016,
+ -0.353807,3.0348,0.059016, -0.320834,2.98125,0.053508, -0.308744,2.98125,0.103976,
+ -0.28934,2.98125,0.150793, -0.319082,3.0348,0.166306, -0.340477,3.0348,0.114676,
+ -0.340477,3.0348,0.114676, -0.308744,2.98125,0.103976, -0.28934,2.98125,0.150793,
+ -0.263232,2.98125,0.193348, -0.290295,3.0348,0.213234, -0.319082,3.0348,0.166306,
+ -0.319082,3.0348,0.166306, -0.28934,2.98125,0.150793, -0.263232,2.98125,0.193348,
+ -0.231031,2.98125,0.231031, -0.254788,3.0348,0.254788, -0.290295,3.0348,0.213234,
+ -0.290295,3.0348,0.213234, -0.263232,2.98125,0.193348, -0.231031,2.98125,0.231031,
+ -0.193348,2.98125,0.263232, -0.213234,3.0348,0.290295, -0.254788,3.0348,0.254788,
+ -0.254788,3.0348,0.254788, -0.231031,2.98125,0.231031, -0.193348,2.98125,0.263232,
+ -0.150793,2.98125,0.28934, -0.166306,3.0348,0.319082, -0.213234,3.0348,0.290295,
+ -0.213234,3.0348,0.290295, -0.193348,2.98125,0.263232, -0.150793,2.98125,0.28934,
+ -0.103976,2.98125,0.308744, -0.114676,3.0348,0.340477, -0.166306,3.0348,0.319082,
+ -0.166306,3.0348,0.319082, -0.150793,2.98125,0.28934, -0.103976,2.98125,0.308744,
+ -0.053508,2.98125,0.320834, -0.059016,3.0348,0.353807, -0.114676,3.0348,0.340477,
+ -0.114676,3.0348,0.340477, -0.103976,2.98125,0.308744, -0.053508,2.98125,0.320834,
+ 0,2.98125,0.325, 0,3.0348,0.3584, -0.059016,3.0348,0.353807,
+ -0.059016,3.0348,0.353807, -0.053508,2.98125,0.320834, 0,2.98125,0.325,
+ -0.270092,2.9232,0.045032, -0.320834,2.98125,0.053508, -0.325,2.98125,0,
+ -0.325,2.98125,0, -0.2736,2.9232,0, -0.270092,2.9232,0.045032,
+ -0.25991,2.9232,0.087511, -0.308744,2.98125,0.103976, -0.320834,2.98125,0.053508,
+ -0.320834,2.98125,0.053508, -0.270092,2.9232,0.045032, -0.25991,2.9232,0.087511,
+ -0.243569,2.9232,0.12692, -0.28934,2.98125,0.150793, -0.308744,2.98125,0.103976,
+ -0.308744,2.98125,0.103976, -0.25991,2.9232,0.087511, -0.243569,2.9232,0.12692,
+ -0.221585,2.9232,0.162745, -0.263232,2.98125,0.193348, -0.28934,2.98125,0.150793,
+ -0.28934,2.98125,0.150793, -0.243569,2.9232,0.12692, -0.221585,2.9232,0.162745,
+ -0.194472,2.9232,0.194472, -0.231031,2.98125,0.231031, -0.263232,2.98125,0.193348,
+ -0.263232,2.98125,0.193348, -0.221585,2.9232,0.162745, -0.194472,2.9232,0.194472,
+ -0.162745,2.9232,0.221585, -0.193348,2.98125,0.263232, -0.231031,2.98125,0.231031,
+ -0.231031,2.98125,0.231031, -0.194472,2.9232,0.194472, -0.162745,2.9232,0.221585,
+ -0.12692,2.9232,0.243569, -0.150793,2.98125,0.28934, -0.193348,2.98125,0.263232,
+ -0.193348,2.98125,0.263232, -0.162745,2.9232,0.221585, -0.12692,2.9232,0.243569,
+ -0.087511,2.9232,0.25991, -0.103976,2.98125,0.308744, -0.150793,2.98125,0.28934,
+ -0.150793,2.98125,0.28934, -0.12692,2.9232,0.243569, -0.087511,2.9232,0.25991,
+ -0.045032,2.9232,0.270092, -0.053508,2.98125,0.320834, -0.103976,2.98125,0.308744,
+ -0.103976,2.98125,0.308744, -0.087511,2.9232,0.25991, -0.045032,2.9232,0.270092,
+ 0,2.9232,0.2736, 0,2.98125,0.325, -0.053508,2.98125,0.320834,
+ -0.053508,2.98125,0.320834, -0.045032,2.9232,0.270092, 0,2.9232,0.2736,
+ -0.216979,2.86335,0.036157, -0.270092,2.9232,0.045032, -0.2736,2.9232,0,
+ -0.2736,2.9232,0, -0.2198,2.86335,0, -0.216979,2.86335,0.036157,
+ -0.208794,2.86335,0.07027, -0.25991,2.9232,0.087511, -0.270092,2.9232,0.045032,
+ -0.270092,2.9232,0.045032, -0.216979,2.86335,0.036157, -0.208794,2.86335,0.07027,
+ -0.195658,2.86335,0.101925, -0.243569,2.9232,0.12692, -0.25991,2.9232,0.087511,
+ -0.25991,2.9232,0.087511, -0.208794,2.86335,0.07027, -0.195658,2.86335,0.101925,
+ -0.177989,2.86335,0.130707, -0.221585,2.9232,0.162745, -0.243569,2.9232,0.12692,
+ -0.243569,2.9232,0.12692, -0.195658,2.86335,0.101925, -0.177989,2.86335,0.130707,
+ -0.1562,2.86335,0.1562, -0.194472,2.9232,0.194472, -0.221585,2.9232,0.162745,
+ -0.221585,2.9232,0.162745, -0.177989,2.86335,0.130707, -0.1562,2.86335,0.1562,
+ -0.130707,2.86335,0.177989, -0.162745,2.9232,0.221585, -0.194472,2.9232,0.194472,
+ -0.194472,2.9232,0.194472, -0.1562,2.86335,0.1562, -0.130707,2.86335,0.177989,
+ -0.101925,2.86335,0.195658, -0.12692,2.9232,0.243569, -0.162745,2.9232,0.221585,
+ -0.162745,2.9232,0.221585, -0.130707,2.86335,0.177989, -0.101925,2.86335,0.195658,
+ -0.07027,2.86335,0.208794, -0.087511,2.9232,0.25991, -0.12692,2.9232,0.243569,
+ -0.12692,2.9232,0.243569, -0.101925,2.86335,0.195658, -0.07027,2.86335,0.208794,
+ -0.036157,2.86335,0.216979, -0.045032,2.9232,0.270092, -0.087511,2.9232,0.25991,
+ -0.087511,2.9232,0.25991, -0.07027,2.86335,0.208794, -0.036157,2.86335,0.216979,
+ 0,2.86335,0.2198, 0,2.9232,0.2736, -0.045032,2.9232,0.270092,
+ -0.045032,2.9232,0.270092, -0.036157,2.86335,0.216979, 0,2.86335,0.2198,
+ -0.176897,2.8044,0.02945, -0.216979,2.86335,0.036157, -0.2198,2.86335,0,
+ -0.2198,2.86335,0, -0.1792,2.8044,0, -0.176897,2.8044,0.02945,
+ -0.170215,2.8044,0.057246, -0.208794,2.86335,0.07027, -0.216979,2.86335,0.036157,
+ -0.216979,2.86335,0.036157, -0.176897,2.8044,0.02945, -0.170215,2.8044,0.057246,
+ -0.159496,2.8044,0.083047, -0.195658,2.86335,0.101925, -0.208794,2.86335,0.07027,
+ -0.208794,2.86335,0.07027, -0.170215,2.8044,0.057246, -0.159496,2.8044,0.083047,
+ -0.145078,2.8044,0.106513, -0.177989,2.86335,0.130707, -0.195658,2.86335,0.101925,
+ -0.195658,2.86335,0.101925, -0.159496,2.8044,0.083047, -0.145078,2.8044,0.106513,
+ -0.127304,2.8044,0.127304, -0.1562,2.86335,0.1562, -0.177989,2.86335,0.130707,
+ -0.177989,2.86335,0.130707, -0.145078,2.8044,0.106513, -0.127304,2.8044,0.127304,
+ -0.106513,2.8044,0.145078, -0.130707,2.86335,0.177989, -0.1562,2.86335,0.1562,
+ -0.1562,2.86335,0.1562, -0.127304,2.8044,0.127304, -0.106513,2.8044,0.145078,
+ -0.083047,2.8044,0.159496, -0.101925,2.86335,0.195658, -0.130707,2.86335,0.177989,
+ -0.130707,2.86335,0.177989, -0.106513,2.8044,0.145078, -0.083047,2.8044,0.159496,
+ -0.057246,2.8044,0.170215, -0.07027,2.86335,0.208794, -0.101925,2.86335,0.195658,
+ -0.101925,2.86335,0.195658, -0.083047,2.8044,0.159496, -0.057246,2.8044,0.170215,
+ -0.02945,2.8044,0.176897, -0.036157,2.86335,0.216979, -0.07027,2.86335,0.208794,
+ -0.07027,2.86335,0.208794, -0.057246,2.8044,0.170215, -0.02945,2.8044,0.176897,
+ 0,2.8044,0.1792, 0,2.86335,0.2198, -0.036157,2.86335,0.216979,
+ -0.036157,2.86335,0.216979, -0.02945,2.8044,0.176897, 0,2.8044,0.1792,
+ -0.165245,2.74905,0.02748, -0.176897,2.8044,0.02945, -0.1792,2.8044,0,
+ -0.1792,2.8044,0, -0.1674,2.74905,0, -0.165245,2.74905,0.02748,
+ -0.158995,2.74905,0.053428, -0.170215,2.8044,0.057246, -0.176897,2.8044,0.02945,
+ -0.176897,2.8044,0.02945, -0.165245,2.74905,0.02748, -0.158995,2.74905,0.053428,
+ -0.148969,2.74905,0.077523, -0.159496,2.8044,0.083047, -0.170215,2.8044,0.057246,
+ -0.170215,2.8044,0.057246, -0.158995,2.74905,0.053428, -0.148969,2.74905,0.077523,
+ -0.135489,2.74905,0.099446, -0.145078,2.8044,0.106513, -0.159496,2.8044,0.083047,
+ -0.159496,2.8044,0.083047, -0.148969,2.74905,0.077523, -0.135489,2.74905,0.099446,
+ -0.118874,2.74905,0.118874, -0.127304,2.8044,0.127304, -0.145078,2.8044,0.106513,
+ -0.145078,2.8044,0.106513, -0.135489,2.74905,0.099446, -0.118874,2.74905,0.118874,
+ -0.099446,2.74905,0.135489, -0.106513,2.8044,0.145078, -0.127304,2.8044,0.127304,
+ -0.127304,2.8044,0.127304, -0.118874,2.74905,0.118874, -0.099446,2.74905,0.135489,
+ -0.077523,2.74905,0.148969, -0.083047,2.8044,0.159496, -0.106513,2.8044,0.145078,
+ -0.106513,2.8044,0.145078, -0.099446,2.74905,0.135489, -0.077523,2.74905,0.148969,
+ -0.053428,2.74905,0.158995, -0.057246,2.8044,0.170215, -0.083047,2.8044,0.159496,
+ -0.083047,2.8044,0.159496, -0.077523,2.74905,0.148969, -0.053428,2.74905,0.158995,
+ -0.02748,2.74905,0.165245, -0.02945,2.8044,0.176897, -0.057246,2.8044,0.170215,
+ -0.057246,2.8044,0.170215, -0.053428,2.74905,0.158995, -0.02748,2.74905,0.165245,
+ 0,2.74905,0.1674, 0,2.8044,0.1792, -0.02945,2.8044,0.176897,
+ -0.02945,2.8044,0.176897, -0.02748,2.74905,0.165245, 0,2.74905,0.1674,
+ -0.197424,2.7,0.032816, -0.165245,2.74905,0.02748, -0.1674,2.74905,0,
+ -0.1674,2.74905,0, -0.2,2.7,0, -0.197424,2.7,0.032816,
+ -0.189952,2.7,0.063808, -0.158995,2.74905,0.053428, -0.165245,2.74905,0.02748,
+ -0.165245,2.74905,0.02748, -0.197424,2.7,0.032816, -0.189952,2.7,0.063808,
+ -0.177968,2.7,0.092592, -0.148969,2.74905,0.077523, -0.158995,2.74905,0.053428,
+ -0.158995,2.74905,0.053428, -0.189952,2.7,0.063808, -0.177968,2.7,0.092592,
+ -0.161856,2.7,0.118784, -0.135489,2.74905,0.099446, -0.148969,2.74905,0.077523,
+ -0.148969,2.74905,0.077523, -0.177968,2.7,0.092592, -0.161856,2.7,0.118784,
+ -0.142,2.7,0.142, -0.118874,2.74905,0.118874, -0.135489,2.74905,0.099446,
+ -0.135489,2.74905,0.099446, -0.161856,2.7,0.118784, -0.142,2.7,0.142,
+ -0.118784,2.7,0.161856, -0.099446,2.74905,0.135489, -0.118874,2.74905,0.118874,
+ -0.118874,2.74905,0.118874, -0.142,2.7,0.142, -0.118784,2.7,0.161856,
+ -0.092592,2.7,0.177968, -0.077523,2.74905,0.148969, -0.099446,2.74905,0.135489,
+ -0.099446,2.74905,0.135489, -0.118784,2.7,0.161856, -0.092592,2.7,0.177968,
+ -0.063808,2.7,0.189952, -0.053428,2.74905,0.158995, -0.077523,2.74905,0.148969,
+ -0.077523,2.74905,0.148969, -0.092592,2.7,0.177968, -0.063808,2.7,0.189952,
+ -0.032816,2.7,0.197424, -0.02748,2.74905,0.165245, -0.053428,2.74905,0.158995,
+ -0.053428,2.74905,0.158995, -0.063808,2.7,0.189952, -0.032816,2.7,0.197424,
+ 0,2.7,0.2, 0,2.74905,0.1674, -0.02748,2.74905,0.165245,
+ -0.02748,2.74905,0.165245, -0.032816,2.7,0.197424, 0,2.7,0.2,
+ 0,3.15,0, 0,3.14145,0.1946, 0.032048,3.14145,0.192107,
+ 0,3.15,0, 0.032048,3.14145,0.192107, 0.062272,3.14145,0.18487,
+ 0,3.15,0, 0.062272,3.14145,0.18487, 0.090306,3.14145,0.173255,
+ 0,3.15,0, 0.090306,3.14145,0.173255, 0.115787,3.14145,0.157626,
+ 0,3.15,0, 0.115787,3.14145,0.157626, 0.138348,3.14145,0.138348,
+ 0,3.15,0, 0.138348,3.14145,0.138348, 0.157626,3.14145,0.115787,
+ 0,3.15,0, 0.157626,3.14145,0.115787, 0.173255,3.14145,0.090306,
+ 0,3.15,0, 0.173255,3.14145,0.090306, 0.18487,3.14145,0.062272,
+ 0,3.15,0, 0.18487,3.14145,0.062272, 0.192107,3.14145,0.032048,
+ 0,3.15,0, 0.192107,3.14145,0.032048, 0.1946,3.14145,0,
+ 0.050855,3.1176,0.304843, 0.032048,3.14145,0.192107, 0,3.14145,0.1946,
+ 0,3.14145,0.1946, 0,3.1176,0.3088, 0.050855,3.1176,0.304843,
+ 0.098814,3.1176,0.29336, 0.062272,3.14145,0.18487, 0.032048,3.14145,0.192107,
+ 0.032048,3.14145,0.192107, 0.050855,3.1176,0.304843, 0.098814,3.1176,0.29336,
+ 0.143301,3.1176,0.274928, 0.090306,3.14145,0.173255, 0.062272,3.14145,0.18487,
+ 0.062272,3.14145,0.18487, 0.098814,3.1176,0.29336, 0.143301,3.1176,0.274928,
+ 0.183734,3.1176,0.250127, 0.115787,3.14145,0.157626, 0.090306,3.14145,0.173255,
+ 0.090306,3.14145,0.173255, 0.143301,3.1176,0.274928, 0.183734,3.1176,0.250127,
+ 0.219536,3.1176,0.219536, 0.138348,3.14145,0.138348, 0.115787,3.14145,0.157626,
+ 0.115787,3.14145,0.157626, 0.183734,3.1176,0.250127, 0.219536,3.1176,0.219536,
+ 0.250127,3.1176,0.183734, 0.157626,3.14145,0.115787, 0.138348,3.14145,0.138348,
+ 0.138348,3.14145,0.138348, 0.219536,3.1176,0.219536, 0.250127,3.1176,0.183734,
+ 0.274928,3.1176,0.143301, 0.173255,3.14145,0.090306, 0.157626,3.14145,0.115787,
+ 0.157626,3.14145,0.115787, 0.250127,3.1176,0.183734, 0.274928,3.1176,0.143301,
+ 0.29336,3.1176,0.098814, 0.18487,3.14145,0.062272, 0.173255,3.14145,0.090306,
+ 0.173255,3.14145,0.090306, 0.274928,3.1176,0.143301, 0.29336,3.1176,0.098814,
+ 0.304843,3.1176,0.050855, 0.192107,3.14145,0.032048, 0.18487,3.14145,0.062272,
+ 0.18487,3.14145,0.062272, 0.29336,3.1176,0.098814, 0.304843,3.1176,0.050855,
+ 0.3088,3.1176,0, 0.1946,3.14145,0, 0.192107,3.14145,0.032048,
+ 0.192107,3.14145,0.032048, 0.304843,3.1176,0.050855, 0.3088,3.1176,0,
+ 0.058988,3.08115,0.35361, 0.050855,3.1176,0.304843, 0,3.1176,0.3088,
+ 0,3.1176,0.3088, 0,3.08115,0.3582, 0.058988,3.08115,0.35361,
+ 0.114619,3.08115,0.340289, 0.098814,3.1176,0.29336, 0.050855,3.1176,0.304843,
+ 0.050855,3.1176,0.304843, 0.058988,3.08115,0.35361, 0.114619,3.08115,0.340289,
+ 0.166221,3.08115,0.318907, 0.143301,3.1176,0.274928, 0.098814,3.1176,0.29336,
+ 0.098814,3.1176,0.29336, 0.114619,3.08115,0.340289, 0.166221,3.08115,0.318907,
+ 0.213123,3.08115,0.290138, 0.183734,3.1176,0.250127, 0.143301,3.1176,0.274928,
+ 0.143301,3.1176,0.274928, 0.166221,3.08115,0.318907, 0.213123,3.08115,0.290138,
+ 0.254653,3.08115,0.254653, 0.219536,3.1176,0.219536, 0.183734,3.1176,0.250127,
+ 0.183734,3.1176,0.250127, 0.213123,3.08115,0.290138, 0.254653,3.08115,0.254653,
+ 0.290138,3.08115,0.213123, 0.250127,3.1176,0.183734, 0.219536,3.1176,0.219536,
+ 0.219536,3.1176,0.219536, 0.254653,3.08115,0.254653, 0.290138,3.08115,0.213123,
+ 0.318907,3.08115,0.166221, 0.274928,3.1176,0.143301, 0.250127,3.1176,0.183734,
+ 0.250127,3.1176,0.183734, 0.290138,3.08115,0.213123, 0.318907,3.08115,0.166221,
+ 0.340289,3.08115,0.114619, 0.29336,3.1176,0.098814, 0.274928,3.1176,0.143301,
+ 0.274928,3.1176,0.143301, 0.318907,3.08115,0.166221, 0.340289,3.08115,0.114619,
+ 0.35361,3.08115,0.058988, 0.304843,3.1176,0.050855, 0.29336,3.1176,0.098814,
+ 0.29336,3.1176,0.098814, 0.340289,3.08115,0.114619, 0.35361,3.08115,0.058988,
+ 0.3582,3.08115,0, 0.3088,3.1176,0, 0.304843,3.1176,0.050855,
+ 0.304843,3.1176,0.050855, 0.35361,3.08115,0.058988, 0.3582,3.08115,0,
+ 0.059016,3.0348,0.353807, 0.058988,3.08115,0.35361, 0,3.08115,0.3582,
+ 0,3.08115,0.3582, 0,3.0348,0.3584, 0.059016,3.0348,0.353807,
+ 0.114676,3.0348,0.340477, 0.114619,3.08115,0.340289, 0.058988,3.08115,0.35361,
+ 0.058988,3.08115,0.35361, 0.059016,3.0348,0.353807, 0.114676,3.0348,0.340477,
+ 0.166306,3.0348,0.319082, 0.166221,3.08115,0.318907, 0.114619,3.08115,0.340289,
+ 0.114619,3.08115,0.340289, 0.114676,3.0348,0.340477, 0.166306,3.0348,0.319082,
+ 0.213234,3.0348,0.290295, 0.213123,3.08115,0.290138, 0.166221,3.08115,0.318907,
+ 0.166221,3.08115,0.318907, 0.166306,3.0348,0.319082, 0.213234,3.0348,0.290295,
+ 0.254788,3.0348,0.254788, 0.254653,3.08115,0.254653, 0.213123,3.08115,0.290138,
+ 0.213123,3.08115,0.290138, 0.213234,3.0348,0.290295, 0.254788,3.0348,0.254788,
+ 0.290295,3.0348,0.213234, 0.290138,3.08115,0.213123, 0.254653,3.08115,0.254653,
+ 0.254653,3.08115,0.254653, 0.254788,3.0348,0.254788, 0.290295,3.0348,0.213234,
+ 0.319082,3.0348,0.166306, 0.318907,3.08115,0.166221, 0.290138,3.08115,0.213123,
+ 0.290138,3.08115,0.213123, 0.290295,3.0348,0.213234, 0.319082,3.0348,0.166306,
+ 0.340477,3.0348,0.114676, 0.340289,3.08115,0.114619, 0.318907,3.08115,0.166221,
+ 0.318907,3.08115,0.166221, 0.319082,3.0348,0.166306, 0.340477,3.0348,0.114676,
+ 0.353807,3.0348,0.059016, 0.35361,3.08115,0.058988, 0.340289,3.08115,0.114619,
+ 0.340289,3.08115,0.114619, 0.340477,3.0348,0.114676, 0.353807,3.0348,0.059016,
+ 0.3584,3.0348,0, 0.3582,3.08115,0, 0.35361,3.08115,0.058988,
+ 0.35361,3.08115,0.058988, 0.353807,3.0348,0.059016, 0.3584,3.0348,0,
+ 0.053508,2.98125,0.320834, 0.059016,3.0348,0.353807, 0,3.0348,0.3584,
+ 0,3.0348,0.3584, 0,2.98125,0.325, 0.053508,2.98125,0.320834,
+ 0.103976,2.98125,0.308744, 0.114676,3.0348,0.340477, 0.059016,3.0348,0.353807,
+ 0.059016,3.0348,0.353807, 0.053508,2.98125,0.320834, 0.103976,2.98125,0.308744,
+ 0.150793,2.98125,0.28934, 0.166306,3.0348,0.319082, 0.114676,3.0348,0.340477,
+ 0.114676,3.0348,0.340477, 0.103976,2.98125,0.308744, 0.150793,2.98125,0.28934,
+ 0.193348,2.98125,0.263232, 0.213234,3.0348,0.290295, 0.166306,3.0348,0.319082,
+ 0.166306,3.0348,0.319082, 0.150793,2.98125,0.28934, 0.193348,2.98125,0.263232,
+ 0.231031,2.98125,0.231031, 0.254788,3.0348,0.254788, 0.213234,3.0348,0.290295,
+ 0.213234,3.0348,0.290295, 0.193348,2.98125,0.263232, 0.231031,2.98125,0.231031,
+ 0.263232,2.98125,0.193348, 0.290295,3.0348,0.213234, 0.254788,3.0348,0.254788,
+ 0.254788,3.0348,0.254788, 0.231031,2.98125,0.231031, 0.263232,2.98125,0.193348,
+ 0.28934,2.98125,0.150793, 0.319082,3.0348,0.166306, 0.290295,3.0348,0.213234,
+ 0.290295,3.0348,0.213234, 0.263232,2.98125,0.193348, 0.28934,2.98125,0.150793,
+ 0.308744,2.98125,0.103976, 0.340477,3.0348,0.114676, 0.319082,3.0348,0.166306,
+ 0.319082,3.0348,0.166306, 0.28934,2.98125,0.150793, 0.308744,2.98125,0.103976,
+ 0.320834,2.98125,0.053508, 0.353807,3.0348,0.059016, 0.340477,3.0348,0.114676,
+ 0.340477,3.0348,0.114676, 0.308744,2.98125,0.103976, 0.320834,2.98125,0.053508,
+ 0.325,2.98125,0, 0.3584,3.0348,0, 0.353807,3.0348,0.059016,
+ 0.353807,3.0348,0.059016, 0.320834,2.98125,0.053508, 0.325,2.98125,0,
+ 0.045032,2.9232,0.270092, 0.053508,2.98125,0.320834, 0,2.98125,0.325,
+ 0,2.98125,0.325, 0,2.9232,0.2736, 0.045032,2.9232,0.270092,
+ 0.087511,2.9232,0.25991, 0.103976,2.98125,0.308744, 0.053508,2.98125,0.320834,
+ 0.053508,2.98125,0.320834, 0.045032,2.9232,0.270092, 0.087511,2.9232,0.25991,
+ 0.12692,2.9232,0.243569, 0.150793,2.98125,0.28934, 0.103976,2.98125,0.308744,
+ 0.103976,2.98125,0.308744, 0.087511,2.9232,0.25991, 0.12692,2.9232,0.243569,
+ 0.162745,2.9232,0.221585, 0.193348,2.98125,0.263232, 0.150793,2.98125,0.28934,
+ 0.150793,2.98125,0.28934, 0.12692,2.9232,0.243569, 0.162745,2.9232,0.221585,
+ 0.194472,2.9232,0.194472, 0.231031,2.98125,0.231031, 0.193348,2.98125,0.263232,
+ 0.193348,2.98125,0.263232, 0.162745,2.9232,0.221585, 0.194472,2.9232,0.194472,
+ 0.221585,2.9232,0.162745, 0.263232,2.98125,0.193348, 0.231031,2.98125,0.231031,
+ 0.231031,2.98125,0.231031, 0.194472,2.9232,0.194472, 0.221585,2.9232,0.162745,
+ 0.243569,2.9232,0.12692, 0.28934,2.98125,0.150793, 0.263232,2.98125,0.193348,
+ 0.263232,2.98125,0.193348, 0.221585,2.9232,0.162745, 0.243569,2.9232,0.12692,
+ 0.25991,2.9232,0.087511, 0.308744,2.98125,0.103976, 0.28934,2.98125,0.150793,
+ 0.28934,2.98125,0.150793, 0.243569,2.9232,0.12692, 0.25991,2.9232,0.087511,
+ 0.270092,2.9232,0.045032, 0.320834,2.98125,0.053508, 0.308744,2.98125,0.103976,
+ 0.308744,2.98125,0.103976, 0.25991,2.9232,0.087511, 0.270092,2.9232,0.045032,
+ 0.2736,2.9232,0, 0.325,2.98125,0, 0.320834,2.98125,0.053508,
+ 0.320834,2.98125,0.053508, 0.270092,2.9232,0.045032, 0.2736,2.9232,0,
+ 0.036157,2.86335,0.216979, 0.045032,2.9232,0.270092, 0,2.9232,0.2736,
+ 0,2.9232,0.2736, 0,2.86335,0.2198, 0.036157,2.86335,0.216979,
+ 0.07027,2.86335,0.208794, 0.087511,2.9232,0.25991, 0.045032,2.9232,0.270092,
+ 0.045032,2.9232,0.270092, 0.036157,2.86335,0.216979, 0.07027,2.86335,0.208794,
+ 0.101925,2.86335,0.195658, 0.12692,2.9232,0.243569, 0.087511,2.9232,0.25991,
+ 0.087511,2.9232,0.25991, 0.07027,2.86335,0.208794, 0.101925,2.86335,0.195658,
+ 0.130707,2.86335,0.177989, 0.162745,2.9232,0.221585, 0.12692,2.9232,0.243569,
+ 0.12692,2.9232,0.243569, 0.101925,2.86335,0.195658, 0.130707,2.86335,0.177989,
+ 0.1562,2.86335,0.1562, 0.194472,2.9232,0.194472, 0.162745,2.9232,0.221585,
+ 0.162745,2.9232,0.221585, 0.130707,2.86335,0.177989, 0.1562,2.86335,0.1562,
+ 0.177989,2.86335,0.130707, 0.221585,2.9232,0.162745, 0.194472,2.9232,0.194472,
+ 0.194472,2.9232,0.194472, 0.1562,2.86335,0.1562, 0.177989,2.86335,0.130707,
+ 0.195658,2.86335,0.101925, 0.243569,2.9232,0.12692, 0.221585,2.9232,0.162745,
+ 0.221585,2.9232,0.162745, 0.177989,2.86335,0.130707, 0.195658,2.86335,0.101925,
+ 0.208794,2.86335,0.07027, 0.25991,2.9232,0.087511, 0.243569,2.9232,0.12692,
+ 0.243569,2.9232,0.12692, 0.195658,2.86335,0.101925, 0.208794,2.86335,0.07027,
+ 0.216979,2.86335,0.036157, 0.270092,2.9232,0.045032, 0.25991,2.9232,0.087511,
+ 0.25991,2.9232,0.087511, 0.208794,2.86335,0.07027, 0.216979,2.86335,0.036157,
+ 0.2198,2.86335,0, 0.2736,2.9232,0, 0.270092,2.9232,0.045032,
+ 0.270092,2.9232,0.045032, 0.216979,2.86335,0.036157, 0.2198,2.86335,0,
+ 0.02945,2.8044,0.176897, 0.036157,2.86335,0.216979, 0,2.86335,0.2198,
+ 0,2.86335,0.2198, 0,2.8044,0.1792, 0.02945,2.8044,0.176897,
+ 0.057246,2.8044,0.170215, 0.07027,2.86335,0.208794, 0.036157,2.86335,0.216979,
+ 0.036157,2.86335,0.216979, 0.02945,2.8044,0.176897, 0.057246,2.8044,0.170215,
+ 0.083047,2.8044,0.159496, 0.101925,2.86335,0.195658, 0.07027,2.86335,0.208794,
+ 0.07027,2.86335,0.208794, 0.057246,2.8044,0.170215, 0.083047,2.8044,0.159496,
+ 0.106513,2.8044,0.145078, 0.130707,2.86335,0.177989, 0.101925,2.86335,0.195658,
+ 0.101925,2.86335,0.195658, 0.083047,2.8044,0.159496, 0.106513,2.8044,0.145078,
+ 0.127304,2.8044,0.127304, 0.1562,2.86335,0.1562, 0.130707,2.86335,0.177989,
+ 0.130707,2.86335,0.177989, 0.106513,2.8044,0.145078, 0.127304,2.8044,0.127304,
+ 0.145078,2.8044,0.106513, 0.177989,2.86335,0.130707, 0.1562,2.86335,0.1562,
+ 0.1562,2.86335,0.1562, 0.127304,2.8044,0.127304, 0.145078,2.8044,0.106513,
+ 0.159496,2.8044,0.083047, 0.195658,2.86335,0.101925, 0.177989,2.86335,0.130707,
+ 0.177989,2.86335,0.130707, 0.145078,2.8044,0.106513, 0.159496,2.8044,0.083047,
+ 0.170215,2.8044,0.057246, 0.208794,2.86335,0.07027, 0.195658,2.86335,0.101925,
+ 0.195658,2.86335,0.101925, 0.159496,2.8044,0.083047, 0.170215,2.8044,0.057246,
+ 0.176897,2.8044,0.02945, 0.216979,2.86335,0.036157, 0.208794,2.86335,0.07027,
+ 0.208794,2.86335,0.07027, 0.170215,2.8044,0.057246, 0.176897,2.8044,0.02945,
+ 0.1792,2.8044,0, 0.2198,2.86335,0, 0.216979,2.86335,0.036157,
+ 0.216979,2.86335,0.036157, 0.176897,2.8044,0.02945, 0.1792,2.8044,0,
+ 0.02748,2.74905,0.165245, 0.02945,2.8044,0.176897, 0,2.8044,0.1792,
+ 0,2.8044,0.1792, 0,2.74905,0.1674, 0.02748,2.74905,0.165245,
+ 0.053428,2.74905,0.158995, 0.057246,2.8044,0.170215, 0.02945,2.8044,0.176897,
+ 0.02945,2.8044,0.176897, 0.02748,2.74905,0.165245, 0.053428,2.74905,0.158995,
+ 0.077523,2.74905,0.148969, 0.083047,2.8044,0.159496, 0.057246,2.8044,0.170215,
+ 0.057246,2.8044,0.170215, 0.053428,2.74905,0.158995, 0.077523,2.74905,0.148969,
+ 0.099446,2.74905,0.135489, 0.106513,2.8044,0.145078, 0.083047,2.8044,0.159496,
+ 0.083047,2.8044,0.159496, 0.077523,2.74905,0.148969, 0.099446,2.74905,0.135489,
+ 0.118874,2.74905,0.118874, 0.127304,2.8044,0.127304, 0.106513,2.8044,0.145078,
+ 0.106513,2.8044,0.145078, 0.099446,2.74905,0.135489, 0.118874,2.74905,0.118874,
+ 0.135489,2.74905,0.099446, 0.145078,2.8044,0.106513, 0.127304,2.8044,0.127304,
+ 0.127304,2.8044,0.127304, 0.118874,2.74905,0.118874, 0.135489,2.74905,0.099446,
+ 0.148969,2.74905,0.077523, 0.159496,2.8044,0.083047, 0.145078,2.8044,0.106513,
+ 0.145078,2.8044,0.106513, 0.135489,2.74905,0.099446, 0.148969,2.74905,0.077523,
+ 0.158995,2.74905,0.053428, 0.170215,2.8044,0.057246, 0.159496,2.8044,0.083047,
+ 0.159496,2.8044,0.083047, 0.148969,2.74905,0.077523, 0.158995,2.74905,0.053428,
+ 0.165245,2.74905,0.02748, 0.176897,2.8044,0.02945, 0.170215,2.8044,0.057246,
+ 0.170215,2.8044,0.057246, 0.158995,2.74905,0.053428, 0.165245,2.74905,0.02748,
+ 0.1674,2.74905,0, 0.1792,2.8044,0, 0.176897,2.8044,0.02945,
+ 0.176897,2.8044,0.02945, 0.165245,2.74905,0.02748, 0.1674,2.74905,0,
+ 0.032816,2.7,0.197424, 0.02748,2.74905,0.165245, 0,2.74905,0.1674,
+ 0,2.74905,0.1674, 0,2.7,0.2, 0.032816,2.7,0.197424,
+ 0.063808,2.7,0.189952, 0.053428,2.74905,0.158995, 0.02748,2.74905,0.165245,
+ 0.02748,2.74905,0.165245, 0.032816,2.7,0.197424, 0.063808,2.7,0.189952,
+ 0.092592,2.7,0.177968, 0.077523,2.74905,0.148969, 0.053428,2.74905,0.158995,
+ 0.053428,2.74905,0.158995, 0.063808,2.7,0.189952, 0.092592,2.7,0.177968,
+ 0.118784,2.7,0.161856, 0.099446,2.74905,0.135489, 0.077523,2.74905,0.148969,
+ 0.077523,2.74905,0.148969, 0.092592,2.7,0.177968, 0.118784,2.7,0.161856,
+ 0.142,2.7,0.142, 0.118874,2.74905,0.118874, 0.099446,2.74905,0.135489,
+ 0.099446,2.74905,0.135489, 0.118784,2.7,0.161856, 0.142,2.7,0.142,
+ 0.161856,2.7,0.118784, 0.135489,2.74905,0.099446, 0.118874,2.74905,0.118874,
+ 0.118874,2.74905,0.118874, 0.142,2.7,0.142, 0.161856,2.7,0.118784,
+ 0.177968,2.7,0.092592, 0.148969,2.74905,0.077523, 0.135489,2.74905,0.099446,
+ 0.135489,2.74905,0.099446, 0.161856,2.7,0.118784, 0.177968,2.7,0.092592,
+ 0.189952,2.7,0.063808, 0.158995,2.74905,0.053428, 0.148969,2.74905,0.077523,
+ 0.148969,2.74905,0.077523, 0.177968,2.7,0.092592, 0.189952,2.7,0.063808,
+ 0.197424,2.7,0.032816, 0.165245,2.74905,0.02748, 0.158995,2.74905,0.053428,
+ 0.158995,2.74905,0.053428, 0.189952,2.7,0.063808, 0.197424,2.7,0.032816,
+ 0.2,2.7,0, 0.1674,2.74905,0, 0.165245,2.74905,0.02748,
+ 0.165245,2.74905,0.02748, 0.197424,2.7,0.032816, 0.2,2.7,0,
+ 0.275801,2.6592,-0.045844, 0.197424,2.7,-0.032816, 0.2,2.7,0,
+ 0.2,2.7,0, 0.2794,2.6592,0, 0.275801,2.6592,-0.045844,
+ 0.265363,2.6592,-0.08914, 0.189952,2.7,-0.063808, 0.197424,2.7,-0.032816,
+ 0.197424,2.7,-0.032816, 0.275801,2.6592,-0.045844, 0.265363,2.6592,-0.08914,
+ 0.248621,2.6592,-0.129351, 0.177968,2.7,-0.092592, 0.189952,2.7,-0.063808,
+ 0.189952,2.7,-0.063808, 0.265363,2.6592,-0.08914, 0.248621,2.6592,-0.129351,
+ 0.226113,2.6592,-0.165941, 0.161856,2.7,-0.118784, 0.177968,2.7,-0.092592,
+ 0.177968,2.7,-0.092592, 0.248621,2.6592,-0.129351, 0.226113,2.6592,-0.165941,
+ 0.198374,2.6592,-0.198374, 0.142,2.7,-0.142, 0.161856,2.7,-0.118784,
+ 0.161856,2.7,-0.118784, 0.226113,2.6592,-0.165941, 0.198374,2.6592,-0.198374,
+ 0.165941,2.6592,-0.226113, 0.118784,2.7,-0.161856, 0.142,2.7,-0.142,
+ 0.142,2.7,-0.142, 0.198374,2.6592,-0.198374, 0.165941,2.6592,-0.226113,
+ 0.129351,2.6592,-0.248621, 0.092592,2.7,-0.177968, 0.118784,2.7,-0.161856,
+ 0.118784,2.7,-0.161856, 0.165941,2.6592,-0.226113, 0.129351,2.6592,-0.248621,
+ 0.08914,2.6592,-0.265363, 0.063808,2.7,-0.189952, 0.092592,2.7,-0.177968,
+ 0.092592,2.7,-0.177968, 0.129351,2.6592,-0.248621, 0.08914,2.6592,-0.265363,
+ 0.045844,2.6592,-0.275801, 0.032816,2.7,-0.197424, 0.063808,2.7,-0.189952,
+ 0.063808,2.7,-0.189952, 0.08914,2.6592,-0.265363, 0.045844,2.6592,-0.275801,
+ 0,2.6592,-0.2794, 0,2.7,-0.2, 0.032816,2.7,-0.197424,
+ 0.032816,2.7,-0.197424, 0.045844,2.6592,-0.275801, 0,2.6592,-0.2794,
+ 0.386161,2.6256,-0.064188, 0.275801,2.6592,-0.045844, 0.2794,2.6592,0,
+ 0.2794,2.6592,0, 0.3912,2.6256,0, 0.386161,2.6256,-0.064188,
+ 0.371546,2.6256,-0.124808, 0.265363,2.6592,-0.08914, 0.275801,2.6592,-0.045844,
+ 0.275801,2.6592,-0.045844, 0.386161,2.6256,-0.064188, 0.371546,2.6256,-0.124808,
+ 0.348105,2.6256,-0.18111, 0.248621,2.6592,-0.129351, 0.265363,2.6592,-0.08914,
+ 0.265363,2.6592,-0.08914, 0.371546,2.6256,-0.124808, 0.348105,2.6256,-0.18111,
+ 0.31659,2.6256,-0.232342, 0.226113,2.6592,-0.165941, 0.248621,2.6592,-0.129351,
+ 0.248621,2.6592,-0.129351, 0.348105,2.6256,-0.18111, 0.31659,2.6256,-0.232342,
+ 0.277752,2.6256,-0.277752, 0.198374,2.6592,-0.198374, 0.226113,2.6592,-0.165941,
+ 0.226113,2.6592,-0.165941, 0.31659,2.6256,-0.232342, 0.277752,2.6256,-0.277752,
+ 0.232342,2.6256,-0.31659, 0.165941,2.6592,-0.226113, 0.198374,2.6592,-0.198374,
+ 0.198374,2.6592,-0.198374, 0.277752,2.6256,-0.277752, 0.232342,2.6256,-0.31659,
+ 0.18111,2.6256,-0.348105, 0.129351,2.6592,-0.248621, 0.165941,2.6592,-0.226113,
+ 0.165941,2.6592,-0.226113, 0.232342,2.6256,-0.31659, 0.18111,2.6256,-0.348105,
+ 0.124808,2.6256,-0.371546, 0.08914,2.6592,-0.265363, 0.129351,2.6592,-0.248621,
+ 0.129351,2.6592,-0.248621, 0.18111,2.6256,-0.348105, 0.124808,2.6256,-0.371546,
+ 0.064188,2.6256,-0.386161, 0.045844,2.6592,-0.275801, 0.08914,2.6592,-0.265363,
+ 0.08914,2.6592,-0.265363, 0.124808,2.6256,-0.371546, 0.064188,2.6256,-0.386161,
+ 0,2.6256,-0.3912, 0,2.6592,-0.2794, 0.045844,2.6592,-0.275801,
+ 0.045844,2.6592,-0.275801, 0.064188,2.6256,-0.386161, 0,2.6256,-0.3912,
+ 0.519028,2.5974,-0.086273, 0.386161,2.6256,-0.064188, 0.3912,2.6256,0,
+ 0.3912,2.6256,0, 0.5258,2.5974,0, 0.519028,2.5974,-0.086273,
+ 0.499384,2.5974,-0.167751, 0.371546,2.6256,-0.124808, 0.386161,2.6256,-0.064188,
+ 0.386161,2.6256,-0.064188, 0.519028,2.5974,-0.086273, 0.499384,2.5974,-0.167751,
+ 0.467878,2.5974,-0.243424, 0.348105,2.6256,-0.18111, 0.371546,2.6256,-0.124808,
+ 0.371546,2.6256,-0.124808, 0.499384,2.5974,-0.167751, 0.467878,2.5974,-0.243424,
+ 0.425519,2.5974,-0.312283, 0.31659,2.6256,-0.232342, 0.348105,2.6256,-0.18111,
+ 0.348105,2.6256,-0.18111, 0.467878,2.5974,-0.243424, 0.425519,2.5974,-0.312283,
+ 0.373318,2.5974,-0.373318, 0.277752,2.6256,-0.277752, 0.31659,2.6256,-0.232342,
+ 0.31659,2.6256,-0.232342, 0.425519,2.5974,-0.312283, 0.373318,2.5974,-0.373318,
+ 0.312283,2.5974,-0.425519, 0.232342,2.6256,-0.31659, 0.277752,2.6256,-0.277752,
+ 0.277752,2.6256,-0.277752, 0.373318,2.5974,-0.373318, 0.312283,2.5974,-0.425519,
+ 0.243424,2.5974,-0.467878, 0.18111,2.6256,-0.348105, 0.232342,2.6256,-0.31659,
+ 0.232342,2.6256,-0.31659, 0.312283,2.5974,-0.425519, 0.243424,2.5974,-0.467878,
+ 0.167751,2.5974,-0.499384, 0.124808,2.6256,-0.371546, 0.18111,2.6256,-0.348105,
+ 0.18111,2.6256,-0.348105, 0.243424,2.5974,-0.467878, 0.167751,2.5974,-0.499384,
+ 0.086273,2.5974,-0.519028, 0.064188,2.6256,-0.386161, 0.124808,2.6256,-0.371546,
+ 0.124808,2.6256,-0.371546, 0.167751,2.5974,-0.499384, 0.086273,2.5974,-0.519028,
+ 0,2.5974,-0.5258, 0,2.6256,-0.3912, 0.064188,2.6256,-0.386161,
+ 0.064188,2.6256,-0.386161, 0.086273,2.5974,-0.519028, 0,2.5974,-0.5258,
+ 0.664924,2.5728,-0.110524, 0.519028,2.5974,-0.086273, 0.5258,2.5974,0,
+ 0.5258,2.5974,0, 0.6736,2.5728,0, 0.664924,2.5728,-0.110524,
+ 0.639758,2.5728,-0.214905, 0.499384,2.5974,-0.167751, 0.519028,2.5974,-0.086273,
+ 0.519028,2.5974,-0.086273, 0.664924,2.5728,-0.110524, 0.639758,2.5728,-0.214905,
+ 0.599396,2.5728,-0.31185, 0.467878,2.5974,-0.243424, 0.499384,2.5974,-0.167751,
+ 0.499384,2.5974,-0.167751, 0.639758,2.5728,-0.214905, 0.599396,2.5728,-0.31185,
+ 0.545131,2.5728,-0.400065, 0.425519,2.5974,-0.312283, 0.467878,2.5974,-0.243424,
+ 0.467878,2.5974,-0.243424, 0.599396,2.5728,-0.31185, 0.545131,2.5728,-0.400065,
+ 0.478256,2.5728,-0.478256, 0.373318,2.5974,-0.373318, 0.425519,2.5974,-0.312283,
+ 0.425519,2.5974,-0.312283, 0.545131,2.5728,-0.400065, 0.478256,2.5728,-0.478256,
+ 0.400065,2.5728,-0.545131, 0.312283,2.5974,-0.425519, 0.373318,2.5974,-0.373318,
+ 0.373318,2.5974,-0.373318, 0.478256,2.5728,-0.478256, 0.400065,2.5728,-0.545131,
+ 0.31185,2.5728,-0.599396, 0.243424,2.5974,-0.467878, 0.312283,2.5974,-0.425519,
+ 0.312283,2.5974,-0.425519, 0.400065,2.5728,-0.545131, 0.31185,2.5728,-0.599396,
+ 0.214905,2.5728,-0.639758, 0.167751,2.5974,-0.499384, 0.243424,2.5974,-0.467878,
+ 0.243424,2.5974,-0.467878, 0.31185,2.5728,-0.599396, 0.214905,2.5728,-0.639758,
+ 0.110524,2.5728,-0.664924, 0.086273,2.5974,-0.519028, 0.167751,2.5974,-0.499384,
+ 0.167751,2.5974,-0.499384, 0.214905,2.5728,-0.639758, 0.110524,2.5728,-0.664924,
+ 0,2.5728,-0.6736, 0,2.5974,-0.5258, 0.086273,2.5974,-0.519028,
+ 0.086273,2.5974,-0.519028, 0.110524,2.5728,-0.664924, 0,2.5728,-0.6736,
+ 0.814374,2.55,-0.135366, 0.664924,2.5728,-0.110524, 0.6736,2.5728,0,
+ 0.6736,2.5728,0, 0.825,2.55,0, 0.814374,2.55,-0.135366,
+ 0.783552,2.55,-0.263208, 0.639758,2.5728,-0.214905, 0.664924,2.5728,-0.110524,
+ 0.664924,2.5728,-0.110524, 0.814374,2.55,-0.135366, 0.783552,2.55,-0.263208,
+ 0.734118,2.55,-0.381942, 0.599396,2.5728,-0.31185, 0.639758,2.5728,-0.214905,
+ 0.639758,2.5728,-0.214905, 0.783552,2.55,-0.263208, 0.734118,2.55,-0.381942,
+ 0.667656,2.55,-0.489984, 0.545131,2.5728,-0.400065, 0.599396,2.5728,-0.31185,
+ 0.599396,2.5728,-0.31185, 0.734118,2.55,-0.381942, 0.667656,2.55,-0.489984,
+ 0.58575,2.55,-0.58575, 0.478256,2.5728,-0.478256, 0.545131,2.5728,-0.400065,
+ 0.545131,2.5728,-0.400065, 0.667656,2.55,-0.489984, 0.58575,2.55,-0.58575,
+ 0.489984,2.55,-0.667656, 0.400065,2.5728,-0.545131, 0.478256,2.5728,-0.478256,
+ 0.478256,2.5728,-0.478256, 0.58575,2.55,-0.58575, 0.489984,2.55,-0.667656,
+ 0.381942,2.55,-0.734118, 0.31185,2.5728,-0.599396, 0.400065,2.5728,-0.545131,
+ 0.400065,2.5728,-0.545131, 0.489984,2.55,-0.667656, 0.381942,2.55,-0.734118,
+ 0.263208,2.55,-0.783552, 0.214905,2.5728,-0.639758, 0.31185,2.5728,-0.599396,
+ 0.31185,2.5728,-0.599396, 0.381942,2.55,-0.734118, 0.263208,2.55,-0.783552,
+ 0.135366,2.55,-0.814374, 0.110524,2.5728,-0.664924, 0.214905,2.5728,-0.639758,
+ 0.214905,2.5728,-0.639758, 0.263208,2.55,-0.783552, 0.135366,2.55,-0.814374,
+ 0,2.55,-0.825, 0,2.5728,-0.6736, 0.110524,2.5728,-0.664924,
+ 0.110524,2.5728,-0.664924, 0.135366,2.55,-0.814374, 0,2.55,-0.825,
+ 0.957901,2.5272,-0.159223, 0.814374,2.55,-0.135366, 0.825,2.55,0,
+ 0.825,2.55,0, 0.9704,2.5272,0, 0.957901,2.5272,-0.159223,
+ 0.921647,2.5272,-0.309596, 0.783552,2.55,-0.263208, 0.814374,2.55,-0.135366,
+ 0.814374,2.55,-0.135366, 0.957901,2.5272,-0.159223, 0.921647,2.5272,-0.309596,
+ 0.863501,2.5272,-0.449256, 0.734118,2.55,-0.381942, 0.783552,2.55,-0.263208,
+ 0.783552,2.55,-0.263208, 0.921647,2.5272,-0.309596, 0.863501,2.5272,-0.449256,
+ 0.785325,2.5272,-0.57634, 0.667656,2.55,-0.489984, 0.734118,2.55,-0.381942,
+ 0.734118,2.55,-0.381942, 0.863501,2.5272,-0.449256, 0.785325,2.5272,-0.57634,
+ 0.688984,2.5272,-0.688984, 0.58575,2.55,-0.58575, 0.667656,2.55,-0.489984,
+ 0.667656,2.55,-0.489984, 0.785325,2.5272,-0.57634, 0.688984,2.5272,-0.688984,
+ 0.57634,2.5272,-0.785325, 0.489984,2.55,-0.667656, 0.58575,2.55,-0.58575,
+ 0.58575,2.55,-0.58575, 0.688984,2.5272,-0.688984, 0.57634,2.5272,-0.785325,
+ 0.449256,2.5272,-0.863501, 0.381942,2.55,-0.734118, 0.489984,2.55,-0.667656,
+ 0.489984,2.55,-0.667656, 0.57634,2.5272,-0.785325, 0.449256,2.5272,-0.863501,
+ 0.309596,2.5272,-0.921647, 0.263208,2.55,-0.783552, 0.381942,2.55,-0.734118,
+ 0.381942,2.55,-0.734118, 0.449256,2.5272,-0.863501, 0.309596,2.5272,-0.921647,
+ 0.159223,2.5272,-0.957901, 0.135366,2.55,-0.814374, 0.263208,2.55,-0.783552,
+ 0.263208,2.55,-0.783552, 0.309596,2.5272,-0.921647, 0.159223,2.5272,-0.957901,
+ 0,2.5272,-0.9704, 0,2.55,-0.825, 0.135366,2.55,-0.814374,
+ 0.135366,2.55,-0.814374, 0.159223,2.5272,-0.957901, 0,2.5272,-0.9704,
+ 1.086029,2.5026,-0.180521, 0.957901,2.5272,-0.159223, 0.9704,2.5272,0,
+ 0.9704,2.5272,0, 1.1002,2.5026,0, 1.086029,2.5026,-0.180521,
+ 1.044926,2.5026,-0.351008, 0.921647,2.5272,-0.309596, 0.957901,2.5272,-0.159223,
+ 0.957901,2.5272,-0.159223, 1.086029,2.5026,-0.180521, 1.044926,2.5026,-0.351008,
+ 0.979002,2.5026,-0.509349, 0.863501,2.5272,-0.449256, 0.921647,2.5272,-0.309596,
+ 0.921647,2.5272,-0.309596, 1.044926,2.5026,-0.351008, 0.979002,2.5026,-0.509349,
+ 0.89037,2.5026,-0.653431, 0.785325,2.5272,-0.57634, 0.863501,2.5272,-0.449256,
+ 0.863501,2.5272,-0.449256, 0.979002,2.5026,-0.509349, 0.89037,2.5026,-0.653431,
+ 0.781142,2.5026,-0.781142, 0.688984,2.5272,-0.688984, 0.785325,2.5272,-0.57634,
+ 0.785325,2.5272,-0.57634, 0.89037,2.5026,-0.653431, 0.781142,2.5026,-0.781142,
+ 0.653431,2.5026,-0.89037, 0.57634,2.5272,-0.785325, 0.688984,2.5272,-0.688984,
+ 0.688984,2.5272,-0.688984, 0.781142,2.5026,-0.781142, 0.653431,2.5026,-0.89037,
+ 0.509349,2.5026,-0.979002, 0.449256,2.5272,-0.863501, 0.57634,2.5272,-0.785325,
+ 0.57634,2.5272,-0.785325, 0.653431,2.5026,-0.89037, 0.509349,2.5026,-0.979002,
+ 0.351008,2.5026,-1.044926, 0.309596,2.5272,-0.921647, 0.449256,2.5272,-0.863501,
+ 0.449256,2.5272,-0.863501, 0.509349,2.5026,-0.979002, 0.351008,2.5026,-1.044926,
+ 0.180521,2.5026,-1.086029, 0.159223,2.5272,-0.957901, 0.309596,2.5272,-0.921647,
+ 0.309596,2.5272,-0.921647, 0.351008,2.5026,-1.044926, 0.180521,2.5026,-1.086029,
+ 0,2.5026,-1.1002, 0,2.5272,-0.9704, 0.159223,2.5272,-0.957901,
+ 0.159223,2.5272,-0.957901, 0.180521,2.5026,-1.086029, 0,2.5026,-1.1002,
+ 1.189282,2.4744,-0.197684, 1.086029,2.5026,-0.180521, 1.1002,2.5026,0,
+ 1.1002,2.5026,0, 1.2048,2.4744,0, 1.189282,2.4744,-0.197684,
+ 1.144271,2.4744,-0.384379, 1.044926,2.5026,-0.351008, 1.086029,2.5026,-0.180521,
+ 1.086029,2.5026,-0.180521, 1.189282,2.4744,-0.197684, 1.144271,2.4744,-0.384379,
+ 1.072079,2.4744,-0.557774, 0.979002,2.5026,-0.509349, 1.044926,2.5026,-0.351008,
+ 1.044926,2.5026,-0.351008, 1.144271,2.4744,-0.384379, 1.072079,2.4744,-0.557774,
+ 0.975021,2.4744,-0.715555, 0.89037,2.5026,-0.653431, 0.979002,2.5026,-0.509349,
+ 0.979002,2.5026,-0.509349, 1.072079,2.4744,-0.557774, 0.975021,2.4744,-0.715555,
+ 0.855408,2.4744,-0.855408, 0.781142,2.5026,-0.781142, 0.89037,2.5026,-0.653431,
+ 0.89037,2.5026,-0.653431, 0.975021,2.4744,-0.715555, 0.855408,2.4744,-0.855408,
+ 0.715555,2.4744,-0.975021, 0.653431,2.5026,-0.89037, 0.781142,2.5026,-0.781142,
+ 0.781142,2.5026,-0.781142, 0.855408,2.4744,-0.855408, 0.715555,2.4744,-0.975021,
+ 0.557774,2.4744,-1.072079, 0.509349,2.5026,-0.979002, 0.653431,2.5026,-0.89037,
+ 0.653431,2.5026,-0.89037, 0.715555,2.4744,-0.975021, 0.557774,2.4744,-1.072079,
+ 0.384379,2.4744,-1.144271, 0.351008,2.5026,-1.044926, 0.509349,2.5026,-0.979002,
+ 0.509349,2.5026,-0.979002, 0.557774,2.4744,-1.072079, 0.384379,2.4744,-1.144271,
+ 0.197684,2.4744,-1.189282, 0.180521,2.5026,-1.086029, 0.351008,2.5026,-1.044926,
+ 0.351008,2.5026,-1.044926, 0.384379,2.4744,-1.144271, 0.197684,2.4744,-1.189282,
+ 0,2.4744,-1.2048, 0,2.5026,-1.1002, 0.180521,2.5026,-1.086029,
+ 0.180521,2.5026,-1.086029, 0.197684,2.4744,-1.189282, 0,2.4744,-1.2048,
+ 1.258183,2.4408,-0.209136, 1.189282,2.4744,-0.197684, 1.2048,2.4744,0,
+ 1.2048,2.4744,0, 1.2746,2.4408,0, 1.258183,2.4408,-0.209136,
+ 1.210564,2.4408,-0.406648, 1.144271,2.4744,-0.384379, 1.189282,2.4744,-0.197684,
+ 1.189282,2.4744,-0.197684, 1.258183,2.4408,-0.209136, 1.210564,2.4408,-0.406648,
+ 1.13419,2.4408,-0.590089, 1.072079,2.4744,-0.557774, 1.144271,2.4744,-0.384379,
+ 1.144271,2.4744,-0.384379, 1.210564,2.4408,-0.406648, 1.13419,2.4408,-0.590089,
+ 1.031508,2.4408,-0.75701, 0.975021,2.4744,-0.715555, 1.072079,2.4744,-0.557774,
+ 1.072079,2.4744,-0.557774, 1.13419,2.4408,-0.590089, 1.031508,2.4408,-0.75701,
+ 0.904966,2.4408,-0.904966, 0.855408,2.4744,-0.855408, 0.975021,2.4744,-0.715555,
+ 0.975021,2.4744,-0.715555, 1.031508,2.4408,-0.75701, 0.904966,2.4408,-0.904966,
+ 0.75701,2.4408,-1.031508, 0.715555,2.4744,-0.975021, 0.855408,2.4744,-0.855408,
+ 0.855408,2.4744,-0.855408, 0.904966,2.4408,-0.904966, 0.75701,2.4408,-1.031508,
+ 0.590089,2.4408,-1.13419, 0.557774,2.4744,-1.072079, 0.715555,2.4744,-0.975021,
+ 0.715555,2.4744,-0.975021, 0.75701,2.4408,-1.031508, 0.590089,2.4408,-1.13419,
+ 0.406648,2.4408,-1.210564, 0.384379,2.4744,-1.144271, 0.557774,2.4744,-1.072079,
+ 0.557774,2.4744,-1.072079, 0.590089,2.4408,-1.13419, 0.406648,2.4408,-1.210564,
+ 0.209136,2.4408,-1.258183, 0.197684,2.4744,-1.189282, 0.384379,2.4744,-1.144271,
+ 0.384379,2.4744,-1.144271, 0.406648,2.4408,-1.210564, 0.209136,2.4408,-1.258183,
+ 0,2.4408,-1.2746, 0,2.4744,-1.2048, 0.197684,2.4744,-1.189282,
+ 0.197684,2.4744,-1.189282, 0.209136,2.4408,-1.258183, 0,2.4408,-1.2746,
+ 1.283256,2.4,-0.213304, 1.258183,2.4408,-0.209136, 1.2746,2.4408,0,
+ 1.2746,2.4408,0, 1.3,2.4,0, 1.283256,2.4,-0.213304,
+ 1.234688,2.4,-0.414752, 1.210564,2.4408,-0.406648, 1.258183,2.4408,-0.209136,
+ 1.258183,2.4408,-0.209136, 1.283256,2.4,-0.213304, 1.234688,2.4,-0.414752,
+ 1.156792,2.4,-0.601848, 1.13419,2.4408,-0.590089, 1.210564,2.4408,-0.406648,
+ 1.210564,2.4408,-0.406648, 1.234688,2.4,-0.414752, 1.156792,2.4,-0.601848,
+ 1.052064,2.4,-0.772096, 1.031508,2.4408,-0.75701, 1.13419,2.4408,-0.590089,
+ 1.13419,2.4408,-0.590089, 1.156792,2.4,-0.601848, 1.052064,2.4,-0.772096,
+ 0.923,2.4,-0.923, 0.904966,2.4408,-0.904966, 1.031508,2.4408,-0.75701,
+ 1.031508,2.4408,-0.75701, 1.052064,2.4,-0.772096, 0.923,2.4,-0.923,
+ 0.772096,2.4,-1.052064, 0.75701,2.4408,-1.031508, 0.904966,2.4408,-0.904966,
+ 0.904966,2.4408,-0.904966, 0.923,2.4,-0.923, 0.772096,2.4,-1.052064,
+ 0.601848,2.4,-1.156792, 0.590089,2.4408,-1.13419, 0.75701,2.4408,-1.031508,
+ 0.75701,2.4408,-1.031508, 0.772096,2.4,-1.052064, 0.601848,2.4,-1.156792,
+ 0.414752,2.4,-1.234688, 0.406648,2.4408,-1.210564, 0.590089,2.4408,-1.13419,
+ 0.590089,2.4408,-1.13419, 0.601848,2.4,-1.156792, 0.414752,2.4,-1.234688,
+ 0.213304,2.4,-1.283256, 0.209136,2.4408,-1.258183, 0.406648,2.4408,-1.210564,
+ 0.406648,2.4408,-1.210564, 0.414752,2.4,-1.234688, 0.213304,2.4,-1.283256,
+ 0,2.4,-1.3, 0,2.4408,-1.2746, 0.209136,2.4408,-1.258183,
+ 0.209136,2.4408,-1.258183, 0.213304,2.4,-1.283256, 0,2.4,-1.3,
+ -0.045844,2.6592,-0.275801, -0.032816,2.7,-0.197424, 0,2.7,-0.2,
+ 0,2.7,-0.2, 0,2.6592,-0.2794, -0.045844,2.6592,-0.275801,
+ -0.08914,2.6592,-0.265363, -0.063808,2.7,-0.189952, -0.032816,2.7,-0.197424,
+ -0.032816,2.7,-0.197424, -0.045844,2.6592,-0.275801, -0.08914,2.6592,-0.265363,
+ -0.129351,2.6592,-0.248621, -0.092592,2.7,-0.177968, -0.063808,2.7,-0.189952,
+ -0.063808,2.7,-0.189952, -0.08914,2.6592,-0.265363, -0.129351,2.6592,-0.248621,
+ -0.165941,2.6592,-0.226113, -0.118784,2.7,-0.161856, -0.092592,2.7,-0.177968,
+ -0.092592,2.7,-0.177968, -0.129351,2.6592,-0.248621, -0.165941,2.6592,-0.226113,
+ -0.198374,2.6592,-0.198374, -0.142,2.7,-0.142, -0.118784,2.7,-0.161856,
+ -0.118784,2.7,-0.161856, -0.165941,2.6592,-0.226113, -0.198374,2.6592,-0.198374,
+ -0.226113,2.6592,-0.165941, -0.161856,2.7,-0.118784, -0.142,2.7,-0.142,
+ -0.142,2.7,-0.142, -0.198374,2.6592,-0.198374, -0.226113,2.6592,-0.165941,
+ -0.248621,2.6592,-0.129351, -0.177968,2.7,-0.092592, -0.161856,2.7,-0.118784,
+ -0.161856,2.7,-0.118784, -0.226113,2.6592,-0.165941, -0.248621,2.6592,-0.129351,
+ -0.265363,2.6592,-0.08914, -0.189952,2.7,-0.063808, -0.177968,2.7,-0.092592,
+ -0.177968,2.7,-0.092592, -0.248621,2.6592,-0.129351, -0.265363,2.6592,-0.08914,
+ -0.275801,2.6592,-0.045844, -0.197424,2.7,-0.032816, -0.189952,2.7,-0.063808,
+ -0.189952,2.7,-0.063808, -0.265363,2.6592,-0.08914, -0.275801,2.6592,-0.045844,
+ -0.2794,2.6592,0, -0.2,2.7,0, -0.197424,2.7,-0.032816,
+ -0.197424,2.7,-0.032816, -0.275801,2.6592,-0.045844, -0.2794,2.6592,0,
+ -0.064188,2.6256,-0.386161, -0.045844,2.6592,-0.275801, 0,2.6592,-0.2794,
+ 0,2.6592,-0.2794, 0,2.6256,-0.3912, -0.064188,2.6256,-0.386161,
+ -0.124808,2.6256,-0.371546, -0.08914,2.6592,-0.265363, -0.045844,2.6592,-0.275801,
+ -0.045844,2.6592,-0.275801, -0.064188,2.6256,-0.386161, -0.124808,2.6256,-0.371546,
+ -0.18111,2.6256,-0.348105, -0.129351,2.6592,-0.248621, -0.08914,2.6592,-0.265363,
+ -0.08914,2.6592,-0.265363, -0.124808,2.6256,-0.371546, -0.18111,2.6256,-0.348105,
+ -0.232342,2.6256,-0.31659, -0.165941,2.6592,-0.226113, -0.129351,2.6592,-0.248621,
+ -0.129351,2.6592,-0.248621, -0.18111,2.6256,-0.348105, -0.232342,2.6256,-0.31659,
+ -0.277752,2.6256,-0.277752, -0.198374,2.6592,-0.198374, -0.165941,2.6592,-0.226113,
+ -0.165941,2.6592,-0.226113, -0.232342,2.6256,-0.31659, -0.277752,2.6256,-0.277752,
+ -0.31659,2.6256,-0.232342, -0.226113,2.6592,-0.165941, -0.198374,2.6592,-0.198374,
+ -0.198374,2.6592,-0.198374, -0.277752,2.6256,-0.277752, -0.31659,2.6256,-0.232342,
+ -0.348105,2.6256,-0.18111, -0.248621,2.6592,-0.129351, -0.226113,2.6592,-0.165941,
+ -0.226113,2.6592,-0.165941, -0.31659,2.6256,-0.232342, -0.348105,2.6256,-0.18111,
+ -0.371546,2.6256,-0.124808, -0.265363,2.6592,-0.08914, -0.248621,2.6592,-0.129351,
+ -0.248621,2.6592,-0.129351, -0.348105,2.6256,-0.18111, -0.371546,2.6256,-0.124808,
+ -0.386161,2.6256,-0.064188, -0.275801,2.6592,-0.045844, -0.265363,2.6592,-0.08914,
+ -0.265363,2.6592,-0.08914, -0.371546,2.6256,-0.124808, -0.386161,2.6256,-0.064188,
+ -0.3912,2.6256,0, -0.2794,2.6592,0, -0.275801,2.6592,-0.045844,
+ -0.275801,2.6592,-0.045844, -0.386161,2.6256,-0.064188, -0.3912,2.6256,0,
+ -0.086273,2.5974,-0.519028, -0.064188,2.6256,-0.386161, 0,2.6256,-0.3912,
+ 0,2.6256,-0.3912, 0,2.5974,-0.5258, -0.086273,2.5974,-0.519028,
+ -0.167751,2.5974,-0.499384, -0.124808,2.6256,-0.371546, -0.064188,2.6256,-0.386161,
+ -0.064188,2.6256,-0.386161, -0.086273,2.5974,-0.519028, -0.167751,2.5974,-0.499384,
+ -0.243424,2.5974,-0.467878, -0.18111,2.6256,-0.348105, -0.124808,2.6256,-0.371546,
+ -0.124808,2.6256,-0.371546, -0.167751,2.5974,-0.499384, -0.243424,2.5974,-0.467878,
+ -0.312283,2.5974,-0.425519, -0.232342,2.6256,-0.31659, -0.18111,2.6256,-0.348105,
+ -0.18111,2.6256,-0.348105, -0.243424,2.5974,-0.467878, -0.312283,2.5974,-0.425519,
+ -0.373318,2.5974,-0.373318, -0.277752,2.6256,-0.277752, -0.232342,2.6256,-0.31659,
+ -0.232342,2.6256,-0.31659, -0.312283,2.5974,-0.425519, -0.373318,2.5974,-0.373318,
+ -0.425519,2.5974,-0.312283, -0.31659,2.6256,-0.232342, -0.277752,2.6256,-0.277752,
+ -0.277752,2.6256,-0.277752, -0.373318,2.5974,-0.373318, -0.425519,2.5974,-0.312283,
+ -0.467878,2.5974,-0.243424, -0.348105,2.6256,-0.18111, -0.31659,2.6256,-0.232342,
+ -0.31659,2.6256,-0.232342, -0.425519,2.5974,-0.312283, -0.467878,2.5974,-0.243424,
+ -0.499384,2.5974,-0.167751, -0.371546,2.6256,-0.124808, -0.348105,2.6256,-0.18111,
+ -0.348105,2.6256,-0.18111, -0.467878,2.5974,-0.243424, -0.499384,2.5974,-0.167751,
+ -0.519028,2.5974,-0.086273, -0.386161,2.6256,-0.064188, -0.371546,2.6256,-0.124808,
+ -0.371546,2.6256,-0.124808, -0.499384,2.5974,-0.167751, -0.519028,2.5974,-0.086273,
+ -0.5258,2.5974,0, -0.3912,2.6256,0, -0.386161,2.6256,-0.064188,
+ -0.386161,2.6256,-0.064188, -0.519028,2.5974,-0.086273, -0.5258,2.5974,0,
+ -0.110524,2.5728,-0.664924, -0.086273,2.5974,-0.519028, 0,2.5974,-0.5258,
+ 0,2.5974,-0.5258, 0,2.5728,-0.6736, -0.110524,2.5728,-0.664924,
+ -0.214905,2.5728,-0.639758, -0.167751,2.5974,-0.499384, -0.086273,2.5974,-0.519028,
+ -0.086273,2.5974,-0.519028, -0.110524,2.5728,-0.664924, -0.214905,2.5728,-0.639758,
+ -0.31185,2.5728,-0.599396, -0.243424,2.5974,-0.467878, -0.167751,2.5974,-0.499384,
+ -0.167751,2.5974,-0.499384, -0.214905,2.5728,-0.639758, -0.31185,2.5728,-0.599396,
+ -0.400065,2.5728,-0.545131, -0.312283,2.5974,-0.425519, -0.243424,2.5974,-0.467878,
+ -0.243424,2.5974,-0.467878, -0.31185,2.5728,-0.599396, -0.400065,2.5728,-0.545131,
+ -0.478256,2.5728,-0.478256, -0.373318,2.5974,-0.373318, -0.312283,2.5974,-0.425519,
+ -0.312283,2.5974,-0.425519, -0.400065,2.5728,-0.545131, -0.478256,2.5728,-0.478256,
+ -0.545131,2.5728,-0.400065, -0.425519,2.5974,-0.312283, -0.373318,2.5974,-0.373318,
+ -0.373318,2.5974,-0.373318, -0.478256,2.5728,-0.478256, -0.545131,2.5728,-0.400065,
+ -0.599396,2.5728,-0.31185, -0.467878,2.5974,-0.243424, -0.425519,2.5974,-0.312283,
+ -0.425519,2.5974,-0.312283, -0.545131,2.5728,-0.400065, -0.599396,2.5728,-0.31185,
+ -0.639758,2.5728,-0.214905, -0.499384,2.5974,-0.167751, -0.467878,2.5974,-0.243424,
+ -0.467878,2.5974,-0.243424, -0.599396,2.5728,-0.31185, -0.639758,2.5728,-0.214905,
+ -0.664924,2.5728,-0.110524, -0.519028,2.5974,-0.086273, -0.499384,2.5974,-0.167751,
+ -0.499384,2.5974,-0.167751, -0.639758,2.5728,-0.214905, -0.664924,2.5728,-0.110524,
+ -0.6736,2.5728,0, -0.5258,2.5974,0, -0.519028,2.5974,-0.086273,
+ -0.519028,2.5974,-0.086273, -0.664924,2.5728,-0.110524, -0.6736,2.5728,0,
+ -0.135366,2.55,-0.814374, -0.110524,2.5728,-0.664924, 0,2.5728,-0.6736,
+ 0,2.5728,-0.6736, 0,2.55,-0.825, -0.135366,2.55,-0.814374,
+ -0.263208,2.55,-0.783552, -0.214905,2.5728,-0.639758, -0.110524,2.5728,-0.664924,
+ -0.110524,2.5728,-0.664924, -0.135366,2.55,-0.814374, -0.263208,2.55,-0.783552,
+ -0.381942,2.55,-0.734118, -0.31185,2.5728,-0.599396, -0.214905,2.5728,-0.639758,
+ -0.214905,2.5728,-0.639758, -0.263208,2.55,-0.783552, -0.381942,2.55,-0.734118,
+ -0.489984,2.55,-0.667656, -0.400065,2.5728,-0.545131, -0.31185,2.5728,-0.599396,
+ -0.31185,2.5728,-0.599396, -0.381942,2.55,-0.734118, -0.489984,2.55,-0.667656,
+ -0.58575,2.55,-0.58575, -0.478256,2.5728,-0.478256, -0.400065,2.5728,-0.545131,
+ -0.400065,2.5728,-0.545131, -0.489984,2.55,-0.667656, -0.58575,2.55,-0.58575,
+ -0.667656,2.55,-0.489984, -0.545131,2.5728,-0.400065, -0.478256,2.5728,-0.478256,
+ -0.478256,2.5728,-0.478256, -0.58575,2.55,-0.58575, -0.667656,2.55,-0.489984,
+ -0.734118,2.55,-0.381942, -0.599396,2.5728,-0.31185, -0.545131,2.5728,-0.400065,
+ -0.545131,2.5728,-0.400065, -0.667656,2.55,-0.489984, -0.734118,2.55,-0.381942,
+ -0.783552,2.55,-0.263208, -0.639758,2.5728,-0.214905, -0.599396,2.5728,-0.31185,
+ -0.599396,2.5728,-0.31185, -0.734118,2.55,-0.381942, -0.783552,2.55,-0.263208,
+ -0.814374,2.55,-0.135366, -0.664924,2.5728,-0.110524, -0.639758,2.5728,-0.214905,
+ -0.639758,2.5728,-0.214905, -0.783552,2.55,-0.263208, -0.814374,2.55,-0.135366,
+ -0.825,2.55,0, -0.6736,2.5728,0, -0.664924,2.5728,-0.110524,
+ -0.664924,2.5728,-0.110524, -0.814374,2.55,-0.135366, -0.825,2.55,0,
+ -0.159223,2.5272,-0.957901, -0.135366,2.55,-0.814374, 0,2.55,-0.825,
+ 0,2.55,-0.825, 0,2.5272,-0.9704, -0.159223,2.5272,-0.957901,
+ -0.309596,2.5272,-0.921647, -0.263208,2.55,-0.783552, -0.135366,2.55,-0.814374,
+ -0.135366,2.55,-0.814374, -0.159223,2.5272,-0.957901, -0.309596,2.5272,-0.921647,
+ -0.449256,2.5272,-0.863501, -0.381942,2.55,-0.734118, -0.263208,2.55,-0.783552,
+ -0.263208,2.55,-0.783552, -0.309596,2.5272,-0.921647, -0.449256,2.5272,-0.863501,
+ -0.57634,2.5272,-0.785325, -0.489984,2.55,-0.667656, -0.381942,2.55,-0.734118,
+ -0.381942,2.55,-0.734118, -0.449256,2.5272,-0.863501, -0.57634,2.5272,-0.785325,
+ -0.688984,2.5272,-0.688984, -0.58575,2.55,-0.58575, -0.489984,2.55,-0.667656,
+ -0.489984,2.55,-0.667656, -0.57634,2.5272,-0.785325, -0.688984,2.5272,-0.688984,
+ -0.785325,2.5272,-0.57634, -0.667656,2.55,-0.489984, -0.58575,2.55,-0.58575,
+ -0.58575,2.55,-0.58575, -0.688984,2.5272,-0.688984, -0.785325,2.5272,-0.57634,
+ -0.863501,2.5272,-0.449256, -0.734118,2.55,-0.381942, -0.667656,2.55,-0.489984,
+ -0.667656,2.55,-0.489984, -0.785325,2.5272,-0.57634, -0.863501,2.5272,-0.449256,
+ -0.921647,2.5272,-0.309596, -0.783552,2.55,-0.263208, -0.734118,2.55,-0.381942,
+ -0.734118,2.55,-0.381942, -0.863501,2.5272,-0.449256, -0.921647,2.5272,-0.309596,
+ -0.957901,2.5272,-0.159223, -0.814374,2.55,-0.135366, -0.783552,2.55,-0.263208,
+ -0.783552,2.55,-0.263208, -0.921647,2.5272,-0.309596, -0.957901,2.5272,-0.159223,
+ -0.9704,2.5272,0, -0.825,2.55,0, -0.814374,2.55,-0.135366,
+ -0.814374,2.55,-0.135366, -0.957901,2.5272,-0.159223, -0.9704,2.5272,0,
+ -0.180521,2.5026,-1.086029, -0.159223,2.5272,-0.957901, 0,2.5272,-0.9704,
+ 0,2.5272,-0.9704, 0,2.5026,-1.1002, -0.180521,2.5026,-1.086029,
+ -0.351008,2.5026,-1.044926, -0.309596,2.5272,-0.921647, -0.159223,2.5272,-0.957901,
+ -0.159223,2.5272,-0.957901, -0.180521,2.5026,-1.086029, -0.351008,2.5026,-1.044926,
+ -0.509349,2.5026,-0.979002, -0.449256,2.5272,-0.863501, -0.309596,2.5272,-0.921647,
+ -0.309596,2.5272,-0.921647, -0.351008,2.5026,-1.044926, -0.509349,2.5026,-0.979002,
+ -0.653431,2.5026,-0.89037, -0.57634,2.5272,-0.785325, -0.449256,2.5272,-0.863501,
+ -0.449256,2.5272,-0.863501, -0.509349,2.5026,-0.979002, -0.653431,2.5026,-0.89037,
+ -0.781142,2.5026,-0.781142, -0.688984,2.5272,-0.688984, -0.57634,2.5272,-0.785325,
+ -0.57634,2.5272,-0.785325, -0.653431,2.5026,-0.89037, -0.781142,2.5026,-0.781142,
+ -0.89037,2.5026,-0.653431, -0.785325,2.5272,-0.57634, -0.688984,2.5272,-0.688984,
+ -0.688984,2.5272,-0.688984, -0.781142,2.5026,-0.781142, -0.89037,2.5026,-0.653431,
+ -0.979002,2.5026,-0.509349, -0.863501,2.5272,-0.449256, -0.785325,2.5272,-0.57634,
+ -0.785325,2.5272,-0.57634, -0.89037,2.5026,-0.653431, -0.979002,2.5026,-0.509349,
+ -1.044926,2.5026,-0.351008, -0.921647,2.5272,-0.309596, -0.863501,2.5272,-0.449256,
+ -0.863501,2.5272,-0.449256, -0.979002,2.5026,-0.509349, -1.044926,2.5026,-0.351008,
+ -1.086029,2.5026,-0.180521, -0.957901,2.5272,-0.159223, -0.921647,2.5272,-0.309596,
+ -0.921647,2.5272,-0.309596, -1.044926,2.5026,-0.351008, -1.086029,2.5026,-0.180521,
+ -1.1002,2.5026,0, -0.9704,2.5272,0, -0.957901,2.5272,-0.159223,
+ -0.957901,2.5272,-0.159223, -1.086029,2.5026,-0.180521, -1.1002,2.5026,0,
+ -0.197684,2.4744,-1.189282, -0.180521,2.5026,-1.086029, 0,2.5026,-1.1002,
+ 0,2.5026,-1.1002, 0,2.4744,-1.2048, -0.197684,2.4744,-1.189282,
+ -0.384379,2.4744,-1.144271, -0.351008,2.5026,-1.044926, -0.180521,2.5026,-1.086029,
+ -0.180521,2.5026,-1.086029, -0.197684,2.4744,-1.189282, -0.384379,2.4744,-1.144271,
+ -0.557774,2.4744,-1.072079, -0.509349,2.5026,-0.979002, -0.351008,2.5026,-1.044926,
+ -0.351008,2.5026,-1.044926, -0.384379,2.4744,-1.144271, -0.557774,2.4744,-1.072079,
+ -0.715555,2.4744,-0.975021, -0.653431,2.5026,-0.89037, -0.509349,2.5026,-0.979002,
+ -0.509349,2.5026,-0.979002, -0.557774,2.4744,-1.072079, -0.715555,2.4744,-0.975021,
+ -0.855408,2.4744,-0.855408, -0.781142,2.5026,-0.781142, -0.653431,2.5026,-0.89037,
+ -0.653431,2.5026,-0.89037, -0.715555,2.4744,-0.975021, -0.855408,2.4744,-0.855408,
+ -0.975021,2.4744,-0.715555, -0.89037,2.5026,-0.653431, -0.781142,2.5026,-0.781142,
+ -0.781142,2.5026,-0.781142, -0.855408,2.4744,-0.855408, -0.975021,2.4744,-0.715555,
+ -1.072079,2.4744,-0.557774, -0.979002,2.5026,-0.509349, -0.89037,2.5026,-0.653431,
+ -0.89037,2.5026,-0.653431, -0.975021,2.4744,-0.715555, -1.072079,2.4744,-0.557774,
+ -1.144271,2.4744,-0.384379, -1.044926,2.5026,-0.351008, -0.979002,2.5026,-0.509349,
+ -0.979002,2.5026,-0.509349, -1.072079,2.4744,-0.557774, -1.144271,2.4744,-0.384379,
+ -1.189282,2.4744,-0.197684, -1.086029,2.5026,-0.180521, -1.044926,2.5026,-0.351008,
+ -1.044926,2.5026,-0.351008, -1.144271,2.4744,-0.384379, -1.189282,2.4744,-0.197684,
+ -1.2048,2.4744,0, -1.1002,2.5026,0, -1.086029,2.5026,-0.180521,
+ -1.086029,2.5026,-0.180521, -1.189282,2.4744,-0.197684, -1.2048,2.4744,0,
+ -0.209136,2.4408,-1.258183, -0.197684,2.4744,-1.189282, 0,2.4744,-1.2048,
+ 0,2.4744,-1.2048, 0,2.4408,-1.2746, -0.209136,2.4408,-1.258183,
+ -0.406648,2.4408,-1.210564, -0.384379,2.4744,-1.144271, -0.197684,2.4744,-1.189282,
+ -0.197684,2.4744,-1.189282, -0.209136,2.4408,-1.258183, -0.406648,2.4408,-1.210564,
+ -0.590089,2.4408,-1.13419, -0.557774,2.4744,-1.072079, -0.384379,2.4744,-1.144271,
+ -0.384379,2.4744,-1.144271, -0.406648,2.4408,-1.210564, -0.590089,2.4408,-1.13419,
+ -0.75701,2.4408,-1.031508, -0.715555,2.4744,-0.975021, -0.557774,2.4744,-1.072079,
+ -0.557774,2.4744,-1.072079, -0.590089,2.4408,-1.13419, -0.75701,2.4408,-1.031508,
+ -0.904966,2.4408,-0.904966, -0.855408,2.4744,-0.855408, -0.715555,2.4744,-0.975021,
+ -0.715555,2.4744,-0.975021, -0.75701,2.4408,-1.031508, -0.904966,2.4408,-0.904966,
+ -1.031508,2.4408,-0.75701, -0.975021,2.4744,-0.715555, -0.855408,2.4744,-0.855408,
+ -0.855408,2.4744,-0.855408, -0.904966,2.4408,-0.904966, -1.031508,2.4408,-0.75701,
+ -1.13419,2.4408,-0.590089, -1.072079,2.4744,-0.557774, -0.975021,2.4744,-0.715555,
+ -0.975021,2.4744,-0.715555, -1.031508,2.4408,-0.75701, -1.13419,2.4408,-0.590089,
+ -1.210564,2.4408,-0.406648, -1.144271,2.4744,-0.384379, -1.072079,2.4744,-0.557774,
+ -1.072079,2.4744,-0.557774, -1.13419,2.4408,-0.590089, -1.210564,2.4408,-0.406648,
+ -1.258183,2.4408,-0.209136, -1.189282,2.4744,-0.197684, -1.144271,2.4744,-0.384379,
+ -1.144271,2.4744,-0.384379, -1.210564,2.4408,-0.406648, -1.258183,2.4408,-0.209136,
+ -1.2746,2.4408,0, -1.2048,2.4744,0, -1.189282,2.4744,-0.197684,
+ -1.189282,2.4744,-0.197684, -1.258183,2.4408,-0.209136, -1.2746,2.4408,0,
+ -0.213304,2.4,-1.283256, -0.209136,2.4408,-1.258183, 0,2.4408,-1.2746,
+ 0,2.4408,-1.2746, 0,2.4,-1.3, -0.213304,2.4,-1.283256,
+ -0.414752,2.4,-1.234688, -0.406648,2.4408,-1.210564, -0.209136,2.4408,-1.258183,
+ -0.209136,2.4408,-1.258183, -0.213304,2.4,-1.283256, -0.414752,2.4,-1.234688,
+ -0.601848,2.4,-1.156792, -0.590089,2.4408,-1.13419, -0.406648,2.4408,-1.210564,
+ -0.406648,2.4408,-1.210564, -0.414752,2.4,-1.234688, -0.601848,2.4,-1.156792,
+ -0.772096,2.4,-1.052064, -0.75701,2.4408,-1.031508, -0.590089,2.4408,-1.13419,
+ -0.590089,2.4408,-1.13419, -0.601848,2.4,-1.156792, -0.772096,2.4,-1.052064,
+ -0.923,2.4,-0.923, -0.904966,2.4408,-0.904966, -0.75701,2.4408,-1.031508,
+ -0.75701,2.4408,-1.031508, -0.772096,2.4,-1.052064, -0.923,2.4,-0.923,
+ -1.052064,2.4,-0.772096, -1.031508,2.4408,-0.75701, -0.904966,2.4408,-0.904966,
+ -0.904966,2.4408,-0.904966, -0.923,2.4,-0.923, -1.052064,2.4,-0.772096,
+ -1.156792,2.4,-0.601848, -1.13419,2.4408,-0.590089, -1.031508,2.4408,-0.75701,
+ -1.031508,2.4408,-0.75701, -1.052064,2.4,-0.772096, -1.156792,2.4,-0.601848,
+ -1.234688,2.4,-0.414752, -1.210564,2.4408,-0.406648, -1.13419,2.4408,-0.590089,
+ -1.13419,2.4408,-0.590089, -1.156792,2.4,-0.601848, -1.234688,2.4,-0.414752,
+ -1.283256,2.4,-0.213304, -1.258183,2.4408,-0.209136, -1.210564,2.4408,-0.406648,
+ -1.210564,2.4408,-0.406648, -1.234688,2.4,-0.414752, -1.283256,2.4,-0.213304,
+ -1.3,2.4,0, -1.2746,2.4408,0, -1.258183,2.4408,-0.209136,
+ -1.258183,2.4408,-0.209136, -1.283256,2.4,-0.213304, -1.3,2.4,0,
+ -0.275801,2.6592,0.045844, -0.197424,2.7,0.032816, -0.2,2.7,0,
+ -0.2,2.7,0, -0.2794,2.6592,0, -0.275801,2.6592,0.045844,
+ -0.265363,2.6592,0.08914, -0.189952,2.7,0.063808, -0.197424,2.7,0.032816,
+ -0.197424,2.7,0.032816, -0.275801,2.6592,0.045844, -0.265363,2.6592,0.08914,
+ -0.248621,2.6592,0.129351, -0.177968,2.7,0.092592, -0.189952,2.7,0.063808,
+ -0.189952,2.7,0.063808, -0.265363,2.6592,0.08914, -0.248621,2.6592,0.129351,
+ -0.226113,2.6592,0.165941, -0.161856,2.7,0.118784, -0.177968,2.7,0.092592,
+ -0.177968,2.7,0.092592, -0.248621,2.6592,0.129351, -0.226113,2.6592,0.165941,
+ -0.198374,2.6592,0.198374, -0.142,2.7,0.142, -0.161856,2.7,0.118784,
+ -0.161856,2.7,0.118784, -0.226113,2.6592,0.165941, -0.198374,2.6592,0.198374,
+ -0.165941,2.6592,0.226113, -0.118784,2.7,0.161856, -0.142,2.7,0.142,
+ -0.142,2.7,0.142, -0.198374,2.6592,0.198374, -0.165941,2.6592,0.226113,
+ -0.129351,2.6592,0.248621, -0.092592,2.7,0.177968, -0.118784,2.7,0.161856,
+ -0.118784,2.7,0.161856, -0.165941,2.6592,0.226113, -0.129351,2.6592,0.248621,
+ -0.08914,2.6592,0.265363, -0.063808,2.7,0.189952, -0.092592,2.7,0.177968,
+ -0.092592,2.7,0.177968, -0.129351,2.6592,0.248621, -0.08914,2.6592,0.265363,
+ -0.045844,2.6592,0.275801, -0.032816,2.7,0.197424, -0.063808,2.7,0.189952,
+ -0.063808,2.7,0.189952, -0.08914,2.6592,0.265363, -0.045844,2.6592,0.275801,
+ 0,2.6592,0.2794, 0,2.7,0.2, -0.032816,2.7,0.197424,
+ -0.032816,2.7,0.197424, -0.045844,2.6592,0.275801, 0,2.6592,0.2794,
+ -0.386161,2.6256,0.064188, -0.275801,2.6592,0.045844, -0.2794,2.6592,0,
+ -0.2794,2.6592,0, -0.3912,2.6256,0, -0.386161,2.6256,0.064188,
+ -0.371546,2.6256,0.124808, -0.265363,2.6592,0.08914, -0.275801,2.6592,0.045844,
+ -0.275801,2.6592,0.045844, -0.386161,2.6256,0.064188, -0.371546,2.6256,0.124808,
+ -0.348105,2.6256,0.18111, -0.248621,2.6592,0.129351, -0.265363,2.6592,0.08914,
+ -0.265363,2.6592,0.08914, -0.371546,2.6256,0.124808, -0.348105,2.6256,0.18111,
+ -0.31659,2.6256,0.232342, -0.226113,2.6592,0.165941, -0.248621,2.6592,0.129351,
+ -0.248621,2.6592,0.129351, -0.348105,2.6256,0.18111, -0.31659,2.6256,0.232342,
+ -0.277752,2.6256,0.277752, -0.198374,2.6592,0.198374, -0.226113,2.6592,0.165941,
+ -0.226113,2.6592,0.165941, -0.31659,2.6256,0.232342, -0.277752,2.6256,0.277752,
+ -0.232342,2.6256,0.31659, -0.165941,2.6592,0.226113, -0.198374,2.6592,0.198374,
+ -0.198374,2.6592,0.198374, -0.277752,2.6256,0.277752, -0.232342,2.6256,0.31659,
+ -0.18111,2.6256,0.348105, -0.129351,2.6592,0.248621, -0.165941,2.6592,0.226113,
+ -0.165941,2.6592,0.226113, -0.232342,2.6256,0.31659, -0.18111,2.6256,0.348105,
+ -0.124808,2.6256,0.371546, -0.08914,2.6592,0.265363, -0.129351,2.6592,0.248621,
+ -0.129351,2.6592,0.248621, -0.18111,2.6256,0.348105, -0.124808,2.6256,0.371546,
+ -0.064188,2.6256,0.386161, -0.045844,2.6592,0.275801, -0.08914,2.6592,0.265363,
+ -0.08914,2.6592,0.265363, -0.124808,2.6256,0.371546, -0.064188,2.6256,0.386161,
+ 0,2.6256,0.3912, 0,2.6592,0.2794, -0.045844,2.6592,0.275801,
+ -0.045844,2.6592,0.275801, -0.064188,2.6256,0.386161, 0,2.6256,0.3912,
+ -0.519028,2.5974,0.086273, -0.386161,2.6256,0.064188, -0.3912,2.6256,0,
+ -0.3912,2.6256,0, -0.5258,2.5974,0, -0.519028,2.5974,0.086273,
+ -0.499384,2.5974,0.167751, -0.371546,2.6256,0.124808, -0.386161,2.6256,0.064188,
+ -0.386161,2.6256,0.064188, -0.519028,2.5974,0.086273, -0.499384,2.5974,0.167751,
+ -0.467878,2.5974,0.243424, -0.348105,2.6256,0.18111, -0.371546,2.6256,0.124808,
+ -0.371546,2.6256,0.124808, -0.499384,2.5974,0.167751, -0.467878,2.5974,0.243424,
+ -0.425519,2.5974,0.312283, -0.31659,2.6256,0.232342, -0.348105,2.6256,0.18111,
+ -0.348105,2.6256,0.18111, -0.467878,2.5974,0.243424, -0.425519,2.5974,0.312283,
+ -0.373318,2.5974,0.373318, -0.277752,2.6256,0.277752, -0.31659,2.6256,0.232342,
+ -0.31659,2.6256,0.232342, -0.425519,2.5974,0.312283, -0.373318,2.5974,0.373318,
+ -0.312283,2.5974,0.425519, -0.232342,2.6256,0.31659, -0.277752,2.6256,0.277752,
+ -0.277752,2.6256,0.277752, -0.373318,2.5974,0.373318, -0.312283,2.5974,0.425519,
+ -0.243424,2.5974,0.467878, -0.18111,2.6256,0.348105, -0.232342,2.6256,0.31659,
+ -0.232342,2.6256,0.31659, -0.312283,2.5974,0.425519, -0.243424,2.5974,0.467878,
+ -0.167751,2.5974,0.499384, -0.124808,2.6256,0.371546, -0.18111,2.6256,0.348105,
+ -0.18111,2.6256,0.348105, -0.243424,2.5974,0.467878, -0.167751,2.5974,0.499384,
+ -0.086273,2.5974,0.519028, -0.064188,2.6256,0.386161, -0.124808,2.6256,0.371546,
+ -0.124808,2.6256,0.371546, -0.167751,2.5974,0.499384, -0.086273,2.5974,0.519028,
+ 0,2.5974,0.5258, 0,2.6256,0.3912, -0.064188,2.6256,0.386161,
+ -0.064188,2.6256,0.386161, -0.086273,2.5974,0.519028, 0,2.5974,0.5258,
+ -0.664924,2.5728,0.110524, -0.519028,2.5974,0.086273, -0.5258,2.5974,0,
+ -0.5258,2.5974,0, -0.6736,2.5728,0, -0.664924,2.5728,0.110524,
+ -0.639758,2.5728,0.214905, -0.499384,2.5974,0.167751, -0.519028,2.5974,0.086273,
+ -0.519028,2.5974,0.086273, -0.664924,2.5728,0.110524, -0.639758,2.5728,0.214905,
+ -0.599396,2.5728,0.31185, -0.467878,2.5974,0.243424, -0.499384,2.5974,0.167751,
+ -0.499384,2.5974,0.167751, -0.639758,2.5728,0.214905, -0.599396,2.5728,0.31185,
+ -0.545131,2.5728,0.400065, -0.425519,2.5974,0.312283, -0.467878,2.5974,0.243424,
+ -0.467878,2.5974,0.243424, -0.599396,2.5728,0.31185, -0.545131,2.5728,0.400065,
+ -0.478256,2.5728,0.478256, -0.373318,2.5974,0.373318, -0.425519,2.5974,0.312283,
+ -0.425519,2.5974,0.312283, -0.545131,2.5728,0.400065, -0.478256,2.5728,0.478256,
+ -0.400065,2.5728,0.545131, -0.312283,2.5974,0.425519, -0.373318,2.5974,0.373318,
+ -0.373318,2.5974,0.373318, -0.478256,2.5728,0.478256, -0.400065,2.5728,0.545131,
+ -0.31185,2.5728,0.599396, -0.243424,2.5974,0.467878, -0.312283,2.5974,0.425519,
+ -0.312283,2.5974,0.425519, -0.400065,2.5728,0.545131, -0.31185,2.5728,0.599396,
+ -0.214905,2.5728,0.639758, -0.167751,2.5974,0.499384, -0.243424,2.5974,0.467878,
+ -0.243424,2.5974,0.467878, -0.31185,2.5728,0.599396, -0.214905,2.5728,0.639758,
+ -0.110524,2.5728,0.664924, -0.086273,2.5974,0.519028, -0.167751,2.5974,0.499384,
+ -0.167751,2.5974,0.499384, -0.214905,2.5728,0.639758, -0.110524,2.5728,0.664924,
+ 0,2.5728,0.6736, 0,2.5974,0.5258, -0.086273,2.5974,0.519028,
+ -0.086273,2.5974,0.519028, -0.110524,2.5728,0.664924, 0,2.5728,0.6736,
+ -0.814374,2.55,0.135366, -0.664924,2.5728,0.110524, -0.6736,2.5728,0,
+ -0.6736,2.5728,0, -0.825,2.55,0, -0.814374,2.55,0.135366,
+ -0.783552,2.55,0.263208, -0.639758,2.5728,0.214905, -0.664924,2.5728,0.110524,
+ -0.664924,2.5728,0.110524, -0.814374,2.55,0.135366, -0.783552,2.55,0.263208,
+ -0.734118,2.55,0.381942, -0.599396,2.5728,0.31185, -0.639758,2.5728,0.214905,
+ -0.639758,2.5728,0.214905, -0.783552,2.55,0.263208, -0.734118,2.55,0.381942,
+ -0.667656,2.55,0.489984, -0.545131,2.5728,0.400065, -0.599396,2.5728,0.31185,
+ -0.599396,2.5728,0.31185, -0.734118,2.55,0.381942, -0.667656,2.55,0.489984,
+ -0.58575,2.55,0.58575, -0.478256,2.5728,0.478256, -0.545131,2.5728,0.400065,
+ -0.545131,2.5728,0.400065, -0.667656,2.55,0.489984, -0.58575,2.55,0.58575,
+ -0.489984,2.55,0.667656, -0.400065,2.5728,0.545131, -0.478256,2.5728,0.478256,
+ -0.478256,2.5728,0.478256, -0.58575,2.55,0.58575, -0.489984,2.55,0.667656,
+ -0.381942,2.55,0.734118, -0.31185,2.5728,0.599396, -0.400065,2.5728,0.545131,
+ -0.400065,2.5728,0.545131, -0.489984,2.55,0.667656, -0.381942,2.55,0.734118,
+ -0.263208,2.55,0.783552, -0.214905,2.5728,0.639758, -0.31185,2.5728,0.599396,
+ -0.31185,2.5728,0.599396, -0.381942,2.55,0.734118, -0.263208,2.55,0.783552,
+ -0.135366,2.55,0.814374, -0.110524,2.5728,0.664924, -0.214905,2.5728,0.639758,
+ -0.214905,2.5728,0.639758, -0.263208,2.55,0.783552, -0.135366,2.55,0.814374,
+ 0,2.55,0.825, 0,2.5728,0.6736, -0.110524,2.5728,0.664924,
+ -0.110524,2.5728,0.664924, -0.135366,2.55,0.814374, 0,2.55,0.825,
+ -0.957901,2.5272,0.159223, -0.814374,2.55,0.135366, -0.825,2.55,0,
+ -0.825,2.55,0, -0.9704,2.5272,0, -0.957901,2.5272,0.159223,
+ -0.921647,2.5272,0.309596, -0.783552,2.55,0.263208, -0.814374,2.55,0.135366,
+ -0.814374,2.55,0.135366, -0.957901,2.5272,0.159223, -0.921647,2.5272,0.309596,
+ -0.863501,2.5272,0.449256, -0.734118,2.55,0.381942, -0.783552,2.55,0.263208,
+ -0.783552,2.55,0.263208, -0.921647,2.5272,0.309596, -0.863501,2.5272,0.449256,
+ -0.785325,2.5272,0.57634, -0.667656,2.55,0.489984, -0.734118,2.55,0.381942,
+ -0.734118,2.55,0.381942, -0.863501,2.5272,0.449256, -0.785325,2.5272,0.57634,
+ -0.688984,2.5272,0.688984, -0.58575,2.55,0.58575, -0.667656,2.55,0.489984,
+ -0.667656,2.55,0.489984, -0.785325,2.5272,0.57634, -0.688984,2.5272,0.688984,
+ -0.57634,2.5272,0.785325, -0.489984,2.55,0.667656, -0.58575,2.55,0.58575,
+ -0.58575,2.55,0.58575, -0.688984,2.5272,0.688984, -0.57634,2.5272,0.785325,
+ -0.449256,2.5272,0.863501, -0.381942,2.55,0.734118, -0.489984,2.55,0.667656,
+ -0.489984,2.55,0.667656, -0.57634,2.5272,0.785325, -0.449256,2.5272,0.863501,
+ -0.309596,2.5272,0.921647, -0.263208,2.55,0.783552, -0.381942,2.55,0.734118,
+ -0.381942,2.55,0.734118, -0.449256,2.5272,0.863501, -0.309596,2.5272,0.921647,
+ -0.159223,2.5272,0.957901, -0.135366,2.55,0.814374, -0.263208,2.55,0.783552,
+ -0.263208,2.55,0.783552, -0.309596,2.5272,0.921647, -0.159223,2.5272,0.957901,
+ 0,2.5272,0.9704, 0,2.55,0.825, -0.135366,2.55,0.814374,
+ -0.135366,2.55,0.814374, -0.159223,2.5272,0.957901, 0,2.5272,0.9704,
+ -1.086029,2.5026,0.180521, -0.957901,2.5272,0.159223, -0.9704,2.5272,0,
+ -0.9704,2.5272,0, -1.1002,2.5026,0, -1.086029,2.5026,0.180521,
+ -1.044926,2.5026,0.351008, -0.921647,2.5272,0.309596, -0.957901,2.5272,0.159223,
+ -0.957901,2.5272,0.159223, -1.086029,2.5026,0.180521, -1.044926,2.5026,0.351008,
+ -0.979002,2.5026,0.509349, -0.863501,2.5272,0.449256, -0.921647,2.5272,0.309596,
+ -0.921647,2.5272,0.309596, -1.044926,2.5026,0.351008, -0.979002,2.5026,0.509349,
+ -0.89037,2.5026,0.653431, -0.785325,2.5272,0.57634, -0.863501,2.5272,0.449256,
+ -0.863501,2.5272,0.449256, -0.979002,2.5026,0.509349, -0.89037,2.5026,0.653431,
+ -0.781142,2.5026,0.781142, -0.688984,2.5272,0.688984, -0.785325,2.5272,0.57634,
+ -0.785325,2.5272,0.57634, -0.89037,2.5026,0.653431, -0.781142,2.5026,0.781142,
+ -0.653431,2.5026,0.89037, -0.57634,2.5272,0.785325, -0.688984,2.5272,0.688984,
+ -0.688984,2.5272,0.688984, -0.781142,2.5026,0.781142, -0.653431,2.5026,0.89037,
+ -0.509349,2.5026,0.979002, -0.449256,2.5272,0.863501, -0.57634,2.5272,0.785325,
+ -0.57634,2.5272,0.785325, -0.653431,2.5026,0.89037, -0.509349,2.5026,0.979002,
+ -0.351008,2.5026,1.044926, -0.309596,2.5272,0.921647, -0.449256,2.5272,0.863501,
+ -0.449256,2.5272,0.863501, -0.509349,2.5026,0.979002, -0.351008,2.5026,1.044926,
+ -0.180521,2.5026,1.086029, -0.159223,2.5272,0.957901, -0.309596,2.5272,0.921647,
+ -0.309596,2.5272,0.921647, -0.351008,2.5026,1.044926, -0.180521,2.5026,1.086029,
+ 0,2.5026,1.1002, 0,2.5272,0.9704, -0.159223,2.5272,0.957901,
+ -0.159223,2.5272,0.957901, -0.180521,2.5026,1.086029, 0,2.5026,1.1002,
+ -1.189282,2.4744,0.197684, -1.086029,2.5026,0.180521, -1.1002,2.5026,0,
+ -1.1002,2.5026,0, -1.2048,2.4744,0, -1.189282,2.4744,0.197684,
+ -1.144271,2.4744,0.384379, -1.044926,2.5026,0.351008, -1.086029,2.5026,0.180521,
+ -1.086029,2.5026,0.180521, -1.189282,2.4744,0.197684, -1.144271,2.4744,0.384379,
+ -1.072079,2.4744,0.557774, -0.979002,2.5026,0.509349, -1.044926,2.5026,0.351008,
+ -1.044926,2.5026,0.351008, -1.144271,2.4744,0.384379, -1.072079,2.4744,0.557774,
+ -0.975021,2.4744,0.715555, -0.89037,2.5026,0.653431, -0.979002,2.5026,0.509349,
+ -0.979002,2.5026,0.509349, -1.072079,2.4744,0.557774, -0.975021,2.4744,0.715555,
+ -0.855408,2.4744,0.855408, -0.781142,2.5026,0.781142, -0.89037,2.5026,0.653431,
+ -0.89037,2.5026,0.653431, -0.975021,2.4744,0.715555, -0.855408,2.4744,0.855408,
+ -0.715555,2.4744,0.975021, -0.653431,2.5026,0.89037, -0.781142,2.5026,0.781142,
+ -0.781142,2.5026,0.781142, -0.855408,2.4744,0.855408, -0.715555,2.4744,0.975021,
+ -0.557774,2.4744,1.072079, -0.509349,2.5026,0.979002, -0.653431,2.5026,0.89037,
+ -0.653431,2.5026,0.89037, -0.715555,2.4744,0.975021, -0.557774,2.4744,1.072079,
+ -0.384379,2.4744,1.144271, -0.351008,2.5026,1.044926, -0.509349,2.5026,0.979002,
+ -0.509349,2.5026,0.979002, -0.557774,2.4744,1.072079, -0.384379,2.4744,1.144271,
+ -0.197684,2.4744,1.189282, -0.180521,2.5026,1.086029, -0.351008,2.5026,1.044926,
+ -0.351008,2.5026,1.044926, -0.384379,2.4744,1.144271, -0.197684,2.4744,1.189282,
+ 0,2.4744,1.2048, 0,2.5026,1.1002, -0.180521,2.5026,1.086029,
+ -0.180521,2.5026,1.086029, -0.197684,2.4744,1.189282, 0,2.4744,1.2048,
+ -1.258183,2.4408,0.209136, -1.189282,2.4744,0.197684, -1.2048,2.4744,0,
+ -1.2048,2.4744,0, -1.2746,2.4408,0, -1.258183,2.4408,0.209136,
+ -1.210564,2.4408,0.406648, -1.144271,2.4744,0.384379, -1.189282,2.4744,0.197684,
+ -1.189282,2.4744,0.197684, -1.258183,2.4408,0.209136, -1.210564,2.4408,0.406648,
+ -1.13419,2.4408,0.590089, -1.072079,2.4744,0.557774, -1.144271,2.4744,0.384379,
+ -1.144271,2.4744,0.384379, -1.210564,2.4408,0.406648, -1.13419,2.4408,0.590089,
+ -1.031508,2.4408,0.75701, -0.975021,2.4744,0.715555, -1.072079,2.4744,0.557774,
+ -1.072079,2.4744,0.557774, -1.13419,2.4408,0.590089, -1.031508,2.4408,0.75701,
+ -0.904966,2.4408,0.904966, -0.855408,2.4744,0.855408, -0.975021,2.4744,0.715555,
+ -0.975021,2.4744,0.715555, -1.031508,2.4408,0.75701, -0.904966,2.4408,0.904966,
+ -0.75701,2.4408,1.031508, -0.715555,2.4744,0.975021, -0.855408,2.4744,0.855408,
+ -0.855408,2.4744,0.855408, -0.904966,2.4408,0.904966, -0.75701,2.4408,1.031508,
+ -0.590089,2.4408,1.13419, -0.557774,2.4744,1.072079, -0.715555,2.4744,0.975021,
+ -0.715555,2.4744,0.975021, -0.75701,2.4408,1.031508, -0.590089,2.4408,1.13419,
+ -0.406648,2.4408,1.210564, -0.384379,2.4744,1.144271, -0.557774,2.4744,1.072079,
+ -0.557774,2.4744,1.072079, -0.590089,2.4408,1.13419, -0.406648,2.4408,1.210564,
+ -0.209136,2.4408,1.258183, -0.197684,2.4744,1.189282, -0.384379,2.4744,1.144271,
+ -0.384379,2.4744,1.144271, -0.406648,2.4408,1.210564, -0.209136,2.4408,1.258183,
+ 0,2.4408,1.2746, 0,2.4744,1.2048, -0.197684,2.4744,1.189282,
+ -0.197684,2.4744,1.189282, -0.209136,2.4408,1.258183, 0,2.4408,1.2746,
+ -1.283256,2.4,0.213304, -1.258183,2.4408,0.209136, -1.2746,2.4408,0,
+ -1.2746,2.4408,0, -1.3,2.4,0, -1.283256,2.4,0.213304,
+ -1.234688,2.4,0.414752, -1.210564,2.4408,0.406648, -1.258183,2.4408,0.209136,
+ -1.258183,2.4408,0.209136, -1.283256,2.4,0.213304, -1.234688,2.4,0.414752,
+ -1.156792,2.4,0.601848, -1.13419,2.4408,0.590089, -1.210564,2.4408,0.406648,
+ -1.210564,2.4408,0.406648, -1.234688,2.4,0.414752, -1.156792,2.4,0.601848,
+ -1.052064,2.4,0.772096, -1.031508,2.4408,0.75701, -1.13419,2.4408,0.590089,
+ -1.13419,2.4408,0.590089, -1.156792,2.4,0.601848, -1.052064,2.4,0.772096,
+ -0.923,2.4,0.923, -0.904966,2.4408,0.904966, -1.031508,2.4408,0.75701,
+ -1.031508,2.4408,0.75701, -1.052064,2.4,0.772096, -0.923,2.4,0.923,
+ -0.772096,2.4,1.052064, -0.75701,2.4408,1.031508, -0.904966,2.4408,0.904966,
+ -0.904966,2.4408,0.904966, -0.923,2.4,0.923, -0.772096,2.4,1.052064,
+ -0.601848,2.4,1.156792, -0.590089,2.4408,1.13419, -0.75701,2.4408,1.031508,
+ -0.75701,2.4408,1.031508, -0.772096,2.4,1.052064, -0.601848,2.4,1.156792,
+ -0.414752,2.4,1.234688, -0.406648,2.4408,1.210564, -0.590089,2.4408,1.13419,
+ -0.590089,2.4408,1.13419, -0.601848,2.4,1.156792, -0.414752,2.4,1.234688,
+ -0.213304,2.4,1.283256, -0.209136,2.4408,1.258183, -0.406648,2.4408,1.210564,
+ -0.406648,2.4408,1.210564, -0.414752,2.4,1.234688, -0.213304,2.4,1.283256,
+ 0,2.4,1.3, 0,2.4408,1.2746, -0.209136,2.4408,1.258183,
+ -0.209136,2.4408,1.258183, -0.213304,2.4,1.283256, 0,2.4,1.3,
+ 0.045844,2.6592,0.275801, 0.032816,2.7,0.197424, 0,2.7,0.2,
+ 0,2.7,0.2, 0,2.6592,0.2794, 0.045844,2.6592,0.275801,
+ 0.08914,2.6592,0.265363, 0.063808,2.7,0.189952, 0.032816,2.7,0.197424,
+ 0.032816,2.7,0.197424, 0.045844,2.6592,0.275801, 0.08914,2.6592,0.265363,
+ 0.129351,2.6592,0.248621, 0.092592,2.7,0.177968, 0.063808,2.7,0.189952,
+ 0.063808,2.7,0.189952, 0.08914,2.6592,0.265363, 0.129351,2.6592,0.248621,
+ 0.165941,2.6592,0.226113, 0.118784,2.7,0.161856, 0.092592,2.7,0.177968,
+ 0.092592,2.7,0.177968, 0.129351,2.6592,0.248621, 0.165941,2.6592,0.226113,
+ 0.198374,2.6592,0.198374, 0.142,2.7,0.142, 0.118784,2.7,0.161856,
+ 0.118784,2.7,0.161856, 0.165941,2.6592,0.226113, 0.198374,2.6592,0.198374,
+ 0.226113,2.6592,0.165941, 0.161856,2.7,0.118784, 0.142,2.7,0.142,
+ 0.142,2.7,0.142, 0.198374,2.6592,0.198374, 0.226113,2.6592,0.165941,
+ 0.248621,2.6592,0.129351, 0.177968,2.7,0.092592, 0.161856,2.7,0.118784,
+ 0.161856,2.7,0.118784, 0.226113,2.6592,0.165941, 0.248621,2.6592,0.129351,
+ 0.265363,2.6592,0.08914, 0.189952,2.7,0.063808, 0.177968,2.7,0.092592,
+ 0.177968,2.7,0.092592, 0.248621,2.6592,0.129351, 0.265363,2.6592,0.08914,
+ 0.275801,2.6592,0.045844, 0.197424,2.7,0.032816, 0.189952,2.7,0.063808,
+ 0.189952,2.7,0.063808, 0.265363,2.6592,0.08914, 0.275801,2.6592,0.045844,
+ 0.2794,2.6592,0, 0.2,2.7,0, 0.197424,2.7,0.032816,
+ 0.197424,2.7,0.032816, 0.275801,2.6592,0.045844, 0.2794,2.6592,0,
+ 0.064188,2.6256,0.386161, 0.045844,2.6592,0.275801, 0,2.6592,0.2794,
+ 0,2.6592,0.2794, 0,2.6256,0.3912, 0.064188,2.6256,0.386161,
+ 0.124808,2.6256,0.371546, 0.08914,2.6592,0.265363, 0.045844,2.6592,0.275801,
+ 0.045844,2.6592,0.275801, 0.064188,2.6256,0.386161, 0.124808,2.6256,0.371546,
+ 0.18111,2.6256,0.348105, 0.129351,2.6592,0.248621, 0.08914,2.6592,0.265363,
+ 0.08914,2.6592,0.265363, 0.124808,2.6256,0.371546, 0.18111,2.6256,0.348105,
+ 0.232342,2.6256,0.31659, 0.165941,2.6592,0.226113, 0.129351,2.6592,0.248621,
+ 0.129351,2.6592,0.248621, 0.18111,2.6256,0.348105, 0.232342,2.6256,0.31659,
+ 0.277752,2.6256,0.277752, 0.198374,2.6592,0.198374, 0.165941,2.6592,0.226113,
+ 0.165941,2.6592,0.226113, 0.232342,2.6256,0.31659, 0.277752,2.6256,0.277752,
+ 0.31659,2.6256,0.232342, 0.226113,2.6592,0.165941, 0.198374,2.6592,0.198374,
+ 0.198374,2.6592,0.198374, 0.277752,2.6256,0.277752, 0.31659,2.6256,0.232342,
+ 0.348105,2.6256,0.18111, 0.248621,2.6592,0.129351, 0.226113,2.6592,0.165941,
+ 0.226113,2.6592,0.165941, 0.31659,2.6256,0.232342, 0.348105,2.6256,0.18111,
+ 0.371546,2.6256,0.124808, 0.265363,2.6592,0.08914, 0.248621,2.6592,0.129351,
+ 0.248621,2.6592,0.129351, 0.348105,2.6256,0.18111, 0.371546,2.6256,0.124808,
+ 0.386161,2.6256,0.064188, 0.275801,2.6592,0.045844, 0.265363,2.6592,0.08914,
+ 0.265363,2.6592,0.08914, 0.371546,2.6256,0.124808, 0.386161,2.6256,0.064188,
+ 0.3912,2.6256,0, 0.2794,2.6592,0, 0.275801,2.6592,0.045844,
+ 0.275801,2.6592,0.045844, 0.386161,2.6256,0.064188, 0.3912,2.6256,0,
+ 0.086273,2.5974,0.519028, 0.064188,2.6256,0.386161, 0,2.6256,0.3912,
+ 0,2.6256,0.3912, 0,2.5974,0.5258, 0.086273,2.5974,0.519028,
+ 0.167751,2.5974,0.499384, 0.124808,2.6256,0.371546, 0.064188,2.6256,0.386161,
+ 0.064188,2.6256,0.386161, 0.086273,2.5974,0.519028, 0.167751,2.5974,0.499384,
+ 0.243424,2.5974,0.467878, 0.18111,2.6256,0.348105, 0.124808,2.6256,0.371546,
+ 0.124808,2.6256,0.371546, 0.167751,2.5974,0.499384, 0.243424,2.5974,0.467878,
+ 0.312283,2.5974,0.425519, 0.232342,2.6256,0.31659, 0.18111,2.6256,0.348105,
+ 0.18111,2.6256,0.348105, 0.243424,2.5974,0.467878, 0.312283,2.5974,0.425519,
+ 0.373318,2.5974,0.373318, 0.277752,2.6256,0.277752, 0.232342,2.6256,0.31659,
+ 0.232342,2.6256,0.31659, 0.312283,2.5974,0.425519, 0.373318,2.5974,0.373318,
+ 0.425519,2.5974,0.312283, 0.31659,2.6256,0.232342, 0.277752,2.6256,0.277752,
+ 0.277752,2.6256,0.277752, 0.373318,2.5974,0.373318, 0.425519,2.5974,0.312283,
+ 0.467878,2.5974,0.243424, 0.348105,2.6256,0.18111, 0.31659,2.6256,0.232342,
+ 0.31659,2.6256,0.232342, 0.425519,2.5974,0.312283, 0.467878,2.5974,0.243424,
+ 0.499384,2.5974,0.167751, 0.371546,2.6256,0.124808, 0.348105,2.6256,0.18111,
+ 0.348105,2.6256,0.18111, 0.467878,2.5974,0.243424, 0.499384,2.5974,0.167751,
+ 0.519028,2.5974,0.086273, 0.386161,2.6256,0.064188, 0.371546,2.6256,0.124808,
+ 0.371546,2.6256,0.124808, 0.499384,2.5974,0.167751, 0.519028,2.5974,0.086273,
+ 0.5258,2.5974,0, 0.3912,2.6256,0, 0.386161,2.6256,0.064188,
+ 0.386161,2.6256,0.064188, 0.519028,2.5974,0.086273, 0.5258,2.5974,0,
+ 0.110524,2.5728,0.664924, 0.086273,2.5974,0.519028, 0,2.5974,0.5258,
+ 0,2.5974,0.5258, 0,2.5728,0.6736, 0.110524,2.5728,0.664924,
+ 0.214905,2.5728,0.639758, 0.167751,2.5974,0.499384, 0.086273,2.5974,0.519028,
+ 0.086273,2.5974,0.519028, 0.110524,2.5728,0.664924, 0.214905,2.5728,0.639758,
+ 0.31185,2.5728,0.599396, 0.243424,2.5974,0.467878, 0.167751,2.5974,0.499384,
+ 0.167751,2.5974,0.499384, 0.214905,2.5728,0.639758, 0.31185,2.5728,0.599396,
+ 0.400065,2.5728,0.545131, 0.312283,2.5974,0.425519, 0.243424,2.5974,0.467878,
+ 0.243424,2.5974,0.467878, 0.31185,2.5728,0.599396, 0.400065,2.5728,0.545131,
+ 0.478256,2.5728,0.478256, 0.373318,2.5974,0.373318, 0.312283,2.5974,0.425519,
+ 0.312283,2.5974,0.425519, 0.400065,2.5728,0.545131, 0.478256,2.5728,0.478256,
+ 0.545131,2.5728,0.400065, 0.425519,2.5974,0.312283, 0.373318,2.5974,0.373318,
+ 0.373318,2.5974,0.373318, 0.478256,2.5728,0.478256, 0.545131,2.5728,0.400065,
+ 0.599396,2.5728,0.31185, 0.467878,2.5974,0.243424, 0.425519,2.5974,0.312283,
+ 0.425519,2.5974,0.312283, 0.545131,2.5728,0.400065, 0.599396,2.5728,0.31185,
+ 0.639758,2.5728,0.214905, 0.499384,2.5974,0.167751, 0.467878,2.5974,0.243424,
+ 0.467878,2.5974,0.243424, 0.599396,2.5728,0.31185, 0.639758,2.5728,0.214905,
+ 0.664924,2.5728,0.110524, 0.519028,2.5974,0.086273, 0.499384,2.5974,0.167751,
+ 0.499384,2.5974,0.167751, 0.639758,2.5728,0.214905, 0.664924,2.5728,0.110524,
+ 0.6736,2.5728,0, 0.5258,2.5974,0, 0.519028,2.5974,0.086273,
+ 0.519028,2.5974,0.086273, 0.664924,2.5728,0.110524, 0.6736,2.5728,0,
+ 0.135366,2.55,0.814374, 0.110524,2.5728,0.664924, 0,2.5728,0.6736,
+ 0,2.5728,0.6736, 0,2.55,0.825, 0.135366,2.55,0.814374,
+ 0.263208,2.55,0.783552, 0.214905,2.5728,0.639758, 0.110524,2.5728,0.664924,
+ 0.110524,2.5728,0.664924, 0.135366,2.55,0.814374, 0.263208,2.55,0.783552,
+ 0.381942,2.55,0.734118, 0.31185,2.5728,0.599396, 0.214905,2.5728,0.639758,
+ 0.214905,2.5728,0.639758, 0.263208,2.55,0.783552, 0.381942,2.55,0.734118,
+ 0.489984,2.55,0.667656, 0.400065,2.5728,0.545131, 0.31185,2.5728,0.599396,
+ 0.31185,2.5728,0.599396, 0.381942,2.55,0.734118, 0.489984,2.55,0.667656,
+ 0.58575,2.55,0.58575, 0.478256,2.5728,0.478256, 0.400065,2.5728,0.545131,
+ 0.400065,2.5728,0.545131, 0.489984,2.55,0.667656, 0.58575,2.55,0.58575,
+ 0.667656,2.55,0.489984, 0.545131,2.5728,0.400065, 0.478256,2.5728,0.478256,
+ 0.478256,2.5728,0.478256, 0.58575,2.55,0.58575, 0.667656,2.55,0.489984,
+ 0.734118,2.55,0.381942, 0.599396,2.5728,0.31185, 0.545131,2.5728,0.400065,
+ 0.545131,2.5728,0.400065, 0.667656,2.55,0.489984, 0.734118,2.55,0.381942,
+ 0.783552,2.55,0.263208, 0.639758,2.5728,0.214905, 0.599396,2.5728,0.31185,
+ 0.599396,2.5728,0.31185, 0.734118,2.55,0.381942, 0.783552,2.55,0.263208,
+ 0.814374,2.55,0.135366, 0.664924,2.5728,0.110524, 0.639758,2.5728,0.214905,
+ 0.639758,2.5728,0.214905, 0.783552,2.55,0.263208, 0.814374,2.55,0.135366,
+ 0.825,2.55,0, 0.6736,2.5728,0, 0.664924,2.5728,0.110524,
+ 0.664924,2.5728,0.110524, 0.814374,2.55,0.135366, 0.825,2.55,0,
+ 0.159223,2.5272,0.957901, 0.135366,2.55,0.814374, 0,2.55,0.825,
+ 0,2.55,0.825, 0,2.5272,0.9704, 0.159223,2.5272,0.957901,
+ 0.309596,2.5272,0.921647, 0.263208,2.55,0.783552, 0.135366,2.55,0.814374,
+ 0.135366,2.55,0.814374, 0.159223,2.5272,0.957901, 0.309596,2.5272,0.921647,
+ 0.449256,2.5272,0.863501, 0.381942,2.55,0.734118, 0.263208,2.55,0.783552,
+ 0.263208,2.55,0.783552, 0.309596,2.5272,0.921647, 0.449256,2.5272,0.863501,
+ 0.57634,2.5272,0.785325, 0.489984,2.55,0.667656, 0.381942,2.55,0.734118,
+ 0.381942,2.55,0.734118, 0.449256,2.5272,0.863501, 0.57634,2.5272,0.785325,
+ 0.688984,2.5272,0.688984, 0.58575,2.55,0.58575, 0.489984,2.55,0.667656,
+ 0.489984,2.55,0.667656, 0.57634,2.5272,0.785325, 0.688984,2.5272,0.688984,
+ 0.785325,2.5272,0.57634, 0.667656,2.55,0.489984, 0.58575,2.55,0.58575,
+ 0.58575,2.55,0.58575, 0.688984,2.5272,0.688984, 0.785325,2.5272,0.57634,
+ 0.863501,2.5272,0.449256, 0.734118,2.55,0.381942, 0.667656,2.55,0.489984,
+ 0.667656,2.55,0.489984, 0.785325,2.5272,0.57634, 0.863501,2.5272,0.449256,
+ 0.921647,2.5272,0.309596, 0.783552,2.55,0.263208, 0.734118,2.55,0.381942,
+ 0.734118,2.55,0.381942, 0.863501,2.5272,0.449256, 0.921647,2.5272,0.309596,
+ 0.957901,2.5272,0.159223, 0.814374,2.55,0.135366, 0.783552,2.55,0.263208,
+ 0.783552,2.55,0.263208, 0.921647,2.5272,0.309596, 0.957901,2.5272,0.159223,
+ 0.9704,2.5272,0, 0.825,2.55,0, 0.814374,2.55,0.135366,
+ 0.814374,2.55,0.135366, 0.957901,2.5272,0.159223, 0.9704,2.5272,0,
+ 0.180521,2.5026,1.086029, 0.159223,2.5272,0.957901, 0,2.5272,0.9704,
+ 0,2.5272,0.9704, 0,2.5026,1.1002, 0.180521,2.5026,1.086029,
+ 0.351008,2.5026,1.044926, 0.309596,2.5272,0.921647, 0.159223,2.5272,0.957901,
+ 0.159223,2.5272,0.957901, 0.180521,2.5026,1.086029, 0.351008,2.5026,1.044926,
+ 0.509349,2.5026,0.979002, 0.449256,2.5272,0.863501, 0.309596,2.5272,0.921647,
+ 0.309596,2.5272,0.921647, 0.351008,2.5026,1.044926, 0.509349,2.5026,0.979002,
+ 0.653431,2.5026,0.89037, 0.57634,2.5272,0.785325, 0.449256,2.5272,0.863501,
+ 0.449256,2.5272,0.863501, 0.509349,2.5026,0.979002, 0.653431,2.5026,0.89037,
+ 0.781142,2.5026,0.781142, 0.688984,2.5272,0.688984, 0.57634,2.5272,0.785325,
+ 0.57634,2.5272,0.785325, 0.653431,2.5026,0.89037, 0.781142,2.5026,0.781142,
+ 0.89037,2.5026,0.653431, 0.785325,2.5272,0.57634, 0.688984,2.5272,0.688984,
+ 0.688984,2.5272,0.688984, 0.781142,2.5026,0.781142, 0.89037,2.5026,0.653431,
+ 0.979002,2.5026,0.509349, 0.863501,2.5272,0.449256, 0.785325,2.5272,0.57634,
+ 0.785325,2.5272,0.57634, 0.89037,2.5026,0.653431, 0.979002,2.5026,0.509349,
+ 1.044926,2.5026,0.351008, 0.921647,2.5272,0.309596, 0.863501,2.5272,0.449256,
+ 0.863501,2.5272,0.449256, 0.979002,2.5026,0.509349, 1.044926,2.5026,0.351008,
+ 1.086029,2.5026,0.180521, 0.957901,2.5272,0.159223, 0.921647,2.5272,0.309596,
+ 0.921647,2.5272,0.309596, 1.044926,2.5026,0.351008, 1.086029,2.5026,0.180521,
+ 1.1002,2.5026,0, 0.9704,2.5272,0, 0.957901,2.5272,0.159223,
+ 0.957901,2.5272,0.159223, 1.086029,2.5026,0.180521, 1.1002,2.5026,0,
+ 0.197684,2.4744,1.189282, 0.180521,2.5026,1.086029, 0,2.5026,1.1002,
+ 0,2.5026,1.1002, 0,2.4744,1.2048, 0.197684,2.4744,1.189282,
+ 0.384379,2.4744,1.144271, 0.351008,2.5026,1.044926, 0.180521,2.5026,1.086029,
+ 0.180521,2.5026,1.086029, 0.197684,2.4744,1.189282, 0.384379,2.4744,1.144271,
+ 0.557774,2.4744,1.072079, 0.509349,2.5026,0.979002, 0.351008,2.5026,1.044926,
+ 0.351008,2.5026,1.044926, 0.384379,2.4744,1.144271, 0.557774,2.4744,1.072079,
+ 0.715555,2.4744,0.975021, 0.653431,2.5026,0.89037, 0.509349,2.5026,0.979002,
+ 0.509349,2.5026,0.979002, 0.557774,2.4744,1.072079, 0.715555,2.4744,0.975021,
+ 0.855408,2.4744,0.855408, 0.781142,2.5026,0.781142, 0.653431,2.5026,0.89037,
+ 0.653431,2.5026,0.89037, 0.715555,2.4744,0.975021, 0.855408,2.4744,0.855408,
+ 0.975021,2.4744,0.715555, 0.89037,2.5026,0.653431, 0.781142,2.5026,0.781142,
+ 0.781142,2.5026,0.781142, 0.855408,2.4744,0.855408, 0.975021,2.4744,0.715555,
+ 1.072079,2.4744,0.557774, 0.979002,2.5026,0.509349, 0.89037,2.5026,0.653431,
+ 0.89037,2.5026,0.653431, 0.975021,2.4744,0.715555, 1.072079,2.4744,0.557774,
+ 1.144271,2.4744,0.384379, 1.044926,2.5026,0.351008, 0.979002,2.5026,0.509349,
+ 0.979002,2.5026,0.509349, 1.072079,2.4744,0.557774, 1.144271,2.4744,0.384379,
+ 1.189282,2.4744,0.197684, 1.086029,2.5026,0.180521, 1.044926,2.5026,0.351008,
+ 1.044926,2.5026,0.351008, 1.144271,2.4744,0.384379, 1.189282,2.4744,0.197684,
+ 1.2048,2.4744,0, 1.1002,2.5026,0, 1.086029,2.5026,0.180521,
+ 1.086029,2.5026,0.180521, 1.189282,2.4744,0.197684, 1.2048,2.4744,0,
+ 0.209136,2.4408,1.258183, 0.197684,2.4744,1.189282, 0,2.4744,1.2048,
+ 0,2.4744,1.2048, 0,2.4408,1.2746, 0.209136,2.4408,1.258183,
+ 0.406648,2.4408,1.210564, 0.384379,2.4744,1.144271, 0.197684,2.4744,1.189282,
+ 0.197684,2.4744,1.189282, 0.209136,2.4408,1.258183, 0.406648,2.4408,1.210564,
+ 0.590089,2.4408,1.13419, 0.557774,2.4744,1.072079, 0.384379,2.4744,1.144271,
+ 0.384379,2.4744,1.144271, 0.406648,2.4408,1.210564, 0.590089,2.4408,1.13419,
+ 0.75701,2.4408,1.031508, 0.715555,2.4744,0.975021, 0.557774,2.4744,1.072079,
+ 0.557774,2.4744,1.072079, 0.590089,2.4408,1.13419, 0.75701,2.4408,1.031508,
+ 0.904966,2.4408,0.904966, 0.855408,2.4744,0.855408, 0.715555,2.4744,0.975021,
+ 0.715555,2.4744,0.975021, 0.75701,2.4408,1.031508, 0.904966,2.4408,0.904966,
+ 1.031508,2.4408,0.75701, 0.975021,2.4744,0.715555, 0.855408,2.4744,0.855408,
+ 0.855408,2.4744,0.855408, 0.904966,2.4408,0.904966, 1.031508,2.4408,0.75701,
+ 1.13419,2.4408,0.590089, 1.072079,2.4744,0.557774, 0.975021,2.4744,0.715555,
+ 0.975021,2.4744,0.715555, 1.031508,2.4408,0.75701, 1.13419,2.4408,0.590089,
+ 1.210564,2.4408,0.406648, 1.144271,2.4744,0.384379, 1.072079,2.4744,0.557774,
+ 1.072079,2.4744,0.557774, 1.13419,2.4408,0.590089, 1.210564,2.4408,0.406648,
+ 1.258183,2.4408,0.209136, 1.189282,2.4744,0.197684, 1.144271,2.4744,0.384379,
+ 1.144271,2.4744,0.384379, 1.210564,2.4408,0.406648, 1.258183,2.4408,0.209136,
+ 1.2746,2.4408,0, 1.2048,2.4744,0, 1.189282,2.4744,0.197684,
+ 1.189282,2.4744,0.197684, 1.258183,2.4408,0.209136, 1.2746,2.4408,0,
+ 0.213304,2.4,1.283256, 0.209136,2.4408,1.258183, 0,2.4408,1.2746,
+ 0,2.4408,1.2746, 0,2.4,1.3, 0.213304,2.4,1.283256,
+ 0.414752,2.4,1.234688, 0.406648,2.4408,1.210564, 0.209136,2.4408,1.258183,
+ 0.209136,2.4408,1.258183, 0.213304,2.4,1.283256, 0.414752,2.4,1.234688,
+ 0.601848,2.4,1.156792, 0.590089,2.4408,1.13419, 0.406648,2.4408,1.210564,
+ 0.406648,2.4408,1.210564, 0.414752,2.4,1.234688, 0.601848,2.4,1.156792,
+ 0.772096,2.4,1.052064, 0.75701,2.4408,1.031508, 0.590089,2.4408,1.13419,
+ 0.590089,2.4408,1.13419, 0.601848,2.4,1.156792, 0.772096,2.4,1.052064,
+ 0.923,2.4,0.923, 0.904966,2.4408,0.904966, 0.75701,2.4408,1.031508,
+ 0.75701,2.4408,1.031508, 0.772096,2.4,1.052064, 0.923,2.4,0.923,
+ 1.052064,2.4,0.772096, 1.031508,2.4408,0.75701, 0.904966,2.4408,0.904966,
+ 0.904966,2.4408,0.904966, 0.923,2.4,0.923, 1.052064,2.4,0.772096,
+ 1.156792,2.4,0.601848, 1.13419,2.4408,0.590089, 1.031508,2.4408,0.75701,
+ 1.031508,2.4408,0.75701, 1.052064,2.4,0.772096, 1.156792,2.4,0.601848,
+ 1.234688,2.4,0.414752, 1.210564,2.4408,0.406648, 1.13419,2.4408,0.590089,
+ 1.13419,2.4408,0.590089, 1.156792,2.4,0.601848, 1.234688,2.4,0.414752,
+ 1.283256,2.4,0.213304, 1.258183,2.4408,0.209136, 1.210564,2.4408,0.406648,
+ 1.210564,2.4408,0.406648, 1.234688,2.4,0.414752, 1.283256,2.4,0.213304,
+ 1.3,2.4,0, 1.2746,2.4408,0, 1.258183,2.4408,0.209136,
+ 1.258183,2.4408,0.209136, 1.283256,2.4,0.213304, 1.3,2.4,0,
+ 0,0,0, 0.388275,0.002175,0, 0.383274,0.002175,0.063708,
+ 0,0,0, 0.383274,0.002175,0.063708, 0.368768,0.002175,0.123875,
+ 0,0,0, 0.368768,0.002175,0.123875, 0.345503,0.002175,0.179756,
+ 0,0,0, 0.345503,0.002175,0.179756, 0.314223,0.002175,0.230604,
+ 0,0,0, 0.314223,0.002175,0.230604, 0.275675,0.002175,0.275675,
+ 0,0,0, 0.275675,0.002175,0.275675, 0.230604,0.002175,0.314223,
+ 0,0,0, 0.230604,0.002175,0.314223, 0.179756,0.002175,0.345503,
+ 0,0,0, 0.179756,0.002175,0.345503, 0.123875,0.002175,0.368768,
+ 0,0,0, 0.123875,0.002175,0.368768, 0.063708,0.002175,0.383274,
+ 0,0,0, 0.063708,0.002175,0.383274, 0,0.002175,0.388275,
+ 0.694143,0.0084,0.115381, 0.383274,0.002175,0.063708, 0.388275,0.002175,0,
+ 0.388275,0.002175,0, 0.7032,0.0084,0, 0.694143,0.0084,0.115381,
+ 0.667871,0.0084,0.224349, 0.368768,0.002175,0.123875, 0.383274,0.002175,0.063708,
+ 0.383274,0.002175,0.063708, 0.694143,0.0084,0.115381, 0.667871,0.0084,0.224349,
+ 0.625735,0.0084,0.325553, 0.345503,0.002175,0.179756, 0.368768,0.002175,0.123875,
+ 0.368768,0.002175,0.123875, 0.667871,0.0084,0.224349, 0.625735,0.0084,0.325553,
+ 0.569086,0.0084,0.417645, 0.314223,0.002175,0.230604, 0.345503,0.002175,0.179756,
+ 0.345503,0.002175,0.179756, 0.625735,0.0084,0.325553, 0.569086,0.0084,0.417645,
+ 0.499272,0.0084,0.499272, 0.275675,0.002175,0.275675, 0.314223,0.002175,0.230604,
+ 0.314223,0.002175,0.230604, 0.569086,0.0084,0.417645, 0.499272,0.0084,0.499272,
+ 0.417645,0.0084,0.569086, 0.230604,0.002175,0.314223, 0.275675,0.002175,0.275675,
+ 0.275675,0.002175,0.275675, 0.499272,0.0084,0.499272, 0.417645,0.0084,0.569086,
+ 0.325553,0.0084,0.625735, 0.179756,0.002175,0.345503, 0.230604,0.002175,0.314223,
+ 0.230604,0.002175,0.314223, 0.417645,0.0084,0.569086, 0.325553,0.0084,0.625735,
+ 0.224349,0.0084,0.667871, 0.123875,0.002175,0.368768, 0.179756,0.002175,0.345503,
+ 0.179756,0.002175,0.345503, 0.325553,0.0084,0.625735, 0.224349,0.0084,0.667871,
+ 0.115381,0.0084,0.694143, 0.063708,0.002175,0.383274, 0.123875,0.002175,0.368768,
+ 0.123875,0.002175,0.368768, 0.224349,0.0084,0.667871, 0.115381,0.0084,0.694143,
+ 0,0.0084,0.7032, 0,0.002175,0.388275, 0.063708,0.002175,0.383274,
+ 0.063708,0.002175,0.383274, 0.115381,0.0084,0.694143, 0,0.0084,0.7032,
+ 0.940158,0.018225,0.156274, 0.694143,0.0084,0.115381, 0.7032,0.0084,0,
+ 0.7032,0.0084,0, 0.952425,0.018225,0, 0.940158,0.018225,0.156274,
+ 0.904575,0.018225,0.303862, 0.667871,0.0084,0.224349, 0.694143,0.0084,0.115381,
+ 0.694143,0.0084,0.115381, 0.940158,0.018225,0.156274, 0.904575,0.018225,0.303862,
+ 0.847506,0.018225,0.440935, 0.625735,0.0084,0.325553, 0.667871,0.0084,0.224349,
+ 0.667871,0.0084,0.224349, 0.904575,0.018225,0.303862, 0.847506,0.018225,0.440935,
+ 0.770779,0.018225,0.565664, 0.569086,0.0084,0.417645, 0.625735,0.0084,0.325553,
+ 0.625735,0.0084,0.325553, 0.847506,0.018225,0.440935, 0.770779,0.018225,0.565664,
+ 0.676222,0.018225,0.676222, 0.499272,0.0084,0.499272, 0.569086,0.0084,0.417645,
+ 0.569086,0.0084,0.417645, 0.770779,0.018225,0.565664, 0.676222,0.018225,0.676222,
+ 0.565664,0.018225,0.770779, 0.417645,0.0084,0.569086, 0.499272,0.0084,0.499272,
+ 0.499272,0.0084,0.499272, 0.676222,0.018225,0.676222, 0.565664,0.018225,0.770779,
+ 0.440935,0.018225,0.847506, 0.325553,0.0084,0.625735, 0.417645,0.0084,0.569086,
+ 0.417645,0.0084,0.569086, 0.565664,0.018225,0.770779, 0.440935,0.018225,0.847506,
+ 0.303862,0.018225,0.904575, 0.224349,0.0084,0.667871, 0.325553,0.0084,0.625735,
+ 0.325553,0.0084,0.625735, 0.440935,0.018225,0.847506, 0.303862,0.018225,0.904575,
+ 0.156274,0.018225,0.940158, 0.115381,0.0084,0.694143, 0.224349,0.0084,0.667871,
+ 0.224349,0.0084,0.667871, 0.303862,0.018225,0.904575, 0.156274,0.018225,0.940158,
+ 0,0.018225,0.952425, 0,0.0084,0.7032, 0.115381,0.0084,0.694143,
+ 0.115381,0.0084,0.694143, 0.156274,0.018225,0.940158, 0,0.018225,0.952425,
+ 1.12887,0.0312,0.187642, 0.940158,0.018225,0.156274, 0.952425,0.018225,0,
+ 0.952425,0.018225,0, 1.1436,0.0312,0, 1.12887,0.0312,0.187642,
+ 1.086146,0.0312,0.364854, 0.904575,0.018225,0.303862, 0.940158,0.018225,0.156274,
+ 0.940158,0.018225,0.156274, 1.12887,0.0312,0.187642, 1.086146,0.0312,0.364854,
+ 1.017621,0.0312,0.529441, 0.847506,0.018225,0.440935, 0.904575,0.018225,0.303862,
+ 0.904575,0.018225,0.303862, 1.086146,0.0312,0.364854, 1.017621,0.0312,0.529441,
+ 0.925493,0.0312,0.679207, 0.770779,0.018225,0.565664, 0.847506,0.018225,0.440935,
+ 0.847506,0.018225,0.440935, 1.017621,0.0312,0.529441, 0.925493,0.0312,0.679207,
+ 0.811956,0.0312,0.811956, 0.676222,0.018225,0.676222, 0.770779,0.018225,0.565664,
+ 0.770779,0.018225,0.565664, 0.925493,0.0312,0.679207, 0.811956,0.0312,0.811956,
+ 0.679207,0.0312,0.925493, 0.565664,0.018225,0.770779, 0.676222,0.018225,0.676222,
+ 0.676222,0.018225,0.676222, 0.811956,0.0312,0.811956, 0.679207,0.0312,0.925493,
+ 0.529441,0.0312,1.017621, 0.440935,0.018225,0.847506, 0.565664,0.018225,0.770779,
+ 0.565664,0.018225,0.770779, 0.679207,0.0312,0.925493, 0.529441,0.0312,1.017621,
+ 0.364854,0.0312,1.086146, 0.303862,0.018225,0.904575, 0.440935,0.018225,0.847506,
+ 0.440935,0.018225,0.847506, 0.529441,0.0312,1.017621, 0.364854,0.0312,1.086146,
+ 0.187642,0.0312,1.12887, 0.156274,0.018225,0.940158, 0.303862,0.018225,0.904575,
+ 0.303862,0.018225,0.904575, 0.364854,0.0312,1.086146, 0.187642,0.0312,1.12887,
+ 0,0.0312,1.1436, 0,0.018225,0.952425, 0.156274,0.018225,0.940158,
+ 0.156274,0.018225,0.940158, 0.187642,0.0312,1.12887, 0,0.0312,1.1436,
+ 1.267832,0.046875,0.21074, 1.12887,0.0312,0.187642, 1.1436,0.0312,0,
+ 1.1436,0.0312,0, 1.284375,0.046875,0, 1.267832,0.046875,0.21074,
+ 1.219848,0.046875,0.409767, 1.086146,0.0312,0.364854, 1.12887,0.0312,0.187642,
+ 1.12887,0.0312,0.187642, 1.267832,0.046875,0.21074, 1.219848,0.046875,0.409767,
+ 1.142888,0.046875,0.594614, 1.017621,0.0312,0.529441, 1.086146,0.0312,0.364854,
+ 1.086146,0.0312,0.364854, 1.219848,0.046875,0.409767, 1.142888,0.046875,0.594614,
+ 1.039419,0.046875,0.762816, 0.925493,0.0312,0.679207, 1.017621,0.0312,0.529441,
+ 1.017621,0.0312,0.529441, 1.142888,0.046875,0.594614, 1.039419,0.046875,0.762816,
+ 0.911906,0.046875,0.911906, 0.811956,0.0312,0.811956, 0.925493,0.0312,0.679207,
+ 0.925493,0.0312,0.679207, 1.039419,0.046875,0.762816, 0.911906,0.046875,0.911906,
+ 0.762816,0.046875,1.039419, 0.679207,0.0312,0.925493, 0.811956,0.0312,0.811956,
+ 0.811956,0.0312,0.811956, 0.911906,0.046875,0.911906, 0.762816,0.046875,1.039419,
+ 0.594614,0.046875,1.142888, 0.529441,0.0312,1.017621, 0.679207,0.0312,0.925493,
+ 0.679207,0.0312,0.925493, 0.762816,0.046875,1.039419, 0.594614,0.046875,1.142888,
+ 0.409767,0.046875,1.219848, 0.364854,0.0312,1.086146, 0.529441,0.0312,1.017621,
+ 0.529441,0.0312,1.017621, 0.594614,0.046875,1.142888, 0.409767,0.046875,1.219848,
+ 0.21074,0.046875,1.267832, 0.187642,0.0312,1.12887, 0.364854,0.0312,1.086146,
+ 0.364854,0.0312,1.086146, 0.409767,0.046875,1.219848, 0.21074,0.046875,1.267832,
+ 0,0.046875,1.284375, 0,0.0312,1.1436, 0.187642,0.0312,1.12887,
+ 0.187642,0.0312,1.12887, 0.21074,0.046875,1.267832, 0,0.046875,1.284375,
+ 1.364595,0.0648,0.226824, 1.267832,0.046875,0.21074, 1.284375,0.046875,0,
+ 1.284375,0.046875,0, 1.3824,0.0648,0, 1.364595,0.0648,0.226824,
+ 1.312948,0.0648,0.441041, 1.219848,0.046875,0.409767, 1.267832,0.046875,0.21074,
+ 1.267832,0.046875,0.21074, 1.364595,0.0648,0.226824, 1.312948,0.0648,0.441041,
+ 1.230115,0.0648,0.639996, 1.142888,0.046875,0.594614, 1.219848,0.046875,0.409767,
+ 1.219848,0.046875,0.409767, 1.312948,0.0648,0.441041, 1.230115,0.0648,0.639996,
+ 1.118749,0.0648,0.821035, 1.039419,0.046875,0.762816, 1.142888,0.046875,0.594614,
+ 1.142888,0.046875,0.594614, 1.230115,0.0648,0.639996, 1.118749,0.0648,0.821035,
+ 0.981504,0.0648,0.981504, 0.911906,0.046875,0.911906, 1.039419,0.046875,0.762816,
+ 1.039419,0.046875,0.762816, 1.118749,0.0648,0.821035, 0.981504,0.0648,0.981504,
+ 0.821035,0.0648,1.118749, 0.762816,0.046875,1.039419, 0.911906,0.046875,0.911906,
+ 0.911906,0.046875,0.911906, 0.981504,0.0648,0.981504, 0.821035,0.0648,1.118749,
+ 0.639996,0.0648,1.230115, 0.594614,0.046875,1.142888, 0.762816,0.046875,1.039419,
+ 0.762816,0.046875,1.039419, 0.821035,0.0648,1.118749, 0.639996,0.0648,1.230115,
+ 0.441041,0.0648,1.312948, 0.409767,0.046875,1.219848, 0.594614,0.046875,1.142888,
+ 0.594614,0.046875,1.142888, 0.639996,0.0648,1.230115, 0.441041,0.0648,1.312948,
+ 0.226824,0.0648,1.364595, 0.21074,0.046875,1.267832, 0.409767,0.046875,1.219848,
+ 0.409767,0.046875,1.219848, 0.441041,0.0648,1.312948, 0.226824,0.0648,1.364595,
+ 0,0.0648,1.3824, 0,0.046875,1.284375, 0.21074,0.046875,1.267832,
+ 0.21074,0.046875,1.267832, 0.226824,0.0648,1.364595, 0,0.0648,1.3824,
+ 1.426709,0.084525,0.237149, 1.364595,0.0648,0.226824, 1.3824,0.0648,0,
+ 1.3824,0.0648,0, 1.445325,0.084525,0, 1.426709,0.084525,0.237149,
+ 1.372712,0.084525,0.461116, 1.312948,0.0648,0.441041, 1.364595,0.0648,0.226824,
+ 1.364595,0.0648,0.226824, 1.426709,0.084525,0.237149, 1.372712,0.084525,0.461116,
+ 1.286108,0.084525,0.669128, 1.230115,0.0648,0.639996, 1.312948,0.0648,0.441041,
+ 1.312948,0.0648,0.441041, 1.372712,0.084525,0.461116, 1.286108,0.084525,0.669128,
+ 1.169673,0.084525,0.858407, 1.118749,0.0648,0.821035, 1.230115,0.0648,0.639996,
+ 1.230115,0.0648,0.639996, 1.286108,0.084525,0.669128, 1.169673,0.084525,0.858407,
+ 1.026181,0.084525,1.026181, 0.981504,0.0648,0.981504, 1.118749,0.0648,0.821035,
+ 1.118749,0.0648,0.821035, 1.169673,0.084525,0.858407, 1.026181,0.084525,1.026181,
+ 0.858407,0.084525,1.169673, 0.821035,0.0648,1.118749, 0.981504,0.0648,0.981504,
+ 0.981504,0.0648,0.981504, 1.026181,0.084525,1.026181, 0.858407,0.084525,1.169673,
+ 0.669128,0.084525,1.286108, 0.639996,0.0648,1.230115, 0.821035,0.0648,1.118749,
+ 0.821035,0.0648,1.118749, 0.858407,0.084525,1.169673, 0.669128,0.084525,1.286108,
+ 0.461116,0.084525,1.372712, 0.441041,0.0648,1.312948, 0.639996,0.0648,1.230115,
+ 0.639996,0.0648,1.230115, 0.669128,0.084525,1.286108, 0.461116,0.084525,1.372712,
+ 0.237149,0.084525,1.426709, 0.226824,0.0648,1.364595, 0.441041,0.0648,1.312948,
+ 0.441041,0.0648,1.312948, 0.461116,0.084525,1.372712, 0.237149,0.084525,1.426709,
+ 0,0.084525,1.445325, 0,0.0648,1.3824, 0.226824,0.0648,1.364595,
+ 0.226824,0.0648,1.364595, 0.237149,0.084525,1.426709, 0,0.084525,1.445325,
+ 1.461727,0.1056,0.24297, 1.426709,0.084525,0.237149, 1.445325,0.084525,0,
+ 1.445325,0.084525,0, 1.4808,0.1056,0, 1.461727,0.1056,0.24297,
+ 1.406405,0.1056,0.472434, 1.372712,0.084525,0.461116, 1.426709,0.084525,0.237149,
+ 1.426709,0.084525,0.237149, 1.461727,0.1056,0.24297, 1.406405,0.1056,0.472434,
+ 1.317675,0.1056,0.685551, 1.286108,0.084525,0.669128, 1.372712,0.084525,0.461116,
+ 1.372712,0.084525,0.461116, 1.406405,0.1056,0.472434, 1.317675,0.1056,0.685551,
+ 1.198382,0.1056,0.879477, 1.169673,0.084525,0.858407, 1.286108,0.084525,0.669128,
+ 1.286108,0.084525,0.669128, 1.317675,0.1056,0.685551, 1.198382,0.1056,0.879477,
+ 1.051368,0.1056,1.051368, 1.026181,0.084525,1.026181, 1.169673,0.084525,0.858407,
+ 1.169673,0.084525,0.858407, 1.198382,0.1056,0.879477, 1.051368,0.1056,1.051368,
+ 0.879477,0.1056,1.198382, 0.858407,0.084525,1.169673, 1.026181,0.084525,1.026181,
+ 1.026181,0.084525,1.026181, 1.051368,0.1056,1.051368, 0.879477,0.1056,1.198382,
+ 0.685551,0.1056,1.317675, 0.669128,0.084525,1.286108, 0.858407,0.084525,1.169673,
+ 0.858407,0.084525,1.169673, 0.879477,0.1056,1.198382, 0.685551,0.1056,1.317675,
+ 0.472434,0.1056,1.406405, 0.461116,0.084525,1.372712, 0.669128,0.084525,1.286108,
+ 0.669128,0.084525,1.286108, 0.685551,0.1056,1.317675, 0.472434,0.1056,1.406405,
+ 0.24297,0.1056,1.461727, 0.237149,0.084525,1.426709, 0.461116,0.084525,1.372712,
+ 0.461116,0.084525,1.372712, 0.472434,0.1056,1.406405, 0.24297,0.1056,1.461727,
+ 0,0.1056,1.4808, 0,0.084525,1.445325, 0.237149,0.084525,1.426709,
+ 0.237149,0.084525,1.426709, 0.24297,0.1056,1.461727, 0,0.1056,1.4808,
+ 1.4772,0.127575,0.245542, 1.461727,0.1056,0.24297, 1.4808,0.1056,0,
+ 1.4808,0.1056,0, 1.496475,0.127575,0, 1.4772,0.127575,0.245542,
+ 1.421292,0.127575,0.477435, 1.406405,0.1056,0.472434, 1.461727,0.1056,0.24297,
+ 1.461727,0.1056,0.24297, 1.4772,0.127575,0.245542, 1.421292,0.127575,0.477435,
+ 1.331623,0.127575,0.692808, 1.317675,0.1056,0.685551, 1.406405,0.1056,0.472434,
+ 1.406405,0.1056,0.472434, 1.421292,0.127575,0.477435, 1.331623,0.127575,0.692808,
+ 1.211067,0.127575,0.888786, 1.198382,0.1056,0.879477, 1.317675,0.1056,0.685551,
+ 1.317675,0.1056,0.685551, 1.331623,0.127575,0.692808, 1.211067,0.127575,0.888786,
+ 1.062497,0.127575,1.062497, 1.051368,0.1056,1.051368, 1.198382,0.1056,0.879477,
+ 1.198382,0.1056,0.879477, 1.211067,0.127575,0.888786, 1.062497,0.127575,1.062497,
+ 0.888786,0.127575,1.211067, 0.879477,0.1056,1.198382, 1.051368,0.1056,1.051368,
+ 1.051368,0.1056,1.051368, 1.062497,0.127575,1.062497, 0.888786,0.127575,1.211067,
+ 0.692808,0.127575,1.331623, 0.685551,0.1056,1.317675, 0.879477,0.1056,1.198382,
+ 0.879477,0.1056,1.198382, 0.888786,0.127575,1.211067, 0.692808,0.127575,1.331623,
+ 0.477435,0.127575,1.421292, 0.472434,0.1056,1.406405, 0.685551,0.1056,1.317675,
+ 0.685551,0.1056,1.317675, 0.692808,0.127575,1.331623, 0.477435,0.127575,1.421292,
+ 0.245542,0.127575,1.4772, 0.24297,0.1056,1.461727, 0.472434,0.1056,1.406405,
+ 0.472434,0.1056,1.406405, 0.477435,0.127575,1.421292, 0.245542,0.127575,1.4772,
+ 0,0.127575,1.496475, 0,0.1056,1.4808, 0.24297,0.1056,1.461727,
+ 0.24297,0.1056,1.461727, 0.245542,0.127575,1.4772, 0,0.127575,1.496475,
+ 1.48068,0.15,0.24612, 1.4772,0.127575,0.245542, 1.496475,0.127575,0,
+ 1.496475,0.127575,0, 1.5,0.15,0, 1.48068,0.15,0.24612,
+ 1.42464,0.15,0.47856, 1.421292,0.127575,0.477435, 1.4772,0.127575,0.245542,
+ 1.4772,0.127575,0.245542, 1.48068,0.15,0.24612, 1.42464,0.15,0.47856,
+ 1.33476,0.15,0.69444, 1.331623,0.127575,0.692808, 1.421292,0.127575,0.477435,
+ 1.421292,0.127575,0.477435, 1.42464,0.15,0.47856, 1.33476,0.15,0.69444,
+ 1.21392,0.15,0.89088, 1.211067,0.127575,0.888786, 1.331623,0.127575,0.692808,
+ 1.331623,0.127575,0.692808, 1.33476,0.15,0.69444, 1.21392,0.15,0.89088,
+ 1.065,0.15,1.065, 1.062497,0.127575,1.062497, 1.211067,0.127575,0.888786,
+ 1.211067,0.127575,0.888786, 1.21392,0.15,0.89088, 1.065,0.15,1.065,
+ 0.89088,0.15,1.21392, 0.888786,0.127575,1.211067, 1.062497,0.127575,1.062497,
+ 1.062497,0.127575,1.062497, 1.065,0.15,1.065, 0.89088,0.15,1.21392,
+ 0.69444,0.15,1.33476, 0.692808,0.127575,1.331623, 0.888786,0.127575,1.211067,
+ 0.888786,0.127575,1.211067, 0.89088,0.15,1.21392, 0.69444,0.15,1.33476,
+ 0.47856,0.15,1.42464, 0.477435,0.127575,1.421292, 0.692808,0.127575,1.331623,
+ 0.692808,0.127575,1.331623, 0.69444,0.15,1.33476, 0.47856,0.15,1.42464,
+ 0.24612,0.15,1.48068, 0.245542,0.127575,1.4772, 0.477435,0.127575,1.421292,
+ 0.477435,0.127575,1.421292, 0.47856,0.15,1.42464, 0.24612,0.15,1.48068,
+ 0,0.15,1.5, 0,0.127575,1.496475, 0.245542,0.127575,1.4772,
+ 0.245542,0.127575,1.4772, 0.24612,0.15,1.48068, 0,0.15,1.5,
+ 0,0,0, 0,0.002175,0.388275, -0.063708,0.002175,0.383274,
+ 0,0,0, -0.063708,0.002175,0.383274, -0.123875,0.002175,0.368768,
+ 0,0,0, -0.123875,0.002175,0.368768, -0.179756,0.002175,0.345503,
+ 0,0,0, -0.179756,0.002175,0.345503, -0.230604,0.002175,0.314223,
+ 0,0,0, -0.230604,0.002175,0.314223, -0.275675,0.002175,0.275675,
+ 0,0,0, -0.275675,0.002175,0.275675, -0.314223,0.002175,0.230604,
+ 0,0,0, -0.314223,0.002175,0.230604, -0.345503,0.002175,0.179756,
+ 0,0,0, -0.345503,0.002175,0.179756, -0.368768,0.002175,0.123875,
+ 0,0,0, -0.368768,0.002175,0.123875, -0.383274,0.002175,0.063708,
+ 0,0,0, -0.383274,0.002175,0.063708, -0.388275,0.002175,0,
+ -0.115381,0.0084,0.694143, -0.063708,0.002175,0.383274, 0,0.002175,0.388275,
+ 0,0.002175,0.388275, 0,0.0084,0.7032, -0.115381,0.0084,0.694143,
+ -0.224349,0.0084,0.667871, -0.123875,0.002175,0.368768, -0.063708,0.002175,0.383274,
+ -0.063708,0.002175,0.383274, -0.115381,0.0084,0.694143, -0.224349,0.0084,0.667871,
+ -0.325553,0.0084,0.625735, -0.179756,0.002175,0.345503, -0.123875,0.002175,0.368768,
+ -0.123875,0.002175,0.368768, -0.224349,0.0084,0.667871, -0.325553,0.0084,0.625735,
+ -0.417645,0.0084,0.569086, -0.230604,0.002175,0.314223, -0.179756,0.002175,0.345503,
+ -0.179756,0.002175,0.345503, -0.325553,0.0084,0.625735, -0.417645,0.0084,0.569086,
+ -0.499272,0.0084,0.499272, -0.275675,0.002175,0.275675, -0.230604,0.002175,0.314223,
+ -0.230604,0.002175,0.314223, -0.417645,0.0084,0.569086, -0.499272,0.0084,0.499272,
+ -0.569086,0.0084,0.417645, -0.314223,0.002175,0.230604, -0.275675,0.002175,0.275675,
+ -0.275675,0.002175,0.275675, -0.499272,0.0084,0.499272, -0.569086,0.0084,0.417645,
+ -0.625735,0.0084,0.325553, -0.345503,0.002175,0.179756, -0.314223,0.002175,0.230604,
+ -0.314223,0.002175,0.230604, -0.569086,0.0084,0.417645, -0.625735,0.0084,0.325553,
+ -0.667871,0.0084,0.224349, -0.368768,0.002175,0.123875, -0.345503,0.002175,0.179756,
+ -0.345503,0.002175,0.179756, -0.625735,0.0084,0.325553, -0.667871,0.0084,0.224349,
+ -0.694143,0.0084,0.115381, -0.383274,0.002175,0.063708, -0.368768,0.002175,0.123875,
+ -0.368768,0.002175,0.123875, -0.667871,0.0084,0.224349, -0.694143,0.0084,0.115381,
+ -0.7032,0.0084,0, -0.388275,0.002175,0, -0.383274,0.002175,0.063708,
+ -0.383274,0.002175,0.063708, -0.694143,0.0084,0.115381, -0.7032,0.0084,0,
+ -0.156274,0.018225,0.940158, -0.115381,0.0084,0.694143, 0,0.0084,0.7032,
+ 0,0.0084,0.7032, 0,0.018225,0.952425, -0.156274,0.018225,0.940158,
+ -0.303862,0.018225,0.904575, -0.224349,0.0084,0.667871, -0.115381,0.0084,0.694143,
+ -0.115381,0.0084,0.694143, -0.156274,0.018225,0.940158, -0.303862,0.018225,0.904575,
+ -0.440935,0.018225,0.847506, -0.325553,0.0084,0.625735, -0.224349,0.0084,0.667871,
+ -0.224349,0.0084,0.667871, -0.303862,0.018225,0.904575, -0.440935,0.018225,0.847506,
+ -0.565664,0.018225,0.770779, -0.417645,0.0084,0.569086, -0.325553,0.0084,0.625735,
+ -0.325553,0.0084,0.625735, -0.440935,0.018225,0.847506, -0.565664,0.018225,0.770779,
+ -0.676222,0.018225,0.676222, -0.499272,0.0084,0.499272, -0.417645,0.0084,0.569086,
+ -0.417645,0.0084,0.569086, -0.565664,0.018225,0.770779, -0.676222,0.018225,0.676222,
+ -0.770779,0.018225,0.565664, -0.569086,0.0084,0.417645, -0.499272,0.0084,0.499272,
+ -0.499272,0.0084,0.499272, -0.676222,0.018225,0.676222, -0.770779,0.018225,0.565664,
+ -0.847506,0.018225,0.440935, -0.625735,0.0084,0.325553, -0.569086,0.0084,0.417645,
+ -0.569086,0.0084,0.417645, -0.770779,0.018225,0.565664, -0.847506,0.018225,0.440935,
+ -0.904575,0.018225,0.303862, -0.667871,0.0084,0.224349, -0.625735,0.0084,0.325553,
+ -0.625735,0.0084,0.325553, -0.847506,0.018225,0.440935, -0.904575,0.018225,0.303862,
+ -0.940158,0.018225,0.156274, -0.694143,0.0084,0.115381, -0.667871,0.0084,0.224349,
+ -0.667871,0.0084,0.224349, -0.904575,0.018225,0.303862, -0.940158,0.018225,0.156274,
+ -0.952425,0.018225,0, -0.7032,0.0084,0, -0.694143,0.0084,0.115381,
+ -0.694143,0.0084,0.115381, -0.940158,0.018225,0.156274, -0.952425,0.018225,0,
+ -0.187642,0.0312,1.12887, -0.156274,0.018225,0.940158, 0,0.018225,0.952425,
+ 0,0.018225,0.952425, 0,0.0312,1.1436, -0.187642,0.0312,1.12887,
+ -0.364854,0.0312,1.086146, -0.303862,0.018225,0.904575, -0.156274,0.018225,0.940158,
+ -0.156274,0.018225,0.940158, -0.187642,0.0312,1.12887, -0.364854,0.0312,1.086146,
+ -0.529441,0.0312,1.017621, -0.440935,0.018225,0.847506, -0.303862,0.018225,0.904575,
+ -0.303862,0.018225,0.904575, -0.364854,0.0312,1.086146, -0.529441,0.0312,1.017621,
+ -0.679207,0.0312,0.925493, -0.565664,0.018225,0.770779, -0.440935,0.018225,0.847506,
+ -0.440935,0.018225,0.847506, -0.529441,0.0312,1.017621, -0.679207,0.0312,0.925493,
+ -0.811956,0.0312,0.811956, -0.676222,0.018225,0.676222, -0.565664,0.018225,0.770779,
+ -0.565664,0.018225,0.770779, -0.679207,0.0312,0.925493, -0.811956,0.0312,0.811956,
+ -0.925493,0.0312,0.679207, -0.770779,0.018225,0.565664, -0.676222,0.018225,0.676222,
+ -0.676222,0.018225,0.676222, -0.811956,0.0312,0.811956, -0.925493,0.0312,0.679207,
+ -1.017621,0.0312,0.529441, -0.847506,0.018225,0.440935, -0.770779,0.018225,0.565664,
+ -0.770779,0.018225,0.565664, -0.925493,0.0312,0.679207, -1.017621,0.0312,0.529441,
+ -1.086146,0.0312,0.364854, -0.904575,0.018225,0.303862, -0.847506,0.018225,0.440935,
+ -0.847506,0.018225,0.440935, -1.017621,0.0312,0.529441, -1.086146,0.0312,0.364854,
+ -1.12887,0.0312,0.187642, -0.940158,0.018225,0.156274, -0.904575,0.018225,0.303862,
+ -0.904575,0.018225,0.303862, -1.086146,0.0312,0.364854, -1.12887,0.0312,0.187642,
+ -1.1436,0.0312,0, -0.952425,0.018225,0, -0.940158,0.018225,0.156274,
+ -0.940158,0.018225,0.156274, -1.12887,0.0312,0.187642, -1.1436,0.0312,0,
+ -0.21074,0.046875,1.267832, -0.187642,0.0312,1.12887, 0,0.0312,1.1436,
+ 0,0.0312,1.1436, 0,0.046875,1.284375, -0.21074,0.046875,1.267832,
+ -0.409767,0.046875,1.219848, -0.364854,0.0312,1.086146, -0.187642,0.0312,1.12887,
+ -0.187642,0.0312,1.12887, -0.21074,0.046875,1.267832, -0.409767,0.046875,1.219848,
+ -0.594614,0.046875,1.142888, -0.529441,0.0312,1.017621, -0.364854,0.0312,1.086146,
+ -0.364854,0.0312,1.086146, -0.409767,0.046875,1.219848, -0.594614,0.046875,1.142888,
+ -0.762816,0.046875,1.039419, -0.679207,0.0312,0.925493, -0.529441,0.0312,1.017621,
+ -0.529441,0.0312,1.017621, -0.594614,0.046875,1.142888, -0.762816,0.046875,1.039419,
+ -0.911906,0.046875,0.911906, -0.811956,0.0312,0.811956, -0.679207,0.0312,0.925493,
+ -0.679207,0.0312,0.925493, -0.762816,0.046875,1.039419, -0.911906,0.046875,0.911906,
+ -1.039419,0.046875,0.762816, -0.925493,0.0312,0.679207, -0.811956,0.0312,0.811956,
+ -0.811956,0.0312,0.811956, -0.911906,0.046875,0.911906, -1.039419,0.046875,0.762816,
+ -1.142888,0.046875,0.594614, -1.017621,0.0312,0.529441, -0.925493,0.0312,0.679207,
+ -0.925493,0.0312,0.679207, -1.039419,0.046875,0.762816, -1.142888,0.046875,0.594614,
+ -1.219848,0.046875,0.409767, -1.086146,0.0312,0.364854, -1.017621,0.0312,0.529441,
+ -1.017621,0.0312,0.529441, -1.142888,0.046875,0.594614, -1.219848,0.046875,0.409767,
+ -1.267832,0.046875,0.21074, -1.12887,0.0312,0.187642, -1.086146,0.0312,0.364854,
+ -1.086146,0.0312,0.364854, -1.219848,0.046875,0.409767, -1.267832,0.046875,0.21074,
+ -1.284375,0.046875,0, -1.1436,0.0312,0, -1.12887,0.0312,0.187642,
+ -1.12887,0.0312,0.187642, -1.267832,0.046875,0.21074, -1.284375,0.046875,0,
+ -0.226824,0.0648,1.364595, -0.21074,0.046875,1.267832, 0,0.046875,1.284375,
+ 0,0.046875,1.284375, 0,0.0648,1.3824, -0.226824,0.0648,1.364595,
+ -0.441041,0.0648,1.312948, -0.409767,0.046875,1.219848, -0.21074,0.046875,1.267832,
+ -0.21074,0.046875,1.267832, -0.226824,0.0648,1.364595, -0.441041,0.0648,1.312948,
+ -0.639996,0.0648,1.230115, -0.594614,0.046875,1.142888, -0.409767,0.046875,1.219848,
+ -0.409767,0.046875,1.219848, -0.441041,0.0648,1.312948, -0.639996,0.0648,1.230115,
+ -0.821035,0.0648,1.118749, -0.762816,0.046875,1.039419, -0.594614,0.046875,1.142888,
+ -0.594614,0.046875,1.142888, -0.639996,0.0648,1.230115, -0.821035,0.0648,1.118749,
+ -0.981504,0.0648,0.981504, -0.911906,0.046875,0.911906, -0.762816,0.046875,1.039419,
+ -0.762816,0.046875,1.039419, -0.821035,0.0648,1.118749, -0.981504,0.0648,0.981504,
+ -1.118749,0.0648,0.821035, -1.039419,0.046875,0.762816, -0.911906,0.046875,0.911906,
+ -0.911906,0.046875,0.911906, -0.981504,0.0648,0.981504, -1.118749,0.0648,0.821035,
+ -1.230115,0.0648,0.639996, -1.142888,0.046875,0.594614, -1.039419,0.046875,0.762816,
+ -1.039419,0.046875,0.762816, -1.118749,0.0648,0.821035, -1.230115,0.0648,0.639996,
+ -1.312948,0.0648,0.441041, -1.219848,0.046875,0.409767, -1.142888,0.046875,0.594614,
+ -1.142888,0.046875,0.594614, -1.230115,0.0648,0.639996, -1.312948,0.0648,0.441041,
+ -1.364595,0.0648,0.226824, -1.267832,0.046875,0.21074, -1.219848,0.046875,0.409767,
+ -1.219848,0.046875,0.409767, -1.312948,0.0648,0.441041, -1.364595,0.0648,0.226824,
+ -1.3824,0.0648,0, -1.284375,0.046875,0, -1.267832,0.046875,0.21074,
+ -1.267832,0.046875,0.21074, -1.364595,0.0648,0.226824, -1.3824,0.0648,0,
+ -0.237149,0.084525,1.426709, -0.226824,0.0648,1.364595, 0,0.0648,1.3824,
+ 0,0.0648,1.3824, 0,0.084525,1.445325, -0.237149,0.084525,1.426709,
+ -0.461116,0.084525,1.372712, -0.441041,0.0648,1.312948, -0.226824,0.0648,1.364595,
+ -0.226824,0.0648,1.364595, -0.237149,0.084525,1.426709, -0.461116,0.084525,1.372712,
+ -0.669128,0.084525,1.286108, -0.639996,0.0648,1.230115, -0.441041,0.0648,1.312948,
+ -0.441041,0.0648,1.312948, -0.461116,0.084525,1.372712, -0.669128,0.084525,1.286108,
+ -0.858407,0.084525,1.169673, -0.821035,0.0648,1.118749, -0.639996,0.0648,1.230115,
+ -0.639996,0.0648,1.230115, -0.669128,0.084525,1.286108, -0.858407,0.084525,1.169673,
+ -1.026181,0.084525,1.026181, -0.981504,0.0648,0.981504, -0.821035,0.0648,1.118749,
+ -0.821035,0.0648,1.118749, -0.858407,0.084525,1.169673, -1.026181,0.084525,1.026181,
+ -1.169673,0.084525,0.858407, -1.118749,0.0648,0.821035, -0.981504,0.0648,0.981504,
+ -0.981504,0.0648,0.981504, -1.026181,0.084525,1.026181, -1.169673,0.084525,0.858407,
+ -1.286108,0.084525,0.669128, -1.230115,0.0648,0.639996, -1.118749,0.0648,0.821035,
+ -1.118749,0.0648,0.821035, -1.169673,0.084525,0.858407, -1.286108,0.084525,0.669128,
+ -1.372712,0.084525,0.461116, -1.312948,0.0648,0.441041, -1.230115,0.0648,0.639996,
+ -1.230115,0.0648,0.639996, -1.286108,0.084525,0.669128, -1.372712,0.084525,0.461116,
+ -1.426709,0.084525,0.237149, -1.364595,0.0648,0.226824, -1.312948,0.0648,0.441041,
+ -1.312948,0.0648,0.441041, -1.372712,0.084525,0.461116, -1.426709,0.084525,0.237149,
+ -1.445325,0.084525,0, -1.3824,0.0648,0, -1.364595,0.0648,0.226824,
+ -1.364595,0.0648,0.226824, -1.426709,0.084525,0.237149, -1.445325,0.084525,0,
+ -0.24297,0.1056,1.461727, -0.237149,0.084525,1.426709, 0,0.084525,1.445325,
+ 0,0.084525,1.445325, 0,0.1056,1.4808, -0.24297,0.1056,1.461727,
+ -0.472434,0.1056,1.406405, -0.461116,0.084525,1.372712, -0.237149,0.084525,1.426709,
+ -0.237149,0.084525,1.426709, -0.24297,0.1056,1.461727, -0.472434,0.1056,1.406405,
+ -0.685551,0.1056,1.317675, -0.669128,0.084525,1.286108, -0.461116,0.084525,1.372712,
+ -0.461116,0.084525,1.372712, -0.472434,0.1056,1.406405, -0.685551,0.1056,1.317675,
+ -0.879477,0.1056,1.198382, -0.858407,0.084525,1.169673, -0.669128,0.084525,1.286108,
+ -0.669128,0.084525,1.286108, -0.685551,0.1056,1.317675, -0.879477,0.1056,1.198382,
+ -1.051368,0.1056,1.051368, -1.026181,0.084525,1.026181, -0.858407,0.084525,1.169673,
+ -0.858407,0.084525,1.169673, -0.879477,0.1056,1.198382, -1.051368,0.1056,1.051368,
+ -1.198382,0.1056,0.879477, -1.169673,0.084525,0.858407, -1.026181,0.084525,1.026181,
+ -1.026181,0.084525,1.026181, -1.051368,0.1056,1.051368, -1.198382,0.1056,0.879477,
+ -1.317675,0.1056,0.685551, -1.286108,0.084525,0.669128, -1.169673,0.084525,0.858407,
+ -1.169673,0.084525,0.858407, -1.198382,0.1056,0.879477, -1.317675,0.1056,0.685551,
+ -1.406405,0.1056,0.472434, -1.372712,0.084525,0.461116, -1.286108,0.084525,0.669128,
+ -1.286108,0.084525,0.669128, -1.317675,0.1056,0.685551, -1.406405,0.1056,0.472434,
+ -1.461727,0.1056,0.24297, -1.426709,0.084525,0.237149, -1.372712,0.084525,0.461116,
+ -1.372712,0.084525,0.461116, -1.406405,0.1056,0.472434, -1.461727,0.1056,0.24297,
+ -1.4808,0.1056,0, -1.445325,0.084525,0, -1.426709,0.084525,0.237149,
+ -1.426709,0.084525,0.237149, -1.461727,0.1056,0.24297, -1.4808,0.1056,0,
+ -0.245542,0.127575,1.4772, -0.24297,0.1056,1.461727, 0,0.1056,1.4808,
+ 0,0.1056,1.4808, 0,0.127575,1.496475, -0.245542,0.127575,1.4772,
+ -0.477435,0.127575,1.421292, -0.472434,0.1056,1.406405, -0.24297,0.1056,1.461727,
+ -0.24297,0.1056,1.461727, -0.245542,0.127575,1.4772, -0.477435,0.127575,1.421292,
+ -0.692808,0.127575,1.331623, -0.685551,0.1056,1.317675, -0.472434,0.1056,1.406405,
+ -0.472434,0.1056,1.406405, -0.477435,0.127575,1.421292, -0.692808,0.127575,1.331623,
+ -0.888786,0.127575,1.211067, -0.879477,0.1056,1.198382, -0.685551,0.1056,1.317675,
+ -0.685551,0.1056,1.317675, -0.692808,0.127575,1.331623, -0.888786,0.127575,1.211067,
+ -1.062497,0.127575,1.062497, -1.051368,0.1056,1.051368, -0.879477,0.1056,1.198382,
+ -0.879477,0.1056,1.198382, -0.888786,0.127575,1.211067, -1.062497,0.127575,1.062497,
+ -1.211067,0.127575,0.888786, -1.198382,0.1056,0.879477, -1.051368,0.1056,1.051368,
+ -1.051368,0.1056,1.051368, -1.062497,0.127575,1.062497, -1.211067,0.127575,0.888786,
+ -1.331623,0.127575,0.692808, -1.317675,0.1056,0.685551, -1.198382,0.1056,0.879477,
+ -1.198382,0.1056,0.879477, -1.211067,0.127575,0.888786, -1.331623,0.127575,0.692808,
+ -1.421292,0.127575,0.477435, -1.406405,0.1056,0.472434, -1.317675,0.1056,0.685551,
+ -1.317675,0.1056,0.685551, -1.331623,0.127575,0.692808, -1.421292,0.127575,0.477435,
+ -1.4772,0.127575,0.245542, -1.461727,0.1056,0.24297, -1.406405,0.1056,0.472434,
+ -1.406405,0.1056,0.472434, -1.421292,0.127575,0.477435, -1.4772,0.127575,0.245542,
+ -1.496475,0.127575,0, -1.4808,0.1056,0, -1.461727,0.1056,0.24297,
+ -1.461727,0.1056,0.24297, -1.4772,0.127575,0.245542, -1.496475,0.127575,0,
+ -0.24612,0.15,1.48068, -0.245542,0.127575,1.4772, 0,0.127575,1.496475,
+ 0,0.127575,1.496475, 0,0.15,1.5, -0.24612,0.15,1.48068,
+ -0.47856,0.15,1.42464, -0.477435,0.127575,1.421292, -0.245542,0.127575,1.4772,
+ -0.245542,0.127575,1.4772, -0.24612,0.15,1.48068, -0.47856,0.15,1.42464,
+ -0.69444,0.15,1.33476, -0.692808,0.127575,1.331623, -0.477435,0.127575,1.421292,
+ -0.477435,0.127575,1.421292, -0.47856,0.15,1.42464, -0.69444,0.15,1.33476,
+ -0.89088,0.15,1.21392, -0.888786,0.127575,1.211067, -0.692808,0.127575,1.331623,
+ -0.692808,0.127575,1.331623, -0.69444,0.15,1.33476, -0.89088,0.15,1.21392,
+ -1.065,0.15,1.065, -1.062497,0.127575,1.062497, -0.888786,0.127575,1.211067,
+ -0.888786,0.127575,1.211067, -0.89088,0.15,1.21392, -1.065,0.15,1.065,
+ -1.21392,0.15,0.89088, -1.211067,0.127575,0.888786, -1.062497,0.127575,1.062497,
+ -1.062497,0.127575,1.062497, -1.065,0.15,1.065, -1.21392,0.15,0.89088,
+ -1.33476,0.15,0.69444, -1.331623,0.127575,0.692808, -1.211067,0.127575,0.888786,
+ -1.211067,0.127575,0.888786, -1.21392,0.15,0.89088, -1.33476,0.15,0.69444,
+ -1.42464,0.15,0.47856, -1.421292,0.127575,0.477435, -1.331623,0.127575,0.692808,
+ -1.331623,0.127575,0.692808, -1.33476,0.15,0.69444, -1.42464,0.15,0.47856,
+ -1.48068,0.15,0.24612, -1.4772,0.127575,0.245542, -1.421292,0.127575,0.477435,
+ -1.421292,0.127575,0.477435, -1.42464,0.15,0.47856, -1.48068,0.15,0.24612,
+ -1.5,0.15,0, -1.496475,0.127575,0, -1.4772,0.127575,0.245542,
+ -1.4772,0.127575,0.245542, -1.48068,0.15,0.24612, -1.5,0.15,0,
+ 0,0,0, -0.388275,0.002175,0, -0.383274,0.002175,-0.063708,
+ 0,0,0, -0.383274,0.002175,-0.063708, -0.368768,0.002175,-0.123875,
+ 0,0,0, -0.368768,0.002175,-0.123875, -0.345503,0.002175,-0.179756,
+ 0,0,0, -0.345503,0.002175,-0.179756, -0.314223,0.002175,-0.230604,
+ 0,0,0, -0.314223,0.002175,-0.230604, -0.275675,0.002175,-0.275675,
+ 0,0,0, -0.275675,0.002175,-0.275675, -0.230604,0.002175,-0.314223,
+ 0,0,0, -0.230604,0.002175,-0.314223, -0.179756,0.002175,-0.345503,
+ 0,0,0, -0.179756,0.002175,-0.345503, -0.123875,0.002175,-0.368768,
+ 0,0,0, -0.123875,0.002175,-0.368768, -0.063708,0.002175,-0.383274,
+ 0,0,0, -0.063708,0.002175,-0.383274, 0,0.002175,-0.388275,
+ -0.694143,0.0084,-0.115381, -0.383274,0.002175,-0.063708, -0.388275,0.002175,0,
+ -0.388275,0.002175,0, -0.7032,0.0084,0, -0.694143,0.0084,-0.115381,
+ -0.667871,0.0084,-0.224349, -0.368768,0.002175,-0.123875, -0.383274,0.002175,-0.063708,
+ -0.383274,0.002175,-0.063708, -0.694143,0.0084,-0.115381, -0.667871,0.0084,-0.224349,
+ -0.625735,0.0084,-0.325553, -0.345503,0.002175,-0.179756, -0.368768,0.002175,-0.123875,
+ -0.368768,0.002175,-0.123875, -0.667871,0.0084,-0.224349, -0.625735,0.0084,-0.325553,
+ -0.569086,0.0084,-0.417645, -0.314223,0.002175,-0.230604, -0.345503,0.002175,-0.179756,
+ -0.345503,0.002175,-0.179756, -0.625735,0.0084,-0.325553, -0.569086,0.0084,-0.417645,
+ -0.499272,0.0084,-0.499272, -0.275675,0.002175,-0.275675, -0.314223,0.002175,-0.230604,
+ -0.314223,0.002175,-0.230604, -0.569086,0.0084,-0.417645, -0.499272,0.0084,-0.499272,
+ -0.417645,0.0084,-0.569086, -0.230604,0.002175,-0.314223, -0.275675,0.002175,-0.275675,
+ -0.275675,0.002175,-0.275675, -0.499272,0.0084,-0.499272, -0.417645,0.0084,-0.569086,
+ -0.325553,0.0084,-0.625735, -0.179756,0.002175,-0.345503, -0.230604,0.002175,-0.314223,
+ -0.230604,0.002175,-0.314223, -0.417645,0.0084,-0.569086, -0.325553,0.0084,-0.625735,
+ -0.224349,0.0084,-0.667871, -0.123875,0.002175,-0.368768, -0.179756,0.002175,-0.345503,
+ -0.179756,0.002175,-0.345503, -0.325553,0.0084,-0.625735, -0.224349,0.0084,-0.667871,
+ -0.115381,0.0084,-0.694143, -0.063708,0.002175,-0.383274, -0.123875,0.002175,-0.368768,
+ -0.123875,0.002175,-0.368768, -0.224349,0.0084,-0.667871, -0.115381,0.0084,-0.694143,
+ 0,0.0084,-0.7032, 0,0.002175,-0.388275, -0.063708,0.002175,-0.383274,
+ -0.063708,0.002175,-0.383274, -0.115381,0.0084,-0.694143, 0,0.0084,-0.7032,
+ -0.940158,0.018225,-0.156274, -0.694143,0.0084,-0.115381, -0.7032,0.0084,0,
+ -0.7032,0.0084,0, -0.952425,0.018225,0, -0.940158,0.018225,-0.156274,
+ -0.904575,0.018225,-0.303862, -0.667871,0.0084,-0.224349, -0.694143,0.0084,-0.115381,
+ -0.694143,0.0084,-0.115381, -0.940158,0.018225,-0.156274, -0.904575,0.018225,-0.303862,
+ -0.847506,0.018225,-0.440935, -0.625735,0.0084,-0.325553, -0.667871,0.0084,-0.224349,
+ -0.667871,0.0084,-0.224349, -0.904575,0.018225,-0.303862, -0.847506,0.018225,-0.440935,
+ -0.770779,0.018225,-0.565664, -0.569086,0.0084,-0.417645, -0.625735,0.0084,-0.325553,
+ -0.625735,0.0084,-0.325553, -0.847506,0.018225,-0.440935, -0.770779,0.018225,-0.565664,
+ -0.676222,0.018225,-0.676222, -0.499272,0.0084,-0.499272, -0.569086,0.0084,-0.417645,
+ -0.569086,0.0084,-0.417645, -0.770779,0.018225,-0.565664, -0.676222,0.018225,-0.676222,
+ -0.565664,0.018225,-0.770779, -0.417645,0.0084,-0.569086, -0.499272,0.0084,-0.499272,
+ -0.499272,0.0084,-0.499272, -0.676222,0.018225,-0.676222, -0.565664,0.018225,-0.770779,
+ -0.440935,0.018225,-0.847506, -0.325553,0.0084,-0.625735, -0.417645,0.0084,-0.569086,
+ -0.417645,0.0084,-0.569086, -0.565664,0.018225,-0.770779, -0.440935,0.018225,-0.847506,
+ -0.303862,0.018225,-0.904575, -0.224349,0.0084,-0.667871, -0.325553,0.0084,-0.625735,
+ -0.325553,0.0084,-0.625735, -0.440935,0.018225,-0.847506, -0.303862,0.018225,-0.904575,
+ -0.156274,0.018225,-0.940158, -0.115381,0.0084,-0.694143, -0.224349,0.0084,-0.667871,
+ -0.224349,0.0084,-0.667871, -0.303862,0.018225,-0.904575, -0.156274,0.018225,-0.940158,
+ 0,0.018225,-0.952425, 0,0.0084,-0.7032, -0.115381,0.0084,-0.694143,
+ -0.115381,0.0084,-0.694143, -0.156274,0.018225,-0.940158, 0,0.018225,-0.952425,
+ -1.12887,0.0312,-0.187642, -0.940158,0.018225,-0.156274, -0.952425,0.018225,0,
+ -0.952425,0.018225,0, -1.1436,0.0312,0, -1.12887,0.0312,-0.187642,
+ -1.086146,0.0312,-0.364854, -0.904575,0.018225,-0.303862, -0.940158,0.018225,-0.156274,
+ -0.940158,0.018225,-0.156274, -1.12887,0.0312,-0.187642, -1.086146,0.0312,-0.364854,
+ -1.017621,0.0312,-0.529441, -0.847506,0.018225,-0.440935, -0.904575,0.018225,-0.303862,
+ -0.904575,0.018225,-0.303862, -1.086146,0.0312,-0.364854, -1.017621,0.0312,-0.529441,
+ -0.925493,0.0312,-0.679207, -0.770779,0.018225,-0.565664, -0.847506,0.018225,-0.440935,
+ -0.847506,0.018225,-0.440935, -1.017621,0.0312,-0.529441, -0.925493,0.0312,-0.679207,
+ -0.811956,0.0312,-0.811956, -0.676222,0.018225,-0.676222, -0.770779,0.018225,-0.565664,
+ -0.770779,0.018225,-0.565664, -0.925493,0.0312,-0.679207, -0.811956,0.0312,-0.811956,
+ -0.679207,0.0312,-0.925493, -0.565664,0.018225,-0.770779, -0.676222,0.018225,-0.676222,
+ -0.676222,0.018225,-0.676222, -0.811956,0.0312,-0.811956, -0.679207,0.0312,-0.925493,
+ -0.529441,0.0312,-1.017621, -0.440935,0.018225,-0.847506, -0.565664,0.018225,-0.770779,
+ -0.565664,0.018225,-0.770779, -0.679207,0.0312,-0.925493, -0.529441,0.0312,-1.017621,
+ -0.364854,0.0312,-1.086146, -0.303862,0.018225,-0.904575, -0.440935,0.018225,-0.847506,
+ -0.440935,0.018225,-0.847506, -0.529441,0.0312,-1.017621, -0.364854,0.0312,-1.086146,
+ -0.187642,0.0312,-1.12887, -0.156274,0.018225,-0.940158, -0.303862,0.018225,-0.904575,
+ -0.303862,0.018225,-0.904575, -0.364854,0.0312,-1.086146, -0.187642,0.0312,-1.12887,
+ 0,0.0312,-1.1436, 0,0.018225,-0.952425, -0.156274,0.018225,-0.940158,
+ -0.156274,0.018225,-0.940158, -0.187642,0.0312,-1.12887, 0,0.0312,-1.1436,
+ -1.267832,0.046875,-0.21074, -1.12887,0.0312,-0.187642, -1.1436,0.0312,0,
+ -1.1436,0.0312,0, -1.284375,0.046875,0, -1.267832,0.046875,-0.21074,
+ -1.219848,0.046875,-0.409767, -1.086146,0.0312,-0.364854, -1.12887,0.0312,-0.187642,
+ -1.12887,0.0312,-0.187642, -1.267832,0.046875,-0.21074, -1.219848,0.046875,-0.409767,
+ -1.142888,0.046875,-0.594614, -1.017621,0.0312,-0.529441, -1.086146,0.0312,-0.364854,
+ -1.086146,0.0312,-0.364854, -1.219848,0.046875,-0.409767, -1.142888,0.046875,-0.594614,
+ -1.039419,0.046875,-0.762816, -0.925493,0.0312,-0.679207, -1.017621,0.0312,-0.529441,
+ -1.017621,0.0312,-0.529441, -1.142888,0.046875,-0.594614, -1.039419,0.046875,-0.762816,
+ -0.911906,0.046875,-0.911906, -0.811956,0.0312,-0.811956, -0.925493,0.0312,-0.679207,
+ -0.925493,0.0312,-0.679207, -1.039419,0.046875,-0.762816, -0.911906,0.046875,-0.911906,
+ -0.762816,0.046875,-1.039419, -0.679207,0.0312,-0.925493, -0.811956,0.0312,-0.811956,
+ -0.811956,0.0312,-0.811956, -0.911906,0.046875,-0.911906, -0.762816,0.046875,-1.039419,
+ -0.594614,0.046875,-1.142888, -0.529441,0.0312,-1.017621, -0.679207,0.0312,-0.925493,
+ -0.679207,0.0312,-0.925493, -0.762816,0.046875,-1.039419, -0.594614,0.046875,-1.142888,
+ -0.409767,0.046875,-1.219848, -0.364854,0.0312,-1.086146, -0.529441,0.0312,-1.017621,
+ -0.529441,0.0312,-1.017621, -0.594614,0.046875,-1.142888, -0.409767,0.046875,-1.219848,
+ -0.21074,0.046875,-1.267832, -0.187642,0.0312,-1.12887, -0.364854,0.0312,-1.086146,
+ -0.364854,0.0312,-1.086146, -0.409767,0.046875,-1.219848, -0.21074,0.046875,-1.267832,
+ 0,0.046875,-1.284375, 0,0.0312,-1.1436, -0.187642,0.0312,-1.12887,
+ -0.187642,0.0312,-1.12887, -0.21074,0.046875,-1.267832, 0,0.046875,-1.284375,
+ -1.364595,0.0648,-0.226824, -1.267832,0.046875,-0.21074, -1.284375,0.046875,0,
+ -1.284375,0.046875,0, -1.3824,0.0648,0, -1.364595,0.0648,-0.226824,
+ -1.312948,0.0648,-0.441041, -1.219848,0.046875,-0.409767, -1.267832,0.046875,-0.21074,
+ -1.267832,0.046875,-0.21074, -1.364595,0.0648,-0.226824, -1.312948,0.0648,-0.441041,
+ -1.230115,0.0648,-0.639996, -1.142888,0.046875,-0.594614, -1.219848,0.046875,-0.409767,
+ -1.219848,0.046875,-0.409767, -1.312948,0.0648,-0.441041, -1.230115,0.0648,-0.639996,
+ -1.118749,0.0648,-0.821035, -1.039419,0.046875,-0.762816, -1.142888,0.046875,-0.594614,
+ -1.142888,0.046875,-0.594614, -1.230115,0.0648,-0.639996, -1.118749,0.0648,-0.821035,
+ -0.981504,0.0648,-0.981504, -0.911906,0.046875,-0.911906, -1.039419,0.046875,-0.762816,
+ -1.039419,0.046875,-0.762816, -1.118749,0.0648,-0.821035, -0.981504,0.0648,-0.981504,
+ -0.821035,0.0648,-1.118749, -0.762816,0.046875,-1.039419, -0.911906,0.046875,-0.911906,
+ -0.911906,0.046875,-0.911906, -0.981504,0.0648,-0.981504, -0.821035,0.0648,-1.118749,
+ -0.639996,0.0648,-1.230115, -0.594614,0.046875,-1.142888, -0.762816,0.046875,-1.039419,
+ -0.762816,0.046875,-1.039419, -0.821035,0.0648,-1.118749, -0.639996,0.0648,-1.230115,
+ -0.441041,0.0648,-1.312948, -0.409767,0.046875,-1.219848, -0.594614,0.046875,-1.142888,
+ -0.594614,0.046875,-1.142888, -0.639996,0.0648,-1.230115, -0.441041,0.0648,-1.312948,
+ -0.226824,0.0648,-1.364595, -0.21074,0.046875,-1.267832, -0.409767,0.046875,-1.219848,
+ -0.409767,0.046875,-1.219848, -0.441041,0.0648,-1.312948, -0.226824,0.0648,-1.364595,
+ 0,0.0648,-1.3824, 0,0.046875,-1.284375, -0.21074,0.046875,-1.267832,
+ -0.21074,0.046875,-1.267832, -0.226824,0.0648,-1.364595, 0,0.0648,-1.3824,
+ -1.426709,0.084525,-0.237149, -1.364595,0.0648,-0.226824, -1.3824,0.0648,0,
+ -1.3824,0.0648,0, -1.445325,0.084525,0, -1.426709,0.084525,-0.237149,
+ -1.372712,0.084525,-0.461116, -1.312948,0.0648,-0.441041, -1.364595,0.0648,-0.226824,
+ -1.364595,0.0648,-0.226824, -1.426709,0.084525,-0.237149, -1.372712,0.084525,-0.461116,
+ -1.286108,0.084525,-0.669128, -1.230115,0.0648,-0.639996, -1.312948,0.0648,-0.441041,
+ -1.312948,0.0648,-0.441041, -1.372712,0.084525,-0.461116, -1.286108,0.084525,-0.669128,
+ -1.169673,0.084525,-0.858407, -1.118749,0.0648,-0.821035, -1.230115,0.0648,-0.639996,
+ -1.230115,0.0648,-0.639996, -1.286108,0.084525,-0.669128, -1.169673,0.084525,-0.858407,
+ -1.026181,0.084525,-1.026181, -0.981504,0.0648,-0.981504, -1.118749,0.0648,-0.821035,
+ -1.118749,0.0648,-0.821035, -1.169673,0.084525,-0.858407, -1.026181,0.084525,-1.026181,
+ -0.858407,0.084525,-1.169673, -0.821035,0.0648,-1.118749, -0.981504,0.0648,-0.981504,
+ -0.981504,0.0648,-0.981504, -1.026181,0.084525,-1.026181, -0.858407,0.084525,-1.169673,
+ -0.669128,0.084525,-1.286108, -0.639996,0.0648,-1.230115, -0.821035,0.0648,-1.118749,
+ -0.821035,0.0648,-1.118749, -0.858407,0.084525,-1.169673, -0.669128,0.084525,-1.286108,
+ -0.461116,0.084525,-1.372712, -0.441041,0.0648,-1.312948, -0.639996,0.0648,-1.230115,
+ -0.639996,0.0648,-1.230115, -0.669128,0.084525,-1.286108, -0.461116,0.084525,-1.372712,
+ -0.237149,0.084525,-1.426709, -0.226824,0.0648,-1.364595, -0.441041,0.0648,-1.312948,
+ -0.441041,0.0648,-1.312948, -0.461116,0.084525,-1.372712, -0.237149,0.084525,-1.426709,
+ 0,0.084525,-1.445325, 0,0.0648,-1.3824, -0.226824,0.0648,-1.364595,
+ -0.226824,0.0648,-1.364595, -0.237149,0.084525,-1.426709, 0,0.084525,-1.445325,
+ -1.461727,0.1056,-0.24297, -1.426709,0.084525,-0.237149, -1.445325,0.084525,0,
+ -1.445325,0.084525,0, -1.4808,0.1056,0, -1.461727,0.1056,-0.24297,
+ -1.406405,0.1056,-0.472434, -1.372712,0.084525,-0.461116, -1.426709,0.084525,-0.237149,
+ -1.426709,0.084525,-0.237149, -1.461727,0.1056,-0.24297, -1.406405,0.1056,-0.472434,
+ -1.317675,0.1056,-0.685551, -1.286108,0.084525,-0.669128, -1.372712,0.084525,-0.461116,
+ -1.372712,0.084525,-0.461116, -1.406405,0.1056,-0.472434, -1.317675,0.1056,-0.685551,
+ -1.198382,0.1056,-0.879477, -1.169673,0.084525,-0.858407, -1.286108,0.084525,-0.669128,
+ -1.286108,0.084525,-0.669128, -1.317675,0.1056,-0.685551, -1.198382,0.1056,-0.879477,
+ -1.051368,0.1056,-1.051368, -1.026181,0.084525,-1.026181, -1.169673,0.084525,-0.858407,
+ -1.169673,0.084525,-0.858407, -1.198382,0.1056,-0.879477, -1.051368,0.1056,-1.051368,
+ -0.879477,0.1056,-1.198382, -0.858407,0.084525,-1.169673, -1.026181,0.084525,-1.026181,
+ -1.026181,0.084525,-1.026181, -1.051368,0.1056,-1.051368, -0.879477,0.1056,-1.198382,
+ -0.685551,0.1056,-1.317675, -0.669128,0.084525,-1.286108, -0.858407,0.084525,-1.169673,
+ -0.858407,0.084525,-1.169673, -0.879477,0.1056,-1.198382, -0.685551,0.1056,-1.317675,
+ -0.472434,0.1056,-1.406405, -0.461116,0.084525,-1.372712, -0.669128,0.084525,-1.286108,
+ -0.669128,0.084525,-1.286108, -0.685551,0.1056,-1.317675, -0.472434,0.1056,-1.406405,
+ -0.24297,0.1056,-1.461727, -0.237149,0.084525,-1.426709, -0.461116,0.084525,-1.372712,
+ -0.461116,0.084525,-1.372712, -0.472434,0.1056,-1.406405, -0.24297,0.1056,-1.461727,
+ 0,0.1056,-1.4808, 0,0.084525,-1.445325, -0.237149,0.084525,-1.426709,
+ -0.237149,0.084525,-1.426709, -0.24297,0.1056,-1.461727, 0,0.1056,-1.4808,
+ -1.4772,0.127575,-0.245542, -1.461727,0.1056,-0.24297, -1.4808,0.1056,0,
+ -1.4808,0.1056,0, -1.496475,0.127575,0, -1.4772,0.127575,-0.245542,
+ -1.421292,0.127575,-0.477435, -1.406405,0.1056,-0.472434, -1.461727,0.1056,-0.24297,
+ -1.461727,0.1056,-0.24297, -1.4772,0.127575,-0.245542, -1.421292,0.127575,-0.477435,
+ -1.331623,0.127575,-0.692808, -1.317675,0.1056,-0.685551, -1.406405,0.1056,-0.472434,
+ -1.406405,0.1056,-0.472434, -1.421292,0.127575,-0.477435, -1.331623,0.127575,-0.692808,
+ -1.211067,0.127575,-0.888786, -1.198382,0.1056,-0.879477, -1.317675,0.1056,-0.685551,
+ -1.317675,0.1056,-0.685551, -1.331623,0.127575,-0.692808, -1.211067,0.127575,-0.888786,
+ -1.062497,0.127575,-1.062497, -1.051368,0.1056,-1.051368, -1.198382,0.1056,-0.879477,
+ -1.198382,0.1056,-0.879477, -1.211067,0.127575,-0.888786, -1.062497,0.127575,-1.062497,
+ -0.888786,0.127575,-1.211067, -0.879477,0.1056,-1.198382, -1.051368,0.1056,-1.051368,
+ -1.051368,0.1056,-1.051368, -1.062497,0.127575,-1.062497, -0.888786,0.127575,-1.211067,
+ -0.692808,0.127575,-1.331623, -0.685551,0.1056,-1.317675, -0.879477,0.1056,-1.198382,
+ -0.879477,0.1056,-1.198382, -0.888786,0.127575,-1.211067, -0.692808,0.127575,-1.331623,
+ -0.477435,0.127575,-1.421292, -0.472434,0.1056,-1.406405, -0.685551,0.1056,-1.317675,
+ -0.685551,0.1056,-1.317675, -0.692808,0.127575,-1.331623, -0.477435,0.127575,-1.421292,
+ -0.245542,0.127575,-1.4772, -0.24297,0.1056,-1.461727, -0.472434,0.1056,-1.406405,
+ -0.472434,0.1056,-1.406405, -0.477435,0.127575,-1.421292, -0.245542,0.127575,-1.4772,
+ 0,0.127575,-1.496475, 0,0.1056,-1.4808, -0.24297,0.1056,-1.461727,
+ -0.24297,0.1056,-1.461727, -0.245542,0.127575,-1.4772, 0,0.127575,-1.496475,
+ -1.48068,0.15,-0.24612, -1.4772,0.127575,-0.245542, -1.496475,0.127575,0,
+ -1.496475,0.127575,0, -1.5,0.15,0, -1.48068,0.15,-0.24612,
+ -1.42464,0.15,-0.47856, -1.421292,0.127575,-0.477435, -1.4772,0.127575,-0.245542,
+ -1.4772,0.127575,-0.245542, -1.48068,0.15,-0.24612, -1.42464,0.15,-0.47856,
+ -1.33476,0.15,-0.69444, -1.331623,0.127575,-0.692808, -1.421292,0.127575,-0.477435,
+ -1.421292,0.127575,-0.477435, -1.42464,0.15,-0.47856, -1.33476,0.15,-0.69444,
+ -1.21392,0.15,-0.89088, -1.211067,0.127575,-0.888786, -1.331623,0.127575,-0.692808,
+ -1.331623,0.127575,-0.692808, -1.33476,0.15,-0.69444, -1.21392,0.15,-0.89088,
+ -1.065,0.15,-1.065, -1.062497,0.127575,-1.062497, -1.211067,0.127575,-0.888786,
+ -1.211067,0.127575,-0.888786, -1.21392,0.15,-0.89088, -1.065,0.15,-1.065,
+ -0.89088,0.15,-1.21392, -0.888786,0.127575,-1.211067, -1.062497,0.127575,-1.062497,
+ -1.062497,0.127575,-1.062497, -1.065,0.15,-1.065, -0.89088,0.15,-1.21392,
+ -0.69444,0.15,-1.33476, -0.692808,0.127575,-1.331623, -0.888786,0.127575,-1.211067,
+ -0.888786,0.127575,-1.211067, -0.89088,0.15,-1.21392, -0.69444,0.15,-1.33476,
+ -0.47856,0.15,-1.42464, -0.477435,0.127575,-1.421292, -0.692808,0.127575,-1.331623,
+ -0.692808,0.127575,-1.331623, -0.69444,0.15,-1.33476, -0.47856,0.15,-1.42464,
+ -0.24612,0.15,-1.48068, -0.245542,0.127575,-1.4772, -0.477435,0.127575,-1.421292,
+ -0.477435,0.127575,-1.421292, -0.47856,0.15,-1.42464, -0.24612,0.15,-1.48068,
+ 0,0.15,-1.5, 0,0.127575,-1.496475, -0.245542,0.127575,-1.4772,
+ -0.245542,0.127575,-1.4772, -0.24612,0.15,-1.48068, 0,0.15,-1.5,
+ 0,0,0, 0,0.002175,-0.388275, 0.063708,0.002175,-0.383274,
+ 0,0,0, 0.063708,0.002175,-0.383274, 0.123875,0.002175,-0.368768,
+ 0,0,0, 0.123875,0.002175,-0.368768, 0.179756,0.002175,-0.345503,
+ 0,0,0, 0.179756,0.002175,-0.345503, 0.230604,0.002175,-0.314223,
+ 0,0,0, 0.230604,0.002175,-0.314223, 0.275675,0.002175,-0.275675,
+ 0,0,0, 0.275675,0.002175,-0.275675, 0.314223,0.002175,-0.230604,
+ 0,0,0, 0.314223,0.002175,-0.230604, 0.345503,0.002175,-0.179756,
+ 0,0,0, 0.345503,0.002175,-0.179756, 0.368768,0.002175,-0.123875,
+ 0,0,0, 0.368768,0.002175,-0.123875, 0.383274,0.002175,-0.063708,
+ 0,0,0, 0.383274,0.002175,-0.063708, 0.388275,0.002175,0,
+ 0.115381,0.0084,-0.694143, 0.063708,0.002175,-0.383274, 0,0.002175,-0.388275,
+ 0,0.002175,-0.388275, 0,0.0084,-0.7032, 0.115381,0.0084,-0.694143,
+ 0.224349,0.0084,-0.667871, 0.123875,0.002175,-0.368768, 0.063708,0.002175,-0.383274,
+ 0.063708,0.002175,-0.383274, 0.115381,0.0084,-0.694143, 0.224349,0.0084,-0.667871,
+ 0.325553,0.0084,-0.625735, 0.179756,0.002175,-0.345503, 0.123875,0.002175,-0.368768,
+ 0.123875,0.002175,-0.368768, 0.224349,0.0084,-0.667871, 0.325553,0.0084,-0.625735,
+ 0.417645,0.0084,-0.569086, 0.230604,0.002175,-0.314223, 0.179756,0.002175,-0.345503,
+ 0.179756,0.002175,-0.345503, 0.325553,0.0084,-0.625735, 0.417645,0.0084,-0.569086,
+ 0.499272,0.0084,-0.499272, 0.275675,0.002175,-0.275675, 0.230604,0.002175,-0.314223,
+ 0.230604,0.002175,-0.314223, 0.417645,0.0084,-0.569086, 0.499272,0.0084,-0.499272,
+ 0.569086,0.0084,-0.417645, 0.314223,0.002175,-0.230604, 0.275675,0.002175,-0.275675,
+ 0.275675,0.002175,-0.275675, 0.499272,0.0084,-0.499272, 0.569086,0.0084,-0.417645,
+ 0.625735,0.0084,-0.325553, 0.345503,0.002175,-0.179756, 0.314223,0.002175,-0.230604,
+ 0.314223,0.002175,-0.230604, 0.569086,0.0084,-0.417645, 0.625735,0.0084,-0.325553,
+ 0.667871,0.0084,-0.224349, 0.368768,0.002175,-0.123875, 0.345503,0.002175,-0.179756,
+ 0.345503,0.002175,-0.179756, 0.625735,0.0084,-0.325553, 0.667871,0.0084,-0.224349,
+ 0.694143,0.0084,-0.115381, 0.383274,0.002175,-0.063708, 0.368768,0.002175,-0.123875,
+ 0.368768,0.002175,-0.123875, 0.667871,0.0084,-0.224349, 0.694143,0.0084,-0.115381,
+ 0.7032,0.0084,0, 0.388275,0.002175,0, 0.383274,0.002175,-0.063708,
+ 0.383274,0.002175,-0.063708, 0.694143,0.0084,-0.115381, 0.7032,0.0084,0,
+ 0.156274,0.018225,-0.940158, 0.115381,0.0084,-0.694143, 0,0.0084,-0.7032,
+ 0,0.0084,-0.7032, 0,0.018225,-0.952425, 0.156274,0.018225,-0.940158,
+ 0.303862,0.018225,-0.904575, 0.224349,0.0084,-0.667871, 0.115381,0.0084,-0.694143,
+ 0.115381,0.0084,-0.694143, 0.156274,0.018225,-0.940158, 0.303862,0.018225,-0.904575,
+ 0.440935,0.018225,-0.847506, 0.325553,0.0084,-0.625735, 0.224349,0.0084,-0.667871,
+ 0.224349,0.0084,-0.667871, 0.303862,0.018225,-0.904575, 0.440935,0.018225,-0.847506,
+ 0.565664,0.018225,-0.770779, 0.417645,0.0084,-0.569086, 0.325553,0.0084,-0.625735,
+ 0.325553,0.0084,-0.625735, 0.440935,0.018225,-0.847506, 0.565664,0.018225,-0.770779,
+ 0.676222,0.018225,-0.676222, 0.499272,0.0084,-0.499272, 0.417645,0.0084,-0.569086,
+ 0.417645,0.0084,-0.569086, 0.565664,0.018225,-0.770779, 0.676222,0.018225,-0.676222,
+ 0.770779,0.018225,-0.565664, 0.569086,0.0084,-0.417645, 0.499272,0.0084,-0.499272,
+ 0.499272,0.0084,-0.499272, 0.676222,0.018225,-0.676222, 0.770779,0.018225,-0.565664,
+ 0.847506,0.018225,-0.440935, 0.625735,0.0084,-0.325553, 0.569086,0.0084,-0.417645,
+ 0.569086,0.0084,-0.417645, 0.770779,0.018225,-0.565664, 0.847506,0.018225,-0.440935,
+ 0.904575,0.018225,-0.303862, 0.667871,0.0084,-0.224349, 0.625735,0.0084,-0.325553,
+ 0.625735,0.0084,-0.325553, 0.847506,0.018225,-0.440935, 0.904575,0.018225,-0.303862,
+ 0.940158,0.018225,-0.156274, 0.694143,0.0084,-0.115381, 0.667871,0.0084,-0.224349,
+ 0.667871,0.0084,-0.224349, 0.904575,0.018225,-0.303862, 0.940158,0.018225,-0.156274,
+ 0.952425,0.018225,0, 0.7032,0.0084,0, 0.694143,0.0084,-0.115381,
+ 0.694143,0.0084,-0.115381, 0.940158,0.018225,-0.156274, 0.952425,0.018225,0,
+ 0.187642,0.0312,-1.12887, 0.156274,0.018225,-0.940158, 0,0.018225,-0.952425,
+ 0,0.018225,-0.952425, 0,0.0312,-1.1436, 0.187642,0.0312,-1.12887,
+ 0.364854,0.0312,-1.086146, 0.303862,0.018225,-0.904575, 0.156274,0.018225,-0.940158,
+ 0.156274,0.018225,-0.940158, 0.187642,0.0312,-1.12887, 0.364854,0.0312,-1.086146,
+ 0.529441,0.0312,-1.017621, 0.440935,0.018225,-0.847506, 0.303862,0.018225,-0.904575,
+ 0.303862,0.018225,-0.904575, 0.364854,0.0312,-1.086146, 0.529441,0.0312,-1.017621,
+ 0.679207,0.0312,-0.925493, 0.565664,0.018225,-0.770779, 0.440935,0.018225,-0.847506,
+ 0.440935,0.018225,-0.847506, 0.529441,0.0312,-1.017621, 0.679207,0.0312,-0.925493,
+ 0.811956,0.0312,-0.811956, 0.676222,0.018225,-0.676222, 0.565664,0.018225,-0.770779,
+ 0.565664,0.018225,-0.770779, 0.679207,0.0312,-0.925493, 0.811956,0.0312,-0.811956,
+ 0.925493,0.0312,-0.679207, 0.770779,0.018225,-0.565664, 0.676222,0.018225,-0.676222,
+ 0.676222,0.018225,-0.676222, 0.811956,0.0312,-0.811956, 0.925493,0.0312,-0.679207,
+ 1.017621,0.0312,-0.529441, 0.847506,0.018225,-0.440935, 0.770779,0.018225,-0.565664,
+ 0.770779,0.018225,-0.565664, 0.925493,0.0312,-0.679207, 1.017621,0.0312,-0.529441,
+ 1.086146,0.0312,-0.364854, 0.904575,0.018225,-0.303862, 0.847506,0.018225,-0.440935,
+ 0.847506,0.018225,-0.440935, 1.017621,0.0312,-0.529441, 1.086146,0.0312,-0.364854,
+ 1.12887,0.0312,-0.187642, 0.940158,0.018225,-0.156274, 0.904575,0.018225,-0.303862,
+ 0.904575,0.018225,-0.303862, 1.086146,0.0312,-0.364854, 1.12887,0.0312,-0.187642,
+ 1.1436,0.0312,0, 0.952425,0.018225,0, 0.940158,0.018225,-0.156274,
+ 0.940158,0.018225,-0.156274, 1.12887,0.0312,-0.187642, 1.1436,0.0312,0,
+ 0.21074,0.046875,-1.267832, 0.187642,0.0312,-1.12887, 0,0.0312,-1.1436,
+ 0,0.0312,-1.1436, 0,0.046875,-1.284375, 0.21074,0.046875,-1.267832,
+ 0.409767,0.046875,-1.219848, 0.364854,0.0312,-1.086146, 0.187642,0.0312,-1.12887,
+ 0.187642,0.0312,-1.12887, 0.21074,0.046875,-1.267832, 0.409767,0.046875,-1.219848,
+ 0.594614,0.046875,-1.142888, 0.529441,0.0312,-1.017621, 0.364854,0.0312,-1.086146,
+ 0.364854,0.0312,-1.086146, 0.409767,0.046875,-1.219848, 0.594614,0.046875,-1.142888,
+ 0.762816,0.046875,-1.039419, 0.679207,0.0312,-0.925493, 0.529441,0.0312,-1.017621,
+ 0.529441,0.0312,-1.017621, 0.594614,0.046875,-1.142888, 0.762816,0.046875,-1.039419,
+ 0.911906,0.046875,-0.911906, 0.811956,0.0312,-0.811956, 0.679207,0.0312,-0.925493,
+ 0.679207,0.0312,-0.925493, 0.762816,0.046875,-1.039419, 0.911906,0.046875,-0.911906,
+ 1.039419,0.046875,-0.762816, 0.925493,0.0312,-0.679207, 0.811956,0.0312,-0.811956,
+ 0.811956,0.0312,-0.811956, 0.911906,0.046875,-0.911906, 1.039419,0.046875,-0.762816,
+ 1.142888,0.046875,-0.594614, 1.017621,0.0312,-0.529441, 0.925493,0.0312,-0.679207,
+ 0.925493,0.0312,-0.679207, 1.039419,0.046875,-0.762816, 1.142888,0.046875,-0.594614,
+ 1.219848,0.046875,-0.409767, 1.086146,0.0312,-0.364854, 1.017621,0.0312,-0.529441,
+ 1.017621,0.0312,-0.529441, 1.142888,0.046875,-0.594614, 1.219848,0.046875,-0.409767,
+ 1.267832,0.046875,-0.21074, 1.12887,0.0312,-0.187642, 1.086146,0.0312,-0.364854,
+ 1.086146,0.0312,-0.364854, 1.219848,0.046875,-0.409767, 1.267832,0.046875,-0.21074,
+ 1.284375,0.046875,0, 1.1436,0.0312,0, 1.12887,0.0312,-0.187642,
+ 1.12887,0.0312,-0.187642, 1.267832,0.046875,-0.21074, 1.284375,0.046875,0,
+ 0.226824,0.0648,-1.364595, 0.21074,0.046875,-1.267832, 0,0.046875,-1.284375,
+ 0,0.046875,-1.284375, 0,0.0648,-1.3824, 0.226824,0.0648,-1.364595,
+ 0.441041,0.0648,-1.312948, 0.409767,0.046875,-1.219848, 0.21074,0.046875,-1.267832,
+ 0.21074,0.046875,-1.267832, 0.226824,0.0648,-1.364595, 0.441041,0.0648,-1.312948,
+ 0.639996,0.0648,-1.230115, 0.594614,0.046875,-1.142888, 0.409767,0.046875,-1.219848,
+ 0.409767,0.046875,-1.219848, 0.441041,0.0648,-1.312948, 0.639996,0.0648,-1.230115,
+ 0.821035,0.0648,-1.118749, 0.762816,0.046875,-1.039419, 0.594614,0.046875,-1.142888,
+ 0.594614,0.046875,-1.142888, 0.639996,0.0648,-1.230115, 0.821035,0.0648,-1.118749,
+ 0.981504,0.0648,-0.981504, 0.911906,0.046875,-0.911906, 0.762816,0.046875,-1.039419,
+ 0.762816,0.046875,-1.039419, 0.821035,0.0648,-1.118749, 0.981504,0.0648,-0.981504,
+ 1.118749,0.0648,-0.821035, 1.039419,0.046875,-0.762816, 0.911906,0.046875,-0.911906,
+ 0.911906,0.046875,-0.911906, 0.981504,0.0648,-0.981504, 1.118749,0.0648,-0.821035,
+ 1.230115,0.0648,-0.639996, 1.142888,0.046875,-0.594614, 1.039419,0.046875,-0.762816,
+ 1.039419,0.046875,-0.762816, 1.118749,0.0648,-0.821035, 1.230115,0.0648,-0.639996,
+ 1.312948,0.0648,-0.441041, 1.219848,0.046875,-0.409767, 1.142888,0.046875,-0.594614,
+ 1.142888,0.046875,-0.594614, 1.230115,0.0648,-0.639996, 1.312948,0.0648,-0.441041,
+ 1.364595,0.0648,-0.226824, 1.267832,0.046875,-0.21074, 1.219848,0.046875,-0.409767,
+ 1.219848,0.046875,-0.409767, 1.312948,0.0648,-0.441041, 1.364595,0.0648,-0.226824,
+ 1.3824,0.0648,0, 1.284375,0.046875,0, 1.267832,0.046875,-0.21074,
+ 1.267832,0.046875,-0.21074, 1.364595,0.0648,-0.226824, 1.3824,0.0648,0,
+ 0.237149,0.084525,-1.426709, 0.226824,0.0648,-1.364595, 0,0.0648,-1.3824,
+ 0,0.0648,-1.3824, 0,0.084525,-1.445325, 0.237149,0.084525,-1.426709,
+ 0.461116,0.084525,-1.372712, 0.441041,0.0648,-1.312948, 0.226824,0.0648,-1.364595,
+ 0.226824,0.0648,-1.364595, 0.237149,0.084525,-1.426709, 0.461116,0.084525,-1.372712,
+ 0.669128,0.084525,-1.286108, 0.639996,0.0648,-1.230115, 0.441041,0.0648,-1.312948,
+ 0.441041,0.0648,-1.312948, 0.461116,0.084525,-1.372712, 0.669128,0.084525,-1.286108,
+ 0.858407,0.084525,-1.169673, 0.821035,0.0648,-1.118749, 0.639996,0.0648,-1.230115,
+ 0.639996,0.0648,-1.230115, 0.669128,0.084525,-1.286108, 0.858407,0.084525,-1.169673,
+ 1.026181,0.084525,-1.026181, 0.981504,0.0648,-0.981504, 0.821035,0.0648,-1.118749,
+ 0.821035,0.0648,-1.118749, 0.858407,0.084525,-1.169673, 1.026181,0.084525,-1.026181,
+ 1.169673,0.084525,-0.858407, 1.118749,0.0648,-0.821035, 0.981504,0.0648,-0.981504,
+ 0.981504,0.0648,-0.981504, 1.026181,0.084525,-1.026181, 1.169673,0.084525,-0.858407,
+ 1.286108,0.084525,-0.669128, 1.230115,0.0648,-0.639996, 1.118749,0.0648,-0.821035,
+ 1.118749,0.0648,-0.821035, 1.169673,0.084525,-0.858407, 1.286108,0.084525,-0.669128,
+ 1.372712,0.084525,-0.461116, 1.312948,0.0648,-0.441041, 1.230115,0.0648,-0.639996,
+ 1.230115,0.0648,-0.639996, 1.286108,0.084525,-0.669128, 1.372712,0.084525,-0.461116,
+ 1.426709,0.084525,-0.237149, 1.364595,0.0648,-0.226824, 1.312948,0.0648,-0.441041,
+ 1.312948,0.0648,-0.441041, 1.372712,0.084525,-0.461116, 1.426709,0.084525,-0.237149,
+ 1.445325,0.084525,0, 1.3824,0.0648,0, 1.364595,0.0648,-0.226824,
+ 1.364595,0.0648,-0.226824, 1.426709,0.084525,-0.237149, 1.445325,0.084525,0,
+ 0.24297,0.1056,-1.461727, 0.237149,0.084525,-1.426709, 0,0.084525,-1.445325,
+ 0,0.084525,-1.445325, 0,0.1056,-1.4808, 0.24297,0.1056,-1.461727,
+ 0.472434,0.1056,-1.406405, 0.461116,0.084525,-1.372712, 0.237149,0.084525,-1.426709,
+ 0.237149,0.084525,-1.426709, 0.24297,0.1056,-1.461727, 0.472434,0.1056,-1.406405,
+ 0.685551,0.1056,-1.317675, 0.669128,0.084525,-1.286108, 0.461116,0.084525,-1.372712,
+ 0.461116,0.084525,-1.372712, 0.472434,0.1056,-1.406405, 0.685551,0.1056,-1.317675,
+ 0.879477,0.1056,-1.198382, 0.858407,0.084525,-1.169673, 0.669128,0.084525,-1.286108,
+ 0.669128,0.084525,-1.286108, 0.685551,0.1056,-1.317675, 0.879477,0.1056,-1.198382,
+ 1.051368,0.1056,-1.051368, 1.026181,0.084525,-1.026181, 0.858407,0.084525,-1.169673,
+ 0.858407,0.084525,-1.169673, 0.879477,0.1056,-1.198382, 1.051368,0.1056,-1.051368,
+ 1.198382,0.1056,-0.879477, 1.169673,0.084525,-0.858407, 1.026181,0.084525,-1.026181,
+ 1.026181,0.084525,-1.026181, 1.051368,0.1056,-1.051368, 1.198382,0.1056,-0.879477,
+ 1.317675,0.1056,-0.685551, 1.286108,0.084525,-0.669128, 1.169673,0.084525,-0.858407,
+ 1.169673,0.084525,-0.858407, 1.198382,0.1056,-0.879477, 1.317675,0.1056,-0.685551,
+ 1.406405,0.1056,-0.472434, 1.372712,0.084525,-0.461116, 1.286108,0.084525,-0.669128,
+ 1.286108,0.084525,-0.669128, 1.317675,0.1056,-0.685551, 1.406405,0.1056,-0.472434,
+ 1.461727,0.1056,-0.24297, 1.426709,0.084525,-0.237149, 1.372712,0.084525,-0.461116,
+ 1.372712,0.084525,-0.461116, 1.406405,0.1056,-0.472434, 1.461727,0.1056,-0.24297,
+ 1.4808,0.1056,0, 1.445325,0.084525,0, 1.426709,0.084525,-0.237149,
+ 1.426709,0.084525,-0.237149, 1.461727,0.1056,-0.24297, 1.4808,0.1056,0,
+ 0.245542,0.127575,-1.4772, 0.24297,0.1056,-1.461727, 0,0.1056,-1.4808,
+ 0,0.1056,-1.4808, 0,0.127575,-1.496475, 0.245542,0.127575,-1.4772,
+ 0.477435,0.127575,-1.421292, 0.472434,0.1056,-1.406405, 0.24297,0.1056,-1.461727,
+ 0.24297,0.1056,-1.461727, 0.245542,0.127575,-1.4772, 0.477435,0.127575,-1.421292,
+ 0.692808,0.127575,-1.331623, 0.685551,0.1056,-1.317675, 0.472434,0.1056,-1.406405,
+ 0.472434,0.1056,-1.406405, 0.477435,0.127575,-1.421292, 0.692808,0.127575,-1.331623,
+ 0.888786,0.127575,-1.211067, 0.879477,0.1056,-1.198382, 0.685551,0.1056,-1.317675,
+ 0.685551,0.1056,-1.317675, 0.692808,0.127575,-1.331623, 0.888786,0.127575,-1.211067,
+ 1.062497,0.127575,-1.062497, 1.051368,0.1056,-1.051368, 0.879477,0.1056,-1.198382,
+ 0.879477,0.1056,-1.198382, 0.888786,0.127575,-1.211067, 1.062497,0.127575,-1.062497,
+ 1.211067,0.127575,-0.888786, 1.198382,0.1056,-0.879477, 1.051368,0.1056,-1.051368,
+ 1.051368,0.1056,-1.051368, 1.062497,0.127575,-1.062497, 1.211067,0.127575,-0.888786,
+ 1.331623,0.127575,-0.692808, 1.317675,0.1056,-0.685551, 1.198382,0.1056,-0.879477,
+ 1.198382,0.1056,-0.879477, 1.211067,0.127575,-0.888786, 1.331623,0.127575,-0.692808,
+ 1.421292,0.127575,-0.477435, 1.406405,0.1056,-0.472434, 1.317675,0.1056,-0.685551,
+ 1.317675,0.1056,-0.685551, 1.331623,0.127575,-0.692808, 1.421292,0.127575,-0.477435,
+ 1.4772,0.127575,-0.245542, 1.461727,0.1056,-0.24297, 1.406405,0.1056,-0.472434,
+ 1.406405,0.1056,-0.472434, 1.421292,0.127575,-0.477435, 1.4772,0.127575,-0.245542,
+ 1.496475,0.127575,0, 1.4808,0.1056,0, 1.461727,0.1056,-0.24297,
+ 1.461727,0.1056,-0.24297, 1.4772,0.127575,-0.245542, 1.496475,0.127575,0,
+ 0.24612,0.15,-1.48068, 0.245542,0.127575,-1.4772, 0,0.127575,-1.496475,
+ 0,0.127575,-1.496475, 0,0.15,-1.5, 0.24612,0.15,-1.48068,
+ 0.47856,0.15,-1.42464, 0.477435,0.127575,-1.421292, 0.245542,0.127575,-1.4772,
+ 0.245542,0.127575,-1.4772, 0.24612,0.15,-1.48068, 0.47856,0.15,-1.42464,
+ 0.69444,0.15,-1.33476, 0.692808,0.127575,-1.331623, 0.477435,0.127575,-1.421292,
+ 0.477435,0.127575,-1.421292, 0.47856,0.15,-1.42464, 0.69444,0.15,-1.33476,
+ 0.89088,0.15,-1.21392, 0.888786,0.127575,-1.211067, 0.692808,0.127575,-1.331623,
+ 0.692808,0.127575,-1.331623, 0.69444,0.15,-1.33476, 0.89088,0.15,-1.21392,
+ 1.065,0.15,-1.065, 1.062497,0.127575,-1.062497, 0.888786,0.127575,-1.211067,
+ 0.888786,0.127575,-1.211067, 0.89088,0.15,-1.21392, 1.065,0.15,-1.065,
+ 1.21392,0.15,-0.89088, 1.211067,0.127575,-0.888786, 1.062497,0.127575,-1.062497,
+ 1.062497,0.127575,-1.062497, 1.065,0.15,-1.065, 1.21392,0.15,-0.89088,
+ 1.33476,0.15,-0.69444, 1.331623,0.127575,-0.692808, 1.211067,0.127575,-0.888786,
+ 1.211067,0.127575,-0.888786, 1.21392,0.15,-0.89088, 1.33476,0.15,-0.69444,
+ 1.42464,0.15,-0.47856, 1.421292,0.127575,-0.477435, 1.331623,0.127575,-0.692808,
+ 1.331623,0.127575,-0.692808, 1.33476,0.15,-0.69444, 1.42464,0.15,-0.47856,
+ 1.48068,0.15,-0.24612, 1.4772,0.127575,-0.245542, 1.421292,0.127575,-0.477435,
+ 1.421292,0.127575,-0.477435, 1.42464,0.15,-0.47856, 1.48068,0.15,-0.24612,
+ 1.5,0.15,0, 1.496475,0.127575,0, 1.4772,0.127575,-0.245542,
+ 1.4772,0.127575,-0.245542, 1.48068,0.15,-0.24612, 1.5,0.15,0
+};
diff --git a/hacks/glx/texfont.c b/hacks/glx/texfont.c
new file mode 100644
index 0000000..540db9f
--- /dev/null
+++ b/hacks/glx/texfont.c
@@ -0,0 +1,961 @@
+/* texfonts, Copyright (c) 2005-2017 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Renders X11 fonts into textures for use with OpenGL.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#ifdef HAVE_COCOA
+# ifdef USE_IPHONE
+# include "jwzgles.h"
+# else
+# include <OpenGL/glu.h>
+# endif
+#elif defined(HAVE_ANDROID)
+# include <GLES/gl.h>
+# include "jwzgles.h"
+#else
+# include <GL/glx.h>
+# include <GL/glu.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#ifdef HAVE_XSHM_EXTENSION
+# include "xshm.h"
+#endif /* HAVE_XSHM_EXTENSION */
+
+#include "xft.h"
+#include "pow2.h"
+#include "resources.h"
+#include "texfont.h"
+#include "fps.h" /* for current_device_rotation() */
+
+#undef HAVE_XSHM_EXTENSION /* doesn't actually do any good here */
+
+
+/* These are in xlock-gl.c */
+extern void clear_gl_error (void);
+extern void check_gl_error (const char *type);
+
+/* screenhack.h */
+extern char *progname;
+
+/* LRU cache of textures, to optimize the case where we're drawing the
+ same strings repeatedly.
+ */
+typedef struct texfont_cache texfont_cache;
+struct texfont_cache {
+ char *string;
+ GLuint texid;
+ XCharStruct extents;
+ int tex_width, tex_height;
+ texfont_cache *next;
+};
+
+struct texture_font_data {
+ Display *dpy;
+ XftFont *xftfont;
+ int cache_size;
+ texfont_cache *cache;
+};
+
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+
+/* Given a Pixmap (of screen depth), converts it to an OpenGL luminance mipmap.
+ RGB are averaged to grayscale, and the resulting value is treated as alpha.
+ Pass in the size of the pixmap; the size of the texture is returned
+ (it may be larger, since GL like powers of 2.)
+
+ We use a screen-depth pixmap instead of a 1bpp bitmap so that if the fonts
+ were drawn with antialiasing, that is preserved.
+ */
+static void
+bitmap_to_texture (Display *dpy, Pixmap p, Visual *visual, int depth,
+ int *wP, int *hP)
+{
+ Bool mipmap_p = True;
+ int ow = *wP;
+ int oh = *hP;
+ GLsizei w2 = (GLsizei) to_pow2 (ow);
+ GLsizei h2 = (GLsizei) to_pow2 (oh);
+ int x, y, max, scale;
+ XImage *image = 0;
+ unsigned char *data = (unsigned char *) calloc (w2 * 2, (h2 + 1));
+ unsigned char *out = data;
+
+ /* OpenGLES doesn't support GL_INTENSITY, so instead of using a
+ texture with 1 byte per pixel, the intensity value, we have
+ to use 2 bytes per pixel: solid white, and an alpha value.
+ */
+# ifdef HAVE_JWZGLES
+# undef GL_INTENSITY
+# endif
+
+# ifdef HAVE_XSHM_EXTENSION
+ Bool use_shm = get_boolean_resource (dpy, "useSHM", "Boolean");
+ XShmSegmentInfo shm_info;
+# endif /* HAVE_XSHM_EXTENSION */
+
+ /* If either dimension is larger than the supported size, reduce.
+ We still return the old size to keep the caller's math working,
+ but the texture itself will have fewer pixels in it.
+ */
+ glGetIntegerv (GL_MAX_TEXTURE_SIZE, &max);
+ scale = 1;
+ while (w2 > max || h2 > max)
+ {
+ w2 /= 2;
+ h2 /= 2;
+ scale *= 2;
+ }
+
+# ifdef HAVE_XSHM_EXTENSION
+ if (use_shm)
+ {
+ image = create_xshm_image (dpy, visual, depth, ZPixmap, 0, &shm_info,
+ ow, oh);
+ if (image)
+ XShmGetImage (dpy, p, image, 0, 0, ~0L);
+ else
+ use_shm = False;
+ }
+# endif /* HAVE_XSHM_EXTENSION */
+
+ if (!image) {
+ /* XCreateImage fills in (red|green_blue)_mask. XGetImage only does that
+ when reading from a Window, not when it's a Pixmap.
+ */
+ image = XCreateImage (dpy, visual, depth, ZPixmap, 0, NULL, ow, oh,
+ BitmapPad (dpy), 0);
+ image->data = malloc (image->height * image->bytes_per_line);
+ XGetSubImage (dpy, p, 0, 0, ow, oh, ~0L, ZPixmap, image, 0, 0);
+ }
+
+# ifdef HAVE_JWZGLES
+ /* This would work, but it's wasteful for no benefit. */
+ mipmap_p = False;
+# endif
+
+# ifdef DUMP_BITMAPS
+ fprintf (stderr, "\n");
+# endif
+ for (y = 0; y < h2; y++) {
+ for (x = 0; x < w2; x++) {
+ /* Might be better to average a scale x scale square of source pixels,
+ but at the resolutions we're dealing with, this is probably good
+ enough. */
+ int sx = x * scale;
+ int sy = y * scale;
+ unsigned long pixel = (sx >= ow || sy >= oh ? 0 :
+ XGetPixel (image, sx, sy));
+ /* instead of averaging all three channels, let's just use red,
+ and assume it was already grayscale. */
+ unsigned long r = pixel & image->red_mask;
+ /* This goofy trick is to make any of RGBA/ABGR/ARGB work. */
+ pixel = ((r >> 24) | (r >> 16) | (r >> 8) | r) & 0xFF;
+
+# ifdef DUMP_BITMAPS
+ if (sx < ow && sy < oh)
+# ifdef HAVE_JWXYZ
+ fprintf (stderr, "%c",
+ r >= 0xFF000000 ? '#' :
+ r >= 0x88000000 ? '%' :
+ r ? '.' : ' ');
+# else
+ fprintf (stderr, "%c",
+ r >= 0xFF0000 ? '#' :
+ r >= 0x880000 ? '%' :
+ r ? '.' : ' ');
+# endif
+# endif
+
+# if 0 /* Debugging checkerboard */
+ if (sx < ow && sy < oh && (((sx / 4) & 1) ^ ((sy / 4) & 1)))
+ pixel = 0x3F;
+# endif
+
+# ifndef GL_INTENSITY
+ *out++ = 0xFF; /* 2 bytes per pixel (luminance, alpha) */
+# endif
+ *out++ = pixel;
+ }
+# ifdef DUMP_BITMAPS
+ fprintf (stderr, "\n");
+# endif
+ }
+
+# ifdef HAVE_XSHM_EXTENSION
+ if (use_shm)
+ destroy_xshm_image (dpy, image, &shm_info);
+ else
+# endif /* HAVE_XSHM_EXTENSION */
+ {
+ /* We malloc'd image->data, so we free it. */
+ free (image->data);
+ image->data = NULL;
+ XDestroyImage (image);
+ }
+
+ image = 0;
+
+ {
+# ifdef GL_INTENSITY
+ GLuint iformat = GL_INTENSITY;
+ GLuint format = GL_LUMINANCE;
+# else
+ GLuint iformat = GL_LUMINANCE_ALPHA;
+ GLuint format = GL_LUMINANCE_ALPHA;
+# endif
+ GLuint type = GL_UNSIGNED_BYTE;
+
+ if (mipmap_p)
+ gluBuild2DMipmaps (GL_TEXTURE_2D, iformat, w2, h2, format, type, data);
+ else
+ glTexImage2D (GL_TEXTURE_2D, 0, iformat, w2, h2, 0, format, type, data);
+ }
+
+ {
+ char msg[100];
+ sprintf (msg, "texture font %s (%d x %d)",
+ mipmap_p ? "gluBuild2DMipmaps" : "glTexImage2D",
+ w2, h2);
+ check_gl_error (msg);
+ }
+
+ free (data);
+
+ *wP = w2 * scale;
+ *hP = h2 * scale;
+}
+
+
+/* Loads the font named by the X resource "res" and returns
+ a texture-font object.
+*/
+texture_font_data *
+load_texture_font (Display *dpy, char *res)
+{
+ int screen = DefaultScreen (dpy);
+ char *font = get_string_resource (dpy, res, "Font");
+ const char *def1 = "-*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*";
+ const char *def2 = "-*-helvetica-medium-r-normal-*-*-140-*-*-*-*-*-*";
+ const char *def3 = "fixed";
+ XftFont *f = 0;
+ texture_font_data *data;
+ int cache_size = get_integer_resource (dpy, "texFontCacheSize", "Integer");
+
+ /* Hacks that draw a lot of different strings on the screen simultaneously,
+ like Star Wars, should set this to a larger value for performance. */
+ if (cache_size <= 0)
+ cache_size = 30;
+
+ if (!res || !*res) abort();
+
+ if (!strcmp (res, "fpsFont")) { /* Kludge. */
+ def1 = "-*-courier-bold-r-normal-*-*-180-*-*-*-*-*-*"; /* also fps.c */
+ cache_size = 0; /* No need for a cache on FPS: already throttled. */
+ }
+
+ if (!font) font = strdup(def1);
+
+ f = XftFontOpenXlfd (dpy, screen, font);
+ if (!f && !!strcmp (font, def1))
+ {
+ fprintf (stderr, "%s: unable to load font \"%s\", using \"%s\"\n",
+ progname, font, def1);
+ free (font);
+ font = strdup (def1);
+ f = XftFontOpenXlfd (dpy, screen, font);
+ }
+
+ if (!f && !!strcmp (font, def2))
+ {
+ fprintf (stderr, "%s: unable to load font \"%s\", using \"%s\"\n",
+ progname, font, def2);
+ free (font);
+ font = strdup (def2);
+ f = XftFontOpenXlfd (dpy, screen, font);
+ }
+
+ if (!f && !!strcmp (font, def3))
+ {
+ fprintf (stderr, "%s: unable to load font \"%s\", using \"%s\"\n",
+ progname, font, def3);
+ free (font);
+ font = strdup (def3);
+ f = XftFontOpenXlfd (dpy, screen, font);
+ }
+
+ if (!f)
+ {
+ fprintf (stderr, "%s: unable to load fallback font \"%s\" either!\n",
+ progname, font);
+ abort();
+ }
+
+ free (font);
+ font = 0;
+
+ data = (texture_font_data *) calloc (1, sizeof(*data));
+ data->dpy = dpy;
+ data->xftfont = f;
+ data->cache_size = cache_size;
+
+ return data;
+}
+
+
+/* Measure the string, returning the overall metrics.
+ Newlines and tab stops are honored.
+ Any numbers inside [] will be rendered as a subscript.
+
+ The origin is at the origin of the first character, so subsequent
+ lines of a multi-line string look like descenders (below baseline).
+
+ If an XftDraw is supplied, render the string as well, at X,Y.
+ Positive Y is down (X11 style, not OpenGL style).
+ */
+static void
+iterate_texture_string (texture_font_data *data,
+ const char *s,
+ int draw_x, int draw_y,
+ XftDraw *xftdraw, XftColor *xftcolor,
+ XCharStruct *metrics_ret)
+{
+ int line_height = data->xftfont->ascent + data->xftfont->descent;
+ int subscript_offset = line_height * 0.3;
+ const char *os = s;
+ Bool sub_p = False, osub_p = False;
+ int cw = 0, tabs = 0;
+ XCharStruct overall = { 0, };
+ int x = 0, y = 0;
+ int ox = x, oy = y;
+
+ while (1)
+ {
+ if (*s == 0 ||
+ *s == '\n' ||
+ *s == '\t' ||
+ (*s == '[' && isdigit(s[1])) ||
+ (*s == ']' && sub_p))
+ {
+ if (s != os)
+ {
+ XGlyphInfo e;
+ XCharStruct c;
+ int y2 = y;
+ if (sub_p) y2 += subscript_offset;
+
+ XftTextExtentsUtf8 (data->dpy, data->xftfont,
+ (FcChar8 *) os, (int) (s - os),
+ &e);
+ c.lbearing = -e.x; /* XGlyphInfo to XCharStruct */
+ c.rbearing = e.width - e.x;
+ c.ascent = e.y;
+ c.descent = e.height - e.y;
+ c.width = e.xOff;
+
+# undef MAX
+# undef MIN
+# define MAX(A,B) ((A)>(B)?(A):(B))
+# define MIN(A,B) ((A)<(B)?(A):(B))
+ overall.ascent = MAX (overall.ascent, -y2 + c.ascent);
+ overall.descent = MAX (overall.descent, y2 + c.descent);
+ overall.lbearing = MIN (overall.lbearing, (x + c.lbearing));
+ overall.rbearing = MAX (overall.rbearing, x + c.rbearing);
+ overall.width = MAX (overall.width, x + c.width);
+ x += c.width;
+# undef MAX
+# undef MIN
+ }
+
+ if (*s == '\n')
+ {
+ x = 0;
+ y += line_height;
+ sub_p = False;
+ }
+ else if (*s == '\t')
+ {
+ if (! cw)
+ {
+ /* Measure "m" to determine tab width. */
+ XGlyphInfo e;
+ XftTextExtentsUtf8 (data->dpy, data->xftfont,
+ (FcChar8 *) "m", 1, &e);
+ cw = e.xOff;
+ if (cw <= 0) cw = 1;
+ tabs = cw * 7;
+ }
+ x = ((x + tabs) / tabs) * tabs;
+ }
+ else if (*s == '[' && isdigit(s[1]))
+ sub_p = True;
+ else if (*s == ']' && sub_p)
+ sub_p = False;
+
+ if (xftdraw && s != os)
+ XftDrawStringUtf8 (xftdraw, xftcolor, data->xftfont,
+ draw_x + ox,
+ draw_y +
+ oy + (osub_p ? subscript_offset : 0),
+ (FcChar8 *) os, (int) (s - os));
+ if (!*s) break;
+ os = s+1;
+ ox = x;
+ oy = y;
+ osub_p = sub_p;
+ }
+ s++;
+ }
+
+ if (metrics_ret)
+ *metrics_ret = overall;
+}
+
+
+/* Bounding box of the multi-line string, in pixels,
+ and overall ascent/descent of the font.
+ */
+void
+texture_string_metrics (texture_font_data *data, const char *s,
+ XCharStruct *metrics_ret,
+ int *ascent_ret, int *descent_ret)
+{
+ if (metrics_ret)
+ iterate_texture_string (data, s, 0, 0, 0, 0, metrics_ret);
+ if (ascent_ret) *ascent_ret = data->xftfont->ascent;
+ if (descent_ret) *descent_ret = data->xftfont->descent;
+}
+
+
+/* Returns a cache entry for this string, with a valid texid.
+ If the returned entry has a string in it, the texture is valid.
+ Otherwise it is an empty entry waiting to be rendered.
+ */
+static struct texfont_cache *
+get_cache (texture_font_data *data, const char *string)
+{
+ int count = 0;
+ texfont_cache *prev = 0, *prev2 = 0, *curr = 0, *next = 0;
+
+ if (data->cache)
+ for (prev2 = 0, prev = 0, curr = data->cache, next = curr->next;
+ curr;
+ prev2 = prev, prev = curr, curr = next,
+ next = (curr ? curr->next : 0), count++)
+ {
+ if (!strcmp (string, curr->string))
+ {
+ if (prev)
+ prev->next = next; /* Unlink from list */
+ if (curr != data->cache)
+ {
+ curr->next = data->cache; /* Move to front */
+ data->cache = curr;
+ }
+ return curr;
+ }
+ }
+
+ /* Made it to the end of the list without a hit.
+ If the cache is full, empty out the last one on the list,
+ and move it to the front. Keep the texid.
+ */
+ if (count > data->cache_size)
+ {
+ if (!prev) abort();
+ free (prev->string);
+ prev->string = 0;
+ prev->tex_width = 0;
+ prev->tex_height = 0;
+ memset (&prev->extents, 0, sizeof(prev->extents));
+ if (prev2)
+ prev2->next = 0;
+ if (prev != data->cache)
+ prev->next = data->cache;
+ data->cache = prev;
+ return prev;
+ }
+
+ /* Not cached, and cache not full. Add a new entry at the front,
+ and allocate a new texture for it.
+ */
+ curr = (struct texfont_cache *) calloc (1, sizeof(*prev));
+ glGenTextures (1, &curr->texid);
+ curr->string = 0;
+ curr->next = data->cache;
+ data->cache = curr;
+
+ return curr;
+}
+
+
+/* Renders the given string into the prevailing texture.
+ Returns the metrics of the text, and size of the texture.
+ */
+void
+string_to_texture (texture_font_data *data, const char *string,
+ XCharStruct *extents_ret,
+ int *tex_width_ret, int *tex_height_ret)
+{
+ Window window = RootWindow (data->dpy, 0);
+ Pixmap p;
+ XGCValues gcv;
+ GC gc;
+ XWindowAttributes xgwa;
+ XRenderColor rcolor;
+ XftColor xftcolor;
+ XftDraw *xftdraw;
+ int width, height;
+ XCharStruct overall;
+
+ /* Measure the string and create a Pixmap of the proper size.
+ */
+ XGetWindowAttributes (data->dpy, window, &xgwa);
+ iterate_texture_string (data, string, 0, 0, 0, 0, &overall);
+ width = overall.rbearing - overall.lbearing;
+ height = overall.ascent + overall.descent;
+ if (width <= 0) width = 1;
+ if (height <= 0) height = 1;
+ p = XCreatePixmap (data->dpy, window, width, height, xgwa.depth);
+
+ gcv.foreground = BlackPixelOfScreen (xgwa.screen);
+ gc = XCreateGC (data->dpy, p, GCForeground, &gcv);
+ XFillRectangle (data->dpy, p, gc, 0, 0, width, height);
+ XFreeGC (data->dpy, gc);
+
+ /* Render the string into the pixmap.
+ */
+ rcolor.red = rcolor.green = rcolor.blue = rcolor.alpha = 0xFFFF;
+ XftColorAllocValue (data->dpy, xgwa.visual, xgwa.colormap,
+ &rcolor, &xftcolor);
+ xftdraw = XftDrawCreate (data->dpy, p, xgwa.visual, xgwa.colormap);
+ iterate_texture_string (data, string,
+ -overall.lbearing, overall.ascent,
+ xftdraw, &xftcolor, 0);
+ XftDrawDestroy (xftdraw);
+ XftColorFree (data->dpy, xgwa.visual, xgwa.colormap, &xftcolor);
+
+ /* Copy the bits from the Pixmap into a texture, unless it's cached.
+ */
+ bitmap_to_texture (data->dpy, p, xgwa.visual, xgwa.depth,
+ &width, &height);
+ XFreePixmap (data->dpy, p);
+
+ if (extents_ret) *extents_ret = overall;
+ if (tex_width_ret) *tex_width_ret = width;
+ if (tex_height_ret) *tex_height_ret = height;
+}
+
+
+/* Set the various OpenGL parameters for properly rendering things
+ with a texture generated by string_to_texture().
+ */
+void
+enable_texture_string_parameters (void)
+{
+ glEnable (GL_TEXTURE_2D);
+
+ /* Texture-rendering parameters to make font pixmaps tolerable to look at.
+ */
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR_MIPMAP_LINEAR);
+
+ /* LOD bias is part of OpenGL 1.4.
+ GL_EXT_texture_lod_bias has been present since the original iPhone.
+ */
+# if !defined(GL_TEXTURE_LOD_BIAS) && defined(GL_TEXTURE_LOD_BIAS_EXT)
+# define GL_TEXTURE_LOD_BIAS GL_TEXTURE_LOD_BIAS_EXT
+# endif
+# ifdef GL_TEXTURE_LOD_BIAS
+ glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, 0.25);
+# endif
+ clear_gl_error(); /* invalid enum on iPad 3 */
+
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ /* Don't write the transparent parts of the quad into the depth buffer. */
+ glAlphaFunc (GL_GREATER, 0.01);
+ glEnable (GL_ALPHA_TEST);
+ glEnable (GL_BLEND);
+ glDisable (GL_LIGHTING);
+ glDisable (GL_TEXTURE_GEN_S);
+ glDisable (GL_TEXTURE_GEN_T);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+}
+
+
+/* Draws the string in the scene at the origin.
+ Newlines and tab stops are honored.
+ Any numbers inside [] will be rendered as a subscript.
+ Assumes the font has been loaded as with load_texture_font().
+
+ The origin is at the origin of the first character, so subsequent
+ lines of a multi-line string are below that.
+ */
+void
+print_texture_string (texture_font_data *data, const char *string)
+{
+ XCharStruct overall;
+ int tex_width, tex_height;
+ texfont_cache *cache;
+ GLint old_texture;
+
+ if (!*string) return;
+
+ clear_gl_error ();
+
+ /* Save the prevailing texture ID, and bind ours. Restored at the end. */
+ glGetIntegerv (GL_TEXTURE_BINDING_2D, &old_texture);
+
+ cache = get_cache (data, string);
+
+ glBindTexture (GL_TEXTURE_2D, cache->texid);
+ check_gl_error ("texture font binding");
+
+ /* Measure the string and make a pixmap that will fit it,
+ unless it's cached.
+ */
+ if (cache->string)
+ {
+ overall = data->cache->extents;
+ tex_width = data->cache->tex_width;
+ tex_height = data->cache->tex_height;
+ }
+ else
+ {
+# if defined HAVE_JWXYZ && defined JWXYZ_GL
+ /* TODO, JWXYZ_GL: Mixing Xlib and GL has issues. */
+ memset (&overall, 0, sizeof(overall));
+ tex_width = 8;
+ tex_height = 8;
+# else
+ string_to_texture (data, string, &overall, &tex_width, &tex_height);
+# endif
+ }
+
+ {
+ int ofront, oblend;
+ Bool alpha_p, blend_p, light_p, gen_s_p, gen_t_p;
+ GLfloat omatrix[16];
+ GLfloat qx0, qy0, qx1, qy1;
+ GLfloat tx0, ty0, tx1, ty1;
+
+ /* If face culling is not enabled, draw front and back. */
+ Bool draw_back_face_p = !glIsEnabled (GL_CULL_FACE);
+
+ /* Save the prevailing texture environment, and set up ours.
+ */
+ glGetIntegerv (GL_FRONT_FACE, &ofront);
+ glGetIntegerv (GL_BLEND_DST, &oblend);
+ glGetFloatv (GL_TEXTURE_MATRIX, omatrix);
+ blend_p = glIsEnabled (GL_BLEND);
+ alpha_p = glIsEnabled (GL_ALPHA_TEST);
+ light_p = glIsEnabled (GL_LIGHTING);
+ gen_s_p = glIsEnabled (GL_TEXTURE_GEN_S);
+ gen_t_p = glIsEnabled (GL_TEXTURE_GEN_T);
+
+ glPushMatrix();
+
+ glNormal3f (0, 0, 1);
+ glFrontFace (GL_CW);
+
+ glMatrixMode (GL_TEXTURE);
+ glLoadIdentity ();
+ glMatrixMode (GL_MODELVIEW);
+
+ enable_texture_string_parameters();
+
+ /* Draw a quad with that texture on it, possibly using a cached texture.
+ Position the XCharStruct origin at 0,0 in the scene.
+ */
+ qx0 = overall.lbearing;
+ qy0 = -overall.descent;
+ qx1 = overall.rbearing;
+ qy1 = overall.ascent;
+
+ tx0 = 0;
+ ty1 = 0;
+ tx1 = (overall.rbearing - overall.lbearing) / (GLfloat) tex_width;
+ ty0 = (overall.ascent + overall.descent) / (GLfloat) tex_height;
+
+ glEnable (GL_CULL_FACE);
+ glFrontFace (GL_CCW);
+ glBegin (GL_QUADS);
+ glTexCoord2f (tx0, ty0); glVertex3f (qx0, qy0, 0);
+ glTexCoord2f (tx1, ty0); glVertex3f (qx1, qy0, 0);
+ glTexCoord2f (tx1, ty1); glVertex3f (qx1, qy1, 0);
+ glTexCoord2f (tx0, ty1); glVertex3f (qx0, qy1, 0);
+ glEnd();
+
+ if (draw_back_face_p)
+ {
+ glFrontFace (GL_CW);
+ glBegin (GL_QUADS);
+ glTexCoord2f (tx0, ty0); glVertex3f (qx0, qy0, 0);
+ glTexCoord2f (tx1, ty0); glVertex3f (qx1, qy0, 0);
+ glTexCoord2f (tx1, ty1); glVertex3f (qx1, qy1, 0);
+ glTexCoord2f (tx0, ty1); glVertex3f (qx0, qy1, 0);
+ glEnd();
+ glDisable (GL_CULL_FACE);
+ }
+
+ glPopMatrix();
+
+ /* Reset to the caller's texture environment.
+ */
+ glBindTexture (GL_TEXTURE_2D, old_texture);
+ glFrontFace (ofront);
+ if (!alpha_p) glDisable (GL_ALPHA_TEST);
+ if (!blend_p) glDisable (GL_BLEND);
+ if (light_p) glEnable (GL_LIGHTING);
+ if (gen_s_p) glEnable (GL_TEXTURE_GEN_S);
+ if (gen_t_p) glEnable (GL_TEXTURE_GEN_T);
+
+ glBlendFunc (GL_SRC_ALPHA, oblend);
+
+ glMatrixMode (GL_TEXTURE);
+ glMultMatrixf (omatrix);
+ glMatrixMode (GL_MODELVIEW);
+
+ check_gl_error ("texture font print");
+
+ /* Store this string into the cache, unless that's where it came from.
+ */
+ if (!cache->string)
+ {
+ cache->string = strdup (string);
+ cache->extents = overall;
+ cache->tex_width = tex_width;
+ cache->tex_height = tex_height;
+ }
+ }
+}
+
+
+/* Draws the string on the window at the given pixel position.
+ Newlines and tab stops are honored.
+ Any numbers inside [] will be rendered as a subscript.
+ Assumes the font has been loaded as with load_texture_font().
+
+ Position is 0 for center, 1 for top left, 2 for bottom left.
+ */
+void
+print_texture_label (Display *dpy,
+ texture_font_data *data,
+ int window_width, int window_height,
+ int position,
+ const char *string)
+{
+ GLfloat color[4];
+
+ Bool tex_p = glIsEnabled (GL_TEXTURE_2D);
+ Bool texs_p = glIsEnabled (GL_TEXTURE_GEN_S);
+ Bool text_p = glIsEnabled (GL_TEXTURE_GEN_T);
+ Bool depth_p = glIsEnabled (GL_DEPTH_TEST);
+ Bool cull_p = glIsEnabled (GL_CULL_FACE);
+ Bool fog_p = glIsEnabled (GL_FOG);
+ GLint ovp[4];
+
+# ifndef HAVE_JWZGLES
+ GLint opoly[2];
+ glGetIntegerv (GL_POLYGON_MODE, opoly);
+# endif
+
+ glGetIntegerv (GL_VIEWPORT, ovp);
+
+ glGetFloatv (GL_CURRENT_COLOR, color);
+
+ glEnable (GL_TEXTURE_2D);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glPolygonMode (GL_FRONT, GL_FILL);
+
+ glDisable (GL_TEXTURE_GEN_S);
+ glDisable (GL_TEXTURE_GEN_T);
+ glDisable (GL_CULL_FACE);
+ glDisable (GL_FOG);
+
+ glDisable (GL_DEPTH_TEST);
+
+ /* Each matrix mode has its own stack, so we need to push/pop
+ them separately.
+ */
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ {
+ glLoadIdentity();
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ {
+ XCharStruct cs;
+ int ascent, descent;
+ int x, y, w, h, swap;
+ /* int rot = (int) current_device_rotation(); */
+ int rot = 0; /* Since GL hacks rotate now */
+
+ glLoadIdentity();
+ glViewport (0, 0, window_width, window_height);
+ glOrtho (0, window_width, 0, window_height, -1, 1);
+
+ while (rot <= -180) rot += 360;
+ while (rot > 180) rot -= 360;
+
+ texture_string_metrics (data, string, &cs, &ascent, &descent);
+ h = cs.ascent + cs.descent;
+ w = cs.width;
+
+# ifdef USE_IPHONE
+ {
+ /* Size of the font is in points, so scale iOS pixels to points. */
+ GLfloat scale = ((window_width > window_height
+ ? window_width : window_height)
+ / 768.0);
+ if (scale < 1) scale = 1;
+
+ /* jwxyz-XLoadFont has already doubled the font size, to compensate
+ for physically smaller screens. Undo that, since OpenGL hacks
+ use full-resolution framebuffers, unlike X11 hacks. */
+ scale /= 2;
+
+ window_width /= scale;
+ window_height /= scale;
+ glScalef (scale, scale, scale);
+ }
+# endif /* USE_IPHONE */
+
+ if (rot > 135 || rot < -135) /* 180 */
+ {
+ glTranslatef (window_width, window_height, 0);
+ glRotatef (180, 0, 0, 1);
+ }
+ else if (rot > 45) /* 90 */
+ {
+ glTranslatef (window_width, 0, 0);
+ glRotatef (90, 0, 0, 1);
+ swap = window_width;
+ window_width = window_height;
+ window_height = swap;
+ }
+ else if (rot < -45) /* 270 */
+ {
+ glTranslatef(0, window_height, 0);
+ glRotatef (-90, 0, 0, 1);
+ swap = window_width;
+ window_width = window_height;
+ window_height = swap;
+ }
+
+ switch (position) {
+ case 0: /* center */
+ x = (window_width - w) / 2;
+ y = (window_height + h) / 2 - ascent;
+ break;
+ case 1: /* top */
+ x = ascent;
+ y = window_height - ascent*2;
+ break;
+ case 2: /* bottom */
+ x = ascent;
+ y = h;
+ break;
+ default:
+ abort();
+ }
+
+ glTranslatef (x, y, 0);
+
+ /* draw the text five times, to give it a border. */
+ {
+ const XPoint offsets[] = {{ -1, -1 },
+ { -1, 1 },
+ { 1, 1 },
+ { 1, -1 },
+ { 0, 0 }};
+ int i;
+
+ glColor3f (0, 0, 0);
+ for (i = 0; i < countof(offsets); i++)
+ {
+ if (offsets[i].x == 0)
+ glColor4fv (color);
+ glPushMatrix();
+ glTranslatef (offsets[i].x, offsets[i].y, 0);
+ print_texture_string (data, string);
+ glPopMatrix();
+ }
+ }
+ }
+ glPopMatrix();
+ }
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ if (tex_p) glEnable (GL_TEXTURE_2D); else glDisable (GL_TEXTURE_2D);
+ if (texs_p) glEnable (GL_TEXTURE_GEN_S);/*else glDisable(GL_TEXTURE_GEN_S);*/
+ if (text_p) glEnable (GL_TEXTURE_GEN_T);/*else glDisable(GL_TEXTURE_GEN_T);*/
+ if (depth_p) glEnable (GL_DEPTH_TEST); else glDisable (GL_DEPTH_TEST);
+ if (cull_p) glEnable (GL_CULL_FACE); /*else glDisable (GL_CULL_FACE);*/
+ if (fog_p) glEnable (GL_FOG); /*else glDisable (GL_FOG);*/
+
+ glViewport (ovp[0], ovp[1], ovp[2], ovp[3]);
+
+# ifndef HAVE_JWZGLES
+ glPolygonMode (GL_FRONT, opoly[0]);
+# endif
+
+ glMatrixMode(GL_MODELVIEW);
+}
+
+
+#ifdef HAVE_JWXYZ
+char *
+texfont_unicode_character_name (texture_font_data *data, unsigned long uc)
+{
+ Font fid = data->xftfont->xfont->fid;
+ return jwxyz_unicode_character_name (data->dpy, fid, uc);
+}
+#endif /* HAVE_JWXYZ */
+
+
+
+/* Releases the font and texture.
+ */
+void
+free_texture_font (texture_font_data *data)
+{
+ while (data->cache)
+ {
+ texfont_cache *next = data->cache->next;
+ glDeleteTextures (1, &data->cache->texid);
+ free (data->cache);
+ data->cache = next;
+ }
+ if (data->xftfont)
+ XftFontClose (data->dpy, data->xftfont);
+ free (data);
+}
diff --git a/hacks/glx/texfont.h b/hacks/glx/texfont.h
new file mode 100644
index 0000000..8f86dab
--- /dev/null
+++ b/hacks/glx/texfont.h
@@ -0,0 +1,72 @@
+/* texfonts, Copyright (c) 2005-2016 Jamie Zawinski <jwz@jwz.org>
+ * Loads X11 fonts into textures for use with OpenGL.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __TEXTURE_FONT_H__
+#define __TEXTURE_FONT_H__
+
+typedef struct texture_font_data texture_font_data;
+
+/* Loads the font named by the X resource "res" and returns
+ a texture-font object.
+*/
+extern texture_font_data *load_texture_font (Display *, char *res);
+
+/* Bounding box of the multi-line string, in pixels,
+ and overall ascent/descent of the font.
+ */
+extern void texture_string_metrics (texture_font_data *, const char *,
+ XCharStruct *metrics_ret,
+ int *ascent_ret, int *descent_ret);
+
+/* Draws the string in the scene at the origin.
+ Newlines and tab stops are honored.
+ Any numbers inside [] will be rendered as a subscript.
+ Assumes the font has been loaded as with load_texture_font().
+ */
+extern void print_texture_string (texture_font_data *, const char *);
+
+/* Draws the string on the window at the given pixel position.
+ Newlines and tab stops are honored.
+ Any numbers inside [] will be rendered as a subscript.
+ Assumes the font has been loaded as with load_texture_font().
+
+ Position is 0 for center, 1 for top left, 2 for bottom left.
+ */
+void print_texture_label (Display *, texture_font_data *,
+ int window_width, int window_height,
+ int position, const char *string);
+
+/* Renders the given string into the prevailing texture.
+ Returns the metrics of the text, and size of the texture.
+ */
+void string_to_texture (texture_font_data *, const char *,
+ XCharStruct *extents_ret,
+ int *tex_width_ret, int *tex_height_ret);
+
+/* Set the various OpenGL parameters for properly rendering things
+ with a texture generated by string_to_texture().
+ */
+void enable_texture_string_parameters (void);
+
+
+/* Releases the texture font.
+ */
+extern void free_texture_font (texture_font_data *);
+
+
+#ifdef HAVE_JWXYZ
+extern char *texfont_unicode_character_name (texture_font_data *,
+ unsigned long uc);
+#endif
+
+
+#endif /* __TEXTURE_FONT_H__ */
diff --git a/hacks/glx/timetunnel.c b/hacks/glx/timetunnel.c
new file mode 100644
index 0000000..723d04d
--- /dev/null
+++ b/hacks/glx/timetunnel.c
@@ -0,0 +1,1240 @@
+/* timetunnel. Based on dangerball.c, hack by Sean Brennan <zettix@yahoo.com>*/
+/* dangerball, Copyright (c) 2001-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define GL_GLEXT_PROTOTYPES 1
+
+#include <math.h> /* for log2 */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*timeStart: 0.0 \n" \
+ "*timeEnd: 27.79 \n" \
+ "*wireframe: False \n" \
+
+
+
+# define free_tunnel 0
+# define release_tunnel 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "rotator.h"
+#include "gltrackball.h"
+
+#define DEF_START "0.00"
+#define DEF_DILATE "1.00"
+#define DEF_END "27.79"
+#define DEF_LOCKLOGO "False"
+#define DEF_DRAWLOGO "True"
+#define DEF_REVERSE "False"
+#define DEF_FOG "True"
+#define DEF_TEXTURE "True"
+#define MAX_TEXTURE 10
+#define CYL_LEN 14.0
+#define DIAMOND_LEN 10.0
+
+static float start, end, dilate;
+static Bool do_texture, drawlogo, wire, reverse, do_fog;
+static const char *do_tx1, *do_tx2, *do_tx3, *do_tun1, *do_tun2, *do_tun3;
+
+static XrmOptionDescRec opts[] = {
+ {"-texture" , ".texture", XrmoptionNoArg, "true" },
+ {"+texture" , ".texture", XrmoptionNoArg, "false" },
+ {"-start" , ".start", XrmoptionSepArg, 0 },
+ {"-end" , ".end", XrmoptionSepArg, 0 },
+ {"-dilate" , ".dilate", XrmoptionSepArg, 0 },
+ {"+logo" , ".drawlogo", XrmoptionNoArg, "false" },
+ {"-reverse" , ".reverse", XrmoptionNoArg, "true" },
+ {"+fog" , ".fog", XrmoptionNoArg, "false" },
+ {"-marquee" , ".marquee", XrmoptionSepArg, 0},
+ /* {"+marquee" , ".marquee", XrmoptionNoArg, "(none)"}, */
+ {"-tardis" , ".tardis", XrmoptionSepArg, 0},
+ /* {"+tardis" , ".tardis", XrmoptionNoArg, "(none)"}, */
+ {"-head" , ".head", XrmoptionSepArg, 0},
+ /* {"+head" , ".head", XrmoptionNoArg, "(none)"}, */
+ {"-tun1" , ".tun1", XrmoptionSepArg, 0},
+ /* {"+tun1" , ".tun1", XrmoptionNoArg, "(none)"}, */
+ {"-tun2" , ".tun2", XrmoptionSepArg, 0},
+ /* {"+tun2" , ".tun2", XrmoptionNoArg, "(none)"}, */
+ {"-tun3" , ".tun3", XrmoptionSepArg, 0},
+ /* {"+tun3" , ".tun3", XrmoptionNoArg, "(none)"}, */
+};
+
+static argtype vars[] = {
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&start, "start", "Start", DEF_START, t_Float},
+ {&end, "end", "End", DEF_END , t_Float},
+ {&dilate, "dilate", "Dilate", DEF_DILATE , t_Float},
+ {&drawlogo, "drawlogo", "DrawLogo", DEF_DRAWLOGO , t_Bool},
+ {&reverse, "reverse", "Reverse", DEF_REVERSE , t_Bool},
+ {&do_fog, "fog", "Fog", DEF_FOG , t_Bool},
+ {&do_tx1, "marquee", "Marquee", "(none)", t_String},
+ {&do_tx2, "tardis", "Tardis", "(none)", t_String},
+ {&do_tx3, "head", "Head", "(none)", t_String},
+ {&do_tun1, "tun1", "Tunnel 1", "(none)", t_String},
+ {&do_tun2, "tun2", "Tunnel 2", "(none)", t_String},
+ {&do_tun3, "tun3", "Tunnel 3", "(none)", t_String},
+};
+
+ENTRYPOINT ModeSpecOpt tunnel_opts = {countof(opts), opts, countof(vars), vars, NULL};
+#include "ximage-loader.h"
+#include "images/gen/logo-180_png.h"
+#include "images/gen/tunnelstar_png.h"
+#include "images/gen/timetunnel0_png.h"
+#include "images/gen/timetunnel1_png.h"
+#include "images/gen/timetunnel2_png.h"
+
+
+#ifdef USE_GL /* whole file */
+
+/* ANIMATION CONTROLS */
+/* an effect is a collection of floating point variables that vary with time.
+A knot is a timestamp with an array of floats. State is the current values of the floats.
+State is set by linearly interpolating between knots */
+typedef struct {
+ float *knots, *state;
+ int numknots, knotwidth;
+ float direction;
+} effect_t;
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ int time_oldusec, time_oldsec;
+
+ int num_texshifts; /* animates tunnels. Not an effect. */
+ GLfloat pos, *texshift;
+
+ GLuint texture_binds[MAX_TEXTURE], cyllist, diamondlist;
+
+ float effect_time, effect_maxsecs; /* global time controls */
+ float start_time, end_time;
+
+ int num_effects;
+ effect_t *effects; /* array of all effects */
+
+} tunnel_configuration;
+
+static tunnel_configuration *tconf = NULL;
+
+/* allocate memory and populate effect with knot data */
+static void init_effect(effect_t *e, int numk, int kwidth,
+ float dir, float *data )
+{
+ int i, j;
+
+ e->numknots = numk;
+ e->knotwidth = kwidth;
+ e->direction = dir;
+ e->knots = calloc(numk * kwidth, sizeof(float));
+ e->state = calloc(numk, sizeof(float));
+ for ( i = 0 ; i < e->numknots ; i++)
+ for ( j = 0 ; j < e->knotwidth; j++)
+ e->knots[i * kwidth + j] = data[i * kwidth + j];
+}
+
+/* static knot data. each effect is listed and knot data is hard coded.
+ Knots are linerally interpolated to yield float values, depending on
+ knot width. knot format is [time, data, data, data...].
+ Data can be alpha, zvalue, etc. */
+static void init_effects(effect_t *e, int effectnum)
+{
+ /* effect 1: wall tunnel. percent closed */
+ float e1d[6][2] =
+ {{0.0, 0.055},
+ {2.77, 0.055},
+ {3.07,1.0},
+ {8.08, 1.0},
+ {8.08, 0.0},
+ {10.0, 0.0}};
+ /* effect 2: tardis. distance and alpha */
+ float e2d[8][3] =
+ { {0.0, 0.0 , 0.0},
+ {3.44, 0.0 , 0.0},
+ {3.36, 5.4 , 0.0},
+ {4.24, 3.66, 1.0},
+ {6.51, 2.4, 0.94},
+ {8.08, 0.75 , 0.0},
+ {8.08, 0.0 , 0.0},
+ {10.0, 0.0, 0.0}};
+ /* effect 3: cylinder. alpha */
+ float e3d[5][2] =
+ {{0.0, 0.0},
+ {6.41, 0.00},
+ {8.08, 1.0},
+ {14.81, 1.0},
+ {15.65, 0.0}};
+
+ /* effect 4: fog. color, density, start, end */
+ float e4d[9][5] =
+ {{0.0 , 1.0, 0.45, 3.0, 15.0},
+ {6.40, 1.0, 0.45, 3.0, 14.0},
+ {8.08, 1.0, 0.95, 1.0, 14.0},
+ {15.17, 1.0, 0.95, 1.0, 6.0},
+ {15.51, 1.0, 0.95, 3.0, 8.0},
+ {23.35, 1.0, 0.95, 3.0, 8.0},
+ {24.02, 0.0, 0.95, 2.3, 5.0},
+ {26.02, 0.0, 0.95, 2.3, 5.0},
+ {27.72, 0.0, 1.00, 0.3, 0.9}
+ };
+
+ /* effect 5: logo. dist, alpha */
+ float e5d[7][3] =
+ {{0.0, 0.0, 0.0},
+ {16.52, 0.00, 0.0},
+ {16.52, 0.80, 0.01},
+ {17.18, 1.15, 1.0},
+ {22.36, 5.3, 1.0},
+ {22.69, 5.7, 0.0},
+ {22.69, 0.0, 0.0}
+ };
+ /* effect 6: diamond tunnel. alpha */
+ float e6d[3][2] =
+ {{0.0, 0.00},
+ {15.17, 0.00},
+ {15.51,1.0}};
+
+ /* effect 7: tardis cap draw . positive draws cap*/
+ float e7d[3][2] =
+ {{0.0, -1.00},
+ {4.24, -1.00},
+ {4.24, 1.00}};
+
+ /* effect 8: star/asterisk: alpha */
+ float e8d[5][2] =
+ {{0.0, .00},
+ {10.77, .00},
+ {11.48, 1.00},
+ {15.35, 1.00},
+ {16.12, 0.00}};
+
+ /* effect 9: whohead 1 alpha */
+ float e9d[5][2] =
+ {{0.0, .00},
+ {13.35, .00},
+ {14.48, 1.00},
+ {15.17, 1.00},
+ {15.97, 0.00}};
+ /* {14.87, 1.00},
+ {15.17, 0.00}}; */
+
+ /* effect 10: whohead-brite alpha */
+ float e10d[5][2] =
+ {{0.0, .00},
+ {11.34, .00},
+ {12.34, .20},
+ {13.35, 0.60},
+ {14.48, 0.00}};
+ /* {13.95, 0.00}}; */
+
+ /* effect 11: whohead-psy alpha */
+ float e11d[5][2] =
+ {{0.0, .00},
+ {14.87, .00},
+ {15.17, 1.00},
+ {15.91, 0.00},
+ {16.12, 0.00}};
+
+ /* effect 12: whohead-silhouette pos-z, alpha */
+ float e12d[6][3] =
+ {{0.0, 1.0, .00},
+ {15.07, 1.0, 0.00},
+ {15.07, 1.0, 1.00},
+ {16.01, 1.0, 1.00},
+ {16.78, 0.5, 1.00},
+ {16.78, 0.1, 0.00} };
+
+ /* effect 1: wall tunnel */
+ if (effectnum == 1)
+ init_effect(e, 6, 2, -0.2, (float *) e1d);
+
+ /* effect 2: tardisl */
+ if (effectnum == 2)
+ init_effect(e, 8, 3, 1.0, (float *) e2d);
+
+ /* effect 3: cylinder tunnel */
+ if (effectnum == 3)
+ init_effect(e, 5, 2, 0.889 , (float *) e3d);
+
+ /* effect 4: fog color */
+ if (effectnum == 4)
+ init_effect(e, 9, 5, 1.0, (float *) e4d);
+ /* effect 5: logo distance, alpha*/
+ if (effectnum == 5)
+ init_effect(e, 7, 3, 1.0, (float *) e5d);
+ /* effect 6: diamond tunnel, alpha*/
+ if (effectnum == 6)
+ init_effect(e, 3, 2, 0.24 , (float *) e6d);
+
+ /* effect 7: cap wall tunnel*/
+ if (effectnum == 7)
+ init_effect(e, 3, 2, 1.0, (float *) e7d);
+
+ /* effect 8: asterisk */
+ if (effectnum == 8)
+ init_effect(e, 5, 2, 1.0, (float *) e8d);
+
+ /* effect 9, 10, 11, 12: whoheads */
+ if (effectnum == 9 )
+ init_effect(e, 5, 2, 1.0, (float *) e9d);
+ if (effectnum == 10 )
+ init_effect(e, 5, 2, 1.0, (float *) e10d);
+ if (effectnum == 11 )
+ init_effect(e, 5, 2, 1.0, (float *) e11d);
+ if (effectnum == 12 )
+ init_effect(e, 6, 3, 1.0, (float *) e12d);
+}
+
+
+/* set fog parameters, controlled by effect */
+static void update_fog(float color, float density, float start, float end)
+{
+ GLfloat col[4];
+
+ col[0] = col[1] = col[2] = color;
+ col[3] = 1.0;
+
+ glFogi(GL_FOG_MODE, GL_LINEAR);
+ glFogfv(GL_FOG_COLOR, col);
+ glFogf(GL_FOG_DENSITY, density);
+ glFogf(GL_FOG_START, start);
+ glFogf(GL_FOG_END, end);
+}
+
+/* set effect's floating point data values by linearally interpolating
+between two knots whose times bound the current time: eff_time */
+
+static void update_knots(effect_t *e, float eff_time)
+{
+ int i, j;
+ float timedelta, lowknot, highknot, *curknot, *nextknot;
+
+ for ( i = 0 ; i < e->numknots ; i++)
+ if (e->knots[i * e->knotwidth] <= eff_time) {
+ if ( i < e->numknots - 1)
+ nextknot = e->knots + (i + 1) * e->knotwidth;
+ else
+ /*repeat last knot to carry knot data forward*/
+ nextknot = e->knots + (i) * e->knotwidth;
+ curknot = e->knots + i * e->knotwidth;
+ if (*nextknot - *curknot <= 0.0) timedelta = 1.0;
+ else
+ timedelta = (eff_time-*curknot)/(*nextknot-*curknot);
+ if (timedelta > 1.0) timedelta = 1.0;
+ for (j = 1 ; j < e->knotwidth ; j++) {
+ highknot = (float) *(nextknot + j);
+ lowknot = (float) *(curknot + j);
+ e->state[j - 1 ] = lowknot+(highknot-lowknot)*timedelta;
+ }
+ }
+
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_tunnel (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (90.0, 1/h, 0.2, 50.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 0.3,
+ 0.0, 0.0, 1.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+
+
+ENTRYPOINT Bool
+tunnel_handle_event (ModeInfo *mi, XEvent *event)
+{
+ tunnel_configuration *tc = &tconf[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, tc->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &tc->button_down_p))
+ return True;
+
+ return False;
+}
+
+static void setTexParams(void)
+{
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+}
+
+static void update_animation(tunnel_configuration *tc) {
+
+ /* time based, of course*/
+ /* shift texture based on elapsed time since previous call*/
+ struct timeval tv;
+ struct timezone tz;
+ int elapsed_usecs, elapsed_secs, i;
+ float computed_timeshift;
+
+ /* get new animation time */
+ gettimeofday(&tv, &tz);
+ elapsed_secs = tv.tv_sec - tc->time_oldsec;
+ elapsed_usecs = tv.tv_usec - tc->time_oldusec;
+ /* store current time */
+ tc->time_oldsec = tv.tv_sec ;
+ tc->time_oldusec = tv.tv_usec;
+ /* elaped time. computed timeshift is tenths of a second */
+ computed_timeshift = (float) (elapsed_secs * 1000000. + elapsed_usecs)/
+ 100000.0;
+
+ /* calibrate effect time to lie between start and end times */
+ /* loop if time exceeds end time */
+ if (reverse)
+ tc->effect_time -= computed_timeshift / 10.0 * dilate;
+ else
+ tc->effect_time += computed_timeshift / 10.0 * dilate;
+ if ( tc->effect_time >= tc->end_time)
+ tc->effect_time = tc->start_time;
+ if ( tc->effect_time < tc->start_time)
+ tc->effect_time = tc->end_time;;
+
+ /* move texture shifters in effect's direction, e.g. tardis
+ tunnel moves backward, effect 1's direction */
+ if (reverse) {
+ tc->texshift[0] -= tc->effects[1].direction * computed_timeshift/ 10.0;
+ tc->texshift[1] -= tc->effects[3].direction * computed_timeshift/ 10.0;
+ tc->texshift[2] -= tc->effects[6].direction * computed_timeshift/ 10.0;
+
+ } else {
+ tc->texshift[0] += tc->effects[1].direction * computed_timeshift/ 10.0;
+ tc->texshift[1] += tc->effects[3].direction * computed_timeshift/ 10.0;
+ tc->texshift[2] += tc->effects[6].direction * computed_timeshift/ 10.0;
+ }
+
+ /* loop texture shifters if necessary */
+ for ( i = 0 ; i < tc->num_texshifts; i++) {
+ if (tc->texshift[i] > 1.0)
+ tc->texshift[i] -= (int) tc->texshift[i];
+ if (tc->texshift[i]< -1.0)
+ tc->texshift[i] -= (int) tc->texshift[i];
+ }
+
+ /* update effect data with current time. Uses linear interpolation */
+ for ( i = 1 ; i <= tc->num_effects ; i++)
+ update_knots(&tc->effects[i], tc->effect_time);
+
+} /*update_animation*/
+
+/* draw a textured(tex) quad at a certain depth (z), and certain alpha (alpha),
+with aspect ratio (aspect), and blending mode (blend_mode) of either adding
+or subtracting. if alpha is zero or less, nothing happens */
+static void draw_sign(ModeInfo *mi, tunnel_configuration *tc, float z, float alpha, float aspect,
+ GLuint tex, int blend_mode)
+{
+
+#ifndef HAVE_JWZGLES
+ if (alpha > 0.0) {
+ mi->polygon_count ++;
+ /* glEnable(GL_BLEND); */
+ glBlendColor(0.0, 0.0, 0.0, alpha);
+ /*glBlendColor(0.0, 0.0, 0.0, 0.0); */
+ if (blend_mode == 1) {
+ glBlendFunc(GL_CONSTANT_ALPHA,
+ GL_ONE);
+ glBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
+ } else if (blend_mode == 2) {
+ glBlendFunc(GL_CONSTANT_ALPHA,
+ GL_ONE);
+ glBlendEquation(GL_FUNC_ADD);
+ } else {
+ glBlendFunc(GL_CONSTANT_ALPHA,
+ GL_ONE_MINUS_CONSTANT_ALPHA);
+ glBlendEquation(GL_FUNC_ADD);
+ } /* blend mode switch */
+
+#ifdef HAVE_GLBINDTEXTURE
+ if (do_texture)
+ glBindTexture(GL_TEXTURE_2D, tc->texture_binds[tex]);
+#endif
+ glBegin(GL_QUADS);
+ glTexCoord2f(1.0, 0.0);
+ glVertex3f(-1.0 , -1.0 * aspect , z);
+ glTexCoord2f(1.0, 1.0);
+ glVertex3f(-1.0 , 1.0 * aspect , z);
+ glTexCoord2f(0.0, 1.0);
+ glVertex3f(1.0 , 1.0 * aspect , z);
+ glTexCoord2f(0.0, 0.0);
+ glVertex3f(1.0 , -1.0 * aspect , z);
+ glEnd();
+ if (blend_mode != 0) {
+ glBlendFunc(GL_CONSTANT_ALPHA,
+ GL_ONE_MINUS_CONSTANT_ALPHA);
+ glBlendEquation(GL_FUNC_ADD);
+ }
+ /* glDisable(GL_BLEND); */
+
+ }
+#endif /* !HAVE_JWZGLES */
+} /* draw sign */
+
+
+/* draw a time tunnel. used for both cylinder and diamond tunnels.
+ uses texture shifter (indexed by shiftnum) to simulate motion.
+ tunnel does not move, and is acutally a display list. if alpha = 0, skip */
+static void draw_cyl(ModeInfo *mi, tunnel_configuration *tc, float alpha, int texnum, int listnum, int shiftnum)
+{
+#ifndef HAVE_JWZGLES
+ if (alpha > 0.0) {
+ if (listnum == tc->diamondlist)
+ mi->polygon_count += 4;
+ if (listnum == tc->cyllist)
+ mi->polygon_count += 30;
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ glTranslatef(tc->texshift[shiftnum], 0.0, 0.0);
+ glMatrixMode(GL_MODELVIEW);
+ /* glEnable(GL_BLEND); */
+ glBlendColor(0.0, 0.0, 0.0, alpha);
+ glBlendFunc(GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA);
+
+#ifdef HAVE_GLBINDTEXTURE
+ if (do_texture)
+ glBindTexture(GL_TEXTURE_2D, tc->texture_binds[texnum]);
+#endif
+ glCallList(listnum);
+
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+ /* glDisable(GL_BLEND); */
+ }
+#endif /* HAVE_JWZGLES */
+}
+
+
+/* make tardis type tunnel. Starts as walls and then
+grows to outline of tardis. percent is how complete
+tardis outline is. cap is to draw cap for nice fog effects */
+
+static void make_wall_tunnel(ModeInfo *mi, tunnel_configuration *tc, float percent, float cap)
+{
+ /* tardis is about 2x1, so wrap tex around, starting at the base*/
+ /* tex coords are:
+
+ _tl__tr_
+ | |
+l| |r
+ | |
+ -bl__br_
+ that's br=bottom right, etc. ttr is top-top-right */
+
+ float half_floor= 0.08333333333333333,
+ full_wall = 0.33333333333333333;
+ float br1,
+ r0 , r1 ,
+ tr0, tr1,
+ tl0, tl1,
+ l0 , l1 ,
+ depth=0.3, zdepth=15.0;
+ /* zdepth is how far back tunnel goes */
+ /* depth is tex coord scale. low number = fast texture shifting */
+
+ float textop, texbot;
+ float height;
+
+ br1 = half_floor;
+ r0 = br1 ;
+ r1 = r0 + full_wall;
+ tr0 = r1;
+ tr1 = r1 + half_floor;
+ tl0 = tr1;
+ tl1 = tl0 + half_floor;
+ l0 = tr1;
+ l1 = l0 + full_wall;
+
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ glRotatef(90.0, 0.0, 0.0, 1.0);
+ glTranslatef(tc->texshift[0], 0.0, 0.0);
+ glMatrixMode(GL_MODELVIEW);
+
+#ifdef HAVE_GLBINDTEXTURE
+ if (do_texture)
+ glBindTexture(GL_TEXTURE_2D, tc->texture_binds[0]);
+#endif
+ glColor3f(1.0, 1.0, 0.0);
+ if (cap > 0.0 && percent > 0.0 && drawlogo && do_fog) {
+ mi->polygon_count += 6;
+ glBegin(GL_TRIANGLE_FAN);
+ glVertex3f(0.0, 0.0, zdepth);
+ glVertex3f(-1.0, -2.0, zdepth);
+ glVertex3f(1.0, -2.0, zdepth);
+ glVertex3f(1.0, 2.0, zdepth);
+ glVertex3f(0.2, 2.0, zdepth);
+ glVertex3f(0.2, 2.2, zdepth);
+ glVertex3f(-0.2, 2.2, zdepth);
+ glVertex3f(-0.2, 2.0, zdepth);
+ glVertex3f(-1.0, 2.0, zdepth);
+ glVertex3f(-1.0, -2.0, zdepth);
+ glEnd();
+ }
+ if (percent > ( full_wall * 2.0)) {
+ glBegin(GL_QUADS);
+
+ height = (percent - full_wall * 2.0) /( 1.0 - full_wall * 2.0);
+ if (height > 1.0) height = 1.0;
+
+
+ if ( height > 0.8) {
+ mi->polygon_count += 2;
+ if ( height > 0.90) {
+ mi->polygon_count += 2;
+ /* TTTR */
+ texbot = tr0;
+ textop = tr0 + half_floor * height;
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(0.2, 2.2, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(2.0 - height * 2.0, 2.2, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(2.0 - height * 2.0, 2.2, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(0.2, 2.2, zdepth);
+
+ /* TTTL */
+ texbot = tl1 - half_floor * height;
+ textop = tl1;
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(-2.0 + height * 2.0, 2.2, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(-0.2, 2.2, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(-0.2, 2.2, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(-2.0 + height * 2.0, 2.2, zdepth);
+ }
+ if (height > 0.90) height = 0.90;
+
+ /* TTR */
+ texbot = tr0;
+ textop = tr0 + half_floor * height;
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(0.2, 2.0, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(0.2, 0.4 + height * 2.0, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(0.2, 0.4 + height * 2.0, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(0.2, 2.0, zdepth);
+
+ /* TTL */
+ texbot = tl1 - half_floor * height;
+ textop = tl1;
+ glTexCoord2f(0.0, texbot);
+ /*glVertex3f(-.2, 2.0 + (0.9 - height) * 2.0, 0.0); */
+ glVertex3f(-.2, 0.4 + height * 2.0, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(-.2, 2.0, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(-.2, 2.0, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(-.2, 0.4 + height * 2.0, zdepth);
+ }
+
+ height = (percent - full_wall * 2.0) /( 1.0 - full_wall * 2.0);
+ if (height > 0.8) height = 0.8;
+
+
+ mi->polygon_count += 2;
+ /* TR */
+ texbot = tr0;
+ textop = tr0 + half_floor * height;
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(1.0, 2.0, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(1.0 - height, 2.0, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(1.0 - height, 2.0, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(1.0, 2.0, zdepth);
+
+ /* TL */
+ texbot = tl1 - half_floor * height;
+ textop = tl1;
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(-1.0 + height, 2.0, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(-1.0, 2.0, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(-1.0, 2.0, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(-1.0 + height, 2.0, zdepth);
+
+ height = (percent - full_wall * 2.0) /( 1.0 - full_wall * 2.0);
+
+ if (height > 1.0) height = 1.0;
+
+
+ mi->polygon_count += 2;
+ /* BR */
+ texbot = tr0;
+ textop = tr0 + half_floor * height;
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(1.0, -2.0, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(1.0 - height, -2.0, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(1.0 - height, -2.0, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(1.0, -2.0, zdepth);
+
+ /* BL */
+ texbot = tl1 - half_floor * height;
+ textop = tl1;
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(-1.0 + height, -2.0, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(-1.0, -2.0, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(-1.0, -2.0, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(-1.0 + height, -2.0, zdepth);
+
+
+ glEnd();
+ }
+
+ if (percent > 0.0) {
+ mi->polygon_count += 2;
+ glBegin(GL_QUADS);
+ height = percent / ( full_wall * 2.0);
+ if (height > 1.0) height = 1.0;
+ textop = (l0 + l1) / 2.0 - full_wall * 0.5 * height;
+ texbot = (l0 + l1) / 2.0 + full_wall * 0.5 * height;
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(-1.0, height * 2, 0.0);
+
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(-1.0, -height * 2, 0.0);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(-1.0, -height * 2, zdepth);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(-1.0, height * 2, zdepth);
+
+ textop = (r0 + r1) / 2.0 - full_wall * 0.5 * height;
+ texbot = (r0 + r1) / 2.0 + full_wall * 0.5 * height;
+
+ glTexCoord2f(0.0, texbot);
+ glVertex3f(1.0, height * 2, 0.0);
+
+ glTexCoord2f(0.0, textop);
+ glVertex3f(1.0, -height * 2, 0.0);
+
+ glTexCoord2f(depth, textop);
+ glVertex3f(1.0, -height * 2, zdepth);
+
+ glTexCoord2f(depth, texbot);
+ glVertex3f(1.0, height * 2, zdepth);
+ glEnd();
+ }
+
+
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+} /* make_wall_tunnel */
+
+/* wraps an int to between min and max.
+ Kind of like the remainder when devided by (max - min).
+ Used to create torus mapping on square array */
+static int wrapVal(int val, int min, int max)
+{
+ int ret;
+
+ ret = val;
+ if (val >= max)
+ ret = min + (val - max ) % (max - min);
+ if (val < min)
+ ret = max - (min - val) % (max - min);
+ return(ret);
+}
+
+/*=================== Load Texture =========================================*/
+/* ripped from atunnel.c, Copyright (c) E. Lassauge, 2003-2004. */
+/* modified like so by Sean Brennan:
+ take texture object for glbind
+ removed xlock stuff
+ Added filters:
+ blur color / alpha channel [3x3 box filter, done [blur] times
+ anegative : create b/w image from zero alpha. zero alpha gets bw_color,
+ nonzero alpha gets 1.0 - bwcolor, then alpha flipped to 1-alpha.
+
+ Inputs: xpm structure, or filename of xmp image. if filename == NULL, use structure.
+ Outputs: texture bound to texutre Id texbind.
+
+*/
+
+static float mylog2(float x) { return ( log(x) / log(2));}
+
+static void LoadTexture(ModeInfo * mi, const unsigned char *fn, unsigned long size, const char *filename, GLuint texbind, int blur, float bw_color, Bool anegative, Bool onealpha)
+{
+ /* looping and temporary array index variables */
+ int ix, iy, bx, by, indx, indy, boxsize, cchan, tmpidx, dtaidx;
+
+ float boxdiv, tmpfa, blursum ;
+ unsigned char *tmpbuf, tmpa;
+ Bool rescale;
+
+
+ XImage *teximage; /* Texture data */
+
+ rescale = False;
+
+ boxsize = 2;
+ boxdiv = 1.0 / ( boxsize * 2.0 + 1.0) / ( boxsize * 2.0 + 1.0);
+
+
+ if (filename)
+ teximage = file_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+ filename);
+ else
+ teximage = image_data_to_ximage(MI_DISPLAY(mi), MI_VISUAL(mi),
+ fn, size);
+ if (teximage == NULL) {
+ fprintf(stderr, "%s: error reading the texture.\n", progname);
+ glDeleteTextures(1, &texbind);
+ do_texture = False;
+ exit(0);
+ }
+
+ /* check if image is 2^kumquat, where kumquat is an integer between 1 and 10. Recale to
+ nearest power of 2. */
+ tmpfa = mylog2((float) teximage->width);
+ bx = 2 << (int) (tmpfa -1);
+ if (bx != teximage->width) {
+ rescale = True;
+ if ((tmpfa - (int) tmpfa) > 0.5849)
+ bx = bx * 2;
+ }
+ tmpfa = mylog2((float) teximage->height);
+ by = 2 << (int) (tmpfa - 1);
+ if (by != teximage->height) {
+ rescale = True;
+ if ((tmpfa - (int) tmpfa) > 0.5849)
+ by = by * 2;
+ }
+
+ if (rescale) {
+#ifndef HAVE_JWZGLES
+ tmpbuf = calloc(bx * by * 4, sizeof(unsigned char));
+ if (gluScaleImage(GL_RGBA, teximage->width, teximage->height, GL_UNSIGNED_BYTE, teximage->data,
+ bx, by, GL_UNSIGNED_BYTE, tmpbuf))
+ check_gl_error("scale image");
+
+ free(teximage->data);
+ teximage->data = (char *) tmpbuf;
+ teximage->width = bx;
+ teximage->height= by;
+#endif /* !HAVE_JWZGLES */
+ }
+ /* end rescale code */
+
+ if (anegative ) {
+ for (ix = 0 ; ix < teximage->height * teximage->width; ix++)
+ {
+ if (!teximage->data[ ix * 4 + 3]) {
+ teximage->data[ ix * 4 + 3] = (unsigned char) 0xff;
+ tmpa = (unsigned char) (bw_color * 0xff);
+ } else {
+ if (onealpha)
+ teximage->data[ ix * 4 + 3] = (unsigned char) 0xff;
+ else
+ teximage->data[ ix * 4 + 3] = (unsigned char) 0xff -
+ teximage->data[ ix * 4 + 3];
+ tmpa = (unsigned char) ((1.0 - bw_color) * 0xff);
+ }
+ /* make texture uniform b/w color */
+ teximage->data[ ix * 4 + 0] =
+ (unsigned char) ( tmpa);
+ teximage->data[ ix * 4 + 1] =
+ (unsigned char) ( tmpa);
+ teximage->data[ ix * 4 + 2] =
+ (unsigned char) ( tmpa);
+ /* negate alpha */
+ }
+ }
+
+ if (blur > 0) {
+ if (! anegative ) /* anegative alread b/w's the whole image */
+ for (ix = 0 ; ix < teximage->height * teximage->width; ix++)
+ if (!teximage->data[ ix * 4 + 3])
+ {
+ teximage->data[ ix * 4 + 0] =
+ (unsigned char) ( 255.0 * bw_color);
+ teximage->data[ ix * 4 + 1] =
+ (unsigned char) ( 255.0 * bw_color);
+ teximage->data[ ix * 4 + 2] =
+ (unsigned char) ( 255.0 * bw_color);
+ }
+ ;
+ tmpbuf = calloc(teximage->height * teximage->width * 4, sizeof(unsigned char) ) ;
+ while (blur--) {
+ /* zero out tmp alpha buffer */
+ for (iy = 0 ; iy <teximage->height * teximage->width * 4 ; iy++)
+ tmpbuf[iy] = 0;
+ for (cchan = 0; cchan < 4 ; cchan++) {
+ for (iy = 0 ; iy < teximage->height ; iy++) {
+ for (ix = 0 ; ix < teximage->width ; ix++) {
+ dtaidx = (teximage->width * iy + ix) * 4;
+ tmpa = teximage->data[dtaidx + cchan];
+ tmpfa = (float) tmpa * boxdiv;
+ /* box filter */
+ for (by = -boxsize ; by <= boxsize; by++) {
+ for (bx = -boxsize ; bx <= boxsize; bx++) {
+ indx = wrapVal(ix + bx, 0, teximage->width);
+ indy = wrapVal(iy + by, 0, teximage->height);
+ tmpidx = (teximage->width * indy + indx) * 4;
+ blursum = tmpfa;
+ tmpbuf[tmpidx + cchan] += (unsigned char) blursum;
+ } /* for bx */
+ } /* for by */
+ } /* for ix */
+ } /* for iy */
+ } /* for cchan */
+ /* copy back buffer */
+ for (ix = 0 ; ix < teximage->height * teximage->width * 4; ix++)
+ teximage->data[ix] = tmpbuf[ix];
+ } /*while blur */
+ free(tmpbuf); /*tidy*/
+ } /* if blur */
+
+
+
+
+ clear_gl_error();
+#ifdef HAVE_GLBINDTEXTURE
+ glBindTexture(GL_TEXTURE_2D, texbind);
+ clear_gl_error(); /* WTF? sometimes "invalid op" from glBindTexture! */
+#endif
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, teximage->width, teximage->height,
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, teximage->data);
+ check_gl_error("texture");
+ setTexParams();
+ XDestroyImage(teximage);
+}
+
+/* creates cylinder for time tunnel. sides, zmin, zmax, rad(ius) obvious.
+ stretch scales texture coords; makes tunnel go slower the larger it is.
+ not drawn, but put into display list. */
+static void makecyl(int sides, float zmin, float zmax, float rad, float stretch)
+{
+ int i;
+ float theta;
+
+ /* cap */
+ if (do_fog) {
+ glBegin(GL_TRIANGLE_FAN);
+ glTexCoord2f(1.0, 0.0);
+ glVertex3f(0.0 , 0.0 , zmax);
+ for (i = 0 ; i <= sides; i++) {
+ theta = 2.0 * M_PI * ((float) i / (float) sides);
+ glVertex3f(cos(theta) * rad, sin(theta) * rad, zmax);
+ }
+ glVertex3f(cos(0.0) * rad, sin(0.0) * rad, zmax);
+ glEnd();
+ }
+
+ glBegin(GL_QUAD_STRIP);
+ for (i = 0 ; i <= sides; i++)
+ {
+ if ( i != sides) {
+ theta = 2.0 * M_PI * ((float) i / (float) sides);
+ glTexCoord2f(0.0, 1.0 * (float) i / (float) sides);
+ glVertex3f(cos(theta) * rad, sin(theta) * rad, zmin);
+ glTexCoord2f(stretch, 1.0 * (float) i / (float) sides);
+ glVertex3f(cos(theta) * rad, sin(theta) * rad, zmax);
+ } else {
+ theta = 0.0;
+ glTexCoord2f(0.0, 1.0);
+ glVertex3f(cos(theta) * rad, sin(theta) * rad, zmin);
+ glTexCoord2f(stretch, 1.0);
+ glVertex3f(cos(theta) * rad, sin(theta) * rad, zmax);
+ }
+ }
+ glEnd();
+}
+
+ENTRYPOINT void
+init_tunnel (ModeInfo *mi)
+{
+ int i;
+
+ tunnel_configuration *tc;
+
+ wire = MI_IS_WIREFRAME(mi);
+
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ wire = 0;
+# endif
+
+ MI_INIT (mi, tconf);
+
+ tc = &tconf[MI_SCREEN(mi)];
+
+ tc->glx_context = init_GL(mi);
+
+ tc->cyllist = glGenLists(1);
+ tc->diamondlist = glGenLists(1);
+ tc->num_effects = 12;
+ tc->num_texshifts = 3;
+ tc->effect_time = 0.0;
+ tc->effect_maxsecs = 30.00;
+ /* check bounds on cmd line opts */
+ if (start > tc->effect_maxsecs) start = tc->effect_maxsecs;
+ if (end > tc->effect_maxsecs) end = tc->effect_maxsecs;
+ if (start < tc->effect_time) start = tc->effect_time;
+ if (end < tc->effect_time) end = tc->effect_time;
+
+ /* set loop times, in seconds */
+ tc->start_time = start;
+ tc->end_time = end;
+
+ /* reset animation knots, effect 0 not defined. */
+ tc->effects = malloc(sizeof(effect_t) * ( tc->num_effects + 1));
+ for ( i = 1; i <= tc->num_effects ; i++)
+ init_effects(&tc->effects[i], i);
+
+ if (wire) {
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ do_texture = False;
+ }
+
+ if (do_texture)
+ {
+ /* the following textures are loaded, and possible overridden:
+ tunnel 1, tunnel 2, tunnel 3, marquee, tardis, head */
+ glGenTextures(MAX_TEXTURE, tc->texture_binds);
+
+ /*LoadTexture(*mi, *data, size, *filename, texbind, bluralpha, bw_color, anegative, onealpha)*/
+ if (strcasecmp (do_tun1, "(none)")) /* tunnel 1 */
+ LoadTexture(mi, NULL, 0, do_tun1, tc->texture_binds[0], 0,0.0, False, False);
+ else
+ LoadTexture(mi, timetunnel0_png, sizeof(timetunnel0_png), NULL, tc->texture_binds[0], 0, 0.0, False, False);
+ if (strcasecmp (do_tun2, "(none)")) /* tunnel 2 */
+ LoadTexture(mi, NULL, 0, do_tun2, tc->texture_binds[2], 0,0.0, False, False);
+ else
+ LoadTexture(mi, timetunnel1_png, sizeof(timetunnel1_png), NULL, tc->texture_binds[2], 0, 0.0, False, False);
+ if (strcasecmp (do_tun3, "(none)")) /* tunnel 3 */
+ LoadTexture(mi, NULL, 0, do_tun3, tc->texture_binds[5], 0,0.0, False, False);
+ else
+ LoadTexture(mi, timetunnel2_png, sizeof(timetunnel2_png), NULL, tc->texture_binds[5], 0, 0.0, False, False);
+ LoadTexture(mi, tunnelstar_png, sizeof(tunnelstar_png), NULL, tc->texture_binds[4], 0, 0.0, False, False);
+ if (strcasecmp (do_tx1, "(none)")) /* marquee */
+ LoadTexture(mi, NULL, 0, do_tx1, tc->texture_binds[3], 0,0.0, False, False);
+#ifndef HAVE_JWZGLES /* logo_180_png is 180px which is not a power of 2! */
+ else
+ LoadTexture(mi, logo_180_png, sizeof(logo_180_png), NULL, tc->texture_binds[3], 0,0.0, False, False);
+#endif
+ if (strcasecmp (do_tx2, "(none)")) /* tardis */
+ LoadTexture(mi, NULL, 0, do_tx2, tc->texture_binds[1], 0, 0.0 ,False, False);
+#ifndef HAVE_JWZGLES /* logo_180_png is 180px which is not a power of 2! */
+ else
+ LoadTexture(mi, logo_180_png, sizeof(logo_180_png), NULL, tc->texture_binds[1], 0,0.0, False, False);
+#endif
+ if (strcasecmp (do_tx3, "(none)")) { /* head */
+ LoadTexture(mi, NULL, 0, do_tx3, tc->texture_binds[6], 0, 0.0 ,False, False);
+ /* negative */
+ LoadTexture(mi, NULL, 0, do_tx3, tc->texture_binds[9], 2,1.0, True, True);
+#ifndef HAVE_JWZGLES /* logo_180_png is 180px which is not a power of 2! */
+ } else {
+ LoadTexture(mi, logo_180_png, sizeof(logo_180_png), NULL, tc->texture_binds[6], 0,0.0, False, False);
+ /* negative */
+ LoadTexture(mi, logo_180_png, sizeof(logo_180_png), NULL, tc->texture_binds[9], 2,1.0, True, True);
+#endif
+ }
+ glEnable(GL_TEXTURE_2D);
+ check_gl_error("tex");
+ }
+
+ reshape_tunnel (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glDisable(GL_DEPTH_TEST); /* who needs it? ;-) */
+
+ if (do_fog)
+ glEnable(GL_FOG);
+
+ if (!wire)
+ {
+ glEnable(GL_ALPHA_TEST);
+ glAlphaFunc(GL_GREATER, 0.5);
+ }
+
+ tc->trackball = gltrackball_init (True);
+
+
+ tc->texshift = calloc(tc->num_texshifts, sizeof(GLfloat));
+ for ( i = 0 ; i < tc->num_texshifts; i++)
+ tc->texshift[i] = 0.0;
+
+ glNewList(tc->cyllist, GL_COMPILE);
+ makecyl(30, -0.1, CYL_LEN, 1., 10. / 40.0 * CYL_LEN);
+ /*makecyl(30, -0.5, DIAMOND_LEN, 1., 4. / 40 * DIAMOND_LEN); */
+ glEndList();
+
+ glNewList(tc->diamondlist, GL_COMPILE);
+ makecyl(4, -0.5, DIAMOND_LEN, 1., 4. / 40 * DIAMOND_LEN);
+ glEndList();
+}
+
+
+ENTRYPOINT void
+draw_tunnel (ModeInfo *mi)
+{
+ tunnel_configuration *tc = &tconf[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+
+ if (!tc->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tc->glx_context));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_NORMALIZE);
+ /* glEnable(GL_CULL_FACE); */
+
+ glClear(GL_COLOR_BUFFER_BIT );
+
+ update_animation(tc);
+
+
+ glPushMatrix ();
+
+ glRotatef(180., 0., 1., 0.);
+ gltrackball_rotate (tc->trackball);
+ glRotatef(180., 0., 1., 0.);
+
+
+
+ mi->polygon_count = 0;
+
+ update_fog(tc->effects[4].state[0], /*color*/
+ tc->effects[4].state[1], /*density*/
+ tc->effects[4].state[2], /*start*/
+ tc->effects[4].state[3]); /*end*/
+
+ /* --- begin composite image assembly --- */
+
+ /* head mask and draw diamond tunnel */
+
+ glEnable(GL_BLEND);
+ draw_cyl(mi, tc, tc->effects[6].state[0], 5, tc->diamondlist, 2);
+ if (drawlogo)
+ draw_sign(mi, tc,tc->effects[12].state[0], tc->effects[12].state[1], 1.0 / 1.33, 9, 1);
+ glDisable(GL_BLEND);
+ /* then tardis tunnel */
+ make_wall_tunnel(mi, tc, tc->effects[1].state[0], tc->effects[7].state[0]);
+
+ /* then cylinder tunnel */
+ glEnable(GL_BLEND);
+ draw_cyl(mi, tc, tc->effects[3].state[0], 2, tc->cyllist, 1);
+
+ /*void draw_sign(mi, tc,z,alpha,aspect,tex,blendmode)*/
+ /* tardis */
+ if (drawlogo)
+ draw_sign(mi, tc, tc->effects[2].state[0], tc->effects[2].state[1], 2.0, 1, 0);
+ /* marquee */
+ if (drawlogo)
+ draw_sign(mi, tc, tc->effects[5].state[0], tc->effects[5].state[1], 1.0, 3, 0);
+ /*who head brite*/
+ if (drawlogo)
+ draw_sign(mi, tc,1.0, tc->effects[10].state[0], 1.0 / 1.33, 6, 2);
+ /*who head psychadelic REMOVED*/
+ /* draw_sign(mi, tc,1.0, tc->effects[11].state[0], 1.0 / 1.33, 8, 0); */
+
+ /* star */
+ /* draw_sign(mi, tc, tc->effects[8].state[0]tc->effects[8].state[0], 1.0 , 1.0, 4, 1); */
+ draw_sign(mi, tc, tc->effects[8].state[0], tc->effects[8].state[0], 1.0, 4, 1);
+
+ /* normal head */
+ if (drawlogo)
+ draw_sign(mi, tc,1.0, tc->effects[9].state[0], 1.0 / 1.33, 6, 0);
+
+ /* --- end composite image assembly --- */
+
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ check_gl_error("drawing done, calling swap buffers");
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("TimeTunnel", timetunnel, tunnel)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/timetunnel.man b/hacks/glx/timetunnel.man
new file mode 100644
index 0000000..cdd6af5
--- /dev/null
+++ b/hacks/glx/timetunnel.man
@@ -0,0 +1,105 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+timetunnel - Plasma tunnels fade in and out
+.SH SYNOPSIS
+.B timetunnel
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-start \fInumber\fP]
+[\-end \fInumber\fP]
+[\-dilate \fInumber\fP]
+[\-no-logo]
+[\-reverse]
+[\-no-fog]
+[\-no-texture]
+[\-wireframe]
+[\-fps]
+[\-tardis \fItexture\fP]
+[\-head \fItexture\fP]
+[\-marquee \fItexture\fP]
+[\-tun1 \fItexture\fP]
+[\-tun2 \fItexture\fP]
+[\-tun3 \fItexture\fP]
+.SH DESCRIPTION
+Draws an animation similar to the opening and closing effects on the
+Dr. Who television show.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-start \fInumber\fP
+Start time of loop, 0.0 - 30.00. Default 0.0. May be identical to end time.
+.TP 8
+.B \-end \fInumber\fP
+End time of loop, 0.0 - 30.00. Default 27.79. May be identical to start time.
+.TP 8
+.B \-dilate \fInumber\fP
+Scale time to speed or slow simulation. Numbers less than one slow it down.
+.TP 8
+.B \-no-logo
+Show only tunnels, no logos, etc.
+.TP 8
+.B \-reverse
+Play in reverse, including tunnels.
+.TP 8
+.B \-no-fog
+Turn off fog.
+.TP 8
+.B \-no-texture
+Turn off textures.
+.TP 8
+.B \-wireframe
+Show as wire frame.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.TP 8
+.B \-tardis \fItexture\fP
+Specify an xpm file to override default tardis texture.
+.TP 8
+.B \-head \fItexture\fP
+Specify an xpm file to override default Dr. Who head texture.
+.TP 8
+.B \-marquee \fItexture\fP
+Specify an xpm file to override default show marquee texture.
+.TP 8
+.B \-tun1 \fItexture\fP
+Specify an xpm file to override default tardis tunnel texture.
+.TP 8
+.B \-tun2 \fItexture\fP
+Specify an xpm file to override default middle tunnel texture.
+.TP 8
+.B \-tun3 \fItexture\fP
+Specify an xpm file to override default final tunnel texture.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2005 by Sean Brennan. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Sean Brennan <zettix@yahoo.com>
diff --git a/hacks/glx/toast.c b/hacks/glx/toast.c
new file mode 100644
index 0000000..eb84601
--- /dev/null
+++ b/hacks/glx/toast.c
@@ -0,0 +1,190 @@
+/* Generated from "toast.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toast_data[] = {
+ 0,-1,0,0.391859,-0.5,0.047937,
+ 0,-1,0,-0.3866,-0.5,-0.047937,
+ 0,-1,0,0.391859,-0.5,-0.047937,
+ 0,-1,0,-0.3866,-0.5,-0.047937,
+ 0,-1,0,0.391859,-0.5,0.047937,
+ 0,-1,0,-0.3866,-0.5,0.047937,
+ 0.794299,-0.607527,0,0.448134,-0.426425,-0.047937,
+ 0.794299,-0.607527,0,0.391859,-0.5,0.047937,
+ 0.794299,-0.607527,0,0.391859,-0.5,-0.047937,
+ 0.794299,-0.607527,0,0.391859,-0.5,0.047937,
+ 0.794299,-0.607527,0,0.448134,-0.426425,-0.047937,
+ 0.794299,-0.607527,0,0.448134,-0.426425,0.047937,
+ 1,0,0,0.448134,0.061584,-0.047937,
+ 1,0,0,0.448134,-0.426425,0.047937,
+ 1,0,0,0.448134,-0.426425,-0.047937,
+ 1,0,0,0.448134,-0.426425,0.047937,
+ 1,0,0,0.448134,0.061584,-0.047937,
+ 1,0,0,0.448134,0.061584,0.047937,
+ -0.951883,0.306462,0,-0.3866,0.438467,0.047937,
+ -0.978441,0.206528,0,-0.448134,0.247342,-0.047937,
+ -0.994654,0.103264,0,-0.448134,0.247342,0.047937,
+ -0.978441,0.206528,0,-0.448134,0.247342,-0.047937,
+ -0.951883,0.306462,0,-0.3866,0.438467,0.047937,
+ -0.951883,0.306462,0,-0.3866,0.438467,-0.047937,
+ -0.994654,0.103264,0,-0.448134,0.247342,0.047937,
+ -1,0,0,-0.448134,0.184705,-0.047937,
+ -1,0,0,-0.448134,0.184705,0.047937,
+ -1,0,0,-0.448134,0.184705,-0.047937,
+ -0.994654,0.103264,0,-0.448134,0.247342,0.047937,
+ -0.978441,0.206528,0,-0.448134,0.247342,-0.047937,
+ -0.306512,0.951867,0,-0.3866,0.438467,0.047937,
+ -0.206563,0.978433,0,-0.195512,0.5,-0.047937,
+ -0.306512,0.951867,0,-0.3866,0.438467,-0.047937,
+ -0.206563,0.978433,0,-0.195512,0.5,-0.047937,
+ -0.306512,0.951867,0,-0.3866,0.438467,0.047937,
+ -0.103281,0.994652,0,-0.195512,0.5,0.047937,
+ 0.994378,0.105891,0,0.448134,0.247342,-0.047937,
+ 1,0,0,0.448134,0.184705,0.047937,
+ 1,0,0,0.448134,0.184705,-0.047937,
+ 1,0,0,0.448134,0.184705,0.047937,
+ 0.994378,0.105891,0,0.448134,0.247342,-0.047937,
+ 0.977317,0.211783,0,0.448134,0.247342,0.047937,
+ 0.949396,0.314082,0,0.384905,0.438467,-0.047937,
+ 0.977317,0.211783,0,0.448134,0.247342,0.047937,
+ 0.994378,0.105891,0,0.448134,0.247342,-0.047937,
+ 0.977317,0.211783,0,0.448134,0.247342,0.047937,
+ 0.949396,0.314082,0,0.384905,0.438467,-0.047937,
+ 0.949396,0.314082,0,0.384905,0.438467,0.047937,
+ 0,0,-1,-0.3866,0.438467,-0.047937,
+ 0,0,-1,-0.448134,0.184705,-0.047937,
+ 0,0,-1,-0.448134,0.247342,-0.047937,
+ 0,0,-1,-0.448134,0.184705,-0.047937,
+ 0,0,-1,-0.3866,0.438467,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,0.448134,0.247342,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.384905,0.438467,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.448134,0.247342,-0.047937,
+ 0,0,-1,0.448134,0.184705,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,-0.448134,-0.426425,-0.047937,
+ 0,0,-1,-0.448134,0.061584,-0.047937,
+ 0,0,-1,-0.448134,-0.426425,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,-0.3866,-0.5,-0.047937,
+ 0,0,-1,-0.3866,-0.5,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,-0.3866,0.438467,-0.047937,
+ 0,0,-1,-0.3866,-0.5,-0.047937,
+ 0,0,-1,-0.3866,0.438467,-0.047937,
+ 0,0,-1,-0.195512,0.5,-0.047937,
+ 0,0,-1,-0.3866,-0.5,-0.047937,
+ 0,0,-1,-0.195512,0.5,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,-0.195512,0.5,-0.047937,
+ 0,0,-1,0.193226,0.5,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.193226,0.5,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.193226,0.5,-0.047937,
+ 0,0,-1,0.384905,0.438467,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.448134,0.061584,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.448134,0.061584,-0.047937,
+ 0,0,-1,0.448134,-0.426425,-0.047937,
+ 0.205973,0.978558,0,0.193226,0.5,0.047937,
+ 0.305656,0.952142,0,0.384905,0.438467,-0.047937,
+ 0.102986,0.994683,0,0.193226,0.5,-0.047937,
+ 0.305656,0.952142,0,0.384905,0.438467,-0.047937,
+ 0.205973,0.978558,0,0.193226,0.5,0.047937,
+ 0.305656,0.952142,0,0.384905,0.438467,0.047937,
+ -0.103281,0.994652,0,-0.195512,0.5,0.047937,
+ 0.102986,0.994683,0,0.193226,0.5,-0.047937,
+ -0.206563,0.978433,0,-0.195512,0.5,-0.047937,
+ 0.102986,0.994683,0,0.193226,0.5,-0.047937,
+ -0.103281,0.994652,0,-0.195512,0.5,0.047937,
+ 0.205973,0.978558,0,0.193226,0.5,0.047937,
+ 0.691249,0.722617,0,0.384905,0.122068,0.047937,
+ 0.691249,0.722617,0,0.448134,0.061584,-0.047937,
+ 0.691249,0.722617,0,0.384905,0.122068,-0.047937,
+ 0.691249,0.722617,0,0.448134,0.061584,-0.047937,
+ 0.691249,0.722617,0,0.384905,0.122068,0.047937,
+ 0.691249,0.722617,0,0.448134,0.061584,0.047937,
+ -1,0,0,-0.448134,0.061584,0.047937,
+ -1,0,0,-0.448134,-0.426425,-0.047937,
+ -1,0,0,-0.448134,-0.426425,0.047937,
+ -1,0,0,-0.448134,-0.426425,-0.047937,
+ -1,0,0,-0.448134,0.061584,0.047937,
+ -1,0,0,-0.448134,0.061584,-0.047937,
+ -0.767086,-0.641544,0,-0.448134,-0.426425,0.047937,
+ -0.767086,-0.641544,0,-0.3866,-0.5,-0.047937,
+ -0.767086,-0.641544,0,-0.3866,-0.5,0.047937,
+ -0.767086,-0.641544,0,-0.3866,-0.5,-0.047937,
+ -0.767086,-0.641544,0,-0.448134,-0.426425,0.047937,
+ -0.767086,-0.641544,0,-0.448134,-0.426425,-0.047937,
+ 0.703773,-0.710425,0,0.448134,0.184705,0.047937,
+ 0.703773,-0.710425,0,0.384905,0.122068,-0.047937,
+ 0.703773,-0.710425,0,0.448134,0.184705,-0.047937,
+ 0.703773,-0.710425,0,0.384905,0.122068,-0.047937,
+ 0.703773,-0.710425,0,0.448134,0.184705,0.047937,
+ 0.703773,-0.710425,0,0.384905,0.122068,0.047937,
+ -0.746008,0.665937,0,-0.394142,0.122068,0.047937,
+ -0.746008,0.665937,0,-0.448134,0.061584,-0.047937,
+ -0.746008,0.665937,0,-0.448134,0.061584,0.047937,
+ -0.746008,0.665937,0,-0.448134,0.061584,-0.047937,
+ -0.746008,0.665937,0,-0.394142,0.122068,0.047937,
+ -0.746008,0.665937,0,-0.394142,0.122068,-0.047937,
+ -0.757441,-0.652904,0,-0.448134,0.184705,0.047937,
+ -0.757441,-0.652904,0,-0.394142,0.122068,-0.047937,
+ -0.757441,-0.652904,0,-0.394142,0.122068,0.047937,
+ -0.757441,-0.652904,0,-0.394142,0.122068,-0.047937,
+ -0.757441,-0.652904,0,-0.448134,0.184705,0.047937,
+ -0.757441,-0.652904,0,-0.448134,0.184705,-0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,-0.448134,0.061584,0.047937,
+ 0,0,1,-0.448134,-0.426425,0.047937,
+ 0,0,1,-0.448134,0.061584,0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.448134,0.247342,0.047937,
+ 0,0,1,-0.448134,0.184705,0.047937,
+ 0,0,1,-0.448134,0.247342,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.3866,0.438467,0.047937,
+ 0,0,1,-0.3866,0.438467,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,-0.3866,0.438467,0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,-0.3866,0.438467,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,-0.195512,0.5,0.047937,
+ 0,0,1,-0.195512,0.5,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.193226,0.5,0.047937,
+ 0,0,1,0.193226,0.5,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.193226,0.5,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.384905,0.438467,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.448134,0.061584,0.047937,
+ 0,0,1,0.448134,0.061584,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.448134,-0.426425,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.448134,0.247342,0.047937,
+ 0,0,1,0.384905,0.438467,0.047937,
+ 0,0,1,0.448134,0.247342,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.448134,0.184705,0.047937
+};
+static const struct gllist toast_frame = { GL_N3F_V3F, GL_TRIANGLES, 180, toast_data, 0 };
+const struct gllist *toast = &toast_frame;
diff --git a/hacks/glx/toast.dxf b/hacks/glx/toast.dxf
new file mode 100644
index 0000000..dbee027
--- /dev/null
+++ b/hacks/glx/toast.dxf
@@ -0,0 +1,1814 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+-37.623432
+12
+307.550490
+22
+-392.424732
+32
+-37.623432
+13
+307.550490
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+-303.422838
+22
+-392.424732
+32
+37.623432
+13
+-303.422838
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+-334.679514
+30
+-37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+307.550490
+22
+-392.424732
+32
+-37.623432
+13
+307.550490
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+37.623432
+11
+351.717412
+21
+-334.679514
+31
+-37.623432
+12
+351.717412
+22
+-334.679514
+32
+37.623432
+13
+351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+48.334405
+30
+-37.623432
+11
+351.717412
+21
+-334.679514
+31
+37.623432
+12
+351.717412
+22
+-334.679514
+32
+-37.623432
+13
+351.717412
+23
+-334.679514
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+-334.679514
+30
+37.623432
+11
+351.717412
+21
+48.334405
+31
+-37.623432
+12
+351.717412
+22
+48.334405
+32
+37.623432
+13
+351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+344.130963
+30
+37.623432
+11
+-351.717412
+21
+194.126040
+31
+-37.623432
+12
+-351.717412
+22
+194.126040
+32
+37.623432
+13
+-351.717412
+23
+194.126040
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+194.126040
+30
+-37.623432
+11
+-303.422838
+21
+344.130963
+31
+37.623432
+12
+-303.422838
+22
+344.130963
+32
+-37.623432
+13
+-303.422838
+23
+344.130963
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+194.126040
+30
+37.623432
+11
+-351.717412
+21
+144.965619
+31
+-37.623432
+12
+-351.717412
+22
+144.965619
+32
+37.623432
+13
+-351.717412
+23
+144.965619
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+144.965619
+30
+-37.623432
+11
+-351.717412
+21
+194.126040
+31
+37.623432
+12
+-351.717412
+22
+194.126040
+32
+-37.623432
+13
+-351.717412
+23
+194.126040
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+344.130963
+30
+37.623432
+11
+-153.447717
+21
+392.424732
+31
+-37.623432
+12
+-303.422838
+22
+344.130963
+32
+-37.623432
+13
+-303.422838
+23
+344.130963
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-153.447717
+20
+392.424732
+30
+-37.623432
+11
+-303.422838
+21
+344.130963
+31
+37.623432
+12
+-153.447717
+22
+392.424732
+32
+37.623432
+13
+-153.447717
+23
+392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+-37.623432
+11
+351.717412
+21
+144.965619
+31
+37.623432
+12
+351.717412
+22
+144.965619
+32
+-37.623432
+13
+351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+144.965619
+30
+37.623432
+11
+351.717412
+21
+194.126040
+31
+-37.623432
+12
+351.717412
+22
+194.126040
+32
+37.623432
+13
+351.717412
+23
+194.126040
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+344.130963
+30
+-37.623432
+11
+351.717412
+21
+194.126040
+31
+37.623432
+12
+351.717412
+22
+194.126040
+32
+-37.623432
+13
+351.717412
+23
+194.126040
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+37.623432
+11
+302.092403
+21
+344.130963
+31
+-37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+344.130963
+30
+-37.623432
+11
+-351.717412
+21
+144.965619
+31
+-37.623432
+12
+-351.717412
+22
+194.126040
+32
+-37.623432
+13
+-351.717412
+23
+194.126040
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+144.965619
+30
+-37.623432
+11
+-303.422838
+21
+344.130963
+31
+-37.623432
+12
+-309.341788
+22
+95.805228
+32
+-37.623432
+13
+-309.341788
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+-37.623432
+11
+302.092403
+21
+95.805228
+31
+-37.623432
+12
+302.092403
+22
+344.130963
+32
+-37.623432
+13
+302.092403
+23
+344.130963
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+-37.623432
+11
+351.717412
+21
+194.126040
+31
+-37.623432
+12
+351.717412
+22
+144.965619
+32
+-37.623432
+13
+351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+-37.623432
+11
+-351.717412
+21
+-334.679514
+31
+-37.623432
+12
+-351.717412
+22
+48.334405
+32
+-37.623432
+13
+-351.717412
+23
+48.334405
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+-334.679514
+30
+-37.623432
+11
+-309.341788
+21
+95.805228
+31
+-37.623432
+12
+-303.422838
+22
+-392.424732
+32
+-37.623432
+13
+-303.422838
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+-309.341788
+21
+95.805228
+31
+-37.623432
+12
+-303.422838
+22
+344.130963
+32
+-37.623432
+13
+-303.422838
+23
+344.130963
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+-303.422838
+21
+344.130963
+31
+-37.623432
+12
+-153.447717
+22
+392.424732
+32
+-37.623432
+13
+-153.447717
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+-153.447717
+21
+392.424732
+31
+-37.623432
+12
+307.550490
+22
+-392.424732
+32
+-37.623432
+13
+307.550490
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+-153.447717
+21
+392.424732
+31
+-37.623432
+12
+151.653573
+22
+392.424732
+32
+-37.623432
+13
+151.653573
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+151.653573
+21
+392.424732
+31
+-37.623432
+12
+302.092403
+22
+95.805228
+32
+-37.623432
+13
+302.092403
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+-37.623432
+11
+151.653573
+21
+392.424732
+31
+-37.623432
+12
+302.092403
+22
+344.130963
+32
+-37.623432
+13
+302.092403
+23
+344.130963
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+302.092403
+21
+95.805228
+31
+-37.623432
+12
+351.717412
+22
+48.334405
+32
+-37.623432
+13
+351.717412
+23
+48.334405
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+351.717412
+21
+48.334405
+31
+-37.623432
+12
+351.717412
+22
+-334.679514
+32
+-37.623432
+13
+351.717412
+23
+-334.679514
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+37.623432
+11
+302.092403
+21
+344.130963
+31
+-37.623432
+12
+151.653573
+22
+392.424732
+32
+-37.623432
+13
+151.653573
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+344.130963
+30
+-37.623432
+11
+151.653573
+21
+392.424732
+31
+37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-153.447717
+20
+392.424732
+30
+37.623432
+11
+151.653573
+21
+392.424732
+31
+-37.623432
+12
+-153.447717
+22
+392.424732
+32
+-37.623432
+13
+-153.447717
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+-37.623432
+11
+-153.447717
+21
+392.424732
+31
+37.623432
+12
+151.653573
+22
+392.424732
+32
+37.623432
+13
+151.653573
+23
+392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+37.623432
+11
+351.717412
+21
+48.334405
+31
+-37.623432
+12
+302.092403
+22
+95.805228
+32
+-37.623432
+13
+302.092403
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+48.334405
+30
+-37.623432
+11
+302.092403
+21
+95.805228
+31
+37.623432
+12
+351.717412
+22
+48.334405
+32
+37.623432
+13
+351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+48.334405
+30
+37.623432
+11
+-351.717412
+21
+-334.679514
+31
+-37.623432
+12
+-351.717412
+22
+-334.679514
+32
+37.623432
+13
+-351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+-334.679514
+30
+-37.623432
+11
+-351.717412
+21
+48.334405
+31
+37.623432
+12
+-351.717412
+22
+48.334405
+32
+-37.623432
+13
+-351.717412
+23
+48.334405
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+-334.679514
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+-37.623432
+12
+-303.422838
+22
+-392.424732
+32
+37.623432
+13
+-303.422838
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+-351.717412
+21
+-334.679514
+31
+37.623432
+12
+-351.717412
+22
+-334.679514
+32
+-37.623432
+13
+-351.717412
+23
+-334.679514
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+144.965619
+30
+37.623432
+11
+302.092403
+21
+95.805228
+31
+-37.623432
+12
+351.717412
+22
+144.965619
+32
+-37.623432
+13
+351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+-37.623432
+11
+351.717412
+21
+144.965619
+31
+37.623432
+12
+302.092403
+22
+95.805228
+32
+37.623432
+13
+302.092403
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+37.623432
+11
+-351.717412
+21
+48.334405
+31
+-37.623432
+12
+-351.717412
+22
+48.334405
+32
+37.623432
+13
+-351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+48.334405
+30
+-37.623432
+11
+-309.341788
+21
+95.805228
+31
+37.623432
+12
+-309.341788
+22
+95.805228
+32
+-37.623432
+13
+-309.341788
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+144.965619
+30
+37.623432
+11
+-309.341788
+21
+95.805228
+31
+-37.623432
+12
+-309.341788
+22
+95.805228
+32
+37.623432
+13
+-309.341788
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+-37.623432
+11
+-351.717412
+21
+144.965619
+31
+37.623432
+12
+-351.717412
+22
+144.965619
+32
+-37.623432
+13
+-351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+37.623432
+11
+-351.717412
+21
+48.334405
+31
+37.623432
+12
+-351.717412
+22
+-334.679514
+32
+37.623432
+13
+-351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+48.334405
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+37.623432
+12
+-309.341788
+22
+95.805228
+32
+37.623432
+13
+-309.341788
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+37.623432
+11
+-351.717412
+21
+194.126040
+31
+37.623432
+12
+-351.717412
+22
+144.965619
+32
+37.623432
+13
+-351.717412
+23
+144.965619
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+194.126040
+30
+37.623432
+11
+-309.341788
+21
+95.805228
+31
+37.623432
+12
+-303.422838
+22
+344.130963
+32
+37.623432
+13
+-303.422838
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+344.130963
+30
+37.623432
+11
+-309.341788
+21
+95.805228
+31
+37.623432
+12
+-303.422838
+22
+-392.424732
+32
+37.623432
+13
+-303.422838
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+344.130963
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+37.623432
+12
+307.550490
+22
+-392.424732
+32
+37.623432
+13
+307.550490
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+344.130963
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+-153.447717
+22
+392.424732
+32
+37.623432
+13
+-153.447717
+23
+392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-153.447717
+20
+392.424732
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+151.653573
+22
+392.424732
+32
+37.623432
+13
+151.653573
+23
+392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+302.092403
+22
+95.805228
+32
+37.623432
+13
+302.092403
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+37.623432
+11
+302.092403
+21
+95.805228
+31
+37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+351.717412
+22
+48.334405
+32
+37.623432
+13
+351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+48.334405
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+351.717412
+22
+-334.679514
+32
+37.623432
+13
+351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+37.623432
+11
+351.717412
+21
+194.126040
+31
+37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+37.623432
+11
+302.092403
+21
+95.805228
+31
+37.623432
+12
+351.717412
+22
+144.965619
+32
+37.623432
+13
+351.717412
+23
+144.965619
+33
+37.623432
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toast2.c b/hacks/glx/toast2.c
new file mode 100644
index 0000000..3d653ee
--- /dev/null
+++ b/hacks/glx/toast2.c
@@ -0,0 +1,214 @@
+/* Generated from "toast2.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toast2_data[] = {
+ -0.746008,0.665937,0,-0.394142,0.122068,0.047937,
+ -0.746008,0.665937,0,-0.448134,0.061584,-0.047937,
+ -0.746008,0.665937,0,-0.448134,0.061584,0.047937,
+ -0.746008,0.665937,0,-0.448134,0.061584,-0.047937,
+ -0.746008,0.665937,0,-0.394142,0.122068,0.047937,
+ -0.746008,0.665937,0,-0.394142,0.122068,-0.047937,
+ -0.757441,-0.652904,0,-0.448134,0.184705,0.047937,
+ -0.757441,-0.652904,0,-0.394142,0.122068,-0.047937,
+ -0.757441,-0.652904,0,-0.394142,0.122068,0.047937,
+ -0.757441,-0.652904,0,-0.394142,0.122068,-0.047937,
+ -0.757441,-0.652904,0,-0.448134,0.184705,0.047937,
+ -0.757441,-0.652904,0,-0.448134,0.184705,-0.047937,
+ 0,0,-1,0.448134,0.247342,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.384905,0.438467,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.448134,0.247342,-0.047937,
+ 0,0,-1,0.448134,0.184705,-0.047937,
+ 0,0,-1,-0.233894,0.20122,-0.047937,
+ 0,0,-1,-0.448134,0.184705,-0.047937,
+ 0,0,-1,-0.448134,0.247342,-0.047937,
+ 0,0,-1,-0.448134,0.184705,-0.047937,
+ 0,0,-1,-0.233894,0.20122,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,-0.233894,0.20122,-0.047937,
+ 0,0,-1,-0.3866,-0.5,-0.047937,
+ 0,0,-1,-0.3866,-0.5,-0.047937,
+ 0,0,-1,-0.233894,0.20122,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,-0.233894,0.20122,-0.047937,
+ 0,0,-1,-0.092355,0.236111,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,-0.092355,0.236111,-0.047937,
+ 0,0,-1,-0.001143,0.324361,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,-0.001143,0.324361,-0.047937,
+ 0,0,-1,0.039021,0.5,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.039021,0.5,-0.047937,
+ 0,0,-1,0.193226,0.5,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.193226,0.5,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.193226,0.5,-0.047937,
+ 0,0,-1,0.384905,0.438467,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.384905,0.122068,-0.047937,
+ 0,0,-1,0.448134,0.061584,-0.047937,
+ 0,0,-1,0.391859,-0.5,-0.047937,
+ 0,0,-1,0.448134,0.061584,-0.047937,
+ 0,0,-1,0.448134,-0.426425,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,-0.448134,-0.426425,-0.047937,
+ 0,0,-1,-0.448134,0.061584,-0.047937,
+ 0,0,-1,-0.448134,-0.426425,-0.047937,
+ 0,0,-1,-0.394142,0.122068,-0.047937,
+ 0,0,-1,-0.3866,-0.5,-0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,-0.448134,0.061584,0.047937,
+ 0,0,1,-0.448134,-0.426425,0.047937,
+ 0,0,1,-0.448134,0.061584,0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.448134,0.247342,0.047937,
+ 0,0,1,-0.448134,0.184705,0.047937,
+ 0,0,1,-0.448134,0.247342,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.233894,0.20122,0.047937,
+ 0,0,1,-0.233894,0.20122,0.047937,
+ 0,0,1,-0.394142,0.122068,0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,-0.233894,0.20122,0.047937,
+ 0,0,1,-0.3866,-0.5,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,-0.233894,0.20122,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,-0.092355,0.236111,0.047937,
+ 0,0,1,-0.092355,0.236111,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,-0.001143,0.324361,0.047937,
+ 0,0,1,-0.001143,0.324361,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.039021,0.5,0.047937,
+ 0,0,1,0.039021,0.5,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.193226,0.5,0.047937,
+ 0,0,1,0.193226,0.5,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.193226,0.5,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.384905,0.438467,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.448134,0.061584,0.047937,
+ 0,0,1,0.448134,0.061584,0.047937,
+ 0,0,1,0.391859,-0.5,0.047937,
+ 0,0,1,0.448134,-0.426425,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.448134,0.247342,0.047937,
+ 0,0,1,0.384905,0.438467,0.047937,
+ 0,0,1,0.448134,0.247342,0.047937,
+ 0,0,1,0.384905,0.122068,0.047937,
+ 0,0,1,0.448134,0.184705,0.047937,
+ 0.210457,0.977603,0,-0.448134,0.247342,0.047937,
+ 0.061931,0.99808,0,-0.233894,0.20122,-0.047937,
+ 0.210457,0.977603,0,-0.448134,0.247342,-0.047937,
+ 0.061931,0.99808,0,-0.233894,0.20122,-0.047937,
+ 0.210457,0.977603,0,-0.448134,0.247342,0.047937,
+ -0.091493,0.995806,0,-0.233894,0.20122,0.047937,
+ -0.974837,0.222918,0,0.039021,0.5,0.047937,
+ -0.974837,0.222918,0,-0.001143,0.324361,-0.047937,
+ -0.974837,0.222918,0,-0.001143,0.324361,0.047937,
+ -0.974837,0.222918,0,-0.001143,0.324361,-0.047937,
+ -0.974837,0.222918,0,0.039021,0.5,0.047937,
+ -0.974837,0.222918,0,0.039021,0.5,-0.047937,
+ -0.091493,0.995806,0,-0.233894,0.20122,0.047937,
+ -0.239346,0.970934,0,-0.092355,0.236111,-0.047937,
+ 0.061931,0.99808,0,-0.233894,0.20122,-0.047937,
+ -0.239346,0.970934,0,-0.092355,0.236111,-0.047937,
+ -0.091493,0.995806,0,-0.233894,0.20122,0.047937,
+ -0.239346,0.970934,0,-0.092355,0.236111,0.047937,
+ -0.695338,0.718683,0,-0.092355,0.236111,0.047937,
+ -0.695338,0.718683,0,-0.001143,0.324361,-0.047937,
+ -0.695338,0.718683,0,-0.092355,0.236111,-0.047937,
+ -0.695338,0.718683,0,-0.001143,0.324361,-0.047937,
+ -0.695338,0.718683,0,-0.092355,0.236111,0.047937,
+ -0.695338,0.718683,0,-0.001143,0.324361,0.047937,
+ -1,0,0,-0.448134,0.247342,0.047937,
+ -1,0,0,-0.448134,0.184705,-0.047937,
+ -1,0,0,-0.448134,0.184705,0.047937,
+ -1,0,0,-0.448134,0.184705,-0.047937,
+ -1,0,0,-0.448134,0.247342,0.047937,
+ -1,0,0,-0.448134,0.247342,-0.047937,
+ 0,1,0,0.039021,0.5,0.047937,
+ 0.102986,0.994683,0,0.193226,0.5,-0.047937,
+ 0,1,0,0.039021,0.5,-0.047937,
+ 0.102986,0.994683,0,0.193226,0.5,-0.047937,
+ 0,1,0,0.039021,0.5,0.047937,
+ 0.205973,0.978558,0,0.193226,0.5,0.047937,
+ 0.205973,0.978558,0,0.193226,0.5,0.047937,
+ 0.305656,0.952142,0,0.384905,0.438467,-0.047937,
+ 0.102986,0.994683,0,0.193226,0.5,-0.047937,
+ 0.305656,0.952142,0,0.384905,0.438467,-0.047937,
+ 0.205973,0.978558,0,0.193226,0.5,0.047937,
+ 0.305656,0.952142,0,0.384905,0.438467,0.047937,
+ 0.949396,0.314082,0,0.384905,0.438467,-0.047937,
+ 0.977317,0.211783,0,0.448134,0.247342,0.047937,
+ 0.994378,0.105891,0,0.448134,0.247342,-0.047937,
+ 0.977317,0.211783,0,0.448134,0.247342,0.047937,
+ 0.949396,0.314082,0,0.384905,0.438467,-0.047937,
+ 0.949396,0.314082,0,0.384905,0.438467,0.047937,
+ 0.994378,0.105891,0,0.448134,0.247342,-0.047937,
+ 1,0,0,0.448134,0.184705,0.047937,
+ 1,0,0,0.448134,0.184705,-0.047937,
+ 1,0,0,0.448134,0.184705,0.047937,
+ 0.994378,0.105891,0,0.448134,0.247342,-0.047937,
+ 0.977317,0.211783,0,0.448134,0.247342,0.047937,
+ 0.703773,-0.710425,0,0.448134,0.184705,0.047937,
+ 0.703773,-0.710425,0,0.384905,0.122068,-0.047937,
+ 0.703773,-0.710425,0,0.448134,0.184705,-0.047937,
+ 0.703773,-0.710425,0,0.384905,0.122068,-0.047937,
+ 0.703773,-0.710425,0,0.448134,0.184705,0.047937,
+ 0.703773,-0.710425,0,0.384905,0.122068,0.047937,
+ 0.691249,0.722617,0,0.384905,0.122068,0.047937,
+ 0.691249,0.722617,0,0.448134,0.061584,-0.047937,
+ 0.691249,0.722617,0,0.384905,0.122068,-0.047937,
+ 0.691249,0.722617,0,0.448134,0.061584,-0.047937,
+ 0.691249,0.722617,0,0.384905,0.122068,0.047937,
+ 0.691249,0.722617,0,0.448134,0.061584,0.047937,
+ 1,0,0,0.448134,0.061584,-0.047937,
+ 1,0,0,0.448134,-0.426425,0.047937,
+ 1,0,0,0.448134,-0.426425,-0.047937,
+ 1,0,0,0.448134,-0.426425,0.047937,
+ 1,0,0,0.448134,0.061584,-0.047937,
+ 1,0,0,0.448134,0.061584,0.047937,
+ 0.794299,-0.607527,0,0.448134,-0.426425,-0.047937,
+ 0.794299,-0.607527,0,0.391859,-0.5,0.047937,
+ 0.794299,-0.607527,0,0.391859,-0.5,-0.047937,
+ 0.794299,-0.607527,0,0.391859,-0.5,0.047937,
+ 0.794299,-0.607527,0,0.448134,-0.426425,-0.047937,
+ 0.794299,-0.607527,0,0.448134,-0.426425,0.047937,
+ 0,-1,0,0.391859,-0.5,0.047937,
+ 0,-1,0,-0.3866,-0.5,-0.047937,
+ 0,-1,0,0.391859,-0.5,-0.047937,
+ 0,-1,0,-0.3866,-0.5,-0.047937,
+ 0,-1,0,0.391859,-0.5,0.047937,
+ 0,-1,0,-0.3866,-0.5,0.047937,
+ -0.767086,-0.641544,0,-0.448134,-0.426425,0.047937,
+ -0.767086,-0.641544,0,-0.3866,-0.5,-0.047937,
+ -0.767086,-0.641544,0,-0.3866,-0.5,0.047937,
+ -0.767086,-0.641544,0,-0.3866,-0.5,-0.047937,
+ -0.767086,-0.641544,0,-0.448134,-0.426425,0.047937,
+ -0.767086,-0.641544,0,-0.448134,-0.426425,-0.047937,
+ -1,0,0,-0.448134,0.061584,0.047937,
+ -1,0,0,-0.448134,-0.426425,-0.047937,
+ -1,0,0,-0.448134,-0.426425,0.047937,
+ -1,0,0,-0.448134,-0.426425,-0.047937,
+ -1,0,0,-0.448134,0.061584,0.047937,
+ -1,0,0,-0.448134,0.061584,-0.047937
+};
+static const struct gllist toast2_frame = { GL_N3F_V3F, GL_TRIANGLES, 204, toast2_data, 0 };
+const struct gllist *toast2 = &toast2_frame;
diff --git a/hacks/glx/toast2.dxf b/hacks/glx/toast2.dxf
new file mode 100644
index 0000000..6cb545a
--- /dev/null
+++ b/hacks/glx/toast2.dxf
@@ -0,0 +1,2054 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+37.623432
+11
+-351.717412
+21
+48.334405
+31
+-37.623432
+12
+-351.717412
+22
+48.334405
+32
+37.623432
+13
+-351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+48.334405
+30
+-37.623432
+11
+-309.341788
+21
+95.805228
+31
+37.623432
+12
+-309.341788
+22
+95.805228
+32
+-37.623432
+13
+-309.341788
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+144.965619
+30
+37.623432
+11
+-309.341788
+21
+95.805228
+31
+-37.623432
+12
+-309.341788
+22
+95.805228
+32
+37.623432
+13
+-309.341788
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+-37.623432
+11
+-351.717412
+21
+144.965619
+31
+37.623432
+12
+-351.717412
+22
+144.965619
+32
+-37.623432
+13
+-351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+-37.623432
+11
+302.092403
+21
+95.805228
+31
+-37.623432
+12
+302.092403
+22
+344.130963
+32
+-37.623432
+13
+302.092403
+23
+344.130963
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+-37.623432
+11
+351.717412
+21
+194.126040
+31
+-37.623432
+12
+351.717412
+22
+144.965619
+32
+-37.623432
+13
+351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-183.571503
+20
+157.927796
+30
+-37.623432
+11
+-351.717412
+21
+144.965619
+31
+-37.623432
+12
+-351.717412
+22
+194.126040
+32
+-37.623432
+13
+-351.717412
+23
+194.126040
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+144.965619
+30
+-37.623432
+11
+-183.571503
+21
+157.927796
+31
+-37.623432
+12
+-309.341788
+22
+95.805228
+32
+-37.623432
+13
+-309.341788
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+-37.623432
+11
+-183.571503
+21
+157.927796
+31
+-37.623432
+12
+-303.422838
+22
+-392.424732
+32
+-37.623432
+13
+-303.422838
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+-183.571503
+21
+157.927796
+31
+-37.623432
+12
+307.550490
+22
+-392.424732
+32
+-37.623432
+13
+307.550490
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+-183.571503
+21
+157.927796
+31
+-37.623432
+12
+-72.484739
+22
+185.311958
+32
+-37.623432
+13
+-72.484739
+23
+185.311958
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+-72.484739
+21
+185.311958
+31
+-37.623432
+12
+-0.897070
+22
+254.574299
+32
+-37.623432
+13
+-0.897070
+23
+254.574299
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+-0.897070
+21
+254.574299
+31
+-37.623432
+12
+30.625457
+22
+392.424732
+32
+-37.623432
+13
+30.625457
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+30.625457
+21
+392.424732
+31
+-37.623432
+12
+151.653573
+22
+392.424732
+32
+-37.623432
+13
+151.653573
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+151.653573
+21
+392.424732
+31
+-37.623432
+12
+302.092403
+22
+95.805228
+32
+-37.623432
+13
+302.092403
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+-37.623432
+11
+151.653573
+21
+392.424732
+31
+-37.623432
+12
+302.092403
+22
+344.130963
+32
+-37.623432
+13
+302.092403
+23
+344.130963
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+302.092403
+21
+95.805228
+31
+-37.623432
+12
+351.717412
+22
+48.334405
+32
+-37.623432
+13
+351.717412
+23
+48.334405
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+-37.623432
+11
+351.717412
+21
+48.334405
+31
+-37.623432
+12
+351.717412
+22
+-334.679514
+32
+-37.623432
+13
+351.717412
+23
+-334.679514
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+-37.623432
+11
+-351.717412
+21
+-334.679514
+31
+-37.623432
+12
+-351.717412
+22
+48.334405
+32
+-37.623432
+13
+-351.717412
+23
+48.334405
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+-334.679514
+30
+-37.623432
+11
+-309.341788
+21
+95.805228
+31
+-37.623432
+12
+-303.422838
+22
+-392.424732
+32
+-37.623432
+13
+-303.422838
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+37.623432
+11
+-351.717412
+21
+48.334405
+31
+37.623432
+12
+-351.717412
+22
+-334.679514
+32
+37.623432
+13
+-351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+48.334405
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+37.623432
+12
+-309.341788
+22
+95.805228
+32
+37.623432
+13
+-309.341788
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-309.341788
+20
+95.805228
+30
+37.623432
+11
+-351.717412
+21
+194.126040
+31
+37.623432
+12
+-351.717412
+22
+144.965619
+32
+37.623432
+13
+-351.717412
+23
+144.965619
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+194.126040
+30
+37.623432
+11
+-309.341788
+21
+95.805228
+31
+37.623432
+12
+-183.571503
+22
+157.927796
+32
+37.623432
+13
+-183.571503
+23
+157.927796
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-183.571503
+20
+157.927796
+30
+37.623432
+11
+-309.341788
+21
+95.805228
+31
+37.623432
+12
+-303.422838
+22
+-392.424732
+32
+37.623432
+13
+-303.422838
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-183.571503
+20
+157.927796
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+37.623432
+12
+307.550490
+22
+-392.424732
+32
+37.623432
+13
+307.550490
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-183.571503
+20
+157.927796
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+-72.484739
+22
+185.311958
+32
+37.623432
+13
+-72.484739
+23
+185.311958
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-72.484739
+20
+185.311958
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+-0.897070
+22
+254.574299
+32
+37.623432
+13
+-0.897070
+23
+254.574299
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-0.897070
+20
+254.574299
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+30.625457
+22
+392.424732
+32
+37.623432
+13
+30.625457
+23
+392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+30.625457
+20
+392.424732
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+151.653573
+22
+392.424732
+32
+37.623432
+13
+151.653573
+23
+392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+302.092403
+22
+95.805228
+32
+37.623432
+13
+302.092403
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+37.623432
+11
+302.092403
+21
+95.805228
+31
+37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+351.717412
+22
+48.334405
+32
+37.623432
+13
+351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+48.334405
+30
+37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+351.717412
+22
+-334.679514
+32
+37.623432
+13
+351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+37.623432
+11
+351.717412
+21
+194.126040
+31
+37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+37.623432
+11
+302.092403
+21
+95.805228
+31
+37.623432
+12
+351.717412
+22
+144.965619
+32
+37.623432
+13
+351.717412
+23
+144.965619
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+194.126040
+30
+37.623432
+11
+-183.571503
+21
+157.927796
+31
+-37.623432
+12
+-351.717412
+22
+194.126040
+32
+-37.623432
+13
+-351.717412
+23
+194.126040
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-183.571503
+20
+157.927796
+30
+-37.623432
+11
+-351.717412
+21
+194.126040
+31
+37.623432
+12
+-183.571503
+22
+157.927796
+32
+37.623432
+13
+-183.571503
+23
+157.927796
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+30.625457
+20
+392.424732
+30
+37.623432
+11
+-0.897070
+21
+254.574299
+31
+-37.623432
+12
+-0.897070
+22
+254.574299
+32
+37.623432
+13
+-0.897070
+23
+254.574299
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-0.897070
+20
+254.574299
+30
+-37.623432
+11
+30.625457
+21
+392.424732
+31
+37.623432
+12
+30.625457
+22
+392.424732
+32
+-37.623432
+13
+30.625457
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-183.571503
+20
+157.927796
+30
+37.623432
+11
+-72.484739
+21
+185.311958
+31
+-37.623432
+12
+-183.571503
+22
+157.927796
+32
+-37.623432
+13
+-183.571503
+23
+157.927796
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-72.484739
+20
+185.311958
+30
+-37.623432
+11
+-183.571503
+21
+157.927796
+31
+37.623432
+12
+-72.484739
+22
+185.311958
+32
+37.623432
+13
+-72.484739
+23
+185.311958
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-72.484739
+20
+185.311958
+30
+37.623432
+11
+-0.897070
+21
+254.574299
+31
+-37.623432
+12
+-72.484739
+22
+185.311958
+32
+-37.623432
+13
+-72.484739
+23
+185.311958
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-0.897070
+20
+254.574299
+30
+-37.623432
+11
+-72.484739
+21
+185.311958
+31
+37.623432
+12
+-0.897070
+22
+254.574299
+32
+37.623432
+13
+-0.897070
+23
+254.574299
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+194.126040
+30
+37.623432
+11
+-351.717412
+21
+144.965619
+31
+-37.623432
+12
+-351.717412
+22
+144.965619
+32
+37.623432
+13
+-351.717412
+23
+144.965619
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+144.965619
+30
+-37.623432
+11
+-351.717412
+21
+194.126040
+31
+37.623432
+12
+-351.717412
+22
+194.126040
+32
+-37.623432
+13
+-351.717412
+23
+194.126040
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+30.625457
+20
+392.424732
+30
+37.623432
+11
+151.653573
+21
+392.424732
+31
+-37.623432
+12
+30.625457
+22
+392.424732
+32
+-37.623432
+13
+30.625457
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+-37.623432
+11
+30.625457
+21
+392.424732
+31
+37.623432
+12
+151.653573
+22
+392.424732
+32
+37.623432
+13
+151.653573
+23
+392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+151.653573
+20
+392.424732
+30
+37.623432
+11
+302.092403
+21
+344.130963
+31
+-37.623432
+12
+151.653573
+22
+392.424732
+32
+-37.623432
+13
+151.653573
+23
+392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+344.130963
+30
+-37.623432
+11
+151.653573
+21
+392.424732
+31
+37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+344.130963
+30
+-37.623432
+11
+351.717412
+21
+194.126040
+31
+37.623432
+12
+351.717412
+22
+194.126040
+32
+-37.623432
+13
+351.717412
+23
+194.126040
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+37.623432
+11
+302.092403
+21
+344.130963
+31
+-37.623432
+12
+302.092403
+22
+344.130963
+32
+37.623432
+13
+302.092403
+23
+344.130963
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+194.126040
+30
+-37.623432
+11
+351.717412
+21
+144.965619
+31
+37.623432
+12
+351.717412
+22
+144.965619
+32
+-37.623432
+13
+351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+144.965619
+30
+37.623432
+11
+351.717412
+21
+194.126040
+31
+-37.623432
+12
+351.717412
+22
+194.126040
+32
+37.623432
+13
+351.717412
+23
+194.126040
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+144.965619
+30
+37.623432
+11
+302.092403
+21
+95.805228
+31
+-37.623432
+12
+351.717412
+22
+144.965619
+32
+-37.623432
+13
+351.717412
+23
+144.965619
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+-37.623432
+11
+351.717412
+21
+144.965619
+31
+37.623432
+12
+302.092403
+22
+95.805228
+32
+37.623432
+13
+302.092403
+23
+95.805228
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+302.092403
+20
+95.805228
+30
+37.623432
+11
+351.717412
+21
+48.334405
+31
+-37.623432
+12
+302.092403
+22
+95.805228
+32
+-37.623432
+13
+302.092403
+23
+95.805228
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+48.334405
+30
+-37.623432
+11
+302.092403
+21
+95.805228
+31
+37.623432
+12
+351.717412
+22
+48.334405
+32
+37.623432
+13
+351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+48.334405
+30
+-37.623432
+11
+351.717412
+21
+-334.679514
+31
+37.623432
+12
+351.717412
+22
+-334.679514
+32
+-37.623432
+13
+351.717412
+23
+-334.679514
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+-334.679514
+30
+37.623432
+11
+351.717412
+21
+48.334405
+31
+-37.623432
+12
+351.717412
+22
+48.334405
+32
+37.623432
+13
+351.717412
+23
+48.334405
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+351.717412
+20
+-334.679514
+30
+-37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+307.550490
+22
+-392.424732
+32
+-37.623432
+13
+307.550490
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+37.623432
+11
+351.717412
+21
+-334.679514
+31
+-37.623432
+12
+351.717412
+22
+-334.679514
+32
+37.623432
+13
+351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+307.550490
+20
+-392.424732
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+-37.623432
+12
+307.550490
+22
+-392.424732
+32
+-37.623432
+13
+307.550490
+23
+-392.424732
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+307.550490
+21
+-392.424732
+31
+37.623432
+12
+-303.422838
+22
+-392.424732
+32
+37.623432
+13
+-303.422838
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+-334.679514
+30
+37.623432
+11
+-303.422838
+21
+-392.424732
+31
+-37.623432
+12
+-303.422838
+22
+-392.424732
+32
+37.623432
+13
+-303.422838
+23
+-392.424732
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-303.422838
+20
+-392.424732
+30
+-37.623432
+11
+-351.717412
+21
+-334.679514
+31
+37.623432
+12
+-351.717412
+22
+-334.679514
+32
+-37.623432
+13
+-351.717412
+23
+-334.679514
+33
+-37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+48.334405
+30
+37.623432
+11
+-351.717412
+21
+-334.679514
+31
+-37.623432
+12
+-351.717412
+22
+-334.679514
+32
+37.623432
+13
+-351.717412
+23
+-334.679514
+33
+37.623432
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-351.717412
+20
+-334.679514
+30
+-37.623432
+11
+-351.717412
+21
+48.334405
+31
+37.623432
+12
+-351.717412
+22
+48.334405
+32
+-37.623432
+13
+-351.717412
+23
+48.334405
+33
+-37.623432
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster.c b/hacks/glx/toaster.c
new file mode 100644
index 0000000..1feca5d
--- /dev/null
+++ b/hacks/glx/toaster.c
@@ -0,0 +1,376 @@
+/* Generated from "toaster.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_data[] = {
+ -0.316307,-0.948657,0,-0.283103,-0.467335,0.222248,
+ -0.101389,-0.994724,-0.015639,-0.234168,-0.483652,-0.380912,
+ -0.194699,-0.980863,0,-0.234168,-0.483652,0.222248,
+ -0.015849,0.992717,0.119421,-0.001224,0.5,0.222248,
+ -0.130021,0.991469,-0.009119,-0.234168,0.483652,-0.380912,
+ -0.197233,0.97209,0.127042,-0.234168,0.483652,0.222248,
+ -0.104394,-0.808168,0.579627,-0.17891,-0.455225,0.279296,
+ -0.132836,-0.912766,0.386282,-0.234168,-0.483652,0.222248,
+ -0.012111,-0.87373,0.486261,-0.001224,-0.5,0.222248,
+ -0.999999,0,-0.001399,-0.345926,0,-0.380912,
+ -0.974495,-0.224383,-0.003566,-0.299415,-0.418387,-0.380912,
+ -0.996185,-0.087205,0.003347,-0.331315,-0.208938,0.222248,
+ 0.996185,0.087205,0.003347,0.331315,0.208938,0.222248,
+ 0.996185,-0.087205,0.003347,0.331315,-0.208938,0.222248,
+ 0.999999,0,-0.001399,0.345926,0,-0.380912,
+ -0.000242,0.999959,-0.009047,-0.001224,0.5,0.222248,
+ 0.129779,0.991501,-0.009119,0.234168,0.483652,-0.380912,
+ -0.130021,0.991469,-0.009119,-0.234168,0.483652,-0.380912,
+ -0.154648,-0.973224,0.170058,-0.234168,-0.483652,0.222248,
+ -0.101389,-0.994724,-0.015639,-0.234168,-0.483652,-0.380912,
+ -0.010495,-0.997502,0.069855,-0.001224,-0.5,0.222248,
+ 0.967433,0.253065,0.005626,0.292931,0.437844,-0.141156,
+ 0.965122,0.261801,0,0.299415,0.418387,0.222248,
+ 0.979828,0.199828,-0.002375,0.299415,0.418387,-0.380912,
+ 0.965122,0.261801,0,0.299415,0.418387,0.222248,
+ 0.967433,0.253065,0.005626,0.292931,0.437844,-0.141156,
+ 0.977686,0.209863,0.009409,0.283103,0.467335,0.222248,
+ 0.977686,0.209863,0.009409,0.283103,0.467335,0.222248,
+ 0.967433,0.253065,0.005626,0.292931,0.437844,-0.141156,
+ 0.977686,0.209863,0.009409,0.288017,0.45259,0.040546,
+ 0.316307,0.948657,0,0.283103,0.467335,0.222248,
+ 0.316307,0.948657,0,0.283103,0.467335,-0.380912,
+ 0.235633,0.971842,0,0.234168,0.483652,0.222248,
+ 0.94871,0.316149,-0,0.283103,0.467335,-0.380912,
+ 0.967433,0.253065,0.005626,0.292931,0.437844,-0.141156,
+ 0.979828,0.199828,-0.002375,0.299415,0.418387,-0.380912,
+ 0.967433,0.253065,0.005626,0.292931,0.437844,-0.141156,
+ 0.94871,0.316149,-0,0.283103,0.467335,-0.380912,
+ 0.977686,0.209863,0.009409,0.288017,0.45259,0.040546,
+ 0.977686,0.209863,0.009409,0.288017,0.45259,0.040546,
+ 0.94871,0.316149,-0,0.283103,0.467335,-0.380912,
+ 0.977686,0.209863,0.009409,0.283103,0.467335,0.222248,
+ 0,0.227898,0.973685,0.054097,0.251982,0.357142,
+ 0,0.227898,0.973685,-0.054097,0.251982,0.357142,
+ 0,-0,1,0.05339,0,0.380912,
+ -0.743012,0.091749,0.66296,-0.257344,0.251982,0.320299,
+ -0.817604,0.124528,0.562153,-0.31207,0.335293,0.222248,
+ -0.809725,0.0624,0.583482,-0.331315,0.208938,0.222248,
+ -0.817604,0.124528,0.562153,-0.31207,0.335293,0.222248,
+ -0.743012,0.091749,0.66296,-0.257344,0.251982,0.320299,
+ -0.680969,0.208836,0.701903,-0.299415,0.418387,0.222248,
+ 0,0,1,-0.31207,0.335293,0.222248,
+ 0,0,1,-0.299415,0.418387,0.222248,
+ 0,0,1,-0.305628,0.377591,0.222248,
+ 0.490312,-0.197001,0.84899,0.257344,-0.251982,0.320299,
+ 0.439235,-0,0.898372,0.166895,0,0.380912,
+ 0.369417,-0.202622,0.906904,0.166895,-0.251982,0.357142,
+ 0.479243,0.170617,0.860939,0.257344,0.251982,0.320299,
+ 0.344013,0.237244,0.908499,0.166895,0.251982,0.357142,
+ 0.439235,-0,0.898372,0.166895,0,0.380912,
+ 0.806304,-0.04159,0.590037,0.331315,-0.208938,0.222248,
+ 0.743012,0.091749,0.66296,0.257344,0.251982,0.320299,
+ 0.726863,-0.090005,0.680859,0.257344,-0.251982,0.320299,
+ 0.743012,0.091749,0.66296,0.257344,0.251982,0.320299,
+ 0.806304,-0.04159,0.590037,0.331315,-0.208938,0.222248,
+ 0.809725,0.062401,0.583482,0.331315,0.208938,0.222248,
+ 0,-0,1,0.05339,0,0.380912,
+ 0,0.227898,0.973685,-0.054097,0.251982,0.357142,
+ 0,-0,1,-0.05339,0,0.380912,
+ -0.988599,0.150571,-0,-0.31207,0.335293,0.222248,
+ -0.979828,0.199828,-0.002375,-0.299415,0.418387,-0.380912,
+ -0.996185,0.087204,0.003347,-0.331315,0.208938,0.222248,
+ -0.979828,0.199828,-0.002375,-0.299415,0.418387,-0.380912,
+ -0.988599,0.150571,-0,-0.31207,0.335293,0.222248,
+ -0.988599,0.150572,-0,-0.305628,0.377591,0.222248,
+ -0.979828,0.199828,-0.002375,-0.299415,0.418387,-0.380912,
+ -0.988599,0.150572,-0,-0.305628,0.377591,0.222248,
+ -0.965122,0.261802,0,-0.299415,0.418387,0.222248,
+ -0.594501,-0.161247,0.787761,-0.257344,-0.251982,0.320299,
+ -0.757873,-0.17819,0.627596,-0.299415,-0.418387,0.222248,
+ -0.563931,-0.285379,0.774946,-0.283103,-0.467335,0.222248,
+ -0.191789,-0.715866,0.671382,-0.17891,-0.455225,0.279296,
+ -0.34735,-0.55882,0.753039,-0.283103,-0.467335,0.222248,
+ -0.156515,-0.815104,0.55777,-0.234168,-0.483652,0.222248,
+ -0.353973,-0.479978,0.802698,-0.17891,-0.455225,0.279296,
+ -0.490312,-0.197001,0.84899,-0.257344,-0.251982,0.320299,
+ -0.476561,-0.458788,0.749935,-0.283103,-0.467335,0.222248,
+ -0.965122,0.261802,0,-0.299415,0.418387,0.222248,
+ -0.94871,0.316149,0,-0.286127,0.45826,0.110422,
+ -0.979828,0.199828,-0.002375,-0.299415,0.418387,-0.380912,
+ -0.94871,0.316149,0,-0.286127,0.45826,0.110422,
+ -0.965122,0.261802,0,-0.299415,0.418387,0.222248,
+ -0.948709,0.316149,0,-0.283103,0.467335,0.222248,
+ 0.812952,-0.581784,0.025229,-0.286127,0.45826,0.110422,
+ 0.812952,-0.581784,0.025229,-0.283103,0.467335,0.222248,
+ 0.812952,-0.581784,0.025229,-0.285423,0.460375,0.136473,
+ -0.94871,0.316149,0,-0.286127,0.45826,0.110422,
+ -0.94871,0.316149,-0,-0.283103,0.467335,-0.380912,
+ -0.979828,0.199828,-0.002375,-0.299415,0.418387,-0.380912,
+ -0.94871,0.316149,-0,-0.283103,0.467335,-0.380912,
+ -0.94871,0.316149,0,-0.286127,0.45826,0.110422,
+ -0.94871,0.316149,-0,-0.285423,0.460375,0.136473,
+ -0.94871,0.316149,-0,-0.283103,0.467335,-0.380912,
+ -0.94871,0.316149,-0,-0.285423,0.460375,0.136473,
+ -0.948709,0.316149,0,-0.283103,0.467335,0.222248,
+ -0.38567,0.427053,0.817853,-0.231791,0.418387,0.27573,
+ -0.241461,0.701279,0.670749,-0.234168,0.483652,0.222248,
+ -0.205338,0.615841,0.760642,-0.283103,0.467335,0.222248,
+ 0,0.78664,0.617411,0.054097,0.455225,0.279296,
+ -0.000123,0.822299,0.569056,-0.001224,0.5,0.222248,
+ 0,0.78664,0.617411,-0.054097,0.455225,0.279296,
+ 0,-0.78664,0.617411,0.054097,-0.455225,0.279296,
+ 0,-0.78664,0.617411,-0.054097,-0.455225,0.279296,
+ -0.000123,-0.822299,0.569056,-0.001224,-0.5,0.222248,
+ 0,-0.664991,0.746852,-0.054097,-0.455225,0.279296,
+ 0,-0.593633,0.804736,0.054097,-0.455225,0.279296,
+ 0,-0.357681,0.933844,0,-0.455225,0.279296,
+ 0,-0.357681,0.933844,0,-0.455225,0.279296,
+ 0,-0.254425,0.967093,-0.054097,-0.251982,0.357142,
+ 0,-0.357681,0.933844,-0.054097,-0.455225,0.279296,
+ 0,-0.254425,0.967093,-0.054097,-0.251982,0.357142,
+ 0,-0.357681,0.933844,0,-0.455225,0.279296,
+ 0,-0.357681,0.933844,0.054097,-0.455225,0.279296,
+ -0.369417,-0.202622,0.906904,-0.166895,-0.251982,0.357142,
+ -0.490312,-0.197001,0.84899,-0.257344,-0.251982,0.320299,
+ -0.390635,-0.324541,0.861439,-0.17891,-0.455225,0.279296,
+ 0,0.78664,0.617411,-0.054097,0.455225,0.279296,
+ -0.000123,0.822299,0.569056,-0.001224,0.5,0.222248,
+ -0.171632,0.762512,0.623793,-0.17891,0.455225,0.279296,
+ -0.42641,0.391747,0.815297,-0.231791,0.418387,0.27573,
+ -0.680969,0.208836,0.701903,-0.299415,0.418387,0.222248,
+ -0.662215,0.119119,0.739785,-0.257344,0.251982,0.320299,
+ 0.476561,-0.458788,0.749935,0.283103,-0.467335,0.222248,
+ 0.490312,-0.197001,0.84899,0.257344,-0.251982,0.320299,
+ 0.353972,-0.479978,0.802698,0.17891,-0.455225,0.279296,
+ 0.979828,0.199828,-0.002375,0.299415,0.418387,-0.380912,
+ 0.988599,0.150572,0,0.318731,0.29156,0.222248,
+ 0.996185,0.087205,0.003347,0.331315,0.208938,0.222248,
+ 0.988599,0.150572,0,0.318731,0.29156,0.222248,
+ 0.979828,0.199828,-0.002375,0.299415,0.418387,-0.380912,
+ 0.988599,0.150571,0,0.310276,0.347076,0.222248,
+ 0.988599,0.150571,0,0.310276,0.347076,0.222248,
+ 0.979828,0.199828,-0.002375,0.299415,0.418387,-0.380912,
+ 0.965122,0.261801,0,0.299415,0.418387,0.222248,
+ -0.252774,0.582577,0.77247,-0.17891,0.455225,0.279296,
+ -0.323984,0.592558,0.737502,-0.234168,0.483652,0.222248,
+ -0.42641,0.391747,0.815297,-0.231791,0.418387,0.27573,
+ 0,-0.227898,0.973685,0.054097,-0.251982,0.357142,
+ 0,-0,1,0.05339,0,0.380912,
+ 0,-0.254425,0.967093,-0.054097,-0.251982,0.357142,
+ 0.979828,0.199828,-0.002375,0.299415,0.418387,-0.380912,
+ 0.996185,0.087205,0.003347,0.331315,0.208938,0.222248,
+ 0.999999,0,-0.001399,0.345926,0,-0.380912,
+ 0.141954,-0.989813,-0.010959,0.234168,-0.483652,-0.380912,
+ 0,-0.999633,-0.027095,0.008103,-0.487773,-0.228855,
+ -0.101389,-0.994724,-0.015639,-0.234168,-0.483652,-0.380912,
+ 0,-0.999633,-0.027095,0.008103,-0.487773,-0.228855,
+ 0.141954,-0.989813,-0.010959,0.234168,-0.483652,-0.380912,
+ 0.027733,-0.999483,-0.016268,0.054066,-0.49616,0.080576,
+ 0,-0.999633,-0.027095,0.008103,-0.487773,-0.228855,
+ 0.027733,-0.999483,-0.016268,0.054066,-0.49616,0.080576,
+ 0,-0.999633,-0.027095,0.008103,-0.49662,0.097563,
+ 0,-0.999633,-0.027095,0.008103,-0.49662,0.097563,
+ 0.027733,-0.999483,-0.016268,0.054066,-0.49616,0.080576,
+ -0.000145,-0.999868,-0.016274,-0.001224,-0.5,0.222248,
+ 0,-0.999633,-0.027095,0.008103,-0.49662,0.097563,
+ -0.000145,-0.999868,-0.016274,-0.001224,-0.5,0.222248,
+ -0,-0.999633,-0.027095,-0.017747,-0.49662,0.097563,
+ -0.101389,-0.994724,-0.015639,-0.234168,-0.483652,-0.380912,
+ -0,-0.999633,-0.027095,-0.017747,-0.49662,0.097563,
+ -0.000145,-0.999868,-0.016274,-0.001224,-0.5,0.222248,
+ -0,-0.999633,-0.027095,-0.017747,-0.49662,0.097563,
+ -0.101389,-0.994724,-0.015639,-0.234168,-0.483652,-0.380912,
+ 0,-0.999633,-0.027095,-0.017747,-0.487773,-0.228855,
+ 0,-0.999633,-0.027095,-0.017747,-0.487773,-0.228855,
+ -0.101389,-0.994724,-0.015639,-0.234168,-0.483652,-0.380912,
+ 0,-0.999633,-0.027095,0.008103,-0.487773,-0.228855,
+ -0.806304,-0.04159,0.590037,-0.331315,-0.208938,0.222248,
+ -0.757873,-0.17819,0.627596,-0.299415,-0.418387,0.222248,
+ -0.726863,-0.090005,0.680859,-0.257344,-0.251982,0.320299,
+ -0.104394,-0.808168,0.579627,-0.17891,-0.455225,0.279296,
+ -0.000123,-0.822299,0.569056,-0.001224,-0.5,0.222248,
+ 0,-0.78664,0.617411,-0.054097,-0.455225,0.279296,
+ 0,0.357681,0.933844,0.054097,0.455225,0.279296,
+ 0,0.357681,0.933844,-0.054097,0.455225,0.279296,
+ 0,0.227898,0.973685,-0.054097,0.251982,0.357142,
+ -0.344013,0.237244,0.908499,-0.166895,0.251982,0.357142,
+ -0.42641,0.391747,0.815297,-0.231791,0.418387,0.27573,
+ -0.479243,0.170617,0.860939,-0.257344,0.251982,0.320299,
+ -0.344013,0.237244,0.908499,-0.166895,0.251982,0.357142,
+ -0.368596,0.450419,0.813179,-0.17891,0.455225,0.279296,
+ -0.42641,0.391747,0.815297,-0.231791,0.418387,0.27573,
+ 0.132836,-0.983007,0.126693,0.234168,-0.483652,0.222248,
+ 0.027733,-0.999483,-0.016268,0.054066,-0.49616,0.080576,
+ 0.141954,-0.989813,-0.010959,0.234168,-0.483652,-0.380912,
+ 0.027733,-0.999483,-0.016268,0.054066,-0.49616,0.080576,
+ 0.132836,-0.983007,0.126693,0.234168,-0.483652,0.222248,
+ 0.010143,-0.997511,0.069776,-0.001224,-0.5,0.222248,
+ 0,0,-1,-0.299415,0.418387,-0.380912,
+ 0,0,-1,-0.299415,-0.418387,-0.380912,
+ 0,0,-1,-0.345926,0,-0.380912,
+ 0,0,-1,-0.299415,-0.418387,-0.380912,
+ 0,0,-1,-0.299415,0.418387,-0.380912,
+ 0,0,-1,-0.283103,0.467335,-0.380912,
+ 0,0,-1,-0.299415,-0.418387,-0.380912,
+ 0,0,-1,-0.283103,0.467335,-0.380912,
+ 0,0,-1,-0.283103,-0.467335,-0.380912,
+ 0,0,-1,-0.283103,-0.467335,-0.380912,
+ 0,0,-1,-0.283103,0.467335,-0.380912,
+ 0,0,-1,-0.234168,0.483652,-0.380912,
+ 0,0,-1,-0.283103,-0.467335,-0.380912,
+ 0,0,-1,-0.234168,0.483652,-0.380912,
+ 0,0,-1,-0.234168,-0.483652,-0.380912,
+ 0,0,-1,-0.234168,-0.483652,-0.380912,
+ 0,0,-1,-0.234168,0.483652,-0.380912,
+ 0,0,-1,0.234168,0.483652,-0.380912,
+ 0,0,-1,-0.234168,-0.483652,-0.380912,
+ 0,0,-1,0.234168,0.483652,-0.380912,
+ 0,0,-1,0.234168,-0.483652,-0.380912,
+ 0,0,-1,0.234168,-0.483652,-0.380912,
+ 0,0,-1,0.234168,0.483652,-0.380912,
+ 0,0,-1,0.283103,-0.467335,-0.380912,
+ 0,0,-1,0.283103,-0.467335,-0.380912,
+ 0,0,-1,0.234168,0.483652,-0.380912,
+ 0,0,-1,0.283103,0.467335,-0.380912,
+ 0,0,-1,0.283103,-0.467335,-0.380912,
+ 0,0,-1,0.283103,0.467335,-0.380912,
+ 0,0,-1,0.299415,-0.418387,-0.380912,
+ 0,0,-1,0.299415,-0.418387,-0.380912,
+ 0,0,-1,0.283103,0.467335,-0.380912,
+ 0,0,-1,0.299415,0.418387,-0.380912,
+ 0,0,-1,0.299415,-0.418387,-0.380912,
+ 0,0,-1,0.299415,0.418387,-0.380912,
+ 0,0,-1,0.345926,0,-0.380912,
+ -0.466133,0.34121,0.816269,-0.231791,0.418387,0.27573,
+ -0.60748,0.202437,0.768106,-0.283103,0.467335,0.222248,
+ -0.680969,0.208836,0.701903,-0.299415,0.418387,0.222248,
+ 0.490312,-0.197001,0.84899,0.257344,-0.251982,0.320299,
+ 0.369417,-0.202622,0.906904,0.166895,-0.251982,0.357142,
+ 0.390635,-0.324541,0.861439,0.17891,-0.455225,0.279296,
+ 0.191639,-0.715981,0.671301,0.17891,-0.455225,0.279296,
+ 0.156214,-0.815296,0.557574,0.234168,-0.483652,0.222248,
+ 0.34735,-0.55882,0.753039,0.283103,-0.467335,0.222248,
+ 0.594501,-0.161247,0.787761,0.257344,-0.251982,0.320299,
+ 0.563931,-0.285379,0.774946,0.283103,-0.467335,0.222248,
+ 0.757873,-0.17819,0.627596,0.299415,-0.418387,0.222248,
+ 0,0.357681,0.933844,0.054097,0.455225,0.279296,
+ 0,0.227898,0.973685,-0.054097,0.251982,0.357142,
+ 0,0.227898,0.973685,0.054097,0.251982,0.357142,
+ -0.974495,-0.224383,-0.003566,-0.299415,-0.418387,-0.380912,
+ -0.94871,-0.316149,0,-0.283103,-0.467335,0.222248,
+ -0.972186,-0.234211,0,-0.299415,-0.418387,0.222248,
+ -0.996185,-0.087205,0.003347,-0.331315,-0.208938,0.222248,
+ -0.974495,-0.224383,-0.003566,-0.299415,-0.418387,-0.380912,
+ -0.972186,-0.234211,0,-0.299415,-0.418387,0.222248,
+ 0,-0,1,0.05339,0,0.380912,
+ 0,-0,1,-0.05339,0,0.380912,
+ 0,-0.254425,0.967093,-0.054097,-0.251982,0.357142,
+ 0,-0.227898,0.973685,0.054097,-0.251982,0.357142,
+ 0,-0.254425,0.967093,-0.054097,-0.251982,0.357142,
+ 0,-0.357681,0.933844,0.054097,-0.455225,0.279296,
+ -0.235866,0.971786,0,-0.234168,0.483652,0.222248,
+ -0.316307,0.948657,0,-0.283103,0.467335,-0.380912,
+ -0.316307,0.948657,0,-0.283103,0.467335,0.222248,
+ 0.974495,-0.224383,-0.003566,0.299415,-0.418387,-0.380912,
+ 0.94871,-0.316149,0,0.283103,-0.467335,0.222248,
+ 0.94871,-0.316149,0,0.283103,-0.467335,-0.380912,
+ 0.196887,0.972176,0.126926,0.234168,0.483652,0.222248,
+ 0.129779,0.991501,-0.009119,0.234168,0.483652,-0.380912,
+ 0.015319,0.99274,0.119299,-0.001224,0.5,0.222248,
+ -0.030578,0.830318,0.55645,-0.17891,0.455225,0.279296,
+ -0.012111,0.87373,0.486261,-0.001224,0.5,0.222248,
+ -0.120094,0.886303,0.447263,-0.234168,0.483652,0.222248,
+ -0.235866,0.971786,0,-0.234168,0.483652,0.222248,
+ -0.130021,0.991469,-0.009119,-0.234168,0.483652,-0.380912,
+ -0.316307,0.948657,0,-0.283103,0.467335,-0.380912,
+ 0.323984,0.592558,0.737502,0.234168,0.483652,0.222248,
+ 0.252774,0.582577,0.77247,0.17891,0.455225,0.279296,
+ 0.42641,0.391747,0.815297,0.231791,0.418387,0.27573,
+ -0.974495,-0.224383,-0.003566,-0.299415,-0.418387,-0.380912,
+ -0.94871,-0.316149,0,-0.283103,-0.467335,-0.380912,
+ -0.94871,-0.316149,0,-0.283103,-0.467335,0.222248,
+ -0.316307,-0.948657,0,-0.283103,-0.467335,0.222248,
+ -0.316307,-0.948657,0,-0.283103,-0.467335,-0.380912,
+ -0.101389,-0.994724,-0.015639,-0.234168,-0.483652,-0.380912,
+ 0,-0.78664,0.617411,0.054097,-0.455225,0.279296,
+ -0.000123,-0.822299,0.569056,-0.001224,-0.5,0.222248,
+ 0.104191,-0.80829,0.579493,0.17891,-0.455225,0.279296,
+ 0.680969,0.208836,0.701903,0.299415,0.418387,0.222248,
+ 0.42641,0.391747,0.815297,0.231791,0.418387,0.27573,
+ 0.662215,0.119119,0.739785,0.257344,0.251982,0.320299,
+ 0.680969,0.208836,0.701903,0.299415,0.418387,0.222248,
+ 0.60748,0.202437,0.768106,0.283103,0.467335,0.222248,
+ 0.466133,0.34121,0.816269,0.231791,0.418387,0.27573,
+ 0.479243,0.170617,0.860939,0.257344,0.251982,0.320299,
+ 0.42641,0.391747,0.815297,0.231791,0.418387,0.27573,
+ 0.344013,0.237244,0.908499,0.166895,0.251982,0.357142,
+ 0.662215,0.119119,0.739785,0.257344,0.251982,0.320299,
+ 0.439235,-0,0.898372,0.166895,0,0.380912,
+ 0.594501,-0.161247,0.787761,0.257344,-0.251982,0.320299,
+ 0.999999,0,-0.001399,0.345926,0,-0.380912,
+ 0.996185,-0.087205,0.003347,0.331315,-0.208938,0.222248,
+ 0.974495,-0.224383,-0.003566,0.299415,-0.418387,-0.380912,
+ 0.42641,0.391747,0.815297,0.231791,0.418387,0.27573,
+ 0.368596,0.450419,0.813179,0.17891,0.455225,0.279296,
+ 0.344013,0.237244,0.908499,0.166895,0.251982,0.357142,
+ 0.972186,-0.234211,0,0.299415,-0.418387,0.222248,
+ 0.94871,-0.316149,0,0.283103,-0.467335,0.222248,
+ 0.974495,-0.224383,-0.003566,0.299415,-0.418387,-0.380912,
+ 0.104191,-0.80829,0.579493,0.17891,-0.455225,0.279296,
+ 0.011777,-0.873735,0.486259,-0.001224,-0.5,0.222248,
+ 0.117871,-0.949523,0.29071,0.234168,-0.483652,0.222248,
+ 0.806304,-0.04159,0.590037,0.331315,-0.208938,0.222248,
+ 0.726863,-0.090005,0.680859,0.257344,-0.251982,0.320299,
+ 0.757873,-0.17819,0.627596,0.299415,-0.418387,0.222248,
+ 0.17143,0.762655,0.623674,0.17891,0.455225,0.279296,
+ -0.000123,0.822299,0.569056,-0.001224,0.5,0.222248,
+ 0,0.78664,0.617411,0.054097,0.455225,0.279296,
+ 0.235633,0.971842,0,0.234168,0.483652,0.222248,
+ 0.316307,0.948657,0,0.283103,0.467335,-0.380912,
+ 0.129779,0.991501,-0.009119,0.234168,0.483652,-0.380912,
+ 0.817604,0.124528,0.562153,0.318731,0.29156,0.222248,
+ 0.743012,0.091749,0.66296,0.257344,0.251982,0.320299,
+ 0.809725,0.062401,0.583482,0.331315,0.208938,0.222248,
+ 0.743012,0.091749,0.66296,0.257344,0.251982,0.320299,
+ 0.817604,0.124528,0.562153,0.318731,0.29156,0.222248,
+ 0.680969,0.208836,0.701903,0.299415,0.418387,0.222248,
+ 0,0,-1,0.299415,0.418387,0.222248,
+ 0,0,-1,0.318731,0.29156,0.222248,
+ 0,0,-1,0.310276,0.347076,0.222248,
+ 0.152705,-0.988272,-0,0.234168,-0.483652,0.222248,
+ 0.141954,-0.989813,-0.010959,0.234168,-0.483652,-0.380912,
+ 0.316307,-0.948657,0,0.283103,-0.467335,0.222248,
+ 0.316307,-0.948657,0,0.283103,-0.467335,0.222248,
+ 0.141954,-0.989813,-0.010959,0.234168,-0.483652,-0.380912,
+ 0.316307,-0.948657,0,0.283103,-0.467335,-0.380912,
+ 0.996185,-0.087205,0.003347,0.331315,-0.208938,0.222248,
+ 0.972186,-0.234211,0,0.299415,-0.418387,0.222248,
+ 0.974495,-0.224383,-0.003566,0.299415,-0.418387,-0.380912,
+ 0.205338,0.615841,0.760642,0.283103,0.467335,0.222248,
+ 0.24127,0.701439,0.670651,0.234168,0.483652,0.222248,
+ 0.38567,0.427053,0.817853,0.231791,0.418387,0.27573,
+ -0.439235,-0,0.898372,-0.166895,0,0.380912,
+ -0.490312,-0.197001,0.84899,-0.257344,-0.251982,0.320299,
+ -0.369417,-0.202622,0.906904,-0.166895,-0.251982,0.357142,
+ -0.439235,-0,0.898372,-0.166895,0,0.380912,
+ -0.344013,0.237244,0.908499,-0.166895,0.251982,0.357142,
+ -0.479243,0.170617,0.860939,-0.257344,0.251982,0.320299,
+ 0.030271,0.830475,0.556232,0.17891,0.455225,0.279296,
+ 0.119619,0.886444,0.447112,0.234168,0.483652,0.222248,
+ 0.011777,0.873735,0.486259,-0.001224,0.5,0.222248,
+ -0.979828,0.199828,-0.002375,-0.299415,0.418387,-0.380912,
+ -0.999999,0,-0.001399,-0.345926,0,-0.380912,
+ -0.996185,0.087204,0.003347,-0.331315,0.208938,0.222248,
+ -0.439235,-0,0.898372,-0.166895,0,0.380912,
+ -0.662215,0.119119,0.739785,-0.257344,0.251982,0.320299,
+ -0.594501,-0.161247,0.787761,-0.257344,-0.251982,0.320299,
+ -0.996185,0.087204,0.003347,-0.331315,0.208938,0.222248,
+ -0.999999,0,-0.001399,-0.345926,0,-0.380912,
+ -0.996185,-0.087205,0.003347,-0.331315,-0.208938,0.222248,
+ -0.743012,0.091749,0.66296,-0.257344,0.251982,0.320299,
+ -0.806304,-0.04159,0.590037,-0.331315,-0.208938,0.222248,
+ -0.726863,-0.090005,0.680859,-0.257344,-0.251982,0.320299,
+ -0.806304,-0.04159,0.590037,-0.331315,-0.208938,0.222248,
+ -0.743012,0.091749,0.66296,-0.257344,0.251982,0.320299,
+ -0.809725,0.0624,0.583482,-0.331315,0.208938,0.222248
+};
+static const struct gllist toaster_frame = { GL_N3F_V3F, GL_TRIANGLES, 366, toaster_data, 0 };
+const struct gllist *toaster = &toaster_frame;
diff --git a/hacks/glx/toaster.dxf b/hacks/glx/toaster.dxf
new file mode 100644
index 0000000..c1cedfa
--- /dev/null
+++ b/hacks/glx/toaster.dxf
@@ -0,0 +1,3674 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-59.550893
+20
+-98.304297
+30
+46.749999
+11
+-49.257401
+21
+-101.736418
+31
+-80.124995
+12
+-49.257401
+22
+-101.736418
+32
+46.749999
+13
+-49.257401
+23
+-101.736418
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-0.257406
+20
+105.175312
+30
+46.749999
+11
+-49.257401
+21
+101.736418
+31
+-80.124995
+12
+-49.257401
+22
+101.736418
+32
+46.749999
+13
+-49.257401
+23
+101.736418
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-37.633746
+20
+-95.756860
+30
+58.749998
+11
+-49.257401
+21
+-101.736418
+31
+46.749999
+12
+-0.257406
+22
+-105.175312
+32
+46.749999
+13
+-0.257406
+23
+-105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-72.765693
+20
+0.000000
+30
+-80.124995
+11
+-62.982058
+21
+-88.007949
+31
+-80.124995
+12
+-69.692379
+22
+-43.950311
+32
+46.749999
+13
+-69.692379
+23
+-43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+69.692395
+20
+43.950311
+30
+46.749999
+11
+69.692395
+21
+-43.950311
+31
+46.749999
+12
+72.765693
+22
+0.000000
+32
+-80.124995
+13
+72.765693
+23
+0.000000
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-0.257406
+20
+105.175312
+30
+46.749999
+11
+49.257405
+21
+101.736418
+31
+-80.124995
+12
+-49.257401
+22
+101.736418
+32
+-80.124995
+13
+-49.257401
+23
+101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.257401
+20
+-101.736418
+30
+46.749999
+11
+-49.257401
+21
+-101.736418
+31
+-80.124995
+12
+-0.257406
+22
+-105.175312
+32
+46.749999
+13
+-0.257406
+23
+-105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+61.618173
+20
+92.100747
+30
+-29.692172
+11
+62.982058
+21
+88.007949
+31
+46.749999
+12
+62.982058
+22
+88.007949
+32
+-80.124995
+13
+62.982058
+23
+88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+88.007949
+30
+46.749999
+11
+61.618173
+21
+92.100747
+31
+-29.692172
+12
+59.550897
+22
+98.304297
+32
+46.749999
+13
+59.550897
+23
+98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+98.304297
+30
+46.749999
+11
+61.618173
+21
+92.100747
+31
+-29.692172
+12
+60.584535
+22
+95.202526
+32
+8.528915
+13
+60.584535
+23
+95.202526
+33
+8.528915
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+98.304297
+30
+46.749999
+11
+59.550897
+21
+98.304297
+31
+-80.124995
+12
+49.257405
+22
+101.736418
+32
+46.749999
+13
+49.257405
+23
+101.736418
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+98.304297
+30
+-80.124995
+11
+61.618173
+21
+92.100747
+31
+-29.692172
+12
+62.982058
+22
+88.007949
+32
+-80.124995
+13
+62.982058
+23
+88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+61.618173
+20
+92.100747
+30
+-29.692172
+11
+59.550897
+21
+98.304297
+31
+-80.124995
+12
+60.584535
+22
+95.202526
+32
+8.528915
+13
+60.584535
+23
+95.202526
+33
+8.528915
+0
+3DFACE
+8
+0
+ 62
+55
+10
+60.584535
+20
+95.202526
+30
+8.528915
+11
+59.550897
+21
+98.304297
+31
+-80.124995
+12
+59.550897
+22
+98.304297
+32
+46.749999
+13
+59.550897
+23
+98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+53.004574
+30
+75.124998
+11
+-11.379373
+21
+53.004574
+31
+75.124998
+12
+11.230625
+22
+0.000000
+32
+80.124995
+13
+11.230625
+23
+0.000000
+33
+80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-54.132399
+20
+53.004574
+30
+67.374997
+11
+-65.644221
+21
+70.529158
+31
+46.749999
+12
+-69.692379
+22
+43.950311
+32
+46.749999
+13
+-69.692379
+23
+43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-65.644221
+20
+70.529158
+30
+46.749999
+11
+-54.132399
+21
+53.004574
+31
+67.374997
+12
+-62.982058
+22
+88.007949
+32
+46.749999
+13
+-62.982058
+23
+88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-65.644221
+20
+70.529158
+30
+46.749999
+11
+-62.982058
+21
+88.007949
+31
+46.749999
+12
+-64.289076
+22
+79.426547
+32
+46.749999
+13
+-64.289076
+23
+79.426547
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+-53.004570
+30
+67.374997
+11
+35.106469
+21
+0.000000
+31
+80.124995
+12
+35.106469
+22
+-53.004570
+32
+75.124998
+13
+35.106469
+23
+-53.004570
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+53.004574
+30
+67.374997
+11
+35.106469
+21
+53.004574
+31
+75.124998
+12
+35.106469
+22
+0.000000
+32
+80.124995
+13
+35.106469
+23
+0.000000
+33
+80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+69.692395
+20
+-43.950311
+30
+46.749999
+11
+54.132404
+21
+53.004574
+31
+67.374997
+12
+54.132404
+22
+-53.004570
+32
+67.374997
+13
+54.132404
+23
+-53.004570
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+53.004574
+30
+67.374997
+11
+69.692395
+21
+-43.950311
+31
+46.749999
+12
+69.692395
+22
+43.950311
+32
+46.749999
+13
+69.692395
+23
+43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.230625
+20
+0.000000
+30
+80.124995
+11
+-11.379373
+21
+53.004574
+31
+75.124998
+12
+-11.230623
+22
+0.000000
+32
+80.124995
+13
+-11.230623
+23
+0.000000
+33
+80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-65.644221
+20
+70.529158
+30
+46.749999
+11
+-62.982058
+21
+88.007949
+31
+-80.124995
+12
+-69.692379
+22
+43.950311
+32
+46.749999
+13
+-69.692379
+23
+43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+88.007949
+30
+-80.124995
+11
+-65.644221
+21
+70.529158
+31
+46.749999
+12
+-64.289076
+22
+79.426547
+32
+46.749999
+13
+-64.289076
+23
+79.426547
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+88.007949
+30
+-80.124995
+11
+-64.289076
+21
+79.426547
+31
+46.749999
+12
+-62.982058
+22
+88.007949
+32
+46.749999
+13
+-62.982058
+23
+88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-54.132399
+20
+-53.004570
+30
+67.374997
+11
+-62.982058
+21
+-88.007949
+31
+46.749999
+12
+-59.550893
+22
+-98.304297
+32
+46.749999
+13
+-59.550893
+23
+-98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-37.633746
+20
+-95.756860
+30
+58.749998
+11
+-59.550893
+21
+-98.304297
+31
+46.749999
+12
+-49.257401
+22
+-101.736418
+32
+46.749999
+13
+-49.257401
+23
+-101.736418
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-37.633746
+20
+-95.756860
+30
+58.749998
+11
+-54.132399
+21
+-53.004570
+31
+67.374997
+12
+-59.550893
+22
+-98.304297
+32
+46.749999
+13
+-59.550893
+23
+-98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+88.007949
+30
+46.749999
+11
+-60.187034
+21
+96.395348
+31
+23.227255
+12
+-62.982058
+22
+88.007949
+32
+-80.124995
+13
+-62.982058
+23
+88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-60.187034
+20
+96.395348
+30
+23.227255
+11
+-62.982058
+21
+88.007949
+31
+46.749999
+12
+-59.550893
+22
+98.304297
+32
+46.749999
+13
+-59.550893
+23
+98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-60.187034
+20
+96.395348
+30
+23.227255
+11
+-59.550893
+21
+98.304297
+31
+46.749999
+12
+-60.038836
+22
+96.840066
+32
+28.707243
+13
+-60.038836
+23
+96.840066
+33
+28.707243
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-60.187034
+20
+96.395348
+30
+23.227255
+11
+-59.550893
+21
+98.304297
+31
+-80.124995
+12
+-62.982058
+22
+88.007949
+32
+-80.124995
+13
+-62.982058
+23
+88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-59.550893
+20
+98.304297
+30
+-80.124995
+11
+-60.187034
+21
+96.395348
+31
+23.227255
+12
+-60.038836
+22
+96.840066
+32
+28.707243
+13
+-60.038836
+23
+96.840066
+33
+28.707243
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-59.550893
+20
+98.304297
+30
+-80.124995
+11
+-60.038836
+21
+96.840066
+31
+28.707243
+12
+-59.550893
+22
+98.304297
+32
+46.749999
+13
+-59.550893
+23
+98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-48.757403
+20
+88.007949
+30
+57.999999
+11
+-49.257401
+21
+101.736418
+31
+46.749999
+12
+-59.550893
+22
+98.304297
+32
+46.749999
+13
+-59.550893
+23
+98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+95.756860
+30
+58.749998
+11
+-0.257406
+21
+105.175312
+31
+46.749999
+12
+-11.379373
+22
+95.756860
+32
+58.749998
+13
+-11.379373
+23
+95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+-95.756860
+30
+58.749998
+11
+-11.379373
+21
+-95.756860
+31
+58.749998
+12
+-0.257406
+22
+-105.175312
+32
+46.749999
+13
+-0.257406
+23
+-105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-11.379373
+20
+-95.756860
+30
+58.749998
+11
+11.379375
+21
+-95.756860
+31
+58.749998
+12
+0.000001
+22
+-95.756860
+32
+58.749998
+13
+0.000001
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+0.000001
+20
+-95.756860
+30
+58.749998
+11
+-11.379373
+21
+-53.004570
+31
+75.124998
+12
+-11.379373
+22
+-95.756860
+32
+58.749998
+13
+-11.379373
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-11.379373
+20
+-53.004570
+30
+75.124998
+11
+0.000001
+21
+-95.756860
+31
+58.749998
+12
+11.379375
+22
+-95.756860
+32
+58.749998
+13
+11.379375
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-35.106469
+20
+-53.004570
+30
+75.124998
+11
+-54.132399
+21
+-53.004570
+31
+67.374997
+12
+-37.633746
+22
+-95.756860
+32
+58.749998
+13
+-37.633746
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-11.379373
+20
+95.756860
+30
+58.749998
+11
+-0.257406
+21
+105.175312
+31
+46.749999
+12
+-37.633746
+22
+95.756860
+32
+58.749998
+13
+-37.633746
+23
+95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-48.757403
+20
+88.007949
+30
+57.999999
+11
+-62.982058
+21
+88.007949
+31
+46.749999
+12
+-54.132399
+22
+53.004574
+32
+67.374997
+13
+-54.132399
+23
+53.004574
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+-98.304297
+30
+46.749999
+11
+54.132404
+21
+-53.004570
+31
+67.374997
+12
+37.633750
+22
+-95.756860
+32
+58.749998
+13
+37.633750
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+88.007949
+30
+-80.124995
+11
+67.045331
+21
+61.329929
+31
+46.749999
+12
+69.692395
+22
+43.950311
+32
+46.749999
+13
+69.692395
+23
+43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+67.045331
+20
+61.329929
+30
+46.749999
+11
+62.982058
+21
+88.007949
+31
+-80.124995
+12
+65.266704
+22
+73.007757
+32
+46.749999
+13
+65.266704
+23
+73.007757
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+65.266704
+20
+73.007757
+30
+46.749999
+11
+62.982058
+21
+88.007949
+31
+-80.124995
+12
+62.982058
+22
+88.007949
+32
+46.749999
+13
+62.982058
+23
+88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-37.633746
+20
+95.756860
+30
+58.749998
+11
+-49.257401
+21
+101.736418
+31
+46.749999
+12
+-48.757403
+22
+88.007949
+32
+57.999999
+13
+-48.757403
+23
+88.007949
+33
+57.999999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+-53.004570
+30
+75.124998
+11
+11.230625
+21
+0.000000
+31
+80.124995
+12
+-11.379373
+22
+-53.004570
+32
+75.124998
+13
+-11.379373
+23
+-53.004570
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+88.007949
+30
+-80.124995
+11
+69.692395
+21
+43.950311
+31
+46.749999
+12
+72.765693
+22
+0.000000
+32
+-80.124995
+13
+72.765693
+23
+0.000000
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.257405
+20
+-101.736418
+30
+-80.124995
+11
+1.704490
+21
+-102.603365
+31
+-48.139738
+12
+-49.257401
+22
+-101.736418
+32
+-80.124995
+13
+-49.257401
+23
+-101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+1.704490
+20
+-102.603365
+30
+-48.139738
+11
+49.257405
+21
+-101.736418
+31
+-80.124995
+12
+11.372780
+22
+-104.367574
+32
+16.949225
+13
+11.372780
+23
+-104.367574
+33
+16.949225
+0
+3DFACE
+8
+0
+ 62
+55
+10
+1.704490
+20
+-102.603365
+30
+-48.139738
+11
+11.372780
+21
+-104.367574
+31
+16.949225
+12
+1.704490
+22
+-104.464430
+32
+20.522543
+13
+1.704490
+23
+-104.464430
+33
+20.522543
+0
+3DFACE
+8
+0
+ 62
+55
+10
+1.704490
+20
+-104.464430
+30
+20.522543
+11
+11.372780
+21
+-104.367574
+31
+16.949225
+12
+-0.257406
+22
+-105.175312
+32
+46.749999
+13
+-0.257406
+23
+-105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+1.704490
+20
+-104.464430
+30
+20.522543
+11
+-0.257406
+21
+-105.175312
+31
+46.749999
+12
+-3.733010
+22
+-104.464430
+32
+20.522543
+13
+-3.733010
+23
+-104.464430
+33
+20.522543
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.257401
+20
+-101.736418
+30
+-80.124995
+11
+-3.733010
+21
+-104.464430
+31
+20.522543
+12
+-0.257406
+22
+-105.175312
+32
+46.749999
+13
+-0.257406
+23
+-105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-3.733010
+20
+-104.464430
+30
+20.522543
+11
+-49.257401
+21
+-101.736418
+31
+-80.124995
+12
+-3.733010
+22
+-102.603365
+32
+-48.139738
+13
+-3.733010
+23
+-102.603365
+33
+-48.139738
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-3.733010
+20
+-102.603365
+30
+-48.139738
+11
+-49.257401
+21
+-101.736418
+31
+-80.124995
+12
+1.704490
+22
+-102.603365
+32
+-48.139738
+13
+1.704490
+23
+-102.603365
+33
+-48.139738
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-69.692379
+20
+-43.950311
+30
+46.749999
+11
+-62.982058
+21
+-88.007949
+31
+46.749999
+12
+-54.132399
+22
+-53.004570
+32
+67.374997
+13
+-54.132399
+23
+-53.004570
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-37.633746
+20
+-95.756860
+30
+58.749998
+11
+-0.257406
+21
+-105.175312
+31
+46.749999
+12
+-11.379373
+22
+-95.756860
+32
+58.749998
+13
+-11.379373
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+95.756860
+30
+58.749998
+11
+-11.379373
+21
+95.756860
+31
+58.749998
+12
+-11.379373
+22
+53.004574
+32
+75.124998
+13
+-11.379373
+23
+53.004574
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-35.106469
+20
+53.004574
+30
+75.124998
+11
+-48.757403
+21
+88.007949
+31
+57.999999
+12
+-54.132399
+22
+53.004574
+32
+67.374997
+13
+-54.132399
+23
+53.004574
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-35.106469
+20
+53.004574
+30
+75.124998
+11
+-37.633746
+21
+95.756860
+31
+58.749998
+12
+-48.757403
+22
+88.007949
+32
+57.999999
+13
+-48.757403
+23
+88.007949
+33
+57.999999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.257405
+20
+-101.736418
+30
+46.749999
+11
+11.372780
+21
+-104.367574
+31
+16.949225
+12
+49.257405
+22
+-101.736418
+32
+-80.124995
+13
+49.257405
+23
+-101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.372780
+20
+-104.367574
+30
+16.949225
+11
+49.257405
+21
+-101.736418
+31
+46.749999
+12
+-0.257406
+22
+-105.175312
+32
+46.749999
+13
+-0.257406
+23
+-105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+88.007949
+30
+-80.124995
+11
+-62.982058
+21
+-88.007949
+31
+-80.124995
+12
+-72.765693
+22
+0.000000
+32
+-80.124995
+13
+-72.765693
+23
+0.000000
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+-88.007949
+30
+-80.124995
+11
+-62.982058
+21
+88.007949
+31
+-80.124995
+12
+-59.550893
+22
+98.304297
+32
+-80.124995
+13
+-59.550893
+23
+98.304297
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+-88.007949
+30
+-80.124995
+11
+-59.550893
+21
+98.304297
+31
+-80.124995
+12
+-59.550893
+22
+-98.304297
+32
+-80.124995
+13
+-59.550893
+23
+-98.304297
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-59.550893
+20
+-98.304297
+30
+-80.124995
+11
+-59.550893
+21
+98.304297
+31
+-80.124995
+12
+-49.257401
+22
+101.736418
+32
+-80.124995
+13
+-49.257401
+23
+101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-59.550893
+20
+-98.304297
+30
+-80.124995
+11
+-49.257401
+21
+101.736418
+31
+-80.124995
+12
+-49.257401
+22
+-101.736418
+32
+-80.124995
+13
+-49.257401
+23
+-101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.257401
+20
+-101.736418
+30
+-80.124995
+11
+-49.257401
+21
+101.736418
+31
+-80.124995
+12
+49.257405
+22
+101.736418
+32
+-80.124995
+13
+49.257405
+23
+101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.257401
+20
+-101.736418
+30
+-80.124995
+11
+49.257405
+21
+101.736418
+31
+-80.124995
+12
+49.257405
+22
+-101.736418
+32
+-80.124995
+13
+49.257405
+23
+-101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.257405
+20
+-101.736418
+30
+-80.124995
+11
+49.257405
+21
+101.736418
+31
+-80.124995
+12
+59.550897
+22
+-98.304297
+32
+-80.124995
+13
+59.550897
+23
+-98.304297
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+-98.304297
+30
+-80.124995
+11
+49.257405
+21
+101.736418
+31
+-80.124995
+12
+59.550897
+22
+98.304297
+32
+-80.124995
+13
+59.550897
+23
+98.304297
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+-98.304297
+30
+-80.124995
+11
+59.550897
+21
+98.304297
+31
+-80.124995
+12
+62.982058
+22
+-88.007949
+32
+-80.124995
+13
+62.982058
+23
+-88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+-88.007949
+30
+-80.124995
+11
+59.550897
+21
+98.304297
+31
+-80.124995
+12
+62.982058
+22
+88.007949
+32
+-80.124995
+13
+62.982058
+23
+88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+-88.007949
+30
+-80.124995
+11
+62.982058
+21
+88.007949
+31
+-80.124995
+12
+72.765693
+22
+0.000000
+32
+-80.124995
+13
+72.765693
+23
+0.000000
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-48.757403
+20
+88.007949
+30
+57.999999
+11
+-59.550893
+21
+98.304297
+31
+46.749999
+12
+-62.982058
+22
+88.007949
+32
+46.749999
+13
+-62.982058
+23
+88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+-53.004570
+30
+67.374997
+11
+35.106469
+21
+-53.004570
+31
+75.124998
+12
+37.633750
+22
+-95.756860
+32
+58.749998
+13
+37.633750
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+37.633750
+20
+-95.756860
+30
+58.749998
+11
+49.257405
+21
+-101.736418
+31
+46.749999
+12
+59.550897
+22
+-98.304297
+32
+46.749999
+13
+59.550897
+23
+-98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+-53.004570
+30
+67.374997
+11
+59.550897
+21
+-98.304297
+31
+46.749999
+12
+62.982058
+22
+-88.007949
+32
+46.749999
+13
+62.982058
+23
+-88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+95.756860
+30
+58.749998
+11
+-11.379373
+21
+53.004574
+31
+75.124998
+12
+11.379375
+22
+53.004574
+32
+75.124998
+13
+11.379375
+23
+53.004574
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+-88.007949
+30
+-80.124995
+11
+-59.550893
+21
+-98.304297
+31
+46.749999
+12
+-62.982058
+22
+-88.007949
+32
+46.749999
+13
+-62.982058
+23
+-88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-69.692379
+20
+-43.950311
+30
+46.749999
+11
+-62.982058
+21
+-88.007949
+31
+-80.124995
+12
+-62.982058
+22
+-88.007949
+32
+46.749999
+13
+-62.982058
+23
+-88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.230625
+20
+0.000000
+30
+80.124995
+11
+-11.230623
+21
+0.000000
+31
+80.124995
+12
+-11.379373
+22
+-53.004570
+32
+75.124998
+13
+-11.379373
+23
+-53.004570
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+-53.004570
+30
+75.124998
+11
+-11.379373
+21
+-53.004570
+31
+75.124998
+12
+11.379375
+22
+-95.756860
+32
+58.749998
+13
+11.379375
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.257401
+20
+101.736418
+30
+46.749999
+11
+-59.550893
+21
+98.304297
+31
+-80.124995
+12
+-59.550893
+22
+98.304297
+32
+46.749999
+13
+-59.550893
+23
+98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+-88.007949
+30
+-80.124995
+11
+59.550897
+21
+-98.304297
+31
+46.749999
+12
+59.550897
+22
+-98.304297
+32
+-80.124995
+13
+59.550897
+23
+-98.304297
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.257405
+20
+101.736418
+30
+46.749999
+11
+49.257405
+21
+101.736418
+31
+-80.124995
+12
+-0.257406
+22
+105.175312
+32
+46.749999
+13
+-0.257406
+23
+105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-37.633746
+20
+95.756860
+30
+58.749998
+11
+-0.257406
+21
+105.175312
+31
+46.749999
+12
+-49.257401
+22
+101.736418
+32
+46.749999
+13
+-49.257401
+23
+101.736418
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.257401
+20
+101.736418
+30
+46.749999
+11
+-49.257401
+21
+101.736418
+31
+-80.124995
+12
+-59.550893
+22
+98.304297
+32
+-80.124995
+13
+-59.550893
+23
+98.304297
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.257405
+20
+101.736418
+30
+46.749999
+11
+37.633750
+21
+95.756860
+31
+58.749998
+12
+48.757407
+22
+88.007949
+32
+57.999999
+13
+48.757407
+23
+88.007949
+33
+57.999999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+-88.007949
+30
+-80.124995
+11
+-59.550893
+21
+-98.304297
+31
+-80.124995
+12
+-59.550893
+22
+-98.304297
+32
+46.749999
+13
+-59.550893
+23
+-98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-59.550893
+20
+-98.304297
+30
+46.749999
+11
+-59.550893
+21
+-98.304297
+31
+-80.124995
+12
+-49.257401
+22
+-101.736418
+32
+-80.124995
+13
+-49.257401
+23
+-101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+11.379375
+20
+-95.756860
+30
+58.749998
+11
+-0.257406
+21
+-105.175312
+31
+46.749999
+12
+37.633750
+22
+-95.756860
+32
+58.749998
+13
+37.633750
+23
+-95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+88.007949
+30
+46.749999
+11
+48.757407
+21
+88.007949
+31
+57.999999
+12
+54.132404
+22
+53.004574
+32
+67.374997
+13
+54.132404
+23
+53.004574
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+88.007949
+30
+46.749999
+11
+59.550897
+21
+98.304297
+31
+46.749999
+12
+48.757407
+22
+88.007949
+32
+57.999999
+13
+48.757407
+23
+88.007949
+33
+57.999999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+53.004574
+30
+67.374997
+11
+48.757407
+21
+88.007949
+31
+57.999999
+12
+35.106469
+22
+53.004574
+32
+75.124998
+13
+35.106469
+23
+53.004574
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+53.004574
+30
+67.374997
+11
+35.106469
+21
+0.000000
+31
+80.124995
+12
+54.132404
+22
+-53.004570
+32
+67.374997
+13
+54.132404
+23
+-53.004570
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+72.765693
+20
+0.000000
+30
+-80.124995
+11
+69.692395
+21
+-43.950311
+31
+46.749999
+12
+62.982058
+22
+-88.007949
+32
+-80.124995
+13
+62.982058
+23
+-88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+48.757407
+20
+88.007949
+30
+57.999999
+11
+37.633750
+21
+95.756860
+31
+58.749998
+12
+35.106469
+22
+53.004574
+32
+75.124998
+13
+35.106469
+23
+53.004574
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+-88.007949
+30
+46.749999
+11
+59.550897
+21
+-98.304297
+31
+46.749999
+12
+62.982058
+22
+-88.007949
+32
+-80.124995
+13
+62.982058
+23
+-88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+37.633750
+20
+-95.756860
+30
+58.749998
+11
+-0.257406
+21
+-105.175312
+31
+46.749999
+12
+49.257405
+22
+-101.736418
+32
+46.749999
+13
+49.257405
+23
+-101.736418
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+69.692395
+20
+-43.950311
+30
+46.749999
+11
+54.132404
+21
+-53.004570
+31
+67.374997
+12
+62.982058
+22
+-88.007949
+32
+46.749999
+13
+62.982058
+23
+-88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+37.633750
+20
+95.756860
+30
+58.749998
+11
+-0.257406
+21
+105.175312
+31
+46.749999
+12
+11.379375
+22
+95.756860
+32
+58.749998
+13
+11.379375
+23
+95.756860
+33
+58.749998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.257405
+20
+101.736418
+30
+46.749999
+11
+59.550897
+21
+98.304297
+31
+-80.124995
+12
+49.257405
+22
+101.736418
+32
+-80.124995
+13
+49.257405
+23
+101.736418
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+67.045331
+20
+61.329929
+30
+46.749999
+11
+54.132404
+21
+53.004574
+31
+67.374997
+12
+69.692395
+22
+43.950311
+32
+46.749999
+13
+69.692395
+23
+43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+54.132404
+20
+53.004574
+30
+67.374997
+11
+67.045331
+21
+61.329929
+31
+46.749999
+12
+62.982058
+22
+88.007949
+32
+46.749999
+13
+62.982058
+23
+88.007949
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+62.982058
+20
+88.007949
+30
+46.749999
+11
+67.045331
+21
+61.329929
+31
+46.749999
+12
+65.266704
+22
+73.007757
+32
+46.749999
+13
+65.266704
+23
+73.007757
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.257405
+20
+-101.736418
+30
+46.749999
+11
+49.257405
+21
+-101.736418
+31
+-80.124995
+12
+59.550897
+22
+-98.304297
+32
+46.749999
+13
+59.550897
+23
+-98.304297
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+-98.304297
+30
+46.749999
+11
+49.257405
+21
+-101.736418
+31
+-80.124995
+12
+59.550897
+22
+-98.304297
+32
+-80.124995
+13
+59.550897
+23
+-98.304297
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+69.692395
+20
+-43.950311
+30
+46.749999
+11
+62.982058
+21
+-88.007949
+31
+46.749999
+12
+62.982058
+22
+-88.007949
+32
+-80.124995
+13
+62.982058
+23
+-88.007949
+33
+-80.124995
+0
+3DFACE
+8
+0
+ 62
+55
+10
+59.550897
+20
+98.304297
+30
+46.749999
+11
+49.257405
+21
+101.736418
+31
+46.749999
+12
+48.757407
+22
+88.007949
+32
+57.999999
+13
+48.757407
+23
+88.007949
+33
+57.999999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-35.106469
+20
+0.000000
+30
+80.124995
+11
+-54.132399
+21
+-53.004570
+31
+67.374997
+12
+-35.106469
+22
+-53.004570
+32
+75.124998
+13
+-35.106469
+23
+-53.004570
+33
+75.124998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-35.106469
+20
+0.000000
+30
+80.124995
+11
+-35.106469
+21
+53.004574
+31
+75.124998
+12
+-54.132399
+22
+53.004574
+32
+67.374997
+13
+-54.132399
+23
+53.004574
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+37.633750
+20
+95.756860
+30
+58.749998
+11
+49.257405
+21
+101.736418
+31
+46.749999
+12
+-0.257406
+22
+105.175312
+32
+46.749999
+13
+-0.257406
+23
+105.175312
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-62.982058
+20
+88.007949
+30
+-80.124995
+11
+-72.765693
+21
+0.000000
+31
+-80.124995
+12
+-69.692379
+22
+43.950311
+32
+46.749999
+13
+-69.692379
+23
+43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-35.106469
+20
+0.000000
+30
+80.124995
+11
+-54.132399
+21
+53.004574
+31
+67.374997
+12
+-54.132399
+22
+-53.004570
+32
+67.374997
+13
+-54.132399
+23
+-53.004570
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-69.692379
+20
+43.950311
+30
+46.749999
+11
+-72.765693
+21
+0.000000
+31
+-80.124995
+12
+-69.692379
+22
+-43.950311
+32
+46.749999
+13
+-69.692379
+23
+-43.950311
+33
+46.749999
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-54.132399
+20
+53.004574
+30
+67.374997
+11
+-69.692379
+21
+-43.950311
+31
+46.749999
+12
+-54.132399
+22
+-53.004570
+32
+67.374997
+13
+-54.132399
+23
+-53.004570
+33
+67.374997
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-69.692379
+20
+-43.950311
+30
+46.749999
+11
+-54.132399
+21
+53.004574
+31
+67.374997
+12
+-69.692379
+22
+43.950311
+32
+46.749999
+13
+-69.692379
+23
+43.950311
+33
+46.749999
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster_base.c b/hacks/glx/toaster_base.c
new file mode 100644
index 0000000..a444ad5
--- /dev/null
+++ b/hacks/glx/toaster_base.c
@@ -0,0 +1,130 @@
+/* Generated from "toaster_base.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_base_data[] = {
+ -0.10666,0.994296,0,-0.242083,0.5,0.052679,
+ 0.10666,0.994296,0,0.242083,0.5,-0.052679,
+ -0.21332,0.976982,0,-0.242083,0.5,-0.052679,
+ 0.10666,0.994296,0,0.242083,0.5,-0.052679,
+ -0.10666,0.994296,0,-0.242083,0.5,0.052679,
+ 0.213319,0.976983,0,0.242083,0.5,0.052679,
+ 0.983679,0.17993,0,0.309535,0.432529,-0.052679,
+ 0.999314,0.03703,0,0.357619,0,0.052679,
+ 0.999314,-0.03703,0,0.357619,0,-0.052679,
+ 0.999314,0.03703,0,0.357619,0,0.052679,
+ 0.983679,0.17993,0,0.309535,0.432529,-0.052679,
+ 0.968549,0.248824,0,0.309535,0.432529,0.052679,
+ 0.10666,-0.994296,0,0.242083,-0.5,0.052679,
+ -0.10666,-0.994296,0,-0.242083,-0.5,-0.052679,
+ 0.213319,-0.976983,0,0.242083,-0.5,-0.052679,
+ -0.10666,-0.994296,0,-0.242083,-0.5,-0.052679,
+ 0.10666,-0.994296,0,0.242083,-0.5,0.052679,
+ -0.21332,-0.976982,0,-0.242083,-0.5,0.052679,
+ -0.983679,0.17993,0,-0.309535,0.432529,0.052679,
+ -0.999314,0.03703,0,-0.357619,0,-0.052679,
+ -0.999314,-0.03703,0,-0.357619,0,0.052679,
+ -0.999314,0.03703,0,-0.357619,0,-0.052679,
+ -0.983679,0.17993,0,-0.309535,0.432529,0.052679,
+ -0.968549,0.248824,0,-0.309535,0.432529,-0.052679,
+ 0,0,-1,-0.309535,0.432529,-0.052679,
+ 0,0,-1,-0.309535,-0.432529,-0.052679,
+ 0,0,-1,-0.357619,0,-0.052679,
+ 0,0,-1,-0.309535,-0.432529,-0.052679,
+ 0,0,-1,-0.309535,0.432529,-0.052679,
+ 0,0,-1,-0.292672,0.483132,-0.052679,
+ 0,0,-1,-0.309535,-0.432529,-0.052679,
+ 0,0,-1,-0.292672,0.483132,-0.052679,
+ 0,0,-1,-0.292672,-0.483132,-0.052679,
+ 0,0,-1,-0.292672,-0.483132,-0.052679,
+ 0,0,-1,-0.292672,0.483132,-0.052679,
+ 0,0,-1,-0.242083,0.5,-0.052679,
+ 0,0,-1,-0.292672,-0.483132,-0.052679,
+ 0,0,-1,-0.242083,0.5,-0.052679,
+ 0,0,-1,-0.242083,-0.5,-0.052679,
+ 0,0,-1,-0.242083,-0.5,-0.052679,
+ 0,0,-1,-0.242083,0.5,-0.052679,
+ 0,0,-1,0.242083,0.5,-0.052679,
+ 0,0,-1,-0.242083,-0.5,-0.052679,
+ 0,0,-1,0.242083,0.5,-0.052679,
+ 0,0,-1,0.242083,-0.5,-0.052679,
+ 0,0,-1,0.242083,-0.5,-0.052679,
+ 0,0,-1,0.242083,0.5,-0.052679,
+ 0,0,-1,0.292672,-0.483132,-0.052679,
+ 0,0,-1,0.292672,-0.483132,-0.052679,
+ 0,0,-1,0.242083,0.5,-0.052679,
+ 0,0,-1,0.292672,0.483132,-0.052679,
+ 0,0,-1,0.292672,-0.483132,-0.052679,
+ 0,0,-1,0.292672,0.483132,-0.052679,
+ 0,0,-1,0.309535,-0.432529,-0.052679,
+ 0,0,-1,0.309535,-0.432529,-0.052679,
+ 0,0,-1,0.292672,0.483132,-0.052679,
+ 0,0,-1,0.309535,0.432529,-0.052679,
+ 0,0,-1,0.309535,-0.432529,-0.052679,
+ 0,0,-1,0.309535,0.432529,-0.052679,
+ 0,0,-1,0.357619,0,-0.052679,
+ 0.999314,-0.03703,0,0.357619,0,-0.052679,
+ 0.983679,-0.17993,0,0.309535,-0.432529,0.052679,
+ 0.968549,-0.248824,0,0.309535,-0.432529,-0.052679,
+ 0.983679,-0.17993,0,0.309535,-0.432529,0.052679,
+ 0.999314,-0.03703,0,0.357619,0,-0.052679,
+ 0.999314,0.03703,0,0.357619,0,0.052679,
+ -0.999314,-0.03703,0,-0.357619,0,0.052679,
+ -0.983679,-0.17993,0,-0.309535,-0.432529,-0.052679,
+ -0.968549,-0.248824,0,-0.309535,-0.432529,0.052679,
+ -0.983679,-0.17993,0,-0.309535,-0.432529,-0.052679,
+ -0.999314,-0.03703,0,-0.357619,0,0.052679,
+ -0.999314,0.03703,0,-0.357619,0,-0.052679,
+ -0.968549,-0.248824,0,-0.309535,-0.432529,0.052679,
+ -0.948709,-0.316149,0,-0.292672,-0.483132,-0.052679,
+ -0.948709,-0.316149,0,-0.292672,-0.483132,0.052679,
+ -0.948709,-0.316149,0,-0.292672,-0.483132,-0.052679,
+ -0.968549,-0.248824,0,-0.309535,-0.432529,0.052679,
+ -0.983679,-0.17993,0,-0.309535,-0.432529,-0.052679,
+ -0.21332,-0.976982,0,-0.242083,-0.5,0.052679,
+ -0.316307,-0.948657,0,-0.292672,-0.483132,-0.052679,
+ -0.10666,-0.994296,0,-0.242083,-0.5,-0.052679,
+ -0.316307,-0.948657,0,-0.292672,-0.483132,-0.052679,
+ -0.21332,-0.976982,0,-0.242083,-0.5,0.052679,
+ -0.316307,-0.948657,0,-0.292672,-0.483132,0.052679,
+ 0.316307,-0.948657,0,0.292672,-0.483132,0.052679,
+ 0.213319,-0.976983,0,0.242083,-0.5,-0.052679,
+ 0.316307,-0.948657,0,0.292672,-0.483132,-0.052679,
+ 0.213319,-0.976983,0,0.242083,-0.5,-0.052679,
+ 0.316307,-0.948657,0,0.292672,-0.483132,0.052679,
+ 0.10666,-0.994296,0,0.242083,-0.5,0.052679,
+ 0.968549,-0.248824,0,0.309535,-0.432529,-0.052679,
+ 0.948709,-0.316149,0,0.292672,-0.483132,0.052679,
+ 0.948709,-0.316149,0,0.292672,-0.483132,-0.052679,
+ 0.948709,-0.316149,0,0.292672,-0.483132,0.052679,
+ 0.968549,-0.248824,0,0.309535,-0.432529,-0.052679,
+ 0.983679,-0.17993,0,0.309535,-0.432529,0.052679,
+ 0.213319,0.976983,0,0.242083,0.5,0.052679,
+ 0.316307,0.948657,0,0.292672,0.483132,-0.052679,
+ 0.10666,0.994296,0,0.242083,0.5,-0.052679,
+ 0.316307,0.948657,0,0.292672,0.483132,-0.052679,
+ 0.213319,0.976983,0,0.242083,0.5,0.052679,
+ 0.316307,0.948657,0,0.292672,0.483132,0.052679,
+ 0.948709,0.316149,0,0.292672,0.483132,-0.052679,
+ 0.968549,0.248824,0,0.309535,0.432529,0.052679,
+ 0.983679,0.17993,0,0.309535,0.432529,-0.052679,
+ 0.968549,0.248824,0,0.309535,0.432529,0.052679,
+ 0.948709,0.316149,0,0.292672,0.483132,-0.052679,
+ 0.948709,0.316149,0,0.292672,0.483132,0.052679,
+ -0.948709,0.316149,0,-0.292672,0.483132,0.052679,
+ -0.968549,0.248824,0,-0.309535,0.432529,-0.052679,
+ -0.983679,0.17993,0,-0.309535,0.432529,0.052679,
+ -0.968549,0.248824,0,-0.309535,0.432529,-0.052679,
+ -0.948709,0.316149,0,-0.292672,0.483132,0.052679,
+ -0.948709,0.316149,0,-0.292672,0.483132,-0.052679,
+ -0.316307,0.948657,0,-0.292672,0.483132,0.052679,
+ -0.21332,0.976982,0,-0.242083,0.5,-0.052679,
+ -0.316307,0.948657,0,-0.292672,0.483132,-0.052679,
+ -0.21332,0.976982,0,-0.242083,0.5,-0.052679,
+ -0.316307,0.948657,0,-0.292672,0.483132,0.052679,
+ -0.10666,0.994296,0,-0.242083,0.5,0.052679
+};
+static const struct gllist toaster_base_frame = { GL_N3F_V3F, GL_TRIANGLES, 120, toaster_base_data, 0 };
+const struct gllist *toaster_base = &toaster_base_frame;
diff --git a/hacks/glx/toaster_base.dxf b/hacks/glx/toaster_base.dxf
new file mode 100644
index 0000000..d1cb7c5
--- /dev/null
+++ b/hacks/glx/toaster_base.dxf
@@ -0,0 +1,1214 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-213.358000
+20
+440.670401
+30
+46.428166
+11
+213.358015
+21
+440.670401
+31
+-46.428166
+12
+-213.358000
+22
+440.670401
+32
+-46.428166
+13
+-213.358000
+23
+440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+213.358015
+20
+440.670401
+30
+-46.428166
+11
+-213.358000
+21
+440.670401
+31
+46.428166
+12
+213.358015
+22
+440.670401
+32
+46.428166
+13
+213.358015
+23
+440.670401
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+272.806257
+20
+381.205648
+30
+-46.428166
+11
+315.183967
+21
+0.000001
+31
+46.428166
+12
+315.183967
+22
+0.000001
+32
+-46.428166
+13
+315.183967
+23
+0.000001
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+315.183967
+20
+0.000001
+30
+46.428166
+11
+272.806257
+21
+381.205648
+31
+-46.428166
+12
+272.806257
+22
+381.205648
+32
+46.428166
+13
+272.806257
+23
+381.205648
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+213.358015
+20
+-440.670401
+30
+46.428166
+11
+-213.358000
+21
+-440.670401
+31
+-46.428166
+12
+213.358015
+22
+-440.670401
+32
+-46.428166
+13
+213.358015
+23
+-440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-213.358000
+20
+-440.670401
+30
+-46.428166
+11
+213.358015
+21
+-440.670401
+31
+46.428166
+12
+-213.358000
+22
+-440.670401
+32
+46.428166
+13
+-213.358000
+23
+-440.670401
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-272.806227
+20
+381.205648
+30
+46.428166
+11
+-315.183967
+21
+0.000001
+31
+-46.428166
+12
+-315.183967
+22
+0.000001
+32
+46.428166
+13
+-315.183967
+23
+0.000001
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-315.183967
+20
+0.000001
+30
+-46.428166
+11
+-272.806227
+21
+381.205648
+31
+46.428166
+12
+-272.806227
+22
+381.205648
+32
+-46.428166
+13
+-272.806227
+23
+381.205648
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-272.806227
+20
+381.205648
+30
+-46.428166
+11
+-272.806227
+21
+-381.205648
+31
+-46.428166
+12
+-315.183967
+22
+0.000001
+32
+-46.428166
+13
+-315.183967
+23
+0.000001
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-272.806227
+20
+-381.205648
+30
+-46.428166
+11
+-272.806227
+21
+381.205648
+31
+-46.428166
+12
+-257.944137
+22
+425.804198
+32
+-46.428166
+13
+-257.944137
+23
+425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-272.806227
+20
+-381.205648
+30
+-46.428166
+11
+-257.944137
+21
+425.804198
+31
+-46.428166
+12
+-257.944137
+22
+-425.804198
+32
+-46.428166
+13
+-257.944137
+23
+-425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-257.944137
+20
+-425.804198
+30
+-46.428166
+11
+-257.944137
+21
+425.804198
+31
+-46.428166
+12
+-213.358000
+22
+440.670401
+32
+-46.428166
+13
+-213.358000
+23
+440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-257.944137
+20
+-425.804198
+30
+-46.428166
+11
+-213.358000
+21
+440.670401
+31
+-46.428166
+12
+-213.358000
+22
+-440.670401
+32
+-46.428166
+13
+-213.358000
+23
+-440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-213.358000
+20
+-440.670401
+30
+-46.428166
+11
+-213.358000
+21
+440.670401
+31
+-46.428166
+12
+213.358015
+22
+440.670401
+32
+-46.428166
+13
+213.358015
+23
+440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-213.358000
+20
+-440.670401
+30
+-46.428166
+11
+213.358015
+21
+440.670401
+31
+-46.428166
+12
+213.358015
+22
+-440.670401
+32
+-46.428166
+13
+213.358015
+23
+-440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+213.358015
+20
+-440.670401
+30
+-46.428166
+11
+213.358015
+21
+440.670401
+31
+-46.428166
+12
+257.944167
+22
+-425.804198
+32
+-46.428166
+13
+257.944167
+23
+-425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+257.944167
+20
+-425.804198
+30
+-46.428166
+11
+213.358015
+21
+440.670401
+31
+-46.428166
+12
+257.944167
+22
+425.804198
+32
+-46.428166
+13
+257.944167
+23
+425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+257.944167
+20
+-425.804198
+30
+-46.428166
+11
+257.944167
+21
+425.804198
+31
+-46.428166
+12
+272.806257
+22
+-381.205648
+32
+-46.428166
+13
+272.806257
+23
+-381.205648
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+272.806257
+20
+-381.205648
+30
+-46.428166
+11
+257.944167
+21
+425.804198
+31
+-46.428166
+12
+272.806257
+22
+381.205648
+32
+-46.428166
+13
+272.806257
+23
+381.205648
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+272.806257
+20
+-381.205648
+30
+-46.428166
+11
+272.806257
+21
+381.205648
+31
+-46.428166
+12
+315.183967
+22
+0.000001
+32
+-46.428166
+13
+315.183967
+23
+0.000001
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+315.183967
+20
+0.000001
+30
+-46.428166
+11
+272.806257
+21
+-381.205648
+31
+46.428166
+12
+272.806257
+22
+-381.205648
+32
+-46.428166
+13
+272.806257
+23
+-381.205648
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+272.806257
+20
+-381.205648
+30
+46.428166
+11
+315.183967
+21
+0.000001
+31
+-46.428166
+12
+315.183967
+22
+0.000001
+32
+46.428166
+13
+315.183967
+23
+0.000001
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-315.183967
+20
+0.000001
+30
+46.428166
+11
+-272.806227
+21
+-381.205648
+31
+-46.428166
+12
+-272.806227
+22
+-381.205648
+32
+46.428166
+13
+-272.806227
+23
+-381.205648
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-272.806227
+20
+-381.205648
+30
+-46.428166
+11
+-315.183967
+21
+0.000001
+31
+46.428166
+12
+-315.183967
+22
+0.000001
+32
+-46.428166
+13
+-315.183967
+23
+0.000001
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-272.806227
+20
+-381.205648
+30
+46.428166
+11
+-257.944137
+21
+-425.804198
+31
+-46.428166
+12
+-257.944137
+22
+-425.804198
+32
+46.428166
+13
+-257.944137
+23
+-425.804198
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-257.944137
+20
+-425.804198
+30
+-46.428166
+11
+-272.806227
+21
+-381.205648
+31
+46.428166
+12
+-272.806227
+22
+-381.205648
+32
+-46.428166
+13
+-272.806227
+23
+-381.205648
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-213.358000
+20
+-440.670401
+30
+46.428166
+11
+-257.944137
+21
+-425.804198
+31
+-46.428166
+12
+-213.358000
+22
+-440.670401
+32
+-46.428166
+13
+-213.358000
+23
+-440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-257.944137
+20
+-425.804198
+30
+-46.428166
+11
+-213.358000
+21
+-440.670401
+31
+46.428166
+12
+-257.944137
+22
+-425.804198
+32
+46.428166
+13
+-257.944137
+23
+-425.804198
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+257.944167
+20
+-425.804198
+30
+46.428166
+11
+213.358015
+21
+-440.670401
+31
+-46.428166
+12
+257.944167
+22
+-425.804198
+32
+-46.428166
+13
+257.944167
+23
+-425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+213.358015
+20
+-440.670401
+30
+-46.428166
+11
+257.944167
+21
+-425.804198
+31
+46.428166
+12
+213.358015
+22
+-440.670401
+32
+46.428166
+13
+213.358015
+23
+-440.670401
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+272.806257
+20
+-381.205648
+30
+-46.428166
+11
+257.944167
+21
+-425.804198
+31
+46.428166
+12
+257.944167
+22
+-425.804198
+32
+-46.428166
+13
+257.944167
+23
+-425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+257.944167
+20
+-425.804198
+30
+46.428166
+11
+272.806257
+21
+-381.205648
+31
+-46.428166
+12
+272.806257
+22
+-381.205648
+32
+46.428166
+13
+272.806257
+23
+-381.205648
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+213.358015
+20
+440.670401
+30
+46.428166
+11
+257.944167
+21
+425.804198
+31
+-46.428166
+12
+213.358015
+22
+440.670401
+32
+-46.428166
+13
+213.358015
+23
+440.670401
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+257.944167
+20
+425.804198
+30
+-46.428166
+11
+213.358015
+21
+440.670401
+31
+46.428166
+12
+257.944167
+22
+425.804198
+32
+46.428166
+13
+257.944167
+23
+425.804198
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+257.944167
+20
+425.804198
+30
+-46.428166
+11
+272.806257
+21
+381.205648
+31
+46.428166
+12
+272.806257
+22
+381.205648
+32
+-46.428166
+13
+272.806257
+23
+381.205648
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+272.806257
+20
+381.205648
+30
+46.428166
+11
+257.944167
+21
+425.804198
+31
+-46.428166
+12
+257.944167
+22
+425.804198
+32
+46.428166
+13
+257.944167
+23
+425.804198
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-257.944137
+20
+425.804198
+30
+46.428166
+11
+-272.806227
+21
+381.205648
+31
+-46.428166
+12
+-272.806227
+22
+381.205648
+32
+46.428166
+13
+-272.806227
+23
+381.205648
+33
+46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-272.806227
+20
+381.205648
+30
+-46.428166
+11
+-257.944137
+21
+425.804198
+31
+46.428166
+12
+-257.944137
+22
+425.804198
+32
+-46.428166
+13
+-257.944137
+23
+425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-257.944137
+20
+425.804198
+30
+46.428166
+11
+-213.358000
+21
+440.670401
+31
+-46.428166
+12
+-257.944137
+22
+425.804198
+32
+-46.428166
+13
+-257.944137
+23
+425.804198
+33
+-46.428166
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-213.358000
+20
+440.670401
+30
+-46.428166
+11
+-257.944137
+21
+425.804198
+31
+46.428166
+12
+-213.358000
+22
+440.670401
+32
+46.428166
+13
+-213.358000
+23
+440.670401
+33
+46.428166
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster_handle.c b/hacks/glx/toaster_handle.c
new file mode 100644
index 0000000..f7c7c6b
--- /dev/null
+++ b/hacks/glx/toaster_handle.c
@@ -0,0 +1,64 @@
+/* Generated from "toaster_handle.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_handle_data[] = {
+ 0,0,1,0.5,-0.094169,0.035224,
+ 0,0,1,-0.356403,0.038624,0.035224,
+ 0,0,1,-0.5,-0.094169,0.035224,
+ 0,0,1,-0.356403,0.038624,0.035224,
+ 0,0,1,0.5,-0.094169,0.035224,
+ 0,0,1,-0.210084,0.094169,0.035224,
+ 0,0,1,-0.210084,0.094169,0.035224,
+ 0,0,1,0.5,-0.094169,0.035224,
+ 0,0,1,0.210084,0.094169,0.035224,
+ 0,0,1,0.210084,0.094169,0.035224,
+ 0,0,1,0.5,-0.094169,0.035224,
+ 0,0,1,0.356403,0.038624,0.035224,
+ -0.678947,0.734187,0,-0.5,-0.094169,0.035224,
+ -0.58038,0.814346,0,-0.356403,0.038624,-0.035224,
+ -0.678947,0.734187,0,-0.5,-0.094169,-0.035224,
+ -0.58038,0.814346,0,-0.356403,0.038624,-0.035224,
+ -0.678947,0.734187,0,-0.5,-0.094169,0.035224,
+ -0.47058,0.882357,0,-0.356403,0.038624,0.035224,
+ 0,0,-1,-0.356403,0.038624,-0.035224,
+ 0,0,-1,0.5,-0.094169,-0.035224,
+ 0,0,-1,-0.5,-0.094169,-0.035224,
+ 0,0,-1,0.5,-0.094169,-0.035224,
+ 0,0,-1,-0.356403,0.038624,-0.035224,
+ 0,0,-1,-0.210084,0.094169,-0.035224,
+ 0,0,-1,0.5,-0.094169,-0.035224,
+ 0,0,-1,-0.210084,0.094169,-0.035224,
+ 0,0,-1,0.210084,0.094169,-0.035224,
+ 0,0,-1,0.5,-0.094169,-0.035224,
+ 0,0,-1,0.210084,0.094169,-0.035224,
+ 0,0,-1,0.356403,0.038624,-0.035224,
+ 0.58038,0.814346,0,0.356403,0.038624,0.035224,
+ 0.678947,0.734187,0,0.5,-0.094169,-0.035224,
+ 0.47058,0.882357,0,0.356403,0.038624,-0.035224,
+ 0.678947,0.734187,0,0.5,-0.094169,-0.035224,
+ 0.58038,0.814346,0,0.356403,0.038624,0.035224,
+ 0.678947,0.734187,0,0.5,-0.094169,0.035224,
+ -0.120052,0.992768,0,-0.210084,0.094169,0.035224,
+ 0.120052,0.992768,0,0.210084,0.094169,-0.035224,
+ -0.240104,0.970747,0,-0.210084,0.094169,-0.035224,
+ 0.120052,0.992768,0,0.210084,0.094169,-0.035224,
+ -0.120052,0.992768,0,-0.210084,0.094169,0.035224,
+ 0.240104,0.970747,0,0.210084,0.094169,0.035224,
+ 0.240104,0.970747,0,0.210084,0.094169,0.035224,
+ 0.47058,0.882357,0,0.356403,0.038624,-0.035224,
+ 0.120052,0.992768,0,0.210084,0.094169,-0.035224,
+ 0.47058,0.882357,0,0.356403,0.038624,-0.035224,
+ 0.240104,0.970747,0,0.210084,0.094169,0.035224,
+ 0.58038,0.814346,0,0.356403,0.038624,0.035224,
+ -0.47058,0.882357,0,-0.356403,0.038624,0.035224,
+ -0.240104,0.970747,0,-0.210084,0.094169,-0.035224,
+ -0.58038,0.814346,0,-0.356403,0.038624,-0.035224,
+ -0.240104,0.970747,0,-0.210084,0.094169,-0.035224,
+ -0.47058,0.882357,0,-0.356403,0.038624,0.035224,
+ -0.120052,0.992768,0,-0.210084,0.094169,0.035224
+};
+static const struct gllist toaster_handle_frame = { GL_N3F_V3F, GL_TRIANGLES, 54, toaster_handle_data, 0 };
+const struct gllist *toaster_handle = &toaster_handle_frame;
diff --git a/hacks/glx/toaster_handle.dxf b/hacks/glx/toaster_handle.dxf
new file mode 100644
index 0000000..1c153d8
--- /dev/null
+++ b/hacks/glx/toaster_handle.dxf
@@ -0,0 +1,554 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+490.188003
+20
+-92.321426
+30
+34.532439
+11
+-349.408537
+21
+37.865948
+31
+34.532439
+12
+-490.188003
+22
+-92.321426
+32
+34.532439
+13
+-490.188003
+23
+-92.321426
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-349.408537
+20
+37.865948
+30
+34.532439
+11
+490.188003
+21
+-92.321426
+31
+34.532439
+12
+-205.961362
+22
+92.321426
+32
+34.532439
+13
+-205.961362
+23
+92.321426
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-205.961362
+20
+92.321426
+30
+34.532439
+11
+490.188003
+21
+-92.321426
+31
+34.532439
+12
+205.961317
+22
+92.321426
+32
+34.532439
+13
+205.961317
+23
+92.321426
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+205.961317
+20
+92.321426
+30
+34.532439
+11
+490.188003
+21
+-92.321426
+31
+34.532439
+12
+349.408507
+22
+37.865948
+32
+34.532439
+13
+349.408507
+23
+37.865948
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-490.188003
+20
+-92.321426
+30
+34.532439
+11
+-349.408537
+21
+37.865948
+31
+-34.532439
+12
+-490.188003
+22
+-92.321426
+32
+-34.532439
+13
+-490.188003
+23
+-92.321426
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-349.408537
+20
+37.865948
+30
+-34.532439
+11
+-490.188003
+21
+-92.321426
+31
+34.532439
+12
+-349.408537
+22
+37.865948
+32
+34.532439
+13
+-349.408537
+23
+37.865948
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-349.408537
+20
+37.865948
+30
+-34.532439
+11
+490.188003
+21
+-92.321426
+31
+-34.532439
+12
+-490.188003
+22
+-92.321426
+32
+-34.532439
+13
+-490.188003
+23
+-92.321426
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+490.188003
+20
+-92.321426
+30
+-34.532439
+11
+-349.408537
+21
+37.865948
+31
+-34.532439
+12
+-205.961362
+22
+92.321426
+32
+-34.532439
+13
+-205.961362
+23
+92.321426
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+490.188003
+20
+-92.321426
+30
+-34.532439
+11
+-205.961362
+21
+92.321426
+31
+-34.532439
+12
+205.961317
+22
+92.321426
+32
+-34.532439
+13
+205.961317
+23
+92.321426
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+490.188003
+20
+-92.321426
+30
+-34.532439
+11
+205.961317
+21
+92.321426
+31
+-34.532439
+12
+349.408507
+22
+37.865948
+32
+-34.532439
+13
+349.408507
+23
+37.865948
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+349.408507
+20
+37.865948
+30
+34.532439
+11
+490.188003
+21
+-92.321426
+31
+-34.532439
+12
+349.408507
+22
+37.865948
+32
+-34.532439
+13
+349.408507
+23
+37.865948
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+490.188003
+20
+-92.321426
+30
+-34.532439
+11
+349.408507
+21
+37.865948
+31
+34.532439
+12
+490.188003
+22
+-92.321426
+32
+34.532439
+13
+490.188003
+23
+-92.321426
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-205.961362
+20
+92.321426
+30
+34.532439
+11
+205.961317
+21
+92.321426
+31
+-34.532439
+12
+-205.961362
+22
+92.321426
+32
+-34.532439
+13
+-205.961362
+23
+92.321426
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+205.961317
+20
+92.321426
+30
+-34.532439
+11
+-205.961362
+21
+92.321426
+31
+34.532439
+12
+205.961317
+22
+92.321426
+32
+34.532439
+13
+205.961317
+23
+92.321426
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+205.961317
+20
+92.321426
+30
+34.532439
+11
+349.408507
+21
+37.865948
+31
+-34.532439
+12
+205.961317
+22
+92.321426
+32
+-34.532439
+13
+205.961317
+23
+92.321426
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+349.408507
+20
+37.865948
+30
+-34.532439
+11
+205.961317
+21
+92.321426
+31
+34.532439
+12
+349.408507
+22
+37.865948
+32
+34.532439
+13
+349.408507
+23
+37.865948
+33
+34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-349.408537
+20
+37.865948
+30
+34.532439
+11
+-205.961362
+21
+92.321426
+31
+-34.532439
+12
+-349.408537
+22
+37.865948
+32
+-34.532439
+13
+-349.408537
+23
+37.865948
+33
+-34.532439
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-205.961362
+20
+92.321426
+30
+-34.532439
+11
+-349.408537
+21
+37.865948
+31
+34.532439
+12
+-205.961362
+22
+92.321426
+32
+34.532439
+13
+-205.961362
+23
+92.321426
+33
+34.532439
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster_handle2.c b/hacks/glx/toaster_handle2.c
new file mode 100644
index 0000000..d73003e
--- /dev/null
+++ b/hacks/glx/toaster_handle2.c
@@ -0,0 +1,40 @@
+/* Generated from "toaster_handle2.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_handle2_data[] = {
+ 0,-0.027094,0.999633,0.038934,-0.294903,-0.5,
+ 0,-0.027094,0.999633,-0.038934,0.321555,-0.483291,
+ 0,-0.027094,0.999633,-0.038934,-0.294903,-0.5,
+ 0,-0.027094,0.999633,-0.038934,0.321555,-0.483291,
+ 0,-0.027094,0.999633,0.038934,-0.294903,-0.5,
+ 0,-0.027094,0.999633,0.038934,0.321555,-0.483291,
+ -1,0,0,0.038934,0.294903,0.5,
+ -1,0,0,0.038934,-0.294903,-0.5,
+ -1,0,0,0.038934,-0.321555,0.483291,
+ -1,0,0,0.038934,-0.294903,-0.5,
+ -1,0,0,0.038934,0.294903,0.5,
+ -1,0,0,0.038934,0.321555,-0.483291,
+ 0,0.027094,-0.999633,0.038934,0.294903,0.5,
+ 0,0.027094,-0.999633,-0.038934,-0.321555,0.483291,
+ 0,0.027094,-0.999633,-0.038934,0.294903,0.5,
+ 0,0.027094,-0.999633,-0.038934,-0.321555,0.483291,
+ 0,0.027094,-0.999633,0.038934,0.294903,0.5,
+ 0,0.027094,-0.999633,0.038934,-0.321555,0.483291,
+ 1,0,0,-0.038934,-0.294903,-0.5,
+ 1,0,0,-0.038934,0.294903,0.5,
+ 1,0,0,-0.038934,-0.321555,0.483291,
+ 1,0,0,-0.038934,0.294903,0.5,
+ 1,0,0,-0.038934,-0.294903,-0.5,
+ 1,0,0,-0.038934,0.321555,-0.483291,
+ 0,-0.999633,-0.027095,0.038934,0.294903,0.5,
+ 0,-0.999633,-0.027095,-0.038934,0.321555,-0.483291,
+ 0,-0.999633,-0.027095,0.038934,0.321555,-0.483291,
+ 0,-0.999633,-0.027095,-0.038934,0.321555,-0.483291,
+ 0,-0.999633,-0.027095,0.038934,0.294903,0.5,
+ 0,-0.999633,-0.027095,-0.038934,0.294903,0.5
+};
+static const struct gllist toaster_handle2_frame = { GL_N3F_V3F, GL_TRIANGLES, 30, toaster_handle2_data, 0 };
+const struct gllist *toaster_handle2 = &toaster_handle2_frame;
diff --git a/hacks/glx/toaster_handle2.dxf b/hacks/glx/toaster_handle2.dxf
new file mode 100644
index 0000000..d8eb850
--- /dev/null
+++ b/hacks/glx/toaster_handle2.dxf
@@ -0,0 +1,314 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+33.460636
+20
+-253.443152
+30
+-429.705501
+11
+-33.460632
+21
+276.347905
+31
+-415.345818
+12
+-33.460632
+22
+-253.443152
+32
+-429.705501
+13
+-33.460632
+23
+-253.443152
+33
+-429.705501
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-33.460632
+20
+276.347905
+30
+-415.345818
+11
+33.460636
+21
+-253.443152
+31
+-429.705501
+12
+33.460636
+22
+276.347905
+32
+-415.345818
+13
+33.460636
+23
+276.347905
+33
+-415.345818
+0
+3DFACE
+8
+0
+ 62
+55
+10
+33.460636
+20
+253.443152
+30
+429.705560
+11
+33.460636
+21
+-253.443152
+31
+-429.705501
+12
+33.460636
+22
+-276.347905
+32
+415.345907
+13
+33.460636
+23
+-276.347905
+33
+415.345907
+0
+3DFACE
+8
+0
+ 62
+55
+10
+33.460636
+20
+-253.443152
+30
+-429.705501
+11
+33.460636
+21
+253.443152
+31
+429.705560
+12
+33.460636
+22
+276.347905
+32
+-415.345818
+13
+33.460636
+23
+276.347905
+33
+-415.345818
+0
+3DFACE
+8
+0
+ 62
+55
+10
+33.460636
+20
+253.443152
+30
+429.705560
+11
+-33.460632
+21
+-276.347905
+31
+415.345907
+12
+-33.460632
+22
+253.443152
+32
+429.705560
+13
+-33.460632
+23
+253.443152
+33
+429.705560
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-33.460632
+20
+-276.347905
+30
+415.345907
+11
+33.460636
+21
+253.443152
+31
+429.705560
+12
+33.460636
+22
+-276.347905
+32
+415.345907
+13
+33.460636
+23
+-276.347905
+33
+415.345907
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-33.460632
+20
+-253.443152
+30
+-429.705501
+11
+-33.460632
+21
+253.443152
+31
+429.705560
+12
+-33.460632
+22
+-276.347905
+32
+415.345907
+13
+-33.460632
+23
+-276.347905
+33
+415.345907
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-33.460632
+20
+253.443152
+30
+429.705560
+11
+-33.460632
+21
+-253.443152
+31
+-429.705501
+12
+-33.460632
+22
+276.347905
+32
+-415.345818
+13
+-33.460632
+23
+276.347905
+33
+-415.345818
+0
+3DFACE
+8
+0
+ 62
+55
+10
+33.460636
+20
+253.443152
+30
+429.705560
+11
+-33.460632
+21
+276.347905
+31
+-415.345818
+12
+33.460636
+22
+276.347905
+32
+-415.345818
+13
+33.460636
+23
+276.347905
+33
+-415.345818
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-33.460632
+20
+276.347905
+30
+-415.345818
+11
+33.460636
+21
+253.443152
+31
+429.705560
+12
+-33.460632
+22
+253.443152
+32
+429.705560
+13
+-33.460632
+23
+253.443152
+33
+429.705560
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster_jet.c b/hacks/glx/toaster_jet.c
new file mode 100644
index 0000000..4d44a3c
--- /dev/null
+++ b/hacks/glx/toaster_jet.c
@@ -0,0 +1,178 @@
+/* Generated from "toaster_jet.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_jet_data[] = {
+ 0.813787,-0.208368,0.542526,-0.002117,-0.240071,0.000396,
+ 0.813787,-0.208368,0.542526,-0.061503,-0.5,-0.010357,
+ 0.813787,-0.208368,0.542526,-0.031551,-0.5,-0.055285,
+ -0.351369,0.154576,0.923388,0.012946,0.394969,0.120155,
+ -0.354839,-0.067247,0.932506,-0.087986,-0.240071,0.081748,
+ -0.352413,-0.134494,0.92613,0.012946,-0.240071,0.120155,
+ -0.707849,-0.221865,0.670616,-0.002117,-0.240071,0.000396,
+ -0.707849,-0.221865,0.670616,0.022249,-0.5,-0.059879,
+ -0.707849,-0.221865,0.670616,0.059386,-0.5,-0.020681,
+ -0.905798,0.309152,0.289748,-0.120888,0.394969,-0.02111,
+ -0.950301,-0.067247,0.303983,-0.120888,-0.240071,-0.02111,
+ -0.941009,0.154576,0.301011,-0.087986,0.394969,0.081748,
+ -0.083052,-0.217721,-0.972471,0.022249,-0.5,-0.059879,
+ -0.083052,-0.217721,-0.972471,-0.031551,-0.5,-0.055285,
+ -0.084182,-0.145927,-0.985707,-0.060985,-0.240071,-0.110965,
+ -0.084866,-0.072964,-0.993717,0.046616,-0.240071,-0.120155,
+ -0.083916,0.165753,-0.98259,-0.060985,0.394969,-0.110965,
+ -0.080281,0.331506,-0.940031,0.046616,0.394969,-0.120155,
+ -0.080281,0.331506,-0.940031,0.046616,0.394969,-0.120155,
+ -0.074495,0.483301,-0.872279,-0.031551,0.5,-0.055285,
+ -0.074495,0.483301,-0.872279,0.022249,0.5,-0.059879,
+ 0.987687,-0.072964,0.138384,0.105904,-0.240071,0.065189,
+ 0.96657,-0.217721,0.135426,0.051893,-0.5,0.032792,
+ 0.979726,-0.145927,0.137269,0.120888,-0.240071,-0.041759,
+ -0.084866,-0.072964,-0.993717,0.046616,-0.240071,-0.120155,
+ -0.084182,-0.145927,-0.985707,-0.060985,-0.240071,-0.110965,
+ -0.083916,0.165753,-0.98259,-0.060985,0.394969,-0.110965,
+ 0.63255,0.49066,-0.599278,0.059386,0.5,-0.020681,
+ 0.683508,0.336879,-0.647556,0.120888,0.394969,-0.041759,
+ 0.63255,0.49066,-0.599278,0.022249,0.5,-0.059879,
+ 0.933052,-0.200826,-0.298468,-0.002117,-0.240071,0.000396,
+ 0.933052,-0.200826,-0.298468,-0.045051,-0.5,0.041072,
+ 0.933052,-0.200826,-0.298468,-0.061503,-0.5,-0.010357,
+ -0.084866,-0.072964,-0.993717,0.046616,-0.240071,-0.120155,
+ -0.083052,-0.217721,-0.972471,0.022249,-0.5,-0.059879,
+ -0.084182,-0.145927,-0.985707,-0.060985,-0.240071,-0.110965,
+ 0.502451,0.15961,0.849746,0.105904,0.394969,0.065189,
+ 0.450231,0.466386,0.76143,0.051893,0.5,0.032792,
+ 0.482347,0.31922,0.815745,0.012946,0.394969,0.120155,
+ 0.934327,0.331506,0.130908,0.105904,0.394969,0.065189,
+ 0.987687,-0.072964,0.138384,0.105904,-0.240071,0.065189,
+ 0.976628,0.165753,0.136835,0.120888,0.394969,-0.041759,
+ 0.083052,-0.217721,0.972471,0.022249,-0.5,-0.059879,
+ 0.083052,-0.217721,0.972471,-0.002117,-0.240071,0.000396,
+ 0.083052,-0.217721,0.972471,-0.031551,-0.5,-0.055285,
+ -0.950301,-0.067247,0.303983,-0.120888,-0.240071,-0.02111,
+ -0.933052,-0.200826,0.298467,-0.061503,-0.5,-0.010357,
+ -0.943803,-0.134494,0.301905,-0.087986,-0.240071,0.081748,
+ -0.788518,0.319219,-0.525679,-0.060985,0.394969,-0.110965,
+ -0.830021,-0.069797,-0.553347,-0.060985,-0.240071,-0.110965,
+ -0.821384,0.15961,-0.547589,-0.120888,0.394969,-0.02111,
+ 0.503992,-0.139595,0.852353,0.105904,-0.240071,0.065189,
+ 0.507735,-0.069797,0.858681,0.012946,-0.240071,0.120155,
+ 0.497804,-0.208368,0.841887,0.005415,-0.5,0.060275,
+ 0.074495,0.483301,0.872279,0.022249,0.5,-0.059879,
+ 0.074495,0.483301,0.872279,-0.031551,0.5,-0.055285,
+ 0.074495,0.483301,0.872279,-0.002117,0.394969,0.000396,
+ -0.497804,-0.208368,-0.841887,0.051893,-0.5,0.032792,
+ -0.497804,-0.208368,-0.841887,0.005415,-0.5,0.060275,
+ -0.497804,-0.208368,-0.841887,-0.002117,-0.240071,0.000396,
+ -0.943803,-0.134494,0.301905,-0.087986,-0.240071,0.081748,
+ -0.933052,-0.200826,0.298467,-0.061503,-0.5,-0.010357,
+ -0.933052,-0.200826,0.298468,-0.045051,-0.5,0.041072,
+ -0.96657,-0.217721,-0.135426,-0.002117,-0.240071,0.000396,
+ -0.96657,-0.217721,-0.135426,0.059386,-0.5,-0.020681,
+ -0.96657,-0.217721,-0.135426,0.051893,-0.5,0.032792,
+ 0.736015,0.466386,0.490678,-0.031551,0.5,-0.055285,
+ 0.736015,0.466386,0.490678,-0.061503,0.5,-0.010357,
+ 0.736015,0.466386,0.490678,-0.002117,0.394969,0.000396,
+ 0.979726,-0.145927,0.137269,0.120888,-0.240071,-0.041759,
+ 0.96657,-0.217721,0.135426,0.051893,-0.5,0.032792,
+ 0.96657,-0.217721,0.135426,0.059386,-0.5,-0.020681,
+ 0.63255,0.49066,-0.599278,0.022249,0.5,-0.059879,
+ 0.683508,0.336879,-0.647556,0.120888,0.394969,-0.041759,
+ 0.715569,0.16844,-0.67793,0.046616,0.394969,-0.120155,
+ -0.736016,0.466386,-0.490678,-0.061503,0.5,-0.010357,
+ -0.788518,0.319219,-0.525679,-0.060985,0.394969,-0.110965,
+ -0.821384,0.15961,-0.547589,-0.120888,0.394969,-0.02111,
+ -0.788518,0.319219,-0.525679,-0.060985,0.394969,-0.110965,
+ -0.736016,0.466386,-0.490678,-0.061503,0.5,-0.010357,
+ -0.736015,0.466386,-0.490678,-0.031551,0.5,-0.055285,
+ -0.849396,0.452441,0.271706,-0.045051,0.5,0.041072,
+ -0.849396,0.45244,0.271707,-0.061503,0.5,-0.010357,
+ -0.905798,0.309152,0.289748,-0.120888,0.394969,-0.02111,
+ -0.45023,0.466386,-0.76143,0.051893,0.5,0.032792,
+ -0.45023,0.466386,-0.76143,-0.002117,0.394969,0.000396,
+ -0.45023,0.466386,-0.76143,0.005415,0.5,0.060275,
+ 0.723931,-0.074368,-0.685852,0.120888,-0.240071,-0.041759,
+ 0.707849,-0.221865,-0.670616,0.059386,-0.5,-0.020681,
+ 0.717867,-0.148736,-0.680107,0.046616,-0.240071,-0.120155,
+ -0.63255,0.49066,0.599278,0.022249,0.5,-0.059879,
+ -0.63255,0.49066,0.599278,-0.002117,0.394969,0.000396,
+ -0.63255,0.49066,0.599278,0.059386,0.5,-0.020681,
+ -0.351369,0.154576,0.923388,0.012946,0.394969,0.120155,
+ -0.338222,0.309153,0.888837,-0.087986,0.394969,0.081748,
+ -0.354839,-0.067247,0.932506,-0.087986,-0.240071,0.081748,
+ 0.849395,0.452441,-0.271707,-0.045051,0.5,0.041072,
+ 0.849395,0.452441,-0.271707,-0.002117,0.394969,0.000396,
+ 0.849395,0.452441,-0.271707,-0.061503,0.5,-0.010357,
+ 0.502451,0.15961,0.849746,0.105904,0.394969,0.065189,
+ 0.507735,-0.069797,0.858681,0.012946,-0.240071,0.120155,
+ 0.503992,-0.139595,0.852353,0.105904,-0.240071,0.065189,
+ -0.317161,0.452441,0.83349,0.005415,0.5,0.060275,
+ -0.317162,0.452441,0.83349,-0.045051,0.5,0.041072,
+ -0.338222,0.309153,0.888837,-0.087986,0.394969,0.081748,
+ -0.080281,0.331506,-0.940031,0.046616,0.394969,-0.120155,
+ -0.083916,0.165753,-0.98259,-0.060985,0.394969,-0.110965,
+ -0.074495,0.483301,-0.872279,-0.031551,0.5,-0.055285,
+ 0.715569,0.16844,-0.67793,0.046616,0.394969,-0.120155,
+ 0.723931,-0.074368,-0.685852,0.120888,-0.240071,-0.041759,
+ 0.717867,-0.148736,-0.680107,0.046616,-0.240071,-0.120155,
+ 0.866986,0.483301,0.121473,0.059386,0.5,-0.020681,
+ 0.934327,0.331506,0.130908,0.105904,0.394969,0.065189,
+ 0.976628,0.165753,0.136835,0.120888,0.394969,-0.041759,
+ -0.866986,0.483301,-0.121473,0.059386,0.5,-0.020681,
+ -0.866986,0.483301,-0.121473,-0.002117,0.394969,0.000396,
+ -0.866986,0.483301,-0.121473,0.051893,0.5,0.032792,
+ -0.352413,-0.134494,0.92613,0.012946,-0.240071,0.120155,
+ -0.348399,-0.200826,0.91558,-0.045051,-0.5,0.041072,
+ -0.348399,-0.200826,0.91558,0.005415,-0.5,0.060275,
+ -0.821384,0.15961,-0.547589,-0.120888,0.394969,-0.02111,
+ -0.830021,-0.069797,-0.553347,-0.060985,-0.240071,-0.110965,
+ -0.823903,-0.139594,-0.549269,-0.120888,-0.240071,-0.02111,
+ -0.941009,0.154576,0.301011,-0.087986,0.394969,0.081748,
+ -0.950301,-0.067247,0.303983,-0.120888,-0.240071,-0.02111,
+ -0.943803,-0.134494,0.301905,-0.087986,-0.240071,0.081748,
+ -0.849396,0.452441,0.271706,-0.045051,0.5,0.041072,
+ -0.905798,0.309152,0.289748,-0.120888,0.394969,-0.02111,
+ -0.941009,0.154576,0.301011,-0.087986,0.394969,0.081748,
+ 0.317162,0.452441,-0.83349,0.005415,0.5,0.060275,
+ 0.317162,0.452441,-0.83349,-0.002117,0.394969,0.000396,
+ 0.317162,0.452441,-0.83349,-0.045051,0.5,0.041072,
+ -0.823903,-0.139594,-0.549269,-0.120888,-0.240071,-0.02111,
+ -0.813787,-0.208368,-0.542525,-0.031551,-0.5,-0.055285,
+ -0.813787,-0.208368,-0.542526,-0.061503,-0.5,-0.010357,
+ -0.813787,-0.208368,-0.542525,-0.031551,-0.5,-0.055285,
+ -0.823903,-0.139594,-0.549269,-0.120888,-0.240071,-0.02111,
+ -0.830021,-0.069797,-0.553347,-0.060985,-0.240071,-0.110965,
+ 0.348399,-0.200826,-0.91558,0.005415,-0.5,0.060275,
+ 0.348399,-0.200826,-0.91558,-0.045051,-0.5,0.041072,
+ 0.348399,-0.200826,-0.91558,-0.002117,-0.240071,0.000396,
+ -0.352413,-0.134494,0.92613,0.012946,-0.240071,0.120155,
+ -0.354839,-0.067247,0.932506,-0.087986,-0.240071,0.081748,
+ -0.348399,-0.200826,0.91558,-0.045051,-0.5,0.041072,
+ -0.351369,0.154576,0.923388,0.012946,0.394969,0.120155,
+ -0.317161,0.452441,0.83349,0.005415,0.5,0.060275,
+ -0.338222,0.309153,0.888837,-0.087986,0.394969,0.081748,
+ 0.503992,-0.139595,0.852353,0.105904,-0.240071,0.065189,
+ 0.497804,-0.208368,0.841887,0.005415,-0.5,0.060275,
+ 0.497804,-0.208368,0.841887,0.051893,-0.5,0.032792,
+ 0.683508,0.336879,-0.647556,0.120888,0.394969,-0.041759,
+ 0.723931,-0.074368,-0.685852,0.120888,-0.240071,-0.041759,
+ 0.715569,0.16844,-0.67793,0.046616,0.394969,-0.120155,
+ 0.976628,0.165753,0.136835,0.120888,0.394969,-0.041759,
+ 0.987687,-0.072964,0.138384,0.105904,-0.240071,0.065189,
+ 0.979726,-0.145927,0.137269,0.120888,-0.240071,-0.041759,
+ 0.502451,0.15961,0.849746,0.105904,0.394969,0.065189,
+ 0.482347,0.31922,0.815745,0.012946,0.394969,0.120155,
+ 0.507735,-0.069797,0.858681,0.012946,-0.240071,0.120155,
+ 0.866986,0.483301,0.121473,0.051893,0.5,0.032792,
+ 0.934327,0.331506,0.130908,0.105904,0.394969,0.065189,
+ 0.866986,0.483301,0.121473,0.059386,0.5,-0.020681,
+ 0.450231,0.466386,0.76143,0.051893,0.5,0.032792,
+ 0.45023,0.466386,0.76143,0.005415,0.5,0.060275,
+ 0.482347,0.31922,0.815745,0.012946,0.394969,0.120155,
+ 0.717867,-0.148736,-0.680107,0.046616,-0.240071,-0.120155,
+ 0.707849,-0.221865,-0.670616,0.059386,-0.5,-0.020681,
+ 0.707849,-0.221865,-0.670616,0.022249,-0.5,-0.059879
+};
+static const struct gllist toaster_jet_frame = { GL_N3F_V3F, GL_TRIANGLES, 168, toaster_jet_data, 0 };
+const struct gllist *toaster_jet = &toaster_jet_frame;
diff --git a/hacks/glx/toaster_jet.dxf b/hacks/glx/toaster_jet.dxf
new file mode 100644
index 0000000..2b4a2d3
--- /dev/null
+++ b/hacks/glx/toaster_jet.dxf
@@ -0,0 +1,1694 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-2.099907
+20
+-238.135010
+30
+0.392425
+11
+-61.006751
+21
+-495.968699
+31
+-10.273786
+12
+-31.296514
+22
+-495.968699
+32
+-54.839045
+13
+-31.296514
+23
+-495.968699
+33
+-54.839045
+0
+3DFACE
+8
+0
+ 62
+55
+10
+12.841670
+20
+391.784638
+30
+119.185813
+11
+-87.276451
+21
+-238.135010
+31
+81.088670
+12
+12.841670
+22
+-238.135010
+32
+119.185813
+13
+12.841670
+23
+-238.135010
+33
+119.185813
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-2.099907
+20
+-238.135010
+30
+0.392425
+11
+22.069970
+21
+-495.968699
+31
+-59.396684
+12
+58.906760
+22
+-495.968699
+32
+-20.514699
+13
+58.906760
+23
+-495.968699
+33
+-20.514699
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-119.913481
+20
+391.784638
+30
+-20.939998
+11
+-119.913481
+21
+-238.135010
+31
+-20.939998
+12
+-87.276451
+22
+391.784638
+32
+81.088670
+13
+-87.276451
+23
+391.784638
+33
+81.088670
+0
+3DFACE
+8
+0
+ 62
+55
+10
+22.069970
+20
+-495.968699
+30
+-59.396684
+11
+-31.296514
+21
+-495.968699
+31
+-54.839045
+12
+-60.493119
+22
+-238.135010
+32
+-110.070519
+13
+-60.493119
+23
+-238.135010
+33
+-110.070519
+0
+3DFACE
+8
+0
+ 62
+55
+10
+46.239849
+20
+-238.135010
+30
+-119.185783
+11
+-60.493119
+21
+391.784638
+31
+-110.070519
+12
+46.239849
+22
+391.784638
+32
+-119.185783
+13
+46.239849
+23
+391.784638
+33
+-119.185783
+0
+3DFACE
+8
+0
+ 62
+55
+10
+46.239849
+20
+391.784638
+30
+-119.185783
+11
+-31.296514
+21
+495.968699
+31
+-54.839045
+12
+22.069970
+22
+495.968699
+32
+-59.396684
+13
+22.069970
+23
+495.968699
+33
+-59.396684
+0
+3DFACE
+8
+0
+ 62
+55
+10
+105.049863
+20
+-238.135010
+30
+64.663500
+11
+51.474977
+21
+-495.968699
+31
+32.527965
+12
+119.913429
+22
+-238.135010
+32
+-41.421823
+13
+119.913429
+23
+-238.135010
+33
+-41.421823
+0
+3DFACE
+8
+0
+ 62
+55
+10
+46.239849
+20
+-238.135010
+30
+-119.185783
+11
+-60.493119
+21
+-238.135010
+31
+-110.070519
+12
+-60.493119
+22
+391.784638
+32
+-110.070519
+13
+-60.493119
+23
+391.784638
+33
+-110.070519
+0
+3DFACE
+8
+0
+ 62
+55
+10
+58.906760
+20
+495.968699
+30
+-20.514699
+11
+119.913429
+21
+391.784638
+31
+-41.421823
+12
+22.069970
+22
+495.968699
+32
+-59.396684
+13
+22.069970
+23
+495.968699
+33
+-59.396684
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-2.099907
+20
+-238.135010
+30
+0.392425
+11
+-44.688124
+21
+-495.968699
+31
+40.740550
+12
+-61.006751
+22
+-495.968699
+32
+-10.273786
+13
+-61.006751
+23
+-495.968699
+33
+-10.273786
+0
+3DFACE
+8
+0
+ 62
+55
+10
+46.239849
+20
+-238.135010
+30
+-119.185783
+11
+22.069970
+21
+-495.968699
+31
+-59.396684
+12
+-60.493119
+22
+-238.135010
+32
+-110.070519
+13
+-60.493119
+23
+-238.135010
+33
+-110.070519
+0
+3DFACE
+8
+0
+ 62
+55
+10
+105.049863
+20
+391.784638
+30
+64.663500
+11
+51.474977
+21
+495.968699
+31
+32.527965
+12
+12.841670
+22
+391.784638
+32
+119.185813
+13
+12.841670
+23
+391.784638
+33
+119.185813
+0
+3DFACE
+8
+0
+ 62
+55
+10
+105.049863
+20
+391.784638
+30
+64.663500
+11
+105.049863
+21
+-238.135010
+31
+64.663500
+12
+119.913429
+22
+391.784638
+32
+-41.421823
+13
+119.913429
+23
+391.784638
+33
+-41.421823
+0
+3DFACE
+8
+0
+ 62
+55
+10
+22.069970
+20
+-495.968699
+30
+-59.396684
+11
+-2.099907
+21
+-238.135010
+31
+0.392425
+12
+-31.296514
+22
+-495.968699
+32
+-54.839045
+13
+-31.296514
+23
+-495.968699
+33
+-54.839045
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-119.913481
+20
+-238.135010
+30
+-20.939998
+11
+-61.006751
+21
+-495.968699
+31
+-10.273786
+12
+-87.276451
+22
+-238.135010
+32
+81.088670
+13
+-87.276451
+23
+-238.135010
+33
+81.088670
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-60.493119
+20
+391.784638
+30
+-110.070519
+11
+-60.493119
+21
+-238.135010
+31
+-110.070519
+12
+-119.913481
+22
+391.784638
+32
+-20.939998
+13
+-119.913481
+23
+391.784638
+33
+-20.939998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+105.049863
+20
+-238.135010
+30
+64.663500
+11
+12.841670
+21
+-238.135010
+31
+119.185813
+12
+5.370881
+22
+-495.968699
+32
+59.789117
+13
+5.370881
+23
+-495.968699
+33
+59.789117
+0
+3DFACE
+8
+0
+ 62
+55
+10
+22.069970
+20
+495.968699
+30
+-59.396684
+11
+-31.296514
+21
+495.968699
+31
+-54.839045
+12
+-2.099907
+22
+391.784638
+32
+0.392425
+13
+-2.099907
+23
+391.784638
+33
+0.392425
+0
+3DFACE
+8
+0
+ 62
+55
+10
+51.474977
+20
+-495.968699
+30
+32.527965
+11
+5.370881
+21
+-495.968699
+31
+59.789117
+12
+-2.099907
+22
+-238.135010
+32
+0.392425
+13
+-2.099907
+23
+-238.135010
+33
+0.392425
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-87.276451
+20
+-238.135010
+30
+81.088670
+11
+-61.006751
+21
+-495.968699
+31
+-10.273786
+12
+-44.688124
+22
+-495.968699
+32
+40.740550
+13
+-44.688124
+23
+-495.968699
+33
+40.740550
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-2.099907
+20
+-238.135010
+30
+0.392425
+11
+58.906760
+21
+-495.968699
+31
+-20.514699
+12
+51.474977
+22
+-495.968699
+32
+32.527965
+13
+51.474977
+23
+-495.968699
+33
+32.527965
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-31.296514
+20
+495.968699
+30
+-54.839045
+11
+-61.006751
+21
+495.968699
+31
+-10.273786
+12
+-2.099907
+22
+391.784638
+32
+0.392425
+13
+-2.099907
+23
+391.784638
+33
+0.392425
+0
+3DFACE
+8
+0
+ 62
+55
+10
+119.913429
+20
+-238.135010
+30
+-41.421823
+11
+51.474977
+21
+-495.968699
+31
+32.527965
+12
+58.906760
+22
+-495.968699
+32
+-20.514699
+13
+58.906760
+23
+-495.968699
+33
+-20.514699
+0
+3DFACE
+8
+0
+ 62
+55
+10
+22.069970
+20
+495.968699
+30
+-59.396684
+11
+119.913429
+21
+391.784638
+31
+-41.421823
+12
+46.239849
+22
+391.784638
+32
+-119.185783
+13
+46.239849
+23
+391.784638
+33
+-119.185783
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-61.006751
+20
+495.968699
+30
+-10.273786
+11
+-60.493119
+21
+391.784638
+31
+-110.070519
+12
+-119.913481
+22
+391.784638
+32
+-20.939998
+13
+-119.913481
+23
+391.784638
+33
+-20.939998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-60.493119
+20
+391.784638
+30
+-110.070519
+11
+-61.006751
+21
+495.968699
+31
+-10.273786
+12
+-31.296514
+22
+495.968699
+32
+-54.839045
+13
+-31.296514
+23
+495.968699
+33
+-54.839045
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-44.688124
+20
+495.968699
+30
+40.740550
+11
+-61.006751
+21
+495.968699
+31
+-10.273786
+12
+-119.913481
+22
+391.784638
+32
+-20.939998
+13
+-119.913481
+23
+391.784638
+33
+-20.939998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+51.474977
+20
+495.968699
+30
+32.527965
+11
+-2.099907
+21
+391.784638
+31
+0.392425
+12
+5.370881
+22
+495.968699
+32
+59.789117
+13
+5.370881
+23
+495.968699
+33
+59.789117
+0
+3DFACE
+8
+0
+ 62
+55
+10
+119.913429
+20
+-238.135010
+30
+-41.421823
+11
+58.906760
+21
+-495.968699
+31
+-20.514699
+12
+46.239849
+22
+-238.135010
+32
+-119.185783
+13
+46.239849
+23
+-238.135010
+33
+-119.185783
+0
+3DFACE
+8
+0
+ 62
+55
+10
+22.069970
+20
+495.968699
+30
+-59.396684
+11
+-2.099907
+21
+391.784638
+31
+0.392425
+12
+58.906760
+22
+495.968699
+32
+-20.514699
+13
+58.906760
+23
+495.968699
+33
+-20.514699
+0
+3DFACE
+8
+0
+ 62
+55
+10
+12.841670
+20
+391.784638
+30
+119.185813
+11
+-87.276451
+21
+391.784638
+31
+81.088670
+12
+-87.276451
+22
+-238.135010
+32
+81.088670
+13
+-87.276451
+23
+-238.135010
+33
+81.088670
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-44.688124
+20
+495.968699
+30
+40.740550
+11
+-2.099907
+21
+391.784638
+31
+0.392425
+12
+-61.006751
+22
+495.968699
+32
+-10.273786
+13
+-61.006751
+23
+495.968699
+33
+-10.273786
+0
+3DFACE
+8
+0
+ 62
+55
+10
+105.049863
+20
+391.784638
+30
+64.663500
+11
+12.841670
+21
+-238.135010
+31
+119.185813
+12
+105.049863
+22
+-238.135010
+32
+64.663500
+13
+105.049863
+23
+-238.135010
+33
+64.663500
+0
+3DFACE
+8
+0
+ 62
+55
+10
+5.370881
+20
+495.968699
+30
+59.789117
+11
+-44.688124
+21
+495.968699
+31
+40.740550
+12
+-87.276451
+22
+391.784638
+32
+81.088670
+13
+-87.276451
+23
+391.784638
+33
+81.088670
+0
+3DFACE
+8
+0
+ 62
+55
+10
+46.239849
+20
+391.784638
+30
+-119.185783
+11
+-60.493119
+21
+391.784638
+31
+-110.070519
+12
+-31.296514
+22
+495.968699
+32
+-54.839045
+13
+-31.296514
+23
+495.968699
+33
+-54.839045
+0
+3DFACE
+8
+0
+ 62
+55
+10
+46.239849
+20
+391.784638
+30
+-119.185783
+11
+119.913429
+21
+-238.135010
+31
+-41.421823
+12
+46.239849
+22
+-238.135010
+32
+-119.185783
+13
+46.239849
+23
+-238.135010
+33
+-119.185783
+0
+3DFACE
+8
+0
+ 62
+55
+10
+58.906760
+20
+495.968699
+30
+-20.514699
+11
+105.049863
+21
+391.784638
+31
+64.663500
+12
+119.913429
+22
+391.784638
+32
+-41.421823
+13
+119.913429
+23
+391.784638
+33
+-41.421823
+0
+3DFACE
+8
+0
+ 62
+55
+10
+58.906760
+20
+495.968699
+30
+-20.514699
+11
+-2.099907
+21
+391.784638
+31
+0.392425
+12
+51.474977
+22
+495.968699
+32
+32.527965
+13
+51.474977
+23
+495.968699
+33
+32.527965
+0
+3DFACE
+8
+0
+ 62
+55
+10
+12.841670
+20
+-238.135010
+30
+119.185813
+11
+-44.688124
+21
+-495.968699
+31
+40.740550
+12
+5.370881
+22
+-495.968699
+32
+59.789117
+13
+5.370881
+23
+-495.968699
+33
+59.789117
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-119.913481
+20
+391.784638
+30
+-20.939998
+11
+-60.493119
+21
+-238.135010
+31
+-110.070519
+12
+-119.913481
+22
+-238.135010
+32
+-20.939998
+13
+-119.913481
+23
+-238.135010
+33
+-20.939998
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-87.276451
+20
+391.784638
+30
+81.088670
+11
+-119.913481
+21
+-238.135010
+31
+-20.939998
+12
+-87.276451
+22
+-238.135010
+32
+81.088670
+13
+-87.276451
+23
+-238.135010
+33
+81.088670
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-44.688124
+20
+495.968699
+30
+40.740550
+11
+-119.913481
+21
+391.784638
+31
+-20.939998
+12
+-87.276451
+22
+391.784638
+32
+81.088670
+13
+-87.276451
+23
+391.784638
+33
+81.088670
+0
+3DFACE
+8
+0
+ 62
+55
+10
+5.370881
+20
+495.968699
+30
+59.789117
+11
+-2.099907
+21
+391.784638
+31
+0.392425
+12
+-44.688124
+22
+495.968699
+32
+40.740550
+13
+-44.688124
+23
+495.968699
+33
+40.740550
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-119.913481
+20
+-238.135010
+30
+-20.939998
+11
+-31.296514
+21
+-495.968699
+31
+-54.839045
+12
+-61.006751
+22
+-495.968699
+32
+-10.273786
+13
+-61.006751
+23
+-495.968699
+33
+-10.273786
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-31.296514
+20
+-495.968699
+30
+-54.839045
+11
+-119.913481
+21
+-238.135010
+31
+-20.939998
+12
+-60.493119
+22
+-238.135010
+32
+-110.070519
+13
+-60.493119
+23
+-238.135010
+33
+-110.070519
+0
+3DFACE
+8
+0
+ 62
+55
+10
+5.370881
+20
+-495.968699
+30
+59.789117
+11
+-44.688124
+21
+-495.968699
+31
+40.740550
+12
+-2.099907
+22
+-238.135010
+32
+0.392425
+13
+-2.099907
+23
+-238.135010
+33
+0.392425
+0
+3DFACE
+8
+0
+ 62
+55
+10
+12.841670
+20
+-238.135010
+30
+119.185813
+11
+-87.276451
+21
+-238.135010
+31
+81.088670
+12
+-44.688124
+22
+-495.968699
+32
+40.740550
+13
+-44.688124
+23
+-495.968699
+33
+40.740550
+0
+3DFACE
+8
+0
+ 62
+55
+10
+12.841670
+20
+391.784638
+30
+119.185813
+11
+5.370881
+21
+495.968699
+31
+59.789117
+12
+-87.276451
+22
+391.784638
+32
+81.088670
+13
+-87.276451
+23
+391.784638
+33
+81.088670
+0
+3DFACE
+8
+0
+ 62
+55
+10
+105.049863
+20
+-238.135010
+30
+64.663500
+11
+5.370881
+21
+-495.968699
+31
+59.789117
+12
+51.474977
+22
+-495.968699
+32
+32.527965
+13
+51.474977
+23
+-495.968699
+33
+32.527965
+0
+3DFACE
+8
+0
+ 62
+55
+10
+119.913429
+20
+391.784638
+30
+-41.421823
+11
+119.913429
+21
+-238.135010
+31
+-41.421823
+12
+46.239849
+22
+391.784638
+32
+-119.185783
+13
+46.239849
+23
+391.784638
+33
+-119.185783
+0
+3DFACE
+8
+0
+ 62
+55
+10
+119.913429
+20
+391.784638
+30
+-41.421823
+11
+105.049863
+21
+-238.135010
+31
+64.663500
+12
+119.913429
+22
+-238.135010
+32
+-41.421823
+13
+119.913429
+23
+-238.135010
+33
+-41.421823
+0
+3DFACE
+8
+0
+ 62
+55
+10
+105.049863
+20
+391.784638
+30
+64.663500
+11
+12.841670
+21
+391.784638
+31
+119.185813
+12
+12.841670
+22
+-238.135010
+32
+119.185813
+13
+12.841670
+23
+-238.135010
+33
+119.185813
+0
+3DFACE
+8
+0
+ 62
+55
+10
+51.474977
+20
+495.968699
+30
+32.527965
+11
+105.049863
+21
+391.784638
+31
+64.663500
+12
+58.906760
+22
+495.968699
+32
+-20.514699
+13
+58.906760
+23
+495.968699
+33
+-20.514699
+0
+3DFACE
+8
+0
+ 62
+55
+10
+51.474977
+20
+495.968699
+30
+32.527965
+11
+5.370881
+21
+495.968699
+31
+59.789117
+12
+12.841670
+22
+391.784638
+32
+119.185813
+13
+12.841670
+23
+391.784638
+33
+119.185813
+0
+3DFACE
+8
+0
+ 62
+55
+10
+46.239849
+20
+-238.135010
+30
+-119.185783
+11
+58.906760
+21
+-495.968699
+31
+-20.514699
+12
+22.069970
+22
+-495.968699
+32
+-59.396684
+13
+22.069970
+23
+-495.968699
+33
+-59.396684
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster_knob.c b/hacks/glx/toaster_knob.c
new file mode 100644
index 0000000..d48b6ba
--- /dev/null
+++ b/hacks/glx/toaster_knob.c
@@ -0,0 +1,76 @@
+/* Generated from "toaster_knob.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_knob_data[] = {
+ 0.894098,0.012135,-0.447706,0.220972,-0.2059,-0.429683,
+ 0.894098,0.012135,-0.447706,0.372946,0.214524,-0.114788,
+ 0.894098,0.012135,-0.447706,0.372946,-0.21412,-0.126406,
+ 0.894098,0.012135,-0.447706,0.372946,0.214524,-0.114788,
+ 0.894098,0.012135,-0.447706,0.220972,-0.2059,-0.429683,
+ 0.894098,0.012135,-0.447706,0.220972,0.222744,-0.418065,
+ -0.999879,-0.000422,0.015577,-0.367658,0.209613,0.06637,
+ -0.999879,-0.000422,0.015577,-0.372946,-0.209838,-0.284406,
+ -0.999879,-0.000422,0.015577,-0.367658,-0.21903,0.054752,
+ -0.999879,-0.000422,0.015577,-0.372946,-0.209838,-0.284406,
+ -0.999879,-0.000422,0.015577,-0.367658,0.209613,0.06637,
+ -0.999879,-0.000422,0.015577,-0.372946,0.218806,-0.272788,
+ 0.907621,-0.011374,0.419637,0.372946,-0.21412,-0.126406,
+ 0.911978,-0.115261,0.393715,0.2305,0.206179,0.193077,
+ 0.907621,-0.011374,0.419637,0.2305,-0.222464,0.181458,
+ 0.911978,-0.115261,0.393715,0.2305,0.206179,0.193077,
+ 0.907621,-0.011374,0.419637,0.372946,-0.21412,-0.126406,
+ 0.907621,-0.011374,0.419637,0.372946,0.214524,-0.114788,
+ -0.611231,-0.021444,0.791162,-0.099099,-0.22465,0.262081,
+ -0.611231,-0.021444,0.791162,-0.367658,0.209613,0.06637,
+ -0.611231,-0.021444,0.791162,-0.367658,-0.21903,0.054752,
+ -0.611231,-0.021444,0.791162,-0.367658,0.209613,0.06637,
+ -0.611231,-0.021444,0.791162,-0.099099,-0.22465,0.262081,
+ -0.655778,-0.184059,0.732173,-0.099099,0.203994,0.2737,
+ -0,-0.999633,-0.027095,0.220972,-0.2059,-0.429683,
+ -0,-0.999633,-0.027095,-0.372946,-0.209838,-0.284406,
+ -0,-0.999633,-0.027096,-0.11098,-0.203994,-0.5,
+ -0,-0.999633,-0.027095,-0.372946,-0.209838,-0.284406,
+ -0,-0.999633,-0.027095,0.220972,-0.2059,-0.429683,
+ 0,-0.999633,-0.027094,0.372946,-0.21412,-0.126406,
+ -0,-0.999633,-0.027095,-0.372946,-0.209838,-0.284406,
+ 0,-0.999633,-0.027094,0.372946,-0.21412,-0.126406,
+ 0,-0.999633,-0.027095,-0.367658,-0.21903,0.054752,
+ 0,-0.999633,-0.027095,-0.367658,-0.21903,0.054752,
+ 0,-0.999633,-0.027094,0.372946,-0.21412,-0.126406,
+ 0,-0.999633,-0.027095,0.2305,-0.222464,0.181458,
+ 0,-0.999633,-0.027095,-0.367658,-0.21903,0.054752,
+ 0,-0.999633,-0.027095,0.2305,-0.222464,0.181458,
+ 0,-0.999633,-0.027095,0.065701,-0.223557,0.22177,
+ 0,-0.999633,-0.027095,-0.367658,-0.21903,0.054752,
+ 0,-0.999633,-0.027095,0.065701,-0.223557,0.22177,
+ 0,-0.999633,-0.027095,-0.099099,-0.22465,0.262081,
+ -0.635597,0.020918,-0.771737,-0.11098,0.22465,-0.488382,
+ -0.635597,0.020918,-0.771737,-0.372946,-0.209838,-0.284406,
+ -0.635597,0.020918,-0.771737,-0.372946,0.218806,-0.272788,
+ -0.635597,0.020918,-0.771737,-0.372946,-0.209838,-0.284406,
+ -0.635597,0.020918,-0.771737,-0.11098,0.22465,-0.488382,
+ -0.635597,0.020918,-0.771737,-0.11098,-0.203994,-0.5,
+ 0.207302,0.026506,-0.977918,0.220972,0.222744,-0.418065,
+ 0.207302,0.026506,-0.977918,-0.11098,-0.203994,-0.5,
+ 0.207302,0.026506,-0.977918,-0.11098,0.22465,-0.488382,
+ 0.207302,0.026506,-0.977918,-0.11098,-0.203994,-0.5,
+ 0.207302,0.026506,-0.977918,0.220972,0.222744,-0.418065,
+ 0.207302,0.026506,-0.977918,0.220972,-0.2059,-0.429683,
+ 0.237686,-0.026318,0.970985,0.065701,-0.223557,0.22177,
+ 0.237686,-0.026318,0.970985,-0.099099,0.203994,0.2737,
+ 0.237686,-0.026318,0.970985,-0.099099,-0.22465,0.262081,
+ -0.6794,-0.340802,0.649823,0.116801,0.205086,0.5,
+ -0.655778,-0.184059,0.732173,-0.099099,0.203994,0.2737,
+ -0.6794,-0.340802,0.649823,0.065701,-0.223557,0.22177,
+ 0.237686,-0.026318,0.970985,0.2305,0.206179,0.193077,
+ 0.237686,-0.026318,0.970985,0.065701,-0.223557,0.22177,
+ 0.237686,-0.026318,0.970985,0.2305,-0.222464,0.181458,
+ 0.911978,-0.115261,0.393715,0.2305,0.206179,0.193077,
+ 0.88909,-0.319042,0.328226,0.116801,0.205086,0.5,
+ 0.88909,-0.319042,0.328226,0.065701,-0.223557,0.22177
+};
+static const struct gllist toaster_knob_frame = { GL_N3F_V3F, GL_TRIANGLES, 66, toaster_knob_data, 0 };
+const struct gllist *toaster_knob = &toaster_knob_frame;
diff --git a/hacks/glx/toaster_knob.dxf b/hacks/glx/toaster_knob.dxf
new file mode 100644
index 0000000..b0053e1
--- /dev/null
+++ b/hacks/glx/toaster_knob.dxf
@@ -0,0 +1,674 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+6.216122
+20
+-5.792122
+30
+-12.087326
+11
+10.491247
+21
+6.034714
+31
+-3.229065
+12
+10.491247
+22
+-6.023361
+32
+-3.555895
+13
+10.491247
+23
+-6.023361
+33
+-3.555895
+0
+3DFACE
+8
+0
+ 62
+55
+10
+10.491247
+20
+6.034714
+30
+-3.229065
+11
+6.216122
+21
+-5.792122
+31
+-12.087326
+12
+6.216122
+22
+6.265953
+32
+-11.760496
+13
+6.216122
+23
+6.265953
+33
+-11.760496
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.342501
+20
+5.896584
+30
+1.867052
+11
+-10.491246
+21
+-5.902893
+31
+-8.000555
+12
+-10.342501
+22
+-6.161491
+32
+1.540224
+13
+-10.342501
+23
+-6.161491
+33
+1.540224
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.491246
+20
+-5.902893
+30
+-8.000555
+11
+-10.342501
+21
+5.896584
+31
+1.867052
+12
+-10.491246
+22
+6.155182
+32
+-7.673727
+13
+-10.491246
+23
+6.155182
+33
+-7.673727
+0
+3DFACE
+8
+0
+ 62
+55
+10
+10.491247
+20
+-6.023361
+30
+-3.555895
+11
+6.484152
+21
+5.799973
+31
+5.431395
+12
+6.484152
+22
+-6.258095
+32
+5.104565
+13
+6.484152
+23
+-6.258095
+33
+5.104565
+0
+3DFACE
+8
+0
+ 62
+55
+10
+6.484152
+20
+5.799973
+30
+5.431395
+11
+10.491247
+21
+-6.023361
+31
+-3.555895
+12
+10.491247
+22
+6.034714
+32
+-3.229065
+13
+10.491247
+23
+6.034714
+33
+-3.229065
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-2.787737
+20
+-6.319573
+30
+7.372553
+11
+-10.342501
+21
+5.896584
+31
+1.867052
+12
+-10.342501
+22
+-6.161491
+32
+1.540224
+13
+-10.342501
+23
+-6.161491
+33
+1.540224
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.342501
+20
+5.896584
+30
+1.867052
+11
+-2.787737
+21
+-6.319573
+31
+7.372553
+12
+-2.787737
+22
+5.738503
+32
+7.699381
+13
+-2.787737
+23
+5.738503
+33
+7.699381
+0
+3DFACE
+8
+0
+ 62
+55
+10
+6.216122
+20
+-5.792122
+30
+-12.087326
+11
+-10.491246
+21
+-5.902893
+31
+-8.000555
+12
+-3.121965
+22
+-5.738503
+32
+-14.065386
+13
+-3.121965
+23
+-5.738503
+33
+-14.065386
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.491246
+20
+-5.902893
+30
+-8.000555
+11
+6.216122
+21
+-5.792122
+31
+-12.087326
+12
+10.491247
+22
+-6.023361
+32
+-3.555895
+13
+10.491247
+23
+-6.023361
+33
+-3.555895
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.491246
+20
+-5.902893
+30
+-8.000555
+11
+10.491247
+21
+-6.023361
+31
+-3.555895
+12
+-10.342501
+22
+-6.161491
+32
+1.540224
+13
+-10.342501
+23
+-6.161491
+33
+1.540224
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.342501
+20
+-6.161491
+30
+1.540224
+11
+10.491247
+21
+-6.023361
+31
+-3.555895
+12
+6.484152
+22
+-6.258095
+32
+5.104565
+13
+6.484152
+23
+-6.258095
+33
+5.104565
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.342501
+20
+-6.161491
+30
+1.540224
+11
+6.484152
+21
+-6.258095
+31
+5.104565
+12
+1.848208
+22
+-6.288834
+32
+6.238558
+13
+1.848208
+23
+-6.288834
+33
+6.238558
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.342501
+20
+-6.161491
+30
+1.540224
+11
+1.848208
+21
+-6.288834
+31
+6.238558
+12
+-2.787737
+22
+-6.319573
+32
+7.372553
+13
+-2.787737
+23
+-6.319573
+33
+7.372553
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-3.121965
+20
+6.319565
+30
+-13.738557
+11
+-10.491246
+21
+-5.902893
+31
+-8.000555
+12
+-10.491246
+22
+6.155182
+32
+-7.673727
+13
+-10.491246
+23
+6.155182
+33
+-7.673727
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-10.491246
+20
+-5.902893
+30
+-8.000555
+11
+-3.121965
+21
+6.319565
+31
+-13.738557
+12
+-3.121965
+22
+-5.738503
+32
+-14.065386
+13
+-3.121965
+23
+-5.738503
+33
+-14.065386
+0
+3DFACE
+8
+0
+ 62
+55
+10
+6.216122
+20
+6.265953
+30
+-11.760496
+11
+-3.121965
+21
+-5.738503
+31
+-14.065386
+12
+-3.121965
+22
+6.319565
+32
+-13.738557
+13
+-3.121965
+23
+6.319565
+33
+-13.738557
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-3.121965
+20
+-5.738503
+30
+-14.065386
+11
+6.216122
+21
+6.265953
+31
+-11.760496
+12
+6.216122
+22
+-5.792122
+32
+-12.087326
+13
+6.216122
+23
+-5.792122
+33
+-12.087326
+0
+3DFACE
+8
+0
+ 62
+55
+10
+1.848208
+20
+-6.288834
+30
+6.238558
+11
+-2.787737
+21
+5.738503
+31
+7.699381
+12
+-2.787737
+22
+-6.319573
+32
+7.372553
+13
+-2.787737
+23
+-6.319573
+33
+7.372553
+0
+3DFACE
+8
+0
+ 62
+55
+10
+3.285708
+20
+5.769234
+30
+14.065386
+11
+-2.787737
+21
+5.738503
+31
+7.699381
+12
+1.848208
+22
+-6.288834
+32
+6.238558
+13
+1.848208
+23
+-6.288834
+33
+6.238558
+0
+3DFACE
+8
+0
+ 62
+55
+10
+6.484152
+20
+5.799973
+30
+5.431395
+11
+1.848208
+21
+-6.288834
+31
+6.238558
+12
+6.484152
+22
+-6.258095
+32
+5.104565
+13
+6.484152
+23
+-6.258095
+33
+5.104565
+0
+3DFACE
+8
+0
+ 62
+55
+10
+6.484152
+20
+5.799973
+30
+5.431395
+11
+3.285708
+21
+5.769234
+31
+14.065386
+12
+1.848208
+22
+-6.288834
+32
+6.238558
+13
+1.848208
+23
+-6.288834
+33
+6.238558
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster_slots.c b/hacks/glx/toaster_slots.c
new file mode 100644
index 0000000..aaf7b23
--- /dev/null
+++ b/hacks/glx/toaster_slots.c
@@ -0,0 +1,106 @@
+/* Generated from "toaster_slots.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_slots_data[] = {
+ 0.999485,-0.028052,-0.015598,-0.18331,-0.276766,0.209005,
+ 0.998257,-0.059011,0,-0.196507,-0.5,0.123502,
+ 0.99963,-0.0187,-0.019753,-0.196507,-0.5,-0.235113,
+ 0.999546,0,-0.030136,-0.18331,0,0.235113,
+ 0.999485,-0.028052,-0.015598,-0.18331,-0.276766,0.209005,
+ 0.99963,-0.0187,-0.019753,-0.196507,-0.5,-0.235113,
+ 0,1,0,-0.059418,-0.5,0.123502,
+ 0,1,0,-0.058641,-0.5,-0.235113,
+ 0,1,0,-0.196507,-0.5,-0.235113,
+ 0,1,0,-0.059418,-0.5,0.123502,
+ 0,1,0,-0.196507,-0.5,-0.235113,
+ 0,1,0,-0.196507,-0.5,0.123502,
+ 0.998257,0.059011,0,-0.196507,0.5,0.123502,
+ 0.999485,0.028052,-0.015598,-0.18331,0.276766,0.209005,
+ 0.99963,0.0187,-0.019753,-0.196507,0.5,-0.235113,
+ 0.99963,0.0187,-0.019753,-0.196507,0.5,-0.235113,
+ 0.999485,0.028052,-0.015598,-0.18331,0.276766,0.209005,
+ 0.999546,0,-0.030136,-0.18331,0,0.235113,
+ 0,-1,0,-0.196507,0.5,0.123502,
+ 0,-1,0,-0.196507,0.5,-0.235113,
+ 0,-1,0,-0.059418,0.5,0.123502,
+ 0.99963,0.0187,-0.019753,-0.196507,0.5,-0.235113,
+ 0.999546,0,-0.030136,-0.18331,0,0.235113,
+ 0.99963,-0.0187,-0.019753,-0.196507,-0.5,-0.235113,
+ -0.999997,-0.001316,-0.001828,-0.058641,0.5,-0.235113,
+ -0.999998,0,-0.002211,-0.058641,0,0.235113,
+ -0.999994,-0.001974,-0.002741,-0.059418,0.276766,0.209005,
+ -0.999994,0.001974,-0.002741,-0.059418,-0.276766,0.209005,
+ -0.999997,0.001316,-0.001828,-0.058641,-0.5,-0.235113,
+ -0.999997,0.00083,-0.002166,-0.059418,-0.5,0.123502,
+ -0.999998,0,-0.002211,-0.058641,0,0.235113,
+ -0.999997,0.001316,-0.001828,-0.058641,-0.5,-0.235113,
+ -0.999994,0.001974,-0.002741,-0.059418,-0.276766,0.209005,
+ -0.999997,-0.001316,-0.001828,-0.058641,0.5,-0.235113,
+ -0.999997,0.001316,-0.001828,-0.058641,-0.5,-0.235113,
+ -0.999998,0,-0.002211,-0.058641,0,0.235113,
+ 0,0,1,-0.058641,-0.5,-0.235113,
+ 0,0,1,-0.058641,0.5,-0.235113,
+ 0,0,1,-0.196507,0.5,-0.235113,
+ 0,0,1,-0.058641,-0.5,-0.235113,
+ 0,0,1,-0.196507,0.5,-0.235113,
+ 0,0,1,-0.196507,-0.5,-0.235113,
+ 0,-1,0,-0.059418,0.5,0.123502,
+ 0,-1,0,-0.196507,0.5,-0.235113,
+ 0,-1,0,-0.058641,0.5,-0.235113,
+ -0.999997,-0.001316,-0.001828,-0.058641,0.5,-0.235113,
+ -0.999994,-0.001974,-0.002741,-0.059418,0.276766,0.209005,
+ -0.999997,-0.00083,-0.002166,-0.059418,0.5,0.123502,
+ 0.999997,-0.001316,-0.001828,0.058641,0.5,-0.235113,
+ 0.999998,0,-0.002211,0.058641,0,0.235113,
+ 0.999997,0.001316,-0.001828,0.058641,-0.5,-0.235113,
+ 0.999994,0.001974,-0.002741,0.059418,-0.276766,0.209005,
+ 0.999997,0.00083,-0.002166,0.059418,-0.5,0.123502,
+ 0.999997,0.001316,-0.001828,0.058641,-0.5,-0.235113,
+ 0.999997,-0.001316,-0.001828,0.058641,0.5,-0.235113,
+ 0.999994,-0.001974,-0.002741,0.059418,0.276766,0.209005,
+ 0.999998,0,-0.002211,0.058641,0,0.235113,
+ 0.999998,0,-0.002211,0.058641,0,0.235113,
+ 0.999994,0.001974,-0.002741,0.059418,-0.276766,0.209005,
+ 0.999997,0.001316,-0.001828,0.058641,-0.5,-0.235113,
+ -0.99963,0.0187,-0.019753,0.196507,0.5,-0.235113,
+ -0.999485,0.028052,-0.015598,0.18331,0.276766,0.209005,
+ -0.998257,0.059011,0,0.196507,0.5,0.123502,
+ -0.999546,0,-0.030136,0.18331,0,0.235113,
+ -0.99963,-0.0187,-0.019753,0.196507,-0.5,-0.235113,
+ -0.999485,-0.028052,-0.015598,0.18331,-0.276766,0.209005,
+ 0,1,0,0.059418,-0.5,0.123502,
+ 0,1,0,0.196507,-0.5,-0.235113,
+ 0,1,0,0.058641,-0.5,-0.235113,
+ -0.999485,-0.028052,-0.015598,0.18331,-0.276766,0.209005,
+ -0.99963,-0.0187,-0.019753,0.196507,-0.5,-0.235113,
+ -0.998257,-0.059011,0,0.196507,-0.5,0.123502,
+ 0,-1,0,0.059418,0.5,0.123502,
+ 0,-1,0,0.196507,0.5,-0.235113,
+ 0,-1,0,0.196507,0.5,0.123502,
+ 0,1,0,0.196507,-0.5,0.123502,
+ 0,1,0,0.196507,-0.5,-0.235113,
+ 0,1,0,0.059418,-0.5,0.123502,
+ -0.99963,0.0187,-0.019753,0.196507,0.5,-0.235113,
+ -0.999546,0,-0.030136,0.18331,0,0.235113,
+ -0.999485,0.028052,-0.015598,0.18331,0.276766,0.209005,
+ -0.99963,0.0187,-0.019753,0.196507,0.5,-0.235113,
+ -0.99963,-0.0187,-0.019753,0.196507,-0.5,-0.235113,
+ -0.999546,0,-0.030136,0.18331,0,0.235113,
+ 0,0,1,0.196507,0.5,-0.235113,
+ 0,0,1,0.058641,-0.5,-0.235113,
+ 0,0,1,0.196507,-0.5,-0.235113,
+ 0,0,1,0.196507,0.5,-0.235113,
+ 0,0,1,0.058641,0.5,-0.235113,
+ 0,0,1,0.058641,-0.5,-0.235113,
+ 0.999997,-0.00083,-0.002166,0.059418,0.5,0.123502,
+ 0.999994,-0.001974,-0.002741,0.059418,0.276766,0.209005,
+ 0.999997,-0.001316,-0.001828,0.058641,0.5,-0.235113,
+ 0,-1,0,0.059418,0.5,0.123502,
+ 0,-1,0,0.058641,0.5,-0.235113,
+ 0,-1,0,0.196507,0.5,-0.235113
+};
+static const struct gllist toaster_slots_frame = { GL_N3F_V3F, GL_TRIANGLES, 96, toaster_slots_data, 0 };
+const struct gllist *toaster_slots = &toaster_slots_frame;
diff --git a/hacks/glx/toaster_slots.dxf b/hacks/glx/toaster_slots.dxf
new file mode 100644
index 0000000..3f17b58
--- /dev/null
+++ b/hacks/glx/toaster_slots.dxf
@@ -0,0 +1,974 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-156.295180
+20
+-235.978112
+30
+178.203195
+11
+-167.546690
+21
+-426.312745
+31
+105.301157
+12
+-167.546690
+22
+-426.312745
+32
+-200.463355
+13
+-167.546690
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-156.295180
+20
+0.000001
+30
+200.463355
+11
+-156.295180
+21
+-235.978112
+31
+178.203195
+12
+-167.546690
+22
+-426.312745
+32
+-200.463355
+13
+-167.546690
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-50.661352
+20
+-426.312745
+30
+105.301157
+11
+-49.999118
+21
+-426.312745
+31
+-200.463355
+12
+-167.546690
+22
+-426.312745
+32
+-200.463355
+13
+-167.546690
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-50.661352
+20
+-426.312745
+30
+105.301157
+11
+-167.546690
+21
+-426.312745
+31
+-200.463355
+12
+-167.546690
+22
+-426.312745
+32
+105.301157
+13
+-167.546690
+23
+-426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-167.546690
+20
+426.312745
+30
+105.301157
+11
+-156.295180
+21
+235.978127
+31
+178.203195
+12
+-167.546690
+22
+426.312745
+32
+-200.463355
+13
+-167.546690
+23
+426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-167.546690
+20
+426.312745
+30
+-200.463355
+11
+-156.295180
+21
+235.978127
+31
+178.203195
+12
+-156.295180
+22
+0.000001
+32
+200.463355
+13
+-156.295180
+23
+0.000001
+33
+200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-167.546690
+20
+426.312745
+30
+105.301157
+11
+-167.546690
+21
+426.312745
+31
+-200.463355
+12
+-50.661352
+22
+426.312745
+32
+105.301157
+13
+-50.661352
+23
+426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-167.546690
+20
+426.312745
+30
+-200.463355
+11
+-156.295180
+21
+0.000001
+31
+200.463355
+12
+-167.546690
+22
+-426.312745
+32
+-200.463355
+13
+-167.546690
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.999118
+20
+426.312745
+30
+-200.463355
+11
+-49.999118
+21
+0.000001
+31
+200.463355
+12
+-50.661352
+22
+235.978127
+32
+178.203195
+13
+-50.661352
+23
+235.978127
+33
+178.203195
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-50.661352
+20
+-235.978112
+30
+178.203195
+11
+-49.999118
+21
+-426.312745
+31
+-200.463355
+12
+-50.661352
+22
+-426.312745
+32
+105.301157
+13
+-50.661352
+23
+-426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.999118
+20
+0.000001
+30
+200.463355
+11
+-49.999118
+21
+-426.312745
+31
+-200.463355
+12
+-50.661352
+22
+-235.978112
+32
+178.203195
+13
+-50.661352
+23
+-235.978112
+33
+178.203195
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.999118
+20
+426.312745
+30
+-200.463355
+11
+-49.999118
+21
+-426.312745
+31
+-200.463355
+12
+-49.999118
+22
+0.000001
+32
+200.463355
+13
+-49.999118
+23
+0.000001
+33
+200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.999118
+20
+-426.312745
+30
+-200.463355
+11
+-49.999118
+21
+426.312745
+31
+-200.463355
+12
+-167.546690
+22
+426.312745
+32
+-200.463355
+13
+-167.546690
+23
+426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.999118
+20
+-426.312745
+30
+-200.463355
+11
+-167.546690
+21
+426.312745
+31
+-200.463355
+12
+-167.546690
+22
+-426.312745
+32
+-200.463355
+13
+-167.546690
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-50.661352
+20
+426.312745
+30
+105.301157
+11
+-167.546690
+21
+426.312745
+31
+-200.463355
+12
+-49.999118
+22
+426.312745
+32
+-200.463355
+13
+-49.999118
+23
+426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+-49.999118
+20
+426.312745
+30
+-200.463355
+11
+-50.661352
+21
+235.978127
+31
+178.203195
+12
+-50.661352
+22
+426.312745
+32
+105.301157
+13
+-50.661352
+23
+426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.999110
+20
+426.312745
+30
+-200.463355
+11
+49.999110
+21
+0.000001
+31
+200.463355
+12
+49.999110
+22
+-426.312745
+32
+-200.463355
+13
+49.999110
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+50.661348
+20
+-235.978112
+30
+178.203195
+11
+50.661348
+21
+-426.312745
+31
+105.301157
+12
+49.999110
+22
+-426.312745
+32
+-200.463355
+13
+49.999110
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.999110
+20
+426.312745
+30
+-200.463355
+11
+50.661348
+21
+235.978127
+31
+178.203195
+12
+49.999110
+22
+0.000001
+32
+200.463355
+13
+49.999110
+23
+0.000001
+33
+200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+49.999110
+20
+0.000001
+30
+200.463355
+11
+50.661348
+21
+-235.978112
+31
+178.203195
+12
+49.999110
+22
+-426.312745
+32
+-200.463355
+13
+49.999110
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+167.546690
+20
+426.312745
+30
+-200.463355
+11
+156.295151
+21
+235.978127
+31
+178.203195
+12
+167.546690
+22
+426.312745
+32
+105.301157
+13
+167.546690
+23
+426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+156.295151
+20
+0.000001
+30
+200.463355
+11
+167.546690
+21
+-426.312745
+31
+-200.463355
+12
+156.295151
+22
+-235.978112
+32
+178.203195
+13
+156.295151
+23
+-235.978112
+33
+178.203195
+0
+3DFACE
+8
+0
+ 62
+55
+10
+50.661348
+20
+-426.312745
+30
+105.301157
+11
+167.546690
+21
+-426.312745
+31
+-200.463355
+12
+49.999110
+22
+-426.312745
+32
+-200.463355
+13
+49.999110
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+156.295151
+20
+-235.978112
+30
+178.203195
+11
+167.546690
+21
+-426.312745
+31
+-200.463355
+12
+167.546690
+22
+-426.312745
+32
+105.301157
+13
+167.546690
+23
+-426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+50.661348
+20
+426.312745
+30
+105.301157
+11
+167.546690
+21
+426.312745
+31
+-200.463355
+12
+167.546690
+22
+426.312745
+32
+105.301157
+13
+167.546690
+23
+426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+167.546690
+20
+-426.312745
+30
+105.301157
+11
+167.546690
+21
+-426.312745
+31
+-200.463355
+12
+50.661348
+22
+-426.312745
+32
+105.301157
+13
+50.661348
+23
+-426.312745
+33
+105.301157
+0
+3DFACE
+8
+0
+ 62
+55
+10
+167.546690
+20
+426.312745
+30
+-200.463355
+11
+156.295151
+21
+0.000001
+31
+200.463355
+12
+156.295151
+22
+235.978127
+32
+178.203195
+13
+156.295151
+23
+235.978127
+33
+178.203195
+0
+3DFACE
+8
+0
+ 62
+55
+10
+167.546690
+20
+426.312745
+30
+-200.463355
+11
+167.546690
+21
+-426.312745
+31
+-200.463355
+12
+156.295151
+22
+0.000001
+32
+200.463355
+13
+156.295151
+23
+0.000001
+33
+200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+167.546690
+20
+426.312745
+30
+-200.463355
+11
+49.999110
+21
+-426.312745
+31
+-200.463355
+12
+167.546690
+22
+-426.312745
+32
+-200.463355
+13
+167.546690
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+167.546690
+20
+426.312745
+30
+-200.463355
+11
+49.999110
+21
+426.312745
+31
+-200.463355
+12
+49.999110
+22
+-426.312745
+32
+-200.463355
+13
+49.999110
+23
+-426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+50.661348
+20
+426.312745
+30
+105.301157
+11
+50.661348
+21
+235.978127
+31
+178.203195
+12
+49.999110
+22
+426.312745
+32
+-200.463355
+13
+49.999110
+23
+426.312745
+33
+-200.463355
+0
+3DFACE
+8
+0
+ 62
+55
+10
+50.661348
+20
+426.312745
+30
+105.301157
+11
+49.999110
+21
+426.312745
+31
+-200.463355
+12
+167.546690
+22
+426.312745
+32
+-200.463355
+13
+167.546690
+23
+426.312745
+33
+-200.463355
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/toaster_wing.c b/hacks/glx/toaster_wing.c
new file mode 100644
index 0000000..48ce601
--- /dev/null
+++ b/hacks/glx/toaster_wing.c
@@ -0,0 +1,43 @@
+/* Generated from "toaster_wing.dxf" on Aug-22-2014.
+ Smoothed vertex normals. Normalized to unit bounding box.
+ */
+
+#include "gllist.h"
+
+static const float toaster_wing_data[] = {
+ -0.0018,-0.000471,-0.999998,0.5,-0.248054,-0.034832,
+ -0.002699,-0.000707,-0.999996,-0.5,0.248054,-0.032483,
+ -0.001465,-0.000586,-0.999999,0.399306,0.003521,-0.034832,
+ 0.301513,0.649532,0.697996,0.399306,0.003521,-0.034832,
+ 0.159005,0.609129,0.776968,-0.5,0.248054,-0.032483,
+ 0.244597,0.610231,0.753518,0.3827,-0.039065,0.01197,
+ 0.172439,-0.122105,0.977423,0.5,-0.248054,-0.034832,
+ 0.064485,-0.135273,0.988708,0.3827,-0.039065,0.01197,
+ -0.040003,-0.177228,0.983357,-0.466673,-0.094003,-0.032483,
+ -0.0018,-0.000471,-0.999998,0.5,-0.248054,-0.034832,
+ -0.002468,-0.00024,-0.999997,-0.466673,-0.094003,-0.032483,
+ -0.002699,-0.000707,-0.999996,-0.5,0.248054,-0.032483,
+ 0.064485,-0.135273,0.988708,0.3827,-0.039065,0.01197,
+ -0.051938,-0.00506,0.998637,-0.5,0.248054,-0.032483,
+ -0.040003,-0.177228,0.983357,-0.466673,-0.094003,-0.032483,
+ 0.064485,-0.135273,0.988708,0.3827,-0.039065,0.01197,
+ -0.031687,-0.285224,0.957937,-0.482606,0.13385,0.034832,
+ -0.040003,-0.177228,0.983357,-0.466673,-0.094003,-0.032483,
+ 0.370589,0,0.928797,0.5,-0.065307,-0.034832,
+ 0.064485,-0.135273,0.988708,0.3827,-0.039065,0.01197,
+ 0.172439,-0.122105,0.977423,0.5,-0.248054,-0.034832,
+ 0.244597,0.610231,0.753518,0.3827,-0.039065,0.01197,
+ 0.159005,0.609129,0.776968,-0.5,0.248054,-0.032483,
+ 0.125848,0.517903,0.846131,-0.482606,0.13385,0.034832,
+ -0.772167,-0.309062,-0.555193,0.399306,0.003521,-0.034832,
+ -0.772167,-0.309062,-0.555193,0.5,-0.248054,-0.034832,
+ -0.772167,-0.309062,-0.555193,0.3827,-0.039065,0.01197,
+ 0.408832,0.598113,0.689287,0.5,-0.065307,-0.034832,
+ 0.301513,0.649532,0.697996,0.399306,0.003521,-0.034832,
+ 0.244597,0.610231,0.753518,0.3827,-0.039065,0.01197,
+ -0.0018,-0.000471,-0.999998,0.5,-0.248054,-0.034832,
+ -0.001465,-0.000586,-0.999999,0.399306,0.003521,-0.034832,
+ 0,0,-1,0.5,-0.065307,-0.034832
+};
+static const struct gllist toaster_wing_frame = { GL_N3F_V3F, GL_TRIANGLES, 33, toaster_wing_data, 0 };
+const struct gllist *toaster_wing = &toaster_wing_frame;
diff --git a/hacks/glx/toaster_wing.dxf b/hacks/glx/toaster_wing.dxf
new file mode 100644
index 0000000..c5166a3
--- /dev/null
+++ b/hacks/glx/toaster_wing.dxf
@@ -0,0 +1,344 @@
+0
+SECTION
+2
+HEADER
+0
+ENDSEC
+0
+SECTION
+2
+ENTITIES
+0
+3DFACE
+8
+0
+ 62
+55
+10
+447.039068
+20
+-221.779630
+30
+-31.142678
+11
+-447.039098
+21
+221.779630
+31
+-29.042747
+12
+357.011020
+22
+3.148119
+32
+-31.142678
+13
+357.011020
+23
+3.148119
+33
+-31.142678
+0
+3DFACE
+8
+0
+ 62
+55
+10
+357.011020
+20
+3.148119
+30
+-31.142678
+11
+-447.039098
+21
+221.779630
+31
+-29.042747
+12
+342.163920
+22
+-34.927092
+32
+10.702347
+13
+342.163920
+23
+-34.927092
+33
+10.702347
+0
+3DFACE
+8
+0
+ 62
+55
+10
+447.039068
+20
+-221.779630
+30
+-31.142678
+11
+342.163920
+21
+-34.927092
+31
+10.702347
+12
+-417.241931
+22
+-84.046043
+32
+-29.042747
+13
+-417.241931
+23
+-84.046043
+33
+-29.042747
+0
+3DFACE
+8
+0
+ 62
+55
+10
+447.039068
+20
+-221.779630
+30
+-31.142678
+11
+-417.241931
+21
+-84.046043
+31
+-29.042747
+12
+-447.039098
+22
+221.779630
+32
+-29.042747
+13
+-447.039098
+23
+221.779630
+33
+-29.042747
+0
+3DFACE
+8
+0
+ 62
+55
+10
+342.163920
+20
+-34.927092
+30
+10.702347
+11
+-447.039098
+21
+221.779630
+31
+-29.042747
+12
+-417.241931
+22
+-84.046043
+32
+-29.042747
+13
+-417.241931
+23
+-84.046043
+33
+-29.042747
+0
+3DFACE
+8
+0
+ 62
+55
+10
+342.163920
+20
+-34.927092
+30
+10.702347
+11
+-431.487292
+21
+119.671926
+31
+31.142659
+12
+-417.241931
+22
+-84.046043
+32
+-29.042747
+13
+-417.241931
+23
+-84.046043
+33
+-29.042747
+0
+3DFACE
+8
+0
+ 62
+55
+10
+447.039068
+20
+-58.389261
+30
+-31.142678
+11
+342.163920
+21
+-34.927092
+31
+10.702347
+12
+447.039068
+22
+-221.779630
+32
+-31.142678
+13
+447.039068
+23
+-221.779630
+33
+-31.142678
+0
+3DFACE
+8
+0
+ 62
+55
+10
+342.163920
+20
+-34.927092
+30
+10.702347
+11
+-447.039098
+21
+221.779630
+31
+-29.042747
+12
+-431.487292
+22
+119.671926
+32
+31.142659
+13
+-431.487292
+23
+119.671926
+33
+31.142659
+0
+3DFACE
+8
+0
+ 62
+55
+10
+357.011020
+20
+3.148119
+30
+-31.142678
+11
+447.039068
+21
+-221.779630
+31
+-31.142678
+12
+342.163920
+22
+-34.927092
+32
+10.702347
+13
+342.163920
+23
+-34.927092
+33
+10.702347
+0
+3DFACE
+8
+0
+ 62
+55
+10
+447.039068
+20
+-58.389261
+30
+-31.142678
+11
+357.011020
+21
+3.148119
+31
+-31.142678
+12
+342.163920
+22
+-34.927092
+32
+10.702347
+13
+342.163920
+23
+-34.927092
+33
+10.702347
+0
+3DFACE
+8
+0
+ 62
+55
+10
+447.039068
+20
+-221.779630
+30
+-31.142678
+11
+357.011020
+21
+3.148119
+31
+-31.142678
+12
+447.039068
+22
+-58.389261
+32
+-31.142678
+13
+447.039068
+23
+-58.389261
+33
+-31.142678
+0
+ENDSEC
+0
+EOF
diff --git a/hacks/glx/topblock.c b/hacks/glx/topblock.c
new file mode 100644
index 0000000..9161d38
--- /dev/null
+++ b/hacks/glx/topblock.c
@@ -0,0 +1,883 @@
+/* topblock, Copyright (c) 2006-2012 rednuht <topblock.xscreensaver@jumpstation.co.uk>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ *
+ *
+
+topBlock - a simple openGL 3D hack of falling blocks
+based on jwz's dangerball hack
+
+The proporations of the blocks and their features is not even close to the commercial building block products offered by a variety companies.
+
+information on this hack might be found at
+http://www.jumpstation.co.uk/xscreensaver/topblock/
+
+History
+25/02/2006 v1.0 release
+29/04/2006 v1.11 updated to better fit with xscreensaver v5
+ colors defaults to 7 (no black)
+19/06/2006 v1.2 fixed dropSpeed = 7 bug, added gltrackball support and some code neatening, thanks to Valdis Kletnieks and JWZ for their input.
+*/
+
+#include <math.h>
+
+# define release_topBlock 0
+
+#define DEFAULTS "*delay: 10000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "topblock.h"
+#include "sphere.h"
+#include "tube.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#ifndef HAVE_JWXYZ
+# include <GL/glu.h>
+#endif
+
+typedef struct
+{
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ GLfloat rotateSpeed;
+ GLfloat dropSpeed;
+ int maxFalling;
+ int resolution;
+ Bool button_down_p;
+ int numFallingBlocks;
+ GLfloat highest,highestFalling;
+ GLfloat eyeLine,eyeX,eyeY,eyeZ;
+ int carpetWidth, carpetLength;
+ int followMode;
+ GLfloat followRadius,followAngle;
+ int plusheight;
+ GLuint carpet;
+ GLuint block;
+ int carpet_polys, block_polys;
+ NODE *blockNodeRoot;
+ NODE *blockNodeFollow;
+ GLfloat rotation;
+} topBlockSTATE;
+
+/* parameter vars */
+static Bool override;
+static Bool rotate;
+static Bool follow;
+static Bool drawCarpet;
+static Bool drawBlob;
+static Bool drawNipples;
+static GLfloat rotateSpeed;
+static GLfloat camX;
+static GLfloat camY;
+static GLfloat camZ;
+static GLfloat dropSpeed;
+static int maxFalling;
+static int maxColors;
+static int size;
+static int spawn;
+static int resolution;
+
+static XrmOptionDescRec opts[] = {
+ { "-size", ".size", XrmoptionSepArg, 0 },
+ { "-spawn", ".spawn", XrmoptionSepArg, 0 },
+ { "-camX", ".camX", XrmoptionSepArg, 0 },
+ { "-camY", ".camY", XrmoptionSepArg, 0 },
+ { "-camZ", ".camZ", XrmoptionSepArg, 0 },
+ { "+rotate", ".rotate", XrmoptionNoArg, "False" },
+ { "-rotate", ".rotate", XrmoptionNoArg, "True" },
+ { "+carpet", ".carpet", XrmoptionNoArg, "False" },
+ { "+nipples", ".nipples", XrmoptionNoArg, "False" },
+ { "-blob", ".blob", XrmoptionNoArg, "True" },
+ { "-rotateSpeed", ".rotateSpeed", XrmoptionSepArg, 0 },
+ { "-follow", ".follow", XrmoptionNoArg, "True" },
+ { "-maxFalling", ".maxFalling", XrmoptionSepArg, 0 },
+ { "-resolution", ".resolution", XrmoptionSepArg, 0 },
+ { "-maxColors", ".maxColors", XrmoptionSepArg, 0 },
+ { "-dropSpeed", ".dropSpeed", XrmoptionSepArg, 0 },
+ { "-override", ".override", XrmoptionNoArg, "True" },
+};
+
+#define DEF_OVERRIDE "False"
+#define DEF_ROTATE "True"
+#define DEF_FOLLOW "False"
+#define DEF_CARPET "True"
+#define DEF_BLOB "False"
+#define DEF_NIPPLES "True"
+#define DEF_ROTATE_SPEED "10"
+#define DEF_MAX_FALLING "500"
+#define DEF_MAX_COLORS "7"
+#define DEF_SIZE "2"
+#define DEF_SPAWN "50"
+#define DEF_RESOLUTION "4"
+#define DEF_CAM_X "1"
+#define DEF_CAM_Y "20"
+#define DEF_CAM_Z "25"
+#define DEF_DROP_SPEED "4"
+
+static argtype vars[] = {
+ {&override, "override", "Override", DEF_OVERRIDE, t_Bool},
+ {&rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+ {&drawCarpet, "carpet", "Carpet", DEF_CARPET, t_Bool},
+ {&drawNipples, "nipples", "Nipples", DEF_NIPPLES, t_Bool},
+ {&drawBlob, "blob", "Blob", DEF_BLOB, t_Bool},
+ {&rotateSpeed, "rotateSpeed", "RotateSpeed", DEF_ROTATE_SPEED, t_Float},
+ {&follow, "follow", "Follow", DEF_FOLLOW, t_Bool},
+ {&camX, "camX", "camX", DEF_CAM_X, t_Float},
+ {&camY, "camY", "camY", DEF_CAM_Y, t_Float},
+ {&camZ, "camZ", "camZ", DEF_CAM_Z, t_Float},
+ {&size, "size", "size", DEF_SIZE, t_Int},
+ {&spawn, "spawn", "spawn", DEF_SPAWN, t_Int},
+ {&maxFalling, "maxFalling", "maxFalling", DEF_MAX_FALLING, t_Int},
+ {&resolution, "resolution", "resolution", DEF_RESOLUTION, t_Int},
+ {&maxColors, "maxColors", "maxColors", DEF_MAX_COLORS, t_Int},
+ {&dropSpeed, "dropSpeed", "DropSpeed", DEF_DROP_SPEED, t_Float},
+};
+
+static topBlockSTATE *tbs = NULL;
+
+static ModeSpecOpt topBlock_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+/* Window management, etc */
+ENTRYPOINT void
+reshape_topBlock (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width*1.5;
+ y = -height*0.2;
+ h = height / (GLfloat) width;
+ }
+ glViewport (0, y, (GLint) width, (GLint) height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (60.0, 1/h, 1.0, 1000.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+/* clean up on exit, not required ... */
+ENTRYPOINT void
+free_topBlock(ModeInfo *mi)
+{
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+ NODE *llCurrent, *llOld;
+ llCurrent = tb->blockNodeRoot;
+ while (llCurrent != NULL) {
+ llOld = llCurrent;
+ llCurrent = llCurrent->next;
+ free(llOld);
+ }
+}
+
+/* setup */
+ENTRYPOINT void
+init_topBlock (ModeInfo *mi)
+{
+ topBlockSTATE *tb;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ MI_INIT (mi, tbs);
+
+ tb = &tbs[MI_SCREEN(mi)];
+
+ tb->glx_context = init_GL(mi);
+
+ reshape_topBlock (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+/* if (wire) { drawNipples=False; }*/
+ tb->numFallingBlocks=0;
+
+ if (size>10) { size = 10; }
+ if (size<1) { size = 2; }
+ tb->carpetWidth = 8 * size;
+ tb->carpetLength = tb->carpetWidth;
+
+ tb->maxFalling = maxFalling;
+ tb->maxFalling*=size;
+
+ if (spawn<4) { spawn=4; }
+ if (spawn>1000) { spawn=1000; }
+
+ tb->rotateSpeed = rotateSpeed;
+ if (tb->rotateSpeed<1) {tb->rotateSpeed=1; }
+ if (tb->rotateSpeed>1000) {tb->rotateSpeed=1000;}
+ tb->rotateSpeed /= 100;
+
+ tb->resolution = resolution;
+ if (tb->resolution<4) {tb->resolution=4;}
+ if (tb->resolution>20) {tb->resolution=20;}
+ tb->resolution*=2;
+
+ if (maxColors<1) {maxColors=1;}
+ if (maxColors>8) {maxColors=8;}
+
+ tb->dropSpeed = dropSpeed;
+ if (tb->dropSpeed<1) {tb->dropSpeed=1;}
+ if (tb->dropSpeed>9) {tb->dropSpeed=9;} /* 10+ produces blocks that can pass through each other */
+
+ tb->dropSpeed = 80/tb->dropSpeed;
+ tb->dropSpeed = (blockHeight/tb->dropSpeed);
+
+ reshape_topBlock (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ glClearDepth(1.0f);
+ if (!wire) {
+ GLfloat pos[4] = {10.0, 10.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.1, 0.1, 0.1, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_DEPTH_TEST);
+ glDisable(GL_CULL_FACE); /* all objects exhibit a reverse side */
+ glCullFace(GL_BACK);
+
+ if (drawBlob) {
+ buildBlobBlock(mi);
+ } else {
+ buildBlock(mi); /* build the display list holding the simple block */
+ }
+ buildCarpet(mi); /* build the base */
+ tb->highest=0;
+ tb->highestFalling=0;
+ tb->eyeLine=tb->highest;
+ tb->eyeX=0;
+ tb->eyeY=0;
+ tb->eyeZ=0;
+ tb->followMode=0;
+ if (follow) {
+ tb->plusheight=100;
+ camZ=camZ-60;
+ } else {
+ tb->rotation=random() % 360;
+ tb->eyeY=10;
+ tb->plusheight=30;
+ }
+ tb->followRadius=0;
+ /* override camera settings */
+ if (override) {
+ tb->plusheight=100;
+ drawCarpet=False;
+ camX=0;
+ camY=1;
+ camZ=0;
+ tb->eyeX=-1;
+ tb->eyeY=20;
+ tb->eyeZ=0;
+ }
+ tb->trackball = gltrackball_init (False);
+}
+
+/* provides the per frame entertainment */
+ENTRYPOINT void
+draw_topBlock (ModeInfo *mi)
+{
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ NODE *llCurrent;
+ NODE *llNode;
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+ GLfloat spcN1x,spcN1y,spcN2x,spcN2y;
+ GLfloat spcC1x,spcC1y,spcC2x,spcC2y;
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat color[4];
+
+ if (!tb->glx_context)
+ return;
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tb->glx_context));
+ mi->polygon_count = 0;
+
+ generateNewBlock(mi);
+
+ if (rotate && (!tb->button_down_p)) { tb->rotation += tb->rotateSpeed; }
+ if (tb->rotation>=360) { tb->rotation=tb->rotation-360; }
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* clear current */
+ glLoadIdentity(); /* resets directions, do it every time ! */
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ if (!follow) {
+ if (tb->highest>tb->eyeLine) { tb->eyeLine+=((tb->highest-tb->eyeLine)/100); } /* creates a smooth camera transition */
+ gluLookAt(camX, camY+tb->eyeLine, camZ, tb->eyeX, tb->eyeY+tb->eyeLine, tb->eyeZ, 0.0, 1.0, 0.0); /* setup viewer, xyz cam, xyz looking at and where is up normaly 0,1,0 */
+ glRotatef(90, 1.0, 0.0, 0.0); /* x axis */
+ } else {
+ glRotatef(90, 0.0, 0.0, 1.0); /* z axis */
+ followBlock(mi);
+ }
+
+ /* Rotate the scene around a point that's a little higher up. */
+ glTranslatef (0, 0, -5);
+ gltrackball_rotate (tb->trackball);
+ glTranslatef (0, 0, 5);
+
+ /* rotate the world */
+ glRotatef(tb->rotation, 0.0, 0.0, 1.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ llCurrent = tb->blockNodeRoot;
+ if (drawCarpet) {
+ /* center carpet */
+ glTranslatef(0.0-(tb->carpetWidth/2),0.0-(tb->carpetLength/2),0.0);
+ glCallList(tb->carpet);
+ mi->polygon_count += tb->carpet_polys;
+ glTranslatef(0.0+(tb->carpetWidth/2),0.0+(tb->carpetLength/2),0.0);
+ glTranslatef(0.0,0.0,-0.55);
+ }
+ tb->highestFalling=0;
+ while (llCurrent != NULL) { /* for each block */
+ glPushMatrix(); /* save state */
+ /* set color */
+ switch (llCurrent->color) {
+ case 0:
+ color[0] = 1.0f;
+ color[1] = 0.0f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+ break;
+ case 1:
+ color[0] = 0.0f;
+ color[1] = 1.0f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+ break;
+ case 2:
+ color[0] = 0.0f;
+ color[1] = 0.0f;
+ color[2] = 1.0f;
+ color[3] = 1.0f;
+ break;
+ case 3:
+ color[0] = 0.95f;
+ color[1] = 0.95f;
+ color[2] = 0.95f;
+ color[3] = 1.0f;
+ break;
+ case 4:
+ color[0] = 1.0f;
+ color[1] = 0.5f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+ break;
+ case 5:
+ color[0] = 1.0f;
+ color[1] = 1.0f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+ break;
+ case 6:
+ color[0] = 0.5f;
+ color[1] = 0.5f;
+ color[2] = 0.5f;
+ color[3] = 1.0f;
+ break;
+ case 7:
+ color[0] = 0.05f;
+ color[1] = 0.05f;
+ color[2] = 0.05f;
+ color[3] = 1.0f;
+ break;
+ }
+ if (wire) { glColor3fv(color); }
+ else { glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); }
+
+ if (llCurrent->falling==1) {
+ spcC2x = 0;
+ spcC2y = 0;
+ spcN2x = 0;
+ spcN2y = 0;
+ if (llCurrent->height>tb->highestFalling) {tb->highestFalling=llCurrent->height;}
+ /* all blocks fall at the same rate to avoid mid air collisions */
+ llCurrent->height-=tb->dropSpeed;
+ if (llCurrent->height<=0) {
+ llCurrent->falling=0;
+ if (tb->highest==0) {
+ tb->highest+=blockHeight;
+ }
+ }
+ if ( (llCurrent->height<=tb->highest+1) && (llCurrent->falling==1) ) {
+ /* check for collision */
+ llNode = tb->blockNodeRoot;
+ spcC1x = llCurrent->x;
+ spcC1y = llCurrent->y;
+ switch(llCurrent->rotation) {
+ case getOrientation(0):
+ spcC2x = spcC1x;
+ spcC2y = spcC1y-2;
+ break;
+ case getOrientation(1):
+ spcC2x = spcC1x+2;
+ spcC2y = spcC1y;
+ break;
+ case getOrientation(2):
+ spcC2x = spcC1x;
+ spcC2y = spcC1y+2;
+ break;
+ case getOrientation(3):
+ spcC2x = spcC1x-2;
+ spcC2y = spcC1y;
+ break;
+ }
+ while (llNode != NULL) {
+ if ( (llNode->falling==0) && (llCurrent->falling==1) ) {
+ spcN1x = llNode->x;
+ spcN1y = llNode->y;
+ switch(llNode->rotation) {
+ case getOrientation(0):
+ spcN2x = spcN1x;
+ spcN2y = spcN1y-2;
+ break;
+ case getOrientation(1):
+ spcN2x = spcN1x+2;
+ spcN2y = spcN1y;
+ break;
+ case getOrientation(2):
+ spcN2x = spcN1x;
+ spcN2y = spcN1y+2;
+ break;
+ case getOrientation(3):
+ spcN2x = spcN1x-2;
+ spcN2y = spcN1y;
+ break;
+ }
+ if (
+ ( (spcC1x==spcN1x) && (spcC1y==spcN1y) ) ||
+ ( (spcC1x==spcN2x) && (spcC1y==spcN2y) ) ||
+ ( (spcC2x==spcN2x) && (spcC2y==spcN2y) ) ||
+ ( (spcC2x==spcN1x) && (spcC2y==spcN1y) )
+ ){
+ if ( fabs(llCurrent->height-(llNode->height+blockHeight)) <= TOLERANCE) {
+
+ llCurrent->falling=0;
+ llCurrent->height=llNode->height+blockHeight; /* if this is missing then small errors build up until the model fails */
+ if ( fabs(llCurrent->height-tb->highest) <= TOLERANCE+blockHeight ) {
+ tb->highest+=blockHeight;
+ }
+ }
+ }
+ }
+ llNode=llNode->next;
+ }
+ }
+ }
+ /* set location in space */
+ glTranslatef(llCurrent->x,llCurrent->y,-llCurrent->height);
+ /* rotate */
+ glRotatef(llCurrent->rotation, 0.0f, 0.0f, 1.0f);
+ if ((tb->followMode==0) && (llCurrent->next==NULL)) {
+ tb->blockNodeFollow = llCurrent;
+ tb->followMode=1;
+ }
+ llCurrent = llCurrent->next;
+ /* draw */
+ glCallList(tb->block);
+ mi->polygon_count += tb->block_polys;
+ glPopMatrix(); /* restore state */
+ }
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ if (tb->highest>(5*tb->maxFalling)) { drawCarpet=False; }
+ glXSwapBuffers(dpy, window);
+}
+
+
+
+/* camera is in follow mode, work out where we should be looking */
+static void followBlock(ModeInfo *mi)
+{
+ GLfloat xLen,yLen,cx,cy,rangle,xTarget,yTarget;
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+ cx=0;cy=0;
+ if ((tb->blockNodeFollow!=NULL) && (tb->followMode==1)){
+
+ if (tb->highest>tb->eyeLine) { tb->eyeLine+= ((tb->highest-tb->eyeLine)/100); }
+ /*tb->blockNodeFollow->color=1; only noticable if you set the colors to 1 */
+
+ if (tb->blockNodeFollow->height > tb->eyeZ) { tb->eyeZ+= ((tb->blockNodeFollow->height - tb->eyeZ)/100); }
+ if (tb->blockNodeFollow->height < tb->eyeZ) { tb->eyeZ-= ((tb->eyeZ - tb->blockNodeFollow->height)/100); }
+
+
+ /* when the scene is rotated we need to know where the block is in the 2 dimensional coordinates of the carpet area
+ (see http://www.jumpstation.co.uk/rotation/)
+ */
+
+ if (tb->followRadius==0) {
+ xLen = tb->blockNodeFollow->x-cx;
+ yLen = tb->blockNodeFollow->y-cy;
+ tb->followRadius=sqrt( (xLen*xLen) + (yLen*yLen) );
+ tb->followAngle = (180/M_PI) * asin(xLen/tb->followRadius);
+ tb->followAngle = quadrantCorrection(tb->followAngle,(int)cx,(int)cy,(int)tb->blockNodeFollow->x,(int)tb->blockNodeFollow->y);
+ }
+ rangle = (tb->followAngle+tb->rotation) * M_PI /180;
+ xTarget = cos(rangle) * tb->followRadius + cx;
+ yTarget = sin(rangle) * tb->followRadius + cy;
+ if (tb->followAngle>360) { tb->followAngle=tb->followAngle-360; }
+
+ if (xTarget < tb->eyeX) { tb->eyeX-= ((tb->eyeX - xTarget)/100); }
+ if (xTarget > tb->eyeX) { tb->eyeX+= ((xTarget - tb->eyeX)/100); }
+
+ if (yTarget < tb->eyeY) { tb->eyeY-= ((tb->eyeY - yTarget)/100); }
+ if (yTarget > tb->eyeY) { tb->eyeY+= ((yTarget - tb->eyeY)/100); }
+ if (!tb->blockNodeFollow->falling) {
+ tb->followMode=0;
+ /*tb->blockNodeFollow->color=2; only noticable if you set the colors to 1 */
+ tb->followRadius=0;
+ }
+ }
+ gluLookAt(camX, camY, camZ-tb->eyeLine, tb->eyeX, tb->eyeY, -tb->eyeZ,-1.0,0.0,0.0);
+}
+
+/* each quater of the circle has to be adjusted for */
+static double quadrantCorrection(double angle,int cx,int cy,int x,int y)
+{
+ if ((x>=cx) && (y>=cy)) {
+ angle += (90-(angle-90) * 2);
+ } else if ((x>=cx) && (y<=cy)) {
+ angle += 90;
+ } else if ((x<=cx) && (y<=cy)) {
+ angle += 90;
+ } else if ((x<=cx) && (y>=cy)) {
+ angle += (90-(angle-90) * 2);
+ }
+ return(angle-180);
+}
+
+/* if random chance then create a new falling block */
+static void generateNewBlock(ModeInfo *mi)
+{
+ NODE *llCurrent, *llTail;
+ GLfloat startOffx, startOffy;
+ int endOffx, endOffy;
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+ if ( ((random() % spawn) == 1) && (tb->highestFalling<getHeight((tb->plusheight-blockHeight)+tb->highest)) ) {
+ startOffx=0;
+ endOffx=0;
+ startOffy=0;
+ endOffy=0;
+ tb->numFallingBlocks++;
+ llTail = tb->blockNodeRoot;
+ if (llTail == NULL) {
+ llCurrent = ((NODE*) malloc(sizeof(NODE)));
+ if (!llCurrent) abort();
+ llTail = llCurrent;
+ tb->blockNodeRoot = llCurrent;
+ } else {
+ if (tb->numFallingBlocks>=tb->maxFalling) {
+ /* recycle */
+ llCurrent=llTail->next;
+ tb->blockNodeRoot=llCurrent->next;
+ } else {
+ llCurrent = ((NODE*) malloc(sizeof(NODE)));
+ if (!llCurrent) abort();
+ }
+ while (llTail->next != NULL) { llTail = llTail->next; } /* find last item in list */
+ }
+ llCurrent->falling=1;
+ llCurrent->rotation=getOrientation(random() % 4);
+ if (llCurrent->rotation==getOrientation(0)) {
+ startOffx=1.0;
+ endOffx=0;
+ startOffy=3.0;
+ endOffy=-1;
+ } else if (llCurrent->rotation==getOrientation(1)) {
+ startOffx=1.0;
+ endOffx=-1;
+ startOffy=1.0;
+ endOffy=0;
+ } else if (llCurrent->rotation==getOrientation(2)) {
+ startOffx=1.0;
+ endOffx=0;
+ startOffy=3.0;
+ endOffy=-1;
+ } else if (llCurrent->rotation==getOrientation(3)) {
+ startOffx=5.0;
+ endOffx=-1;
+ startOffy=1.0;
+ endOffy=0;
+ }
+
+ llCurrent->x=(startOffx-(tb->carpetLength/2)) + getLocation(random() % ((tb->carpetLength/2)+endOffx) );
+ llCurrent->y=(startOffy-(tb->carpetLength/2)) + getLocation(random() % ((tb->carpetLength/2)+endOffy) );
+ llCurrent->color=(random() % maxColors);
+ llCurrent->height=getHeight(tb->plusheight+tb->highest);
+ if (tb->numFallingBlocks>=tb->maxFalling) {
+ tb->numFallingBlocks--;
+ tb->numFallingBlocks--;
+ }
+ llTail->next = llCurrent;
+ llTail = llCurrent;
+ llTail->next = NULL;
+
+ }
+}
+
+/* called at init this creates the 'carpet' display list item */
+static void buildCarpet(ModeInfo *mi)
+{
+ int i,c,x,y;
+ GLfloat color[4];
+ int wire = MI_IS_WIREFRAME(mi);
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+ color[0] = 0.0f;
+ color[1] = 1.0f;
+ color[2] = 0.0f;
+ color[3] = 1.0f;
+ tb->carpet=glGenLists(1); /* only one */
+ glNewList(tb->carpet,GL_COMPILE);
+ tb->carpet_polys=0;
+ glPushMatrix(); /* save state */
+ x=tb->carpetWidth;
+ y=tb->carpetLength;
+ if (wire) { glColor3fv(color); }
+ else { glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); }
+ /* draw carpet plane */
+ glBegin( wire ? GL_LINE_LOOP : GL_QUADS );
+ /* draw top */
+ glNormal3f( 0, 0, -1 );
+ glVertex3f(0.0,0.0,0.0);
+ glVertex3f(x,0.0,0.0);
+ glVertex3f(x,y,0.0);
+ glVertex3f(0.0,y,0.0);
+ tb->carpet_polys++;
+ if (!wire) {
+ /* add edge pieces */
+ /* side 1 */
+ glNormal3f( 0, -1, 0 );
+ glVertex3f(0.0,0.0,0.0);
+ glVertex3f(x,0.0,0.0);
+ glVertex3f(x,0,singleThick);
+ glVertex3f(0.0,0,singleThick);
+ tb->carpet_polys++;
+ /* side 2 */
+ glNormal3f( -1, 0, 0 );
+ glVertex3f(0.0,0.0,0.0);
+ glVertex3f(0,y,0.0);
+ glVertex3f(0,y,singleThick);
+ glVertex3f(0.0,0,singleThick);
+ tb->carpet_polys++;
+ /* side 3 */
+ glNormal3f( 1, 0, 0 );
+ glVertex3f(x,0.0,0.0);
+ glVertex3f(x,y,0.0);
+ glVertex3f(x,y,singleThick);
+ glVertex3f(x,0,singleThick);
+ tb->carpet_polys++;
+ /* side 4 */
+ glNormal3f( 0, 1, 0 );
+ glVertex3f(0,y,0.0);
+ glVertex3f(x,y,0.0);
+ glVertex3f(x,y,singleThick);
+ glVertex3f(0,y,singleThick);
+ tb->carpet_polys++;
+ }
+ glEnd();
+ /* nipples */
+ if (drawNipples) {
+ glTranslatef(0.5f,0.5f,-.25); /* move to the cylinder center */
+ for (c=0;c<x;c++) {
+ glPushMatrix(); /* save state */
+ for (i=0;i<y;i++) {
+ tb->carpet_polys += tube(0, 0, -0.1,
+ 0, 0, 0.26,
+ cylSize, 0,
+ tb->resolution, True, True,
+ wire);
+ glRotatef(180, 0.0f, 1.0f, 0.0f); /* they are upside down */
+ glRotatef(180, 0.0f, 1.0f, 0.0f); /* recover */
+ glTranslatef(0.0f,1.0f,0.0f); /* move to the next cylinder center (backward) */
+ }
+ glPopMatrix(); /* save state */
+ glTranslatef(1.0f,0.0f,0.0f); /* reset */
+ }
+ }
+ glPopMatrix(); /* restore state */
+ glEndList();
+}
+
+/* using the verticies arrays builds the plane, now with normals */
+static void polygonPlane(int wire, int a, int b, int c , int d, int i)
+{
+ GLfloat topBlockNormals[5][3] = { {0,0,-1}, {0,1,0}, {1,0,0}, {0,0,1}, {0,-1,0} };
+ GLfloat topBlockVertices[8][3] = { {-0.49,-2.97,-0.99}, {0.99,-2.97,-0.99}, {0.99,0.99,-0.99} , {-0.49,0.99,-0.99}, {-0.49,-2.97,0.99} , {0.99,-2.97,0.99}, {0.99,0.99,0.99} , {-0.49,0.99,0.99} };
+ glBegin( wire ? GL_LINE_LOOP : GL_POLYGON);
+ glNormal3fv(topBlockNormals[i] );
+ glVertex3fv(topBlockVertices[a]);
+ glVertex3fv(topBlockVertices[b]);
+ glVertex3fv(topBlockVertices[c]);
+ glVertex3fv(topBlockVertices[d]);
+ glEnd();
+}
+
+/* called at init this creates the 'block' display list item */
+/* the spheres came about originaly as quick way to test the directional lighting/normals */
+static void buildBlock(ModeInfo *mi)
+{
+ int i,c;
+ int wire = MI_IS_WIREFRAME(mi);
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+ tb->block=glGenLists(1); /* only one */
+ glNewList(tb->block,GL_COMPILE);
+ tb->block_polys=0;
+ glPushMatrix(); /* save state */
+ glRotatef(90, 0.0f, 1.0f, 0.0f);
+ /* base */
+ polygonPlane(wire, 0,3,2,1,0); tb->block_polys++;
+ polygonPlane(wire, 2,3,7,6,1); tb->block_polys++;
+ polygonPlane(wire, 1,2,6,5,2); tb->block_polys++;
+ polygonPlane(wire, 4,5,6,7,3); tb->block_polys++;
+ polygonPlane(wire, 0,1,5,4,4); tb->block_polys++;
+ if (drawNipples) {
+ /* nipples */
+ /* draw 8 cylinders each with a disk cap */
+ glRotatef(90, 0.0f, 1.0f, 0.0f); /* 'aim' the pointer ready for the cylinder */
+ glTranslatef(0.5f,0.5f,0.99f); /* move to the cylinder center */
+ for (c=0;c<2;c++) {
+ for (i=0;i<4;i++) {
+ tb->block_polys += tube(0, 0, 0,
+ 0, 0, 0.25,
+ cylSize, 0,
+ tb->resolution, True, True,
+ wire);
+ glTranslatef(0.0f,0.0f,0.25f); /* move to the cylinder cap */
+ glTranslatef(0.0f,0.0f,-0.25f); /* move back from the cylinder cap */
+ if (c==0) {
+ glTranslatef(0.0f,-1.0f,0.0f); /* move to the next cylinder center (forward) */
+ } else {
+ glTranslatef(0.0f,1.0f,0.0f); /* move to the next cylinder center (backward) */
+ }
+ }
+ glTranslatef(-1.0f,1.0f,0.0f); /* move to the cylinder center */
+ }
+ /* udders */
+ /* 3 cylinders on the underside */
+ glTranslatef(1.5f,-2.5f,-1.5f); /* move to the center, under the top of the brick */
+ if (! wire)
+ for (c=0;c<3;c++) {
+ tb->block_polys += tube(0, 0, 0.1,
+ 0, 0, 1.4,
+ uddSize, 0,
+ tb->resolution, True, True, wire);
+ glTranslatef(0.0f,-1.0f,0.0f); /* move to the center */
+ }
+ }
+ glPopMatrix(); /* restore state */
+ glEndList();
+}
+
+/*
+ rip off of the builBlock() function creating the GL compilied pointer "block" but only creates two spheres.
+ spheres are created with unit_sphere from spheres.h to allow wire frame
+*/
+static void buildBlobBlock(ModeInfo *mi)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+ tb->block=glGenLists(1); /* only one */
+ glNewList(tb->block,GL_COMPILE);
+ glPushMatrix();
+ glScalef(1.4,1.4,1.4);
+ unit_sphere (tb->resolution/2,tb->resolution, wire);
+ glPopMatrix();
+ glTranslatef(0.0f,-2.0f,0.0f);
+ glScalef(1.4,1.4,1.4);
+ unit_sphere (tb->resolution/2,tb->resolution, wire);
+ glEndList();
+}
+
+
+/* handle input events or not if daemon running the show */
+ENTRYPOINT Bool
+topBlock_handle_event (ModeInfo *mi, XEvent *event)
+{
+ topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, tb->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &tb->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress) {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == 'a') {
+ tb->eyeX++;
+ return True;
+ } else if (c == 'z') {
+ tb->eyeX--;
+ return True;
+ } else if (c == 's') {
+ tb->eyeY--;
+ return True;
+ } else if (c == 'x') {
+ tb->eyeY++;
+ return True;
+ } else if (c == 'd') {
+ tb->eyeZ++;
+ return True;
+ } else if (c == 'c') {
+ tb->eyeZ--;
+ return True;
+ } else if (c == 'f') {
+ camX++;
+ return True;
+ } else if (c == 'v') {
+ camX--;
+ return True;
+ } else if (c == 'g') {
+ camY++;
+ return True;
+ } else if (c == 'b') {
+ camY--;
+ return True;
+ } else if (c == 'h') {
+ camZ++;
+ return True;
+ } else if (c == 'n') {
+ camZ--;
+ return True;
+ } else if (c == 'r') {
+ tb->rotation++;
+ return True;
+ }
+ }
+
+ return False;
+}
+
+/* this is tha main change for v5 compatability and acompanying ENTRYPOINTS */
+XSCREENSAVER_MODULE_2 ("TopBlock", topblock, topBlock)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/topblock.h b/hacks/glx/topblock.h
new file mode 100644
index 0000000..1a66c5d
--- /dev/null
+++ b/hacks/glx/topblock.h
@@ -0,0 +1,45 @@
+/* topblock - openGL based hack */
+
+static void buildCarpet(ModeInfo *);
+static void polygonPlane(int, int, int, int, int ,int);
+static void buildBlock(ModeInfo *);
+static void generateNewBlock(ModeInfo *);
+static void followBlock(ModeInfo *);
+static void buildBlobBlock(ModeInfo *);
+static double quadrantCorrection(double,int,int,int,int);
+
+/* this structure holds all the attributes about a block */
+typedef struct blockNode {
+ int color; /* indexed */
+ int rotation; /* indexed: 0=S-N, 1=W-E, 2=N-S, 3=E-W */
+ GLfloat height;
+ GLfloat x;
+ GLfloat y;
+ int falling;
+ struct blockNode *next;
+} NODE;
+
+
+/* some handy macros and definitions */
+#define blockHeight 1.49f
+#define getHeight(a) (a * blockHeight)
+
+#define getOrientation(a) (a * 90)
+
+#define blockWidth 2.0f
+#define getLocation(a) (a * blockWidth)
+
+#define TOLERANCE 0.1f
+
+#define cylSize 0.333334f
+#define uddSize 0.4f
+#define singleThick 0.29 /* defines the thickness of the carpet */
+
+
+
+
+
+
+
+
+
diff --git a/hacks/glx/topblock.man b/hacks/glx/topblock.man
new file mode 100644
index 0000000..bbe4965
--- /dev/null
+++ b/hacks/glx/topblock.man
@@ -0,0 +1,170 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+topblock - a 3D world of falling blocks that build up and up.
+.SH SYNOPSIS
+.B topblock
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-wireframe]
+[\-fps]
+[\-size \fInumber\fP]
+[\-spawn \fInumber\fP]
+[\-camX \fInumber\fP]
+[\-camY \fInumber\fP]
+[\-camZ \fInumber\fP]
+[\-rotate]
+[\-no-carpet]
+[\-no-nipples]
+[\-blob]
+[\-rotateSpeed \fInumber\fP]
+[\-follow]
+[\-maxFalling \fInumber\fP]
+[\-resolution \fInumber\fP]
+[\-maxColors \fInumber\fP]
+[\-dropSpeed \fInumber\fP]
+[\-override]
+.SH DESCRIPTION
+Creates a world of falling blocks that build up and up.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-wireframe | \-no-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.TP 8
+.B \-size \fInumber\fP
+Size of the base/carpet.
+.TP 8
+.B \-spawn \fInumber\fP
+Likeyhood of a new block being created per frame : 1 high, 1000 very low.
+.TP 8
+.B \-camX \fInumber\fP
+Initial camera X location in the world.
+.TP 8
+.B \-camY \fInumber\fP
+Initial camera Y location in the world.
+.TP 8
+.B \-camZ \fInumber\fP
+Initial camera Z location in the world.
+.TP 8
+.B \-rotate | -no-rotate
+Add/Remove rotation to/from the animation.
+.TP 8
+.B \-no-carpet
+Remove the base/carpet.
+.TP 8
+.B \-no-nipples
+Remove nipples on the blocks (also applies to udders) (has no effect in blob mode).
+.TP 8
+.B \-blob
+Run in blob mode, blocks become over sized spheres.
+.TP 8
+.B \-rotateSpeed \fInumber\fP
+Varries speed of world rotation.
+.TP 8
+.B \-follow
+Camera follows blocks as they fall instead of camera being semi static (stays with top block).
+.TP 8
+.B \-maxFalling \fInumber\fP
+Maximum number of objects created before recycling occurs.
+.TP 8
+.B \-resolution \fInumber\fP
+Resolution of tubes, disks and spheres.
+.TP 8
+.B \-maxColors \fInumber\fP
+Number of different colors available to falling objects.
+.TP 8
+.B \-dropSpeed \fInumber\fP
+Varries speed of falling objects.
+.TP 8
+.B \-override
+Overrides camera settings and provides a tunnel view.
+
+.SH KEYS
+.PP
+.TP 8
+.B a
+Increases viewing X coordinate.
+.TP 8
+.B z
+Decreases viewing X coordinate.
+.TP 8
+.B s
+Increases viewing Y coordinate.
+.TP 8
+.B x
+Decreases viewing Y coordinate.
+.TP 8
+.B d
+Increases viewing Z coordinate.
+.TP 8
+.B c
+Decreases viewing Z coordinate.
+.TP 8
+.B f
+Increases camera location X coordinate.
+.TP 8
+.B v
+Decreases camera location X coordinate.
+.TP 8
+.B g
+Increases camera location Y coordinate.
+.TP 8
+.B b
+Decreases camera location Y coordinate.
+.TP 8
+.B h
+Increases camera location Z coordinate.
+.TP 8
+.B n
+Decreases camera location Z coordinate.
+.TP 8
+.B r
+Increases world rotation.
+.TP 8
+.B q
+quit.
+.SH EXAMPLES
+To see which block follow-mode is tracking, set the number of block colors to 1.
+.TP 8
+.B topblock -follow -maxColors 1
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2006 by rednuht. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+rednuht <topblock.xscreensaver@jumpstation.co.uk>
+<http://www.jumpstation.co.uk/xscreensaver/topblock/>
diff --git a/hacks/glx/trackball.c b/hacks/glx/trackball.c
new file mode 100644
index 0000000..429ade9
--- /dev/null
+++ b/hacks/glx/trackball.c
@@ -0,0 +1,331 @@
+/*
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+/*
+ * Trackball code:
+ *
+ * Implementation of a virtual trackball.
+ * Implemented by Gavin Bell, lots of ideas from Thant Tessman and
+ * the August '88 issue of Siggraph's "Computer Graphics," pp. 121-129.
+ *
+ * Vector manip code:
+ *
+ * Original code from:
+ * David M. Ciemiewicz, Mark Grossman, Henry Moreton, and Paul Haeberli
+ *
+ * Much mucking with by:
+ * Gavin Bell
+ */
+
+#include <math.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "trackball.h"
+
+/*
+ * This size should really be based on the distance from the center of
+ * rotation to the point on the object underneath the mouse. That
+ * point would then track the mouse as closely as possible. This is a
+ * simple example, though, so that is left as an Exercise for the
+ * Programmer.
+ */
+#define TRACKBALLSIZE (0.8)
+
+/*
+ * Local function prototypes (not defined in trackball.h)
+ */
+static float tb_project_to_sphere(float, float, float);
+static void normalize_quat(float [4]);
+static void axis_to_quat(float a[3], float phi, float q[4]);
+
+static void
+vzero(float *v)
+{
+ v[0] = 0.0;
+ v[1] = 0.0;
+ v[2] = 0.0;
+}
+
+static void
+vset(float *v, float x, float y, float z)
+{
+ v[0] = x;
+ v[1] = y;
+ v[2] = z;
+}
+
+static void
+vsub(const float *src1, const float *src2, float *dst)
+{
+ dst[0] = src1[0] - src2[0];
+ dst[1] = src1[1] - src2[1];
+ dst[2] = src1[2] - src2[2];
+}
+
+static void
+vcopy(const float *v1, float *v2)
+{
+ register int i;
+ for (i = 0 ; i < 3 ; i++)
+ v2[i] = v1[i];
+}
+
+static void
+vcross(const float *v1, const float *v2, float *cross)
+{
+ float temp[3];
+
+ temp[0] = (v1[1] * v2[2]) - (v1[2] * v2[1]);
+ temp[1] = (v1[2] * v2[0]) - (v1[0] * v2[2]);
+ temp[2] = (v1[0] * v2[1]) - (v1[1] * v2[0]);
+ vcopy(temp, cross);
+}
+
+static float
+vlength(const float *v)
+{
+ return sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
+}
+
+static void
+vscale(float *v, float div)
+{
+ v[0] *= div;
+ v[1] *= div;
+ v[2] *= div;
+}
+
+static void
+vnormal(float *v)
+{
+ vscale(v,1.0/vlength(v));
+}
+
+static float
+vdot(const float *v1, const float *v2)
+{
+ return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
+}
+
+static void
+vadd(const float *src1, const float *src2, float *dst)
+{
+ dst[0] = src1[0] + src2[0];
+ dst[1] = src1[1] + src2[1];
+ dst[2] = src1[2] + src2[2];
+}
+
+/*
+ * Ok, simulate a track-ball. Project the points onto the virtual
+ * trackball, then figure out the axis of rotation, which is the cross
+ * product of P1 P2 and O P1 (O is the center of the ball, 0,0,0)
+ * Note: This is a deformed trackball-- is a trackball in the center,
+ * but is deformed into a hyperbolic sheet of rotation away from the
+ * center. This particular function was chosen after trying out
+ * several variations.
+ *
+ * It is assumed that the arguments to this routine are in the range
+ * (-1.0 ... 1.0)
+ */
+void
+trackball(float q[4], float p1x, float p1y, float p2x, float p2y)
+{
+ float a[3]; /* Axis of rotation */
+ float phi; /* how much to rotate about axis */
+ float p1[3], p2[3], d[3];
+ float t;
+
+ if (p1x == p2x && p1y == p2y) {
+ /* Zero rotation */
+ vzero(q);
+ q[3] = 1.0;
+ return;
+ }
+
+ /*
+ * First, figure out z-coordinates for projection of P1 and P2 to
+ * deformed sphere
+ */
+ vset(p1,p1x,p1y,tb_project_to_sphere(TRACKBALLSIZE,p1x,p1y));
+ vset(p2,p2x,p2y,tb_project_to_sphere(TRACKBALLSIZE,p2x,p2y));
+
+ /*
+ * Now, we want the cross product of P1 and P2
+ */
+ vcross(p2,p1,a);
+
+ /*
+ * Figure out how much to rotate around that axis.
+ */
+ vsub(p1,p2,d);
+ t = vlength(d) / (2.0*TRACKBALLSIZE);
+
+ /*
+ * Avoid problems with out-of-control values...
+ */
+ if (t > 1.0) t = 1.0;
+ if (t < -1.0) t = -1.0;
+ phi = 2.0 * asin(t);
+
+ axis_to_quat(a,phi,q);
+}
+
+/*
+ * Given an axis and angle, compute quaternion.
+ */
+void
+axis_to_quat(float a[3], float phi, float q[4])
+{
+ vnormal(a);
+ vcopy(a,q);
+ vscale(q,sin(phi/2.0));
+ q[3] = cos(phi/2.0);
+}
+
+/*
+ * Project an x,y pair onto a sphere of radius r OR a hyperbolic sheet
+ * if we are away from the center of the sphere.
+ */
+static float
+tb_project_to_sphere(float r, float x, float y)
+{
+ float d, t, z;
+
+ d = sqrt(x*x + y*y);
+ if (d < r * 0.70710678118654752440) { /* Inside sphere */
+ z = sqrt(r*r - d*d);
+ } else { /* On hyperbola */
+ t = r / 1.41421356237309504880;
+ z = t*t / d;
+ }
+ return z;
+}
+
+/*
+ * Given two rotations, e1 and e2, expressed as quaternion rotations,
+ * figure out the equivalent single rotation and stuff it into dest.
+ *
+ * This routine also normalizes the result every RENORMCOUNT times it is
+ * called, to keep error from creeping in.
+ *
+ * NOTE: This routine is written so that q1 or q2 may be the same
+ * as dest (or each other).
+ */
+
+#define RENORMCOUNT 97
+
+void
+add_quats(float q1[4], float q2[4], float dest[4])
+{
+ static int count=0;
+ float t1[4], t2[4], t3[4];
+ float tf[4];
+
+ vcopy(q1,t1);
+ vscale(t1,q2[3]);
+
+ vcopy(q2,t2);
+ vscale(t2,q1[3]);
+
+ vcross(q2,q1,t3);
+ vadd(t1,t2,tf);
+ vadd(t3,tf,tf);
+ tf[3] = q1[3] * q2[3] - vdot(q1,q2);
+
+ dest[0] = tf[0];
+ dest[1] = tf[1];
+ dest[2] = tf[2];
+ dest[3] = tf[3];
+
+ if (++count > RENORMCOUNT) {
+ count = 0;
+ normalize_quat(dest);
+ }
+}
+
+/*
+ * Quaternions always obey: a^2 + b^2 + c^2 + d^2 = 1.0
+ * If they don't add up to 1.0, dividing by their magnitued will
+ * renormalize them.
+ *
+ * Note: See the following for more information on quaternions:
+ *
+ * - Shoemake, K., Animating rotation with quaternion curves, Computer
+ * Graphics 19, No 3 (Proc. SIGGRAPH'85), 245-254, 1985.
+ * - Pletinckx, D., Quaternion calculus as a basic tool in computer
+ * graphics, The Visual Computer 5, 2-13, 1989.
+ */
+static void
+normalize_quat(float q[4])
+{
+ int i;
+ float mag;
+
+ mag = (q[0]*q[0] + q[1]*q[1] + q[2]*q[2] + q[3]*q[3]);
+ for (i = 0; i < 4; i++) q[i] /= mag;
+}
+
+/*
+ * Build a rotation matrix, given a quaternion rotation.
+ *
+ */
+void
+build_rotmatrix(float m[4][4], float q[4])
+{
+ m[0][0] = 1.0 - 2.0 * (q[1] * q[1] + q[2] * q[2]);
+ m[0][1] = 2.0 * (q[0] * q[1] - q[2] * q[3]);
+ m[0][2] = 2.0 * (q[2] * q[0] + q[1] * q[3]);
+ m[0][3] = 0.0;
+
+ m[1][0] = 2.0 * (q[0] * q[1] + q[2] * q[3]);
+ m[1][1]= 1.0 - 2.0 * (q[2] * q[2] + q[0] * q[0]);
+ m[1][2] = 2.0 * (q[1] * q[2] - q[0] * q[3]);
+ m[1][3] = 0.0;
+
+ m[2][0] = 2.0 * (q[2] * q[0] - q[1] * q[3]);
+ m[2][1] = 2.0 * (q[1] * q[2] + q[0] * q[3]);
+ m[2][2] = 1.0 - 2.0 * (q[1] * q[1] + q[0] * q[0]);
+ m[2][3] = 0.0;
+
+ m[3][0] = 0.0;
+ m[3][1] = 0.0;
+ m[3][2] = 0.0;
+ m[3][3] = 1.0;
+}
+
diff --git a/hacks/glx/trackball.h b/hacks/glx/trackball.h
new file mode 100644
index 0000000..4b84ab7
--- /dev/null
+++ b/hacks/glx/trackball.h
@@ -0,0 +1,82 @@
+/*
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+/*
+ * trackball.h
+ * A virtual trackball implementation
+ * Written by Gavin Bell for Silicon Graphics, November 1988.
+ */
+
+#ifndef __TRACKBALL_H__
+#define __TRACKBALL_H__
+
+/*
+ * Pass the x and y coordinates of the last and current positions of
+ * the mouse, scaled so they are from (-1.0 ... 1.0).
+ *
+ * The resulting rotation is returned as a quaternion rotation in the
+ * first paramater.
+ */
+void
+trackball(float q[4], float p1x, float p1y, float p2x, float p2y);
+
+/*
+ * Given two quaternions, add them together to get a third quaternion.
+ * Adding quaternions to get a compound rotation is analagous to adding
+ * translations to get a compound translation. When incrementally
+ * adding rotations, the first argument here should be the new
+ * rotation, the second and third the total rotation (which will be
+ * over-written with the resulting new total rotation).
+ */
+void
+add_quats(float *q1, float *q2, float *dest);
+
+/*
+ * A useful function, builds a rotation matrix in Matrix based on
+ * given quaternion.
+ */
+void
+build_rotmatrix(float m[4][4], float q[4]);
+
+/*
+ * This function computes a quaternion based on an axis (defined by
+ * the given vector) and an angle about which to rotate. The angle is
+ * expressed in radians. The result is put into the third argument.
+ */
+/* void
+axis_to_quat(float a[3], float phi, float q[4]); */
+
+#endif /* __TRACKBALL_H__ */
diff --git a/hacks/glx/tronbit.c b/hacks/glx/tronbit.c
new file mode 100644
index 0000000..b79309c
--- /dev/null
+++ b/hacks/glx/tronbit.c
@@ -0,0 +1,536 @@
+/* tronbit, Copyright (c) 2011-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 30 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n"
+
+# define free_bit 0
+# define release_bit 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "sphere.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+extern const struct gllist *tronbit_idle1, *tronbit_idle2,
+ *tronbit_no, *tronbit_yes;
+static const struct gllist * const *all_objs[] = {
+ &tronbit_idle1, &tronbit_idle2, &tronbit_no, &tronbit_yes };
+
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+
+#define HISTORY_LENGTH 512
+typedef enum { BIT_IDLE1, BIT_IDLE2, BIT_NO, BIT_YES } bit_state;
+#define MODELS 4
+
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ double frequency;
+ double confidence;
+
+ double last_time;
+ unsigned char history [HISTORY_LENGTH];
+ unsigned char histogram [HISTORY_LENGTH];
+ int history_fp, histogram_fp;
+
+ GLuint dlists[MODELS], polys[MODELS];
+ char kbd;
+
+} bit_configuration;
+
+static bit_configuration *bps = NULL;
+
+static const GLfloat colors[][4] = {
+ { 0.66, 0.85, 1.00, 1.00 },
+ { 0.66, 0.85, 1.00, 1.00 },
+ { 1.00, 0.12, 0.12, 1.00 },
+ { 0.98, 0.85, 0.30, 1.00 }
+};
+
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" }
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt bit_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+static int
+make_bit (ModeInfo *mi, bit_state which)
+{
+ static const GLfloat spec[4] = {1.0, 1.0, 1.0, 1.0};
+ static const GLfloat shiny = 128.0;
+ const GLfloat *color = colors[which];
+ int wire = MI_IS_WIREFRAME(mi);
+ int polys = 0;
+ GLfloat s;
+ const struct gllist *gll;
+
+ glMaterialfv (GL_FRONT, GL_SPECULAR, spec);
+ glMateriali (GL_FRONT, GL_SHININESS, shiny);
+ glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+ glColor4f (color[0], color[1], color[2], color[3]);
+
+ glPushMatrix();
+ switch (which)
+ {
+ case BIT_IDLE1:
+ glRotatef (-44, 0, 1, 0); /* line up the models with each other */
+ glRotatef (-11, 1, 0, 0);
+ glRotatef ( 8, 0, 0, 1);
+ s = 1.0;
+ break;
+ case BIT_IDLE2:
+ glRotatef ( 16.0, 0, 0, 1);
+ glRotatef (-28.0, 1, 0, 0);
+ s = 1.0;
+ break;
+ case BIT_NO:
+ glRotatef ( 16.0, 0, 0, 1);
+ glRotatef (-28.0, 1, 0, 0);
+ s = 1.6;
+ break;
+ case BIT_YES:
+ glRotatef (-44.0, 0, 1, 0);
+ glRotatef (-32.0, 1, 0, 0);
+ s = 1.53;
+ break;
+ default:
+ abort();
+ break;
+ }
+ glScalef (s, s, s);
+ gll = *all_objs[which];
+ renderList (gll, wire);
+ polys += gll->points / 3;
+ glPopMatrix();
+
+ return polys;
+}
+
+
+static void
+tick_bit (ModeInfo *mi, double now)
+{
+ bit_configuration *bp = &bps[MI_SCREEN(mi)];
+ double freq = bp->frequency;
+ int n = bp->history[bp->history_fp];
+ int histogram_speed = 3 * speed;
+ int i;
+
+ if (histogram_speed < 1) histogram_speed = 1;
+
+ if (n == BIT_YES || n == BIT_NO)
+ freq *= 2;
+
+ if (bp->button_down_p) return;
+
+ for (i = 0; i < histogram_speed; i++)
+ {
+ int nn = (n == BIT_YES ? 240 : n == BIT_NO ? 17 : 128);
+ int on = bp->histogram[(bp->histogram_fp-1) % countof(bp->histogram)];
+
+ /* smooth out the square wave a little bit */
+
+ if (!(nn > 100 && nn < 200) !=
+ !(on > 100 && on < 200))
+ nn += (((random() % 48) - 32) *
+ ((on > 100 && on < 200) ? 1 : -1));
+
+ nn += (random() % 16) - 8;
+
+ bp->histogram_fp++;
+ if (bp->histogram_fp >= countof(bp->history))
+ bp->histogram_fp = 0;
+ bp->histogram [bp->histogram_fp] = nn;
+ }
+
+
+ if (bp->last_time + freq > now && !bp->kbd) return;
+
+ bp->last_time = now;
+
+ bp->history_fp++;
+ if (bp->history_fp >= countof(bp->history))
+ bp->history_fp = 0;
+
+ if (bp->kbd)
+ {
+ n = (bp->kbd == '1' ? BIT_YES :
+ bp->kbd == '0' ? BIT_NO :
+ (random() & 1) ? BIT_YES : BIT_NO);
+ bp->kbd = 0;
+ }
+ else if (n == BIT_YES ||
+ n == BIT_NO ||
+ frand(1.0) >= bp->confidence)
+ n = (n == BIT_IDLE1 ? BIT_IDLE2 : BIT_IDLE1);
+ else
+ n = (random() & 1) ? BIT_YES : BIT_NO;
+
+ bp->history [bp->history_fp] = n;
+}
+
+
+static int
+animate_bits (ModeInfo *mi, bit_state omodel, bit_state nmodel, GLfloat ratio)
+{
+ bit_configuration *bp = &bps[MI_SCREEN(mi)];
+ int polys = 0;
+ GLfloat scale = sin (ratio * M_PI / 2);
+ GLfloat osize, nsize, small;
+ int wire = MI_IS_WIREFRAME(mi);
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (!wire)
+ {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ }
+
+ if ((omodel == BIT_IDLE1 || omodel == BIT_IDLE2) &&
+ (nmodel == BIT_IDLE1 || nmodel == BIT_IDLE2))
+ small = 0.9;
+ else
+ small = 0.5;
+
+ nsize = small + (1 - small) * scale;
+ osize = small + (1 - small) * (1 - scale);
+
+ glPushMatrix();
+ glScalef (osize, osize, osize);
+ glCallList (bp->dlists [omodel]);
+ polys += bp->polys [omodel];
+ glPopMatrix();
+
+ glPushMatrix();
+ glScalef (nsize, nsize, nsize);
+ glCallList (bp->dlists [nmodel]);
+ polys += bp->polys [nmodel];
+ glPopMatrix();
+
+ return polys;
+}
+
+
+static int
+draw_histogram (ModeInfo *mi, GLfloat ratio)
+{
+ bit_configuration *bp = &bps[MI_SCREEN(mi)];
+ int samples = countof (bp->histogram);
+ GLfloat scalex = (GLfloat) mi->xgwa.width / samples;
+ GLfloat scaley = mi->xgwa.height / 255.0 / 4; /* about 1/4th of screen */
+ int polys = 0;
+ int overlays = 5;
+ int k;
+
+ glDisable (GL_TEXTURE_2D);
+ glDisable (GL_LIGHTING);
+ glDisable (GL_BLEND);
+ glDisable (GL_DEPTH_TEST);
+ glDisable (GL_CULL_FACE);
+
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ {
+ glLoadIdentity();
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+
+ glLoadIdentity();
+ /* glRotatef(current_device_rotation(), 0, 0, 1); */
+ glOrtho (0, mi->xgwa.width, 0, mi->xgwa.height, -1, 1);
+
+ for (k = 0; k < overlays; k++)
+ {
+ int i, j;
+ GLfloat a = (GLfloat) k / overlays;
+
+ glColor3f (0.3 * a, 0.7 * a, 1.0 * a);
+
+ glBegin (GL_LINE_STRIP);
+
+ j = bp->histogram_fp + 1;
+ for (i = 0; i < samples; i++)
+ {
+ GLfloat x, y, z;
+ if (j >= samples) j = 0;
+ x = i;
+ y = bp->histogram[j];
+ z = 0;
+
+ y += (int) ((random() % 16) - 8);
+ y += 16; /* margin at bottom of screen */
+
+ x *= scalex;
+ y *= scaley;
+
+ glVertex3f (x, y, z);
+ ++j;
+ polys++;
+ }
+ glEnd();
+ }
+
+ glPopMatrix();
+ }
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+
+ glMatrixMode(GL_MODELVIEW);
+
+ return polys;
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_bit (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+
+ENTRYPOINT Bool
+bit_handle_event (ModeInfo *mi, XEvent *event)
+{
+ bit_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+
+ if (keysym == XK_Up || keysym == XK_Left || keysym == XK_Prior)
+ c = '1';
+ else if (keysym == XK_Down || keysym == XK_Right || keysym == XK_Next)
+ c = '0';
+
+ if (c == ' ' || c == '\t' || c == '\n' || c == '1' || c == '0')
+ {
+ bp->kbd = c;
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_bit (ModeInfo *mi)
+{
+ bit_configuration *bp;
+ int i;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_bit (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ {
+ double spin_speed = 3.0;
+ double wander_speed = 0.03 * speed;
+ double spin_accel = 4.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->trackball = gltrackball_init (False);
+ }
+
+ for (i = 0; i < countof(bp->dlists); i++)
+ {
+ bp->dlists[i] = glGenLists (1);
+ glNewList (bp->dlists[i], GL_COMPILE);
+ bp->polys [i] = make_bit (mi, i);
+ glEndList ();
+ }
+
+ bp->frequency = 0.30 / speed; /* parity around 3x/second */
+ bp->confidence = 0.06; /* provide answer 1/15 or so */
+
+ for (i = 0; i < countof(bp->histogram); i++)
+ bp->histogram[i] = 128 + (random() % 16) - 8;
+}
+
+
+ENTRYPOINT void
+draw_bit (ModeInfo *mi)
+{
+ bit_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+ GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ glPushMatrix ();
+ glScalef(1.1, 1.1, 1.1);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi);
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ glRotatef(o, 0, 0, 1);
+ }
+# endif
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 11,
+ (y - 0.5) * 5,
+ (z - 0.5) * 3);
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+ mi->polygon_count = 0;
+
+ glScalef (6, 6, 6);
+
+ {
+ int nmodel = bp->history [bp->history_fp];
+ int omodel = bp->history [bp->history_fp > 0
+ ? bp->history_fp-1
+ : countof(bp->history)-1];
+ double now = double_time();
+ double ratio = 1 - ((bp->last_time + bp->frequency) - now) / bp->frequency;
+ if (ratio > 1) ratio = 1;
+ mi->polygon_count += draw_histogram (mi, ratio);
+
+ if (MI_WIDTH(mi) > MI_HEIGHT(mi) * 5) { /* wide window: scale up */
+ glScalef (8, 8, 8);
+ }
+
+ mi->polygon_count += animate_bits (mi, omodel, nmodel, ratio);
+ tick_bit (mi, now);
+ }
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("TronBit", tronbit, bit)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/tronbit.man b/hacks/glx/tronbit.man
new file mode 100644
index 0000000..9001f0e
--- /dev/null
+++ b/hacks/glx/tronbit.man
@@ -0,0 +1,79 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+tronbit - Yes. Yes. No. Yes. Yes. No. Yes. Yes yes yes yes yes.
+.SH SYNOPSIS
+.B tronbit
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIratio\fP]
+[\-spin]
+[\-wander]
+[\-wireframe]
+[\-fps]
+.SH DESCRIPTION
+Draws an animation of the character "Bit" from the film, \fITron\fP.
+
+The "yes" state is a tetrahedron; the "no" state is the second
+stellation of an icosahedron; and the idle state oscillates between
+a small triambic icosahedron and the compound of an icosahedron and
+a dodecahedron.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+How fast the animation should run.
+Less than 1 for slower, greater than 1 for faster.
+.TP 8
+.B \-no\-spin
+Don't rotate.
+.TP 8
+.B \-no\-wander
+Don't wander around.
+.TP 8
+.B \-wireframe
+Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR polyhedra (1),
+.BR dangerball (1),
+.BR companioncube (1),
+.BR xscreensaver (1),
+.BR TRON.
+.SH COPYRIGHT
+Copyright \(co 2011 by Jamie Zawinski. Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose. It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Jamie Zawinski, who fights for the users.
diff --git a/hacks/glx/tronbit_idle1.c b/hacks/glx/tronbit_idle1.c
new file mode 100644
index 0000000..f053259
--- /dev/null
+++ b/hacks/glx/tronbit_idle1.c
@@ -0,0 +1,247 @@
+/* odd parity = small triambic icosahedron */
+
+#include "gllist.h"
+static const float data[]={
+ 0,0,1,0.263523,-0.204124,0.372678,
+ 0,0,1,0.263523,0.10775,0.372678,
+ 0,0,1,0.045015,0.33028,0.372678,
+ 0,0,1,0.263523,-0.204124,0.372678,
+ 0,0,1,0.045015,0.33028,0.372678,
+ 0,0,1,-0.225076,0.174343,0.372678,
+ 0,0,1,0.263523,-0.204124,0.372678,
+ 0,0,1,-0.225076,0.174343,0.372678,
+ 0,0,1,-0.308538,-0.126156,0.372678,
+ 0,0,1,0.263523,-0.204124,0.372678,
+ 0,0,1,-0.308538,-0.126156,0.372678,
+ 0,0,1,-0.038448,-0.282093,0.372678,
+ 0.942809,0,0.333333,0.263523,-0.204124,0.372678,
+ 0.942809,0,0.333333,0.36418,-0.282093,0.087977,
+ 0.942809,0,0.333333,0.45421,-0.126156,-0.166667,
+ 0.942809,0,0.333333,0.263523,-0.204124,0.372678,
+ 0.942809,0,0.333333,0.45421,-0.126156,-0.166667,
+ 0.942809,0,0.333333,0.426389,0.174343,-0.087977,
+ 0.942809,0,0.333333,0.263523,-0.204124,0.372678,
+ 0.942809,0,0.333333,0.426389,0.174343,-0.087977,
+ 0.942809,0,0.333333,0.336359,0.33028,0.166667,
+ 0.942809,0,0.333333,0.263523,-0.204124,0.372678,
+ 0.942809,0,0.333333,0.336359,0.33028,0.166667,
+ 0.942809,0,0.333333,0.263523,0.10775,0.372678,
+ 0.672718,0.66056,0.333333,0.263523,0.10775,0.372678,
+ 0.672718,0.66056,0.333333,0.471405,0,0.166667,
+ 0.672718,0.66056,0.333333,0.426389,0.174343,-0.087977,
+ 0.672718,0.66056,0.333333,0.263523,0.10775,0.372678,
+ 0.672718,0.66056,0.333333,0.426389,0.174343,-0.087977,
+ 0.672718,0.66056,0.333333,0.235702,0.408248,-0.166667,
+ 0.672718,0.66056,0.333333,0.263523,0.10775,0.372678,
+ 0.672718,0.66056,0.333333,0.235702,0.408248,-0.166667,
+ 0.672718,0.66056,0.333333,0.062209,0.456436,0.087977,
+ 0.672718,0.66056,0.333333,0.263523,0.10775,0.372678,
+ 0.672718,0.66056,0.333333,0.062209,0.456436,0.087977,
+ 0.672718,0.66056,0.333333,0.045015,0.33028,0.372678,
+ -0.471405,0.816497,0.333333,0.045015,0.33028,0.372678,
+ -0.471405,0.816497,0.333333,0.062209,0.456436,0.087977,
+ -0.471405,0.816497,0.333333,-0.117851,0.456436,-0.166667,
+ -0.471405,0.816497,0.333333,0.045015,0.33028,0.372678,
+ -0.471405,0.816497,0.333333,-0.117851,0.456436,-0.166667,
+ -0.471405,0.816497,0.333333,-0.36418,0.282093,-0.087977,
+ -0.471405,0.816497,0.333333,0.045015,0.33028,0.372678,
+ -0.471405,0.816497,0.333333,-0.36418,0.282093,-0.087977,
+ -0.471405,0.816497,0.333333,-0.45421,0.126156,0.166667,
+ -0.471405,0.816497,0.333333,0.045015,0.33028,0.372678,
+ -0.471405,0.816497,0.333333,-0.45421,0.126156,0.166667,
+ -0.471405,0.816497,0.333333,-0.225076,0.174343,0.372678,
+ -0.908421,0.252311,0.333333,-0.225076,0.174343,0.372678,
+ -0.908421,0.252311,0.333333,-0.235702,0.408248,0.166667,
+ -0.908421,0.252311,0.333333,-0.36418,0.282093,-0.087977,
+ -0.90842,0.252312,0.333333,-0.225076,0.174343,0.372678,
+ -0.90842,0.252312,0.333333,-0.36418,0.282093,-0.087977,
+ -0.90842,0.252312,0.333333,-0.471405,0,-0.166667,
+ -0.90842,0.252311,0.333334,-0.225076,0.174343,0.372678,
+ -0.90842,0.252311,0.333334,-0.471405,0,-0.166667,
+ -0.90842,0.252311,0.333334,-0.426389,-0.174343,0.087977,
+ -0.908421,0.252311,0.333333,-0.225076,0.174343,0.372678,
+ -0.908421,0.252311,0.333333,-0.426389,-0.174343,0.087977,
+ -0.908421,0.252311,0.333333,-0.308538,-0.126156,0.372678,
+ -0.471405,-0.816497,0.333333,-0.308538,-0.126156,0.372678,
+ -0.471405,-0.816497,0.333333,-0.426389,-0.174343,0.087977,
+ -0.471405,-0.816497,0.333333,-0.336359,-0.33028,-0.166667,
+ -0.471404,-0.816497,0.333333,-0.308538,-0.126156,0.372678,
+ -0.471404,-0.816497,0.333333,-0.336359,-0.33028,-0.166667,
+ -0.471404,-0.816497,0.333333,-0.062209,-0.456436,-0.087977,
+ -0.471405,-0.816497,0.333333,-0.308538,-0.126156,0.372678,
+ -0.471405,-0.816497,0.333333,-0.062209,-0.456436,-0.087977,
+ -0.471405,-0.816497,0.333333,0.117851,-0.456436,0.166667,
+ -0.471405,-0.816497,0.333333,-0.308538,-0.126156,0.372678,
+ -0.471405,-0.816497,0.333333,0.117851,-0.456436,0.166667,
+ -0.471405,-0.816497,0.333333,-0.038448,-0.282093,0.372678,
+ 0.235702,-0.912871,0.333333,-0.038448,-0.282093,0.372678,
+ 0.235702,-0.912871,0.333333,-0.235702,-0.408248,0.166667,
+ 0.235702,-0.912871,0.333333,-0.062209,-0.456436,-0.087977,
+ 0.235702,-0.912871,0.333333,-0.038448,-0.282093,0.372678,
+ 0.235702,-0.912871,0.333333,-0.062209,-0.456436,-0.087977,
+ 0.235702,-0.912871,0.333333,0.235702,-0.408248,-0.166667,
+ 0.235702,-0.912871,0.333333,-0.038448,-0.282093,0.372678,
+ 0.235702,-0.912871,0.333333,0.235702,-0.408248,-0.166667,
+ 0.235702,-0.912871,0.333333,0.36418,-0.282093,0.087977,
+ 0.235702,-0.912871,0.333333,-0.038448,-0.282093,0.372678,
+ 0.235702,-0.912871,0.333333,0.36418,-0.282093,0.087977,
+ 0.235702,-0.912871,0.333333,0.263523,-0.204124,0.372678,
+ 0.09003,0.66056,0.745356,0.263523,0.10775,0.372678,
+ 0.09003,0.66056,0.745356,0.336359,0.33028,0.166667,
+ 0.09003,0.66056,0.745356,0.062209,0.456436,0.087977,
+ 0.09003,0.66056,0.745356,0.263523,0.10775,0.372678,
+ 0.09003,0.66056,0.745356,0.062209,0.456436,0.087977,
+ 0.09003,0.66056,0.745356,-0.235702,0.408248,0.166667,
+ 0.09003,0.66056,0.745356,0.263523,0.10775,0.372678,
+ 0.09003,0.66056,0.745356,-0.235702,0.408248,0.166667,
+ 0.09003,0.66056,0.745356,-0.225076,0.174343,0.372678,
+ 0.09003,0.660559,0.745356,0.263523,0.10775,0.372678,
+ 0.09003,0.660559,0.745356,-0.225076,0.174343,0.372678,
+ 0.09003,0.660559,0.745356,0,0,0.5,
+ 0.471405,0.816497,-0.333333,0.336359,0.33028,0.166667,
+ 0.471405,0.816497,-0.333333,0.426389,0.174343,-0.087977,
+ 0.471405,0.816497,-0.333333,0.308538,0.126156,-0.372678,
+ 0.471405,0.816497,-0.333333,0.336359,0.33028,0.166667,
+ 0.471405,0.816497,-0.333333,0.308538,0.126156,-0.372678,
+ 0.471405,0.816497,-0.333333,0.038448,0.282093,-0.372678,
+ 0.471405,0.816497,-0.333333,0.336359,0.33028,0.166667,
+ 0.471405,0.816497,-0.333333,0.038448,0.282093,-0.372678,
+ 0.471405,0.816497,-0.333333,-0.117851,0.456436,-0.166667,
+ 0.471404,0.816497,-0.333333,0.336359,0.33028,0.166667,
+ 0.471404,0.816497,-0.333333,-0.117851,0.456436,-0.166667,
+ 0.471404,0.816497,-0.333333,0.062209,0.456436,0.087977,
+ 0.617077,0.252311,-0.745356,0.426389,0.174343,-0.087977,
+ 0.617077,0.252311,-0.745356,0.45421,-0.126156,-0.166667,
+ 0.617077,0.252311,-0.745356,0.225076,-0.174343,-0.372678,
+ 0.617076,0.252311,-0.745356,0.426389,0.174343,-0.087977,
+ 0.617076,0.252311,-0.745356,0.225076,-0.174343,-0.372678,
+ 0.617076,0.252311,-0.745356,0,0,-0.5,
+ 0.617077,0.252311,-0.745356,0.426389,0.174343,-0.087977,
+ 0.617077,0.252311,-0.745356,0,0,-0.5,
+ 0.617077,0.252311,-0.745356,0.038448,0.282093,-0.372678,
+ 0.617077,0.252311,-0.745356,0.426389,0.174343,-0.087977,
+ 0.617077,0.252311,-0.745356,0.038448,0.282093,-0.372678,
+ 0.617077,0.252311,-0.745356,0.235702,0.408248,-0.166667,
+ 0.471405,-0.816497,-0.333333,0.45421,-0.126156,-0.166667,
+ 0.471405,-0.816497,-0.333333,0.36418,-0.282093,0.087977,
+ 0.471405,-0.816497,-0.333333,0.117851,-0.456436,0.166667,
+ 0.471405,-0.816497,-0.333333,0.45421,-0.126156,-0.166667,
+ 0.471405,-0.816497,-0.333333,0.117851,-0.456436,0.166667,
+ 0.471405,-0.816497,-0.333333,-0.062209,-0.456436,-0.087977,
+ 0.471405,-0.816497,-0.333333,0.45421,-0.126156,-0.166667,
+ 0.471405,-0.816497,-0.333333,-0.062209,-0.456436,-0.087977,
+ 0.471405,-0.816497,-0.333333,-0.045015,-0.33028,-0.372678,
+ 0.471405,-0.816497,-0.333333,0.45421,-0.126156,-0.166667,
+ 0.471405,-0.816497,-0.333333,-0.045015,-0.33028,-0.372678,
+ 0.471405,-0.816497,-0.333333,0.225076,-0.174343,-0.372678,
+ -0.235702,0.912871,-0.333333,0.062209,0.456436,0.087977,
+ -0.235702,0.912871,-0.333333,0.235702,0.408248,-0.166667,
+ -0.235702,0.912871,-0.333333,0.038448,0.282093,-0.372678,
+ -0.235702,0.912871,-0.333333,0.062209,0.456436,0.087977,
+ -0.235702,0.912871,-0.333333,0.038448,0.282093,-0.372678,
+ -0.235702,0.912871,-0.333333,-0.263523,0.204124,-0.372678,
+ -0.235702,0.912871,-0.333333,0.062209,0.456436,0.087977,
+ -0.235702,0.912871,-0.333333,-0.263523,0.204124,-0.372678,
+ -0.235702,0.912871,-0.333333,-0.36418,0.282093,-0.087977,
+ -0.235702,0.912871,-0.333333,0.062209,0.456436,0.087977,
+ -0.235702,0.912871,-0.333333,-0.36418,0.282093,-0.087977,
+ -0.235702,0.912871,-0.333333,-0.235702,0.408248,0.166667,
+ 0.90842,-0.252312,-0.333334,0.426389,0.174343,-0.087977,
+ 0.90842,-0.252312,-0.333334,0.471405,0,0.166667,
+ 0.90842,-0.252312,-0.333334,0.36418,-0.282093,0.087977,
+ 0.908421,-0.252311,-0.333333,0.426389,0.174343,-0.087977,
+ 0.908421,-0.252311,-0.333333,0.36418,-0.282093,0.087977,
+ 0.908421,-0.252311,-0.333333,0.235702,-0.408248,-0.166667,
+ 0.908421,-0.252311,-0.333333,0.426389,0.174343,-0.087977,
+ 0.908421,-0.252311,-0.333333,0.235702,-0.408248,-0.166667,
+ 0.908421,-0.252311,-0.333333,0.225076,-0.174343,-0.372678,
+ 0.908421,-0.252311,-0.333333,0.426389,0.174343,-0.087977,
+ 0.908421,-0.252311,-0.333333,0.225076,-0.174343,-0.372678,
+ 0.908421,-0.252311,-0.333333,0.308538,0.126156,-0.372678,
+ 0.527046,-0.408248,0.745356,0.471405,0,0.166667,
+ 0.527046,-0.408248,0.745356,0.263523,0.10775,0.372678,
+ 0.527046,-0.408248,0.745356,0,0,0.5,
+ 0.527046,-0.408248,0.745356,0.471405,0,0.166667,
+ 0.527046,-0.408248,0.745356,0,0,0.5,
+ 0.527046,-0.408248,0.745356,-0.038448,-0.282093,0.372678,
+ 0.527046,-0.408248,0.745356,0.471405,0,0.166667,
+ 0.527046,-0.408248,0.745356,-0.038448,-0.282093,0.372678,
+ 0.527046,-0.408248,0.745356,0.117851,-0.456436,0.166667,
+ 0.527047,-0.408249,0.745356,0.471405,0,0.166667,
+ 0.527047,-0.408249,0.745356,0.117851,-0.456436,0.166667,
+ 0.527047,-0.408249,0.745356,0.36418,-0.282093,0.087977,
+ -0.617077,-0.252311,0.745356,-0.225076,0.174343,0.372678,
+ -0.617077,-0.252311,0.745356,-0.45421,0.126156,0.166667,
+ -0.617077,-0.252311,0.745356,-0.426389,-0.174343,0.087977,
+ -0.617077,-0.252311,0.745356,-0.225076,0.174343,0.372678,
+ -0.617077,-0.252311,0.745356,-0.426389,-0.174343,0.087977,
+ -0.617077,-0.252311,0.745356,-0.235702,-0.408248,0.166667,
+ -0.617077,-0.252311,0.745356,-0.225076,0.174343,0.372678,
+ -0.617077,-0.252311,0.745356,-0.235702,-0.408248,0.166667,
+ -0.617077,-0.252311,0.745356,-0.038448,-0.282093,0.372678,
+ -0.617076,-0.252311,0.745356,-0.225076,0.174343,0.372678,
+ -0.617076,-0.252311,0.745356,-0.038448,-0.282093,0.372678,
+ -0.617076,-0.252311,0.745356,0,0,0.5,
+ -0.942809,0,-0.333333,-0.45421,0.126156,0.166667,
+ -0.942809,0,-0.333333,-0.36418,0.282093,-0.087977,
+ -0.942809,0,-0.333333,-0.263523,0.204124,-0.372678,
+ -0.942809,0,-0.333333,-0.45421,0.126156,0.166667,
+ -0.942809,0,-0.333333,-0.263523,0.204124,-0.372678,
+ -0.942809,0,-0.333333,-0.263523,-0.10775,-0.372678,
+ -0.942809,0,-0.333333,-0.45421,0.126156,0.166667,
+ -0.942809,0,-0.333333,-0.263523,-0.10775,-0.372678,
+ -0.942809,0,-0.333333,-0.336359,-0.33028,-0.166667,
+ -0.942809,0,-0.333333,-0.45421,0.126156,0.166667,
+ -0.942809,0,-0.333333,-0.336359,-0.33028,-0.166667,
+ -0.942809,0,-0.333333,-0.426389,-0.174343,0.087977,
+ -0.527046,0.408248,-0.745356,-0.36418,0.282093,-0.087977,
+ -0.527046,0.408248,-0.745356,-0.117851,0.456436,-0.166667,
+ -0.527046,0.408248,-0.745356,0.038448,0.282093,-0.372678,
+ -0.527046,0.408248,-0.745356,-0.36418,0.282093,-0.087977,
+ -0.527046,0.408248,-0.745356,0.038448,0.282093,-0.372678,
+ -0.527046,0.408248,-0.745356,0,0,-0.5,
+ -0.527046,0.408248,-0.745356,-0.36418,0.282093,-0.087977,
+ -0.527046,0.408248,-0.745356,0,0,-0.5,
+ -0.527046,0.408248,-0.745356,-0.263523,-0.10775,-0.372678,
+ -0.527046,0.408249,-0.745356,-0.36418,0.282093,-0.087977,
+ -0.527046,0.408249,-0.745356,-0.263523,-0.10775,-0.372678,
+ -0.527046,0.408249,-0.745356,-0.471405,0,-0.166667,
+ -0.672718,-0.66056,-0.333333,-0.426389,-0.174343,0.087977,
+ -0.672718,-0.66056,-0.333333,-0.471405,0,-0.166667,
+ -0.672718,-0.66056,-0.333333,-0.263523,-0.10775,-0.372678,
+ -0.672718,-0.66056,-0.333333,-0.426389,-0.174343,0.087977,
+ -0.672718,-0.66056,-0.333333,-0.263523,-0.10775,-0.372678,
+ -0.672718,-0.66056,-0.333333,-0.045015,-0.33028,-0.372678,
+ -0.672718,-0.66056,-0.333333,-0.426389,-0.174343,0.087977,
+ -0.672718,-0.66056,-0.333333,-0.045015,-0.33028,-0.372678,
+ -0.672718,-0.66056,-0.333333,-0.062209,-0.456436,-0.087977,
+ -0.672718,-0.66056,-0.333333,-0.426389,-0.174343,0.087977,
+ -0.672718,-0.66056,-0.333333,-0.062209,-0.456436,-0.087977,
+ -0.672718,-0.66056,-0.333333,-0.235702,-0.408248,0.166667,
+ -0.09003,-0.66056,-0.745356,-0.062209,-0.456436,-0.087977,
+ -0.09003,-0.66056,-0.745356,-0.336359,-0.33028,-0.166667,
+ -0.09003,-0.66056,-0.745356,-0.263523,-0.10775,-0.372678,
+ -0.09003,-0.66056,-0.745356,-0.062209,-0.456436,-0.087977,
+ -0.09003,-0.66056,-0.745356,-0.263523,-0.10775,-0.372678,
+ -0.09003,-0.66056,-0.745356,0,0,-0.5,
+ -0.09003,-0.66056,-0.745356,-0.062209,-0.456436,-0.087977,
+ -0.09003,-0.66056,-0.745356,0,0,-0.5,
+ -0.09003,-0.66056,-0.745356,0.225076,-0.174343,-0.372678,
+ -0.09003,-0.66056,-0.745356,-0.062209,-0.456436,-0.087977,
+ -0.09003,-0.66056,-0.745356,0.225076,-0.174343,-0.372678,
+ -0.09003,-0.66056,-0.745356,0.235702,-0.408248,-0.166667,
+ 0,0,-1,0.308538,0.126156,-0.372678,
+ 0,0,-1,0.225076,-0.174343,-0.372678,
+ 0,0,-1,-0.045015,-0.33028,-0.372678,
+ 0,0,-1,0.308538,0.126156,-0.372678,
+ 0,0,-1,-0.045015,-0.33028,-0.372678,
+ 0,0,-1,-0.263523,-0.10775,-0.372678,
+ 0,0,-1,0.308538,0.126156,-0.372678,
+ 0,0,-1,-0.263523,-0.10775,-0.372678,
+ 0,0,-1,-0.263523,0.204124,-0.372678,
+ 0,0,-1,0.308538,0.126156,-0.372678,
+ 0,0,-1,-0.263523,0.204124,-0.372678,
+ 0,0,-1,0.038448,0.282093,-0.372678
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,240,data,NULL};
+const struct gllist *tronbit_idle1=&frame;
diff --git a/hacks/glx/tronbit_idle2.c b/hacks/glx/tronbit_idle2.c
new file mode 100644
index 0000000..8ee0380
--- /dev/null
+++ b/hacks/glx/tronbit_idle2.c
@@ -0,0 +1,175 @@
+/* even parity = compound of icosahedron and dodecahedron */
+
+#include "gllist.h"
+static const float data[]={
+ 0.491123,0.356822,0.794655,0.138196,0.425326,0.223607,
+ 0.491123,0.356822,0.794655,0,0,0.5,
+ 0.491123,0.356822,0.794655,0.447213,0,0.223607,
+ -0.187593,0.57735,0.794655,-0.361804,0.262865,0.223607,
+ -0.187593,0.57735,0.794655,0,0,0.5,
+ -0.187593,0.57735,0.794655,0.138196,0.425326,0.223607,
+ -0.607062,0,0.794655,-0.361804,-0.262865,0.223607,
+ -0.607062,0,0.794655,0,0,0.5,
+ -0.607062,0,0.794655,-0.361804,0.262865,0.223607,
+ -0.187593,-0.57735,0.794655,0.138196,-0.425326,0.223607,
+ -0.187593,-0.57735,0.794655,0,0,0.5,
+ -0.187593,-0.57735,0.794655,-0.361804,-0.262865,0.223607,
+ 0.491123,-0.356822,0.794655,0,0,0.5,
+ 0.491123,-0.356822,0.794655,0.138196,-0.425326,0.223607,
+ 0.491123,-0.356822,0.794655,0.447213,0,0.223607,
+ 0.794655,-0.57735,0.187593,0.361804,-0.262865,-0.223607,
+ 0.794655,-0.57735,0.187593,0.447213,0,0.223607,
+ 0.794655,-0.57735,0.187593,0.138196,-0.425326,0.223607,
+ 0.982247,0,-0.187592,0.447213,0,0.223607,
+ 0.982247,0,-0.187592,0.361804,-0.262865,-0.223607,
+ 0.982247,0,-0.187592,0.361804,0.262865,-0.223607,
+ 0.794655,0.57735,0.187593,0.447213,0,0.223607,
+ 0.794655,0.57735,0.187593,0.361804,0.262865,-0.223607,
+ 0.794655,0.57735,0.187593,0.138196,0.425326,0.223607,
+ 0.303531,0.934172,-0.187592,-0.138196,0.425326,-0.223607,
+ 0.303531,0.934172,-0.187592,0.138196,0.425326,0.223607,
+ 0.303531,0.934172,-0.187592,0.361804,0.262865,-0.223607,
+ -0.303531,0.934172,0.187592,0.138196,0.425326,0.223607,
+ -0.303531,0.934172,0.187592,-0.138196,0.425326,-0.223607,
+ -0.303531,0.934172,0.187592,-0.361804,0.262865,0.223607,
+ -0.794655,0.57735,-0.187593,-0.447213,0,-0.223607,
+ -0.794655,0.57735,-0.187593,-0.361804,0.262865,0.223607,
+ -0.794655,0.57735,-0.187593,-0.138196,0.425326,-0.223607,
+ -0.982247,0,0.187592,-0.361804,0.262865,0.223607,
+ -0.982247,0,0.187592,-0.447213,0,-0.223607,
+ -0.982247,0,0.187592,-0.361804,-0.262865,0.223607,
+ -0.794655,-0.57735,-0.187593,-0.138196,-0.425326,-0.223607,
+ -0.794655,-0.57735,-0.187593,-0.361804,-0.262865,0.223607,
+ -0.794655,-0.57735,-0.187593,-0.447213,0,-0.223607,
+ -0.303531,-0.934172,0.187592,-0.361804,-0.262865,0.223607,
+ -0.303531,-0.934172,0.187592,-0.138196,-0.425326,-0.223607,
+ -0.303531,-0.934172,0.187592,0.138196,-0.425326,0.223607,
+ 0.303531,-0.934172,-0.187592,0.138196,-0.425326,0.223607,
+ 0.303531,-0.934172,-0.187592,-0.138196,-0.425326,-0.223607,
+ 0.303531,-0.934172,-0.187592,0.361804,-0.262865,-0.223607,
+ 0.607062,0,-0.794655,0,0,-0.5,
+ 0.607062,0,-0.794655,0.361804,0.262865,-0.223607,
+ 0.607062,0,-0.794655,0.361804,-0.262865,-0.223607,
+ 0.187593,0.57735,-0.794655,0.361804,0.262865,-0.223607,
+ 0.187593,0.57735,-0.794655,0,0,-0.5,
+ 0.187593,0.57735,-0.794655,-0.138196,0.425326,-0.223607,
+ 0.187593,-0.57735,-0.794655,0,0,-0.5,
+ 0.187593,-0.57735,-0.794655,0.361804,-0.262865,-0.223607,
+ 0.187593,-0.57735,-0.794655,-0.138196,-0.425326,-0.223607,
+ -0.491123,0.356822,-0.794655,-0.138196,0.425326,-0.223607,
+ -0.491123,0.356822,-0.794655,0,0,-0.5,
+ -0.491123,0.356822,-0.794655,-0.447213,0,-0.223607,
+ -0.491123,-0.356822,-0.794655,-0.447213,0,-0.223607,
+ -0.491123,-0.356822,-0.794655,0,0,-0.5,
+ -0.491123,-0.356822,-0.794655,-0.138196,-0.425326,-0.223607,
+ 0,0,1,0.223607,0.16246,0.361804,
+ 0,0,1,-0.08541,0.262865,0.361804,
+ 0,0,1,-0.276393,0,0.361804,
+ 0,0,1,0.223607,0.16246,0.361804,
+ 0,0,1,-0.276393,0,0.361804,
+ 0,0,1,-0.08541,-0.262865,0.361804,
+ 0,0,1,0.223607,0.16246,0.361804,
+ 0,0,1,-0.08541,-0.262865,0.361804,
+ 0,0,1,0.223607,-0.16246,0.361804,
+ 0.894427,0,0.447214,0.361804,-0.262865,0.08541,
+ 0.894427,0,0.447214,0.447213,0,-0.08541,
+ 0.894427,0,0.447214,0.361804,0.262865,0.08541,
+ 0.894428,0,0.447213,0.361804,-0.262865,0.08541,
+ 0.894428,0,0.447213,0.361804,0.262865,0.08541,
+ 0.894428,0,0.447213,0.223607,0.16246,0.361804,
+ 0.894428,0,0.447213,0.361804,-0.262865,0.08541,
+ 0.894428,0,0.447213,0.223607,0.16246,0.361804,
+ 0.894428,0,0.447213,0.223607,-0.16246,0.361804,
+ 0.276393,0.85065,0.447214,0.361804,0.262865,0.08541,
+ 0.276393,0.85065,0.447214,0.138196,0.425326,-0.08541,
+ 0.276393,0.85065,0.447214,-0.138196,0.425326,0.08541,
+ 0.276393,0.850651,0.447213,0.361804,0.262865,0.08541,
+ 0.276393,0.850651,0.447213,-0.138196,0.425326,0.08541,
+ 0.276393,0.850651,0.447213,-0.08541,0.262865,0.361804,
+ 0.276393,0.850652,0.447212,0.361804,0.262865,0.08541,
+ 0.276393,0.850652,0.447212,-0.08541,0.262865,0.361804,
+ 0.276393,0.850652,0.447212,0.223607,0.16246,0.361804,
+ -0.723606,0.525731,0.447215,-0.138196,0.425326,0.08541,
+ -0.723606,0.525731,0.447215,-0.361804,0.262865,-0.08541,
+ -0.723606,0.525731,0.447215,-0.447213,0,0.08541,
+ -0.723607,0.525731,0.447213,-0.138196,0.425326,0.08541,
+ -0.723607,0.525731,0.447213,-0.447213,0,0.08541,
+ -0.723607,0.525731,0.447213,-0.276393,0,0.361804,
+ -0.723607,0.525731,0.447214,-0.138196,0.425326,0.08541,
+ -0.723607,0.525731,0.447214,-0.276393,0,0.361804,
+ -0.723607,0.525731,0.447214,-0.08541,0.262865,0.361804,
+ -0.723606,-0.525731,0.447215,-0.447213,0,0.08541,
+ -0.723606,-0.525731,0.447215,-0.361804,-0.262865,-0.08541,
+ -0.723606,-0.525731,0.447215,-0.138196,-0.425326,0.08541,
+ -0.723607,-0.525731,0.447214,-0.447213,0,0.08541,
+ -0.723607,-0.525731,0.447214,-0.138196,-0.425326,0.08541,
+ -0.723607,-0.525731,0.447214,-0.08541,-0.262865,0.361804,
+ -0.723607,-0.525731,0.447213,-0.447213,0,0.08541,
+ -0.723607,-0.525731,0.447213,-0.08541,-0.262865,0.361804,
+ -0.723607,-0.525731,0.447213,-0.276393,0,0.361804,
+ 0.276393,-0.85065,0.447214,-0.138196,-0.425326,0.08541,
+ 0.276393,-0.85065,0.447214,0.138196,-0.425326,-0.08541,
+ 0.276393,-0.85065,0.447214,0.361804,-0.262865,0.08541,
+ 0.276394,-0.850651,0.447213,-0.138196,-0.425326,0.08541,
+ 0.276394,-0.850651,0.447213,0.361804,-0.262865,0.08541,
+ 0.276394,-0.850651,0.447213,0.223607,-0.16246,0.361804,
+ 0.276393,-0.850651,0.447214,-0.138196,-0.425326,0.08541,
+ 0.276393,-0.850651,0.447214,0.223607,-0.16246,0.361804,
+ 0.276393,-0.850651,0.447214,-0.08541,-0.262865,0.361804,
+ 0.723607,0.525731,-0.447213,0.447213,0,-0.08541,
+ 0.723607,0.525731,-0.447213,0.276393,0,-0.361804,
+ 0.723607,0.525731,-0.447213,0.08541,0.262865,-0.361804,
+ 0.723607,0.525731,-0.447214,0.447213,0,-0.08541,
+ 0.723607,0.525731,-0.447214,0.08541,0.262865,-0.361804,
+ 0.723607,0.525731,-0.447214,0.138196,0.425326,-0.08541,
+ 0.723606,0.525731,-0.447215,0.447213,0,-0.08541,
+ 0.723606,0.525731,-0.447215,0.138196,0.425326,-0.08541,
+ 0.723606,0.525731,-0.447215,0.361804,0.262865,0.08541,
+ 0.723606,-0.525732,-0.447214,0.361804,-0.262865,0.08541,
+ 0.723606,-0.525732,-0.447214,0.138196,-0.425326,-0.08541,
+ 0.723606,-0.525732,-0.447214,0.08541,-0.262865,-0.361804,
+ 0.723607,-0.525731,-0.447214,0.361804,-0.262865,0.08541,
+ 0.723607,-0.525731,-0.447214,0.08541,-0.262865,-0.361804,
+ 0.723607,-0.525731,-0.447214,0.276393,0,-0.361804,
+ 0.723607,-0.52573,-0.447214,0.361804,-0.262865,0.08541,
+ 0.723607,-0.52573,-0.447214,0.276393,0,-0.361804,
+ 0.723607,-0.52573,-0.447214,0.447213,0,-0.08541,
+ -0.276393,0.850651,-0.447214,0.138196,0.425326,-0.08541,
+ -0.276393,0.850651,-0.447214,0.08541,0.262865,-0.361804,
+ -0.276393,0.850651,-0.447214,-0.223607,0.16246,-0.361804,
+ -0.276394,0.850651,-0.447213,0.138196,0.425326,-0.08541,
+ -0.276394,0.850651,-0.447213,-0.223607,0.16246,-0.361804,
+ -0.276394,0.850651,-0.447213,-0.361804,0.262865,-0.08541,
+ -0.276393,0.85065,-0.447214,0.138196,0.425326,-0.08541,
+ -0.276393,0.85065,-0.447214,-0.361804,0.262865,-0.08541,
+ -0.276393,0.85065,-0.447214,-0.138196,0.425326,0.08541,
+ -0.894428,0,-0.447213,-0.361804,0.262865,-0.08541,
+ -0.894428,0,-0.447213,-0.223607,0.16246,-0.361804,
+ -0.894428,0,-0.447213,-0.223607,-0.16246,-0.361804,
+ -0.894428,0,-0.447213,-0.361804,0.262865,-0.08541,
+ -0.894428,0,-0.447213,-0.223607,-0.16246,-0.361804,
+ -0.894428,0,-0.447213,-0.361804,-0.262865,-0.08541,
+ -0.894427,0,-0.447214,-0.361804,0.262865,-0.08541,
+ -0.894427,0,-0.447214,-0.361804,-0.262865,-0.08541,
+ -0.894427,0,-0.447214,-0.447213,0,0.08541,
+ -0.276393,-0.850652,-0.447212,-0.361804,-0.262865,-0.08541,
+ -0.276393,-0.850652,-0.447212,-0.223607,-0.16246,-0.361804,
+ -0.276393,-0.850652,-0.447212,0.08541,-0.262865,-0.361804,
+ -0.276393,-0.850651,-0.447213,-0.361804,-0.262865,-0.08541,
+ -0.276393,-0.850651,-0.447213,0.08541,-0.262865,-0.361804,
+ -0.276393,-0.850651,-0.447213,0.138196,-0.425326,-0.08541,
+ -0.276393,-0.85065,-0.447214,-0.361804,-0.262865,-0.08541,
+ -0.276393,-0.85065,-0.447214,0.138196,-0.425326,-0.08541,
+ -0.276393,-0.85065,-0.447214,-0.138196,-0.425326,0.08541,
+ 0,0,-1,0.08541,-0.262865,-0.361804,
+ 0,0,-1,-0.223607,-0.16246,-0.361804,
+ 0,0,-1,-0.223607,0.16246,-0.361804,
+ 0,0,-1,0.08541,-0.262865,-0.361804,
+ 0,0,-1,-0.223607,0.16246,-0.361804,
+ 0,0,-1,0.08541,0.262865,-0.361804,
+ 0,0,-1,0.08541,-0.262865,-0.361804,
+ 0,0,-1,0.08541,0.262865,-0.361804,
+ 0,0,-1,0.276393,0,-0.361804
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,168,data,NULL};
+const struct gllist *tronbit_idle2=&frame;
diff --git a/hacks/glx/tronbit_no.c b/hacks/glx/tronbit_no.c
new file mode 100644
index 0000000..305790d
--- /dev/null
+++ b/hacks/glx/tronbit_no.c
@@ -0,0 +1,1087 @@
+/* no = second stellation of icosahedron */
+
+#include "gllist.h"
+static const float data[]={
+ -0.491121,-0.356821,-0.794656,-0.072949,0.100406,-0.118034,
+ -0.491121,-0.356821,-0.794656,-0.11459,0.117557,-0.1,
+ -0.491121,-0.356821,-0.794656,-0.138196,0.425325,-0.223606,
+ -0.491129,-0.356821,-0.794652,-0.038197,0.117557,-0.147214,
+ -0.491129,-0.356821,-0.794652,-0.072949,0.100406,-0.118034,
+ -0.491129,-0.356821,-0.794652,-0.138196,0.425325,-0.223606,
+ -0.491121,-0.356826,-0.794654,-0.138196,-0.100406,0.012461,
+ -0.491121,-0.356826,-0.794654,-0.123606,-0.145308,0.023607,
+ -0.491121,-0.356826,-0.794654,-0.361803,-0.262865,0.223606,
+ -0.491119,-0.356829,-0.794654,-0.176394,-0.072654,0.023607,
+ -0.491119,-0.356829,-0.794654,-0.138196,-0.100406,0.012461,
+ -0.491119,-0.356829,-0.794654,-0.361803,-0.262865,0.223606,
+ -0.491125,-0.356827,-0.794651,0.072949,-0.100406,-0.118034,
+ -0.491125,-0.356827,-0.794651,0.1,-0.072654,-0.147214,
+ -0.491125,-0.356827,-0.794651,0.361803,-0.262865,-0.223606,
+ -0.491124,-0.356824,-0.794654,0.076393,-0.145308,-0.1,
+ -0.491124,-0.356824,-0.794654,0.072949,-0.100406,-0.118034,
+ -0.491124,-0.356824,-0.794654,0.361803,-0.262865,-0.223606,
+ -0.491124,-0.356822,-0.794654,-0.150658,0.062054,-0.052786,
+ -0.491124,-0.356822,-0.794654,-0.18541,0.044903,-0.023607,
+ -0.491124,-0.356822,-0.794654,-0.223606,0.162459,-0.052786,
+ -0.491128,-0.356819,-0.794653,-0.052786,-0.162459,-0.012461,
+ -0.491128,-0.356819,-0.794653,-0.01459,-0.190211,-0.023607,
+ -0.491128,-0.356819,-0.794653,-0.08541,-0.262865,0.052786,
+ -0.491122,-0.356835,-0.79465,0.065247,0,-0.158359,
+ -0.491122,-0.356835,-0.79465,0.061803,0.044903,-0.176394,
+ -0.491122,-0.356835,-0.79465,0.17082,0,-0.223606,
+ -0.491135,-0.356817,-0.79465,0.061803,0.044903,-0.176394,
+ -0.491135,-0.356817,-0.79465,0.020163,0.062054,-0.158359,
+ -0.491135,-0.356817,-0.79465,0.052786,0.162459,-0.223606,
+ -0.491124,-0.356824,-0.794654,-0.18541,0.044903,-0.023607,
+ -0.491124,-0.356824,-0.794654,-0.17082,0,-0.012461,
+ -0.491124,-0.356824,-0.794654,-0.276393,0,0.052786,
+ -0.49112,-0.35682,-0.794658,-0.01459,-0.190211,-0.023607,
+ -0.49112,-0.35682,-0.794658,0.012461,-0.162459,-0.052786,
+ -0.49112,-0.35682,-0.794658,0.08541,-0.262865,-0.052786,
+ -0.491124,-0.35682,-0.794655,-0.11459,0.117557,-0.1,
+ -0.491124,-0.35682,-0.794655,-0.111804,0.08123,-0.08541,
+ -0.491124,-0.35682,-0.794655,-0.223606,0.162459,-0.052786,
+ -0.491133,-0.356822,-0.794648,-0.123606,-0.145308,0.023607,
+ -0.491133,-0.356822,-0.794648,-0.095491,-0.131433,0,
+ -0.491133,-0.356822,-0.794648,-0.08541,-0.262865,0.052786,
+ -0.491129,-0.356813,-0.794655,0.1,-0.072654,-0.147214,
+ -0.491129,-0.356813,-0.794655,0.069098,-0.050203,-0.138196,
+ -0.491129,-0.356813,-0.794655,0.17082,0,-0.223606,
+ -0.491117,-0.35683,-0.794655,-0.026393,0.08123,-0.138196,
+ -0.491117,-0.35683,-0.794655,-0.038197,0.117557,-0.147214,
+ -0.491117,-0.35683,-0.794655,0.052786,0.162459,-0.223606,
+ -0.491122,-0.356812,-0.79466,-0.154508,-0.050203,0,
+ -0.491122,-0.356812,-0.79466,-0.176394,-0.072654,0.023607,
+ -0.491122,-0.356812,-0.79466,-0.276393,0,0.052786,
+ -0.491117,-0.356823,-0.794658,0.042705,-0.131433,-0.08541,
+ -0.491117,-0.356823,-0.794658,0.076393,-0.145308,-0.1,
+ -0.491117,-0.356823,-0.794658,0.08541,-0.262865,-0.052786,
+ -0.607065,0.000003,0.794652,0,0.124108,0.118034,
+ -0.607065,0.000003,0.794652,0.038197,0.117557,0.147214,
+ -0.607065,0.000003,0.794652,0.138196,0.425325,0.223606,
+ -0.607062,0,0.794655,-0.023607,0.162459,0.1,
+ -0.607062,0,0.794655,0,0.124108,0.118034,
+ -0.607062,0,0.794655,0.138196,0.425325,0.223606,
+ -0.607062,0,0.794655,0,-0.124108,0.118034,
+ -0.607062,0,0.794655,-0.023607,-0.162459,0.1,
+ -0.607062,0,0.794655,0.138196,-0.425325,0.223606,
+ -0.607065,-0.000003,0.794652,0.038197,-0.117557,0.147214,
+ -0.607065,-0.000003,0.794652,0,-0.124108,0.118034,
+ -0.607065,-0.000003,0.794652,0.138196,-0.425325,0.223606,
+ -0.607062,-0.000002,0.794654,-0.17082,0,-0.012461,
+ -0.607062,-0.000002,0.794654,-0.18541,0.044903,-0.023607,
+ -0.607062,-0.000002,0.794654,-0.447213,0,-0.223606,
+ -0.607062,0.000002,0.794654,-0.18541,-0.044903,-0.023607,
+ -0.607062,0.000002,0.794654,-0.17082,0,-0.012461,
+ -0.607062,0.000002,0.794654,-0.447213,0,-0.223606,
+ -0.607069,0.000012,0.794649,0.052786,0.038352,0.158359,
+ -0.607069,0.000012,0.794649,0.076393,0,0.176394,
+ -0.607069,0.000012,0.794649,0.138196,0.100406,0.223606,
+ -0.607066,0,0.794652,-0.08541,-0.138758,0.052786,
+ -0.607066,0,0.794652,-0.123606,-0.145308,0.023607,
+ -0.607066,0,0.794652,-0.08541,-0.262865,0.052786,
+ -0.607061,0.000001,0.794655,-0.138196,0.100406,0.012461,
+ -0.607061,0.000001,0.794655,-0.123606,0.145308,0.023607,
+ -0.607061,0.000001,0.794655,-0.223606,0.162459,-0.052786,
+ -0.607066,0,0.794652,-0.123606,0.145308,0.023607,
+ -0.607066,0,0.794652,-0.08541,0.138758,0.052786,
+ -0.607066,0,0.794652,-0.08541,0.262865,0.052786,
+ -0.607069,-0.000012,0.794649,0.076393,0,0.176394,
+ -0.607069,-0.000012,0.794649,0.052786,-0.038352,0.158359,
+ -0.607069,-0.000012,0.794649,0.138196,-0.100406,0.223606,
+ -0.607061,-0.000001,0.794655,-0.123606,-0.145308,0.023607,
+ -0.607061,-0.000001,0.794655,-0.138196,-0.100406,0.012461,
+ -0.607061,-0.000001,0.794655,-0.223606,-0.162459,-0.052786,
+ -0.607061,-0.00001,0.794655,0.038197,0.117557,0.147214,
+ -0.607061,-0.00001,0.794655,0.026393,0.08123,0.138196,
+ -0.607061,-0.00001,0.794655,0.138196,0.100406,0.223606,
+ -0.607061,0,0.794655,-0.023607,-0.162459,0.1,
+ -0.607061,0,0.794655,-0.042705,-0.131433,0.08541,
+ -0.607061,0,0.794655,-0.08541,-0.262865,0.052786,
+ -0.60706,0.000002,0.794656,-0.18541,0.044903,-0.023607,
+ -0.60706,0.000002,0.794656,-0.154508,0.050203,0,
+ -0.60706,0.000002,0.794656,-0.223606,0.162459,-0.052786,
+ -0.607061,0,0.794655,-0.042705,0.131433,0.08541,
+ -0.607061,0,0.794655,-0.023607,0.162459,0.1,
+ -0.607061,0,0.794655,-0.08541,0.262865,0.052786,
+ -0.607061,0.00001,0.794655,0.026393,-0.08123,0.138196,
+ -0.607061,0.00001,0.794655,0.038197,-0.117557,0.147214,
+ -0.607061,0.00001,0.794655,0.138196,-0.100406,0.223606,
+ -0.60706,-0.000002,0.794656,-0.154508,-0.050203,0,
+ -0.60706,-0.000002,0.794656,-0.18541,-0.044903,-0.023607,
+ -0.60706,-0.000002,0.794656,-0.223606,-0.162459,-0.052786,
+ 0.303526,0.934174,-0.187592,0.020163,0.062054,-0.158359,
+ 0.303526,0.934174,-0.187592,0.061803,0.044903,-0.176394,
+ 0.303526,0.934174,-0.187592,0,0,-0.5,
+ 0.303535,0.934171,-0.187592,-0.023607,0.072654,-0.176394,
+ 0.303535,0.934171,-0.187592,0.020163,0.062054,-0.158359,
+ 0.303535,0.934171,-0.187592,0,0,-0.5,
+ 0.303532,0.934172,-0.187594,0.150658,0.062054,0.052786,
+ 0.303532,0.934172,-0.187594,0.147214,0.072654,0.1,
+ 0.303532,0.934172,-0.187594,0.447213,0,0.223606,
+ 0.303531,0.934173,-0.187591,0.18541,0.044903,0.023607,
+ 0.303531,0.934173,-0.187591,0.150658,0.062054,0.052786,
+ 0.303531,0.934173,-0.187591,0.447213,0,0.223606,
+ 0.303523,0.934173,-0.187603,-0.08541,0.138758,0.052786,
+ 0.303523,0.934173,-0.187603,-0.123606,0.145308,0.023607,
+ 0.303523,0.934173,-0.187603,-0.361803,0.262865,0.223606,
+ 0.303538,0.934173,-0.187579,-0.076393,0.145308,0.1,
+ 0.303538,0.934173,-0.187579,-0.08541,0.138758,0.052786,
+ 0.303538,0.934173,-0.187579,-0.361803,0.262865,0.223606,
+ 0.303529,0.934173,-0.187594,0.118034,0.038352,-0.118034,
+ 0.303529,0.934173,-0.187594,0.161804,0.027751,-0.1,
+ 0.303529,0.934173,-0.187594,0.17082,0,-0.223606,
+ 0.30353,0.934173,-0.187591,0.072949,0.100406,0.118034,
+ 0.30353,0.934173,-0.187591,0.038197,0.117557,0.147214,
+ 0.30353,0.934173,-0.187591,0.138196,0.100406,0.223606,
+ 0.303526,0.934172,-0.187599,-0.105573,0.124108,-0.052786,
+ 0.303526,0.934172,-0.187599,-0.11459,0.117557,-0.1,
+ 0.303526,0.934172,-0.187599,-0.223606,0.162459,-0.052786,
+ 0.30353,0.934173,-0.187591,-0.11459,0.117557,-0.1,
+ 0.30353,0.934173,-0.187591,-0.072949,0.100406,-0.118034,
+ 0.30353,0.934173,-0.187591,-0.138196,0.100406,-0.223606,
+ 0.303531,0.934173,-0.187588,0.161804,0.027751,-0.1,
+ 0.303531,0.934173,-0.187588,0.158359,0.038352,-0.052786,
+ 0.303531,0.934173,-0.187588,0.276393,0,-0.052786,
+ 0.303534,0.934173,-0.187586,0.038197,0.117557,0.147214,
+ 0.303534,0.934173,-0.187586,0,0.124108,0.118034,
+ 0.303534,0.934173,-0.187586,-0.052786,0.162459,0.223606,
+ 0.303535,0.934172,-0.187588,0.061803,0.044903,-0.176394,
+ 0.303535,0.934172,-0.187588,0.069098,0.050203,-0.138196,
+ 0.303535,0.934172,-0.187588,0.17082,0,-0.223606,
+ 0.303531,0.934173,-0.187592,0.147214,0.072654,0.1,
+ 0.303531,0.934173,-0.187592,0.111804,0.08123,0.08541,
+ 0.303531,0.934173,-0.187592,0.138196,0.100406,0.223606,
+ 0.303524,0.934177,-0.187583,-0.123606,0.145308,0.023607,
+ 0.303524,0.934177,-0.187583,-0.095491,0.131433,0,
+ 0.303524,0.934177,-0.187583,-0.223606,0.162459,-0.052786,
+ 0.303529,0.934174,-0.187588,-0.026393,0.08123,-0.138196,
+ 0.303529,0.934174,-0.187588,-0.023607,0.072654,-0.176394,
+ 0.303529,0.934174,-0.187588,-0.138196,0.100406,-0.223606,
+ 0.30353,0.934172,-0.187595,0.154508,0.050203,0,
+ 0.30353,0.934172,-0.187595,0.18541,0.044903,0.023607,
+ 0.30353,0.934172,-0.187595,0.276393,0,-0.052786,
+ 0.303516,0.934178,-0.18759,-0.042705,0.131433,0.08541,
+ 0.303516,0.934178,-0.18759,-0.076393,0.145308,0.1,
+ 0.303516,0.934178,-0.18759,-0.052786,0.162459,0.223606,
+ 0.794658,-0.577347,0.187587,0.012461,-0.162459,-0.052786,
+ 0.794658,-0.577347,0.187587,-0.01459,-0.190211,-0.023607,
+ 0.794658,-0.577347,0.187587,-0.138196,-0.425325,-0.223606,
+ 0.794655,-0.577349,0.187593,0.023607,-0.162459,-0.1,
+ 0.794655,-0.577349,0.187593,0.012461,-0.162459,-0.052786,
+ 0.794655,-0.577349,0.187593,-0.138196,-0.425325,-0.223606,
+ 0.794653,-0.577353,0.187592,0.052786,-0.038352,0.158359,
+ 0.794653,-0.577353,0.187592,0.076393,0,0.176394,
+ 0.794653,-0.577353,0.187592,0,0,0.5,
+ 0.794657,-0.577347,0.187592,0.023607,-0.072654,0.176394,
+ 0.794657,-0.577347,0.187592,0.052786,-0.038352,0.158359,
+ 0.794657,-0.577347,0.187592,0,0,0.5,
+ 0.794656,-0.577344,0.187604,0.158359,0.038352,-0.052786,
+ 0.794656,-0.577344,0.187604,0.161804,0.027751,-0.1,
+ 0.794656,-0.577344,0.187604,0.361803,0.262865,-0.223606,
+ 0.794652,-0.577358,0.18758,0.176394,0.072654,-0.023607,
+ 0.794652,-0.577358,0.18758,0.158359,0.038352,-0.052786,
+ 0.794652,-0.577358,0.18758,0.361803,0.262865,-0.223606,
+ 0.794654,-0.57735,0.187593,-0.012461,-0.162459,0.052786,
+ 0.794654,-0.57735,0.187593,-0.023607,-0.162459,0.1,
+ 0.794654,-0.57735,0.187593,-0.08541,-0.262865,0.052786,
+ 0.794652,-0.577353,0.187596,0.118034,0.038352,0.118034,
+ 0.794652,-0.577353,0.187596,0.147214,0.072654,0.1,
+ 0.794652,-0.577353,0.187596,0.138196,0.100406,0.223606,
+ 0.794654,-0.577351,0.187592,0.118034,-0.038352,-0.118034,
+ 0.794654,-0.577351,0.187592,0.1,-0.072654,-0.147214,
+ 0.794654,-0.577351,0.187592,0.17082,0,-0.223606,
+ 0.794655,-0.57735,0.18759,0.1,-0.072654,-0.147214,
+ 0.794655,-0.57735,0.18759,0.072949,-0.100406,-0.118034,
+ 0.794655,-0.57735,0.18759,0.052786,-0.162459,-0.223606,
+ 0.79465,-0.577356,0.187592,-0.023607,-0.162459,0.1,
+ 0.79465,-0.577356,0.187592,0,-0.124108,0.118034,
+ 0.79465,-0.577356,0.187592,-0.052786,-0.162459,0.223606,
+ 0.794655,-0.577351,0.187588,0.147214,0.072654,0.1,
+ 0.794655,-0.577351,0.187588,0.150658,0.062054,0.052786,
+ 0.794655,-0.577351,0.187588,0.223606,0.162459,0.052786,
+ 0.794655,-0.577346,0.187602,-0.01459,-0.190211,-0.023607,
+ 0.794655,-0.577346,0.187602,0,-0.162459,0,
+ 0.794655,-0.577346,0.187602,-0.08541,-0.262865,0.052786,
+ 0.794657,-0.577348,0.18759,0.076393,0,0.176394,
+ 0.794657,-0.577348,0.18759,0.08541,0,0.138196,
+ 0.794657,-0.577348,0.18759,0.138196,0.100406,0.223606,
+ 0.794646,-0.577362,0.187591,0.161804,0.027751,-0.1,
+ 0.794646,-0.577362,0.187591,0.138196,0,-0.08541,
+ 0.794646,-0.577362,0.187591,0.17082,0,-0.223606,
+ 0.794649,-0.577358,0.187592,0.042705,-0.131433,-0.08541,
+ 0.794649,-0.577358,0.187592,0.023607,-0.162459,-0.1,
+ 0.794649,-0.577358,0.187592,0.052786,-0.162459,-0.223606,
+ 0.794652,-0.577354,0.18759,0.026393,-0.08123,0.138196,
+ 0.794652,-0.577354,0.18759,0.023607,-0.072654,0.176394,
+ 0.794652,-0.577354,0.18759,-0.052786,-0.162459,0.223606,
+ 0.794648,-0.577354,0.187607,0.154508,0.050203,0,
+ 0.794648,-0.577354,0.187607,0.176394,0.072654,-0.023607,
+ 0.794648,-0.577354,0.187607,0.223606,0.162459,0.052786,
+ -0.187591,0.577356,0.794651,0.118034,0.038352,0.118034,
+ -0.187591,0.577356,0.794651,0.123606,0,0.147214,
+ -0.187591,0.577356,0.794651,0.447213,0,0.223606,
+ -0.187592,0.577351,0.794654,0.147214,0.072654,0.1,
+ -0.187592,0.577351,0.794654,0.118034,0.038352,0.118034,
+ -0.187592,0.577351,0.794654,0.447213,0,0.223606,
+ -0.187591,0.577349,0.794656,-0.118034,-0.038352,0.118034,
+ -0.187591,0.577349,0.794656,-0.161804,-0.027751,0.1,
+ -0.187591,0.577349,0.794656,-0.361803,-0.262865,0.223606,
+ -0.187596,0.577353,0.794652,-0.1,-0.072654,0.147214,
+ -0.187596,0.577353,0.794652,-0.118034,-0.038352,0.118034,
+ -0.187596,0.577353,0.794652,-0.361803,-0.262865,0.223606,
+ -0.1876,0.577347,0.794655,-0.052786,0.162459,-0.012461,
+ -0.1876,0.577347,0.794655,-0.01459,0.190211,-0.023607,
+ -0.1876,0.577347,0.794655,-0.138196,0.425325,-0.223606,
+ -0.187593,0.577349,0.794655,-0.1,0.162459,-0.023607,
+ -0.187593,0.577349,0.794655,-0.052786,0.162459,-0.012461,
+ -0.187593,0.577349,0.794655,-0.138196,0.425325,-0.223606,
+ -0.187583,0.57736,0.79465,0.052786,-0.038352,0.158359,
+ -0.187583,0.57736,0.79465,0.023607,-0.072654,0.176394,
+ -0.187583,0.57736,0.79465,0.138196,-0.100406,0.223606,
+ -0.187592,0.577347,0.794657,-0.158359,0.038352,0.052786,
+ -0.187592,0.577347,0.794657,-0.176394,0.072654,0.023607,
+ -0.187592,0.577347,0.794657,-0.276393,0,0.052786,
+ -0.187593,0.57735,0.794654,0.052786,0.162459,0.012461,
+ -0.187593,0.57735,0.794654,0.1,0.162459,0.023607,
+ -0.187593,0.57735,0.794654,0.08541,0.262865,-0.052786,
+ -0.187592,0.577357,0.79465,0.1,0.162459,0.023607,
+ -0.187592,0.577357,0.79465,0.105573,0.124108,0.052786,
+ -0.187592,0.577357,0.79465,0.223606,0.162459,0.052786,
+ -0.187605,0.577354,0.794649,0.023607,-0.072654,0.176394,
+ -0.187605,0.577354,0.794649,-0.020163,-0.062054,0.158359,
+ -0.187605,0.577354,0.794649,-0.052786,-0.162459,0.223606,
+ -0.187591,0.577354,0.794652,-0.176394,0.072654,0.023607,
+ -0.187591,0.577354,0.794652,-0.138196,0.100406,0.012461,
+ -0.187591,0.577354,0.794652,-0.223606,0.162459,-0.052786,
+ -0.187604,0.577345,0.794656,0.123606,0,0.147214,
+ -0.187604,0.577345,0.794656,0.08541,0,0.138196,
+ -0.187604,0.577345,0.794656,0.138196,-0.100406,0.223606,
+ -0.187593,0.577352,0.794653,-0.161804,-0.027751,0.1,
+ -0.187593,0.577352,0.794653,-0.138196,0,0.08541,
+ -0.187593,0.577352,0.794653,-0.276393,0,0.052786,
+ -0.187583,0.577345,0.79466,-0.01459,0.190211,-0.023607,
+ -0.187583,0.577345,0.79466,0,0.162459,0,
+ -0.187583,0.577345,0.79466,0.08541,0.262865,-0.052786,
+ -0.187592,0.577351,0.794654,0.111804,0.08123,0.08541,
+ -0.187592,0.577351,0.794654,0.147214,0.072654,0.1,
+ -0.187592,0.577351,0.794654,0.223606,0.162459,0.052786,
+ -0.187584,0.577353,0.794655,-0.069098,-0.050203,0.138196,
+ -0.187584,0.577353,0.794655,-0.1,-0.072654,0.147214,
+ -0.187584,0.577353,0.794655,-0.052786,-0.162459,0.223606,
+ -0.187591,0.577359,0.794648,-0.095491,0.131433,0,
+ -0.187591,0.577359,0.794648,-0.1,0.162459,-0.023607,
+ -0.187591,0.577359,0.794648,-0.223606,0.162459,-0.052786,
+ -0.491124,0.356824,-0.794654,0.072949,0.100406,-0.118034,
+ -0.491124,0.356824,-0.794654,0.076393,0.145308,-0.1,
+ -0.491124,0.356824,-0.794654,0.361803,0.262865,-0.223606,
+ -0.491125,0.356827,-0.794651,0.1,0.072654,-0.147214,
+ -0.491125,0.356827,-0.794651,0.072949,0.100406,-0.118034,
+ -0.491125,0.356827,-0.794651,0.361803,0.262865,-0.223606,
+ -0.491119,0.356829,-0.794654,-0.138196,0.100406,0.012461,
+ -0.491119,0.356829,-0.794654,-0.176394,0.072654,0.023607,
+ -0.491119,0.356829,-0.794654,-0.361803,0.262865,0.223606,
+ -0.491121,0.356826,-0.794654,-0.123606,0.145308,0.023607,
+ -0.491121,0.356826,-0.794654,-0.138196,0.100406,0.012461,
+ -0.491121,0.356826,-0.794654,-0.361803,0.262865,0.223606,
+ -0.491129,0.356821,-0.794652,-0.072949,-0.100406,-0.118034,
+ -0.491129,0.356821,-0.794652,-0.038197,-0.117557,-0.147214,
+ -0.491129,0.356821,-0.794652,-0.138196,-0.425325,-0.223606,
+ -0.491121,0.356821,-0.794656,-0.11459,-0.117557,-0.1,
+ -0.491121,0.356821,-0.794656,-0.072949,-0.100406,-0.118034,
+ -0.491121,0.356821,-0.794656,-0.138196,-0.425325,-0.223606,
+ -0.49112,0.35682,-0.794658,0.012461,0.162459,-0.052786,
+ -0.49112,0.35682,-0.794658,-0.01459,0.190211,-0.023607,
+ -0.49112,0.35682,-0.794658,0.08541,0.262865,-0.052786,
+ -0.491124,0.356824,-0.794654,-0.17082,0,-0.012461,
+ -0.491124,0.356824,-0.794654,-0.18541,-0.044903,-0.023607,
+ -0.491124,0.356824,-0.794654,-0.276393,0,0.052786,
+ -0.491135,0.356817,-0.79465,0.020163,-0.062054,-0.158359,
+ -0.491135,0.356817,-0.79465,0.061803,-0.044903,-0.176394,
+ -0.491135,0.356817,-0.79465,0.052786,-0.162459,-0.223606,
+ -0.491122,0.356835,-0.79465,0.061803,-0.044903,-0.176394,
+ -0.491122,0.356835,-0.79465,0.065247,0,-0.158359,
+ -0.491122,0.356835,-0.79465,0.17082,0,-0.223606,
+ -0.491128,0.356819,-0.794653,-0.01459,0.190211,-0.023607,
+ -0.491128,0.356819,-0.794653,-0.052786,0.162459,-0.012461,
+ -0.491128,0.356819,-0.794653,-0.08541,0.262865,0.052786,
+ -0.491124,0.356822,-0.794654,-0.18541,-0.044903,-0.023607,
+ -0.491124,0.356822,-0.794654,-0.150658,-0.062054,-0.052786,
+ -0.491124,0.356822,-0.794654,-0.223606,-0.162459,-0.052786,
+ -0.491117,0.356823,-0.794658,0.076393,0.145308,-0.1,
+ -0.491117,0.356823,-0.794658,0.042705,0.131433,-0.08541,
+ -0.491117,0.356823,-0.794658,0.08541,0.262865,-0.052786,
+ -0.491122,0.356812,-0.79466,-0.176394,0.072654,0.023607,
+ -0.491122,0.356812,-0.79466,-0.154508,0.050203,0,
+ -0.491122,0.356812,-0.79466,-0.276393,0,0.052786,
+ -0.491117,0.35683,-0.794655,-0.038197,-0.117557,-0.147214,
+ -0.491117,0.35683,-0.794655,-0.026393,-0.08123,-0.138196,
+ -0.491117,0.35683,-0.794655,0.052786,-0.162459,-0.223606,
+ -0.491129,0.356813,-0.794655,0.069098,0.050203,-0.138196,
+ -0.491129,0.356813,-0.794655,0.1,0.072654,-0.147214,
+ -0.491129,0.356813,-0.794655,0.17082,0,-0.223606,
+ -0.491133,0.356822,-0.794648,-0.095491,0.131433,0,
+ -0.491133,0.356822,-0.794648,-0.123606,0.145308,0.023607,
+ -0.491133,0.356822,-0.794648,-0.08541,0.262865,0.052786,
+ -0.491124,0.35682,-0.794655,-0.111804,-0.08123,-0.08541,
+ -0.491124,0.35682,-0.794655,-0.11459,-0.117557,-0.1,
+ -0.491124,0.35682,-0.794655,-0.223606,-0.162459,-0.052786,
+ 0.982247,0.000005,-0.187592,0.065247,0,-0.158359,
+ 0.982247,0.000005,-0.187592,0.061803,-0.044903,-0.176394,
+ 0.982247,0.000005,-0.187592,0,0,-0.5,
+ 0.982247,-0.000005,-0.187592,0.061803,0.044903,-0.176394,
+ 0.982247,-0.000005,-0.187592,0.065247,0,-0.158359,
+ 0.982247,-0.000005,-0.187592,0,0,-0.5,
+ 0.982245,-0.000005,-0.187601,0.105573,-0.124108,0.052786,
+ 0.982245,-0.000005,-0.187601,0.11459,-0.117557,0.1,
+ 0.982245,-0.000005,-0.187601,0.138196,-0.425325,0.223606,
+ 0.982248,0.000002,-0.187589,0.1,-0.162459,0.023607,
+ 0.982248,0.000002,-0.187589,0.105573,-0.124108,0.052786,
+ 0.982248,0.000002,-0.187589,0.138196,-0.425325,0.223606,
+ 0.982248,-0.000002,-0.187589,0.105573,0.124108,0.052786,
+ 0.982248,-0.000002,-0.187589,0.1,0.162459,0.023607,
+ 0.982248,-0.000002,-0.187589,0.138196,0.425325,0.223606,
+ 0.982245,0.000005,-0.187601,0.11459,0.117557,0.1,
+ 0.982245,0.000005,-0.187601,0.105573,0.124108,0.052786,
+ 0.982245,0.000005,-0.187601,0.138196,0.425325,0.223606,
+ 0.982247,-0.000001,-0.187593,0.072949,-0.100406,-0.118034,
+ 0.982247,-0.000001,-0.187593,0.076393,-0.145308,-0.1,
+ 0.982247,-0.000001,-0.187593,0.052786,-0.162459,-0.223606,
+ 0.982248,0.000006,-0.187588,0.118034,-0.038352,0.118034,
+ 0.982248,0.000006,-0.187588,0.123606,0,0.147214,
+ 0.982248,0.000006,-0.187588,0.138196,-0.100406,0.223606,
+ 0.982247,0,-0.187593,0.08541,0.138758,-0.052786,
+ 0.982247,0,-0.187593,0.076393,0.145308,-0.1,
+ 0.982247,0,-0.187593,0.08541,0.262865,-0.052786,
+ 0.982247,0.000001,-0.187593,0.076393,0.145308,-0.1,
+ 0.982247,0.000001,-0.187593,0.072949,0.100406,-0.118034,
+ 0.982247,0.000001,-0.187593,0.052786,0.162459,-0.223606,
+ 0.982247,0,-0.187593,0.076393,-0.145308,-0.1,
+ 0.982247,0,-0.187593,0.08541,-0.138758,-0.052786,
+ 0.982247,0,-0.187593,0.08541,-0.262865,-0.052786,
+ 0.982248,-0.000006,-0.187588,0.123606,0,0.147214,
+ 0.982248,-0.000006,-0.187588,0.118034,0.038352,0.118034,
+ 0.982248,-0.000006,-0.187588,0.138196,0.100406,0.223606,
+ 0.982248,-0.000003,-0.187589,0.061803,-0.044903,-0.176394,
+ 0.982248,-0.000003,-0.187589,0.069098,-0.050203,-0.138196,
+ 0.982248,-0.000003,-0.187589,0.052786,-0.162459,-0.223606,
+ 0.982248,-0.000002,-0.187589,0.11459,-0.117557,0.1,
+ 0.982248,-0.000002,-0.187589,0.111804,-0.08123,0.08541,
+ 0.982248,-0.000002,-0.187589,0.138196,-0.100406,0.223606,
+ 0.982247,0.000001,-0.187591,0.1,0.162459,0.023607,
+ 0.982247,0.000001,-0.187591,0.095491,0.131433,0,
+ 0.982247,0.000001,-0.187591,0.08541,0.262865,-0.052786,
+ 0.982248,0.000003,-0.187589,0.069098,0.050203,-0.138196,
+ 0.982248,0.000003,-0.187589,0.061803,0.044903,-0.176394,
+ 0.982248,0.000003,-0.187589,0.052786,0.162459,-0.223606,
+ 0.982247,-0.000001,-0.187591,0.095491,-0.131433,0,
+ 0.982247,-0.000001,-0.187591,0.1,-0.162459,0.023607,
+ 0.982247,-0.000001,-0.187591,0.08541,-0.262865,-0.052786,
+ 0.982248,0.000002,-0.187589,0.111804,0.08123,0.08541,
+ 0.982248,0.000002,-0.187589,0.11459,0.117557,0.1,
+ 0.982248,0.000002,-0.187589,0.138196,0.100406,0.223606,
+ -0.303531,-0.934173,0.187591,-0.150658,-0.062054,-0.052786,
+ -0.303531,-0.934173,0.187591,-0.18541,-0.044903,-0.023607,
+ -0.303531,-0.934173,0.187591,-0.447213,0,-0.223606,
+ -0.303532,-0.934172,0.187594,-0.147214,-0.072654,-0.1,
+ -0.303532,-0.934172,0.187594,-0.150658,-0.062054,-0.052786,
+ -0.303532,-0.934172,0.187594,-0.447213,0,-0.223606,
+ -0.303535,-0.934171,0.187592,-0.020163,-0.062054,0.158359,
+ -0.303535,-0.934171,0.187592,0.023607,-0.072654,0.176394,
+ -0.303535,-0.934171,0.187592,0,0,0.5,
+ -0.303526,-0.934174,0.187592,-0.061803,-0.044903,0.176394,
+ -0.303526,-0.934174,0.187592,-0.020163,-0.062054,0.158359,
+ -0.303526,-0.934174,0.187592,0,0,0.5,
+ -0.303538,-0.934173,0.187579,0.08541,-0.138758,-0.052786,
+ -0.303538,-0.934173,0.187579,0.076393,-0.145308,-0.1,
+ -0.303538,-0.934173,0.187579,0.361803,-0.262865,-0.223606,
+ -0.303523,-0.934173,0.187603,0.123606,-0.145308,-0.023607,
+ -0.303523,-0.934173,0.187603,0.08541,-0.138758,-0.052786,
+ -0.303523,-0.934173,0.187603,0.361803,-0.262865,-0.223606,
+ -0.303531,-0.934173,0.187588,-0.158359,-0.038352,0.052786,
+ -0.303531,-0.934173,0.187588,-0.161804,-0.027751,0.1,
+ -0.303531,-0.934173,0.187588,-0.276393,0,0.052786,
+ -0.30353,-0.934173,0.187591,0.072949,-0.100406,0.118034,
+ -0.30353,-0.934173,0.187591,0.11459,-0.117557,0.1,
+ -0.30353,-0.934173,0.187591,0.138196,-0.100406,0.223606,
+ -0.303534,-0.934173,0.187586,0,-0.124108,-0.118034,
+ -0.303534,-0.934173,0.187586,-0.038197,-0.117557,-0.147214,
+ -0.303534,-0.934173,0.187586,0.052786,-0.162459,-0.223606,
+ -0.30353,-0.934173,0.187591,-0.038197,-0.117557,-0.147214,
+ -0.30353,-0.934173,0.187591,-0.072949,-0.100406,-0.118034,
+ -0.30353,-0.934173,0.187591,-0.138196,-0.100406,-0.223606,
+ -0.303529,-0.934173,0.187594,-0.161804,-0.027751,0.1,
+ -0.303529,-0.934173,0.187594,-0.118034,-0.038352,0.118034,
+ -0.303529,-0.934173,0.187594,-0.17082,0,0.223606,
+ -0.303526,-0.934172,0.187599,0.11459,-0.117557,0.1,
+ -0.303526,-0.934172,0.187599,0.105573,-0.124108,0.052786,
+ -0.303526,-0.934172,0.187599,0.223606,-0.162459,0.052786,
+ -0.30353,-0.934172,0.187595,-0.18541,-0.044903,-0.023607,
+ -0.30353,-0.934172,0.187595,-0.154508,-0.050203,0,
+ -0.30353,-0.934172,0.187595,-0.276393,0,0.052786,
+ -0.303529,-0.934174,0.187588,0.023607,-0.072654,0.176394,
+ -0.303529,-0.934174,0.187588,0.026393,-0.08123,0.138196,
+ -0.303529,-0.934174,0.187588,0.138196,-0.100406,0.223606,
+ -0.303516,-0.934178,0.18759,0.076393,-0.145308,-0.1,
+ -0.303516,-0.934178,0.18759,0.042705,-0.131433,-0.08541,
+ -0.303516,-0.934178,0.18759,0.052786,-0.162459,-0.223606,
+ -0.303531,-0.934173,0.187592,-0.111804,-0.08123,-0.08541,
+ -0.303531,-0.934173,0.187592,-0.147214,-0.072654,-0.1,
+ -0.303531,-0.934173,0.187592,-0.138196,-0.100406,-0.223606,
+ -0.303535,-0.934172,0.187588,-0.069098,-0.050203,0.138196,
+ -0.303535,-0.934172,0.187588,-0.061803,-0.044903,0.176394,
+ -0.303535,-0.934172,0.187588,-0.17082,0,0.223606,
+ -0.303524,-0.934177,0.187583,0.095491,-0.131433,0,
+ -0.303524,-0.934177,0.187583,0.123606,-0.145308,-0.023607,
+ -0.303524,-0.934177,0.187583,0.223606,-0.162459,0.052786,
+ 0.187592,-0.577351,-0.794654,-0.118034,-0.038352,-0.118034,
+ 0.187592,-0.577351,-0.794654,-0.147214,-0.072654,-0.1,
+ 0.187592,-0.577351,-0.794654,-0.447213,0,-0.223606,
+ 0.187591,-0.577356,-0.794651,-0.123606,0,-0.147214,
+ 0.187591,-0.577356,-0.794651,-0.118034,-0.038352,-0.118034,
+ 0.187591,-0.577356,-0.794651,-0.447213,0,-0.223606,
+ 0.187593,-0.577349,-0.794655,0.052786,-0.162459,0.012461,
+ 0.187593,-0.577349,-0.794655,0.1,-0.162459,0.023607,
+ 0.187593,-0.577349,-0.794655,0.138196,-0.425325,0.223606,
+ 0.1876,-0.577347,-0.794655,0.01459,-0.190211,0.023607,
+ 0.1876,-0.577347,-0.794655,0.052786,-0.162459,0.012461,
+ 0.1876,-0.577347,-0.794655,0.138196,-0.425325,0.223606,
+ 0.187596,-0.577353,-0.794652,0.118034,0.038352,-0.118034,
+ 0.187596,-0.577353,-0.794652,0.1,0.072654,-0.147214,
+ 0.187596,-0.577353,-0.794652,0.361803,0.262865,-0.223606,
+ 0.187591,-0.577349,-0.794656,0.161804,0.027751,-0.1,
+ 0.187591,-0.577349,-0.794656,0.118034,0.038352,-0.118034,
+ 0.187591,-0.577349,-0.794656,0.361803,0.262865,-0.223606,
+ 0.187592,-0.577357,-0.79465,-0.105573,-0.124108,-0.052786,
+ 0.187592,-0.577357,-0.79465,-0.1,-0.162459,-0.023607,
+ 0.187592,-0.577357,-0.79465,-0.223606,-0.162459,-0.052786,
+ 0.187591,-0.577354,-0.794652,0.138196,-0.100406,-0.012461,
+ 0.187591,-0.577354,-0.794652,0.176394,-0.072654,-0.023607,
+ 0.187591,-0.577354,-0.794652,0.223606,-0.162459,0.052786,
+ 0.187605,-0.577354,-0.794649,0.020163,0.062054,-0.158359,
+ 0.187605,-0.577354,-0.794649,-0.023607,0.072654,-0.176394,
+ 0.187605,-0.577354,-0.794649,0.052786,0.162459,-0.223606,
+ 0.187583,-0.57736,-0.79465,-0.023607,0.072654,-0.176394,
+ 0.187583,-0.57736,-0.79465,-0.052786,0.038352,-0.158359,
+ 0.187583,-0.57736,-0.79465,-0.138196,0.100406,-0.223606,
+ 0.187593,-0.57735,-0.794654,-0.1,-0.162459,-0.023607,
+ 0.187593,-0.57735,-0.794654,-0.052786,-0.162459,-0.012461,
+ 0.187593,-0.57735,-0.794654,-0.08541,-0.262865,0.052786,
+ 0.187592,-0.577347,-0.794657,0.176394,-0.072654,-0.023607,
+ 0.187592,-0.577347,-0.794657,0.158359,-0.038352,-0.052786,
+ 0.187592,-0.577347,-0.794657,0.276393,0,-0.052786,
+ 0.187592,-0.577351,-0.794654,-0.147214,-0.072654,-0.1,
+ 0.187592,-0.577351,-0.794654,-0.111804,-0.08123,-0.08541,
+ 0.187592,-0.577351,-0.794654,-0.223606,-0.162459,-0.052786,
+ 0.187591,-0.577359,-0.794648,0.1,-0.162459,0.023607,
+ 0.187591,-0.577359,-0.794648,0.095491,-0.131433,0,
+ 0.187591,-0.577359,-0.794648,0.223606,-0.162459,0.052786,
+ 0.187584,-0.577353,-0.794655,0.1,0.072654,-0.147214,
+ 0.187584,-0.577353,-0.794655,0.069098,0.050203,-0.138196,
+ 0.187584,-0.577353,-0.794655,0.052786,0.162459,-0.223606,
+ 0.187604,-0.577345,-0.794656,-0.08541,0,-0.138196,
+ 0.187604,-0.577345,-0.794656,-0.123606,0,-0.147214,
+ 0.187604,-0.577345,-0.794656,-0.138196,0.100406,-0.223606,
+ 0.187583,-0.577345,-0.79466,0,-0.162459,0,
+ 0.187583,-0.577345,-0.79466,0.01459,-0.190211,0.023607,
+ 0.187583,-0.577345,-0.79466,-0.08541,-0.262865,0.052786,
+ 0.187593,-0.577352,-0.794653,0.138196,0,-0.08541,
+ 0.187593,-0.577352,-0.794653,0.161804,0.027751,-0.1,
+ 0.187593,-0.577352,-0.794653,0.276393,0,-0.052786,
+ -0.187596,-0.577353,0.794652,-0.118034,0.038352,0.118034,
+ -0.187596,-0.577353,0.794652,-0.1,0.072654,0.147214,
+ -0.187596,-0.577353,0.794652,-0.361803,0.262865,0.223606,
+ -0.187591,-0.577349,0.794656,-0.161804,0.027751,0.1,
+ -0.187591,-0.577349,0.794656,-0.118034,0.038352,0.118034,
+ -0.187591,-0.577349,0.794656,-0.361803,0.262865,0.223606,
+ -0.187592,-0.577351,0.794654,0.118034,-0.038352,0.118034,
+ -0.187592,-0.577351,0.794654,0.147214,-0.072654,0.1,
+ -0.187592,-0.577351,0.794654,0.447213,0,0.223606,
+ -0.187591,-0.577356,0.794651,0.123606,0,0.147214,
+ -0.187591,-0.577356,0.794651,0.118034,-0.038352,0.118034,
+ -0.187591,-0.577356,0.794651,0.447213,0,0.223606,
+ -0.187593,-0.577349,0.794655,-0.052786,-0.162459,-0.012461,
+ -0.187593,-0.577349,0.794655,-0.1,-0.162459,-0.023607,
+ -0.187593,-0.577349,0.794655,-0.138196,-0.425325,-0.223606,
+ -0.1876,-0.577347,0.794655,-0.01459,-0.190211,-0.023607,
+ -0.1876,-0.577347,0.794655,-0.052786,-0.162459,-0.012461,
+ -0.1876,-0.577347,0.794655,-0.138196,-0.425325,-0.223606,
+ -0.187605,-0.577354,0.794649,-0.020163,0.062054,0.158359,
+ -0.187605,-0.577354,0.794649,0.023607,0.072654,0.176394,
+ -0.187605,-0.577354,0.794649,-0.052786,0.162459,0.223606,
+ -0.187592,-0.577357,0.79465,0.105573,-0.124108,0.052786,
+ -0.187592,-0.577357,0.79465,0.1,-0.162459,0.023607,
+ -0.187592,-0.577357,0.79465,0.223606,-0.162459,0.052786,
+ -0.187591,-0.577354,0.794652,-0.138196,-0.100406,0.012461,
+ -0.187591,-0.577354,0.794652,-0.176394,-0.072654,0.023607,
+ -0.187591,-0.577354,0.794652,-0.223606,-0.162459,-0.052786,
+ -0.187592,-0.577347,0.794657,-0.176394,-0.072654,0.023607,
+ -0.187592,-0.577347,0.794657,-0.158359,-0.038352,0.052786,
+ -0.187592,-0.577347,0.794657,-0.276393,0,0.052786,
+ -0.187583,-0.57736,0.79465,0.023607,0.072654,0.176394,
+ -0.187583,-0.57736,0.79465,0.052786,0.038352,0.158359,
+ -0.187583,-0.57736,0.79465,0.138196,0.100406,0.223606,
+ -0.187593,-0.57735,0.794654,0.1,-0.162459,0.023607,
+ -0.187593,-0.57735,0.794654,0.052786,-0.162459,0.012461,
+ -0.187593,-0.57735,0.794654,0.08541,-0.262865,-0.052786,
+ -0.187584,-0.577353,0.794655,-0.1,0.072654,0.147214,
+ -0.187584,-0.577353,0.794655,-0.069098,0.050203,0.138196,
+ -0.187584,-0.577353,0.794655,-0.052786,0.162459,0.223606,
+ -0.187592,-0.577351,0.794654,0.147214,-0.072654,0.1,
+ -0.187592,-0.577351,0.794654,0.111804,-0.08123,0.08541,
+ -0.187592,-0.577351,0.794654,0.223606,-0.162459,0.052786,
+ -0.187591,-0.577359,0.794648,-0.1,-0.162459,-0.023607,
+ -0.187591,-0.577359,0.794648,-0.095491,-0.131433,0,
+ -0.187591,-0.577359,0.794648,-0.223606,-0.162459,-0.052786,
+ -0.187593,-0.577352,0.794653,-0.138196,0,0.08541,
+ -0.187593,-0.577352,0.794653,-0.161804,0.027751,0.1,
+ -0.187593,-0.577352,0.794653,-0.276393,0,0.052786,
+ -0.187604,-0.577345,0.794656,0.08541,0,0.138196,
+ -0.187604,-0.577345,0.794656,0.123606,0,0.147214,
+ -0.187604,-0.577345,0.794656,0.138196,0.100406,0.223606,
+ -0.187583,-0.577345,0.79466,0,-0.162459,0,
+ -0.187583,-0.577345,0.79466,-0.01459,-0.190211,-0.023607,
+ -0.187583,-0.577345,0.79466,0.08541,-0.262865,-0.052786,
+ 0.794652,0.577358,0.18758,0.158359,-0.038352,-0.052786,
+ 0.794652,0.577358,0.18758,0.176394,-0.072654,-0.023607,
+ 0.794652,0.577358,0.18758,0.361803,-0.262865,-0.223606,
+ 0.794656,0.577344,0.187604,0.161804,-0.027751,-0.1,
+ 0.794656,0.577344,0.187604,0.158359,-0.038352,-0.052786,
+ 0.794656,0.577344,0.187604,0.361803,-0.262865,-0.223606,
+ 0.794657,0.577347,0.187592,0.052786,0.038352,0.158359,
+ 0.794657,0.577347,0.187592,0.023607,0.072654,0.176394,
+ 0.794657,0.577347,0.187592,0,0,0.5,
+ 0.794653,0.577353,0.187592,0.076393,0,0.176394,
+ 0.794653,0.577353,0.187592,0.052786,0.038352,0.158359,
+ 0.794653,0.577353,0.187592,0,0,0.5,
+ 0.794655,0.577349,0.187593,0.012461,0.162459,-0.052786,
+ 0.794655,0.577349,0.187593,0.023607,0.162459,-0.1,
+ 0.794655,0.577349,0.187593,-0.138196,0.425325,-0.223606,
+ 0.794658,0.577347,0.187587,-0.01459,0.190211,-0.023607,
+ 0.794658,0.577347,0.187587,0.012461,0.162459,-0.052786,
+ 0.794658,0.577347,0.187587,-0.138196,0.425325,-0.223606,
+ 0.794655,0.577351,0.187588,0.150658,-0.062054,0.052786,
+ 0.794655,0.577351,0.187588,0.147214,-0.072654,0.1,
+ 0.794655,0.577351,0.187588,0.223606,-0.162459,0.052786,
+ 0.79465,0.577356,0.187592,0,0.124108,0.118034,
+ 0.79465,0.577356,0.187592,-0.023607,0.162459,0.1,
+ 0.79465,0.577356,0.187592,-0.052786,0.162459,0.223606,
+ 0.794655,0.57735,0.18759,0.072949,0.100406,-0.118034,
+ 0.794655,0.57735,0.18759,0.1,0.072654,-0.147214,
+ 0.794655,0.57735,0.18759,0.052786,0.162459,-0.223606,
+ 0.794654,0.577351,0.187592,0.1,0.072654,-0.147214,
+ 0.794654,0.577351,0.187592,0.118034,0.038352,-0.118034,
+ 0.794654,0.577351,0.187592,0.17082,0,-0.223606,
+ 0.794652,0.577353,0.187596,0.147214,-0.072654,0.1,
+ 0.794652,0.577353,0.187596,0.118034,-0.038352,0.118034,
+ 0.794652,0.577353,0.187596,0.138196,-0.100406,0.223606,
+ 0.794654,0.57735,0.187593,-0.023607,0.162459,0.1,
+ 0.794654,0.57735,0.187593,-0.012461,0.162459,0.052786,
+ 0.794654,0.57735,0.187593,-0.08541,0.262865,0.052786,
+ 0.794648,0.577354,0.187607,0.176394,-0.072654,-0.023607,
+ 0.794648,0.577354,0.187607,0.154508,-0.050203,0,
+ 0.794648,0.577354,0.187607,0.223606,-0.162459,0.052786,
+ 0.794652,0.577354,0.18759,0.023607,0.072654,0.176394,
+ 0.794652,0.577354,0.18759,0.026393,0.08123,0.138196,
+ 0.794652,0.577354,0.18759,-0.052786,0.162459,0.223606,
+ 0.794649,0.577358,0.187592,0.023607,0.162459,-0.1,
+ 0.794649,0.577358,0.187592,0.042705,0.131433,-0.08541,
+ 0.794649,0.577358,0.187592,0.052786,0.162459,-0.223606,
+ 0.794646,0.577362,0.187591,0.138196,0,-0.08541,
+ 0.794646,0.577362,0.187591,0.161804,-0.027751,-0.1,
+ 0.794646,0.577362,0.187591,0.17082,0,-0.223606,
+ 0.794657,0.577348,0.18759,0.08541,0,0.138196,
+ 0.794657,0.577348,0.18759,0.076393,0,0.176394,
+ 0.794657,0.577348,0.18759,0.138196,-0.100406,0.223606,
+ 0.794655,0.577346,0.187602,0,0.162459,0,
+ 0.794655,0.577346,0.187602,-0.01459,0.190211,-0.023607,
+ 0.794655,0.577346,0.187602,-0.08541,0.262865,0.052786,
+ -0.794657,0.577347,-0.187592,-0.052786,0.038352,-0.158359,
+ -0.794657,0.577347,-0.187592,-0.023607,0.072654,-0.176394,
+ -0.794657,0.577347,-0.187592,0,0,-0.5,
+ -0.794653,0.577353,-0.187592,-0.076393,0,-0.176394,
+ -0.794653,0.577353,-0.187592,-0.052786,0.038352,-0.158359,
+ -0.794653,0.577353,-0.187592,0,0,-0.5,
+ -0.794655,0.577349,-0.187593,-0.012461,0.162459,0.052786,
+ -0.794655,0.577349,-0.187593,-0.023607,0.162459,0.1,
+ -0.794655,0.577349,-0.187593,0.138196,0.425325,0.223606,
+ -0.794658,0.577347,-0.187587,0.01459,0.190211,0.023607,
+ -0.794658,0.577347,-0.187587,-0.012461,0.162459,0.052786,
+ -0.794658,0.577347,-0.187587,0.138196,0.425325,0.223606,
+ -0.794652,0.577358,-0.18758,-0.158359,-0.038352,0.052786,
+ -0.794652,0.577358,-0.18758,-0.176394,-0.072654,0.023607,
+ -0.794652,0.577358,-0.18758,-0.361803,-0.262865,0.223606,
+ -0.794656,0.577344,-0.187604,-0.161804,-0.027751,0.1,
+ -0.794656,0.577344,-0.187604,-0.158359,-0.038352,0.052786,
+ -0.794656,0.577344,-0.187604,-0.361803,-0.262865,0.223606,
+ -0.79465,0.577356,-0.187592,0,0.124108,-0.118034,
+ -0.79465,0.577356,-0.187592,0.023607,0.162459,-0.1,
+ -0.79465,0.577356,-0.187592,0.052786,0.162459,-0.223606,
+ -0.794655,0.57735,-0.18759,-0.072949,0.100406,0.118034,
+ -0.794655,0.57735,-0.18759,-0.1,0.072654,0.147214,
+ -0.794655,0.57735,-0.18759,-0.052786,0.162459,0.223606,
+ -0.794655,0.577351,-0.187588,-0.150658,-0.062054,-0.052786,
+ -0.794655,0.577351,-0.187588,-0.147214,-0.072654,-0.1,
+ -0.794655,0.577351,-0.187588,-0.223606,-0.162459,-0.052786,
+ -0.794652,0.577353,-0.187596,-0.147214,-0.072654,-0.1,
+ -0.794652,0.577353,-0.187596,-0.118034,-0.038352,-0.118034,
+ -0.794652,0.577353,-0.187596,-0.138196,-0.100406,-0.223606,
+ -0.794654,0.57735,-0.187593,0.023607,0.162459,-0.1,
+ -0.794654,0.57735,-0.187593,0.012461,0.162459,-0.052786,
+ -0.794654,0.57735,-0.187593,0.08541,0.262865,-0.052786,
+ -0.794654,0.577351,-0.187592,-0.1,0.072654,0.147214,
+ -0.794654,0.577351,-0.187592,-0.118034,0.038352,0.118034,
+ -0.794654,0.577351,-0.187592,-0.17082,0,0.223606,
+ -0.794652,0.577354,-0.18759,-0.023607,0.072654,-0.176394,
+ -0.794652,0.577354,-0.18759,-0.026393,0.08123,-0.138196,
+ -0.794652,0.577354,-0.18759,0.052786,0.162459,-0.223606,
+ -0.794649,0.577358,-0.187592,-0.023607,0.162459,0.1,
+ -0.794649,0.577358,-0.187592,-0.042705,0.131433,0.08541,
+ -0.794649,0.577358,-0.187592,-0.052786,0.162459,0.223606,
+ -0.794648,0.577354,-0.187607,-0.176394,-0.072654,0.023607,
+ -0.794648,0.577354,-0.187607,-0.154508,-0.050203,0,
+ -0.794648,0.577354,-0.187607,-0.223606,-0.162459,-0.052786,
+ -0.794657,0.577348,-0.18759,-0.08541,0,-0.138196,
+ -0.794657,0.577348,-0.18759,-0.076393,0,-0.176394,
+ -0.794657,0.577348,-0.18759,-0.138196,-0.100406,-0.223606,
+ -0.794655,0.577346,-0.187602,0,0.162459,0,
+ -0.794655,0.577346,-0.187602,0.01459,0.190211,0.023607,
+ -0.794655,0.577346,-0.187602,0.08541,0.262865,-0.052786,
+ -0.794646,0.577362,-0.187591,-0.138196,0,0.08541,
+ -0.794646,0.577362,-0.187591,-0.161804,-0.027751,0.1,
+ -0.794646,0.577362,-0.187591,-0.17082,0,0.223606,
+ 0.491129,0.356821,0.794652,0.072949,-0.100406,0.118034,
+ 0.491129,0.356821,0.794652,0.038197,-0.117557,0.147214,
+ 0.491129,0.356821,0.794652,0.138196,-0.425325,0.223606,
+ 0.491121,0.356821,0.794656,0.11459,-0.117557,0.1,
+ 0.491121,0.356821,0.794656,0.072949,-0.100406,0.118034,
+ 0.491121,0.356821,0.794656,0.138196,-0.425325,0.223606,
+ 0.491124,0.356824,0.794654,-0.072949,0.100406,0.118034,
+ 0.491124,0.356824,0.794654,-0.076393,0.145308,0.1,
+ 0.491124,0.356824,0.794654,-0.361803,0.262865,0.223606,
+ 0.491125,0.356827,0.794651,-0.1,0.072654,0.147214,
+ 0.491125,0.356827,0.794651,-0.072949,0.100406,0.118034,
+ 0.491125,0.356827,0.794651,-0.361803,0.262865,0.223606,
+ 0.491119,0.356829,0.794654,0.138196,0.100406,-0.012461,
+ 0.491119,0.356829,0.794654,0.176394,0.072654,-0.023607,
+ 0.491119,0.356829,0.794654,0.361803,0.262865,-0.223606,
+ 0.491121,0.356826,0.794654,0.123606,0.145308,-0.023607,
+ 0.491121,0.356826,0.794654,0.138196,0.100406,-0.012461,
+ 0.491121,0.356826,0.794654,0.361803,0.262865,-0.223606,
+ 0.491135,0.356817,0.79465,-0.020163,-0.062054,0.158359,
+ 0.491135,0.356817,0.79465,-0.061803,-0.044903,0.176394,
+ 0.491135,0.356817,0.79465,-0.052786,-0.162459,0.223606,
+ 0.49112,0.35682,0.794658,-0.012461,0.162459,0.052786,
+ 0.49112,0.35682,0.794658,0.01459,0.190211,0.023607,
+ 0.49112,0.35682,0.794658,-0.08541,0.262865,0.052786,
+ 0.491124,0.356824,0.794654,0.17082,0,0.012461,
+ 0.491124,0.356824,0.794654,0.18541,-0.044903,0.023607,
+ 0.491124,0.356824,0.794654,0.276393,0,-0.052786,
+ 0.491124,0.356822,0.794654,0.18541,-0.044903,0.023607,
+ 0.491124,0.356822,0.794654,0.150658,-0.062054,0.052786,
+ 0.491124,0.356822,0.794654,0.223606,-0.162459,0.052786,
+ 0.491122,0.356835,0.79465,-0.061803,-0.044903,0.176394,
+ 0.491122,0.356835,0.79465,-0.065247,0,0.158359,
+ 0.491122,0.356835,0.79465,-0.17082,0,0.223606,
+ 0.491128,0.356819,0.794653,0.01459,0.190211,0.023607,
+ 0.491128,0.356819,0.794653,0.052786,0.162459,0.012461,
+ 0.491128,0.356819,0.794653,0.08541,0.262865,-0.052786,
+ 0.491117,0.35683,0.794655,0.038197,-0.117557,0.147214,
+ 0.491117,0.35683,0.794655,0.026393,-0.08123,0.138196,
+ 0.491117,0.35683,0.794655,-0.052786,-0.162459,0.223606,
+ 0.491117,0.356823,0.794658,-0.076393,0.145308,0.1,
+ 0.491117,0.356823,0.794658,-0.042705,0.131433,0.08541,
+ 0.491117,0.356823,0.794658,-0.08541,0.262865,0.052786,
+ 0.491122,0.356812,0.79466,0.176394,0.072654,-0.023607,
+ 0.491122,0.356812,0.79466,0.154508,0.050203,0,
+ 0.491122,0.356812,0.79466,0.276393,0,-0.052786,
+ 0.491124,0.35682,0.794655,0.111804,-0.08123,0.08541,
+ 0.491124,0.35682,0.794655,0.11459,-0.117557,0.1,
+ 0.491124,0.35682,0.794655,0.223606,-0.162459,0.052786,
+ 0.491129,0.356813,0.794655,-0.069098,0.050203,0.138196,
+ 0.491129,0.356813,0.794655,-0.1,0.072654,0.147214,
+ 0.491129,0.356813,0.794655,-0.17082,0,0.223606,
+ 0.491133,0.356822,0.794648,0.095491,0.131433,0,
+ 0.491133,0.356822,0.794648,0.123606,0.145308,-0.023607,
+ 0.491133,0.356822,0.794648,0.08541,0.262865,-0.052786,
+ 0.187591,0.577349,-0.794656,0.118034,-0.038352,-0.118034,
+ 0.187591,0.577349,-0.794656,0.161804,-0.027751,-0.1,
+ 0.187591,0.577349,-0.794656,0.361803,-0.262865,-0.223606,
+ 0.187596,0.577353,-0.794652,0.1,-0.072654,-0.147214,
+ 0.187596,0.577353,-0.794652,0.118034,-0.038352,-0.118034,
+ 0.187596,0.577353,-0.794652,0.361803,-0.262865,-0.223606,
+ 0.1876,0.577347,-0.794655,0.052786,0.162459,0.012461,
+ 0.1876,0.577347,-0.794655,0.01459,0.190211,0.023607,
+ 0.1876,0.577347,-0.794655,0.138196,0.425325,0.223606,
+ 0.187593,0.577349,-0.794655,0.1,0.162459,0.023607,
+ 0.187593,0.577349,-0.794655,0.052786,0.162459,0.012461,
+ 0.187593,0.577349,-0.794655,0.138196,0.425325,0.223606,
+ 0.187591,0.577356,-0.794651,-0.118034,0.038352,-0.118034,
+ 0.187591,0.577356,-0.794651,-0.123606,0,-0.147214,
+ 0.187591,0.577356,-0.794651,-0.447213,0,-0.223606,
+ 0.187592,0.577351,-0.794654,-0.147214,0.072654,-0.1,
+ 0.187592,0.577351,-0.794654,-0.118034,0.038352,-0.118034,
+ 0.187592,0.577351,-0.794654,-0.447213,0,-0.223606,
+ 0.187592,0.577347,-0.794657,0.158359,0.038352,-0.052786,
+ 0.187592,0.577347,-0.794657,0.176394,0.072654,-0.023607,
+ 0.187592,0.577347,-0.794657,0.276393,0,-0.052786,
+ 0.187593,0.57735,-0.794654,-0.052786,0.162459,-0.012461,
+ 0.187593,0.57735,-0.794654,-0.1,0.162459,-0.023607,
+ 0.187593,0.57735,-0.794654,-0.08541,0.262865,0.052786,
+ 0.187583,0.57736,-0.79465,-0.052786,-0.038352,-0.158359,
+ 0.187583,0.57736,-0.79465,-0.023607,-0.072654,-0.176394,
+ 0.187583,0.57736,-0.79465,-0.138196,-0.100406,-0.223606,
+ 0.187605,0.577354,-0.794649,-0.023607,-0.072654,-0.176394,
+ 0.187605,0.577354,-0.794649,0.020163,-0.062054,-0.158359,
+ 0.187605,0.577354,-0.794649,0.052786,-0.162459,-0.223606,
+ 0.187591,0.577354,-0.794652,0.176394,0.072654,-0.023607,
+ 0.187591,0.577354,-0.794652,0.138196,0.100406,-0.012461,
+ 0.187591,0.577354,-0.794652,0.223606,0.162459,0.052786,
+ 0.187592,0.577357,-0.79465,-0.1,0.162459,-0.023607,
+ 0.187592,0.577357,-0.79465,-0.105573,0.124108,-0.052786,
+ 0.187592,0.577357,-0.79465,-0.223606,0.162459,-0.052786,
+ 0.187593,0.577352,-0.794653,0.161804,-0.027751,-0.1,
+ 0.187593,0.577352,-0.794653,0.138196,0,-0.08541,
+ 0.187593,0.577352,-0.794653,0.276393,0,-0.052786,
+ 0.187583,0.577345,-0.79466,0.01459,0.190211,0.023607,
+ 0.187583,0.577345,-0.79466,0,0.162459,0,
+ 0.187583,0.577345,-0.79466,-0.08541,0.262865,0.052786,
+ 0.187604,0.577345,-0.794656,-0.123606,0,-0.147214,
+ 0.187604,0.577345,-0.794656,-0.08541,0,-0.138196,
+ 0.187604,0.577345,-0.794656,-0.138196,-0.100406,-0.223606,
+ 0.187584,0.577353,-0.794655,0.069098,-0.050203,-0.138196,
+ 0.187584,0.577353,-0.794655,0.1,-0.072654,-0.147214,
+ 0.187584,0.577353,-0.794655,0.052786,-0.162459,-0.223606,
+ 0.187591,0.577359,-0.794648,0.095491,0.131433,0,
+ 0.187591,0.577359,-0.794648,0.1,0.162459,0.023607,
+ 0.187591,0.577359,-0.794648,0.223606,0.162459,0.052786,
+ 0.187592,0.577351,-0.794654,-0.111804,0.08123,-0.08541,
+ 0.187592,0.577351,-0.794654,-0.147214,0.072654,-0.1,
+ 0.187592,0.577351,-0.794654,-0.223606,0.162459,-0.052786,
+ 0.303535,-0.934171,-0.187592,0.020163,-0.062054,-0.158359,
+ 0.303535,-0.934171,-0.187592,-0.023607,-0.072654,-0.176394,
+ 0.303535,-0.934171,-0.187592,0,0,-0.5,
+ 0.303526,-0.934174,-0.187592,0.061803,-0.044903,-0.176394,
+ 0.303526,-0.934174,-0.187592,0.020163,-0.062054,-0.158359,
+ 0.303526,-0.934174,-0.187592,0,0,-0.5,
+ 0.303538,-0.934173,-0.187579,-0.08541,-0.138758,0.052786,
+ 0.303538,-0.934173,-0.187579,-0.076393,-0.145308,0.1,
+ 0.303538,-0.934173,-0.187579,-0.361803,-0.262865,0.223606,
+ 0.303523,-0.934173,-0.187603,-0.123606,-0.145308,0.023607,
+ 0.303523,-0.934173,-0.187603,-0.08541,-0.138758,0.052786,
+ 0.303523,-0.934173,-0.187603,-0.361803,-0.262865,0.223606,
+ 0.303531,-0.934173,-0.187591,0.150658,-0.062054,0.052786,
+ 0.303531,-0.934173,-0.187591,0.18541,-0.044903,0.023607,
+ 0.303531,-0.934173,-0.187591,0.447213,0,0.223606,
+ 0.303532,-0.934172,-0.187594,0.147214,-0.072654,0.1,
+ 0.303532,-0.934172,-0.187594,0.150658,-0.062054,0.052786,
+ 0.303532,-0.934172,-0.187594,0.447213,0,0.223606,
+ 0.30353,-0.934173,-0.187591,-0.072949,-0.100406,-0.118034,
+ 0.30353,-0.934173,-0.187591,-0.11459,-0.117557,-0.1,
+ 0.30353,-0.934173,-0.187591,-0.138196,-0.100406,-0.223606,
+ 0.303534,-0.934173,-0.187586,0,-0.124108,0.118034,
+ 0.303534,-0.934173,-0.187586,0.038197,-0.117557,0.147214,
+ 0.303534,-0.934173,-0.187586,-0.052786,-0.162459,0.223606,
+ 0.303531,-0.934173,-0.187588,0.158359,-0.038352,-0.052786,
+ 0.303531,-0.934173,-0.187588,0.161804,-0.027751,-0.1,
+ 0.303531,-0.934173,-0.187588,0.276393,0,-0.052786,
+ 0.303529,-0.934173,-0.187594,0.161804,-0.027751,-0.1,
+ 0.303529,-0.934173,-0.187594,0.118034,-0.038352,-0.118034,
+ 0.303529,-0.934173,-0.187594,0.17082,0,-0.223606,
+ 0.303526,-0.934172,-0.187599,-0.11459,-0.117557,-0.1,
+ 0.303526,-0.934172,-0.187599,-0.105573,-0.124108,-0.052786,
+ 0.303526,-0.934172,-0.187599,-0.223606,-0.162459,-0.052786,
+ 0.30353,-0.934173,-0.187591,0.038197,-0.117557,0.147214,
+ 0.30353,-0.934173,-0.187591,0.072949,-0.100406,0.118034,
+ 0.30353,-0.934173,-0.187591,0.138196,-0.100406,0.223606,
+ 0.303529,-0.934174,-0.187588,-0.023607,-0.072654,-0.176394,
+ 0.303529,-0.934174,-0.187588,-0.026393,-0.08123,-0.138196,
+ 0.303529,-0.934174,-0.187588,-0.138196,-0.100406,-0.223606,
+ 0.303516,-0.934178,-0.18759,-0.076393,-0.145308,0.1,
+ 0.303516,-0.934178,-0.18759,-0.042705,-0.131433,0.08541,
+ 0.303516,-0.934178,-0.18759,-0.052786,-0.162459,0.223606,
+ 0.30353,-0.934172,-0.187595,0.18541,-0.044903,0.023607,
+ 0.30353,-0.934172,-0.187595,0.154508,-0.050203,0,
+ 0.30353,-0.934172,-0.187595,0.276393,0,-0.052786,
+ 0.303535,-0.934172,-0.187588,0.069098,-0.050203,-0.138196,
+ 0.303535,-0.934172,-0.187588,0.061803,-0.044903,-0.176394,
+ 0.303535,-0.934172,-0.187588,0.17082,0,-0.223606,
+ 0.303524,-0.934177,-0.187583,-0.095491,-0.131433,0,
+ 0.303524,-0.934177,-0.187583,-0.123606,-0.145308,0.023607,
+ 0.303524,-0.934177,-0.187583,-0.223606,-0.162459,-0.052786,
+ 0.303531,-0.934173,-0.187592,0.111804,-0.08123,0.08541,
+ 0.303531,-0.934173,-0.187592,0.147214,-0.072654,0.1,
+ 0.303531,-0.934173,-0.187592,0.138196,-0.100406,0.223606,
+ -0.982248,-0.000002,0.187589,-0.105573,0.124108,-0.052786,
+ -0.982248,-0.000002,0.187589,-0.1,0.162459,-0.023607,
+ -0.982248,-0.000002,0.187589,-0.138196,0.425325,-0.223606,
+ -0.982245,0.000005,0.187601,-0.11459,0.117557,-0.1,
+ -0.982245,0.000005,0.187601,-0.105573,0.124108,-0.052786,
+ -0.982245,0.000005,0.187601,-0.138196,0.425325,-0.223606,
+ -0.982247,0.000005,0.187592,-0.065247,0,0.158359,
+ -0.982247,0.000005,0.187592,-0.061803,-0.044903,0.176394,
+ -0.982247,0.000005,0.187592,0,0,0.5,
+ -0.982247,-0.000005,0.187592,-0.061803,0.044903,0.176394,
+ -0.982247,-0.000005,0.187592,-0.065247,0,0.158359,
+ -0.982247,-0.000005,0.187592,0,0,0.5,
+ -0.982245,-0.000005,0.187601,-0.105573,-0.124108,-0.052786,
+ -0.982245,-0.000005,0.187601,-0.11459,-0.117557,-0.1,
+ -0.982245,-0.000005,0.187601,-0.138196,-0.425325,-0.223606,
+ -0.982248,0.000002,0.187589,-0.1,-0.162459,-0.023607,
+ -0.982248,0.000002,0.187589,-0.105573,-0.124108,-0.052786,
+ -0.982248,0.000002,0.187589,-0.138196,-0.425325,-0.223606,
+ -0.982247,0,0.187593,-0.08541,0.138758,0.052786,
+ -0.982247,0,0.187593,-0.076393,0.145308,0.1,
+ -0.982247,0,0.187593,-0.08541,0.262865,0.052786,
+ -0.982247,-0.000001,0.187593,-0.072949,-0.100406,0.118034,
+ -0.982247,-0.000001,0.187593,-0.076393,-0.145308,0.1,
+ -0.982247,-0.000001,0.187593,-0.052786,-0.162459,0.223606,
+ -0.982248,0.000006,0.187588,-0.118034,-0.038352,-0.118034,
+ -0.982248,0.000006,0.187588,-0.123606,0,-0.147214,
+ -0.982248,0.000006,0.187588,-0.138196,-0.100406,-0.223606,
+ -0.982248,-0.000006,0.187588,-0.123606,0,-0.147214,
+ -0.982248,-0.000006,0.187588,-0.118034,0.038352,-0.118034,
+ -0.982248,-0.000006,0.187588,-0.138196,0.100406,-0.223606,
+ -0.982247,0.000001,0.187593,-0.076393,0.145308,0.1,
+ -0.982247,0.000001,0.187593,-0.072949,0.100406,0.118034,
+ -0.982247,0.000001,0.187593,-0.052786,0.162459,0.223606,
+ -0.982247,0,0.187593,-0.076393,-0.145308,0.1,
+ -0.982247,0,0.187593,-0.08541,-0.138758,0.052786,
+ -0.982247,0,0.187593,-0.08541,-0.262865,0.052786,
+ -0.982247,0.000001,0.187591,-0.1,0.162459,-0.023607,
+ -0.982247,0.000001,0.187591,-0.095491,0.131433,0,
+ -0.982247,0.000001,0.187591,-0.08541,0.262865,0.052786,
+ -0.982248,-0.000003,0.187589,-0.061803,-0.044903,0.176394,
+ -0.982248,-0.000003,0.187589,-0.069098,-0.050203,0.138196,
+ -0.982248,-0.000003,0.187589,-0.052786,-0.162459,0.223606,
+ -0.982248,-0.000002,0.187589,-0.11459,-0.117557,-0.1,
+ -0.982248,-0.000002,0.187589,-0.111804,-0.08123,-0.08541,
+ -0.982248,-0.000002,0.187589,-0.138196,-0.100406,-0.223606,
+ -0.982248,0.000002,0.187589,-0.111804,0.08123,-0.08541,
+ -0.982248,0.000002,0.187589,-0.11459,0.117557,-0.1,
+ -0.982248,0.000002,0.187589,-0.138196,0.100406,-0.223606,
+ -0.982248,0.000003,0.187589,-0.069098,0.050203,0.138196,
+ -0.982248,0.000003,0.187589,-0.061803,0.044903,0.176394,
+ -0.982248,0.000003,0.187589,-0.052786,0.162459,0.223606,
+ -0.982247,-0.000001,0.187591,-0.095491,-0.131433,0,
+ -0.982247,-0.000001,0.187591,-0.1,-0.162459,-0.023607,
+ -0.982247,-0.000001,0.187591,-0.08541,-0.262865,0.052786,
+ 0.607062,0,-0.794655,0,-0.124108,-0.118034,
+ 0.607062,0,-0.794655,0.023607,-0.162459,-0.1,
+ 0.607062,0,-0.794655,-0.138196,-0.425325,-0.223606,
+ 0.607065,-0.000003,-0.794652,-0.038197,-0.117557,-0.147214,
+ 0.607065,-0.000003,-0.794652,0,-0.124108,-0.118034,
+ 0.607065,-0.000003,-0.794652,-0.138196,-0.425325,-0.223606,
+ 0.607062,-0.000002,-0.794654,0.17082,0,0.012461,
+ 0.607062,-0.000002,-0.794654,0.18541,0.044903,0.023607,
+ 0.607062,-0.000002,-0.794654,0.447213,0,0.223606,
+ 0.607062,0.000002,-0.794654,0.18541,-0.044903,0.023607,
+ 0.607062,0.000002,-0.794654,0.17082,0,0.012461,
+ 0.607062,0.000002,-0.794654,0.447213,0,0.223606,
+ 0.607065,0.000003,-0.794652,0,0.124108,-0.118034,
+ 0.607065,0.000003,-0.794652,-0.038197,0.117557,-0.147214,
+ 0.607065,0.000003,-0.794652,-0.138196,0.425325,-0.223606,
+ 0.607062,0,-0.794655,0.023607,0.162459,-0.1,
+ 0.607062,0,-0.794655,0,0.124108,-0.118034,
+ 0.607062,0,-0.794655,-0.138196,0.425325,-0.223606,
+ 0.607066,0,-0.794652,0.08541,-0.138758,-0.052786,
+ 0.607066,0,-0.794652,0.123606,-0.145308,-0.023607,
+ 0.607066,0,-0.794652,0.08541,-0.262865,-0.052786,
+ 0.607061,0.000001,-0.794655,0.138196,0.100406,-0.012461,
+ 0.607061,0.000001,-0.794655,0.123606,0.145308,-0.023607,
+ 0.607061,0.000001,-0.794655,0.223606,0.162459,0.052786,
+ 0.607069,0.000012,-0.794649,-0.052786,0.038352,-0.158359,
+ 0.607069,0.000012,-0.794649,-0.076393,0,-0.176394,
+ 0.607069,0.000012,-0.794649,-0.138196,0.100406,-0.223606,
+ 0.607069,-0.000012,-0.794649,-0.076393,0,-0.176394,
+ 0.607069,-0.000012,-0.794649,-0.052786,-0.038352,-0.158359,
+ 0.607069,-0.000012,-0.794649,-0.138196,-0.100406,-0.223606,
+ 0.607061,-0.000001,-0.794655,0.123606,-0.145308,-0.023607,
+ 0.607061,-0.000001,-0.794655,0.138196,-0.100406,-0.012461,
+ 0.607061,-0.000001,-0.794655,0.223606,-0.162459,0.052786,
+ 0.607066,0,-0.794652,0.123606,0.145308,-0.023607,
+ 0.607066,0,-0.794652,0.08541,0.138758,-0.052786,
+ 0.607066,0,-0.794652,0.08541,0.262865,-0.052786,
+ 0.607061,0,-0.794655,0.023607,-0.162459,-0.1,
+ 0.607061,0,-0.794655,0.042705,-0.131433,-0.08541,
+ 0.607061,0,-0.794655,0.08541,-0.262865,-0.052786,
+ 0.60706,0.000002,-0.794656,0.18541,0.044903,0.023607,
+ 0.60706,0.000002,-0.794656,0.154508,0.050203,0,
+ 0.60706,0.000002,-0.794656,0.223606,0.162459,0.052786,
+ 0.607061,-0.00001,-0.794655,-0.038197,0.117557,-0.147214,
+ 0.607061,-0.00001,-0.794655,-0.026393,0.08123,-0.138196,
+ 0.607061,-0.00001,-0.794655,-0.138196,0.100406,-0.223606,
+ 0.607061,0.00001,-0.794655,-0.026393,-0.08123,-0.138196,
+ 0.607061,0.00001,-0.794655,-0.038197,-0.117557,-0.147214,
+ 0.607061,0.00001,-0.794655,-0.138196,-0.100406,-0.223606,
+ 0.60706,-0.000002,-0.794656,0.154508,-0.050203,0,
+ 0.60706,-0.000002,-0.794656,0.18541,-0.044903,0.023607,
+ 0.60706,-0.000002,-0.794656,0.223606,-0.162459,0.052786,
+ 0.607061,0,-0.794655,0.042705,0.131433,-0.08541,
+ 0.607061,0,-0.794655,0.023607,0.162459,-0.1,
+ 0.607061,0,-0.794655,0.08541,0.262865,-0.052786,
+ 0.491125,-0.356827,0.794651,-0.072949,-0.100406,0.118034,
+ 0.491125,-0.356827,0.794651,-0.1,-0.072654,0.147214,
+ 0.491125,-0.356827,0.794651,-0.361803,-0.262865,0.223606,
+ 0.491124,-0.356824,0.794654,-0.076393,-0.145308,0.1,
+ 0.491124,-0.356824,0.794654,-0.072949,-0.100406,0.118034,
+ 0.491124,-0.356824,0.794654,-0.361803,-0.262865,0.223606,
+ 0.491121,-0.356821,0.794656,0.072949,0.100406,0.118034,
+ 0.491121,-0.356821,0.794656,0.11459,0.117557,0.1,
+ 0.491121,-0.356821,0.794656,0.138196,0.425325,0.223606,
+ 0.491129,-0.356821,0.794652,0.038197,0.117557,0.147214,
+ 0.491129,-0.356821,0.794652,0.072949,0.100406,0.118034,
+ 0.491129,-0.356821,0.794652,0.138196,0.425325,0.223606,
+ 0.491121,-0.356826,0.794654,0.138196,-0.100406,-0.012461,
+ 0.491121,-0.356826,0.794654,0.123606,-0.145308,-0.023607,
+ 0.491121,-0.356826,0.794654,0.361803,-0.262865,-0.223606,
+ 0.491119,-0.356829,0.794654,0.176394,-0.072654,-0.023607,
+ 0.491119,-0.356829,0.794654,0.138196,-0.100406,-0.012461,
+ 0.491119,-0.356829,0.794654,0.361803,-0.262865,-0.223606,
+ 0.491122,-0.356835,0.79465,-0.065247,0,0.158359,
+ 0.491122,-0.356835,0.79465,-0.061803,0.044903,0.176394,
+ 0.491122,-0.356835,0.79465,-0.17082,0,0.223606,
+ 0.491124,-0.356822,0.794654,0.150658,0.062054,0.052786,
+ 0.491124,-0.356822,0.794654,0.18541,0.044903,0.023607,
+ 0.491124,-0.356822,0.794654,0.223606,0.162459,0.052786,
+ 0.491128,-0.356819,0.794653,0.052786,-0.162459,0.012461,
+ 0.491128,-0.356819,0.794653,0.01459,-0.190211,0.023607,
+ 0.491128,-0.356819,0.794653,0.08541,-0.262865,-0.052786,
+ 0.49112,-0.35682,0.794658,0.01459,-0.190211,0.023607,
+ 0.49112,-0.35682,0.794658,-0.012461,-0.162459,0.052786,
+ 0.49112,-0.35682,0.794658,-0.08541,-0.262865,0.052786,
+ 0.491135,-0.356817,0.79465,-0.061803,0.044903,0.176394,
+ 0.491135,-0.356817,0.79465,-0.020163,0.062054,0.158359,
+ 0.491135,-0.356817,0.79465,-0.052786,0.162459,0.223606,
+ 0.491124,-0.356824,0.794654,0.18541,0.044903,0.023607,
+ 0.491124,-0.356824,0.794654,0.17082,0,0.012461,
+ 0.491124,-0.356824,0.794654,0.276393,0,-0.052786,
+ 0.491129,-0.356813,0.794655,-0.1,-0.072654,0.147214,
+ 0.491129,-0.356813,0.794655,-0.069098,-0.050203,0.138196,
+ 0.491129,-0.356813,0.794655,-0.17082,0,0.223606,
+ 0.491124,-0.35682,0.794655,0.11459,0.117557,0.1,
+ 0.491124,-0.35682,0.794655,0.111804,0.08123,0.08541,
+ 0.491124,-0.35682,0.794655,0.223606,0.162459,0.052786,
+ 0.491133,-0.356822,0.794648,0.123606,-0.145308,-0.023607,
+ 0.491133,-0.356822,0.794648,0.095491,-0.131433,0,
+ 0.491133,-0.356822,0.794648,0.08541,-0.262865,-0.052786,
+ 0.491117,-0.356823,0.794658,-0.042705,-0.131433,0.08541,
+ 0.491117,-0.356823,0.794658,-0.076393,-0.145308,0.1,
+ 0.491117,-0.356823,0.794658,-0.08541,-0.262865,0.052786,
+ 0.491117,-0.35683,0.794655,0.026393,0.08123,0.138196,
+ 0.491117,-0.35683,0.794655,0.038197,0.117557,0.147214,
+ 0.491117,-0.35683,0.794655,-0.052786,0.162459,0.223606,
+ 0.491122,-0.356812,0.79466,0.154508,-0.050203,0,
+ 0.491122,-0.356812,0.79466,0.176394,-0.072654,-0.023607,
+ 0.491122,-0.356812,0.79466,0.276393,0,-0.052786,
+ -0.794653,-0.577353,-0.187592,-0.052786,-0.038352,-0.158359,
+ -0.794653,-0.577353,-0.187592,-0.076393,0,-0.176394,
+ -0.794653,-0.577353,-0.187592,0,0,-0.5,
+ -0.794657,-0.577347,-0.187592,-0.023607,-0.072654,-0.176394,
+ -0.794657,-0.577347,-0.187592,-0.052786,-0.038352,-0.158359,
+ -0.794657,-0.577347,-0.187592,0,0,-0.5,
+ -0.794656,-0.577344,-0.187604,-0.158359,0.038352,0.052786,
+ -0.794656,-0.577344,-0.187604,-0.161804,0.027751,0.1,
+ -0.794656,-0.577344,-0.187604,-0.361803,0.262865,0.223606,
+ -0.794652,-0.577358,-0.18758,-0.176394,0.072654,0.023607,
+ -0.794652,-0.577358,-0.18758,-0.158359,0.038352,0.052786,
+ -0.794652,-0.577358,-0.18758,-0.361803,0.262865,0.223606,
+ -0.794658,-0.577347,-0.187587,-0.012461,-0.162459,0.052786,
+ -0.794658,-0.577347,-0.187587,0.01459,-0.190211,0.023607,
+ -0.794658,-0.577347,-0.187587,0.138196,-0.425325,0.223606,
+ -0.794655,-0.577349,-0.187593,-0.023607,-0.162459,0.1,
+ -0.794655,-0.577349,-0.187593,-0.012461,-0.162459,0.052786,
+ -0.794655,-0.577349,-0.187593,0.138196,-0.425325,0.223606,
+ -0.794652,-0.577353,-0.187596,-0.118034,0.038352,-0.118034,
+ -0.794652,-0.577353,-0.187596,-0.147214,0.072654,-0.1,
+ -0.794652,-0.577353,-0.187596,-0.138196,0.100406,-0.223606,
+ -0.794654,-0.577351,-0.187592,-0.118034,-0.038352,0.118034,
+ -0.794654,-0.577351,-0.187592,-0.1,-0.072654,0.147214,
+ -0.794654,-0.577351,-0.187592,-0.17082,0,0.223606,
+ -0.794654,-0.57735,-0.187593,0.012461,-0.162459,-0.052786,
+ -0.794654,-0.57735,-0.187593,0.023607,-0.162459,-0.1,
+ -0.794654,-0.57735,-0.187593,0.08541,-0.262865,-0.052786,
+ -0.79465,-0.577356,-0.187592,0.023607,-0.162459,-0.1,
+ -0.79465,-0.577356,-0.187592,0,-0.124108,-0.118034,
+ -0.79465,-0.577356,-0.187592,0.052786,-0.162459,-0.223606,
+ -0.794655,-0.577351,-0.187588,-0.147214,0.072654,-0.1,
+ -0.794655,-0.577351,-0.187588,-0.150658,0.062054,-0.052786,
+ -0.794655,-0.577351,-0.187588,-0.223606,0.162459,-0.052786,
+ -0.794655,-0.57735,-0.18759,-0.1,-0.072654,0.147214,
+ -0.794655,-0.57735,-0.18759,-0.072949,-0.100406,0.118034,
+ -0.794655,-0.57735,-0.18759,-0.052786,-0.162459,0.223606,
+ -0.794657,-0.577348,-0.18759,-0.076393,0,-0.176394,
+ -0.794657,-0.577348,-0.18759,-0.08541,0,-0.138196,
+ -0.794657,-0.577348,-0.18759,-0.138196,0.100406,-0.223606,
+ -0.794646,-0.577362,-0.187591,-0.161804,0.027751,0.1,
+ -0.794646,-0.577362,-0.187591,-0.138196,0,0.08541,
+ -0.794646,-0.577362,-0.187591,-0.17082,0,0.223606,
+ -0.794655,-0.577346,-0.187602,0.01459,-0.190211,0.023607,
+ -0.794655,-0.577346,-0.187602,0,-0.162459,0,
+ -0.794655,-0.577346,-0.187602,0.08541,-0.262865,-0.052786,
+ -0.794652,-0.577354,-0.18759,-0.026393,-0.08123,-0.138196,
+ -0.794652,-0.577354,-0.18759,-0.023607,-0.072654,-0.176394,
+ -0.794652,-0.577354,-0.18759,0.052786,-0.162459,-0.223606,
+ -0.794648,-0.577354,-0.187607,-0.154508,0.050203,0,
+ -0.794648,-0.577354,-0.187607,-0.176394,0.072654,0.023607,
+ -0.794648,-0.577354,-0.187607,-0.223606,0.162459,-0.052786,
+ -0.794649,-0.577358,-0.187592,-0.042705,-0.131433,0.08541,
+ -0.794649,-0.577358,-0.187592,-0.023607,-0.162459,0.1,
+ -0.794649,-0.577358,-0.187592,-0.052786,-0.162459,0.223606,
+ -0.303523,0.934173,0.187603,0.08541,0.138758,-0.052786,
+ -0.303523,0.934173,0.187603,0.123606,0.145308,-0.023607,
+ -0.303523,0.934173,0.187603,0.361803,0.262865,-0.223606,
+ -0.303538,0.934173,0.187579,0.076393,0.145308,-0.1,
+ -0.303538,0.934173,0.187579,0.08541,0.138758,-0.052786,
+ -0.303538,0.934173,0.187579,0.361803,0.262865,-0.223606,
+ -0.303526,0.934174,0.187592,-0.020163,0.062054,0.158359,
+ -0.303526,0.934174,0.187592,-0.061803,0.044903,0.176394,
+ -0.303526,0.934174,0.187592,0,0,0.5,
+ -0.303535,0.934171,0.187592,0.023607,0.072654,0.176394,
+ -0.303535,0.934171,0.187592,-0.020163,0.062054,0.158359,
+ -0.303535,0.934171,0.187592,0,0,0.5,
+ -0.303532,0.934172,0.187594,-0.150658,0.062054,-0.052786,
+ -0.303532,0.934172,0.187594,-0.147214,0.072654,-0.1,
+ -0.303532,0.934172,0.187594,-0.447213,0,-0.223606,
+ -0.303531,0.934173,0.187591,-0.18541,0.044903,-0.023607,
+ -0.303531,0.934173,0.187591,-0.150658,0.062054,-0.052786,
+ -0.303531,0.934173,0.187591,-0.447213,0,-0.223606,
+ -0.303526,0.934172,0.187599,0.105573,0.124108,0.052786,
+ -0.303526,0.934172,0.187599,0.11459,0.117557,0.1,
+ -0.303526,0.934172,0.187599,0.223606,0.162459,0.052786,
+ -0.303529,0.934173,0.187594,-0.118034,0.038352,0.118034,
+ -0.303529,0.934173,0.187594,-0.161804,0.027751,0.1,
+ -0.303529,0.934173,0.187594,-0.17082,0,0.223606,
+ -0.30353,0.934173,0.187591,-0.072949,0.100406,-0.118034,
+ -0.30353,0.934173,0.187591,-0.038197,0.117557,-0.147214,
+ -0.30353,0.934173,0.187591,-0.138196,0.100406,-0.223606,
+ -0.303534,0.934173,0.187586,-0.038197,0.117557,-0.147214,
+ -0.303534,0.934173,0.187586,0,0.124108,-0.118034,
+ -0.303534,0.934173,0.187586,0.052786,0.162459,-0.223606,
+ -0.30353,0.934173,0.187591,0.11459,0.117557,0.1,
+ -0.30353,0.934173,0.187591,0.072949,0.100406,0.118034,
+ -0.30353,0.934173,0.187591,0.138196,0.100406,0.223606,
+ -0.303531,0.934173,0.187588,-0.161804,0.027751,0.1,
+ -0.303531,0.934173,0.187588,-0.158359,0.038352,0.052786,
+ -0.303531,0.934173,0.187588,-0.276393,0,0.052786,
+ -0.303524,0.934177,0.187583,0.123606,0.145308,-0.023607,
+ -0.303524,0.934177,0.187583,0.095491,0.131433,0,
+ -0.303524,0.934177,0.187583,0.223606,0.162459,0.052786,
+ -0.303535,0.934172,0.187588,-0.061803,0.044903,0.176394,
+ -0.303535,0.934172,0.187588,-0.069098,0.050203,0.138196,
+ -0.303535,0.934172,0.187588,-0.17082,0,0.223606,
+ -0.303531,0.934173,0.187592,-0.147214,0.072654,-0.1,
+ -0.303531,0.934173,0.187592,-0.111804,0.08123,-0.08541,
+ -0.303531,0.934173,0.187592,-0.138196,0.100406,-0.223606,
+ -0.303516,0.934178,0.18759,0.042705,0.131433,-0.08541,
+ -0.303516,0.934178,0.18759,0.076393,0.145308,-0.1,
+ -0.303516,0.934178,0.18759,0.052786,0.162459,-0.223606,
+ -0.303529,0.934174,0.187588,0.026393,0.08123,0.138196,
+ -0.303529,0.934174,0.187588,0.023607,0.072654,0.176394,
+ -0.303529,0.934174,0.187588,0.138196,0.100406,0.223606,
+ -0.30353,0.934172,0.187595,-0.154508,0.050203,0,
+ -0.30353,0.934172,0.187595,-0.18541,0.044903,-0.023607,
+ -0.30353,0.934172,0.187595,-0.276393,0,0.052786
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1080,data,NULL};
+const struct gllist *tronbit_no=&frame;
diff --git a/hacks/glx/tronbit_yes.c b/hacks/glx/tronbit_yes.c
new file mode 100644
index 0000000..376e96c
--- /dev/null
+++ b/hacks/glx/tronbit_yes.c
@@ -0,0 +1,31 @@
+/* yes = tetrahedron */
+
+#include "gllist.h"
+static const float data[]={
+ 0.57735,0.57735,0.57735,0,0,0.5,
+ 0.57735,0.57735,0.57735,0.5,0,0,
+ 0.57735,0.57735,0.57735,0,0.5,0,
+ -0.57735,0.57735,0.57735,0,0,0.5,
+ -0.57735,0.57735,0.57735,0,0.5,0,
+ -0.57735,0.57735,0.57735,-0.5,0,0,
+ -0.57735,-0.57735,0.57735,0,0,0.5,
+ -0.57735,-0.57735,0.57735,-0.5,0,0,
+ -0.57735,-0.57735,0.57735,0,-0.5,0,
+ 0.57735,-0.57735,0.57735,0,0,0.5,
+ 0.57735,-0.57735,0.57735,0,-0.5,0,
+ 0.57735,-0.57735,0.57735,0.5,0,0,
+ 0.57735,-0.57735,-0.57735,0.5,0,0,
+ 0.57735,-0.57735,-0.57735,0,-0.5,0,
+ 0.57735,-0.57735,-0.57735,0,0,-0.5,
+ 0.57735,0.57735,-0.57735,0.5,0,0,
+ 0.57735,0.57735,-0.57735,0,0,-0.5,
+ 0.57735,0.57735,-0.57735,0,0.5,0,
+ -0.57735,0.57735,-0.57735,0,0.5,0,
+ -0.57735,0.57735,-0.57735,0,0,-0.5,
+ -0.57735,0.57735,-0.57735,-0.5,0,0,
+ -0.57735,-0.57735,-0.57735,-0.5,0,0,
+ -0.57735,-0.57735,-0.57735,0,0,-0.5,
+ -0.57735,-0.57735,-0.57735,0,-0.5,0
+};
+static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,24,data,NULL};
+const struct gllist *tronbit_yes=&frame;
diff --git a/hacks/glx/tube.c b/hacks/glx/tube.c
new file mode 100644
index 0000000..a5c0c96
--- /dev/null
+++ b/hacks/glx/tube.c
@@ -0,0 +1,403 @@
+/* tube, Copyright (c) 2001-2012 Jamie Zawinski <jwz@jwz.org>
+ * Utility functions to create tubes and cones in GL.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#include <math.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdlib.h>
+
+#ifdef HAVE_COCOA
+#elif defined(HAVE_ANDROID)
+# include <GLES/gl.h>
+#else
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "tube.h"
+
+typedef struct { GLfloat x, y, z; } XYZ;
+
+
+static int
+unit_tube (int faces, int smooth, int caps_p, int wire_p)
+{
+ int i;
+ int polys = 0;
+ GLfloat step = M_PI * 2 / faces;
+ GLfloat s2 = step/2;
+ GLfloat th;
+ GLfloat x, y, x0=0, y0=0;
+ int z = 0;
+
+ int arraysize, out;
+ struct { XYZ p; XYZ n; GLfloat s, t; } *array;
+
+ arraysize = (faces+1) * 6;
+ array = (void *) calloc (arraysize, sizeof(*array));
+ if (! array) abort();
+ out = 0;
+
+
+ /* #### texture coords are currently not being computed */
+
+
+ /* side walls
+ */
+ th = 0;
+ x = 1;
+ y = 0;
+
+ if (!smooth)
+ {
+ x0 = cos (s2);
+ y0 = sin (s2);
+ }
+
+ if (smooth) faces++;
+
+ for (i = 0; i < faces; i++)
+ {
+ array[out].p.x = x; /* bottom point A */
+ array[out].p.y = 0;
+ array[out].p.z = y;
+
+ if (smooth)
+ array[out].n = array[out].p; /* its own normal */
+ else
+ {
+ array[out].n.x = x0; /* mid-plane normal */
+ array[out].n.y = 0;
+ array[out].n.z = y0;
+ }
+ out++;
+
+
+ array[out].p.x = x; /* top point A */
+ array[out].p.y = 1;
+ array[out].p.z = y;
+ array[out].n = array[out-1].n; /* same normal */
+ out++;
+
+
+ th += step;
+ x = cos (th);
+ y = sin (th);
+
+ if (!smooth)
+ {
+ x0 = cos (th + s2);
+ y0 = sin (th + s2);
+
+ array[out].p.x = x; /* top point B */
+ array[out].p.y = 1;
+ array[out].p.z = y;
+ array[out].n = array[out-1].n; /* same normal */
+ out++;
+
+
+ array[out] = array[out-3]; /* bottom point A */
+ out++;
+
+ array[out] = array[out-2]; /* top point B */
+ out++;
+
+ array[out].p.x = x; /* bottom point B */
+ array[out].p.y = 0;
+ array[out].p.z = y;
+ array[out].n = array[out-1].n; /* same normal */
+ out++;
+
+ polys++;
+ }
+
+ polys++;
+ if (out >= arraysize) abort();
+ }
+
+ glEnableClientState (GL_VERTEX_ARRAY);
+ glEnableClientState (GL_NORMAL_ARRAY);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p);
+ glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n);
+ glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s);
+
+ glFrontFace(GL_CCW);
+ glDrawArrays ((wire_p ? GL_LINES :
+ (smooth ? GL_TRIANGLE_STRIP : GL_TRIANGLES)),
+ 0, out);
+
+
+ /* End caps
+ */
+ if (caps_p)
+ for (z = 0; z <= 1; z++)
+ {
+ out = 0;
+ if (! wire_p)
+ {
+ array[out].p.x = 0;
+ array[out].p.y = z;
+ array[out].p.z = 0;
+
+ array[out].n.x = 0;
+ array[out].n.y = (z == 0 ? -1 : 1);
+ array[out].n.z = 0;
+ out++;
+ }
+
+ th = 0;
+ for (i = (z == 0 ? 0 : faces);
+ (z == 0 ? i <= faces : i >= 0);
+ i += (z == 0 ? 1 : -1)) {
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+
+ array[out] = array[0]; /* same normal and texture */
+ array[out].p.x = x;
+ array[out].p.y = z;
+ array[out].p.z = y;
+ out++;
+
+ th += (z == 0 ? step : -step);
+
+ polys++;
+ if (out >= arraysize) abort();
+ }
+
+ glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p);
+ glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n);
+ glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s);
+
+ glFrontFace(GL_CCW);
+ glDrawArrays ((wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN), 0, out);
+ }
+
+ free(array);
+
+ return polys;
+}
+
+
+static int
+unit_cone (int faces, int smooth, int cap_p, int wire_p)
+{
+ int i;
+ int polys = 0;
+ GLfloat step = M_PI * 2 / faces;
+ GLfloat s2 = step/2;
+ GLfloat th;
+ GLfloat x, y, x0, y0;
+
+ int arraysize, out;
+ struct { XYZ p; XYZ n; GLfloat s, t; } *array;
+
+ arraysize = (faces+1) * 3;
+ array = (void *) calloc (arraysize, sizeof(*array));
+ if (! array) abort();
+ out = 0;
+
+
+ /* #### texture coords are currently not being computed */
+
+
+ /* side walls
+ */
+
+ th = 0;
+ x = 1;
+ y = 0;
+ x0 = cos (s2);
+ y0 = sin (s2);
+
+ for (i = 0; i < faces; i++)
+ {
+ array[out].p.x = x; /* bottom point A */
+ array[out].p.y = 0;
+ array[out].p.z = y;
+
+ if (smooth)
+ array[out].n = array[out].p; /* its own normal */
+ else
+ {
+ array[out].n.x = x0; /* mid-plane normal */
+ array[out].n.y = 0;
+ array[out].n.z = y0;
+ }
+ out++;
+
+
+ array[out].p.x = 0; /* tip point */
+ array[out].p.y = 1;
+ array[out].p.z = 0;
+
+ array[out].n.x = x0; /* mid-plane normal */
+ array[out].n.y = 0;
+ array[out].n.z = y0;
+ out++;
+
+
+ th += step;
+ x0 = cos (th + s2);
+ y0 = sin (th + s2);
+ x = cos (th);
+ y = sin (th);
+
+ array[out].p.x = x; /* bottom point B */
+ array[out].p.y = 0;
+ array[out].p.z = y;
+
+ if (smooth)
+ array[out].n = array[out].p; /* its own normal */
+ else
+ array[out].n = array[out-1].n; /* same normal as other two */
+ out++;
+
+
+ if (out >= arraysize) abort();
+ polys++;
+ }
+
+ glEnableClientState (GL_VERTEX_ARRAY);
+ glEnableClientState (GL_NORMAL_ARRAY);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p);
+ glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n);
+ glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s);
+
+ glFrontFace(GL_CCW);
+ glDrawArrays ((wire_p ? GL_LINES : GL_TRIANGLES), 0, out);
+
+
+ /* End cap
+ */
+ if (cap_p)
+ {
+ out = 0;
+
+ if (! wire_p)
+ {
+ array[out].p.x = 0;
+ array[out].p.y = 0;
+ array[out].p.z = 0;
+
+ array[out].n.x = 0;
+ array[out].n.y = -1;
+ array[out].n.z = 0;
+ out++;
+ }
+
+ for (i = 0, th = 0; i <= faces; i++)
+ {
+ GLfloat x = cos (th);
+ GLfloat y = sin (th);
+
+ array[out] = array[0]; /* same normal and texture */
+ array[out].p.x = x;
+ array[out].p.y = 0;
+ array[out].p.z = y;
+ out++;
+ th += step;
+ polys++;
+ if (out >= arraysize) abort();
+ }
+
+ glVertexPointer (3, GL_FLOAT, sizeof(*array), &array[0].p);
+ glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n);
+ glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s);
+
+ glFrontFace(GL_CCW);
+ glDrawArrays ((wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN), 0, out);
+ }
+
+ free (array);
+
+ return polys;
+}
+
+
+static int
+tube_1 (GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat diameter, GLfloat cap_size,
+ int faces, int smooth, int caps_p, int wire_p,
+ int cone_p)
+{
+ GLfloat length, X, Y, Z;
+ int polys = 0;
+
+ if (diameter <= 0) abort();
+
+ X = (x2 - x1);
+ Y = (y2 - y1);
+ Z = (z2 - z1);
+
+ if (X == 0 && Y == 0 && Z == 0)
+ return 0;
+
+ length = sqrt (X*X + Y*Y + Z*Z);
+
+ glPushMatrix();
+
+ glTranslatef(x1, y1, z1);
+ glRotatef (-atan2 (X, Y) * (180 / M_PI), 0, 0, 1);
+ glRotatef ( atan2 (Z, sqrt(X*X + Y*Y)) * (180 / M_PI), 1, 0, 0);
+ glScalef (diameter, length, diameter);
+
+ /* extend the endpoints of the tube by the cap size in both directions */
+ if (cap_size != 0)
+ {
+ GLfloat c = cap_size/length;
+ glTranslatef (0, -c, 0);
+ glScalef (1, 1+c+c, 1);
+ }
+
+ if (cone_p)
+ polys = unit_cone (faces, smooth, caps_p, wire_p);
+ else
+ polys = unit_tube (faces, smooth, caps_p, wire_p);
+
+ glPopMatrix();
+ return polys;
+}
+
+
+int
+tube (GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat diameter, GLfloat cap_size,
+ int faces, int smooth, int caps_p, int wire_p)
+{
+ return tube_1 (x1, y1, z1, x2, y2, z2, diameter, cap_size,
+ faces, smooth, caps_p, wire_p,
+ 0);
+}
+
+
+int
+cone (GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat diameter, GLfloat cap_size,
+ int faces, int smooth, int cap_p, int wire_p)
+{
+ return tube_1 (x1, y1, z1, x2, y2, z2, diameter, cap_size,
+ faces, smooth, cap_p, wire_p,
+ 1);
+}
diff --git a/hacks/glx/tube.h b/hacks/glx/tube.h
new file mode 100644
index 0000000..e3fff59
--- /dev/null
+++ b/hacks/glx/tube.h
@@ -0,0 +1,32 @@
+/* tube, Copyright (c) 2001, 2003, 2007 Jamie Zawinski <jwz@jwz.org>
+ * Utility functions to create tubes and cones in GL.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __TUBE_H__
+#define __TUBE_H__
+
+/* Renders a tube along the line described by the two points.
+ Returns the number of polygons used.
+ */
+extern int tube (GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat diameter, GLfloat cap_size,
+ int faces, int smooth, int caps_p, int wire_p);
+
+/* Renders a cone along the line described by the two points.
+ Returns the number of polygons used.
+ */
+extern int cone (GLfloat x1, GLfloat y1, GLfloat z1,
+ GLfloat x2, GLfloat y2, GLfloat z2,
+ GLfloat diameter, GLfloat cap_size,
+ int faces, int smooth, int cap_p, int wire_p);
+
+#endif /* __TUBE_H__ */
diff --git a/hacks/glx/tunnel_draw.c b/hacks/glx/tunnel_draw.c
new file mode 100644
index 0000000..8a87c76
--- /dev/null
+++ b/hacks/glx/tunnel_draw.c
@@ -0,0 +1,512 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* atunnels --- OpenGL Advanced Tunnel Demo */
+
+#if 0
+static const char sccsid[] = "@(#)tunnel_draw.c 5.13 2004/05/25 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 2002-2004. */
+
+/*
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Roman Podobedov
+ * Email: romka@ut.ee
+ * WEB: http://romka.demonews.com
+ *
+ * Eric Lassauge (May-25-2004) <lassauge@users.sourceforge.net>
+ * http://lassauge.free.fr/linux.html
+ *
+ * REVISION HISTORY:
+ * E.Lassauge - 25-May-2004:
+ * - added more texture
+ * - random texture init
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef USE_GL /* whole file */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+#ifdef STANDALONE
+# ifndef HAVE_JWXYZ
+# include <GL/gl.h>
+# include <GL/glu.h>
+# endif
+#endif
+#ifdef HAVE_ANDROID
+#include <GLES/gl.h>
+#endif
+
+
+#include "tunnel_draw.h"
+
+#ifdef STANDALONE /* For NRAND() */
+#include "xlockmoreI.h" /* in xscreensaver distribution */
+#else /* STANDALONE */
+#include "xlock.h" /* in xlockmore distribution */
+#endif /* STANDALONE */
+
+typedef struct
+{
+ float x, y, z; /* Point coordinates */
+} cvPoint;
+
+typedef struct _tnPath
+{
+ cvPoint p;
+ struct _tnPath *next;
+} tnPath;
+
+
+static const cvPoint initpath[]={
+{0.000000, 0.000000, 0.000000},
+{2.000000, 1.000000, 0.000000},
+{4.000000, 0.000000, 0.000000},
+{6.000000, 1.000000, 0.000000},
+{8.000000, 0.000000, 1.000000},
+{10.000000, 1.000000, 1.000000},
+{12.000000, 1.500000, 0.000000},
+{14.000000, 0.000000, 0.000000},
+{16.000000, 1.000000, 0.000000},
+{18.000000, 0.000000, 0.000000},
+{20.000000, 0.000000, 1.000000},
+{22.000000, 1.000000, 0.000000},
+{24.000000, 0.000000, 1.000000},
+{26.000000, 0.000000, 1.000000},
+{28.000000, 1.000000, 0.000000},
+{30.000000, 0.000000, 2.000000},
+{32.000000, 1.000000, 0.000000},
+{34.000000, 0.000000, 2.000000},
+{-1.000000, -1.000000, -1.000000}
+};
+
+
+struct tunnel_state {
+
+ tnPath *path;
+
+ float cam_t; /* Camera variables */
+ tnPath *cam_pos;
+ float alpha;
+
+ int tFlag; /* Tunnel Drawing Variables */
+ cvPoint prev_points[10];
+ int current_texture;
+
+ float ModeX; /* Modes */
+ int ModeXFlag;
+};
+
+/*=================== Vector normalization ==================================*/
+static void
+normalize(cvPoint *V)
+{
+ float d;
+
+ /* Vector length */
+ d = (float)sqrt(V->x*V->x + V->y*V->y + V->z*V->z);
+
+ /* Normalization */
+ V->x /= d;
+ V->y /= d;
+ V->z /= d;
+}
+/*=================== C = A x B (Vector multiply) ==========================*/
+#if 0
+static void
+vect_mult(cvPoint *A, cvPoint *B, cvPoint *C)
+{
+ /* Vector multiply */
+ 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;
+}
+#endif
+
+/* Catmull-Rom Curve calculations */
+static void
+cvCatmullRom(cvPoint *p, float t, cvPoint *outp)
+{
+ float t2, t3, t1;
+
+ t2 = t*t;
+ t3 = t*t*t;
+ t1 = (1-t)*(1-t);
+
+ outp->x = (-t*t1*p[0].x + (2-5*t2+3*t3)*p[1].x + t*(1+4*t-3*t2)*p[2].x - t2*(1-t)*p[3].x)/2;
+ outp->y = (-t*t1*p[0].y + (2-5*t2+3*t3)*p[1].y + t*(1+4*t-3*t2)*p[2].y - t2*(1-t)*p[3].y)/2;
+ outp->z = (-t*t1*p[0].z + (2-5*t2+3*t3)*p[1].z + t*(1+4*t-3*t2)*p[2].z - t2*(1-t)*p[3].z)/2;
+}
+
+/*=================== Point Rotating Around Line ===========================
+// p - original point
+// pp - pivot point
+// pl - pivot line (vector)
+// a - angle to rotate in radians
+// outp - output point
+//==========================================================================
+*/
+static void
+RotateAroundLine(cvPoint *p, cvPoint *pp, cvPoint *pl, float a, cvPoint *outp)
+{
+ cvPoint p1, p2;
+ float l, m, n, ca, sa;
+
+ p1.x = p->x - pp->x;
+ p1.y = p->y - pp->y;
+ p1.z = p->z - pp->z;
+
+ l = pl->x;
+ m = pl->y;
+ n = pl->z;
+
+ ca = cos(a);
+ sa = sin(a);
+
+ p2.x = p1.x*((l*l)+ca*(1-l*l)) + p1.y*(l*(1-ca)*m+n*sa) + p1.z*(l*(1-ca)*n-m*sa);
+ p2.y = p1.x*(l*(1-ca)*m-n*sa) + p1.y*(m*m+ca*(1-m*m)) + p1.z*(m*(1-ca)*n+l*sa);
+ p2.z = p1.x*(l*(1-ca)*n+m*sa) + p1.y*(m*(1-ca)*n-l*sa) + p1.z*(n*n+ca*(1-n*n));
+
+ outp->x = p2.x + pp->x;
+ outp->y = p2.y + pp->y;
+ outp->z = p2.z + pp->z;
+}
+
+
+/*=================== Load camera and tunnel path ==========================*/
+static void
+LoadPath(struct tunnel_state *st)
+{
+ float x, y, z;
+ tnPath *path1=NULL, *path2=NULL;
+
+ cvPoint *f = (cvPoint *)initpath;
+
+ while (f->x != -1.0)
+ {
+ x = f->x;
+ y = f->y;
+ z = f->z;
+ f++;
+
+ if (st->path == NULL)
+ {
+ st->path = (tnPath *)malloc(sizeof(tnPath));
+ path1 = st->path;
+ }
+ else
+ {
+ if (!path1) path1 = st->path;
+ path2 = (tnPath *)malloc(sizeof(tnPath));
+ path1->next = path2;
+ path1 = path2;
+ }
+
+ path1->next = NULL;
+ path1->p.x = x;
+ path1->p.y = y;
+ path1->p.z = z;
+ }
+
+ st->cam_pos = st->path;
+ st->cam_t = 0;
+}
+
+/*=================== Tunnel Initialization ================================*/
+struct tunnel_state *
+atunnel_InitTunnel(void)
+{
+ struct tunnel_state *st = (struct tunnel_state *) calloc (1, sizeof(*st));
+ LoadPath(st);
+ st->current_texture = NRAND(MAX_TEXTURE);
+ return st;
+}
+
+void
+atunnel_DrawTunnel(struct tunnel_state *st,
+ int do_texture, int do_light, GLuint *textures)
+{
+ tnPath *p, *p1, *cmpos;
+ cvPoint op, p4[4], T, ppp, op1, op2;
+ float t;
+ int i, j, k, flag;
+ cvPoint points[10];
+ GLfloat light_position[4];
+
+
+ /* Select current tunnel texture */
+ if (do_texture)
+ glBindTexture(GL_TEXTURE_2D, textures[st->current_texture]);
+
+ cmpos = st->cam_pos;
+ /* Get current curve */
+ if (st->cam_pos->next &&
+ st->cam_pos->next->next &&
+ st->cam_pos->next->next->next)
+ {
+ p1 = st->cam_pos;
+ for (i=0; i<4; i++)
+ {
+ p4[i].x = p1->p.x;
+ p4[i].y = p1->p.y;
+ p4[i].z = p1->p.z;
+ p1 = p1->next;
+ }
+ }
+ else
+ {
+ /* End of tunnel */
+ st->ModeX = 1.0;
+ st->ModeXFlag = 0;
+ return;
+ };
+
+ /* Get current camera position */
+ cvCatmullRom(p4, st->cam_t, &op);
+
+ /* Next camera position */
+ st->cam_t += 0.02f;
+ if (st->cam_t >= 1)
+ {
+ st->cam_t = st->cam_t - 1;
+ cmpos = st->cam_pos->next;
+ }
+
+ /* Get curve for next camera position */
+ if (cmpos->next->next->next)
+ {
+ p1 = cmpos;
+ for (i=0; i<4; i++)
+ {
+ p4[i].x = p1->p.x;
+ p4[i].y = p1->p.y;
+ p4[i].z = p1->p.z;
+ p1 = p1->next;
+ }
+ }
+ else
+ {
+ /* End of tunnel */
+ st->ModeX = 1.0;
+ st->ModeXFlag = 0;
+ return;
+ }
+
+ /* Get next camera position */
+ cvCatmullRom(p4, st->cam_t, &op1);
+
+ /* Rotate camera */
+ glRotatef(st->alpha, 0, 0, -1);
+ st->alpha += 1;
+ /* Set camera position */
+ gluLookAt(op.x, op.y, op.z, op1.x, op1.y, op1.z, 0, 1, 0);
+
+ /* Set light position */
+ if (do_light)
+ {
+ light_position[0] = op.x;
+ light_position[1] = op.y;
+ light_position[2] = op.z;
+ light_position[3] = 1;
+ glLightfv(GL_LIGHT0, GL_POSITION, light_position);
+ }
+
+ p = st->cam_pos;
+ flag = 0;
+ t = 0;
+ k = 0;
+ /* Draw tunnel from current curve and next 2 curves */
+ glBegin(GL_QUADS);
+ while (k < 3)
+ {
+ if (p->next->next->next)
+ {
+ p1 = p;
+ for (i=0; i<4; i++)
+ {
+ p4[i].x = p1->p.x;
+ p4[i].y = p1->p.y;
+ p4[i].z = p1->p.z;
+ p1 = p1->next;
+ }
+ }
+ else
+ {
+ /* End of tunnel */
+ st->ModeX = 1.0;
+ st->ModeXFlag = 0;
+ glEnd();
+ return;
+ }
+ cvCatmullRom(p4, t, &op);
+
+ ppp.x = op.x;
+ ppp.y = op.y;
+ ppp.z = op.z + 0.25;
+
+ t += 0.1;
+ if (t >= 1.0)
+ {
+ t = t - 1;
+ k++;
+ p = p->next;
+ }
+
+ if (p->next->next->next)
+ {
+ p1 = p;
+ for (i=0; i<4; i++)
+ {
+ p4[i].x = p1->p.x;
+ p4[i].y = p1->p.y;
+ p4[i].z = p1->p.z;
+ p1 = p1->next;
+ }
+ }
+ else
+ {
+ /* End of tunnel */
+ st->ModeX = 1.0;
+ st->ModeXFlag = 0;
+ glEnd();
+ return;
+ }
+
+ cvCatmullRom(p4, t, &op1);
+
+ T.x = op1.x - op.x;
+ T.y = op1.y - op.y;
+ T.z = op1.z - op.z;
+
+ normalize(&T);
+
+ for (i=0; i<10; i++)
+ {
+ RotateAroundLine(&ppp, &op, &T, ((float)i*36.0*M_PI/180.0), &op2);
+ points[i].x = op2.x;
+ points[i].y = op2.y;
+ points[i].z = op2.z;
+ if (!flag)
+ {
+ st->prev_points[i].x = op2.x;
+ st->prev_points[i].y = op2.y;
+ st->prev_points[i].z = op2.z;
+ }
+ }
+
+ if (!flag)
+ {
+ flag = 1;
+ continue;
+ }
+
+ /* Draw 10 polygons for current point */
+ for (i=0; i<10; i++)
+ {
+ j = i+1;
+ if (j > 9) j = 0;
+ glNormal3f(0, 0, 1); /* Normal for lighting */
+ glTexCoord2f(0, 0); glVertex3f(st->prev_points[i].x, st->prev_points[i].y, st->prev_points[i].z);
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(1, 0); glVertex3f(points[i].x, points[i].y, points[i].z);
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(1, 1); glVertex3f(points[j].x, points[j].y, points[j].z);
+ glNormal3f(0, 0, 1);
+ glTexCoord2f(0, 1); glVertex3f(st->prev_points[j].x, st->prev_points[j].y, st->prev_points[j].z);
+ }
+ /* Save current polygon coordinates for next position */
+ for (i=0; i<10; i++)
+ {
+ st->prev_points[i].x = points[i].x;
+ st->prev_points[i].y = points[i].y;
+ st->prev_points[i].z = points[i].z;
+ }
+ }
+ glEnd();
+ st->cam_pos = cmpos;
+}
+
+/* =================== Show splash screen =================================== */
+void
+atunnel_SplashScreen(struct tunnel_state *st,
+ int do_wire, int do_texture, int do_light)
+{
+ if (st->ModeX > 0)
+ {
+ /* Reset tunnel and camera position */
+ if (!st->ModeXFlag)
+ {
+ st->cam_pos = st->path;
+ st->cam_t = 0;
+ st->tFlag = 0;
+ st->ModeXFlag = 1;
+ st->current_texture++;
+ if (st->current_texture >= MAX_TEXTURE) st->current_texture = 0;
+ }
+ /* Now we want to draw splash screen */
+ glLoadIdentity();
+ /* Disable all unused features */
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_LIGHTING);
+ glDisable(GL_FOG);
+ glDisable(GL_CULL_FACE);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
+ glEnable(GL_BLEND);
+ glDisable(GL_TEXTURE_2D);
+ glColor4f(1, 1, 1, st->ModeX);
+
+ /* Draw splash screen (simply quad) */
+ glBegin(GL_QUADS);
+ glVertex3f(-10, -10, -1);
+ glVertex3f(10, -10, -1);
+ glVertex3f(10, 10, -1);
+ glVertex3f(-10, 10, -1);
+ glEnd();
+
+ st->ModeX -= 0.05;
+ if (st->ModeX <= 0) st->ModeX = 0;
+
+ if (!do_wire)
+ {
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_DEPTH_TEST);
+ }
+ if (do_light)
+ {
+ glEnable(GL_LIGHTING);
+ glEnable(GL_FOG);
+ }
+ if (do_texture)
+ {
+ glEnable(GL_TEXTURE_2D);
+ }
+ glDisable(GL_BLEND);
+ glColor4f(1, 1, 1, 1);
+ }
+}
+
+void
+atunnel_FreeTunnel(struct tunnel_state *st)
+{
+ free (st);
+}
+
+#endif
diff --git a/hacks/glx/tunnel_draw.h b/hacks/glx/tunnel_draw.h
new file mode 100644
index 0000000..643b958
--- /dev/null
+++ b/hacks/glx/tunnel_draw.h
@@ -0,0 +1,11 @@
+#define MAX_TEXTURE 10
+
+struct tunnel_state;
+
+extern struct tunnel_state * atunnel_InitTunnel(void);
+extern void atunnel_DrawTunnel(struct tunnel_state *,
+ int do_texture, int do_light, GLuint *textures);
+extern void atunnel_SplashScreen(struct tunnel_state *,
+ int do_wire, int do_texture, int do_light);
+extern void atunnel_FreeTunnel(struct tunnel_state *);
+
diff --git a/hacks/glx/unicrud.c b/hacks/glx/unicrud.c
new file mode 100644
index 0000000..7942252
--- /dev/null
+++ b/hacks/glx/unicrud.c
@@ -0,0 +1,961 @@
+/* unicrud, Copyright (c) 2016-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+ "*titleFont: -*-helvetica-bold-r-normal-*-*-180-*-*-*-*-*-*\n" \
+ "*font: -*-helvetica-bold-r-normal-*-*-2400-*-*-*-*-iso10646-1\n" \
+
+# define free_unicrud 0
+# define release_unicrud 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "rotator.h"
+#include "gltrackball.h"
+#include "texfont.h"
+#include "utf8wc.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPIN "True"
+#define DEF_WANDER "True"
+#define DEF_SPEED "1.0"
+#define DEF_BLOCK "ALL"
+#define DEF_TITLES "True"
+
+typedef struct {
+ GLXContext *glx_context;
+ rotator *rot;
+ trackball_state *trackball;
+ Bool button_down_p;
+
+ GLfloat color[4];
+ texture_font_data *title_font, *char_font;
+ unsigned long unichar;
+ const char *charplane, *charblock, *charname;
+ enum { IN, LINGER, OUT } state;
+ int spin_direction;
+ GLfloat ratio;
+
+} unicrud_configuration;
+
+static unicrud_configuration *bps = NULL;
+
+static Bool do_spin;
+static GLfloat speed;
+static Bool do_wander;
+static char *do_block = 0;
+static Bool do_titles;
+
+static XrmOptionDescRec opts[] = {
+ { "-spin", ".spin", XrmoptionNoArg, "True" },
+ { "+spin", ".spin", XrmoptionNoArg, "False" },
+ { "-wander", ".wander", XrmoptionNoArg, "True" },
+ { "+wander", ".wander", XrmoptionNoArg, "False" },
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-block", ".block", XrmoptionSepArg, 0 },
+ { "-titles", ".titles", XrmoptionNoArg, "True" },
+ { "+titles", ".titles", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&do_spin, "spin", "Spin", DEF_SPIN, t_Bool},
+ {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&do_block, "block", "Block", DEF_BLOCK, t_String},
+ {&do_titles, "titles", "Titles", DEF_TITLES, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt unicrud_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+static const struct {
+ unsigned long start;
+ const char * const name;
+} unicode_block_names[] = {
+
+ /* Through Unicode 8.0, early 2016. */
+
+ { 0x0000, "*Basic Multilingual" },
+ { 0x0000, "Unassigned" },
+ { 0x0021, "ASCII" },
+ { 0x0080, "Unassigned" },
+ { 0x00A1, "Latin1" },
+ { 0x0100, "Latin Extended-A" },
+ { 0x0180, "Latin Extended-B" },
+ { 0x0250, "IPA Extensions" },
+ { 0x02B0, "Spacing Modifier Letters" },
+ { 0x0300, "Combining Diacritical Marks" },
+ { 0x0370, "Greek and Coptic" },
+ { 0x0400, "Cyrillic" },
+ { 0x0500, "Cyrillic Supplement" },
+ { 0x0530, "Armenian" },
+ { 0x058B, "Unassigned" },
+ { 0x0590, "Hebrew" },
+ { 0x05F5, "Unassigned" },
+ { 0x0600, "Arabic" },
+ { 0x0700, "Syriac" },
+ { 0x0750, "Arabic Supplement" },
+ { 0x0780, "Thaana" },
+ { 0x07C0, "N'Ko" },
+ { 0x0800, "Samaritan" },
+ { 0x0840, "Mandaic" },
+ { 0x0860, "Unassigned" },
+ { 0x08A0, "Arabic Extended-A" },
+ { 0x0900, "Devanagari" },
+ { 0x0980, "Bengali" },
+ { 0x09FC, "Unassigned" },
+ { 0x0A00, "Gurmukhi" },
+ { 0x0A76, "Unassigned" },
+ { 0x0A80, "Gujarati" },
+ { 0x0AF2, "Unassigned" },
+ { 0x0B00, "Oriya" },
+ { 0x0B80, "Tamil" },
+ { 0x0BFB, "Unassigned" },
+ { 0x0C00, "Telugu" },
+ { 0x0C80, "Kannada" },
+ { 0x0CF0, "Unassigned" },
+ { 0x0D00, "Malayalam" },
+ { 0x0D80, "Sinhala" },
+ { 0x0DF5, "Unassigned" },
+ { 0x0E00, "Thai" },
+ { 0x0E5C, "Unassigned" },
+ { 0x0E80, "Lao" },
+ { 0x0EE0, "Unassigned" },
+ { 0x0F00, "Tibetan" },
+ { 0x0FDB, "Unassigned" },
+ { 0x1000, "Myanmar" },
+ { 0x10A0, "Georgian" },
+ { 0x1100, "Hangul Jamo" },
+ { 0x1200, "Ethiopic" },
+ { 0x1380, "Ethiopic Supplement" },
+ { 0x13A0, "Cherokee" },
+ { 0x1400, "Unified Canadian Aboriginal Syllabics" },
+ { 0x1677, "Unassigned" },
+ { 0x1680, "Ogham" },
+ { 0x16A0, "Runic" },
+ { 0x16F1, "Unassigned" },
+ { 0x1700, "Tagalog" },
+ { 0x1715, "Unassigned" },
+ { 0x1720, "Hanunoo" },
+ { 0x1737, "Unassigned" },
+ { 0x1740, "Buhid" },
+ { 0x1754, "Unassigned" },
+ { 0x1760, "Tagbanwa" },
+ { 0x1774, "Unassigned" },
+ { 0x1780, "Khmer" },
+ { 0x17FA, "Unassigned" },
+ { 0x1800, "Mongolian" },
+ { 0x18AB, "Unassigned" },
+ { 0x18B0, "Unified Canadian Aboriginal Syllabics Extended" },
+ { 0x18F6, "Unassigned" },
+ { 0x1900, "Limbu" },
+ { 0x1950, "Tai Le" },
+ { 0x1975, "Unassigned" },
+ { 0x1980, "Tai Lue" },
+ { 0x19E0, "Khmer Symbols" },
+ { 0x1A00, "Buginese" },
+ { 0x1A20, "Tai Tham" },
+ { 0x1AAE, "Unassigned" },
+ { 0x1AB0, "Combining Diacritical Marks Extended" },
+ { 0x1ABF, "Unassigned" },
+ { 0x1B00, "Balinese" },
+ { 0x1B80, "Sundanese" },
+ { 0x1BC0, "Batak" },
+ { 0x1C00, "Lepcha" },
+ { 0x1C50, "Ol Chiki" },
+ { 0x1C80, "Unassigned" },
+ { 0x1CC0, "Sundanese Supplement" },
+ { 0x1CC8, "Unassigned" },
+ { 0x1CD0, "Vedic Extensions" },
+ { 0x1CFA, "Unassigned" },
+ { 0x1D00, "Phonetic Extensions" },
+ { 0x1D80, "Phonetic Extensions Supplement" },
+ { 0x1DC0, "Combining Diacritical Marks Supplement" },
+ { 0x1E00, "Latin Extended Additional" },
+ { 0x1F00, "Greek Extended" },
+ { 0x2000, "General Punctuation" },
+ { 0x2070, "Superscripts and Subscripts" },
+ { 0x2095, "Unassigned" },
+ { 0x20A0, "Currency Symbols" },
+ { 0x20BE, "Unassigned" },
+ { 0x20D0, "Combining Diacritical Marks for Symbols" },
+ { 0x20F1, "Unassigned" },
+ { 0x2100, "Letterlike Symbols" },
+ { 0x2150, "Number Forms" },
+ { 0x2190, "Arrows" },
+ { 0x2200, "Mathematical Operators" },
+ { 0x2300, "Miscellaneous Technical" },
+ { 0x2400, "Control Pictures" },
+ { 0x2437, "Unassigned" },
+ { 0x2440, "Optical Character Recognition" },
+ { 0x244B, "Unassigned" },
+ { 0x2460, "Enclosed Alphanumerics" },
+ { 0x2500, "Box Drawing" },
+ { 0x2580, "Block Elements" },
+ { 0x25A0, "Geometric Shapes" },
+ { 0x2600, "Miscellaneous Symbols" },
+ { 0x2700, "Dingbats" },
+ { 0x27C0, "Miscellaneous Mathematical Symbols-A" },
+ { 0x27F0, "Supplemental Arrows-A" },
+ { 0x2800, "Braille Patterns" },
+ { 0x2900, "Supplemental Arrows-B" },
+ { 0x2980, "Miscellaneous Mathematical Symbols-B" },
+ { 0x2A00, "Supplemental Mathematical Operators" },
+ { 0x2B00, "Miscellaneous Symbols and Arrows" },
+ { 0x2B56, "Unassigned" }, /* Unicode 5.1 */
+ { 0x2BF0, "Unassigned" },
+ { 0x2C00, "Glagolitic" },
+ { 0x2C60, "Latin Extended-C" },
+ { 0x2C80, "Coptic" },
+ { 0x2D00, "Georgian Supplement" },
+ { 0x2D26, "Unassigned" },
+ { 0x2D30, "Tifinagh" },
+ { 0x2D80, "Ethiopic Extended" },
+ { 0x2DE0, "Cyrillic Extended-A" },
+ { 0x2E00, "Supplemental Punctuation" },
+ { 0x2E43, "Unassigned" },
+ { 0x2E80, "CJK Radicals Supplement" },
+ { 0x2EF5, "Unassigned" },
+ { 0x2F00, "Kangxi Radicals" },
+ { 0x2FD6, "Unassigned" },
+ { 0x2FE0, "Unassigned" },
+ { 0x2FF0, "Ideographic Description Characters" },
+ { 0x2FFC, "Unassigned" },
+ { 0x3000, "CJK Symbols and Punctuation" },
+ { 0x3040, "Hiragana" },
+ { 0x30A0, "Katakana" },
+ { 0x3100, "Bopomofo" },
+ { 0x3130, "Hangul Compatibility Jamo" },
+ { 0x3190, "Kanbun" },
+ { 0x31A0, "Bopomofo Extended" },
+ { 0x31BB, "Unassigned" },
+ { 0x31C0, "CJK Strokes" },
+ { 0x31E4, "Unassigned" },
+ { 0x31F0, "Katakana Phonetic Extensions" },
+ { 0x3200, "Enclosed CJK Letters and Months" },
+ { 0x3300, "CJK Compatibility" },
+ { 0x3400, "CJK Unified Ideographs Extension A" },
+ { 0x4DB6, "Unassigned" },
+ { 0x4DC0, "Yijing Hexagram Symbols" },
+ { 0x4E00, "CJK Unified Ideographs" },
+ { 0x9FD6, "Unassigned" },
+ { 0xA000, "Yi Syllables" },
+ { 0xA48D, "Unassigned" },
+ { 0xA490, "Yi Radicals" },
+ { 0xA4C7, "Unassigned" },
+ { 0xA4D0, "Lisu" },
+ { 0xA500, "Vai" },
+ { 0xA62C, "Unassigned" },
+ { 0xA640, "Cyrillic Extended-B" },
+ { 0xA6A0, "Bamum" },
+ { 0xA700, "Modifier Tone Letters" },
+ { 0xA720, "Latin Extended-D" },
+ { 0xA800, "Syloti Nagri" },
+ { 0xA82C, "Unassigned" },
+ { 0xA830, "Common Indic Number Forms" },
+ { 0xA83A, "Unassigned" },
+ { 0xA840, "Phags-pa" },
+ { 0xA878, "Unassigned" },
+ { 0xA880, "Saurashtra" },
+ { 0xA8DA, "Unassigned" },
+ { 0xA8E0, "Devanagari Extended" },
+ { 0xA8FE, "Unassigned" },
+ { 0xA900, "Kayah Li" },
+ { 0xA930, "Rejang" },
+ { 0xA960, "Hangul Jamo Extended-A" },
+ { 0xA97D, "Unassigned" },
+ { 0xA980, "Javanese" },
+ { 0xA9E0, "Myanmar Extended-B" },
+ { 0xAA00, "Cham" },
+ { 0xAA60, "Myanmar Extended-A" },
+ { 0xAA80, "Tai Viet" },
+ { 0xAAE0, "Meetei Mayek Extensions" },
+ { 0xAB00, "Ethiopic Extended-A" },
+ { 0xAB30, "Latin Extended-E" },
+ { 0xAB66, "Unassigned" },
+ { 0xAB70, "Cherokee Supplement" },
+ { 0xABC0, "Meetei Mayek" },
+ { 0xABFA, "Unassigned" },
+ { 0xAC00, "Hangul Syllables" },
+ { 0xD7B0, "Hangul Jamo Extended-B" },
+ { 0xD7FC, "Unassigned" },
+/*{ 0xD800, "High Surrogates" }, */ /* UTF-16 compatibility */
+/*{ 0xDC00, "Low Surrogates" }, */ /* UTF-16 compatibility */
+ { 0xE000, "Private Use Area" },
+ { 0xF900, "CJK Compatibility Ideographs" },
+ { 0xFAEA, "Unassigned" },
+ { 0xFB00, "Alphabetic Presentation Forms" },
+ { 0xFB50, "Arabic Presentation Forms-A" },
+ { 0xFE00, "Variation Selectors" },
+ { 0xFE10, "Vertical Forms" },
+ { 0xFE1A, "Unassigned" },
+ { 0xFE20, "Combining Half Marks" },
+ { 0xFE30, "CJK Compatibility Forms" },
+ { 0xFE50, "Small Form Variants" },
+ { 0xFE6C, "Unassigned" },
+ { 0xFE70, "Arabic Presentation Forms-B" },
+ { 0xFF00, "Halfwidth and Fullwidth Forms" },
+ { 0xFFF0, "Unassigned" },
+ { 0xFFF9, "Specials" },
+ { 0xFFFE, "Unassigned" },
+
+ { 0x10000, "*Supplementary Multilingual" },
+ { 0x10000, "Linear B Syllabary" },
+ { 0x1007E, "Unassigned" },
+ { 0x10080, "Linear B Ideograms" },
+ { 0x100FB, "Unassigned" },
+ { 0x10100, "Aegean Numbers" },
+ { 0x10140, "Ancient Greek Numbers" },
+ { 0x1018D, "Unassigned" },
+ { 0x10190, "Ancient Symbols" },
+ { 0x1019C, "Unassigned" },
+ { 0x101D0, "Phaistos Disc" },
+ { 0x10200, "Unassigned" },
+ { 0x10280, "Lycian" },
+ { 0x1029D, "Unassigned" },
+ { 0x102A0, "Carian" },
+ { 0x102D1, "Unassigned" },
+ { 0x102E0, "Coptic Epact Numbers" },
+ { 0x102FC, "Unassigned" },
+ { 0x10300, "Old Italic" },
+ { 0x10324, "Unassigned" },
+ { 0x10330, "Gothic" },
+ { 0x1034B, "Unassigned" },
+ { 0x10350, "Old Permic" },
+ { 0x10380, "Ugaritic" },
+ { 0x103A0, "Old Persian" },
+ { 0x103D6, "Unassigned" },
+ { 0x103E0, "Unassigned" },
+ { 0x10400, "Deseret" },
+ { 0x10450, "Shavian" },
+ { 0x10480, "Osmanya" },
+ { 0x104AA, "Unassigned" },
+ { 0x104B0, "Unassigned" },
+ { 0x10500, "Elbasan" },
+ { 0x10528, "Unassigned" },
+ { 0x10530, "Caucasian Albanian" },
+ { 0x10570, "Unassigned" },
+ { 0x10600, "Linear A" },
+ { 0x10768, "Unassigned" },
+ { 0x10780, "Unassigned" },
+ { 0x10800, "Cypriot Syllabary" },
+ { 0x10840, "Imperial Aramaic" },
+ { 0x10860, "Palmyrene" },
+ { 0x10880, "Nabataean" },
+ { 0x108B0, "Unassigned" },
+ { 0x108E0, "Hatran" },
+ { 0x10900, "Phoenician" },
+ { 0x10920, "Lydian" },
+ { 0x10940, "Unassigned" },
+ { 0x10980, "Meroitic Hieroglyphs" },
+ { 0x109A0, "Meroitic Cursive" },
+ { 0x10A00, "Kharoshthi" },
+ { 0x10A59, "Unassigned" },
+ { 0x10A60, "Old South Arabian" },
+ { 0x10A80, "Old North Arabian" },
+ { 0x10AA0, "Unassigned" },
+ { 0x10AC0, "Manichaean" },
+ { 0x10AF7, "Unassigned" },
+ { 0x10B00, "Avestan" },
+ { 0x10B40, "Inscriptional Parthian" },
+ { 0x10B60, "Inscriptional Pahlavi" },
+ { 0x10B80, "Psalter Pahlavi" },
+ { 0x10BB0, "Unassigned" },
+ { 0x10C00, "Old Turkic" },
+ { 0x10C49, "Unassigned" },
+ { 0x10C50, "Unassigned" },
+ { 0x10C80, "Old Hungarian" },
+ { 0x10D00, "Unassigned" },
+ { 0x10E60, "Rumi Numeral Symbols" },
+ { 0x10E80, "Unassigned" },
+ { 0x11000, "Brahmi" },
+ { 0x11070, "Unassigned" },
+ { 0x11080, "Kaithi" },
+ { 0x110C2, "Unassigned" },
+ { 0x110D0, "Sora Sompeng" },
+ { 0x110FA, "Unassigned" },
+ { 0x11100, "Chakma" },
+ { 0x11144, "Unassigned" },
+ { 0x11150, "Mahajani" },
+ { 0x11177, "Unassigned" },
+ { 0x11180, "Sharada" },
+ { 0x111E0, "Sinhala Archaic Numbers" },
+ { 0x111F5, "Unassigned" },
+ { 0x11200, "Khojki" },
+ { 0x1123E, "Unassigned" },
+ { 0x11250, "Unassigned" },
+ { 0x11280, "Multani" },
+ { 0x112AA, "Unassigned" },
+ { 0x112B0, "Khudawadi" },
+ { 0x112FA, "Unassigned" },
+ { 0x11300, "Grantha" },
+ { 0x11375, "Unassigned" },
+ { 0x11380, "Unassigned" },
+ { 0x11480, "Tirhuta" },
+ { 0x114DA, "Unassigned" },
+ { 0x114E0, "Unassigned" },
+ { 0x11580, "Siddham" },
+ { 0x115DE, "Unassigned" },
+ { 0x11600, "Modi" },
+ { 0x1165A, "Unassigned" },
+ { 0x11660, "Unassigned" },
+ { 0x11680, "Takri" },
+ { 0x116CA, "Unassigned" },
+ { 0x116D0, "Unassigned" },
+ { 0x11700, "Ahom" },
+ { 0x11740, "Unassigned" },
+ { 0x118A0, "Warang Citi" },
+ { 0x11900, "Unassigned" },
+ { 0x11AC0, "Pau Cin Hau" },
+ { 0x11AF9, "Unassigned" },
+ { 0x11B00, "Unassigned" },
+ { 0x12000, "Cuneiform" },
+ { 0x1239A, "Unassigned" },
+ { 0x12400, "Cuneiform Numbers and Punctuation" },
+ { 0x12475, "Unassigned" },
+ { 0x12480, "Early Dynastic Cuneiform" },
+ { 0x12544, "Unassigned" },
+ { 0x12550, "Unassigned" },
+ { 0x13000, "Egyptian Hieroglyphs" },
+ { 0x13430, "Unassigned" },
+ { 0x14400, "Anatolian Hieroglyphs" },
+ { 0x14647, "Unassigned" },
+ { 0x14680, "Unassigned" },
+ { 0x16800, "Bamum Supplement" },
+ { 0x16A39, "Unassigned" },
+ { 0x16A40, "Mro" },
+ { 0x16A70, "Unassigned" },
+ { 0x16AD0, "Bassa Vah" },
+ { 0x16AF6, "Unassigned" },
+ { 0x16B00, "Pahawh Hmong" },
+ { 0x16B90, "Unassigned" },
+ { 0x16F00, "Miao" },
+ { 0x16FA0, "Unassigned" },
+ { 0x1B000, "Kana Supplement" },
+ { 0x1B002, "Unassigned" },
+ { 0x1B100, "Unassigned" },
+ { 0x1BC00, "Duployan Shorthand" },
+ { 0x1BCA4, "Unassigned" },
+ { 0x1BCB0, "Unassigned" },
+ { 0x1D000, "Byzantine Musical Symbols" },
+ { 0x1D0F5, "Unassigned" },
+ { 0x1D100, "Musical Symbols" },
+ { 0x1D1E9, "Unassigned" },
+ { 0x1D200, "Ancient Greek Musical Notation" },
+ { 0x1D246, "Unassigned" },
+ { 0x1D250, "Unassigned" },
+ { 0x1D300, "Tai Xuan Jing Symbols" },
+ { 0x1D357, "Unassigned" },
+ { 0x1D360, "Counting Rod Numerals" },
+ { 0x1D372, "Unassigned" },
+ { 0x1D380, "Unassigned" },
+ { 0x1D400, "Mathematical Alphanumeric Symbols" },
+ { 0x1D800, "Sutton SignWriting" },
+ { 0x1DAB0, "Unassigned" },
+ { 0x1E800, "Mende Kikakui" },
+ { 0X1E8D7, "Unassigned" },
+ { 0x1E8E0, "Unassigned" },
+ { 0x1EE00, "Arabic Mathematical Alphabetic Symbols" },
+ { 0X1EEFC, "Unassigned" },
+ { 0x1EF00, "Unassigned" },
+ { 0x1F000, "Mahjong Tiles" },
+ { 0x1F02C, "Unassigned" },
+ { 0x1F030, "Domino Tiles" },
+ { 0x1F094, "Unassigned" },
+ { 0x1F0A0, "Playing Cards" },
+ { 0x1F0F6, "Unassigned" },
+ { 0x1F100, "Enclosed Alphanumeric Supplement" },
+ { 0x1F19B, "Unassigned" },
+ { 0x1F1E6, "Enclosed Alphanumeric Supplement" },
+ { 0x1F200, "Enclosed Ideographic Supplement" },
+ { 0x1F252, "Unassigned" },
+ { 0x1F300, "Miscellaneous Symbols and Pictographs" },
+ { 0x1F600, "Emoticons" },
+ { 0x1F650, "Ornamental Dingbats" },
+ { 0x1F680, "Transport and Map Symbols" },
+ { 0x1F6F4, "Unassigned" },
+ { 0x1F700, "Alchemical Symbols" },
+ { 0x1F774, "Unassigned" },
+ { 0x1F780, "Geometric Shapes Extended" },
+ { 0x1F7D5, "Unassigned" },
+ { 0x1F800, "Supplemental Arrows-C" },
+ { 0x1F8AD, "Unassigned" },
+ { 0x1F910, "Supplemental Symbols and Pictographs" },
+ { 0x1F9C1, "Unassigned" },
+ { 0x1FA00, "Unassigned" },
+
+ { 0x20000, "*Supplementary Ideographic" },
+ { 0x20000, "CJK Unified Ideographs Extension B" },
+ { 0x2A6D7, "Unassigned" },
+ { 0x2A6E0, "Unassigned" },
+ { 0x2A700, "CJK Unified Ideographs Extension C" },
+ { 0x2B740, "Unassigned" },
+ { 0x2B740, "CJK Unified Ideographs Extension D" },
+ { 0x2B820, "Unassigned" },
+ { 0x2B820, "CJK Unified Ideographs Extension E" },
+ { 0x2CEA2, "Unassigned" },
+ { 0x2CEB0, "Unassigned" },
+ { 0x2F800, "CJK Compatibility Ideographs Supplement" },
+ { 0x2FA20, "Unassigned" },
+
+ { 0x30000, "*Unassigned Plane 3" },
+ { 0x40000, "*Unassigned Plane 4" },
+ { 0x50000, "*Unassigned Plane 5" },
+ { 0x60000, "*Unassigned Plane 6" },
+ { 0x70000, "*Unassigned Plane 7" },
+ { 0x80000, "*Unassigned Plane 8" },
+ { 0x90000, "*Unassigned Plane 9" },
+ { 0xA0000, "*Unassigned Plane 10" },
+ { 0xB0000, "*Unassigned Plane 11" },
+ { 0xC0000, "*Unassigned Plane 12" },
+ { 0xD0000, "*Unassigned Plane 13" },
+
+ { 0xE0000, "*Supplementary Special-Purpose" },
+ { 0xE0080, "Unassigned" },
+ { 0xE0020, "Tags" },
+ { 0xE0080, "Unassigned" },
+ { 0xE0100, "Variation Selectors Supplement" },
+ { 0xE01F0, "Unassigned" },
+
+ { 0xF0000, "*Supplementary Private Use Area A" },
+ { 0x100000, "*Supplementary Private Use Area B" },
+};
+
+
+static char *
+strip (char *s)
+{
+ unsigned long L;
+ while (*s == ' ' || *s == '\t' || *s == '\n')
+ s++;
+ L = strlen (s);
+ while (s[L-1] == ' ' || s[L-1] == '\t' || s[L-1] == '\n')
+ s[--L] = 0;
+ return s;
+}
+
+
+/* matches ("AA, BB, CC", "CC") => True
+ matches ("AA, BB, CC", "CCx") => False
+ */
+static Bool
+matches (const char *pattern, const char *string)
+{
+ char *token = strdup (pattern ? pattern : "");
+ char *otoken = token;
+ char *name;
+ Bool match = False;
+ while ((name = strtok (token, ","))) {
+ token = 0;
+ name = strip (name);
+ if (*name && !strcasecmp (name, string))
+ {
+ match = True;
+ break;
+ }
+ }
+
+ free (otoken);
+ return match;
+}
+
+
+static void
+pick_unichar (ModeInfo *mi)
+{
+ unicrud_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ unsigned long min = 0;
+ unsigned long max = 0x2F800;
+ unsigned long last = 0;
+ int retries = 0;
+
+ AGAIN:
+ bp->unichar = min + (random() % (max - min));
+
+ if (++retries > 0xF0000 / 2)
+ {
+ fprintf (stderr, "%s: internal error: too many retries\n", progname);
+ exit (1);
+ }
+
+ /* bp->unichar = 0x1F4A9; */
+
+ last = 0;
+ bp->charplane = "Unassigned";
+ bp->charblock = "Unassigned";
+ for (i = 0; i < countof(unicode_block_names); i++)
+ {
+ if (unicode_block_names[i].start < last)
+ {
+ fprintf (stderr, "%s: progname: internal error: misordered: 0x%lX\n",
+ progname, unicode_block_names[i].start);
+ exit (1);
+ }
+ last = unicode_block_names[i].start;
+ if (bp->unichar >= unicode_block_names[i].start)
+ {
+ if (unicode_block_names[i].name[0] == '*')
+ {
+ bp->charplane = unicode_block_names[i].name + 1;
+ bp->charblock = "Unassigned";
+ }
+ else
+ bp->charblock = unicode_block_names[i].name;
+ }
+ else
+ break;
+ }
+
+ if (!strncmp (bp->charblock, "Unassigned", 10) ||
+ !strncmp (bp->charblock, "Combining", 9))
+ goto AGAIN;
+
+ if (*do_block && !matches (do_block, bp->charblock))
+ goto AGAIN;
+
+ /* Skip blank characters */
+ {
+ XCharStruct e;
+ char text[10];
+ i = utf8_encode (bp->unichar, text, sizeof(text) - 1);
+ text[i] = 0;
+ texture_string_metrics (bp->char_font, text, &e, 0, 0);
+ if (e.width < 2 || e.ascent + e.descent < 2)
+ goto AGAIN;
+ }
+
+# ifdef HAVE_JWXYZ
+ bp->charname = texfont_unicode_character_name (bp->char_font, bp->unichar);
+# endif
+
+ bp->color[0] = 0.5 + frand(0.5);
+ bp->color[1] = 0.5 + frand(0.5);
+ bp->color[2] = 0.5 + frand(0.5);
+ bp->color[3] = 1;
+}
+
+
+static void
+draw_unichar (ModeInfo *mi)
+{
+ unicrud_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ char text[10];
+ char title[400];
+ XCharStruct e;
+ int w, h, i, j;
+ GLfloat s;
+
+ i = utf8_encode (bp->unichar, text, sizeof(text) - 1);
+ text[i] = 0;
+
+ *title = 0;
+ sprintf (title + strlen(title), "Plane:\t%s\n", bp->charplane);
+ sprintf (title + strlen(title), "Block:\t%s\n", bp->charblock);
+# ifdef HAVE_JWXYZ
+ sprintf (title + strlen(title), "Name:\t%s\n",
+ (bp->charname ? bp->charname : ""));
+#endif
+ sprintf (title + strlen(title), "Unicode:\t%04lX\n", bp->unichar);
+ sprintf (title + strlen(title), "UTF-8:\t");
+ for (j = 0; j < i; j++)
+ sprintf (title + strlen(title), "%02X ", ((unsigned char *)text)[j]);
+
+ texture_string_metrics (bp->char_font, text, &e, 0, 0);
+ w = e.width;
+ h = e.ascent;
+
+ s = 9;
+ glScalef (s, s, s);
+
+ s = 1.0 / (h > w ? h : w); /* Scale to unit */
+ glScalef (s, s, s);
+
+ glTranslatef (-w/2, -h/2, 0);
+ glColor4fv (bp->color);
+ print_texture_string (bp->char_font, text);
+
+ glColor3f (1, 1, 0);
+ if (do_titles)
+ print_texture_label (mi->dpy, bp->title_font,
+ mi->xgwa.width, mi->xgwa.height,
+ 1, title);
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_unicrud (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 100.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+unicrud_handle_event (ModeInfo *mi, XEvent *event)
+{
+ unicrud_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+ {
+ if (bp->state == LINGER) bp->ratio = 1;
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+ENTRYPOINT void
+init_unicrud (ModeInfo *mi)
+{
+ unicrud_configuration *bp;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_unicrud (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ {
+ double spin_speed = 0.05;
+ double wander_speed = 0.01;
+ double spin_accel = 1.0;
+
+ bp->rot = make_rotator (do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ do_spin ? spin_speed : 0,
+ spin_accel,
+ do_wander ? wander_speed : 0,
+ False);
+ bp->trackball = gltrackball_init (True);
+ }
+
+ bp->title_font = load_texture_font (mi->dpy, "titleFont");
+ bp->char_font = load_texture_font (mi->dpy, "font");
+ bp->state = IN;
+ bp->ratio = 0;
+ bp->spin_direction = (random() & 1) ? 1 : -1;
+
+
+
+ if (matches ("all", do_block))
+ do_block = strdup("");
+
+ {
+ char *s;
+ for (s = do_block; *s; s++)
+ if (*s == '_') *s = ' ';
+ }
+
+ if (matches ("help", do_block))
+ {
+ int i;
+ fprintf (stderr,
+ "%s: --blocks must contain one or more of these,"
+ " separated by commas:\n\n", progname);
+ for (i = 0; i < countof(unicode_block_names); i++)
+ {
+ const char *n = unicode_block_names[i].name;
+ if (*n == '*')
+ continue;
+ if (!strncmp (n, "Unassigned", 10) ||
+ !strncmp (n, "Combining", 9))
+ continue;
+ fprintf (stderr, "\t%s\n", n);
+ }
+ fprintf (stderr, "\n");
+ exit (1);
+ }
+
+
+ /* Make sure all elements in --block are valid.
+ */
+ if (*do_block)
+ {
+ char *token = strdup (do_block ? do_block : "");
+ char *otoken = token;
+ char *name;
+ while ((name = strtok (token, ","))) {
+ token = 0;
+ name = strip (name);
+ if (*name)
+ {
+ Bool match = False;
+ int i;
+ for (i = 0; i < countof(unicode_block_names); i++)
+ {
+ const char *n = unicode_block_names[i].name;
+ if (*n == '*')
+ continue;
+ if (!strncmp (n, "Unassigned", 10) ||
+ !strncmp (n, "Combining", 9))
+ continue;
+ if (!strcasecmp (name, n))
+ {
+ match = True;
+ break;
+ }
+ }
+ if (! match)
+ {
+ fprintf (stderr, "%s: unknown block name: \"%s\"\n",
+ progname, name);
+ fprintf (stderr, "%s: use '--block help' for a list\n",
+ progname);
+ exit (1);
+ }
+ }
+ }
+ free (otoken);
+ }
+
+ pick_unichar (mi);
+}
+
+
+ENTRYPOINT void
+draw_unicrud (ModeInfo *mi)
+{
+ unicrud_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glShadeModel (GL_FLAT);
+ glEnable (GL_NORMALIZE);
+ glDisable (GL_CULL_FACE);
+ glDisable (GL_LIGHTING);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (! bp->button_down_p)
+ switch (bp->state) {
+ case IN: bp->ratio += speed * 0.05; break;
+ case OUT: bp->ratio += speed * 0.05; break;
+ case LINGER: bp->ratio += speed * 0.005; break;
+ default: abort();
+ }
+
+ if (bp->ratio > 1.0)
+ {
+ bp->ratio = 0;
+ switch (bp->state) {
+ case IN:
+ bp->state = LINGER;
+ break;
+ case LINGER:
+ bp->state = OUT;
+ bp->spin_direction = (random() & 1) ? 1 : -1;
+ break;
+ case OUT:
+ bp->state = IN;
+ pick_unichar(mi);
+ break;
+ default: abort();
+ }
+ }
+
+ glPushMatrix ();
+
+ {
+ double x, y, z;
+ get_position (bp->rot, &x, &y, &z, !bp->button_down_p);
+ glTranslatef((x - 0.5) * 6,
+ (y - 0.5) * 6,
+ (z - 0.5) * 6);
+
+ gltrackball_rotate (bp->trackball);
+
+ get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p);
+ x = y = 0;
+ glRotatef (x * 360, 1.0, 0.0, 0.0);
+ glRotatef (y * 360, 0.0, 1.0, 0.0);
+ glRotatef (z * 360, 0.0, 0.0, 1.0);
+ }
+
+# define SINOID(N) (sin(M_PI - (N) / 2 * M_PI))
+ {
+ GLfloat s;
+ switch (bp->state) {
+ case IN: s = SINOID (bp->ratio); break;
+ case OUT: s = SINOID (1-bp->ratio); break;
+ default: s = 1; break;
+ }
+ glScalef (s, s, s);
+ glRotatef (360 * s * bp->spin_direction * (bp->state == IN ? -1 : 1),
+ 0, 0, 1);
+ }
+
+ draw_unichar (mi);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("Unicrud", unicrud, unicrud)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/unicrud.man b/hacks/glx/unicrud.man
new file mode 100644
index 0000000..694ea06
--- /dev/null
+++ b/hacks/glx/unicrud.man
@@ -0,0 +1,74 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+unicrud - Bounces a random Unicode character on the screen.
+.SH SYNOPSIS
+.B unicrud
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-block \fIstring\fP]
+[\-no-titles]
+[\-no-wander]
+[\-no-roll]
+[\-fps]
+.SH DESCRIPTION
+Chooses a random Unicode character and displays it full screen, along with
+some information about it. https://en.wikipedia.org/wiki/Unicode
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-titles | \-no-titles
+Whether to describe the character being shown. Default true.
+.TP 8
+.B \-wander | \-no-wander
+Whether the object should wander around the screen.
+.TP 8
+.B \-roll | \-no-roll
+Whether the object should rotate. Boolean.
+.TP 8
+.B \-block \fIstring\fP
+Which block or blocks of Unicode characters to display. Default: "all".
+Use \fI\-block help\fP to see the full list.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2016 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/unknownpleasures.c b/hacks/glx/unknownpleasures.c
new file mode 100644
index 0000000..9802566
--- /dev/null
+++ b/hacks/glx/unknownpleasures.c
@@ -0,0 +1,486 @@
+/* unknownpleasures, Copyright (c) 2013-2014 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Translated from Mathematica code by Archery:
+ * http://intothecontinuum.tumblr.com/post/27443100682/in-july-1967-astronomers-at-the-cavendish
+ *
+ * Interestingly, the original image is copyright-free:
+ * http://adamcap.com/2011/05/19/history-of-joy-division-unknown-pleasures-album-art/
+ * https://en.wikipedia.org/wiki/Unknown_Pleasures
+ *
+ * TODO:
+ *
+ * - Performance is not great. Spending half our time in compute_line()
+ * and half our time in glEnd(). It's a vast number of cos/pow calls,
+ * and a vast number of polygons. I'm not sure how much could be cached.
+ *
+ * - There's too low periodicity vertically on the screen.
+ *
+ * - There's too low periodicity in time.
+ *
+ * - Could take advantage of time periodicity for caching: just save every
+ * poly for an N second loop. That would be a huge amount of RAM though.
+ *
+ * - At low resolutions, GL_POLYGON_OFFSET_FILL seems to work poorly
+ * and the lines get blocky.
+ */
+
+
+#define DEFAULTS "*delay: 30000 \n" \
+ "*count: 80 \n" \
+ "*resolution: 100 \n" \
+ "*ortho: True \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*geometry: =800x800" "\n" \
+
+# define free_unk 0
+# define release_unk 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include "gltrackball.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_SPEED "1.0"
+
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *trackball;
+ Bool button_down_p;
+ Bool orthop;
+ GLfloat resolution;
+ int count;
+ GLfloat t;
+} unk_configuration;
+
+static unk_configuration *bps = NULL;
+
+static GLfloat speed;
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-resolution", ".resolution", XrmoptionSepArg, 0 },
+ { "-ortho", ".ortho", XrmoptionNoArg, "True" },
+ { "-no-ortho", ".ortho", XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt unk_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_unk (ModeInfo *mi, int width, int height)
+{
+ unk_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width*1.5;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, (GLint) width, (GLint) height);
+
+ if (bp->orthop)
+ {
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (1.0, 1/h, 690, 710);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0, 0, 700,
+ 0, 0, 0,
+ 0, 1, 0);
+ if (width < height)
+ glScalef (1/h, 1/h, 1);
+ glTranslatef (0, -0.5, 0);
+ }
+ else
+ {
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 20.0, 40.0);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0.0, 0.0, 30.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0);
+ if (width < height)
+ glScalef (1/h, 1/h, 1);
+ }
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+unk_handle_event (ModeInfo *mi, XEvent *event)
+{
+ unk_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress &&
+ (event->xbutton.button == Button4 ||
+ event->xbutton.button == Button5 ||
+ event->xbutton.button == Button6 ||
+ event->xbutton.button == Button7))
+ {
+ int b = event->xbutton.button;
+ int speed = 1;
+ if (b == Button6 || b == Button7)
+ speed *= 3;
+ if (bp->orthop)
+ switch (b) { /* swap axes */
+ case Button4: b = Button6; break;
+ case Button5: b = Button7; break;
+ case Button6: b = Button4; break;
+ case Button7: b = Button5; break;
+ }
+ gltrackball_mousewheel (bp->trackball, b, speed, !!event->xbutton.state);
+ return True;
+ }
+ else if (gltrackball_event_handler (event, bp->trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ bp->orthop = !bp->orthop;
+ reshape_unk (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+
+ return False;
+}
+
+
+
+ENTRYPOINT void
+init_unk (ModeInfo *mi)
+{
+ unk_configuration *bp;
+
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ bp->orthop = get_boolean_resource (MI_DISPLAY (mi), "ortho", "Ortho");
+ bp->resolution = get_float_resource (MI_DISPLAY (mi),
+ "resolution", "Resolution");
+ if (bp->resolution < 1) bp->resolution = 1;
+ if (bp->resolution > 300) bp->resolution = 300;
+
+ reshape_unk (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ bp->count = MI_COUNT(mi);
+ if (bp->count < 1) bp->count = 1;
+
+ bp->trackball = gltrackball_init (False);
+
+ if (MI_COUNT(mi) < 1) MI_COUNT(mi) = 1;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+
+
+static double
+R (double f)
+{
+ /* A simple, fast, deterministic PRNG.
+ ya_rand_init() is too slow for this, and the stream of numbers here
+ doesn't have to be high quality.
+ */
+#if 1
+ int seed0 = 1613287;
+
+# else
+ /* Kluge to let me pick a good seed factor by trial and error... */
+ static int seed0 = 0;
+ static int count = 0;
+ if (count++ > 150000000) seed0 = 0, count=0;
+ if (! seed0)
+ {
+ seed0 = (random() & 0xFFFFF);
+ fprintf(stderr, "seed0 = %8x %d\n", seed0, seed0);
+ }
+# endif
+
+ long seed = seed0 * f;
+ seed = 48271 * (seed % 44488) - 3399 * (seed / 44488);
+ f = (double) seed / 0x7FFFFFFF;
+
+ return f;
+}
+
+
+static void
+compute_line (ModeInfo *mi,
+ int xmin, int xmax, GLfloat xinc,
+ GLfloat res_scale,
+ int y,
+ GLfloat *points)
+{
+ unk_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ GLfloat fx;
+ int lastx = -999999;
+
+ /* Compute the points on the line */
+
+ for (fx = xmin; fx < xmax; fx += xinc)
+ {
+ int x = fx;
+ int n;
+ GLfloat hsum = 0, vsum = 0;
+
+ if (x == lastx) continue;
+ lastx = x;
+
+ for (n = 1; n <= 30; n++)
+ {
+ /* This sum affects crinkliness of the lines */
+ hsum += (10 *
+ sin (2 * M_PI
+ * R (4 * y)
+ + bp->t
+ + R (2 * n * y)
+ * 2 * M_PI)
+ * exp (-pow ((.3 * (x / res_scale) + 30
+ - 1 * 100 * R (2 * n * y)),
+ 2)
+ / 20.0));
+ }
+
+ for (n = 1; n <= 4; n++)
+ {
+ /* This sum affects amplitude of the peaks */
+ vsum += (3 * (1 + R (3 * n * y))
+ * fabs (sin (bp->t + R (n * y)
+ * 2 * M_PI))
+ * exp (-pow (((x / res_scale) - 1 * 100 * R (n * y)),
+ 2)
+ / 20.0));
+ }
+
+ /* Scale of this affects amplitude of the flat parts */
+ points[x - xmin] = (0.2 * sin (2 * M_PI * R (6 * y) + hsum) + vsum);
+ }
+
+}
+
+
+ENTRYPOINT void
+draw_unk (ModeInfo *mi)
+{
+ unk_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat aspect = 1.5;
+
+ GLfloat res_scale = 4;
+ int xmin = -50 * res_scale;
+ int xmax = 150 * res_scale;
+ GLfloat xinc = 100.0 / (bp->resolution / res_scale);
+ int ymin = 1;
+ int ytop = MI_COUNT(mi);
+ int yinc = 1;
+ int y;
+ GLfloat *points;
+
+ if (xinc < 0.25) xinc = 0.25;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ mi->polygon_count = 0;
+
+ glShadeModel (GL_FLAT);
+ glEnable (GL_DEPTH_TEST);
+ glDisable (GL_CULL_FACE);
+
+ glPushMatrix ();
+
+ glRotatef(current_device_rotation(), 0, 0, 1);
+
+ gltrackball_rotate (bp->trackball);
+ glScalef (10, 10, 10);
+
+ glRotatef (-45, 1, 0, 0);
+ glTranslatef (-0.5, -0.5, 0);
+ if (bp->orthop)
+ glTranslatef (0, 0.05, 0);
+ else
+ glTranslatef (0, 0.15, 0);
+
+ points = (GLfloat *) malloc (sizeof(*points) * (xmax - xmin));
+
+ if (!bp->button_down_p)
+ {
+ double s = 6.3 / 19 / 3;
+# if 1
+ bp->t -= s * speed;
+ if (bp->t <= 0)
+ bp->t = s * 18 * 3;
+# else
+ bp->t += s;
+# endif
+ }
+
+ glLineWidth (2);
+
+ /* Lower the resolution to get a decent frame rate on iPhone 4s */
+ if (mi->xgwa.width <= 640 || mi->xgwa.height <= 640)
+ {
+ ytop *= 0.6;
+ xinc *= 3;
+ }
+
+# ifdef HAVE_MOBILE
+ /* Lower it even further for iPhone 3 */
+ if (mi->xgwa.width <= 480 || mi->xgwa.height <= 480)
+ {
+ ytop *= 0.8;
+ xinc *= 1.2;
+ }
+
+ /* Performance just sucks on iPad 3, even with a very high xinc. WTF? */
+/*
+ if (mi->xgwa.width >= 2048 || mi->xgwa.height >= 2048)
+ xinc *= 2;
+*/
+
+# endif /* HAVE_MOBILE */
+
+
+ /* Make the image fill the screen a little more fully */
+ if (mi->xgwa.width <= 640 || mi->xgwa.height <= 640)
+ {
+ glScalef (1.2, 1.2, 1.2);
+ glTranslatef (-0.08, 0, 0);
+ }
+
+ if (mi->xgwa.width <= 480 || mi->xgwa.height <= 480)
+ glLineWidth (1);
+
+
+ if (wire)
+ xinc *= 1.3;
+
+ /* Draw back mask */
+ {
+ GLfloat s = 0.99;
+ glDisable (GL_POLYGON_OFFSET_FILL);
+ glColor3f (0, 0, 0);
+ glPushMatrix();
+ glTranslatef (0, (1-aspect)/2, -0.005);
+ glScalef (1, aspect, 1);
+ glTranslatef (0.5, 0.5, 0);
+ glScalef (s, s, 1);
+ glBegin (GL_QUADS);
+ glVertex3f (-0.5, -0.5, 0);
+ glVertex3f ( 0.5, -0.5, 0);
+ glVertex3f ( 0.5, 0.5, 0);
+ glVertex3f (-0.5, 0.5, 0);
+ glEnd();
+ glPopMatrix();
+ }
+
+ if (! wire)
+ {
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+
+ /* So the masking quads don't interfere with the lines */
+ glEnable (GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset (1.0, 1.0);
+ }
+
+ for (y = ymin; y <= ytop; y += yinc)
+ {
+ /* Compute all the verts on the line */
+ compute_line (mi, xmin, xmax, xinc, res_scale, y, points);
+
+ /* Draw the line segments; then draw the black shielding quads. */
+ {
+ GLfloat yy = y / (GLfloat) ytop;
+ int linesp;
+
+ yy = (yy * aspect) - ((aspect - 1) / 2);
+
+ for (linesp = 0; linesp <= 1; linesp++)
+ {
+ GLfloat fx;
+ int lastx = -999999;
+
+ GLfloat c = (linesp || wire ? 1 : 0);
+ glColor3f (c, c, c);
+
+ glBegin (linesp
+ ? GL_LINE_STRIP
+ : wire ? GL_LINES : GL_QUAD_STRIP);
+ lastx = -999999;
+ for (fx = xmin; fx < xmax; fx += xinc)
+ {
+ int x = fx;
+ GLfloat xx = (x - xmin) / (GLfloat) (xmax - xmin);
+ GLfloat zz = points [x - xmin];
+
+ if (x == lastx) continue;
+ lastx = x;
+
+ zz /= 80;
+ glVertex3f (xx, yy, zz);
+ if (! linesp)
+ glVertex3f (xx, yy, 0);
+ mi->polygon_count++;
+ }
+ glEnd ();
+ }
+ }
+ }
+
+ free (points);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("UnknownPleasures", unknownpleasures, unk)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/unknownpleasures.man b/hacks/glx/unknownpleasures.man
new file mode 100644
index 0000000..422c81f
--- /dev/null
+++ b/hacks/glx/unknownpleasures.man
@@ -0,0 +1,74 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+unknownpleasures - an animation of the signal from the pulsar PSR B1919+21.
+.SH SYNOPSIS
+.B unknownpleasures
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fIpercent\fP]
+[\-count \fIinteger\fP]
+[\-resolution \fIpercent\fP]
+[\-no-ortho]
+[\-fps]
+.SH DESCRIPTION
+PSR B1919+21 (AKA CP 1919) was the first pulsar ever discovered: a spinning
+neutron star emitting a periodic lighthouse-like beacon. An illustration of
+the signal received from it was published in Scientific American in 1971,
+and later in The Cambridge Encyclopedia of Astronomy in 1977, where it was
+seen by Stephen Morris, the drummer of Joy Division, and was consequently
+appropriated by Peter Saville for the cover of the band's album "Unknown
+Pleasures".
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2 for twice as fast, 0.5 for half as fast.
+.TP 8
+.B \-count \fInumber\fP
+Scanlines (vertical resolution). Default: 80.
+.TP 8
+.B \-count \fInumber\fP
+Horizontal Resolution, Default: 100%.
+.TP 8
+.B \-ortho | \-no-ortho
+Whether to use an orthographic projection.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2013 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/vigilance.c b/hacks/glx/vigilance.c
new file mode 100644
index 0000000..05e19ed
--- /dev/null
+++ b/hacks/glx/vigilance.c
@@ -0,0 +1,1150 @@
+/* vigilance, Copyright (c) 2017-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Draws surveillance cameras, taking an interest in their surroundings.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*count: 5 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*bodyColor: #666666" "\n" \
+ "*capColor: #FFFFFF" "\n" \
+ "*hingeColor: #444444" "\n" \
+ "*mountColor: #444444" "\n" \
+ "*lensColor: #000000" "\n" \
+ "*groundColor: #004400" "\n" \
+
+# define free_camera 0
+# define release_camera 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_SPEED "1.0"
+#define DEF_CAMERA_SIZE "1.0"
+
+#include "xlockmore.h"
+#include "gltrackball.h"
+#include "ximage-loader.h"
+#include "normals.h"
+
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#undef ABS
+#define ABS(x) ((x)<0?-(x):(x))
+#undef MAX
+#define MAX(A,B) ((A)>(B)?(A):(B))
+#undef MIN
+#define MIN(A,B) ((A)<(B)?(A):(B))
+#undef BELLRAND
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+#include "gllist.h"
+
+extern const struct gllist
+ *seccam_body, *seccam_cap, *seccam_hinge, *seccam_pipe, *seccam_lens;
+static struct gllist *ground = 0;
+
+static const struct gllist * const *all_objs[] = {
+ &seccam_body, &seccam_cap, &seccam_hinge, &seccam_pipe, &seccam_lens,
+ (const struct gllist * const *) &ground
+};
+
+#define CAMERA_BODY 0
+#define CAMERA_CAP 1
+#define CAMERA_HINGE 2
+#define CAMERA_MOUNT 3
+#define CAMERA_LENS 4
+#define GROUND 5
+
+#define BEAM_ZOFF 0.185 /* distance from origin to lens in model */
+
+typedef enum { IDLE, WARM_UP, ZOT, COOL_DOWN } camera_state;
+
+
+typedef struct {
+ XYZ pos;
+ GLfloat facing; /* rotation around vertical axis, degrees */
+ GLfloat pitch; /* front/back tilt, degrees */
+ GLfloat velocity; /* most recent angular velocity, degrees */
+ long focus_id; /* pedestrian or camera of interest */
+ XYZ focus; /* point of interest */
+ camera_state state;
+ GLfloat tick;
+} camera;
+
+typedef struct pedestrian pedestrian;
+struct pedestrian {
+ long id;
+ XYZ pos;
+ GLfloat length;
+ GLfloat frequency, amplitude;
+ GLfloat ratio;
+ GLfloat speed;
+ pedestrian *next;
+};
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *user_trackball;
+ Bool button_down_p;
+
+ GLuint *dlists;
+ GLfloat component_colors[countof(all_objs)][4];
+
+ int ncameras;
+ camera *cameras;
+ pedestrian *pedestrians;
+} camera_configuration;
+
+static camera_configuration *bps = NULL;
+
+static GLfloat speed_arg;
+#ifdef DEBUG
+static int debug_p;
+#endif
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+#ifdef DEBUG
+ {"-debug", ".debug", XrmoptionNoArg, "True" },
+ {"+debug", ".debug", XrmoptionNoArg, "False" },
+#endif
+};
+
+static argtype vars[] = {
+ {&speed_arg, "speed", "Speed", DEF_SPEED, t_Float},
+#ifdef DEBUG
+ {&debug_p, "debug", "Debug", "False", t_Bool},
+#endif
+};
+
+ENTRYPOINT ModeSpecOpt camera_opts = {
+ countof(opts), opts, countof(vars), vars, NULL};
+
+
+ENTRYPOINT void
+reshape_camera (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, width, height);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (30.0, 1/h, 1.0, 200);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0, 0, 30,
+ 0, 0, 0,
+ 0, 1, 0);
+
+# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */
+ {
+ int o = (int) current_device_rotation();
+ if (o != 0 && o != 180 && o != -180)
+ glScalef (1/h, 1/h, 1/h);
+ }
+# endif
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+camera_handle_event (ModeInfo *mi, XEvent *event)
+{
+ camera_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->user_trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+ else if (event->xany.type == KeyPress)
+ {
+ KeySym keysym;
+ char c = 0;
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+ if (c == ' ' || c == '\t')
+ {
+ int i;
+ if (bp->cameras[0].state == IDLE && bp->pedestrians)
+ for (i = 0; i < bp->ncameras; i++)
+ {
+ bp->cameras[i].state = WARM_UP;
+ bp->cameras[i].tick = 1.0;
+ }
+ return True;
+ }
+ }
+
+ return False;
+}
+
+
+static int draw_ground (ModeInfo *, GLfloat color[4]);
+
+static void
+parse_color (ModeInfo *mi, char *key, GLfloat color[4])
+{
+ XColor xcolor;
+ char *string = get_string_resource (mi->dpy, key, "CameraColor");
+ if (!XParseColor (mi->dpy, mi->xgwa.colormap, string, &xcolor))
+ {
+ fprintf (stderr, "%s: unparsable color in %s: %s\n", progname,
+ key, string);
+ exit (1);
+ }
+
+ color[0] = xcolor.red / 65536.0;
+ color[1] = xcolor.green / 65536.0;
+ color[2] = xcolor.blue / 65536.0;
+ color[3] = 1;
+}
+
+
+ENTRYPOINT void
+init_camera (ModeInfo *mi)
+{
+ camera_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_camera (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+ }
+
+ bp->user_trackball = gltrackball_init (False);
+
+ bp->dlists = (GLuint *) calloc (countof(all_objs)+1, sizeof(GLuint));
+ for (i = 0; i < countof(all_objs); i++)
+ bp->dlists[i] = glGenLists (1);
+
+ for (i = 0; i < countof(all_objs); i++)
+ {
+ const struct gllist *gll = *all_objs[i];
+ char *key = 0;
+ GLfloat spec1[4] = {1.00, 1.00, 1.00, 1.0};
+ GLfloat spec2[4] = {0.40, 0.40, 0.70, 1.0};
+ GLfloat *spec = spec1;
+ GLfloat shiny = 20;
+
+ glNewList (bp->dlists[i], GL_COMPILE);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ glMatrixMode(GL_MODELVIEW);
+
+ glRotatef (-90, 1, 0, 0);
+ glRotatef (180, 0, 0, 1);
+ glScalef (6, 6, 6);
+
+ glBindTexture (GL_TEXTURE_2D, 0);
+
+ switch (i) {
+ case CAMERA_BODY: key = "bodyColor"; break;
+ case CAMERA_CAP: key = "capColor"; break;
+ case CAMERA_HINGE: key = "hingeColor"; break;
+ case CAMERA_MOUNT: key = "mountColor"; break;
+ case CAMERA_LENS: key = "lensColor"; spec = spec2; break;
+ case GROUND: key = "groundColor"; spec = spec2; shiny = 128; break;
+ default: abort(); break;
+ }
+
+ parse_color (mi, key, bp->component_colors[i]);
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+
+ switch (i) {
+ case GROUND:
+ if (! ground)
+ ground = (struct gllist *) calloc (1, sizeof(*ground));
+ ground->points = draw_ground (mi, bp->component_colors[i]);
+ break;
+ default:
+ renderList (gll, wire);
+ /* glColor3f (1, 1, 1); renderListNormals (gll, 100, True); */
+ /* glColor3f (1, 1, 0); renderListNormals (gll, 100, False); */
+ break;
+ }
+
+ glMatrixMode(GL_TEXTURE);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+
+ glEndList ();
+ }
+
+ bp->ncameras = MI_COUNT(mi);
+ if (bp->ncameras <= 0) bp->ncameras = 1;
+ bp->cameras = (camera *) calloc (bp->ncameras, sizeof (camera));
+
+ {
+ GLfloat range = (MI_COUNT(mi) <= 2) ? 4 : 5.5;
+ GLfloat extent;
+ GLfloat spacing = range / bp->ncameras;
+ if (spacing < 0.7) spacing = 0.7;
+ extent = spacing * (bp->ncameras - 1);
+ for (i = 0; i < bp->ncameras; i++)
+ {
+ camera *c = &bp->cameras[i];
+ c->state = IDLE;
+ c->pos.x = i*spacing - extent/2;
+ c->pos.z += 0.7;
+ if (spacing < 1.6)
+ c->pos.z = (i & 1 ? 1.1 : -0.3);
+ c->focus.x = c->pos.x;
+ c->focus.y = c->pos.y + 1;
+ c->focus.z = c->pos.z + BEAM_ZOFF;
+ c->pitch = -50;
+ }
+ }
+
+
+# ifdef DEBUG
+ if (!debug_p)
+# endif
+ /* Let's tilt the floor a little. */
+ gltrackball_reset (bp->user_trackball,
+ -0.70 + frand(1.58),
+ -0.30 + frand(0.40));
+}
+
+
+static XYZ
+normalize (XYZ p)
+{
+ GLfloat d = sqrt(p.x*p.x + p.y*p.y * p.z*p.z);
+ if (d < 0.0000001)
+ p.x = p.y = p.z = 0;
+ else
+ {
+ p.x /= d;
+ p.y /= d;
+ p.z /= d;
+ }
+
+ return p;
+}
+
+
+static GLfloat
+vector_angle (XYZ a, XYZ b)
+{
+ double La = sqrt (a.x*a.x + a.y*a.y + a.z*a.z);
+ double Lb = sqrt (b.x*b.x + b.y*b.y + b.z*b.z);
+ double cc, angle;
+
+ if (La == 0 || Lb == 0) return 0;
+ if (a.x == b.x && a.y == b.y && a.z == b.z) return 0;
+
+ /* dot product of two vectors is defined as:
+ La * Lb * cos(angle between vectors)
+ and is also defined as:
+ ax*bx + ay*by + az*bz
+ so:
+ La * Lb * cos(angle) = ax*bx + ay*by + az*bz
+ cos(angle) = (ax*bx + ay*by + az*bz) / (La * Lb)
+ angle = acos ((ax*bx + ay*by + az*bz) / (La * Lb));
+ */
+ cc = (a.x*b.x + a.y*b.y + a.z*b.z) / (La * Lb);
+ if (cc > 1) cc = 1; /* avoid fp rounding error (1.000001 => sqrt error) */
+ angle = acos (cc);
+
+ return (angle);
+}
+
+
+static int
+draw_component (ModeInfo *mi, int i, GLfloat color[4])
+{
+ camera_configuration *bp = &bps[MI_SCREEN(mi)];
+ if (! color)
+ color = bp->component_colors[i];
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+ glCallList (bp->dlists[i]);
+ return (*all_objs[i])->points / 3;
+}
+
+
+static int
+draw_double_component (ModeInfo *mi, int i)
+{
+ int count = draw_component (mi, i, 0);
+
+ glFrontFace(GL_CCW);
+ glScalef (1, 1, -1);
+ count += draw_component (mi, i, 0);
+ glScalef (1, 1, -1);
+ glFrontFace(GL_CW);
+ return count;
+}
+
+
+static int
+draw_ray (ModeInfo *mi, camera *c)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ int count = 0;
+ GLfloat length = 10000;
+ GLfloat thickness = 0.08;
+ int i;
+
+ glPushMatrix();
+ glTranslatef (c->pos.x, c->pos.y, c->pos.z + BEAM_ZOFF);
+ glRotatef (-c->facing, 0, 0, 1);
+ glRotatef ( c->pitch, 1, 0, 0);
+ glRotatef (frand(90), 0, 1, 0);
+ glScalef (thickness, length, thickness);
+ glDisable (GL_LIGHTING);
+
+ for (i = 0; i < 5; i++)
+ {
+ glColor4f (1, 0, 0, 0.1 + (i * 0.18));
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (0, 0, -0.5); glVertex3f (0, 0, 0.5);
+ glVertex3f (0, 1, 0.5); glVertex3f (0, 1, -0.5);
+ glEnd();
+ count++;
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (-0.5, 0, 0); glVertex3f ( 0.5, 0, 0);
+ glVertex3f ( 0.5, 1, 0); glVertex3f (-0.5, 1, 0);
+ glEnd();
+ count++;
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (0, 1, -0.5); glVertex3f (0, 1, 0.5);
+ glVertex3f (0, 0, 0.5); glVertex3f (0, 0, -0.5);
+ glEnd();
+ count++;
+ glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+ glVertex3f (-0.5, 1, 0); glVertex3f ( 0.5, 1, 0);
+ glVertex3f ( 0.5, 0, 0); glVertex3f (-0.5, 0, 0);
+ glEnd();
+ count++;
+ glScalef (0.7, 1, 0.7);
+ }
+ if (!MI_IS_WIREFRAME(mi))
+ glEnable (GL_LIGHTING);
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_camera_1 (ModeInfo *mi, camera *c)
+{
+ int count = 0;
+ GLfloat scale = 0.01;
+ GLfloat color[4] = { 1, 0, 0, 1 };
+ glPushMatrix();
+
+ glTranslatef (c->pos.x, c->pos.y, c->pos.z);
+ glScalef (scale, scale, scale);
+
+ glRotatef (90, 1, 0, 0);
+ glRotatef (-90, 0, 1, 0);
+
+ count += draw_double_component (mi, CAMERA_MOUNT);
+
+ glRotatef (-c->facing, 0, 1, 0);
+ glRotatef (-c->pitch, 0, 0, 1);
+
+ count += draw_double_component (mi, CAMERA_HINGE);
+
+ if (c->state == WARM_UP)
+ {
+ if (c->tick < 0.2)
+ glTranslatef ((0.2 - c->tick) / (scale * 3), 0, 0);
+ }
+
+ if (c->state == ZOT)
+ {
+ glTranslatef ((0.005 - frand(0.01)) / scale,
+ (0.005 - frand(0.01)) / scale,
+ (0.005 - frand(0.01)) / scale);
+ }
+
+ count += draw_double_component (mi, CAMERA_BODY);
+
+ if (c->state == ZOT)
+ {
+ glTranslatef ((0.005 - frand(0.01)) / scale,
+ (0.005 - frand(0.01)) / scale,
+ (0.005 - frand(0.01)) / scale);
+ }
+
+ count += draw_double_component (mi, CAMERA_CAP);
+
+ switch (c->state) {
+ case IDLE: break;
+ case WARM_UP: color[0] = 1.0 - c->tick; break;
+ case ZOT: color[0] = 1.0; break;
+ case COOL_DOWN: color[0] = c->tick; break;
+ default: abort(); break;
+ }
+
+ count += draw_component (mi, CAMERA_LENS,
+ (c->state == IDLE ? 0 : color));
+
+# ifdef DEBUG
+ if (debug_p && c->state != ZOT)
+ {
+ glDisable (GL_LIGHTING);
+ glColor3f (1, 1, 0);
+ glBegin (GL_LINES);
+ glVertex3f (0, BEAM_ZOFF / scale, 0);
+ glVertex3f (-100 / scale, BEAM_ZOFF / scale, 0);
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi))
+ glEnable (GL_LIGHTING);
+ }
+# endif
+
+ glPopMatrix();
+
+ return count;
+}
+
+
+/* The position this pedestrian would appear at during the given ratio
+ through its life cycle.
+ */
+static XYZ
+pedestrian_position (pedestrian *p, GLfloat ratio)
+{
+ XYZ pos = p->pos;
+ if (p->speed < 0)
+ ratio = 1-ratio;
+ pos.x += p->length * ratio;
+ pos.z += sin (M_PI * ratio * p->frequency * 2) * p->amplitude
+ + p->amplitude/2;
+ return pos;
+}
+
+
+static int
+draw_pedestrian (ModeInfo *mi, pedestrian *p)
+{
+ int count = 0;
+# ifdef DEBUG
+ if (debug_p)
+ {
+ GLfloat r;
+ GLfloat step = 0.001;
+ glDisable (GL_LIGHTING);
+ glColor3f (0, 0, 1);
+
+ glBegin (GL_LINE_STRIP);
+ glVertex3f (p->pos.x, p->pos.y, p->pos.z + p->amplitude);
+ glVertex3f (p->pos.x, p->pos.y, 0);
+ glVertex3f (p->pos.x + p->length, p->pos.y, 0);
+ glVertex3f (p->pos.x + p->length, p->pos.y, p->pos.z + p->amplitude);
+ glEnd();
+
+ glBegin (GL_LINE_STRIP);
+ for (r = 0; r <= 1; r += step)
+ {
+ XYZ pos = pedestrian_position (p, r);
+ glVertex3f (pos.x, pos.y, pos.z);
+ count++;
+ if (p->ratio >= r && p->ratio < r + step)
+ {
+ glVertex3f (pos.x, pos.y, pos.z - p->amplitude);
+ glVertex3f (pos.x, pos.y, pos.z + p->amplitude);
+ glVertex3f (pos.x, pos.y, pos.z);
+ count++;
+ }
+ }
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi))
+ glEnable (GL_LIGHTING);
+ }
+# endif
+ return count;
+}
+
+
+/* Start someone walking through the scene.
+ */
+static void
+add_pedestrian (ModeInfo *mi)
+{
+ camera_configuration *bp = &bps[MI_SCREEN(mi)];
+ pedestrian *p = (pedestrian *) calloc (1, sizeof(*p));
+ static int id = 100;
+ p->id = id++;
+ p->length = 35;
+ p->ratio = 0;
+ p->pos.x = -p->length/2;
+ p->pos.y = 3 + frand(10);
+ p->pos.z = -1.5 + frand(4) + ((random() % 10) ? 0 : frand(8));
+ p->frequency = 4 + frand(4);
+ p->amplitude = 0.1 + ((random() % 10) ? BELLRAND(0.45) : BELLRAND(1.5));
+ p->ratio = 0;
+ p->speed = ((4 + frand(4) + ((random() % 10) ? 0 : frand(10)))
+ * (random() & 1 ? 1 : -1)
+ * speed_arg);
+
+ if (bp->pedestrians)
+ {
+ pedestrian *p2; /* add it to the end */
+ for (p2 = bp->pedestrians; p2->next; p2 = p2->next)
+ ;
+ p2->next = p;
+ }
+ else
+ {
+ p->next = bp->pedestrians;
+ bp->pedestrians = p;
+ }
+}
+
+
+static void
+free_pedestrian (ModeInfo *mi, pedestrian *p)
+{
+ camera_configuration *bp = &bps[MI_SCREEN(mi)];
+ Bool ok = False;
+ if (!p) abort();
+ if (p == bp->pedestrians)
+ {
+ bp->pedestrians = p->next;
+ ok = True;
+ }
+ else
+ {
+ pedestrian *p0;
+ for (p0 = bp->pedestrians; p0; p0 = p0->next)
+ if (p0->next == p)
+ {
+ p0->next = p0->next ? p0->next->next : 0;
+ ok = True;
+ break;
+ }
+ }
+ if (!ok) abort();
+ p->next = 0;
+ free (p);
+}
+
+
+static void
+tick_pedestrian (ModeInfo *mi, pedestrian *p)
+{
+ p->ratio += 0.001 * (p->speed > 0 ? p->speed : -p->speed);
+ if (p->ratio >= 1)
+ free_pedestrian (mi, p);
+}
+
+
+/* Extract the position of the thing this camera would like to look at.
+ */
+static void
+set_camera_focus (ModeInfo *mi, camera *c)
+{
+ camera_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (c->focus_id > 0) /* Look at pedestrian with id N */
+ {
+ long id = c->focus_id;
+ pedestrian *p;
+ for (p = bp->pedestrians; p; p = p->next)
+ if (p->id == id)
+ break;
+ if (p)
+ c->focus = pedestrian_position (p, p->ratio);
+ else
+ c->focus_id = 0; /* that pedestrian has escaped */
+ }
+ else if (c->focus_id < 0) /* Look at camera -N-1 */
+ {
+ long n = -c->focus_id - 1;
+ if (bp->ncameras > n)
+ c->focus = bp->cameras[n].pos;
+ }
+}
+
+
+static void
+tick_camera (ModeInfo *mi, camera *c)
+{
+ camera_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ GLfloat X, Y, Z;
+ set_camera_focus (mi, c);
+
+ X = c->focus.x - c->pos.x;
+ Y = c->focus.y - c->pos.y;
+ Z = c->focus.z - c->pos.z - BEAM_ZOFF;
+
+ if (X != 0 || Y != 0)
+ {
+ GLfloat ofacing = c->facing;
+ GLfloat opitch = c->pitch;
+
+ GLfloat target_facing = atan2 (X, Y) * (180 / M_PI);
+ GLfloat target_pitch = atan2 (Z, sqrt(X*X + Y*Y)) * (180 / M_PI);
+
+ /* Adjust the current velocity.
+ If we are nearing the target, slow down (but don't stop).
+ Otherwise, speed up (but don't break the speed limit).
+ */
+ {
+ GLfloat accel = 0.5 * speed_arg;
+ GLfloat decel_range = 20;
+ GLfloat max_velocity = 5 * speed_arg;
+ GLfloat close_enough = 0.5 * speed_arg;
+
+ GLfloat dx = target_facing - c->facing;
+ GLfloat dy = target_pitch - c->pitch;
+ GLfloat angular_distance = sqrt (dx*dx + dy*dy);
+
+ /* Split the velocity into vx and vy components. This isn't
+ quite right since this treats them as Cartesian rather than
+ polar, but it's close enough.
+ */
+ GLfloat r = (dx == 0) ? 1 : ABS(dy) / ABS(dx);
+ GLfloat vx = 1-r;
+ GLfloat vy = r;
+
+ if (angular_distance < decel_range) /* Nearing target, slow down */
+ {
+ c->velocity -= accel;
+ if (c->velocity <= 0)
+ c->velocity = accel;
+ }
+ else
+ {
+ c->velocity += accel;
+ if (c->velocity > max_velocity)
+ c->velocity = max_velocity;
+ }
+
+ /* Don't overshoot */
+ if (vx > ABS(dx)) vx = ABS(dx);
+ if (vy > ABS(dy)) vy = ABS(dy);
+
+
+ /* Rotate toward target by current angular velocity. */
+ c->facing += vx * c->velocity * (target_facing > c->facing ? 1 : -1);
+ c->pitch += vy * c->velocity * (target_pitch > c->pitch ? 1 : -1);
+
+ /* If we are pointed *really close* to the target, just lock on,
+ to avoid twitchy overshoot rounding errors.
+ */
+ if (angular_distance < close_enough)
+ {
+ c->facing = target_facing;
+ c->pitch = target_pitch;
+ }
+
+ /* Constrain to hinge's range of motion */
+ c->facing = MAX (-90, MIN (90, c->facing));
+ c->pitch = MAX (-90, MIN (55, c->pitch));
+
+ /* After this motion, our prevailing velocity (for next time)
+ is the angular distance we actually moved.
+ */
+ dx = c->facing - ofacing;
+ dy = c->pitch - opitch;
+ c->velocity = sqrt (dx*dx + dy*dy);
+ }
+ }
+
+# ifdef DEBUG
+ if (debug_p && 1)
+ /* Mark the point on which this camera is focusing. */
+ {
+ glPushMatrix();
+ glDisable (GL_LIGHTING);
+ glColor3f(0.3, 0.3, 0.3);
+ glBegin (GL_LINES);
+ glVertex3f (c->pos.x, c->pos.y, c->pos.z + BEAM_ZOFF);
+ glVertex3f (c->focus.x, c->focus.y, c->focus.z);
+ glEnd();
+ glColor3f(1,1,1);
+ glBegin (GL_LINES);
+ glVertex3f (c->focus.x-0.25, c->focus.y, c->focus.z);
+ glVertex3f (c->focus.x+0.25, c->focus.y, c->focus.z);
+ glVertex3f (c->focus.x, c->focus.y-0.25, c->focus.z);
+ glVertex3f (c->focus.x, c->focus.y+0.25, c->focus.z);
+ glVertex3f (c->focus.x, c->focus.y, c->focus.z-0.25);
+ glVertex3f (c->focus.x, c->focus.y, c->focus.z+0.25);
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi))
+ glEnable (GL_LIGHTING);
+ glPopMatrix();
+ }
+# endif
+
+ /* If this camera is looking at another camera, get shy and look away
+ if the target sees us looking.
+ */
+ if (c->focus_id < 0)
+ {
+ camera *c2 = &bp->cameras[-1 - c->focus_id];
+ XYZ a, b;
+ GLfloat aa = c->facing / (180 / M_PI);
+ GLfloat bb = c->pitch / (180 / M_PI);
+ GLfloat angle;
+
+ a.y = cos(aa)* cos(bb);
+ a.x = sin(aa)* cos(bb);
+ a.z = sin(bb);
+
+ aa = c2->facing / (180 / M_PI);
+ bb = c2->pitch / (180 / M_PI);
+ b.y = cos(aa)* cos(bb);
+ b.x = sin(aa)* cos(bb);
+ b.z = sin(bb);
+
+ angle = vector_angle (normalize(a), normalize(b)) * (180 / M_PI);
+
+ if (angle > 100)
+ {
+ c->focus_id = 0;
+ /* Look "away" which means in the same direction. */
+ c->focus.x = c->pos.x + (c2->focus.x - c2->pos.x);
+ c->focus.y = c->pos.y + (c2->focus.y - c2->pos.y);
+ c->focus.z = c->pos.z + (c2->focus.z - c2->pos.z);
+ /* Look at either the sky or the ground.*/
+ c->focus.z = c->focus.x * (random() & 1 ? 1 : -1) * 5;
+ c->velocity = c2->velocity * 3;
+ }
+ }
+
+
+ /* Randomly pick some other things to look at.
+ */
+
+ if (c->state == IDLE &&
+ (c->focus_id <= 0
+ ? !(random() % (int) MAX (1, (50 / speed_arg)))
+ : !(random() % (int) MAX (1, (1000 / speed_arg)))))
+ {
+
+ /* Shiny! Start paying attention to something else. */
+
+ if ((bp->ncameras > 1 && !(random() % 20))) /* look at a camera */
+ {
+ int which = random() % 4;
+ long i;
+ for (i = 0; i < bp->ncameras; i++)
+ if (c == &bp->cameras[i])
+ break;
+
+ /* Look at cameras 1 or 2 away in each direction, but not farther.
+ Since we arrange them in 2 staggered lines, those are the only
+ four that are in line of sight.
+ */
+ if (i >= 2 && which == 0)
+ which = i-2;
+ else if (i >= 1 && which == 1)
+ which = i-1;
+ else if (i < bp->ncameras-2 && which == 2)
+ which = i+2;
+ else if (i == bp->ncameras-1)
+ which = i-1;
+ else /* (i < bp->ncameras-2 && which == 3) */
+ which = i+1;
+
+ c->focus_id = -1 - which;
+ }
+ else /* look at a pedestrian */
+ {
+ int n = 0;
+ pedestrian *p;
+ for (p = bp->pedestrians; p; p = p->next)
+ n++;
+ if (n > 0)
+ {
+ n = random() % n;
+ p = bp->pedestrians;
+ while (n > 0 && p)
+ p = p->next;
+ if (p)
+ c->focus_id = p->id;
+ }
+ }
+ }
+
+ /* Run the animation */
+
+ if (c->state != IDLE)
+ {
+ pedestrian *p = bp->pedestrians; /* first one */
+ if (p) c->focus_id = p->id;
+
+ switch (c->state) {
+ case WARM_UP: c->tick -= 0.01 * speed_arg; break;
+ case ZOT: c->tick -= 0.006 * speed_arg;
+ if (p) p->speed *= 0.995; /* target takes 1d6 HP damage */
+ break;
+ case COOL_DOWN: c->tick -= 0.02 * speed_arg; break;
+ default: abort(); break;
+ }
+
+ if (c->tick <= 0)
+ {
+ c->tick = 1.0;
+ switch (c->state) {
+ case WARM_UP: c->state = ZOT; break;
+ case ZOT: c->state = COOL_DOWN;
+ c->focus_id = 0;
+ if (p) p->ratio = 1.0; /* threat eliminated */
+ break;
+ case COOL_DOWN: c->state = IDLE; break;
+ default: abort(); break;
+ }
+ }
+ }
+
+ if (bp->cameras[0].state == IDLE &&
+ bp->pedestrians &&
+ bp->pedestrians[0].ratio < 0.3 &&
+ !(random() % MAX (1, (int) (50000 / speed_arg))))
+ {
+ /* CASE NIGHTMARE RED detected, engage SCORPION STARE by authority
+ of MAGINOT BLUE STARS. */
+ int i;
+ for (i = 0; i < bp->ncameras; i++)
+ {
+ bp->cameras[i].state = WARM_UP;
+ bp->cameras[i].tick = 1.0;
+ }
+ }
+}
+
+
+static int
+draw_ground (ModeInfo *mi, GLfloat color[4])
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat i, j, k, h;
+
+ /* When using fog, iOS apparently doesn't like lines or quads that are
+ really long, and extend very far outside of the scene. Maybe? If the
+ length of the line (cells * cell_size) is greater than 25 or so, lines
+ that are oriented steeply away from the viewer tend to disappear
+ (whether implemented as GL_LINES or as GL_QUADS).
+
+ So we do a bunch of smaller grids instead of one big one.
+ */
+ int cells = 20;
+ GLfloat cell_size = 0.4;
+ int points = 0;
+ int gridsw = 10;
+ int gridsh = 2;
+
+ glPushMatrix();
+
+ if (!wire)
+ {
+ GLfloat fog_color[4] = { 0, 0, 0, 1 };
+
+ glLineWidth (2);
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+
+ glFogi (GL_FOG_MODE, GL_EXP2);
+ glFogfv (GL_FOG_COLOR, fog_color);
+ glFogf (GL_FOG_DENSITY, 0.017);
+ glFogf (GL_FOG_START, -cells/2 * cell_size * gridsh);
+ glEnable (GL_FOG);
+ }
+
+ glColor4fv (color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+
+ glTranslatef (-cells * gridsw * cell_size / 2, 0, 0);
+ for (h = 0; h < 2; h++)
+ {
+ glPushMatrix();
+ glTranslatef (0, cells * cell_size / 2, 0);
+ for (j = 0; j < gridsh; j++)
+ {
+ glPushMatrix();
+ for (k = 0; k < gridsw; k++)
+ {
+ glBegin (GL_LINES);
+ for (i = -cells/2; i < cells/2; i++)
+ {
+ GLfloat a = i * cell_size;
+ GLfloat b = cells/2 * cell_size;
+ glVertex3f (a, -b, 0); glVertex3f (a, b, 0); points++;
+ glVertex3f (-b, a, 0); glVertex3f (b, a, 0); points++;
+ }
+ glEnd();
+ glTranslatef (cells * cell_size, 0, 0);
+ }
+ glPopMatrix();
+ glTranslatef (0, cells * cell_size, 0);
+ }
+ glPopMatrix();
+ glRotatef (90, 1, 0, 0);
+ }
+
+ if (!wire)
+ glDisable (GL_LINE_SMOOTH);
+
+ glPopMatrix();
+
+ return points;
+}
+
+
+ENTRYPOINT void
+draw_camera (ModeInfo *mi)
+{
+ camera_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ GLfloat camera_size;
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+# ifdef HAVE_MOBILE
+ glRotatef (current_device_rotation(), 0, 0, 1); /* right side up */
+# endif
+
+ gltrackball_rotate (bp->user_trackball);
+
+# ifdef HAVE_MOBILE
+ {
+ GLfloat s = 0.6;
+ glScalef (s, s, s);
+ }
+# endif
+
+# ifdef DEBUG
+ if (debug_p)
+ {
+ GLfloat s = 0.2;
+ glScalef (s, s, s);
+ glRotatef (30, 0, 1, 0);
+ glRotatef (15, 1, 0, 0);
+ glTranslatef (0, 0, -80);
+ }
+# endif
+
+ mi->polygon_count = 0;
+
+ camera_size = 5;
+
+ if (MI_COUNT(mi) <= 2) /* re-frame the scene a little bit */
+ glTranslatef (0, -1, 7);
+ if (MI_COUNT(mi) >= 20)
+ glTranslatef (0, -1.5, -5);
+ if (MI_COUNT(mi) >= 40)
+ glTranslatef (0, 2, -15);
+
+ glScalef (camera_size, camera_size, camera_size);
+
+ /* +Z is toward sky; +X is toward the right along the back wall;
+ +Y is toward the viewer. */
+ glRotatef (-90, 1, 0, 0);
+ glScalef (1, -1, 1);
+
+ glPushMatrix();
+ glScalef (1/camera_size, 1/camera_size, 1/camera_size);
+ glTranslatef (0, -2.38, -8); /* Move the ground down and back */
+ glCallList (bp->dlists[GROUND]);
+ mi->polygon_count += ground->points;
+
+ glPopMatrix();
+
+ {
+ pedestrian *p, *p2;
+ for (p = bp->pedestrians, p2 = p ? p->next : 0;
+ p;
+ p = p2, p2 = p2 ? p2->next : 0)
+ {
+ mi->polygon_count += draw_pedestrian (mi, p);
+ tick_pedestrian (mi, p); /* might free p */
+ }
+
+ if (!bp->pedestrians || !(random() % MAX (1, (int) (200 / speed_arg))))
+ add_pedestrian (mi);
+ }
+
+ for (i = 0; i < bp->ncameras; i++)
+ {
+ camera *c = &bp->cameras[i];
+ mi->polygon_count += draw_camera_1 (mi, c);
+ tick_camera (mi, c);
+ }
+
+ for (i = 0; i < bp->ncameras; i++)
+ {
+ camera *c = &bp->cameras[i];
+ if (c->state == ZOT) /* Do this last, for alpha blending */
+ mi->polygon_count += draw_ray (mi, c);
+ }
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE_2 ("Vigilance", vigilance, camera)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/vigilance.man b/hacks/glx/vigilance.man
new file mode 100644
index 0000000..306950d
--- /dev/null
+++ b/hacks/glx/vigilance.man
@@ -0,0 +1,57 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+vigilance - screen saver.
+.SH SYNOPSIS
+.B vigilance
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-count \fInumber\fP]
+.SH DESCRIPTION
+A set of security cameras keep very careful track of their surroundings.
+You can trust them. Everything is completely under control.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-count \fInumber\fP
+Number of cameras. 1 - 50. Default: 5.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2017 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/voronoi.c b/hacks/glx/voronoi.c
new file mode 100644
index 0000000..895f967
--- /dev/null
+++ b/hacks/glx/voronoi.c
@@ -0,0 +1,543 @@
+/* voronoi, Copyright (c) 2007-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*suppressRotationAnimation: True\n" \
+
+# define free_voronoi 0
+# define release_voronoi 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
+
+
+#include "xlockmore.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#define DEF_POINTS "25"
+#define DEF_POINT_SIZE "9"
+#define DEF_POINT_SPEED "1.0"
+#define DEF_POINT_DELAY "0.05"
+#define DEF_ZOOM_SPEED "1.0"
+#define DEF_ZOOM_DELAY "15"
+
+typedef struct node {
+ GLfloat x, y;
+ GLfloat dx, dy;
+ GLfloat ddx, ddy;
+ struct node *next;
+ GLfloat color[4], color2[4];
+ int rot;
+} node;
+
+typedef struct {
+ GLXContext *glx_context;
+ node *nodes;
+ int nnodes;
+ node *dragging;
+ int ncolors;
+ XColor *colors;
+ int point_size;
+
+ enum { MODE_WAITING, MODE_ADDING, MODE_ZOOMING } mode;
+ int adding;
+ double last_time;
+
+ GLfloat zooming; /* 1.0 starting zoom, 0.0 no longer zooming. */
+ GLfloat zoom_toward[2];
+
+} voronoi_configuration;
+
+static voronoi_configuration *vps = NULL;
+
+/* command line arguments */
+static int npoints;
+static GLfloat point_size, point_speed, point_delay;
+static GLfloat zoom_speed, zoom_delay;
+
+static XrmOptionDescRec opts[] = {
+ { "-points", ".points", XrmoptionSepArg, 0 },
+ { "-point-size", ".pointSize", XrmoptionSepArg, 0 },
+ { "-point-speed", ".pointSpeed", XrmoptionSepArg, 0 },
+ { "-point-delay", ".pointDelay", XrmoptionSepArg, 0 },
+ { "-zoom-speed", ".zoomSpeed", XrmoptionSepArg, 0 },
+ { "-zoom-delay", ".zoomDelay", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+ {&npoints, "points", "Points", DEF_POINTS, t_Int},
+ {&point_size, "pointSize", "PointSize", DEF_POINT_SIZE, t_Float},
+ {&point_speed, "pointSpeed", "PointSpeed", DEF_POINT_SPEED, t_Float},
+ {&point_delay, "pointDelay", "PointDelay", DEF_POINT_DELAY, t_Float},
+ {&zoom_speed, "zoomSpeed", "ZoomSpeed", DEF_ZOOM_SPEED, t_Float},
+ {&zoom_delay, "zoomDelay", "ZoomDelay", DEF_ZOOM_DELAY, t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt voronoi_opts =
+ {countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+static node *
+add_node (voronoi_configuration *vp, GLfloat x, GLfloat y)
+{
+ node *nn = (node *) calloc (1, sizeof (*nn));
+ int i;
+ nn->x = x;
+ nn->y = y;
+
+ i = random() % vp->ncolors;
+ nn->color[0] = vp->colors[i].red / 65536.0;
+ nn->color[1] = vp->colors[i].green / 65536.0;
+ nn->color[2] = vp->colors[i].blue / 65536.0;
+ nn->color[3] = 1.0;
+
+ nn->color2[0] = nn->color[0] * 0.7;
+ nn->color2[1] = nn->color[1] * 0.7;
+ nn->color2[2] = nn->color[2] * 0.7;
+ nn->color2[3] = 1.0;
+
+ nn->ddx = frand (0.000001 * point_speed) * (random() & 1 ? 1 : -1);
+ nn->ddy = frand (0.000001 * point_speed) * (random() & 1 ? 1 : -1);
+
+ nn->rot = (random() % 360) * (random() & 1 ? 1 : -1);
+
+ nn->next = vp->nodes;
+ vp->nodes = nn;
+ vp->nnodes++;
+ return nn;
+}
+
+
+static int
+cone (void)
+{
+ int i;
+ int faces = 64;
+ GLfloat step = M_PI * 2 / faces;
+ GLfloat th = 0;
+ GLfloat x = 1;
+ GLfloat y = 0;
+
+ glBegin(GL_TRIANGLE_FAN);
+ glVertex3f (0, 0, 1);
+ for (i = 0; i < faces; i++)
+ {
+ glVertex3f (x, y, 0);
+ th += step;
+ x = cos (th);
+ y = sin (th);
+ }
+ glVertex3f (1, 0, 0);
+ glEnd();
+ return faces;
+}
+
+
+static void
+move_points (voronoi_configuration *vp)
+{
+ node *nn;
+ for (nn = vp->nodes; nn; nn = nn->next)
+ {
+ if (nn == vp->dragging) continue;
+ nn->x += nn->dx;
+ nn->y += nn->dy;
+
+ if (vp->mode == MODE_WAITING)
+ {
+ nn->dx += nn->ddx;
+ nn->dy += nn->ddy;
+ }
+ }
+}
+
+
+static void
+prune_points (voronoi_configuration *vp)
+{
+ node *nn;
+ node *prev = 0;
+ int lim = 5;
+
+ for (nn = vp->nodes; nn; prev = nn, nn = (nn ? nn->next : 0))
+ if (nn->x < -lim || nn->x > lim ||
+ nn->y < -lim || nn->y > lim)
+ {
+ if (prev)
+ prev->next = nn->next;
+ else
+ vp->nodes = nn->next;
+ free (nn);
+ vp->nnodes--;
+ nn = prev;
+ }
+}
+
+
+static void
+zoom_points (voronoi_configuration *vp)
+{
+ node *nn;
+
+ GLfloat tick = sin (vp->zooming * M_PI);
+ GLfloat scale = 1 + (tick * 0.02 * zoom_speed);
+
+ vp->zooming -= (0.01 * zoom_speed);
+ if (vp->zooming < 0) vp->zooming = 0;
+
+ if (vp->zooming <= 0) return;
+
+ if (scale < 1) scale = 1;
+
+ for (nn = vp->nodes; nn; nn = nn->next)
+ {
+ GLfloat x = nn->x - vp->zoom_toward[0];
+ GLfloat y = nn->y - vp->zoom_toward[1];
+ x *= scale;
+ y *= scale;
+ nn->x = x + vp->zoom_toward[0];
+ nn->y = y + vp->zoom_toward[1];
+ }
+}
+
+
+
+static void
+draw_cells (ModeInfo *mi)
+{
+ voronoi_configuration *vp = &vps[MI_SCREEN(mi)];
+ node *nn;
+ int lim = 5;
+
+ for (nn = vp->nodes; nn; nn = nn->next)
+ {
+ if (nn->x < -lim || nn->x > lim ||
+ nn->y < -lim || nn->y > lim)
+ continue;
+
+ glPushMatrix();
+ glTranslatef (nn->x, nn->y, 0);
+ glScalef (lim*2, lim*2, 1);
+ glColor4fv (nn->color);
+ mi->polygon_count += cone ();
+ glPopMatrix();
+ }
+
+ glClear (GL_DEPTH_BUFFER_BIT);
+
+ if (vp->point_size <= 0)
+ ;
+ else if (vp->point_size < 3)
+ {
+ glPointSize (vp->point_size);
+ for (nn = vp->nodes; nn; nn = nn->next)
+ {
+ glBegin (GL_POINTS);
+ glColor4fv (nn->color2);
+ glVertex2f (nn->x, nn->y);
+ glEnd();
+ mi->polygon_count++;
+ }
+ }
+ else
+ {
+ for (nn = vp->nodes; nn; nn = nn->next)
+ {
+ int w = MI_WIDTH (mi);
+ int h = MI_HEIGHT (mi);
+ int s = vp->point_size;
+ int i;
+
+ glColor4fv (nn->color2);
+ glPushMatrix();
+ glTranslatef (nn->x, nn->y, 0);
+ glScalef (1.0 / w * s, 1.0 / h * s, 1);
+
+ glLineWidth (vp->point_size / 10);
+ nn->rot += (nn->rot < 0 ? -1 : 1);
+ glRotatef (nn->rot, 0, 0, 1);
+
+ glRotatef (180, 0, 0, 1);
+ for (i = 0; i < 5; i++)
+ {
+ glBegin (GL_TRIANGLES);
+ glVertex2f (0, 1);
+ glVertex2f (-0.2, 0);
+ glVertex2f ( 0.2, 0);
+ glEnd ();
+ glRotatef (360.0/5, 0, 0, 1);
+ mi->polygon_count++;
+ }
+ glPopMatrix();
+ }
+ }
+
+#if 0
+ glPushMatrix();
+ glColor3f(1,1,1);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(0,0,0);
+ glVertex3f(1,0,0);
+ glVertex3f(1,1,0);
+ glVertex3f(0,1,0);
+ glEnd();
+ glScalef(0.25, 0.25, 1);
+ glBegin(GL_LINE_LOOP);
+ glVertex3f(0,0,0);
+ glVertex3f(1,0,0);
+ glVertex3f(1,1,0);
+ glVertex3f(0,1,0);
+ glEnd();
+ glPopMatrix();
+#endif
+}
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_voronoi (ModeInfo *mi, int width, int height)
+{
+/* voronoi_configuration *vp = &vps[MI_SCREEN(mi)];*/
+
+ glViewport (0, 0, (GLint) width, (GLint) height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho (0, 1, 1, 0, -1, 1);
+
+# ifdef HAVE_MOBILE /* So much WTF */
+ {
+ int rot = current_device_rotation();
+
+ glTranslatef (0.5, 0.5, 0);
+ // glScalef(0.19, 0.19, 0.19);
+
+ if (rot == 180 || rot == -180) {
+ glTranslatef (1, 1, 0);
+ } else if (rot == 90 || rot == -270) {
+ glRotatef (180, 0, 0, 1);
+ glTranslatef (0, 1, 0);
+ } else if (rot == -90 || rot == 270) {
+ glRotatef (180, 0, 0, 1);
+ glTranslatef (1, 0, 0);
+ }
+
+ glTranslatef(-0.5, -0.5, 0);
+ }
+# endif
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+static node *
+find_node (ModeInfo *mi, GLfloat x, GLfloat y)
+{
+ voronoi_configuration *vp = &vps[MI_SCREEN(mi)];
+ int ps = (vp->point_size < 5 ? 5 : vp->point_size);
+ GLfloat hysteresis = (1.0 / MI_WIDTH (mi)) * ps;
+ node *nn;
+ for (nn = vp->nodes; nn; nn = nn->next)
+ if (nn->x > x - hysteresis && nn->x < x + hysteresis &&
+ nn->y > y - hysteresis && nn->y < y + hysteresis)
+ return nn;
+ return 0;
+}
+
+
+ENTRYPOINT Bool
+voronoi_handle_event (ModeInfo *mi, XEvent *event)
+{
+ voronoi_configuration *vp = &vps[MI_SCREEN(mi)];
+
+ if (event->xany.type == ButtonPress)
+ {
+ GLfloat x = (GLfloat) event->xbutton.x / MI_WIDTH (mi);
+ GLfloat y = (GLfloat) event->xbutton.y / MI_HEIGHT (mi);
+ node *nn = find_node (mi, x, y);
+ if (!nn)
+ nn = add_node (vp, x, y);
+ vp->dragging = nn;
+
+ return True;
+ }
+ else if (event->xany.type == ButtonRelease && vp->dragging)
+ {
+ vp->dragging = 0;
+ return True;
+ }
+ else if (event->xany.type == MotionNotify && vp->dragging)
+ {
+ vp->dragging->x = (GLfloat) event->xmotion.x / MI_WIDTH (mi);
+ vp->dragging->y = (GLfloat) event->xmotion.y / MI_HEIGHT (mi);
+ return True;
+ }
+
+ return False;
+}
+
+static void
+state_change (ModeInfo *mi)
+{
+ voronoi_configuration *vp = &vps[MI_SCREEN(mi)];
+ double now = double_time();
+
+ if (vp->dragging)
+ {
+ vp->last_time = now;
+ vp->adding = 0;
+ vp->zooming = 0;
+ return;
+ }
+
+ switch (vp->mode)
+ {
+ case MODE_WAITING:
+ if (vp->last_time + zoom_delay <= now)
+ {
+ node *tn = vp->nodes;
+ vp->zoom_toward[0] = (tn ? tn->x : 0.5);
+ vp->zoom_toward[1] = (tn ? tn->y : 0.5);
+
+ vp->mode = MODE_ZOOMING;
+ vp->zooming = 1;
+
+ vp->last_time = now;
+ }
+ break;
+
+ case MODE_ADDING:
+ if (vp->last_time + point_delay <= now)
+ {
+ add_node (vp,
+ BELLRAND(0.5) + 0.25,
+ BELLRAND(0.5) + 0.25);
+ vp->last_time = now;
+ vp->adding--;
+ if (vp->adding <= 0)
+ {
+ vp->adding = 0;
+ vp->mode = MODE_WAITING;
+ vp->last_time = now;
+ }
+ }
+ break;
+
+ case MODE_ZOOMING:
+ {
+ zoom_points (vp);
+ if (vp->zooming <= 0)
+ {
+ vp->mode = MODE_ADDING;
+ vp->adding = npoints;
+ vp->last_time = now;
+ }
+ }
+ break;
+
+ default:
+ abort();
+ }
+}
+
+
+ENTRYPOINT void
+init_voronoi (ModeInfo *mi)
+{
+ voronoi_configuration *vp;
+
+ MI_INIT (mi, vps);
+
+ vp = &vps[MI_SCREEN(mi)];
+
+ vp->glx_context = init_GL(mi);
+
+ vp->point_size = point_size;
+ if (vp->point_size < 0) vp->point_size = 10;
+
+ if (MI_WIDTH(mi) > 2560) vp->point_size *= 2; /* Retina displays */
+
+ vp->ncolors = 128;
+ vp->colors = (XColor *) calloc (vp->ncolors, sizeof(XColor));
+ make_smooth_colormap (0, 0, 0,
+ vp->colors, &vp->ncolors,
+ False, False, False);
+
+ reshape_voronoi (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ vp->mode = MODE_ADDING;
+ vp->adding = npoints * 2;
+ vp->last_time = 0;
+}
+
+
+ENTRYPOINT void
+draw_voronoi (ModeInfo *mi)
+{
+ voronoi_configuration *vp = &vps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+
+ if (!vp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(vp->glx_context));
+
+ glShadeModel(GL_FLAT);
+ glEnable(GL_POINT_SMOOTH);
+/* glEnable(GL_LINE_SMOOTH);*/
+/* glEnable(GL_POLYGON_SMOOTH);*/
+
+ glEnable (GL_DEPTH_TEST);
+ glDepthFunc (GL_LEQUAL);
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ mi->polygon_count = 0;
+ draw_cells (mi);
+ move_points (vp);
+ prune_points (vp);
+ state_change (mi);
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+XSCREENSAVER_MODULE ("Voronoi", voronoi)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/voronoi.man b/hacks/glx/voronoi.man
new file mode 100644
index 0000000..713f08c
--- /dev/null
+++ b/hacks/glx/voronoi.man
@@ -0,0 +1,88 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+voronoi - draws a randomly-colored Voronoi tessellation
+.SH SYNOPSIS
+.B voronoi
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-points \fIint\fP]
+[\-point\-size \fIint\fP]
+[\-point\-speed \fIratio\fP]
+[\-point\-delay \fIseconds\fP]
+[\-zoom\-speed \fIratio\fP]
+[\-zoom\-delay \fIseconds\fP]
+[\-fps]
+.SH DESCRIPTION
+Draws a randomly-colored Voronoi tessellation, and periodically zooms
+in and adds new points. The existing points also wander around.
+
+There are a set of control points on the plane, each at the center of
+a colored cell. Every pixel within that cell is closer to that cell's
+control point than to any other control point. That is what
+determines the cell's shapes.
+
+When running in a window, you can click to insert a new point at
+the mouse position. Clicking on an existing point lets you drag
+it around.
+
+This implementation takes advantage of the OpenGL depth buffer to
+compute the cells for us, by rendering the intersection of overlapping
+cones in an orthographic plane.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-points \fIint\fP
+How many points to add each time we zoom in.
+.TP 8
+.B \-point\-size \fIint\fP
+How big to draw the stars, in pixels. 0 for no stars.
+.TP 8
+.B \-point\-speed \fIratio\fP
+How fast the points should wander.
+Less than 1 for slower, greater than 1 for faster.
+.TP 8
+.B \-point\-delay \fIseconds\fP
+How quickly to insert new points, when adding.
+.TP 8
+.B \-zoom\-speed \fIratio\fP
+How fast to zoom in.
+Less than 1 for slower, greater than 1 for faster.
+.TP 8
+.B \-zoom\-delay \fIseconds\fP
+Zoom in every this-many seconds.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2007 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/vrml2gl.pl b/hacks/glx/vrml2gl.pl
new file mode 100755
index 0000000..f0f42ba
--- /dev/null
+++ b/hacks/glx/vrml2gl.pl
@@ -0,0 +1,361 @@
+#!/usr/bin/perl -w
+# Copyright © 2003-2011 Jamie Zawinski <jwz@jwz.org>
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation. No representations are made about the suitability of this
+# software for any purpose. It is provided "as is" without express or
+# implied warranty.
+#
+# Reads a VRML WRL file, and emits C data suitable for use with OpenGL's
+# glInterleavedArrays() and glDrawArrays() routines.
+#
+# Face normals are computed.
+#
+# Options:
+#
+# --normalize Compute the bounding box of the object, and scale all
+# coordinates so that the object fits inside a unit cube.
+#
+# Created: 8-Mar-2003 for Wavefront OBJ, converted to VRML 27-Sep-2011.
+
+require 5;
+use diagnostics;
+use strict;
+
+my $progname = $0; $progname =~ s@.*/@@g;
+my ($version) = ('$Revision: 1.2 $' =~ m/\s(\d[.\d]+)\s/s);
+
+my $verbose = 0;
+
+
+# convert a vector to a unit vector
+sub normalize($$$) {
+ my ($x, $y, $z) = @_;
+ my $L = sqrt (($x * $x) + ($y * $y) + ($z * $z));
+ if ($L != 0) {
+ $x /= $L;
+ $y /= $L;
+ $z /= $L;
+ } else {
+ $x = $y = $z = 0;
+ }
+ return ($x, $y, $z);
+}
+
+
+# Calculate the unit normal at p0 given two other points p1,p2 on the
+# surface. The normal points in the direction of p1 crossproduct p2.
+#
+sub face_normal($$$$$$$$$) {
+ my ($p0x, $p0y, $p0z,
+ $p1x, $p1y, $p1z,
+ $p2x, $p2y, $p2z) = @_;
+
+ my ($nx, $ny, $nz);
+ my ($pax, $pay, $paz);
+ my ($pbx, $pby, $pbz);
+
+ $pax = $p1x - $p0x;
+ $pay = $p1y - $p0y;
+ $paz = $p1z - $p0z;
+ $pbx = $p2x - $p0x;
+ $pby = $p2y - $p0y;
+ $pbz = $p2z - $p0z;
+ $nx = $pay * $pbz - $paz * $pby;
+ $ny = $paz * $pbx - $pax * $pbz;
+ $nz = $pax * $pby - $pay * $pbx;
+
+ return (normalize ($nx, $ny, $nz));
+}
+
+
+sub parse_vrml_1($$$) {
+ my ($filename, $body, $normalize_p) = @_;
+
+ my @verts = (); # list of refs of coords, [x, y, z]
+ my @faces = (); # list of refs of [ point, point, point, ... ]
+ # where 'point' is a list of indexes into 'verts'.
+
+ $body =~ s% \b point \s* \[ (.*?) \] %{
+ foreach my $point (split (/,/, $1)) {
+ $point =~ s/^\s+|\s+$//gsi;
+ next unless $point;
+ my @p = split(/\s+/, $point);
+ push @verts, \@p;
+ }
+ }%gsexi;
+
+ $body =~ s% \b coordIndex \s* \[ (.*?) \] %{
+ foreach my $face (split (/\s*,-1,?\s*/, $1)) {
+ $face =~ s/^\s+|\s+$//gsi;
+ next unless $face;
+ my @p = split(/\s*,\s*/, $face);
+ push @faces, \@p;
+ }
+ }%gsexi;
+
+ return () if ($#verts < 0);
+
+ # generate interleaved list of triangle coordinates and normals
+ #
+ my @triangles = ();
+ my $nfaces = $#faces+1;
+
+ foreach my $f (@faces) {
+ # $f is [ p1, p2, p3, ... ]
+
+ my @f = @$f;
+
+ error ("too few points in face") if ($#f < 2);
+ my $p1 = shift @f;
+
+ # If there are more than 3 points, do a triangle fan from the first one:
+ # [1 2 3] [1 3 4] [1 4 5] etc. Doesn't always work with convex shapes.
+
+ while ($#f) {
+ my $p2 = shift @f;
+ my $p3 = $f[0];
+
+ my ($pp1, $pp2, $pp3) = ($p1, $p2, $p3);
+ # Reverse the winding order.
+# ($pp1, $pp2, $pp3) = ($pp3, $pp2, $pp1);
+
+ my $x1 = $verts[$pp1]->[0];
+ my $y1 = $verts[$pp1]->[1];
+ my $z1 = $verts[$pp1]->[2];
+
+ my $x2 = $verts[$pp2]->[0];
+ my $y2 = $verts[$pp2]->[1];
+ my $z2 = $verts[$pp2]->[2];
+
+ my $x3 = $verts[$pp3]->[0];
+ my $y3 = $verts[$pp3]->[1];
+ my $z3 = $verts[$pp3]->[2];
+
+ error ("missing points in face") unless defined($z3);
+
+ my ($nx, $ny, $nz) = face_normal ($x1, $y1, $z1,
+ $x2, $y2, $z2,
+ $x3, $y3, $z3);
+
+ push @triangles, [$nx, $ny, $nz, $x1, $y1, $z1,
+ $nx, $ny, $nz, $x2, $y2, $z2,
+ $nx, $ny, $nz, $x3, $y3, $z3];
+ }
+ }
+
+ return (@triangles);
+}
+
+
+sub parse_vrml($$$) {
+ my ($filename, $body, $normalize_p) = @_;
+
+ my @triangles = ();
+
+ $body =~ s/\s*\#.*$//gmi; # comments
+
+ # Lose 2D imagery
+ $body =~ s/\bIndexedLineSet \s* { \s* coordIndex \s* \[ .*? \] \s* }//gsix;
+
+ $body =~ s/(\bSeparator\b)/\001$1/g;
+
+ foreach my $sec (split (m/\001/, $body)) {
+ push @triangles, parse_vrml_1 ($filename, $sec, $normalize_p);
+ }
+
+
+ # find bounding box, and normalize
+ #
+ if ($normalize_p || $verbose) {
+ my $minx = 999999999;
+ my $miny = 999999999;
+ my $minz = 999999999;
+ my $maxx = -999999999;
+ my $maxy = -999999999;
+ my $maxz = -999999999;
+ my $i = 0;
+
+ foreach my $t (@triangles) {
+ my ($nx1, $ny1, $nz1, $x1, $y1, $z1,
+ $nx2, $ny2, $nz2, $x2, $y2, $z2,
+ $nx3, $ny3, $nz3, $x3, $y3, $z3) = @$t;
+
+ foreach my $x ($x1, $x2, $x3) {
+ $minx = $x if ($x < $minx);
+ $maxx = $x if ($x > $maxx);
+ }
+ foreach my $y ($y1, $y2, $y3) {
+ $miny = $y if ($y < $miny);
+ $maxy = $y if ($y > $maxy);
+ }
+ foreach my $z ($z1, $z2, $z3) {
+ $minz = $z if ($z < $minz);
+ $maxz = $z if ($z > $maxz);
+ }
+ }
+
+ my $w = ($maxx - $minx);
+ my $h = ($maxy - $miny);
+ my $d = ($maxz - $minz);
+ my $sizea = ($w > $h ? $w : $h);
+ my $sizeb = ($w > $d ? $w : $d);
+ my $size = ($sizea > $sizeb ? $sizea : $sizeb);
+
+ print STDERR "$progname: bbox is " .
+ sprintf("%.2f x %.2f x %.2f\n", $w, $h, $d)
+ if ($verbose);
+
+ if ($normalize_p) {
+ $w /= $size;
+ $h /= $size;
+ $d /= $size;
+ print STDERR "$progname: dividing by $size for bbox of " .
+ sprintf("%.2f x %.2f x %.2f\n", $w, $h, $d)
+ if ($verbose);
+
+ foreach my $t (@triangles) {
+ my @t = @$t;
+ $t[3] /= $size; $t[4] /= $size; $t[5] /= $size;
+ $t[9] /= $size; $t[10] /= $size; $t[11] /= $size;
+ $t[15] /= $size; $t[16] /= $size; $t[17] /= $size;
+ $t = \@t;
+ }
+ }
+ }
+
+ return @triangles;
+}
+
+
+sub generate_c($@) {
+ my ($filename, @triangles) = @_;
+
+ my $code = '';
+
+ $code .= "#include \"gllist.h\"\n";
+ $code .= "static const float data[]={\n";
+
+ my $nfaces = $#triangles + 1;
+ my $npoints = $nfaces * 3;
+
+ foreach my $t (@triangles) {
+ my ($nx1, $ny1, $nz1, $x1, $y1, $z1,
+ $nx2, $ny2, $nz2, $x2, $y2, $z2,
+ $nx3, $ny3, $nz3, $x3, $y3, $z3) = @$t;
+ my $lines = sprintf("\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n" .
+ "\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n" .
+ "\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n",
+ $nx1, $ny1, $nz1, $x1, $y1, $z1,
+ $nx2, $ny2, $nz2, $x2, $y2, $z2,
+ $nx3, $ny3, $nz3, $x3, $y3, $z3);
+ $lines =~ s/([.\d])0+,/$1,/g; # lose trailing insignificant zeroes
+ $lines =~ s/\.,/,/g;
+ $lines =~ s/-0,/0,/g;
+
+ $code .= $lines;
+ }
+
+ my $token = $filename; # guess at a C token from the filename
+ $token =~ s/\<[^<>]*\>//;
+ $token =~ s@^.*/@@;
+ $token =~ s/\.[^.]*$//;
+ $token =~ s/[^a-z\d]/_/gi;
+ $token =~ s/__+/_/g;
+ $token =~ s/^_//g;
+ $token =~ s/_$//g;
+ $token =~ tr [A-Z] [a-z];
+ $token = 'foo' if ($token eq '');
+
+ my $format = 'GL_N3F_V3F';
+ my $primitive = 'GL_TRIANGLES';
+
+ $code =~ s/,\n$//s;
+ $code .= "\n};\n";
+ $code .= "static const struct gllist frame={";
+ $code .= "$format,$primitive,$npoints,data,NULL};\n";
+ $code .= "const struct gllist *$token=&frame;\n";
+
+ print STDERR "$filename: " .
+ (($#triangles+1)*3) . " points, " .
+ (($#triangles+1)) . " faces.\n"
+ if ($verbose);
+
+ return $code;
+}
+
+
+sub vrml_to_gl($$$) {
+ my ($infile, $outfile, $normalize_p) = @_;
+ my $body = '';
+
+ my $in;
+ if ($infile eq '-') {
+ $in = *STDIN;
+ } else {
+ open ($in, '<', $infile) || error ("$infile: $!");
+ }
+ my $filename = ($infile eq '-' ? "<stdin>" : $infile);
+ print STDERR "$progname: reading $filename...\n"
+ if ($verbose);
+ while (<$in>) { $body .= $_; }
+ close $in;
+
+ $body =~ s/\r\n/\n/g; # CRLF -> LF
+ $body =~ s/\r/\n/g; # CR -> LF
+
+ my @triangles = parse_vrml ($filename, $body, $normalize_p);
+
+ $filename = ($outfile eq '-' ? "<stdout>" : $outfile);
+ my $code = generate_c ($filename, @triangles);
+
+ my $out;
+ if ($outfile eq '-') {
+ $out = *STDOUT;
+ } else {
+ open ($out, '>', $outfile) || error ("$outfile: $!");
+ }
+ (print $out $code) || error ("$filename: $!");
+ (close $out) || error ("$filename: $!");
+
+ print STDERR "$progname: wrote $filename\n"
+ if ($verbose || $outfile ne '-');
+}
+
+
+sub error {
+ ($_) = @_;
+ print STDERR "$progname: $_\n";
+ exit 1;
+}
+
+sub usage {
+ print STDERR "usage: $progname [--verbose] [infile [outfile]]\n";
+ exit 1;
+}
+
+sub main {
+ my ($infile, $outfile);
+ my $normalize_p = 0;
+ while ($_ = $ARGV[0]) {
+ shift @ARGV;
+ if ($_ eq "--verbose") { $verbose++; }
+ elsif (m/^-v+$/) { $verbose += length($_)-1; }
+ elsif ($_ eq "--normalize") { $normalize_p = 1; }
+ elsif (m/^-./) { usage; }
+ elsif (!defined($infile)) { $infile = $_; }
+ elsif (!defined($outfile)) { $outfile = $_; }
+ else { usage; }
+ }
+
+ $infile = "-" unless defined ($infile);
+ $outfile = "-" unless defined ($outfile);
+
+ vrml_to_gl ($infile, $outfile, $normalize_p);
+}
+
+main;
+exit 0;
diff --git a/hacks/glx/wfront2gl.pl b/hacks/glx/wfront2gl.pl
new file mode 100755
index 0000000..c78974e
--- /dev/null
+++ b/hacks/glx/wfront2gl.pl
@@ -0,0 +1,361 @@
+#!/usr/bin/perl -w
+# Copyright © 2003-2012 Jamie Zawinski <jwz@jwz.org>
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation. No representations are made about the suitability of this
+# software for any purpose. It is provided "as is" without express or
+# implied warranty.
+#
+# Reads a Wavefront OBJ file, and emits C data suitable for use with OpenGL's
+# glInterleavedArrays() and glDrawArrays() routines.
+#
+# If the OBJ file does not contain face normals, they are computed.
+# Texture coordinates are ignored.
+#
+# Options:
+#
+# --normalize Compute the bounding box of the object, and scale all
+# coordinates so that the object fits inside a unit cube.
+#
+# Created: 8-Mar-2003.
+
+require 5;
+use diagnostics;
+use strict;
+
+my $progname = $0; $progname =~ s@.*/@@g;
+my ($version) = ('$Revision: 1.6 $' =~ m/\s(\d[.\d]+)\s/s);
+
+my $verbose = 0;
+
+
+# convert a vector to a unit vector
+sub normalize($$$) {
+ my ($x, $y, $z) = @_;
+ my $L = sqrt (($x * $x) + ($y * $y) + ($z * $z));
+ if ($L != 0) {
+ $x /= $L;
+ $y /= $L;
+ $z /= $L;
+ } else {
+ $x = $y = $z = 0;
+ }
+ return ($x, $y, $z);
+}
+
+
+# Calculate the unit normal at p0 given two other points p1,p2 on the
+# surface. The normal points in the direction of p1 crossproduct p2.
+#
+sub face_normal($$$$$$$$$) {
+ my ($p0x, $p0y, $p0z,
+ $p1x, $p1y, $p1z,
+ $p2x, $p2y, $p2z) = @_;
+
+ my ($nx, $ny, $nz);
+ my ($pax, $pay, $paz);
+ my ($pbx, $pby, $pbz);
+
+ $pax = $p1x - $p0x;
+ $pay = $p1y - $p0y;
+ $paz = $p1z - $p0z;
+ $pbx = $p2x - $p0x;
+ $pby = $p2y - $p0y;
+ $pbz = $p2z - $p0z;
+ $nx = $pay * $pbz - $paz * $pby;
+ $ny = $paz * $pbx - $pax * $pbz;
+ $nz = $pax * $pby - $pay * $pbx;
+
+ return (normalize ($nx, $ny, $nz));
+}
+
+
+sub parse_obj($$$) {
+ my ($filename, $obj, $normalize_p) = @_;
+
+ $_ = $obj;
+ my @verts = (); # list of refs of coords, [x, y, z]
+ my @norms = (); # list of refs of coords, [x, y, z]
+ my @texts = (); # list of refs of coords, [u, v]
+ my @faces = (); # list of refs of [ point, point, point, ... ]
+ # where 'point' is a ref of indexes into the
+ # above lists, [ vert, text, norm ]
+
+ my $lineno = 0;
+ foreach (split (/\n/, $obj)) {
+ $lineno++;
+ next if (m/^\s*$|^\s*\#/);
+
+ if (m/^v\s/) {
+ my ($x, $y, $z) = m/^v\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s*$/;
+ error ("line $lineno: unparsable V line: $_") unless defined($z);
+ push @verts, [$x+0, $y+0, $z+0];
+
+ } elsif (m/^vn\s/) {
+ my ($x, $y, $z) = m/^vn\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s*$/;
+ error ("line $lineno: unparsable VN line: $_") unless defined($z);
+ push @norms, [$x+0, $y+0, $z+0];
+
+ } elsif (m/^vt\s/) {
+ my ($u, $v) = m/^vt\s+([^\s]+)\s+([^\s]+)\s*$/;
+ error ("line $lineno: unparsable VT line: $_") unless defined($v);
+ push @texts, [$u+0, $v+0];
+
+ } elsif (m/^g\b/) {
+ # group name
+
+ } elsif (m/f\s/) {
+ my @f = split(/\s+/, $_);
+ shift @f;
+ my @vs = ();
+ foreach my $f (@f) {
+ my ($v, $t, $n);
+ if ($f =~ m@^(\d+)$@s) { $v = $1; }
+ elsif ($f =~ m@^(\d+)/(\d+)$@s) { $v = $1, $t = $2; }
+ elsif ($f =~ m@^(\d+)/(\d+)/(\d+)$@s) { $v = $1, $t = $2; $n = $3; }
+ elsif ($f =~ m@^(\d+)///?(\d+)$@s) { $v = $1; $n = $3; }
+ else {
+ error ("line $lineno: unparsable F line: $_") unless defined($v);
+ }
+ $t = -1 unless defined($t);
+ $n = -1 unless defined($n);
+ push @vs, [$v+0, $t+0, $n+0];
+ }
+ push @faces, \@vs;
+
+ } elsif (m/^s\b/) {
+ # turn on smooth shading
+ } elsif (m/^(mtllib|usemtl)\b/) {
+ # reference to external materials file (textures, etc.)
+ } else {
+ error ("line $lineno: unknown line: $_");
+ }
+ }
+
+
+ # find bounding box, and normalize
+ #
+ if ($normalize_p || $verbose) {
+ my $minx = 999999999;
+ my $miny = 999999999;
+ my $minz = 999999999;
+ my $maxx = -999999999;
+ my $maxy = -999999999;
+ my $maxz = -999999999;
+ my $i = 0;
+ foreach my $v (@verts) {
+ my ($x, $y, $z) = @$v;
+ $minx = $x if ($x < $minx);
+ $maxx = $x if ($x > $maxx);
+ $miny = $y if ($y < $miny);
+ $maxy = $y if ($y > $maxy);
+ $minz = $z if ($z < $minz);
+ $maxz = $z if ($z > $maxz);
+ }
+
+ my $w = ($maxx - $minx);
+ my $h = ($maxy - $miny);
+ my $d = ($maxz - $minz);
+ my $sizea = ($w > $h ? $w : $h);
+ my $sizeb = ($w > $d ? $w : $d);
+ my $size = ($sizea > $sizeb ? $sizea : $sizeb);
+
+ print STDERR "$progname: bbox is " .
+ sprintf("%.2f x %.2f x %.2f\n", $w, $h, $d)
+ if ($verbose);
+
+ if ($normalize_p) {
+ $w /= $size;
+ $h /= $size;
+ $d /= $size;
+ print STDERR "$progname: dividing by $size for bbox of " .
+ sprintf("%.2f x %.2f x %.2f\n", $w, $h, $d)
+ if ($verbose);
+ foreach my $n (@verts) {
+ my @n = @$n;
+ foreach (@n) { $_ /= $size; }
+ $n = \@n;
+ }
+ }
+ }
+
+ # generate interleaved list of triangle coordinates and normals
+ #
+ my @triangles = ();
+ my $nfaces = $#faces+1;
+
+ foreach my $f (@faces) {
+ # $f is [ [v, t, n], [v, t, n], ... ]
+
+ my @f = @$f;
+
+# # (Kludge for the companion cube model)
+# if ($#f > 15) {
+# my $i = 12;
+# @f = (@f[$i-1 .. $#f], @f[0 .. $i]);
+# }
+
+ error ("too few points in face") if ($#f < 2);
+ my $p1 = shift @f;
+
+ # If there are more than 3 points, do a triangle fan from the first one:
+ # [1 2 3] [1 3 4] [1 4 5] etc. Doesn't always work with convex shapes.
+
+ while ($#f) {
+ my $p2 = shift @f;
+ my $p3 = $f[0];
+
+ my $x1 = $verts[$p1->[0]-1]->[0]; my $nx1 = $norms[$p1->[2]-1]->[0];
+ my $y1 = $verts[$p1->[0]-1]->[1]; my $ny1 = $norms[$p1->[2]-1]->[1];
+ my $z1 = $verts[$p1->[0]-1]->[2]; my $nz1 = $norms[$p1->[2]-1]->[2];
+
+ my $x2 = $verts[$p2->[0]-1]->[0]; my $nx2 = $norms[$p2->[2]-1]->[0];
+ my $y2 = $verts[$p2->[0]-1]->[1]; my $ny2 = $norms[$p2->[2]-1]->[1];
+ my $z2 = $verts[$p2->[0]-1]->[2]; my $nz2 = $norms[$p2->[2]-1]->[2];
+
+ my $x3 = $verts[$p3->[0]-1]->[0]; my $nx3 = $norms[$p3->[2]-1]->[0];
+ my $y3 = $verts[$p3->[0]-1]->[1]; my $ny3 = $norms[$p3->[2]-1]->[1];
+ my $z3 = $verts[$p3->[0]-1]->[2]; my $nz3 = $norms[$p3->[2]-1]->[2];
+
+ error ("missing points in face") unless defined($z3);
+
+ if (!defined($nz3)) {
+ my ($nx, $ny, $nz) = face_normal ($x1, $y1, $z1,
+ $x2, $y2, $z2,
+ $x3, $y3, $z3);
+ $nx1 = $nx2 = $nx3 = $nx;
+ $ny1 = $ny2 = $ny3 = $ny;
+ $nz1 = $nz2 = $nz3 = $nz;
+ }
+
+
+ push @triangles, [$nx1, $ny1, $nz1, $x1, $y1, $z1,
+ $nx2, $ny2, $nz2, $x2, $y2, $z2,
+ $nx3, $ny3, $nz3, $x3, $y3, $z3];
+ }
+ }
+
+ return (@triangles);
+}
+
+
+sub generate_c($@) {
+ my ($filename, @triangles) = @_;
+
+ my $code = '';
+
+ $code .= "#include \"gllist.h\"\n";
+ $code .= "static const float data[]={\n";
+
+ my $nfaces = $#triangles + 1;
+ my $npoints = $nfaces * 3;
+
+ foreach my $t (@triangles) {
+ my ($nx1, $ny1, $nz1, $x1, $y1, $z1,
+ $nx2, $ny2, $nz2, $x2, $y2, $z2,
+ $nx3, $ny3, $nz3, $x3, $y3, $z3) = @$t;
+ my $lines = sprintf("\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n" .
+ "\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n" .
+ "\t" . "%.6f,%.6f,%.6f," . "%.6f,%.6f,%.6f,\n",
+ $nx1, $ny1, $nz1, $x1, $y1, $z1,
+ $nx2, $ny2, $nz2, $x2, $y2, $z2,
+ $nx3, $ny3, $nz3, $x3, $y3, $z3);
+ $lines =~ s/([.\d])0+,/$1,/g; # lose trailing insignificant zeroes
+ $lines =~ s/\.,/,/g;
+ $lines =~ s/-0,/0,/g;
+
+ $code .= $lines;
+ }
+
+ my $token = $filename; # guess at a C token from the filename
+ $token =~ s/\<[^<>]*\>//;
+ $token =~ s@^.*/@@;
+ $token =~ s/\.[^.]*$//;
+ $token =~ s/[^a-z\d]/_/gi;
+ $token =~ s/__+/_/g;
+ $token =~ s/^_//g;
+ $token =~ s/_$//g;
+ $token =~ tr [A-Z] [a-z];
+ $token = 'foo' if ($token eq '');
+
+ my $format = 'GL_N3F_V3F';
+ my $primitive = 'GL_TRIANGLES';
+
+ $code =~ s/,\n$//s;
+ $code .= "\n};\n";
+ $code .= "static const struct gllist frame={";
+ $code .= "$format,$primitive,$npoints,data,NULL};\n";
+ $code .= "const struct gllist *$token=&frame;\n";
+
+ print STDERR "$filename: " .
+ (($#triangles+1)*3) . " points, " .
+ (($#triangles+1)) . " faces.\n"
+ if ($verbose);
+
+ return $code;
+}
+
+
+sub obj_to_gl($$$) {
+ my ($infile, $outfile, $normalize_p) = @_;
+ my $obj = '';
+ open (my $in, '<', $infile) || error ("$infile: $!");
+ my $filename = ($infile eq '-' ? "<stdin>" : $infile);
+ print STDERR "$progname: reading $filename...\n"
+ if ($verbose);
+ while (<$in>) { $obj .= $_; }
+ close $in;
+
+ $obj =~ s/\r\n/\n/g; # CRLF -> LF
+ $obj =~ s/\r/\n/g; # CR -> LF
+
+ my @triangles = parse_obj ($filename, $obj, $normalize_p);
+
+ $filename = ($outfile eq '-' ? "<stdout>" : $outfile);
+ my $code = generate_c ($filename, @triangles);
+
+ open (my $out, '>', $outfile) || error ("$outfile: $!");
+ (print $out $code) || error ("$filename: $!");
+ (close $out) || error ("$filename: $!");
+
+ print STDERR "$progname: wrote $filename\n"
+ if ($verbose || $outfile ne '-');
+}
+
+
+sub error {
+ ($_) = @_;
+ print STDERR "$progname: $_\n";
+ exit 1;
+}
+
+sub usage {
+ print STDERR "usage: $progname [--verbose] [infile [outfile]]\n";
+ exit 1;
+}
+
+sub main {
+ my ($infile, $outfile);
+ my $normalize_p = 0;
+ while ($_ = $ARGV[0]) {
+ shift @ARGV;
+ if ($_ eq "--verbose") { $verbose++; }
+ elsif (m/^-v+$/) { $verbose += length($_)-1; }
+ elsif ($_ eq "--normalize") { $normalize_p = 1; }
+ elsif (m/^-./) { usage; }
+ elsif (!defined($infile)) { $infile = $_; }
+ elsif (!defined($outfile)) { $outfile = $_; }
+ else { usage; }
+ }
+
+ $infile = "-" unless defined ($infile);
+ $outfile = "-" unless defined ($outfile);
+
+ obj_to_gl ($infile, $outfile, $normalize_p);
+}
+
+main;
+exit 0;
diff --git a/hacks/glx/whale.c b/hacks/glx/whale.c
new file mode 100644
index 0000000..638f642
--- /dev/null
+++ b/hacks/glx/whale.c
@@ -0,0 +1,1887 @@
+/* atlantis --- Shows moving 3D sea animals */
+
+#if 0
+static const char sccsid[] = "@(#)whale.c 1.3 98/06/18 xlockmore";
+#endif
+
+/* Copyright (c) E. Lassauge, 1998. */
+
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ *
+ * The original code for this mode was written by Mark J. Kilgard
+ * as a demo for openGL programming.
+ *
+ * Porting it to xlock was possible by comparing the original Mesa's morph3d
+ * demo with it's ported version to xlock, so thanks for Marcelo F. Vianna
+ * (look at morph3d.c) for his indirect help.
+ *
+ * Thanks goes also to Brian Paul for making it possible and inexpensive
+ * to use OpenGL at home.
+ *
+ * My e-mail address is lassauge@users.sourceforge.net
+ *
+ * Eric Lassauge (May-13-1998)
+ *
+ */
+
+/*-
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ * Permission to use, copy, modify, and distribute this software for
+ * any purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation, and that
+ * the name of Silicon Graphics, Inc. not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
+ * clause at DFARS 252.227-7013 and/or in similar or successor
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
+ * Unpublished-- rights reserved under the copyright laws of the
+ * United States. Contractor/manufacturer is Silicon Graphics,
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+#ifdef USE_GL
+
+#include "atlantis.h"
+
+/* *INDENT-OFF* */
+static const float N001[3] = {0.019249, 0.01134, -0.99975};
+static const float N002[3] = {-0.132579, 0.954547, 0.266952};
+static const float N003[3] = {-0.196061, 0.980392, -0.019778};
+static const float N004[3] = {0.695461, 0.604704, 0.388158};
+static const float N005[3] = {0.8706, 0.425754, 0.246557};
+static const float N006[3] = {-0.881191, 0.392012, 0.264251};
+#if 0
+static const float N007[3] = {0, 1, 0};
+#endif
+static const float N008[3] = {-0.341437, 0.887477, 0.309523};
+static const float N009[3] = {0.124035, -0.992278, 0};
+static const float N010[3] = {0.242536, 0, -0.970143};
+static const float N011[3] = {0.588172, 0, 0.808736};
+static const float N012[3] = {0.929824, -0.340623, -0.139298};
+static const float N013[3] = {0.954183, 0.267108, -0.134865};
+static const float N014[3] = {0.495127, 0.855436, -0.151914};
+static const float N015[3] = {-0.390199, 0.906569, -0.160867};
+static const float N016[3] = {-0.923605, 0.354581, -0.145692};
+static const float N017[3] = {-0.955796, -0.260667, -0.136036};
+static const float N018[3] = {-0.501283, -0.853462, -0.14254};
+static const float N019[3] = {0.4053, -0.901974, -0.148913};
+static const float N020[3] = {0.909913, -0.392746, -0.133451};
+static const float N021[3] = {0.936494, 0.331147, -0.115414};
+static const float N022[3] = {0.600131, 0.793724, -0.099222};
+static const float N023[3] = {-0.231556, 0.968361, -0.093053};
+static const float N024[3] = {-0.844369, 0.52533, -0.105211};
+static const float N025[3] = {-0.982725, -0.136329, -0.125164};
+static const float N026[3] = {-0.560844, -0.822654, -0.093241};
+static const float N027[3] = {0.263884, -0.959981, -0.093817};
+static const float N028[3] = {0.842057, -0.525192, -0.122938};
+static const float N029[3] = {0.92162, 0.367565, -0.124546};
+static const float N030[3] = {0.613927, 0.784109, -0.090918};
+static const float N031[3] = {-0.448754, 0.888261, -0.098037};
+static const float N032[3] = {-0.891865, 0.434376, -0.126077};
+static const float N033[3] = {-0.881447, -0.448017, -0.149437};
+static const float N034[3] = {-0.345647, -0.922057, -0.174183};
+static const float N035[3] = {0.307998, -0.941371, -0.137688};
+static const float N036[3] = {0.806316, -0.574647, -0.140124};
+static const float N037[3] = {0.961346, 0.233646, -0.145681};
+static const float N038[3] = {0.488451, 0.865586, -0.110351};
+static const float N039[3] = {-0.37429, 0.921953, -0.099553};
+static const float N040[3] = {-0.928504, 0.344533, -0.138485};
+static const float N041[3] = {-0.918419, -0.371792, -0.135189};
+static const float N042[3] = {-0.520666, -0.833704, -0.183968};
+static const float N043[3] = {0.339204, -0.920273, -0.195036};
+static const float N044[3] = {0.921475, -0.387382, -0.028636};
+static const float N045[3] = {0.842465, 0.533335, -0.076204};
+static const float N046[3] = {0.38011, 0.924939, 0.002073};
+static const float N047[3] = {-0.276128, 0.961073, -0.009579};
+static const float N048[3] = {-0.879684, 0.473001, -0.04925};
+static const float N049[3] = {-0.947184, -0.317614, -0.044321};
+static const float N050[3] = {-0.642059, -0.764933, -0.051363};
+static const float N051[3] = {0.466794, -0.880921, -0.07799};
+static const float N052[3] = {0.898509, -0.432277, 0.076279};
+static const float N053[3] = {0.938985, 0.328141, 0.103109};
+static const float N054[3] = {0.44242, 0.895745, 0.043647};
+static const float N055[3] = {-0.255163, 0.966723, 0.018407};
+static const float N056[3] = {-0.833769, 0.54065, 0.111924};
+static const float N057[3] = {-0.953653, -0.289939, 0.080507};
+static const float N058[3] = {-0.672357, -0.730524, 0.119461};
+static const float N059[3] = {0.522249, -0.846652, 0.102157};
+static const float N060[3] = {0.885868, -0.427631, 0.179914};
+#if 0
+static const float N061[3] = {0, 1, 0};
+#endif
+static const float N062[3] = {0.648942, 0.743116, 0.163255};
+static const float N063[3] = {-0.578967, 0.80773, 0.111219};
+#if 0
+static const float N064[3] = {0, 1, 0};
+#endif
+static const float N065[3] = {-0.909864, -0.352202, 0.219321};
+static const float N066[3] = {-0.502541, -0.81809, 0.27961};
+static const float N067[3] = {0.322919, -0.915358, 0.240504};
+static const float N068[3] = {0.242536, 0, -0.970143};
+static const float N069[3] = {0, 1, 0};
+static const float N070[3] = {0, 1, 0};
+static const float N071[3] = {0, 1, 0};
+static const float N072[3] = {0, 1, 0};
+static const float N073[3] = {0, 1, 0};
+static const float N074[3] = {0, 1, 0};
+static const float N075[3] = {0.03122, 0.999025, -0.03122};
+static const float N076[3] = {0, 1, 0};
+static const float N077[3] = {0.446821, 0.893642, 0.041889};
+static const float N078[3] = {0.863035, -0.10098, 0.494949};
+static const float N079[3] = {0.585597, -0.808215, 0.062174};
+static const float N080[3] = {0, 1, 0};
+static const float N081[3] = {1, 0, 0};
+static const float N082[3] = {0, 1, 0};
+static const float N083[3] = {-1, 0, 0};
+static const float N084[3] = {-0.478893, 0.837129, -0.264343};
+static const float N085[3] = {0, 1, 0};
+static const float N086[3] = {0.763909, 0.539455, -0.354163};
+static const float N087[3] = {0.446821, 0.893642, 0.041889};
+static const float N088[3] = {0.385134, -0.908288, 0.163352};
+static const float N089[3] = {-0.605952, 0.779253, -0.159961};
+static const float N090[3] = {0, 1, 0};
+static const float N091[3] = {0, 1, 0};
+static const float N092[3] = {0, 1, 0};
+static const float N093[3] = {0, 1, 0};
+static const float N094[3] = {1, 0, 0};
+static const float N095[3] = {-1, 0, 0};
+static const float N096[3] = {0.644444, -0.621516, 0.445433};
+static const float N097[3] = {-0.760896, -0.474416, 0.442681};
+static const float N098[3] = {0.636888, -0.464314, 0.615456};
+static const float N099[3] = {-0.710295, 0.647038, 0.277168};
+static const float N100[3] = {0.009604, 0.993655, 0.112063};
+#if 0
+static const float N101[3] = {0, 1, 0};
+static const float N102[3] = {0, 1, 0};
+static const float N103[3] = {0, 1, 0};
+static const float N104[3] = {0.031837, 0.999285, 0.020415};
+static const float N105[3] = {0.031837, 0.999285, 0.020415};
+static const float N106[3] = {0.031837, 0.999285, 0.020415};
+static const float N107[3] = {0.014647, 0.999648, 0.022115};
+static const float N108[3] = {0.014647, 0.999648, 0.022115};
+static const float N109[3] = {0.014647, 0.999648, 0.022115};
+static const float N110[3] = {-0.985141, 0.039475, 0.167149};
+static const float N111[3] = {-0.985141, 0.039475, 0.167149};
+static const float N112[3] = {-0.985141, 0.039475, 0.167149};
+static const float N113[3] = {0, 1, 0};
+static const float N114[3] = {0, 1, 0};
+static const float N115[3] = {0, 1, 0};
+static const float N116[3] = {0, 1, 0};
+static const float N117[3] = {0, 1, 0};
+static const float N118[3] = {0, 1, 0};
+static const float N119[3] = {0, 1, 0};
+static const float N120[3] = {0, 1, 0};
+static const float N121[3] = {0, 1, 0};
+#endif
+static const float iP001[3] = {18.74, 13.19, 3.76};
+static float P001[3] = {18.74, 13.19, 3.76};
+static const float P002[3] = {0, 390.42, 10292.57};
+static const float P003[3] = {55.8, 622.31, 8254.35};
+static const float P004[3] = {20.8, 247.66, 10652.13};
+static const float P005[3] = {487.51, 198.05, 9350.78};
+static const float P006[3] = {-457.61, 199.04, 9353.01};
+#if 0
+static const float P007[3] = {0, 259, 10276.27};
+#endif
+static const float P008[3] = {-34.67, 247.64, 10663.71};
+static const float iP009[3] = {97.46, 67.63, 593.82};
+static const float iP010[3] = {-84.33, 67.63, 588.18};
+static const float iP011[3] = {118.69, 8.98, -66.91};
+static float P009[3] = {97.46, 67.63, 593.82};
+static float P010[3] = {-84.33, 67.63, 588.18};
+static float P011[3] = {118.69, 8.98, -66.91};
+static const float iP012[3] = {156.48, -31.95, 924.54};
+static const float iP013[3] = {162, 110.22, 924.54};
+static const float iP014[3] = {88.16, 221.65, 924.54};
+static const float iP015[3] = {-65.21, 231.16, 924.54};
+static const float iP016[3] = {-156.48, 121.97, 924.54};
+static const float iP017[3] = {-162, -23.93, 924.54};
+static const float iP018[3] = {-88.16, -139.1, 924.54};
+static const float iP019[3] = {65.21, -148.61, 924.54};
+static const float iP020[3] = {246.87, -98.73, 1783.04};
+static const float iP021[3] = {253.17, 127.76, 1783.04};
+static const float iP022[3] = {132.34, 270.77, 1783.04};
+static const float iP023[3] = {-97.88, 285.04, 1783.04};
+static const float iP024[3] = {-222.97, 139.8, 1783.04};
+static const float iP025[3] = {-225.29, -86.68, 1783.04};
+static const float iP026[3] = {-108.44, -224.15, 1783.04};
+static const float iP027[3] = {97.88, -221.56, 1783.04};
+static const float iP028[3] = {410.55, -200.66, 3213.87};
+static const float iP029[3] = {432.19, 148.42, 3213.87};
+static const float iP030[3] = {200.66, 410.55, 3213.87};
+static const float iP031[3] = {-148.42, 432.19, 3213.87};
+static const float iP032[3] = {-407.48, 171.88, 3213.87};
+static const float iP033[3] = {-432.19, -148.42, 3213.87};
+static const float iP034[3] = {-148.88, -309.74, 3213.87};
+static const float iP035[3] = {156.38, -320.17, 3213.87};
+static const float iP036[3] = {523.39, -303.81, 4424.57};
+static const float iP037[3] = {574.66, 276.84, 4424.57};
+static const float iP038[3] = {243.05, 492.5, 4424.57};
+static const float iP039[3] = {-191.23, 520.13, 4424.57};
+static const float iP040[3] = {-523.39, 304.01, 4424.57};
+static const float iP041[3] = {-574.66, -231.83, 4424.57};
+static const float iP042[3] = {-266.95, -578.17, 4424.57};
+static const float iP043[3] = {211.14, -579.67, 4424.57};
+static const float iP044[3] = {680.57, -370.27, 5943.46};
+static const float iP045[3] = {834.01, 363.09, 5943.46};
+static const float iP046[3] = {371.29, 614.13, 5943.46};
+static const float iP047[3] = {-291.43, 621.86, 5943.46};
+static const float iP048[3] = {-784.13, 362.6, 5943.46};
+static const float iP049[3] = {-743.29, -325.82, 5943.46};
+static const float iP050[3] = {-383.24, -804.77, 5943.46};
+static const float iP051[3] = {283.47, -846.09, 5943.46};
+static float P012[3] = {156.48, -31.95, 924.54};
+static float P013[3] = {162, 110.22, 924.54};
+static float P014[3] = {88.16, 221.65, 924.54};
+static float P015[3] = {-65.21, 231.16, 924.54};
+static float P016[3] = {-156.48, 121.97, 924.54};
+static float P017[3] = {-162, -23.93, 924.54};
+static float P018[3] = {-88.16, -139.1, 924.54};
+static float P019[3] = {65.21, -148.61, 924.54};
+static float P020[3] = {246.87, -98.73, 1783.04};
+static float P021[3] = {253.17, 127.76, 1783.04};
+static float P022[3] = {132.34, 270.77, 1783.04};
+static float P023[3] = {-97.88, 285.04, 1783.04};
+static float P024[3] = {-222.97, 139.8, 1783.04};
+static float P025[3] = {-225.29, -86.68, 1783.04};
+static float P026[3] = {-108.44, -224.15, 1783.04};
+static float P027[3] = {97.88, -221.56, 1783.04};
+static float P028[3] = {410.55, -200.66, 3213.87};
+static float P029[3] = {432.19, 148.42, 3213.87};
+static float P030[3] = {200.66, 410.55, 3213.87};
+static float P031[3] = {-148.42, 432.19, 3213.87};
+static float P032[3] = {-407.48, 171.88, 3213.87};
+static float P033[3] = {-432.19, -148.42, 3213.87};
+static float P034[3] = {-148.88, -309.74, 3213.87};
+static float P035[3] = {156.38, -320.17, 3213.87};
+static float P036[3] = {523.39, -303.81, 4424.57};
+static float P037[3] = {574.66, 276.84, 4424.57};
+static float P038[3] = {243.05, 492.5, 4424.57};
+static float P039[3] = {-191.23, 520.13, 4424.57};
+static float P040[3] = {-523.39, 304.01, 4424.57};
+static float P041[3] = {-574.66, -231.83, 4424.57};
+static float P042[3] = {-266.95, -578.17, 4424.57};
+static float P043[3] = {211.14, -579.67, 4424.57};
+static float P044[3] = {680.57, -370.27, 5943.46};
+static float P045[3] = {834.01, 363.09, 5943.46};
+static float P046[3] = {371.29, 614.13, 5943.46};
+static float P047[3] = {-291.43, 621.86, 5943.46};
+static float P048[3] = {-784.13, 362.6, 5943.46};
+static float P049[3] = {-743.29, -325.82, 5943.46};
+static float P050[3] = {-383.24, -804.77, 5943.46};
+static float P051[3] = {283.47, -846.09, 5943.46};
+static const float P052[3] = {599.09, -332.24, 7902.59};
+static const float P053[3] = {735.48, 306.26, 7911.92};
+static const float P054[3] = {321.55, 558.53, 7902.59};
+static const float P055[3] = {-260.54, 559.84, 7902.59};
+static const float P056[3] = {-698.66, 320.83, 7902.59};
+static const float P057[3] = {-643.29, -299.16, 7902.59};
+static const float P058[3] = {-341.47, -719.3, 7902.59};
+static const float P059[3] = {252.57, -756.12, 7902.59};
+static const float P060[3] = {458.39, -265.31, 9355.44};
+static const float iP061[3] = {353.63, 138.7, 10214.2};
+static float P061[3] = {353.63, 138.7, 10214.2};
+static const float P062[3] = {224.04, 438.98, 9364.77};
+static const float P063[3] = {-165.71, 441.27, 9355.44};
+static const float iP064[3] = {-326.4, 162.04, 10209.54};
+static float P064[3] = {-326.4, 162.04, 10209.54};
+static const float P065[3] = {-473.99, -219.71, 9355.44};
+static const float P066[3] = {-211.97, -479.87, 9355.44};
+static const float P067[3] = {192.86, -504.03, 9355.44};
+static const float iP068[3] = {-112.44, 9.25, -64.42};
+static const float iP069[3] = {1155.63, 0, -182.46};
+static const float iP070[3] = {-1143.13, 0, -181.54};
+static const float iP071[3] = {1424.23, 0, -322.09};
+static const float iP072[3] = {-1368.01, 0, -310.38};
+static const float iP073[3] = {1255.57, 2.31, 114.05};
+static const float iP074[3] = {-1149.38, 0, 117.12};
+static const float iP075[3] = {718.36, 0, 433.36};
+static const float iP076[3] = {-655.9, 0, 433.36};
+static float P068[3] = {-112.44, 9.25, -64.42};
+static float P069[3] = {1155.63, 0, -182.46};
+static float P070[3] = {-1143.13, 0, -181.54};
+static float P071[3] = {1424.23, 0, -322.09};
+static float P072[3] = {-1368.01, 0, -310.38};
+static float P073[3] = {1255.57, 2.31, 114.05};
+static float P074[3] = {-1149.38, 0, 117.12};
+static float P075[3] = {718.36, 0, 433.36};
+static float P076[3] = {-655.9, 0, 433.36};
+static const float P077[3] = {1058, -2.66, 7923.51};
+static const float P078[3] = {-1016.51, -15.47, 7902.87};
+static const float P079[3] = {-1363.99, -484.5, 7593.38};
+static const float P080[3] = {1478.09, -861.47, 7098.12};
+static const float P081[3] = {1338.06, -284.68, 7024.15};
+static const float P082[3] = {-1545.51, -860.64, 7106.6};
+static const float P083[3] = {1063.19, -70.46, 7466.6};
+static const float P084[3] = {-1369.18, -288.11, 7015.34};
+static const float P085[3] = {1348.44, -482.5, 7591.41};
+static const float P086[3] = {-1015.45, -96.8, 7474.86};
+static const float P087[3] = {731.04, 148.38, 7682.58};
+static const float P088[3] = {-697.03, 151.82, 7668.81};
+static const float P089[3] = {-686.82, 157.09, 7922.29};
+static const float P090[3] = {724.73, 147.75, 7931.39};
+static const float iP091[3] = {0, 327.1, 2346.55};
+static const float iP092[3] = {0, 552.28, 2311.31};
+static const float iP093[3] = {0, 721.16, 2166.41};
+static const float iP094[3] = {0, 693.42, 2388.8};
+static const float iP095[3] = {0, 389.44, 2859.97};
+static float P091[3] = {0, 327.1, 2346.55};
+static float P092[3] = {0, 552.28, 2311.31};
+static float P093[3] = {0, 721.16, 2166.41};
+static float P094[3] = {0, 693.42, 2388.8};
+static float P095[3] = {0, 389.44, 2859.97};
+static const float iP096[3] = {222.02, -183.67, 10266.89};
+static const float iP097[3] = {-128.9, -182.7, 10266.89};
+static const float iP098[3] = {41.04, 88.31, 10659.36};
+static const float iP099[3] = {-48.73, 88.3, 10659.36};
+static float P096[3] = {222.02, -183.67, 10266.89};
+static float P097[3] = {-128.9, -182.7, 10266.89};
+static float P098[3] = {41.04, 88.31, 10659.36};
+static float P099[3] = {-48.73, 88.3, 10659.36};
+static const float P100[3] = {0, 603.42, 9340.68};
+#if 0
+static const float P101[3] = {5.7, 567, 7862.98};
+static const float P102[3] = {521.61, 156.61, 9162.34};
+static const float P103[3] = {83.68, 566.67, 7861.26};
+#endif
+static const float P104[3] = {-9.86, 567.62, 7858.65};
+static const float P105[3] = {31.96, 565.27, 7908.46};
+static const float P106[3] = {22.75, 568.13, 7782.83};
+static const float P107[3] = {58.93, 568.42, 7775.94};
+static const float P108[3] = {55.91, 565.59, 7905.86};
+static const float P109[3] = {99.21, 566, 7858.65};
+static const float P110[3] = {-498.83, 148.14, 9135.1};
+static const float P111[3] = {-495.46, 133.24, 9158.48};
+static const float P112[3] = {-490.82, 146.23, 9182.76};
+static const float P113[3] = {-489.55, 174.11, 9183.66};
+static const float P114[3] = {-492.92, 189, 9160.28};
+static const float P115[3] = {-497.56, 176.02, 9136};
+static const float P116[3] = {526.54, 169.68, 9137.7};
+static const float P117[3] = {523.49, 184.85, 9161.42};
+static const float P118[3] = {518.56, 171.78, 9186.06};
+static const float P119[3] = {516.68, 143.53, 9186.98};
+static const float P120[3] = {519.73, 128.36, 9163.26};
+static const float P121[3] = {524.66, 141.43, 9138.62};
+/* *INDENT-ON* */
+
+
+
+static void
+Whale001(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N068);
+ glVertex3fv(P068);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N068);
+ glVertex3fv(P068);
+ glNormal3fv(N076);
+ glVertex3fv(P076);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N068);
+ glVertex3fv(P068);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glNormal3fv(N076);
+ glVertex3fv(P076);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N076);
+ glVertex3fv(P076);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glNormal3fv(N074);
+ glVertex3fv(P074);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glNormal3fv(N072);
+ glVertex3fv(P072);
+ glNormal3fv(N074);
+ glVertex3fv(P074);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N072);
+ glVertex3fv(P072);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glNormal3fv(N074);
+ glVertex3fv(P074);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N074);
+ glVertex3fv(P074);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glNormal3fv(N076);
+ glVertex3fv(P076);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N070);
+ glVertex3fv(P070);
+ glNormal3fv(N068);
+ glVertex3fv(P068);
+ glNormal3fv(N076);
+ glVertex3fv(P076);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N076);
+ glVertex3fv(P076);
+ glNormal3fv(N068);
+ glVertex3fv(P068);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N068);
+ glVertex3fv(P068);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N010);
+ glVertex3fv(P010);
+ glEnd();
+}
+
+static void
+Whale002(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N075);
+ glVertex3fv(P075);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N075);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glNormal3fv(N075);
+ glVertex3fv(P075);
+ glNormal3fv(N073);
+ glVertex3fv(P073);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N071);
+ glVertex3fv(P071);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glNormal3fv(N073);
+ glVertex3fv(P073);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N009);
+ glVertex3fv(P009);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N075);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N011);
+ glVertex3fv(P011);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glNormal3fv(N075);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glNormal3fv(N073);
+ glVertex3fv(P073);
+ glNormal3fv(N075);
+ glVertex3fv(P075);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N069);
+ glVertex3fv(P069);
+ glNormal3fv(N071);
+ glVertex3fv(P071);
+ glNormal3fv(N073);
+ glVertex3fv(P073);
+ glEnd();
+}
+
+static void
+Whale003(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N001);
+ glVertex3fv(P001);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glEnd();
+}
+
+static void
+Whale004(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N015);
+ glVertex3fv(P015);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N016);
+ glVertex3fv(P016);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N017);
+ glVertex3fv(P017);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N014);
+ glVertex3fv(P014);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N013);
+ glVertex3fv(P013);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N018);
+ glVertex3fv(P018);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N019);
+ glVertex3fv(P019);
+ glNormal3fv(N012);
+ glVertex3fv(P012);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glEnd();
+}
+
+static void
+Whale005(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N022);
+ glVertex3fv(P022);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N023);
+ glVertex3fv(P023);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N024);
+ glVertex3fv(P024);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N021);
+ glVertex3fv(P021);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N020);
+ glVertex3fv(P020);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N025);
+ glVertex3fv(P025);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N026);
+ glVertex3fv(P026);
+ glNormal3fv(N027);
+ glVertex3fv(P027);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glEnd();
+}
+
+static void
+Whale006(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N093);
+ glVertex3fv(P093);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N093);
+ glVertex3fv(P093);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N091);
+ glVertex3fv(P091);
+ glNormal3fv(N095);
+ glVertex3fv(P095);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N091);
+ glVertex3fv(P091);
+ glNormal3fv(N092);
+ glVertex3fv(P092);
+ glNormal3fv(N094);
+ glVertex3fv(P094);
+ glNormal3fv(N095);
+ glVertex3fv(P095);
+ glEnd();
+}
+
+static void
+Whale007(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N030);
+ glVertex3fv(P030);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N029);
+ glVertex3fv(P029);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N028);
+ glVertex3fv(P028);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glNormal3fv(N035);
+ glVertex3fv(P035);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N034);
+ glVertex3fv(P034);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N031);
+ glVertex3fv(P031);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N032);
+ glVertex3fv(P032);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N033);
+ glVertex3fv(P033);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glEnd();
+}
+
+static void
+Whale008(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N043);
+ glVertex3fv(P043);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N042);
+ glVertex3fv(P042);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N036);
+ glVertex3fv(P036);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N041);
+ glVertex3fv(P041);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N040);
+ glVertex3fv(P040);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N037);
+ glVertex3fv(P037);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N038);
+ glVertex3fv(P038);
+ glNormal3fv(N039);
+ glVertex3fv(P039);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glEnd();
+}
+
+static void
+Whale009(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N051);
+ glVertex3fv(P051);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N044);
+ glVertex3fv(P044);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N050);
+ glVertex3fv(P050);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N049);
+ glVertex3fv(P049);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N048);
+ glVertex3fv(P048);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N045);
+ glVertex3fv(P045);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N046);
+ glVertex3fv(P046);
+ glNormal3fv(N047);
+ glVertex3fv(P047);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glEnd();
+}
+
+static void
+Whale010(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N080);
+ glVertex3fv(P080);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N090);
+ glVertex3fv(P090);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N080);
+ glVertex3fv(P080);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N081);
+ glVertex3fv(P081);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N085);
+ glVertex3fv(P085);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N083);
+ glVertex3fv(P083);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N087);
+ glVertex3fv(P087);
+ glNormal3fv(N077);
+ glVertex3fv(P077);
+ glNormal3fv(N090);
+ glVertex3fv(P090);
+ glEnd();
+}
+
+static void
+Whale011(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N082);
+ glVertex3fv(P082);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N088);
+ glVertex3fv(P088);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glNormal3fv(N088);
+ glVertex3fv(P088);
+ glNormal3fv(N089);
+ glVertex3fv(P089);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N088);
+ glVertex3fv(P088);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N089);
+ glVertex3fv(P089);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N089);
+ glVertex3fv(P089);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N086);
+ glVertex3fv(P086);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N078);
+ glVertex3fv(P078);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N084);
+ glVertex3fv(P084);
+ glNormal3fv(N082);
+ glVertex3fv(P082);
+ glNormal3fv(N079);
+ glVertex3fv(P079);
+ glEnd();
+}
+
+static void
+Whale012(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N059);
+ glVertex3fv(P059);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N058);
+ glVertex3fv(P058);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N057);
+ glVertex3fv(P057);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N056);
+ glVertex3fv(P056);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N053);
+ glVertex3fv(P053);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N052);
+ glVertex3fv(P052);
+ glEnd();
+}
+
+static void
+Whale013(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glNormal3fv(N096);
+ glVertex3fv(P096);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glNormal3fv(N096);
+ glVertex3fv(P096);
+ glNormal3fv(N098);
+ glVertex3fv(P098);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N066);
+ glVertex3fv(P066);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N067);
+ glVertex3fv(P067);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N096);
+ glVertex3fv(P096);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N060);
+ glVertex3fv(P060);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N096);
+ glVertex3fv(P096);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N096);
+ glVertex3fv(P096);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glNormal3fv(N098);
+ glVertex3fv(P098);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N065);
+ glVertex3fv(P065);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N097);
+ glVertex3fv(P097);
+ glNormal3fv(N099);
+ glVertex3fv(P099);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P005);
+ glVertex3fv(P006);
+ glVertex3fv(P099);
+ glVertex3fv(P098);
+ glEnd();
+}
+
+static void
+Whale014(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N004);
+ glVertex3fv(P004);
+ glNormal3fv(N005);
+ glVertex3fv(P005);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P006);
+ glVertex3fv(P005);
+ glVertex3fv(P004);
+ glVertex3fv(P008);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N006);
+ glVertex3fv(P006);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N008);
+ glVertex3fv(P008);
+ glNormal3fv(N004);
+ glVertex3fv(P004);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N004);
+ glVertex3fv(P004);
+ glEnd();
+}
+
+static void
+Whale015(GLenum cap)
+{
+ glBegin(cap);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N055);
+ glVertex3fv(P055);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N003);
+ glVertex3fv(P003);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N054);
+ glVertex3fv(P054);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N063);
+ glVertex3fv(P063);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glEnd();
+ glBegin(cap);
+ glNormal3fv(N100);
+ glVertex3fv(P100);
+ glNormal3fv(N002);
+ glVertex3fv(P002);
+ glNormal3fv(N062);
+ glVertex3fv(P062);
+ glEnd();
+}
+
+static void
+Whale016(GLenum cap)
+{
+ glBegin(cap);
+ glVertex3fv(P104);
+ glVertex3fv(P105);
+ glVertex3fv(P106);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P107);
+ glVertex3fv(P108);
+ glVertex3fv(P109);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P110);
+ glVertex3fv(P111);
+ glVertex3fv(P112);
+ glVertex3fv(P113);
+ glVertex3fv(P114);
+ glVertex3fv(P115);
+ glEnd();
+ glBegin(cap);
+ glVertex3fv(P116);
+ glVertex3fv(P117);
+ glVertex3fv(P118);
+ glVertex3fv(P119);
+ glVertex3fv(P120);
+ glVertex3fv(P121);
+ glEnd();
+}
+
+void
+DrawWhale(fishRec * fish, int wire)
+{
+ float seg0, seg1, seg2, seg3, seg4, seg5, seg6, seg7;
+ float pitch, thrash, chomp;
+ GLenum cap;
+
+ fish->htail = (int) (fish->htail - (int) (5 * fish->v)) % 360;
+
+ thrash = 70 * fish->v;
+
+ seg0 = 1.5 * thrash * sin((fish->htail) * RRAD);
+ seg1 = 2.5 * thrash * sin((fish->htail + 10) * RRAD);
+ seg2 = 3.7 * thrash * sin((fish->htail + 15) * RRAD);
+ seg3 = 4.8 * thrash * sin((fish->htail + 23) * RRAD);
+ seg4 = 6 * thrash * sin((fish->htail + 28) * RRAD);
+ seg5 = 6.5 * thrash * sin((fish->htail + 35) * RRAD);
+ seg6 = 6.5 * thrash * sin((fish->htail + 40) * RRAD);
+ seg7 = 6.5 * thrash * sin((fish->htail + 55) * RRAD);
+
+ pitch = fish->v * sin((fish->htail - 160) * RRAD);
+
+ chomp = 0;
+ if (fish->v > 2) {
+ chomp = -(fish->v - 2) * 200;
+ }
+ P012[1] = iP012[1] + seg5;
+ P013[1] = iP013[1] + seg5;
+ P014[1] = iP014[1] + seg5;
+ P015[1] = iP015[1] + seg5;
+ P016[1] = iP016[1] + seg5;
+ P017[1] = iP017[1] + seg5;
+ P018[1] = iP018[1] + seg5;
+ P019[1] = iP019[1] + seg5;
+
+ P020[1] = iP020[1] + seg4;
+ P021[1] = iP021[1] + seg4;
+ P022[1] = iP022[1] + seg4;
+ P023[1] = iP023[1] + seg4;
+ P024[1] = iP024[1] + seg4;
+ P025[1] = iP025[1] + seg4;
+ P026[1] = iP026[1] + seg4;
+ P027[1] = iP027[1] + seg4;
+
+ P028[1] = iP028[1] + seg2;
+ P029[1] = iP029[1] + seg2;
+ P030[1] = iP030[1] + seg2;
+ P031[1] = iP031[1] + seg2;
+ P032[1] = iP032[1] + seg2;
+ P033[1] = iP033[1] + seg2;
+ P034[1] = iP034[1] + seg2;
+ P035[1] = iP035[1] + seg2;
+
+ P036[1] = iP036[1] + seg1;
+ P037[1] = iP037[1] + seg1;
+ P038[1] = iP038[1] + seg1;
+ P039[1] = iP039[1] + seg1;
+ P040[1] = iP040[1] + seg1;
+ P041[1] = iP041[1] + seg1;
+ P042[1] = iP042[1] + seg1;
+ P043[1] = iP043[1] + seg1;
+
+ P044[1] = iP044[1] + seg0;
+ P045[1] = iP045[1] + seg0;
+ P046[1] = iP046[1] + seg0;
+ P047[1] = iP047[1] + seg0;
+ P048[1] = iP048[1] + seg0;
+ P049[1] = iP049[1] + seg0;
+ P050[1] = iP050[1] + seg0;
+ P051[1] = iP051[1] + seg0;
+
+ P009[1] = iP009[1] + seg6;
+ P010[1] = iP010[1] + seg6;
+ P075[1] = iP075[1] + seg6;
+ P076[1] = iP076[1] + seg6;
+
+ P001[1] = iP001[1] + seg7;
+ P011[1] = iP011[1] + seg7;
+ P068[1] = iP068[1] + seg7;
+ P069[1] = iP069[1] + seg7;
+ P070[1] = iP070[1] + seg7;
+ P071[1] = iP071[1] + seg7;
+ P072[1] = iP072[1] + seg7;
+ P073[1] = iP073[1] + seg7;
+ P074[1] = iP074[1] + seg7;
+
+ P091[1] = iP091[1] + seg3 * 1.1;
+ P092[1] = iP092[1] + seg3;
+ P093[1] = iP093[1] + seg3;
+ P094[1] = iP094[1] + seg3;
+ P095[1] = iP095[1] + seg3 * 0.9;
+
+ P099[1] = iP099[1] + chomp;
+ P098[1] = iP098[1] + chomp;
+ P064[1] = iP064[1] + chomp;
+ P061[1] = iP061[1] + chomp;
+ P097[1] = iP097[1] + chomp;
+ P096[1] = iP096[1] + chomp;
+
+ glPushMatrix();
+
+ glRotatef(pitch, 1, 0, 0);
+
+ glTranslatef(0, 0, 8000);
+
+ glRotatef(180, 0, 1, 0);
+
+ glScalef(3, 3, 3);
+
+ glEnable(GL_CULL_FACE);
+
+ cap = wire ? GL_LINE_LOOP : GL_POLYGON;
+ Whale001(cap);
+ Whale002(cap);
+ Whale003(cap);
+ Whale004(cap);
+ Whale005(cap);
+ Whale006(cap);
+ Whale007(cap);
+ Whale008(cap);
+ Whale009(cap);
+ Whale010(cap);
+ Whale011(cap);
+ Whale012(cap);
+ Whale013(cap);
+ Whale014(cap);
+ Whale015(cap);
+ Whale016(cap);
+
+ glDisable(GL_CULL_FACE);
+
+ glPopMatrix();
+}
+#endif
diff --git a/hacks/glx/winduprobot.c b/hacks/glx/winduprobot.c
new file mode 100644
index 0000000..61091cf
--- /dev/null
+++ b/hacks/glx/winduprobot.c
@@ -0,0 +1,2483 @@
+/* winduprobot, Copyright (c) 2014-2018 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Draws a robot wind-up toy.
+ *
+ * I've had this little robot since I was about six years old! When the time
+ * came for us to throw the Cocktail Robotics Grand Challenge at DNA Lounge, I
+ * photographed this robot (holding a tiny martini glass) to make a flyer for
+ * the event. You can see that photo here:
+ * https://www.dnalounge.com/flyers/2014/09/14.html
+ *
+ * Then I decided to try and make award statues for the contest by modeling
+ * this robot and 3D-printing it (a robot on a post, with the DNA Lounge
+ * grommet around it.) So I learned Maya and built a model.
+ *
+ * Well, that 3D printing idea didn't work out, but since I had the model
+ * already, I exported it and turned it into a screen saver.
+ *
+ * The DXF files that Maya exports aren't simple enough for my dxf2gl.pl
+ * script to process, so the exporting process went:
+ *
+ * - Save from Maya to OBJ;
+ * - Import OBJ into SketchUp using
+ * http://www.scriptspot.com/sketchup/scripts/obj-importer
+ * - Clean up the model a little bit more;
+ * - Export to DXF with "Millimeters", "Triangles", using
+ * http://www.guitar-list.com/download-software/convert-sketchup-skp-files-dxf-or-stl
+ *
+ * We did eventually end up with robotic award statues, but we constructed
+ * them out of mass-produced wind-up robots, rather than 3D printing them:
+ * https://www.dnalounge.com/gallery/2014/09-14/045.html
+ * https://www.youtube.com/watch?v=EZF4ZAAy49g
+ */
+
+#define LABEL_FONT "-*-helvetica-bold-r-normal-*-*-240-*-*-*-*-*-*"
+
+#define DEFAULTS "*delay: 20000 \n" \
+ "*count: 25 \n" \
+ "*showFPS: False \n" \
+ "*wireframe: False \n" \
+ "*labelFont: " LABEL_FONT "\n" \
+ "*legColor: #AA2222" "\n" \
+ "*armColor: #AA2222" "\n" \
+ "*handColor: #AA2222" "\n" \
+ "*crankColor: #444444" "\n" \
+ "*bodyColor: #7777AA" "\n" \
+ "*domeColor: #7777AA" "\n" \
+ "*insideColor: #DDDDDD" "\n" \
+ "*gearboxColor: #444488" "\n" \
+ "*gearColor: #008877" "\n" \
+ "*wheelColor: #007788" "\n" \
+ "*wireColor: #006600" "\n" \
+ "*groundColor: #0000FF" "\n" \
+ "*textColor: #FFFFFF""\n" \
+ "*textBackground: #444444""\n" \
+ "*textBorderColor: #FFFF88""\n" \
+ "*textLines: 10 \n" \
+ "*program: xscreensaver-text\n" \
+ "*usePty: False\n"
+
+#undef DEBUG
+#define WORDBUBBLES
+
+# define release_robot 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_SPEED "1.0"
+#define DEF_ROBOT_SIZE "1.0"
+#define DEF_TEXTURE "True"
+#define DEF_FADE "True"
+#define DEF_OPACITY "1.0"
+#define DEF_TALK "0.2"
+
+#include "xlockmore.h"
+#include "gltrackball.h"
+#include "ximage-loader.h"
+#include "involute.h"
+#include "sphere.h"
+
+#ifdef WORDBUBBLES
+# include "textclient.h"
+# include "texfont.h"
+#endif
+
+#include <ctype.h>
+
+#ifndef HAVE_JWZGLES /* No SPHERE_MAP on iPhone */
+# define HAVE_TEXTURE
+#endif
+
+#ifdef HAVE_TEXTURE
+# include "images/gen/chromesphere_png.h"
+#endif
+
+#ifdef USE_GL /* whole file */
+
+#include "gllist.h"
+
+extern const struct gllist
+ *robot_arm_half, *robot_body_half_outside, *robot_body_half_inside,
+ *robot_crank_full, *robot_gearbox_half, *robot_hand_half,
+ *robot_leg_half, *robot_rotator_half, *robot_wireframe;
+
+static struct gllist *robot_dome = 0, *robot_gear = 0, *ground = 0;
+
+static const struct gllist * const *all_objs[] = {
+ &robot_arm_half, &robot_body_half_outside, &robot_body_half_inside,
+ &robot_crank_full, &robot_gearbox_half, &robot_hand_half,
+ &robot_leg_half, &robot_rotator_half, &robot_wireframe,
+ (const struct gllist * const *) &robot_dome,
+ (const struct gllist * const *) &robot_gear,
+ (const struct gllist * const *) &ground
+};
+
+#define ROBOT_ARM 0
+#define ROBOT_BODY_1 1
+#define ROBOT_BODY_2 2
+#define ROBOT_CRANK 3
+#define ROBOT_GEARBOX 4
+#define ROBOT_HAND 5
+#define ROBOT_LEG 6
+#define ROBOT_ROTATOR 7
+#define ROBOT_WIREFRAME 8
+#define ROBOT_DOME 9
+#define ROBOT_GEAR 10
+#define GROUND 11
+
+typedef struct {
+ GLfloat x, y, z; /* position */
+ GLfloat facing; /* direction of front of robot, degrees */
+ GLfloat pitch; /* front/back tilt angle, degrees */
+ GLfloat roll; /* left/right tilt angle, degrees */
+ GLfloat speed; /* some robots are faster */
+ GLfloat crank_rot; /* gear state, degrees */
+ GLfloat hand_rot[2]; /* rotation of the hands, degrees */
+ GLfloat hand_pos[2]; /* openness of the hands, ratio */
+ GLfloat balance; /* how off-true does it walk? degrees */
+ GLfloat body_transparency; /* ratio */
+ int fading_p; /* -1, 0, 1 */
+
+} walker;
+
+typedef struct {
+ GLXContext *glx_context;
+ trackball_state *user_trackball;
+ Bool button_down_p;
+
+ GLuint *dlists;
+ GLfloat component_colors[countof(all_objs)][4];
+
+ int nwalkers;
+ walker *walkers;
+
+ GLfloat looking_x, looking_y, looking_z; /* Where camera is aimed */
+ GLfloat olooking_x, olooking_y, olooking_z; /* Where camera was aimed */
+ Bool camera_tracking_p; /* Whether camera in motion */
+ GLfloat tracking_ratio;
+
+# ifdef HAVE_TEXTURE
+ GLuint chrome_texture;
+# endif
+
+# ifdef WORDBUBBLES
+ texture_font_data *font_data;
+ int bubble_tick;
+ text_data *tc;
+ char words[10240];
+ int lines, max_lines;
+
+ GLfloat text_color[4], text_bg[4], text_bd[4];
+
+# endif /* WORDBUBBLES */
+
+
+# ifdef DEBUG
+ GLfloat debug_x, debug_y, debug_z;
+# endif
+
+} robot_configuration;
+
+static robot_configuration *bps = NULL;
+
+static GLfloat speed, size, opacity;
+static int do_texture, do_fade;
+#ifdef WORDBUBBLES
+static GLfloat talk_chance;
+#endif
+#ifdef DEBUG
+static int debug_p;
+#endif
+
+static XrmOptionDescRec opts[] = {
+ { "-speed", ".speed", XrmoptionSepArg, 0 },
+ { "-size", ".robotSize", XrmoptionSepArg, 0 },
+ { "-opacity", ".opacity", XrmoptionSepArg, 0 },
+ { "-talk", ".talk", XrmoptionSepArg, 0 },
+ {"-texture", ".texture", XrmoptionNoArg, "True" },
+ {"+texture", ".texture", XrmoptionNoArg, "False" },
+ {"-fade", ".fade", XrmoptionNoArg, "True" },
+ {"+fade", ".fade", XrmoptionNoArg, "False" },
+#ifdef DEBUG
+ {"-debug", ".debug", XrmoptionNoArg, "True" },
+ {"+debug", ".debug", XrmoptionNoArg, "False" },
+#endif
+};
+
+static argtype vars[] = {
+ {&speed, "speed", "Speed", DEF_SPEED, t_Float},
+ {&size, "robotSize", "RobotSize", DEF_ROBOT_SIZE, t_Float},
+ {&opacity, "opacity", "Opacity", DEF_OPACITY, t_Float},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+ {&do_fade, "fade", "Fade", DEF_FADE, t_Bool},
+#ifdef WORDBUBBLES
+ {&talk_chance, "talk", "Talk", DEF_TALK, t_Float},
+#endif
+#ifdef DEBUG
+ {&debug_p, "debug", "Debug", "False", t_Bool},
+#endif
+};
+
+ENTRYPOINT ModeSpecOpt robot_opts = {
+ countof(opts), opts, countof(vars), vars, NULL};
+
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_robot (ModeInfo *mi, int width, int height)
+{
+ GLfloat h = (GLfloat) height / (GLfloat) width;
+ int y = 0;
+
+ if (width > height * 5) { /* tiny window: show middle */
+ height = width * 9/16;
+ y = -height/2;
+ h = height / (GLfloat) width;
+ }
+
+ glViewport (0, y, width, height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective (40.0, 1/h, 1.0, 250);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ gluLookAt( 0, 0, 30,
+ 0, 0, 0,
+ 0, 1, 0);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+# ifdef WORDBUBBLES
+ {
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int w = (width < 800 ? 25 : 40);
+ int h = 1000;
+ if (bp->tc)
+ textclient_reshape (bp->tc, w, h, w, h,
+ /* Passing bp->max_lines isn't actually necessary */
+ 0);
+ }
+# endif
+
+}
+
+
+ENTRYPOINT Bool
+robot_handle_event (ModeInfo *mi, XEvent *event)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+
+ if (gltrackball_event_handler (event, bp->user_trackball,
+ MI_WIDTH (mi), MI_HEIGHT (mi),
+ &bp->button_down_p))
+ return True;
+#ifdef DEBUG
+ else if (event->xany.type == KeyPress && debug_p)
+ {
+ KeySym keysym;
+ char c = 0;
+ double n[3] = { 1.0, 0.1, 0.1 };
+ int s = (event->xkey.state & ShiftMask ? 10 : 1);
+
+ XLookupString (&event->xkey, &c, 1, &keysym, 0);
+
+ if (keysym == XK_Right) bp->debug_x += n[0] * s;
+ else if (keysym == XK_Left) bp->debug_x -= n[0] * s;
+ else if (keysym == XK_Up) bp->debug_y += n[1] * s;
+ else if (keysym == XK_Down) bp->debug_y -= n[1] * s;
+ else if (c == '=' || c == '+') bp->debug_z += n[2] * s;
+ else if (c == '-' || c == '_') bp->debug_z -= n[2] * s;
+ else if (c == ' ') bp->debug_x = bp->debug_y = bp->debug_z = 0;
+ else if (c == '\n' || c == '\r')
+ fprintf (stderr, "%.4f %.4f %.4f\n",
+ bp->debug_x, bp->debug_y, bp->debug_z);
+ else return False;
+ return True;
+ }
+#endif /* DEBUG */
+
+ return False;
+}
+
+
+#ifdef HAVE_TEXTURE
+
+static void
+load_textures (ModeInfo *mi)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ XImage *xi;
+
+ xi = image_data_to_ximage (mi->dpy, mi->xgwa.visual,
+ chromesphere_png, sizeof(chromesphere_png));
+ clear_gl_error();
+
+ glGenTextures (1, &bp->chrome_texture);
+ glBindTexture (GL_TEXTURE_2D, bp->chrome_texture);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+ glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+ xi->width, xi->height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, xi->data);
+ check_gl_error("texture");
+
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ glEnable(GL_TEXTURE_2D);
+}
+
+#endif /* HAVE_TEXTURE */
+
+
+static int unit_gear (ModeInfo *, GLfloat color[4]);
+static int draw_ground (ModeInfo *, GLfloat color[4]);
+static void init_walker (ModeInfo *, walker *);
+
+static void
+parse_color (ModeInfo *mi, char *key, GLfloat color[4])
+{
+ XColor xcolor;
+ char *string = get_string_resource (mi->dpy, key, "RobotColor");
+ if (!XParseColor (mi->dpy, mi->xgwa.colormap, string, &xcolor))
+ {
+ fprintf (stderr, "%s: unparsable color in %s: %s\n", progname,
+ key, string);
+ exit (1);
+ }
+
+ color[0] = xcolor.red / 65536.0;
+ color[1] = xcolor.green / 65536.0;
+ color[2] = xcolor.blue / 65536.0;
+ color[3] = 1;
+}
+
+
+ENTRYPOINT void
+init_robot (ModeInfo *mi)
+{
+ robot_configuration *bp;
+ int wire = MI_IS_WIREFRAME(mi);
+ int i;
+ MI_INIT (mi, bps);
+
+ bp = &bps[MI_SCREEN(mi)];
+
+ bp->glx_context = init_GL(mi);
+
+ reshape_robot (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+ glShadeModel(GL_SMOOTH);
+
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_CULL_FACE);
+
+ if (!wire)
+ {
+ GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
+/* GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};*/
+ GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+ GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+ GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ glLightfv(GL_LIGHT0, GL_POSITION, pos);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+# ifdef HAVE_TEXTURE
+ if (!wire && do_texture)
+ load_textures (mi);
+# endif
+
+ bp->user_trackball = gltrackball_init (False);
+
+ bp->dlists = (GLuint *) calloc (countof(all_objs)+1, sizeof(GLuint));
+ for (i = 0; i < countof(all_objs); i++)
+ bp->dlists[i] = glGenLists (1);
+
+ for (i = 0; i < countof(all_objs); i++)
+ {
+ const struct gllist *gll = *all_objs[i];
+ char *key = 0;
+ GLfloat spec1[4] = {1.00, 1.00, 1.00, 1.0};
+ GLfloat spec2[4] = {0.40, 0.40, 0.70, 1.0};
+ GLfloat *spec = 0;
+ GLfloat shiny = 20;
+
+ glNewList (bp->dlists[i], GL_COMPILE);
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ glMatrixMode(GL_MODELVIEW);
+
+ glRotatef (-90, 1, 0, 0);
+ glRotatef (180, 0, 0, 1);
+ glScalef (6, 6, 6);
+
+ glBindTexture (GL_TEXTURE_2D, 0);
+
+ switch (i) {
+ case ROBOT_BODY_1:
+ key = "bodyColor";
+ spec = spec1;
+ shiny = 128;
+# ifdef HAVE_TEXTURE
+ if (do_texture)
+ {
+ glBindTexture (GL_TEXTURE_2D, bp->chrome_texture);
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ }
+# endif
+ break;
+ case ROBOT_DOME:
+ key = "domeColor";
+ spec = spec1;
+ shiny = 128;
+# ifdef HAVE_TEXTURE
+ if (do_texture)
+ {
+ glBindTexture (GL_TEXTURE_2D, bp->chrome_texture);
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ }
+# endif
+ break;
+ case ROBOT_BODY_2:
+ key = "insideColor";
+ spec = spec2;
+ shiny = 128;
+ break;
+ case ROBOT_ARM:
+ key = "armColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case ROBOT_HAND:
+ key = "handColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case ROBOT_LEG:
+ key = "legColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case ROBOT_CRANK:
+ key = "crankColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case ROBOT_ROTATOR:
+ key = "wheelColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case ROBOT_GEAR:
+ key = "gearColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case ROBOT_GEARBOX:
+ key = "gearboxColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case ROBOT_WIREFRAME:
+ key = "wireColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ case GROUND:
+ key = "groundColor";
+ spec = spec2;
+ shiny = 20;
+ break;
+ default:
+ abort();
+ }
+
+ parse_color (mi, key, bp->component_colors[i]);
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny);
+
+ switch (i) {
+ case ROBOT_DOME:
+ if (! robot_dome)
+ robot_dome = (struct gllist *) calloc (1, sizeof(*robot_dome));
+ robot_dome->points = unit_dome (32, 32, MI_IS_WIREFRAME(mi));
+ break;
+ case ROBOT_GEAR:
+ if (! robot_gear)
+ robot_gear = (struct gllist *) calloc (1, sizeof(*robot_gear));
+ robot_gear->points = unit_gear (mi, bp->component_colors[i]);
+ break;
+ case GROUND:
+ if (! ground)
+ ground = (struct gllist *) calloc (1, sizeof(*ground));
+ ground->points = draw_ground (mi, bp->component_colors[i]);
+ break;
+ case ROBOT_WIREFRAME:
+ glLineWidth (0.3);
+ renderList (gll, True);
+ break;
+ default:
+ renderList (gll, wire);
+ /* glColor3f (1, 1, 1); renderListNormals (gll, 100, True); */
+ /* glColor3f (1, 1, 0); renderListNormals (gll, 100, False); */
+ break;
+ }
+
+ glMatrixMode(GL_TEXTURE);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+
+ glEndList ();
+ }
+
+# ifdef DEBUG
+ if (debug_p) MI_COUNT(mi) = 1;
+# endif
+
+ bp->nwalkers = MI_COUNT(mi);
+ bp->walkers = (walker *) calloc (bp->nwalkers, sizeof (walker));
+
+ for (i = 0; i < bp->nwalkers; i++)
+ init_walker (mi, &bp->walkers[i]);
+
+ /* Since #0 is the one we track, make sure it doesn't walk too straight.
+ */
+ bp->walkers[0].balance *= 1.5;
+
+# ifdef WORDBUBBLES
+ bp->font_data = load_texture_font (mi->dpy, "labelFont");
+ bp->max_lines = get_integer_resource (mi->dpy, "textLines", "TextLines");
+ bp->tc = textclient_open (MI_DISPLAY (mi));
+
+ parse_color (mi, "textColor", bp->text_color);
+ parse_color (mi, "textBackground", bp->text_bg);
+ parse_color (mi, "textBorderColor", bp->text_bd);
+
+ reshape_robot (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+# endif /* WORDBUBBLES */
+
+# ifdef DEBUG
+ if (!debug_p)
+# endif
+ /* Let's tilt the floor a little. */
+ gltrackball_reset (bp->user_trackball,
+ -0.6 + frand(1.2),
+ -0.6 + frand(0.2));
+}
+
+
+static int
+draw_component (ModeInfo *mi, int i)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE,
+ bp->component_colors[i]);
+ glCallList (bp->dlists[i]);
+ return (*all_objs[i])->points / 3;
+}
+
+static int
+draw_transparent_component (ModeInfo *mi, int i, GLfloat alpha)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int count = 0;
+
+ if (alpha < 0) return 0;
+ if (alpha > 1) alpha = 1;
+ bp->component_colors[i][3] = alpha;
+
+ if (wire || alpha >= 1)
+ return draw_component (mi, i);
+
+ /* Draw into the depth buffer but not the frame buffer */
+ glColorMask (GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ count += draw_component (mi, i);
+
+ /* Now draw into the frame buffer only where there's already depth */
+ glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glDepthFunc (GL_EQUAL);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ count += draw_component (mi, i);
+ glDepthFunc (GL_LESS);
+ glDisable (GL_BLEND);
+ return count;
+}
+
+
+
+static int
+draw_arm_half (ModeInfo *mi, walker *f)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_transparent_component (mi, ROBOT_ARM, f->body_transparency);
+ glPopMatrix();
+ return count;
+}
+
+static int
+draw_hand_half (ModeInfo *mi, walker *f)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_transparent_component (mi, ROBOT_HAND, f->body_transparency);
+ glPopMatrix();
+ return count;
+}
+
+
+/* rotation of arm: 0-360.
+ openness of fingers: 0.0 - 1.0.
+ */
+static int
+draw_arm (ModeInfo *mi, walker *f, GLfloat left_p, GLfloat rot, GLfloat open)
+{
+ int count = 0;
+ GLfloat arm_x = 4766; /* distance from origin to arm axis */
+ GLfloat arm_y = 12212;
+
+ open *= 5.5; /* scale of finger range */
+
+# ifdef DEBUG
+ if (debug_p) rot = 0;
+# endif
+
+ glPushMatrix();
+
+ if (! left_p)
+ glTranslatef (0, 0, arm_x * 2);
+
+ glTranslatef (0, arm_y, -arm_x); /* move to origin */
+ glRotatef (rot, 1, 0, 0);
+ glTranslatef (0, -arm_y, arm_x); /* move back */
+
+ glFrontFace(GL_CCW);
+ count += draw_arm_half (mi, f);
+
+ glScalef (1, -1, 1);
+ glTranslatef (0, -arm_y * 2, 0);
+ glFrontFace(GL_CW);
+ count += draw_arm_half (mi, f);
+
+ glPushMatrix();
+ glTranslatef (0, 0, -arm_x * 2);
+ glScalef (1, 1, -1);
+ glFrontFace(GL_CCW);
+ count += draw_arm_half (mi, f);
+
+ glScalef (1, -1, 1);
+ glTranslatef (0, -arm_y * 2, 0);
+ glFrontFace(GL_CW);
+ count += draw_arm_half (mi, f);
+ glPopMatrix();
+
+ glTranslatef (0, 0, open);
+ glFrontFace(GL_CW);
+ count += draw_hand_half (mi, f);
+
+ glTranslatef (0, 0, -open);
+ glScalef (1, 1, -1);
+ glTranslatef (0, 0, arm_x * 2);
+ glFrontFace(GL_CCW);
+ glTranslatef (0, 0, open);
+ count += draw_hand_half (mi, f);
+
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_body_half (ModeInfo *mi, walker *f, Bool inside_p)
+{
+ int count = 0;
+ int which = (inside_p ? ROBOT_BODY_2 : ROBOT_BODY_1);
+ glPushMatrix();
+ count += draw_transparent_component (mi, which, f->body_transparency);
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_body (ModeInfo *mi, walker *f, Bool inside_p)
+{
+ int count = 0;
+ glPushMatrix();
+
+ glFrontFace(GL_CCW);
+ count += draw_body_half (mi, f, inside_p);
+
+ glScalef (1, 1, -1);
+ glFrontFace(GL_CW);
+ count += draw_body_half (mi, f, inside_p);
+
+ glPopMatrix();
+
+ return count;
+}
+
+
+static int
+draw_gearbox_half (ModeInfo *mi)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_component (mi, ROBOT_GEARBOX);
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_gearbox (ModeInfo *mi)
+{
+ int count = 0;
+ glPushMatrix();
+
+ glFrontFace(GL_CCW);
+ count += draw_gearbox_half (mi);
+
+ glScalef (1, 1, -1);
+ glFrontFace(GL_CW);
+ count += draw_gearbox_half (mi);
+
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+unit_gear (ModeInfo *mi, GLfloat color[4])
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ gear G = { 0, };
+ gear *g = &G;
+
+ g->r = 0.5;
+ g->nteeth = 16;
+ g->tooth_h = 0.12;
+ g->thickness = 0.32;
+ g->thickness2 = g->thickness * 0.5;
+ g->thickness3 = g->thickness;
+ g->inner_r = g->r * 0.7;
+ g->inner_r2 = g->r * 0.4;
+ g->inner_r3 = g->r * 0.1;
+ g->size = INVOLUTE_LARGE;
+
+ g->color[0] = g->color2[0] = color[0];
+ g->color[1] = g->color2[1] = color[1];
+ g->color[2] = g->color2[2] = color[2];
+ g->color[3] = g->color2[3] = color[3];
+
+ return draw_involute_gear (g, wire);
+}
+
+
+static int
+draw_gear (ModeInfo *mi)
+{
+ int count = 0;
+ GLfloat n = 350;
+ glScalef (n, n, n);
+ count += draw_component (mi, ROBOT_GEAR);
+ return count;
+}
+
+
+static int
+draw_crank (ModeInfo *mi, walker *f, GLfloat rot)
+{
+ int count = 0;
+ GLfloat origin = 12210.0;
+
+ rot = -rot;
+
+ glPushMatrix();
+
+ glTranslatef (0, origin, 0); /* position at origin */
+ glRotatef (rot, 0, 0, 1);
+
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+ count += draw_gear (mi);
+ glPopMatrix();
+
+ glTranslatef (0, -origin, 0); /* move back */
+
+ glFrontFace(GL_CCW);
+ count += draw_component (mi, ROBOT_CRANK);
+
+ glPopMatrix();
+
+ return count;
+}
+
+
+static int
+draw_rotator_half (ModeInfo *mi)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_component (mi, ROBOT_ROTATOR);
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_rotator (ModeInfo *mi, walker *f, GLfloat rot)
+{
+ int count = 0;
+ GLfloat origin = 10093.0;
+
+ glPushMatrix();
+
+ glTranslatef (0, origin, 0); /* position at origin */
+ glRotatef (rot, 0, 0, 1);
+
+ glPushMatrix();
+ glRotatef (90, 1, 0, 0);
+ count += draw_gear (mi);
+ glPopMatrix();
+
+# ifdef DEBUG
+ if (debug_p)
+ {
+ glDisable(GL_LIGHTING);
+ glBegin(GL_LINES);
+ glVertex3f(0, 0, -3000);
+ glVertex3f(0, 0, 3000);
+ glEnd();
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+ }
+# endif
+
+ glTranslatef (0, -origin, 0); /* move back */
+
+ glFrontFace(GL_CCW);
+ count += draw_rotator_half (mi);
+
+ glScalef (1, 1, -1);
+ glFrontFace(GL_CW);
+ glRotatef (180, 0, 0, 1);
+ glTranslatef (0, -origin * 2, 0); /* move back */
+ count += draw_rotator_half (mi);
+
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_leg_half (ModeInfo *mi)
+{
+ int count = 0;
+ glPushMatrix();
+ count += draw_component (mi, ROBOT_LEG);
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_wireframe (ModeInfo *mi, walker *f)
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ int count = 0;
+ GLfloat alpha = 0.6 - f->body_transparency;
+ if (alpha < 0) return 0;
+ alpha *= 0.3;
+ if (!wire) glDisable (GL_LIGHTING);
+ glPushMatrix();
+ count += draw_transparent_component (mi, ROBOT_WIREFRAME, alpha);
+ glPopMatrix();
+ if (!wire) glEnable (GL_LIGHTING);
+ return count;
+}
+
+
+static int
+draw_leg (ModeInfo *mi, GLfloat rot, Bool left_p)
+{
+ int count = 0;
+ GLfloat x, y;
+ GLfloat leg_distance = 9401; /* distance from ground to leg axis */
+ GLfloat rot_distance = 10110; /* distance from ground to rotator axis */
+ GLfloat pin_distance = 14541; /* distance from ground to stop pin */
+ GLfloat orbit_r = rot_distance - leg_distance; /* radius of rotation */
+
+ /* Actually it's the bottom of the pin minus its diameter, or something. */
+ pin_distance -= 590;
+
+ glPushMatrix();
+
+ if (left_p)
+ glRotatef (180, 0, 1, 0);
+
+ if (!left_p) rot = -(rot + 180);
+
+ rot -= 90;
+
+ x = orbit_r * cos (-rot * M_PI / 180);
+ y = orbit_r * sin (-rot * M_PI / 180);
+
+ {
+ /* Rotate the leg by angle B of the right A
+ triangle ABC, where: /:
+ / :
+ A = position of stop pin / :
+ D = position of rotator wheel's axis , - ~ ~ ~ - ,
+ C = D + y , ' / : ' ,
+ B = D + xy (leg's axis) , / : ,
+ , / : ,
+ So: , / : ,
+ H = dist(A,B) , / D ,
+ O = dist(A,C) , / : ,
+ sin(th) = O/H , / : ,
+ th = asin(O/H) B ~ ~ ~ ~ ~ C .
+ , , '
+ ' - , _ _ _ , '
+ */
+ GLfloat Ay = pin_distance - leg_distance;
+ GLfloat Cx = 0, Cy = y;
+ GLfloat Bx = x;
+ GLfloat dBC = Cx - Bx;
+ GLfloat dAC = Cy - Ay;
+ GLfloat dAB = sqrt (dBC*dBC + dAC*dAC);
+ GLfloat th = asin (dAC / dAB);
+ rot = th / (M_PI / 180.0);
+ rot += 90;
+ if (dBC > 0) rot = 360-rot;
+ }
+
+ glTranslatef (0, orbit_r, 0); /* position on rotator axis */
+ glTranslatef (x, y, 0);
+
+ glTranslatef (0, leg_distance, 0); /* position on leg axis */
+ glRotatef(rot, 0, 0, 1);
+ glTranslatef (0, -leg_distance, 0); /* move back */
+
+ glFrontFace(GL_CCW);
+ count += draw_leg_half (mi);
+
+ glScalef (-1, 1, 1);
+ glFrontFace(GL_CW);
+ count += draw_leg_half (mi);
+
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_dome (ModeInfo *mi, walker *f)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int which = ROBOT_DOME;
+ int count = 0;
+ GLfloat n = 8.3;
+ GLfloat trans = f->body_transparency;
+ GLfloat max = 0.7;
+ GLfloat dome_y = 15290;
+
+ if (trans < 0) trans = 0;
+ if (trans > max) trans = max;
+
+ if (!wire) glEnable (GL_BLEND);
+
+ glPushMatrix();
+ glTranslatef (0, dome_y, 0);
+ glScalef (100, 100, 100);
+ glRotatef (90, 1, 0, 0);
+ glTranslatef (0.35, 0, 0);
+ glScalef (n, n, n);
+ glFrontFace(GL_CCW);
+ bp->component_colors[which][3] = trans;
+ count += draw_component (mi, which);
+ glPopMatrix();
+
+ if (!wire) glDisable (GL_BLEND);
+
+ return count;
+}
+
+
+/* Is this robot overlapping any other?
+ */
+static Bool
+collision_p (ModeInfo *mi, walker *w, GLfloat extra_space)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int i;
+ if (MI_COUNT(mi) <= 1) return False;
+
+ for (i = 0; i < MI_COUNT(mi); i++)
+ {
+ walker *w2 = &bp->walkers[i];
+ GLfloat min = 0.75 + extra_space;
+ GLfloat d, dx, dy;
+ if (w == w2) continue;
+ dx = w->x - w2->x;
+ dy = w->y - w2->y;
+ d = (dx*dx + dy*dy);
+ if (d <= min*min) return True;
+ }
+ return False;
+}
+
+
+/* I couldn't figure out a straightforward trig solution to the
+ forward/backward tilting that happens as weight passes from one
+ foot to another, so I just built a tool to eyeball it manually.
+ { vertical_translation, rotation, forward_translation }
+ */
+static const struct { GLfloat up, rot, fwd; } wobble_profile[360] = {
+ { 0.0000, 0.00, 0.0000 }, /* 0 */
+ { 0.0000, -0.01, 0.0025 },
+ { 0.0000, -0.25, 0.0040 },
+ { 0.0000, -0.41, 0.0060 },
+ { 0.0000, -0.62, 0.0080 },
+ { 0.0000, -0.80, 0.0095 },
+ { 0.0000, -0.90, 0.0120 },
+ { 0.0000, -1.10, 0.0135 },
+ { 0.0000, -1.25, 0.0150 },
+ { 0.0000, -1.40, 0.0175 },
+ { 0.0000, -1.50, 0.0195 }, /* 10 */
+ { 0.0000, -1.70, 0.0215 },
+ { 0.0000, -1.80, 0.0230 },
+ { 0.0000, -2.00, 0.0250 },
+ { 0.0000, -2.10, 0.0270 },
+ { -0.0005, -2.30, 0.0290 },
+ { -0.0005, -2.50, 0.0305 },
+ { -0.0005, -2.60, 0.0330 },
+ { -0.0005, -2.70, 0.0330 },
+ { -0.0005, -2.90, 0.0350 },
+ { -0.0005, -3.00, 0.0365 }, /* 20 */
+ { -0.0010, -3.20, 0.0380 },
+ { -0.0005, -3.30, 0.0400 },
+ { -0.0010, -3.50, 0.0420 },
+ { -0.0010, -3.70, 0.0440 },
+ { -0.0010, -3.80, 0.0460 },
+ { -0.0010, -3.90, 0.0470 },
+ { -0.0015, -4.10, 0.0500 },
+ { -0.0015, -4.20, 0.0515 },
+ { -0.0015, -4.40, 0.0535 },
+ { -0.0015, -4.50, 0.0550 }, /* 30 */
+ { -0.0015, -4.60, 0.0565 },
+ { -0.0020, -4.80, 0.0585 },
+ { -0.0020, -5.00, 0.0600 },
+ { -0.0020, -5.10, 0.0620 },
+ { -0.0025, -5.20, 0.0635 },
+ { -0.0025, -5.40, 0.0655 },
+ { -0.0025, -5.50, 0.0675 },
+ { -0.0025, -5.60, 0.0690 },
+ { -0.0030, -5.80, 0.0710 },
+ { -0.0030, -5.90, 0.0720 }, /* 40 */
+ { -0.0030, -6.00, 0.0740 },
+ { -0.0035, -6.10, 0.0760 },
+ { -0.0035, -6.30, 0.0790 },
+ { -0.0040, -6.40, 0.0805 },
+ { -0.0040, -6.50, 0.0820 },
+ { -0.0040, -6.60, 0.0835 },
+ { -0.0045, -6.80, 0.0855 },
+ { -0.0045, -6.90, 0.0870 },
+ { -0.0050, -7.00, 0.0885 },
+ { -0.0050, -7.20, 0.0900 }, /* 50 */
+ { -0.0050, -7.20, 0.0915 },
+ { -0.0055, -7.40, 0.0930 },
+ { -0.0055, -7.50, 0.0945 },
+ { -0.0060, -7.60, 0.0960 },
+ { -0.0060, -7.70, 0.0970 },
+ { -0.0065, -7.80, 0.0985 },
+ { -0.0060, -7.70, 0.0995 },
+ { -0.0060, -7.60, 0.1010 },
+ { -0.0060, -7.50, 0.1020 },
+ { -0.0055, -7.30, 0.1030 }, /* 60 */
+ { -0.0050, -7.10, 0.1040 },
+ { -0.0050, -6.90, 0.1050 },
+ { -0.0045, -6.80, 0.1065 },
+ { -0.0045, -6.50, 0.1075 },
+ { -0.0040, -6.40, 0.1085 },
+ { -0.0040, -6.20, 0.1095 },
+ { -0.0040, -6.00, 0.1105 },
+ { -0.0035, -5.80, 0.1115 },
+ { -0.0030, -5.50, 0.1125 },
+ { -0.0030, -5.40, 0.1135 }, /* 70 */
+ { -0.0030, -5.10, 0.1145 },
+ { -0.0030, -4.90, 0.1150 },
+ { -0.0025, -4.70, 0.1160 },
+ { -0.0025, -4.40, 0.1165 },
+ { -0.0025, -4.20, 0.1175 },
+ { -0.0020, -3.90, 0.1180 },
+ { -0.0020, -3.70, 0.1185 },
+ { -0.0020, -3.40, 0.1190 },
+ { -0.0020, -3.10, 0.1195 },
+ { -0.0020, -2.90, 0.1200 }, /* 80 */
+ { -0.0015, -2.60, 0.1200 },
+ { -0.0015, -2.30, 0.1205 },
+ { -0.0015, -2.00, 0.1210 },
+ { -0.0015, -1.80, 0.1215 },
+ { -0.0015, -1.50, 0.1215 },
+ { -0.0015, -1.20, 0.1215 },
+ { -0.0015, -0.90, 0.1215 },
+ { -0.0015, -0.60, 0.1215 },
+ { -0.0015, -0.30, 0.1215 },
+ { -0.0010, 0.00, 0.1215 }, /* 90 */
+ { -0.0010, 0.30, 0.1215 },
+ { -0.0010, 0.60, 0.1215 },
+ { -0.0010, 0.90, 0.1215 },
+ { -0.0010, 1.20, 0.1215 },
+ { -0.0015, 1.40, 0.1215 },
+ { -0.0015, 1.70, 0.1215 },
+ { -0.0015, 2.00, 0.1215 },
+ { -0.0015, 2.30, 0.1215 },
+ { -0.0015, 2.60, 0.1215 },
+ { -0.0015, 2.80, 0.1220 }, /* 100 */
+ { -0.0020, 3.10, 0.1225 },
+ { -0.0020, 3.30, 0.1230 },
+ { -0.0020, 3.60, 0.1235 },
+ { -0.0020, 3.90, 0.1240 },
+ { -0.0025, 4.10, 0.1245 },
+ { -0.0025, 4.40, 0.1250 },
+ { -0.0025, 4.60, 0.1260 },
+ { -0.0025, 4.90, 0.1265 },
+ { -0.0030, 5.10, 0.1275 },
+ { -0.0030, 5.30, 0.1285 }, /* 110 */
+ { -0.0035, 5.60, 0.1290 },
+ { -0.0035, 5.80, 0.1300 },
+ { -0.0035, 6.00, 0.1310 },
+ { -0.0040, 6.20, 0.1325 },
+ { -0.0040, 6.40, 0.1335 },
+ { -0.0045, 6.60, 0.1345 },
+ { -0.0045, 6.70, 0.1355 },
+ { -0.0050, 6.90, 0.1365 },
+ { -0.0050, 7.10, 0.1375 },
+ { -0.0055, 7.30, 0.1390 }, /* 120 */
+ { -0.0055, 7.40, 0.1400 },
+ { -0.0060, 7.50, 0.1415 },
+ { -0.0065, 8.00, 0.1425 },
+ { -0.0065, 7.80, 0.1440 },
+ { -0.0060, 7.80, 0.1455 },
+ { -0.0060, 7.60, 0.1470 },
+ { -0.0055, 7.50, 0.1485 },
+ { -0.0055, 7.40, 0.1500 },
+ { -0.0050, 7.30, 0.1515 },
+ { -0.0050, 7.20, 0.1530 }, /* 130 */
+ { -0.0050, 7.00, 0.1545 },
+ { -0.0045, 6.90, 0.1560 },
+ { -0.0045, 6.80, 0.1575 },
+ { -0.0040, 6.70, 0.1590 },
+ { -0.0040, 6.50, 0.1605 },
+ { -0.0040, 6.40, 0.1625 },
+ { -0.0035, 6.30, 0.1640 },
+ { -0.0035, 6.10, 0.1655 },
+ { -0.0030, 6.10, 0.1670 },
+ { -0.0030, 5.90, 0.1690 }, /* 140 */
+ { -0.0030, 5.70, 0.1705 },
+ { -0.0025, 5.70, 0.1720 },
+ { -0.0025, 5.50, 0.1740 },
+ { -0.0025, 5.40, 0.1755 },
+ { -0.0025, 5.20, 0.1775 },
+ { -0.0020, 5.10, 0.1790 },
+ { -0.0020, 5.00, 0.1810 },
+ { -0.0020, 4.80, 0.1825 },
+ { -0.0015, 4.70, 0.1840 },
+ { -0.0015, 4.60, 0.1860 }, /* 150 */
+ { -0.0015, 4.40, 0.1880 },
+ { -0.0015, 4.20, 0.1900 },
+ { -0.0015, 4.10, 0.1915 },
+ { -0.0010, 4.00, 0.1935 },
+ { -0.0010, 3.80, 0.1955 },
+ { -0.0010, 3.70, 0.1970 },
+ { -0.0010, 3.50, 0.1990 },
+ { -0.0005, 3.40, 0.2010 },
+ { -0.0010, 3.20, 0.2025 },
+ { -0.0005, 3.10, 0.2045 }, /* 160 */
+ { -0.0005, 2.90, 0.2065 },
+ { -0.0005, 2.80, 0.2085 },
+ { -0.0005, 2.60, 0.2105 },
+ { -0.0005, 2.50, 0.2120 },
+ { -0.0005, 2.30, 0.2140 },
+ { -0.0005, 2.20, 0.2160 },
+ { -0.0005, 2.00, 0.2180 },
+ { 0.0000, 1.90, 0.2200 },
+ { 0.0000, 1.70, 0.2220 },
+ { 0.0000, 1.60, 0.2235 }, /* 170 */
+ { 0.0000, 1.40, 0.2255 },
+ { 0.0000, 1.30, 0.2275 },
+ { 0.0000, 1.10, 0.2295 },
+ { 0.0000, 0.90, 0.2315 },
+ { 0.0000, 0.80, 0.2335 },
+ { 0.0000, 0.60, 0.2355 },
+ { 0.0000, 0.50, 0.2375 },
+ { 0.0000, 0.30, 0.2395 },
+ { 0.0000, 0.10, 0.2415 },
+ { 0.0000, 0.00, 0.2430 }, /* 180 */
+ { 0.0000, -0.10, 0.2450 },
+ { 0.0000, -0.30, 0.2470 },
+ { 0.0000, -0.40, 0.2490 },
+ { 0.0000, -0.60, 0.2510 },
+ { 0.0000, -0.80, 0.2530 },
+ { 0.0000, -0.90, 0.2550 },
+ { 0.0000, -1.10, 0.2570 },
+ { 0.0000, -1.20, 0.2590 },
+ { 0.0000, -1.40, 0.2610 },
+ { 0.0000, -1.50, 0.2625 }, /* 190 */
+ { 0.0000, -1.70, 0.2645 },
+ { 0.0000, -1.80, 0.2665 },
+ { -0.0005, -2.00, 0.2685 },
+ { -0.0005, -2.10, 0.2705 },
+ { -0.0005, -2.30, 0.2725 },
+ { -0.0005, -2.40, 0.2740 },
+ { -0.0005, -2.60, 0.2760 },
+ { -0.0005, -2.80, 0.2780 },
+ { -0.0005, -2.90, 0.2800 },
+ { -0.0005, -3.00, 0.2820 }, /* 200 */
+ { -0.0010, -3.20, 0.2835 },
+ { -0.0005, -3.30, 0.2855 },
+ { -0.0010, -3.50, 0.2875 },
+ { -0.0010, -3.70, 0.2895 },
+ { -0.0010, -3.80, 0.2910 },
+ { -0.0010, -3.90, 0.2930 },
+ { -0.0010, -4.00, 0.2950 },
+ { -0.0015, -4.20, 0.2965 },
+ { -0.0015, -4.40, 0.2985 },
+ { -0.0015, -4.50, 0.3000 }, /* 210 */
+ { -0.0015, -4.60, 0.3020 },
+ { -0.0020, -4.80, 0.3040 },
+ { -0.0020, -5.00, 0.3055 },
+ { -0.0020, -5.00, 0.3075 },
+ { -0.0025, -5.20, 0.3090 },
+ { -0.0025, -5.30, 0.3110 },
+ { -0.0025, -5.50, 0.3125 },
+ { -0.0025, -5.60, 0.3140 },
+ { -0.0030, -5.70, 0.3160 },
+ { -0.0030, -5.90, 0.3175 }, /* 220 */
+ { -0.0030, -6.00, 0.3190 },
+ { -0.0035, -6.10, 0.3210 },
+ { -0.0035, -6.30, 0.3225 },
+ { -0.0040, -6.40, 0.3240 },
+ { -0.0040, -6.50, 0.3255 },
+ { -0.0040, -6.60, 0.3270 },
+ { -0.0045, -6.80, 0.3290 },
+ { -0.0045, -6.90, 0.3305 },
+ { -0.0050, -7.00, 0.3320 },
+ { -0.0050, -7.20, 0.3335 }, /* 230 */
+ { -0.0050, -7.20, 0.3350 },
+ { -0.0055, -7.40, 0.3365 },
+ { -0.0055, -7.50, 0.3380 },
+ { -0.0060, -7.60, 0.3390 },
+ { -0.0060, -7.70, 0.3405 },
+ { -0.0065, -7.80, 0.3420 },
+ { -0.0060, -7.60, 0.3425 },
+ { -0.0060, -7.50, 0.3440 },
+ { -0.0055, -7.40, 0.3455 },
+ { -0.0055, -7.20, 0.3470 }, /* 240 */
+ { -0.0050, -7.10, 0.3480 },
+ { -0.0050, -6.90, 0.3490 },
+ { -0.0045, -6.80, 0.3500 },
+ { -0.0045, -6.50, 0.3510 },
+ { -0.0040, -6.40, 0.3520 },
+ { -0.0040, -6.10, 0.3535 },
+ { -0.0035, -6.00, 0.3545 },
+ { -0.0035, -5.80, 0.3550 },
+ { -0.0030, -5.50, 0.3560 },
+ { -0.0030, -5.30, 0.3570 }, /* 250 */
+ { -0.0030, -5.10, 0.3580 },
+ { -0.0030, -4.90, 0.3585 },
+ { -0.0025, -4.70, 0.3595 },
+ { -0.0025, -4.40, 0.3600 },
+ { -0.0020, -4.10, 0.3610 },
+ { -0.0020, -3.90, 0.3615 },
+ { -0.0020, -3.70, 0.3620 },
+ { -0.0020, -3.30, 0.3625 },
+ { -0.0020, -3.10, 0.3630 },
+ { -0.0015, -2.80, 0.3635 }, /* 260 */
+ { -0.0015, -2.60, 0.3640 },
+ { -0.0015, -2.40, 0.3645 },
+ { -0.0015, -2.00, 0.3645 },
+ { -0.0015, -1.80, 0.3650 },
+ { -0.0015, -1.40, 0.3650 },
+ { -0.0015, -1.20, 0.3655 },
+ { -0.0010, -0.90, 0.3655 },
+ { -0.0010, -0.60, 0.3655 },
+ { -0.0010, -0.30, 0.3655 },
+ { -0.0010, 0.00, 0.3655 }, /* 270 */
+ { -0.0010, 0.30, 0.3655 },
+ { -0.0010, 0.60, 0.3655 },
+ { -0.0010, 0.90, 0.3655 },
+ { -0.0015, 1.10, 0.3655 },
+ { -0.0015, 1.40, 0.3655 },
+ { -0.0015, 1.70, 0.3655 },
+ { -0.0015, 1.90, 0.3660 },
+ { -0.0015, 2.20, 0.3660 },
+ { -0.0015, 2.50, 0.3665 },
+ { -0.0015, 2.80, 0.3670 }, /* 280 */
+ { -0.0015, 3.10, 0.3675 },
+ { -0.0020, 3.40, 0.3680 },
+ { -0.0020, 3.70, 0.3685 },
+ { -0.0020, 3.90, 0.3690 },
+ { -0.0025, 4.10, 0.3695 },
+ { -0.0025, 4.40, 0.3700 },
+ { -0.0025, 4.60, 0.3710 },
+ { -0.0025, 4.80, 0.3715 },
+ { -0.0025, 5.00, 0.3730 },
+ { -0.0030, 5.40, 0.3735 }, /* 290 */
+ { -0.0035, 5.60, 0.3745 },
+ { -0.0035, 5.80, 0.3755 },
+ { -0.0035, 6.00, 0.3765 },
+ { -0.0040, 6.20, 0.3775 },
+ { -0.0045, 6.50, 0.3785 },
+ { -0.0045, 6.60, 0.3795 },
+ { -0.0045, 6.80, 0.3805 },
+ { -0.0050, 7.00, 0.3815 },
+ { -0.0050, 7.10, 0.3825 },
+ { -0.0055, 7.20, 0.3840 }, /* 300 */
+ { -0.0055, 7.40, 0.3850 },
+ { -0.0060, 7.50, 0.3865 },
+ { -0.0060, 7.70, 0.3875 },
+ { -0.0065, 7.80, 0.3890 },
+ { -0.0060, 7.80, 0.3900 },
+ { -0.0060, 7.60, 0.3915 },
+ { -0.0055, 7.60, 0.3930 },
+ { -0.0055, 7.40, 0.3945 },
+ { -0.0050, 7.30, 0.3960 },
+ { -0.0050, 7.20, 0.3975 }, /* 310 */
+ { -0.0050, 7.00, 0.3990 },
+ { -0.0045, 6.90, 0.4005 },
+ { -0.0045, 6.80, 0.4020 },
+ { -0.0040, 6.70, 0.4035 },
+ { -0.0040, 6.60, 0.4050 },
+ { -0.0040, 6.40, 0.4065 },
+ { -0.0035, 6.30, 0.4085 },
+ { -0.0035, 6.20, 0.4100 },
+ { -0.0030, 6.10, 0.4115 },
+ { -0.0030, 5.90, 0.4130 }, /* 320 */
+ { -0.0030, 5.80, 0.4150 },
+ { -0.0025, 5.70, 0.4165 },
+ { -0.0025, 5.50, 0.4180 },
+ { -0.0025, 5.40, 0.4200 },
+ { -0.0025, 5.20, 0.4215 },
+ { -0.0020, 5.10, 0.4235 },
+ { -0.0020, 5.00, 0.4250 },
+ { -0.0020, 4.80, 0.4270 },
+ { -0.0015, 4.70, 0.4285 },
+ { -0.0015, 4.60, 0.4305 }, /* 330 */
+ { -0.0015, 4.40, 0.4325 },
+ { -0.0015, 4.20, 0.4340 },
+ { -0.0015, 4.10, 0.4360 },
+ { -0.0010, 4.00, 0.4375 },
+ { -0.0010, 3.80, 0.4395 },
+ { -0.0010, 3.70, 0.4415 },
+ { -0.0010, 3.50, 0.4435 },
+ { -0.0005, 3.40, 0.4450 },
+ { -0.0010, 3.20, 0.4470 },
+ { -0.0005, 3.10, 0.4490 }, /* 340 */
+ { -0.0005, 2.90, 0.4510 },
+ { -0.0005, 2.80, 0.4525 },
+ { -0.0005, 2.60, 0.4545 },
+ { -0.0005, 2.40, 0.4565 },
+ { -0.0005, 2.30, 0.4585 },
+ { -0.0005, 2.20, 0.4605 },
+ { -0.0005, 2.00, 0.4620 },
+ { 0.0000, 1.90, 0.4640 },
+ { 0.0000, 1.70, 0.4660 },
+ { 0.0000, 1.60, 0.4680 }, /* 350 */
+ { 0.0000, 1.40, 0.4700 },
+ { 0.0000, 1.20, 0.4720 },
+ { 0.0000, 1.10, 0.4740 },
+ { 0.0000, 0.90, 0.4760 },
+ { 0.0000, 0.80, 0.4780 },
+ { 0.0000, 0.60, 0.4795 },
+ { 0.0000, 0.50, 0.4815 },
+ { 0.0000, 0.30, 0.4835 },
+ { 0.0000, 0.20, 0.4855 }, /* 359 */
+};
+
+
+/* Turn the crank by 1 degree, which moves the legs and displaces the robot.
+ */
+static void
+tick_walker (ModeInfo *mi, walker *f)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int deg;
+ GLfloat th, fwd;
+
+ if (bp->button_down_p) return;
+
+ f->crank_rot++;
+ deg = ((int) (f->crank_rot + 0.5)) % 360;
+
+# ifdef DEBUG
+ if (debug_p)
+ {
+ f->crank_rot = bp->debug_x;
+ f->pitch = wobble_profile[deg].rot;
+ f->z = wobble_profile[deg].up;
+ }
+ else
+# endif /* DEBUG */
+
+ if (deg == 0)
+ {
+ fwd = wobble_profile[deg].fwd;
+ f->pitch = wobble_profile[deg].rot;
+ f->z = wobble_profile[deg].up;
+ }
+ else
+ {
+ fwd = (wobble_profile[deg].fwd - wobble_profile[deg-1].fwd);
+ f->pitch += (wobble_profile[deg].rot - wobble_profile[deg-1].rot);
+ f->z += (wobble_profile[deg].up - wobble_profile[deg-1].up);
+ }
+
+ /* Lean slightly toward the foot that is raised off the ground. */
+ f->roll = -2.5 * sin ((deg - 90) * M_PI / 180);
+
+ if (!(random() % 10))
+ {
+ GLfloat b = f->balance / 10.0;
+ int s = (f->balance > 0 ? 1 : -1);
+ if (s < 0) b = -b;
+ f->facing += s * frand (b);
+ }
+
+# ifdef DEBUG
+ if (debug_p) fwd = 0;
+# endif
+
+ {
+ GLfloat ox = f->x;
+ GLfloat oy = f->y;
+ th = f->facing * M_PI / 180.0;
+ f->x += fwd * cos (th);
+ f->y += fwd * sin (th);
+
+ /* If moving this robot would collide with another, undo the move,
+ recoil, and randomly turn.
+ */
+ if (collision_p (mi, f, 0))
+ {
+ fwd *= -1.5;
+ f->x = ox + fwd * cos (th);
+ f->y = oy + fwd * sin (th);
+ f->facing += frand(10) - 5;
+ if (! random() % 30)
+ f->facing += frand(90) - 45;
+ }
+ }
+
+
+ if (!do_fade ||
+ opacity > 0.5) /* Don't bother fading if it's already transparent. */
+ {
+ GLfloat tick = 0.002;
+ GLfloat linger = 3;
+
+ /* If we're not fading, maybe start fading out. */
+ if (f->fading_p == 0 && ! (random() % 40000))
+ f->fading_p = -1;
+
+# ifdef DEBUG
+ if (debug_p) f->fading_p = 0;
+# endif
+
+ if (f->fading_p < 0)
+ {
+ f->body_transparency -= tick;
+ if (f->body_transparency <= -linger)
+ {
+ f->body_transparency = -linger;
+ f->fading_p = 1;
+ }
+ }
+ else if (f->fading_p > 0)
+ {
+ f->body_transparency += tick;
+ if (f->body_transparency >= opacity)
+ {
+ f->body_transparency = opacity;
+ f->fading_p = 0;
+ }
+ }
+ }
+}
+
+
+static void
+init_walker (ModeInfo *mi, walker *f)
+{
+ int i, start_tick = random() % 360;
+
+ f->crank_rot = 0;
+ f->pitch = wobble_profile[0].rot;
+ f->z = wobble_profile[0].up;
+
+ f->body_transparency = opacity;
+
+ f->hand_rot[0] = frand(180);
+ f->hand_pos[0] = 0.6 + frand(0.4);
+ f->hand_rot[1] = 180 - f->hand_rot[0];
+ f->hand_pos[1] = f->hand_pos[0];
+
+ if (! (random() % 30)) f->hand_rot[1] += frand(10);
+ if (! (random() % 30)) f->hand_pos[1] = 0.6 + frand(0.4);
+
+ f->facing = frand(360);
+ f->balance = frand(10) - 5;
+
+ if (MI_COUNT(mi) == 1)
+ f->speed = 1.0;
+ else
+ f->speed = 0.6 + frand(0.8);
+
+# ifdef DEBUG
+ if (debug_p)
+ {
+ start_tick = 0;
+ f->facing = 0;
+ f->balance = 0;
+ }
+# endif
+
+ for (i = 0; i < start_tick; i++)
+ tick_walker (mi, f);
+
+ /* Place them randomly, but non-overlapping. */
+ for (i = 0; i < 1000; i++)
+ {
+ GLfloat range = 10;
+ if (MI_COUNT(mi) > 10) range += MI_COUNT(mi) / 10.0;
+ f->x = frand(range) - range/2;
+ f->y = frand(range) - range/2;
+ if (! collision_p (mi, f, 1.5))
+ break;
+ }
+
+# ifdef DEBUG
+ if (debug_p) f->x = f->y = 0;
+# endif
+
+}
+
+
+/* Draw a robot standing in the right place, 1 unit tall.
+ */
+static int
+draw_walker (ModeInfo *mi, walker *f, const char *tag)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ int count = 0;
+ glPushMatrix();
+
+ glTranslatef (f->y, f->z, f->x);
+
+ {
+ GLfloat n = 0.01;
+ glScalef (n, n, n);
+ }
+
+ glRotatef (90, 0, 1, 0);
+ glRotatef (f->facing, 0, 1, 0);
+ glRotatef (f->pitch, 0, 0, 1);
+ glRotatef (f->roll, 1, 0, 0);
+
+ {
+ GLfloat n = 0.00484; /* make it 1 unit tall */
+ glScalef (n, n, n);
+ }
+
+ count += draw_gearbox (mi);
+ count += draw_crank (mi, f, f->crank_rot);
+ count += draw_rotator (mi, f, f->crank_rot);
+ count += draw_leg (mi, f->crank_rot, False);
+ count += draw_leg (mi, f->crank_rot, True);
+ count += draw_wireframe (mi, f);
+
+ /* Draw these last, and outer shell first, to make transparency work.
+ The order in which things hit the depth buffer matters.
+ */
+ if (f->body_transparency >= 0.001)
+ {
+ count += draw_arm (mi, f, True, f->hand_rot[0], f->hand_pos[0]);
+ count += draw_arm (mi, f, False, f->hand_rot[1], f->hand_pos[1]);
+ count += draw_body (mi, f, False);
+ count += draw_body (mi, f, True);
+ count += draw_dome (mi, f);
+ }
+
+ if (tag) /* For debugging depth sorting: label each robot */
+ {
+ GLfloat m[4][4];
+ if (! wire) glDisable (GL_DEPTH_TEST);
+ glColor3f (1, 1, 1);
+ glPushMatrix();
+
+ /* Billboard rotation */
+ glGetFloatv (GL_MODELVIEW_MATRIX, &m[0][0]);
+ m[0][0] = 1; m[1][0] = 0; m[2][0] = 0;
+ m[0][1] = 0; m[1][1] = 1; m[2][1] = 0;
+ m[0][2] = 0; m[1][2] = 0; m[2][2] = 1;
+ glLoadIdentity();
+ glMultMatrixf (&m[0][0]);
+ glScalef (0.04, 0.04, 0.04);
+
+ print_texture_string (bp->font_data, tag);
+ glPopMatrix();
+ if (! wire) glEnable (GL_DEPTH_TEST);
+ }
+
+ glPopMatrix();
+ return count;
+}
+
+
+static int
+draw_ground (ModeInfo *mi, GLfloat color[4])
+{
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat i, j, k;
+
+ /* When using fog, iOS apparently doesn't like lines or quads that are
+ really long, and extend very far outside of the scene. Maybe? If the
+ length of the line (cells * cell_size) is greater than 25 or so, lines
+ that are oriented steeply away from the viewer tend to disappear
+ (whether implemented as GL_LINES or as GL_QUADS).
+
+ So we do a bunch of smaller grids instead of one big one.
+ */
+ int cells = 30;
+ GLfloat cell_size = 0.8;
+ int points = 0;
+ int grids = 12;
+
+# ifdef DEBUG
+ if (debug_p) return 0;
+# endif
+
+ glPushMatrix();
+
+ glRotatef (frand(90), 0, 0, 1);
+
+ if (!wire)
+ {
+ GLfloat fog_color[4] = { 0, 0, 0, 1 };
+
+ glLineWidth (4);
+ glEnable (GL_LINE_SMOOTH);
+ glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_BLEND);
+
+ glFogi (GL_FOG_MODE, GL_EXP2);
+ glFogfv (GL_FOG_COLOR, fog_color);
+ glFogf (GL_FOG_DENSITY, 0.015);
+ glFogf (GL_FOG_START, -cells/2 * cell_size * grids);
+ glEnable (GL_FOG);
+ }
+
+ glColor4fv (color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+
+ glTranslatef (-cells * grids * cell_size / 2,
+ -cells * grids * cell_size / 2, 0);
+
+ for (j = 0; j < grids; j++)
+ {
+ glPushMatrix();
+ for (k = 0; k < grids; k++)
+ {
+ glBegin (GL_LINES);
+ for (i = -cells/2; i < cells/2; i++)
+ {
+ GLfloat a = i * cell_size;
+ GLfloat b = cells/2 * cell_size;
+ glVertex3f (a, -b, 0); glVertex3f (a, b, 0); points++;
+ glVertex3f (-b, a, 0); glVertex3f (b, a, 0); points++;
+ }
+ glEnd();
+ glTranslatef (cells * cell_size, 0, 0);
+ }
+ glPopMatrix();
+ glTranslatef (0, cells * cell_size, 0);
+ }
+
+ if (!wire)
+ {
+ glDisable (GL_LINE_SMOOTH);
+ glDisable (GL_BLEND);
+ glDisable (GL_FOG);
+ }
+
+ glPopMatrix();
+
+ return points;
+}
+
+
+/* If the target robot (robot #0) has moved too far from the point at which
+ the camera is aimed, then initiate an animation to move the observer to
+ the new spot.
+
+ Because of the jerky forward motion of the robots, just always focusing
+ on the center of the robot looks terrible, so instead we let them walk
+ a little out of the center of the frame, and then catch up.
+ */
+static void
+look_at_center (ModeInfo *mi)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ GLfloat target_x = bp->walkers[0].x;
+ GLfloat target_y = bp->walkers[0].y;
+ GLfloat target_z = 0.8; /* Look a little bit above his head */
+ GLfloat max_dist = 2.5 / size;
+
+# ifdef DEBUG
+ if (debug_p) return;
+# endif
+
+ if (max_dist < 1) max_dist = 1;
+ if (max_dist > 10) max_dist = 10;
+
+ if (bp->camera_tracking_p)
+ {
+ GLfloat r = (1 - cos (bp->tracking_ratio * M_PI)) / 2;
+ bp->looking_x = bp->olooking_x + r * (target_x - bp->olooking_x);
+ bp->looking_y = bp->olooking_y + r * (target_y - bp->olooking_y);
+ bp->looking_z = bp->olooking_z + r * (target_z - bp->olooking_z);
+
+ bp->tracking_ratio += 0.02;
+ if (bp->tracking_ratio >= 1)
+ {
+ bp->camera_tracking_p = False;
+ bp->olooking_x = bp->looking_x;
+ bp->olooking_y = bp->looking_y;
+ bp->olooking_z = bp->looking_z;
+ }
+ }
+
+ if (! bp->camera_tracking_p)
+ {
+ GLfloat dist =
+ sqrt ((target_x - bp->looking_x) * (target_x - bp->looking_x) +
+ (target_y - bp->looking_y) * (target_y - bp->looking_y) +
+ (target_z - bp->looking_z) * (target_z - bp->looking_z));
+
+ if (dist > max_dist)
+ {
+ bp->camera_tracking_p = True;
+ bp->tracking_ratio = 0;
+ bp->olooking_x = bp->looking_x;
+ bp->olooking_y = bp->looking_y;
+ bp->olooking_z = bp->looking_z;
+ }
+ }
+
+ glTranslatef (-bp->looking_y, -bp->looking_z, -bp->looking_x);
+
+# if 0 /* DEBUG */
+ {
+ GLfloat th;
+ glPushMatrix();
+ glColor3f(1, 0, 0);
+ glTranslatef (target_y, target_z, target_x);
+ glBegin(GL_LINES);
+ glVertex3f(0, -target_z, 0);
+ glVertex3f(0, 1, 0);
+ glVertex3f(-0.1, 0, -0.1);
+ glVertex3f( 0.1, 0, 0.1);
+ glVertex3f(-0.1, 0, 0.1);
+ glVertex3f( 0.1, 0, -0.1);
+ glEnd();
+ glPopMatrix();
+
+ glPushMatrix();
+ glColor3f(0, 1, 0);
+ glTranslatef (bp->looking_y, bp->looking_z, bp->looking_x);
+ glRotatef (30, 0, 1, 0);
+ glBegin(GL_LINES);
+ glVertex3f(0, -bp->looking_z, 0);
+ glVertex3f(0, 1, 0);
+ glVertex3f(-0.1, 0, -0.1);
+ glVertex3f( 0.1, 0, 0.1);
+ glVertex3f(-0.1, 0, 0.1);
+ glVertex3f( 0.1, 0, -0.1);
+ glEnd();
+ glPopMatrix();
+
+ glPushMatrix();
+ glColor3f(0, 0, 1);
+ glTranslatef (bp->olooking_y, bp->olooking_z, bp->olooking_x);
+ glRotatef (60, 0, 1, 0);
+ glBegin(GL_LINES);
+ glVertex3f(0, -bp->olooking_z, 0);
+ glVertex3f(0, 1, 0);
+ glVertex3f(-0.1, 0, -0.1);
+ glVertex3f( 0.1, 0, 0.1);
+ glVertex3f(-0.1, 0, 0.1);
+ glVertex3f( 0.1, 0, -0.1);
+ glEnd();
+
+ glTranslatef (0, -bp->olooking_z, 0);
+ glBegin (GL_LINE_LOOP);
+ for (th = 0; th < M_PI * 2; th += 0.1)
+ glVertex3f (bp->olooking_y + max_dist * cos(th), 0,
+ bp->olooking_x + max_dist * sin(th));
+ glEnd();
+ glPopMatrix();
+ }
+# endif /* DEBUG */
+}
+
+
+#ifdef WORDBUBBLES
+
+/* Draw a cartoony word bubble.
+ W and H are the inside size, for text.
+ Origin is at bottom left.
+ The bubble frame and arrow are outside that.
+ */
+static void
+draw_bubble_box (ModeInfo *mi,
+ GLfloat width, GLfloat height,
+ GLfloat corner_radius,
+ GLfloat arrow_h, GLfloat arrow_x,
+ GLfloat fg[4], GLfloat bg[4])
+{
+
+# define CORNER_POINTS 16
+ GLfloat outline_points[ (CORNER_POINTS + 2) * 4 + 8 ][3];
+ int i = 0;
+ GLfloat th;
+ GLfloat tick = M_PI / 2 / CORNER_POINTS;
+
+ GLfloat arrow_w = arrow_h / 2;
+ GLfloat arrow_x2 = MAX(0, MIN(width - arrow_w, arrow_x));
+
+ GLfloat w2 = MAX(arrow_w, width - corner_radius * 1.10);
+ GLfloat h2 = MAX(0, height - corner_radius * 1.28);
+ GLfloat x2 = (width - w2) / 2;
+ GLfloat y2 = (height - h2) / 2;
+ /* A B C D */
+ GLfloat xa = x2 -corner_radius; /* E _------------_ */
+ GLfloat xb = x2; /* D /__| |__\ */
+ GLfloat xc = xb + w2; /* | | | | */
+ GLfloat xd = xc + corner_radius; /* C |__| EF |__| */
+ GLfloat xe = xb + arrow_x2; /* B \_|_________|_/ */
+ GLfloat xf = xe + arrow_w; /* A \| */
+
+ GLfloat ya = y2 - (corner_radius + arrow_h);
+ GLfloat yb = y2 - corner_radius;
+ GLfloat yc = y2;
+ GLfloat yd = yc + h2;
+ GLfloat ye = yd + corner_radius;
+
+ GLfloat z = 0;
+
+ /* Let the lines take precedence over the fills. */
+ glEnable (GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset (1.0, 1.0);
+
+ glColor4fv (bg);
+ glFrontFace(GL_CW);
+
+ /* top left corner */
+
+ glBegin (GL_TRIANGLE_FAN);
+ glVertex3f (xb, yd, 0);
+ for (th = 0; th < M_PI/2 + tick; th += tick)
+ {
+ GLfloat x = xb - corner_radius * cos(th);
+ GLfloat y = yd + corner_radius * sin(th);
+ glVertex3f (x, y, z);
+ outline_points[i][0] = x;
+ outline_points[i][1] = y;
+ outline_points[i][2] = z;
+ i++;
+ }
+ glEnd();
+
+ /* top edge */
+ outline_points[i][0] = xc;
+ outline_points[i][1] = ye;
+ outline_points[i][2] = z;
+ i++;
+
+ /* top right corner */
+
+ glBegin (GL_TRIANGLE_FAN);
+ glVertex3f (xc, yd, 0);
+ for (th = M_PI/2; th > -tick; th -= tick)
+ {
+ GLfloat x = xc + corner_radius * cos(th);
+ GLfloat y = yd + corner_radius * sin(th);
+ glVertex3f (x, y, z);
+ outline_points[i][0] = x;
+ outline_points[i][1] = y;
+ outline_points[i][2] = z;
+ i++;
+ }
+ glEnd();
+
+ /* right edge */
+ outline_points[i][0] = xd;
+ outline_points[i][1] = yc;
+ outline_points[i][2] = z;
+ i++;
+
+ /* bottom right corner */
+
+ glBegin (GL_TRIANGLE_FAN);
+ glVertex3f (xc, yc, 0);
+ for (th = 0; th < M_PI/2 + tick; th += tick)
+ {
+ GLfloat x = xc + corner_radius * cos(th);
+ GLfloat y = yc - corner_radius * sin(th);
+ glVertex3f (x, y, z);
+ outline_points[i][0] = x;
+ outline_points[i][1] = y;
+ outline_points[i][2] = z;
+ i++;
+ }
+ glEnd();
+
+ /* bottom right edge */
+ outline_points[i][0] = xf;
+ outline_points[i][1] = yb;
+ outline_points[i][2] = z;
+ i++;
+
+ /* arrow triangle */
+ glFrontFace(GL_CW);
+ glBegin (GL_TRIANGLES);
+
+ /* bottom arrow point */
+ outline_points[i][0] = xf;
+ outline_points[i][1] = yb;
+ outline_points[i][2] = z;
+ glVertex3f (outline_points[i][0],
+ outline_points[i][1],
+ outline_points[i][2]);
+ i++;
+
+ /* bottom right edge */
+ outline_points[i][0] = xf;
+ outline_points[i][1] = ya;
+ outline_points[i][2] = z;
+ glVertex3f (outline_points[i][0],
+ outline_points[i][1],
+ outline_points[i][2]);
+ i++;
+
+ outline_points[i][0] = xe;
+ outline_points[i][1] = yb;
+ outline_points[i][2] = z;
+ glVertex3f (outline_points[i][0],
+ outline_points[i][1],
+ outline_points[i][2]);
+ i++;
+ glEnd();
+
+
+ /* bottom left corner */
+
+ glBegin (GL_TRIANGLE_FAN);
+ glVertex3f (xb, yc, 0);
+ for (th = M_PI/2; th > -tick; th -= tick)
+ {
+ GLfloat x = xb - corner_radius * cos(th);
+ GLfloat y = yc - corner_radius * sin(th);
+ glVertex3f (x, y, z);
+ outline_points[i][0] = x;
+ outline_points[i][1] = y;
+ outline_points[i][2] = z;
+ i++;
+ }
+ glEnd();
+
+ glFrontFace(GL_CCW);
+
+ /* left edge */
+ outline_points[i][0] = xa;
+ outline_points[i][1] = yd;
+ outline_points[i][2] = z;
+ i++;
+
+ glFrontFace(GL_CW);
+ glBegin (GL_QUADS);
+ /* left box */
+ glVertex3f (xa, yd, z);
+ glVertex3f (xb, yd, z);
+ glVertex3f (xb, yc, z);
+ glVertex3f (xa, yc, z);
+
+ /* center box */
+ glVertex3f (xb, ye, z);
+ glVertex3f (xc, ye, z);
+ glVertex3f (xc, yb, z);
+ glVertex3f (xb, yb, z);
+
+ /* right box */
+ glVertex3f (xc, yd, z);
+ glVertex3f (xd, yd, z);
+ glVertex3f (xd, yc, z);
+ glVertex3f (xc, yc, z);
+
+ glEnd();
+
+ glLineWidth (2.8);
+ glColor4fv (fg);
+
+ glBegin (GL_LINE_LOOP);
+ while (i > 0)
+ glVertex3fv (outline_points[--i]);
+ glEnd();
+
+ glDisable (GL_POLYGON_OFFSET_FILL);
+}
+
+
+static void
+draw_label (ModeInfo *mi, walker *f, GLfloat y_off, GLfloat scale,
+ const char *label)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int wire = MI_IS_WIREFRAME(mi);
+ GLfloat m[4][4];
+
+ if (scale == 0) return;
+
+ if (!wire)
+ glDisable (GL_LIGHTING); /* don't light fonts */
+
+ glPushMatrix();
+
+ /* First, we translate the origin to the center of the robot.
+
+ Then we retrieve the prevailing modelview matrix, which
+ includes any rotation, wandering, and user-trackball-rolling
+ of the scene.
+
+ We set the top 3x3 cells of that matrix to be the identity
+ matrix. This removes all rotation from the matrix, while
+ leaving the translation alone. This has the effect of
+ leaving the prevailing coordinate system perpendicular to
+ the camera view: were we to draw a square face, it would
+ be in the plane of the screen.
+
+ Now we translate by `size' toward the viewer -- so that the
+ origin is *just in front* of the ball.
+
+ Then we draw the label text, allowing the depth buffer to
+ do its work: that way, labels on atoms will be occluded
+ properly when other atoms move in front of them.
+
+ This technique (of neutralizing rotation relative to the
+ observer, after both rotations and translations have been
+ applied) is known as "billboarding".
+ */
+
+ if (f)
+ glTranslatef(f->y, 0, f->x); /* get matrix */
+
+ glTranslatef (0, y_off, 0);
+
+ glGetFloatv (GL_MODELVIEW_MATRIX, &m[0][0]); /* load rot. identity */
+ m[0][0] = 1; m[1][0] = 0; m[2][0] = 0;
+ m[0][1] = 0; m[1][1] = 1; m[2][1] = 0;
+ m[0][2] = 0; m[1][2] = 0; m[2][2] = 1;
+ glLoadIdentity(); /* reset modelview */
+ glMultMatrixf (&m[0][0]); /* replace with ours */
+
+ glTranslatef (0, 0, 0.1); /* move toward camera */
+
+ glRotatef (current_device_rotation(), 0, 0, 1); /* right side up */
+
+ {
+ XCharStruct e;
+ int cw, ch, w, h, ascent, descent;
+ GLfloat s;
+ GLfloat max = 24; /* max point size to avoid pixellated text */
+
+ /* Let the font be much larger on iPhone */
+ if (mi->xgwa.height <= 640 || mi->xgwa.width <= 640)
+ max *= 3;
+
+ texture_string_metrics (bp->font_data, "X", &e, &ascent, &descent);
+ cw = e.width;
+ ch = ascent + descent;
+ s = 1.0 / ch;
+ if (ch > max) s *= max/ch;
+
+ s *= scale;
+
+ texture_string_metrics (bp->font_data, label, &e, 0, 0);
+ w = e.width;
+ h = e.ascent + e.descent;
+
+ glScalef (s, s, 1);
+ glTranslatef (-w/2, h*2/3 + (cw * 7), 0);
+
+ glPushMatrix();
+ glTranslatef (0, -h + (ch * 1.2), -0.1);
+ draw_bubble_box (mi, w, h,
+ ch * 2, /* corner radius */
+ ch * 2.5, /* arrow height */
+ w / 2 - cw * 8, /* arrow x */
+ bp->text_bd, bp->text_bg);
+ glPopMatrix();
+
+ glColor4fv (bp->text_color);
+ glTranslatef (0, ch/2, 0);
+ print_texture_string (bp->font_data, label);
+ }
+
+ glPopMatrix();
+
+ /* More efficient to always call glEnable() with correct values
+ than to call glPushAttrib()/glPopAttrib(), since reading
+ attributes from GL does a round-trip and stalls the pipeline.
+ */
+ if (!wire)
+ glEnable (GL_LIGHTING);
+}
+
+
+static void
+fill_words (ModeInfo *mi)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ char *p = bp->words + strlen(bp->words);
+ char *c;
+ int lines = 0;
+ int max = bp->max_lines;
+
+ /* Fewer lines on iPhone */
+ if ((mi->xgwa.height <= 640 || mi->xgwa.width <= 640) &&
+ max > 4)
+ max = 4;
+
+ for (c = bp->words; c < p; c++)
+ if (*c == '\n')
+ lines++;
+
+ while (p < bp->words + sizeof(bp->words) - 1 &&
+ lines < max)
+ {
+ int c = textclient_getc (bp->tc);
+ if (c == '\n')
+ lines++;
+ if (c > 0)
+ *p++ = (char) c;
+ else
+ break;
+ }
+ *p = 0;
+
+ bp->lines = lines;
+}
+
+
+static void
+bubble (ModeInfo *mi)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ int duration = 200;
+ GLfloat fade = 0.015;
+ int chance = (talk_chance <= 0.0 ? 0 :
+ talk_chance >= 0.99 ? 1 :
+ (1-talk_chance) * 1000);
+ GLfloat scale;
+ char *s0 = strdup (bp->words);
+ char *s = s0;
+ int L;
+
+ while (*s == '\n') s++;
+ L = strlen(s);
+ while (L > 0 && (s[L-1] == '\n' || s[L-1] == ' ' || s[L-1] == '\t'))
+ s[--L] = 0;
+ if (! *s) goto DONE;
+
+# ifdef DEBUG
+ if (debug_p) goto DONE;
+# endif
+
+ if (chance <= 0) goto DONE;
+
+ if (bp->bubble_tick > 0)
+ {
+ bp->bubble_tick--;
+ if (! bp->bubble_tick)
+ *bp->words = 0;
+ }
+
+ if (! bp->bubble_tick)
+ {
+ if (!(random() % chance))
+ bp->bubble_tick = duration;
+ else
+ goto DONE;
+ }
+
+ scale = (bp->bubble_tick < duration * fade
+ ? bp->bubble_tick / (duration * fade)
+ : (bp->bubble_tick > duration * (1 - fade)
+ ? 1 - ((bp->bubble_tick - duration * (1 - fade))
+ / (duration * fade))
+ : 1));
+
+ draw_label (mi, &bp->walkers[0], 1.5, scale, s);
+
+ DONE:
+ free (s0);
+}
+#endif /* WORDBUBBLES */
+
+
+
+typedef struct {
+ int i;
+ GLdouble d;
+} depth_sorter;
+
+static int
+cmp_depth_sorter (const void *aa, const void *bb)
+{
+ const depth_sorter *a = (depth_sorter *) aa;
+ const depth_sorter *b = (depth_sorter *) bb;
+ return (a->d == b->d ? 0 : a->d < b->d ? -1 : 1);
+}
+
+
+ENTRYPOINT void
+draw_robot (ModeInfo *mi)
+{
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ Display *dpy = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ GLfloat robot_size;
+ depth_sorter *sorted;
+ int i;
+
+ if (!bp->glx_context)
+ return;
+
+ glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix ();
+
+# ifdef HAVE_MOBILE
+ glRotatef (current_device_rotation(), 0, 0, 1); /* right side up */
+# endif
+
+ gltrackball_rotate (bp->user_trackball);
+
+ glTranslatef (0, -20, 0); /* Move the horizon down the screen */
+
+ robot_size = size * 7;
+ glScalef (robot_size, robot_size, robot_size);
+ look_at_center (mi);
+
+ glPushMatrix();
+ glScalef (1/robot_size, 1/robot_size, 1/robot_size);
+ glCallList (bp->dlists[GROUND]);
+ glPopMatrix();
+
+# ifdef WORDBUBBLES
+ fill_words (mi);
+ bubble (mi);
+# endif
+
+#ifdef DEBUG
+ if (debug_p)
+ {
+ glTranslatef (0, -1.2, 0);
+ glScalef (3, 3, 3);
+ glRotatef (-43.5, 0, 0, 1);
+ glRotatef (-90, 0, 1, 0);
+
+ /* glTranslatef (bp->debug_z, bp->debug_y, 0); */
+
+ glPushMatrix();
+ if (!MI_IS_WIREFRAME(mi)) glDisable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glDisable(GL_TEXTURE_2D);
+
+ glBegin(GL_LINES);
+ glVertex3f(-10, 0, 0); glVertex3f(10, 0, 0);
+ glVertex3f(0, -10, 0); glVertex3f(0, 10, 0);
+ glVertex3f(0, 0, -10); glVertex3f(0, 0, 10);
+ glEnd();
+
+ glTranslatef (-0.5, 0, -0.5);
+
+ glColor3f (1, 0, 0);
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (0, 0, 0); glVertex3f (0, 0, 1);
+ glVertex3f (0, 1, 1); glVertex3f (0, 1, 0);
+ glEnd();
+
+ glBegin (GL_LINE_LOOP);
+ glVertex3f (1, 0, 0); glVertex3f (1, 0, 1);
+ glVertex3f (1, 1, 1); glVertex3f (1, 1, 0);
+ glEnd();
+
+# if 1
+ glColor3f (0.5, 0.5, 0.5);
+ glFrontFace (GL_CCW);
+ glBegin (GL_QUADS);
+ /* glVertex3f (0, 1, 0); glVertex3f (0, 1, 1); */
+ /* glVertex3f (1, 1, 1); glVertex3f (1, 1, 0); */
+ glVertex3f (0, 0, 0); glVertex3f (0, 0, 1);
+ glVertex3f (1, 0, 1); glVertex3f (1, 0, 0);
+ glEnd();
+
+ glFrontFace (GL_CW);
+ glBegin (GL_QUADS);
+ glVertex3f (0, 1, 0); glVertex3f (0, 1, 1);
+ glVertex3f (1, 1, 1); glVertex3f (1, 1, 0);
+ glVertex3f (0, 0, 0); glVertex3f (0, 0, 1);
+ glVertex3f (1, 0, 1); glVertex3f (1, 0, 0);
+ glEnd();
+# endif
+
+ glColor3f (1, 0, 0);
+ glBegin (GL_LINES);
+ glVertex3f (0, 0, 0); glVertex3f (1, 0, 0);
+ glVertex3f (0, 0, 1); glVertex3f (1, 0, 1);
+ glVertex3f (0, 1, 0); glVertex3f (1, 1, 0);
+ glVertex3f (0, 1, 1); glVertex3f (1, 1, 1);
+
+ glVertex3f (0, 0, 0); glVertex3f (1, 0, 1);
+ glVertex3f (0, 0, 1); glVertex3f (1, 0, 0);
+ glVertex3f (0, 1, 0); glVertex3f (1, 1, 1);
+ glVertex3f (0, 1, 1); glVertex3f (1, 1, 0);
+ glEnd();
+
+ if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
+ if (!MI_IS_WIREFRAME(mi) && do_texture) glEnable(GL_TEXTURE_2D);
+
+ glPopMatrix();
+ }
+
+# endif /* DEBUG */
+
+ /* For transparency to work right, we have to draw the robots from
+ back to front, from the perspective of the observer. So project
+ the origin of the robot to screen coordinates, and sort that by Z.
+ */
+ sorted = (depth_sorter *) calloc (bp->nwalkers, sizeof (*sorted));
+ {
+ GLdouble m[16], p[16];
+ GLint v[4];
+ glGetDoublev (GL_MODELVIEW_MATRIX, m);
+ glGetDoublev (GL_PROJECTION_MATRIX, p);
+ glGetIntegerv (GL_VIEWPORT, v);
+
+ for (i = 0; i < bp->nwalkers; i++)
+ {
+ GLdouble x, y, z;
+ walker *f = &bp->walkers[i];
+ gluProject (f->y, f->z, f->x, m, p, v, &x, &y, &z);
+ sorted[i].i = i;
+ sorted[i].d = -z;
+ }
+ qsort (sorted, i, sizeof(*sorted), cmp_depth_sorter);
+ }
+
+
+ mi->polygon_count = 0;
+ for (i = 0; i < bp->nwalkers; i++)
+ {
+ int ii = sorted[i].i;
+ walker *f = &bp->walkers[ii];
+ int ticks = 22 * speed * f->speed;
+ int max = 180;
+ char tag[1024];
+ *tag = 0;
+
+ if (ticks < 1) ticks = 1;
+ if (ticks > max) ticks = max;
+
+# ifdef DEBUG
+ if (debug_p)
+ sprintf (tag, "%.4f, %.4f, %.4f",
+ bp->debug_x, bp->debug_y, bp->debug_z);
+ else
+ {
+# if 1
+ /* sprintf (tag + strlen(tag), " %d\n", ii); */
+ sprintf (tag + strlen(tag), " %d\n", bp->nwalkers - i - 1);
+ /* sprintf (tag + strlen(tag), "%.03f\n", sorted[i].d); */
+# endif
+ }
+
+# endif /* DEBUG */
+
+ mi->polygon_count += draw_walker (mi, f, tag);
+
+ for (ii = 0; ii < ticks; ii++)
+ tick_walker (mi, f);
+ }
+ free (sorted);
+
+ glPopMatrix ();
+
+ if (mi->fps_p) do_fps (mi);
+ glFinish();
+
+ glXSwapBuffers(dpy, window);
+}
+
+ENTRYPOINT void
+free_robot (ModeInfo *mi)
+{
+# ifdef WORDBUBBLES
+ robot_configuration *bp = &bps[MI_SCREEN(mi)];
+ if (bp->tc)
+ textclient_close (bp->tc);
+# endif
+}
+
+XSCREENSAVER_MODULE_2 ("WindupRobot", winduprobot, robot)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/winduprobot.man b/hacks/glx/winduprobot.man
new file mode 100644
index 0000000..5e7f801
--- /dev/null
+++ b/hacks/glx/winduprobot.man
@@ -0,0 +1,85 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+winduprobot - screen saver.
+.SH SYNOPSIS
+.B winduprobot
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-count \fInumber\fP]
+[\-speed \fIratio\fP]
+[\-size \fIratio\fP]
+[\-opacity \fIratio\fP]
+[\-talk \fIratio\fP]
+[\-no-texture]
+[\-no-fade]
+[\-fps]
+.SH DESCRIPTION
+A swarm of wind-up toy robots wander around the table-top, bumping into
+each other. Each robot contains a mechanically accurate gear system inside,
+which you can see when the robot's shell occasionally fades to
+transparency.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).
+.TP 8
+.B \-count \fInumber\fP
+Number of robots. 1 - 100. Default: 25.
+.TP 8
+.B \-speed \fIratio\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-size \fIratio\fP
+Robot size. 2.0 means twice as big, 0.5 means half as big.
+.TP 8
+.B \-opacity \fIratio\fP
+Robot skin transparency. 0.0 - 1.0. Default: 1.0.
+.TP 8
+.B \-talk \fIratio\fP
+How often to occasionally pop up a word bubble with random text in it.
+0.0 means never. 1.0 means often.
+.TP 8
+.B \-texture | \-no-texture
+Whether the robot's surface should be reflective chrome.
+.TP 8
+.B \-fade | \-no-fade
+Whether to sometimes fade the robot's opacity to show the inner mechanism.
+.TP 8
+.B \-fps | \-no-fps
+Whether to show a frames-per-second display at the bottom of the screen.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.BR xscreensaver-text (1)
+.SH COPYRIGHT
+Copyright \(co 2014 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
diff --git a/hacks/glx/xlock-gl-utils.c b/hacks/glx/xlock-gl-utils.c
new file mode 100644
index 0000000..36d724c
--- /dev/null
+++ b/hacks/glx/xlock-gl-utils.c
@@ -0,0 +1,230 @@
+/* xlock-gl.c --- xscreensaver compatibility layer for xlockmore GL modules.
+ * xscreensaver, Copyright (c) 1997-2015 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * This file, along with xlockmore.h, make it possible to compile an xlockmore
+ * GL module into a standalone program, and thus use it with xscreensaver.
+ * By Jamie Zawinski <jwz@jwz.org> on 31-May-97.
+ */
+
+#include <stdio.h>
+#include "xlockmoreI.h"
+#include "texfont.h"
+
+#ifndef isupper
+# define isupper(c) ((c) >= 'A' && (c) <= 'Z')
+#endif
+#ifndef _tolower
+# define _tolower(c) ((c) - 'A' + 'a')
+#endif
+
+
+/* Gag -- we use this to turn X errors from glXCreateContext() into
+ something that will actually make sense to the user.
+ */
+static XErrorHandler orig_ehandler = 0;
+static Bool got_error = 0;
+
+static int
+BadValue_ehandler (Display *dpy, XErrorEvent *error)
+{
+ if (error->error_code == BadValue)
+ {
+ got_error = True;
+ return 0;
+ }
+ else
+ return orig_ehandler (dpy, error);
+}
+
+
+GLXContext *
+init_GL(ModeInfo * mi)
+{
+ Display *dpy = mi->dpy;
+ Window window = mi->window;
+ Screen *screen = mi->xgwa.screen;
+ Visual *visual = mi->xgwa.visual;
+ XVisualInfo vi_in, *vi_out;
+ int out_count;
+
+ if (mi->glx_context) {
+ glXMakeCurrent (dpy, window, mi->glx_context);
+ return &mi->glx_context;
+ }
+
+# ifdef HAVE_JWZGLES
+ jwzgles_make_current(jwzgles_make_state(state));
+# endif
+
+ vi_in.screen = screen_number (screen);
+ vi_in.visualid = XVisualIDFromVisual (visual);
+ vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask,
+ &vi_in, &out_count);
+ if (! vi_out) abort ();
+
+ {
+ XSync (dpy, False);
+ orig_ehandler = XSetErrorHandler (BadValue_ehandler);
+ mi->glx_context = glXCreateContext (dpy, vi_out, 0, GL_TRUE);
+ XSync (dpy, False);
+ XSetErrorHandler (orig_ehandler);
+ if (got_error)
+ mi->glx_context = 0;
+ }
+
+ XFree((char *) vi_out);
+
+ if (!mi->glx_context)
+ {
+ fprintf(stderr, "%s: couldn't create GL context for visual 0x%x.\n",
+ progname, (unsigned int) XVisualIDFromVisual (visual));
+ exit(1);
+ }
+
+ glXMakeCurrent (dpy, window, mi->glx_context);
+
+ {
+ GLboolean rgba_mode = 0;
+ glGetBooleanv(GL_RGBA_MODE, &rgba_mode);
+ if (!rgba_mode)
+ {
+ glIndexi (WhitePixelOfScreen (screen));
+ glClearIndex (BlackPixelOfScreen (screen));
+ }
+ }
+
+
+ /* jwz: the doc for glDrawBuffer says "The initial value is GL_FRONT
+ for single-buffered contexts, and GL_BACK for double-buffered
+ contexts." However, I find that this is not always the case,
+ at least with Mesa 3.4.2 -- sometimes the default seems to be
+ GL_FRONT even when glGet(GL_DOUBLEBUFFER) is true. So, let's
+ make sure.
+
+ Oh, hmm -- maybe this only happens when we are re-using the
+ xscreensaver window, and the previous GL hack happened to die with
+ the other buffer selected? I'm not sure. Anyway, this fixes it.
+ */
+ {
+ GLboolean d = False;
+ glGetBooleanv (GL_DOUBLEBUFFER, &d);
+ if (d)
+ glDrawBuffer (GL_BACK);
+ else
+ glDrawBuffer (GL_FRONT);
+ }
+
+ /* Sometimes glDrawBuffer() throws "invalid op". Dunno why. Ignore. */
+ clear_gl_error ();
+
+ /* Process the -background argument. */
+ {
+ char *s = get_string_resource(mi->dpy, "background", "Background");
+ XColor c = { 0, };
+ if (! XParseColor (dpy, mi->xgwa.colormap, s, &c))
+ fprintf (stderr, "%s: can't parse color %s; using black.\n",
+ progname, s);
+ glClearColor (c.red / 65535.0,
+ c.green / 65535.0,
+ c.blue / 65535.0,
+ 1.0);
+ }
+
+ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ /* GLXContext is already a pointer type.
+ Why this function returns a pointer to a pointer, I have no idea...
+ */
+ return &mi->glx_context;
+}
+
+
+
+/* clear away any lingering error codes */
+void
+clear_gl_error (void)
+{
+ while (glGetError() != GL_NO_ERROR)
+ ;
+}
+
+/* report a GL error. */
+void
+check_gl_error (const char *type)
+{
+ char buf[100];
+ GLenum i;
+ const char *e;
+ switch ((i = glGetError())) {
+ case GL_NO_ERROR: return;
+ case GL_INVALID_ENUM: e = "invalid enum"; break;
+ case GL_INVALID_VALUE: e = "invalid value"; break;
+ case GL_INVALID_OPERATION: e = "invalid operation"; break;
+ case GL_STACK_OVERFLOW: e = "stack overflow"; break;
+ case GL_STACK_UNDERFLOW: e = "stack underflow"; break;
+ case GL_OUT_OF_MEMORY: e = "out of memory"; break;
+#ifdef GL_INVALID_FRAMEBUFFER_OPERATION
+ case GL_INVALID_FRAMEBUFFER_OPERATION:
+ e = "invalid framebuffer operation";
+ break;
+#endif
+#ifdef GL_TABLE_TOO_LARGE_EXT
+ case GL_TABLE_TOO_LARGE_EXT: e = "table too large"; break;
+#endif
+#ifdef GL_TEXTURE_TOO_LARGE_EXT
+ case GL_TEXTURE_TOO_LARGE_EXT: e = "texture too large"; break;
+#endif
+ default:
+ e = buf; sprintf (buf, "unknown error %d", (int) i); break;
+ }
+ fprintf (stderr, "%s: %s error: %s\n", progname, type, e);
+ exit (1);
+}
+
+
+/* Callback in xscreensaver_function_table, via xlockmore.c.
+ */
+Visual *
+xlockmore_pick_gl_visual (Screen *screen)
+{
+ /* pick the "best" visual by interrogating the GL library instead of
+ by asking Xlib. GL knows better.
+ */
+ Visual *v = 0;
+ Display *dpy = DisplayOfScreen (screen);
+ char *string = get_string_resource (dpy, "visualID", "VisualID");
+ char *s;
+
+ if (string)
+ for (s = string; *s; s++)
+ if (isupper (*s)) *s = _tolower (*s);
+
+ if (!string || !*string ||
+ !strcmp (string, "gl") ||
+ !strcmp (string, "best") ||
+ !strcmp (string, "color") ||
+ !strcmp (string, "default"))
+ v = get_gl_visual (screen); /* from ../utils/visual-gl.c */
+
+ if (string)
+ free (string);
+
+ return v;
+}
+
+
+/* Callback in xscreensaver_function_table, via xlockmore.c.
+ */
+Bool
+xlockmore_validate_gl_visual (Screen *screen, const char *name, Visual *visual)
+{
+ return validate_gl_visual (stderr, screen, name, visual);
+}
diff --git a/hacks/glx/xscreensaver-gl-helper.c b/hacks/glx/xscreensaver-gl-helper.c
new file mode 100644
index 0000000..6da8a7f
--- /dev/null
+++ b/hacks/glx/xscreensaver-gl-helper.c
@@ -0,0 +1,74 @@
+/* xscreensaver, Copyright (c) 2000, 2002 by Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* xscreensaver-gl-helper -- prints the ID of the best visual to use
+ for GL programs on stdout.
+ */
+
+#include "utils.h"
+#include "visual.h"
+
+#include <GL/gl.h>
+#include <GL/glx.h>
+
+char *progname = 0;
+char *progclass = "XScreenSaver";
+
+int
+main (int argc, char **argv)
+{
+ Display *dpy;
+ Screen *screen;
+ Visual *visual;
+ char *d = getenv ("DISPLAY");
+ int i;
+
+ progname = argv[0];
+ for (i = 1; i < argc; i++)
+ {
+ if (argv[i][0] == '-' && argv[i][1] == '-') argv[i]++;
+ if (strlen(argv[i]) >= 2 &&
+ !strncmp ("-display", argv[i], strlen(argv[i])))
+ {
+ if (i == argc-1) goto LOSE;
+ d = argv[i+1];
+ i++;
+ }
+ else
+ {
+ LOSE:
+ fprintf (stderr, "usage: %s [ -display host:dpy.screen ]\n",
+ progname);
+ fprintf (stderr,
+ "This program prints out the ID of the best "
+ "X visual for GL programs to use.\n");
+ exit (1);
+ }
+ }
+
+ dpy = XOpenDisplay (d);
+ if (!dpy)
+ {
+ fprintf (stderr, "%s: couldn't open display %s\n", progname,
+ (d ? d : "(null)"));
+ exit (1);
+ }
+
+ screen = DefaultScreenOfDisplay (dpy);
+ visual = get_gl_visual (screen);
+
+ if (visual)
+ printf ("0x%x\n", (unsigned int) XVisualIDFromVisual (visual));
+ else
+ printf ("none\n");
+
+ exit (0);
+}
diff --git a/hacks/glx/xscreensaver-gl-helper.man b/hacks/glx/xscreensaver-gl-helper.man
new file mode 100644
index 0000000..7c40eb3
--- /dev/null
+++ b/hacks/glx/xscreensaver-gl-helper.man
@@ -0,0 +1,33 @@
+.TH XScreenSaver 1 "5-Nov-00" "X Version 11"
+.SH NAME
+xscreensaver-gl-helper - figure out which X visual to use for GL programs
+.SH SYNOPSIS
+.B xscreensaver-gl-helper
+[\-display \fIhost:display.screen\fP]
+.SH DESCRIPTION
+This program prints the ID of the visual that should be used for proper
+operation of OpenGL programs. This program only exists so that the
+.BR xscreensaver (1)
+daemon does not need to link against the OpenGL library.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host, display, and screen number.
+.SH SEE ALSO
+.BR X (1),
+.BR xdpyinfo (1),
+.BR xglinfo (1),
+.BR glxinfo (1),
+.BR glxdpyinfo (1),
+.BR xscreensaver (1),
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-command (1)
+.SH COPYRIGHT
+Copyright \(co 2000 by Jamie Zawinski. Permission to use, copy, modify,
+distribute, and sell this software and its documentation for any purpose is
+hereby granted without fee, provided that the above copyright notice appear
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation. No representations are made about the
+suitability of this software for any purpose. It is provided "as is" without
+express or implied warranty.
diff --git a/hacks/glx/zalgo.txt b/hacks/glx/zalgo.txt
new file mode 100644
index 0000000..ac6780b
--- /dev/null
+++ b/hacks/glx/zalgo.txt
@@ -0,0 +1,30 @@
+
+
+Man 👨
+Blackula 🧛🏿
+Black male teacher 👨🏿‍🏫
+Female runner 🏃‍♀
+Woman astronaut 🏃‍🚀
+Multi-person group 👩🏿‍👨🏻‍👦🏽‍👧🏿
+
+
+͠P
+͠P͠P͠P͠
+P͠
+P͠
+
+💩💩💩💩💩💩💩💩💩💩💩💩💩💩
+
+y̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆
+←Deleted Page
+H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
+
+
+
+Rege̿̔̉x-based HTML parsers are the cancer that is killing StackOverflow it is too late it is too late we cannot be saved the trangession of a chi͡ld ensures regex will consume all living tissue (except for HTML which it cannot, as previously prophesied) dear lord help us how can anyone survive this scourge using regex to parse HTML has doomed humanity to an eternity of dread torture and security holes using regex as a tool to process HTML establishes a breach between this world and the dread realm of c͒ͪo͛ͫrrupt entities (like SGML entities, but more corrupt) a mere glimpse of the world of reg​ex parsers for HTML will ins​tantly transport a programmer's consciousness into a world of ceaseless screaming, he comes, the pestilent slithy regex-infection wil​l devour your HT​ML parser, application and existence for all time like Visual Basic only worse he comes he comes do not fi​ght he com̡e̶s, ̕h̵i​s un̨ho͞ly radiańcé destro҉ying all enli̍̈́̂̈́ghtenment, HTML tags lea͠ki̧n͘g fr̶ǫm ̡yo​͟ur eye͢s̸ ̛l̕ik͏e liq​uid pain, the song of re̸gular exp​ression parsing will exti​nguish the voices of mor​tal man from the sp​here I can see it can you see ̲͚̖͔̙î̩́t̲͎̩̱͔́̋̀ it is beautiful t​he final snuffing of the lie​s of Man ALL IS LOŚ͖̩͇̗̪̏̈́T ALL I​S LOST the pon̷y he comes he c̶̮omes he comes the ich​or permeates all MY FACE MY FACE ᵒh god no NO NOO̼O​O NΘ stop the an​*̶͑̾̾​̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s ͎a̧͈͖r̽̾̈́͒͑e n​ot rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
+
+
+
+
+
+